diff --git a/.gitattributes b/.gitattributes index a024b69ebee87d5c30a04618f0dda38fc7d0425b..343177389f92d41d05f8ba8c640a66994ccd4c7d 100644 --- a/.gitattributes +++ b/.gitattributes @@ -79,3 +79,6 @@ gtm/lib/python3.12/site-packages/scipy/spatial/_qhull.cpython-312-darwin.so filt gtm/lib/python3.12/site-packages/scipy/special/_ufuncs.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text gtm/lib/python3.12/site-packages/scipy/special/cython_special.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text gtm/lib/python3.12/site-packages/scipy/stats/_unuran/unuran_wrapper.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text +gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.6a107eaa.js.map filter=lfs diff=lfs merge=lfs -text +gtm/lib/python3.12/site-packages/gradio/templates/frontend/assets/index.37aa27c0.js.map filter=lfs diff=lfs merge=lfs -text +gtm/lib/python3.12/site-packages/sentencepiece/_sentencepiece.cpython-312-darwin.so filter=lfs diff=lfs merge=lfs -text diff --git a/app.py b/app.py index e89927c54c8e3031bfce45944c612168d2355e95..5e181995929b17d3ab4ce00c9d4658238ee2f520 100644 --- a/app.py +++ b/app.py @@ -6,7 +6,7 @@ from transformers import AutoModelForCausalLM, AutoTokenizer model_name = "AdaptLLM/law-LLM" # model_name = "google/gemma-2b" # model_name = "mistralai/Mistral-7B-v0.1" -tokenizer = AutoTokenizer.from_pretrained(model_name) +tokenizer = AutoTokenizer.from_pretrained(model_name, use_fast=False) model = AutoModelForCausalLM.from_pretrained(model_name) @@ -22,9 +22,15 @@ model = AutoModelForCausalLM.from_pretrained(model_name) # Define the chat function that uses the Mistral-7B-v0.1 model def chat_interface(input_text): - inputs = tokenizer.encode(input_text, return_tensors="pt") - outputs = model.generate(inputs, max_length=100) - response = tokenizer.decode(outputs[0], skip_special_tokens=True) + # inputs = tokenizer.encode(input_text, return_tensors="pt") + inputs = tokenizer(input_text, return_tensors="pt", add_special_tokens=False).input_ids.to(model.device) + outputs = model.generate(input_ids=inputs, max_length=2048)[0] + answer_start = int(inputs.shape[-1]) + + # outputs = model.generate(inputs, max_length=100) + # response = tokenizer.decode(outputs[0], skip_special_tokens=True) + + response = tokenizer.decode(outputs[answer_start:], skip_special_tokens=True) return response diff --git a/gtm/bin/gradio b/gtm/bin/gradio index 9f560646dfa50f5f4a2aec6e5de9f82bef26d494..0821de7d398da7f93df28139a7b019be3a3844e6 100644 --- a/gtm/bin/gradio +++ b/gtm/bin/gradio @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- import re import sys -from gradio.cli import cli +from gradio.reload import run_in_reload_mode if __name__ == '__main__': sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(cli()) + sys.exit(run_in_reload_mode()) diff --git a/gtm/lib/python3.12/site-packages/aiohttp-3.9.3.dist-info/INSTALLER b/gtm/lib/python3.12/site-packages/aiohttp-3.9.3.dist-info/INSTALLER new file mode 100644 index 0000000000000000000000000000000000000000..a1b589e38a32041e49332e5e81c2d363dc418d68 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp-3.9.3.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/gtm/lib/python3.12/site-packages/aiohttp-3.9.3.dist-info/LICENSE.txt b/gtm/lib/python3.12/site-packages/aiohttp-3.9.3.dist-info/LICENSE.txt new file mode 100644 index 0000000000000000000000000000000000000000..e497a322f2091d022983b9c5c043082ab61d1a8c --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp-3.9.3.dist-info/LICENSE.txt @@ -0,0 +1,13 @@ + Copyright aio-libs contributors. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/gtm/lib/python3.12/site-packages/aiohttp-3.9.3.dist-info/METADATA b/gtm/lib/python3.12/site-packages/aiohttp-3.9.3.dist-info/METADATA new file mode 100644 index 0000000000000000000000000000000000000000..8db6d133b4d14523327ff376e3aa438322496bb6 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp-3.9.3.dist-info/METADATA @@ -0,0 +1,243 @@ +Metadata-Version: 2.1 +Name: aiohttp +Version: 3.9.3 +Summary: Async http client/server framework (asyncio) +Home-page: https://github.com/aio-libs/aiohttp +Maintainer: aiohttp team +Maintainer-email: team@aiohttp.org +License: Apache 2 +Project-URL: Chat: Matrix, https://matrix.to/#/#aio-libs:matrix.org +Project-URL: Chat: Matrix Space, https://matrix.to/#/#aio-libs-space:matrix.org +Project-URL: CI: GitHub Actions, https://github.com/aio-libs/aiohttp/actions?query=workflow%3ACI +Project-URL: Coverage: codecov, https://codecov.io/github/aio-libs/aiohttp +Project-URL: Docs: Changelog, https://docs.aiohttp.org/en/stable/changes.html +Project-URL: Docs: RTD, https://docs.aiohttp.org +Project-URL: GitHub: issues, https://github.com/aio-libs/aiohttp/issues +Project-URL: GitHub: repo, https://github.com/aio-libs/aiohttp +Classifier: Development Status :: 5 - Production/Stable +Classifier: Framework :: AsyncIO +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Operating System :: POSIX +Classifier: Operating System :: MacOS :: MacOS X +Classifier: Operating System :: Microsoft :: Windows +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Topic :: Internet :: WWW/HTTP +Requires-Python: >=3.8 +Description-Content-Type: text/x-rst +License-File: LICENSE.txt +Requires-Dist: aiosignal >=1.1.2 +Requires-Dist: attrs >=17.3.0 +Requires-Dist: frozenlist >=1.1.1 +Requires-Dist: multidict <7.0,>=4.5 +Requires-Dist: yarl <2.0,>=1.0 +Requires-Dist: async-timeout <5.0,>=4.0 ; python_version < "3.11" +Provides-Extra: speedups +Requires-Dist: brotlicffi ; (platform_python_implementation != "CPython") and extra == 'speedups' +Requires-Dist: Brotli ; (platform_python_implementation == "CPython") and extra == 'speedups' +Requires-Dist: aiodns ; (sys_platform == "linux" or sys_platform == "darwin") and extra == 'speedups' + +================================== +Async http client/server framework +================================== + +.. image:: https://raw.githubusercontent.com/aio-libs/aiohttp/master/docs/aiohttp-plain.svg + :height: 64px + :width: 64px + :alt: aiohttp logo + +| + +.. image:: https://github.com/aio-libs/aiohttp/workflows/CI/badge.svg + :target: https://github.com/aio-libs/aiohttp/actions?query=workflow%3ACI + :alt: GitHub Actions status for master branch + +.. image:: https://codecov.io/gh/aio-libs/aiohttp/branch/master/graph/badge.svg + :target: https://codecov.io/gh/aio-libs/aiohttp + :alt: codecov.io status for master branch + +.. image:: https://badge.fury.io/py/aiohttp.svg + :target: https://pypi.org/project/aiohttp + :alt: Latest PyPI package version + +.. image:: https://readthedocs.org/projects/aiohttp/badge/?version=latest + :target: https://docs.aiohttp.org/ + :alt: Latest Read The Docs + +.. image:: https://img.shields.io/matrix/aio-libs:matrix.org?label=Discuss%20on%20Matrix%20at%20%23aio-libs%3Amatrix.org&logo=matrix&server_fqdn=matrix.org&style=flat + :target: https://matrix.to/#/%23aio-libs:matrix.org + :alt: Matrix Room — #aio-libs:matrix.org + +.. image:: https://img.shields.io/matrix/aio-libs-space:matrix.org?label=Discuss%20on%20Matrix%20at%20%23aio-libs-space%3Amatrix.org&logo=matrix&server_fqdn=matrix.org&style=flat + :target: https://matrix.to/#/%23aio-libs-space:matrix.org + :alt: Matrix Space — #aio-libs-space:matrix.org + + +Key Features +============ + +- Supports both client and server side of HTTP protocol. +- Supports both client and server Web-Sockets out-of-the-box and avoids + Callback Hell. +- Provides Web-server with middleware and pluggable routing. + + +Getting started +=============== + +Client +------ + +To get something from the web: + +.. code-block:: python + + import aiohttp + import asyncio + + async def main(): + + async with aiohttp.ClientSession() as session: + async with session.get('http://python.org') as response: + + print("Status:", response.status) + print("Content-type:", response.headers['content-type']) + + html = await response.text() + print("Body:", html[:15], "...") + + asyncio.run(main()) + +This prints: + +.. code-block:: + + Status: 200 + Content-type: text/html; charset=utf-8 + Body: ... + +Coming from `requests `_ ? Read `why we need so many lines `_. + +Server +------ + +An example using a simple server: + +.. code-block:: python + + # examples/server_simple.py + from aiohttp import web + + async def handle(request): + name = request.match_info.get('name', "Anonymous") + text = "Hello, " + name + return web.Response(text=text) + + async def wshandle(request): + ws = web.WebSocketResponse() + await ws.prepare(request) + + async for msg in ws: + if msg.type == web.WSMsgType.text: + await ws.send_str("Hello, {}".format(msg.data)) + elif msg.type == web.WSMsgType.binary: + await ws.send_bytes(msg.data) + elif msg.type == web.WSMsgType.close: + break + + return ws + + + app = web.Application() + app.add_routes([web.get('/', handle), + web.get('/echo', wshandle), + web.get('/{name}', handle)]) + + if __name__ == '__main__': + web.run_app(app) + + +Documentation +============= + +https://aiohttp.readthedocs.io/ + + +Demos +===== + +https://github.com/aio-libs/aiohttp-demos + + +External links +============== + +* `Third party libraries + `_ +* `Built with aiohttp + `_ +* `Powered by aiohttp + `_ + +Feel free to make a Pull Request for adding your link to these pages! + + +Communication channels +====================== + +*aio-libs Discussions*: https://github.com/aio-libs/aiohttp/discussions + +*gitter chat* https://gitter.im/aio-libs/Lobby + +We support `Stack Overflow +`_. +Please add *aiohttp* tag to your question there. + +Requirements +============ + +- async-timeout_ +- attrs_ +- multidict_ +- yarl_ +- frozenlist_ + +Optionally you may install the aiodns_ library (highly recommended for sake of speed). + +.. _aiodns: https://pypi.python.org/pypi/aiodns +.. _attrs: https://github.com/python-attrs/attrs +.. _multidict: https://pypi.python.org/pypi/multidict +.. _frozenlist: https://pypi.org/project/frozenlist/ +.. _yarl: https://pypi.python.org/pypi/yarl +.. _async-timeout: https://pypi.python.org/pypi/async_timeout + +License +======= + +``aiohttp`` is offered under the Apache 2 license. + + +Keepsafe +======== + +The aiohttp community would like to thank Keepsafe +(https://www.getkeepsafe.com) for its support in the early days of +the project. + + +Source code +=========== + +The latest developer version is available in a GitHub repository: +https://github.com/aio-libs/aiohttp + +Benchmarks +========== + +If you are interested in efficiency, the AsyncIO community maintains a +list of benchmarks on the official wiki: +https://github.com/python/asyncio/wiki/Benchmarks diff --git a/gtm/lib/python3.12/site-packages/aiohttp-3.9.3.dist-info/RECORD b/gtm/lib/python3.12/site-packages/aiohttp-3.9.3.dist-info/RECORD new file mode 100644 index 0000000000000000000000000000000000000000..8d024fde959d949feed7d81709718fafb59b97a7 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp-3.9.3.dist-info/RECORD @@ -0,0 +1,119 @@ +aiohttp-3.9.3.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +aiohttp-3.9.3.dist-info/LICENSE.txt,sha256=n4DQ2311WpQdtFchcsJw7L2PCCuiFd3QlZhZQu2Uqes,588 +aiohttp-3.9.3.dist-info/METADATA,sha256=IR6WU8nTlQ6uEoKY6sYovX8yUevcxKO9vahL7148a5E,7357 +aiohttp-3.9.3.dist-info/RECORD,, +aiohttp-3.9.3.dist-info/WHEEL,sha256=1_erwh2TCU3TrYzgBQGCtZskLEmw2vbfn7Xu2mHHvyU,111 +aiohttp-3.9.3.dist-info/top_level.txt,sha256=iv-JIaacmTl-hSho3QmphcKnbRRYx1st47yjz_178Ro,8 +aiohttp/.hash/_cparser.pxd.hash,sha256=ND581Lvrk-K59r0E07G3CdJKQo3ScvVS9zoo7lvkLYs,64 +aiohttp/.hash/_find_header.pxd.hash,sha256=BtbSPeZ2eOtt807jecTkoEeBQ4C5AiBxjzbvJj9eV6E,64 +aiohttp/.hash/_helpers.pyi.hash,sha256=pvlsQIMFVemm4rvS1BkQkfS2PGgJn5ZO2RmMSFxwCiE,64 +aiohttp/.hash/_helpers.pyx.hash,sha256=JWBqptE_5nbmOzG3dYXdmEuAy_Y2snJfcR124T4TZpo,64 +aiohttp/.hash/_http_parser.pyx.hash,sha256=6Ij3BWK3PALP8_9kktZPvWpP1y9rQzh-xWryFTno8w0,64 +aiohttp/.hash/_http_writer.pyx.hash,sha256=fQJN-7qLOu6bbnNTVO5jeKPSSGHjAvPqkj3OgkmnXh8,64 +aiohttp/.hash/_websocket.pyx.hash,sha256=_6cqIcIQjICfniPJShOdspzQaB95Lu6cinOZJ6yESz8,64 +aiohttp/.hash/hdrs.py.hash,sha256=Y5-5PZ15eDlsuhnCgEN_dhexnhwjP2v4ErDZJRljDmI,64 +aiohttp/__init__.py,sha256=bqfjeqpv8Dk3z0vj7HGYC4ZBIcP7V8MVzoLYY9g9vRY,7762 +aiohttp/__pycache__/__init__.cpython-312.pyc,, +aiohttp/__pycache__/abc.cpython-312.pyc,, +aiohttp/__pycache__/base_protocol.cpython-312.pyc,, +aiohttp/__pycache__/client.cpython-312.pyc,, +aiohttp/__pycache__/client_exceptions.cpython-312.pyc,, +aiohttp/__pycache__/client_proto.cpython-312.pyc,, +aiohttp/__pycache__/client_reqrep.cpython-312.pyc,, +aiohttp/__pycache__/client_ws.cpython-312.pyc,, +aiohttp/__pycache__/compression_utils.cpython-312.pyc,, +aiohttp/__pycache__/connector.cpython-312.pyc,, +aiohttp/__pycache__/cookiejar.cpython-312.pyc,, +aiohttp/__pycache__/formdata.cpython-312.pyc,, +aiohttp/__pycache__/hdrs.cpython-312.pyc,, +aiohttp/__pycache__/helpers.cpython-312.pyc,, +aiohttp/__pycache__/http.cpython-312.pyc,, +aiohttp/__pycache__/http_exceptions.cpython-312.pyc,, +aiohttp/__pycache__/http_parser.cpython-312.pyc,, +aiohttp/__pycache__/http_websocket.cpython-312.pyc,, +aiohttp/__pycache__/http_writer.cpython-312.pyc,, +aiohttp/__pycache__/locks.cpython-312.pyc,, +aiohttp/__pycache__/log.cpython-312.pyc,, +aiohttp/__pycache__/multipart.cpython-312.pyc,, +aiohttp/__pycache__/payload.cpython-312.pyc,, +aiohttp/__pycache__/payload_streamer.cpython-312.pyc,, +aiohttp/__pycache__/pytest_plugin.cpython-312.pyc,, +aiohttp/__pycache__/resolver.cpython-312.pyc,, +aiohttp/__pycache__/streams.cpython-312.pyc,, +aiohttp/__pycache__/tcp_helpers.cpython-312.pyc,, +aiohttp/__pycache__/test_utils.cpython-312.pyc,, +aiohttp/__pycache__/tracing.cpython-312.pyc,, +aiohttp/__pycache__/typedefs.cpython-312.pyc,, +aiohttp/__pycache__/web.cpython-312.pyc,, +aiohttp/__pycache__/web_app.cpython-312.pyc,, +aiohttp/__pycache__/web_exceptions.cpython-312.pyc,, +aiohttp/__pycache__/web_fileresponse.cpython-312.pyc,, +aiohttp/__pycache__/web_log.cpython-312.pyc,, +aiohttp/__pycache__/web_middlewares.cpython-312.pyc,, +aiohttp/__pycache__/web_protocol.cpython-312.pyc,, +aiohttp/__pycache__/web_request.cpython-312.pyc,, +aiohttp/__pycache__/web_response.cpython-312.pyc,, +aiohttp/__pycache__/web_routedef.cpython-312.pyc,, +aiohttp/__pycache__/web_runner.cpython-312.pyc,, +aiohttp/__pycache__/web_server.cpython-312.pyc,, +aiohttp/__pycache__/web_urldispatcher.cpython-312.pyc,, +aiohttp/__pycache__/web_ws.cpython-312.pyc,, +aiohttp/__pycache__/worker.cpython-312.pyc,, +aiohttp/_cparser.pxd,sha256=8jGIg-VJ9p3llwCakUYDsPGxA4HiZe9dmK9Jmtlz-5g,4318 +aiohttp/_find_header.pxd,sha256=0GfwFCPN2zxEKTO1_MA5sYq2UfzsG8kcV3aTqvwlz3g,68 +aiohttp/_headers.pxi,sha256=n701k28dVPjwRnx5j6LpJhLTfj7dqu2vJt7f0O60Oyg,2007 +aiohttp/_helpers.cpython-312-darwin.so,sha256=3QoJiG6_rhYjnKLmn1Ug9zjj0qvbJhM4RPS_7KGnwiE,87976 +aiohttp/_helpers.pyi,sha256=ZoKiJSS51PxELhI2cmIr5737YjjZcJt7FbIRO3ym1Ss,202 +aiohttp/_helpers.pyx,sha256=XeLbNft5X_4ifi8QB8i6TyrRuayijMSO3IDHeSA89uM,1049 +aiohttp/_http_parser.cpython-312-darwin.so,sha256=iV5Dww6JlxpItJykfd_DThtJNBJgYHhgQhtung89BGw,540384 +aiohttp/_http_parser.pyx,sha256=fzKwwVlcGnGVeiGOzo05d-2Rccqtl9-PzYKqgK3fxdI,28058 +aiohttp/_http_writer.cpython-312-darwin.so,sha256=LDoqANmCg3K-uaeGTmeBXR0k5uKutvlw6HxVc1r1Fgo,83880 +aiohttp/_http_writer.pyx,sha256=aIHAp8g4ZV5kbGRdmZce-vXjELw2M6fGKyJuOdgYQqw,4575 +aiohttp/_websocket.cpython-312-darwin.so,sha256=Yh4x4OCcuqGS4JQJmudofPRZH35O3orTVvsf-2vw-rY,65312 +aiohttp/_websocket.pyx,sha256=1XuOSNDCbyDrzF5uMA2isqausSs8l2jWTLDlNDLM9Io,1561 +aiohttp/abc.py,sha256=WGZ5HH0hoCH77qaISTb689ygpS9CxfKkgUCOcgjU2lo,5500 +aiohttp/base_protocol.py,sha256=5JUyuIGwKf7sFhf0YLAnk36_hkSIxBnP4hN09RdMGGk,2741 +aiohttp/client.py,sha256=2EKZE0lcIMLjjaMZChAu_2GaSNj8TumqhhwgEEmpN6Q,47276 +aiohttp/client_exceptions.py,sha256=7lx_YWAauUQVOxg_RehW9HZE344ak3lGmVJHfCrmb-A,9411 +aiohttp/client_proto.py,sha256=SXMGavdWhByYYqLfraw9dmp9u8jBAhGC_Y-pOYyFaHE,8651 +aiohttp/client_reqrep.py,sha256=sf0N3ovAHucEnTd3noJOv9MjypL-vIZR67xNibWXxnI,39763 +aiohttp/client_ws.py,sha256=nNrwu1wA0U3B0cNsVr61QfV2S60bbKfaZXHfW7klFl4,11010 +aiohttp/compression_utils.py,sha256=GCkBNJqrybMhiTQGwqqhORnaTLpRFZD_-UvRtnZ5lEQ,5015 +aiohttp/connector.py,sha256=WAio65VS8cTly_rg2J7lhwf_imQWKL1sFJPnVCDYNkY,52798 +aiohttp/cookiejar.py,sha256=PdvsOiDasDYYUOPaaAfuuFJzR4CJyHHjut02YiZ_N8M,14015 +aiohttp/formdata.py,sha256=q2gpeiM9NFsl_eSFVxHZ7Qez6RbM8_BujERMkooQkx0,6106 +aiohttp/hdrs.py,sha256=uzn5agn_jXid2h-ky6Y0ZAQ8BrPeTGLDGr-weiMctso,4613 +aiohttp/helpers.py,sha256=hYm60xCxbJCdtdtLhTt7uspQ_9HPT27gTBx2q9Fu1Zk,30255 +aiohttp/http.py,sha256=8o8j8xH70OWjnfTWA9V44NR785QPxEPrUtzMXiAVpwc,1842 +aiohttp/http_exceptions.py,sha256=7LOFFUwq04fZsnZA-NP5nukd6c2i8daM8-ejj3ndbSQ,2716 +aiohttp/http_parser.py,sha256=oXR_GfiwF5SeBTUvYK96WZLBdf7TMMgfm9CjssT6QKU,35496 +aiohttp/http_websocket.py,sha256=Zvg8rySM6b5MXUYlecZdiLP5tX-FhEYuGzFsn_YOk48,26716 +aiohttp/http_writer.py,sha256=fxpyRj_S3WcBl9fxxF05t8YYAUA-0jW5b_PjVSluT3Y,5933 +aiohttp/locks.py,sha256=wRYFo1U82LwBBdqwU24JEPaoTAlKaaJd2FtfDKhkTb4,1136 +aiohttp/log.py,sha256=BbNKx9e3VMIm0xYjZI0IcBBoS7wjdeIeSaiJE7-qK2g,325 +aiohttp/multipart.py,sha256=sLseoa3yh_xC4Moepxh_Lck87vwa6_aqmX7kz2hYHjE,32472 +aiohttp/payload.py,sha256=xK04Z-TSao-qiYVMnphKG9-6yOvoqGsZBM7egUS4n9A,13542 +aiohttp/payload_streamer.py,sha256=eAS8S-UWfLkEMavRjP2Uu9amC3PnbV79wHTNDoRmYn8,2087 +aiohttp/py.typed,sha256=sow9soTwP9T_gEAQSVh7Gb8855h04Nwmhs2We-JRgZM,7 +aiohttp/pytest_plugin.py,sha256=3IwpuxtFiUVFGS_ZitWuqvECSGgXQWvCW312B2TaVLY,11605 +aiohttp/resolver.py,sha256=8peXjB482v0hg1ESn87op6f-UeLXk_fAMxQo_23Ek6M,5070 +aiohttp/streams.py,sha256=vNCy0k5R7XlnSfsyTEQAkBD4Q9tNZgNm76Gqlw8Tjok,20836 +aiohttp/tcp_helpers.py,sha256=BSadqVWaBpMFDRWnhaaR941N9MiDZ7bdTrxgCb0CW-M,961 +aiohttp/test_utils.py,sha256=fXC-rKhXxV0DtFZQ8yRq2r-aAn9G5KcHsf_2wV3vsrE,20185 +aiohttp/tracing.py,sha256=W94gFgxFtXSBWMU4ajbrOH61mJ4mElRmfyxNUw6FwIA,15132 +aiohttp/typedefs.py,sha256=f-EzBBgQAxNLiTUtkjgMAL5LQt81HloYTesxnhNM03U,1471 +aiohttp/web.py,sha256=HFTQaoYVK5pM3YmxNJtZl9fGrRIdFs_Nhloxe7_lJj0,19263 +aiohttp/web_app.py,sha256=4cXDqZV-KR0xMnUhQ471bsEACIsoI4_BkDJ3haXyG_I,18311 +aiohttp/web_exceptions.py,sha256=7nIuiwhZ39vJJ9KrWqArA5QcWbUdqkz2CLwEpJapeN8,10360 +aiohttp/web_fileresponse.py,sha256=ZqJm7PMQPhASKRaongoKQdaubkzflrctDX0Z1MFUBd8,11416 +aiohttp/web_log.py,sha256=DOfOxGyh2U7K5K_w6O7ILdfGcs4qOdzHxOwj2-k3c6c,7801 +aiohttp/web_middlewares.py,sha256=q6i0GGiVvUlpGtsbZmp88-zFIKQHwYtDd5SpBvKFdEY,4032 +aiohttp/web_protocol.py,sha256=DxEIoZyL_3B7DXTKygP20xDw4p9nkD2PkdvJ_gXlnt8,23044 +aiohttp/web_request.py,sha256=zOQwat26Qsfv1UM_pfhgWConm68cbV7azJxPBirLSvw,28756 +aiohttp/web_response.py,sha256=iWpJdUDIiyKi5Q6nf6jjqbFFC5B0z0ifW5KMfE8Ykww,27729 +aiohttp/web_routedef.py,sha256=Y5DPVa7D1uJp37HP6YXrO8Cd1BrEtDyS-fljOUdPk30,6132 +aiohttp/web_runner.py,sha256=AM3klOcr72AZVGG9-LjYo8vJdHBWgNzDLsmi_aoKfAU,11736 +aiohttp/web_server.py,sha256=5P-9uPCoPEDkK9ILbvEXmkkJWPhnTxBzdwAXwveyyDk,2587 +aiohttp/web_urldispatcher.py,sha256=YieNwWXaKdIL6WMVLEavPgStDYM71bAE5Q9emgbX8TQ,40057 +aiohttp/web_ws.py,sha256=kRoEReJ6TW44RdwpWXf6RM0y-j5iV17GoIHzSS6IFds,18647 +aiohttp/worker.py,sha256=bkozEd2rAzQS0qs4knnnplOmaZ4TNdYtqWXSXx9djEc,7965 diff --git a/gtm/lib/python3.12/site-packages/aiohttp-3.9.3.dist-info/WHEEL b/gtm/lib/python3.12/site-packages/aiohttp-3.9.3.dist-info/WHEEL new file mode 100644 index 0000000000000000000000000000000000000000..0271fd6a04d5285c5881a971248efa7762310118 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp-3.9.3.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.42.0) +Root-Is-Purelib: false +Tag: cp312-cp312-macosx_10_9_x86_64 + diff --git a/gtm/lib/python3.12/site-packages/aiohttp-3.9.3.dist-info/top_level.txt b/gtm/lib/python3.12/site-packages/aiohttp-3.9.3.dist-info/top_level.txt new file mode 100644 index 0000000000000000000000000000000000000000..ee4ba4f3d739e094878215c84eb41ba85c80e4a8 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp-3.9.3.dist-info/top_level.txt @@ -0,0 +1 @@ +aiohttp diff --git a/gtm/lib/python3.12/site-packages/aiohttp/.hash/_cparser.pxd.hash b/gtm/lib/python3.12/site-packages/aiohttp/.hash/_cparser.pxd.hash new file mode 100644 index 0000000000000000000000000000000000000000..39d701a84ce5d52a8ad6f3817459ce8ae33c0e42 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/.hash/_cparser.pxd.hash @@ -0,0 +1 @@ +f2318883e549f69de597009a914603b0f1b10381e265ef5d98af499ad973fb98 \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/aiohttp/.hash/_find_header.pxd.hash b/gtm/lib/python3.12/site-packages/aiohttp/.hash/_find_header.pxd.hash new file mode 100644 index 0000000000000000000000000000000000000000..9762f43c8b8ea627e3866e58a5e1b8b9edd8b28f --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/.hash/_find_header.pxd.hash @@ -0,0 +1 @@ +d067f01423cddb3c442933b5fcc039b18ab651fcec1bc91c577693aafc25cf78 \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/aiohttp/.hash/_helpers.pyi.hash b/gtm/lib/python3.12/site-packages/aiohttp/.hash/_helpers.pyi.hash new file mode 100644 index 0000000000000000000000000000000000000000..4f8cd06dc3ca403f6b567dbdc401cb1af0434a51 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/.hash/_helpers.pyi.hash @@ -0,0 +1 @@ +6682a22524b9d4fc442e123672622be7bdfb6238d9709b7b15b2113b7ca6d52b \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/aiohttp/.hash/_helpers.pyx.hash b/gtm/lib/python3.12/site-packages/aiohttp/.hash/_helpers.pyx.hash new file mode 100644 index 0000000000000000000000000000000000000000..6f1b783da1130b016c8a45c40a83375584d8e22f --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/.hash/_helpers.pyx.hash @@ -0,0 +1 @@ +5de2db35fb795ffe227e2f1007c8ba4f2ad1b9aca28cc48edc80c779203cf6e3 \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/aiohttp/.hash/_http_parser.pyx.hash b/gtm/lib/python3.12/site-packages/aiohttp/.hash/_http_parser.pyx.hash new file mode 100644 index 0000000000000000000000000000000000000000..85503245b7c7065eb632a2e5c331c3ff54b46bf7 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/.hash/_http_parser.pyx.hash @@ -0,0 +1 @@ +7f32b0c1595c1a71957a218ece8d3977ed9171caad97df8fcd82aa80addfc5d2 \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/aiohttp/.hash/_http_writer.pyx.hash b/gtm/lib/python3.12/site-packages/aiohttp/.hash/_http_writer.pyx.hash new file mode 100644 index 0000000000000000000000000000000000000000..e4031f1bbb956110d296d3a92d2aa5254730ddcf --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/.hash/_http_writer.pyx.hash @@ -0,0 +1 @@ +6881c0a7c838655e646c645d99971efaf5e310bc3633a7c62b226e39d81842ac \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/aiohttp/.hash/_websocket.pyx.hash b/gtm/lib/python3.12/site-packages/aiohttp/.hash/_websocket.pyx.hash new file mode 100644 index 0000000000000000000000000000000000000000..0a3d20de3547298a64803f2e132a40678b5c8c19 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/.hash/_websocket.pyx.hash @@ -0,0 +1 @@ +d57b8e48d0c26f20ebcc5e6e300da2b2a6aeb12b3c9768d64cb0e53432ccf48a \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/aiohttp/.hash/hdrs.py.hash b/gtm/lib/python3.12/site-packages/aiohttp/.hash/hdrs.py.hash new file mode 100644 index 0000000000000000000000000000000000000000..a68b7be17ae97995d2e48b1c5f3fe5a083a24d53 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/.hash/hdrs.py.hash @@ -0,0 +1 @@ +bb39f96a09ff8d789dda1fa4cba63464043c06b3de4c62c31abfb07a231cb6ca \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__init__.py b/gtm/lib/python3.12/site-packages/aiohttp/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..12209def6c46ddca95421cfb253a177b40bb44bc --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/__init__.py @@ -0,0 +1,240 @@ +__version__ = "3.9.3" + +from typing import TYPE_CHECKING, Tuple + +from . import hdrs as hdrs +from .client import ( + BaseConnector as BaseConnector, + ClientConnectionError as ClientConnectionError, + ClientConnectorCertificateError as ClientConnectorCertificateError, + ClientConnectorError as ClientConnectorError, + ClientConnectorSSLError as ClientConnectorSSLError, + ClientError as ClientError, + ClientHttpProxyError as ClientHttpProxyError, + ClientOSError as ClientOSError, + ClientPayloadError as ClientPayloadError, + ClientProxyConnectionError as ClientProxyConnectionError, + ClientRequest as ClientRequest, + ClientResponse as ClientResponse, + ClientResponseError as ClientResponseError, + ClientSession as ClientSession, + ClientSSLError as ClientSSLError, + ClientTimeout as ClientTimeout, + ClientWebSocketResponse as ClientWebSocketResponse, + ContentTypeError as ContentTypeError, + Fingerprint as Fingerprint, + InvalidURL as InvalidURL, + NamedPipeConnector as NamedPipeConnector, + RequestInfo as RequestInfo, + ServerConnectionError as ServerConnectionError, + ServerDisconnectedError as ServerDisconnectedError, + ServerFingerprintMismatch as ServerFingerprintMismatch, + ServerTimeoutError as ServerTimeoutError, + TCPConnector as TCPConnector, + TooManyRedirects as TooManyRedirects, + UnixConnector as UnixConnector, + WSServerHandshakeError as WSServerHandshakeError, + request as request, +) +from .cookiejar import CookieJar as CookieJar, DummyCookieJar as DummyCookieJar +from .formdata import FormData as FormData +from .helpers import BasicAuth, ChainMapProxy, ETag +from .http import ( + HttpVersion as HttpVersion, + HttpVersion10 as HttpVersion10, + HttpVersion11 as HttpVersion11, + WebSocketError as WebSocketError, + WSCloseCode as WSCloseCode, + WSMessage as WSMessage, + WSMsgType as WSMsgType, +) +from .multipart import ( + BadContentDispositionHeader as BadContentDispositionHeader, + BadContentDispositionParam as BadContentDispositionParam, + BodyPartReader as BodyPartReader, + MultipartReader as MultipartReader, + MultipartWriter as MultipartWriter, + content_disposition_filename as content_disposition_filename, + parse_content_disposition as parse_content_disposition, +) +from .payload import ( + PAYLOAD_REGISTRY as PAYLOAD_REGISTRY, + AsyncIterablePayload as AsyncIterablePayload, + BufferedReaderPayload as BufferedReaderPayload, + BytesIOPayload as BytesIOPayload, + BytesPayload as BytesPayload, + IOBasePayload as IOBasePayload, + JsonPayload as JsonPayload, + Payload as Payload, + StringIOPayload as StringIOPayload, + StringPayload as StringPayload, + TextIOPayload as TextIOPayload, + get_payload as get_payload, + payload_type as payload_type, +) +from .payload_streamer import streamer as streamer +from .resolver import ( + AsyncResolver as AsyncResolver, + DefaultResolver as DefaultResolver, + ThreadedResolver as ThreadedResolver, +) +from .streams import ( + EMPTY_PAYLOAD as EMPTY_PAYLOAD, + DataQueue as DataQueue, + EofStream as EofStream, + FlowControlDataQueue as FlowControlDataQueue, + StreamReader as StreamReader, +) +from .tracing import ( + TraceConfig as TraceConfig, + TraceConnectionCreateEndParams as TraceConnectionCreateEndParams, + TraceConnectionCreateStartParams as TraceConnectionCreateStartParams, + TraceConnectionQueuedEndParams as TraceConnectionQueuedEndParams, + TraceConnectionQueuedStartParams as TraceConnectionQueuedStartParams, + TraceConnectionReuseconnParams as TraceConnectionReuseconnParams, + TraceDnsCacheHitParams as TraceDnsCacheHitParams, + TraceDnsCacheMissParams as TraceDnsCacheMissParams, + TraceDnsResolveHostEndParams as TraceDnsResolveHostEndParams, + TraceDnsResolveHostStartParams as TraceDnsResolveHostStartParams, + TraceRequestChunkSentParams as TraceRequestChunkSentParams, + TraceRequestEndParams as TraceRequestEndParams, + TraceRequestExceptionParams as TraceRequestExceptionParams, + TraceRequestRedirectParams as TraceRequestRedirectParams, + TraceRequestStartParams as TraceRequestStartParams, + TraceResponseChunkReceivedParams as TraceResponseChunkReceivedParams, +) + +if TYPE_CHECKING: + # At runtime these are lazy-loaded at the bottom of the file. + from .worker import ( + GunicornUVLoopWebWorker as GunicornUVLoopWebWorker, + GunicornWebWorker as GunicornWebWorker, + ) + +__all__: Tuple[str, ...] = ( + "hdrs", + # client + "BaseConnector", + "ClientConnectionError", + "ClientConnectorCertificateError", + "ClientConnectorError", + "ClientConnectorSSLError", + "ClientError", + "ClientHttpProxyError", + "ClientOSError", + "ClientPayloadError", + "ClientProxyConnectionError", + "ClientResponse", + "ClientRequest", + "ClientResponseError", + "ClientSSLError", + "ClientSession", + "ClientTimeout", + "ClientWebSocketResponse", + "ContentTypeError", + "Fingerprint", + "InvalidURL", + "RequestInfo", + "ServerConnectionError", + "ServerDisconnectedError", + "ServerFingerprintMismatch", + "ServerTimeoutError", + "TCPConnector", + "TooManyRedirects", + "UnixConnector", + "NamedPipeConnector", + "WSServerHandshakeError", + "request", + # cookiejar + "CookieJar", + "DummyCookieJar", + # formdata + "FormData", + # helpers + "BasicAuth", + "ChainMapProxy", + "ETag", + # http + "HttpVersion", + "HttpVersion10", + "HttpVersion11", + "WSMsgType", + "WSCloseCode", + "WSMessage", + "WebSocketError", + # multipart + "BadContentDispositionHeader", + "BadContentDispositionParam", + "BodyPartReader", + "MultipartReader", + "MultipartWriter", + "content_disposition_filename", + "parse_content_disposition", + # payload + "AsyncIterablePayload", + "BufferedReaderPayload", + "BytesIOPayload", + "BytesPayload", + "IOBasePayload", + "JsonPayload", + "PAYLOAD_REGISTRY", + "Payload", + "StringIOPayload", + "StringPayload", + "TextIOPayload", + "get_payload", + "payload_type", + # payload_streamer + "streamer", + # resolver + "AsyncResolver", + "DefaultResolver", + "ThreadedResolver", + # streams + "DataQueue", + "EMPTY_PAYLOAD", + "EofStream", + "FlowControlDataQueue", + "StreamReader", + # tracing + "TraceConfig", + "TraceConnectionCreateEndParams", + "TraceConnectionCreateStartParams", + "TraceConnectionQueuedEndParams", + "TraceConnectionQueuedStartParams", + "TraceConnectionReuseconnParams", + "TraceDnsCacheHitParams", + "TraceDnsCacheMissParams", + "TraceDnsResolveHostEndParams", + "TraceDnsResolveHostStartParams", + "TraceRequestChunkSentParams", + "TraceRequestEndParams", + "TraceRequestExceptionParams", + "TraceRequestRedirectParams", + "TraceRequestStartParams", + "TraceResponseChunkReceivedParams", + # workers (imported lazily with __getattr__) + "GunicornUVLoopWebWorker", + "GunicornWebWorker", +) + + +def __dir__() -> Tuple[str, ...]: + return __all__ + ("__author__", "__doc__") + + +def __getattr__(name: str) -> object: + global GunicornUVLoopWebWorker, GunicornWebWorker + + # Importing gunicorn takes a long time (>100ms), so only import if actually needed. + if name in ("GunicornUVLoopWebWorker", "GunicornWebWorker"): + try: + from .worker import GunicornUVLoopWebWorker as guv, GunicornWebWorker as gw + except ImportError: + return None + + GunicornUVLoopWebWorker = guv # type: ignore[misc] + GunicornWebWorker = gw # type: ignore[misc] + return guv if name == "GunicornUVLoopWebWorker" else gw + + raise AttributeError(f"module {__name__} has no attribute {name}") diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/__init__.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..63164ab9f596fbd4c20ff98ded8f52a16a59cded Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/__init__.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/abc.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/abc.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..74a5fd9dd1e37d14b17961890b26defbd4a9deb5 Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/abc.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/base_protocol.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/base_protocol.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7da7af5ed6255e098d27868c1a761964b042edd2 Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/base_protocol.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/client.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/client.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..29150c6e8f86fc733dceaf003f86c98d82607b9e Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/client.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/client_exceptions.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/client_exceptions.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b257909e8560da81e4d63cb27f853c5ea3df2721 Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/client_exceptions.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/client_proto.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/client_proto.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4e5435a116c18cae316bb2137a8c9a803a2e8d18 Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/client_proto.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/client_reqrep.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/client_reqrep.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4870a126b0a4fdf67af95d062f3227e75c6292db Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/client_reqrep.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/client_ws.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/client_ws.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7698006e14fb7b2ac0bcb8c838df7ef2f1f82e6f Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/client_ws.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/compression_utils.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/compression_utils.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4d575aad1aaa2ac8ce9be237048ed269e6884eb6 Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/compression_utils.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/connector.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/connector.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8aca178712ce010fc5549a2ab99f6fec2af73e75 Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/connector.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/cookiejar.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/cookiejar.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f745cbc0935b2e3ae0519186d41e5c5122c90608 Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/cookiejar.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/formdata.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/formdata.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0521641e277f331fb46cebf573925adc5ad256cd Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/formdata.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/hdrs.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/hdrs.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..033b166077b5661d3f5672b18b495975b0bfc27d Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/hdrs.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/helpers.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/helpers.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6c503348b0100d95b46df9a04d24c6671cc703ba Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/helpers.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/http.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/http.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9f09c3807bc7c623558d40513e7b1ac310d1bcaf Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/http.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/http_exceptions.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/http_exceptions.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0904a15aff55e5d667e681b9cbc0e3b6627c7395 Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/http_exceptions.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/http_parser.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/http_parser.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8a9c1846daa53d643d1ab0561fce81b387b5f0dd Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/http_parser.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/http_websocket.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/http_websocket.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e5ff8fe15b0fcfd1038c6c5a16da455a87a3a1d3 Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/http_websocket.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/http_writer.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/http_writer.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8e7aab4e9fb9534df355e080279c111a01fcd69f Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/http_writer.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/locks.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/locks.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ef6f1cd9fbba1267c7ee3ea1ede3ab3502c0f956 Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/locks.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/log.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/log.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..79748fe53468a80644c0c4b0e37c68ecbc85c23d Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/log.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/multipart.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/multipart.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4a91c46e5baf08113e0991f2bf3e76b9b85fe573 Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/multipart.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/payload.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/payload.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5297a95e6ae25af8f4b45d35d6d87dd7ee158777 Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/payload.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/payload_streamer.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/payload_streamer.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a0da25e879becf0ae9fa565dbefc6f6925f10b01 Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/payload_streamer.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/pytest_plugin.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/pytest_plugin.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f16a32c1ea76b39d4c233ae730ff49902d5aefe0 Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/pytest_plugin.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/resolver.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/resolver.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f8090b7f89448ee5a8ea409548d3e8b36a6f7708 Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/resolver.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/streams.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/streams.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0a128714aa13b6aab47475102be4465db641b70d Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/streams.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/tcp_helpers.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/tcp_helpers.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2b8afd5fe3da19345cb8760afafa44d6d53bb6fc Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/tcp_helpers.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/test_utils.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/test_utils.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a5d904a15e14414b0876a20c27f595bda2d68ca4 Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/test_utils.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/tracing.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/tracing.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b0c42db167932b576c95a2cf725f067257a28b03 Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/tracing.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/typedefs.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/typedefs.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..16b396e65d23f97785a1907106e3b73c4c85379c Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/typedefs.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1acab76060f59dc628b3a95e4ecb5eb671f6bd57 Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_app.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_app.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e1311c04c614bed89936bf088dae0b7fdf78def3 Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_app.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_exceptions.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_exceptions.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f4743dee281bd8079cfd0bc9f592fc43d2f6fc42 Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_exceptions.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_fileresponse.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_fileresponse.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3a8f57206591e8145f7c41ef27c1706cc2bddc5d Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_fileresponse.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_log.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_log.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f44dd72a98dd6892f97af5001a317aa26e37afdf Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_log.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_middlewares.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_middlewares.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5cf3b6fba4e760f6682880acdf993ad8ae367cb6 Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_middlewares.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_protocol.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_protocol.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..dab2cb54542aed9569c77e3ca5eb001cd8e57eaf Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_protocol.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_request.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_request.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..536dfd2923423203d1dbcad3d9c329c616c032ba Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_request.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_response.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_response.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b3a27d499ebc7dad0c923fed6e82743ed0f9ce5f Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_response.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_routedef.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_routedef.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ab24457371e286d557b23b5c004bcb7f90ad65cb Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_routedef.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_runner.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_runner.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f335a9c3b6298bff24d79ea9a40c2ce73c624343 Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_runner.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_server.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_server.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5baa15df4d1e21db4ef548d63534f76cd8ab6f3c Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_server.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_urldispatcher.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_urldispatcher.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f615139aeb6c86b1c58bb51f0c488a2349c428db Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_urldispatcher.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_ws.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_ws.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2ac44c893cd91f68680b6a45d88586bfc3922bbe Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/web_ws.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/worker.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/worker.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d4448ef17eba437b26b9a54f0c7f51116c8b09b6 Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/__pycache__/worker.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/_cparser.pxd b/gtm/lib/python3.12/site-packages/aiohttp/_cparser.pxd new file mode 100644 index 0000000000000000000000000000000000000000..c2cd5a92fdaffd4fefe31c844a5271e56a6daf1f --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/_cparser.pxd @@ -0,0 +1,158 @@ +from libc.stdint cimport int32_t, uint8_t, uint16_t, uint64_t + + +cdef extern from "../vendor/llhttp/build/llhttp.h": + + struct llhttp__internal_s: + int32_t _index + void* _span_pos0 + void* _span_cb0 + int32_t error + const char* reason + const char* error_pos + void* data + void* _current + uint64_t content_length + uint8_t type + uint8_t method + uint8_t http_major + uint8_t http_minor + uint8_t header_state + uint8_t lenient_flags + uint8_t upgrade + uint8_t finish + uint16_t flags + uint16_t status_code + void* settings + + ctypedef llhttp__internal_s llhttp__internal_t + ctypedef llhttp__internal_t llhttp_t + + ctypedef int (*llhttp_data_cb)(llhttp_t*, const char *at, size_t length) except -1 + ctypedef int (*llhttp_cb)(llhttp_t*) except -1 + + struct llhttp_settings_s: + llhttp_cb on_message_begin + llhttp_data_cb on_url + llhttp_data_cb on_status + llhttp_data_cb on_header_field + llhttp_data_cb on_header_value + llhttp_cb on_headers_complete + llhttp_data_cb on_body + llhttp_cb on_message_complete + llhttp_cb on_chunk_header + llhttp_cb on_chunk_complete + + llhttp_cb on_url_complete + llhttp_cb on_status_complete + llhttp_cb on_header_field_complete + llhttp_cb on_header_value_complete + + ctypedef llhttp_settings_s llhttp_settings_t + + enum llhttp_errno: + HPE_OK, + HPE_INTERNAL, + HPE_STRICT, + HPE_LF_EXPECTED, + HPE_UNEXPECTED_CONTENT_LENGTH, + HPE_CLOSED_CONNECTION, + HPE_INVALID_METHOD, + HPE_INVALID_URL, + HPE_INVALID_CONSTANT, + HPE_INVALID_VERSION, + HPE_INVALID_HEADER_TOKEN, + HPE_INVALID_CONTENT_LENGTH, + HPE_INVALID_CHUNK_SIZE, + HPE_INVALID_STATUS, + HPE_INVALID_EOF_STATE, + HPE_INVALID_TRANSFER_ENCODING, + HPE_CB_MESSAGE_BEGIN, + HPE_CB_HEADERS_COMPLETE, + HPE_CB_MESSAGE_COMPLETE, + HPE_CB_CHUNK_HEADER, + HPE_CB_CHUNK_COMPLETE, + HPE_PAUSED, + HPE_PAUSED_UPGRADE, + HPE_USER + + ctypedef llhttp_errno llhttp_errno_t + + enum llhttp_flags: + F_CHUNKED, + F_CONTENT_LENGTH + + enum llhttp_type: + HTTP_REQUEST, + HTTP_RESPONSE, + HTTP_BOTH + + enum llhttp_method: + HTTP_DELETE, + HTTP_GET, + HTTP_HEAD, + HTTP_POST, + HTTP_PUT, + HTTP_CONNECT, + HTTP_OPTIONS, + HTTP_TRACE, + HTTP_COPY, + HTTP_LOCK, + HTTP_MKCOL, + HTTP_MOVE, + HTTP_PROPFIND, + HTTP_PROPPATCH, + HTTP_SEARCH, + HTTP_UNLOCK, + HTTP_BIND, + HTTP_REBIND, + HTTP_UNBIND, + HTTP_ACL, + HTTP_REPORT, + HTTP_MKACTIVITY, + HTTP_CHECKOUT, + HTTP_MERGE, + HTTP_MSEARCH, + HTTP_NOTIFY, + HTTP_SUBSCRIBE, + HTTP_UNSUBSCRIBE, + HTTP_PATCH, + HTTP_PURGE, + HTTP_MKCALENDAR, + HTTP_LINK, + HTTP_UNLINK, + HTTP_SOURCE, + HTTP_PRI, + HTTP_DESCRIBE, + HTTP_ANNOUNCE, + HTTP_SETUP, + HTTP_PLAY, + HTTP_PAUSE, + HTTP_TEARDOWN, + HTTP_GET_PARAMETER, + HTTP_SET_PARAMETER, + HTTP_REDIRECT, + HTTP_RECORD, + HTTP_FLUSH + + ctypedef llhttp_method llhttp_method_t; + + void llhttp_settings_init(llhttp_settings_t* settings) + void llhttp_init(llhttp_t* parser, llhttp_type type, + const llhttp_settings_t* settings) + + llhttp_errno_t llhttp_execute(llhttp_t* parser, const char* data, size_t len) + + int llhttp_should_keep_alive(const llhttp_t* parser) + + void llhttp_resume_after_upgrade(llhttp_t* parser) + + llhttp_errno_t llhttp_get_errno(const llhttp_t* parser) + const char* llhttp_get_error_reason(const llhttp_t* parser) + const char* llhttp_get_error_pos(const llhttp_t* parser) + + const char* llhttp_method_name(llhttp_method_t method) + + void llhttp_set_lenient_headers(llhttp_t* parser, int enabled) + void llhttp_set_lenient_optional_cr_before_lf(llhttp_t* parser, int enabled) + void llhttp_set_lenient_spaces_after_chunk_size(llhttp_t* parser, int enabled) diff --git a/gtm/lib/python3.12/site-packages/aiohttp/_find_header.pxd b/gtm/lib/python3.12/site-packages/aiohttp/_find_header.pxd new file mode 100644 index 0000000000000000000000000000000000000000..37a6c37268ee30b182fd77d109688d35d5577c7f --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/_find_header.pxd @@ -0,0 +1,2 @@ +cdef extern from "_find_header.h": + int find_header(char *, int) diff --git a/gtm/lib/python3.12/site-packages/aiohttp/_headers.pxi b/gtm/lib/python3.12/site-packages/aiohttp/_headers.pxi new file mode 100644 index 0000000000000000000000000000000000000000..3744721d4786a6c79b90aa349c8d02fa66204ecc --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/_headers.pxi @@ -0,0 +1,83 @@ +# The file is autogenerated from aiohttp/hdrs.py +# Run ./tools/gen.py to update it after the origin changing. + +from . import hdrs +cdef tuple headers = ( + hdrs.ACCEPT, + hdrs.ACCEPT_CHARSET, + hdrs.ACCEPT_ENCODING, + hdrs.ACCEPT_LANGUAGE, + hdrs.ACCEPT_RANGES, + hdrs.ACCESS_CONTROL_ALLOW_CREDENTIALS, + hdrs.ACCESS_CONTROL_ALLOW_HEADERS, + hdrs.ACCESS_CONTROL_ALLOW_METHODS, + hdrs.ACCESS_CONTROL_ALLOW_ORIGIN, + hdrs.ACCESS_CONTROL_EXPOSE_HEADERS, + hdrs.ACCESS_CONTROL_MAX_AGE, + hdrs.ACCESS_CONTROL_REQUEST_HEADERS, + hdrs.ACCESS_CONTROL_REQUEST_METHOD, + hdrs.AGE, + hdrs.ALLOW, + hdrs.AUTHORIZATION, + hdrs.CACHE_CONTROL, + hdrs.CONNECTION, + hdrs.CONTENT_DISPOSITION, + hdrs.CONTENT_ENCODING, + hdrs.CONTENT_LANGUAGE, + hdrs.CONTENT_LENGTH, + hdrs.CONTENT_LOCATION, + hdrs.CONTENT_MD5, + hdrs.CONTENT_RANGE, + hdrs.CONTENT_TRANSFER_ENCODING, + hdrs.CONTENT_TYPE, + hdrs.COOKIE, + hdrs.DATE, + hdrs.DESTINATION, + hdrs.DIGEST, + hdrs.ETAG, + hdrs.EXPECT, + hdrs.EXPIRES, + hdrs.FORWARDED, + hdrs.FROM, + hdrs.HOST, + hdrs.IF_MATCH, + hdrs.IF_MODIFIED_SINCE, + hdrs.IF_NONE_MATCH, + hdrs.IF_RANGE, + hdrs.IF_UNMODIFIED_SINCE, + hdrs.KEEP_ALIVE, + hdrs.LAST_EVENT_ID, + hdrs.LAST_MODIFIED, + hdrs.LINK, + hdrs.LOCATION, + hdrs.MAX_FORWARDS, + hdrs.ORIGIN, + hdrs.PRAGMA, + hdrs.PROXY_AUTHENTICATE, + hdrs.PROXY_AUTHORIZATION, + hdrs.RANGE, + hdrs.REFERER, + hdrs.RETRY_AFTER, + hdrs.SEC_WEBSOCKET_ACCEPT, + hdrs.SEC_WEBSOCKET_EXTENSIONS, + hdrs.SEC_WEBSOCKET_KEY, + hdrs.SEC_WEBSOCKET_KEY1, + hdrs.SEC_WEBSOCKET_PROTOCOL, + hdrs.SEC_WEBSOCKET_VERSION, + hdrs.SERVER, + hdrs.SET_COOKIE, + hdrs.TE, + hdrs.TRAILER, + hdrs.TRANSFER_ENCODING, + hdrs.URI, + hdrs.UPGRADE, + hdrs.USER_AGENT, + hdrs.VARY, + hdrs.VIA, + hdrs.WWW_AUTHENTICATE, + hdrs.WANT_DIGEST, + hdrs.WARNING, + hdrs.X_FORWARDED_FOR, + hdrs.X_FORWARDED_HOST, + hdrs.X_FORWARDED_PROTO, +) diff --git a/gtm/lib/python3.12/site-packages/aiohttp/_helpers.cpython-312-darwin.so b/gtm/lib/python3.12/site-packages/aiohttp/_helpers.cpython-312-darwin.so new file mode 100644 index 0000000000000000000000000000000000000000..a0281aba0ffe6c333df208c28f2f1e4c6a2af4ef Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/_helpers.cpython-312-darwin.so differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/_helpers.pyi b/gtm/lib/python3.12/site-packages/aiohttp/_helpers.pyi new file mode 100644 index 0000000000000000000000000000000000000000..1e358937024ac1b9d19cf714fc12087688c6fb95 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/_helpers.pyi @@ -0,0 +1,6 @@ +from typing import Any + +class reify: + def __init__(self, wrapped: Any) -> None: ... + def __get__(self, inst: Any, owner: Any) -> Any: ... + def __set__(self, inst: Any, value: Any) -> None: ... diff --git a/gtm/lib/python3.12/site-packages/aiohttp/_helpers.pyx b/gtm/lib/python3.12/site-packages/aiohttp/_helpers.pyx new file mode 100644 index 0000000000000000000000000000000000000000..665f367c5decd9959582886de9ac2b9a0288ae81 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/_helpers.pyx @@ -0,0 +1,35 @@ +cdef class reify: + """Use as a class method decorator. It operates almost exactly like + the Python `@property` decorator, but it puts the result of the + method it decorates into the instance dict after the first call, + effectively replacing the function it decorates with an instance + variable. It is, in Python parlance, a data descriptor. + + """ + + cdef object wrapped + cdef object name + + def __init__(self, wrapped): + self.wrapped = wrapped + self.name = wrapped.__name__ + + @property + def __doc__(self): + return self.wrapped.__doc__ + + def __get__(self, inst, owner): + try: + try: + return inst._cache[self.name] + except KeyError: + val = self.wrapped(inst) + inst._cache[self.name] = val + return val + except AttributeError: + if inst is None: + return self + raise + + def __set__(self, inst, value): + raise AttributeError("reified property is read-only") diff --git a/gtm/lib/python3.12/site-packages/aiohttp/_http_parser.cpython-312-darwin.so b/gtm/lib/python3.12/site-packages/aiohttp/_http_parser.cpython-312-darwin.so new file mode 100644 index 0000000000000000000000000000000000000000..c63e7a27dad95f15a7877bb930c23c2100eb08e7 Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/_http_parser.cpython-312-darwin.so differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/_http_parser.pyx b/gtm/lib/python3.12/site-packages/aiohttp/_http_parser.pyx new file mode 100644 index 0000000000000000000000000000000000000000..3f28fbdab4397cbfbc76ee725864327b59c59798 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/_http_parser.pyx @@ -0,0 +1,836 @@ +#cython: language_level=3 +# +# Based on https://github.com/MagicStack/httptools +# + +from cpython cimport ( + Py_buffer, + PyBUF_SIMPLE, + PyBuffer_Release, + PyBytes_AsString, + PyBytes_AsStringAndSize, + PyObject_GetBuffer, +) +from cpython.mem cimport PyMem_Free, PyMem_Malloc +from libc.limits cimport ULLONG_MAX +from libc.string cimport memcpy + +from multidict import CIMultiDict as _CIMultiDict, CIMultiDictProxy as _CIMultiDictProxy +from yarl import URL as _URL + +from aiohttp import hdrs +from aiohttp.helpers import DEBUG + +from .http_exceptions import ( + BadHttpMessage, + BadStatusLine, + ContentLengthError, + InvalidHeader, + InvalidURLError, + LineTooLong, + PayloadEncodingError, + TransferEncodingError, +) +from .http_parser import DeflateBuffer as _DeflateBuffer +from .http_writer import ( + HttpVersion as _HttpVersion, + HttpVersion10 as _HttpVersion10, + HttpVersion11 as _HttpVersion11, +) +from .streams import EMPTY_PAYLOAD as _EMPTY_PAYLOAD, StreamReader as _StreamReader + +cimport cython + +from aiohttp cimport _cparser as cparser + +include "_headers.pxi" + +from aiohttp cimport _find_header + +DEF DEFAULT_FREELIST_SIZE = 250 + +cdef extern from "Python.h": + int PyByteArray_Resize(object, Py_ssize_t) except -1 + Py_ssize_t PyByteArray_Size(object) except -1 + char* PyByteArray_AsString(object) + +__all__ = ('HttpRequestParser', 'HttpResponseParser', + 'RawRequestMessage', 'RawResponseMessage') + +cdef object URL = _URL +cdef object URL_build = URL.build +cdef object CIMultiDict = _CIMultiDict +cdef object CIMultiDictProxy = _CIMultiDictProxy +cdef object HttpVersion = _HttpVersion +cdef object HttpVersion10 = _HttpVersion10 +cdef object HttpVersion11 = _HttpVersion11 +cdef object SEC_WEBSOCKET_KEY1 = hdrs.SEC_WEBSOCKET_KEY1 +cdef object CONTENT_ENCODING = hdrs.CONTENT_ENCODING +cdef object EMPTY_PAYLOAD = _EMPTY_PAYLOAD +cdef object StreamReader = _StreamReader +cdef object DeflateBuffer = _DeflateBuffer + + +cdef inline object extend(object buf, const char* at, size_t length): + cdef Py_ssize_t s + cdef char* ptr + s = PyByteArray_Size(buf) + PyByteArray_Resize(buf, s + length) + ptr = PyByteArray_AsString(buf) + memcpy(ptr + s, at, length) + + +DEF METHODS_COUNT = 46; + +cdef list _http_method = [] + +for i in range(METHODS_COUNT): + _http_method.append( + cparser.llhttp_method_name( i).decode('ascii')) + + +cdef inline str http_method_str(int i): + if i < METHODS_COUNT: + return _http_method[i] + else: + return "" + +cdef inline object find_header(bytes raw_header): + cdef Py_ssize_t size + cdef char *buf + cdef int idx + PyBytes_AsStringAndSize(raw_header, &buf, &size) + idx = _find_header.find_header(buf, size) + if idx == -1: + return raw_header.decode('utf-8', 'surrogateescape') + return headers[idx] + + +@cython.freelist(DEFAULT_FREELIST_SIZE) +cdef class RawRequestMessage: + cdef readonly str method + cdef readonly str path + cdef readonly object version # HttpVersion + cdef readonly object headers # CIMultiDict + cdef readonly object raw_headers # tuple + cdef readonly object should_close + cdef readonly object compression + cdef readonly object upgrade + cdef readonly object chunked + cdef readonly object url # yarl.URL + + def __init__(self, method, path, version, headers, raw_headers, + should_close, compression, upgrade, chunked, url): + self.method = method + self.path = path + self.version = version + self.headers = headers + self.raw_headers = raw_headers + self.should_close = should_close + self.compression = compression + self.upgrade = upgrade + self.chunked = chunked + self.url = url + + def __repr__(self): + info = [] + info.append(("method", self.method)) + info.append(("path", self.path)) + info.append(("version", self.version)) + info.append(("headers", self.headers)) + info.append(("raw_headers", self.raw_headers)) + info.append(("should_close", self.should_close)) + info.append(("compression", self.compression)) + info.append(("upgrade", self.upgrade)) + info.append(("chunked", self.chunked)) + info.append(("url", self.url)) + sinfo = ', '.join(name + '=' + repr(val) for name, val in info) + return '' + + def _replace(self, **dct): + cdef RawRequestMessage ret + ret = _new_request_message(self.method, + self.path, + self.version, + self.headers, + self.raw_headers, + self.should_close, + self.compression, + self.upgrade, + self.chunked, + self.url) + if "method" in dct: + ret.method = dct["method"] + if "path" in dct: + ret.path = dct["path"] + if "version" in dct: + ret.version = dct["version"] + if "headers" in dct: + ret.headers = dct["headers"] + if "raw_headers" in dct: + ret.raw_headers = dct["raw_headers"] + if "should_close" in dct: + ret.should_close = dct["should_close"] + if "compression" in dct: + ret.compression = dct["compression"] + if "upgrade" in dct: + ret.upgrade = dct["upgrade"] + if "chunked" in dct: + ret.chunked = dct["chunked"] + if "url" in dct: + ret.url = dct["url"] + return ret + +cdef _new_request_message(str method, + str path, + object version, + object headers, + object raw_headers, + bint should_close, + object compression, + bint upgrade, + bint chunked, + object url): + cdef RawRequestMessage ret + ret = RawRequestMessage.__new__(RawRequestMessage) + ret.method = method + ret.path = path + ret.version = version + ret.headers = headers + ret.raw_headers = raw_headers + ret.should_close = should_close + ret.compression = compression + ret.upgrade = upgrade + ret.chunked = chunked + ret.url = url + return ret + + +@cython.freelist(DEFAULT_FREELIST_SIZE) +cdef class RawResponseMessage: + cdef readonly object version # HttpVersion + cdef readonly int code + cdef readonly str reason + cdef readonly object headers # CIMultiDict + cdef readonly object raw_headers # tuple + cdef readonly object should_close + cdef readonly object compression + cdef readonly object upgrade + cdef readonly object chunked + + def __init__(self, version, code, reason, headers, raw_headers, + should_close, compression, upgrade, chunked): + self.version = version + self.code = code + self.reason = reason + self.headers = headers + self.raw_headers = raw_headers + self.should_close = should_close + self.compression = compression + self.upgrade = upgrade + self.chunked = chunked + + def __repr__(self): + info = [] + info.append(("version", self.version)) + info.append(("code", self.code)) + info.append(("reason", self.reason)) + info.append(("headers", self.headers)) + info.append(("raw_headers", self.raw_headers)) + info.append(("should_close", self.should_close)) + info.append(("compression", self.compression)) + info.append(("upgrade", self.upgrade)) + info.append(("chunked", self.chunked)) + sinfo = ', '.join(name + '=' + repr(val) for name, val in info) + return '' + + +cdef _new_response_message(object version, + int code, + str reason, + object headers, + object raw_headers, + bint should_close, + object compression, + bint upgrade, + bint chunked): + cdef RawResponseMessage ret + ret = RawResponseMessage.__new__(RawResponseMessage) + ret.version = version + ret.code = code + ret.reason = reason + ret.headers = headers + ret.raw_headers = raw_headers + ret.should_close = should_close + ret.compression = compression + ret.upgrade = upgrade + ret.chunked = chunked + return ret + + +@cython.internal +cdef class HttpParser: + + cdef: + cparser.llhttp_t* _cparser + cparser.llhttp_settings_t* _csettings + + bytearray _raw_name + bytearray _raw_value + bint _has_value + + object _protocol + object _loop + object _timer + + size_t _max_line_size + size_t _max_field_size + size_t _max_headers + bint _response_with_body + bint _read_until_eof + + bint _started + object _url + bytearray _buf + str _path + str _reason + object _headers + list _raw_headers + bint _upgraded + list _messages + object _payload + bint _payload_error + object _payload_exception + object _last_error + bint _auto_decompress + int _limit + + str _content_encoding + + Py_buffer py_buf + + def __cinit__(self): + self._cparser = \ + PyMem_Malloc(sizeof(cparser.llhttp_t)) + if self._cparser is NULL: + raise MemoryError() + + self._csettings = \ + PyMem_Malloc(sizeof(cparser.llhttp_settings_t)) + if self._csettings is NULL: + raise MemoryError() + + def __dealloc__(self): + PyMem_Free(self._cparser) + PyMem_Free(self._csettings) + + cdef _init( + self, cparser.llhttp_type mode, + object protocol, object loop, int limit, + object timer=None, + size_t max_line_size=8190, size_t max_headers=32768, + size_t max_field_size=8190, payload_exception=None, + bint response_with_body=True, bint read_until_eof=False, + bint auto_decompress=True, + ): + cparser.llhttp_settings_init(self._csettings) + cparser.llhttp_init(self._cparser, mode, self._csettings) + self._cparser.data = self + self._cparser.content_length = 0 + + self._protocol = protocol + self._loop = loop + self._timer = timer + + self._buf = bytearray() + self._payload = None + self._payload_error = 0 + self._payload_exception = payload_exception + self._messages = [] + + self._raw_name = bytearray() + self._raw_value = bytearray() + self._has_value = False + + self._max_line_size = max_line_size + self._max_headers = max_headers + self._max_field_size = max_field_size + self._response_with_body = response_with_body + self._read_until_eof = read_until_eof + self._upgraded = False + self._auto_decompress = auto_decompress + self._content_encoding = None + + self._csettings.on_url = cb_on_url + self._csettings.on_status = cb_on_status + self._csettings.on_header_field = cb_on_header_field + self._csettings.on_header_value = cb_on_header_value + self._csettings.on_headers_complete = cb_on_headers_complete + self._csettings.on_body = cb_on_body + self._csettings.on_message_begin = cb_on_message_begin + self._csettings.on_message_complete = cb_on_message_complete + self._csettings.on_chunk_header = cb_on_chunk_header + self._csettings.on_chunk_complete = cb_on_chunk_complete + + self._last_error = None + self._limit = limit + + cdef _process_header(self): + if self._raw_name: + raw_name = bytes(self._raw_name) + raw_value = bytes(self._raw_value) + + name = find_header(raw_name) + value = raw_value.decode('utf-8', 'surrogateescape') + + self._headers.add(name, value) + + if name is CONTENT_ENCODING: + self._content_encoding = value + + PyByteArray_Resize(self._raw_name, 0) + PyByteArray_Resize(self._raw_value, 0) + self._has_value = False + self._raw_headers.append((raw_name, raw_value)) + + cdef _on_header_field(self, char* at, size_t length): + cdef Py_ssize_t size + cdef char *buf + if self._has_value: + self._process_header() + + size = PyByteArray_Size(self._raw_name) + PyByteArray_Resize(self._raw_name, size + length) + buf = PyByteArray_AsString(self._raw_name) + memcpy(buf + size, at, length) + + cdef _on_header_value(self, char* at, size_t length): + cdef Py_ssize_t size + cdef char *buf + + size = PyByteArray_Size(self._raw_value) + PyByteArray_Resize(self._raw_value, size + length) + buf = PyByteArray_AsString(self._raw_value) + memcpy(buf + size, at, length) + self._has_value = True + + cdef _on_headers_complete(self): + self._process_header() + + method = http_method_str(self._cparser.method) + should_close = not cparser.llhttp_should_keep_alive(self._cparser) + upgrade = self._cparser.upgrade + chunked = self._cparser.flags & cparser.F_CHUNKED + + raw_headers = tuple(self._raw_headers) + headers = CIMultiDictProxy(self._headers) + + if upgrade or self._cparser.method == cparser.HTTP_CONNECT: + self._upgraded = True + + # do not support old websocket spec + if SEC_WEBSOCKET_KEY1 in headers: + raise InvalidHeader(SEC_WEBSOCKET_KEY1) + + encoding = None + enc = self._content_encoding + if enc is not None: + self._content_encoding = None + enc = enc.lower() + if enc in ('gzip', 'deflate', 'br'): + encoding = enc + + if self._cparser.type == cparser.HTTP_REQUEST: + msg = _new_request_message( + method, self._path, + self.http_version(), headers, raw_headers, + should_close, encoding, upgrade, chunked, self._url) + else: + msg = _new_response_message( + self.http_version(), self._cparser.status_code, self._reason, + headers, raw_headers, should_close, encoding, + upgrade, chunked) + + if ( + ULLONG_MAX > self._cparser.content_length > 0 or chunked or + self._cparser.method == cparser.HTTP_CONNECT or + (self._cparser.status_code >= 199 and + self._cparser.content_length == 0 and + self._read_until_eof) + ): + payload = StreamReader( + self._protocol, timer=self._timer, loop=self._loop, + limit=self._limit) + else: + payload = EMPTY_PAYLOAD + + self._payload = payload + if encoding is not None and self._auto_decompress: + self._payload = DeflateBuffer(payload, encoding) + + if not self._response_with_body: + payload = EMPTY_PAYLOAD + + self._messages.append((msg, payload)) + + cdef _on_message_complete(self): + self._payload.feed_eof() + self._payload = None + + cdef _on_chunk_header(self): + self._payload.begin_http_chunk_receiving() + + cdef _on_chunk_complete(self): + self._payload.end_http_chunk_receiving() + + cdef object _on_status_complete(self): + pass + + cdef inline http_version(self): + cdef cparser.llhttp_t* parser = self._cparser + + if parser.http_major == 1: + if parser.http_minor == 0: + return HttpVersion10 + elif parser.http_minor == 1: + return HttpVersion11 + + return HttpVersion(parser.http_major, parser.http_minor) + + ### Public API ### + + def feed_eof(self): + cdef bytes desc + + if self._payload is not None: + if self._cparser.flags & cparser.F_CHUNKED: + raise TransferEncodingError( + "Not enough data for satisfy transfer length header.") + elif self._cparser.flags & cparser.F_CONTENT_LENGTH: + raise ContentLengthError( + "Not enough data for satisfy content length header.") + elif cparser.llhttp_get_errno(self._cparser) != cparser.HPE_OK: + desc = cparser.llhttp_get_error_reason(self._cparser) + raise PayloadEncodingError(desc.decode('latin-1')) + else: + self._payload.feed_eof() + elif self._started: + self._on_headers_complete() + if self._messages: + return self._messages[-1][0] + + def feed_data(self, data): + cdef: + size_t data_len + size_t nb + cdef cparser.llhttp_errno_t errno + + PyObject_GetBuffer(data, &self.py_buf, PyBUF_SIMPLE) + data_len = self.py_buf.len + + errno = cparser.llhttp_execute( + self._cparser, + self.py_buf.buf, + data_len) + + if errno is cparser.HPE_PAUSED_UPGRADE: + cparser.llhttp_resume_after_upgrade(self._cparser) + + nb = cparser.llhttp_get_error_pos(self._cparser) - self.py_buf.buf + + PyBuffer_Release(&self.py_buf) + + if errno not in (cparser.HPE_OK, cparser.HPE_PAUSED_UPGRADE): + if self._payload_error == 0: + if self._last_error is not None: + ex = self._last_error + self._last_error = None + else: + after = cparser.llhttp_get_error_pos(self._cparser) + before = data[:after - self.py_buf.buf] + after_b = after.split(b"\r\n", 1)[0] + before = before.rsplit(b"\r\n", 1)[-1] + data = before + after_b + pointer = " " * (len(repr(before))-1) + "^" + ex = parser_error_from_errno(self._cparser, data, pointer) + self._payload = None + raise ex + + if self._messages: + messages = self._messages + self._messages = [] + else: + messages = () + + if self._upgraded: + return messages, True, data[nb:] + else: + return messages, False, b'' + + def set_upgraded(self, val): + self._upgraded = val + + +cdef class HttpRequestParser(HttpParser): + + def __init__( + self, protocol, loop, int limit, timer=None, + size_t max_line_size=8190, size_t max_headers=32768, + size_t max_field_size=8190, payload_exception=None, + bint response_with_body=True, bint read_until_eof=False, + bint auto_decompress=True, + ): + self._init(cparser.HTTP_REQUEST, protocol, loop, limit, timer, + max_line_size, max_headers, max_field_size, + payload_exception, response_with_body, read_until_eof, + auto_decompress) + + cdef object _on_status_complete(self): + cdef int idx1, idx2 + if not self._buf: + return + self._path = self._buf.decode('utf-8', 'surrogateescape') + try: + idx3 = len(self._path) + if self._cparser.method == cparser.HTTP_CONNECT: + # authority-form, + # https://datatracker.ietf.org/doc/html/rfc7230#section-5.3.3 + self._url = URL.build(authority=self._path, encoded=True) + elif idx3 > 1 and self._path[0] == '/': + # origin-form, + # https://datatracker.ietf.org/doc/html/rfc7230#section-5.3.1 + idx1 = self._path.find("?") + if idx1 == -1: + query = "" + idx2 = self._path.find("#") + if idx2 == -1: + path = self._path + fragment = "" + else: + path = self._path[0: idx2] + fragment = self._path[idx2+1:] + + else: + path = self._path[0:idx1] + idx1 += 1 + idx2 = self._path.find("#", idx1+1) + if idx2 == -1: + query = self._path[idx1:] + fragment = "" + else: + query = self._path[idx1: idx2] + fragment = self._path[idx2+1:] + + self._url = URL.build( + path=path, + query_string=query, + fragment=fragment, + encoded=True, + ) + else: + # absolute-form for proxy maybe, + # https://datatracker.ietf.org/doc/html/rfc7230#section-5.3.2 + self._url = URL(self._path, encoded=True) + finally: + PyByteArray_Resize(self._buf, 0) + + +cdef class HttpResponseParser(HttpParser): + + def __init__( + self, protocol, loop, int limit, timer=None, + size_t max_line_size=8190, size_t max_headers=32768, + size_t max_field_size=8190, payload_exception=None, + bint response_with_body=True, bint read_until_eof=False, + bint auto_decompress=True + ): + self._init(cparser.HTTP_RESPONSE, protocol, loop, limit, timer, + max_line_size, max_headers, max_field_size, + payload_exception, response_with_body, read_until_eof, + auto_decompress) + # Use strict parsing on dev mode, so users are warned about broken servers. + if not DEBUG: + cparser.llhttp_set_lenient_headers(self._cparser, 1) + cparser.llhttp_set_lenient_optional_cr_before_lf(self._cparser, 1) + cparser.llhttp_set_lenient_spaces_after_chunk_size(self._cparser, 1) + + cdef object _on_status_complete(self): + if self._buf: + self._reason = self._buf.decode('utf-8', 'surrogateescape') + PyByteArray_Resize(self._buf, 0) + else: + self._reason = self._reason or '' + +cdef int cb_on_message_begin(cparser.llhttp_t* parser) except -1: + cdef HttpParser pyparser = parser.data + + pyparser._started = True + pyparser._headers = CIMultiDict() + pyparser._raw_headers = [] + PyByteArray_Resize(pyparser._buf, 0) + pyparser._path = None + pyparser._reason = None + return 0 + + +cdef int cb_on_url(cparser.llhttp_t* parser, + const char *at, size_t length) except -1: + cdef HttpParser pyparser = parser.data + try: + if length > pyparser._max_line_size: + raise LineTooLong( + 'Status line is too long', pyparser._max_line_size, length) + extend(pyparser._buf, at, length) + except BaseException as ex: + pyparser._last_error = ex + return -1 + else: + return 0 + + +cdef int cb_on_status(cparser.llhttp_t* parser, + const char *at, size_t length) except -1: + cdef HttpParser pyparser = parser.data + cdef str reason + try: + if length > pyparser._max_line_size: + raise LineTooLong( + 'Status line is too long', pyparser._max_line_size, length) + extend(pyparser._buf, at, length) + except BaseException as ex: + pyparser._last_error = ex + return -1 + else: + return 0 + + +cdef int cb_on_header_field(cparser.llhttp_t* parser, + const char *at, size_t length) except -1: + cdef HttpParser pyparser = parser.data + cdef Py_ssize_t size + try: + pyparser._on_status_complete() + size = len(pyparser._raw_name) + length + if size > pyparser._max_field_size: + raise LineTooLong( + 'Header name is too long', pyparser._max_field_size, size) + pyparser._on_header_field(at, length) + except BaseException as ex: + pyparser._last_error = ex + return -1 + else: + return 0 + + +cdef int cb_on_header_value(cparser.llhttp_t* parser, + const char *at, size_t length) except -1: + cdef HttpParser pyparser = parser.data + cdef Py_ssize_t size + try: + size = len(pyparser._raw_value) + length + if size > pyparser._max_field_size: + raise LineTooLong( + 'Header value is too long', pyparser._max_field_size, size) + pyparser._on_header_value(at, length) + except BaseException as ex: + pyparser._last_error = ex + return -1 + else: + return 0 + + +cdef int cb_on_headers_complete(cparser.llhttp_t* parser) except -1: + cdef HttpParser pyparser = parser.data + try: + pyparser._on_status_complete() + pyparser._on_headers_complete() + except BaseException as exc: + pyparser._last_error = exc + return -1 + else: + if ( + pyparser._cparser.upgrade or + pyparser._cparser.method == cparser.HTTP_CONNECT + ): + return 2 + else: + return 0 + + +cdef int cb_on_body(cparser.llhttp_t* parser, + const char *at, size_t length) except -1: + cdef HttpParser pyparser = parser.data + cdef bytes body = at[:length] + try: + pyparser._payload.feed_data(body, length) + except BaseException as exc: + if pyparser._payload_exception is not None: + pyparser._payload.set_exception(pyparser._payload_exception(str(exc))) + else: + pyparser._payload.set_exception(exc) + pyparser._payload_error = 1 + return -1 + else: + return 0 + + +cdef int cb_on_message_complete(cparser.llhttp_t* parser) except -1: + cdef HttpParser pyparser = parser.data + try: + pyparser._started = False + pyparser._on_message_complete() + except BaseException as exc: + pyparser._last_error = exc + return -1 + else: + return 0 + + +cdef int cb_on_chunk_header(cparser.llhttp_t* parser) except -1: + cdef HttpParser pyparser = parser.data + try: + pyparser._on_chunk_header() + except BaseException as exc: + pyparser._last_error = exc + return -1 + else: + return 0 + + +cdef int cb_on_chunk_complete(cparser.llhttp_t* parser) except -1: + cdef HttpParser pyparser = parser.data + try: + pyparser._on_chunk_complete() + except BaseException as exc: + pyparser._last_error = exc + return -1 + else: + return 0 + + +cdef parser_error_from_errno(cparser.llhttp_t* parser, data, pointer): + cdef cparser.llhttp_errno_t errno = cparser.llhttp_get_errno(parser) + cdef bytes desc = cparser.llhttp_get_error_reason(parser) + + err_msg = "{}:\n\n {!r}\n {}".format(desc.decode("latin-1"), data, pointer) + + if errno in {cparser.HPE_CB_MESSAGE_BEGIN, + cparser.HPE_CB_HEADERS_COMPLETE, + cparser.HPE_CB_MESSAGE_COMPLETE, + cparser.HPE_CB_CHUNK_HEADER, + cparser.HPE_CB_CHUNK_COMPLETE, + cparser.HPE_INVALID_CONSTANT, + cparser.HPE_INVALID_HEADER_TOKEN, + cparser.HPE_INVALID_CONTENT_LENGTH, + cparser.HPE_INVALID_CHUNK_SIZE, + cparser.HPE_INVALID_EOF_STATE, + cparser.HPE_INVALID_TRANSFER_ENCODING}: + return BadHttpMessage(err_msg) + elif errno in {cparser.HPE_INVALID_STATUS, + cparser.HPE_INVALID_METHOD, + cparser.HPE_INVALID_VERSION}: + return BadStatusLine(error=err_msg) + elif errno == cparser.HPE_INVALID_URL: + return InvalidURLError(err_msg) + + return BadHttpMessage(err_msg) diff --git a/gtm/lib/python3.12/site-packages/aiohttp/_http_writer.cpython-312-darwin.so b/gtm/lib/python3.12/site-packages/aiohttp/_http_writer.cpython-312-darwin.so new file mode 100644 index 0000000000000000000000000000000000000000..ccebbb6fbf55a48eecb063d941419e21863b3547 Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/_http_writer.cpython-312-darwin.so differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/_http_writer.pyx b/gtm/lib/python3.12/site-packages/aiohttp/_http_writer.pyx new file mode 100644 index 0000000000000000000000000000000000000000..eff8521958624946ffa364a6433e7b8f6b9d2c0f --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/_http_writer.pyx @@ -0,0 +1,163 @@ +from cpython.bytes cimport PyBytes_FromStringAndSize +from cpython.exc cimport PyErr_NoMemory +from cpython.mem cimport PyMem_Free, PyMem_Malloc, PyMem_Realloc +from cpython.object cimport PyObject_Str +from libc.stdint cimport uint8_t, uint64_t +from libc.string cimport memcpy + +from multidict import istr + +DEF BUF_SIZE = 16 * 1024 # 16KiB +cdef char BUFFER[BUF_SIZE] + +cdef object _istr = istr + + +# ----------------- writer --------------------------- + +cdef struct Writer: + char *buf + Py_ssize_t size + Py_ssize_t pos + + +cdef inline void _init_writer(Writer* writer): + writer.buf = &BUFFER[0] + writer.size = BUF_SIZE + writer.pos = 0 + + +cdef inline void _release_writer(Writer* writer): + if writer.buf != BUFFER: + PyMem_Free(writer.buf) + + +cdef inline int _write_byte(Writer* writer, uint8_t ch): + cdef char * buf + cdef Py_ssize_t size + + if writer.pos == writer.size: + # reallocate + size = writer.size + BUF_SIZE + if writer.buf == BUFFER: + buf = PyMem_Malloc(size) + if buf == NULL: + PyErr_NoMemory() + return -1 + memcpy(buf, writer.buf, writer.size) + else: + buf = PyMem_Realloc(writer.buf, size) + if buf == NULL: + PyErr_NoMemory() + return -1 + writer.buf = buf + writer.size = size + writer.buf[writer.pos] = ch + writer.pos += 1 + return 0 + + +cdef inline int _write_utf8(Writer* writer, Py_UCS4 symbol): + cdef uint64_t utf = symbol + + if utf < 0x80: + return _write_byte(writer, utf) + elif utf < 0x800: + if _write_byte(writer, (0xc0 | (utf >> 6))) < 0: + return -1 + return _write_byte(writer, (0x80 | (utf & 0x3f))) + elif 0xD800 <= utf <= 0xDFFF: + # surogate pair, ignored + return 0 + elif utf < 0x10000: + if _write_byte(writer, (0xe0 | (utf >> 12))) < 0: + return -1 + if _write_byte(writer, (0x80 | ((utf >> 6) & 0x3f))) < 0: + return -1 + return _write_byte(writer, (0x80 | (utf & 0x3f))) + elif utf > 0x10FFFF: + # symbol is too large + return 0 + else: + if _write_byte(writer, (0xf0 | (utf >> 18))) < 0: + return -1 + if _write_byte(writer, + (0x80 | ((utf >> 12) & 0x3f))) < 0: + return -1 + if _write_byte(writer, + (0x80 | ((utf >> 6) & 0x3f))) < 0: + return -1 + return _write_byte(writer, (0x80 | (utf & 0x3f))) + + +cdef inline int _write_str(Writer* writer, str s): + cdef Py_UCS4 ch + for ch in s: + if _write_utf8(writer, ch) < 0: + return -1 + + +# --------------- _serialize_headers ---------------------- + +cdef str to_str(object s): + typ = type(s) + if typ is str: + return s + elif typ is _istr: + return PyObject_Str(s) + elif not isinstance(s, str): + raise TypeError("Cannot serialize non-str key {!r}".format(s)) + else: + return str(s) + + +cdef void _safe_header(str string) except *: + if "\r" in string or "\n" in string: + raise ValueError( + "Newline or carriage return character detected in HTTP status message or " + "header. This is a potential security issue." + ) + + +def _serialize_headers(str status_line, headers): + cdef Writer writer + cdef object key + cdef object val + cdef bytes ret + + _init_writer(&writer) + + for key, val in headers.items(): + _safe_header(to_str(key)) + _safe_header(to_str(val)) + + try: + if _write_str(&writer, status_line) < 0: + raise + if _write_byte(&writer, b'\r') < 0: + raise + if _write_byte(&writer, b'\n') < 0: + raise + + for key, val in headers.items(): + if _write_str(&writer, to_str(key)) < 0: + raise + if _write_byte(&writer, b':') < 0: + raise + if _write_byte(&writer, b' ') < 0: + raise + if _write_str(&writer, to_str(val)) < 0: + raise + if _write_byte(&writer, b'\r') < 0: + raise + if _write_byte(&writer, b'\n') < 0: + raise + + if _write_byte(&writer, b'\r') < 0: + raise + if _write_byte(&writer, b'\n') < 0: + raise + + return PyBytes_FromStringAndSize(writer.buf, writer.pos) + finally: + _release_writer(&writer) diff --git a/gtm/lib/python3.12/site-packages/aiohttp/_websocket.cpython-312-darwin.so b/gtm/lib/python3.12/site-packages/aiohttp/_websocket.cpython-312-darwin.so new file mode 100644 index 0000000000000000000000000000000000000000..f7d1ad62b1e411fa0a8746872a11d38971647191 Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiohttp/_websocket.cpython-312-darwin.so differ diff --git a/gtm/lib/python3.12/site-packages/aiohttp/_websocket.pyx b/gtm/lib/python3.12/site-packages/aiohttp/_websocket.pyx new file mode 100644 index 0000000000000000000000000000000000000000..94318d2b1bec78546a9f6f030e0b580e2dbc9e70 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/_websocket.pyx @@ -0,0 +1,56 @@ +from cpython cimport PyBytes_AsString + + +#from cpython cimport PyByteArray_AsString # cython still not exports that +cdef extern from "Python.h": + char* PyByteArray_AsString(bytearray ba) except NULL + +from libc.stdint cimport uint32_t, uint64_t, uintmax_t + + +def _websocket_mask_cython(object mask, object data): + """Note, this function mutates its `data` argument + """ + cdef: + Py_ssize_t data_len, i + # bit operations on signed integers are implementation-specific + unsigned char * in_buf + const unsigned char * mask_buf + uint32_t uint32_msk + uint64_t uint64_msk + + assert len(mask) == 4 + + if not isinstance(mask, bytes): + mask = bytes(mask) + + if isinstance(data, bytearray): + data = data + else: + data = bytearray(data) + + data_len = len(data) + in_buf = PyByteArray_AsString(data) + mask_buf = PyBytes_AsString(mask) + uint32_msk = (mask_buf)[0] + + # TODO: align in_data ptr to achieve even faster speeds + # does it need in python ?! malloc() always aligns to sizeof(long) bytes + + if sizeof(size_t) >= 8: + uint64_msk = uint32_msk + uint64_msk = (uint64_msk << 32) | uint32_msk + + while data_len >= 8: + (in_buf)[0] ^= uint64_msk + in_buf += 8 + data_len -= 8 + + + while data_len >= 4: + (in_buf)[0] ^= uint32_msk + in_buf += 4 + data_len -= 4 + + for i in range(0, data_len): + in_buf[i] ^= mask_buf[i] diff --git a/gtm/lib/python3.12/site-packages/aiohttp/abc.py b/gtm/lib/python3.12/site-packages/aiohttp/abc.py new file mode 100644 index 0000000000000000000000000000000000000000..ee838998997eaa6318903567588f6e8b60fcd5a1 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/abc.py @@ -0,0 +1,209 @@ +import asyncio +import logging +from abc import ABC, abstractmethod +from collections.abc import Sized +from http.cookies import BaseCookie, Morsel +from typing import ( + TYPE_CHECKING, + Any, + Awaitable, + Callable, + Dict, + Generator, + Iterable, + List, + Optional, + Tuple, +) + +from multidict import CIMultiDict +from yarl import URL + +from .helpers import get_running_loop +from .typedefs import LooseCookies + +if TYPE_CHECKING: + from .web_app import Application + from .web_exceptions import HTTPException + from .web_request import BaseRequest, Request + from .web_response import StreamResponse +else: + BaseRequest = Request = Application = StreamResponse = None + HTTPException = None + + +class AbstractRouter(ABC): + def __init__(self) -> None: + self._frozen = False + + def post_init(self, app: Application) -> None: + """Post init stage. + + Not an abstract method for sake of backward compatibility, + but if the router wants to be aware of the application + it can override this. + """ + + @property + def frozen(self) -> bool: + return self._frozen + + def freeze(self) -> None: + """Freeze router.""" + self._frozen = True + + @abstractmethod + async def resolve(self, request: Request) -> "AbstractMatchInfo": + """Return MATCH_INFO for given request""" + + +class AbstractMatchInfo(ABC): + @property # pragma: no branch + @abstractmethod + def handler(self) -> Callable[[Request], Awaitable[StreamResponse]]: + """Execute matched request handler""" + + @property + @abstractmethod + def expect_handler( + self, + ) -> Callable[[Request], Awaitable[Optional[StreamResponse]]]: + """Expect handler for 100-continue processing""" + + @property # pragma: no branch + @abstractmethod + def http_exception(self) -> Optional[HTTPException]: + """HTTPException instance raised on router's resolving, or None""" + + @abstractmethod # pragma: no branch + def get_info(self) -> Dict[str, Any]: + """Return a dict with additional info useful for introspection""" + + @property # pragma: no branch + @abstractmethod + def apps(self) -> Tuple[Application, ...]: + """Stack of nested applications. + + Top level application is left-most element. + + """ + + @abstractmethod + def add_app(self, app: Application) -> None: + """Add application to the nested apps stack.""" + + @abstractmethod + def freeze(self) -> None: + """Freeze the match info. + + The method is called after route resolution. + + After the call .add_app() is forbidden. + + """ + + +class AbstractView(ABC): + """Abstract class based view.""" + + def __init__(self, request: Request) -> None: + self._request = request + + @property + def request(self) -> Request: + """Request instance.""" + return self._request + + @abstractmethod + def __await__(self) -> Generator[Any, None, StreamResponse]: + """Execute the view handler.""" + + +class AbstractResolver(ABC): + """Abstract DNS resolver.""" + + @abstractmethod + async def resolve(self, host: str, port: int, family: int) -> List[Dict[str, Any]]: + """Return IP address for given hostname""" + + @abstractmethod + async def close(self) -> None: + """Release resolver""" + + +if TYPE_CHECKING: + IterableBase = Iterable[Morsel[str]] +else: + IterableBase = Iterable + + +ClearCookiePredicate = Callable[["Morsel[str]"], bool] + + +class AbstractCookieJar(Sized, IterableBase): + """Abstract Cookie Jar.""" + + def __init__(self, *, loop: Optional[asyncio.AbstractEventLoop] = None) -> None: + self._loop = get_running_loop(loop) + + @abstractmethod + def clear(self, predicate: Optional[ClearCookiePredicate] = None) -> None: + """Clear all cookies if no predicate is passed.""" + + @abstractmethod + def clear_domain(self, domain: str) -> None: + """Clear all cookies for domain and all subdomains.""" + + @abstractmethod + def update_cookies(self, cookies: LooseCookies, response_url: URL = URL()) -> None: + """Update cookies.""" + + @abstractmethod + def filter_cookies(self, request_url: URL) -> "BaseCookie[str]": + """Return the jar's cookies filtered by their attributes.""" + + +class AbstractStreamWriter(ABC): + """Abstract stream writer.""" + + buffer_size = 0 + output_size = 0 + length: Optional[int] = 0 + + @abstractmethod + async def write(self, chunk: bytes) -> None: + """Write chunk into stream.""" + + @abstractmethod + async def write_eof(self, chunk: bytes = b"") -> None: + """Write last chunk.""" + + @abstractmethod + async def drain(self) -> None: + """Flush the write buffer.""" + + @abstractmethod + def enable_compression(self, encoding: str = "deflate") -> None: + """Enable HTTP body compression""" + + @abstractmethod + def enable_chunking(self) -> None: + """Enable HTTP chunked mode""" + + @abstractmethod + async def write_headers( + self, status_line: str, headers: "CIMultiDict[str]" + ) -> None: + """Write HTTP headers""" + + +class AbstractAccessLogger(ABC): + """Abstract writer to access log.""" + + def __init__(self, logger: logging.Logger, log_format: str) -> None: + self.logger = logger + self.log_format = log_format + + @abstractmethod + def log(self, request: BaseRequest, response: StreamResponse, time: float) -> None: + """Emit log to logger.""" diff --git a/gtm/lib/python3.12/site-packages/aiohttp/base_protocol.py b/gtm/lib/python3.12/site-packages/aiohttp/base_protocol.py new file mode 100644 index 0000000000000000000000000000000000000000..4c9f0a752e3aa833a17b7adf0c261d19a5f083fa --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/base_protocol.py @@ -0,0 +1,90 @@ +import asyncio +from typing import Optional, cast + +from .tcp_helpers import tcp_nodelay + + +class BaseProtocol(asyncio.Protocol): + __slots__ = ( + "_loop", + "_paused", + "_drain_waiter", + "_connection_lost", + "_reading_paused", + "transport", + ) + + def __init__(self, loop: asyncio.AbstractEventLoop) -> None: + self._loop: asyncio.AbstractEventLoop = loop + self._paused = False + self._drain_waiter: Optional[asyncio.Future[None]] = None + self._reading_paused = False + + self.transport: Optional[asyncio.Transport] = None + + @property + def connected(self) -> bool: + """Return True if the connection is open.""" + return self.transport is not None + + def pause_writing(self) -> None: + assert not self._paused + self._paused = True + + def resume_writing(self) -> None: + assert self._paused + self._paused = False + + waiter = self._drain_waiter + if waiter is not None: + self._drain_waiter = None + if not waiter.done(): + waiter.set_result(None) + + def pause_reading(self) -> None: + if not self._reading_paused and self.transport is not None: + try: + self.transport.pause_reading() + except (AttributeError, NotImplementedError, RuntimeError): + pass + self._reading_paused = True + + def resume_reading(self) -> None: + if self._reading_paused and self.transport is not None: + try: + self.transport.resume_reading() + except (AttributeError, NotImplementedError, RuntimeError): + pass + self._reading_paused = False + + def connection_made(self, transport: asyncio.BaseTransport) -> None: + tr = cast(asyncio.Transport, transport) + tcp_nodelay(tr, True) + self.transport = tr + + def connection_lost(self, exc: Optional[BaseException]) -> None: + # Wake up the writer if currently paused. + self.transport = None + if not self._paused: + return + waiter = self._drain_waiter + if waiter is None: + return + self._drain_waiter = None + if waiter.done(): + return + if exc is None: + waiter.set_result(None) + else: + waiter.set_exception(exc) + + async def _drain_helper(self) -> None: + if not self.connected: + raise ConnectionResetError("Connection lost") + if not self._paused: + return + waiter = self._drain_waiter + if waiter is None: + waiter = self._loop.create_future() + self._drain_waiter = waiter + await asyncio.shield(waiter) diff --git a/gtm/lib/python3.12/site-packages/aiohttp/client.py b/gtm/lib/python3.12/site-packages/aiohttp/client.py new file mode 100644 index 0000000000000000000000000000000000000000..7e9b32fad6f31a64be8fe7a6b8127ffa84fcd437 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/client.py @@ -0,0 +1,1363 @@ +"""HTTP Client for asyncio.""" + +import asyncio +import base64 +import hashlib +import json +import os +import sys +import traceback +import warnings +from contextlib import suppress +from types import SimpleNamespace, TracebackType +from typing import ( + TYPE_CHECKING, + Any, + Awaitable, + Callable, + Coroutine, + Final, + FrozenSet, + Generator, + Generic, + Iterable, + List, + Mapping, + Optional, + Set, + Tuple, + Type, + TypeVar, + Union, +) + +import attr +from multidict import CIMultiDict, MultiDict, MultiDictProxy, istr +from yarl import URL + +from . import hdrs, http, payload +from .abc import AbstractCookieJar +from .client_exceptions import ( + ClientConnectionError as ClientConnectionError, + ClientConnectorCertificateError as ClientConnectorCertificateError, + ClientConnectorError as ClientConnectorError, + ClientConnectorSSLError as ClientConnectorSSLError, + ClientError as ClientError, + ClientHttpProxyError as ClientHttpProxyError, + ClientOSError as ClientOSError, + ClientPayloadError as ClientPayloadError, + ClientProxyConnectionError as ClientProxyConnectionError, + ClientResponseError as ClientResponseError, + ClientSSLError as ClientSSLError, + ContentTypeError as ContentTypeError, + InvalidURL as InvalidURL, + ServerConnectionError as ServerConnectionError, + ServerDisconnectedError as ServerDisconnectedError, + ServerFingerprintMismatch as ServerFingerprintMismatch, + ServerTimeoutError as ServerTimeoutError, + TooManyRedirects as TooManyRedirects, + WSServerHandshakeError as WSServerHandshakeError, +) +from .client_reqrep import ( + ClientRequest as ClientRequest, + ClientResponse as ClientResponse, + Fingerprint as Fingerprint, + RequestInfo as RequestInfo, + _merge_ssl_params, +) +from .client_ws import ClientWebSocketResponse as ClientWebSocketResponse +from .connector import ( + BaseConnector as BaseConnector, + NamedPipeConnector as NamedPipeConnector, + TCPConnector as TCPConnector, + UnixConnector as UnixConnector, +) +from .cookiejar import CookieJar +from .helpers import ( + _SENTINEL, + DEBUG, + BasicAuth, + TimeoutHandle, + ceil_timeout, + get_env_proxy_for_url, + get_running_loop, + method_must_be_empty_body, + sentinel, + strip_auth_from_url, +) +from .http import WS_KEY, HttpVersion, WebSocketReader, WebSocketWriter +from .http_websocket import WSHandshakeError, WSMessage, ws_ext_gen, ws_ext_parse +from .streams import FlowControlDataQueue +from .tracing import Trace, TraceConfig +from .typedefs import JSONEncoder, LooseCookies, LooseHeaders, StrOrURL + +__all__ = ( + # client_exceptions + "ClientConnectionError", + "ClientConnectorCertificateError", + "ClientConnectorError", + "ClientConnectorSSLError", + "ClientError", + "ClientHttpProxyError", + "ClientOSError", + "ClientPayloadError", + "ClientProxyConnectionError", + "ClientResponseError", + "ClientSSLError", + "ContentTypeError", + "InvalidURL", + "ServerConnectionError", + "ServerDisconnectedError", + "ServerFingerprintMismatch", + "ServerTimeoutError", + "TooManyRedirects", + "WSServerHandshakeError", + # client_reqrep + "ClientRequest", + "ClientResponse", + "Fingerprint", + "RequestInfo", + # connector + "BaseConnector", + "TCPConnector", + "UnixConnector", + "NamedPipeConnector", + # client_ws + "ClientWebSocketResponse", + # client + "ClientSession", + "ClientTimeout", + "request", +) + + +if TYPE_CHECKING: + from ssl import SSLContext +else: + SSLContext = None + + +@attr.s(auto_attribs=True, frozen=True, slots=True) +class ClientTimeout: + total: Optional[float] = None + connect: Optional[float] = None + sock_read: Optional[float] = None + sock_connect: Optional[float] = None + ceil_threshold: float = 5 + + # pool_queue_timeout: Optional[float] = None + # dns_resolution_timeout: Optional[float] = None + # socket_connect_timeout: Optional[float] = None + # connection_acquiring_timeout: Optional[float] = None + # new_connection_timeout: Optional[float] = None + # http_header_timeout: Optional[float] = None + # response_body_timeout: Optional[float] = None + + # to create a timeout specific for a single request, either + # - create a completely new one to overwrite the default + # - or use http://www.attrs.org/en/stable/api.html#attr.evolve + # to overwrite the defaults + + +# 5 Minute default read timeout +DEFAULT_TIMEOUT: Final[ClientTimeout] = ClientTimeout(total=5 * 60) + +_RetType = TypeVar("_RetType") +_CharsetResolver = Callable[[ClientResponse, bytes], str] + + +class ClientSession: + """First-class interface for making HTTP requests.""" + + ATTRS = frozenset( + [ + "_base_url", + "_source_traceback", + "_connector", + "requote_redirect_url", + "_loop", + "_cookie_jar", + "_connector_owner", + "_default_auth", + "_version", + "_json_serialize", + "_requote_redirect_url", + "_timeout", + "_raise_for_status", + "_auto_decompress", + "_trust_env", + "_default_headers", + "_skip_auto_headers", + "_request_class", + "_response_class", + "_ws_response_class", + "_trace_configs", + "_read_bufsize", + "_max_line_size", + "_max_field_size", + "_resolve_charset", + ] + ) + + _source_traceback: Optional[traceback.StackSummary] = None + _connector: Optional[BaseConnector] = None + + def __init__( + self, + base_url: Optional[StrOrURL] = None, + *, + connector: Optional[BaseConnector] = None, + loop: Optional[asyncio.AbstractEventLoop] = None, + cookies: Optional[LooseCookies] = None, + headers: Optional[LooseHeaders] = None, + skip_auto_headers: Optional[Iterable[str]] = None, + auth: Optional[BasicAuth] = None, + json_serialize: JSONEncoder = json.dumps, + request_class: Type[ClientRequest] = ClientRequest, + response_class: Type[ClientResponse] = ClientResponse, + ws_response_class: Type[ClientWebSocketResponse] = ClientWebSocketResponse, + version: HttpVersion = http.HttpVersion11, + cookie_jar: Optional[AbstractCookieJar] = None, + connector_owner: bool = True, + raise_for_status: Union[ + bool, Callable[[ClientResponse], Awaitable[None]] + ] = False, + read_timeout: Union[float, _SENTINEL] = sentinel, + conn_timeout: Optional[float] = None, + timeout: Union[object, ClientTimeout] = sentinel, + auto_decompress: bool = True, + trust_env: bool = False, + requote_redirect_url: bool = True, + trace_configs: Optional[List[TraceConfig]] = None, + read_bufsize: int = 2**16, + max_line_size: int = 8190, + max_field_size: int = 8190, + fallback_charset_resolver: _CharsetResolver = lambda r, b: "utf-8", + ) -> None: + if loop is None: + if connector is not None: + loop = connector._loop + + loop = get_running_loop(loop) + + if base_url is None or isinstance(base_url, URL): + self._base_url: Optional[URL] = base_url + else: + self._base_url = URL(base_url) + assert ( + self._base_url.origin() == self._base_url + ), "Only absolute URLs without path part are supported" + + if connector is None: + connector = TCPConnector(loop=loop) + + if connector._loop is not loop: + raise RuntimeError("Session and connector has to use same event loop") + + self._loop = loop + + if loop.get_debug(): + self._source_traceback = traceback.extract_stack(sys._getframe(1)) + + if cookie_jar is None: + cookie_jar = CookieJar(loop=loop) + self._cookie_jar = cookie_jar + + if cookies is not None: + self._cookie_jar.update_cookies(cookies) + + self._connector = connector + self._connector_owner = connector_owner + self._default_auth = auth + self._version = version + self._json_serialize = json_serialize + if timeout is sentinel or timeout is None: + self._timeout = DEFAULT_TIMEOUT + if read_timeout is not sentinel: + warnings.warn( + "read_timeout is deprecated, " "use timeout argument instead", + DeprecationWarning, + stacklevel=2, + ) + self._timeout = attr.evolve(self._timeout, total=read_timeout) + if conn_timeout is not None: + self._timeout = attr.evolve(self._timeout, connect=conn_timeout) + warnings.warn( + "conn_timeout is deprecated, " "use timeout argument instead", + DeprecationWarning, + stacklevel=2, + ) + else: + if not isinstance(timeout, ClientTimeout): + raise ValueError( + f"timeout parameter cannot be of {type(timeout)} type, " + "please use 'timeout=ClientTimeout(...)'", + ) + self._timeout = timeout + if read_timeout is not sentinel: + raise ValueError( + "read_timeout and timeout parameters " + "conflict, please setup " + "timeout.read" + ) + if conn_timeout is not None: + raise ValueError( + "conn_timeout and timeout parameters " + "conflict, please setup " + "timeout.connect" + ) + self._raise_for_status = raise_for_status + self._auto_decompress = auto_decompress + self._trust_env = trust_env + self._requote_redirect_url = requote_redirect_url + self._read_bufsize = read_bufsize + self._max_line_size = max_line_size + self._max_field_size = max_field_size + + # Convert to list of tuples + if headers: + real_headers: CIMultiDict[str] = CIMultiDict(headers) + else: + real_headers = CIMultiDict() + self._default_headers: CIMultiDict[str] = real_headers + if skip_auto_headers is not None: + self._skip_auto_headers = frozenset(istr(i) for i in skip_auto_headers) + else: + self._skip_auto_headers = frozenset() + + self._request_class = request_class + self._response_class = response_class + self._ws_response_class = ws_response_class + + self._trace_configs = trace_configs or [] + for trace_config in self._trace_configs: + trace_config.freeze() + + self._resolve_charset = fallback_charset_resolver + + def __init_subclass__(cls: Type["ClientSession"]) -> None: + warnings.warn( + "Inheritance class {} from ClientSession " + "is discouraged".format(cls.__name__), + DeprecationWarning, + stacklevel=2, + ) + + if DEBUG: + + def __setattr__(self, name: str, val: Any) -> None: + if name not in self.ATTRS: + warnings.warn( + "Setting custom ClientSession.{} attribute " + "is discouraged".format(name), + DeprecationWarning, + stacklevel=2, + ) + super().__setattr__(name, val) + + def __del__(self, _warnings: Any = warnings) -> None: + if not self.closed: + kwargs = {"source": self} + _warnings.warn( + f"Unclosed client session {self!r}", ResourceWarning, **kwargs + ) + context = {"client_session": self, "message": "Unclosed client session"} + if self._source_traceback is not None: + context["source_traceback"] = self._source_traceback + self._loop.call_exception_handler(context) + + def request( + self, method: str, url: StrOrURL, **kwargs: Any + ) -> "_RequestContextManager": + """Perform HTTP request.""" + return _RequestContextManager(self._request(method, url, **kwargs)) + + def _build_url(self, str_or_url: StrOrURL) -> URL: + url = URL(str_or_url) + if self._base_url is None: + return url + else: + assert not url.is_absolute() and url.path.startswith("/") + return self._base_url.join(url) + + async def _request( + self, + method: str, + str_or_url: StrOrURL, + *, + params: Optional[Mapping[str, str]] = None, + data: Any = None, + json: Any = None, + cookies: Optional[LooseCookies] = None, + headers: Optional[LooseHeaders] = None, + skip_auto_headers: Optional[Iterable[str]] = None, + auth: Optional[BasicAuth] = None, + allow_redirects: bool = True, + max_redirects: int = 10, + compress: Optional[str] = None, + chunked: Optional[bool] = None, + expect100: bool = False, + raise_for_status: Union[ + None, bool, Callable[[ClientResponse], Awaitable[None]] + ] = None, + read_until_eof: bool = True, + proxy: Optional[StrOrURL] = None, + proxy_auth: Optional[BasicAuth] = None, + timeout: Union[ClientTimeout, _SENTINEL] = sentinel, + verify_ssl: Optional[bool] = None, + fingerprint: Optional[bytes] = None, + ssl_context: Optional[SSLContext] = None, + ssl: Union[SSLContext, bool, Fingerprint] = True, + server_hostname: Optional[str] = None, + proxy_headers: Optional[LooseHeaders] = None, + trace_request_ctx: Optional[SimpleNamespace] = None, + read_bufsize: Optional[int] = None, + auto_decompress: Optional[bool] = None, + max_line_size: Optional[int] = None, + max_field_size: Optional[int] = None, + ) -> ClientResponse: + + # NOTE: timeout clamps existing connect and read timeouts. We cannot + # set the default to None because we need to detect if the user wants + # to use the existing timeouts by setting timeout to None. + + if self.closed: + raise RuntimeError("Session is closed") + + ssl = _merge_ssl_params(ssl, verify_ssl, ssl_context, fingerprint) + + if data is not None and json is not None: + raise ValueError( + "data and json parameters can not be used at the same time" + ) + elif json is not None: + data = payload.JsonPayload(json, dumps=self._json_serialize) + + if not isinstance(chunked, bool) and chunked is not None: + warnings.warn("Chunk size is deprecated #1615", DeprecationWarning) + + redirects = 0 + history = [] + version = self._version + params = params or {} + + # Merge with default headers and transform to CIMultiDict + headers = self._prepare_headers(headers) + proxy_headers = self._prepare_headers(proxy_headers) + + try: + url = self._build_url(str_or_url) + except ValueError as e: + raise InvalidURL(str_or_url) from e + + skip_headers = set(self._skip_auto_headers) + if skip_auto_headers is not None: + for i in skip_auto_headers: + skip_headers.add(istr(i)) + + if proxy is not None: + try: + proxy = URL(proxy) + except ValueError as e: + raise InvalidURL(proxy) from e + + if timeout is sentinel: + real_timeout: ClientTimeout = self._timeout + else: + if not isinstance(timeout, ClientTimeout): + real_timeout = ClientTimeout(total=timeout) + else: + real_timeout = timeout + # timeout is cumulative for all request operations + # (request, redirects, responses, data consuming) + tm = TimeoutHandle( + self._loop, real_timeout.total, ceil_threshold=real_timeout.ceil_threshold + ) + handle = tm.start() + + if read_bufsize is None: + read_bufsize = self._read_bufsize + + if auto_decompress is None: + auto_decompress = self._auto_decompress + + if max_line_size is None: + max_line_size = self._max_line_size + + if max_field_size is None: + max_field_size = self._max_field_size + + traces = [ + Trace( + self, + trace_config, + trace_config.trace_config_ctx(trace_request_ctx=trace_request_ctx), + ) + for trace_config in self._trace_configs + ] + + for trace in traces: + await trace.send_request_start(method, url.update_query(params), headers) + + timer = tm.timer() + try: + with timer: + while True: + url, auth_from_url = strip_auth_from_url(url) + if auth and auth_from_url: + raise ValueError( + "Cannot combine AUTH argument with " + "credentials encoded in URL" + ) + + if auth is None: + auth = auth_from_url + if auth is None: + auth = self._default_auth + # It would be confusing if we support explicit + # Authorization header with auth argument + if ( + headers is not None + and auth is not None + and hdrs.AUTHORIZATION in headers + ): + raise ValueError( + "Cannot combine AUTHORIZATION header " + "with AUTH argument or credentials " + "encoded in URL" + ) + + all_cookies = self._cookie_jar.filter_cookies(url) + + if cookies is not None: + tmp_cookie_jar = CookieJar() + tmp_cookie_jar.update_cookies(cookies) + req_cookies = tmp_cookie_jar.filter_cookies(url) + if req_cookies: + all_cookies.load(req_cookies) + + if proxy is not None: + proxy = URL(proxy) + elif self._trust_env: + with suppress(LookupError): + proxy, proxy_auth = get_env_proxy_for_url(url) + + req = self._request_class( + method, + url, + params=params, + headers=headers, + skip_auto_headers=skip_headers, + data=data, + cookies=all_cookies, + auth=auth, + version=version, + compress=compress, + chunked=chunked, + expect100=expect100, + loop=self._loop, + response_class=self._response_class, + proxy=proxy, + proxy_auth=proxy_auth, + timer=timer, + session=self, + ssl=ssl if ssl is not None else True, + server_hostname=server_hostname, + proxy_headers=proxy_headers, + traces=traces, + trust_env=self.trust_env, + ) + + # connection timeout + try: + async with ceil_timeout( + real_timeout.connect, + ceil_threshold=real_timeout.ceil_threshold, + ): + assert self._connector is not None + conn = await self._connector.connect( + req, traces=traces, timeout=real_timeout + ) + except asyncio.TimeoutError as exc: + raise ServerTimeoutError( + "Connection timeout " "to host {}".format(url) + ) from exc + + assert conn.transport is not None + + assert conn.protocol is not None + conn.protocol.set_response_params( + timer=timer, + skip_payload=method_must_be_empty_body(method), + read_until_eof=read_until_eof, + auto_decompress=auto_decompress, + read_timeout=real_timeout.sock_read, + read_bufsize=read_bufsize, + timeout_ceil_threshold=self._connector._timeout_ceil_threshold, + max_line_size=max_line_size, + max_field_size=max_field_size, + ) + + try: + try: + resp = await req.send(conn) + try: + await resp.start(conn) + except BaseException: + resp.close() + raise + except BaseException: + conn.close() + raise + except ClientError: + raise + except OSError as exc: + if exc.errno is None and isinstance(exc, asyncio.TimeoutError): + raise + raise ClientOSError(*exc.args) from exc + + self._cookie_jar.update_cookies(resp.cookies, resp.url) + + # redirects + if resp.status in (301, 302, 303, 307, 308) and allow_redirects: + + for trace in traces: + await trace.send_request_redirect( + method, url.update_query(params), headers, resp + ) + + redirects += 1 + history.append(resp) + if max_redirects and redirects >= max_redirects: + resp.close() + raise TooManyRedirects( + history[0].request_info, tuple(history) + ) + + # For 301 and 302, mimic IE, now changed in RFC + # https://github.com/kennethreitz/requests/pull/269 + if (resp.status == 303 and resp.method != hdrs.METH_HEAD) or ( + resp.status in (301, 302) and resp.method == hdrs.METH_POST + ): + method = hdrs.METH_GET + data = None + if headers.get(hdrs.CONTENT_LENGTH): + headers.pop(hdrs.CONTENT_LENGTH) + + r_url = resp.headers.get(hdrs.LOCATION) or resp.headers.get( + hdrs.URI + ) + if r_url is None: + # see github.com/aio-libs/aiohttp/issues/2022 + break + else: + # reading from correct redirection + # response is forbidden + resp.release() + + try: + parsed_url = URL( + r_url, encoded=not self._requote_redirect_url + ) + + except ValueError as e: + raise InvalidURL(r_url) from e + + scheme = parsed_url.scheme + if scheme not in ("http", "https", ""): + resp.close() + raise ValueError("Can redirect only to http or https") + elif not scheme: + parsed_url = url.join(parsed_url) + + if url.origin() != parsed_url.origin(): + auth = None + headers.pop(hdrs.AUTHORIZATION, None) + + url = parsed_url + params = {} + resp.release() + continue + + break + + # check response status + if raise_for_status is None: + raise_for_status = self._raise_for_status + + if raise_for_status is None: + pass + elif callable(raise_for_status): + await raise_for_status(resp) + elif raise_for_status: + resp.raise_for_status() + + # register connection + if handle is not None: + if resp.connection is not None: + resp.connection.add_callback(handle.cancel) + else: + handle.cancel() + + resp._history = tuple(history) + + for trace in traces: + await trace.send_request_end( + method, url.update_query(params), headers, resp + ) + return resp + + except BaseException as e: + # cleanup timer + tm.close() + if handle: + handle.cancel() + handle = None + + for trace in traces: + await trace.send_request_exception( + method, url.update_query(params), headers, e + ) + raise + + def ws_connect( + self, + url: StrOrURL, + *, + method: str = hdrs.METH_GET, + protocols: Iterable[str] = (), + timeout: float = 10.0, + receive_timeout: Optional[float] = None, + autoclose: bool = True, + autoping: bool = True, + heartbeat: Optional[float] = None, + auth: Optional[BasicAuth] = None, + origin: Optional[str] = None, + params: Optional[Mapping[str, str]] = None, + headers: Optional[LooseHeaders] = None, + proxy: Optional[StrOrURL] = None, + proxy_auth: Optional[BasicAuth] = None, + ssl: Union[SSLContext, bool, None, Fingerprint] = True, + verify_ssl: Optional[bool] = None, + fingerprint: Optional[bytes] = None, + ssl_context: Optional[SSLContext] = None, + proxy_headers: Optional[LooseHeaders] = None, + compress: int = 0, + max_msg_size: int = 4 * 1024 * 1024, + ) -> "_WSRequestContextManager": + """Initiate websocket connection.""" + return _WSRequestContextManager( + self._ws_connect( + url, + method=method, + protocols=protocols, + timeout=timeout, + receive_timeout=receive_timeout, + autoclose=autoclose, + autoping=autoping, + heartbeat=heartbeat, + auth=auth, + origin=origin, + params=params, + headers=headers, + proxy=proxy, + proxy_auth=proxy_auth, + ssl=ssl, + verify_ssl=verify_ssl, + fingerprint=fingerprint, + ssl_context=ssl_context, + proxy_headers=proxy_headers, + compress=compress, + max_msg_size=max_msg_size, + ) + ) + + async def _ws_connect( + self, + url: StrOrURL, + *, + method: str = hdrs.METH_GET, + protocols: Iterable[str] = (), + timeout: float = 10.0, + receive_timeout: Optional[float] = None, + autoclose: bool = True, + autoping: bool = True, + heartbeat: Optional[float] = None, + auth: Optional[BasicAuth] = None, + origin: Optional[str] = None, + params: Optional[Mapping[str, str]] = None, + headers: Optional[LooseHeaders] = None, + proxy: Optional[StrOrURL] = None, + proxy_auth: Optional[BasicAuth] = None, + ssl: Optional[Union[SSLContext, bool, Fingerprint]] = True, + verify_ssl: Optional[bool] = None, + fingerprint: Optional[bytes] = None, + ssl_context: Optional[SSLContext] = None, + proxy_headers: Optional[LooseHeaders] = None, + compress: int = 0, + max_msg_size: int = 4 * 1024 * 1024, + ) -> ClientWebSocketResponse: + + if headers is None: + real_headers: CIMultiDict[str] = CIMultiDict() + else: + real_headers = CIMultiDict(headers) + + default_headers = { + hdrs.UPGRADE: "websocket", + hdrs.CONNECTION: "Upgrade", + hdrs.SEC_WEBSOCKET_VERSION: "13", + } + + for key, value in default_headers.items(): + real_headers.setdefault(key, value) + + sec_key = base64.b64encode(os.urandom(16)) + real_headers[hdrs.SEC_WEBSOCKET_KEY] = sec_key.decode() + + if protocols: + real_headers[hdrs.SEC_WEBSOCKET_PROTOCOL] = ",".join(protocols) + if origin is not None: + real_headers[hdrs.ORIGIN] = origin + if compress: + extstr = ws_ext_gen(compress=compress) + real_headers[hdrs.SEC_WEBSOCKET_EXTENSIONS] = extstr + + # For the sake of backward compatibility, if user passes in None, convert it to True + if ssl is None: + ssl = True + ssl = _merge_ssl_params(ssl, verify_ssl, ssl_context, fingerprint) + + # send request + resp = await self.request( + method, + url, + params=params, + headers=real_headers, + read_until_eof=False, + auth=auth, + proxy=proxy, + proxy_auth=proxy_auth, + ssl=ssl, + proxy_headers=proxy_headers, + ) + + try: + # check handshake + if resp.status != 101: + raise WSServerHandshakeError( + resp.request_info, + resp.history, + message="Invalid response status", + status=resp.status, + headers=resp.headers, + ) + + if resp.headers.get(hdrs.UPGRADE, "").lower() != "websocket": + raise WSServerHandshakeError( + resp.request_info, + resp.history, + message="Invalid upgrade header", + status=resp.status, + headers=resp.headers, + ) + + if resp.headers.get(hdrs.CONNECTION, "").lower() != "upgrade": + raise WSServerHandshakeError( + resp.request_info, + resp.history, + message="Invalid connection header", + status=resp.status, + headers=resp.headers, + ) + + # key calculation + r_key = resp.headers.get(hdrs.SEC_WEBSOCKET_ACCEPT, "") + match = base64.b64encode(hashlib.sha1(sec_key + WS_KEY).digest()).decode() + if r_key != match: + raise WSServerHandshakeError( + resp.request_info, + resp.history, + message="Invalid challenge response", + status=resp.status, + headers=resp.headers, + ) + + # websocket protocol + protocol = None + if protocols and hdrs.SEC_WEBSOCKET_PROTOCOL in resp.headers: + resp_protocols = [ + proto.strip() + for proto in resp.headers[hdrs.SEC_WEBSOCKET_PROTOCOL].split(",") + ] + + for proto in resp_protocols: + if proto in protocols: + protocol = proto + break + + # websocket compress + notakeover = False + if compress: + compress_hdrs = resp.headers.get(hdrs.SEC_WEBSOCKET_EXTENSIONS) + if compress_hdrs: + try: + compress, notakeover = ws_ext_parse(compress_hdrs) + except WSHandshakeError as exc: + raise WSServerHandshakeError( + resp.request_info, + resp.history, + message=exc.args[0], + status=resp.status, + headers=resp.headers, + ) from exc + else: + compress = 0 + notakeover = False + + conn = resp.connection + assert conn is not None + conn_proto = conn.protocol + assert conn_proto is not None + transport = conn.transport + assert transport is not None + reader: FlowControlDataQueue[WSMessage] = FlowControlDataQueue( + conn_proto, 2**16, loop=self._loop + ) + conn_proto.set_parser(WebSocketReader(reader, max_msg_size), reader) + writer = WebSocketWriter( + conn_proto, + transport, + use_mask=True, + compress=compress, + notakeover=notakeover, + ) + except BaseException: + resp.close() + raise + else: + return self._ws_response_class( + reader, + writer, + protocol, + resp, + timeout, + autoclose, + autoping, + self._loop, + receive_timeout=receive_timeout, + heartbeat=heartbeat, + compress=compress, + client_notakeover=notakeover, + ) + + def _prepare_headers(self, headers: Optional[LooseHeaders]) -> "CIMultiDict[str]": + """Add default headers and transform it to CIMultiDict""" + # Convert headers to MultiDict + result = CIMultiDict(self._default_headers) + if headers: + if not isinstance(headers, (MultiDictProxy, MultiDict)): + headers = CIMultiDict(headers) + added_names: Set[str] = set() + for key, value in headers.items(): + if key in added_names: + result.add(key, value) + else: + result[key] = value + added_names.add(key) + return result + + def get( + self, url: StrOrURL, *, allow_redirects: bool = True, **kwargs: Any + ) -> "_RequestContextManager": + """Perform HTTP GET request.""" + return _RequestContextManager( + self._request(hdrs.METH_GET, url, allow_redirects=allow_redirects, **kwargs) + ) + + def options( + self, url: StrOrURL, *, allow_redirects: bool = True, **kwargs: Any + ) -> "_RequestContextManager": + """Perform HTTP OPTIONS request.""" + return _RequestContextManager( + self._request( + hdrs.METH_OPTIONS, url, allow_redirects=allow_redirects, **kwargs + ) + ) + + def head( + self, url: StrOrURL, *, allow_redirects: bool = False, **kwargs: Any + ) -> "_RequestContextManager": + """Perform HTTP HEAD request.""" + return _RequestContextManager( + self._request( + hdrs.METH_HEAD, url, allow_redirects=allow_redirects, **kwargs + ) + ) + + def post( + self, url: StrOrURL, *, data: Any = None, **kwargs: Any + ) -> "_RequestContextManager": + """Perform HTTP POST request.""" + return _RequestContextManager( + self._request(hdrs.METH_POST, url, data=data, **kwargs) + ) + + def put( + self, url: StrOrURL, *, data: Any = None, **kwargs: Any + ) -> "_RequestContextManager": + """Perform HTTP PUT request.""" + return _RequestContextManager( + self._request(hdrs.METH_PUT, url, data=data, **kwargs) + ) + + def patch( + self, url: StrOrURL, *, data: Any = None, **kwargs: Any + ) -> "_RequestContextManager": + """Perform HTTP PATCH request.""" + return _RequestContextManager( + self._request(hdrs.METH_PATCH, url, data=data, **kwargs) + ) + + def delete(self, url: StrOrURL, **kwargs: Any) -> "_RequestContextManager": + """Perform HTTP DELETE request.""" + return _RequestContextManager(self._request(hdrs.METH_DELETE, url, **kwargs)) + + async def close(self) -> None: + """Close underlying connector. + + Release all acquired resources. + """ + if not self.closed: + if self._connector is not None and self._connector_owner: + await self._connector.close() + self._connector = None + + @property + def closed(self) -> bool: + """Is client session closed. + + A readonly property. + """ + return self._connector is None or self._connector.closed + + @property + def connector(self) -> Optional[BaseConnector]: + """Connector instance used for the session.""" + return self._connector + + @property + def cookie_jar(self) -> AbstractCookieJar: + """The session cookies.""" + return self._cookie_jar + + @property + def version(self) -> Tuple[int, int]: + """The session HTTP protocol version.""" + return self._version + + @property + def requote_redirect_url(self) -> bool: + """Do URL requoting on redirection handling.""" + return self._requote_redirect_url + + @requote_redirect_url.setter + def requote_redirect_url(self, val: bool) -> None: + """Do URL requoting on redirection handling.""" + warnings.warn( + "session.requote_redirect_url modification " "is deprecated #2778", + DeprecationWarning, + stacklevel=2, + ) + self._requote_redirect_url = val + + @property + def loop(self) -> asyncio.AbstractEventLoop: + """Session's loop.""" + warnings.warn( + "client.loop property is deprecated", DeprecationWarning, stacklevel=2 + ) + return self._loop + + @property + def timeout(self) -> ClientTimeout: + """Timeout for the session.""" + return self._timeout + + @property + def headers(self) -> "CIMultiDict[str]": + """The default headers of the client session.""" + return self._default_headers + + @property + def skip_auto_headers(self) -> FrozenSet[istr]: + """Headers for which autogeneration should be skipped""" + return self._skip_auto_headers + + @property + def auth(self) -> Optional[BasicAuth]: + """An object that represents HTTP Basic Authorization""" + return self._default_auth + + @property + def json_serialize(self) -> JSONEncoder: + """Json serializer callable""" + return self._json_serialize + + @property + def connector_owner(self) -> bool: + """Should connector be closed on session closing""" + return self._connector_owner + + @property + def raise_for_status( + self, + ) -> Union[bool, Callable[[ClientResponse], Awaitable[None]]]: + """Should `ClientResponse.raise_for_status()` be called for each response.""" + return self._raise_for_status + + @property + def auto_decompress(self) -> bool: + """Should the body response be automatically decompressed.""" + return self._auto_decompress + + @property + def trust_env(self) -> bool: + """ + Should proxies information from environment or netrc be trusted. + + Information is from HTTP_PROXY / HTTPS_PROXY environment variables + or ~/.netrc file if present. + """ + return self._trust_env + + @property + def trace_configs(self) -> List[TraceConfig]: + """A list of TraceConfig instances used for client tracing""" + return self._trace_configs + + def detach(self) -> None: + """Detach connector from session without closing the former. + + Session is switched to closed state anyway. + """ + self._connector = None + + def __enter__(self) -> None: + raise TypeError("Use async with instead") + + def __exit__( + self, + exc_type: Optional[Type[BaseException]], + exc_val: Optional[BaseException], + exc_tb: Optional[TracebackType], + ) -> None: + # __exit__ should exist in pair with __enter__ but never executed + pass # pragma: no cover + + async def __aenter__(self) -> "ClientSession": + return self + + async def __aexit__( + self, + exc_type: Optional[Type[BaseException]], + exc_val: Optional[BaseException], + exc_tb: Optional[TracebackType], + ) -> None: + await self.close() + + +class _BaseRequestContextManager(Coroutine[Any, Any, _RetType], Generic[_RetType]): + + __slots__ = ("_coro", "_resp") + + def __init__(self, coro: Coroutine["asyncio.Future[Any]", None, _RetType]) -> None: + self._coro = coro + + def send(self, arg: None) -> "asyncio.Future[Any]": + return self._coro.send(arg) + + def throw(self, *args: Any, **kwargs: Any) -> "asyncio.Future[Any]": + return self._coro.throw(*args, **kwargs) + + def close(self) -> None: + return self._coro.close() + + def __await__(self) -> Generator[Any, None, _RetType]: + ret = self._coro.__await__() + return ret + + def __iter__(self) -> Generator[Any, None, _RetType]: + return self.__await__() + + async def __aenter__(self) -> _RetType: + self._resp = await self._coro + return self._resp + + +class _RequestContextManager(_BaseRequestContextManager[ClientResponse]): + __slots__ = () + + async def __aexit__( + self, + exc_type: Optional[Type[BaseException]], + exc: Optional[BaseException], + tb: Optional[TracebackType], + ) -> None: + # We're basing behavior on the exception as it can be caused by + # user code unrelated to the status of the connection. If you + # would like to close a connection you must do that + # explicitly. Otherwise connection error handling should kick in + # and close/recycle the connection as required. + self._resp.release() + await self._resp.wait_for_close() + + +class _WSRequestContextManager(_BaseRequestContextManager[ClientWebSocketResponse]): + __slots__ = () + + async def __aexit__( + self, + exc_type: Optional[Type[BaseException]], + exc: Optional[BaseException], + tb: Optional[TracebackType], + ) -> None: + await self._resp.close() + + +class _SessionRequestContextManager: + + __slots__ = ("_coro", "_resp", "_session") + + def __init__( + self, + coro: Coroutine["asyncio.Future[Any]", None, ClientResponse], + session: ClientSession, + ) -> None: + self._coro = coro + self._resp: Optional[ClientResponse] = None + self._session = session + + async def __aenter__(self) -> ClientResponse: + try: + self._resp = await self._coro + except BaseException: + await self._session.close() + raise + else: + return self._resp + + async def __aexit__( + self, + exc_type: Optional[Type[BaseException]], + exc: Optional[BaseException], + tb: Optional[TracebackType], + ) -> None: + assert self._resp is not None + self._resp.close() + await self._session.close() + + +def request( + method: str, + url: StrOrURL, + *, + params: Optional[Mapping[str, str]] = None, + data: Any = None, + json: Any = None, + headers: Optional[LooseHeaders] = None, + skip_auto_headers: Optional[Iterable[str]] = None, + auth: Optional[BasicAuth] = None, + allow_redirects: bool = True, + max_redirects: int = 10, + compress: Optional[str] = None, + chunked: Optional[bool] = None, + expect100: bool = False, + raise_for_status: Optional[bool] = None, + read_until_eof: bool = True, + proxy: Optional[StrOrURL] = None, + proxy_auth: Optional[BasicAuth] = None, + timeout: Union[ClientTimeout, object] = sentinel, + cookies: Optional[LooseCookies] = None, + version: HttpVersion = http.HttpVersion11, + connector: Optional[BaseConnector] = None, + read_bufsize: Optional[int] = None, + loop: Optional[asyncio.AbstractEventLoop] = None, + max_line_size: int = 8190, + max_field_size: int = 8190, +) -> _SessionRequestContextManager: + """Constructs and sends a request. + + Returns response object. + method - HTTP method + url - request url + params - (optional) Dictionary or bytes to be sent in the query + string of the new request + data - (optional) Dictionary, bytes, or file-like object to + send in the body of the request + json - (optional) Any json compatible python object + headers - (optional) Dictionary of HTTP Headers to send with + the request + cookies - (optional) Dict object to send with the request + auth - (optional) BasicAuth named tuple represent HTTP Basic Auth + auth - aiohttp.helpers.BasicAuth + allow_redirects - (optional) If set to False, do not follow + redirects + version - Request HTTP version. + compress - Set to True if request has to be compressed + with deflate encoding. + chunked - Set to chunk size for chunked transfer encoding. + expect100 - Expect 100-continue response from server. + connector - BaseConnector sub-class instance to support + connection pooling. + read_until_eof - Read response until eof if response + does not have Content-Length header. + loop - Optional event loop. + timeout - Optional ClientTimeout settings structure, 5min + total timeout by default. + Usage:: + >>> import aiohttp + >>> resp = await aiohttp.request('GET', 'http://python.org/') + >>> resp + + >>> data = await resp.read() + """ + connector_owner = False + if connector is None: + connector_owner = True + connector = TCPConnector(loop=loop, force_close=True) + + session = ClientSession( + loop=loop, + cookies=cookies, + version=version, + timeout=timeout, + connector=connector, + connector_owner=connector_owner, + ) + + return _SessionRequestContextManager( + session._request( + method, + url, + params=params, + data=data, + json=json, + headers=headers, + skip_auto_headers=skip_auto_headers, + auth=auth, + allow_redirects=allow_redirects, + max_redirects=max_redirects, + compress=compress, + chunked=chunked, + expect100=expect100, + raise_for_status=raise_for_status, + read_until_eof=read_until_eof, + proxy=proxy, + proxy_auth=proxy_auth, + read_bufsize=read_bufsize, + max_line_size=max_line_size, + max_field_size=max_field_size, + ), + session, + ) diff --git a/gtm/lib/python3.12/site-packages/aiohttp/client_exceptions.py b/gtm/lib/python3.12/site-packages/aiohttp/client_exceptions.py new file mode 100644 index 0000000000000000000000000000000000000000..9b6e44203c840c52a4552ae8d3f99a903b318427 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/client_exceptions.py @@ -0,0 +1,346 @@ +"""HTTP related errors.""" + +import asyncio +import warnings +from typing import TYPE_CHECKING, Any, Optional, Tuple, Union + +from .http_parser import RawResponseMessage +from .typedefs import LooseHeaders + +try: + import ssl + + SSLContext = ssl.SSLContext +except ImportError: # pragma: no cover + ssl = SSLContext = None # type: ignore[assignment] + + +if TYPE_CHECKING: + from .client_reqrep import ClientResponse, ConnectionKey, Fingerprint, RequestInfo +else: + RequestInfo = ClientResponse = ConnectionKey = None + +__all__ = ( + "ClientError", + "ClientConnectionError", + "ClientOSError", + "ClientConnectorError", + "ClientProxyConnectionError", + "ClientSSLError", + "ClientConnectorSSLError", + "ClientConnectorCertificateError", + "ServerConnectionError", + "ServerTimeoutError", + "ServerDisconnectedError", + "ServerFingerprintMismatch", + "ClientResponseError", + "ClientHttpProxyError", + "WSServerHandshakeError", + "ContentTypeError", + "ClientPayloadError", + "InvalidURL", +) + + +class ClientError(Exception): + """Base class for client connection errors.""" + + +class ClientResponseError(ClientError): + """Base class for exceptions that occur after getting a response. + + request_info: An instance of RequestInfo. + history: A sequence of responses, if redirects occurred. + status: HTTP status code. + message: Error message. + headers: Response headers. + """ + + def __init__( + self, + request_info: RequestInfo, + history: Tuple[ClientResponse, ...], + *, + code: Optional[int] = None, + status: Optional[int] = None, + message: str = "", + headers: Optional[LooseHeaders] = None, + ) -> None: + self.request_info = request_info + if code is not None: + if status is not None: + raise ValueError( + "Both code and status arguments are provided; " + "code is deprecated, use status instead" + ) + warnings.warn( + "code argument is deprecated, use status instead", + DeprecationWarning, + stacklevel=2, + ) + if status is not None: + self.status = status + elif code is not None: + self.status = code + else: + self.status = 0 + self.message = message + self.headers = headers + self.history = history + self.args = (request_info, history) + + def __str__(self) -> str: + return "{}, message={!r}, url={!r}".format( + self.status, + self.message, + self.request_info.real_url, + ) + + def __repr__(self) -> str: + args = f"{self.request_info!r}, {self.history!r}" + if self.status != 0: + args += f", status={self.status!r}" + if self.message != "": + args += f", message={self.message!r}" + if self.headers is not None: + args += f", headers={self.headers!r}" + return f"{type(self).__name__}({args})" + + @property + def code(self) -> int: + warnings.warn( + "code property is deprecated, use status instead", + DeprecationWarning, + stacklevel=2, + ) + return self.status + + @code.setter + def code(self, value: int) -> None: + warnings.warn( + "code property is deprecated, use status instead", + DeprecationWarning, + stacklevel=2, + ) + self.status = value + + +class ContentTypeError(ClientResponseError): + """ContentType found is not valid.""" + + +class WSServerHandshakeError(ClientResponseError): + """websocket server handshake error.""" + + +class ClientHttpProxyError(ClientResponseError): + """HTTP proxy error. + + Raised in :class:`aiohttp.connector.TCPConnector` if + proxy responds with status other than ``200 OK`` + on ``CONNECT`` request. + """ + + +class TooManyRedirects(ClientResponseError): + """Client was redirected too many times.""" + + +class ClientConnectionError(ClientError): + """Base class for client socket errors.""" + + +class ClientOSError(ClientConnectionError, OSError): + """OSError error.""" + + +class ClientConnectorError(ClientOSError): + """Client connector error. + + Raised in :class:`aiohttp.connector.TCPConnector` if + a connection can not be established. + """ + + def __init__(self, connection_key: ConnectionKey, os_error: OSError) -> None: + self._conn_key = connection_key + self._os_error = os_error + super().__init__(os_error.errno, os_error.strerror) + self.args = (connection_key, os_error) + + @property + def os_error(self) -> OSError: + return self._os_error + + @property + def host(self) -> str: + return self._conn_key.host + + @property + def port(self) -> Optional[int]: + return self._conn_key.port + + @property + def ssl(self) -> Union[SSLContext, bool, "Fingerprint"]: + return self._conn_key.ssl + + def __str__(self) -> str: + return "Cannot connect to host {0.host}:{0.port} ssl:{1} [{2}]".format( + self, "default" if self.ssl is True else self.ssl, self.strerror + ) + + # OSError.__reduce__ does too much black magick + __reduce__ = BaseException.__reduce__ + + +class ClientProxyConnectionError(ClientConnectorError): + """Proxy connection error. + + Raised in :class:`aiohttp.connector.TCPConnector` if + connection to proxy can not be established. + """ + + +class UnixClientConnectorError(ClientConnectorError): + """Unix connector error. + + Raised in :py:class:`aiohttp.connector.UnixConnector` + if connection to unix socket can not be established. + """ + + def __init__( + self, path: str, connection_key: ConnectionKey, os_error: OSError + ) -> None: + self._path = path + super().__init__(connection_key, os_error) + + @property + def path(self) -> str: + return self._path + + def __str__(self) -> str: + return "Cannot connect to unix socket {0.path} ssl:{1} [{2}]".format( + self, "default" if self.ssl is True else self.ssl, self.strerror + ) + + +class ServerConnectionError(ClientConnectionError): + """Server connection errors.""" + + +class ServerDisconnectedError(ServerConnectionError): + """Server disconnected.""" + + def __init__(self, message: Union[RawResponseMessage, str, None] = None) -> None: + if message is None: + message = "Server disconnected" + + self.args = (message,) + self.message = message + + +class ServerTimeoutError(ServerConnectionError, asyncio.TimeoutError): + """Server timeout error.""" + + +class ServerFingerprintMismatch(ServerConnectionError): + """SSL certificate does not match expected fingerprint.""" + + def __init__(self, expected: bytes, got: bytes, host: str, port: int) -> None: + self.expected = expected + self.got = got + self.host = host + self.port = port + self.args = (expected, got, host, port) + + def __repr__(self) -> str: + return "<{} expected={!r} got={!r} host={!r} port={!r}>".format( + self.__class__.__name__, self.expected, self.got, self.host, self.port + ) + + +class ClientPayloadError(ClientError): + """Response payload error.""" + + +class InvalidURL(ClientError, ValueError): + """Invalid URL. + + URL used for fetching is malformed, e.g. it doesn't contains host + part. + """ + + # Derive from ValueError for backward compatibility + + def __init__(self, url: Any) -> None: + # The type of url is not yarl.URL because the exception can be raised + # on URL(url) call + super().__init__(url) + + @property + def url(self) -> Any: + return self.args[0] + + def __repr__(self) -> str: + return f"<{self.__class__.__name__} {self.url}>" + + +class ClientSSLError(ClientConnectorError): + """Base error for ssl.*Errors.""" + + +if ssl is not None: + cert_errors = (ssl.CertificateError,) + cert_errors_bases = ( + ClientSSLError, + ssl.CertificateError, + ) + + ssl_errors = (ssl.SSLError,) + ssl_error_bases = (ClientSSLError, ssl.SSLError) +else: # pragma: no cover + cert_errors = tuple() + cert_errors_bases = ( + ClientSSLError, + ValueError, + ) + + ssl_errors = tuple() + ssl_error_bases = (ClientSSLError,) + + +class ClientConnectorSSLError(*ssl_error_bases): # type: ignore[misc] + """Response ssl error.""" + + +class ClientConnectorCertificateError(*cert_errors_bases): # type: ignore[misc] + """Response certificate error.""" + + def __init__( + self, connection_key: ConnectionKey, certificate_error: Exception + ) -> None: + self._conn_key = connection_key + self._certificate_error = certificate_error + self.args = (connection_key, certificate_error) + + @property + def certificate_error(self) -> Exception: + return self._certificate_error + + @property + def host(self) -> str: + return self._conn_key.host + + @property + def port(self) -> Optional[int]: + return self._conn_key.port + + @property + def ssl(self) -> bool: + return self._conn_key.is_ssl + + def __str__(self) -> str: + return ( + "Cannot connect to host {0.host}:{0.port} ssl:{0.ssl} " + "[{0.certificate_error.__class__.__name__}: " + "{0.certificate_error.args}]".format(self) + ) diff --git a/gtm/lib/python3.12/site-packages/aiohttp/client_proto.py b/gtm/lib/python3.12/site-packages/aiohttp/client_proto.py new file mode 100644 index 0000000000000000000000000000000000000000..ca99808080d4a016329dcf9c2f546a2789b98787 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/client_proto.py @@ -0,0 +1,264 @@ +import asyncio +from contextlib import suppress +from typing import Any, Optional, Tuple + +from .base_protocol import BaseProtocol +from .client_exceptions import ( + ClientOSError, + ClientPayloadError, + ServerDisconnectedError, + ServerTimeoutError, +) +from .helpers import BaseTimerContext, status_code_must_be_empty_body +from .http import HttpResponseParser, RawResponseMessage +from .streams import EMPTY_PAYLOAD, DataQueue, StreamReader + + +class ResponseHandler(BaseProtocol, DataQueue[Tuple[RawResponseMessage, StreamReader]]): + """Helper class to adapt between Protocol and StreamReader.""" + + def __init__(self, loop: asyncio.AbstractEventLoop) -> None: + BaseProtocol.__init__(self, loop=loop) + DataQueue.__init__(self, loop) + + self._should_close = False + + self._payload: Optional[StreamReader] = None + self._skip_payload = False + self._payload_parser = None + + self._timer = None + + self._tail = b"" + self._upgraded = False + self._parser: Optional[HttpResponseParser] = None + + self._read_timeout: Optional[float] = None + self._read_timeout_handle: Optional[asyncio.TimerHandle] = None + + self._timeout_ceil_threshold: Optional[float] = 5 + + @property + def upgraded(self) -> bool: + return self._upgraded + + @property + def should_close(self) -> bool: + if self._payload is not None and not self._payload.is_eof() or self._upgraded: + return True + + return ( + self._should_close + or self._upgraded + or self.exception() is not None + or self._payload_parser is not None + or len(self) > 0 + or bool(self._tail) + ) + + def force_close(self) -> None: + self._should_close = True + + def close(self) -> None: + transport = self.transport + if transport is not None: + transport.close() + self.transport = None + self._payload = None + self._drop_timeout() + + def is_connected(self) -> bool: + return self.transport is not None and not self.transport.is_closing() + + def connection_lost(self, exc: Optional[BaseException]) -> None: + self._drop_timeout() + + if self._payload_parser is not None: + with suppress(Exception): + self._payload_parser.feed_eof() + + uncompleted = None + if self._parser is not None: + try: + uncompleted = self._parser.feed_eof() + except Exception as e: + if self._payload is not None: + exc = ClientPayloadError("Response payload is not completed") + exc.__cause__ = e + self._payload.set_exception(exc) + + if not self.is_eof(): + if isinstance(exc, OSError): + exc = ClientOSError(*exc.args) + if exc is None: + exc = ServerDisconnectedError(uncompleted) + # assigns self._should_close to True as side effect, + # we do it anyway below + self.set_exception(exc) + + self._should_close = True + self._parser = None + self._payload = None + self._payload_parser = None + self._reading_paused = False + + super().connection_lost(exc) + + def eof_received(self) -> None: + # should call parser.feed_eof() most likely + self._drop_timeout() + + def pause_reading(self) -> None: + super().pause_reading() + self._drop_timeout() + + def resume_reading(self) -> None: + super().resume_reading() + self._reschedule_timeout() + + def set_exception(self, exc: BaseException) -> None: + self._should_close = True + self._drop_timeout() + super().set_exception(exc) + + def set_parser(self, parser: Any, payload: Any) -> None: + # TODO: actual types are: + # parser: WebSocketReader + # payload: FlowControlDataQueue + # but they are not generi enough + # Need an ABC for both types + self._payload = payload + self._payload_parser = parser + + self._drop_timeout() + + if self._tail: + data, self._tail = self._tail, b"" + self.data_received(data) + + def set_response_params( + self, + *, + timer: Optional[BaseTimerContext] = None, + skip_payload: bool = False, + read_until_eof: bool = False, + auto_decompress: bool = True, + read_timeout: Optional[float] = None, + read_bufsize: int = 2**16, + timeout_ceil_threshold: float = 5, + max_line_size: int = 8190, + max_field_size: int = 8190, + ) -> None: + self._skip_payload = skip_payload + + self._read_timeout = read_timeout + + self._timeout_ceil_threshold = timeout_ceil_threshold + + self._parser = HttpResponseParser( + self, + self._loop, + read_bufsize, + timer=timer, + payload_exception=ClientPayloadError, + response_with_body=not skip_payload, + read_until_eof=read_until_eof, + auto_decompress=auto_decompress, + max_line_size=max_line_size, + max_field_size=max_field_size, + ) + + if self._tail: + data, self._tail = self._tail, b"" + self.data_received(data) + + def _drop_timeout(self) -> None: + if self._read_timeout_handle is not None: + self._read_timeout_handle.cancel() + self._read_timeout_handle = None + + def _reschedule_timeout(self) -> None: + timeout = self._read_timeout + if self._read_timeout_handle is not None: + self._read_timeout_handle.cancel() + + if timeout: + self._read_timeout_handle = self._loop.call_later( + timeout, self._on_read_timeout + ) + else: + self._read_timeout_handle = None + + def start_timeout(self) -> None: + self._reschedule_timeout() + + def _on_read_timeout(self) -> None: + exc = ServerTimeoutError("Timeout on reading data from socket") + self.set_exception(exc) + if self._payload is not None: + self._payload.set_exception(exc) + + def data_received(self, data: bytes) -> None: + self._reschedule_timeout() + + if not data: + return + + # custom payload parser + if self._payload_parser is not None: + eof, tail = self._payload_parser.feed_data(data) + if eof: + self._payload = None + self._payload_parser = None + + if tail: + self.data_received(tail) + return + else: + if self._upgraded or self._parser is None: + # i.e. websocket connection, websocket parser is not set yet + self._tail += data + else: + # parse http messages + try: + messages, upgraded, tail = self._parser.feed_data(data) + except BaseException as exc: + if self.transport is not None: + # connection.release() could be called BEFORE + # data_received(), the transport is already + # closed in this case + self.transport.close() + # should_close is True after the call + self.set_exception(exc) + return + + self._upgraded = upgraded + + payload: Optional[StreamReader] = None + for message, payload in messages: + if message.should_close: + self._should_close = True + + self._payload = payload + + if self._skip_payload or status_code_must_be_empty_body( + message.code + ): + self.feed_data((message, EMPTY_PAYLOAD), 0) + else: + self.feed_data((message, payload), 0) + if payload is not None: + # new message(s) was processed + # register timeout handler unsubscribing + # either on end-of-stream or immediately for + # EMPTY_PAYLOAD + if payload is not EMPTY_PAYLOAD: + payload.on_eof(self._drop_timeout) + else: + self._drop_timeout() + + if tail: + if upgraded: + self.data_received(tail) + else: + self._tail = tail diff --git a/gtm/lib/python3.12/site-packages/aiohttp/client_reqrep.py b/gtm/lib/python3.12/site-packages/aiohttp/client_reqrep.py new file mode 100644 index 0000000000000000000000000000000000000000..e0de951a33a06510d568e3cf7e17179a47b1ed48 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/client_reqrep.py @@ -0,0 +1,1197 @@ +import asyncio +import codecs +import contextlib +import functools +import io +import re +import sys +import traceback +import warnings +from hashlib import md5, sha1, sha256 +from http.cookies import CookieError, Morsel, SimpleCookie +from types import MappingProxyType, TracebackType +from typing import ( + TYPE_CHECKING, + Any, + Callable, + Dict, + Iterable, + List, + Mapping, + Optional, + Tuple, + Type, + Union, + cast, +) + +import attr +from multidict import CIMultiDict, CIMultiDictProxy, MultiDict, MultiDictProxy +from yarl import URL + +from . import hdrs, helpers, http, multipart, payload +from .abc import AbstractStreamWriter +from .client_exceptions import ( + ClientConnectionError, + ClientOSError, + ClientResponseError, + ContentTypeError, + InvalidURL, + ServerFingerprintMismatch, +) +from .compression_utils import HAS_BROTLI +from .formdata import FormData +from .helpers import ( + BaseTimerContext, + BasicAuth, + HeadersMixin, + TimerNoop, + basicauth_from_netrc, + netrc_from_env, + noop, + reify, + set_result, +) +from .http import ( + SERVER_SOFTWARE, + HttpVersion, + HttpVersion10, + HttpVersion11, + StreamWriter, +) +from .log import client_logger +from .streams import StreamReader +from .typedefs import ( + DEFAULT_JSON_DECODER, + JSONDecoder, + LooseCookies, + LooseHeaders, + RawHeaders, +) + +try: + import ssl + from ssl import SSLContext +except ImportError: # pragma: no cover + ssl = None # type: ignore[assignment] + SSLContext = object # type: ignore[misc,assignment] + + +__all__ = ("ClientRequest", "ClientResponse", "RequestInfo", "Fingerprint") + + +if TYPE_CHECKING: + from .client import ClientSession + from .connector import Connection + from .tracing import Trace + + +_CONTAINS_CONTROL_CHAR_RE = re.compile(r"[^-!#$%&'*+.^_`|~0-9a-zA-Z]") +json_re = re.compile(r"^application/(?:[\w.+-]+?\+)?json") + + +def _gen_default_accept_encoding() -> str: + return "gzip, deflate, br" if HAS_BROTLI else "gzip, deflate" + + +@attr.s(auto_attribs=True, frozen=True, slots=True) +class ContentDisposition: + type: Optional[str] + parameters: "MappingProxyType[str, str]" + filename: Optional[str] + + +@attr.s(auto_attribs=True, frozen=True, slots=True) +class RequestInfo: + url: URL + method: str + headers: "CIMultiDictProxy[str]" + real_url: URL = attr.ib() + + @real_url.default + def real_url_default(self) -> URL: + return self.url + + +class Fingerprint: + HASHFUNC_BY_DIGESTLEN = { + 16: md5, + 20: sha1, + 32: sha256, + } + + def __init__(self, fingerprint: bytes) -> None: + digestlen = len(fingerprint) + hashfunc = self.HASHFUNC_BY_DIGESTLEN.get(digestlen) + if not hashfunc: + raise ValueError("fingerprint has invalid length") + elif hashfunc is md5 or hashfunc is sha1: + raise ValueError( + "md5 and sha1 are insecure and " "not supported. Use sha256." + ) + self._hashfunc = hashfunc + self._fingerprint = fingerprint + + @property + def fingerprint(self) -> bytes: + return self._fingerprint + + def check(self, transport: asyncio.Transport) -> None: + if not transport.get_extra_info("sslcontext"): + return + sslobj = transport.get_extra_info("ssl_object") + cert = sslobj.getpeercert(binary_form=True) + got = self._hashfunc(cert).digest() + if got != self._fingerprint: + host, port, *_ = transport.get_extra_info("peername") + raise ServerFingerprintMismatch(self._fingerprint, got, host, port) + + +if ssl is not None: + SSL_ALLOWED_TYPES = (ssl.SSLContext, bool, Fingerprint, type(None)) +else: # pragma: no cover + SSL_ALLOWED_TYPES = (bool, type(None)) + + +def _merge_ssl_params( + ssl: Union["SSLContext", bool, Fingerprint], + verify_ssl: Optional[bool], + ssl_context: Optional["SSLContext"], + fingerprint: Optional[bytes], +) -> Union["SSLContext", bool, Fingerprint]: + if ssl is None: + ssl = True # Double check for backwards compatibility + if verify_ssl is not None and not verify_ssl: + warnings.warn( + "verify_ssl is deprecated, use ssl=False instead", + DeprecationWarning, + stacklevel=3, + ) + if ssl is not True: + raise ValueError( + "verify_ssl, ssl_context, fingerprint and ssl " + "parameters are mutually exclusive" + ) + else: + ssl = False + if ssl_context is not None: + warnings.warn( + "ssl_context is deprecated, use ssl=context instead", + DeprecationWarning, + stacklevel=3, + ) + if ssl is not True: + raise ValueError( + "verify_ssl, ssl_context, fingerprint and ssl " + "parameters are mutually exclusive" + ) + else: + ssl = ssl_context + if fingerprint is not None: + warnings.warn( + "fingerprint is deprecated, " "use ssl=Fingerprint(fingerprint) instead", + DeprecationWarning, + stacklevel=3, + ) + if ssl is not True: + raise ValueError( + "verify_ssl, ssl_context, fingerprint and ssl " + "parameters are mutually exclusive" + ) + else: + ssl = Fingerprint(fingerprint) + if not isinstance(ssl, SSL_ALLOWED_TYPES): + raise TypeError( + "ssl should be SSLContext, bool, Fingerprint or None, " + "got {!r} instead.".format(ssl) + ) + return ssl + + +@attr.s(auto_attribs=True, slots=True, frozen=True) +class ConnectionKey: + # the key should contain an information about used proxy / TLS + # to prevent reusing wrong connections from a pool + host: str + port: Optional[int] + is_ssl: bool + ssl: Union[SSLContext, bool, Fingerprint] + proxy: Optional[URL] + proxy_auth: Optional[BasicAuth] + proxy_headers_hash: Optional[int] # hash(CIMultiDict) + + +def _is_expected_content_type( + response_content_type: str, expected_content_type: str +) -> bool: + if expected_content_type == "application/json": + return json_re.match(response_content_type) is not None + return expected_content_type in response_content_type + + +class ClientRequest: + GET_METHODS = { + hdrs.METH_GET, + hdrs.METH_HEAD, + hdrs.METH_OPTIONS, + hdrs.METH_TRACE, + } + POST_METHODS = {hdrs.METH_PATCH, hdrs.METH_POST, hdrs.METH_PUT} + ALL_METHODS = GET_METHODS.union(POST_METHODS).union({hdrs.METH_DELETE}) + + DEFAULT_HEADERS = { + hdrs.ACCEPT: "*/*", + hdrs.ACCEPT_ENCODING: _gen_default_accept_encoding(), + } + + body = b"" + auth = None + response = None + + __writer = None # async task for streaming data + _continue = None # waiter future for '100 Continue' response + + # N.B. + # Adding __del__ method with self._writer closing doesn't make sense + # because _writer is instance method, thus it keeps a reference to self. + # Until writer has finished finalizer will not be called. + + def __init__( + self, + method: str, + url: URL, + *, + params: Optional[Mapping[str, str]] = None, + headers: Optional[LooseHeaders] = None, + skip_auto_headers: Iterable[str] = frozenset(), + data: Any = None, + cookies: Optional[LooseCookies] = None, + auth: Optional[BasicAuth] = None, + version: http.HttpVersion = http.HttpVersion11, + compress: Optional[str] = None, + chunked: Optional[bool] = None, + expect100: bool = False, + loop: Optional[asyncio.AbstractEventLoop] = None, + response_class: Optional[Type["ClientResponse"]] = None, + proxy: Optional[URL] = None, + proxy_auth: Optional[BasicAuth] = None, + timer: Optional[BaseTimerContext] = None, + session: Optional["ClientSession"] = None, + ssl: Union[SSLContext, bool, Fingerprint] = True, + proxy_headers: Optional[LooseHeaders] = None, + traces: Optional[List["Trace"]] = None, + trust_env: bool = False, + server_hostname: Optional[str] = None, + ): + if loop is None: + loop = asyncio.get_event_loop() + + match = _CONTAINS_CONTROL_CHAR_RE.search(method) + if match: + raise ValueError( + f"Method cannot contain non-token characters {method!r} " + "(found at least {match.group()!r})" + ) + + assert isinstance(url, URL), url + assert isinstance(proxy, (URL, type(None))), proxy + # FIXME: session is None in tests only, need to fix tests + # assert session is not None + self._session = cast("ClientSession", session) + if params: + q = MultiDict(url.query) + url2 = url.with_query(params) + q.extend(url2.query) + url = url.with_query(q) + self.original_url = url + self.url = url.with_fragment(None) + self.method = method.upper() + self.chunked = chunked + self.compress = compress + self.loop = loop + self.length = None + if response_class is None: + real_response_class = ClientResponse + else: + real_response_class = response_class + self.response_class: Type[ClientResponse] = real_response_class + self._timer = timer if timer is not None else TimerNoop() + self._ssl = ssl if ssl is not None else True + self.server_hostname = server_hostname + + if loop.get_debug(): + self._source_traceback = traceback.extract_stack(sys._getframe(1)) + + self.update_version(version) + self.update_host(url) + self.update_headers(headers) + self.update_auto_headers(skip_auto_headers) + self.update_cookies(cookies) + self.update_content_encoding(data) + self.update_auth(auth, trust_env) + self.update_proxy(proxy, proxy_auth, proxy_headers) + + self.update_body_from_data(data) + if data is not None or self.method not in self.GET_METHODS: + self.update_transfer_encoding() + self.update_expect_continue(expect100) + if traces is None: + traces = [] + self._traces = traces + + def __reset_writer(self, _: object = None) -> None: + self.__writer = None + + @property + def _writer(self) -> Optional["asyncio.Task[None]"]: + return self.__writer + + @_writer.setter + def _writer(self, writer: Optional["asyncio.Task[None]"]) -> None: + if self.__writer is not None: + self.__writer.remove_done_callback(self.__reset_writer) + self.__writer = writer + if writer is not None: + writer.add_done_callback(self.__reset_writer) + + def is_ssl(self) -> bool: + return self.url.scheme in ("https", "wss") + + @property + def ssl(self) -> Union["SSLContext", bool, Fingerprint]: + return self._ssl + + @property + def connection_key(self) -> ConnectionKey: + proxy_headers = self.proxy_headers + if proxy_headers: + h: Optional[int] = hash(tuple((k, v) for k, v in proxy_headers.items())) + else: + h = None + return ConnectionKey( + self.host, + self.port, + self.is_ssl(), + self.ssl, + self.proxy, + self.proxy_auth, + h, + ) + + @property + def host(self) -> str: + ret = self.url.raw_host + assert ret is not None + return ret + + @property + def port(self) -> Optional[int]: + return self.url.port + + @property + def request_info(self) -> RequestInfo: + headers: CIMultiDictProxy[str] = CIMultiDictProxy(self.headers) + return RequestInfo(self.url, self.method, headers, self.original_url) + + def update_host(self, url: URL) -> None: + """Update destination host, port and connection type (ssl).""" + # get host/port + if not url.raw_host: + raise InvalidURL(url) + + # basic auth info + username, password = url.user, url.password + if username: + self.auth = helpers.BasicAuth(username, password or "") + + def update_version(self, version: Union[http.HttpVersion, str]) -> None: + """Convert request version to two elements tuple. + + parser HTTP version '1.1' => (1, 1) + """ + if isinstance(version, str): + v = [part.strip() for part in version.split(".", 1)] + try: + version = http.HttpVersion(int(v[0]), int(v[1])) + except ValueError: + raise ValueError( + f"Can not parse http version number: {version}" + ) from None + self.version = version + + def update_headers(self, headers: Optional[LooseHeaders]) -> None: + """Update request headers.""" + self.headers: CIMultiDict[str] = CIMultiDict() + + # add host + netloc = cast(str, self.url.raw_host) + if helpers.is_ipv6_address(netloc): + netloc = f"[{netloc}]" + # See https://github.com/aio-libs/aiohttp/issues/3636. + netloc = netloc.rstrip(".") + if self.url.port is not None and not self.url.is_default_port(): + netloc += ":" + str(self.url.port) + self.headers[hdrs.HOST] = netloc + + if headers: + if isinstance(headers, (dict, MultiDictProxy, MultiDict)): + headers = headers.items() # type: ignore[assignment] + + for key, value in headers: # type: ignore[misc] + # A special case for Host header + if key.lower() == "host": + self.headers[key] = value + else: + self.headers.add(key, value) + + def update_auto_headers(self, skip_auto_headers: Iterable[str]) -> None: + self.skip_auto_headers = CIMultiDict( + (hdr, None) for hdr in sorted(skip_auto_headers) + ) + used_headers = self.headers.copy() + used_headers.extend(self.skip_auto_headers) # type: ignore[arg-type] + + for hdr, val in self.DEFAULT_HEADERS.items(): + if hdr not in used_headers: + self.headers.add(hdr, val) + + if hdrs.USER_AGENT not in used_headers: + self.headers[hdrs.USER_AGENT] = SERVER_SOFTWARE + + def update_cookies(self, cookies: Optional[LooseCookies]) -> None: + """Update request cookies header.""" + if not cookies: + return + + c = SimpleCookie() + if hdrs.COOKIE in self.headers: + c.load(self.headers.get(hdrs.COOKIE, "")) + del self.headers[hdrs.COOKIE] + + if isinstance(cookies, Mapping): + iter_cookies = cookies.items() + else: + iter_cookies = cookies # type: ignore[assignment] + for name, value in iter_cookies: + if isinstance(value, Morsel): + # Preserve coded_value + mrsl_val = value.get(value.key, Morsel()) + mrsl_val.set(value.key, value.value, value.coded_value) + c[name] = mrsl_val + else: + c[name] = value # type: ignore[assignment] + + self.headers[hdrs.COOKIE] = c.output(header="", sep=";").strip() + + def update_content_encoding(self, data: Any) -> None: + """Set request content encoding.""" + if data is None: + return + + enc = self.headers.get(hdrs.CONTENT_ENCODING, "").lower() + if enc: + if self.compress: + raise ValueError( + "compress can not be set " "if Content-Encoding header is set" + ) + elif self.compress: + if not isinstance(self.compress, str): + self.compress = "deflate" + self.headers[hdrs.CONTENT_ENCODING] = self.compress + self.chunked = True # enable chunked, no need to deal with length + + def update_transfer_encoding(self) -> None: + """Analyze transfer-encoding header.""" + te = self.headers.get(hdrs.TRANSFER_ENCODING, "").lower() + + if "chunked" in te: + if self.chunked: + raise ValueError( + "chunked can not be set " + 'if "Transfer-Encoding: chunked" header is set' + ) + + elif self.chunked: + if hdrs.CONTENT_LENGTH in self.headers: + raise ValueError( + "chunked can not be set " "if Content-Length header is set" + ) + + self.headers[hdrs.TRANSFER_ENCODING] = "chunked" + else: + if hdrs.CONTENT_LENGTH not in self.headers: + self.headers[hdrs.CONTENT_LENGTH] = str(len(self.body)) + + def update_auth(self, auth: Optional[BasicAuth], trust_env: bool = False) -> None: + """Set basic auth.""" + if auth is None: + auth = self.auth + if auth is None and trust_env and self.url.host is not None: + netrc_obj = netrc_from_env() + with contextlib.suppress(LookupError): + auth = basicauth_from_netrc(netrc_obj, self.url.host) + if auth is None: + return + + if not isinstance(auth, helpers.BasicAuth): + raise TypeError("BasicAuth() tuple is required instead") + + self.headers[hdrs.AUTHORIZATION] = auth.encode() + + def update_body_from_data(self, body: Any) -> None: + if body is None: + return + + # FormData + if isinstance(body, FormData): + body = body() + + try: + body = payload.PAYLOAD_REGISTRY.get(body, disposition=None) + except payload.LookupError: + body = FormData(body)() + + self.body = body + + # enable chunked encoding if needed + if not self.chunked: + if hdrs.CONTENT_LENGTH not in self.headers: + size = body.size + if size is None: + self.chunked = True + else: + if hdrs.CONTENT_LENGTH not in self.headers: + self.headers[hdrs.CONTENT_LENGTH] = str(size) + + # copy payload headers + assert body.headers + for (key, value) in body.headers.items(): + if key in self.headers: + continue + if key in self.skip_auto_headers: + continue + self.headers[key] = value + + def update_expect_continue(self, expect: bool = False) -> None: + if expect: + self.headers[hdrs.EXPECT] = "100-continue" + elif self.headers.get(hdrs.EXPECT, "").lower() == "100-continue": + expect = True + + if expect: + self._continue = self.loop.create_future() + + def update_proxy( + self, + proxy: Optional[URL], + proxy_auth: Optional[BasicAuth], + proxy_headers: Optional[LooseHeaders], + ) -> None: + if proxy_auth and not isinstance(proxy_auth, helpers.BasicAuth): + raise ValueError("proxy_auth must be None or BasicAuth() tuple") + self.proxy = proxy + self.proxy_auth = proxy_auth + self.proxy_headers = proxy_headers + + def keep_alive(self) -> bool: + if self.version < HttpVersion10: + # keep alive not supported at all + return False + if self.version == HttpVersion10: + if self.headers.get(hdrs.CONNECTION) == "keep-alive": + return True + else: # no headers means we close for Http 1.0 + return False + elif self.headers.get(hdrs.CONNECTION) == "close": + return False + + return True + + async def write_bytes( + self, writer: AbstractStreamWriter, conn: "Connection" + ) -> None: + """Support coroutines that yields bytes objects.""" + # 100 response + if self._continue is not None: + try: + await writer.drain() + await self._continue + except asyncio.CancelledError: + return + + protocol = conn.protocol + assert protocol is not None + try: + if isinstance(self.body, payload.Payload): + await self.body.write(writer) + else: + if isinstance(self.body, (bytes, bytearray)): + self.body = (self.body,) # type: ignore[assignment] + + for chunk in self.body: + await writer.write(chunk) # type: ignore[arg-type] + except OSError as exc: + if exc.errno is None and isinstance(exc, asyncio.TimeoutError): + protocol.set_exception(exc) + else: + new_exc = ClientOSError( + exc.errno, "Can not write request body for %s" % self.url + ) + new_exc.__context__ = exc + new_exc.__cause__ = exc + protocol.set_exception(new_exc) + except asyncio.CancelledError: + await writer.write_eof() + except Exception as exc: + protocol.set_exception(exc) + else: + await writer.write_eof() + protocol.start_timeout() + + async def send(self, conn: "Connection") -> "ClientResponse": + # Specify request target: + # - CONNECT request must send authority form URI + # - not CONNECT proxy must send absolute form URI + # - most common is origin form URI + if self.method == hdrs.METH_CONNECT: + connect_host = self.url.raw_host + assert connect_host is not None + if helpers.is_ipv6_address(connect_host): + connect_host = f"[{connect_host}]" + path = f"{connect_host}:{self.url.port}" + elif self.proxy and not self.is_ssl(): + path = str(self.url) + else: + path = self.url.raw_path + if self.url.raw_query_string: + path += "?" + self.url.raw_query_string + + protocol = conn.protocol + assert protocol is not None + writer = StreamWriter( + protocol, + self.loop, + on_chunk_sent=functools.partial( + self._on_chunk_request_sent, self.method, self.url + ), + on_headers_sent=functools.partial( + self._on_headers_request_sent, self.method, self.url + ), + ) + + if self.compress: + writer.enable_compression(self.compress) + + if self.chunked is not None: + writer.enable_chunking() + + # set default content-type + if ( + self.method in self.POST_METHODS + and hdrs.CONTENT_TYPE not in self.skip_auto_headers + and hdrs.CONTENT_TYPE not in self.headers + ): + self.headers[hdrs.CONTENT_TYPE] = "application/octet-stream" + + # set the connection header + connection = self.headers.get(hdrs.CONNECTION) + if not connection: + if self.keep_alive(): + if self.version == HttpVersion10: + connection = "keep-alive" + else: + if self.version == HttpVersion11: + connection = "close" + + if connection is not None: + self.headers[hdrs.CONNECTION] = connection + + # status + headers + status_line = "{0} {1} HTTP/{v.major}.{v.minor}".format( + self.method, path, v=self.version + ) + await writer.write_headers(status_line, self.headers) + + self._writer = self.loop.create_task(self.write_bytes(writer, conn)) + + response_class = self.response_class + assert response_class is not None + self.response = response_class( + self.method, + self.original_url, + writer=self._writer, + continue100=self._continue, + timer=self._timer, + request_info=self.request_info, + traces=self._traces, + loop=self.loop, + session=self._session, + ) + return self.response + + async def close(self) -> None: + if self._writer is not None: + with contextlib.suppress(asyncio.CancelledError): + await self._writer + + def terminate(self) -> None: + if self._writer is not None: + if not self.loop.is_closed(): + self._writer.cancel() + self._writer.remove_done_callback(self.__reset_writer) + self._writer = None + + async def _on_chunk_request_sent(self, method: str, url: URL, chunk: bytes) -> None: + for trace in self._traces: + await trace.send_request_chunk_sent(method, url, chunk) + + async def _on_headers_request_sent( + self, method: str, url: URL, headers: "CIMultiDict[str]" + ) -> None: + for trace in self._traces: + await trace.send_request_headers(method, url, headers) + + +class ClientResponse(HeadersMixin): + + # Some of these attributes are None when created, + # but will be set by the start() method. + # As the end user will likely never see the None values, we cheat the types below. + # from the Status-Line of the response + version: Optional[HttpVersion] = None # HTTP-Version + status: int = None # type: ignore[assignment] # Status-Code + reason: Optional[str] = None # Reason-Phrase + + content: StreamReader = None # type: ignore[assignment] # Payload stream + _headers: CIMultiDictProxy[str] = None # type: ignore[assignment] + _raw_headers: RawHeaders = None # type: ignore[assignment] + + _connection = None # current connection + _source_traceback: Optional[traceback.StackSummary] = None + # set up by ClientRequest after ClientResponse object creation + # post-init stage allows to not change ctor signature + _closed = True # to allow __del__ for non-initialized properly response + _released = False + __writer = None + + def __init__( + self, + method: str, + url: URL, + *, + writer: "asyncio.Task[None]", + continue100: Optional["asyncio.Future[bool]"], + timer: BaseTimerContext, + request_info: RequestInfo, + traces: List["Trace"], + loop: asyncio.AbstractEventLoop, + session: "ClientSession", + ) -> None: + assert isinstance(url, URL) + + self.method = method + self.cookies = SimpleCookie() + + self._real_url = url + self._url = url.with_fragment(None) + self._body: Any = None + self._writer: Optional[asyncio.Task[None]] = writer + self._continue = continue100 # None by default + self._closed = True + self._history: Tuple[ClientResponse, ...] = () + self._request_info = request_info + self._timer = timer if timer is not None else TimerNoop() + self._cache: Dict[str, Any] = {} + self._traces = traces + self._loop = loop + # store a reference to session #1985 + self._session: Optional[ClientSession] = session + # Save reference to _resolve_charset, so that get_encoding() will still + # work after the response has finished reading the body. + if session is None: + # TODO: Fix session=None in tests (see ClientRequest.__init__). + self._resolve_charset: Callable[ + ["ClientResponse", bytes], str + ] = lambda *_: "utf-8" + else: + self._resolve_charset = session._resolve_charset + if loop.get_debug(): + self._source_traceback = traceback.extract_stack(sys._getframe(1)) + + def __reset_writer(self, _: object = None) -> None: + self.__writer = None + + @property + def _writer(self) -> Optional["asyncio.Task[None]"]: + return self.__writer + + @_writer.setter + def _writer(self, writer: Optional["asyncio.Task[None]"]) -> None: + if self.__writer is not None: + self.__writer.remove_done_callback(self.__reset_writer) + self.__writer = writer + if writer is not None: + writer.add_done_callback(self.__reset_writer) + + @reify + def url(self) -> URL: + return self._url + + @reify + def url_obj(self) -> URL: + warnings.warn("Deprecated, use .url #1654", DeprecationWarning, stacklevel=2) + return self._url + + @reify + def real_url(self) -> URL: + return self._real_url + + @reify + def host(self) -> str: + assert self._url.host is not None + return self._url.host + + @reify + def headers(self) -> "CIMultiDictProxy[str]": + return self._headers + + @reify + def raw_headers(self) -> RawHeaders: + return self._raw_headers + + @reify + def request_info(self) -> RequestInfo: + return self._request_info + + @reify + def content_disposition(self) -> Optional[ContentDisposition]: + raw = self._headers.get(hdrs.CONTENT_DISPOSITION) + if raw is None: + return None + disposition_type, params_dct = multipart.parse_content_disposition(raw) + params = MappingProxyType(params_dct) + filename = multipart.content_disposition_filename(params) + return ContentDisposition(disposition_type, params, filename) + + def __del__(self, _warnings: Any = warnings) -> None: + if self._closed: + return + + if self._connection is not None: + self._connection.release() + self._cleanup_writer() + + if self._loop.get_debug(): + kwargs = {"source": self} + _warnings.warn(f"Unclosed response {self!r}", ResourceWarning, **kwargs) + context = {"client_response": self, "message": "Unclosed response"} + if self._source_traceback: + context["source_traceback"] = self._source_traceback + self._loop.call_exception_handler(context) + + def __repr__(self) -> str: + out = io.StringIO() + ascii_encodable_url = str(self.url) + if self.reason: + ascii_encodable_reason = self.reason.encode( + "ascii", "backslashreplace" + ).decode("ascii") + else: + ascii_encodable_reason = "None" + print( + "".format( + ascii_encodable_url, self.status, ascii_encodable_reason + ), + file=out, + ) + print(self.headers, file=out) + return out.getvalue() + + @property + def connection(self) -> Optional["Connection"]: + return self._connection + + @reify + def history(self) -> Tuple["ClientResponse", ...]: + """A sequence of of responses, if redirects occurred.""" + return self._history + + @reify + def links(self) -> "MultiDictProxy[MultiDictProxy[Union[str, URL]]]": + links_str = ", ".join(self.headers.getall("link", [])) + + if not links_str: + return MultiDictProxy(MultiDict()) + + links: MultiDict[MultiDictProxy[Union[str, URL]]] = MultiDict() + + for val in re.split(r",(?=\s*<)", links_str): + match = re.match(r"\s*<(.*)>(.*)", val) + if match is None: # pragma: no cover + # the check exists to suppress mypy error + continue + url, params_str = match.groups() + params = params_str.split(";")[1:] + + link: MultiDict[Union[str, URL]] = MultiDict() + + for param in params: + match = re.match(r"^\s*(\S*)\s*=\s*(['\"]?)(.*?)(\2)\s*$", param, re.M) + if match is None: # pragma: no cover + # the check exists to suppress mypy error + continue + key, _, value, _ = match.groups() + + link.add(key, value) + + key = link.get("rel", url) + + link.add("url", self.url.join(URL(url))) + + links.add(str(key), MultiDictProxy(link)) + + return MultiDictProxy(links) + + async def start(self, connection: "Connection") -> "ClientResponse": + """Start response processing.""" + self._closed = False + self._protocol = connection.protocol + self._connection = connection + + with self._timer: + while True: + # read response + try: + protocol = self._protocol + message, payload = await protocol.read() # type: ignore[union-attr] + except http.HttpProcessingError as exc: + raise ClientResponseError( + self.request_info, + self.history, + status=exc.code, + message=exc.message, + headers=exc.headers, + ) from exc + + if message.code < 100 or message.code > 199 or message.code == 101: + break + + if self._continue is not None: + set_result(self._continue, True) + self._continue = None + + # payload eof handler + payload.on_eof(self._response_eof) + + # response status + self.version = message.version + self.status = message.code + self.reason = message.reason + + # headers + self._headers = message.headers # type is CIMultiDictProxy + self._raw_headers = message.raw_headers # type is Tuple[bytes, bytes] + + # payload + self.content = payload + + # cookies + for hdr in self.headers.getall(hdrs.SET_COOKIE, ()): + try: + self.cookies.load(hdr) + except CookieError as exc: + client_logger.warning("Can not load response cookies: %s", exc) + return self + + def _response_eof(self) -> None: + if self._closed: + return + + # protocol could be None because connection could be detached + protocol = self._connection and self._connection.protocol + if protocol is not None and protocol.upgraded: + return + + self._closed = True + self._cleanup_writer() + self._release_connection() + + @property + def closed(self) -> bool: + return self._closed + + def close(self) -> None: + if not self._released: + self._notify_content() + + self._closed = True + if self._loop is None or self._loop.is_closed(): + return + + self._cleanup_writer() + if self._connection is not None: + self._connection.close() + self._connection = None + + def release(self) -> Any: + if not self._released: + self._notify_content() + + self._closed = True + + self._cleanup_writer() + self._release_connection() + return noop() + + @property + def ok(self) -> bool: + """Returns ``True`` if ``status`` is less than ``400``, ``False`` if not. + + This is **not** a check for ``200 OK`` but a check that the response + status is under 400. + """ + return 400 > self.status + + def raise_for_status(self) -> None: + if not self.ok: + # reason should always be not None for a started response + assert self.reason is not None + self.release() + raise ClientResponseError( + self.request_info, + self.history, + status=self.status, + message=self.reason, + headers=self.headers, + ) + + def _release_connection(self) -> None: + if self._connection is not None: + if self._writer is None: + self._connection.release() + self._connection = None + else: + self._writer.add_done_callback(lambda f: self._release_connection()) + + async def _wait_released(self) -> None: + if self._writer is not None: + await self._writer + self._release_connection() + + def _cleanup_writer(self) -> None: + if self._writer is not None: + self._writer.cancel() + self._session = None + + def _notify_content(self) -> None: + content = self.content + if content and content.exception() is None: + content.set_exception(ClientConnectionError("Connection closed")) + self._released = True + + async def wait_for_close(self) -> None: + if self._writer is not None: + await self._writer + self.release() + + async def read(self) -> bytes: + """Read response payload.""" + if self._body is None: + try: + self._body = await self.content.read() + for trace in self._traces: + await trace.send_response_chunk_received( + self.method, self.url, self._body + ) + except BaseException: + self.close() + raise + elif self._released: # Response explicitly released + raise ClientConnectionError("Connection closed") + + protocol = self._connection and self._connection.protocol + if protocol is None or not protocol.upgraded: + await self._wait_released() # Underlying connection released + return self._body # type: ignore[no-any-return] + + def get_encoding(self) -> str: + ctype = self.headers.get(hdrs.CONTENT_TYPE, "").lower() + mimetype = helpers.parse_mimetype(ctype) + + encoding = mimetype.parameters.get("charset") + if encoding: + with contextlib.suppress(LookupError): + return codecs.lookup(encoding).name + + if mimetype.type == "application" and ( + mimetype.subtype == "json" or mimetype.subtype == "rdap" + ): + # RFC 7159 states that the default encoding is UTF-8. + # RFC 7483 defines application/rdap+json + return "utf-8" + + if self._body is None: + raise RuntimeError( + "Cannot compute fallback encoding of a not yet read body" + ) + + return self._resolve_charset(self, self._body) + + async def text(self, encoding: Optional[str] = None, errors: str = "strict") -> str: + """Read response payload and decode.""" + if self._body is None: + await self.read() + + if encoding is None: + encoding = self.get_encoding() + + return self._body.decode( # type: ignore[no-any-return,union-attr] + encoding, errors=errors + ) + + async def json( + self, + *, + encoding: Optional[str] = None, + loads: JSONDecoder = DEFAULT_JSON_DECODER, + content_type: Optional[str] = "application/json", + ) -> Any: + """Read and decodes JSON response.""" + if self._body is None: + await self.read() + + if content_type: + ctype = self.headers.get(hdrs.CONTENT_TYPE, "").lower() + if not _is_expected_content_type(ctype, content_type): + raise ContentTypeError( + self.request_info, + self.history, + message=( + "Attempt to decode JSON with " "unexpected mimetype: %s" % ctype + ), + headers=self.headers, + ) + + stripped = self._body.strip() # type: ignore[union-attr] + if not stripped: + return None + + if encoding is None: + encoding = self.get_encoding() + + return loads(stripped.decode(encoding)) + + async def __aenter__(self) -> "ClientResponse": + return self + + async def __aexit__( + self, + exc_type: Optional[Type[BaseException]], + exc_val: Optional[BaseException], + exc_tb: Optional[TracebackType], + ) -> None: + # similar to _RequestContextManager, we do not need to check + # for exceptions, response object can close connection + # if state is broken + self.release() + await self.wait_for_close() diff --git a/gtm/lib/python3.12/site-packages/aiohttp/client_ws.py b/gtm/lib/python3.12/site-packages/aiohttp/client_ws.py new file mode 100644 index 0000000000000000000000000000000000000000..d9c74a30f5238ea5858fc8e63bbe759b443058a5 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/client_ws.py @@ -0,0 +1,315 @@ +"""WebSocket client for asyncio.""" + +import asyncio +import sys +from typing import Any, Optional, cast + +from .client_exceptions import ClientError +from .client_reqrep import ClientResponse +from .helpers import call_later, set_result +from .http import ( + WS_CLOSED_MESSAGE, + WS_CLOSING_MESSAGE, + WebSocketError, + WSCloseCode, + WSMessage, + WSMsgType, +) +from .http_websocket import WebSocketWriter # WSMessage +from .streams import EofStream, FlowControlDataQueue +from .typedefs import ( + DEFAULT_JSON_DECODER, + DEFAULT_JSON_ENCODER, + JSONDecoder, + JSONEncoder, +) + +if sys.version_info >= (3, 11): + import asyncio as async_timeout +else: + import async_timeout + + +class ClientWebSocketResponse: + def __init__( + self, + reader: "FlowControlDataQueue[WSMessage]", + writer: WebSocketWriter, + protocol: Optional[str], + response: ClientResponse, + timeout: float, + autoclose: bool, + autoping: bool, + loop: asyncio.AbstractEventLoop, + *, + receive_timeout: Optional[float] = None, + heartbeat: Optional[float] = None, + compress: int = 0, + client_notakeover: bool = False, + ) -> None: + self._response = response + self._conn = response.connection + + self._writer = writer + self._reader = reader + self._protocol = protocol + self._closed = False + self._closing = False + self._close_code: Optional[int] = None + self._timeout = timeout + self._receive_timeout = receive_timeout + self._autoclose = autoclose + self._autoping = autoping + self._heartbeat = heartbeat + self._heartbeat_cb: Optional[asyncio.TimerHandle] = None + if heartbeat is not None: + self._pong_heartbeat = heartbeat / 2.0 + self._pong_response_cb: Optional[asyncio.TimerHandle] = None + self._loop = loop + self._waiting: Optional[asyncio.Future[bool]] = None + self._exception: Optional[BaseException] = None + self._compress = compress + self._client_notakeover = client_notakeover + + self._reset_heartbeat() + + def _cancel_heartbeat(self) -> None: + if self._pong_response_cb is not None: + self._pong_response_cb.cancel() + self._pong_response_cb = None + + if self._heartbeat_cb is not None: + self._heartbeat_cb.cancel() + self._heartbeat_cb = None + + def _reset_heartbeat(self) -> None: + self._cancel_heartbeat() + + if self._heartbeat is not None: + self._heartbeat_cb = call_later( + self._send_heartbeat, + self._heartbeat, + self._loop, + timeout_ceil_threshold=self._conn._connector._timeout_ceil_threshold + if self._conn is not None + else 5, + ) + + def _send_heartbeat(self) -> None: + if self._heartbeat is not None and not self._closed: + # fire-and-forget a task is not perfect but maybe ok for + # sending ping. Otherwise we need a long-living heartbeat + # task in the class. + self._loop.create_task(self._writer.ping()) + + if self._pong_response_cb is not None: + self._pong_response_cb.cancel() + self._pong_response_cb = call_later( + self._pong_not_received, + self._pong_heartbeat, + self._loop, + timeout_ceil_threshold=self._conn._connector._timeout_ceil_threshold + if self._conn is not None + else 5, + ) + + def _pong_not_received(self) -> None: + if not self._closed: + self._closed = True + self._close_code = WSCloseCode.ABNORMAL_CLOSURE + self._exception = asyncio.TimeoutError() + self._response.close() + + @property + def closed(self) -> bool: + return self._closed + + @property + def close_code(self) -> Optional[int]: + return self._close_code + + @property + def protocol(self) -> Optional[str]: + return self._protocol + + @property + def compress(self) -> int: + return self._compress + + @property + def client_notakeover(self) -> bool: + return self._client_notakeover + + def get_extra_info(self, name: str, default: Any = None) -> Any: + """extra info from connection transport""" + conn = self._response.connection + if conn is None: + return default + transport = conn.transport + if transport is None: + return default + return transport.get_extra_info(name, default) + + def exception(self) -> Optional[BaseException]: + return self._exception + + async def ping(self, message: bytes = b"") -> None: + await self._writer.ping(message) + + async def pong(self, message: bytes = b"") -> None: + await self._writer.pong(message) + + async def send_str(self, data: str, compress: Optional[int] = None) -> None: + if not isinstance(data, str): + raise TypeError("data argument must be str (%r)" % type(data)) + await self._writer.send(data, binary=False, compress=compress) + + async def send_bytes(self, data: bytes, compress: Optional[int] = None) -> None: + if not isinstance(data, (bytes, bytearray, memoryview)): + raise TypeError("data argument must be byte-ish (%r)" % type(data)) + await self._writer.send(data, binary=True, compress=compress) + + async def send_json( + self, + data: Any, + compress: Optional[int] = None, + *, + dumps: JSONEncoder = DEFAULT_JSON_ENCODER, + ) -> None: + await self.send_str(dumps(data), compress=compress) + + async def close(self, *, code: int = WSCloseCode.OK, message: bytes = b"") -> bool: + # we need to break `receive()` cycle first, + # `close()` may be called from different task + if self._waiting is not None and not self._closing: + self._closing = True + self._reader.feed_data(WS_CLOSING_MESSAGE, 0) + await self._waiting + + if not self._closed: + self._cancel_heartbeat() + self._closed = True + try: + await self._writer.close(code, message) + except asyncio.CancelledError: + self._close_code = WSCloseCode.ABNORMAL_CLOSURE + self._response.close() + raise + except Exception as exc: + self._close_code = WSCloseCode.ABNORMAL_CLOSURE + self._exception = exc + self._response.close() + return True + + if self._close_code: + self._response.close() + return True + + while True: + try: + async with async_timeout.timeout(self._timeout): + msg = await self._reader.read() + except asyncio.CancelledError: + self._close_code = WSCloseCode.ABNORMAL_CLOSURE + self._response.close() + raise + except Exception as exc: + self._close_code = WSCloseCode.ABNORMAL_CLOSURE + self._exception = exc + self._response.close() + return True + + if msg.type == WSMsgType.CLOSE: + self._close_code = msg.data + self._response.close() + return True + else: + return False + + async def receive(self, timeout: Optional[float] = None) -> WSMessage: + while True: + if self._waiting is not None: + raise RuntimeError("Concurrent call to receive() is not allowed") + + if self._closed: + return WS_CLOSED_MESSAGE + elif self._closing: + await self.close() + return WS_CLOSED_MESSAGE + + try: + self._waiting = self._loop.create_future() + try: + async with async_timeout.timeout(timeout or self._receive_timeout): + msg = await self._reader.read() + self._reset_heartbeat() + finally: + waiter = self._waiting + self._waiting = None + set_result(waiter, True) + except (asyncio.CancelledError, asyncio.TimeoutError): + self._close_code = WSCloseCode.ABNORMAL_CLOSURE + raise + except EofStream: + self._close_code = WSCloseCode.OK + await self.close() + return WSMessage(WSMsgType.CLOSED, None, None) + except ClientError: + self._closed = True + self._close_code = WSCloseCode.ABNORMAL_CLOSURE + return WS_CLOSED_MESSAGE + except WebSocketError as exc: + self._close_code = exc.code + await self.close(code=exc.code) + return WSMessage(WSMsgType.ERROR, exc, None) + except Exception as exc: + self._exception = exc + self._closing = True + self._close_code = WSCloseCode.ABNORMAL_CLOSURE + await self.close() + return WSMessage(WSMsgType.ERROR, exc, None) + + if msg.type == WSMsgType.CLOSE: + self._closing = True + self._close_code = msg.data + if not self._closed and self._autoclose: + await self.close() + elif msg.type == WSMsgType.CLOSING: + self._closing = True + elif msg.type == WSMsgType.PING and self._autoping: + await self.pong(msg.data) + continue + elif msg.type == WSMsgType.PONG and self._autoping: + continue + + return msg + + async def receive_str(self, *, timeout: Optional[float] = None) -> str: + msg = await self.receive(timeout) + if msg.type != WSMsgType.TEXT: + raise TypeError(f"Received message {msg.type}:{msg.data!r} is not str") + return cast(str, msg.data) + + async def receive_bytes(self, *, timeout: Optional[float] = None) -> bytes: + msg = await self.receive(timeout) + if msg.type != WSMsgType.BINARY: + raise TypeError(f"Received message {msg.type}:{msg.data!r} is not bytes") + return cast(bytes, msg.data) + + async def receive_json( + self, + *, + loads: JSONDecoder = DEFAULT_JSON_DECODER, + timeout: Optional[float] = None, + ) -> Any: + data = await self.receive_str(timeout=timeout) + return loads(data) + + def __aiter__(self) -> "ClientWebSocketResponse": + return self + + async def __anext__(self) -> WSMessage: + msg = await self.receive() + if msg.type in (WSMsgType.CLOSE, WSMsgType.CLOSING, WSMsgType.CLOSED): + raise StopAsyncIteration + return msg diff --git a/gtm/lib/python3.12/site-packages/aiohttp/compression_utils.py b/gtm/lib/python3.12/site-packages/aiohttp/compression_utils.py new file mode 100644 index 0000000000000000000000000000000000000000..9631d377e9a52b07c3d239fa140f328cea7172bd --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/compression_utils.py @@ -0,0 +1,157 @@ +import asyncio +import zlib +from concurrent.futures import Executor +from typing import Optional, cast + +try: + try: + import brotlicffi as brotli + except ImportError: + import brotli + + HAS_BROTLI = True +except ImportError: # pragma: no cover + HAS_BROTLI = False + +MAX_SYNC_CHUNK_SIZE = 1024 + + +def encoding_to_mode( + encoding: Optional[str] = None, + suppress_deflate_header: bool = False, +) -> int: + if encoding == "gzip": + return 16 + zlib.MAX_WBITS + + return -zlib.MAX_WBITS if suppress_deflate_header else zlib.MAX_WBITS + + +class ZlibBaseHandler: + def __init__( + self, + mode: int, + executor: Optional[Executor] = None, + max_sync_chunk_size: Optional[int] = MAX_SYNC_CHUNK_SIZE, + ): + self._mode = mode + self._executor = executor + self._max_sync_chunk_size = max_sync_chunk_size + + +class ZLibCompressor(ZlibBaseHandler): + def __init__( + self, + encoding: Optional[str] = None, + suppress_deflate_header: bool = False, + level: Optional[int] = None, + wbits: Optional[int] = None, + strategy: int = zlib.Z_DEFAULT_STRATEGY, + executor: Optional[Executor] = None, + max_sync_chunk_size: Optional[int] = MAX_SYNC_CHUNK_SIZE, + ): + super().__init__( + mode=encoding_to_mode(encoding, suppress_deflate_header) + if wbits is None + else wbits, + executor=executor, + max_sync_chunk_size=max_sync_chunk_size, + ) + if level is None: + self._compressor = zlib.compressobj(wbits=self._mode, strategy=strategy) + else: + self._compressor = zlib.compressobj( + wbits=self._mode, strategy=strategy, level=level + ) + self._compress_lock = asyncio.Lock() + + def compress_sync(self, data: bytes) -> bytes: + return self._compressor.compress(data) + + async def compress(self, data: bytes) -> bytes: + async with self._compress_lock: + # To ensure the stream is consistent in the event + # there are multiple writers, we need to lock + # the compressor so that only one writer can + # compress at a time. + if ( + self._max_sync_chunk_size is not None + and len(data) > self._max_sync_chunk_size + ): + return await asyncio.get_event_loop().run_in_executor( + self._executor, self.compress_sync, data + ) + return self.compress_sync(data) + + def flush(self, mode: int = zlib.Z_FINISH) -> bytes: + return self._compressor.flush(mode) + + +class ZLibDecompressor(ZlibBaseHandler): + def __init__( + self, + encoding: Optional[str] = None, + suppress_deflate_header: bool = False, + executor: Optional[Executor] = None, + max_sync_chunk_size: Optional[int] = MAX_SYNC_CHUNK_SIZE, + ): + super().__init__( + mode=encoding_to_mode(encoding, suppress_deflate_header), + executor=executor, + max_sync_chunk_size=max_sync_chunk_size, + ) + self._decompressor = zlib.decompressobj(wbits=self._mode) + + def decompress_sync(self, data: bytes, max_length: int = 0) -> bytes: + return self._decompressor.decompress(data, max_length) + + async def decompress(self, data: bytes, max_length: int = 0) -> bytes: + if ( + self._max_sync_chunk_size is not None + and len(data) > self._max_sync_chunk_size + ): + return await asyncio.get_event_loop().run_in_executor( + self._executor, self.decompress_sync, data, max_length + ) + return self.decompress_sync(data, max_length) + + def flush(self, length: int = 0) -> bytes: + return ( + self._decompressor.flush(length) + if length > 0 + else self._decompressor.flush() + ) + + @property + def eof(self) -> bool: + return self._decompressor.eof + + @property + def unconsumed_tail(self) -> bytes: + return self._decompressor.unconsumed_tail + + @property + def unused_data(self) -> bytes: + return self._decompressor.unused_data + + +class BrotliDecompressor: + # Supports both 'brotlipy' and 'Brotli' packages + # since they share an import name. The top branches + # are for 'brotlipy' and bottom branches for 'Brotli' + def __init__(self) -> None: + if not HAS_BROTLI: + raise RuntimeError( + "The brotli decompression is not available. " + "Please install `Brotli` module" + ) + self._obj = brotli.Decompressor() + + def decompress_sync(self, data: bytes) -> bytes: + if hasattr(self._obj, "decompress"): + return cast(bytes, self._obj.decompress(data)) + return cast(bytes, self._obj.process(data)) + + def flush(self) -> bytes: + if hasattr(self._obj, "flush"): + return cast(bytes, self._obj.flush()) + return b"" diff --git a/gtm/lib/python3.12/site-packages/aiohttp/connector.py b/gtm/lib/python3.12/site-packages/aiohttp/connector.py new file mode 100644 index 0000000000000000000000000000000000000000..3b9841dd094fa75b68342ffa547bb587e45af177 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/connector.py @@ -0,0 +1,1489 @@ +import asyncio +import functools +import random +import sys +import traceback +import warnings +from collections import defaultdict, deque +from contextlib import suppress +from http import HTTPStatus +from http.cookies import SimpleCookie +from itertools import cycle, islice +from time import monotonic +from types import TracebackType +from typing import ( + TYPE_CHECKING, + Any, + Awaitable, + Callable, + DefaultDict, + Dict, + Iterator, + List, + Literal, + Optional, + Set, + Tuple, + Type, + Union, + cast, +) + +import attr + +from . import hdrs, helpers +from .abc import AbstractResolver +from .client_exceptions import ( + ClientConnectionError, + ClientConnectorCertificateError, + ClientConnectorError, + ClientConnectorSSLError, + ClientHttpProxyError, + ClientProxyConnectionError, + ServerFingerprintMismatch, + UnixClientConnectorError, + cert_errors, + ssl_errors, +) +from .client_proto import ResponseHandler +from .client_reqrep import ClientRequest, Fingerprint, _merge_ssl_params +from .helpers import ceil_timeout, get_running_loop, is_ip_address, noop, sentinel +from .locks import EventResultOrError +from .resolver import DefaultResolver + +try: + import ssl + + SSLContext = ssl.SSLContext +except ImportError: # pragma: no cover + ssl = None # type: ignore[assignment] + SSLContext = object # type: ignore[misc,assignment] + + +__all__ = ("BaseConnector", "TCPConnector", "UnixConnector", "NamedPipeConnector") + + +if TYPE_CHECKING: + from .client import ClientTimeout + from .client_reqrep import ConnectionKey + from .tracing import Trace + + +class _DeprecationWaiter: + __slots__ = ("_awaitable", "_awaited") + + def __init__(self, awaitable: Awaitable[Any]) -> None: + self._awaitable = awaitable + self._awaited = False + + def __await__(self) -> Any: + self._awaited = True + return self._awaitable.__await__() + + def __del__(self) -> None: + if not self._awaited: + warnings.warn( + "Connector.close() is a coroutine, " + "please use await connector.close()", + DeprecationWarning, + ) + + +class Connection: + + _source_traceback = None + _transport = None + + def __init__( + self, + connector: "BaseConnector", + key: "ConnectionKey", + protocol: ResponseHandler, + loop: asyncio.AbstractEventLoop, + ) -> None: + self._key = key + self._connector = connector + self._loop = loop + self._protocol: Optional[ResponseHandler] = protocol + self._callbacks: List[Callable[[], None]] = [] + + if loop.get_debug(): + self._source_traceback = traceback.extract_stack(sys._getframe(1)) + + def __repr__(self) -> str: + return f"Connection<{self._key}>" + + def __del__(self, _warnings: Any = warnings) -> None: + if self._protocol is not None: + kwargs = {"source": self} + _warnings.warn(f"Unclosed connection {self!r}", ResourceWarning, **kwargs) + if self._loop.is_closed(): + return + + self._connector._release(self._key, self._protocol, should_close=True) + + context = {"client_connection": self, "message": "Unclosed connection"} + if self._source_traceback is not None: + context["source_traceback"] = self._source_traceback + self._loop.call_exception_handler(context) + + def __bool__(self) -> Literal[True]: + """Force subclasses to not be falsy, to make checks simpler.""" + return True + + @property + def loop(self) -> asyncio.AbstractEventLoop: + warnings.warn( + "connector.loop property is deprecated", DeprecationWarning, stacklevel=2 + ) + return self._loop + + @property + def transport(self) -> Optional[asyncio.Transport]: + if self._protocol is None: + return None + return self._protocol.transport + + @property + def protocol(self) -> Optional[ResponseHandler]: + return self._protocol + + def add_callback(self, callback: Callable[[], None]) -> None: + if callback is not None: + self._callbacks.append(callback) + + def _notify_release(self) -> None: + callbacks, self._callbacks = self._callbacks[:], [] + + for cb in callbacks: + with suppress(Exception): + cb() + + def close(self) -> None: + self._notify_release() + + if self._protocol is not None: + self._connector._release(self._key, self._protocol, should_close=True) + self._protocol = None + + def release(self) -> None: + self._notify_release() + + if self._protocol is not None: + self._connector._release( + self._key, self._protocol, should_close=self._protocol.should_close + ) + self._protocol = None + + @property + def closed(self) -> bool: + return self._protocol is None or not self._protocol.is_connected() + + +class _TransportPlaceholder: + """placeholder for BaseConnector.connect function""" + + def close(self) -> None: + pass + + +class BaseConnector: + """Base connector class. + + keepalive_timeout - (optional) Keep-alive timeout. + force_close - Set to True to force close and do reconnect + after each request (and between redirects). + limit - The total number of simultaneous connections. + limit_per_host - Number of simultaneous connections to one host. + enable_cleanup_closed - Enables clean-up closed ssl transports. + Disabled by default. + timeout_ceil_threshold - Trigger ceiling of timeout values when + it's above timeout_ceil_threshold. + loop - Optional event loop. + """ + + _closed = True # prevent AttributeError in __del__ if ctor was failed + _source_traceback = None + + # abort transport after 2 seconds (cleanup broken connections) + _cleanup_closed_period = 2.0 + + def __init__( + self, + *, + keepalive_timeout: Union[object, None, float] = sentinel, + force_close: bool = False, + limit: int = 100, + limit_per_host: int = 0, + enable_cleanup_closed: bool = False, + loop: Optional[asyncio.AbstractEventLoop] = None, + timeout_ceil_threshold: float = 5, + ) -> None: + + if force_close: + if keepalive_timeout is not None and keepalive_timeout is not sentinel: + raise ValueError( + "keepalive_timeout cannot " "be set if force_close is True" + ) + else: + if keepalive_timeout is sentinel: + keepalive_timeout = 15.0 + + loop = get_running_loop(loop) + self._timeout_ceil_threshold = timeout_ceil_threshold + + self._closed = False + if loop.get_debug(): + self._source_traceback = traceback.extract_stack(sys._getframe(1)) + + self._conns: Dict[ConnectionKey, List[Tuple[ResponseHandler, float]]] = {} + self._limit = limit + self._limit_per_host = limit_per_host + self._acquired: Set[ResponseHandler] = set() + self._acquired_per_host: DefaultDict[ + ConnectionKey, Set[ResponseHandler] + ] = defaultdict(set) + self._keepalive_timeout = cast(float, keepalive_timeout) + self._force_close = force_close + + # {host_key: FIFO list of waiters} + self._waiters = defaultdict(deque) # type: ignore[var-annotated] + + self._loop = loop + self._factory = functools.partial(ResponseHandler, loop=loop) + + self.cookies = SimpleCookie() + + # start keep-alive connection cleanup task + self._cleanup_handle: Optional[asyncio.TimerHandle] = None + + # start cleanup closed transports task + self._cleanup_closed_handle: Optional[asyncio.TimerHandle] = None + self._cleanup_closed_disabled = not enable_cleanup_closed + self._cleanup_closed_transports: List[Optional[asyncio.Transport]] = [] + self._cleanup_closed() + + def __del__(self, _warnings: Any = warnings) -> None: + if self._closed: + return + if not self._conns: + return + + conns = [repr(c) for c in self._conns.values()] + + self._close() + + kwargs = {"source": self} + _warnings.warn(f"Unclosed connector {self!r}", ResourceWarning, **kwargs) + context = { + "connector": self, + "connections": conns, + "message": "Unclosed connector", + } + if self._source_traceback is not None: + context["source_traceback"] = self._source_traceback + self._loop.call_exception_handler(context) + + def __enter__(self) -> "BaseConnector": + warnings.warn( + '"with Connector():" is deprecated, ' + 'use "async with Connector():" instead', + DeprecationWarning, + ) + return self + + def __exit__(self, *exc: Any) -> None: + self._close() + + async def __aenter__(self) -> "BaseConnector": + return self + + async def __aexit__( + self, + exc_type: Optional[Type[BaseException]] = None, + exc_value: Optional[BaseException] = None, + exc_traceback: Optional[TracebackType] = None, + ) -> None: + await self.close() + + @property + def force_close(self) -> bool: + """Ultimately close connection on releasing if True.""" + return self._force_close + + @property + def limit(self) -> int: + """The total number for simultaneous connections. + + If limit is 0 the connector has no limit. + The default limit size is 100. + """ + return self._limit + + @property + def limit_per_host(self) -> int: + """The limit for simultaneous connections to the same endpoint. + + Endpoints are the same if they are have equal + (host, port, is_ssl) triple. + """ + return self._limit_per_host + + def _cleanup(self) -> None: + """Cleanup unused transports.""" + if self._cleanup_handle: + self._cleanup_handle.cancel() + # _cleanup_handle should be unset, otherwise _release() will not + # recreate it ever! + self._cleanup_handle = None + + now = self._loop.time() + timeout = self._keepalive_timeout + + if self._conns: + connections = {} + deadline = now - timeout + for key, conns in self._conns.items(): + alive = [] + for proto, use_time in conns: + if proto.is_connected(): + if use_time - deadline < 0: + transport = proto.transport + proto.close() + if key.is_ssl and not self._cleanup_closed_disabled: + self._cleanup_closed_transports.append(transport) + else: + alive.append((proto, use_time)) + else: + transport = proto.transport + proto.close() + if key.is_ssl and not self._cleanup_closed_disabled: + self._cleanup_closed_transports.append(transport) + + if alive: + connections[key] = alive + + self._conns = connections + + if self._conns: + self._cleanup_handle = helpers.weakref_handle( + self, + "_cleanup", + timeout, + self._loop, + timeout_ceil_threshold=self._timeout_ceil_threshold, + ) + + def _drop_acquired_per_host( + self, key: "ConnectionKey", val: ResponseHandler + ) -> None: + acquired_per_host = self._acquired_per_host + if key not in acquired_per_host: + return + conns = acquired_per_host[key] + conns.remove(val) + if not conns: + del self._acquired_per_host[key] + + def _cleanup_closed(self) -> None: + """Double confirmation for transport close. + + Some broken ssl servers may leave socket open without proper close. + """ + if self._cleanup_closed_handle: + self._cleanup_closed_handle.cancel() + + for transport in self._cleanup_closed_transports: + if transport is not None: + transport.abort() + + self._cleanup_closed_transports = [] + + if not self._cleanup_closed_disabled: + self._cleanup_closed_handle = helpers.weakref_handle( + self, + "_cleanup_closed", + self._cleanup_closed_period, + self._loop, + timeout_ceil_threshold=self._timeout_ceil_threshold, + ) + + def close(self) -> Awaitable[None]: + """Close all opened transports.""" + self._close() + return _DeprecationWaiter(noop()) + + def _close(self) -> None: + if self._closed: + return + + self._closed = True + + try: + if self._loop.is_closed(): + return + + # cancel cleanup task + if self._cleanup_handle: + self._cleanup_handle.cancel() + + # cancel cleanup close task + if self._cleanup_closed_handle: + self._cleanup_closed_handle.cancel() + + for data in self._conns.values(): + for proto, t0 in data: + proto.close() + + for proto in self._acquired: + proto.close() + + for transport in self._cleanup_closed_transports: + if transport is not None: + transport.abort() + + finally: + self._conns.clear() + self._acquired.clear() + self._waiters.clear() + self._cleanup_handle = None + self._cleanup_closed_transports.clear() + self._cleanup_closed_handle = None + + @property + def closed(self) -> bool: + """Is connector closed. + + A readonly property. + """ + return self._closed + + def _available_connections(self, key: "ConnectionKey") -> int: + """ + Return number of available connections. + + The limit, limit_per_host and the connection key are taken into account. + + If it returns less than 1 means that there are no connections + available. + """ + if self._limit: + # total calc available connections + available = self._limit - len(self._acquired) + + # check limit per host + if ( + self._limit_per_host + and available > 0 + and key in self._acquired_per_host + ): + acquired = self._acquired_per_host.get(key) + assert acquired is not None + available = self._limit_per_host - len(acquired) + + elif self._limit_per_host and key in self._acquired_per_host: + # check limit per host + acquired = self._acquired_per_host.get(key) + assert acquired is not None + available = self._limit_per_host - len(acquired) + else: + available = 1 + + return available + + async def connect( + self, req: ClientRequest, traces: List["Trace"], timeout: "ClientTimeout" + ) -> Connection: + """Get from pool or create new connection.""" + key = req.connection_key + available = self._available_connections(key) + + # Wait if there are no available connections or if there are/were + # waiters (i.e. don't steal connection from a waiter about to wake up) + if available <= 0 or key in self._waiters: + fut = self._loop.create_future() + + # This connection will now count towards the limit. + self._waiters[key].append(fut) + + if traces: + for trace in traces: + await trace.send_connection_queued_start() + + try: + await fut + except BaseException as e: + if key in self._waiters: + # remove a waiter even if it was cancelled, normally it's + # removed when it's notified + try: + self._waiters[key].remove(fut) + except ValueError: # fut may no longer be in list + pass + + raise e + finally: + if key in self._waiters and not self._waiters[key]: + del self._waiters[key] + + if traces: + for trace in traces: + await trace.send_connection_queued_end() + + proto = self._get(key) + if proto is None: + placeholder = cast(ResponseHandler, _TransportPlaceholder()) + self._acquired.add(placeholder) + self._acquired_per_host[key].add(placeholder) + + if traces: + for trace in traces: + await trace.send_connection_create_start() + + try: + proto = await self._create_connection(req, traces, timeout) + if self._closed: + proto.close() + raise ClientConnectionError("Connector is closed.") + except BaseException: + if not self._closed: + self._acquired.remove(placeholder) + self._drop_acquired_per_host(key, placeholder) + self._release_waiter() + raise + else: + if not self._closed: + self._acquired.remove(placeholder) + self._drop_acquired_per_host(key, placeholder) + + if traces: + for trace in traces: + await trace.send_connection_create_end() + else: + if traces: + # Acquire the connection to prevent race conditions with limits + placeholder = cast(ResponseHandler, _TransportPlaceholder()) + self._acquired.add(placeholder) + self._acquired_per_host[key].add(placeholder) + for trace in traces: + await trace.send_connection_reuseconn() + self._acquired.remove(placeholder) + self._drop_acquired_per_host(key, placeholder) + + self._acquired.add(proto) + self._acquired_per_host[key].add(proto) + return Connection(self, key, proto, self._loop) + + def _get(self, key: "ConnectionKey") -> Optional[ResponseHandler]: + try: + conns = self._conns[key] + except KeyError: + return None + + t1 = self._loop.time() + while conns: + proto, t0 = conns.pop() + if proto.is_connected(): + if t1 - t0 > self._keepalive_timeout: + transport = proto.transport + proto.close() + # only for SSL transports + if key.is_ssl and not self._cleanup_closed_disabled: + self._cleanup_closed_transports.append(transport) + else: + if not conns: + # The very last connection was reclaimed: drop the key + del self._conns[key] + return proto + else: + transport = proto.transport + proto.close() + if key.is_ssl and not self._cleanup_closed_disabled: + self._cleanup_closed_transports.append(transport) + + # No more connections: drop the key + del self._conns[key] + return None + + def _release_waiter(self) -> None: + """ + Iterates over all waiters until one to be released is found. + + The one to be released is not finished and + belongs to a host that has available connections. + """ + if not self._waiters: + return + + # Having the dict keys ordered this avoids to iterate + # at the same order at each call. + queues = list(self._waiters.keys()) + random.shuffle(queues) + + for key in queues: + if self._available_connections(key) < 1: + continue + + waiters = self._waiters[key] + while waiters: + waiter = waiters.popleft() + if not waiter.done(): + waiter.set_result(None) + return + + def _release_acquired(self, key: "ConnectionKey", proto: ResponseHandler) -> None: + if self._closed: + # acquired connection is already released on connector closing + return + + try: + self._acquired.remove(proto) + self._drop_acquired_per_host(key, proto) + except KeyError: # pragma: no cover + # this may be result of undetermenistic order of objects + # finalization due garbage collection. + pass + else: + self._release_waiter() + + def _release( + self, + key: "ConnectionKey", + protocol: ResponseHandler, + *, + should_close: bool = False, + ) -> None: + if self._closed: + # acquired connection is already released on connector closing + return + + self._release_acquired(key, protocol) + + if self._force_close: + should_close = True + + if should_close or protocol.should_close: + transport = protocol.transport + protocol.close() + + if key.is_ssl and not self._cleanup_closed_disabled: + self._cleanup_closed_transports.append(transport) + else: + conns = self._conns.get(key) + if conns is None: + conns = self._conns[key] = [] + conns.append((protocol, self._loop.time())) + + if self._cleanup_handle is None: + self._cleanup_handle = helpers.weakref_handle( + self, + "_cleanup", + self._keepalive_timeout, + self._loop, + timeout_ceil_threshold=self._timeout_ceil_threshold, + ) + + async def _create_connection( + self, req: ClientRequest, traces: List["Trace"], timeout: "ClientTimeout" + ) -> ResponseHandler: + raise NotImplementedError() + + +class _DNSCacheTable: + def __init__(self, ttl: Optional[float] = None) -> None: + self._addrs_rr: Dict[Tuple[str, int], Tuple[Iterator[Dict[str, Any]], int]] = {} + self._timestamps: Dict[Tuple[str, int], float] = {} + self._ttl = ttl + + def __contains__(self, host: object) -> bool: + return host in self._addrs_rr + + def add(self, key: Tuple[str, int], addrs: List[Dict[str, Any]]) -> None: + self._addrs_rr[key] = (cycle(addrs), len(addrs)) + + if self._ttl is not None: + self._timestamps[key] = monotonic() + + def remove(self, key: Tuple[str, int]) -> None: + self._addrs_rr.pop(key, None) + + if self._ttl is not None: + self._timestamps.pop(key, None) + + def clear(self) -> None: + self._addrs_rr.clear() + self._timestamps.clear() + + def next_addrs(self, key: Tuple[str, int]) -> List[Dict[str, Any]]: + loop, length = self._addrs_rr[key] + addrs = list(islice(loop, length)) + # Consume one more element to shift internal state of `cycle` + next(loop) + return addrs + + def expired(self, key: Tuple[str, int]) -> bool: + if self._ttl is None: + return False + + return self._timestamps[key] + self._ttl < monotonic() + + +class TCPConnector(BaseConnector): + """TCP connector. + + verify_ssl - Set to True to check ssl certifications. + fingerprint - Pass the binary sha256 + digest of the expected certificate in DER format to verify + that the certificate the server presents matches. See also + https://en.wikipedia.org/wiki/Transport_Layer_Security#Certificate_pinning + resolver - Enable DNS lookups and use this + resolver + use_dns_cache - Use memory cache for DNS lookups. + ttl_dns_cache - Max seconds having cached a DNS entry, None forever. + family - socket address family + local_addr - local tuple of (host, port) to bind socket to + + keepalive_timeout - (optional) Keep-alive timeout. + force_close - Set to True to force close and do reconnect + after each request (and between redirects). + limit - The total number of simultaneous connections. + limit_per_host - Number of simultaneous connections to one host. + enable_cleanup_closed - Enables clean-up closed ssl transports. + Disabled by default. + loop - Optional event loop. + """ + + def __init__( + self, + *, + verify_ssl: bool = True, + fingerprint: Optional[bytes] = None, + use_dns_cache: bool = True, + ttl_dns_cache: Optional[int] = 10, + family: int = 0, + ssl_context: Optional[SSLContext] = None, + ssl: Union[bool, Fingerprint, SSLContext] = True, + local_addr: Optional[Tuple[str, int]] = None, + resolver: Optional[AbstractResolver] = None, + keepalive_timeout: Union[None, float, object] = sentinel, + force_close: bool = False, + limit: int = 100, + limit_per_host: int = 0, + enable_cleanup_closed: bool = False, + loop: Optional[asyncio.AbstractEventLoop] = None, + timeout_ceil_threshold: float = 5, + ): + super().__init__( + keepalive_timeout=keepalive_timeout, + force_close=force_close, + limit=limit, + limit_per_host=limit_per_host, + enable_cleanup_closed=enable_cleanup_closed, + loop=loop, + timeout_ceil_threshold=timeout_ceil_threshold, + ) + + self._ssl = _merge_ssl_params(ssl, verify_ssl, ssl_context, fingerprint) + if resolver is None: + resolver = DefaultResolver(loop=self._loop) + self._resolver = resolver + + self._use_dns_cache = use_dns_cache + self._cached_hosts = _DNSCacheTable(ttl=ttl_dns_cache) + self._throttle_dns_events: Dict[Tuple[str, int], EventResultOrError] = {} + self._family = family + self._local_addr = local_addr + + def close(self) -> Awaitable[None]: + """Close all ongoing DNS calls.""" + for ev in self._throttle_dns_events.values(): + ev.cancel() + + return super().close() + + @property + def family(self) -> int: + """Socket family like AF_INET.""" + return self._family + + @property + def use_dns_cache(self) -> bool: + """True if local DNS caching is enabled.""" + return self._use_dns_cache + + def clear_dns_cache( + self, host: Optional[str] = None, port: Optional[int] = None + ) -> None: + """Remove specified host/port or clear all dns local cache.""" + if host is not None and port is not None: + self._cached_hosts.remove((host, port)) + elif host is not None or port is not None: + raise ValueError("either both host and port " "or none of them are allowed") + else: + self._cached_hosts.clear() + + async def _resolve_host( + self, host: str, port: int, traces: Optional[List["Trace"]] = None + ) -> List[Dict[str, Any]]: + if is_ip_address(host): + return [ + { + "hostname": host, + "host": host, + "port": port, + "family": self._family, + "proto": 0, + "flags": 0, + } + ] + + if not self._use_dns_cache: + + if traces: + for trace in traces: + await trace.send_dns_resolvehost_start(host) + + res = await self._resolver.resolve(host, port, family=self._family) + + if traces: + for trace in traces: + await trace.send_dns_resolvehost_end(host) + + return res + + key = (host, port) + + if (key in self._cached_hosts) and (not self._cached_hosts.expired(key)): + # get result early, before any await (#4014) + result = self._cached_hosts.next_addrs(key) + + if traces: + for trace in traces: + await trace.send_dns_cache_hit(host) + return result + + if key in self._throttle_dns_events: + # get event early, before any await (#4014) + event = self._throttle_dns_events[key] + if traces: + for trace in traces: + await trace.send_dns_cache_hit(host) + await event.wait() + else: + # update dict early, before any await (#4014) + self._throttle_dns_events[key] = EventResultOrError(self._loop) + if traces: + for trace in traces: + await trace.send_dns_cache_miss(host) + try: + + if traces: + for trace in traces: + await trace.send_dns_resolvehost_start(host) + + addrs = await self._resolver.resolve(host, port, family=self._family) + if traces: + for trace in traces: + await trace.send_dns_resolvehost_end(host) + + self._cached_hosts.add(key, addrs) + self._throttle_dns_events[key].set() + except BaseException as e: + # any DNS exception, independently of the implementation + # is set for the waiters to raise the same exception. + self._throttle_dns_events[key].set(exc=e) + raise + finally: + self._throttle_dns_events.pop(key) + + return self._cached_hosts.next_addrs(key) + + async def _create_connection( + self, req: ClientRequest, traces: List["Trace"], timeout: "ClientTimeout" + ) -> ResponseHandler: + """Create connection. + + Has same keyword arguments as BaseEventLoop.create_connection. + """ + if req.proxy: + _, proto = await self._create_proxy_connection(req, traces, timeout) + else: + _, proto = await self._create_direct_connection(req, traces, timeout) + + return proto + + @staticmethod + @functools.lru_cache(None) + def _make_ssl_context(verified: bool) -> SSLContext: + if verified: + return ssl.create_default_context() + else: + sslcontext = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT) + sslcontext.options |= ssl.OP_NO_SSLv2 + sslcontext.options |= ssl.OP_NO_SSLv3 + sslcontext.check_hostname = False + sslcontext.verify_mode = ssl.CERT_NONE + try: + sslcontext.options |= ssl.OP_NO_COMPRESSION + except AttributeError as attr_err: + warnings.warn( + "{!s}: The Python interpreter is compiled " + "against OpenSSL < 1.0.0. Ref: " + "https://docs.python.org/3/library/ssl.html" + "#ssl.OP_NO_COMPRESSION".format(attr_err), + ) + sslcontext.set_default_verify_paths() + return sslcontext + + def _get_ssl_context(self, req: ClientRequest) -> Optional[SSLContext]: + """Logic to get the correct SSL context + + 0. if req.ssl is false, return None + + 1. if ssl_context is specified in req, use it + 2. if _ssl_context is specified in self, use it + 3. otherwise: + 1. if verify_ssl is not specified in req, use self.ssl_context + (will generate a default context according to self.verify_ssl) + 2. if verify_ssl is True in req, generate a default SSL context + 3. if verify_ssl is False in req, generate a SSL context that + won't verify + """ + if req.is_ssl(): + if ssl is None: # pragma: no cover + raise RuntimeError("SSL is not supported.") + sslcontext = req.ssl + if isinstance(sslcontext, ssl.SSLContext): + return sslcontext + if sslcontext is not True: + # not verified or fingerprinted + return self._make_ssl_context(False) + sslcontext = self._ssl + if isinstance(sslcontext, ssl.SSLContext): + return sslcontext + if sslcontext is not True: + # not verified or fingerprinted + return self._make_ssl_context(False) + return self._make_ssl_context(True) + else: + return None + + def _get_fingerprint(self, req: ClientRequest) -> Optional["Fingerprint"]: + ret = req.ssl + if isinstance(ret, Fingerprint): + return ret + ret = self._ssl + if isinstance(ret, Fingerprint): + return ret + return None + + async def _wrap_create_connection( + self, + *args: Any, + req: ClientRequest, + timeout: "ClientTimeout", + client_error: Type[Exception] = ClientConnectorError, + **kwargs: Any, + ) -> Tuple[asyncio.Transport, ResponseHandler]: + try: + async with ceil_timeout( + timeout.sock_connect, ceil_threshold=timeout.ceil_threshold + ): + return await self._loop.create_connection(*args, **kwargs) + except cert_errors as exc: + raise ClientConnectorCertificateError(req.connection_key, exc) from exc + except ssl_errors as exc: + raise ClientConnectorSSLError(req.connection_key, exc) from exc + except OSError as exc: + if exc.errno is None and isinstance(exc, asyncio.TimeoutError): + raise + raise client_error(req.connection_key, exc) from exc + + def _fail_on_no_start_tls(self, req: "ClientRequest") -> None: + """Raise a :py:exc:`RuntimeError` on missing ``start_tls()``. + + It is necessary for TLS-in-TLS so that it is possible to + send HTTPS queries through HTTPS proxies. + + This doesn't affect regular HTTP requests, though. + """ + if not req.is_ssl(): + return + + proxy_url = req.proxy + assert proxy_url is not None + if proxy_url.scheme != "https": + return + + self._check_loop_for_start_tls() + + def _check_loop_for_start_tls(self) -> None: + try: + self._loop.start_tls + except AttributeError as attr_exc: + raise RuntimeError( + "An HTTPS request is being sent through an HTTPS proxy. " + "This needs support for TLS in TLS but it is not implemented " + "in your runtime for the stdlib asyncio.\n\n" + "Please upgrade to Python 3.11 or higher. For more details, " + "please see:\n" + "* https://bugs.python.org/issue37179\n" + "* https://github.com/python/cpython/pull/28073\n" + "* https://docs.aiohttp.org/en/stable/" + "client_advanced.html#proxy-support\n" + "* https://github.com/aio-libs/aiohttp/discussions/6044\n", + ) from attr_exc + + def _loop_supports_start_tls(self) -> bool: + try: + self._check_loop_for_start_tls() + except RuntimeError: + return False + else: + return True + + def _warn_about_tls_in_tls( + self, + underlying_transport: asyncio.Transport, + req: ClientRequest, + ) -> None: + """Issue a warning if the requested URL has HTTPS scheme.""" + if req.request_info.url.scheme != "https": + return + + asyncio_supports_tls_in_tls = getattr( + underlying_transport, + "_start_tls_compatible", + False, + ) + + if asyncio_supports_tls_in_tls: + return + + warnings.warn( + "An HTTPS request is being sent through an HTTPS proxy. " + "This support for TLS in TLS is known to be disabled " + "in the stdlib asyncio (Python <3.11). This is why you'll probably see " + "an error in the log below.\n\n" + "It is possible to enable it via monkeypatching. " + "For more details, see:\n" + "* https://bugs.python.org/issue37179\n" + "* https://github.com/python/cpython/pull/28073\n\n" + "You can temporarily patch this as follows:\n" + "* https://docs.aiohttp.org/en/stable/client_advanced.html#proxy-support\n" + "* https://github.com/aio-libs/aiohttp/discussions/6044\n", + RuntimeWarning, + source=self, + # Why `4`? At least 3 of the calls in the stack originate + # from the methods in this class. + stacklevel=3, + ) + + async def _start_tls_connection( + self, + underlying_transport: asyncio.Transport, + req: ClientRequest, + timeout: "ClientTimeout", + client_error: Type[Exception] = ClientConnectorError, + ) -> Tuple[asyncio.BaseTransport, ResponseHandler]: + """Wrap the raw TCP transport with TLS.""" + tls_proto = self._factory() # Create a brand new proto for TLS + + # Safety of the `cast()` call here is based on the fact that + # internally `_get_ssl_context()` only returns `None` when + # `req.is_ssl()` evaluates to `False` which is never gonna happen + # in this code path. Of course, it's rather fragile + # maintainability-wise but this is to be solved separately. + sslcontext = cast(ssl.SSLContext, self._get_ssl_context(req)) + + try: + async with ceil_timeout( + timeout.sock_connect, ceil_threshold=timeout.ceil_threshold + ): + try: + tls_transport = await self._loop.start_tls( + underlying_transport, + tls_proto, + sslcontext, + server_hostname=req.server_hostname or req.host, + ssl_handshake_timeout=timeout.total, + ) + except BaseException: + # We need to close the underlying transport since + # `start_tls()` probably failed before it had a + # chance to do this: + underlying_transport.close() + raise + except cert_errors as exc: + raise ClientConnectorCertificateError(req.connection_key, exc) from exc + except ssl_errors as exc: + raise ClientConnectorSSLError(req.connection_key, exc) from exc + except OSError as exc: + if exc.errno is None and isinstance(exc, asyncio.TimeoutError): + raise + raise client_error(req.connection_key, exc) from exc + except TypeError as type_err: + # Example cause looks like this: + # TypeError: transport is not supported by start_tls() + + raise ClientConnectionError( + "Cannot initialize a TLS-in-TLS connection to host " + f"{req.host!s}:{req.port:d} through an underlying connection " + f"to an HTTPS proxy {req.proxy!s} ssl:{req.ssl or 'default'} " + f"[{type_err!s}]" + ) from type_err + else: + if tls_transport is None: + msg = "Failed to start TLS (possibly caused by closing transport)" + raise client_error(req.connection_key, OSError(msg)) + tls_proto.connection_made( + tls_transport + ) # Kick the state machine of the new TLS protocol + + return tls_transport, tls_proto + + async def _create_direct_connection( + self, + req: ClientRequest, + traces: List["Trace"], + timeout: "ClientTimeout", + *, + client_error: Type[Exception] = ClientConnectorError, + ) -> Tuple[asyncio.Transport, ResponseHandler]: + sslcontext = self._get_ssl_context(req) + fingerprint = self._get_fingerprint(req) + + host = req.url.raw_host + assert host is not None + # Replace multiple trailing dots with a single one. + # A trailing dot is only present for fully-qualified domain names. + # See https://github.com/aio-libs/aiohttp/pull/7364. + if host.endswith(".."): + host = host.rstrip(".") + "." + port = req.port + assert port is not None + host_resolved = asyncio.ensure_future( + self._resolve_host(host, port, traces=traces), loop=self._loop + ) + try: + # Cancelling this lookup should not cancel the underlying lookup + # or else the cancel event will get broadcast to all the waiters + # across all connections. + hosts = await asyncio.shield(host_resolved) + except asyncio.CancelledError: + + def drop_exception(fut: "asyncio.Future[List[Dict[str, Any]]]") -> None: + with suppress(Exception, asyncio.CancelledError): + fut.result() + + host_resolved.add_done_callback(drop_exception) + raise + except OSError as exc: + if exc.errno is None and isinstance(exc, asyncio.TimeoutError): + raise + # in case of proxy it is not ClientProxyConnectionError + # it is problem of resolving proxy ip itself + raise ClientConnectorError(req.connection_key, exc) from exc + + last_exc: Optional[Exception] = None + + for hinfo in hosts: + host = hinfo["host"] + port = hinfo["port"] + + # Strip trailing dots, certificates contain FQDN without dots. + # See https://github.com/aio-libs/aiohttp/issues/3636 + server_hostname = ( + (req.server_hostname or hinfo["hostname"]).rstrip(".") + if sslcontext + else None + ) + + try: + transp, proto = await self._wrap_create_connection( + self._factory, + host, + port, + timeout=timeout, + ssl=sslcontext, + family=hinfo["family"], + proto=hinfo["proto"], + flags=hinfo["flags"], + server_hostname=server_hostname, + local_addr=self._local_addr, + req=req, + client_error=client_error, + ) + except ClientConnectorError as exc: + last_exc = exc + continue + + if req.is_ssl() and fingerprint: + try: + fingerprint.check(transp) + except ServerFingerprintMismatch as exc: + transp.close() + if not self._cleanup_closed_disabled: + self._cleanup_closed_transports.append(transp) + last_exc = exc + continue + + return transp, proto + else: + assert last_exc is not None + raise last_exc + + async def _create_proxy_connection( + self, req: ClientRequest, traces: List["Trace"], timeout: "ClientTimeout" + ) -> Tuple[asyncio.BaseTransport, ResponseHandler]: + self._fail_on_no_start_tls(req) + runtime_has_start_tls = self._loop_supports_start_tls() + + headers: Dict[str, str] = {} + if req.proxy_headers is not None: + headers = req.proxy_headers # type: ignore[assignment] + headers[hdrs.HOST] = req.headers[hdrs.HOST] + + url = req.proxy + assert url is not None + proxy_req = ClientRequest( + hdrs.METH_GET, + url, + headers=headers, + auth=req.proxy_auth, + loop=self._loop, + ssl=req.ssl, + ) + + # create connection to proxy server + transport, proto = await self._create_direct_connection( + proxy_req, [], timeout, client_error=ClientProxyConnectionError + ) + + # Many HTTP proxies has buggy keepalive support. Let's not + # reuse connection but close it after processing every + # response. + proto.force_close() + + auth = proxy_req.headers.pop(hdrs.AUTHORIZATION, None) + if auth is not None: + if not req.is_ssl(): + req.headers[hdrs.PROXY_AUTHORIZATION] = auth + else: + proxy_req.headers[hdrs.PROXY_AUTHORIZATION] = auth + + if req.is_ssl(): + if runtime_has_start_tls: + self._warn_about_tls_in_tls(transport, req) + + # For HTTPS requests over HTTP proxy + # we must notify proxy to tunnel connection + # so we send CONNECT command: + # CONNECT www.python.org:443 HTTP/1.1 + # Host: www.python.org + # + # next we must do TLS handshake and so on + # to do this we must wrap raw socket into secure one + # asyncio handles this perfectly + proxy_req.method = hdrs.METH_CONNECT + proxy_req.url = req.url + key = attr.evolve( + req.connection_key, proxy=None, proxy_auth=None, proxy_headers_hash=None + ) + conn = Connection(self, key, proto, self._loop) + proxy_resp = await proxy_req.send(conn) + try: + protocol = conn._protocol + assert protocol is not None + + # read_until_eof=True will ensure the connection isn't closed + # once the response is received and processed allowing + # START_TLS to work on the connection below. + protocol.set_response_params( + read_until_eof=runtime_has_start_tls, + timeout_ceil_threshold=self._timeout_ceil_threshold, + ) + resp = await proxy_resp.start(conn) + except BaseException: + proxy_resp.close() + conn.close() + raise + else: + conn._protocol = None + conn._transport = None + try: + if resp.status != 200: + message = resp.reason + if message is None: + message = HTTPStatus(resp.status).phrase + raise ClientHttpProxyError( + proxy_resp.request_info, + resp.history, + status=resp.status, + message=message, + headers=resp.headers, + ) + if not runtime_has_start_tls: + rawsock = transport.get_extra_info("socket", default=None) + if rawsock is None: + raise RuntimeError( + "Transport does not expose socket instance" + ) + # Duplicate the socket, so now we can close proxy transport + rawsock = rawsock.dup() + except BaseException: + # It shouldn't be closed in `finally` because it's fed to + # `loop.start_tls()` and the docs say not to touch it after + # passing there. + transport.close() + raise + finally: + if not runtime_has_start_tls: + transport.close() + + if not runtime_has_start_tls: + # HTTP proxy with support for upgrade to HTTPS + sslcontext = self._get_ssl_context(req) + return await self._wrap_create_connection( + self._factory, + timeout=timeout, + ssl=sslcontext, + sock=rawsock, + server_hostname=req.host, + req=req, + ) + + return await self._start_tls_connection( + # Access the old transport for the last time before it's + # closed and forgotten forever: + transport, + req=req, + timeout=timeout, + ) + finally: + proxy_resp.close() + + return transport, proto + + +class UnixConnector(BaseConnector): + """Unix socket connector. + + path - Unix socket path. + keepalive_timeout - (optional) Keep-alive timeout. + force_close - Set to True to force close and do reconnect + after each request (and between redirects). + limit - The total number of simultaneous connections. + limit_per_host - Number of simultaneous connections to one host. + loop - Optional event loop. + """ + + def __init__( + self, + path: str, + force_close: bool = False, + keepalive_timeout: Union[object, float, None] = sentinel, + limit: int = 100, + limit_per_host: int = 0, + loop: Optional[asyncio.AbstractEventLoop] = None, + ) -> None: + super().__init__( + force_close=force_close, + keepalive_timeout=keepalive_timeout, + limit=limit, + limit_per_host=limit_per_host, + loop=loop, + ) + self._path = path + + @property + def path(self) -> str: + """Path to unix socket.""" + return self._path + + async def _create_connection( + self, req: ClientRequest, traces: List["Trace"], timeout: "ClientTimeout" + ) -> ResponseHandler: + try: + async with ceil_timeout( + timeout.sock_connect, ceil_threshold=timeout.ceil_threshold + ): + _, proto = await self._loop.create_unix_connection( + self._factory, self._path + ) + except OSError as exc: + if exc.errno is None and isinstance(exc, asyncio.TimeoutError): + raise + raise UnixClientConnectorError(self.path, req.connection_key, exc) from exc + + return proto + + +class NamedPipeConnector(BaseConnector): + """Named pipe connector. + + Only supported by the proactor event loop. + See also: https://docs.python.org/3/library/asyncio-eventloop.html + + path - Windows named pipe path. + keepalive_timeout - (optional) Keep-alive timeout. + force_close - Set to True to force close and do reconnect + after each request (and between redirects). + limit - The total number of simultaneous connections. + limit_per_host - Number of simultaneous connections to one host. + loop - Optional event loop. + """ + + def __init__( + self, + path: str, + force_close: bool = False, + keepalive_timeout: Union[object, float, None] = sentinel, + limit: int = 100, + limit_per_host: int = 0, + loop: Optional[asyncio.AbstractEventLoop] = None, + ) -> None: + super().__init__( + force_close=force_close, + keepalive_timeout=keepalive_timeout, + limit=limit, + limit_per_host=limit_per_host, + loop=loop, + ) + if not isinstance( + self._loop, asyncio.ProactorEventLoop # type: ignore[attr-defined] + ): + raise RuntimeError( + "Named Pipes only available in proactor " "loop under windows" + ) + self._path = path + + @property + def path(self) -> str: + """Path to the named pipe.""" + return self._path + + async def _create_connection( + self, req: ClientRequest, traces: List["Trace"], timeout: "ClientTimeout" + ) -> ResponseHandler: + try: + async with ceil_timeout( + timeout.sock_connect, ceil_threshold=timeout.ceil_threshold + ): + _, proto = await self._loop.create_pipe_connection( # type: ignore[attr-defined] + self._factory, self._path + ) + # the drain is required so that the connection_made is called + # and transport is set otherwise it is not set before the + # `assert conn.transport is not None` + # in client.py's _request method + await asyncio.sleep(0) + # other option is to manually set transport like + # `proto.transport = trans` + except OSError as exc: + if exc.errno is None and isinstance(exc, asyncio.TimeoutError): + raise + raise ClientConnectorError(req.connection_key, exc) from exc + + return cast(ResponseHandler, proto) diff --git a/gtm/lib/python3.12/site-packages/aiohttp/cookiejar.py b/gtm/lib/python3.12/site-packages/aiohttp/cookiejar.py new file mode 100644 index 0000000000000000000000000000000000000000..a348f112cb55d7643ce656103c5c9dcb472ed46d --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/cookiejar.py @@ -0,0 +1,419 @@ +import asyncio +import calendar +import contextlib +import datetime +import os # noqa +import pathlib +import pickle +import re +import time +from collections import defaultdict +from http.cookies import BaseCookie, Morsel, SimpleCookie +from math import ceil +from typing import ( # noqa + DefaultDict, + Dict, + Iterable, + Iterator, + List, + Mapping, + Optional, + Set, + Tuple, + Union, + cast, +) + +from yarl import URL + +from .abc import AbstractCookieJar, ClearCookiePredicate +from .helpers import is_ip_address +from .typedefs import LooseCookies, PathLike, StrOrURL + +__all__ = ("CookieJar", "DummyCookieJar") + + +CookieItem = Union[str, "Morsel[str]"] + + +class CookieJar(AbstractCookieJar): + """Implements cookie storage adhering to RFC 6265.""" + + DATE_TOKENS_RE = re.compile( + r"[\x09\x20-\x2F\x3B-\x40\x5B-\x60\x7B-\x7E]*" + r"(?P[\x00-\x08\x0A-\x1F\d:a-zA-Z\x7F-\xFF]+)" + ) + + DATE_HMS_TIME_RE = re.compile(r"(\d{1,2}):(\d{1,2}):(\d{1,2})") + + DATE_DAY_OF_MONTH_RE = re.compile(r"(\d{1,2})") + + DATE_MONTH_RE = re.compile( + "(jan)|(feb)|(mar)|(apr)|(may)|(jun)|(jul)|" "(aug)|(sep)|(oct)|(nov)|(dec)", + re.I, + ) + + DATE_YEAR_RE = re.compile(r"(\d{2,4})") + + # calendar.timegm() fails for timestamps after datetime.datetime.max + # Minus one as a loss of precision occurs when timestamp() is called. + MAX_TIME = ( + int(datetime.datetime.max.replace(tzinfo=datetime.timezone.utc).timestamp()) - 1 + ) + try: + calendar.timegm(time.gmtime(MAX_TIME)) + except (OSError, ValueError): + # Hit the maximum representable time on Windows + # https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/localtime-localtime32-localtime64 + # Throws ValueError on PyPy 3.8 and 3.9, OSError elsewhere + MAX_TIME = calendar.timegm((3000, 12, 31, 23, 59, 59, -1, -1, -1)) + except OverflowError: + # #4515: datetime.max may not be representable on 32-bit platforms + MAX_TIME = 2**31 - 1 + # Avoid minuses in the future, 3x faster + SUB_MAX_TIME = MAX_TIME - 1 + + def __init__( + self, + *, + unsafe: bool = False, + quote_cookie: bool = True, + treat_as_secure_origin: Union[StrOrURL, List[StrOrURL], None] = None, + loop: Optional[asyncio.AbstractEventLoop] = None, + ) -> None: + super().__init__(loop=loop) + self._cookies: DefaultDict[Tuple[str, str], SimpleCookie] = defaultdict( + SimpleCookie + ) + self._host_only_cookies: Set[Tuple[str, str]] = set() + self._unsafe = unsafe + self._quote_cookie = quote_cookie + if treat_as_secure_origin is None: + treat_as_secure_origin = [] + elif isinstance(treat_as_secure_origin, URL): + treat_as_secure_origin = [treat_as_secure_origin.origin()] + elif isinstance(treat_as_secure_origin, str): + treat_as_secure_origin = [URL(treat_as_secure_origin).origin()] + else: + treat_as_secure_origin = [ + URL(url).origin() if isinstance(url, str) else url.origin() + for url in treat_as_secure_origin + ] + self._treat_as_secure_origin = treat_as_secure_origin + self._next_expiration: float = ceil(time.time()) + self._expirations: Dict[Tuple[str, str, str], float] = {} + + def save(self, file_path: PathLike) -> None: + file_path = pathlib.Path(file_path) + with file_path.open(mode="wb") as f: + pickle.dump(self._cookies, f, pickle.HIGHEST_PROTOCOL) + + def load(self, file_path: PathLike) -> None: + file_path = pathlib.Path(file_path) + with file_path.open(mode="rb") as f: + self._cookies = pickle.load(f) + + def clear(self, predicate: Optional[ClearCookiePredicate] = None) -> None: + if predicate is None: + self._next_expiration = ceil(time.time()) + self._cookies.clear() + self._host_only_cookies.clear() + self._expirations.clear() + return + + to_del = [] + now = time.time() + for (domain, path), cookie in self._cookies.items(): + for name, morsel in cookie.items(): + key = (domain, path, name) + if ( + key in self._expirations and self._expirations[key] <= now + ) or predicate(morsel): + to_del.append(key) + + for domain, path, name in to_del: + self._host_only_cookies.discard((domain, name)) + key = (domain, path, name) + if key in self._expirations: + del self._expirations[(domain, path, name)] + self._cookies[(domain, path)].pop(name, None) + + self._next_expiration = ( + min(*self._expirations.values(), self.SUB_MAX_TIME) + 1 + if self._expirations + else self.MAX_TIME + ) + + def clear_domain(self, domain: str) -> None: + self.clear(lambda x: self._is_domain_match(domain, x["domain"])) + + def __iter__(self) -> "Iterator[Morsel[str]]": + self._do_expiration() + for val in self._cookies.values(): + yield from val.values() + + def __len__(self) -> int: + return sum(1 for i in self) + + def _do_expiration(self) -> None: + self.clear(lambda x: False) + + def _expire_cookie(self, when: float, domain: str, path: str, name: str) -> None: + self._next_expiration = min(self._next_expiration, when) + self._expirations[(domain, path, name)] = when + + def update_cookies(self, cookies: LooseCookies, response_url: URL = URL()) -> None: + """Update cookies.""" + hostname = response_url.raw_host + + if not self._unsafe and is_ip_address(hostname): + # Don't accept cookies from IPs + return + + if isinstance(cookies, Mapping): + cookies = cookies.items() + + for name, cookie in cookies: + if not isinstance(cookie, Morsel): + tmp = SimpleCookie() + tmp[name] = cookie # type: ignore[assignment] + cookie = tmp[name] + + domain = cookie["domain"] + + # ignore domains with trailing dots + if domain.endswith("."): + domain = "" + del cookie["domain"] + + if not domain and hostname is not None: + # Set the cookie's domain to the response hostname + # and set its host-only-flag + self._host_only_cookies.add((hostname, name)) + domain = cookie["domain"] = hostname + + if domain.startswith("."): + # Remove leading dot + domain = domain[1:] + cookie["domain"] = domain + + if hostname and not self._is_domain_match(domain, hostname): + # Setting cookies for different domains is not allowed + continue + + path = cookie["path"] + if not path or not path.startswith("/"): + # Set the cookie's path to the response path + path = response_url.path + if not path.startswith("/"): + path = "/" + else: + # Cut everything from the last slash to the end + path = "/" + path[1 : path.rfind("/")] + cookie["path"] = path + + max_age = cookie["max-age"] + if max_age: + try: + delta_seconds = int(max_age) + max_age_expiration = min(time.time() + delta_seconds, self.MAX_TIME) + self._expire_cookie(max_age_expiration, domain, path, name) + except ValueError: + cookie["max-age"] = "" + + else: + expires = cookie["expires"] + if expires: + expire_time = self._parse_date(expires) + if expire_time: + self._expire_cookie(expire_time, domain, path, name) + else: + cookie["expires"] = "" + + self._cookies[(domain, path)][name] = cookie + + self._do_expiration() + + def filter_cookies(self, request_url: URL = URL()) -> "BaseCookie[str]": + """Returns this jar's cookies filtered by their attributes.""" + filtered: Union[SimpleCookie, "BaseCookie[str]"] = ( + SimpleCookie() if self._quote_cookie else BaseCookie() + ) + if not self._cookies: + # Skip do_expiration() if there are no cookies. + return filtered + self._do_expiration() + if not self._cookies: + # Skip rest of function if no non-expired cookies. + return filtered + request_url = URL(request_url) + hostname = request_url.raw_host or "" + + is_not_secure = request_url.scheme not in ("https", "wss") + if is_not_secure and self._treat_as_secure_origin: + request_origin = URL() + with contextlib.suppress(ValueError): + request_origin = request_url.origin() + is_not_secure = request_origin not in self._treat_as_secure_origin + + # Point 2: https://www.rfc-editor.org/rfc/rfc6265.html#section-5.4 + for cookie in sorted(self, key=lambda c: len(c["path"])): + name = cookie.key + domain = cookie["domain"] + + # Send shared cookies + if not domain: + filtered[name] = cookie.value + continue + + if not self._unsafe and is_ip_address(hostname): + continue + + if (domain, name) in self._host_only_cookies: + if domain != hostname: + continue + elif not self._is_domain_match(domain, hostname): + continue + + if not self._is_path_match(request_url.path, cookie["path"]): + continue + + if is_not_secure and cookie["secure"]: + continue + + # It's critical we use the Morsel so the coded_value + # (based on cookie version) is preserved + mrsl_val = cast("Morsel[str]", cookie.get(cookie.key, Morsel())) + mrsl_val.set(cookie.key, cookie.value, cookie.coded_value) + filtered[name] = mrsl_val + + return filtered + + @staticmethod + def _is_domain_match(domain: str, hostname: str) -> bool: + """Implements domain matching adhering to RFC 6265.""" + if hostname == domain: + return True + + if not hostname.endswith(domain): + return False + + non_matching = hostname[: -len(domain)] + + if not non_matching.endswith("."): + return False + + return not is_ip_address(hostname) + + @staticmethod + def _is_path_match(req_path: str, cookie_path: str) -> bool: + """Implements path matching adhering to RFC 6265.""" + if not req_path.startswith("/"): + req_path = "/" + + if req_path == cookie_path: + return True + + if not req_path.startswith(cookie_path): + return False + + if cookie_path.endswith("/"): + return True + + non_matching = req_path[len(cookie_path) :] + + return non_matching.startswith("/") + + @classmethod + def _parse_date(cls, date_str: str) -> Optional[int]: + """Implements date string parsing adhering to RFC 6265.""" + if not date_str: + return None + + found_time = False + found_day = False + found_month = False + found_year = False + + hour = minute = second = 0 + day = 0 + month = 0 + year = 0 + + for token_match in cls.DATE_TOKENS_RE.finditer(date_str): + + token = token_match.group("token") + + if not found_time: + time_match = cls.DATE_HMS_TIME_RE.match(token) + if time_match: + found_time = True + hour, minute, second = (int(s) for s in time_match.groups()) + continue + + if not found_day: + day_match = cls.DATE_DAY_OF_MONTH_RE.match(token) + if day_match: + found_day = True + day = int(day_match.group()) + continue + + if not found_month: + month_match = cls.DATE_MONTH_RE.match(token) + if month_match: + found_month = True + assert month_match.lastindex is not None + month = month_match.lastindex + continue + + if not found_year: + year_match = cls.DATE_YEAR_RE.match(token) + if year_match: + found_year = True + year = int(year_match.group()) + + if 70 <= year <= 99: + year += 1900 + elif 0 <= year <= 69: + year += 2000 + + if False in (found_day, found_month, found_year, found_time): + return None + + if not 1 <= day <= 31: + return None + + if year < 1601 or hour > 23 or minute > 59 or second > 59: + return None + + return calendar.timegm((year, month, day, hour, minute, second, -1, -1, -1)) + + +class DummyCookieJar(AbstractCookieJar): + """Implements a dummy cookie storage. + + It can be used with the ClientSession when no cookie processing is needed. + + """ + + def __init__(self, *, loop: Optional[asyncio.AbstractEventLoop] = None) -> None: + super().__init__(loop=loop) + + def __iter__(self) -> "Iterator[Morsel[str]]": + while False: + yield None + + def __len__(self) -> int: + return 0 + + def clear(self, predicate: Optional[ClearCookiePredicate] = None) -> None: + pass + + def clear_domain(self, domain: str) -> None: + pass + + def update_cookies(self, cookies: LooseCookies, response_url: URL = URL()) -> None: + pass + + def filter_cookies(self, request_url: URL) -> "BaseCookie[str]": + return SimpleCookie() diff --git a/gtm/lib/python3.12/site-packages/aiohttp/formdata.py b/gtm/lib/python3.12/site-packages/aiohttp/formdata.py new file mode 100644 index 0000000000000000000000000000000000000000..e7cd24ca9f7afb2bd31f1c653d9e15acb4fedc8b --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/formdata.py @@ -0,0 +1,172 @@ +import io +from typing import Any, Iterable, List, Optional +from urllib.parse import urlencode + +from multidict import MultiDict, MultiDictProxy + +from . import hdrs, multipart, payload +from .helpers import guess_filename +from .payload import Payload + +__all__ = ("FormData",) + + +class FormData: + """Helper class for form body generation. + + Supports multipart/form-data and application/x-www-form-urlencoded. + """ + + def __init__( + self, + fields: Iterable[Any] = (), + quote_fields: bool = True, + charset: Optional[str] = None, + ) -> None: + self._writer = multipart.MultipartWriter("form-data") + self._fields: List[Any] = [] + self._is_multipart = False + self._is_processed = False + self._quote_fields = quote_fields + self._charset = charset + + if isinstance(fields, dict): + fields = list(fields.items()) + elif not isinstance(fields, (list, tuple)): + fields = (fields,) + self.add_fields(*fields) + + @property + def is_multipart(self) -> bool: + return self._is_multipart + + def add_field( + self, + name: str, + value: Any, + *, + content_type: Optional[str] = None, + filename: Optional[str] = None, + content_transfer_encoding: Optional[str] = None, + ) -> None: + + if isinstance(value, io.IOBase): + self._is_multipart = True + elif isinstance(value, (bytes, bytearray, memoryview)): + if filename is None and content_transfer_encoding is None: + filename = name + + type_options: MultiDict[str] = MultiDict({"name": name}) + if filename is not None and not isinstance(filename, str): + raise TypeError( + "filename must be an instance of str. " "Got: %s" % filename + ) + if filename is None and isinstance(value, io.IOBase): + filename = guess_filename(value, name) + if filename is not None: + type_options["filename"] = filename + self._is_multipart = True + + headers = {} + if content_type is not None: + if not isinstance(content_type, str): + raise TypeError( + "content_type must be an instance of str. " "Got: %s" % content_type + ) + headers[hdrs.CONTENT_TYPE] = content_type + self._is_multipart = True + if content_transfer_encoding is not None: + if not isinstance(content_transfer_encoding, str): + raise TypeError( + "content_transfer_encoding must be an instance" + " of str. Got: %s" % content_transfer_encoding + ) + headers[hdrs.CONTENT_TRANSFER_ENCODING] = content_transfer_encoding + self._is_multipart = True + + self._fields.append((type_options, headers, value)) + + def add_fields(self, *fields: Any) -> None: + to_add = list(fields) + + while to_add: + rec = to_add.pop(0) + + if isinstance(rec, io.IOBase): + k = guess_filename(rec, "unknown") + self.add_field(k, rec) # type: ignore[arg-type] + + elif isinstance(rec, (MultiDictProxy, MultiDict)): + to_add.extend(rec.items()) + + elif isinstance(rec, (list, tuple)) and len(rec) == 2: + k, fp = rec + self.add_field(k, fp) # type: ignore[arg-type] + + else: + raise TypeError( + "Only io.IOBase, multidict and (name, file) " + "pairs allowed, use .add_field() for passing " + "more complex parameters, got {!r}".format(rec) + ) + + def _gen_form_urlencoded(self) -> payload.BytesPayload: + # form data (x-www-form-urlencoded) + data = [] + for type_options, _, value in self._fields: + data.append((type_options["name"], value)) + + charset = self._charset if self._charset is not None else "utf-8" + + if charset == "utf-8": + content_type = "application/x-www-form-urlencoded" + else: + content_type = "application/x-www-form-urlencoded; " "charset=%s" % charset + + return payload.BytesPayload( + urlencode(data, doseq=True, encoding=charset).encode(), + content_type=content_type, + ) + + def _gen_form_data(self) -> multipart.MultipartWriter: + """Encode a list of fields using the multipart/form-data MIME format""" + if self._is_processed: + raise RuntimeError("Form data has been processed already") + for dispparams, headers, value in self._fields: + try: + if hdrs.CONTENT_TYPE in headers: + part = payload.get_payload( + value, + content_type=headers[hdrs.CONTENT_TYPE], + headers=headers, + encoding=self._charset, + ) + else: + part = payload.get_payload( + value, headers=headers, encoding=self._charset + ) + except Exception as exc: + raise TypeError( + "Can not serialize value type: %r\n " + "headers: %r\n value: %r" % (type(value), headers, value) + ) from exc + + if dispparams: + part.set_content_disposition( + "form-data", quote_fields=self._quote_fields, **dispparams + ) + # FIXME cgi.FieldStorage doesn't likes body parts with + # Content-Length which were sent via chunked transfer encoding + assert part.headers is not None + part.headers.popall(hdrs.CONTENT_LENGTH, None) + + self._writer.append_payload(part) + + self._is_processed = True + return self._writer + + def __call__(self) -> Payload: + if self._is_multipart: + return self._gen_form_data() + else: + return self._gen_form_urlencoded() diff --git a/gtm/lib/python3.12/site-packages/aiohttp/hdrs.py b/gtm/lib/python3.12/site-packages/aiohttp/hdrs.py new file mode 100644 index 0000000000000000000000000000000000000000..2f1f5e02b77d1e1af4b8660c366a5740cc0fd440 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/hdrs.py @@ -0,0 +1,108 @@ +"""HTTP Headers constants.""" + +# After changing the file content call ./tools/gen.py +# to regenerate the headers parser +from typing import Final, Set + +from multidict import istr + +METH_ANY: Final[str] = "*" +METH_CONNECT: Final[str] = "CONNECT" +METH_HEAD: Final[str] = "HEAD" +METH_GET: Final[str] = "GET" +METH_DELETE: Final[str] = "DELETE" +METH_OPTIONS: Final[str] = "OPTIONS" +METH_PATCH: Final[str] = "PATCH" +METH_POST: Final[str] = "POST" +METH_PUT: Final[str] = "PUT" +METH_TRACE: Final[str] = "TRACE" + +METH_ALL: Final[Set[str]] = { + METH_CONNECT, + METH_HEAD, + METH_GET, + METH_DELETE, + METH_OPTIONS, + METH_PATCH, + METH_POST, + METH_PUT, + METH_TRACE, +} + +ACCEPT: Final[istr] = istr("Accept") +ACCEPT_CHARSET: Final[istr] = istr("Accept-Charset") +ACCEPT_ENCODING: Final[istr] = istr("Accept-Encoding") +ACCEPT_LANGUAGE: Final[istr] = istr("Accept-Language") +ACCEPT_RANGES: Final[istr] = istr("Accept-Ranges") +ACCESS_CONTROL_MAX_AGE: Final[istr] = istr("Access-Control-Max-Age") +ACCESS_CONTROL_ALLOW_CREDENTIALS: Final[istr] = istr("Access-Control-Allow-Credentials") +ACCESS_CONTROL_ALLOW_HEADERS: Final[istr] = istr("Access-Control-Allow-Headers") +ACCESS_CONTROL_ALLOW_METHODS: Final[istr] = istr("Access-Control-Allow-Methods") +ACCESS_CONTROL_ALLOW_ORIGIN: Final[istr] = istr("Access-Control-Allow-Origin") +ACCESS_CONTROL_EXPOSE_HEADERS: Final[istr] = istr("Access-Control-Expose-Headers") +ACCESS_CONTROL_REQUEST_HEADERS: Final[istr] = istr("Access-Control-Request-Headers") +ACCESS_CONTROL_REQUEST_METHOD: Final[istr] = istr("Access-Control-Request-Method") +AGE: Final[istr] = istr("Age") +ALLOW: Final[istr] = istr("Allow") +AUTHORIZATION: Final[istr] = istr("Authorization") +CACHE_CONTROL: Final[istr] = istr("Cache-Control") +CONNECTION: Final[istr] = istr("Connection") +CONTENT_DISPOSITION: Final[istr] = istr("Content-Disposition") +CONTENT_ENCODING: Final[istr] = istr("Content-Encoding") +CONTENT_LANGUAGE: Final[istr] = istr("Content-Language") +CONTENT_LENGTH: Final[istr] = istr("Content-Length") +CONTENT_LOCATION: Final[istr] = istr("Content-Location") +CONTENT_MD5: Final[istr] = istr("Content-MD5") +CONTENT_RANGE: Final[istr] = istr("Content-Range") +CONTENT_TRANSFER_ENCODING: Final[istr] = istr("Content-Transfer-Encoding") +CONTENT_TYPE: Final[istr] = istr("Content-Type") +COOKIE: Final[istr] = istr("Cookie") +DATE: Final[istr] = istr("Date") +DESTINATION: Final[istr] = istr("Destination") +DIGEST: Final[istr] = istr("Digest") +ETAG: Final[istr] = istr("Etag") +EXPECT: Final[istr] = istr("Expect") +EXPIRES: Final[istr] = istr("Expires") +FORWARDED: Final[istr] = istr("Forwarded") +FROM: Final[istr] = istr("From") +HOST: Final[istr] = istr("Host") +IF_MATCH: Final[istr] = istr("If-Match") +IF_MODIFIED_SINCE: Final[istr] = istr("If-Modified-Since") +IF_NONE_MATCH: Final[istr] = istr("If-None-Match") +IF_RANGE: Final[istr] = istr("If-Range") +IF_UNMODIFIED_SINCE: Final[istr] = istr("If-Unmodified-Since") +KEEP_ALIVE: Final[istr] = istr("Keep-Alive") +LAST_EVENT_ID: Final[istr] = istr("Last-Event-ID") +LAST_MODIFIED: Final[istr] = istr("Last-Modified") +LINK: Final[istr] = istr("Link") +LOCATION: Final[istr] = istr("Location") +MAX_FORWARDS: Final[istr] = istr("Max-Forwards") +ORIGIN: Final[istr] = istr("Origin") +PRAGMA: Final[istr] = istr("Pragma") +PROXY_AUTHENTICATE: Final[istr] = istr("Proxy-Authenticate") +PROXY_AUTHORIZATION: Final[istr] = istr("Proxy-Authorization") +RANGE: Final[istr] = istr("Range") +REFERER: Final[istr] = istr("Referer") +RETRY_AFTER: Final[istr] = istr("Retry-After") +SEC_WEBSOCKET_ACCEPT: Final[istr] = istr("Sec-WebSocket-Accept") +SEC_WEBSOCKET_VERSION: Final[istr] = istr("Sec-WebSocket-Version") +SEC_WEBSOCKET_PROTOCOL: Final[istr] = istr("Sec-WebSocket-Protocol") +SEC_WEBSOCKET_EXTENSIONS: Final[istr] = istr("Sec-WebSocket-Extensions") +SEC_WEBSOCKET_KEY: Final[istr] = istr("Sec-WebSocket-Key") +SEC_WEBSOCKET_KEY1: Final[istr] = istr("Sec-WebSocket-Key1") +SERVER: Final[istr] = istr("Server") +SET_COOKIE: Final[istr] = istr("Set-Cookie") +TE: Final[istr] = istr("TE") +TRAILER: Final[istr] = istr("Trailer") +TRANSFER_ENCODING: Final[istr] = istr("Transfer-Encoding") +UPGRADE: Final[istr] = istr("Upgrade") +URI: Final[istr] = istr("URI") +USER_AGENT: Final[istr] = istr("User-Agent") +VARY: Final[istr] = istr("Vary") +VIA: Final[istr] = istr("Via") +WANT_DIGEST: Final[istr] = istr("Want-Digest") +WARNING: Final[istr] = istr("Warning") +WWW_AUTHENTICATE: Final[istr] = istr("WWW-Authenticate") +X_FORWARDED_FOR: Final[istr] = istr("X-Forwarded-For") +X_FORWARDED_HOST: Final[istr] = istr("X-Forwarded-Host") +X_FORWARDED_PROTO: Final[istr] = istr("X-Forwarded-Proto") diff --git a/gtm/lib/python3.12/site-packages/aiohttp/helpers.py b/gtm/lib/python3.12/site-packages/aiohttp/helpers.py new file mode 100644 index 0000000000000000000000000000000000000000..a5c762ed7957cb32056e6992aab509c4922eb3ec --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/helpers.py @@ -0,0 +1,999 @@ +"""Various helper functions""" + +import asyncio +import base64 +import binascii +import contextlib +import datetime +import enum +import functools +import inspect +import netrc +import os +import platform +import re +import sys +import time +import warnings +import weakref +from collections import namedtuple +from contextlib import suppress +from email.parser import HeaderParser +from email.utils import parsedate +from math import ceil +from pathlib import Path +from types import TracebackType +from typing import ( + Any, + Callable, + ContextManager, + Dict, + Generator, + Generic, + Iterable, + Iterator, + List, + Mapping, + Optional, + Pattern, + Protocol, + Tuple, + Type, + TypeVar, + Union, + get_args, + overload, +) +from urllib.parse import quote +from urllib.request import getproxies, proxy_bypass + +import attr +from multidict import MultiDict, MultiDictProxy, MultiMapping +from yarl import URL + +from . import hdrs +from .log import client_logger, internal_logger + +if sys.version_info >= (3, 11): + import asyncio as async_timeout +else: + import async_timeout + +__all__ = ("BasicAuth", "ChainMapProxy", "ETag") + +IS_MACOS = platform.system() == "Darwin" +IS_WINDOWS = platform.system() == "Windows" + +PY_310 = sys.version_info >= (3, 10) +PY_311 = sys.version_info >= (3, 11) + + +_T = TypeVar("_T") +_S = TypeVar("_S") + +_SENTINEL = enum.Enum("_SENTINEL", "sentinel") +sentinel = _SENTINEL.sentinel + +NO_EXTENSIONS = bool(os.environ.get("AIOHTTP_NO_EXTENSIONS")) + +DEBUG = sys.flags.dev_mode or ( + not sys.flags.ignore_environment and bool(os.environ.get("PYTHONASYNCIODEBUG")) +) + + +CHAR = {chr(i) for i in range(0, 128)} +CTL = {chr(i) for i in range(0, 32)} | { + chr(127), +} +SEPARATORS = { + "(", + ")", + "<", + ">", + "@", + ",", + ";", + ":", + "\\", + '"', + "/", + "[", + "]", + "?", + "=", + "{", + "}", + " ", + chr(9), +} +TOKEN = CHAR ^ CTL ^ SEPARATORS + + +class noop: + def __await__(self) -> Generator[None, None, None]: + yield + + +class BasicAuth(namedtuple("BasicAuth", ["login", "password", "encoding"])): + """Http basic authentication helper.""" + + def __new__( + cls, login: str, password: str = "", encoding: str = "latin1" + ) -> "BasicAuth": + if login is None: + raise ValueError("None is not allowed as login value") + + if password is None: + raise ValueError("None is not allowed as password value") + + if ":" in login: + raise ValueError('A ":" is not allowed in login (RFC 1945#section-11.1)') + + return super().__new__(cls, login, password, encoding) + + @classmethod + def decode(cls, auth_header: str, encoding: str = "latin1") -> "BasicAuth": + """Create a BasicAuth object from an Authorization HTTP header.""" + try: + auth_type, encoded_credentials = auth_header.split(" ", 1) + except ValueError: + raise ValueError("Could not parse authorization header.") + + if auth_type.lower() != "basic": + raise ValueError("Unknown authorization method %s" % auth_type) + + try: + decoded = base64.b64decode( + encoded_credentials.encode("ascii"), validate=True + ).decode(encoding) + except binascii.Error: + raise ValueError("Invalid base64 encoding.") + + try: + # RFC 2617 HTTP Authentication + # https://www.ietf.org/rfc/rfc2617.txt + # the colon must be present, but the username and password may be + # otherwise blank. + username, password = decoded.split(":", 1) + except ValueError: + raise ValueError("Invalid credentials.") + + return cls(username, password, encoding=encoding) + + @classmethod + def from_url(cls, url: URL, *, encoding: str = "latin1") -> Optional["BasicAuth"]: + """Create BasicAuth from url.""" + if not isinstance(url, URL): + raise TypeError("url should be yarl.URL instance") + if url.user is None: + return None + return cls(url.user, url.password or "", encoding=encoding) + + def encode(self) -> str: + """Encode credentials.""" + creds = (f"{self.login}:{self.password}").encode(self.encoding) + return "Basic %s" % base64.b64encode(creds).decode(self.encoding) + + +def strip_auth_from_url(url: URL) -> Tuple[URL, Optional[BasicAuth]]: + auth = BasicAuth.from_url(url) + if auth is None: + return url, None + else: + return url.with_user(None), auth + + +def netrc_from_env() -> Optional[netrc.netrc]: + """Load netrc from file. + + Attempt to load it from the path specified by the env-var + NETRC or in the default location in the user's home directory. + + Returns None if it couldn't be found or fails to parse. + """ + netrc_env = os.environ.get("NETRC") + + if netrc_env is not None: + netrc_path = Path(netrc_env) + else: + try: + home_dir = Path.home() + except RuntimeError as e: # pragma: no cover + # if pathlib can't resolve home, it may raise a RuntimeError + client_logger.debug( + "Could not resolve home directory when " + "trying to look for .netrc file: %s", + e, + ) + return None + + netrc_path = home_dir / ("_netrc" if IS_WINDOWS else ".netrc") + + try: + return netrc.netrc(str(netrc_path)) + except netrc.NetrcParseError as e: + client_logger.warning("Could not parse .netrc file: %s", e) + except OSError as e: + netrc_exists = False + with contextlib.suppress(OSError): + netrc_exists = netrc_path.is_file() + # we couldn't read the file (doesn't exist, permissions, etc.) + if netrc_env or netrc_exists: + # only warn if the environment wanted us to load it, + # or it appears like the default file does actually exist + client_logger.warning("Could not read .netrc file: %s", e) + + return None + + +@attr.s(auto_attribs=True, frozen=True, slots=True) +class ProxyInfo: + proxy: URL + proxy_auth: Optional[BasicAuth] + + +def basicauth_from_netrc(netrc_obj: Optional[netrc.netrc], host: str) -> BasicAuth: + """ + Return :py:class:`~aiohttp.BasicAuth` credentials for ``host`` from ``netrc_obj``. + + :raises LookupError: if ``netrc_obj`` is :py:data:`None` or if no + entry is found for the ``host``. + """ + if netrc_obj is None: + raise LookupError("No .netrc file found") + auth_from_netrc = netrc_obj.authenticators(host) + + if auth_from_netrc is None: + raise LookupError(f"No entry for {host!s} found in the `.netrc` file.") + login, account, password = auth_from_netrc + + # TODO(PY311): username = login or account + # Up to python 3.10, account could be None if not specified, + # and login will be empty string if not specified. From 3.11, + # login and account will be empty string if not specified. + username = login if (login or account is None) else account + + # TODO(PY311): Remove this, as password will be empty string + # if not specified + if password is None: + password = "" + + return BasicAuth(username, password) + + +def proxies_from_env() -> Dict[str, ProxyInfo]: + proxy_urls = { + k: URL(v) + for k, v in getproxies().items() + if k in ("http", "https", "ws", "wss") + } + netrc_obj = netrc_from_env() + stripped = {k: strip_auth_from_url(v) for k, v in proxy_urls.items()} + ret = {} + for proto, val in stripped.items(): + proxy, auth = val + if proxy.scheme in ("https", "wss"): + client_logger.warning( + "%s proxies %s are not supported, ignoring", proxy.scheme.upper(), proxy + ) + continue + if netrc_obj and auth is None: + if proxy.host is not None: + try: + auth = basicauth_from_netrc(netrc_obj, proxy.host) + except LookupError: + auth = None + ret[proto] = ProxyInfo(proxy, auth) + return ret + + +def current_task( + loop: Optional[asyncio.AbstractEventLoop] = None, +) -> "Optional[asyncio.Task[Any]]": + return asyncio.current_task(loop=loop) + + +def get_running_loop( + loop: Optional[asyncio.AbstractEventLoop] = None, +) -> asyncio.AbstractEventLoop: + if loop is None: + loop = asyncio.get_event_loop() + if not loop.is_running(): + warnings.warn( + "The object should be created within an async function", + DeprecationWarning, + stacklevel=3, + ) + if loop.get_debug(): + internal_logger.warning( + "The object should be created within an async function", stack_info=True + ) + return loop + + +def isasyncgenfunction(obj: Any) -> bool: + func = getattr(inspect, "isasyncgenfunction", None) + if func is not None: + return func(obj) # type: ignore[no-any-return] + else: + return False + + +def get_env_proxy_for_url(url: URL) -> Tuple[URL, Optional[BasicAuth]]: + """Get a permitted proxy for the given URL from the env.""" + if url.host is not None and proxy_bypass(url.host): + raise LookupError(f"Proxying is disallowed for `{url.host!r}`") + + proxies_in_env = proxies_from_env() + try: + proxy_info = proxies_in_env[url.scheme] + except KeyError: + raise LookupError(f"No proxies found for `{url!s}` in the env") + else: + return proxy_info.proxy, proxy_info.proxy_auth + + +@attr.s(auto_attribs=True, frozen=True, slots=True) +class MimeType: + type: str + subtype: str + suffix: str + parameters: "MultiDictProxy[str]" + + +@functools.lru_cache(maxsize=56) +def parse_mimetype(mimetype: str) -> MimeType: + """Parses a MIME type into its components. + + mimetype is a MIME type string. + + Returns a MimeType object. + + Example: + + >>> parse_mimetype('text/html; charset=utf-8') + MimeType(type='text', subtype='html', suffix='', + parameters={'charset': 'utf-8'}) + + """ + if not mimetype: + return MimeType( + type="", subtype="", suffix="", parameters=MultiDictProxy(MultiDict()) + ) + + parts = mimetype.split(";") + params: MultiDict[str] = MultiDict() + for item in parts[1:]: + if not item: + continue + key, _, value = item.partition("=") + params.add(key.lower().strip(), value.strip(' "')) + + fulltype = parts[0].strip().lower() + if fulltype == "*": + fulltype = "*/*" + + mtype, _, stype = fulltype.partition("/") + stype, _, suffix = stype.partition("+") + + return MimeType( + type=mtype, subtype=stype, suffix=suffix, parameters=MultiDictProxy(params) + ) + + +def guess_filename(obj: Any, default: Optional[str] = None) -> Optional[str]: + name = getattr(obj, "name", None) + if name and isinstance(name, str) and name[0] != "<" and name[-1] != ">": + return Path(name).name + return default + + +not_qtext_re = re.compile(r"[^\041\043-\133\135-\176]") +QCONTENT = {chr(i) for i in range(0x20, 0x7F)} | {"\t"} + + +def quoted_string(content: str) -> str: + """Return 7-bit content as quoted-string. + + Format content into a quoted-string as defined in RFC5322 for + Internet Message Format. Notice that this is not the 8-bit HTTP + format, but the 7-bit email format. Content must be in usascii or + a ValueError is raised. + """ + if not (QCONTENT > set(content)): + raise ValueError(f"bad content for quoted-string {content!r}") + return not_qtext_re.sub(lambda x: "\\" + x.group(0), content) + + +def content_disposition_header( + disptype: str, quote_fields: bool = True, _charset: str = "utf-8", **params: str +) -> str: + """Sets ``Content-Disposition`` header for MIME. + + This is the MIME payload Content-Disposition header from RFC 2183 + and RFC 7579 section 4.2, not the HTTP Content-Disposition from + RFC 6266. + + disptype is a disposition type: inline, attachment, form-data. + Should be valid extension token (see RFC 2183) + + quote_fields performs value quoting to 7-bit MIME headers + according to RFC 7578. Set to quote_fields to False if recipient + can take 8-bit file names and field values. + + _charset specifies the charset to use when quote_fields is True. + + params is a dict with disposition params. + """ + if not disptype or not (TOKEN > set(disptype)): + raise ValueError("bad content disposition type {!r}" "".format(disptype)) + + value = disptype + if params: + lparams = [] + for key, val in params.items(): + if not key or not (TOKEN > set(key)): + raise ValueError( + "bad content disposition parameter" " {!r}={!r}".format(key, val) + ) + if quote_fields: + if key.lower() == "filename": + qval = quote(val, "", encoding=_charset) + lparams.append((key, '"%s"' % qval)) + else: + try: + qval = quoted_string(val) + except ValueError: + qval = "".join( + (_charset, "''", quote(val, "", encoding=_charset)) + ) + lparams.append((key + "*", qval)) + else: + lparams.append((key, '"%s"' % qval)) + else: + qval = val.replace("\\", "\\\\").replace('"', '\\"') + lparams.append((key, '"%s"' % qval)) + sparams = "; ".join("=".join(pair) for pair in lparams) + value = "; ".join((value, sparams)) + return value + + +class _TSelf(Protocol, Generic[_T]): + _cache: Dict[str, _T] + + +class reify(Generic[_T]): + """Use as a class method decorator. + + It operates almost exactly like + the Python `@property` decorator, but it puts the result of the + method it decorates into the instance dict after the first call, + effectively replacing the function it decorates with an instance + variable. It is, in Python parlance, a data descriptor. + """ + + def __init__(self, wrapped: Callable[..., _T]) -> None: + self.wrapped = wrapped + self.__doc__ = wrapped.__doc__ + self.name = wrapped.__name__ + + def __get__(self, inst: _TSelf[_T], owner: Optional[Type[Any]] = None) -> _T: + try: + try: + return inst._cache[self.name] + except KeyError: + val = self.wrapped(inst) + inst._cache[self.name] = val + return val + except AttributeError: + if inst is None: + return self + raise + + def __set__(self, inst: _TSelf[_T], value: _T) -> None: + raise AttributeError("reified property is read-only") + + +reify_py = reify + +try: + from ._helpers import reify as reify_c + + if not NO_EXTENSIONS: + reify = reify_c # type: ignore[misc,assignment] +except ImportError: + pass + +_ipv4_pattern = ( + r"^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}" + r"(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$" +) +_ipv6_pattern = ( + r"^(?:(?:(?:[A-F0-9]{1,4}:){6}|(?=(?:[A-F0-9]{0,4}:){0,6}" + r"(?:[0-9]{1,3}\.){3}[0-9]{1,3}$)(([0-9A-F]{1,4}:){0,5}|:)" + r"((:[0-9A-F]{1,4}){1,5}:|:)|::(?:[A-F0-9]{1,4}:){5})" + r"(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}" + r"(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])|(?:[A-F0-9]{1,4}:){7}" + r"[A-F0-9]{1,4}|(?=(?:[A-F0-9]{0,4}:){0,7}[A-F0-9]{0,4}$)" + r"(([0-9A-F]{1,4}:){1,7}|:)((:[0-9A-F]{1,4}){1,7}|:)|(?:[A-F0-9]{1,4}:){7}" + r":|:(:[A-F0-9]{1,4}){7})$" +) +_ipv4_regex = re.compile(_ipv4_pattern) +_ipv6_regex = re.compile(_ipv6_pattern, flags=re.IGNORECASE) +_ipv4_regexb = re.compile(_ipv4_pattern.encode("ascii")) +_ipv6_regexb = re.compile(_ipv6_pattern.encode("ascii"), flags=re.IGNORECASE) + + +def _is_ip_address( + regex: Pattern[str], regexb: Pattern[bytes], host: Optional[Union[str, bytes]] +) -> bool: + if host is None: + return False + if isinstance(host, str): + return bool(regex.match(host)) + elif isinstance(host, (bytes, bytearray, memoryview)): + return bool(regexb.match(host)) + else: + raise TypeError(f"{host} [{type(host)}] is not a str or bytes") + + +is_ipv4_address = functools.partial(_is_ip_address, _ipv4_regex, _ipv4_regexb) +is_ipv6_address = functools.partial(_is_ip_address, _ipv6_regex, _ipv6_regexb) + + +def is_ip_address(host: Optional[Union[str, bytes, bytearray, memoryview]]) -> bool: + return is_ipv4_address(host) or is_ipv6_address(host) + + +_cached_current_datetime: Optional[int] = None +_cached_formatted_datetime = "" + + +def rfc822_formatted_time() -> str: + global _cached_current_datetime + global _cached_formatted_datetime + + now = int(time.time()) + if now != _cached_current_datetime: + # Weekday and month names for HTTP date/time formatting; + # always English! + # Tuples are constants stored in codeobject! + _weekdayname = ("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun") + _monthname = ( + "", # Dummy so we can use 1-based month numbers + "Jan", + "Feb", + "Mar", + "Apr", + "May", + "Jun", + "Jul", + "Aug", + "Sep", + "Oct", + "Nov", + "Dec", + ) + + year, month, day, hh, mm, ss, wd, *tail = time.gmtime(now) + _cached_formatted_datetime = "%s, %02d %3s %4d %02d:%02d:%02d GMT" % ( + _weekdayname[wd], + day, + _monthname[month], + year, + hh, + mm, + ss, + ) + _cached_current_datetime = now + return _cached_formatted_datetime + + +def _weakref_handle(info: "Tuple[weakref.ref[object], str]") -> None: + ref, name = info + ob = ref() + if ob is not None: + with suppress(Exception): + getattr(ob, name)() + + +def weakref_handle( + ob: object, + name: str, + timeout: float, + loop: asyncio.AbstractEventLoop, + timeout_ceil_threshold: float = 5, +) -> Optional[asyncio.TimerHandle]: + if timeout is not None and timeout > 0: + when = loop.time() + timeout + if timeout >= timeout_ceil_threshold: + when = ceil(when) + + return loop.call_at(when, _weakref_handle, (weakref.ref(ob), name)) + return None + + +def call_later( + cb: Callable[[], Any], + timeout: float, + loop: asyncio.AbstractEventLoop, + timeout_ceil_threshold: float = 5, +) -> Optional[asyncio.TimerHandle]: + if timeout is not None and timeout > 0: + when = loop.time() + timeout + if timeout > timeout_ceil_threshold: + when = ceil(when) + return loop.call_at(when, cb) + return None + + +class TimeoutHandle: + """Timeout handle""" + + def __init__( + self, + loop: asyncio.AbstractEventLoop, + timeout: Optional[float], + ceil_threshold: float = 5, + ) -> None: + self._timeout = timeout + self._loop = loop + self._ceil_threshold = ceil_threshold + self._callbacks: List[ + Tuple[Callable[..., None], Tuple[Any, ...], Dict[str, Any]] + ] = [] + + def register( + self, callback: Callable[..., None], *args: Any, **kwargs: Any + ) -> None: + self._callbacks.append((callback, args, kwargs)) + + def close(self) -> None: + self._callbacks.clear() + + def start(self) -> Optional[asyncio.Handle]: + timeout = self._timeout + if timeout is not None and timeout > 0: + when = self._loop.time() + timeout + if timeout >= self._ceil_threshold: + when = ceil(when) + return self._loop.call_at(when, self.__call__) + else: + return None + + def timer(self) -> "BaseTimerContext": + if self._timeout is not None and self._timeout > 0: + timer = TimerContext(self._loop) + self.register(timer.timeout) + return timer + else: + return TimerNoop() + + def __call__(self) -> None: + for cb, args, kwargs in self._callbacks: + with suppress(Exception): + cb(*args, **kwargs) + + self._callbacks.clear() + + +class BaseTimerContext(ContextManager["BaseTimerContext"]): + def assert_timeout(self) -> None: + """Raise TimeoutError if timeout has been exceeded.""" + + +class TimerNoop(BaseTimerContext): + def __enter__(self) -> BaseTimerContext: + return self + + def __exit__( + self, + exc_type: Optional[Type[BaseException]], + exc_val: Optional[BaseException], + exc_tb: Optional[TracebackType], + ) -> None: + return + + +class TimerContext(BaseTimerContext): + """Low resolution timeout context manager""" + + def __init__(self, loop: asyncio.AbstractEventLoop) -> None: + self._loop = loop + self._tasks: List[asyncio.Task[Any]] = [] + self._cancelled = False + + def assert_timeout(self) -> None: + """Raise TimeoutError if timer has already been cancelled.""" + if self._cancelled: + raise asyncio.TimeoutError from None + + def __enter__(self) -> BaseTimerContext: + task = current_task(loop=self._loop) + + if task is None: + raise RuntimeError( + "Timeout context manager should be used " "inside a task" + ) + + if self._cancelled: + raise asyncio.TimeoutError from None + + self._tasks.append(task) + return self + + def __exit__( + self, + exc_type: Optional[Type[BaseException]], + exc_val: Optional[BaseException], + exc_tb: Optional[TracebackType], + ) -> Optional[bool]: + if self._tasks: + self._tasks.pop() + + if exc_type is asyncio.CancelledError and self._cancelled: + raise asyncio.TimeoutError from None + return None + + def timeout(self) -> None: + if not self._cancelled: + for task in set(self._tasks): + task.cancel() + + self._cancelled = True + + +def ceil_timeout( + delay: Optional[float], ceil_threshold: float = 5 +) -> async_timeout.Timeout: + if delay is None or delay <= 0: + return async_timeout.timeout(None) + + loop = get_running_loop() + now = loop.time() + when = now + delay + if delay > ceil_threshold: + when = ceil(when) + return async_timeout.timeout_at(when) + + +class HeadersMixin: + ATTRS = frozenset(["_content_type", "_content_dict", "_stored_content_type"]) + + _headers: MultiMapping[str] + + _content_type: Optional[str] = None + _content_dict: Optional[Dict[str, str]] = None + _stored_content_type: Union[str, None, _SENTINEL] = sentinel + + def _parse_content_type(self, raw: Optional[str]) -> None: + self._stored_content_type = raw + if raw is None: + # default value according to RFC 2616 + self._content_type = "application/octet-stream" + self._content_dict = {} + else: + msg = HeaderParser().parsestr("Content-Type: " + raw) + self._content_type = msg.get_content_type() + params = msg.get_params(()) + self._content_dict = dict(params[1:]) # First element is content type again + + @property + def content_type(self) -> str: + """The value of content part for Content-Type HTTP header.""" + raw = self._headers.get(hdrs.CONTENT_TYPE) + if self._stored_content_type != raw: + self._parse_content_type(raw) + return self._content_type # type: ignore[return-value] + + @property + def charset(self) -> Optional[str]: + """The value of charset part for Content-Type HTTP header.""" + raw = self._headers.get(hdrs.CONTENT_TYPE) + if self._stored_content_type != raw: + self._parse_content_type(raw) + return self._content_dict.get("charset") # type: ignore[union-attr] + + @property + def content_length(self) -> Optional[int]: + """The value of Content-Length HTTP header.""" + content_length = self._headers.get(hdrs.CONTENT_LENGTH) + + if content_length is not None: + return int(content_length) + else: + return None + + +def set_result(fut: "asyncio.Future[_T]", result: _T) -> None: + if not fut.done(): + fut.set_result(result) + + +def set_exception(fut: "asyncio.Future[_T]", exc: BaseException) -> None: + if not fut.done(): + fut.set_exception(exc) + + +@functools.total_ordering +class AppKey(Generic[_T]): + """Keys for static typing support in Application.""" + + __slots__ = ("_name", "_t", "__orig_class__") + + # This may be set by Python when instantiating with a generic type. We need to + # support this, in order to support types that are not concrete classes, + # like Iterable, which can't be passed as the second parameter to __init__. + __orig_class__: Type[object] + + def __init__(self, name: str, t: Optional[Type[_T]] = None): + # Prefix with module name to help deduplicate key names. + frame = inspect.currentframe() + while frame: + if frame.f_code.co_name == "": + module: str = frame.f_globals["__name__"] + break + frame = frame.f_back + + self._name = module + "." + name + self._t = t + + def __lt__(self, other: object) -> bool: + if isinstance(other, AppKey): + return self._name < other._name + return True # Order AppKey above other types. + + def __repr__(self) -> str: + t = self._t + if t is None: + with suppress(AttributeError): + # Set to type arg. + t = get_args(self.__orig_class__)[0] + + if t is None: + t_repr = "<>" + elif isinstance(t, type): + if t.__module__ == "builtins": + t_repr = t.__qualname__ + else: + t_repr = f"{t.__module__}.{t.__qualname__}" + else: + t_repr = repr(t) + return f"" + + +class ChainMapProxy(Mapping[Union[str, AppKey[Any]], Any]): + __slots__ = ("_maps",) + + def __init__(self, maps: Iterable[Mapping[Union[str, AppKey[Any]], Any]]) -> None: + self._maps = tuple(maps) + + def __init_subclass__(cls) -> None: + raise TypeError( + "Inheritance class {} from ChainMapProxy " + "is forbidden".format(cls.__name__) + ) + + @overload # type: ignore[override] + def __getitem__(self, key: AppKey[_T]) -> _T: + ... + + @overload + def __getitem__(self, key: str) -> Any: + ... + + def __getitem__(self, key: Union[str, AppKey[_T]]) -> Any: + for mapping in self._maps: + try: + return mapping[key] + except KeyError: + pass + raise KeyError(key) + + @overload # type: ignore[override] + def get(self, key: AppKey[_T], default: _S) -> Union[_T, _S]: + ... + + @overload + def get(self, key: AppKey[_T], default: None = ...) -> Optional[_T]: + ... + + @overload + def get(self, key: str, default: Any = ...) -> Any: + ... + + def get(self, key: Union[str, AppKey[_T]], default: Any = None) -> Any: + try: + return self[key] + except KeyError: + return default + + def __len__(self) -> int: + # reuses stored hash values if possible + return len(set().union(*self._maps)) + + def __iter__(self) -> Iterator[Union[str, AppKey[Any]]]: + d: Dict[Union[str, AppKey[Any]], Any] = {} + for mapping in reversed(self._maps): + # reuses stored hash values if possible + d.update(mapping) + return iter(d) + + def __contains__(self, key: object) -> bool: + return any(key in m for m in self._maps) + + def __bool__(self) -> bool: + return any(self._maps) + + def __repr__(self) -> str: + content = ", ".join(map(repr, self._maps)) + return f"ChainMapProxy({content})" + + +# https://tools.ietf.org/html/rfc7232#section-2.3 +_ETAGC = r"[!\x23-\x7E\x80-\xff]+" +_ETAGC_RE = re.compile(_ETAGC) +_QUOTED_ETAG = rf'(W/)?"({_ETAGC})"' +QUOTED_ETAG_RE = re.compile(_QUOTED_ETAG) +LIST_QUOTED_ETAG_RE = re.compile(rf"({_QUOTED_ETAG})(?:\s*,\s*|$)|(.)") + +ETAG_ANY = "*" + + +@attr.s(auto_attribs=True, frozen=True, slots=True) +class ETag: + value: str + is_weak: bool = False + + +def validate_etag_value(value: str) -> None: + if value != ETAG_ANY and not _ETAGC_RE.fullmatch(value): + raise ValueError( + f"Value {value!r} is not a valid etag. Maybe it contains '\"'?" + ) + + +def parse_http_date(date_str: Optional[str]) -> Optional[datetime.datetime]: + """Process a date string, return a datetime object""" + if date_str is not None: + timetuple = parsedate(date_str) + if timetuple is not None: + with suppress(ValueError): + return datetime.datetime(*timetuple[:6], tzinfo=datetime.timezone.utc) + return None + + +def must_be_empty_body(method: str, code: int) -> bool: + """Check if a request must return an empty body.""" + return ( + status_code_must_be_empty_body(code) + or method_must_be_empty_body(method) + or (200 <= code < 300 and method.upper() == hdrs.METH_CONNECT) + ) + + +def method_must_be_empty_body(method: str) -> bool: + """Check if a method must return an empty body.""" + # https://datatracker.ietf.org/doc/html/rfc9112#section-6.3-2.1 + # https://datatracker.ietf.org/doc/html/rfc9112#section-6.3-2.2 + return method.upper() == hdrs.METH_HEAD + + +def status_code_must_be_empty_body(code: int) -> bool: + """Check if a status code must return an empty body.""" + # https://datatracker.ietf.org/doc/html/rfc9112#section-6.3-2.1 + return code in {204, 304} or 100 <= code < 200 + + +def should_remove_content_length(method: str, code: int) -> bool: + """Check if a Content-Length header should be removed. + + This should always be a subset of must_be_empty_body + """ + # https://www.rfc-editor.org/rfc/rfc9110.html#section-8.6-8 + # https://www.rfc-editor.org/rfc/rfc9110.html#section-15.4.5-4 + return ( + code in {204, 304} + or 100 <= code < 200 + or (200 <= code < 300 and method.upper() == hdrs.METH_CONNECT) + ) diff --git a/gtm/lib/python3.12/site-packages/aiohttp/http.py b/gtm/lib/python3.12/site-packages/aiohttp/http.py new file mode 100644 index 0000000000000000000000000000000000000000..a1feae2d9b8fe631d539a15dbf8e5ea2914d70d5 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/http.py @@ -0,0 +1,72 @@ +import sys +from http import HTTPStatus +from typing import Mapping, Tuple + +from . import __version__ +from .http_exceptions import HttpProcessingError as HttpProcessingError +from .http_parser import ( + HeadersParser as HeadersParser, + HttpParser as HttpParser, + HttpRequestParser as HttpRequestParser, + HttpResponseParser as HttpResponseParser, + RawRequestMessage as RawRequestMessage, + RawResponseMessage as RawResponseMessage, +) +from .http_websocket import ( + WS_CLOSED_MESSAGE as WS_CLOSED_MESSAGE, + WS_CLOSING_MESSAGE as WS_CLOSING_MESSAGE, + WS_KEY as WS_KEY, + WebSocketError as WebSocketError, + WebSocketReader as WebSocketReader, + WebSocketWriter as WebSocketWriter, + WSCloseCode as WSCloseCode, + WSMessage as WSMessage, + WSMsgType as WSMsgType, + ws_ext_gen as ws_ext_gen, + ws_ext_parse as ws_ext_parse, +) +from .http_writer import ( + HttpVersion as HttpVersion, + HttpVersion10 as HttpVersion10, + HttpVersion11 as HttpVersion11, + StreamWriter as StreamWriter, +) + +__all__ = ( + "HttpProcessingError", + "RESPONSES", + "SERVER_SOFTWARE", + # .http_writer + "StreamWriter", + "HttpVersion", + "HttpVersion10", + "HttpVersion11", + # .http_parser + "HeadersParser", + "HttpParser", + "HttpRequestParser", + "HttpResponseParser", + "RawRequestMessage", + "RawResponseMessage", + # .http_websocket + "WS_CLOSED_MESSAGE", + "WS_CLOSING_MESSAGE", + "WS_KEY", + "WebSocketReader", + "WebSocketWriter", + "ws_ext_gen", + "ws_ext_parse", + "WSMessage", + "WebSocketError", + "WSMsgType", + "WSCloseCode", +) + + +SERVER_SOFTWARE: str = "Python/{0[0]}.{0[1]} aiohttp/{1}".format( + sys.version_info, __version__ +) + +RESPONSES: Mapping[int, Tuple[str, str]] = { + v: (v.phrase, v.description) for v in HTTPStatus.__members__.values() +} diff --git a/gtm/lib/python3.12/site-packages/aiohttp/http_exceptions.py b/gtm/lib/python3.12/site-packages/aiohttp/http_exceptions.py new file mode 100644 index 0000000000000000000000000000000000000000..72eac3a3cac41385c3b1435124ecbc68aba0fec6 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/http_exceptions.py @@ -0,0 +1,106 @@ +"""Low-level http related exceptions.""" + + +from textwrap import indent +from typing import Optional, Union + +from .typedefs import _CIMultiDict + +__all__ = ("HttpProcessingError",) + + +class HttpProcessingError(Exception): + """HTTP error. + + Shortcut for raising HTTP errors with custom code, message and headers. + + code: HTTP Error code. + message: (optional) Error message. + headers: (optional) Headers to be sent in response, a list of pairs + """ + + code = 0 + message = "" + headers = None + + def __init__( + self, + *, + code: Optional[int] = None, + message: str = "", + headers: Optional[_CIMultiDict] = None, + ) -> None: + if code is not None: + self.code = code + self.headers = headers + self.message = message + + def __str__(self) -> str: + msg = indent(self.message, " ") + return f"{self.code}, message:\n{msg}" + + def __repr__(self) -> str: + return f"<{self.__class__.__name__}: {self.code}, message={self.message!r}>" + + +class BadHttpMessage(HttpProcessingError): + + code = 400 + message = "Bad Request" + + def __init__(self, message: str, *, headers: Optional[_CIMultiDict] = None) -> None: + super().__init__(message=message, headers=headers) + self.args = (message,) + + +class HttpBadRequest(BadHttpMessage): + + code = 400 + message = "Bad Request" + + +class PayloadEncodingError(BadHttpMessage): + """Base class for payload errors""" + + +class ContentEncodingError(PayloadEncodingError): + """Content encoding error.""" + + +class TransferEncodingError(PayloadEncodingError): + """transfer encoding error.""" + + +class ContentLengthError(PayloadEncodingError): + """Not enough data for satisfy content length header.""" + + +class LineTooLong(BadHttpMessage): + def __init__( + self, line: str, limit: str = "Unknown", actual_size: str = "Unknown" + ) -> None: + super().__init__( + f"Got more than {limit} bytes ({actual_size}) when reading {line}." + ) + self.args = (line, limit, actual_size) + + +class InvalidHeader(BadHttpMessage): + def __init__(self, hdr: Union[bytes, str]) -> None: + hdr_s = hdr.decode(errors="backslashreplace") if isinstance(hdr, bytes) else hdr + super().__init__(f"Invalid HTTP header: {hdr!r}") + self.hdr = hdr_s + self.args = (hdr,) + + +class BadStatusLine(BadHttpMessage): + def __init__(self, line: str = "", error: Optional[str] = None) -> None: + if not isinstance(line, str): + line = repr(line) + super().__init__(error or f"Bad status line {line!r}") + self.args = (line,) + self.line = line + + +class InvalidURLError(BadHttpMessage): + pass diff --git a/gtm/lib/python3.12/site-packages/aiohttp/http_parser.py b/gtm/lib/python3.12/site-packages/aiohttp/http_parser.py new file mode 100644 index 0000000000000000000000000000000000000000..1877f558308ec41d01f882f1ac12ddf35c7c7688 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/http_parser.py @@ -0,0 +1,1013 @@ +import abc +import asyncio +import re +import string +from contextlib import suppress +from enum import IntEnum +from typing import ( + Any, + ClassVar, + Final, + Generic, + List, + Literal, + NamedTuple, + Optional, + Pattern, + Set, + Tuple, + Type, + TypeVar, + Union, +) + +from multidict import CIMultiDict, CIMultiDictProxy, istr +from yarl import URL + +from . import hdrs +from .base_protocol import BaseProtocol +from .compression_utils import HAS_BROTLI, BrotliDecompressor, ZLibDecompressor +from .helpers import ( + DEBUG, + NO_EXTENSIONS, + BaseTimerContext, + method_must_be_empty_body, + status_code_must_be_empty_body, +) +from .http_exceptions import ( + BadHttpMessage, + BadStatusLine, + ContentEncodingError, + ContentLengthError, + InvalidHeader, + InvalidURLError, + LineTooLong, + TransferEncodingError, +) +from .http_writer import HttpVersion, HttpVersion10 +from .log import internal_logger +from .streams import EMPTY_PAYLOAD, StreamReader +from .typedefs import RawHeaders + +__all__ = ( + "HeadersParser", + "HttpParser", + "HttpRequestParser", + "HttpResponseParser", + "RawRequestMessage", + "RawResponseMessage", +) + +_SEP = Literal[b"\r\n", b"\n"] + +ASCIISET: Final[Set[str]] = set(string.printable) + +# See https://www.rfc-editor.org/rfc/rfc9110.html#name-overview +# and https://www.rfc-editor.org/rfc/rfc9110.html#name-tokens +# +# method = token +# tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" / "+" / "-" / "." / +# "^" / "_" / "`" / "|" / "~" / DIGIT / ALPHA +# token = 1*tchar +_TCHAR_SPECIALS: Final[str] = re.escape("!#$%&'*+-.^_`|~") +TOKENRE: Final[Pattern[str]] = re.compile(f"[0-9A-Za-z{_TCHAR_SPECIALS}]+") +VERSRE: Final[Pattern[str]] = re.compile(r"HTTP/(\d)\.(\d)", re.ASCII) +DIGITS: Final[Pattern[str]] = re.compile(r"\d+", re.ASCII) +HEXDIGITS: Final[Pattern[bytes]] = re.compile(rb"[0-9a-fA-F]+") + + +class RawRequestMessage(NamedTuple): + method: str + path: str + version: HttpVersion + headers: "CIMultiDictProxy[str]" + raw_headers: RawHeaders + should_close: bool + compression: Optional[str] + upgrade: bool + chunked: bool + url: URL + + +class RawResponseMessage(NamedTuple): + version: HttpVersion + code: int + reason: str + headers: CIMultiDictProxy[str] + raw_headers: RawHeaders + should_close: bool + compression: Optional[str] + upgrade: bool + chunked: bool + + +_MsgT = TypeVar("_MsgT", RawRequestMessage, RawResponseMessage) + + +class ParseState(IntEnum): + + PARSE_NONE = 0 + PARSE_LENGTH = 1 + PARSE_CHUNKED = 2 + PARSE_UNTIL_EOF = 3 + + +class ChunkState(IntEnum): + PARSE_CHUNKED_SIZE = 0 + PARSE_CHUNKED_CHUNK = 1 + PARSE_CHUNKED_CHUNK_EOF = 2 + PARSE_MAYBE_TRAILERS = 3 + PARSE_TRAILERS = 4 + + +class HeadersParser: + def __init__( + self, + max_line_size: int = 8190, + max_headers: int = 32768, + max_field_size: int = 8190, + ) -> None: + self.max_line_size = max_line_size + self.max_headers = max_headers + self.max_field_size = max_field_size + + def parse_headers( + self, lines: List[bytes] + ) -> Tuple["CIMultiDictProxy[str]", RawHeaders]: + headers: CIMultiDict[str] = CIMultiDict() + # note: "raw" does not mean inclusion of OWS before/after the field value + raw_headers = [] + + lines_idx = 1 + line = lines[1] + line_count = len(lines) + + while line: + # Parse initial header name : value pair. + try: + bname, bvalue = line.split(b":", 1) + except ValueError: + raise InvalidHeader(line) from None + + if len(bname) == 0: + raise InvalidHeader(bname) + + # https://www.rfc-editor.org/rfc/rfc9112.html#section-5.1-2 + if {bname[0], bname[-1]} & {32, 9}: # {" ", "\t"} + raise InvalidHeader(line) + + bvalue = bvalue.lstrip(b" \t") + if len(bname) > self.max_field_size: + raise LineTooLong( + "request header name {}".format( + bname.decode("utf8", "backslashreplace") + ), + str(self.max_field_size), + str(len(bname)), + ) + name = bname.decode("utf-8", "surrogateescape") + if not TOKENRE.fullmatch(name): + raise InvalidHeader(bname) + + header_length = len(bvalue) + + # next line + lines_idx += 1 + line = lines[lines_idx] + + # consume continuation lines + continuation = line and line[0] in (32, 9) # (' ', '\t') + + # Deprecated: https://www.rfc-editor.org/rfc/rfc9112.html#name-obsolete-line-folding + if continuation: + bvalue_lst = [bvalue] + while continuation: + header_length += len(line) + if header_length > self.max_field_size: + raise LineTooLong( + "request header field {}".format( + bname.decode("utf8", "backslashreplace") + ), + str(self.max_field_size), + str(header_length), + ) + bvalue_lst.append(line) + + # next line + lines_idx += 1 + if lines_idx < line_count: + line = lines[lines_idx] + if line: + continuation = line[0] in (32, 9) # (' ', '\t') + else: + line = b"" + break + bvalue = b"".join(bvalue_lst) + else: + if header_length > self.max_field_size: + raise LineTooLong( + "request header field {}".format( + bname.decode("utf8", "backslashreplace") + ), + str(self.max_field_size), + str(header_length), + ) + + bvalue = bvalue.strip(b" \t") + value = bvalue.decode("utf-8", "surrogateescape") + + # https://www.rfc-editor.org/rfc/rfc9110.html#section-5.5-5 + if "\n" in value or "\r" in value or "\x00" in value: + raise InvalidHeader(bvalue) + + headers.add(name, value) + raw_headers.append((bname, bvalue)) + + return (CIMultiDictProxy(headers), tuple(raw_headers)) + + +class HttpParser(abc.ABC, Generic[_MsgT]): + lax: ClassVar[bool] = False + + def __init__( + self, + protocol: Optional[BaseProtocol] = None, + loop: Optional[asyncio.AbstractEventLoop] = None, + limit: int = 2**16, + max_line_size: int = 8190, + max_headers: int = 32768, + max_field_size: int = 8190, + timer: Optional[BaseTimerContext] = None, + code: Optional[int] = None, + method: Optional[str] = None, + readall: bool = False, + payload_exception: Optional[Type[BaseException]] = None, + response_with_body: bool = True, + read_until_eof: bool = False, + auto_decompress: bool = True, + ) -> None: + self.protocol = protocol + self.loop = loop + self.max_line_size = max_line_size + self.max_headers = max_headers + self.max_field_size = max_field_size + self.timer = timer + self.code = code + self.method = method + self.readall = readall + self.payload_exception = payload_exception + self.response_with_body = response_with_body + self.read_until_eof = read_until_eof + + self._lines: List[bytes] = [] + self._tail = b"" + self._upgraded = False + self._payload = None + self._payload_parser: Optional[HttpPayloadParser] = None + self._auto_decompress = auto_decompress + self._limit = limit + self._headers_parser = HeadersParser(max_line_size, max_headers, max_field_size) + + @abc.abstractmethod + def parse_message(self, lines: List[bytes]) -> _MsgT: + pass + + def feed_eof(self) -> Optional[_MsgT]: + if self._payload_parser is not None: + self._payload_parser.feed_eof() + self._payload_parser = None + else: + # try to extract partial message + if self._tail: + self._lines.append(self._tail) + + if self._lines: + if self._lines[-1] != "\r\n": + self._lines.append(b"") + with suppress(Exception): + return self.parse_message(self._lines) + return None + + def feed_data( + self, + data: bytes, + SEP: _SEP = b"\r\n", + EMPTY: bytes = b"", + CONTENT_LENGTH: istr = hdrs.CONTENT_LENGTH, + METH_CONNECT: str = hdrs.METH_CONNECT, + SEC_WEBSOCKET_KEY1: istr = hdrs.SEC_WEBSOCKET_KEY1, + ) -> Tuple[List[Tuple[_MsgT, StreamReader]], bool, bytes]: + + messages = [] + + if self._tail: + data, self._tail = self._tail + data, b"" + + data_len = len(data) + start_pos = 0 + loop = self.loop + + while start_pos < data_len: + + # read HTTP message (request/response line + headers), \r\n\r\n + # and split by lines + if self._payload_parser is None and not self._upgraded: + pos = data.find(SEP, start_pos) + # consume \r\n + if pos == start_pos and not self._lines: + start_pos = pos + len(SEP) + continue + + if pos >= start_pos: + # line found + line = data[start_pos:pos] + if SEP == b"\n": # For lax response parsing + line = line.rstrip(b"\r") + self._lines.append(line) + start_pos = pos + len(SEP) + + # \r\n\r\n found + if self._lines[-1] == EMPTY: + try: + msg: _MsgT = self.parse_message(self._lines) + finally: + self._lines.clear() + + def get_content_length() -> Optional[int]: + # payload length + length_hdr = msg.headers.get(CONTENT_LENGTH) + if length_hdr is None: + return None + + # Shouldn't allow +/- or other number formats. + # https://www.rfc-editor.org/rfc/rfc9110#section-8.6-2 + # msg.headers is already stripped of leading/trailing wsp + if not DIGITS.fullmatch(length_hdr): + raise InvalidHeader(CONTENT_LENGTH) + + return int(length_hdr) + + length = get_content_length() + # do not support old websocket spec + if SEC_WEBSOCKET_KEY1 in msg.headers: + raise InvalidHeader(SEC_WEBSOCKET_KEY1) + + self._upgraded = msg.upgrade + + method = getattr(msg, "method", self.method) + # code is only present on responses + code = getattr(msg, "code", 0) + + assert self.protocol is not None + # calculate payload + empty_body = status_code_must_be_empty_body(code) or bool( + method and method_must_be_empty_body(method) + ) + if not empty_body and ( + (length is not None and length > 0) + or msg.chunked + and not msg.upgrade + ): + payload = StreamReader( + self.protocol, + timer=self.timer, + loop=loop, + limit=self._limit, + ) + payload_parser = HttpPayloadParser( + payload, + length=length, + chunked=msg.chunked, + method=method, + compression=msg.compression, + code=self.code, + readall=self.readall, + response_with_body=self.response_with_body, + auto_decompress=self._auto_decompress, + lax=self.lax, + ) + if not payload_parser.done: + self._payload_parser = payload_parser + elif method == METH_CONNECT: + assert isinstance(msg, RawRequestMessage) + payload = StreamReader( + self.protocol, + timer=self.timer, + loop=loop, + limit=self._limit, + ) + self._upgraded = True + self._payload_parser = HttpPayloadParser( + payload, + method=msg.method, + compression=msg.compression, + readall=True, + auto_decompress=self._auto_decompress, + lax=self.lax, + ) + elif not empty_body and length is None and self.read_until_eof: + payload = StreamReader( + self.protocol, + timer=self.timer, + loop=loop, + limit=self._limit, + ) + payload_parser = HttpPayloadParser( + payload, + length=length, + chunked=msg.chunked, + method=method, + compression=msg.compression, + code=self.code, + readall=True, + response_with_body=self.response_with_body, + auto_decompress=self._auto_decompress, + lax=self.lax, + ) + if not payload_parser.done: + self._payload_parser = payload_parser + else: + payload = EMPTY_PAYLOAD + + messages.append((msg, payload)) + else: + self._tail = data[start_pos:] + data = EMPTY + break + + # no parser, just store + elif self._payload_parser is None and self._upgraded: + assert not self._lines + break + + # feed payload + elif data and start_pos < data_len: + assert not self._lines + assert self._payload_parser is not None + try: + eof, data = self._payload_parser.feed_data(data[start_pos:], SEP) + except BaseException as exc: + if self.payload_exception is not None: + self._payload_parser.payload.set_exception( + self.payload_exception(str(exc)) + ) + else: + self._payload_parser.payload.set_exception(exc) + + eof = True + data = b"" + + if eof: + start_pos = 0 + data_len = len(data) + self._payload_parser = None + continue + else: + break + + if data and start_pos < data_len: + data = data[start_pos:] + else: + data = EMPTY + + return messages, self._upgraded, data + + def parse_headers( + self, lines: List[bytes] + ) -> Tuple[ + "CIMultiDictProxy[str]", RawHeaders, Optional[bool], Optional[str], bool, bool + ]: + """Parses RFC 5322 headers from a stream. + + Line continuations are supported. Returns list of header name + and value pairs. Header name is in upper case. + """ + headers, raw_headers = self._headers_parser.parse_headers(lines) + close_conn = None + encoding = None + upgrade = False + chunked = False + + # https://www.rfc-editor.org/rfc/rfc9110.html#section-5.5-6 + # https://www.rfc-editor.org/rfc/rfc9110.html#name-collected-abnf + singletons = ( + hdrs.CONTENT_LENGTH, + hdrs.CONTENT_LOCATION, + hdrs.CONTENT_RANGE, + hdrs.CONTENT_TYPE, + hdrs.ETAG, + hdrs.HOST, + hdrs.MAX_FORWARDS, + hdrs.SERVER, + hdrs.TRANSFER_ENCODING, + hdrs.USER_AGENT, + ) + bad_hdr = next((h for h in singletons if len(headers.getall(h, ())) > 1), None) + if bad_hdr is not None: + raise BadHttpMessage(f"Duplicate '{bad_hdr}' header found.") + + # keep-alive + conn = headers.get(hdrs.CONNECTION) + if conn: + v = conn.lower() + if v == "close": + close_conn = True + elif v == "keep-alive": + close_conn = False + # https://www.rfc-editor.org/rfc/rfc9110.html#name-101-switching-protocols + elif v == "upgrade" and headers.get(hdrs.UPGRADE): + upgrade = True + + # encoding + enc = headers.get(hdrs.CONTENT_ENCODING) + if enc: + enc = enc.lower() + if enc in ("gzip", "deflate", "br"): + encoding = enc + + # chunking + te = headers.get(hdrs.TRANSFER_ENCODING) + if te is not None: + if "chunked" == te.lower(): + chunked = True + else: + raise BadHttpMessage("Request has invalid `Transfer-Encoding`") + + if hdrs.CONTENT_LENGTH in headers: + raise BadHttpMessage( + "Transfer-Encoding can't be present with Content-Length", + ) + + return (headers, raw_headers, close_conn, encoding, upgrade, chunked) + + def set_upgraded(self, val: bool) -> None: + """Set connection upgraded (to websocket) mode. + + :param bool val: new state. + """ + self._upgraded = val + + +class HttpRequestParser(HttpParser[RawRequestMessage]): + """Read request status line. + + Exception .http_exceptions.BadStatusLine + could be raised in case of any errors in status line. + Returns RawRequestMessage. + """ + + def parse_message(self, lines: List[bytes]) -> RawRequestMessage: + # request line + line = lines[0].decode("utf-8", "surrogateescape") + try: + method, path, version = line.split(" ", maxsplit=2) + except ValueError: + raise BadStatusLine(line) from None + + if len(path) > self.max_line_size: + raise LineTooLong( + "Status line is too long", str(self.max_line_size), str(len(path)) + ) + + # method + if not TOKENRE.fullmatch(method): + raise BadStatusLine(method) + + # version + match = VERSRE.fullmatch(version) + if match is None: + raise BadStatusLine(line) + version_o = HttpVersion(int(match.group(1)), int(match.group(2))) + + if method == "CONNECT": + # authority-form, + # https://datatracker.ietf.org/doc/html/rfc7230#section-5.3.3 + url = URL.build(authority=path, encoded=True) + elif path.startswith("/"): + # origin-form, + # https://datatracker.ietf.org/doc/html/rfc7230#section-5.3.1 + path_part, _hash_separator, url_fragment = path.partition("#") + path_part, _question_mark_separator, qs_part = path_part.partition("?") + + # NOTE: `yarl.URL.build()` is used to mimic what the Cython-based + # NOTE: parser does, otherwise it results into the same + # NOTE: HTTP Request-Line input producing different + # NOTE: `yarl.URL()` objects + url = URL.build( + path=path_part, + query_string=qs_part, + fragment=url_fragment, + encoded=True, + ) + elif path == "*" and method == "OPTIONS": + # asterisk-form, + url = URL(path, encoded=True) + else: + # absolute-form for proxy maybe, + # https://datatracker.ietf.org/doc/html/rfc7230#section-5.3.2 + url = URL(path, encoded=True) + if url.scheme == "": + # not absolute-form + raise InvalidURLError( + path.encode(errors="surrogateescape").decode("latin1") + ) + + # read headers + ( + headers, + raw_headers, + close, + compression, + upgrade, + chunked, + ) = self.parse_headers(lines) + + if close is None: # then the headers weren't set in the request + if version_o <= HttpVersion10: # HTTP 1.0 must asks to not close + close = True + else: # HTTP 1.1 must ask to close. + close = False + + return RawRequestMessage( + method, + path, + version_o, + headers, + raw_headers, + close, + compression, + upgrade, + chunked, + url, + ) + + +class HttpResponseParser(HttpParser[RawResponseMessage]): + """Read response status line and headers. + + BadStatusLine could be raised in case of any errors in status line. + Returns RawResponseMessage. + """ + + # Lax mode should only be enabled on response parser. + lax = not DEBUG + + def feed_data( + self, + data: bytes, + SEP: Optional[_SEP] = None, + *args: Any, + **kwargs: Any, + ) -> Tuple[List[Tuple[RawResponseMessage, StreamReader]], bool, bytes]: + if SEP is None: + SEP = b"\r\n" if DEBUG else b"\n" + return super().feed_data(data, SEP, *args, **kwargs) + + def parse_message(self, lines: List[bytes]) -> RawResponseMessage: + line = lines[0].decode("utf-8", "surrogateescape") + try: + version, status = line.split(maxsplit=1) + except ValueError: + raise BadStatusLine(line) from None + + try: + status, reason = status.split(maxsplit=1) + except ValueError: + status = status.strip() + reason = "" + + if len(reason) > self.max_line_size: + raise LineTooLong( + "Status line is too long", str(self.max_line_size), str(len(reason)) + ) + + # version + match = VERSRE.fullmatch(version) + if match is None: + raise BadStatusLine(line) + version_o = HttpVersion(int(match.group(1)), int(match.group(2))) + + # The status code is a three-digit ASCII number, no padding + if len(status) != 3 or not DIGITS.fullmatch(status): + raise BadStatusLine(line) + status_i = int(status) + + # read headers + ( + headers, + raw_headers, + close, + compression, + upgrade, + chunked, + ) = self.parse_headers(lines) + + if close is None: + close = version_o <= HttpVersion10 + + return RawResponseMessage( + version_o, + status_i, + reason.strip(), + headers, + raw_headers, + close, + compression, + upgrade, + chunked, + ) + + +class HttpPayloadParser: + def __init__( + self, + payload: StreamReader, + length: Optional[int] = None, + chunked: bool = False, + compression: Optional[str] = None, + code: Optional[int] = None, + method: Optional[str] = None, + readall: bool = False, + response_with_body: bool = True, + auto_decompress: bool = True, + lax: bool = False, + ) -> None: + self._length = 0 + self._type = ParseState.PARSE_NONE + self._chunk = ChunkState.PARSE_CHUNKED_SIZE + self._chunk_size = 0 + self._chunk_tail = b"" + self._auto_decompress = auto_decompress + self._lax = lax + self.done = False + + # payload decompression wrapper + if response_with_body and compression and self._auto_decompress: + real_payload: Union[StreamReader, DeflateBuffer] = DeflateBuffer( + payload, compression + ) + else: + real_payload = payload + + # payload parser + if not response_with_body: + # don't parse payload if it's not expected to be received + self._type = ParseState.PARSE_NONE + real_payload.feed_eof() + self.done = True + + elif chunked: + self._type = ParseState.PARSE_CHUNKED + elif length is not None: + self._type = ParseState.PARSE_LENGTH + self._length = length + if self._length == 0: + real_payload.feed_eof() + self.done = True + else: + if readall and code != 204: + self._type = ParseState.PARSE_UNTIL_EOF + elif method in ("PUT", "POST"): + internal_logger.warning( # pragma: no cover + "Content-Length or Transfer-Encoding header is required" + ) + self._type = ParseState.PARSE_NONE + real_payload.feed_eof() + self.done = True + + self.payload = real_payload + + def feed_eof(self) -> None: + if self._type == ParseState.PARSE_UNTIL_EOF: + self.payload.feed_eof() + elif self._type == ParseState.PARSE_LENGTH: + raise ContentLengthError( + "Not enough data for satisfy content length header." + ) + elif self._type == ParseState.PARSE_CHUNKED: + raise TransferEncodingError( + "Not enough data for satisfy transfer length header." + ) + + def feed_data( + self, chunk: bytes, SEP: _SEP = b"\r\n", CHUNK_EXT: bytes = b";" + ) -> Tuple[bool, bytes]: + # Read specified amount of bytes + if self._type == ParseState.PARSE_LENGTH: + required = self._length + chunk_len = len(chunk) + + if required >= chunk_len: + self._length = required - chunk_len + self.payload.feed_data(chunk, chunk_len) + if self._length == 0: + self.payload.feed_eof() + return True, b"" + else: + self._length = 0 + self.payload.feed_data(chunk[:required], required) + self.payload.feed_eof() + return True, chunk[required:] + + # Chunked transfer encoding parser + elif self._type == ParseState.PARSE_CHUNKED: + if self._chunk_tail: + chunk = self._chunk_tail + chunk + self._chunk_tail = b"" + + while chunk: + + # read next chunk size + if self._chunk == ChunkState.PARSE_CHUNKED_SIZE: + pos = chunk.find(SEP) + if pos >= 0: + i = chunk.find(CHUNK_EXT, 0, pos) + if i >= 0: + size_b = chunk[:i] # strip chunk-extensions + else: + size_b = chunk[:pos] + + if self._lax: # Allow whitespace in lax mode. + size_b = size_b.strip() + + if not re.fullmatch(HEXDIGITS, size_b): + exc = TransferEncodingError( + chunk[:pos].decode("ascii", "surrogateescape") + ) + self.payload.set_exception(exc) + raise exc + size = int(bytes(size_b), 16) + + chunk = chunk[pos + len(SEP) :] + if size == 0: # eof marker + self._chunk = ChunkState.PARSE_MAYBE_TRAILERS + if self._lax and chunk.startswith(b"\r"): + chunk = chunk[1:] + else: + self._chunk = ChunkState.PARSE_CHUNKED_CHUNK + self._chunk_size = size + self.payload.begin_http_chunk_receiving() + else: + self._chunk_tail = chunk + return False, b"" + + # read chunk and feed buffer + if self._chunk == ChunkState.PARSE_CHUNKED_CHUNK: + required = self._chunk_size + chunk_len = len(chunk) + + if required > chunk_len: + self._chunk_size = required - chunk_len + self.payload.feed_data(chunk, chunk_len) + return False, b"" + else: + self._chunk_size = 0 + self.payload.feed_data(chunk[:required], required) + chunk = chunk[required:] + if self._lax and chunk.startswith(b"\r"): + chunk = chunk[1:] + self._chunk = ChunkState.PARSE_CHUNKED_CHUNK_EOF + self.payload.end_http_chunk_receiving() + + # toss the CRLF at the end of the chunk + if self._chunk == ChunkState.PARSE_CHUNKED_CHUNK_EOF: + if chunk[: len(SEP)] == SEP: + chunk = chunk[len(SEP) :] + self._chunk = ChunkState.PARSE_CHUNKED_SIZE + else: + self._chunk_tail = chunk + return False, b"" + + # if stream does not contain trailer, after 0\r\n + # we should get another \r\n otherwise + # trailers needs to be skipped until \r\n\r\n + if self._chunk == ChunkState.PARSE_MAYBE_TRAILERS: + head = chunk[: len(SEP)] + if head == SEP: + # end of stream + self.payload.feed_eof() + return True, chunk[len(SEP) :] + # Both CR and LF, or only LF may not be received yet. It is + # expected that CRLF or LF will be shown at the very first + # byte next time, otherwise trailers should come. The last + # CRLF which marks the end of response might not be + # contained in the same TCP segment which delivered the + # size indicator. + if not head: + return False, b"" + if head == SEP[:1]: + self._chunk_tail = head + return False, b"" + self._chunk = ChunkState.PARSE_TRAILERS + + # read and discard trailer up to the CRLF terminator + if self._chunk == ChunkState.PARSE_TRAILERS: + pos = chunk.find(SEP) + if pos >= 0: + chunk = chunk[pos + len(SEP) :] + self._chunk = ChunkState.PARSE_MAYBE_TRAILERS + else: + self._chunk_tail = chunk + return False, b"" + + # Read all bytes until eof + elif self._type == ParseState.PARSE_UNTIL_EOF: + self.payload.feed_data(chunk, len(chunk)) + + return False, b"" + + +class DeflateBuffer: + """DeflateStream decompress stream and feed data into specified stream.""" + + decompressor: Any + + def __init__(self, out: StreamReader, encoding: Optional[str]) -> None: + self.out = out + self.size = 0 + self.encoding = encoding + self._started_decoding = False + + self.decompressor: Union[BrotliDecompressor, ZLibDecompressor] + if encoding == "br": + if not HAS_BROTLI: # pragma: no cover + raise ContentEncodingError( + "Can not decode content-encoding: brotli (br). " + "Please install `Brotli`" + ) + self.decompressor = BrotliDecompressor() + else: + self.decompressor = ZLibDecompressor(encoding=encoding) + + def set_exception(self, exc: BaseException) -> None: + self.out.set_exception(exc) + + def feed_data(self, chunk: bytes, size: int) -> None: + if not size: + return + + self.size += size + + # RFC1950 + # bits 0..3 = CM = 0b1000 = 8 = "deflate" + # bits 4..7 = CINFO = 1..7 = windows size. + if ( + not self._started_decoding + and self.encoding == "deflate" + and chunk[0] & 0xF != 8 + ): + # Change the decoder to decompress incorrectly compressed data + # Actually we should issue a warning about non-RFC-compliant data. + self.decompressor = ZLibDecompressor( + encoding=self.encoding, suppress_deflate_header=True + ) + + try: + chunk = self.decompressor.decompress_sync(chunk) + except Exception: + raise ContentEncodingError( + "Can not decode content-encoding: %s" % self.encoding + ) + + self._started_decoding = True + + if chunk: + self.out.feed_data(chunk, len(chunk)) + + def feed_eof(self) -> None: + chunk = self.decompressor.flush() + + if chunk or self.size > 0: + self.out.feed_data(chunk, len(chunk)) + if self.encoding == "deflate" and not self.decompressor.eof: + raise ContentEncodingError("deflate") + + self.out.feed_eof() + + def begin_http_chunk_receiving(self) -> None: + self.out.begin_http_chunk_receiving() + + def end_http_chunk_receiving(self) -> None: + self.out.end_http_chunk_receiving() + + +HttpRequestParserPy = HttpRequestParser +HttpResponseParserPy = HttpResponseParser +RawRequestMessagePy = RawRequestMessage +RawResponseMessagePy = RawResponseMessage + +try: + if not NO_EXTENSIONS: + from ._http_parser import ( # type: ignore[import-not-found,no-redef] + HttpRequestParser, + HttpResponseParser, + RawRequestMessage, + RawResponseMessage, + ) + + HttpRequestParserC = HttpRequestParser + HttpResponseParserC = HttpResponseParser + RawRequestMessageC = RawRequestMessage + RawResponseMessageC = RawResponseMessage +except ImportError: # pragma: no cover + pass diff --git a/gtm/lib/python3.12/site-packages/aiohttp/http_websocket.py b/gtm/lib/python3.12/site-packages/aiohttp/http_websocket.py new file mode 100644 index 0000000000000000000000000000000000000000..b63453f99e544839fc19bb5e1729f52b713d7c38 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/http_websocket.py @@ -0,0 +1,740 @@ +"""WebSocket protocol versions 13 and 8.""" + +import asyncio +import functools +import json +import random +import re +import sys +import zlib +from enum import IntEnum +from struct import Struct +from typing import ( + Any, + Callable, + Final, + List, + NamedTuple, + Optional, + Pattern, + Set, + Tuple, + Union, + cast, +) + +from .base_protocol import BaseProtocol +from .compression_utils import ZLibCompressor, ZLibDecompressor +from .helpers import NO_EXTENSIONS +from .streams import DataQueue + +__all__ = ( + "WS_CLOSED_MESSAGE", + "WS_CLOSING_MESSAGE", + "WS_KEY", + "WebSocketReader", + "WebSocketWriter", + "WSMessage", + "WebSocketError", + "WSMsgType", + "WSCloseCode", +) + + +class WSCloseCode(IntEnum): + OK = 1000 + GOING_AWAY = 1001 + PROTOCOL_ERROR = 1002 + UNSUPPORTED_DATA = 1003 + ABNORMAL_CLOSURE = 1006 + INVALID_TEXT = 1007 + POLICY_VIOLATION = 1008 + MESSAGE_TOO_BIG = 1009 + MANDATORY_EXTENSION = 1010 + INTERNAL_ERROR = 1011 + SERVICE_RESTART = 1012 + TRY_AGAIN_LATER = 1013 + BAD_GATEWAY = 1014 + + +ALLOWED_CLOSE_CODES: Final[Set[int]] = {int(i) for i in WSCloseCode} + +# For websockets, keeping latency low is extremely important as implementations +# generally expect to be able to send and receive messages quickly. We use a +# larger chunk size than the default to reduce the number of executor calls +# since the executor is a significant source of latency and overhead when +# the chunks are small. A size of 5KiB was chosen because it is also the +# same value python-zlib-ng choose to use as the threshold to release the GIL. + +WEBSOCKET_MAX_SYNC_CHUNK_SIZE = 5 * 1024 + + +class WSMsgType(IntEnum): + # websocket spec types + CONTINUATION = 0x0 + TEXT = 0x1 + BINARY = 0x2 + PING = 0x9 + PONG = 0xA + CLOSE = 0x8 + + # aiohttp specific types + CLOSING = 0x100 + CLOSED = 0x101 + ERROR = 0x102 + + text = TEXT + binary = BINARY + ping = PING + pong = PONG + close = CLOSE + closing = CLOSING + closed = CLOSED + error = ERROR + + +WS_KEY: Final[bytes] = b"258EAFA5-E914-47DA-95CA-C5AB0DC85B11" + + +UNPACK_LEN2 = Struct("!H").unpack_from +UNPACK_LEN3 = Struct("!Q").unpack_from +UNPACK_CLOSE_CODE = Struct("!H").unpack +PACK_LEN1 = Struct("!BB").pack +PACK_LEN2 = Struct("!BBH").pack +PACK_LEN3 = Struct("!BBQ").pack +PACK_CLOSE_CODE = Struct("!H").pack +MSG_SIZE: Final[int] = 2**14 +DEFAULT_LIMIT: Final[int] = 2**16 + + +class WSMessage(NamedTuple): + type: WSMsgType + # To type correctly, this would need some kind of tagged union for each type. + data: Any + extra: Optional[str] + + def json(self, *, loads: Callable[[Any], Any] = json.loads) -> Any: + """Return parsed JSON data. + + .. versionadded:: 0.22 + """ + return loads(self.data) + + +WS_CLOSED_MESSAGE = WSMessage(WSMsgType.CLOSED, None, None) +WS_CLOSING_MESSAGE = WSMessage(WSMsgType.CLOSING, None, None) + + +class WebSocketError(Exception): + """WebSocket protocol parser error.""" + + def __init__(self, code: int, message: str) -> None: + self.code = code + super().__init__(code, message) + + def __str__(self) -> str: + return cast(str, self.args[1]) + + +class WSHandshakeError(Exception): + """WebSocket protocol handshake error.""" + + +native_byteorder: Final[str] = sys.byteorder + + +# Used by _websocket_mask_python +@functools.lru_cache +def _xor_table() -> List[bytes]: + return [bytes(a ^ b for a in range(256)) for b in range(256)] + + +def _websocket_mask_python(mask: bytes, data: bytearray) -> None: + """Websocket masking function. + + `mask` is a `bytes` object of length 4; `data` is a `bytearray` + object of any length. The contents of `data` are masked with `mask`, + as specified in section 5.3 of RFC 6455. + + Note that this function mutates the `data` argument. + + This pure-python implementation may be replaced by an optimized + version when available. + + """ + assert isinstance(data, bytearray), data + assert len(mask) == 4, mask + + if data: + _XOR_TABLE = _xor_table() + a, b, c, d = (_XOR_TABLE[n] for n in mask) + data[::4] = data[::4].translate(a) + data[1::4] = data[1::4].translate(b) + data[2::4] = data[2::4].translate(c) + data[3::4] = data[3::4].translate(d) + + +if NO_EXTENSIONS: # pragma: no cover + _websocket_mask = _websocket_mask_python +else: + try: + from ._websocket import _websocket_mask_cython # type: ignore[import-not-found] + + _websocket_mask = _websocket_mask_cython + except ImportError: # pragma: no cover + _websocket_mask = _websocket_mask_python + +_WS_DEFLATE_TRAILING: Final[bytes] = bytes([0x00, 0x00, 0xFF, 0xFF]) + + +_WS_EXT_RE: Final[Pattern[str]] = re.compile( + r"^(?:;\s*(?:" + r"(server_no_context_takeover)|" + r"(client_no_context_takeover)|" + r"(server_max_window_bits(?:=(\d+))?)|" + r"(client_max_window_bits(?:=(\d+))?)))*$" +) + +_WS_EXT_RE_SPLIT: Final[Pattern[str]] = re.compile(r"permessage-deflate([^,]+)?") + + +def ws_ext_parse(extstr: Optional[str], isserver: bool = False) -> Tuple[int, bool]: + if not extstr: + return 0, False + + compress = 0 + notakeover = False + for ext in _WS_EXT_RE_SPLIT.finditer(extstr): + defext = ext.group(1) + # Return compress = 15 when get `permessage-deflate` + if not defext: + compress = 15 + break + match = _WS_EXT_RE.match(defext) + if match: + compress = 15 + if isserver: + # Server never fail to detect compress handshake. + # Server does not need to send max wbit to client + if match.group(4): + compress = int(match.group(4)) + # Group3 must match if group4 matches + # Compress wbit 8 does not support in zlib + # If compress level not support, + # CONTINUE to next extension + if compress > 15 or compress < 9: + compress = 0 + continue + if match.group(1): + notakeover = True + # Ignore regex group 5 & 6 for client_max_window_bits + break + else: + if match.group(6): + compress = int(match.group(6)) + # Group5 must match if group6 matches + # Compress wbit 8 does not support in zlib + # If compress level not support, + # FAIL the parse progress + if compress > 15 or compress < 9: + raise WSHandshakeError("Invalid window size") + if match.group(2): + notakeover = True + # Ignore regex group 5 & 6 for client_max_window_bits + break + # Return Fail if client side and not match + elif not isserver: + raise WSHandshakeError("Extension for deflate not supported" + ext.group(1)) + + return compress, notakeover + + +def ws_ext_gen( + compress: int = 15, isserver: bool = False, server_notakeover: bool = False +) -> str: + # client_notakeover=False not used for server + # compress wbit 8 does not support in zlib + if compress < 9 or compress > 15: + raise ValueError( + "Compress wbits must between 9 and 15, " "zlib does not support wbits=8" + ) + enabledext = ["permessage-deflate"] + if not isserver: + enabledext.append("client_max_window_bits") + + if compress < 15: + enabledext.append("server_max_window_bits=" + str(compress)) + if server_notakeover: + enabledext.append("server_no_context_takeover") + # if client_notakeover: + # enabledext.append('client_no_context_takeover') + return "; ".join(enabledext) + + +class WSParserState(IntEnum): + READ_HEADER = 1 + READ_PAYLOAD_LENGTH = 2 + READ_PAYLOAD_MASK = 3 + READ_PAYLOAD = 4 + + +class WebSocketReader: + def __init__( + self, queue: DataQueue[WSMessage], max_msg_size: int, compress: bool = True + ) -> None: + self.queue = queue + self._max_msg_size = max_msg_size + + self._exc: Optional[BaseException] = None + self._partial = bytearray() + self._state = WSParserState.READ_HEADER + + self._opcode: Optional[int] = None + self._frame_fin = False + self._frame_opcode: Optional[int] = None + self._frame_payload = bytearray() + + self._tail = b"" + self._has_mask = False + self._frame_mask: Optional[bytes] = None + self._payload_length = 0 + self._payload_length_flag = 0 + self._compressed: Optional[bool] = None + self._decompressobj: Optional[ZLibDecompressor] = None + self._compress = compress + + def feed_eof(self) -> None: + self.queue.feed_eof() + + def feed_data(self, data: bytes) -> Tuple[bool, bytes]: + if self._exc: + return True, data + + try: + return self._feed_data(data) + except Exception as exc: + self._exc = exc + self.queue.set_exception(exc) + return True, b"" + + def _feed_data(self, data: bytes) -> Tuple[bool, bytes]: + for fin, opcode, payload, compressed in self.parse_frame(data): + if compressed and not self._decompressobj: + self._decompressobj = ZLibDecompressor(suppress_deflate_header=True) + if opcode == WSMsgType.CLOSE: + if len(payload) >= 2: + close_code = UNPACK_CLOSE_CODE(payload[:2])[0] + if close_code < 3000 and close_code not in ALLOWED_CLOSE_CODES: + raise WebSocketError( + WSCloseCode.PROTOCOL_ERROR, + f"Invalid close code: {close_code}", + ) + try: + close_message = payload[2:].decode("utf-8") + except UnicodeDecodeError as exc: + raise WebSocketError( + WSCloseCode.INVALID_TEXT, "Invalid UTF-8 text message" + ) from exc + msg = WSMessage(WSMsgType.CLOSE, close_code, close_message) + elif payload: + raise WebSocketError( + WSCloseCode.PROTOCOL_ERROR, + f"Invalid close frame: {fin} {opcode} {payload!r}", + ) + else: + msg = WSMessage(WSMsgType.CLOSE, 0, "") + + self.queue.feed_data(msg, 0) + + elif opcode == WSMsgType.PING: + self.queue.feed_data( + WSMessage(WSMsgType.PING, payload, ""), len(payload) + ) + + elif opcode == WSMsgType.PONG: + self.queue.feed_data( + WSMessage(WSMsgType.PONG, payload, ""), len(payload) + ) + + elif ( + opcode not in (WSMsgType.TEXT, WSMsgType.BINARY) + and self._opcode is None + ): + raise WebSocketError( + WSCloseCode.PROTOCOL_ERROR, f"Unexpected opcode={opcode!r}" + ) + else: + # load text/binary + if not fin: + # got partial frame payload + if opcode != WSMsgType.CONTINUATION: + self._opcode = opcode + self._partial.extend(payload) + if self._max_msg_size and len(self._partial) >= self._max_msg_size: + raise WebSocketError( + WSCloseCode.MESSAGE_TOO_BIG, + "Message size {} exceeds limit {}".format( + len(self._partial), self._max_msg_size + ), + ) + else: + # previous frame was non finished + # we should get continuation opcode + if self._partial: + if opcode != WSMsgType.CONTINUATION: + raise WebSocketError( + WSCloseCode.PROTOCOL_ERROR, + "The opcode in non-fin frame is expected " + "to be zero, got {!r}".format(opcode), + ) + + if opcode == WSMsgType.CONTINUATION: + assert self._opcode is not None + opcode = self._opcode + self._opcode = None + + self._partial.extend(payload) + if self._max_msg_size and len(self._partial) >= self._max_msg_size: + raise WebSocketError( + WSCloseCode.MESSAGE_TOO_BIG, + "Message size {} exceeds limit {}".format( + len(self._partial), self._max_msg_size + ), + ) + + # Decompress process must to be done after all packets + # received. + if compressed: + assert self._decompressobj is not None + self._partial.extend(_WS_DEFLATE_TRAILING) + payload_merged = self._decompressobj.decompress_sync( + self._partial, self._max_msg_size + ) + if self._decompressobj.unconsumed_tail: + left = len(self._decompressobj.unconsumed_tail) + raise WebSocketError( + WSCloseCode.MESSAGE_TOO_BIG, + "Decompressed message size {} exceeds limit {}".format( + self._max_msg_size + left, self._max_msg_size + ), + ) + else: + payload_merged = bytes(self._partial) + + self._partial.clear() + + if opcode == WSMsgType.TEXT: + try: + text = payload_merged.decode("utf-8") + self.queue.feed_data( + WSMessage(WSMsgType.TEXT, text, ""), len(text) + ) + except UnicodeDecodeError as exc: + raise WebSocketError( + WSCloseCode.INVALID_TEXT, "Invalid UTF-8 text message" + ) from exc + else: + self.queue.feed_data( + WSMessage(WSMsgType.BINARY, payload_merged, ""), + len(payload_merged), + ) + + return False, b"" + + def parse_frame( + self, buf: bytes + ) -> List[Tuple[bool, Optional[int], bytearray, Optional[bool]]]: + """Return the next frame from the socket.""" + frames = [] + if self._tail: + buf, self._tail = self._tail + buf, b"" + + start_pos = 0 + buf_length = len(buf) + + while True: + # read header + if self._state == WSParserState.READ_HEADER: + if buf_length - start_pos >= 2: + data = buf[start_pos : start_pos + 2] + start_pos += 2 + first_byte, second_byte = data + + fin = (first_byte >> 7) & 1 + rsv1 = (first_byte >> 6) & 1 + rsv2 = (first_byte >> 5) & 1 + rsv3 = (first_byte >> 4) & 1 + opcode = first_byte & 0xF + + # frame-fin = %x0 ; more frames of this message follow + # / %x1 ; final frame of this message + # frame-rsv1 = %x0 ; + # 1 bit, MUST be 0 unless negotiated otherwise + # frame-rsv2 = %x0 ; + # 1 bit, MUST be 0 unless negotiated otherwise + # frame-rsv3 = %x0 ; + # 1 bit, MUST be 0 unless negotiated otherwise + # + # Remove rsv1 from this test for deflate development + if rsv2 or rsv3 or (rsv1 and not self._compress): + raise WebSocketError( + WSCloseCode.PROTOCOL_ERROR, + "Received frame with non-zero reserved bits", + ) + + if opcode > 0x7 and fin == 0: + raise WebSocketError( + WSCloseCode.PROTOCOL_ERROR, + "Received fragmented control frame", + ) + + has_mask = (second_byte >> 7) & 1 + length = second_byte & 0x7F + + # Control frames MUST have a payload + # length of 125 bytes or less + if opcode > 0x7 and length > 125: + raise WebSocketError( + WSCloseCode.PROTOCOL_ERROR, + "Control frame payload cannot be " "larger than 125 bytes", + ) + + # Set compress status if last package is FIN + # OR set compress status if this is first fragment + # Raise error if not first fragment with rsv1 = 0x1 + if self._frame_fin or self._compressed is None: + self._compressed = True if rsv1 else False + elif rsv1: + raise WebSocketError( + WSCloseCode.PROTOCOL_ERROR, + "Received frame with non-zero reserved bits", + ) + + self._frame_fin = bool(fin) + self._frame_opcode = opcode + self._has_mask = bool(has_mask) + self._payload_length_flag = length + self._state = WSParserState.READ_PAYLOAD_LENGTH + else: + break + + # read payload length + if self._state == WSParserState.READ_PAYLOAD_LENGTH: + length = self._payload_length_flag + if length == 126: + if buf_length - start_pos >= 2: + data = buf[start_pos : start_pos + 2] + start_pos += 2 + length = UNPACK_LEN2(data)[0] + self._payload_length = length + self._state = ( + WSParserState.READ_PAYLOAD_MASK + if self._has_mask + else WSParserState.READ_PAYLOAD + ) + else: + break + elif length > 126: + if buf_length - start_pos >= 8: + data = buf[start_pos : start_pos + 8] + start_pos += 8 + length = UNPACK_LEN3(data)[0] + self._payload_length = length + self._state = ( + WSParserState.READ_PAYLOAD_MASK + if self._has_mask + else WSParserState.READ_PAYLOAD + ) + else: + break + else: + self._payload_length = length + self._state = ( + WSParserState.READ_PAYLOAD_MASK + if self._has_mask + else WSParserState.READ_PAYLOAD + ) + + # read payload mask + if self._state == WSParserState.READ_PAYLOAD_MASK: + if buf_length - start_pos >= 4: + self._frame_mask = buf[start_pos : start_pos + 4] + start_pos += 4 + self._state = WSParserState.READ_PAYLOAD + else: + break + + if self._state == WSParserState.READ_PAYLOAD: + length = self._payload_length + payload = self._frame_payload + + chunk_len = buf_length - start_pos + if length >= chunk_len: + self._payload_length = length - chunk_len + payload.extend(buf[start_pos:]) + start_pos = buf_length + else: + self._payload_length = 0 + payload.extend(buf[start_pos : start_pos + length]) + start_pos = start_pos + length + + if self._payload_length == 0: + if self._has_mask: + assert self._frame_mask is not None + _websocket_mask(self._frame_mask, payload) + + frames.append( + (self._frame_fin, self._frame_opcode, payload, self._compressed) + ) + + self._frame_payload = bytearray() + self._state = WSParserState.READ_HEADER + else: + break + + self._tail = buf[start_pos:] + + return frames + + +class WebSocketWriter: + def __init__( + self, + protocol: BaseProtocol, + transport: asyncio.Transport, + *, + use_mask: bool = False, + limit: int = DEFAULT_LIMIT, + random: random.Random = random.Random(), + compress: int = 0, + notakeover: bool = False, + ) -> None: + self.protocol = protocol + self.transport = transport + self.use_mask = use_mask + self.randrange = random.randrange + self.compress = compress + self.notakeover = notakeover + self._closing = False + self._limit = limit + self._output_size = 0 + self._compressobj: Any = None # actually compressobj + + async def _send_frame( + self, message: bytes, opcode: int, compress: Optional[int] = None + ) -> None: + """Send a frame over the websocket with message as its payload.""" + if self._closing and not (opcode & WSMsgType.CLOSE): + raise ConnectionResetError("Cannot write to closing transport") + + rsv = 0 + + # Only compress larger packets (disabled) + # Does small packet needs to be compressed? + # if self.compress and opcode < 8 and len(message) > 124: + if (compress or self.compress) and opcode < 8: + if compress: + # Do not set self._compress if compressing is for this frame + compressobj = self._make_compress_obj(compress) + else: # self.compress + if not self._compressobj: + self._compressobj = self._make_compress_obj(self.compress) + compressobj = self._compressobj + + message = await compressobj.compress(message) + # Its critical that we do not return control to the event + # loop until we have finished sending all the compressed + # data. Otherwise we could end up mixing compressed frames + # if there are multiple coroutines compressing data. + message += compressobj.flush( + zlib.Z_FULL_FLUSH if self.notakeover else zlib.Z_SYNC_FLUSH + ) + if message.endswith(_WS_DEFLATE_TRAILING): + message = message[:-4] + rsv = rsv | 0x40 + + msg_length = len(message) + + use_mask = self.use_mask + if use_mask: + mask_bit = 0x80 + else: + mask_bit = 0 + + if msg_length < 126: + header = PACK_LEN1(0x80 | rsv | opcode, msg_length | mask_bit) + elif msg_length < (1 << 16): + header = PACK_LEN2(0x80 | rsv | opcode, 126 | mask_bit, msg_length) + else: + header = PACK_LEN3(0x80 | rsv | opcode, 127 | mask_bit, msg_length) + if use_mask: + mask_int = self.randrange(0, 0xFFFFFFFF) + mask = mask_int.to_bytes(4, "big") + message = bytearray(message) + _websocket_mask(mask, message) + self._write(header + mask + message) + self._output_size += len(header) + len(mask) + msg_length + else: + if msg_length > MSG_SIZE: + self._write(header) + self._write(message) + else: + self._write(header + message) + + self._output_size += len(header) + msg_length + + # It is safe to return control to the event loop when using compression + # after this point as we have already sent or buffered all the data. + + if self._output_size > self._limit: + self._output_size = 0 + await self.protocol._drain_helper() + + def _make_compress_obj(self, compress: int) -> ZLibCompressor: + return ZLibCompressor( + level=zlib.Z_BEST_SPEED, + wbits=-compress, + max_sync_chunk_size=WEBSOCKET_MAX_SYNC_CHUNK_SIZE, + ) + + def _write(self, data: bytes) -> None: + if self.transport is None or self.transport.is_closing(): + raise ConnectionResetError("Cannot write to closing transport") + self.transport.write(data) + + async def pong(self, message: Union[bytes, str] = b"") -> None: + """Send pong message.""" + if isinstance(message, str): + message = message.encode("utf-8") + await self._send_frame(message, WSMsgType.PONG) + + async def ping(self, message: Union[bytes, str] = b"") -> None: + """Send ping message.""" + if isinstance(message, str): + message = message.encode("utf-8") + await self._send_frame(message, WSMsgType.PING) + + async def send( + self, + message: Union[str, bytes], + binary: bool = False, + compress: Optional[int] = None, + ) -> None: + """Send a frame over the websocket with message as its payload.""" + if isinstance(message, str): + message = message.encode("utf-8") + if binary: + await self._send_frame(message, WSMsgType.BINARY, compress) + else: + await self._send_frame(message, WSMsgType.TEXT, compress) + + async def close(self, code: int = 1000, message: Union[bytes, str] = b"") -> None: + """Close the websocket, sending the specified code and message.""" + if isinstance(message, str): + message = message.encode("utf-8") + try: + await self._send_frame( + PACK_CLOSE_CODE(code) + message, opcode=WSMsgType.CLOSE + ) + finally: + self._closing = True diff --git a/gtm/lib/python3.12/site-packages/aiohttp/http_writer.py b/gtm/lib/python3.12/site-packages/aiohttp/http_writer.py new file mode 100644 index 0000000000000000000000000000000000000000..d6b02e6f566c32b9a1bddad0f40d859a87a041fc --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/http_writer.py @@ -0,0 +1,198 @@ +"""Http related parsers and protocol.""" + +import asyncio +import zlib +from typing import Any, Awaitable, Callable, NamedTuple, Optional, Union # noqa + +from multidict import CIMultiDict + +from .abc import AbstractStreamWriter +from .base_protocol import BaseProtocol +from .compression_utils import ZLibCompressor +from .helpers import NO_EXTENSIONS + +__all__ = ("StreamWriter", "HttpVersion", "HttpVersion10", "HttpVersion11") + + +class HttpVersion(NamedTuple): + major: int + minor: int + + +HttpVersion10 = HttpVersion(1, 0) +HttpVersion11 = HttpVersion(1, 1) + + +_T_OnChunkSent = Optional[Callable[[bytes], Awaitable[None]]] +_T_OnHeadersSent = Optional[Callable[["CIMultiDict[str]"], Awaitable[None]]] + + +class StreamWriter(AbstractStreamWriter): + def __init__( + self, + protocol: BaseProtocol, + loop: asyncio.AbstractEventLoop, + on_chunk_sent: _T_OnChunkSent = None, + on_headers_sent: _T_OnHeadersSent = None, + ) -> None: + self._protocol = protocol + + self.loop = loop + self.length = None + self.chunked = False + self.buffer_size = 0 + self.output_size = 0 + + self._eof = False + self._compress: Optional[ZLibCompressor] = None + self._drain_waiter = None + + self._on_chunk_sent: _T_OnChunkSent = on_chunk_sent + self._on_headers_sent: _T_OnHeadersSent = on_headers_sent + + @property + def transport(self) -> Optional[asyncio.Transport]: + return self._protocol.transport + + @property + def protocol(self) -> BaseProtocol: + return self._protocol + + def enable_chunking(self) -> None: + self.chunked = True + + def enable_compression( + self, encoding: str = "deflate", strategy: int = zlib.Z_DEFAULT_STRATEGY + ) -> None: + self._compress = ZLibCompressor(encoding=encoding, strategy=strategy) + + def _write(self, chunk: bytes) -> None: + size = len(chunk) + self.buffer_size += size + self.output_size += size + transport = self.transport + if not self._protocol.connected or transport is None or transport.is_closing(): + raise ConnectionResetError("Cannot write to closing transport") + transport.write(chunk) + + async def write( + self, chunk: bytes, *, drain: bool = True, LIMIT: int = 0x10000 + ) -> None: + """Writes chunk of data to a stream. + + write_eof() indicates end of stream. + writer can't be used after write_eof() method being called. + write() return drain future. + """ + if self._on_chunk_sent is not None: + await self._on_chunk_sent(chunk) + + if isinstance(chunk, memoryview): + if chunk.nbytes != len(chunk): + # just reshape it + chunk = chunk.cast("c") + + if self._compress is not None: + chunk = await self._compress.compress(chunk) + if not chunk: + return + + if self.length is not None: + chunk_len = len(chunk) + if self.length >= chunk_len: + self.length = self.length - chunk_len + else: + chunk = chunk[: self.length] + self.length = 0 + if not chunk: + return + + if chunk: + if self.chunked: + chunk_len_pre = ("%x\r\n" % len(chunk)).encode("ascii") + chunk = chunk_len_pre + chunk + b"\r\n" + + self._write(chunk) + + if self.buffer_size > LIMIT and drain: + self.buffer_size = 0 + await self.drain() + + async def write_headers( + self, status_line: str, headers: "CIMultiDict[str]" + ) -> None: + """Write request/response status and headers.""" + if self._on_headers_sent is not None: + await self._on_headers_sent(headers) + + # status + headers + buf = _serialize_headers(status_line, headers) + self._write(buf) + + async def write_eof(self, chunk: bytes = b"") -> None: + if self._eof: + return + + if chunk and self._on_chunk_sent is not None: + await self._on_chunk_sent(chunk) + + if self._compress: + if chunk: + chunk = await self._compress.compress(chunk) + + chunk += self._compress.flush() + if chunk and self.chunked: + chunk_len = ("%x\r\n" % len(chunk)).encode("ascii") + chunk = chunk_len + chunk + b"\r\n0\r\n\r\n" + else: + if self.chunked: + if chunk: + chunk_len = ("%x\r\n" % len(chunk)).encode("ascii") + chunk = chunk_len + chunk + b"\r\n0\r\n\r\n" + else: + chunk = b"0\r\n\r\n" + + if chunk: + self._write(chunk) + + await self.drain() + + self._eof = True + + async def drain(self) -> None: + """Flush the write buffer. + + The intended use is to write + + await w.write(data) + await w.drain() + """ + if self._protocol.transport is not None: + await self._protocol._drain_helper() + + +def _safe_header(string: str) -> str: + if "\r" in string or "\n" in string: + raise ValueError( + "Newline or carriage return detected in headers. " + "Potential header injection attack." + ) + return string + + +def _py_serialize_headers(status_line: str, headers: "CIMultiDict[str]") -> bytes: + headers_gen = (_safe_header(k) + ": " + _safe_header(v) for k, v in headers.items()) + line = status_line + "\r\n" + "\r\n".join(headers_gen) + "\r\n\r\n" + return line.encode("utf-8") + + +_serialize_headers = _py_serialize_headers + +try: + import aiohttp._http_writer as _http_writer # type: ignore[import-not-found] + + _c_serialize_headers = _http_writer._serialize_headers + if not NO_EXTENSIONS: + _serialize_headers = _c_serialize_headers +except ImportError: + pass diff --git a/gtm/lib/python3.12/site-packages/aiohttp/locks.py b/gtm/lib/python3.12/site-packages/aiohttp/locks.py new file mode 100644 index 0000000000000000000000000000000000000000..de2dc83d09dd950fc1ed8d7edaeb20e7697c94ba --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/locks.py @@ -0,0 +1,41 @@ +import asyncio +import collections +from typing import Any, Deque, Optional + + +class EventResultOrError: + """Event asyncio lock helper class. + + Wraps the Event asyncio lock allowing either to awake the + locked Tasks without any error or raising an exception. + + thanks to @vorpalsmith for the simple design. + """ + + def __init__(self, loop: asyncio.AbstractEventLoop) -> None: + self._loop = loop + self._exc: Optional[BaseException] = None + self._event = asyncio.Event() + self._waiters: Deque[asyncio.Future[Any]] = collections.deque() + + def set(self, exc: Optional[BaseException] = None) -> None: + self._exc = exc + self._event.set() + + async def wait(self) -> Any: + waiter = self._loop.create_task(self._event.wait()) + self._waiters.append(waiter) + try: + val = await waiter + finally: + self._waiters.remove(waiter) + + if self._exc is not None: + raise self._exc + + return val + + def cancel(self) -> None: + """Cancel all waiters""" + for waiter in self._waiters: + waiter.cancel() diff --git a/gtm/lib/python3.12/site-packages/aiohttp/log.py b/gtm/lib/python3.12/site-packages/aiohttp/log.py new file mode 100644 index 0000000000000000000000000000000000000000..3cecea2bac185df741bccd0a32a5fef9cfe23299 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/log.py @@ -0,0 +1,8 @@ +import logging + +access_logger = logging.getLogger("aiohttp.access") +client_logger = logging.getLogger("aiohttp.client") +internal_logger = logging.getLogger("aiohttp.internal") +server_logger = logging.getLogger("aiohttp.server") +web_logger = logging.getLogger("aiohttp.web") +ws_logger = logging.getLogger("aiohttp.websocket") diff --git a/gtm/lib/python3.12/site-packages/aiohttp/multipart.py b/gtm/lib/python3.12/site-packages/aiohttp/multipart.py new file mode 100644 index 0000000000000000000000000000000000000000..602a6b67457c334e5d31e9f2f12038796653a313 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/multipart.py @@ -0,0 +1,969 @@ +import base64 +import binascii +import json +import re +import uuid +import warnings +import zlib +from collections import deque +from types import TracebackType +from typing import ( + TYPE_CHECKING, + Any, + AsyncIterator, + Deque, + Dict, + Iterator, + List, + Mapping, + Optional, + Sequence, + Tuple, + Type, + Union, + cast, +) +from urllib.parse import parse_qsl, unquote, urlencode + +from multidict import CIMultiDict, CIMultiDictProxy, MultiMapping + +from .compression_utils import ZLibCompressor, ZLibDecompressor +from .hdrs import ( + CONTENT_DISPOSITION, + CONTENT_ENCODING, + CONTENT_LENGTH, + CONTENT_TRANSFER_ENCODING, + CONTENT_TYPE, +) +from .helpers import CHAR, TOKEN, parse_mimetype, reify +from .http import HeadersParser +from .payload import ( + JsonPayload, + LookupError, + Order, + Payload, + StringPayload, + get_payload, + payload_type, +) +from .streams import StreamReader + +__all__ = ( + "MultipartReader", + "MultipartWriter", + "BodyPartReader", + "BadContentDispositionHeader", + "BadContentDispositionParam", + "parse_content_disposition", + "content_disposition_filename", +) + + +if TYPE_CHECKING: + from .client_reqrep import ClientResponse + + +class BadContentDispositionHeader(RuntimeWarning): + pass + + +class BadContentDispositionParam(RuntimeWarning): + pass + + +def parse_content_disposition( + header: Optional[str], +) -> Tuple[Optional[str], Dict[str, str]]: + def is_token(string: str) -> bool: + return bool(string) and TOKEN >= set(string) + + def is_quoted(string: str) -> bool: + return string[0] == string[-1] == '"' + + def is_rfc5987(string: str) -> bool: + return is_token(string) and string.count("'") == 2 + + def is_extended_param(string: str) -> bool: + return string.endswith("*") + + def is_continuous_param(string: str) -> bool: + pos = string.find("*") + 1 + if not pos: + return False + substring = string[pos:-1] if string.endswith("*") else string[pos:] + return substring.isdigit() + + def unescape(text: str, *, chars: str = "".join(map(re.escape, CHAR))) -> str: + return re.sub(f"\\\\([{chars}])", "\\1", text) + + if not header: + return None, {} + + disptype, *parts = header.split(";") + if not is_token(disptype): + warnings.warn(BadContentDispositionHeader(header)) + return None, {} + + params: Dict[str, str] = {} + while parts: + item = parts.pop(0) + + if "=" not in item: + warnings.warn(BadContentDispositionHeader(header)) + return None, {} + + key, value = item.split("=", 1) + key = key.lower().strip() + value = value.lstrip() + + if key in params: + warnings.warn(BadContentDispositionHeader(header)) + return None, {} + + if not is_token(key): + warnings.warn(BadContentDispositionParam(item)) + continue + + elif is_continuous_param(key): + if is_quoted(value): + value = unescape(value[1:-1]) + elif not is_token(value): + warnings.warn(BadContentDispositionParam(item)) + continue + + elif is_extended_param(key): + if is_rfc5987(value): + encoding, _, value = value.split("'", 2) + encoding = encoding or "utf-8" + else: + warnings.warn(BadContentDispositionParam(item)) + continue + + try: + value = unquote(value, encoding, "strict") + except UnicodeDecodeError: # pragma: nocover + warnings.warn(BadContentDispositionParam(item)) + continue + + else: + failed = True + if is_quoted(value): + failed = False + value = unescape(value[1:-1].lstrip("\\/")) + elif is_token(value): + failed = False + elif parts: + # maybe just ; in filename, in any case this is just + # one case fix, for proper fix we need to redesign parser + _value = f"{value};{parts[0]}" + if is_quoted(_value): + parts.pop(0) + value = unescape(_value[1:-1].lstrip("\\/")) + failed = False + + if failed: + warnings.warn(BadContentDispositionHeader(header)) + return None, {} + + params[key] = value + + return disptype.lower(), params + + +def content_disposition_filename( + params: Mapping[str, str], name: str = "filename" +) -> Optional[str]: + name_suf = "%s*" % name + if not params: + return None + elif name_suf in params: + return params[name_suf] + elif name in params: + return params[name] + else: + parts = [] + fnparams = sorted( + (key, value) for key, value in params.items() if key.startswith(name_suf) + ) + for num, (key, value) in enumerate(fnparams): + _, tail = key.split("*", 1) + if tail.endswith("*"): + tail = tail[:-1] + if tail == str(num): + parts.append(value) + else: + break + if not parts: + return None + value = "".join(parts) + if "'" in value: + encoding, _, value = value.split("'", 2) + encoding = encoding or "utf-8" + return unquote(value, encoding, "strict") + return value + + +class MultipartResponseWrapper: + """Wrapper around the MultipartReader. + + It takes care about + underlying connection and close it when it needs in. + """ + + def __init__( + self, + resp: "ClientResponse", + stream: "MultipartReader", + ) -> None: + self.resp = resp + self.stream = stream + + def __aiter__(self) -> "MultipartResponseWrapper": + return self + + async def __anext__( + self, + ) -> Union["MultipartReader", "BodyPartReader"]: + part = await self.next() + if part is None: + raise StopAsyncIteration + return part + + def at_eof(self) -> bool: + """Returns True when all response data had been read.""" + return self.resp.content.at_eof() + + async def next( + self, + ) -> Optional[Union["MultipartReader", "BodyPartReader"]]: + """Emits next multipart reader object.""" + item = await self.stream.next() + if self.stream.at_eof(): + await self.release() + return item + + async def release(self) -> None: + """Release the connection gracefully. + + All remaining content is read to the void. + """ + await self.resp.release() + + +class BodyPartReader: + """Multipart reader for single body part.""" + + chunk_size = 8192 + + def __init__( + self, boundary: bytes, headers: "CIMultiDictProxy[str]", content: StreamReader + ) -> None: + self.headers = headers + self._boundary = boundary + self._content = content + self._at_eof = False + length = self.headers.get(CONTENT_LENGTH, None) + self._length = int(length) if length is not None else None + self._read_bytes = 0 + self._unread: Deque[bytes] = deque() + self._prev_chunk: Optional[bytes] = None + self._content_eof = 0 + self._cache: Dict[str, Any] = {} + + def __aiter__(self) -> AsyncIterator["BodyPartReader"]: + return self # type: ignore[return-value] + + async def __anext__(self) -> bytes: + part = await self.next() + if part is None: + raise StopAsyncIteration + return part + + async def next(self) -> Optional[bytes]: + item = await self.read() + if not item: + return None + return item + + async def read(self, *, decode: bool = False) -> bytes: + """Reads body part data. + + decode: Decodes data following by encoding + method from Content-Encoding header. If it missed + data remains untouched + """ + if self._at_eof: + return b"" + data = bytearray() + while not self._at_eof: + data.extend(await self.read_chunk(self.chunk_size)) + if decode: + return self.decode(data) + return data + + async def read_chunk(self, size: int = chunk_size) -> bytes: + """Reads body part content chunk of the specified size. + + size: chunk size + """ + if self._at_eof: + return b"" + if self._length: + chunk = await self._read_chunk_from_length(size) + else: + chunk = await self._read_chunk_from_stream(size) + + self._read_bytes += len(chunk) + if self._read_bytes == self._length: + self._at_eof = True + if self._at_eof: + clrf = await self._content.readline() + assert ( + b"\r\n" == clrf + ), "reader did not read all the data or it is malformed" + return chunk + + async def _read_chunk_from_length(self, size: int) -> bytes: + # Reads body part content chunk of the specified size. + # The body part must has Content-Length header with proper value. + assert self._length is not None, "Content-Length required for chunked read" + chunk_size = min(size, self._length - self._read_bytes) + chunk = await self._content.read(chunk_size) + return chunk + + async def _read_chunk_from_stream(self, size: int) -> bytes: + # Reads content chunk of body part with unknown length. + # The Content-Length header for body part is not necessary. + assert ( + size >= len(self._boundary) + 2 + ), "Chunk size must be greater or equal than boundary length + 2" + first_chunk = self._prev_chunk is None + if first_chunk: + self._prev_chunk = await self._content.read(size) + + chunk = await self._content.read(size) + self._content_eof += int(self._content.at_eof()) + assert self._content_eof < 3, "Reading after EOF" + assert self._prev_chunk is not None + window = self._prev_chunk + chunk + sub = b"\r\n" + self._boundary + if first_chunk: + idx = window.find(sub) + else: + idx = window.find(sub, max(0, len(self._prev_chunk) - len(sub))) + if idx >= 0: + # pushing boundary back to content + with warnings.catch_warnings(): + warnings.filterwarnings("ignore", category=DeprecationWarning) + self._content.unread_data(window[idx:]) + if size > idx: + self._prev_chunk = self._prev_chunk[:idx] + chunk = window[len(self._prev_chunk) : idx] + if not chunk: + self._at_eof = True + result = self._prev_chunk + self._prev_chunk = chunk + return result + + async def readline(self) -> bytes: + """Reads body part by line by line.""" + if self._at_eof: + return b"" + + if self._unread: + line = self._unread.popleft() + else: + line = await self._content.readline() + + if line.startswith(self._boundary): + # the very last boundary may not come with \r\n, + # so set single rules for everyone + sline = line.rstrip(b"\r\n") + boundary = self._boundary + last_boundary = self._boundary + b"--" + # ensure that we read exactly the boundary, not something alike + if sline == boundary or sline == last_boundary: + self._at_eof = True + self._unread.append(line) + return b"" + else: + next_line = await self._content.readline() + if next_line.startswith(self._boundary): + line = line[:-2] # strip CRLF but only once + self._unread.append(next_line) + + return line + + async def release(self) -> None: + """Like read(), but reads all the data to the void.""" + if self._at_eof: + return + while not self._at_eof: + await self.read_chunk(self.chunk_size) + + async def text(self, *, encoding: Optional[str] = None) -> str: + """Like read(), but assumes that body part contains text data.""" + data = await self.read(decode=True) + # see https://www.w3.org/TR/html5/forms.html#multipart/form-data-encoding-algorithm + # and https://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html#dom-xmlhttprequest-send + encoding = encoding or self.get_charset(default="utf-8") + return data.decode(encoding) + + async def json(self, *, encoding: Optional[str] = None) -> Optional[Dict[str, Any]]: + """Like read(), but assumes that body parts contains JSON data.""" + data = await self.read(decode=True) + if not data: + return None + encoding = encoding or self.get_charset(default="utf-8") + return cast(Dict[str, Any], json.loads(data.decode(encoding))) + + async def form(self, *, encoding: Optional[str] = None) -> List[Tuple[str, str]]: + """Like read(), but assumes that body parts contain form urlencoded data.""" + data = await self.read(decode=True) + if not data: + return [] + if encoding is not None: + real_encoding = encoding + else: + real_encoding = self.get_charset(default="utf-8") + try: + decoded_data = data.rstrip().decode(real_encoding) + except UnicodeDecodeError: + raise ValueError("data cannot be decoded with %s encoding" % real_encoding) + + return parse_qsl( + decoded_data, + keep_blank_values=True, + encoding=real_encoding, + ) + + def at_eof(self) -> bool: + """Returns True if the boundary was reached or False otherwise.""" + return self._at_eof + + def decode(self, data: bytes) -> bytes: + """Decodes data. + + Decoding is done according the specified Content-Encoding + or Content-Transfer-Encoding headers value. + """ + if CONTENT_TRANSFER_ENCODING in self.headers: + data = self._decode_content_transfer(data) + if CONTENT_ENCODING in self.headers: + return self._decode_content(data) + return data + + def _decode_content(self, data: bytes) -> bytes: + encoding = self.headers.get(CONTENT_ENCODING, "").lower() + if encoding == "identity": + return data + if encoding in {"deflate", "gzip"}: + return ZLibDecompressor( + encoding=encoding, + suppress_deflate_header=True, + ).decompress_sync(data) + + raise RuntimeError(f"unknown content encoding: {encoding}") + + def _decode_content_transfer(self, data: bytes) -> bytes: + encoding = self.headers.get(CONTENT_TRANSFER_ENCODING, "").lower() + + if encoding == "base64": + return base64.b64decode(data) + elif encoding == "quoted-printable": + return binascii.a2b_qp(data) + elif encoding in ("binary", "8bit", "7bit"): + return data + else: + raise RuntimeError( + "unknown content transfer encoding: {}" "".format(encoding) + ) + + def get_charset(self, default: str) -> str: + """Returns charset parameter from Content-Type header or default.""" + ctype = self.headers.get(CONTENT_TYPE, "") + mimetype = parse_mimetype(ctype) + return mimetype.parameters.get("charset", default) + + @reify + def name(self) -> Optional[str]: + """Returns name specified in Content-Disposition header. + + If the header is missing or malformed, returns None. + """ + _, params = parse_content_disposition(self.headers.get(CONTENT_DISPOSITION)) + return content_disposition_filename(params, "name") + + @reify + def filename(self) -> Optional[str]: + """Returns filename specified in Content-Disposition header. + + Returns None if the header is missing or malformed. + """ + _, params = parse_content_disposition(self.headers.get(CONTENT_DISPOSITION)) + return content_disposition_filename(params, "filename") + + +@payload_type(BodyPartReader, order=Order.try_first) +class BodyPartReaderPayload(Payload): + def __init__(self, value: BodyPartReader, *args: Any, **kwargs: Any) -> None: + super().__init__(value, *args, **kwargs) + + params: Dict[str, str] = {} + if value.name is not None: + params["name"] = value.name + if value.filename is not None: + params["filename"] = value.filename + + if params: + self.set_content_disposition("attachment", True, **params) + + async def write(self, writer: Any) -> None: + field = self._value + chunk = await field.read_chunk(size=2**16) + while chunk: + await writer.write(field.decode(chunk)) + chunk = await field.read_chunk(size=2**16) + + +class MultipartReader: + """Multipart body reader.""" + + #: Response wrapper, used when multipart readers constructs from response. + response_wrapper_cls = MultipartResponseWrapper + #: Multipart reader class, used to handle multipart/* body parts. + #: None points to type(self) + multipart_reader_cls = None + #: Body part reader class for non multipart/* content types. + part_reader_cls = BodyPartReader + + def __init__(self, headers: Mapping[str, str], content: StreamReader) -> None: + self.headers = headers + self._boundary = ("--" + self._get_boundary()).encode() + self._content = content + self._last_part: Optional[Union["MultipartReader", BodyPartReader]] = None + self._at_eof = False + self._at_bof = True + self._unread: List[bytes] = [] + + def __aiter__( + self, + ) -> AsyncIterator["BodyPartReader"]: + return self # type: ignore[return-value] + + async def __anext__( + self, + ) -> Optional[Union["MultipartReader", BodyPartReader]]: + part = await self.next() + if part is None: + raise StopAsyncIteration + return part + + @classmethod + def from_response( + cls, + response: "ClientResponse", + ) -> MultipartResponseWrapper: + """Constructs reader instance from HTTP response. + + :param response: :class:`~aiohttp.client.ClientResponse` instance + """ + obj = cls.response_wrapper_cls( + response, cls(response.headers, response.content) + ) + return obj + + def at_eof(self) -> bool: + """Returns True if the final boundary was reached, false otherwise.""" + return self._at_eof + + async def next( + self, + ) -> Optional[Union["MultipartReader", BodyPartReader]]: + """Emits the next multipart body part.""" + # So, if we're at BOF, we need to skip till the boundary. + if self._at_eof: + return None + await self._maybe_release_last_part() + if self._at_bof: + await self._read_until_first_boundary() + self._at_bof = False + else: + await self._read_boundary() + if self._at_eof: # we just read the last boundary, nothing to do there + return None + self._last_part = await self.fetch_next_part() + return self._last_part + + async def release(self) -> None: + """Reads all the body parts to the void till the final boundary.""" + while not self._at_eof: + item = await self.next() + if item is None: + break + await item.release() + + async def fetch_next_part( + self, + ) -> Union["MultipartReader", BodyPartReader]: + """Returns the next body part reader.""" + headers = await self._read_headers() + return self._get_part_reader(headers) + + def _get_part_reader( + self, + headers: "CIMultiDictProxy[str]", + ) -> Union["MultipartReader", BodyPartReader]: + """Dispatches the response by the `Content-Type` header. + + Returns a suitable reader instance. + + :param dict headers: Response headers + """ + ctype = headers.get(CONTENT_TYPE, "") + mimetype = parse_mimetype(ctype) + + if mimetype.type == "multipart": + if self.multipart_reader_cls is None: + return type(self)(headers, self._content) + return self.multipart_reader_cls(headers, self._content) + else: + return self.part_reader_cls(self._boundary, headers, self._content) + + def _get_boundary(self) -> str: + mimetype = parse_mimetype(self.headers[CONTENT_TYPE]) + + assert mimetype.type == "multipart", "multipart/* content type expected" + + if "boundary" not in mimetype.parameters: + raise ValueError( + "boundary missed for Content-Type: %s" % self.headers[CONTENT_TYPE] + ) + + boundary = mimetype.parameters["boundary"] + if len(boundary) > 70: + raise ValueError("boundary %r is too long (70 chars max)" % boundary) + + return boundary + + async def _readline(self) -> bytes: + if self._unread: + return self._unread.pop() + return await self._content.readline() + + async def _read_until_first_boundary(self) -> None: + while True: + chunk = await self._readline() + if chunk == b"": + raise ValueError( + "Could not find starting boundary %r" % (self._boundary) + ) + chunk = chunk.rstrip() + if chunk == self._boundary: + return + elif chunk == self._boundary + b"--": + self._at_eof = True + return + + async def _read_boundary(self) -> None: + chunk = (await self._readline()).rstrip() + if chunk == self._boundary: + pass + elif chunk == self._boundary + b"--": + self._at_eof = True + epilogue = await self._readline() + next_line = await self._readline() + + # the epilogue is expected and then either the end of input or the + # parent multipart boundary, if the parent boundary is found then + # it should be marked as unread and handed to the parent for + # processing + if next_line[:2] == b"--": + self._unread.append(next_line) + # otherwise the request is likely missing an epilogue and both + # lines should be passed to the parent for processing + # (this handles the old behavior gracefully) + else: + self._unread.extend([next_line, epilogue]) + else: + raise ValueError(f"Invalid boundary {chunk!r}, expected {self._boundary!r}") + + async def _read_headers(self) -> "CIMultiDictProxy[str]": + lines = [b""] + while True: + chunk = await self._content.readline() + chunk = chunk.strip() + lines.append(chunk) + if not chunk: + break + parser = HeadersParser() + headers, raw_headers = parser.parse_headers(lines) + return headers + + async def _maybe_release_last_part(self) -> None: + """Ensures that the last read body part is read completely.""" + if self._last_part is not None: + if not self._last_part.at_eof(): + await self._last_part.release() + self._unread.extend(self._last_part._unread) + self._last_part = None + + +_Part = Tuple[Payload, str, str] + + +class MultipartWriter(Payload): + """Multipart body writer.""" + + def __init__(self, subtype: str = "mixed", boundary: Optional[str] = None) -> None: + boundary = boundary if boundary is not None else uuid.uuid4().hex + # The underlying Payload API demands a str (utf-8), not bytes, + # so we need to ensure we don't lose anything during conversion. + # As a result, require the boundary to be ASCII only. + # In both situations. + + try: + self._boundary = boundary.encode("ascii") + except UnicodeEncodeError: + raise ValueError("boundary should contain ASCII only chars") from None + ctype = f"multipart/{subtype}; boundary={self._boundary_value}" + + super().__init__(None, content_type=ctype) + + self._parts: List[_Part] = [] + + def __enter__(self) -> "MultipartWriter": + return self + + def __exit__( + self, + exc_type: Optional[Type[BaseException]], + exc_val: Optional[BaseException], + exc_tb: Optional[TracebackType], + ) -> None: + pass + + def __iter__(self) -> Iterator[_Part]: + return iter(self._parts) + + def __len__(self) -> int: + return len(self._parts) + + def __bool__(self) -> bool: + return True + + _valid_tchar_regex = re.compile(rb"\A[!#$%&'*+\-.^_`|~\w]+\Z") + _invalid_qdtext_char_regex = re.compile(rb"[\x00-\x08\x0A-\x1F\x7F]") + + @property + def _boundary_value(self) -> str: + """Wrap boundary parameter value in quotes, if necessary. + + Reads self.boundary and returns a unicode string. + """ + # Refer to RFCs 7231, 7230, 5234. + # + # parameter = token "=" ( token / quoted-string ) + # token = 1*tchar + # quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE + # qdtext = HTAB / SP / %x21 / %x23-5B / %x5D-7E / obs-text + # obs-text = %x80-FF + # quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text ) + # tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" + # / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~" + # / DIGIT / ALPHA + # ; any VCHAR, except delimiters + # VCHAR = %x21-7E + value = self._boundary + if re.match(self._valid_tchar_regex, value): + return value.decode("ascii") # cannot fail + + if re.search(self._invalid_qdtext_char_regex, value): + raise ValueError("boundary value contains invalid characters") + + # escape %x5C and %x22 + quoted_value_content = value.replace(b"\\", b"\\\\") + quoted_value_content = quoted_value_content.replace(b'"', b'\\"') + + return '"' + quoted_value_content.decode("ascii") + '"' + + @property + def boundary(self) -> str: + return self._boundary.decode("ascii") + + def append(self, obj: Any, headers: Optional[MultiMapping[str]] = None) -> Payload: + if headers is None: + headers = CIMultiDict() + + if isinstance(obj, Payload): + obj.headers.update(headers) + return self.append_payload(obj) + else: + try: + payload = get_payload(obj, headers=headers) + except LookupError: + raise TypeError("Cannot create payload from %r" % obj) + else: + return self.append_payload(payload) + + def append_payload(self, payload: Payload) -> Payload: + """Adds a new body part to multipart writer.""" + # compression + encoding: Optional[str] = payload.headers.get( + CONTENT_ENCODING, + "", + ).lower() + if encoding and encoding not in ("deflate", "gzip", "identity"): + raise RuntimeError(f"unknown content encoding: {encoding}") + if encoding == "identity": + encoding = None + + # te encoding + te_encoding: Optional[str] = payload.headers.get( + CONTENT_TRANSFER_ENCODING, + "", + ).lower() + if te_encoding not in ("", "base64", "quoted-printable", "binary"): + raise RuntimeError( + "unknown content transfer encoding: {}" "".format(te_encoding) + ) + if te_encoding == "binary": + te_encoding = None + + # size + size = payload.size + if size is not None and not (encoding or te_encoding): + payload.headers[CONTENT_LENGTH] = str(size) + + self._parts.append((payload, encoding, te_encoding)) # type: ignore[arg-type] + return payload + + def append_json( + self, obj: Any, headers: Optional[MultiMapping[str]] = None + ) -> Payload: + """Helper to append JSON part.""" + if headers is None: + headers = CIMultiDict() + + return self.append_payload(JsonPayload(obj, headers=headers)) + + def append_form( + self, + obj: Union[Sequence[Tuple[str, str]], Mapping[str, str]], + headers: Optional[MultiMapping[str]] = None, + ) -> Payload: + """Helper to append form urlencoded part.""" + assert isinstance(obj, (Sequence, Mapping)) + + if headers is None: + headers = CIMultiDict() + + if isinstance(obj, Mapping): + obj = list(obj.items()) + data = urlencode(obj, doseq=True) + + return self.append_payload( + StringPayload( + data, headers=headers, content_type="application/x-www-form-urlencoded" + ) + ) + + @property + def size(self) -> Optional[int]: + """Size of the payload.""" + total = 0 + for part, encoding, te_encoding in self._parts: + if encoding or te_encoding or part.size is None: + return None + + total += int( + 2 + + len(self._boundary) + + 2 + + part.size # b'--'+self._boundary+b'\r\n' + + len(part._binary_headers) + + 2 # b'\r\n' + ) + + total += 2 + len(self._boundary) + 4 # b'--'+self._boundary+b'--\r\n' + return total + + async def write(self, writer: Any, close_boundary: bool = True) -> None: + """Write body.""" + for part, encoding, te_encoding in self._parts: + await writer.write(b"--" + self._boundary + b"\r\n") + await writer.write(part._binary_headers) + + if encoding or te_encoding: + w = MultipartPayloadWriter(writer) + if encoding: + w.enable_compression(encoding) + if te_encoding: + w.enable_encoding(te_encoding) + await part.write(w) # type: ignore[arg-type] + await w.write_eof() + else: + await part.write(writer) + + await writer.write(b"\r\n") + + if close_boundary: + await writer.write(b"--" + self._boundary + b"--\r\n") + + +class MultipartPayloadWriter: + def __init__(self, writer: Any) -> None: + self._writer = writer + self._encoding: Optional[str] = None + self._compress: Optional[ZLibCompressor] = None + self._encoding_buffer: Optional[bytearray] = None + + def enable_encoding(self, encoding: str) -> None: + if encoding == "base64": + self._encoding = encoding + self._encoding_buffer = bytearray() + elif encoding == "quoted-printable": + self._encoding = "quoted-printable" + + def enable_compression( + self, encoding: str = "deflate", strategy: int = zlib.Z_DEFAULT_STRATEGY + ) -> None: + self._compress = ZLibCompressor( + encoding=encoding, + suppress_deflate_header=True, + strategy=strategy, + ) + + async def write_eof(self) -> None: + if self._compress is not None: + chunk = self._compress.flush() + if chunk: + self._compress = None + await self.write(chunk) + + if self._encoding == "base64": + if self._encoding_buffer: + await self._writer.write(base64.b64encode(self._encoding_buffer)) + + async def write(self, chunk: bytes) -> None: + if self._compress is not None: + if chunk: + chunk = await self._compress.compress(chunk) + if not chunk: + return + + if self._encoding == "base64": + buf = self._encoding_buffer + assert buf is not None + buf.extend(chunk) + + if buf: + div, mod = divmod(len(buf), 3) + enc_chunk, self._encoding_buffer = (buf[: div * 3], buf[div * 3 :]) + if enc_chunk: + b64chunk = base64.b64encode(enc_chunk) + await self._writer.write(b64chunk) + elif self._encoding == "quoted-printable": + await self._writer.write(binascii.b2a_qp(chunk)) + else: + await self._writer.write(chunk) diff --git a/gtm/lib/python3.12/site-packages/aiohttp/payload.py b/gtm/lib/python3.12/site-packages/aiohttp/payload.py new file mode 100644 index 0000000000000000000000000000000000000000..6593b05c6f7b835de1d5b0925f77306db183340e --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/payload.py @@ -0,0 +1,463 @@ +import asyncio +import enum +import io +import json +import mimetypes +import os +import warnings +from abc import ABC, abstractmethod +from itertools import chain +from typing import ( + IO, + TYPE_CHECKING, + Any, + ByteString, + Dict, + Final, + Iterable, + Optional, + TextIO, + Tuple, + Type, + Union, +) + +from multidict import CIMultiDict + +from . import hdrs +from .abc import AbstractStreamWriter +from .helpers import ( + _SENTINEL, + content_disposition_header, + guess_filename, + parse_mimetype, + sentinel, +) +from .streams import StreamReader +from .typedefs import JSONEncoder, _CIMultiDict + +__all__ = ( + "PAYLOAD_REGISTRY", + "get_payload", + "payload_type", + "Payload", + "BytesPayload", + "StringPayload", + "IOBasePayload", + "BytesIOPayload", + "BufferedReaderPayload", + "TextIOPayload", + "StringIOPayload", + "JsonPayload", + "AsyncIterablePayload", +) + +TOO_LARGE_BYTES_BODY: Final[int] = 2**20 # 1 MB + +if TYPE_CHECKING: + from typing import List + + +class LookupError(Exception): + pass + + +class Order(str, enum.Enum): + normal = "normal" + try_first = "try_first" + try_last = "try_last" + + +def get_payload(data: Any, *args: Any, **kwargs: Any) -> "Payload": + return PAYLOAD_REGISTRY.get(data, *args, **kwargs) + + +def register_payload( + factory: Type["Payload"], type: Any, *, order: Order = Order.normal +) -> None: + PAYLOAD_REGISTRY.register(factory, type, order=order) + + +class payload_type: + def __init__(self, type: Any, *, order: Order = Order.normal) -> None: + self.type = type + self.order = order + + def __call__(self, factory: Type["Payload"]) -> Type["Payload"]: + register_payload(factory, self.type, order=self.order) + return factory + + +PayloadType = Type["Payload"] +_PayloadRegistryItem = Tuple[PayloadType, Any] + + +class PayloadRegistry: + """Payload registry. + + note: we need zope.interface for more efficient adapter search + """ + + def __init__(self) -> None: + self._first: List[_PayloadRegistryItem] = [] + self._normal: List[_PayloadRegistryItem] = [] + self._last: List[_PayloadRegistryItem] = [] + + def get( + self, + data: Any, + *args: Any, + _CHAIN: "Type[chain[_PayloadRegistryItem]]" = chain, + **kwargs: Any, + ) -> "Payload": + if isinstance(data, Payload): + return data + for factory, type in _CHAIN(self._first, self._normal, self._last): + if isinstance(data, type): + return factory(data, *args, **kwargs) + + raise LookupError() + + def register( + self, factory: PayloadType, type: Any, *, order: Order = Order.normal + ) -> None: + if order is Order.try_first: + self._first.append((factory, type)) + elif order is Order.normal: + self._normal.append((factory, type)) + elif order is Order.try_last: + self._last.append((factory, type)) + else: + raise ValueError(f"Unsupported order {order!r}") + + +class Payload(ABC): + + _default_content_type: str = "application/octet-stream" + _size: Optional[int] = None + + def __init__( + self, + value: Any, + headers: Optional[ + Union[_CIMultiDict, Dict[str, str], Iterable[Tuple[str, str]]] + ] = None, + content_type: Union[str, None, _SENTINEL] = sentinel, + filename: Optional[str] = None, + encoding: Optional[str] = None, + **kwargs: Any, + ) -> None: + self._encoding = encoding + self._filename = filename + self._headers: _CIMultiDict = CIMultiDict() + self._value = value + if content_type is not sentinel and content_type is not None: + self._headers[hdrs.CONTENT_TYPE] = content_type + elif self._filename is not None: + content_type = mimetypes.guess_type(self._filename)[0] + if content_type is None: + content_type = self._default_content_type + self._headers[hdrs.CONTENT_TYPE] = content_type + else: + self._headers[hdrs.CONTENT_TYPE] = self._default_content_type + self._headers.update(headers or {}) + + @property + def size(self) -> Optional[int]: + """Size of the payload.""" + return self._size + + @property + def filename(self) -> Optional[str]: + """Filename of the payload.""" + return self._filename + + @property + def headers(self) -> _CIMultiDict: + """Custom item headers""" + return self._headers + + @property + def _binary_headers(self) -> bytes: + return ( + "".join([k + ": " + v + "\r\n" for k, v in self.headers.items()]).encode( + "utf-8" + ) + + b"\r\n" + ) + + @property + def encoding(self) -> Optional[str]: + """Payload encoding""" + return self._encoding + + @property + def content_type(self) -> str: + """Content type""" + return self._headers[hdrs.CONTENT_TYPE] + + def set_content_disposition( + self, + disptype: str, + quote_fields: bool = True, + _charset: str = "utf-8", + **params: Any, + ) -> None: + """Sets ``Content-Disposition`` header.""" + self._headers[hdrs.CONTENT_DISPOSITION] = content_disposition_header( + disptype, quote_fields=quote_fields, _charset=_charset, **params + ) + + @abstractmethod + async def write(self, writer: AbstractStreamWriter) -> None: + """Write payload. + + writer is an AbstractStreamWriter instance: + """ + + +class BytesPayload(Payload): + def __init__(self, value: ByteString, *args: Any, **kwargs: Any) -> None: + if not isinstance(value, (bytes, bytearray, memoryview)): + raise TypeError(f"value argument must be byte-ish, not {type(value)!r}") + + if "content_type" not in kwargs: + kwargs["content_type"] = "application/octet-stream" + + super().__init__(value, *args, **kwargs) + + if isinstance(value, memoryview): + self._size = value.nbytes + else: + self._size = len(value) + + if self._size > TOO_LARGE_BYTES_BODY: + kwargs = {"source": self} + warnings.warn( + "Sending a large body directly with raw bytes might" + " lock the event loop. You should probably pass an " + "io.BytesIO object instead", + ResourceWarning, + **kwargs, + ) + + async def write(self, writer: AbstractStreamWriter) -> None: + await writer.write(self._value) + + +class StringPayload(BytesPayload): + def __init__( + self, + value: str, + *args: Any, + encoding: Optional[str] = None, + content_type: Optional[str] = None, + **kwargs: Any, + ) -> None: + + if encoding is None: + if content_type is None: + real_encoding = "utf-8" + content_type = "text/plain; charset=utf-8" + else: + mimetype = parse_mimetype(content_type) + real_encoding = mimetype.parameters.get("charset", "utf-8") + else: + if content_type is None: + content_type = "text/plain; charset=%s" % encoding + real_encoding = encoding + + super().__init__( + value.encode(real_encoding), + encoding=real_encoding, + content_type=content_type, + *args, + **kwargs, + ) + + +class StringIOPayload(StringPayload): + def __init__(self, value: IO[str], *args: Any, **kwargs: Any) -> None: + super().__init__(value.read(), *args, **kwargs) + + +class IOBasePayload(Payload): + _value: IO[Any] + + def __init__( + self, value: IO[Any], disposition: str = "attachment", *args: Any, **kwargs: Any + ) -> None: + if "filename" not in kwargs: + kwargs["filename"] = guess_filename(value) + + super().__init__(value, *args, **kwargs) + + if self._filename is not None and disposition is not None: + if hdrs.CONTENT_DISPOSITION not in self.headers: + self.set_content_disposition(disposition, filename=self._filename) + + async def write(self, writer: AbstractStreamWriter) -> None: + loop = asyncio.get_event_loop() + try: + chunk = await loop.run_in_executor(None, self._value.read, 2**16) + while chunk: + await writer.write(chunk) + chunk = await loop.run_in_executor(None, self._value.read, 2**16) + finally: + await loop.run_in_executor(None, self._value.close) + + +class TextIOPayload(IOBasePayload): + _value: TextIO + + def __init__( + self, + value: TextIO, + *args: Any, + encoding: Optional[str] = None, + content_type: Optional[str] = None, + **kwargs: Any, + ) -> None: + + if encoding is None: + if content_type is None: + encoding = "utf-8" + content_type = "text/plain; charset=utf-8" + else: + mimetype = parse_mimetype(content_type) + encoding = mimetype.parameters.get("charset", "utf-8") + else: + if content_type is None: + content_type = "text/plain; charset=%s" % encoding + + super().__init__( + value, + content_type=content_type, + encoding=encoding, + *args, + **kwargs, + ) + + @property + def size(self) -> Optional[int]: + try: + return os.fstat(self._value.fileno()).st_size - self._value.tell() + except OSError: + return None + + async def write(self, writer: AbstractStreamWriter) -> None: + loop = asyncio.get_event_loop() + try: + chunk = await loop.run_in_executor(None, self._value.read, 2**16) + while chunk: + data = ( + chunk.encode(encoding=self._encoding) + if self._encoding + else chunk.encode() + ) + await writer.write(data) + chunk = await loop.run_in_executor(None, self._value.read, 2**16) + finally: + await loop.run_in_executor(None, self._value.close) + + +class BytesIOPayload(IOBasePayload): + @property + def size(self) -> int: + position = self._value.tell() + end = self._value.seek(0, os.SEEK_END) + self._value.seek(position) + return end - position + + +class BufferedReaderPayload(IOBasePayload): + @property + def size(self) -> Optional[int]: + try: + return os.fstat(self._value.fileno()).st_size - self._value.tell() + except OSError: + # data.fileno() is not supported, e.g. + # io.BufferedReader(io.BytesIO(b'data')) + return None + + +class JsonPayload(BytesPayload): + def __init__( + self, + value: Any, + encoding: str = "utf-8", + content_type: str = "application/json", + dumps: JSONEncoder = json.dumps, + *args: Any, + **kwargs: Any, + ) -> None: + + super().__init__( + dumps(value).encode(encoding), + content_type=content_type, + encoding=encoding, + *args, + **kwargs, + ) + + +if TYPE_CHECKING: + from typing import AsyncIterable, AsyncIterator + + _AsyncIterator = AsyncIterator[bytes] + _AsyncIterable = AsyncIterable[bytes] +else: + from collections.abc import AsyncIterable, AsyncIterator + + _AsyncIterator = AsyncIterator + _AsyncIterable = AsyncIterable + + +class AsyncIterablePayload(Payload): + + _iter: Optional[_AsyncIterator] = None + + def __init__(self, value: _AsyncIterable, *args: Any, **kwargs: Any) -> None: + if not isinstance(value, AsyncIterable): + raise TypeError( + "value argument must support " + "collections.abc.AsyncIterable interface, " + "got {!r}".format(type(value)) + ) + + if "content_type" not in kwargs: + kwargs["content_type"] = "application/octet-stream" + + super().__init__(value, *args, **kwargs) + + self._iter = value.__aiter__() + + async def write(self, writer: AbstractStreamWriter) -> None: + if self._iter: + try: + # iter is not None check prevents rare cases + # when the case iterable is used twice + while True: + chunk = await self._iter.__anext__() + await writer.write(chunk) + except StopAsyncIteration: + self._iter = None + + +class StreamReaderPayload(AsyncIterablePayload): + def __init__(self, value: StreamReader, *args: Any, **kwargs: Any) -> None: + super().__init__(value.iter_any(), *args, **kwargs) + + +PAYLOAD_REGISTRY = PayloadRegistry() +PAYLOAD_REGISTRY.register(BytesPayload, (bytes, bytearray, memoryview)) +PAYLOAD_REGISTRY.register(StringPayload, str) +PAYLOAD_REGISTRY.register(StringIOPayload, io.StringIO) +PAYLOAD_REGISTRY.register(TextIOPayload, io.TextIOBase) +PAYLOAD_REGISTRY.register(BytesIOPayload, io.BytesIO) +PAYLOAD_REGISTRY.register(BufferedReaderPayload, (io.BufferedReader, io.BufferedRandom)) +PAYLOAD_REGISTRY.register(IOBasePayload, io.IOBase) +PAYLOAD_REGISTRY.register(StreamReaderPayload, StreamReader) +# try_last for giving a chance to more specialized async interables like +# multidict.BodyPartReaderPayload override the default +PAYLOAD_REGISTRY.register(AsyncIterablePayload, AsyncIterable, order=Order.try_last) diff --git a/gtm/lib/python3.12/site-packages/aiohttp/payload_streamer.py b/gtm/lib/python3.12/site-packages/aiohttp/payload_streamer.py new file mode 100644 index 0000000000000000000000000000000000000000..364f763ae741e5bd99c57036493ae4a6f5709c5e --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/payload_streamer.py @@ -0,0 +1,75 @@ +""" +Payload implementation for coroutines as data provider. + +As a simple case, you can upload data from file:: + + @aiohttp.streamer + async def file_sender(writer, file_name=None): + with open(file_name, 'rb') as f: + chunk = f.read(2**16) + while chunk: + await writer.write(chunk) + + chunk = f.read(2**16) + +Then you can use `file_sender` like this: + + async with session.post('http://httpbin.org/post', + data=file_sender(file_name='huge_file')) as resp: + print(await resp.text()) + +..note:: Coroutine must accept `writer` as first argument + +""" + +import types +import warnings +from typing import Any, Awaitable, Callable, Dict, Tuple + +from .abc import AbstractStreamWriter +from .payload import Payload, payload_type + +__all__ = ("streamer",) + + +class _stream_wrapper: + def __init__( + self, + coro: Callable[..., Awaitable[None]], + args: Tuple[Any, ...], + kwargs: Dict[str, Any], + ) -> None: + self.coro = types.coroutine(coro) + self.args = args + self.kwargs = kwargs + + async def __call__(self, writer: AbstractStreamWriter) -> None: + await self.coro(writer, *self.args, **self.kwargs) + + +class streamer: + def __init__(self, coro: Callable[..., Awaitable[None]]) -> None: + warnings.warn( + "@streamer is deprecated, use async generators instead", + DeprecationWarning, + stacklevel=2, + ) + self.coro = coro + + def __call__(self, *args: Any, **kwargs: Any) -> _stream_wrapper: + return _stream_wrapper(self.coro, args, kwargs) + + +@payload_type(_stream_wrapper) +class StreamWrapperPayload(Payload): + async def write(self, writer: AbstractStreamWriter) -> None: + await self._value(writer) + + +@payload_type(streamer) +class StreamPayload(StreamWrapperPayload): + def __init__(self, value: Any, *args: Any, **kwargs: Any) -> None: + super().__init__(value(), *args, **kwargs) + + async def write(self, writer: AbstractStreamWriter) -> None: + await self._value(writer) diff --git a/gtm/lib/python3.12/site-packages/aiohttp/py.typed b/gtm/lib/python3.12/site-packages/aiohttp/py.typed new file mode 100644 index 0000000000000000000000000000000000000000..f5642f79f21d872f010979dcf6f0c4a415acc19d --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/py.typed @@ -0,0 +1 @@ +Marker diff --git a/gtm/lib/python3.12/site-packages/aiohttp/pytest_plugin.py b/gtm/lib/python3.12/site-packages/aiohttp/pytest_plugin.py new file mode 100644 index 0000000000000000000000000000000000000000..5754747bf48593d0030159fd6f2830c552b172a8 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/pytest_plugin.py @@ -0,0 +1,381 @@ +import asyncio +import contextlib +import warnings +from typing import Any, Awaitable, Callable, Dict, Iterator, Optional, Type, Union + +import pytest + +from aiohttp.helpers import isasyncgenfunction +from aiohttp.web import Application + +from .test_utils import ( + BaseTestServer, + RawTestServer, + TestClient, + TestServer, + loop_context, + setup_test_loop, + teardown_test_loop, + unused_port as _unused_port, +) + +try: + import uvloop +except ImportError: # pragma: no cover + uvloop = None # type: ignore[assignment] + +AiohttpClient = Callable[[Union[Application, BaseTestServer]], Awaitable[TestClient]] +AiohttpRawServer = Callable[[Application], Awaitable[RawTestServer]] +AiohttpServer = Callable[[Application], Awaitable[TestServer]] + + +def pytest_addoption(parser): # type: ignore[no-untyped-def] + parser.addoption( + "--aiohttp-fast", + action="store_true", + default=False, + help="run tests faster by disabling extra checks", + ) + parser.addoption( + "--aiohttp-loop", + action="store", + default="pyloop", + help="run tests with specific loop: pyloop, uvloop or all", + ) + parser.addoption( + "--aiohttp-enable-loop-debug", + action="store_true", + default=False, + help="enable event loop debug mode", + ) + + +def pytest_fixture_setup(fixturedef): # type: ignore[no-untyped-def] + """Set up pytest fixture. + + Allow fixtures to be coroutines. Run coroutine fixtures in an event loop. + """ + func = fixturedef.func + + if isasyncgenfunction(func): + # async generator fixture + is_async_gen = True + elif asyncio.iscoroutinefunction(func): + # regular async fixture + is_async_gen = False + else: + # not an async fixture, nothing to do + return + + strip_request = False + if "request" not in fixturedef.argnames: + fixturedef.argnames += ("request",) + strip_request = True + + def wrapper(*args, **kwargs): # type: ignore[no-untyped-def] + request = kwargs["request"] + if strip_request: + del kwargs["request"] + + # if neither the fixture nor the test use the 'loop' fixture, + # 'getfixturevalue' will fail because the test is not parameterized + # (this can be removed someday if 'loop' is no longer parameterized) + if "loop" not in request.fixturenames: + raise Exception( + "Asynchronous fixtures must depend on the 'loop' fixture or " + "be used in tests depending from it." + ) + + _loop = request.getfixturevalue("loop") + + if is_async_gen: + # for async generators, we need to advance the generator once, + # then advance it again in a finalizer + gen = func(*args, **kwargs) + + def finalizer(): # type: ignore[no-untyped-def] + try: + return _loop.run_until_complete(gen.__anext__()) + except StopAsyncIteration: + pass + + request.addfinalizer(finalizer) + return _loop.run_until_complete(gen.__anext__()) + else: + return _loop.run_until_complete(func(*args, **kwargs)) + + fixturedef.func = wrapper + + +@pytest.fixture +def fast(request): # type: ignore[no-untyped-def] + """--fast config option""" + return request.config.getoption("--aiohttp-fast") + + +@pytest.fixture +def loop_debug(request): # type: ignore[no-untyped-def] + """--enable-loop-debug config option""" + return request.config.getoption("--aiohttp-enable-loop-debug") + + +@contextlib.contextmanager +def _runtime_warning_context(): # type: ignore[no-untyped-def] + """Context manager which checks for RuntimeWarnings. + + This exists specifically to + avoid "coroutine 'X' was never awaited" warnings being missed. + + If RuntimeWarnings occur in the context a RuntimeError is raised. + """ + with warnings.catch_warnings(record=True) as _warnings: + yield + rw = [ + "{w.filename}:{w.lineno}:{w.message}".format(w=w) + for w in _warnings + if w.category == RuntimeWarning + ] + if rw: + raise RuntimeError( + "{} Runtime Warning{},\n{}".format( + len(rw), "" if len(rw) == 1 else "s", "\n".join(rw) + ) + ) + + +@contextlib.contextmanager +def _passthrough_loop_context(loop, fast=False): # type: ignore[no-untyped-def] + """Passthrough loop context. + + Sets up and tears down a loop unless one is passed in via the loop + argument when it's passed straight through. + """ + if loop: + # loop already exists, pass it straight through + yield loop + else: + # this shadows loop_context's standard behavior + loop = setup_test_loop() + yield loop + teardown_test_loop(loop, fast=fast) + + +def pytest_pycollect_makeitem(collector, name, obj): # type: ignore[no-untyped-def] + """Fix pytest collecting for coroutines.""" + if collector.funcnamefilter(name) and asyncio.iscoroutinefunction(obj): + return list(collector._genfunctions(name, obj)) + + +def pytest_pyfunc_call(pyfuncitem): # type: ignore[no-untyped-def] + """Run coroutines in an event loop instead of a normal function call.""" + fast = pyfuncitem.config.getoption("--aiohttp-fast") + if asyncio.iscoroutinefunction(pyfuncitem.function): + existing_loop = pyfuncitem.funcargs.get( + "proactor_loop" + ) or pyfuncitem.funcargs.get("loop", None) + with _runtime_warning_context(): + with _passthrough_loop_context(existing_loop, fast=fast) as _loop: + testargs = { + arg: pyfuncitem.funcargs[arg] + for arg in pyfuncitem._fixtureinfo.argnames + } + _loop.run_until_complete(pyfuncitem.obj(**testargs)) + + return True + + +def pytest_generate_tests(metafunc): # type: ignore[no-untyped-def] + if "loop_factory" not in metafunc.fixturenames: + return + + loops = metafunc.config.option.aiohttp_loop + avail_factories: Dict[str, Type[asyncio.AbstractEventLoopPolicy]] + avail_factories = {"pyloop": asyncio.DefaultEventLoopPolicy} + + if uvloop is not None: # pragma: no cover + avail_factories["uvloop"] = uvloop.EventLoopPolicy + + if loops == "all": + loops = "pyloop,uvloop?" + + factories = {} # type: ignore[var-annotated] + for name in loops.split(","): + required = not name.endswith("?") + name = name.strip(" ?") + if name not in avail_factories: # pragma: no cover + if required: + raise ValueError( + "Unknown loop '%s', available loops: %s" + % (name, list(factories.keys())) + ) + else: + continue + factories[name] = avail_factories[name] + metafunc.parametrize( + "loop_factory", list(factories.values()), ids=list(factories.keys()) + ) + + +@pytest.fixture +def loop(loop_factory, fast, loop_debug): # type: ignore[no-untyped-def] + """Return an instance of the event loop.""" + policy = loop_factory() + asyncio.set_event_loop_policy(policy) + with loop_context(fast=fast) as _loop: + if loop_debug: + _loop.set_debug(True) # pragma: no cover + asyncio.set_event_loop(_loop) + yield _loop + + +@pytest.fixture +def proactor_loop(): # type: ignore[no-untyped-def] + policy = asyncio.WindowsProactorEventLoopPolicy() # type: ignore[attr-defined] + asyncio.set_event_loop_policy(policy) + + with loop_context(policy.new_event_loop) as _loop: + asyncio.set_event_loop(_loop) + yield _loop + + +@pytest.fixture +def unused_port(aiohttp_unused_port: Callable[[], int]) -> Callable[[], int]: + warnings.warn( + "Deprecated, use aiohttp_unused_port fixture instead", + DeprecationWarning, + stacklevel=2, + ) + return aiohttp_unused_port + + +@pytest.fixture +def aiohttp_unused_port() -> Callable[[], int]: + """Return a port that is unused on the current host.""" + return _unused_port + + +@pytest.fixture +def aiohttp_server(loop: asyncio.AbstractEventLoop) -> Iterator[AiohttpServer]: + """Factory to create a TestServer instance, given an app. + + aiohttp_server(app, **kwargs) + """ + servers = [] + + async def go(app, *, port=None, **kwargs): # type: ignore[no-untyped-def] + server = TestServer(app, port=port) + await server.start_server(loop=loop, **kwargs) + servers.append(server) + return server + + yield go + + async def finalize() -> None: + while servers: + await servers.pop().close() + + loop.run_until_complete(finalize()) + + +@pytest.fixture +def test_server(aiohttp_server): # type: ignore[no-untyped-def] # pragma: no cover + warnings.warn( + "Deprecated, use aiohttp_server fixture instead", + DeprecationWarning, + stacklevel=2, + ) + return aiohttp_server + + +@pytest.fixture +def aiohttp_raw_server(loop: asyncio.AbstractEventLoop) -> Iterator[AiohttpRawServer]: + """Factory to create a RawTestServer instance, given a web handler. + + aiohttp_raw_server(handler, **kwargs) + """ + servers = [] + + async def go(handler, *, port=None, **kwargs): # type: ignore[no-untyped-def] + server = RawTestServer(handler, port=port) + await server.start_server(loop=loop, **kwargs) + servers.append(server) + return server + + yield go + + async def finalize() -> None: + while servers: + await servers.pop().close() + + loop.run_until_complete(finalize()) + + +@pytest.fixture +def raw_test_server( # type: ignore[no-untyped-def] # pragma: no cover + aiohttp_raw_server, +): + warnings.warn( + "Deprecated, use aiohttp_raw_server fixture instead", + DeprecationWarning, + stacklevel=2, + ) + return aiohttp_raw_server + + +@pytest.fixture +def aiohttp_client( + loop: asyncio.AbstractEventLoop, +) -> Iterator[AiohttpClient]: + """Factory to create a TestClient instance. + + aiohttp_client(app, **kwargs) + aiohttp_client(server, **kwargs) + aiohttp_client(raw_server, **kwargs) + """ + clients = [] + + async def go( + __param: Union[Application, BaseTestServer], + *args: Any, + server_kwargs: Optional[Dict[str, Any]] = None, + **kwargs: Any + ) -> TestClient: + + if isinstance(__param, Callable) and not isinstance( # type: ignore[arg-type] + __param, (Application, BaseTestServer) + ): + __param = __param(loop, *args, **kwargs) + kwargs = {} + else: + assert not args, "args should be empty" + + if isinstance(__param, Application): + server_kwargs = server_kwargs or {} + server = TestServer(__param, loop=loop, **server_kwargs) + client = TestClient(server, loop=loop, **kwargs) + elif isinstance(__param, BaseTestServer): + client = TestClient(__param, loop=loop, **kwargs) + else: + raise ValueError("Unknown argument type: %r" % type(__param)) + + await client.start_server() + clients.append(client) + return client + + yield go + + async def finalize() -> None: + while clients: + await clients.pop().close() + + loop.run_until_complete(finalize()) + + +@pytest.fixture +def test_client(aiohttp_client): # type: ignore[no-untyped-def] # pragma: no cover + warnings.warn( + "Deprecated, use aiohttp_client fixture instead", + DeprecationWarning, + stacklevel=2, + ) + return aiohttp_client diff --git a/gtm/lib/python3.12/site-packages/aiohttp/resolver.py b/gtm/lib/python3.12/site-packages/aiohttp/resolver.py new file mode 100644 index 0000000000000000000000000000000000000000..6c17b1e7e890c819bf7e172bb2eb4775f6469154 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/resolver.py @@ -0,0 +1,160 @@ +import asyncio +import socket +from typing import Any, Dict, List, Optional, Type, Union + +from .abc import AbstractResolver +from .helpers import get_running_loop + +__all__ = ("ThreadedResolver", "AsyncResolver", "DefaultResolver") + +try: + import aiodns + + # aiodns_default = hasattr(aiodns.DNSResolver, 'gethostbyname') +except ImportError: # pragma: no cover + aiodns = None + +aiodns_default = False + + +class ThreadedResolver(AbstractResolver): + """Threaded resolver. + + Uses an Executor for synchronous getaddrinfo() calls. + concurrent.futures.ThreadPoolExecutor is used by default. + """ + + def __init__(self, loop: Optional[asyncio.AbstractEventLoop] = None) -> None: + self._loop = get_running_loop(loop) + + async def resolve( + self, hostname: str, port: int = 0, family: int = socket.AF_INET + ) -> List[Dict[str, Any]]: + infos = await self._loop.getaddrinfo( + hostname, + port, + type=socket.SOCK_STREAM, + family=family, + flags=socket.AI_ADDRCONFIG, + ) + + hosts = [] + for family, _, proto, _, address in infos: + if family == socket.AF_INET6: + if len(address) < 3: + # IPv6 is not supported by Python build, + # or IPv6 is not enabled in the host + continue + if address[3]: + # This is essential for link-local IPv6 addresses. + # LL IPv6 is a VERY rare case. Strictly speaking, we should use + # getnameinfo() unconditionally, but performance makes sense. + host, _port = socket.getnameinfo( + address, socket.NI_NUMERICHOST | socket.NI_NUMERICSERV + ) + port = int(_port) + else: + host, port = address[:2] + else: # IPv4 + assert family == socket.AF_INET + host, port = address # type: ignore[misc] + hosts.append( + { + "hostname": hostname, + "host": host, + "port": port, + "family": family, + "proto": proto, + "flags": socket.AI_NUMERICHOST | socket.AI_NUMERICSERV, + } + ) + + return hosts + + async def close(self) -> None: + pass + + +class AsyncResolver(AbstractResolver): + """Use the `aiodns` package to make asynchronous DNS lookups""" + + def __init__( + self, + loop: Optional[asyncio.AbstractEventLoop] = None, + *args: Any, + **kwargs: Any + ) -> None: + if aiodns is None: + raise RuntimeError("Resolver requires aiodns library") + + self._loop = get_running_loop(loop) + self._resolver = aiodns.DNSResolver(*args, loop=loop, **kwargs) + + if not hasattr(self._resolver, "gethostbyname"): + # aiodns 1.1 is not available, fallback to DNSResolver.query + self.resolve = self._resolve_with_query # type: ignore + + async def resolve( + self, host: str, port: int = 0, family: int = socket.AF_INET + ) -> List[Dict[str, Any]]: + try: + resp = await self._resolver.gethostbyname(host, family) + except aiodns.error.DNSError as exc: + msg = exc.args[1] if len(exc.args) >= 1 else "DNS lookup failed" + raise OSError(msg) from exc + hosts = [] + for address in resp.addresses: + hosts.append( + { + "hostname": host, + "host": address, + "port": port, + "family": family, + "proto": 0, + "flags": socket.AI_NUMERICHOST | socket.AI_NUMERICSERV, + } + ) + + if not hosts: + raise OSError("DNS lookup failed") + + return hosts + + async def _resolve_with_query( + self, host: str, port: int = 0, family: int = socket.AF_INET + ) -> List[Dict[str, Any]]: + if family == socket.AF_INET6: + qtype = "AAAA" + else: + qtype = "A" + + try: + resp = await self._resolver.query(host, qtype) + except aiodns.error.DNSError as exc: + msg = exc.args[1] if len(exc.args) >= 1 else "DNS lookup failed" + raise OSError(msg) from exc + + hosts = [] + for rr in resp: + hosts.append( + { + "hostname": host, + "host": rr.host, + "port": port, + "family": family, + "proto": 0, + "flags": socket.AI_NUMERICHOST, + } + ) + + if not hosts: + raise OSError("DNS lookup failed") + + return hosts + + async def close(self) -> None: + self._resolver.cancel() + + +_DefaultType = Type[Union[AsyncResolver, ThreadedResolver]] +DefaultResolver: _DefaultType = AsyncResolver if aiodns_default else ThreadedResolver diff --git a/gtm/lib/python3.12/site-packages/aiohttp/streams.py b/gtm/lib/python3.12/site-packages/aiohttp/streams.py new file mode 100644 index 0000000000000000000000000000000000000000..3e4c355b5cb99862d5fba38fc6fb43e755925635 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/streams.py @@ -0,0 +1,666 @@ +import asyncio +import collections +import warnings +from typing import ( + Awaitable, + Callable, + Deque, + Final, + Generic, + List, + Optional, + Tuple, + TypeVar, +) + +from .base_protocol import BaseProtocol +from .helpers import BaseTimerContext, TimerNoop, set_exception, set_result +from .log import internal_logger + +__all__ = ( + "EMPTY_PAYLOAD", + "EofStream", + "StreamReader", + "DataQueue", + "FlowControlDataQueue", +) + +_T = TypeVar("_T") + + +class EofStream(Exception): + """eof stream indication.""" + + +class AsyncStreamIterator(Generic[_T]): + def __init__(self, read_func: Callable[[], Awaitable[_T]]) -> None: + self.read_func = read_func + + def __aiter__(self) -> "AsyncStreamIterator[_T]": + return self + + async def __anext__(self) -> _T: + try: + rv = await self.read_func() + except EofStream: + raise StopAsyncIteration + if rv == b"": + raise StopAsyncIteration + return rv + + +class ChunkTupleAsyncStreamIterator: + def __init__(self, stream: "StreamReader") -> None: + self._stream = stream + + def __aiter__(self) -> "ChunkTupleAsyncStreamIterator": + return self + + async def __anext__(self) -> Tuple[bytes, bool]: + rv = await self._stream.readchunk() + if rv == (b"", False): + raise StopAsyncIteration + return rv + + +class AsyncStreamReaderMixin: + def __aiter__(self) -> AsyncStreamIterator[bytes]: + return AsyncStreamIterator(self.readline) # type: ignore[attr-defined] + + def iter_chunked(self, n: int) -> AsyncStreamIterator[bytes]: + """Returns an asynchronous iterator that yields chunks of size n.""" + return AsyncStreamIterator(lambda: self.read(n)) # type: ignore[attr-defined] + + def iter_any(self) -> AsyncStreamIterator[bytes]: + """Yield all available data as soon as it is received.""" + return AsyncStreamIterator(self.readany) # type: ignore[attr-defined] + + def iter_chunks(self) -> ChunkTupleAsyncStreamIterator: + """Yield chunks of data as they are received by the server. + + The yielded objects are tuples + of (bytes, bool) as returned by the StreamReader.readchunk method. + """ + return ChunkTupleAsyncStreamIterator(self) # type: ignore[arg-type] + + +class StreamReader(AsyncStreamReaderMixin): + """An enhancement of asyncio.StreamReader. + + Supports asynchronous iteration by line, chunk or as available:: + + async for line in reader: + ... + async for chunk in reader.iter_chunked(1024): + ... + async for slice in reader.iter_any(): + ... + + """ + + total_bytes = 0 + + def __init__( + self, + protocol: BaseProtocol, + limit: int, + *, + timer: Optional[BaseTimerContext] = None, + loop: Optional[asyncio.AbstractEventLoop] = None, + ) -> None: + self._protocol = protocol + self._low_water = limit + self._high_water = limit * 2 + if loop is None: + loop = asyncio.get_event_loop() + self._loop = loop + self._size = 0 + self._cursor = 0 + self._http_chunk_splits: Optional[List[int]] = None + self._buffer: Deque[bytes] = collections.deque() + self._buffer_offset = 0 + self._eof = False + self._waiter: Optional[asyncio.Future[None]] = None + self._eof_waiter: Optional[asyncio.Future[None]] = None + self._exception: Optional[BaseException] = None + self._timer = TimerNoop() if timer is None else timer + self._eof_callbacks: List[Callable[[], None]] = [] + + def __repr__(self) -> str: + info = [self.__class__.__name__] + if self._size: + info.append("%d bytes" % self._size) + if self._eof: + info.append("eof") + if self._low_water != 2**16: # default limit + info.append("low=%d high=%d" % (self._low_water, self._high_water)) + if self._waiter: + info.append("w=%r" % self._waiter) + if self._exception: + info.append("e=%r" % self._exception) + return "<%s>" % " ".join(info) + + def get_read_buffer_limits(self) -> Tuple[int, int]: + return (self._low_water, self._high_water) + + def exception(self) -> Optional[BaseException]: + return self._exception + + def set_exception(self, exc: BaseException) -> None: + self._exception = exc + self._eof_callbacks.clear() + + waiter = self._waiter + if waiter is not None: + self._waiter = None + set_exception(waiter, exc) + + waiter = self._eof_waiter + if waiter is not None: + self._eof_waiter = None + set_exception(waiter, exc) + + def on_eof(self, callback: Callable[[], None]) -> None: + if self._eof: + try: + callback() + except Exception: + internal_logger.exception("Exception in eof callback") + else: + self._eof_callbacks.append(callback) + + def feed_eof(self) -> None: + self._eof = True + + waiter = self._waiter + if waiter is not None: + self._waiter = None + set_result(waiter, None) + + waiter = self._eof_waiter + if waiter is not None: + self._eof_waiter = None + set_result(waiter, None) + + for cb in self._eof_callbacks: + try: + cb() + except Exception: + internal_logger.exception("Exception in eof callback") + + self._eof_callbacks.clear() + + def is_eof(self) -> bool: + """Return True if 'feed_eof' was called.""" + return self._eof + + def at_eof(self) -> bool: + """Return True if the buffer is empty and 'feed_eof' was called.""" + return self._eof and not self._buffer + + async def wait_eof(self) -> None: + if self._eof: + return + + assert self._eof_waiter is None + self._eof_waiter = self._loop.create_future() + try: + await self._eof_waiter + finally: + self._eof_waiter = None + + def unread_data(self, data: bytes) -> None: + """rollback reading some data from stream, inserting it to buffer head.""" + warnings.warn( + "unread_data() is deprecated " + "and will be removed in future releases (#3260)", + DeprecationWarning, + stacklevel=2, + ) + if not data: + return + + if self._buffer_offset: + self._buffer[0] = self._buffer[0][self._buffer_offset :] + self._buffer_offset = 0 + self._size += len(data) + self._cursor -= len(data) + self._buffer.appendleft(data) + self._eof_counter = 0 + + # TODO: size is ignored, remove the param later + def feed_data(self, data: bytes, size: int = 0) -> None: + assert not self._eof, "feed_data after feed_eof" + + if not data: + return + + self._size += len(data) + self._buffer.append(data) + self.total_bytes += len(data) + + waiter = self._waiter + if waiter is not None: + self._waiter = None + set_result(waiter, None) + + if self._size > self._high_water and not self._protocol._reading_paused: + self._protocol.pause_reading() + + def begin_http_chunk_receiving(self) -> None: + if self._http_chunk_splits is None: + if self.total_bytes: + raise RuntimeError( + "Called begin_http_chunk_receiving when" "some data was already fed" + ) + self._http_chunk_splits = [] + + def end_http_chunk_receiving(self) -> None: + if self._http_chunk_splits is None: + raise RuntimeError( + "Called end_chunk_receiving without calling " + "begin_chunk_receiving first" + ) + + # self._http_chunk_splits contains logical byte offsets from start of + # the body transfer. Each offset is the offset of the end of a chunk. + # "Logical" means bytes, accessible for a user. + # If no chunks containing logical data were received, current position + # is difinitely zero. + pos = self._http_chunk_splits[-1] if self._http_chunk_splits else 0 + + if self.total_bytes == pos: + # We should not add empty chunks here. So we check for that. + # Note, when chunked + gzip is used, we can receive a chunk + # of compressed data, but that data may not be enough for gzip FSM + # to yield any uncompressed data. That's why current position may + # not change after receiving a chunk. + return + + self._http_chunk_splits.append(self.total_bytes) + + # wake up readchunk when end of http chunk received + waiter = self._waiter + if waiter is not None: + self._waiter = None + set_result(waiter, None) + + async def _wait(self, func_name: str) -> None: + # StreamReader uses a future to link the protocol feed_data() method + # to a read coroutine. Running two read coroutines at the same time + # would have an unexpected behaviour. It would not possible to know + # which coroutine would get the next data. + if self._waiter is not None: + raise RuntimeError( + "%s() called while another coroutine is " + "already waiting for incoming data" % func_name + ) + + waiter = self._waiter = self._loop.create_future() + try: + with self._timer: + await waiter + finally: + self._waiter = None + + async def readline(self) -> bytes: + return await self.readuntil() + + async def readuntil(self, separator: bytes = b"\n") -> bytes: + seplen = len(separator) + if seplen == 0: + raise ValueError("Separator should be at least one-byte string") + + if self._exception is not None: + raise self._exception + + chunk = b"" + chunk_size = 0 + not_enough = True + + while not_enough: + while self._buffer and not_enough: + offset = self._buffer_offset + ichar = self._buffer[0].find(separator, offset) + 1 + # Read from current offset to found separator or to the end. + data = self._read_nowait_chunk( + ichar - offset + seplen - 1 if ichar else -1 + ) + chunk += data + chunk_size += len(data) + if ichar: + not_enough = False + + if chunk_size > self._high_water: + raise ValueError("Chunk too big") + + if self._eof: + break + + if not_enough: + await self._wait("readuntil") + + return chunk + + async def read(self, n: int = -1) -> bytes: + if self._exception is not None: + raise self._exception + + # migration problem; with DataQueue you have to catch + # EofStream exception, so common way is to run payload.read() inside + # infinite loop. what can cause real infinite loop with StreamReader + # lets keep this code one major release. + if __debug__: + if self._eof and not self._buffer: + self._eof_counter = getattr(self, "_eof_counter", 0) + 1 + if self._eof_counter > 5: + internal_logger.warning( + "Multiple access to StreamReader in eof state, " + "might be infinite loop.", + stack_info=True, + ) + + if not n: + return b"" + + if n < 0: + # This used to just loop creating a new waiter hoping to + # collect everything in self._buffer, but that would + # deadlock if the subprocess sends more than self.limit + # bytes. So just call self.readany() until EOF. + blocks = [] + while True: + block = await self.readany() + if not block: + break + blocks.append(block) + return b"".join(blocks) + + # TODO: should be `if` instead of `while` + # because waiter maybe triggered on chunk end, + # without feeding any data + while not self._buffer and not self._eof: + await self._wait("read") + + return self._read_nowait(n) + + async def readany(self) -> bytes: + if self._exception is not None: + raise self._exception + + # TODO: should be `if` instead of `while` + # because waiter maybe triggered on chunk end, + # without feeding any data + while not self._buffer and not self._eof: + await self._wait("readany") + + return self._read_nowait(-1) + + async def readchunk(self) -> Tuple[bytes, bool]: + """Returns a tuple of (data, end_of_http_chunk). + + When chunked transfer + encoding is used, end_of_http_chunk is a boolean indicating if the end + of the data corresponds to the end of a HTTP chunk , otherwise it is + always False. + """ + while True: + if self._exception is not None: + raise self._exception + + while self._http_chunk_splits: + pos = self._http_chunk_splits.pop(0) + if pos == self._cursor: + return (b"", True) + if pos > self._cursor: + return (self._read_nowait(pos - self._cursor), True) + internal_logger.warning( + "Skipping HTTP chunk end due to data " + "consumption beyond chunk boundary" + ) + + if self._buffer: + return (self._read_nowait_chunk(-1), False) + # return (self._read_nowait(-1), False) + + if self._eof: + # Special case for signifying EOF. + # (b'', True) is not a final return value actually. + return (b"", False) + + await self._wait("readchunk") + + async def readexactly(self, n: int) -> bytes: + if self._exception is not None: + raise self._exception + + blocks: List[bytes] = [] + while n > 0: + block = await self.read(n) + if not block: + partial = b"".join(blocks) + raise asyncio.IncompleteReadError(partial, len(partial) + n) + blocks.append(block) + n -= len(block) + + return b"".join(blocks) + + def read_nowait(self, n: int = -1) -> bytes: + # default was changed to be consistent with .read(-1) + # + # I believe the most users don't know about the method and + # they are not affected. + if self._exception is not None: + raise self._exception + + if self._waiter and not self._waiter.done(): + raise RuntimeError( + "Called while some coroutine is waiting for incoming data." + ) + + return self._read_nowait(n) + + def _read_nowait_chunk(self, n: int) -> bytes: + first_buffer = self._buffer[0] + offset = self._buffer_offset + if n != -1 and len(first_buffer) - offset > n: + data = first_buffer[offset : offset + n] + self._buffer_offset += n + + elif offset: + self._buffer.popleft() + data = first_buffer[offset:] + self._buffer_offset = 0 + + else: + data = self._buffer.popleft() + + self._size -= len(data) + self._cursor += len(data) + + chunk_splits = self._http_chunk_splits + # Prevent memory leak: drop useless chunk splits + while chunk_splits and chunk_splits[0] < self._cursor: + chunk_splits.pop(0) + + if self._size < self._low_water and self._protocol._reading_paused: + self._protocol.resume_reading() + return data + + def _read_nowait(self, n: int) -> bytes: + """Read not more than n bytes, or whole buffer if n == -1""" + self._timer.assert_timeout() + + chunks = [] + while self._buffer: + chunk = self._read_nowait_chunk(n) + chunks.append(chunk) + if n != -1: + n -= len(chunk) + if n == 0: + break + + return b"".join(chunks) if chunks else b"" + + +class EmptyStreamReader(StreamReader): # lgtm [py/missing-call-to-init] + def __init__(self) -> None: + self._read_eof_chunk = False + + def __repr__(self) -> str: + return "<%s>" % self.__class__.__name__ + + def exception(self) -> Optional[BaseException]: + return None + + def set_exception(self, exc: BaseException) -> None: + pass + + def on_eof(self, callback: Callable[[], None]) -> None: + try: + callback() + except Exception: + internal_logger.exception("Exception in eof callback") + + def feed_eof(self) -> None: + pass + + def is_eof(self) -> bool: + return True + + def at_eof(self) -> bool: + return True + + async def wait_eof(self) -> None: + return + + def feed_data(self, data: bytes, n: int = 0) -> None: + pass + + async def readline(self) -> bytes: + return b"" + + async def read(self, n: int = -1) -> bytes: + return b"" + + # TODO add async def readuntil + + async def readany(self) -> bytes: + return b"" + + async def readchunk(self) -> Tuple[bytes, bool]: + if not self._read_eof_chunk: + self._read_eof_chunk = True + return (b"", False) + + return (b"", True) + + async def readexactly(self, n: int) -> bytes: + raise asyncio.IncompleteReadError(b"", n) + + def read_nowait(self, n: int = -1) -> bytes: + return b"" + + +EMPTY_PAYLOAD: Final[StreamReader] = EmptyStreamReader() + + +class DataQueue(Generic[_T]): + """DataQueue is a general-purpose blocking queue with one reader.""" + + def __init__(self, loop: asyncio.AbstractEventLoop) -> None: + self._loop = loop + self._eof = False + self._waiter: Optional[asyncio.Future[None]] = None + self._exception: Optional[BaseException] = None + self._size = 0 + self._buffer: Deque[Tuple[_T, int]] = collections.deque() + + def __len__(self) -> int: + return len(self._buffer) + + def is_eof(self) -> bool: + return self._eof + + def at_eof(self) -> bool: + return self._eof and not self._buffer + + def exception(self) -> Optional[BaseException]: + return self._exception + + def set_exception(self, exc: BaseException) -> None: + self._eof = True + self._exception = exc + + waiter = self._waiter + if waiter is not None: + self._waiter = None + set_exception(waiter, exc) + + def feed_data(self, data: _T, size: int = 0) -> None: + self._size += size + self._buffer.append((data, size)) + + waiter = self._waiter + if waiter is not None: + self._waiter = None + set_result(waiter, None) + + def feed_eof(self) -> None: + self._eof = True + + waiter = self._waiter + if waiter is not None: + self._waiter = None + set_result(waiter, None) + + async def read(self) -> _T: + if not self._buffer and not self._eof: + assert not self._waiter + self._waiter = self._loop.create_future() + try: + await self._waiter + except (asyncio.CancelledError, asyncio.TimeoutError): + self._waiter = None + raise + + if self._buffer: + data, size = self._buffer.popleft() + self._size -= size + return data + else: + if self._exception is not None: + raise self._exception + else: + raise EofStream + + def __aiter__(self) -> AsyncStreamIterator[_T]: + return AsyncStreamIterator(self.read) + + +class FlowControlDataQueue(DataQueue[_T]): + """FlowControlDataQueue resumes and pauses an underlying stream. + + It is a destination for parsed data. + """ + + def __init__( + self, protocol: BaseProtocol, limit: int, *, loop: asyncio.AbstractEventLoop + ) -> None: + super().__init__(loop=loop) + + self._protocol = protocol + self._limit = limit * 2 + + def feed_data(self, data: _T, size: int = 0) -> None: + super().feed_data(data, size) + + if self._size > self._limit and not self._protocol._reading_paused: + self._protocol.pause_reading() + + async def read(self) -> _T: + try: + return await super().read() + finally: + if self._size < self._limit and self._protocol._reading_paused: + self._protocol.resume_reading() diff --git a/gtm/lib/python3.12/site-packages/aiohttp/tcp_helpers.py b/gtm/lib/python3.12/site-packages/aiohttp/tcp_helpers.py new file mode 100644 index 0000000000000000000000000000000000000000..88b244223741ad2decb6cb612eae644fae88b2b2 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/tcp_helpers.py @@ -0,0 +1,37 @@ +"""Helper methods to tune a TCP connection""" + +import asyncio +import socket +from contextlib import suppress +from typing import Optional # noqa + +__all__ = ("tcp_keepalive", "tcp_nodelay") + + +if hasattr(socket, "SO_KEEPALIVE"): + + def tcp_keepalive(transport: asyncio.Transport) -> None: + sock = transport.get_extra_info("socket") + if sock is not None: + sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) + +else: + + def tcp_keepalive(transport: asyncio.Transport) -> None: # pragma: no cover + pass + + +def tcp_nodelay(transport: asyncio.Transport, value: bool) -> None: + sock = transport.get_extra_info("socket") + + if sock is None: + return + + if sock.family not in (socket.AF_INET, socket.AF_INET6): + return + + value = bool(value) + + # socket may be closed already, on windows OSError get raised + with suppress(OSError): + sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, value) diff --git a/gtm/lib/python3.12/site-packages/aiohttp/test_utils.py b/gtm/lib/python3.12/site-packages/aiohttp/test_utils.py new file mode 100644 index 0000000000000000000000000000000000000000..b5821a7fb84ec27cd4862053115dbb67f86a1194 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/test_utils.py @@ -0,0 +1,675 @@ +"""Utilities shared by tests.""" + +import asyncio +import contextlib +import gc +import inspect +import ipaddress +import os +import socket +import sys +import warnings +from abc import ABC, abstractmethod +from types import TracebackType +from typing import ( + TYPE_CHECKING, + Any, + Callable, + Iterator, + List, + Optional, + Type, + Union, + cast, +) +from unittest import IsolatedAsyncioTestCase, mock + +from aiosignal import Signal +from multidict import CIMultiDict, CIMultiDictProxy +from yarl import URL + +import aiohttp +from aiohttp.client import _RequestContextManager, _WSRequestContextManager + +from . import ClientSession, hdrs +from .abc import AbstractCookieJar +from .client_reqrep import ClientResponse +from .client_ws import ClientWebSocketResponse +from .helpers import sentinel +from .http import HttpVersion, RawRequestMessage +from .typedefs import StrOrURL +from .web import ( + Application, + AppRunner, + BaseRunner, + Request, + Server, + ServerRunner, + SockSite, + UrlMappingMatchInfo, +) +from .web_protocol import _RequestHandler + +if TYPE_CHECKING: + from ssl import SSLContext +else: + SSLContext = None + +REUSE_ADDRESS = os.name == "posix" and sys.platform != "cygwin" + + +def get_unused_port_socket( + host: str, family: socket.AddressFamily = socket.AF_INET +) -> socket.socket: + return get_port_socket(host, 0, family) + + +def get_port_socket( + host: str, port: int, family: socket.AddressFamily +) -> socket.socket: + s = socket.socket(family, socket.SOCK_STREAM) + if REUSE_ADDRESS: + # Windows has different semantics for SO_REUSEADDR, + # so don't set it. Ref: + # https://docs.microsoft.com/en-us/windows/win32/winsock/using-so-reuseaddr-and-so-exclusiveaddruse + s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + s.bind((host, port)) + return s + + +def unused_port() -> int: + """Return a port that is unused on the current host.""" + with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: + s.bind(("127.0.0.1", 0)) + return cast(int, s.getsockname()[1]) + + +class BaseTestServer(ABC): + __test__ = False + + def __init__( + self, + *, + scheme: Union[str, object] = sentinel, + loop: Optional[asyncio.AbstractEventLoop] = None, + host: str = "127.0.0.1", + port: Optional[int] = None, + skip_url_asserts: bool = False, + socket_factory: Callable[ + [str, int, socket.AddressFamily], socket.socket + ] = get_port_socket, + **kwargs: Any, + ) -> None: + self._loop = loop + self.runner: Optional[BaseRunner] = None + self._root: Optional[URL] = None + self.host = host + self.port = port + self._closed = False + self.scheme = scheme + self.skip_url_asserts = skip_url_asserts + self.socket_factory = socket_factory + + async def start_server( + self, loop: Optional[asyncio.AbstractEventLoop] = None, **kwargs: Any + ) -> None: + if self.runner: + return + self._loop = loop + self._ssl = kwargs.pop("ssl", None) + self.runner = await self._make_runner(handler_cancellation=True, **kwargs) + await self.runner.setup() + if not self.port: + self.port = 0 + try: + version = ipaddress.ip_address(self.host).version + except ValueError: + version = 4 + family = socket.AF_INET6 if version == 6 else socket.AF_INET + _sock = self.socket_factory(self.host, self.port, family) + self.host, self.port = _sock.getsockname()[:2] + site = SockSite(self.runner, sock=_sock, ssl_context=self._ssl) + await site.start() + server = site._server + assert server is not None + sockets = server.sockets # type: ignore[attr-defined] + assert sockets is not None + self.port = sockets[0].getsockname()[1] + if self.scheme is sentinel: + if self._ssl: + scheme = "https" + else: + scheme = "http" + self.scheme = scheme + self._root = URL(f"{self.scheme}://{self.host}:{self.port}") + + @abstractmethod # pragma: no cover + async def _make_runner(self, **kwargs: Any) -> BaseRunner: + pass + + def make_url(self, path: StrOrURL) -> URL: + assert self._root is not None + url = URL(path) + if not self.skip_url_asserts: + assert not url.is_absolute() + return self._root.join(url) + else: + return URL(str(self._root) + str(path)) + + @property + def started(self) -> bool: + return self.runner is not None + + @property + def closed(self) -> bool: + return self._closed + + @property + def handler(self) -> Server: + # for backward compatibility + # web.Server instance + runner = self.runner + assert runner is not None + assert runner.server is not None + return runner.server + + async def close(self) -> None: + """Close all fixtures created by the test client. + + After that point, the TestClient is no longer usable. + + This is an idempotent function: running close multiple times + will not have any additional effects. + + close is also run when the object is garbage collected, and on + exit when used as a context manager. + + """ + if self.started and not self.closed: + assert self.runner is not None + await self.runner.cleanup() + self._root = None + self.port = None + self._closed = True + + def __enter__(self) -> None: + raise TypeError("Use async with instead") + + def __exit__( + self, + exc_type: Optional[Type[BaseException]], + exc_value: Optional[BaseException], + traceback: Optional[TracebackType], + ) -> None: + # __exit__ should exist in pair with __enter__ but never executed + pass # pragma: no cover + + async def __aenter__(self) -> "BaseTestServer": + await self.start_server(loop=self._loop) + return self + + async def __aexit__( + self, + exc_type: Optional[Type[BaseException]], + exc_value: Optional[BaseException], + traceback: Optional[TracebackType], + ) -> None: + await self.close() + + +class TestServer(BaseTestServer): + def __init__( + self, + app: Application, + *, + scheme: Union[str, object] = sentinel, + host: str = "127.0.0.1", + port: Optional[int] = None, + **kwargs: Any, + ): + self.app = app + super().__init__(scheme=scheme, host=host, port=port, **kwargs) + + async def _make_runner(self, **kwargs: Any) -> BaseRunner: + return AppRunner(self.app, **kwargs) + + +class RawTestServer(BaseTestServer): + def __init__( + self, + handler: _RequestHandler, + *, + scheme: Union[str, object] = sentinel, + host: str = "127.0.0.1", + port: Optional[int] = None, + **kwargs: Any, + ) -> None: + self._handler = handler + super().__init__(scheme=scheme, host=host, port=port, **kwargs) + + async def _make_runner(self, debug: bool = True, **kwargs: Any) -> ServerRunner: + srv = Server(self._handler, loop=self._loop, debug=debug, **kwargs) + return ServerRunner(srv, debug=debug, **kwargs) + + +class TestClient: + """ + A test client implementation. + + To write functional tests for aiohttp based servers. + + """ + + __test__ = False + + def __init__( + self, + server: BaseTestServer, + *, + cookie_jar: Optional[AbstractCookieJar] = None, + loop: Optional[asyncio.AbstractEventLoop] = None, + **kwargs: Any, + ) -> None: + if not isinstance(server, BaseTestServer): + raise TypeError( + "server must be TestServer " "instance, found type: %r" % type(server) + ) + self._server = server + self._loop = loop + if cookie_jar is None: + cookie_jar = aiohttp.CookieJar(unsafe=True, loop=loop) + self._session = ClientSession(loop=loop, cookie_jar=cookie_jar, **kwargs) + self._closed = False + self._responses: List[ClientResponse] = [] + self._websockets: List[ClientWebSocketResponse] = [] + + async def start_server(self) -> None: + await self._server.start_server(loop=self._loop) + + @property + def host(self) -> str: + return self._server.host + + @property + def port(self) -> Optional[int]: + return self._server.port + + @property + def server(self) -> BaseTestServer: + return self._server + + @property + def app(self) -> Optional[Application]: + return cast(Optional[Application], getattr(self._server, "app", None)) + + @property + def session(self) -> ClientSession: + """An internal aiohttp.ClientSession. + + Unlike the methods on the TestClient, client session requests + do not automatically include the host in the url queried, and + will require an absolute path to the resource. + + """ + return self._session + + def make_url(self, path: StrOrURL) -> URL: + return self._server.make_url(path) + + async def _request( + self, method: str, path: StrOrURL, **kwargs: Any + ) -> ClientResponse: + resp = await self._session.request(method, self.make_url(path), **kwargs) + # save it to close later + self._responses.append(resp) + return resp + + def request( + self, method: str, path: StrOrURL, **kwargs: Any + ) -> _RequestContextManager: + """Routes a request to tested http server. + + The interface is identical to aiohttp.ClientSession.request, + except the loop kwarg is overridden by the instance used by the + test server. + + """ + return _RequestContextManager(self._request(method, path, **kwargs)) + + def get(self, path: StrOrURL, **kwargs: Any) -> _RequestContextManager: + """Perform an HTTP GET request.""" + return _RequestContextManager(self._request(hdrs.METH_GET, path, **kwargs)) + + def post(self, path: StrOrURL, **kwargs: Any) -> _RequestContextManager: + """Perform an HTTP POST request.""" + return _RequestContextManager(self._request(hdrs.METH_POST, path, **kwargs)) + + def options(self, path: StrOrURL, **kwargs: Any) -> _RequestContextManager: + """Perform an HTTP OPTIONS request.""" + return _RequestContextManager(self._request(hdrs.METH_OPTIONS, path, **kwargs)) + + def head(self, path: StrOrURL, **kwargs: Any) -> _RequestContextManager: + """Perform an HTTP HEAD request.""" + return _RequestContextManager(self._request(hdrs.METH_HEAD, path, **kwargs)) + + def put(self, path: StrOrURL, **kwargs: Any) -> _RequestContextManager: + """Perform an HTTP PUT request.""" + return _RequestContextManager(self._request(hdrs.METH_PUT, path, **kwargs)) + + def patch(self, path: StrOrURL, **kwargs: Any) -> _RequestContextManager: + """Perform an HTTP PATCH request.""" + return _RequestContextManager(self._request(hdrs.METH_PATCH, path, **kwargs)) + + def delete(self, path: StrOrURL, **kwargs: Any) -> _RequestContextManager: + """Perform an HTTP PATCH request.""" + return _RequestContextManager(self._request(hdrs.METH_DELETE, path, **kwargs)) + + def ws_connect(self, path: StrOrURL, **kwargs: Any) -> _WSRequestContextManager: + """Initiate websocket connection. + + The api corresponds to aiohttp.ClientSession.ws_connect. + + """ + return _WSRequestContextManager(self._ws_connect(path, **kwargs)) + + async def _ws_connect( + self, path: StrOrURL, **kwargs: Any + ) -> ClientWebSocketResponse: + ws = await self._session.ws_connect(self.make_url(path), **kwargs) + self._websockets.append(ws) + return ws + + async def close(self) -> None: + """Close all fixtures created by the test client. + + After that point, the TestClient is no longer usable. + + This is an idempotent function: running close multiple times + will not have any additional effects. + + close is also run on exit when used as a(n) (asynchronous) + context manager. + + """ + if not self._closed: + for resp in self._responses: + resp.close() + for ws in self._websockets: + await ws.close() + await self._session.close() + await self._server.close() + self._closed = True + + def __enter__(self) -> None: + raise TypeError("Use async with instead") + + def __exit__( + self, + exc_type: Optional[Type[BaseException]], + exc: Optional[BaseException], + tb: Optional[TracebackType], + ) -> None: + # __exit__ should exist in pair with __enter__ but never executed + pass # pragma: no cover + + async def __aenter__(self) -> "TestClient": + await self.start_server() + return self + + async def __aexit__( + self, + exc_type: Optional[Type[BaseException]], + exc: Optional[BaseException], + tb: Optional[TracebackType], + ) -> None: + await self.close() + + +class AioHTTPTestCase(IsolatedAsyncioTestCase): + """A base class to allow for unittest web applications using aiohttp. + + Provides the following: + + * self.client (aiohttp.test_utils.TestClient): an aiohttp test client. + * self.loop (asyncio.BaseEventLoop): the event loop in which the + application and server are running. + * self.app (aiohttp.web.Application): the application returned by + self.get_application() + + Note that the TestClient's methods are asynchronous: you have to + execute function on the test client using asynchronous methods. + """ + + async def get_application(self) -> Application: + """Get application. + + This method should be overridden + to return the aiohttp.web.Application + object to test. + """ + return self.get_app() + + def get_app(self) -> Application: + """Obsolete method used to constructing web application. + + Use .get_application() coroutine instead. + """ + raise RuntimeError("Did you forget to define get_application()?") + + async def asyncSetUp(self) -> None: + self.loop = asyncio.get_running_loop() + return await self.setUpAsync() + + async def setUpAsync(self) -> None: + self.app = await self.get_application() + self.server = await self.get_server(self.app) + self.client = await self.get_client(self.server) + + await self.client.start_server() + + async def asyncTearDown(self) -> None: + return await self.tearDownAsync() + + async def tearDownAsync(self) -> None: + await self.client.close() + + async def get_server(self, app: Application) -> TestServer: + """Return a TestServer instance.""" + return TestServer(app, loop=self.loop) + + async def get_client(self, server: TestServer) -> TestClient: + """Return a TestClient instance.""" + return TestClient(server, loop=self.loop) + + +def unittest_run_loop(func: Any, *args: Any, **kwargs: Any) -> Any: + """ + A decorator dedicated to use with asynchronous AioHTTPTestCase test methods. + + In 3.8+, this does nothing. + """ + warnings.warn( + "Decorator `@unittest_run_loop` is no longer needed in aiohttp 3.8+", + DeprecationWarning, + stacklevel=2, + ) + return func + + +_LOOP_FACTORY = Callable[[], asyncio.AbstractEventLoop] + + +@contextlib.contextmanager +def loop_context( + loop_factory: _LOOP_FACTORY = asyncio.new_event_loop, fast: bool = False +) -> Iterator[asyncio.AbstractEventLoop]: + """A contextmanager that creates an event_loop, for test purposes. + + Handles the creation and cleanup of a test loop. + """ + loop = setup_test_loop(loop_factory) + yield loop + teardown_test_loop(loop, fast=fast) + + +def setup_test_loop( + loop_factory: _LOOP_FACTORY = asyncio.new_event_loop, +) -> asyncio.AbstractEventLoop: + """Create and return an asyncio.BaseEventLoop instance. + + The caller should also call teardown_test_loop, + once they are done with the loop. + """ + loop = loop_factory() + asyncio.set_event_loop(loop) + return loop + + +def teardown_test_loop(loop: asyncio.AbstractEventLoop, fast: bool = False) -> None: + """Teardown and cleanup an event_loop created by setup_test_loop.""" + closed = loop.is_closed() + if not closed: + loop.call_soon(loop.stop) + loop.run_forever() + loop.close() + + if not fast: + gc.collect() + + asyncio.set_event_loop(None) + + +def _create_app_mock() -> mock.MagicMock: + def get_dict(app: Any, key: str) -> Any: + return app.__app_dict[key] + + def set_dict(app: Any, key: str, value: Any) -> None: + app.__app_dict[key] = value + + app = mock.MagicMock(spec=Application) + app.__app_dict = {} + app.__getitem__ = get_dict + app.__setitem__ = set_dict + + app._debug = False + app.on_response_prepare = Signal(app) + app.on_response_prepare.freeze() + return app + + +def _create_transport(sslcontext: Optional[SSLContext] = None) -> mock.Mock: + transport = mock.Mock() + + def get_extra_info(key: str) -> Optional[SSLContext]: + if key == "sslcontext": + return sslcontext + else: + return None + + transport.get_extra_info.side_effect = get_extra_info + return transport + + +def make_mocked_request( + method: str, + path: str, + headers: Any = None, + *, + match_info: Any = sentinel, + version: HttpVersion = HttpVersion(1, 1), + closing: bool = False, + app: Any = None, + writer: Any = sentinel, + protocol: Any = sentinel, + transport: Any = sentinel, + payload: Any = sentinel, + sslcontext: Optional[SSLContext] = None, + client_max_size: int = 1024**2, + loop: Any = ..., +) -> Request: + """Creates mocked web.Request testing purposes. + + Useful in unit tests, when spinning full web server is overkill or + specific conditions and errors are hard to trigger. + """ + task = mock.Mock() + if loop is ...: + loop = mock.Mock() + loop.create_future.return_value = () + + if version < HttpVersion(1, 1): + closing = True + + if headers: + headers = CIMultiDictProxy(CIMultiDict(headers)) + raw_hdrs = tuple( + (k.encode("utf-8"), v.encode("utf-8")) for k, v in headers.items() + ) + else: + headers = CIMultiDictProxy(CIMultiDict()) + raw_hdrs = () + + chunked = "chunked" in headers.get(hdrs.TRANSFER_ENCODING, "").lower() + + message = RawRequestMessage( + method, + path, + version, + headers, + raw_hdrs, + closing, + None, + False, + chunked, + URL(path), + ) + if app is None: + app = _create_app_mock() + + if transport is sentinel: + transport = _create_transport(sslcontext) + + if protocol is sentinel: + protocol = mock.Mock() + protocol.transport = transport + + if writer is sentinel: + writer = mock.Mock() + writer.write_headers = make_mocked_coro(None) + writer.write = make_mocked_coro(None) + writer.write_eof = make_mocked_coro(None) + writer.drain = make_mocked_coro(None) + writer.transport = transport + + protocol.transport = transport + protocol.writer = writer + + if payload is sentinel: + payload = mock.Mock() + + req = Request( + message, payload, protocol, writer, task, loop, client_max_size=client_max_size + ) + + match_info = UrlMappingMatchInfo( + {} if match_info is sentinel else match_info, mock.Mock() + ) + match_info.add_app(app) + req._match_info = match_info + + return req + + +def make_mocked_coro( + return_value: Any = sentinel, raise_exception: Any = sentinel +) -> Any: + """Creates a coroutine mock.""" + + async def mock_coro(*args: Any, **kwargs: Any) -> Any: + if raise_exception is not sentinel: + raise raise_exception + if not inspect.isawaitable(return_value): + return return_value + await return_value + + return mock.Mock(wraps=mock_coro) diff --git a/gtm/lib/python3.12/site-packages/aiohttp/tracing.py b/gtm/lib/python3.12/site-packages/aiohttp/tracing.py new file mode 100644 index 0000000000000000000000000000000000000000..62847a0bf7ceec4b0f235558020916a9135c009a --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/tracing.py @@ -0,0 +1,471 @@ +from types import SimpleNamespace +from typing import TYPE_CHECKING, Awaitable, Optional, Protocol, Type, TypeVar + +import attr +from aiosignal import Signal +from multidict import CIMultiDict +from yarl import URL + +from .client_reqrep import ClientResponse + +if TYPE_CHECKING: + from .client import ClientSession + + _ParamT_contra = TypeVar("_ParamT_contra", contravariant=True) + + class _SignalCallback(Protocol[_ParamT_contra]): + def __call__( + self, + __client_session: ClientSession, + __trace_config_ctx: SimpleNamespace, + __params: _ParamT_contra, + ) -> Awaitable[None]: + ... + + +__all__ = ( + "TraceConfig", + "TraceRequestStartParams", + "TraceRequestEndParams", + "TraceRequestExceptionParams", + "TraceConnectionQueuedStartParams", + "TraceConnectionQueuedEndParams", + "TraceConnectionCreateStartParams", + "TraceConnectionCreateEndParams", + "TraceConnectionReuseconnParams", + "TraceDnsResolveHostStartParams", + "TraceDnsResolveHostEndParams", + "TraceDnsCacheHitParams", + "TraceDnsCacheMissParams", + "TraceRequestRedirectParams", + "TraceRequestChunkSentParams", + "TraceResponseChunkReceivedParams", + "TraceRequestHeadersSentParams", +) + + +class TraceConfig: + """First-class used to trace requests launched via ClientSession objects.""" + + def __init__( + self, trace_config_ctx_factory: Type[SimpleNamespace] = SimpleNamespace + ) -> None: + self._on_request_start: Signal[ + _SignalCallback[TraceRequestStartParams] + ] = Signal(self) + self._on_request_chunk_sent: Signal[ + _SignalCallback[TraceRequestChunkSentParams] + ] = Signal(self) + self._on_response_chunk_received: Signal[ + _SignalCallback[TraceResponseChunkReceivedParams] + ] = Signal(self) + self._on_request_end: Signal[_SignalCallback[TraceRequestEndParams]] = Signal( + self + ) + self._on_request_exception: Signal[ + _SignalCallback[TraceRequestExceptionParams] + ] = Signal(self) + self._on_request_redirect: Signal[ + _SignalCallback[TraceRequestRedirectParams] + ] = Signal(self) + self._on_connection_queued_start: Signal[ + _SignalCallback[TraceConnectionQueuedStartParams] + ] = Signal(self) + self._on_connection_queued_end: Signal[ + _SignalCallback[TraceConnectionQueuedEndParams] + ] = Signal(self) + self._on_connection_create_start: Signal[ + _SignalCallback[TraceConnectionCreateStartParams] + ] = Signal(self) + self._on_connection_create_end: Signal[ + _SignalCallback[TraceConnectionCreateEndParams] + ] = Signal(self) + self._on_connection_reuseconn: Signal[ + _SignalCallback[TraceConnectionReuseconnParams] + ] = Signal(self) + self._on_dns_resolvehost_start: Signal[ + _SignalCallback[TraceDnsResolveHostStartParams] + ] = Signal(self) + self._on_dns_resolvehost_end: Signal[ + _SignalCallback[TraceDnsResolveHostEndParams] + ] = Signal(self) + self._on_dns_cache_hit: Signal[ + _SignalCallback[TraceDnsCacheHitParams] + ] = Signal(self) + self._on_dns_cache_miss: Signal[ + _SignalCallback[TraceDnsCacheMissParams] + ] = Signal(self) + self._on_request_headers_sent: Signal[ + _SignalCallback[TraceRequestHeadersSentParams] + ] = Signal(self) + + self._trace_config_ctx_factory = trace_config_ctx_factory + + def trace_config_ctx( + self, trace_request_ctx: Optional[SimpleNamespace] = None + ) -> SimpleNamespace: + """Return a new trace_config_ctx instance""" + return self._trace_config_ctx_factory(trace_request_ctx=trace_request_ctx) + + def freeze(self) -> None: + self._on_request_start.freeze() + self._on_request_chunk_sent.freeze() + self._on_response_chunk_received.freeze() + self._on_request_end.freeze() + self._on_request_exception.freeze() + self._on_request_redirect.freeze() + self._on_connection_queued_start.freeze() + self._on_connection_queued_end.freeze() + self._on_connection_create_start.freeze() + self._on_connection_create_end.freeze() + self._on_connection_reuseconn.freeze() + self._on_dns_resolvehost_start.freeze() + self._on_dns_resolvehost_end.freeze() + self._on_dns_cache_hit.freeze() + self._on_dns_cache_miss.freeze() + self._on_request_headers_sent.freeze() + + @property + def on_request_start(self) -> "Signal[_SignalCallback[TraceRequestStartParams]]": + return self._on_request_start + + @property + def on_request_chunk_sent( + self, + ) -> "Signal[_SignalCallback[TraceRequestChunkSentParams]]": + return self._on_request_chunk_sent + + @property + def on_response_chunk_received( + self, + ) -> "Signal[_SignalCallback[TraceResponseChunkReceivedParams]]": + return self._on_response_chunk_received + + @property + def on_request_end(self) -> "Signal[_SignalCallback[TraceRequestEndParams]]": + return self._on_request_end + + @property + def on_request_exception( + self, + ) -> "Signal[_SignalCallback[TraceRequestExceptionParams]]": + return self._on_request_exception + + @property + def on_request_redirect( + self, + ) -> "Signal[_SignalCallback[TraceRequestRedirectParams]]": + return self._on_request_redirect + + @property + def on_connection_queued_start( + self, + ) -> "Signal[_SignalCallback[TraceConnectionQueuedStartParams]]": + return self._on_connection_queued_start + + @property + def on_connection_queued_end( + self, + ) -> "Signal[_SignalCallback[TraceConnectionQueuedEndParams]]": + return self._on_connection_queued_end + + @property + def on_connection_create_start( + self, + ) -> "Signal[_SignalCallback[TraceConnectionCreateStartParams]]": + return self._on_connection_create_start + + @property + def on_connection_create_end( + self, + ) -> "Signal[_SignalCallback[TraceConnectionCreateEndParams]]": + return self._on_connection_create_end + + @property + def on_connection_reuseconn( + self, + ) -> "Signal[_SignalCallback[TraceConnectionReuseconnParams]]": + return self._on_connection_reuseconn + + @property + def on_dns_resolvehost_start( + self, + ) -> "Signal[_SignalCallback[TraceDnsResolveHostStartParams]]": + return self._on_dns_resolvehost_start + + @property + def on_dns_resolvehost_end( + self, + ) -> "Signal[_SignalCallback[TraceDnsResolveHostEndParams]]": + return self._on_dns_resolvehost_end + + @property + def on_dns_cache_hit(self) -> "Signal[_SignalCallback[TraceDnsCacheHitParams]]": + return self._on_dns_cache_hit + + @property + def on_dns_cache_miss(self) -> "Signal[_SignalCallback[TraceDnsCacheMissParams]]": + return self._on_dns_cache_miss + + @property + def on_request_headers_sent( + self, + ) -> "Signal[_SignalCallback[TraceRequestHeadersSentParams]]": + return self._on_request_headers_sent + + +@attr.s(auto_attribs=True, frozen=True, slots=True) +class TraceRequestStartParams: + """Parameters sent by the `on_request_start` signal""" + + method: str + url: URL + headers: "CIMultiDict[str]" + + +@attr.s(auto_attribs=True, frozen=True, slots=True) +class TraceRequestChunkSentParams: + """Parameters sent by the `on_request_chunk_sent` signal""" + + method: str + url: URL + chunk: bytes + + +@attr.s(auto_attribs=True, frozen=True, slots=True) +class TraceResponseChunkReceivedParams: + """Parameters sent by the `on_response_chunk_received` signal""" + + method: str + url: URL + chunk: bytes + + +@attr.s(auto_attribs=True, frozen=True, slots=True) +class TraceRequestEndParams: + """Parameters sent by the `on_request_end` signal""" + + method: str + url: URL + headers: "CIMultiDict[str]" + response: ClientResponse + + +@attr.s(auto_attribs=True, frozen=True, slots=True) +class TraceRequestExceptionParams: + """Parameters sent by the `on_request_exception` signal""" + + method: str + url: URL + headers: "CIMultiDict[str]" + exception: BaseException + + +@attr.s(auto_attribs=True, frozen=True, slots=True) +class TraceRequestRedirectParams: + """Parameters sent by the `on_request_redirect` signal""" + + method: str + url: URL + headers: "CIMultiDict[str]" + response: ClientResponse + + +@attr.s(auto_attribs=True, frozen=True, slots=True) +class TraceConnectionQueuedStartParams: + """Parameters sent by the `on_connection_queued_start` signal""" + + +@attr.s(auto_attribs=True, frozen=True, slots=True) +class TraceConnectionQueuedEndParams: + """Parameters sent by the `on_connection_queued_end` signal""" + + +@attr.s(auto_attribs=True, frozen=True, slots=True) +class TraceConnectionCreateStartParams: + """Parameters sent by the `on_connection_create_start` signal""" + + +@attr.s(auto_attribs=True, frozen=True, slots=True) +class TraceConnectionCreateEndParams: + """Parameters sent by the `on_connection_create_end` signal""" + + +@attr.s(auto_attribs=True, frozen=True, slots=True) +class TraceConnectionReuseconnParams: + """Parameters sent by the `on_connection_reuseconn` signal""" + + +@attr.s(auto_attribs=True, frozen=True, slots=True) +class TraceDnsResolveHostStartParams: + """Parameters sent by the `on_dns_resolvehost_start` signal""" + + host: str + + +@attr.s(auto_attribs=True, frozen=True, slots=True) +class TraceDnsResolveHostEndParams: + """Parameters sent by the `on_dns_resolvehost_end` signal""" + + host: str + + +@attr.s(auto_attribs=True, frozen=True, slots=True) +class TraceDnsCacheHitParams: + """Parameters sent by the `on_dns_cache_hit` signal""" + + host: str + + +@attr.s(auto_attribs=True, frozen=True, slots=True) +class TraceDnsCacheMissParams: + """Parameters sent by the `on_dns_cache_miss` signal""" + + host: str + + +@attr.s(auto_attribs=True, frozen=True, slots=True) +class TraceRequestHeadersSentParams: + """Parameters sent by the `on_request_headers_sent` signal""" + + method: str + url: URL + headers: "CIMultiDict[str]" + + +class Trace: + """Internal dependency holder class. + + Used to keep together the main dependencies used + at the moment of send a signal. + """ + + def __init__( + self, + session: "ClientSession", + trace_config: TraceConfig, + trace_config_ctx: SimpleNamespace, + ) -> None: + self._trace_config = trace_config + self._trace_config_ctx = trace_config_ctx + self._session = session + + async def send_request_start( + self, method: str, url: URL, headers: "CIMultiDict[str]" + ) -> None: + return await self._trace_config.on_request_start.send( + self._session, + self._trace_config_ctx, + TraceRequestStartParams(method, url, headers), + ) + + async def send_request_chunk_sent( + self, method: str, url: URL, chunk: bytes + ) -> None: + return await self._trace_config.on_request_chunk_sent.send( + self._session, + self._trace_config_ctx, + TraceRequestChunkSentParams(method, url, chunk), + ) + + async def send_response_chunk_received( + self, method: str, url: URL, chunk: bytes + ) -> None: + return await self._trace_config.on_response_chunk_received.send( + self._session, + self._trace_config_ctx, + TraceResponseChunkReceivedParams(method, url, chunk), + ) + + async def send_request_end( + self, + method: str, + url: URL, + headers: "CIMultiDict[str]", + response: ClientResponse, + ) -> None: + return await self._trace_config.on_request_end.send( + self._session, + self._trace_config_ctx, + TraceRequestEndParams(method, url, headers, response), + ) + + async def send_request_exception( + self, + method: str, + url: URL, + headers: "CIMultiDict[str]", + exception: BaseException, + ) -> None: + return await self._trace_config.on_request_exception.send( + self._session, + self._trace_config_ctx, + TraceRequestExceptionParams(method, url, headers, exception), + ) + + async def send_request_redirect( + self, + method: str, + url: URL, + headers: "CIMultiDict[str]", + response: ClientResponse, + ) -> None: + return await self._trace_config._on_request_redirect.send( + self._session, + self._trace_config_ctx, + TraceRequestRedirectParams(method, url, headers, response), + ) + + async def send_connection_queued_start(self) -> None: + return await self._trace_config.on_connection_queued_start.send( + self._session, self._trace_config_ctx, TraceConnectionQueuedStartParams() + ) + + async def send_connection_queued_end(self) -> None: + return await self._trace_config.on_connection_queued_end.send( + self._session, self._trace_config_ctx, TraceConnectionQueuedEndParams() + ) + + async def send_connection_create_start(self) -> None: + return await self._trace_config.on_connection_create_start.send( + self._session, self._trace_config_ctx, TraceConnectionCreateStartParams() + ) + + async def send_connection_create_end(self) -> None: + return await self._trace_config.on_connection_create_end.send( + self._session, self._trace_config_ctx, TraceConnectionCreateEndParams() + ) + + async def send_connection_reuseconn(self) -> None: + return await self._trace_config.on_connection_reuseconn.send( + self._session, self._trace_config_ctx, TraceConnectionReuseconnParams() + ) + + async def send_dns_resolvehost_start(self, host: str) -> None: + return await self._trace_config.on_dns_resolvehost_start.send( + self._session, self._trace_config_ctx, TraceDnsResolveHostStartParams(host) + ) + + async def send_dns_resolvehost_end(self, host: str) -> None: + return await self._trace_config.on_dns_resolvehost_end.send( + self._session, self._trace_config_ctx, TraceDnsResolveHostEndParams(host) + ) + + async def send_dns_cache_hit(self, host: str) -> None: + return await self._trace_config.on_dns_cache_hit.send( + self._session, self._trace_config_ctx, TraceDnsCacheHitParams(host) + ) + + async def send_dns_cache_miss(self, host: str) -> None: + return await self._trace_config.on_dns_cache_miss.send( + self._session, self._trace_config_ctx, TraceDnsCacheMissParams(host) + ) + + async def send_request_headers( + self, method: str, url: URL, headers: "CIMultiDict[str]" + ) -> None: + return await self._trace_config._on_request_headers_sent.send( + self._session, + self._trace_config_ctx, + TraceRequestHeadersSentParams(method, url, headers), + ) diff --git a/gtm/lib/python3.12/site-packages/aiohttp/typedefs.py b/gtm/lib/python3.12/site-packages/aiohttp/typedefs.py new file mode 100644 index 0000000000000000000000000000000000000000..5e963e1a10ef8f93331602d21105643dad33bddf --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/typedefs.py @@ -0,0 +1,54 @@ +import json +import os +from typing import ( + TYPE_CHECKING, + Any, + Awaitable, + Callable, + Iterable, + Mapping, + Tuple, + Union, +) + +from multidict import CIMultiDict, CIMultiDictProxy, MultiDict, MultiDictProxy, istr +from yarl import URL + +DEFAULT_JSON_ENCODER = json.dumps +DEFAULT_JSON_DECODER = json.loads + +if TYPE_CHECKING: + _CIMultiDict = CIMultiDict[str] + _CIMultiDictProxy = CIMultiDictProxy[str] + _MultiDict = MultiDict[str] + _MultiDictProxy = MultiDictProxy[str] + from http.cookies import BaseCookie, Morsel + + from .web import Request, StreamResponse +else: + _CIMultiDict = CIMultiDict + _CIMultiDictProxy = CIMultiDictProxy + _MultiDict = MultiDict + _MultiDictProxy = MultiDictProxy + +Byteish = Union[bytes, bytearray, memoryview] +JSONEncoder = Callable[[Any], str] +JSONDecoder = Callable[[str], Any] +LooseHeaders = Union[Mapping[Union[str, istr], str], _CIMultiDict, _CIMultiDictProxy] +RawHeaders = Tuple[Tuple[bytes, bytes], ...] +StrOrURL = Union[str, URL] + +LooseCookiesMappings = Mapping[str, Union[str, "BaseCookie[str]", "Morsel[Any]"]] +LooseCookiesIterables = Iterable[ + Tuple[str, Union[str, "BaseCookie[str]", "Morsel[Any]"]] +] +LooseCookies = Union[ + LooseCookiesMappings, + LooseCookiesIterables, + "BaseCookie[str]", +] + +Handler = Callable[["Request"], Awaitable["StreamResponse"]] +Middleware = Callable[["Request", Handler], Awaitable["StreamResponse"]] + +PathLike = Union[str, "os.PathLike[str]"] diff --git a/gtm/lib/python3.12/site-packages/aiohttp/web.py b/gtm/lib/python3.12/site-packages/aiohttp/web.py new file mode 100644 index 0000000000000000000000000000000000000000..e9116507f4e6ab9ee27bb084e8e96985cc6728de --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/web.py @@ -0,0 +1,616 @@ +import asyncio +import logging +import os +import socket +import sys +import warnings +from argparse import ArgumentParser +from collections.abc import Iterable +from contextlib import suppress +from functools import partial +from importlib import import_module +from typing import ( + Any, + Awaitable, + Callable, + Iterable as TypingIterable, + List, + Optional, + Set, + Type, + Union, + cast, +) +from weakref import WeakSet + +from .abc import AbstractAccessLogger +from .helpers import AppKey as AppKey +from .log import access_logger +from .typedefs import PathLike +from .web_app import Application as Application, CleanupError as CleanupError +from .web_exceptions import ( + HTTPAccepted as HTTPAccepted, + HTTPBadGateway as HTTPBadGateway, + HTTPBadRequest as HTTPBadRequest, + HTTPClientError as HTTPClientError, + HTTPConflict as HTTPConflict, + HTTPCreated as HTTPCreated, + HTTPError as HTTPError, + HTTPException as HTTPException, + HTTPExpectationFailed as HTTPExpectationFailed, + HTTPFailedDependency as HTTPFailedDependency, + HTTPForbidden as HTTPForbidden, + HTTPFound as HTTPFound, + HTTPGatewayTimeout as HTTPGatewayTimeout, + HTTPGone as HTTPGone, + HTTPInsufficientStorage as HTTPInsufficientStorage, + HTTPInternalServerError as HTTPInternalServerError, + HTTPLengthRequired as HTTPLengthRequired, + HTTPMethodNotAllowed as HTTPMethodNotAllowed, + HTTPMisdirectedRequest as HTTPMisdirectedRequest, + HTTPMove as HTTPMove, + HTTPMovedPermanently as HTTPMovedPermanently, + HTTPMultipleChoices as HTTPMultipleChoices, + HTTPNetworkAuthenticationRequired as HTTPNetworkAuthenticationRequired, + HTTPNoContent as HTTPNoContent, + HTTPNonAuthoritativeInformation as HTTPNonAuthoritativeInformation, + HTTPNotAcceptable as HTTPNotAcceptable, + HTTPNotExtended as HTTPNotExtended, + HTTPNotFound as HTTPNotFound, + HTTPNotImplemented as HTTPNotImplemented, + HTTPNotModified as HTTPNotModified, + HTTPOk as HTTPOk, + HTTPPartialContent as HTTPPartialContent, + HTTPPaymentRequired as HTTPPaymentRequired, + HTTPPermanentRedirect as HTTPPermanentRedirect, + HTTPPreconditionFailed as HTTPPreconditionFailed, + HTTPPreconditionRequired as HTTPPreconditionRequired, + HTTPProxyAuthenticationRequired as HTTPProxyAuthenticationRequired, + HTTPRedirection as HTTPRedirection, + HTTPRequestEntityTooLarge as HTTPRequestEntityTooLarge, + HTTPRequestHeaderFieldsTooLarge as HTTPRequestHeaderFieldsTooLarge, + HTTPRequestRangeNotSatisfiable as HTTPRequestRangeNotSatisfiable, + HTTPRequestTimeout as HTTPRequestTimeout, + HTTPRequestURITooLong as HTTPRequestURITooLong, + HTTPResetContent as HTTPResetContent, + HTTPSeeOther as HTTPSeeOther, + HTTPServerError as HTTPServerError, + HTTPServiceUnavailable as HTTPServiceUnavailable, + HTTPSuccessful as HTTPSuccessful, + HTTPTemporaryRedirect as HTTPTemporaryRedirect, + HTTPTooManyRequests as HTTPTooManyRequests, + HTTPUnauthorized as HTTPUnauthorized, + HTTPUnavailableForLegalReasons as HTTPUnavailableForLegalReasons, + HTTPUnprocessableEntity as HTTPUnprocessableEntity, + HTTPUnsupportedMediaType as HTTPUnsupportedMediaType, + HTTPUpgradeRequired as HTTPUpgradeRequired, + HTTPUseProxy as HTTPUseProxy, + HTTPVariantAlsoNegotiates as HTTPVariantAlsoNegotiates, + HTTPVersionNotSupported as HTTPVersionNotSupported, + NotAppKeyWarning as NotAppKeyWarning, +) +from .web_fileresponse import FileResponse as FileResponse +from .web_log import AccessLogger +from .web_middlewares import ( + middleware as middleware, + normalize_path_middleware as normalize_path_middleware, +) +from .web_protocol import ( + PayloadAccessError as PayloadAccessError, + RequestHandler as RequestHandler, + RequestPayloadError as RequestPayloadError, +) +from .web_request import ( + BaseRequest as BaseRequest, + FileField as FileField, + Request as Request, +) +from .web_response import ( + ContentCoding as ContentCoding, + Response as Response, + StreamResponse as StreamResponse, + json_response as json_response, +) +from .web_routedef import ( + AbstractRouteDef as AbstractRouteDef, + RouteDef as RouteDef, + RouteTableDef as RouteTableDef, + StaticDef as StaticDef, + delete as delete, + get as get, + head as head, + options as options, + patch as patch, + post as post, + put as put, + route as route, + static as static, + view as view, +) +from .web_runner import ( + AppRunner as AppRunner, + BaseRunner as BaseRunner, + BaseSite as BaseSite, + GracefulExit as GracefulExit, + NamedPipeSite as NamedPipeSite, + ServerRunner as ServerRunner, + SockSite as SockSite, + TCPSite as TCPSite, + UnixSite as UnixSite, +) +from .web_server import Server as Server +from .web_urldispatcher import ( + AbstractResource as AbstractResource, + AbstractRoute as AbstractRoute, + DynamicResource as DynamicResource, + PlainResource as PlainResource, + PrefixedSubAppResource as PrefixedSubAppResource, + Resource as Resource, + ResourceRoute as ResourceRoute, + StaticResource as StaticResource, + UrlDispatcher as UrlDispatcher, + UrlMappingMatchInfo as UrlMappingMatchInfo, + View as View, +) +from .web_ws import ( + WebSocketReady as WebSocketReady, + WebSocketResponse as WebSocketResponse, + WSMsgType as WSMsgType, +) + +__all__ = ( + # web_app + "AppKey", + "Application", + "CleanupError", + # web_exceptions + "NotAppKeyWarning", + "HTTPAccepted", + "HTTPBadGateway", + "HTTPBadRequest", + "HTTPClientError", + "HTTPConflict", + "HTTPCreated", + "HTTPError", + "HTTPException", + "HTTPExpectationFailed", + "HTTPFailedDependency", + "HTTPForbidden", + "HTTPFound", + "HTTPGatewayTimeout", + "HTTPGone", + "HTTPInsufficientStorage", + "HTTPInternalServerError", + "HTTPLengthRequired", + "HTTPMethodNotAllowed", + "HTTPMisdirectedRequest", + "HTTPMove", + "HTTPMovedPermanently", + "HTTPMultipleChoices", + "HTTPNetworkAuthenticationRequired", + "HTTPNoContent", + "HTTPNonAuthoritativeInformation", + "HTTPNotAcceptable", + "HTTPNotExtended", + "HTTPNotFound", + "HTTPNotImplemented", + "HTTPNotModified", + "HTTPOk", + "HTTPPartialContent", + "HTTPPaymentRequired", + "HTTPPermanentRedirect", + "HTTPPreconditionFailed", + "HTTPPreconditionRequired", + "HTTPProxyAuthenticationRequired", + "HTTPRedirection", + "HTTPRequestEntityTooLarge", + "HTTPRequestHeaderFieldsTooLarge", + "HTTPRequestRangeNotSatisfiable", + "HTTPRequestTimeout", + "HTTPRequestURITooLong", + "HTTPResetContent", + "HTTPSeeOther", + "HTTPServerError", + "HTTPServiceUnavailable", + "HTTPSuccessful", + "HTTPTemporaryRedirect", + "HTTPTooManyRequests", + "HTTPUnauthorized", + "HTTPUnavailableForLegalReasons", + "HTTPUnprocessableEntity", + "HTTPUnsupportedMediaType", + "HTTPUpgradeRequired", + "HTTPUseProxy", + "HTTPVariantAlsoNegotiates", + "HTTPVersionNotSupported", + # web_fileresponse + "FileResponse", + # web_middlewares + "middleware", + "normalize_path_middleware", + # web_protocol + "PayloadAccessError", + "RequestHandler", + "RequestPayloadError", + # web_request + "BaseRequest", + "FileField", + "Request", + # web_response + "ContentCoding", + "Response", + "StreamResponse", + "json_response", + # web_routedef + "AbstractRouteDef", + "RouteDef", + "RouteTableDef", + "StaticDef", + "delete", + "get", + "head", + "options", + "patch", + "post", + "put", + "route", + "static", + "view", + # web_runner + "AppRunner", + "BaseRunner", + "BaseSite", + "GracefulExit", + "ServerRunner", + "SockSite", + "TCPSite", + "UnixSite", + "NamedPipeSite", + # web_server + "Server", + # web_urldispatcher + "AbstractResource", + "AbstractRoute", + "DynamicResource", + "PlainResource", + "PrefixedSubAppResource", + "Resource", + "ResourceRoute", + "StaticResource", + "UrlDispatcher", + "UrlMappingMatchInfo", + "View", + # web_ws + "WebSocketReady", + "WebSocketResponse", + "WSMsgType", + # web + "run_app", +) + + +try: + from ssl import SSLContext +except ImportError: # pragma: no cover + SSLContext = Any # type: ignore[misc,assignment] + +# Only display warning when using -Wdefault, -We, -X dev or similar. +warnings.filterwarnings("ignore", category=NotAppKeyWarning, append=True) + +HostSequence = TypingIterable[str] + + +async def _run_app( + app: Union[Application, Awaitable[Application]], + *, + host: Optional[Union[str, HostSequence]] = None, + port: Optional[int] = None, + path: Union[PathLike, TypingIterable[PathLike], None] = None, + sock: Optional[Union[socket.socket, TypingIterable[socket.socket]]] = None, + shutdown_timeout: float = 60.0, + keepalive_timeout: float = 75.0, + ssl_context: Optional[SSLContext] = None, + print: Optional[Callable[..., None]] = print, + backlog: int = 128, + access_log_class: Type[AbstractAccessLogger] = AccessLogger, + access_log_format: str = AccessLogger.LOG_FORMAT, + access_log: Optional[logging.Logger] = access_logger, + handle_signals: bool = True, + reuse_address: Optional[bool] = None, + reuse_port: Optional[bool] = None, + handler_cancellation: bool = False, +) -> None: + async def wait( + starting_tasks: "WeakSet[asyncio.Task[object]]", shutdown_timeout: float + ) -> None: + # Wait for pending tasks for a given time limit. + t = asyncio.current_task() + assert t is not None + starting_tasks.add(t) + with suppress(asyncio.TimeoutError): + await asyncio.wait_for(_wait(starting_tasks), timeout=shutdown_timeout) + + async def _wait(exclude: "WeakSet[asyncio.Task[object]]") -> None: + t = asyncio.current_task() + assert t is not None + exclude.add(t) + while tasks := asyncio.all_tasks().difference(exclude): + await asyncio.wait(tasks) + + # An internal function to actually do all dirty job for application running + if asyncio.iscoroutine(app): + app = await app + + app = cast(Application, app) + + runner = AppRunner( + app, + handle_signals=handle_signals, + access_log_class=access_log_class, + access_log_format=access_log_format, + access_log=access_log, + keepalive_timeout=keepalive_timeout, + shutdown_timeout=shutdown_timeout, + handler_cancellation=handler_cancellation, + ) + + await runner.setup() + # On shutdown we want to avoid waiting on tasks which run forever. + # It's very likely that all tasks which run forever will have been created by + # the time we have completed the application startup (in runner.setup()), + # so we just record all running tasks here and exclude them later. + starting_tasks: "WeakSet[asyncio.Task[object]]" = WeakSet(asyncio.all_tasks()) + runner.shutdown_callback = partial(wait, starting_tasks, shutdown_timeout) + + sites: List[BaseSite] = [] + + try: + if host is not None: + if isinstance(host, (str, bytes, bytearray, memoryview)): + sites.append( + TCPSite( + runner, + host, + port, + ssl_context=ssl_context, + backlog=backlog, + reuse_address=reuse_address, + reuse_port=reuse_port, + ) + ) + else: + for h in host: + sites.append( + TCPSite( + runner, + h, + port, + ssl_context=ssl_context, + backlog=backlog, + reuse_address=reuse_address, + reuse_port=reuse_port, + ) + ) + elif path is None and sock is None or port is not None: + sites.append( + TCPSite( + runner, + port=port, + ssl_context=ssl_context, + backlog=backlog, + reuse_address=reuse_address, + reuse_port=reuse_port, + ) + ) + + if path is not None: + if isinstance(path, (str, os.PathLike)): + sites.append( + UnixSite( + runner, + path, + ssl_context=ssl_context, + backlog=backlog, + ) + ) + else: + for p in path: + sites.append( + UnixSite( + runner, + p, + ssl_context=ssl_context, + backlog=backlog, + ) + ) + + if sock is not None: + if not isinstance(sock, Iterable): + sites.append( + SockSite( + runner, + sock, + ssl_context=ssl_context, + backlog=backlog, + ) + ) + else: + for s in sock: + sites.append( + SockSite( + runner, + s, + ssl_context=ssl_context, + backlog=backlog, + ) + ) + for site in sites: + await site.start() + + if print: # pragma: no branch + names = sorted(str(s.name) for s in runner.sites) + print( + "======== Running on {} ========\n" + "(Press CTRL+C to quit)".format(", ".join(names)) + ) + + # sleep forever by 1 hour intervals, + while True: + await asyncio.sleep(3600) + finally: + await runner.cleanup() + + +def _cancel_tasks( + to_cancel: Set["asyncio.Task[Any]"], loop: asyncio.AbstractEventLoop +) -> None: + if not to_cancel: + return + + for task in to_cancel: + task.cancel() + + loop.run_until_complete(asyncio.gather(*to_cancel, return_exceptions=True)) + + for task in to_cancel: + if task.cancelled(): + continue + if task.exception() is not None: + loop.call_exception_handler( + { + "message": "unhandled exception during asyncio.run() shutdown", + "exception": task.exception(), + "task": task, + } + ) + + +def run_app( + app: Union[Application, Awaitable[Application]], + *, + host: Optional[Union[str, HostSequence]] = None, + port: Optional[int] = None, + path: Union[PathLike, TypingIterable[PathLike], None] = None, + sock: Optional[Union[socket.socket, TypingIterable[socket.socket]]] = None, + shutdown_timeout: float = 60.0, + keepalive_timeout: float = 75.0, + ssl_context: Optional[SSLContext] = None, + print: Optional[Callable[..., None]] = print, + backlog: int = 128, + access_log_class: Type[AbstractAccessLogger] = AccessLogger, + access_log_format: str = AccessLogger.LOG_FORMAT, + access_log: Optional[logging.Logger] = access_logger, + handle_signals: bool = True, + reuse_address: Optional[bool] = None, + reuse_port: Optional[bool] = None, + handler_cancellation: bool = False, + loop: Optional[asyncio.AbstractEventLoop] = None, +) -> None: + """Run an app locally""" + if loop is None: + loop = asyncio.new_event_loop() + + # Configure if and only if in debugging mode and using the default logger + if loop.get_debug() and access_log and access_log.name == "aiohttp.access": + if access_log.level == logging.NOTSET: + access_log.setLevel(logging.DEBUG) + if not access_log.hasHandlers(): + access_log.addHandler(logging.StreamHandler()) + + main_task = loop.create_task( + _run_app( + app, + host=host, + port=port, + path=path, + sock=sock, + shutdown_timeout=shutdown_timeout, + keepalive_timeout=keepalive_timeout, + ssl_context=ssl_context, + print=print, + backlog=backlog, + access_log_class=access_log_class, + access_log_format=access_log_format, + access_log=access_log, + handle_signals=handle_signals, + reuse_address=reuse_address, + reuse_port=reuse_port, + handler_cancellation=handler_cancellation, + ) + ) + + try: + asyncio.set_event_loop(loop) + loop.run_until_complete(main_task) + except (GracefulExit, KeyboardInterrupt): # pragma: no cover + pass + finally: + _cancel_tasks({main_task}, loop) + _cancel_tasks(asyncio.all_tasks(loop), loop) + loop.run_until_complete(loop.shutdown_asyncgens()) + loop.close() + + +def main(argv: List[str]) -> None: + arg_parser = ArgumentParser( + description="aiohttp.web Application server", prog="aiohttp.web" + ) + arg_parser.add_argument( + "entry_func", + help=( + "Callable returning the `aiohttp.web.Application` instance to " + "run. Should be specified in the 'module:function' syntax." + ), + metavar="entry-func", + ) + arg_parser.add_argument( + "-H", + "--hostname", + help="TCP/IP hostname to serve on (default: %(default)r)", + default="localhost", + ) + arg_parser.add_argument( + "-P", + "--port", + help="TCP/IP port to serve on (default: %(default)r)", + type=int, + default="8080", + ) + arg_parser.add_argument( + "-U", + "--path", + help="Unix file system path to serve on. Specifying a path will cause " + "hostname and port arguments to be ignored.", + ) + args, extra_argv = arg_parser.parse_known_args(argv) + + # Import logic + mod_str, _, func_str = args.entry_func.partition(":") + if not func_str or not mod_str: + arg_parser.error("'entry-func' not in 'module:function' syntax") + if mod_str.startswith("."): + arg_parser.error("relative module names not supported") + try: + module = import_module(mod_str) + except ImportError as ex: + arg_parser.error(f"unable to import {mod_str}: {ex}") + try: + func = getattr(module, func_str) + except AttributeError: + arg_parser.error(f"module {mod_str!r} has no attribute {func_str!r}") + + # Compatibility logic + if args.path is not None and not hasattr(socket, "AF_UNIX"): + arg_parser.error( + "file system paths not supported by your operating" " environment" + ) + + logging.basicConfig(level=logging.DEBUG) + + app = func(extra_argv) + run_app(app, host=args.hostname, port=args.port, path=args.path) + arg_parser.exit(message="Stopped\n") + + +if __name__ == "__main__": # pragma: no branch + main(sys.argv[1:]) # pragma: no cover diff --git a/gtm/lib/python3.12/site-packages/aiohttp/web_app.py b/gtm/lib/python3.12/site-packages/aiohttp/web_app.py new file mode 100644 index 0000000000000000000000000000000000000000..91bf5fdac619d8e68e7d00581a5b678a15bfd7dd --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/web_app.py @@ -0,0 +1,596 @@ +import asyncio +import logging +import warnings +from functools import partial, update_wrapper +from typing import ( + TYPE_CHECKING, + Any, + AsyncIterator, + Awaitable, + Callable, + Dict, + Iterable, + Iterator, + List, + Mapping, + MutableMapping, + Optional, + Sequence, + Tuple, + Type, + TypeVar, + Union, + cast, + overload, +) + +from aiosignal import Signal +from frozenlist import FrozenList + +from . import hdrs +from .abc import ( + AbstractAccessLogger, + AbstractMatchInfo, + AbstractRouter, + AbstractStreamWriter, +) +from .helpers import DEBUG, AppKey +from .http_parser import RawRequestMessage +from .log import web_logger +from .streams import StreamReader +from .typedefs import Middleware +from .web_exceptions import NotAppKeyWarning +from .web_log import AccessLogger +from .web_middlewares import _fix_request_current_app +from .web_protocol import RequestHandler +from .web_request import Request +from .web_response import StreamResponse +from .web_routedef import AbstractRouteDef +from .web_server import Server +from .web_urldispatcher import ( + AbstractResource, + AbstractRoute, + Domain, + MaskDomain, + MatchedSubAppResource, + PrefixedSubAppResource, + UrlDispatcher, +) + +__all__ = ("Application", "CleanupError") + + +if TYPE_CHECKING: + _AppSignal = Signal[Callable[["Application"], Awaitable[None]]] + _RespPrepareSignal = Signal[Callable[[Request, StreamResponse], Awaitable[None]]] + _Middlewares = FrozenList[Middleware] + _MiddlewaresHandlers = Optional[Sequence[Tuple[Middleware, bool]]] + _Subapps = List["Application"] +else: + # No type checker mode, skip types + _AppSignal = Signal + _RespPrepareSignal = Signal + _Middlewares = FrozenList + _MiddlewaresHandlers = Optional[Sequence] + _Subapps = List + +_T = TypeVar("_T") +_U = TypeVar("_U") + + +class Application(MutableMapping[Union[str, AppKey[Any]], Any]): + ATTRS = frozenset( + [ + "logger", + "_debug", + "_router", + "_loop", + "_handler_args", + "_middlewares", + "_middlewares_handlers", + "_run_middlewares", + "_state", + "_frozen", + "_pre_frozen", + "_subapps", + "_on_response_prepare", + "_on_startup", + "_on_shutdown", + "_on_cleanup", + "_client_max_size", + "_cleanup_ctx", + ] + ) + + def __init__( + self, + *, + logger: logging.Logger = web_logger, + router: Optional[UrlDispatcher] = None, + middlewares: Iterable[Middleware] = (), + handler_args: Optional[Mapping[str, Any]] = None, + client_max_size: int = 1024**2, + loop: Optional[asyncio.AbstractEventLoop] = None, + debug: Any = ..., # mypy doesn't support ellipsis + ) -> None: + if router is None: + router = UrlDispatcher() + else: + warnings.warn( + "router argument is deprecated", DeprecationWarning, stacklevel=2 + ) + assert isinstance(router, AbstractRouter), router + + if loop is not None: + warnings.warn( + "loop argument is deprecated", DeprecationWarning, stacklevel=2 + ) + + if debug is not ...: + warnings.warn( + "debug argument is deprecated", DeprecationWarning, stacklevel=2 + ) + self._debug = debug + self._router: UrlDispatcher = router + self._loop = loop + self._handler_args = handler_args + self.logger = logger + + self._middlewares: _Middlewares = FrozenList(middlewares) + + # initialized on freezing + self._middlewares_handlers: _MiddlewaresHandlers = None + # initialized on freezing + self._run_middlewares: Optional[bool] = None + + self._state: Dict[Union[AppKey[Any], str], object] = {} + self._frozen = False + self._pre_frozen = False + self._subapps: _Subapps = [] + + self._on_response_prepare: _RespPrepareSignal = Signal(self) + self._on_startup: _AppSignal = Signal(self) + self._on_shutdown: _AppSignal = Signal(self) + self._on_cleanup: _AppSignal = Signal(self) + self._cleanup_ctx = CleanupContext() + self._on_startup.append(self._cleanup_ctx._on_startup) + self._on_cleanup.append(self._cleanup_ctx._on_cleanup) + self._client_max_size = client_max_size + + def __init_subclass__(cls: Type["Application"]) -> None: + warnings.warn( + "Inheritance class {} from web.Application " + "is discouraged".format(cls.__name__), + DeprecationWarning, + stacklevel=3, + ) + + if DEBUG: # pragma: no cover + + def __setattr__(self, name: str, val: Any) -> None: + if name not in self.ATTRS: + warnings.warn( + "Setting custom web.Application.{} attribute " + "is discouraged".format(name), + DeprecationWarning, + stacklevel=2, + ) + super().__setattr__(name, val) + + # MutableMapping API + + def __eq__(self, other: object) -> bool: + return self is other + + @overload # type: ignore[override] + def __getitem__(self, key: AppKey[_T]) -> _T: + ... + + @overload + def __getitem__(self, key: str) -> Any: + ... + + def __getitem__(self, key: Union[str, AppKey[_T]]) -> Any: + return self._state[key] + + def _check_frozen(self) -> None: + if self._frozen: + warnings.warn( + "Changing state of started or joined " "application is deprecated", + DeprecationWarning, + stacklevel=3, + ) + + @overload # type: ignore[override] + def __setitem__(self, key: AppKey[_T], value: _T) -> None: + ... + + @overload + def __setitem__(self, key: str, value: Any) -> None: + ... + + def __setitem__(self, key: Union[str, AppKey[_T]], value: Any) -> None: + self._check_frozen() + if not isinstance(key, AppKey): + warnings.warn( + "It is recommended to use web.AppKey instances for keys.\n" + + "https://docs.aiohttp.org/en/stable/web_advanced.html" + + "#application-s-config", + category=NotAppKeyWarning, + stacklevel=2, + ) + self._state[key] = value + + def __delitem__(self, key: Union[str, AppKey[_T]]) -> None: + self._check_frozen() + del self._state[key] + + def __len__(self) -> int: + return len(self._state) + + def __iter__(self) -> Iterator[Union[str, AppKey[Any]]]: + return iter(self._state) + + @overload # type: ignore[override] + def get(self, key: AppKey[_T], default: None = ...) -> Optional[_T]: + ... + + @overload + def get(self, key: AppKey[_T], default: _U) -> Union[_T, _U]: + ... + + @overload + def get(self, key: str, default: Any = ...) -> Any: + ... + + def get(self, key: Union[str, AppKey[_T]], default: Any = None) -> Any: + return self._state.get(key, default) + + ######## + @property + def loop(self) -> asyncio.AbstractEventLoop: + # Technically the loop can be None + # but we mask it by explicit type cast + # to provide more convenient type annotation + warnings.warn("loop property is deprecated", DeprecationWarning, stacklevel=2) + return cast(asyncio.AbstractEventLoop, self._loop) + + def _set_loop(self, loop: Optional[asyncio.AbstractEventLoop]) -> None: + if loop is None: + loop = asyncio.get_event_loop() + if self._loop is not None and self._loop is not loop: + raise RuntimeError( + "web.Application instance initialized with different loop" + ) + + self._loop = loop + + # set loop debug + if self._debug is ...: + self._debug = loop.get_debug() + + # set loop to sub applications + for subapp in self._subapps: + subapp._set_loop(loop) + + @property + def pre_frozen(self) -> bool: + return self._pre_frozen + + def pre_freeze(self) -> None: + if self._pre_frozen: + return + + self._pre_frozen = True + self._middlewares.freeze() + self._router.freeze() + self._on_response_prepare.freeze() + self._cleanup_ctx.freeze() + self._on_startup.freeze() + self._on_shutdown.freeze() + self._on_cleanup.freeze() + self._middlewares_handlers = tuple(self._prepare_middleware()) + + # If current app and any subapp do not have middlewares avoid run all + # of the code footprint that it implies, which have a middleware + # hardcoded per app that sets up the current_app attribute. If no + # middlewares are configured the handler will receive the proper + # current_app without needing all of this code. + self._run_middlewares = True if self.middlewares else False + + for subapp in self._subapps: + subapp.pre_freeze() + self._run_middlewares = self._run_middlewares or subapp._run_middlewares + + @property + def frozen(self) -> bool: + return self._frozen + + def freeze(self) -> None: + if self._frozen: + return + + self.pre_freeze() + self._frozen = True + for subapp in self._subapps: + subapp.freeze() + + @property + def debug(self) -> bool: + warnings.warn("debug property is deprecated", DeprecationWarning, stacklevel=2) + return self._debug # type: ignore[no-any-return] + + def _reg_subapp_signals(self, subapp: "Application") -> None: + def reg_handler(signame: str) -> None: + subsig = getattr(subapp, signame) + + async def handler(app: "Application") -> None: + await subsig.send(subapp) + + appsig = getattr(self, signame) + appsig.append(handler) + + reg_handler("on_startup") + reg_handler("on_shutdown") + reg_handler("on_cleanup") + + def add_subapp(self, prefix: str, subapp: "Application") -> AbstractResource: + if not isinstance(prefix, str): + raise TypeError("Prefix must be str") + prefix = prefix.rstrip("/") + if not prefix: + raise ValueError("Prefix cannot be empty") + factory = partial(PrefixedSubAppResource, prefix, subapp) + return self._add_subapp(factory, subapp) + + def _add_subapp( + self, resource_factory: Callable[[], AbstractResource], subapp: "Application" + ) -> AbstractResource: + if self.frozen: + raise RuntimeError("Cannot add sub application to frozen application") + if subapp.frozen: + raise RuntimeError("Cannot add frozen application") + resource = resource_factory() + self.router.register_resource(resource) + self._reg_subapp_signals(subapp) + self._subapps.append(subapp) + subapp.pre_freeze() + if self._loop is not None: + subapp._set_loop(self._loop) + return resource + + def add_domain(self, domain: str, subapp: "Application") -> AbstractResource: + if not isinstance(domain, str): + raise TypeError("Domain must be str") + elif "*" in domain: + rule: Domain = MaskDomain(domain) + else: + rule = Domain(domain) + factory = partial(MatchedSubAppResource, rule, subapp) + return self._add_subapp(factory, subapp) + + def add_routes(self, routes: Iterable[AbstractRouteDef]) -> List[AbstractRoute]: + return self.router.add_routes(routes) + + @property + def on_response_prepare(self) -> _RespPrepareSignal: + return self._on_response_prepare + + @property + def on_startup(self) -> _AppSignal: + return self._on_startup + + @property + def on_shutdown(self) -> _AppSignal: + return self._on_shutdown + + @property + def on_cleanup(self) -> _AppSignal: + return self._on_cleanup + + @property + def cleanup_ctx(self) -> "CleanupContext": + return self._cleanup_ctx + + @property + def router(self) -> UrlDispatcher: + return self._router + + @property + def middlewares(self) -> _Middlewares: + return self._middlewares + + def _make_handler( + self, + *, + loop: Optional[asyncio.AbstractEventLoop] = None, + access_log_class: Type[AbstractAccessLogger] = AccessLogger, + **kwargs: Any, + ) -> Server: + + if not issubclass(access_log_class, AbstractAccessLogger): + raise TypeError( + "access_log_class must be subclass of " + "aiohttp.abc.AbstractAccessLogger, got {}".format(access_log_class) + ) + + self._set_loop(loop) + self.freeze() + + kwargs["debug"] = self._debug + kwargs["access_log_class"] = access_log_class + if self._handler_args: + for k, v in self._handler_args.items(): + kwargs[k] = v + + return Server( + self._handle, # type: ignore[arg-type] + request_factory=self._make_request, + loop=self._loop, + **kwargs, + ) + + def make_handler( + self, + *, + loop: Optional[asyncio.AbstractEventLoop] = None, + access_log_class: Type[AbstractAccessLogger] = AccessLogger, + **kwargs: Any, + ) -> Server: + + warnings.warn( + "Application.make_handler(...) is deprecated, " "use AppRunner API instead", + DeprecationWarning, + stacklevel=2, + ) + + return self._make_handler( + loop=loop, access_log_class=access_log_class, **kwargs + ) + + async def startup(self) -> None: + """Causes on_startup signal + + Should be called in the event loop along with the request handler. + """ + await self.on_startup.send(self) + + async def shutdown(self) -> None: + """Causes on_shutdown signal + + Should be called before cleanup() + """ + await self.on_shutdown.send(self) + + async def cleanup(self) -> None: + """Causes on_cleanup signal + + Should be called after shutdown() + """ + if self.on_cleanup.frozen: + await self.on_cleanup.send(self) + else: + # If an exception occurs in startup, ensure cleanup contexts are completed. + await self._cleanup_ctx._on_cleanup(self) + + def _make_request( + self, + message: RawRequestMessage, + payload: StreamReader, + protocol: RequestHandler, + writer: AbstractStreamWriter, + task: "asyncio.Task[None]", + _cls: Type[Request] = Request, + ) -> Request: + return _cls( + message, + payload, + protocol, + writer, + task, + self._loop, + client_max_size=self._client_max_size, + ) + + def _prepare_middleware(self) -> Iterator[Tuple[Middleware, bool]]: + for m in reversed(self._middlewares): + if getattr(m, "__middleware_version__", None) == 1: + yield m, True + else: + warnings.warn( + 'old-style middleware "{!r}" deprecated, ' "see #2252".format(m), + DeprecationWarning, + stacklevel=2, + ) + yield m, False + + yield _fix_request_current_app(self), True + + async def _handle(self, request: Request) -> StreamResponse: + loop = asyncio.get_event_loop() + debug = loop.get_debug() + match_info = await self._router.resolve(request) + if debug: # pragma: no cover + if not isinstance(match_info, AbstractMatchInfo): + raise TypeError( + "match_info should be AbstractMatchInfo " + "instance, not {!r}".format(match_info) + ) + match_info.add_app(self) + + match_info.freeze() + + resp = None + request._match_info = match_info + expect = request.headers.get(hdrs.EXPECT) + if expect: + resp = await match_info.expect_handler(request) + await request.writer.drain() + + if resp is None: + handler = match_info.handler + + if self._run_middlewares: + for app in match_info.apps[::-1]: + for m, new_style in app._middlewares_handlers: # type: ignore[union-attr] + if new_style: + handler = update_wrapper( + partial(m, handler=handler), handler + ) + else: + handler = await m(app, handler) # type: ignore[arg-type,assignment] + + resp = await handler(request) + + return resp + + def __call__(self) -> "Application": + """gunicorn compatibility""" + return self + + def __repr__(self) -> str: + return f"" + + def __bool__(self) -> bool: + return True + + +class CleanupError(RuntimeError): + @property + def exceptions(self) -> List[BaseException]: + return cast(List[BaseException], self.args[1]) + + +if TYPE_CHECKING: + _CleanupContextBase = FrozenList[Callable[[Application], AsyncIterator[None]]] +else: + _CleanupContextBase = FrozenList + + +class CleanupContext(_CleanupContextBase): + def __init__(self) -> None: + super().__init__() + self._exits: List[AsyncIterator[None]] = [] + + async def _on_startup(self, app: Application) -> None: + for cb in self: + it = cb(app).__aiter__() + await it.__anext__() + self._exits.append(it) + + async def _on_cleanup(self, app: Application) -> None: + errors = [] + for it in reversed(self._exits): + try: + await it.__anext__() + except StopAsyncIteration: + pass + except Exception as exc: + errors.append(exc) + else: + errors.append(RuntimeError(f"{it!r} has more than one 'yield'")) + if errors: + if len(errors) == 1: + raise errors[0] + else: + raise CleanupError("Multiple errors on cleanup stage", errors) diff --git a/gtm/lib/python3.12/site-packages/aiohttp/web_exceptions.py b/gtm/lib/python3.12/site-packages/aiohttp/web_exceptions.py new file mode 100644 index 0000000000000000000000000000000000000000..ee2c1e72d40ac93c00cbfcef6c84888a336855a3 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/web_exceptions.py @@ -0,0 +1,452 @@ +import warnings +from typing import Any, Dict, Iterable, List, Optional, Set # noqa + +from yarl import URL + +from .typedefs import LooseHeaders, StrOrURL +from .web_response import Response + +__all__ = ( + "HTTPException", + "HTTPError", + "HTTPRedirection", + "HTTPSuccessful", + "HTTPOk", + "HTTPCreated", + "HTTPAccepted", + "HTTPNonAuthoritativeInformation", + "HTTPNoContent", + "HTTPResetContent", + "HTTPPartialContent", + "HTTPMove", + "HTTPMultipleChoices", + "HTTPMovedPermanently", + "HTTPFound", + "HTTPSeeOther", + "HTTPNotModified", + "HTTPUseProxy", + "HTTPTemporaryRedirect", + "HTTPPermanentRedirect", + "HTTPClientError", + "HTTPBadRequest", + "HTTPUnauthorized", + "HTTPPaymentRequired", + "HTTPForbidden", + "HTTPNotFound", + "HTTPMethodNotAllowed", + "HTTPNotAcceptable", + "HTTPProxyAuthenticationRequired", + "HTTPRequestTimeout", + "HTTPConflict", + "HTTPGone", + "HTTPLengthRequired", + "HTTPPreconditionFailed", + "HTTPRequestEntityTooLarge", + "HTTPRequestURITooLong", + "HTTPUnsupportedMediaType", + "HTTPRequestRangeNotSatisfiable", + "HTTPExpectationFailed", + "HTTPMisdirectedRequest", + "HTTPUnprocessableEntity", + "HTTPFailedDependency", + "HTTPUpgradeRequired", + "HTTPPreconditionRequired", + "HTTPTooManyRequests", + "HTTPRequestHeaderFieldsTooLarge", + "HTTPUnavailableForLegalReasons", + "HTTPServerError", + "HTTPInternalServerError", + "HTTPNotImplemented", + "HTTPBadGateway", + "HTTPServiceUnavailable", + "HTTPGatewayTimeout", + "HTTPVersionNotSupported", + "HTTPVariantAlsoNegotiates", + "HTTPInsufficientStorage", + "HTTPNotExtended", + "HTTPNetworkAuthenticationRequired", +) + + +class NotAppKeyWarning(UserWarning): + """Warning when not using AppKey in Application.""" + + +############################################################ +# HTTP Exceptions +############################################################ + + +class HTTPException(Response, Exception): + + # You should set in subclasses: + # status = 200 + + status_code = -1 + empty_body = False + + __http_exception__ = True + + def __init__( + self, + *, + headers: Optional[LooseHeaders] = None, + reason: Optional[str] = None, + body: Any = None, + text: Optional[str] = None, + content_type: Optional[str] = None, + ) -> None: + if body is not None: + warnings.warn( + "body argument is deprecated for http web exceptions", + DeprecationWarning, + ) + Response.__init__( + self, + status=self.status_code, + headers=headers, + reason=reason, + body=body, + text=text, + content_type=content_type, + ) + Exception.__init__(self, self.reason) + if self.body is None and not self.empty_body: + self.text = f"{self.status}: {self.reason}" + + def __bool__(self) -> bool: + return True + + +class HTTPError(HTTPException): + """Base class for exceptions with status codes in the 400s and 500s.""" + + +class HTTPRedirection(HTTPException): + """Base class for exceptions with status codes in the 300s.""" + + +class HTTPSuccessful(HTTPException): + """Base class for exceptions with status codes in the 200s.""" + + +class HTTPOk(HTTPSuccessful): + status_code = 200 + + +class HTTPCreated(HTTPSuccessful): + status_code = 201 + + +class HTTPAccepted(HTTPSuccessful): + status_code = 202 + + +class HTTPNonAuthoritativeInformation(HTTPSuccessful): + status_code = 203 + + +class HTTPNoContent(HTTPSuccessful): + status_code = 204 + empty_body = True + + +class HTTPResetContent(HTTPSuccessful): + status_code = 205 + empty_body = True + + +class HTTPPartialContent(HTTPSuccessful): + status_code = 206 + + +############################################################ +# 3xx redirection +############################################################ + + +class HTTPMove(HTTPRedirection): + def __init__( + self, + location: StrOrURL, + *, + headers: Optional[LooseHeaders] = None, + reason: Optional[str] = None, + body: Any = None, + text: Optional[str] = None, + content_type: Optional[str] = None, + ) -> None: + if not location: + raise ValueError("HTTP redirects need a location to redirect to.") + super().__init__( + headers=headers, + reason=reason, + body=body, + text=text, + content_type=content_type, + ) + self.headers["Location"] = str(URL(location)) + self.location = location + + +class HTTPMultipleChoices(HTTPMove): + status_code = 300 + + +class HTTPMovedPermanently(HTTPMove): + status_code = 301 + + +class HTTPFound(HTTPMove): + status_code = 302 + + +# This one is safe after a POST (the redirected location will be +# retrieved with GET): +class HTTPSeeOther(HTTPMove): + status_code = 303 + + +class HTTPNotModified(HTTPRedirection): + # FIXME: this should include a date or etag header + status_code = 304 + empty_body = True + + +class HTTPUseProxy(HTTPMove): + # Not a move, but looks a little like one + status_code = 305 + + +class HTTPTemporaryRedirect(HTTPMove): + status_code = 307 + + +class HTTPPermanentRedirect(HTTPMove): + status_code = 308 + + +############################################################ +# 4xx client error +############################################################ + + +class HTTPClientError(HTTPError): + pass + + +class HTTPBadRequest(HTTPClientError): + status_code = 400 + + +class HTTPUnauthorized(HTTPClientError): + status_code = 401 + + +class HTTPPaymentRequired(HTTPClientError): + status_code = 402 + + +class HTTPForbidden(HTTPClientError): + status_code = 403 + + +class HTTPNotFound(HTTPClientError): + status_code = 404 + + +class HTTPMethodNotAllowed(HTTPClientError): + status_code = 405 + + def __init__( + self, + method: str, + allowed_methods: Iterable[str], + *, + headers: Optional[LooseHeaders] = None, + reason: Optional[str] = None, + body: Any = None, + text: Optional[str] = None, + content_type: Optional[str] = None, + ) -> None: + allow = ",".join(sorted(allowed_methods)) + super().__init__( + headers=headers, + reason=reason, + body=body, + text=text, + content_type=content_type, + ) + self.headers["Allow"] = allow + self.allowed_methods: Set[str] = set(allowed_methods) + self.method = method.upper() + + +class HTTPNotAcceptable(HTTPClientError): + status_code = 406 + + +class HTTPProxyAuthenticationRequired(HTTPClientError): + status_code = 407 + + +class HTTPRequestTimeout(HTTPClientError): + status_code = 408 + + +class HTTPConflict(HTTPClientError): + status_code = 409 + + +class HTTPGone(HTTPClientError): + status_code = 410 + + +class HTTPLengthRequired(HTTPClientError): + status_code = 411 + + +class HTTPPreconditionFailed(HTTPClientError): + status_code = 412 + + +class HTTPRequestEntityTooLarge(HTTPClientError): + status_code = 413 + + def __init__(self, max_size: float, actual_size: float, **kwargs: Any) -> None: + kwargs.setdefault( + "text", + "Maximum request body size {} exceeded, " + "actual body size {}".format(max_size, actual_size), + ) + super().__init__(**kwargs) + + +class HTTPRequestURITooLong(HTTPClientError): + status_code = 414 + + +class HTTPUnsupportedMediaType(HTTPClientError): + status_code = 415 + + +class HTTPRequestRangeNotSatisfiable(HTTPClientError): + status_code = 416 + + +class HTTPExpectationFailed(HTTPClientError): + status_code = 417 + + +class HTTPMisdirectedRequest(HTTPClientError): + status_code = 421 + + +class HTTPUnprocessableEntity(HTTPClientError): + status_code = 422 + + +class HTTPFailedDependency(HTTPClientError): + status_code = 424 + + +class HTTPUpgradeRequired(HTTPClientError): + status_code = 426 + + +class HTTPPreconditionRequired(HTTPClientError): + status_code = 428 + + +class HTTPTooManyRequests(HTTPClientError): + status_code = 429 + + +class HTTPRequestHeaderFieldsTooLarge(HTTPClientError): + status_code = 431 + + +class HTTPUnavailableForLegalReasons(HTTPClientError): + status_code = 451 + + def __init__( + self, + link: Optional[StrOrURL], + *, + headers: Optional[LooseHeaders] = None, + reason: Optional[str] = None, + body: Any = None, + text: Optional[str] = None, + content_type: Optional[str] = None, + ) -> None: + super().__init__( + headers=headers, + reason=reason, + body=body, + text=text, + content_type=content_type, + ) + self._link = None + if link: + self._link = URL(link) + self.headers["Link"] = f'<{str(self._link)}>; rel="blocked-by"' + + @property + def link(self) -> Optional[URL]: + return self._link + + +############################################################ +# 5xx Server Error +############################################################ +# Response status codes beginning with the digit "5" indicate cases in +# which the server is aware that it has erred or is incapable of +# performing the request. Except when responding to a HEAD request, the +# server SHOULD include an entity containing an explanation of the error +# situation, and whether it is a temporary or permanent condition. User +# agents SHOULD display any included entity to the user. These response +# codes are applicable to any request method. + + +class HTTPServerError(HTTPError): + pass + + +class HTTPInternalServerError(HTTPServerError): + status_code = 500 + + +class HTTPNotImplemented(HTTPServerError): + status_code = 501 + + +class HTTPBadGateway(HTTPServerError): + status_code = 502 + + +class HTTPServiceUnavailable(HTTPServerError): + status_code = 503 + + +class HTTPGatewayTimeout(HTTPServerError): + status_code = 504 + + +class HTTPVersionNotSupported(HTTPServerError): + status_code = 505 + + +class HTTPVariantAlsoNegotiates(HTTPServerError): + status_code = 506 + + +class HTTPInsufficientStorage(HTTPServerError): + status_code = 507 + + +class HTTPNotExtended(HTTPServerError): + status_code = 510 + + +class HTTPNetworkAuthenticationRequired(HTTPServerError): + status_code = 511 diff --git a/gtm/lib/python3.12/site-packages/aiohttp/web_fileresponse.py b/gtm/lib/python3.12/site-packages/aiohttp/web_fileresponse.py new file mode 100644 index 0000000000000000000000000000000000000000..6496ffaf3179c88333d0d1fd11ef9172470d6c11 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/web_fileresponse.py @@ -0,0 +1,301 @@ +import asyncio +import mimetypes +import os +import pathlib +from typing import ( # noqa + IO, + TYPE_CHECKING, + Any, + Awaitable, + Callable, + Final, + Iterator, + List, + Optional, + Tuple, + Union, + cast, +) + +from . import hdrs +from .abc import AbstractStreamWriter +from .helpers import ETAG_ANY, ETag, must_be_empty_body +from .typedefs import LooseHeaders, PathLike +from .web_exceptions import ( + HTTPNotModified, + HTTPPartialContent, + HTTPPreconditionFailed, + HTTPRequestRangeNotSatisfiable, +) +from .web_response import StreamResponse + +__all__ = ("FileResponse",) + +if TYPE_CHECKING: + from .web_request import BaseRequest + + +_T_OnChunkSent = Optional[Callable[[bytes], Awaitable[None]]] + + +NOSENDFILE: Final[bool] = bool(os.environ.get("AIOHTTP_NOSENDFILE")) + + +class FileResponse(StreamResponse): + """A response object can be used to send files.""" + + def __init__( + self, + path: PathLike, + chunk_size: int = 256 * 1024, + status: int = 200, + reason: Optional[str] = None, + headers: Optional[LooseHeaders] = None, + ) -> None: + super().__init__(status=status, reason=reason, headers=headers) + + self._path = pathlib.Path(path) + self._chunk_size = chunk_size + + async def _sendfile_fallback( + self, writer: AbstractStreamWriter, fobj: IO[Any], offset: int, count: int + ) -> AbstractStreamWriter: + # To keep memory usage low,fobj is transferred in chunks + # controlled by the constructor's chunk_size argument. + + chunk_size = self._chunk_size + loop = asyncio.get_event_loop() + + await loop.run_in_executor(None, fobj.seek, offset) + + chunk = await loop.run_in_executor(None, fobj.read, chunk_size) + while chunk: + await writer.write(chunk) + count = count - chunk_size + if count <= 0: + break + chunk = await loop.run_in_executor(None, fobj.read, min(chunk_size, count)) + + await writer.drain() + return writer + + async def _sendfile( + self, request: "BaseRequest", fobj: IO[Any], offset: int, count: int + ) -> AbstractStreamWriter: + writer = await super().prepare(request) + assert writer is not None + + if NOSENDFILE or self.compression: + return await self._sendfile_fallback(writer, fobj, offset, count) + + loop = request._loop + transport = request.transport + assert transport is not None + + try: + await loop.sendfile(transport, fobj, offset, count) + except NotImplementedError: + return await self._sendfile_fallback(writer, fobj, offset, count) + + await super().write_eof() + return writer + + @staticmethod + def _strong_etag_match(etag_value: str, etags: Tuple[ETag, ...]) -> bool: + if len(etags) == 1 and etags[0].value == ETAG_ANY: + return True + return any(etag.value == etag_value for etag in etags if not etag.is_weak) + + async def _not_modified( + self, request: "BaseRequest", etag_value: str, last_modified: float + ) -> Optional[AbstractStreamWriter]: + self.set_status(HTTPNotModified.status_code) + self._length_check = False + self.etag = etag_value # type: ignore[assignment] + self.last_modified = last_modified # type: ignore[assignment] + # Delete any Content-Length headers provided by user. HTTP 304 + # should always have empty response body + return await super().prepare(request) + + async def _precondition_failed( + self, request: "BaseRequest" + ) -> Optional[AbstractStreamWriter]: + self.set_status(HTTPPreconditionFailed.status_code) + self.content_length = 0 + return await super().prepare(request) + + def _get_file_path_stat_and_gzip( + self, check_for_gzipped_file: bool + ) -> Tuple[pathlib.Path, os.stat_result, bool]: + """Return the file path, stat result, and gzip status. + + This method should be called from a thread executor + since it calls os.stat which may block. + """ + filepath = self._path + if check_for_gzipped_file: + gzip_path = filepath.with_name(filepath.name + ".gz") + try: + return gzip_path, gzip_path.stat(), True + except OSError: + # Fall through and try the non-gzipped file + pass + + return filepath, filepath.stat(), False + + async def prepare(self, request: "BaseRequest") -> Optional[AbstractStreamWriter]: + loop = asyncio.get_event_loop() + check_for_gzipped_file = "gzip" in request.headers.get(hdrs.ACCEPT_ENCODING, "") + filepath, st, gzip = await loop.run_in_executor( + None, self._get_file_path_stat_and_gzip, check_for_gzipped_file + ) + + etag_value = f"{st.st_mtime_ns:x}-{st.st_size:x}" + last_modified = st.st_mtime + + # https://tools.ietf.org/html/rfc7232#section-6 + ifmatch = request.if_match + if ifmatch is not None and not self._strong_etag_match(etag_value, ifmatch): + return await self._precondition_failed(request) + + unmodsince = request.if_unmodified_since + if ( + unmodsince is not None + and ifmatch is None + and st.st_mtime > unmodsince.timestamp() + ): + return await self._precondition_failed(request) + + ifnonematch = request.if_none_match + if ifnonematch is not None and self._strong_etag_match(etag_value, ifnonematch): + return await self._not_modified(request, etag_value, last_modified) + + modsince = request.if_modified_since + if ( + modsince is not None + and ifnonematch is None + and st.st_mtime <= modsince.timestamp() + ): + return await self._not_modified(request, etag_value, last_modified) + + if hdrs.CONTENT_TYPE not in self.headers: + ct, encoding = mimetypes.guess_type(str(filepath)) + if not ct: + ct = "application/octet-stream" + should_set_ct = True + else: + encoding = "gzip" if gzip else None + should_set_ct = False + + status = self._status + file_size = st.st_size + count = file_size + + start = None + + ifrange = request.if_range + if ifrange is None or st.st_mtime <= ifrange.timestamp(): + # If-Range header check: + # condition = cached date >= last modification date + # return 206 if True else 200. + # if False: + # Range header would not be processed, return 200 + # if True but Range header missing + # return 200 + try: + rng = request.http_range + start = rng.start + end = rng.stop + except ValueError: + # https://tools.ietf.org/html/rfc7233: + # A server generating a 416 (Range Not Satisfiable) response to + # a byte-range request SHOULD send a Content-Range header field + # with an unsatisfied-range value. + # The complete-length in a 416 response indicates the current + # length of the selected representation. + # + # Will do the same below. Many servers ignore this and do not + # send a Content-Range header with HTTP 416 + self.headers[hdrs.CONTENT_RANGE] = f"bytes */{file_size}" + self.set_status(HTTPRequestRangeNotSatisfiable.status_code) + return await super().prepare(request) + + # If a range request has been made, convert start, end slice + # notation into file pointer offset and count + if start is not None or end is not None: + if start < 0 and end is None: # return tail of file + start += file_size + if start < 0: + # if Range:bytes=-1000 in request header but file size + # is only 200, there would be trouble without this + start = 0 + count = file_size - start + else: + # rfc7233:If the last-byte-pos value is + # absent, or if the value is greater than or equal to + # the current length of the representation data, + # the byte range is interpreted as the remainder + # of the representation (i.e., the server replaces the + # value of last-byte-pos with a value that is one less than + # the current length of the selected representation). + count = ( + min(end if end is not None else file_size, file_size) - start + ) + + if start >= file_size: + # HTTP 416 should be returned in this case. + # + # According to https://tools.ietf.org/html/rfc7233: + # If a valid byte-range-set includes at least one + # byte-range-spec with a first-byte-pos that is less than + # the current length of the representation, or at least one + # suffix-byte-range-spec with a non-zero suffix-length, + # then the byte-range-set is satisfiable. Otherwise, the + # byte-range-set is unsatisfiable. + self.headers[hdrs.CONTENT_RANGE] = f"bytes */{file_size}" + self.set_status(HTTPRequestRangeNotSatisfiable.status_code) + return await super().prepare(request) + + status = HTTPPartialContent.status_code + # Even though you are sending the whole file, you should still + # return a HTTP 206 for a Range request. + self.set_status(status) + + if should_set_ct: + self.content_type = ct # type: ignore[assignment] + if encoding: + self.headers[hdrs.CONTENT_ENCODING] = encoding + if gzip: + self.headers[hdrs.VARY] = hdrs.ACCEPT_ENCODING + # Disable compression if we are already sending + # a compressed file since we don't want to double + # compress. + self._compression = False + + self.etag = etag_value # type: ignore[assignment] + self.last_modified = st.st_mtime # type: ignore[assignment] + self.content_length = count + + self.headers[hdrs.ACCEPT_RANGES] = "bytes" + + real_start = cast(int, start) + + if status == HTTPPartialContent.status_code: + self.headers[hdrs.CONTENT_RANGE] = "bytes {}-{}/{}".format( + real_start, real_start + count - 1, file_size + ) + + # If we are sending 0 bytes calling sendfile() will throw a ValueError + if count == 0 or must_be_empty_body(request.method, self.status): + return await super().prepare(request) + + fobj = await loop.run_in_executor(None, filepath.open, "rb") + if start: # be aware that start could be None or int=0 here. + offset = start + else: + offset = 0 + + try: + return await self._sendfile(request, fobj, offset, count) + finally: + await asyncio.shield(loop.run_in_executor(None, fobj.close)) diff --git a/gtm/lib/python3.12/site-packages/aiohttp/web_log.py b/gtm/lib/python3.12/site-packages/aiohttp/web_log.py new file mode 100644 index 0000000000000000000000000000000000000000..633e9e3ae6b165eb4386b0077545bc8561b1c1a0 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/web_log.py @@ -0,0 +1,213 @@ +import datetime +import functools +import logging +import os +import re +import time as time_mod +from collections import namedtuple +from typing import Any, Callable, Dict, Iterable, List, Tuple # noqa + +from .abc import AbstractAccessLogger +from .web_request import BaseRequest +from .web_response import StreamResponse + +KeyMethod = namedtuple("KeyMethod", "key method") + + +class AccessLogger(AbstractAccessLogger): + """Helper object to log access. + + Usage: + log = logging.getLogger("spam") + log_format = "%a %{User-Agent}i" + access_logger = AccessLogger(log, log_format) + access_logger.log(request, response, time) + + Format: + %% The percent sign + %a Remote IP-address (IP-address of proxy if using reverse proxy) + %t Time when the request was started to process + %P The process ID of the child that serviced the request + %r First line of request + %s Response status code + %b Size of response in bytes, including HTTP headers + %T Time taken to serve the request, in seconds + %Tf Time taken to serve the request, in seconds with floating fraction + in .06f format + %D Time taken to serve the request, in microseconds + %{FOO}i request.headers['FOO'] + %{FOO}o response.headers['FOO'] + %{FOO}e os.environ['FOO'] + + """ + + LOG_FORMAT_MAP = { + "a": "remote_address", + "t": "request_start_time", + "P": "process_id", + "r": "first_request_line", + "s": "response_status", + "b": "response_size", + "T": "request_time", + "Tf": "request_time_frac", + "D": "request_time_micro", + "i": "request_header", + "o": "response_header", + } + + LOG_FORMAT = '%a %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"' + FORMAT_RE = re.compile(r"%(\{([A-Za-z0-9\-_]+)\}([ioe])|[atPrsbOD]|Tf?)") + CLEANUP_RE = re.compile(r"(%[^s])") + _FORMAT_CACHE: Dict[str, Tuple[str, List[KeyMethod]]] = {} + + def __init__(self, logger: logging.Logger, log_format: str = LOG_FORMAT) -> None: + """Initialise the logger. + + logger is a logger object to be used for logging. + log_format is a string with apache compatible log format description. + + """ + super().__init__(logger, log_format=log_format) + + _compiled_format = AccessLogger._FORMAT_CACHE.get(log_format) + if not _compiled_format: + _compiled_format = self.compile_format(log_format) + AccessLogger._FORMAT_CACHE[log_format] = _compiled_format + + self._log_format, self._methods = _compiled_format + + def compile_format(self, log_format: str) -> Tuple[str, List[KeyMethod]]: + """Translate log_format into form usable by modulo formatting + + All known atoms will be replaced with %s + Also methods for formatting of those atoms will be added to + _methods in appropriate order + + For example we have log_format = "%a %t" + This format will be translated to "%s %s" + Also contents of _methods will be + [self._format_a, self._format_t] + These method will be called and results will be passed + to translated string format. + + Each _format_* method receive 'args' which is list of arguments + given to self.log + + Exceptions are _format_e, _format_i and _format_o methods which + also receive key name (by functools.partial) + + """ + # list of (key, method) tuples, we don't use an OrderedDict as users + # can repeat the same key more than once + methods = list() + + for atom in self.FORMAT_RE.findall(log_format): + if atom[1] == "": + format_key1 = self.LOG_FORMAT_MAP[atom[0]] + m = getattr(AccessLogger, "_format_%s" % atom[0]) + key_method = KeyMethod(format_key1, m) + else: + format_key2 = (self.LOG_FORMAT_MAP[atom[2]], atom[1]) + m = getattr(AccessLogger, "_format_%s" % atom[2]) + key_method = KeyMethod(format_key2, functools.partial(m, atom[1])) + + methods.append(key_method) + + log_format = self.FORMAT_RE.sub(r"%s", log_format) + log_format = self.CLEANUP_RE.sub(r"%\1", log_format) + return log_format, methods + + @staticmethod + def _format_i( + key: str, request: BaseRequest, response: StreamResponse, time: float + ) -> str: + if request is None: + return "(no headers)" + + # suboptimal, make istr(key) once + return request.headers.get(key, "-") + + @staticmethod + def _format_o( + key: str, request: BaseRequest, response: StreamResponse, time: float + ) -> str: + # suboptimal, make istr(key) once + return response.headers.get(key, "-") + + @staticmethod + def _format_a(request: BaseRequest, response: StreamResponse, time: float) -> str: + if request is None: + return "-" + ip = request.remote + return ip if ip is not None else "-" + + @staticmethod + def _format_t(request: BaseRequest, response: StreamResponse, time: float) -> str: + tz = datetime.timezone(datetime.timedelta(seconds=-time_mod.timezone)) + now = datetime.datetime.now(tz) + start_time = now - datetime.timedelta(seconds=time) + return start_time.strftime("[%d/%b/%Y:%H:%M:%S %z]") + + @staticmethod + def _format_P(request: BaseRequest, response: StreamResponse, time: float) -> str: + return "<%s>" % os.getpid() + + @staticmethod + def _format_r(request: BaseRequest, response: StreamResponse, time: float) -> str: + if request is None: + return "-" + return "{} {} HTTP/{}.{}".format( + request.method, + request.path_qs, + request.version.major, + request.version.minor, + ) + + @staticmethod + def _format_s(request: BaseRequest, response: StreamResponse, time: float) -> int: + return response.status + + @staticmethod + def _format_b(request: BaseRequest, response: StreamResponse, time: float) -> int: + return response.body_length + + @staticmethod + def _format_T(request: BaseRequest, response: StreamResponse, time: float) -> str: + return str(round(time)) + + @staticmethod + def _format_Tf(request: BaseRequest, response: StreamResponse, time: float) -> str: + return "%06f" % time + + @staticmethod + def _format_D(request: BaseRequest, response: StreamResponse, time: float) -> str: + return str(round(time * 1000000)) + + def _format_line( + self, request: BaseRequest, response: StreamResponse, time: float + ) -> Iterable[Tuple[str, Callable[[BaseRequest, StreamResponse, float], str]]]: + return [(key, method(request, response, time)) for key, method in self._methods] + + def log(self, request: BaseRequest, response: StreamResponse, time: float) -> None: + if not self.logger.isEnabledFor(logging.INFO): + # Avoid formatting the log line if it will not be emitted. + return + try: + fmt_info = self._format_line(request, response, time) + + values = list() + extra = dict() + for key, value in fmt_info: + values.append(value) + + if key.__class__ is str: + extra[key] = value + else: + k1, k2 = key # type: ignore[misc] + dct = extra.get(k1, {}) # type: ignore[var-annotated,has-type] + dct[k2] = value # type: ignore[index,has-type] + extra[k1] = dct # type: ignore[has-type,assignment] + + self.logger.info(self._log_format % tuple(values), extra=extra) + except Exception: + self.logger.exception("Error in logging") diff --git a/gtm/lib/python3.12/site-packages/aiohttp/web_middlewares.py b/gtm/lib/python3.12/site-packages/aiohttp/web_middlewares.py new file mode 100644 index 0000000000000000000000000000000000000000..5da1533c0df7f754aac552faa54905b5b1b09f2d --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/web_middlewares.py @@ -0,0 +1,116 @@ +import re +from typing import TYPE_CHECKING, Tuple, Type, TypeVar + +from .typedefs import Handler, Middleware +from .web_exceptions import HTTPMove, HTTPPermanentRedirect +from .web_request import Request +from .web_response import StreamResponse +from .web_urldispatcher import SystemRoute + +__all__ = ( + "middleware", + "normalize_path_middleware", +) + +if TYPE_CHECKING: + from .web_app import Application + +_Func = TypeVar("_Func") + + +async def _check_request_resolves(request: Request, path: str) -> Tuple[bool, Request]: + alt_request = request.clone(rel_url=path) + + match_info = await request.app.router.resolve(alt_request) + alt_request._match_info = match_info + + if match_info.http_exception is None: + return True, alt_request + + return False, request + + +def middleware(f: _Func) -> _Func: + f.__middleware_version__ = 1 # type: ignore[attr-defined] + return f + + +def normalize_path_middleware( + *, + append_slash: bool = True, + remove_slash: bool = False, + merge_slashes: bool = True, + redirect_class: Type[HTTPMove] = HTTPPermanentRedirect, +) -> Middleware: + """Factory for producing a middleware that normalizes the path of a request. + + Normalizing means: + - Add or remove a trailing slash to the path. + - Double slashes are replaced by one. + + The middleware returns as soon as it finds a path that resolves + correctly. The order if both merge and append/remove are enabled is + 1) merge slashes + 2) append/remove slash + 3) both merge slashes and append/remove slash. + If the path resolves with at least one of those conditions, it will + redirect to the new path. + + Only one of `append_slash` and `remove_slash` can be enabled. If both + are `True` the factory will raise an assertion error + + If `append_slash` is `True` the middleware will append a slash when + needed. If a resource is defined with trailing slash and the request + comes without it, it will append it automatically. + + If `remove_slash` is `True`, `append_slash` must be `False`. When enabled + the middleware will remove trailing slashes and redirect if the resource + is defined + + If merge_slashes is True, merge multiple consecutive slashes in the + path into one. + """ + correct_configuration = not (append_slash and remove_slash) + assert correct_configuration, "Cannot both remove and append slash" + + @middleware + async def impl(request: Request, handler: Handler) -> StreamResponse: + if isinstance(request.match_info.route, SystemRoute): + paths_to_check = [] + if "?" in request.raw_path: + path, query = request.raw_path.split("?", 1) + query = "?" + query + else: + query = "" + path = request.raw_path + + if merge_slashes: + paths_to_check.append(re.sub("//+", "/", path)) + if append_slash and not request.path.endswith("/"): + paths_to_check.append(path + "/") + if remove_slash and request.path.endswith("/"): + paths_to_check.append(path[:-1]) + if merge_slashes and append_slash: + paths_to_check.append(re.sub("//+", "/", path + "/")) + if merge_slashes and remove_slash: + merged_slashes = re.sub("//+", "/", path) + paths_to_check.append(merged_slashes[:-1]) + + for path in paths_to_check: + path = re.sub("^//+", "/", path) # SECURITY: GHSA-v6wp-4m6f-gcjg + resolves, request = await _check_request_resolves(request, path) + if resolves: + raise redirect_class(request.raw_path + query) + + return await handler(request) + + return impl + + +def _fix_request_current_app(app: "Application") -> Middleware: + @middleware + async def impl(request: Request, handler: Handler) -> StreamResponse: + with request.match_info.set_current_app(app): + return await handler(request) + + return impl diff --git a/gtm/lib/python3.12/site-packages/aiohttp/web_protocol.py b/gtm/lib/python3.12/site-packages/aiohttp/web_protocol.py new file mode 100644 index 0000000000000000000000000000000000000000..ec5856a0a22289b8cba8c78a7c95ebb9d70712de --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/web_protocol.py @@ -0,0 +1,698 @@ +import asyncio +import asyncio.streams +import traceback +import warnings +from collections import deque +from contextlib import suppress +from html import escape as html_escape +from http import HTTPStatus +from logging import Logger +from typing import ( + TYPE_CHECKING, + Any, + Awaitable, + Callable, + Deque, + Optional, + Sequence, + Tuple, + Type, + Union, + cast, +) + +import attr +import yarl + +from .abc import AbstractAccessLogger, AbstractStreamWriter +from .base_protocol import BaseProtocol +from .helpers import ceil_timeout +from .http import ( + HttpProcessingError, + HttpRequestParser, + HttpVersion10, + RawRequestMessage, + StreamWriter, +) +from .log import access_logger, server_logger +from .streams import EMPTY_PAYLOAD, StreamReader +from .tcp_helpers import tcp_keepalive +from .web_exceptions import HTTPException +from .web_log import AccessLogger +from .web_request import BaseRequest +from .web_response import Response, StreamResponse + +__all__ = ("RequestHandler", "RequestPayloadError", "PayloadAccessError") + +if TYPE_CHECKING: + from .web_server import Server + + +_RequestFactory = Callable[ + [ + RawRequestMessage, + StreamReader, + "RequestHandler", + AbstractStreamWriter, + "asyncio.Task[None]", + ], + BaseRequest, +] + +_RequestHandler = Callable[[BaseRequest], Awaitable[StreamResponse]] + +ERROR = RawRequestMessage( + "UNKNOWN", + "/", + HttpVersion10, + {}, # type: ignore[arg-type] + {}, # type: ignore[arg-type] + True, + None, + False, + False, + yarl.URL("/"), +) + + +class RequestPayloadError(Exception): + """Payload parsing error.""" + + +class PayloadAccessError(Exception): + """Payload was accessed after response was sent.""" + + +@attr.s(auto_attribs=True, frozen=True, slots=True) +class _ErrInfo: + status: int + exc: BaseException + message: str + + +_MsgType = Tuple[Union[RawRequestMessage, _ErrInfo], StreamReader] + + +class RequestHandler(BaseProtocol): + """HTTP protocol implementation. + + RequestHandler handles incoming HTTP request. It reads request line, + request headers and request payload and calls handle_request() method. + By default it always returns with 404 response. + + RequestHandler handles errors in incoming request, like bad + status line, bad headers or incomplete payload. If any error occurs, + connection gets closed. + + keepalive_timeout -- number of seconds before closing + keep-alive connection + + tcp_keepalive -- TCP keep-alive is on, default is on + + debug -- enable debug mode + + logger -- custom logger object + + access_log_class -- custom class for access_logger + + access_log -- custom logging object + + access_log_format -- access log format string + + loop -- Optional event loop + + max_line_size -- Optional maximum header line size + + max_field_size -- Optional maximum header field size + + max_headers -- Optional maximum header size + + timeout_ceil_threshold -- Optional value to specify + threshold to ceil() timeout + values + + """ + + KEEPALIVE_RESCHEDULE_DELAY = 1 + + __slots__ = ( + "_request_count", + "_keepalive", + "_manager", + "_request_handler", + "_request_factory", + "_tcp_keepalive", + "_keepalive_time", + "_keepalive_handle", + "_keepalive_timeout", + "_lingering_time", + "_messages", + "_message_tail", + "_waiter", + "_task_handler", + "_upgrade", + "_payload_parser", + "_request_parser", + "_reading_paused", + "logger", + "debug", + "access_log", + "access_logger", + "_close", + "_force_close", + "_current_request", + "_timeout_ceil_threshold", + ) + + def __init__( + self, + manager: "Server", + *, + loop: asyncio.AbstractEventLoop, + keepalive_timeout: float = 75.0, # NGINX default is 75 secs + tcp_keepalive: bool = True, + logger: Logger = server_logger, + access_log_class: Type[AbstractAccessLogger] = AccessLogger, + access_log: Logger = access_logger, + access_log_format: str = AccessLogger.LOG_FORMAT, + debug: bool = False, + max_line_size: int = 8190, + max_headers: int = 32768, + max_field_size: int = 8190, + lingering_time: float = 10.0, + read_bufsize: int = 2**16, + auto_decompress: bool = True, + timeout_ceil_threshold: float = 5, + ): + super().__init__(loop) + + self._request_count = 0 + self._keepalive = False + self._current_request: Optional[BaseRequest] = None + self._manager: Optional[Server] = manager + self._request_handler: Optional[_RequestHandler] = manager.request_handler + self._request_factory: Optional[_RequestFactory] = manager.request_factory + + self._tcp_keepalive = tcp_keepalive + # placeholder to be replaced on keepalive timeout setup + self._keepalive_time = 0.0 + self._keepalive_handle: Optional[asyncio.Handle] = None + self._keepalive_timeout = keepalive_timeout + self._lingering_time = float(lingering_time) + + self._messages: Deque[_MsgType] = deque() + self._message_tail = b"" + + self._waiter: Optional[asyncio.Future[None]] = None + self._task_handler: Optional[asyncio.Task[None]] = None + + self._upgrade = False + self._payload_parser: Any = None + self._request_parser: Optional[HttpRequestParser] = HttpRequestParser( + self, + loop, + read_bufsize, + max_line_size=max_line_size, + max_field_size=max_field_size, + max_headers=max_headers, + payload_exception=RequestPayloadError, + auto_decompress=auto_decompress, + ) + + self._timeout_ceil_threshold: float = 5 + try: + self._timeout_ceil_threshold = float(timeout_ceil_threshold) + except (TypeError, ValueError): + pass + + self.logger = logger + self.debug = debug + self.access_log = access_log + if access_log: + self.access_logger: Optional[AbstractAccessLogger] = access_log_class( + access_log, access_log_format + ) + else: + self.access_logger = None + + self._close = False + self._force_close = False + + def __repr__(self) -> str: + return "<{} {}>".format( + self.__class__.__name__, + "connected" if self.transport is not None else "disconnected", + ) + + @property + def keepalive_timeout(self) -> float: + return self._keepalive_timeout + + async def shutdown(self, timeout: Optional[float] = 15.0) -> None: + """Do worker process exit preparations. + + We need to clean up everything and stop accepting requests. + It is especially important for keep-alive connections. + """ + self._force_close = True + + if self._keepalive_handle is not None: + self._keepalive_handle.cancel() + + if self._waiter: + self._waiter.cancel() + + # wait for handlers + with suppress(asyncio.CancelledError, asyncio.TimeoutError): + async with ceil_timeout(timeout): + if self._current_request is not None: + self._current_request._cancel(asyncio.CancelledError()) + + if self._task_handler is not None and not self._task_handler.done(): + await self._task_handler + + # force-close non-idle handler + if self._task_handler is not None: + self._task_handler.cancel() + + if self.transport is not None: + self.transport.close() + self.transport = None + + def connection_made(self, transport: asyncio.BaseTransport) -> None: + super().connection_made(transport) + + real_transport = cast(asyncio.Transport, transport) + if self._tcp_keepalive: + tcp_keepalive(real_transport) + + self._task_handler = self._loop.create_task(self.start()) + assert self._manager is not None + self._manager.connection_made(self, real_transport) + + def connection_lost(self, exc: Optional[BaseException]) -> None: + if self._manager is None: + return + self._manager.connection_lost(self, exc) + + super().connection_lost(exc) + + # Grab value before setting _manager to None. + handler_cancellation = self._manager.handler_cancellation + + self._manager = None + self._force_close = True + self._request_factory = None + self._request_handler = None + self._request_parser = None + + if self._keepalive_handle is not None: + self._keepalive_handle.cancel() + + if self._current_request is not None: + if exc is None: + exc = ConnectionResetError("Connection lost") + self._current_request._cancel(exc) + + if self._waiter is not None: + self._waiter.cancel() + + if handler_cancellation and self._task_handler is not None: + self._task_handler.cancel() + + self._task_handler = None + + if self._payload_parser is not None: + self._payload_parser.feed_eof() + self._payload_parser = None + + def set_parser(self, parser: Any) -> None: + # Actual type is WebReader + assert self._payload_parser is None + + self._payload_parser = parser + + if self._message_tail: + self._payload_parser.feed_data(self._message_tail) + self._message_tail = b"" + + def eof_received(self) -> None: + pass + + def data_received(self, data: bytes) -> None: + if self._force_close or self._close: + return + # parse http messages + messages: Sequence[_MsgType] + if self._payload_parser is None and not self._upgrade: + assert self._request_parser is not None + try: + messages, upgraded, tail = self._request_parser.feed_data(data) + except HttpProcessingError as exc: + messages = [ + (_ErrInfo(status=400, exc=exc, message=exc.message), EMPTY_PAYLOAD) + ] + upgraded = False + tail = b"" + + for msg, payload in messages or (): + self._request_count += 1 + self._messages.append((msg, payload)) + + waiter = self._waiter + if messages and waiter is not None and not waiter.done(): + # don't set result twice + waiter.set_result(None) + + self._upgrade = upgraded + if upgraded and tail: + self._message_tail = tail + + # no parser, just store + elif self._payload_parser is None and self._upgrade and data: + self._message_tail += data + + # feed payload + elif data: + eof, tail = self._payload_parser.feed_data(data) + if eof: + self.close() + + def keep_alive(self, val: bool) -> None: + """Set keep-alive connection mode. + + :param bool val: new state. + """ + self._keepalive = val + if self._keepalive_handle: + self._keepalive_handle.cancel() + self._keepalive_handle = None + + def close(self) -> None: + """Close connection. + + Stop accepting new pipelining messages and close + connection when handlers done processing messages. + """ + self._close = True + if self._waiter: + self._waiter.cancel() + + def force_close(self) -> None: + """Forcefully close connection.""" + self._force_close = True + if self._waiter: + self._waiter.cancel() + if self.transport is not None: + self.transport.close() + self.transport = None + + def log_access( + self, request: BaseRequest, response: StreamResponse, time: float + ) -> None: + if self.access_logger is not None: + self.access_logger.log(request, response, self._loop.time() - time) + + def log_debug(self, *args: Any, **kw: Any) -> None: + if self.debug: + self.logger.debug(*args, **kw) + + def log_exception(self, *args: Any, **kw: Any) -> None: + self.logger.exception(*args, **kw) + + def _process_keepalive(self) -> None: + if self._force_close or not self._keepalive: + return + + next = self._keepalive_time + self._keepalive_timeout + + # handler in idle state + if self._waiter: + if self._loop.time() > next: + self.force_close() + return + + # not all request handlers are done, + # reschedule itself to next second + self._keepalive_handle = self._loop.call_later( + self.KEEPALIVE_RESCHEDULE_DELAY, + self._process_keepalive, + ) + + async def _handle_request( + self, + request: BaseRequest, + start_time: float, + request_handler: Callable[[BaseRequest], Awaitable[StreamResponse]], + ) -> Tuple[StreamResponse, bool]: + assert self._request_handler is not None + try: + try: + self._current_request = request + resp = await request_handler(request) + finally: + self._current_request = None + except HTTPException as exc: + resp = exc + reset = await self.finish_response(request, resp, start_time) + except asyncio.CancelledError: + raise + except asyncio.TimeoutError as exc: + self.log_debug("Request handler timed out.", exc_info=exc) + resp = self.handle_error(request, 504) + reset = await self.finish_response(request, resp, start_time) + except Exception as exc: + resp = self.handle_error(request, 500, exc) + reset = await self.finish_response(request, resp, start_time) + else: + # Deprecation warning (See #2415) + if getattr(resp, "__http_exception__", False): + warnings.warn( + "returning HTTPException object is deprecated " + "(#2415) and will be removed, " + "please raise the exception instead", + DeprecationWarning, + ) + + reset = await self.finish_response(request, resp, start_time) + + return resp, reset + + async def start(self) -> None: + """Process incoming request. + + It reads request line, request headers and request payload, then + calls handle_request() method. Subclass has to override + handle_request(). start() handles various exceptions in request + or response handling. Connection is being closed always unless + keep_alive(True) specified. + """ + loop = self._loop + handler = self._task_handler + assert handler is not None + manager = self._manager + assert manager is not None + keepalive_timeout = self._keepalive_timeout + resp = None + assert self._request_factory is not None + assert self._request_handler is not None + + while not self._force_close: + if not self._messages: + try: + # wait for next request + self._waiter = loop.create_future() + await self._waiter + except asyncio.CancelledError: + break + finally: + self._waiter = None + + message, payload = self._messages.popleft() + + start = loop.time() + + manager.requests_count += 1 + writer = StreamWriter(self, loop) + if isinstance(message, _ErrInfo): + # make request_factory work + request_handler = self._make_error_handler(message) + message = ERROR + else: + request_handler = self._request_handler + + request = self._request_factory(message, payload, self, writer, handler) + try: + # a new task is used for copy context vars (#3406) + task = self._loop.create_task( + self._handle_request(request, start, request_handler) + ) + try: + resp, reset = await task + except (asyncio.CancelledError, ConnectionError): + self.log_debug("Ignored premature client disconnection") + break + + # Drop the processed task from asyncio.Task.all_tasks() early + del task + if reset: + self.log_debug("Ignored premature client disconnection 2") + break + + # notify server about keep-alive + self._keepalive = bool(resp.keep_alive) + + # check payload + if not payload.is_eof(): + lingering_time = self._lingering_time + if not self._force_close and lingering_time: + self.log_debug( + "Start lingering close timer for %s sec.", lingering_time + ) + + now = loop.time() + end_t = now + lingering_time + + with suppress(asyncio.TimeoutError, asyncio.CancelledError): + while not payload.is_eof() and now < end_t: + async with ceil_timeout(end_t - now): + # read and ignore + await payload.readany() + now = loop.time() + + # if payload still uncompleted + if not payload.is_eof() and not self._force_close: + self.log_debug("Uncompleted request.") + self.close() + + payload.set_exception(PayloadAccessError()) + + except asyncio.CancelledError: + self.log_debug("Ignored premature client disconnection ") + break + except RuntimeError as exc: + if self.debug: + self.log_exception("Unhandled runtime exception", exc_info=exc) + self.force_close() + except Exception as exc: + self.log_exception("Unhandled exception", exc_info=exc) + self.force_close() + finally: + if self.transport is None and resp is not None: + self.log_debug("Ignored premature client disconnection.") + elif not self._force_close: + if self._keepalive and not self._close: + # start keep-alive timer + if keepalive_timeout is not None: + now = self._loop.time() + self._keepalive_time = now + if self._keepalive_handle is None: + self._keepalive_handle = loop.call_at( + now + keepalive_timeout, self._process_keepalive + ) + else: + break + + # remove handler, close transport if no handlers left + if not self._force_close: + self._task_handler = None + if self.transport is not None: + self.transport.close() + + async def finish_response( + self, request: BaseRequest, resp: StreamResponse, start_time: float + ) -> bool: + """Prepare the response and write_eof, then log access. + + This has to + be called within the context of any exception so the access logger + can get exception information. Returns True if the client disconnects + prematurely. + """ + if self._request_parser is not None: + self._request_parser.set_upgraded(False) + self._upgrade = False + if self._message_tail: + self._request_parser.feed_data(self._message_tail) + self._message_tail = b"" + try: + prepare_meth = resp.prepare + except AttributeError: + if resp is None: + raise RuntimeError("Missing return " "statement on request handler") + else: + raise RuntimeError( + "Web-handler should return " + "a response instance, " + "got {!r}".format(resp) + ) + try: + await prepare_meth(request) + await resp.write_eof() + except ConnectionError: + self.log_access(request, resp, start_time) + return True + else: + self.log_access(request, resp, start_time) + return False + + def handle_error( + self, + request: BaseRequest, + status: int = 500, + exc: Optional[BaseException] = None, + message: Optional[str] = None, + ) -> StreamResponse: + """Handle errors. + + Returns HTTP response with specific status code. Logs additional + information. It always closes current connection. + """ + self.log_exception("Error handling request", exc_info=exc) + + # some data already got sent, connection is broken + if request.writer.output_size > 0: + raise ConnectionError( + "Response is sent already, cannot send another response " + "with the error message" + ) + + ct = "text/plain" + if status == HTTPStatus.INTERNAL_SERVER_ERROR: + title = "{0.value} {0.phrase}".format(HTTPStatus.INTERNAL_SERVER_ERROR) + msg = HTTPStatus.INTERNAL_SERVER_ERROR.description + tb = None + if self.debug: + with suppress(Exception): + tb = traceback.format_exc() + + if "text/html" in request.headers.get("Accept", ""): + if tb: + tb = html_escape(tb) + msg = f"

Traceback:

\n
{tb}
" + message = ( + "" + "{title}" + "\n

{title}

" + "\n{msg}\n\n" + ).format(title=title, msg=msg) + ct = "text/html" + else: + if tb: + msg = tb + message = title + "\n\n" + msg + + resp = Response(status=status, text=message, content_type=ct) + resp.force_close() + + return resp + + def _make_error_handler( + self, err_info: _ErrInfo + ) -> Callable[[BaseRequest], Awaitable[StreamResponse]]: + async def handler(request: BaseRequest) -> StreamResponse: + return self.handle_error( + request, err_info.status, err_info.exc, err_info.message + ) + + return handler diff --git a/gtm/lib/python3.12/site-packages/aiohttp/web_request.py b/gtm/lib/python3.12/site-packages/aiohttp/web_request.py new file mode 100644 index 0000000000000000000000000000000000000000..61fc831b03240533d58aff5be43a403960b14eaa --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/web_request.py @@ -0,0 +1,898 @@ +import asyncio +import datetime +import io +import re +import socket +import string +import tempfile +import types +import warnings +from http.cookies import SimpleCookie +from types import MappingProxyType +from typing import ( + TYPE_CHECKING, + Any, + Dict, + Final, + Iterator, + Mapping, + MutableMapping, + Optional, + Pattern, + Tuple, + Union, + cast, +) +from urllib.parse import parse_qsl + +import attr +from multidict import ( + CIMultiDict, + CIMultiDictProxy, + MultiDict, + MultiDictProxy, + MultiMapping, +) +from yarl import URL + +from . import hdrs +from .abc import AbstractStreamWriter +from .helpers import ( + _SENTINEL, + DEBUG, + ETAG_ANY, + LIST_QUOTED_ETAG_RE, + ChainMapProxy, + ETag, + HeadersMixin, + parse_http_date, + reify, + sentinel, +) +from .http_parser import RawRequestMessage +from .http_writer import HttpVersion +from .multipart import BodyPartReader, MultipartReader +from .streams import EmptyStreamReader, StreamReader +from .typedefs import ( + DEFAULT_JSON_DECODER, + JSONDecoder, + LooseHeaders, + RawHeaders, + StrOrURL, +) +from .web_exceptions import HTTPRequestEntityTooLarge +from .web_response import StreamResponse + +__all__ = ("BaseRequest", "FileField", "Request") + + +if TYPE_CHECKING: + from .web_app import Application + from .web_protocol import RequestHandler + from .web_urldispatcher import UrlMappingMatchInfo + + +@attr.s(auto_attribs=True, frozen=True, slots=True) +class FileField: + name: str + filename: str + file: io.BufferedReader + content_type: str + headers: "CIMultiDictProxy[str]" + + +_TCHAR: Final[str] = string.digits + string.ascii_letters + r"!#$%&'*+.^_`|~-" +# '-' at the end to prevent interpretation as range in a char class + +_TOKEN: Final[str] = rf"[{_TCHAR}]+" + +_QDTEXT: Final[str] = r"[{}]".format( + r"".join(chr(c) for c in (0x09, 0x20, 0x21) + tuple(range(0x23, 0x7F))) +) +# qdtext includes 0x5C to escape 0x5D ('\]') +# qdtext excludes obs-text (because obsoleted, and encoding not specified) + +_QUOTED_PAIR: Final[str] = r"\\[\t !-~]" + +_QUOTED_STRING: Final[str] = r'"(?:{quoted_pair}|{qdtext})*"'.format( + qdtext=_QDTEXT, quoted_pair=_QUOTED_PAIR +) + +_FORWARDED_PAIR: Final[ + str +] = r"({token})=({token}|{quoted_string})(:\d{{1,4}})?".format( + token=_TOKEN, quoted_string=_QUOTED_STRING +) + +_QUOTED_PAIR_REPLACE_RE: Final[Pattern[str]] = re.compile(r"\\([\t !-~])") +# same pattern as _QUOTED_PAIR but contains a capture group + +_FORWARDED_PAIR_RE: Final[Pattern[str]] = re.compile(_FORWARDED_PAIR) + +############################################################ +# HTTP Request +############################################################ + + +class BaseRequest(MutableMapping[str, Any], HeadersMixin): + + POST_METHODS = { + hdrs.METH_PATCH, + hdrs.METH_POST, + hdrs.METH_PUT, + hdrs.METH_TRACE, + hdrs.METH_DELETE, + } + + ATTRS = HeadersMixin.ATTRS | frozenset( + [ + "_message", + "_protocol", + "_payload_writer", + "_payload", + "_headers", + "_method", + "_version", + "_rel_url", + "_post", + "_read_bytes", + "_state", + "_cache", + "_task", + "_client_max_size", + "_loop", + "_transport_sslcontext", + "_transport_peername", + ] + ) + + def __init__( + self, + message: RawRequestMessage, + payload: StreamReader, + protocol: "RequestHandler", + payload_writer: AbstractStreamWriter, + task: "asyncio.Task[None]", + loop: asyncio.AbstractEventLoop, + *, + client_max_size: int = 1024**2, + state: Optional[Dict[str, Any]] = None, + scheme: Optional[str] = None, + host: Optional[str] = None, + remote: Optional[str] = None, + ) -> None: + if state is None: + state = {} + self._message = message + self._protocol = protocol + self._payload_writer = payload_writer + + self._payload = payload + self._headers = message.headers + self._method = message.method + self._version = message.version + self._cache: Dict[str, Any] = {} + url = message.url + if url.is_absolute(): + # absolute URL is given, + # override auto-calculating url, host, and scheme + # all other properties should be good + self._cache["url"] = url + self._cache["host"] = url.host + self._cache["scheme"] = url.scheme + self._rel_url = url.relative() + else: + self._rel_url = message.url + self._post: Optional[MultiDictProxy[Union[str, bytes, FileField]]] = None + self._read_bytes: Optional[bytes] = None + + self._state = state + self._task = task + self._client_max_size = client_max_size + self._loop = loop + + transport = self._protocol.transport + assert transport is not None + self._transport_sslcontext = transport.get_extra_info("sslcontext") + self._transport_peername = transport.get_extra_info("peername") + + if scheme is not None: + self._cache["scheme"] = scheme + if host is not None: + self._cache["host"] = host + if remote is not None: + self._cache["remote"] = remote + + def clone( + self, + *, + method: Union[str, _SENTINEL] = sentinel, + rel_url: Union[StrOrURL, _SENTINEL] = sentinel, + headers: Union[LooseHeaders, _SENTINEL] = sentinel, + scheme: Union[str, _SENTINEL] = sentinel, + host: Union[str, _SENTINEL] = sentinel, + remote: Union[str, _SENTINEL] = sentinel, + client_max_size: Union[int, _SENTINEL] = sentinel, + ) -> "BaseRequest": + """Clone itself with replacement some attributes. + + Creates and returns a new instance of Request object. If no parameters + are given, an exact copy is returned. If a parameter is not passed, it + will reuse the one from the current request object. + """ + if self._read_bytes: + raise RuntimeError("Cannot clone request " "after reading its content") + + dct: Dict[str, Any] = {} + if method is not sentinel: + dct["method"] = method + if rel_url is not sentinel: + new_url: URL = URL(rel_url) + dct["url"] = new_url + dct["path"] = str(new_url) + if headers is not sentinel: + # a copy semantic + dct["headers"] = CIMultiDictProxy(CIMultiDict(headers)) + dct["raw_headers"] = tuple( + (k.encode("utf-8"), v.encode("utf-8")) for k, v in headers.items() + ) + + message = self._message._replace(**dct) + + kwargs = {} + if scheme is not sentinel: + kwargs["scheme"] = scheme + if host is not sentinel: + kwargs["host"] = host + if remote is not sentinel: + kwargs["remote"] = remote + if client_max_size is sentinel: + client_max_size = self._client_max_size + + return self.__class__( + message, + self._payload, + self._protocol, + self._payload_writer, + self._task, + self._loop, + client_max_size=client_max_size, + state=self._state.copy(), + **kwargs, + ) + + @property + def task(self) -> "asyncio.Task[None]": + return self._task + + @property + def protocol(self) -> "RequestHandler": + return self._protocol + + @property + def transport(self) -> Optional[asyncio.Transport]: + if self._protocol is None: + return None + return self._protocol.transport + + @property + def writer(self) -> AbstractStreamWriter: + return self._payload_writer + + @property + def client_max_size(self) -> int: + return self._client_max_size + + @reify + def message(self) -> RawRequestMessage: + warnings.warn("Request.message is deprecated", DeprecationWarning, stacklevel=3) + return self._message + + @reify + def rel_url(self) -> URL: + return self._rel_url + + @reify + def loop(self) -> asyncio.AbstractEventLoop: + warnings.warn( + "request.loop property is deprecated", DeprecationWarning, stacklevel=2 + ) + return self._loop + + # MutableMapping API + + def __getitem__(self, key: str) -> Any: + return self._state[key] + + def __setitem__(self, key: str, value: Any) -> None: + self._state[key] = value + + def __delitem__(self, key: str) -> None: + del self._state[key] + + def __len__(self) -> int: + return len(self._state) + + def __iter__(self) -> Iterator[str]: + return iter(self._state) + + ######## + + @reify + def secure(self) -> bool: + """A bool indicating if the request is handled with SSL.""" + return self.scheme == "https" + + @reify + def forwarded(self) -> Tuple[Mapping[str, str], ...]: + """A tuple containing all parsed Forwarded header(s). + + Makes an effort to parse Forwarded headers as specified by RFC 7239: + + - It adds one (immutable) dictionary per Forwarded 'field-value', ie + per proxy. The element corresponds to the data in the Forwarded + field-value added by the first proxy encountered by the client. Each + subsequent item corresponds to those added by later proxies. + - It checks that every value has valid syntax in general as specified + in section 4: either a 'token' or a 'quoted-string'. + - It un-escapes found escape sequences. + - It does NOT validate 'by' and 'for' contents as specified in section + 6. + - It does NOT validate 'host' contents (Host ABNF). + - It does NOT validate 'proto' contents for valid URI scheme names. + + Returns a tuple containing one or more immutable dicts + """ + elems = [] + for field_value in self._message.headers.getall(hdrs.FORWARDED, ()): + length = len(field_value) + pos = 0 + need_separator = False + elem: Dict[str, str] = {} + elems.append(types.MappingProxyType(elem)) + while 0 <= pos < length: + match = _FORWARDED_PAIR_RE.match(field_value, pos) + if match is not None: # got a valid forwarded-pair + if need_separator: + # bad syntax here, skip to next comma + pos = field_value.find(",", pos) + else: + name, value, port = match.groups() + if value[0] == '"': + # quoted string: remove quotes and unescape + value = _QUOTED_PAIR_REPLACE_RE.sub(r"\1", value[1:-1]) + if port: + value += port + elem[name.lower()] = value + pos += len(match.group(0)) + need_separator = True + elif field_value[pos] == ",": # next forwarded-element + need_separator = False + elem = {} + elems.append(types.MappingProxyType(elem)) + pos += 1 + elif field_value[pos] == ";": # next forwarded-pair + need_separator = False + pos += 1 + elif field_value[pos] in " \t": + # Allow whitespace even between forwarded-pairs, though + # RFC 7239 doesn't. This simplifies code and is in line + # with Postel's law. + pos += 1 + else: + # bad syntax here, skip to next comma + pos = field_value.find(",", pos) + return tuple(elems) + + @reify + def scheme(self) -> str: + """A string representing the scheme of the request. + + Hostname is resolved in this order: + + - overridden value by .clone(scheme=new_scheme) call. + - type of connection to peer: HTTPS if socket is SSL, HTTP otherwise. + + 'http' or 'https'. + """ + if self._transport_sslcontext: + return "https" + else: + return "http" + + @reify + def method(self) -> str: + """Read only property for getting HTTP method. + + The value is upper-cased str like 'GET', 'POST', 'PUT' etc. + """ + return self._method + + @reify + def version(self) -> HttpVersion: + """Read only property for getting HTTP version of request. + + Returns aiohttp.protocol.HttpVersion instance. + """ + return self._version + + @reify + def host(self) -> str: + """Hostname of the request. + + Hostname is resolved in this order: + + - overridden value by .clone(host=new_host) call. + - HOST HTTP header + - socket.getfqdn() value + """ + host = self._message.headers.get(hdrs.HOST) + if host is not None: + return host + return socket.getfqdn() + + @reify + def remote(self) -> Optional[str]: + """Remote IP of client initiated HTTP request. + + The IP is resolved in this order: + + - overridden value by .clone(remote=new_remote) call. + - peername of opened socket + """ + if self._transport_peername is None: + return None + if isinstance(self._transport_peername, (list, tuple)): + return str(self._transport_peername[0]) + return str(self._transport_peername) + + @reify + def url(self) -> URL: + url = URL.build(scheme=self.scheme, host=self.host) + return url.join(self._rel_url) + + @reify + def path(self) -> str: + """The URL including *PATH INFO* without the host or scheme. + + E.g., ``/app/blog`` + """ + return self._rel_url.path + + @reify + def path_qs(self) -> str: + """The URL including PATH_INFO and the query string. + + E.g, /app/blog?id=10 + """ + return str(self._rel_url) + + @reify + def raw_path(self) -> str: + """The URL including raw *PATH INFO* without the host or scheme. + + Warning, the path is unquoted and may contains non valid URL characters + + E.g., ``/my%2Fpath%7Cwith%21some%25strange%24characters`` + """ + return self._message.path + + @reify + def query(self) -> "MultiMapping[str]": + """A multidict with all the variables in the query string.""" + return MultiDictProxy(self._rel_url.query) + + @reify + def query_string(self) -> str: + """The query string in the URL. + + E.g., id=10 + """ + return self._rel_url.query_string + + @reify + def headers(self) -> "MultiMapping[str]": + """A case-insensitive multidict proxy with all headers.""" + return self._headers + + @reify + def raw_headers(self) -> RawHeaders: + """A sequence of pairs for all headers.""" + return self._message.raw_headers + + @reify + def if_modified_since(self) -> Optional[datetime.datetime]: + """The value of If-Modified-Since HTTP header, or None. + + This header is represented as a `datetime` object. + """ + return parse_http_date(self.headers.get(hdrs.IF_MODIFIED_SINCE)) + + @reify + def if_unmodified_since(self) -> Optional[datetime.datetime]: + """The value of If-Unmodified-Since HTTP header, or None. + + This header is represented as a `datetime` object. + """ + return parse_http_date(self.headers.get(hdrs.IF_UNMODIFIED_SINCE)) + + @staticmethod + def _etag_values(etag_header: str) -> Iterator[ETag]: + """Extract `ETag` objects from raw header.""" + if etag_header == ETAG_ANY: + yield ETag( + is_weak=False, + value=ETAG_ANY, + ) + else: + for match in LIST_QUOTED_ETAG_RE.finditer(etag_header): + is_weak, value, garbage = match.group(2, 3, 4) + # Any symbol captured by 4th group means + # that the following sequence is invalid. + if garbage: + break + + yield ETag( + is_weak=bool(is_weak), + value=value, + ) + + @classmethod + def _if_match_or_none_impl( + cls, header_value: Optional[str] + ) -> Optional[Tuple[ETag, ...]]: + if not header_value: + return None + + return tuple(cls._etag_values(header_value)) + + @reify + def if_match(self) -> Optional[Tuple[ETag, ...]]: + """The value of If-Match HTTP header, or None. + + This header is represented as a `tuple` of `ETag` objects. + """ + return self._if_match_or_none_impl(self.headers.get(hdrs.IF_MATCH)) + + @reify + def if_none_match(self) -> Optional[Tuple[ETag, ...]]: + """The value of If-None-Match HTTP header, or None. + + This header is represented as a `tuple` of `ETag` objects. + """ + return self._if_match_or_none_impl(self.headers.get(hdrs.IF_NONE_MATCH)) + + @reify + def if_range(self) -> Optional[datetime.datetime]: + """The value of If-Range HTTP header, or None. + + This header is represented as a `datetime` object. + """ + return parse_http_date(self.headers.get(hdrs.IF_RANGE)) + + @reify + def keep_alive(self) -> bool: + """Is keepalive enabled by client?""" + return not self._message.should_close + + @reify + def cookies(self) -> Mapping[str, str]: + """Return request cookies. + + A read-only dictionary-like object. + """ + raw = self.headers.get(hdrs.COOKIE, "") + parsed = SimpleCookie(raw) + return MappingProxyType({key: val.value for key, val in parsed.items()}) + + @reify + def http_range(self) -> slice: + """The content of Range HTTP header. + + Return a slice instance. + + """ + rng = self._headers.get(hdrs.RANGE) + start, end = None, None + if rng is not None: + try: + pattern = r"^bytes=(\d*)-(\d*)$" + start, end = re.findall(pattern, rng)[0] + except IndexError: # pattern was not found in header + raise ValueError("range not in acceptable format") + + end = int(end) if end else None + start = int(start) if start else None + + if start is None and end is not None: + # end with no start is to return tail of content + start = -end + end = None + + if start is not None and end is not None: + # end is inclusive in range header, exclusive for slice + end += 1 + + if start >= end: + raise ValueError("start cannot be after end") + + if start is end is None: # No valid range supplied + raise ValueError("No start or end of range specified") + + return slice(start, end, 1) + + @reify + def content(self) -> StreamReader: + """Return raw payload stream.""" + return self._payload + + @property + def has_body(self) -> bool: + """Return True if request's HTTP BODY can be read, False otherwise.""" + warnings.warn( + "Deprecated, use .can_read_body #2005", DeprecationWarning, stacklevel=2 + ) + return not self._payload.at_eof() + + @property + def can_read_body(self) -> bool: + """Return True if request's HTTP BODY can be read, False otherwise.""" + return not self._payload.at_eof() + + @reify + def body_exists(self) -> bool: + """Return True if request has HTTP BODY, False otherwise.""" + return type(self._payload) is not EmptyStreamReader + + async def release(self) -> None: + """Release request. + + Eat unread part of HTTP BODY if present. + """ + while not self._payload.at_eof(): + await self._payload.readany() + + async def read(self) -> bytes: + """Read request body if present. + + Returns bytes object with full request content. + """ + if self._read_bytes is None: + body = bytearray() + while True: + chunk = await self._payload.readany() + body.extend(chunk) + if self._client_max_size: + body_size = len(body) + if body_size >= self._client_max_size: + raise HTTPRequestEntityTooLarge( + max_size=self._client_max_size, actual_size=body_size + ) + if not chunk: + break + self._read_bytes = bytes(body) + return self._read_bytes + + async def text(self) -> str: + """Return BODY as text using encoding from .charset.""" + bytes_body = await self.read() + encoding = self.charset or "utf-8" + return bytes_body.decode(encoding) + + async def json(self, *, loads: JSONDecoder = DEFAULT_JSON_DECODER) -> Any: + """Return BODY as JSON.""" + body = await self.text() + return loads(body) + + async def multipart(self) -> MultipartReader: + """Return async iterator to process BODY as multipart.""" + return MultipartReader(self._headers, self._payload) + + async def post(self) -> "MultiDictProxy[Union[str, bytes, FileField]]": + """Return POST parameters.""" + if self._post is not None: + return self._post + if self._method not in self.POST_METHODS: + self._post = MultiDictProxy(MultiDict()) + return self._post + + content_type = self.content_type + if content_type not in ( + "", + "application/x-www-form-urlencoded", + "multipart/form-data", + ): + self._post = MultiDictProxy(MultiDict()) + return self._post + + out: MultiDict[Union[str, bytes, FileField]] = MultiDict() + + if content_type == "multipart/form-data": + multipart = await self.multipart() + max_size = self._client_max_size + + field = await multipart.next() + while field is not None: + size = 0 + field_ct = field.headers.get(hdrs.CONTENT_TYPE) + + if isinstance(field, BodyPartReader): + assert field.name is not None + + # Note that according to RFC 7578, the Content-Type header + # is optional, even for files, so we can't assume it's + # present. + # https://tools.ietf.org/html/rfc7578#section-4.4 + if field.filename: + # store file in temp file + tmp = tempfile.TemporaryFile() + chunk = await field.read_chunk(size=2**16) + while chunk: + chunk = field.decode(chunk) + tmp.write(chunk) + size += len(chunk) + if 0 < max_size < size: + tmp.close() + raise HTTPRequestEntityTooLarge( + max_size=max_size, actual_size=size + ) + chunk = await field.read_chunk(size=2**16) + tmp.seek(0) + + if field_ct is None: + field_ct = "application/octet-stream" + + ff = FileField( + field.name, + field.filename, + cast(io.BufferedReader, tmp), + field_ct, + field.headers, + ) + out.add(field.name, ff) + else: + # deal with ordinary data + value = await field.read(decode=True) + if field_ct is None or field_ct.startswith("text/"): + charset = field.get_charset(default="utf-8") + out.add(field.name, value.decode(charset)) + else: + out.add(field.name, value) + size += len(value) + if 0 < max_size < size: + raise HTTPRequestEntityTooLarge( + max_size=max_size, actual_size=size + ) + else: + raise ValueError( + "To decode nested multipart you need " "to use custom reader", + ) + + field = await multipart.next() + else: + data = await self.read() + if data: + charset = self.charset or "utf-8" + out.extend( + parse_qsl( + data.rstrip().decode(charset), + keep_blank_values=True, + encoding=charset, + ) + ) + + self._post = MultiDictProxy(out) + return self._post + + def get_extra_info(self, name: str, default: Any = None) -> Any: + """Extra info from protocol transport""" + protocol = self._protocol + if protocol is None: + return default + + transport = protocol.transport + if transport is None: + return default + + return transport.get_extra_info(name, default) + + def __repr__(self) -> str: + ascii_encodable_path = self.path.encode("ascii", "backslashreplace").decode( + "ascii" + ) + return "<{} {} {} >".format( + self.__class__.__name__, self._method, ascii_encodable_path + ) + + def __eq__(self, other: object) -> bool: + return id(self) == id(other) + + def __bool__(self) -> bool: + return True + + async def _prepare_hook(self, response: StreamResponse) -> None: + return + + def _cancel(self, exc: BaseException) -> None: + self._payload.set_exception(exc) + + +class Request(BaseRequest): + + ATTRS = BaseRequest.ATTRS | frozenset(["_match_info"]) + + def __init__(self, *args: Any, **kwargs: Any) -> None: + super().__init__(*args, **kwargs) + + # matchdict, route_name, handler + # or information about traversal lookup + + # initialized after route resolving + self._match_info: Optional[UrlMappingMatchInfo] = None + + if DEBUG: + + def __setattr__(self, name: str, val: Any) -> None: + if name not in self.ATTRS: + warnings.warn( + "Setting custom {}.{} attribute " + "is discouraged".format(self.__class__.__name__, name), + DeprecationWarning, + stacklevel=2, + ) + super().__setattr__(name, val) + + def clone( + self, + *, + method: Union[str, _SENTINEL] = sentinel, + rel_url: Union[StrOrURL, _SENTINEL] = sentinel, + headers: Union[LooseHeaders, _SENTINEL] = sentinel, + scheme: Union[str, _SENTINEL] = sentinel, + host: Union[str, _SENTINEL] = sentinel, + remote: Union[str, _SENTINEL] = sentinel, + client_max_size: Union[int, _SENTINEL] = sentinel, + ) -> "Request": + ret = super().clone( + method=method, + rel_url=rel_url, + headers=headers, + scheme=scheme, + host=host, + remote=remote, + client_max_size=client_max_size, + ) + new_ret = cast(Request, ret) + new_ret._match_info = self._match_info + return new_ret + + @reify + def match_info(self) -> "UrlMappingMatchInfo": + """Result of route resolving.""" + match_info = self._match_info + assert match_info is not None + return match_info + + @property + def app(self) -> "Application": + """Application instance.""" + match_info = self._match_info + assert match_info is not None + return match_info.current_app + + @property + def config_dict(self) -> ChainMapProxy: + match_info = self._match_info + assert match_info is not None + lst = match_info.apps + app = self.app + idx = lst.index(app) + sublist = list(reversed(lst[: idx + 1])) + return ChainMapProxy(sublist) + + async def _prepare_hook(self, response: StreamResponse) -> None: + match_info = self._match_info + if match_info is None: + return + for app in match_info._apps: + await app.on_response_prepare.send(self, response) diff --git a/gtm/lib/python3.12/site-packages/aiohttp/web_response.py b/gtm/lib/python3.12/site-packages/aiohttp/web_response.py new file mode 100644 index 0000000000000000000000000000000000000000..b6a4ba9b31e4befd6163509448b19c34659bfd9d --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/web_response.py @@ -0,0 +1,817 @@ +import asyncio +import collections.abc +import datetime +import enum +import json +import math +import time +import warnings +from concurrent.futures import Executor +from http import HTTPStatus +from http.cookies import SimpleCookie +from typing import ( + TYPE_CHECKING, + Any, + Dict, + Iterator, + MutableMapping, + Optional, + Union, + cast, +) + +from multidict import CIMultiDict, istr + +from . import hdrs, payload +from .abc import AbstractStreamWriter +from .compression_utils import ZLibCompressor +from .helpers import ( + ETAG_ANY, + QUOTED_ETAG_RE, + ETag, + HeadersMixin, + must_be_empty_body, + parse_http_date, + rfc822_formatted_time, + sentinel, + should_remove_content_length, + validate_etag_value, +) +from .http import SERVER_SOFTWARE, HttpVersion10, HttpVersion11 +from .payload import Payload +from .typedefs import JSONEncoder, LooseHeaders + +__all__ = ("ContentCoding", "StreamResponse", "Response", "json_response") + + +if TYPE_CHECKING: + from .web_request import BaseRequest + + BaseClass = MutableMapping[str, Any] +else: + BaseClass = collections.abc.MutableMapping + + +class ContentCoding(enum.Enum): + # The content codings that we have support for. + # + # Additional registered codings are listed at: + # https://www.iana.org/assignments/http-parameters/http-parameters.xhtml#content-coding + deflate = "deflate" + gzip = "gzip" + identity = "identity" + + +############################################################ +# HTTP Response classes +############################################################ + + +class StreamResponse(BaseClass, HeadersMixin): + + _length_check = True + + def __init__( + self, + *, + status: int = 200, + reason: Optional[str] = None, + headers: Optional[LooseHeaders] = None, + ) -> None: + self._body = None + self._keep_alive: Optional[bool] = None + self._chunked = False + self._compression = False + self._compression_force: Optional[ContentCoding] = None + self._cookies = SimpleCookie() + + self._req: Optional[BaseRequest] = None + self._payload_writer: Optional[AbstractStreamWriter] = None + self._eof_sent = False + self._must_be_empty_body: Optional[bool] = None + self._body_length = 0 + self._state: Dict[str, Any] = {} + + if headers is not None: + self._headers: CIMultiDict[str] = CIMultiDict(headers) + else: + self._headers = CIMultiDict() + + self.set_status(status, reason) + + @property + def prepared(self) -> bool: + return self._payload_writer is not None + + @property + def task(self) -> "Optional[asyncio.Task[None]]": + if self._req: + return self._req.task + else: + return None + + @property + def status(self) -> int: + return self._status + + @property + def chunked(self) -> bool: + return self._chunked + + @property + def compression(self) -> bool: + return self._compression + + @property + def reason(self) -> str: + return self._reason + + def set_status( + self, + status: int, + reason: Optional[str] = None, + ) -> None: + assert not self.prepared, ( + "Cannot change the response status code after " "the headers have been sent" + ) + self._status = int(status) + if reason is None: + try: + reason = HTTPStatus(self._status).phrase + except ValueError: + reason = "" + self._reason = reason + + @property + def keep_alive(self) -> Optional[bool]: + return self._keep_alive + + def force_close(self) -> None: + self._keep_alive = False + + @property + def body_length(self) -> int: + return self._body_length + + @property + def output_length(self) -> int: + warnings.warn("output_length is deprecated", DeprecationWarning) + assert self._payload_writer + return self._payload_writer.buffer_size + + def enable_chunked_encoding(self, chunk_size: Optional[int] = None) -> None: + """Enables automatic chunked transfer encoding.""" + self._chunked = True + + if hdrs.CONTENT_LENGTH in self._headers: + raise RuntimeError( + "You can't enable chunked encoding when " "a content length is set" + ) + if chunk_size is not None: + warnings.warn("Chunk size is deprecated #1615", DeprecationWarning) + + def enable_compression( + self, force: Optional[Union[bool, ContentCoding]] = None + ) -> None: + """Enables response compression encoding.""" + # Backwards compatibility for when force was a bool <0.17. + if type(force) == bool: + force = ContentCoding.deflate if force else ContentCoding.identity + warnings.warn( + "Using boolean for force is deprecated #3318", DeprecationWarning + ) + elif force is not None: + assert isinstance(force, ContentCoding), ( + "force should one of " "None, bool or " "ContentEncoding" + ) + + self._compression = True + self._compression_force = force + + @property + def headers(self) -> "CIMultiDict[str]": + return self._headers + + @property + def cookies(self) -> SimpleCookie: + return self._cookies + + def set_cookie( + self, + name: str, + value: str, + *, + expires: Optional[str] = None, + domain: Optional[str] = None, + max_age: Optional[Union[int, str]] = None, + path: str = "/", + secure: Optional[bool] = None, + httponly: Optional[bool] = None, + version: Optional[str] = None, + samesite: Optional[str] = None, + ) -> None: + """Set or update response cookie. + + Sets new cookie or updates existent with new value. + Also updates only those params which are not None. + """ + old = self._cookies.get(name) + if old is not None and old.coded_value == "": + # deleted cookie + self._cookies.pop(name, None) + + self._cookies[name] = value + c = self._cookies[name] + + if expires is not None: + c["expires"] = expires + elif c.get("expires") == "Thu, 01 Jan 1970 00:00:00 GMT": + del c["expires"] + + if domain is not None: + c["domain"] = domain + + if max_age is not None: + c["max-age"] = str(max_age) + elif "max-age" in c: + del c["max-age"] + + c["path"] = path + + if secure is not None: + c["secure"] = secure + if httponly is not None: + c["httponly"] = httponly + if version is not None: + c["version"] = version + if samesite is not None: + c["samesite"] = samesite + + def del_cookie( + self, name: str, *, domain: Optional[str] = None, path: str = "/" + ) -> None: + """Delete cookie. + + Creates new empty expired cookie. + """ + # TODO: do we need domain/path here? + self._cookies.pop(name, None) + self.set_cookie( + name, + "", + max_age=0, + expires="Thu, 01 Jan 1970 00:00:00 GMT", + domain=domain, + path=path, + ) + + @property + def content_length(self) -> Optional[int]: + # Just a placeholder for adding setter + return super().content_length + + @content_length.setter + def content_length(self, value: Optional[int]) -> None: + if value is not None: + value = int(value) + if self._chunked: + raise RuntimeError( + "You can't set content length when " "chunked encoding is enable" + ) + self._headers[hdrs.CONTENT_LENGTH] = str(value) + else: + self._headers.pop(hdrs.CONTENT_LENGTH, None) + + @property + def content_type(self) -> str: + # Just a placeholder for adding setter + return super().content_type + + @content_type.setter + def content_type(self, value: str) -> None: + self.content_type # read header values if needed + self._content_type = str(value) + self._generate_content_type_header() + + @property + def charset(self) -> Optional[str]: + # Just a placeholder for adding setter + return super().charset + + @charset.setter + def charset(self, value: Optional[str]) -> None: + ctype = self.content_type # read header values if needed + if ctype == "application/octet-stream": + raise RuntimeError( + "Setting charset for application/octet-stream " + "doesn't make sense, setup content_type first" + ) + assert self._content_dict is not None + if value is None: + self._content_dict.pop("charset", None) + else: + self._content_dict["charset"] = str(value).lower() + self._generate_content_type_header() + + @property + def last_modified(self) -> Optional[datetime.datetime]: + """The value of Last-Modified HTTP header, or None. + + This header is represented as a `datetime` object. + """ + return parse_http_date(self._headers.get(hdrs.LAST_MODIFIED)) + + @last_modified.setter + def last_modified( + self, value: Optional[Union[int, float, datetime.datetime, str]] + ) -> None: + if value is None: + self._headers.pop(hdrs.LAST_MODIFIED, None) + elif isinstance(value, (int, float)): + self._headers[hdrs.LAST_MODIFIED] = time.strftime( + "%a, %d %b %Y %H:%M:%S GMT", time.gmtime(math.ceil(value)) + ) + elif isinstance(value, datetime.datetime): + self._headers[hdrs.LAST_MODIFIED] = time.strftime( + "%a, %d %b %Y %H:%M:%S GMT", value.utctimetuple() + ) + elif isinstance(value, str): + self._headers[hdrs.LAST_MODIFIED] = value + + @property + def etag(self) -> Optional[ETag]: + quoted_value = self._headers.get(hdrs.ETAG) + if not quoted_value: + return None + elif quoted_value == ETAG_ANY: + return ETag(value=ETAG_ANY) + match = QUOTED_ETAG_RE.fullmatch(quoted_value) + if not match: + return None + is_weak, value = match.group(1, 2) + return ETag( + is_weak=bool(is_weak), + value=value, + ) + + @etag.setter + def etag(self, value: Optional[Union[ETag, str]]) -> None: + if value is None: + self._headers.pop(hdrs.ETAG, None) + elif (isinstance(value, str) and value == ETAG_ANY) or ( + isinstance(value, ETag) and value.value == ETAG_ANY + ): + self._headers[hdrs.ETAG] = ETAG_ANY + elif isinstance(value, str): + validate_etag_value(value) + self._headers[hdrs.ETAG] = f'"{value}"' + elif isinstance(value, ETag) and isinstance(value.value, str): + validate_etag_value(value.value) + hdr_value = f'W/"{value.value}"' if value.is_weak else f'"{value.value}"' + self._headers[hdrs.ETAG] = hdr_value + else: + raise ValueError( + f"Unsupported etag type: {type(value)}. " + f"etag must be str, ETag or None" + ) + + def _generate_content_type_header( + self, CONTENT_TYPE: istr = hdrs.CONTENT_TYPE + ) -> None: + assert self._content_dict is not None + assert self._content_type is not None + params = "; ".join(f"{k}={v}" for k, v in self._content_dict.items()) + if params: + ctype = self._content_type + "; " + params + else: + ctype = self._content_type + self._headers[CONTENT_TYPE] = ctype + + async def _do_start_compression(self, coding: ContentCoding) -> None: + if coding != ContentCoding.identity: + assert self._payload_writer is not None + self._headers[hdrs.CONTENT_ENCODING] = coding.value + self._payload_writer.enable_compression(coding.value) + # Compressed payload may have different content length, + # remove the header + self._headers.popall(hdrs.CONTENT_LENGTH, None) + + async def _start_compression(self, request: "BaseRequest") -> None: + if self._compression_force: + await self._do_start_compression(self._compression_force) + else: + accept_encoding = request.headers.get(hdrs.ACCEPT_ENCODING, "").lower() + for coding in ContentCoding: + if coding.value in accept_encoding: + await self._do_start_compression(coding) + return + + async def prepare(self, request: "BaseRequest") -> Optional[AbstractStreamWriter]: + if self._eof_sent: + return None + if self._payload_writer is not None: + return self._payload_writer + self._must_be_empty_body = must_be_empty_body(request.method, self.status) + return await self._start(request) + + async def _start(self, request: "BaseRequest") -> AbstractStreamWriter: + self._req = request + writer = self._payload_writer = request._payload_writer + + await self._prepare_headers() + await request._prepare_hook(self) + await self._write_headers() + + return writer + + async def _prepare_headers(self) -> None: + request = self._req + assert request is not None + writer = self._payload_writer + assert writer is not None + keep_alive = self._keep_alive + if keep_alive is None: + keep_alive = request.keep_alive + self._keep_alive = keep_alive + + version = request.version + + headers = self._headers + for cookie in self._cookies.values(): + value = cookie.output(header="")[1:] + headers.add(hdrs.SET_COOKIE, value) + + if self._compression: + await self._start_compression(request) + + if self._chunked: + if version != HttpVersion11: + raise RuntimeError( + "Using chunked encoding is forbidden " + "for HTTP/{0.major}.{0.minor}".format(request.version) + ) + if not self._must_be_empty_body: + writer.enable_chunking() + headers[hdrs.TRANSFER_ENCODING] = "chunked" + if hdrs.CONTENT_LENGTH in headers: + del headers[hdrs.CONTENT_LENGTH] + elif self._length_check: + writer.length = self.content_length + if writer.length is None: + if version >= HttpVersion11: + if not self._must_be_empty_body: + writer.enable_chunking() + headers[hdrs.TRANSFER_ENCODING] = "chunked" + elif not self._must_be_empty_body: + keep_alive = False + + # HTTP 1.1: https://tools.ietf.org/html/rfc7230#section-3.3.2 + # HTTP 1.0: https://tools.ietf.org/html/rfc1945#section-10.4 + if self._must_be_empty_body: + if hdrs.CONTENT_LENGTH in headers and should_remove_content_length( + request.method, self.status + ): + del headers[hdrs.CONTENT_LENGTH] + # https://datatracker.ietf.org/doc/html/rfc9112#section-6.1-10 + # https://datatracker.ietf.org/doc/html/rfc9112#section-6.1-13 + if hdrs.TRANSFER_ENCODING in headers: + del headers[hdrs.TRANSFER_ENCODING] + else: + headers.setdefault(hdrs.CONTENT_TYPE, "application/octet-stream") + headers.setdefault(hdrs.DATE, rfc822_formatted_time()) + headers.setdefault(hdrs.SERVER, SERVER_SOFTWARE) + + # connection header + if hdrs.CONNECTION not in headers: + if keep_alive: + if version == HttpVersion10: + headers[hdrs.CONNECTION] = "keep-alive" + else: + if version == HttpVersion11: + headers[hdrs.CONNECTION] = "close" + + async def _write_headers(self) -> None: + request = self._req + assert request is not None + writer = self._payload_writer + assert writer is not None + # status line + version = request.version + status_line = "HTTP/{}.{} {} {}".format( + version[0], version[1], self._status, self._reason + ) + await writer.write_headers(status_line, self._headers) + + async def write(self, data: bytes) -> None: + assert isinstance( + data, (bytes, bytearray, memoryview) + ), "data argument must be byte-ish (%r)" % type(data) + + if self._eof_sent: + raise RuntimeError("Cannot call write() after write_eof()") + if self._payload_writer is None: + raise RuntimeError("Cannot call write() before prepare()") + + await self._payload_writer.write(data) + + async def drain(self) -> None: + assert not self._eof_sent, "EOF has already been sent" + assert self._payload_writer is not None, "Response has not been started" + warnings.warn( + "drain method is deprecated, use await resp.write()", + DeprecationWarning, + stacklevel=2, + ) + await self._payload_writer.drain() + + async def write_eof(self, data: bytes = b"") -> None: + assert isinstance( + data, (bytes, bytearray, memoryview) + ), "data argument must be byte-ish (%r)" % type(data) + + if self._eof_sent: + return + + assert self._payload_writer is not None, "Response has not been started" + + await self._payload_writer.write_eof(data) + self._eof_sent = True + self._req = None + self._body_length = self._payload_writer.output_size + self._payload_writer = None + + def __repr__(self) -> str: + if self._eof_sent: + info = "eof" + elif self.prepared: + assert self._req is not None + info = f"{self._req.method} {self._req.path} " + else: + info = "not prepared" + return f"<{self.__class__.__name__} {self.reason} {info}>" + + def __getitem__(self, key: str) -> Any: + return self._state[key] + + def __setitem__(self, key: str, value: Any) -> None: + self._state[key] = value + + def __delitem__(self, key: str) -> None: + del self._state[key] + + def __len__(self) -> int: + return len(self._state) + + def __iter__(self) -> Iterator[str]: + return iter(self._state) + + def __hash__(self) -> int: + return hash(id(self)) + + def __eq__(self, other: object) -> bool: + return self is other + + +class Response(StreamResponse): + def __init__( + self, + *, + body: Any = None, + status: int = 200, + reason: Optional[str] = None, + text: Optional[str] = None, + headers: Optional[LooseHeaders] = None, + content_type: Optional[str] = None, + charset: Optional[str] = None, + zlib_executor_size: Optional[int] = None, + zlib_executor: Optional[Executor] = None, + ) -> None: + if body is not None and text is not None: + raise ValueError("body and text are not allowed together") + + if headers is None: + real_headers: CIMultiDict[str] = CIMultiDict() + elif not isinstance(headers, CIMultiDict): + real_headers = CIMultiDict(headers) + else: + real_headers = headers # = cast('CIMultiDict[str]', headers) + + if content_type is not None and "charset" in content_type: + raise ValueError("charset must not be in content_type " "argument") + + if text is not None: + if hdrs.CONTENT_TYPE in real_headers: + if content_type or charset: + raise ValueError( + "passing both Content-Type header and " + "content_type or charset params " + "is forbidden" + ) + else: + # fast path for filling headers + if not isinstance(text, str): + raise TypeError("text argument must be str (%r)" % type(text)) + if content_type is None: + content_type = "text/plain" + if charset is None: + charset = "utf-8" + real_headers[hdrs.CONTENT_TYPE] = content_type + "; charset=" + charset + body = text.encode(charset) + text = None + else: + if hdrs.CONTENT_TYPE in real_headers: + if content_type is not None or charset is not None: + raise ValueError( + "passing both Content-Type header and " + "content_type or charset params " + "is forbidden" + ) + else: + if content_type is not None: + if charset is not None: + content_type += "; charset=" + charset + real_headers[hdrs.CONTENT_TYPE] = content_type + + super().__init__(status=status, reason=reason, headers=real_headers) + + if text is not None: + self.text = text + else: + self.body = body + + self._compressed_body: Optional[bytes] = None + self._zlib_executor_size = zlib_executor_size + self._zlib_executor = zlib_executor + + @property + def body(self) -> Optional[Union[bytes, Payload]]: + return self._body + + @body.setter + def body(self, body: bytes) -> None: + if body is None: + self._body: Optional[bytes] = None + self._body_payload: bool = False + elif isinstance(body, (bytes, bytearray)): + self._body = body + self._body_payload = False + else: + try: + self._body = body = payload.PAYLOAD_REGISTRY.get(body) + except payload.LookupError: + raise ValueError("Unsupported body type %r" % type(body)) + + self._body_payload = True + + headers = self._headers + + # set content-type + if hdrs.CONTENT_TYPE not in headers: + headers[hdrs.CONTENT_TYPE] = body.content_type + + # copy payload headers + if body.headers: + for (key, value) in body.headers.items(): + if key not in headers: + headers[key] = value + + self._compressed_body = None + + @property + def text(self) -> Optional[str]: + if self._body is None: + return None + return self._body.decode(self.charset or "utf-8") + + @text.setter + def text(self, text: str) -> None: + assert text is None or isinstance( + text, str + ), "text argument must be str (%r)" % type(text) + + if self.content_type == "application/octet-stream": + self.content_type = "text/plain" + if self.charset is None: + self.charset = "utf-8" + + self._body = text.encode(self.charset) + self._body_payload = False + self._compressed_body = None + + @property + def content_length(self) -> Optional[int]: + if self._chunked: + return None + + if hdrs.CONTENT_LENGTH in self._headers: + return super().content_length + + if self._compressed_body is not None: + # Return length of the compressed body + return len(self._compressed_body) + elif self._body_payload: + # A payload without content length, or a compressed payload + return None + elif self._body is not None: + return len(self._body) + else: + return 0 + + @content_length.setter + def content_length(self, value: Optional[int]) -> None: + raise RuntimeError("Content length is set automatically") + + async def write_eof(self, data: bytes = b"") -> None: + if self._eof_sent: + return + if self._compressed_body is None: + body: Optional[Union[bytes, Payload]] = self._body + else: + body = self._compressed_body + assert not data, f"data arg is not supported, got {data!r}" + assert self._req is not None + assert self._payload_writer is not None + if body is not None: + if self._must_be_empty_body: + await super().write_eof() + elif self._body_payload: + payload = cast(Payload, body) + await payload.write(self._payload_writer) + await super().write_eof() + else: + await super().write_eof(cast(bytes, body)) + else: + await super().write_eof() + + async def _start(self, request: "BaseRequest") -> AbstractStreamWriter: + if should_remove_content_length(request.method, self.status): + if hdrs.CONTENT_LENGTH in self._headers: + del self._headers[hdrs.CONTENT_LENGTH] + elif not self._chunked and hdrs.CONTENT_LENGTH not in self._headers: + if self._body_payload: + size = cast(Payload, self._body).size + if size is not None: + self._headers[hdrs.CONTENT_LENGTH] = str(size) + else: + body_len = len(self._body) if self._body else "0" + # https://www.rfc-editor.org/rfc/rfc9110.html#section-8.6-7 + if body_len != "0" or ( + self.status != 304 and request.method.upper() != hdrs.METH_HEAD + ): + self._headers[hdrs.CONTENT_LENGTH] = str(body_len) + + return await super()._start(request) + + async def _do_start_compression(self, coding: ContentCoding) -> None: + if self._body_payload or self._chunked: + return await super()._do_start_compression(coding) + + if coding != ContentCoding.identity: + # Instead of using _payload_writer.enable_compression, + # compress the whole body + compressor = ZLibCompressor( + encoding=str(coding.value), + max_sync_chunk_size=self._zlib_executor_size, + executor=self._zlib_executor, + ) + assert self._body is not None + if self._zlib_executor_size is None and len(self._body) > 1024 * 1024: + warnings.warn( + "Synchronous compression of large response bodies " + f"({len(self._body)} bytes) might block the async event loop. " + "Consider providing a custom value to zlib_executor_size/" + "zlib_executor response properties or disabling compression on it." + ) + self._compressed_body = ( + await compressor.compress(self._body) + compressor.flush() + ) + assert self._compressed_body is not None + + self._headers[hdrs.CONTENT_ENCODING] = coding.value + self._headers[hdrs.CONTENT_LENGTH] = str(len(self._compressed_body)) + + +def json_response( + data: Any = sentinel, + *, + text: Optional[str] = None, + body: Optional[bytes] = None, + status: int = 200, + reason: Optional[str] = None, + headers: Optional[LooseHeaders] = None, + content_type: str = "application/json", + dumps: JSONEncoder = json.dumps, +) -> Response: + if data is not sentinel: + if text or body: + raise ValueError("only one of data, text, or body should be specified") + else: + text = dumps(data) + return Response( + text=text, + body=body, + status=status, + reason=reason, + headers=headers, + content_type=content_type, + ) diff --git a/gtm/lib/python3.12/site-packages/aiohttp/web_routedef.py b/gtm/lib/python3.12/site-packages/aiohttp/web_routedef.py new file mode 100644 index 0000000000000000000000000000000000000000..d79cd32a14a11c68b569137b9d3792bcc47c788a --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/web_routedef.py @@ -0,0 +1,216 @@ +import abc +import os # noqa +from typing import ( + TYPE_CHECKING, + Any, + Callable, + Dict, + Iterator, + List, + Optional, + Sequence, + Type, + Union, + overload, +) + +import attr + +from . import hdrs +from .abc import AbstractView +from .typedefs import Handler, PathLike + +if TYPE_CHECKING: + from .web_request import Request + from .web_response import StreamResponse + from .web_urldispatcher import AbstractRoute, UrlDispatcher +else: + Request = StreamResponse = UrlDispatcher = AbstractRoute = None + + +__all__ = ( + "AbstractRouteDef", + "RouteDef", + "StaticDef", + "RouteTableDef", + "head", + "options", + "get", + "post", + "patch", + "put", + "delete", + "route", + "view", + "static", +) + + +class AbstractRouteDef(abc.ABC): + @abc.abstractmethod + def register(self, router: UrlDispatcher) -> List[AbstractRoute]: + pass # pragma: no cover + + +_HandlerType = Union[Type[AbstractView], Handler] + + +@attr.s(auto_attribs=True, frozen=True, repr=False, slots=True) +class RouteDef(AbstractRouteDef): + method: str + path: str + handler: _HandlerType + kwargs: Dict[str, Any] + + def __repr__(self) -> str: + info = [] + for name, value in sorted(self.kwargs.items()): + info.append(f", {name}={value!r}") + return " {handler.__name__!r}" "{info}>".format( + method=self.method, path=self.path, handler=self.handler, info="".join(info) + ) + + def register(self, router: UrlDispatcher) -> List[AbstractRoute]: + if self.method in hdrs.METH_ALL: + reg = getattr(router, "add_" + self.method.lower()) + return [reg(self.path, self.handler, **self.kwargs)] + else: + return [ + router.add_route(self.method, self.path, self.handler, **self.kwargs) + ] + + +@attr.s(auto_attribs=True, frozen=True, repr=False, slots=True) +class StaticDef(AbstractRouteDef): + prefix: str + path: PathLike + kwargs: Dict[str, Any] + + def __repr__(self) -> str: + info = [] + for name, value in sorted(self.kwargs.items()): + info.append(f", {name}={value!r}") + return " {path}" "{info}>".format( + prefix=self.prefix, path=self.path, info="".join(info) + ) + + def register(self, router: UrlDispatcher) -> List[AbstractRoute]: + resource = router.add_static(self.prefix, self.path, **self.kwargs) + routes = resource.get_info().get("routes", {}) + return list(routes.values()) + + +def route(method: str, path: str, handler: _HandlerType, **kwargs: Any) -> RouteDef: + return RouteDef(method, path, handler, kwargs) + + +def head(path: str, handler: _HandlerType, **kwargs: Any) -> RouteDef: + return route(hdrs.METH_HEAD, path, handler, **kwargs) + + +def options(path: str, handler: _HandlerType, **kwargs: Any) -> RouteDef: + return route(hdrs.METH_OPTIONS, path, handler, **kwargs) + + +def get( + path: str, + handler: _HandlerType, + *, + name: Optional[str] = None, + allow_head: bool = True, + **kwargs: Any, +) -> RouteDef: + return route( + hdrs.METH_GET, path, handler, name=name, allow_head=allow_head, **kwargs + ) + + +def post(path: str, handler: _HandlerType, **kwargs: Any) -> RouteDef: + return route(hdrs.METH_POST, path, handler, **kwargs) + + +def put(path: str, handler: _HandlerType, **kwargs: Any) -> RouteDef: + return route(hdrs.METH_PUT, path, handler, **kwargs) + + +def patch(path: str, handler: _HandlerType, **kwargs: Any) -> RouteDef: + return route(hdrs.METH_PATCH, path, handler, **kwargs) + + +def delete(path: str, handler: _HandlerType, **kwargs: Any) -> RouteDef: + return route(hdrs.METH_DELETE, path, handler, **kwargs) + + +def view(path: str, handler: Type[AbstractView], **kwargs: Any) -> RouteDef: + return route(hdrs.METH_ANY, path, handler, **kwargs) + + +def static(prefix: str, path: PathLike, **kwargs: Any) -> StaticDef: + return StaticDef(prefix, path, kwargs) + + +_Deco = Callable[[_HandlerType], _HandlerType] + + +class RouteTableDef(Sequence[AbstractRouteDef]): + """Route definition table""" + + def __init__(self) -> None: + self._items: List[AbstractRouteDef] = [] + + def __repr__(self) -> str: + return f"" + + @overload + def __getitem__(self, index: int) -> AbstractRouteDef: + ... + + @overload + def __getitem__(self, index: slice) -> List[AbstractRouteDef]: + ... + + def __getitem__(self, index): # type: ignore[no-untyped-def] + return self._items[index] + + def __iter__(self) -> Iterator[AbstractRouteDef]: + return iter(self._items) + + def __len__(self) -> int: + return len(self._items) + + def __contains__(self, item: object) -> bool: + return item in self._items + + def route(self, method: str, path: str, **kwargs: Any) -> _Deco: + def inner(handler: _HandlerType) -> _HandlerType: + self._items.append(RouteDef(method, path, handler, kwargs)) + return handler + + return inner + + def head(self, path: str, **kwargs: Any) -> _Deco: + return self.route(hdrs.METH_HEAD, path, **kwargs) + + def get(self, path: str, **kwargs: Any) -> _Deco: + return self.route(hdrs.METH_GET, path, **kwargs) + + def post(self, path: str, **kwargs: Any) -> _Deco: + return self.route(hdrs.METH_POST, path, **kwargs) + + def put(self, path: str, **kwargs: Any) -> _Deco: + return self.route(hdrs.METH_PUT, path, **kwargs) + + def patch(self, path: str, **kwargs: Any) -> _Deco: + return self.route(hdrs.METH_PATCH, path, **kwargs) + + def delete(self, path: str, **kwargs: Any) -> _Deco: + return self.route(hdrs.METH_DELETE, path, **kwargs) + + def options(self, path: str, **kwargs: Any) -> _Deco: + return self.route(hdrs.METH_OPTIONS, path, **kwargs) + + def view(self, path: str, **kwargs: Any) -> _Deco: + return self.route(hdrs.METH_ANY, path, **kwargs) + + def static(self, prefix: str, path: PathLike, **kwargs: Any) -> None: + self._items.append(StaticDef(prefix, path, kwargs)) diff --git a/gtm/lib/python3.12/site-packages/aiohttp/web_runner.py b/gtm/lib/python3.12/site-packages/aiohttp/web_runner.py new file mode 100644 index 0000000000000000000000000000000000000000..6999b5c5feb03f4aa2c80b8efd1ace5b55156846 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/web_runner.py @@ -0,0 +1,406 @@ +import asyncio +import signal +import socket +import warnings +from abc import ABC, abstractmethod +from typing import Any, Awaitable, Callable, List, Optional, Set + +from yarl import URL + +from .typedefs import PathLike +from .web_app import Application +from .web_server import Server + +try: + from ssl import SSLContext +except ImportError: + SSLContext = object # type: ignore[misc,assignment] + + +__all__ = ( + "BaseSite", + "TCPSite", + "UnixSite", + "NamedPipeSite", + "SockSite", + "BaseRunner", + "AppRunner", + "ServerRunner", + "GracefulExit", +) + + +class GracefulExit(SystemExit): + code = 1 + + +def _raise_graceful_exit() -> None: + raise GracefulExit() + + +class BaseSite(ABC): + __slots__ = ("_runner", "_ssl_context", "_backlog", "_server") + + def __init__( + self, + runner: "BaseRunner", + *, + shutdown_timeout: float = 60.0, + ssl_context: Optional[SSLContext] = None, + backlog: int = 128, + ) -> None: + if runner.server is None: + raise RuntimeError("Call runner.setup() before making a site") + if shutdown_timeout != 60.0: + msg = "shutdown_timeout should be set on BaseRunner" + warnings.warn(msg, DeprecationWarning, stacklevel=2) + runner._shutdown_timeout = shutdown_timeout + self._runner = runner + self._ssl_context = ssl_context + self._backlog = backlog + self._server: Optional[asyncio.AbstractServer] = None + + @property + @abstractmethod + def name(self) -> str: + pass # pragma: no cover + + @abstractmethod + async def start(self) -> None: + self._runner._reg_site(self) + + async def stop(self) -> None: + self._runner._check_site(self) + if self._server is not None: # Maybe not started yet + self._server.close() + + self._runner._unreg_site(self) + + +class TCPSite(BaseSite): + __slots__ = ("_host", "_port", "_reuse_address", "_reuse_port") + + def __init__( + self, + runner: "BaseRunner", + host: Optional[str] = None, + port: Optional[int] = None, + *, + shutdown_timeout: float = 60.0, + ssl_context: Optional[SSLContext] = None, + backlog: int = 128, + reuse_address: Optional[bool] = None, + reuse_port: Optional[bool] = None, + ) -> None: + super().__init__( + runner, + shutdown_timeout=shutdown_timeout, + ssl_context=ssl_context, + backlog=backlog, + ) + self._host = host + if port is None: + port = 8443 if self._ssl_context else 8080 + self._port = port + self._reuse_address = reuse_address + self._reuse_port = reuse_port + + @property + def name(self) -> str: + scheme = "https" if self._ssl_context else "http" + host = "0.0.0.0" if self._host is None else self._host + return str(URL.build(scheme=scheme, host=host, port=self._port)) + + async def start(self) -> None: + await super().start() + loop = asyncio.get_event_loop() + server = self._runner.server + assert server is not None + self._server = await loop.create_server( + server, + self._host, + self._port, + ssl=self._ssl_context, + backlog=self._backlog, + reuse_address=self._reuse_address, + reuse_port=self._reuse_port, + ) + + +class UnixSite(BaseSite): + __slots__ = ("_path",) + + def __init__( + self, + runner: "BaseRunner", + path: PathLike, + *, + shutdown_timeout: float = 60.0, + ssl_context: Optional[SSLContext] = None, + backlog: int = 128, + ) -> None: + super().__init__( + runner, + shutdown_timeout=shutdown_timeout, + ssl_context=ssl_context, + backlog=backlog, + ) + self._path = path + + @property + def name(self) -> str: + scheme = "https" if self._ssl_context else "http" + return f"{scheme}://unix:{self._path}:" + + async def start(self) -> None: + await super().start() + loop = asyncio.get_event_loop() + server = self._runner.server + assert server is not None + self._server = await loop.create_unix_server( + server, + self._path, + ssl=self._ssl_context, + backlog=self._backlog, + ) + + +class NamedPipeSite(BaseSite): + __slots__ = ("_path",) + + def __init__( + self, runner: "BaseRunner", path: str, *, shutdown_timeout: float = 60.0 + ) -> None: + loop = asyncio.get_event_loop() + if not isinstance( + loop, asyncio.ProactorEventLoop # type: ignore[attr-defined] + ): + raise RuntimeError( + "Named Pipes only available in proactor" "loop under windows" + ) + super().__init__(runner, shutdown_timeout=shutdown_timeout) + self._path = path + + @property + def name(self) -> str: + return self._path + + async def start(self) -> None: + await super().start() + loop = asyncio.get_event_loop() + server = self._runner.server + assert server is not None + _server = await loop.start_serving_pipe( # type: ignore[attr-defined] + server, self._path + ) + self._server = _server[0] + + +class SockSite(BaseSite): + __slots__ = ("_sock", "_name") + + def __init__( + self, + runner: "BaseRunner", + sock: socket.socket, + *, + shutdown_timeout: float = 60.0, + ssl_context: Optional[SSLContext] = None, + backlog: int = 128, + ) -> None: + super().__init__( + runner, + shutdown_timeout=shutdown_timeout, + ssl_context=ssl_context, + backlog=backlog, + ) + self._sock = sock + scheme = "https" if self._ssl_context else "http" + if hasattr(socket, "AF_UNIX") and sock.family == socket.AF_UNIX: + name = f"{scheme}://unix:{sock.getsockname()}:" + else: + host, port = sock.getsockname()[:2] + name = str(URL.build(scheme=scheme, host=host, port=port)) + self._name = name + + @property + def name(self) -> str: + return self._name + + async def start(self) -> None: + await super().start() + loop = asyncio.get_event_loop() + server = self._runner.server + assert server is not None + self._server = await loop.create_server( + server, sock=self._sock, ssl=self._ssl_context, backlog=self._backlog + ) + + +class BaseRunner(ABC): + __slots__ = ( + "shutdown_callback", + "_handle_signals", + "_kwargs", + "_server", + "_sites", + "_shutdown_timeout", + ) + + def __init__( + self, + *, + handle_signals: bool = False, + shutdown_timeout: float = 60.0, + **kwargs: Any, + ) -> None: + self.shutdown_callback: Optional[Callable[[], Awaitable[None]]] = None + self._handle_signals = handle_signals + self._kwargs = kwargs + self._server: Optional[Server] = None + self._sites: List[BaseSite] = [] + self._shutdown_timeout = shutdown_timeout + + @property + def server(self) -> Optional[Server]: + return self._server + + @property + def addresses(self) -> List[Any]: + ret: List[Any] = [] + for site in self._sites: + server = site._server + if server is not None: + sockets = server.sockets # type: ignore[attr-defined] + if sockets is not None: + for sock in sockets: + ret.append(sock.getsockname()) + return ret + + @property + def sites(self) -> Set[BaseSite]: + return set(self._sites) + + async def setup(self) -> None: + loop = asyncio.get_event_loop() + + if self._handle_signals: + try: + loop.add_signal_handler(signal.SIGINT, _raise_graceful_exit) + loop.add_signal_handler(signal.SIGTERM, _raise_graceful_exit) + except NotImplementedError: # pragma: no cover + # add_signal_handler is not implemented on Windows + pass + + self._server = await self._make_server() + + @abstractmethod + async def shutdown(self) -> None: + """Call any shutdown hooks to help server close gracefully.""" + + async def cleanup(self) -> None: + # The loop over sites is intentional, an exception on gather() + # leaves self._sites in unpredictable state. + # The loop guaranties that a site is either deleted on success or + # still present on failure + for site in list(self._sites): + await site.stop() + + if self._server: # If setup succeeded + self._server.pre_shutdown() + await self.shutdown() + + if self.shutdown_callback: + await self.shutdown_callback() + + await self._server.shutdown(self._shutdown_timeout) + await self._cleanup_server() + + self._server = None + if self._handle_signals: + loop = asyncio.get_running_loop() + try: + loop.remove_signal_handler(signal.SIGINT) + loop.remove_signal_handler(signal.SIGTERM) + except NotImplementedError: # pragma: no cover + # remove_signal_handler is not implemented on Windows + pass + + @abstractmethod + async def _make_server(self) -> Server: + pass # pragma: no cover + + @abstractmethod + async def _cleanup_server(self) -> None: + pass # pragma: no cover + + def _reg_site(self, site: BaseSite) -> None: + if site in self._sites: + raise RuntimeError(f"Site {site} is already registered in runner {self}") + self._sites.append(site) + + def _check_site(self, site: BaseSite) -> None: + if site not in self._sites: + raise RuntimeError(f"Site {site} is not registered in runner {self}") + + def _unreg_site(self, site: BaseSite) -> None: + if site not in self._sites: + raise RuntimeError(f"Site {site} is not registered in runner {self}") + self._sites.remove(site) + + +class ServerRunner(BaseRunner): + """Low-level web server runner""" + + __slots__ = ("_web_server",) + + def __init__( + self, web_server: Server, *, handle_signals: bool = False, **kwargs: Any + ) -> None: + super().__init__(handle_signals=handle_signals, **kwargs) + self._web_server = web_server + + async def shutdown(self) -> None: + pass + + async def _make_server(self) -> Server: + return self._web_server + + async def _cleanup_server(self) -> None: + pass + + +class AppRunner(BaseRunner): + """Web Application runner""" + + __slots__ = ("_app",) + + def __init__( + self, app: Application, *, handle_signals: bool = False, **kwargs: Any + ) -> None: + super().__init__(handle_signals=handle_signals, **kwargs) + if not isinstance(app, Application): + raise TypeError( + "The first argument should be web.Application " + "instance, got {!r}".format(app) + ) + self._app = app + + @property + def app(self) -> Application: + return self._app + + async def shutdown(self) -> None: + await self._app.shutdown() + + async def _make_server(self) -> Server: + loop = asyncio.get_event_loop() + self._app._set_loop(loop) + self._app.on_startup.freeze() + await self._app.startup() + self._app.freeze() + + return self._app._make_handler(loop=loop, **self._kwargs) + + async def _cleanup_server(self) -> None: + await self._app.cleanup() diff --git a/gtm/lib/python3.12/site-packages/aiohttp/web_server.py b/gtm/lib/python3.12/site-packages/aiohttp/web_server.py new file mode 100644 index 0000000000000000000000000000000000000000..52faacb164a0a00fdd7ed853e2ca965cc18ab1a6 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/web_server.py @@ -0,0 +1,77 @@ +"""Low level HTTP server.""" +import asyncio +from typing import Any, Awaitable, Callable, Dict, List, Optional # noqa + +from .abc import AbstractStreamWriter +from .helpers import get_running_loop +from .http_parser import RawRequestMessage +from .streams import StreamReader +from .web_protocol import RequestHandler, _RequestFactory, _RequestHandler +from .web_request import BaseRequest + +__all__ = ("Server",) + + +class Server: + def __init__( + self, + handler: _RequestHandler, + *, + request_factory: Optional[_RequestFactory] = None, + handler_cancellation: bool = False, + loop: Optional[asyncio.AbstractEventLoop] = None, + **kwargs: Any + ) -> None: + self._loop = get_running_loop(loop) + self._connections: Dict[RequestHandler, asyncio.Transport] = {} + self._kwargs = kwargs + self.requests_count = 0 + self.request_handler = handler + self.request_factory = request_factory or self._make_request + self.handler_cancellation = handler_cancellation + + @property + def connections(self) -> List[RequestHandler]: + return list(self._connections.keys()) + + def connection_made( + self, handler: RequestHandler, transport: asyncio.Transport + ) -> None: + self._connections[handler] = transport + + def connection_lost( + self, handler: RequestHandler, exc: Optional[BaseException] = None + ) -> None: + if handler in self._connections: + del self._connections[handler] + + def _make_request( + self, + message: RawRequestMessage, + payload: StreamReader, + protocol: RequestHandler, + writer: AbstractStreamWriter, + task: "asyncio.Task[None]", + ) -> BaseRequest: + return BaseRequest(message, payload, protocol, writer, task, self._loop) + + def pre_shutdown(self) -> None: + for conn in self._connections: + conn.close() + + async def shutdown(self, timeout: Optional[float] = None) -> None: + coros = (conn.shutdown(timeout) for conn in self._connections) + await asyncio.gather(*coros) + self._connections.clear() + + def __call__(self) -> RequestHandler: + try: + return RequestHandler(self, loop=self._loop, **self._kwargs) + except TypeError: + # Failsafe creation: remove all custom handler_args + kwargs = { + k: v + for k, v in self._kwargs.items() + if k in ["debug", "access_log_class"] + } + return RequestHandler(self, loop=self._loop, **kwargs) diff --git a/gtm/lib/python3.12/site-packages/aiohttp/web_urldispatcher.py b/gtm/lib/python3.12/site-packages/aiohttp/web_urldispatcher.py new file mode 100644 index 0000000000000000000000000000000000000000..99696533444c2b31945c23b010c20b44cf7f438a --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/web_urldispatcher.py @@ -0,0 +1,1232 @@ +import abc +import asyncio +import base64 +import hashlib +import inspect +import keyword +import os +import re +import warnings +from contextlib import contextmanager +from functools import wraps +from pathlib import Path +from types import MappingProxyType +from typing import ( + TYPE_CHECKING, + Any, + Awaitable, + Callable, + Container, + Dict, + Final, + Generator, + Iterable, + Iterator, + List, + Mapping, + NoReturn, + Optional, + Pattern, + Set, + Sized, + Tuple, + Type, + TypedDict, + Union, + cast, +) + +from yarl import URL, __version__ as yarl_version # type: ignore[attr-defined] + +from . import hdrs +from .abc import AbstractMatchInfo, AbstractRouter, AbstractView +from .helpers import DEBUG +from .http import HttpVersion11 +from .typedefs import Handler, PathLike +from .web_exceptions import ( + HTTPException, + HTTPExpectationFailed, + HTTPForbidden, + HTTPMethodNotAllowed, + HTTPNotFound, +) +from .web_fileresponse import FileResponse +from .web_request import Request +from .web_response import Response, StreamResponse +from .web_routedef import AbstractRouteDef + +__all__ = ( + "UrlDispatcher", + "UrlMappingMatchInfo", + "AbstractResource", + "Resource", + "PlainResource", + "DynamicResource", + "AbstractRoute", + "ResourceRoute", + "StaticResource", + "View", +) + + +if TYPE_CHECKING: + from .web_app import Application + + BaseDict = Dict[str, str] +else: + BaseDict = dict + +YARL_VERSION: Final[Tuple[int, ...]] = tuple(map(int, yarl_version.split(".")[:2])) + +HTTP_METHOD_RE: Final[Pattern[str]] = re.compile( + r"^[0-9A-Za-z!#\$%&'\*\+\-\.\^_`\|~]+$" +) +ROUTE_RE: Final[Pattern[str]] = re.compile( + r"(\{[_a-zA-Z][^{}]*(?:\{[^{}]*\}[^{}]*)*\})" +) +PATH_SEP: Final[str] = re.escape("/") + + +_ExpectHandler = Callable[[Request], Awaitable[Optional[StreamResponse]]] +_Resolve = Tuple[Optional["UrlMappingMatchInfo"], Set[str]] + + +class _InfoDict(TypedDict, total=False): + path: str + + formatter: str + pattern: Pattern[str] + + directory: Path + prefix: str + routes: Mapping[str, "AbstractRoute"] + + app: "Application" + + domain: str + + rule: "AbstractRuleMatching" + + http_exception: HTTPException + + +class AbstractResource(Sized, Iterable["AbstractRoute"]): + def __init__(self, *, name: Optional[str] = None) -> None: + self._name = name + + @property + def name(self) -> Optional[str]: + return self._name + + @property + @abc.abstractmethod + def canonical(self) -> str: + """Exposes the resource's canonical path. + + For example '/foo/bar/{name}' + + """ + + @abc.abstractmethod # pragma: no branch + def url_for(self, **kwargs: str) -> URL: + """Construct url for resource with additional params.""" + + @abc.abstractmethod # pragma: no branch + async def resolve(self, request: Request) -> _Resolve: + """Resolve resource. + + Return (UrlMappingMatchInfo, allowed_methods) pair. + """ + + @abc.abstractmethod + def add_prefix(self, prefix: str) -> None: + """Add a prefix to processed URLs. + + Required for subapplications support. + """ + + @abc.abstractmethod + def get_info(self) -> _InfoDict: + """Return a dict with additional info useful for introspection""" + + def freeze(self) -> None: + pass + + @abc.abstractmethod + def raw_match(self, path: str) -> bool: + """Perform a raw match against path""" + + +class AbstractRoute(abc.ABC): + def __init__( + self, + method: str, + handler: Union[Handler, Type[AbstractView]], + *, + expect_handler: Optional[_ExpectHandler] = None, + resource: Optional[AbstractResource] = None, + ) -> None: + + if expect_handler is None: + expect_handler = _default_expect_handler + + assert asyncio.iscoroutinefunction( + expect_handler + ), f"Coroutine is expected, got {expect_handler!r}" + + method = method.upper() + if not HTTP_METHOD_RE.match(method): + raise ValueError(f"{method} is not allowed HTTP method") + + assert callable(handler), handler + if asyncio.iscoroutinefunction(handler): + pass + elif inspect.isgeneratorfunction(handler): + warnings.warn( + "Bare generators are deprecated, " "use @coroutine wrapper", + DeprecationWarning, + ) + elif isinstance(handler, type) and issubclass(handler, AbstractView): + pass + else: + warnings.warn( + "Bare functions are deprecated, " "use async ones", DeprecationWarning + ) + + @wraps(handler) + async def handler_wrapper(request: Request) -> StreamResponse: + result = old_handler(request) + if asyncio.iscoroutine(result): + result = await result + assert isinstance(result, StreamResponse) + return result + + old_handler = handler + handler = handler_wrapper + + self._method = method + self._handler = handler + self._expect_handler = expect_handler + self._resource = resource + + @property + def method(self) -> str: + return self._method + + @property + def handler(self) -> Handler: + return self._handler + + @property + @abc.abstractmethod + def name(self) -> Optional[str]: + """Optional route's name, always equals to resource's name.""" + + @property + def resource(self) -> Optional[AbstractResource]: + return self._resource + + @abc.abstractmethod + def get_info(self) -> _InfoDict: + """Return a dict with additional info useful for introspection""" + + @abc.abstractmethod # pragma: no branch + def url_for(self, *args: str, **kwargs: str) -> URL: + """Construct url for route with additional params.""" + + async def handle_expect_header(self, request: Request) -> Optional[StreamResponse]: + return await self._expect_handler(request) + + +class UrlMappingMatchInfo(BaseDict, AbstractMatchInfo): + def __init__(self, match_dict: Dict[str, str], route: AbstractRoute): + super().__init__(match_dict) + self._route = route + self._apps: List[Application] = [] + self._current_app: Optional[Application] = None + self._frozen = False + + @property + def handler(self) -> Handler: + return self._route.handler + + @property + def route(self) -> AbstractRoute: + return self._route + + @property + def expect_handler(self) -> _ExpectHandler: + return self._route.handle_expect_header + + @property + def http_exception(self) -> Optional[HTTPException]: + return None + + def get_info(self) -> _InfoDict: # type: ignore[override] + return self._route.get_info() + + @property + def apps(self) -> Tuple["Application", ...]: + return tuple(self._apps) + + def add_app(self, app: "Application") -> None: + if self._frozen: + raise RuntimeError("Cannot change apps stack after .freeze() call") + if self._current_app is None: + self._current_app = app + self._apps.insert(0, app) + + @property + def current_app(self) -> "Application": + app = self._current_app + assert app is not None + return app + + @contextmanager + def set_current_app(self, app: "Application") -> Generator[None, None, None]: + if DEBUG: # pragma: no cover + if app not in self._apps: + raise RuntimeError( + "Expected one of the following apps {!r}, got {!r}".format( + self._apps, app + ) + ) + prev = self._current_app + self._current_app = app + try: + yield + finally: + self._current_app = prev + + def freeze(self) -> None: + self._frozen = True + + def __repr__(self) -> str: + return f"" + + +class MatchInfoError(UrlMappingMatchInfo): + def __init__(self, http_exception: HTTPException) -> None: + self._exception = http_exception + super().__init__({}, SystemRoute(self._exception)) + + @property + def http_exception(self) -> HTTPException: + return self._exception + + def __repr__(self) -> str: + return "".format( + self._exception.status, self._exception.reason + ) + + +async def _default_expect_handler(request: Request) -> None: + """Default handler for Expect header. + + Just send "100 Continue" to client. + raise HTTPExpectationFailed if value of header is not "100-continue" + """ + expect = request.headers.get(hdrs.EXPECT, "") + if request.version == HttpVersion11: + if expect.lower() == "100-continue": + await request.writer.write(b"HTTP/1.1 100 Continue\r\n\r\n") + else: + raise HTTPExpectationFailed(text="Unknown Expect: %s" % expect) + + +class Resource(AbstractResource): + def __init__(self, *, name: Optional[str] = None) -> None: + super().__init__(name=name) + self._routes: List[ResourceRoute] = [] + + def add_route( + self, + method: str, + handler: Union[Type[AbstractView], Handler], + *, + expect_handler: Optional[_ExpectHandler] = None, + ) -> "ResourceRoute": + + for route_obj in self._routes: + if route_obj.method == method or route_obj.method == hdrs.METH_ANY: + raise RuntimeError( + "Added route will never be executed, " + "method {route.method} is already " + "registered".format(route=route_obj) + ) + + route_obj = ResourceRoute(method, handler, self, expect_handler=expect_handler) + self.register_route(route_obj) + return route_obj + + def register_route(self, route: "ResourceRoute") -> None: + assert isinstance( + route, ResourceRoute + ), f"Instance of Route class is required, got {route!r}" + self._routes.append(route) + + async def resolve(self, request: Request) -> _Resolve: + allowed_methods: Set[str] = set() + + match_dict = self._match(request.rel_url.raw_path) + if match_dict is None: + return None, allowed_methods + + for route_obj in self._routes: + route_method = route_obj.method + allowed_methods.add(route_method) + + if route_method == request.method or route_method == hdrs.METH_ANY: + return (UrlMappingMatchInfo(match_dict, route_obj), allowed_methods) + else: + return None, allowed_methods + + @abc.abstractmethod + def _match(self, path: str) -> Optional[Dict[str, str]]: + pass # pragma: no cover + + def __len__(self) -> int: + return len(self._routes) + + def __iter__(self) -> Iterator["ResourceRoute"]: + return iter(self._routes) + + # TODO: implement all abstract methods + + +class PlainResource(Resource): + def __init__(self, path: str, *, name: Optional[str] = None) -> None: + super().__init__(name=name) + assert not path or path.startswith("/") + self._path = path + + @property + def canonical(self) -> str: + return self._path + + def freeze(self) -> None: + if not self._path: + self._path = "/" + + def add_prefix(self, prefix: str) -> None: + assert prefix.startswith("/") + assert not prefix.endswith("/") + assert len(prefix) > 1 + self._path = prefix + self._path + + def _match(self, path: str) -> Optional[Dict[str, str]]: + # string comparison is about 10 times faster than regexp matching + if self._path == path: + return {} + else: + return None + + def raw_match(self, path: str) -> bool: + return self._path == path + + def get_info(self) -> _InfoDict: + return {"path": self._path} + + def url_for(self) -> URL: # type: ignore[override] + return URL.build(path=self._path, encoded=True) + + def __repr__(self) -> str: + name = "'" + self.name + "' " if self.name is not None else "" + return f"" + + +class DynamicResource(Resource): + + DYN = re.compile(r"\{(?P[_a-zA-Z][_a-zA-Z0-9]*)\}") + DYN_WITH_RE = re.compile(r"\{(?P[_a-zA-Z][_a-zA-Z0-9]*):(?P.+)\}") + GOOD = r"[^{}/]+" + + def __init__(self, path: str, *, name: Optional[str] = None) -> None: + super().__init__(name=name) + pattern = "" + formatter = "" + for part in ROUTE_RE.split(path): + match = self.DYN.fullmatch(part) + if match: + pattern += "(?P<{}>{})".format(match.group("var"), self.GOOD) + formatter += "{" + match.group("var") + "}" + continue + + match = self.DYN_WITH_RE.fullmatch(part) + if match: + pattern += "(?P<{var}>{re})".format(**match.groupdict()) + formatter += "{" + match.group("var") + "}" + continue + + if "{" in part or "}" in part: + raise ValueError(f"Invalid path '{path}'['{part}']") + + part = _requote_path(part) + formatter += part + pattern += re.escape(part) + + try: + compiled = re.compile(pattern) + except re.error as exc: + raise ValueError(f"Bad pattern '{pattern}': {exc}") from None + assert compiled.pattern.startswith(PATH_SEP) + assert formatter.startswith("/") + self._pattern = compiled + self._formatter = formatter + + @property + def canonical(self) -> str: + return self._formatter + + def add_prefix(self, prefix: str) -> None: + assert prefix.startswith("/") + assert not prefix.endswith("/") + assert len(prefix) > 1 + self._pattern = re.compile(re.escape(prefix) + self._pattern.pattern) + self._formatter = prefix + self._formatter + + def _match(self, path: str) -> Optional[Dict[str, str]]: + match = self._pattern.fullmatch(path) + if match is None: + return None + else: + return { + key: _unquote_path(value) for key, value in match.groupdict().items() + } + + def raw_match(self, path: str) -> bool: + return self._formatter == path + + def get_info(self) -> _InfoDict: + return {"formatter": self._formatter, "pattern": self._pattern} + + def url_for(self, **parts: str) -> URL: + url = self._formatter.format_map({k: _quote_path(v) for k, v in parts.items()}) + return URL.build(path=url, encoded=True) + + def __repr__(self) -> str: + name = "'" + self.name + "' " if self.name is not None else "" + return "".format( + name=name, formatter=self._formatter + ) + + +class PrefixResource(AbstractResource): + def __init__(self, prefix: str, *, name: Optional[str] = None) -> None: + assert not prefix or prefix.startswith("/"), prefix + assert prefix in ("", "/") or not prefix.endswith("/"), prefix + super().__init__(name=name) + self._prefix = _requote_path(prefix) + self._prefix2 = self._prefix + "/" + + @property + def canonical(self) -> str: + return self._prefix + + def add_prefix(self, prefix: str) -> None: + assert prefix.startswith("/") + assert not prefix.endswith("/") + assert len(prefix) > 1 + self._prefix = prefix + self._prefix + self._prefix2 = self._prefix + "/" + + def raw_match(self, prefix: str) -> bool: + return False + + # TODO: impl missing abstract methods + + +class StaticResource(PrefixResource): + VERSION_KEY = "v" + + def __init__( + self, + prefix: str, + directory: PathLike, + *, + name: Optional[str] = None, + expect_handler: Optional[_ExpectHandler] = None, + chunk_size: int = 256 * 1024, + show_index: bool = False, + follow_symlinks: bool = False, + append_version: bool = False, + ) -> None: + super().__init__(prefix, name=name) + try: + directory = Path(directory) + if str(directory).startswith("~"): + directory = Path(os.path.expanduser(str(directory))) + directory = directory.resolve() + if not directory.is_dir(): + raise ValueError("Not a directory") + except (FileNotFoundError, ValueError) as error: + raise ValueError(f"No directory exists at '{directory}'") from error + self._directory = directory + self._show_index = show_index + self._chunk_size = chunk_size + self._follow_symlinks = follow_symlinks + self._expect_handler = expect_handler + self._append_version = append_version + + self._routes = { + "GET": ResourceRoute( + "GET", self._handle, self, expect_handler=expect_handler + ), + "HEAD": ResourceRoute( + "HEAD", self._handle, self, expect_handler=expect_handler + ), + } + + def url_for( # type: ignore[override] + self, + *, + filename: PathLike, + append_version: Optional[bool] = None, + ) -> URL: + if append_version is None: + append_version = self._append_version + filename = str(filename).lstrip("/") + + url = URL.build(path=self._prefix, encoded=True) + # filename is not encoded + if YARL_VERSION < (1, 6): + url = url / filename.replace("%", "%25") + else: + url = url / filename + + if append_version: + unresolved_path = self._directory.joinpath(filename) + try: + if self._follow_symlinks: + normalized_path = Path(os.path.normpath(unresolved_path)) + normalized_path.relative_to(self._directory) + filepath = normalized_path.resolve() + else: + filepath = unresolved_path.resolve() + filepath.relative_to(self._directory) + except (ValueError, FileNotFoundError): + # ValueError for case when path point to symlink + # with follow_symlinks is False + return url # relatively safe + if filepath.is_file(): + # TODO cache file content + # with file watcher for cache invalidation + with filepath.open("rb") as f: + file_bytes = f.read() + h = self._get_file_hash(file_bytes) + url = url.with_query({self.VERSION_KEY: h}) + return url + return url + + @staticmethod + def _get_file_hash(byte_array: bytes) -> str: + m = hashlib.sha256() # todo sha256 can be configurable param + m.update(byte_array) + b64 = base64.urlsafe_b64encode(m.digest()) + return b64.decode("ascii") + + def get_info(self) -> _InfoDict: + return { + "directory": self._directory, + "prefix": self._prefix, + "routes": self._routes, + } + + def set_options_route(self, handler: Handler) -> None: + if "OPTIONS" in self._routes: + raise RuntimeError("OPTIONS route was set already") + self._routes["OPTIONS"] = ResourceRoute( + "OPTIONS", handler, self, expect_handler=self._expect_handler + ) + + async def resolve(self, request: Request) -> _Resolve: + path = request.rel_url.raw_path + method = request.method + allowed_methods = set(self._routes) + if not path.startswith(self._prefix2) and path != self._prefix: + return None, set() + + if method not in allowed_methods: + return None, allowed_methods + + match_dict = {"filename": _unquote_path(path[len(self._prefix) + 1 :])} + return (UrlMappingMatchInfo(match_dict, self._routes[method]), allowed_methods) + + def __len__(self) -> int: + return len(self._routes) + + def __iter__(self) -> Iterator[AbstractRoute]: + return iter(self._routes.values()) + + async def _handle(self, request: Request) -> StreamResponse: + rel_url = request.match_info["filename"] + try: + filename = Path(rel_url) + if filename.anchor: + # rel_url is an absolute name like + # /static/\\machine_name\c$ or /static/D:\path + # where the static dir is totally different + raise HTTPForbidden() + unresolved_path = self._directory.joinpath(filename) + if self._follow_symlinks: + normalized_path = Path(os.path.normpath(unresolved_path)) + normalized_path.relative_to(self._directory) + filepath = normalized_path.resolve() + else: + filepath = unresolved_path.resolve() + filepath.relative_to(self._directory) + except (ValueError, FileNotFoundError) as error: + # relatively safe + raise HTTPNotFound() from error + except HTTPForbidden: + raise + except Exception as error: + # perm error or other kind! + request.app.logger.exception(error) + raise HTTPNotFound() from error + + # on opening a dir, load its contents if allowed + if filepath.is_dir(): + if self._show_index: + try: + return Response( + text=self._directory_as_html(filepath), content_type="text/html" + ) + except PermissionError: + raise HTTPForbidden() + else: + raise HTTPForbidden() + elif filepath.is_file(): + return FileResponse(filepath, chunk_size=self._chunk_size) + else: + raise HTTPNotFound + + def _directory_as_html(self, filepath: Path) -> str: + # returns directory's index as html + + # sanity check + assert filepath.is_dir() + + relative_path_to_dir = filepath.relative_to(self._directory).as_posix() + index_of = f"Index of /{relative_path_to_dir}" + h1 = f"

{index_of}

" + + index_list = [] + dir_index = filepath.iterdir() + for _file in sorted(dir_index): + # show file url as relative to static path + rel_path = _file.relative_to(self._directory).as_posix() + file_url = self._prefix + "/" + rel_path + + # if file is a directory, add '/' to the end of the name + if _file.is_dir(): + file_name = f"{_file.name}/" + else: + file_name = _file.name + + index_list.append( + '
  • {name}
  • '.format( + url=file_url, name=file_name + ) + ) + ul = "
      \n{}\n
    ".format("\n".join(index_list)) + body = f"\n{h1}\n{ul}\n" + + head_str = f"\n{index_of}\n" + html = f"\n{head_str}\n{body}\n" + + return html + + def __repr__(self) -> str: + name = "'" + self.name + "'" if self.name is not None else "" + return " {directory!r}>".format( + name=name, path=self._prefix, directory=self._directory + ) + + +class PrefixedSubAppResource(PrefixResource): + def __init__(self, prefix: str, app: "Application") -> None: + super().__init__(prefix) + self._app = app + for resource in app.router.resources(): + resource.add_prefix(prefix) + + def add_prefix(self, prefix: str) -> None: + super().add_prefix(prefix) + for resource in self._app.router.resources(): + resource.add_prefix(prefix) + + def url_for(self, *args: str, **kwargs: str) -> URL: + raise RuntimeError(".url_for() is not supported " "by sub-application root") + + def get_info(self) -> _InfoDict: + return {"app": self._app, "prefix": self._prefix} + + async def resolve(self, request: Request) -> _Resolve: + if ( + not request.url.raw_path.startswith(self._prefix2) + and request.url.raw_path != self._prefix + ): + return None, set() + match_info = await self._app.router.resolve(request) + match_info.add_app(self._app) + if isinstance(match_info.http_exception, HTTPMethodNotAllowed): + methods = match_info.http_exception.allowed_methods + else: + methods = set() + return match_info, methods + + def __len__(self) -> int: + return len(self._app.router.routes()) + + def __iter__(self) -> Iterator[AbstractRoute]: + return iter(self._app.router.routes()) + + def __repr__(self) -> str: + return " {app!r}>".format( + prefix=self._prefix, app=self._app + ) + + +class AbstractRuleMatching(abc.ABC): + @abc.abstractmethod # pragma: no branch + async def match(self, request: Request) -> bool: + """Return bool if the request satisfies the criteria""" + + @abc.abstractmethod # pragma: no branch + def get_info(self) -> _InfoDict: + """Return a dict with additional info useful for introspection""" + + @property + @abc.abstractmethod # pragma: no branch + def canonical(self) -> str: + """Return a str""" + + +class Domain(AbstractRuleMatching): + re_part = re.compile(r"(?!-)[a-z\d-]{1,63}(? None: + super().__init__() + self._domain = self.validation(domain) + + @property + def canonical(self) -> str: + return self._domain + + def validation(self, domain: str) -> str: + if not isinstance(domain, str): + raise TypeError("Domain must be str") + domain = domain.rstrip(".").lower() + if not domain: + raise ValueError("Domain cannot be empty") + elif "://" in domain: + raise ValueError("Scheme not supported") + url = URL("http://" + domain) + assert url.raw_host is not None + if not all(self.re_part.fullmatch(x) for x in url.raw_host.split(".")): + raise ValueError("Domain not valid") + if url.port == 80: + return url.raw_host + return f"{url.raw_host}:{url.port}" + + async def match(self, request: Request) -> bool: + host = request.headers.get(hdrs.HOST) + if not host: + return False + return self.match_domain(host) + + def match_domain(self, host: str) -> bool: + return host.lower() == self._domain + + def get_info(self) -> _InfoDict: + return {"domain": self._domain} + + +class MaskDomain(Domain): + re_part = re.compile(r"(?!-)[a-z\d\*-]{1,63}(? None: + super().__init__(domain) + mask = self._domain.replace(".", r"\.").replace("*", ".*") + self._mask = re.compile(mask) + + @property + def canonical(self) -> str: + return self._mask.pattern + + def match_domain(self, host: str) -> bool: + return self._mask.fullmatch(host) is not None + + +class MatchedSubAppResource(PrefixedSubAppResource): + def __init__(self, rule: AbstractRuleMatching, app: "Application") -> None: + AbstractResource.__init__(self) + self._prefix = "" + self._app = app + self._rule = rule + + @property + def canonical(self) -> str: + return self._rule.canonical + + def get_info(self) -> _InfoDict: + return {"app": self._app, "rule": self._rule} + + async def resolve(self, request: Request) -> _Resolve: + if not await self._rule.match(request): + return None, set() + match_info = await self._app.router.resolve(request) + match_info.add_app(self._app) + if isinstance(match_info.http_exception, HTTPMethodNotAllowed): + methods = match_info.http_exception.allowed_methods + else: + methods = set() + return match_info, methods + + def __repr__(self) -> str: + return " {app!r}>" "".format(app=self._app) + + +class ResourceRoute(AbstractRoute): + """A route with resource""" + + def __init__( + self, + method: str, + handler: Union[Handler, Type[AbstractView]], + resource: AbstractResource, + *, + expect_handler: Optional[_ExpectHandler] = None, + ) -> None: + super().__init__( + method, handler, expect_handler=expect_handler, resource=resource + ) + + def __repr__(self) -> str: + return " {handler!r}".format( + method=self.method, resource=self._resource, handler=self.handler + ) + + @property + def name(self) -> Optional[str]: + if self._resource is None: + return None + return self._resource.name + + def url_for(self, *args: str, **kwargs: str) -> URL: + """Construct url for route with additional params.""" + assert self._resource is not None + return self._resource.url_for(*args, **kwargs) + + def get_info(self) -> _InfoDict: + assert self._resource is not None + return self._resource.get_info() + + +class SystemRoute(AbstractRoute): + def __init__(self, http_exception: HTTPException) -> None: + super().__init__(hdrs.METH_ANY, self._handle) + self._http_exception = http_exception + + def url_for(self, *args: str, **kwargs: str) -> URL: + raise RuntimeError(".url_for() is not allowed for SystemRoute") + + @property + def name(self) -> Optional[str]: + return None + + def get_info(self) -> _InfoDict: + return {"http_exception": self._http_exception} + + async def _handle(self, request: Request) -> StreamResponse: + raise self._http_exception + + @property + def status(self) -> int: + return self._http_exception.status + + @property + def reason(self) -> str: + return self._http_exception.reason + + def __repr__(self) -> str: + return "".format(self=self) + + +class View(AbstractView): + async def _iter(self) -> StreamResponse: + if self.request.method not in hdrs.METH_ALL: + self._raise_allowed_methods() + method: Optional[Callable[[], Awaitable[StreamResponse]]] + method = getattr(self, self.request.method.lower(), None) + if method is None: + self._raise_allowed_methods() + ret = await method() + assert isinstance(ret, StreamResponse) + return ret + + def __await__(self) -> Generator[Any, None, StreamResponse]: + return self._iter().__await__() + + def _raise_allowed_methods(self) -> NoReturn: + allowed_methods = {m for m in hdrs.METH_ALL if hasattr(self, m.lower())} + raise HTTPMethodNotAllowed(self.request.method, allowed_methods) + + +class ResourcesView(Sized, Iterable[AbstractResource], Container[AbstractResource]): + def __init__(self, resources: List[AbstractResource]) -> None: + self._resources = resources + + def __len__(self) -> int: + return len(self._resources) + + def __iter__(self) -> Iterator[AbstractResource]: + yield from self._resources + + def __contains__(self, resource: object) -> bool: + return resource in self._resources + + +class RoutesView(Sized, Iterable[AbstractRoute], Container[AbstractRoute]): + def __init__(self, resources: List[AbstractResource]): + self._routes: List[AbstractRoute] = [] + for resource in resources: + for route in resource: + self._routes.append(route) + + def __len__(self) -> int: + return len(self._routes) + + def __iter__(self) -> Iterator[AbstractRoute]: + yield from self._routes + + def __contains__(self, route: object) -> bool: + return route in self._routes + + +class UrlDispatcher(AbstractRouter, Mapping[str, AbstractResource]): + + NAME_SPLIT_RE = re.compile(r"[.:-]") + + def __init__(self) -> None: + super().__init__() + self._resources: List[AbstractResource] = [] + self._named_resources: Dict[str, AbstractResource] = {} + + async def resolve(self, request: Request) -> UrlMappingMatchInfo: + method = request.method + allowed_methods: Set[str] = set() + + for resource in self._resources: + match_dict, allowed = await resource.resolve(request) + if match_dict is not None: + return match_dict + else: + allowed_methods |= allowed + + if allowed_methods: + return MatchInfoError(HTTPMethodNotAllowed(method, allowed_methods)) + else: + return MatchInfoError(HTTPNotFound()) + + def __iter__(self) -> Iterator[str]: + return iter(self._named_resources) + + def __len__(self) -> int: + return len(self._named_resources) + + def __contains__(self, resource: object) -> bool: + return resource in self._named_resources + + def __getitem__(self, name: str) -> AbstractResource: + return self._named_resources[name] + + def resources(self) -> ResourcesView: + return ResourcesView(self._resources) + + def routes(self) -> RoutesView: + return RoutesView(self._resources) + + def named_resources(self) -> Mapping[str, AbstractResource]: + return MappingProxyType(self._named_resources) + + def register_resource(self, resource: AbstractResource) -> None: + assert isinstance( + resource, AbstractResource + ), f"Instance of AbstractResource class is required, got {resource!r}" + if self.frozen: + raise RuntimeError("Cannot register a resource into frozen router.") + + name = resource.name + + if name is not None: + parts = self.NAME_SPLIT_RE.split(name) + for part in parts: + if keyword.iskeyword(part): + raise ValueError( + f"Incorrect route name {name!r}, " + "python keywords cannot be used " + "for route name" + ) + if not part.isidentifier(): + raise ValueError( + "Incorrect route name {!r}, " + "the name should be a sequence of " + "python identifiers separated " + "by dash, dot or column".format(name) + ) + if name in self._named_resources: + raise ValueError( + "Duplicate {!r}, " + "already handled by {!r}".format(name, self._named_resources[name]) + ) + self._named_resources[name] = resource + self._resources.append(resource) + + def add_resource(self, path: str, *, name: Optional[str] = None) -> Resource: + if path and not path.startswith("/"): + raise ValueError("path should be started with / or be empty") + # Reuse last added resource if path and name are the same + if self._resources: + resource = self._resources[-1] + if resource.name == name and resource.raw_match(path): + return cast(Resource, resource) + if not ("{" in path or "}" in path or ROUTE_RE.search(path)): + resource = PlainResource(_requote_path(path), name=name) + self.register_resource(resource) + return resource + resource = DynamicResource(path, name=name) + self.register_resource(resource) + return resource + + def add_route( + self, + method: str, + path: str, + handler: Union[Handler, Type[AbstractView]], + *, + name: Optional[str] = None, + expect_handler: Optional[_ExpectHandler] = None, + ) -> AbstractRoute: + resource = self.add_resource(path, name=name) + return resource.add_route(method, handler, expect_handler=expect_handler) + + def add_static( + self, + prefix: str, + path: PathLike, + *, + name: Optional[str] = None, + expect_handler: Optional[_ExpectHandler] = None, + chunk_size: int = 256 * 1024, + show_index: bool = False, + follow_symlinks: bool = False, + append_version: bool = False, + ) -> AbstractResource: + """Add static files view. + + prefix - url prefix + path - folder with files + + """ + assert prefix.startswith("/") + if prefix.endswith("/"): + prefix = prefix[:-1] + resource = StaticResource( + prefix, + path, + name=name, + expect_handler=expect_handler, + chunk_size=chunk_size, + show_index=show_index, + follow_symlinks=follow_symlinks, + append_version=append_version, + ) + self.register_resource(resource) + return resource + + def add_head(self, path: str, handler: Handler, **kwargs: Any) -> AbstractRoute: + """Shortcut for add_route with method HEAD.""" + return self.add_route(hdrs.METH_HEAD, path, handler, **kwargs) + + def add_options(self, path: str, handler: Handler, **kwargs: Any) -> AbstractRoute: + """Shortcut for add_route with method OPTIONS.""" + return self.add_route(hdrs.METH_OPTIONS, path, handler, **kwargs) + + def add_get( + self, + path: str, + handler: Handler, + *, + name: Optional[str] = None, + allow_head: bool = True, + **kwargs: Any, + ) -> AbstractRoute: + """Shortcut for add_route with method GET. + + If allow_head is true, another + route is added allowing head requests to the same endpoint. + """ + resource = self.add_resource(path, name=name) + if allow_head: + resource.add_route(hdrs.METH_HEAD, handler, **kwargs) + return resource.add_route(hdrs.METH_GET, handler, **kwargs) + + def add_post(self, path: str, handler: Handler, **kwargs: Any) -> AbstractRoute: + """Shortcut for add_route with method POST.""" + return self.add_route(hdrs.METH_POST, path, handler, **kwargs) + + def add_put(self, path: str, handler: Handler, **kwargs: Any) -> AbstractRoute: + """Shortcut for add_route with method PUT.""" + return self.add_route(hdrs.METH_PUT, path, handler, **kwargs) + + def add_patch(self, path: str, handler: Handler, **kwargs: Any) -> AbstractRoute: + """Shortcut for add_route with method PATCH.""" + return self.add_route(hdrs.METH_PATCH, path, handler, **kwargs) + + def add_delete(self, path: str, handler: Handler, **kwargs: Any) -> AbstractRoute: + """Shortcut for add_route with method DELETE.""" + return self.add_route(hdrs.METH_DELETE, path, handler, **kwargs) + + def add_view( + self, path: str, handler: Type[AbstractView], **kwargs: Any + ) -> AbstractRoute: + """Shortcut for add_route with ANY methods for a class-based view.""" + return self.add_route(hdrs.METH_ANY, path, handler, **kwargs) + + def freeze(self) -> None: + super().freeze() + for resource in self._resources: + resource.freeze() + + def add_routes(self, routes: Iterable[AbstractRouteDef]) -> List[AbstractRoute]: + """Append routes to route table. + + Parameter should be a sequence of RouteDef objects. + + Returns a list of registered AbstractRoute instances. + """ + registered_routes = [] + for route_def in routes: + registered_routes.extend(route_def.register(self)) + return registered_routes + + +def _quote_path(value: str) -> str: + if YARL_VERSION < (1, 6): + value = value.replace("%", "%25") + return URL.build(path=value, encoded=False).raw_path + + +def _unquote_path(value: str) -> str: + return URL.build(path=value, encoded=True).path + + +def _requote_path(value: str) -> str: + # Quote non-ascii characters and other characters which must be quoted, + # but preserve existing %-sequences. + result = _quote_path(value) + if "%" in value: + result = result.replace("%25", "%") + return result diff --git a/gtm/lib/python3.12/site-packages/aiohttp/web_ws.py b/gtm/lib/python3.12/site-packages/aiohttp/web_ws.py new file mode 100644 index 0000000000000000000000000000000000000000..783377716f526bc9855ca01eed9a1a57f326d015 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/web_ws.py @@ -0,0 +1,529 @@ +import asyncio +import base64 +import binascii +import hashlib +import json +import sys +from typing import Any, Final, Iterable, Optional, Tuple, cast + +import attr +from multidict import CIMultiDict + +from . import hdrs +from .abc import AbstractStreamWriter +from .helpers import call_later, set_result +from .http import ( + WS_CLOSED_MESSAGE, + WS_CLOSING_MESSAGE, + WS_KEY, + WebSocketError, + WebSocketReader, + WebSocketWriter, + WSCloseCode, + WSMessage, + WSMsgType as WSMsgType, + ws_ext_gen, + ws_ext_parse, +) +from .log import ws_logger +from .streams import EofStream, FlowControlDataQueue +from .typedefs import JSONDecoder, JSONEncoder +from .web_exceptions import HTTPBadRequest, HTTPException +from .web_request import BaseRequest +from .web_response import StreamResponse + +if sys.version_info >= (3, 11): + import asyncio as async_timeout +else: + import async_timeout + +__all__ = ( + "WebSocketResponse", + "WebSocketReady", + "WSMsgType", +) + +THRESHOLD_CONNLOST_ACCESS: Final[int] = 5 + + +@attr.s(auto_attribs=True, frozen=True, slots=True) +class WebSocketReady: + ok: bool + protocol: Optional[str] + + def __bool__(self) -> bool: + return self.ok + + +class WebSocketResponse(StreamResponse): + + _length_check = False + + def __init__( + self, + *, + timeout: float = 10.0, + receive_timeout: Optional[float] = None, + autoclose: bool = True, + autoping: bool = True, + heartbeat: Optional[float] = None, + protocols: Iterable[str] = (), + compress: bool = True, + max_msg_size: int = 4 * 1024 * 1024, + ) -> None: + super().__init__(status=101) + self._protocols = protocols + self._ws_protocol: Optional[str] = None + self._writer: Optional[WebSocketWriter] = None + self._reader: Optional[FlowControlDataQueue[WSMessage]] = None + self._closed = False + self._closing = False + self._conn_lost = 0 + self._close_code: Optional[int] = None + self._loop: Optional[asyncio.AbstractEventLoop] = None + self._waiting: Optional[asyncio.Future[bool]] = None + self._exception: Optional[BaseException] = None + self._timeout = timeout + self._receive_timeout = receive_timeout + self._autoclose = autoclose + self._autoping = autoping + self._heartbeat = heartbeat + self._heartbeat_cb: Optional[asyncio.TimerHandle] = None + if heartbeat is not None: + self._pong_heartbeat = heartbeat / 2.0 + self._pong_response_cb: Optional[asyncio.TimerHandle] = None + self._compress = compress + self._max_msg_size = max_msg_size + + def _cancel_heartbeat(self) -> None: + if self._pong_response_cb is not None: + self._pong_response_cb.cancel() + self._pong_response_cb = None + + if self._heartbeat_cb is not None: + self._heartbeat_cb.cancel() + self._heartbeat_cb = None + + def _reset_heartbeat(self) -> None: + self._cancel_heartbeat() + + if self._heartbeat is not None: + assert self._loop is not None + self._heartbeat_cb = call_later( + self._send_heartbeat, + self._heartbeat, + self._loop, + timeout_ceil_threshold=self._req._protocol._timeout_ceil_threshold + if self._req is not None + else 5, + ) + + def _send_heartbeat(self) -> None: + if self._heartbeat is not None and not self._closed: + assert self._loop is not None + # fire-and-forget a task is not perfect but maybe ok for + # sending ping. Otherwise we need a long-living heartbeat + # task in the class. + self._loop.create_task(self._writer.ping()) # type: ignore[union-attr] + + if self._pong_response_cb is not None: + self._pong_response_cb.cancel() + self._pong_response_cb = call_later( + self._pong_not_received, + self._pong_heartbeat, + self._loop, + timeout_ceil_threshold=self._req._protocol._timeout_ceil_threshold + if self._req is not None + else 5, + ) + + def _pong_not_received(self) -> None: + if self._req is not None and self._req.transport is not None: + self._closed = True + self._set_code_close_transport(WSCloseCode.ABNORMAL_CLOSURE) + self._exception = asyncio.TimeoutError() + + async def prepare(self, request: BaseRequest) -> AbstractStreamWriter: + # make pre-check to don't hide it by do_handshake() exceptions + if self._payload_writer is not None: + return self._payload_writer + + protocol, writer = self._pre_start(request) + payload_writer = await super().prepare(request) + assert payload_writer is not None + self._post_start(request, protocol, writer) + await payload_writer.drain() + return payload_writer + + def _handshake( + self, request: BaseRequest + ) -> Tuple["CIMultiDict[str]", str, bool, bool]: + headers = request.headers + if "websocket" != headers.get(hdrs.UPGRADE, "").lower().strip(): + raise HTTPBadRequest( + text=( + "No WebSocket UPGRADE hdr: {}\n Can " + '"Upgrade" only to "WebSocket".' + ).format(headers.get(hdrs.UPGRADE)) + ) + + if "upgrade" not in headers.get(hdrs.CONNECTION, "").lower(): + raise HTTPBadRequest( + text="No CONNECTION upgrade hdr: {}".format( + headers.get(hdrs.CONNECTION) + ) + ) + + # find common sub-protocol between client and server + protocol = None + if hdrs.SEC_WEBSOCKET_PROTOCOL in headers: + req_protocols = [ + str(proto.strip()) + for proto in headers[hdrs.SEC_WEBSOCKET_PROTOCOL].split(",") + ] + + for proto in req_protocols: + if proto in self._protocols: + protocol = proto + break + else: + # No overlap found: Return no protocol as per spec + ws_logger.warning( + "Client protocols %r don’t overlap server-known ones %r", + req_protocols, + self._protocols, + ) + + # check supported version + version = headers.get(hdrs.SEC_WEBSOCKET_VERSION, "") + if version not in ("13", "8", "7"): + raise HTTPBadRequest(text=f"Unsupported version: {version}") + + # check client handshake for validity + key = headers.get(hdrs.SEC_WEBSOCKET_KEY) + try: + if not key or len(base64.b64decode(key)) != 16: + raise HTTPBadRequest(text=f"Handshake error: {key!r}") + except binascii.Error: + raise HTTPBadRequest(text=f"Handshake error: {key!r}") from None + + accept_val = base64.b64encode( + hashlib.sha1(key.encode() + WS_KEY).digest() + ).decode() + response_headers = CIMultiDict( + { + hdrs.UPGRADE: "websocket", + hdrs.CONNECTION: "upgrade", + hdrs.SEC_WEBSOCKET_ACCEPT: accept_val, + } + ) + + notakeover = False + compress = 0 + if self._compress: + extensions = headers.get(hdrs.SEC_WEBSOCKET_EXTENSIONS) + # Server side always get return with no exception. + # If something happened, just drop compress extension + compress, notakeover = ws_ext_parse(extensions, isserver=True) + if compress: + enabledext = ws_ext_gen( + compress=compress, isserver=True, server_notakeover=notakeover + ) + response_headers[hdrs.SEC_WEBSOCKET_EXTENSIONS] = enabledext + + if protocol: + response_headers[hdrs.SEC_WEBSOCKET_PROTOCOL] = protocol + return ( + response_headers, + protocol, + compress, + notakeover, + ) # type: ignore[return-value] + + def _pre_start(self, request: BaseRequest) -> Tuple[str, WebSocketWriter]: + self._loop = request._loop + + headers, protocol, compress, notakeover = self._handshake(request) + + self.set_status(101) + self.headers.update(headers) + self.force_close() + self._compress = compress + transport = request._protocol.transport + assert transport is not None + writer = WebSocketWriter( + request._protocol, transport, compress=compress, notakeover=notakeover + ) + + return protocol, writer + + def _post_start( + self, request: BaseRequest, protocol: str, writer: WebSocketWriter + ) -> None: + self._ws_protocol = protocol + self._writer = writer + + self._reset_heartbeat() + + loop = self._loop + assert loop is not None + self._reader = FlowControlDataQueue(request._protocol, 2**16, loop=loop) + request.protocol.set_parser( + WebSocketReader(self._reader, self._max_msg_size, compress=self._compress) + ) + # disable HTTP keepalive for WebSocket + request.protocol.keep_alive(False) + + def can_prepare(self, request: BaseRequest) -> WebSocketReady: + if self._writer is not None: + raise RuntimeError("Already started") + try: + _, protocol, _, _ = self._handshake(request) + except HTTPException: + return WebSocketReady(False, None) + else: + return WebSocketReady(True, protocol) + + @property + def closed(self) -> bool: + return self._closed + + @property + def close_code(self) -> Optional[int]: + return self._close_code + + @property + def ws_protocol(self) -> Optional[str]: + return self._ws_protocol + + @property + def compress(self) -> bool: + return self._compress + + def get_extra_info(self, name: str, default: Any = None) -> Any: + """Get optional transport information. + + If no value associated with ``name`` is found, ``default`` is returned. + """ + writer = self._writer + if writer is None: + return default + transport = writer.transport + if transport is None: + return default + return transport.get_extra_info(name, default) + + def exception(self) -> Optional[BaseException]: + return self._exception + + async def ping(self, message: bytes = b"") -> None: + if self._writer is None: + raise RuntimeError("Call .prepare() first") + await self._writer.ping(message) + + async def pong(self, message: bytes = b"") -> None: + # unsolicited pong + if self._writer is None: + raise RuntimeError("Call .prepare() first") + await self._writer.pong(message) + + async def send_str(self, data: str, compress: Optional[bool] = None) -> None: + if self._writer is None: + raise RuntimeError("Call .prepare() first") + if not isinstance(data, str): + raise TypeError("data argument must be str (%r)" % type(data)) + await self._writer.send(data, binary=False, compress=compress) + + async def send_bytes(self, data: bytes, compress: Optional[bool] = None) -> None: + if self._writer is None: + raise RuntimeError("Call .prepare() first") + if not isinstance(data, (bytes, bytearray, memoryview)): + raise TypeError("data argument must be byte-ish (%r)" % type(data)) + await self._writer.send(data, binary=True, compress=compress) + + async def send_json( + self, + data: Any, + compress: Optional[bool] = None, + *, + dumps: JSONEncoder = json.dumps, + ) -> None: + await self.send_str(dumps(data), compress=compress) + + async def write_eof(self) -> None: # type: ignore[override] + if self._eof_sent: + return + if self._payload_writer is None: + raise RuntimeError("Response has not been started") + + await self.close() + self._eof_sent = True + + async def close( + self, *, code: int = WSCloseCode.OK, message: bytes = b"", drain: bool = True + ) -> bool: + """Close websocket connection.""" + if self._writer is None: + raise RuntimeError("Call .prepare() first") + + self._cancel_heartbeat() + reader = self._reader + assert reader is not None + + # we need to break `receive()` cycle first, + # `close()` may be called from different task + if self._waiting is not None and not self._closed: + reader.feed_data(WS_CLOSING_MESSAGE, 0) + await self._waiting + + if self._closed: + return False + + self._closed = True + try: + await self._writer.close(code, message) + writer = self._payload_writer + assert writer is not None + if drain: + await writer.drain() + except (asyncio.CancelledError, asyncio.TimeoutError): + self._set_code_close_transport(WSCloseCode.ABNORMAL_CLOSURE) + raise + except Exception as exc: + self._exception = exc + self._set_code_close_transport(WSCloseCode.ABNORMAL_CLOSURE) + return True + + if self._closing: + return True + + reader = self._reader + assert reader is not None + try: + async with async_timeout.timeout(self._timeout): + msg = await reader.read() + except asyncio.CancelledError: + self._set_code_close_transport(WSCloseCode.ABNORMAL_CLOSURE) + raise + except Exception as exc: + self._exception = exc + self._set_code_close_transport(WSCloseCode.ABNORMAL_CLOSURE) + return True + + if msg.type == WSMsgType.CLOSE: + self._set_code_close_transport(msg.data) + return True + + self._set_code_close_transport(WSCloseCode.ABNORMAL_CLOSURE) + self._exception = asyncio.TimeoutError() + return True + + def _set_code_close_transport(self, code: WSCloseCode) -> None: + """Set the close code and close the transport.""" + self._close_code = code + if self._req is not None and self._req.transport is not None: + self._req.transport.close() + + async def receive(self, timeout: Optional[float] = None) -> WSMessage: + if self._reader is None: + raise RuntimeError("Call .prepare() first") + + loop = self._loop + assert loop is not None + while True: + if self._waiting is not None: + raise RuntimeError("Concurrent call to receive() is not allowed") + + if self._closed: + self._conn_lost += 1 + if self._conn_lost >= THRESHOLD_CONNLOST_ACCESS: + raise RuntimeError("WebSocket connection is closed.") + return WS_CLOSED_MESSAGE + elif self._closing: + return WS_CLOSING_MESSAGE + + try: + self._waiting = loop.create_future() + try: + async with async_timeout.timeout(timeout or self._receive_timeout): + msg = await self._reader.read() + self._reset_heartbeat() + finally: + waiter = self._waiting + set_result(waiter, True) + self._waiting = None + except (asyncio.CancelledError, asyncio.TimeoutError): + self._set_code_close_transport(WSCloseCode.ABNORMAL_CLOSURE) + raise + except EofStream: + self._close_code = WSCloseCode.OK + await self.close() + return WSMessage(WSMsgType.CLOSED, None, None) + except WebSocketError as exc: + self._close_code = exc.code + await self.close(code=exc.code) + return WSMessage(WSMsgType.ERROR, exc, None) + except Exception as exc: + self._exception = exc + self._closing = True + self._close_code = WSCloseCode.ABNORMAL_CLOSURE + await self.close() + return WSMessage(WSMsgType.ERROR, exc, None) + + if msg.type == WSMsgType.CLOSE: + self._closing = True + self._close_code = msg.data + # Could be closed while awaiting reader. + if not self._closed and self._autoclose: + # The client is likely going to close the + # connection out from under us so we do not + # want to drain any pending writes as it will + # likely result writing to a broken pipe. + await self.close(drain=False) + elif msg.type == WSMsgType.CLOSING: + self._closing = True + elif msg.type == WSMsgType.PING and self._autoping: + await self.pong(msg.data) + continue + elif msg.type == WSMsgType.PONG and self._autoping: + continue + + return msg + + async def receive_str(self, *, timeout: Optional[float] = None) -> str: + msg = await self.receive(timeout) + if msg.type != WSMsgType.TEXT: + raise TypeError( + "Received message {}:{!r} is not WSMsgType.TEXT".format( + msg.type, msg.data + ) + ) + return cast(str, msg.data) + + async def receive_bytes(self, *, timeout: Optional[float] = None) -> bytes: + msg = await self.receive(timeout) + if msg.type != WSMsgType.BINARY: + raise TypeError(f"Received message {msg.type}:{msg.data!r} is not bytes") + return cast(bytes, msg.data) + + async def receive_json( + self, *, loads: JSONDecoder = json.loads, timeout: Optional[float] = None + ) -> Any: + data = await self.receive_str(timeout=timeout) + return loads(data) + + async def write(self, data: bytes) -> None: + raise RuntimeError("Cannot call .write() for websocket") + + def __aiter__(self) -> "WebSocketResponse": + return self + + async def __anext__(self) -> WSMessage: + msg = await self.receive() + if msg.type in (WSMsgType.CLOSE, WSMsgType.CLOSING, WSMsgType.CLOSED): + raise StopAsyncIteration + return msg + + def _cancel(self, exc: BaseException) -> None: + if self._reader is not None: + self._reader.set_exception(exc) diff --git a/gtm/lib/python3.12/site-packages/aiohttp/worker.py b/gtm/lib/python3.12/site-packages/aiohttp/worker.py new file mode 100644 index 0000000000000000000000000000000000000000..9b30769733663fb45f17362291dcc3a5753abbc1 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiohttp/worker.py @@ -0,0 +1,247 @@ +"""Async gunicorn worker for aiohttp.web""" + +import asyncio +import os +import re +import signal +import sys +from types import FrameType +from typing import Any, Awaitable, Callable, Optional, Union # noqa + +from gunicorn.config import AccessLogFormat as GunicornAccessLogFormat +from gunicorn.workers import base + +from aiohttp import web + +from .helpers import set_result +from .web_app import Application +from .web_log import AccessLogger + +try: + import ssl + + SSLContext = ssl.SSLContext +except ImportError: # pragma: no cover + ssl = None # type: ignore[assignment] + SSLContext = object # type: ignore[misc,assignment] + + +__all__ = ("GunicornWebWorker", "GunicornUVLoopWebWorker") + + +class GunicornWebWorker(base.Worker): # type: ignore[misc,no-any-unimported] + + DEFAULT_AIOHTTP_LOG_FORMAT = AccessLogger.LOG_FORMAT + DEFAULT_GUNICORN_LOG_FORMAT = GunicornAccessLogFormat.default + + def __init__(self, *args: Any, **kw: Any) -> None: # pragma: no cover + super().__init__(*args, **kw) + + self._task: Optional[asyncio.Task[None]] = None + self.exit_code = 0 + self._notify_waiter: Optional[asyncio.Future[bool]] = None + + def init_process(self) -> None: + # create new event_loop after fork + asyncio.get_event_loop().close() + + self.loop = asyncio.new_event_loop() + asyncio.set_event_loop(self.loop) + + super().init_process() + + def run(self) -> None: + self._task = self.loop.create_task(self._run()) + + try: # ignore all finalization problems + self.loop.run_until_complete(self._task) + except Exception: + self.log.exception("Exception in gunicorn worker") + self.loop.run_until_complete(self.loop.shutdown_asyncgens()) + self.loop.close() + + sys.exit(self.exit_code) + + async def _run(self) -> None: + runner = None + if isinstance(self.wsgi, Application): + app = self.wsgi + elif asyncio.iscoroutinefunction(self.wsgi): + wsgi = await self.wsgi() + if isinstance(wsgi, web.AppRunner): + runner = wsgi + app = runner.app + else: + app = wsgi + else: + raise RuntimeError( + "wsgi app should be either Application or " + "async function returning Application, got {}".format(self.wsgi) + ) + + if runner is None: + access_log = self.log.access_log if self.cfg.accesslog else None + runner = web.AppRunner( + app, + logger=self.log, + keepalive_timeout=self.cfg.keepalive, + access_log=access_log, + access_log_format=self._get_valid_log_format( + self.cfg.access_log_format + ), + shutdown_timeout=self.cfg.graceful_timeout / 100 * 95, + ) + await runner.setup() + + ctx = self._create_ssl_context(self.cfg) if self.cfg.is_ssl else None + + runner = runner + assert runner is not None + server = runner.server + assert server is not None + for sock in self.sockets: + site = web.SockSite( + runner, + sock, + ssl_context=ctx, + ) + await site.start() + + # If our parent changed then we shut down. + pid = os.getpid() + try: + while self.alive: # type: ignore[has-type] + self.notify() + + cnt = server.requests_count + if self.max_requests and cnt > self.max_requests: + self.alive = False + self.log.info("Max requests, shutting down: %s", self) + + elif pid == os.getpid() and self.ppid != os.getppid(): + self.alive = False + self.log.info("Parent changed, shutting down: %s", self) + else: + await self._wait_next_notify() + except BaseException: + pass + + await runner.cleanup() + + def _wait_next_notify(self) -> "asyncio.Future[bool]": + self._notify_waiter_done() + + loop = self.loop + assert loop is not None + self._notify_waiter = waiter = loop.create_future() + self.loop.call_later(1.0, self._notify_waiter_done, waiter) + + return waiter + + def _notify_waiter_done( + self, waiter: Optional["asyncio.Future[bool]"] = None + ) -> None: + if waiter is None: + waiter = self._notify_waiter + if waiter is not None: + set_result(waiter, True) + + if waiter is self._notify_waiter: + self._notify_waiter = None + + def init_signals(self) -> None: + # Set up signals through the event loop API. + + self.loop.add_signal_handler( + signal.SIGQUIT, self.handle_quit, signal.SIGQUIT, None + ) + + self.loop.add_signal_handler( + signal.SIGTERM, self.handle_exit, signal.SIGTERM, None + ) + + self.loop.add_signal_handler( + signal.SIGINT, self.handle_quit, signal.SIGINT, None + ) + + self.loop.add_signal_handler( + signal.SIGWINCH, self.handle_winch, signal.SIGWINCH, None + ) + + self.loop.add_signal_handler( + signal.SIGUSR1, self.handle_usr1, signal.SIGUSR1, None + ) + + self.loop.add_signal_handler( + signal.SIGABRT, self.handle_abort, signal.SIGABRT, None + ) + + # Don't let SIGTERM and SIGUSR1 disturb active requests + # by interrupting system calls + signal.siginterrupt(signal.SIGTERM, False) + signal.siginterrupt(signal.SIGUSR1, False) + # Reset signals so Gunicorn doesn't swallow subprocess return codes + # See: https://github.com/aio-libs/aiohttp/issues/6130 + + def handle_quit(self, sig: int, frame: Optional[FrameType]) -> None: + self.alive = False + + # worker_int callback + self.cfg.worker_int(self) + + # wakeup closing process + self._notify_waiter_done() + + def handle_abort(self, sig: int, frame: Optional[FrameType]) -> None: + self.alive = False + self.exit_code = 1 + self.cfg.worker_abort(self) + sys.exit(1) + + @staticmethod + def _create_ssl_context(cfg: Any) -> "SSLContext": + """Creates SSLContext instance for usage in asyncio.create_server. + + See ssl.SSLSocket.__init__ for more details. + """ + if ssl is None: # pragma: no cover + raise RuntimeError("SSL is not supported.") + + ctx = ssl.SSLContext(cfg.ssl_version) + ctx.load_cert_chain(cfg.certfile, cfg.keyfile) + ctx.verify_mode = cfg.cert_reqs + if cfg.ca_certs: + ctx.load_verify_locations(cfg.ca_certs) + if cfg.ciphers: + ctx.set_ciphers(cfg.ciphers) + return ctx + + def _get_valid_log_format(self, source_format: str) -> str: + if source_format == self.DEFAULT_GUNICORN_LOG_FORMAT: + return self.DEFAULT_AIOHTTP_LOG_FORMAT + elif re.search(r"%\([^\)]+\)", source_format): + raise ValueError( + "Gunicorn's style options in form of `%(name)s` are not " + "supported for the log formatting. Please use aiohttp's " + "format specification to configure access log formatting: " + "http://docs.aiohttp.org/en/stable/logging.html" + "#format-specification" + ) + else: + return source_format + + +class GunicornUVLoopWebWorker(GunicornWebWorker): + def init_process(self) -> None: + import uvloop + + # Close any existing event loop before setting a + # new policy. + asyncio.get_event_loop().close() + + # Setup uvloop policy, so that every + # asyncio.get_event_loop() will create an instance + # of uvloop event loop. + asyncio.set_event_loop_policy(uvloop.EventLoopPolicy()) + + super().init_process() diff --git a/gtm/lib/python3.12/site-packages/aiosignal-1.3.1.dist-info/INSTALLER b/gtm/lib/python3.12/site-packages/aiosignal-1.3.1.dist-info/INSTALLER new file mode 100644 index 0000000000000000000000000000000000000000..a1b589e38a32041e49332e5e81c2d363dc418d68 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiosignal-1.3.1.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/gtm/lib/python3.12/site-packages/aiosignal-1.3.1.dist-info/LICENSE b/gtm/lib/python3.12/site-packages/aiosignal-1.3.1.dist-info/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..7082a2d5b9047bfc09589f387053e24ea490bc54 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiosignal-1.3.1.dist-info/LICENSE @@ -0,0 +1,201 @@ +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2013-2019 Nikolay Kim and Andrew Svetlov + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/gtm/lib/python3.12/site-packages/aiosignal-1.3.1.dist-info/METADATA b/gtm/lib/python3.12/site-packages/aiosignal-1.3.1.dist-info/METADATA new file mode 100644 index 0000000000000000000000000000000000000000..fc964525f05e8e34961f0398b1930b8dec64ef26 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiosignal-1.3.1.dist-info/METADATA @@ -0,0 +1,128 @@ +Metadata-Version: 2.1 +Name: aiosignal +Version: 1.3.1 +Summary: aiosignal: a list of registered asynchronous callbacks +Home-page: https://github.com/aio-libs/aiosignal +Maintainer: aiohttp team +Maintainer-email: team@aiohttp.org +License: Apache 2.0 +Project-URL: Chat: Gitter, https://gitter.im/aio-libs/Lobby +Project-URL: CI: GitHub Actions, https://github.com/aio-libs/aiosignal/actions +Project-URL: Coverage: codecov, https://codecov.io/github/aio-libs/aiosignal +Project-URL: Docs: RTD, https://docs.aiosignal.org +Project-URL: GitHub: issues, https://github.com/aio-libs/aiosignal/issues +Project-URL: GitHub: repo, https://github.com/aio-libs/aiosignal +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Intended Audience :: Developers +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Development Status :: 5 - Production/Stable +Classifier: Operating System :: POSIX +Classifier: Operating System :: MacOS :: MacOS X +Classifier: Operating System :: Microsoft :: Windows +Classifier: Framework :: AsyncIO +Requires-Python: >=3.7 +Description-Content-Type: text/x-rst +License-File: LICENSE +Requires-Dist: frozenlist (>=1.1.0) + +========= +aiosignal +========= + +.. image:: https://github.com/aio-libs/aiosignal/workflows/CI/badge.svg + :target: https://github.com/aio-libs/aiosignal/actions?query=workflow%3ACI + :alt: GitHub status for master branch + +.. image:: https://codecov.io/gh/aio-libs/aiosignal/branch/master/graph/badge.svg + :target: https://codecov.io/gh/aio-libs/aiosignal + :alt: codecov.io status for master branch + +.. image:: https://badge.fury.io/py/aiosignal.svg + :target: https://pypi.org/project/aiosignal + :alt: Latest PyPI package version + +.. image:: https://readthedocs.org/projects/aiosignal/badge/?version=latest + :target: https://aiosignal.readthedocs.io/ + :alt: Latest Read The Docs + +.. image:: https://img.shields.io/discourse/topics?server=https%3A%2F%2Faio-libs.discourse.group%2F + :target: https://aio-libs.discourse.group/ + :alt: Discourse group for io-libs + +.. image:: https://badges.gitter.im/Join%20Chat.svg + :target: https://gitter.im/aio-libs/Lobby + :alt: Chat on Gitter + +Introduction +============ + +A project to manage callbacks in `asyncio` projects. + +``Signal`` is a list of registered asynchronous callbacks. + +The signal's life-cycle has two stages: after creation its content +could be filled by using standard list operations: ``sig.append()`` +etc. + +After you call ``sig.freeze()`` the signal is *frozen*: adding, removing +and dropping callbacks is forbidden. + +The only available operation is calling the previously registered +callbacks by using ``await sig.send(data)``. + +For concrete usage examples see the `Signals + +section of the `Web Server Advanced +` chapter of the `aiohttp +documentation`_. + + +Installation +------------ + +:: + + $ pip install aiosignal + +The library requires Python 3.6 or newer. + + +Documentation +============= + +https://aiosignal.readthedocs.io/ + +Communication channels +====================== + +*gitter chat* https://gitter.im/aio-libs/Lobby + +Requirements +============ + +- Python >= 3.6 +- frozenlist >= 1.0.0 + +License +======= + +``aiosignal`` is offered under the Apache 2 license. + +Source code +=========== + +The project is hosted on GitHub_ + +Please file an issue in the `bug tracker +`_ if you have found a bug +or have some suggestions to improve the library. + +.. _GitHub: https://github.com/aio-libs/aiosignal +.. _aiohttp documentation: https://docs.aiohttp.org/ diff --git a/gtm/lib/python3.12/site-packages/aiosignal-1.3.1.dist-info/RECORD b/gtm/lib/python3.12/site-packages/aiosignal-1.3.1.dist-info/RECORD new file mode 100644 index 0000000000000000000000000000000000000000..6d9ffa2512de0a5749d92066373cbe4f478af5d7 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiosignal-1.3.1.dist-info/RECORD @@ -0,0 +1,10 @@ +aiosignal-1.3.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +aiosignal-1.3.1.dist-info/LICENSE,sha256=b9UkPpLdf5jsacesN3co50kFcJ_1J6W_mNbQJjwE9bY,11332 +aiosignal-1.3.1.dist-info/METADATA,sha256=c0HRnlYzfXKztZPTFDlPfygizTherhG5WdwXlvco0Ug,4008 +aiosignal-1.3.1.dist-info/RECORD,, +aiosignal-1.3.1.dist-info/WHEEL,sha256=ZL1lC_LiPDNRgDnOl2taCMc83aPEUZgHHv2h-LDgdiM,92 +aiosignal-1.3.1.dist-info/top_level.txt,sha256=z45aNOKGDdrI1roqZY3BGXQ22kJFPHBmVdwtLYLtXC0,10 +aiosignal/__init__.py,sha256=zQNfFYRSd84bswvpFv8ZWjEr5DeYwV3LXbMSyo2222s,867 +aiosignal/__init__.pyi,sha256=xeCddYSS8fZAkz8S4HuKSR2IDe3N7RW_LKcXDPPA1Xk,311 +aiosignal/__pycache__/__init__.cpython-312.pyc,, +aiosignal/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 diff --git a/gtm/lib/python3.12/site-packages/aiosignal-1.3.1.dist-info/WHEEL b/gtm/lib/python3.12/site-packages/aiosignal-1.3.1.dist-info/WHEEL new file mode 100644 index 0000000000000000000000000000000000000000..5e1f087ca1ac49327ef76b101df80489a03c2e7f --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiosignal-1.3.1.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.38.2) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/gtm/lib/python3.12/site-packages/aiosignal-1.3.1.dist-info/top_level.txt b/gtm/lib/python3.12/site-packages/aiosignal-1.3.1.dist-info/top_level.txt new file mode 100644 index 0000000000000000000000000000000000000000..ac6df3afe74a5fd43afc7ab7f8393571a495fdc5 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiosignal-1.3.1.dist-info/top_level.txt @@ -0,0 +1 @@ +aiosignal diff --git a/gtm/lib/python3.12/site-packages/aiosignal/__init__.py b/gtm/lib/python3.12/site-packages/aiosignal/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..3d288e6ede67df2bb8e5660e30372e190eb23e65 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiosignal/__init__.py @@ -0,0 +1,36 @@ +from frozenlist import FrozenList + +__version__ = "1.3.1" + +__all__ = ("Signal",) + + +class Signal(FrozenList): + """Coroutine-based signal implementation. + + To connect a callback to a signal, use any list method. + + Signals are fired using the send() coroutine, which takes named + arguments. + """ + + __slots__ = ("_owner",) + + def __init__(self, owner): + super().__init__() + self._owner = owner + + def __repr__(self): + return "".format( + self._owner, self.frozen, list(self) + ) + + async def send(self, *args, **kwargs): + """ + Sends data to all registered receivers. + """ + if not self.frozen: + raise RuntimeError("Cannot send non-frozen signal.") + + for receiver in self: + await receiver(*args, **kwargs) # type: ignore diff --git a/gtm/lib/python3.12/site-packages/aiosignal/__init__.pyi b/gtm/lib/python3.12/site-packages/aiosignal/__init__.pyi new file mode 100644 index 0000000000000000000000000000000000000000..d4e3416d72246058259061578a82697e2bc0706e --- /dev/null +++ b/gtm/lib/python3.12/site-packages/aiosignal/__init__.pyi @@ -0,0 +1,12 @@ +from typing import Any, Generic, TypeVar + +from frozenlist import FrozenList + +__all__ = ("Signal",) + +_T = TypeVar("_T") + +class Signal(FrozenList[_T], Generic[_T]): + def __init__(self, owner: Any) -> None: ... + def __repr__(self) -> str: ... + async def send(self, *args: Any, **kwargs: Any) -> None: ... diff --git a/gtm/lib/python3.12/site-packages/aiosignal/__pycache__/__init__.cpython-312.pyc b/gtm/lib/python3.12/site-packages/aiosignal/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5506fbca4b00e653836b23c0a5f7fb176c1dac5a Binary files /dev/null and b/gtm/lib/python3.12/site-packages/aiosignal/__pycache__/__init__.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/aiosignal/py.typed b/gtm/lib/python3.12/site-packages/aiosignal/py.typed new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/gtm/lib/python3.12/site-packages/frozenlist-1.4.1.dist-info/INSTALLER b/gtm/lib/python3.12/site-packages/frozenlist-1.4.1.dist-info/INSTALLER new file mode 100644 index 0000000000000000000000000000000000000000..a1b589e38a32041e49332e5e81c2d363dc418d68 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/frozenlist-1.4.1.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/gtm/lib/python3.12/site-packages/frozenlist-1.4.1.dist-info/LICENSE b/gtm/lib/python3.12/site-packages/frozenlist-1.4.1.dist-info/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..7082a2d5b9047bfc09589f387053e24ea490bc54 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/frozenlist-1.4.1.dist-info/LICENSE @@ -0,0 +1,201 @@ +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2013-2019 Nikolay Kim and Andrew Svetlov + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/gtm/lib/python3.12/site-packages/frozenlist-1.4.1.dist-info/METADATA b/gtm/lib/python3.12/site-packages/frozenlist-1.4.1.dist-info/METADATA new file mode 100644 index 0000000000000000000000000000000000000000..60603d5a5a4db0e2896acef9d10496d89aed677e --- /dev/null +++ b/gtm/lib/python3.12/site-packages/frozenlist-1.4.1.dist-info/METADATA @@ -0,0 +1,420 @@ +Metadata-Version: 2.1 +Name: frozenlist +Version: 1.4.1 +Summary: A list-like structure which implements collections.abc.MutableSequence +Home-page: https://github.com/aio-libs/frozenlist +Maintainer: aiohttp team +Maintainer-email: team@aiohttp.org +License: Apache 2 +Project-URL: Chat: Matrix, https://matrix.to/#/#aio-libs:matrix.org +Project-URL: Chat: Matrix Space, https://matrix.to/#/#aio-libs-space:matrix.org +Project-URL: CI: Github Actions, https://github.com/aio-libs/frozenlist/actions +Project-URL: Code of Conduct, https://github.com/aio-libs/.github/blob/master/CODE_OF_CONDUCT.md +Project-URL: Coverage: codecov, https://codecov.io/github/aio-libs/frozenlist +Project-URL: Docs: Changelog, https://github.com/aio-libs/frozenlist/blob/master/CHANGES.rst#changelog +Project-URL: Docs: RTD, https://frozenlist.aio-libs.org +Project-URL: GitHub: issues, https://github.com/aio-libs/frozenlist/issues +Project-URL: GitHub: repo, https://github.com/aio-libs/frozenlist +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Operating System :: POSIX +Classifier: Operating System :: MacOS :: MacOS X +Classifier: Operating System :: Microsoft :: Windows +Classifier: Programming Language :: Cython +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Requires-Python: >=3.8 +Description-Content-Type: text/x-rst +License-File: LICENSE + +frozenlist +========== + +.. image:: https://github.com/aio-libs/frozenlist/workflows/CI/badge.svg + :target: https://github.com/aio-libs/frozenlist/actions + :alt: GitHub status for master branch + +.. image:: https://codecov.io/gh/aio-libs/frozenlist/branch/master/graph/badge.svg + :target: https://codecov.io/gh/aio-libs/frozenlist + :alt: codecov.io status for master branch + +.. image:: https://img.shields.io/pypi/v/frozenlist.svg?logo=Python&logoColor=white + :target: https://pypi.org/project/frozenlist + :alt: frozenlist @ PyPI + +.. image:: https://readthedocs.org/projects/frozenlist/badge/?version=latest + :target: https://frozenlist.aio-libs.org + :alt: Read The Docs build status badge + +.. image:: https://img.shields.io/matrix/aio-libs:matrix.org?label=Discuss%20on%20Matrix%20at%20%23aio-libs%3Amatrix.org&logo=matrix&server_fqdn=matrix.org&style=flat + :target: https://matrix.to/#/%23aio-libs:matrix.org + :alt: Matrix Room — #aio-libs:matrix.org + +.. image:: https://img.shields.io/matrix/aio-libs-space:matrix.org?label=Discuss%20on%20Matrix%20at%20%23aio-libs-space%3Amatrix.org&logo=matrix&server_fqdn=matrix.org&style=flat + :target: https://matrix.to/#/%23aio-libs-space:matrix.org + :alt: Matrix Space — #aio-libs-space:matrix.org + +Introduction +------------ + +``frozenlist.FrozenList`` is a list-like structure which implements +``collections.abc.MutableSequence``. The list is *mutable* until ``FrozenList.freeze`` +is called, after which list modifications raise ``RuntimeError``: + + +>>> from frozenlist import FrozenList +>>> fl = FrozenList([17, 42]) +>>> fl.append('spam') +>>> fl.append('Vikings') +>>> fl + +>>> fl.freeze() +>>> fl + +>>> fl.frozen +True +>>> fl.append("Monty") +Traceback (most recent call last): + File "", line 1, in + File "frozenlist/_frozenlist.pyx", line 97, in frozenlist._frozenlist.FrozenList.append + self._check_frozen() + File "frozenlist/_frozenlist.pyx", line 19, in frozenlist._frozenlist.FrozenList._check_frozen + raise RuntimeError("Cannot modify frozen list.") +RuntimeError: Cannot modify frozen list. + + +FrozenList is also hashable, but only when frozen. Otherwise it also throws a RuntimeError: + + +>>> fl = FrozenList([17, 42, 'spam']) +>>> hash(fl) +Traceback (most recent call last): + File "", line 1, in + File "frozenlist/_frozenlist.pyx", line 111, in frozenlist._frozenlist.FrozenList.__hash__ + raise RuntimeError("Cannot hash unfrozen list.") +RuntimeError: Cannot hash unfrozen list. +>>> fl.freeze() +>>> hash(fl) +3713081631934410656 +>>> dictionary = {fl: 'Vikings'} # frozen fl can be a dict key +>>> dictionary +{: 'Vikings'} + + +Installation +------------ + +:: + + $ pip install frozenlist + +The library requires Python 3.8 or newer. + + +Documentation +------------- + +https://frozenlist.aio-libs.org + +Communication channels +---------------------- + +We have a *Matrix Space* `#aio-libs-space:matrix.org +`_ which is +also accessible via Gitter. + +Requirements +------------ + +- Python >= 3.8 + +License +------- + +``frozenlist`` is offered under the Apache 2 license. + +Source code +----------- + +The project is hosted on GitHub_ + +Please file an issue in the `bug tracker +`_ if you have found a bug +or have some suggestions to improve the library. + +.. _GitHub: https://github.com/aio-libs/frozenlist + +========= +Changelog +========= + +.. + You should *NOT* be adding new change log entries to this file, this + file is managed by towncrier. You *may* edit previous change logs to + fix problems like typo corrections or such. + To add a new change log entry, please see + https://pip.pypa.io/en/latest/development/contributing/#news-entries + we named the news folder "changes". + + WARNING: Don't drop the next directive! + +.. towncrier release notes start + +1.4.1 (2023-12-15) +================== + +Packaging updates and notes for downstreams +------------------------------------------- + +- Declared Python 3.12 and PyPy 3.8-3.10 supported officially + in the distribution package metadata. + + + *Related issues and pull requests on GitHub:* + `#553 `__. + +- Replaced the packaging is replaced from an old-fashioned ``setup.py`` to an + in-tree `PEP 517 `__ build backend -- by `@webknjaz `__. + + Whenever the end-users or downstream packagers need to build ``frozenlist`` + from source (a Git checkout or an sdist), they may pass a ``config_settings`` + flag ``pure-python``. If this flag is not set, a C-extension will be built + and included into the distribution. + + Here is how this can be done with ``pip``: + + .. code-block:: console + + $ python3 -m pip install . --config-settings=pure-python= + + This will also work with ``-e | --editable``. + + The same can be achieved via ``pypa/build``: + + .. code-block:: console + + $ python3 -m build --config-setting=pure-python= + + Adding ``-w | --wheel`` can force ``pypa/build`` produce a wheel from source + directly, as opposed to building an ``sdist`` and then building from it. + + + *Related issues and pull requests on GitHub:* + `#560 `__. + + +Contributor-facing changes +-------------------------- + +- It is now possible to request line tracing in Cython builds using the + ``with-cython-tracing`` `PEP 517 `__ config setting + -- `@webknjaz `__. + + This can be used in CI and development environment to measure coverage + on Cython modules, but is not normally useful to the end-users or + downstream packagers. + + Here's a usage example: + + .. code-block:: console + + $ python3 -Im pip install . --config-settings=with-cython-tracing=true + + For editable installs, this setting is on by default. Otherwise, it's + off unless requested explicitly. + + The following produces C-files required for the Cython coverage + plugin to map the measurements back to the PYX-files: + + .. code-block:: console + + $ python -Im pip install -e . + + Alternatively, the ``FROZENLIST_CYTHON_TRACING=1`` environment variable + can be set to do the same as the `PEP 517 `__ config setting. + + + *Related issues and pull requests on GitHub:* + `#560 `__. + +- Coverage collection has been implemented for the Cython modules + -- by `@webknjaz `__. + + It will also be reported to Codecov from any non-release CI jobs. + + + *Related issues and pull requests on GitHub:* + `#561 `__. + +- A step-by-step ``Release Guide`` guide has + been added, describing how to release *frozenlist* -- by `@webknjaz `__. + + This is primarily targeting the maintainers. + + + *Related issues and pull requests on GitHub:* + `#563 `__. + +- Detailed ``Contributing Guidelines`` on + authoring the changelog fragments have been published in the + documentation -- by `@webknjaz `__. + + + *Related issues and pull requests on GitHub:* + `#564 `__. + + +---- + + +1.4.0 (2023-07-12) +================== + +The published source distribution package became buildable +under Python 3.12. + + +---- + + +Bugfixes +-------- + +- Removed an unused ``typing.Tuple`` import + `#411 `_ + + +Deprecations and Removals +------------------------- + +- Dropped Python 3.7 support. + `#413 `_ + + +Misc +---- + +- `#410 `_, `#433 `_ + + +---- + + +1.3.3 (2022-11-08) +================== + +- Fixed CI runs when creating a new release, where new towncrier versions + fail when the current version section is already present. + + +---- + + +1.3.2 (2022-11-08) +================== + +Misc +---- + +- Updated the CI runs to better check for test results and to avoid deprecated syntax. `#327 `_ + + +---- + + +1.3.1 (2022-08-02) +================== + +The published source distribution package became buildable +under Python 3.11. + + +---- + + +1.3.0 (2022-01-18) +================== + +Bugfixes +-------- + +- Do not install C sources with binary distributions. + `#250 `_ + + +Deprecations and Removals +------------------------- + +- Dropped Python 3.6 support + `#274 `_ + + +---- + + +1.2.0 (2021-10-16) +================== + +Features +-------- + +- ``FrozenList`` now supports being used as a generic type as per PEP 585, e.g. ``frozen_int_list: FrozenList[int]`` (requires Python 3.9 or newer). + `#172 `_ +- Added support for Python 3.10. + `#227 `_ +- Started shipping platform-specific wheels with the ``musl`` tag targeting typical Alpine Linux runtimes. + `#227 `_ +- Started shipping platform-specific arm64 wheels for Apple Silicon. + `#227 `_ + + +---- + + +1.1.1 (2020-11-14) +================== + +Bugfixes +-------- + +- Provide x86 Windows wheels. + `#169 `_ + + +---- + + +1.1.0 (2020-10-13) +================== + +Features +-------- + +- Add support for hashing of a frozen list. + `#136 `_ + +- Support Python 3.8 and 3.9. + +- Provide wheels for ``aarch64``, ``i686``, ``ppc64le``, ``s390x`` architectures on + Linux as well as ``x86_64``. + + +---- + + +1.0.0 (2019-11-09) +================== + +Deprecations and Removals +------------------------- + +- Dropped support for Python 3.5; only 3.6, 3.7 and 3.8 are supported going forward. + `#24 `_ diff --git a/gtm/lib/python3.12/site-packages/frozenlist-1.4.1.dist-info/RECORD b/gtm/lib/python3.12/site-packages/frozenlist-1.4.1.dist-info/RECORD new file mode 100644 index 0000000000000000000000000000000000000000..7b812b89e2fae704e4def19523bd69f8357c0290 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/frozenlist-1.4.1.dist-info/RECORD @@ -0,0 +1,12 @@ +frozenlist-1.4.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +frozenlist-1.4.1.dist-info/LICENSE,sha256=b9UkPpLdf5jsacesN3co50kFcJ_1J6W_mNbQJjwE9bY,11332 +frozenlist-1.4.1.dist-info/METADATA,sha256=i-BTxwxpJrHm-I8DMpFRvXVXJiqXwUcsPiUR47NY6eg,12136 +frozenlist-1.4.1.dist-info/RECORD,, +frozenlist-1.4.1.dist-info/WHEEL,sha256=keHNpQgVCtZmnassXI38bYehVkiZ8Lrud_k-zLyqsEg,111 +frozenlist-1.4.1.dist-info/top_level.txt,sha256=jivtxsPXA3nK3WBWW2LW5Mtu_GHt8UZA13NeCs2cKuA,11 +frozenlist/__init__.py,sha256=hrSQhfujMaz1BWlHfwuVFrPD02-pCK7jG4e9FaCZCmM,2316 +frozenlist/__init__.pyi,sha256=vMEoES1xGegPtVXoCi9XydEeHsyuIq-KdeXwP5PdsaA,1470 +frozenlist/__pycache__/__init__.cpython-312.pyc,, +frozenlist/_frozenlist.cpython-312-darwin.so,sha256=AC_glGQvXSTEcZWogxoTkuqXnYPeexduCFZ1LEptgIQ,140144 +frozenlist/_frozenlist.pyx,sha256=9V4Z1En6TZwgFD26d-sjxyhUzUm338H1Qiz4-i5ukv0,2983 +frozenlist/py.typed,sha256=sow9soTwP9T_gEAQSVh7Gb8855h04Nwmhs2We-JRgZM,7 diff --git a/gtm/lib/python3.12/site-packages/frozenlist-1.4.1.dist-info/WHEEL b/gtm/lib/python3.12/site-packages/frozenlist-1.4.1.dist-info/WHEEL new file mode 100644 index 0000000000000000000000000000000000000000..87aef10e6aff5d89f9eec7701022025679696bb7 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/frozenlist-1.4.1.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.41.2) +Root-Is-Purelib: false +Tag: cp312-cp312-macosx_10_9_x86_64 + diff --git a/gtm/lib/python3.12/site-packages/frozenlist-1.4.1.dist-info/top_level.txt b/gtm/lib/python3.12/site-packages/frozenlist-1.4.1.dist-info/top_level.txt new file mode 100644 index 0000000000000000000000000000000000000000..52f13fc459edf8f3def6f792c432f0b64f313176 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/frozenlist-1.4.1.dist-info/top_level.txt @@ -0,0 +1 @@ +frozenlist diff --git a/gtm/lib/python3.12/site-packages/frozenlist/__init__.py b/gtm/lib/python3.12/site-packages/frozenlist/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..c0f71368bab1a1bf44abe10d73a3e005c747a3bb --- /dev/null +++ b/gtm/lib/python3.12/site-packages/frozenlist/__init__.py @@ -0,0 +1,95 @@ +import os +import sys +import types +from collections.abc import MutableSequence +from functools import total_ordering +from typing import Type + +__version__ = "1.4.1" + +__all__ = ("FrozenList", "PyFrozenList") # type: Tuple[str, ...] + + +NO_EXTENSIONS = bool(os.environ.get("FROZENLIST_NO_EXTENSIONS")) # type: bool + + +@total_ordering +class FrozenList(MutableSequence): + __slots__ = ("_frozen", "_items") + + if sys.version_info >= (3, 9): + __class_getitem__ = classmethod(types.GenericAlias) + else: + + @classmethod + def __class_getitem__(cls: Type["FrozenList"]) -> Type["FrozenList"]: + return cls + + def __init__(self, items=None): + self._frozen = False + if items is not None: + items = list(items) + else: + items = [] + self._items = items + + @property + def frozen(self): + return self._frozen + + def freeze(self): + self._frozen = True + + def __getitem__(self, index): + return self._items[index] + + def __setitem__(self, index, value): + if self._frozen: + raise RuntimeError("Cannot modify frozen list.") + self._items[index] = value + + def __delitem__(self, index): + if self._frozen: + raise RuntimeError("Cannot modify frozen list.") + del self._items[index] + + def __len__(self): + return self._items.__len__() + + def __iter__(self): + return self._items.__iter__() + + def __reversed__(self): + return self._items.__reversed__() + + def __eq__(self, other): + return list(self) == other + + def __le__(self, other): + return list(self) <= other + + def insert(self, pos, item): + if self._frozen: + raise RuntimeError("Cannot modify frozen list.") + self._items.insert(pos, item) + + def __repr__(self): + return f"" + + def __hash__(self): + if self._frozen: + return hash(tuple(self)) + else: + raise RuntimeError("Cannot hash unfrozen list.") + + +PyFrozenList = FrozenList + + +if not NO_EXTENSIONS: + try: + from ._frozenlist import FrozenList as CFrozenList # type: ignore + except ImportError: # pragma: no cover + pass + else: + FrozenList = CFrozenList # type: ignore diff --git a/gtm/lib/python3.12/site-packages/frozenlist/__init__.pyi b/gtm/lib/python3.12/site-packages/frozenlist/__init__.pyi new file mode 100644 index 0000000000000000000000000000000000000000..ae803ef6aad72f57e7379db5a2044a95f214df7b --- /dev/null +++ b/gtm/lib/python3.12/site-packages/frozenlist/__init__.pyi @@ -0,0 +1,47 @@ +from typing import ( + Generic, + Iterable, + Iterator, + List, + MutableSequence, + Optional, + TypeVar, + Union, + overload, +) + +_T = TypeVar("_T") +_Arg = Union[List[_T], Iterable[_T]] + +class FrozenList(MutableSequence[_T], Generic[_T]): + def __init__(self, items: Optional[_Arg[_T]] = None) -> None: ... + @property + def frozen(self) -> bool: ... + def freeze(self) -> None: ... + @overload + def __getitem__(self, i: int) -> _T: ... + @overload + def __getitem__(self, s: slice) -> FrozenList[_T]: ... + @overload + def __setitem__(self, i: int, o: _T) -> None: ... + @overload + def __setitem__(self, s: slice, o: Iterable[_T]) -> None: ... + @overload + def __delitem__(self, i: int) -> None: ... + @overload + def __delitem__(self, i: slice) -> None: ... + def __len__(self) -> int: ... + def __iter__(self) -> Iterator[_T]: ... + def __reversed__(self) -> Iterator[_T]: ... + def __eq__(self, other: object) -> bool: ... + def __le__(self, other: FrozenList[_T]) -> bool: ... + def __ne__(self, other: object) -> bool: ... + def __lt__(self, other: FrozenList[_T]) -> bool: ... + def __ge__(self, other: FrozenList[_T]) -> bool: ... + def __gt__(self, other: FrozenList[_T]) -> bool: ... + def insert(self, pos: int, item: _T) -> None: ... + def __repr__(self) -> str: ... + def __hash__(self) -> int: ... + +# types for C accelerators are the same +CFrozenList = PyFrozenList = FrozenList diff --git a/gtm/lib/python3.12/site-packages/frozenlist/__pycache__/__init__.cpython-312.pyc b/gtm/lib/python3.12/site-packages/frozenlist/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..24abcbc93292145542acbd6e66fd59444194637e Binary files /dev/null and b/gtm/lib/python3.12/site-packages/frozenlist/__pycache__/__init__.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/frozenlist/_frozenlist.cpython-312-darwin.so b/gtm/lib/python3.12/site-packages/frozenlist/_frozenlist.cpython-312-darwin.so new file mode 100644 index 0000000000000000000000000000000000000000..ed9aed724840f92e824e6e485f0633470597d677 Binary files /dev/null and b/gtm/lib/python3.12/site-packages/frozenlist/_frozenlist.cpython-312-darwin.so differ diff --git a/gtm/lib/python3.12/site-packages/frozenlist/_frozenlist.pyx b/gtm/lib/python3.12/site-packages/frozenlist/_frozenlist.pyx new file mode 100644 index 0000000000000000000000000000000000000000..9ee846c1aeb17ac8521f44bcb8617f189b89e5fe --- /dev/null +++ b/gtm/lib/python3.12/site-packages/frozenlist/_frozenlist.pyx @@ -0,0 +1,123 @@ +import sys +import types +from collections.abc import MutableSequence + + +cdef class FrozenList: + + if sys.version_info >= (3, 9): + __class_getitem__ = classmethod(types.GenericAlias) + else: + @classmethod + def __class_getitem__(cls): + return cls + + cdef readonly bint frozen + cdef list _items + + def __init__(self, items=None): + self.frozen = False + if items is not None: + items = list(items) + else: + items = [] + self._items = items + + cdef object _check_frozen(self): + if self.frozen: + raise RuntimeError("Cannot modify frozen list.") + + cdef inline object _fast_len(self): + return len(self._items) + + def freeze(self): + self.frozen = True + + def __getitem__(self, index): + return self._items[index] + + def __setitem__(self, index, value): + self._check_frozen() + self._items[index] = value + + def __delitem__(self, index): + self._check_frozen() + del self._items[index] + + def __len__(self): + return self._fast_len() + + def __iter__(self): + return self._items.__iter__() + + def __reversed__(self): + return self._items.__reversed__() + + def __richcmp__(self, other, op): + if op == 0: # < + return list(self) < other + if op == 1: # <= + return list(self) <= other + if op == 2: # == + return list(self) == other + if op == 3: # != + return list(self) != other + if op == 4: # > + return list(self) > other + if op == 5: # => + return list(self) >= other + + def insert(self, pos, item): + self._check_frozen() + self._items.insert(pos, item) + + def __contains__(self, item): + return item in self._items + + def __iadd__(self, items): + self._check_frozen() + self._items += list(items) + return self + + def index(self, item): + return self._items.index(item) + + def remove(self, item): + self._check_frozen() + self._items.remove(item) + + def clear(self): + self._check_frozen() + self._items.clear() + + def extend(self, items): + self._check_frozen() + self._items += list(items) + + def reverse(self): + self._check_frozen() + self._items.reverse() + + def pop(self, index=-1): + self._check_frozen() + return self._items.pop(index) + + def append(self, item): + self._check_frozen() + return self._items.append(item) + + def count(self, item): + return self._items.count(item) + + def __repr__(self): + return ''.format(self.frozen, + self._items) + + def __hash__(self): + if self.frozen: + return hash(tuple(self._items)) + else: + raise RuntimeError("Cannot hash unfrozen list.") + + +MutableSequence.register(FrozenList) diff --git a/gtm/lib/python3.12/site-packages/frozenlist/py.typed b/gtm/lib/python3.12/site-packages/frozenlist/py.typed new file mode 100644 index 0000000000000000000000000000000000000000..f5642f79f21d872f010979dcf6f0c4a415acc19d --- /dev/null +++ b/gtm/lib/python3.12/site-packages/frozenlist/py.typed @@ -0,0 +1 @@ +Marker diff --git a/gtm/lib/python3.12/site-packages/gradio-3.14.0.dist-info/INSTALLER b/gtm/lib/python3.12/site-packages/gradio-3.14.0.dist-info/INSTALLER new file mode 100644 index 0000000000000000000000000000000000000000..a1b589e38a32041e49332e5e81c2d363dc418d68 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio-3.14.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/gtm/lib/python3.12/site-packages/gradio-3.14.0.dist-info/METADATA b/gtm/lib/python3.12/site-packages/gradio-3.14.0.dist-info/METADATA new file mode 100644 index 0000000000000000000000000000000000000000..393d014e1cccc07c84010864f43c4f758e504392 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio-3.14.0.dist-info/METADATA @@ -0,0 +1,307 @@ +Metadata-Version: 2.1 +Name: gradio +Version: 3.14.0 +Summary: Python library for easily interacting with trained machine learning models +Project-URL: Homepage, https://github.com/gradio-app/gradio +Author-email: Abubakar Abid , Ali Abid , Ali Abdalla , Dawood Khan , Ahsen Khaliq , Pete Allen , Ömer Faruk Özdemir +License-File: LICENSE +Keywords: machine learning,reproducibility,visualization +Requires-Python: >=3.7 +Requires-Dist: aiohttp +Requires-Dist: altair +Requires-Dist: fastapi +Requires-Dist: ffmpy +Requires-Dist: fsspec +Requires-Dist: httpx +Requires-Dist: jinja2 +Requires-Dist: markdown-it-py[linkify,plugins] +Requires-Dist: markupsafe +Requires-Dist: matplotlib +Requires-Dist: numpy +Requires-Dist: orjson +Requires-Dist: pandas +Requires-Dist: pillow +Requires-Dist: pycryptodome +Requires-Dist: pydantic +Requires-Dist: pydub +Requires-Dist: python-multipart +Requires-Dist: pyyaml +Requires-Dist: requests +Requires-Dist: uvicorn +Requires-Dist: websockets>=10.0 +Description-Content-Type: text/markdown + + + +
    + + [gradio](https://gradio.app)
    + Build & share delightful machine learning apps easily + + [circleci](https://circleci.com/gh/gradio-app/gradio) + [codecov](https://app.codecov.io/gh/gradio-app/gradio) + [![PyPI](https://img.shields.io/pypi/v/gradio)](https://pypi.org/project/gradio/) + [![PyPI downloads](https://img.shields.io/pypi/dm/gradio)](https://pypi.org/project/gradio/) + ![Python version](https://img.shields.io/badge/python-3.7+-important) + [![Twitter follow](https://img.shields.io/twitter/follow/gradio?style=social&label=follow)](https://twitter.com/gradio) + + [Website](https://gradio.app) + | [Documentation](https://gradio.app/docs/) + | [Guides](https://gradio.app/guides/) + | [Getting Started](https://gradio.app/getting_started/) + | [Examples](demo/) +
    + +# Gradio: Build Machine Learning Web Apps — in Python + +Gradio is an open-source Python library that is used to build machine learning and data science demos and web applications. + +With Gradio, you can quickly create a beautiful user interface around your machine learning models or data science workflow and let people "try it out" by dragging-and-dropping in their own images, +pasting text, recording their own voice, and interacting with your demo, all through the browser. + +![Interface montage](https://raw.githubusercontent.com/gradio-app/gradio/main/readme_files/header-image.jpg) + +Gradio is useful for: + +- **Demoing** your machine learning models for clients/collaborators/users/students. + +- **Deploying** your models quickly with automatic shareable links and getting feedback on model performance. + +- **Debugging** your model interactively during development using built-in manipulation and interpretation tools. + +## Quickstart + +**Prerequisite**: Gradio requires Python 3.7 or higher, that's all! + +### What Does Gradio Do? + +One of the *best ways to share* your machine learning model, API, or data science workflow with others is to create an **interactive app** that allows your users or colleagues to try out the demo in their browsers. + +Gradio allows you to **build demos and share them, all in Python.** And usually in just a few lines of code! So let's get started. + +### Hello, World + +To get Gradio running with a simple "Hello, World" example, follow these three steps: + +1\. Install Gradio using pip: + +```bash +pip install gradio +``` + +2\. Run the code below as a Python script or in a Jupyter Notebook (or [Google Colab](https://colab.research.google.com/drive/18ODkJvyxHutTN0P5APWyGFO_xwNcgHDZ?usp=sharing)): + +```python +import gradio as gr + +def greet(name): + return "Hello " + name + "!" + +demo = gr.Interface(fn=greet, inputs="text", outputs="text") +demo.launch() +``` + + +3\. The demo below will appear automatically within the Jupyter Notebook, or pop in a browser on [http://localhost:7860](http://localhost:7860) if running from a script: + +![`hello_world` demo](https://raw.githubusercontent.com/gradio-app/gradio/main/demo/hello_world/screenshot.gif) + +### The `Interface` Class + +You'll notice that in order to make the demo, we created a `gradio.Interface`. This `Interface` class can wrap any Python function with a user interface. In the example above, we saw a simple text-based function, but the function could be anything from music generator to a tax calculator to the prediction function of a pretrained machine learning model. + +The core `Interface` class is initialized with three required parameters: + +- `fn`: the function to wrap a UI around +- `inputs`: which component(s) to use for the input (e.g. `"text"`, `"image"` or `"audio"`) +- `outputs`: which component(s) to use for the output (e.g. `"text"`, `"image"` or `"label"`) + +Let's take a closer look at these components used to provide input and output. + +### Components Attributes + +We saw some simple `Textbox` components in the previous examples, but what if you want to change how the UI components look or behave? + +Let's say you want to customize the input text field — for example, you wanted it to be larger and have a text placeholder. If we use the actual class for `Textbox` instead of using the string shortcut, you have access to much more customizability through component attributes. + +```python +import gradio as gr + +def greet(name): + return "Hello " + name + "!" + +demo = gr.Interface( + fn=greet, + inputs=gr.Textbox(lines=2, placeholder="Name Here..."), + outputs="text", +) +demo.launch() +``` + +![`hello_world_2` demo](https://raw.githubusercontent.com/gradio-app/gradio/main/demo/hello_world_2/screenshot.gif) + +### Multiple Input and Output Components + +Suppose you had a more complex function, with multiple inputs and outputs. In the example below, we define a function that takes a string, boolean, and number, and returns a string and number. Take a look how you pass a list of input and output components. + +```python +import gradio as gr + +def greet(name, is_morning, temperature): + salutation = "Good morning" if is_morning else "Good evening" + greeting = f"{salutation} {name}. It is {temperature} degrees today" + celsius = (temperature - 32) * 5 / 9 + return greeting, round(celsius, 2) + +demo = gr.Interface( + fn=greet, + inputs=["text", "checkbox", gr.Slider(0, 100)], + outputs=["text", "number"], +) +demo.launch() +``` + +![`hello_world_3` demo](https://raw.githubusercontent.com/gradio-app/gradio/main/demo/hello_world_3/screenshot.gif) + +You simply wrap the components in a list. Each component in the `inputs` list corresponds to one of the parameters of the function, in order. Each component in the `outputs` list corresponds to one of the values returned by the function, again in order. + +### An Image Example + +Gradio supports many types of components, such as `Image`, `DataFrame`, `Video`, or `Label`. Let's try an image-to-image function to get a feel for these! + +```python +import numpy as np +import gradio as gr + +def sepia(input_img): + sepia_filter = np.array([ + [0.393, 0.769, 0.189], + [0.349, 0.686, 0.168], + [0.272, 0.534, 0.131] + ]) + sepia_img = input_img.dot(sepia_filter.T) + sepia_img /= sepia_img.max() + return sepia_img + +demo = gr.Interface(sepia, gr.Image(shape=(200, 200)), "image") +demo.launch() +``` + +![`sepia_filter` demo](https://raw.githubusercontent.com/gradio-app/gradio/main/demo/sepia_filter/screenshot.gif) + +When using the `Image` component as input, your function will receive a NumPy array with the shape `(width, height, 3)`, where the last dimension represents the RGB values. We'll return an image as well in the form of a NumPy array. + +You can also set the datatype used by the component with the `type=` keyword argument. For example, if you wanted your function to take a file path to an image instead of a NumPy array, the input `Image` component could be written as: + +```python +gr.Image(type="filepath", shape=...) +``` + +Also note that our input `Image` component comes with an edit button 🖉, which allows for cropping and zooming into images. Manipulating images in this way can help reveal biases or hidden flaws in a machine learning model! + +You can read more about the many components and how to use them in the [Gradio docs](https://gradio.app/docs). + +### Blocks: More Flexibility and Control + +Gradio offers two classes to build apps: + +1\. **Interface**, that provides a high-level abstraction for creating demos that we've been discussing so far. + +2\. **Blocks**, a low-level API for designing web apps with more flexible layouts and data flows. Blocks allows you to do things like feature multiple data flows and demos, control where components appear on the page, handle complex data flows (e.g. outputs can serve as inputs to other functions), and update properties/visibility of components based on user interaction — still all in Python. If this customizability is what you need, try `Blocks` instead! + +### Hello, Blocks + +Let's take a look at a simple example. Note how the API here differs from `Interface`. + +```python +import gradio as gr + +def greet(name): + return "Hello " + name + "!" + +with gr.Blocks() as demo: + name = gr.Textbox(label="Name") + output = gr.Textbox(label="Output Box") + greet_btn = gr.Button("Greet") + greet_btn.click(fn=greet, inputs=name, outputs=output) + +demo.launch() +``` + +![`hello_blocks` demo](https://raw.githubusercontent.com/gradio-app/gradio/main/demo/hello_blocks/screenshot.gif) + +Things to note: + +- `Blocks` are made with a `with` clause, and any component created inside this clause is automatically added to the app. +- Components appear vertically in the app in the order they are created. (Later we will cover customizing layouts!) +- A `Button` was created, and then a `click` event-listener was added to this button. The API for this should look familiar! Like an `Interface`, the `click` method takes a Python function, input components, and output components. + +### More Complexity + +Here's an app to give you a taste of what's possible with `Blocks`: + +```python +import numpy as np +import gradio as gr + +def flip_text(x): + return x[::-1] + +def flip_image(x): + return np.fliplr(x) + +with gr.Blocks() as demo: + gr.Markdown("Flip text or image files using this demo.") + with gr.Tabs(): + with gr.TabItem("Flip Text"): + text_input = gr.Textbox() + text_output = gr.Textbox() + text_button = gr.Button("Flip") + with gr.TabItem("Flip Image"): + with gr.Row(): + image_input = gr.Image() + image_output = gr.Image() + image_button = gr.Button("Flip") + + text_button.click(flip_text, inputs=text_input, outputs=text_output) + image_button.click(flip_image, inputs=image_input, outputs=image_output) + +demo.launch() +``` + +![`blocks_flipper` demo](https://raw.githubusercontent.com/gradio-app/gradio/main/demo/blocks_flipper/screenshot.gif) + +A lot more going on here! We'll cover how to create complex `Blocks` apps like this in the [building with blocks](https://github.com/gradio-app/gradio/tree/main/guides/3\)building_with_blocks) section for you. + +Congrats, you're now familiar with the basics of Gradio! 🥳 Go to our [next guide](https://gradio.app/key_features) to learn more about the key features of Gradio. + + +## Open Source Stack + +Gradio is built with many wonderful open-source libraries, please support them as well! + +[huggingface](https://huggingface.co) +[python](https://www.python.org) +[fastapi](https://fastapi.tiangolo.com) +[encode](https://www.encode.io) +[svelte](https://svelte.dev) +[vite](https://vitejs.dev) +[pnpm](https://pnpm.io) +[tailwind](https://tailwindcss.com) + +## License + +Gradio is licensed under the Apache License 2.0 found in the [LICENSE](LICENSE) file in the root directory of this repository. + +## Citation + +Also check out the paper *[Gradio: Hassle-Free Sharing and Testing of ML Models in the Wild](https://arxiv.org/abs/1906.02569), ICML HILL 2019*, and please cite it if you use Gradio in your work. + +``` +@article{abid2019gradio, + title = {Gradio: Hassle-Free Sharing and Testing of ML Models in the Wild}, + author = {Abid, Abubakar and Abdalla, Ali and Abid, Ali and Khan, Dawood and Alfozan, Abdulrahman and Zou, James}, + journal = {arXiv preprint arXiv:1906.02569}, + year = {2019}, +} +``` diff --git a/gtm/lib/python3.12/site-packages/gradio-3.14.0.dist-info/RECORD b/gtm/lib/python3.12/site-packages/gradio-3.14.0.dist-info/RECORD new file mode 100644 index 0000000000000000000000000000000000000000..6be62f71f1354f6d320316c5f7d0cccd96917a14 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio-3.14.0.dist-info/RECORD @@ -0,0 +1,380 @@ +../../../bin/gradio,sha256=-BuneNnHVVHetLgCX00p4kullXtpIHbD73cT8ob8O6c,280 +gradio-3.14.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +gradio-3.14.0.dist-info/METADATA,sha256=cSlKUEgIubDchznuITHEpHgJpfdvs65EyRATlX0UV2M,13677 +gradio-3.14.0.dist-info/RECORD,, +gradio-3.14.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +gradio-3.14.0.dist-info/WHEEL,sha256=NaLmgHHW_f9jTvv_wRh9vcK7c7EK9o5fwsIXMOzoGgM,87 +gradio-3.14.0.dist-info/entry_points.txt,sha256=JMxgbOk1QLRrqKH9aPjpUUhSgy34QD0i8qkrTN60QGY,60 +gradio-3.14.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357 +gradio/.dockerignore,sha256=yqqbJvPhtVNTTvla3dhpqUgRO5OFeneITtoSg70NFdY,43 +gradio/__init__.py,sha256=YYPIO21CFIO7bIZN2nyvWHNvJadYiZN-znR4cNZ6PmQ,1729 +gradio/__pycache__/__init__.cpython-312.pyc,, +gradio/__pycache__/blocks.cpython-312.pyc,, +gradio/__pycache__/components.cpython-312.pyc,, +gradio/__pycache__/context.cpython-312.pyc,, +gradio/__pycache__/dataclasses.cpython-312.pyc,, +gradio/__pycache__/deprecation.cpython-312.pyc,, +gradio/__pycache__/documentation.cpython-312.pyc,, +gradio/__pycache__/encryptor.cpython-312.pyc,, +gradio/__pycache__/events.cpython-312.pyc,, +gradio/__pycache__/examples.cpython-312.pyc,, +gradio/__pycache__/exceptions.cpython-312.pyc,, +gradio/__pycache__/external.cpython-312.pyc,, +gradio/__pycache__/external_utils.cpython-312.pyc,, +gradio/__pycache__/flagging.cpython-312.pyc,, +gradio/__pycache__/inputs.cpython-312.pyc,, +gradio/__pycache__/interface.cpython-312.pyc,, +gradio/__pycache__/interpretation.cpython-312.pyc,, +gradio/__pycache__/ipython_ext.cpython-312.pyc,, +gradio/__pycache__/layouts.cpython-312.pyc,, +gradio/__pycache__/media_data.cpython-312.pyc,, +gradio/__pycache__/mix.cpython-312.pyc,, +gradio/__pycache__/networking.cpython-312.pyc,, +gradio/__pycache__/outputs.cpython-312.pyc,, +gradio/__pycache__/pipelines.cpython-312.pyc,, +gradio/__pycache__/processing_utils.cpython-312.pyc,, +gradio/__pycache__/queue.cpython-312.pyc,, +gradio/__pycache__/reload.cpython-312.pyc,, +gradio/__pycache__/routes.cpython-312.pyc,, +gradio/__pycache__/serializing.cpython-312.pyc,, +gradio/__pycache__/strings.cpython-312.pyc,, +gradio/__pycache__/templates.cpython-312.pyc,, +gradio/__pycache__/tunneling.cpython-312.pyc,, +gradio/__pycache__/utils.cpython-312.pyc,, +gradio/blocks.py,sha256=CbMsSp2MN7ncmCjvaHLyLny3wNToUGmsEQJ10v85a8k,69875 +gradio/components.py,sha256=jd7X5DpOHWZZCg_8iPP7xI5iOQETt--GOxmXDJ5mSak,180823 +gradio/context.py,sha256=4kcl2NXGoOnrmGuMxFmJ7GU0swQp635TeHRFZCZK-7A,573 +gradio/dataclasses.py,sha256=u81yw9Py3rEAgv5_9akxgMFfMlhjoWGYFcVIdWJBZ7U,617 +gradio/deprecation.py,sha256=-qCSXcYt4nKumJlCujIikVYV__0cobLJfCchd0XP-n4,1805 +gradio/documentation.py,sha256=FnBDFyl0iFhAYPnwxQosxKlbZfKmZiNwpFT50C09dbY,7006 +gradio/encryptor.py,sha256=1LkUE8GQD91l2oji1Ikkg5Ja5mGafYd3f3SbNFnJ7mI,1289 +gradio/events.py,sha256=z8k14werXl06IbQ2xx1ItLag188dXPVB07tI7Dd-1NQ,42920 +gradio/examples.py,sha256=R2k-ikxNbKJSEkMvQEWRg43fqZYYvi8EvBUs3dzw06k,14551 +gradio/exceptions.py,sha256=TQxPz3RvNpywC2jiG1UhnLONVeSIUIhSR9tvKVVM_7Q,484 +gradio/external.py,sha256=zvK7_NTaCk778JHgDoqmB8jsXgMQ44xSR5vLjmIWy68,18512 +gradio/external_utils.py,sha256=QETs2DlmKsOqxYC5elpy7QcftYOL-YM2N7obaHxsWLg,5909 +gradio/flagging.py,sha256=Nt2lnJ1se8BxZpNhJa8JVuTbVxJlsm5g6Wn1QTTg_4c,20976 +gradio/inputs.py,sha256=NBv7pI2AwRNC267sUqgJlc5BgdaQUFyJC36s2YeNH9s,18481 +gradio/interface.py,sha256=_1m4OJdDhOrl1g6gKcsPzXiIuVGK25WDQnZZtmkZu2M,35126 +gradio/interpretation.py,sha256=wxp8ljuD6ecYDscKgEYdKAmUKAfXZsKR20eJB7KviSA,11291 +gradio/ipython_ext.py,sha256=1suMKu7_8-S2X_hh7gAsRBC9lADEr2O6F1H7pmjvHOw,389 +gradio/layouts.py,sha256=ZUOIU3YvbKzlLe13tYnN88DCDnvp_Jg1p3jrkhpakdw,11298 +gradio/media_data.py,sha256=wHN4uT3Dc3ZzBr0OFha4dPI2vJ6SWm9NSVddcRElAL0,722623 +gradio/mix.py,sha256=Dx1U5J33U2FVEd_fKWQFEDhl8sOFV07ykttpmbOXwjw,5119 +gradio/networking.py,sha256=OO2f-n4qyT_eiYtut1WIdPOUTjGm3uweYUQinq-GVDI,6951 +gradio/outputs.py,sha256=9i1YBuW1Ic5l5C4fe1rY1LZ6tHM7omeIJdiID-Oc8ko,12613 +gradio/pipelines.py,sha256=aRefSQlcbvE7wsV2fdjl0OU-uTUqkVAWrXfOFJA-SxY,7874 +gradio/processing_utils.py,sha256=lbYPci90kyoGU88izVSwBOXUeNOFKcTsFh2dT3h7PmE,26074 +gradio/queue.py,sha256=9-NsdtgBePYFEXDoTpckaUQ56JN-3vEM0rnuT8tf5r0,14289 +gradio/reload.py,sha256=kZn-UAOdUTh-z2gGzIGZYR0KvH9-xJTo6kQB3kKD7y8,1786 +gradio/routes.py,sha256=3M8qrnMYZHQCBIi6gfKE9OQPhQ_UpUBsTYpZ9-hJaRc,23259 +gradio/serializing.py,sha256=JY-7OwFnzuQx3OW3EeOVfTaBrzxgW0MtYLktzns0n0Q,6619 +gradio/strings.py,sha256=0dwKRl1mIpCtKAH8oADrHxZJj_wm6FdUs7Rk3rEFw0E,3308 +gradio/templates.py,sha256=1InNMkAA5etcUy1BvdZRjLaFlYnnFLDCMcNslYLe4P0,14786 +gradio/templates/cdn/assets/BlockLabel.4b1193ac.js,sha256=bIdfJhKDW8QfZuUHgZ6ti5gHADNdYGLuxwCUmbzmDSs,1514 +gradio/templates/cdn/assets/BlockLabel.4b1193ac.js.map,sha256=wSSq2RlVbCpnHN1TLfQZg6JMCKtsMPi8MH1HPN8ezGU,1057 +gradio/templates/cdn/assets/CarouselItem.svelte_svelte_type_style_lang.248bb157.js,sha256=SWkIk0HqofCFd6B94U6w1EJZSUVIR-CLPY-09C3y-8Y,3287 +gradio/templates/cdn/assets/CarouselItem.svelte_svelte_type_style_lang.248bb157.js.map,sha256=8fHOv1YPpzNE5bNKIglPdSJo9OsleSAsAcLHL9qzyZo,3831 +gradio/templates/cdn/assets/CarouselItem.svelte_svelte_type_style_lang.e110d966.css,sha256=12Qll6W9I-ZPb-mvT2XnHHh7aD24e_Uw443T1ltlRE0,116 +gradio/templates/cdn/assets/Column.6844546c.js,sha256=sYBotnfi35BC1WbYtFFKfyueaCY8Kq0l3xpC3jGhUnM,1622 +gradio/templates/cdn/assets/Column.6844546c.js.map,sha256=LDZ4B3Uenb7SOB-MApl-ngo_DR_E7GiZ2pwtEcHIGkc,1171 +gradio/templates/cdn/assets/File.febd4e12.js,sha256=TTndCwLYQ11vu6qHV2AMFoBKaCBejHoTgygxVZCt5b8,733 +gradio/templates/cdn/assets/File.febd4e12.js.map,sha256=FAPPobnDAgB1JRx0zLA4sGzos1tYGOJcQJNy7Z3ayM0,561 +gradio/templates/cdn/assets/Image.46cd55d4.js,sha256=LMJWYNXS6l3H9S4Log-gTxWHCgzADf3_NXMcUTl0ZOU,823 +gradio/templates/cdn/assets/Image.46cd55d4.js.map,sha256=wz3aZsssaDCLPY_BP_DVm39-feodCeBzDXDVL_jn7rc,621 +gradio/templates/cdn/assets/Image.f4b10781.js,sha256=cr32h5EspfYefzS4Q1faLmeaZZtgm5082nl3RmP00XE,617 +gradio/templates/cdn/assets/Image.f4b10781.js.map,sha256=6OGv5e8jsyuYrfRRVC437IjZU7pUOc0TYNWqX6Q7zHI,461 +gradio/templates/cdn/assets/Model3D.ed795b4f.js,sha256=ppL65r5VKxCR0EdH81t6n1kIwc0HhJjtaqkLT0x_CB0,480 +gradio/templates/cdn/assets/Model3D.ed795b4f.js.map,sha256=8UR59VPMW40wVC9THm2ZqDnnNDxtYOjeh8RKVtm3InY,374 +gradio/templates/cdn/assets/ModifyUpload.e869f7e2.js,sha256=j1XUcuOwu6JTAptnAKciPz9XXdVaOsIvGG1vX66F4hg,3581 +gradio/templates/cdn/assets/ModifyUpload.e869f7e2.js.map,sha256=UCPk-QnEChmfWUPskFysAnEGWoXZ-iIlBgdElrNm_VU,2785 +gradio/templates/cdn/assets/Tabs.561d21bd.js,sha256=jlqLDJueMaOvtvfisfyQP05S1NuAFIZrJ38KkHlp0gU,2787 +gradio/templates/cdn/assets/Tabs.561d21bd.js.map,sha256=NZDoSYPVgf6Km5CzjfGA3vAvyATAKccFAN-_JfW4Srg,2615 +gradio/templates/cdn/assets/Upload.5e38559f.js,sha256=M4P9e8jzbP0EMLpIcuf5ISjFaB-5iWaQmOC8UEeaSZo,3453 +gradio/templates/cdn/assets/Upload.5e38559f.js.map,sha256=hwBuiaF5ViEqbv9raELmA2H6rfcEDzlHe2SzH5v6Ueg,4088 +gradio/templates/cdn/assets/Webcam.1069ca6e.js,sha256=_zgqI-rWk-NsfVWMMweESWw7Gg50QcH0MwAa1RETgXM,51999 +gradio/templates/cdn/assets/Webcam.1069ca6e.js.map,sha256=-BKQzRpLmpzwV3_KqZic_CS6wx1tdB-jT7y7P0hhi14,206446 +gradio/templates/cdn/assets/_commonjsHelpers.88e99c8f.js,sha256=0mK2njWiEctDJS_Gr_bQ4anBwdJ6hSNjA7CvZ-qwhZM,520 +gradio/templates/cdn/assets/_commonjsHelpers.88e99c8f.js.map,sha256=ttv8vSze8PYy3stJG5wN_D3bW0rhdA7DHbIZ_XEteU4,109 +gradio/templates/cdn/assets/color.dcb69c9e.js,sha256=zfQWH8f1ASTMnTRqqCnqjIX7sHyiEo4bqpynY4619PI,125 +gradio/templates/cdn/assets/color.dcb69c9e.js.map,sha256=jT1-IWAnNyi0LKLo8zONvVGY6fpfpNpiKQ-bPELvkQk,376 +gradio/templates/cdn/assets/csv.27f5436c.js,sha256=WHXRZoS6UNJZ3R3jbGrlrbIrf4djPFzBNluiStX2S0E,139 +gradio/templates/cdn/assets/csv.27f5436c.js.map,sha256=6m69yAZ6fTRl0SdLyHZT5EQw8LRC0DfDrS8EuRyOHXw,584 +gradio/templates/cdn/assets/dsv.7fe76a93.js,sha256=GVHMvm0ggxujLDDQPMjOeoP6EeOuuK6emiwKi61x0_8,2189 +gradio/templates/cdn/assets/dsv.7fe76a93.js.map,sha256=BFhXwATaG6kaAPxGwjkV5KIxUMLB1KL1R0pMJ6swwZg,8465 +gradio/templates/cdn/assets/index.0bfc333c.js,sha256=gtYkwlWR6NZctbIj6R5Ffn4tc-vFxm89FX6wrRAEHjA,1939 +gradio/templates/cdn/assets/index.0bfc333c.js.map,sha256=-IzbIGSZxb6COmzSJUW8B5q99jb-TreTN1i68zg6R5U,1273 +gradio/templates/cdn/assets/index.0fca6928.js,sha256=nefyTFoii55b1SJcpoYXwmh9kMlSvNo62WApHKxg2mY,247 +gradio/templates/cdn/assets/index.0fca6928.js.map,sha256=xX3RM5Fj_KAMeaaQnpedKBhq0SCkhweJFCohrm5oiYg,529 +gradio/templates/cdn/assets/index.10851bbc.css,sha256=F5O8iy24DxqAdOODOaa612-AutRO8_ZHSzNkhKI8Blw,2051 +gradio/templates/cdn/assets/index.1285777f.js,sha256=tKWFNTayzPtZZCn-EzWz6yniVBauD75w1WUpD3Dq-hA,18232 +gradio/templates/cdn/assets/index.1285777f.js.map,sha256=wDqm-vhN2lykQf5DrayWMCjxEH0dlGMGRQPuneaDMKw,20661 +gradio/templates/cdn/assets/index.1a9e15aa.css,sha256=toVbg7iQ0U3MEvtCL7YtVCty-zQrQ_hkMel9fadEews,100067 +gradio/templates/cdn/assets/index.2171fcd3.js,sha256=0fG4Fnpu0oRYcO0H2RXIyyAIcidxvfyoD7tqj1qTSpQ,3745 +gradio/templates/cdn/assets/index.2171fcd3.js.map,sha256=3Ts0Q1dMBtkOCcGN-ZaHnO4qhimUdiZfO6Gd-n87E3o,3138 +gradio/templates/cdn/assets/index.2b8a022e.js,sha256=lhqFdeQzdS8mW9_tzH5C8SDF5tcYyEDCGRs9Dn7cwjg,40160 +gradio/templates/cdn/assets/index.2b8a022e.js.map,sha256=ziDJ4KxzgHnbACBULwmPPRv2omiISiYrI1W8EswCPbU,51344 +gradio/templates/cdn/assets/index.3266627b.js,sha256=KK63gjr3cq7YtnvA0DZzJKbAu_3J5UetDvWBCwtV16Y,4111 +gradio/templates/cdn/assets/index.3266627b.js.map,sha256=jEKl4huZk8E7KbK2XXay-WRKr0bh5OCt0eP82JWD-Bk,5069 +gradio/templates/cdn/assets/index.3517cbba.css,sha256=YqPzDNH1mZCfqI-gguzRijDauc9XE_nQcAaXrjPueMk,325 +gradio/templates/cdn/assets/index.51ec63c2.css,sha256=lFM0VIRKcHuTY8cV-bV172vl2crXghQAzyizpSFewfM,96168 +gradio/templates/cdn/assets/index.57f9dd27.js,sha256=TYxN7Id-jOl_iEgGLIJAvQq9jE-NL7d___y2N7Q9GkE,137 +gradio/templates/cdn/assets/index.57f9dd27.js.map,sha256=8Eu6MUMiRR_sj4hRa50wLwsHY254jvVggD_NdRP0byE,289 +gradio/templates/cdn/assets/index.59240862.js,sha256=8rZbOfoqmjXdCDeUdTb56XkPzUblEn6WJ-IsS5DhhPU,5158 +gradio/templates/cdn/assets/index.59240862.js.map,sha256=HGdfdZgJ_ZcnvtjuZ7PJdGjUJM-ddwoLMySowGlvsyo,3392 +gradio/templates/cdn/assets/index.5f4416cb.js,sha256=g3fxxZNQGWUxX7nnMEXRmXZi0V9nZ4e61pIG8PevrEA,12343 +gradio/templates/cdn/assets/index.5f4416cb.js.map,sha256=GzkO6YLKCJrEIKgx3bFvVaHjWphD-Yskzi5MZpAUtMs,8058 +gradio/templates/cdn/assets/index.5f8802f8.js,sha256=F4dQ03o6NgCxPAHN-RPXUkHQchHbqmfNvK3XzeFpQd8,1370 +gradio/templates/cdn/assets/index.5f8802f8.js.map,sha256=63TrwqGBENWFQjs-d2h9n5qwK3qs9I8HkKRu6Rrq2Z0,1116 +gradio/templates/cdn/assets/index.5fff5881.js,sha256=zU0_w0Aho_Pvdj6uMv-2-qcB5YmIZ_tpoNrKJWa1qLc,1577 +gradio/templates/cdn/assets/index.5fff5881.js.map,sha256=yozfUj4AuCA-1GMIGRhE00oU4i6iKu-Dgu5U68Ou8dk,853 +gradio/templates/cdn/assets/index.6010fe83.js,sha256=ebX4-RCXU_ev1Eg8x-6PhUciI1c1tb59gjPO7mBfZ1U,4987 +gradio/templates/cdn/assets/index.6010fe83.js.map,sha256=NdWlPFd_TIheHud2QXrAuIn7VWltQKgr5df2E9WC9vY,3818 +gradio/templates/cdn/assets/index.64cd2c53.css,sha256=hQGQOxdszFoV14R8TGfhTNrPYfcG6V5IrhlSKtdHt4g,11857 +gradio/templates/cdn/assets/index.6a107eaa.js,sha256=WWCiCG59cYqJcndfQIMnKlRbb1VxiZt4obBz4sv6dEI,4615850 +gradio/templates/cdn/assets/index.6a107eaa.js.map,sha256=uamaUfgp_Ky0Xf5ZMXpemU8PzMdN-7sFNA4SFkaaUe8,11506549 +gradio/templates/cdn/assets/index.6b15cb73.js,sha256=pfd97_XLL6E4k_463Tzub1cr7lXrpD1Iy8SPhb0RZpg,33832 +gradio/templates/cdn/assets/index.6b15cb73.js.map,sha256=kkr85e_beoc45PxPsZ3JpiyNybcm07Gvh-eNtfOlMZQ,56591 +gradio/templates/cdn/assets/index.712d6db6.css,sha256=2-ywVUvBZLUUWLEyv3G0Zh5rb0OZtIDwfLiwSQ8OW-4,6200 +gradio/templates/cdn/assets/index.71efdad8.js,sha256=HKkEcWAKHWsCRgMWp1Eb7q4WD9xMO92N7t6z0AgX3_Q,912 +gradio/templates/cdn/assets/index.71efdad8.js.map,sha256=1_jKjIl3CsEhcaJoNu5npGNOC3eU9RE3T6JibnZ1MY8,956 +gradio/templates/cdn/assets/index.72f44ebf.css,sha256=4qbuC7miTCmgvDG8Yjhlsiqo7Gc8BcTc7i9QLKamyEg,68 +gradio/templates/cdn/assets/index.77022d0b.js,sha256=Fz0KZeaOoHu4msICF2Wa65Q61VJlW8adSY6N4fitUIA,4773 +gradio/templates/cdn/assets/index.77022d0b.js.map,sha256=y-SWaWo6-YW399FU2bsfFTmuGH9oUWQ-i9Yyie2BOqw,3543 +gradio/templates/cdn/assets/index.7a93f874.css,sha256=FnZMyQ-_SUlFJ3Ijk81a2hxlTIgv-PyWF-IMtr8yNIU,127 +gradio/templates/cdn/assets/index.7e510d8e.js,sha256=HisXfXCGBKLwN0CBQZSGjHs2_uFFR0IqebH1_YJfoOY,17094 +gradio/templates/cdn/assets/index.7e510d8e.js.map,sha256=YbVBu3OlH7w4NHZdjWDUnvTURoy3najL7GsUQ_qnqdg,14905 +gradio/templates/cdn/assets/index.803c5e11.css,sha256=VuDX3YWuUnUsztB5tlY-ovAfqtiGHZk0xFE0zpN3YKw,361 +gradio/templates/cdn/assets/index.81d892fa.js,sha256=dVee-XG-yGGm62cD3WDN31sUZev1ErnarUIT0cSOcPs,4225 +gradio/templates/cdn/assets/index.81d892fa.js.map,sha256=LS0ttC7izqzeWptETpk3DPu2l5KbEf263x-rStsWrY0,2701 +gradio/templates/cdn/assets/index.833592ca.js,sha256=AVVTM-VN8RaGyODBXbc39s-q7uxfWICf7oVTdffcK0c,2719 +gradio/templates/cdn/assets/index.833592ca.js.map,sha256=cIqeb_oWoW6_hGq0-bioVQvNHIbMtA3shnDWrnA0kNo,2339 +gradio/templates/cdn/assets/index.90a8fbf3.js,sha256=uR8mvmhyhsJLoT8iiw8LM_jyYB7MiXMU_hWEO_60uEQ,20752 +gradio/templates/cdn/assets/index.90a8fbf3.js.map,sha256=57eJ4pIqGV15RIJFdJo_HJFbwOSiyw5GDfTTL1fxrxQ,31786 +gradio/templates/cdn/assets/index.944f73b6.js,sha256=kX1pb4Wsmexs7HKClIJ73viAsdpeNPfZYFGdzdfNdMI,3115 +gradio/templates/cdn/assets/index.944f73b6.js.map,sha256=5BGCTGJwJc7H00GWf8ahw2GUMAZb0flSIlchLFIViek,2750 +gradio/templates/cdn/assets/index.952bdf04.js,sha256=o-DukxapikmXeroxuGDff5xhEWsNny4ddl3tLu_yD5s,1555 +gradio/templates/cdn/assets/index.952bdf04.js.map,sha256=SbYKFzytr1nmE_WwT82Jb1GQX5GdHh6RIftaxY3wf4c,814 +gradio/templates/cdn/assets/index.9bbde3c9.js,sha256=XDD36VCiS23SJb4NnZSmL6CUBI5UxZvJkBZaFZ-wlLw,5483 +gradio/templates/cdn/assets/index.9bbde3c9.js.map,sha256=0ZRykYGqO22UC7JGc00LqwK8KofyMq9wT1WeZIMjEUg,5064 +gradio/templates/cdn/assets/index.9d73943a.js,sha256=DHunALkZX6GP5NrqerNXXga1LbPjM9P5TnteVDZ2rMQ,2218 +gradio/templates/cdn/assets/index.9d73943a.js.map,sha256=3NJGBJL-IdzgpIEsGf61VEkOwufVh3DfdpHsSTrv8Dg,1384 +gradio/templates/cdn/assets/index.b52aca5c.js,sha256=U1O4_NMUvWSleAfWfk2wXO1aMOpP_qRfAU5CV3g5RsM,2563 +gradio/templates/cdn/assets/index.b52aca5c.js.map,sha256=dutz77E3GXqNHqPNLKxaldMcGgf_ZLGHULUPI8yHZ-A,1904 +gradio/templates/cdn/assets/index.b72f3994.js,sha256=Z-fIPm13oHMKNxgwva2DP1TplQmR7Pi6AdNjhB1QeEw,18599 +gradio/templates/cdn/assets/index.b72f3994.js.map,sha256=9sZ-QLfMnamP636Tq97ER5e7aq46l5TAadlyHmGvczE,17818 +gradio/templates/cdn/assets/index.ba627305.js,sha256=3xU_wJd7cO0oCiDNXppjAQ3MTJ11SpHnWXdBncNH3w0,10775 +gradio/templates/cdn/assets/index.ba627305.js.map,sha256=YyZuOLDw8oCtCaY3aSqNlqol5JeyFfH1GhcVmdC5lZk,10304 +gradio/templates/cdn/assets/index.c67f862b.js,sha256=eZOlUPc6PRKckcRaeoNJUgb_RGXIxmMiZPyD60iXsA0,166 +gradio/templates/cdn/assets/index.c67f862b.js.map,sha256=noCna_00OKhDsSVZpB2GJb8eJZAXLVFneCDfFZj7X7Q,275 +gradio/templates/cdn/assets/index.cb50929e.js,sha256=CSdFDz89JoE-HwKS2VSeZZGUvJIZJSG-nZxWFyHO7XY,156410 +gradio/templates/cdn/assets/index.cb50929e.js.map,sha256=cVyXEIaZr4py4YCl0hNUIlpDbx9sw4b4daKZFqArK38,400604 +gradio/templates/cdn/assets/index.cfba6851.js,sha256=mNZdoFTyIH7qPPTcbIh-J4L6_bi7YbfUpYp9gMeW9lU,2626 +gradio/templates/cdn/assets/index.cfba6851.js.map,sha256=FALoxyGfjn_KWQNy1C6G2NSZrg-GZBrH0RRRrVdFM2A,1793 +gradio/templates/cdn/assets/index.d924a556.js,sha256=4-JZtMLTAqiomq9afPij1hd6Fprs9DF_wwxm1eoNbkU,11107 +gradio/templates/cdn/assets/index.d924a556.js.map,sha256=Twl4C2qoF68sOtjjSw5jlY1o-Crc57HaHhp_5n-VMYQ,10201 +gradio/templates/cdn/assets/index.de220284.js,sha256=KXTRM6cuV6179UzyoghaW0sLeCnenAQKKPwOlK4hR6A,13938 +gradio/templates/cdn/assets/index.de220284.js.map,sha256=JsmFL_sj_Vxf4FSn9YNZRbF762OT7bPChSyx7lSGaHg,11589 +gradio/templates/cdn/assets/index.e11ce6a7.js,sha256=uMOLBoKej3VHXhJTcW63bgqGm_us7diD2-o2L_mhHBw,309 +gradio/templates/cdn/assets/index.e11ce6a7.js.map,sha256=NxHMbeoYtg0Ir8I-e8P2bxrfsQgwvXO4HahsRrtg1gs,474 +gradio/templates/cdn/assets/index.ed52d6e3.js,sha256=aHLTpzfpUsgYC1cm-_7guA37RHK1K4XnFrKtN5eUnRY,4211 +gradio/templates/cdn/assets/index.ed52d6e3.js.map,sha256=xGAEr3I7pKeu6XeKs4CH6reASwQX0hOKEWAkjeFaAGQ,2801 +gradio/templates/cdn/assets/index.f1a22a9e.js,sha256=x5g9uW0vEP5tCsRGv5-OImZ4jHlSSQMZIMZHWh3ZGxY,1112 +gradio/templates/cdn/assets/index.f1a22a9e.js.map,sha256=WxnZKNwZD5elVRqNhuPTGT_-7eRgobuz0xRN0iR0gbo,565 +gradio/templates/cdn/assets/index.f20cf91a.js,sha256=73mXU41ie9zkN0H0zTBOOs_sftcO5iGycKoBUR5LQrs,3544496 +gradio/templates/cdn/assets/index.f20cf91a.js.map,sha256=fvIxE19QL5cF_5cOFtc4gBbs092KMpSJPDfPNHJup1A,6463928 +gradio/templates/cdn/assets/index.f5688297.js,sha256=drLPis56wVb8fn23cJ3PRgeVSqBu9qnO2cmelXqJpbU,2869 +gradio/templates/cdn/assets/index.f5688297.js.map,sha256=UOs-sedB_XIAFeTp_GKdGP-lzlGj_QfuDjspk_LLQx0,2550 +gradio/templates/cdn/assets/index.f58c340d.js,sha256=nhECpKNmShLcaQMokriKBYSd5OSuRA-2YR9eigIdNYI,6893 +gradio/templates/cdn/assets/index.f58c340d.js.map,sha256=N8-x2l8XaJVTQPX6pvUDvzT6Cn4OGvOdZoTATkbeV9M,5127 +gradio/templates/cdn/assets/index.fce6ee4c.js,sha256=JmUgGujbF-WouOTiJVzVzGlr-0bsBG4KaetvkSEt_BM,138 +gradio/templates/cdn/assets/index.fce6ee4c.js.map,sha256=AQcJy4WdbFOL3AiS8Bi3_qBFSN6nehDM-ZVltk3y430,271 +gradio/templates/cdn/assets/index.fedeb39e.js,sha256=EwWvzYoDbhYgiVe48ot25iYKrZtNjgjiUJp2JHpJdCs,17963 +gradio/templates/cdn/assets/index.fedeb39e.js.map,sha256=ZOsAwnJ_nD0HLTV7SJqDKkcJrG_0WYQhnqzR5x1_CnQ,19567 +gradio/templates/cdn/assets/linear.955f0731.js,sha256=4lNB531fYoy-RidH6_cMq06fM_mXKfdQOh5hmxMfbK4,23160 +gradio/templates/cdn/assets/linear.955f0731.js.map,sha256=DO54CaxhuRwHniaCdqqdKQ4K8IMz_i1Yey3rinegKTQ,86497 +gradio/templates/cdn/assets/logo.0a070fcf.svg,sha256=CgcPzxRYAFGCp2QJqY-o7gIPTz_K0t0dFc_4Ch3B-NM,923 +gradio/templates/cdn/assets/module.2849491a.js,sha256=EqF55n748GQEvxzp-8P9WNPsy4f19N1MqIfCBUizoA0,93747 +gradio/templates/cdn/assets/module.2849491a.js.map,sha256=ZnwhiJ71Oktauk_IpovQdJcCi2iOObnnlWnGQ9SmVic,540340 +gradio/templates/cdn/assets/module.d8037460.js,sha256=f2FkypEEs2seBuaM8OZxuRXREi4P9xAWEMCa1A8yKXQ,10080 +gradio/templates/cdn/assets/module.d8037460.js.map,sha256=vJYG3_WcdOoGQIn7aCS8SM-qIy_-VFV8wO_2a3vYWR8,12654 +gradio/templates/cdn/assets/module.e2741a44.js,sha256=d3Q5eQqniFgZvXG2y0SjAav50DOZoP312ezmfogJsmw,1670 +gradio/templates/cdn/assets/module.e2741a44.js.map,sha256=6Q6m0WQOaGH_G8dcWuXL-NbvLUeg4tHkeCPh7hQfx48,10608 +gradio/templates/cdn/assets/utils.27234e1d.js,sha256=4E_p0g-ICnnjBoOjgAVA3x62cJlbU6yxLUB45WyzsLw,247 +gradio/templates/cdn/assets/utils.27234e1d.js.map,sha256=Pa4LQLopBaq1zAjGKTRLGrB8DP6GeuA4DDsg9yhr5mU,806 +gradio/templates/cdn/favicon.png,sha256=K_x7Y4Jps6jl9lAtcaC4kBCJkQ3YDt6Dlr3FkPEwIBc,3127 +gradio/templates/cdn/gradio.js,sha256=EN1EGZUpYDpSimQz4CpZht209C8HdrmI3FauPBkd6ik,308 +gradio/templates/cdn/index.html,sha256=NjYZrbg_BpeR-hhoWrKCnYLFQDs2bJ6mICgCmm0cOCo,2351 +gradio/templates/cdn/static/img/Bunny.obj,sha256=yT5Kb8ZCMZT_iyTeNy0KBjImQpAwKhHTkfgyMToNVe8,198443 +gradio/templates/cdn/static/img/Duck.glb,sha256=Zb-Tj1TWBz5hnnbgB4ILv5gM3D3A2uwNlIMP_ErlSrU,120484 +gradio/templates/cdn/static/img/api-logo.svg,sha256=U0bxk-F8XMEQqDlMPZTzwrFgCmNOj5wBz2nV5CTCMh8,1544 +gradio/templates/cdn/static/img/camera.svg,sha256=SpId6c1K484Wkh_BWPCYM0Y4hQtIWLhPDfV2pW7Sko0,349 +gradio/templates/cdn/static/img/clear.svg,sha256=vwpFiqfMn3jDAFS1a72C1q4BEHLTaJZKurG0RIpX9j4,1920 +gradio/templates/cdn/static/img/edit.svg,sha256=gvIbS-99UVGmYE5a38K1AcsPD_KmwwBe3hKdYzrzbHc,1427 +gradio/templates/cdn/static/img/javascript.svg,sha256=hQz5S4qCD6CWtmPhbRryjIljsJ9kcLBqGxtguImqYh8,742 +gradio/templates/cdn/static/img/logo.svg,sha256=Gnyv2gS-Ne60Qs2yXs2oTQ8OevTZDzStYyKVpNci9S4,3755 +gradio/templates/cdn/static/img/logo_error.svg,sha256=WkTxoBCQ8Hvcx-sBsZbhDpwInU_WUhqvvdssj0wG8o0,4609 +gradio/templates/cdn/static/img/python.svg,sha256=IOOckruIxuSlu-lfxORc-Gze5YUTCOE1mIQZplzkgLQ,1111 +gradio/templates/cdn/static/img/undo-solid.svg,sha256=6O_Pyjo59fCCynMz5XhWU4wI1egQ3anNpToH9fpmISw,767 +gradio/templates/frontend/assets/BlockLabel.ed99b059.js,sha256=6REc8GnO8n100mM0GDH-WJueWPhbnVT7Vmn4WLv8Xtg,1514 +gradio/templates/frontend/assets/BlockLabel.ed99b059.js.map,sha256=XIOBBEVpIzSu9eaDE8DKiTRVUeo_64vPPbGwLlPlUKo,1057 +gradio/templates/frontend/assets/CarouselItem.svelte_svelte_type_style_lang.e110d966.css,sha256=12Qll6W9I-ZPb-mvT2XnHHh7aD24e_Uw443T1ltlRE0,116 +gradio/templates/frontend/assets/CarouselItem.svelte_svelte_type_style_lang.ec826cd2.js,sha256=7S412MsfmOPyFrIiERAFE5TnIQpTYhN1OJrvvLHxm5o,3287 +gradio/templates/frontend/assets/CarouselItem.svelte_svelte_type_style_lang.ec826cd2.js.map,sha256=rg_isXNagKQYRgm9_KMVjBC3nzKcPOd0eR3CXefoj_Q,3831 +gradio/templates/frontend/assets/Column.be2d67a9.js,sha256=kvbT20MnL27AHwASEsGgEa_d6q156WjiLqVXCcfUy0o,1622 +gradio/templates/frontend/assets/Column.be2d67a9.js.map,sha256=ZmAN2FP2i33V8pBwwvwF0xt4JZrmnJl_m_P461DjxTE,1171 +gradio/templates/frontend/assets/File.bab5cd95.js,sha256=S-uNL233QGlvZApTn71Ydtc4lCvoNTjFbjFuFMr-iV4,733 +gradio/templates/frontend/assets/File.bab5cd95.js.map,sha256=eO9z6v6fSa9njZdFGD67BfwySHodybDxXyA9jiJpHHM,561 +gradio/templates/frontend/assets/Image.fb19a643.js,sha256=E_no6KDsUEe2_f77gMHhbQYK67iHDL-M99G0LyZ4oXU,823 +gradio/templates/frontend/assets/Image.fb19a643.js.map,sha256=4Ja-91pieCqSbCoO4gnNwIlajNLMfqth2SMF00ZZ5ms,621 +gradio/templates/frontend/assets/Image.ff5e2277.js,sha256=5ic9aoC4BBHETL4bEyBqh5S6TagWsdDhvGjA1qGoL3c,617 +gradio/templates/frontend/assets/Image.ff5e2277.js.map,sha256=7yb3Wt300cgAux5SuuAKjPxhzRyIiGPEZuu96ihuZs4,461 +gradio/templates/frontend/assets/Model3D.8385a5a1.js,sha256=XdmJBgMzLKyBWb9xPtG-pTcivmtFJ8q1pqcR_6RNR4E,480 +gradio/templates/frontend/assets/Model3D.8385a5a1.js.map,sha256=O554Q5gQwWK7zpeF1ebUmF4KxzHbkOk57q0IzkYXIx0,374 +gradio/templates/frontend/assets/ModifyUpload.45995008.js,sha256=psogydxIzzI9Neco4uQJPLRI9XIo7AWN-2OEhSSLoCo,3581 +gradio/templates/frontend/assets/ModifyUpload.45995008.js.map,sha256=ZoEF7xYDgaT6CmMNu1vWhT5baBbsulXEeW24DxDF_9U,2785 +gradio/templates/frontend/assets/Tabs.ed469103.js,sha256=zXxM3pkI7eCg2vq7L-c9T-IsvJm933wYSrJTbN5dV0U,2787 +gradio/templates/frontend/assets/Tabs.ed469103.js.map,sha256=EX3jk4WunR32sPII8WLhnn6bWNdxkUzQNg-0y4kn_rI,2615 +gradio/templates/frontend/assets/Upload.623b235c.js,sha256=VORaCPaHjiRuiawwXU4_0FBnhjRXe3hj4kp6M3VJ27Q,3453 +gradio/templates/frontend/assets/Upload.623b235c.js.map,sha256=TqpBafpVDzJLKcVq13QZjee3GTb54EB4xmFTMRrHXdw,4088 +gradio/templates/frontend/assets/Webcam.078ddcb2.js,sha256=c0OxA6L8OE7eIkyfq6IcWnHqIQZtkDvRk8JzKbYo6xk,51999 +gradio/templates/frontend/assets/Webcam.078ddcb2.js.map,sha256=iXMEUw79ucQszT3T4KdzW3-ugakzUvg0YEGOrle4_Gw,206446 +gradio/templates/frontend/assets/_commonjsHelpers.88e99c8f.js,sha256=0mK2njWiEctDJS_Gr_bQ4anBwdJ6hSNjA7CvZ-qwhZM,520 +gradio/templates/frontend/assets/_commonjsHelpers.88e99c8f.js.map,sha256=ttv8vSze8PYy3stJG5wN_D3bW0rhdA7DHbIZ_XEteU4,109 +gradio/templates/frontend/assets/color.7f915eb5.js,sha256=sa2FfnQzXiC8EoeQ00VVJfaRbQNAscBQh2yK-SS6O8Q,125 +gradio/templates/frontend/assets/color.7f915eb5.js.map,sha256=yA9GKdwWMme-lG_aV43M6b2EEAD30v-hlQBXBLkmpCQ,376 +gradio/templates/frontend/assets/csv.27f5436c.js,sha256=WHXRZoS6UNJZ3R3jbGrlrbIrf4djPFzBNluiStX2S0E,139 +gradio/templates/frontend/assets/csv.27f5436c.js.map,sha256=6m69yAZ6fTRl0SdLyHZT5EQw8LRC0DfDrS8EuRyOHXw,584 +gradio/templates/frontend/assets/dsv.7fe76a93.js,sha256=GVHMvm0ggxujLDDQPMjOeoP6EeOuuK6emiwKi61x0_8,2189 +gradio/templates/frontend/assets/dsv.7fe76a93.js.map,sha256=BFhXwATaG6kaAPxGwjkV5KIxUMLB1KL1R0pMJ6swwZg,8465 +gradio/templates/frontend/assets/index.10851bbc.css,sha256=F5O8iy24DxqAdOODOaa612-AutRO8_ZHSzNkhKI8Blw,2051 +gradio/templates/frontend/assets/index.18e21207.js,sha256=OMREmdEyRZtF2J5w_GdQvYVOOjtQzqRpzlTVA-mhw1U,5158 +gradio/templates/frontend/assets/index.18e21207.js.map,sha256=D11Q-BqnYRa8Xo8AaL-wyN4auqlQRl-rXm3RwyuekO4,3392 +gradio/templates/frontend/assets/index.1a4a53d8.js,sha256=fkD5XdjWSdWlifOcUiRws7rAtYgnjgvWMmmVjlfEsbY,247 +gradio/templates/frontend/assets/index.1a4a53d8.js.map,sha256=X1wizs8vfL7TaH6KKRPeis9oL_Oh9YTI_t-9GtpriDk,529 +gradio/templates/frontend/assets/index.1a9e15aa.css,sha256=toVbg7iQ0U3MEvtCL7YtVCty-zQrQ_hkMel9fadEews,100067 +gradio/templates/frontend/assets/index.1bd1e4bd.js,sha256=y2tpz9sH3DvpNjjsoOHlxzFkUwOkvINNfC9p2PA4iTs,3745 +gradio/templates/frontend/assets/index.1bd1e4bd.js.map,sha256=QTMu9QjrILt9h21HfkHpaUND91SM5D708AS_tBh1a2E,3138 +gradio/templates/frontend/assets/index.1caa99ed.js,sha256=OqL9BqNyNTbrhbkLfsgO7zyFz9zLeghPLUFEcotfceA,33531 +gradio/templates/frontend/assets/index.1caa99ed.js.map,sha256=3N4ujAsUFT5MJtFVTA31jHusSANN3aSLOuuBsPpySoY,56591 +gradio/templates/frontend/assets/index.23ffd292.js,sha256=IlW93CClz7afmg2p1shE-e9nibFGlbtE_Jygs4jVB_Q,12343 +gradio/templates/frontend/assets/index.23ffd292.js.map,sha256=LIzIzhiMgBBrRdyEn9eZD-ZkyuGfTKHDzzuPg00zqVw,8058 +gradio/templates/frontend/assets/index.292f3a87.js,sha256=iIvPvydi8bFprhg9QQ4cXG6--SO5eDR6jrimEEMTksA,2626 +gradio/templates/frontend/assets/index.292f3a87.js.map,sha256=z3x3xeOSsnnG2yRyP80UwW0x_kWxiQWbYqyawBkntVY,1793 +gradio/templates/frontend/assets/index.2fab43b5.js,sha256=lGEywlkJPLcDtA1z_fIoSmNWCq78J92d9Gn6l3Or_7k,18599 +gradio/templates/frontend/assets/index.2fab43b5.js.map,sha256=d4PSSqCrnZkcsAVyu4_ltAl6nmx1OTyv4BY26tES8tA,17818 +gradio/templates/frontend/assets/index.34ac629a.js,sha256=XTSz_XNeggjvxSIN6LG7Z4vGNor3YwWcYSr7G-OrA6Y,3544496 +gradio/templates/frontend/assets/index.34ac629a.js.map,sha256=Io4LMexFP2WlmMony1OBazq9JGXT15ShFN8I3fRCw5g,6463928 +gradio/templates/frontend/assets/index.3517cbba.css,sha256=YqPzDNH1mZCfqI-gguzRijDauc9XE_nQcAaXrjPueMk,325 +gradio/templates/frontend/assets/index.37aa27c0.js,sha256=juGeq1QHOoJ7hTXBSaiUXl8ECPy7Ix_GwzlmX3zFxk0,4615850 +gradio/templates/frontend/assets/index.37aa27c0.js.map,sha256=rX8dXaPyjaHob7YqRlHlVO0Kl_5_feuNLGWAw7IID70,11506549 +gradio/templates/frontend/assets/index.384bbb09.js,sha256=IPJTV2J5Kp7KeypRiplKqGLUQaTsRaaYlqVbv0N0YNo,1370 +gradio/templates/frontend/assets/index.384bbb09.js.map,sha256=HL55GQ1EWsjxpUZeHOZOrLDPGHl9c7LbdM7RitozMJk,1116 +gradio/templates/frontend/assets/index.39ca61e1.js,sha256=NyLGWuHV67nA8A8olJKQ05-t7a0wa5uQ9ubmJpTTMvU,2719 +gradio/templates/frontend/assets/index.39ca61e1.js.map,sha256=9Y-bb3PX5SsNy5y43jn_H65rXFjFQ4h-7QhBImEsN_8,2339 +gradio/templates/frontend/assets/index.41329da3.js,sha256=rNCsDa7lsAVUxD4bCQC_OzlMFeMv-W1Qjj8-TbZA_8Q,13938 +gradio/templates/frontend/assets/index.41329da3.js.map,sha256=hhHflifUsv5fowr-DdwJgIC5pufAArKQePfhcL2PYJE,11589 +gradio/templates/frontend/assets/index.47be1c4a.js,sha256=2Bi9SXJVPNdelWHkcqhN9eev2rPPlAm_Hh5fGjbULWY,4111 +gradio/templates/frontend/assets/index.47be1c4a.js.map,sha256=HVbYCugcd8bmOGSLe5uKWBVrjpH7wgXV7E1ikdCUNHk,5069 +gradio/templates/frontend/assets/index.51ec63c2.css,sha256=lFM0VIRKcHuTY8cV-bV172vl2crXghQAzyizpSFewfM,96168 +gradio/templates/frontend/assets/index.52b2bdbf.js,sha256=IZzW2VIwHHRfxg3rUerg36vZ2hQuYFBesfoB0I8rDMI,2563 +gradio/templates/frontend/assets/index.52b2bdbf.js.map,sha256=ICBOeQIDly1MsXhiTSzepvSga7BkPWlMv1HfQ-5K5ms,1904 +gradio/templates/frontend/assets/index.57e36a0a.js,sha256=ryzgs6WmVE8FmSqOvyrXHj8Y4Fp9iYymjDX_AF4tvuo,20752 +gradio/templates/frontend/assets/index.57e36a0a.js.map,sha256=VFUhyEH5f02KqZSF0PUSWSINDaEdcrVzPEb1T5fBQ_U,31786 +gradio/templates/frontend/assets/index.59644128.js,sha256=JOJ8osXlOzOkGZOBwhCBup0v-wfECSc15ibG16Y9z_Y,6893 +gradio/templates/frontend/assets/index.59644128.js.map,sha256=m_0qvWLxkqum8yvTBSc-GLrSXI9hX9UwvUa4L0DdYOs,5127 +gradio/templates/frontend/assets/index.5cb2b9ae.js,sha256=7Hax7ZWrBlqZR7hNWUmrKVrCBi5FCnE0Ivw4OYHVKp0,18232 +gradio/templates/frontend/assets/index.5cb2b9ae.js.map,sha256=CuF7KKUwCg_SpO5Hty9sUBwPdSWA_F0aA9VLwYpwaGg,20661 +gradio/templates/frontend/assets/index.64cd2c53.css,sha256=hQGQOxdszFoV14R8TGfhTNrPYfcG6V5IrhlSKtdHt4g,11857 +gradio/templates/frontend/assets/index.67b4d6f6.js,sha256=z-6gUkgZruCTDDOUiAuFUJ0ang-CFllMH8FHMc2zpW4,2869 +gradio/templates/frontend/assets/index.67b4d6f6.js.map,sha256=oxS19kW9YQ2RPb15Ou56_v7fmrmjp2Zv7kSMfwIh7Qo,2550 +gradio/templates/frontend/assets/index.6d577c45.js,sha256=naJEiPa693BiCTXxHYPYc2_DhORat6hie6Y63x878RM,17963 +gradio/templates/frontend/assets/index.6d577c45.js.map,sha256=TklmVgoWIJb4bTPDPJsK6ULSNpywCkpCUFP7EBv4K_s,19567 +gradio/templates/frontend/assets/index.712d6db6.css,sha256=2-ywVUvBZLUUWLEyv3G0Zh5rb0OZtIDwfLiwSQ8OW-4,6200 +gradio/templates/frontend/assets/index.72f44ebf.css,sha256=4qbuC7miTCmgvDG8Yjhlsiqo7Gc8BcTc7i9QLKamyEg,68 +gradio/templates/frontend/assets/index.75712287.js,sha256=CRYIBCvWaJpPq8pNEsfaOmllLBcRc2yerZXG24cNQi0,2218 +gradio/templates/frontend/assets/index.75712287.js.map,sha256=ZVOMqVApTstFdtDb4UKaXgtqG0ke47Rwe1IevlqIocM,1384 +gradio/templates/frontend/assets/index.76b10370.js,sha256=cjCRlEgHH6fK5sPEp9aVatMZ9mwAEfrdF4p5kvf4Xvc,1577 +gradio/templates/frontend/assets/index.76b10370.js.map,sha256=7XP-2sl8wqNKLXW2eZYOIQlWZdQv2mmmHrHm47Am7Ng,853 +gradio/templates/frontend/assets/index.7855af74.js,sha256=s3tLd5fY1jBsH546NEHUk9Yg_PPA3ibDWbZrrNzjsAs,137 +gradio/templates/frontend/assets/index.7855af74.js.map,sha256=sTWZmyZkEsOzoycplDlEd5CXOYt1r6lm_i0a50zVKvs,289 +gradio/templates/frontend/assets/index.7a93f874.css,sha256=FnZMyQ-_SUlFJ3Ijk81a2hxlTIgv-PyWF-IMtr8yNIU,127 +gradio/templates/frontend/assets/index.803c5e11.css,sha256=VuDX3YWuUnUsztB5tlY-ovAfqtiGHZk0xFE0zpN3YKw,361 +gradio/templates/frontend/assets/index.839c1a9b.js,sha256=DBQIGJaC47UDfmIxgXy4h-9q4DtAdkRNkvxzfNjYXDA,138 +gradio/templates/frontend/assets/index.839c1a9b.js.map,sha256=I__zUekKSP3FGxMj6VQQBjwQO-ttzsZXYirlcM5d8sI,271 +gradio/templates/frontend/assets/index.86800d17.js,sha256=jojIpUAFQ2lq1WsVuDLEHx1bzFiVUZw8Jf1qJ4EzGYE,11107 +gradio/templates/frontend/assets/index.86800d17.js.map,sha256=p5yhP5iX1b5UMUfcTyz-kFZCMb0I1zGSlvAUc_N-YPU,10201 +gradio/templates/frontend/assets/index.972e48a6.js,sha256=ubT4BjnUAKW-jD26pxXHCDCmjk2h2BlbG3ms16H-17U,40160 +gradio/templates/frontend/assets/index.972e48a6.js.map,sha256=hrmR3Kor0f8P6hylx3rHaUieSokEX8ScHu84MftjoM0,51344 +gradio/templates/frontend/assets/index.990b6b98.js,sha256=RZPwP8_zzcHUwAEhMh2zomX9Q7j9dClds4h0SD4hlEs,154955 +gradio/templates/frontend/assets/index.990b6b98.js.map,sha256=EZHm0m9NZyKiy0g_WdEmz_9qaslSeVIJ_G2rUTMlogs,400416 +gradio/templates/frontend/assets/index.99fff0a7.js,sha256=DAS5sqr9XbVNUf9So0Or-Xj1eiv5RCUOMlu-xOrMCU4,4987 +gradio/templates/frontend/assets/index.99fff0a7.js.map,sha256=pDrTLZKlB-PLhkR1zRYbdYWQ4k1LkI8dhPCh64FeC4A,3818 +gradio/templates/frontend/assets/index.a459ce8c.js,sha256=mnyMYNb6F27pRw7t3hWMNpANtXPMbaE-r0KAC9OJ3Nc,309 +gradio/templates/frontend/assets/index.a459ce8c.js.map,sha256=DLxIT5NxWMDPrA9w7wB2DjP-D_aN48XZVRpURRHg0jI,474 +gradio/templates/frontend/assets/index.a86f8c59.js,sha256=fVjL1NrOQRkqfN1QudYiB1Tk4W43JIORZPAIK4G4rfQ,4225 +gradio/templates/frontend/assets/index.a86f8c59.js.map,sha256=NZ9VVikB5CpSBaUEfl6nk0m3TCjIIfCODpR_0-DsQxQ,2701 +gradio/templates/frontend/assets/index.aba03a34.js,sha256=2HrsS_PZbQDdbSGPZLXD5dQFoRllMKsxgkvaF1mhZ8E,1112 +gradio/templates/frontend/assets/index.aba03a34.js.map,sha256=NKIdLt7ujqJYbWMo88OpligDWuNdB-wtQ-j8JlvhdW8,565 +gradio/templates/frontend/assets/index.abec2b0b.js,sha256=DPI-3grsLvA8NCeYOOd1EGBVRtQyo7206sPf6dNTSTY,4211 +gradio/templates/frontend/assets/index.abec2b0b.js.map,sha256=sgttg3uaJEhYiqSwX3BAiqQAP-bkp-xbS1CoC1jrfk0,2801 +gradio/templates/frontend/assets/index.adeab696.js,sha256=Jmmkw_4CDwk3698HFvOi_7GRH_Z39BA6s0rLnJiOiu8,17094 +gradio/templates/frontend/assets/index.adeab696.js.map,sha256=Y_vNl5wITESfjdbgIVausdIJ2q3dTwxZ1IAla6saK9A,14905 +gradio/templates/frontend/assets/index.cafc4472.js,sha256=rZhlS33SImFRYFJzQkDkXB3PIBoeXz9B2HXGAo0BkXo,5483 +gradio/templates/frontend/assets/index.cafc4472.js.map,sha256=BMpSJra2vgMFXexHc5K_Zum1JmNWz4qVFDIEPl7HXMc,5064 +gradio/templates/frontend/assets/index.ce3bead3.js,sha256=cP6JgM3iLy1yto5WcvZIMdKQ7gLG-X1COcePNUqIzqQ,10775 +gradio/templates/frontend/assets/index.ce3bead3.js.map,sha256=bwweQHdV2Gv8PTHcVyKaFTbA8F8eumdUGNm8SfMyjSE,10304 +gradio/templates/frontend/assets/index.ceecc480.js,sha256=EVVrCw2Y-kjkJc0OcyjE4B2NhXxloIYz_X-7YlPWSeI,166 +gradio/templates/frontend/assets/index.ceecc480.js.map,sha256=zTbPbAtEbOLRokKntTl7R0KJfGnjKO_tzGRm2EjOql0,275 +gradio/templates/frontend/assets/index.d88941d7.js,sha256=syXSdNpHDHqU4CCcJd4wRyiSNUR7OWNKRpZgnHdhYx4,3115 +gradio/templates/frontend/assets/index.d88941d7.js.map,sha256=3_2NOCqNCI5nQILzF05eJO_zgDPFRT3PYe2-Ch1D0Lg,2750 +gradio/templates/frontend/assets/index.e1c269cd.js,sha256=XPwN47cQrPEOEqZR_gB3sZNnSiFCHZh8rtI-AMRL_g4,1939 +gradio/templates/frontend/assets/index.e1c269cd.js.map,sha256=Z4TlEpUuTWo0IYuFYl8kelgvTrJh9Ak0ADRzJzNdrtE,1273 +gradio/templates/frontend/assets/index.e2c5004d.js,sha256=W3MR6i3t0DZ4MiS9PZwfUy0Z5EC99hehsBtsFz_YZ8g,912 +gradio/templates/frontend/assets/index.e2c5004d.js.map,sha256=p09g9mmENAosos-VXDMICTvm3tna10ZC5tpPMxLLruI,956 +gradio/templates/frontend/assets/index.ea2cb842.js,sha256=WZmzEgUYSif1vcI-TFqsxXPLj3hNXFWE4ghsfsSwMSg,4773 +gradio/templates/frontend/assets/index.ea2cb842.js.map,sha256=DsiuJw7AtmO7sDSCz4T7jFvTsmPAOHV1U2LIwXEFQvM,3543 +gradio/templates/frontend/assets/index.fba04f29.js,sha256=3w9bTAkVEymiABta1KV7wUv78if3BftZaRFjdC_BbVs,1555 +gradio/templates/frontend/assets/index.fba04f29.js.map,sha256=Kq65DIdis7YuLM_Do8Jy2i9ztimcqxO6X6D7NBWHsjs,814 +gradio/templates/frontend/assets/linear.955f0731.js,sha256=4lNB531fYoy-RidH6_cMq06fM_mXKfdQOh5hmxMfbK4,23160 +gradio/templates/frontend/assets/linear.955f0731.js.map,sha256=DO54CaxhuRwHniaCdqqdKQ4K8IMz_i1Yey3rinegKTQ,86497 +gradio/templates/frontend/assets/logo.0a070fcf.svg,sha256=CgcPzxRYAFGCp2QJqY-o7gIPTz_K0t0dFc_4Ch3B-NM,923 +gradio/templates/frontend/assets/module.2849491a.js,sha256=TKjIoaSghJXrNIBCwpOg23JSRuYMoLfcb2hcrX8GTDw,93489 +gradio/templates/frontend/assets/module.2849491a.js.map,sha256=ZnwhiJ71Oktauk_IpovQdJcCi2iOObnnlWnGQ9SmVic,540340 +gradio/templates/frontend/assets/module.d8037460.js,sha256=f2FkypEEs2seBuaM8OZxuRXREi4P9xAWEMCa1A8yKXQ,10080 +gradio/templates/frontend/assets/module.d8037460.js.map,sha256=vJYG3_WcdOoGQIn7aCS8SM-qIy_-VFV8wO_2a3vYWR8,12654 +gradio/templates/frontend/assets/module.e2741a44.js,sha256=d3Q5eQqniFgZvXG2y0SjAav50DOZoP312ezmfogJsmw,1670 +gradio/templates/frontend/assets/module.e2741a44.js.map,sha256=6Q6m0WQOaGH_G8dcWuXL-NbvLUeg4tHkeCPh7hQfx48,10608 +gradio/templates/frontend/assets/utils.27234e1d.js,sha256=4E_p0g-ICnnjBoOjgAVA3x62cJlbU6yxLUB45WyzsLw,247 +gradio/templates/frontend/assets/utils.27234e1d.js.map,sha256=Pa4LQLopBaq1zAjGKTRLGrB8DP6GeuA4DDsg9yhr5mU,806 +gradio/templates/frontend/favicon.png,sha256=K_x7Y4Jps6jl9lAtcaC4kBCJkQ3YDt6Dlr3FkPEwIBc,3127 +gradio/templates/frontend/index.html,sha256=8P09yQ8Rxia3et-dzMLKdY-yZDGGyhYgWChbIsEJfhk,2304 +gradio/templates/frontend/share.html,sha256=NjYZrbg_BpeR-hhoWrKCnYLFQDs2bJ6mICgCmm0cOCo,2351 +gradio/templates/frontend/static/img/Bunny.obj,sha256=yT5Kb8ZCMZT_iyTeNy0KBjImQpAwKhHTkfgyMToNVe8,198443 +gradio/templates/frontend/static/img/Duck.glb,sha256=Zb-Tj1TWBz5hnnbgB4ILv5gM3D3A2uwNlIMP_ErlSrU,120484 +gradio/templates/frontend/static/img/api-logo.svg,sha256=U0bxk-F8XMEQqDlMPZTzwrFgCmNOj5wBz2nV5CTCMh8,1544 +gradio/templates/frontend/static/img/camera.svg,sha256=SpId6c1K484Wkh_BWPCYM0Y4hQtIWLhPDfV2pW7Sko0,349 +gradio/templates/frontend/static/img/clear.svg,sha256=vwpFiqfMn3jDAFS1a72C1q4BEHLTaJZKurG0RIpX9j4,1920 +gradio/templates/frontend/static/img/edit.svg,sha256=gvIbS-99UVGmYE5a38K1AcsPD_KmwwBe3hKdYzrzbHc,1427 +gradio/templates/frontend/static/img/javascript.svg,sha256=hQz5S4qCD6CWtmPhbRryjIljsJ9kcLBqGxtguImqYh8,742 +gradio/templates/frontend/static/img/logo.svg,sha256=Gnyv2gS-Ne60Qs2yXs2oTQ8OevTZDzStYyKVpNci9S4,3755 +gradio/templates/frontend/static/img/logo_error.svg,sha256=WkTxoBCQ8Hvcx-sBsZbhDpwInU_WUhqvvdssj0wG8o0,4609 +gradio/templates/frontend/static/img/python.svg,sha256=IOOckruIxuSlu-lfxORc-Gze5YUTCOE1mIQZplzkgLQ,1111 +gradio/templates/frontend/static/img/undo-solid.svg,sha256=6O_Pyjo59fCCynMz5XhWU4wI1egQ3anNpToH9fpmISw,767 +gradio/test_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +gradio/test_data/__pycache__/__init__.cpython-312.pyc,, +gradio/test_data/__pycache__/blocks_configs.cpython-312.pyc,, +gradio/test_data/blocks_configs.py,sha256=iAc4XPiUWSTkXJ5EgL2PXRFz4IMOv71kbp9deYO1-xs,17839 +gradio/test_data/cheetah1-copy.jpg,sha256=NVUL-7qZblnCQq8A9qFKnA0FXfvFKtBpoaTowcOcoJU,20552 +gradio/test_data/cheetah1.jpg,sha256=NVUL-7qZblnCQq8A9qFKnA0FXfvFKtBpoaTowcOcoJU,20552 +gradio/test_data/cheetah2.jpg,sha256=aILnFKpD1gpCn3BKXd069LNwj4lwGzvMliYSE0mFN5U,72783 +gradio/test_data/flagged_no_log/a.txt,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +gradio/test_data/flagged_no_log/b.txt,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +gradio/test_data/flagged_no_log/c.txt,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +gradio/test_data/flagged_with_log/log.csv,sha256=Spi96R_dEQk9_iapnIaQSnP4QMDLC-il8q-dro9U3I0,25 +gradio/test_data/lion.jpg,sha256=TEXs4AB18VLLLmz9Xx39fcjoMEImRoW09HACYkDv8-8,18489 +gradio/test_data/test_audio.wav,sha256=LZmSH5nFApJR4jcqcKugsPCKbt1KLc5fbvwnwO7xixU,47148 +gradio/test_data/test_image.png,sha256=OWx7U1hp5EGP2dlldjXlE0xrpiaBkFnwsm6bj7yCp2E,1951 +gradio/tunneling.py,sha256=OvEuUqaITUC2Zzu4q-3tSqFbAsnL2WXmzRColA7N2yc,2938 +gradio/utils.py,sha256=hz1tJF_tidrya1Ri70GDJXq1VE_SPac4eic-xzrTirE,32756 +gradio/version.txt,sha256=RWICuvjcWRyXCa9mNCXD1aZgdFOswprBMkMzx6SUpwU,6 diff --git a/gtm/lib/python3.12/site-packages/gradio-3.14.0.dist-info/REQUESTED b/gtm/lib/python3.12/site-packages/gradio-3.14.0.dist-info/REQUESTED new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/gtm/lib/python3.12/site-packages/gradio-3.14.0.dist-info/WHEEL b/gtm/lib/python3.12/site-packages/gradio-3.14.0.dist-info/WHEEL new file mode 100644 index 0000000000000000000000000000000000000000..6d803659b75f74a2396884b98634329099146ede --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio-3.14.0.dist-info/WHEEL @@ -0,0 +1,4 @@ +Wheel-Version: 1.0 +Generator: hatchling 1.11.1 +Root-Is-Purelib: true +Tag: py3-none-any diff --git a/gtm/lib/python3.12/site-packages/gradio-3.14.0.dist-info/entry_points.txt b/gtm/lib/python3.12/site-packages/gradio-3.14.0.dist-info/entry_points.txt new file mode 100644 index 0000000000000000000000000000000000000000..9e9daa4065f5038bfad6237932a56a6eb331c22f --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio-3.14.0.dist-info/entry_points.txt @@ -0,0 +1,2 @@ +[console_scripts] +gradio = gradio.reload:run_in_reload_mode diff --git a/gtm/lib/python3.12/site-packages/gradio-3.14.0.dist-info/licenses/LICENSE b/gtm/lib/python3.12/site-packages/gradio-3.14.0.dist-info/licenses/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio-3.14.0.dist-info/licenses/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/gtm/lib/python3.12/site-packages/gradio/__init__.py b/gtm/lib/python3.12/site-packages/gradio/__init__.py index b9ff55429c20b703099c85337e53cc212a23a90c..e29d0911c648fd9f339a885ee29ab846fd685f02 100644 --- a/gtm/lib/python3.12/site-packages/gradio/__init__.py +++ b/gtm/lib/python3.12/site-packages/gradio/__init__.py @@ -1,5 +1,84 @@ -from gradio.interface import * # This makes it possible to import `Interface` as `gradio.Interface`. -import pkg_resources +import pkgutil -current_pkg_version = pkg_resources.require("gradio")[0].version -__version__ = current_pkg_version \ No newline at end of file +import gradio.components as components +import gradio.inputs as inputs +import gradio.outputs as outputs +import gradio.processing_utils +import gradio.templates +from gradio.blocks import Blocks, skip, update +from gradio.components import ( + HTML, + JSON, + Audio, + Button, + Carousel, + Chatbot, + Checkbox, + Checkboxgroup, + CheckboxGroup, + ColorPicker, + DataFrame, + Dataframe, + Dataset, + Dropdown, + File, + Gallery, + Highlight, + Highlightedtext, + HighlightedText, + Image, + Interpretation, + Json, + Label, + Markdown, + Model3D, + Number, + Plot, + Radio, + ScatterPlot, + Slider, + State, + StatusTracker, + Text, + Textbox, + TimeSeries, + Timeseries, + UploadButton, + Variable, + Video, + component, +) +from gradio.examples import create_examples as Examples +from gradio.exceptions import Error +from gradio.flagging import ( + CSVLogger, + FlaggingCallback, + HuggingFaceDatasetJSONSaver, + HuggingFaceDatasetSaver, + SimpleCSVLogger, +) +from gradio.interface import Interface, TabbedInterface, close_all +from gradio.ipython_ext import load_ipython_extension +from gradio.layouts import Accordion, Box, Column, Group, Row, Tab, TabItem, Tabs +from gradio.mix import Parallel, Series +from gradio.routes import Request, mount_gradio_app +from gradio.templates import ( + Files, + ImageMask, + ImagePaint, + List, + Matrix, + Mic, + Microphone, + Numpy, + Paint, + Pil, + PlayableVideo, + Sketchpad, + TextArea, + Webcam, +) +from gradio.utils import make_waveform + +current_pkg_version = pkgutil.get_data(__name__, "version.txt").decode("ascii").strip() +__version__ = current_pkg_version diff --git a/gtm/lib/python3.12/site-packages/gradio/__pycache__/__init__.cpython-312.pyc b/gtm/lib/python3.12/site-packages/gradio/__pycache__/__init__.cpython-312.pyc index 0044d28b41af229bb3c00a52a13774db578c9cd8..fa41ac54a19d84dac85c6e05a7a0ae92c77026d1 100644 Binary files a/gtm/lib/python3.12/site-packages/gradio/__pycache__/__init__.cpython-312.pyc and b/gtm/lib/python3.12/site-packages/gradio/__pycache__/__init__.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/gradio/__pycache__/blocks.cpython-312.pyc b/gtm/lib/python3.12/site-packages/gradio/__pycache__/blocks.cpython-312.pyc index f0a79be2d3765de1b14f3e781985bba398b2fe5b..200316754adb131c06a4322cf269bb452e267c04 100644 Binary files a/gtm/lib/python3.12/site-packages/gradio/__pycache__/blocks.cpython-312.pyc and b/gtm/lib/python3.12/site-packages/gradio/__pycache__/blocks.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/gradio/__pycache__/components.cpython-312.pyc b/gtm/lib/python3.12/site-packages/gradio/__pycache__/components.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..930f5d18c8130a73f286bcf51394c6f6f931f057 Binary files /dev/null and b/gtm/lib/python3.12/site-packages/gradio/__pycache__/components.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/gradio/__pycache__/context.cpython-312.pyc b/gtm/lib/python3.12/site-packages/gradio/__pycache__/context.cpython-312.pyc index 54d988b593fb658ba7a2635bd86bf1d713bec551..f31a593d47b785929b11d7c67b4264dc0732c78f 100644 Binary files a/gtm/lib/python3.12/site-packages/gradio/__pycache__/context.cpython-312.pyc and b/gtm/lib/python3.12/site-packages/gradio/__pycache__/context.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/gradio/__pycache__/dataclasses.cpython-312.pyc b/gtm/lib/python3.12/site-packages/gradio/__pycache__/dataclasses.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4e279c65480c95c21f9683734f375c39c92733a9 Binary files /dev/null and b/gtm/lib/python3.12/site-packages/gradio/__pycache__/dataclasses.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/gradio/__pycache__/deprecation.cpython-312.pyc b/gtm/lib/python3.12/site-packages/gradio/__pycache__/deprecation.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a3cecf62922e49524de3d2b297e6409213233717 Binary files /dev/null and b/gtm/lib/python3.12/site-packages/gradio/__pycache__/deprecation.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/gradio/__pycache__/documentation.cpython-312.pyc b/gtm/lib/python3.12/site-packages/gradio/__pycache__/documentation.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..98235e4a0a254aeaee9a494d1dc2b5b8bb6bd3d9 Binary files /dev/null and b/gtm/lib/python3.12/site-packages/gradio/__pycache__/documentation.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/gradio/__pycache__/encryptor.cpython-312.pyc b/gtm/lib/python3.12/site-packages/gradio/__pycache__/encryptor.cpython-312.pyc index 74b4fe383337c2356c6dfeea0a238215dd4471f3..690f1d112199dce2d81a9e65952c4171b90fe65c 100644 Binary files a/gtm/lib/python3.12/site-packages/gradio/__pycache__/encryptor.cpython-312.pyc and b/gtm/lib/python3.12/site-packages/gradio/__pycache__/encryptor.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/gradio/__pycache__/events.cpython-312.pyc b/gtm/lib/python3.12/site-packages/gradio/__pycache__/events.cpython-312.pyc index d35c87b5f59db08cbf59e611d416a3a64b1744ee..a7fb76388043d73ecef8d2fbadb1dc95ac3522b4 100644 Binary files a/gtm/lib/python3.12/site-packages/gradio/__pycache__/events.cpython-312.pyc and b/gtm/lib/python3.12/site-packages/gradio/__pycache__/events.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/gradio/__pycache__/examples.cpython-312.pyc b/gtm/lib/python3.12/site-packages/gradio/__pycache__/examples.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c65959f49b9408601f824a3f7ecf17ecb0a4e057 Binary files /dev/null and b/gtm/lib/python3.12/site-packages/gradio/__pycache__/examples.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/gradio/__pycache__/exceptions.cpython-312.pyc b/gtm/lib/python3.12/site-packages/gradio/__pycache__/exceptions.cpython-312.pyc index 9570468586fa3e80549b1acda8d9ef80d108837f..4627b0ec3e9d9464c4c9d14c75882e68e0adc019 100644 Binary files a/gtm/lib/python3.12/site-packages/gradio/__pycache__/exceptions.cpython-312.pyc and b/gtm/lib/python3.12/site-packages/gradio/__pycache__/exceptions.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/gradio/__pycache__/external.cpython-312.pyc b/gtm/lib/python3.12/site-packages/gradio/__pycache__/external.cpython-312.pyc index b9bb985832cefa47459c3ed2a07fee969742d4b0..d55530f50809bcc58ebb86367a11f3b5c72b35cb 100644 Binary files a/gtm/lib/python3.12/site-packages/gradio/__pycache__/external.cpython-312.pyc and b/gtm/lib/python3.12/site-packages/gradio/__pycache__/external.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/gradio/__pycache__/external_utils.cpython-312.pyc b/gtm/lib/python3.12/site-packages/gradio/__pycache__/external_utils.cpython-312.pyc index 171e2dd9c430241f116b04a3015f41bc025bc619..39470c0465fda82b26e4d9f0693d6f42a1318835 100644 Binary files a/gtm/lib/python3.12/site-packages/gradio/__pycache__/external_utils.cpython-312.pyc and b/gtm/lib/python3.12/site-packages/gradio/__pycache__/external_utils.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/gradio/__pycache__/flagging.cpython-312.pyc b/gtm/lib/python3.12/site-packages/gradio/__pycache__/flagging.cpython-312.pyc index 9c3cc73d70fc4ae54d8877a9a210dc0f8b61ecdb..47adcc7de222dcf9a65663882399c17811154148 100644 Binary files a/gtm/lib/python3.12/site-packages/gradio/__pycache__/flagging.cpython-312.pyc and b/gtm/lib/python3.12/site-packages/gradio/__pycache__/flagging.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/gradio/__pycache__/inputs.cpython-312.pyc b/gtm/lib/python3.12/site-packages/gradio/__pycache__/inputs.cpython-312.pyc index 6d98c82863189e7b1d7d9cffa48cc499cb399876..09b1fc9fd67e3a82b264be8dea5186e247a5be5c 100644 Binary files a/gtm/lib/python3.12/site-packages/gradio/__pycache__/inputs.cpython-312.pyc and b/gtm/lib/python3.12/site-packages/gradio/__pycache__/inputs.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/gradio/__pycache__/interface.cpython-312.pyc b/gtm/lib/python3.12/site-packages/gradio/__pycache__/interface.cpython-312.pyc index 93ae4f288cf9f2788bb29e17423af4f31fe1298f..0b0336305a23e7bd7fa3c87f49e2fcc6f618374a 100644 Binary files a/gtm/lib/python3.12/site-packages/gradio/__pycache__/interface.cpython-312.pyc and b/gtm/lib/python3.12/site-packages/gradio/__pycache__/interface.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/gradio/__pycache__/interpretation.cpython-312.pyc b/gtm/lib/python3.12/site-packages/gradio/__pycache__/interpretation.cpython-312.pyc index f30fb83b0f16ca9aa2791d543695ece755a7cbd6..c40e0b349be0c2300ab7d26e8cf861570d6a3a67 100644 Binary files a/gtm/lib/python3.12/site-packages/gradio/__pycache__/interpretation.cpython-312.pyc and b/gtm/lib/python3.12/site-packages/gradio/__pycache__/interpretation.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/gradio/__pycache__/ipython_ext.cpython-312.pyc b/gtm/lib/python3.12/site-packages/gradio/__pycache__/ipython_ext.cpython-312.pyc index f58ef292496a18dd4e109c4c90a8442ae3ed4379..33a78c70e79dfc08f464e175b9cb380011cc6fc0 100644 Binary files a/gtm/lib/python3.12/site-packages/gradio/__pycache__/ipython_ext.cpython-312.pyc and b/gtm/lib/python3.12/site-packages/gradio/__pycache__/ipython_ext.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/gradio/__pycache__/layouts.cpython-312.pyc b/gtm/lib/python3.12/site-packages/gradio/__pycache__/layouts.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0c5cb8bcc1f29ad1f67173fd7c1c7ac4bedd01c9 Binary files /dev/null and b/gtm/lib/python3.12/site-packages/gradio/__pycache__/layouts.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/gradio/__pycache__/media_data.cpython-312.pyc b/gtm/lib/python3.12/site-packages/gradio/__pycache__/media_data.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9beec538a3a98cd14e652b5db3ef69226767e4bb Binary files /dev/null and b/gtm/lib/python3.12/site-packages/gradio/__pycache__/media_data.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/gradio/__pycache__/mix.cpython-312.pyc b/gtm/lib/python3.12/site-packages/gradio/__pycache__/mix.cpython-312.pyc index eee7e93e6bf08948499db12c1e1fb8210028a9fd..79a74f9c8c1e084a086375d73e84d5263346ee1a 100644 Binary files a/gtm/lib/python3.12/site-packages/gradio/__pycache__/mix.cpython-312.pyc and b/gtm/lib/python3.12/site-packages/gradio/__pycache__/mix.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/gradio/__pycache__/networking.cpython-312.pyc b/gtm/lib/python3.12/site-packages/gradio/__pycache__/networking.cpython-312.pyc index 28bdc79540968a157457471a1ea2a3bfc71c4ee9..e7c0bd6d4acf6d68178a2d926a44f5004096900e 100644 Binary files a/gtm/lib/python3.12/site-packages/gradio/__pycache__/networking.cpython-312.pyc and b/gtm/lib/python3.12/site-packages/gradio/__pycache__/networking.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/gradio/__pycache__/outputs.cpython-312.pyc b/gtm/lib/python3.12/site-packages/gradio/__pycache__/outputs.cpython-312.pyc index 4e0d86525f4d74aa842c0e33390396a7a989632c..d196734b575361ac197f4378121187087ba1b245 100644 Binary files a/gtm/lib/python3.12/site-packages/gradio/__pycache__/outputs.cpython-312.pyc and b/gtm/lib/python3.12/site-packages/gradio/__pycache__/outputs.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/gradio/__pycache__/pipelines.cpython-312.pyc b/gtm/lib/python3.12/site-packages/gradio/__pycache__/pipelines.cpython-312.pyc index d4f3bd431ec96aa4ab582567a4890e387a9c9cd4..d8af41226f2c30e5a283acc8010284737bf6e89b 100644 Binary files a/gtm/lib/python3.12/site-packages/gradio/__pycache__/pipelines.cpython-312.pyc and b/gtm/lib/python3.12/site-packages/gradio/__pycache__/pipelines.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/gradio/__pycache__/processing_utils.cpython-312.pyc b/gtm/lib/python3.12/site-packages/gradio/__pycache__/processing_utils.cpython-312.pyc index 5094effcf328e5c0b43369d8ba389ce49160e49a..de4be271605dbd127a072f8325a5b6370b2f67d0 100644 Binary files a/gtm/lib/python3.12/site-packages/gradio/__pycache__/processing_utils.cpython-312.pyc and b/gtm/lib/python3.12/site-packages/gradio/__pycache__/processing_utils.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/gradio/__pycache__/queue.cpython-312.pyc b/gtm/lib/python3.12/site-packages/gradio/__pycache__/queue.cpython-312.pyc index abae9510d94243288eaf24d33d55953077c4d1f4..14be8ed3267e5c7cf636226ecf7e9d47335ea3a9 100644 Binary files a/gtm/lib/python3.12/site-packages/gradio/__pycache__/queue.cpython-312.pyc and b/gtm/lib/python3.12/site-packages/gradio/__pycache__/queue.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/gradio/__pycache__/reload.cpython-312.pyc b/gtm/lib/python3.12/site-packages/gradio/__pycache__/reload.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..33bf880b01c0969c0d15ac6255724da879e05fff Binary files /dev/null and b/gtm/lib/python3.12/site-packages/gradio/__pycache__/reload.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/gradio/__pycache__/routes.cpython-312.pyc b/gtm/lib/python3.12/site-packages/gradio/__pycache__/routes.cpython-312.pyc index 8749e913d7ed6c01c7dde7d80b6ef9d84f4b3517..c786783ac82ce775ac0d1e0ca017c593187124ca 100644 Binary files a/gtm/lib/python3.12/site-packages/gradio/__pycache__/routes.cpython-312.pyc and b/gtm/lib/python3.12/site-packages/gradio/__pycache__/routes.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/gradio/__pycache__/serializing.cpython-312.pyc b/gtm/lib/python3.12/site-packages/gradio/__pycache__/serializing.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..94703a30e71def076b45bc4394b23f3853d64f52 Binary files /dev/null and b/gtm/lib/python3.12/site-packages/gradio/__pycache__/serializing.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/gradio/__pycache__/strings.cpython-312.pyc b/gtm/lib/python3.12/site-packages/gradio/__pycache__/strings.cpython-312.pyc index 931e5a1a56e7cb872273505fc44e571ab11e97d7..6ef8b536ef87f75237dedd843833172dbacd7fbf 100644 Binary files a/gtm/lib/python3.12/site-packages/gradio/__pycache__/strings.cpython-312.pyc and b/gtm/lib/python3.12/site-packages/gradio/__pycache__/strings.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/gradio/__pycache__/templates.cpython-312.pyc b/gtm/lib/python3.12/site-packages/gradio/__pycache__/templates.cpython-312.pyc index db00c9b7bd200493a3a9659517dc539301629c82..37ccf174be09fc64b49fce19f5c2a36a6aaa7490 100644 Binary files a/gtm/lib/python3.12/site-packages/gradio/__pycache__/templates.cpython-312.pyc and b/gtm/lib/python3.12/site-packages/gradio/__pycache__/templates.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/gradio/__pycache__/tunneling.cpython-312.pyc b/gtm/lib/python3.12/site-packages/gradio/__pycache__/tunneling.cpython-312.pyc index 302744adfaa22ac356d8b09e7287b691e2f004be..cc8ac17b368ac92602fb73bf749ae81c98a64249 100644 Binary files a/gtm/lib/python3.12/site-packages/gradio/__pycache__/tunneling.cpython-312.pyc and b/gtm/lib/python3.12/site-packages/gradio/__pycache__/tunneling.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/gradio/__pycache__/utils.cpython-312.pyc b/gtm/lib/python3.12/site-packages/gradio/__pycache__/utils.cpython-312.pyc index 10c8b22bcc0bc38f4a41af6b96b5e5d3c839f0b8..68246484148c8888370c8521a34d6c33292024ef 100644 Binary files a/gtm/lib/python3.12/site-packages/gradio/__pycache__/utils.cpython-312.pyc and b/gtm/lib/python3.12/site-packages/gradio/__pycache__/utils.cpython-312.pyc differ diff --git a/gtm/lib/python3.12/site-packages/gradio/blocks.py b/gtm/lib/python3.12/site-packages/gradio/blocks.py index 72e70122846502914e846c7f0b1c5eff9a196986..4c7cd20b698839ac5005e994964f5bf394eb324f 100644 --- a/gtm/lib/python3.12/site-packages/gradio/blocks.py +++ b/gtm/lib/python3.12/site-packages/gradio/blocks.py @@ -1,152 +1,90 @@ from __future__ import annotations import copy -import hashlib +import getpass import inspect import json import os +import pkgutil import random -import secrets -import string import sys -import threading import time +import typing import warnings import webbrowser -from collections import defaultdict -from pathlib import Path from types import ModuleType -from typing import TYPE_CHECKING, Any, AsyncIterator, Callable, Literal, Sequence, cast -from urllib.parse import urlparse, urlunparse +from typing import ( + TYPE_CHECKING, + Any, + AnyStr, + Callable, + Dict, + Iterator, + List, + Optional, + Set, + Tuple, +) import anyio -import fastapi -import httpx +import requests from anyio import CapacityLimiter -from gradio_client import utils as client_utils -from gradio_client.documentation import document from gradio import ( - analytics, components, + encryptor, + external, networking, - processing_utils, - queueing, + queue, routes, strings, - themes, utils, - wasm_utils, ) -from gradio.blocks_events import BlocksEvents, BlocksMeta from gradio.context import Context -from gradio.data_classes import FileData, GradioModel, GradioRootModel -from gradio.events import ( - EventData, - EventListener, - EventListenerMethod, -) -from gradio.exceptions import ( - DuplicateBlockError, - InvalidApiNameError, - InvalidBlockError, - InvalidComponentError, -) -from gradio.helpers import create_tracker, skip, special_args -from gradio.state_holder import SessionState -from gradio.themes import Default as DefaultTheme -from gradio.themes import ThemeClass as Theme -from gradio.tunneling import ( - BINARY_FILENAME, - BINARY_FOLDER, - BINARY_PATH, - BINARY_URL, - CURRENT_TUNNELS, -) +from gradio.deprecation import check_deprecated_parameters +from gradio.documentation import document, set_documentation_group +from gradio.exceptions import DuplicateBlockError, InvalidApiName +from gradio.tunneling import CURRENT_TUNNELS from gradio.utils import ( TupleNoPrint, check_function_inputs_match, component_or_layout_class, + delete_none, get_cancel_function, get_continuous_fn, - get_package_version, - get_upload_folder, ) -try: - import spaces # type: ignore -except Exception: - spaces = None +set_documentation_group("blocks") if TYPE_CHECKING: # Only import for type checking (is False at runtime). + import comet_ml + import mlflow + import wandb from fastapi.applications import FastAPI - from gradio.components.base import Component - -BUILT_IN_THEMES: dict[str, Theme] = { - t.name: t - for t in [ - themes.Base(), - themes.Default(), - themes.Monochrome(), - themes.Soft(), - themes.Glass(), - ] -} + from gradio.components import Component, IOComponent class Block: def __init__( self, *, - elem_id: str | None = None, - elem_classes: list[str] | str | None = None, render: bool = True, + elem_id: str | None = None, visible: bool = True, - proxy_url: str | None = None, + root_url: str | None = None, # URL that is prepended to all file paths + **kwargs, ): self._id = Context.id Context.id += 1 self.visible = visible self.elem_id = elem_id - self.elem_classes = ( - [elem_classes] if isinstance(elem_classes, str) else elem_classes - ) - self.proxy_url = proxy_url - self.share_token = secrets.token_urlsafe(32) - self.parent: BlockContext | None = None - self.is_rendered: bool = False - self._constructor_args: list[dict] - self.state_session_capacity = 10000 - self.temp_files: set[str] = set() - self.GRADIO_CACHE = get_upload_folder() - # Keep tracks of files that should not be deleted when the delete_cache parmaeter is set - # These files are the default value of the component and files that are used in examples - self.keep_in_cache = set() - + self.root_url = root_url + self._style = {} if render: self.render() - - @property - def skip_api(self): - return False - - @property - def constructor_args(self) -> dict[str, Any]: - """Get the arguments passed to the component's initializer. - - Only set classes whose metaclass is ComponentMeta - """ - # the _constructor_args list is appended based on the mro of the class - # so the first entry is for the bottom of the hierarchy - return self._constructor_args[0] if self._constructor_args else {} - - @property - def events( - self, - ) -> list[EventListener]: - return getattr(self, "EVENTS", []) + check_deprecated_parameters(self.__class__.__name__, **kwargs) def render(self): """ @@ -160,8 +98,7 @@ class Block: Context.block.add(self) if Context.root_block is not None: Context.root_block.blocks[self._id] = self - self.is_rendered = True - if isinstance(self, components.Component): + if isinstance(self, components.TempFileManager): Context.root_block.temp_file_sets.append(self.temp_files) return self @@ -178,7 +115,6 @@ class Block: if Context.root_block is not None: try: del Context.root_block.blocks[self._id] - self.is_rendered = False except KeyError: pass return self @@ -197,157 +133,149 @@ class Block: else self.__class__.__name__.lower() ) - def get_expected_parent(self) -> type[BlockContext] | None: - return None - - def get_config(self): - config = {} - signature = inspect.signature(self.__class__.__init__) - for parameter in signature.parameters.values(): - if hasattr(self, parameter.name): - value = getattr(self, parameter.name) - config[parameter.name] = utils.convert_to_dict_if_dataclass(value) - for e in self.events: - to_add = e.config_data() - if to_add: - config = {**to_add, **config} - config.pop("render", None) - config = {**config, "proxy_url": self.proxy_url, "name": self.get_block_name()} - if (_selectable := getattr(self, "_selectable", None)) is not None: - config["_selectable"] = _selectable - return config - - @classmethod - def recover_kwargs( - cls, props: dict[str, Any], additional_keys: list[str] | None = None - ): - """ - Recovers kwargs from a dict of props. + def set_event_trigger( + self, + event_name: str, + fn: Callable | None, + inputs: Component | List[Component] | Set[Component] | None, + outputs: Component | List[Component] | None, + preprocess: bool = True, + postprocess: bool = True, + scroll_to_output: bool = False, + show_progress: bool = True, + api_name: AnyStr | None = None, + js: str | None = None, + no_target: bool = False, + queue: bool | None = None, + batch: bool = False, + max_batch_size: int = 4, + cancels: List[int] | None = None, + every: float | None = None, + ) -> Dict[str, Any]: """ - additional_keys = additional_keys or [] - signature = inspect.signature(cls.__init__) - kwargs = {} - for parameter in signature.parameters.values(): - if parameter.name in props and parameter.name not in additional_keys: - kwargs[parameter.name] = props[parameter.name] - return kwargs - - def move_resource_to_block_cache( - self, url_or_file_path: str | Path | None - ) -> str | None: - """Moves a file or downloads a file from a url to a block's cache directory, adds - to to the block's temp_files, and returns the path to the file in cache. This - ensures that the file is accessible to the Block and can be served to users. - - Note: this method is not used in any core Gradio components, but is kept here - for backwards compatibility with custom components created with gradio<=4.20.0. + Adds an event to the component's dependencies. + Parameters: + event_name: event name + fn: Callable function + inputs: input list + outputs: output list + preprocess: whether to run the preprocess methods of components + postprocess: whether to run the postprocess methods of components + scroll_to_output: whether to scroll to output of dependency on trigger + show_progress: whether to show progress animation while running. + api_name: Defining this parameter exposes the endpoint in the api docs + js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs' and 'outputs', return should be a list of values for output components + no_target: if True, sets "targets" to [], used for Blocks "load" event + batch: whether this function takes in a batch of inputs + max_batch_size: the maximum batch size to send to the function + cancels: a list of other events to cancel when this event is triggered. For example, setting cancels=[click_event] will cancel the click_event, where click_event is the return value of another components .click method. + Returns: None """ - if url_or_file_path is None: - return None - if isinstance(url_or_file_path, Path): - url_or_file_path = str(url_or_file_path) - - if client_utils.is_http_url_like(url_or_file_path): - temp_file_path = processing_utils.save_url_to_cache( - url_or_file_path, cache_dir=self.GRADIO_CACHE - ) + # Support for singular parameter + if isinstance(inputs, set): + inputs_as_dict = True + inputs = sorted(inputs, key=lambda x: x._id) + else: + inputs_as_dict = False + if inputs is None: + inputs = [] + elif not isinstance(inputs, list): + inputs = [inputs] - self.temp_files.add(temp_file_path) + if isinstance(outputs, set): + outputs = sorted(outputs, key=lambda x: x._id) else: - url_or_file_path = str(utils.abspath(url_or_file_path)) - if not utils.is_in_or_equal(url_or_file_path, self.GRADIO_CACHE): - try: - temp_file_path = processing_utils.save_file_to_cache( - url_or_file_path, cache_dir=self.GRADIO_CACHE - ) - except FileNotFoundError: - # This can happen if when using gr.load() and the file is on a remote Space - # but the file is not the `value` of the component. For example, if the file - # is the `avatar_image` of the `Chatbot` component. In this case, we skip - # copying the file to the cache and just use the remote file path. - return url_or_file_path - else: - temp_file_path = url_or_file_path - self.temp_files.add(temp_file_path) + if outputs is None: + outputs = [] + elif not isinstance(outputs, list): + outputs = [outputs] + + if fn is not None and not cancels: + check_function_inputs_match(fn, inputs, inputs_as_dict) + + if Context.root_block is None: + raise AttributeError( + f"{event_name}() and other events can only be called within a Blocks context." + ) + if every is not None and every <= 0: + raise ValueError("Parameter every must be positive or None") + if every and batch: + raise ValueError( + f"Cannot run {event_name} event in a batch and every {every} seconds. " + "Either batch is True or every is non-zero but not both." + ) - return temp_file_path + if every: + fn = get_continuous_fn(fn, every) - def serve_static_file(self, url_or_file_path: str | Path | None) -> dict | None: - """If a file is a local file, moves it to the block's cache directory and returns - a FileData-type dictionary corresponding to the file. If the file is a URL, returns a - FileData-type dictionary corresponding to the URL. This ensures that the file is - accessible in the frontend and can be served to users. + Context.root_block.fns.append( + BlockFunction(fn, inputs, outputs, preprocess, postprocess, inputs_as_dict) + ) + if api_name is not None: + api_name_ = utils.append_unique_suffix( + api_name, [dep["api_name"] for dep in Context.root_block.dependencies] + ) + if not (api_name == api_name_): + warnings.warn( + "api_name {} already exists, using {}".format(api_name, api_name_) + ) + api_name = api_name_ - Examples: - >>> block.serve_static_file("https://gradio.app/logo.png") -> {"path": "https://gradio.app/logo.png", "url": "https://gradio.app/logo.png"} - >>> block.serve_static_file("logo.png") -> {"path": "logo.png", "url": "/file=logo.png"} - """ - if url_or_file_path is None: - return None - if isinstance(url_or_file_path, Path): - url_or_file_path = str(url_or_file_path) + dependency = { + "targets": [self._id] if not no_target else [], + "trigger": event_name, + "inputs": [block._id for block in inputs], + "outputs": [block._id for block in outputs], + "backend_fn": fn is not None, + "js": js, + "queue": False if fn is None else queue, + "api_name": api_name, + "scroll_to_output": scroll_to_output, + "show_progress": show_progress, + "every": every, + "batch": batch, + "max_batch_size": max_batch_size, + "cancels": cancels or [], + } + Context.root_block.dependencies.append(dependency) + return dependency - if client_utils.is_http_url_like(url_or_file_path): - return FileData(path=url_or_file_path, url=url_or_file_path).model_dump() - else: - data = {"path": url_or_file_path} - try: - return processing_utils.move_files_to_cache(data, self) - except AttributeError: # Can be raised if this function is called before the Block is fully initialized. - return data + def get_config(self): + return { + "visible": self.visible, + "elem_id": self.elem_id, + "style": self._style, + "root_url": self.root_url, + } + + @classmethod + def get_specific_update(cls, generic_update): + del generic_update["__type__"] + generic_update = cls.update(**generic_update) + return generic_update class BlockContext(Block): def __init__( self, - elem_id: str | None = None, - elem_classes: list[str] | str | None = None, visible: bool = True, render: bool = True, + **kwargs, ): """ Parameters: - elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. - elem_classes: An optional string or list of strings that are assigned as the class of this component in the HTML DOM. Can be used for targeting CSS styles. visible: If False, this will be hidden but included in the Blocks config file (its visibility can later be updated). render: If False, this will not be included in the Blocks config file at all. """ - self.children: list[Block] = [] - Block.__init__( - self, - elem_id=elem_id, - elem_classes=elem_classes, - visible=visible, - render=render, - ) - - TEMPLATE_DIR = "./templates/" - FRONTEND_DIR = "../../frontend/" - - @property - def skip_api(self): - return True - - @classmethod - def get_component_class_id(cls) -> str: - module_name = cls.__module__ - module_path = sys.modules[module_name].__file__ - module_hash = hashlib.md5(f"{cls.__name__}_{module_path}".encode()).hexdigest() - return module_hash - - @property - def component_class_id(self): - return self.get_component_class_id() - - def add_child(self, child: Block): - self.children.append(child) + self.children = [] + super().__init__(visible=visible, render=render, **kwargs) def __enter__(self): self.parent = Context.block Context.block = self return self - def add(self, child: Block): + def add(self, child): child.parent = self self.children.append(child) @@ -355,7 +283,7 @@ class BlockContext(Block): children = [] pseudo_parent = None for child in self.children: - expected_parent = child.get_expected_parent() + expected_parent = getattr(child.__class__, "expected_parent", False) if not expected_parent or isinstance(self, expected_parent): pseudo_parent = None children.append(child) @@ -363,23 +291,19 @@ class BlockContext(Block): if pseudo_parent is not None and isinstance( pseudo_parent, expected_parent ): - pseudo_parent.add_child(child) + pseudo_parent.children.append(child) else: pseudo_parent = expected_parent(render=False) - pseudo_parent.parent = self children.append(pseudo_parent) - pseudo_parent.add_child(child) - if Context.root_block: - Context.root_block.blocks[pseudo_parent._id] = pseudo_parent + pseudo_parent.children = [child] + Context.root_block.blocks[pseudo_parent._id] = pseudo_parent child.parent = pseudo_parent self.children = children - def __exit__(self, exc_type: type[BaseException] | None = None, *args): - Context.block = self.parent - if exc_type is not None: - return + def __exit__(self, *args): if getattr(self, "allow_expected_parents", True): self.fill_expected_parents() + Context.block = self.parent def postprocess(self, y): """ @@ -391,45 +315,28 @@ class BlockContext(Block): class BlockFunction: def __init__( self, - fn: Callable | None, - inputs: list[Component], - outputs: list[Component], + fn: Optional[Callable], + inputs: List[Component], + outputs: List[Component], preprocess: bool, postprocess: bool, inputs_as_dict: bool, - batch: bool = False, - max_batch_size: int = 4, - concurrency_limit: int | None | Literal["default"] = "default", - concurrency_id: str | None = None, - tracks_progress: bool = False, ): self.fn = fn self.inputs = inputs self.outputs = outputs self.preprocess = preprocess self.postprocess = postprocess - self.tracks_progress = tracks_progress - self.concurrency_limit: int | None | Literal["default"] = concurrency_limit - self.concurrency_id = concurrency_id or str(id(fn)) - self.batch = batch - self.max_batch_size = max_batch_size self.total_runtime = 0 self.total_runs = 0 self.inputs_as_dict = inputs_as_dict - self.name = getattr(fn, "__name__", "fn") if fn is not None else None - self.spaces_auto_wrap() - - def spaces_auto_wrap(self): - if spaces is None: - return - if utils.get_space() is None: - return - self.fn = spaces.gradio_auto_wrap(self.fn) def __str__(self): return str( { - "fn": self.name, + "fn": getattr(self.fn, "__name__", "fn") + if self.fn is not None + else None, "preprocess": self.preprocess, "postprocess": self.postprocess, } @@ -439,41 +346,88 @@ class BlockFunction: return str(self) -def postprocess_update_dict( - block: Component | BlockContext, update_dict: dict, postprocess: bool = True -): +class class_or_instancemethod(classmethod): + def __get__(self, instance, type_): + descr_get = super().__get__ if instance is None else self.__func__.__get__ + return descr_get(instance, type_) + + +@document() +def update(**kwargs) -> dict: """ - Converts a dictionary of updates into a format that can be sent to the frontend to update the component. - E.g. {"value": "2", "visible": True, "invalid_arg": "hello"} - Into -> {"__type__": "update", "value": 2.0, "visible": True} + Updates component properties. + This is a shorthand for using the update method on a component. + For example, rather than using gr.Number.update(...) you can just use gr.update(...). + Note that your editor's autocompletion will suggest proper parameters + if you use the update method on the component. + + Demos: blocks_essay, blocks_update, blocks_essay_update + + Parameters: + kwargs: Key-word arguments used to update the component's properties. + Example: + # Blocks Example + import gradio as gr + with gr.Blocks() as demo: + radio = gr.Radio([1, 2, 4], label="Set the value of the number") + number = gr.Number(value=2, interactive=True) + radio.change(fn=lambda value: gr.update(value=value), inputs=radio, outputs=number) + demo.launch() + # Interface example + import gradio as gr + def change_textbox(choice): + if choice == "short": + return gr.Textbox.update(lines=2, visible=True) + elif choice == "long": + return gr.Textbox.update(lines=8, visible=True) + else: + return gr.Textbox.update(visible=False) + gr.Interface( + change_textbox, + gr.Radio( + ["short", "long", "none"], label="What kind of essay would you like to write?" + ), + gr.Textbox(lines=2), + live=True, + ).launch() + """ + kwargs["__type__"] = "generic_update" + return kwargs + + +def skip() -> dict: + return update() + + +def postprocess_update_dict(block: Block, update_dict: Dict, postprocess: bool = True): + """ + Converts a dictionary of updates into a format that can be sent to the frontend. + E.g. {"__type__": "generic_update", "value": "2", "interactive": False} + Into -> {"__type__": "update", "value": 2.0, "mode": "static"} + Parameters: block: The Block that is being updated with this update dictionary. update_dict: The original update dictionary postprocess: Whether to postprocess the "value" key of the update dictionary. """ - value = update_dict.pop("value", components._Keywords.NO_VALUE) - update_dict = {k: getattr(block, k) for k in update_dict if hasattr(block, k)} - if value is not components._Keywords.NO_VALUE: - if postprocess: - update_dict["value"] = block.postprocess(value) - if isinstance(update_dict["value"], (GradioModel, GradioRootModel)): - update_dict["value"] = update_dict["value"].model_dump() - else: - update_dict["value"] = value - update_dict["__type__"] = "update" - return update_dict + if update_dict.get("__type__", "") == "generic_update": + update_dict = block.get_specific_update(update_dict) + if update_dict.get("value") is components._Keywords.NO_VALUE: + update_dict.pop("value") + prediction_value = delete_none(update_dict, skip_value=True) + if "value" in prediction_value and postprocess: + prediction_value["value"] = block.postprocess(prediction_value["value"]) + return prediction_value -def convert_component_dict_to_list( - outputs_ids: list[int], predictions: dict -) -> list | dict: +def convert_component_dict_to_list(outputs_ids: List[int], predictions: Dict) -> List: """ Converts a dictionary of component updates into a list of updates in the order of - the outputs_ids and including every output component. Leaves other types of dictionaries unchanged. + the outputs_ids and including every output component. E.g. {"textbox": "hello", "number": {"__type__": "generic_update", "value": "2"}} Into -> ["hello", {"__type__": "generic_update"}, {"__type__": "generic_update", "value": "2"}] """ - keys_are_blocks = [isinstance(key, Block) for key in predictions] + keys_are_blocks = [isinstance(key, Block) for key in predictions.keys()] if all(keys_are_blocks): reordered_predictions = [skip() for _ in outputs_ids] for component, value in predictions.items(): @@ -491,8 +445,25 @@ def convert_component_dict_to_list( return predictions -@document("launch", "queue", "integrate", "load") -class Blocks(BlockContext, BlocksEvents, metaclass=BlocksMeta): +def add_request_to_inputs( + fn: Callable, inputs: List[Any], request: routes.Request | List[routes.Request] +): + """ + Adds the FastAPI Request object to the inputs of a function if the type of the parameter is FastAPI.Request. + """ + param_names = inspect.getfullargspec(fn)[0] + try: + parameter_types = typing.get_type_hints(fn) + for idx, param_name in enumerate(param_names): + if parameter_types.get(param_name, "") == routes.Request: + inputs.insert(idx, request) + except TypeError: # A TypeError is raised if the function is a partial or other rare cases. + pass + return inputs + + +@document("load") +class Blocks(BlockContext): """ Blocks is Gradio's low-level API that allows you to create more custom web applications and demos than Interfaces (yet still entirely in Python). @@ -523,90 +494,53 @@ class Blocks(BlockContext, BlocksEvents, metaclass=BlocksMeta): btn.click(fn=update, inputs=inp, outputs=out) demo.launch() - Demos: blocks_hello, blocks_flipper, blocks_speech_text_sentiment, generate_english_german - Guides: blocks-and-event-listeners, controlling-layout, state-in-blocks, custom-CSS-and-JS, using-blocks-like-functions + Demos: blocks_hello, blocks_flipper, blocks_speech_text_sentiment, generate_english_german, sound_alert + Guides: blocks_and_event_listeners, controlling_layout, state_in_blocks, custom_CSS_and_JS, custom_interpretations_with_blocks, using_blocks_like_functions """ def __init__( self, - theme: Theme | str | None = None, - analytics_enabled: bool | None = None, + theme: str = "default", + analytics_enabled: Optional[bool] = None, mode: str = "blocks", title: str = "Gradio", - css: str | None = None, - js: str | None = None, - head: str | None = None, - fill_height: bool = False, - delete_cache: tuple[int, int] | None = None, + css: Optional[str] = None, **kwargs, ): """ Parameters: - theme: A Theme object or a string representing a theme. If a string, will look for a built-in theme with that name (e.g. "soft" or "default"), or will attempt to load a theme from the Hugging Face Hub (e.g. "gradio/monochrome"). If None, will use the Default theme. - analytics_enabled: Whether to allow basic telemetry. If None, will use GRADIO_ANALYTICS_ENABLED environment variable or default to True. - mode: A human-friendly name for the kind of Blocks or Interface being created. Used internally for analytics. + theme: which theme to use - right now, only "default" is supported. + analytics_enabled: whether to allow basic telemetry. If None, will use GRADIO_ANALYTICS_ENABLED environment variable or default to True. + mode: a human-friendly name for the kind of Blocks interface being created. title: The tab title to display when this is opened in a browser window. - css: Custom css as a string or path to a css file. This css will be included in the demo webpage. - js: Custom js or path to js file to run when demo is first loaded. This javascript will be included in the demo webpage. - head: Custom html to insert into the head of the demo webpage. This can be used to add custom meta tags, scripts, stylesheets, etc. to the page. - fill_height: Whether to vertically expand top-level child components to the height of the window. If True, expansion occurs when the scale value of the child components >= 1. - delete_cache: A tuple corresponding [frequency, age] both expressed in number of seconds. Every `frequency` seconds, the temporary files created by this Blocks instance will be deleted if more than `age` seconds have passed since the file was created. For example, setting this to (86400, 86400) will delete temporary files every day. The cache will be deleted entirely when the server restarts. If None, no cache deletion will occur. + css: custom css or path to custom css file to apply to entire Blocks """ + # Cleanup shared parameters with Interface #TODO: is this part still necessary after Interface with Blocks? self.limiter = None - if theme is None: - theme = DefaultTheme() - elif isinstance(theme, str): - if theme.lower() in BUILT_IN_THEMES: - theme = BUILT_IN_THEMES[theme.lower()] - else: - try: - theme = Theme.from_hub(theme) - except Exception as e: - warnings.warn(f"Cannot load {theme}. Caught Exception: {str(e)}") - theme = DefaultTheme() - if not isinstance(theme, Theme): - warnings.warn("Theme should be a class loaded from gradio.themes") - theme = DefaultTheme() - self.theme: Theme = theme - self.theme_css = theme._get_theme_css() - self.stylesheets = theme._stylesheets + self.save_to = None + self.theme = theme self.encrypt = False self.share = False - self.enable_queue = True + self.enable_queue = None self.max_threads = 40 - self.pending_streams = defaultdict(dict) - self.pending_diff_streams = defaultdict(dict) self.show_error = True - self.head = head - self.fill_height = fill_height - self.delete_cache = delete_cache if css is not None and os.path.exists(css): with open(css) as css_file: self.css = css_file.read() else: self.css = css - if js is not None and os.path.exists(js): - with open(js) as js_file: - self.js = js_file.read() - else: - self.js = js # For analytics_enabled and allow_flagging: (1) first check for # parameter, (2) check for env variable, (3) default to True/"manual" self.analytics_enabled = ( analytics_enabled if analytics_enabled is not None - else analytics.analytics_enabled() + else os.getenv("GRADIO_ANALYTICS_ENABLED", "True") == "True" ) - if self.analytics_enabled: - if not wasm_utils.IS_WASM: - t = threading.Thread(target=analytics.version_check) - t.start() - else: - os.environ["HF_HUB_DISABLE_TELEMETRY"] = "True" + super().__init__(render=False, **kwargs) - self.blocks: dict[int, Component | Block] = {} - self.fns: list[BlockFunction] = [] + self.blocks: Dict[int, Block] = {} + self.fns: List[BlockFunction] = [] self.dependencies = [] self.mode = mode @@ -615,131 +549,76 @@ class Blocks(BlockContext, BlocksEvents, metaclass=BlocksMeta): self.share_url = None self.width = None self.height = None - self.api_open = utils.get_space() is None + self.api_open = True - self.space_id = utils.get_space() + self.ip_address = None + self.is_space = True if os.getenv("SYSTEM") == "spaces" else False self.favicon_path = None self.auth = None - self.dev_mode = bool(os.getenv("GRADIO_WATCH_DIRS", "")) + self.dev_mode = True self.app_id = random.getrandbits(64) - self.upload_file_set = set() - self.temp_file_sets = [self.upload_file_set] + self.temp_file_sets = [] self.title = title - self.show_api = not wasm_utils.IS_WASM - - # Only used when an Interface is loaded from a config - self.predict = None - self.input_components = None - self.output_components = None - self.__name__ = None - self.api_mode = None - - self.progress_tracking = None - self.ssl_verify = True - self.allowed_paths = [] - self.blocked_paths = [] - self.root_path = os.environ.get("GRADIO_ROOT_PATH", "") - self.proxy_urls = set() + self.show_api = True if self.analytics_enabled: - is_custom_theme = not any( - self.theme.to_dict() == built_in_theme.to_dict() - for built_in_theme in BUILT_IN_THEMES.values() - ) + self.ip_address = utils.get_local_ip_address() data = { "mode": self.mode, + "ip_address": self.ip_address, "custom_css": self.css is not None, - "theme": self.theme.name, - "is_custom_theme": is_custom_theme, - "version": get_package_version(), + "theme": self.theme, + "version": pkgutil.get_data(__name__, "version.txt") + .decode("ascii") + .strip(), } - analytics.initiated_analytics(data) - - self.queue() - - def get_component(self, id: int) -> Component | BlockContext: - comp = self.blocks[id] - if not isinstance(comp, (components.Component, BlockContext)): - raise TypeError(f"Block with id {id} is not a Component or BlockContext") - return comp - - @property - def _is_running_in_reload_thread(self): - from gradio.cli.commands.reload import reload_thread - - return getattr(reload_thread, "running_reload", False) + utils.initiated_analytics(data) @classmethod def from_config( - cls, - config: dict, - fns: list[Callable], - proxy_url: str, + cls, config: dict, fns: List[Callable], root_url: str | None = None ) -> Blocks: """ - Factory method that creates a Blocks from a config and list of functions. Used - internally by the gradio.external.load() method. + Factory method that creates a Blocks from a config and list of functions. Parameters: config: a dictionary containing the configuration of the Blocks. fns: a list of functions that are used in the Blocks. Must be in the same order as the dependencies in the config. - proxy_url: an external url to use as a root URL when serving files for components in the Blocks. + root_url: an optional root url to use for the components in the Blocks. Allows serving files from an external URL. """ config = copy.deepcopy(config) components_config = config["components"] - theme = config.get("theme", "default") - original_mapping: dict[int, Block] = {} - proxy_urls = {proxy_url} + original_mapping: Dict[int, Block] = {} def get_block_instance(id: int) -> Block: for block_config in components_config: if block_config["id"] == id: break else: - raise ValueError(f"Cannot find block with id {id}") + raise ValueError("Cannot find block with id {}".format(id)) cls = component_or_layout_class(block_config["type"]) - - # If a Gradio app B is loaded into a Gradio app A, and B itself loads a - # Gradio app C, then the proxy_urls of the components in A need to be the - # URL of C, not B. The else clause below handles this case. - if block_config["props"].get("proxy_url") is None: - block_config["props"]["proxy_url"] = f"{proxy_url}/" - postprocessed_value = block_config["props"].pop("value", None) - - constructor_args = cls.recover_kwargs(block_config["props"]) - block = cls(**constructor_args) - if postprocessed_value is not None: - block.value = postprocessed_value # type: ignore - - block_proxy_url = block_config["props"]["proxy_url"] - block.proxy_url = block_proxy_url - proxy_urls.add(block_proxy_url) - if ( - _selectable := block_config["props"].pop("_selectable", None) - ) is not None: - block._selectable = _selectable # type: ignore - + block_config["props"].pop("type", None) + block_config["props"].pop("name", None) + style = block_config["props"].pop("style", None) + if block_config["props"].get("root_url") is None and root_url: + block_config["props"]["root_url"] = root_url + "/" + block = cls(**block_config["props"]) + if style: + block.style(**style) return block def iterate_over_children(children_list): for child_config in children_list: id = child_config["id"] block = get_block_instance(id) - original_mapping[id] = block children = child_config.get("children") if children is not None: - if not isinstance(block, BlockContext): - raise ValueError( - f"Invalid config, Block with id {id} has children but is not a BlockContext." - ) with block: iterate_over_children(children) - derived_fields = ["types"] - - with Blocks(theme=theme) as blocks: + with Blocks(theme=config["theme"], css=config["theme"]) as blocks: # ID 0 should be the root Blocks component original_mapping[0] = Context.root_block or blocks @@ -750,31 +629,14 @@ class Blocks(BlockContext, BlocksEvents, metaclass=BlocksMeta): # add the event triggers for dependency, fn in zip(config["dependencies"], fns): # We used to add a "fake_event" to the config to cache examples - # without removing it. This was causing bugs in calling gr.load + # without removing it. This was causing bugs in calling gr.Interface.load # We fixed the issue by removing "fake_event" from the config in examples.py # but we still need to skip these events when loading the config to support # older demos - if "trigger" in dependency and dependency["trigger"] == "fake_event": + if dependency["trigger"] == "fake_event": continue - for field in derived_fields: - dependency.pop(field, None) - - # older versions had a separate trigger field, but now it is part of the - # targets field - _targets = dependency.pop("targets") - trigger = dependency.pop("trigger", None) - is_then_event = False - - # This assumes that you cannot combine multiple .then() events in a single - # gr.on() event, which is true for now. If this changes, we will need to - # update this code. - if not isinstance(_targets[0], int) and _targets[0][1] == "then": - if len(_targets) != 1: - raise ValueError( - "This logic assumes that .then() events are not combined with other events in a single gr.on() event" - ) - is_then_event = True - + targets = dependency.pop("targets") + trigger = dependency.pop("trigger") dependency.pop("backend_fn") dependency.pop("documentation", None) dependency["inputs"] = [ @@ -786,48 +648,28 @@ class Blocks(BlockContext, BlocksEvents, metaclass=BlocksMeta): dependency.pop("status_tracker", None) dependency["preprocess"] = False dependency["postprocess"] = False - if is_then_event: - targets = [EventListenerMethod(None, "then")] - dependency["trigger_after"] = dependency.pop("trigger_after") - dependency["trigger_only_on_success"] = dependency.pop( - "trigger_only_on_success" + + for target in targets: + dependency = original_mapping[target].set_event_trigger( + event_name=trigger, fn=fn, **dependency ) - dependency["no_target"] = True - else: - targets = [ - getattr( - original_mapping[ - target if isinstance(target, int) else target[0] - ], - trigger if isinstance(target, int) else target[1], - ) - for target in _targets - ] - targets = [ - EventListenerMethod( - t.__self__ if t.has_trigger else None, - t.event_name, # type: ignore - ) - for t in targets - ] - dependency = blocks.set_event_trigger( - targets=targets, fn=fn, **dependency - )[0] - if first_dependency is None: - first_dependency = dependency + if first_dependency is None: + first_dependency = dependency # Allows some use of Interface-specific methods with loaded Spaces - if first_dependency and Context.root_block: - blocks.predict = [fns[0]] - blocks.input_components = [ - Context.root_block.blocks[i] for i in first_dependency["inputs"] - ] - blocks.output_components = [ - Context.root_block.blocks[o] for o in first_dependency["outputs"] - ] - blocks.__name__ = "Interface" - blocks.api_mode = True - blocks.proxy_urls = proxy_urls + blocks.predict = [fns[0]] + blocks.input_components = [ + Context.root_block.blocks[i] for i in first_dependency["inputs"] + ] + blocks.output_components = [ + Context.root_block.blocks[o] for o in first_dependency["outputs"] + ] + + if config.get("mode", "blocks") == "interface": + blocks.__name__ = "Interface" + blocks.mode = "interface" + blocks.api_mode = True + return blocks def __str__(self): @@ -836,250 +678,51 @@ class Blocks(BlockContext, BlocksEvents, metaclass=BlocksMeta): def __repr__(self): num_backend_fns = len([d for d in self.dependencies if d["backend_fn"]]) repr = f"Gradio Blocks instance: {num_backend_fns} backend functions" - repr += f"\n{'-' * len(repr)}" + repr += "\n" + "-" * len(repr) for d, dependency in enumerate(self.dependencies): if dependency["backend_fn"]: repr += f"\nfn_index={d}" repr += "\n inputs:" for input_id in dependency["inputs"]: block = self.blocks[input_id] - repr += f"\n |-{block}" + repr += "\n |-{}".format(str(block)) repr += "\n outputs:" for output_id in dependency["outputs"]: block = self.blocks[output_id] - repr += f"\n |-{block}" + repr += "\n |-{}".format(str(block)) return repr - @property - def expects_oauth(self): - """Return whether the app expects user to authenticate via OAuth.""" - return any( - isinstance(block, (components.LoginButton, components.LogoutButton)) - for block in self.blocks.values() - ) - - def set_event_trigger( - self, - targets: Sequence[EventListenerMethod], - fn: Callable | None, - inputs: Component | list[Component] | set[Component] | None, - outputs: Component | list[Component] | None, - preprocess: bool = True, - postprocess: bool = True, - scroll_to_output: bool = False, - show_progress: Literal["full", "minimal", "hidden"] = "full", - api_name: str | None | Literal[False] = None, - js: str | None = None, - no_target: bool = False, - queue: bool | None = None, - batch: bool = False, - max_batch_size: int = 4, - cancels: list[int] | None = None, - every: float | None = None, - collects_event_data: bool | None = None, - trigger_after: int | None = None, - trigger_only_on_success: bool = False, - trigger_mode: Literal["once", "multiple", "always_last"] | None = "once", - concurrency_limit: int | None | Literal["default"] = "default", - concurrency_id: str | None = None, - show_api: bool = True, - ) -> tuple[dict[str, Any], int]: - """ - Adds an event to the component's dependencies. - Parameters: - targets: a list of EventListenerMethod objects that define the event trigger - fn: Callable function - inputs: input list - outputs: output list - preprocess: whether to run the preprocess methods of components - postprocess: whether to run the postprocess methods of components - scroll_to_output: whether to scroll to output of dependency on trigger - show_progress: whether to show progress animation while running. - api_name: defines how the endpoint appears in the API docs. Can be a string, None, or False. If set to a string, the endpoint will be exposed in the API docs with the given name. If None (default), the name of the function will be used as the API endpoint. If False, the endpoint will not be exposed in the API docs and downstream apps (including those that `gr.load` this app) will not be able to use this event. - js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs' and 'outputs', return should be a list of values for output components - no_target: if True, sets "targets" to [], used for the Blocks.load() event and .then() events - queue: If True, will place the request on the queue, if the queue has been enabled. If False, will not put this event on the queue, even if the queue has been enabled. If None, will use the queue setting of the gradio app. - batch: whether this function takes in a batch of inputs - max_batch_size: the maximum batch size to send to the function - cancels: a list of other events to cancel when this event is triggered. For example, setting cancels=[click_event] will cancel the click_event, where click_event is the return value of another components .click method. - every: Run this event 'every' number of seconds while the client connection is open. Interpreted in seconds. - collects_event_data: whether to collect event data for this event - trigger_after: if set, this event will be triggered after 'trigger_after' function index - trigger_only_on_success: if True, this event will only be triggered if the previous event was successful (only applies if `trigger_after` is set) - trigger_mode: If "once" (default for all events except `.change()`) would not allow any submissions while an event is pending. If set to "multiple", unlimited submissions are allowed while pending, and "always_last" (default for `.change()` and `.key_up()` events) would allow a second submission after the pending event is complete. - concurrency_limit: If set, this is the maximum number of this event that can be running simultaneously. Can be set to None to mean no concurrency_limit (any number of this event can be running simultaneously). Set to "default" to use the default concurrency limit (defined by the `default_concurrency_limit` parameter in `queue()`, which itself is 1 by default). - concurrency_id: If set, this is the id of the concurrency group. Events with the same concurrency_id will be limited by the lowest set concurrency_limit. - show_api: whether to show this event in the "view API" page of the Gradio app, or in the ".view_api()" method of the Gradio clients. Unlike setting api_name to False, setting show_api to False will still allow downstream apps to use this event. If fn is None, show_api will automatically be set to False. - Returns: dependency information, dependency index - """ - # Support for singular parameter - _targets = [ - ( - target.block._id if not no_target and target.block else None, - target.event_name, - ) - for target in targets - ] - if isinstance(inputs, set): - inputs_as_dict = True - inputs = sorted(inputs, key=lambda x: x._id) - else: - inputs_as_dict = False - if inputs is None: - inputs = [] - elif not isinstance(inputs, list): - inputs = [inputs] - - if isinstance(outputs, set): - outputs = sorted(outputs, key=lambda x: x._id) - elif outputs is None: - outputs = [] - elif not isinstance(outputs, list): - outputs = [outputs] - - if fn is not None and not cancels: - check_function_inputs_match(fn, inputs, inputs_as_dict) - if every is not None and every <= 0: - raise ValueError("Parameter every must be positive or None") - if every and batch: - raise ValueError( - f"Cannot run event in a batch and every {every} seconds. " - "Either batch is True or every is non-zero but not both." - ) - - if every and fn: - fn = get_continuous_fn(fn, every) - elif every: - raise ValueError("Cannot set a value for `every` without a `fn`.") - if every and concurrency_limit is not None: - if concurrency_limit == "default": - concurrency_limit = None - else: - raise ValueError( - "Cannot set a value for `concurrency_limit` with `every`." - ) - - if _targets[0][1] in ["change", "key_up"] and trigger_mode is None: - trigger_mode = "always_last" - elif trigger_mode is None: - trigger_mode = "once" - elif trigger_mode not in ["once", "multiple", "always_last"]: - raise ValueError( - f"Invalid value for parameter `trigger_mode`: {trigger_mode}. Please choose from: {['once', 'multiple', 'always_last']}" - ) - - _, progress_index, event_data_index = ( - special_args(fn) if fn else (None, None, None) - ) - self.fns.append( - BlockFunction( - fn, - inputs, - outputs, - preprocess, - postprocess, - inputs_as_dict=inputs_as_dict, - concurrency_limit=concurrency_limit, - concurrency_id=concurrency_id, - batch=batch, - max_batch_size=max_batch_size, - tracks_progress=progress_index is not None, - ) - ) - - # If api_name is None or empty string, use the function name - if api_name is None or isinstance(api_name, str) and api_name.strip() == "": - if fn is not None: - if not hasattr(fn, "__name__"): - if hasattr(fn, "__class__") and hasattr(fn.__class__, "__name__"): - name = fn.__class__.__name__ - else: - name = "unnamed" - else: - name = fn.__name__ - api_name = "".join( - [s for s in name if s not in set(string.punctuation) - {"-", "_"}] - ) - elif js is not None: - api_name = "js_fn" - show_api = False - else: - api_name = "unnamed" - show_api = False - - if api_name is not False: - api_name = utils.append_unique_suffix( - api_name, [dep["api_name"] for dep in self.dependencies] - ) - else: - show_api = False - - # The `show_api` parameter is False if: (1) the user explicitly sets it (2) the user sets `api_name` to False - # or (3) the user sets `fn` to None (there's no backend function) - - if collects_event_data is None: - collects_event_data = event_data_index is not None - - dependency = { - "targets": _targets, - "inputs": [block._id for block in inputs], - "outputs": [block._id for block in outputs], - "backend_fn": fn is not None, - "js": js, - "queue": False if fn is None else queue, - "api_name": api_name, - "scroll_to_output": False if utils.get_space() else scroll_to_output, - "show_progress": show_progress, - "every": every, - "batch": batch, - "max_batch_size": max_batch_size, - "cancels": cancels or [], - "types": { - "continuous": bool(every), - "generator": inspect.isgeneratorfunction(fn) - or inspect.isasyncgenfunction(fn) - or bool(every), - }, - "collects_event_data": collects_event_data, - "trigger_after": trigger_after, - "trigger_only_on_success": trigger_only_on_success, - "trigger_mode": trigger_mode, - "show_api": show_api, - } - self.dependencies.append(dependency) - return dependency, len(self.dependencies) - 1 - def render(self): if Context.root_block is not None: if self._id in Context.root_block.blocks: raise DuplicateBlockError( f"A block with id: {self._id} has already been rendered in the current Blocks." ) - overlapping_ids = set(Context.root_block.blocks).intersection(self.blocks) - for id in overlapping_ids: - # State components are allowed to be reused between Blocks - if not isinstance(self.blocks[id], components.State): - raise DuplicateBlockError( - "At least one block in this Blocks has already been rendered." - ) + if not set(Context.root_block.blocks).isdisjoint(self.blocks): + raise DuplicateBlockError( + "At least one block in this Blocks has already been rendered." + ) Context.root_block.blocks.update(self.blocks) Context.root_block.fns.extend(self.fns) dependency_offset = len(Context.root_block.dependencies) for i, dependency in enumerate(self.dependencies): api_name = dependency["api_name"] - if api_name is not None and api_name is not False: + if api_name is not None: api_name_ = utils.append_unique_suffix( api_name, [dep["api_name"] for dep in Context.root_block.dependencies], ) - if api_name != api_name_: + if not (api_name == api_name_): + warnings.warn( + "api_name {} already exists, using {}".format( + api_name, api_name_ + ) + ) dependency["api_name"] = api_name_ dependency["cancels"] = [ c + dependency_offset for c in dependency["cancels"] ] - if dependency.get("trigger_after") is not None: - dependency["trigger_after"] += dependency_offset # Recreate the cancel function so that it has the latest # dependency fn indices. This is necessary to properly cancel # events in the backend @@ -1099,7 +742,6 @@ class Blocks(BlockContext, BlocksEvents, metaclass=BlocksMeta): Context.root_block.fns[dependency_offset + i] = new_fn Context.root_block.dependencies.append(dependency) Context.root_block.temp_file_sets.extend(self.temp_file_sets) - Context.root_block.proxy_urls.update(self.proxy_urls) if Context.block is not None: Context.block.children.extend(self.children) @@ -1113,7 +755,7 @@ class Blocks(BlockContext, BlocksEvents, metaclass=BlocksMeta): if inspect.isasyncgenfunction(block_fn.fn): return False if inspect.isgeneratorfunction(block_fn.fn): - return False + raise False for input_id in dependency["inputs"]: block = self.blocks[input_id] if getattr(block, "stateful", False): @@ -1125,7 +767,7 @@ class Blocks(BlockContext, BlocksEvents, metaclass=BlocksMeta): return True - def __call__(self, *inputs, fn_index: int = 0, api_name: str | None = None): + def __call__(self, *inputs, fn_index: int = 0, api_name: str = None): """ Allows Blocks objects to be called as functions. Supply the parameters to the function as positional arguments. To choose which function to call, use the @@ -1137,7 +779,7 @@ class Blocks(BlockContext, BlocksEvents, metaclass=BlocksMeta): api_name: The api_name of the dependency to call. Will take precedence over fn_index. """ if api_name is not None: - inferred_fn_index = next( + fn_index = next( ( i for i, d in enumerate(self.dependencies) @@ -1145,11 +787,8 @@ class Blocks(BlockContext, BlocksEvents, metaclass=BlocksMeta): ), None, ) - if inferred_fn_index is None: - raise InvalidApiNameError( - f"Cannot find a function with api_name {api_name}" - ) - fn_index = inferred_fn_index + if fn_index is None: + raise InvalidApiName(f"Cannot find a function with api_name {api_name}") if not (self.is_callable(fn_index)): raise ValueError( "This function is not callable because it is either stateful or is a generator. Please use the .launch() method instead to create an interactive user interface." @@ -1161,90 +800,65 @@ class Blocks(BlockContext, BlocksEvents, metaclass=BlocksMeta): if batch: processed_inputs = [[inp] for inp in processed_inputs] - outputs = client_utils.synchronize_async( + outputs = utils.synchronize_async( self.process_api, fn_index=fn_index, inputs=processed_inputs, request=None, - state={}, - explicit_call=True, ) outputs = outputs["data"] if batch: outputs = [out[0] for out in outputs] - outputs = self.deserialize_data(fn_index, outputs) - processed_outputs = utils.resolve_singleton(outputs) + processed_outputs = self.deserialize_data(fn_index, outputs) + processed_outputs = utils.resolve_singleton(processed_outputs) return processed_outputs async def call_function( self, - fn_index: int, - processed_input: list[Any], - iterator: AsyncIterator[Any] | None = None, - requests: routes.Request | list[routes.Request] | None = None, - event_id: str | None = None, - event_data: EventData | None = None, - in_event_listener: bool = False, - ): - """ - Calls function with given index and preprocessed input, and measures process time. - Parameters: - fn_index: index of function to call - processed_input: preprocessed input to pass to function - iterator: iterator to use if function is a generator - requests: requests to pass to function - event_id: id of event in queue - event_data: data associated with event trigger - """ + fn_index: int, + processed_input: List[Any], + iterator: Iterator[Any] | None = None, + request: routes.Request | List[routes.Request] | None = None, + ): + """Calls and times function with given index and preprocessed input.""" block_fn = self.fns[fn_index] - if not block_fn.fn: - raise IndexError(f"function with index {fn_index} not defined.") is_generating = False - request = requests[0] if isinstance(requests, list) else requests - start = time.time() - fn = utils.get_function_with_locals( - fn=block_fn.fn, - blocks=self, - event_id=event_id, - in_event_listener=in_event_listener, - request=request, + if block_fn.inputs_as_dict: + processed_input = [ + { + input_component: data + for input_component, data in zip(block_fn.inputs, processed_input) + } + ] + processed_input = add_request_to_inputs( + block_fn.fn, list(processed_input), request ) - if iterator is None: # If not a generator function that has already run - if block_fn.inputs_as_dict: - processed_input = [dict(zip(block_fn.inputs, processed_input))] - - processed_input, progress_index, _ = special_args( - block_fn.fn, processed_input, request, event_data - ) - progress_tracker = ( - processed_input[progress_index] if progress_index is not None else None - ) - - if progress_tracker is not None and progress_index is not None: - progress_tracker, fn = create_tracker(fn, progress_tracker.track_tqdm) - processed_input[progress_index] = progress_tracker + start = time.time() - if inspect.iscoroutinefunction(fn): - prediction = await fn(*processed_input) + if iterator is None: # If not a generator function that has already run + if inspect.iscoroutinefunction(block_fn.fn): + prediction = await block_fn.fn(*processed_input) else: prediction = await anyio.to_thread.run_sync( - fn, *processed_input, limiter=self.limiter + block_fn.fn, *processed_input, limiter=self.limiter ) - else: - prediction = None - if inspect.isgeneratorfunction(fn) or inspect.isasyncgenfunction(fn): + if inspect.isasyncgenfunction(block_fn.fn): + raise ValueError("Gradio does not support async generators.") + if inspect.isgeneratorfunction(block_fn.fn): + if not self.enable_queue: + raise ValueError("Need to enable queue to use generators.") try: if iterator is None: - iterator = cast(AsyncIterator[Any], prediction) - if inspect.isgenerator(iterator): - iterator = utils.SyncToAsyncIterator(iterator, self.limiter) - prediction = await utils.async_iteration(iterator) + iterator = prediction + prediction = await anyio.to_thread.run_sync( + utils.async_iteration, iterator, limiter=self.limiter + ) is_generating = True except StopAsyncIteration: n_outputs = len(self.dependencies[fn_index].get("outputs")) @@ -1264,368 +878,100 @@ class Blocks(BlockContext, BlocksEvents, metaclass=BlocksMeta): "iterator": iterator, } - def serialize_data(self, fn_index: int, inputs: list[Any]) -> list[Any]: + def serialize_data(self, fn_index: int, inputs: List[Any]) -> List[Any]: dependency = self.dependencies[fn_index] processed_input = [] - def format_file(s): - return FileData(path=s).model_dump() - for i, input_id in enumerate(dependency["inputs"]): - try: - block = self.blocks[input_id] - except KeyError as e: - raise InvalidBlockError( - f"Input component with id {input_id} used in {dependency['trigger']}() event is not defined in this gr.Blocks context. You are allowed to nest gr.Blocks contexts, but there must be a gr.Blocks context that contains all components and events." - ) from e - if not isinstance(block, components.Component): - raise InvalidComponentError( - f"{block.__class__} Component with id {input_id} not a valid input component." - ) - api_info = block.api_info() - if client_utils.value_is_file(api_info): - serialized_input = client_utils.traverse( - inputs[i], - format_file, - lambda s: client_utils.is_filepath(s) - or client_utils.is_http_url_like(s), - ) - else: - serialized_input = inputs[i] + block: IOComponent = self.blocks[input_id] + serialized_input = block.serialize(inputs[i]) processed_input.append(serialized_input) return processed_input - def deserialize_data(self, fn_index: int, outputs: list[Any]) -> list[Any]: + def deserialize_data(self, fn_index: int, outputs: List[Any]) -> List[Any]: dependency = self.dependencies[fn_index] predictions = [] for o, output_id in enumerate(dependency["outputs"]): - try: - block = self.blocks[output_id] - except KeyError as e: - raise InvalidBlockError( - f"Output component with id {output_id} used in {dependency['trigger']}() event not found in this gr.Blocks context. You are allowed to nest gr.Blocks contexts, but there must be a gr.Blocks context that contains all components and events." - ) from e - if not isinstance(block, components.Component): - raise InvalidComponentError( - f"{block.__class__} Component with id {output_id} not a valid output component." - ) - - deserialized = client_utils.traverse( - outputs[o], lambda s: s["path"], client_utils.is_file_obj - ) + block: IOComponent = self.blocks[output_id] + deserialized = block.deserialize(outputs[o]) predictions.append(deserialized) return predictions - def validate_inputs(self, fn_index: int, inputs: list[Any]): - block_fn = self.fns[fn_index] - dependency = self.dependencies[fn_index] - - dep_inputs = dependency["inputs"] - - # This handles incorrect inputs when args are changed by a JS function - # Only check not enough args case, ignore extra arguments (for now) - # TODO: make this stricter? - if len(inputs) < len(dep_inputs): - name = ( - f" ({block_fn.name})" - if block_fn.name and block_fn.name != "" - else "" - ) - - wanted_args = [] - received_args = [] - for input_id in dep_inputs: - block = self.blocks[input_id] - wanted_args.append(str(block)) - for inp in inputs: - v = f'"{inp}"' if isinstance(inp, str) else str(inp) - received_args.append(v) - - wanted = ", ".join(wanted_args) - received = ", ".join(received_args) - - # JS func didn't pass enough arguments - raise ValueError( - f"""An event handler{name} didn't receive enough input values (needed: {len(dep_inputs)}, got: {len(inputs)}). -Check if the event handler calls a Javascript function, and make sure its return value is correct. -Wanted inputs: - [{wanted}] -Received inputs: - [{received}]""" - ) - - def preprocess_data( - self, - fn_index: int, - inputs: list[Any], - state: SessionState | None, - explicit_call: bool = False, - ): - state = state or SessionState(self) + def preprocess_data(self, fn_index: int, inputs: List[Any], state: Dict[int, Any]): block_fn = self.fns[fn_index] dependency = self.dependencies[fn_index] - self.validate_inputs(fn_index, inputs) - if block_fn.preprocess: processed_input = [] for i, input_id in enumerate(dependency["inputs"]): - try: - block = self.blocks[input_id] - except KeyError as e: - raise InvalidBlockError( - f"Input component with id {input_id} used in {dependency['trigger']}() event not found in this gr.Blocks context. You are allowed to nest gr.Blocks contexts, but there must be a gr.Blocks context that contains all components and events." - ) from e - if not isinstance(block, components.Component): - raise InvalidComponentError( - f"{block.__class__} Component with id {input_id} not a valid input component." - ) + block: IOComponent = self.blocks[input_id] if getattr(block, "stateful", False): - processed_input.append(state[input_id]) + processed_input.append(state.get(input_id)) else: - if input_id in state: - block = state[input_id] - inputs_cached = processing_utils.move_files_to_cache( - inputs[i], - block, - check_in_upload_folder=not explicit_call, - ) - if getattr(block, "data_model", None) and inputs_cached is not None: - if issubclass(block.data_model, GradioModel): # type: ignore - inputs_cached = block.data_model(**inputs_cached) # type: ignore - elif issubclass(block.data_model, GradioRootModel): # type: ignore - inputs_cached = block.data_model(root=inputs_cached) # type: ignore - processed_input.append(block.preprocess(inputs_cached)) + processed_input.append(block.preprocess(inputs[i])) else: processed_input = inputs return processed_input - def validate_outputs(self, fn_index: int, predictions: Any | list[Any]): - block_fn = self.fns[fn_index] - dependency = self.dependencies[fn_index] - - dep_outputs = dependency["outputs"] - - if not isinstance(predictions, (list, tuple)): - predictions = [predictions] - - if len(predictions) < len(dep_outputs): - name = ( - f" ({block_fn.name})" - if block_fn.name and block_fn.name != "" - else "" - ) - - wanted_args = [] - received_args = [] - for output_id in dep_outputs: - block = self.blocks[output_id] - wanted_args.append(str(block)) - for pred in predictions: - v = f'"{pred}"' if isinstance(pred, str) else str(pred) - received_args.append(v) - - wanted = ", ".join(wanted_args) - received = ", ".join(received_args) - - raise ValueError( - f"""An event handler{name} didn't receive enough output values (needed: {len(dep_outputs)}, received: {len(predictions)}). -Wanted outputs: - [{wanted}] -Received outputs: - [{received}]""" - ) - def postprocess_data( - self, fn_index: int, predictions: list | dict, state: SessionState | None + self, fn_index: int, predictions: List[Any], state: Dict[int, Any] ): - state = state or SessionState(self) block_fn = self.fns[fn_index] dependency = self.dependencies[fn_index] batch = dependency["batch"] - if isinstance(predictions, dict) and len(predictions) > 0: + if type(predictions) is dict and len(predictions) > 0: predictions = convert_component_dict_to_list( dependency["outputs"], predictions ) if len(dependency["outputs"]) == 1 and not (batch): - predictions = [ - predictions, - ] - - self.validate_outputs(fn_index, predictions) # type: ignore + predictions = (predictions,) output = [] for i, output_id in enumerate(dependency["outputs"]): - try: - if predictions[i] is components._Keywords.FINISHED_ITERATING: - output.append(None) - continue - except (IndexError, KeyError) as err: - raise ValueError( - "Number of output components does not match number " - f"of values returned from from function {block_fn.name}" - ) from err - - try: - block = self.blocks[output_id] - except KeyError as e: - raise InvalidBlockError( - f"Output component with id {output_id} used in {dependency['trigger']}() event not found in this gr.Blocks context. You are allowed to nest gr.Blocks contexts, but there must be a gr.Blocks context that contains all components and events." - ) from e - + if predictions[i] is components._Keywords.FINISHED_ITERATING: + output.append(None) + continue + block = self.blocks[output_id] if getattr(block, "stateful", False): if not utils.is_update(predictions[i]): state[output_id] = predictions[i] output.append(None) else: prediction_value = predictions[i] - if utils.is_update( - prediction_value - ): # if update is passed directly (deprecated), remove Nones - prediction_value = utils.delete_none( - prediction_value, skip_value=True - ) - - if isinstance(prediction_value, Block): - prediction_value = prediction_value.constructor_args.copy() - prediction_value["__type__"] = "update" if utils.is_update(prediction_value): - if output_id in state: - kwargs = state[output_id].constructor_args.copy() - else: - kwargs = self.blocks[output_id].constructor_args.copy() - kwargs.update(prediction_value) - kwargs.pop("value", None) - kwargs.pop("__type__") - kwargs["render"] = False - state[output_id] = self.blocks[output_id].__class__(**kwargs) - prediction_value = postprocess_update_dict( - block=state[output_id], + block=block, update_dict=prediction_value, postprocess=block_fn.postprocess, ) elif block_fn.postprocess: - if not isinstance(block, components.Component): - raise InvalidComponentError( - f"{block.__class__} Component with id {output_id} not a valid output component." - ) - if output_id in state: - block = state[output_id] prediction_value = block.postprocess(prediction_value) - - outputs_cached = processing_utils.move_files_to_cache( - prediction_value, - block, - postprocess=True, - ) - output.append(outputs_cached) - - return output - - def handle_streaming_outputs( - self, - fn_index: int, - data: list, - session_hash: str | None, - run: int | None, - ) -> list: - if session_hash is None or run is None: - return data - if run not in self.pending_streams[session_hash]: - self.pending_streams[session_hash][run] = {} - stream_run = self.pending_streams[session_hash][run] - - for i, output_id in enumerate(self.dependencies[fn_index]["outputs"]): - block = self.blocks[output_id] - if isinstance(block, components.StreamingOutput) and block.streaming: - first_chunk = output_id not in stream_run - binary_data, output_data = block.stream_output( - data[i], f"{session_hash}/{run}/{output_id}", first_chunk - ) - if first_chunk: - stream_run[output_id] = [] - self.pending_streams[session_hash][run][output_id].append(binary_data) - data[i] = output_data - return data - - def handle_streaming_diffs( - self, - fn_index: int, - data: list, - session_hash: str | None, - run: int | None, - final: bool, - simple_format: bool = False, - ) -> list: - if session_hash is None or run is None: - return data - first_run = run not in self.pending_diff_streams[session_hash] - if first_run: - self.pending_diff_streams[session_hash][run] = [None] * len(data) - last_diffs = self.pending_diff_streams[session_hash][run] - - for i in range(len(self.dependencies[fn_index]["outputs"])): - if final: - data[i] = last_diffs[i] - continue - - if first_run: - last_diffs[i] = data[i] - else: - prev_chunk = last_diffs[i] - last_diffs[i] = data[i] - if not simple_format: - data[i] = utils.diff(prev_chunk, data[i]) - - if final: - del self.pending_diff_streams[session_hash][run] - - return data - - def run_fn_batch(self, fn, batch, fn_index, state, explicit_call=None): - output = [] - for i in zip(*batch): - args = [fn_index, list(i), state] - if explicit_call is not None: - args.append(explicit_call) - output.append(fn(*args)) + output.append(prediction_value) return output async def process_api( self, fn_index: int, - inputs: list[Any], - state: SessionState | None = None, - request: routes.Request | list[routes.Request] | None = None, - iterator: AsyncIterator | None = None, - session_hash: str | None = None, - event_id: str | None = None, - event_data: EventData | None = None, - in_event_listener: bool = True, - simple_format: bool = False, - explicit_call: bool = False, - root_path: str | None = None, - ) -> dict[str, Any]: + inputs: List[Any], + request: routes.Request | List[routes.Request] | None = None, + username: str = None, + state: Dict[int, Any] | List[Dict[int, Any]] | None = None, + iterators: Dict[int, Any] | None = None, + ) -> Dict[str, Any]: """ Processes API calls from the frontend. First preprocesses the data, then runs the relevant function, then postprocesses the output. Parameters: fn_index: Index of function to run. inputs: input data received from the frontend + username: name of user if authentication is set up (not used) state: data stored from stateful components for session (key is input block id) - request: the gr.Request object containing information about the network request (e.g. IP address, headers, query parameters, username) iterators: the in-progress iterators for each generator function (key is function index) - event_id: id of event that triggered this API call - event_data: data associated with the event trigger itself - in_event_listener: whether this API call is being made in response to an event listener - explicit_call: whether this call is being made directly by calling the Blocks function, instead of through an event listener or API route - root_path: if provided, the root path of the server. All file URLs will be prefixed with this path. Returns: None """ block_fn = self.fns[fn_index] @@ -1647,89 +993,23 @@ Received outputs: raise ValueError( f"Batch size ({batch_size}) exceeds the max_batch_size for this function ({max_batch_size})" ) - inputs = await anyio.to_thread.run_sync( - self.run_fn_batch, - self.preprocess_data, - inputs, - fn_index, - state, - explicit_call, - limiter=self.limiter, - ) - result = await self.call_function( - fn_index, - list(zip(*inputs)), - None, - request, - event_id, - event_data, - in_event_listener, - ) + + inputs = [self.preprocess_data(fn_index, i, state) for i in zip(*inputs)] + result = await self.call_function(fn_index, zip(*inputs), None, request) preds = result["prediction"] - data = await anyio.to_thread.run_sync( - self.run_fn_batch, - self.postprocess_data, - preds, - fn_index, - state, - limiter=self.limiter, - ) - if root_path is not None: - data = processing_utils.add_root_url(data, root_path, None) + data = [self.postprocess_data(fn_index, o, state) for o in zip(*preds)] data = list(zip(*data)) is_generating, iterator = None, None else: - old_iterator = iterator - if old_iterator: - inputs = [] - else: - inputs = await anyio.to_thread.run_sync( - self.preprocess_data, - fn_index, - inputs, - state, - explicit_call, - limiter=self.limiter, - ) - was_generating = old_iterator is not None - result = await self.call_function( - fn_index, - inputs, - old_iterator, - request, - event_id, - event_data, - in_event_listener, - ) - data = await anyio.to_thread.run_sync( - self.postprocess_data, - fn_index, # type: ignore - result["prediction"], - state, - limiter=self.limiter, - ) - if root_path is not None: - data = processing_utils.add_root_url(data, root_path, None) + inputs = self.preprocess_data(fn_index, inputs, state) + iterator = iterators.get(fn_index, None) if iterators else None + result = await self.call_function(fn_index, inputs, iterator, request) + data = self.postprocess_data(fn_index, result["prediction"], state) is_generating, iterator = result["is_generating"], result["iterator"] - if is_generating or was_generating: - run = id(old_iterator) if was_generating else id(iterator) - data = self.handle_streaming_outputs( - fn_index, - data, - session_hash=session_hash, - run=run, - ) - data = self.handle_streaming_diffs( - fn_index, - data, - session_hash=session_hash, - run=run, - final=not is_generating, - simple_format=simple_format, - ) block_fn.total_runtime += result["duration"] block_fn.total_runs += 1 + return { "data": data, "is_generating": is_generating, @@ -1738,7 +1018,7 @@ Received outputs: "average_duration": block_fn.total_runtime / block_fn.total_runs, } - def create_limiter(self): + async def create_limiter(self): self.limiter = ( None if self.max_threads == 40 @@ -1752,66 +1032,38 @@ Received outputs: config = { "version": routes.VERSION, "mode": self.mode, - "app_id": self.app_id, "dev_mode": self.dev_mode, - "analytics_enabled": self.analytics_enabled, "components": [], + "theme": self.theme, "css": self.css, - "js": self.js, - "head": self.head, "title": self.title or "Gradio", - "space_id": self.space_id, - "enable_queue": True, # launch attributes + "is_space": self.is_space, + "enable_queue": getattr(self, "enable_queue", False), # launch attributes "show_error": getattr(self, "show_error", False), "show_api": self.show_api, "is_colab": utils.colab_check(), - "stylesheets": self.stylesheets, - "theme": self.theme.name, - "protocol": "sse_v2.1", - "body_css": { - "body_background_fill": self.theme._get_computed_value( - "body_background_fill" - ), - "body_text_color": self.theme._get_computed_value("body_text_color"), - "body_background_fill_dark": self.theme._get_computed_value( - "body_background_fill_dark" - ), - "body_text_color_dark": self.theme._get_computed_value( - "body_text_color_dark" - ), - }, - "fill_height": self.fill_height, } - def get_layout(block): + def getLayout(block): if not isinstance(block, BlockContext): return {"id": block._id} children_layout = [] for child in block.children: - children_layout.append(get_layout(child)) + children_layout.append(getLayout(child)) return {"id": block._id, "children": children_layout} - config["layout"] = get_layout(self) + config["layout"] = getLayout(self) for _id, block in self.blocks.items(): - props = block.get_config() if hasattr(block, "get_config") else {} - block_config = { - "id": _id, - "type": block.get_block_name(), - "props": utils.delete_none(props), - } - block_config["skip_api"] = block.skip_api - block_config["component_class_id"] = getattr( - block, "component_class_id", None + config["components"].append( + { + "id": _id, + "type": (block.get_block_name()), + "props": utils.delete_none(block.get_config()) + if hasattr(block, "get_config") + else {}, + } ) - - if not block.skip_api: - block_config["api_info"] = block.api_info() # type: ignore - # .example_inputs() has been renamed .example_payload() but - # we use the old name for backwards compatibility with custom components - # created on Gradio 4.20.0 or earlier - block_config["example_inputs"] = block.example_inputs() # type: ignore - config["components"].append(block_config) config["dependencies"] = self.dependencies return config @@ -1820,14 +1072,9 @@ Received outputs: Context.root_block = self self.parent = Context.block Context.block = self - self.exited = False return self - def __exit__(self, exc_type: type[BaseException] | None = None, *args): - if exc_type is not None: - Context.block = None - Context.root_block = None - return + def __exit__(self, *args): super().fill_expected_parents() Context.block = self.parent # Configure the load events before root_block is reset @@ -1838,8 +1085,91 @@ Received outputs: self.parent.children.extend(self.children) self.config = self.get_config_file() self.app = routes.App.create_app(self) - self.progress_tracking = any(block_fn.tracks_progress for block_fn in self.fns) - self.exited = True + + @class_or_instancemethod + def load( + self_or_cls, + fn: Optional[Callable] = None, + inputs: Optional[List[Component]] = None, + outputs: Optional[List[Component]] = None, + api_name: AnyStr = None, + scroll_to_output: bool = False, + show_progress: bool = True, + queue=None, + batch: bool = False, + max_batch_size: int = 4, + preprocess: bool = True, + postprocess: bool = True, + every: float | None = None, + _js: Optional[str] = None, + *, + name: Optional[str] = None, + src: Optional[str] = None, + api_key: Optional[str] = None, + alias: Optional[str] = None, + **kwargs, + ) -> Blocks | Dict[str, Any] | None: + """ + For reverse compatibility reasons, this is both a class method and an instance + method, the two of which, confusingly, do two completely different things. + + + Class method: loads a demo from a Hugging Face Spaces repo and creates it locally and returns a block instance. Equivalent to gradio.Interface.load() + + + Instance method: adds event that runs as soon as the demo loads in the browser. Example usage below. + Parameters: + name: Class Method - the name of the model (e.g. "gpt2" or "facebook/bart-base") or space (e.g. "flax-community/spanish-gpt2"), can include the `src` as prefix (e.g. "models/facebook/bart-base") + src: Class Method - the source of the model: `models` or `spaces` (or leave empty if source is provided as a prefix in `name`) + api_key: Class Method - optional access token for loading private Hugging Face Hub models or spaces. Find your token here: https://huggingface.co/settings/tokens + alias: Class Method - optional string used as the name of the loaded model instead of the default name (only applies if loading a Space running Gradio 2.x) + fn: Instance Method - the function to wrap an interface around. Often a machine learning model's prediction function. Each parameter of the function corresponds to one input component, and the function should return a single value or a tuple of values, with each element in the tuple corresponding to one output component. + inputs: Instance Method - List of gradio.components to use as inputs. If the function takes no inputs, this should be an empty list. + outputs: Instance Method - List of gradio.components to use as inputs. If the function returns no outputs, this should be an empty list. + api_name: Instance Method - Defining this parameter exposes the endpoint in the api docs + scroll_to_output: Instance Method - If True, will scroll to output component on completion + show_progress: Instance Method - If True, will show progress animation while pending + queue: Instance Method - If True, will place the request on the queue, if the queue exists + batch: Instance Method - If True, then the function should process a batch of inputs, meaning that it should accept a list of input values for each parameter. The lists should be of equal length (and be up to length `max_batch_size`). The function is then *required* to return a tuple of lists (even if there is only 1 output component), with each list in the tuple corresponding to one output component. + max_batch_size: Instance Method - Maximum number of inputs to batch together if this is called from the queue (only relevant if batch=True) + preprocess: Instance Method - If False, will not run preprocessing of component data before running 'fn' (e.g. leaving it as a base64 string if this method is called with the `Image` component). + postprocess: Instance Method - If False, will not run postprocessing of component data before returning 'fn' output to the browser. + every: Instance Method - Run this event 'every' number of seconds. Interpreted in seconds. Queue must be enabled. + Example: + import gradio as gr + import datetime + with gr.Blocks() as demo: + def get_time(): + return datetime.datetime.now().time() + dt = gr.Textbox(label="Current time") + demo.load(get_time, inputs=None, outputs=dt) + demo.launch() + """ + # _js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs' and 'outputs', return should be a list of values for output components. + if isinstance(self_or_cls, type): + if name is None: + raise ValueError( + "Blocks.load() requires passing parameters as keyword arguments" + ) + return external.load_blocks_from_repo(name, src, api_key, alias, **kwargs) + else: + return self_or_cls.set_event_trigger( + event_name="load", + fn=fn, + inputs=inputs, + outputs=outputs, + api_name=api_name, + preprocess=preprocess, + postprocess=postprocess, + scroll_to_output=scroll_to_output, + show_progress=show_progress, + js=_js, + queue=queue, + batch=batch, + max_batch_size=max_batch_size, + every=every, + no_target=True, + ) def clear(self): """Resets the layout of the Blocks object.""" @@ -1852,99 +1182,67 @@ Received outputs: @document() def queue( self, - status_update_rate: float | Literal["auto"] = "auto", - api_open: bool | None = None, + concurrency_count: int = 1, + status_update_rate: float | str = "auto", + client_position_to_load_data: int | None = None, + default_enabled: bool = True, + api_open: bool = True, max_size: int | None = None, - concurrency_count: int | None = None, - *, - default_concurrency_limit: int | None | Literal["not_set"] = "not_set", ): """ - By enabling the queue you can control when users know their position in the queue, and set a limit on maximum number of events allowed. + You can control the rate of processed requests by creating a queue. This will allow you to set the number of requests to be processed at one time, and will let users know their position in the queue. Parameters: + concurrency_count: Number of worker threads that will be processing requests from the queue concurrently. Increasing this number will increase the rate at which requests are processed, but will also increase the memory usage of the queue. status_update_rate: If "auto", Queue will send status estimations to all clients whenever a job is finished. Otherwise Queue will send status at regular intervals set by this parameter as the number of seconds. + client_position_to_load_data: DEPRECATED. This parameter is deprecated and has no effect. + default_enabled: If True, all event listeners will use queueing by default. api_open: If True, the REST routes of the backend will be open, allowing requests made directly to those endpoints to skip the queue. max_size: The maximum number of events the queue will store at any given moment. If the queue is full, new events will not be added and a user will receive a message saying that the queue is full. If None, the queue size will be unlimited. - concurrency_count: Deprecated. Set the concurrency_limit directly on event listeners e.g. btn.click(fn, ..., concurrency_limit=10) or gr.Interface(concurrency_limit=10). If necessary, the total number of workers can be configured via `max_threads` in launch(). - default_concurrency_limit: The default value of `concurrency_limit` to use for event listeners that don't specify a value. Can be set by environment variable GRADIO_DEFAULT_CONCURRENCY_LIMIT. Defaults to 1 if not set otherwise. - Example: (Blocks) - with gr.Blocks() as demo: - button = gr.Button(label="Generate Image") - button.click(fn=image_generator, inputs=gr.Textbox(), outputs=gr.Image()) - demo.queue(max_size=10) - demo.launch() - Example: (Interface) - demo = gr.Interface(image_generator, gr.Textbox(), gr.Image()) - demo.queue(max_size=20) + Example: + demo = gr.Interface(gr.Textbox(), gr.Image(), image_generator) + demo.queue(concurrency_count=3) demo.launch() """ - if concurrency_count: - raise DeprecationWarning( - "concurrency_count has been deprecated. Set the concurrency_limit directly on event listeners e.g. btn.click(fn, ..., concurrency_limit=10) or gr.Interface(concurrency_limit=10). If necessary, the total number of workers can be configured via `max_threads` in launch()." - ) - if api_open is not None: - self.api_open = api_open - if utils.is_zero_gpu_space(): - max_size = 1 if max_size is None else max_size - self._queue = queueing.Queue( + self.enable_queue = default_enabled + self.api_open = api_open + if client_position_to_load_data is not None: + warnings.warn("The client_position_to_load_data parameter is deprecated.") + self._queue = queue.Queue( live_updates=status_update_rate == "auto", - concurrency_count=self.max_threads, + concurrency_count=concurrency_count, update_intervals=status_update_rate if status_update_rate != "auto" else 1, max_size=max_size, - block_fns=self.fns, - default_concurrency_limit=default_concurrency_limit, + blocks_dependencies=self.dependencies, ) self.config = self.get_config_file() - self.app = routes.App.create_app(self) return self - def validate_queue_settings(self): - for dep in self.dependencies: - for i in dep["cancels"]: - if not self.queue_enabled_for_fn(i): - raise ValueError( - "Queue needs to be enabled! " - "You may get this error by either 1) passing a function that uses the yield keyword " - "into an interface without enabling the queue or 2) defining an event that cancels " - "another event without enabling the queue. Both can be solved by calling .queue() " - "before .launch()" - ) - if dep["batch"] and dep["queue"] is False: - raise ValueError("In order to use batching, the queue must be enabled.") - def launch( self, - inline: bool | None = None, + inline: bool = None, inbrowser: bool = False, - share: bool | None = None, + share: Optional[bool] = None, debug: bool = False, + enable_queue: bool = None, max_threads: int = 40, - auth: Callable | tuple[str, str] | list[tuple[str, str]] | None = None, - auth_message: str | None = None, + auth: Optional[Callable | Tuple[str, str] | List[Tuple[str, str]]] = None, + auth_message: Optional[str] = None, prevent_thread_lock: bool = False, show_error: bool = False, - server_name: str | None = None, - server_port: int | None = None, - *, + server_name: Optional[str] = None, + server_port: Optional[int] = None, + show_tips: bool = False, height: int = 500, width: int | str = "100%", - favicon_path: str | None = None, - ssl_keyfile: str | None = None, - ssl_certfile: str | None = None, - ssl_keyfile_password: str | None = None, - ssl_verify: bool = True, + encrypt: bool = False, + favicon_path: Optional[str] = None, + ssl_keyfile: Optional[str] = None, + ssl_certfile: Optional[str] = None, + ssl_keyfile_password: Optional[str] = None, quiet: bool = False, show_api: bool = True, - allowed_paths: list[str] | None = None, - blocked_paths: list[str] | None = None, - root_path: str | None = None, - app_kwargs: dict[str, Any] | None = None, - state_session_capacity: int = 10000, - share_server_address: str | None = None, - share_server_protocol: Literal["http", "https"] | None = None, - auth_dependency: Callable[[fastapi.Request], str | None] | None = None, _frontend: bool = True, - ) -> tuple[FastAPI, str, str]: + ) -> Tuple[FastAPI, str, str]: """ Launches a simple web server that serves the demo. Can also be used to create a public link used by anyone to access the demo from their browser by setting share=True. @@ -1960,287 +1258,210 @@ Received outputs: show_error: If True, any errors in the interface will be displayed in an alert modal and printed in the browser console log server_port: will start gradio app on this port (if available). Can be set by environment variable GRADIO_SERVER_PORT. If None, will search for an available port starting at 7860. server_name: to make app accessible on local network, set this to "0.0.0.0". Can be set by environment variable GRADIO_SERVER_NAME. If None, will use "127.0.0.1". - max_threads: the maximum number of total threads that the Gradio app can generate in parallel. The default is inherited from the starlette library (currently 40). + show_tips: if True, will occasionally show tips about new Gradio features + enable_queue: DEPRECATED (use .queue() method instead.) if True, inference requests will be served through a queue instead of with parallel threads. Required for longer inference times (> 1min) to prevent timeout. The default option in HuggingFace Spaces is True. The default option elsewhere is False. + max_threads: the maximum number of total threads that the Gradio app can generate in parallel. The default is inherited from the starlette library (currently 40). Applies whether the queue is enabled or not. But if queuing is enabled, this parameter is increaseed to be at least the concurrency_count of the queue. width: The width in pixels of the iframe element containing the interface (used if inline=True) height: The height in pixels of the iframe element containing the interface (used if inline=True) + encrypt: If True, flagged data will be encrypted by key provided by creator at launch favicon_path: If a path to a file (.png, .gif, or .ico) is provided, it will be used as the favicon for the web page. ssl_keyfile: If a path to a file is provided, will use this as the private key file to create a local server running on https. ssl_certfile: If a path to a file is provided, will use this as the signed certificate for https. Needs to be provided if ssl_keyfile is provided. ssl_keyfile_password: If a password is provided, will use this with the ssl certificate for https. - ssl_verify: If False, skips certificate validation which allows self-signed certificates to be used. quiet: If True, suppresses most print statements. - show_api: If True, shows the api docs in the footer of the app. Default True. - allowed_paths: List of complete filepaths or parent directories that gradio is allowed to serve (in addition to the directory containing the gradio python file). Must be absolute paths. Warning: if you provide directories, any files in these directories or their subdirectories are accessible to all users of your app. - blocked_paths: List of complete filepaths or parent directories that gradio is not allowed to serve (i.e. users of your app are not allowed to access). Must be absolute paths. Warning: takes precedence over `allowed_paths` and all other directories exposed by Gradio by default. - root_path: The root path (or "mount point") of the application, if it's not served from the root ("/") of the domain. Often used when the application is behind a reverse proxy that forwards requests to the application. For example, if the application is served at "https://example.com/myapp", the `root_path` should be set to "/myapp". A full URL beginning with http:// or https:// can be provided, which will be used as the root path in its entirety. Can be set by environment variable GRADIO_ROOT_PATH. Defaults to "". - app_kwargs: Additional keyword arguments to pass to the underlying FastAPI app as a dictionary of parameter keys and argument values. For example, `{"docs_url": "/docs"}` - state_session_capacity: The maximum number of sessions whose information to store in memory. If the number of sessions exceeds this number, the oldest sessions will be removed. Reduce capacity to reduce memory usage when using gradio.State or returning updated components from functions. Defaults to 10000. - share_server_address: Use this to specify a custom FRP server and port for sharing Gradio apps (only applies if share=True). If not provided, will use the default FRP server at https://gradio.live. See https://github.com/huggingface/frp for more information. - share_server_protocol: Use this to specify the protocol to use for the share links. Defaults to "https", unless a custom share_server_address is provided, in which case it defaults to "http". If you are using a custom share_server_address and want to use https, you must set this to "https". - auth_dependency: A function that takes a FastAPI request and returns a string user ID or None. If the function returns None for a specific request, that user is not authorized to access the app (they will see a 401 Unauthorized response). To be used with external authentication systems like OAuth. + show_api: If True, shows the api docs in the footer of the app. Default True. If the queue is enabled, then api_open parameter of .queue() will determine if the api docs are shown, independent of the value of show_api. Returns: app: FastAPI app object that is running the demo local_url: Locally accessible link to the demo share_url: Publicly accessible link to the demo (if share=True, otherwise None) - Example: (Blocks) - import gradio as gr - def reverse(text): - return text[::-1] - with gr.Blocks() as demo: - button = gr.Button(value="Reverse") - button.click(reverse, gr.Textbox(), gr.Textbox()) - demo.launch(share=True, auth=("username", "password")) - Example: (Interface) + Example: import gradio as gr def reverse(text): return text[::-1] demo = gr.Interface(reverse, "text", "text") demo.launch(share=True, auth=("username", "password")) """ - if self._is_running_in_reload_thread: - # We have already launched the demo - return None, None, None # type: ignore - - if not self.exited: - self.__exit__() - - if auth is not None and auth_dependency is not None: - raise ValueError( - "You cannot provide both `auth` and `auth_dependency` in launch(). Please choose one." - ) + self.dev_mode = False if ( auth and not callable(auth) and not isinstance(auth[0], tuple) and not isinstance(auth[0], list) ): - self.auth = [auth] - else: - self.auth = auth + auth = [auth] + self.auth = auth self.auth_message = auth_message + self.show_tips = show_tips self.show_error = show_error self.height = height self.width = width self.favicon_path = favicon_path - self.ssl_verify = ssl_verify - self.state_session_capacity = state_session_capacity - if root_path is None: - self.root_path = os.environ.get("GRADIO_ROOT_PATH", "") - else: - self.root_path = root_path - - self.show_api = show_api - - self.allowed_paths = allowed_paths or [] - self.blocked_paths = blocked_paths or [] + if enable_queue is not None: + self.enable_queue = enable_queue + warnings.warn( + "The `enable_queue` parameter has been deprecated. Please use the `.queue()` method instead.", + DeprecationWarning, + ) - if not isinstance(self.allowed_paths, list): - raise ValueError("`allowed_paths` must be a list of directories.") - if not isinstance(self.blocked_paths, list): - raise ValueError("`blocked_paths` must be a list of directories.") + if self.is_space: + self.enable_queue = self.enable_queue is not False + else: + self.enable_queue = self.enable_queue is True + if self.enable_queue and not hasattr(self, "_queue"): + self.queue() + self.show_api = self.api_open if self.enable_queue else show_api - self.validate_queue_settings() + for dep in self.dependencies: + for i in dep["cancels"]: + if not self.queue_enabled_for_fn(i): + raise ValueError( + "In order to cancel an event, the queue for that event must be enabled! " + "You may get this error by either 1) passing a function that uses the yield keyword " + "into an interface without enabling the queue or 2) defining an event that cancels " + "another event without enabling the queue. Both can be solved by calling .queue() " + "before .launch()" + ) + if dep["batch"] and ( + dep["queue"] is False + or (dep["queue"] is None and not self.enable_queue) + ): + raise ValueError("In order to use batching, the queue must be enabled.") self.config = self.get_config_file() - self.max_threads = max_threads - self._queue.max_thread_count = max_threads + self.encrypt = encrypt + self.max_threads = max( + self._queue.max_thread_count if self.enable_queue else 0, max_threads + ) + if self.encrypt: + self.encryption_key = encryptor.get_key( + getpass.getpass("Enter key for encryption: ") + ) if self.is_running: - if not isinstance(self.local_url, str): - raise ValueError(f"Invalid local_url: {self.local_url}") + self.server_app.launchable = self if not (quiet): print( "Rerunning server... use `close()` to stop if you need to change `launch()` parameters.\n----" ) else: - if wasm_utils.IS_WASM: - server_name = "xxx" - server_port = 99999 - local_url = "" - server = None - - # In the Wasm environment, we only need the app object - # which the frontend app will directly communicate with through the Worker API, - # and we don't need to start a server. - # So we just create the app object and register it here, - # and avoid using `networking.start_server` that would start a server that don't work in the Wasm env. - from gradio.routes import App - - app = App.create_app( - self, auth_dependency=auth_dependency, app_kwargs=app_kwargs - ) - wasm_utils.register_app(app) - else: - ( - server_name, - server_port, - local_url, - app, - server, - ) = networking.start_server( - self, - server_name, - server_port, - ssl_keyfile, - ssl_certfile, - ssl_keyfile_password, - app_kwargs=app_kwargs, - ) + server_name, server_port, local_url, app, server = networking.start_server( + self, + server_name, + server_port, + ssl_keyfile, + ssl_certfile, + ssl_keyfile_password, + ) self.server_name = server_name self.local_url = local_url self.server_port = server_port - self.server_app = ( - self.app - ) = app # server_app is included for backwards compatibility + self.server_app = app self.server = server self.is_running = True self.is_colab = utils.colab_check() - self.is_kaggle = utils.kaggle_check() - self.share_server_address = share_server_address - self.share_server_protocol = share_server_protocol or ( - "http" if share_server_address is not None else "https" - ) - self.protocol = ( "https" if self.local_url.startswith("https") or self.is_colab else "http" ) - if not wasm_utils.IS_WASM and not self.is_colab: - print( - strings.en["RUNNING_LOCALLY_SEPARATED"].format( - self.protocol, self.server_name, self.server_port - ) - ) - self._queue.set_server_app(self.server_app) + if self.enable_queue: + self._queue.set_url(self.local_url) - if not wasm_utils.IS_WASM: - # Cannot run async functions in background other than app's scope. - # Workaround by triggering the app endpoint - httpx.get(f"{self.local_url}startup-events", verify=ssl_verify) - else: - # NOTE: One benefit of the code above dispatching `startup_events()` via a self HTTP request is - # that `self._queue.start()` is called in another thread which is managed by the HTTP server, `uvicorn` - # so all the asyncio tasks created by the queue runs in an event loop in that thread and - # will be cancelled just by stopping the server. - # In contrast, in the Wasm env, we can't do that because `threading` is not supported and all async tasks will run in the same event loop, `pyodide.webloop.WebLoop` in the main thread. - # So we need to manually cancel them. See `self.close()`.. - self.startup_events() + # Cannot run async functions in background other than app's scope. + # Workaround by triggering the app endpoint + requests.get(f"{self.local_url}startup-events") + if self.enable_queue: + if self.encrypt: + raise ValueError("Cannot queue with encryption enabled.") utils.launch_counter() - self.is_sagemaker = utils.sagemaker_check() - if share is None: - if self.is_colab: - if not quiet: - print( - "Setting queue=True in a Colab notebook requires sharing enabled. Setting `share=True` (you can turn this off by setting `share=False` in `launch()` explicitly).\n" - ) - self.share = True - elif self.is_kaggle: - if not quiet: - print( - "Kaggle notebooks require sharing enabled. Setting `share=True` (you can turn this off by setting `share=False` in `launch()` explicitly).\n" - ) - self.share = True - elif self.is_sagemaker: - if not quiet: - print( - "Sagemaker notebooks may require sharing enabled. Setting `share=True` (you can turn this off by setting `share=False` in `launch()` explicitly).\n" - ) - self.share = True - else: - self.share = False - else: - self.share = share + + self.share = ( + share + if share is not None + else True + if self.is_colab and self.enable_queue + else False + ) # If running in a colab or not able to access localhost, # a shareable link must be created. - if ( - _frontend - and not wasm_utils.IS_WASM - and not networking.url_ok(self.local_url) - and not self.share - ): + if _frontend and (not networking.url_ok(self.local_url)) and (not self.share): raise ValueError( - "When localhost is not accessible, a shareable link must be created. Please set share=True or check your proxy settings to allow access to localhost." + "When localhost is not accessible, a shareable link must be created. Please set share=True." ) - if self.is_colab and not quiet: - if debug: - print(strings.en["COLAB_DEBUG_TRUE"]) - else: - print(strings.en["COLAB_DEBUG_FALSE"]) - if not self.share: - print(strings.en["COLAB_WARNING"].format(self.server_port)) - - if self.share: - if self.space_id: - warnings.warn( - "Setting share=True is not supported on Hugging Face Spaces" + if self.is_colab: + if not quiet: + if debug: + print(strings.en["COLAB_DEBUG_TRUE"]) + else: + print(strings.en["COLAB_DEBUG_FALSE"]) + if not self.share: + print(strings.en["COLAB_WARNING"].format(self.server_port)) + if self.enable_queue and not self.share: + raise ValueError( + "When using queueing in Colab, a shareable link must be created. Please set share=True." ) - self.share = False - if wasm_utils.IS_WASM: - warnings.warn( - "Setting share=True is not supported in the Wasm environment" + else: + print( + strings.en["RUNNING_LOCALLY_SEPARATED"].format( + self.protocol, self.server_name, self.server_port ) - self.share = False + ) if self.share: + if self.is_space: + raise RuntimeError("Share is not supported when you are in Spaces") try: if self.share_url is None: - share_url = networking.setup_tunnel( - local_host=self.server_name, - local_port=self.server_port, - share_token=self.share_token, - share_server_address=self.share_server_address, + print( + "\nSetting up a public link... we have recently upgraded the " + "way public links are generated. If you encounter any " + "problems, please report the issue and downgrade to gradio version 3.13.0\n." ) - parsed_url = urlparse(share_url) - self.share_url = urlunparse( - (self.share_server_protocol,) + parsed_url[1:] + self.share_url = networking.setup_tunnel( + self.server_name, self.server_port ) print(strings.en["SHARE_LINK_DISPLAY"].format(self.share_url)) if not (quiet): print(strings.en["SHARE_LINK_MESSAGE"]) - except (RuntimeError, httpx.ConnectError): + except RuntimeError: if self.analytics_enabled: - analytics.error_analytics("Not able to set up tunnel") + utils.error_analytics(self.ip_address, "Not able to set up tunnel") self.share_url = None self.share = False - if Path(BINARY_PATH).exists(): - print(strings.en["COULD_NOT_GET_SHARE_LINK"]) - else: - print( - strings.en["COULD_NOT_GET_SHARE_LINK_MISSING_FILE"].format( - BINARY_PATH, - BINARY_URL, - BINARY_FILENAME, - BINARY_FOLDER, - ) - ) + print(strings.en["COULD_NOT_GET_SHARE_LINK"]) else: - if not quiet and not wasm_utils.IS_WASM: + if not (quiet): print(strings.en["PUBLIC_SHARE_TRUE"]) self.share_url = None - if inbrowser and not wasm_utils.IS_WASM: - link = self.share_url if self.share and self.share_url else self.local_url + if inbrowser: + link = self.share_url if self.share else self.local_url webbrowser.open(link) # Check if running in a Python notebook in which case, display inline if inline is None: - inline = utils.ipython_check() + inline = utils.ipython_check() and (auth is None) if inline: + if auth is not None: + print( + "Warning: authentication is not supported inline. Please" + "click the link to access the interface in a new tab." + ) try: from IPython.display import HTML, Javascript, display # type: ignore - if self.share and self.share_url: + if self.share: while not networking.url_ok(self.share_url): time.sleep(0.25) - artifact = HTML( - f'
    ' + display( + HTML( + f'
    ' + ) ) - elif self.is_colab: # modified from /usr/local/lib/python3.7/dist-packages/google/colab/output/_util.py within Colab environment code = """(async (port, path, width, height, cache, element) => { @@ -2275,13 +1496,13 @@ Received outputs: cache=json.dumps(False), ) - artifact = Javascript(code) + display(Javascript(code)) else: - artifact = HTML( - f'
    ' + display( + HTML( + f'
    ' + ) ) - self.artifact = artifact - display(artifact) except ImportError: pass @@ -2291,36 +1512,34 @@ Received outputs: "is_google_colab": self.is_colab, "is_sharing_on": self.share, "share_url": self.share_url, - "enable_queue": True, + "ip_address": self.ip_address, + "enable_queue": self.enable_queue, + "show_tips": self.show_tips, "server_name": server_name, "server_port": server_port, - "is_space": self.space_id is not None, + "is_spaces": self.is_space, "mode": self.mode, } - analytics.launched_analytics(self, data) + utils.launch_analytics(data) + + utils.show_tip(self) # Block main thread if debug==True - if debug or int(os.getenv("GRADIO_DEBUG", "0")) == 1 and not wasm_utils.IS_WASM: + if debug or int(os.getenv("GRADIO_DEBUG", 0)) == 1: self.block_thread() # Block main thread if running in a script to stop script from exiting is_in_interactive_mode = bool(getattr(sys, "ps1", sys.flags.interactive)) - if ( - not prevent_thread_lock - and not is_in_interactive_mode - # In the Wasm env, we don't have to block the main thread because the server won't be shut down after the execution finishes. - # Moreover, we MUST NOT do it because there is only one thread in the Wasm env and blocking it will stop the subsequent code from running. - and not wasm_utils.IS_WASM - ): + if not prevent_thread_lock and not is_in_interactive_mode: self.block_thread() - return TupleNoPrint((self.server_app, self.local_url, self.share_url)) # type: ignore + return TupleNoPrint((self.server_app, self.local_url, self.share_url)) def integrate( self, - comet_ml=None, - wandb: ModuleType | None = None, - mlflow: ModuleType | None = None, + comet_ml: comet_ml.Experiment = None, + wandb: ModuleType("wandb") = None, + mlflow: ModuleType("mlflow") = None, ) -> None: """ A catch-all method for integrating with other libraries. This method should be run after launch() @@ -2334,13 +1553,11 @@ Received outputs: analytics_integration = "CometML" comet_ml.log_other("Created from", "Gradio") if self.share_url is not None: - comet_ml.log_text(f"gradio: {self.share_url}") - comet_ml.end() - elif self.local_url: - comet_ml.log_text(f"gradio: {self.local_url}") + comet_ml.log_text("gradio: " + self.share_url) comet_ml.end() else: - raise ValueError("Please run `launch()` first.") + comet_ml.log_text("gradio: " + self.local_url) + comet_ml.end() if wandb is not None: analytics_integration = "WandB" if self.share_url is not None: @@ -2370,32 +1587,19 @@ Received outputs: mlflow.log_param("Gradio Interface Local Link", self.local_url) if self.analytics_enabled and analytics_integration: data = {"integration": analytics_integration} - analytics.integration_analytics(data) + utils.integration_analytics(data) def close(self, verbose: bool = True) -> None: """ Closes the Interface that was launched and frees the port. """ try: - if wasm_utils.IS_WASM: - # NOTE: - # Normally, queue-related async tasks (e.g. continuous events created by `gr.Blocks.load(..., every=interval)`, whose async tasks are started at the `/queue/data` endpoint function) - # are running in an event loop in the server thread, - # so they will be cancelled by `self.server.close()` below. - # However, in the Wasm env, we don't have the `server` and - # all async tasks are running in the same event loop, `pyodide.webloop.WebLoop` in the main thread, - # so we have to cancel them explicitly so that these tasks won't run after a new app is launched. - self._queue._cancel_asyncio_tasks() - self.server_app._cancel_asyncio_tasks() - self._queue.close() - if self.server: - self.server.close() + if self.enable_queue: + self._queue.close() + self.server.close() self.is_running = False - # So that the startup events (starting the queue) - # happen the next time the app is launched - self.app.startup_events_triggered = False if verbose: - print(f"Closing server running on port: {self.server_port}") + print("Closing server running on port: {}".format(self.server_port)) except (AttributeError, OSError): # can't close if not running pass @@ -2408,129 +1612,37 @@ Received outputs: time.sleep(0.1) except (KeyboardInterrupt, OSError): print("Keyboard interruption in main thread... closing server.") - if self.server: - self.server.close() + self.server.close() for tunnel in CURRENT_TUNNELS: tunnel.kill() def attach_load_events(self): """Add a load event for every component whose initial value should be randomized.""" - if Context.root_block: - for component in Context.root_block.blocks.values(): - if ( - isinstance(component, components.Component) - and component.load_event_to_attach - ): - load_fn, every = component.load_event_to_attach - # Use set_event_trigger to avoid ambiguity between load class/instance method - - dep = self.set_event_trigger( - [EventListenerMethod(self, "load")], - load_fn, - None, - component, - no_target=True, - # If every is None, for sure skip the queue - # else, let the enable_queue parameter take precedence - # this will raise a nice error message is every is used - # without queue - queue=False if every is None else None, - every=every, - )[0] - component.load_event = dep - - def startup_events(self): - """Events that should be run when the app containing this block starts up.""" - self._queue.start() - # So that processing can resume in case the queue was stopped - self._queue.stopped = False - self.create_limiter() - - def queue_enabled_for_fn(self, fn_index: int): - return self.dependencies[fn_index]["queue"] is not False - - def get_api_info(self): - """ - Gets the information needed to generate the API docs from a Blocks. - """ - config = self.config - api_info = {"named_endpoints": {}, "unnamed_endpoints": {}} - for dependency in config["dependencies"]: + for component in Context.root_block.blocks.values(): if ( - not dependency["backend_fn"] - or not dependency["show_api"] - or dependency["api_name"] is False + isinstance(component, components.IOComponent) + and component.load_event_to_attach ): - continue - - dependency_info = {"parameters": [], "returns": []} - skip_endpoint = False - - inputs = dependency["inputs"] - for i in inputs: - for component in config["components"]: - if component["id"] == i: - break - else: - skip_endpoint = True # if component not found, skip endpoint - break - type = component["type"] - if self.blocks[component["id"]].skip_api: - continue - label = component["props"].get("label", f"parameter_{i}") - comp = self.get_component(component["id"]) - if not isinstance(comp, components.Component): - raise TypeError(f"{comp!r} is not a Component") - info = component["api_info"] - example = comp.example_inputs() - python_type = client_utils.json_schema_to_python_type(info) - dependency_info["parameters"].append( - { - "label": label, - "type": info, - "python_type": { - "type": python_type, - "description": info.get("description", ""), - }, - "component": type.capitalize(), - "example_input": example, - } - ) - - outputs = dependency["outputs"] - for o in outputs: - for component in config["components"]: - if component["id"] == o: - break - else: - skip_endpoint = True # if component not found, skip endpoint - break - type = component["type"] - if self.blocks[component["id"]].skip_api: - continue - label = component["props"].get("label", f"value_{o}") - comp = self.get_component(component["id"]) - if not isinstance(comp, components.Component): - raise TypeError(f"{comp!r} is not a Component") - info = component["api_info"] - example = comp.example_inputs() - python_type = client_utils.json_schema_to_python_type(info) - dependency_info["returns"].append( - { - "label": label, - "type": info, - "python_type": { - "type": python_type, - "description": info.get("description", ""), - }, - "component": type.capitalize(), - } + load_fn, every = component.load_event_to_attach + # Use set_event_trigger to avoid ambiguity between load class/instance method + self.set_event_trigger( + "load", + load_fn, + None, + component, + no_target=True, + queue=False, + every=every, ) - if not skip_endpoint: - api_info["named_endpoints"][ - f"/{dependency['api_name']}" - ] = dependency_info + def startup_events(self): + """Events that should be run when the app containing this block starts up.""" + if self.enable_queue: + utils.run_coro_in_background(self._queue.start) + utils.run_coro_in_background(self.create_limiter) - return api_info + def queue_enabled_for_fn(self, fn_index: int): + if self.dependencies[fn_index]["queue"] is None: + return self.enable_queue + return self.dependencies[fn_index]["queue"] diff --git a/gtm/lib/python3.12/site-packages/gradio/components.py b/gtm/lib/python3.12/site-packages/gradio/components.py new file mode 100644 index 0000000000000000000000000000000000000000..129906681e6b87cd127dba0e6f289b5418827724 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/components.py @@ -0,0 +1,4621 @@ +"""Contains all of the components that can be used with Gradio Interface / Blocks. +Along with the docs for each component, you can find the names of example demos that use +each component. These demos are located in the `demo` directory.""" + +from __future__ import annotations + +import inspect +import json +import math +import numbers +import operator +import os +import random +import tempfile +import uuid +import warnings +from copy import deepcopy +from enum import Enum +from pathlib import Path +from types import ModuleType +from typing import TYPE_CHECKING, Any, Callable, Dict, List, Optional, Tuple + +import altair as alt +import matplotlib.figure +import numpy as np +import pandas as pd +import PIL +import PIL.ImageOps +from ffmpy import FFmpeg +from markdown_it import MarkdownIt +from mdit_py_plugins.dollarmath import dollarmath_plugin +from pandas.api.types import is_numeric_dtype + +from gradio import media_data, processing_utils, utils +from gradio.blocks import Block +from gradio.context import Context +from gradio.documentation import document, set_documentation_group +from gradio.events import ( + Blurrable, + Changeable, + Clearable, + Clickable, + Editable, + Playable, + Streamable, + Submittable, + Uploadable, +) +from gradio.layouts import Column, Form, Row +from gradio.processing_utils import TempFileManager +from gradio.serializing import ( + FileSerializable, + ImgSerializable, + JSONSerializable, + Serializable, + SimpleSerializable, +) + +if TYPE_CHECKING: + from typing import TypedDict + + class DataframeData(TypedDict): + headers: List[str] + data: List[List[str | int | bool]] + + +set_documentation_group("component") + + +class _Keywords(Enum): + NO_VALUE = "NO_VALUE" # Used as a sentinel to determine if nothing is provided as a argument for `value` in `Component.update()` + FINISHED_ITERATING = "FINISHED_ITERATING" # Used to skip processing of a component's value (needed for generators + state) + + +class Component(Block): + """ + A base class for defining the methods that all gradio components should have. + """ + + def __str__(self): + return self.__repr__() + + def __repr__(self): + return f"{self.get_block_name()}" + + def get_config(self): + """ + :return: a dictionary with context variables for the javascript file associated with the context + """ + return { + "name": self.get_block_name(), + **super().get_config(), + } + + +class IOComponent(Component, Serializable): + """ + A base class for defining methods that all input/output components should have. + """ + + def __init__( + self, + *, + value: Any = None, + label: Optional[str] = None, + show_label: bool = True, + interactive: Optional[bool] = None, + visible: bool = True, + elem_id: Optional[str] = None, + load_fn: Optional[Callable] = None, + every: Optional[float] = None, + **kwargs, + ): + super().__init__(elem_id=elem_id, visible=visible, **kwargs) + + self.label = label + self.show_label = show_label + self.interactive = interactive + + self.load_event = None + self.load_event_to_attach = None + load_fn, initial_value = self.get_load_fn_and_initial_value(value) + self.value = self.postprocess(initial_value) + if callable(load_fn): + self.load_event = self.attach_load_event(load_fn, every) + + self.set_interpret_parameters() + + def get_config(self): + return { + "label": self.label, + "show_label": self.show_label, + "interactive": self.interactive, + **super().get_config(), + } + + def preprocess(self, x: Any) -> Any: + """ + Any preprocessing needed to be performed on function input. + """ + return x + + def set_interpret_parameters(self): + """ + Set any parameters for interpretation. + """ + return self + + def get_interpretation_neighbors(self, x: Any) -> Tuple[List[Any], Dict[Any], bool]: + """ + Generates values similar to input to be used to interpret the significance of the input in the final output. + Parameters: + x: Input to interface + Returns: (neighbor_values, interpret_kwargs, interpret_by_removal) + neighbor_values: Neighboring values to input x to compute for interpretation + interpret_kwargs: Keyword arguments to be passed to get_interpretation_scores + interpret_by_removal: If True, returned neighbors are values where the interpreted subsection was removed. If False, returned neighbors are values where the interpreted subsection was modified to a different value. + """ + return [], {}, True + + def get_interpretation_scores( + self, x: Any, neighbors: List[Any], scores: List[float], **kwargs + ) -> List[Any]: + """ + Arrange the output values from the neighbors into interpretation scores for the interface to render. + Parameters: + x: Input to interface + neighbors: Neighboring values to input x used for interpretation. + scores: Output value corresponding to each neighbor in neighbors + Returns: + Arrangement of interpretation scores for interfaces to render. + """ + pass + + def generate_sample(self) -> Any: + """ + Returns a sample value of the input that would be accepted by the api. Used for api documentation. + """ + pass + + def postprocess(self, y): + """ + Any postprocessing needed to be performed on function output. + """ + return y + + def style( + self, + *, + container: Optional[bool] = None, + **kwargs, + ): + """ + This method can be used to change the appearance of the component. + Parameters: + container: If True, will place the component in a container - providing some extra padding around the border. + """ + put_deprecated_params_in_box = False + if "rounded" in kwargs: + warnings.warn( + "'rounded' styling is no longer supported. To round adjacent components together, place them in a Column(variant='box')." + ) + if isinstance(kwargs["rounded"], list) or isinstance( + kwargs["rounded"], tuple + ): + put_deprecated_params_in_box = True + kwargs.pop("rounded") + if "margin" in kwargs: + warnings.warn( + "'margin' styling is no longer supported. To place adjacent components together without margin, place them in a Column(variant='box')." + ) + if isinstance(kwargs["margin"], list) or isinstance( + kwargs["margin"], tuple + ): + put_deprecated_params_in_box = True + kwargs.pop("margin") + if "border" in kwargs: + warnings.warn( + "'border' styling is no longer supported. To place adjacent components in a shared border, place them in a Column(variant='box')." + ) + kwargs.pop("border") + if container is not None: + self._style["container"] = container + if len(kwargs): + for key in kwargs: + warnings.warn(f"Unknown style parameter: {key}") + if ( + put_deprecated_params_in_box + and getattr(self, "parent", None).__class__ in [Row, Column] + and self.parent.variant == "default" + ): + self.parent.variant = "compact" + return self + + @staticmethod + def add_interactive_to_config(config, interactive): + if interactive is not None: + config["mode"] = "dynamic" if interactive else "static" + return config + + @staticmethod + def get_load_fn_and_initial_value(value): + if callable(value): + initial_value = value() + load_fn = value + else: + initial_value = value + load_fn = None + return load_fn, initial_value + + def attach_load_event(self, callable: Callable, every: int | None): + """Add a load event that runs `callable`, optionally every `every` seconds.""" + if Context.root_block: + return Context.root_block.load( + callable, + None, + self, + no_target=True, + every=every, + ) + else: + self.load_event_to_attach = (callable, every) + + def as_example(self, input_data): + """Return the input data in a way that can be displayed by the examples dataset component in the front-end.""" + return input_data + + +class FormComponent: + expected_parent = Form + + +@document("change", "submit", "blur", "style") +class Textbox( + Changeable, Submittable, Blurrable, IOComponent, SimpleSerializable, FormComponent +): + """ + Creates a textarea for user to enter string input or display string output. + Preprocessing: passes textarea value as a {str} into the function. + Postprocessing: expects a {str} returned from function and sets textarea value to it. + Examples-format: a {str} representing the textbox input. + + Demos: hello_world, diff_texts, sentence_builder + Guides: creating_a_chatbot, real_time_speech_recognition + """ + + def __init__( + self, + value: Optional[str | Callable] = "", + *, + lines: int = 1, + max_lines: int = 20, + placeholder: Optional[str] = None, + label: Optional[str] = None, + every: float | None = None, + show_label: bool = True, + interactive: Optional[bool] = None, + visible: bool = True, + elem_id: Optional[str] = None, + type: str = "text", + **kwargs, + ): + """ + Parameters: + value: default text to provide in textarea. If callable, the function will be called whenever the app loads to set the initial value of the component. + lines: minimum number of line rows to provide in textarea. + max_lines: maximum number of line rows to provide in textarea. + placeholder: placeholder hint to provide behind textarea. + label: component name in interface. + every: If `value` is a callable, run the function 'every' number of seconds while the client connection is open. Has no effect otherwise. Queue must be enabled. The event can be accessed (e.g. to cancel it) via this component's .load_event attribute. + show_label: if True, will display label. + interactive: if True, will be rendered as an editable textbox; if False, editing will be disabled. If not provided, this is inferred based on whether the component is used as an input or output. + visible: If False, component will be hidden. + elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. + type: The type of textbox. One of: 'text', 'password', 'email', Default is 'text'. + """ + if type not in ["text", "password", "email"]: + raise ValueError('`type` must be one of "text", "password", or "email".') + + # + self.lines = lines + self.max_lines = max_lines if type == "text" else 1 + self.placeholder = placeholder + self.interpret_by_tokens = True + IOComponent.__init__( + self, + label=label, + every=every, + show_label=show_label, + interactive=interactive, + visible=visible, + elem_id=elem_id, + value=value, + **kwargs, + ) + self.cleared_value = "" + self.test_input = value + self.type = type + + def get_config(self): + return { + "lines": self.lines, + "max_lines": self.max_lines, + "placeholder": self.placeholder, + "value": self.value, + "type": self.type, + **IOComponent.get_config(self), + } + + @staticmethod + def update( + value: Optional[str] = _Keywords.NO_VALUE, + lines: Optional[int] = None, + max_lines: Optional[int] = None, + placeholder: Optional[str] = None, + label: Optional[str] = None, + show_label: Optional[bool] = None, + visible: Optional[bool] = None, + interactive: Optional[bool] = None, + type: Optional[str] = None, + ): + updated_config = { + "lines": lines, + "max_lines": max_lines, + "placeholder": placeholder, + "label": label, + "show_label": show_label, + "visible": visible, + "value": value, + "type": type, + "__type__": "update", + } + return IOComponent.add_interactive_to_config(updated_config, interactive) + + def generate_sample(self) -> str: + return "Hello World" + + def preprocess(self, x: str | None) -> str | None: + """ + Preprocesses input (converts it to a string) before passing it to the function. + Parameters: + x: text + Returns: + text + """ + return None if x is None else str(x) + + def postprocess(self, y: str | None) -> str | None: + """ + Postproccess the function output y by converting it to a str before passing it to the frontend. + Parameters: + y: function output to postprocess. + Returns: + text + """ + return None if y is None else str(y) + + def set_interpret_parameters( + self, separator: str = " ", replacement: Optional[str] = None + ): + """ + Calculates interpretation score of characters in input by splitting input into tokens, then using a "leave one out" method to calculate the score of each token by removing each token and measuring the delta of the output value. + Parameters: + separator: Separator to use to split input into tokens. + replacement: In the "leave one out" step, the text that the token should be replaced with. If None, the token is removed altogether. + """ + self.interpretation_separator = separator + self.interpretation_replacement = replacement + return self + + def tokenize(self, x: str) -> Tuple[List[str], List[str], None]: + """ + Tokenizes an input string by dividing into "words" delimited by self.interpretation_separator + """ + tokens = x.split(self.interpretation_separator) + leave_one_out_strings = [] + for index in range(len(tokens)): + leave_one_out_set = list(tokens) + if self.interpretation_replacement is None: + leave_one_out_set.pop(index) + else: + leave_one_out_set[index] = self.interpretation_replacement + leave_one_out_strings.append( + self.interpretation_separator.join(leave_one_out_set) + ) + return tokens, leave_one_out_strings, None + + def get_masked_inputs( + self, tokens: List[str], binary_mask_matrix: List[List[int]] + ) -> List[str]: + """ + Constructs partially-masked sentences for SHAP interpretation + """ + masked_inputs = [] + for binary_mask_vector in binary_mask_matrix: + masked_input = np.array(tokens)[np.array(binary_mask_vector, dtype=bool)] + masked_inputs.append(self.interpretation_separator.join(masked_input)) + return masked_inputs + + def get_interpretation_scores( + self, x, neighbors, scores: List[float], tokens: List[str], masks=None, **kwargs + ) -> List[Tuple[str, float]]: + """ + Returns: + Each tuple set represents a set of characters and their corresponding interpretation score. + """ + result = [] + for token, score in zip(tokens, scores): + result.append((token, score)) + result.append((self.interpretation_separator, 0)) + return result + + +@document("change", "submit", "style") +class Number( + Changeable, Submittable, Blurrable, IOComponent, SimpleSerializable, FormComponent +): + """ + Creates a numeric field for user to enter numbers as input or display numeric output. + Preprocessing: passes field value as a {float} or {int} into the function, depending on `precision`. + Postprocessing: expects an {int} or {float} returned from the function and sets field value to it. + Examples-format: a {float} or {int} representing the number's value. + + Demos: tax_calculator, titanic_survival, blocks_simple_squares + """ + + def __init__( + self, + value: Optional[float | Callable] = None, + *, + label: Optional[str] = None, + every: float | None = None, + show_label: bool = True, + interactive: Optional[bool] = None, + visible: bool = True, + elem_id: Optional[str] = None, + precision: Optional[int] = None, + **kwargs, + ): + """ + Parameters: + value: default value. If callable, the function will be called whenever the app loads to set the initial value of the component. + label: component name in interface. + every: If `value` is a callable, run the function 'every' number of seconds while the client connection is open. Has no effect otherwise. Queue must be enabled. The event can be accessed (e.g. to cancel it) via this component's .load_event attribute. + show_label: if True, will display label. + interactive: if True, will be editable; if False, editing will be disabled. If not provided, this is inferred based on whether the component is used as an input or output. + visible: If False, component will be hidden. + elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. + precision: Precision to round input/output to. If set to 0, will round to nearest integer and covert type to int. If None, no rounding happens. + """ + self.precision = precision + self.interpret_by_tokens = False + IOComponent.__init__( + self, + label=label, + every=every, + show_label=show_label, + interactive=interactive, + visible=visible, + elem_id=elem_id, + value=value, + **kwargs, + ) + self.test_input = self.value if self.value is not None else 1 + + @staticmethod + def _round_to_precision( + num: float | int | None, precision: int | None + ) -> float | int | None: + """ + Round to a given precision. + + If precision is None, no rounding happens. If 0, num is converted to int. + + Parameters: + num: Number to round. + precision: Precision to round to. + Returns: + rounded number + """ + if num is None: + return None + if precision is None: + return float(num) + elif precision == 0: + return int(round(num, precision)) + else: + return round(num, precision) + + def get_config(self): + return { + "value": self.value, + **IOComponent.get_config(self), + } + + @staticmethod + def update( + value: Optional[float] = _Keywords.NO_VALUE, + label: Optional[str] = None, + show_label: Optional[bool] = None, + interactive: Optional[bool] = None, + visible: Optional[bool] = None, + ): + updated_config = { + "label": label, + "show_label": show_label, + "visible": visible, + "value": value, + "__type__": "update", + } + return IOComponent.add_interactive_to_config(updated_config, interactive) + + def preprocess(self, x: float | None) -> float | None: + """ + Parameters: + x: numeric input + Returns: + number representing function input + """ + if x is None: + return None + return self._round_to_precision(x, self.precision) + + def postprocess(self, y: float | None) -> float | None: + """ + Any postprocessing needed to be performed on function output. + + Parameters: + y: numeric output + Returns: + number representing function output + """ + if y is None: + return None + return self._round_to_precision(y, self.precision) + + def set_interpret_parameters( + self, steps: int = 3, delta: float = 1, delta_type: str = "percent" + ): + """ + Calculates interpretation scores of numeric values close to the input number. + Parameters: + steps: Number of nearby values to measure in each direction (above and below the input number). + delta: Size of step in each direction between nearby values. + delta_type: "percent" if delta step between nearby values should be a calculated as a percent, or "absolute" if delta should be a constant step change. + """ + self.interpretation_steps = steps + self.interpretation_delta = delta + self.interpretation_delta_type = delta_type + return self + + def get_interpretation_neighbors(self, x: float | int) -> Tuple[List[float], Dict]: + x = self._round_to_precision(x, self.precision) + if self.interpretation_delta_type == "percent": + delta = 1.0 * self.interpretation_delta * x / 100 + elif self.interpretation_delta_type == "absolute": + delta = self.interpretation_delta + else: + delta = self.interpretation_delta + if self.precision == 0 and math.floor(delta) != delta: + raise ValueError( + f"Delta value {delta} is not an integer and precision=0. Cannot generate valid set of neighbors. " + "If delta_type='percent', pick a value of delta such that x * delta is an integer. " + "If delta_type='absolute', pick a value of delta that is an integer." + ) + # run_interpretation will preprocess the neighbors so no need to covert to int here + negatives = (x + np.arange(-self.interpretation_steps, 0) * delta).tolist() + positives = (x + np.arange(1, self.interpretation_steps + 1) * delta).tolist() + return negatives + positives, {} + + def get_interpretation_scores( + self, x: Number, neighbors: List[float], scores: List[float], **kwargs + ) -> List[Tuple[float, float]]: + """ + Returns: + Each tuple set represents a numeric value near the input and its corresponding interpretation score. + """ + interpretation = list(zip(neighbors, scores)) + interpretation.insert(int(len(interpretation) / 2), [x, None]) + return interpretation + + def generate_sample(self) -> float: + return self._round_to_precision(1, self.precision) + + +@document("change", "style") +class Slider(Changeable, IOComponent, SimpleSerializable, FormComponent): + """ + Creates a slider that ranges from `minimum` to `maximum` with a step size of `step`. + Preprocessing: passes slider value as a {float} into the function. + Postprocessing: expects an {int} or {float} returned from function and sets slider value to it as long as it is within range. + Examples-format: A {float} or {int} representing the slider's value. + + Demos: sentence_builder, generate_tone, titanic_survival, interface_random_slider, blocks_random_slider + Guides: create_your_own_friends_with_a_gan + """ + + def __init__( + self, + minimum: float = 0, + maximum: float = 100, + value: Optional[float | Callable] = None, + *, + step: Optional[float] = None, + label: Optional[str] = None, + every: float | None = None, + show_label: bool = True, + interactive: Optional[bool] = None, + visible: bool = True, + elem_id: Optional[str] = None, + randomize: bool = False, + **kwargs, + ): + """ + Parameters: + minimum: minimum value for slider. + maximum: maximum value for slider. + value: default value. If callable, the function will be called whenever the app loads to set the initial value of the component. Ignored if randomized=True. + step: increment between slider values. + label: component name in interface. + every: If `value` is a callable, run the function 'every' number of seconds while the client connection is open. Has no effect otherwise. Queue must be enabled. The event can be accessed (e.g. to cancel it) via this component's .load_event attribute. + show_label: if True, will display label. + interactive: if True, slider will be adjustable; if False, adjusting will be disabled. If not provided, this is inferred based on whether the component is used as an input or output. + visible: If False, component will be hidden. + elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. + randomize: If True, the value of the slider when the app loads is taken uniformly at random from the range given by the minimum and maximum. + """ + self.minimum = minimum + self.maximum = maximum + if step is None: + difference = maximum - minimum + power = math.floor(math.log10(difference) - 2) + step = 10**power + self.step = step + if randomize: + value = self.get_random_value + IOComponent.__init__( + self, + label=label, + every=every, + show_label=show_label, + interactive=interactive, + visible=visible, + elem_id=elem_id, + value=value, + **kwargs, + ) + self.cleared_value = self.value + self.test_input = self.value + self.interpret_by_tokens = False + + def get_config(self): + return { + "minimum": self.minimum, + "maximum": self.maximum, + "step": self.step, + "value": self.value, + **IOComponent.get_config(self), + } + + def get_random_value(self): + n_steps = int((self.maximum - self.minimum) / self.step) + step = random.randint(0, n_steps) + value = self.minimum + step * self.step + # Round to number of decimals in step so that UI doesn't display long decimals + n_decimals = max(str(self.step)[::-1].find("."), 0) + if n_decimals: + value = round(value, n_decimals) + return value + + @staticmethod + def update( + value: Optional[float] = _Keywords.NO_VALUE, + minimum: Optional[float] = None, + maximum: Optional[float] = None, + step: Optional[float] = None, + label: Optional[str] = None, + show_label: Optional[bool] = None, + interactive: Optional[bool] = None, + visible: Optional[bool] = None, + ): + updated_config = { + "minimum": minimum, + "maximum": maximum, + "step": step, + "label": label, + "show_label": show_label, + "interactive": interactive, + "visible": visible, + "value": value, + "__type__": "update", + } + return IOComponent.add_interactive_to_config(updated_config, interactive) + + def generate_sample(self) -> float: + return self.maximum + + def postprocess(self, y: float | None) -> float | None: + """ + Any postprocessing needed to be performed on function output. + Parameters: + y: numeric output + Returns: + numeric output or minimum number if None + """ + return self.minimum if y is None else y + + def set_interpret_parameters(self, steps: int = 8) -> "Slider": + """ + Calculates interpretation scores of numeric values ranging between the minimum and maximum values of the slider. + Parameters: + steps: Number of neighboring values to measure between the minimum and maximum values of the slider range. + """ + self.interpretation_steps = steps + return self + + def get_interpretation_neighbors(self, x) -> Tuple[object, dict]: + return ( + np.linspace(self.minimum, self.maximum, self.interpretation_steps).tolist(), + {}, + ) + + def get_interpretation_scores( + self, x, neighbors, scores: List[float], **kwargs + ) -> List[float]: + """ + Returns: + Each value represents the score corresponding to an evenly spaced range of inputs between the minimum and maximum slider values. + """ + return scores + + def style( + self, + *, + container: Optional[bool] = None, + ): + """ + This method can be used to change the appearance of the slider. + Parameters: + container: If True, will place the component in a container - providing some extra padding around the border. + """ + return IOComponent.style( + self, + container=container, + ) + + +@document("change", "style") +class Checkbox(Changeable, IOComponent, SimpleSerializable, FormComponent): + """ + Creates a checkbox that can be set to `True` or `False`. + + Preprocessing: passes the status of the checkbox as a {bool} into the function. + Postprocessing: expects a {bool} returned from the function and, if it is True, checks the checkbox. + Examples-format: a {bool} representing whether the box is checked. + Demos: sentence_builder, titanic_survival + """ + + def __init__( + self, + value: bool | Callable = False, + *, + label: Optional[str] = None, + every: float | None = None, + show_label: bool = True, + interactive: Optional[bool] = None, + visible: bool = True, + elem_id: Optional[str] = None, + **kwargs, + ): + """ + Parameters: + value: if True, checked by default. If callable, the function will be called whenever the app loads to set the initial value of the component. + label: component name in interface. + every: If `value` is a callable, run the function 'every' number of seconds while the client connection is open. Has no effect otherwise. Queue must be enabled. The event can be accessed (e.g. to cancel it) via this component's .load_event attribute. + show_label: if True, will display label. + interactive: if True, this checkbox can be checked; if False, checking will be disabled. If not provided, this is inferred based on whether the component is used as an input or output. + visible: If False, component will be hidden. + elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. + """ + self.test_input = True + self.interpret_by_tokens = False + IOComponent.__init__( + self, + label=label, + every=every, + show_label=show_label, + interactive=interactive, + visible=visible, + elem_id=elem_id, + value=value, + **kwargs, + ) + + def get_config(self): + return { + "value": self.value, + **IOComponent.get_config(self), + } + + @staticmethod + def update( + value: Optional[bool] = _Keywords.NO_VALUE, + label: Optional[str] = None, + show_label: Optional[bool] = None, + interactive: Optional[bool] = None, + visible: Optional[bool] = None, + ): + updated_config = { + "label": label, + "show_label": show_label, + "interactive": interactive, + "visible": visible, + "value": value, + "__type__": "update", + } + return IOComponent.add_interactive_to_config(updated_config, interactive) + + def generate_sample(self): + return True + + def set_interpret_parameters(self): + """ + Calculates interpretation score of the input by comparing the output against the output when the input is the inverse boolean value of x. + """ + return self + + def get_interpretation_neighbors(self, x): + return [not x], {} + + def get_interpretation_scores(self, x, neighbors, scores, **kwargs): + """ + Returns: + The first value represents the interpretation score if the input is False, and the second if the input is True. + """ + if x: + return scores[0], None + else: + return None, scores[0] + + +@document("change", "style") +class CheckboxGroup(Changeable, IOComponent, SimpleSerializable, FormComponent): + """ + Creates a set of checkboxes of which a subset can be checked. + Preprocessing: passes the list of checked checkboxes as a {List[str]} or their indices as a {List[int]} into the function, depending on `type`. + Postprocessing: expects a {List[str]}, each element of which becomes a checked checkbox. + Examples-format: a {List[str]} representing the values to be checked. + Demos: sentence_builder, titanic_survival + """ + + def __init__( + self, + choices: Optional[List[str]] = None, + *, + value: List[str] | Callable = None, + type: str = "value", + label: Optional[str] = None, + every: float | None = None, + show_label: bool = True, + interactive: Optional[bool] = None, + visible: bool = True, + elem_id: Optional[str] = None, + **kwargs, + ): + """ + Parameters: + choices: list of options to select from. + value: default selected list of options. If callable, the function will be called whenever the app loads to set the initial value of the component. + type: Type of value to be returned by component. "value" returns the list of strings of the choices selected, "index" returns the list of indicies of the choices selected. + label: component name in interface. + every: If `value` is a callable, run the function 'every' number of seconds while the client connection is open. Has no effect otherwise. Queue must be enabled. The event can be accessed (e.g. to cancel it) via this component's .load_event attribute. + show_label: if True, will display label. + interactive: if True, choices in this checkbox group will be checkable; if False, checking will be disabled. If not provided, this is inferred based on whether the component is used as an input or output. + visible: If False, component will be hidden. + elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. + """ + self.choices = choices or [] + self.cleared_value = [] + valid_types = ["value", "index"] + if type not in valid_types: + raise ValueError( + f"Invalid value for parameter `type`: {type}. Please choose from one of: {valid_types}" + ) + self.type = type + self.test_input = self.choices + self.interpret_by_tokens = False + IOComponent.__init__( + self, + label=label, + every=every, + show_label=show_label, + interactive=interactive, + visible=visible, + elem_id=elem_id, + value=value, + **kwargs, + ) + + def get_config(self): + return { + "choices": self.choices, + "value": self.value, + **IOComponent.get_config(self), + } + + @staticmethod + def update( + value: Optional[List[str]] = _Keywords.NO_VALUE, + choices: Optional[List[str]] = None, + label: Optional[str] = None, + show_label: Optional[bool] = None, + interactive: Optional[bool] = None, + visible: Optional[bool] = None, + ): + updated_config = { + "choices": choices, + "label": label, + "show_label": show_label, + "interactive": interactive, + "visible": visible, + "value": value, + "__type__": "update", + } + return IOComponent.add_interactive_to_config(updated_config, interactive) + + def generate_sample(self): + return self.choices + + def preprocess(self, x: List[str]) -> List[str] | List[int]: + """ + Parameters: + x: list of selected choices + Returns: + list of selected choices as strings or indices within choice list + """ + if self.type == "value": + return x + elif self.type == "index": + return [self.choices.index(choice) for choice in x] + else: + raise ValueError( + "Unknown type: " + + str(self.type) + + ". Please choose from: 'value', 'index'." + ) + + def postprocess(self, y: List[str] | None) -> List[str]: + """ + Any postprocessing needed to be performed on function output. + Parameters: + y: List of selected choices + Returns: + List of selected choices + """ + return [] if y is None else y + + def set_interpret_parameters(self): + """ + Calculates interpretation score of each choice in the input by comparing the output against the outputs when each choice in the input is independently either removed or added. + """ + return self + + def get_interpretation_neighbors(self, x): + leave_one_out_sets = [] + for choice in self.choices: + leave_one_out_set = list(x) + if choice in leave_one_out_set: + leave_one_out_set.remove(choice) + else: + leave_one_out_set.append(choice) + leave_one_out_sets.append(leave_one_out_set) + return leave_one_out_sets, {} + + def get_interpretation_scores(self, x, neighbors, scores, **kwargs): + """ + Returns: + For each tuple in the list, the first value represents the interpretation score if the input is False, and the second if the input is True. + """ + final_scores = [] + for choice, score in zip(self.choices, scores): + if choice in x: + score_set = [score, None] + else: + score_set = [None, score] + final_scores.append(score_set) + return final_scores + + def style( + self, + *, + item_container: Optional[bool] = None, + container: Optional[bool] = None, + **kwargs, + ): + """ + This method can be used to change the appearance of the CheckboxGroup. + Parameters: + item_container: If True, will place the items in a container. + container: If True, will place the component in a container - providing some extra padding around the border. + """ + if item_container is not None: + self._style["item_container"] = item_container + + return IOComponent.style(self, container=container, **kwargs) + + +@document("change", "style") +class Radio(Changeable, IOComponent, SimpleSerializable, FormComponent): + """ + Creates a set of radio buttons of which only one can be selected. + Preprocessing: passes the value of the selected radio button as a {str} or its index as an {int} into the function, depending on `type`. + Postprocessing: expects a {str} corresponding to the value of the radio button to be selected. + Examples-format: a {str} representing the radio option to select. + + Demos: sentence_builder, titanic_survival, blocks_essay + """ + + def __init__( + self, + choices: Optional[List[str]] = None, + *, + value: Optional[str | Callable] = None, + type: str = "value", + label: Optional[str] = None, + every: float | None = None, + show_label: bool = True, + interactive: Optional[bool] = None, + visible: bool = True, + elem_id: Optional[str] = None, + **kwargs, + ): + """ + Parameters: + choices: list of options to select from. + value: the button selected by default. If None, no button is selected by default. If callable, the function will be called whenever the app loads to set the initial value of the component. + type: Type of value to be returned by component. "value" returns the string of the choice selected, "index" returns the index of the choice selected. + label: component name in interface. + every: If `value` is a callable, run the function 'every' number of seconds while the client connection is open. Has no effect otherwise. Queue must be enabled. The event can be accessed (e.g. to cancel it) via this component's .load_event attribute. + show_label: if True, will display label. + interactive: if True, choices in this radio group will be selectable; if False, selection will be disabled. If not provided, this is inferred based on whether the component is used as an input or output. + visible: If False, component will be hidden. + elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. + """ + self.choices = choices or [] + valid_types = ["value", "index"] + if type not in valid_types: + raise ValueError( + f"Invalid value for parameter `type`: {type}. Please choose from one of: {valid_types}" + ) + self.type = type + self.test_input = self.choices[0] if len(self.choices) else None + self.interpret_by_tokens = False + IOComponent.__init__( + self, + label=label, + every=every, + show_label=show_label, + interactive=interactive, + visible=visible, + elem_id=elem_id, + value=value, + **kwargs, + ) + self.cleared_value = self.value + + def get_config(self): + return { + "choices": self.choices, + "value": self.value, + **IOComponent.get_config(self), + } + + @staticmethod + def update( + value: Optional[Any] = _Keywords.NO_VALUE, + choices: Optional[List[str]] = None, + label: Optional[str] = None, + show_label: Optional[bool] = None, + interactive: Optional[bool] = None, + visible: Optional[bool] = None, + ): + updated_config = { + "choices": choices, + "label": label, + "show_label": show_label, + "interactive": interactive, + "visible": visible, + "value": value, + "__type__": "update", + } + return IOComponent.add_interactive_to_config(updated_config, interactive) + + def generate_sample(self): + return self.choices[0] + + def preprocess(self, x: str) -> str | int: + """ + Parameters: + x: selected choice + Returns: + selected choice as string or index within choice list + """ + if self.type == "value": + return x + elif self.type == "index": + if x is None: + return None + else: + return self.choices.index(x) + else: + raise ValueError( + "Unknown type: " + + str(self.type) + + ". Please choose from: 'value', 'index'." + ) + + def set_interpret_parameters(self): + """ + Calculates interpretation score of each choice by comparing the output against each of the outputs when alternative choices are selected. + """ + return self + + def get_interpretation_neighbors(self, x): + choices = list(self.choices) + choices.remove(x) + return choices, {} + + def get_interpretation_scores(self, x, neighbors, scores, **kwargs) -> List: + """ + Returns: + Each value represents the interpretation score corresponding to each choice. + """ + scores.insert(self.choices.index(x), None) + return scores + + def style( + self, + *, + item_container: Optional[bool] = None, + container: Optional[bool] = None, + **kwargs, + ): + """ + This method can be used to change the appearance of the radio component. + Parameters: + item_container: If True, will place items in a container. + container: If True, will place the component in a container - providing some extra padding around the border. + """ + if item_container is not None: + self._style["item_container"] = item_container + + return IOComponent.style(self, container=container, **kwargs) + + +@document("change", "style") +class Dropdown(Radio): + """ + Creates a dropdown of which only one entry can be selected. + Preprocessing: passes the value of the selected dropdown entry as a {str} or its index as an {int} into the function, depending on `type`. + Postprocessing: expects a {str} corresponding to the value of the dropdown entry to be selected. + Examples-format: a {str} representing the drop down value to select. + Demos: sentence_builder, titanic_survival + """ + + def __init__( + self, + choices: Optional[List[str]] = None, + *, + value: Optional[str | Callable] = None, + type: str = "value", + label: Optional[str] = None, + every: float | None = None, + show_label: bool = True, + interactive: Optional[bool] = None, + visible: bool = True, + elem_id: Optional[str] = None, + **kwargs, + ): + """ + Parameters: + choices: list of options to select from. + value: default value selected in dropdown. If None, no value is selected by default. If callable, the function will be called whenever the app loads to set the initial value of the component. + type: Type of value to be returned by component. "value" returns the string of the choice selected, "index" returns the index of the choice selected. + label: component name in interface. + every: If `value` is a callable, run the function 'every' number of seconds while the client connection is open. Has no effect otherwise. Queue must be enabled. The event can be accessed (e.g. to cancel it) via this component's .load_event attribute. + show_label: if True, will display label. + interactive: if True, choices in this dropdown will be selectable; if False, selection will be disabled. If not provided, this is inferred based on whether the component is used as an input or output. + visible: If False, component will be hidden. + elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. + """ + Radio.__init__( + self, + value=value, + choices=choices, + type=type, + label=label, + every=every, + show_label=show_label, + interactive=interactive, + visible=visible, + elem_id=elem_id, + **kwargs, + ) + + def style(self, *, container: Optional[bool] = None, **kwargs): + """ + This method can be used to change the appearance of the Dropdown. + Parameters: + container: If True, will place the component in a container - providing some extra padding around the border. + """ + return IOComponent.style(self, container=container, **kwargs) + + +@document("edit", "clear", "change", "stream", "change", "style") +class Image( + Editable, + Clearable, + Changeable, + Streamable, + Uploadable, + IOComponent, + ImgSerializable, +): + """ + Creates an image component that can be used to upload/draw images (as an input) or display images (as an output). + Preprocessing: passes the uploaded image as a {numpy.array}, {PIL.Image} or {str} filepath depending on `type` -- unless `tool` is `sketch` AND source is one of `upload` or `webcam`. In these cases, a {dict} with keys `image` and `mask` is passed, and the format of the corresponding values depends on `type`. + Postprocessing: expects a {numpy.array}, {PIL.Image} or {str} or {pathlib.Path} filepath to an image and displays the image. + Examples-format: a {str} filepath to a local file that contains the image. + Demos: image_mod, image_mod_default_image + Guides: Gradio_and_ONNX_on_Hugging_Face, image_classification_in_pytorch, image_classification_in_tensorflow, image_classification_with_vision_transformers, building_a_pictionary_app, create_your_own_friends_with_a_gan + """ + + def __init__( + self, + value: Optional[str | PIL.Image | np.narray] = None, + *, + shape: Tuple[int, int] = None, + image_mode: str = "RGB", + invert_colors: bool = False, + source: str = "upload", + tool: str = None, + type: str = "numpy", + label: Optional[str] = None, + every: float | None = None, + show_label: bool = True, + interactive: Optional[bool] = None, + visible: bool = True, + streaming: bool = False, + elem_id: Optional[str] = None, + mirror_webcam: bool = True, + **kwargs, + ): + """ + Parameters: + value: A PIL Image, numpy array, path or URL for the default value that Image component is going to take. If callable, the function will be called whenever the app loads to set the initial value of the component. + shape: (width, height) shape to crop and resize image to; if None, matches input image size. Pass None for either width or height to only crop and resize the other. + image_mode: "RGB" if color, or "L" if black and white. + invert_colors: whether to invert the image as a preprocessing step. + source: Source of image. "upload" creates a box where user can drop an image file, "webcam" allows user to take snapshot from their webcam, "canvas" defaults to a white image that can be edited and drawn upon with tools. + tool: Tools used for editing. "editor" allows a full screen editor (and is the default if source is "upload" or "webcam"), "select" provides a cropping and zoom tool, "sketch" allows you to create a binary sketch (and is the default if source="canvas"), and "color-sketch" allows you to created a sketch in different colors. "color-sketch" can be used with source="upload" or "webcam" to allow sketching on an image. "sketch" can also be used with "upload" or "webcam" to create a mask over an image and in that case both the image and mask are passed into the function as a dictionary with keys "image" and "mask" respectively. + type: The format the image is converted to before being passed into the prediction function. "numpy" converts the image to a numpy array with shape (width, height, 3) and values from 0 to 255, "pil" converts the image to a PIL image object, "filepath" passes a str path to a temporary file containing the image. + label: component name in interface. + every: If `value` is a callable, run the function 'every' number of seconds while the client connection is open. Has no effect otherwise. Queue must be enabled. The event can be accessed (e.g. to cancel it) via this component's .load_event attribute. + show_label: if True, will display label. + interactive: if True, will allow users to upload and edit an image; if False, can only be used to display images. If not provided, this is inferred based on whether the component is used as an input or output. + visible: If False, component will be hidden. + streaming: If True when used in a `live` interface, will automatically stream webcam feed. Only valid is source is 'webcam'. + elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. + mirror_webcam: If True webcam will be mirrored. Default is True. + """ + self.mirror_webcam = mirror_webcam + valid_types = ["numpy", "pil", "filepath"] + if type not in valid_types: + raise ValueError( + f"Invalid value for parameter `type`: {type}. Please choose from one of: {valid_types}" + ) + self.type = type + self.shape = shape + self.image_mode = image_mode + valid_sources = ["upload", "webcam", "canvas"] + if source not in valid_sources: + raise ValueError( + f"Invalid value for parameter `source`: {source}. Please choose from one of: {valid_sources}" + ) + self.source = source + if tool is None: + self.tool = "sketch" if source == "canvas" else "editor" + else: + self.tool = tool + self.invert_colors = invert_colors + self.test_input = deepcopy(media_data.BASE64_IMAGE) + self.interpret_by_tokens = True + self.streaming = streaming + if streaming and source != "webcam": + raise ValueError("Image streaming only available if source is 'webcam'.") + + IOComponent.__init__( + self, + label=label, + every=every, + show_label=show_label, + interactive=interactive, + visible=visible, + elem_id=elem_id, + value=value, + **kwargs, + ) + + def get_config(self): + return { + "image_mode": self.image_mode, + "shape": self.shape, + "source": self.source, + "tool": self.tool, + "value": self.value, + "streaming": self.streaming, + "mirror_webcam": self.mirror_webcam, + **IOComponent.get_config(self), + } + + @staticmethod + def update( + value: Optional[Any] = _Keywords.NO_VALUE, + label: Optional[str] = None, + show_label: Optional[bool] = None, + interactive: Optional[bool] = None, + visible: Optional[bool] = None, + ): + updated_config = { + "label": label, + "show_label": show_label, + "interactive": interactive, + "visible": visible, + "value": value, + "__type__": "update", + } + return IOComponent.add_interactive_to_config(updated_config, interactive) + + def _format_image( + self, im: Optional[PIL.Image] + ) -> np.array | PIL.Image | str | None: + """Helper method to format an image based on self.type""" + fmt = im.format + if im is None: + return im + if self.type == "pil": + return im + elif self.type == "numpy": + return np.array(im) + elif self.type == "filepath": + file_obj = tempfile.NamedTemporaryFile( + delete=False, + suffix=("." + fmt.lower() if fmt is not None else ".png"), + ) + im.save(file_obj.name) + return file_obj.name + else: + raise ValueError( + "Unknown type: " + + str(self.type) + + ". Please choose from: 'numpy', 'pil', 'filepath'." + ) + + def generate_sample(self): + return deepcopy(media_data.BASE64_IMAGE) + + def preprocess(self, x: str | Dict) -> np.array | PIL.Image | str | None: + """ + Parameters: + x: base64 url data, or (if tool == "sketch") a dict of image and mask base64 url data + Returns: + image in requested format, or (if tool == "sketch") a dict of image and mask in requested format + """ + if x is None: + return x + if self.tool == "sketch" and self.source in ["upload", "webcam"]: + x, mask = x["image"], x["mask"] + im = processing_utils.decode_base64_to_image(x) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + im = im.convert(self.image_mode) + if self.shape is not None: + im = processing_utils.resize_and_crop(im, self.shape) + if self.invert_colors: + im = PIL.ImageOps.invert(im) + if ( + self.source == "webcam" + and self.mirror_webcam is True + and self.tool != "color-sketch" + ): + im = PIL.ImageOps.mirror(im) + + if self.tool == "sketch" and self.source in ["upload", "webcam"]: + mask_im = processing_utils.decode_base64_to_image(mask) + return { + "image": self._format_image(im), + "mask": self._format_image(mask_im), + } + + return self._format_image(im) + + def postprocess(self, y: np.ndarray | PIL.Image | str | Path) -> str: + """ + Parameters: + y: image as a numpy array, PIL Image, string/Path filepath, or string URL + Returns: + base64 url data + """ + if y is None: + return None + if isinstance(y, np.ndarray): + return processing_utils.encode_array_to_base64(y) + elif isinstance(y, PIL.Image.Image): + return processing_utils.encode_pil_to_base64(y) + elif isinstance(y, (str, Path)): + return processing_utils.encode_url_or_file_to_base64(y) + else: + raise ValueError("Cannot process this value as an Image") + + def set_interpret_parameters(self, segments: int = 16): + """ + Calculates interpretation score of image subsections by splitting the image into subsections, then using a "leave one out" method to calculate the score of each subsection by whiting out the subsection and measuring the delta of the output value. + Parameters: + segments: Number of interpretation segments to split image into. + """ + self.interpretation_segments = segments + return self + + def _segment_by_slic(self, x): + """ + Helper method that segments an image into superpixels using slic. + Parameters: + x: base64 representation of an image + """ + x = processing_utils.decode_base64_to_image(x) + if self.shape is not None: + x = processing_utils.resize_and_crop(x, self.shape) + resized_and_cropped_image = np.array(x) + try: + from skimage.segmentation import slic + except (ImportError, ModuleNotFoundError): + raise ValueError( + "Error: running this interpretation for images requires scikit-image, please install it first." + ) + try: + segments_slic = slic( + resized_and_cropped_image, + self.interpretation_segments, + compactness=10, + sigma=1, + start_label=1, + ) + except TypeError: # For skimage 0.16 and older + segments_slic = slic( + resized_and_cropped_image, + self.interpretation_segments, + compactness=10, + sigma=1, + ) + return segments_slic, resized_and_cropped_image + + def tokenize(self, x): + """ + Segments image into tokens, masks, and leave-one-out-tokens + Parameters: + x: base64 representation of an image + Returns: + tokens: list of tokens, used by the get_masked_input() method + leave_one_out_tokens: list of left-out tokens, used by the get_interpretation_neighbors() method + masks: list of masks, used by the get_interpretation_neighbors() method + """ + segments_slic, resized_and_cropped_image = self._segment_by_slic(x) + tokens, masks, leave_one_out_tokens = [], [], [] + replace_color = np.mean(resized_and_cropped_image, axis=(0, 1)) + for (i, segment_value) in enumerate(np.unique(segments_slic)): + mask = segments_slic == segment_value + image_screen = np.copy(resized_and_cropped_image) + image_screen[segments_slic == segment_value] = replace_color + leave_one_out_tokens.append( + processing_utils.encode_array_to_base64(image_screen) + ) + token = np.copy(resized_and_cropped_image) + token[segments_slic != segment_value] = 0 + tokens.append(token) + masks.append(mask) + return tokens, leave_one_out_tokens, masks + + def get_masked_inputs(self, tokens, binary_mask_matrix): + masked_inputs = [] + for binary_mask_vector in binary_mask_matrix: + masked_input = np.zeros_like(tokens[0], dtype=int) + for token, b in zip(tokens, binary_mask_vector): + masked_input = masked_input + token * int(b) + masked_inputs.append(processing_utils.encode_array_to_base64(masked_input)) + return masked_inputs + + def get_interpretation_scores( + self, x, neighbors, scores, masks, tokens=None, **kwargs + ) -> List[List[float]]: + """ + Returns: + A 2D array representing the interpretation score of each pixel of the image. + """ + x = processing_utils.decode_base64_to_image(x) + if self.shape is not None: + x = processing_utils.resize_and_crop(x, self.shape) + x = np.array(x) + output_scores = np.zeros((x.shape[0], x.shape[1])) + + for score, mask in zip(scores, masks): + output_scores += score * mask + + max_val, min_val = np.max(output_scores), np.min(output_scores) + if max_val > 0: + output_scores = (output_scores - min_val) / (max_val - min_val) + return output_scores.tolist() + + def style( + self, *, height: Optional[int] = None, width: Optional[int] = None, **kwargs + ): + """ + This method can be used to change the appearance of the Image component. + Parameters: + height: Height of the image. + width: Width of the image. + """ + self._style["height"] = height + self._style["width"] = width + return IOComponent.style( + self, + **kwargs, + ) + + def stream( + self, + fn: Callable, + inputs: List[Component], + outputs: List[Component], + _js: Optional[str] = None, + api_name: Optional[str] = None, + preprocess: bool = True, + postprocess: bool = True, + ): + """ + This event is triggered when the user streams the component (e.g. a live webcam + component) + Parameters: + fn: Callable function + inputs: List of inputs + outputs: List of outputs + """ + # js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs' and 'outputs', return should be a list of values for output components. + if self.source != "webcam": + raise ValueError("Image streaming only available if source is 'webcam'.") + Streamable.stream( + self, + fn, + inputs, + outputs, + _js=_js, + api_name=api_name, + preprocess=preprocess, + postprocess=postprocess, + ) + + def as_example(self, input_data: str | None) -> str: + return os.path.abspath(input_data) + + +@document("change", "clear", "play", "pause", "stop", "style") +class Video( + Changeable, + Clearable, + Playable, + Uploadable, + IOComponent, + FileSerializable, + TempFileManager, +): + """ + Creates a video component that can be used to upload/record videos (as an input) or display videos (as an output). + For the video to be playable in the browser it must have a compatible container and codec combination. Allowed + combinations are .mp4 with h264 codec, .ogg with theora codec, and .webm with vp9 codec. If the component detects + that the output video would not be playable in the browser it will attempt to convert it to a playable mp4 video. + If the conversion fails, the original video is returned. + Preprocessing: passes the uploaded video as a {str} filepath or URL whose extension can be modified by `format`. + Postprocessing: expects a {str} filepath to a video which is displayed. + Examples-format: a {str} filepath to a local file that contains the video. + Demos: video_identity + """ + + def __init__( + self, + value: Optional[str | Callable] = None, + *, + format: Optional[str] = None, + source: str = "upload", + label: Optional[str] = None, + every: float | None = None, + show_label: bool = True, + interactive: Optional[bool] = None, + visible: bool = True, + elem_id: Optional[str] = None, + mirror_webcam: bool = True, + **kwargs, + ): + """ + Parameters: + value: A path or URL for the default value that Video component is going to take. If callable, the function will be called whenever the app loads to set the initial value of the component. + format: Format of video format to be returned by component, such as 'avi' or 'mp4'. Use 'mp4' to ensure browser playability. If set to None, video will keep uploaded format. + source: Source of video. "upload" creates a box where user can drop an video file, "webcam" allows user to record a video from their webcam. + label: component name in interface. + every: If `value` is a callable, run the function 'every' number of seconds while the client connection is open. Has no effect otherwise. Queue must be enabled. The event can be accessed (e.g. to cancel it) via this component's .load_event attribute. + show_label: if True, will display label. + interactive: if True, will allow users to upload a video; if False, can only be used to display videos. If not provided, this is inferred based on whether the component is used as an input or output. + visible: If False, component will be hidden. + elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. + mirror_webcam: If True webcma will be mirrored. Default is True. + """ + self.format = format + valid_sources = ["upload", "webcam"] + if source not in valid_sources: + raise ValueError( + f"Invalid value for parameter `source`: {source}. Please choose from one of: {valid_sources}" + ) + self.source = source + self.mirror_webcam = mirror_webcam + TempFileManager.__init__(self) + IOComponent.__init__( + self, + label=label, + every=every, + show_label=show_label, + interactive=interactive, + visible=visible, + elem_id=elem_id, + value=value, + **kwargs, + ) + + def get_config(self): + return { + "source": self.source, + "value": self.value, + "mirror_webcam": self.mirror_webcam, + **IOComponent.get_config(self), + } + + @staticmethod + def update( + value: Optional[Any] = _Keywords.NO_VALUE, + source: Optional[str] = None, + label: Optional[str] = None, + show_label: Optional[bool] = None, + interactive: Optional[bool] = None, + visible: Optional[bool] = None, + ): + updated_config = { + "source": source, + "label": label, + "show_label": show_label, + "interactive": interactive, + "visible": visible, + "value": value, + "__type__": "update", + } + return IOComponent.add_interactive_to_config(updated_config, interactive) + + def preprocess(self, x: Dict[str, str] | None) -> str | None: + """ + Parameters: + x: a dictionary with the following keys: 'name' (containing the file path to a video), 'data' (with either the file URL or base64 representation of the video), and 'is_file` (True if `data` contains the file URL). + Returns: + a string file path to the preprocessed video + """ + if x is None: + return x + + file_name, file_data, is_file = ( + x["name"], + x["data"], + x.get("is_file", False), + ) + if is_file: + file = self.make_temp_copy_if_needed(file_name) + file_name = Path(file) + else: + file = processing_utils.decode_base64_to_file( + file_data, file_path=file_name + ) + file_name = Path(file.name) + + uploaded_format = file_name.suffix.replace(".", "") + modify_format = self.format is not None and uploaded_format != self.format + flip = self.source == "webcam" and self.mirror_webcam + if modify_format or flip: + format = f".{self.format if modify_format else uploaded_format}" + output_options = ["-vf", "hflip", "-c:a", "copy"] if flip else None + flip_suffix = "_flip" if flip else "" + output_file_name = str( + file_name.with_name(f"{file_name.stem}{flip_suffix}{format}") + ) + if os.path.exists(output_file_name): + return output_file_name + ff = FFmpeg( + inputs={str(file_name): None}, + outputs={output_file_name: output_options}, + ) + ff.run() + return output_file_name + else: + return str(file_name) + + def generate_sample(self): + """Generates a random video for testing the API.""" + return deepcopy(media_data.BASE64_VIDEO) + + def postprocess(self, y: str | None) -> Dict[str, str] | None: + """ + Processes a video to ensure that it is in the correct format before + returning it to the front end. + Parameters: + y: a path or URL to the video file + Returns: + a dictionary with the following keys: 'name' (containing the file path + to a temporary copy of the video), 'data' (None), and 'is_file` (True). + """ + if y is None: + return None + + returned_format = y.split(".")[-1].lower() + + if self.format is None or returned_format == self.format: + conversion_needed = False + else: + conversion_needed = True + + # For cases where the video is a URL and does not need to be converted to another format, we can just return the URL + if utils.validate_url(y) and not (conversion_needed): + return {"name": y, "data": None, "is_file": True} + + # For cases where the video needs to be converted to another format + if utils.validate_url(y): + y = self.download_temp_copy_if_needed(y) + if ( + processing_utils.ffmpeg_installed() + and not processing_utils.video_is_playable(y) + ): + warnings.warn( + "Video does not have browser-compatible container or codec. Converting to mp4" + ) + y = processing_utils.convert_video_to_playable_mp4(y) + if self.format is not None and returned_format != self.format: + output_file_name = y[0 : y.rindex(".") + 1] + self.format + ff = FFmpeg(inputs={y: None}, outputs={output_file_name: None}) + ff.run() + y = output_file_name + + y = self.make_temp_copy_if_needed(y) + return {"name": y, "data": None, "is_file": True} + + def style( + self, *, height: Optional[int] = None, width: Optional[int] = None, **kwargs + ): + """ + This method can be used to change the appearance of the video component. + Parameters: + height: Height of the video. + width: Width of the video. + """ + self._style["height"] = height + self._style["width"] = width + return IOComponent.style( + self, + **kwargs, + ) + + +@document("change", "clear", "play", "pause", "stop", "stream", "style") +class Audio( + Changeable, + Clearable, + Playable, + Streamable, + Uploadable, + IOComponent, + FileSerializable, + TempFileManager, +): + """ + Creates an audio component that can be used to upload/record audio (as an input) or display audio (as an output). + Preprocessing: passes the uploaded audio as a {Tuple(int, numpy.array)} corresponding to (sample rate, data) or as a {str} filepath, depending on `type` + Postprocessing: expects a {Tuple(int, numpy.array)} corresponding to (sample rate, data) or as a {str} filepath or URL to an audio file, which gets displayed + Examples-format: a {str} filepath to a local file that contains audio. + Demos: main_note, generate_tone, reverse_audio + Guides: real_time_speech_recognition + """ + + def __init__( + self, + value: Optional[str | Tuple[int, np.array] | Callable] = None, + *, + source: str = "upload", + type: str = "numpy", + label: Optional[str] = None, + every: float | None = None, + show_label: bool = True, + interactive: Optional[bool] = None, + visible: bool = True, + streaming: bool = False, + elem_id: Optional[str] = None, + **kwargs, + ): + """ + Parameters: + value: A path, URL, or [sample_rate, numpy array] tuple for the default value that Audio component is going to take. If callable, the function will be called whenever the app loads to set the initial value of the component. + source: Source of audio. "upload" creates a box where user can drop an audio file, "microphone" creates a microphone input. + type: The format the audio file is converted to before being passed into the prediction function. "numpy" converts the audio to a tuple consisting of: (int sample rate, numpy.array for the data), "filepath" passes a str path to a temporary file containing the audio. + label: component name in interface. + every: If `value` is a callable, run the function 'every' number of seconds while the client connection is open. Has no effect otherwise. Queue must be enabled. The event can be accessed (e.g. to cancel it) via this component's .load_event attribute. + show_label: if True, will display label. + interactive: if True, will allow users to upload and edit a audio file; if False, can only be used to play audio. If not provided, this is inferred based on whether the component is used as an input or output. + visible: If False, component will be hidden. + streaming: If set to True when used in a `live` interface, will automatically stream webcam feed. Only valid is source is 'microphone'. + elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. + """ + valid_sources = ["upload", "microphone"] + if source not in valid_sources: + raise ValueError( + f"Invalid value for parameter `source`: {source}. Please choose from one of: {valid_sources}" + ) + self.source = source + valid_types = ["numpy", "filepath"] + if type not in valid_types: + raise ValueError( + f"Invalid value for parameter `type`: {type}. Please choose from one of: {valid_types}" + ) + self.type = type + self.test_input = deepcopy(media_data.BASE64_AUDIO) + self.interpret_by_tokens = True + self.streaming = streaming + if streaming and source != "microphone": + raise ValueError( + "Audio streaming only available if source is 'microphone'." + ) + TempFileManager.__init__(self) + IOComponent.__init__( + self, + label=label, + every=every, + show_label=show_label, + interactive=interactive, + visible=visible, + elem_id=elem_id, + value=value, + **kwargs, + ) + + def get_config(self): + return { + "source": self.source, + "value": self.value, + "streaming": self.streaming, + **IOComponent.get_config(self), + } + + @staticmethod + def update( + value: Optional[Any] = _Keywords.NO_VALUE, + source: Optional[str] = None, + label: Optional[str] = None, + show_label: Optional[bool] = None, + interactive: Optional[bool] = None, + visible: Optional[bool] = None, + ): + updated_config = { + "source": source, + "label": label, + "show_label": show_label, + "interactive": interactive, + "visible": visible, + "value": value, + "__type__": "update", + } + return IOComponent.add_interactive_to_config(updated_config, interactive) + + def preprocess(self, x: Dict[str, str] | None) -> Tuple[int, np.array] | str | None: + """ + Parameters: + x: dictionary with keys "name", "data", "is_file", "crop_min", "crop_max". + Returns: + audio in requested format + """ + if x is None: + return x + file_name, file_data, is_file = ( + x["name"], + x["data"], + x.get("is_file", False), + ) + crop_min, crop_max = x.get("crop_min", 0), x.get("crop_max", 100) + if is_file: + if utils.validate_url(file_name): + temp_file_path = self.download_temp_copy_if_needed(file_name) + else: + temp_file_path = self.make_temp_copy_if_needed(file_name) + else: + temp_file_obj = processing_utils.decode_base64_to_file( + file_data, file_path=file_name + ) + temp_file_path = temp_file_obj.name + + sample_rate, data = processing_utils.audio_from_file( + temp_file_path, crop_min=crop_min, crop_max=crop_max + ) + + if self.type == "numpy": + return sample_rate, data + elif self.type == "filepath": + processing_utils.audio_to_file(sample_rate, data, temp_file_path) + return temp_file_path + else: + raise ValueError( + "Unknown type: " + + str(self.type) + + ". Please choose from: 'numpy', 'filepath'." + ) + + def set_interpret_parameters(self, segments: int = 8): + """ + Calculates interpretation score of audio subsections by splitting the audio into subsections, then using a "leave one out" method to calculate the score of each subsection by removing the subsection and measuring the delta of the output value. + Parameters: + segments: Number of interpretation segments to split audio into. + """ + self.interpretation_segments = segments + return self + + def tokenize(self, x): + if x.get("is_file"): + sample_rate, data = processing_utils.audio_from_file(x["name"]) + else: + file_obj = processing_utils.decode_base64_to_file(x["data"]) + sample_rate, data = processing_utils.audio_from_file(file_obj.name) + leave_one_out_sets = [] + tokens = [] + masks = [] + duration = data.shape[0] + boundaries = np.linspace(0, duration, self.interpretation_segments + 1).tolist() + boundaries = [round(boundary) for boundary in boundaries] + for index in range(len(boundaries) - 1): + start, stop = boundaries[index], boundaries[index + 1] + masks.append((start, stop)) + + # Handle the leave one outs + leave_one_out_data = np.copy(data) + leave_one_out_data[start:stop] = 0 + file = tempfile.NamedTemporaryFile(delete=False, suffix=".wav") + processing_utils.audio_to_file(sample_rate, leave_one_out_data, file.name) + out_data = processing_utils.encode_file_to_base64(file.name) + leave_one_out_sets.append(out_data) + file.close() + os.unlink(file.name) + + # Handle the tokens + token = np.copy(data) + token[0:start] = 0 + token[stop:] = 0 + file = tempfile.NamedTemporaryFile(delete=False, suffix=".wav") + processing_utils.audio_to_file(sample_rate, token, file.name) + token_data = processing_utils.encode_file_to_base64(file.name) + file.close() + os.unlink(file.name) + + tokens.append(token_data) + tokens = [{"name": "token.wav", "data": token} for token in tokens] + leave_one_out_sets = [ + {"name": "loo.wav", "data": loo_set} for loo_set in leave_one_out_sets + ] + return tokens, leave_one_out_sets, masks + + def get_masked_inputs(self, tokens, binary_mask_matrix): + # create a "zero input" vector and get sample rate + x = tokens[0]["data"] + file_obj = processing_utils.decode_base64_to_file(x) + sample_rate, data = processing_utils.audio_from_file(file_obj.name) + zero_input = np.zeros_like(data, dtype="int16") + # decode all of the tokens + token_data = [] + for token in tokens: + file_obj = processing_utils.decode_base64_to_file(token["data"]) + _, data = processing_utils.audio_from_file(file_obj.name) + token_data.append(data) + # construct the masked version + masked_inputs = [] + for binary_mask_vector in binary_mask_matrix: + masked_input = np.copy(zero_input) + for t, b in zip(token_data, binary_mask_vector): + masked_input = masked_input + t * int(b) + file = tempfile.NamedTemporaryFile(delete=False) + processing_utils.audio_to_file(sample_rate, masked_input, file.name) + masked_data = processing_utils.encode_file_to_base64(file.name) + file.close() + os.unlink(file.name) + masked_inputs.append(masked_data) + return masked_inputs + + def get_interpretation_scores( + self, x, neighbors, scores, masks=None, tokens=None + ) -> List[float]: + """ + Returns: + Each value represents the interpretation score corresponding to an evenly spaced subsection of audio. + """ + return list(scores) + + def generate_sample(self): + return deepcopy(media_data.BASE64_AUDIO) + + def postprocess(self, y: Tuple[int, np.array] | str | None) -> str | None: + """ + Parameters: + y: audio data in either of the following formats: a tuple of (sample_rate, data), or a string filepath or URL to an audio file, or None. + Returns: + base64 url data + """ + if y is None: + return None + + if utils.validate_url(y): + return {"name": y, "data": None, "is_file": True} + + if isinstance(y, tuple): + sample_rate, data = y + file = tempfile.NamedTemporaryFile(suffix=".wav", delete=False) + processing_utils.audio_to_file(sample_rate, data, file.name) + file_path = file.name + self.temp_files.add(file_path) + else: + file_path = self.make_temp_copy_if_needed(y) + + return {"name": file_path, "data": None, "is_file": True} + + def stream( + self, + fn: Callable, + inputs: List[Component], + outputs: List[Component], + _js: Optional[str] = None, + api_name: Optional[str] = None, + preprocess: bool = True, + postprocess: bool = True, + ): + """ + This event is triggered when the user streams the component (e.g. a live webcam + component) + Parameters: + fn: Callable function + inputs: List of inputs + outputs: List of outputs + """ + # _js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs' and 'outputs', return should be a list of values for output components. + if self.source != "microphone": + raise ValueError( + "Audio streaming only available if source is 'microphone'." + ) + Streamable.stream( + self, + fn, + inputs, + outputs, + _js=_js, + api_name=api_name, + preprocess=preprocess, + postprocess=postprocess, + ) + + def style( + self, + **kwargs, + ): + """ + This method can be used to change the appearance of the audio component. + """ + return IOComponent.style( + self, + **kwargs, + ) + + def as_example(self, input_data: str | None) -> str: + return Path(input_data).name if input_data else "" + + +@document("change", "clear", "style") +class File( + Changeable, Clearable, Uploadable, IOComponent, FileSerializable, TempFileManager +): + """ + Creates a file component that allows uploading generic file (when used as an input) and or displaying generic files (output). + Preprocessing: passes the uploaded file as a {file-object} or {List[file-object]} depending on `file_count` (or a {bytes}/{List{bytes}} depending on `type`) + Postprocessing: expects function to return a {str} path to a file, or {List[str]} consisting of paths to files. + Examples-format: a {str} path to a local file that populates the component. + Demos: zip_to_json, zip_files + """ + + def __init__( + self, + value: Optional[str | List[str] | Callable] = None, + *, + file_count: str = "single", + file_types: List[str] = None, + type: str = "file", + label: Optional[str] = None, + every: float | None = None, + show_label: bool = True, + interactive: Optional[bool] = None, + visible: bool = True, + elem_id: Optional[str] = None, + **kwargs, + ): + """ + Parameters: + value: Default file to display, given as str file path. If callable, the function will be called whenever the app loads to set the initial value of the component. + file_count: if single, allows user to upload one file. If "multiple", user uploads multiple files. If "directory", user uploads all files in selected directory. Return type will be list for each file in case of "multiple" or "directory". + file_types: List of type of files to be uploaded. "file" allows any file to be uploaded, "image" allows only image files to be uploaded, "audio" allows only audio files to be uploaded, "video" allows only video files to be uploaded, "text" allows only text files to be uploaded. + type: Type of value to be returned by component. "file" returns a temporary file object whose path can be retrieved by file_obj.name and original filename can be retrieved with file_obj.orig_name, "binary" returns an bytes object. + label: component name in interface. + every: If `value` is a callable, run the function 'every' number of seconds while the client connection is open. Has no effect otherwise. Queue must be enabled. The event can be accessed (e.g. to cancel it) via this component's .load_event attribute. + show_label: if True, will display label. + interactive: if True, will allow users to upload a file; if False, can only be used to display files. If not provided, this is inferred based on whether the component is used as an input or output. + visible: If False, component will be hidden. + elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. + """ + self.file_count = file_count + self.file_types = file_types + valid_types = [ + "file", + "binary", + "bytes", + ] # "bytes" is included for backwards compatibility + if type not in valid_types: + raise ValueError( + f"Invalid value for parameter `type`: {type}. Please choose from one of: {valid_types}" + ) + if type == "bytes": + warnings.warn( + "The `bytes` type is deprecated and may not work as expected. Please use `binary` instead." + ) + self.type = type + self.test_input = None + TempFileManager.__init__(self) + IOComponent.__init__( + self, + label=label, + every=every, + show_label=show_label, + interactive=interactive, + visible=visible, + elem_id=elem_id, + value=value, + **kwargs, + ) + + def get_config(self): + return { + "file_count": self.file_count, + "file_types": self.file_types, + "value": self.value, + **IOComponent.get_config(self), + } + + @staticmethod + def update( + value: Optional[Any] = _Keywords.NO_VALUE, + label: Optional[str] = None, + show_label: Optional[bool] = None, + interactive: Optional[bool] = None, + visible: Optional[bool] = None, + ): + updated_config = { + "label": label, + "show_label": show_label, + "interactive": interactive, + "visible": visible, + "value": value, + "__type__": "update", + } + return IOComponent.add_interactive_to_config(updated_config, interactive) + + def preprocess( + self, x: List[Dict[str, str]] | None + ) -> tempfile._TemporaryFileWrapper | List[ + tempfile._TemporaryFileWrapper + ] | bytes | List[bytes]: + """ + Parameters: + x: List of JSON objects with filename as 'name' property and base64 data as 'data' property + Returns: + File objects in requested format + """ + if x is None: + return None + + def process_single_file(f): + file_name, data, is_file = ( + f["name"], + f["data"], + f.get("is_file", False), + ) + if self.type == "file": + if is_file: + temp_file_path = self.make_temp_copy_if_needed(file_name) + file = tempfile.NamedTemporaryFile(delete=False) + file.name = temp_file_path + file.orig_name = file_name + else: + file = processing_utils.decode_base64_to_file( + data, file_path=file_name + ) + file.orig_name = file_name + return file + elif ( + self.type == "binary" or self.type == "bytes" + ): # "bytes" is included for backwards compatibility + if is_file: + with open(file_name, "rb") as file_data: + return file_data.read() + return processing_utils.decode_base64_to_binary(data)[0] + else: + raise ValueError( + "Unknown type: " + + str(self.type) + + ". Please choose from: 'file', 'bytes'." + ) + + if self.file_count == "single": + if isinstance(x, list): + return process_single_file(x[0]) + else: + return process_single_file(x) + else: + if isinstance(x, list): + return [process_single_file(f) for f in x] + else: + return process_single_file(x) + + def generate_sample(self): + return deepcopy(media_data.BASE64_FILE) + + def postprocess( + self, y: str | List[str] + ) -> Dict[str | Any] | List[Dict[str | Any]]: + """ + Parameters: + y: file path + Returns: + JSON object with key 'name' for filename, 'data' for base64 url, and 'size' for filesize in bytes + """ + if y is None: + return None + if isinstance(y, list): + return [ + { + "orig_name": os.path.basename(file), + "name": self.make_temp_copy_if_needed(file), + "size": os.path.getsize(file), + "data": None, + "is_file": True, + } + for file in y + ] + else: + return { + "orig_name": os.path.basename(y), + "name": self.make_temp_copy_if_needed(y), + "size": os.path.getsize(y), + "data": None, + "is_file": True, + } + + def serialize(self, x: str, load_dir: str = "", called_directly: bool = False): + serialized = FileSerializable.serialize(self, x, load_dir, called_directly) + serialized["size"] = os.path.getsize(serialized["name"]) + return serialized + + def style( + self, + **kwargs, + ): + """ + This method can be used to change the appearance of the file component. + """ + return IOComponent.style( + self, + **kwargs, + ) + + def as_example(self, input_data: str | List | None) -> str | List[str]: + if input_data is None: + return "" + elif isinstance(input_data, list): + return [Path(file).name for file in input_data] + else: + return Path(input_data).name + + +@document("change", "style") +class Dataframe(Changeable, IOComponent, JSONSerializable): + """ + Accepts or displays 2D input through a spreadsheet-like component for dataframes. + Preprocessing: passes the uploaded spreadsheet data as a {pandas.DataFrame}, {numpy.array}, {List[List]}, or {List} depending on `type` + Postprocessing: expects a {pandas.DataFrame}, {numpy.array}, {List[List]}, {List}, a {Dict} with keys `data` (and optionally `headers`), or {str} path to a csv, which is rendered in the spreadsheet. + Examples-format: a {str} filepath to a csv with data, a pandas dataframe, or a list of lists (excluding headers) where each sublist is a row of data. + Demos: filter_records, matrix_transpose, tax_calculator + """ + + markdown_parser = None + + def __init__( + self, + value: Optional[List[List[Any]] | Callable] = None, + *, + headers: Optional[List[str]] = None, + row_count: int | Tuple[int, str] = (1, "dynamic"), + col_count: Optional[int | Tuple[int, str]] = None, + datatype: str | List[str] = "str", + type: str = "pandas", + max_rows: Optional[int] = 20, + max_cols: Optional[int] = None, + overflow_row_behaviour: str = "paginate", + label: Optional[str] = None, + every: float | None = None, + show_label: bool = True, + interactive: Optional[bool] = None, + visible: bool = True, + elem_id: Optional[str] = None, + wrap: bool = False, + **kwargs, + ): + """ + Parameters: + value: Default value as a 2-dimensional list of values. If callable, the function will be called whenever the app loads to set the initial value of the component. + headers: List of str header names. If None, no headers are shown. + row_count: Limit number of rows for input and decide whether user can create new rows. The first element of the tuple is an `int`, the row count; the second should be 'fixed' or 'dynamic', the new row behaviour. If an `int` is passed the rows default to 'dynamic' + col_count: Limit number of columns for input and decide whether user can create new columns. The first element of the tuple is an `int`, the number of columns; the second should be 'fixed' or 'dynamic', the new column behaviour. If an `int` is passed the columns default to 'dynamic' + datatype: Datatype of values in sheet. Can be provided per column as a list of strings, or for the entire sheet as a single string. Valid datatypes are "str", "number", "bool", "date", and "markdown". + type: Type of value to be returned by component. "pandas" for pandas dataframe, "numpy" for numpy array, or "array" for a Python array. + label: component name in interface. + max_rows: Maximum number of rows to display at once. Set to None for infinite. + max_cols: Maximum number of columns to display at once. Set to None for infinite. + overflow_row_behaviour: If set to "paginate", will create pages for overflow rows. If set to "show_ends", will show initial and final rows and truncate middle rows. + label: component name in interface. + every: If `value` is a callable, run the function 'every' number of seconds while the client connection is open. Has no effect otherwise. Queue must be enabled. The event can be accessed (e.g. to cancel it) via this component's .load_event attribute. + show_label: if True, will display label. + interactive: if True, will allow users to edit the dataframe; if False, can only be used to display data. If not provided, this is inferred based on whether the component is used as an input or output. + visible: If False, component will be hidden. + elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. + wrap: if True text in table cells will wrap when appropriate, if False the table will scroll horiztonally. Defaults to False. + """ + + self.wrap = wrap + self.row_count = self.__process_counts(row_count) + self.col_count = self.__process_counts( + col_count, len(headers) if headers else 3 + ) + + self.__validate_headers(headers, self.col_count[0]) + + self.headers = ( + headers if headers is not None else list(range(1, self.col_count[0] + 1)) + ) + self.datatype = ( + datatype if isinstance(datatype, list) else [datatype] * self.col_count[0] + ) + valid_types = ["pandas", "numpy", "array"] + if type not in valid_types: + raise ValueError( + f"Invalid value for parameter `type`: {type}. Please choose from one of: {valid_types}" + ) + self.type = type + values = { + "str": "", + "number": 0, + "bool": False, + "date": "01/01/1970", + "markdown": "", + "html": "", + } + column_dtypes = ( + [datatype] * self.col_count[0] if isinstance(datatype, str) else datatype + ) + self.test_input = [ + [values[c] for c in column_dtypes] for _ in range(self.row_count[0]) + ] + + self.max_rows = max_rows + self.max_cols = max_cols + self.overflow_row_behaviour = overflow_row_behaviour + IOComponent.__init__( + self, + label=label, + every=every, + show_label=show_label, + interactive=interactive, + visible=visible, + elem_id=elem_id, + value=value, + **kwargs, + ) + + def get_config(self): + return { + "headers": self.headers, + "datatype": self.datatype, + "row_count": self.row_count, + "col_count": self.col_count, + "value": self.value, + "max_rows": self.max_rows, + "max_cols": self.max_cols, + "overflow_row_behaviour": self.overflow_row_behaviour, + "wrap": self.wrap, + **IOComponent.get_config(self), + } + + @staticmethod + def update( + value: Optional[Any] = _Keywords.NO_VALUE, + max_rows: Optional[int] = None, + max_cols: Optional[str] = None, + label: Optional[str] = None, + show_label: Optional[bool] = None, + interactive: Optional[bool] = None, + visible: Optional[bool] = None, + ): + updated_config = { + "max_rows": max_rows, + "max_cols": max_cols, + "label": label, + "show_label": show_label, + "interactive": interactive, + "visible": visible, + "value": value, + "__type__": "update", + } + return IOComponent.add_interactive_to_config(updated_config, interactive) + + def preprocess(self, x: DataframeData): + """ + Parameters: + x: 2D array of str, numeric, or bool data + Returns: + Dataframe in requested format + """ + if self.type == "pandas": + if x.get("headers") is not None: + return pd.DataFrame(x["data"], columns=x.get("headers")) + else: + return pd.DataFrame(x["data"]) + if self.type == "numpy": + return np.array(x["data"]) + elif self.type == "array": + return x["data"] + else: + raise ValueError( + "Unknown type: " + + str(self.type) + + ". Please choose from: 'pandas', 'numpy', 'array'." + ) + + def generate_sample(self): + return [[1, 2, 3], [4, 5, 6]] + + def postprocess( + self, y: str | pd.DataFrame | np.ndarray | List[List[str | float]] | Dict + ) -> Dict: + """ + Parameters: + y: dataframe in given format + Returns: + JSON object with key 'headers' for list of header names, 'data' for 2D array of string or numeric data + """ + if y is None: + return self.postprocess(self.test_input) + if isinstance(y, dict): + return y + if isinstance(y, str): + y = pd.read_csv(y) + return { + "headers": list(y.columns), + "data": Dataframe.__process_markdown( + y.to_dict(orient="split")["data"], self.datatype + ), + } + if isinstance(y, pd.DataFrame): + return { + "headers": list(y.columns), + "data": Dataframe.__process_markdown( + y.to_dict(orient="split")["data"], self.datatype + ), + } + if isinstance(y, (np.ndarray, list)): + if isinstance(y, np.ndarray): + y = y.tolist() + + _headers = self.headers + + if len(self.headers) < len(y[0]): + _headers = [ + *self.headers, + *list(range(len(self.headers) + 1, len(y[0]) + 1)), + ] + elif len(self.headers) > len(y[0]): + _headers = self.headers[: len(y[0])] + + return { + "headers": _headers, + "data": Dataframe.__process_markdown(y, self.datatype), + } + raise ValueError("Cannot process value as a Dataframe") + + @staticmethod + def __process_counts(count, default=3): + if count is None: + return (default, "dynamic") + if type(count) == int or type(count) == float: + return (int(count), "dynamic") + else: + return count + + @staticmethod + def __validate_headers(headers: List[str] | None, col_count: int): + if headers is not None and len(headers) != col_count: + raise ValueError( + "The length of the headers list must be equal to the col_count int.\nThe column count is set to {cols} but `headers` has {headers} items. Check the values passed to `col_count` and `headers`.".format( + cols=col_count, headers=len(headers) + ) + ) + + @classmethod + def __process_markdown(cls, data: List[List[Any]], datatype: List[str]): + if "markdown" not in datatype: + return data + + if cls.markdown_parser is None: + cls.markdown_parser = ( + MarkdownIt() + .use(dollarmath_plugin, renderer=utils.tex2svg, allow_digits=False) + .enable("table") + ) + + for i in range(len(data)): + for j in range(len(data[i])): + if datatype[j] == "markdown": + data[i][j] = Dataframe.markdown_parser.render(data[i][j]) + + return data + + def style( + self, + **kwargs, + ): + """ + This method can be used to change the appearance of the DataFrame component. + """ + return IOComponent.style( + self, + **kwargs, + ) + + def as_example(self, input_data: pd.DataFrame | np.ndarray | str | None): + if input_data is None: + return "" + elif isinstance(input_data, pd.DataFrame): + return input_data.head(n=5).to_dict(orient="split")["data"] + elif isinstance(input_data, np.ndarray): + return input_data.tolist() + return input_data + + +@document("change", "style") +class Timeseries(Changeable, IOComponent, JSONSerializable): + """ + Creates a component that can be used to upload/preview timeseries csv files or display a dataframe consisting of a time series graphically. + Preprocessing: passes the uploaded timeseries data as a {pandas.DataFrame} into the function + Postprocessing: expects a {pandas.DataFrame} or {str} path to a csv to be returned, which is then displayed as a timeseries graph + Examples-format: a {str} filepath of csv data with time series data. + Demos: fraud_detector + """ + + def __init__( + self, + value: Optional[str | Callable] = None, + *, + x: Optional[str] = None, + y: str | List[str] = None, + colors: List[str] = None, + label: Optional[str] = None, + every: float | None = None, + show_label: bool = True, + interactive: Optional[bool] = None, + visible: bool = True, + elem_id: Optional[str] = None, + **kwargs, + ): + """ + Parameters: + value: File path for the timeseries csv file. If callable, the function will be called whenever the app loads to set the initial value of the component. + x: Column name of x (time) series. None if csv has no headers, in which case first column is x series. + y: Column name of y series, or list of column names if multiple series. None if csv has no headers, in which case every column after first is a y series. + label: component name in interface. + every: If `value` is a callable, run the function 'every' number of seconds while the client connection is open. Has no effect otherwise. Queue must be enabled. The event can be accessed (e.g. to cancel it) via this component's .load_event attribute. + colors: an ordered list of colors to use for each line plot + show_label: if True, will display label. + interactive: if True, will allow users to upload a timeseries csv; if False, can only be used to display timeseries data. If not provided, this is inferred based on whether the component is used as an input or output. + visible: If False, component will be hidden. + elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. + """ + self.x = x + if isinstance(y, str): + y = [y] + self.y = y + self.colors = colors + IOComponent.__init__( + self, + label=label, + every=every, + show_label=show_label, + interactive=interactive, + visible=visible, + elem_id=elem_id, + value=value, + **kwargs, + ) + + def get_config(self): + return { + "x": self.x, + "y": self.y, + "value": self.value, + "colors": self.colors, + **IOComponent.get_config(self), + } + + @staticmethod + def update( + value: Optional[Any] = _Keywords.NO_VALUE, + colors: Optional[List[str]] = None, + label: Optional[str] = None, + show_label: Optional[bool] = None, + interactive: Optional[bool] = None, + visible: Optional[bool] = None, + ): + updated_config = { + "colors": colors, + "label": label, + "show_label": show_label, + "interactive": interactive, + "visible": visible, + "value": value, + "__type__": "update", + } + return IOComponent.add_interactive_to_config(updated_config, interactive) + + def preprocess(self, x: Dict | None) -> pd.DataFrame | None: + """ + Parameters: + x: Dict with keys 'data': 2D array of str, numeric, or bool data, 'headers': list of strings for header names, 'range': optional two element list designating start of end of subrange. + Returns: + Dataframe of timeseries data + """ + if x is None: + return x + elif x.get("is_file"): + dataframe = pd.read_csv(x["name"]) + else: + dataframe = pd.DataFrame(data=x["data"], columns=x["headers"]) + if x.get("range") is not None: + dataframe = dataframe.loc[dataframe[self.x or 0] >= x["range"][0]] + dataframe = dataframe.loc[dataframe[self.x or 0] <= x["range"][1]] + return dataframe + + def generate_sample(self): + return {"data": [[1] + [2] * len(self.y)] * 4, "headers": [self.x] + self.y} + + def postprocess(self, y: str | pd.DataFrame) -> Dict: + """ + Parameters: + y: csv or dataframe with timeseries data + Returns: + JSON object with key 'headers' for list of header names, 'data' for 2D array of string or numeric data + """ + if y is None: + return None + if isinstance(y, str): + y = pd.read_csv(y) + return {"headers": y.columns.values.tolist(), "data": y.values.tolist()} + if isinstance(y, pd.DataFrame): + return {"headers": y.columns.values.tolist(), "data": y.values.tolist()} + raise ValueError("Cannot process value as Timeseries data") + + def style( + self, + **kwargs, + ): + """ + This method can be used to change the appearance of the TimeSeries component. + """ + return IOComponent.style( + self, + **kwargs, + ) + + +@document() +class State(IOComponent, SimpleSerializable): + """ + Special hidden component that stores session state across runs of the demo by the + same user. The value of the State variable is cleared when the user refreshes the page. + + Preprocessing: No preprocessing is performed + Postprocessing: No postprocessing is performed + Demos: chatbot_demo, blocks_simple_squares + Guides: creating_a_chatbot, real_time_speech_recognition + """ + + allow_string_shortcut = False + + def __init__( + self, + value: Any = None, + **kwargs, + ): + """ + Parameters: + value: the initial value of the state. If callable, the function will be called whenever the app loads to set the initial value of the component. + """ + self.stateful = True + IOComponent.__init__(self, value=deepcopy(value), **kwargs) + + def style(self): + return self + + +class Variable(State): + """Variable was renamed to State. This class is kept for backwards compatibility.""" + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + def get_block_name(self): + return "state" + + +@document("click", "style") +class Button(Clickable, IOComponent, SimpleSerializable): + """ + Used to create a button, that can be assigned arbitrary click() events. The label (value) of the button can be used as an input or set via the output of a function. + + Preprocessing: passes the button value as a {str} into the function + Postprocessing: expects a {str} to be returned from a function, which is set as the label of the button + Demos: blocks_inputs, blocks_kinematics + """ + + def __init__( + self, + value: str | Callable = "Run", + *, + variant: str = "secondary", + visible: bool = True, + elem_id: Optional[str] = None, + **kwargs, + ): + """ + Parameters: + value: Default text for the button to display. If callable, the function will be called whenever the app loads to set the initial value of the component. + variant: 'primary' for main call-to-action, 'secondary' for a more subdued style + visible: If False, component will be hidden. + elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. + """ + IOComponent.__init__( + self, visible=visible, elem_id=elem_id, value=value, **kwargs + ) + self.variant = variant + + def get_config(self): + return { + "value": self.value, + "variant": self.variant, + **Component.get_config(self), + } + + @staticmethod + def update( + value: Optional[str] = _Keywords.NO_VALUE, + variant: Optional[str] = None, + visible: Optional[bool] = None, + ): + return { + "variant": variant, + "visible": visible, + "value": value, + "__type__": "update", + } + + def style(self, *, full_width: Optional[bool] = None, **kwargs): + """ + This method can be used to change the appearance of the button component. + Parameters: + full_width: If True, will expand to fill parent container. + """ + if full_width is not None: + self._style["full_width"] = full_width + + return IOComponent.style(self, **kwargs) + + +@document("click", "upload", "style") +class UploadButton( + Clickable, Uploadable, IOComponent, SimpleSerializable, TempFileManager +): + """ + Used to create an upload button, when cicked allows a user to upload files that satisfy the specified file type or generic files (if file_type not set). + Preprocessing: passes the uploaded file as a {file-object} or {List[file-object]} depending on `file_count` (or a {bytes}/{List{bytes}} depending on `type`) + Postprocessing: expects function to return a {str} path to a file, or {List[str]} consisting of paths to files. + Examples-format: a {str} path to a local file that populates the component. + Demos: upload_button + """ + + def __init__( + self, + label: str = "Upload a File", + value: Optional[str | List[str] | Callable] = None, + *, + visible: bool = True, + elem_id: Optional[str] = None, + type: str = "file", + file_count: str = "single", + file_types: List[str] = None, + **kwargs, + ): + """ + Parameters: + value: Default text for the button to display. + type: Type of value to be returned by component. "file" returns a temporary file object whose path can be retrieved by file_obj.name and original filename can be retrieved with file_obj.orig_name, "binary" returns an bytes object. + file_count: if single, allows user to upload one file. If "multiple", user uploads multiple files. If "directory", user uploads all files in selected directory. Return type will be list for each file in case of "multiple" or "directory". + file_types: List of type of files to be uploaded. "file" allows any file to be uploaded, "image" allows only image files to be uploaded, "audio" allows only audio files to be uploaded, "video" allows only video files to be uploaded, "text" allows only text files to be uploaded. + label: Text to display on the button. Defaults to "Upload a File". + visible: If False, component will be hidden. + elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. + """ + self.type = type + self.file_count = file_count + self.file_types = file_types + self.label = label + TempFileManager.__init__(self) + IOComponent.__init__( + self, label=label, visible=visible, elem_id=elem_id, value=value, **kwargs + ) + + def get_config(self): + return { + "label": self.label, + "value": self.value, + "file_count": self.file_count, + "file_types": self.file_types, + **Component.get_config(self), + } + + @staticmethod + def update( + value: Optional[str] = _Keywords.NO_VALUE, + interactive: Optional[bool] = None, + visible: Optional[bool] = None, + ): + updated_config = { + "interactive": interactive, + "visible": visible, + "value": value, + "__type__": "update", + } + return IOComponent.add_interactive_to_config(updated_config, interactive) + + def preprocess( + self, x: List[Dict[str, str]] | None + ) -> tempfile._TemporaryFileWrapper | List[ + tempfile._TemporaryFileWrapper + ] | bytes | List[bytes]: + """ + Parameters: + x: List of JSON objects with filename as 'name' property and base64 data as 'data' property + Returns: + File objects in requested format + """ + if x is None: + return None + + def process_single_file(f): + file_name, data, is_file = ( + f["name"], + f["data"], + f.get("is_file", False), + ) + if self.type == "file": + if is_file: + temp_file_path = self.make_temp_copy_if_needed(file_name) + file = tempfile.NamedTemporaryFile(delete=False) + file.name = temp_file_path + file.orig_name = file_name + else: + file = processing_utils.decode_base64_to_file( + data, file_path=file_name + ) + file.orig_name = file_name + return file + elif self.type == "bytes": + if is_file: + with open(file_name, "rb") as file_data: + return file_data.read() + return processing_utils.decode_base64_to_binary(data)[0] + else: + raise ValueError( + "Unknown type: " + + str(self.type) + + ". Please choose from: 'file', 'bytes'." + ) + + if self.file_count == "single": + if isinstance(x, list): + return process_single_file(x[0]) + else: + return process_single_file(x) + else: + if isinstance(x, list): + return [process_single_file(f) for f in x] + else: + return process_single_file(x) + + def generate_sample(self): + return deepcopy(media_data.BASE64_FILE) + + def serialize(self, x: str, load_dir: str = "", called_directly: bool = False): + serialized = FileSerializable.serialize(self, x, load_dir, called_directly) + serialized["size"] = os.path.getsize(serialized["name"]) + return serialized + + def style(self, *, full_width: Optional[bool] = None, **kwargs): + """ + This method can be used to change the appearance of the button component. + Parameters: + full_width: If True, will expand to fill parent container. + """ + if full_width is not None: + self._style["full_width"] = full_width + + return IOComponent.style(self, **kwargs) + + +@document("change", "submit", "style") +class ColorPicker(Changeable, Submittable, IOComponent, SimpleSerializable): + """ + Creates a color picker for user to select a color as string input. + Preprocessing: passes selected color value as a {str} into the function. + Postprocessing: expects a {str} returned from function and sets color picker value to it. + Examples-format: a {str} with a hexadecimal representation of a color, e.g. "#ff0000" for red. + Demos: color_picker, color_generator + """ + + def __init__( + self, + value: str | Callable = None, + *, + label: Optional[str] = None, + every: float | None = None, + show_label: bool = True, + interactive: Optional[bool] = None, + visible: bool = True, + elem_id: Optional[str] = None, + **kwargs, + ): + """ + Parameters: + value: default text to provide in color picker. If callable, the function will be called whenever the app loads to set the initial value of the component. + label: component name in interface. + every: If `value` is a callable, run the function 'every' number of seconds while the client connection is open. Has no effect otherwise. Queue must be enabled. The event can be accessed (e.g. to cancel it) via this component's .load_event attribute. + show_label: if True, will display label. + interactive: if True, will be rendered as an editable color picker; if False, editing will be disabled. If not provided, this is inferred based on whether the component is used as an input or output. + visible: If False, component will be hidden. + elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. + """ + self.cleared_value = "#000000" + self.test_input = value + IOComponent.__init__( + self, + label=label, + every=every, + show_label=show_label, + interactive=interactive, + visible=visible, + elem_id=elem_id, + value=value, + **kwargs, + ) + + def get_config(self): + return { + "value": self.value, + **IOComponent.get_config(self), + } + + @staticmethod + def update( + value: Optional[str] = _Keywords.NO_VALUE, + label: Optional[str] = None, + show_label: Optional[bool] = None, + visible: Optional[bool] = None, + interactive: Optional[bool] = None, + ): + updated_config = { + "value": value, + "label": label, + "show_label": show_label, + "visible": visible, + "__type__": "update", + } + return IOComponent.add_interactive_to_config(updated_config, interactive) + + def preprocess(self, x: str | None) -> str | None: + """ + Any preprocessing needed to be performed on function input. + Parameters: + x: text + Returns: + text + """ + if x is None: + return None + else: + return str(x) + + def generate_sample(self) -> str: + return "#000000" + + def postprocess(self, y: str | None) -> str | None: + """ + Any postprocessing needed to be performed on function output. + Parameters: + y: text + Returns: + text + """ + if y is None: + return None + else: + return str(y) + + +############################ +# Only Output Components +############################ + + +@document("change", "style") +class Label(Changeable, IOComponent, JSONSerializable): + """ + Displays a classification label, along with confidence scores of top categories, if provided. + Preprocessing: this component does *not* accept input. + Postprocessing: expects a {Dict[str, float]} of classes and confidences, or {str} with just the class or an {int}/{float} for regression outputs, or a {str} path to a .json file containing a json dictionary in the structure produced by Label.postprocess(). + + Demos: main_note, titanic_survival + Guides: Gradio_and_ONNX_on_Hugging_Face, image_classification_in_pytorch, image_classification_in_tensorflow, image_classification_with_vision_transformers, building_a_pictionary_app + """ + + CONFIDENCES_KEY = "confidences" + + def __init__( + self, + value: Optional[Dict[str, float] | str | float | Callable] = None, + *, + num_top_classes: Optional[int] = None, + label: Optional[str] = None, + every: float | None = None, + show_label: bool = True, + visible: bool = True, + elem_id: Optional[str] = None, + color: Optional[str] = None, + **kwargs, + ): + """ + Parameters: + value: Default value to show in the component. If a str or number is provided, simply displays the string or number. If a {Dict[str, float]} of classes and confidences is provided, displays the top class on top and the `num_top_classes` below, along with their confidence bars. If callable, the function will be called whenever the app loads to set the initial value of the component. + num_top_classes: number of most confident classes to show. + label: component name in interface. + every: If `value` is a callable, run the function 'every' number of seconds while the client connection is open. Has no effect otherwise. Queue must be enabled. The event can be accessed (e.g. to cancel it) via this component's .load_event attribute. + show_label: if True, will display label. + visible: If False, component will be hidden. + elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. + color: The background color of the label (either a valid css color name or hexadecimal string). + """ + self.num_top_classes = num_top_classes + self.color = color + IOComponent.__init__( + self, + label=label, + every=every, + show_label=show_label, + visible=visible, + elem_id=elem_id, + value=value, + **kwargs, + ) + + def get_config(self): + return { + "num_top_classes": self.num_top_classes, + "value": self.value, + "color": self.color, + **IOComponent.get_config(self), + } + + def postprocess(self, y: Dict[str, float] | str | float | None) -> Dict | None: + """ + Parameters: + y: a dictionary mapping labels to confidence value, or just a string/numerical label by itself + Returns: + Object with key 'label' representing primary label, and key 'confidences' representing a list of label-confidence pairs + """ + if y is None or y == {}: + return None + if isinstance(y, str) and y.endswith(".json") and os.path.exists(y): + return self.serialize(y) + if isinstance(y, (str, numbers.Number)): + return {"label": str(y)} + if isinstance(y, dict): + if "confidences" in y and isinstance(y["confidences"], dict): + y = y["confidences"] + y = {c["label"]: c["confidence"] for c in y} + sorted_pred = sorted(y.items(), key=operator.itemgetter(1), reverse=True) + if self.num_top_classes is not None: + sorted_pred = sorted_pred[: self.num_top_classes] + return { + "label": sorted_pred[0][0], + "confidences": [ + {"label": pred[0], "confidence": pred[1]} for pred in sorted_pred + ], + } + raise ValueError( + "The `Label` output interface expects one of: a string label, or an int label, a " + "float label, or a dictionary whose keys are labels and values are confidences. " + "Instead, got a {}".format(type(y)) + ) + + @staticmethod + def update( + value: Optional[Dict[str, float] | str | float] = _Keywords.NO_VALUE, + label: Optional[str] = None, + show_label: Optional[bool] = None, + visible: Optional[bool] = None, + color: Optional[str] = _Keywords.NO_VALUE, + ): + # If color is not specified (NO_VALUE) map it to None so that + # it gets filtered out in postprocess. This will mean the color + # will not be updated in the front-end + if color is _Keywords.NO_VALUE: + color = None + # If the color was specified by the developer as None + # Map is so that the color is updated to be transparent, + # e.g. no background default state. + elif color is None: + color = "transparent" + updated_config = { + "label": label, + "show_label": show_label, + "visible": visible, + "value": value, + "color": color, + "__type__": "update", + } + return updated_config + + def style( + self, + *, + container: Optional[bool] = None, + ): + """ + This method can be used to change the appearance of the label component. + Parameters: + container: If True, will add a container to the label - providing some extra padding around the border. + """ + return IOComponent.style(self, container=container) + + +@document("change", "style") +class HighlightedText(Changeable, IOComponent, JSONSerializable): + """ + Displays text that contains spans that are highlighted by category or numerical value. + Preprocessing: this component does *not* accept input. + Postprocessing: expects a {List[Tuple[str, float | str]]]} consisting of spans of text and their associated labels, or a {Dict} with two keys: (1) "text" whose value is the complete text, and "entities", which is a list of dictionaries, each of which have the keys: "entity" (consisting of the entity label), "start" (the character index where the label starts), and "end" (the character index where the label ends). Entities should not overlap. + + Demos: diff_texts, text_analysis + Guides: named_entity_recognition + """ + + def __init__( + self, + value: Optional[List[Tuple[str, str | float | None]] | Dict | Callable] = None, + *, + color_map: Dict[str, str] = None, # Parameter moved to HighlightedText.style() + show_legend: bool = False, + combine_adjacent: bool = False, + adjacent_separator: str = "", + label: Optional[str] = None, + every: float | None = None, + show_label: bool = True, + visible: bool = True, + elem_id: Optional[str] = None, + **kwargs, + ): + """ + Parameters: + value: Default value to show. If callable, the function will be called whenever the app loads to set the initial value of the component. + show_legend: whether to show span categories in a separate legend or inline. + combine_adjacent: If True, will merge the labels of adjacent tokens belonging to the same category. + adjacent_separator: Specifies the separator to be used between tokens if combine_adjacent is True. + label: component name in interface. + every: If `value` is a callable, run the function 'every' number of seconds while the client connection is open. Has no effect otherwise. Queue must be enabled. The event can be accessed (e.g. to cancel it) via this component's .load_event attribute. + show_label: if True, will display label. + visible: If False, component will be hidden. + elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. + """ + self.color_map = color_map + if color_map is not None: + warnings.warn( + "The 'color_map' parameter has been moved from the constructor to `HighlightedText.style()` ", + ) + self.show_legend = show_legend + self.combine_adjacent = combine_adjacent + self.adjacent_separator = adjacent_separator + IOComponent.__init__( + self, + label=label, + every=every, + show_label=show_label, + visible=visible, + elem_id=elem_id, + value=value, + **kwargs, + ) + + def get_config(self): + return { + "color_map": self.color_map, + "show_legend": self.show_legend, + "value": self.value, + **IOComponent.get_config(self), + } + + @staticmethod + def update( + value: Optional[ + List[Tuple[str, str | float | None]] | Dict + ] = _Keywords.NO_VALUE, + color_map: Optional[Dict[str, str]] = None, + show_legend: Optional[bool] = None, + label: Optional[str] = None, + show_label: Optional[bool] = None, + visible: Optional[bool] = None, + ): + updated_config = { + "color_map": color_map, + "show_legend": show_legend, + "label": label, + "show_label": show_label, + "visible": visible, + "value": value, + "__type__": "update", + } + return updated_config + + def postprocess( + self, y: List[Tuple[str, str | float | None]] | Dict | None + ) -> List[Tuple[str, str | float | None]] | None: + """ + Parameters: + y: List of (word, category) tuples + Returns: + List of (word, category) tuples + """ + if y is None: + return None + if isinstance(y, dict): + try: + text = y["text"] + entities = y["entities"] + except KeyError: + raise ValueError( + "Expected a dictionary with keys 'text' and 'entities' for the value of the HighlightedText component." + ) + if len(entities) == 0: + y = [(text, None)] + else: + list_format = [] + index = 0 + entities = sorted(entities, key=lambda x: x["start"]) + for entity in entities: + list_format.append((text[index : entity["start"]], None)) + list_format.append( + (text[entity["start"] : entity["end"]], entity["entity"]) + ) + index = entity["end"] + list_format.append((text[index:], None)) + y = list_format + if self.combine_adjacent: + output = [] + running_text, running_category = None, None + for text, category in y: + if running_text is None: + running_text = text + running_category = category + elif category == running_category: + running_text += self.adjacent_separator + text + elif not text: + # Skip fully empty item, these get added in processing + # of dictionaries. + pass + else: + output.append((running_text, running_category)) + running_text = text + running_category = category + if running_text is not None: + output.append((running_text, running_category)) + return output + else: + return y + + def style( + self, + *, + color_map: Optional[Dict[str, str]] = None, + container: Optional[bool] = None, + **kwargs, + ): + """ + This method can be used to change the appearance of the HighlightedText component. + Parameters: + color_map: Map between category and respective colors. + container: If True, will place the component in a container - providing some extra padding around the border. + """ + if color_map is not None: + self._style["color_map"] = color_map + + return IOComponent.style(self, container=container, **kwargs) + + +@document("change", "style") +class JSON(Changeable, IOComponent, JSONSerializable): + """ + Used to display arbitrary JSON output prettily. + Preprocessing: this component does *not* accept input. + Postprocessing: expects a valid JSON {str} -- or a {list} or {dict} that is JSON serializable. + + Demos: zip_to_json, blocks_xray + """ + + def __init__( + self, + value: Optional[str | Callable] = None, + *, + label: Optional[str] = None, + every: float | None = None, + show_label: bool = True, + visible: bool = True, + elem_id: Optional[str] = None, + **kwargs, + ): + """ + Parameters: + value: Default value. If callable, the function will be called whenever the app loads to set the initial value of the component. + label: component name in interface. + every: If `value` is a callable, run the function 'every' number of seconds while the client connection is open. Has no effect otherwise. Queue must be enabled. The event can be accessed (e.g. to cancel it) via this component's .load_event attribute. + show_label: if True, will display label. + visible: If False, component will be hidden. + elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. + """ + IOComponent.__init__( + self, + label=label, + every=every, + show_label=show_label, + visible=visible, + elem_id=elem_id, + value=value, + **kwargs, + ) + + def get_config(self): + return { + "value": self.value, + **IOComponent.get_config(self), + } + + @staticmethod + def update( + value: Optional[Any] = _Keywords.NO_VALUE, + label: Optional[str] = None, + show_label: Optional[bool] = None, + visible: Optional[bool] = None, + interactive: Optional[bool] = None, + ): + updated_config = { + "label": label, + "show_label": show_label, + "visible": visible, + "value": value, + "__type__": "update", + } + return updated_config + + def postprocess(self, y: Dict | List | str | None) -> Dict | List | None: + """ + Parameters: + y: JSON output + Returns: + JSON output + """ + if y is None: + return None + if isinstance(y, str): + return json.dumps(y) + else: + return y + + def style(self, *, container: Optional[bool] = None, **kwargs): + """ + This method can be used to change the appearance of the JSON component. + Parameters: + container: If True, will place the JSON in a container - providing some extra padding around the border. + """ + return IOComponent.style(self, container=container, **kwargs) + + +@document("change") +class HTML(Changeable, IOComponent, SimpleSerializable): + """ + Used to display arbitrary HTML output. + Preprocessing: this component does *not* accept input. + Postprocessing: expects a valid HTML {str}. + + Demos: text_analysis + Guides: key_features + """ + + def __init__( + self, + value: str | Callable = "", + *, + label: Optional[str] = None, + every: float | None = None, + show_label: bool = True, + visible: bool = True, + elem_id: Optional[str] = None, + **kwargs, + ): + """ + Parameters: + value: Default value. If callable, the function will be called whenever the app loads to set the initial value of the component. + label: component name in interface. + every: If `value` is a callable, run the function 'every' number of seconds while the client connection is open. Has no effect otherwise. Queue must be enabled. The event can be accessed (e.g. to cancel it) via this component's .load_event attribute. + show_label: if True, will display label. + visible: If False, component will be hidden. + elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. + """ + IOComponent.__init__( + self, + label=label, + every=every, + show_label=show_label, + visible=visible, + elem_id=elem_id, + value=value, + **kwargs, + ) + + def get_config(self): + return { + "value": self.value, + **IOComponent.get_config(self), + } + + @staticmethod + def update( + value: Optional[Any] = _Keywords.NO_VALUE, + label: Optional[str] = None, + show_label: Optional[bool] = None, + visible: Optional[bool] = None, + ): + updated_config = { + "label": label, + "show_label": show_label, + "visible": visible, + "value": value, + "__type__": "update", + } + return updated_config + + def style(self): + return self + + +@document("style") +class Gallery(IOComponent, TempFileManager): + """ + Used to display a list of images as a gallery that can be scrolled through. + Preprocessing: this component does *not* accept input. + Postprocessing: expects a list of images in any format, {List[numpy.array | PIL.Image | str]}, or a {List} of (image, {str} caption) tuples and displays them. + + Demos: fake_gan + """ + + def __init__( + self, + value: Optional[List[np.ndarray | PIL.Image | str] | Callable] = None, + *, + label: Optional[str] = None, + every: float | None = None, + show_label: bool = True, + visible: bool = True, + elem_id: Optional[str] = None, + **kwargs, + ): + """ + Parameters: + value: List of images to display in the gallery by default. If callable, the function will be called whenever the app loads to set the initial value of the component. + label: component name in interface. + every: If `value` is a callable, run the function 'every' number of seconds while the client connection is open. Has no effect otherwise. Queue must be enabled. The event can be accessed (e.g. to cancel it) via this component's .load_event attribute. + show_label: if True, will display label. + visible: If False, component will be hidden. + elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. + """ + TempFileManager.__init__(self) + super().__init__( + label=label, + every=every, + show_label=show_label, + visible=visible, + elem_id=elem_id, + value=value, + **kwargs, + ) + + @staticmethod + def update( + value: Optional[Any] = _Keywords.NO_VALUE, + label: Optional[str] = None, + show_label: Optional[bool] = None, + visible: Optional[bool] = None, + ): + updated_config = { + "label": label, + "show_label": show_label, + "visible": visible, + "value": value, + "__type__": "update", + } + return updated_config + + def get_config(self): + return { + "value": self.value, + **IOComponent.get_config(self), + } + + def postprocess( + self, + y: List[np.ndarray | PIL.Image | str] + | List[Tuple[np.ndarray | PIL.Image | str, str]] + | None, + ) -> List[str]: + """ + Parameters: + y: list of images, or list of (image, caption) tuples + Returns: + list of string file paths to images in temp directory + """ + if y is None: + return [] + output = [] + for img in y: + caption = None + if isinstance(img, tuple) or isinstance(img, list): + img, caption = img + if isinstance(img, np.ndarray): + file = processing_utils.save_array_to_file(img) + file_path = os.path.abspath(file.name) + self.temp_files.add(file_path) + elif isinstance(img, PIL.Image.Image): + file = processing_utils.save_pil_to_file(img) + file_path = os.path.abspath(file.name) + self.temp_files.add(file_path) + elif isinstance(img, str): + if utils.validate_url(img): + file_path = img + else: + file_path = self.make_temp_copy_if_needed(img) + else: + raise ValueError(f"Cannot process type as image: {type(img)}") + + if caption is not None: + output.append( + [{"name": file_path, "data": None, "is_file": True}, caption] + ) + else: + output.append({"name": file_path, "data": None, "is_file": True}) + + return output + + def style( + self, + *, + grid: Optional[int | Tuple] = None, + height: Optional[str] = None, + container: Optional[bool] = None, + **kwargs, + ): + """ + This method can be used to change the appearance of the gallery component. + Parameters: + grid: Represents the number of images that should be shown in one row, for each of the six standard screen sizes (<576px, <768px, <992px, <1200px, <1400px, >1400px). if fewer that 6 are given then the last will be used for all subsequent breakpoints + height: Height of the gallery. + container: If True, will place gallery in a container - providing some extra padding around the border. + """ + if grid is not None: + self._style["grid"] = grid + if height is not None: + self._style["height"] = height + + return IOComponent.style(self, container=container, **kwargs) + + def deserialize( + self, x: Any, save_dir: str = "", encryption_key: bytes | None = None + ) -> None | str: + if x is None: + return None + gallery_path = os.path.join(save_dir, str(uuid.uuid4())) + os.makedirs(gallery_path) + captions = {} + for img_data in x: + if isinstance(img_data, list) or isinstance(img_data, tuple): + img_data, caption = img_data + else: + caption = None + name = FileSerializable.deserialize(self, img_data, gallery_path) + captions[name] = caption + captions_file = os.path.join(gallery_path, "captions.json") + with open(captions_file, "w") as captions_json: + json.dump(captions, captions_json) + return os.path.abspath(gallery_path) + + def serialize(self, x: Any, load_dir: str = "", called_directly: bool = False): + files = [] + captions_file = os.path.join(x, "captions.json") + with open(captions_file) as captions_json: + captions = json.load(captions_json) + for file_name, caption in captions.items(): + img = FileSerializable.serialize(self, file_name) + files.append([img, caption]) + return files + + +class Carousel(IOComponent, Changeable, SimpleSerializable): + """ + Deprecated Component + """ + + def __init__( + self, + *args, + **kwargs, + ): + raise DeprecationWarning( + "The Carousel component is deprecated. Please consider using the Gallery " + "component, which can be used to display images (and optional captions).", + ) + + +@document("change", "style") +class Chatbot(Changeable, IOComponent, JSONSerializable): + """ + Displays a chatbot output showing both user submitted messages and responses. Supports a subset of Markdown including bold, italics, code, and images. + Preprocessing: this component does *not* accept input. + Postprocessing: expects a {List[Tuple[str, str]]}, a list of tuples with user inputs and responses as strings of HTML. + + Demos: chatbot_demo + """ + + def __init__( + self, + value: Optional[List[Tuple[str, str]] | Callable] = None, + color_map: Dict[str, str] = None, # Parameter moved to Chatbot.style() + *, + label: Optional[str] = None, + every: float | None = None, + show_label: bool = True, + visible: bool = True, + elem_id: Optional[str] = None, + **kwargs, + ): + """ + Parameters: + value: Default value to show in chatbot. If callable, the function will be called whenever the app loads to set the initial value of the component. + label: component name in interface. + every: If `value` is a callable, run the function 'every' number of seconds while the client connection is open. Has no effect otherwise. Queue must be enabled. The event can be accessed (e.g. to cancel it) via this component's .load_event attribute. + show_label: if True, will display label. + visible: If False, component will be hidden. + elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. + """ + if color_map is not None: + warnings.warn( + "The 'color_map' parameter has been moved from the constructor to `Chatbot.style()` ", + ) + self.color_map = color_map + self.md = MarkdownIt() + + IOComponent.__init__( + self, + label=label, + every=every, + show_label=show_label, + visible=visible, + elem_id=elem_id, + value=value, + **kwargs, + ) + + def get_config(self): + return { + "value": self.value, + "color_map": self.color_map, + **IOComponent.get_config(self), + } + + @staticmethod + def update( + value: Optional[Any] = _Keywords.NO_VALUE, + color_map: Optional[Tuple[str, str]] = None, + label: Optional[str] = None, + show_label: Optional[bool] = None, + visible: Optional[bool] = None, + ): + updated_config = { + "color_map": color_map, + "label": label, + "show_label": show_label, + "visible": visible, + "value": value, + "__type__": "update", + } + return updated_config + + def postprocess(self, y: List[Tuple[str, str]]) -> List[Tuple[str, str]]: + """ + Parameters: + y: List of tuples representing the message and response pairs. Each message and response should be a string, which may be in Markdown format. + Returns: + List of tuples representing the message and response. Each message and response will be a string of HTML. + """ + if y is None: + return [] + for i, (message, response) in enumerate(y): + y[i] = (self.md.render(message), self.md.render(response)) + return y + + def style(self, *, color_map: Optional[List[str, str]] = None, **kwargs): + """ + This method can be used to change the appearance of the Chatbot component. + Parameters: + color_map: List containing colors to apply to chat bubbles. + Returns: + + """ + if color_map is not None: + self._style["color_map"] = color_map + + return IOComponent.style( + self, + **kwargs, + ) + + +@document("change", "edit", "clear", "style") +class Model3D( + Changeable, Editable, Clearable, IOComponent, FileSerializable, TempFileManager +): + """ + Component allows users to upload or view 3D Model files (.obj, .glb, or .gltf). + Preprocessing: This component passes the uploaded file as a {str} filepath. + Postprocessing: expects function to return a {str} path to a file of type (.obj, glb, or .gltf) + + Demos: model3D + Guides: how_to_use_3D_model_component + """ + + def __init__( + self, + value: Optional[str | Callable] = None, + *, + clear_color: List[float] = None, + label: Optional[str] = None, + every: float | None = None, + show_label: bool = True, + visible: bool = True, + elem_id: Optional[str] = None, + **kwargs, + ): + """ + Parameters: + value: path to (.obj, glb, or .gltf) file to show in model3D viewer. If callable, the function will be called whenever the app loads to set the initial value of the component. + clear_color: background color of scene + label: component name in interface. + every: If `value` is a callable, run the function 'every' number of seconds while the client connection is open. Has no effect otherwise. Queue must be enabled. The event can be accessed (e.g. to cancel it) via this component's .load_event attribute. + show_label: if True, will display label. + visible: If False, component will be hidden. + elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. + """ + self.clear_color = clear_color or [0.2, 0.2, 0.2, 1.0] + TempFileManager.__init__(self) + IOComponent.__init__( + self, + label=label, + every=every, + show_label=show_label, + visible=visible, + elem_id=elem_id, + value=value, + **kwargs, + ) + + def get_config(self): + return { + "clearColor": self.clear_color, + "value": self.value, + **IOComponent.get_config(self), + } + + @staticmethod + def update( + value: Optional[Any] = _Keywords.NO_VALUE, + label: Optional[str] = None, + show_label: Optional[bool] = None, + visible: Optional[bool] = None, + ): + updated_config = { + "label": label, + "show_label": show_label, + "visible": visible, + "value": value, + "__type__": "update", + } + return updated_config + + def preprocess(self, x: Dict[str, str] | None) -> str | None: + """ + Parameters: + x: JSON object with filename as 'name' property and base64 data as 'data' property + Returns: + string file path to temporary file with the 3D image model + """ + if x is None: + return x + file_name, file_data, is_file = ( + x["name"], + x["data"], + x.get("is_file", False), + ) + if is_file: + temp_file_path = self.make_temp_copy_if_needed(file_name) + else: + temp_file = processing_utils.decode_base64_to_file( + file_data, file_path=file_name + ) + temp_file_path = temp_file.name + + return temp_file_path + + def generate_sample(self): + return media_data.BASE64_MODEL3D + + def postprocess(self, y: str | None) -> Dict[str, str] | None: + """ + Parameters: + y: path to the model + Returns: + file name mapped to base64 url data + """ + if y is None: + return y + data = { + "name": self.make_temp_copy_if_needed(y), + "data": None, + "is_file": True, + } + return data + + def style(self, **kwargs): + """ + This method can be used to change the appearance of the Model3D component. + """ + return IOComponent.style( + self, + **kwargs, + ) + + def as_example(self, input_data: str | None) -> str: + return Path(input_data).name if input_data else "" + + +@document("change", "clear") +class Plot(Changeable, Clearable, IOComponent, JSONSerializable): + """ + Used to display various kinds of plots (matplotlib, plotly, or bokeh are supported) + Preprocessing: this component does *not* accept input. + Postprocessing: expects either a {matplotlib.figure.Figure}, a {plotly.graph_objects._figure.Figure}, or a {dict} corresponding to a bokeh plot (json_item format) + + Demos: altair_plot, outbreak_forecast, blocks_kinematics, stock_forecast, map_airbnb + Guides: plot_component_for_maps + """ + + def __init__( + self, + value: Optional[Callable] = None, + *, + label: Optional[str] = None, + every: float | None = None, + show_label: bool = True, + visible: bool = True, + elem_id: Optional[str] = None, + **kwargs, + ): + """ + Parameters: + value: Optionally, supply a default plot object to display, must be a matplotlib, plotly, altair, or bokeh figure, or a callable. If callable, the function will be called whenever the app loads to set the initial value of the component. + label: component name in interface. + every: If `value` is a callable, run the function 'every' number of seconds while the client connection is open. Has no effect otherwise. Queue must be enabled. The event can be accessed (e.g. to cancel it) via this component's .load_event attribute. + show_label: if True, will display label. + visible: If False, component will be hidden. + elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. + """ + IOComponent.__init__( + self, + label=label, + every=every, + show_label=show_label, + visible=visible, + elem_id=elem_id, + value=value, + **kwargs, + ) + + def get_config(self): + return {"value": self.value, **IOComponent.get_config(self)} + + @staticmethod + def update( + value: Optional[Any] = _Keywords.NO_VALUE, + label: Optional[str] = None, + show_label: Optional[bool] = None, + visible: Optional[bool] = None, + ): + updated_config = { + "label": label, + "show_label": show_label, + "visible": visible, + "value": value, + "__type__": "update", + } + return updated_config + + def postprocess(self, y: str | None) -> Dict[str, str] | None: + """ + Parameters: + y: plot data + Returns: + plot type mapped to plot base64 data + """ + if y is None: + return None + if isinstance(y, (ModuleType, matplotlib.figure.Figure)): + dtype = "matplotlib" + out_y = processing_utils.encode_plot_to_base64(y) + elif isinstance(y, dict): + dtype = "bokeh" + out_y = json.dumps(y) + else: + is_altair = "altair" in y.__module__ + if is_altair: + dtype = "altair" + else: + dtype = "plotly" + out_y = y.to_json() + return {"type": dtype, "plot": out_y} + + def style(self, container: Optional[bool] = None): + return IOComponent.style( + self, + container=container, + ) + + +@document("change", "clear") +class ScatterPlot(Plot): + """ + Create a scatter plot. + + Preprocessing: this component does *not* accept input. + Postprocessing: expects a pandas dataframe with the data to plot. + + Demos: native_plots + """ + + def __init__( + self, + value: Optional[pd.DataFrame | Callable] = None, + x: Optional[str] = None, + y: Optional[str] = None, + *, + color: Optional[str] = None, + size: Optional[str] = None, + shape: Optional[str] = None, + title: Optional[str] = None, + tooltip: Optional[List[str] | str] = None, + x_title: Optional[str] = None, + y_title: Optional[str] = None, + color_legend_title: Optional[str] = None, + size_legend_title: Optional[str] = None, + shape_legend_title: Optional[str] = None, + height: Optional[int] = None, + width: Optional[int] = None, + caption: Optional[str] = None, + interactive: Optional[bool] = True, + label: Optional[str] = None, + every: float | None = None, + show_label: bool = True, + visible: bool = True, + elem_id: Optional[str] = None, + ): + """ + Parameters: + value: The pandas dataframe containing the data to display in a scatter plot, or a callable. If callable, the function will be called whenever the app loads to set the initial value of the component. + x: Column corresponding to the x axis. + y: Column corresponding to the y axis. + color: The column to determine the point color. If the column contains numeric data, gradio will interpolate the column data so that small values correspond to light colors and large values correspond to dark values. + size: The column used to determine the point size. Should contain numeric data so that gradio can map the data to the point size. + shape: The column used to determine the point shape. Should contain categorical data. Gradio will map each unique value to a different shape. + title: The title to display on top of the chart. + tooltip: The column (or list of columns) to display on the tooltip when a user hovers a point on the plot. + x_title: The title given to the x axis. By default, uses the value of the x parameter. + y_title: The title given to the y axis. By default, uses the value of the y parameter. + color_legend_title: The title given to the color legend. By default, uses the value of color parameter. + size_legend_title: The title given to the size legend. By default, uses the value of the size parameter. + shape_legend_title: The title given to the shape legend. By default, uses the value of the shape parameter. + height: The height of the plot in pixels. + width: The width of the plot in pixels. + caption: The (optional) caption to display below the plot. + interactive: Whether users should be able to interact with the plot by panning or zooming with their mouse or trackpad. + label: The (optional) label to display on the top left corner of the plot. + show_label: Whether the label should be displayed. + visible: Whether the plot should be visible. + elem_id: Unique id used for custom css targetting. + """ + self.x = x + self.y = y + self.color = color + self.size = size + self.shape = shape + self.tooltip = tooltip + self.title = title + self.x_title = x_title + self.y_title = y_title + self.color_legend_title = color_legend_title + self.size_legend_title = size_legend_title + self.shape_legend_title = shape_legend_title + self.caption = caption + self.interactive_chart = interactive + self.width = width + self.height = height + super().__init__( + value=value, + label=label, + every=every, + show_label=show_label, + visible=visible, + elem_id=elem_id, + ) + + def get_config(self): + config = super().get_config() + config["caption"] = self.caption + return config + + def get_block_name(self) -> str: + return "plot" + + @staticmethod + def update( + value: Optional[Any] = _Keywords.NO_VALUE, + x: Optional[str] = None, + y: Optional[str] = None, + color: Optional[str] = None, + size: Optional[str] = None, + shape: Optional[str] = None, + title: Optional[str] = None, + tooltip: Optional[List[str] | str] = None, + x_title: Optional[str] = None, + y_title: Optional[str] = None, + color_legend_title: Optional[str] = None, + size_legend_title: Optional[str] = None, + shape_legend_title: Optional[str] = None, + height: Optional[int] = None, + width: Optional[int] = None, + interactive: Optional[bool] = None, + caption: Optional[str] = None, + label: Optional[str] = None, + show_label: Optional[bool] = None, + visible: Optional[bool] = None, + ): + """Update an existing plot component. + + If updating any of the plot properties (color, size, etc) the value, x, and y parameters must be specified. + + Parameters: + value: The pandas dataframe containing the data to display in a scatter plot. + x: Column corresponding to the x axis. + y: Column corresponding to the y axis. + color: The column to determine the point color. If the column contains numeric data, gradio will interpolate the column data so that small values correspond to light colors and large values correspond to dark values. + size: The column used to determine the point size. Should contain numeric data so that gradio can map the data to the point size. + shape: The column used to determine the point shape. Should contain categorical data. Gradio will map each unique value to a different shape. + title: The title to display on top of the chart. + tooltip: The column (or list of columns) to display on the tooltip when a user hovers a point on the plot. + x_title: The title given to the x axis. By default, uses the value of the x parameter. + y_title: The title given to the y axis. By default, uses the value of the y parameter. + color_legend_title: The title given to the color legend. By default, uses the value of color parameter. + size_legend_title: The title given to the size legend. By default, uses the value of the size parameter. + shape_legend_title: The title given to the shape legend. By default, uses the value of the shape parameter. + height: The height of the plot in pixels. + width: The width of the plot in pixels. + caption: The (optional) caption to display below the plot. + interactive: Whether users should be able to interact with the plot by panning or zooming with their mouse or trackpad. + label: The (optional) label to display in the top left corner of the plot. + show_label: Whether the label should be displayed. + visible: Whether the plot should be visible. + """ + properties = [ + x, + y, + color, + size, + shape, + title, + tooltip, + x_title, + y_title, + color_legend_title, + size_legend_title, + shape_legend_title, + interactive, + height, + width, + ] + if any(properties): + if value is _Keywords.NO_VALUE: + raise ValueError( + "In order to update plot properties the value parameter " + "must be provided. Please pass a value parameter to " + "gr.ScatterPlot.update." + ) + if x is None or y is None: + raise ValueError( + "In order to update plot properties, the x and y axis data " + "must be specified. Please pass valid values for x an y to " + "gr.ScatterPlot.update." + ) + chart = ScatterPlot.create_plot(value, *properties) + value = {"type": "altair", "plot": chart.to_json(), "chart": "scatter"} + + updated_config = { + "label": label, + "show_label": show_label, + "visible": visible, + "value": value, + "caption": caption, + "__type__": "update", + } + return updated_config + + @staticmethod + def create_plot( + value: pd.DataFrame, + x: str, + y: str, + color: Optional[str] = None, + size: Optional[str] = None, + shape: Optional[str] = None, + title: Optional[str] = None, + tooltip: Optional[List[str] | str] = None, + x_title: Optional[str] = None, + y_title: Optional[str] = None, + color_legend_title: Optional[str] = None, + size_legend_title: Optional[str] = None, + shape_legend_title: Optional[str] = None, + height: Optional[int] = None, + width: Optional[int] = None, + interactive: Optional[bool] = True, + ): + """Helper for creating the scatter plot.""" + interactive = True if interactive is None else interactive + encodings = dict( + x=alt.X(x, title=x_title or x), + y=alt.Y(y, title=y_title or y), + ) + properties = {} + if title: + properties["title"] = title + if height: + properties["height"] = height + if width: + properties["width"] = width + if color: + if is_numeric_dtype(value[color]): + domain = [value[color].min(), value[color].max()] + range_ = [0, 1] + type_ = "quantitative" + else: + domain = value[color].unique().tolist() + range_ = list(range(len(domain))) + type_ = "nominal" + + encodings["color"] = { + "field": color, + "type": type_, + "legend": {"title": color_legend_title or color}, + "scale": {"domain": domain, "range": range_}, + } + if tooltip: + encodings["tooltip"] = tooltip + if size: + encodings["size"] = { + "field": size, + "type": "quantitative" if is_numeric_dtype(value[size]) else "nominal", + "legend": {"title": size_legend_title or size}, + } + if shape: + encodings["shape"] = { + "field": shape, + "type": "quantitative" if is_numeric_dtype(value[shape]) else "nominal", + "legend": {"title": shape_legend_title or shape}, + } + chart = ( + alt.Chart(value) + .mark_point() + .encode(**encodings) + .properties(background="transparent", **properties) + ) + if interactive: + chart = chart.interactive() + + return chart + + def postprocess(self, y: pd.DataFrame | Dict | None) -> Dict[str, str] | None: + # if None or update + if y is None or isinstance(y, Dict): + return y + chart = self.create_plot( + value=y, + x=self.x, + y=self.y, + color=self.color, + size=self.size, + shape=self.shape, + title=self.title, + tooltip=self.tooltip, + x_title=self.x_title, + y_title=self.y_title, + color_legend_title=self.color_legend_title, + size_legend_title=self.size_legend_title, + shape_legend_title=self.size_legend_title, + interactive=self.interactive_chart, + height=self.height, + width=self.width, + ) + + return {"type": "altair", "plot": chart.to_json(), "chart": "scatter"} + + +@document("change") +class Markdown(IOComponent, Changeable, SimpleSerializable): + """ + Used to render arbitrary Markdown output. Can also render latex enclosed by dollar signs. + Preprocessing: this component does *not* accept input. + Postprocessing: expects a valid {str} that can be rendered as Markdown. + + Demos: blocks_hello, blocks_kinematics + Guides: key_features + """ + + def __init__( + self, + value: str | Callable = "", + *, + visible: bool = True, + elem_id: Optional[str] = None, + **kwargs, + ): + """ + Parameters: + value: Value to show in Markdown component. If callable, the function will be called whenever the app loads to set the initial value of the component. + visible: If False, component will be hidden. + elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. + """ + self.md = ( + MarkdownIt() + .use(dollarmath_plugin, renderer=utils.tex2svg, allow_digits=False) + .enable("table") + ) + IOComponent.__init__( + self, visible=visible, elem_id=elem_id, value=value, **kwargs + ) + + def postprocess(self, y: str | None) -> str | None: + """ + Parameters: + y: markdown representation + Returns: + HTML rendering of markdown + """ + if y is None: + return None + unindented_y = inspect.cleandoc(y) + return self.md.render(unindented_y) + + def get_config(self): + return { + "value": self.value, + **Component.get_config(self), + } + + @staticmethod + def update( + value: Optional[Any] = _Keywords.NO_VALUE, + visible: Optional[bool] = None, + ): + updated_config = { + "visible": visible, + "value": value, + "__type__": "update", + } + return updated_config + + def style(self): + return self + + def as_example(self, input_data: str) -> str: + return self.postprocess(input_data) + + +############################ +# Special Components +############################ + + +@document("click", "style") +class Dataset(Clickable, Component): + """ + Used to create an output widget for showing datasets. Used to render the examples + box. + Preprocessing: passes the selected sample either as a {list} of data (if type="value") or as an {int} index (if type="index") + Postprocessing: expects a {list} of {lists} corresponding to the dataset data. + """ + + def __init__( + self, + *, + label: Optional[str] = None, + components: List[IOComponent] | List[str], + samples: List[List[Any]] = None, + headers: Optional[List[str]] = None, + type: str = "values", + visible: bool = True, + elem_id: Optional[str] = None, + **kwargs, + ): + """ + Parameters: + components: Which component types to show in this dataset widget, can be passed in as a list of string names or Components instances. The following components are supported in a Dataset: Audio, Checkbox, CheckboxGroup, ColorPicker, Dataframe, Dropdown, File, HTML, Image, Markdown, Model3D, Number, Radio, Slider, Textbox, TimeSeries, Video + samples: a nested list of samples. Each sublist within the outer list represents a data sample, and each element within the sublist represents an value for each component + headers: Column headers in the Dataset widget, should be the same len as components. If not provided, inferred from component labels + type: 'values' if clicking on a sample should pass the value of the sample, or "index" if it should pass the index of the sample + visible: If False, component will be hidden. + elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. + """ + Component.__init__(self, visible=visible, elem_id=elem_id, **kwargs) + self.components = [get_component_instance(c, render=False) for c in components] + self.samples = [[]] if samples is None else samples + for example in self.samples: + for i, (component, ex) in enumerate(zip(self.components, example)): + example[i] = component.as_example(ex) + self.type = type + self.label = label + if headers is not None: + self.headers = headers + elif all([c.label is None for c in self.components]): + self.headers = [] + else: + self.headers = [c.label or "" for c in self.components] + + def get_config(self): + return { + "components": [component.get_block_name() for component in self.components], + "headers": self.headers, + "samples": self.samples, + "type": self.type, + "label": self.label, + **Component.get_config(self), + } + + @staticmethod + def update( + samples: Optional[Any] = _Keywords.NO_VALUE, + visible: Optional[bool] = None, + label: Optional[str] = None, + ): + return { + "samples": samples, + "visible": visible, + "label": label, + "__type__": "update", + } + + def preprocess(self, x: Any) -> Any: + """ + Any preprocessing needed to be performed on function input. + """ + if self.type == "index": + return x + elif self.type == "values": + return self.samples[x] + + def postprocess(self, samples: List[List[Any]]) -> Dict: + return { + "samples": samples, + "__type__": "update", + } + + def style(self, **kwargs): + """ + This method can be used to change the appearance of the Dataset component. + """ + return IOComponent.style(self, **kwargs) + + +@document() +class Interpretation(Component): + """ + Used to create an interpretation widget for a component. + Preprocessing: this component does *not* accept input. + Postprocessing: expects a {dict} with keys "original" and "interpretation". + + Guides: custom_interpretations_with_blocks + """ + + def __init__( + self, + component: Component, + *, + visible: bool = True, + elem_id: Optional[str] = None, + **kwargs, + ): + """ + Parameters: + component: Which component to show in the interpretation widget. + visible: Whether or not the interpretation is visible. + elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. + """ + Component.__init__(self, visible=visible, elem_id=elem_id, **kwargs) + self.component = component + + def get_config(self): + return { + "component": self.component.get_block_name(), + "component_props": self.component.get_config(), + } + + @staticmethod + def update( + value: Optional[Any] = _Keywords.NO_VALUE, + visible: Optional[bool] = None, + ): + return { + "visible": visible, + "value": value, + "__type__": "update", + } + + def style(self): + return self + + def postprocess(self, y: Any) -> Any: + return y + + +class StatusTracker(Component): + """ + Used to indicate status of a function call. Event listeners can bind to a StatusTracker with 'status=' keyword argument. + """ + + def __init__( + self, + *, + cover_container: bool = False, + visible: bool = True, + elem_id: Optional[str] = None, + **kwargs, + ): + """ + Parameters: + cover_container: If True, will expand to cover parent container while function pending. + """ + Component.__init__(self, visible=visible, elem_id=elem_id, **kwargs) + self.cover_container = cover_container + + def get_config(self): + return { + "cover_container": self.cover_container, + **Component.get_config(self), + } + + @staticmethod + def update( + value: Optional[Any] = _Keywords.NO_VALUE, + visible: Optional[bool] = None, + ): + return { + "visible": visible, + "value": value, + "__type__": "update", + } + + +def component(cls_name: str) -> Component: + obj = utils.component_or_layout_class(cls_name)() + return obj + + +def get_component_instance(comp: str | dict | Component, render=True) -> Component: + if isinstance(comp, str): + component_obj = component(comp) + if not (render): + component_obj.unrender() + return component_obj + elif isinstance(comp, dict): + name = comp.pop("name") + component_cls = utils.component_or_layout_class(name) + component_obj = component_cls(**comp) + if not (render): + component_obj.unrender() + return component_obj + elif isinstance(comp, Component): + return comp + else: + raise ValueError( + f"Component must provided as a `str` or `dict` or `Component` but is {comp}" + ) + + +Text = Textbox +DataFrame = Dataframe +Highlightedtext = HighlightedText +Highlight = HighlightedText +Checkboxgroup = CheckboxGroup +TimeSeries = Timeseries +Json = JSON diff --git a/gtm/lib/python3.12/site-packages/gradio/context.py b/gtm/lib/python3.12/site-packages/gradio/context.py index 9fb7fff8312ab2564714485c35940f2c77bd3f02..770af3c06504226477395e937c0579b3da74ef8b 100644 --- a/gtm/lib/python3.12/site-packages/gradio/context.py +++ b/gtm/lib/python3.12/site-packages/gradio/context.py @@ -2,26 +2,15 @@ from __future__ import annotations -from contextvars import ContextVar from typing import TYPE_CHECKING if TYPE_CHECKING: # Only import for type checking (is False at runtime). from gradio.blocks import BlockContext, Blocks - from gradio.helpers import Progress - from gradio.routes import Request class Context: - root_block: Blocks | None = None # The current root block that holds all blocks. - block: BlockContext | None = None # The current block that children are added to. - id: int = 0 # Running id to uniquely refer to any block that gets defined - ip_address: str | None = None # The IP address of the user. - hf_token: str | None = None # The token provided when loading private HF repos - - -class LocalContext: - blocks: ContextVar[Blocks | None] = ContextVar("blocks", default=None) - in_event_listener: ContextVar[bool] = ContextVar("in_event_listener", default=False) - event_id: ContextVar[str | None] = ContextVar("event_id", default=None) - request: ContextVar[Request | None] = ContextVar("request", default=None) - progress: ContextVar[Progress | None] = ContextVar("progress", default=None) + root_block: Blocks = None # The current root block that holds all blocks. + block: BlockContext = ( + None # The current block that all children should be added to. + ) + id = 0 # Running id to uniquely refer to any block that gets defined diff --git a/gtm/lib/python3.12/site-packages/gradio/dataclasses.py b/gtm/lib/python3.12/site-packages/gradio/dataclasses.py new file mode 100644 index 0000000000000000000000000000000000000000..b9d4bb9322b42ff086ee0cb45789816d96b4f9ab --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/dataclasses.py @@ -0,0 +1,20 @@ +from typing import Any, Dict, List, Optional, Union + +from pydantic import BaseModel + + +class PredictBody(BaseModel): + session_hash: Optional[str] + data: List[Any] + fn_index: Optional[int] + batched: Optional[ + bool + ] = False # Whether the data is a batch of samples (i.e. called from the queue if batch=True) or a single sample (i.e. called from the UI) + request: Optional[ + Union[Dict, List[Dict]] + ] = None # dictionary of request headers, query parameters, url, etc. (used to to pass in request for queuing) + + +class ResetBody(BaseModel): + session_hash: str + fn_index: int diff --git a/gtm/lib/python3.12/site-packages/gradio/deprecation.py b/gtm/lib/python3.12/site-packages/gradio/deprecation.py new file mode 100644 index 0000000000000000000000000000000000000000..46ea2c5c52cab7f041120a01e79cdcb4266f4d87 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/deprecation.py @@ -0,0 +1,45 @@ +import warnings + + +def simple_deprecated_notice(term: str) -> str: + return f"`{term}` parameter is deprecated, and it has no effect" + + +def use_in_launch(term: str) -> str: + return f"`{term}` is deprecated in `Interface()`, please use it within `launch()` instead." + + +DEPRECATION_MESSAGE = { + "optional": simple_deprecated_notice("optional"), + "keep_filename": simple_deprecated_notice("keep_filename"), + "numeric": simple_deprecated_notice("numeric"), + "verbose": simple_deprecated_notice("verbose"), + "allow_screenshot": simple_deprecated_notice("allow_screenshot"), + "layout": simple_deprecated_notice("layout"), + "show_input": simple_deprecated_notice("show_input"), + "show_output": simple_deprecated_notice("show_output"), + "capture_session": simple_deprecated_notice("capture_session"), + "api_mode": simple_deprecated_notice("api_mode"), + "show_tips": use_in_launch("show_tips"), + "encrypt": use_in_launch("encrypt"), + "enable_queue": use_in_launch("enable_queue"), + "server_name": use_in_launch("server_name"), + "server_port": use_in_launch("server_port"), + "width": use_in_launch("width"), + "height": use_in_launch("height"), + "plot": "The 'plot' parameter has been deprecated. Use the new Plot component instead", + "type": "The 'type' parameter has been deprecated. Use the Number component instead.", +} + + +def check_deprecated_parameters(cls: str, **kwargs) -> None: + for key, value in DEPRECATION_MESSAGE.items(): + if key in kwargs: + kwargs.pop(key) + # Interestingly, using DeprecationWarning causes warning to not appear. + warnings.warn(value) + + if len(kwargs) != 0: + warnings.warn( + f"You have unused kwarg parameters in {cls}, please remove them: {kwargs}" + ) diff --git a/gtm/lib/python3.12/site-packages/gradio/documentation.py b/gtm/lib/python3.12/site-packages/gradio/documentation.py new file mode 100644 index 0000000000000000000000000000000000000000..b9a288c339b1c3ad73701c2d7eefca37d7812180 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/documentation.py @@ -0,0 +1,189 @@ +import inspect +from typing import Callable, Dict, List, Optional, Tuple + +classes_to_document = {} +documentation_group = None + + +def set_documentation_group(m): + global documentation_group + documentation_group = m + if m not in classes_to_document: + classes_to_document[m] = [] + + +def document(*fns): + """ + Defines the @document decorator which adds classes or functions to the Gradio + documentation at www.gradio.app/docs. + + Usage examples: + - Put @document() above a class to document the class and its constructor. + - Put @document(fn1, fn2) above a class to also document the class methods fn1 and fn2. + """ + + def inner_doc(cls): + global documentation_group + classes_to_document[documentation_group].append((cls, fns)) + return cls + + return inner_doc + + +def document_fn(fn: Callable) -> Tuple[str, List[Dict], Dict, Optional[str]]: + """ + Generates documentation for any function. + Parameters: + fn: Function to document + Returns: + description: General description of fn + parameters: A list of dicts for each parameter, storing data for the parameter name, annotation and doc + return: A dict storing data for the returned annotation and doc + example: Code for an example use of the fn + """ + doc_str = inspect.getdoc(fn) + doc_lines = doc_str.split("\n") + signature = inspect.signature(fn) + description, parameters, returns, examples = [], {}, [], [] + mode = "description" + for line in doc_lines: + line = line.rstrip() + if line == "Parameters:": + mode = "parameter" + elif line == "Example:": + mode = "example" + elif line == "Returns:": + mode = "return" + else: + if mode == "description": + description.append(line if line.strip() else "
    ") + continue + assert line.startswith( + " " + ), f"Documentation format for {fn.__name__} has format error in line: {line}" + line = line[4:] + if mode == "parameter": + colon_index = line.index(": ") + assert ( + colon_index > -1 + ), f"Documentation format for {fn.__name__} has format error in line: {line}" + parameter = line[:colon_index] + parameter_doc = line[colon_index + 2 :] + parameters[parameter] = parameter_doc + elif mode == "return": + returns.append(line) + elif mode == "example": + examples.append(line) + description_doc = " ".join(description) + parameter_docs = [] + for param_name, param in signature.parameters.items(): + if param_name.startswith("_"): + continue + if param_name == "kwargs" and param_name not in parameters: + continue + parameter_doc = { + "name": param_name, + "annotation": param.annotation, + "doc": parameters.get(param_name), + } + if param_name in parameters: + del parameters[param_name] + if param.default != inspect.Parameter.empty: + default = param.default + if type(default) == str: + default = '"' + default + '"' + if default.__class__.__module__ != "builtins": + default = f"{default.__class__.__name__}()" + parameter_doc["default"] = default + elif parameter_doc["doc"] is not None and "kwargs" in parameter_doc["doc"]: + parameter_doc["kwargs"] = True + parameter_docs.append(parameter_doc) + assert ( + len(parameters) == 0 + ), f"Documentation format for {fn.__name__} documents nonexistent parameters: {''.join(parameters.keys())}" + if len(returns) == 0: + return_docs = {} + elif len(returns) == 1: + return_docs = {"annotation": signature.return_annotation, "doc": returns[0]} + else: + return_docs = {} + # raise ValueError("Does not support multiple returns yet.") + examples_doc = "\n".join(examples) if len(examples) > 0 else None + return description_doc, parameter_docs, return_docs, examples_doc + + +def document_cls(cls): + doc_str = inspect.getdoc(cls) + if doc_str is None: + return "", {}, "" + tags = {} + description_lines = [] + mode = "description" + for line in doc_str.split("\n"): + line = line.rstrip() + if line.endswith(":") and " " not in line: + mode = line[:-1].lower() + tags[mode] = [] + elif line.split(" ")[0].endswith(":") and not line.startswith(" "): + tag = line[: line.index(":")].lower() + value = line[line.index(":") + 2 :] + tags[tag] = value + else: + if mode == "description": + description_lines.append(line if line.strip() else "
    ") + else: + assert ( + line.startswith(" ") or not line.strip() + ), f"Documentation format for {cls.__name__} has format error in line: {line}" + tags[mode].append(line[4:]) + if "example" in tags: + example = "\n".join(tags["example"]) + del tags["example"] + else: + example = None + for key, val in tags.items(): + if isinstance(val, list): + tags[key] = "
    ".join(val) + description = " ".join(description_lines).replace("\n", "
    ") + return description, tags, example + + +def generate_documentation(): + documentation = {} + for mode, class_list in classes_to_document.items(): + documentation[mode] = [] + for cls, fns in class_list: + fn_to_document = cls if inspect.isfunction(cls) else cls.__init__ + _, parameter_doc, return_doc, _ = document_fn(fn_to_document) + cls_description, cls_tags, cls_example = document_cls(cls) + cls_documentation = { + "class": cls, + "name": cls.__name__, + "description": cls_description, + "tags": cls_tags, + "parameters": parameter_doc, + "returns": return_doc, + "example": cls_example, + "fns": [], + } + for fn_name in fns: + fn = getattr(cls, fn_name) + ( + description_doc, + parameter_docs, + return_docs, + examples_doc, + ) = document_fn(fn) + cls_documentation["fns"].append( + { + "fn": fn, + "name": fn_name, + "description": description_doc, + "tags": {}, + "parameters": parameter_docs, + "returns": return_docs, + "example": examples_doc, + } + ) + documentation[mode].append(cls_documentation) + return documentation diff --git a/gtm/lib/python3.12/site-packages/gradio/encryptor.py b/gtm/lib/python3.12/site-packages/gradio/encryptor.py index 739c231bea9a6f157c06fac1ce3c3d0407a05187..01951ea1d27f03a435164300b1f75db68342722d 100644 --- a/gtm/lib/python3.12/site-packages/gradio/encryptor.py +++ b/gtm/lib/python3.12/site-packages/gradio/encryptor.py @@ -1,12 +1,16 @@ +from Crypto import Random from Crypto.Cipher import AES from Crypto.Hash import SHA256 -from Crypto import Random -def get_key(password): + +def get_key(password: str) -> bytes: + """Generates an encryption key based on the password provided.""" key = SHA256.new(password.encode()).digest() return key -def encrypt(key, source): + +def encrypt(key: bytes, source: bytes) -> bytes: + """Encrypts source data using the provided encryption key""" IV = Random.new().read(AES.block_size) # generate IV encryptor = AES.new(key, AES.MODE_CBC, IV) padding = AES.block_size - len(source) % AES.block_size # calculate needed padding @@ -14,11 +18,14 @@ def encrypt(key, source): data = IV + encryptor.encrypt(source) # store the IV at the beginning and encrypt return data -def decrypt(key, source): - IV = source[:AES.block_size] # extract the IV from the beginning + +def decrypt(key: bytes, source: bytes) -> bytes: + IV = source[: AES.block_size] # extract the IV from the beginning decryptor = AES.new(key, AES.MODE_CBC, IV) - data = decryptor.decrypt(source[AES.block_size:]) # decrypt + data = decryptor.decrypt(source[AES.block_size :]) # decrypt padding = data[-1] # pick the padding value from the end; Python 2.x: ord(data[-1]) - if data[-padding:] != bytes([padding]) * padding: # Python 2.x: chr(padding) * padding + if ( + data[-padding:] != bytes([padding]) * padding + ): # Python 2.x: chr(padding) * padding raise ValueError("Invalid padding...") - return data[:-padding] # remove the padding \ No newline at end of file + return data[:-padding] # remove the padding diff --git a/gtm/lib/python3.12/site-packages/gradio/events.py b/gtm/lib/python3.12/site-packages/gradio/events.py index 55a6cdf13a196f8d001fa1a813b4511762548ba2..ec36f4b410e792663f71db9b0a7755ae8bb4a36d 100644 --- a/gtm/lib/python3.12/site-packages/gradio/events.py +++ b/gtm/lib/python3.12/site-packages/gradio/events.py @@ -3,552 +3,717 @@ of the on-page-load event, which is defined in gr.Blocks().load().""" from __future__ import annotations -import dataclasses -from functools import partial, wraps -from typing import TYPE_CHECKING, Any, Callable, Literal, Sequence +import warnings +from typing import TYPE_CHECKING, Any, AnyStr, Callable, Dict, List, Optional, Set -from gradio_client.documentation import document -from jinja2 import Template - -if TYPE_CHECKING: - from gradio.blocks import Block, Component - -from gradio.context import Context +from gradio.blocks import Block from gradio.utils import get_cancel_function +if TYPE_CHECKING: # Only import for type checking (is False at runtime). + from gradio.components import Component, StatusTracker + def set_cancel_events( - triggers: Sequence[EventListenerMethod], - cancels: None | dict[str, Any] | list[dict[str, Any]], + block: Block, event_name: str, cancels: None | Dict[str, Any] | List[Dict[str, Any]] ): if cancels: if not isinstance(cancels, list): cancels = [cancels] cancel_fn, fn_indices_to_cancel = get_cancel_function(cancels) - - if Context.root_block is None: - raise AttributeError("Cannot cancel outside of a gradio.Blocks context.") - - Context.root_block.set_event_trigger( - triggers, + block.set_event_trigger( + event_name, cancel_fn, inputs=None, outputs=None, queue=False, preprocess=False, - show_api=False, cancels=fn_indices_to_cancel, ) -class Dependency(dict): - def __init__(self, trigger, key_vals, dep_index, fn): - super().__init__(key_vals) - self.fn = fn - self.then = partial( - EventListener( - "then", - trigger_after=dep_index, - trigger_only_on_success=False, - has_trigger=False, - ).listener, - trigger, - ) +class Changeable(Block): + def change( + self, + fn: Callable, + inputs: Component | List[Component] | Set[Component] | None = None, + outputs: Component | List[Component] | None = None, + api_name: AnyStr = None, + status_tracker: Optional[StatusTracker] = None, + scroll_to_output: bool = False, + show_progress: bool = True, + queue: Optional[bool] = None, + batch: bool = False, + max_batch_size: int = 4, + preprocess: bool = True, + postprocess: bool = True, + cancels: Dict[str, Any] | List[Dict[str, Any]] | None = None, + every: float | None = None, + _js: Optional[str] = None, + ): """ - Triggered after directly preceding event is completed, regardless of success or failure. + This event is triggered when the component's input value changes (e.g. when the user types in a textbox + or uploads an image). This method can be used when this component is in a Gradio Blocks. + + Parameters: + fn: the function to wrap an interface around. Often a machine learning model's prediction function. Each parameter of the function corresponds to one input component, and the function should return a single value or a tuple of values, with each element in the tuple corresponding to one output component. + inputs: List of gradio.components to use as inputs. If the function takes no inputs, this should be an empty list. + outputs: List of gradio.components to use as inputs. If the function returns no outputs, this should be an empty list. + api_name: Defining this parameter exposes the endpoint in the api docs + scroll_to_output: If True, will scroll to output component on completion + show_progress: If True, will show progress animation while pending + queue: If True, will place the request on the queue, if the queue exists + batch: If True, then the function should process a batch of inputs, meaning that it should accept a list of input values for each parameter. The lists should be of equal length (and be up to length `max_batch_size`). The function is then *required* to return a tuple of lists (even if there is only 1 output component), with each list in the tuple corresponding to one output component. + max_batch_size: Maximum number of inputs to batch together if this is called from the queue (only relevant if batch=True) + preprocess: If False, will not run preprocessing of component data before running 'fn' (e.g. leaving it as a base64 string if this method is called with the `Image` component). + postprocess: If False, will not run postprocessing of component data before returning 'fn' output to the browser. + cancels: A list of other events to cancel when this event is triggered. For example, setting cancels=[click_event] will cancel the click_event, where click_event is the return value of another components .click method. + every: Run this event 'every' number of seconds while the client connection is open. Interpreted in seconds. Queue must be enabled. """ - self.success = partial( - EventListener( - "success", - trigger_after=dep_index, - trigger_only_on_success=True, - has_trigger=False, - ).listener, - trigger, + # _js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs' and 'outputs', return should be a list of values for output components. + if status_tracker: + warnings.warn( + "The 'status_tracker' parameter has been deprecated and has no effect." + ) + dep = self.set_event_trigger( + "change", + fn, + inputs, + outputs, + preprocess=preprocess, + postprocess=postprocess, + scroll_to_output=scroll_to_output, + show_progress=show_progress, + api_name=api_name, + js=_js, + queue=queue, + batch=batch, + max_batch_size=max_batch_size, + every=every, ) + set_cancel_events(self, "change", cancels) + return dep + + +class Clickable(Block): + def click( + self, + fn: Callable, + inputs: Component | List[Component] | Set[Component] | None = None, + outputs: Component | List[Component] | None = None, + api_name: AnyStr = None, + status_tracker: Optional[StatusTracker] = None, + scroll_to_output: bool = False, + show_progress: bool = True, + queue=None, + batch: bool = False, + max_batch_size: int = 4, + preprocess: bool = True, + postprocess: bool = True, + cancels: Dict[str, Any] | List[Dict[str, Any]] | None = None, + every: float | None = None, + _js: Optional[str] = None, + ): """ - Triggered after directly preceding event is completed, if it was successful. + This event is triggered when the component (e.g. a button) is clicked. + This method can be used when this component is in a Gradio Blocks. + + Parameters: + fn: the function to wrap an interface around. Often a machine learning model's prediction function. Each parameter of the function corresponds to one input component, and the function should return a single value or a tuple of values, with each element in the tuple corresponding to one output component. + inputs: List of gradio.components to use as inputs. If the function takes no inputs, this should be an empty list. + outputs: List of gradio.components to use as inputs. If the function returns no outputs, this should be an empty list. + api_name: Defining this parameter exposes the endpoint in the api docs + scroll_to_output: If True, will scroll to output component on completion + show_progress: If True, will show progress animation while pending + queue: If True, will place the request on the queue, if the queue exists + batch: If True, then the function should process a batch of inputs, meaning that it should accept a list of input values for each parameter. The lists should be of equal length (and be up to length `max_batch_size`). The function is then *required* to return a tuple of lists (even if there is only 1 output component), with each list in the tuple corresponding to one output component. + max_batch_size: Maximum number of inputs to batch together if this is called from the queue (only relevant if batch=True) + preprocess: If False, will not run preprocessing of component data before running 'fn' (e.g. leaving it as a base64 string if this method is called with the `Image` component). + postprocess: If False, will not run postprocessing of component data before returning 'fn' output to the browser. + cancels: A list of other events to cancel when this event is triggered. For example, setting cancels=[click_event] will cancel the click_event, where click_event is the return value of another components .click method. + every: Run this event 'every' number of seconds while the client connection is open. Interpreted in seconds. Queue must be enabled. """ + # _js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs' and 'outputs', return should be a list of values for output components. + if status_tracker: + warnings.warn( + "The 'status_tracker' parameter has been deprecated and has no effect." + ) - def __call__(self, *args, **kwargs): - return self.fn(*args, **kwargs) + dep = self.set_event_trigger( + "click", + fn, + inputs, + outputs, + preprocess=preprocess, + postprocess=postprocess, + scroll_to_output=scroll_to_output, + show_progress=show_progress, + api_name=api_name, + js=_js, + queue=queue, + batch=batch, + max_batch_size=max_batch_size, + every=every, + ) + set_cancel_events(self, "click", cancels) + return dep -@document() -class EventData: - """ - When a subclass of EventData is added as a type hint to an argument of an event listener method, this object will be passed as that argument. - It contains information about the event that triggered the listener, such the target object, and other data related to the specific event that are attributes of the subclass. +class Submittable(Block): + def submit( + self, + fn: Callable, + inputs: Component | List[Component] | Set[Component] | None = None, + outputs: Component | List[Component] | None = None, + api_name: AnyStr = None, + status_tracker: Optional[StatusTracker] = None, + scroll_to_output: bool = False, + show_progress: bool = True, + queue: Optional[bool] = None, + batch: bool = False, + max_batch_size: int = 4, + preprocess: bool = True, + postprocess: bool = True, + cancels: Dict[str, Any] | List[Dict[str, Any]] | None = None, + every: float | None = None, + _js: Optional[str] = None, + ): + """ + This event is triggered when the user presses the Enter key while the component (e.g. a textbox) is focused. + This method can be used when this component is in a Gradio Blocks. - Example: - table = gr.Dataframe([[1, 2, 3], [4, 5, 6]]) - gallery = gr.Gallery([("cat.jpg", "Cat"), ("dog.jpg", "Dog")]) - textbox = gr.Textbox("Hello World!") - statement = gr.Textbox() + Parameters: + fn: the function to wrap an interface around. Often a machine learning model's prediction function. Each parameter of the function corresponds to one input component, and the function should return a single value or a tuple of values, with each element in the tuple corresponding to one output component. + inputs: List of gradio.components to use as inputs. If the function takes no inputs, this should be an empty list. + outputs: List of gradio.components to use as inputs. If the function returns no outputs, this should be an empty list. + api_name: Defining this parameter exposes the endpoint in the api docs + scroll_to_output: If True, will scroll to output component on completion + show_progress: If True, will show progress animation while pending + queue: If True, will place the request on the queue, if the queue exists + batch: If True, then the function should process a batch of inputs, meaning that it should accept a list of input values for each parameter. The lists should be of equal length (and be up to length `max_batch_size`). The function is then *required* to return a tuple of lists (even if there is only 1 output component), with each list in the tuple corresponding to one output component. + max_batch_size: Maximum number of inputs to batch together if this is called from the queue (only relevant if batch=True) + preprocess: If False, will not run preprocessing of component data before running 'fn' (e.g. leaving it as a base64 string if this method is called with the `Image` component). + postprocess: If False, will not run postprocessing of component data before returning 'fn' output to the browser. + cancels: A list of other events to cancel when this event is triggered. For example, setting cancels=[click_event] will cancel the click_event, where click_event is the return value of another components .click method. + every: Run this event 'every' number of seconds while the client connection is open. Interpreted in seconds. Queue must be enabled. + """ + # _js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs' and 'outputs', return should be a list of values for output components. + if status_tracker: + warnings.warn( + "The 'status_tracker' parameter has been deprecated and has no effect." + ) - def on_select(evt: gr.SelectData): # SelectData is a subclass of EventData - return f"You selected {evt.value} at {evt.index} from {evt.target}" + dep = self.set_event_trigger( + "submit", + fn, + inputs, + outputs, + preprocess=preprocess, + postprocess=postprocess, + scroll_to_output=scroll_to_output, + show_progress=show_progress, + api_name=api_name, + js=_js, + queue=queue, + batch=batch, + max_batch_size=max_batch_size, + every=every, + ) + set_cancel_events(self, "submit", cancels) + return dep - table.select(on_select, None, statement) - gallery.select(on_select, None, statement) - textbox.select(on_select, None, statement) - Demos: gallery_selections, tictactoe - """ - def __init__(self, target: Block | None, _data: Any): +class Editable(Block): + def edit( + self, + fn: Callable, + inputs: Component | List[Component] | Set[Component] | None = None, + outputs: Component | List[Component] | None = None, + api_name: AnyStr = None, + status_tracker: Optional[StatusTracker] = None, + scroll_to_output: bool = False, + show_progress: bool = True, + queue: Optional[bool] = None, + batch: bool = False, + max_batch_size: int = 4, + preprocess: bool = True, + postprocess: bool = True, + cancels: Dict[str, Any] | List[Dict[str, Any]] | None = None, + every: float | None = None, + _js: Optional[str] = None, + ): """ + This event is triggered when the user edits the component (e.g. image) using the + built-in editor. This method can be used when this component is in a Gradio Blocks. + Parameters: - target: The target object that triggered the event. Can be used to distinguish if multiple components are bound to the same listener. + fn: the function to wrap an interface around. Often a machine learning model's prediction function. Each parameter of the function corresponds to one input component, and the function should return a single value or a tuple of values, with each element in the tuple corresponding to one output component. + inputs: List of gradio.components to use as inputs. If the function takes no inputs, this should be an empty list. + outputs: List of gradio.components to use as inputs. If the function returns no outputs, this should be an empty list. + api_name: Defining this parameter exposes the endpoint in the api docs + scroll_to_output: If True, will scroll to output component on completion + show_progress: If True, will show progress animation while pending + queue: If True, will place the request on the queue, if the queue exists + batch: If True, then the function should process a batch of inputs, meaning that it should accept a list of input values for each parameter. The lists should be of equal length (and be up to length `max_batch_size`). The function is then *required* to return a tuple of lists (even if there is only 1 output component), with each list in the tuple corresponding to one output component. + max_batch_size: Maximum number of inputs to batch together if this is called from the queue (only relevant if batch=True) + preprocess: If False, will not run preprocessing of component data before running 'fn' (e.g. leaving it as a base64 string if this method is called with the `Image` component). + postprocess: If False, will not run postprocessing of component data before returning 'fn' output to the browser. + cancels: A list of other events to cancel when this event is triggered. For example, setting cancels=[click_event] will cancel the click_event, where click_event is the return value of another components .click method. + every: Run this event 'every' number of seconds while the client connection is open. Interpreted in seconds. Queue must be enabled. """ - self.target = target - self._data = _data + # _js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs' and 'outputs', return should be a list of values for output components. + if status_tracker: + warnings.warn( + "The 'status_tracker' parameter has been deprecated and has no effect." + ) + + dep = self.set_event_trigger( + "edit", + fn, + inputs, + outputs, + preprocess=preprocess, + postprocess=postprocess, + scroll_to_output=scroll_to_output, + show_progress=show_progress, + api_name=api_name, + js=_js, + queue=queue, + batch=batch, + max_batch_size=max_batch_size, + every=every, + ) + set_cancel_events(self, "edit", cancels) + return dep -class SelectData(EventData): - def __init__(self, target: Block | None, data: Any): - super().__init__(target, data) - self.index: int | tuple[int, int] = data["index"] +class Clearable(Block): + def clear( + self, + fn: Callable, + inputs: Component | List[Component] | Set[Component] | None = None, + outputs: Component | List[Component] | None = None, + api_name: AnyStr = None, + status_tracker: Optional[StatusTracker] = None, + scroll_to_output: bool = False, + show_progress: bool = True, + queue: Optional[bool] = None, + batch: bool = False, + max_batch_size: int = 4, + preprocess: bool = True, + postprocess: bool = True, + cancels: Dict[str, Any] | List[Dict[str, Any]] | None = None, + every: float | None = None, + _js: Optional[str] = None, + ): """ - The index of the selected item. Is a tuple if the component is two dimensional or selection is a range. + This event is triggered when the user clears the component (e.g. image or audio) + using the X button for the component. This method can be used when this component is in a Gradio Blocks. + + Parameters: + fn: the function to wrap an interface around. Often a machine learning model's prediction function. Each parameter of the function corresponds to one input component, and the function should return a single value or a tuple of values, with each element in the tuple corresponding to one output component. + inputs: List of gradio.components to use as inputs. If the function takes no inputs, this should be an empty list. + outputs: List of gradio.components to use as inputs. If the function returns no outputs, this should be an empty list. + api_name: Defining this parameter exposes the endpoint in the api docs + scroll_to_output: If True, will scroll to output component on completion + show_progress: If True, will show progress animation while pending + queue: If True, will place the request on the queue, if the queue exists + batch: If True, then the function should process a batch of inputs, meaning that it should accept a list of input values for each parameter. The lists should be of equal length (and be up to length `max_batch_size`). The function is then *required* to return a tuple of lists (even if there is only 1 output component), with each list in the tuple corresponding to one output component. + max_batch_size: Maximum number of inputs to batch together if this is called from the queue (only relevant if batch=True) + preprocess: If False, will not run preprocessing of component data before running 'fn' (e.g. leaving it as a base64 string if this method is called with the `Image` component). + postprocess: If False, will not run postprocessing of component data before returning 'fn' output to the browser. + cancels: A list of other events to cancel when this event is triggered. For example, setting cancels=[click_event] will cancel the click_event, where click_event is the return value of another components .click method. + every: Run this event 'every' number of seconds while the client connection is open. Interpreted in seconds. Queue must be enabled. """ - self.value: Any = data["value"] + # _js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs' and 'outputs', return should be a list of values for output components. + if status_tracker: + warnings.warn( + "The 'status_tracker' parameter has been deprecated and has no effect." + ) + + dep = self.set_event_trigger( + "submit", + fn, + inputs, + outputs, + preprocess=preprocess, + postprocess=postprocess, + scroll_to_output=scroll_to_output, + show_progress=show_progress, + api_name=api_name, + js=_js, + queue=queue, + batch=batch, + max_batch_size=max_batch_size, + every=every, + ) + set_cancel_events(self, "submit", cancels) + return dep + + +class Playable(Block): + def play( + self, + fn: Callable, + inputs: Component | List[Component] | Set[Component] | None = None, + outputs: Component | List[Component] | None = None, + api_name: AnyStr = None, + status_tracker: Optional[StatusTracker] = None, + scroll_to_output: bool = False, + show_progress: bool = True, + queue: Optional[bool] = None, + batch: bool = False, + max_batch_size: int = 4, + preprocess: bool = True, + postprocess: bool = True, + cancels: Dict[str, Any] | List[Dict[str, Any]] | None = None, + every: float | None = None, + _js: Optional[str] = None, + ): """ - The value of the selected item. + This event is triggered when the user plays the component (e.g. audio or video). + This method can be used when this component is in a Gradio Blocks. + + Parameters: + fn: the function to wrap an interface around. Often a machine learning model's prediction function. Each parameter of the function corresponds to one input component, and the function should return a single value or a tuple of values, with each element in the tuple corresponding to one output component. + inputs: List of gradio.components to use as inputs. If the function takes no inputs, this should be an empty list. + outputs: List of gradio.components to use as inputs. If the function returns no outputs, this should be an empty list. + api_name: Defining this parameter exposes the endpoint in the api docs + scroll_to_output: If True, will scroll to output component on completion + show_progress: If True, will show progress animation while pending + queue: If True, will place the request on the queue, if the queue exists + batch: If True, then the function should process a batch of inputs, meaning that it should accept a list of input values for each parameter. The lists should be of equal length (and be up to length `max_batch_size`). The function is then *required* to return a tuple of lists (even if there is only 1 output component), with each list in the tuple corresponding to one output component. + max_batch_size: Maximum number of inputs to batch together if this is called from the queue (only relevant if batch=True) + preprocess: If False, will not run preprocessing of component data before running 'fn' (e.g. leaving it as a base64 string if this method is called with the `Image` component). + postprocess: If False, will not run postprocessing of component data before returning 'fn' output to the browser. + cancels: A list of other events to cancel when this event is triggered. For example, setting cancels=[click_event] will cancel the click_event, where click_event is the return value of another components .click method. + every: Run this event 'every' number of seconds while the client connection is open. Interpreted in seconds. Queue must be enabled. """ - self.selected: bool = data.get("selected", True) + # _js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs' and 'outputs', return should be a list of values for output components. + if status_tracker: + warnings.warn( + "The 'status_tracker' parameter has been deprecated and has no effect." + ) + + dep = self.set_event_trigger( + "play", + fn, + inputs, + outputs, + preprocess=preprocess, + postprocess=postprocess, + scroll_to_output=scroll_to_output, + show_progress=show_progress, + api_name=api_name, + js=_js, + queue=queue, + batch=batch, + max_batch_size=max_batch_size, + every=every, + ) + set_cancel_events(self, "play", cancels) + return dep + + def pause( + self, + fn: Callable, + inputs: Component | List[Component] | Set[Component] | None = None, + outputs: Component | List[Component] | None = None, + api_name: Optional[AnyStr] = None, + status_tracker: Optional[StatusTracker] = None, + scroll_to_output: bool = False, + show_progress: bool = True, + queue: Optional[bool] = None, + batch: bool = False, + max_batch_size: int = 4, + preprocess: bool = True, + postprocess: bool = True, + cancels: Dict[str, Any] | List[Dict[str, Any]] | None = None, + every: float | None = None, + _js: Optional[str] = None, + ): """ - True if the item was selected, False if deselected. + This event is triggered when the user pauses the component (e.g. audio or video). + This method can be used when this component is in a Gradio Blocks. + + Parameters: + fn: the function to wrap an interface around. Often a machine learning model's prediction function. Each parameter of the function corresponds to one input component, and the function should return a single value or a tuple of values, with each element in the tuple corresponding to one output component. + inputs: List of gradio.components to use as inputs. If the function takes no inputs, this should be an empty list. + outputs: List of gradio.components to use as inputs. If the function returns no outputs, this should be an empty list. + api_name: Defining this parameter exposes the endpoint in the api docs + scroll_to_output: If True, will scroll to output component on completion + show_progress: If True, will show progress animation while pending + queue: If True, will place the request on the queue, if the queue exists + batch: If True, then the function should process a batch of inputs, meaning that it should accept a list of input values for each parameter. The lists should be of equal length (and be up to length `max_batch_size`). The function is then *required* to return a tuple of lists (even if there is only 1 output component), with each list in the tuple corresponding to one output component. + max_batch_size: Maximum number of inputs to batch together if this is called from the queue (only relevant if batch=True) + preprocess: If False, will not run preprocessing of component data before running 'fn' (e.g. leaving it as a base64 string if this method is called with the `Image` component). + postprocess: If False, will not run postprocessing of component data before returning 'fn' output to the browser. + cancels: A list of other events to cancel when this event is triggered. For example, setting cancels=[click_event] will cancel the click_event, where click_event is the return value of another components .click method. + every: Run this event 'every' number of seconds while the client connection is open. Interpreted in seconds. Queue must be enabled. """ + # _js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs' and 'outputs', return should be a list of values for output components. + if status_tracker: + warnings.warn( + "The 'status_tracker' parameter has been deprecated and has no effect." + ) + dep = self.set_event_trigger( + "pause", + fn, + inputs, + outputs, + preprocess=preprocess, + postprocess=postprocess, + scroll_to_output=scroll_to_output, + show_progress=show_progress, + api_name=api_name, + js=_js, + queue=queue, + batch=batch, + max_batch_size=max_batch_size, + every=every, + ) + set_cancel_events(self, "pause", cancels) + return dep -class KeyUpData(EventData): - def __init__(self, target: Block | None, data: Any): - super().__init__(target, data) - self.key: str = data["key"] - """ - The key that was pressed. + def stop( + self, + fn: Callable, + inputs: Component | List[Component] | Set[Component] | None = None, + outputs: Component | List[Component] | None = None, + api_name: AnyStr = None, + status_tracker: Optional[StatusTracker] = None, + scroll_to_output: bool = False, + show_progress: bool = True, + queue: Optional[bool] = None, + batch: bool = False, + max_batch_size: int = 4, + preprocess: bool = True, + postprocess: bool = True, + cancels: Dict[str, Any] | List[Dict[str, Any]] | None = None, + every: float | None = None, + _js: Optional[str] = None, + ): """ - self.input_value: str = data["input_value"] + This event is triggered when the user stops the component (e.g. audio or video). + This method can be used when this component is in a Gradio Blocks. + + Parameters: + fn: the function to wrap an interface around. Often a machine learning model's prediction function. Each parameter of the function corresponds to one input component, and the function should return a single value or a tuple of values, with each element in the tuple corresponding to one output component. + inputs: List of gradio.components to use as inputs. If the function takes no inputs, this should be an empty list. + outputs: List of gradio.components to use as inputs. If the function returns no outputs, this should be an empty list. + api_name: Defining this parameter exposes the endpoint in the api docs + scroll_to_output: If True, will scroll to output component on completion + show_progress: If True, will show progress animation while pending + queue: If True, will place the request on the queue, if the queue exists + batch: If True, then the function should process a batch of inputs, meaning that it should accept a list of input values for each parameter. The lists should be of equal length (and be up to length `max_batch_size`). The function is then *required* to return a tuple of lists (even if there is only 1 output component), with each list in the tuple corresponding to one output component. + max_batch_size: Maximum number of inputs to batch together if this is called from the queue (only relevant if batch=True) + preprocess: If False, will not run preprocessing of component data before running 'fn' (e.g. leaving it as a base64 string if this method is called with the `Image` component). + postprocess: If False, will not run postprocessing of component data before returning 'fn' output to the browser. + cancels: A list of other events to cancel when this event is triggered. For example, setting cancels=[click_event] will cancel the click_event, where click_event is the return value of another components .click method. + every: Run this event 'every' number of seconds while the client connection is open. Interpreted in seconds. Queue must be enabled. """ - The displayed value in the input textbox after the key was pressed. This may be different than the `value` - attribute of the component itself, as the `value` attribute of some components (e.g. Dropdown) are not updated - until the user presses Enter. + # _js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs' and 'outputs', return should be a list of values for output components. + if status_tracker: + warnings.warn( + "The 'status_tracker' parameter has been deprecated and has no effect." + ) + + dep = self.set_event_trigger( + "stop", + fn, + inputs, + outputs, + preprocess=preprocess, + postprocess=postprocess, + scroll_to_output=scroll_to_output, + show_progress=show_progress, + api_name=api_name, + js=_js, + queue=queue, + batch=batch, + max_batch_size=max_batch_size, + every=every, + ) + set_cancel_events(self, "stop", cancels) + return dep + + +class Streamable(Block): + def stream( + self, + fn: Callable, + inputs: Component | List[Component] | Set[Component] | None = None, + outputs: Component | List[Component] | None = None, + api_name: AnyStr = None, + status_tracker: Optional[StatusTracker] = None, + scroll_to_output: bool = False, + show_progress: bool = False, + queue: Optional[bool] = None, + batch: bool = False, + max_batch_size: int = 4, + preprocess: bool = True, + postprocess: bool = True, + cancels: Dict[str, Any] | List[Dict[str, Any]] | None = None, + every: float | None = None, + _js: Optional[str] = None, + ): """ + This event is triggered when the user streams the component (e.g. a live webcam + component). This method can be used when this component is in a Gradio Blocks. + Parameters: + fn: the function to wrap an interface around. Often a machine learning model's prediction function. Each parameter of the function corresponds to one input component, and the function should return a single value or a tuple of values, with each element in the tuple corresponding to one output component. + inputs: List of gradio.components to use as inputs. If the function takes no inputs, this should be an empty list. + outputs: List of gradio.components to use as inputs. If the function returns no outputs, this should be an empty list. + api_name: Defining this parameter exposes the endpoint in the api docs + scroll_to_output: If True, will scroll to output component on completion + show_progress: If True, will show progress animation while pending + queue: If True, will place the request on the queue, if the queue exists + batch: If True, then the function should process a batch of inputs, meaning that it should accept a list of input values for each parameter. The lists should be of equal length (and be up to length `max_batch_size`). The function is then *required* to return a tuple of lists (even if there is only 1 output component), with each list in the tuple corresponding to one output component. + max_batch_size: Maximum number of inputs to batch together if this is called from the queue (only relevant if batch=True) + preprocess: If False, will not run preprocessing of component data before running 'fn' (e.g. leaving it as a base64 string if this method is called with the `Image` component). + postprocess: If False, will not run postprocessing of component data before returning 'fn' output to the browser. + cancels: A list of other events to cancel when this event is triggered. For example, setting cancels=[click_event] will cancel the click_event, where click_event is the return value of another components .click method. + every: Run this event 'every' number of seconds while the client connection is open. Interpreted in seconds. Queue must be enabled. + """ + # _js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs' and 'outputs', return should be a list of values for output components. + self.streaming = True -@dataclasses.dataclass -class EventListenerMethod: - block: Block | None - event_name: str + if status_tracker: + warnings.warn( + "The 'status_tracker' parameter has been deprecated and has no effect." + ) + dep = self.set_event_trigger( + "stream", + fn, + inputs, + outputs, + preprocess=preprocess, + postprocess=postprocess, + scroll_to_output=scroll_to_output, + show_progress=show_progress, + api_name=api_name, + js=_js, + queue=queue, + batch=batch, + max_batch_size=max_batch_size, + every=every, + ) + set_cancel_events(self, "stream", cancels) + return dep -class EventListener(str): - def __new__(cls, event_name, *_args, **_kwargs): - return super().__new__(cls, event_name) - def __init__( +class Blurrable(Block): + def blur( self, - event_name: str, - has_trigger: bool = True, - config_data: Callable[..., dict[str, Any]] = lambda: {}, - show_progress: Literal["full", "minimal", "hidden"] = "full", - callback: Callable | None = None, - trigger_after: int | None = None, - trigger_only_on_success: bool = False, - doc: str = "", + fn: Callable, + inputs: Component | List[Component] | Set[Component] | None = None, + outputs: Component | List[Component] | None = None, + api_name: AnyStr = None, + scroll_to_output: bool = False, + show_progress: bool = True, + queue: Optional[bool] = None, + batch: bool = False, + max_batch_size: int = 4, + preprocess: bool = True, + postprocess: bool = True, + cancels: Dict[str, Any] | List[Dict[str, Any]] | None = None, + every: float | None = None, + _js: Optional[str] = None, ): - super().__init__() - self.has_trigger = has_trigger - self.config_data = config_data - self.event_name = event_name - self.show_progress = show_progress - self.trigger_after = trigger_after - self.trigger_only_on_success = trigger_only_on_success - self.callback = callback - self.doc = doc - self.listener = self._setup( - event_name, - has_trigger, - show_progress, - callback, - trigger_after, - trigger_only_on_success, - ) - if doc and self.listener.__doc__: - self.listener.__doc__ = doc + self.listener.__doc__ - - def set_doc(self, component: str): - if self.listener.__doc__: - doc = Template(self.listener.__doc__).render(component=component) - self.listener.__doc__ = doc - - def copy(self): - return EventListener( - self.event_name, - self.has_trigger, - self.config_data, - self.show_progress, # type: ignore - self.callback, - self.trigger_after, - self.trigger_only_on_success, - self.doc, + """ + This event is triggered when the component's is unfocused/blurred (e.g. when the user clicks outside of a textbox). This method can be used when this component is in a Gradio Blocks. + + Parameters: + fn: Callable function + inputs: List of gradio.components to use as inputs. If the function takes no inputs, this should be an empty list. + outputs: List of gradio.components to use as inputs. If the function returns no outputs, this should be an empty list. + api_name: Defining this parameter exposes the endpoint in the api docs + scroll_to_output: If True, will scroll to output component on completion + show_progress: If True, will show progress animation while pending + queue: If True, will place the request on the queue, if the queue exists + batch: If True, then the function should process a batch of inputs, meaning that it should accept a list of input values for each parameter. The lists should be of equal length (and be up to length `max_batch_size`). The function is then *required* to return a tuple of lists (even if there is only 1 output component), with each list in the tuple corresponding to one output component. + max_batch_size: Maximum number of inputs to batch together if this is called from the queue (only relevant if batch=True) + preprocess: If False, will not run preprocessing of component data before running 'fn' (e.g. leaving it as a base64 string if this method is called with the `Image` component). + postprocess: If False, will not run postprocessing of component data before returning 'fn' output to the browser. + cancels: A list of other events to cancel when this event is triggered. For example, setting cancels=[click_event] will cancel the click_event, where click_event is the return value of another components .click method. + every: Run this event 'every' number of seconds while the client connection is open. Interpreted in seconds. Queue must be enabled. + """ + # _js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs' and 'outputs', return should be a list of values for output components. + + self.set_event_trigger( + "blur", + fn, + inputs, + outputs, + preprocess=preprocess, + postprocess=postprocess, + scroll_to_output=scroll_to_output, + show_progress=show_progress, + api_name=api_name, + js=_js, + queue=queue, + batch=batch, + max_batch_size=max_batch_size, + every=every, ) + set_cancel_events(self, "blur", cancels) - @staticmethod - def _setup( - _event_name: str, - _has_trigger: bool, - _show_progress: Literal["full", "minimal", "hidden"], - _callback: Callable | None, - _trigger_after: int | None, - _trigger_only_on_success: bool, - ): - def event_trigger( - block: Block | None, - fn: Callable | None | Literal["decorator"] = "decorator", - inputs: Component | list[Component] | set[Component] | None = None, - outputs: Component | list[Component] | None = None, - api_name: str | None | Literal[False] = None, - scroll_to_output: bool = False, - show_progress: Literal["full", "minimal", "hidden"] = _show_progress, - queue: bool | None = None, - batch: bool = False, - max_batch_size: int = 4, - preprocess: bool = True, - postprocess: bool = True, - cancels: dict[str, Any] | list[dict[str, Any]] | None = None, - every: float | None = None, - trigger_mode: Literal["once", "multiple", "always_last"] | None = None, - js: str | None = None, - concurrency_limit: int | None | Literal["default"] = "default", - concurrency_id: str | None = None, - show_api: bool = True, - ) -> Dependency: - """ - Parameters: - fn: the function to call when this event is triggered. Often a machine learning model's prediction function. Each parameter of the function corresponds to one input component, and the function should return a single value or a tuple of values, with each element in the tuple corresponding to one output component. - inputs: List of gradio.components to use as inputs. If the function takes no inputs, this should be an empty list. - outputs: List of gradio.components to use as outputs. If the function returns no outputs, this should be an empty list. - api_name: defines how the endpoint appears in the API docs. Can be a string, None, or False. If set to a string, the endpoint will be exposed in the API docs with the given name. If None (default), the name of the function will be used as the API endpoint. If False, the endpoint will not be exposed in the API docs and downstream apps (including those that `gr.load` this app) will not be able to use this event. - scroll_to_output: If True, will scroll to output component on completion - show_progress: If True, will show progress animation while pending - queue: If True, will place the request on the queue, if the queue has been enabled. If False, will not put this event on the queue, even if the queue has been enabled. If None, will use the queue setting of the gradio app. - batch: If True, then the function should process a batch of inputs, meaning that it should accept a list of input values for each parameter. The lists should be of equal length (and be up to length `max_batch_size`). The function is then *required* to return a tuple of lists (even if there is only 1 output component), with each list in the tuple corresponding to one output component. - max_batch_size: Maximum number of inputs to batch together if this is called from the queue (only relevant if batch=True) - preprocess: If False, will not run preprocessing of component data before running 'fn' (e.g. leaving it as a base64 string if this method is called with the `Image` component). - postprocess: If False, will not run postprocessing of component data before returning 'fn' output to the browser. - cancels: A list of other events to cancel when this listener is triggered. For example, setting cancels=[click_event] will cancel the click_event, where click_event is the return value of another components .click method. Functions that have not yet run (or generators that are iterating) will be cancelled, but functions that are currently running will be allowed to finish. - every: Run this event 'every' number of seconds while the client connection is open. Interpreted in seconds. - trigger_mode: If "once" (default for all events except `.change()`) would not allow any submissions while an event is pending. If set to "multiple", unlimited submissions are allowed while pending, and "always_last" (default for `.change()` and `.key_up()` events) would allow a second submission after the pending event is complete. - js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs' and 'outputs', return should be a list of values for output components. - concurrency_limit: If set, this is the maximum number of this event that can be running simultaneously. Can be set to None to mean no concurrency_limit (any number of this event can be running simultaneously). Set to "default" to use the default concurrency limit (defined by the `default_concurrency_limit` parameter in `Blocks.queue()`, which itself is 1 by default). - concurrency_id: If set, this is the id of the concurrency group. Events with the same concurrency_id will be limited by the lowest set concurrency_limit. - show_api: whether to show this event in the "view API" page of the Gradio app, or in the ".view_api()" method of the Gradio clients. Unlike setting api_name to False, setting show_api to False will still allow downstream apps to use this event. If fn is None, show_api will automatically be set to False. - """ - - if fn == "decorator": - - def wrapper(func): - event_trigger( - block=block, - fn=func, - inputs=inputs, - outputs=outputs, - api_name=api_name, - scroll_to_output=scroll_to_output, - show_progress=show_progress, - queue=queue, - batch=batch, - max_batch_size=max_batch_size, - preprocess=preprocess, - postprocess=postprocess, - cancels=cancels, - every=every, - trigger_mode=trigger_mode, - js=js, - concurrency_limit=concurrency_limit, - concurrency_id=concurrency_id, - show_api=show_api, - ) - - @wraps(func) - def inner(*args, **kwargs): - return func(*args, **kwargs) - - return inner - - return Dependency(None, {}, None, wrapper) - - from gradio.components.base import StreamingInput - - if isinstance(block, StreamingInput) and "stream" in block.events: - block.check_streamable() # type: ignore - if isinstance(show_progress, bool): - show_progress = "full" if show_progress else "hidden" - - if Context.root_block is None: - raise AttributeError( - f"Cannot call {_event_name} outside of a gradio.Blocks context." - ) - - dep, dep_index = Context.root_block.set_event_trigger( - [EventListenerMethod(block if _has_trigger else None, _event_name)], - fn, - inputs, - outputs, - preprocess=preprocess, - postprocess=postprocess, - scroll_to_output=scroll_to_output, - show_progress=show_progress, - api_name=api_name, - js=js, - concurrency_limit=concurrency_limit, - concurrency_id=concurrency_id, - queue=queue, - batch=batch, - max_batch_size=max_batch_size, - every=every, - trigger_after=_trigger_after, - trigger_only_on_success=_trigger_only_on_success, - trigger_mode=trigger_mode, - show_api=show_api, - ) - set_cancel_events( - [EventListenerMethod(block if _has_trigger else None, _event_name)], - cancels, - ) - if _callback: - _callback(block) - return Dependency(block, dep, dep_index, fn) - - event_trigger.event_name = _event_name - event_trigger.has_trigger = _has_trigger - return event_trigger - - -def on( - triggers: Sequence[Any] | Any | None = None, - fn: Callable | None | Literal["decorator"] = "decorator", - inputs: Component | list[Component] | set[Component] | None = None, - outputs: Component | list[Component] | None = None, - *, - api_name: str | None | Literal[False] = None, - scroll_to_output: bool = False, - show_progress: Literal["full", "minimal", "hidden"] = "full", - queue: bool | None = None, - batch: bool = False, - max_batch_size: int = 4, - preprocess: bool = True, - postprocess: bool = True, - cancels: dict[str, Any] | list[dict[str, Any]] | None = None, - every: float | None = None, - js: str | None = None, - concurrency_limit: int | None | Literal["default"] = "default", - concurrency_id: str | None = None, - show_api: bool = True, -) -> Dependency: - """ - Parameters: - triggers: List of triggers to listen to, e.g. [btn.click, number.change]. If None, will listen to changes to any inputs. - fn: the function to call when this event is triggered. Often a machine learning model's prediction function. Each parameter of the function corresponds to one input component, and the function should return a single value or a tuple of values, with each element in the tuple corresponding to one output component. - inputs: List of gradio.components to use as inputs. If the function takes no inputs, this should be an empty list. - outputs: List of gradio.components to use as outputs. If the function returns no outputs, this should be an empty list. - api_name: Defines how the endpoint appears in the API docs. Can be a string, None, or False. If False, the endpoint will not be exposed in the api docs. If set to None, the endpoint will be exposed in the api docs as an unnamed endpoint, although this behavior will be changed in Gradio 4.0. If set to a string, the endpoint will be exposed in the api docs with the given name. - scroll_to_output: If True, will scroll to output component on completion - show_progress: If True, will show progress animation while pending - queue: If True, will place the request on the queue, if the queue has been enabled. If False, will not put this event on the queue, even if the queue has been enabled. If None, will use the queue setting of the gradio app. - batch: If True, then the function should process a batch of inputs, meaning that it should accept a list of input values for each parameter. The lists should be of equal length (and be up to length `max_batch_size`). The function is then *required* to return a tuple of lists (even if there is only 1 output component), with each list in the tuple corresponding to one output component. - max_batch_size: Maximum number of inputs to batch together if this is called from the queue (only relevant if batch=True) - preprocess: If False, will not run preprocessing of component data before running 'fn' (e.g. leaving it as a base64 string if this method is called with the `Image` component). - postprocess: If False, will not run postprocessing of component data before returning 'fn' output to the browser. - cancels: A list of other events to cancel when this listener is triggered. For example, setting cancels=[click_event] will cancel the click_event, where click_event is the return value of another components .click method. Functions that have not yet run (or generators that are iterating) will be cancelled, but functions that are currently running will be allowed to finish. - every: Run this event 'every' number of seconds while the client connection is open. Interpreted in seconds. - js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs', return should be a list of values for output components. - concurrency_limit: If set, this is the maximum number of this event that can be running simultaneously. Can be set to None to mean no concurrency_limit (any number of this event can be running simultaneously). Set to "default" to use the default concurrency limit (defined by the `default_concurrency_limit` parameter in `Blocks.queue()`, which itself is 1 by default). - concurrency_id: If set, this is the id of the concurrency group. Events with the same concurrency_id will be limited by the lowest set concurrency_limit. - show_api: whether to show this event in the "view API" page of the Gradio app, or in the ".view_api()" method of the Gradio clients. Unlike setting api_name to False, setting show_api to False will still allow downstream apps to use this event. If fn is None, show_api will automatically be set to False. - """ - from gradio.components.base import Component - - if isinstance(triggers, EventListener): - triggers = [triggers] - if isinstance(inputs, Component): - inputs = [inputs] - - if fn == "decorator": - - def wrapper(func): - on( - triggers, - fn=func, - inputs=inputs, - outputs=outputs, - api_name=api_name, - scroll_to_output=scroll_to_output, - show_progress=show_progress, - queue=queue, - batch=batch, - max_batch_size=max_batch_size, - preprocess=preprocess, - postprocess=postprocess, - cancels=cancels, - every=every, - js=js, - concurrency_limit=concurrency_limit, - concurrency_id=concurrency_id, - show_api=show_api, - ) - @wraps(func) - def inner(*args, **kwargs): - return func(*args, **kwargs) - - return inner - - return Dependency(None, {}, None, wrapper) - - if Context.root_block is None: - raise Exception("Cannot call on() outside of a gradio.Blocks context.") - if triggers is None: - triggers = ( - [EventListenerMethod(input, "change") for input in inputs] - if inputs is not None - else [] - ) # type: ignore - else: - triggers = [ - EventListenerMethod(t.__self__ if t.has_trigger else None, t.event_name) - for t in triggers - ] # type: ignore - dep, dep_index = Context.root_block.set_event_trigger( - triggers, - fn, - inputs, - outputs, - preprocess=preprocess, - postprocess=postprocess, - scroll_to_output=scroll_to_output, - show_progress=show_progress, - api_name=api_name, - js=js, - concurrency_limit=concurrency_limit, - concurrency_id=concurrency_id, - queue=queue, - batch=batch, - max_batch_size=max_batch_size, - every=every, - show_api=show_api, - ) - set_cancel_events(triggers, cancels) - return Dependency(None, dep, dep_index, fn) - - -class Events: - change = EventListener( - "change", - doc="Triggered when the value of the {{ component }} changes either because of user input (e.g. a user types in a textbox) OR because of a function update (e.g. an image receives a value from the output of an event trigger). See `.input()` for a listener that is only triggered by user input.", - ) - input = EventListener( - "input", - doc="This listener is triggered when the user changes the value of the {{ component }}.", - ) - click = EventListener("click", doc="Triggered when the {{ component }} is clicked.") - submit = EventListener( - "submit", - doc="This listener is triggered when the user presses the Enter key while the {{ component }} is focused.", - ) - edit = EventListener( - "edit", - doc="This listener is triggered when the user edits the {{ component }} (e.g. image) using the built-in editor.", - ) - clear = EventListener( - "clear", - doc="This listener is triggered when the user clears the {{ component }} using the X button for the component.", - ) - play = EventListener( - "play", - doc="This listener is triggered when the user plays the media in the {{ component }}.", - ) - pause = EventListener( - "pause", - doc="This listener is triggered when the media in the {{ component }} stops for any reason.", - ) - stop = EventListener( - "stop", - doc="This listener is triggered when the user reaches the end of the media playing in the {{ component }}.", - ) - end = EventListener( - "end", - doc="This listener is triggered when the user reaches the end of the media playing in the {{ component }}.", - ) - start_recording = EventListener( - "start_recording", - doc="This listener is triggered when the user starts recording with the {{ component }}.", - ) - pause_recording = EventListener( - "pause_recording", - doc="This listener is triggered when the user pauses recording with the {{ component }}.", - ) - stop_recording = EventListener( - "stop_recording", - doc="This listener is triggered when the user stops recording with the {{ component }}.", - ) - focus = EventListener( - "focus", doc="This listener is triggered when the {{ component }} is focused." - ) - blur = EventListener( - "blur", - doc="This listener is triggered when the {{ component }} is unfocused/blurred.", - ) - upload = EventListener( - "upload", - doc="This listener is triggered when the user uploads a file into the {{ component }}.", - ) - release = EventListener( - "release", - doc="This listener is triggered when the user releases the mouse on this {{ component }}.", - ) - select = EventListener( - "select", - callback=lambda block: setattr(block, "_selectable", True), - doc="Event listener for when the user selects or deselects the {{ component }}. Uses event data gradio.SelectData to carry `value` referring to the label of the {{ component }}, and `selected` to refer to state of the {{ component }}. See EventData documentation on how to use this event data", - ) - stream = EventListener( - "stream", - show_progress="hidden", - config_data=lambda: {"streamable": False}, - callback=lambda block: setattr(block, "streaming", True), - doc="This listener is triggered when the user streams the {{ component }}.", - ) - like = EventListener( - "like", - config_data=lambda: {"likeable": False}, - callback=lambda block: setattr(block, "likeable", True), - doc="This listener is triggered when the user likes/dislikes from within the {{ component }}. This event has EventData of type gradio.LikeData that carries information, accessible through LikeData.index and LikeData.value. See EventData documentation on how to use this event data.", - ) - load = EventListener( - "load", - doc="This listener is triggered when the {{ component }} initially loads in the browser.", - ) - key_up = EventListener( - "key_up", - doc="This listener is triggered when the user presses a key while the {{ component }} is focused.", - ) - - -class LikeData(EventData): - def __init__(self, target: Block | None, data: Any): - super().__init__(target, data) - self.index: int | tuple[int, int] = data["index"] - """ - The index of the liked/disliked item. Is a tuple if the component is two dimensional. - """ - self.value: Any = data["value"] - """ - The value of the liked/disliked item. - """ - self.liked: bool = data.get("liked", True) +class Uploadable(Block): + def upload( + self, + fn: Callable, + inputs: List[Component], + outputs: Component | List[Component] | None = None, + api_name: AnyStr = None, + scroll_to_output: bool = False, + show_progress: bool = True, + queue: Optional[bool] = None, + batch: bool = False, + max_batch_size: int = 4, + preprocess: bool = True, + postprocess: bool = True, + cancels: List[Dict[str, Any]] | None = None, + every: float | None = None, + _js: Optional[str] = None, + ): """ - True if the item was liked, False if disliked. + This event is triggered when the user uploads a file into the component (e.g. when the user uploads a video into a video component). This method can be used when this component is in a Gradio Blocks. + + Parameters: + fn: Callable function + inputs: List of inputs + outputs: List of outputs + api_name: Defining this parameter exposes the endpoint in the api docs + scroll_to_output: If True, will scroll to output component on completion + show_progress: If True, will show progress animation while pending + queue: If True, will place the request on the queue, if the queue exists + batch: If True, then the function should process a batch of inputs, meaning that it should accept a list of input values for each parameter. The lists should be of equal length (and be up to length `max_batch_size`). The function is then *required* to return a tuple of lists (even if there is only 1 output component), with each list in the tuple corresponding to one output component. + max_batch_size: Maximum number of inputs to batch together if this is called from the queue (only relevant if batch=True) + preprocess: If False, will not run preprocessing of component data before running 'fn' (e.g. leaving it as a base64 string if this method is called with the `Image` component). + postprocess: If False, will not run postprocessing of component data before returning 'fn' output to the browser. + cancels: A list of other events to cancel when this event is triggered. For example, setting cancels=[click_event] will cancel the click_event, where click_event is the return value of another components .click method. + every: Run this event 'every' number of seconds while the client connection is open. Interpreted in seconds. Queue must be enabled. """ + # _js: Optional frontend js method to run before running 'fn'. Input arguments for js method are values of 'inputs' and 'outputs', return should be a list of values for output components. + + self.set_event_trigger( + "upload", + fn, + inputs, + outputs, + preprocess=preprocess, + postprocess=postprocess, + scroll_to_output=scroll_to_output, + show_progress=show_progress, + api_name=api_name, + js=_js, + queue=queue, + batch=batch, + max_batch_size=max_batch_size, + every=every, + ) + set_cancel_events(self, "upload", cancels) diff --git a/gtm/lib/python3.12/site-packages/gradio/examples.py b/gtm/lib/python3.12/site-packages/gradio/examples.py new file mode 100644 index 0000000000000000000000000000000000000000..d826b3def706e1c11bebf6ce41c87c84561dcfeb --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/examples.py @@ -0,0 +1,320 @@ +""" +Defines helper methods useful for loading and caching Interface examples. +""" +from __future__ import annotations + +import ast +import csv +import os +import warnings +from pathlib import Path +from typing import TYPE_CHECKING, Any, Callable, List, Optional + +from gradio import utils +from gradio.components import Dataset +from gradio.context import Context +from gradio.documentation import document, set_documentation_group +from gradio.flagging import CSVLogger + +if TYPE_CHECKING: # Only import for type checking (to avoid circular imports). + from gradio.components import IOComponent + +CACHED_FOLDER = "gradio_cached_examples" +LOG_FILE = "log.csv" + +set_documentation_group("component-helpers") + + +def create_examples( + examples: List[Any] | List[List[Any]] | str, + inputs: IOComponent | List[IOComponent], + outputs: IOComponent | List[IOComponent] | None = None, + fn: Callable | None = None, + cache_examples: bool = False, + examples_per_page: int = 10, + _api_mode: bool = False, + label: str | None = None, + elem_id: str | None = None, + run_on_click: bool = False, + preprocess: bool = True, + postprocess: bool = True, + batch: bool = False, +): + """Top-level synchronous function that creates Examples. Provided for backwards compatibility, i.e. so that gr.Examples(...) can be used to create the Examples component.""" + examples_obj = Examples( + examples=examples, + inputs=inputs, + outputs=outputs, + fn=fn, + cache_examples=cache_examples, + examples_per_page=examples_per_page, + _api_mode=_api_mode, + label=label, + elem_id=elem_id, + run_on_click=run_on_click, + preprocess=preprocess, + postprocess=postprocess, + batch=batch, + _initiated_directly=False, + ) + utils.synchronize_async(examples_obj.create) + return examples_obj + + +@document() +class Examples: + """ + This class is a wrapper over the Dataset component and can be used to create Examples + for Blocks / Interfaces. Populates the Dataset component with examples and + assigns event listener so that clicking on an example populates the input/output + components. Optionally handles example caching for fast inference. + + Demos: blocks_inputs, fake_gan + Guides: more_on_examples_and_flagging, using_hugging_face_integrations, image_classification_in_pytorch, image_classification_in_tensorflow, image_classification_with_vision_transformers, create_your_own_friends_with_a_gan + """ + + def __init__( + self, + examples: List[Any] | List[List[Any]] | str, + inputs: IOComponent | List[IOComponent], + outputs: Optional[IOComponent | List[IOComponent]] = None, + fn: Optional[Callable] = None, + cache_examples: bool = False, + examples_per_page: int = 10, + _api_mode: bool = False, + label: str = "Examples", + elem_id: Optional[str] = None, + run_on_click: bool = False, + preprocess: bool = True, + postprocess: bool = True, + batch: bool = False, + _initiated_directly: bool = True, + ): + """ + Parameters: + examples: example inputs that can be clicked to populate specific components. Should be nested list, in which the outer list consists of samples and each inner list consists of an input corresponding to each input component. A string path to a directory of examples can also be provided but it should be within the directory with the python file running the gradio app. If there are multiple input components and a directory is provided, a log.csv file must be present in the directory to link corresponding inputs. + inputs: the component or list of components corresponding to the examples + outputs: optionally, provide the component or list of components corresponding to the output of the examples. Required if `cache` is True. + fn: optionally, provide the function to run to generate the outputs corresponding to the examples. Required if `cache` is True. + cache_examples: if True, caches examples for fast runtime. If True, then `fn` and `outputs` need to be provided + examples_per_page: how many examples to show per page (this parameter currently has no effect) + label: the label to use for the examples component (by default, "Examples") + elem_id: an optional string that is assigned as the id of this component in the HTML DOM. + run_on_click: if cache_examples is False, clicking on an example does not run the function when an example is clicked. Set this to True to run the function when an example is clicked. Has no effect if cache_examples is True. + preprocess: if True, preprocesses the example input before running the prediction function and caching the output. Only applies if cache_examples is True. + postprocess: if True, postprocesses the example output after running the prediction function and before caching. Only applies if cache_examples is True. + batch: If True, then the function should process a batch of inputs, meaning that it should accept a list of input values for each parameter. Used only if cache_examples is True. + """ + if _initiated_directly: + warnings.warn( + "Please use gr.Examples(...) instead of gr.examples.Examples(...) to create the Examples.", + ) + + if cache_examples and (fn is None or outputs is None): + raise ValueError("If caching examples, `fn` and `outputs` must be provided") + + if not isinstance(inputs, list): + inputs = [inputs] + if not isinstance(outputs, list): + outputs = [outputs] + + working_directory = Path().absolute() + + if examples is None: + raise ValueError("The parameter `examples` cannot be None") + elif isinstance(examples, list) and ( + len(examples) == 0 or isinstance(examples[0], list) + ): + pass + elif ( + isinstance(examples, list) and len(inputs) == 1 + ): # If there is only one input component, examples can be provided as a regular list instead of a list of lists + examples = [[e] for e in examples] + elif isinstance(examples, str): + if not os.path.exists(examples): + raise FileNotFoundError( + "Could not find examples directory: " + examples + ) + working_directory = examples + if not os.path.exists(os.path.join(examples, LOG_FILE)): + if len(inputs) == 1: + examples = [[e] for e in os.listdir(examples)] + else: + raise FileNotFoundError( + "Could not find log file (required for multiple inputs): " + + LOG_FILE + ) + else: + with open(os.path.join(examples, LOG_FILE)) as logs: + examples = list(csv.reader(logs)) + examples = [ + examples[i][: len(inputs)] for i in range(1, len(examples)) + ] # remove header and unnecessary columns + + else: + raise ValueError( + "The parameter `examples` must either be a string directory or a list" + "(if there is only 1 input component) or (more generally), a nested " + "list, where each sublist represents a set of inputs." + ) + + input_has_examples = [False] * len(inputs) + for example in examples: + for idx, example_for_input in enumerate(example): + if not (example_for_input is None): + try: + input_has_examples[idx] = True + except IndexError: + pass # If there are more example components than inputs, ignore. This can sometimes be intentional (e.g. loading from a log file where outputs and timestamps are also logged) + + inputs_with_examples = [ + inp for (inp, keep) in zip(inputs, input_has_examples) if keep + ] + non_none_examples = [ + [ex for (ex, keep) in zip(example, input_has_examples) if keep] + for example in examples + ] + + self.examples = examples + self.non_none_examples = non_none_examples + self.inputs = inputs + self.inputs_with_examples = inputs_with_examples + self.outputs = outputs + self.fn = fn + self.cache_examples = cache_examples + self.examples_per_page = examples_per_page + self._api_mode = _api_mode + self.preprocess = preprocess + self.postprocess = postprocess + self.batch = batch + + with utils.set_directory(working_directory): + self.processed_examples = [ + [ + component.postprocess(sample) + for component, sample in zip(inputs, example) + ] + for example in examples + ] + self.non_none_processed_examples = [ + [ex for (ex, keep) in zip(example, input_has_examples) if keep] + for example in self.processed_examples + ] + if cache_examples: + for example in self.examples: + if len([ex for ex in example if ex is not None]) != len(self.inputs): + warnings.warn( + "Examples are being cached but not all input components have " + "example values. This may result in an exception being thrown by " + "your function. If you do get an error while caching examples, make " + "sure all of your inputs have example values for all of your examples " + "or you provide default values for those particular parameters in your function." + ) + break + + with utils.set_directory(working_directory): + self.dataset = Dataset( + components=inputs_with_examples, + samples=non_none_examples, + type="index", + label=label, + elem_id=elem_id, + ) + + self.cached_folder = os.path.join(CACHED_FOLDER, str(self.dataset._id)) + self.cached_file = os.path.join(self.cached_folder, "log.csv") + self.cache_examples = cache_examples + self.run_on_click = run_on_click + + async def create(self) -> None: + """Caches the examples if self.cache_examples is True and creates the Dataset + component to hold the examples""" + + async def load_example(example_id): + if self.cache_examples: + processed_example = self.non_none_processed_examples[ + example_id + ] + await self.load_from_cache(example_id) + else: + processed_example = self.non_none_processed_examples[example_id] + return utils.resolve_singleton(processed_example) + + if Context.root_block: + self.dataset.click( + load_example, + inputs=[self.dataset], + outputs=self.inputs_with_examples + + (self.outputs if self.cache_examples else []), + postprocess=False, + queue=False, + ) + if self.run_on_click and not self.cache_examples: + self.dataset.click( + self.fn, + inputs=self.inputs, + outputs=self.outputs, + ) + + if self.cache_examples: + await self.cache() + + async def cache(self) -> None: + """ + Caches all of the examples so that their predictions can be shown immediately. + """ + if os.path.exists(self.cached_file): + print( + f"Using cache from '{os.path.abspath(self.cached_folder)}' directory. If method or examples have changed since last caching, delete this folder to clear cache." + ) + else: + if Context.root_block is None: + raise ValueError("Cannot cache examples if not in a Blocks context") + + print(f"Caching examples at: '{os.path.abspath(self.cached_file)}'") + cache_logger = CSVLogger() + + # create a fake dependency to process the examples and get the predictions + dependency = Context.root_block.set_event_trigger( + event_name="fake_event", + fn=self.fn, + inputs=self.inputs_with_examples, + outputs=self.outputs, + preprocess=self.preprocess and not self._api_mode, + postprocess=self.postprocess and not self._api_mode, + batch=self.batch, + ) + + fn_index = Context.root_block.dependencies.index(dependency) + cache_logger.setup(self.outputs, self.cached_folder) + for example_id, _ in enumerate(self.examples): + processed_input = self.processed_examples[example_id] + if self.batch: + processed_input = [[value] for value in processed_input] + prediction = await Context.root_block.process_api( + fn_index=fn_index, inputs=processed_input, request=None + ) + output = prediction["data"] + if self.batch: + output = [value[0] for value in output] + cache_logger.flag(output) + # Remove the "fake_event" to prevent bugs in loading interfaces from spaces + Context.root_block.dependencies.remove(dependency) + Context.root_block.fns.pop(fn_index) + + async def load_from_cache(self, example_id: int) -> List[Any]: + """Loads a particular cached example for the interface. + Parameters: + example_id: The id of the example to process (zero-indexed). + """ + with open(self.cached_file) as cache: + examples = list(csv.reader(cache)) + example = examples[example_id + 1] # +1 to adjust for header + output = [] + for component, value in zip(self.outputs, example): + try: + value_as_dict = ast.literal_eval(value) + assert utils.is_update(value_as_dict) + output.append(value_as_dict) + except (ValueError, TypeError, SyntaxError, AssertionError): + output.append(component.serialize(value, self.cached_folder)) + return output diff --git a/gtm/lib/python3.12/site-packages/gradio/exceptions.py b/gtm/lib/python3.12/site-packages/gradio/exceptions.py index 93fef3306198c2aa738aefb2c4122f898778169e..d6cf6a8f2fed4941c5c4a17902292062a929886e 100644 --- a/gtm/lib/python3.12/site-packages/gradio/exceptions.py +++ b/gtm/lib/python3.12/site-packages/gradio/exceptions.py @@ -1,89 +1,23 @@ -from gradio_client.documentation import document - - class DuplicateBlockError(ValueError): """Raised when a Blocks contains more than one Block with the same id""" pass -class InvalidComponentError(ValueError): - """Raised when invalid components are used.""" - - pass - - class TooManyRequestsError(Exception): """Raised when the Hugging Face API returns a 429 status code.""" pass -class ModelNotFoundError(Exception): - """Raised when the provided model doesn't exists or is not found by the provided api url.""" - - pass - - -class RenderError(Exception): - """Raised when a component has not been rendered in the current Blocks but is expected to have been rendered.""" - - pass - - -class InvalidApiNameError(ValueError): +class InvalidApiName(ValueError): pass -class ServerFailedToStartError(Exception): - pass - - -class InvalidBlockError(ValueError): - """Raised when an event in a Blocks contains a reference to a Block that is not in the original Blocks""" - - pass - - -class ReloadError(ValueError): - """Raised when something goes wrong when reloading the gradio app.""" - - pass - - -class GradioVersionIncompatibleError(Exception): - """Raised when loading a 3.x space with 4.0""" - - pass - - -InvalidApiName = InvalidApiNameError # backwards compatibility - - -@document(documentation_group="modals") class Error(Exception): - """ - This class allows you to pass custom error messages to the user. You can do so by raising a gr.Error("custom message") anywhere in the code, and when that line is executed the custom message will appear in a modal on the demo. - Example: - import gradio as gr - def divide(numerator, denominator): - if denominator == 0: - raise gr.Error("Cannot divide by zero!") - gr.Interface(divide, ["number", "number"], "number").launch() - Demos: calculator, blocks_chained_events - """ - - def __init__(self, message: str = "Error raised."): - """ - Parameters: - message: The error message to be displayed to the user. - """ + def __init__(self, message: str): self.message = message super().__init__(self.message) def __str__(self): return repr(self.message) - - -class ComponentDefinitionError(NotImplementedError): - pass diff --git a/gtm/lib/python3.12/site-packages/gradio/external.py b/gtm/lib/python3.12/site-packages/gradio/external.py index 9a325dc93009181b32e58911a884222d33a423c1..2f135322e63e310da7afb6e5aa9359901cd2270d 100644 --- a/gtm/lib/python3.12/site-packages/gradio/external.py +++ b/gtm/lib/python3.12/site-packages/gradio/external.py @@ -1,234 +1,456 @@ +"""This module should not be used directly as its API is subject to change. Instead, +use the `gr.Blocks.load()` or `gr.Interface.load()` functions.""" + +from __future__ import annotations + import json -import tempfile +import re +import uuid +import warnings +from copy import deepcopy +from typing import TYPE_CHECKING, Callable, Dict + import requests -from gradio import inputs, outputs +import gradio +from gradio import components, utils +from gradio.exceptions import TooManyRequestsError +from gradio.external_utils import ( + cols_to_rows, + encode_to_base64, + get_tabular_examples, + get_ws_fn, + postprocess_label, + rows_to_cols, + streamline_spaces_interface, + use_websocket, +) +from gradio.processing_utils import to_binary + +if TYPE_CHECKING: + from gradio.blocks import Blocks + from gradio.interface import Interface + + +def load_blocks_from_repo( + name: str, src: str = None, api_key: str = None, alias: str = None, **kwargs +) -> Blocks: + """Creates and returns a Blocks instance from a Hugging Face model or Space repo.""" + if src is None: + # Separate the repo type (e.g. "model") from repo name (e.g. "google/vit-base-patch16-224") + tokens = name.split("/") + assert ( + len(tokens) > 1 + ), "Either `src` parameter must be provided, or `name` must be formatted as {src}/{repo name}" + src = tokens[0] + name = "/".join(tokens[1:]) + + factory_methods: Dict[str, Callable] = { + # for each repo type, we have a method that returns the Interface given the model name & optionally an api_key + "huggingface": from_model, + "models": from_model, + "spaces": from_spaces, + } + assert src.lower() in factory_methods, "parameter: src must be one of {}".format( + factory_methods.keys() + ) + + blocks: gradio.Blocks = factory_methods[src](name, api_key, alias, **kwargs) + return blocks -def get_huggingface_interface(model_name, api_key, alias): + +def from_model(model_name: str, api_key: str | None, alias: str, **kwargs): + model_url = "https://huggingface.co/{}".format(model_name) api_url = "https://api-inference.huggingface.co/models/{}".format(model_name) - if api_key is not None: - headers = {"Authorization": f"Bearer {api_key}"} - else: - headers = {} + print("Fetching model from: {}".format(model_url)) - # Checking if model exists, and if so, it gets the pipeline - response = requests.request("GET", api_url, headers=headers) - assert response.status_code == 200, "Invalid model name or src" - p = response.json().get('pipeline_tag') + headers = {"Authorization": f"Bearer {api_key}"} if api_key is not None else {} - def post_process_binary_body(r: requests.Response): - with tempfile.NamedTemporaryFile(delete=False) as fp: - fp.write(r.content) - return fp.name + # Checking if model exists, and if so, it gets the pipeline + response = requests.request("GET", api_url, headers=headers) + assert ( + response.status_code == 200 + ), f"Could not find model: {model_name}. If it is a private or gated model, please provide your Hugging Face access token (https://huggingface.co/settings/tokens) as the argument for the `api_key` parameter." + p = response.json().get("pipeline_tag") pipelines = { - 'question-answering': { - 'inputs': [inputs.Textbox(label="Context", lines=7), inputs.Textbox(label="Question")], - 'outputs': [outputs.Textbox(label="Answer"), outputs.Label(label="Score")], - 'preprocess': lambda c, q: {"inputs": {"context": c, "question": q}}, - 'postprocess': lambda r: (r["answer"], r["score"]), - # 'examples': [['My name is Sarah and I live in London', 'Where do I live?']] - }, - 'text-generation': { - 'inputs': inputs.Textbox(label="Input"), - 'outputs': outputs.Textbox(label="Output"), - 'preprocess': lambda x: {"inputs": x}, - 'postprocess': lambda r: r[0]["generated_text"], - # 'examples': [['My name is Clara and I am']] - }, - 'summarization': { - 'inputs': inputs.Textbox(label="Input"), - 'outputs': outputs.Textbox(label="Summary"), - 'preprocess': lambda x: {"inputs": x}, - 'postprocess': lambda r: r[0]["summary_text"] - }, - 'translation': { - 'inputs': inputs.Textbox(label="Input"), - 'outputs': outputs.Textbox(label="Translation"), - 'preprocess': lambda x: {"inputs": x}, - 'postprocess': lambda r: r[0]["translation_text"] - }, - 'text2text-generation': { - 'inputs': inputs.Textbox(label="Input"), - 'outputs': outputs.Textbox(label="Generated Text"), - 'preprocess': lambda x: {"inputs": x}, - 'postprocess': lambda r: r[0]["generated_text"] - }, - 'text-classification': { - 'inputs': inputs.Textbox(label="Input"), - 'outputs': outputs.Label(label="Classification"), - 'preprocess': lambda x: {"inputs": x}, - 'postprocess': lambda r: {'Negative': r[0][0]["score"], - 'Positive': r[0][1]["score"]} - }, - 'fill-mask': { - 'inputs': inputs.Textbox(label="Input"), - 'outputs': "label", - 'preprocess': lambda x: {"inputs": x}, - 'postprocess': lambda r: {i["token_str"]: i["score"] for i in r} - }, - 'zero-shot-classification': { - 'inputs': [inputs.Textbox(label="Input"), - inputs.Textbox(label="Possible class names (" - "comma-separated)"), - inputs.Checkbox(label="Allow multiple true classes")], - 'outputs': "label", - 'preprocess': lambda i, c, m: {"inputs": i, "parameters": - {"candidate_labels": c, "multi_class": m}}, - 'postprocess': lambda r: {r["labels"][i]: r["scores"][i] for i in - range(len(r["labels"]))} - }, - 'automatic-speech-recognition': { - 'inputs': inputs.Audio(label="Input", source="upload", - type="file"), - 'outputs': outputs.Textbox(label="Output"), - 'preprocess': lambda i: {"inputs": i}, - 'postprocess': lambda r: r["text"] - }, - 'image-classification': { - 'inputs': inputs.Image(label="Input Image", type="file"), - 'outputs': outputs.Label(label="Classification"), - 'preprocess': lambda i: i, - 'postprocess': lambda r: {i["label"].split(", ")[0]: i["score"] for - i in r} - }, - 'feature-extraction': { - # example model: hf.co/julien-c/distilbert-feature-extraction - 'inputs': inputs.Textbox(label="Input"), - 'outputs': outputs.Dataframe(label="Output"), - 'preprocess': lambda x: {"inputs": x}, - 'postprocess': lambda r: r[0], - }, - 'sentence-similarity': { - # example model: hf.co/sentence-transformers/distilbert-base-nli-stsb-mean-tokens - 'inputs': [ - inputs.Textbox(label="Source Sentence", default="That is a happy person"), - inputs.Textbox(lines=7, label="Sentences to compare to", placeholder="Separate each sentence by a newline"), + "audio-classification": { + # example model: ehcalabres/wav2vec2-lg-xlsr-en-speech-emotion-recognition + "inputs": components.Audio(source="upload", type="filepath", label="Input"), + "outputs": components.Label(label="Class"), + "preprocess": lambda i: to_binary, + "postprocess": lambda r: postprocess_label( + {i["label"].split(", ")[0]: i["score"] for i in r.json()} + ), + }, + "audio-to-audio": { + # example model: facebook/xm_transformer_sm_all-en + "inputs": components.Audio(source="upload", type="filepath", label="Input"), + "outputs": components.Audio(label="Output"), + "preprocess": to_binary, + "postprocess": encode_to_base64, + }, + "automatic-speech-recognition": { + # example model: facebook/wav2vec2-base-960h + "inputs": components.Audio(source="upload", type="filepath", label="Input"), + "outputs": components.Textbox(label="Output"), + "preprocess": to_binary, + "postprocess": lambda r: r.json()["text"], + }, + "feature-extraction": { + # example model: julien-c/distilbert-feature-extraction + "inputs": components.Textbox(label="Input"), + "outputs": components.Dataframe(label="Output"), + "preprocess": lambda x: {"inputs": x}, + "postprocess": lambda r: r.json()[0], + }, + "fill-mask": { + "inputs": components.Textbox(label="Input"), + "outputs": components.Label(label="Classification"), + "preprocess": lambda x: {"inputs": x}, + "postprocess": lambda r: postprocess_label( + {i["token_str"]: i["score"] for i in r.json()} + ), + }, + "image-classification": { + # Example: google/vit-base-patch16-224 + "inputs": components.Image(type="filepath", label="Input Image"), + "outputs": components.Label(label="Classification"), + "preprocess": to_binary, + "postprocess": lambda r: postprocess_label( + {i["label"].split(", ")[0]: i["score"] for i in r.json()} + ), + }, + "question-answering": { + # Example: deepset/xlm-roberta-base-squad2 + "inputs": [ + components.Textbox(lines=7, label="Context"), + components.Textbox(label="Question"), + ], + "outputs": [ + components.Textbox(label="Answer"), + components.Label(label="Score"), ], - 'outputs': outputs.Label(label="Classification"), - 'preprocess': lambda src, sentences: {"inputs": { - "source_sentence": src, - "sentences": [s for s in sentences.splitlines() if s != ""], - }}, - 'postprocess': lambda r: { f"sentence {i}": v for i, v in enumerate(r) }, - }, - 'text-to-speech': { - # example model: hf.co/julien-c/ljspeech_tts_train_tacotron2_raw_phn_tacotron_g2p_en_no_space_train - 'inputs': inputs.Textbox(label="Input"), - 'outputs': outputs.Audio(label="Audio"), - 'preprocess': lambda x: {"inputs": x}, - 'postprocess': post_process_binary_body, - }, - 'text-to-image': { - # example model: hf.co/osanseviero/BigGAN-deep-128 - 'inputs': inputs.Textbox(label="Input"), - 'outputs': outputs.Image(label="Output"), - 'preprocess': lambda x: {"inputs": x}, - 'postprocess': post_process_binary_body, + "preprocess": lambda c, q: {"inputs": {"context": c, "question": q}}, + "postprocess": lambda r: (r.json()["answer"], {"label": r.json()["score"]}), + }, + "summarization": { + # Example: facebook/bart-large-cnn + "inputs": components.Textbox(label="Input"), + "outputs": components.Textbox(label="Summary"), + "preprocess": lambda x: {"inputs": x}, + "postprocess": lambda r: r.json()[0]["summary_text"], + }, + "text-classification": { + # Example: distilbert-base-uncased-finetuned-sst-2-english + "inputs": components.Textbox(label="Input"), + "outputs": components.Label(label="Classification"), + "preprocess": lambda x: {"inputs": x}, + "postprocess": lambda r: postprocess_label( + {i["label"].split(", ")[0]: i["score"] for i in r.json()[0]} + ), + }, + "text-generation": { + # Example: gpt2 + "inputs": components.Textbox(label="Input"), + "outputs": components.Textbox(label="Output"), + "preprocess": lambda x: {"inputs": x}, + "postprocess": lambda r: r.json()[0]["generated_text"], + }, + "text2text-generation": { + # Example: valhalla/t5-small-qa-qg-hl + "inputs": components.Textbox(label="Input"), + "outputs": components.Textbox(label="Generated Text"), + "preprocess": lambda x: {"inputs": x}, + "postprocess": lambda r: r.json()[0]["generated_text"], + }, + "translation": { + "inputs": components.Textbox(label="Input"), + "outputs": components.Textbox(label="Translation"), + "preprocess": lambda x: {"inputs": x}, + "postprocess": lambda r: r.json()[0]["translation_text"], + }, + "zero-shot-classification": { + # Example: facebook/bart-large-mnli + "inputs": [ + components.Textbox(label="Input"), + components.Textbox(label="Possible class names (" "comma-separated)"), + components.Checkbox(label="Allow multiple true classes"), + ], + "outputs": components.Label(label="Classification"), + "preprocess": lambda i, c, m: { + "inputs": i, + "parameters": {"candidate_labels": c, "multi_class": m}, + }, + "postprocess": lambda r: postprocess_label( + { + r.json()["labels"][i]: r.json()["scores"][i] + for i in range(len(r.json()["labels"])) + } + ), + }, + "sentence-similarity": { + # Example: sentence-transformers/distilbert-base-nli-stsb-mean-tokens + "inputs": [ + components.Textbox( + value="That is a happy person", label="Source Sentence" + ), + components.Textbox( + lines=7, + placeholder="Separate each sentence by a newline", + label="Sentences to compare to", + ), + ], + "outputs": components.Label(label="Classification"), + "preprocess": lambda src, sentences: { + "inputs": { + "source_sentence": src, + "sentences": [s for s in sentences.splitlines() if s != ""], + } + }, + "postprocess": lambda r: postprocess_label( + {f"sentence {i}": v for i, v in enumerate(r.json())} + ), + }, + "text-to-speech": { + # Example: julien-c/ljspeech_tts_train_tacotron2_raw_phn_tacotron_g2p_en_no_space_train + "inputs": components.Textbox(label="Input"), + "outputs": components.Audio(label="Audio"), + "preprocess": lambda x: {"inputs": x}, + "postprocess": encode_to_base64, + }, + "text-to-image": { + # example model: osanseviero/BigGAN-deep-128 + "inputs": components.Textbox(label="Input"), + "outputs": components.Image(label="Output"), + "preprocess": lambda x: {"inputs": x}, + "postprocess": encode_to_base64, + }, + "token-classification": { + # example model: huggingface-course/bert-finetuned-ner + "inputs": components.Textbox(label="Input"), + "outputs": components.HighlightedText(label="Output"), + "preprocess": lambda x: {"inputs": x}, + "postprocess": lambda r: r, # Handled as a special case in query_huggingface_api() }, } - if p is None or not(p in pipelines): - print("Warning: no interface information found") - + if p in ["tabular-classification", "tabular-regression"]: + example_data = get_tabular_examples(model_name) + col_names, example_data = cols_to_rows(example_data) + example_data = [[example_data]] if example_data else None + + pipelines[p] = { + "inputs": components.Dataframe( + label="Input Rows", + type="pandas", + headers=col_names, + col_count=(len(col_names), "fixed"), + ), + "outputs": components.Dataframe( + label="Predictions", type="array", headers=["prediction"] + ), + "preprocess": rows_to_cols, + "postprocess": lambda r: { + "headers": ["prediction"], + "data": [[pred] for pred in json.loads(r.text)], + }, + "examples": example_data, + } + + if p is None or not (p in pipelines): + raise ValueError("Unsupported pipeline type: {}".format(p)) + pipeline = pipelines[p] - def query_huggingface_api(*input): - payload = pipeline['preprocess'](*input) - if p == 'automatic-speech-recognition' or p == 'image-classification': - with open(input[0].name, "rb") as f: - data = f.read() - else: - payload.update({'options': {'wait_for_model': True}}) - data = json.dumps(payload) + def query_huggingface_api(*params): + # Convert to a list of input components + data = pipeline["preprocess"](*params) + if isinstance( + data, dict + ): # HF doesn't allow additional parameters for binary files (e.g. images or audio files) + data.update({"options": {"wait_for_model": True}}) + data = json.dumps(data) response = requests.request("POST", api_url, headers=headers, data=data) - if response.status_code == 200: - if p == 'text-to-speech' or p == 'text-to-image': - output = pipeline['postprocess'](response) - else: - result = response.json() - output = pipeline['postprocess'](result) - else: - raise ValueError("Could not complete request to HuggingFace API, Error {}".format(response.status_code)) + if not (response.status_code == 200): + errors_json = response.json() + errors, warns = "", "" + if errors_json.get("error"): + errors = f", Error: {errors_json.get('error')}" + if errors_json.get("warnings"): + warns = f", Warnings: {errors_json.get('warnings')}" + raise ValueError( + f"Could not complete request to HuggingFace API, Status Code: {response.status_code}" + + errors + + warns + ) + if ( + p == "token-classification" + ): # Handle as a special case since HF API only returns the named entities and we need the input as well + ner_groups = response.json() + input_string = params[0] + response = utils.format_ner_list(input_string, ner_groups) + output = pipeline["postprocess"](response) return output - + if alias is None: query_huggingface_api.__name__ = model_name else: query_huggingface_api.__name__ = alias interface_info = { - 'fn': query_huggingface_api, - 'inputs': pipeline['inputs'], - 'outputs': pipeline['outputs'], - 'title': model_name, - # 'examples': pipeline['examples'], + "fn": query_huggingface_api, + "inputs": pipeline["inputs"], + "outputs": pipeline["outputs"], + "title": model_name, + "examples": pipeline.get("examples"), } - return interface_info - -def get_gradio_interface(model_name, api_key, alias): - model_info = requests.get("https://gradio.app/get_config/{}".format(model_name)).json() - config_info = json.loads(model_info["config"]) - api_url = "{}/api/predict/".format(model_info["url"]) - - headers = { - 'authority': model_info["url"], - 'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="90", "Microsoft Edge";v="90"', - 'accept': 'application/json, text/javascript, */*; q=0.01', - 'sec-ch-ua-mobile': '?1', - 'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Mobile Safari/537.36 Edg/90.0.818.56', - 'content-type': 'application/json; charset=UTF-8', - 'origin': 'https://gradio.app', - 'sec-fetch-site': 'cross-site', - 'sec-fetch-mode': 'cors', - 'sec-fetch-dest': 'empty', - 'referer': 'https://gradio.app/', - 'accept-language': 'en-US,en;q=0.9', - } + kwargs = dict(interface_info, **kwargs) + kwargs["_api_mode"] = True # So interface doesn't run pre/postprocess. + interface = gradio.Interface(**kwargs) + return interface - def query_gradio_api(*input): - payload = pipeline['preprocess'](*input) - data = json.dumps(payload) - response = requests.post(api_url, headers=headers, data=data) - result = json.loads(response.content.decode("utf-8")) - output = pipeline['postprocess'](result) - return output - if alias is None: - query_gradio_api.__name__ = model_name - else: - query_gradio_api.__name__ = alias +def from_spaces(space_name: str, api_key: str | None, alias: str, **kwargs) -> Blocks: + space_url = "https://huggingface.co/spaces/{}".format(space_name) - pipeline = { - 'inputs': [inp[0] for inp in config_info["input_components"]], - 'outputs': [out[0] for out in config_info["output_components"]], - 'preprocess': lambda x: {"data": [x]}, - 'postprocess': lambda r: r["data"][0], - } + print("Fetching Space from: {}".format(space_url)) - interface_info = { - 'fn': query_gradio_api, - 'inputs': pipeline['inputs'], - 'outputs': pipeline['outputs'], - 'title': model_name, - } + headers = {} + if api_key is not None: + headers["Authorization"] = f"Bearer {api_key}" - return interface_info + iframe_url = ( + requests.get( + f"https://huggingface.co/api/spaces/{space_name}/host", headers=headers + ) + .json() + .get("host") + ) -def load_interface(name, src=None, api_key=None, alias=None): - if src is None: - tokens = name.split("/") - assert len(tokens) > 1, "Either `src` parameter must be provided, or `name` must be formatted as \{src\}/\{repo name\}" - src = tokens[0] - name = "/".join(tokens[1:]) - assert src.lower() in repos, "parameter: src must be one of {}".format(repos.keys()) - interface_info = repos[src](name, api_key, alias) - return interface_info + if iframe_url is None: + raise ValueError( + f"Could not find Space: {space_name}. If it is a private or gated Space, please provide your Hugging Face access token (https://huggingface.co/settings/tokens) as the argument for the `api_key` parameter." + ) + + r = requests.get(iframe_url, headers=headers) + + result = re.search( + r"window.gradio_config = (.*?);[\s]*", r.text + ) # some basic regex to extract the config + try: + config = json.loads(result.group(1)) + except AttributeError: + raise ValueError("Could not load the Space: {}".format(space_name)) + if "allow_flagging" in config: # Create an Interface for Gradio 2.x Spaces + return from_spaces_interface( + space_name, config, alias, api_key, iframe_url, **kwargs + ) + else: # Create a Blocks for Gradio 3.x Spaces + if kwargs: + warnings.warn( + "You cannot override parameters for this Space by passing in kwargs. " + "Instead, please load the Space as a function and use it to create a " + "Blocks or Interface locally. You may find this Guide helpful: " + "https://gradio.app/using_blocks_like_functions/" + ) + return from_spaces_blocks(config, api_key, iframe_url) + + +def from_spaces_blocks(config: Dict, api_key: str | None, iframe_url: str) -> Blocks: + api_url = "{}/api/predict/".format(iframe_url) + + headers = {"Content-Type": "application/json"} + if api_key is not None: + headers["Authorization"] = f"Bearer {api_key}" + ws_url = "{}/queue/join".format(iframe_url).replace("https", "wss") + + ws_fn = get_ws_fn(ws_url, headers) + + fns = [] + for d, dependency in enumerate(config["dependencies"]): + if dependency["backend_fn"]: + + def get_fn(outputs, fn_index, use_ws): + def fn(*data): + data = json.dumps({"data": data, "fn_index": fn_index}) + hash_data = json.dumps( + {"fn_index": fn_index, "session_hash": str(uuid.uuid4())} + ) + if use_ws: + result = utils.synchronize_async(ws_fn, data, hash_data) + output = result["data"] + else: + response = requests.post(api_url, headers=headers, data=data) + result = json.loads(response.content.decode("utf-8")) + try: + output = result["data"] + except KeyError: + if "error" in result and "429" in result["error"]: + raise TooManyRequestsError( + "Too many requests to the Hugging Face API" + ) + raise KeyError( + f"Could not find 'data' key in response from external Space. Response received: {result}" + ) + if len(outputs) == 1: + output = output[0] + return output + + return fn + + fn = get_fn( + deepcopy(dependency["outputs"]), d, use_websocket(config, dependency) + ) + fns.append(fn) + else: + fns.append(None) + return gradio.Blocks.from_config(config, fns, iframe_url) + + +def from_spaces_interface( + model_name: str, + config: Dict, + alias: str, + api_key: str | None, + iframe_url: str, + **kwargs, +) -> Interface: + + config = streamline_spaces_interface(config) + api_url = "{}/api/predict/".format(iframe_url) + headers = {"Content-Type": "application/json"} + if api_key is not None: + headers["Authorization"] = f"Bearer {api_key}" + + # The function should call the API with preprocessed data + def fn(*data): + data = json.dumps({"data": data}) + response = requests.post(api_url, headers=headers, data=data) + result = json.loads(response.content.decode("utf-8")) + try: + output = result["data"] + except KeyError: + if "error" in result and "429" in result["error"]: + raise TooManyRequestsError("Too many requests to the Hugging Face API") + raise KeyError( + f"Could not find 'data' key in response from external Space. Response received: {result}" + ) + if ( + len(config["outputs"]) == 1 + ): # if the fn is supposed to return a single value, pop it + output = output[0] + if len(config["outputs"]) == 1 and isinstance( + output, list + ): # Needed to support Output.Image() returning bounding boxes as well (TODO: handle different versions of gradio since they have slightly different APIs) + output = output[0] + return output -repos = { - # for each repo, we have a method that returns the Interface given the model name & optionally an api_key - "huggingface": get_huggingface_interface, - "gradio": get_gradio_interface, -} + fn.__name__ = alias if (alias is not None) else model_name + config["fn"] = fn + kwargs = dict(config, **kwargs) + kwargs["_api_mode"] = True + interface = gradio.Interface(**kwargs) + return interface diff --git a/gtm/lib/python3.12/site-packages/gradio/external_utils.py b/gtm/lib/python3.12/site-packages/gradio/external_utils.py index c1b77db45cb30c45a6bbce3406095c38a8c8cadf..db496bac334b05def62fa8d2c24acb8efe32ccbb 100644 --- a/gtm/lib/python3.12/site-packages/gradio/external_utils.py +++ b/gtm/lib/python3.12/site-packages/gradio/external_utils.py @@ -1,25 +1,28 @@ -"""Utility function for gradio/external.py, designed for internal use.""" - -from __future__ import annotations +"""Utility function for gradio/external.py""" import base64 +import json import math +import numbers +import operator import re import warnings +from typing import Any, Dict, List, Tuple -import httpx +import requests +import websockets import yaml -from huggingface_hub import InferenceClient +from packaging import version -from gradio import components +from gradio import components, exceptions ################## # Helper functions for processing tabular data ################## -def get_tabular_examples(model_name: str) -> dict[str, list[float]]: - readme = httpx.get(f"https://huggingface.co/{model_name}/resolve/main/README.md") +def get_tabular_examples(model_name: str) -> Dict[str, List[float]]: + readme = requests.get(f"https://huggingface.co/{model_name}/resolve/main/README.md") if readme.status_code != 200: warnings.warn(f"Cannot load examples from README for {model_name}", UserWarning) example_data = {} @@ -27,30 +30,25 @@ def get_tabular_examples(model_name: str) -> dict[str, list[float]]: yaml_regex = re.search( "(?:^|[\r\n])---[\n\r]+([\\S\\s]*?)[\n\r]+---([\n\r]|$)", readme.text ) - if yaml_regex is None: - example_data = {} - else: - example_yaml = next( - yaml.safe_load_all(readme.text[: yaml_regex.span()[-1]]) - ) - example_data = example_yaml.get("widget", {}).get("structuredData", {}) + example_yaml = next(yaml.safe_load_all(readme.text[: yaml_regex.span()[-1]])) + example_data = example_yaml.get("widget", {}).get("structuredData", {}) if not example_data: raise ValueError( f"No example data found in README.md of {model_name} - Cannot build gradio demo. " "See the README.md here: https://huggingface.co/scikit-learn/tabular-playground/blob/main/README.md " "for a reference on how to provide example data to your model." ) - # replace nan with string NaN for inference Endpoints + # replace nan with string NaN for inference API for data in example_data.values(): for i, val in enumerate(data): - if isinstance(val, float) and math.isnan(val): + if isinstance(val, numbers.Number) and math.isnan(val): data[i] = "NaN" return example_data def cols_to_rows( - example_data: dict[str, list[float]], -) -> tuple[list[str], list[list[float]]]: + example_data: Dict[str, List[float]] +) -> Tuple[List[str], List[List[float]]]: headers = list(example_data.keys()) n_rows = max(len(example_data[header] or []) for header in headers) data = [] @@ -66,7 +64,7 @@ def cols_to_rows( return headers, data -def rows_to_cols(incoming_data: dict) -> dict[str, dict[str, dict[str, list[str]]]]: +def rows_to_cols(incoming_data: Dict) -> Dict[str, Dict[str, Dict[str, List[str]]]]: data_column_wise = {} for i, header in enumerate(incoming_data["headers"]): data_column_wise[header] = [str(row[i]) for row in incoming_data["data"]] @@ -78,46 +76,17 @@ def rows_to_cols(incoming_data: dict) -> dict[str, dict[str, dict[str, list[str] ################## -def postprocess_label(scores: list[dict[str, str | float]]) -> dict: - return {c["label"]: c["score"] for c in scores} - - -def postprocess_mask_tokens(scores: list[dict[str, str | float]]) -> dict: - return {c["token_str"]: c["score"] for c in scores} - - -def postprocess_question_answering(answer: dict) -> tuple[str, dict]: - return answer["answer"], {answer["answer"]: answer["score"]} - - -def postprocess_visual_question_answering(scores: list[dict[str, str | float]]) -> dict: - return {c["answer"]: c["score"] for c in scores} - - -def zero_shot_classification_wrapper(client: InferenceClient): - def zero_shot_classification_inner(input: str, labels: str, multi_label: bool): - return client.zero_shot_classification( - input, labels.split(","), multi_label=multi_label - ) - - return zero_shot_classification_inner - - -def sentence_similarity_wrapper(client: InferenceClient): - def sentence_similarity_inner(input: str, sentences: str): - return client.sentence_similarity(input, sentences.split("\n")) - - return sentence_similarity_inner - - -def text_generation_wrapper(client: InferenceClient): - def text_generation_inner(input: str): - return input + client.text_generation(input) - - return text_generation_inner +def postprocess_label(scores): + sorted_pred = sorted(scores.items(), key=operator.itemgetter(1), reverse=True) + return { + "label": sorted_pred[0][0], + "confidences": [ + {"label": pred[0], "confidence": pred[1]} for pred in sorted_pred + ], + } -def encode_to_base64(r: httpx.Response) -> str: +def encode_to_base64(r: requests.Response) -> str: # Handles the different ways HF API returns the prediction base64_repr = base64.b64encode(r.content).decode("utf-8") data_prefix = ";base64," @@ -129,80 +98,58 @@ def encode_to_base64(r: httpx.Response) -> str: # Case 2: the data prefix is a key in the response if content_type == "application/json": try: - data = r.json()[0] - content_type = data["content-type"] - base64_repr = data["blob"] - except KeyError as ke: + content_type = r.json()[0]["content-type"] + base64_repr = r.json()[0]["blob"] + except KeyError: raise ValueError( - "Cannot determine content type returned by external API." - ) from ke + "Cannot determine content type returned" "by external API." + ) # Case 3: the data prefix is included in the response headers else: pass - new_base64 = f"data:{content_type};base64,{base64_repr}" + new_base64 = "data:{};base64,".format(content_type) + base64_repr return new_base64 -def format_ner_list(input_string: str, ner_groups: list[dict[str, str | int]]): - if len(ner_groups) == 0: - return [(input_string, None)] - - output = [] - end = 0 - prev_end = 0 - - for group in ner_groups: - entity, start, end = group["entity_group"], group["start"], group["end"] - output.append((input_string[prev_end:start], None)) - output.append((input_string[start:end], entity)) - prev_end = end - - output.append((input_string[end:], None)) - return output - +################## +# Helper functions for connecting to websockets +################## -def token_classification_wrapper(client: InferenceClient): - def token_classification_inner(input: str): - ner_list = client.token_classification(input) - return format_ner_list(input, ner_list) # type: ignore - return token_classification_inner +async def get_pred_from_ws( + websocket: websockets.WebSocketClientProtocol, data: str, hash_data: str +) -> Dict[str, Any]: + completed = False + while not completed: + msg = await websocket.recv() + resp = json.loads(msg) + if resp["msg"] == "queue_full": + raise exceptions.Error("Queue is full! Please try again.") + if resp["msg"] == "send_hash": + await websocket.send(hash_data) + elif resp["msg"] == "send_data": + await websocket.send(data) + completed = resp["msg"] == "process_completed" + return resp["output"] -def chatbot_preprocess(text, state): - if not state: - return text, [], [] - return ( - text, - state["conversation"]["generated_responses"], - state["conversation"]["past_user_inputs"], - ) +def get_ws_fn(ws_url, headers): + async def ws_fn(data, hash_data): + async with websockets.connect( + ws_url, open_timeout=10, extra_headers=headers + ) as websocket: + return await get_pred_from_ws(websocket, data, hash_data) + return ws_fn -def chatbot_postprocess(response): - chatbot_history = list( - zip( - response["conversation"]["past_user_inputs"], - response["conversation"]["generated_responses"], - ) - ) - return chatbot_history, response - - -def tabular_wrapper(client: InferenceClient, pipeline: str): - # This wrapper is needed to handle an issue in the InfereneClient where the model name is not - # automatically loaded when using the tabular_classification and tabular_regression methods. - # See: https://github.com/huggingface/huggingface_hub/issues/2015 - def tabular_inner(data): - if pipeline not in ("tabular_classification", "tabular_regression"): - raise TypeError(f"pipeline type {pipeline!r} not supported") - assert client.model # noqa: S101 - if pipeline == "tabular_classification": - return client.tabular_classification(data, model=client.model) - else: - return client.tabular_regression(data, model=client.model) - return tabular_inner +def use_websocket(config, dependency): + queue_enabled = config.get("enable_queue", False) + queue_uses_websocket = version.parse( + config.get("version", "2.0") + ) >= version.Version("3.2") + dependency_uses_queue = dependency.get("queue", False) is not False + return queue_enabled and queue_uses_websocket and dependency_uses_queue ################## @@ -210,7 +157,7 @@ def tabular_wrapper(client: InferenceClient, pipeline: str): ################## -def streamline_spaces_interface(config: dict) -> dict: +def streamline_spaces_interface(config: Dict) -> Dict: """Streamlines the interface config dictionary to remove unnecessary keys.""" config["inputs"] = [ components.get_component_instance(component) @@ -226,6 +173,7 @@ def streamline_spaces_interface(config: dict) -> dict: "flagging_options", "inputs", "outputs", + "theme", "title", } config = {k: config[k] for k in parameters} diff --git a/gtm/lib/python3.12/site-packages/gradio/flagging.py b/gtm/lib/python3.12/site-packages/gradio/flagging.py index 3f9fdaf33b980fdc9caed528059b5e6b58e38d45..a679ad30689b46e7c7e2e9686069df5cb0110e8c 100644 --- a/gtm/lib/python3.12/site-packages/gradio/flagging.py +++ b/gtm/lib/python3.12/site-packages/gradio/flagging.py @@ -2,25 +2,67 @@ from __future__ import annotations import csv import datetime +import io import json import os -import time import uuid from abc import ABC, abstractmethod -from collections import OrderedDict -from pathlib import Path -from typing import TYPE_CHECKING, Any - -import filelock -import huggingface_hub -from gradio_client import utils as client_utils -from gradio_client.documentation import document +from typing import TYPE_CHECKING, Any, List, Optional import gradio as gr -from gradio import utils +from gradio import encryptor, utils +from gradio.documentation import document, set_documentation_group if TYPE_CHECKING: - from gradio.components import Component + from gradio.components import IOComponent + +set_documentation_group("flagging") + + +def _get_dataset_features_info(is_new, components): + """ + Takes in a list of components and returns a dataset features info + + Parameters: + is_new: boolean, whether the dataset is new or not + components: list of components + + Returns: + infos: a dictionary of the dataset features + file_preview_types: dictionary mapping of gradio components to appropriate string. + header: list of header strings + + """ + infos = {"flagged": {"features": {}}} + # File previews for certain input and output types + file_preview_types = {gr.Audio: "Audio", gr.Image: "Image"} + headers = [] + + # Generate the headers and dataset_infos + if is_new: + + for component in components: + headers.append(component.label) + infos["flagged"]["features"][component.label] = { + "dtype": "string", + "_type": "Value", + } + if isinstance(component, tuple(file_preview_types)): + headers.append(component.label + " file") + for _component, _type in file_preview_types.items(): + if isinstance(component, _component): + infos["flagged"]["features"][component.label + " file"] = { + "_type": _type + } + break + + headers.append("flag") + infos["flagged"]["features"]["flag"] = { + "dtype": "string", + "_type": "Value", + } + + return infos, file_preview_types, headers class FlaggingCallback(ABC): @@ -29,22 +71,23 @@ class FlaggingCallback(ABC): """ @abstractmethod - def setup(self, components: list[Component], flagging_dir: str): + def setup(self, components: List[IOComponent], flagging_dir: str): """ This method should be overridden and ensure that everything is set up correctly for flag(). This method gets called once at the beginning of the Interface.launch() method. Parameters: components: Set of components that will provide flagged data. - flagging_dir: A string, typically containing the path to the directory where the flagging file should be stored (provided as an argument to Interface.__init__()). + flagging_dir: A string, typically containing the path to the directory where the flagging file should be storied (provided as an argument to Interface.__init__()). """ pass @abstractmethod def flag( self, - flag_data: list[Any], - flag_option: str = "", - username: str | None = None, + flag_data: List[Any], + flag_option: Optional[str] = None, + flag_index: Optional[int] = None, + username: Optional[str] = None, ) -> int: """ This method should be overridden by the FlaggingCallback subclass and may contain optional additional arguments. @@ -53,6 +96,7 @@ class FlaggingCallback(ABC): interface: The Interface object that is being used to launch the flagging interface. flag_data: The data to be flagged. flag_option (optional): In the case that flagging_options are provided, the flag option that is being used. + flag_index (optional): The index of the sample that is being flagged. username (optional): The username of the user that is flagging the data, if logged in. Returns: (int) The total number of samples that have been flagged. @@ -77,30 +121,31 @@ class SimpleCSVLogger(FlaggingCallback): def __init__(self): pass - def setup(self, components: list[Component], flagging_dir: str | Path): + def setup(self, components: List[IOComponent], flagging_dir: str): self.components = components self.flagging_dir = flagging_dir os.makedirs(flagging_dir, exist_ok=True) def flag( self, - flag_data: list[Any], - flag_option: str = "", # noqa: ARG002 - username: str | None = None, # noqa: ARG002 + flag_data: List[Any], + flag_option: Optional[str] = None, + flag_index: Optional[int] = None, + username: Optional[str] = None, ) -> int: flagging_dir = self.flagging_dir - log_filepath = Path(flagging_dir) / "log.csv" + log_filepath = os.path.join(flagging_dir, "log.csv") csv_data = [] for component, sample in zip(self.components, flag_data): - save_dir = Path( - flagging_dir - ) / client_utils.strip_invalid_filename_characters(component.label or "") - save_dir.mkdir(exist_ok=True) + save_dir = os.path.join( + flagging_dir, utils.strip_invalid_filename_characters(component.label) + ) csv_data.append( - component.flag( + component.deserialize( sample, save_dir, + None, ) ) @@ -108,8 +153,8 @@ class SimpleCSVLogger(FlaggingCallback): writer = csv.writer(csvfile) writer.writerow(utils.sanitize_list_for_csv(csv_data)) - with open(log_filepath) as csvfile: - line_count = len(list(csv.reader(csvfile))) - 1 + with open(log_filepath, "r") as csvfile: + line_count = len([None for row in csv.reader(csvfile)]) - 1 return line_count @@ -124,7 +169,7 @@ class CSVLogger(FlaggingCallback): return {'cat': 0.3, 'dog': 0.7} demo = gr.Interface(fn=image_classifier, inputs="image", outputs="label", flagging_callback=CSVLogger()) - Guides: using-flagging + Guides: using_flagging """ def __init__(self): @@ -132,66 +177,117 @@ class CSVLogger(FlaggingCallback): def setup( self, - components: list[Component], - flagging_dir: str | Path, + components: List[IOComponent], + flagging_dir: str, + encryption_key: Optional[str] = None, ): self.components = components self.flagging_dir = flagging_dir + self.encryption_key = encryption_key os.makedirs(flagging_dir, exist_ok=True) def flag( self, - flag_data: list[Any], - flag_option: str = "", - username: str | None = None, + flag_data: List[Any], + flag_option: Optional[str] = None, + flag_index: Optional[int] = None, + username: Optional[str] = None, ) -> int: flagging_dir = self.flagging_dir - log_filepath = Path(flagging_dir) / "log.csv" - is_new = not Path(log_filepath).exists() - headers = [ - getattr(component, "label", None) or f"component {idx}" - for idx, component in enumerate(self.components) - ] + [ - "flag", - "username", - "timestamp", - ] - - csv_data = [] - for idx, (component, sample) in enumerate(zip(self.components, flag_data)): - save_dir = Path( - flagging_dir - ) / client_utils.strip_invalid_filename_characters( - getattr(component, "label", None) or f"component {idx}" - ) - if utils.is_update(sample): - csv_data.append(str(sample)) - else: - csv_data.append( - component.flag(sample, flag_dir=save_dir) - if sample is not None - else "" + log_filepath = os.path.join(flagging_dir, "log.csv") + is_new = not os.path.exists(log_filepath) + + if flag_index is None: + csv_data = [] + for idx, (component, sample) in enumerate(zip(self.components, flag_data)): + save_dir = os.path.join( + flagging_dir, + utils.strip_invalid_filename_characters( + component.label or f"component {idx}" + ), ) - csv_data.append(flag_option) - csv_data.append(username if username is not None else "") - csv_data.append(str(datetime.datetime.now())) - - with open(log_filepath, "a", newline="", encoding="utf-8") as csvfile: - writer = csv.writer(csvfile) + if utils.is_update(sample): + csv_data.append(str(sample)) + else: + csv_data.append( + component.deserialize( + sample, + save_dir=save_dir, + encryption_key=self.encryption_key, + ) + if sample is not None + else "" + ) + csv_data.append(flag_option if flag_option is not None else "") + csv_data.append(username if username is not None else "") + csv_data.append(str(datetime.datetime.now())) if is_new: - writer.writerow(utils.sanitize_list_for_csv(headers)) - writer.writerow(utils.sanitize_list_for_csv(csv_data)) + headers = [ + component.label or f"component {idx}" + for idx, component in enumerate(self.components) + ] + [ + "flag", + "username", + "timestamp", + ] - with open(log_filepath, encoding="utf-8") as csvfile: - line_count = len(list(csv.reader(csvfile))) - 1 + def replace_flag_at_index(file_content): + file_content = io.StringIO(file_content) + content = list(csv.reader(file_content)) + header = content[0] + flag_col_index = header.index("flag") + content[flag_index][flag_col_index] = flag_option + output = io.StringIO() + writer = csv.writer(output) + writer.writerows(utils.sanitize_list_for_csv(content)) + return output.getvalue() + + if self.encryption_key: + output = io.StringIO() + if not is_new: + with open(log_filepath, "rb", encoding="utf-8") as csvfile: + encrypted_csv = csvfile.read() + decrypted_csv = encryptor.decrypt( + self.encryption_key, encrypted_csv + ) + file_content = decrypted_csv.decode() + if flag_index is not None: + file_content = replace_flag_at_index(file_content) + output.write(file_content) + writer = csv.writer(output) + if flag_index is None: + if is_new: + writer.writerow(utils.sanitize_list_for_csv(headers)) + writer.writerow(utils.sanitize_list_for_csv(csv_data)) + with open(log_filepath, "wb", encoding="utf-8") as csvfile: + csvfile.write( + encryptor.encrypt(self.encryption_key, output.getvalue().encode()) + ) + else: + if flag_index is None: + with open(log_filepath, "a", newline="", encoding="utf-8") as csvfile: + writer = csv.writer(csvfile) + if is_new: + writer.writerow(utils.sanitize_list_for_csv(headers)) + writer.writerow(utils.sanitize_list_for_csv(csv_data)) + else: + with open(log_filepath, encoding="utf-8") as csvfile: + file_content = csvfile.read() + file_content = replace_flag_at_index(file_content) + with open( + log_filepath, "w", newline="", encoding="utf-8" + ) as csvfile: # newline parameter needed for Windows + csvfile.write(utils.sanitize_list_for_csv(file_content)) + with open(log_filepath, "r", encoding="utf-8") as csvfile: + line_count = len([None for row in csv.reader(csvfile)]) - 1 return line_count @document() class HuggingFaceDatasetSaver(FlaggingCallback): """ - A callback that saves each flagged sample (both the input and output data) to a HuggingFace dataset. - + A callback that saves each flagged sample (both the input and output data) + to a HuggingFace dataset. Example: import gradio as gr hf_writer = gr.HuggingFaceDatasetSaver(HF_API_TOKEN, "image-classification-mistakes") @@ -199,295 +295,256 @@ class HuggingFaceDatasetSaver(FlaggingCallback): return {'cat': 0.3, 'dog': 0.7} demo = gr.Interface(fn=image_classifier, inputs="image", outputs="label", allow_flagging="manual", flagging_callback=hf_writer) - Guides: using-flagging + Guides: using_flagging """ def __init__( self, hf_token: str, dataset_name: str, + organization: Optional[str] = None, private: bool = False, - info_filename: str = "dataset_info.json", - separate_dirs: bool = False, ): """ Parameters: - hf_token: The HuggingFace token to use to create (and write the flagged sample to) the HuggingFace dataset (defaults to the registered one). - dataset_name: The repo_id of the dataset to save the data to, e.g. "image-classifier-1" or "username/image-classifier-1". + hf_token: The HuggingFace token to use to create (and write the flagged sample to) the HuggingFace dataset. + dataset_name: The name of the dataset to save the data to, e.g. "image-classifier-1" + organization: The organization to save the dataset under. The hf_token must provide write access to this organization. If not provided, saved under the name of the user corresponding to the hf_token. private: Whether the dataset should be private (defaults to False). - info_filename: The name of the file to save the dataset info (defaults to "dataset_infos.json"). - separate_dirs: If True, each flagged item will be saved in a separate directory. This makes the flagging more robust to concurrent editing, but may be less convenient to use. """ self.hf_token = hf_token - self.dataset_id = dataset_name # TODO: rename parameter (but ensure backward compatibility somehow) + self.dataset_name = dataset_name + self.organization_name = organization self.dataset_private = private - self.info_filename = info_filename - self.separate_dirs = separate_dirs - def setup(self, components: list[Component], flagging_dir: str): + def setup(self, components: List[IOComponent], flagging_dir: str): """ Params: flagging_dir (str): local directory where the dataset is cloned, updated, and pushed from. """ - # Setup dataset on the Hub - self.dataset_id = huggingface_hub.create_repo( - repo_id=self.dataset_id, + try: + import huggingface_hub + except (ImportError, ModuleNotFoundError): + raise ImportError( + "Package `huggingface_hub` not found is needed " + "for HuggingFaceDatasetSaver. Try 'pip install huggingface_hub'." + ) + path_to_dataset_repo = huggingface_hub.create_repo( + name=self.dataset_name, token=self.hf_token, private=self.dataset_private, repo_type="dataset", exist_ok=True, - ).repo_id - path_glob = "**/*.jsonl" if self.separate_dirs else "data.csv" - huggingface_hub.metadata_update( - repo_id=self.dataset_id, - repo_type="dataset", - metadata={ - "configs": [ - { - "config_name": "default", - "data_files": [{"split": "train", "path": path_glob}], - } - ] - }, - overwrite=True, - token=self.hf_token, ) - - # Setup flagging dir + self.path_to_dataset_repo = path_to_dataset_repo # e.g. "https://huggingface.co/datasets/abidlabs/test-audio-10" self.components = components - self.dataset_dir = ( - Path(flagging_dir).absolute() / self.dataset_id.split("/")[-1] + self.flagging_dir = flagging_dir + self.dataset_dir = os.path.join(flagging_dir, self.dataset_name) + self.repo = huggingface_hub.Repository( + local_dir=self.dataset_dir, + clone_from=path_to_dataset_repo, + use_auth_token=self.hf_token, ) - self.dataset_dir.mkdir(parents=True, exist_ok=True) - self.infos_file = self.dataset_dir / self.info_filename + self.repo.git_pull(lfs=True) - # Download remote files to local - remote_files = [self.info_filename] - if not self.separate_dirs: - # No separate dirs => means all data is in the same CSV file => download it to get its current content - remote_files.append("data.csv") - - for filename in remote_files: - try: - huggingface_hub.hf_hub_download( - repo_id=self.dataset_id, - repo_type="dataset", - filename=filename, - local_dir=self.dataset_dir, - token=self.hf_token, - ) - except huggingface_hub.utils.EntryNotFoundError: - pass + # Should filename be user-specified? + self.log_file = os.path.join(self.dataset_dir, "data.csv") + self.infos_file = os.path.join(self.dataset_dir, "dataset_infos.json") def flag( self, - flag_data: list[Any], - flag_option: str = "", - username: str | None = None, - ) -> int: - if self.separate_dirs: - # JSONL files to support dataset preview on the Hub - unique_id = str(uuid.uuid4()) - components_dir = self.dataset_dir / unique_id - data_file = components_dir / "metadata.jsonl" - path_in_repo = unique_id # upload in sub folder (safer for concurrency) - else: - # Unique CSV file - components_dir = self.dataset_dir - data_file = components_dir / "data.csv" - path_in_repo = None # upload at root level - - return self._flag_in_dir( - data_file=data_file, - components_dir=components_dir, - path_in_repo=path_in_repo, - flag_data=flag_data, - flag_option=flag_option, - username=username or "", - ) - - def _flag_in_dir( - self, - data_file: Path, - components_dir: Path, - path_in_repo: str | None, - flag_data: list[Any], - flag_option: str = "", - username: str = "", + flag_data: List[Any], + flag_option: Optional[str] = None, + flag_index: Optional[int] = None, + username: Optional[str] = None, ) -> int: - # Deserialize components (write images/audio to files) - features, row = self._deserialize_components( - components_dir, flag_data, flag_option, username - ) + self.repo.git_pull(lfs=True) - # Write generic info to dataset_infos.json + upload - with filelock.FileLock(str(self.infos_file) + ".lock"): - if not self.infos_file.exists(): - self.infos_file.write_text( - json.dumps({"flagged": {"features": features}}) - ) + is_new = not os.path.exists(self.log_file) - huggingface_hub.upload_file( - repo_id=self.dataset_id, - repo_type="dataset", - token=self.hf_token, - path_in_repo=self.infos_file.name, - path_or_fileobj=self.infos_file, - ) + with open(self.log_file, "a", newline="", encoding="utf-8") as csvfile: + writer = csv.writer(csvfile) - headers = list(features.keys()) - - if not self.separate_dirs: - with filelock.FileLock(components_dir / ".lock"): - sample_nb = self._save_as_csv(data_file, headers=headers, row=row) - sample_name = str(sample_nb) - huggingface_hub.upload_folder( - repo_id=self.dataset_id, - repo_type="dataset", - commit_message=f"Flagged sample #{sample_name}", - path_in_repo=path_in_repo, - ignore_patterns="*.lock", - folder_path=components_dir, - token=self.hf_token, - ) - else: - sample_name = self._save_as_jsonl(data_file, headers=headers, row=row) - sample_nb = len( - [path for path in self.dataset_dir.iterdir() if path.is_dir()] - ) - huggingface_hub.upload_folder( - repo_id=self.dataset_id, - repo_type="dataset", - commit_message=f"Flagged sample #{sample_name}", - path_in_repo=path_in_repo, - ignore_patterns="*.lock", - folder_path=components_dir, - token=self.hf_token, + # File previews for certain input and output types + infos, file_preview_types, headers = _get_dataset_features_info( + is_new, self.components ) - return sample_nb - - @staticmethod - def _save_as_csv(data_file: Path, headers: list[str], row: list[Any]) -> int: - """Save data as CSV and return the sample name (row number).""" - is_new = not data_file.exists() - - with data_file.open("a", newline="", encoding="utf-8") as csvfile: - writer = csv.writer(csvfile) - - # Write CSV headers if new file + # Generate the headers and dataset_infos if is_new: writer.writerow(utils.sanitize_list_for_csv(headers)) - # Write CSV row for flagged sample - writer.writerow(utils.sanitize_list_for_csv(row)) + # Generate the row corresponding to the flagged sample + csv_data = [] + for component, sample in zip(self.components, flag_data): + save_dir = os.path.join( + self.dataset_dir, + utils.strip_invalid_filename_characters(component.label), + ) + filepath = component.deserialize(sample, save_dir, None) + csv_data.append(filepath) + if isinstance(component, tuple(file_preview_types)): + csv_data.append( + "{}/resolve/main/{}".format(self.path_to_dataset_repo, filepath) + ) + csv_data.append(flag_option if flag_option is not None else "") + writer.writerow(utils.sanitize_list_for_csv(csv_data)) - with data_file.open(encoding="utf-8") as csvfile: - return sum(1 for _ in csv.reader(csvfile)) - 1 + if is_new: + json.dump(infos, open(self.infos_file, "w")) - @staticmethod - def _save_as_jsonl(data_file: Path, headers: list[str], row: list[Any]) -> str: - """Save data as JSONL and return the sample name (uuid).""" - Path.mkdir(data_file.parent, parents=True, exist_ok=True) - with open(data_file, "w") as f: - json.dump(dict(zip(headers, row)), f) - return data_file.parent.name + with open(self.log_file, "r", encoding="utf-8") as csvfile: + line_count = len([None for row in csv.reader(csvfile)]) - 1 - def _deserialize_components( - self, - data_dir: Path, - flag_data: list[Any], - flag_option: str = "", - username: str = "", - ) -> tuple[dict[Any, Any], list[Any]]: - """Deserialize components and return the corresponding row for the flagged sample. - - Images/audio are saved to disk as individual files. - """ - # Components that can have a preview on dataset repos - file_preview_types = {gr.Audio: "Audio", gr.Image: "Image"} + self.repo.push_to_hub(commit_message="Flagged sample #{}".format(line_count)) - # Generate the row corresponding to the flagged sample - features = OrderedDict() - row = [] - for component, sample in zip(self.components, flag_data): - # Get deserialized object (will save sample to disk if applicable -file, audio, image,...-) - label = component.label or "" - save_dir = data_dir / client_utils.strip_invalid_filename_characters(label) - save_dir.mkdir(exist_ok=True, parents=True) - deserialized = component.flag(sample, save_dir) - - # Add deserialized object to row - features[label] = {"dtype": "string", "_type": "Value"} - try: - deserialized_path = Path(deserialized) - if not deserialized_path.exists(): - raise FileNotFoundError(f"File {deserialized} not found") - row.append(str(deserialized_path.relative_to(self.dataset_dir))) - except (FileNotFoundError, TypeError, ValueError): - deserialized = "" if deserialized is None else str(deserialized) - row.append(deserialized) - - # If component is eligible for a preview, add the URL of the file - # Be mindful that images and audio can be None - if isinstance(component, tuple(file_preview_types)): # type: ignore - for _component, _type in file_preview_types.items(): - if isinstance(component, _component): - features[label + " file"] = {"_type": _type} - break - if deserialized: - path_in_repo = str( # returned filepath is absolute, we want it relative to compute URL - Path(deserialized).relative_to(self.dataset_dir) - ).replace("\\", "/") - row.append( - huggingface_hub.hf_hub_url( - repo_id=self.dataset_id, - filename=path_in_repo, - repo_type="dataset", - ) - ) - else: - row.append("") - features["flag"] = {"dtype": "string", "_type": "Value"} - features["username"] = {"dtype": "string", "_type": "Value"} - row.append(flag_option) - row.append(username) - return features, row + return line_count -class FlagMethod: +class HuggingFaceDatasetJSONSaver(FlaggingCallback): """ - Helper class that contains the flagging options and calls the flagging method. Also - provides visual feedback to the user when flag is clicked. + A FlaggingCallback that saves flagged data to a Hugging Face dataset in JSONL format. + + Each data sample is saved in a different JSONL file, + allowing multiple users to use flagging simultaneously. + Saving to a single CSV would cause errors as only one user can edit at the same time. + """ def __init__( self, - flagging_callback: FlaggingCallback, - label: str, - value: str, - visual_feedback: bool = True, + hf_foken: str, + dataset_name: str, + organization: Optional[str] = None, + private: bool = False, + verbose: bool = True, ): - self.flagging_callback = flagging_callback - self.label = label - self.value = value - self.__name__ = "Flag" - self.visual_feedback = visual_feedback + """ + Params: + hf_token (str): The token to use to access the huggingface API. + dataset_name (str): The name of the dataset to save the data to, e.g. + "image-classifier-1" + organization (str): The name of the organization to which to attach + the datasets. If None, the dataset attaches to the user only. + private (bool): If the dataset does not already exist, whether it + should be created as a private dataset or public. Private datasets + may require paid huggingface.co accounts + verbose (bool): Whether to print out the status of the dataset + creation. + """ + self.hf_foken = hf_foken + self.dataset_name = dataset_name + self.organization_name = organization + self.dataset_private = private + self.verbose = verbose - def __call__(self, request: gr.Request, *flag_data): + def setup(self, components: List[IOComponent], flagging_dir: str): + """ + Params: + components List[Component]: list of components for flagging + flagging_dir (str): local directory where the dataset is cloned, + updated, and pushed from. + """ try: - self.flagging_callback.flag( - list(flag_data), flag_option=self.value, username=request.username + import huggingface_hub + except (ImportError, ModuleNotFoundError): + raise ImportError( + "Package `huggingface_hub` not found is needed " + "for HuggingFaceDatasetJSONSaver. Try 'pip install huggingface_hub'." ) - except Exception as e: - print(f"Error while flagging: {e}") - if self.visual_feedback: - return "Error!" - if not self.visual_feedback: - return - time.sleep(0.8) # to provide enough time for the user to observe button change - return self.reset() - - def reset(self): - return gr.Button(value=self.label, interactive=True) + path_to_dataset_repo = huggingface_hub.create_repo( + name=self.dataset_name, + token=self.hf_foken, + private=self.dataset_private, + repo_type="dataset", + exist_ok=True, + ) + self.path_to_dataset_repo = path_to_dataset_repo # e.g. "https://huggingface.co/datasets/abidlabs/test-audio-10" + self.components = components + self.flagging_dir = flagging_dir + self.dataset_dir = os.path.join(flagging_dir, self.dataset_name) + self.repo = huggingface_hub.Repository( + local_dir=self.dataset_dir, + clone_from=path_to_dataset_repo, + use_auth_token=self.hf_foken, + ) + self.repo.git_pull(lfs=True) + + self.infos_file = os.path.join(self.dataset_dir, "dataset_infos.json") + + def flag( + self, + flag_data: List[Any], + flag_option: Optional[str] = None, + flag_index: Optional[int] = None, + username: Optional[str] = None, + ) -> int: + self.repo.git_pull(lfs=True) + + # Generate unique folder for the flagged sample + unique_name = self.get_unique_name() # unique name for folder + folder_name = os.path.join( + self.dataset_dir, unique_name + ) # unique folder for specific example + os.makedirs(folder_name) + + # Now uses the existence of `dataset_infos.json` to determine if new + is_new = not os.path.exists(self.infos_file) + + # File previews for certain input and output types + infos, file_preview_types, _ = _get_dataset_features_info( + is_new, self.components + ) + + # Generate the row and header corresponding to the flagged sample + csv_data = [] + headers = [] + + for component, sample in zip(self.components, flag_data): + headers.append(component.label) + + try: + filepath = component.save_flagged( + folder_name, component.label, sample, None + ) + except Exception: + # Could not parse 'sample' (mostly) because it was None and `component.save_flagged` + # does not handle None cases. + # for example: Label (line 3109 of components.py raises an error if data is None) + filepath = None + + if isinstance(component, tuple(file_preview_types)): + headers.append(component.label + " file") + + csv_data.append( + "{}/resolve/main/{}/{}".format( + self.path_to_dataset_repo, unique_name, filepath + ) + if filepath is not None + else None + ) + + csv_data.append(filepath) + headers.append("flag") + csv_data.append(flag_option if flag_option is not None else "") + + # Creates metadata dict from row data and dumps it + metadata_dict = { + header: _csv_data for header, _csv_data in zip(headers, csv_data) + } + self.dump_json(metadata_dict, os.path.join(folder_name, "metadata.jsonl")) + + if is_new: + json.dump(infos, open(self.infos_file, "w")) + + self.repo.push_to_hub(commit_message="Flagged sample {}".format(unique_name)) + return unique_name + + def get_unique_name(self): + id = uuid.uuid4() + return str(id) + + def dump_json(self, thing: dict, file_path: str) -> None: + with open(file_path, "w+", encoding="utf8") as f: + json.dump(thing, f) diff --git a/gtm/lib/python3.12/site-packages/gradio/inputs.py b/gtm/lib/python3.12/site-packages/gradio/inputs.py index 1156da313b9210d6f76612bf71414cfd5aa0786a..184c965593c7242f1f66ae327ddef436597428f4 100644 --- a/gtm/lib/python3.12/site-packages/gradio/inputs.py +++ b/gtm/lib/python3.12/site-packages/gradio/inputs.py @@ -4,1106 +4,378 @@ This module defines various classes that can serve as the `input` to an interfac automatically added to a registry, which allows them to be easily referenced in other parts of the code. """ -import json -import warnings -from gradio.component import Component -import numpy as np -import PIL -import scipy.io.wavfile -from gradio import processing_utils, test_data -import pandas as pd -from ffmpy import FFmpeg -import math -import tempfile -from pathlib import Path - - -class InputComponent(Component): - """ - Input Component. All input components subclass this. - """ - def __init__(self, label, requires_permissions=False): - self.set_interpret_parameters() - super().__init__(label, requires_permissions) - - def preprocess(self, x): - """ - Any preprocessing needed to be performed on function input. - """ - return x - - def preprocess_example(self, x): - """ - Any preprocessing needed to be performed on an example before being passed to the main function. - """ - return x - - def set_interpret_parameters(self): - ''' - Set any parameters for interpretation. - ''' - return self - - def get_interpretation_neighbors(self, x): - ''' - Generates values similar to input to be used to interpret the significance of the input in the final output. - Parameters: - x (Any): Input to interface - Returns: (neighbor_values, interpret_kwargs, interpret_by_removal) - neighbor_values (List[Any]): Neighboring values to input x to compute for interpretation - interpret_kwargs (Dict[Any]): Keyword arguments to be passed to get_interpretation_scores - interpret_by_removal (bool): If True, returned neighbors are values where the interpreted subsection was removed. If False, returned neighbors are values where the interpreted subsection was modified to a different value. - ''' - pass - - def get_interpretation_scores(self, x, neighbors, scores, **kwargs): - ''' - Arrange the output values from the neighbors into interpretation scores for the interface to render. - Parameters: - x (Any): Input to interface - neighbors (List[Any]): Neighboring values to input x used for interpretation. - scores (List[float]): Output value corresponding to each neighbor in neighbors - kwargs (Dict[str, Any]): Any additional arguments passed from get_interpretation_neighbors. - Returns: - (List[Any]): Arrangement of interpretation scores for interfaces to render. - ''' - pass - - def embed(self, x): - """ - Return a default embedding for the *preprocessed* input to the interface. Used to compute similar inputs. - x (Any): Input to interface - Returns: - (List[Float]): An embedding vector as a list or numpy array of floats - """ - pass - -class Textbox(InputComponent): - """ - Component creates a textbox for user to enter input. Provides a string as an argument to the wrapped function. - Input type: str - """ - - def __init__(self, lines=1, placeholder=None, default="", numeric=False, type="str", label=None): - """ - Parameters: - lines (int): number of line rows to provide in textarea. - placeholder (str): placeholder hint to provide behind textarea. - default (str): default text to provide in textarea. - numeric (bool): DEPRECATED. Whether the input should be parsed as a number instead of a string. - type (str): DEPRECATED. Type of value to be returned by component. "str" returns a string, "number" returns a float value. Use Number component in place of number type. - label (str): component name in interface. - """ - self.lines = lines - self.placeholder = placeholder - self.default = default - if numeric or type == "number": - warnings.warn("The 'numeric' type has been deprecated. Use the Number input component instead.", DeprecationWarning) - self.type = "number" - else: - self.type = type - if default == "": - self.test_input = { - "str": "the quick brown fox jumped over the lazy dog", - "number": 786.92, - }[type] - else: - self.test_input = default - self.interpret_by_tokens = True - super().__init__(label) - - def get_template_context(self): - return { - "lines": self.lines, - "placeholder": self.placeholder, - "default": self.default, - **super().get_template_context() - } +from __future__ import annotations - @classmethod - def get_shortcut_implementations(cls): - return { - "text": {}, - "textbox": {"lines": 7}, - } - - def preprocess(self, x): - if self.type == "str": - return x - elif self.type == "number": - return float(x) - else: - raise ValueError("Unknown type: " + str(self.type) + ". Please choose from: 'str', 'number'.") - - def preprocess_example(self, x): - """ - Returns: - (str): Text representing function input - """ - return x - - def set_interpret_parameters(self, separator=" ", replacement=None): - """ - Calculates interpretation score of characters in input by splitting input into tokens, then using a "leave one out" method to calculate the score of each token by removing each token and measuring the delta of the output value. - Parameters: - separator (str): Separator to use to split input into tokens. - replacement (str): In the "leave one out" step, the text that the token should be replaced with. - """ - self.interpretation_separator = separator - self.interpretation_replacement = replacement - return self - - def tokenize(self, x): - """ - Tokenizes an input string by dividing into "words" delimited by self.interpretation_separator - """ - tokens = x.split(self.interpretation_separator) - leave_one_out_strings = [] - for index in range(len(tokens)): - leave_one_out_set = list(tokens) - if self.interpretation_replacement is None: - leave_one_out_set.pop(index) - else: - leave_one_out_set[index] = self.interpretation_replacement - leave_one_out_strings.append(self.interpretation_separator.join(leave_one_out_set)) - return tokens, leave_one_out_strings, None - - def get_masked_inputs(self, tokens, binary_mask_matrix): - """ - Constructs partially-masked sentences for SHAP interpretation - """ - masked_inputs = [] - for binary_mask_vector in binary_mask_matrix: - masked_input = np.array(tokens)[np.array(binary_mask_vector, dtype=bool)] - masked_inputs.append(self.interpretation_separator.join(masked_input)) - return masked_inputs - - def get_interpretation_scores(self, x, neighbors, scores, tokens, masks=None): - """ - Returns: - (List[Tuple[str, float]]): Each tuple set represents a set of characters and their corresponding interpretation score. - """ - result = [] - for token, score in zip(tokens, scores): - result.append((token, score)) - result.append((self.interpretation_separator, 0)) - return result - - def _embed_text(self, text): - """ - Figures out a "reasonable" embedding for any particular text. Did it this way to avoid loading any - external machine learning models, which would be slow and require additional dependencies. - """ - top_english_words = ['find', 'new', 'work', 'part', 'take', 'get', 'place', 'made', 'live', 'where', 'after', 'back', 'little', 'only', 'round', 'man', 'year', 'came', 'show', 'every', 'good', 'me', 'give', 'our', 'under', 'name', 'very', 'through', 'just', 'form', 'sentence', 'great', 'think', 'say', 'help', 'low', 'line', 'differ', 'turn', 'cause', 'much', 'mean', 'before', 'move', 'right', 'boy', 'old', 'too', 'same', 'tell', 'does', 'set', 'three', 'want', 'air', 'well', 'also', 'play', 'small', 'end', 'put', 'home', 'read', 'hand', 'port', 'large', 'spell', 'add', 'even', 'land', 'here', 'must', 'big', 'high', 'such', 'follow', 'act', 'why', 'ask', 'men', 'change', 'went', 'light', 'kind', 'off', 'need', 'house', 'picture', 'try', 'us', 'again', 'animal', 'point', 'mother', 'world', 'near', 'build', 'self', 'earth', 'father', 'head', 'stand', 'own', 'page', 'should', 'country', 'found', 'answer', 'school', 'grow', 'study', 'still', 'learn', 'plant', 'cover', 'food', 'sun', 'four', 'between', 'state', 'keep', 'eye', 'never', 'last', 'let', 'thought', 'city', 'tree', 'cross', 'farm', 'hard', 'start', 'might', 'story', 'saw', 'far', 'sea', 'draw', 'left', 'late', 'run', 'don\'t', 'while', 'press', 'close', 'night', 'real', 'life', 'few', 'north', 'open', 'seem', 'together', 'next', 'white', 'children', 'begin', 'got', 'walk', 'example', 'ease', 'paper', 'group', 'always', 'music', 'those', 'both', 'mark', 'often', 'letter', 'until', 'mile', 'river', 'car', 'feet', 'care', 'second', 'book', 'carry', 'took', 'science', 'eat', 'room', 'friend', 'began', 'idea', 'fish', 'mountain', 'stop', 'once', 'base', 'hear', 'horse', 'cut', 'sure', 'watch', 'color', 'face', 'wood', 'main', 'enough', 'plain', 'girl', 'usual', 'young', 'ready', 'above', 'ever', 'red', 'list', 'though', 'feel', 'talk', 'bird', 'soon', 'body', 'dog', 'family', 'direct', 'pose', 'leave', 'song', 'measure', 'door', 'product', 'black', 'short', 'numeral', 'class', 'wind', 'question', 'happen', 'complete', 'ship', 'area', 'half', 'rock', 'order', 'fire', 'south', 'problem', 'piece', 'told', 'knew', 'pass', 'since', 'top', 'whole', 'king', 'space', 'heard', 'best', 'hour', 'better', 'true', 'during', 'hundred', 'five', 'remember', 'step', 'early', 'hold', 'west', 'ground', 'interest', 'reach', 'fast', 'verb', 'sing', 'listen', 'six', 'table', 'travel', 'less', 'morning', 'ten', 'simple', 'several', 'vowel', 'toward', 'war', 'lay', 'against', 'pattern', 'slow', 'center', 'love', 'person', 'money', 'serve', 'appear', 'road', 'map', 'rain', 'rule', 'govern', 'pull', 'cold', 'notice', 'voice', 'unit', 'power', 'town', 'fine', 'certain', 'fly', 'fall', 'lead', 'cry', 'dark', 'machine', 'note', 'wait', 'plan', 'figure', 'star', 'box', 'noun', 'field', 'rest', 'correct', 'able', 'pound', 'done', 'beauty', 'drive', 'stood', 'contain', 'front', 'teach', 'week', 'final', 'gave', 'green', 'oh', 'quick', 'develop', 'ocean', 'warm', 'free', 'minute', 'strong', 'special', 'mind', 'behind', 'clear', 'tail', 'produce', 'fact', 'street', 'inch', 'multiply', 'nothing', 'course', 'stay', 'wheel', 'full', 'force', 'blue', 'object', 'decide', 'surface', 'deep', 'moon', 'island', 'foot', 'system', 'busy', 'test', 'record', 'boat', 'common', 'gold', 'possible', 'plane', 'stead', 'dry', 'wonder', 'laugh', 'thousand', 'ago', 'ran', 'check', 'game', 'shape', 'equate', 'hot', 'miss', 'brought', 'heat', 'snow', 'tire', 'bring', 'yes', 'distant', 'fill', 'east', 'paint', 'language', 'among', 'grand', 'ball', 'yet', 'wave', 'drop', 'heart', 'am', 'present', 'heavy', 'dance', 'engine', 'position', 'arm', 'wide', 'sail', 'material', 'size', 'vary', 'settle', 'speak', 'weight', 'general', 'ice', 'matter', 'circle', 'pair', 'include', 'divide', 'syllable', 'felt', 'perhaps', 'pick', 'sudden', 'count', 'square', 'reason', 'length', 'represent', 'art', 'subject', 'region', 'energy', 'hunt', 'probable', 'bed', 'brother', 'egg', 'ride', 'cell', 'believe', 'fraction', 'forest', 'sit', 'race', 'window', 'store', 'summer', 'train', 'sleep', 'prove', 'lone', 'leg', 'exercise', 'wall', 'catch', 'mount', 'wish', 'sky', 'board', 'joy', 'winter', 'sat', 'written', 'wild', 'instrument', 'kept', 'glass', 'grass', 'cow', 'job', 'edge', 'sign', 'visit', 'past', 'soft', 'fun', 'bright', 'gas', 'weather', 'month', 'million', 'bear', 'finish', 'happy', 'hope', 'flower', 'clothe', 'strange', 'gone', 'jump', 'baby', 'eight', 'village', 'meet', 'root', 'buy', 'raise', 'solve', 'metal', 'whether', 'push', 'seven', 'paragraph', 'third', 'shall', 'held', 'hair', 'describe', 'cook', 'floor', 'either', 'result', 'burn', 'hill', 'safe', 'cat', 'century', 'consider', 'type', 'law', 'bit', 'coast', 'copy', 'phrase', 'silent', 'tall', 'sand', 'soil', 'roll', 'temperature', 'finger', 'industry', 'value', 'fight', 'lie', 'beat', 'excite', 'natural', 'view', 'sense', 'ear', 'else', 'quite', 'broke', 'case', 'middle', 'kill', 'son', 'lake', 'moment', 'scale', 'loud', 'spring', 'observe', 'child', 'straight', 'consonant', 'nation', 'dictionary', 'milk', 'speed', 'method', 'organ', 'pay', 'age', 'section', 'dress', 'cloud', 'surprise', 'quiet', 'stone', 'tiny', 'climb', 'cool', 'design', 'poor', 'lot', 'experiment', 'bottom', 'key', 'iron', 'single', 'stick', 'flat', 'twenty', 'skin', 'smile', 'crease', 'hole', 'trade', 'melody', 'trip', 'office', 'receive', 'row', 'mouth', 'exact', 'symbol', 'die', 'least', 'trouble', 'shout', 'except', 'wrote', 'seed', 'tone', 'join', 'suggest', 'clean', 'break', 'lady', 'yard', 'rise', 'bad', 'blow', 'oil', 'blood', 'touch', 'grew', 'cent', 'mix', 'team', 'wire', 'cost', 'lost', 'brown', 'wear', 'garden', 'equal', 'sent', 'choose', 'fell', 'fit', 'flow', 'fair', 'bank', 'collect', 'save', 'control', 'decimal', 'gentle', 'woman', 'captain', 'practice', 'separate', 'difficult', 'doctor', 'please', 'protect', 'noon', 'whose', 'locate', 'ring', 'character', 'insect', 'caught', 'period', 'indicate', 'radio', 'spoke', 'atom', 'human', 'history', 'effect', 'electric', 'expect', 'crop', 'modern', 'element', 'hit', 'student', 'corner', 'party', 'supply', 'bone', 'rail', 'imagine', 'provide', 'agree', 'thus', 'capital', 'won\'t', 'chair', 'danger', 'fruit', 'rich', 'thick', 'soldier', 'process', 'operate', 'guess', 'necessary', 'sharp', 'wing', 'create', 'neighbor', 'wash', 'bat', 'rather', 'crowd', 'corn', 'compare', 'poem', 'string', 'bell', 'depend', 'meat', 'rub', 'tube', 'famous', 'dollar', 'stream', 'fear', 'sight', 'thin', 'triangle', 'planet', 'hurry', 'chief', 'colony', 'clock', 'mine', 'tie', 'enter', 'major', 'fresh', 'search', 'send', 'yellow', 'gun', 'allow', 'print', 'dead', 'spot', 'desert', 'suit', 'current', 'lift', 'rose', 'continue', 'block', 'chart', 'hat', 'sell', 'success', 'company', 'subtract', 'event', 'particular', 'deal', 'swim', 'term', 'opposite', 'wife', 'shoe', 'shoulder', 'spread', 'arrange', 'camp', 'invent', 'cotton', 'born', 'determine', 'quart', 'nine', 'truck', 'noise', 'level', 'chance', 'gather', 'shop', 'stretch', 'throw', 'shine', 'property', 'column', 'molecule', 'select', 'wrong', 'gray', 'repeat', 'require', 'broad', 'prepare', 'salt', 'nose', 'plural', 'anger', 'claim', 'continent', 'oxygen', 'sugar', 'death', 'pretty', 'skill', 'women', 'season', 'solution', 'magnet', 'silver', 'thank', 'branch', 'match', 'suffix', 'especially', 'fig', 'afraid', 'huge', 'sister', 'steel', 'discuss', 'forward', 'similar', 'guide', 'experience', 'score', 'apple', 'bought', 'led', 'pitch', 'coat', 'mass', 'card', 'band', 'rope', 'slip', 'win', 'dream', 'evening', 'condition', 'feed', 'tool', 'total', 'basic', 'smell', 'valley', 'nor', 'double', 'seat', 'arrive', 'master', 'track', 'parent', 'shore', 'division', 'sheet', 'substance', 'favor', 'connect', 'post', 'spend', 'chord', 'fat', 'glad', 'original', 'share', 'station', 'dad', 'bread', 'charge', 'proper', 'bar', 'offer', 'segment', 'slave', 'duck', 'instant', 'market', 'degree', 'populate', 'chick', 'dear', 'enemy', 'reply', 'drink', 'occur', 'support', 'speech', 'nature', 'range', 'steam', 'motion', 'path', 'liquid', 'log', 'meant', 'quotient', 'teeth', 'shell', 'neck'] - words = text.split(' ') - return np.array([w in words for w in top_english_words]) - - def embed(self, x): - """ - Embeds an arbitrary text based on word frequency - """ - if self.type == "str": - return self._embed_text(x) - elif self.type == "number": - return [float(x)] - else: - raise ValueError("Unknown type: " + str(self.type) + ". Please choose from: 'str', 'number'.") - - -class Number(InputComponent): +import warnings +from typing import Any, List, Optional, Tuple + +from gradio import components + + +class Textbox(components.Textbox): + def __init__( + self, + lines: int = 1, + placeholder: Optional[str] = None, + default: str = "", + numeric: Optional[bool] = False, + type: Optional[str] = "text", + label: Optional[str] = None, + optional: bool = False, + ): + warnings.warn( + "Usage of gradio.inputs is deprecated, and will not be supported in the future, please import your component from gradio.components", + ) + super().__init__( + value=default, + lines=lines, + placeholder=placeholder, + label=label, + numeric=numeric, + type=type, + optional=optional, + ) + + +class Number(components.Number): """ - Component creates a field for user to enter numeric input. Provides a nuber as an argument to the wrapped function. + Component creates a field for user to enter numeric input. Provides a number as an argument to the wrapped function. Input type: float """ - def __init__(self, default=None, label=None): - ''' + def __init__( + self, + default: Optional[float] = None, + label: Optional[str] = None, + optional: bool = False, + ): + """ Parameters: default (float): default value. label (str): component name in interface. - ''' - self.default = default - self.test_input = default if default is not None else 1 - self.interpret_by_tokens = False - super().__init__(label) - - def get_template_context(self): - return { - "default": self.default, - **super().get_template_context() - } - - @classmethod - def get_shortcut_implementations(cls): - return { - "number": {}, - } - - def preprocess(self, x): - """ - Returns: - (float): Number representing function input - """ - return float(x) - - def preprocess_example(self, x): - """ - Returns: - (float): Number representing function input - """ - return x - - def set_interpret_parameters(self, steps=3, delta=1, delta_type="percent"): + optional (bool): If True, the interface can be submitted with no value for this component. """ - Calculates interpretation scores of numeric values close to the input number. - Parameters: - steps (int): Number of nearby values to measure in each direction (above and below the input number). - delta (float): Size of step in each direction between nearby values. - delta_type (str): "percent" if delta step between nearby values should be a calculated as a percent, or "absolute" if delta should be a constant step change. - """ - self.interpretation_steps = steps - self.interpretation_delta = delta - self.interpretation_delta_type = delta_type - return self - - def get_interpretation_neighbors(self, x): - x = float(x) - neighbors = [] - if self.interpretation_delta_type == "percent": - delta = 1.0 * self.interpretation_delta * x / 100 - elif self.interpretation_delta_type == "absolute": - delta = self.interpretation_delta - negatives = (x + np.arange(-self.interpretation_steps, 0) * delta).tolist() - positives = (x + np.arange(1, self.interpretation_steps+1) * delta).tolist() - return negatives + positives, {} + warnings.warn( + "Usage of gradio.inputs is deprecated, and will not be supported in the future, please import your component from gradio.components", + ) + super().__init__(value=default, label=label, optional=optional) - def get_interpretation_scores(self, x, neighbors, scores): - """ - Returns: - (List[Tuple[float, float]]): Each tuple set represents a numeric value near the input and its corresponding interpretation score. - """ - interpretation = list(zip(neighbors, scores)) - interpretation.insert(int(len(interpretation) / 2), [x, None]) - return interpretation - def embed(self, x): - return [float(x)] - - -class Slider(InputComponent): +class Slider(components.Slider): """ - Component creates a slider that ranges from `minimum` to `maximum`. Provides a number as an argument to the wrapped function. + Component creates a slider that ranges from `minimum` to `maximum`. Provides number as an argument to the wrapped function. Input type: float """ - def __init__(self, minimum=0, maximum=100, step=None, default=None, label=None): - ''' + def __init__( + self, + minimum: float = 0, + maximum: float = 100, + step: Optional[float] = None, + default: Optional[float] = None, + label: Optional[str] = None, + optional: bool = False, + ): + """ Parameters: minimum (float): minimum value for slider. maximum (float): maximum value for slider. step (float): increment between slider values. default (float): default value. label (str): component name in interface. - ''' - self.minimum = minimum - self.maximum = maximum - if step is None: - difference = maximum - minimum - power = math.floor(math.log10(difference) - 2) - step = 10 ** power - self.step = step - self.default = minimum if default is None else default - self.test_input = self.default - self.interpret_by_tokens = False - super().__init__(label) - - def get_template_context(self): - return { - "minimum": self.minimum, - "maximum": self.maximum, - "step": self.step, - "default": self.default, - **super().get_template_context() - } - - @classmethod - def get_shortcut_implementations(cls): - return { - "slider": {}, - } - - def preprocess_example(self, x): - """ - Returns: - (float): Number representing function input - """ - return x - - def set_interpret_parameters(self, steps=8): - """ - Calculates interpretation scores of numeric values ranging between the minimum and maximum values of the slider. - Parameters: - steps (int): Number of neighboring values to measure between the minimum and maximum values of the slider range. + optional (bool): this parameter is ignored. """ - self.interpretation_steps = steps - return self - - def get_interpretation_neighbors(self, x): - return np.linspace(self.minimum, self.maximum, self.interpretation_steps).tolist(), {} + warnings.warn( + "Usage of gradio.inputs is deprecated, and will not be supported in the future, please import your component from gradio.components", + ) - def get_interpretation_scores(self, x, neighbors, scores): - """ - Returns: - (List[float]): Each value represents the score corresponding to an evenly spaced range of inputs between the minimum and maximum slider values. - """ - return scores + super().__init__( + value=default, + minimum=minimum, + maximum=maximum, + step=step, + label=label, + optional=optional, + ) - def embed(self, x): - return [float(x)] - - -class Checkbox(InputComponent): +class Checkbox(components.Checkbox): """ Component creates a checkbox that can be set to `True` or `False`. Provides a boolean as an argument to the wrapped function. Input type: bool """ - def __init__(self, default=False, label=None): + def __init__( + self, + default: bool = False, + label: Optional[str] = None, + optional: bool = False, + ): """ Parameters: label (str): component name in interface. - default (bool): default value. + default (bool): if True, checked by default. + optional (bool): this parameter is ignored. """ - self.test_input = True - self.default = default - self.interpret_by_tokens = False - super().__init__(label) - - def get_template_context(self): - return { - "default": self.default, - **super().get_template_context() - } + warnings.warn( + "Usage of gradio.inputs is deprecated, and will not be supported in the future, please import your component from gradio.components", + ) + super().__init__(value=default, label=label, optional=optional) - @classmethod - def get_shortcut_implementations(cls): - return { - "checkbox": {}, - } - def preprocess_example(self, x): - """ - Returns: - (bool): Boolean representing function input - """ - return x - - def set_interpret_parameters(self): - """ - Calculates interpretation score of the input by comparing the output against the output when the input is the inverse boolean value of x. - """ - return self - - def get_interpretation_neighbors(self, x): - return [not x], {} - - def get_interpretation_scores(self, x, neighbors, scores): - """ - Returns: - (Tuple[float, float]): The first value represents the interpretation score if the input is False, and the second if the input is True. - """ - if x: - return scores[0], None - else: - return None, scores[0] - - def embed(self, x): - return [float(x)] - - - -class CheckboxGroup(InputComponent): +class CheckboxGroup(components.CheckboxGroup): """ Component creates a set of checkboxes of which a subset can be selected. Provides a list of strings representing the selected choices as an argument to the wrapped function. Input type: Union[List[str], List[int]] """ - def __init__(self, choices, default=[], type="value", label=None): - ''' + def __init__( + self, + choices: List[str], + default: List[str] = [], + type: str = "value", + label: Optional[str] = None, + optional: bool = False, + ): + """ Parameters: choices (List[str]): list of options to select from. default (List[str]): default selected list of options. type (str): Type of value to be returned by component. "value" returns the list of strings of the choices selected, "index" returns the list of indicies of the choices selected. label (str): component name in interface. - ''' - self.choices = choices - self.default = default - self.type = type - self.test_input = self.choices - self.interpret_by_tokens = False - super().__init__(label) - - def get_template_context(self): - return { - "choices": self.choices, - "default": self.default, - **super().get_template_context() - } - - def preprocess(self, x): - if self.type == "value": - return x - elif self.type == "index": - return [self.choices.index(choice) for choice in x] - else: - raise ValueError("Unknown type: " + str(self.type) + ". Please choose from: 'value', 'index'.") - - def set_interpret_parameters(self): - """ - Calculates interpretation score of each choice in the input by comparing the output against the outputs when each choice in the input is independently either removed or added. - """ - return self - - def get_interpretation_neighbors(self, x): - leave_one_out_sets = [] - for choice in self.choices: - leave_one_out_set = list(x) - if choice in leave_one_out_set: - leave_one_out_set.remove(choice) - else: - leave_one_out_set.append(choice) - leave_one_out_sets.append(leave_one_out_set) - return leave_one_out_sets, {} - - def get_interpretation_scores(self, x, neighbors, scores): - """ - Returns: - (List[Tuple[float, float]]): For each tuple in the list, the first value represents the interpretation score if the input is False, and the second if the input is True. + optional (bool): this parameter is ignored. """ - final_scores = [] - for choice, score in zip(self.choices, scores): - if choice in x: - score_set = [score, None] - else: - score_set = [None, score] - final_scores.append(score_set) - return final_scores + warnings.warn( + "Usage of gradio.inputs is deprecated, and will not be supported in the future, please import your component from gradio.components", + ) + super().__init__( + value=default, + choices=choices, + type=type, + label=label, + optional=optional, + ) - def embed(self, x): - if self.type == "value": - return [float(choice in x) for choice in self.choices] - elif self.type == "index": - return [float(index in x) for index in range(len(self.choices))] - else: - raise ValueError("Unknown type: " + str(self.type) + ". Please choose from: 'value', 'index'.") - def save_flagged(self, dir, label, data, encryption_key): - """ - Returns: (List[str]]) - """ - return json.dumps(data) - - def restore_flagged(self, data): - return json.loads(data) - - -class Radio(InputComponent): +class Radio(components.Radio): """ Component creates a set of radio buttons of which only one can be selected. Provides string representing selected choice as an argument to the wrapped function. Input type: Union[str, int] """ - def __init__(self, choices, type="value", default=None, label=None): - ''' + def __init__( + self, + choices: List[str], + type: str = "value", + default: Optional[str] = None, + label: Optional[str] = None, + optional: bool = False, + ): + """ Parameters: choices (List[str]): list of options to select from. type (str): Type of value to be returned by component. "value" returns the string of the choice selected, "index" returns the index of the choice selected. - default (str): default value. + default (str): the button selected by default. If None, no button is selected by default. label (str): component name in interface. - ''' - self.choices = choices - self.type = type - self.test_input = self.choices[0] - self.default = default if default is not None else self.choices[0] - self.interpret_by_tokens = False - super().__init__(label) - - def get_template_context(self): - return { - "choices": self.choices, - "default": self.default, - **super().get_template_context() - } - - def preprocess(self, x): - if self.type == "value": - return x - elif self.type == "index": - return self.choices.index(x) - else: - raise ValueError("Unknown type: " + str(self.type) + ". Please choose from: 'value', 'index'.") - - def set_interpret_parameters(self): - """ - Calculates interpretation score of each choice by comparing the output against each of the outputs when alternative choices are selected. - """ - return self - - def get_interpretation_neighbors(self, x): - choices = list(self.choices) - choices.remove(x) - return choices, {} - - def get_interpretation_scores(self, x, neighbors, scores): + optional (bool): this parameter is ignored. """ - Returns: - (List[float]): Each value represents the interpretation score corresponding to each choice. - """ - scores.insert(self.choices.index(x), None) - return scores - - def embed(self, x): - if self.type == "value": - return [float(choice==x) for choice in self.choices] - elif self.type == "index": - return [float(index==x) for index in range(len(self.choices))] - else: - raise ValueError("Unknown type: " + str(self.type) + ". Please choose from: 'value', 'index'.") + warnings.warn( + "Usage of gradio.inputs is deprecated, and will not be supported in the future, please import your component from gradio.components", + ) + super().__init__( + choices=choices, + type=type, + value=default, + label=label, + optional=optional, + ) -class Dropdown(InputComponent): +class Dropdown(components.Dropdown): """ Component creates a dropdown of which only one can be selected. Provides string representing selected choice as an argument to the wrapped function. Input type: Union[str, int] """ - def __init__(self, choices, type="value", default=None, label=None): - ''' + def __init__( + self, + choices: List[str], + type: str = "value", + default: Optional[str] = None, + label: Optional[str] = None, + optional: bool = False, + ): + """ Parameters: choices (List[str]): list of options to select from. type (str): Type of value to be returned by component. "value" returns the string of the choice selected, "index" returns the index of the choice selected. - default (str): default value. + default (str): default value selected in dropdown. If None, no value is selected by default. label (str): component name in interface. - ''' - self.choices = choices - self.type = type - self.test_input = self.choices[0] - self.default = default if default is not None else self.choices[0] - self.interpret_by_tokens = False - super().__init__(label) - - def get_template_context(self): - return { - "choices": self.choices, - "default": self.default, - **super().get_template_context() - } - - def preprocess(self, x): - if self.type == "value": - return x - elif self.type == "index": - return self.choices.index(x) - else: - raise ValueError("Unknown type: " + str(self.type) + ". Please choose from: 'value', 'index'.") - - def set_interpret_parameters(self): - """ - Calculates interpretation score of each choice by comparing the output against each of the outputs when alternative choices are selected. + optional (bool): this parameter is ignored. """ - return self + warnings.warn( + "Usage of gradio.inputs is deprecated, and will not be supported in the future, please import your component from gradio.components", + ) + super().__init__( + choices=choices, + type=type, + value=default, + label=label, + optional=optional, + ) - def get_interpretation_neighbors(self, x): - choices = list(self.choices) - choices.remove(x) - return choices, {} - def get_interpretation_scores(self, x, neighbors, scores): - """ - Returns: - (List[float]): Each value represents the interpretation score corresponding to each choice. - """ - scores.insert(self.choices.index(x), None) - return scores - - def embed(self, x): - if self.type == "value": - return [float(choice==x) for choice in self.choices] - elif self.type == "index": - return [float(index==x) for index in range(len(self.choices))] - else: - raise ValueError("Unknown type: " + str(self.type) + ". Please choose from: 'value', 'index'.") - - -class Image(InputComponent): +class Image(components.Image): """ - Component creates an image upload box with editing capabilities. + Component creates an image upload box with editing capabilities. Input type: Union[numpy.array, PIL.Image, file-object] """ - def __init__(self, shape=None, image_mode='RGB', invert_colors=False, source="upload", tool="editor", type="numpy", label=None, optional=False): - ''' + def __init__( + self, + shape: Tuple[int, int] = None, + image_mode: str = "RGB", + invert_colors: bool = False, + source: str = "upload", + tool: str = "editor", + type: str = "numpy", + label: str = None, + optional: bool = False, + ): + """ Parameters: shape (Tuple[int, int]): (width, height) shape to crop and resize image to; if None, matches input image size. - image_mode (str): "RGB" if color, or "L" if black and white. + image_mode (str): How to process the uploaded image. Accepts any of the PIL image modes, e.g. "RGB" for color images, "RGBA" to include the transparency mask, "L" for black-and-white images. invert_colors (bool): whether to invert the image as a preprocessing step. source (str): Source of image. "upload" creates a box where user can drop an image file, "webcam" allows user to take snapshot from their webcam, "canvas" defaults to a white image that can be edited and drawn upon with tools. tool (str): Tools used for editing. "editor" allows a full screen editor, "select" provides a cropping and zoom tool. - type (str): Type of value to be returned by component. "numpy" returns a numpy array with shape (width, height, 3) and values from 0 to 255, "pil" returns a PIL image object, "file" returns a temporary file object whose path can be retrieved by file_obj.name. + type (str): Type of value to be returned by component. "numpy" returns a numpy array with shape (width, height, 3) and values from 0 to 255, "pil" returns a PIL image object, "file" returns a temporary file object whose path can be retrieved by file_obj.name, "filepath" returns the path directly. label (str): component name in interface. optional (bool): If True, the interface can be submitted with no uploaded image, in which case the input value is None. - ''' - self.shape = shape - self.image_mode = image_mode - self.source = source - requires_permissions = source == "webcam" - self.tool = tool - self.type = type - self.optional = optional - self.invert_colors = invert_colors - self.test_input = test_data.BASE64_IMAGE - self.interpret_by_tokens = True - super().__init__(label, requires_permissions) - - @classmethod - def get_shortcut_implementations(cls): - return { - "image": {}, - "webcam": {"source": "webcam"}, - "sketchpad": {"image_mode": "L", "source": "canvas", "shape": (28, 28), "invert_colors": True}, - } - - def get_template_context(self): - return { - "image_mode": self.image_mode, - "shape": self.shape, - "source": self.source, - "tool": self.tool, - "optional": self.optional, - **super().get_template_context() - } - - def preprocess(self, x): - if x is None: - return x - im = processing_utils.decode_base64_to_image(x) - fmt = im.format - with warnings.catch_warnings(): - warnings.simplefilter("ignore") - im = im.convert(self.image_mode) - if self.shape is not None: - im = processing_utils.resize_and_crop(im, self.shape) - if self.invert_colors: - im = PIL.ImageOps.invert(im) - if self.type == "pil": - return im - elif self.type == "numpy": - return np.array(im) - elif self.type == "file": - file_obj = tempfile.NamedTemporaryFile(delete=False, suffix=("."+fmt.lower() if fmt is not None else ".png")) - im.save(file_obj.name) - return file_obj - else: - raise ValueError("Unknown type: " + str(self.type) + ". Please choose from: 'numpy', 'pil', 'file'.") - - def preprocess_example(self, x): - return processing_utils.encode_file_to_base64(x) - - def set_interpret_parameters(self, segments=16): """ - Calculates interpretation score of image subsections by splitting the image into subsections, then using a "leave one out" method to calculate the score of each subsection by whiting out the subsection and measuring the delta of the output value. - Parameters: - segments (int): Number of interpretation segments to split image into. - """ - self.interpretation_segments = segments - return self - - def _segment_by_slic(self, x): - """ - Helper method that segments an image into superpixels using slic. - Parameters: - x: base64 representation of an image - """ - x = processing_utils.decode_base64_to_image(x) - if self.shape is not None: - x = processing_utils.resize_and_crop(x, self.shape) - resized_and_cropped_image = np.array(x) - try: - from skimage.segmentation import slic - except (ImportError, ModuleNotFoundError): - raise ValueError("Error: running this interpretation for images requires scikit-image, please install it first.") - try: - segments_slic = slic( - resized_and_cropped_image, self.interpretation_segments, compactness=10, - sigma=1, start_label=1) - except TypeError: # For skimage 0.16 and older - segments_slic = slic( - resized_and_cropped_image, self.interpretation_segments, compactness=10, - sigma=1) - return segments_slic, resized_and_cropped_image - - def tokenize(self, x): - """ - Segments image into tokens, masks, and leave-one-out-tokens - Parameters: - x: base64 representation of an image - Returns: - tokens: list of tokens, used by the get_masked_input() method - leave_one_out_tokens: list of left-out tokens, used by the get_interpretation_neighbors() method - masks: list of masks, used by the get_interpretation_neighbors() method - """ - segments_slic, resized_and_cropped_image = self._segment_by_slic(x) - tokens, masks, leave_one_out_tokens = [], [], [] - replace_color = np.mean(resized_and_cropped_image, axis=(0, 1)) - for (i, segment_value) in enumerate(np.unique(segments_slic)): - mask = (segments_slic == segment_value) - image_screen = np.copy(resized_and_cropped_image) - image_screen[segments_slic == segment_value] = replace_color - leave_one_out_tokens.append( - processing_utils.encode_array_to_base64(image_screen)) - token = np.copy(resized_and_cropped_image) - token[segments_slic != segment_value] = 0 - tokens.append(token) - masks.append(mask) - return tokens, leave_one_out_tokens, masks - - def get_masked_inputs(self, tokens, binary_mask_matrix): - masked_inputs = [] - for binary_mask_vector in binary_mask_matrix: - masked_input = np.zeros_like(tokens[0], dtype=int) - for token, b in zip(tokens, binary_mask_vector): - masked_input = masked_input + token*int(b) - masked_inputs.append(processing_utils.encode_array_to_base64(masked_input)) - return masked_inputs - - def get_interpretation_scores(self, x, neighbors, scores, masks, tokens=None): - """ - Returns: - (List[List[float]]): A 2D array representing the interpretation score of each pixel of the image. - """ - x = processing_utils.decode_base64_to_image(x) - if self.shape is not None: - x = processing_utils.resize_and_crop(x, self.shape) - x = np.array(x) - output_scores = np.zeros((x.shape[0], x.shape[1])) - - for score, mask in zip(scores, masks): - output_scores += score * mask - - max_val, min_val = np.max(output_scores), np.min(output_scores) - if max_val > 0: - output_scores = (output_scores - min_val) / (max_val - min_val) - return output_scores.tolist() - - def embed(self, x): - shape = (100, 100) if self.shape is None else self.shape - if self.type == "pil": - im = x - elif self.type == "numpy": - im = PIL.Image.fromarray(x) - elif self.type == "file": - im = PIL.Image.open(x) - else: - raise ValueError("Unknown type: " + str(self.type) + ". Please choose from: 'numpy', 'pil', 'file'.") - im = processing_utils.resize_and_crop(im, (shape[0], shape[1])) - return np.asarray(im).flatten() - - def save_flagged(self, dir, label, data, encryption_key): - """ - Returns: (str) path to image file - """ - return self.save_flagged_file(dir, label, data, encryption_key) - - -class Video(InputComponent): + warnings.warn( + "Usage of gradio.inputs is deprecated, and will not be supported in the future, please import your component from gradio.components", + ) + super().__init__( + shape=shape, + image_mode=image_mode, + invert_colors=invert_colors, + source=source, + tool=tool, + type=type, + label=label, + optional=optional, + ) + + +class Video(components.Video): """ Component creates a video file upload that is converted to a file path. + Input type: filepath """ - def __init__(self, type="avi", label=None, optional=False): - ''' + def __init__( + self, + type: Optional[str] = None, + source: str = "upload", + label: Optional[str] = None, + optional: bool = False, + ): + """ Parameters: type (str): Type of video format to be returned by component, such as 'avi' or 'mp4'. If set to None, video will keep uploaded format. + source (str): Source of video. "upload" creates a box where user can drop an video file, "webcam" allows user to record a video from their webcam. label (str): component name in interface. optional (bool): If True, the interface can be submitted with no uploaded video, in which case the input value is None. - ''' - self.type = type - self.optional = optional - super().__init__(label) - - @classmethod - def get_shortcut_implementations(cls): - return { - "video": {}, - } - - def get_template_context(self): - return { - "optional": self.optional, - **super().get_template_context() - } - - def preprocess(self, x): - if x is None: - return x - file = processing_utils.decode_base64_to_file(x) - file_name = file.name - uploaded_format = file_name.split(".")[-1].lower() - if self.type is not None and uploaded_format != self.type: - ff = FFmpeg( - inputs={file_name: None}, - outputs={file_name + "." + self.type: None} - ) - file_name += "." + self.type - ff.run() - return file_name - - def preprocess_example(self, x): - return processing_utils.encode_file_to_base64(x) - - def save_flagged(self, dir, label, data, encryption_key): - """ - Returns: (str) path to video file """ - return self.save_flagged_file(dir, label, data, encryption_key) + warnings.warn( + "Usage of gradio.inputs is deprecated, and will not be supported in the future, please import your components from gradio.components", + ) + super().__init__(format=type, source=source, label=label, optional=optional) -class Audio(InputComponent): + +class Audio(components.Audio): """ - Component accepts audio input files. + Component accepts audio input files. Input type: Union[Tuple[int, numpy.array], file-object, numpy.array] """ - def __init__(self, source="upload", type="numpy", label=None, optional=False): + def __init__( + self, + source: str = "upload", + type: str = "numpy", + label: str = None, + optional: bool = False, + ): """ Parameters: source (str): Source of audio. "upload" creates a box where user can drop an audio file, "microphone" creates a microphone input. - type (str): Type of value to be returned by component. "numpy" returns a 2-set tuple with an integer sample_rate and the data numpy.array of shape (samples, 2), "file" returns a temporary file object whose path can be retrieved by file_obj.name, "mfcc" returns the mfcc coefficients of the input audio. + type (str): Type of value to be returned by component. "numpy" returns a 2-set tuple with an integer sample_rate and the data numpy.array of shape (samples, 2), "file" returns a temporary file object whose path can be retrieved by file_obj.name, "filepath" returns the path directly. label (str): component name in interface. optional (bool): If True, the interface can be submitted with no uploaded audio, in which case the input value is None. """ - self.source = source - requires_permissions = source == "microphone" - self.type = type - self.optional = optional - self.test_input = test_data.BASE64_AUDIO - self.interpret_by_tokens = True - super().__init__(label, requires_permissions) - - def get_template_context(self): - return { - "source": self.source, - "optional": self.optional, - **super().get_template_context() - } - - @classmethod - def get_shortcut_implementations(cls): - return { - "audio": {}, - "microphone": {"source": "microphone"} - } - - def preprocess(self, x): - """ - By default, no pre-processing is applied to a microphone input file - """ - if x is None: - return x - file_obj = processing_utils.decode_base64_to_file(x) - if self.type == "file": - return file_obj - elif self.type == "numpy": - return scipy.io.wavfile.read(file_obj.name) - elif self.type == "mfcc": - return processing_utils.generate_mfcc_features_from_audio_file(file_obj.name) - - def preprocess_example(self, x): - return processing_utils.encode_file_to_base64(x, type="audio") - - def set_interpret_parameters(self, segments=8): - """ - Calculates interpretation score of audio subsections by splitting the audio into subsections, then using a "leave one out" method to calculate the score of each subsection by removing the subsection and measuring the delta of the output value. - Parameters: - segments (int): Number of interpretation segments to split audio into. - """ - self.interpretation_segments = segments - return self - - def tokenize(self, x): - file_obj = processing_utils.decode_base64_to_file(x) - x = scipy.io.wavfile.read(file_obj.name) - sample_rate, data = x - leave_one_out_sets = [] - tokens = [] - masks = [] - duration = data.shape[0] - boundaries = np.linspace(0, duration, self.interpretation_segments + 1).tolist() - boundaries = [round(boundary) for boundary in boundaries] - for index in range(len(boundaries) - 1): - start, stop = boundaries[index], boundaries[index + 1] - masks.append((start, stop)) - # Handle the leave one outs - leave_one_out_data = np.copy(data) - leave_one_out_data[start:stop] = 0 - file = tempfile.NamedTemporaryFile(delete=False) - scipy.io.wavfile.write(file, sample_rate, leave_one_out_data) - out_data = processing_utils.encode_file_to_base64(file.name, type="audio", ext="wav") - leave_one_out_sets.append(out_data) - # Handle the tokens - token = np.copy(data) - token[0:start] = 0 - token[stop:] = 0 - file = tempfile.NamedTemporaryFile(delete=False) - scipy.io.wavfile.write(file, sample_rate, token) - token_data = processing_utils.encode_file_to_base64(file.name, type="audio", ext="wav") - tokens.append(token_data) - return tokens, leave_one_out_sets, masks - - def get_masked_inputs(self, tokens, binary_mask_matrix): - # create a "zero input" vector and get sample rate - x = tokens[0] - file_obj = processing_utils.decode_base64_to_file(x) - sample_rate, data = scipy.io.wavfile.read(file_obj.name) - zero_input = np.zeros_like(data, dtype=int) - # decode all of the tokens - token_data = [] - for token in tokens: - file_obj = processing_utils.decode_base64_to_file(token) - _, data = scipy.io.wavfile.read(file_obj.name) - token_data.append(data) - # construct the masked version - masked_inputs = [] - for binary_mask_vector in binary_mask_matrix: - masked_input = np.copy(zero_input) - for t, b in zip(token_data, binary_mask_vector): - masked_input = masked_input + t*int(b) - file = tempfile.NamedTemporaryFile(delete=False) - scipy.io.wavfile.write(file, sample_rate, masked_input) - masked_data = processing_utils.encode_file_to_base64(file.name, type="audio", ext="wav") - masked_inputs.append(masked_data) - return masked_inputs - - def get_interpretation_scores(self, x, neighbors, scores, masks=None, tokens=None): - """ - Returns: - (List[float]): Each value represents the interpretation score corresponding to an evenly spaced subsection of audio. - """ - return list(scores) - - def embed(self, x): - """ - Resamples each audio signal to be 1,000 frames and then returns the flattened vectors - """ - num_frames = 1000 - if self.type == "file": - filename = x.name - mfcc = processing_utils.generate_mfcc_features_from_audio_file(filename, downsample_to=num_frames) - return mfcc.flatten() - elif self.type == "numpy": - sample_rate, signal = x - mfcc = processing_utils.generate_mfcc_features_from_audio_file(wav_filename=None, sample_rate=sample_rate, signal=signal, downsample_to=num_frames) - return mfcc.flatten() - elif self.type == "mfcc": - mfcc = scipy.signal.resample(x, num_frames, axis=1) - return mfcc.flatten() - else: - raise ValueError("Unknown type: " + str(self.type) + ". Please choose from: 'numpy', 'mfcc', 'file'.") - - def save_flagged(self, dir, label, data, encryption_key): - """ - Returns: (str) path to audio file - """ - return self.save_flagged_file(dir, label, data, encryption_key) + warnings.warn( + "Usage of gradio.inputs is deprecated, and will not be supported in the future, please import your components from gradio.components", + ) + super().__init__(source=source, type=type, label=label, optional=optional) -class File(InputComponent): +class File(components.File): """ Component accepts generic file uploads. Input type: Union[file-object, bytes, List[Union[file-object, bytes]]] """ - def __init__(self, file_count="single", type="file", label=None, keep_filename=True, optional=False): - ''' + def __init__( + self, + file_count: str = "single", + type: str = "file", + label: Optional[str] = None, + keep_filename: bool = True, + optional: bool = False, + ): + """ Parameters: file_count (str): if single, allows user to upload one file. If "multiple", user uploads multiple files. If "directory", user uploads all files in selected directory. Return type will be list for each file in case of "multiple" or "directory". type (str): Type of value to be returned by component. "file" returns a temporary file object whose path can be retrieved by file_obj.name, "binary" returns an bytes object. label (str): component name in interface. - keep_filename (bool): whether to keep the original filename in the f.name field upon upload. If true, will place 'originalfilename' + a '_' before the unique temporary safe filename string and extension + keep_filename (bool): DEPRECATED. Original filename always kept. optional (bool): If True, the interface can be submitted with no uploaded image, in which case the input value is None. - ''' - self.file_count = file_count - self.type = type - self.test_input = None - self.keep_filename = keep_filename - self.optional = optional - super().__init__(label) - - def get_template_context(self): - return { - "file_count": self.file_count, - "optional": self.optional, - **super().get_template_context() - } - - @classmethod - def get_shortcut_implementations(cls): - return { - "file": {}, - "files": {"file_count": "multiple"}, - } - - def preprocess(self, x): - if x is None: - return None - def process_single_file(f): - name, data, is_local_example = f["name"], f["data"], f["is_local_example"] - if self.type == "file": - if is_local_example: - return open(name) - else: - if self.keep_filename: - filename_prefix=Path(name).stem+'_' - else: - filename_prefix="" - return processing_utils.decode_base64_to_file(data, filename_prefix=filename_prefix) - elif self.type == "bytes": - if is_local_example: - with open(name, "rb") as file_data: - return file_data.read() - return processing_utils.decode_base64_to_binary(data)[0] - else: - raise ValueError("Unknown type: " + str(self.type) + ". Please choose from: 'file', 'bytes'.") - if self.file_count == "single": - if isinstance(x, list): - return process_single_file(x[0]) - else: - return process_single_file(x) - else: - return [process_single_file(f) for f in x] - - - def embed(self, x): - raise NotImplementedError("File doesn't currently support embeddings") - - def save_flagged(self, dir, label, data, encryption_key): """ - Returns: (str) path to file - """ - return self.save_flagged_file(dir, label, data["data"], encryption_key) + warnings.warn( + "Usage of gradio.inputs is deprecated, and will not be supported in the future, please import your components from gradio.components", + ) + super().__init__( + file_count=file_count, + type=type, + label=label, + keep_filename=keep_filename, + optional=optional, + ) -class Dataframe(InputComponent): +class Dataframe(components.Dataframe): """ Component accepts 2D input through a spreadsheet interface. Input type: Union[pandas.DataFrame, numpy.array, List[Union[str, float]], List[List[Union[str, float]]]] """ - def __init__(self, headers=None, row_count=3, col_count=3, datatype="str", col_width=None, default=None, type="pandas", label=None): + def __init__( + self, + headers: Optional[List[str]] = None, + row_count: int = 3, + col_count: Optional[int] = 3, + datatype: str | List[str] = "str", + col_width: int | List[int] = None, + default: Optional[List[List[Any]]] = None, + type: str = "pandas", + label: Optional[str] = None, + optional: bool = False, + ): """ Parameters: - headers (List[str]): Header names to dataframe. + headers (List[str]): Header names to dataframe. If None, no headers are shown. row_count (int): Limit number of rows for input. col_count (int): Limit number of columns for input. If equal to 1, return data will be one-dimensional. Ignored if `headers` is provided. datatype (Union[str, List[str]]): Datatype of values in sheet. Can be provided per column as a list of strings, or for the entire sheet as a single string. Valid datatypes are "str", "number", "bool", and "date". @@ -1111,129 +383,90 @@ class Dataframe(InputComponent): default (List[List[Any]]): Default value type (str): Type of value to be returned by component. "pandas" for pandas dataframe, "numpy" for numpy array, or "array" for a Python array. label (str): component name in interface. - """ - self.headers = headers - self.datatype = datatype - self.row_count = row_count - self.col_count = len(headers) if headers else col_count - self.col_width = col_width - self.type = type - self.default = default if default is not None else [[None for _ in range(self.col_count)] for _ in range(self.row_count)] - sample_values = {"str": "abc", "number": 786, "bool": True, "date": "02/08/1993"} - column_dtypes = [datatype]*self.col_count if isinstance(datatype, str) else datatype - self.test_input = [[sample_values[c] for c in column_dtypes] for _ in range(row_count)] - - super().__init__(label) - - def get_template_context(self): - return { - "headers": self.headers, - "datatype": self.datatype, - "row_count": self.row_count, - "col_count": self.col_count, - "col_width": self.col_width, - "default": self.default, - **super().get_template_context() - } - - @classmethod - def get_shortcut_implementations(cls): - return { - "dataframe": {"type": "pandas"}, - "numpy": {"type": "numpy"}, - "matrix": {"type": "array"}, - "list": {"type": "array", "col_count": 1}, - } - - def preprocess(self, x): - if self.type == "pandas": - if self.headers: - return pd.DataFrame(x, columns=self.headers) - else: - return pd.DataFrame(x) - if self.col_count == 1: - x = [row[0] for row in x] - if self.type == "numpy": - return np.array(x) - elif self.type == "array": - return x - else: - raise ValueError("Unknown type: " + str(self.type) + ". Please choose from: 'pandas', 'numpy', 'array'.") - - - def embed(self, x): - raise NotImplementedError("DataFrame doesn't currently support embeddings") - - def save_flagged(self, dir, label, data, encryption_key): - """ - Returns: (List[List[Union[str, float]]]) 2D array - """ - return json.dumps(data) - - def restore_flagged(self, data): - return json.loads(data) - - -class Timeseries(InputComponent): + optional (bool): this parameter is ignored. + """ + warnings.warn( + "Usage of gradio.inputs is deprecated, and will not be supported in the future, please import your components from gradio.components", + ) + super().__init__( + value=default, + headers=headers, + row_count=row_count, + col_count=col_count, + datatype=datatype, + col_width=col_width, + type=type, + label=label, + optional=optional, + ) + + +class Timeseries(components.Timeseries): """ Component accepts pandas.DataFrame uploaded as a timeseries csv file. Input type: pandas.DataFrame """ - def __init__(self, x=None, y=None, label=None): + def __init__( + self, + x: Optional[str] = None, + y: str | List[str] = None, + label: Optional[str] = None, + optional: bool = False, + ): """ Parameters: x (str): Column name of x (time) series. None if csv has no headers, in which case first column is x series. y (Union[str, List[str]]): Column name of y series, or list of column names if multiple series. None if csv has no headers, in which case every column after first is a y series. label (str): component name in interface. + optional (bool): If True, the interface can be submitted with no uploaded csv file, in which case the input value is None. """ - self.x = x - if isinstance(y, str): - y = [y] - self.y = y - super().__init__(label) + warnings.warn( + "Usage of gradio.inputs is deprecated, and will not be supported in the future, please import your components from gradio.components", + ) + super().__init__(x=x, y=y, label=label, optional=optional) - def get_template_context(self): - return { - "x": self.x, - "y": self.y, - **super().get_template_context() - } - @classmethod - def get_shortcut_implementations(cls): - return { - "timeseries": {}, - } - - def preprocess(self, x): - dataframe = pd.DataFrame(data=x["data"], columns=x["headers"]) - if x["range"] is not None: - dataframe = dataframe.loc[dataframe[self.x or 0] >= x["range"][0]] - dataframe = dataframe.loc[dataframe[self.x or 0] <= x["range"][1]] - return dataframe - - - def embed(self, x): - raise NotImplementedError("DataFrame doesn't currently support embeddings") +class State(components.State): + """ + Special hidden component that stores state across runs of the interface. + Input type: Any + """ - def save_flagged(self, dir, label, data, encryption_key): + def __init__( + self, + label: str = None, + default: Any = None, + ): """ - Returns: (List[List[Union[str, float]]]) 2D array + Parameters: + label (str): component name in interface (not used). + default (Any): the initial value of the state. + optional (bool): this parameter is ignored. """ - return json.dumps(data) + warnings.warn( + "Usage of gradio.inputs is deprecated, and will not be supported in the future, please import this component as gr.State() from gradio.components", + ) + super().__init__(value=default, label=label) - def restore_flagged(self, data): - return json.loads(data) +class Image3D(components.Model3D): + """ + Used for 3D image model output. + Input type: File object of type (.obj, glb, or .gltf) + """ -def get_input_instance(iface): - if isinstance(iface, str): - shortcut = InputComponent.get_all_shortcut_implementations()[ - iface] - return shortcut[0](**shortcut[1]) - elif isinstance(iface, InputComponent): - return iface - else: - raise ValueError("Input interface must be of type `str` or " - "`InputComponent` but is {}".format(iface)) + def __init__( + self, + label: Optional[str] = None, + optional: bool = False, + ): + """ + Parameters: + label (str): component name in interface. + optional (bool): If True, the interface can be submitted with no uploaded image, in which case the input value is None. + """ + warnings.warn( + "Usage of gradio.outputs is deprecated, and will not be supported in the future, please import your components from gradio.components", + ) + super().__init__(label=label, optional=optional) diff --git a/gtm/lib/python3.12/site-packages/gradio/interface.py b/gtm/lib/python3.12/site-packages/gradio/interface.py index 7712a7e27c8b1bacb1f4b9374024e33d47446713..84c18b2d4cccd10b18d983194dfc86b6d9f26196 100644 --- a/gtm/lib/python3.12/site-packages/gradio/interface.py +++ b/gtm/lib/python3.12/site-packages/gradio/interface.py @@ -1,681 +1,761 @@ """ -This is the core file in the `gradio` package, and defines the Interface class, including methods for constructing the -interface using the input and output types. +This is the core file in the `gradio` package, and defines the Interface class, +including various methods for constructing an interface and then launching it. """ -import gradio -from gradio.inputs import get_input_instance -from gradio.outputs import get_output_instance -from gradio import networking, strings, utils -from gradio.interpretation import quantify_difference_in_label, get_regression_or_classification_value -from gradio.external import load_interface -from gradio import encryptor -from gradio import queue -import requests -import random -import time -import webbrowser +from __future__ import annotations + import inspect -import sys -import weakref -import analytics -import numpy as np -import os -import copy -import markdown2 import json -import csv -from getpass import getpass - -analytics.write_key = "uxIFddIEuuUcFLf9VgH2teTEtPlWdkNy" -analytics_url = 'https://api.gradio.app/' -ip_address = networking.get_local_ip_address() - -JSON_PATH = os.path.join(os.path.dirname(gradio.__file__), "launches.json") - -class Interface: +import os +import pkgutil +import re +import warnings +import weakref +from enum import Enum, auto +from typing import TYPE_CHECKING, Any, Callable, List, Optional + +from markdown_it import MarkdownIt +from mdit_py_plugins.dollarmath import dollarmath_plugin +from mdit_py_plugins.footnote import footnote_plugin + +from gradio import Examples, interpretation, utils +from gradio.blocks import Blocks +from gradio.components import ( + Button, + Component, + Interpretation, + IOComponent, + Markdown, + State, + get_component_instance, +) +from gradio.documentation import document, set_documentation_group +from gradio.events import Changeable, Streamable +from gradio.flagging import CSVLogger, FlaggingCallback # type: ignore +from gradio.layouts import Column, Row, TabItem, Tabs +from gradio.pipelines import load_from_pipeline # type: ignore + +set_documentation_group("interface") + +if TYPE_CHECKING: # Only import for type checking (is False at runtime). + import transformers + + +@document("launch", "load", "from_pipeline", "integrate", "queue") +class Interface(Blocks): """ - Interfaces are created with Gradio using the `gradio.Interface()` function. + Interface is Gradio's main high-level class, and allows you to create a web-based GUI / demo + around a machine learning model (or any Python function) in a few lines of code. + You must specify three parameters: (1) the function to create a GUI for (2) the desired input components and + (3) the desired output components. Additional parameters can be used to control the appearance + and behavior of the demo. + + Example: + import gradio as gr + + def image_classifier(inp): + return {'cat': 0.3, 'dog': 0.7} + + demo = gr.Interface(fn=image_classifier, inputs="image", outputs="label") + demo.launch() + Demos: hello_world, hello_world_3, gpt_j + Guides: quickstart, key_features, sharing_your_app, interface_state, reactive_interfaces, advanced_interface_features, setting_up_a_gradio_demo_for_maximum_performance """ - instances = weakref.WeakSet() + + # stores references to all currently existing Interface instances + instances: weakref.WeakSet = weakref.WeakSet() + + class InterfaceTypes(Enum): + STANDARD = auto() + INPUT_ONLY = auto() + OUTPUT_ONLY = auto() + UNIFIED = auto() @classmethod - def get_instances(cls): + def get_instances(cls) -> List[Interface]: """ :return: list of all current instances. """ - return list( - Interface.instances) + return list(Interface.instances) @classmethod - def load(cls, name, src=None, api_key=None, alias=None, **kwargs): + def load( + cls, + name: str, + src: Optional[str] = None, + api_key: Optional[str] = None, + alias: Optional[str] = None, + **kwargs, + ) -> Interface: """ - Loads a model and Interface from an external source repo - Parameters: - name (str): the name of the model (e.g. "gpt2"), can include the `src` as prefix (e.g. "huggingface/gpt2") - src (str): the source of the model: `huggingface` or `gradio` (or empty if source is provided as a prefix in `name`) - api_key (str): optional api key for use with Hugging Face Model Hub - alias (str): optional, used as the name of the loaded model instead of the default name + Class method that constructs an Interface from a Hugging Face repo. Can accept + model repos (if src is "models") or Space repos (if src is "spaces"). The input + and output components are automatically loaded from the repo. + Parameters: + name: the name of the model (e.g. "gpt2" or "facebook/bart-base") or space (e.g. "flax-community/spanish-gpt2"), can include the `src` as prefix (e.g. "models/facebook/bart-base") + src: the source of the model: `models` or `spaces` (or leave empty if source is provided as a prefix in `name`) + api_key: optional access token for loading private Hugging Face Hub models or spaces. Find your token here: https://huggingface.co/settings/tokens + alias: optional string used as the name of the loaded model instead of the default name (only applies if loading a Space running Gradio 2.x) Returns: - (Interface): an Interface object for the given model + a Gradio Interface object for the given model + Example: + import gradio as gr + description = "Story generation with GPT" + examples = [["An adventurer is approached by a mysterious stranger in the tavern for a new quest."]] + demo = gr.Interface.load("models/EleutherAI/gpt-neo-1.3B", description=description, examples=examples) + demo.launch() """ - interface_info = load_interface(name, src, api_key, alias) - interface_info.update(kwargs) - return cls(**interface_info) - - def __init__(self, fn, inputs=None, outputs=None, verbose=False, examples=None, - examples_per_page=10, live=False, - layout="unaligned", show_input=True, show_output=True, - capture_session=False, interpretation=None, num_shap=2.0, theme=None, repeat_outputs_per_model=True, - title=None, description=None, article=None, thumbnail=None, - css=None, server_port=None, server_name=networking.LOCALHOST_NAME, height=500, width=900, - allow_screenshot=True, allow_flagging=True, flagging_options=None, encrypt=False, - show_tips=False, embedding=None, flagging_dir="flagged", analytics_enabled=True, enable_queue=False): + return super().load(name=name, src=src, api_key=api_key, alias=alias, **kwargs) + @classmethod + def from_pipeline(cls, pipeline: transformers.Pipeline, **kwargs) -> Interface: """ + Class method that constructs an Interface from a Hugging Face transformers.Pipeline object. + The input and output components are automatically determined from the pipeline. Parameters: - fn (Callable): the function to wrap an interface around. - inputs (Union[str, List[Union[str, InputComponent]]]): a single Gradio input component, or list of Gradio input components. Components can either be passed as instantiated objects, or referred to by their string shortcuts. The number of input components should match the number of parameters in fn. - outputs (Union[str, List[Union[str, OutputComponent]]]): a single Gradio output component, or list of Gradio output components. Components can either be passed as instantiated objects, or referred to by their string shortcuts. The number of output components should match the number of values returned by fn. - verbose (bool): whether to print detailed information during launch. - examples (Union[List[List[Any]], str]): sample inputs for the function; if provided, appears below the UI components and can be used to populate the interface. Should be nested list, in which the outer list consists of samples and each inner list consists of an input corresponding to each input component. A string path to a directory of examples can also be provided. If there are multiple input components and a directory is provided, a log.csv file must be present in the directory to link corresponding inputs. - examples_per_page (int): If examples are provided, how many to display per page. - live (bool): whether the interface should automatically reload on change. - layout (str): Layout of input and output panels. "horizontal" arranges them as two columns of equal height, "unaligned" arranges them as two columns of unequal height, and "vertical" arranges them vertically. - capture_session (bool): if True, captures the default graph and session (needed for Tensorflow 1.x) - interpretation (Union[Callable, str]): function that provides interpretation explaining prediction output. Pass "default" to use built-in interpreter. - num_shap (float): a multiplier that determines how many examples are computed for shap-based interpretation. Increasing this value will increase shap runtime, but improve results. - title (str): a title for the interface; if provided, appears above the input and output components. - description (str): a description for the interface; if provided, appears above the input and output components. - article (str): an expanded article explaining the interface; if provided, appears below the input and output components. Accepts Markdown and HTML content. - thumbnail (str): path to image or src to use as display picture for models listed in gradio.app/hub - theme (str): Theme to use - one of "default", "compact" or "huggingface". - css (str): custom css or path to custom css file to use with interface. - server_port (int): will start gradio app on this port (if available) - server_name (str): to make app accessible on local network set to "0.0.0.0". - allow_screenshot (bool): if False, users will not see a button to take a screenshot of the interface. - allow_flagging (bool): if False, users will not see a button to flag an input and output. - flagging_options (List[str]): if not None, provides options a user must select when flagging. - encrypt (bool): If True, flagged data will be encrypted by key provided by creator at launch - flagging_dir (str): what to name the dir where flagged data is stored. - show_tips (bool): if True, will occasionally show tips about new Gradio features - enable_queue (bool): if True, inference requests will be served through a queue instead of with parallel threads. Required for longer inference times (> 1min) to prevent timeout. + pipeline: the pipeline object to use. + Returns: + a Gradio Interface object from the given Pipeline + Example: + import gradio as gr + from transformers import pipeline + pipe = pipeline("image-classification") + gr.Interface.from_pipeline(pipe).launch() """ - if not isinstance(fn, list): - fn = [fn] - if isinstance(inputs, list): - self.input_components = [get_input_instance(i) for i in inputs] - else: - self.input_components = [get_input_instance(inputs)] - if isinstance(outputs, list): - self.output_components = [get_output_instance(i) for i in outputs] + interface_info = load_from_pipeline(pipeline) + kwargs = dict(interface_info, **kwargs) + interface = cls(**kwargs) + return interface + + def __init__( + self, + fn: Callable, + inputs: Optional[str | Component | List[str | Component]], + outputs: Optional[str | Component | List[str | Component]], + examples: Optional[List[Any] | List[List[Any]] | str] = None, + cache_examples: Optional[bool] = None, + examples_per_page: int = 10, + live: bool = False, + interpretation: Optional[Callable | str] = None, + num_shap: float = 2.0, + title: Optional[str] = None, + description: Optional[str] = None, + article: Optional[str] = None, + thumbnail: Optional[str] = None, + theme: Optional[str] = None, + css: Optional[str] = None, + allow_flagging: Optional[str] = None, + flagging_options: List[str] = None, + flagging_dir: str = "flagged", + flagging_callback: FlaggingCallback = CSVLogger(), + analytics_enabled: Optional[bool] = None, + batch: bool = False, + max_batch_size: int = 4, + _api_mode: bool = False, + **kwargs, + ): + """ + Parameters: + fn: the function to wrap an interface around. Often a machine learning model's prediction function. Each parameter of the function corresponds to one input component, and the function should return a single value or a tuple of values, with each element in the tuple corresponding to one output component. + inputs: a single Gradio component, or list of Gradio components. Components can either be passed as instantiated objects, or referred to by their string shortcuts. The number of input components should match the number of parameters in fn. If set to None, then only the output components will be displayed. + outputs: a single Gradio component, or list of Gradio components. Components can either be passed as instantiated objects, or referred to by their string shortcuts. The number of output components should match the number of values returned by fn. If set to None, then only the input components will be displayed. + examples: sample inputs for the function; if provided, appear below the UI components and can be clicked to populate the interface. Should be nested list, in which the outer list consists of samples and each inner list consists of an input corresponding to each input component. A string path to a directory of examples can also be provided, but it should be within the directory with the python file running the gradio app. If there are multiple input components and a directory is provided, a log.csv file must be present in the directory to link corresponding inputs. + cache_examples: If True, caches examples in the server for fast runtime in examples. The default option in HuggingFace Spaces is True. The default option elsewhere is False. + examples_per_page: If examples are provided, how many to display per page. + live: whether the interface should automatically rerun if any of the inputs change. + interpretation: function that provides interpretation explaining prediction output. Pass "default" to use simple built-in interpreter, "shap" to use a built-in shapley-based interpreter, or your own custom interpretation function. For more information on the different interpretation methods, see the Advanced Interface Features guide. + num_shap: a multiplier that determines how many examples are computed for shap-based interpretation. Increasing this value will increase shap runtime, but improve results. Only applies if interpretation is "shap". + title: a title for the interface; if provided, appears above the input and output components in large font. Also used as the tab title when opened in a browser window. + description: a description for the interface; if provided, appears above the input and output components and beneath the title in regular font. Accepts Markdown and HTML content. + article: an expanded article explaining the interface; if provided, appears below the input and output components in regular font. Accepts Markdown and HTML content. + thumbnail: path or url to image to use as display image when the web demo is shared on social media. + theme: Theme to use - right now, only "default" is supported. Can be set with the GRADIO_THEME environment variable. + css: custom css or path to custom css file to use with interface. + allow_flagging: one of "never", "auto", or "manual". If "never" or "auto", users will not see a button to flag an input and output. If "manual", users will see a button to flag. If "auto", every prediction will be automatically flagged. If "manual", samples are flagged when the user clicks flag button. Can be set with environmental variable GRADIO_ALLOW_FLAGGING; otherwise defaults to "manual". + flagging_options: if provided, allows user to select from the list of options when flagging. Only applies if allow_flagging is "manual". + flagging_dir: what to name the directory where flagged data is stored. + flagging_callback: An instance of a subclass of FlaggingCallback which will be called when a sample is flagged. By default logs to a local CSV file. + analytics_enabled: Whether to allow basic telemetry. If None, will use GRADIO_ANALYTICS_ENABLED environment variable if defined, or default to True. + batch: If True, then the function should process a batch of inputs, meaning that it should accept a list of input values for each parameter. The lists should be of equal length (and be up to length `max_batch_size`). The function is then *required* to return a tuple of lists (even if there is only 1 output component), with each list in the tuple corresponding to one output component. + max_batch_size: Maximum number of inputs to batch together if this is called from the queue (only relevant if batch=True) + """ + super().__init__( + analytics_enabled=analytics_enabled, + mode="interface", + css=css, + title=title, + theme=theme, + **kwargs, + ) + + self.interface_type = self.InterfaceTypes.STANDARD + if (inputs is None or inputs == []) and (outputs is None or outputs == []): + raise ValueError("Must provide at least one of `inputs` or `outputs`") + elif outputs is None or outputs == []: + outputs = [] + self.interface_type = self.InterfaceTypes.INPUT_ONLY + elif inputs is None or inputs == []: + inputs = [] + self.interface_type = self.InterfaceTypes.OUTPUT_ONLY + + if isinstance(fn, list): + raise DeprecationWarning( + "The `fn` parameter only accepts a single function, support for a list " + "of functions has been deprecated. Please use gradio.mix.Parallel " + "instead." + ) + + if not isinstance(inputs, list): + inputs = [inputs] + if not isinstance(outputs, list): + outputs = [outputs] + + if self.is_space and cache_examples is None: + self.cache_examples = True else: - self.output_components = [get_output_instance(outputs)] + self.cache_examples = cache_examples or False - if repeat_outputs_per_model: - self.output_components *= len(fn) + state_input_indexes = [ + idx for idx, i in enumerate(inputs) if i == "state" or isinstance(i, State) + ] + state_output_indexes = [ + idx for idx, o in enumerate(outputs) if o == "state" or isinstance(o, State) + ] - if interpretation is None or isinstance(interpretation, list) or callable(interpretation): - self.interpretation = interpretation + if len(state_input_indexes) == 0 and len(state_output_indexes) == 0: + pass + elif len(state_input_indexes) != 1 or len(state_output_indexes) != 1: + raise ValueError( + "If using 'state', there must be exactly one state input and one state output." + ) + else: + state_input_index = state_input_indexes[0] + state_output_index = state_output_indexes[0] + if inputs[state_input_index] == "state": + default = utils.get_default_args(fn)[state_input_index] + state_variable = State(value=default) + else: + state_variable = inputs[state_input_index] + + inputs[state_input_index] = state_variable + outputs[state_output_index] = state_variable + + if cache_examples: + warnings.warn( + "Cache examples cannot be used with state inputs and outputs." + "Setting cache_examples to False." + ) + self.cache_examples = False + + self.input_components = [ + get_component_instance(i, render=False) for i in inputs + ] + self.output_components = [ + get_component_instance(o, render=False) for o in outputs + ] + + for component in self.input_components + self.output_components: + if not (isinstance(component, IOComponent)): + raise ValueError( + f"{component} is not a valid input/output component for Interface." + ) + + if len(self.input_components) == len(self.output_components): + same_components = [ + i is o for i, o in zip(self.input_components, self.output_components) + ] + if all(same_components): + self.interface_type = self.InterfaceTypes.UNIFIED + + if self.interface_type in [ + self.InterfaceTypes.STANDARD, + self.InterfaceTypes.OUTPUT_ONLY, + ]: + for o in self.output_components: + o.interactive = False # Force output components to be non-interactive + + if ( + interpretation is None + or isinstance(interpretation, list) + or callable(interpretation) + ): + self.interpretation = interpretation elif isinstance(interpretation, str): - self.interpretation = [interpretation.lower() for _ in self.input_components] + self.interpretation = [ + interpretation.lower() for _ in self.input_components + ] else: - raise ValueError("Invalid value for parameter: interpretation") - - self.predict = fn - self.predict_durations = [[0, 0]] * len(fn) - self.function_names = [func.__name__ for func in fn] - self.__name__ = ", ".join(self.function_names) - self.verbose = verbose - self.status = "OFF" + raise ValueError("Invalid value for parameter: interpretation") + + self.api_mode = _api_mode + self.fn = fn + self.fn_durations = [0, 0] + self.__name__ = getattr(fn, "__name__", "fn") self.live = live - self.layout = layout - self.show_input = show_input - self.show_output = show_output - self.flag_hash = random.getrandbits(32) - self.capture_session = capture_session - self.session = None - self.server_name = server_name self.title = title + + CLEANER = re.compile("<.*?>") + + def clean_html(raw_html): + cleantext = re.sub(CLEANER, "", raw_html) + return cleantext + + md = ( + MarkdownIt( + "js-default", + { + "linkify": True, + "typographer": True, + "html": True, + }, + ) + .use(dollarmath_plugin) + .use(footnote_plugin) + .enable("table") + ) + + simple_description = None + if description is not None: + description = md.render(description) + simple_description = clean_html(description) + self.simple_description = simple_description self.description = description if article is not None: article = utils.readme_to_html(article) - article = markdown2.markdown(article) + article = md.render(article) self.article = article + self.thumbnail = thumbnail - self.theme = theme if theme is not None else os.getenv("GRADIO_THEME", "default") - self.height = height - self.width = width - if css is not None and os.path.exists(css): - with open(css) as css_file: - self.css = css_file.read() - else: - self.css = css - if examples is None or isinstance(examples, str) or (isinstance(examples, list) and (len(examples) == 0 or isinstance(examples[0], list))): - self.examples = examples - else: - raise ValueError("Examples argument must either be a directory or a nested list, where each sublist represents a set of inputs.") + self.theme = theme or os.getenv("GRADIO_THEME", "default") + if not (self.theme == "default"): + warnings.warn("Currently, only the 'default' theme is supported.") + + self.examples = examples self.num_shap = num_shap self.examples_per_page = examples_per_page - self.server_port = server_port + self.simple_server = None - self.allow_screenshot = allow_screenshot - self.allow_flagging = os.getenv("GRADIO_FLAGGING") or allow_flagging - self.flagging_options = flagging_options + + # For analytics_enabled and allow_flagging: (1) first check for + # parameter, (2) check for env variable, (3) default to True/"manual" + self.analytics_enabled = ( + analytics_enabled + if analytics_enabled is not None + else os.getenv("GRADIO_ANALYTICS_ENABLED", "True") == "True" + ) + if allow_flagging is None: + allow_flagging = os.getenv("GRADIO_ALLOW_FLAGGING", "manual") + if allow_flagging is True: + warnings.warn( + "The `allow_flagging` parameter in `Interface` now" + "takes a string value ('auto', 'manual', or 'never')" + ", not a boolean. Setting parameter to: 'manual'." + ) + self.allow_flagging = "manual" + elif allow_flagging == "manual": + self.allow_flagging = "manual" + elif allow_flagging is False: + warnings.warn( + "The `allow_flagging` parameter in `Interface` now" + "takes a string value ('auto', 'manual', or 'never')" + ", not a boolean. Setting parameter to: 'never'." + ) + self.allow_flagging = "never" + elif allow_flagging == "never": + self.allow_flagging = "never" + elif allow_flagging == "auto": + self.allow_flagging = "auto" + else: + raise ValueError( + "Invalid value for `allow_flagging` parameter." + "Must be: 'auto', 'manual', or 'never'." + ) + + self.flagging_options = flagging_options + self.flagging_callback = flagging_callback self.flagging_dir = flagging_dir - self.encrypt = encrypt - Interface.instances.add(self) - self.analytics_enabled=analytics_enabled - self.save_to = None + + self.save_to = None # Used for selenium tests self.share = None self.share_url = None self.local_url = None - self.embedding = embedding - self.show_tips = show_tips - self.requires_permissions = any([component.requires_permissions for component in self.input_components]) - self.enable_queue = enable_queue - - data = {'fn': fn, - 'inputs': inputs, - 'outputs': outputs, - 'live': live, - 'capture_session': capture_session, - 'ip_address': ip_address, - 'interpretation': interpretation, - 'embedding': embedding, - 'allow_flagging': allow_flagging, - 'allow_screenshot': allow_screenshot, - 'custom_css': self.css is not None, - 'theme': self.theme - } - - if self.capture_session: - try: - import tensorflow as tf - self.session = tf.get_default_graph(), \ - tf.keras.backend.get_session() - except (ImportError, AttributeError): - # If they are using TF >= 2.0 or don't have TF, - # just ignore this. - pass - if self.allow_flagging: - os.makedirs(self.flagging_dir, exist_ok=True) + self.favicon_path = None if self.analytics_enabled: - try: - requests.post(analytics_url + 'gradio-initiated-analytics/', - data=data, timeout=3) - except (requests.ConnectionError, requests.exceptions.ReadTimeout): - pass # do not push analytics if no network + data = { + "mode": self.mode, + "fn": fn, + "inputs": inputs, + "outputs": outputs, + "live": live, + "ip_address": self.ip_address, + "interpretation": interpretation, + "allow_flagging": allow_flagging, + "custom_css": self.css is not None, + "theme": self.theme, + "version": pkgutil.get_data(__name__, "version.txt") + .decode("ascii") + .strip(), + } + utils.initiated_analytics(data) + + utils.version_check() + Interface.instances.add(self) + + param_names = inspect.getfullargspec(self.fn)[0] + for component, param_name in zip(self.input_components, param_names): + if component.label is None: + component.label = param_name + for i, component in enumerate(self.output_components): + if component.label is None: + if len(self.output_components) == 1: + component.label = "output" + else: + component.label = "output " + str(i) - def __call__(self, params_per_function): - return self.predict[0](params_per_function) + if self.allow_flagging != "never": + if self.interface_type == self.InterfaceTypes.UNIFIED: + self.flagging_callback.setup(self.input_components, self.flagging_dir) + elif self.interface_type == self.InterfaceTypes.INPUT_ONLY: + pass + else: + self.flagging_callback.setup( + self.input_components + self.output_components, self.flagging_dir + ) + + with self: + if self.title: + Markdown( + "

    " + + self.title + + "

    " + ) + if self.description: + Markdown(self.description) + + def render_flag_btns(flagging_options): + if flagging_options is None: + return [(Button("Flag"), None)] + else: + return [ + ( + Button("Flag as " + flag_option), + flag_option, + ) + for flag_option in flagging_options + ] + + with Row().style(equal_height=False): + if self.interface_type in [ + self.InterfaceTypes.STANDARD, + self.InterfaceTypes.INPUT_ONLY, + self.InterfaceTypes.UNIFIED, + ]: + with Column(variant="panel"): + input_component_column = Column() + with input_component_column: + for component in self.input_components: + component.render() + if self.interpretation: + interpret_component_column = Column(visible=False) + interpretation_set = [] + with interpret_component_column: + for component in self.input_components: + interpretation_set.append(Interpretation(component)) + with Row(): + if self.interface_type in [ + self.InterfaceTypes.STANDARD, + self.InterfaceTypes.INPUT_ONLY, + ]: + clear_btn = Button("Clear") + if not self.live: + submit_btn = Button("Submit", variant="primary") + # Stopping jobs only works if the queue is enabled + # We don't know if the queue is enabled when the interface + # is created. We use whether a generator function is provided + # as a proxy of whether the queue will be enabled. + # Using a generator function without the queue will raise an error. + if inspect.isgeneratorfunction(fn): + stop_btn = Button("Stop", variant="stop") + + elif self.interface_type == self.InterfaceTypes.UNIFIED: + clear_btn = Button("Clear") + submit_btn = Button("Submit", variant="primary") + if inspect.isgeneratorfunction(fn) and not self.live: + stop_btn = Button("Stop", variant="stop") + if self.allow_flagging == "manual": + flag_btns = render_flag_btns(self.flagging_options) + + if self.interface_type in [ + self.InterfaceTypes.STANDARD, + self.InterfaceTypes.OUTPUT_ONLY, + ]: + + with Column(variant="panel"): + for component in self.output_components: + if not (isinstance(component, State)): + component.render() + with Row(): + if self.interface_type == self.InterfaceTypes.OUTPUT_ONLY: + clear_btn = Button("Clear") + submit_btn = Button("Generate", variant="primary") + if inspect.isgeneratorfunction(fn) and not self.live: + # Stopping jobs only works if the queue is enabled + # We don't know if the queue is enabled when the interface + # is created. We use whether a generator function is provided + # as a proxy of whether the queue will be enabled. + # Using a generator function without the queue will raise an error. + stop_btn = Button("Stop", variant="stop") + if self.allow_flagging == "manual": + flag_btns = render_flag_btns(self.flagging_options) + if self.interpretation: + interpretation_btn = Button("Interpret") + if self.live: + if self.interface_type == self.InterfaceTypes.OUTPUT_ONLY: + super().load(self.fn, None, self.output_components) + submit_btn.click( + self.fn, + None, + self.output_components, + api_name="predict", + preprocess=not (self.api_mode), + postprocess=not (self.api_mode), + batch=batch, + max_batch_size=max_batch_size, + ) + else: + for component in self.input_components: + if isinstance(component, Streamable): + if component.streaming: + component.stream( + self.fn, + self.input_components, + self.output_components, + api_name="predict", + preprocess=not (self.api_mode), + postprocess=not (self.api_mode), + ) + continue + else: + print( + "Hint: Set streaming=True for " + + component.__class__.__name__ + + " component to use live streaming." + ) + if isinstance(component, Changeable): + component.change( + self.fn, + self.input_components, + self.output_components, + api_name="predict", + preprocess=not (self.api_mode), + postprocess=not (self.api_mode), + ) + else: + pred = submit_btn.click( + self.fn, + self.input_components, + self.output_components, + api_name="predict", + scroll_to_output=True, + preprocess=not (self.api_mode), + postprocess=not (self.api_mode), + batch=batch, + max_batch_size=max_batch_size, + ) + if inspect.isgeneratorfunction(fn): + stop_btn.click( + None, + inputs=None, + outputs=None, + cancels=[pred], + ) + + clear_btn.click( + None, + [], + ( + self.input_components + + self.output_components + + ( + [input_component_column] + if self.interface_type + in [ + self.InterfaceTypes.STANDARD, + self.InterfaceTypes.INPUT_ONLY, + self.InterfaceTypes.UNIFIED, + ] + else [] + ) + + ([interpret_component_column] if self.interpretation else []) + ), + _js=f"""() => {json.dumps( + [component.cleared_value if hasattr(component, "cleared_value") else None + for component in self.input_components + self.output_components] + ( + [Column.update(visible=True)] + if self.interface_type + in [ + self.InterfaceTypes.STANDARD, + self.InterfaceTypes.INPUT_ONLY, + self.InterfaceTypes.UNIFIED, + ] + else [] + ) + + ([Column.update(visible=False)] if self.interpretation else []) + )} + """, + ) + + class FlagMethod: + def __init__(self, flagging_callback, flag_option=None): + self.flagging_callback = flagging_callback + self.flag_option = flag_option + self.__name__ = "Flag" + + def __call__(self, *flag_data): + self.flagging_callback.flag(flag_data, flag_option=self.flag_option) + + if self.allow_flagging == "manual": + if self.interface_type in [ + self.InterfaceTypes.STANDARD, + self.InterfaceTypes.OUTPUT_ONLY, + self.InterfaceTypes.UNIFIED, + ]: + if self.interface_type == self.InterfaceTypes.UNIFIED: + flag_components = self.input_components + else: + flag_components = self.input_components + self.output_components + for flag_btn, flag_option in flag_btns: + flag_method = FlagMethod(self.flagging_callback, flag_option) + flag_btn.click( + flag_method, + inputs=flag_components, + outputs=[], + preprocess=False, + queue=False, + ) + + if self.examples: + non_state_inputs = [ + c for c in self.input_components if not isinstance(c, State) + ] + non_state_outputs = [ + c for c in self.output_components if not isinstance(c, State) + ] + self.examples_handler = Examples( + examples=examples, + inputs=non_state_inputs, + outputs=non_state_outputs, + fn=self.fn, + cache_examples=self.cache_examples, + examples_per_page=examples_per_page, + _api_mode=_api_mode, + batch=batch, + ) + + if self.interpretation: + interpretation_btn.click( + self.interpret_func, + inputs=self.input_components + self.output_components, + outputs=interpretation_set + + [input_component_column, interpret_component_column], + preprocess=False, + ) + + if self.article: + Markdown(self.article) + + self.config = self.get_config_file() def __str__(self): return self.__repr__() def __repr__(self): - repr = "Gradio Interface for: {}".format(", ".join(fn.__name__ for fn in self.predict)) - repr += "\n" + "-"*len(repr) + repr = f"Gradio Interface for: {self.__name__}" + repr += "\n" + "-" * len(repr) repr += "\ninputs:" for component in self.input_components: repr += "\n|-{}".format(str(component)) repr += "\noutputs:" for component in self.output_components: - repr+= "\n|-{}".format(str(component)) + repr += "\n|-{}".format(str(component)) return repr - - def get_config_file(self): - config = { - "input_components": [ - iface.get_template_context() - for iface in self.input_components], - "output_components": [ - iface.get_template_context() - for iface in self.output_components], - "function_count": len(self.predict), - "live": self.live, - "examples_per_page": self.examples_per_page, - "layout": self.layout, - "show_input": self.show_input, - "show_output": self.show_output, - "title": self.title, - "description": self.description, - "article": self.article, - "theme": self.theme, - "css": self.css, - "thumbnail": self.thumbnail, - "allow_screenshot": self.allow_screenshot, - "allow_flagging": self.allow_flagging, - "flagging_options": self.flagging_options, - "allow_interpretation": self.interpretation is not None, - "allow_embedding": self.embedding is not None, - "queue": self.enable_queue - } - try: - param_names = inspect.getfullargspec(self.predict[0])[0] - for iface, param in zip(config["input_components"], param_names): - if not iface["label"]: - iface["label"] = param.replace("_", " ") - for i, iface in enumerate(config["output_components"]): - outputs_per_function = int(len(self.output_components) / len(self.predict)) - function_index = i // outputs_per_function - component_index = i - function_index * outputs_per_function - ret_name = "Output " + str(component_index + 1) if outputs_per_function > 1 else "Output" - if iface["label"] is None: - iface["label"] = ret_name - if len(self.predict) > 1: - iface["label"] = self.function_names[function_index].replace("_", " ") + ": " + iface["label"] - - except ValueError: - pass - if self.examples is not None: - if isinstance(self.examples, str): - if not os.path.exists(self.examples): - raise FileNotFoundError("Could not find examples directory: " + self.examples) - log_file = os.path.join(self.examples, "log.csv") - if not os.path.exists(log_file): - if len(self.input_components) == 1: - examples = [[item] for item in os.listdir(self.examples)] - else: - raise FileNotFoundError("Could not find log file (required for multiple inputs): " + log_file) - else: - with open(log_file) as logs: - examples = list(csv.reader(logs)) - examples = examples[1:] #remove header - for i, example in enumerate(examples): - for j, (interface, cell) in enumerate(zip(self.input_components + self.output_components, example)): - examples[i][j] = interface.restore_flagged(cell) - config["examples"] = examples - config["examples_dir"] = self.examples - else: - config["examples"] = self.examples - return config - - def run_prediction(self, processed_input, return_duration=False): - predictions = [] - durations = [] - for predict_fn in self.predict: - start = time.time() - if self.capture_session and self.session is not None: - graph, sess = self.session - with graph.as_default(), sess.as_default(): - prediction = predict_fn(*processed_input) - else: - try: - prediction = predict_fn(*processed_input) - except ValueError as exception: - if str(exception).endswith("is not an element of this graph."): - raise ValueError(strings.en["TF1_ERROR"]) - else: - raise exception - duration = time.time() - start - - if len(self.output_components) == len(self.predict): - prediction = [prediction] - - durations.append(duration) - predictions.extend(prediction) - - if return_duration: - return predictions, durations - else: - return predictions - def process(self, raw_input): - """ - :param raw_input: a list of raw inputs to process and apply the prediction(s) on. - processed output: a list of processed outputs to return as the prediction(s). - duration: a list of time deltas measuring inference time for each prediction fn. + async def interpret_func(self, *args): + return await self.interpret(args) + [ + Column.update(visible=False), + Column.update(visible=True), + ] + + async def interpret(self, raw_input: List[Any]) -> List[Any]: + return [ + {"original": raw_value, "interpretation": interpretation} + for interpretation, raw_value in zip( + (await interpretation.run_interpret(self, raw_input))[0], raw_input + ) + ] + + def test_launch(self) -> None: """ - processed_input = [input_component.preprocess(raw_input[i]) - for i, input_component in enumerate(self.input_components)] - predictions, durations = self.run_prediction(processed_input, return_duration=True) - processed_output = [output_component.postprocess( - predictions[i]) if predictions[i] is not None else None for i, output_component in enumerate(self.output_components)] - return processed_output, durations - - def interpret(self, raw_input): + Passes a few samples through the function to test if the inputs/outputs + components are consistent with the function parameter and return values. """ - Runs the interpretation command for the machine learning model. Handles both the "default" out-of-the-box - interpretation for a certain set of UI component types, as well as the custom interpretation case. - :param raw_input: a list of raw inputs to apply the interpretation(s) on. - """ - if isinstance(self.interpretation, list): # Either "default" or "shap" - processed_input = [input_component.preprocess(raw_input[i]) - for i, input_component in enumerate(self.input_components)] - original_output = self.run_prediction(processed_input) - scores, alternative_outputs = [], [] - for i, (x, interp) in enumerate(zip(raw_input, self.interpretation)): - print(i, interp) - if interp=="default": - input_component = self.input_components[i] - neighbor_raw_input = list(raw_input) - if input_component.interpret_by_tokens: - tokens, neighbor_values, masks = input_component.tokenize(x) - interface_scores = [] - alternative_output = [] - for neighbor_input in neighbor_values: - neighbor_raw_input[i] = neighbor_input - processed_neighbor_input = [input_component.preprocess(neighbor_raw_input[i]) - for i, input_component in enumerate(self.input_components)] - neighbor_output = self.run_prediction(processed_neighbor_input) - processed_neighbor_output = [output_component.postprocess( - neighbor_output[i]) for i, output_component in enumerate(self.output_components)] - - alternative_output.append(processed_neighbor_output) - interface_scores.append(quantify_difference_in_label(self, original_output, neighbor_output)) - alternative_outputs.append(alternative_output) - scores.append( - input_component.get_interpretation_scores( - raw_input[i], neighbor_values, interface_scores, masks=masks, tokens=tokens)) - else: - neighbor_values, interpret_kwargs = input_component.get_interpretation_neighbors(x) - interface_scores = [] - alternative_output = [] - for neighbor_input in neighbor_values: - neighbor_raw_input[i] = neighbor_input - processed_neighbor_input = [input_component.preprocess(neighbor_raw_input[i]) - for i, input_component in enumerate(self.input_components)] - neighbor_output = self.run_prediction(processed_neighbor_input) - processed_neighbor_output = [output_component.postprocess( - neighbor_output[i]) for i, output_component in enumerate(self.output_components)] - - alternative_output.append(processed_neighbor_output) - interface_scores.append(quantify_difference_in_label(self, original_output, neighbor_output)) - alternative_outputs.append(alternative_output) - interface_scores = [-score for score in interface_scores] - scores.append( - input_component.get_interpretation_scores( - raw_input[i], neighbor_values, interface_scores, **interpret_kwargs)) - elif interp == "shap": - try: - import shap - except (ImportError, ModuleNotFoundError): - raise ValueError("The package `shap` is required for this interpretation method. Try: `pip install shap`") - input_component = self.input_components[i] - if not(input_component.interpret_by_tokens): - raise ValueError("Input component {} does not support `shap` interpretation".format(input_component)) - - tokens, _, masks = input_component.tokenize(x) - - def get_masked_prediction(binary_mask): # construct a masked version of the input - masked_xs = input_component.get_masked_inputs(tokens, binary_mask) - preds = [] - for masked_x in masked_xs: - processed_masked_input = copy.deepcopy(processed_input) - processed_masked_input[i] = input_component.preprocess(masked_x) - new_output = self.run_prediction(processed_masked_input) - pred = get_regression_or_classification_value(self, original_output, new_output) - preds.append(pred) - return np.array(preds) - - num_total_segments = len(tokens) - explainer = shap.KernelExplainer(get_masked_prediction, np.zeros((1, num_total_segments))) - shap_values = explainer.shap_values(np.ones((1, num_total_segments)), nsamples=int(self.num_shap*num_total_segments), silent=True) - scores.append(input_component.get_interpretation_scores(raw_input[i], None, shap_values[0], masks=masks, tokens=tokens)) - alternative_outputs.append([]) - elif interp is None: - scores.append(None) - alternative_outputs.append([]) - else: - raise ValueError("Uknown intepretation method: {}".format(interp)) - return scores, alternative_outputs - else: # custom interpretation function - processed_input = [input_component.preprocess(raw_input[i]) - for i, input_component in enumerate(self.input_components)] - interpreter = self.interpretation - - if self.capture_session and self.session is not None: - graph, sess = self.session - with graph.as_default(), sess.as_default(): - interpretation = interpreter(*processed_input) - else: - try: - interpretation = interpreter(*processed_input) - except ValueError as exception: - if str(exception).endswith("is not an element of this graph."): - raise ValueError(strings.en["TF1_ERROR"]) - else: - raise exception - if len(raw_input) == 1: - interpretation = [interpretation] - return interpretation, [] - - def close(self): - if self.simple_server and not (self.simple_server.fileno() == -1): # checks to see if server is running - print("Closing Gradio server on port {}...".format(self.server_port)) - networking.close_server(self.simple_server) - - def run_until_interrupted(self, thread, path_to_local_server): - try: - while True: - time.sleep(0.5) - except (KeyboardInterrupt, OSError): - print("Keyboard interruption in main thread... closing server.") - thread.keep_running = False - networking.url_ok(path_to_local_server) # Hit the server one more time to close it - if self.enable_queue: - queue.close() - - def test_launch(self): - for predict_fn in self.predict: - print("Test launch: {}()...".format(predict_fn.__name__), end=' ') - - raw_input = [] - for input_component in self.input_components: - if input_component.test_input is None: # If no test input is defined for that input interface - print("SKIPPED") - break - else: # If a test input is defined for each interface object - raw_input.append(input_component.test_input) + print("Test launch: {}()...".format(self.__name__), end=" ") + raw_input = [] + for input_component in self.input_components: + if input_component.test_input is None: + print("SKIPPED") + break else: - self.process(raw_input) - print("PASSED") - continue + raw_input.append(input_component.test_input) + else: + self(raw_input) + print("PASSED") + + +@document() +class TabbedInterface(Blocks): + """ + A TabbedInterface is created by providing a list of Interfaces, each of which gets + rendered in a separate tab. + Demos: stt_or_tts + """ - def launch(self, inline=None, inbrowser=None, share=False, debug=False, auth=None, auth_message=None, private_endpoint=None, prevent_thread_lock=False): + def __init__( + self, + interface_list: List[Interface], + tab_names: Optional[List[str]] = None, + theme: str = "default", + analytics_enabled: Optional[bool] = None, + css: Optional[str] = None, + ): """ Parameters: - inline (bool): whether to display in the interface inline on python notebooks. - inbrowser (bool): whether to automatically launch the interface in a new tab on the default browser. - share (bool): whether to create a publicly shareable link from your computer for the interface. - debug (bool): if True, and the interface was launched from Google Colab, prints the errors in the cell output. - auth (Callable, Union[Tuple[str, str], List[Tuple[str, str]]]): If provided, username and password (or list of username-password tuples) required to access interface. Can also provide function that takes username and password and returns True if valid login. - auth_message (str): If provided, HTML message provided on login page. + interface_list: a list of interfaces to be rendered in tabs. + tab_names: a list of tab names. If None, the tab names will be "Tab 1", "Tab 2", etc. + theme: which theme to use - right now, only "default" is supported. + analytics_enabled: whether to allow basic telemetry. If None, will use GRADIO_ANALYTICS_ENABLED environment variable or default to True. + css: custom css or path to custom css file to apply to entire Blocks Returns: - app (flask.Flask): Flask app object - path_to_local_server (str): Locally accessible link - share_url (str): Publicly accessible link (if share=True) + a Gradio Tabbed Interface for the given interfaces """ - # Alert user if a more recent version of the library exists - utils.version_check() - - # Set up local flask server - config = self.get_config_file() - self.config = config - if auth and not callable(auth) and not isinstance(auth[0], tuple) and not isinstance(auth[0], list): - auth = [auth] - self.auth = auth - self.auth_message = auth_message - - # Request key for encryption - if self.encrypt: - self.encryption_key = encryptor.get_key(getpass("Enter key for encryption: ")) - - # Launch local flask server - server_port, path_to_local_server, app, thread = networking.start_server( - self, self.server_name, self.server_port, self.auth) - self.local_url = path_to_local_server - self.server_port = server_port - self.status = "RUNNING" - self.server = app - - # Count number of launches - launch_counter() - - # If running in a colab or not able to access localhost, automatically create a shareable link - is_colab = utils.colab_check() - if is_colab or not(networking.url_ok(path_to_local_server)): - share = True - if is_colab: - if debug: - print(strings.en["COLAB_DEBUG_TRUE"]) - else: - print(strings.en["COLAB_DEBUG_FALSE"]) - else: - print(strings.en["RUNNING_LOCALLY"].format(path_to_local_server)) - if is_colab and self.requires_permissions: - print(strings.en["MEDIA_PERMISSIONS_IN_COLAB"]) - - if private_endpoint is not None: - share = True - # Set up shareable link - self.share = share - - if share: - if private_endpoint: - print(strings.en["PRIVATE_LINK_MESSAGE"]) - else: - print(strings.en["SHARE_LINK_MESSAGE"]) - try: - share_url = networking.setup_tunnel(server_port, private_endpoint) - self.share_url = share_url - print(strings.en["SHARE_LINK_DISPLAY"].format(share_url)) - except RuntimeError: - send_error_analytics(self.analytics_enabled) - share_url = None - else: - print(strings.en["PUBLIC_SHARE_TRUE"]) - share_url = None - - # Open a browser tab with the interface. - if inbrowser: - if share: - webbrowser.open(share_url) - else: - webbrowser.open(path_to_local_server) - - # Check if running in a Python notebook in which case, display inline - if inline is None: - inline = utils.ipython_check() - if inline: - try: - from IPython.display import IFrame, display - # Embed the remote interface page if on google colab; otherwise, embed the local page. - print(strings.en["INLINE_DISPLAY_BELOW"]) - if share: - while not networking.url_ok(share_url): - time.sleep(1) - display(IFrame(share_url, width=self.width, height=self.height)) - else: - display(IFrame(path_to_local_server, width=self.width, height=self.height)) - except ImportError: - pass # IPython is not available so does not print inline. - - send_launch_analytics(analytics_enabled=self.analytics_enabled, inbrowser=inbrowser, is_colab=is_colab, - share=share, share_url=share_url) - - show_tip(self) - - # Run server perpetually under certain circumstances - if debug or int(os.getenv('GRADIO_DEBUG', 0))==1: - while True: - sys.stdout.flush() - time.sleep(0.1) - is_in_interactive_mode = bool(getattr(sys, 'ps1', sys.flags.interactive)) - if not prevent_thread_lock and not is_in_interactive_mode: - self.run_until_interrupted(thread, path_to_local_server) - - - return app, path_to_local_server, share_url - - - def integrate(self, comet_ml=None, wandb=None, mlflow=None): - analytics_integration = "" - if comet_ml is not None: - analytics_integration = "CometML" - comet_ml.log_other("Created from", "Gradio") - if self.share_url is not None: - comet_ml.log_text("gradio: " + self.share_url) - comet_ml.end() - else: - comet_ml.log_text("gradio: " + self.local_url) - comet_ml.end() - if wandb is not None: - analytics_integration = "WandB" - if self.share_url is not None: - wandb.log({"Gradio panel": wandb.Html('')}) - else: - print("The WandB integration requires you to `launch(share=True)` first.") - if mlflow is not None: - analytics_integration = "MLFlow" - if self.share_url is not None: - mlflow.log_param("Gradio Interface Share Link", - self.share_url) - else: - mlflow.log_param("Gradio Interface Local Link", - self.local_url) - if self.analytics_enabled: - if not analytics_integration: - data = {'integration': analytics_integration} - try: - requests.post(analytics_url + - 'gradio-integration-analytics/', - data=data, timeout=3) - except ( - requests.ConnectionError, requests.exceptions.ReadTimeout): - pass # do not push analytics if no network - -def show_tip(io): - if not(io.show_tips) or random.random() < 0.5: # Only show tip every other use. - return - print(random.choice(strings.en.TIPS)) - -def launch_counter(): - try: - if not os.path.exists(JSON_PATH): - launches = {"launches": 1} - with open(JSON_PATH, "w+") as j: - json.dump(launches, j) - else: - with open(JSON_PATH) as j: - launches = json.load(j) - launches["launches"] += 1 - if launches["launches"] in [25, 50]: - print(strings.en["BETA_INVITE"]) - with open(JSON_PATH, "w") as j: - j.write(json.dumps(launches)) - except: - pass - -def send_error_analytics(analytics_enabled): - data = {'error': 'RuntimeError in launch method'} - if analytics_enabled: - try: - requests.post(analytics_url + 'gradio-error-analytics/', - data=data, timeout=3) - except (requests.ConnectionError, requests.exceptions.ReadTimeout): - pass # do not push analytics if no network - -def send_launch_analytics(analytics_enabled, inbrowser, is_colab, share, share_url): - launch_method = 'browser' if inbrowser else 'inline' - if analytics_enabled: - data = { - 'launch_method': launch_method, - 'is_google_colab': is_colab, - 'is_sharing_on': share, - 'share_url': share_url, - 'ip_address': ip_address - } - try: - requests.post(analytics_url + 'gradio-launched-analytics/', - data=data, timeout=3) - except (requests.ConnectionError, requests.exceptions.ReadTimeout): - pass # do not push analytics if no network - - -def reset_all(): + super().__init__( + theme=theme, + analytics_enabled=analytics_enabled, + mode="tabbed_interface", + css=css, + ) + if tab_names is None: + tab_names = ["Tab {}".format(i) for i in range(len(interface_list))] + with self: + with Tabs(): + for (interface, tab_name) in zip(interface_list, tab_names): + with TabItem(label=tab_name): + interface.render() + + +def close_all(verbose: bool = True) -> None: for io in Interface.get_instances(): - io.close() + io.close(verbose) diff --git a/gtm/lib/python3.12/site-packages/gradio/interpretation.py b/gtm/lib/python3.12/site-packages/gradio/interpretation.py index 278aac0135cb46f407a79625eed6dba12641a20b..17628ef67d3bff3164f6272f32fc171fb977591b 100644 --- a/gtm/lib/python3.12/site-packages/gradio/interpretation.py +++ b/gtm/lib/python3.12/site-packages/gradio/interpretation.py @@ -1,13 +1,199 @@ -from gradio.outputs import Label, Textbox +import copy import math +import numpy as np + +from gradio import utils +from gradio.components import Label, Number + + +async def run_interpret(interface, raw_input): + """ + Runs the interpretation command for the machine learning model. Handles both the "default" out-of-the-box + interpretation for a certain set of UI component types, as well as the custom interpretation case. + Parameters: + raw_input: a list of raw inputs to apply the interpretation(s) on. + """ + if isinstance(interface.interpretation, list): # Either "default" or "shap" + processed_input = [ + input_component.preprocess(raw_input[i]) + for i, input_component in enumerate(interface.input_components) + ] + original_output = await interface.call_function(0, processed_input) + original_output = original_output["prediction"] + + if len(interface.output_components) == 1: + original_output = [original_output] + + scores, alternative_outputs = [], [] + + for i, (x, interp) in enumerate(zip(raw_input, interface.interpretation)): + if interp == "default": + input_component = interface.input_components[i] + neighbor_raw_input = list(raw_input) + if input_component.interpret_by_tokens: + tokens, neighbor_values, masks = input_component.tokenize(x) + interface_scores = [] + alternative_output = [] + for neighbor_input in neighbor_values: + neighbor_raw_input[i] = neighbor_input + processed_neighbor_input = [ + input_component.preprocess(neighbor_raw_input[i]) + for i, input_component in enumerate( + interface.input_components + ) + ] + + neighbor_output = await interface.call_function( + 0, processed_neighbor_input + ) + neighbor_output = neighbor_output["prediction"] + if len(interface.output_components) == 1: + neighbor_output = [neighbor_output] + processed_neighbor_output = [ + output_component.postprocess(neighbor_output[i]) + for i, output_component in enumerate( + interface.output_components + ) + ] + + alternative_output.append(processed_neighbor_output) + interface_scores.append( + quantify_difference_in_label( + interface, original_output, neighbor_output + ) + ) + alternative_outputs.append(alternative_output) + scores.append( + input_component.get_interpretation_scores( + raw_input[i], + neighbor_values, + interface_scores, + masks=masks, + tokens=tokens, + ) + ) + else: + ( + neighbor_values, + interpret_kwargs, + ) = input_component.get_interpretation_neighbors(x) + interface_scores = [] + alternative_output = [] + for neighbor_input in neighbor_values: + neighbor_raw_input[i] = neighbor_input + processed_neighbor_input = [ + input_component.preprocess(neighbor_raw_input[i]) + for i, input_component in enumerate( + interface.input_components + ) + ] + neighbor_output = await interface.call_function( + 0, processed_neighbor_input + ) + neighbor_output = neighbor_output["prediction"] + if len(interface.output_components) == 1: + neighbor_output = [neighbor_output] + processed_neighbor_output = [ + output_component.postprocess(neighbor_output[i]) + for i, output_component in enumerate( + interface.output_components + ) + ] + + alternative_output.append(processed_neighbor_output) + interface_scores.append( + quantify_difference_in_label( + interface, original_output, neighbor_output + ) + ) + alternative_outputs.append(alternative_output) + interface_scores = [-score for score in interface_scores] + scores.append( + input_component.get_interpretation_scores( + raw_input[i], + neighbor_values, + interface_scores, + **interpret_kwargs + ) + ) + elif interp == "shap" or interp == "shapley": + try: + import shap # type: ignore + except (ImportError, ModuleNotFoundError): + raise ValueError( + "The package `shap` is required for this interpretation method. Try: `pip install shap`" + ) + input_component = interface.input_components[i] + if not (input_component.interpret_by_tokens): + raise ValueError( + "Input component {} does not support `shap` interpretation".format( + input_component + ) + ) + + tokens, _, masks = input_component.tokenize(x) + + # construct a masked version of the input + def get_masked_prediction(binary_mask): + masked_xs = input_component.get_masked_inputs(tokens, binary_mask) + preds = [] + for masked_x in masked_xs: + processed_masked_input = copy.deepcopy(processed_input) + processed_masked_input[i] = input_component.preprocess(masked_x) + new_output = utils.synchronize_async( + interface.call_function, 0, processed_masked_input + ) + new_output = new_output["prediction"] + if len(interface.output_components) == 1: + new_output = [new_output] + pred = get_regression_or_classification_value( + interface, original_output, new_output + ) + preds.append(pred) + return np.array(preds) + + num_total_segments = len(tokens) + explainer = shap.KernelExplainer( + get_masked_prediction, np.zeros((1, num_total_segments)) + ) + shap_values = explainer.shap_values( + np.ones((1, num_total_segments)), + nsamples=int(interface.num_shap * num_total_segments), + silent=True, + ) + scores.append( + input_component.get_interpretation_scores( + raw_input[i], None, shap_values[0], masks=masks, tokens=tokens + ) + ) + alternative_outputs.append([]) + elif interp is None: + scores.append(None) + alternative_outputs.append([]) + else: + raise ValueError("Unknown intepretation method: {}".format(interp)) + return scores, alternative_outputs + else: # custom interpretation function + processed_input = [ + input_component.preprocess(raw_input[i]) + for i, input_component in enumerate(interface.input_components) + ] + interpreter = interface.interpretation + interpretation = interpreter(*processed_input) + if len(raw_input) == 1: + interpretation = [interpretation] + return interpretation, [] + + def diff(original, perturbed): try: # try computing numerical difference score = float(original) - float(perturbed) except ValueError: # otherwise, look at strict difference in label - score = int(not(original == perturbed)) + score = int(not (original == perturbed)) return score + def quantify_difference_in_label(interface, original_output, perturbed_output): output_component = interface.output_components[0] post_original_output = output_component.postprocess(original_output[0]) @@ -26,14 +212,21 @@ def quantify_difference_in_label(interface, original_output, perturbed_output): score = diff(original_label, perturbed_label) return score - elif isinstance(output_component, Textbox): + elif isinstance(output_component, Number): score = diff(post_original_output, post_perturbed_output) return score - + else: - raise ValueError("This interpretation method doesn't support the Output component: {}".format(output_component)) + raise ValueError( + "This interpretation method doesn't support the Output component: {}".format( + output_component + ) + ) -def get_regression_or_classification_value(interface, original_output, perturbed_output): + +def get_regression_or_classification_value( + interface, original_output, perturbed_output +): """Used to combine regression/classification for Shap interpretation method.""" output_component = interface.output_components[0] post_original_output = output_component.postprocess(original_output[0]) @@ -49,9 +242,14 @@ def get_regression_or_classification_value(interface, original_output, perturbed return 0 return perturbed_output[0][original_label] else: - score = diff(perturbed_label, original_label) # Intentionall inverted order of arguments. + score = diff( + perturbed_label, original_label + ) # Intentionally inverted order of arguments. return score else: - raise ValueError("This interpretation method doesn't support the Output component: {}".format(output_component)) - + raise ValueError( + "This interpretation method doesn't support the Output component: {}".format( + output_component + ) + ) diff --git a/gtm/lib/python3.12/site-packages/gradio/ipython_ext.py b/gtm/lib/python3.12/site-packages/gradio/ipython_ext.py index 0e5a39c8c75aba51b92d6d31bbec4b07a13f83d1..d601c6365bf30925f535e5ecb8a7240ecc333bc0 100644 --- a/gtm/lib/python3.12/site-packages/gradio/ipython_ext.py +++ b/gtm/lib/python3.12/site-packages/gradio/ipython_ext.py @@ -1,90 +1,17 @@ try: - from IPython.core.magic import ( - needs_local_scope, - register_cell_magic, - ) - from IPython.core.magic_arguments import argument, magic_arguments, parse_argstring + from IPython.core.magic import needs_local_scope, register_cell_magic except ImportError: pass -import gradio as gr -from gradio.networking import App -from gradio.utils import BaseReloader - - -class CellIdTracker: - """Determines the most recently run cell in the notebook. - - Needed to keep track of which demo the user is updating. - """ - - def __init__(self, ipython): - ipython.events.register("pre_run_cell", self.pre_run_cell) - self.shell = ipython - self.current_cell: str = "" - - def pre_run_cell(self, info): - self._current_cell = info.cell_id - - -class JupyterReloader(BaseReloader): - """Swap a running blocks class in a notebook with the latest cell contents.""" - - def __init__(self, ipython) -> None: - super().__init__() - self._cell_tracker = CellIdTracker(ipython) - self._running: dict[str, gr.Blocks] = {} - - @property - def current_cell(self): - return self._cell_tracker.current_cell - - @property - def running_app(self) -> App: - if not self.running_demo.server: - raise RuntimeError("Server not running") - return self.running_demo.server.running_app # type: ignore - - @property - def running_demo(self): - return self._running[self.current_cell] - - def demo_tracked(self) -> bool: - return self.current_cell in self._running - - def track(self, demo: gr.Blocks): - self._running[self.current_cell] = demo +import gradio def load_ipython_extension(ipython): - reloader = JupyterReloader(ipython) + __demo = gradio.Blocks() - @magic_arguments() - @argument("--demo-name", default="demo", help="Name of gradio blocks instance.") - @argument( - "--share", - default=False, - const=True, - nargs="?", - help="Whether to launch with sharing. Will slow down reloading.", - ) @register_cell_magic @needs_local_scope - def blocks(line, cell, local_ns): - """Launch a demo defined in a cell in reload mode.""" - - args = parse_argstring(blocks, line) - - exec(cell, None, local_ns) - demo: gr.Blocks = local_ns[args.demo_name] - if not reloader.demo_tracked(): - demo.launch(share=args.share) - reloader.track(demo) - elif reloader.queue_changed(demo): - print("Queue got added or removed. Restarting demo.") - reloader.running_demo.close() - demo.launch() - reloader.track(demo) - else: - reloader.swap_blocks(demo) - return reloader.running_demo.artifact + def blocks(line, cell, local_ns=None): + with __demo.clear(): + exec(cell, None, local_ns) + __demo.launch(quiet=True) diff --git a/gtm/lib/python3.12/site-packages/gradio/layouts.py b/gtm/lib/python3.12/site-packages/gradio/layouts.py new file mode 100644 index 0000000000000000000000000000000000000000..0bd951e1b68878f65baf7fcfd2ee2ab58e19d206 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/layouts.py @@ -0,0 +1,376 @@ +from __future__ import annotations + +import warnings +from typing import TYPE_CHECKING, Callable, List, Optional + +from gradio.blocks import BlockContext +from gradio.documentation import document, set_documentation_group + +set_documentation_group("layout") + +if TYPE_CHECKING: # Only import for type checking (is False at runtime). + from gradio.components import Component + + +@document() +class Row(BlockContext): + """ + Row is a layout element within Blocks that renders all children horizontally. + Example: + with gradio.Blocks() as demo: + with gradio.Row(): + gr.Image("lion.jpg") + gr.Image("tiger.jpg") + demo.launch() + Guides: controlling_layout + """ + + def __init__( + self, + *, + variant: str = "default", + visible: bool = True, + elem_id: Optional[str] = None, + **kwargs, + ): + """ + Parameters: + variant: row type, 'default' (no background), 'panel' (gray background color and rounded corners), or 'compact' (rounded corners and no internal gap). + visible: If False, row will be hidden. + elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. + """ + self.variant = variant + if variant == "compact": + self.allow_expected_parents = False + super().__init__(visible=visible, elem_id=elem_id, **kwargs) + + def get_config(self): + return {"type": "row", "variant": self.variant, **super().get_config()} + + @staticmethod + def update( + visible: Optional[bool] = None, + ): + return { + "visible": visible, + "__type__": "update", + } + + def style( + self, + *, + equal_height: Optional[bool] = None, + mobile_collapse: Optional[bool] = None, + **kwargs, + ): + """ + Styles the Row. + Parameters: + equal_height: If True, makes every child element have equal height + mobile_collapse: DEPRECATED. + """ + if equal_height is not None: + self._style["equal_height"] = equal_height + if mobile_collapse is not None: + warnings.warn("mobile_collapse is no longer supported.") + return self + + +@document() +class Column(BlockContext): + """ + Column is a layout element within Blocks that renders all children vertically. The widths of columns can be set through the `scale` and `min_width` parameters. + If a certain scale results in a column narrower than min_width, the min_width parameter will win. + Example: + with gradio.Blocks() as demo: + with gradio.Row(): + with gradio.Column(scale=1): + text1 = gr.Textbox() + text2 = gr.Textbox() + with gradio.Column(scale=4): + btn1 = gr.Button("Button 1") + btn2 = gr.Button("Button 2") + Guides: controlling_layout + """ + + def __init__( + self, + *, + scale: int = 1, + min_width: int = 320, + variant: str = "default", + visible: bool = True, + elem_id: Optional[str] = None, + **kwargs, + ): + """ + Parameters: + scale: relative width compared to adjacent Columns. For example, if Column A has scale=2, and Column B has scale=1, A will be twice as wide as B. + min_width: minimum pixel width of Column, will wrap if not sufficient screen space to satisfy this value. If a certain scale value results in a column narrower than min_width, the min_width parameter will be respected first. + variant: column type, 'default' (no background), 'panel' (gray background color and rounded corners), or 'compact' (rounded corners and no internal gap). + visible: If False, column will be hidden. + elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. + """ + self.scale = scale + self.min_width = min_width + self.variant = variant + if variant == "compact": + self.allow_expected_parents = False + super().__init__(visible=visible, elem_id=elem_id, **kwargs) + + def get_config(self): + return { + "type": "column", + "variant": self.variant, + "scale": self.scale, + "min_width": self.min_width, + **super().get_config(), + } + + @staticmethod + def update( + variant: Optional[str] = None, + visible: Optional[bool] = None, + ): + return { + "variant": variant, + "visible": visible, + "__type__": "update", + } + + +class Tabs(BlockContext): + """ + Tabs is a layout element within Blocks that can contain multiple "Tab" Components. + """ + + def __init__( + self, + *, + selected: Optional[int | str] = None, + visible: bool = True, + elem_id: Optional[str] = None, + **kwargs, + ): + """ + Parameters: + selected: The currently selected tab. Must correspond to an id passed to the one of the child TabItems. Defaults to the first TabItem. + visible: If False, Tabs will be hidden. + elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. + """ + super().__init__(visible=visible, elem_id=elem_id, **kwargs) + self.selected = selected + + def get_config(self): + return {"selected": self.selected, **super().get_config()} + + def update( + selected: Optional[int | str] = None, + ): + return { + "selected": selected, + "__type__": "update", + } + + def change(self, fn: Callable, inputs: List[Component], outputs: List[Component]): + """ + Parameters: + fn: Callable function + inputs: List of inputs + outputs: List of outputs + Returns: None + """ + self.set_event_trigger("change", fn, inputs, outputs) + + +class TabItem(BlockContext): + expected_parent = Tabs + + def __init__( + self, + label: str, + *, + id: Optional[int | str] = None, + elem_id: Optional[str] = None, + **kwargs, + ): + """ + Parameters: + label: The visual label for the tab + id: An optional identifier for the tab, required if you wish to control the selected tab from a predict function. + elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. + """ + super().__init__(elem_id=elem_id, **kwargs) + self.label = label + self.id = id + + def get_config(self): + return { + "label": self.label, + "id": self.id, + **super().get_config(), + } + + def select(self, fn: Callable, inputs: List[Component], outputs: List[Component]): + """ + Parameters: + fn: Callable function + inputs: List of inputs + outputs: List of outputs + Returns: None + """ + self.set_event_trigger("select", fn, inputs, outputs) + + +@document() +class Tab(TabItem): + """ + Tab is a layout element. Components defined within the Tab will be visible when this tab is selected tab. + Example: + with gradio.Blocks() as demo: + with gradio.Tab("Lion"): + gr.Image("lion.jpg") + gr.Button("New Lion") + with gradio.Tab("Tiger"): + gr.Image("tiger.jpg") + gr.Button("New Tiger") + Guides: controlling_layout + """ + + pass + + +Tab = TabItem # noqa: F811 + + +class Group(BlockContext): + """ + Group is a layout element within Blocks which groups together children so that + they do not have any padding or margin between them. + Example: + with gradio.Group(): + gr.Textbox(label="First") + gr.Textbox(label="Last") + """ + + def __init__( + self, + *, + visible: bool = True, + elem_id: Optional[str] = None, + **kwargs, + ): + """ + Parameters: + visible: If False, group will be hidden. + elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. + """ + super().__init__(visible=visible, elem_id=elem_id, **kwargs) + + def get_config(self): + return {"type": "group", **super().get_config()} + + @staticmethod + def update( + visible: Optional[bool] = None, + ): + return { + "visible": visible, + "__type__": "update", + } + + +@document() +class Box(BlockContext): + """ + Box is a a layout element which places children in a box with rounded corners and + some padding around them. + Example: + with gradio.Box(): + gr.Textbox(label="First") + gr.Textbox(label="Last") + """ + + def __init__( + self, + *, + visible: bool = True, + elem_id: Optional[str] = None, + **kwargs, + ): + """ + Parameters: + visible: If False, box will be hidden. + elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. + """ + super().__init__(visible=visible, elem_id=elem_id, **kwargs) + + def get_config(self): + return {"type": "box", **super().get_config()} + + @staticmethod + def update( + visible: Optional[bool] = None, + ): + return { + "visible": visible, + "__type__": "update", + } + + def style(self, **kwargs): + return self + + +class Form(BlockContext): + def get_config(self): + return {"type": "form", **super().get_config()} + + +@document() +class Accordion(BlockContext): + """ + Accordion is a layout element which can be toggled to show/hide the contained content. + Example: + with gradio.Accordion("See Details"): + gr.Markdown("lorem ipsum") + """ + + def __init__( + self, + label, + *, + open: bool = True, + visible: bool = True, + elem_id: Optional[str] = None, + **kwargs, + ): + """ + Parameters: + label: name of accordion section. + open: if True, accordion is open by default. + elem_id: An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. + """ + self.label = label + self.open = open + super().__init__(visible=visible, elem_id=elem_id, **kwargs) + + def get_config(self): + return { + "type": "accordion", + "open": self.open, + "label": self.label, + **super().get_config(), + } + + @staticmethod + def update( + open: Optional[bool] = None, + label: Optional[str] = None, + visible: Optional[bool] = None, + ): + return { + "visible": visible, + "label": label, + "open": open, + "__type__": "update", + } diff --git a/gtm/lib/python3.12/site-packages/gradio/media_data.py b/gtm/lib/python3.12/site-packages/gradio/media_data.py new file mode 100644 index 0000000000000000000000000000000000000000..ecbb7442a6c7c1a13f24418bea01e74aeee4d033 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/media_data.py @@ -0,0 +1,8655 @@ +BASE64_IMAGE = ( # test/test_files/bus.png + "data:image/png;base64," + "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" +) +BASE64_AUDIO = { + "name": "test/test_files/audio_sample.wav", + "data": "data:audio/wav;base64,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gwobAWwAoQTr+LgFs/1Q7/sCcPj0AJ72QQC9/Qr4NgOE+NYFt/hRABEDm/xzAH/9DQLyAyT/PwQVAiP/wwUdAtb/DAFnATn/owdP/1UJe/pSDFEGUPt/Ezz4GAVj/BX7nP+P9W0CB/ti8ogAp/OF/yr3e/hJ/5z4egiV/uQEswHyAaEEmPpMCMEDwQKBAlL/Ygc78fwCQwVN9sr+KAXbAMgEyPwOAuQB5fnZDOv3mQrbCSP7yAlg94MHpvVc+LIIr/izAcb+pgKMAY75vfz3/Lf30foJ/bj5k/vBBcvytARRBOcE4AMVAFoJzfnMAVYADwC7ABsDtgRCCB4CgwtoAmn/cAX+/0AAMgWiAdP9JQIF+oEDHPYZAaD6x/VCAWvwUQG88hcAIgFp+8oC5v63BKD9pgKI/a8ErvxHBx4DgwGnBF4EN/w3BQH8ff86ASj8qQdr9JgLz/mwCI74EgOvAtn+cwaw/o4GK/1eAZEJ8/diAAYDjfX4CInqdBIE87YBjwFu9A0H2/Y1/3b3M/nF+SgAH/nQCt787Qa3/68E7wQG/sQA8gSv/dYBsgsQ+ogLtABkBxwDSAcLBXADVP4LBDcA6vPZBQr1NwLV+zn8IwKt9Kz88PzO7QsHa/wz/r0HqPi/Cn35yASb/7MBuv0cDPsCYQMiAD75GwVk830GfflZ/3MI3wFH+MkH0/xpBT37ZQadBgv8DAlO+7gDCPyTBrr3awvc+AMDDP+n+gcF0/fj/Mn7cwFM//787fTeA0/z3wLn9HX/uQSb/dwDcf1QAMsEDAKL/oAJO/vBB9cFuf5D/1EDZAEBBs7+qQof/hgNAwO4/dcDm/zUBw/4Gv+m9nX9wvbl9RT22//D/HwCPfnF/7/7oQJXA6D5ywdRAUIHMgA+Ayf9FwQBBi39M/6YAxX97ACJ/Zb73QAsAaMF2v/8AnADgwMpAj//SvyNB2UBl/tMBGT8ggVD+4MHQPzC/2gDCv1p+ov9Zv9x85cF/PJt+p4BCP1n/eb8x/ypCiXzgAqT/xX7jAhq+tYFN/tACMAA3QL8BDAK+P6LBuIE6ATBBL8DegTMBOT6WQbx/ED1UQS07z3/cvdE/Ib76fppAfj4jfdMSVNUYgAAAElORk9JTkFNEAAAAEltcGFjdCBNb2RlcmF0bwBJUFJEFgAAAFlvdVR1YmUgQXVkaW8gTGlicmFyeQBJQVJUDgAAAEtldmluIE1hY0xlb2QASUdOUgoAAABDaW5lbWF0aWMAaWQzIHAAAABJRDMDAAAAAABmVElUMgAAABAAAABJbXBhY3QgTW9kZXJhdG9UQUxCAAAAFgAAAFlvdVR1YmUgQXVkaW8gTGlicmFyeVRQRTEAAAAOAAAAS2V2aW4gTWFjTGVvZFRDT04AAAAKAAAAQ2luZW1hdGlj", +} + +BASE64_AUDIO_DUPLICATE = { + "name": "test/test_files/audio_sample.wav", + "data": "data:audio/wav;base64,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gwobAWwAoQTr+LgFs/1Q7/sCcPj0AJ72QQC9/Qr4NgOE+NYFt/hRABEDm/xzAH/9DQLyAyT/PwQVAiP/wwUdAtb/DAFnATn/owdP/1UJe/pSDFEGUPt/Ezz4GAVj/BX7nP+P9W0CB/ti8ogAp/OF/yr3e/hJ/5z4egiV/uQEswHyAaEEmPpMCMEDwQKBAlL/Ygc78fwCQwVN9sr+KAXbAMgEyPwOAuQB5fnZDOv3mQrbCSP7yAlg94MHpvVc+LIIr/izAcb+pgKMAY75vfz3/Lf30foJ/bj5k/vBBcvytARRBOcE4AMVAFoJzfnMAVYADwC7ABsDtgRCCB4CgwtoAmn/cAX+/0AAMgWiAdP9JQIF+oEDHPYZAaD6x/VCAWvwUQG88hcAIgFp+8oC5v63BKD9pgKI/a8ErvxHBx4DgwGnBF4EN/w3BQH8ff86ASj8qQdr9JgLz/mwCI74EgOvAtn+cwaw/o4GK/1eAZEJ8/diAAYDjfX4CInqdBIE87YBjwFu9A0H2/Y1/3b3M/nF+SgAH/nQCt787Qa3/68E7wQG/sQA8gSv/dYBsgsQ+ogLtABkBxwDSAcLBXADVP4LBDcA6vPZBQr1NwLV+zn8IwKt9Kz88PzO7QsHa/wz/r0HqPi/Cn35yASb/7MBuv0cDPsCYQMiAD75GwVk830GfflZ/3MI3wFH+MkH0/xpBT37ZQadBgv8DAlO+7gDCPyTBrr3awvc+AMDDP+n+gcF0/fj/Mn7cwFM//787fTeA0/z3wLn9HX/uQSb/dwDcf1QAMsEDAKL/oAJO/vBB9cFuf5D/1EDZAEBBs7+qQof/hgNAwO4/dcDm/zUBw/4Gv+m9nX9wvbl9RT22//D/HwCPfnF/7/7oQJXA6D5ywdRAUIHMgA+Ayf9FwQBBi39M/6YAxX97ACJ/Zb73QAsAaMF2v/8AnADgwMpAj//SvyNB2UBl/tMBGT8ggVD+4MHQPzC/2gDCv1p+ov9Zv9x85cF/PJt+p4BCP1n/eb8x/ypCiXzgAqT/xX7jAhq+tYFN/tACMAA3QL8BDAK+P6LBuIE6ATBBL8DegTMBOT6WQbx/ED1UQS07z3/cvdE/Ib76fppAfj4jfdMSVNUYgAAAElORk9JTkFNEAAAAEltcGFjdCBNb2RlcmF0bwBJUFJEFgAAAFlvdVR1YmUgQXVkaW8gTGlicmFyeQBJQVJUDgAAAEtldmluIE1hY0xlb2QASUdOUgoAAABDaW5lbWF0aWMAaWQzIHAAAABJRDMDAAAAAABmVElUMgAAABAAAABJbXBhY3QgTW9kZXJhdG9UQUxCAAAAFgAAAFlvdVR1YmUgQXVkaW8gTGlicmFyeVRQRTEAAAAOAAAAS2V2aW4gTWFjTGVvZFRDT04AAAAKAAAAQ2luZW1hdGlj", +} +BASE64_VIDEO = { + "is_file": True, + "name": "test/test_files/video_sample.mp4", + "data": "data:video/mp4;base64,AAAAHGZ0eXBtcDQyAAAAAWlzb21tcDQxbXA0MgAAAAFtZGF0AAAAAAAD8BohEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeBiFLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4GIUtLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gYhS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeBiFLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4GIUtLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gYhS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeBiFLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4GIUtLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gYhS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeBiFLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4GIUtLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gYhS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeBiFLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4GIUtLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gYhS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeBiFLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4GIUtLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gYhS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeBiFLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4GIUtLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gYhS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeBiFLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4GIUtLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gYhS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeBiFLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4GIUtLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gYhS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeBiFLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4GIUtLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gYhS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeBiFLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8AAAC4gYF///e3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE0NiByMTFNIDEyMTM5NmMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE1IC0gaHR0cDovL3d3dy52aWRlb2xhbi5vcmcveDI2NC5odG1sIC0gb3B0aW9uczogY2FiYWM9MCByZWY9MyBkZWJsb2NrPTE6MDowIGFuYWx5c2U9MHgxOjB4MTExIG1lPWhleCBzdWJtZT03IHBzeT0xIHBzeV9yZD0xLjAwOjAuMDAgbWl4ZWRfcmVmPTEgbWVfcmFuZ2U9MTYgY2hyb21hX21lPTEgdHJlbGxpcz0xIDh4OGRjdD0wIGNxbT0wIGRlYWR6b25lPTIxLDExIGZhc3RfcHNraXA9MSBjaHJvbWFfcXBfb2Zmc2V0PS0yIHRocmVhZHM9NDggbG9va2FoZWFkX3RocmVhZHM9MiBzbGljZWRfdGhyZWFkcz0wIG5yPTAgZGVjaW1hdGU9MSBpbnRlcmxhY2VkPTAgYmx1cmF5X2NvbXBhdD0wIHN0aXRjaGFibGU9MSBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MCB3ZWlnaHRwPTAga2V5aW50PWluZmluaXRlIGtleWludF9taW49MzAgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVzaD0wIHJjX2xvb2thaGVhZD00MCByYz0ycGFzcyBtYnRyZWU9MSBiaXRyYXRlPTMwMCByYXRldG9sPTEuMCBxY29tcD0wLjYwIHFwbWluPTUgcXBtYXg9NjkgcXBzdGVwPTQgY3BseGJsdXI9MjAuMCBxYmx1cj0wLjUgdmJ2X21heHJhdGU9MzMwIHZi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PcnL10/Cvr6+kSq/FeyoRHS4/u8MZclfrWoI+7zQyT+v/Vf30X/SJ9WLDgsz4EeAIRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4GIUtLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gYhS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeBiFLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4GIUtLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gYhS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeBiFLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4GIUtLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gYhS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeBiFLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4GIUtLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gYhS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vAAAApBBm+AV8FflHbut/y6uQc+Ll8JP42VpkGPDhJYCEe14fo//GdI3lYDjUlzY0aygoAhHq7fTVvU+sv725CzQv8PmzAUxTD0G6MeVkER9Xt4LKSs9r8vve+tyTHz89b3aNwTfr/6CW8PLs3JneFvCgQh7M+XQrAx1Wx87QpdizvhxV7jS7l6jcTveSuxAj+nx/S3kh/dWPcYXywjE77bnRcg4t9yTBu/4giaWmSWPrfJ+3Sn6KcEK+KGT7beEfCuHhy9tsEu4PO32motHv16fJCfhF/Dv1tevKRehPcKCHcbNvvfu8doc2ji69m+7HUc5qa7xfiVaj21eUpSv17QIyhBx+M1RcZRWrxt93k9psTfxF9jlhLO18ValYIGuE/m3L/6gohmWl/SfIKlh6XCT+Ze9sKXP3t4dYOsBKNJwdxtMRXezJ9Ll+HqdFzr3rfQfyY8bT2l8g+/h8tb6+vwYaJz3OHZx5fGV/e29etdv2rI7/0Jf8EV7/N9Pr3NoZn2EfZqunX26tMW/3sS79lkaUfqW4rlXlXu/WV/girW50RR/deQxP16PHa9671WdLnmJ/XXItQh5M3/gmNI3Y25/Lf2Ccr5dz5qvRXN5eCPe+WT7vHvf6BDe7t2Pq2m117tasaQEl7v29qlr8FF373eEfBPXTk9tt/QJyPd3d3b8mnfuCUt3u//o9YvcEd737/Ge3q5afeCTe/b+16EfBIRVm7vEhPzcv3/1yUXk/p39Ffb0mbu9a5L3+2Xd70spLl+EvBERa2urKV33fVFgkMzcw7H3ezlL3/FZf7v0gT73d31C1L12117shHQ+T20+8i2u5t374WSkLq7X31L5NWZeKmEnzr4ZX5CPfWuSyRUifD3xUAAAAq1BmgAV8Ffix3CPz7zX3Q4l8Xy2Qs1VFktI/i9XP0DxW/BJw89mFC/mJI6Gbty/+2GMNQQ1IAZjT1qf7jfgyLDrUl/17QeLYShm4OfDsWlLMJRr54NPD2P1l3ljzZLEj9vhqR0oQ+xNFLa3el7ve9flst+5SvG4wthV/YLAkf1uYRbqaR4Pur7yx5bfdW8/uLBtmvojEmH6SsqBDzv2KWnfvrrIV5c6PUdvff5KUz3l/yvLd1cJeYRLGaV+2Ccglx3dy0f7L9O+r9Zi47Ed5HhO9+m5C/+WCEvLjddvk1qEvManG8r28YR3d3u2727yMtfBbBI+f1Xx5dLBesoNJXaPFk9V99Yy7GxXG0/3jTdbeo/Q2jBc/50emEPElbXQSM7uOpvIe9J7TQlFvguLcu7vmePs7z/yViy/5fCPgpNKx4Oqt9e4dhlWXbiJli/jo/D6LqDST+3Pf3NyP/tSvBDE3885uX3JLSV3T5Pbc/xFkrfuUpV3otH7T/txVPc1Z/7dke/tkp1yeTCS+XfZV3fd/fWhL6XMxnd8w2U7eZXb1vrIIGK3jf1ssEu0/PJ6bfy9r0lYhDohJ2ZV/jrco9N6btfKxvZafdu7lk70eLoi6+qMV766dGwqq6u7OQmX3CJf/f8El5Ye6OvN3VfkX5T7v1RH/WpPXu9fQi/1f0QhH3tPOxJd0TxW7say33fi77HcaErLVAiuX/Qj4J7ZoUy78vwRmurvXsbd/UJ5++9+77+j+sERE7zA1+9pWqjol70T1y8Qt73CPkx7H+iPfs73+WuTXJ701FGyg0NypPWNz/qyl4CD1Pj/pbVrhbbF93e77G+5O/vWvUJay13f0VEu5f9wU3ve/d4PZoYuUpdJLRPpGvafZ0Er3d3vyMnisNeII586pVpkuN9+TBXAAAAC30GaIBXwWeERnNmabRB/zEu4Q5tpYb2Z3tyv/xPnpHflFY5f9S4Y8WZngBi95TfZGBL6M/cFJQnejxvj9u7q/7RSfCBugIrGQ8GkRRzBd+MQW59gjO9TOWduz9ef0WInzeife+JisOD8/cOOlhXyDOG/fG5bRK95w8kt3lqjSakKNKXggbu01Z6vDjHL3vYi/FOHV8E0C/uMLKWj7QcN7l/3lLSf1e52S+wywk9tJt/fd+tU+T1yVeta5bvy+tfCvhQVqicx52myeqngQf1/sNX9nXlr2wp3tMb5OK+h68Q2f228u2U2/V2Ji72d4f6nu6Kgj3fd7M1fVku/q1f1X+ki3E3fdwEX/Wfz71Zowd/tf/BHM39Cb7woIcvcw3r3Sf7vpsnw0KZWqzwU8gVOWNcP/P8YJiHqxlG+gRHnBlzJ0dgm3eYuNhqXZVF79yZ/PLYuKIZKGH5CejmXnAtrZI7lBP+5MfV+bapSoEvO/nGj/P5PXCb23CUgOrIL15l+tz5Q4+0Iwkktw1WPtLmFPJ/7p9932WLK07U4/vT0IWT2/1wpvemU49d5g1tPrT1sRGafl7/7FoEQm7v28+RXhHxJCbQ8m+rGT93vd3d3e9V9l9EyWL3bgiLe79KCLMy+xCHmNWb+3u+tZ1f8WL3RPvqxF77v296giM77dl9tXdb1zbvCK/ZpGU+vzFy99jZS5n9U+771y7ddXbrXdG7vvLe+T7p230Wsnu2790vFYR8E5i+5/L/vL60W3WCO79eqv6ffp8dBHyAQdu9k9tpPpSXe+jLt+1BJvftvnrqEfISbrPwRkdyfarPlVb5Ppet+7BYJ3d7Pe/dGfZFvaqEvBCQnaW1LvIJutWL98nQgkOQ67299JbyFtZQsT1Uvny0tyWL0q3XsvreI9MRC2aCKkF235nkgr2l2nSffDW/3+445b6W+71qIve/J7JZXvDK/8RZhHJc/c8VGP92w5o4K4AAAAvBBmk9KQCvgr8w7MMu/Lpka80u4X8xLute4K/LIIEN7rtKOh0jP3R5l/fw8V8xU8L3e5cqRev6abOxxndu5XLt7BK8bZ3bZXSosT1Vf5iu5o/ylGmWt0wqvcFgSXI9333ub28eWEln+/yrykXgioFcd7e79P1mu96q2vKqJ/b7077+hBbfd3hR/gsFB9aDlQnS4XnacbveD2xMVu/Db1+iFe39oJb0+MNte9E+n/L3l4JO0YXr8ucNAbUHC6817/rUJ5Y0QK7P0DvJRR7vbucput3d1r8E3cYry4EMpkPpezguYbc+xB4RZ7D7ipA7/BHu96y92S+T3a/LIQwb37PCF8XMHfOrNsicrFNJFQJePZcjQmed/z0X/5IS8Emte28uHbu5+HNp8FcXeGneMmUEdfh377sRRyt/x+cHWv73cEhSr+svu66J3qLK8hIiqQs/y/X8EUqvKe7J6TR1aTYkw0seilgzVifrBMJe8gazdtJmogI93weWta9IEm50dtCHm8N+l/9d7uzXerP7oxee63cJ93u/qvdn95DE6FeT0m6+mUkUyS76s2l639Ai3N7c6WEF7ZTPfW+7u79KlkuxNKdArlIVrfeje826EkXq6Lu8Iv8EZJ/dO+mbdzxT239wTiw2hyX93i6Gt3u+66EsT3edA+qHoVu/d9OW7u8nr/vTU6oFl3vd3e7shF/QolOTpzN/QIpfy5OJffVS8udngnLu+726UEd38u8vljyfxZj/8N6XU3LNPTkO7+kxPLTd7L5G9ioLbG7u73lCPmNGse/lBLvbvd95snSTEmp9331Qn2SiV1iDpJZCL94rgrI93emUNPb9dDSFlh1bMOtXve94S8NEErNu/w377ouq+vr6ol4sECfy+PWviSufBdmIz7lmhgDKbRSBQIwp4IeT2rJEb3d/ZfZfao6dSeviOl1lFPf8EJX0ntTzeFslEjrX/k1ksTdYY8RjS9n8v+Tkpuv7ujfL+P+p08kloxNngsgAAAlZBmmAV8Ffix3DFp7iRLv3L3IV+L2cqBXt/l5dJD5eXO1hfzEyCQzM/BBwR7K5P2jfIIXSMM9dkbSydfLUG5eX2nuw6UlOEHJNHmvc/2NuXqhxyAS/+4RMjv4JtnrRoaXUH3s7BEVbKdsvu+frzeiydXk+/EiWsRzS45/+Upz0CH8d1/Cr9wShKUUrduwmNbuCHf37fuCUTmLF5z9YUVnT8Vd0ngpwVErelfLuTfcEeeFUEK+54eT6//6LedsKv7FDHLGVl87AIX2Sl/3cVl35bqttld++9ZSevZPSy/1g6S8uEy//QIssH633Y824mluXe3e3Su4dsj4EuKnPZBR4/2dyYR3Us37hnq7b/9e/RfX0/Y2SG+R6TPOr8RyP8NyT+CHqRMcu3YtOGOj9LFCby8YId93fP6FcV9FjdXnmgWIG14Oy3XId4T4aZvWNuEm9XRkp/SupijTb5By06Etmq79RZx11vQt3ug01T95I/3+5jXMFP6EvT0SRehLzGz9a7sEtyCb3d7DT/jCu/Gp70333f3+SYWU0/sENivdvpXqjoTSOg936rV7QI77sQh5DTevxPG7jGW/L8n1/4St3zd5031Jk/Wn8Eh93y6P105jvvsbqruipG7J9eX73d/TLk8IeKGPq2n37fSQTEvZ2V+r81ev1frkrd7wn5CT+90XgjKfrk5k9V/TBHvf9L7V61yel/909evQj5CLqsyBJd9p8vetIvenr+FtPsXlsWiXe61hT1eifd/OT31m76Wnda/baIuGCfeJsoh95f5u78mHuoe+MgAAAC1UGaj0pAK+CzzDGdzEr9xdHaivmXl/3Lhnw4aPTJRqp/8Z/L/7gg5Bogqgb34R7vG2d9us7S1/1+EC5cKBMrL9zjd9wVmygVyBs7wf4ykOcPtDecGT3TPzugQlSb0qk/b+/stUqq/hbzDIbtcVKwVl/u3CnOiZCu++Enc0P/pOe2FMQvIvr/rVru7+G+/ff4dO0NDkLeWu+nt3/Un69wnfZFPuS/uIvmQYSclT+bceOOifVfl+WKny7u7/kzIjpX50i3scJl/8swxoqR+9ui3frpzFfInJ/XbjWHOHmm14z31W+++7LBN3IO5Vh8//l/39+Xv8EN3+hL173HGFbvd8/ne/cE0dzfFoFwl5N1x+hi6+icbLCQkZBTi+7PSoz1lVKsbESLGC2ZKGL9SFye0m59Y7aa/MjfCJ3LrU8JvuXtwp4InjlnanMaUBNtW3een9roKSC7n/touM95P38vhHwQiKd6/CRONje5zb9PbiubIfz5+lv6f0mXdLQ30/WCLOblBvdOY2HZXftoEYm737K133cpO1+EuwVkLzhvL3u97Ls7EnOoob5Q08nu335SO/V1ornWqXWKuGhB1ZcOGfsWX8ntWRNeCIqKWn+DtNX71foTVvaVyEtFZN3T++/J7f5t+RbdPZ+GkrvQuvVQn390vb3wR+XKhH2ImZv8EhbpitzW5Wj67wUd3u9xvXu6BJvfu9X7wSb3fr/X/X2/eE7u7vftVeEfBERSf78VL7vPl/l7vtQQ7v/39tghLd79r2pq76dGirk6E2Jd77rJ6bVUo6CLL+CErOPFjLk+tfMIRX7bQmw24It3uba2lc6+/J7TX+Qjv7Ku8Ee8O757J6afffcsJk+/rwQkJ49TSez1afX19/f3Zrv0nkgjKZu/dydpQsT270t+/v6+17SJe+2nLV28xa6I4ZtayfIoa8Qe9J1pV/4iIKQusYZnt7R39OP7+CuAAAAChUGar0pAK+Cx+4RGc2YzFqjZl5fJ28XxnwqfNKi/5eW4XULhnwibOfZy6MzwEI29LZ54vO55N6X93sIlKNGl7H5x6tdtB83BF2PXLrsRdfhxvpxmC0EXHX2R8t6EoFpVSKVsxckfz2/wRT506prL18gvSqzPndl0Ju+7TvL/vlK93CnmCFSPbGX/2wU807RZd0alWRY1u0CX8v7cg/b3EFRpIbABnf6svv0n9v+FH7ihT27n9yne25YN+CX/u8spzq39693/gjJOHJdtWlv8EZWW9QnthQQ7uSL33s6iymNsLG7ywWY+4Ow2MFjizK0IwxF/Bv/oa7oTBEeG4MJfYye6W/6/GEw7KK6dXDqSjc+vXdx67vywU9cLu5ykOP9IzkXW9P9OE9wnEPsQ+z+723uPsU5h8pLD3N17X+8IFd+93Ivye21+J9uCiG0Xv8qjI/rr6yRw77Q9ZZVr7S66oEl7u/Sgj3vrsTy+X/CS6lBUR73vKyXeu309J5PS10qRa6cJQ0X+vu99kq/iO1cVBEaGLZ+D8SVye5/+rd99avS1wRXd/aq+EVnUeCW7N3LNP1SuSyF5b2Xk9pr8rp2pb2pwurP0tEIid11pL2vWEecEnmn4XZTNItdHYI9K7HTQJLv9r7WqofV927XRXqpa6ct7/Zcv76wR3vaEX8UCQlt92+7CW98n3UmW+lrX/16q169OUr76q39r0I+CQ1a5teJCIIq1pWsn1k19+rReukKhLw7VPH8Tc3J/Yiv++T2W9LqxXHfNHVaI+lsL6os50o/el5PSwq8p0Tydvy9d22CaZvu9mvoXMP33eF8kF0+EzvVmn+9Pv22ZFXSw54ga0twxPT4K4AAAArlBmsAV8FfmHY41WxD8XwxmXd7/NlHnwx5ScufGeH5wab/IzFzlu+jN6ykQK3ejR/cPFD7I51v2BXd3d+jPf/uMNcwi4Gz5fuYTnBbStKr/8FZ7tZqvu5ezTEir3Dk9vdGK/Jy/li/NUh3m8vqS1IW08wsX+9woEOaF3PTHlife5v8E/Rc49OvwQvH+/f+ynZv/R4SnFeQs8aFjyel+Tk3vr3v9Flvf6ovv+J42u+WdoS8xuNGJf/bFEh/fzpF0e+JcLncd7f500b76PRa6zc10T6yF1f9aqsT2zhecOS7rBLd+5Y/bbFpJehRbZYdMJe7lyr3e39HOv/2gRyihEzBofKH0uyghEmqcW3/RmKp9eWCEt7uaTcT8kEplrOzPKxraTpAm7G7lFX6668o1uGnsI+CQRN/t72Nu73DyLRuRGlm5z7j6YfvrGtF/v0QEpEcn0Arnj4Rth66syqxr17gkO5l7/EvyvdL3eSNif/RJMOwZnV3HiMbjerMv46TO9rX5jy+87DcIeKDir7pdwTSsJ++fe/rJ7/+i9XgmsZj/u7VX+Ihu+6+mRCX+q4UT9fE8EO9317QIbvexCPjhBGIzSN97k3f9eYbe+j6sfXLrRMOv6LvfQki9k9V/L0l4q9xuj7t6JBJd79CHkxq979xAhkWPe/qCQ/FdOMv/9VgkK79fgkvd+6sEV3e3WrdiUve6vtLl7LJ3fmX4Jd7ve8J9gm3Sn93YcvrJd/WrdfWbGNfrMbmp19tH7uy3fupSol3supN7hHwRGrX6yf1/o/6rV/Jqvr7q9Xe7YS9E+XUsuun1d5x/osWd73d9+Iwr5hF736YIz7r2rxNcuurE171Nd3e9pEV2X+pSSRkx/kwu/FsXN17pVfXQsr73vspO6honp5n+IKa8xJ9+SIw7H2RDji/V1cdFw98bAAACtkGa4BXwV+Cgdw8Ny1ZweUTJbl2DmfX+X/fE+XEr/i+yLPnoF/MRJIhmgq9wUQIPj35v7bRYdvea2U04kDuNKBOvdr/rdK2EW+79TgXf7z/fuEDZ+VR4Q8eyNqZk6tyywEb13/1/1vXhIuNyeXPxZSZL+acK+HQlNF3jauXoLicgrkPh7bkiV6/eXh61v733CT5xs91/Z2JO9zFh0l3+T3/8vPtE9f93e9PyxFN8v9/ibLe7wr4RFNyhp05EN8CTb6pL+Vu322CMrU73q355ShPh9v3l/+XL/ln+4YNmmYMkJWeuHvv611rJ75f+98Ehb36E9sKCHc/c1+0ve5/c/u1i2T2kjtJ8Ja3LKhHjdmI4JRNHedYIf47Mv/bYKDZfac5G8Lf6KlWxcUST8/9Hh2yfKGoZ7LvnYMDdcPcpn/8O+GYulXmsp96rGw5t/bVl9Vwm9uhm8Mo7GC9sjHzzt7nZf76wVWzrtSlMA+EXFK7ixyJlfLpwmUj+2dd+7UbBIaS35d4Kz5npoLLg1pYe6SHuO4JJk93N7qIve5QK/akmiqbyKbyr3eLQREDDx/yXgvjt/yi3u+jwRXu/+ipdZPVV+oS8FZrcfpt3Pm9daxaX+/onqmU8fqy73pcyyfd19sgMe9+k3yH3fWW99KmSiOV0UeykZhHxwQu7uT77eqY1Hv9Eg7chnf1XYmCE9m/K7yEvfbJa2qEbvc/wlzgku8Z7vwW3fPmX6q1rq+7RWyeqn76s6P6ykffXbTegQ7u7oR8EVtY9Sb2JFE27u974qgQle3ccny8v/pq9v16rr7Gyld9E9Ul+QEV33ASooRYy7+Sit2NKjv3SvdF9fZff2kIu/d+0l6E1iRujWPJ9uqLu601Rve7ucfu3sQTyOFV15PSrf+z6r9PyUd619OGPkXLIQru7gSIAAANIQZsAFfBZ4sZtmwpFVKpWVfuHLmOyFXP6lr8pLumGfBJeYFATf/Bk/BBx0NLbIEzGvHyWrCVgRM639162/ymp715ekyysWQhy+bCgB69zX37Ys7lzzGxXsTBJTeQPIxUn79ZYIt3cYpl/3wrzTAl3/bPaNXlv4V8UO4z1qE4fSXLl/eysKXKj5b+d7vx9f9l9/LBLf2dqi+QfvX+8ivospQg8zH+0Gs4duvq6emqK6L/168eQhS+fuFC/+WER1ryiPkufXfL7/Qy8Yafcjr0zsOG84/Xui90Vi9ylm/DpdV1dFhG93KSe7pZEp/5oJN7v+Et3vThTbChBW7hGbXx9OFt/ur4bTF2c/ZZe0NtnVjwq4ozFOtt1cHBCPfRjZ7Ne3oOpUbqTgYRRiMP6XxB07GdzCz/IgYEaDqvSWSi3jqR+kgkNd+kWOlv/hEYdQYczN6ETvcv+9BScLphy+1NDkC/l6mf28utB60LRs9sZx4SFHIrdEvxsHW6AEV66916S9b/TQlEv01wu8tKE9w7t32oRcm8CX+f7qX2W2Fqq/orDxPvIC3C2a8DrOvVVGPPX5f/fJ9K7f+4UO++a44Ei4XjKdZBdCZc00+X7d8E+R0xV8pU67/gl3d53NtDUWmxasUIKZt/pkHyL6Fnd93wj7sott/BhL4JyBqEGnsPDwHYkp0/rlcEvhN6Z3vXTe/d5F79Sb36l7vWbiyve8wfq8QYJdTfHRPv15bPd/a+wT+fv37e00Ce2Vd7vdMwh1vc0SKdy5uxnQP974Ij3fr3BCLn3KmkukSDJ+l/aNlT9Wd79H9eT3XS/sW0SqqlryS33CPgrMnWx5WKdW8d+CE7r15K1T22UEN9+6O1r3Md9/gkIbf/s8V3d3fS4pKxp+9X/Z0vbdXV/2Pz+EfBEEoce3DbyvBSXlxuW8VxXSho7Wt5Eu/VXPXovpzG2yx2LRD7usn2hXl736wU3f3u+7gI+Q1NV7Yvdb38i8tCW2lnf6t1L19ZLv19WJ1pgk7vXSM8nwj6otfwUmTjVN9vDX3+XQvVX4z603pJ3jYdd5B0Kk/r8TKXdu/wne/d1l+Rae7VyqryYV8ENa6pb9V9essRXvJhzyFU5zBZAAAACl0GbIBXwV+Ydy4t1Sj8EmkW2OM34vgt+YP5qQyX/2wwSkMxd5trjLKr79sExbIPaSsT69JBJDs7EGxDEAi3fTFz+1LLE7vBfnMW9O63xB73vffWI2y/y/ua93rdwnu9wh8D/hXzDqmQfwWT7RBhf549O0UTNv5AZft3oFPL+YfdjQp7ft0WC2OOf80cP0hJbzFcbDr3edgjjyd8qdFis4dvPnVXglvdq9yp0fCy+woKufY/PIkr33D29Nvdx1/McOc80+ozfiTuiu9/rJ68r+be+mwRzDz/XV9OsWT1T9zratFm6afL31ghzsP1CZffpwUiHdw/jrvNuRW+9xL/+N50oZitGiz3nTY2Bqdd+D7s3y/tPkEj/frv+mJRXbViaEPpNcUZxmwgLmDN7o1wS4Zl93u+18TfUtU3fjw3+s0g17wntjhgh7l/MpnGXuVeT0ki/cPd2iFiD7sKsJB+dl8NtQ90ePmn5PX/UJlPP41P3TQueQ0vjoWu4s7WYPBH0vVPtwV3vuntO7nioJLG92ye3X5K1r3QiVVoXbsWghfe993CPivN5v/Zlx73xmN093u7snv9L2un33/vd9+/vk9NrLayEh5SSHe9lI51X/75EWx7WvuP8hqHOp9CZGcd35fW+WrFlqjvJ9f/LY3S28E57b+Xt9iTl9+fwiX5fKUwi90T1yL6Jvf1+CEp2P87G1fvX9Udaa7Vjb9b29a0rZGCK+7t6wj0CMy1+/CJd3P7uX39H1dgi3u/fVjaJB4iXlHnT6khaqR28lX7lVvWvX/tdi33ICS68um/3mbhTMvL6+tFSp5P7EYbiXetF7V5RCJ0LeEuXeXPJlJ9JNfqzJ7afVCJbvhjy3uXLd1sv/mo9aTzilOkCRAAAAvpBm0AV8Ffix2kG9X2SUv67ZeQ2dvzVNb3e/DPgkJKPHk4+VPwjzRIfDv55dqB4f5+NnGX/bwgVAka+Noj33w+3x17hA2mV724Q9/i9SEQkgyMn7e5+WOkx2JVH3IfLN6/Ll/X5e7/Lz/8scjtfkwdCpf3fCgQ5u/u9vekYs4v8E8Y3eWN7v7QISkc0NbtRPVL9z+pm39l/MtKi/EZcgIjvGph2gtT8sqSdmE39gnHCRx3cVu4eSGMfuXHUCn9HYWO5JvlY65cb+7xbBBdz/wiX6Oc/KSw7Rt/vutete3+CTLw4kn5fmIHJV1//TX6L0J7Y0wl4rFZDRYOEiF+Se9tv3epqBya+55/aCOG4eTzc6KCaUP+uP0345pfECUl/78EP5rEf9QSGKSuG7Sw+xI0ELx/hfd9+6IlVaZKIkVKfhMlNLIimQWni0FJaEF2aoWFw82n9z4S+D3lzDLz6TfDujhuS15S2gMCb+IuVtDzQj7APKZT/6enl4kXu824SXRYwZdz9z+xLruO1d+/fSleFNLew7cEuQsOaS/QoQ3/h7hMpkvebNLXEw97pxsY/IHu6xjsb71i0n4JDZx8wLmFN3RBLv7Vbf75NkvcI+bu3XKWGb3dfdO37W50ezl7b9WY276rqzbu+qRZeKhMQ+93p/J2VM7t+ipWOiV78otqnCHlCVtW67iwQn3evzC73pVrq2M5vrMW99OEi7vy9LXBGaUNXervp9WvtSvVkI+PNPsu5/rVej97gj3fl1XVAiLd3+dYIe7v2Pr/o/rJu/eS9+l2k3gkvfW3fBHd7+Qj4IiVr/8EWGh7Hn1tlvz/sWXbeX1orHmfe7680xs16X+9F7qil3fSW0kzMFuWne8YBHwTiD6ra1rL2wmS93V/NBIVdX7kR26lV/pX6fvIV969QREnztRPav6rzFXX0+73ycJdAlMuTl67aQveaiwle9yEvyI96o2FchVlr5Ou6zXf8oISOluhjJeP4/6uXSVWi90pvFfJ74e+Hvi4AAAMNQZtvSkAr4LPFDMttHFr5f/cXBm9wysv06/rxfGIqCXx23C/mNjgUXD8v/uM8IfS8Ej5ZBmDa7SUFnnrtotOFZf38eWc45E4kNwillJE271u40meB0V3PtHVHwzK+Tk1IP9TVwj1CWXb9wlpFJZ7kDSU5PWj/96ljy55eS51qXfL/1gjlln6UZf98s+XcKeYdDsSBZJ7vZf+2xud5TvySIfbR3qW+lsH7fP6vL7e+C2POnu7vb8Ee48XX2T7/u/wUFMJon3dyppM8sEWdjSrZ5i3ekp7iSPR+dj8UW97v+Xtm4TftCggf277ui/u1o+vo3GwpLQsvwRd3qiek2Lpags4QaC355mrT9X/snv/S+4I+UNPqFNscZ3cO4W58727y/u+M0Jw3LknAm94QtrRWoTsDn8eJCkM/yuOul5B9uqxrKa7yXvjyV+wYSX+iNFT0yV/4m1bOvcdk0tJoovdwm98ICne7jLdWoLp1M66x+rE8wRXC7aEUjHCkzbnvM9HqwU+CQs7HXWCM27919iWi10f19ZjYczVqX7E7ve0Eb77vL7hLcKXepgl2nubuHI+7+7w3QSmq8WW2+96XxJnmNve+6ye09dm6XdHi8VFCJnEC6qYe+2iaDMYJt06j/f+0rkr0VyEu2I0zs3rkO7f5WLJf5aJN3+TrJ6J/f57I++nCV7y5evBDu/Ci/vyO9/2cn4Q5PYkEohM/vu/dDa93e8z9qJerhNxfRbV73vXT9lr2nyQQ3375FqEfRLfKCOT+bdFMouf3mf/WX3J8pXf2W977urPFm5VGH+3qhNH7vXqyVeEfFGtWzf/fmStvfR36F9Ner+9ZK/8nqjEyT74U8EM37Kziev0e6G+s18l6oXchJBJtE2+S+m+5AQlfd9vxCJHhXie63yEouVV9ZC3vr6/MdCO7mhTyCa1Rf/2afe38J3vxlbp9MEYt9xSniLn/1irNK1w3pU4iMQK92nS2dz20Lh03Q6YQCa3fkyi/ppncP/nwyXzJvyCndVrfdb+KiLt5Ot7y+X+97w98bAAAAs9Bm4AV8FfmHaTrcJ8da6v/NzTy+uXi47GXszX4Y8xNwl4Ok/BBeP6ZZHnwnzWBv0ktNk5eO/+X99scVzj/jNGC6v+Ezbw3F23YQ366Tc7BHHnrqn7plf4844R/dqp/8v/qEtq5YP6LC84y9j3K6C2lX5ff8IQusnTW6dvb3LPC3hEIDee1GZophE85T5Tt1uWCXcHIKr0f39wQlL7Z33Cepb3vJ67r6uXuuoU82Vs3l/8sKE53spB/7IWqYLe3Zbg3Cse6dSfbWe2yhS9mms3ndGLG7LdDSx79/H4kuCZ8xZr0jp6SysJ0rtXIDhAz+3di293yfv7WJvedWYWpL12fgszuePLYdlBkjvA+LJ6vSQlFhHc/tt72G5O369MJ733e9rBHPveoT3GCj3u4bedh9OkDG+fvb3qs7L4YyfFCWz6cNfPX5iGBNxvGiaoshcNXT+xvJ9Pl04JTN5eHZQuz8N1bQJof7nTEjovyQ+R/dJuReEXv1hN/MsvbCl3c/c4fry+3c/9hSW4X8BF7yvA7aug/4od7j/37YKTn3+98Idk+7FtCO76ovvRe09ikC0z5T274arLCYvP4y4P8lf9iVCXgjMnv34KbuX297u/q3IJvf1244zt73vvr69r2CXxl03exsFr7Xkgiu/W3F8Ed3fqEfEmTp0z8qO6+JBCfd+9owvmbo5URu1FiL3e/WCUtK7v11r3WCLjr3/ujkBdJ/e/VTa58v7VJwj44QT/lYy/X94sS97vb25r3yftk/ghmr3pcuv+xdXk1BFvet9uvQj6/rUt792tasUte1Vll3u3+idq0hq/Ra6O65F9CXixCdb3bV6Ev4iyu/qlbouyftf4IcIfb/btLInpegREu9/oXu7vvuaE/IIVdfWI9daRRLu/piCZgeQPucf/tHbJ+/vULF+XCFV7psEnd8uxO9V6ifX+Iwz8mTXw98PfFQAAAA2VBm6AV8FflHcMMny90fyykrBh10qvLDGUkVD5p+7kzwz4cJjpZWZON9/XuEPD114CHWM2+NR9wIUOP3mvMnY91u4fKF3ftQ8ovSTON7/Hu535Y425TQ/GdoGoFp4w/pPp8srcsecO0vk+1Xc8h9Vl/ovJuf9bTglufv2rnFl/34V8wyHljjYnNkVe4UJIjhhPa+E2fl3d3uRsH4LZg4/KcEdyb3bTR2eCModrvfLTdNlK9905Yjkbc84UT9UX2ea+99YjSe7yofkveFPGCJN87zh9E2gn/hPYcle22H92g6f/0U52qapze3uvDp3nIMw+7+5Hr565q8kMU5+bcE3y+g0PF1/jP/i99mOdxGQJ16lTSeJqcXWNkJW9mNkHmstqptwzN8D1qN3081L8sVLh0Mq8sn79oI3u+HZJXQYb3Chfb9oFIx3dt63vc0WOjxlzstuAx2J8iSFLOYnp0uoKRIGdla9eLzmDoZw93O13dPVje/fSbi4RI5HkDXMzfOrljJ6bTnTWFNExAcUeWtrac8svmTHFxbvEoKSpysCIafnHb5w0EPtr+8bPxFQJW4LO74T8EuZtN79ZP692UFM/uXEw7Rrcgd+z9+sFxL1gcWj5geEvFtvb61oEZ1La62QzZpWnZrb92Xu/LR/i6U9a6wTTBm939aTUqIIe+vcFAt7Jw/F1XvfrX/UgLL3z5299daJKEewVXdM/bX8/rdFWCmm/3GTh3cv3ne5OzfqYS+y0d9Y8Q6HvkCkv9bkv++T+l89X6PBKQmmHDA3d/K9Uf70gT3d97xQk67Bdmve6TPRQkd72q9hF+RIU+/tF76V9/rbrLcoa9dWLlu/shDcv6aNy0hHwXCI3Tt3sOyotUXyqloQW93fk98aX/8TDd0mP3vovsTBF5Y28lZqoq6rokm9wlWvfsmm+joExc/iuKPf0gRXv7ouqLLu9UeYmmb9XvfVItdlKYrv6lNe724kmKuX3u8JeQY9/TMXde6Eopaonbl8ircxqv5KtT/hLSDunJ4q+Jseb45pujr/el1XXLWTvfBNyaQO5hYw6x0WPO5hLvd7+T3wrkgo7vbLO61+CLe8XW7363d/666KmR39iUCK7u/ZPTT+pgQ3dp5fIzjGfcLrr6ybr19fS+b6cN+SrX+HvjYCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeBiFLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4GIUtLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gYhS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeBiFLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4GIUtLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8AAACikGbz0pAK+CvzDs1pfN40Wnza3vfNx9xq+Xbthj0RKpf/sXLJmSb3FH6nRNn/wqWcCpsRFPp7v8v3vbLCBnw3EZ3Dt0eatetoFrbUvD8tD7cJHqfpy5yz3P6k2vxdN9ByxeX/6fhpfF8s/mMliFPFDOE3xWhePCdl/u3GRlewuE2LpvQJElJqtwf2n3eT3Utz6D2+4KvRuC/7vhzV3jHf4jaH97B3Dy6buEi3Ve8od+EtBFQQzLnE+qxMEk4KvPayfy96tAolg/d3On5CnFQy9/vy5CfmCXDtya2i9deX/dr6mX8KPfG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WlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gYhS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeBiFLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4GIUtLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gYhS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeBiFLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4GIUtLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gYhS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeBiFLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4GIUtLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gYhS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeBiFLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vAAABVBBm6AV8FflHZg+nL/vhAvNg2QvDjRKR3+YmEX9v8u7hmUxfqaGFlcI99YX8EhNIJPAqly/+4Q87zGan2ajZB8pUzejQG9xpQRrZR3fTe7vkHz59o8JF5pgMluTcv73hEmdfIPXQXQvB7FJPptzzutX9LLa1/+U5iJZlO0gp4odzNhjZTzWDXX2NywLR0NG8CRnPqfwp2WyjtlLofjjzDhEzn/lgv2Q60cwvOJYfvjX0Y/z93nYIZl5o1zLrvatU5f4krvdJ31p/tkK7v+Xl5kQTL/7gsGMnvaLkWMi13cb9TPuJvUv1xNIgrVTil8v3dbKc3fsSwRQEzKz/b//xVvVn9Hao7k/SuvBTD3ty/P4Bduuv3vcL57bnI4S2350D3tboHvhLxWtOTb37gqM3Rl63ljfxWaLxAYtZO2hrjN0mdidOuFI8+9Ducf1jSzAuHb/LuRtG6fEfteaQm5Sn+5JO4D5zOH+1fGl4R685UGMvXu+7fSNN/5Przt7CFvuUavIHMJcA19UrYk90Tlhv+Qm77L6woZtsZGfDDihPZZYetJc01eJteuc3Czx+zv250RjabH+R3Z9y5w2OCQB2Xb6PGZbM+C9gEtHwGyhfEQu2RobbOf9gp6jA0QIr63HICcZKH4PSpT+1k1zvJy/5ehKeEfQpmX/ywS92jqeVRWT6Vr8PWdwyzK4bSch/GPA+i4WTeevfWaF/rInCkjyTzNrFafVbGtFTwq9G+G5/6u+3pjB0rPT1VO36v+CCuDHaDrnDNhuzWh591j6JrPZKU/lKEvC2bz5SXwxu5Vyr91xlf6azwRTzvSq1KjMFuE5x7IRL3cpV0pbaluFDelv993u8q8pWB1zp6p3lIvbWThHwTbZ/m8rOLdVhe+7u9n1desEk2/x2LYLZdvKXfi7ro7BEU+RbdYJdO+PFz8usEnc6eXWCK7v7rIIhyj+mzqwQid2d+1V/ynveshMEZnd22hHwRkP76/GCR6v5+raG5oP3fysJdJ3st7vrSplu+T0uqXMZ39ZCny/Xk9qxP9EKDS5pcNQa36ylJUpTVFQRu93d7nTfk+umugV93z9/OmXgOoR7FECnP6Zm/cZe6T6dmq/LBO73rorCgnPnH2VTuXLPYcJ0w0rkQe3vD7Ubejpl+bSVpex1lBd6DMSf3JLThG+yz+zv17yc0dEi4lh1wrfLvlGbXcXJKz4J/rHLumsZfdOZDu9/0NU4q9x24eW8I9CZl47SMz5zxudvZ1MITLzMXdROETu72n72OT1utRbDO31n2vrw8WE/hM8T38+XpHQDv3dZffVN5do5PSr/dFJ/UOX3Mc/pjCy/v4sQc6YlZJtfRAk89F0p4493eQ+PR++lhPdrWOve86Fqm73W+T3cv6BNnSXeaM9CPh4lr49WrJGtGidjw2uBfVHf4JzN6Vzb3N7VBA73lxJ3e78tC0U0/bHYrfeVJPy5+gkSbbvtdwRFyZRWtH5ff8JaBvB5N/J/VSNngl6WS3W1AaXiPaTUsImd98I0h+1h8hw137LuQlrJI2W5JYSL6NXjxCnXOEuEf41Tr1+O3vY7xX9MIFOwG5P30UFo+fp5/7iBuq6ZLvdfcwjPevJ9S92+qpO8eIlwrG42cmPg/jFvwykG1N2eg70JKEO/v7GgouYPJeVYdcVTpKu3KSgnLD3fvY8Pus+FMkgWbJ68kWNTbdIRNfezr9ogouxcQXNsq/0L95CF794jeuyQU2z+YHPuqTyYWyQiRoZ7yfjPf4S3fFc0ul3sTmvJ7T0I47tczBFfc7Zf+pIYr6+sJE3ZKn6/ESF5cBZAAAE8UGbz0pAK+CzwiKw9m/Ihu7Jm+/ykW5iVe5eTXl/3y733wv5iTzMg/jeYeDj2Jt/T9h7E2/s8Mr5dy+a60xYPNSr+HIlrl/bdRhW8I7x59MzTr4muN3eWMIKPQ+vw2koVTyjppdgpSkdL+/hi8w49sITxGYu5P9x9z/7mK+neqW8r3au/xnhI/NbK3u9uHRysK+YZeOm2X93xnMcKTd63JlX9AJcRvtPy/v2FdXThxbdgacw92Sf/uItv0udxEey1139/vl/vfVl1Cnm8ZvS/vthQllO91frZOTu+W2qHvvsZ7uwyiX3vd0WQ8VFaYllhAp57bnJc/9v5J78n6XjdhK6Xy00JZsj/SlK+X14mKkeu+UF3u0Mru5IP3LduO4CLzqaox962VnIC3OM3P5P7dpy/y3NrWE3+NEKWVlb7e4I82VIptWG7PXh23/3TTQKpZNHHpPEUTk0UlVNF12FG8yBbNfyLHl9+CI8OL0U//6/9+vpr8KbHBXFpI5HI9b6q/M3Bls+/g7t6gtMYIq/ln34VLKgOGXKg0U3qYzVR/v9fIYS94S9CHb+wT1q71F7lH+3eWHso5CN5mYZEjtSJPkBH9m7rwX1U0L/7BXEB7MVbp3zs1xdga/2dXzof7QXsAl2l0ML6/9iYJOWd8v37gnlWJxtECNur+kulaAvx/w+Wl3TO9vu9+p1f9r15fV9QjMJPLjYZL3IHb5FpPdM+hqxhoaUzfIoua2jz13B+4n0JjxOG5Pd3vdOl6mJd3CHmys0vRiH/v5PcFcDykzilTJ2uv3fLoX9uvWLXuixW6osF0DV9Xfe9M9qvbvpldk+T7/8ERN3eEPBFl/WX7XiAVzpyaZS7OM2WMvv3uFDisVu8ao1G90i52fpQ22HdWuGaD8fSv81U6zJeMIiH4KRY8besJ223AjuQXi+NVs8EJrT0veJNDqL1aPd0lFvCp89+XqX3/8NGdy7rCS7G/3+Pu/d3vfp6vPLffuS9/sFhXKw9ux93SIL8s/3H+TGcbr6BSIb4HrSLCs6W3oxC/wTd3cbG/v3lOePS1T9SVOe+r5zr90VOrycxBoSXfZ+X9p819+myyB0/9lITu9qJJUI+EiZGU4+md/GEddOT3N+a79PftCxKNjfLr+zsIz/58ufC05P3t+nvOtXeE7re7f4SveQvfvye3+bizbgjV7+LRj/szZP0ksalElczvAJ3p5v7WxK+kyb33Y8rKPf8r3d5YfH2j+dYN5z+P0wj4ITS+6cPQITO/48rEnLh+5bCrcstvzJi20uT21Wqly/SklYyf99y0977PKTmy1F9nyVyfSYbl9BG5E5yl0mruz6giJ5aIx3+J97Bve1J/brbjCW77ub8At/Y7+/y+T221a0h0sPDiTF8vdLD6euSoS8IEn3G8m7w7TNVTvspwnve9e2OK9KynpP3Lb0opuxfF9+6FSl6+8puf21japAqnSFGkm5liuMCM1mn02L71XlLbh2UX2D1fA/PqDnu+RJcXX0b18a3+loRBLzb3udIVWi+T7+URJKUs3Q+7CF9+HHqPemqLFUqXNfiJbzz62V89OzIxt3k+qGVbreZ5LzhTWmS5ZU4WL9N/rZMJkKjt3u77xB577fvEdTpqt/JBFyynBtImtr1C/qkXyWmn/ET55LvL/+Tz/iIJYwy+fvnTdPvefA/8ZAAAAE3UGb70pAK+CvzDuHEfxZZLOcs5/v3MQN5b78vksL+CQlouMemy/+4R3dmQcaIL8T42vYQJe8iHZf9ywRF1zpp3J/TrnYQI6+t43AeRNi3KXqnw/nLkQdyBMyu4dv12RuOYv6/Elxs/vVHq8W3mu1V5kF62e93P2i/r3dnHFj+CPpjuhRQp5hk7VRRK79wpnSTxTjTG9uyNlvEOqOa85cuG8iPx0QzSpQZfu3oEu9cXcq33g7UnJS17jJA/3d5Qy0HOV0SGjv6acydNgvWpr77Lyff/0X4zaC+FC//YJyR3ZDizXn7M/j3dsGX3d8Tq6ZR5oaYd9aWCoqKhO+51s5KcChsrEZ63D9/v681yJ5LPBNYeaZZPsJvYu2ZPTacy1ef4UW2WMEH7u93Hdu75g3r/wpMP3vnfnPvc8dFZGPE+fvDpZh8+uN7Ydn+upIlkiH8ty6tfc2e3EFaPym2FYmHSVumqPHx9+fJF/DMGT1l14KicfEgcNaad359N7hTphBs/DezL1qtzdiDtfhH582l/90Fbt5B4ArdfrM9P18/XXRRN2zRCNYKDCH36m7N5uC0gPa/resn23bpuPyiE6/c0+Y2Eij9WZYK6j2xW5NgTVgTJoHfYUanYC8XWKO5X3yj7fdGzeos46GlNIbkF+9p2XSHn2Ji5c7MqDq3wS3f3MOTmn8FmNBZsKDSbe93KqY0kVOMNoJz+8Z7zkndMduNSGQ0zn+WJEtPTy/J6151giJe7i+TJOvuEPN5f8STI9SslNT7/BHtv1+C7huS/1JmHf22CIs0qcG7zwQ3Iy7F37wR+HV0KMd6xd7vvbVWCc0OPyFkQ39tawQlWFNv7h2VEK5fcIeTeXy/7eCMjxW9b6xwm7u7vKxW+/dT37FhH3gv77wVEcOOG7y5xlki4v3MIui7cYUxpfMl988d73d+a7v27RmCWleHmeNHBurM2rzwV5ZXhvZtVMWfkF9BDu77N7vSQvYK+Q+25U7u+UCu3E0xNOuR7/oOXvb7t1CPYKjOWRIorSn+2m3dtdthKX8+F3fuYr712mEqKcfl39nvRvt6y3IcXrX7sxX30eakBdUU/9tZ/aQ/n5w6+z984sleIVhOkvu+T7dz8n6GXKoe7uRS7vuw3CPQdjJjb9OZNFmTf5YSzRLyz+/eqUdHlorv1Glt33cvyCofSWJ/4rk2191jWEJD/MNK0UG6u77dTfwXzlCPua2FxT62n/qCAQ7vmc0Qv2Kn4g3F0oOG8DP/YRve9ITlKhKfvTtYot3d75f3096WL7vh12MI+KJjc7qQRHn8v7+jXPwgd7u93RO7cnt2/kKDAWRz9p2jxSs/Z/3IRw/dv15JO590PYSzPvd/VlfZd/cX03kRT3d7gl1JklvzxT0WrqLNw3FGkUuI/////wj47CEjcvxkSF5fyYR8mCVtNf4UItrapfB8TeT6cgEmOyRnJzC1xOSrfX2YuX+T1fqJLl/P1T++hPyRRqwg40w4e1KOQs1vr4Wh6LT8VvO05f6J9+Ld9DDi/9/gj3cvIkKeTLuifWv+tzutevpImf+sIlq+733vXkgp2/dx4T+XpxvS3up9hb2abtddYmt5TOc0rfvCIt0ezfKOL7pEODWWS8Zxwxf+IyQ+XZfNJ/J67bioqJ7qfP4qpEgsgAABUNBmgAV8FnihWYEIdyxG6T9xJNfv1Nd/F85o0pcgl9I58sL+MJy5JOYtDSBNsx4MUzUbH/GljL6tFl/mPYXTyOcmz3qcVPbnr/3ClEURvb8Em0nbhCsak13qti9tsWI33joW34k136vzRzuU4z1/4qnvqz+Er5Z8E7adcvyX4nx4Z02z/qMUhTw4aEH+mYBrekvrfJQhyl3kuEA9Or3G4azaCb+qsb4EX8Xf4fXuWcPUQeSU0s23VFwEM0t6rQ8xfe4spi9faaC9kt4tdyzJl933CkfU2d03+CT6OfKVJVw+lw07CdtEK2CdkLRv9ypvtsKejMmZfaqr61zDlp69C9QKq79IwUP+wykEq7hQoRcbhSOxjLG2lebTPzR3uct8bI5abHsMKHbSRbjeEH9W8O+cmN0QSf6FcVuDJZi69a0zlQrTeffk9JdfG0GQTjcjnCRarYRUkXEjvvjRafnSagxr/y++9BS4QMOXW/vwtwywOjvDq6Lfrghgt8sEs7c8xfb0j2kyywVz+/3l2xwwvaNwV344oim+N9xkk817mjtr3LG8Gb7Rwb7CfgsCWn/XXT50BjvCbbquOlYt72J98ZQv3uHxsve4kuifPy/9ZPpOXs827aPWa8yBh6LqizeNepp6CHKoAgPToy834YrBv0Lb3+bhVTPe1wm/seIt3e+AJNy4dn+/xnswEe+bJwxsrgjgeNO25fr3ChQWdYw/ekUeKV0menniA7K+rfcXuQX4gvHB6wqimaOfcIbIi3znyvrJhfTWzn/STxtGOmmz6BSTZjx/Wmx6ho+YksLPtk+nI9cKUVh0F8dsb+5QKWrNuDaWo+51JgvKJJ1ze+T9aCBhzHlhL1dl/3bBPDSThGjUI9t24OjwvhL3y0Y2Uk0uv6y0PDlmvJ9qo0r4U03FndwoBfyz/fDV/15p/d5w5LfK7J31amuhyqMbPoZWD+Z+EyuMa3yhONiPsWwRGoOp23y+pZOCg6Nzg14Ve8OYOnBHHBJeke7yaTbye293ikKwDH6Lp2kknhmXLUnC5jlIZRLOki5OOKXV28PLcfSVtBMS09N6e+nRNb3qEl3ghI5+/Wkt1w7E9e4Ijp98NP7JOu9/XOda5d4s7yxz8sWL7oIincK8/zhve6dMEJQ8kk+x2eFCu7923303bpvargr3d3e72+ZCHo3fgrJzMPve/t+WhPda8q5PrvfBLmf88v/q9erh6/S99G8vCL+wpTzoCa327fdsvffWLyqT/3eT1//3IXd6rP/N3fQmE5Q0+8/6WrF9X/R1pJU99uTe4R8TL/H6bv1BES532/soQE4Vcb+4rd7vsWw9z++yyelE3v/WK7vGP+/erG/dU6k9PJ1wiR3e+E+HvfEDf6lfL0cRfTRahE8xR7e979NKVN6UgqeKdIqDbhHxBoyY/P/wRGp0/HqJOK3FbitxWK5PT1y613Lr5N1ne01Vix3f5Pt8XXNLvpSokEvb9sqK/x2pyw3vc/e7XMxZnR+CSlEdVlQR3JtjrLb3d4h/kZSfuEfPFV+Nd/hc0nXhzsKgpnNV2SJvliy9vdMV9IcXdGYL6ol+5d6QbGvvUOtX/68sgh6t7EyybdvVKmGml/UvZrJ9vi1dAnM5RWEWHZRbksh/a3dOqo1xMJeYwLhhv9+78uoOe9akbu7wtWJLpviHH5oIsrny21JEXa/T6JVP5fki+X7u9uSmOxvHjoz/favrBPxuZ350ghgn1WSTeklrJ6dv+pBdajsq+bw4PWkUivCypcvmcL+qRLERE8PuP+v9778l135LjnR8FcAAAWuQZogFfBZ4sUkGs4a7h79ykJf1+Xz8M+Ykh8Ee3MQWvi8PsOhJfxfGxpLE6NFu4qcI9woUfZW/8J32b+fCCi8fhk90Rx+N56bZWiDwmGgj/dd0vdLfJ9lSYXW/3bn6TfLJX1u+T95MTLHXfNmvLlfn9ezP/CvizckNR6Z+FMfnHIXmOgkv43u1CbXq35KHEdlAE2+dNKz2Q/wxkMt+I9/7du1+7Jhwjb23G79y/flEKYY2vMj77iNK7BDt/ktTr7/m4bijF4SaY7/GbbUZi6tsMw6G4O48MjIMr/2BW/uIKNifQ8OTnrXr8dIDjM3uayLuaeZpSh+X9fCUoi7TjAZ/KbrXBhixSjh+9vCtU/+FpDuj8j64338vyeoRy8d9zInp3feliSny06vZBPzCuNyX7hQk7jGUyUhmnzuyPy0yMIux6VsnNEjv7i+8umxt2IiOpvAW1dd/csj7EvezgI/47yvvNlPktsZQ1xbUrf3VFYeKGmetLejR3p4y7m2np952UfdYS7n/WMvHZlUCF6OtP+6c8I325H+EPHonkeWNJEy+KvDbJb0O46j2LifLgyJ93Rf18FF4R+Hz6GbB29wpmgWCl23eHccE8U4s0LXB/AJwm9zptJpsKdDHxULt97eYk4SOHoZb8Fla3go1hcvzghPLGigyOImYgt2W7lx3dzxEZbQuf6TXhX3/G/mkG3akD950G1fw1LBkifqxHrjXf7BbukjSIvoqE3VUWXx91Qg8WHINM4y6U6TvY9StkjMO9IbZe95E3OdTOlGqLRUut1ITdH8EpLHw61JQZAcgnuui+6yxtoZUHtdfNdpVPr6EEP1LbdYd7x1dHk+lTp8Evcg6ndrprs+19b0uEn+CexPXZbvMmlWisb2jSmfluMQnUp3AjflnP+ObaP/6D9Eym4EHp+ogvj1kz465t1dVc0drB9dy8wzlJyZ2/+mCQzNdeexkx8n0ll3mLKIw63fL9v4JTP3gqlFW/BcV9u75GdXWX7kwyt95f31FZRKX5gc+mwiQddH3hqhkCEycgWqukJODJ64T/onfZb7hHw/3Ddbs8FMmPx7oP45i+UgJ7sY6Zf8g2luHamAOKEsvO972tQ4Kef+T1fc/E93MPsH7/IUj+gr7VkZl1/R4LZB/fNHnNLmgh0RX/aVf8FPdy61ZoRRRXV9320dYfokPL+u97u/oTv2+GPv120r9F+0C7e93f/5xfXnh8I5ILBG6u3Xd671O4qjuq+vrWONfXVVtayXfCK7wU2g337u9G+5pYZk/29sFRN2nd7710XtL9LRpRMvva3iL3u969p937WT6T/E95NCt73L+l8Vml3n+xPqyZf9o13wj4JvLw26PK8lrlwWEuHMJdk93em2T6zW85ARieSQtH4R7ujvvPuxsTdy/vvr1qpY6vWTdjfX6izPhL4sPmlyLJIpVvKXAj17ffvQ0W8V3p2be99b3uEfC8iEkw8k70jceCftNC749100ZnQM+zaxITbBQIf3vdzL5O+ET3Hct3c/5c37QKBeDrg5cL+L00uQhCTR9ZLvOtqiUIz+T2m/lJyf15JPWT2aPVZIQLaZ1y32976d1lmEPA1eK+/sXPvvL+kz5Iwk/UICCxDFaG7n5/vd7yiZx9+43VVxW9ekUrxW/J7GiTHWu6Ebd9/qjFLzdze/TGm4c4djYqEemf7iDXzv55jPWv39DYQ8fWwg5unMNd3utXtwfCPuTt3uO0PLxZhzK/qvBZe4r4cZ1P7zpCmSE+SFaTL4gydZtHqe/ExImHWSX6mu9hWnlm4rdWJ7p2gvvDctLu/Z7X/Sm0nLleSCr3fPy8dbPpxuiQSWUYldD4V8QIVfSX4qbXJlqaXJ6qVmiOLtj3vuNTVO26veT5Pr/JRzMy5ove85iVg/deSQl7hj1Tr74YxX5KnqyRBSbmZIco8FYLIAAAReQZpAFfBZ4sVy4/cN+HBHHI5L/iaWX/2wjtkOZqlkwumzu9vX4IdZiyXW7Q/e9oOCSjC2TtPhuL+Se7Ynvh7d5cfxq5v/LVe+9SxRUi/3b+CPuNtqd/fPbhXzGwwvdmfKYl/d7G4SeQNTp23LJ2IJEiXNrstqBfx4cvXosOwlPocDnZ6aB8x+sF9IOjRFNH/4U24NsFbsAYR+vP7dlTBv1VB+H2eOoqV9x1tGjYX3d91tJ7jANLAu4M+9bChQl9tby4Xsq/d3e+V5Z0zFqlLCHI3ODzSvgm1PX9Hu9/LGZ37B+N9uUOtL9CY+NxnDlO0zj8OLqPJ/XTliru8yKCP4GWPtBEpeNrLbsyqN3/l5nkaE3+KCFqzgK3Jvu/xnu7HYiYXfvOFzjr/XthMrFfcJ3gNakhUfcJ0V+dl77aF3z7hN0v4Qvve9jvf4SKY3ecR76o0/u/cFG1HRL0eAgEvv5//El9wgQcE962BK/itl+/E2vCsj+/aCfdPGxAbv97u4TXtggEZjju7vgpOnCPk+PX+O9L730Cu0BDumDZwwxlfZ/udmDRkPXRYU4yL73DMW/1o/qSkqN0JU/ZP38byHKKLBPXv8EFBi/ynIQvbBc6AZ8NqNH36OwyJ3d/6ab9xd33rqiXMIve0j1CksFjOpL/768wjLj7M7GSBZWJV/e9INVuMN6BHi4eh2IpcGeG5J0lTXpXwS5oxDmLTRTNknDO4675Mot6UI+CMRPvZ+C2GK/+d3d7iT6r9wWZVwyvlyE5d4I9L3/mMLolwVkeXbAO1xRCsVffCueVp65S+HuYTzL1TngiERurudYKy8JeUXq2j3W7xzpzFPQ72P2eCIke3/94IsI/NO02/VAgpTFbcEvDqgQ8zvMj5RJYdsc9JLZvum9mHM85m/pUVKqp0xG97v7Qy5aPz+97u9wkufBWR3d73Xbr8E0yCHYs9yy0T/s/Lc5vvvCZyRe93f4skOIs/xvf6xb9S035PbS9UumySNDNSw7zMEJK1p/P8PwSHe9qf4Iu7tCK9wViuVcV73vrfuFBLivef7p7v7sW1z1Qn1S12Pq/f2quN139krl2kvtesI+CEj7b79Ne0/Iiw23eTs/v6EPqu/v7T035C3vuveEfRH/Rn/KLe/RPilVfX15PSXrNMbI3xVe6SrkhHzHL30/y3e9asokWmZY53d+T0ndzyLL6/EKnfXrZFt+SipBtIskK9TrTd9fvKxJ+rk5P4oQ+qwKKwIr2pUi71iIR8hZf/CZNARGEieTy/r4jeXn5ffdldgmLuYNn+5JD7T4QRBeb06Xus5mPzd+T+mnkcUasYEO5vy1T+kJhLw8w8/F9Af/U8F8EH1Z+T17rJU4oW8pabf2Xd9fIGJYbu70q9U7y/kKiydiZe71o5UCW73czOLbosIXhC00/z/d+oLrps9sm6QenC662Z71ejnTVYj0oK8/e73d3pVVavQx2TDHqkSzRE5E/5ryCYRgqgAAAQiQZpgFfBX5h2Ohbi+CAubOX0a3X+LC+LJlxLDjqL2Wex/Uvq/Fy9swrxL9eUfh8srC3hwJY5k5EvDuT/hTzSNF39rZhECT+Xb395mEysYsG/LET94Z7fR+7y/veCefLwH3Fr/JK/i6KGRBYK8AEFCcjjy2UhachZ80T93xNzyp4yv3vhDY7p73DNwu8v/yllybQqyBTzGlo0Y4vx19jekErFAYu+u6geGSzf4C1VSNRae6VEve09rboz+zxvxQOea3kVmz7YU4gnu7f34b85EGdyVlpxjvn/KUMLW20PptJWJLuhc6ZkwTvm3LCEiL7QZKaN5eUx8Sw91uPpJH/75a3Cf3u+nEXPry7Zw36wS42nlX1b3H0rqvFTxlGXhxZn+a+YQ1+JLy/u4U8EAxzBetxVzkTQKeYpOgAjq9rLz01jml631uVjLtXtyxADI1/VIhtrvlLs2KQILsOIrAQKv+0M6WX5S7fg+6HRfdyvx0Cv4IDgjv14RP+vfn6bVckmdL+MJ+JTRre+IJ8g6fy7/FZacv/lKYPFPkOduJiIJbvngEnrXOmuyxneY5ZNmvA303ScS2uDfSk/Xz6BMQbE/w+3zQylp5C/SqT9dT2zR8v63rR3tZJ5cJrbLGCnsVu7/u4lzcBe3U/Txef0N8OGL00XDCTsjv/vpfd4aa190zKqfwQeETgjPD0meA75fnc0hxjepUka//L7fuOPKGkkUGldpDBX+6cvrt4KomEyBvW1w4g4OlpCUPjhOeNp8kng6v17gpGMXYBSKva86lWcYefd+qCmJsLv09h+CMbXLpkXR8MO4uBLubq9/lqnwSz3wh4q7DSjASlf/XzAt+WtNxIvJX/d69FCe73mjCPgiGZP+3+CLTuUffX4bh+Lpat1au7/0dhAkO1P/z9XBPvjAl/kHiLadCX7F/cEJnvy70V+/vJl2Nx/IwUGzPhJw9T52WOrQl6evCWUlV+ZL34gnMu5f/fRK1k/UR/9TTh93elfEQm5D/3vr7OSEfBPl/y+v2I5unRXoSy916kvosVUdBK78q/oq7LXL9X6yS+7hHwSiJn67t7db5P6+z6X0xN77G/dXrX6XqspASXf6EfBN4/TXd2/sEJnvrf2JG3d7T9P5JCO/1RTgy+i91Vif4JBBbhjFV6L3R4I+dVJd2LRDu+m/kk/CRfv3IKe7fwVne70nduf2/EC7ve/v9Zf3dOqE/J6r8EgjEQjlCj+/wXb3fS1+OLl17o73dO2hOmv+I9jf5sFneof+JtmEgHV5HPhSseSTMfneE/Jh61mlyIt97+UERsueqnKJu79Sd3usr8T9apom9wu6zMtV6pc3LnqW3m26yLdCNBETNupfucp3RLQom58fvdLhK5JvYrd4Y8EV29Ok/Ncblf+6Ov5Llb2usFcAAAP4QZqAFfBYX/3MKcKvtrymy916lSF/BJ47ImMv/uCDKHy0eLR9QM192ludUjeK8+9xZwlFxt7NOc+X99QtjpGHm54YeBWT2nb8cix+X033GzalTwn8EVvSmnBfoyWCL6Z2SM9fl/23Fkf1T+JENPXuGTsJxifi9MuHr/y96tD+je8+SkT07yd54YV8Ehrm4n12kxr3GY/OVcSEG93+vIFy5uplP7SetBNdyPczaG4us/audFW7gty5btmKaKn8ZCvjfoOjyA0KxStp7gvGJnR7lQXlTlaqsJlOJTXcBH7kb6/tS8F2fZKJHeTc6eoKcjn3l79mNH6dVvl5aZf3dy3DjbAyJr6/hPzEk29/Y0k0Ebpk4CrtcB4++HfYlUWK3XyKS9n/G7IlYNlTwclitbw9mnszG70a60W5h8/2755RNfeavthCWXMCyHGHd2Ocf+CUpSZS+ErTHbs86bvOwSbmQO06PqyXDG5BZbQ7g6nm0/r3X9YKKsr7T3L5W1uWCHjeRPxfhtJH0YMYHr42iwwluVsXaodgOZDRxcQCAztub29F8cmpCTc3nzTRU4fu9vj03hP5761omWV6uf/VdBC78vu7u4S8E4p28nb6y/9Nh4mTe74BTy6/f14btx/bBTnFIbuND8p3/Tvv1Sd8n1WXTgt4aQxnMDi6Am17f/Z+IEucP5rRFT+4LiFDpd0t+9asTZXMg9HglIZdoOlzjL/+q0gwTjJN37XWWnHu+CLLWLxeSYe+4S8EYq763+Cre5VwfLXBPda3WWCDjLpyOmnnh+EPj9f+PVV3eNYUJwQ4EWB/ieQdDcOa3+4gkuIibl2BY/VEw47sN4TFnpMe3cwSk99/cEQqau50e5/fVS6E6V0/IUj31Zu4520t02Mly7iv7qIF8N0xyCGkHqDovULRhdHuFC6ZVd7uX73d2hPxIjKxk9b1yXv2Lbu+YqqPR+6tkKP76tddfXtPwQ+Xt3QIZLiOqcqf/RSK8IeCLy/X4szj1Ho/P7/CAm772z69vX/Y0vVdifiPX1qw1yckI9gmNbt5ffXzi6b5t+j+/t+/r6L7E0JerF+0l6nrrUI9AmmZdCbn8MpEZTvk7+9ddfVq/fXhe9+SwQb+1eNr9dZfERZU5Cvff5ru8I+CUlbT8KtO9PzwUb3e99Vvt6FdriPd7dJ/J6P7ErvNxpO7T6BMXd7u6KdrjMJeMl2/JInTe+RIlOo0E5D5e+utfElOIcT91k+T230K9fk9ubIUfpvJHEKF7kH7e6stdrt5tQsT6q8Y6qi9NCf+jluvJ6pNEfITuWFURmTt6/ThfJKZ7urE6L/kiOXyeie1hf0JSJZLkjJCi+aT5C54wWQAAAO7QZqgFfBX4YHaQ24zU68c7/iyh3NHScVkJN33FkJhrYRs2f825Ub2/F70uHM58FEt3meWamSGPCBOO9UB4Qyzu9qS8f6yP3YN/spf7d9buFL34bk/c9bzRYN37inTOX7/CPd7joGzlwEjfzd3oBO/wmV4bQwWu/Lpalgj054koV8xqTQJPD+6l/d7G5Nci/J9hYVvsJ/NYEvjkqi5KeDx53l58iHp/3irvZBAbRVbMOITiUY8WZkn7GUruP7d8swn7R2H4Z66SkKzZ7j2VRTR2WMhPpj73BnTGA1tfZ2e4dgryfbaYnbqdPcQVhqeK55Xrgp0ZkDishMD+EvBM+ZzpcjfjNEvPuVi9VPX4rn9z51W0W7js719iSmQbZ/lISf5bDljCfgsCEidiepSn/ytTxef/fhTv86Bv96xqu3q4cT3Op1dGniT30fvoExaFuY0QWttMtk+kres3HZnk9JLL3CfmvK2Vq9BbCenSBN+x+uHuV/J+lqyWbjomXOCfgnp1O53tLCz2/sFRkM1ciB33PABAG7L9duOXrL721jeHqBz+6WyD6RIz7b3qL/6Mg/tHOf09pKe/VhSH2GPYqZBjYYTDj854PwFd5NaOmELZVP7vysaoTyIeJIPhFpnuNNcvwl+sXiXc2lha70m41hUiInv/uQfuiv5b31QJhbnve9FfY2KpNNOt/yGcwkCB922LSfbeLVtDDHXd6zZ0BDJ44ed9910+1vCnQPzBhCLi/pigfk3etQNpugHcBD6a/fhDfC67f6TG0noO5tHTr2JP56RDeC8xNIixHT4oYdEP/L68S1r+Ei/+XXYKxR8qkTnlPLpaEjt7ZfODTjuG96QuH394JBHD8nDvcx93VtOeT9NrizZcG8WPD8lnlEI779rXKpt7hJ/iScsdN/qzy+8EZ3v7on8KXd0D2dm3vd3s179H5PTS/wREx2T7vZOMzW/BEWndupCi8Zywh5QkTZf5YJRL3vfhJXrV7rui/zeXhHyEbdN5fJ+NN3TJ1djdbXXCfnEu+imet/ijU6dN95MvYn2/eYXe8v/qbd+/omrFoJGd9424a9NbXZIS8E8z+MmGxwq3PVlgpK7l9t3ufuc9t/fa1r3++vJ00uxO795hF2I/7m7veqlPefhGsmEu529fv0wXG9Ny973fOCUj3d78N9VaXJqxPtcn3+vt+gTFuNiwLB9g/z9t1cxb5f0oVf5T1ky8Rl17T3vv7+8WV39tVkkIfy+GHt/TXZPjv6phvqob8l1/s45KngsgAAAA2RBmsAV8Fj9xYqTC4rXsV/KTHemvdUw/L3TDHgkJDfg6uvf2lNe4R0RYZghgiROqW+ZvyvrhmV3vjoLrqXco+PtDvqlXiTeXl/sraFXcPO5cGkfcXj4UOjxe7QvgJffPtd6Abk/S71/KVJ5b0WJ0y+FkqlJ9eT5OM54V8xtQT7xf47ILk1IzcY3OUk5bfw78b9ITPctKDA/uV76FuVk2/GcePYIcNNQ9w7cSVO0iHi6l5UO/oLV3mrj8eR77nBHa48e77rt7nDa57pptpzCz9pueCgoTct3fxyuxTdFjKbYrkXQz5u/VpUuRC977lFq+zUZ2Lrw2XIH3XHKfhPxgyGdxQXv8DsV6yvDO/fJQSYO72Q7YqI7WGXVNcfjQXttjJ5EuDsvbbAx5XJuhWl+a9k/MITm+s+Yvi9xnHGuUFp9p8i5CPjIeHRWCkpgzTpjcw4eilv3AblbJ+u7qP3t3viUb0u74f3ddJbvkn17SdSTl1dPqhvCXkpXlGit26SKmw4y1/n33X8MuS5PSSTWsEd70/uO54Ht8blhvCb9oeOs3d/d/cwW6t2hn4I4VWzXwm3yfr5Xgpp4YS/OPTfYZvi4aScu/ZPvc/lIJx099Wronet+r/gqJtIw1OOGof1+kT4fiLmLlByhxQb7CfguLI1bn37f2C26IS8x/HRTfS7rcb8/NGhzReGcGdo6Rnj9LpIdDq7ol+18cSsa7OTI/xf092/DbfMHnkcWjsFIl5QvMN3n2GVDg6rVN4YMGscQ+UNvVi89P1+Upc77Hy0N7ye6pZFhO7/DM+d74QMUFvfdzq3OLsKoEkKqioEYlbF8lS8TEvNN98vCJf3iSSCr3vIrRXMn0l6uJ5gvbh9J/9nZe4/7eCO99dfuCPe6f1d5kfV3YlUqc8l3wh5Mv7/KIdv7sTe+8l37TNk6u65L+0tqvCHkx2n9DiWdKx1h/3xukfl/Lyx297vit+mTquxJbr60JaqOuqBFm3rohVfaSogIbvfoR7ZJn3dWtV4IS7v3T6yVV/J6tG7svukftvk7S5IR9CL0/PV7pNCXuxfxFe/X/k6Uul6FMp99Jr6etXhfslU+uvrqxfr3r9bPhHwfId5Mnkwst/J/TJiOUkz+T0/7JFnuk7v7+vVKSbd9eSJ3e+4YvgwgAAADikGa4BXwWeLFLKSktSP+5iZyxxpF/2stprDJf/cJEWiZyiw6SkeKS/vso0sxIpczbA5XqLTCG9fWcsp6J7KvDIb/KLfqNf/jZyNEM430LY33bgCdq7fDr3BWuJl7i7+HR3FynZ5jDbK3Z1b7PhvB5zkv+JTl7vXpFvf8ISwzyl1thmZwS9xVyyvlhtqPqK8KeCQ1I+pq2ZMv924zeEy4+QIV/8bUtqwZf3CrnAtZUEdiBGbWfksZrZDd/5Pi3Y65PbUpSroZfFoe+WGy8eLineELgy+vn19jYI//WoUsec3cInnoRu/8Ymv3D96hmdd/9N24MChu937FxovOXi//L4yy+SFMzSnLa/c9Td/btHM5S6U6w5bIgIW19uqy+SlebneQev3E3e5f0L2jcVmTv/8pZXnSsBQTf4LAk7WHakdcqlv75faq8E2/vUHc7ftXX5j5+XSbapVXeCu+KijYkg6kq6J7Hlbs6FXveXwoX7rbGmPhGXU4Dy9o6fC66x8ATLcV/rO+OkGU/NssKSPUbsPV2h3JFL7vK6H+e6kvLXldv/uMvXKItMCR/6/f+T1X3wQTLQTPHbwh/lmY3KHQRPWpRc2uf24I7gy5qiVX/8Ep0pu8F3SaYiN7hMgaSTWlf3kKvW39H9e0tQp5rKnaOmXu5i7U+7OqGkyCw6rR2Z6fHSjLvc36rssZOjtjRS+T00v7BLbed6BJYTIkn+0lpBMbLe98n73iSZfLwk/arwgEjL5k64WKESO0f+TqHqRFd7lxb/o79i3Xi+de76sSgQyy9jJ7TX9mM8iEdTGvq4S8t1qvZY+gQ31T3kRepa+97FEvd79H9vk9q/Gfs8xXd32kvQl2LFbm6eN76sFolK9N9q3mo9e7fvJvfRF5SQls/yzVfbm3d9v2/yq0JeCbe3P4aVlffWUSf0z/6EdXghLu9dj6t1+T35Pbb9VKZ5XWvJIW942F4viyEPCoYonvXPCz8vlnr9FBHu4aegu5evsTR6ql7vtI2ZNyAbMziqoyWL2aEfOVY73+/sPkbhl1nhG+0+WNu/4cX7J3qvFEPjby+/qUSF3EHek/6XsnomqI9tyObN37TNSHEFc50Oyzm/cP3Ay+09Ls1jRinwnksUtbpes296TywRHyoTSKm8kR6fWb7pPHZf3hm3lp+1kJhXyGXVeXbvy+hPSRZPrWRsWt/4ayUQ6SfD3xUAAABEJBmwAV8FngoFGln8d0fFYrzGxrTDPmyCGE59m+M8M7umNGXJagvb/AIPmZqypoGVddXvd/jL9Q5BF8fMU/BoPln6XcdBO/xWFh/fj5vxpl/uEeMnhrbtwI1X4ftL/L6vOxZM6IwHKboFLaf2JhM673svvNJLr3CHjMraO98v/0C7liad7iu/L4eXAFV7gtHFNeZSGnWit7xa3cQXeH/d/cRAT+sL3dravOrdeqY6L96y4V8KEtFxzoDVX/y1LLGThl2qnGrodNJtiSgrljPl7WE344sC+f8Y2EuI62k7hMo/l3KGr9UKxpn8ssn6t8TRiu6YTczVhK8j320ekm6CezvdIo1sTBHu86dHQLNz/3CPz1zNZJWlVJEaYKDWg97e8qatpre+Xd4TflgnEP3cNv7tAr/hL5VwYz8GrcN9q5EMp4pQ7nXGRfdgs5+xRfcG8n0/Y3ho+VM6V5y5f/yJEyuy8nt64q4ItApQ+VGwl8nf+wS2x26gJ/edEdoV15MJepLf2KuuFRdvfvrNhx70niYwhe7Xc9hejQYBzd+p3RuF/0Yeiwhirysnpb5NFO9XXuPr6oEJjpwzus9tX0fu9dd+7UWgVkKPsjBHxs73KFyFvvyyD8PUzTzpIEh5n+oQ83hx70JNk2Xsex3VWS99NJyBDyry7fhl06a21f6BcXd7yu1tJ36+rFb3e77LyfdCvlQSzlDEXte/eyZaFEnj8vtbpCD7vd/61vkkNe5eEe2Ix+jWfgrPL+XLuypv02r+pTkf9Ua93povIQ7BwnfX02rjaq/bQJLlb920ELu73fu9v9F/eVOEPIXhp6/bGkOwHn+2ty9MtkZZy9uNiketvlWL/ukcwkFGt7gl+lt/Pcr1VSiT5/RZ81hCMq6alldV3feT0kpdPDG6T3LCyqHzdPpK6HXDaSN/d3e77xPd7v0bp80Zuc7u+G5aV277PeEN3d3e7u3tIJXZvxzW9FhLe+79II73Ivd7u9bpwh4JiPXeRfLbqVxRnwQ+/D/3N7yMqKNzR20XkM7+kwlvfd6TcWlrt1hutWta4LN73hBpiXcFNb9P9dbLd/wlvd75f+iEH73e3CjY+EfBOYuxoTG7QR/+UwuQ3CywhT3FZce8V7Sl+/TooU6b8gl399WNRb37TBHO68V26qhRHvEvj9B6H7Xst9v8tXTcI+GizU6XTr47v36gqNc4rzNuolhl7J6614oj3u33dkKJEp0rvL3dl3vtaL/4heSS8xtK/x0cE9Ei9QKf10RLv9Xqdh7rZD+e4aI8JnLh5G7n5fhahMvFfRS9093fqUps/foTNu/RoISF947V7KpNwr54CxbL0d/pZ8eR5ZFubXlWq010L275cIa0IghOfJS9OtiemsRIW7+IiyXhVueHHuaOufb7uK9wx6pF91Dn4O+/4ifQu5Jet/iMZ7Nt+hF1JL+IjubN4/j+CuAAAGREGbIBXwWeKFc2LmNe5SF2Pki73zczQ3H814btX6l80wwX/3CRLjOmrlulL+94KyzI385Y/cNt78otOfh6ZBOgtNndgkbEoBpqqdnrnP2gQeq15q3bls2Qu9B9cv5e4TEmvY8yJF3Nur17lIcx716ZS6bhTwuI4b0ObXshnZmz1Hm8qeEXsXDuAV7Y3CTqbdTF5fb7AWviTzf878V3f7uqbzGSTc7iHNsv5JxGdNkaGj5WUhLaF8b7aLbsdh3oN5OG3MNvBF50zDSPYvtja92XlfO+Ntn37DcVkYNIZxtQsbut4xE/TZ7jeGmlXhL3/tfTIbK/zuV9Rky4f9NhAsJ/ZKMT/y2Bnm75x8yvyfaq7uOhO5bC+8ILRwg5NDAP6SLcTysFw8aXSXgk4fXMaV2m5Uby3vH3s+5x/dK2yIhQkV585eN2fl4Tdy2GE/BYENpHW179JaJnfxwF1Icf2y/Vbh2W6WFtTLlLGgV3AXvZk6u/YeP9+T27EvtwgV6nlnvmB5C95tEwmw+b+xMVu/KF0Uv+/l/3yyrhI5Jt0rv5On8IXM+CFv842JJEzGC+J/2Vuvlwn5KbTTdbtjYhgd1kZn2CoqrpcW034XHLf2nVmATXpdtrDvd3v+VZZdp/SR2o0mBFufO9Ub978wlRXM7n5O/qAySv2L6+CLcULjbvGcXBAQt919Q53NdruNvP5wxLMJsK+1EHcUCFt1b0Efz5KHoN7ZlW36NfIf+ylDkfFqY+ycl92uNEjkTiE6ue9xP3UxQv+3HfnTDBW2/9i3/SZLQeNKLZx6wkNML2URMnXeYl0tf9i4k8W/CFwf0P1qjxhp/G+IyMiK41b28xW9mfB+3SS42LvDN3eOTpb7CgRipoRXh8aBkuyAvgIXa14swyOvry6m8dQfaWkNoaxqmyFbUYH5ZKqfJf6/S7D73HvmJ6CYzCw7xqfrbZt7XCPgoh6tthHq68z6G3t7oxWh6DQy7Yd+/dmL/3TuC0hbdEBXxJyHg2SvyZCeLDaaPxuoBDkXdejm/P9ZoW7up8W8Am6+N9WMBf5ucfZGC+5z9KzFd+/ibHIbpmQ2/6m7J5I9uJKmnc69tvUSwa877/dfokFhMOfvc4/b2VLB7je7hijve12kFigeQWl8I9ukrdVkPKN8M0b+hMOFS1X8ax8sFO73fhuJg+XZ5pZ+qNNChMIOKZ2FtCwX+1RvMtJx0ujF4xtJ50CiHoP5zqhzzvfqyWdx1eEfBWYnpsdak39z1CHl+F9WXNj2LYJtBcyOyaGOaV9m7Swl6T88dvioTLqw77u/seR2JvuH7SQt31jTzC90qBefZ5PhMsepuXZwatM1XbbbLusFJILuZt22R/JvsdYQLck93vm3a5oojucs4LO0GvdL0DC5H+kht5dCS+blXd9Q1nxn4zKr/xxbvnzSu+ixdp2t72sRIC695Nd6fL9dZRJZTJx/gnHRy7czHad/woRfTfvGKOy25dUU43l7gqE7u4hzvO3bT54IbW7jbRShzWfXglJd33eL6BNIW+y3d28uxPrBLd+8uRfYISPeF9eu68Sd37ny9UEbvd3fd3tt0QZd3fd33Y969yw2rXwi/IzCHvr6RXvqr+ul+OLJ0+933+9ronu7/hG+73d7wj4Wy7I2OnCQs/snipX/fysz7d5hmhZ03rmI7/p5/7GsFt33JbOzJ24q7vfemsQ+/o9E78Fe7vjCPww4U+3+OEu7y/uyeE/DxrV868JbarexsmBYLDt9ZoMqy/O7yI2t+4KD3oqTpt2LL3iBM7X3vrGJwRXe6dfH733d96WlBH3c6dfv9Ah2+nXoEhrw4CB+lvsYV3vw3T2MP3cvd73pIU4e2n4nCPqkG/xxqjqousqibnO+HfZOtqhxRurvtB6ew98n3rjTxJT5vl+j+el7L2JXkf3rTSCAiY4VMLbH8IG4N7odz27+X+SuE/IUdwgy39IIea8sebK8okIGFd/F1d/jhAKxYl3vcummY5n1Kuy68hjkZ9Na0kWpStb6XsXCZT2r6Ut31TNxkv5PSp/mBF3IXSqX03XhfsE/c9mrsiSO36pFJ7f34kqZy21fdGqelX5tJtLkhm76YXST/WnRCcZ8GK/JJJrzW8kQU8xj/dEbhHXUPfGQAAAF5UGbQBXwWeERWW9KXG4Sl/xZDAo4zSmJBx7+Xmv81KXIY8xOG8XL/9i8PQ/ET75dyB0/UVhO1jWCEdlL+740rw98x8f49HqViLd1h72kbuPns6Pl+8tw9xmrczwDkXbDSX2kaT/ct56O6wk3v6rPBWalu6WwNuOlj4+JYtHRYQPMwykjfl+vcJZ98scnpKX6hnlnivbb/4QpValw/8vhXzG41ES/u+NyASCH4HpQS2r6Qe1aACPx5JuzldgYe4TBQ23200XdX1D/Y/xveu/96ZfveYKAlfORx4byP/f4yZccktuvkh9LMKPafPL8OZpw1Kt8gXbrLyelpOuEy8/aPsk63xU/Pgh/y/YmJ3u+/xheeAe9/kfaIzhPzGjtJpZGX+NJLGBG0l/uEikM/bi2KUl2z+x1WZPu9uTd/zSecfeY9zwsrkbYf7G3KYsTVelzsPWfZKjQ03fXCRpUrYkS7xBa9t/h/z/dCVhL3dTrOkj/vpsaWsypzdw/WXF5DDNN6r2PrwwHQVQrMb7yWkJMr/lSRLNFwrUiRz1xaRO3yfS5XtjbVlfluIu4D3L/5dLdu9KA7hnSDD7n7WsFfSOxXsnSDcnywNSdfBXvPF7x6OLje55dKXgouUeetBDOvOnX1hfe+odi/2E/yV+mmqG46EQX2R/l3T8sLmXFZcBVUZ8tL8+wEQpVuvl1dgwvlJeGm6CduftQWXl59dEEl6SGe3+Uu7SIzL2tOm3ksdvcnz34oS8gjdu/wpownfoXZnu25VLF+w+Y+dEkwdvaBBc2H1wncBGq0aalW4M3Pv1U5+Yhabvnn+8M3W6bMPZs/jbSI78CBf++H5di/dvHWg1ISVh4/V931XrBctFgDh9JW23bVE3UbEfpZseZYPVQcl3ZT/JYfub/iC99w6i4HAW/3V1/5H7XuNINFLzizXX73fNV/l6f3ElPnvIXZ9hexcl39/kjZVwCffQ3h2mgOtpJL5FvSZF+gN8dX9pTPIauy0zFXsKYcuGW4/402Or7fVQ8WQfn+D6znmYPP3+CGprWw/jE3Mt/Gwk1a13eJP5u0aJ/I3hCPUiv3m/6B6Pc755v/3j9Jr/J9JJedMTz3rliCz4+EfQr+9bBFdoZeN/sMbw/b+et78c7/+FDTov78sbuv7kEZnRC/65/f5Rlbgcvfc2XuC0SUffGZWrvXSd/wTbu+p1eFP1BJePov29y1/k93G9yzbvrckKEod6Snr/CT75gG6sfpKqY64/0CbunmdlyaC9kt9b5S9bZIJz3um9OUJ+CQyWGnn9y3eDt/iDvftORbqCIQnHu/b+RCdn72z/CPojflIycvf7/BId7313q+/dld230V5P6fysVPRllJX/e5mrWi6zwjszi+jve/WCK+5i62QvsDnWJpXmEr71cUV3e+6fbwiu8FJnRqw6W9Ne5du3+Mn8/vduX9v6E+mum+vqiHP5w1tczyelX/1u+jk9Ut+i3kd7hG77yhq761NvevGYQ8GHjdFrX8RUZf/xRnP3uif5WLTd+sxHf1id33vzIKF3fd93u7pV7BRve7uQTdj4Tvd33tJ/J68giWoJBD3DKSxvpfBXve08Lo4cliDfXakm3pNBEXu933vSRSShPdK997i1CPgnMfrHLhJthdKvhEzt96q1yeu8hLYUPLhYlt94tyw1/aWmu4SEuMV97v3DV71Pi/19hLMv3d9KJl7v572X3i93d77p6F5+f3u/sxuC+Jz6GZj79uX3P9Pu8n11MnQIy3n6eEfPX4Zqv8aYMvbAlbtrz3Whp63NT9ZRLYJyPwbq95/30MEzJtLOgc2c4+f/opqq+8t0Ttbzb1VP0kDAQM8RHzcBiT0XXd79Wa/yeu66fTUKZJNR1bvOyewmJFjXufbSk2T7xDbLXolkpp5PdLkyfUSVt9IltfUSZ3Ku0HPfXZITj5/7yb8jhdLWEiPpUb90kSU/G/0v+pC3Sf4JyOWny4lXxW9xW+GPVIlmiN+Ll31+93LnJ3dCxDuuCuAAABSlBm2AV8Fz3zBDHSThnz0VeHGm/4IMaDQhHy9rG7IId4FaLnzZWb/mm6C6NacW6OZ6fy/27YrOUvK/7gsvlx57hLwcszl/2n1bngoJzChcygQi4CC05bs9Tv6TcvJ+/rT3vL/l8LP7GiFDj1shK/lL85CRQ5Q6GArrQG345K0ySH9MiXruLbEraz7CShl3WB7/+2NKkZ72HbEP43B2MF60a8OxFnPI0RHGthDrpMP/H9ZfafsZBHL7M2cVCuOIf5ptAhO3HvOVHyDrXdqbewlosEOzJx4rGqXd0Euh9F6aXUWjJ+tvWpC19Zf8tv8p+eQTL/7Y0VaNLhHyeIX2UeFHjhsNpISHQePZbFb/TWtbtDdZZIquFYq8Il6Q1t3+vbv3CtpB2Pk4XD8Fr2lbfXEay+13hArEb4RKPEEHnDoS7bvT7I+x+ifBfURPY3t/JJOi899aZfdXrtwoWyiyL3MRIW4S5a93uEXjobPOJXa6jd5zbjMRe9reSkScSZ8avWBLgL/DbtYV+o2jUPuc4nswQ/Wbs+91HTitwi2y/veg9OdLhYQo/ce5c4nTkrttm3rI7G1VffPnPBLtwQ/Vom3j/Pc+pFk1C9x4iF4cvMMpPGpF3kV8XLrXBJ4ei7pU3+JKZFb7xwl4oQ99Im13+M4ZEWfyxn7k7iVtDtCrTsD9aeCCEXerG9AHivkAGI92RkYp2C42t+gP9C1JV9tP1HvONGNXnr/e+NklMgjrS0G1s5vx8RwaO984+7XUBG1M2cLsrAz54D1gTv/z+qx2LnHfrfEFtWe29fv/m93gkH7+tfjyTkU7vDDuu/vwTv/fThsr4G8flnp1jPf+vqKvaMDWr72sFRJWJTdXkbvJDd3MCENYJ48vxtoqHZYK9BoAoP/n/xwHTIhb4JW+1siW7zJ8rFwT3a+3LRst+w/PI+kmnDsAMrp2/vduFlc28Fo3ET0O8sbmsC4336j5TnWP/qEvRKy/2vk9VK68uOvjSMVk9UjtvwmaS3DYHx0rtA2V9dpAjOH4j2gvj21ViavtLcExM6+Oh4JZI0snH3WUrzBqrFxOHLzt4YcPTje+bqmfzdKo/w4JIoel5mT3RsHn5VH8n1RPuWZGBpODQXsPR/b3rUJdgkmR3VjJ6Sb3Z4Jeubvce300fQRvvuU9jsC+qfJ+lk9mLLD1ojnX1gnyjqXKF791YgmzDbwMgbJ3tKlhN+4J93e98R6QJS3u97dav71uQsq9AyamJKtf0Xe/0VnRU97+gll797/fP4QL+/hkxn7991f7fP/TKXd7/Md3SfY115IexnN2NW6z0RyqpXbVN3vcI+Cbe8rFOX4K8/ve7zb1rpoEZ3kQ0o70Q6d+6UtlGfby2X6Vd8vfqJz/e/RfWC413uY45r56K1aZUCiGXu9MytmelSF1pJzpsWJufuL3d+RkvfyRxHja7e9yoIR8Lky/Ha7AzDyQuWrzDiXtic/Ll3ftQgd993vcq9/fXkXSZiSoIS/0T12e9wl4dMULxnvKybMfGTGQf4cUNwmbfgnIXu+963b5RLu+T3/NUEJZsy1O8X191S6bFq8n6qrREHTTB8An9/a7QTHs/Tpb1xfGyux109Mgcc9/fqJ7l77v7YskZ/CqxJdGTJUVhKVhWnd/kXYvp/KVK3tuQi0uMKUh9/JZbDHp3C3iBGq8u+3d/SpKjp1fk+Mjizz6u3cl9qKjkiHRRq8SgntXENH94ZOFbTzXx/vhf0ITrkTo12T11J8QWrVGfvgsgIRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gYhS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeBiFLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4GIUtLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gYhS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpa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4hx2Hyks/Td+yUnQff4T56bv6cKF838hnvvlk7E9dSmE8nS/21k9NGufPSiu73ffXC2SMhCpnK/Oa7O0ab5h5HGJXpXy+XPJ3Xspdmrk9pRMi/X5io5ojcRWZiIi7uXHb39Qtk/oh0rJVIksVyFW019z4/Xw98XAIRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeBiFLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4GIUtLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gYhS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeBiFLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4GIUtLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gYhS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeBiFLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4GIUtLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gYhS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeBiFLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4GIUtLS0tLS0tLS0tLS0tLS0vAAABItBm2AV8FnmGTkIJf7X/NsGkNzi8Xxr2ScrLhkv/2Cw3G6EkaY00Y2OnfQisiKMv7tqEr78aayekkV1vr3FwETvl+eOH/mXk/SLcuizADRoujfKgiVy+9yj3u964JJhZOqOP4yUfyzx3e9f1cK+YmM5EH6s8v7vYICBd8lFwCJ7ev2GxWf3lmAZlHF3Oheo2Hdg08m2EfC6D305Vj/v8Z7DUmtdo3B5a24IH4qtoetIMe0aU1eCrl0KSbxPCgF7nHbDuoiuDT2luMLmCZUDjZbPivIIM5dUrCPzTcU8Ly69wl5efX9OCLu6VV24Q5l732n2kW73feXmkhPyDvaEzRffW/ynxp1SEvDhuAM+uT8AOY8b75f/cKEnThI89aq7zzPC7cb+3p0W054R1kfGV0HvVCgXInTe3jct2ngjSUxn2DHMq+vYwvyW2ZYYmqhwsWrv30WxrX7Kzh9w6yE8MuqawWv1Drerv3IXuojoN1yE049UIX6FVZWFOp7l9yzOgvsW9gV0dOtOH6CL79yBO4iO0g01dqf7/3HFmVwakH94zuw77eK37EwU7hx2+cXf8unbtxfHweshYjPal0WY9fpol35PtrEp1CJIqCvjTvwSvLcAl9l41BtNq4zj5dNGZfPjPBL2Bcoaob5P39XCG+4wZy5dKkRp7hN+4IhT2X9fQveaQF/8b7LttU0r2Kvjt1CER+1uO02Kyelf0Jl/IVOL1q+6slf+aJF3fu6S7giJIvsOZgoIX+YMmT3/HVXYMGd8XTPGseqc17WbrfJwj4JvO/l9ivCmcMXRyfS4O43i+vWiQ3W7xpQQEwEbzXbeG6YEv7/n/df9mH6yvhP42+r8FdfvQFMDfldoUGuNfPR1OJHHwZNcYBZpvvxYvQtKnpGKSemnZ+2QU+QW3goj8vZd8wac/BQJyL44WPy7FwkRwhZv7uL7ye7ru5MMyvaaWWrk/arFyw/tg5vhSVzDg/yIN6nv1lSsPc1j/ulPBcVN3vexvZaBPzoHeZnKE9sEQhyj/220qCBTjsQicIrBUvfmj37F+3029gru/d/P67cJR2l7mTf7y9yLVYpYrKGrjMAvye2n9OJmPn36gue7wn4TMXJfTv+Us9V68S9/69/bq8siDZb1bto9mHuV/vFaWvTKW99jSby2l1+W94Q8ERnV70ujwkJbtJbY8h7F6Ti6ve+jIXd3539a66/rbi+jayf08m4Liu/d/d4JMv69V/CPgnvK+8v//BEQvf7dloqLX4IhpNbyNr1IKe9a9db9OYgJt2d6XUEfdG+qy9eTCWkUmf68rZ0J3P5PVfdMh9p+rlOt3W9F+2/++k1LdeT1Vp6Udu95EDuEvFkUl5snpZ0Y3vd3CXj5g+Z9+G6evGZ9eiHBYId7gn7ZN93dO+6yxJ3ve5c+Qu4w7ui90sta5PaxJOiRRHB2H34Yg/PtfBN7vsnLwW0KZkLzw0r0/sJl2n5f39Pr7E6WoiTuQKckt9wt6nBWSC6+8ZXaf70lk9EmPe9rfl86T+GPRCJ6kqTNrfEFLQ/l+MsS3f8FcAAABG1Bm4AV8Fi1cowEGzP13+bPpx5gkvF+eOYVUMl/9wWGsiiLBco9CfOTU5DZfPP9MMv9vKOvcSNanGtnvOL02dtZPu3E9wUULLhjL3M2T6fLUv8pT6v8GHdmao7vC7eb/XuXO4WXuMEZmuEvgSAEH7tV/3AHPV+zx/riSHYFGBHt/GDqLgiakOAduY2l4bZ+61dcvv3jp7ZOLtpLGQcgRlMuy/v3G/CdSbIn5SMHHfKjkskb+4WkLdPMq38n9a5YSKYeKGZGQ0gwC+mnSReIlhC5AVl8n6S15odWp/Sntvcoa5P1dTpxMg5u54fLLd73r/lPuiCb+wWDBIPFGKMVy07G6hWlEiJXX4ynRKBGxLDqaZCEX3VZaUHodgjom3hVv/3a9nw6aswqiLnZxnIsfN+X37wlfc1t7f25/9yv4ySPch+/OqKneif4gsOQ7j1R3S6WTmzLX+WG0kP69V4okPL7vaAJddpc7v2htXi/L8AvVTrf6BdE8uP3PF/v8LbJHeVQPgqLh2XY/CXgiJd3ff4J4cRdzzZflXZ8f+9w4Ro3BCVDI+my8JOv6LNhlKDTXv74woyicECL86h3ltT++tU6XkPob2BmUFffQ3x93jWP5eH750JYG7vfR4Lr0+dRL6q+nJjSZ9pXQKefSX42LjNtA8Zy75PVJd2wqRxfUovUaFSxnrnov9qVCCPVPl/y8wsr9wkuWIBEZqr91olb1wT5X0tXQs+BFiMf3CxMaC67pw4xEHSLIvHfq+Sf3XYLBb3vs7u509wRiMMMweD8EM//fgkPNv/WvutwUzrkq720mMJeCvUoLMf/HkYs0gcDQwzhRF3pkOf19AjE6R/LyS3vCHmx2mj+Cs1OnZNI6NvJ6praSv9haHk+Xyr0X95H/0euW+36PJeRdDl9F/BEUlvd/wXYQ8rke7u7dOfr2gWTD8YO9xmp7eHihG9/wQ2opkbu/BJ03lCT6bFGeN9t27paBWV9IjNxu979FZDuvek5DZc15LFu99S9idKqEyiLv2LZCPvJ92mN9FK9/aVx8Ru7ufp8vta4KN7u7y5+Jn/P+EPGE3bfbHVa/L4qw30d1kIE92kz+5cS7L/BIJd0bmF1IIu56W7v77rXstE/0T1QKIRceJHu7u7fl7v8UV3u930eE93u9wj4JyXeXy/VbYSvu8V6xHKNd3L9j3trLIIe/Y2CPPeW73s76/Eexcpr33k8/07Lu968I+GpnlyFW4cS/kEZun3itK73faZim1fRpMuP0lo3e8/b9ZM/9P5f11m82fCXknDNx1HgrkuyZTCXgul4VVpVrDwtFxOHcSIdw4uJ2154XlcxTvfs7IXM4hbhD+Y737L7+9ESrdfkNDS2Xl9J1V0cIz9KFF/rZdGy14kT2Efd+M0776ERAm99x6G+blh6spfwstGwmZ3euXeZfhcTd63dfL0/7vZ7Uto17/QJLvcqZPXqqUstD/y+q/C/qdPyTF2fyREmeGlSoay+omqifidzkfiJMl4LIAAABWVBm6AV8FfixWaIJ/3oCFlIjqdK1Ooo6NfNGFYidWg/i5xonYRjqdzQNL/uWY0vs/hE+WnMwYVMFbpfm4+XzCEL+HCU4QPLnP8PvfG+GXLlJIkyMPnHNfrHhuc2brVZidKjja5I65Ct3Vh0USEocfkOfFbl+42bvS2FfZ2rtKfrcUQIvXaYpH3y5n/mj2snb96lh3cfKCab2O5MKERf1c3rvG8oyHW87CVvCRS0v3PcL6ruF2+bccLMfHZWpz9v9Fgg5moj+2h71hfUqOH5kETCQ4mp7+18uaHL/iW0WfN/ieTL6/KU8nD1PnaFPMK4dVa/cIkdILKAS/+vd3Lx2MSssGbyImbdf90XaGLr+CvxArwuhUF1DnX513Ds5doouoot9uI38CfXMfr65X3CJZYEXYGjhchyWDwFuWyfrq+I8+TLzEO/3NHQ8sQfT+S+b6+uiyb39lPmZO4J+MFXhBxLtUsrRjdH0bHq0oQva85JEo1sPVV/tbZYye+TtKETudZuJ4E2Wn4Gw6gi+iWt2dP02YS9WvHbovTn4zni+3CW7xCPaP3l/odvF0kVNjSki1ZYJsvdqfSCfxMHkpnYC9yF9X58JfLX+myc+6V16cVe996c8ntIRvPrv6ptMI4bRfv4ag2TitsI6xyYxO6WhhOcfP5firil8zv3v27dyoO9rLkkNPbguEy/vZYUM9Lvs4Ns/2nvs20cpWF+u+GmWyFlUeHZeAn1PtfrG8rHIGwivdoBB/p8dH3Iq9yCE+33shlf/fzy0Km8tOSjy+ZbeCzx2Sr8m8fvZ9p5NmixGYX0OLz0c7Teh/76ChuTh9i4+CH8/g93LBQF21NL1AQ/+5tqGqt9nlzabOnCghonn4f2m3qi0TStGiLLvW0M2n9xpMIO29sgUMgf5eXw3F0l4PrJOE/X5l/8RBaXP9711ojunDk5WVIGLqvm53fJ7bQnukCsibWaSkrYXaD8iNnTLy3rXdCRp0kfy+Mb5P66z0KcfDEOy+v7y3GvP1/YuCM7LmXyyf1+eWzf6grhih+5ymmX9aSLoWa4BNVvZAvnWg/zf9KpJhPLGT10qyTU9wj4IxF35b8RKdab2uq1q0hcFcP8WikzUCJILo6Y3Bl/DTZsduC2pTmgO77EI+ZOjsRWuDpb3Xgi3dpsn66n19aVtsf5lw9f5VtGwcjsH/ghpr7S57dzan5JfvCa+gS4+vtN3buyFL/J7af7+M+19giI92u63xux0ubXguhmcnYXlT3yyf1+Un0W+nXVq6EnssgzdwmyHlu9uVEK7c6NHFpk+i3RT+mvl3f1+xWXHspq7rXfvTrs18J+fPZbv9lICHna4wU1ebCD+w9vU+Y3L9/iZ+t0MV9IERr3sfiynpd73rKsw3JV63a/HCLx3pc+7XsdfayRzEb+wT+Wj2X6XeyP2PRiO+lai0Ms7N294+SnD0O97+TrhHwTy87N46vrL7zl0URbit75sJnYj997+4JDt1pVX4m73e737TOYy3J/0gtO+547v1yb/37lZJsvv6MtvTfRWCzw/ve4y0PduVNLiG99wk/wVEO3jInN/j5js/IDe6YKDO99N29Ip3u9XjZD46tkW6Rb31rSpluXqxRpcnHoyH632qWJmDjL/fbx7hTJeP/f5IRz1verbr6YIxLxLlKu4Ju08d90qq2hM177q2glLjPWduT1tn8TLPnr0xO9LLDXZKlTS+Xl/7hp3h7twr4extfkOXjRYe/4dj8vrpOONm1Lu71Gn13/kEzduD5Lugg96Satz9FyfbllpkgkruF/fjobWyiaJKfFLlxxOkHFqNfwx4IppivInkkIkq37O+MBeBZAAAAFY0GbwBXwWeGxBqKw00z+bY/Oy/+4shP7uXF5pi9DLgY83OfDd3PwUEkBqfsjV2YJOKwEvvN49wvmb0tjy2X93wjozgxh3t8qZN+B93qL63cKFbeA3NG/T0gSe/XDsfssju44vvcIEx0SGqUxdf867yfvufYL97mPu2euK+H/vYmHSufDba6kd5oMrTH2p/7gnz9HE7u4rtekH5b5qbngK3uLU+nNh6hXzGpD84wPy/2240m5eFxXWyHue4XUeSC6Md2CSaAznK+bmb8kWjkKu3FnwMi0DMXRAheqs5r9bbQUpUm1Z44xC7+6lK/OFxD+j7GT93vUUDvIjTDJ7udruHfSmTwBu76FW43utNyrfj/9cn1plaTjC6t1uD14INzZ4aiOQismX7D3uCnoJ+8OH/utgf0vWOpa793ljJXk9NLv+iwnL7d79iZPPOr0he4Zcm7z8KeERGG7EaC02PP3pHgSPOzFXa6bCk2747s3mMSS0PGpBzIz6S4A8cof7LQMD7VGxJxRda0o2T6S29y1t5IdwgUoFbzAUNZtdinlC5kEn9/i2be6r6yd316o3BZpPykjj5WW0vgMf5P2ypvdwUEEIAd5F/PDfS2FqVZdyFXBcJeCfDLlFxfZRRj93wKnL+34JyXZ43GTg6lO73Bhvu1AVURAfxUd6OIfw3rL/Gcszisg/Dcn5gNmHno4X0Uu9Kd4ILsVB+Ge1PCt0ZFW69+2m+5bU+f8Jn4bXGXs69wVEmXw02o3efv+Vj/YmExb/y291XuicYIMyiQ5f1B9t63xtA+p7byBn4ICJJOgzeRN+w3ULaKWvngIdcf/hc6KaclZZ+nzkNKJSQVy/5dFFsiRwiX/1BEK0z/sfr2ki3BP4ZgSSNNy926zsKcdbP7kBpV+4hFtg6H0XJw7GsFxgboToCEny5D+CGvVjbGWPaZ7YSEVSSygs75PTojxSwYbw9hswfvX1k/qixdi+T0leskdD8tz28w/eXCne2haLBWSFyPxwvc75I++wTCc6jRXT+SMvfc8crF+pcCL6TBcIfJ8frkqfTLw1Wa1b3DsEmVd9u7JXe7Yg39x6TkfRP/6WVVhqst1Jul+tW6wRXIrfZ20ssnuknkqCLbRDBUd3gl903d91eCze7u9vfKEfHGNWXj9K19eu78sEZU5O71R9k+sX80FJXS3KGu7WvJH7ru7V7y+teS7+vJ7SZU/j5Rxxh9WS/LANxXbfwhffe97/Fbd3vv8FF993ZCPhQ3P3xpXU7U3bHcy/yZZr3qve+YXSd+3VF9aJbr6xcYGb3vJOlURBFM67sp/gntv3vUJdgi3V3N9UW+80cyYw/RQiKD42llj/DpWjdqoPVYS1X37ye6QspIlZB00n/Sp0vBJzwlB6ku9+pN76wSEggvfu352/oMFk7lLQYe1Dv340viq1TuCsruYp7u7u5zx7euEbZtbu8ZpeOEfDRLsY3cf5lzFaO/yij+/liTuRd7P93vyxAl+13fqa73k/onf15nrUst39H9l6bfNfdJdS3C6eA/y/rSmBDQe6Z6EvCZC8/zw95aYUM7u6b5/u9zr7+2CM7xW57emqOn1Tv2LWvyXd+vSWRaollFFd937UtoEQqNo3sXj3GZGz/j/u8Q99zvu/khLyFhVq8vrf70Ty+UnOpCiH0W7M0UEnd0w+8nvi11go7ve5xb9oZe/d93yw35JL3/BbmfBI9O62mjJpJJIdP/2p+8sH763vUK+fU1p/9Ixkl+4S3vuXdi0Y+7rdSpk9fL0hZcuXu8v9bQ/u0f30cfnPhj0Q6eSGu7u+fWvmgljxEj+a007WIiCohuWTd1p6ExsP/FwAAAFhUGb4BXwWP3FiIfzZetjjMZcH31+UReY/L/vizx8sPs4MfDK9wibjoQgBBvB+4eOu5XqIOvbTwQvSlX2M7ip23c0cw+vxfDuy3e6h8r6UUU3vlqWMFtJf6cFZMJODEtJF5GIfU7jazhRdOWcJ8wer+QtNfcE0/0dy5ozr6BVvJLCXc8+YraFfMS5GpYj1/jSVuJHhdkCX/nzG4/LgR+9etCFtIhk+6G16eZHJ+hreKx6ZOPqC/GT5aCSinHked/h2ez1aOmHLPgIrmPleIlcTgiIPwC0lfH736e4XasXYstrH7QexMdNtK6la4AEfr3Yuq89Ts68GE3Tf/jC7QaQXprNfRGDxjy7eQP3emlaNIiEYL1WVh6YzY4hcZlkViV85SHmCToxB/+b08vq6eM0r5t7qj7HAer8nvYu6qKsrxX6bOsIR2x1lc+Ytzw/GXd5e2XN37mE994SveZDvL/vizuO+rY/ot6wm/cKBDn0Lvu7H5HSJlyVJCQfvrfuNw98Jry9ZaFMRMkSw+WoR5g7KPWBB0J6eQPKPdyBeNx3RPHkxsR7ul8dE+vh+zFnuJP4F0/x8utFYkoXi3uOQNhnNbS0npLXk9UL8uPdFOT0vXXosT3c6d+s197VXH1fe8innBsOxenRUCwkzL4ROCy+ebWPPgl2PtrYVSqXd2IJvvChHu7wSdn9Tbd9lh17hyHv+IL70+3R14a7/9Y3xkuvml2Xhx10LfDkL2V/1ZEJhTu64cz2wF9blr6GGUB7p7j9Xizv4bSbccfswH431os1/UFxBl0VoJyr4bTmt5JRemsOn7+owQhYSa8Z31arsPU0Wa7jrg1OLyelT+40kz95mpfe+iQVnjzhqXjT2BnJzLVGr2GJz/uJtz2T8n9dtPCPgjyd/5rXBaWeMvVJdfQLJYwadEB74iS06z0NMPvkEw17jfhP3MEf/jM4CXa2Rq1ASjcA9zj7V4RWZ0Me2HEpt1VHvBWIQl5Nq73JdwF96NDTQSfBFhGTU4hvKqbCm7xIkoanzprP/BOS++clcy/cP2Du9OMCPy6nUa/oTBGXDcoPi7GyyF7f46Hx3nx8jvjqmPYJP0u68FBjhyH+dN4I3idpTzoHNfRBL3e+sT3eXvhHziF9u63y5i5/rrBHLhT939QVwmf8zV637CsOBW0ZTvljsarEwRXs/OTw6PBDTMywPspLur7XNFSI78sMnv/uCO78WrxsEXJZwvFr2QEM35m6LguZv+Ey/yttAsvexu93e1E/r7ElV+sSVbzv+v8kt5a9RHOHXeZPe+CO73Tvbu738v0Ett93+/oI+K93u7fxM/8/8ILlxQi3P9ye98f3be96VctWNfRZz9y6ev17gi4wD0zCp2627UnLjye3yYp5rul+O3uOr+9+/5ufwj4Ks0e4T4/RN7Oz1FZ/GabtfE+255vy/yZZAifH944dzwvfn+rLu76cm7vyQuW8f0d0aa7nv6pxMRup67R4fcu79jYoRnSPCH3hZd1uLKkZYS+aF0JpIr3S+y/Ty/rfCPgiz+5UrlBQS7vbd99dyFEjF297SENzXe1SdNdW9u+vJ6vSlrtSk/XsWnvfJ/XW5O5QV1eNnENbo8JeC4hFnhpUMJbpwl/6wkbbeXHu6LoSfLjb3fWQ+csUlS19l5PdPHVfVBiLm5f7fXtK6FEGScxBmJOrr9/ojIUyIUUJ6gxx63l8RrkIRu21J6+aZOEBu5GU4tHlyT9SfSVMr1MRTC69aSYIdzoMXptxNQj1fCPwZd36kLdKjrdLWu56bhTyYhprwQiIbOl05rrLK42pdKS4WO98Z7qftf0nl9EiyvKS6rfmmrrXLj71tYL/KPP9blMk3hf0QifqnVV4ikiFGF2Id9+snw98XAAABYJBmgAV8FfmFZMMDvi6nd9J5f/cI93Cbz2+YuUUdn+LNunjMR/MfDTmYY8xOCTs3tS//Y3yTjUs82wGckjM+ctN0mCRqUHB7c95v+w3Myxm7oI9tC8v7bWN3Ty+TTlYfSlZpr7HnF7uv3bTtStx/bl3x3L8n7ep9i4BX1F7O/mllPbEx0j9HZjZV97QiGYIWT6rfLCJYpoXjuJQ35P19XG7kFqc2ulYzL5mv162PvTDWeX/KTdb38SUpi7jMta8Qp5jZgM8v7t4ICCRxtezqQB//pV136C4KkrycS4RkpunzzNPuWc1P7w2Un7nVPOzjxzmoffeN5/w9R9WV7/KWMPysTvcKMXsUCUexn5dJ9j/fbQJY6TF3MgMXACitXrseQX407w6+TRS8dC1WbWCz7Qrnrp5fWN/XjsjPlT8c5aMlDJQ23f8O7MxRYLcD3FcUH96S+Li1tT0/u9xl4bymx+px1dyA6+84EQJLHp80fgTm3KUjOw7sIPPzF2Yfuiet8bD0sjyJRXdvNt+Wx9sLF9uV/fRYvt4dWkcubbfD4n2MlZpWs2PF/lK8zYS8wzhN9lL/e2KIJepLCPmw0/Z+disJr9nxl9wce/1imeVDGPkH9mfgDi8MiP/1y3EfKwtH+hQ3BRrU0h/SX93wR1oaP0w/f81k/qvKxZUePOsOr+1/qtx/DUuPM+NyfvKBro+k0dFhi91zC4AtvVRv+EeaVON9Te4Rw4Jd/AS13fUcGm+X7mB6O8BL7H2077je4/Ybj90aXYty4C7ndr79+3ZxrTzTcJeCwz3end7X++6CmVFOgde+Jn9PXvG+2Rd6vt1ngw6xr4wKnXgYrEY+T9afxsNzSfjLC1bjTTcIw1fScK+HaKjtHVmnJ8f9Ru9YKaZUyARMxxYie4CF9+UkIX6Y0w943s+Ky6PFX4+su1pdx58wazVoD+RHk/0Rfz76ClA9d5C8n6vlahMw20fLWGkRhwFr6KJwIZ7GeXEqcRd/jfSelVa4KxD85OWdzX7Pcbiz0Y71tDL/NXUVhIi4Ydo2cSDsxL/Rc/G+ob7m2d2oy+D+RtfTCXgh7m9j8EV0C5f7S5WTAGyBLclnH8FBMPJI8j8Ap/il81eNY0i0RbVRgZaOcMJI+QM7B2Img3sL4EH4yRRm7vFBzv+UWG3Re/7ca2zGe/QmH+v7zkaUoXXUJ/pf/Yn2oKDm0ZA+9veLV3QehPVpsT3dHbfKF1H+/9JF0ERHci15zwCB46lBlLF/2shSghEvvLL795svwj5TEb0ujvJ6ud4tlqzX5uPIv7BMUELxmJ+7+7XuQnOv6BWd3u897RVHNRfWi8EV3yl3giI7CnB2oJL7y7JLe/TJCPhMkzZ/k2rwSCSS7iT3T8nNZs7161pKO34u5+96b6PNfdE9JIjrVE7xDhPwWy/l584NZeE93l7905CCS7uff0X1hMo/332fXe26N36v1r/68kEeG1vPerFkXtfIvfJCHr+uwW3ve995kfW6v61rW5iRtr6ayopVSS0twn4XLP7xnHWyhp99e2LEK1tWbLd++xMFZ3uZu6J75svvS2CQS+6ZV67rPon0uf2pwfl7t0u/RyKl9vVW48jvef48XvfWJz/d8JdB/hHbk62ct+HB9Rt9DqHlKfDJSPH0SX8l8ogV3y/dMWkQ+T+oKTp35Epyb3p+xu+6bXmK3vWnQLBFKULvvINPgtG0loExAnsMGfvvdnywl5Cy+iZfuiiXKXLHr1UW15FvckRy5e+/S7zT/0k9G3P8Ll8yX2TkxblEu7v1BHbp02X8nJLNn5Iwtp5te8rG45b7dRRQUkkt9p/d6L4YrUidYjPGYiS2D/JBFRh5edZhLL+NkkjtzX3N5rOZff5Lo34LIAAAAXJQZogFfBX4KBWa49KdDoxXxcbiszmsekYNdNS/+4R7vhvLbraR90X/fLDjNBraO71y8tmeGF7hE2rgEGvBv7iqvl8ZbatmdfX4u44Xq9UEvke6tysPFMO6ZZM7R5SrLG1iVuT/2JjYz583SsCm058uAQOlz+NTZP53S4E5bTAGuQSFhfvCREm+3YcMOK1LCB1n1XPzBWxuS/8bOb1fCivhjj8x0qmB7KnTHLf7iCF5peXlz5SjmL4U8xs5iEnce/xpLKEX8BcSETMkp/VBffv+ae3AYAYBe3Uze3rMOv6UVbL+00BrMN4UKFmqphlZ+M3VieC8zvWXWH18ICj3X1b7c8yhjzJB6F7c26dsaUPLou7BTaNLBWvYBecbeKP389ifYQ4DsuruGjzhd4yJWTi6M6cYws/pDPDSXS2mU+OiWx6WQRFuU7/YxbknvBuT1pMnaE89Y99xSFye6v+O7veWBTu+T7az9R3SMDsh+X5yr95eJxvPcrHL65dGvMZ8svn4T89eGXuGbmL9xpII9pkC2/qpowfAaqxdNP59Y7XxAm17aqaPu8dmZPObY8eHICZfrPWfZHZ6G5qPh1u420Nes2PCuOJ7Xh0/Z2i75O23wCeu9vf7iIi3BlQa/52oPUFBHXgr84PHUTNcL2v9AdgjtYSfMRqDyadumm4m73G7sEttyP1PNxvaoE70FZAfPDAymOvr7/Bny/ivEmyx0sy8/g7yyR5xZ56mq08aUgfVZsIy/iTkaLnwT/Sq3BRiM2N31fjEaLgtrWzvwvQ469eLVqtD8ho62Ma/8O7mnxQMFFWf0T0TQ9y7vy0FeWVSsy//bGbvnnpnx8uY611gs3It6NfI6zn3yiiVUniZZjxf5PvJE3O9qVYKCbkBk68BPdVyHt+425t5oHn70rO4Z6xKXQFlvRlOGBvISPfen9io1pw9R/cNvlO/v8TLlhMiu8PlzwFt19fvoS84i39k179QSEcve63TZXus8IXC7QXMIj85SRrcwrzevcZzCjbzn3D2Y7hmXbu+Qc33y/94SE8N9+7u9/jybw0cH0dj98Zpfqz9xaJ+vv6XUEJioLj7Sw+NI9Xbi7/wgm5JdASmex5tqWf3qRnh/wz/AnhLy7n1GNP/8WNn8fgGzYSL/eIgjEcvrovpwVVAnf3IN6WBL1/3/zfbQwQ3Va3pOz94W4SOP09/I2807N319hRO92Jb7HQ6fxJL3zIXfQSO+9yLdVlhCHoMdrm/w7J/3n+ioWIeVuiIY6RC/T/hLyl5c02OPlzdbv7OxIgaTfJWjm3R5OnZb63aPvrwRFuWH/o8RIfyhqQPXTTc8EV+X1ptcEN9/Ja3kLuu62ZYtVoRCHgmNzrp2+t1Sgj3W+1LMvoE4nI+99S1m3vrFd3ve072RZf30+yEhHwS7k252U+W+zx/Nu9+72q4SPd3d7Xv16P/E73d36ckqB38nqn3TvI/ugrvef62z//ahG933fd9YQ3nX3d9wj4qySL2xn8HX1pAjiX3mBVWS5JevrLcpr69X6XdmETD99GYQLd7aDbo2WraL9t2rK++sm9wj4ItuXorVdYKTXvz7l99fjju9vn9zY0g1Ksos8EZzqOK5Vqndu+xL177tR/S4QvKx6+2TJ6VdDSPk9tq/JBZ4ZX8XvAOuuZx/F6ZPVW45it47TsJeKI2pc3mKnh2wobc7N3j9Rls32hXKtsbbL65OQ813vlkHnd/csH3fTvjBQaf9ZO/CAvSppAtIQKDSuUYvU3xfazNR5t4k3u7u/ZCwn4Je7YNa5/L8krGX9Si8Vn6VBF6lSifv2N/iflk3od5Kwt4VuQU5LyC8N1P5IwmSFJ7Rjk+cSycvlSWmEO7rH1/VOknLCRyX3d/J0uSIKfF0TpPXRYzPb93FbVK+a+RDMC1aO3CGibZKl8Lt/RLnE1lwx5DKb/JE17ey+7f9zyZ/yHZBrCX6QicwAd/45vY68PfGwAAAT/QZpAFfBcqyzBCEVwD/DB+GX+3h5dZr+OmtMMeYmXmBXwQcMs3CbX8wguYGhC/4E19pcgrDAY5//gn+XLgdQzLESszDIbkGMDkpVu42Cd+wp9l9AlL4rWhc/3F/DiT2ozRVnvVunFuOZiljdH9OduMzwjOOk8v2R6vn2UKP16h3MOkF2QZomVeuPsfIV63DP39J54JuU+5wIpNDrtEx7hDe756F7/lhPu5f5f+sVzyvuFfDnDVz6BJjYcEJ2dQ2BC9UV1Nt+4IDCR5zgIX1MB//P7b0IuxAQ7+0A5efKxvXVBtlY2ETvLzq827q+dwVSj13/37jfrfW20X1NHd+P5nQ7iXovR6gwSvQlkH/wC3MVn94oKVj8Y3H5f/saV6Xg7fPwAD1Uq9jb+9PeCC2Bt6VdRpl5l6HX9Ufq2PFqav9pN0EPpr4XuVE5Xfb2BlBLmT5pfMgP7VO6j9tCcCX8d7znR/5YdYiwDJ0f3vJ6aWddmhtyf6hCIgBX3U/b35WP7uXuQMn3oqVtIJx6XuPd3+U7x3CnMJv7FBC3uc7uPHGt3GeJ5iP5EMHavZsRU9FrjYlp9gLed/LxEiKd7vjFzisJE+l3uENJ4oItyy+I2vzkvhMsykZDZo73d9+teEyXvhqSIVYUqvVoFECzY5Z5/Sl7HgHVTJa2F/gj7jJ4YBMv75WCk04m/dj8EuieSfb2rC+lun4JelsOKbKLw3b/jKf7Gly2YfSpcIge6CMjGJzzI4Vw9d4LBXpj2SS4fX+X97sKbjeHrnHyRIfj7F7cEcc6gBI91f4Qy/IDxrrmSfnbf/91nmKPuv3qnceQiqZONauryNzbosSc8O9cBvryXMgj3SfVZb4ITOQrV9tawVkcu1i+SXAfbKw/dFvNO1PL/vRRrosI+CYVP0/kz5+CK7/aUrPWDpwUXkC6TmPQ0npB2LgqMCF7GW7WN+Fs7d41mBbw8hpMNt9CRNzDuIG4zn+qbYumrJC29+PFdZIrX8ntpV/pvde2/r3TuAi/wr7h/rFmmmEPbxt2/gOpGTR5s2b+tH7a1QJN79CPQwj1VP/ezvdflw90v1KJP/uwTCJBqHJYmDm1mkycmviPzLr6wRlP//xUt9Fpwlfd9vZ4Iu7mbbStjvvIcPuk+j1nv0xW3W99KQl7hEv9xVgr8/3drfvwWXLHN9d72/6MgVnW+Xfd666s/rROrfybXIuE2UPqY9/vLD4Q8E5L3Y3Drh61l4y73e1N9K5+y5PWi/ZSiSmt9NijXvd32dM6d9uXYIyUcunsnrRpPgkvfXY36+5Cu/L769eEN75Nu/3d9+8IeCIiF1H7U/Ezb3WvRdX94JO7ud/ZECQkDtlz+76fqz3eEfDWViMHFfh22nl/3UFJNz7t4rd3xaxMsSUVxLBy5vrIQsEAl7l77v3TLTP/2L6pSXu/fk9OzPCHCd7niObWlr9NYi6nX9k9CGCLd5wd16hMl7gUXg457fq4XmNgbhLUJ4Sp+h8q8uEdmdp8bpXZWFBDu/NK5DV3b3fJ60XZl7UhTSDXeYL93e9D107/xHycn9flRCVjIg5P1pVUMkBLt+K9HjQaPQytr/wotcRe7jJxv37YrLy/fW/JCAk9WmUuve75Prl/VKuV9CfYn1k7lrrd38nrWIfFMmXP2cvHa+FdJGOKs0pMuPeXlOu+8vLHvUqeI17Pd4X9GOlZr1RQXQAAABS5BmmAV8FfmFGEQ3oGGX/Nkk1F8L93zWXFy9P69/xfKNtO1Dk64MeYmMIb8l/9wxCbq4FNN/GytRUoNDUP4Ogza/yblpL+/YUlBV7cORmcw0zIz5/++1SRWuhSD1jYvf3DEM9gJf7RrP/cpXf+H/8yfbdlu4L6W5OjFYS0HoItX2zxvl/gh6qnH77ZTfyluHnW4U8xtJ69sEBMBI+s3bgTUb9AFDusx1dgRoeBbsAmP9/9dY7jF1+3qUDxU1f4kNqZaRcMtq/tjY3rhCe5+haFoIfh+4XMK1/FKXgr0D2yn7hBg+1kEwjL7vYI/17QV35t4AZqqmf37+Wbb/3CJThuOkiBSh06XswXEU+mnLHyrdy773KF9YTgfI/68+tN9ue5LuU17EoTu0baMrV1K6bBgUIv1eWLaJ8rrX5fk3wTUKPd9hHbyHxTflvQh+gS8OG4e5a/xzr+gWECdNSI7lB4wPGTQO1FtloxJETInLzprpxuV9SGbVYGz57NQfeW5lDVQaAaxm/s5ux9WQe1LhrBpJerELQleKx3/882v557szpVRq5nPrYv9+mN5PrJ6H5zHNtD85SReBft5Wiv7rmVDP/scGJn1l2N/k9JIrroYUJMN9+3muVG74VcXFxYD1kfYM7bS2mHvG8rLIpwkcRPbW9Yeln/5PpJP3NyFH5KnusFeSRd25UB5ctR29xF7420+T7vOtwiS99ShSYDwCHfu4rpsbbci/Flgo3AJ9DF7/h8k3VuF3W5G8reLUGl7lFQ7fn9eoI7kXtwRPQnuFBT3ve97u+sv2u4Rp97y97ToBf56K/uCOVD2CEMeb6CncJe4n5+ik26SI54Rd+w9sn1e6i2MEjb+3bzzGUfzN7d5PX/wmZyTzl+djY2znh2ki2gXG5alcZ/2T9fXHkfLYLyIPcnMHcdKUYT9Fqi/+2CKUL3O8JoJe593jSi81zrzFJgbuggbK6Ih2Ymceo8P58IGzzLuGxI26POka4z3/xV63OXb2/2RG+38pTbMGyL3tJrW07LBDhjffc9xpBve1S7k2L/gQ+e55QiFkS/XCW3HOd/0eLPe+5Y/BTe8z9DfeoR8FBibfoauET+ssrfJ9uT7gmyD8wXd5Tc0+4Jy3I8fonexH7Oj3sQa5Osn7Gxd33a7rPW3WKz/bf04Svu9/da9X4A5mAt11kv27/9KEcsFNMQPdXk+73vWRL369l/8MyHc229qMspdx02a2i/aM6+y0I7r62fLDJ7VC0+VGI5dvsauyIRe999UEynh59dJPpQg+1BaZ75/kvJJd79sOCX31qqfy/3qQh//sr0X4Q3j/7tmkyevakiLvfS+CO7z8oOvxEJ7t3fpLS1kqMvfBE2LZ4y6N3hxoulbUqZPuv3Bbz+dCeGehHw4SVifv/UkK8QOHavULOLnznefjS3Rj6I/7Khf7Fbu0kUzrxnvk97GrDAJ560x1lFedi9xXk+tT+xsqM1Or9lJVy53PttrWuulJu/2CEz712Lgruc3hSA/3GWNsKX3TlPu/y3v8kIeQkbuf4IzHQ3SfywTFe7u73+95V1uQTq/XXv76p/zesUTdw8wjt/u7lD9hLx+8vxnPssZxHpixEbnf5oy/eblEu/VHXn6q1ul6ae97yPRu8hYTX4gS7vZsjf4i7tS+1v8ccuxXL7uf+6UnaXKYuT7zNd+SyPf33X6Vo0ZZ13P7vd/v3/Cyy9iHafyIu27695v5ogXN/Sfkmufy5qh933l7u+GvITkxeILK3N+hMfD/xcAAAVUQZqAFfBZ5hSu9eYz5Y/MV5GYY8OZwKOhUITawoKnji/L/7hElYcW4mHQIH/kcWEXL3r3CkCd23jv3cxJ+Y6HtFVudeyg6LCBQn8wjaZ5IB6s1fk/b8Tsbua86Hdo+CIflTPPYF8EV8bZQHcmhn7xLeregWkOLb9zKSp+Qs7B4eix88Xz6/NG8v/JgwlvmnDVuYwS1u6f/Lu8KeYm4QsPcl/d8EBCUecsAEX2aClC+VYoxWQea3YxP3o7a2CWqwQX6xen6ftYL+jRBNtHxnO+P3K69dDhB+i5iC0Of3Re8NM83TbYq8Am/qcedkfWULXvpwUl4Q/tE6riVR076zwwZPPm6S3L5ecG1siHTCTWcL9r2gAn977/65uevf8f4karfOLTh+HIuvduLlhO7OyilmSWssEmdM0tKHwnyt5evw2fNqS4r+Ey/3tjRUdkseZrGFUeejGZy98duH1U4Txzs94b7BTE6VWXBwkZlcwNJT2MI5ems/naDODxHrfY9Of+t1pb6VDISmn87dIzehxDCdiTu7XiEby75zH8vv3hQsVvlzL/YHsE3D8H1Lkbve0htKX9dY3Po+MBpTOX6vxk60gCnLOHcq/ODg4uLOY5L9e4RKkOLcKmBz7uv0tLfCftvnSGCkn9/jZeQbGta9xcdV6+w5c14s17vC8HoInXH3uO4yYJw07xvOukHbFyabULc0f8A9tZPym9fWH+73sBHt9Tz+OrxpE/CXgnMaQUbDv58qP/ffuN3XZ0BbPe/gSP3vj2n5UD/UcW7jGM/W1jf+ysaX8cD/x8o+AK92KLGcvcCrTS430npJl3nh3uOmNifWGGYj3H/BAKnOW8EuNFLI/yfpXZ9De2cLyEqhqIq4OIcxKxJMghcbztpxzlUFQfL++o4uHoFXvh5sPRA9+4ghxwsAK++f3f4koRul/wR/HjtO8SuiobMvY7q1m9y9mPDdTfuREBGvv0rKZevdqdjDv55/TQnYwR6RXVqw06wV+cy1reuHXkhpe2kt2B/Kv2pehp6EvHCJ47Ipa3609YIr6PGTAh/X0+27cFkegO7eHJOloXoEP4838hVXG8ICKxC/l/3qNPH65zaA9wycZOUWyt5TjgXd8uj+sLU2+7zLw3LyYtfLd6sXElffIvk9pur0ngLVdvvto6oJiH7uceNDrNcok6/vfhDzacvS4RLKR95PtfE/toP3cBLXd3+zcrHnOC32dTw/il9glwjwHyQH93fXTQJd75Q279dUSLK992PpIEEvfe7yqzV1rNP9Yy5L933IFvn9pZF6sz7hHkCma43Sb+rr3Xu/kgjuV/ltsfVHc2pFa66Pdm93rl/93u7rxGxO979SyPQ+X9et7vCPijT+7uV/flKEZ87a976RTCXonpLS6ryXe+8r63+gR7vLZfr068J8vu9mEvFaV7xY/on/Kxh8/d33uzmXf+zrJLqxAi9336Ru73v/lK+8n1WVJWaGr6fqjtG1q8qBBl+II/yB3eLhD7nv9iSb14R8mViOr8Sbf5//ZSvd9J9OIO73Ov+vqutFShr6L6JJfTtPIXqjGHafk/a9eEvCeHVrOnvXbjjXtvq4QvHD3d5+2q+urL8Z22WT5PVCju/e9LmQ6Nl8Z+/jge7iB4JvnvP/hTURP/LIBBqhv35WKLH6PissOT1pSIiwUHPC5Iu3074i5f+R6SLrJ6aSyLhPniw3FfxEI7nQbv3SprooJrUhN9xWLxC7+wmKtvdby/5PZPT03UcxQvl+RqKX8v8n6ReUkg/y9XsGchD8f+T6Un9lKk8dUM4ixCsK1X7vcuc0Qe6rUuCyAAAAUsQZqgFfBV5jcfnfmNaS/F5qaST5f/c2W3/mIzyNl/94Y8284vL/7hHe5BONRzYQ8bsbCplYwZn5L/uVhTlGVSyh9XyYcGu1JIYgWrp33FZ8fLl/cIXvcrt7mQSfpbl4vDyJado5aXr2sv05Nhgr3LEjT16cf4S/TfCd45U0/ZrCvmJhq8d37jSbIIrOwXFTa1ldmfGzM3W/phPx5IARSnydR3+2JX0W0T8Tw2Zmr/jDG3J1Tz+t3G8a7F9tC+3aAJ/b+b/IOkbSSMUu69fnCtarfAfc8w/kbHLh04+ucvH9Lv3Du5xS2JTkSfYX0oqnIycd61jif/7jCh1w7KKfGeng31cHuMJcO09EQJB+T7r8RdMJeebkD5zw/dUp4cnBpwb9Puv1SeCnw0ksasxaFkifltJH4iUTvvvJ+rX6pXL79f5Tp5RIJv3FDj3LFYrCy0FvDEOnrdxtH3QZbBMH1bALaSUP3frO6cu0woiIa/Vayf4ed8K9EvSs/Y3VsrCR7ztUpXvn/L6b9ifw0pjD9i/0lhvOu/wgVP2LmDJjyfW08oFvnLEC2iwS+a6WTd4YpVKFLqio7k9VzXfauTuqSFXd972rbZhGMIYM9UUtSpoFcOoiW5dzB9im2vqakwBq1TjuzpvtsJc/vKuGpOQl4KCXlg11bfqFN5VJ+yT8WzZeqZd3vrL6dvQIIzJ/DEkn8rQRI6lZeG+Z9/h2YJz2QtkFCSRJYKQZH+n2+0+sDWnbpaHhDccfxt60HRH3NJzK0WZsUH9/hb45SCN6Lb3MX08QEXcnP6xyPXOu91uOKROlYMb5gLzx46vOx5MEvzxUbZ675pXSuJKZj4dgqvZ/TWX/fCliHz/x+AUesqmYS4873Bf7uYX4eELRrTS/7gDV42IWu+bNxsqGNYadx9fwl6sVRZL+4b7K+nBJjTPwZP2/GvG9C1OhW8vDmyBXb6ouQQfNq/W7YDSH8vpR/jbz33liZJT7hvv2v493oi9why/dPL39/qCMsgmNn334JcfTPMO8G3lPv0VArM9gp43U9ZjfrBMdztfff/69CPghI8/39oVe97+2Ehs+42ur9yfba30CUZPt+a8Q0T+re2reoKTkdOp2T2KeNujy72WsJ3L0Fuu8tQnve99ngpnTTILvX77e4+O62A3w7SJdv7lI9/oos/n8I+C4ZdJ3vjd6O51rd+Lnp7v7s+79PrQqvNXuveq6d8J3vfe0lUWW7W96SVN6K4S7BYR93vu+XfSSP0XL76vaVP1rBpcnrNd/WIpXuefpTXf1m3uEfBPL+pWLwdENuhUqGHdI/t6V2Tvcsd1QQmG7y71304VlvlJS461dP9ZPPknqr+pdDcubFom7vvBEa6LWT18nUZu7veIRl9X08OCPH340vpoQfM/eY92x9z/u93P3sI+CI06jc/CRLy98bxL6bkWCstx+ot3nife7ZPVT/Wq/I2d96TxvTXku/SmYgnaXk5PTSy7TKTlyT13X4S8Pdyyz+OrfpwcN/dcs+Uow3NKmnhbvxX2oymUSntcjNc29NCYnk9WlK/005/X5fTLk9X3cnf4IST8g3eUKeQpYApXeX+/BQUtJdNlsr2tJKCpISUvY78Z7iFrvIaf9ZFiSmr0ZOl7Evb4iKp76b1tSEu/elwr4IoYu0SpaXkFl9dJxBmSkNU5ba1KLskR/5Ny/2kTXhITPPtKklqSSzy8MeGsmZEpiO/9RHPk9XSJf6glqPabUckr3x0p5IZobL+x8m2/Jfd38PfFwAABQNBmsAV8FflGZQqktzdXXi+bmju4Y83LgQ3aivcYTRj8rqHTAQIGKadvXxH5Kqocd4Ol/LvClO5UWFzxofLhnT4VfMAo3p4nj/dkWf+Czd5cKEfhpfjb0XqT0nLotMN5wOFkIQgRZ4IU2lb/4QLlsnzirvP9e4rnxKYLP1WWEepSyQ5Gv3VcK+Yk9ZHS/u3ggIJH0F34OAYq6tt/+B3DUtk6qWU0Cb66h6kJDitfSsPzYSOG1bVMdZrd+0M3hnVp14/EjZACf9adPsJJPUfCNvlFpQ3ZVuM8RaL0rtM8YWCT6wWc3tfY2Xppc2ideLdi3CcYCVF/9y/dAEt8k/afLLGaI+W7vZwm4KiuwvFRoK9YNBbT3VPQ7dmeUTqa4Jfj889K+Kvu2GhF3v1RbhbkgUMx39l7/2peEM/fcs5Ul3etcZ3bzyfdG5f2pVve4U8IiC1IXyjw1BL/NIP5uf0tzxAZavdPkv/djcf2d1cN/HZK24Lg0EYhmq5HaxWz1md9eFYzvZVuPJ6C6Cz7WhdoH5JPRtGvVyvC9PZH2kVuWBI99VUSuai+HrXJGFgu1PwbP/XO3ucrZrIlY/pK6BFlTjbYVPwgXa4cd3neUG6S3MS99e1r1q5iZUwh4VnW+MjAtoK97neBhUS7hNCPHlbteoK+HYnj8P2R3ulQS8E5LlYt6HfL9N24Ksi0Movg33Zx9937J/RaSRWDDd/cHGLrw3Sn6cO2uQtuSUEfZ+NCNVzhBf93b7N/UKJ476cKcFfkgEljgYzK2IEmqkII2h/nnzW9h4CBWuRe60E6h3LST2MKe5pd0vMPvfZV/GBPRd3jWN0QR7ErRaGEBn7rv7d3diOfUPTpf+1zXXx30vmU6aUucZc0fVluNQnd8JRq14bWJKfqquhpkbtTMUOhTflZS+03iQNHqP/YTdUDSOreCF+cM+sETfuvDvcaKghTvaReG9XP9Wb3y+TzYQF82Xc8E72YRfqC0Ytb0P3VdHYrzPj6f9OG/kuCSuv9ngqJiH0j8GH/6rZx4eTAY1m+7ylIDovwdGPT+/Y/75PVI/6Nvek88FW0PUscpDBNUPf5F+2Nryrr2wief3d33l4RfaYIzOZr/hfQn6Xe8OoXVc3eCUpgW/ZhLY7dkoxkOv1q2T7/3Rf95d3IfulfxEEXn7/ha58eWWPF2a/3z6/e1r29rhJ+WCM1N033qqO/drc7vdhZnL1avpPErql7a7q7o6eN40Xyx8S/9NX3/l9/2d4zTCHhAVy9NsNu+/URrI138v/eUTnZfRl39F934yIhv/9T/1vO/qiffSlJTfV42rwn4JPGaf/RH+ry9vrk/Xy9CzCyetZq/r3gkM9/baxEZd7u+YF7x05eT61XoR8hbfHafBGYr5n2HwVl3d3d3uWKVfKd7qdCeqXBFd8gtfkny+6cvL7qS+v/fJ6e+I/RUCzxXcvwhLG+dr2NljzXW5Y7CioSL+JH+CrDLrNHxXhE628gPsICnd3t7dJ5nonpJJ8rRRO71uTb8nron126yAitnH3YMgGtqThAjVB3MD1tve79pwmtcRfdxrsn/l8mX9NDSHPXfYnvV0JILyEE83u+kk5F6ULYiEySvy0StV/pJtIFIlKWHDsuu26VFa3l7acnr//qFCtO8xF8uW3nyCMzcFNtSIiBTueW5lpXssKsn41TJ9L/uWKXDS/ZMH+JcREdVyZfw98XAAABNtBmuAV8FfmGVJnXuLjL6+Yq9l8XOXxPuHdhXuYmXH+LLmwZtR2JFDPhEiRwYUizSD0Iu96MftII/y4XzleUNHcdCda/89uknteoRCPgcO/LCWfn+r8n23Z7uCORpGT3pV8Ze934CD3rfR8ab7xvyylLVFrL770a7rl9/Ihc5d1q+Fn7hEc7uCR2rPuATetvj3hxbQDG++x8vt/gmKc30pL8k/OYNbhqR/rC3VdP7hLSU/vdk9c//oshamDut9fl3PmE/Ns49dl/vbGG4YFcCWwSQaxnXTMe/TtmVXINns4dl97acbRtg0j9L8WqWypwuhAd7bWuq+XBqxelo9QY/+L2tLuZFsUHh1Ov/whtLnW1wnHpe/HB7VAGPeebO6f074S6eLXTlYKijQu3a8OOCsZDzudcMIfm96Z0nnhrD9pSL8sy/H18vv+DA9ln/d2/1L6vG2Qi7P1lxsSBY6VZULJl74ZRb8KVgeb1D5C7OwGPEDIUeGT81O+Cfa5G9YRcq6/L7V1YfK98QhFoNNlkqXJXGv4WUjCb/BEMe3DSA6r83jq6Kwl5/vGeMnpK/mQu2QLlKp1FKF8i23EiT1mHqdJw/WpYjOuGW/rxW51/8TPX4agtlRCfW5V4JBC4bUjkH7p0iNwl4KS3L/J9t9zXuCeTD/e+t+5MD/qFRClIf3bTc8Z+pqeHxl9+Xx8fEjHS6/eCojJD3jR66n3tpj8cejA9hjpdvFLBMUMqF9yvIv5Ne+qJLNnHQ9K29jfQmWYLzL9jZStSy7SCmRZ+7ve7ornb7CJpJFo/w/boiAOpBL4PdnuCbe4NrvVv/2+sOCeaOF7r4RXJaEXHxeVqxpX8T7wQy9Gul7te4wScL30zvO3zBrh0i38v6fIINk3C+7qsEnjZ5fr7dlGe3N3QiWCfMRKxvezVdiYJfr4QtQbjWi2kZk+3uto19+mII97t79cqJCHgmJPsQsS/t7YJ73vfl6lE8u266sa1y737hIXLJ939eT6yfXt9NZEhTsn136u++zrosEW8uHT8Zd7vu7+79pnKxuEPFCrz4+mh+xnP585/0nd0XwmJTvyigaST9a1+v1BHy45BZf/l36vjBK5Prrdst3f8L7pOGEOQu37pn/9USF17XThHw8Wpmcka4XcW/F0WH5+svpP4IjKOq+35RJYQqNz2Jfbgu3u73SKT129clz497GsIy5GVt7vmtq7dr6PcsN9fuIJu7v6aFwJtZot7T9wls/Xuju6IsSdoJH+felak5CO7wj5t71t0JEZdt72f3vjC3vd5fzw3enr7yndLq25Xum+32++6/r8R272YqN/4s2qZh8DX0y/kvTG53CXhPL/hD/HSGGfu+XXe4ftr291OVArF3uSX3vOmnnNcufikWUq99CF19nu98ntagtiv2Wa8/dF/pTRxncwL7u5WL9bHk/hMvrfkFQJWvp7esLpJixdb3eFvXqyDj3e8buSK0ko4VbE90M/X1lu7+pL37wSXe6ZU0kMYLruXd0j/SLqymkOxnCvkMXVOz39Q6Tiy6G+lo5eR2SywBLUu/0+4KNm4YWsawamTdakO7on3gjpaad1fjvFad3mzk+q7UaIBVu73drcODwtGtSQReMqRMn7k/wx5Id2CD3y/v7rG7/XyRGQ2XMf74LIAAAFCkGbABXwWP3CIrYMdakAR5vaROly+rG1ieGJrDeWeJewZS0a6m314u8x3e/y8YJshfzGsUEezelXuM5jwIvxtKlk2+7AINeDf1BY9djvr1K9mPL5LhaX9/COd7vJ3DbCVu9APiob2VjPcoHZt298vtR8dFH1sntNO7Ti5NDcXRffb0HsTBfM37hLw6aHbaU+/VdBEuTy1T6NO/LBhve09OP5cal/3ot7v8tpRuNwp5hWaIfwfL/bthEgXFe7ARdfgVn6uMfT0RAQ80j+W8pf7psaXXEulWtlwHwTny042Fj+v8HCmq/pItodcDb1vXYC9lMnmfIu9JVjr8DvflFB+ram9Jfk9pJ7/J6pWv9HghxlP2n3TnQIylbzozXl4dzaheCfijNJt6LFkCSs8QHF1cv1PYUI6YhpjZFVj35QdvWqL6h3rs0m+y8n6N4uOT/QUw33h/cIFyFMz8BerDkZAAg+/m/6+Tyu0vjJcv/wgW0W1X+GWAmA85zet8Vj12yPMv1Ze5Q425bhLu5t/xRnZeHpaSOkSe1YlF+CsxB56UA7VnpNAb3LeZsfL79Yst3DbZLrRJ4S8FhOViVftlhs3tUFLvZWavpAhXsJi9bZmz9Fvt+X22hLLBXv3bIS8oqCX5nhv1h+vLcfnE32Mgq36id4j34SjF4x6v9i2CznTIXRtUTy/MIQZXfmrDeig8N/IcdWT+uduJhhLs/Tr/3/uMLcbFaw9MpD6X+3v/yP2NhaCQXJv4ufDBQ9H+4/q3Fd3d721RUPuNO5B/1Lq5bLBEvnzm8npJa9hQ2Pml8wFjol/jE2PeYxhCv0PINKqYIaLo371HiEv+V8Jar3WCfIuxv9mrl5GpOPryIX3UIb0pnR+3CZvMozKPmSs34Ji7pZSJlkEt821PwRFe4VYzDvFml+1S2mJlhM+7vft9N8it1gsJQXO29AQ7jLU2w1YJtt3CX5Xb9v9H1CPguNnzmZOz4JLbnGt91rd+YYzkb+Hxec2+4WfXw6nzTp1s/r3BCKPFOk5795PP7af6xBdzk5L7WhHyNX9oJ/D6LoPd+vpGu7/lEn/CHgsHJz3vn//4kqekfva7mNCS5f/tHTrR4mfVgZ+58jM0qJJffmo0GT1rJS0WLeuJ3u+/dYPUI70kN9910rD5T4zTCBftdsFIhOma7nZ3vfeyFgltxU3kOOxk+v9xYk/n+8oL0yiiO+73vIt8K68s8Jf0f1/k2bvfThC73vc8e+iyd3rkc175f/x2793e/7E3OvCHhERCf/342g+nHafRHyfVdE/V9Zi3v0xZbvu7qxP3U6Hfr8STka93tsSlMQNu/YB35fTCIlzSvn73vXyQj4ey+iih4R04T/xnEYhFeUuHfv9CGPLCG43p3d3v1lE7v2lSh9U5V/qbeirtQgfd523b37evkC/Lm3bf6nPtcn0ltPQSNlh5f0h0BNr5L9xe8/3eEvD2GnDvZhdMbUQ2vf7IZ64cv7BYIc/8Ji9La2BtQN9CImT1zJTKwRiyf05tS1Ccz++/JLP99miBJaflpJ6qSbieT7Wt/Vki35JyP9OmbbvKkYUjJ6VXkZodJDTODDT+992p0lu3/7HmS7hPyDnAH1tyWeT6+P97vl99FzHe/bffu0xPvem9JRMkEe70qk9PIlLJe9wzT9fWp01ub6XkbKf/8L+GrSWnXh+/z/4jNRvJhXvyfX//ujRN/uMM/v4e+KgAAABQ1BmyAV8FfixnD+UWx0j+X/3L1el7mJd6euUup8C/mJw41SX/3CPHSyjwk/6LNC9gkbLVb0HcbD490zL0Xmj1zWhZMuNdRnx87xcf0Zfy/5+Cm7+feN41JDX4ztkDzSUQcWsgxgMm2F/d6TLPBb4I/06hxutKpfy1tl7WstECEr5ru7GMtC/wnvJjVYWL+9uCAcK7CrxIlyK3KFzKwZ0/yY3r61mKrMYb5mH994JvVwjqY4LlSFF9kG19houC3sAgXu/dLgR/s+//cf8haUdzh5qaTxFly+3p4S5Hz9g/5ef6cT9OvW1Chf73CmHP9bIarthr6nI+c2eGmf9QQvsbxvLzD2h6q9GRsn200d6jTPQ3N5dqqN2xSwSf4akrLcT+84KiYWwJW5u1iYXe//uMKkcldyLse7tLtYxJPGOBB+HeXzaR9BOY0ct2EW3i1kzIKyerV0d/RbLz3SefSoss3B2GivvUsEwg4XuUpD6XlASHXM4I7svv9AoKRBD3nB+4J9j372coS8EZJpXdv8K7uHZP7h2CjvHWHvv9K7gu+3ZYS3OOaV3D9LItY/bftoIzrDb9I6P+YYH3+Dh3ub+nPwQdw8RX8qwAtOuQ9PeHJQG789tDdflUcI0Wkqwep5/SbuJkP3whd8b/35fbTuILMGoZlc3O83afrUSrNcvDaW1YGd9eaOxH+4owZcXwBN7+R/M0+jzZwx5s5ATVZuViIekji2nhk/XzrMLw33+EfBcIcZnb9TkbgV3xyvLvorFa0f9gaebyelXkTmz/3jSbsHJq43gig8F7+63jJf3QQfZro9DegE49E7t0juZn0+KQ0q+I/ck7PZQ0Ib8sDzwN1Fv1w/2X8nvVW5YKyjr8+9n4bbyVPwYGg20a2IodnDxhSWmTc9Vbyer+NuED3d1s52V9zJulJ6Slllmi8tvpP6UKYzXxK/85jfH9zlntCBPs5JF6daSD5tJM4K746uvadhVwN3S+1zQVlhC6QevS9d/cDnd3ecyevXqYpu+EfBMII1sj1y63PG47gou+dfy8swtnCHlP7tPvL4xd4eKE/vskaHp2l/wZ0PR28NKycy7NzYfafwSjrcowQahbrsL2lF57L+298vd79xJXc43hH/T/UJY+4Nno/8M73U3T/+CO+7eojWlexSnlqP2vlvfL/l4fvfz5e6/dXCS3wgS7vzcufSpiYSPCy5Ls8OkTwdpXu4Toymoe+9bWJGvs4fu8/xApouTH5Gv6PEGjgn9e8vrwmV7932Lsm5faZ0eWVN36xhX3u13e79IgSy/d7+hJz5Q4zT4Q9DG9wT7v3dz8glq9WP936j9G5+729mM45ffVXxvfo92BRgVvJ67+uT7/8Fm96T7vOmsnBIR73env7hEv8nclCPVlLu3ponKSf+CPd5hZf/o3js5o+qKhIh3xnFXRPr6TWElnCeJk8uXzpPib3d3d2qxurH+utwRDX1RSuTutoxnIP/WEvHlYbf4/jb/eU6gsM7Y/S45t9aFxsrcgxm+2xwu6bu7txO+UWidKImvuCc2r0/Kd75P61zw0TGt6+0e/ubmi3VO5u5q9QQ09xqD8EZJjcq6Tf44kAna7SgYQIeh8uUdvH6PYUf4yN1fjd32rR/fL8E5N07rb1QtF5eXLr67GwREl+UGvSe69if0JK++rVeZip/uHbJf5MLLbwmIu7yZ3q+tpKnrQIT7uRPMyFS3tVckVu7gSIhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4GIUtLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gYhS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeBiFLS0tLS0tLS0tLS0tLS0tLwhEUUAFFABRv/xClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl3gghS0tLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4GIUtLS0tLS0tLS0tLS0tLS0vCERRQAUUAFG//EKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXeCCFLS0tLS0tLS0tLS0tLS0tLS8IRFFABRQAUb/8QpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpd4IIUtLS0tLS0tLS0tLS0tLS0tLwAADdCZYiCAV8mKAAOKMnJycnJycnJycnJycnJycnJycnJycnJycnJycnJ11111111111///wXeAAmFEcIGm63wChQOU1oQEeEj84Ba2lPP/u7vw6IgATyCOF2cOKFpqPMANIgQwqMkPMjTYR88zMDUXZnDIT/2wMBVFRFyQ8o8AmLIC7aUBdUP35c9jxADMgEdpYBJkHUp2iKlZXx94+K8ARMxEOpH4OpLDpP8aQdXIO5Ma+G8bVvsdADZ7iv8LXiuvHTinnkOOSBqz8zMW1xGr/eFB8gIenZ4C5x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AAAGAAAAIQAAAAEAAAAHAAAADgAAAAEAAAAIAAAAIQAAAAEAAAAJAAAADgAAAAEAAAAKAAAAAQAAAAEAAAPEc3RzegAAAAAAAAAAAAAA7AAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAABKwAAASsAAAEqAAAAOHN0Y28AAAAAAAAACgAAACwAADXXAABrgQAAwYwAARKNAAFhWwABztsAAiToAAKY1gADEjk=", +} +BASE64_FILE = { + "name": "test/test_files/sample_file.pdf", + "data": "data:@file/pdf;base64,JVBERi0xLjQKJdPr6eEKMSAwIG9iago8PC9UaXRsZSAoVW50aXRsZWQgZG9jdW1lbnQpCi9Qcm9kdWNlciAoU2tpYS9QREYgbTk3IEdvb2dsZSBEb2NzIFJlbmRlcmVyKT4+CmVuZG9iagozIDAgb2JqCjw8L2NhIDEKL0JNIC9Ob3JtYWw+PgplbmRvYmoKNSAwIG9iago8PC9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9MZW5ndGggMjM2Pj4gc3RyZWFtCnicjZDfakMhDMbvfYpcD2bzTxNhFFZYe90h7AG2tTDoYO37w9S1O1A4cIyo5Bc/80mALR6pLVYY3k/hJ/RMJh6J82d4e4Dvlo2WRu1tb6UEPV538Hc4H8NqJ3C8DAWnDIQpd4lD2LdYomzcZ9O+Km1qWG0VSCRKG+xQD4FuTZeWdTcR0CiZiqtAPYXOGKOhEBnUD3hC5M0a6lcoObInwdIErsAHcI+F3cknsB3ANFJCU54Byf6B8AAvdZi9s8WokcXNFrvLEj0n0gXu5Hm8TJyiK6nm+54Ipd3IXnQiae5H5vyxTf724RdvlHTtCmVuZHN0cmVhbQplbmRvYmoKMiAwIG9iago8PC9UeXBlIC9QYWdlCi9SZXNvdXJjZXMgPDwvUHJvY1NldCBbL1BERiAvVGV4dCAvSW1hZ2VCIC9JbWFnZUMgL0ltYWdlSV0KL0V4dEdTdGF0ZSA8PC9HMyAzIDAgUj4+Ci9Gb250IDw8L0Y0IDQgMCBSPj4+PgovTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQovQ29udGVudHMgNSAwIFIKL1N0cnVjdFBhcmVudHMgMAovUGFyZW50IDYgMCBSPj4KZW5kb2JqCjYgMCBvYmoKPDwvVHlwZSAvUGFnZXMKL0NvdW50IDEKL0tpZHMgWzIgMCBSXT4+CmVuZG9iago3IDAgb2JqCjw8L1R5cGUgL0NhdGFsb2cKL1BhZ2VzIDYgMCBSPj4KZW5kb2JqCjggMCBvYmoKPDwvTGVuZ3RoMSAxNjgwOAovRmlsdGVyIC9GbGF0ZURlY29kZQovTGVuZ3RoIDgzOTM+PiBzdHJlYW0KeJztegl4VEX276m6t/dOeiFJd9a+nU4aSQOBsAaQdDZAI3uABIkkQCQoyBJQcCPOiGBwHweVccRd1EE7i0yCjjDAuCAIo4y7grg7Iui4ovT9/6q6wzLqvHzvfe97z++bezm/OnXqnFpOnXtuXdLEiKgHQKV+o8vKR7HBrDcR90I6bPSE8ZNXVmy4k0hZg3rz6MlTSqxPm64jYhHU+42fnF+wfOjmfdAX9dqpZWOrJtxywddoSiJy3Tp7Qd0idjf7Eu2VaJ8x++Kl2j0Zr/6TyH4OkbHy/EVzF+xeUb2eyH036hfNrWtcRF6yoP8R0HfOnb/i/LWfPPI+UaqTyFbSMGfB8ttq5/aAbhnI3FBfN+dg0jPojx2E/uAGCNwDLCrqmCPlNCxYurzv++ptWBzmQ5/NXzi7LrV3+h6sB/3R8gV1yxcZ1iU0QR/zIe2iugX1ntr+bxMZUGVlixY2LtXzaB34+aJ90ZL6RbmvjN2KrrEe29OQKWQmTi5iug5e+HI4fUkj6I9kgtxJ+TQVo/8JugbUFZKX3lP0+TMX7E0jo+Oo1EnHHj92qVNKTruGS4mV+uI21C2pm0Xa7BVL5pM2d0n9haQ11M9aQtr8uqUXkXayTzKkrn94ZvmKmY4RX5vTzVJ873s980T5woThm489fnyuk8x2VC0nRhSlPc5zrCYm60lnAEO4GdaWDyzAzWgQbkbDcLO4BcnVJsW9koT4GoMyUfrLSOWonUPjaRJNg+eIyk6t6++dvH/iAUVZw26CN82G9YYBmFJ6rFT+Tudzt9nAbUaVi0ulf/Pe2PHjxlMYI00zvBydyAaYRrLWsNg4jK8GDU+KHSb1Z/fl/+R6muXLe3fs5hnyfkvcav+u23BPfF9LaAYpckd7x3ZU7mVSbF6YKYP3TvLsFB4uuLB+CXRPxbgPhB6H55mkRGnFKYNSZH/5sb3T35TYgCfrJ07//+cyPEt3GabSvafU7z+1XW08+WwZC2n2KXr3/HtfpuspVRQ0XUSpirxDF1BTnGfYjYvjPIfPGuK8ghg6I86rp+gYKA1aMd4IjqiYltA8qqP5NJYqkQfqUW+EZCGJp3MQnuD+1A/tY6VkIS2lFbQIWhqdRQsgnwvdi4Aa9QGd7E3DU1IP+TLwdZCeXjup9zA0CzBCf9waZtAg+/7paKWoLQEvsA7y2Az7yjHnx8ebhxEa0NYYH71RruZi4BxoEon3RdhmNXdvE01GkhkFhTnGwZFINzZL9+wtZpGppKUlxpENlJBg7aa95YS9NW6fAHI4bN2zt1ljEzbLFCmNHCCnw/6f7bouuy1mZTnd3uVK+N+2d4F69Ejsnn1iQmzBNjmuNMJLlZKTnd2zdyTGrDC4MzZ1SgZ5Pe7u2bucsQknyHEFRx5QekZS9+yT3LEJO+S40igDlJmV0j375B6xCTvluIKjLJCmebtn70mOTRjTSI1x8nXrz07tnr03JfbEwD4txlE2KDeY0T37dIyTTnLmmTGOgqC8PK179lkZsQVj5v4YR+Iw0LdvoHv2fp80FJPPiXEyCRQUBLtnn+OXhmLTesY4JCoc4Ab36p59zxxpKGaeF+NoMGjYsN7ds8/rGVuwRkitksPBhai0pKB79v1g1Q9lLtHAGIcXN1FFxdDu2Q8uiE04T44rOKoATZ48snv2I4aASDq9OMbRZNCMc8u7Z19yZmzCODeNiXF0LmjO7Iru2Y8plYaE5Y6LcfJFa9hCqaA0w0OUqgZFXOsfgT4WZXSe/rFoFyX/FModcSLaSJvYPNpEW2k7Owqrx6mT2uk5RGcZ3UmX0620Gm+K6ZBci3fPJLxpy+hWlqq34+RyD96499Ae6E6jK2kLpTCv/gmtpFXKy7BahQyTDRdNwBvtenaOvgynqwPqb2kIzpoX0SLWpFfpN+i36PfTA9SpPKcfR0ZMw1Jm0x79c8Nr+lsIjxn0e7qDDrBbLE/gzT8N54NO5Y94961XalSmz9WPYQZ+ugRzUPFu3cO28RB6r6ePmJddrpSil/v0iL4TWhlUg3foetrCBrHR3G+YoY/V9+AM1oeWo9c7qJU24+6gv9AbzG44qt+vH0V66Y3TwEr440W2TYkevypaJBwNL/WiQrQspKfpWdrHAuyvfKHBbigwhA2X6vuRE/vTFMz2IVh+yL7lV+JeqTyjjtJLkLlX0c3C2/Q3epel4Ww6nk3lvfhCfpeyBO+03vLEMAfv/GvpdvT+DguxzdzO9yr3qY+qPxgzowf1ROxIkP6A75y/sgSsVGON7DfsFfYeL+Uz+R/4IeVW9WH1JVMdVn0eTjPX06P0LXOzoWwiO5c1sMvZanYzu4PtYfvYx7yYV/IL+RGlQVms/EUtwT1ZbVR/a7jGsNb4cbQqujP69+i3eoF+DU1EPFyF2f+e7sLKOmkvvY77AB1iBmZjibg15mdT2GW4r2TXs3vZRvYwa8co+9gh9gn7kn3NfuA40HEjT+d+no07wJfwS/it/E6+F/c+/hn/XvEo2UpIGaSMUKqVhZjVauUm3E8o76pp6l5Vh58LDOsMGwwbDY8athuOGu2m35jJvPvH+47nHX8nStE10XXR1mi7/i5ydCpiKoN8eE4n4nxVhzPmcpxRH0Ccv8zs8F0ay2Mj2TnwzEx2AVvMlsOTV7P17AE598fYU/DSq+wI5pyALwcx5758EC/h43Gfx+v5Yn4Tv4W381f4McWk2BSHkqzkKaOVGqVeWaqsUNYpEWW38rZySPlG+RG3rlpVn5qtBtWQOlqdqS5T71I/Uj8yzDC8YPjAaDUuMF5j7DB+YRpsGmmaYJpoqjHdaNps2m+uRXTuoCfoz6emAnZQuUopV56gG/gANZW/yF9EPM+kOcpYjkjlG9kafgVr5zmG5cbhfDgbR0fVIHz9DN/Av+HDlbGsgk2mC3j/WG/GJPURkd/UHXRYfQprexE9Lzfa2ZX8iNFOrfhcKcSYf1P6qSHlBXpDOcBM6j30pmplHnaYP6RMQBT8RR1pqCK/cic9pixmV9ATHGnR+oP5OsTxOPYI8kIlK2DfKfhi5+MQRUOU9+i3dCF/jQ7jOV5Dt7E56ly6gQawy+kjehBPRS/DRcY8YzJ7ns9Tm3kP1k5cfRirK2Q5TDEk0dWsRllvPMJfxyl8r2qld5Q/YfZ7+WPKWPWoYRJrwBNwBV1Di/WraIWhSn2JzSWFTaVc9SCy2+VKgepHuRJZZQZy2mY83VuQB4qVsZB4ETnnIC6mIEOsx3078oSKCJqHZ3wastiL1G6s5B0015DIkHXwBfRCdBJN1x+kO/S5dJF+C/VBPlitX44eN9IHdCNtZKuil+G8n4Un5x12jmEU32sYpffhzfx1PpmvO31/4e1c5qVPcT+Gykh8Jzerr+J1U6Rfp/8D0X0GMuwdNIvOpvexys8xwhhlGw2IjuMt+ihlEdZ7gCbqD+k+ZqUGfT6+8Z+iB0wGqjOFsMcR9hLWexnV80n6UqU+Og9+uBFeCMNby5B/rg2XTqksDheNPHPE8GGFQ4cMGjigoH+//L59eofyep3RM5ibE8j2a76szIz0tFSvJyU5qYfb5XQkJthtVovZZDSoCmfUuzwwqlaLBGsjajAwZkwfUQ/UQVB3iqA2okE06nSdiFYr1bTTNcPQPP/fNMMxzfAJTebURtCIPr218oAW2VMW0DrY9IlV4K8vC1RrkcOSHyv5mySfAN7vh4FW7m0o0yKsViuPjLq4obm8tgzdtdispYHSemuf3tRitYG1gYt4AotamGckkwz3lA9rwZd+AiYVSQuUlUdSA2ViBhElt7xuTmTCxKrysnS/v7pP7wgrnR2YFaFAScQRkipUKoeJGEsjJjmMNk+shtZqLb23NV/X4aRZtSH7nMCcuhlVEaWuWozhCmHcsojn0ve9J6vo3F1atfrU1nSludw7TxPV5ubVWuTuiVWntvoFVlejD9jy3FG1zaMw9HVwYsVkDaPxVdVVEbYKQ2piJWJVsfXVB8qFpPYCLWIJlAQami+oxdakNUdo0gp/a1pauFM/SGnlWnNlVcAfKUoPVNeVZbQkUfOkFW2pYS319JY+vVucrphjWxIdccaecCpTf6JNclJdcBWTTniWiRkFzkJARLTZGmZSFcCahgqoH0rNs4dCDVc1g1VkDnZkXsRSWtvsHCbkwj5iyHUGtOavCREQOPzZ6ZK6uMSY6/yaBCvi5ESoob2Lj4RCkbw8ESKmUuwp5jhS1gf16X1xBw8EFjk1FHAfTYBv66qH5cP9fr/Y4LUdYZqFSqRpYlWsrtGs9FYK54eqI7xWtGzrakmeIlqaulpOmNcGEMnt8n+SkiPm4Il/DmdKj/KGYRGW8h+a62PtFZMDFROnV2nlzbVx31ZUnlaLtQ890RbnIj1Kq5R0Hud4uiJbEZQzTiiLSpU9oubin1EG9ZwOkxlRKSVMGxVx1o6JYbXV7++mUYd+VFjJ4qRZfJqRYaHT68NPq582PXuzggnjVVlROb252XpaG0ItNuBZ8QIRT5VVfq00QlPwZObiX4e+baig6vRIGC4rFQqIv5goXj1NMT3OV+MS0dmn9ygkuubmUQFtVHNtc12H3jQroDkDzZ18O9/evKi8titwOvQta9Mjo66rhq8a2DA8FJxKWgJszcSWMFszeXpVJz6ztTWVVa2c8dLakuqWHLRVdWpEYSnlQiqEoqKJClUwLLKVm6V+emeYqEm2qlIg67M7GEmZuUvGaHYHj8mcXTIOmRqThaVMXCLHlFZWnRo98pGsxmcdLO7CAXs6vlUclMlSw27Nx0rNGZlZmL3LmeUgs6dDj7bb7SVTwHzZbrNJ5ptwtj0BXFCzMF84IYFPsWhOJ9DqcAC9UtKhfxXuabcbp1jSfJnORGHqtCbAzGkX/Tk1pmEV0o7QZbswlYywBnMMw0rm23bRC5jvwrAHV5M1fIY35PwmJK+aEceBI+LVmsMAKhpxfISg/v1KV4QHK+kms9FsMKtm1ZjqTfNyo81qtyZYFWNySlJKjxTFmK54/MydCPCaM/wsxeryUyjEQqE8XFexmgEuf4EnxZPiTk7iiTyQ6y8YPGTw4EEDgz2DAf9d7PtHp19ZvbRx3KU371kVbWGFNz/Qv3zsbfPHbYruNmxJzjxnVnTvzoei0YfrCjYN7l/+yYMffpuXhbXfi/OL+E60UXs42WjIMptNJlJU4XyrJctGZhOCNJzvdA80VSpna1YtgVvTElQLF/6zSI9arGIjLN325bF2i+WERDr1aJdT7cPP9YbGOb8Kdbl1rPTrOOc3NWO/ev+kT92F+SOcwrVwSrI/TveqOT/epYR+/IdytWHLpmjRn6IJmzCj+xFd2WKFzN5JCVhMSo/kgaqSZbHebd1n5VYD5zYzdqYryMxdQWYWQWYRazNrJpOxQ/9crgnMl2GbWJTRKVaE+sFwns1mnGJkYj3GmqYElsBt0kM26SGb9JAt5iHhTyum8J9cFbZJX5lFr6dHX0rcUVoC0xImJNQmLEpQh1d7QzWLu2LxZDTWxCTwlEA4r2hEYU2+DEkWGuCC70AB4P3b+bHt248bDVuOP8inHxvF246PxUzXITby4DkD/SZsZxw+M5BZU5nawR8K+01ckUtU5BIVuUSl20HwzU8eKOPPPVAf1sT2XOy02Ot12/lLhi3H/rVJ5I3Z+keGtw378X2dzlLCFWkOluRMSkr3pKerqlNNsnls6erDns2JzyQqHo83nWuZYdf4HuM94bQqQ5VlmnOKa2aP6Z6Z3qlp09LXeu7gztQsRXFn2SzJXbGQ3BULySIW5BKTg5qJ4aH4SsrBfNwuVmsS4SEWCeaoXCSYT9vFBkplsUaT2NkisW5TWlMmy3RI/zmk/xyyc0dQuM8sBGQXAjLKEDBKZ6VmzJ5x4vGoGSuyzLiuTe4SUNHhosPY35rFVFNTs7iHk/wFqkgZaiA7hw9x0oACcg3kwUA2zWZr2OAX2KhH26Obt+6Nbtn4HMt89U2WvuKTm1+Mvsp3sQXsj9ujD7x1IHr3E8+x6U9Hv43uZQNZehuz/S76Afx/D56sTYgPL2XzYWG/25bI3IMzpvvONy/wqRanWLJZokliDiJfeiZBOEQw9i7G1sW4O/RDbe60gSiPtmX3HOgS9cyeA53x0hEv0f5aW2Yw1g59Z7wU7eGzwOQmnp1xtjbZNiNjQcYSy/LEFY5V1jWO2xIednQ4Pk78yOFMtNs1lyPJ5XK4HHaLO53701KsRnzLJNgNXoslxZOWmuURM46/b7aFk8VWeDzkzxbZkbxehyPRnNUVKlldoZJ1Im1kBRPvNIoAiaeN2FMg88VAmTmMwi3GGi1nUU5TjpKT7ZUB4ZUB4ZUB4f1fPlDxVGH8aaqIP1eB4Rt/LqfGAyf1fW/8beXEHc+todBxVArz3Z5C5vIUrk7sGzJc4dwpwip06kWiP5zQwlZz2FHocA5zuYdBVM0WQ9hJifo74bTUQld2aqEblBjOKHRmJ4F8oOTCeCfV4sWWgg9JowlvN0+PgNKX45UWcEEs328B/z28eefuS3e9PPaMKefoX22fctG0Pv6Kd9k9q9aNu+2+aD/DlvHPrbjzlczcnHHLootZ/6uvG2ozHV+mDBiyYnTDNeKvsalEpotFpPLLO8mhR4XTSqZw6e7EWFbCw9ehH483KCca5LMpjhG9BKcaY7lOIJfbpMqDhCKR2+Nm4nGXZp92MV/JERDv+9ttkBjA4J0BrhcFXb3cQW8hDXYVugd7z6LRrrPco71VNM1V5Z7mdd5uvt3BW4zi/BQe4GRpqaHkgYaB9jJDmb0iudJQaT83eY5hjv3C5KWGpfbLkh2GZLtCzG0mswMnNcRpkbhc2Moa5nIXFqaHsxTVYOBGE156VizXkpDocNjxGe9OTvF4vch0I9oM5NVEaXe7RBmenmy2aIQ3pcYoiTHyGszmrGRvUnKy1223WLKS3WDdLrvDoTldSU6ny22xm73JBofLaSeOKRkUr9PhsFjMZo45ed1ul4vMaR5PmrPYwiaSRnZgMihMBjZxs6YxxlJTO9jalljw1qSljj2e5j1+PC31uHdceX3Zhyci1hm/RbBifa4uKixcPbZvaPUVO1f39f60QOCtTnTu3AkYsbOLOxVYRcQxuSLiwoG11W314pEbOrQawlwI8yDsJBKnd6qI2CBJhKTNHjaEoVSN52RJTezsdvrlZwN6pHgGD0HhRtFjAAuwYE+jibG7opc9eyAnbaiVeT59aXwgo8+HO6IXPRl9oafJkxR93rDlx6Lbfv/PHOWd42nRz/61tl157NgoteY6rX70D/fhCN1JlcoZbUGvb99TSi86COJKr9ZQpq9T6alktg73hTuUQJs7ucBR3EcR+SRfogZcCHoctFURv8WYqYgzoRO4EtQEehy0FbQPZCQCilYNtBC0AXRQtCiZSkar5nMW91RSYZuKt4ND8dARkA5SyAfMB40HzQTdCNoAMko9IVkIWgnaCjoqW8KKp/WWAZi7p3WtLNoumF8gq3Wx6owaWW2bVh0rx06MlWVnxdSGxdT6D4yJ+5bEyp69Y6U7t6BJlNaEgm3FKUoKFpmCiS8CMr6THAh0H92tJFMExBVjXBJW3G05wYINWxWVmMIVRnPIp29TWGuCq6DYynV+hNzk45/zw7EWfrgt0VWwofhsfogeB20FKfwQ7nf5u7SSHxQ+BxaBNoC2gvaCjoCM/CDuA7jf4e+Qg79N+aAi0EzQBtBW0BGQib8NdPK3xDe+RMEXgbj47Qtqb2JZbwId/A1wb/A3MLWXW4cUFnRKJpQfZ3y5ccaTHmfcKQUd/KXW73shooLYaUTUk0o2jaQBSnZrbn9fh+JtHTHP18Hfa9NCvruL+/H9FAFxzGQ/Rt5PGmgCqBa0CGQE9wq4V6gJdBPoblAEhCgDOkEa3wXaDXqF+oHCoAkgM9/XimE6+N7WYImvOIW/yJ8lDzy+hz8ny938GVm+wP8my+dRZqHcxZ9pzfJRsQ3tBBsnSifKfLQb+F/bctw+vdjFt8J3PmA+qAg0HjQTdCPIyLfy7NY5Pjc6eZJ2mQmarfSJLB+ke80UvsAXDpYiADUBwWFnggNs0DYEeTi47g5UBQRvuAWcgODV14ETELz0KnACgvMvBicgOOcCcAKC02eCExAcXwkO0MHv+nNOT9+Q8RcyrdjBL4GXLoGXLoGXLiGVXyJu+l4Vc/tDa14ePLY+HOqV52vawpqeYk2TWNO9rKmeNV3Jmq5iTSNY03msKcSaMlhTFmsKs6Yn2VC4oomF20+rFoa9rGkXa9rEmhpZU5A15bKmHNaksSHhDu5vPWuALMpl0VYsHjqUZ45E9nFwPzzqR8z7kRO2AveCdFkLQ0nLjimnZokyuy2vKFbvO6xgYfEYvgOGO7ANO+gASMUG7UAY7UAnO9CBA1gEmgnaBjoC0kFGaGdj4jdKdADzQUWgmaCVoCMgo5zOERCnhfEpPi4nlh+f9HhR4ztwiz9i+bk/nOnMcIacY5QbM5gji43P0rP4EEoRv4lwu8yuDpaw+duE775NIEuxhd/Ab6RMbMRN8fLG1u8zfR3s9tbgk77iZHYbZamIOlZIQZaLcig1yvogyjCLciBl8EdRFrRmTIWZozXY27eFJQqrzb7vM973fZLRwcF+nPGk71WtQ2Wtvn9A8uhm3/6Ma33P53eYIXkq2MFQbNGkamfGUN+mXVL1KjSsb/VdKYrNvisyRvsuzJAN9bGG8xpRCzt8k4LTfWPQX1nGLF+4EX1u9hVlnOcbEdMaJGw2+/phCqEYm4fJ9sqQgwayZIdThnSwhnBv0zpTlWm8abCpwNTb5Df5TJmmdFOS2W12mhPNdrPVbDYbzaqZ4xiTJM7LIXGKSzLKH2gaVfkDO8k7Ocmf1Mmf3XFm5nQ2RXooFbxicgle1ttmU8UsLfLN5EAHs06cHjEESljEXUEVlSWRoaGKDpM+KTIkVBExTTi3qoWxG6ohjfA1HYwqqzqYLkSr0sX/rXcSY65V16eL8oxV11dXkzfl4iJvkXukq3BU2c9AbRxPeft7T+MzI+sqJldFHsmsjhQIRs+sroj8Tvzneyf7kh0tL+tkX4iiuqpTGcm+LJ8k5MrIsurqig42VeqRxr6AHiLmC6lnxotZ6JFmzorprY/p5cIeejmigJ7FQrlSL9dikXoqE3otjTnlZS05OVLHo1Gj1Gn0aKfq7MqFTm6u1Elpol1SZ1dKk9CJjJQqGRlQycqQKiyNMqRKBkuTKlNPquTHVa49oXKtHElhJ3UyYjoJB7t0Eg5C59/PVb941ZfgFNY2vHr2DPGHi9pAeT2oNrL24gZvpGmWprXMro7/RSNYO2t2gyjr6iPVgfqyyOxAmdYyfMbPNM8QzcMDZS00o7yyqmVGuL6sdXh4eHmgrqy6bfSEgUNOG+vaE2MNnPAznU0QnQ0UY40e8jPNQ0TzaDHWEDHWEDHW6PBoORbJGJ9Q1WKmkmp8cMmyjdusiNfadH91SYpz0UgZvMP93ivTt+C0spFsoeqIPVASSQCJpj7FfYpFE54p0ZQo/joVb/JeOdyfvoVtjDc5IXYFSii0dFnjMvKWzyuL/WvEBdHSZcLhMQw1/tKFtvJIuK6scSnh5JyHk3MRTs4tJhOktWJJkWFdMputHF/dMWFfCIcJoaKcUBSyEUJmscQVf7r/y+Kl/Bxt4k+2sXAWW0qN1Uokq6KSIxVUxv8MsAVnKfF6aKzGAhtZiDV29RGfduxrVxRizV20dFmci/tiabyMWcKkscslJy7hrNAJjy1Fh+JSSGHiMigK4/IL6zPbNvrOrBNSoB4lC1n042Qlq/zNjA1oJzswgRKAiRId+OI+Tk584B4nF/BHHENdwB7kBiZRD2Ay8AdKoSSgh5KBXuAxfCF7wKdRKvh0SgNmSMykdGAWZejf4+grUKNMoB8H2+8pmzRgAPgd5ZAfmEvZwCDwW+pJAeAZlAPEdy4wT2KIeurfUG86A9hHYl/KA+ZTCNiP+gD7A7+mAuoLHED5wIHUT/+KBkkcTP2BQ2gAcCgN1P9FhRKH0SDgcIkjaDDwTBoCHElDgUVUqH+JL8xhwGIaDiyhEcBS4BdURmcCy2kkcBQV6UdpNIWBY6gYeBaVAM+WWEGlwHOoDDiWRulHaJzE8TQaOIHGACfSWfrnNEniZDobWEkV+mGaQmOBUyVOo3HAKhqvf0bVNAE4HXiYzqWJ4GfQZGANVQLPkziTpuj/pFqaCqyjacBZwE9pNlUD59B0YD2dCzyfZuif0FyJDVQDnEfn6R/TBVQL/kKJ86kOuIBmQX4RzQYulLiI5ugf0WKqBy6hucBGiUupQf+QltE84MV0AfAS4Ae0nC4ErqAFwEvpIuBlEi+nhcAraBHwSlqsv08rJTZRI/AqWgr8DS3TxW9BLgZeLXEVXaIfomtoOXA1rQCuoUuB19Jl+rvUTJcD19IVkFwHfJeupyuBN9BK4I10FfAm4EG6mX4DvIV+C/wdXa0foFsl/p5WAdfRauBttAattwMP0B10LXA9Nevv0B9oLfBOug74R4l30Q3ADXQj8G66CXgP8G26l24G3ke3AO+n3wEfoFv1t+hB+r3+Jj1E64Ab6TbgwxIfoduBj9IdwD/RH4CbJD5GdwIfpz8CI3QXsAX4BrXSBmAb3Q1sp3v11+kJuk9/jTZL/DPdD+ygB4Cd9CBwi8QnaSPwKXpYf5X+Qo8An5a4lR4FbqM/Af9Km4Db6THgDnpcf4V2UgT4N2rR/0HPSHyWWoHPUZu+n56nduAuegL4Am0G7qY/A/dQB/BF6gTulbiPtgD/Tk8BX6K/6C/Ty8CXaD89DfwHbQW+Qtv0v9OrEl+j7cDXaQfwDdoJfFPiW/Q34Nv0DPAdelbfRwckHqTn9b30Lu0CHqIXgO9JfJ92Az+gPcAP6UXgR7RPf5E+lvgJ/R34Kb2k76F/0svAzyQepv3Az+kVfTcdoVeBRyV+Qa8Bv6TXgf+iN4BfSfya3tJfoG/obeC39A7wO+Au+p4OAI/RQeAP9C7wR4nH6T39eYrS+0CdPgD+N6f/38/pX/zKc/o/u53TP/mFnP7JT3L6x7+Q0z/6SU7/sBs5/f0TOX3JaTn9vV/I6e/JnP7eT3L6IZnTD52S0w/JnH5I5vRDp+T0d3+S0w/KnH5Q5vSDv8Kc/vr/o5y+/785/b85/VeX03/t5/Rfb07/pXP6f3P6f3P6z+f05379Of1/ABquEH0KZW5kc3RyZWFtCmVuZG9iago5IDAgb2JqCjw8L1R5cGUgL0ZvbnREZXNjcmlwdG9yCi9Gb250TmFtZSAvQXJpYWxNVAovRmxhZ3MgNAovQXNjZW50IDkwNS4yNzM0NAovRGVzY2VudCAtMjExLjkxNDA2Ci9TdGVtViA0NS44OTg0MzgKL0NhcEhlaWdodCA3MTUuODIwMzEKL0l0YWxpY0FuZ2xlIDAKL0ZvbnRCQm94IFstNjY0LjU1MDc4IC0zMjQuNzA3MDMgMjAwMCAxMDA1Ljg1OTM4XQovRm9udEZpbGUyIDggMCBSPj4KZW5kb2JqCjEwIDAgb2JqCjw8L1R5cGUgL0ZvbnQKL0ZvbnREZXNjcmlwdG9yIDkgMCBSCi9CYXNlRm9udCAvQXJpYWxNVAovU3VidHlwZSAvQ0lERm9udFR5cGUyCi9DSURUb0dJRE1hcCAvSWRlbnRpdHkKL0NJRFN5c3RlbUluZm8gPDwvUmVnaXN0cnkgKEFkb2JlKQovT3JkZXJpbmcgKElkZW50aXR5KQovU3VwcGxlbWVudCAwPj4KL1cgWzAgWzc1MF0gMzkgWzcyMi4xNjc5NyA2NjYuOTkyMTkgMCAwIDcyMi4xNjc5NyAwIDAgMCA1NTYuMTUyMzQgMCAwIDc3Ny44MzIwMyAwIDAgNzIyLjE2Nzk3XSA1OCBbOTQzLjg0NzY2XV0KL0RXIDA+PgplbmRvYmoKMTEgMCBvYmoKPDwvRmlsdGVyIC9GbGF0ZURlY29kZQovTGVuZ3RoIDI2NT4+IHN0cmVhbQp4nF2RTWuEMBCG7/kVc9welmi6snsQYdcieOgHtf0Bmow2UJMQ48F/33xsLXQggYd538nMhNbtU6ukA/pmNe/QwSiVsLjo1XKEASepSM5ASO7uFG8+94ZQb+62xeHcqlGTsgSg7z67OLvB4Sr0gA+EvlqBVqoJDp9157lbjfnGGZWDjFQVCBx9pefevPQzAo22Yyt8Xrrt6D1/io/NILDIeeqGa4GL6TnaXk1IysxHBWXjoyKoxL98kVzDyL96G9Ts5tVZdrpUkZpEdaRHlqhJVEQqWKJronN85V4v/62+N8POUcYuqdLprk750F5Y4z47X631Y8ddx3nDpFLh/h1Gm+AK5wck/4erCmVuZHN0cmVhbQplbmRvYmoKNCAwIG9iago8PC9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMAovQmFzZUZvbnQgL0FyaWFsTVQKL0VuY29kaW5nIC9JZGVudGl0eS1ICi9EZXNjZW5kYW50Rm9udHMgWzEwIDAgUl0KL1RvVW5pY29kZSAxMSAwIFI+PgplbmRvYmoKeHJlZgowIDEyCjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAxNSAwMDAwMCBuIAowMDAwMDAwNDUwIDAwMDAwIG4gCjAwMDAwMDAxMDcgMDAwMDAgbiAKMDAwMDAxMDExMCAwMDAwMCBuIAowMDAwMDAwMTQ0IDAwMDAwIG4gCjAwMDAwMDA2NTggMDAwMDAgbiAKMDAwMDAwMDcxMyAwMDAwMCBuIAowMDAwMDAwNzYwIDAwMDAwIG4gCjAwMDAwMDkyMzkgMDAwMDAgbiAKMDAwMDAwOTQ2NiAwMDAwMCBuIAowMDAwMDA5Nzc0IDAwMDAwIG4gCnRyYWlsZXIKPDwvU2l6ZSAxMgovUm9vdCA3IDAgUgovSW5mbyAxIDAgUj4+CnN0YXJ0eHJlZgoxMDI0MgolJUVPRg==", +} +BINARY_IMAGE = ( + b'GIF89a=\x00D\x00\xf7\xa8\x00\x9a,3\xff\xc0\xc0\xef\xc0\xc0uXg\xfc\xf9\xf7\x993\x00\xff\xec\xec\xff\xa0\xa0\xe5\xcc\xbf\xcf\x9f\x87\x0f\xef\xef\x7f\x7f\x7f\xef\x0f\x0f\xdf\x1f\x1f\xff&&_\x9f\x9f\xffYY\xbf??5\xa5\xc2\xff\xff\xff\xac\x16\x19\xb2&\x00\xf8\x13\x10\xc2& \xdf`PP\x84\x9b\xf8\x03\x00\xb5\x0b\x0c\xdf\x0f\x00>\x9a\xb5\x87BM\x7f`P\xd2\xa5\x8f\xcc\x19\x00\xa5,\x00\xec\xd9\xcf\xe5\x0c\x00\xeb\t\x00\xff\xd9\xd9\xc7\x0c\x0c\x0f\x0f\x0f\xffyy~MZ\xfb\t\x08\xe5M@\xfb__\xff33\xcf\x90x\xf2\xe5\xdf\xc3\x06\x06\xbf\t\x08\xff\xb3\xb3\xd9\xb2\x9f\xff\x06\x06\xac)\x00\xff\xc6\xc6\x0c\t\x08\xf9\xf2\xef\xc9s`\xb8#\x00\x9f/\x00\xff__\xff\x8c\x8c\xc5\x1c\x00\xdf33\xffpp\xcf\x19\x19\xc0\x13\x10\xbf\x90x\xf7YY\xff\xf6\xf6\xe7??\xd7&&\xefLL2& \xdf\xbf\xaf\xbf\xbf\xbf???\xc5M@cn\x81_\x00\x00___\xcb00\xd8\x13\x00YC8\x80\x80\x80\xf3RRsVH\xc490\x10\x10\x10\x917@\xf2\x06\x00\xcf@@\xca\x86pooo\xa3!&\xc1\x1d\x18\xcf//\x1f\x1f\x1f\xdf\x00\x00\xd2\x16\x00\xcb\x90x\xbf\x1f\x00\x19\x13\x10\xf3\xd0\xd0\xe399&\x1d\x18Yy\x8e\x8f\x8f\x8f\xff\xa9\xa9\xcb\x13\x13\xbf00SF@\xb6& >\x1d\x18\xfb\xdd\xdd@@@\x99\x93\x90\xff\xbc\xbc\x7fPP\xaf\xaf\xaf\xc6VHzsp\x93& \xb7pp\xb3\x86ptPP|pp\xafOO\xd0\xd0\xd0\xef\xef\xefL90\xbc\xa9\xa0o0(\xeb\xb0\xb0\xff\xe0\xe0\xff\xd0\xd0\x870(K0(\xc9|h\x9f__lct\xebFF\xcf\xcf\xcf\xe0\xe0\xe0b& \xff },(@0(\xa9\x93\x88\xa6|h\x1f\xdf\xdf\xd5\xac\x97\xe2\xc5\xb7\xc7`POOO\x9cyhppp\xff\x80\x80\xff\x96\x96\xd7``\xcc\x99\x7f,\xb0\xcf\xbf\x00\x00\x00\x00\x00\x00\xff\xff\xff\x00\x00\xffff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00!\xf9\x04\x01\x00\x00\xa8\x00,\x00\x00\x00\x00=\x00D\x00\x00\x08\xff\x00Q\t\x1cH\xb0\xa0\xc1\x83\x08\x13*\\\xc8\xb0\xa1\xc0\x1b\x07\x0c8\x9cHq\xa1\x89\x14\xa72F\xac\xc8\xb1\xa2\t\x1f\x19Cj\x94\xd8\xb1$B\x03\x07D\xaa\x1ci\xb2%*#3V\xcad\xe9\xb2\xa2\x9d 3s\x9e\xdaX\x93!"\x8c:\x83\xf2\xeci\xf0c\xd0\xa3!\x87\x12E\x89\xb4iR\x92.a:\x9d\xfa\xb4\xe5\x0c\x9cT\xb3\xee\x84:\xf1\x06P\xad`\x95*4\n\xb6l\xd5\x84\x06>\x99]\x1b\xb2\xc5\x9c\x83F\xda\xb0\x9d{\xe4\x84\x00\x83W\xe7\xaeM\xe2f\xd4\xa8\xbb\x03\xbd\xea5kE\x88_\xbf\x80\x0fy\x1a\\\xb6\x08\x92\xc3\x87\x01\x070\xe5\x00\x02\xe3\xa9-\x80\xc4\x80\x1cY\xe0dS\x94-_\x0ezd3\xe7\xce\xa8>\x83\x0e=Zf\x92\x13\xa7Gm\x18 \xe1\xaf\xe7\xd5\xb8+\xb7\xceX8\xf6(\xda\xa2D\xd9N\x8d\xbb\xb8n\xc6\x8e}\x8f\xfa\x12<\xf8\xf0\xcf\x11\x1a\x14\x07}|mf\xdf\x00\x9elP\xd1\\\xb8dSaJ\x95\xffz }zu\xadiLs\xa6\xb0&8\x80\x01\xdd\x9f\x9b\x8a ^<\xf9\xe9\xac\xa9:\x82\x1d{\x83\x84\xe6\xef\xc5\xf7\x1d}\xf5\xd9W\x9eq\xa2\x1d\x95\x84a\xb1\xa9\xb0\x01\x00\xdd\x05\xd8\x9c|\x04\x16X\x8a\x02\x0b0\x80\x9f\x0b=\xe8\x94\\l\x1et \n\x00\x10\x02\x08\xdf\x84\x03ZX \x86\x1a\x16W\x03\x87+]\xe7[\x06\x00\x96\xe8\xde\x89\xce\xa5\xa8\xe2\x8a\x19N\xf7b\x87\x19\xa5\x17\x1b\x05\xa3P\x10\xa1\x8d#\xe2X\x9b\x8e;\xf2\xd8"n/\xd6\xd5\xdf\x13\xa2x\x80$\x89\x11\x9e\xd8\x81\x16\x146\xb9#\x8b\xd3\xf9\xe6\xc1\x7f\xa2\x0cp\xe5\x99\x12\xa8\x80\xdad\x15zi!\x98\xab\xf9Ff\x99gvG$g\xdf1\xa0\x80\x9bM\xc2\t\x19\x00\x19p\xd9\x9d\x99G6\xd7Hl\xdf\x99\xc2\xc8\x9e|~\t\x88)~Q@c\x99\xa3\x0cZg\x06\x00\xf8\x96\xa8)\x0c,\xc0h\xa3\x05^\x02\xe9(\x93Rji\x84\xcb)\'\x1fn\x9d~\nj)\xa3\x0e\xffZis\x84\x06\xd7\x81\xaak\xae\xc6\x01\x07\xa0\xb5\xfa*\xac~\xc9z\xaa\x04\x03l\x80+b\xb7\x81V@\x01$\xac\xd6\xe9\xab\xb1\xd2:kpj\x0ep\xe7\xb1\xab\x9aRA\x01!\x14\xd7\xc0\x03\x8dF\x1b\xdc\x00\xd3\x8ar-\xb6\xc8\x12\x07Z\t\x15\xf0:\xdd\xb7n\x8ak\xaa(\x1ddz\xac\x14\x86\x80\x92+~\xf8\xc1\xbb\xa3\xbc\xe4\xae\xe1\x01\xbaR\xfcAG\'\\\xa4\xab\x1a\xbf\xef\x82k\xa1\xbc\x03\xa3\xeb\xd7\x1d\xa4T\xcc\x87\xc2\xc5qP\x02\xc3\xab\xf9+\x9e\xb8OH\xec\xd7\x1bYTL\x8a\x1f~\xa1\x91\xecj"\xd8\xc01n\xfe\x8e\xdaA\x06\xe7\xa2;\t)Q\xb0AJ\x15\\\xa8\xbc2h!\x14\xe0\xee\xcb\xa05\x10\xc6\xa8"s&\x07\n\x13L\xb0sA\x0b\x9b\xa2\x81\x08"h\xf02\x0f\x15\xe0\x964g2\xa8\xd1D\xd3\xa4\xe8\x01\xf5t\x1c\x14`\xc6\xcb\xcbN\x11\xe7\xd6\x87]@\xca\xd7\x8f\x90\xf2\x01\x08#\x10t\x80$\xc5\x99\xc1-\xc7?\x14\xff@\xc6\xdal\x8f\xe2\x04)b0\xb1\t)}\x84\x12J&\x04\x05\x02\xc5\x18\xb8\xd9P\xc0\x0f\x1c\x93`5h\x81_\xb0H(j\x98\xacD( \xc0`P\xc5\x8f\x83\xa6\xc1\xb6;l1\x9d\x06\x1bk\x9d4\x18:(\x1e\n\x15&sR\xb7A9\xc0Q\xf1 \x18X\x00Z\xdf<\x84\xa0:h$H^\x1cgC\\\xa0\xdc\x10\x9a\xc8\xae8\x11gdQ\x07\x01\x07!\x10\n\x11W| {\xef\xa6\x90\xb0m\x01"T B\x01<\xa8\xed\xba_X|pE\x1e\xa7\xc9\xe0D\x19\xce\xcb\xbe\x04\xf5\x08\x11\x80@\x02\xf1+\xce}\t!\xecP\xc1\x0ed\xb8\xdc\xf9\x86\xa0\x88\x8aQA\x06\x90\xc1\x02\xfc\xf2G\x83\x1c4\xc4~\xf8\xcb\x1f\xf7^v\x98D\x98\x0c\x07\xca\x1b\xc5\x05\xba\x90\xbfP`Bt\x14\x81`\x07\'\xc8/\xbf\xc8@\toC\x01)\x9c\x00\xbb\x0e\xd2\xcd$"\x94\xa0\xef\xf0\xe3\x978\xe0l\x02^ \x05\x07\xf3\x97\x00\x04\xd0\xaf%1t\xde\x0b|X\xb0\x820\x8db\x0f\xa4`\xc2\x04\x16@\x8a\x0e\xce\x8f(\x02\t\xa2\xec\x86X\xc4\xb5\x15"\x898\xc4A\xfc\x1a\x08\xc5\x82HQqT\xc4\xdc("A\n<\x08\x02\x05\x94\x90\x1d\r@\xd8E\x83|1\x14T\xbc\x80\x0e>@\n\x14\x88An\xa0\xbb]\x1b\x13\xf2F\xd9Y\xc2dg\xe8\xe1\x1e\x1d\xd2\xc7P\xa0\x10\x07\x84\xf8\xe1 \x1fx\xbf\xfc\x11\xa1\x12\x90XdG\x82\xb8FI\x02q\t/\xb4\xa4&[\x12\x10\x00;', + "png", +) +ARRAY_TO_BASE64_IMAGE = ( + "data:image/png;base64," + "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" +) +BASE64_MODEL3D = { + "name": "Box.gltf", + "data": "data:;base64,ewogICAgImFzc2V0IjogewogICAgICAgICJnZW5lcmF0b3IiOiAiQ09MTEFEQTJHTFRGIiwKICAgICAgICAidmVyc2lvbiI6ICIyLjAiCiAgICB9LAogICAgInNjZW5lIjogMCwKICAgICJzY2VuZXMiOiBbCiAgICAgICAgewogICAgICAgICAgICAibm9kZXMiOiBbCiAgICAgICAgICAgICAgICAwCiAgICAgICAgICAgIF0KICAgICAgICB9CiAgICBdLAogICAgIm5vZGVzIjogWwogICAgICAgIHsKICAgICAgICAgICAgImNoaWxkcmVuIjogWwogICAgICAgICAgICAgICAgMQogICAgICAgICAgICBdLAogICAgICAgICAgICAibWF0cml4IjogWwogICAgICAgICAgICAgICAgMS4wLAogICAgICAgICAgICAgICAgMC4wLAogICAgICAgICAgICAgICAgMC4wLAogICAgICAgICAgICAgICAgMC4wLAogICAgICAgICAgICAgICAgMC4wLAogICAgICAgICAgICAgICAgMC4wLAogICAgICAgICAgICAgICAgLTEuMCwKICAgICAgICAgICAgICAgIDAuMCwKICAgICAgICAgICAgICAgIDAuMCwKICAgICAgICAgICAgICAgIDEuMCwKICAgICAgICAgICAgICAgIDAuMCwKICAgICAgICAgICAgICAgIDAuMCwKICAgICAgICAgICAgICAgIDAuMCwKICAgICAgICAgICAgICAgIDAuMCwKICAgICAgICAgICAgICAgIDAuMCwKICAgICAgICAgICAgICAgIDEuMAogICAgICAgICAgICBdCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgICJtZXNoIjogMAogICAgICAgIH0KICAgIF0sCiAgICAibWVzaGVzIjogWwogICAgICAgIHsKICAgICAgICAgICAgInByaW1pdGl2ZXMiOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgImF0dHJpYnV0ZXMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJOT1JNQUwiOiAxLAogICAgICAgICAgICAgICAgICAgICAgICAiUE9TSVRJT04iOiAyCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAiaW5kaWNlcyI6IDAsCiAgICAgICAgICAgICAgICAgICAgIm1vZGUiOiA0LAogICAgICAgICAgICAgICAgICAgICJtYXRlcmlhbCI6IDAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm5hbWUiOiAiTWVzaCIKICAgICAgICB9CiAgICBdLAogICAgImFjY2Vzc29ycyI6IFsKICAgICAgICB7CiAgICAgICAgICAgICJidWZmZXJWaWV3IjogMCwKICAgICAgICAgICAgImJ5dGVPZmZzZXQiOiAwLAogICAgICAgICAgICAiY29tcG9uZW50VHlwZSI6IDUxMjMsCiAgICAgICAgICAgICJjb3VudCI6IDM2LAogICAgICAgICAgICAibWF4IjogWwogICAgICAgICAgICAgICAgMjMKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1pbiI6IFsKICAgICAgICAgICAgICAgIDAKICAgICAgICAgICAgXSwKICAgICAgICAgICAgInR5cGUiOiAiU0NBTEFSIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICAiYnVmZmVyVmlldyI6IDEsCiAgICAgICAgICAgICJieXRlT2Zmc2V0IjogMCwKICAgICAgICAgICAgImNvbXBvbmVudFR5cGUiOiA1MTI2LAogICAgICAgICAgICAiY291bnQiOiAyNCwKICAgICAgICAgICAgIm1heCI6IFsKICAgICAgICAgICAgICAgIDEuMCwKICAgICAgICAgICAgICAgIDEuMCwKICAgICAgICAgICAgICAgIDEuMAogICAgICAgICAgICBdLAogICAgICAgICAgICAibWluIjogWwogICAgICAgICAgICAgICAgLTEuMCwKICAgICAgICAgICAgICAgIC0xLjAsCiAgICAgICAgICAgICAgICAtMS4wCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJ0eXBlIjogIlZFQzMiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgICJidWZmZXJWaWV3IjogMSwKICAgICAgICAgICAgImJ5dGVPZmZzZXQiOiAyODgsCiAgICAgICAgICAgICJjb21wb25lbnRUeXBlIjogNTEyNiwKICAgICAgICAgICAgImNvdW50IjogMjQsCiAgICAgICAgICAgICJtYXgiOiBbCiAgICAgICAgICAgICAgICAwLjUsCiAgICAgICAgICAgICAgICAwLjUsCiAgICAgICAgICAgICAgICAwLjUKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1pbiI6IFsKICAgICAgICAgICAgICAgIC0wLjUsCiAgICAgICAgICAgICAgICAtMC41LAogICAgICAgICAgICAgICAgLTAuNQogICAgICAgICAgICBdLAogICAgICAgICAgICAidHlwZSI6ICJWRUMzIgogICAgICAgIH0KICAgIF0sCiAgICAibWF0ZXJpYWxzIjogWwogICAgICAgIHsKICAgICAgICAgICAgInBick1ldGFsbGljUm91Z2huZXNzIjogewogICAgICAgICAgICAgICAgImJhc2VDb2xvckZhY3RvciI6IFsKICAgICAgICAgICAgICAgICAgICAwLjgwMDAwMDAxMTkyMDkyOSwKICAgICAgICAgICAgICAgICAgICAwLjAsCiAgICAgICAgICAgICAgICAgICAgMC4wLAogICAgICAgICAgICAgICAgICAgIDEuMAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJtZXRhbGxpY0ZhY3RvciI6IDAuMAogICAgICAgICAgICB9LAogICAgICAgICAgICAibmFtZSI6ICJSZWQiCiAgICAgICAgfQogICAgXSwKICAgICJidWZmZXJWaWV3cyI6IFsKICAgICAgICB7CiAgICAgICAgICAgICJidWZmZXIiOiAwLAogICAgICAgICAgICAiYnl0ZU9mZnNldCI6IDU3NiwKICAgICAgICAgICAgImJ5dGVMZW5ndGgiOiA3MiwKICAgICAgICAgICAgInRhcmdldCI6IDM0OTYzCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgICJidWZmZXIiOiAwLAogICAgICAgICAgICAiYnl0ZU9mZnNldCI6IDAsCiAgICAgICAgICAgICJieXRlTGVuZ3RoIjogNTc2LAogICAgICAgICAgICAiYnl0ZVN0cmlkZSI6IDEyLAogICAgICAgICAgICAidGFyZ2V0IjogMzQ5NjIKICAgICAgICB9CiAgICBdLAogICAgImJ1ZmZlcnMiOiBbCiAgICAgICAgewogICAgICAgICAgICAiYnl0ZUxlbmd0aCI6IDY0OCwKICAgICAgICAgICAgInVyaSI6ICJkYXRhOmFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTtiYXNlNjQsQUFBQUFBQUFBQUFBQUlBL0FBQUFBQUFBQUFBQUFJQS9BQUFBQUFBQUFBQUFBSUEvQUFBQUFBQUFBQUFBQUlBL0FBQUFBQUFBZ0w4QUFBQUFBQUFBQUFBQWdMOEFBQUFBQUFBQUFBQUFnTDhBQUFBQUFBQUFBQUFBZ0w4QUFBQUFBQUNBUHdBQUFBQUFBQUFBQUFDQVB3QUFBQUFBQUFBQUFBQ0FQd0FBQUFBQUFBQUFBQUNBUHdBQUFBQUFBQUFBQUFBQUFBQUFnRDhBQUFBQUFBQUFBQUFBZ0Q4QUFBQUFBQUFBQUFBQWdEOEFBQUFBQUFBQUFBQUFnRDhBQUFBQUFBQ0F2d0FBQUFBQUFBQUFBQUNBdndBQUFBQUFBQUFBQUFDQXZ3QUFBQUFBQUFBQUFBQ0F2d0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSUMvQUFBQUFBQUFBQUFBQUlDL0FBQUFBQUFBQUFBQUFJQy9BQUFBQUFBQUFBQUFBSUMvQUFBQXZ3QUFBTDhBQUFBL0FBQUFQd0FBQUw4QUFBQS9BQUFBdndBQUFEOEFBQUEvQUFBQVB3QUFBRDhBQUFBL0FBQUFQd0FBQUw4QUFBQS9BQUFBdndBQUFMOEFBQUEvQUFBQVB3QUFBTDhBQUFDL0FBQUF2d0FBQUw4QUFBQy9BQUFBUHdBQUFEOEFBQUEvQUFBQVB3QUFBTDhBQUFBL0FBQUFQd0FBQUQ4QUFBQy9BQUFBUHdBQUFMOEFBQUMvQUFBQXZ3QUFBRDhBQUFBL0FBQUFQd0FBQUQ4QUFBQS9BQUFBdndBQUFEOEFBQUMvQUFBQVB3QUFBRDhBQUFDL0FBQUF2d0FBQUw4QUFBQS9BQUFBdndBQUFEOEFBQUEvQUFBQXZ3QUFBTDhBQUFDL0FBQUF2d0FBQUQ4QUFBQy9BQUFBdndBQUFMOEFBQUMvQUFBQXZ3QUFBRDhBQUFDL0FBQUFQd0FBQUw4QUFBQy9BQUFBUHdBQUFEOEFBQUMvQUFBQkFBSUFBd0FDQUFFQUJBQUZBQVlBQndBR0FBVUFDQUFKQUFvQUN3QUtBQWtBREFBTkFBNEFEd0FPQUEwQUVBQVJBQklBRXdBU0FCRUFGQUFWQUJZQUZ3QVdBQlVBIgogICAgICAgIH0KICAgIF0KfQo=", +} +SUM_PIXELS_INTERPRETATION = { + "scores": [ + [ + [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + ], + [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + ], + [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + ], + [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + ], + [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + ], + [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + ], + [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + ], + [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + ], + [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + ], + [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + ], + [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + ], + [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + ], + [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + ], + [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + ], + [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + ], + [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + ], + [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.9217332561281606, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.8478093032233159, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + 0.7775525960239336, + ], + [ + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.28228141285466124, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.7110596409959468, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.5717043041883806, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + ], + [ + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + ], + [ + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + ], + [ + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + ], + [ + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + ], + [ + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + ], + [ + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + ], + [ + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + ], + [ + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + ], + [ + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + ], + [ + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + ], + [ + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + ], + [ + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + ], + [ + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + ], + [ + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + ], + [ + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + ], + [ + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.17004439297432927, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.6232387569967188, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.349160393746381, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + 0.37415556842308434, + ], + [ + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + ], + [ + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + ], + [ + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + ], + [ + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + ], + [ + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + ], + [ + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + ], + [ + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + ], + [ + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + ], + [ + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + ], + [ + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + ], + [ + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + ], + [ + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + ], + [ + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + ], + [ + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + ], + [ + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + ], + [ + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + ], + [ + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + ], + [ + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.4147847905809689, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.21617448369040726, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.4393939393939394, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + 0.8667245705462266, + ], + ] + ], + "alternative_outputs": [ + [ + [1793106], + [1795539], + [1797837], + [1800021], + [1815417], + [1802088], + [1806420], + [1824192], + [1818906], + [1804818], + [1813338], + [1812561], + [1811298], + [1817472], + [1810533], + [1797249], + ] + ], +} +SUM_PIXELS_SHAP_INTERPRETATION = { + "scores": [ + [ + [ + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.36599426908032084, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.9044030984144017, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.5780729041010304, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.03706410007949775, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.4724172299368354, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + 0.5148839775509372, + ], + ] + ], + "alternative_outputs": [[]], +} + +FILE_TEMPLATE_CONTEXT = { + "file_count": "single", + "value": { + "name": "sample_file.pdf", + "size": 10558, + "data": "data:application/pdf;base64,JVBERi0xLjQKJdPr6eEKMSAwIG9iago8PC9UaXRsZSAoVW50aXRsZWQgZG9jdW1lbnQpCi9Qcm9kdWNlciAoU2tpYS9QREYgbTk3IEdvb2dsZSBEb2NzIFJlbmRlcmVyKT4+CmVuZG9iagozIDAgb2JqCjw8L2NhIDEKL0JNIC9Ob3JtYWw+PgplbmRvYmoKNSAwIG9iago8PC9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9MZW5ndGggMjM2Pj4gc3RyZWFtCnicjZDfakMhDMbvfYpcD2bzTxNhFFZYe90h7AG2tTDoYO37w9S1O1A4cIyo5Bc/80mALR6pLVYY3k/hJ/RMJh6J82d4e4Dvlo2WRu1tb6UEPV538Hc4H8NqJ3C8DAWnDIQpd4lD2LdYomzcZ9O+Km1qWG0VSCRKG+xQD4FuTZeWdTcR0CiZiqtAPYXOGKOhEBnUD3hC5M0a6lcoObInwdIErsAHcI+F3cknsB3ANFJCU54Byf6B8AAvdZi9s8WokcXNFrvLEj0n0gXu5Hm8TJyiK6nm+54Ipd3IXnQiae5H5vyxTf724RdvlHTtCmVuZHN0cmVhbQplbmRvYmoKMiAwIG9iago8PC9UeXBlIC9QYWdlCi9SZXNvdXJjZXMgPDwvUHJvY1NldCBbL1BERiAvVGV4dCAvSW1hZ2VCIC9JbWFnZUMgL0ltYWdlSV0KL0V4dEdTdGF0ZSA8PC9HMyAzIDAgUj4+Ci9Gb250IDw8L0Y0IDQgMCBSPj4+PgovTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQovQ29udGVudHMgNSAwIFIKL1N0cnVjdFBhcmVudHMgMAovUGFyZW50IDYgMCBSPj4KZW5kb2JqCjYgMCBvYmoKPDwvVHlwZSAvUGFnZXMKL0NvdW50IDEKL0tpZHMgWzIgMCBSXT4+CmVuZG9iago3IDAgb2JqCjw8L1R5cGUgL0NhdGFsb2cKL1BhZ2VzIDYgMCBSPj4KZW5kb2JqCjggMCBvYmoKPDwvTGVuZ3RoMSAxNjgwOAovRmlsdGVyIC9GbGF0ZURlY29kZQovTGVuZ3RoIDgzOTM+PiBzdHJlYW0KeJztegl4VEX276m6t/dOeiFJd9a+nU4aSQOBsAaQdDZAI3uABIkkQCQoyBJQcCPOiGBwHweVccRd1EE7i0yCjjDAuCAIo4y7grg7Iui4ovT9/6q6wzLqvHzvfe97z++bezm/OnXqnFpOnXtuXdLEiKgHQKV+o8vKR7HBrDcR90I6bPSE8ZNXVmy4k0hZg3rz6MlTSqxPm64jYhHU+42fnF+wfOjmfdAX9dqpZWOrJtxywddoSiJy3Tp7Qd0idjf7Eu2VaJ8x++Kl2j0Zr/6TyH4OkbHy/EVzF+xeUb2eyH036hfNrWtcRF6yoP8R0HfOnb/i/LWfPPI+UaqTyFbSMGfB8ttq5/aAbhnI3FBfN+dg0jPojx2E/uAGCNwDLCrqmCPlNCxYurzv++ptWBzmQ5/NXzi7LrV3+h6sB/3R8gV1yxcZ1iU0QR/zIe2iugX1ntr+bxMZUGVlixY2LtXzaB34+aJ90ZL6RbmvjN2KrrEe29OQKWQmTi5iug5e+HI4fUkj6I9kgtxJ+TQVo/8JugbUFZKX3lP0+TMX7E0jo+Oo1EnHHj92qVNKTruGS4mV+uI21C2pm0Xa7BVL5pM2d0n9haQ11M9aQtr8uqUXkXayTzKkrn94ZvmKmY4RX5vTzVJ873s980T5woThm489fnyuk8x2VC0nRhSlPc5zrCYm60lnAEO4GdaWDyzAzWgQbkbDcLO4BcnVJsW9koT4GoMyUfrLSOWonUPjaRJNg+eIyk6t6++dvH/iAUVZw26CN82G9YYBmFJ6rFT+Tudzt9nAbUaVi0ulf/Pe2PHjxlMYI00zvBydyAaYRrLWsNg4jK8GDU+KHSb1Z/fl/+R6muXLe3fs5hnyfkvcav+u23BPfF9LaAYpckd7x3ZU7mVSbF6YKYP3TvLsFB4uuLB+CXRPxbgPhB6H55mkRGnFKYNSZH/5sb3T35TYgCfrJ07//+cyPEt3GabSvafU7z+1XW08+WwZC2n2KXr3/HtfpuspVRQ0XUSpirxDF1BTnGfYjYvjPIfPGuK8ghg6I86rp+gYKA1aMd4IjqiYltA8qqP5NJYqkQfqUW+EZCGJp3MQnuD+1A/tY6VkIS2lFbQIWhqdRQsgnwvdi4Aa9QGd7E3DU1IP+TLwdZCeXjup9zA0CzBCf9waZtAg+/7paKWoLQEvsA7y2Az7yjHnx8ebhxEa0NYYH71RruZi4BxoEon3RdhmNXdvE01GkhkFhTnGwZFINzZL9+wtZpGppKUlxpENlJBg7aa95YS9NW6fAHI4bN2zt1ljEzbLFCmNHCCnw/6f7bouuy1mZTnd3uVK+N+2d4F69Ejsnn1iQmzBNjmuNMJLlZKTnd2zdyTGrDC4MzZ1SgZ5Pe7u2bucsQknyHEFRx5QekZS9+yT3LEJO+S40igDlJmV0j375B6xCTvluIKjLJCmebtn70mOTRjTSI1x8nXrz07tnr03JfbEwD4txlE2KDeY0T37dIyTTnLmmTGOgqC8PK179lkZsQVj5v4YR+Iw0LdvoHv2fp80FJPPiXEyCRQUBLtnn+OXhmLTesY4JCoc4Ab36p59zxxpKGaeF+NoMGjYsN7ds8/rGVuwRkitksPBhai0pKB79v1g1Q9lLtHAGIcXN1FFxdDu2Q8uiE04T44rOKoATZ48snv2I4aASDq9OMbRZNCMc8u7Z19yZmzCODeNiXF0LmjO7Iru2Y8plYaE5Y6LcfJFa9hCqaA0w0OUqgZFXOsfgT4WZXSe/rFoFyX/FModcSLaSJvYPNpEW2k7Owqrx6mT2uk5RGcZ3UmX0620Gm+K6ZBci3fPJLxpy+hWlqq34+RyD96499Ae6E6jK2kLpTCv/gmtpFXKy7BahQyTDRdNwBvtenaOvgynqwPqb2kIzpoX0SLWpFfpN+i36PfTA9SpPKcfR0ZMw1Jm0x79c8Nr+lsIjxn0e7qDDrBbLE/gzT8N54NO5Y94961XalSmz9WPYQZ+ugRzUPFu3cO28RB6r6ePmJddrpSil/v0iL4TWhlUg3foetrCBrHR3G+YoY/V9+AM1oeWo9c7qJU24+6gv9AbzG44qt+vH0V66Y3TwEr440W2TYkevypaJBwNL/WiQrQspKfpWdrHAuyvfKHBbigwhA2X6vuRE/vTFMz2IVh+yL7lV+JeqTyjjtJLkLlX0c3C2/Q3epel4Ww6nk3lvfhCfpeyBO+03vLEMAfv/GvpdvT+DguxzdzO9yr3qY+qPxgzowf1ROxIkP6A75y/sgSsVGON7DfsFfYeL+Uz+R/4IeVW9WH1JVMdVn0eTjPX06P0LXOzoWwiO5c1sMvZanYzu4PtYfvYx7yYV/IL+RGlQVms/EUtwT1ZbVR/a7jGsNb4cbQqujP69+i3eoF+DU1EPFyF2f+e7sLKOmkvvY77AB1iBmZjibg15mdT2GW4r2TXs3vZRvYwa8co+9gh9gn7kn3NfuA40HEjT+d+no07wJfwS/it/E6+F/c+/hn/XvEo2UpIGaSMUKqVhZjVauUm3E8o76pp6l5Vh58LDOsMGwwbDY8athuOGu2m35jJvPvH+47nHX8nStE10XXR1mi7/i5ydCpiKoN8eE4n4nxVhzPmcpxRH0Ccv8zs8F0ay2Mj2TnwzEx2AVvMlsOTV7P17AE598fYU/DSq+wI5pyALwcx5758EC/h43Gfx+v5Yn4Tv4W381f4McWk2BSHkqzkKaOVGqVeWaqsUNYpEWW38rZySPlG+RG3rlpVn5qtBtWQOlqdqS5T71I/Uj8yzDC8YPjAaDUuMF5j7DB+YRpsGmmaYJpoqjHdaNps2m+uRXTuoCfoz6emAnZQuUopV56gG/gANZW/yF9EPM+kOcpYjkjlG9kafgVr5zmG5cbhfDgbR0fVIHz9DN/Av+HDlbGsgk2mC3j/WG/GJPURkd/UHXRYfQprexE9Lzfa2ZX8iNFOrfhcKcSYf1P6qSHlBXpDOcBM6j30pmplHnaYP6RMQBT8RR1pqCK/cic9pixmV9ATHGnR+oP5OsTxOPYI8kIlK2DfKfhi5+MQRUOU9+i3dCF/jQ7jOV5Dt7E56ly6gQawy+kjehBPRS/DRcY8YzJ7ns9Tm3kP1k5cfRirK2Q5TDEk0dWsRllvPMJfxyl8r2qld5Q/YfZ7+WPKWPWoYRJrwBNwBV1Di/WraIWhSn2JzSWFTaVc9SCy2+VKgepHuRJZZQZy2mY83VuQB4qVsZB4ETnnIC6mIEOsx3078oSKCJqHZ3wastiL1G6s5B0015DIkHXwBfRCdBJN1x+kO/S5dJF+C/VBPlitX44eN9IHdCNtZKuil+G8n4Un5x12jmEU32sYpffhzfx1PpmvO31/4e1c5qVPcT+Gykh8Jzerr+J1U6Rfp/8D0X0GMuwdNIvOpvexys8xwhhlGw2IjuMt+ihlEdZ7gCbqD+k+ZqUGfT6+8Z+iB0wGqjOFsMcR9hLWexnV80n6UqU+Og9+uBFeCMNby5B/rg2XTqksDheNPHPE8GGFQ4cMGjigoH+//L59eofyep3RM5ibE8j2a76szIz0tFSvJyU5qYfb5XQkJthtVovZZDSoCmfUuzwwqlaLBGsjajAwZkwfUQ/UQVB3iqA2okE06nSdiFYr1bTTNcPQPP/fNMMxzfAJTebURtCIPr218oAW2VMW0DrY9IlV4K8vC1RrkcOSHyv5mySfAN7vh4FW7m0o0yKsViuPjLq4obm8tgzdtdispYHSemuf3tRitYG1gYt4AotamGckkwz3lA9rwZd+AiYVSQuUlUdSA2ViBhElt7xuTmTCxKrysnS/v7pP7wgrnR2YFaFAScQRkipUKoeJGEsjJjmMNk+shtZqLb23NV/X4aRZtSH7nMCcuhlVEaWuWozhCmHcsojn0ve9J6vo3F1atfrU1nSludw7TxPV5ubVWuTuiVWntvoFVlejD9jy3FG1zaMw9HVwYsVkDaPxVdVVEbYKQ2piJWJVsfXVB8qFpPYCLWIJlAQami+oxdakNUdo0gp/a1pauFM/SGnlWnNlVcAfKUoPVNeVZbQkUfOkFW2pYS319JY+vVucrphjWxIdccaecCpTf6JNclJdcBWTTniWiRkFzkJARLTZGmZSFcCahgqoH0rNs4dCDVc1g1VkDnZkXsRSWtvsHCbkwj5iyHUGtOavCREQOPzZ6ZK6uMSY6/yaBCvi5ESoob2Lj4RCkbw8ESKmUuwp5jhS1gf16X1xBw8EFjk1FHAfTYBv66qH5cP9fr/Y4LUdYZqFSqRpYlWsrtGs9FYK54eqI7xWtGzrakmeIlqaulpOmNcGEMnt8n+SkiPm4Il/DmdKj/KGYRGW8h+a62PtFZMDFROnV2nlzbVx31ZUnlaLtQ890RbnIj1Kq5R0Hud4uiJbEZQzTiiLSpU9oubin1EG9ZwOkxlRKSVMGxVx1o6JYbXV7++mUYd+VFjJ4qRZfJqRYaHT68NPq582PXuzggnjVVlROb252XpaG0ItNuBZ8QIRT5VVfq00QlPwZObiX4e+baig6vRIGC4rFQqIv5goXj1NMT3OV+MS0dmn9ygkuubmUQFtVHNtc12H3jQroDkDzZ18O9/evKi8titwOvQta9Mjo66rhq8a2DA8FJxKWgJszcSWMFszeXpVJz6ztTWVVa2c8dLakuqWHLRVdWpEYSnlQiqEoqKJClUwLLKVm6V+emeYqEm2qlIg67M7GEmZuUvGaHYHj8mcXTIOmRqThaVMXCLHlFZWnRo98pGsxmcdLO7CAXs6vlUclMlSw27Nx0rNGZlZmL3LmeUgs6dDj7bb7SVTwHzZbrNJ5ptwtj0BXFCzMF84IYFPsWhOJ9DqcAC9UtKhfxXuabcbp1jSfJnORGHqtCbAzGkX/Tk1pmEV0o7QZbswlYywBnMMw0rm23bRC5jvwrAHV5M1fIY35PwmJK+aEceBI+LVmsMAKhpxfISg/v1KV4QHK+kms9FsMKtm1ZjqTfNyo81qtyZYFWNySlJKjxTFmK54/MydCPCaM/wsxeryUyjEQqE8XFexmgEuf4EnxZPiTk7iiTyQ6y8YPGTw4EEDgz2DAf9d7PtHp19ZvbRx3KU371kVbWGFNz/Qv3zsbfPHbYruNmxJzjxnVnTvzoei0YfrCjYN7l/+yYMffpuXhbXfi/OL+E60UXs42WjIMptNJlJU4XyrJctGZhOCNJzvdA80VSpna1YtgVvTElQLF/6zSI9arGIjLN325bF2i+WERDr1aJdT7cPP9YbGOb8Kdbl1rPTrOOc3NWO/ev+kT92F+SOcwrVwSrI/TveqOT/epYR+/IdytWHLpmjRn6IJmzCj+xFd2WKFzN5JCVhMSo/kgaqSZbHebd1n5VYD5zYzdqYryMxdQWYWQWYRazNrJpOxQ/9crgnMl2GbWJTRKVaE+sFwns1mnGJkYj3GmqYElsBt0kM26SGb9JAt5iHhTyum8J9cFbZJX5lFr6dHX0rcUVoC0xImJNQmLEpQh1d7QzWLu2LxZDTWxCTwlEA4r2hEYU2+DEkWGuCC70AB4P3b+bHt248bDVuOP8inHxvF246PxUzXITby4DkD/SZsZxw+M5BZU5nawR8K+01ckUtU5BIVuUSl20HwzU8eKOPPPVAf1sT2XOy02Ot12/lLhi3H/rVJ5I3Z+keGtw378X2dzlLCFWkOluRMSkr3pKerqlNNsnls6erDns2JzyQqHo83nWuZYdf4HuM94bQqQ5VlmnOKa2aP6Z6Z3qlp09LXeu7gztQsRXFn2SzJXbGQ3BULySIW5BKTg5qJ4aH4SsrBfNwuVmsS4SEWCeaoXCSYT9vFBkplsUaT2NkisW5TWlMmy3RI/zmk/xyyc0dQuM8sBGQXAjLKEDBKZ6VmzJ5x4vGoGSuyzLiuTe4SUNHhosPY35rFVFNTs7iHk/wFqkgZaiA7hw9x0oACcg3kwUA2zWZr2OAX2KhH26Obt+6Nbtn4HMt89U2WvuKTm1+Mvsp3sQXsj9ujD7x1IHr3E8+x6U9Hv43uZQNZehuz/S76Afx/D56sTYgPL2XzYWG/25bI3IMzpvvONy/wqRanWLJZokliDiJfeiZBOEQw9i7G1sW4O/RDbe60gSiPtmX3HOgS9cyeA53x0hEv0f5aW2Yw1g59Z7wU7eGzwOQmnp1xtjbZNiNjQcYSy/LEFY5V1jWO2xIednQ4Pk78yOFMtNs1lyPJ5XK4HHaLO53701KsRnzLJNgNXoslxZOWmuURM46/b7aFk8VWeDzkzxbZkbxehyPRnNUVKlldoZJ1Im1kBRPvNIoAiaeN2FMg88VAmTmMwi3GGi1nUU5TjpKT7ZUB4ZUB4ZUB4f1fPlDxVGH8aaqIP1eB4Rt/LqfGAyf1fW/8beXEHc+todBxVArz3Z5C5vIUrk7sGzJc4dwpwip06kWiP5zQwlZz2FHocA5zuYdBVM0WQ9hJifo74bTUQld2aqEblBjOKHRmJ4F8oOTCeCfV4sWWgg9JowlvN0+PgNKX45UWcEEs328B/z28eefuS3e9PPaMKefoX22fctG0Pv6Kd9k9q9aNu+2+aD/DlvHPrbjzlczcnHHLootZ/6uvG2ozHV+mDBiyYnTDNeKvsalEpotFpPLLO8mhR4XTSqZw6e7EWFbCw9ehH483KCca5LMpjhG9BKcaY7lOIJfbpMqDhCKR2+Nm4nGXZp92MV/JERDv+9ttkBjA4J0BrhcFXb3cQW8hDXYVugd7z6LRrrPco71VNM1V5Z7mdd5uvt3BW4zi/BQe4GRpqaHkgYaB9jJDmb0iudJQaT83eY5hjv3C5KWGpfbLkh2GZLtCzG0mswMnNcRpkbhc2Moa5nIXFqaHsxTVYOBGE156VizXkpDocNjxGe9OTvF4vch0I9oM5NVEaXe7RBmenmy2aIQ3pcYoiTHyGszmrGRvUnKy1223WLKS3WDdLrvDoTldSU6ny22xm73JBofLaSeOKRkUr9PhsFjMZo45ed1ul4vMaR5PmrPYwiaSRnZgMihMBjZxs6YxxlJTO9jalljw1qSljj2e5j1+PC31uHdceX3Zhyci1hm/RbBifa4uKixcPbZvaPUVO1f39f60QOCtTnTu3AkYsbOLOxVYRcQxuSLiwoG11W314pEbOrQawlwI8yDsJBKnd6qI2CBJhKTNHjaEoVSN52RJTezsdvrlZwN6pHgGD0HhRtFjAAuwYE+jibG7opc9eyAnbaiVeT59aXwgo8+HO6IXPRl9oafJkxR93rDlx6Lbfv/PHOWd42nRz/61tl157NgoteY6rX70D/fhCN1JlcoZbUGvb99TSi86COJKr9ZQpq9T6alktg73hTuUQJs7ucBR3EcR+SRfogZcCHoctFURv8WYqYgzoRO4EtQEehy0FbQPZCQCilYNtBC0AXRQtCiZSkar5nMW91RSYZuKt4ND8dARkA5SyAfMB40HzQTdCNoAMko9IVkIWgnaCjoqW8KKp/WWAZi7p3WtLNoumF8gq3Wx6owaWW2bVh0rx06MlWVnxdSGxdT6D4yJ+5bEyp69Y6U7t6BJlNaEgm3FKUoKFpmCiS8CMr6THAh0H92tJFMExBVjXBJW3G05wYINWxWVmMIVRnPIp29TWGuCq6DYynV+hNzk45/zw7EWfrgt0VWwofhsfogeB20FKfwQ7nf5u7SSHxQ+BxaBNoC2gvaCjoCM/CDuA7jf4e+Qg79N+aAi0EzQBtBW0BGQib8NdPK3xDe+RMEXgbj47Qtqb2JZbwId/A1wb/A3MLWXW4cUFnRKJpQfZ3y5ccaTHmfcKQUd/KXW73shooLYaUTUk0o2jaQBSnZrbn9fh+JtHTHP18Hfa9NCvruL+/H9FAFxzGQ/Rt5PGmgCqBa0CGQE9wq4V6gJdBPoblAEhCgDOkEa3wXaDXqF+oHCoAkgM9/XimE6+N7WYImvOIW/yJ8lDzy+hz8ny938GVm+wP8my+dRZqHcxZ9pzfJRsQ3tBBsnSifKfLQb+F/bctw+vdjFt8J3PmA+qAg0HjQTdCPIyLfy7NY5Pjc6eZJ2mQmarfSJLB+ke80UvsAXDpYiADUBwWFnggNs0DYEeTi47g5UBQRvuAWcgODV14ETELz0KnACgvMvBicgOOcCcAKC02eCExAcXwkO0MHv+nNOT9+Q8RcyrdjBL4GXLoGXLoGXLiGVXyJu+l4Vc/tDa14ePLY+HOqV52vawpqeYk2TWNO9rKmeNV3Jmq5iTSNY03msKcSaMlhTFmsKs6Yn2VC4oomF20+rFoa9rGkXa9rEmhpZU5A15bKmHNaksSHhDu5vPWuALMpl0VYsHjqUZ45E9nFwPzzqR8z7kRO2AveCdFkLQ0nLjimnZokyuy2vKFbvO6xgYfEYvgOGO7ANO+gASMUG7UAY7UAnO9CBA1gEmgnaBjoC0kFGaGdj4jdKdADzQUWgmaCVoCMgo5zOERCnhfEpPi4nlh+f9HhR4ztwiz9i+bk/nOnMcIacY5QbM5gji43P0rP4EEoRv4lwu8yuDpaw+duE775NIEuxhd/Ab6RMbMRN8fLG1u8zfR3s9tbgk77iZHYbZamIOlZIQZaLcig1yvogyjCLciBl8EdRFrRmTIWZozXY27eFJQqrzb7vM973fZLRwcF+nPGk71WtQ2Wtvn9A8uhm3/6Ma33P53eYIXkq2MFQbNGkamfGUN+mXVL1KjSsb/VdKYrNvisyRvsuzJAN9bGG8xpRCzt8k4LTfWPQX1nGLF+4EX1u9hVlnOcbEdMaJGw2+/phCqEYm4fJ9sqQgwayZIdThnSwhnBv0zpTlWm8abCpwNTb5Df5TJmmdFOS2W12mhPNdrPVbDYbzaqZ4xiTJM7LIXGKSzLKH2gaVfkDO8k7Ocmf1Mmf3XFm5nQ2RXooFbxicgle1ttmU8UsLfLN5EAHs06cHjEESljEXUEVlSWRoaGKDpM+KTIkVBExTTi3qoWxG6ohjfA1HYwqqzqYLkSr0sX/rXcSY65V16eL8oxV11dXkzfl4iJvkXukq3BU2c9AbRxPeft7T+MzI+sqJldFHsmsjhQIRs+sroj8Tvzneyf7kh0tL+tkX4iiuqpTGcm+LJ8k5MrIsurqig42VeqRxr6AHiLmC6lnxotZ6JFmzorprY/p5cIeejmigJ7FQrlSL9dikXoqE3otjTnlZS05OVLHo1Gj1Gn0aKfq7MqFTm6u1Elpol1SZ1dKk9CJjJQqGRlQycqQKiyNMqRKBkuTKlNPquTHVa49oXKtHElhJ3UyYjoJB7t0Eg5C59/PVb941ZfgFNY2vHr2DPGHi9pAeT2oNrL24gZvpGmWprXMro7/RSNYO2t2gyjr6iPVgfqyyOxAmdYyfMbPNM8QzcMDZS00o7yyqmVGuL6sdXh4eHmgrqy6bfSEgUNOG+vaE2MNnPAznU0QnQ0UY40e8jPNQ0TzaDHWEDHWEDHW6PBoORbJGJ9Q1WKmkmp8cMmyjdusiNfadH91SYpz0UgZvMP93ivTt+C0spFsoeqIPVASSQCJpj7FfYpFE54p0ZQo/joVb/JeOdyfvoVtjDc5IXYFSii0dFnjMvKWzyuL/WvEBdHSZcLhMQw1/tKFtvJIuK6scSnh5JyHk3MRTs4tJhOktWJJkWFdMputHF/dMWFfCIcJoaKcUBSyEUJmscQVf7r/y+Kl/Bxt4k+2sXAWW0qN1Uokq6KSIxVUxv8MsAVnKfF6aKzGAhtZiDV29RGfduxrVxRizV20dFmci/tiabyMWcKkscslJy7hrNAJjy1Fh+JSSGHiMigK4/IL6zPbNvrOrBNSoB4lC1n042Qlq/zNjA1oJzswgRKAiRId+OI+Tk584B4nF/BHHENdwB7kBiZRD2Ay8AdKoSSgh5KBXuAxfCF7wKdRKvh0SgNmSMykdGAWZejf4+grUKNMoB8H2+8pmzRgAPgd5ZAfmEvZwCDwW+pJAeAZlAPEdy4wT2KIeurfUG86A9hHYl/KA+ZTCNiP+gD7A7+mAuoLHED5wIHUT/+KBkkcTP2BQ2gAcCgN1P9FhRKH0SDgcIkjaDDwTBoCHElDgUVUqH+JL8xhwGIaDiyhEcBS4BdURmcCy2kkcBQV6UdpNIWBY6gYeBaVAM+WWEGlwHOoDDiWRulHaJzE8TQaOIHGACfSWfrnNEniZDobWEkV+mGaQmOBUyVOo3HAKhqvf0bVNAE4HXiYzqWJ4GfQZGANVQLPkziTpuj/pFqaCqyjacBZwE9pNlUD59B0YD2dCzyfZuif0FyJDVQDnEfn6R/TBVQL/kKJ86kOuIBmQX4RzQYulLiI5ugf0WKqBy6hucBGiUupQf+QltE84MV0AfAS4Ae0nC4ErqAFwEvpIuBlEi+nhcAraBHwSlqsv08rJTZRI/AqWgr8DS3TxW9BLgZeLXEVXaIfomtoOXA1rQCuoUuB19Jl+rvUTJcD19IVkFwHfJeupyuBN9BK4I10FfAm4EG6mX4DvIV+C/wdXa0foFsl/p5WAdfRauBttAattwMP0B10LXA9Nevv0B9oLfBOug74R4l30Q3ADXQj8G66CXgP8G26l24G3ke3AO+n3wEfoFv1t+hB+r3+Jj1E64Ab6TbgwxIfoduBj9IdwD/RH4CbJD5GdwIfpz8CI3QXsAX4BrXSBmAb3Q1sp3v11+kJuk9/jTZL/DPdD+ygB4Cd9CBwi8QnaSPwKXpYf5X+Qo8An5a4lR4FbqM/Af9Km4Db6THgDnpcf4V2UgT4N2rR/0HPSHyWWoHPUZu+n56nduAuegL4Am0G7qY/A/dQB/BF6gTulbiPtgD/Tk8BX6K/6C/Ty8CXaD89DfwHbQW+Qtv0v9OrEl+j7cDXaQfwDdoJfFPiW/Q34Nv0DPAdelbfRwckHqTn9b30Lu0CHqIXgO9JfJ92Az+gPcAP6UXgR7RPf5E+lvgJ/R34Kb2k76F/0svAzyQepv3Az+kVfTcdoVeBRyV+Qa8Bv6TXgf+iN4BfSfya3tJfoG/obeC39A7wO+Au+p4OAI/RQeAP9C7wR4nH6T39eYrS+0CdPgD+N6f/38/pX/zKc/o/u53TP/mFnP7JT3L6x7+Q0z/6SU7/sBs5/f0TOX3JaTn9vV/I6e/JnP7eT3L6IZnTD52S0w/JnH5I5vRDp+T0d3+S0w/KnH5Q5vSDv8Kc/vr/o5y+/785/b85/VeX03/t5/Rfb07/pXP6f3P6f3P6z+f05379Of1/ABquEH0KZW5kc3RyZWFtCmVuZG9iago5IDAgb2JqCjw8L1R5cGUgL0ZvbnREZXNjcmlwdG9yCi9Gb250TmFtZSAvQXJpYWxNVAovRmxhZ3MgNAovQXNjZW50IDkwNS4yNzM0NAovRGVzY2VudCAtMjExLjkxNDA2Ci9TdGVtViA0NS44OTg0MzgKL0NhcEhlaWdodCA3MTUuODIwMzEKL0l0YWxpY0FuZ2xlIDAKL0ZvbnRCQm94IFstNjY0LjU1MDc4IC0zMjQuNzA3MDMgMjAwMCAxMDA1Ljg1OTM4XQovRm9udEZpbGUyIDggMCBSPj4KZW5kb2JqCjEwIDAgb2JqCjw8L1R5cGUgL0ZvbnQKL0ZvbnREZXNjcmlwdG9yIDkgMCBSCi9CYXNlRm9udCAvQXJpYWxNVAovU3VidHlwZSAvQ0lERm9udFR5cGUyCi9DSURUb0dJRE1hcCAvSWRlbnRpdHkKL0NJRFN5c3RlbUluZm8gPDwvUmVnaXN0cnkgKEFkb2JlKQovT3JkZXJpbmcgKElkZW50aXR5KQovU3VwcGxlbWVudCAwPj4KL1cgWzAgWzc1MF0gMzkgWzcyMi4xNjc5NyA2NjYuOTkyMTkgMCAwIDcyMi4xNjc5NyAwIDAgMCA1NTYuMTUyMzQgMCAwIDc3Ny44MzIwMyAwIDAgNzIyLjE2Nzk3XSA1OCBbOTQzLjg0NzY2XV0KL0RXIDA+PgplbmRvYmoKMTEgMCBvYmoKPDwvRmlsdGVyIC9GbGF0ZURlY29kZQovTGVuZ3RoIDI2NT4+IHN0cmVhbQp4nF2RTWuEMBCG7/kVc9welmi6snsQYdcieOgHtf0Bmow2UJMQ48F/33xsLXQggYd538nMhNbtU6ukA/pmNe/QwSiVsLjo1XKEASepSM5ASO7uFG8+94ZQb+62xeHcqlGTsgSg7z67OLvB4Sr0gA+EvlqBVqoJDp9157lbjfnGGZWDjFQVCBx9pefevPQzAo22Yyt8Xrrt6D1/io/NILDIeeqGa4GL6TnaXk1IysxHBWXjoyKoxL98kVzDyL96G9Ts5tVZdrpUkZpEdaRHlqhJVEQqWKJronN85V4v/62+N8POUcYuqdLprk750F5Y4z47X631Y8ddx3nDpFLh/h1Gm+AK5wck/4erCmVuZHN0cmVhbQplbmRvYmoKNCAwIG9iago8PC9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMAovQmFzZUZvbnQgL0FyaWFsTVQKL0VuY29kaW5nIC9JZGVudGl0eS1ICi9EZXNjZW5kYW50Rm9udHMgWzEwIDAgUl0KL1RvVW5pY29kZSAxMSAwIFI+PgplbmRvYmoKeHJlZgowIDEyCjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAxNSAwMDAwMCBuIAowMDAwMDAwNDUwIDAwMDAwIG4gCjAwMDAwMDAxMDcgMDAwMDAgbiAKMDAwMDAxMDExMCAwMDAwMCBuIAowMDAwMDAwMTQ0IDAwMDAwIG4gCjAwMDAwMDA2NTggMDAwMDAgbiAKMDAwMDAwMDcxMyAwMDAwMCBuIAowMDAwMDAwNzYwIDAwMDAwIG4gCjAwMDAwMDkyMzkgMDAwMDAgbiAKMDAwMDAwOTQ2NiAwMDAwMCBuIAowMDAwMDA5Nzc0IDAwMDAwIG4gCnRyYWlsZXIKPDwvU2l6ZSAxMgovUm9vdCA3IDAgUgovSW5mbyAxIDAgUj4+CnN0YXJ0eHJlZgoxMDI0MgolJUVPRg==", + }, + "name": "file", + "label": None, + "show_label": True, + "style": {}, + "elem_id": None, + "interactive": None, + "visible": True, +} +BASE64_MICROPHONE = { + "name": "/var/folders/t1/j7cmtcgd0mx43jh9nj_r9mmw0000gn/T/audiovb4gqjpc.wav", + "data": "data:audio/wav;base64,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", +} diff --git a/gtm/lib/python3.12/site-packages/gradio/mix.py b/gtm/lib/python3.12/site-packages/gradio/mix.py index 65e262ac66fe4655630569c77de47d76a0fd06f8..7b43852cbb24ae27ee6ab8b5ebccd7b7ef4ac90b 100644 --- a/gtm/lib/python3.12/site-packages/gradio/mix.py +++ b/gtm/lib/python3.12/site-packages/gradio/mix.py @@ -1,71 +1,132 @@ """ Ways to transform interfaces to produce new interfaces """ -from gradio.interface import Interface +import asyncio +import warnings +from typing import TYPE_CHECKING, List -class Parallel(Interface): +import gradio +from gradio.documentation import document, set_documentation_group + +set_documentation_group("mix_interface") + +if TYPE_CHECKING: # Only import for type checking (to avoid circular imports). + from gradio.components import IOComponent + + +@document() +class Parallel(gradio.Interface): """ - Creates a new Interface consisting of multiple models in parallel - Parameters: - interfaces: any number of Interface objects that are to be compared in parallel - options: additional kwargs that are passed into the new Interface object to customize it - Returns: - (Interface): an Interface object comparing the given models + Creates a new Interface consisting of multiple Interfaces in parallel (comparing their outputs). + The Interfaces to put in Parallel must share the same input components (but can have different output components). + + Demos: interface_parallel, interface_parallel_load + Guides: advanced_interface_features """ - def __init__(self, *interfaces, **options): - fns = [] - outputs = [] - - for io in interfaces: - fns.extend(io.predict) - outputs.extend(io.output_components) + + def __init__(self, *interfaces: gradio.Interface, **options): + """ + Parameters: + interfaces: any number of Interface objects that are to be compared in parallel + options: additional kwargs that are passed into the new Interface object to customize it + Returns: + an Interface object comparing the given models + """ + outputs: List[IOComponent] = [] + + for interface in interfaces: + if not (isinstance(interface, gradio.Interface)): + warnings.warn( + "Parallel requires all inputs to be of type Interface. " + "May not work as expected." + ) + outputs.extend(interface.output_components) + + async def parallel_fn(*args): + return_values_with_durations = await asyncio.gather( + *[interface.call_function(0, args) for interface in interfaces] + ) + return_values = [rv["prediction"] for rv in return_values_with_durations] + combined_list = [] + for interface, return_value in zip(interfaces, return_values): + if len(interface.output_components) == 1: + combined_list.append(return_value) + else: + combined_list.extend(return_value) + if len(outputs) == 1: + return combined_list[0] + return combined_list + + parallel_fn.__name__ = " | ".join([io.__name__ for io in interfaces]) kwargs = { - "fn": fns, + "fn": parallel_fn, "inputs": interfaces[0].input_components, "outputs": outputs, - "repeat_outputs_per_model": False, } kwargs.update(options) - super().__init__(**kwargs) + super().__init__(**kwargs) -class Series(Interface): +@document() +class Series(gradio.Interface): """ - Creates a new Interface from multiple models in series (the output of one is fed as the input to the next) - Parameters: - interfaces: any number of Interface objects that are to be connected in series - options: additional kwargs that are passed into the new Interface object to customize it - Returns: - (Interface): an Interface object connecting the given models + Creates a new Interface from multiple Interfaces in series (the output of one is fed as the input to the next, + and so the input and output components must agree between the interfaces). + + Demos: interface_series, interface_series_load + Guides: advanced_interface_features """ - def __init__(self, *interfaces, **options): - fns = [io.predict for io in interfaces] - - def connected_fn(data): # Run each function with the appropriate preprocessing and postprocessing - data = [data] # put it in a list before it gets unraveled - for idx, io in enumerate(interfaces): - # skip preprocessing for first interface since the compound interface will include it - if idx > 0: - data = [input_interface.preprocess(data[i]) for i, input_interface in enumerate(io.input_components)] + + def __init__(self, *interfaces: gradio.Interface, **options): + """ + Parameters: + interfaces: any number of Interface objects that are to be connected in series + options: additional kwargs that are passed into the new Interface object to customize it + Returns: + an Interface object connecting the given models + """ + + async def connected_fn(*data): + for idx, interface in enumerate(interfaces): + # skip preprocessing for first interface since the Series interface will include it + if idx > 0 and not (interface.api_mode): + data = [ + input_component.preprocess(data[i]) + for i, input_component in enumerate(interface.input_components) + ] + # run all of predictions sequentially - predictions = [] - for predict_fn in io.predict: - prediction = predict_fn(*data) - predictions.append(prediction) - data = predictions - # skip postprocessing for final interface since the compound interface will include it - if idx < len(interfaces) - 1: - data = [output_interface.postprocess(data[i]) for i, output_interface in enumerate(io.output_components)] - return data[0] - - connected_fn.__name__ = " => ".join([f[0].__name__ for f in fns]) + data = (await interface.call_function(0, data))["prediction"] + if len(interface.output_components) == 1: + data = [data] + + # skip postprocessing for final interface since the Series interface will include it + if idx < len(interfaces) - 1 and not (interface.api_mode): + data = [ + output_component.postprocess(data[i]) + for i, output_component in enumerate( + interface.output_components + ) + ] + + if len(interface.output_components) == 1: + return data[0] + return data + + for interface in interfaces: + if not (isinstance(interface, gradio.Interface)): + warnings.warn( + "Series requires all inputs to be of type Interface. May " + "not work as expected." + ) + connected_fn.__name__ = " => ".join([io.__name__ for io in interfaces]) kwargs = { "fn": connected_fn, "inputs": interfaces[0].input_components, "outputs": interfaces[-1].output_components, + "_api_mode": interfaces[0].api_mode, # TODO: set api_mode per-interface } kwargs.update(options) - super().__init__(**kwargs) - + super().__init__(**kwargs) diff --git a/gtm/lib/python3.12/site-packages/gradio/networking.py b/gtm/lib/python3.12/site-packages/gradio/networking.py index 97f1882aa701aca04f6b4bd2543c7209eb5990d4..1985bd5f160ed92e6a43bdd01cdc4e6e669002a4 100644 --- a/gtm/lib/python3.12/site-packages/gradio/networking.py +++ b/gtm/lib/python3.12/site-packages/gradio/networking.py @@ -1,119 +1,62 @@ """ -Defines helper methods useful for setting up ports, launching servers, and handling `ngrok` +Defines helper methods useful for setting up ports, launching servers, and +creating tunnels. """ +from __future__ import annotations import os import socket import threading -from flask import Flask, request, jsonify, abort, send_file, render_template, redirect -from flask_cachebuster import CacheBuster -from flask_login import LoginManager, login_user, logout_user, current_user, login_required -from flask_cors import CORS -import threading -import pkg_resources -from distutils import dir_util -import datetime import time -import json -import urllib.request -from shutil import copyfile -import requests -import sys -import csv -import logging -import gradio as gr -from gradio.embeddings import calculate_similarity, fit_pca_to_embeddings, transform_with_pca -from gradio.tunneling import create_tunnel -from gradio import encryptor -from gradio import queue -from functools import wraps -import io - -INITIAL_PORT_VALUE = int(os.getenv( - 'GRADIO_SERVER_PORT', "7860")) # The http server will try to open on port 7860. If not available, 7861, 7862, etc. -TRY_NUM_PORTS = int(os.getenv( - 'GRADIO_NUM_PORTS', "100")) # Number of ports to try before giving up and throwing an exception. -LOCALHOST_NAME = os.getenv( - 'GRADIO_SERVER_NAME', "127.0.0.1") -GRADIO_API_SERVER = "https://api.gradio.app/v1/tunnel-request" -GRADIO_FEATURE_ANALYTICS_URL = "https://api.gradio.app/gradio-feature-analytics/" - -STATIC_TEMPLATE_LIB = pkg_resources.resource_filename("gradio", "frontend/") -STATIC_PATH_LIB = pkg_resources.resource_filename("gradio", "frontend/static") -VERSION_FILE = pkg_resources.resource_filename("gradio", "version.txt") -with open(VERSION_FILE) as version_file: - GRADIO_STATIC_ROOT = "https://gradio.s3-us-west-2.amazonaws.com/" + \ - version_file.read().strip() + "/static/" - -app = Flask(__name__, - template_folder=STATIC_TEMPLATE_LIB, - static_folder="", - static_url_path="/none/") -CORS(app) -cache_buster = CacheBuster( - config={'extensions': ['.js', '.css'], 'hash_size': 5}) -cache_buster.init_app(app) -app.secret_key = os.getenv("GRADIO_KEY", "secret") -login_manager = LoginManager() -login_manager.login_view = 'login' -login_manager.init_app(app) - -# Hide Flask default message -cli = sys.modules['flask.cli'] -cli.show_server_banner = lambda *x: None +import warnings +from typing import TYPE_CHECKING, Optional, Tuple +import fastapi +import requests +import uvicorn -class User: - def __init__(self, id): - self.is_authenticated = True - self.is_active = True - self.is_anonymous = False - self.id = id - - def get_id(self): - return self.id - - -@login_manager.user_loader -def load_user(_id): - return User(_id) - +from gradio.routes import App +from gradio.tunneling import Tunnel -def login_check(func): - @wraps(func) - def wrapper(*args, **kwargs): - if app.auth: - @login_required - def func2(*args, **kwargs): - return func(*args, **kwargs) +if TYPE_CHECKING: # Only import for type checking (to avoid circular imports). + from gradio.blocks import Blocks - return func2(*args, **kwargs) - else: - return func(*args, **kwargs) - return wrapper +# By default, the local server will try to open on localhost, port 7860. +# If that is not available, then it will try 7861, 7862, ... 7959. +INITIAL_PORT_VALUE = int(os.getenv("GRADIO_SERVER_PORT", "7860")) +TRY_NUM_PORTS = int(os.getenv("GRADIO_NUM_PORTS", "100")) +LOCALHOST_NAME = os.getenv("GRADIO_SERVER_NAME", "127.0.0.1") +GRADIO_API_SERVER = "https://api.gradio.app/v2/tunnel-request" -def get_local_ip_address(): - try: - ip_address = requests.get('https://api.ipify.org', timeout=3).text - except (requests.ConnectionError, requests.exceptions.ReadTimeout): - ip_address = "No internet connection" - return ip_address +class Server(uvicorn.Server): + def install_signal_handlers(self): + pass + def run_in_thread(self): + self.thread = threading.Thread(target=self.run, daemon=True) + self.thread.start() + while not self.started: + time.sleep(1e-3) -IP_ADDRESS = get_local_ip_address() + def close(self): + self.should_exit = True + self.thread.join() -def get_first_available_port(initial, final): +def get_first_available_port(initial: int, final: int) -> int: """ Gets the first open port in a specified range of port numbers - :param initial: the initial value in the range of port numbers - :param final: final (exclusive) value in the range of port numbers, should be greater than `initial` - :return: + Parameters: + initial: the initial value in the range of port numbers + final: final (exclusive) value in the range of port numbers, should be greater than `initial` + Returns: + port: the first open port in the range """ for port in range(initial, final): try: s = socket.socket() # create a socket object + s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) s.bind((LOCALHOST_NAME, port)) # Bind to the port s.close() return port @@ -121,326 +64,13 @@ def get_first_available_port(initial, final): pass raise OSError( "All ports from {} to {} are in use. Please close a port.".format( - initial, final + initial, final - 1 ) ) -@app.route("/", methods=["GET"]) -@login_check -def main(): - return render_template("index.html", config=app.interface.config) - - -@app.route("/static/", methods=["GET"]) -def static_resource(path): - if app.interface.share or os.getenv("GRADIO_TEST_MODE"): - return redirect(GRADIO_STATIC_ROOT + path) - else: - return send_file(os.path.join(STATIC_PATH_LIB, path)) - - -@app.route('/login', methods=["GET", "POST"]) -def login(): - if request.method == "GET": - config = get_config() - return render_template("index.html", config=config) - elif request.method == "POST": - username = request.form.get("username") - password = request.form.get("password") - if ((not callable(app.auth) and username in app.auth and app.auth[username] == password) - or (callable(app.auth) and app.auth.__call__(username, password))): - login_user(User(username)) - return redirect("/") - else: - return abort(401) - - -@app.route("/config/", methods=["GET"]) -def get_config(): - if app.interface.auth is None or current_user.is_authenticated: - return jsonify(app.interface.config) - else: - return {"auth_required": True, "auth_message": app.interface.auth_message} - - -@app.route("/enable_sharing/", methods=["GET"]) -@login_check -def enable_sharing(path): - if path == "None": - path = None - app.interface.config["share_url"] = path - return jsonify(success=True) - - -@app.route("/api/predict/", methods=["POST"]) -@login_check -def predict(): - raw_input = request.json["data"] - prediction, durations = app.interface.process(raw_input) - avg_durations = [] - for i, duration in enumerate(durations): - app.interface.predict_durations[i][0] += duration - app.interface.predict_durations[i][1] += 1 - avg_durations.append(app.interface.predict_durations[i][0] - / app.interface.predict_durations[i][1]) - app.interface.config["avg_durations"] = avg_durations - output = {"data": prediction, "durations": durations, "avg_durations": avg_durations} - if app.interface.allow_flagging == "auto": - try: - flag_index = flag_data(raw_input, prediction, - flag_option=(None if app.interface.flagging_options is None else ""), - username=current_user.id if current_user.is_authenticated else None) - output["flag_index"] = flag_index - except Exception as e: - print(str(e)) - pass - return jsonify(output) - - -def log_feature_analytics(feature): - if app.interface.analytics_enabled: - try: - requests.post(GRADIO_FEATURE_ANALYTICS_URL, - data={ - 'ip_address': IP_ADDRESS, - 'feature': feature}, timeout=3) - except (requests.ConnectionError, requests.exceptions.ReadTimeout): - pass # do not push analytics if no network - - -@app.route("/api/score_similarity/", methods=["POST"]) -@login_check -def score_similarity(): - raw_input = request.json["data"] - - preprocessed_input = [input_interface.preprocess(raw_input[i]) - for i, input_interface in enumerate(app.interface.input_components)] - input_embedding = app.interface.embed(preprocessed_input) - scores = list() - - for example in app.interface.examples: - preprocessed_example = [iface.preprocess(iface.preprocess_example(example)) - for iface, example in zip(app.interface.input_components, example)] - example_embedding = app.interface.embed(preprocessed_example) - scores.append(calculate_similarity(input_embedding, example_embedding)) - log_feature_analytics('score_similarity') - return jsonify({"data": scores}) - - -@app.route("/api/view_embeddings/", methods=["POST"]) -@login_check -def view_embeddings(): - sample_embedding = [] - if "data" in request.json: - raw_input = request.json["data"] - preprocessed_input = [input_interface.preprocess(raw_input[i]) - for i, input_interface in enumerate(app.interface.input_components)] - sample_embedding.append(app.interface.embed(preprocessed_input)) - - example_embeddings = [] - for example in app.interface.examples: - preprocessed_example = [iface.preprocess(iface.preprocess_example(example)) - for iface, example in zip(app.interface.input_components, example)] - example_embedding = app.interface.embed(preprocessed_example) - example_embeddings.append(example_embedding) - - pca_model, embeddings_2d = fit_pca_to_embeddings( - sample_embedding + example_embeddings) - sample_embedding_2d = embeddings_2d[:len(sample_embedding)] - example_embeddings_2d = embeddings_2d[len(sample_embedding):] - app.pca_model = pca_model - log_feature_analytics('view_embeddings') - return jsonify({"sample_embedding_2d": sample_embedding_2d, "example_embeddings_2d": example_embeddings_2d}) - - -@app.route("/api/update_embeddings/", methods=["POST"]) -@login_check -def update_embeddings(): - sample_embedding, sample_embedding_2d = [], [] - if "data" in request.json: - raw_input = request.json["data"] - preprocessed_input = [input_interface.preprocess(raw_input[i]) - for i, input_interface in enumerate(app.interface.input_components)] - sample_embedding.append(app.interface.embed(preprocessed_input)) - sample_embedding_2d = transform_with_pca( - app.pca_model, sample_embedding) - - return jsonify({"sample_embedding_2d": sample_embedding_2d}) - - -@app.route("/api/predict_examples/", methods=["POST"]) -@login_check -def predict_examples(): - example_ids = request.json["data"] - predictions_set = {} - for example_id in example_ids: - example_set = app.interface.examples[example_id] - processed_example_set = [iface.preprocess_example(example) - for iface, example in zip(app.interface.input_components, example_set)] - try: - predictions, _ = app.interface.process(processed_example_set) - except: - continue - predictions_set[example_id] = predictions - output = {"data": predictions_set} - return jsonify(output) - - -def flag_data(input_data, output_data, flag_option=None, flag_index=None, username=None): - flag_path = os.path.join(app.cwd, app.interface.flagging_dir) - log_fp = "{}/log.csv".format(flag_path) - encryption_key = app.interface.encryption_key if app.interface.encrypt else None - is_new = not os.path.exists(log_fp) - - if flag_index is None: - csv_data = [] - for i, interface in enumerate(app.interface.input_components): - csv_data.append(interface.save_flagged( - flag_path, app.interface.config["input_components"][i]["label"], input_data[i], encryption_key)) - for i, interface in enumerate(app.interface.output_components): - csv_data.append(interface.save_flagged( - flag_path, app.interface.config["output_components"][i]["label"], output_data[i], encryption_key) if output_data[i] is not None else "") - if flag_option is not None: - csv_data.append(flag_option) - if username is not None: - csv_data.append(username) - csv_data.append(str(datetime.datetime.now())) - if is_new: - headers = [interface["label"] - for interface in app.interface.config["input_components"]] - headers += [interface["label"] - for interface in app.interface.config["output_components"]] - if app.interface.flagging_options is not None: - headers.append("flag") - if username is not None: - headers.append("username") - headers.append("timestamp") - - def replace_flag_at_index(file_content): - file_content = io.StringIO(file_content) - content = list(csv.reader(file_content)) - header = content[0] - flag_col_index = header.index("flag") - content[flag_index][flag_col_index] = flag_option - output = io.StringIO() - writer = csv.writer(output) - writer.writerows(content) - return output.getvalue() - - if app.interface.encrypt: - output = io.StringIO() - if not is_new: - with open(log_fp, "rb") as csvfile: - encrypted_csv = csvfile.read() - decrypted_csv = encryptor.decrypt( - app.interface.encryption_key, encrypted_csv) - file_content = decrypted_csv.decode() - if flag_index is not None: - file_content = replace_flag_at_index(file_content) - output.write(file_content) - writer = csv.writer(output) - if flag_index is None: - if is_new: - writer.writerow(headers) - writer.writerow(csv_data) - with open(log_fp, "wb") as csvfile: - csvfile.write(encryptor.encrypt( - app.interface.encryption_key, output.getvalue().encode())) - else: - if flag_index is None: - with open(log_fp, "a") as csvfile: - writer = csv.writer(csvfile) - if is_new: - writer.writerow(headers) - writer.writerow(csv_data) - else: - with open(log_fp) as csvfile: - file_content = csvfile.read() - file_content = replace_flag_at_index(file_content) - with open(log_fp, "w") as csvfile: - csvfile.write(file_content) - with open(log_fp, "r") as csvfile: - line_count = len([None for row in csv.reader(csvfile)]) - 1 - return line_count - -@app.route("/api/flag/", methods=["POST"]) -@login_check -def flag(): - log_feature_analytics('flag') - data = request.json['data'] - flag_data(data['input_data'], data['output_data'], data.get("flag_option"), data.get("flag_index"), - current_user.id if current_user.is_authenticated else None) - return jsonify(success=True) - - -@app.route("/api/interpret/", methods=["POST"]) -@login_check -def interpret(): - log_feature_analytics('interpret') - raw_input = request.json["data"] - interpretation_scores, alternative_outputs = app.interface.interpret( - raw_input) - return jsonify({ - "interpretation_scores": interpretation_scores, - "alternative_outputs": alternative_outputs - }) - - -@app.route("/file/", methods=["GET"]) -@login_check -def file(path): - if app.interface.encrypt and isinstance(app.interface.examples, str) and path.startswith(app.interface.examples): - with open(os.path.join(app.cwd, path), "rb") as encrypted_file: - encrypted_data = encrypted_file.read() - file_data = encryptor.decrypt( - app.interface.encryption_key, encrypted_data) - return send_file(io.BytesIO(file_data), attachment_filename=os.path.basename(path)) - else: - return send_file(os.path.join(app.cwd, path)) - - -@app.route("/api/queue/push/", methods=["POST"]) -@login_check -def queue_push(): - data = request.json["data"] - action = request.json["action"] - job_hash, queue_position = queue.push({"data": data}, action) - return {"hash": job_hash, "queue_position": queue_position} - -@app.route("/api/queue/status/", methods=["POST"]) -@login_check -def queue_status(): - hash = request.json['hash'] - status, data = queue.get_status(hash) - return {"status": status, "data": data} - -def queue_thread(path_to_local_server): - while True: - try: - next_job = queue.pop() - if next_job is not None: - _, hash, input_data, task_type = next_job - queue.start_job(hash) - response = requests.post( - path_to_local_server + "/api/" + task_type + "/", json=input_data) - if response.status_code == 200: - queue.pass_job(hash, response.json()) - else: - queue.fail_job(hash, response.text) - else: - time.sleep(1) - except Exception as e: - time.sleep(1) - pass - -def start_server(interface, server_name, server_port=None, auth=None, ssl=None): - if server_port is None: - server_port = INITIAL_PORT_VALUE - port = get_first_available_port( - server_port, server_port + TRY_NUM_PORTS - ) - path_to_local_server = "http://{}:{}/".format(server_name, port) +def configure_app(app: fastapi.FastAPI, blocks: Blocks) -> fastapi.FastAPI: + auth = blocks.auth if auth is not None: if not callable(auth): app.auth = {account[0]: account[1] for account in auth} @@ -448,64 +78,108 @@ def start_server(interface, server_name, server_port=None, auth=None, ssl=None): app.auth = auth else: app.auth = None - app.interface = interface + app.blocks = blocks app.cwd = os.getcwd() - log = logging.getLogger('werkzeug') - log.setLevel(logging.ERROR) - if app.interface.enable_queue: - if auth is not None or app.interface.encrypt: - raise ValueError("Cannot queue with encryption or authentication enabled.") - queue.init() - app.queue_thread = threading.Thread(target=queue_thread, args=(path_to_local_server,)) - app.queue_thread.start() - if interface.save_to is not None: - interface.save_to["port"] = port - app_kwargs = {"port": port, "host": server_name} - if ssl: - print(ssl) - app_kwargs["ssl_context"] = ssl - thread = threading.Thread(target=app.run, - kwargs=app_kwargs, - daemon=True) - thread.start() - - return port, path_to_local_server, app, thread - - -def close_server(process): - process.terminate() - process.join() - - -def url_request(url): - try: - req = urllib.request.Request( - url=url, headers={"content-type": "application/json"} + app.favicon_path = blocks.favicon_path + app.tokens = {} + return app + + +def start_server( + blocks: Blocks, + server_name: Optional[str] = None, + server_port: Optional[int] = None, + ssl_keyfile: Optional[str] = None, + ssl_certfile: Optional[str] = None, + ssl_keyfile_password: Optional[str] = None, +) -> Tuple[int, str, App, Server]: + """Launches a local server running the provided Interface + Parameters: + blocks: The Blocks object to run on the server + server_name: to make app accessible on local network, set this to "0.0.0.0". Can be set by environment variable GRADIO_SERVER_NAME. + server_port: will start gradio app on this port (if available). Can be set by environment variable GRADIO_SERVER_PORT. + auth: If provided, username and password (or list of username-password tuples) required to access the Blocks. Can also provide function that takes username and password and returns True if valid login. + ssl_keyfile: If a path to a file is provided, will use this as the private key file to create a local server running on https. + ssl_certfile: If a path to a file is provided, will use this as the signed certificate for https. Needs to be provided if ssl_keyfile is provided. + ssl_keyfile_password: If a password is provided, will use this with the ssl certificate for https. + Returns: + port: the port number the server is running on + path_to_local_server: the complete address that the local server can be accessed at + app: the FastAPI app object + server: the server object that is a subclass of uvicorn.Server (used to close the server) + """ + server_name = server_name or LOCALHOST_NAME + # if port is not specified, search for first available port + if server_port is None: + port = get_first_available_port( + INITIAL_PORT_VALUE, INITIAL_PORT_VALUE + TRY_NUM_PORTS ) - res = urllib.request.urlopen(req, timeout=10) - return res - except Exception as e: - raise RuntimeError(str(e)) + else: + try: + s = socket.socket() + s.bind((LOCALHOST_NAME, server_port)) + s.close() + except OSError: + raise OSError( + "Port {} is in use. If a gradio.Blocks is running on the port, you can close() it or gradio.close_all().".format( + server_port + ) + ) + port = server_port + + url_host_name = "localhost" if server_name == "0.0.0.0" else server_name + + if ssl_keyfile is not None: + if ssl_certfile is None: + raise ValueError( + "ssl_certfile must be provided if ssl_keyfile is provided." + ) + path_to_local_server = "https://{}:{}/".format(url_host_name, port) + else: + path_to_local_server = "http://{}:{}/".format(url_host_name, port) + + app = App.create_app(blocks) + + if blocks.save_to is not None: # Used for selenium tests + blocks.save_to["port"] = port + config = uvicorn.Config( + app=app, + port=port, + host=server_name, + log_level="warning", + ssl_keyfile=ssl_keyfile, + ssl_certfile=ssl_certfile, + ssl_keyfile_password=ssl_keyfile_password, + ws_max_size=1024 * 1024 * 1024, # Setting max websocket size to be 1 GB + ) + server = Server(config=config) + server.run_in_thread() + return server_name, port, path_to_local_server, app, server -def setup_tunnel(local_server_port, endpoint): - response = url_request( - endpoint + '/v1/tunnel-request' if endpoint is not None else GRADIO_API_SERVER) - if response and response.code == 200: +def setup_tunnel(local_host: str, local_port: int) -> str: + response = requests.get(GRADIO_API_SERVER) + if response and response.status_code == 200: try: - payload = json.loads(response.read().decode("utf-8"))[0] - return create_tunnel(payload, LOCALHOST_NAME, local_server_port) - + payload = response.json()[0] + remote_host, remote_port = payload["host"], int(payload["port"]) + tunnel = Tunnel(remote_host, remote_port, local_host, local_port) + address = tunnel.start_tunnel() + return address except Exception as e: raise RuntimeError(str(e)) + else: + raise RuntimeError("Could not get share link from Gradio API Server.") -def url_ok(url): +def url_ok(url: str) -> bool: try: for _ in range(5): - time.sleep(.500) - r = requests.head(url, timeout=3) + with warnings.catch_warnings(): + warnings.filterwarnings("ignore") + r = requests.head(url, timeout=3, verify=False) if r.status_code in (200, 401, 302): # 401 or 302 if auth is set return True + time.sleep(0.500) except (ConnectionError, requests.exceptions.ConnectionError): return False diff --git a/gtm/lib/python3.12/site-packages/gradio/outputs.py b/gtm/lib/python3.12/site-packages/gradio/outputs.py index 488b66db34f4a15ced70083bc5731b7c20a50eec..f366155b3407e7702ea7a2f83ca71eec18bcf75b 100644 --- a/gtm/lib/python3.12/site-packages/gradio/outputs.py +++ b/gtm/lib/python3.12/site-packages/gradio/outputs.py @@ -4,615 +4,330 @@ This module defines various classes that can serve as the `output` to an interfa automatically added to a registry, which allows them to be easily referenced in other parts of the code. """ -from gradio.component import Component -import numpy as np -import json -from gradio import processing_utils -import datetime -import operator -from numbers import Number -import warnings -import tempfile -import scipy -import os -import pandas as pd -import PIL -from types import ModuleType - -class OutputComponent(Component): - """ - Output Component. All output components subclass this. - """ - - def postprocess(self, y): - """ - Any postprocessing needed to be performed on function output. - """ - return y +from __future__ import annotations +import warnings +from typing import Dict, List, Optional +from gradio import components -class Textbox(OutputComponent): - ''' - Component creates a textbox to render output text or number. - Output type: Union[str, float, int] - ''' - def __init__(self, type="auto", label=None): - ''' - Parameters: - type (str): Type of value to be passed to component. "str" expects a string, "number" expects a float value, "auto" detects return type. - label (str): component name in interface. - ''' - self.type = type - super().__init__(label) - - def get_template_context(self): - return { - **super().get_template_context() - } - - @classmethod - def get_shortcut_implementations(cls): - return { - "text": {"type": "str"}, - "textbox": {"type": "str"}, - "number": {"type": "number"}, - } - - def postprocess(self, y): - if self.type == "str" or self.type == "auto": - return str(y) - elif self.type == "number": - return y - else: - raise ValueError("Unknown type: " + self.type + ". Please choose from: 'str', 'number'") - - -class Label(OutputComponent): - ''' - Component outputs a classification label, along with confidence scores of top categories if provided. Confidence scores are represented as a dictionary mapping labels to scores between 0 and 1. - Output type: Union[Dict[str, float], str, int, float] - ''' +class Textbox(components.Textbox): + def __init__( + self, + type: str = "text", + label: Optional[str] = None, + ): + warnings.warn( + "Usage of gradio.outputs is deprecated, and will not be supported in the future, please import your components from gradio.components", + ) + super().__init__(label=label, type=type) - CONFIDENCES_KEY = "confidences" - def __init__(self, num_top_classes=None, type="auto", label=None): - ''' - Parameters: - num_top_classes (int): number of most confident classes to show. - type (str): Type of value to be passed to component. "value" expects a single out label, "confidences" expects a dictionary mapping labels to confidence scores, "auto" detects return type. - label (str): component name in interface. - ''' - self.num_top_classes = num_top_classes - self.type = type - super().__init__(label) - - def postprocess(self, y): - if self.type == "label" or (self.type == "auto" and (isinstance(y, str) or isinstance(y, Number))): - return {"label": str(y)} - elif self.type == "confidences" or (self.type == "auto" and isinstance(y, dict)): - sorted_pred = sorted( - y.items(), - key=operator.itemgetter(1), - reverse=True - ) - if self.num_top_classes is not None: - sorted_pred = sorted_pred[:self.num_top_classes] - return { - "label": sorted_pred[0][0], - "confidences": [ - { - "label": pred[0], - "confidence": pred[1] - } for pred in sorted_pred - ] - } - else: - raise ValueError("The `Label` output interface expects one of: a string label, or an int label, a " - "float label, or a dictionary whose keys are labels and values are confidences.") - - @classmethod - def get_shortcut_implementations(cls): - return { - "label": {}, - } - - def save_flagged(self, dir, label, data, encryption_key): - """ - Returns: (Union[str, Dict[str, number]]): Either a string representing the main category label, or a dictionary with category keys mapping to confidence levels. - """ - if "confidences" in data: - return json.dumps({example["label"]: example["confidence"] for example in data["confidences"]}) - else: - return data["label"] - - def restore_flagged(self, data): - try: - data = json.loads(data) - return data - except: - return data - -class Image(OutputComponent): - ''' - Component displays an output image. +class Image(components.Image): + """ + Component displays an output image. Output type: Union[numpy.array, PIL.Image, str, matplotlib.pyplot, Tuple[Union[numpy.array, PIL.Image, str], List[Tuple[str, float, float, float, float]]]] - ''' + """ - def __init__(self, type="auto", labeled_segments=False, plot=False, label=None): - ''' + def __init__( + self, type: str = "auto", plot: bool = False, label: Optional[str] = None + ): + """ Parameters: - type (str): Type of value to be passed to component. "numpy" expects a numpy array with shape (width, height, 3), "pil" expects a PIL image object, "file" expects a file path to the saved image, "plot" expects a matplotlib.pyplot object, "auto" detects return type. - labeled_segments (bool): If True, expects a two-element tuple to be returned. The first element of the tuple is the image of format specified by type. The second element is a list of tuples, where each tuple represents a labeled segment within the image. The first element of the tuple is the string label of the segment, followed by 4 floats that represent the left-x, top-y, right-x, and bottom-y coordinates of the bounding box. + type (str): Type of value to be passed to component. "numpy" expects a numpy array with shape (width, height, 3), "pil" expects a PIL image object, "file" expects a file path to the saved image or a remote URL, "plot" expects a matplotlib.pyplot object, "auto" detects return type. plot (bool): DEPRECATED. Whether to expect a plot to be returned by the function. label (str): component name in interface. - ''' - self.labeled_segments = labeled_segments - if plot: - warnings.warn("The 'plot' parameter has been deprecated. Set parameter 'type' to 'plot' instead.", DeprecationWarning) - self.type = "plot" - else: - self.type = type - super().__init__(label) - - @classmethod - def get_shortcut_implementations(cls): - return { - "image": {}, - "segmented_image": {"labeled_segments": True}, - "plot": {"type": "plot"}, - "pil": {"type": "pil"} - } - - def postprocess(self, y): - if self.labeled_segments: - y, coordinates = y - else: - coordinates = [] - if self.type == "auto": - if isinstance(y, np.ndarray): - dtype = "numpy" - elif isinstance(y, PIL.Image.Image): - dtype = "pil" - elif isinstance(y, str): - dtype = "file" - elif isinstance(y, ModuleType): - dtype = "plot" - else: - raise ValueError("Unknown type. Please choose from: 'numpy', 'pil', 'file', 'plot'.") - else: - dtype = self.type - if dtype in ["numpy", "pil"]: - if dtype == "pil": - y = np.array(y) - out_y = processing_utils.encode_array_to_base64(y) - elif dtype == "file": - out_y = processing_utils.encode_file_to_base64(y) - elif dtype == "plot": - out_y = processing_utils.encode_plot_to_base64(y) - else: - raise ValueError("Unknown type: " + dtype + ". Please choose from: 'numpy', 'pil', 'file', 'plot'.") - return out_y, coordinates - - def save_flagged(self, dir, label, data, encryption_key): """ - Returns: (str) path to image file - """ - return self.save_flagged_file(dir, label, data[0], encryption_key) + warnings.warn( + "Usage of gradio.outputs is deprecated, and will not be supported in the future, please import your components from gradio.components", + ) + if plot: + type = "plot" + super().__init__(type=type, label=label) -class Video(OutputComponent): - ''' - Used for video output. +class Video(components.Video): + """ + Used for video output. Output type: filepath - ''' + """ - def __init__(self, label=None): - ''' + def __init__(self, type: Optional[str] = None, label: Optional[str] = None): + """ Parameters: + type (str): Type of video format to be passed to component, such as 'avi' or 'mp4'. Use 'mp4' to ensure browser playability. If set to None, video will keep returned format. label (str): component name in interface. - ''' - super().__init__(label) + """ + warnings.warn( + "Usage of gradio.outputs is deprecated, and will not be supported in the future, please import your components from gradio.components", + ) + super().__init__(format=type, label=label) - @classmethod - def get_shortcut_implementations(cls): - return { - "video": {}, - } - def postprocess(self, y): - return processing_utils.encode_file_to_base64(y, type="video") +class Audio(components.Audio): + """ + Creates an audio player that plays the output audio. + Output type: Union[Tuple[int, numpy.array], str] + """ - def save_flagged(self, dir, label, data, encryption_key): + def __init__(self, type: str = "auto", label: Optional[str] = None): """ - Returns: (str) path to image file + Parameters: + type (str): Type of value to be passed to component. "numpy" returns a 2-set tuple with an integer sample_rate and the data as 16-bit int numpy.array of shape (samples, 2), "file" returns a temporary file path to the saved wav audio file, "auto" detects return type. + label (str): component name in interface. """ - return self.save_flagged_file(dir, label, data, encryption_key) - + warnings.warn( + "Usage of gradio.outputs is deprecated, and will not be supported in the future, please import your components from gradio.components", + ) + super().__init__(type=type, label=label) -class KeyValues(OutputComponent): - ''' - Component displays a table representing values for multiple fields. - Output type: Union[Dict, List[Tuple[str, Union[str, int, float]]]] - ''' - def __init__(self, label=None): - ''' - Parameters: - label (str): component name in interface. - ''' - super().__init__(label) - - def postprocess(self, y): - if isinstance(y, dict): - return list(y.items()) - elif isinstance(y, list): - return y - else: - raise ValueError("The `KeyValues` output interface expects an output that is a dictionary whose keys are " - "labels and values are corresponding values.") - - @classmethod - def get_shortcut_implementations(cls): - return { - "key_values": {}, - } - - def save_flagged(self, dir, label, data, encryption_key): - return json.dumps(data) - - def restore_flagged(self, data): - return json.loads(data) - - -class HighlightedText(OutputComponent): - ''' - Component creates text that contains spans that are highlighted by category or numerical value. - Output is represent as a list of Tuple pairs, where the first element represents the span of text represented by the tuple, and the second element represents the category or value of the text. - Output type: List[Tuple[str, Union[float, str]]] - ''' +class File(components.File): + """ + Used for file output. + Output type: Union[file-like, str] + """ - def __init__(self, color_map=None, label=None): - ''' + def __init__(self, label: Optional[str] = None): + """ Parameters: - color_map (Dict[str, str]): Map between category and respective colors label (str): component name in interface. - ''' - self.color_map = color_map - super().__init__(label) - - def get_template_context(self): - return { - "color_map": self.color_map, - **super().get_template_context() - } - - @classmethod - def get_shortcut_implementations(cls): - return { - "highlight": {}, - } - - def postprocess(self, y): - return y - - def save_flagged(self, dir, label, data, encryption_key): - return json.dumps(data) - - def restore_flagged(self, data): - return json.loads(data) + """ + warnings.warn( + "Usage of gradio.outputs is deprecated, and will not be supported in the future, please import your components from gradio.components", + ) + super().__init__(label=label) -class Audio(OutputComponent): - ''' - Creates an audio player that plays the output audio. - Output type: Union[Tuple[int, numpy.array], str] - ''' +class Dataframe(components.Dataframe): + """ + Component displays 2D output through a spreadsheet interface. + Output type: Union[pandas.DataFrame, numpy.array, List[Union[str, float]], List[List[Union[str, float]]]] + """ - def __init__(self, type="auto", label=None): - ''' + def __init__( + self, + headers: Optional[List[str]] = None, + max_rows: Optional[int] = 20, + max_cols: Optional[int] = None, + overflow_row_behaviour: str = "paginate", + type: str = "auto", + label: Optional[str] = None, + ): + """ Parameters: - type (str): Type of value to be passed to component. "numpy" returns a 2-set tuple with an integer sample_rate and the data numpy.array of shape (samples, 2), "file" returns a temporary file path to the saved wav audio file, "auto" detects return type. + headers (List[str]): Header names to dataframe. Only applicable if type is "numpy" or "array". + max_rows (int): Maximum number of rows to display at once. Set to None for infinite. + max_cols (int): Maximum number of columns to display at once. Set to None for infinite. + overflow_row_behaviour (str): If set to "paginate", will create pages for overflow rows. If set to "show_ends", will show initial and final rows and truncate middle rows. + type (str): Type of value to be passed to component. "pandas" for pandas dataframe, "numpy" for numpy array, or "array" for Python array, "auto" detects return type. label (str): component name in interface. - ''' - self.type = type - super().__init__(label) - - def get_template_context(self): - return { - **super().get_template_context() - } - - @classmethod - def get_shortcut_implementations(cls): - return { - "audio": {}, - } - - def postprocess(self, y): - if self.type in ["numpy", "file", "auto"]: - if self.type == "numpy" or (self.type == "auto" and isinstance(y, tuple)): - file = tempfile.NamedTemporaryFile(delete=False) - scipy.io.wavfile.write(file, y[0], y[1]) - y = file.name - return processing_utils.encode_file_to_base64(y, type="audio", ext="wav") - else: - raise ValueError("Unknown type: " + self.type + ". Please choose from: 'numpy', 'file'.") - - def save_flagged(self, dir, label, data, encryption_key): - """ - Returns: (str) path to audio file """ - return self.save_flagged_file(dir, label, data, encryption_key) + warnings.warn( + "Usage of gradio.outputs is deprecated, and will not be supported in the future, please import your components from gradio.components", + ) + super().__init__( + headers=headers, + type=type, + label=label, + max_rows=max_rows, + max_cols=max_cols, + overflow_row_behaviour=overflow_row_behaviour, + ) -class JSON(OutputComponent): - ''' - Used for JSON output. Expects a JSON string or a Python object that is JSON serializable. - Output type: Union[str, Any] - ''' +class Timeseries(components.Timeseries): + """ + Component accepts pandas.DataFrame. + Output type: pandas.DataFrame + """ - def __init__(self, label=None): - ''' + def __init__( + self, x: str = None, y: str | List[str] = None, label: Optional[str] = None + ): + """ Parameters: + x (str): Column name of x (time) series. None if csv has no headers, in which case first column is x series. + y (Union[str, List[str]]): Column name of y series, or list of column names if multiple series. None if csv has no headers, in which case every column after first is a y series. label (str): component name in interface. - ''' - super().__init__(label) - - def postprocess(self, y): - if isinstance(y, str): - return json.dumps(y) - else: - return y - + """ + warnings.warn( + "Usage of gradio.outputs is deprecated, and will not be supported in the future, please import your components from gradio.components", + ) + super().__init__(x=x, y=y, label=label) - @classmethod - def get_shortcut_implementations(cls): - return { - "json": {}, - } - def save_flagged(self, dir, label, data, encryption_key): - return json.dumps(data) +class State(components.State): + """ + Special hidden component that stores state across runs of the interface. + Output type: Any + """ - def restore_flagged(self, data): - return json.loads(data) + def __init__(self, label: Optional[str] = None): + """ + Parameters: + label (str): component name in interface (not used). + """ + warnings.warn( + "Usage of gradio.outputs is deprecated, and will not be supported in the future, please import this component as gr.State() from gradio.components", + ) + super().__init__(label=label) -class HTML(OutputComponent): - ''' - Used for HTML output. Expects an HTML valid string. - Output type: str - ''' +class Label(components.Label): + """ + Component outputs a classification label, along with confidence scores of top categories if provided. Confidence scores are represented as a dictionary mapping labels to scores between 0 and 1. + Output type: Union[Dict[str, float], str, int, float] + """ - def __init__(self, label=None): - ''' + def __init__( + self, + num_top_classes: Optional[int] = None, + type: str = "auto", + label: Optional[str] = None, + ): + """ Parameters: + num_top_classes (int): number of most confident classes to show. + type (str): Type of value to be passed to component. "value" expects a single out label, "confidences" expects a dictionary mapping labels to confidence scores, "auto" detects return type. label (str): component name in interface. - ''' - super().__init__(label) + """ + warnings.warn( + "Usage of gradio.outputs is deprecated, and will not be supported in the future, please import your components from gradio.components", + ) + super().__init__(num_top_classes=num_top_classes, type=type, label=label) - @classmethod - def get_shortcut_implementations(cls): - return { - "html": {}, - } +class KeyValues: + """ + Component displays a table representing values for multiple fields. + Output type: Union[Dict, List[Tuple[str, Union[str, int, float]]]] + """ + def __init__(self, value: str = " ", *, label: Optional[str] = None, **kwargs): + """ + Parameters: + value (str): IGNORED + label (str): component name in interface. + """ + raise DeprecationWarning( + "The KeyValues component is deprecated. Please use the DataFrame or JSON " + "components instead." + ) -class File(OutputComponent): - ''' - Used for file output. - Output type: Union[file-like, str] - ''' - def __init__(self, label=None): - ''' +class HighlightedText(components.HighlightedText): + """ + Component creates text that contains spans that are highlighted by category or numerical value. + Output is represent as a list of Tuple pairs, where the first element represents the span of text represented by the tuple, and the second element represents the category or value of the text. + Output type: List[Tuple[str, Union[float, str]]] + """ + + def __init__( + self, + color_map: Dict[str, str] = None, + label: Optional[str] = None, + show_legend: bool = False, + ): + """ Parameters: + color_map (Dict[str, str]): Map between category and respective colors label (str): component name in interface. - ''' - super().__init__(label) - + show_legend (bool): whether to show span categories in a separate legend or inline. + """ + warnings.warn( + "Usage of gradio.outputs is deprecated, and will not be supported in the future, please import your components from gradio.components", + ) + super().__init__(color_map=color_map, label=label, show_legend=show_legend) - @classmethod - def get_shortcut_implementations(cls): - return { - "file": {}, - } - def postprocess(self, y): - return { - "name": os.path.basename(y), - "size": os.path.getsize(y), - "data": processing_utils.encode_file_to_base64(y, header=False) - } +class JSON(components.JSON): + """ + Used for JSON output. Expects a JSON string or a Python object that is JSON serializable. + Output type: Union[str, Any] + """ - def save_flagged(self, dir, label, data, encryption_key): + def __init__(self, label: Optional[str] = None): """ - Returns: (str) path to image file + Parameters: + label (str): component name in interface. """ - return self.save_flagged_file(dir, label, data["data"], encryption_key) + warnings.warn( + "Usage of gradio.outputs is deprecated, and will not be supported in the future, please import your components from gradio.components", + ) + super().__init__(label=label) -class Dataframe(OutputComponent): +class HTML(components.HTML): """ - Component displays 2D output through a spreadsheet interface. - Output type: Union[pandas.DataFrame, numpy.array, List[Union[str, float]], List[List[Union[str, float]]]] + Used for HTML output. Expects an HTML valid string. + Output type: str """ - def __init__(self, headers=None, max_rows=20, max_cols=None, overflow_row_behaviour="paginate", type="auto", label=None): - ''' + def __init__(self, label: Optional[str] = None): + """ Parameters: - headers (List[str]): Header names to dataframe. Only applicable if type is "numpy" or "array". - max_rows (int): Maximum number of rows to display at once. Set to None for infinite. - max_cols (int): Maximum number of columns to display at once. Set to None for infinite. - overflow_row_behaviour (str): If set to "paginate", will create pages for overflow rows. If set to "show_ends", will show initial and final rows and truncate middle rows. - type (str): Type of value to be passed to component. "pandas" for pandas dataframe, "numpy" for numpy array, or "array" for Python array, "auto" detects return type. label (str): component name in interface. - ''' - self.headers = headers - self.max_rows = max_rows - self.max_cols = max_cols - self.overflow_row_behaviour = overflow_row_behaviour - self.type = type - super().__init__(label) - - - def get_template_context(self): - return { - "headers": self.headers, - "max_rows": self.max_rows, - "max_cols": self.max_cols, - "overflow_row_behaviour": self.overflow_row_behaviour, - **super().get_template_context() - } - - @classmethod - def get_shortcut_implementations(cls): - return { - "dataframe": {}, - "numpy": {"type": "numpy"}, - "matrix": {"type": "array"}, - "list": {"type": "array"}, - } - - def postprocess(self, y): - if self.type == "auto": - if isinstance(y, pd.core.frame.DataFrame): - dtype = "pandas" - elif isinstance(y, np.ndarray): - dtype = "numpy" - elif isinstance(y, list): - dtype = "array" - else: - dtype = self.type - if dtype == "pandas": - return {"headers": list(y.columns), "data": y.values.tolist()} - elif dtype in ("numpy", "array"): - if dtype == "numpy": - y = y.tolist() - if len(y) == 0 or not isinstance(y[0], list): - y = [y] - return {"data": y} - else: - raise ValueError("Unknown type: " + self.type + ". Please choose from: 'pandas', 'numpy', 'array'.") - - def save_flagged(self, dir, label, data, encryption_key): - """ - Returns: (List[List[Union[str, float]]]) 2D array """ - return json.dumps(data["data"]) + super().__init__(label=label) - def restore_flagged(self, data): - return json.loads(data) - -class Carousel(OutputComponent): +class Carousel(components.Carousel): """ Component displays a set of output components that can be scrolled through. - Output type: List[List[Any]] """ - def __init__(self, components, label=None): - ''' + def __init__( + self, + components: components.Component | List[components.Component], + label: Optional[str] = None, + ): + """ Parameters: - components (Union[List[OutputComponent], OutputComponent]): Classes of component(s) that will be scrolled through. + components (Union[List[Component], Component]): Classes of component(s) that will be scrolled through. label (str): component name in interface. - ''' - if not isinstance(components, list): - components = [components] - self.components = [get_output_instance(component) for component in components] - super().__init__(label) - - - def get_template_context(self): - return { - "components": [component.get_template_context() for component in self.components], - **super().get_template_context() - } - - def postprocess(self, y): - if isinstance(y, list): - if len(y) != 0 and not isinstance(y[0], list): - y = [[z] for z in y] - output = [] - for row in y: - output_row = [] - for i, cell in enumerate(row): - output_row.append(self.components[i].postprocess(cell)) - output.append(output_row) - return output - else: - raise ValueError("Unknown type. Please provide a list for the Carousel.") - - def save_flagged(self, dir, label, data, encryption_key): - return json.dumps([ - [ - component.save_flagged(dir, f"{label}_{j}", data[i][j], encryption_key) - for j, component in enumerate(self.components) - ] for i, sample in enumerate(data)]) - - - -def get_output_instance(iface): - if isinstance(iface, str): - shortcut = OutputComponent.get_all_shortcut_implementations()[iface] - return shortcut[0](**shortcut[1]) - elif isinstance(iface, OutputComponent): - return iface - else: - raise ValueError( - "Output interface must be of type `str` or " - "`OutputComponent`" + """ + warnings.warn( + "Usage of gradio.outputs is deprecated, and will not be supported in the future, please import your components from gradio.components", ) + super().__init__(components=components, label=label) + -class Timeseries(OutputComponent): +class Chatbot(components.Chatbot): """ - Component accepts pandas.DataFrame. - Output type: pandas.DataFrame + Component displays a chatbot output showing both user submitted messages and responses + Output type: List[Tuple[str, str]] """ - def __init__(self, x=None, y=None, label=None): + def __init__(self, label: Optional[str] = None): """ Parameters: - x (str): Column name of x (time) series. None if csv has no headers, in which case first column is x series. - y (Union[str, List[str]]): Column name of y series, or list of column names if multiple series. None if csv has no headers, in which case every column after first is a y series. - label (str): component name in interface. - """ - self.x = x - if isinstance(y, str): - y = [y] - self.y = y - super().__init__(label) - - def get_template_context(self): - return { - "x": self.x, - "y": self.y, - **super().get_template_context() - } - - @classmethod - def get_shortcut_implementations(cls): - return { - "timeseries": {}, - } - - def postprocess(self, y): - return { - "headers": y.columns.values.tolist(), - "data": y.values.tolist() - - } - - - def save_flagged(self, dir, label, data, encryption_key): - """ - Returns: (List[List[Union[str, float]]]) 2D array + label (str): component name in interface (not used). """ - return json.dumps(data) + warnings.warn( + "Usage of gradio.outputs is deprecated, and will not be supported in the future, please import your components from gradio.components", + ) + super().__init__(label=label) - def restore_flagged(self, data): - return json.loads(data) +class Image3D(components.Model3D): + """ + Used for 3D image model output. + Input type: File object of type (.obj, glb, or .gltf) + """ + + def __init__( + self, + clear_color=None, + label: Optional[str] = None, + ): + """ + Parameters: + label (str): component name in interface. + optional (bool): If True, the interface can be submitted with no uploaded image, in which case the input value is None. + """ + warnings.warn( + "Usage of gradio.outputs is deprecated, and will not be supported in the future, please import your components from gradio.components", + ) + super().__init__(clear_color=clear_color, label=label) diff --git a/gtm/lib/python3.12/site-packages/gradio/pipelines.py b/gtm/lib/python3.12/site-packages/gradio/pipelines.py index 259a7971b6861486e8b85fd46866ffeb3ce2e58c..1dd840ae69d0cf08f8fb10252083c83aad4968ff 100644 --- a/gtm/lib/python3.12/site-packages/gradio/pipelines.py +++ b/gtm/lib/python3.12/site-packages/gradio/pipelines.py @@ -3,83 +3,187 @@ please use the `gr.Interface.from_pipeline()` function.""" from __future__ import annotations -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Dict -from gradio.pipelines_utils import ( - handle_diffusers_pipeline, - handle_transformers_pipeline, -) +from gradio import components -if TYPE_CHECKING: - import diffusers +if TYPE_CHECKING: # Only import for type checking (is False at runtime). import transformers -def load_from_pipeline( - pipeline: transformers.Pipeline | diffusers.DiffusionPipeline, # type: ignore -) -> dict: +def load_from_pipeline(pipeline: transformers.Pipeline) -> Dict: """ - Gets the appropriate Interface kwargs for a given Hugging Face transformers.Pipeline or diffusers.DiffusionPipeline. + Gets the appropriate Interface kwargs for a given Hugging Face transformers.Pipeline. pipeline (transformers.Pipeline): the transformers.Pipeline from which to create an interface Returns: (dict): a dictionary of kwargs that can be used to construct an Interface object """ + try: + import transformers + except ImportError: + raise ImportError( + "transformers not installed. Please try `pip install transformers`" + ) + if not isinstance(pipeline, transformers.Pipeline): + raise ValueError("pipeline must be a transformers.Pipeline") - if str(type(pipeline).__module__).startswith("transformers.pipelines."): - pipeline_info = handle_transformers_pipeline(pipeline) - elif str(type(pipeline).__module__).startswith("diffusers.pipelines."): - pipeline_info = handle_diffusers_pipeline(pipeline) + # Handle the different pipelines. The has_attr() checks to make sure the pipeline exists in the + # version of the transformers library that the user has installed. + if hasattr(transformers, "AudioClassificationPipeline") and isinstance( + pipeline, transformers.AudioClassificationPipeline + ): + pipeline_info = { + "inputs": components.Audio( + source="microphone", type="filepath", label="Input" + ), + "outputs": components.Label(label="Class"), + "preprocess": lambda i: {"inputs": i}, + "postprocess": lambda r: {i["label"].split(", ")[0]: i["score"] for i in r}, + } + elif hasattr(transformers, "AutomaticSpeechRecognitionPipeline") and isinstance( + pipeline, transformers.AutomaticSpeechRecognitionPipeline + ): + pipeline_info = { + "inputs": components.Audio( + source="microphone", type="filepath", label="Input" + ), + "outputs": components.Textbox(label="Output"), + "preprocess": lambda i: {"inputs": i}, + "postprocess": lambda r: r["text"], + } + elif hasattr(transformers, "FeatureExtractionPipeline") and isinstance( + pipeline, transformers.FeatureExtractionPipeline + ): + pipeline_info = { + "inputs": components.Textbox(label="Input"), + "outputs": components.Dataframe(label="Output"), + "preprocess": lambda x: {"inputs": x}, + "postprocess": lambda r: r[0], + } + elif hasattr(transformers, "FillMaskPipeline") and isinstance( + pipeline, transformers.FillMaskPipeline + ): + pipeline_info = { + "inputs": components.Textbox(label="Input"), + "outputs": components.Label(label="Classification"), + "preprocess": lambda x: {"inputs": x}, + "postprocess": lambda r: {i["token_str"]: i["score"] for i in r}, + } + elif hasattr(transformers, "ImageClassificationPipeline") and isinstance( + pipeline, transformers.ImageClassificationPipeline + ): + pipeline_info = { + "inputs": components.Image(type="filepath", label="Input Image"), + "outputs": components.Label(type="confidences", label="Classification"), + "preprocess": lambda i: {"images": i}, + "postprocess": lambda r: {i["label"].split(", ")[0]: i["score"] for i in r}, + } + elif hasattr(transformers, "QuestionAnsweringPipeline") and isinstance( + pipeline, transformers.QuestionAnsweringPipeline + ): + pipeline_info = { + "inputs": [ + components.Textbox(lines=7, label="Context"), + components.Textbox(label="Question"), + ], + "outputs": [ + components.Textbox(label="Answer"), + components.Label(label="Score"), + ], + "preprocess": lambda c, q: {"context": c, "question": q}, + "postprocess": lambda r: (r["answer"], r["score"]), + } + elif hasattr(transformers, "SummarizationPipeline") and isinstance( + pipeline, transformers.SummarizationPipeline + ): + pipeline_info = { + "inputs": components.Textbox(lines=7, label="Input"), + "outputs": components.Textbox(label="Summary"), + "preprocess": lambda x: {"inputs": x}, + "postprocess": lambda r: r[0]["summary_text"], + } + elif hasattr(transformers, "TextClassificationPipeline") and isinstance( + pipeline, transformers.TextClassificationPipeline + ): + pipeline_info = { + "inputs": components.Textbox(label="Input"), + "outputs": components.Label(label="Classification"), + "preprocess": lambda x: [x], + "postprocess": lambda r: {i["label"].split(", ")[0]: i["score"] for i in r}, + } + elif hasattr(transformers, "TextGenerationPipeline") and isinstance( + pipeline, transformers.TextGenerationPipeline + ): + pipeline_info = { + "inputs": components.Textbox(label="Input"), + "outputs": components.Textbox(label="Output"), + "preprocess": lambda x: {"text_inputs": x}, + "postprocess": lambda r: r[0]["generated_text"], + } + elif hasattr(transformers, "TranslationPipeline") and isinstance( + pipeline, transformers.TranslationPipeline + ): + pipeline_info = { + "inputs": components.Textbox(label="Input"), + "outputs": components.Textbox(label="Translation"), + "preprocess": lambda x: [x], + "postprocess": lambda r: r[0]["translation_text"], + } + elif hasattr(transformers, "Text2TextGenerationPipeline") and isinstance( + pipeline, transformers.Text2TextGenerationPipeline + ): + pipeline_info = { + "inputs": components.Textbox(label="Input"), + "outputs": components.Textbox(label="Generated Text"), + "preprocess": lambda x: [x], + "postprocess": lambda r: r[0]["generated_text"], + } + elif hasattr(transformers, "ZeroShotClassificationPipeline") and isinstance( + pipeline, transformers.ZeroShotClassificationPipeline + ): + pipeline_info = { + "inputs": [ + components.Textbox(label="Input"), + components.Textbox(label="Possible class names (" "comma-separated)"), + components.Checkbox(label="Allow multiple true classes"), + ], + "outputs": components.Label(label="Classification"), + "preprocess": lambda i, c, m: { + "sequences": i, + "candidate_labels": c, + "multi_label": m, + }, + "postprocess": lambda r: { + r["labels"][i]: r["scores"][i] for i in range(len(r["labels"])) + }, + } else: - raise ValueError( - "pipeline must be a transformers.pipeline or diffusers.pipeline" - ) + raise ValueError("Unsupported pipeline type: {}".format(type(pipeline))) + # define the function that will be called by the Interface def fn(*params): - if pipeline_info: - data = pipeline_info["preprocess"](*params) - if str(type(pipeline).__module__).startswith("transformers.pipelines"): - from transformers import pipelines - - # special cases that needs to be handled differently - if isinstance( - pipeline, - ( - pipelines.text_classification.TextClassificationPipeline, - pipelines.text2text_generation.Text2TextGenerationPipeline, - pipelines.text2text_generation.TranslationPipeline, - ), - ): - data = pipeline(*data) - else: - data = pipeline(**data) # type: ignore - # special case for object-detection - # original input image sent to postprocess function - if isinstance( - pipeline, - pipelines.object_detection.ObjectDetectionPipeline, - ): - output = pipeline_info["postprocess"](data, params[0]) - else: - output = pipeline_info["postprocess"](data) - return output - - elif str(type(pipeline).__module__).startswith("diffusers.pipelines"): - data = pipeline(**data) # type: ignore - output = pipeline_info["postprocess"](data) - return output + data = pipeline_info["preprocess"](*params) + # special cases that needs to be handled differently + if isinstance( + pipeline, + ( + transformers.TextClassificationPipeline, + transformers.Text2TextGenerationPipeline, + transformers.TranslationPipeline, + ), + ): + data = pipeline(*data) else: - raise ValueError("pipeline_info can not be None.") + data = pipeline(**data) + output = pipeline_info["postprocess"](data) + return output - interface_info = pipeline_info.copy() if pipeline_info else {} + interface_info = pipeline_info.copy() interface_info["fn"] = fn del interface_info["preprocess"] del interface_info["postprocess"] # define the title/description of the Interface - interface_info["title"] = ( - pipeline.model.__class__.__name__ - if str(type(pipeline).__module__).startswith("transformers.pipelines") - else pipeline.__class__.__name__ - ) + interface_info["title"] = pipeline.model.__class__.__name__ return interface_info diff --git a/gtm/lib/python3.12/site-packages/gradio/processing_utils.py b/gtm/lib/python3.12/site-packages/gradio/processing_utils.py index d324a39ab62a7cefee180f04253327d077859afe..56a92289cacc46b52ffd7954b2881fe7b928a451 100644 --- a/gtm/lib/python3.12/site-packages/gradio/processing_utils.py +++ b/gtm/lib/python3.12/site-packages/gradio/processing_utils.py @@ -1,53 +1,162 @@ -from PIL import Image, ImageOps -from io import BytesIO +from __future__ import annotations + import base64 +import hashlib +import json +import mimetypes +import os +import pathlib +import shutil +import subprocess import tempfile -import scipy.io.wavfile -from scipy.fftpack import dct +import urllib.request +import warnings +from io import BytesIO +from typing import Dict, Tuple + import numpy as np -from gradio import encryptor +import requests +from ffmpy import FFmpeg, FFprobe, FFRuntimeError +from PIL import Image, ImageOps, PngImagePlugin + +from gradio import encryptor, utils + +with warnings.catch_warnings(): + warnings.simplefilter("ignore") # Ignore pydub warning if ffmpeg is not installed + from pydub import AudioSegment + + +######################### +# GENERAL +######################### + + +def to_binary(x: str | Dict) -> bytes: + """Converts a base64 string or dictionary to a binary string that can be sent in a POST.""" + if isinstance(x, dict) and not x.get("data"): + x = encode_url_or_file_to_base64(x["name"]) + elif isinstance(x, dict) and x.get("data"): + x = x["data"] + return base64.b64decode(x.split(",")[1]) + ######################### # IMAGE PRE-PROCESSING ######################### + + def decode_base64_to_image(encoding): - content = encoding.split(';')[1] - image_encoded = content.split(',')[1] + content = encoding.split(";")[1] + image_encoded = content.split(",")[1] return Image.open(BytesIO(base64.b64decode(image_encoded))) -def encode_file_to_base64(f, type="image", ext=None, header=True): +def encode_url_or_file_to_base64(path, encryption_key=None): + if utils.validate_url(path): + return encode_url_to_base64(path, encryption_key=encryption_key) + else: + return encode_file_to_base64(path, encryption_key=encryption_key) + + +def get_mimetype(filename): + mimetype = mimetypes.guess_type(filename)[0] + if mimetype is not None: + mimetype = mimetype.replace("x-wav", "wav").replace("x-flac", "flac") + return mimetype + + +def get_extension(encoding): + encoding = encoding.replace("audio/wav", "audio/x-wav") + type = mimetypes.guess_type(encoding)[0] + if type == "audio/flac": # flac is not supported by mimetypes + return "flac" + extension = mimetypes.guess_extension(type) + if extension is not None and extension.startswith("."): + extension = extension[1:] + return extension + + +def encode_file_to_base64(f, encryption_key=None): with open(f, "rb") as file: encoded_string = base64.b64encode(file.read()) - base64_str = str(encoded_string, 'utf-8') - if not header: - return base64_str - if ext is None: - ext = f.split(".")[-1] - return "data:" + type + "/" + ext + ";base64," + base64_str + if encryption_key: + encoded_string = encryptor.decrypt(encryption_key, encoded_string) + base64_str = str(encoded_string, "utf-8") + mimetype = get_mimetype(f) + return ( + "data:" + + (mimetype if mimetype is not None else "") + + ";base64," + + base64_str + ) + + +def encode_url_to_base64(url, encryption_key=None): + encoded_string = base64.b64encode(requests.get(url).content) + if encryption_key: + encoded_string = encryptor.decrypt(encryption_key, encoded_string) + base64_str = str(encoded_string, "utf-8") + mimetype = get_mimetype(url) + return ( + "data:" + (mimetype if mimetype is not None else "") + ";base64," + base64_str + ) def encode_plot_to_base64(plt): with BytesIO() as output_bytes: plt.savefig(output_bytes, format="png") bytes_data = output_bytes.getvalue() - base64_str = str(base64.b64encode(bytes_data), 'utf-8') + base64_str = str(base64.b64encode(bytes_data), "utf-8") return "data:image/png;base64," + base64_str + +def save_array_to_file(image_array, dir=None): + pil_image = Image.fromarray(_convert(image_array, np.uint8, force_copy=False)) + file_obj = tempfile.NamedTemporaryFile(delete=False, suffix=".png", dir=dir) + pil_image.save(file_obj) + return file_obj + + +def save_pil_to_file(pil_image, dir=None): + file_obj = tempfile.NamedTemporaryFile(delete=False, suffix=".png", dir=dir) + pil_image.save(file_obj) + return file_obj + + +def encode_pil_to_base64(pil_image): + with BytesIO() as output_bytes: + + # Copy any text-only metadata + use_metadata = False + metadata = PngImagePlugin.PngInfo() + for key, value in pil_image.info.items(): + if isinstance(key, str) and isinstance(value, str): + metadata.add_text(key, value) + use_metadata = True + + pil_image.save( + output_bytes, "PNG", pnginfo=(metadata if use_metadata else None) + ) + bytes_data = output_bytes.getvalue() + base64_str = str(base64.b64encode(bytes_data), "utf-8") + return "data:image/png;base64," + base64_str + + def encode_array_to_base64(image_array): with BytesIO() as output_bytes: - PIL_image = Image.fromarray(_convert(image_array, np.uint8, force_copy=False)) - PIL_image.save(output_bytes, 'PNG') + pil_image = Image.fromarray(_convert(image_array, np.uint8, force_copy=False)) + pil_image.save(output_bytes, "PNG") bytes_data = output_bytes.getvalue() - base64_str = str(base64.b64encode(bytes_data), 'utf-8') + base64_str = str(base64.b64encode(bytes_data), "utf-8") return "data:image/png;base64," + base64_str -def resize_and_crop(img, size, crop_type='center'): +def resize_and_crop(img, size, crop_type="center"): """ Resize and crop an image to fit the specified size. args: - size: `(width, height)` tuple. + size: `(width, height)` tuple. Pass `None` for either width or height + to only crop and resize the other. crop_type: can be 'top', 'middle' or 'bottom', depending on this value, the image will cropped getting the 'top/left', 'middle' or 'bottom/right' of the image to fit the size. @@ -60,42 +169,253 @@ def resize_and_crop(img, size, crop_type='center'): center = (0.5, 0.5) else: raise ValueError - return ImageOps.fit(img, size, centering=center) + + resize = list(size) + if size[0] is None: + resize[0] = img.size[0] + if size[1] is None: + resize[1] = img.size[1] + return ImageOps.fit(img, resize, centering=center) + + +################## +# Audio +################## + + +def audio_from_file(filename, crop_min=0, crop_max=100): + try: + audio = AudioSegment.from_file(filename) + except FileNotFoundError as e: + error_message = str(e) + if "ffprobe" in error_message: + print( + "Please install `ffmpeg` in your system to use non-WAV audio file formats." + ) + if crop_min != 0 or crop_max != 100: + audio_start = len(audio) * crop_min / 100 + audio_end = len(audio) * crop_max / 100 + audio = audio[audio_start:audio_end] + data = np.array(audio.get_array_of_samples()) + if audio.channels > 1: + data = data.reshape(-1, audio.channels) + return audio.frame_rate, data + + +def audio_to_file(sample_rate, data, filename): + data = convert_to_16_bit_wav(data) + audio = AudioSegment( + data.tobytes(), + frame_rate=sample_rate, + sample_width=data.dtype.itemsize, + channels=(1 if len(data.shape) == 1 else data.shape[1]), + ) + audio.export(filename, format="wav").close() + + +def convert_to_16_bit_wav(data): + # Based on: https://docs.scipy.org/doc/scipy/reference/generated/scipy.io.wavfile.write.html + warning = "Trying to convert audio automatically from {} to 16-bit int format." + if data.dtype in [np.float64, np.float32, np.float16]: + warnings.warn(warning.format(data.dtype)) + data = data / np.abs(data).max() + data = data * 32767 + data = data.astype(np.int16) + elif data.dtype == np.int32: + warnings.warn(warning.format(data.dtype)) + data = data / 65538 + data = data.astype(np.int16) + elif data.dtype == np.int16: + pass + elif data.dtype == np.uint16: + warnings.warn(warning.format(data.dtype)) + data = data - 32768 + data = data.astype(np.int16) + elif data.dtype == np.uint8: + warnings.warn(warning.format(data.dtype)) + data = data * 257 - 32768 + data = data.astype(np.int16) + else: + raise ValueError( + "Audio data cannot be converted automatically from " + f"{data.dtype} to 16-bit int format." + ) + return data + ################## # OUTPUT ################## + def decode_base64_to_binary(encoding): - extension = None - if "," in encoding: - header, data = encoding.split(",") - header = header[5:] - if ";base64" in header: - header = header[0:header.index(";base64")] - if "/" in header: - extension = header[header.index("/") + 1:] - else: - data = encoding + extension = get_extension(encoding) + data = encoding.split(",")[1] return base64.b64decode(data), extension -def decode_base64_to_file(encoding, encryption_key=None, filename_prefix=""): + +def decode_base64_to_file( + encoding, encryption_key=None, file_path=None, dir=None, prefix=None +): + if dir is not None: + os.makedirs(dir, exist_ok=True) data, extension = decode_base64_to_binary(encoding) + if file_path is not None and prefix is None: + filename = os.path.basename(file_path) + prefix = filename + if "." in filename: + prefix = filename[0 : filename.index(".")] + extension = filename[filename.index(".") + 1 :] + + if prefix is not None: + prefix = utils.strip_invalid_filename_characters(prefix) + if extension is None: - file_obj = tempfile.NamedTemporaryFile(delete=False, prefix=filename_prefix) + file_obj = tempfile.NamedTemporaryFile(delete=False, prefix=prefix, dir=dir) else: - file_obj = tempfile.NamedTemporaryFile(delete=False, prefix=filename_prefix, suffix="."+extension) + file_obj = tempfile.NamedTemporaryFile( + delete=False, + prefix=prefix, + suffix="." + extension, + dir=dir, + ) if encryption_key is not None: data = encryptor.encrypt(encryption_key, data) - #print("saving to ", file_obj.name) file_obj.write(data) file_obj.flush() return file_obj + +def dict_or_str_to_json_file(jsn, dir=None): + if dir is not None: + os.makedirs(dir, exist_ok=True) + + file_obj = tempfile.NamedTemporaryFile( + delete=False, suffix=".json", dir=dir, mode="w+" + ) + if isinstance(jsn, str): + jsn = json.loads(jsn) + json.dump(jsn, file_obj) + file_obj.flush() + return file_obj + + +def file_to_json(file_path): + return json.load(open(file_path)) + + +class TempFileManager: + """ + A class that should be inherited by any Component that needs to manage temporary files. + It should be instantiated in the __init__ method of the component. + """ + + def __init__(self) -> None: + # Set stores all the temporary files created by this component. + self.temp_files = set() + + def hash_file(self, file_path: str, chunk_num_blocks: int = 128) -> str: + sha1 = hashlib.sha1() + with open(file_path, "rb") as f: + for chunk in iter(lambda: f.read(chunk_num_blocks * sha1.block_size), b""): + sha1.update(chunk) + return sha1.hexdigest() + + def hash_url(self, url: str, chunk_num_blocks: int = 128) -> str: + sha1 = hashlib.sha1() + remote = urllib.request.urlopen(url) + max_file_size = 100 * 1024 * 1024 # 100MB + total_read = 0 + while True: + data = remote.read(chunk_num_blocks * sha1.block_size) + total_read += chunk_num_blocks * sha1.block_size + if not data or total_read > max_file_size: + break + sha1.update(data) + return sha1.hexdigest() + + def get_prefix_and_extension(self, file_path_or_url: str) -> Tuple[str, str]: + file_name = os.path.basename(file_path_or_url) + prefix, extension = file_name, None + if "." in file_name: + prefix = file_name[0 : file_name.index(".")] + extension = "." + file_name[file_name.index(".") + 1 :] + else: + extension = "" + prefix = utils.strip_invalid_filename_characters(prefix) + return prefix, extension + + def get_temp_file_path(self, file_path: str) -> str: + prefix, extension = self.get_prefix_and_extension(file_path) + file_hash = self.hash_file(file_path) + return prefix + file_hash + extension + + def get_temp_url_path(self, url: str) -> str: + prefix, extension = self.get_prefix_and_extension(url) + file_hash = self.hash_url(url) + return prefix + file_hash + extension + + def make_temp_copy_if_needed(self, file_path: str) -> str: + """Returns a temporary file path for a copy of the given file path if it does + not already exist. Otherwise returns the path to the existing temp file.""" + f = tempfile.NamedTemporaryFile() + temp_dir, _ = os.path.split(f.name) + + temp_file_path = self.get_temp_file_path(file_path) + f.name = os.path.join(temp_dir, temp_file_path) + full_temp_file_path = os.path.abspath(f.name) + + if not os.path.exists(full_temp_file_path): + shutil.copy2(file_path, full_temp_file_path) + + self.temp_files.add(full_temp_file_path) + return full_temp_file_path + + def download_temp_copy_if_needed(self, url: str) -> str: + """Downloads a file and makes a temporary file path for a copy if does not already + exist. Otherwise returns the path to the existing temp file.""" + f = tempfile.NamedTemporaryFile() + temp_dir, _ = os.path.split(f.name) + + temp_file_path = self.get_temp_url_path(url) + f.name = os.path.join(temp_dir, temp_file_path) + full_temp_file_path = os.path.abspath(f.name) + + if not os.path.exists(full_temp_file_path): + with requests.get(url, stream=True) as r: + with open(full_temp_file_path, "wb") as f: + shutil.copyfileobj(r.raw, f) + + self.temp_files.add(full_temp_file_path) + return full_temp_file_path + + +def create_tmp_copy_of_file(file_path, dir=None): + if dir is not None: + os.makedirs(dir, exist_ok=True) + file_name = os.path.basename(file_path) + prefix, extension = file_name, None + if "." in file_name: + prefix = file_name[0 : file_name.index(".")] + extension = file_name[file_name.index(".") + 1 :] + prefix = utils.strip_invalid_filename_characters(prefix) + if extension is None: + file_obj = tempfile.NamedTemporaryFile(delete=False, prefix=prefix, dir=dir) + else: + file_obj = tempfile.NamedTemporaryFile( + delete=False, + prefix=prefix, + suffix="." + extension, + dir=dir, + ) + shutil.copy2(file_path, file_obj.name) + return file_obj + + def _convert(image, dtype, force_copy=False, uniform=False): """ Adapted from: https://github.com/scikit-image/scikit-image/blob/main/skimage/util/dtype.py#L510-L531 - + Convert an image to the requested data-type. Warnings are issued in case of precision loss, or when negative values are clipped during conversion to unsigned integer types (sign loss). @@ -135,14 +455,16 @@ def _convert(image, dtype, force_copy=False, uniform=False): .. [4] Dirty Pixels. J. Blinn. In "Jim Blinn's corner: Dirty Pixels", pp 47-57. Morgan Kaufmann, 1998. """ - dtype_range = {bool: (False, True), - np.bool_: (False, True), - np.bool8: (False, True), - float: (-1, 1), - np.float_: (-1, 1), - np.float16: (-1, 1), - np.float32: (-1, 1), - np.float64: (-1, 1)} + dtype_range = { + bool: (False, True), + np.bool_: (False, True), + np.bool8: (False, True), + float: (-1, 1), + np.float_: (-1, 1), + np.float16: (-1, 1), + np.float32: (-1, 1), + np.float64: (-1, 1), + } def _dtype_itemsize(itemsize, *dtypes): """Return first of `dtypes` with itemsize greater than `itemsize` @@ -177,12 +499,14 @@ def _convert(image, dtype, force_copy=False, uniform=False): Data type of `kind` that can store a `bits` wide unsigned int """ - s = next(i for i in (itemsize, ) + (2, 4, 8) if - bits < (i * 8) or (bits == (i * 8) and kind == 'u')) + s = next( + i + for i in (itemsize,) + (2, 4, 8) + if bits < (i * 8) or (bits == (i * 8) and kind == "u") + ) return np.dtype(kind + str(s)) - def _scale(a, n, m, copy=True): """Scale an array of unsigned/positive integers from `n` to `m` bits. Numbers can be represented exactly only if `m` is a multiple of `n`. @@ -203,13 +527,7 @@ def _convert(image, dtype, force_copy=False, uniform=False): Output image array. Has the same kind as `a`. """ kind = a.dtype.kind - if n > m and a.max() < 2 ** m: - mnew = int(np.ceil(m / 2) * 2) - if mnew > m: - dtype = "int{}".format(mnew) - else: - dtype = "uint{}".format(mnew) - n = int(np.ceil(n / 2) * 2) + if n > m and a.max() < 2**m: return a.astype(_dtype_bits(kind, m)) elif n == m: return a.copy() if copy else a @@ -217,11 +535,10 @@ def _convert(image, dtype, force_copy=False, uniform=False): # downscale with precision loss if copy: b = np.empty(a.shape, _dtype_bits(kind, m)) - np.floor_divide(a, 2**(n - m), out=b, dtype=a.dtype, - casting='unsafe') + np.floor_divide(a, 2 ** (n - m), out=b, dtype=a.dtype, casting="unsafe") return b else: - a //= 2**(n - m) + a //= 2 ** (n - m) return a elif m % n == 0: # exact upscale to a multiple of `n` bits @@ -240,18 +557,18 @@ def _convert(image, dtype, force_copy=False, uniform=False): if copy: b = np.empty(a.shape, _dtype_bits(kind, o)) np.multiply(a, (2**o - 1) // (2**n - 1), out=b, dtype=b.dtype) - b //= 2**(o - m) + b //= 2 ** (o - m) return b else: a = a.astype(_dtype_bits(kind, o, a.dtype.itemsize), copy=False) a *= (2**o - 1) // (2**n - 1) - a //= 2**(o - m) + a //= 2 ** (o - m) return a image = np.asarray(image) dtypeobj_in = image.dtype if dtype is np.floating: - dtypeobj_out = np.dtype('float64') + dtypeobj_out = np.dtype("float64") else: dtypeobj_out = np.dtype(dtype) dtype_in = dtypeobj_in.type @@ -275,28 +592,27 @@ def _convert(image, dtype, force_copy=False, uniform=False): image = image.copy() return image - if kind_in in 'ui': + if kind_in in "ui": imin_in = np.iinfo(dtype_in).min imax_in = np.iinfo(dtype_in).max - if kind_out in 'ui': + if kind_out in "ui": imin_out = np.iinfo(dtype_out).min imax_out = np.iinfo(dtype_out).max # any -> binary - if kind_out == 'b': + if kind_out == "b": return image > dtype_in(dtype_range[dtype_in][1] / 2) # binary -> any - if kind_in == 'b': + if kind_in == "b": result = image.astype(dtype_out) - if kind_out != 'f': + if kind_out != "f": result *= dtype_out(dtype_range[dtype_out][1]) return result - # float -> any - if kind_in == 'f': - if kind_out == 'f': + if kind_in == "f": + if kind_out == "f": # float -> float return image.astype(dtype_out) @@ -304,41 +620,42 @@ def _convert(image, dtype, force_copy=False, uniform=False): raise ValueError("Images of type float must be between -1 and 1.") # floating point -> integer # use float type that can represent output integer type - computation_type = _dtype_itemsize(itemsize_out, dtype_in, - np.float32, np.float64) + computation_type = _dtype_itemsize( + itemsize_out, dtype_in, np.float32, np.float64 + ) if not uniform: - if kind_out == 'u': - image_out = np.multiply(image, imax_out, - dtype=computation_type) + if kind_out == "u": + image_out = np.multiply(image, imax_out, dtype=computation_type) else: - image_out = np.multiply(image, (imax_out - imin_out) / 2, - dtype=computation_type) - image_out -= 1.0 / 2. + image_out = np.multiply( + image, (imax_out - imin_out) / 2, dtype=computation_type + ) + image_out -= 1.0 / 2.0 np.rint(image_out, out=image_out) np.clip(image_out, imin_out, imax_out, out=image_out) - elif kind_out == 'u': - image_out = np.multiply(image, imax_out + 1, - dtype=computation_type) + elif kind_out == "u": + image_out = np.multiply(image, imax_out + 1, dtype=computation_type) np.clip(image_out, 0, imax_out, out=image_out) else: - image_out = np.multiply(image, (imax_out - imin_out + 1.0) / 2.0, - dtype=computation_type) + image_out = np.multiply( + image, (imax_out - imin_out + 1.0) / 2.0, dtype=computation_type + ) np.floor(image_out, out=image_out) np.clip(image_out, imin_out, imax_out, out=image_out) return image_out.astype(dtype_out) # signed/unsigned int -> float - if kind_out == 'f': + if kind_out == "f": # use float type that can exactly represent input integers - computation_type = _dtype_itemsize(itemsize_in, dtype_out, - np.float32, np.float64) + computation_type = _dtype_itemsize( + itemsize_in, dtype_out, np.float32, np.float64 + ) - if kind_in == 'u': + if kind_in == "u": # using np.divide or np.multiply doesn't copy the data # until the computation time - image = np.multiply(image, 1. / imax_in, - dtype=computation_type) + image = np.multiply(image, 1.0 / imax_in, dtype=computation_type) # DirectX uses this conversion also for signed ints # if imin_in: # np.maximum(image, -1.0, out=image) @@ -349,8 +666,8 @@ def _convert(image, dtype, force_copy=False, uniform=False): return np.asarray(image, dtype_out) # unsigned int -> signed/unsigned int - if kind_in == 'u': - if kind_out == 'i': + if kind_in == "u": + if kind_out == "i": # unsigned int -> signed int image = _scale(image, 8 * itemsize_in, 8 * itemsize_out - 1) return image.view(dtype_out) @@ -359,109 +676,68 @@ def _convert(image, dtype, force_copy=False, uniform=False): return _scale(image, 8 * itemsize_in, 8 * itemsize_out) # signed int -> unsigned int - if kind_out == 'u': + if kind_out == "u": image = _scale(image, 8 * itemsize_in - 1, 8 * itemsize_out) result = np.empty(image.shape, dtype_out) - np.maximum(image, 0, out=result, dtype=image.dtype, casting='unsafe') + np.maximum(image, 0, out=result, dtype=image.dtype, casting="unsafe") return result # signed int -> signed int if itemsize_in > itemsize_out: return _scale(image, 8 * itemsize_in - 1, 8 * itemsize_out - 1) - image = image.astype(_dtype_bits('i', itemsize_out * 8)) + image = image.astype(_dtype_bits("i", itemsize_out * 8)) image -= imin_in image = _scale(image, 8 * itemsize_in, 8 * itemsize_out, copy=False) image += imin_out return image.astype(dtype_out) -################## -# AUDIO FILES -################## +def ffmpeg_installed() -> bool: + return shutil.which("ffmpeg") is not None -def generate_mfcc_features_from_audio_file(wav_filename=None, - pre_emphasis=0.95, - frame_size= 0.025, - frame_stride=0.01, - NFFT=512, - nfilt=40, - num_ceps=12, - cep_lifter=22, - sample_rate=None, - signal=None, - downsample_to=None): - """ - Loads and preprocesses a .wav audio file (or alternatively, a sample rate & signal) into mfcc coefficients, the typical inputs to models. - Adapted from: https://haythamfayek.com/2016/04/21/speech-processing-for-machine-learning.html - :param wav_filename: string name of audio file to process. - :param pre_emphasis: a float factor, typically 0.95 or 0.97, which amplifies high frequencies. - :param frame_size: a float that is the length, in seconds, of time frame over which to take the fft. - :param frame_stride: a float that is the offset, in seconds, between consecutive time frames. - :param NFFT: The number of points in the short-time fft for each time frame. - :param nfilt: The number of filters on the Mel-scale to extract frequency bands. - :param num_ceps: the number of cepstral coefficients to retrain. - :param cep_lifter: the int factor, by which to de-emphasize higher-frequency. - :param sample_rate: optional param represnting sample rate that is used if `wav_filename` is not provided - :param signal: optional param representing sample data that is used if `wav_filename` is not provided - :param downsample_to: optional param. If provided, audio file is downsampled to this many frames. - :return: a 3D numpy array of mfcc coefficients, of the shape 1 x num_frames x num_coeffs. + +def video_is_playable(video_filepath: str) -> bool: + """Determines if a video is playable in the browser. + + A video is playable if it has a playable container and codec. + .mp4 -> h264 + .webm -> vp9 + .ogg -> theora """ - if (wav_filename is None) and (sample_rate is None or signal is None): - raise ValueError("Either a wav_filename must be provdied or a sample_rate and signal") - elif wav_filename is None: - pass - else: - sample_rate, signal = scipy.io.wavfile.read(wav_filename) - - if not(downsample_to is None): - signal = scipy.signal.resample(signal, downsample_to) - - emphasized_signal = np.append(signal[0], signal[1:] - pre_emphasis * signal[:-1]) - - frame_length, frame_step = frame_size * sample_rate, frame_stride * sample_rate # Convert from seconds to samples - signal_length = len(emphasized_signal) - frame_length = int(round(frame_length)) - frame_step = int(round(frame_step)) - num_frames = int(np.ceil(float(np.abs(signal_length - frame_length)) / frame_step)) # Make sure that we have at least 1 frame - - pad_signal_length = num_frames * frame_step + frame_length - z = np.zeros((pad_signal_length - signal_length)) - pad_signal = np.append(emphasized_signal, z) # Pad Signal to make sure that all frames have equal number of samples without truncating any samples from the original signal - - indices = np.tile(np.arange(0, frame_length), (num_frames, 1)) + np.tile(np.arange(0, num_frames * frame_step, frame_step), (frame_length, 1)).T - frames = pad_signal[indices.astype(np.int32, copy=False)] - - frames *= np.hamming(frame_length) - mag_frames = np.absolute(np.fft.rfft(frames, NFFT)) # Magnitude of the FFT - pow_frames = ((1.0 / NFFT) * ((mag_frames) ** 2)) # Power Spectrum - - low_freq_mel = 0 - high_freq_mel = (2595 * np.log10(1 + (sample_rate / 2) / 700)) # Convert Hz to Mel - mel_points = np.linspace(low_freq_mel, high_freq_mel, nfilt + 2) # Equally spaced in Mel scale - hz_points = (700 * (10**(mel_points / 2595) - 1)) # Convert Mel to Hz - bin = np.floor((NFFT + 1) * hz_points / sample_rate) - - fbank = np.zeros((nfilt, int(np.floor(NFFT / 2 + 1)))) - for m in range(1, nfilt + 1): - f_m_minus = int(bin[m - 1]) # left - f_m = int(bin[m]) # center - f_m_plus = int(bin[m + 1]) # right - - for k in range(f_m_minus, f_m): - fbank[m - 1, k] = (k - bin[m - 1]) / (bin[m] - bin[m - 1]) - for k in range(f_m, f_m_plus): - fbank[m - 1, k] = (bin[m + 1] - k) / (bin[m + 1] - bin[m]) - filter_banks = np.dot(pow_frames, fbank.T) - filter_banks = np.where(filter_banks == 0, np.finfo(float).eps, filter_banks) # Numerical Stability - filter_banks = 20 * np.log10(filter_banks) # dB - - mfcc = dct(filter_banks, type=2, axis=1, norm='ortho')[:, 0: (num_ceps + 1)] # Keep filters 1-13 by default. - (nframes, ncoeff) = mfcc.shape - n = np.arange(ncoeff) - lift = 1 + (cep_lifter / 2) * np.sin(np.pi * n / cep_lifter) - mfcc *= lift - - filter_banks -= (np.mean(filter_banks, axis=0) + 1e-8) - mfcc -= (np.mean(mfcc, axis=0) + 1e-8) - return mfcc[np.newaxis, :, :] # Create a batch dimension. \ No newline at end of file + try: + container = pathlib.Path(video_filepath).suffix.lower() + probe = FFprobe( + global_options="-show_format -show_streams -select_streams v -print_format json", + inputs={video_filepath: None}, + ) + output = probe.run(stderr=subprocess.PIPE, stdout=subprocess.PIPE) + output = json.loads(output[0]) + video_codec = output["streams"][0]["codec_name"] + return (container, video_codec) in [ + (".mp4", "h264"), + (".ogg", "theora"), + (".webm", "vp9"), + ] + # If anything goes wrong, assume the video can be played to not convert downstream + except (FFRuntimeError, IndexError, KeyError): + return True + + +def convert_video_to_playable_mp4(video_path: str) -> str: + """Convert the video to mp4. If something goes wrong return the original video.""" + try: + output_path = pathlib.Path(video_path).with_suffix(".mp4") + with tempfile.NamedTemporaryFile(delete=False) as tmp_file: + shutil.copy2(video_path, tmp_file.name) + # ffmpeg will automatically use h264 codec (playable in browser) when converting to mp4 + ff = FFmpeg( + inputs={str(tmp_file.name): None}, + outputs={str(output_path): None}, + global_options="-y -loglevel quiet", + ) + ff.run() + except FFRuntimeError as e: + print(f"Error converting video to browser-playable format {str(e)}") + output_path = video_path + return str(output_path) diff --git a/gtm/lib/python3.12/site-packages/gradio/queue.py b/gtm/lib/python3.12/site-packages/gradio/queue.py index 8a6265343c5bea64a0770faaa8978806c178d06b..dbc134f74668041edc0c9102a60511a4a82bb6ff 100644 --- a/gtm/lib/python3.12/site-packages/gradio/queue.py +++ b/gtm/lib/python3.12/site-packages/gradio/queue.py @@ -1,173 +1,396 @@ -import sqlite3 -import os -import uuid -import json - -DB_FILE = "gradio_queue.db" - -def generate_hash(): - generate = True - conn = sqlite3.connect(DB_FILE) - c = conn.cursor() - while generate: - hash = uuid.uuid4().hex - c.execute(""" - SELECT hash FROM queue - WHERE hash = ?; - """, (hash,)) - generate = c.fetchone() is not None - conn.commit() - return hash - -def init(): - if os.path.exists(DB_FILE): - os.remove(DB_FILE) - conn = sqlite3.connect(DB_FILE) - c = conn.cursor() - c.execute("""CREATE TABLE queue ( - queue_index integer PRIMARY KEY, - hash text, - input_data text, - action text, - popped integer DEFAULT 0 - );""") - c.execute(""" - CREATE TABLE jobs ( - hash text PRIMARY KEY, - status text, - output_data text, - error_message text - ); - """) - conn.commit() - -def close(): - if os.path.exists(DB_FILE): - os.remove(DB_FILE) - -def pop(): - conn = sqlite3.connect(DB_FILE) - c = conn.cursor() - c.execute("BEGIN EXCLUSIVE") - c.execute(""" - SELECT queue_index, hash, input_data, action FROM queue - WHERE popped = 0 ORDER BY queue_index ASC LIMIT 1; - """) - result = c.fetchone() - if result is None: - conn.commit() - return None - queue_index = result[0] - c.execute(""" - UPDATE queue SET popped = 1, input_data = '' WHERE queue_index = ?; - """, (queue_index,)) - conn.commit() - return result[0], result[1], json.loads(result[2]), result[3] - - -def push(input_data, action): - input_data = json.dumps(input_data) - hash = generate_hash() - conn = sqlite3.connect(DB_FILE) - c = conn.cursor() - c.execute(""" - INSERT INTO queue (hash, input_data, action) - VALUES (?, ?, ?); - """, (hash, input_data, action)) - queue_index = c.lastrowid - c.execute(""" - SELECT COUNT(*) FROM queue WHERE queue_index < ? and popped = 0; - """, (queue_index,)) - queue_position = c.fetchone()[0] - if queue_position is None: - conn.commit() - raise ValueError("Hash not found.") - elif queue_position == 0: - c.execute(""" - SELECT COUNT(*) FROM jobs WHERE status = "PENDING"; - """) - result = c.fetchone() - if result[0] == 0: - queue_position -= 1 - conn.commit() - return hash, queue_position - -def get_status(hash): - conn = sqlite3.connect(DB_FILE) - c = conn.cursor() - c.execute(""" - SELECT queue_index, popped FROM queue WHERE hash = ?; - """, (hash,)) - result = c.fetchone() - if result is None: - conn.commit() - raise ValueError("Hash not found.") - if result[1] == 1: # in jobs - c.execute(""" - SELECT status, output_data, error_message FROM jobs WHERE hash = ?; - """, (hash,)) - result = c.fetchone() - if result is None: - conn.commit() - return "NOT FOUND", None - else: - status, output_data, error_message = result - if status == "PENDING": - conn.commit() - return "PENDING", None - elif status == "FAILED": - conn.commit() - return "FAILED", error_message - elif status == "COMPLETE": - c.execute(""" - UPDATE jobs SET output_data = '' WHERE hash = ?; - """, (hash,)) - conn.commit() - output_data = json.loads(output_data) - return "COMPLETE", output_data - else: # in queue - queue_index = result[0] - c.execute(""" - SELECT COUNT(*) FROM queue WHERE queue_index < ? and popped = 0; - """, (queue_index,)) - result = c.fetchone() - queue_position = result[0] - if queue_position == 0: - c.execute(""" - SELECT COUNT(*) FROM jobs WHERE status = "PENDING"; - """) - result = c.fetchone() - if result[0] == 0: - queue_position -= 1 - conn.commit() - return "QUEUED", queue_position - -def start_job(hash): - conn = sqlite3.connect(DB_FILE) - c = conn.cursor() - c.execute("BEGIN EXCLUSIVE") - c.execute(""" - UPDATE queue SET popped = 1 WHERE hash = ?; - """, (hash,)) - c.execute(""" - INSERT INTO jobs (hash, status) VALUES (?, 'PENDING'); - """, (hash,)) - conn.commit() - -def fail_job(hash, error_message): - conn = sqlite3.connect(DB_FILE) - c = conn.cursor() - c.execute(""" - UPDATE jobs SET status = 'FAILED', error_message = ? WHERE hash = ?; - """, (error_message, hash,)) - conn.commit() - -def pass_job(hash, output_data): - output_data = json.dumps(output_data) - conn = sqlite3.connect(DB_FILE) - c = conn.cursor() - c.execute(""" - UPDATE jobs SET status = 'COMPLETE', output_data = ? WHERE hash = ?; - """, (output_data, hash,)) - conn.commit() +from __future__ import annotations +import asyncio +import copy +import sys +import time +from collections import deque +from typing import Any, Deque, Dict, List, Optional, Tuple + +import fastapi +from pydantic import BaseModel + +from gradio.dataclasses import PredictBody +from gradio.utils import AsyncRequest, run_coro_in_background, set_task_name + + +class Estimation(BaseModel): + msg: Optional[str] = "estimation" + rank: Optional[int] = None + queue_size: int + avg_event_process_time: Optional[float] + avg_event_concurrent_process_time: Optional[float] + rank_eta: Optional[int] = None + queue_eta: int + + +class Event: + def __init__( + self, + websocket: fastapi.WebSocket, + fn_index: int | None = None, + ): + self.websocket = websocket + self.data: PredictBody | None = None + self.lost_connection_time: float | None = None + self.fn_index: int | None = fn_index + self.session_hash: str = "foo" + self.token: str | None = None + + async def disconnect(self, code=1000): + await self.websocket.close(code=code) + + +class Queue: + def __init__( + self, + live_updates: bool, + concurrency_count: int, + update_intervals: int, + max_size: Optional[int], + blocks_dependencies: List, + ): + self.event_queue: Deque[Event] = deque() + self.events_pending_reconnection = [] + self.stopped = False + self.max_thread_count = concurrency_count + self.update_intervals = update_intervals + self.active_jobs: List[None | List[Event]] = [None] * concurrency_count + self.delete_lock = asyncio.Lock() + self.server_path = None + self.duration_history_total = 0 + self.duration_history_count = 0 + self.avg_process_time = None + self.avg_concurrent_process_time = None + self.queue_duration = 1 + self.live_updates = live_updates + self.sleep_when_free = 0.05 + self.max_size = max_size + self.blocks_dependencies = blocks_dependencies + self.access_token = "" + + async def start(self): + run_coro_in_background(self.start_processing) + if not self.live_updates: + run_coro_in_background(self.notify_clients) + + def close(self): + self.stopped = True + + def resume(self): + self.stopped = False + + def set_url(self, url: str): + self.server_path = url + + def set_access_token(self, token: str): + self.access_token = token + + def get_active_worker_count(self) -> int: + count = 0 + for worker in self.active_jobs: + if worker is not None: + count += 1 + return count + + def get_events_in_batch(self) -> Tuple[List[Event] | None, bool]: + if not (self.event_queue): + return None, False + + first_event = self.event_queue.popleft() + events = [first_event] + + event_fn_index = first_event.fn_index + batch = self.blocks_dependencies[event_fn_index]["batch"] + + if batch: + batch_size = self.blocks_dependencies[event_fn_index]["max_batch_size"] + rest_of_batch = [ + event for event in self.event_queue if event.fn_index == event_fn_index + ][: batch_size - 1] + events.extend(rest_of_batch) + [self.event_queue.remove(event) for event in rest_of_batch] + + return events, batch + + async def start_processing(self) -> None: + while not self.stopped: + if not self.event_queue: + await asyncio.sleep(self.sleep_when_free) + continue + + if not (None in self.active_jobs): + await asyncio.sleep(self.sleep_when_free) + continue + # Using mutex to avoid editing a list in use + async with self.delete_lock: + events, batch = self.get_events_in_batch() + + if events: + self.active_jobs[self.active_jobs.index(None)] = events + task = run_coro_in_background(self.process_events, events, batch) + run_coro_in_background(self.broadcast_live_estimations) + set_task_name(task, events[0].session_hash, events[0].fn_index, batch) + + def push(self, event: Event) -> int | None: + """ + Add event to queue, or return None if Queue is full + Parameters: + event: Event to add to Queue + Returns: + rank of submitted Event + """ + queue_len = len(self.event_queue) + if self.max_size is not None and queue_len >= self.max_size: + return None + self.event_queue.append(event) + return queue_len + + async def clean_event(self, event: Event) -> None: + if event in self.event_queue: + async with self.delete_lock: + self.event_queue.remove(event) + + async def broadcast_live_estimations(self) -> None: + """ + Runs 2 functions sequentially instead of concurrently. Otherwise dced clients are tried to get deleted twice. + """ + if self.live_updates: + await self.broadcast_estimations() + + async def gather_event_data(self, event: Event) -> bool: + """ + Gather data for the event + + Parameters: + event: + """ + if not event.data: + client_awake = await self.send_message(event, {"msg": "send_data"}) + if not client_awake: + return False + event.data = await self.get_message(event) + return True + + async def notify_clients(self) -> None: + """ + Notify clients about events statuses in the queue periodically. + """ + while not self.stopped: + await asyncio.sleep(self.update_intervals) + if self.event_queue: + await self.broadcast_estimations() + + async def broadcast_estimations(self) -> None: + estimation = self.get_estimation() + # Send all messages concurrently + await asyncio.gather( + *[ + self.send_estimation(event, estimation, rank) + for rank, event in enumerate(self.event_queue) + ] + ) + + async def send_estimation( + self, event: Event, estimation: Estimation, rank: int + ) -> Estimation: + """ + Send estimation about ETA to the client. + + Parameters: + event: + estimation: + rank: + """ + estimation.rank = rank + + if self.avg_concurrent_process_time is not None: + estimation.rank_eta = ( + estimation.rank * self.avg_concurrent_process_time + + self.avg_process_time + ) + if None not in self.active_jobs: + # Add estimated amount of time for a thread to get empty + estimation.rank_eta += self.avg_concurrent_process_time + client_awake = await self.send_message(event, estimation.dict()) + if not client_awake: + await self.clean_event(event) + return estimation + + def update_estimation(self, duration: float) -> None: + """ + Update estimation by last x element's average duration. + + Parameters: + duration: + """ + self.duration_history_total += duration + self.duration_history_count += 1 + self.avg_process_time = ( + self.duration_history_total / self.duration_history_count + ) + self.avg_concurrent_process_time = self.avg_process_time / min( + self.max_thread_count, self.duration_history_count + ) + self.queue_duration = self.avg_concurrent_process_time * len(self.event_queue) + + def get_estimation(self) -> Estimation: + return Estimation( + queue_size=len(self.event_queue), + avg_event_process_time=self.avg_process_time, + avg_event_concurrent_process_time=self.avg_concurrent_process_time, + queue_eta=self.queue_duration, + ) + + def get_request_params(self, websocket: fastapi.WebSocket) -> Dict[str, Any]: + return { + "url": str(websocket.url), + "headers": dict(websocket.headers), + "query_params": dict(websocket.query_params), + "path_params": dict(websocket.path_params), + "client": dict(host=websocket.client.host, port=websocket.client.port), + } + + async def call_prediction(self, events: List[Event], batch: bool): + data = events[0].data + token = events[0].token + try: + data.request = self.get_request_params(events[0].websocket) + except ValueError: + pass + + if batch: + data.data = list(zip(*[event.data.data for event in events if event.data])) + data.request = [ + self.get_request_params(event.websocket) + for event in events + if event.data + ] + data.batched = True + + response = await AsyncRequest( + method=AsyncRequest.Method.POST, + url=f"{self.server_path}api/predict", + json=dict(data), + headers={"Authorization": f"Bearer {self.access_token}"}, + cookies={"access-token": token} if token is not None else None, + ) + return response + + async def process_events(self, events: List[Event], batch: bool) -> None: + awake_events: List[Event] = [] + try: + for event in events: + client_awake = await self.gather_event_data(event) + if client_awake: + client_awake = await self.send_message( + event, {"msg": "process_starts"} + ) + if client_awake: + awake_events.append(event) + if not (awake_events): + return + begin_time = time.time() + response = await self.call_prediction(awake_events, batch) + if response.has_exception: + for event in awake_events: + await self.send_message( + event, + { + "msg": "process_completed", + "output": {"error": str(response.exception)}, + "success": False, + }, + ) + elif response.json.get("is_generating", False): + while response.json.get("is_generating", False): + # Python 3.7 doesn't have named tasks. + # In order to determine if a task was cancelled, we + # ping the websocket to see if it was closed mid-iteration. + if sys.version_info < (3, 8): + is_alive = await self.send_message(event, {"msg": "alive?"}) + if not is_alive: + return + old_response = response + open_ws = [] + for event in awake_events: + open = await self.send_message( + event, + { + "msg": "process_generating", + "output": old_response.json, + "success": old_response.status == 200, + }, + ) + open_ws.append(open) + awake_events = [ + e for e, is_open in zip(awake_events, open_ws) if is_open + ] + if not awake_events: + return + response = await self.call_prediction(awake_events, batch) + for event in awake_events: + await self.send_message( + event, + { + "msg": "process_completed", + "output": old_response.json, + "success": old_response.status == 200, + }, + ) + else: + output = copy.deepcopy(response.json) + for e, event in enumerate(awake_events): + if batch and "data" in output: + output["data"] = list(zip(*response.json.get("data")))[e] + await self.send_message( + event, + { + "msg": "process_completed", + "output": output, + "success": response.status == 200, + }, + ) + end_time = time.time() + if response.status == 200: + self.update_estimation(end_time - begin_time) + finally: + for event in awake_events: + try: + await event.disconnect() + except Exception: + pass + self.active_jobs[self.active_jobs.index(events)] = None + for event in awake_events: + await self.clean_event(event) + # Always reset the state of the iterator + # If the job finished successfully, this has no effect + # If the job is cancelled, this will enable future runs + # to start "from scratch" + await self.reset_iterators(event.session_hash, event.fn_index) + + async def send_message(self, event, data: Dict) -> bool: + try: + await event.websocket.send_json(data=data) + return True + except: + await self.clean_event(event) + return False + + async def get_message(self, event) -> Optional[PredictBody]: + try: + data = await event.websocket.receive_json() + return PredictBody(**data) + except: + await self.clean_event(event) + return None + + async def reset_iterators(self, session_hash: str, fn_index: int): + await AsyncRequest( + method=AsyncRequest.Method.POST, + url=f"{self.server_path}reset", + json={ + "session_hash": session_hash, + "fn_index": fn_index, + }, + ) diff --git a/gtm/lib/python3.12/site-packages/gradio/reload.py b/gtm/lib/python3.12/site-packages/gradio/reload.py new file mode 100644 index 0000000000000000000000000000000000000000..521917428034cf4ca5d2759bc0c06f58cc314d6b --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/reload.py @@ -0,0 +1,57 @@ +""" + +Contains the functions that run when `gradio` is called from the command line. Specifically, allows + +$ gradio app.py, to run app.py in reload mode where any changes in the app.py file or Gradio library reloads the demo. +$ gradio app.py my_demo, to use variable names other than "demo" +""" +import inspect +import os +import sys + +import gradio +from gradio import networking + + +def run_in_reload_mode(): + args = sys.argv[1:] + if len(args) == 0: + raise ValueError("No file specified.") + if len(args) == 1: + demo_name = "demo" + else: + demo_name = args[1] + + original_path = args[0] + abs_original_path = os.path.abspath(original_path) + path = os.path.normpath(original_path) + path = path.replace("/", ".") + path = path.replace("\\", ".") + filename = os.path.splitext(path)[0] + + gradio_folder = os.path.dirname(inspect.getfile(gradio)) + + port = networking.get_first_available_port( + networking.INITIAL_PORT_VALUE, + networking.INITIAL_PORT_VALUE + networking.TRY_NUM_PORTS, + ) + print( + f"\nLaunching in *reload mode* on: http://{networking.LOCALHOST_NAME}:{port} (Press CTRL+C to quit)\n" + ) + command = f"uvicorn {filename}:{demo_name}.app --reload --port {port} --log-level warning " + message = "Watching:" + + message_change_count = 0 + if gradio_folder.strip(): + command += f'--reload-dir "{gradio_folder}" ' + message += f" '{gradio_folder}'" + message_change_count += 1 + + if os.path.dirname(abs_original_path).strip(): + command += f'--reload-dir "{os.path.dirname(abs_original_path)}"' + if message_change_count == 1: + message += "," + message += f" '{os.path.dirname(abs_original_path)}'" + + print(message + "\n") + os.system(command) diff --git a/gtm/lib/python3.12/site-packages/gradio/routes.py b/gtm/lib/python3.12/site-packages/gradio/routes.py index 128e51d6f45d11ab8e5a7ba643a30dc8b17ae057..d523ae4ce89df2fe2e0fb1b9666272d01ee4a451 100644 --- a/gtm/lib/python3.12/site-packages/gradio/routes.py +++ b/gtm/lib/python3.12/site-packages/gradio/routes.py @@ -1,43 +1,28 @@ -"""Implements a FastAPI server to run the gradio interface. Note that some types in this -module use the Optional/Union notation so that they work correctly with pydantic.""" +"""Implements a FastAPI server to run the gradio interface.""" from __future__ import annotations import asyncio -import contextlib -import sys - -if sys.version_info >= (3, 9): - from importlib.resources import files -else: - from importlib_resources import files import inspect +import io import json import mimetypes import os import posixpath import secrets -import threading -import time import traceback +from collections import defaultdict +from copy import deepcopy from pathlib import Path -from queue import Empty as EmptyQueue -from typing import ( - TYPE_CHECKING, - Any, - AsyncIterator, - Callable, - Dict, - List, - Optional, - Type, -) +from typing import Any, Dict, List, Optional, Type +from urllib.parse import urlparse import fastapi -import httpx import markupsafe import orjson -from fastapi import BackgroundTasks, Depends, FastAPI, HTTPException, Response, status +import pkg_resources +from fastapi import Depends, FastAPI, HTTPException, WebSocket, status +from fastapi.middleware.cors import CORSMiddleware from fastapi.responses import ( FileResponse, HTMLResponse, @@ -46,59 +31,26 @@ from fastapi.responses import ( ) from fastapi.security import OAuth2PasswordRequestForm from fastapi.templating import Jinja2Templates -from gradio_client import utils as client_utils -from gradio_client.documentation import document -from gradio_client.utils import ServerMessage from jinja2.exceptions import TemplateNotFound -from multipart.multipart import parse_options_header -from starlette.background import BackgroundTask -from starlette.responses import RedirectResponse, StreamingResponse +from starlette.responses import RedirectResponse +from starlette.websockets import WebSocketState import gradio -from gradio import ranged_response, route_utils, utils, wasm_utils -from gradio.context import Context -from gradio.data_classes import ( - ComponentServerBody, - PredictBody, - ResetBody, - SimplePredictBody, -) +from gradio import encryptor, utils +from gradio.dataclasses import PredictBody, ResetBody +from gradio.documentation import document, set_documentation_group from gradio.exceptions import Error -from gradio.oauth import attach_oauth -from gradio.route_utils import ( # noqa: F401 - CustomCORSMiddleware, - FileUploadProgress, - FileUploadProgressNotQueuedError, - FileUploadProgressNotTrackedError, - GradioMultiPartParser, - GradioUploadFile, - MultiPartException, - Request, - compare_passwords_securely, - create_lifespan_handler, - move_uploaded_files_to_cache, -) -from gradio.server_messages import ( - EstimationMessage, - EventMessage, - HeartbeatMessage, - ProcessCompletedMessage, - ProcessGeneratingMessage, - UnexpectedErrorMessage, -) -from gradio.state_holder import StateHolder -from gradio.utils import get_package_version, get_upload_folder - -if TYPE_CHECKING: - from gradio.blocks import Block - +from gradio.queue import Estimation, Event +from gradio.utils import cancel_tasks, run_coro_in_background, set_task_name mimetypes.init() -STATIC_TEMPLATE_LIB = files("gradio").joinpath("templates").as_posix() # type: ignore -STATIC_PATH_LIB = files("gradio").joinpath("templates", "frontend", "static").as_posix() # type: ignore -BUILD_PATH_LIB = files("gradio").joinpath("templates", "frontend", "assets").as_posix() # type: ignore -VERSION = get_package_version() +STATIC_TEMPLATE_LIB = pkg_resources.resource_filename("gradio", "templates/") +STATIC_PATH_LIB = pkg_resources.resource_filename("gradio", "templates/frontend/static") +BUILD_PATH_LIB = pkg_resources.resource_filename("gradio", "templates/frontend/assets") +VERSION_FILE = pkg_resources.resource_filename("gradio", "version.txt") +with open(VERSION_FILE) as version_file: + VERSION = version_file.read() class ORJSONResponse(JSONResponse): @@ -133,9 +85,10 @@ def toorjson(value): templates = Jinja2Templates(directory=STATIC_TEMPLATE_LIB) templates.env.filters["toorjson"] = toorjson -client = httpx.AsyncClient() -file_upload_statuses = FileUploadProgress() +########### +# Auth +########### class App(FastAPI): @@ -143,29 +96,15 @@ class App(FastAPI): FastAPI App Wrapper """ - def __init__( - self, - auth_dependency: Callable[[fastapi.Request], str | None] | None = None, - **kwargs, - ): - self.tokens = {} + def __init__(self, **kwargs): + self.tokens = None self.auth = None - self.blocks: gradio.Blocks | None = None - self.state_holder = StateHolder() - self.iterators: dict[str, AsyncIterator] = {} - self.iterators_to_reset: set[str] = set() - self.lock = utils.safe_get_lock() - self.cookie_id = secrets.token_urlsafe(32) + self.blocks: Optional[gradio.Blocks] = None + self.state_holder = {} + self.iterators = defaultdict(dict) + self.lock = asyncio.Lock() self.queue_token = secrets.token_urlsafe(32) self.startup_events_triggered = False - self.uploaded_file_dir = get_upload_folder() - self.change_event: None | threading.Event = None - self._asyncio_tasks: list[asyncio.Task] = [] - self.auth_dependency = auth_dependency - # Allow user to manually set `docs_url` and `redoc_url` - # when instantiating an App; when they're not set, disable docs and redoc. - kwargs.setdefault("docs_url", None) - kwargs.setdefault("redoc_url", None) super().__init__(**kwargs) def configure_app(self, blocks: gradio.Blocks) -> None: @@ -179,167 +118,71 @@ class App(FastAPI): self.auth = None self.blocks = blocks + if hasattr(self.blocks, "_queue"): + self.blocks._queue.set_access_token(self.queue_token) self.cwd = os.getcwd() self.favicon_path = blocks.favicon_path self.tokens = {} - self.root_path = blocks.root_path - self.state_holder.set_blocks(blocks) - - def get_blocks(self) -> gradio.Blocks: - if self.blocks is None: - raise ValueError("No Blocks has been configured for this app.") - return self.blocks - - def build_proxy_request(self, url_path): - url = httpx.URL(url_path) - assert self.blocks # noqa: S101 - # Don't proxy a URL unless it's a URL specifically loaded by the user using - # gr.load() to prevent SSRF or harvesting of HF tokens by malicious Spaces. - is_safe_url = any( - url.host == httpx.URL(root).host for root in self.blocks.proxy_urls - ) - if not is_safe_url: - raise PermissionError("This URL cannot be proxied.") - is_hf_url = url.host.endswith(".hf.space") - headers = {} - if Context.hf_token is not None and is_hf_url: - headers["Authorization"] = f"Bearer {Context.hf_token}" - rp_req = client.build_request("GET", url, headers=headers) - return rp_req - - def _cancel_asyncio_tasks(self): - for task in self._asyncio_tasks: - task.cancel() - self._asyncio_tasks = [] @staticmethod - def create_app( - blocks: gradio.Blocks, - app_kwargs: Dict[str, Any] | None = None, - auth_dependency: Callable[[fastapi.Request], str | None] | None = None, - ) -> App: - app_kwargs = app_kwargs or {} - app_kwargs.setdefault("default_response_class", ORJSONResponse) - if blocks.delete_cache is not None: - app_kwargs["lifespan"] = create_lifespan_handler( - app_kwargs.get("lifespan", None), *blocks.delete_cache - ) - app = App(auth_dependency=auth_dependency, **app_kwargs) + def create_app(blocks: gradio.Blocks) -> FastAPI: + app = App(default_response_class=ORJSONResponse) app.configure_app(blocks) - if not wasm_utils.IS_WASM: - app.add_middleware(CustomCORSMiddleware) + app.add_middleware( + CORSMiddleware, + allow_origins=["*"], + allow_methods=["*"], + allow_headers=["*"], + ) @app.get("/user") @app.get("/user/") def get_current_user(request: fastapi.Request) -> Optional[str]: - if app.auth_dependency is not None: - return app.auth_dependency(request) - token = request.cookies.get( - f"access-token-{app.cookie_id}" - ) or request.cookies.get(f"access-token-unsecure-{app.cookie_id}") + token = request.cookies.get("access-token") return app.tokens.get(token) @app.get("/login_check") @app.get("/login_check/") def login_check(user: str = Depends(get_current_user)): - if (app.auth is None and app.auth_dependency is None) or user is not None: + if app.auth is None or not (user is None): return raise HTTPException( status_code=status.HTTP_401_UNAUTHORIZED, detail="Not authenticated" ) + async def ws_login_check(websocket: WebSocket) -> str: + token = websocket.cookies.get("access-token") + return token # token is returned to allow request in queue + @app.get("/token") @app.get("/token/") def get_token(request: fastapi.Request) -> dict: - token = request.cookies.get(f"access-token-{app.cookie_id}") + token = request.cookies.get("access-token") return {"token": token, "user": app.tokens.get(token)} @app.get("/app_id") @app.get("/app_id/") - def app_id(request: fastapi.Request) -> dict: # noqa: ARG001 - return {"app_id": app.get_blocks().app_id} - - @app.get("/dev/reload", dependencies=[Depends(login_check)]) - async def notify_changes( - request: fastapi.Request, - ): - async def reload_checker(request: fastapi.Request): - heartbeat_rate = 15 - check_rate = 0.05 - last_heartbeat = time.perf_counter() - - while True: - if await request.is_disconnected(): - return - - if app.change_event and app.change_event.is_set(): - app.change_event.clear() - yield """data: CHANGE\n\n""" - - await asyncio.sleep(check_rate) - if time.perf_counter() - last_heartbeat > heartbeat_rate: - yield """data: HEARTBEAT\n\n""" - last_heartbeat = time.time() - - return StreamingResponse( - reload_checker(request), - media_type="text/event-stream", - ) + def app_id(request: fastapi.Request) -> int: + return {"app_id": app.blocks.app_id} @app.post("/login") @app.post("/login/") def login(form_data: OAuth2PasswordRequestForm = Depends()): - username, password = form_data.username.strip(), form_data.password - if app.auth is None: - return RedirectResponse(url="/", status_code=status.HTTP_302_FOUND) + username, password = form_data.username, form_data.password if ( not callable(app.auth) and username in app.auth - and compare_passwords_securely(password, app.auth[username]) # type: ignore + and app.auth[username] == password ) or (callable(app.auth) and app.auth.__call__(username, password)): token = secrets.token_urlsafe(16) app.tokens[token] = username - response = JSONResponse(content={"success": True}) - response.set_cookie( - key=f"access-token-{app.cookie_id}", - value=token, - httponly=True, - samesite="none", - secure=True, - ) - response.set_cookie( - key=f"access-token-unsecure-{app.cookie_id}", - value=token, - httponly=True, - ) + response = RedirectResponse(url="/", status_code=status.HTTP_302_FOUND) + response.set_cookie(key="access-token", value=token, httponly=True) return response else: raise HTTPException(status_code=400, detail="Incorrect credentials.") - ############### - # OAuth Routes - ############### - - # Define OAuth routes if the app expects it (i.e. a LoginButton is defined). - # It allows users to "Sign in with HuggingFace". Otherwise, add the default - # logout route. - if app.blocks is not None and app.blocks.expects_oauth: - attach_oauth(app) - else: - - @app.get("/logout") - def logout(response: Response, user: str = Depends(get_current_user)): - response.delete_cookie(key=f"access-token-{app.cookie_id}", path="/") - response.delete_cookie( - key=f"access-token-unsecure-{app.cookie_id}", path="/" - ) - # A user may have multiple tokens, so we need to delete all of them. - for token in list(app.tokens.keys()): - if app.tokens[token] == user: - del app.tokens[token] - return RedirectResponse(url="/", status_code=status.HTTP_302_FOUND) - ############### # Main Routes ############### @@ -348,611 +191,274 @@ class App(FastAPI): @app.get("/", response_class=HTMLResponse) def main(request: fastapi.Request, user: str = Depends(get_current_user)): mimetypes.add_type("application/javascript", ".js") - blocks = app.get_blocks() - root = route_utils.get_root_url( - request=request, route_path="/", root_path=app.root_path - ) - if (app.auth is None and app.auth_dependency is None) or user is not None: - config = app.get_blocks().config - config = route_utils.update_root_in_config(config, root) - elif app.auth_dependency: - raise HTTPException( - status_code=status.HTTP_401_UNAUTHORIZED, detail="Not authenticated" - ) + + if app.auth is None or not (user is None): + config = app.blocks.config else: config = { "auth_required": True, - "auth_message": blocks.auth_message, - "space_id": app.get_blocks().space_id, - "root": root, + "auth_message": app.blocks.auth_message, } try: template = ( - "frontend/share.html" if blocks.share else "frontend/index.html" + "frontend/share.html" if app.blocks.share else "frontend/index.html" ) return templates.TemplateResponse( - template, - {"request": request, "config": config}, + template, {"request": request, "config": config} ) - except TemplateNotFound as err: - if blocks.share: + except TemplateNotFound: + if app.blocks.share: raise ValueError( "Did you install Gradio from source files? Share mode only " "works when Gradio is installed through the pip package." - ) from err + ) else: raise ValueError( "Did you install Gradio from source files? You need to build " "the frontend by running /scripts/build_frontend.sh" - ) from err - - @app.get("/info/", dependencies=[Depends(login_check)]) - @app.get("/info", dependencies=[Depends(login_check)]) - def api_info(): - return app.get_blocks().get_api_info() # type: ignore + ) @app.get("/config/", dependencies=[Depends(login_check)]) @app.get("/config", dependencies=[Depends(login_check)]) - def get_config(request: fastapi.Request): - config = app.get_blocks().config - root = route_utils.get_root_url( - request=request, route_path="/config", root_path=app.root_path - ) - config = route_utils.update_root_in_config(config, root) - return ORJSONResponse(content=config) + def get_config(): + return app.blocks.config @app.get("/static/{path:path}") def static_resource(path: str): static_file = safe_join(STATIC_PATH_LIB, path) - return FileResponse(static_file) - - @app.get("/custom_component/{id}/{type}/{file_name}") - def custom_component_path(id: str, type: str, file_name: str): - config = app.get_blocks().config - components = config["components"] - location = next( - (item for item in components if item["component_class_id"] == id), None - ) - - if location is None: - raise HTTPException(status_code=404, detail="Component not found.") - - component_instance = app.get_blocks().get_component(location["id"]) - - module_name = component_instance.__class__.__module__ - module_path = sys.modules[module_name].__file__ - - if module_path is None or component_instance is None: - raise HTTPException(status_code=404, detail="Component not found.") - - return FileResponse( - safe_join( - str(Path(module_path).parent), - f"{component_instance.__class__.TEMPLATE_DIR}/{type}/{file_name}", - ) - ) + if static_file is not None: + return FileResponse(static_file) + raise HTTPException(status_code=404, detail="Static file not found") @app.get("/assets/{path:path}") def build_resource(path: str): build_file = safe_join(BUILD_PATH_LIB, path) - return FileResponse(build_file) + if build_file is not None: + return FileResponse(build_file) + raise HTTPException(status_code=404, detail="Build file not found") @app.get("/favicon.ico") async def favicon(): - blocks = app.get_blocks() - if blocks.favicon_path is None: + if app.blocks.favicon_path is None: return static_resource("img/logo.svg") else: - return FileResponse(blocks.favicon_path) - - @app.head("/proxy={url_path:path}", dependencies=[Depends(login_check)]) - @app.get("/proxy={url_path:path}", dependencies=[Depends(login_check)]) - async def reverse_proxy(url_path: str): - # Adapted from: https://github.com/tiangolo/fastapi/issues/1788 - try: - rp_req = app.build_proxy_request(url_path) - except PermissionError as err: - raise HTTPException(status_code=400, detail=str(err)) from err - rp_resp = await client.send(rp_req, stream=True) - return StreamingResponse( - rp_resp.aiter_raw(), - status_code=rp_resp.status_code, - headers=rp_resp.headers, # type: ignore - background=BackgroundTask(rp_resp.aclose), - ) - - @app.head("/file={path_or_url:path}", dependencies=[Depends(login_check)]) - @app.get("/file={path_or_url:path}", dependencies=[Depends(login_check)]) - async def file(path_or_url: str, request: fastapi.Request): - blocks = app.get_blocks() - if client_utils.is_http_url_like(path_or_url): - return RedirectResponse( - url=path_or_url, status_code=status.HTTP_302_FOUND - ) - - if route_utils.starts_with_protocol(path_or_url): - raise HTTPException(403, f"File not allowed: {path_or_url}.") - - abs_path = utils.abspath(path_or_url) + return FileResponse(app.blocks.favicon_path) - in_blocklist = any( - utils.is_in_or_equal(abs_path, blocked_path) - for blocked_path in blocks.blocked_paths - ) - - is_dir = abs_path.is_dir() - - if in_blocklist or is_dir: - raise HTTPException(403, f"File not allowed: {path_or_url}.") - - created_by_app = False - for temp_file_set in blocks.temp_file_sets: - if abs_path in temp_file_set: - created_by_app = True - break - in_allowlist = any( - utils.is_in_or_equal(abs_path, allowed_path) - for allowed_path in blocks.allowed_paths - ) - is_static_file = utils.is_static_file(abs_path) - was_uploaded = utils.is_in_or_equal(abs_path, app.uploaded_file_dir) - is_cached_example = utils.is_in_or_equal( - abs_path, utils.abspath(utils.get_cache_folder()) - ) - - if not ( - created_by_app - or in_allowlist - or was_uploaded - or is_cached_example - or is_static_file + @app.get("/file={path:path}", dependencies=[Depends(login_check)]) + def file(path: str): + if utils.validate_url(path): + return RedirectResponse(url=path, status_code=status.HTTP_302_FOUND) + if ( + app.blocks.encrypt + and isinstance(app.blocks.examples, str) + and path.startswith(app.blocks.examples) ): - raise HTTPException(403, f"File not allowed: {path_or_url}.") - - if not abs_path.exists(): - raise HTTPException(404, f"File not found: {path_or_url}.") - - range_val = request.headers.get("Range", "").strip() - if range_val.startswith("bytes=") and "-" in range_val: - range_val = range_val[6:] - start, end = range_val.split("-") - if start.isnumeric() and end.isnumeric(): - start = int(start) - end = int(end) - response = ranged_response.RangedFileResponse( - abs_path, - ranged_response.OpenRange(start, end), - dict(request.headers), - stat_result=os.stat(abs_path), - ) - return response - - return FileResponse(abs_path, headers={"Accept-Ranges": "bytes"}) - - @app.get( - "/stream/{session_hash}/{run}/{component_id}", - dependencies=[Depends(login_check)], - ) - async def stream( - session_hash: str, - run: int, - component_id: int, - request: fastapi.Request, # noqa: ARG001 - ): - stream: list = ( - app.get_blocks() - .pending_streams[session_hash] - .get(run, {}) - .get(component_id, None) - ) - if stream is None: - raise HTTPException(404, "Stream not found.") - - def stream_wrapper(): - check_stream_rate = 0.01 - max_wait_time = 120 # maximum wait between yields - assume generator thread has crashed otherwise. - wait_time = 0 - while True: - if len(stream) == 0: - if wait_time > max_wait_time: - return - wait_time += check_stream_rate - time.sleep(check_stream_rate) - continue - wait_time = 0 - next_stream = stream.pop(0) - if next_stream is None: - return - yield next_stream - - return StreamingResponse(stream_wrapper()) + with open(safe_join(app.cwd, path), "rb") as encrypted_file: + encrypted_data = encrypted_file.read() + file_data = encryptor.decrypt(app.blocks.encryption_key, encrypted_data) + return FileResponse( + io.BytesIO(file_data), attachment_filename=os.path.basename(path) + ) + if Path(app.cwd).resolve() in Path( + path + ).resolve().parents or os.path.abspath(path) in set().union( + *app.blocks.temp_file_sets + ): # Need to use os.path.abspath in the second condition to be consistent with usage in TempFileManager + return FileResponse( + Path(path).resolve(), headers={"Accept-Ranges": "bytes"} + ) + else: + raise ValueError( + f"File cannot be fetched: {path}. All files must contained within the Gradio python app working directory, or be a temp file created by the Gradio python app." + ) @app.get("/file/{path:path}", dependencies=[Depends(login_check)]) - async def file_deprecated(path: str, request: fastapi.Request): - return await file(path, request) + def file_deprecated(path: str): + return file(path) @app.post("/reset/") @app.post("/reset") async def reset_iterator(body: ResetBody): - if body.event_id not in app.iterators: + if body.session_hash not in app.iterators: return {"success": False} async with app.lock: - del app.iterators[body.event_id] - app.iterators_to_reset.add(body.event_id) - await app.get_blocks()._queue.clean_events(event_id=body.event_id) + app.iterators[body.session_hash][body.fn_index] = None + app.iterators[body.session_hash]["should_reset"].add(body.fn_index) return {"success": True} - # had to use '/run' endpoint for Colab compatibility, '/api' supported for backwards compatibility - @app.post("/run/{api_name}", dependencies=[Depends(login_check)]) - @app.post("/run/{api_name}/", dependencies=[Depends(login_check)]) - @app.post("/api/{api_name}", dependencies=[Depends(login_check)]) - @app.post("/api/{api_name}/", dependencies=[Depends(login_check)]) - async def predict( - api_name: str, + async def run_predict( body: PredictBody, - request: fastapi.Request, + request: Request, username: str = Depends(get_current_user), ): - fn_index_inferred = route_utils.infer_fn_index( - app=app, api_name=api_name, body=body - ) - - if not app.get_blocks().api_open and app.get_blocks().queue_enabled_for_fn( - fn_index_inferred - ): - raise HTTPException( - detail="This API endpoint does not accept direct HTTP POST requests. Please join the queue to use this API.", - status_code=status.HTTP_404_NOT_FOUND, - ) - - gr_request = route_utils.compile_gr_request( - app, - body, - fn_index_inferred=fn_index_inferred, - username=username, - request=request, - ) - root_path = route_utils.get_root_url( - request=request, route_path=f"/api/{api_name}", root_path=app.root_path - ) + if hasattr(body, "session_hash"): + if body.session_hash not in app.state_holder: + app.state_holder[body.session_hash] = { + _id: deepcopy(getattr(block, "value", None)) + for _id, block in app.blocks.blocks.items() + if getattr(block, "stateful", False) + } + session_state = app.state_holder[body.session_hash] + iterators = app.iterators[body.session_hash] + # The should_reset set keeps track of the fn_indices + # that have been cancelled. When a job is cancelled, + # the /reset route will mark the jobs as having been reset. + # That way if the cancel job finishes BEFORE the job being cancelled + # the job being cancelled will not overwrite the state of the iterator. + # In all cases, should_reset will be the empty set the next time + # the fn_index is run. + app.iterators[body.session_hash]["should_reset"] = set([]) + else: + session_state = {} + iterators = {} + raw_input = body.data + fn_index = body.fn_index + batch = app.blocks.dependencies[fn_index]["batch"] + if not (body.batched) and batch: + raw_input = [raw_input] try: - output = await route_utils.call_process_api( - app=app, - body=body, - gr_request=gr_request, - fn_index_inferred=fn_index_inferred, - root_path=root_path, + output = await app.blocks.process_api( + fn_index=fn_index, + inputs=raw_input, + request=request, + username=username, + state=session_state, + iterators=iterators, ) + iterator = output.pop("iterator", None) + if hasattr(body, "session_hash"): + if fn_index in app.iterators[body.session_hash]["should_reset"]: + app.iterators[body.session_hash][fn_index] = None + else: + app.iterators[body.session_hash][fn_index] = iterator + if isinstance(output, Error): + raise output except BaseException as error: - show_error = app.get_blocks().show_error or isinstance(error, Error) + show_error = app.blocks.show_error or isinstance(error, Error) traceback.print_exc() return JSONResponse( content={"error": str(error) if show_error else None}, status_code=500, ) + + if not (body.batched) and batch: + output["data"] = output["data"][0] return output - @app.post("/call/{api_name}", dependencies=[Depends(login_check)]) - @app.post("/call/{api_name}/", dependencies=[Depends(login_check)]) - async def simple_predict_post( + # had to use '/run' endpoint for Colab compatibility, '/api' supported for backwards compatibility + @app.post("/run/{api_name}", dependencies=[Depends(login_check)]) + @app.post("/run/{api_name}/", dependencies=[Depends(login_check)]) + @app.post("/api/{api_name}", dependencies=[Depends(login_check)]) + @app.post("/api/{api_name}/", dependencies=[Depends(login_check)]) + async def predict( api_name: str, - body: SimplePredictBody, - request: fastapi.Request, - username: str = Depends(get_current_user), - ): - full_body = PredictBody(**body.model_dump(), simple_format=True) - inferred_fn_index = route_utils.infer_fn_index( - app=app, api_name=api_name, body=full_body - ) - full_body.fn_index = inferred_fn_index - return await queue_join_helper(full_body, request, username) - - @app.post("/queue/join", dependencies=[Depends(login_check)]) - async def queue_join( body: PredictBody, request: fastapi.Request, username: str = Depends(get_current_user), ): - if body.session_hash is None: - raise HTTPException( - status_code=status.HTTP_400_BAD_REQUEST, - detail="Session hash not found.", - ) - return await queue_join_helper(body, request, username) + if body.fn_index is None: + for i, fn in enumerate(app.blocks.dependencies): + if fn["api_name"] == api_name: + body.fn_index = i + break + if body.fn_index is None: + return JSONResponse( + content={ + "error": f"This app has no endpoint /api/{api_name}/." + }, + status_code=500, + ) + if not app.blocks.api_open and app.blocks.queue_enabled_for_fn( + body.fn_index + ): + if f"Bearer {app.queue_token}" != request.headers.get("Authorization"): + raise HTTPException( + status_code=status.HTTP_401_UNAUTHORIZED, + detail="Not authorized to skip the queue", + ) - async def queue_join_helper( - body: PredictBody, - request: fastapi.Request, - username: str, + # If this fn_index cancels jobs, then the only input we need is the + # current session hash + if app.blocks.dependencies[body.fn_index]["cancels"]: + body.data = [body.session_hash] + if body.request: + if body.batched: + request = [Request(**req) for req in body.request] + else: + request = Request(**body.request) + else: + request = Request(request) + result = await run_predict(body=body, username=username, request=request) + return result + + @app.websocket("/queue/join") + async def join_queue( + websocket: WebSocket, + token: str = Depends(ws_login_check), ): - blocks = app.get_blocks() - - if blocks._queue.server_app is None: - blocks._queue.set_server_app(app) - - if blocks._queue.stopped: - raise HTTPException( - status_code=status.HTTP_503_SERVICE_UNAVAILABLE, - detail="Queue is stopped.", + if app.auth is not None and token is None: + await websocket.close(code=status.WS_1008_POLICY_VIOLATION) + return + if app.blocks._queue.server_path is None: + app_url = get_server_url_from_ws_url(str(websocket.url)) + app.blocks._queue.set_url(app_url) + await websocket.accept() + event = Event(websocket) + # set the token into Event to allow using the same token for call_prediction + event.token = token + + # In order to cancel jobs, we need the session_hash and fn_index + # to create a unique id for each job + await websocket.send_json({"msg": "send_hash"}) + session_hash = await websocket.receive_json() + event.session_hash = session_hash["session_hash"] + event.fn_index = session_hash["fn_index"] + + # Continuous events are not put in the queue so that they do not + # occupy the queue's resource as they are expected to run forever + if app.blocks.dependencies[event.fn_index].get("every", 0): + await cancel_tasks([f"{event.session_hash}_{event.fn_index}"]) + await app.blocks._queue.reset_iterators( + event.session_hash, event.fn_index ) - - success, event_id = await blocks._queue.push( - body=body, request=request, username=username - ) - if not success: - status_code = ( - status.HTTP_503_SERVICE_UNAVAILABLE - if "Queue is full." in event_id - else status.HTTP_400_BAD_REQUEST + task = run_coro_in_background( + app.blocks._queue.process_events, [event], False ) - raise HTTPException(status_code=status_code, detail=event_id) - return {"event_id": event_id} - - @app.get("/call/{api_name}/{event_id}", dependencies=[Depends(login_check)]) - async def simple_predict_get( - request: fastapi.Request, - event_id: str, - ): - def process_msg(message: EventMessage) -> str | None: - if isinstance(message, ProcessCompletedMessage): - event = "complete" if message.success else "error" - data = message.output.get("data") - elif isinstance(message, ProcessGeneratingMessage): - event = "generating" if message.success else "error" - data = message.output.get("data") - elif isinstance(message, HeartbeatMessage): - event = "heartbeat" - data = None - elif isinstance(message, UnexpectedErrorMessage): - event = "error" - data = message.message - else: - return None - return f"event: {event}\ndata: {json.dumps(data)}\n\n" - - return await queue_data_helper(request, event_id, process_msg) - - @app.get("/queue/data", dependencies=[Depends(login_check)]) - async def queue_data( - request: fastapi.Request, - session_hash: str, - ): - def process_msg(message: EventMessage) -> str: - return f"data: {json.dumps(message.model_dump())}\n\n" - - return await queue_data_helper(request, session_hash, process_msg) - - async def queue_data_helper( - request: fastapi.Request, - session_hash: str, - process_msg: Callable[[EventMessage], str | None], - ): - blocks = app.get_blocks() - - async def sse_stream(request: fastapi.Request): - try: - last_heartbeat = time.perf_counter() - while True: - if await request.is_disconnected(): - await blocks._queue.clean_events(session_hash=session_hash) - return - - if ( - session_hash - not in blocks._queue.pending_messages_per_session - ): - raise HTTPException( - status_code=status.HTTP_404_NOT_FOUND, - detail="Session not found.", - ) - - heartbeat_rate = 15 - check_rate = 0.05 - message = None - try: - messages = blocks._queue.pending_messages_per_session[ - session_hash - ] - message = messages.get_nowait() - except EmptyQueue: - await asyncio.sleep(check_rate) - if time.perf_counter() - last_heartbeat > heartbeat_rate: - # Fix this - message = HeartbeatMessage() - # Need to reset last_heartbeat with perf_counter - # otherwise only a single hearbeat msg will be sent - # and then the stream will retry leading to infinite queue 😬 - last_heartbeat = time.perf_counter() - - if blocks._queue.stopped: - message = UnexpectedErrorMessage( - message="Server stopped unexpectedly.", - success=False, - ) - if message: - response = process_msg(message) - if response is not None: - yield response - if ( - isinstance(message, ProcessCompletedMessage) - and message.event_id - ): - blocks._queue.pending_event_ids_session[ - session_hash - ].remove(message.event_id) - if message.msg == ServerMessage.server_stopped or ( - message.msg == ServerMessage.process_completed - and ( - len( - blocks._queue.pending_event_ids_session[ - session_hash - ] - ) - == 0 - ) - ): - return - except BaseException as e: - message = UnexpectedErrorMessage( - message=str(e), - ) - response = process_msg(message) - if response is not None: - yield response - if isinstance(e, asyncio.CancelledError): - del blocks._queue.pending_messages_per_session[session_hash] - await blocks._queue.clean_events(session_hash=session_hash) - raise e - - return StreamingResponse( - sse_stream(request), - media_type="text/event-stream", - ) - - @app.post("/component_server", dependencies=[Depends(login_check)]) - @app.post("/component_server/", dependencies=[Depends(login_check)]) - def component_server(body: ComponentServerBody): - state = app.state_holder[body.session_hash] - component_id = body.component_id - block: Block - if component_id in state: - block = state[component_id] + set_task_name(task, event.session_hash, event.fn_index, batch=False) else: - block = app.get_blocks().blocks[component_id] - fn = getattr(block, body.fn_name, None) - if fn is None or not getattr(fn, "_is_server_fn", False): - raise HTTPException( - status_code=status.HTTP_404_NOT_FOUND, - detail="Function not found.", - ) - return fn(body.data) + rank = app.blocks._queue.push(event) + + if rank is None: + await app.blocks._queue.send_message(event, {"msg": "queue_full"}) + await event.disconnect() + return + estimation = app.blocks._queue.get_estimation() + await app.blocks._queue.send_estimation(event, estimation, rank) + while True: + await asyncio.sleep(60) + if websocket.application_state == WebSocketState.DISCONNECTED: + return @app.get( "/queue/status", dependencies=[Depends(login_check)], - response_model=EstimationMessage, + response_model=Estimation, ) async def get_queue_status(): - return app.get_blocks()._queue.get_status() - - @app.get("/upload_progress") - def get_upload_progress(upload_id: str, request: fastapi.Request): - async def sse_stream(request: fastapi.Request): - last_heartbeat = time.perf_counter() - is_done = False - while True: - if await request.is_disconnected(): - file_upload_statuses.stop_tracking(upload_id) - return - if is_done: - file_upload_statuses.stop_tracking(upload_id) - return - - heartbeat_rate = 15 - check_rate = 0.05 - try: - if file_upload_statuses.is_done(upload_id): - message = {"msg": "done"} - is_done = True - else: - update = file_upload_statuses.pop(upload_id) - message = { - "msg": "update", - "orig_name": update.filename, - "chunk_size": update.chunk_size, - } - yield f"data: {json.dumps(message)}\n\n" - except FileUploadProgressNotTrackedError: - return - except FileUploadProgressNotQueuedError: - await asyncio.sleep(check_rate) - if time.perf_counter() - last_heartbeat > heartbeat_rate: - message = {"msg": "heartbeat"} - yield f"data: {json.dumps(message)}\n\n" - last_heartbeat = time.perf_counter() - - return StreamingResponse( - sse_stream(request), - media_type="text/event-stream", - ) + return app.blocks._queue.get_estimation() - @app.post("/upload", dependencies=[Depends(login_check)]) - async def upload_file( - request: fastapi.Request, - bg_tasks: BackgroundTasks, - upload_id: Optional[str] = None, - ): - content_type_header = request.headers.get("Content-Type") - content_type: bytes - content_type, _ = parse_options_header(content_type_header or "") - if content_type != b"multipart/form-data": - raise HTTPException(status_code=400, detail="Invalid content type.") - - try: - if upload_id: - file_upload_statuses.track(upload_id) - multipart_parser = GradioMultiPartParser( - request.headers, - request.stream(), - max_files=1000, - max_fields=1000, - upload_id=upload_id if upload_id else None, - upload_progress=file_upload_statuses if upload_id else None, - ) - form = await multipart_parser.parse() - except MultiPartException as exc: - raise HTTPException(status_code=400, detail=exc.message) from exc - - output_files = [] - files_to_copy = [] - locations: list[str] = [] - for temp_file in form.getlist("files"): - if not isinstance(temp_file, GradioUploadFile): - raise TypeError("File is not an instance of GradioUploadFile") - if temp_file.filename: - file_name = Path(temp_file.filename).name - name = client_utils.strip_invalid_filename_characters(file_name) - else: - name = f"tmp{secrets.token_hex(5)}" - directory = Path(app.uploaded_file_dir) / temp_file.sha.hexdigest() - directory.mkdir(exist_ok=True, parents=True) - dest = (directory / name).resolve() - temp_file.file.close() - # we need to move the temp file to the cache directory - # but that's possibly blocking and we're in an async function - # so we try to rename (this is what shutil.move tries first) - # which should be super fast. - # if that fails, we move in the background. - try: - os.rename(temp_file.file.name, dest) - except OSError: - files_to_copy.append(temp_file.file.name) - locations.append(str(dest)) - output_files.append(dest) - blocks.upload_file_set.add(str(dest)) - if files_to_copy: - bg_tasks.add_task( - move_uploaded_files_to_cache, files_to_copy, locations - ) - return output_files - - @app.on_event("startup") @app.get("/startup-events") async def startup_events(): if not app.startup_events_triggered: - app.get_blocks().startup_events() + app.blocks.startup_events() app.startup_events_triggered = True return True return False - @app.get("/theme.css", response_class=PlainTextResponse) - def theme_css(): - return PlainTextResponse(app.get_blocks().theme_css, media_type="text/css") - @app.get("/robots.txt", response_class=PlainTextResponse) def robots_txt(): - if app.get_blocks().share: + if app.blocks.share: return "User-agent: *\nDisallow: /" else: return "User-agent: *\nDisallow: " @@ -965,39 +471,31 @@ class App(FastAPI): ######## -def safe_join(directory: str, path: str) -> str: +def safe_join(directory: str, path: str) -> Optional[str]: """Safely path to a base directory to avoid escaping the base directory. Borrowed from: werkzeug.security.safe_join""" - _os_alt_seps: List[str] = [ + _os_alt_seps: List[str] = list( sep for sep in [os.path.sep, os.path.altsep] if sep is not None and sep != "/" - ] - - if path == "": - raise HTTPException(400) - if route_utils.starts_with_protocol(path): - raise HTTPException(403) - filename = posixpath.normpath(path) - fullpath = os.path.join(directory, filename) + ) + + if path != "": + filename = posixpath.normpath(path) + if ( any(sep in filename for sep in _os_alt_seps) or os.path.isabs(filename) or filename == ".." or filename.startswith("../") - or os.path.isdir(fullpath) ): - raise HTTPException(403) - - if not os.path.exists(fullpath): - raise HTTPException(404, "File not found") - - return fullpath + return None + return posixpath.join(directory, filename) def get_types(cls_set: List[Type]): docset = [] types = [] for cls in cls_set: - doc = inspect.getdoc(cls) or "" + doc = inspect.getdoc(cls) doc_lines = doc.split("\n") for line in doc_lines: if "value (" in line: @@ -1006,14 +504,80 @@ def get_types(cls_set: List[Type]): return docset, types +def get_server_url_from_ws_url(ws_url: str): + ws_url = urlparse(ws_url) + scheme = "http" if ws_url.scheme == "ws" else "https" + port = f":{ws_url.port}" if ws_url.port else "" + return f"{scheme}://{ws_url.hostname}{port}{ws_url.path.replace('queue/join', '')}" + + +set_documentation_group("routes") + + +class Obj: + """ + Using a class to convert dictionaries into objects. Used by the `Request` class. + Credit: https://www.geeksforgeeks.org/convert-nested-python-dictionary-to-object/ + """ + + def __init__(self, dict1): + self.__dict__.update(dict1) + + def __str__(self) -> str: + return str(self.__dict__) + + def __repr__(self) -> str: + return str(self.__dict__) + + +@document() +class Request: + """ + A Gradio request object that can be used to access the request headers, cookies, + query parameters and other information about the request from within the prediction + function. The class is a thin wrapper around the fastapi.Request class. Attributes + of this class include: `headers`, `client`, `query_params`, and `path_params`, + + Example: + import gradio as gr + def echo(name, request: gr.Request): + print("Request headers dictionary:", request.headers) + print("IP address:", request.client.host) + return name + io = gr.Interface(echo, "textbox", "textbox").launch() + """ + + def __init__(self, request: fastapi.Request | None = None, **kwargs): + """ + Can be instantiated with either a fastapi.Request or by manually passing in + attributes (needed for websocket-based queueing). + """ + self.request: fastapi.Request = request + self.kwargs: Dict = kwargs + + def dict_to_obj(self, d): + if isinstance(d, dict): + return json.loads(json.dumps(d), object_hook=Obj) + else: + return d + + def __getattr__(self, name): + if self.request: + return self.dict_to_obj(getattr(self.request, name)) + else: + try: + obj = self.kwargs[name] + except KeyError: + raise AttributeError(f"'Request' object has no attribute '{name}'") + return self.dict_to_obj(obj) + + @document() def mount_gradio_app( app: fastapi.FastAPI, blocks: gradio.Blocks, path: str, - app_kwargs: dict[str, Any] | None = None, - *, - auth_dependency: Callable[[fastapi.Request], str | None] | None = None, + gradio_api_url: Optional[str] = None, ) -> fastapi.FastAPI: """Mount a gradio.Blocks to an existing FastAPI application. @@ -1021,8 +585,7 @@ def mount_gradio_app( app: The parent FastAPI application. blocks: The blocks object we want to mount to the parent app. path: The path at which the gradio application will be mounted. - app_kwargs: Additional keyword arguments to pass to the underlying FastAPI app as a dictionary of parameter keys and argument values. For example, `{"docs_url": "/docs"}` - auth_dependency: A function that takes a FastAPI request and returns a string user ID or None. If the function returns None for a specific request, that user is not authorized to access the app (they will see a 401 Unauthorized response). To be used with external authentication systems like OAuth. + gradio_api_url: The full url at which the gradio app will run. This is only needed if deploying to Huggingface spaces of if the websocket endpoints of your deployed app are on a different network location than the gradio app. If deploying to spaces, set gradio_api_url to 'http://localhost:7860/' Example: from fastapi import FastAPI import gradio as gr @@ -1036,22 +599,14 @@ def mount_gradio_app( """ blocks.dev_mode = False blocks.config = blocks.get_config_file() - blocks.validate_queue_settings() - gradio_app = App.create_app( - blocks, app_kwargs=app_kwargs, auth_dependency=auth_dependency - ) - - old_lifespan = app.router.lifespan_context - - @contextlib.asynccontextmanager - async def new_lifespan(app: FastAPI): - async with old_lifespan( - app - ): # Instert the startup events inside the FastAPI context manager - gradio_app.get_blocks().startup_events() - yield - - app.router.lifespan_context = new_lifespan + gradio_app = App.create_app(blocks) + + @app.on_event("startup") + async def start_queue(): + if gradio_app.blocks.enable_queue: + if gradio_api_url: + gradio_app.blocks._queue.set_url(gradio_api_url) + gradio_app.blocks.startup_events() app.mount(path, gradio_app) return app diff --git a/gtm/lib/python3.12/site-packages/gradio/serializing.py b/gtm/lib/python3.12/site-packages/gradio/serializing.py new file mode 100644 index 0000000000000000000000000000000000000000..78714141db721eccd128ac92dad5ff9170909f17 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/serializing.py @@ -0,0 +1,189 @@ +from __future__ import annotations + +import os +from abc import ABC, abstractmethod +from pathlib import Path +from typing import Any, Dict + +from gradio import processing_utils, utils + + +class Serializable(ABC): + @abstractmethod + def serialize( + self, x: Any, load_dir: str = "", encryption_key: bytes | None = None + ): + """ + Convert data from human-readable format to serialized format for a browser. + """ + pass + + @abstractmethod + def deserialize( + x: Any, save_dir: str | None = None, encryption_key: bytes | None = None + ): + """ + Convert data from serialized format for a browser to human-readable format. + """ + pass + + +class SimpleSerializable(Serializable): + def serialize( + self, x: Any, load_dir: str = "", encryption_key: bytes | None = None + ) -> Any: + """ + Convert data from human-readable format to serialized format. For SimpleSerializable components, this is a no-op. + Parameters: + x: Input data to serialize + load_dir: Ignored + encryption_key: Ignored + """ + return x + + def deserialize( + self, x: Any, save_dir: str | None = None, encryption_key: bytes | None = None + ): + """ + Convert data from serialized format to human-readable format. For SimpleSerializable components, this is a no-op. + Parameters: + x: Input data to deserialize + save_dir: Ignored + encryption_key: Ignored + """ + return x + + +class ImgSerializable(Serializable): + def serialize( + self, x: str, load_dir: str = "", encryption_key: bytes | None = None + ) -> str: + """ + Convert from human-friendly version of a file (string filepath) to a seralized + representation (base64). + Parameters: + x: String path to file to serialize + load_dir: Path to directory containing x + encryption_key: Used to encrypt the file + """ + if x is None or x == "": + return None + return processing_utils.encode_url_or_file_to_base64( + os.path.join(load_dir, x), encryption_key=encryption_key + ) + + def deserialize( + self, x: str, save_dir: str | None = None, encryption_key: bytes | None = None + ) -> str: + """ + Convert from serialized representation of a file (base64) to a human-friendly + version (string filepath). Optionally, save the file to the directory specified by save_dir + Parameters: + x: Base64 representation of image to deserialize into a string filepath + save_dir: Path to directory to save the deserialized image to + encryption_key: Used to decrypt the file + """ + if x is None or x == "": + return None + file = processing_utils.decode_base64_to_file( + x, dir=save_dir, encryption_key=encryption_key + ) + return file.name + + +class FileSerializable(Serializable): + def serialize( + self, x: str | None, load_dir: str = "", encryption_key: bytes | None = None + ) -> Any: + """ + Convert from human-friendly version of a file (string filepath) to a + seralized representation (base64) + Parameters: + x: String path to file to serialize + load_dir: Path to directory containing x + encryption_key: Used to encrypt the file + """ + if x is None or x == "": + return None + filename = os.path.join(load_dir, x) + return { + "name": filename, + "data": processing_utils.encode_url_or_file_to_base64( + filename, encryption_key=encryption_key + ), + "orig_name": Path(filename).name, + "is_file": False, + } + + def deserialize( + self, + x: str | Dict | None, + save_dir: str | None = None, + encryption_key: bytes | None = None, + ): + """ + Convert from serialized representation of a file (base64) to a human-friendly + version (string filepath). Optionally, save the file to the directory specified by `save_dir` + Parameters: + x: Base64 representation of file to deserialize into a string filepath + save_dir: Path to directory to save the deserialized file to + encryption_key: Used to decrypt the file + """ + if x is None: + return None + if isinstance(x, str): + file_name = processing_utils.decode_base64_to_file( + x, dir=save_dir, encryption_key=encryption_key + ).name + elif isinstance(x, dict): + if x.get("is_file", False): + if utils.validate_url(x["name"]): + file_name = x["name"] + else: + file_name = processing_utils.create_tmp_copy_of_file( + x["name"], dir=save_dir + ).name + else: + file_name = processing_utils.decode_base64_to_file( + x["data"], dir=save_dir, encryption_key=encryption_key + ).name + else: + raise ValueError( + f"A FileSerializable component cannot only deserialize a string or a dict, not a: {type(x)}" + ) + return file_name + + +class JSONSerializable(Serializable): + def serialize( + self, x: str, load_dir: str = "", encryption_key: bytes | None = None + ) -> str: + """ + Convert from a a human-friendly version (string path to json file) to a + serialized representation (json string) + Parameters: + x: String path to json file to read to get json string + load_dir: Path to directory containing x + encryption_key: Ignored + """ + if x is None or x == "": + return None + return processing_utils.file_to_json(os.path.join(load_dir, x)) + + def deserialize( + self, + x: str | Dict, + save_dir: str | None = None, + encryption_key: bytes | None = None, + ) -> str: + """ + Convert from serialized representation (json string) to a human-friendly + version (string path to json file). Optionally, save the file to the directory specified by `save_dir` + Parameters: + x: Json string + save_dir: Path to save the deserialized json file to + encryption_key: Ignored + """ + if x is None: + return None + return processing_utils.dict_or_str_to_json_file(x, dir=save_dir).name diff --git a/gtm/lib/python3.12/site-packages/gradio/strings.py b/gtm/lib/python3.12/site-packages/gradio/strings.py index ab0da99b5114eefecdd09cb8346e379f59ff8016..24f6f538e4c0238c3416e56e368812134776c6e6 100644 --- a/gtm/lib/python3.12/site-packages/gradio/strings.py +++ b/gtm/lib/python3.12/site-packages/gradio/strings.py @@ -1,41 +1,44 @@ -import requests import json +import requests MESSAGING_API_ENDPOINT = "https://api.gradio.app/gradio-messaging/en" -en = { - "BETA_MESSAGE": "NOTE: Gradio is in beta stage, please report all bugs to: gradio.app@gmail.com", - "RUNNING_LOCALLY": "Running locally at: {}", - "NGROK_NO_INTERNET": "Unable to create public link for interface, please check internet connection or try " - "restarting python interpreter.", +en = { + "RUNNING_LOCALLY": "Running on local URL: {}", + "RUNNING_LOCALLY_SEPARATED": "Running on local URL: {}://{}:{}", + "SHARE_LINK_DISPLAY": "Running on public URL: {}", + "COULD_NOT_GET_SHARE_LINK": "\nCould not create share link, please check your internet connection.", "COLAB_NO_LOCAL": "Cannot display local interface on google colab, public link created.", - "PUBLIC_SHARE_TRUE": "To create a public link, set `share=True` in `launch()`.", + "PUBLIC_SHARE_TRUE": "\nTo create a public link, set `share=True` in `launch()`.", "MODEL_PUBLICLY_AVAILABLE_URL": "Model available publicly at: {} (may take up to a minute for link to be usable)", "GENERATING_PUBLIC_LINK": "Generating public link (may take a few seconds...):", "TF1_ERROR": "It looks like you might be using tensorflow < 2.0. Please pass capture_session=True in Interface() to" - " avoid the 'Tensor is not an element of this graph.' error.", - "BETA_INVITE": "\nWe want to invite you to become a beta user.\nYou'll get early access to new and premium " - "features (persistent links, hosting, and more).\nIf you're interested please email beta@gradio.app\n", + " avoid the 'Tensor is not an element of this graph.' error.", + "BETA_INVITE": "\nThanks for being a Gradio user! If you have questions or feedback, please join our Discord server and chat with us: https://discord.gg/feTf9x3ZSB", "COLAB_DEBUG_TRUE": "Colab notebook detected. This cell will run indefinitely so that you can see errors and logs. " - "To turn off, set debug=False in launch().", + "To turn off, set debug=False in launch().", "COLAB_DEBUG_FALSE": "Colab notebook detected. To show errors in colab notebook, set debug=True in launch()", - "SHARE_LINK_MESSAGE": "This share link will expire in 24 hours. If you need a permanent link, visit: https://gradio.app/introducing-hosted (NEW!)", + "COLAB_WARNING": "Note: opening Chrome Inspector may crash demo inside Colab notebooks.", + "SHARE_LINK_MESSAGE": "\nThis share link expires in 72 hours. For free permanent hosting and GPU upgrades (NEW!), check out Spaces: https://huggingface.co/spaces", "PRIVATE_LINK_MESSAGE": "Since this is a private endpoint, this share link will never expire.", - "SHARE_LINK_DISPLAY": "Running on External URL: {}", "INLINE_DISPLAY_BELOW": "Interface loading below...", - "MEDIA_PERMISSIONS_IN_COLAB": "Your interface requires microphone or webcam permissions - this may cause issues in Colab. Use the External URL in case of issues.", "TIPS": [ - "You can add authentication to your app with the auth= kwarg in the launch command; for example: gr.Interface(...).launch(auth=('username', 'password'))", - "Let users specify why they flagged input with the flagging_options= kwarg; for example: gr.Interface(..., flagging_options=['too slow', 'incorrect output', 'other'])", - "You can show or hide the buttons for flagging, screenshots, and interpretation with the allow_*= kwargs; for example: gr.Interface(..., allow_screenshot=True, allow_flagging=False)", + "You can add authentication to your app with the `auth=` kwarg in the `launch()` command; for example: `gr.Interface(...).launch(auth=('username', 'password'))`", + "Let users specify why they flagged input with the `flagging_options=` kwarg; for example: `gr.Interface(..., flagging_options=['too slow', 'incorrect output', 'other'])`", + "You can show or hide the button for flagging with the `allow_flagging=` kwarg; for example: gr.Interface(..., allow_flagging=False)", "The inputs and outputs flagged by the users are stored in the flagging directory, specified by the flagging_dir= kwarg. You can view this data through the interface by setting the examples= kwarg to the flagging directory; for example gr.Interface(..., examples='flagged')", - "You can add a title and description to your interface using the title= and description= kwargs. The article= kwarg can be used to add markdown or HTML under the interface; for example gr.Interface(..., title='My app', description='Lorem ipsum')" - ] + "You can add a title and description to your interface using the `title=` and `description=` kwargs. The `article=` kwarg can be used to add a description under the interface; for example gr.Interface(..., title='My app', description='Lorem ipsum'). Try using Markdown!", + "For a classification or regression model, set `interpretation='default'` to see why the model made a prediction.", + ], } try: updated_messaging = requests.get(MESSAGING_API_ENDPOINT, timeout=3).json() en.update(updated_messaging) -except (requests.ConnectionError, requests.exceptions.ReadTimeout, json.decoder.JSONDecodeError): # Use default messaging +except ( + requests.ConnectionError, + requests.exceptions.ReadTimeout, + json.decoder.JSONDecodeError, +): # Use default messaging pass diff --git a/gtm/lib/python3.12/site-packages/gradio/templates.py b/gtm/lib/python3.12/site-packages/gradio/templates.py index 0c5f5a1a30c9e8afb48dfde7d7a1254138dd6a98..56758dd791d341fb596523f78f134a9a3e2082cc 100644 --- a/gtm/lib/python3.12/site-packages/gradio/templates.py +++ b/gtm/lib/python3.12/site-packages/gradio/templates.py @@ -1,14 +1,12 @@ from __future__ import annotations -from pathlib import Path -from typing import Any, Callable, Iterable, Literal +import typing +from typing import Any, Callable, Optional, Tuple import numpy as np -import PIL.Image +import PIL from gradio import components -from gradio.components.audio import WaveformOptions -from gradio.components.image_editor import Brush, Eraser class TextArea(components.Textbox): @@ -20,29 +18,17 @@ class TextArea(components.Textbox): def __init__( self, - value: str | Callable | None = "", + value: Optional[str | Callable] = "", *, lines: int = 7, max_lines: int = 20, - placeholder: str | None = None, - label: str | None = None, - info: str | None = None, - every: float | None = None, - show_label: bool | None = None, - container: bool = True, - scale: int | None = None, - min_width: int = 160, - interactive: bool | None = None, + placeholder: Optional[str] = None, + label: Optional[str] = None, + show_label: bool = True, + interactive: Optional[bool] = None, visible: bool = True, - elem_id: str | None = None, - autofocus: bool = False, - autoscroll: bool = True, - elem_classes: list[str] | str | None = None, - render: bool = True, - type: Literal["text", "password", "email"] = "text", - text_align: Literal["left", "right"] | None = None, - rtl: bool = False, - show_copy_button: bool = False, + elem_id: Optional[str] = None, + **kwargs, ): super().__init__( value=value, @@ -50,232 +36,281 @@ class TextArea(components.Textbox): max_lines=max_lines, placeholder=placeholder, label=label, - info=info, - every=every, show_label=show_label, - container=container, - scale=scale, - min_width=min_width, interactive=interactive, visible=visible, elem_id=elem_id, - autofocus=autofocus, - autoscroll=autoscroll, - elem_classes=elem_classes, - render=render, + **kwargs, + ) + + +class Webcam(components.Image): + """ + Sets: source="webcam", interactive=True + """ + + is_template = True + + def __init__( + self, + value: Optional[str | PIL.Image | np.narray] = None, + *, + shape: Tuple[int, int] = None, + image_mode: str = "RGB", + invert_colors: bool = False, + source: str = "webcam", + tool: str = None, + type: str = "numpy", + label: Optional[str] = None, + show_label: bool = True, + interactive: Optional[bool] = True, + visible: bool = True, + streaming: bool = False, + elem_id: Optional[str] = None, + mirror_webcam: bool = True, + **kwargs, + ): + super().__init__( + value=value, + shape=shape, + image_mode=image_mode, + invert_colors=invert_colors, + source=source, + tool=tool, + type=type, + label=label, + show_label=show_label, + interactive=interactive, + visible=visible, + streaming=streaming, + elem_id=elem_id, + mirror_webcam=mirror_webcam, + **kwargs, + ) + + +class Sketchpad(components.Image): + """ + Sets: image_mode="L", source="canvas", shape=(28, 28), invert_colors=True, interactive=True + """ + + is_template = True + + def __init__( + self, + value: Optional[str | PIL.Image | np.narray] = None, + *, + shape: Tuple[int, int] = (28, 28), + image_mode: str = "L", + invert_colors: bool = True, + source: str = "canvas", + tool: str = None, + type: str = "numpy", + label: Optional[str] = None, + show_label: bool = True, + interactive: Optional[bool] = True, + visible: bool = True, + streaming: bool = False, + elem_id: Optional[str] = None, + mirror_webcam: bool = True, + **kwargs, + ): + super().__init__( + value=value, + shape=shape, + image_mode=image_mode, + invert_colors=invert_colors, + source=source, + tool=tool, type=type, - text_align=text_align, - rtl=rtl, - show_copy_button=show_copy_button, + label=label, + show_label=show_label, + interactive=interactive, + visible=visible, + streaming=streaming, + elem_id=elem_id, + mirror_webcam=mirror_webcam, + **kwargs, ) -class Sketchpad(components.ImageEditor): +class Paint(components.Image): """ - Sets: sources=(), brush=Brush(colors=["#000000"], color_mode="fixed") + Sets: source="canvas", tool="color-sketch", interactive=True """ is_template = True def __init__( self, - value: str | PIL.Image.Image | np.ndarray | None = None, + value: Optional[str | PIL.Image | np.narray] = None, *, - height: int | str | None = None, - width: int | str | None = None, - image_mode: Literal[ - "1", "L", "P", "RGB", "RGBA", "CMYK", "YCbCr", "LAB", "HSV", "I", "F" - ] = "RGBA", - sources: Iterable[Literal["upload", "webcam", "clipboard"]] = (), - type: Literal["numpy", "pil", "filepath"] = "numpy", - label: str | None = None, - every: float | None = None, - show_label: bool | None = None, - show_download_button: bool = True, - container: bool = True, - scale: int | None = None, - min_width: int = 160, - interactive: bool | None = None, + shape: Tuple[int, int] = None, + image_mode: str = "RGB", + invert_colors: bool = False, + source: str = "canvas", + tool: str = "color-sketch", + type: str = "numpy", + label: Optional[str] = None, + show_label: bool = True, + interactive: Optional[bool] = True, visible: bool = True, - elem_id: str | None = None, - elem_classes: list[str] | str | None = None, - render: bool = True, + streaming: bool = False, + elem_id: Optional[str] = None, mirror_webcam: bool = True, - show_share_button: bool | None = None, - _selectable: bool = False, - crop_size: tuple[int | float, int | float] | str | None = None, - transforms: Iterable[Literal["crop"]] = ("crop",), - eraser: Eraser | None = None, - brush: Brush | None = None, + **kwargs, ): - if not brush: - brush = Brush(colors=["#000000"], color_mode="fixed") super().__init__( value=value, - height=height, - width=width, + shape=shape, image_mode=image_mode, - sources=sources, + invert_colors=invert_colors, + source=source, + tool=tool, type=type, label=label, - every=every, show_label=show_label, - show_download_button=show_download_button, - container=container, - scale=scale, - min_width=min_width, interactive=interactive, visible=visible, + streaming=streaming, elem_id=elem_id, - elem_classes=elem_classes, - render=render, mirror_webcam=mirror_webcam, - show_share_button=show_share_button, - _selectable=_selectable, - crop_size=crop_size, - transforms=transforms, - eraser=eraser, - brush=brush, + **kwargs, ) -class Paint(components.ImageEditor): +class ImageMask(components.Image): """ - Sets: sources=() + Sets: source="upload", tool="sketch", interactive=True """ is_template = True def __init__( self, - value: str | PIL.Image.Image | np.ndarray | None = None, + value: Optional[str | PIL.Image | np.narray] = None, *, - height: int | str | None = None, - width: int | str | None = None, - image_mode: Literal[ - "1", "L", "P", "RGB", "RGBA", "CMYK", "YCbCr", "LAB", "HSV", "I", "F" - ] = "RGBA", - sources: Iterable[Literal["upload", "webcam", "clipboard"]] = (), - type: Literal["numpy", "pil", "filepath"] = "numpy", - label: str | None = None, - every: float | None = None, - show_label: bool | None = None, - show_download_button: bool = True, - container: bool = True, - scale: int | None = None, - min_width: int = 160, - interactive: bool | None = None, + shape: Tuple[int, int] = None, + image_mode: str = "RGB", + invert_colors: bool = False, + source: str = "upload", + tool: str = "sketch", + type: str = "numpy", + label: Optional[str] = None, + show_label: bool = True, + interactive: Optional[bool] = True, visible: bool = True, - elem_id: str | None = None, - elem_classes: list[str] | str | None = None, - render: bool = True, + streaming: bool = False, + elem_id: Optional[str] = None, mirror_webcam: bool = True, - show_share_button: bool | None = None, - _selectable: bool = False, - crop_size: tuple[int | float, int | float] | str | None = None, - transforms: Iterable[Literal["crop"]] = ("crop",), - eraser: Eraser | None = None, - brush: Brush | None = None, + **kwargs, ): super().__init__( value=value, - height=height, - width=width, + shape=shape, image_mode=image_mode, - sources=sources, + invert_colors=invert_colors, + source=source, + tool=tool, type=type, label=label, - every=every, show_label=show_label, - show_download_button=show_download_button, - container=container, - scale=scale, - min_width=min_width, interactive=interactive, visible=visible, + streaming=streaming, elem_id=elem_id, - elem_classes=elem_classes, - render=render, mirror_webcam=mirror_webcam, - show_share_button=show_share_button, - _selectable=_selectable, - crop_size=crop_size, - transforms=transforms, - eraser=eraser, - brush=brush, + **kwargs, ) -class ImageMask(components.ImageEditor): +class ImagePaint(components.Image): """ - Sets: brush=Brush(colors=["#000000"], color_mode="fixed") + Sets: source="upload", tool="color-sketch", interactive=True """ is_template = True def __init__( self, - value: str | PIL.Image.Image | np.ndarray | None = None, + value: Optional[str | PIL.Image | np.narray] = None, *, - height: int | None = None, - width: int | str | None = None, - image_mode: Literal[ - "1", "L", "P", "RGB", "RGBA", "CMYK", "YCbCr", "LAB", "HSV", "I", "F" - ] = "RGBA", - sources: Iterable[Literal["upload", "webcam", "clipboard"]] = ( - "upload", - "webcam", - "clipboard", - ), - type: Literal["numpy", "pil", "filepath"] = "numpy", - label: str | None = None, - every: float | None = None, - show_label: bool | None = None, - show_download_button: bool = True, - container: bool = True, - scale: int | None = None, - min_width: int = 160, - interactive: bool | None = None, + shape: Tuple[int, int] = None, + image_mode: str = "RGB", + invert_colors: bool = False, + source: str = "upload", + tool: str = "color-sketch", + type: str = "numpy", + label: Optional[str] = None, + show_label: bool = True, + interactive: Optional[bool] = True, visible: bool = True, - elem_id: str | None = None, - elem_classes: list[str] | str | None = None, - render: bool = True, + streaming: bool = False, + elem_id: Optional[str] = None, mirror_webcam: bool = True, - show_share_button: bool | None = None, - _selectable: bool = False, - crop_size: tuple[int | float, int | float] | str | None = None, - transforms: Iterable[Literal["crop"]] = ("crop",), - eraser: Eraser | None = None, - brush: Brush | None = None, + **kwargs, ): - if not brush: - brush = Brush(colors=["#000000"], color_mode="fixed") super().__init__( value=value, - height=height, - width=width, + shape=shape, image_mode=image_mode, - sources=sources, + invert_colors=invert_colors, + source=source, + tool=tool, type=type, label=label, - every=every, show_label=show_label, - show_download_button=show_download_button, - container=container, - scale=scale, - min_width=min_width, interactive=interactive, visible=visible, + streaming=streaming, elem_id=elem_id, - elem_classes=elem_classes, - render=render, mirror_webcam=mirror_webcam, - show_share_button=show_share_button, - _selectable=_selectable, - crop_size=crop_size, - transforms=transforms, - eraser=eraser, - brush=brush, + **kwargs, + ) + + +class Pil(components.Image): + """ + Sets: type="pil" + """ + + is_template = True + + def __init__( + self, + value: Optional[str | PIL.Image | np.narray] = None, + *, + shape: Tuple[int, int] = None, + image_mode: str = "RGB", + invert_colors: bool = False, + source: str = "upload", + tool: str = None, + type: str = "pil", + label: Optional[str] = None, + show_label: bool = True, + interactive: Optional[bool] = None, + visible: bool = True, + streaming: bool = False, + elem_id: Optional[str] = None, + mirror_webcam: bool = True, + **kwargs, + ): + super().__init__( + value=value, + shape=shape, + image_mode=image_mode, + invert_colors=invert_colors, + source=source, + tool=tool, + type=type, + label=label, + show_label=show_label, + interactive=interactive, + visible=visible, + streaming=streaming, + elem_id=elem_id, + mirror_webcam=mirror_webcam, + **kwargs, ) @@ -288,122 +323,64 @@ class PlayableVideo(components.Video): def __init__( self, - value: str - | Path - | tuple[str | Path, str | Path | None] - | Callable - | None = None, + value: Optional[str | Callable] = None, *, - format: Literal["mp4"] = "mp4", - sources: list[Literal["upload", "webcam"]] | None = None, - height: int | str | None = None, - width: int | str | None = None, - label: str | None = None, - every: float | None = None, - show_label: bool | None = None, - container: bool = True, - scale: int | None = None, - min_width: int = 160, - interactive: bool | None = None, + format: Optional[str] = "mp4", + source: str = "upload", + label: Optional[str] = None, + show_label: bool = True, + interactive: Optional[bool] = None, visible: bool = True, - elem_id: str | None = None, - elem_classes: list[str] | str | None = None, - render: bool = True, + elem_id: Optional[str] = None, mirror_webcam: bool = True, - include_audio: bool | None = None, - autoplay: bool = False, - show_share_button: bool | None = None, - show_download_button: bool | None = None, - min_length: int | None = None, - max_length: int | None = None, + **kwargs, ): - sources = ["upload"] super().__init__( value=value, format=format, - sources=sources, # type: ignore - height=height, - width=width, + source=source, label=label, - every=every, show_label=show_label, - container=container, - scale=scale, - min_width=min_width, interactive=interactive, visible=visible, elem_id=elem_id, - elem_classes=elem_classes, - render=render, mirror_webcam=mirror_webcam, - include_audio=include_audio, - autoplay=autoplay, - show_share_button=show_share_button, - show_download_button=show_download_button, - min_length=min_length, - max_length=max_length, + **kwargs, ) class Microphone(components.Audio): """ - Sets: sources=["microphone"] + Sets: source="microphone" """ is_template = True def __init__( self, - value: str | Path | tuple[int, np.ndarray] | Callable | None = None, + value: Optional[str | Tuple[int, np.array] | Callable] = None, *, - sources: list[Literal["upload", "microphone"]] | None = None, - type: Literal["numpy", "filepath"] = "numpy", - label: str | None = None, - every: float | None = None, - show_label: bool | None = None, - container: bool = True, - scale: int | None = None, - min_width: int = 160, - interactive: bool | None = None, + source: str = "microphone", + type: str = "numpy", + label: Optional[str] = None, + show_label: bool = True, + interactive: Optional[bool] = None, visible: bool = True, streaming: bool = False, - elem_id: str | None = None, - elem_classes: list[str] | str | None = None, - render: bool = True, - format: Literal["wav", "mp3"] = "wav", - autoplay: bool = False, - show_download_button: bool | None = None, - show_share_button: bool | None = None, - editable: bool = True, - min_length: int | None = None, - max_length: int | None = None, - waveform_options: WaveformOptions | dict | None = None, + elem_id: Optional[str] = None, + **kwargs, ): - sources = ["microphone"] super().__init__( - value, - sources=sources, + value=value, + source=source, type=type, label=label, - every=every, show_label=show_label, - container=container, - scale=scale, - min_width=min_width, interactive=interactive, visible=visible, streaming=streaming, elem_id=elem_id, - elem_classes=elem_classes, - render=render, - format=format, - autoplay=autoplay, - show_download_button=show_download_button, - show_share_button=show_share_button, - editable=editable, - min_length=min_length, - max_length=max_length, - waveform_options=waveform_options, + **kwargs, ) @@ -416,41 +393,27 @@ class Files(components.File): def __init__( self, - value: str | list[str] | Callable | None = None, + value: Optional[str | typing.List[str] | Callable] = None, *, - file_count: Literal["multiple"] = "multiple", - file_types: list[str] | None = None, - type: Literal["filepath", "binary"] = "filepath", - label: str | None = None, - every: float | None = None, - show_label: bool | None = None, - container: bool = True, - scale: int | None = None, - min_width: int = 160, - height: int | float | None = None, - interactive: bool | None = None, + file_count: str = "multiple", + type: str = "file", + label: Optional[str] = None, + show_label: bool = True, + interactive: Optional[bool] = None, visible: bool = True, - elem_id: str | None = None, - elem_classes: list[str] | str | None = None, - render: bool = True, + elem_id: Optional[str] = None, + **kwargs, ): super().__init__( - value, + value=value, file_count=file_count, - file_types=file_types, type=type, label=label, - every=every, show_label=show_label, - container=container, - scale=scale, - min_width=min_width, - height=height, interactive=interactive, visible=visible, elem_id=elem_id, - elem_classes=elem_classes, - render=render, + **kwargs, ) @@ -463,28 +426,23 @@ class Numpy(components.Dataframe): def __init__( self, - value: list[list[Any]] | Callable | None = None, + value: Optional[typing.List[typing.List[Any]] | Callable] = None, *, - headers: list[str] | None = None, - row_count: int | tuple[int, str] = (1, "dynamic"), - col_count: int | tuple[int, str] | None = None, - datatype: str | list[str] = "str", - type: Literal["numpy"] = "numpy", - latex_delimiters: list[dict[str, str | bool]] | None = None, - label: str | None = None, - show_label: bool | None = None, - every: float | None = None, - height: int = 500, - scale: int | None = None, - min_width: int = 160, - interactive: bool | None = None, + headers: Optional[typing.List[str]] = None, + row_count: int | Tuple[int, str] = (1, "dynamic"), + col_count: Optional[int | Tuple[int, str]] = None, + datatype: str | typing.List[str] = "str", + type: str = "numpy", + max_rows: Optional[int] = 20, + max_cols: Optional[int] = None, + overflow_row_behaviour: str = "paginate", + label: Optional[str] = None, + show_label: bool = True, + interactive: Optional[bool] = None, visible: bool = True, - elem_id: str | None = None, - elem_classes: list[str] | str | None = None, - render: bool = True, + elem_id: Optional[str] = None, wrap: bool = False, - line_breaks: bool = True, - column_widths: list[str | int] | None = None, + **kwargs, ): super().__init__( value=value, @@ -493,21 +451,16 @@ class Numpy(components.Dataframe): col_count=col_count, datatype=datatype, type=type, + max_rows=max_rows, + max_cols=max_cols, + overflow_row_behaviour=overflow_row_behaviour, label=label, show_label=show_label, interactive=interactive, visible=visible, elem_id=elem_id, wrap=wrap, - elem_classes=elem_classes, - render=render, - line_breaks=line_breaks, - column_widths=column_widths, - every=every, - height=height, - scale=scale, - latex_delimiters=latex_delimiters, - min_width=min_width, + **kwargs, ) @@ -520,28 +473,23 @@ class Matrix(components.Dataframe): def __init__( self, - value: list[list[Any]] | Callable | None = None, + value: Optional[typing.List[typing.List[Any]] | Callable] = None, *, - headers: list[str] | None = None, - row_count: int | tuple[int, str] = (1, "dynamic"), - col_count: int | tuple[int, str] | None = None, - datatype: str | list[str] = "str", - type: Literal["array"] = "array", - latex_delimiters: list[dict[str, str | bool]] | None = None, - label: str | None = None, - show_label: bool | None = None, - every: float | None = None, - height: int = 500, - scale: int | None = None, - min_width: int = 160, - interactive: bool | None = None, + headers: Optional[typing.List[str]] = None, + row_count: int | Tuple[int, str] = (1, "dynamic"), + col_count: Optional[int | Tuple[int, str]] = None, + datatype: str | typing.List[str] = "str", + type: str = "array", + max_rows: Optional[int] = 20, + max_cols: Optional[int] = None, + overflow_row_behaviour: str = "paginate", + label: Optional[str] = None, + show_label: bool = True, + interactive: Optional[bool] = None, visible: bool = True, - elem_id: str | None = None, - elem_classes: list[str] | str | None = None, - render: bool = True, + elem_id: Optional[str] = None, wrap: bool = False, - line_breaks: bool = True, - column_widths: list[str | int] | None = None, + **kwargs, ): super().__init__( value=value, @@ -550,21 +498,16 @@ class Matrix(components.Dataframe): col_count=col_count, datatype=datatype, type=type, + max_rows=max_rows, + max_cols=max_cols, + overflow_row_behaviour=overflow_row_behaviour, label=label, show_label=show_label, interactive=interactive, visible=visible, elem_id=elem_id, wrap=wrap, - elem_classes=elem_classes, - render=render, - line_breaks=line_breaks, - column_widths=column_widths, - every=every, - height=height, - scale=scale, - latex_delimiters=latex_delimiters, - min_width=min_width, + **kwargs, ) @@ -577,28 +520,23 @@ class List(components.Dataframe): def __init__( self, - value: list[list[Any]] | Callable | None = None, + value: Optional[typing.List[typing.List[Any]] | Callable] = None, *, - headers: list[str] | None = None, - row_count: int | tuple[int, str] = (1, "dynamic"), - col_count: Literal[1] = 1, - datatype: str | list[str] = "str", - type: Literal["array"] = "array", - latex_delimiters: list[dict[str, str | bool]] | None = None, - label: str | None = None, - show_label: bool | None = None, - every: float | None = None, - height: int = 500, - scale: int | None = None, - min_width: int = 160, - interactive: bool | None = None, + headers: Optional[typing.List[str]] = None, + row_count: int | Tuple[int, str] = (1, "dynamic"), + col_count: Optional[int | Tuple[int, str]] = 1, + datatype: str | typing.List[str] = "str", + type: str = "array", + max_rows: Optional[int] = 20, + max_cols: Optional[int] = None, + overflow_row_behaviour: str = "paginate", + label: Optional[str] = None, + show_label: bool = True, + interactive: Optional[bool] = None, visible: bool = True, - elem_id: str | None = None, - elem_classes: list[str] | str | None = None, - render: bool = True, + elem_id: Optional[str] = None, wrap: bool = False, - line_breaks: bool = True, - column_widths: list[str | int] | None = None, + **kwargs, ): super().__init__( value=value, @@ -607,21 +545,16 @@ class List(components.Dataframe): col_count=col_count, datatype=datatype, type=type, + max_rows=max_rows, + max_cols=max_cols, + overflow_row_behaviour=overflow_row_behaviour, label=label, show_label=show_label, interactive=interactive, visible=visible, elem_id=elem_id, wrap=wrap, - elem_classes=elem_classes, - render=render, - line_breaks=line_breaks, - column_widths=column_widths, - every=every, - height=height, - scale=scale, - latex_delimiters=latex_delimiters, - min_width=min_width, + **kwargs, ) diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/BlockLabel.4b1193ac.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/BlockLabel.4b1193ac.js new file mode 100644 index 0000000000000000000000000000000000000000..917f17168556a9a8027e7aabc1e0c5ffaa3afc49 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/BlockLabel.4b1193ac.js @@ -0,0 +1,2 @@ +import{S as g,i as m,s as _,e as u,c as h,a as y,t as w,b as f,d as c,f as x,g as d,m as p,h as k,j as I,k as v,n as z,o as B,Z as S}from"./index.cb50929e.js";function j(a){let t,n,s,b,o,r,l;return s=new a[1]({}),{c(){t=u("div"),n=u("span"),h(s.$$.fragment),b=y(),o=w(a[0]),f(n,"class","mr-2 h-[12px] w-[12px] opacity-80"),f(t,"class",r="absolute left-0 top-0 py-1 px-2 rounded-br-lg shadow-sm text-xs text-gray-500 flex items-center pointer-events-none bg-white z-20 border-b border-r border-gray-100 dark:bg-gray-900 "+a[3]),c(t,"h-0",!a[2]),c(t,"sr-only",!a[2])},m(e,i){x(e,t,i),d(t,n),p(s,n,null),d(t,b),d(t,o),l=!0},p(e,[i]){(!l||i&1)&&k(o,e[0]),(!l||i&8&&r!==(r="absolute left-0 top-0 py-1 px-2 rounded-br-lg shadow-sm text-xs text-gray-500 flex items-center pointer-events-none bg-white z-20 border-b border-r border-gray-100 dark:bg-gray-900 "+e[3]))&&f(t,"class",r),i&12&&c(t,"h-0",!e[2]),i&12&&c(t,"sr-only",!e[2])},i(e){l||(I(s.$$.fragment,e),l=!0)},o(e){v(s.$$.fragment,e),l=!1},d(e){e&&z(t),B(s)}}}function q(a,t,n){let s,{label:b=null}=t,{Icon:o}=t,{show_label:r=!0}=t,{disable:l=!1}=t;return a.$$set=e=>{"label"in e&&n(0,b=e.label),"Icon"in e&&n(1,o=e.Icon),"show_label"in e&&n(2,r=e.show_label),"disable"in e&&n(4,l=e.disable)},a.$$.update=()=>{a.$$.dirty&16&&n(3,{classes:s}=S({label_container:!l},["label_container"]),s)},[b,o,r,s,l]}class L extends g{constructor(t){super(),m(this,t,q,j,_,{label:0,Icon:1,show_label:2,disable:4})}}export{L as B}; +//# sourceMappingURL=BlockLabel.4b1193ac.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/BlockLabel.4b1193ac.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/BlockLabel.4b1193ac.js.map new file mode 100644 index 0000000000000000000000000000000000000000..d0dd43435d7979197c30c43d9e53d3b67c690aab --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/BlockLabel.4b1193ac.js.map @@ -0,0 +1 @@ +{"version":3,"file":"BlockLabel.4b1193ac.js","sources":["../../../../ui/packages/atoms/src/BlockLabel.svelte"],"sourcesContent":["\n\n\n\t\n\t\n\t\t\n\t\n\n\t{label}\n\n"],"names":[],"mappings":"4QAuBE,6PAP4L,iBAFjL,qBACI,cAFjB,SAMC,+DAIC,+MAP4L,wCAFjL,2BACI,qHAZL,QAAuB,SACvB,WACA,aAAsB,OACtB,UAAmB,2LAExB,WAAY,GAAa,iBAAkB,IAChD,iBAAF"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/CarouselItem.svelte_svelte_type_style_lang.248bb157.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/CarouselItem.svelte_svelte_type_style_lang.248bb157.js new file mode 100644 index 0000000000000000000000000000000000000000..c65b91197664ba80be8dd20f1ad5b1db670f56d2 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/CarouselItem.svelte_svelte_type_style_lang.248bb157.js @@ -0,0 +1,2 @@ +import{S as B,i as E,s as H,p as I,e as w,a as j,t as M,b as g,d as k,f as T,g as c,l as S,u as D,q as F,r as O,h as q,j as Q,k as R,n as U,A as z,F as G,Q as y,$ as J,a0 as K,a1 as A}from"./index.cb50929e.js";function N(l){let t,o,e,u,L,f,m=l[2]+1+"",v,p,_=l[3].length+"",d,b,i,r,x,n;const C=l[9].default,a=I(C,l,l[8],null);return{c(){t=w("div"),a&&a.c(),o=j(),e=w("div"),u=w("button"),u.innerHTML='',L=j(),f=w("div"),v=M(m),p=M(" / "),d=M(_),b=j(),i=w("button"),i.innerHTML='',g(u,"class","flex items-center justify-center h-6 w-6 hover:text-orange-500"),g(f,"class","carousel_index text-center font-semibold"),g(i,"class","flex items-center justify-center h-6 w-6 hover:text-orange-500"),g(e,"class","carousel-control flex gap-4 justify-center items-center pt-2 text-sm"),g(t,"class","output-carousel flex flex-col relative"),g(t,"id",l[0]),k(t,"!hidden",!l[1])},m(s,h){T(s,t,h),a&&a.m(t,null),c(t,o),c(t,e),c(e,u),c(e,L),c(e,f),c(f,v),c(f,p),c(f,d),c(e,b),c(e,i),r=!0,x||(n=[S(u,"click",l[7]),S(i,"click",l[6])],x=!0)},p(s,[h]){a&&a.p&&(!r||h&256)&&D(a,C,s,s[8],r?O(C,s[8],h,null):F(s[8]),null),(!r||h&4)&&m!==(m=s[2]+1+"")&&q(v,m),(!r||h&8)&&_!==(_=s[3].length+"")&&q(d,_),(!r||h&1)&&g(t,"id",s[0]),h&2&&k(t,"!hidden",!s[1])},i(s){r||(Q(a,s),r=!0)},o(s){R(a,s),r=!1},d(s){s&&U(t),a&&a.d(s),x=!1,z(n)}}}const P={};function V(l,t,o){let e,u,{$$slots:L={},$$scope:f}=t,{elem_id:m=""}=t,{visible:v=!0}=t;const p=G(),_=A([]);y(l,_,n=>o(3,e=n));const d=A();y(l,d,n=>o(11,u=n));let b=-1;J(P,{register:()=>(e.push(++b),_.set(e),b),unregister:n=>{const C=e.findIndex(a=>a===n);e.slice(C,1),_.set(e)},current:d});let i=0;const r=()=>{o(2,i=(i+1)%e.length),p("change")},x=()=>{o(2,i=(i-1+e.length)%e.length),p("change")};return l.$$set=n=>{"elem_id"in n&&o(0,m=n.elem_id),"visible"in n&&o(1,v=n.visible),"$$scope"in n&&o(8,f=n.$$scope)},l.$$.update=()=>{l.$$.dirty&12&&K(d,u=e[i]||0,u)},[m,v,i,e,_,d,r,x,f,L]}class X extends B{constructor(t){super(),E(this,t,V,N,H,{elem_id:0,visible:1})}}export{X as C,P as a}; +//# sourceMappingURL=CarouselItem.svelte_svelte_type_style_lang.248bb157.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/CarouselItem.svelte_svelte_type_style_lang.248bb157.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/CarouselItem.svelte_svelte_type_style_lang.248bb157.js.map new file mode 100644 index 0000000000000000000000000000000000000000..00f0a5d4e1fec10e4671968f359aeb8a31553d89 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/CarouselItem.svelte_svelte_type_style_lang.248bb157.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CarouselItem.svelte_svelte_type_style_lang.248bb157.js","sources":["../../../../ui/packages/carousel/src/Carousel.svelte"],"sourcesContent":["\n\n\n\n\n\t\n\n\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t
    \n\t\t\t{carousel_index + 1} / {$items.length}\n\t\t
    \n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\n\n\n"],"names":[],"mappings":"kPA0EI,KAAiB,WAAM,KAAO,yvBAAX,KAAG,k/BAvBrB,qBADY,cAFjB,+BAOC,OAGC,cAeA,mCAGA,+BAjBW,kBAkBA,4GAHT,KAAiB,gCAAM,KAAO,uCAvB7B,0BADY,wFAjDH,4DAOF,UAAkB,OAClB,UAAmB,WAExB,GAAW,IAGX,EAAQ,8BACR,GAAU,2BAEZ,MAEJ,EAAW,GACV,aACC,GAAO,OAAO,CAAE,WAET,GAER,WAAa,SACN,GAAI,EAAO,UAAW,GAAQ,IAAQ,CAAE,EAC9C,EAAO,MAAM,EAAG,CAAC,YAIlB,eAGG,GAAyB,OAGvB,YACL,EAAkB,GAAiB,GAAK,EAAO,MAAM,EACrD,EAAS,QAAQ,GAGZ,WACL,EAAkB,GAAiB,EAAI,EAAO,QAAU,EAAO,MAAM,EACrE,EAAS,QAAQ,2JATf,EAAW,EAAO,IAAmB"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/CarouselItem.svelte_svelte_type_style_lang.e110d966.css b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/CarouselItem.svelte_svelte_type_style_lang.e110d966.css new file mode 100644 index 0000000000000000000000000000000000000000..bae308b630c061938f3cc483ec2e8b6ca907e527 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/CarouselItem.svelte_svelte_type_style_lang.e110d966.css @@ -0,0 +1 @@ +.carousel-item.svelte-89gglt>img{height:100%;max-height:24rem;width:100%;object-fit:contain;object-position:center} diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Column.6844546c.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Column.6844546c.js new file mode 100644 index 0000000000000000000000000000000000000000..3e4e6949f26230c4a4fbaf11469cae03d5bd3c3b --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Column.6844546c.js @@ -0,0 +1,2 @@ +import{S as g,i as v,s as h,p as w,e as b,b as o,v as r,d as _,f as C,u as q,q as S,r as j,j as k,k as y,n as z}from"./index.cb50929e.js";function A(i){let e,t,m,f;const u=i[7].default,a=w(u,i,i[6],null);return{c(){e=b("div"),a&&a.c(),o(e,"id",i[2]),o(e,"class",t="overflow-hidden flex flex-col relative col "+r(i[5])),o(e,"style",m=`min-width: min(${i[1]}px, 100%); flex-grow: ${i[0]}`),_(e,"gap-4",i[5].gap!==!1),_(e,"gr-compact",i[4]==="compact"),_(e,"gr-panel",i[4]==="panel"),_(e,"!hidden",!i[3])},m(l,s){C(l,e,s),a&&a.m(e,null),f=!0},p(l,[s]){a&&a.p&&(!f||s&64)&&q(a,u,l,l[6],f?j(u,l[6],s,null):S(l[6]),null),(!f||s&4)&&o(e,"id",l[2]),(!f||s&32&&t!==(t="overflow-hidden flex flex-col relative col "+r(l[5])))&&o(e,"class",t),(!f||s&3&&m!==(m=`min-width: min(${l[1]}px, 100%); flex-grow: ${l[0]}`))&&o(e,"style",m),s&32&&_(e,"gap-4",l[5].gap!==!1),s&48&&_(e,"gr-compact",l[4]==="compact"),s&48&&_(e,"gr-panel",l[4]==="panel"),s&40&&_(e,"!hidden",!l[3])},i(l){f||(k(a,l),f=!0)},o(l){y(a,l),f=!1},d(l){l&&z(e),a&&a.d(l)}}}function B(i,e,t){let{$$slots:m={},$$scope:f}=e,{scale:u=1}=e,{min_width:a=0}=e,{elem_id:l=""}=e,{visible:s=!0}=e,{variant:d="default"}=e,{style:c={}}=e;return i.$$set=n=>{"scale"in n&&t(0,u=n.scale),"min_width"in n&&t(1,a=n.min_width),"elem_id"in n&&t(2,l=n.elem_id),"visible"in n&&t(3,s=n.visible),"variant"in n&&t(4,d=n.variant),"style"in n&&t(5,c=n.style),"$$scope"in n&&t(6,f=n.$$scope)},[u,a,l,s,d,c,f,m]}class D extends g{constructor(e){super(),v(this,e,B,A,h,{scale:0,min_width:1,elem_id:2,visible:3,variant:4,style:5})}}var F=D;export{F as C}; +//# sourceMappingURL=Column.6844546c.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Column.6844546c.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Column.6844546c.js.map new file mode 100644 index 0000000000000000000000000000000000000000..c4f313b731d49353d38ed398a6655cbdc328b10c --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Column.6844546c.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Column.6844546c.js","sources":["../../../../ui/packages/app/src/components/Column/Column.svelte"],"sourcesContent":["\n\n\n\t\n\n"],"names":[],"mappings":"oPAaK,kEAC+C,EAAe,uCAKzC,6BAAkC,oBAJ9C,KAAM,MAAQ,EAAK,mBACd,OAAY,SAAS,iBACvB,OAAY,OAAO,iBACnB,cANjB,6HACK,sEAC+C,EAAe,2DAKzC,6BAAkC,2CAJ9C,KAAM,MAAQ,EAAK,yBACd,OAAY,SAAS,uBACvB,OAAY,OAAO,uBACnB,0HAdL,QAAgB,MAChB,YAAoB,MACpB,UAAkB,OAClB,UAAmB,OACnB,UAA2C,cAC3C"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/File.febd4e12.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/File.febd4e12.js new file mode 100644 index 0000000000000000000000000000000000000000..6746b55c4048e3197dbf48584f3218994dca699a --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/File.febd4e12.js @@ -0,0 +1,2 @@ +import{S as h,i as c,s as f,w as o,b as t,f as d,g as i,x as r,n as u}from"./index.cb50929e.js";function g(l){let e,s,n;return{c(){e=o("svg"),s=o("path"),n=o("polyline"),t(s,"d","M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"),t(n,"points","13 2 13 9 20 9"),t(e,"xmlns","http://www.w3.org/2000/svg"),t(e,"width","100%"),t(e,"height","100%"),t(e,"viewBox","0 0 24 24"),t(e,"fill","none"),t(e,"stroke","currentColor"),t(e,"stroke-width","1.5"),t(e,"stroke-linecap","round"),t(e,"stroke-linejoin","round"),t(e,"class","feather feather-file")},m(a,p){d(a,e,p),i(e,s),i(e,n)},p:r,i:r,o:r,d(a){a&&u(e)}}}class m extends h{constructor(e){super(),c(this,e,null,g,f,{})}}export{m as F}; +//# sourceMappingURL=File.febd4e12.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/File.febd4e12.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/File.febd4e12.js.map new file mode 100644 index 0000000000000000000000000000000000000000..1c1abaa4ef24d16b8236608dbcfe24587a79aa0e --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/File.febd4e12.js.map @@ -0,0 +1 @@ +{"version":3,"file":"File.febd4e12.js","sources":["../../../../ui/packages/icons/src/File.svelte"],"sourcesContent":["\n"],"names":[],"mappings":"gjBAAA,SAWE,OAEC"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Image.46cd55d4.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Image.46cd55d4.js new file mode 100644 index 0000000000000000000000000000000000000000..9e28aeb097bede58a7cfd29db5b43800de697282 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Image.46cd55d4.js @@ -0,0 +1,2 @@ +import{S as h,i as g,s as d,w as n,b as e,f,g as a,x as l,n as m}from"./index.cb50929e.js";function u(c){let t,r,s,o;return{c(){t=n("svg"),r=n("rect"),s=n("circle"),o=n("polyline"),e(r,"x","3"),e(r,"y","3"),e(r,"width","18"),e(r,"height","18"),e(r,"rx","2"),e(r,"ry","2"),e(s,"cx","8.5"),e(s,"cy","8.5"),e(s,"r","1.5"),e(o,"points","21 15 16 10 5 21"),e(t,"xmlns","http://www.w3.org/2000/svg"),e(t,"width","100%"),e(t,"height","100%"),e(t,"viewBox","0 0 24 24"),e(t,"fill","none"),e(t,"stroke","currentColor"),e(t,"stroke-width","1.5"),e(t,"stroke-linecap","round"),e(t,"stroke-linejoin","round"),e(t,"class","feather feather-image")},m(i,p){f(i,t,p),a(t,r),a(t,s),a(t,o)},p:l,i:l,o:l,d(i){i&&m(t)}}}class x extends h{constructor(t){super(),g(this,t,null,u,d,{})}}export{x as I}; +//# sourceMappingURL=Image.46cd55d4.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Image.46cd55d4.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Image.46cd55d4.js.map new file mode 100644 index 0000000000000000000000000000000000000000..b0ab1933255a66f5c8d86921c4e565146365b928 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Image.46cd55d4.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Image.46cd55d4.js","sources":["../../../../ui/packages/icons/src/Image.svelte"],"sourcesContent":["\n"],"names":[],"mappings":"koBAAA,SAWE,OAAyD,OAIxD"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Image.f4b10781.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Image.f4b10781.js new file mode 100644 index 0000000000000000000000000000000000000000..2fbde467753bca5d679b503b26206002314dda2f --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Image.f4b10781.js @@ -0,0 +1,2 @@ +import{S as c,i as u,s as f,e as o,b as n,M as l,f as _,x as m,n as g}from"./index.cb50929e.js";function d(i){let e,s;return{c(){e=o("img"),n(e,"class","gr-sample-image object-contain h-20 w-20"),l(e.src,s=i[1]+i[0])||n(e,"src",s)},m(a,t){_(a,e,t)},p(a,[t]){t&3&&!l(e.src,s=a[1]+a[0])&&n(e,"src",s)},i:m,o:m,d(a){a&&g(e)}}}function v(i,e,s){let{value:a}=e,{samples_dir:t}=e;return i.$$set=r=>{"value"in r&&s(0,a=r.value),"samples_dir"in r&&s(1,t=r.samples_dir)},[a,t]}class p extends c{constructor(e){super(),u(this,e,v,d,f,{value:0,samples_dir:1})}}var b=p;export{b as E}; +//# sourceMappingURL=Image.f4b10781.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Image.f4b10781.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Image.f4b10781.js.map new file mode 100644 index 0000000000000000000000000000000000000000..cef2ae1a97f457b88b3862767a5453af93320f90 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Image.f4b10781.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Image.f4b10781.js","sources":["../../../../ui/packages/app/src/components/Dataset/ExampleComponents/Image.svelte"],"sourcesContent":["\n\n\n\n"],"names":[],"mappings":"8MAQM,KAAc,4BAFpB,mCAEM,KAAc,kEAPR,YACA"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Model3D.ed795b4f.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Model3D.ed795b4f.js new file mode 100644 index 0000000000000000000000000000000000000000..7083e370f57567c42a8328f4e36c58028a9caf4a --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Model3D.ed795b4f.js @@ -0,0 +1,2 @@ +import{S as l,i as r,s as o,e as u,t as c,b as d,f,g as m,h as p,x as i,n as v}from"./index.cb50929e.js";function x(n){let e,s;return{c(){e=u("div"),s=c(n[0]),d(e,"class","gr-sample-3d")},m(t,a){f(t,e,a),m(e,s)},p(t,[a]){a&1&&p(s,t[0])},i,o:i,d(t){t&&v(e)}}}function _(n,e,s){let{value:t}=e;return n.$$set=a=>{"value"in a&&s(0,t=a.value)},[t]}class g extends l{constructor(e){super(),r(this,e,_,x,o,{value:0})}}var D=g;export{D as E}; +//# sourceMappingURL=Model3D.ed795b4f.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Model3D.ed795b4f.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Model3D.ed795b4f.js.map new file mode 100644 index 0000000000000000000000000000000000000000..fd124013405249ee6afcc31dbd6d084359f71ef2 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Model3D.ed795b4f.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Model3D.ed795b4f.js","sources":["../../../../ui/packages/app/src/components/Dataset/ExampleComponents/Model3D.svelte"],"sourcesContent":["\n\n
    {value}
    \n"],"names":[],"mappings":"yJAK2B,0CAA3B,mCAA2B,kDAHf"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/ModifyUpload.e869f7e2.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/ModifyUpload.e869f7e2.js new file mode 100644 index 0000000000000000000000000000000000000000..a0f47370e00d0049f0a02c88c9a81fdd25202942 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/ModifyUpload.e869f7e2.js @@ -0,0 +1,2 @@ +import{S as b,i as w,s as k,e as x,c as y,b as s,f as _,g as m,m as I,l as z,j as d,k as h,n as v,o as C,K as M,w as g,Y as u,x as f,a as E,d as p,D as L,E as B,F as D}from"./index.cb50929e.js";function S(o){let e,l,t,r,n,a;return t=new o[0]({}),{c(){e=x("button"),l=x("div"),y(t.$$.fragment),s(l,"class","m-t-1 w-[60%] h-[60%] opacity-80 dark:text-white"),s(e,"class","text-gray-500 bg-white/90 h-5 w-5 flex items-center justify-center rounded shadow-sm hover:shadow-xl hover:ring-1 ring-inset ring-gray-200 z-10 dark:bg-gray-900 dark:ring-gray-600"),s(e,"aria-label",o[1])},m(i,c){_(i,e,c),m(e,l),I(t,l,null),r=!0,n||(a=z(e,"click",o[2]),n=!0)},p(i,[c]){(!r||c&2)&&s(e,"aria-label",i[1])},i(i){r||(d(t.$$.fragment,i),r=!0)},o(i){h(t.$$.fragment,i),r=!1},d(i){i&&v(e),C(t),n=!1,a()}}}function q(o,e,l){let{Icon:t}=e,{label:r=""}=e;function n(a){M.call(this,o,a)}return o.$$set=a=>{"Icon"in a&&l(0,t=a.Icon),"label"in a&&l(1,r=a.label)},[t,r,n]}class j extends b{constructor(e){super(),w(this,e,q,S,k,{Icon:0,label:1})}}function F(o){let e,l,t,r;return{c(){e=g("svg"),l=g("g"),t=g("path"),r=g("path"),s(t,"d","M18,6L6.087,17.913"),u(t,"fill","none"),u(t,"fill-rule","nonzero"),u(t,"stroke-width","2px"),s(l,"transform","matrix(1.14096,-0.140958,-0.140958,1.14096,-0.0559523,0.0559523)"),s(r,"d","M4.364,4.364L19.636,19.636"),u(r,"fill","none"),u(r,"fill-rule","nonzero"),u(r,"stroke-width","2px"),s(e,"width","100%"),s(e,"height","100%"),s(e,"viewBox","0 0 24 24"),s(e,"version","1.1"),s(e,"xmlns","http://www.w3.org/2000/svg"),s(e,"xmlns:xlink","http://www.w3.org/1999/xlink"),s(e,"xml:space","preserve"),s(e,"stroke","currentColor"),u(e,"fill-rule","evenodd"),u(e,"clip-rule","evenodd"),u(e,"stroke-linecap","round"),u(e,"stroke-linejoin","round")},m(n,a){_(n,e,a),m(e,l),m(l,t),m(e,r)},p:f,i:f,o:f,d(n){n&&v(e)}}}class K extends b{constructor(e){super(),w(this,e,null,F,k,{})}}function P(o){let e,l;return{c(){e=g("svg"),l=g("path"),s(l,"d","M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"),s(e,"xmlns","http://www.w3.org/2000/svg"),s(e,"width","100%"),s(e,"height","100%"),s(e,"viewBox","0 0 24 24"),s(e,"fill","none"),s(e,"stroke","currentColor"),s(e,"stroke-width","1.5"),s(e,"stroke-linecap","round"),s(e,"stroke-linejoin","round"),s(e,"class","feather feather-edit-2")},m(t,r){_(t,e,r),m(e,l)},p:f,i:f,o:f,d(t){t&&v(e)}}}class U extends b{constructor(e){super(),w(this,e,null,P,k,{})}}function $(o){let e,l;return e=new j({props:{Icon:U,label:"Edit"}}),e.$on("click",o[3]),{c(){y(e.$$.fragment)},m(t,r){I(e,t,r),l=!0},p:f,i(t){l||(d(e.$$.fragment,t),l=!0)},o(t){h(e.$$.fragment,t),l=!1},d(t){C(e,t)}}}function Y(o){let e,l,t,r,n=o[0]&&$(o);return t=new j({props:{Icon:K,label:"Clear"}}),t.$on("click",o[4]),{c(){e=x("div"),n&&n.c(),l=E(),y(t.$$.fragment),s(e,"class","modify-upload z-10 top-2 right-2 justify-end flex gap-1"),p(e,"absolute",o[1]),p(e,"m-1",!o[1])},m(a,i){_(a,e,i),n&&n.m(e,null),m(e,l),I(t,e,null),r=!0},p(a,[i]){a[0]?n?(n.p(a,i),i&1&&d(n,1)):(n=$(a),n.c(),d(n,1),n.m(e,l)):n&&(L(),h(n,1,1,()=>{n=null}),B()),i&2&&p(e,"absolute",a[1]),i&2&&p(e,"m-1",!a[1])},i(a){r||(d(n),d(t.$$.fragment,a),r=!0)},o(a){h(n),h(t.$$.fragment,a),r=!1},d(a){a&&v(e),n&&n.d(),C(t)}}}function A(o,e,l){let{editable:t=!1}=e,{absolute:r=!0}=e;const n=D(),a=()=>n("edit"),i=c=>{n("clear"),c.stopPropagation()};return o.$$set=c=>{"editable"in c&&l(0,t=c.editable),"absolute"in c&&l(1,r=c.absolute)},[t,r,n,a,i]}class H extends b{constructor(e){super(),w(this,e,A,Y,k,{editable:0,absolute:1})}}export{K as C,j as I,H as M}; +//# sourceMappingURL=ModifyUpload.e869f7e2.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/ModifyUpload.e869f7e2.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/ModifyUpload.e869f7e2.js.map new file mode 100644 index 0000000000000000000000000000000000000000..af6c1297fa7262e10dd1ff9ae0ba3df8c32056e1 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/ModifyUpload.e869f7e2.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ModifyUpload.e869f7e2.js","sources":["../../../../ui/packages/atoms/src/IconButton.svelte","../../../../ui/packages/icons/src/Clear.svelte","../../../../ui/packages/icons/src/Edit.svelte","../../../../ui/packages/upload/src/ModifyUpload.svelte"],"sourcesContent":["\n\n\n\t
    \n\n","\n\t\n\t\t\n\t\n\t\n\n","\n","\n\n\n\t{#if editable}\n\t\t dispatch(\"edit\")} />\n\t{/if}\n\n\t {\n\t\t\tdispatch(\"clear\");\n\t\t\tevent.stopPropagation();\n\t\t}}\n\t/>\n\n"],"names":[],"mappings":"yjBASa,cAHb,SAKC,4FAFY,2HARD,WAEA,QAAQ,o6BCHpB,SAWC,OAGC,OAKD,igBCnBD,SAWE,qJCSkB,kMADd,uCAKE,8LAPK,cAHb,0DAKM,0IAFO,qIATD,WAAoB,OACpB,WAAoB,WAEzB,GAAW,UASqC,EAAS,MAAM,IAMzD,IACV,EAAS,OAAO,EAChB,EAAM"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Tabs.561d21bd.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Tabs.561d21bd.js new file mode 100644 index 0000000000000000000000000000000000000000..be0a0362cdb236a54c59ff4a97a02c688b2d0d96 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Tabs.561d21bd.js @@ -0,0 +1,2 @@ +import{S as A,i as D,s as E,B as q,f as h,n as g,p as F,e as v,a as w,b as m,d as S,g as p,ab as I,u as M,q as N,r as Q,j as z,k as G,Q as H,F as J,$ as K,aq as L,a1 as O,a0 as P,t as C,l as R,h as j}from"./index.cb50929e.js";function T(i,e,s){const t=i.slice();return t[11]=e[s],t}function U(i){let e,s=i[11].name+"",t,f,o,a;function n(){return i[9](i[11])}return{c(){e=v("button"),t=C(s),f=w(),m(e,"class","px-4 pb-2 pt-1.5 border-transparent text-gray-400 hover:text-gray-700 -mb-[2px] border-2 border-b-0")},m(d,u){h(d,e,u),p(e,t),p(e,f),o||(a=R(e,"click",n),o=!0)},p(d,u){i=d,u&4&&s!==(s=i[11].name+"")&&j(t,s)},d(d){d&&g(e),o=!1,a()}}}function V(i){let e,s=i[11].name+"",t,f;return{c(){e=v("button"),t=C(s),f=w(),m(e,"class","bg-white px-4 pb-2 pt-1.5 rounded-t-lg border-gray-200 -mb-[2px] border-2 border-b-0")},m(o,a){h(o,e,a),p(e,t),p(e,f)},p(o,a){a&4&&s!==(s=o[11].name+"")&&j(t,s)},d(o){o&&g(e)}}}function B(i,e){let s,t;function f(n,d){return n[11].id===n[3]?V:U}let o=f(e),a=o(e);return{key:i,first:null,c(){s=q(),a.c(),t=q(),this.first=s},m(n,d){h(n,s,d),a.m(n,d),h(n,t,d)},p(n,d){e=n,o===(o=f(e))&&a?a.p(e,d):(a.d(1),a=o(e),a&&(a.c(),a.m(t.parentNode,t)))},d(n){n&&g(s),a.d(n),n&&g(t)}}}function W(i){let e,s,t=[],f=new Map,o,a,n=i[2];const d=l=>l[11].id;for(let l=0;ls(3,t=r));const l=J();K(X,{register_tab:r=>{u.push({name:r.name,id:r.id}),_.update(k=>k??r.id),s(2,u)},unregister_tab:r=>{const k=u.findIndex(y=>y.id===r.id);u.splice(k,1),_.update(y=>y===r.id?u[k]?.id||u[u.length-1]?.id:y)},selected_tab:_});function c(r){P(_,t=r,t),l("change")}const b=r=>c(r.id);return i.$$set=r=>{"visible"in r&&s(0,a=r.visible),"elem_id"in r&&s(1,n=r.elem_id),"selected"in r&&s(6,d=r.selected),"$$scope"in r&&s(7,o=r.$$scope)},i.$$.update=()=>{i.$$.dirty&64&&d!==null&&c(d)},[a,n,u,t,_,c,d,o,f,b]}class x extends A{constructor(e){super(),D(this,e,Y,W,E,{visible:0,elem_id:1,selected:6})}}export{x as T,X as a}; +//# sourceMappingURL=Tabs.561d21bd.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Tabs.561d21bd.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Tabs.561d21bd.js.map new file mode 100644 index 0000000000000000000000000000000000000000..e8def6dcdaad1d323ee29df99aa3ad8a0a7d2193 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Tabs.561d21bd.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Tabs.561d21bd.js","sources":["../../../../ui/packages/tabs/src/Tabs.svelte"],"sourcesContent":["\n\n\n\n
    \n\t
    \n\t\t{#each tabs as t (t.id)}\n\t\t\t{#if t.id === $selected_tab}\n\t\t\t\t\n\t\t\t\t\t{t.name}\n\t\t\t\t\n\t\t\t{:else}\n\t\t\t\t change_tab(t.id)}\n\t\t\t\t>\n\t\t\t\t\t{t.name}\n\t\t\t\t\n\t\t\t{/if}\n\t\t{/each}\n\t
    \n\t\n
    \n"],"names":[],"mappings":"gTA6DM,MAAE,iNAJJ,0EAIE,MAAE,gEAPF,MAAE,8JAHJ,2CAGE,MAAE,+EAJA,OAAE,KAAO,uRADR,gBAAW,MAAE,mBAAlB,mSAF6D,oBAAb,cAApD,SACC,gGACQ,6HAFwD,yBAAb,mHA9CtC,0DAYF,UAAmB,OACnB,cACA,cAEP,UAEE,GAAe,EAA2C,EAAK,0BAC/D,GAAW,IAEjB,EAAW,GACV,aAAe,IACd,EAAK,MAAO,KAAM,EAAI,KAAM,GAAI,EAAI,KACpC,EAAa,OAAQ,GAAY,GAAW,EAAI,EAAE,UAGnD,eAAiB,SACV,GAAI,EAAK,UAAW,GAAM,EAAE,KAAO,EAAI,EAAE,EAC/C,EAAK,OAAO,EAAG,CAAC,EAChB,EAAa,OAAQ,GACpB,IAAY,EAAI,GAAK,EAAK,IAAI,IAAM,EAAK,EAAK,OAAS,IAAI,GAAK,CAAO,GAIzE,4BAGmB,OACnB,EAAgB,KAChB,EAAS,QAAQ,aAkBE,EAAW,EAAE,EAAE,wLAfhC,IAAa,MAAQ,EAAW,CAAQ"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Upload.5e38559f.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Upload.5e38559f.js new file mode 100644 index 0000000000000000000000000000000000000000..ba33821b92252c3cbf9459440a2712a76d5a9087 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Upload.5e38559f.js @@ -0,0 +1,2 @@ +import{S as J,i as M,s as N,p as P,e as D,a as Q,b as o,d as p,f as V,g as R,l as s,W as h,z as b,u as X,q as Y,r as Z,j as x,k as $,n as ee,A as le,F as te,K as y,I as ne}from"./index.cb50929e.js";function ie(t){let l,i,a,g,m,c,f,d,k,F;const _=t[14].default,r=P(_,t,t[13],null);return{c(){l=D("div"),r&&r.c(),i=Q(),a=D("input"),o(a,"class","hidden-upload hidden"),o(a,"type","file"),o(a,"accept",t[0]),a.multiple=g=t[4]==="multiple"||void 0,o(a,"webkitdirectory",m=t[4]==="directory"||void 0),o(a,"mozdirectory",c=t[4]==="directory"||void 0),o(l,"class",f="w-full cursor-pointer h-full items-center justify-center text-gray-400 md:text-xl "+(t[1]?"min-h-[10rem] md:min-h-[15rem] max-h-[15rem] xl:max-h-[18rem] 2xl:max-h-[20rem]":"")),p(l,"text-center",t[2]),p(l,"flex",t[3])},m(n,u){V(n,l,u),r&&r.m(l,null),R(l,i),R(l,a),t[22](a),d=!0,k||(F=[s(a,"change",t[8]),s(l,"drag",h(b(t[15]))),s(l,"dragstart",h(b(t[16]))),s(l,"dragend",h(b(t[17]))),s(l,"dragover",h(b(t[18]))),s(l,"dragenter",h(b(t[19]))),s(l,"dragleave",h(b(t[20]))),s(l,"drop",h(b(t[21]))),s(l,"click",t[7]),s(l,"drop",t[9]),s(l,"dragenter",t[6]),s(l,"dragleave",t[6])],k=!0)},p(n,[u]){r&&r.p&&(!d||u&8192)&&X(r,_,n,n[13],d?Z(_,n[13],u,null):Y(n[13]),null),(!d||u&1)&&o(a,"accept",n[0]),(!d||u&16&&g!==(g=n[4]==="multiple"||void 0))&&(a.multiple=g),(!d||u&16&&m!==(m=n[4]==="directory"||void 0))&&o(a,"webkitdirectory",m),(!d||u&16&&c!==(c=n[4]==="directory"||void 0))&&o(a,"mozdirectory",c),(!d||u&2&&f!==(f="w-full cursor-pointer h-full items-center justify-center text-gray-400 md:text-xl "+(n[1]?"min-h-[10rem] md:min-h-[15rem] max-h-[15rem] xl:max-h-[18rem] 2xl:max-h-[20rem]":"")))&&o(l,"class",f),u&6&&p(l,"text-center",n[2]),u&10&&p(l,"flex",n[3])},i(n){d||(x(r,n),d=!0)},o(n){$(r,n),d=!1},d(n){n&&ee(l),r&&r.d(n),t[22](null),k=!1,le(F)}}}function ae(t,l,i){let{$$slots:a={},$$scope:g}=l,{filetype:m=void 0}=l,{include_file_metadata:c=!0}=l,{dragging:f=!1}=l,{boundedheight:d=!0}=l,{center:k=!0}=l,{flex:F=!0}=l,{file_count:_="single"}=l,{disable_click:r=!1}=l,n;const u=te(),A=()=>{i(10,f=!f)},q=()=>{r||(i(5,n.value="",n),n.click())},j=e=>{let w=Array.from(e);if(!(!e.length||!window.FileReader)){_==="single"&&(w=[e[0]]);var z=[];w.forEach((U,G)=>{let v=new FileReader;v.readAsDataURL(U),v.onloadend=function(){z[G]=c?{name:U.name,size:U.size,data:this.result}:this.result,z.filter(H=>H!==void 0).length===e.length&&u("load",_=="single"?z[0]:z)}})}},E=e=>{const w=e.target;!w.files||j(w.files)},S=e=>{i(10,f=!1),e.dataTransfer?.files&&j(e.dataTransfer.files)};function T(e){y.call(this,t,e)}function C(e){y.call(this,t,e)}function I(e){y.call(this,t,e)}function K(e){y.call(this,t,e)}function L(e){y.call(this,t,e)}function O(e){y.call(this,t,e)}function W(e){y.call(this,t,e)}function B(e){ne[e?"unshift":"push"](()=>{n=e,i(5,n)})}return t.$$set=e=>{"filetype"in e&&i(0,m=e.filetype),"include_file_metadata"in e&&i(11,c=e.include_file_metadata),"dragging"in e&&i(10,f=e.dragging),"boundedheight"in e&&i(1,d=e.boundedheight),"center"in e&&i(2,k=e.center),"flex"in e&&i(3,F=e.flex),"file_count"in e&&i(4,_=e.file_count),"disable_click"in e&&i(12,r=e.disable_click),"$$scope"in e&&i(13,g=e.$$scope)},[m,d,k,F,_,n,A,q,E,S,f,c,r,g,a,T,C,I,K,L,O,W,B]}class de extends J{constructor(l){super(),M(this,l,ae,ie,N,{filetype:0,include_file_metadata:11,dragging:10,boundedheight:1,center:2,flex:3,file_count:4,disable_click:12})}}export{de as U}; +//# sourceMappingURL=Upload.5e38559f.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Upload.5e38559f.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Upload.5e38559f.js.map new file mode 100644 index 0000000000000000000000000000000000000000..b554c7db8410a100af0efdd0deadeb45ff402f3d --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Upload.5e38559f.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Upload.5e38559f.js","sources":["../../../../ui/packages/upload/src/Upload.svelte"],"sourcesContent":["\n\n\n\t\n\t\n\n"],"names":[],"mappings":"6YAiGU,mBACE,OAAe,YAAc,+BACtB,OAAe,aAAe,MAAS,uBAC1C,OAAe,aAAe,MAAS,qGA1BqC,MACxF,kFACA,uBACgB,+BAJpB,+BAmBC,yCAIY,gNAVF,iBACD,sBACK,sBACA,sHAQL,wBACE,OAAe,YAAc,2CACtB,OAAe,aAAe,qDACjC,OAAe,aAAe,sIA1B8C,MACxF,kFACA,6CACgB,0KAzER,WAA+B,WAC/B,wBAAwB,OACxB,WAAW,OACX,gBAAyB,OACzB,SAAkB,OAClB,OAAgB,OAChB,aAAqB,aACrB,gBAAgB,MAEvB,OAEE,GAAW,KAEX,YACL,GAAY,CAAQ,GAGf,OACD,QACJ,EAAc,MAAQ,MACtB,EAAc,UAGT,EAAa,OACd,GAAsB,MAAM,KAAK,CAAK,QACrC,EAAM,SAAW,OAAO,aAGzB,IAAe,UAClB,IAAU,EAAM,QAEb,MACJ,EAAO,SAAS,EAAG,QACd,MAAgB,YACpB,EAAU,cAAc,CAAC,EACzB,EAAU,qBACT,EAAc,GAAK,GAEhB,KAAM,EAAE,KACR,KAAM,EAAE,KACR,KAAM,KAAK,QAEV,KAAK,OAER,EAAc,OAAQ,GAAM,IAAM,MAAS,EAAE,SAAW,EAAM,QAE9D,EACC,OACA,GAAc,SAAW,EAAc,GAAK,CAAa,OAOxD,EAAuB,SACtB,GAAS,EAAE,QAEZ,EAAO,OACZ,EAAU,EAAO,KAAK,GAGjB,EAAqB,SAC1B,EAAW,EAAK,EACX,EAAE,cAAc,OACrB,EAAU,EAAE,aAAa,KAAK,sQA0BnB"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Webcam.1069ca6e.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Webcam.1069ca6e.js new file mode 100644 index 0000000000000000000000000000000000000000..3707a3d3136a3d1bc8156e6a1ed875e26f9e961c --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Webcam.1069ca6e.js @@ -0,0 +1,11 @@ +import{S as bt,i as wt,s as yt,w as H,b as p,f as U,g as Q,x as I,n as j,e as ct,l as je,y as Ve,D as jt,k as G,E as Vt,j as W,a as Ge,d as re,F as qe,ad as Fe,c as Gt,m as qt,o as Ft,B as $e,I as Ke}from"./index.cb50929e.js";function Qe(a){let t,e,i;return{c(){t=H("svg"),e=H("path"),i=H("circle"),p(e,"d","M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"),p(i,"cx","12"),p(i,"cy","13"),p(i,"r","4"),p(t,"xmlns","http://www.w3.org/2000/svg"),p(t,"width","100%"),p(t,"height","100%"),p(t,"viewBox","0 0 24 24"),p(t,"fill","none"),p(t,"stroke","currentColor"),p(t,"stroke-width","1.5"),p(t,"stroke-linecap","round"),p(t,"stroke-linejoin","round"),p(t,"class","feather feather-camera")},m(n,r){U(n,t,r),Q(t,e),Q(t,i)},p:I,i:I,o:I,d(n){n&&j(t)}}}class Ze extends bt{constructor(t){super(),wt(this,t,null,Qe,yt,{})}}function Je(a){let t,e;return{c(){t=H("svg"),e=H("circle"),p(e,"cx","12"),p(e,"cy","12"),p(e,"r","10"),p(t,"xmlns","http://www.w3.org/2000/svg"),p(t,"width","100%"),p(t,"height","100%"),p(t,"viewBox","0 0 24 24"),p(t,"fill","red"),p(t,"stroke","red"),p(t,"stroke-width","1.5"),p(t,"stroke-linecap","round"),p(t,"stroke-linejoin","round"),p(t,"class","feather feather-circle")},m(i,n){U(i,t,n),Q(t,e)},p:I,i:I,o:I,d(i){i&&j(t)}}}class ti extends bt{constructor(t){super(),wt(this,t,null,Je,yt,{})}}function ei(a){let t,e;return{c(){t=H("svg"),e=H("rect"),p(e,"x","3"),p(e,"y","3"),p(e,"width","18"),p(e,"height","18"),p(e,"rx","2"),p(e,"ry","2"),p(t,"xmlns","http://www.w3.org/2000/svg"),p(t,"width","100%"),p(t,"height","100%"),p(t,"viewBox","0 0 24 24"),p(t,"fill","red"),p(t,"stroke","red"),p(t,"stroke-width","1.5"),p(t,"stroke-linecap","round"),p(t,"stroke-linejoin","round"),p(t,"class","feather feather-square")},m(i,n){U(i,t,n),Q(t,e)},p:I,i:I,o:I,d(i){i&&j(t)}}}class ii extends bt{constructor(t){super(),wt(this,t,null,ei,yt,{})}}function ai(a){let t,e,i;return{c(){t=H("svg"),e=H("polyline"),i=H("path"),p(e,"points","1 4 1 10 7 10"),p(i,"d","M3.51 15a9 9 0 1 0 2.13-9.36L1 10"),p(t,"xmlns","http://www.w3.org/2000/svg"),p(t,"width","100%"),p(t,"height","100%"),p(t,"viewBox","0 0 24 24"),p(t,"fill","none"),p(t,"stroke","currentColor"),p(t,"stroke-width","1.5"),p(t,"stroke-linecap","round"),p(t,"stroke-linejoin","round"),p(t,"class","feather feather-rotate-ccw")},m(n,r){U(n,t,r),Q(t,e),Q(t,i)},p:I,i:I,o:I,d(n){n&&j(t)}}}class ga extends bt{constructor(t){super(),wt(this,t,null,ai,yt,{})}}/*! + * Cropper.js v1.5.12 + * https://fengyuanchen.github.io/cropperjs + * + * Copyright 2015-present Chen Fengyuan + * Released under the MIT license + * + * Date: 2021-06-12T08:00:17.411Z + */function ne(a,t){var e=Object.keys(a);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(a);t&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(a,n).enumerable})),e.push.apply(e,i)}return e}function Ee(a){for(var t=1;ta.length)&&(t=a.length);for(var e=0,i=new Array(t);e
    ',yi=Number.isNaN||X.isNaN;function b(a){return typeof a=="number"&&!yi(a)}var be=function(t){return t>0&&t<1/0};function kt(a){return typeof a>"u"}function at(a){return Dt(a)==="object"&&a!==null}var xi=Object.prototype.hasOwnProperty;function nt(a){if(!at(a))return!1;try{var t=a.constructor,e=t.prototype;return t&&e&&xi.call(e,"isPrototypeOf")}catch{return!1}}function k(a){return typeof a=="function"}var _i=Array.prototype.slice;function ke(a){return Array.from?Array.from(a):_i.call(a)}function O(a,t){return a&&k(t)&&(Array.isArray(a)||b(a.length)?ke(a).forEach(function(e,i){t.call(a,e,i,a)}):at(a)&&Object.keys(a).forEach(function(e){t.call(a,a[e],e,a)})),a}var E=Object.assign||function(t){for(var e=arguments.length,i=new Array(e>1?e-1:0),n=1;n0&&i.forEach(function(r){at(r)&&Object.keys(r).forEach(function(o){t[o]=r[o]})}),t},Ei=/\.\d*(?:0|9){12}\d*$/;function st(a){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1e11;return Ei.test(a)?Math.round(a*t)/t:a}var Di=/^width|height|left|top|marginLeft|marginTop$/;function $(a,t){var e=a.style;O(t,function(i,n){Di.test(n)&&b(i)&&(i="".concat(i,"px")),e[n]=i})}function Mi(a,t){return a.classList?a.classList.contains(t):a.className.indexOf(t)>-1}function R(a,t){if(!!t){if(b(a.length)){O(a,function(i){R(i,t)});return}if(a.classList){a.classList.add(t);return}var e=a.className.trim();e?e.indexOf(t)<0&&(a.className="".concat(e," ").concat(t)):a.className=t}}function Y(a,t){if(!!t){if(b(a.length)){O(a,function(e){Y(e,t)});return}if(a.classList){a.classList.remove(t);return}a.className.indexOf(t)>=0&&(a.className=a.className.replace(t,""))}}function ot(a,t,e){if(!!t){if(b(a.length)){O(a,function(i){ot(i,t,e)});return}e?R(a,t):Y(a,t)}}var Oi=/([a-z\d])([A-Z])/g;function Jt(a){return a.replace(Oi,"$1-$2").toLowerCase()}function Xt(a,t){return at(a[t])?a[t]:a.dataset?a.dataset[t]:a.getAttribute("data-".concat(Jt(t)))}function gt(a,t,e){at(e)?a[t]=e:a.dataset?a.dataset[t]=e:a.setAttribute("data-".concat(Jt(t)),e)}function Ti(a,t){if(at(a[t]))try{delete a[t]}catch{a[t]=void 0}else if(a.dataset)try{delete a.dataset[t]}catch{a.dataset[t]=void 0}else a.removeAttribute("data-".concat(Jt(t)))}var Se=/\s\s*/,Ie=function(){var a=!1;if(Ct){var t=!1,e=function(){},i=Object.defineProperty({},"once",{get:function(){return a=!0,t},set:function(r){t=r}});X.addEventListener("test",e,i),X.removeEventListener("test",e,i)}return a}();function z(a,t,e){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},n=e;t.trim().split(Se).forEach(function(r){if(!Ie){var o=a.listeners;o&&o[r]&&o[r][e]&&(n=o[r][e],delete o[r][e],Object.keys(o[r]).length===0&&delete o[r],Object.keys(o).length===0&&delete a.listeners)}a.removeEventListener(r,n,i)})}function B(a,t,e){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},n=e;t.trim().split(Se).forEach(function(r){if(i.once&&!Ie){var o=a.listeners,s=o===void 0?{}:o;n=function(){delete s[r][e],a.removeEventListener(r,n,i);for(var f=arguments.length,h=new Array(f),c=0;cMath.abs(e)&&(e=u)})}),e}function Et(a,t){var e=a.pageX,i=a.pageY,n={endX:e,endY:i};return t?n:Ee({startX:e,startY:i},n)}function Ai(a){var t=0,e=0,i=0;return O(a,function(n){var r=n.startX,o=n.startY;t+=r,e+=o,i+=1}),t/=i,e/=i,{pageX:t,pageY:e}}function K(a){var t=a.aspectRatio,e=a.height,i=a.width,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"contain",r=be(i),o=be(e);if(r&&o){var s=e*t;n==="contain"&&s>i||n==="cover"&&s90?{width:l,height:s}:{width:s,height:l}}function ki(a,t,e,i){var n=t.aspectRatio,r=t.naturalWidth,o=t.naturalHeight,s=t.rotate,l=s===void 0?0:s,f=t.scaleX,h=f===void 0?1:f,c=t.scaleY,u=c===void 0?1:c,g=e.aspectRatio,m=e.naturalWidth,y=e.naturalHeight,w=i.fillColor,D=w===void 0?"transparent":w,M=i.imageSmoothingEnabled,v=M===void 0?!0:M,T=i.imageSmoothingQuality,A=T===void 0?"low":T,d=i.maxWidth,x=d===void 0?1/0:d,C=i.maxHeight,L=C===void 0?1/0:C,V=i.minWidth,Z=V===void 0?0:V,J=i.minHeight,q=J===void 0?0:J,P=document.createElement("canvas"),N=P.getContext("2d"),tt=K({aspectRatio:g,width:x,height:L}),xt=K({aspectRatio:g,width:Z,height:q},"cover"),At=Math.min(tt.width,Math.max(xt.width,m)),Nt=Math.min(tt.height,Math.max(xt.height,y)),te=K({aspectRatio:n,width:x,height:L}),ee=K({aspectRatio:n,width:Z,height:q},"cover"),ie=Math.min(te.width,Math.max(ee.width,r)),ae=Math.min(te.height,Math.max(ee.height,o)),Xe=[-ie/2,-ae/2,ie,ae];return P.width=st(At),P.height=st(Nt),N.fillStyle=D,N.fillRect(0,0,At,Nt),N.save(),N.translate(At/2,Nt/2),N.rotate(l*Math.PI/180),N.scale(h,u),N.imageSmoothingEnabled=v,N.imageSmoothingQuality=A,N.drawImage.apply(N,[a].concat(De(Xe.map(function(Ue){return Math.floor(st(Ue))})))),N.restore(),P}var Be=String.fromCharCode;function Si(a,t,e){var i="";e+=t;for(var n=t;n0;)e.push(Be.apply(null,ke(n.subarray(0,i)))),n=n.subarray(i);return"data:".concat(t,";base64,").concat(btoa(e.join("")))}function zi(a){var t=new DataView(a),e;try{var i,n,r;if(t.getUint8(0)===255&&t.getUint8(1)===216)for(var o=t.byteLength,s=2;s+1=8&&(r=f+c)}}}if(r){var u=t.getUint16(r,i),g,m;for(m=0;m=0?r:Ae),height:Math.max(i.offsetHeight,o>=0?o:Ne)};this.containerData=s,$(n,{width:s.width,height:s.height}),R(t,S),Y(n,S)},initCanvas:function(){var t=this.containerData,e=this.imageData,i=this.options.viewMode,n=Math.abs(e.rotate)%180===90,r=n?e.naturalHeight:e.naturalWidth,o=n?e.naturalWidth:e.naturalHeight,s=r/o,l=t.width,f=t.height;t.height*s>t.width?i===3?l=t.height*s:f=t.width/s:i===3?f=t.width/s:l=t.height*s;var h={aspectRatio:s,naturalWidth:r,naturalHeight:o,width:l,height:f};this.canvasData=h,this.limited=i===1||i===2,this.limitCanvas(!0,!0),h.width=Math.min(Math.max(h.width,h.minWidth),h.maxWidth),h.height=Math.min(Math.max(h.height,h.minHeight),h.maxHeight),h.left=(t.width-h.width)/2,h.top=(t.height-h.height)/2,h.oldLeft=h.left,h.oldTop=h.top,this.initialCanvasData=E({},h)},limitCanvas:function(t,e){var i=this.options,n=this.containerData,r=this.canvasData,o=this.cropBoxData,s=i.viewMode,l=r.aspectRatio,f=this.cropped&&o;if(t){var h=Number(i.minCanvasWidth)||0,c=Number(i.minCanvasHeight)||0;s>1?(h=Math.max(h,n.width),c=Math.max(c,n.height),s===3&&(c*l>h?h=c*l:c=h/l)):s>0&&(h?h=Math.max(h,f?o.width:0):c?c=Math.max(c,f?o.height:0):f&&(h=o.width,c=o.height,c*l>h?h=c*l:c=h/l));var u=K({aspectRatio:l,width:h,height:c});h=u.width,c=u.height,r.minWidth=h,r.minHeight=c,r.maxWidth=1/0,r.maxHeight=1/0}if(e)if(s>(f?0:1)){var g=n.width-r.width,m=n.height-r.height;r.minLeft=Math.min(0,g),r.minTop=Math.min(0,m),r.maxLeft=Math.max(0,g),r.maxTop=Math.max(0,m),f&&this.limited&&(r.minLeft=Math.min(o.left,o.left+(o.width-r.width)),r.minTop=Math.min(o.top,o.top+(o.height-r.height)),r.maxLeft=o.left,r.maxTop=o.top,s===2&&(r.width>=n.width&&(r.minLeft=Math.min(0,g),r.maxLeft=Math.max(0,g)),r.height>=n.height&&(r.minTop=Math.min(0,m),r.maxTop=Math.max(0,m))))}else r.minLeft=-r.width,r.minTop=-r.height,r.maxLeft=n.width,r.maxTop=n.height},renderCanvas:function(t,e){var i=this.canvasData,n=this.imageData;if(e){var r=Ni({width:n.naturalWidth*Math.abs(n.scaleX||1),height:n.naturalHeight*Math.abs(n.scaleY||1),degree:n.rotate||0}),o=r.width,s=r.height,l=i.width*(o/i.naturalWidth),f=i.height*(s/i.naturalHeight);i.left-=(l-i.width)/2,i.top-=(f-i.height)/2,i.width=l,i.height=f,i.aspectRatio=o/s,i.naturalWidth=o,i.naturalHeight=s,this.limitCanvas(!0,!1)}(i.width>i.maxWidth||i.widthi.maxHeight||i.heighte.width?r.height=r.width/i:r.width=r.height*i),this.cropBoxData=r,this.limitCropBox(!0,!0),r.width=Math.min(Math.max(r.width,r.minWidth),r.maxWidth),r.height=Math.min(Math.max(r.height,r.minHeight),r.maxHeight),r.width=Math.max(r.minWidth,r.width*n),r.height=Math.max(r.minHeight,r.height*n),r.left=e.left+(e.width-r.width)/2,r.top=e.top+(e.height-r.height)/2,r.oldLeft=r.left,r.oldTop=r.top,this.initialCropBoxData=E({},r)},limitCropBox:function(t,e){var i=this.options,n=this.containerData,r=this.canvasData,o=this.cropBoxData,s=this.limited,l=i.aspectRatio;if(t){var f=Number(i.minCropBoxWidth)||0,h=Number(i.minCropBoxHeight)||0,c=s?Math.min(n.width,r.width,r.width+r.left,n.width-r.left):n.width,u=s?Math.min(n.height,r.height,r.height+r.top,n.height-r.top):n.height;f=Math.min(f,n.width),h=Math.min(h,n.height),l&&(f&&h?h*l>f?h=f/l:f=h*l:f?h=f/l:h&&(f=h*l),u*l>c?u=c/l:c=u*l),o.minWidth=Math.min(f,c),o.minHeight=Math.min(h,u),o.maxWidth=c,o.maxHeight=u}e&&(s?(o.minLeft=Math.max(0,r.left),o.minTop=Math.max(0,r.top),o.maxLeft=Math.min(n.width,r.left+r.width)-o.width,o.maxTop=Math.min(n.height,r.top+r.height)-o.height):(o.minLeft=0,o.minTop=0,o.maxLeft=n.width-o.width,o.maxTop=n.height-o.height))},renderCropBox:function(){var t=this.options,e=this.containerData,i=this.cropBoxData;(i.width>i.maxWidth||i.widthi.maxHeight||i.height=e.width&&i.height>=e.height?Oe:Qt),$(this.cropBox,E({width:i.width,height:i.height},vt({translateX:i.left,translateY:i.top}))),this.cropped&&this.limited&&this.limitCanvas(!0,!0),this.disabled||this.output()},output:function(){this.preview(),ht(this.element,zt,this.getData())}},Wi={initPreview:function(){var t=this.element,e=this.crossOrigin,i=this.options.preview,n=e?this.crossOriginUrl:this.url,r=t.alt||"The image to preview",o=document.createElement("img");if(e&&(o.crossOrigin=e),o.src=n,o.alt=r,this.viewBox.appendChild(o),this.viewBoxImage=o,!!i){var s=i;typeof i=="string"?s=t.ownerDocument.querySelectorAll(i):i.querySelector&&(s=[i]),this.previews=s,O(s,function(l){var f=document.createElement("img");gt(l,_t,{width:l.offsetWidth,height:l.offsetHeight,html:l.innerHTML}),e&&(f.crossOrigin=e),f.src=n,f.alt=r,f.style.cssText='display:block;width:100%;height:auto;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;image-orientation:0deg!important;"',l.innerHTML="",l.appendChild(f)})}},resetPreview:function(){O(this.previews,function(t){var e=Xt(t,_t);$(t,{width:e.width,height:e.height}),t.innerHTML=e.html,Ti(t,_t)})},preview:function(){var t=this.imageData,e=this.canvasData,i=this.cropBoxData,n=i.width,r=i.height,o=t.width,s=t.height,l=i.left-e.left-t.left,f=i.top-e.top-t.top;!this.cropped||this.disabled||($(this.viewBoxImage,E({width:o,height:s},vt(E({translateX:-l,translateY:-f},t)))),O(this.previews,function(h){var c=Xt(h,_t),u=c.width,g=c.height,m=u,y=g,w=1;n&&(w=u/n,y=r*w),r&&y>g&&(w=g/r,m=n*w,y=g),$(h,{width:m,height:y}),$(h.getElementsByTagName("img")[0],E({width:o*w,height:s*w},vt(E({translateX:-l*w,translateY:-f*w},t))))}))}},Yi={bind:function(){var t=this.element,e=this.options,i=this.cropper;k(e.cropstart)&&B(t,Wt,e.cropstart),k(e.cropmove)&&B(t,Ht,e.cropmove),k(e.cropend)&&B(t,Pt,e.cropend),k(e.crop)&&B(t,zt,e.crop),k(e.zoom)&&B(t,Yt,e.zoom),B(i,le,this.onCropStart=this.cropStart.bind(this)),e.zoomable&&e.zoomOnWheel&&B(i,ve,this.onWheel=this.wheel.bind(this),{passive:!1,capture:!0}),e.toggleDragModeOnDblclick&&B(i,ce,this.onDblclick=this.dblclick.bind(this)),B(t.ownerDocument,fe,this.onCropMove=this.cropMove.bind(this)),B(t.ownerDocument,ue,this.onCropEnd=this.cropEnd.bind(this)),e.responsive&&B(window,pe,this.onResize=this.resize.bind(this))},unbind:function(){var t=this.element,e=this.options,i=this.cropper;k(e.cropstart)&&z(t,Wt,e.cropstart),k(e.cropmove)&&z(t,Ht,e.cropmove),k(e.cropend)&&z(t,Pt,e.cropend),k(e.crop)&&z(t,zt,e.crop),k(e.zoom)&&z(t,Yt,e.zoom),z(i,le,this.onCropStart),e.zoomable&&e.zoomOnWheel&&z(i,ve,this.onWheel,{passive:!1,capture:!0}),e.toggleDragModeOnDblclick&&z(i,ce,this.onDblclick),z(t.ownerDocument,fe,this.onCropMove),z(t.ownerDocument,ue,this.onCropEnd),e.responsive&&z(window,pe,this.onResize)}},Xi={resize:function(){if(!this.disabled){var t=this.options,e=this.container,i=this.containerData,n=e.offsetWidth/i.width,r=e.offsetHeight/i.height,o=Math.abs(n-1)>Math.abs(r-1)?n:r;if(o!==1){var s,l;t.restore&&(s=this.getCanvasData(),l=this.getCropBoxData()),this.render(),t.restore&&(this.setCanvasData(O(s,function(f,h){s[h]=f*o})),this.setCropBoxData(O(l,function(f,h){l[h]=f*o})))}}},dblclick:function(){this.disabled||this.options.dragMode===Re||this.setDragMode(Mi(this.dragBox,Lt)?Ce:Zt)},wheel:function(t){var e=this,i=Number(this.options.wheelZoomRatio)||.1,n=1;this.disabled||(t.preventDefault(),!this.wheeling&&(this.wheeling=!0,setTimeout(function(){e.wheeling=!1},50),t.deltaY?n=t.deltaY>0?1:-1:t.wheelDelta?n=-t.wheelDelta/120:t.detail&&(n=t.detail>0?1:-1),this.zoom(-n*i,t)))},cropStart:function(t){var e=t.buttons,i=t.button;if(!(this.disabled||(t.type==="mousedown"||t.type==="pointerdown"&&t.pointerType==="mouse")&&(b(e)&&e!==1||b(i)&&i!==0||t.ctrlKey))){var n=this.options,r=this.pointers,o;t.changedTouches?O(t.changedTouches,function(s){r[s.identifier]=Et(s)}):r[t.pointerId||0]=Et(t),Object.keys(r).length>1&&n.zoomable&&n.zoomOnTouch?o=Te:o=Xt(t.target,mt),!!vi.test(o)&&ht(this.element,Wt,{originalEvent:t,action:o})!==!1&&(t.preventDefault(),this.action=o,this.cropping=!1,o===Me&&(this.cropping=!0,R(this.dragBox,Mt)))}},cropMove:function(t){var e=this.action;if(!(this.disabled||!e)){var i=this.pointers;t.preventDefault(),ht(this.element,Ht,{originalEvent:t,action:e})!==!1&&(t.changedTouches?O(t.changedTouches,function(n){E(i[n.identifier]||{},Et(n,!0))}):E(i[t.pointerId||0]||{},Et(t,!0)),this.change(t))}},cropEnd:function(t){if(!this.disabled){var e=this.action,i=this.pointers;t.changedTouches?O(t.changedTouches,function(n){delete i[n.identifier]}):delete i[t.pointerId||0],e&&(t.preventDefault(),Object.keys(i).length||(this.action=""),this.cropping&&(this.cropping=!1,ot(this.dragBox,Mt,this.cropped&&this.options.modal)),ht(this.element,Pt,{originalEvent:t,action:e}))}}},Ui={change:function(t){var e=this.options,i=this.canvasData,n=this.containerData,r=this.cropBoxData,o=this.pointers,s=this.action,l=e.aspectRatio,f=r.left,h=r.top,c=r.width,u=r.height,g=f+c,m=h+u,y=0,w=0,D=n.width,M=n.height,v=!0,T;!l&&t.shiftKey&&(l=c&&u?c/u:1),this.limited&&(y=r.minLeft,w=r.minTop,D=y+Math.min(n.width,i.width,i.left+i.width),M=w+Math.min(n.height,i.height,i.top+i.height));var A=o[Object.keys(o)[0]],d={x:A.endX-A.startX,y:A.endY-A.startY},x=function(L){switch(L){case et:g+d.x>D&&(d.x=D-g);break;case it:f+d.xM&&(d.y=M-m);break}};switch(s){case Qt:f+=d.x,h+=d.y;break;case et:if(d.x>=0&&(g>=D||l&&(h<=w||m>=M))){v=!1;break}x(et),c+=d.x,c<0&&(s=it,c=-c,f-=c),l&&(u=c/l,h+=(r.height-u)/2);break;case F:if(d.y<=0&&(h<=w||l&&(f<=y||g>=D))){v=!1;break}x(F),u-=d.y,h+=d.y,u<0&&(s=rt,u=-u,h-=u),l&&(c=u*l,f+=(r.width-c)/2);break;case it:if(d.x<=0&&(f<=y||l&&(h<=w||m>=M))){v=!1;break}x(it),c-=d.x,f+=d.x,c<0&&(s=et,c=-c,f-=c),l&&(u=c/l,h+=(r.height-u)/2);break;case rt:if(d.y>=0&&(m>=M||l&&(f<=y||g>=D))){v=!1;break}x(rt),u+=d.y,u<0&&(s=F,u=-u,h-=u),l&&(c=u*l,f+=(r.width-c)/2);break;case ft:if(l){if(d.y<=0&&(h<=w||g>=D)){v=!1;break}x(F),u-=d.y,h+=d.y,c=u*l}else x(F),x(et),d.x>=0?gw&&(u-=d.y,h+=d.y):(u-=d.y,h+=d.y);c<0&&u<0?(s=pt,u=-u,c=-c,h-=u,f-=c):c<0?(s=ut,c=-c,f-=c):u<0&&(s=dt,u=-u,h-=u);break;case ut:if(l){if(d.y<=0&&(h<=w||f<=y)){v=!1;break}x(F),u-=d.y,h+=d.y,c=u*l,f+=r.width-c}else x(F),x(it),d.x<=0?f>y?(c-=d.x,f+=d.x):d.y<=0&&h<=w&&(v=!1):(c-=d.x,f+=d.x),d.y<=0?h>w&&(u-=d.y,h+=d.y):(u-=d.y,h+=d.y);c<0&&u<0?(s=dt,u=-u,c=-c,h-=u,f-=c):c<0?(s=ft,c=-c,f-=c):u<0&&(s=pt,u=-u,h-=u);break;case pt:if(l){if(d.x<=0&&(f<=y||m>=M)){v=!1;break}x(it),c-=d.x,f+=d.x,u=c/l}else x(rt),x(it),d.x<=0?f>y?(c-=d.x,f+=d.x):d.y>=0&&m>=M&&(v=!1):(c-=d.x,f+=d.x),d.y>=0?m=0&&(g>=D||m>=M)){v=!1;break}x(et),c+=d.x,u=c/l}else x(rt),x(et),d.x>=0?g=0&&m>=M&&(v=!1):c+=d.x,d.y>=0?m0?s=d.y>0?dt:ft:d.x<0&&(f-=c,s=d.y>0?pt:ut),d.y<0&&(h-=u),this.cropped||(Y(this.cropBox,S),this.cropped=!0,this.limited&&this.limitCropBox(!0,!0));break}v&&(r.width=c,r.height=u,r.left=f,r.top=h,this.action=s,this.renderCropBox()),O(o,function(C){C.startX=C.endX,C.startY=C.endY})}},ji={crop:function(){return this.ready&&!this.cropped&&!this.disabled&&(this.cropped=!0,this.limitCropBox(!0,!0),this.options.modal&&R(this.dragBox,Mt),Y(this.cropBox,S),this.setCropBoxData(this.initialCropBoxData)),this},reset:function(){return this.ready&&!this.disabled&&(this.imageData=E({},this.initialImageData),this.canvasData=E({},this.initialCanvasData),this.cropBoxData=E({},this.initialCropBoxData),this.renderCanvas(),this.cropped&&this.renderCropBox()),this},clear:function(){return this.cropped&&!this.disabled&&(E(this.cropBoxData,{left:0,top:0,width:0,height:0}),this.cropped=!1,this.renderCropBox(),this.limitCanvas(!0,!0),this.renderCanvas(),Y(this.dragBox,Mt),R(this.cropBox,S)),this},replace:function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return!this.disabled&&t&&(this.isImg&&(this.element.src=t),e?(this.url=t,this.image.src=t,this.ready&&(this.viewBoxImage.src=t,O(this.previews,function(i){i.getElementsByTagName("img")[0].src=t}))):(this.isImg&&(this.replaced=!0),this.options.data=null,this.uncreate(),this.load(t))),this},enable:function(){return this.ready&&this.disabled&&(this.disabled=!1,Y(this.cropper,se)),this},disable:function(){return this.ready&&!this.disabled&&(this.disabled=!0,R(this.cropper,se)),this},destroy:function(){var t=this.element;return t[_]?(t[_]=void 0,this.isImg&&this.replaced&&(t.src=this.originalUrl),this.uncreate(),this):this},move:function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t,i=this.canvasData,n=i.left,r=i.top;return this.moveTo(kt(t)?t:n+Number(t),kt(e)?e:r+Number(e))},moveTo:function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t,i=this.canvasData,n=!1;return t=Number(t),e=Number(e),this.ready&&!this.disabled&&this.options.movable&&(b(t)&&(i.left=t,n=!0),b(e)&&(i.top=e,n=!0),n&&this.renderCanvas(!0)),this},zoom:function(t,e){var i=this.canvasData;return t=Number(t),t<0?t=1/(1-t):t=1+t,this.zoomTo(i.width*t/i.naturalWidth,null,e)},zoomTo:function(t,e,i){var n=this.options,r=this.canvasData,o=r.width,s=r.height,l=r.naturalWidth,f=r.naturalHeight;if(t=Number(t),t>=0&&this.ready&&!this.disabled&&n.zoomable){var h=l*t,c=f*t;if(ht(this.element,Yt,{ratio:t,oldRatio:o/l,originalEvent:i})===!1)return this;if(i){var u=this.pointers,g=Le(this.cropper),m=u&&Object.keys(u).length?Ai(u):{pageX:i.pageX,pageY:i.pageY};r.left-=(h-o)*((m.pageX-g.left-r.left)/o),r.top-=(c-s)*((m.pageY-g.top-r.top)/s)}else nt(e)&&b(e.x)&&b(e.y)?(r.left-=(h-o)*((e.x-r.left)/o),r.top-=(c-s)*((e.y-r.top)/s)):(r.left-=(h-o)/2,r.top-=(c-s)/2);r.width=h,r.height=c,this.renderCanvas(!0)}return this},rotate:function(t){return this.rotateTo((this.imageData.rotate||0)+Number(t))},rotateTo:function(t){return t=Number(t),b(t)&&this.ready&&!this.disabled&&this.options.rotatable&&(this.imageData.rotate=t%360,this.renderCanvas(!0,!0)),this},scaleX:function(t){var e=this.imageData.scaleY;return this.scale(t,b(e)?e:1)},scaleY:function(t){var e=this.imageData.scaleX;return this.scale(b(e)?e:1,t)},scale:function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t,i=this.imageData,n=!1;return t=Number(t),e=Number(e),this.ready&&!this.disabled&&this.options.scalable&&(b(t)&&(i.scaleX=t,n=!0),b(e)&&(i.scaleY=e,n=!0),n&&this.renderCanvas(!0,!0)),this},getData:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,e=this.options,i=this.imageData,n=this.canvasData,r=this.cropBoxData,o;if(this.ready&&this.cropped){o={x:r.left-n.left,y:r.top-n.top,width:r.width,height:r.height};var s=i.width/i.naturalWidth;if(O(o,function(h,c){o[c]=h/s}),t){var l=Math.round(o.y+o.height),f=Math.round(o.x+o.width);o.x=Math.round(o.x),o.y=Math.round(o.y),o.width=f-o.x,o.height=l-o.y}}else o={x:0,y:0,width:0,height:0};return e.rotatable&&(o.rotate=i.rotate||0),e.scalable&&(o.scaleX=i.scaleX||1,o.scaleY=i.scaleY||1),o},setData:function(t){var e=this.options,i=this.imageData,n=this.canvasData,r={};if(this.ready&&!this.disabled&&nt(t)){var o=!1;e.rotatable&&b(t.rotate)&&t.rotate!==i.rotate&&(i.rotate=t.rotate,o=!0),e.scalable&&(b(t.scaleX)&&t.scaleX!==i.scaleX&&(i.scaleX=t.scaleX,o=!0),b(t.scaleY)&&t.scaleY!==i.scaleY&&(i.scaleY=t.scaleY,o=!0)),o&&this.renderCanvas(!0,!0);var s=i.width/i.naturalWidth;b(t.x)&&(r.left=t.x*s+n.left),b(t.y)&&(r.top=t.y*s+n.top),b(t.width)&&(r.width=t.width*s),b(t.height)&&(r.height=t.height*s),this.setCropBoxData(r)}return this},getContainerData:function(){return this.ready?E({},this.containerData):{}},getImageData:function(){return this.sized?E({},this.imageData):{}},getCanvasData:function(){var t=this.canvasData,e={};return this.ready&&O(["left","top","width","height","naturalWidth","naturalHeight"],function(i){e[i]=t[i]}),e},setCanvasData:function(t){var e=this.canvasData,i=e.aspectRatio;return this.ready&&!this.disabled&&nt(t)&&(b(t.left)&&(e.left=t.left),b(t.top)&&(e.top=t.top),b(t.width)?(e.width=t.width,e.height=t.width/i):b(t.height)&&(e.height=t.height,e.width=t.height*i),this.renderCanvas(!0)),this},getCropBoxData:function(){var t=this.cropBoxData,e;return this.ready&&this.cropped&&(e={left:t.left,top:t.top,width:t.width,height:t.height}),e||{}},setCropBoxData:function(t){var e=this.cropBoxData,i=this.options.aspectRatio,n,r;return this.ready&&this.cropped&&!this.disabled&&nt(t)&&(b(t.left)&&(e.left=t.left),b(t.top)&&(e.top=t.top),b(t.width)&&t.width!==e.width&&(n=!0,e.width=t.width),b(t.height)&&t.height!==e.height&&(r=!0,e.height=t.height),i&&(n?e.height=e.width/i:r&&(e.width=e.height*i)),this.renderCropBox()),this},getCroppedCanvas:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!this.ready||!window.HTMLCanvasElement)return null;var e=this.canvasData,i=ki(this.image,this.imageData,e,t);if(!this.cropped)return i;var n=this.getData(),r=n.x,o=n.y,s=n.width,l=n.height,f=i.width/Math.floor(e.naturalWidth);f!==1&&(r*=f,o*=f,s*=f,l*=f);var h=s/l,c=K({aspectRatio:h,width:t.maxWidth||1/0,height:t.maxHeight||1/0}),u=K({aspectRatio:h,width:t.minWidth||0,height:t.minHeight||0},"cover"),g=K({aspectRatio:h,width:t.width||(f!==1?i.width:s),height:t.height||(f!==1?i.height:l)}),m=g.width,y=g.height;m=Math.min(c.width,Math.max(u.width,m)),y=Math.min(c.height,Math.max(u.height,y));var w=document.createElement("canvas"),D=w.getContext("2d");w.width=st(m),w.height=st(y),D.fillStyle=t.fillColor||"transparent",D.fillRect(0,0,m,y);var M=t.imageSmoothingEnabled,v=M===void 0?!0:M,T=t.imageSmoothingQuality;D.imageSmoothingEnabled=v,T&&(D.imageSmoothingQuality=T);var A=i.width,d=i.height,x=r,C=o,L,V,Z,J,q,P;x<=-s||x>A?(x=0,L=0,Z=0,q=0):x<=0?(Z=-x,x=0,L=Math.min(A,s+x),q=L):x<=A&&(Z=0,L=Math.min(s,A-x),q=L),L<=0||C<=-l||C>d?(C=0,V=0,J=0,P=0):C<=0?(J=-C,C=0,V=Math.min(d,l+C),P=V):C<=d&&(J=0,V=Math.min(l,d-C),P=V);var N=[x,C,L,V];if(q>0&&P>0){var tt=m/s;N.push(Z*tt,J*tt,q*tt,P*tt)}return D.drawImage.apply(D,[i].concat(De(N.map(function(xt){return Math.floor(st(xt))})))),w},setAspectRatio:function(t){var e=this.options;return!this.disabled&&!kt(t)&&(e.aspectRatio=Math.max(0,t)||NaN,this.ready&&(this.initCropBox(),this.cropped&&this.renderCropBox())),this},setDragMode:function(t){var e=this.options,i=this.dragBox,n=this.face;if(this.ready&&!this.disabled){var r=t===Zt,o=e.movable&&t===Ce;t=r||o?t:Re,e.dragMode=t,gt(i,mt,t),ot(i,Lt,r),ot(i,Bt,o),e.cropBoxMovable||(gt(n,mt,t),ot(n,Lt,r),ot(n,Bt,o))}return this}},Vi=X.Cropper,Gi=function(){function a(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(ri(this,a),!t||!bi.test(t.tagName))throw new Error("The first argument is required and must be an or element.");this.element=t,this.options=E({},ge,nt(e)&&e),this.cropped=!1,this.disabled=!1,this.pointers={},this.ready=!1,this.reloading=!1,this.replaced=!1,this.sized=!1,this.sizing=!1,this.init()}return ni(a,[{key:"init",value:function(){var e=this.element,i=e.tagName.toLowerCase(),n;if(!e[_]){if(e[_]=this,i==="img"){if(this.isImg=!0,n=e.getAttribute("src")||"",this.originalUrl=n,!n)return;n=e.src}else i==="canvas"&&window.HTMLCanvasElement&&(n=e.toDataURL());this.load(n)}}},{key:"load",value:function(e){var i=this;if(!!e){this.url=e,this.imageData={};var n=this.element,r=this.options;if(!r.rotatable&&!r.scalable&&(r.checkOrientation=!1),!r.checkOrientation||!window.ArrayBuffer){this.clone();return}if(mi.test(e)){gi.test(e)?this.read(Li(e)):this.clone();return}var o=new XMLHttpRequest,s=this.clone.bind(this);this.reloading=!0,this.xhr=o,o.onabort=s,o.onerror=s,o.ontimeout=s,o.onprogress=function(){o.getResponseHeader("content-type")!==me&&o.abort()},o.onload=function(){i.read(o.response)},o.onloadend=function(){i.reloading=!1,i.xhr=null},r.checkCrossOrigin&&we(e)&&n.crossOrigin&&(e=ye(e)),o.open("GET",e,!0),o.responseType="arraybuffer",o.withCredentials=n.crossOrigin==="use-credentials",o.send()}}},{key:"read",value:function(e){var i=this.options,n=this.imageData,r=zi(e),o=0,s=1,l=1;if(r>1){this.url=Bi(e,me);var f=Pi(r);o=f.rotate,s=f.scaleX,l=f.scaleY}i.rotatable&&(n.rotate=o),i.scalable&&(n.scaleX=s,n.scaleY=l),this.clone()}},{key:"clone",value:function(){var e=this.element,i=this.url,n=e.crossOrigin,r=i;this.options.checkCrossOrigin&&we(i)&&(n||(n="anonymous"),r=ye(i)),this.crossOrigin=n,this.crossOriginUrl=r;var o=document.createElement("img");n&&(o.crossOrigin=n),o.src=r||i,o.alt=e.alt||"The image to crop",this.image=o,o.onload=this.start.bind(this),o.onerror=this.stop.bind(this),R(o,he),e.parentNode.insertBefore(o,e.nextSibling)}},{key:"start",value:function(){var e=this,i=this.image;i.onload=null,i.onerror=null,this.sizing=!0;var n=X.navigator&&/(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(X.navigator.userAgent),r=function(f,h){E(e.imageData,{naturalWidth:f,naturalHeight:h,aspectRatio:f/h}),e.initialImageData=E({},e.imageData),e.sizing=!1,e.sized=!0,e.build()};if(i.naturalWidth&&!n){r(i.naturalWidth,i.naturalHeight);return}var o=document.createElement("img"),s=document.body||document.documentElement;this.sizingImage=o,o.onload=function(){r(o.width,o.height),n||s.removeChild(o)},o.src=i.src,n||(o.style.cssText="left:0;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;opacity:0;position:absolute;top:0;z-index:-1;",s.appendChild(o))}},{key:"stop",value:function(){var e=this.image;e.onload=null,e.onerror=null,e.parentNode.removeChild(e),this.image=null}},{key:"build",value:function(){if(!(!this.sized||this.ready)){var e=this.element,i=this.options,n=this.image,r=e.parentNode,o=document.createElement("div");o.innerHTML=wi;var s=o.querySelector(".".concat(_,"-container")),l=s.querySelector(".".concat(_,"-canvas")),f=s.querySelector(".".concat(_,"-drag-box")),h=s.querySelector(".".concat(_,"-crop-box")),c=h.querySelector(".".concat(_,"-face"));this.container=r,this.cropper=s,this.canvas=l,this.dragBox=f,this.cropBox=h,this.viewBox=s.querySelector(".".concat(_,"-view-box")),this.face=c,l.appendChild(n),R(e,S),r.insertBefore(s,e.nextSibling),this.isImg||Y(n,he),this.initPreview(),this.bind(),i.initialAspectRatio=Math.max(0,i.initialAspectRatio)||NaN,i.aspectRatio=Math.max(0,i.aspectRatio)||NaN,i.viewMode=Math.max(0,Math.min(3,Math.round(i.viewMode)))||0,R(h,S),i.guides||R(h.getElementsByClassName("".concat(_,"-dashed")),S),i.center||R(h.getElementsByClassName("".concat(_,"-center")),S),i.background&&R(s,"".concat(_,"-bg")),i.highlight||R(c,fi),i.cropBoxMovable&&(R(c,Bt),gt(c,mt,Qt)),i.cropBoxResizable||(R(h.getElementsByClassName("".concat(_,"-line")),S),R(h.getElementsByClassName("".concat(_,"-point")),S)),this.render(),this.ready=!0,this.setDragMode(i.dragMode),i.autoCrop&&this.crop(),this.setData(i.data),k(i.ready)&&B(e,de,i.ready,{once:!0}),ht(e,de)}}},{key:"unbuild",value:function(){!this.ready||(this.ready=!1,this.unbind(),this.resetPreview(),this.cropper.parentNode.removeChild(this.cropper),Y(this.element,S))}},{key:"uncreate",value:function(){this.ready?(this.unbuild(),this.ready=!1,this.cropped=!1):this.sizing?(this.sizingImage.onload=null,this.sizing=!1,this.sized=!1):this.reloading?(this.xhr.onabort=null,this.xhr.abort()):this.image&&this.stop()}}],[{key:"noConflict",value:function(){return window.Cropper=Vi,a}},{key:"setDefaults",value:function(e){E(ge,nt(e)&&e)}}]),a}();E(Gi.prototype,Hi,Wi,Yi,Xi,Ui,ji);var ze=function(){if(typeof Map<"u")return Map;function a(t,e){var i=-1;return t.some(function(n,r){return n[0]===e?(i=r,!0):!1}),i}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(e){var i=a(this.__entries__,e),n=this.__entries__[i];return n&&n[1]},t.prototype.set=function(e,i){var n=a(this.__entries__,e);~n?this.__entries__[n][1]=i:this.__entries__.push([e,i])},t.prototype.delete=function(e){var i=this.__entries__,n=a(i,e);~n&&i.splice(n,1)},t.prototype.has=function(e){return!!~a(this.__entries__,e)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,i){i===void 0&&(i=null);for(var n=0,r=this.__entries__;n0},a.prototype.connect_=function(){!Ut||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),Zi?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},a.prototype.disconnect_=function(){!Ut||!this.connected_||(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},a.prototype.onTransitionEnd_=function(t){var e=t.propertyName,i=e===void 0?"":e,n=Qi.some(function(r){return!!~i.indexOf(r)});n&&this.refresh()},a.getInstance=function(){return this.instance_||(this.instance_=new a),this.instance_},a.instance_=null,a}(),Pe=function(a,t){for(var e=0,i=Object.keys(t);e"u"||!(Element instanceof Object))){if(!(t instanceof lt(t).Element))throw new TypeError('parameter 1 is not of type "Element".');var e=this.observations_;e.has(t)||(e.set(t,new sa(t)),this.controller_.addObserver(this),this.controller_.refresh())}},a.prototype.unobserve=function(t){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if(!(typeof Element>"u"||!(Element instanceof Object))){if(!(t instanceof lt(t).Element))throw new TypeError('parameter 1 is not of type "Element".');var e=this.observations_;!e.has(t)||(e.delete(t),e.size||this.controller_.removeObserver(this))}},a.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},a.prototype.gatherActive=function(){var t=this;this.clearActive(),this.observations_.forEach(function(e){e.isActive()&&t.activeObservations_.push(e)})},a.prototype.broadcastActive=function(){if(!!this.hasActive()){var t=this.callbackCtx_,e=this.activeObservations_.map(function(i){return new ha(i.target,i.broadcastRect())});this.callback_.call(t,e,t),this.clearActive()}},a.prototype.clearActive=function(){this.activeObservations_.splice(0)},a.prototype.hasActive=function(){return this.activeObservations_.length>0},a}(),We=typeof WeakMap<"u"?new WeakMap:new ze,Ye=function(){function a(t){if(!(this instanceof a))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var e=Ji.getInstance(),i=new ca(t,e,this);We.set(this,i)}return a}();["observe","unobserve","disconnect"].forEach(function(a){Ye.prototype[a]=function(){var t;return(t=We.get(this))[a].apply(t,arguments)}});var ba=function(){return typeof Ot.ResizeObserver<"u"?Ot.ResizeObserver:Ye}();function _e(a){let t,e,i,n,r,o;const s=[fa,la],l=[];function f(h,c){return h[1]==="video"?0:1}return e=f(a),i=l[e]=s[e](a),{c(){t=ct("button"),i.c(),p(t,"class","rounded-xl w-10 h-10 flex justify-center items-center absolute inset-x-0 bottom-2 md:bottom-4 xl:bottom-8 m-auto drop-shadow-lg bg-black/90")},m(h,c){U(h,t,c),l[e].m(t,null),n=!0,r||(o=je(t,"click",function(){Ve(a[1]==="image"?a[5]:a[6])&&(a[1]==="image"?a[5]:a[6]).apply(this,arguments)}),r=!0)},p(h,c){a=h;let u=e;e=f(a),e===u?l[e].p(a,c):(jt(),G(l[u],1,1,()=>{l[u]=null}),Vt(),i=l[e],i?i.p(a,c):(i=l[e]=s[e](a),i.c()),W(i,1),i.m(t,null))},i(h){n||(W(i),n=!0)},o(h){G(i),n=!1},d(h){h&&j(t),l[e].d(),r=!1,o()}}}function la(a){let t,e,i;return e=new Ze({}),{c(){t=ct("div"),Gt(e.$$.fragment),p(t,"class","w-2/4 h-2/4 text-white opacity-80")},m(n,r){U(n,t,r),qt(e,t,null),i=!0},p:I,i(n){i||(W(e.$$.fragment,n),i=!0)},o(n){G(e.$$.fragment,n),i=!1},d(n){n&&j(t),Ft(e)}}}function fa(a){let t,e,i,n;const r=[da,ua],o=[];function s(l,f){return l[4]?0:1}return t=s(a),e=o[t]=r[t](a),{c(){e.c(),i=$e()},m(l,f){o[t].m(l,f),U(l,i,f),n=!0},p(l,f){let h=t;t=s(l),t!==h&&(jt(),G(o[h],1,1,()=>{o[h]=null}),Vt(),e=o[t],e||(e=o[t]=r[t](l),e.c()),W(e,1),e.m(i.parentNode,i))},i(l){n||(W(e),n=!0)},o(l){G(e),n=!1},d(l){o[t].d(l),l&&j(i)}}}function ua(a){let t,e,i;return e=new ti({}),{c(){t=ct("div"),Gt(e.$$.fragment),p(t,"class","w-2/4 h-2/4 dark:text-white opacity-80")},m(n,r){U(n,t,r),qt(e,t,null),i=!0},i(n){i||(W(e.$$.fragment,n),i=!0)},o(n){G(e.$$.fragment,n),i=!1},d(n){n&&j(t),Ft(e)}}}function da(a){let t,e,i;return e=new ii({}),{c(){t=ct("div"),Gt(e.$$.fragment),p(t,"class","w-2/4 h-2/4 dark:text-white opacity-80")},m(n,r){U(n,t,r),qt(e,t,null),i=!0},i(n){i||(W(e.$$.fragment,n),i=!0)},o(n){G(e.$$.fragment,n),i=!1},d(n){n&&j(t),Ft(e)}}}function pa(a){let t,e,i,n,r=!a[0]&&_e(a);return{c(){t=ct("div"),e=ct("video"),i=Ge(),r&&r.c(),p(e,"class","h-full w-full "),re(e,"scale-x-[-1]",a[2]),p(t,"class","h-full min-h-[15rem] w-full relative")},m(o,s){U(o,t,s),Q(t,e),a[8](e),Q(t,i),r&&r.m(t,null),n=!0},p(o,[s]){s&4&&re(e,"scale-x-[-1]",o[2]),o[0]?r&&(jt(),G(r,1,1,()=>{r=null}),Vt()):r?(r.p(o,s),s&1&&W(r,1)):(r=_e(o),r.c(),W(r,1),r.m(t,null))},i(o){n||(W(r),n=!0)},o(o){G(r),n=!1},d(o){o&&j(t),a[8](null),r&&r.d()}}}function va(a,t,e){let i,n,{streaming:r=!1}=t,{pending:o=!1}=t,{mode:s="image"}=t,{mirror_webcam:l}=t;const f=qe();Fe(()=>n=document.createElement("canvas"));async function h(){try{m=await navigator.mediaDevices.getUserMedia({video:!0}),e(3,i.srcObject=m,i),i.play()}catch(v){if(v instanceof DOMException&&v.name=="NotAllowedError")return f("error","Please allow access to the webcam for recording."),null;throw v}}function c(){var v=n.getContext("2d");if(i.videoWidth&&i.videoHeight){n.width=i.videoWidth,n.height=i.videoHeight,v.drawImage(i,0,0,i.videoWidth,i.videoHeight);var T=n.toDataURL("image/png");f(r?"stream":"capture",T)}}let u=!1,g=[],m,y,w;function D(){if(u){w.stop();let v=new Blob(g,{type:y}),T=new FileReader;T.onload=function(A){A.target&&f("capture",{data:A.target.result,name:"sample."+y.substring(6),is_example:!1})},T.readAsDataURL(v)}else{g=[];let v=["video/webm","video/mp4"];for(let T of v)if(MediaRecorder.isTypeSupported(T)){y=T;break}if(y===null){console.error("No supported MediaRecorder mimeType");return}w=new MediaRecorder(m,{mimeType:y}),w.addEventListener("dataavailable",function(T){g.push(T.data)}),w.start(200)}e(4,u=!u)}h(),r&&s==="image"&&window.setInterval(()=>{i&&!o&&c()},500);function M(v){Ke[v?"unshift":"push"](()=>{i=v,e(3,i)})}return a.$$set=v=>{"streaming"in v&&e(0,r=v.streaming),"pending"in v&&e(7,o=v.pending),"mode"in v&&e(1,s=v.mode),"mirror_webcam"in v&&e(2,l=v.mirror_webcam)},[r,s,l,i,u,c,D,o,M]}class wa extends bt{constructor(t){super(),wt(this,t,va,pa,yt,{streaming:0,pending:7,mode:1,mirror_webcam:2})}}export{Gi as C,ga as U,wa as W,ba as i}; +//# sourceMappingURL=Webcam.1069ca6e.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Webcam.1069ca6e.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Webcam.1069ca6e.js.map new file mode 100644 index 0000000000000000000000000000000000000000..0f36273a85a5c02917509e5c9845e7a0665f838c --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/Webcam.1069ca6e.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Webcam.1069ca6e.js","sources":["../../../../ui/packages/icons/src/Camera.svelte","../../../../ui/packages/icons/src/Circle.svelte","../../../../ui/packages/icons/src/Square.svelte","../../../../ui/packages/icons/src/Undo.svelte","../../../../ui/node_modules/.pnpm/cropperjs@1.5.12/node_modules/cropperjs/dist/cropper.esm.js","../../../../ui/node_modules/.pnpm/resize-observer-polyfill@1.5.1/node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../../../../ui/packages/image/src/Webcam.svelte"],"sourcesContent":["\n","\n","\n","\n","/*!\n * Cropper.js v1.5.12\n * https://fengyuanchen.github.io/cropperjs\n *\n * Copyright 2015-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2021-06-12T08:00:17.411Z\n */\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar IS_BROWSER = typeof window !== 'undefined' && typeof window.document !== 'undefined';\nvar WINDOW = IS_BROWSER ? window : {};\nvar IS_TOUCH_DEVICE = IS_BROWSER && WINDOW.document.documentElement ? 'ontouchstart' in WINDOW.document.documentElement : false;\nvar HAS_POINTER_EVENT = IS_BROWSER ? 'PointerEvent' in WINDOW : false;\nvar NAMESPACE = 'cropper'; // Actions\n\nvar ACTION_ALL = 'all';\nvar ACTION_CROP = 'crop';\nvar ACTION_MOVE = 'move';\nvar ACTION_ZOOM = 'zoom';\nvar ACTION_EAST = 'e';\nvar ACTION_WEST = 'w';\nvar ACTION_SOUTH = 's';\nvar ACTION_NORTH = 'n';\nvar ACTION_NORTH_EAST = 'ne';\nvar ACTION_NORTH_WEST = 'nw';\nvar ACTION_SOUTH_EAST = 'se';\nvar ACTION_SOUTH_WEST = 'sw'; // Classes\n\nvar CLASS_CROP = \"\".concat(NAMESPACE, \"-crop\");\nvar CLASS_DISABLED = \"\".concat(NAMESPACE, \"-disabled\");\nvar CLASS_HIDDEN = \"\".concat(NAMESPACE, \"-hidden\");\nvar CLASS_HIDE = \"\".concat(NAMESPACE, \"-hide\");\nvar CLASS_INVISIBLE = \"\".concat(NAMESPACE, \"-invisible\");\nvar CLASS_MODAL = \"\".concat(NAMESPACE, \"-modal\");\nvar CLASS_MOVE = \"\".concat(NAMESPACE, \"-move\"); // Data keys\n\nvar DATA_ACTION = \"\".concat(NAMESPACE, \"Action\");\nvar DATA_PREVIEW = \"\".concat(NAMESPACE, \"Preview\"); // Drag modes\n\nvar DRAG_MODE_CROP = 'crop';\nvar DRAG_MODE_MOVE = 'move';\nvar DRAG_MODE_NONE = 'none'; // Events\n\nvar EVENT_CROP = 'crop';\nvar EVENT_CROP_END = 'cropend';\nvar EVENT_CROP_MOVE = 'cropmove';\nvar EVENT_CROP_START = 'cropstart';\nvar EVENT_DBLCLICK = 'dblclick';\nvar EVENT_TOUCH_START = IS_TOUCH_DEVICE ? 'touchstart' : 'mousedown';\nvar EVENT_TOUCH_MOVE = IS_TOUCH_DEVICE ? 'touchmove' : 'mousemove';\nvar EVENT_TOUCH_END = IS_TOUCH_DEVICE ? 'touchend touchcancel' : 'mouseup';\nvar EVENT_POINTER_DOWN = HAS_POINTER_EVENT ? 'pointerdown' : EVENT_TOUCH_START;\nvar EVENT_POINTER_MOVE = HAS_POINTER_EVENT ? 'pointermove' : EVENT_TOUCH_MOVE;\nvar EVENT_POINTER_UP = HAS_POINTER_EVENT ? 'pointerup pointercancel' : EVENT_TOUCH_END;\nvar EVENT_READY = 'ready';\nvar EVENT_RESIZE = 'resize';\nvar EVENT_WHEEL = 'wheel';\nvar EVENT_ZOOM = 'zoom'; // Mime types\n\nvar MIME_TYPE_JPEG = 'image/jpeg'; // RegExps\n\nvar REGEXP_ACTIONS = /^e|w|s|n|se|sw|ne|nw|all|crop|move|zoom$/;\nvar REGEXP_DATA_URL = /^data:/;\nvar REGEXP_DATA_URL_JPEG = /^data:image\\/jpeg;base64,/;\nvar REGEXP_TAG_NAME = /^img|canvas$/i; // Misc\n// Inspired by the default width and height of a canvas element.\n\nvar MIN_CONTAINER_WIDTH = 200;\nvar MIN_CONTAINER_HEIGHT = 100;\n\nvar DEFAULTS = {\n // Define the view mode of the cropper\n viewMode: 0,\n // 0, 1, 2, 3\n // Define the dragging mode of the cropper\n dragMode: DRAG_MODE_CROP,\n // 'crop', 'move' or 'none'\n // Define the initial aspect ratio of the crop box\n initialAspectRatio: NaN,\n // Define the aspect ratio of the crop box\n aspectRatio: NaN,\n // An object with the previous cropping result data\n data: null,\n // A selector for adding extra containers to preview\n preview: '',\n // Re-render the cropper when resize the window\n responsive: true,\n // Restore the cropped area after resize the window\n restore: true,\n // Check if the current image is a cross-origin image\n checkCrossOrigin: true,\n // Check the current image's Exif Orientation information\n checkOrientation: true,\n // Show the black modal\n modal: true,\n // Show the dashed lines for guiding\n guides: true,\n // Show the center indicator for guiding\n center: true,\n // Show the white modal to highlight the crop box\n highlight: true,\n // Show the grid background\n background: true,\n // Enable to crop the image automatically when initialize\n autoCrop: true,\n // Define the percentage of automatic cropping area when initializes\n autoCropArea: 0.8,\n // Enable to move the image\n movable: true,\n // Enable to rotate the image\n rotatable: true,\n // Enable to scale the image\n scalable: true,\n // Enable to zoom the image\n zoomable: true,\n // Enable to zoom the image by dragging touch\n zoomOnTouch: true,\n // Enable to zoom the image by wheeling mouse\n zoomOnWheel: true,\n // Define zoom ratio when zoom the image by wheeling mouse\n wheelZoomRatio: 0.1,\n // Enable to move the crop box\n cropBoxMovable: true,\n // Enable to resize the crop box\n cropBoxResizable: true,\n // Toggle drag mode between \"crop\" and \"move\" when click twice on the cropper\n toggleDragModeOnDblclick: true,\n // Size limitation\n minCanvasWidth: 0,\n minCanvasHeight: 0,\n minCropBoxWidth: 0,\n minCropBoxHeight: 0,\n minContainerWidth: MIN_CONTAINER_WIDTH,\n minContainerHeight: MIN_CONTAINER_HEIGHT,\n // Shortcuts of events\n ready: null,\n cropstart: null,\n cropmove: null,\n cropend: null,\n crop: null,\n zoom: null\n};\n\nvar TEMPLATE = '
    ' + '
    ' + '
    ' + '
    ' + '
    ' + '
    ' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '
    ' + '
    ';\n\n/**\n * Check if the given value is not a number.\n */\n\nvar isNaN = Number.isNaN || WINDOW.isNaN;\n/**\n * Check if the given value is a number.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a number, else `false`.\n */\n\nfunction isNumber(value) {\n return typeof value === 'number' && !isNaN(value);\n}\n/**\n * Check if the given value is a positive number.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a positive number, else `false`.\n */\n\nvar isPositiveNumber = function isPositiveNumber(value) {\n return value > 0 && value < Infinity;\n};\n/**\n * Check if the given value is undefined.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is undefined, else `false`.\n */\n\nfunction isUndefined(value) {\n return typeof value === 'undefined';\n}\n/**\n * Check if the given value is an object.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is an object, else `false`.\n */\n\nfunction isObject(value) {\n return _typeof(value) === 'object' && value !== null;\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n/**\n * Check if the given value is a plain object.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a plain object, else `false`.\n */\n\nfunction isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n\n try {\n var _constructor = value.constructor;\n var prototype = _constructor.prototype;\n return _constructor && prototype && hasOwnProperty.call(prototype, 'isPrototypeOf');\n } catch (error) {\n return false;\n }\n}\n/**\n * Check if the given value is a function.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a function, else `false`.\n */\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\nvar slice = Array.prototype.slice;\n/**\n * Convert array-like or iterable object to an array.\n * @param {*} value - The value to convert.\n * @returns {Array} Returns a new array.\n */\n\nfunction toArray(value) {\n return Array.from ? Array.from(value) : slice.call(value);\n}\n/**\n * Iterate the given data.\n * @param {*} data - The data to iterate.\n * @param {Function} callback - The process function for each element.\n * @returns {*} The original data.\n */\n\nfunction forEach(data, callback) {\n if (data && isFunction(callback)) {\n if (Array.isArray(data) || isNumber(data.length)\n /* array-like */\n ) {\n toArray(data).forEach(function (value, key) {\n callback.call(data, value, key, data);\n });\n } else if (isObject(data)) {\n Object.keys(data).forEach(function (key) {\n callback.call(data, data[key], key, data);\n });\n }\n }\n\n return data;\n}\n/**\n * Extend the given object.\n * @param {*} target - The target object to extend.\n * @param {*} args - The rest objects for merging to the target object.\n * @returns {Object} The extended object.\n */\n\nvar assign = Object.assign || function assign(target) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (isObject(target) && args.length > 0) {\n args.forEach(function (arg) {\n if (isObject(arg)) {\n Object.keys(arg).forEach(function (key) {\n target[key] = arg[key];\n });\n }\n });\n }\n\n return target;\n};\nvar REGEXP_DECIMALS = /\\.\\d*(?:0|9){12}\\d*$/;\n/**\n * Normalize decimal number.\n * Check out {@link https://0.30000000000000004.com/}\n * @param {number} value - The value to normalize.\n * @param {number} [times=100000000000] - The times for normalizing.\n * @returns {number} Returns the normalized number.\n */\n\nfunction normalizeDecimalNumber(value) {\n var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100000000000;\n return REGEXP_DECIMALS.test(value) ? Math.round(value * times) / times : value;\n}\nvar REGEXP_SUFFIX = /^width|height|left|top|marginLeft|marginTop$/;\n/**\n * Apply styles to the given element.\n * @param {Element} element - The target element.\n * @param {Object} styles - The styles for applying.\n */\n\nfunction setStyle(element, styles) {\n var style = element.style;\n forEach(styles, function (value, property) {\n if (REGEXP_SUFFIX.test(property) && isNumber(value)) {\n value = \"\".concat(value, \"px\");\n }\n\n style[property] = value;\n });\n}\n/**\n * Check if the given element has a special class.\n * @param {Element} element - The element to check.\n * @param {string} value - The class to search.\n * @returns {boolean} Returns `true` if the special class was found.\n */\n\nfunction hasClass(element, value) {\n return element.classList ? element.classList.contains(value) : element.className.indexOf(value) > -1;\n}\n/**\n * Add classes to the given element.\n * @param {Element} element - The target element.\n * @param {string} value - The classes to be added.\n */\n\nfunction addClass(element, value) {\n if (!value) {\n return;\n }\n\n if (isNumber(element.length)) {\n forEach(element, function (elem) {\n addClass(elem, value);\n });\n return;\n }\n\n if (element.classList) {\n element.classList.add(value);\n return;\n }\n\n var className = element.className.trim();\n\n if (!className) {\n element.className = value;\n } else if (className.indexOf(value) < 0) {\n element.className = \"\".concat(className, \" \").concat(value);\n }\n}\n/**\n * Remove classes from the given element.\n * @param {Element} element - The target element.\n * @param {string} value - The classes to be removed.\n */\n\nfunction removeClass(element, value) {\n if (!value) {\n return;\n }\n\n if (isNumber(element.length)) {\n forEach(element, function (elem) {\n removeClass(elem, value);\n });\n return;\n }\n\n if (element.classList) {\n element.classList.remove(value);\n return;\n }\n\n if (element.className.indexOf(value) >= 0) {\n element.className = element.className.replace(value, '');\n }\n}\n/**\n * Add or remove classes from the given element.\n * @param {Element} element - The target element.\n * @param {string} value - The classes to be toggled.\n * @param {boolean} added - Add only.\n */\n\nfunction toggleClass(element, value, added) {\n if (!value) {\n return;\n }\n\n if (isNumber(element.length)) {\n forEach(element, function (elem) {\n toggleClass(elem, value, added);\n });\n return;\n } // IE10-11 doesn't support the second parameter of `classList.toggle`\n\n\n if (added) {\n addClass(element, value);\n } else {\n removeClass(element, value);\n }\n}\nvar REGEXP_CAMEL_CASE = /([a-z\\d])([A-Z])/g;\n/**\n * Transform the given string from camelCase to kebab-case\n * @param {string} value - The value to transform.\n * @returns {string} The transformed value.\n */\n\nfunction toParamCase(value) {\n return value.replace(REGEXP_CAMEL_CASE, '$1-$2').toLowerCase();\n}\n/**\n * Get data from the given element.\n * @param {Element} element - The target element.\n * @param {string} name - The data key to get.\n * @returns {string} The data value.\n */\n\nfunction getData(element, name) {\n if (isObject(element[name])) {\n return element[name];\n }\n\n if (element.dataset) {\n return element.dataset[name];\n }\n\n return element.getAttribute(\"data-\".concat(toParamCase(name)));\n}\n/**\n * Set data to the given element.\n * @param {Element} element - The target element.\n * @param {string} name - The data key to set.\n * @param {string} data - The data value.\n */\n\nfunction setData(element, name, data) {\n if (isObject(data)) {\n element[name] = data;\n } else if (element.dataset) {\n element.dataset[name] = data;\n } else {\n element.setAttribute(\"data-\".concat(toParamCase(name)), data);\n }\n}\n/**\n * Remove data from the given element.\n * @param {Element} element - The target element.\n * @param {string} name - The data key to remove.\n */\n\nfunction removeData(element, name) {\n if (isObject(element[name])) {\n try {\n delete element[name];\n } catch (error) {\n element[name] = undefined;\n }\n } else if (element.dataset) {\n // #128 Safari not allows to delete dataset property\n try {\n delete element.dataset[name];\n } catch (error) {\n element.dataset[name] = undefined;\n }\n } else {\n element.removeAttribute(\"data-\".concat(toParamCase(name)));\n }\n}\nvar REGEXP_SPACES = /\\s\\s*/;\n\nvar onceSupported = function () {\n var supported = false;\n\n if (IS_BROWSER) {\n var once = false;\n\n var listener = function listener() {};\n\n var options = Object.defineProperty({}, 'once', {\n get: function get() {\n supported = true;\n return once;\n },\n\n /**\n * This setter can fix a `TypeError` in strict mode\n * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Getter_only}\n * @param {boolean} value - The value to set\n */\n set: function set(value) {\n once = value;\n }\n });\n WINDOW.addEventListener('test', listener, options);\n WINDOW.removeEventListener('test', listener, options);\n }\n\n return supported;\n}();\n/**\n * Remove event listener from the target element.\n * @param {Element} element - The event target.\n * @param {string} type - The event type(s).\n * @param {Function} listener - The event listener.\n * @param {Object} options - The event options.\n */\n\n\nfunction removeListener(element, type, listener) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var handler = listener;\n type.trim().split(REGEXP_SPACES).forEach(function (event) {\n if (!onceSupported) {\n var listeners = element.listeners;\n\n if (listeners && listeners[event] && listeners[event][listener]) {\n handler = listeners[event][listener];\n delete listeners[event][listener];\n\n if (Object.keys(listeners[event]).length === 0) {\n delete listeners[event];\n }\n\n if (Object.keys(listeners).length === 0) {\n delete element.listeners;\n }\n }\n }\n\n element.removeEventListener(event, handler, options);\n });\n}\n/**\n * Add event listener to the target element.\n * @param {Element} element - The event target.\n * @param {string} type - The event type(s).\n * @param {Function} listener - The event listener.\n * @param {Object} options - The event options.\n */\n\nfunction addListener(element, type, listener) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var _handler = listener;\n type.trim().split(REGEXP_SPACES).forEach(function (event) {\n if (options.once && !onceSupported) {\n var _element$listeners = element.listeners,\n listeners = _element$listeners === void 0 ? {} : _element$listeners;\n\n _handler = function handler() {\n delete listeners[event][listener];\n element.removeEventListener(event, _handler, options);\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n listener.apply(element, args);\n };\n\n if (!listeners[event]) {\n listeners[event] = {};\n }\n\n if (listeners[event][listener]) {\n element.removeEventListener(event, listeners[event][listener], options);\n }\n\n listeners[event][listener] = _handler;\n element.listeners = listeners;\n }\n\n element.addEventListener(event, _handler, options);\n });\n}\n/**\n * Dispatch event on the target element.\n * @param {Element} element - The event target.\n * @param {string} type - The event type(s).\n * @param {Object} data - The additional event data.\n * @returns {boolean} Indicate if the event is default prevented or not.\n */\n\nfunction dispatchEvent(element, type, data) {\n var event; // Event and CustomEvent on IE9-11 are global objects, not constructors\n\n if (isFunction(Event) && isFunction(CustomEvent)) {\n event = new CustomEvent(type, {\n detail: data,\n bubbles: true,\n cancelable: true\n });\n } else {\n event = document.createEvent('CustomEvent');\n event.initCustomEvent(type, true, true, data);\n }\n\n return element.dispatchEvent(event);\n}\n/**\n * Get the offset base on the document.\n * @param {Element} element - The target element.\n * @returns {Object} The offset data.\n */\n\nfunction getOffset(element) {\n var box = element.getBoundingClientRect();\n return {\n left: box.left + (window.pageXOffset - document.documentElement.clientLeft),\n top: box.top + (window.pageYOffset - document.documentElement.clientTop)\n };\n}\nvar location = WINDOW.location;\nvar REGEXP_ORIGINS = /^(\\w+:)\\/\\/([^:/?#]*):?(\\d*)/i;\n/**\n * Check if the given URL is a cross origin URL.\n * @param {string} url - The target URL.\n * @returns {boolean} Returns `true` if the given URL is a cross origin URL, else `false`.\n */\n\nfunction isCrossOriginURL(url) {\n var parts = url.match(REGEXP_ORIGINS);\n return parts !== null && (parts[1] !== location.protocol || parts[2] !== location.hostname || parts[3] !== location.port);\n}\n/**\n * Add timestamp to the given URL.\n * @param {string} url - The target URL.\n * @returns {string} The result URL.\n */\n\nfunction addTimestamp(url) {\n var timestamp = \"timestamp=\".concat(new Date().getTime());\n return url + (url.indexOf('?') === -1 ? '?' : '&') + timestamp;\n}\n/**\n * Get transforms base on the given object.\n * @param {Object} obj - The target object.\n * @returns {string} A string contains transform values.\n */\n\nfunction getTransforms(_ref) {\n var rotate = _ref.rotate,\n scaleX = _ref.scaleX,\n scaleY = _ref.scaleY,\n translateX = _ref.translateX,\n translateY = _ref.translateY;\n var values = [];\n\n if (isNumber(translateX) && translateX !== 0) {\n values.push(\"translateX(\".concat(translateX, \"px)\"));\n }\n\n if (isNumber(translateY) && translateY !== 0) {\n values.push(\"translateY(\".concat(translateY, \"px)\"));\n } // Rotate should come first before scale to match orientation transform\n\n\n if (isNumber(rotate) && rotate !== 0) {\n values.push(\"rotate(\".concat(rotate, \"deg)\"));\n }\n\n if (isNumber(scaleX) && scaleX !== 1) {\n values.push(\"scaleX(\".concat(scaleX, \")\"));\n }\n\n if (isNumber(scaleY) && scaleY !== 1) {\n values.push(\"scaleY(\".concat(scaleY, \")\"));\n }\n\n var transform = values.length ? values.join(' ') : 'none';\n return {\n WebkitTransform: transform,\n msTransform: transform,\n transform: transform\n };\n}\n/**\n * Get the max ratio of a group of pointers.\n * @param {string} pointers - The target pointers.\n * @returns {number} The result ratio.\n */\n\nfunction getMaxZoomRatio(pointers) {\n var pointers2 = _objectSpread2({}, pointers);\n\n var maxRatio = 0;\n forEach(pointers, function (pointer, pointerId) {\n delete pointers2[pointerId];\n forEach(pointers2, function (pointer2) {\n var x1 = Math.abs(pointer.startX - pointer2.startX);\n var y1 = Math.abs(pointer.startY - pointer2.startY);\n var x2 = Math.abs(pointer.endX - pointer2.endX);\n var y2 = Math.abs(pointer.endY - pointer2.endY);\n var z1 = Math.sqrt(x1 * x1 + y1 * y1);\n var z2 = Math.sqrt(x2 * x2 + y2 * y2);\n var ratio = (z2 - z1) / z1;\n\n if (Math.abs(ratio) > Math.abs(maxRatio)) {\n maxRatio = ratio;\n }\n });\n });\n return maxRatio;\n}\n/**\n * Get a pointer from an event object.\n * @param {Object} event - The target event object.\n * @param {boolean} endOnly - Indicates if only returns the end point coordinate or not.\n * @returns {Object} The result pointer contains start and/or end point coordinates.\n */\n\nfunction getPointer(_ref2, endOnly) {\n var pageX = _ref2.pageX,\n pageY = _ref2.pageY;\n var end = {\n endX: pageX,\n endY: pageY\n };\n return endOnly ? end : _objectSpread2({\n startX: pageX,\n startY: pageY\n }, end);\n}\n/**\n * Get the center point coordinate of a group of pointers.\n * @param {Object} pointers - The target pointers.\n * @returns {Object} The center point coordinate.\n */\n\nfunction getPointersCenter(pointers) {\n var pageX = 0;\n var pageY = 0;\n var count = 0;\n forEach(pointers, function (_ref3) {\n var startX = _ref3.startX,\n startY = _ref3.startY;\n pageX += startX;\n pageY += startY;\n count += 1;\n });\n pageX /= count;\n pageY /= count;\n return {\n pageX: pageX,\n pageY: pageY\n };\n}\n/**\n * Get the max sizes in a rectangle under the given aspect ratio.\n * @param {Object} data - The original sizes.\n * @param {string} [type='contain'] - The adjust type.\n * @returns {Object} The result sizes.\n */\n\nfunction getAdjustedSizes(_ref4) // or 'cover'\n{\n var aspectRatio = _ref4.aspectRatio,\n height = _ref4.height,\n width = _ref4.width;\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'contain';\n var isValidWidth = isPositiveNumber(width);\n var isValidHeight = isPositiveNumber(height);\n\n if (isValidWidth && isValidHeight) {\n var adjustedWidth = height * aspectRatio;\n\n if (type === 'contain' && adjustedWidth > width || type === 'cover' && adjustedWidth < width) {\n height = width / aspectRatio;\n } else {\n width = height * aspectRatio;\n }\n } else if (isValidWidth) {\n height = width / aspectRatio;\n } else if (isValidHeight) {\n width = height * aspectRatio;\n }\n\n return {\n width: width,\n height: height\n };\n}\n/**\n * Get the new sizes of a rectangle after rotated.\n * @param {Object} data - The original sizes.\n * @returns {Object} The result sizes.\n */\n\nfunction getRotatedSizes(_ref5) {\n var width = _ref5.width,\n height = _ref5.height,\n degree = _ref5.degree;\n degree = Math.abs(degree) % 180;\n\n if (degree === 90) {\n return {\n width: height,\n height: width\n };\n }\n\n var arc = degree % 90 * Math.PI / 180;\n var sinArc = Math.sin(arc);\n var cosArc = Math.cos(arc);\n var newWidth = width * cosArc + height * sinArc;\n var newHeight = width * sinArc + height * cosArc;\n return degree > 90 ? {\n width: newHeight,\n height: newWidth\n } : {\n width: newWidth,\n height: newHeight\n };\n}\n/**\n * Get a canvas which drew the given image.\n * @param {HTMLImageElement} image - The image for drawing.\n * @param {Object} imageData - The image data.\n * @param {Object} canvasData - The canvas data.\n * @param {Object} options - The options.\n * @returns {HTMLCanvasElement} The result canvas.\n */\n\nfunction getSourceCanvas(image, _ref6, _ref7, _ref8) {\n var imageAspectRatio = _ref6.aspectRatio,\n imageNaturalWidth = _ref6.naturalWidth,\n imageNaturalHeight = _ref6.naturalHeight,\n _ref6$rotate = _ref6.rotate,\n rotate = _ref6$rotate === void 0 ? 0 : _ref6$rotate,\n _ref6$scaleX = _ref6.scaleX,\n scaleX = _ref6$scaleX === void 0 ? 1 : _ref6$scaleX,\n _ref6$scaleY = _ref6.scaleY,\n scaleY = _ref6$scaleY === void 0 ? 1 : _ref6$scaleY;\n var aspectRatio = _ref7.aspectRatio,\n naturalWidth = _ref7.naturalWidth,\n naturalHeight = _ref7.naturalHeight;\n var _ref8$fillColor = _ref8.fillColor,\n fillColor = _ref8$fillColor === void 0 ? 'transparent' : _ref8$fillColor,\n _ref8$imageSmoothingE = _ref8.imageSmoothingEnabled,\n imageSmoothingEnabled = _ref8$imageSmoothingE === void 0 ? true : _ref8$imageSmoothingE,\n _ref8$imageSmoothingQ = _ref8.imageSmoothingQuality,\n imageSmoothingQuality = _ref8$imageSmoothingQ === void 0 ? 'low' : _ref8$imageSmoothingQ,\n _ref8$maxWidth = _ref8.maxWidth,\n maxWidth = _ref8$maxWidth === void 0 ? Infinity : _ref8$maxWidth,\n _ref8$maxHeight = _ref8.maxHeight,\n maxHeight = _ref8$maxHeight === void 0 ? Infinity : _ref8$maxHeight,\n _ref8$minWidth = _ref8.minWidth,\n minWidth = _ref8$minWidth === void 0 ? 0 : _ref8$minWidth,\n _ref8$minHeight = _ref8.minHeight,\n minHeight = _ref8$minHeight === void 0 ? 0 : _ref8$minHeight;\n var canvas = document.createElement('canvas');\n var context = canvas.getContext('2d');\n var maxSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: maxWidth,\n height: maxHeight\n });\n var minSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: minWidth,\n height: minHeight\n }, 'cover');\n var width = Math.min(maxSizes.width, Math.max(minSizes.width, naturalWidth));\n var height = Math.min(maxSizes.height, Math.max(minSizes.height, naturalHeight)); // Note: should always use image's natural sizes for drawing as\n // imageData.naturalWidth === canvasData.naturalHeight when rotate % 180 === 90\n\n var destMaxSizes = getAdjustedSizes({\n aspectRatio: imageAspectRatio,\n width: maxWidth,\n height: maxHeight\n });\n var destMinSizes = getAdjustedSizes({\n aspectRatio: imageAspectRatio,\n width: minWidth,\n height: minHeight\n }, 'cover');\n var destWidth = Math.min(destMaxSizes.width, Math.max(destMinSizes.width, imageNaturalWidth));\n var destHeight = Math.min(destMaxSizes.height, Math.max(destMinSizes.height, imageNaturalHeight));\n var params = [-destWidth / 2, -destHeight / 2, destWidth, destHeight];\n canvas.width = normalizeDecimalNumber(width);\n canvas.height = normalizeDecimalNumber(height);\n context.fillStyle = fillColor;\n context.fillRect(0, 0, width, height);\n context.save();\n context.translate(width / 2, height / 2);\n context.rotate(rotate * Math.PI / 180);\n context.scale(scaleX, scaleY);\n context.imageSmoothingEnabled = imageSmoothingEnabled;\n context.imageSmoothingQuality = imageSmoothingQuality;\n context.drawImage.apply(context, [image].concat(_toConsumableArray(params.map(function (param) {\n return Math.floor(normalizeDecimalNumber(param));\n }))));\n context.restore();\n return canvas;\n}\nvar fromCharCode = String.fromCharCode;\n/**\n * Get string from char code in data view.\n * @param {DataView} dataView - The data view for read.\n * @param {number} start - The start index.\n * @param {number} length - The read length.\n * @returns {string} The read result.\n */\n\nfunction getStringFromCharCode(dataView, start, length) {\n var str = '';\n length += start;\n\n for (var i = start; i < length; i += 1) {\n str += fromCharCode(dataView.getUint8(i));\n }\n\n return str;\n}\nvar REGEXP_DATA_URL_HEAD = /^data:.*,/;\n/**\n * Transform Data URL to array buffer.\n * @param {string} dataURL - The Data URL to transform.\n * @returns {ArrayBuffer} The result array buffer.\n */\n\nfunction dataURLToArrayBuffer(dataURL) {\n var base64 = dataURL.replace(REGEXP_DATA_URL_HEAD, '');\n var binary = atob(base64);\n var arrayBuffer = new ArrayBuffer(binary.length);\n var uint8 = new Uint8Array(arrayBuffer);\n forEach(uint8, function (value, i) {\n uint8[i] = binary.charCodeAt(i);\n });\n return arrayBuffer;\n}\n/**\n * Transform array buffer to Data URL.\n * @param {ArrayBuffer} arrayBuffer - The array buffer to transform.\n * @param {string} mimeType - The mime type of the Data URL.\n * @returns {string} The result Data URL.\n */\n\nfunction arrayBufferToDataURL(arrayBuffer, mimeType) {\n var chunks = []; // Chunk Typed Array for better performance (#435)\n\n var chunkSize = 8192;\n var uint8 = new Uint8Array(arrayBuffer);\n\n while (uint8.length > 0) {\n // XXX: Babel's `toConsumableArray` helper will throw error in IE or Safari 9\n // eslint-disable-next-line prefer-spread\n chunks.push(fromCharCode.apply(null, toArray(uint8.subarray(0, chunkSize))));\n uint8 = uint8.subarray(chunkSize);\n }\n\n return \"data:\".concat(mimeType, \";base64,\").concat(btoa(chunks.join('')));\n}\n/**\n * Get orientation value from given array buffer.\n * @param {ArrayBuffer} arrayBuffer - The array buffer to read.\n * @returns {number} The read orientation value.\n */\n\nfunction resetAndGetOrientation(arrayBuffer) {\n var dataView = new DataView(arrayBuffer);\n var orientation; // Ignores range error when the image does not have correct Exif information\n\n try {\n var littleEndian;\n var app1Start;\n var ifdStart; // Only handle JPEG image (start by 0xFFD8)\n\n if (dataView.getUint8(0) === 0xFF && dataView.getUint8(1) === 0xD8) {\n var length = dataView.byteLength;\n var offset = 2;\n\n while (offset + 1 < length) {\n if (dataView.getUint8(offset) === 0xFF && dataView.getUint8(offset + 1) === 0xE1) {\n app1Start = offset;\n break;\n }\n\n offset += 1;\n }\n }\n\n if (app1Start) {\n var exifIDCode = app1Start + 4;\n var tiffOffset = app1Start + 10;\n\n if (getStringFromCharCode(dataView, exifIDCode, 4) === 'Exif') {\n var endianness = dataView.getUint16(tiffOffset);\n littleEndian = endianness === 0x4949;\n\n if (littleEndian || endianness === 0x4D4D\n /* bigEndian */\n ) {\n if (dataView.getUint16(tiffOffset + 2, littleEndian) === 0x002A) {\n var firstIFDOffset = dataView.getUint32(tiffOffset + 4, littleEndian);\n\n if (firstIFDOffset >= 0x00000008) {\n ifdStart = tiffOffset + firstIFDOffset;\n }\n }\n }\n }\n }\n\n if (ifdStart) {\n var _length = dataView.getUint16(ifdStart, littleEndian);\n\n var _offset;\n\n var i;\n\n for (i = 0; i < _length; i += 1) {\n _offset = ifdStart + i * 12 + 2;\n\n if (dataView.getUint16(_offset, littleEndian) === 0x0112\n /* Orientation */\n ) {\n // 8 is the offset of the current tag's value\n _offset += 8; // Get the original orientation value\n\n orientation = dataView.getUint16(_offset, littleEndian); // Override the orientation with its default value\n\n dataView.setUint16(_offset, 1, littleEndian);\n break;\n }\n }\n }\n } catch (error) {\n orientation = 1;\n }\n\n return orientation;\n}\n/**\n * Parse Exif Orientation value.\n * @param {number} orientation - The orientation to parse.\n * @returns {Object} The parsed result.\n */\n\nfunction parseOrientation(orientation) {\n var rotate = 0;\n var scaleX = 1;\n var scaleY = 1;\n\n switch (orientation) {\n // Flip horizontal\n case 2:\n scaleX = -1;\n break;\n // Rotate left 180°\n\n case 3:\n rotate = -180;\n break;\n // Flip vertical\n\n case 4:\n scaleY = -1;\n break;\n // Flip vertical and rotate right 90°\n\n case 5:\n rotate = 90;\n scaleY = -1;\n break;\n // Rotate right 90°\n\n case 6:\n rotate = 90;\n break;\n // Flip horizontal and rotate right 90°\n\n case 7:\n rotate = 90;\n scaleX = -1;\n break;\n // Rotate left 90°\n\n case 8:\n rotate = -90;\n break;\n }\n\n return {\n rotate: rotate,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n\nvar render = {\n render: function render() {\n this.initContainer();\n this.initCanvas();\n this.initCropBox();\n this.renderCanvas();\n\n if (this.cropped) {\n this.renderCropBox();\n }\n },\n initContainer: function initContainer() {\n var element = this.element,\n options = this.options,\n container = this.container,\n cropper = this.cropper;\n var minWidth = Number(options.minContainerWidth);\n var minHeight = Number(options.minContainerHeight);\n addClass(cropper, CLASS_HIDDEN);\n removeClass(element, CLASS_HIDDEN);\n var containerData = {\n width: Math.max(container.offsetWidth, minWidth >= 0 ? minWidth : MIN_CONTAINER_WIDTH),\n height: Math.max(container.offsetHeight, minHeight >= 0 ? minHeight : MIN_CONTAINER_HEIGHT)\n };\n this.containerData = containerData;\n setStyle(cropper, {\n width: containerData.width,\n height: containerData.height\n });\n addClass(element, CLASS_HIDDEN);\n removeClass(cropper, CLASS_HIDDEN);\n },\n // Canvas (image wrapper)\n initCanvas: function initCanvas() {\n var containerData = this.containerData,\n imageData = this.imageData;\n var viewMode = this.options.viewMode;\n var rotated = Math.abs(imageData.rotate) % 180 === 90;\n var naturalWidth = rotated ? imageData.naturalHeight : imageData.naturalWidth;\n var naturalHeight = rotated ? imageData.naturalWidth : imageData.naturalHeight;\n var aspectRatio = naturalWidth / naturalHeight;\n var canvasWidth = containerData.width;\n var canvasHeight = containerData.height;\n\n if (containerData.height * aspectRatio > containerData.width) {\n if (viewMode === 3) {\n canvasWidth = containerData.height * aspectRatio;\n } else {\n canvasHeight = containerData.width / aspectRatio;\n }\n } else if (viewMode === 3) {\n canvasHeight = containerData.width / aspectRatio;\n } else {\n canvasWidth = containerData.height * aspectRatio;\n }\n\n var canvasData = {\n aspectRatio: aspectRatio,\n naturalWidth: naturalWidth,\n naturalHeight: naturalHeight,\n width: canvasWidth,\n height: canvasHeight\n };\n this.canvasData = canvasData;\n this.limited = viewMode === 1 || viewMode === 2;\n this.limitCanvas(true, true);\n canvasData.width = Math.min(Math.max(canvasData.width, canvasData.minWidth), canvasData.maxWidth);\n canvasData.height = Math.min(Math.max(canvasData.height, canvasData.minHeight), canvasData.maxHeight);\n canvasData.left = (containerData.width - canvasData.width) / 2;\n canvasData.top = (containerData.height - canvasData.height) / 2;\n canvasData.oldLeft = canvasData.left;\n canvasData.oldTop = canvasData.top;\n this.initialCanvasData = assign({}, canvasData);\n },\n limitCanvas: function limitCanvas(sizeLimited, positionLimited) {\n var options = this.options,\n containerData = this.containerData,\n canvasData = this.canvasData,\n cropBoxData = this.cropBoxData;\n var viewMode = options.viewMode;\n var aspectRatio = canvasData.aspectRatio;\n var cropped = this.cropped && cropBoxData;\n\n if (sizeLimited) {\n var minCanvasWidth = Number(options.minCanvasWidth) || 0;\n var minCanvasHeight = Number(options.minCanvasHeight) || 0;\n\n if (viewMode > 1) {\n minCanvasWidth = Math.max(minCanvasWidth, containerData.width);\n minCanvasHeight = Math.max(minCanvasHeight, containerData.height);\n\n if (viewMode === 3) {\n if (minCanvasHeight * aspectRatio > minCanvasWidth) {\n minCanvasWidth = minCanvasHeight * aspectRatio;\n } else {\n minCanvasHeight = minCanvasWidth / aspectRatio;\n }\n }\n } else if (viewMode > 0) {\n if (minCanvasWidth) {\n minCanvasWidth = Math.max(minCanvasWidth, cropped ? cropBoxData.width : 0);\n } else if (minCanvasHeight) {\n minCanvasHeight = Math.max(minCanvasHeight, cropped ? cropBoxData.height : 0);\n } else if (cropped) {\n minCanvasWidth = cropBoxData.width;\n minCanvasHeight = cropBoxData.height;\n\n if (minCanvasHeight * aspectRatio > minCanvasWidth) {\n minCanvasWidth = minCanvasHeight * aspectRatio;\n } else {\n minCanvasHeight = minCanvasWidth / aspectRatio;\n }\n }\n }\n\n var _getAdjustedSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: minCanvasWidth,\n height: minCanvasHeight\n });\n\n minCanvasWidth = _getAdjustedSizes.width;\n minCanvasHeight = _getAdjustedSizes.height;\n canvasData.minWidth = minCanvasWidth;\n canvasData.minHeight = minCanvasHeight;\n canvasData.maxWidth = Infinity;\n canvasData.maxHeight = Infinity;\n }\n\n if (positionLimited) {\n if (viewMode > (cropped ? 0 : 1)) {\n var newCanvasLeft = containerData.width - canvasData.width;\n var newCanvasTop = containerData.height - canvasData.height;\n canvasData.minLeft = Math.min(0, newCanvasLeft);\n canvasData.minTop = Math.min(0, newCanvasTop);\n canvasData.maxLeft = Math.max(0, newCanvasLeft);\n canvasData.maxTop = Math.max(0, newCanvasTop);\n\n if (cropped && this.limited) {\n canvasData.minLeft = Math.min(cropBoxData.left, cropBoxData.left + (cropBoxData.width - canvasData.width));\n canvasData.minTop = Math.min(cropBoxData.top, cropBoxData.top + (cropBoxData.height - canvasData.height));\n canvasData.maxLeft = cropBoxData.left;\n canvasData.maxTop = cropBoxData.top;\n\n if (viewMode === 2) {\n if (canvasData.width >= containerData.width) {\n canvasData.minLeft = Math.min(0, newCanvasLeft);\n canvasData.maxLeft = Math.max(0, newCanvasLeft);\n }\n\n if (canvasData.height >= containerData.height) {\n canvasData.minTop = Math.min(0, newCanvasTop);\n canvasData.maxTop = Math.max(0, newCanvasTop);\n }\n }\n }\n } else {\n canvasData.minLeft = -canvasData.width;\n canvasData.minTop = -canvasData.height;\n canvasData.maxLeft = containerData.width;\n canvasData.maxTop = containerData.height;\n }\n }\n },\n renderCanvas: function renderCanvas(changed, transformed) {\n var canvasData = this.canvasData,\n imageData = this.imageData;\n\n if (transformed) {\n var _getRotatedSizes = getRotatedSizes({\n width: imageData.naturalWidth * Math.abs(imageData.scaleX || 1),\n height: imageData.naturalHeight * Math.abs(imageData.scaleY || 1),\n degree: imageData.rotate || 0\n }),\n naturalWidth = _getRotatedSizes.width,\n naturalHeight = _getRotatedSizes.height;\n\n var width = canvasData.width * (naturalWidth / canvasData.naturalWidth);\n var height = canvasData.height * (naturalHeight / canvasData.naturalHeight);\n canvasData.left -= (width - canvasData.width) / 2;\n canvasData.top -= (height - canvasData.height) / 2;\n canvasData.width = width;\n canvasData.height = height;\n canvasData.aspectRatio = naturalWidth / naturalHeight;\n canvasData.naturalWidth = naturalWidth;\n canvasData.naturalHeight = naturalHeight;\n this.limitCanvas(true, false);\n }\n\n if (canvasData.width > canvasData.maxWidth || canvasData.width < canvasData.minWidth) {\n canvasData.left = canvasData.oldLeft;\n }\n\n if (canvasData.height > canvasData.maxHeight || canvasData.height < canvasData.minHeight) {\n canvasData.top = canvasData.oldTop;\n }\n\n canvasData.width = Math.min(Math.max(canvasData.width, canvasData.minWidth), canvasData.maxWidth);\n canvasData.height = Math.min(Math.max(canvasData.height, canvasData.minHeight), canvasData.maxHeight);\n this.limitCanvas(false, true);\n canvasData.left = Math.min(Math.max(canvasData.left, canvasData.minLeft), canvasData.maxLeft);\n canvasData.top = Math.min(Math.max(canvasData.top, canvasData.minTop), canvasData.maxTop);\n canvasData.oldLeft = canvasData.left;\n canvasData.oldTop = canvasData.top;\n setStyle(this.canvas, assign({\n width: canvasData.width,\n height: canvasData.height\n }, getTransforms({\n translateX: canvasData.left,\n translateY: canvasData.top\n })));\n this.renderImage(changed);\n\n if (this.cropped && this.limited) {\n this.limitCropBox(true, true);\n }\n },\n renderImage: function renderImage(changed) {\n var canvasData = this.canvasData,\n imageData = this.imageData;\n var width = imageData.naturalWidth * (canvasData.width / canvasData.naturalWidth);\n var height = imageData.naturalHeight * (canvasData.height / canvasData.naturalHeight);\n assign(imageData, {\n width: width,\n height: height,\n left: (canvasData.width - width) / 2,\n top: (canvasData.height - height) / 2\n });\n setStyle(this.image, assign({\n width: imageData.width,\n height: imageData.height\n }, getTransforms(assign({\n translateX: imageData.left,\n translateY: imageData.top\n }, imageData))));\n\n if (changed) {\n this.output();\n }\n },\n initCropBox: function initCropBox() {\n var options = this.options,\n canvasData = this.canvasData;\n var aspectRatio = options.aspectRatio || options.initialAspectRatio;\n var autoCropArea = Number(options.autoCropArea) || 0.8;\n var cropBoxData = {\n width: canvasData.width,\n height: canvasData.height\n };\n\n if (aspectRatio) {\n if (canvasData.height * aspectRatio > canvasData.width) {\n cropBoxData.height = cropBoxData.width / aspectRatio;\n } else {\n cropBoxData.width = cropBoxData.height * aspectRatio;\n }\n }\n\n this.cropBoxData = cropBoxData;\n this.limitCropBox(true, true); // Initialize auto crop area\n\n cropBoxData.width = Math.min(Math.max(cropBoxData.width, cropBoxData.minWidth), cropBoxData.maxWidth);\n cropBoxData.height = Math.min(Math.max(cropBoxData.height, cropBoxData.minHeight), cropBoxData.maxHeight); // The width/height of auto crop area must large than \"minWidth/Height\"\n\n cropBoxData.width = Math.max(cropBoxData.minWidth, cropBoxData.width * autoCropArea);\n cropBoxData.height = Math.max(cropBoxData.minHeight, cropBoxData.height * autoCropArea);\n cropBoxData.left = canvasData.left + (canvasData.width - cropBoxData.width) / 2;\n cropBoxData.top = canvasData.top + (canvasData.height - cropBoxData.height) / 2;\n cropBoxData.oldLeft = cropBoxData.left;\n cropBoxData.oldTop = cropBoxData.top;\n this.initialCropBoxData = assign({}, cropBoxData);\n },\n limitCropBox: function limitCropBox(sizeLimited, positionLimited) {\n var options = this.options,\n containerData = this.containerData,\n canvasData = this.canvasData,\n cropBoxData = this.cropBoxData,\n limited = this.limited;\n var aspectRatio = options.aspectRatio;\n\n if (sizeLimited) {\n var minCropBoxWidth = Number(options.minCropBoxWidth) || 0;\n var minCropBoxHeight = Number(options.minCropBoxHeight) || 0;\n var maxCropBoxWidth = limited ? Math.min(containerData.width, canvasData.width, canvasData.width + canvasData.left, containerData.width - canvasData.left) : containerData.width;\n var maxCropBoxHeight = limited ? Math.min(containerData.height, canvasData.height, canvasData.height + canvasData.top, containerData.height - canvasData.top) : containerData.height; // The min/maxCropBoxWidth/Height must be less than container's width/height\n\n minCropBoxWidth = Math.min(minCropBoxWidth, containerData.width);\n minCropBoxHeight = Math.min(minCropBoxHeight, containerData.height);\n\n if (aspectRatio) {\n if (minCropBoxWidth && minCropBoxHeight) {\n if (minCropBoxHeight * aspectRatio > minCropBoxWidth) {\n minCropBoxHeight = minCropBoxWidth / aspectRatio;\n } else {\n minCropBoxWidth = minCropBoxHeight * aspectRatio;\n }\n } else if (minCropBoxWidth) {\n minCropBoxHeight = minCropBoxWidth / aspectRatio;\n } else if (minCropBoxHeight) {\n minCropBoxWidth = minCropBoxHeight * aspectRatio;\n }\n\n if (maxCropBoxHeight * aspectRatio > maxCropBoxWidth) {\n maxCropBoxHeight = maxCropBoxWidth / aspectRatio;\n } else {\n maxCropBoxWidth = maxCropBoxHeight * aspectRatio;\n }\n } // The minWidth/Height must be less than maxWidth/Height\n\n\n cropBoxData.minWidth = Math.min(minCropBoxWidth, maxCropBoxWidth);\n cropBoxData.minHeight = Math.min(minCropBoxHeight, maxCropBoxHeight);\n cropBoxData.maxWidth = maxCropBoxWidth;\n cropBoxData.maxHeight = maxCropBoxHeight;\n }\n\n if (positionLimited) {\n if (limited) {\n cropBoxData.minLeft = Math.max(0, canvasData.left);\n cropBoxData.minTop = Math.max(0, canvasData.top);\n cropBoxData.maxLeft = Math.min(containerData.width, canvasData.left + canvasData.width) - cropBoxData.width;\n cropBoxData.maxTop = Math.min(containerData.height, canvasData.top + canvasData.height) - cropBoxData.height;\n } else {\n cropBoxData.minLeft = 0;\n cropBoxData.minTop = 0;\n cropBoxData.maxLeft = containerData.width - cropBoxData.width;\n cropBoxData.maxTop = containerData.height - cropBoxData.height;\n }\n }\n },\n renderCropBox: function renderCropBox() {\n var options = this.options,\n containerData = this.containerData,\n cropBoxData = this.cropBoxData;\n\n if (cropBoxData.width > cropBoxData.maxWidth || cropBoxData.width < cropBoxData.minWidth) {\n cropBoxData.left = cropBoxData.oldLeft;\n }\n\n if (cropBoxData.height > cropBoxData.maxHeight || cropBoxData.height < cropBoxData.minHeight) {\n cropBoxData.top = cropBoxData.oldTop;\n }\n\n cropBoxData.width = Math.min(Math.max(cropBoxData.width, cropBoxData.minWidth), cropBoxData.maxWidth);\n cropBoxData.height = Math.min(Math.max(cropBoxData.height, cropBoxData.minHeight), cropBoxData.maxHeight);\n this.limitCropBox(false, true);\n cropBoxData.left = Math.min(Math.max(cropBoxData.left, cropBoxData.minLeft), cropBoxData.maxLeft);\n cropBoxData.top = Math.min(Math.max(cropBoxData.top, cropBoxData.minTop), cropBoxData.maxTop);\n cropBoxData.oldLeft = cropBoxData.left;\n cropBoxData.oldTop = cropBoxData.top;\n\n if (options.movable && options.cropBoxMovable) {\n // Turn to move the canvas when the crop box is equal to the container\n setData(this.face, DATA_ACTION, cropBoxData.width >= containerData.width && cropBoxData.height >= containerData.height ? ACTION_MOVE : ACTION_ALL);\n }\n\n setStyle(this.cropBox, assign({\n width: cropBoxData.width,\n height: cropBoxData.height\n }, getTransforms({\n translateX: cropBoxData.left,\n translateY: cropBoxData.top\n })));\n\n if (this.cropped && this.limited) {\n this.limitCanvas(true, true);\n }\n\n if (!this.disabled) {\n this.output();\n }\n },\n output: function output() {\n this.preview();\n dispatchEvent(this.element, EVENT_CROP, this.getData());\n }\n};\n\nvar preview = {\n initPreview: function initPreview() {\n var element = this.element,\n crossOrigin = this.crossOrigin;\n var preview = this.options.preview;\n var url = crossOrigin ? this.crossOriginUrl : this.url;\n var alt = element.alt || 'The image to preview';\n var image = document.createElement('img');\n\n if (crossOrigin) {\n image.crossOrigin = crossOrigin;\n }\n\n image.src = url;\n image.alt = alt;\n this.viewBox.appendChild(image);\n this.viewBoxImage = image;\n\n if (!preview) {\n return;\n }\n\n var previews = preview;\n\n if (typeof preview === 'string') {\n previews = element.ownerDocument.querySelectorAll(preview);\n } else if (preview.querySelector) {\n previews = [preview];\n }\n\n this.previews = previews;\n forEach(previews, function (el) {\n var img = document.createElement('img'); // Save the original size for recover\n\n setData(el, DATA_PREVIEW, {\n width: el.offsetWidth,\n height: el.offsetHeight,\n html: el.innerHTML\n });\n\n if (crossOrigin) {\n img.crossOrigin = crossOrigin;\n }\n\n img.src = url;\n img.alt = alt;\n /**\n * Override img element styles\n * Add `display:block` to avoid margin top issue\n * Add `height:auto` to override `height` attribute on IE8\n * (Occur only when margin-top <= -height)\n */\n\n img.style.cssText = 'display:block;' + 'width:100%;' + 'height:auto;' + 'min-width:0!important;' + 'min-height:0!important;' + 'max-width:none!important;' + 'max-height:none!important;' + 'image-orientation:0deg!important;\"';\n el.innerHTML = '';\n el.appendChild(img);\n });\n },\n resetPreview: function resetPreview() {\n forEach(this.previews, function (element) {\n var data = getData(element, DATA_PREVIEW);\n setStyle(element, {\n width: data.width,\n height: data.height\n });\n element.innerHTML = data.html;\n removeData(element, DATA_PREVIEW);\n });\n },\n preview: function preview() {\n var imageData = this.imageData,\n canvasData = this.canvasData,\n cropBoxData = this.cropBoxData;\n var cropBoxWidth = cropBoxData.width,\n cropBoxHeight = cropBoxData.height;\n var width = imageData.width,\n height = imageData.height;\n var left = cropBoxData.left - canvasData.left - imageData.left;\n var top = cropBoxData.top - canvasData.top - imageData.top;\n\n if (!this.cropped || this.disabled) {\n return;\n }\n\n setStyle(this.viewBoxImage, assign({\n width: width,\n height: height\n }, getTransforms(assign({\n translateX: -left,\n translateY: -top\n }, imageData))));\n forEach(this.previews, function (element) {\n var data = getData(element, DATA_PREVIEW);\n var originalWidth = data.width;\n var originalHeight = data.height;\n var newWidth = originalWidth;\n var newHeight = originalHeight;\n var ratio = 1;\n\n if (cropBoxWidth) {\n ratio = originalWidth / cropBoxWidth;\n newHeight = cropBoxHeight * ratio;\n }\n\n if (cropBoxHeight && newHeight > originalHeight) {\n ratio = originalHeight / cropBoxHeight;\n newWidth = cropBoxWidth * ratio;\n newHeight = originalHeight;\n }\n\n setStyle(element, {\n width: newWidth,\n height: newHeight\n });\n setStyle(element.getElementsByTagName('img')[0], assign({\n width: width * ratio,\n height: height * ratio\n }, getTransforms(assign({\n translateX: -left * ratio,\n translateY: -top * ratio\n }, imageData))));\n });\n }\n};\n\nvar events = {\n bind: function bind() {\n var element = this.element,\n options = this.options,\n cropper = this.cropper;\n\n if (isFunction(options.cropstart)) {\n addListener(element, EVENT_CROP_START, options.cropstart);\n }\n\n if (isFunction(options.cropmove)) {\n addListener(element, EVENT_CROP_MOVE, options.cropmove);\n }\n\n if (isFunction(options.cropend)) {\n addListener(element, EVENT_CROP_END, options.cropend);\n }\n\n if (isFunction(options.crop)) {\n addListener(element, EVENT_CROP, options.crop);\n }\n\n if (isFunction(options.zoom)) {\n addListener(element, EVENT_ZOOM, options.zoom);\n }\n\n addListener(cropper, EVENT_POINTER_DOWN, this.onCropStart = this.cropStart.bind(this));\n\n if (options.zoomable && options.zoomOnWheel) {\n addListener(cropper, EVENT_WHEEL, this.onWheel = this.wheel.bind(this), {\n passive: false,\n capture: true\n });\n }\n\n if (options.toggleDragModeOnDblclick) {\n addListener(cropper, EVENT_DBLCLICK, this.onDblclick = this.dblclick.bind(this));\n }\n\n addListener(element.ownerDocument, EVENT_POINTER_MOVE, this.onCropMove = this.cropMove.bind(this));\n addListener(element.ownerDocument, EVENT_POINTER_UP, this.onCropEnd = this.cropEnd.bind(this));\n\n if (options.responsive) {\n addListener(window, EVENT_RESIZE, this.onResize = this.resize.bind(this));\n }\n },\n unbind: function unbind() {\n var element = this.element,\n options = this.options,\n cropper = this.cropper;\n\n if (isFunction(options.cropstart)) {\n removeListener(element, EVENT_CROP_START, options.cropstart);\n }\n\n if (isFunction(options.cropmove)) {\n removeListener(element, EVENT_CROP_MOVE, options.cropmove);\n }\n\n if (isFunction(options.cropend)) {\n removeListener(element, EVENT_CROP_END, options.cropend);\n }\n\n if (isFunction(options.crop)) {\n removeListener(element, EVENT_CROP, options.crop);\n }\n\n if (isFunction(options.zoom)) {\n removeListener(element, EVENT_ZOOM, options.zoom);\n }\n\n removeListener(cropper, EVENT_POINTER_DOWN, this.onCropStart);\n\n if (options.zoomable && options.zoomOnWheel) {\n removeListener(cropper, EVENT_WHEEL, this.onWheel, {\n passive: false,\n capture: true\n });\n }\n\n if (options.toggleDragModeOnDblclick) {\n removeListener(cropper, EVENT_DBLCLICK, this.onDblclick);\n }\n\n removeListener(element.ownerDocument, EVENT_POINTER_MOVE, this.onCropMove);\n removeListener(element.ownerDocument, EVENT_POINTER_UP, this.onCropEnd);\n\n if (options.responsive) {\n removeListener(window, EVENT_RESIZE, this.onResize);\n }\n }\n};\n\nvar handlers = {\n resize: function resize() {\n if (this.disabled) {\n return;\n }\n\n var options = this.options,\n container = this.container,\n containerData = this.containerData;\n var ratioX = container.offsetWidth / containerData.width;\n var ratioY = container.offsetHeight / containerData.height;\n var ratio = Math.abs(ratioX - 1) > Math.abs(ratioY - 1) ? ratioX : ratioY; // Resize when width changed or height changed\n\n if (ratio !== 1) {\n var canvasData;\n var cropBoxData;\n\n if (options.restore) {\n canvasData = this.getCanvasData();\n cropBoxData = this.getCropBoxData();\n }\n\n this.render();\n\n if (options.restore) {\n this.setCanvasData(forEach(canvasData, function (n, i) {\n canvasData[i] = n * ratio;\n }));\n this.setCropBoxData(forEach(cropBoxData, function (n, i) {\n cropBoxData[i] = n * ratio;\n }));\n }\n }\n },\n dblclick: function dblclick() {\n if (this.disabled || this.options.dragMode === DRAG_MODE_NONE) {\n return;\n }\n\n this.setDragMode(hasClass(this.dragBox, CLASS_CROP) ? DRAG_MODE_MOVE : DRAG_MODE_CROP);\n },\n wheel: function wheel(event) {\n var _this = this;\n\n var ratio = Number(this.options.wheelZoomRatio) || 0.1;\n var delta = 1;\n\n if (this.disabled) {\n return;\n }\n\n event.preventDefault(); // Limit wheel speed to prevent zoom too fast (#21)\n\n if (this.wheeling) {\n return;\n }\n\n this.wheeling = true;\n setTimeout(function () {\n _this.wheeling = false;\n }, 50);\n\n if (event.deltaY) {\n delta = event.deltaY > 0 ? 1 : -1;\n } else if (event.wheelDelta) {\n delta = -event.wheelDelta / 120;\n } else if (event.detail) {\n delta = event.detail > 0 ? 1 : -1;\n }\n\n this.zoom(-delta * ratio, event);\n },\n cropStart: function cropStart(event) {\n var buttons = event.buttons,\n button = event.button;\n\n if (this.disabled // Handle mouse event and pointer event and ignore touch event\n || (event.type === 'mousedown' || event.type === 'pointerdown' && event.pointerType === 'mouse') && ( // No primary button (Usually the left button)\n isNumber(buttons) && buttons !== 1 || isNumber(button) && button !== 0 // Open context menu\n || event.ctrlKey)) {\n return;\n }\n\n var options = this.options,\n pointers = this.pointers;\n var action;\n\n if (event.changedTouches) {\n // Handle touch event\n forEach(event.changedTouches, function (touch) {\n pointers[touch.identifier] = getPointer(touch);\n });\n } else {\n // Handle mouse event and pointer event\n pointers[event.pointerId || 0] = getPointer(event);\n }\n\n if (Object.keys(pointers).length > 1 && options.zoomable && options.zoomOnTouch) {\n action = ACTION_ZOOM;\n } else {\n action = getData(event.target, DATA_ACTION);\n }\n\n if (!REGEXP_ACTIONS.test(action)) {\n return;\n }\n\n if (dispatchEvent(this.element, EVENT_CROP_START, {\n originalEvent: event,\n action: action\n }) === false) {\n return;\n } // This line is required for preventing page zooming in iOS browsers\n\n\n event.preventDefault();\n this.action = action;\n this.cropping = false;\n\n if (action === ACTION_CROP) {\n this.cropping = true;\n addClass(this.dragBox, CLASS_MODAL);\n }\n },\n cropMove: function cropMove(event) {\n var action = this.action;\n\n if (this.disabled || !action) {\n return;\n }\n\n var pointers = this.pointers;\n event.preventDefault();\n\n if (dispatchEvent(this.element, EVENT_CROP_MOVE, {\n originalEvent: event,\n action: action\n }) === false) {\n return;\n }\n\n if (event.changedTouches) {\n forEach(event.changedTouches, function (touch) {\n // The first parameter should not be undefined (#432)\n assign(pointers[touch.identifier] || {}, getPointer(touch, true));\n });\n } else {\n assign(pointers[event.pointerId || 0] || {}, getPointer(event, true));\n }\n\n this.change(event);\n },\n cropEnd: function cropEnd(event) {\n if (this.disabled) {\n return;\n }\n\n var action = this.action,\n pointers = this.pointers;\n\n if (event.changedTouches) {\n forEach(event.changedTouches, function (touch) {\n delete pointers[touch.identifier];\n });\n } else {\n delete pointers[event.pointerId || 0];\n }\n\n if (!action) {\n return;\n }\n\n event.preventDefault();\n\n if (!Object.keys(pointers).length) {\n this.action = '';\n }\n\n if (this.cropping) {\n this.cropping = false;\n toggleClass(this.dragBox, CLASS_MODAL, this.cropped && this.options.modal);\n }\n\n dispatchEvent(this.element, EVENT_CROP_END, {\n originalEvent: event,\n action: action\n });\n }\n};\n\nvar change = {\n change: function change(event) {\n var options = this.options,\n canvasData = this.canvasData,\n containerData = this.containerData,\n cropBoxData = this.cropBoxData,\n pointers = this.pointers;\n var action = this.action;\n var aspectRatio = options.aspectRatio;\n var left = cropBoxData.left,\n top = cropBoxData.top,\n width = cropBoxData.width,\n height = cropBoxData.height;\n var right = left + width;\n var bottom = top + height;\n var minLeft = 0;\n var minTop = 0;\n var maxWidth = containerData.width;\n var maxHeight = containerData.height;\n var renderable = true;\n var offset; // Locking aspect ratio in \"free mode\" by holding shift key\n\n if (!aspectRatio && event.shiftKey) {\n aspectRatio = width && height ? width / height : 1;\n }\n\n if (this.limited) {\n minLeft = cropBoxData.minLeft;\n minTop = cropBoxData.minTop;\n maxWidth = minLeft + Math.min(containerData.width, canvasData.width, canvasData.left + canvasData.width);\n maxHeight = minTop + Math.min(containerData.height, canvasData.height, canvasData.top + canvasData.height);\n }\n\n var pointer = pointers[Object.keys(pointers)[0]];\n var range = {\n x: pointer.endX - pointer.startX,\n y: pointer.endY - pointer.startY\n };\n\n var check = function check(side) {\n switch (side) {\n case ACTION_EAST:\n if (right + range.x > maxWidth) {\n range.x = maxWidth - right;\n }\n\n break;\n\n case ACTION_WEST:\n if (left + range.x < minLeft) {\n range.x = minLeft - left;\n }\n\n break;\n\n case ACTION_NORTH:\n if (top + range.y < minTop) {\n range.y = minTop - top;\n }\n\n break;\n\n case ACTION_SOUTH:\n if (bottom + range.y > maxHeight) {\n range.y = maxHeight - bottom;\n }\n\n break;\n }\n };\n\n switch (action) {\n // Move crop box\n case ACTION_ALL:\n left += range.x;\n top += range.y;\n break;\n // Resize crop box\n\n case ACTION_EAST:\n if (range.x >= 0 && (right >= maxWidth || aspectRatio && (top <= minTop || bottom >= maxHeight))) {\n renderable = false;\n break;\n }\n\n check(ACTION_EAST);\n width += range.x;\n\n if (width < 0) {\n action = ACTION_WEST;\n width = -width;\n left -= width;\n }\n\n if (aspectRatio) {\n height = width / aspectRatio;\n top += (cropBoxData.height - height) / 2;\n }\n\n break;\n\n case ACTION_NORTH:\n if (range.y <= 0 && (top <= minTop || aspectRatio && (left <= minLeft || right >= maxWidth))) {\n renderable = false;\n break;\n }\n\n check(ACTION_NORTH);\n height -= range.y;\n top += range.y;\n\n if (height < 0) {\n action = ACTION_SOUTH;\n height = -height;\n top -= height;\n }\n\n if (aspectRatio) {\n width = height * aspectRatio;\n left += (cropBoxData.width - width) / 2;\n }\n\n break;\n\n case ACTION_WEST:\n if (range.x <= 0 && (left <= minLeft || aspectRatio && (top <= minTop || bottom >= maxHeight))) {\n renderable = false;\n break;\n }\n\n check(ACTION_WEST);\n width -= range.x;\n left += range.x;\n\n if (width < 0) {\n action = ACTION_EAST;\n width = -width;\n left -= width;\n }\n\n if (aspectRatio) {\n height = width / aspectRatio;\n top += (cropBoxData.height - height) / 2;\n }\n\n break;\n\n case ACTION_SOUTH:\n if (range.y >= 0 && (bottom >= maxHeight || aspectRatio && (left <= minLeft || right >= maxWidth))) {\n renderable = false;\n break;\n }\n\n check(ACTION_SOUTH);\n height += range.y;\n\n if (height < 0) {\n action = ACTION_NORTH;\n height = -height;\n top -= height;\n }\n\n if (aspectRatio) {\n width = height * aspectRatio;\n left += (cropBoxData.width - width) / 2;\n }\n\n break;\n\n case ACTION_NORTH_EAST:\n if (aspectRatio) {\n if (range.y <= 0 && (top <= minTop || right >= maxWidth)) {\n renderable = false;\n break;\n }\n\n check(ACTION_NORTH);\n height -= range.y;\n top += range.y;\n width = height * aspectRatio;\n } else {\n check(ACTION_NORTH);\n check(ACTION_EAST);\n\n if (range.x >= 0) {\n if (right < maxWidth) {\n width += range.x;\n } else if (range.y <= 0 && top <= minTop) {\n renderable = false;\n }\n } else {\n width += range.x;\n }\n\n if (range.y <= 0) {\n if (top > minTop) {\n height -= range.y;\n top += range.y;\n }\n } else {\n height -= range.y;\n top += range.y;\n }\n }\n\n if (width < 0 && height < 0) {\n action = ACTION_SOUTH_WEST;\n height = -height;\n width = -width;\n top -= height;\n left -= width;\n } else if (width < 0) {\n action = ACTION_NORTH_WEST;\n width = -width;\n left -= width;\n } else if (height < 0) {\n action = ACTION_SOUTH_EAST;\n height = -height;\n top -= height;\n }\n\n break;\n\n case ACTION_NORTH_WEST:\n if (aspectRatio) {\n if (range.y <= 0 && (top <= minTop || left <= minLeft)) {\n renderable = false;\n break;\n }\n\n check(ACTION_NORTH);\n height -= range.y;\n top += range.y;\n width = height * aspectRatio;\n left += cropBoxData.width - width;\n } else {\n check(ACTION_NORTH);\n check(ACTION_WEST);\n\n if (range.x <= 0) {\n if (left > minLeft) {\n width -= range.x;\n left += range.x;\n } else if (range.y <= 0 && top <= minTop) {\n renderable = false;\n }\n } else {\n width -= range.x;\n left += range.x;\n }\n\n if (range.y <= 0) {\n if (top > minTop) {\n height -= range.y;\n top += range.y;\n }\n } else {\n height -= range.y;\n top += range.y;\n }\n }\n\n if (width < 0 && height < 0) {\n action = ACTION_SOUTH_EAST;\n height = -height;\n width = -width;\n top -= height;\n left -= width;\n } else if (width < 0) {\n action = ACTION_NORTH_EAST;\n width = -width;\n left -= width;\n } else if (height < 0) {\n action = ACTION_SOUTH_WEST;\n height = -height;\n top -= height;\n }\n\n break;\n\n case ACTION_SOUTH_WEST:\n if (aspectRatio) {\n if (range.x <= 0 && (left <= minLeft || bottom >= maxHeight)) {\n renderable = false;\n break;\n }\n\n check(ACTION_WEST);\n width -= range.x;\n left += range.x;\n height = width / aspectRatio;\n } else {\n check(ACTION_SOUTH);\n check(ACTION_WEST);\n\n if (range.x <= 0) {\n if (left > minLeft) {\n width -= range.x;\n left += range.x;\n } else if (range.y >= 0 && bottom >= maxHeight) {\n renderable = false;\n }\n } else {\n width -= range.x;\n left += range.x;\n }\n\n if (range.y >= 0) {\n if (bottom < maxHeight) {\n height += range.y;\n }\n } else {\n height += range.y;\n }\n }\n\n if (width < 0 && height < 0) {\n action = ACTION_NORTH_EAST;\n height = -height;\n width = -width;\n top -= height;\n left -= width;\n } else if (width < 0) {\n action = ACTION_SOUTH_EAST;\n width = -width;\n left -= width;\n } else if (height < 0) {\n action = ACTION_NORTH_WEST;\n height = -height;\n top -= height;\n }\n\n break;\n\n case ACTION_SOUTH_EAST:\n if (aspectRatio) {\n if (range.x >= 0 && (right >= maxWidth || bottom >= maxHeight)) {\n renderable = false;\n break;\n }\n\n check(ACTION_EAST);\n width += range.x;\n height = width / aspectRatio;\n } else {\n check(ACTION_SOUTH);\n check(ACTION_EAST);\n\n if (range.x >= 0) {\n if (right < maxWidth) {\n width += range.x;\n } else if (range.y >= 0 && bottom >= maxHeight) {\n renderable = false;\n }\n } else {\n width += range.x;\n }\n\n if (range.y >= 0) {\n if (bottom < maxHeight) {\n height += range.y;\n }\n } else {\n height += range.y;\n }\n }\n\n if (width < 0 && height < 0) {\n action = ACTION_NORTH_WEST;\n height = -height;\n width = -width;\n top -= height;\n left -= width;\n } else if (width < 0) {\n action = ACTION_SOUTH_WEST;\n width = -width;\n left -= width;\n } else if (height < 0) {\n action = ACTION_NORTH_EAST;\n height = -height;\n top -= height;\n }\n\n break;\n // Move canvas\n\n case ACTION_MOVE:\n this.move(range.x, range.y);\n renderable = false;\n break;\n // Zoom canvas\n\n case ACTION_ZOOM:\n this.zoom(getMaxZoomRatio(pointers), event);\n renderable = false;\n break;\n // Create crop box\n\n case ACTION_CROP:\n if (!range.x || !range.y) {\n renderable = false;\n break;\n }\n\n offset = getOffset(this.cropper);\n left = pointer.startX - offset.left;\n top = pointer.startY - offset.top;\n width = cropBoxData.minWidth;\n height = cropBoxData.minHeight;\n\n if (range.x > 0) {\n action = range.y > 0 ? ACTION_SOUTH_EAST : ACTION_NORTH_EAST;\n } else if (range.x < 0) {\n left -= width;\n action = range.y > 0 ? ACTION_SOUTH_WEST : ACTION_NORTH_WEST;\n }\n\n if (range.y < 0) {\n top -= height;\n } // Show the crop box if is hidden\n\n\n if (!this.cropped) {\n removeClass(this.cropBox, CLASS_HIDDEN);\n this.cropped = true;\n\n if (this.limited) {\n this.limitCropBox(true, true);\n }\n }\n\n break;\n }\n\n if (renderable) {\n cropBoxData.width = width;\n cropBoxData.height = height;\n cropBoxData.left = left;\n cropBoxData.top = top;\n this.action = action;\n this.renderCropBox();\n } // Override\n\n\n forEach(pointers, function (p) {\n p.startX = p.endX;\n p.startY = p.endY;\n });\n }\n};\n\nvar methods = {\n // Show the crop box manually\n crop: function crop() {\n if (this.ready && !this.cropped && !this.disabled) {\n this.cropped = true;\n this.limitCropBox(true, true);\n\n if (this.options.modal) {\n addClass(this.dragBox, CLASS_MODAL);\n }\n\n removeClass(this.cropBox, CLASS_HIDDEN);\n this.setCropBoxData(this.initialCropBoxData);\n }\n\n return this;\n },\n // Reset the image and crop box to their initial states\n reset: function reset() {\n if (this.ready && !this.disabled) {\n this.imageData = assign({}, this.initialImageData);\n this.canvasData = assign({}, this.initialCanvasData);\n this.cropBoxData = assign({}, this.initialCropBoxData);\n this.renderCanvas();\n\n if (this.cropped) {\n this.renderCropBox();\n }\n }\n\n return this;\n },\n // Clear the crop box\n clear: function clear() {\n if (this.cropped && !this.disabled) {\n assign(this.cropBoxData, {\n left: 0,\n top: 0,\n width: 0,\n height: 0\n });\n this.cropped = false;\n this.renderCropBox();\n this.limitCanvas(true, true); // Render canvas after crop box rendered\n\n this.renderCanvas();\n removeClass(this.dragBox, CLASS_MODAL);\n addClass(this.cropBox, CLASS_HIDDEN);\n }\n\n return this;\n },\n\n /**\n * Replace the image's src and rebuild the cropper\n * @param {string} url - The new URL.\n * @param {boolean} [hasSameSize] - Indicate if the new image has the same size as the old one.\n * @returns {Cropper} this\n */\n replace: function replace(url) {\n var hasSameSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!this.disabled && url) {\n if (this.isImg) {\n this.element.src = url;\n }\n\n if (hasSameSize) {\n this.url = url;\n this.image.src = url;\n\n if (this.ready) {\n this.viewBoxImage.src = url;\n forEach(this.previews, function (element) {\n element.getElementsByTagName('img')[0].src = url;\n });\n }\n } else {\n if (this.isImg) {\n this.replaced = true;\n }\n\n this.options.data = null;\n this.uncreate();\n this.load(url);\n }\n }\n\n return this;\n },\n // Enable (unfreeze) the cropper\n enable: function enable() {\n if (this.ready && this.disabled) {\n this.disabled = false;\n removeClass(this.cropper, CLASS_DISABLED);\n }\n\n return this;\n },\n // Disable (freeze) the cropper\n disable: function disable() {\n if (this.ready && !this.disabled) {\n this.disabled = true;\n addClass(this.cropper, CLASS_DISABLED);\n }\n\n return this;\n },\n\n /**\n * Destroy the cropper and remove the instance from the image\n * @returns {Cropper} this\n */\n destroy: function destroy() {\n var element = this.element;\n\n if (!element[NAMESPACE]) {\n return this;\n }\n\n element[NAMESPACE] = undefined;\n\n if (this.isImg && this.replaced) {\n element.src = this.originalUrl;\n }\n\n this.uncreate();\n return this;\n },\n\n /**\n * Move the canvas with relative offsets\n * @param {number} offsetX - The relative offset distance on the x-axis.\n * @param {number} [offsetY=offsetX] - The relative offset distance on the y-axis.\n * @returns {Cropper} this\n */\n move: function move(offsetX) {\n var offsetY = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : offsetX;\n var _this$canvasData = this.canvasData,\n left = _this$canvasData.left,\n top = _this$canvasData.top;\n return this.moveTo(isUndefined(offsetX) ? offsetX : left + Number(offsetX), isUndefined(offsetY) ? offsetY : top + Number(offsetY));\n },\n\n /**\n * Move the canvas to an absolute point\n * @param {number} x - The x-axis coordinate.\n * @param {number} [y=x] - The y-axis coordinate.\n * @returns {Cropper} this\n */\n moveTo: function moveTo(x) {\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : x;\n var canvasData = this.canvasData;\n var changed = false;\n x = Number(x);\n y = Number(y);\n\n if (this.ready && !this.disabled && this.options.movable) {\n if (isNumber(x)) {\n canvasData.left = x;\n changed = true;\n }\n\n if (isNumber(y)) {\n canvasData.top = y;\n changed = true;\n }\n\n if (changed) {\n this.renderCanvas(true);\n }\n }\n\n return this;\n },\n\n /**\n * Zoom the canvas with a relative ratio\n * @param {number} ratio - The target ratio.\n * @param {Event} _originalEvent - The original event if any.\n * @returns {Cropper} this\n */\n zoom: function zoom(ratio, _originalEvent) {\n var canvasData = this.canvasData;\n ratio = Number(ratio);\n\n if (ratio < 0) {\n ratio = 1 / (1 - ratio);\n } else {\n ratio = 1 + ratio;\n }\n\n return this.zoomTo(canvasData.width * ratio / canvasData.naturalWidth, null, _originalEvent);\n },\n\n /**\n * Zoom the canvas to an absolute ratio\n * @param {number} ratio - The target ratio.\n * @param {Object} pivot - The zoom pivot point coordinate.\n * @param {Event} _originalEvent - The original event if any.\n * @returns {Cropper} this\n */\n zoomTo: function zoomTo(ratio, pivot, _originalEvent) {\n var options = this.options,\n canvasData = this.canvasData;\n var width = canvasData.width,\n height = canvasData.height,\n naturalWidth = canvasData.naturalWidth,\n naturalHeight = canvasData.naturalHeight;\n ratio = Number(ratio);\n\n if (ratio >= 0 && this.ready && !this.disabled && options.zoomable) {\n var newWidth = naturalWidth * ratio;\n var newHeight = naturalHeight * ratio;\n\n if (dispatchEvent(this.element, EVENT_ZOOM, {\n ratio: ratio,\n oldRatio: width / naturalWidth,\n originalEvent: _originalEvent\n }) === false) {\n return this;\n }\n\n if (_originalEvent) {\n var pointers = this.pointers;\n var offset = getOffset(this.cropper);\n var center = pointers && Object.keys(pointers).length ? getPointersCenter(pointers) : {\n pageX: _originalEvent.pageX,\n pageY: _originalEvent.pageY\n }; // Zoom from the triggering point of the event\n\n canvasData.left -= (newWidth - width) * ((center.pageX - offset.left - canvasData.left) / width);\n canvasData.top -= (newHeight - height) * ((center.pageY - offset.top - canvasData.top) / height);\n } else if (isPlainObject(pivot) && isNumber(pivot.x) && isNumber(pivot.y)) {\n canvasData.left -= (newWidth - width) * ((pivot.x - canvasData.left) / width);\n canvasData.top -= (newHeight - height) * ((pivot.y - canvasData.top) / height);\n } else {\n // Zoom from the center of the canvas\n canvasData.left -= (newWidth - width) / 2;\n canvasData.top -= (newHeight - height) / 2;\n }\n\n canvasData.width = newWidth;\n canvasData.height = newHeight;\n this.renderCanvas(true);\n }\n\n return this;\n },\n\n /**\n * Rotate the canvas with a relative degree\n * @param {number} degree - The rotate degree.\n * @returns {Cropper} this\n */\n rotate: function rotate(degree) {\n return this.rotateTo((this.imageData.rotate || 0) + Number(degree));\n },\n\n /**\n * Rotate the canvas to an absolute degree\n * @param {number} degree - The rotate degree.\n * @returns {Cropper} this\n */\n rotateTo: function rotateTo(degree) {\n degree = Number(degree);\n\n if (isNumber(degree) && this.ready && !this.disabled && this.options.rotatable) {\n this.imageData.rotate = degree % 360;\n this.renderCanvas(true, true);\n }\n\n return this;\n },\n\n /**\n * Scale the image on the x-axis.\n * @param {number} scaleX - The scale ratio on the x-axis.\n * @returns {Cropper} this\n */\n scaleX: function scaleX(_scaleX) {\n var scaleY = this.imageData.scaleY;\n return this.scale(_scaleX, isNumber(scaleY) ? scaleY : 1);\n },\n\n /**\n * Scale the image on the y-axis.\n * @param {number} scaleY - The scale ratio on the y-axis.\n * @returns {Cropper} this\n */\n scaleY: function scaleY(_scaleY) {\n var scaleX = this.imageData.scaleX;\n return this.scale(isNumber(scaleX) ? scaleX : 1, _scaleY);\n },\n\n /**\n * Scale the image\n * @param {number} scaleX - The scale ratio on the x-axis.\n * @param {number} [scaleY=scaleX] - The scale ratio on the y-axis.\n * @returns {Cropper} this\n */\n scale: function scale(scaleX) {\n var scaleY = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : scaleX;\n var imageData = this.imageData;\n var transformed = false;\n scaleX = Number(scaleX);\n scaleY = Number(scaleY);\n\n if (this.ready && !this.disabled && this.options.scalable) {\n if (isNumber(scaleX)) {\n imageData.scaleX = scaleX;\n transformed = true;\n }\n\n if (isNumber(scaleY)) {\n imageData.scaleY = scaleY;\n transformed = true;\n }\n\n if (transformed) {\n this.renderCanvas(true, true);\n }\n }\n\n return this;\n },\n\n /**\n * Get the cropped area position and size data (base on the original image)\n * @param {boolean} [rounded=false] - Indicate if round the data values or not.\n * @returns {Object} The result cropped data.\n */\n getData: function getData() {\n var rounded = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var options = this.options,\n imageData = this.imageData,\n canvasData = this.canvasData,\n cropBoxData = this.cropBoxData;\n var data;\n\n if (this.ready && this.cropped) {\n data = {\n x: cropBoxData.left - canvasData.left,\n y: cropBoxData.top - canvasData.top,\n width: cropBoxData.width,\n height: cropBoxData.height\n };\n var ratio = imageData.width / imageData.naturalWidth;\n forEach(data, function (n, i) {\n data[i] = n / ratio;\n });\n\n if (rounded) {\n // In case rounding off leads to extra 1px in right or bottom border\n // we should round the top-left corner and the dimension (#343).\n var bottom = Math.round(data.y + data.height);\n var right = Math.round(data.x + data.width);\n data.x = Math.round(data.x);\n data.y = Math.round(data.y);\n data.width = right - data.x;\n data.height = bottom - data.y;\n }\n } else {\n data = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n }\n\n if (options.rotatable) {\n data.rotate = imageData.rotate || 0;\n }\n\n if (options.scalable) {\n data.scaleX = imageData.scaleX || 1;\n data.scaleY = imageData.scaleY || 1;\n }\n\n return data;\n },\n\n /**\n * Set the cropped area position and size with new data\n * @param {Object} data - The new data.\n * @returns {Cropper} this\n */\n setData: function setData(data) {\n var options = this.options,\n imageData = this.imageData,\n canvasData = this.canvasData;\n var cropBoxData = {};\n\n if (this.ready && !this.disabled && isPlainObject(data)) {\n var transformed = false;\n\n if (options.rotatable) {\n if (isNumber(data.rotate) && data.rotate !== imageData.rotate) {\n imageData.rotate = data.rotate;\n transformed = true;\n }\n }\n\n if (options.scalable) {\n if (isNumber(data.scaleX) && data.scaleX !== imageData.scaleX) {\n imageData.scaleX = data.scaleX;\n transformed = true;\n }\n\n if (isNumber(data.scaleY) && data.scaleY !== imageData.scaleY) {\n imageData.scaleY = data.scaleY;\n transformed = true;\n }\n }\n\n if (transformed) {\n this.renderCanvas(true, true);\n }\n\n var ratio = imageData.width / imageData.naturalWidth;\n\n if (isNumber(data.x)) {\n cropBoxData.left = data.x * ratio + canvasData.left;\n }\n\n if (isNumber(data.y)) {\n cropBoxData.top = data.y * ratio + canvasData.top;\n }\n\n if (isNumber(data.width)) {\n cropBoxData.width = data.width * ratio;\n }\n\n if (isNumber(data.height)) {\n cropBoxData.height = data.height * ratio;\n }\n\n this.setCropBoxData(cropBoxData);\n }\n\n return this;\n },\n\n /**\n * Get the container size data.\n * @returns {Object} The result container data.\n */\n getContainerData: function getContainerData() {\n return this.ready ? assign({}, this.containerData) : {};\n },\n\n /**\n * Get the image position and size data.\n * @returns {Object} The result image data.\n */\n getImageData: function getImageData() {\n return this.sized ? assign({}, this.imageData) : {};\n },\n\n /**\n * Get the canvas position and size data.\n * @returns {Object} The result canvas data.\n */\n getCanvasData: function getCanvasData() {\n var canvasData = this.canvasData;\n var data = {};\n\n if (this.ready) {\n forEach(['left', 'top', 'width', 'height', 'naturalWidth', 'naturalHeight'], function (n) {\n data[n] = canvasData[n];\n });\n }\n\n return data;\n },\n\n /**\n * Set the canvas position and size with new data.\n * @param {Object} data - The new canvas data.\n * @returns {Cropper} this\n */\n setCanvasData: function setCanvasData(data) {\n var canvasData = this.canvasData;\n var aspectRatio = canvasData.aspectRatio;\n\n if (this.ready && !this.disabled && isPlainObject(data)) {\n if (isNumber(data.left)) {\n canvasData.left = data.left;\n }\n\n if (isNumber(data.top)) {\n canvasData.top = data.top;\n }\n\n if (isNumber(data.width)) {\n canvasData.width = data.width;\n canvasData.height = data.width / aspectRatio;\n } else if (isNumber(data.height)) {\n canvasData.height = data.height;\n canvasData.width = data.height * aspectRatio;\n }\n\n this.renderCanvas(true);\n }\n\n return this;\n },\n\n /**\n * Get the crop box position and size data.\n * @returns {Object} The result crop box data.\n */\n getCropBoxData: function getCropBoxData() {\n var cropBoxData = this.cropBoxData;\n var data;\n\n if (this.ready && this.cropped) {\n data = {\n left: cropBoxData.left,\n top: cropBoxData.top,\n width: cropBoxData.width,\n height: cropBoxData.height\n };\n }\n\n return data || {};\n },\n\n /**\n * Set the crop box position and size with new data.\n * @param {Object} data - The new crop box data.\n * @returns {Cropper} this\n */\n setCropBoxData: function setCropBoxData(data) {\n var cropBoxData = this.cropBoxData;\n var aspectRatio = this.options.aspectRatio;\n var widthChanged;\n var heightChanged;\n\n if (this.ready && this.cropped && !this.disabled && isPlainObject(data)) {\n if (isNumber(data.left)) {\n cropBoxData.left = data.left;\n }\n\n if (isNumber(data.top)) {\n cropBoxData.top = data.top;\n }\n\n if (isNumber(data.width) && data.width !== cropBoxData.width) {\n widthChanged = true;\n cropBoxData.width = data.width;\n }\n\n if (isNumber(data.height) && data.height !== cropBoxData.height) {\n heightChanged = true;\n cropBoxData.height = data.height;\n }\n\n if (aspectRatio) {\n if (widthChanged) {\n cropBoxData.height = cropBoxData.width / aspectRatio;\n } else if (heightChanged) {\n cropBoxData.width = cropBoxData.height * aspectRatio;\n }\n }\n\n this.renderCropBox();\n }\n\n return this;\n },\n\n /**\n * Get a canvas drawn the cropped image.\n * @param {Object} [options={}] - The config options.\n * @returns {HTMLCanvasElement} - The result canvas.\n */\n getCroppedCanvas: function getCroppedCanvas() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (!this.ready || !window.HTMLCanvasElement) {\n return null;\n }\n\n var canvasData = this.canvasData;\n var source = getSourceCanvas(this.image, this.imageData, canvasData, options); // Returns the source canvas if it is not cropped.\n\n if (!this.cropped) {\n return source;\n }\n\n var _this$getData = this.getData(),\n initialX = _this$getData.x,\n initialY = _this$getData.y,\n initialWidth = _this$getData.width,\n initialHeight = _this$getData.height;\n\n var ratio = source.width / Math.floor(canvasData.naturalWidth);\n\n if (ratio !== 1) {\n initialX *= ratio;\n initialY *= ratio;\n initialWidth *= ratio;\n initialHeight *= ratio;\n }\n\n var aspectRatio = initialWidth / initialHeight;\n var maxSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: options.maxWidth || Infinity,\n height: options.maxHeight || Infinity\n });\n var minSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: options.minWidth || 0,\n height: options.minHeight || 0\n }, 'cover');\n\n var _getAdjustedSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: options.width || (ratio !== 1 ? source.width : initialWidth),\n height: options.height || (ratio !== 1 ? source.height : initialHeight)\n }),\n width = _getAdjustedSizes.width,\n height = _getAdjustedSizes.height;\n\n width = Math.min(maxSizes.width, Math.max(minSizes.width, width));\n height = Math.min(maxSizes.height, Math.max(minSizes.height, height));\n var canvas = document.createElement('canvas');\n var context = canvas.getContext('2d');\n canvas.width = normalizeDecimalNumber(width);\n canvas.height = normalizeDecimalNumber(height);\n context.fillStyle = options.fillColor || 'transparent';\n context.fillRect(0, 0, width, height);\n var _options$imageSmoothi = options.imageSmoothingEnabled,\n imageSmoothingEnabled = _options$imageSmoothi === void 0 ? true : _options$imageSmoothi,\n imageSmoothingQuality = options.imageSmoothingQuality;\n context.imageSmoothingEnabled = imageSmoothingEnabled;\n\n if (imageSmoothingQuality) {\n context.imageSmoothingQuality = imageSmoothingQuality;\n } // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.drawImage\n\n\n var sourceWidth = source.width;\n var sourceHeight = source.height; // Source canvas parameters\n\n var srcX = initialX;\n var srcY = initialY;\n var srcWidth;\n var srcHeight; // Destination canvas parameters\n\n var dstX;\n var dstY;\n var dstWidth;\n var dstHeight;\n\n if (srcX <= -initialWidth || srcX > sourceWidth) {\n srcX = 0;\n srcWidth = 0;\n dstX = 0;\n dstWidth = 0;\n } else if (srcX <= 0) {\n dstX = -srcX;\n srcX = 0;\n srcWidth = Math.min(sourceWidth, initialWidth + srcX);\n dstWidth = srcWidth;\n } else if (srcX <= sourceWidth) {\n dstX = 0;\n srcWidth = Math.min(initialWidth, sourceWidth - srcX);\n dstWidth = srcWidth;\n }\n\n if (srcWidth <= 0 || srcY <= -initialHeight || srcY > sourceHeight) {\n srcY = 0;\n srcHeight = 0;\n dstY = 0;\n dstHeight = 0;\n } else if (srcY <= 0) {\n dstY = -srcY;\n srcY = 0;\n srcHeight = Math.min(sourceHeight, initialHeight + srcY);\n dstHeight = srcHeight;\n } else if (srcY <= sourceHeight) {\n dstY = 0;\n srcHeight = Math.min(initialHeight, sourceHeight - srcY);\n dstHeight = srcHeight;\n }\n\n var params = [srcX, srcY, srcWidth, srcHeight]; // Avoid \"IndexSizeError\"\n\n if (dstWidth > 0 && dstHeight > 0) {\n var scale = width / initialWidth;\n params.push(dstX * scale, dstY * scale, dstWidth * scale, dstHeight * scale);\n } // All the numerical parameters should be integer for `drawImage`\n // https://github.com/fengyuanchen/cropper/issues/476\n\n\n context.drawImage.apply(context, [source].concat(_toConsumableArray(params.map(function (param) {\n return Math.floor(normalizeDecimalNumber(param));\n }))));\n return canvas;\n },\n\n /**\n * Change the aspect ratio of the crop box.\n * @param {number} aspectRatio - The new aspect ratio.\n * @returns {Cropper} this\n */\n setAspectRatio: function setAspectRatio(aspectRatio) {\n var options = this.options;\n\n if (!this.disabled && !isUndefined(aspectRatio)) {\n // 0 -> NaN\n options.aspectRatio = Math.max(0, aspectRatio) || NaN;\n\n if (this.ready) {\n this.initCropBox();\n\n if (this.cropped) {\n this.renderCropBox();\n }\n }\n }\n\n return this;\n },\n\n /**\n * Change the drag mode.\n * @param {string} mode - The new drag mode.\n * @returns {Cropper} this\n */\n setDragMode: function setDragMode(mode) {\n var options = this.options,\n dragBox = this.dragBox,\n face = this.face;\n\n if (this.ready && !this.disabled) {\n var croppable = mode === DRAG_MODE_CROP;\n var movable = options.movable && mode === DRAG_MODE_MOVE;\n mode = croppable || movable ? mode : DRAG_MODE_NONE;\n options.dragMode = mode;\n setData(dragBox, DATA_ACTION, mode);\n toggleClass(dragBox, CLASS_CROP, croppable);\n toggleClass(dragBox, CLASS_MOVE, movable);\n\n if (!options.cropBoxMovable) {\n // Sync drag mode to crop box when it is not movable\n setData(face, DATA_ACTION, mode);\n toggleClass(face, CLASS_CROP, croppable);\n toggleClass(face, CLASS_MOVE, movable);\n }\n }\n\n return this;\n }\n};\n\nvar AnotherCropper = WINDOW.Cropper;\n\nvar Cropper = /*#__PURE__*/function () {\n /**\n * Create a new Cropper.\n * @param {Element} element - The target element for cropping.\n * @param {Object} [options={}] - The configuration options.\n */\n function Cropper(element) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Cropper);\n\n if (!element || !REGEXP_TAG_NAME.test(element.tagName)) {\n throw new Error('The first argument is required and must be an or element.');\n }\n\n this.element = element;\n this.options = assign({}, DEFAULTS, isPlainObject(options) && options);\n this.cropped = false;\n this.disabled = false;\n this.pointers = {};\n this.ready = false;\n this.reloading = false;\n this.replaced = false;\n this.sized = false;\n this.sizing = false;\n this.init();\n }\n\n _createClass(Cropper, [{\n key: \"init\",\n value: function init() {\n var element = this.element;\n var tagName = element.tagName.toLowerCase();\n var url;\n\n if (element[NAMESPACE]) {\n return;\n }\n\n element[NAMESPACE] = this;\n\n if (tagName === 'img') {\n this.isImg = true; // e.g.: \"img/picture.jpg\"\n\n url = element.getAttribute('src') || '';\n this.originalUrl = url; // Stop when it's a blank image\n\n if (!url) {\n return;\n } // e.g.: \"https://example.com/img/picture.jpg\"\n\n\n url = element.src;\n } else if (tagName === 'canvas' && window.HTMLCanvasElement) {\n url = element.toDataURL();\n }\n\n this.load(url);\n }\n }, {\n key: \"load\",\n value: function load(url) {\n var _this = this;\n\n if (!url) {\n return;\n }\n\n this.url = url;\n this.imageData = {};\n var element = this.element,\n options = this.options;\n\n if (!options.rotatable && !options.scalable) {\n options.checkOrientation = false;\n } // Only IE10+ supports Typed Arrays\n\n\n if (!options.checkOrientation || !window.ArrayBuffer) {\n this.clone();\n return;\n } // Detect the mime type of the image directly if it is a Data URL\n\n\n if (REGEXP_DATA_URL.test(url)) {\n // Read ArrayBuffer from Data URL of JPEG images directly for better performance\n if (REGEXP_DATA_URL_JPEG.test(url)) {\n this.read(dataURLToArrayBuffer(url));\n } else {\n // Only a JPEG image may contains Exif Orientation information,\n // the rest types of Data URLs are not necessary to check orientation at all.\n this.clone();\n }\n\n return;\n } // 1. Detect the mime type of the image by a XMLHttpRequest.\n // 2. Load the image as ArrayBuffer for reading orientation if its a JPEG image.\n\n\n var xhr = new XMLHttpRequest();\n var clone = this.clone.bind(this);\n this.reloading = true;\n this.xhr = xhr; // 1. Cross origin requests are only supported for protocol schemes:\n // http, https, data, chrome, chrome-extension.\n // 2. Access to XMLHttpRequest from a Data URL will be blocked by CORS policy\n // in some browsers as IE11 and Safari.\n\n xhr.onabort = clone;\n xhr.onerror = clone;\n xhr.ontimeout = clone;\n\n xhr.onprogress = function () {\n // Abort the request directly if it not a JPEG image for better performance\n if (xhr.getResponseHeader('content-type') !== MIME_TYPE_JPEG) {\n xhr.abort();\n }\n };\n\n xhr.onload = function () {\n _this.read(xhr.response);\n };\n\n xhr.onloadend = function () {\n _this.reloading = false;\n _this.xhr = null;\n }; // Bust cache when there is a \"crossOrigin\" property to avoid browser cache error\n\n\n if (options.checkCrossOrigin && isCrossOriginURL(url) && element.crossOrigin) {\n url = addTimestamp(url);\n } // The third parameter is required for avoiding side-effect (#682)\n\n\n xhr.open('GET', url, true);\n xhr.responseType = 'arraybuffer';\n xhr.withCredentials = element.crossOrigin === 'use-credentials';\n xhr.send();\n }\n }, {\n key: \"read\",\n value: function read(arrayBuffer) {\n var options = this.options,\n imageData = this.imageData; // Reset the orientation value to its default value 1\n // as some iOS browsers will render image with its orientation\n\n var orientation = resetAndGetOrientation(arrayBuffer);\n var rotate = 0;\n var scaleX = 1;\n var scaleY = 1;\n\n if (orientation > 1) {\n // Generate a new URL which has the default orientation value\n this.url = arrayBufferToDataURL(arrayBuffer, MIME_TYPE_JPEG);\n\n var _parseOrientation = parseOrientation(orientation);\n\n rotate = _parseOrientation.rotate;\n scaleX = _parseOrientation.scaleX;\n scaleY = _parseOrientation.scaleY;\n }\n\n if (options.rotatable) {\n imageData.rotate = rotate;\n }\n\n if (options.scalable) {\n imageData.scaleX = scaleX;\n imageData.scaleY = scaleY;\n }\n\n this.clone();\n }\n }, {\n key: \"clone\",\n value: function clone() {\n var element = this.element,\n url = this.url;\n var crossOrigin = element.crossOrigin;\n var crossOriginUrl = url;\n\n if (this.options.checkCrossOrigin && isCrossOriginURL(url)) {\n if (!crossOrigin) {\n crossOrigin = 'anonymous';\n } // Bust cache when there is not a \"crossOrigin\" property (#519)\n\n\n crossOriginUrl = addTimestamp(url);\n }\n\n this.crossOrigin = crossOrigin;\n this.crossOriginUrl = crossOriginUrl;\n var image = document.createElement('img');\n\n if (crossOrigin) {\n image.crossOrigin = crossOrigin;\n }\n\n image.src = crossOriginUrl || url;\n image.alt = element.alt || 'The image to crop';\n this.image = image;\n image.onload = this.start.bind(this);\n image.onerror = this.stop.bind(this);\n addClass(image, CLASS_HIDE);\n element.parentNode.insertBefore(image, element.nextSibling);\n }\n }, {\n key: \"start\",\n value: function start() {\n var _this2 = this;\n\n var image = this.image;\n image.onload = null;\n image.onerror = null;\n this.sizing = true; // Match all browsers that use WebKit as the layout engine in iOS devices,\n // such as Safari for iOS, Chrome for iOS, and in-app browsers.\n\n var isIOSWebKit = WINDOW.navigator && /(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(WINDOW.navigator.userAgent);\n\n var done = function done(naturalWidth, naturalHeight) {\n assign(_this2.imageData, {\n naturalWidth: naturalWidth,\n naturalHeight: naturalHeight,\n aspectRatio: naturalWidth / naturalHeight\n });\n _this2.initialImageData = assign({}, _this2.imageData);\n _this2.sizing = false;\n _this2.sized = true;\n\n _this2.build();\n }; // Most modern browsers (excepts iOS WebKit)\n\n\n if (image.naturalWidth && !isIOSWebKit) {\n done(image.naturalWidth, image.naturalHeight);\n return;\n }\n\n var sizingImage = document.createElement('img');\n var body = document.body || document.documentElement;\n this.sizingImage = sizingImage;\n\n sizingImage.onload = function () {\n done(sizingImage.width, sizingImage.height);\n\n if (!isIOSWebKit) {\n body.removeChild(sizingImage);\n }\n };\n\n sizingImage.src = image.src; // iOS WebKit will convert the image automatically\n // with its orientation once append it into DOM (#279)\n\n if (!isIOSWebKit) {\n sizingImage.style.cssText = 'left:0;' + 'max-height:none!important;' + 'max-width:none!important;' + 'min-height:0!important;' + 'min-width:0!important;' + 'opacity:0;' + 'position:absolute;' + 'top:0;' + 'z-index:-1;';\n body.appendChild(sizingImage);\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n var image = this.image;\n image.onload = null;\n image.onerror = null;\n image.parentNode.removeChild(image);\n this.image = null;\n }\n }, {\n key: \"build\",\n value: function build() {\n if (!this.sized || this.ready) {\n return;\n }\n\n var element = this.element,\n options = this.options,\n image = this.image; // Create cropper elements\n\n var container = element.parentNode;\n var template = document.createElement('div');\n template.innerHTML = TEMPLATE;\n var cropper = template.querySelector(\".\".concat(NAMESPACE, \"-container\"));\n var canvas = cropper.querySelector(\".\".concat(NAMESPACE, \"-canvas\"));\n var dragBox = cropper.querySelector(\".\".concat(NAMESPACE, \"-drag-box\"));\n var cropBox = cropper.querySelector(\".\".concat(NAMESPACE, \"-crop-box\"));\n var face = cropBox.querySelector(\".\".concat(NAMESPACE, \"-face\"));\n this.container = container;\n this.cropper = cropper;\n this.canvas = canvas;\n this.dragBox = dragBox;\n this.cropBox = cropBox;\n this.viewBox = cropper.querySelector(\".\".concat(NAMESPACE, \"-view-box\"));\n this.face = face;\n canvas.appendChild(image); // Hide the original image\n\n addClass(element, CLASS_HIDDEN); // Inserts the cropper after to the current image\n\n container.insertBefore(cropper, element.nextSibling); // Show the image if is hidden\n\n if (!this.isImg) {\n removeClass(image, CLASS_HIDE);\n }\n\n this.initPreview();\n this.bind();\n options.initialAspectRatio = Math.max(0, options.initialAspectRatio) || NaN;\n options.aspectRatio = Math.max(0, options.aspectRatio) || NaN;\n options.viewMode = Math.max(0, Math.min(3, Math.round(options.viewMode))) || 0;\n addClass(cropBox, CLASS_HIDDEN);\n\n if (!options.guides) {\n addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-dashed\")), CLASS_HIDDEN);\n }\n\n if (!options.center) {\n addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-center\")), CLASS_HIDDEN);\n }\n\n if (options.background) {\n addClass(cropper, \"\".concat(NAMESPACE, \"-bg\"));\n }\n\n if (!options.highlight) {\n addClass(face, CLASS_INVISIBLE);\n }\n\n if (options.cropBoxMovable) {\n addClass(face, CLASS_MOVE);\n setData(face, DATA_ACTION, ACTION_ALL);\n }\n\n if (!options.cropBoxResizable) {\n addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-line\")), CLASS_HIDDEN);\n addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-point\")), CLASS_HIDDEN);\n }\n\n this.render();\n this.ready = true;\n this.setDragMode(options.dragMode);\n\n if (options.autoCrop) {\n this.crop();\n }\n\n this.setData(options.data);\n\n if (isFunction(options.ready)) {\n addListener(element, EVENT_READY, options.ready, {\n once: true\n });\n }\n\n dispatchEvent(element, EVENT_READY);\n }\n }, {\n key: \"unbuild\",\n value: function unbuild() {\n if (!this.ready) {\n return;\n }\n\n this.ready = false;\n this.unbind();\n this.resetPreview();\n this.cropper.parentNode.removeChild(this.cropper);\n removeClass(this.element, CLASS_HIDDEN);\n }\n }, {\n key: \"uncreate\",\n value: function uncreate() {\n if (this.ready) {\n this.unbuild();\n this.ready = false;\n this.cropped = false;\n } else if (this.sizing) {\n this.sizingImage.onload = null;\n this.sizing = false;\n this.sized = false;\n } else if (this.reloading) {\n this.xhr.onabort = null;\n this.xhr.abort();\n } else if (this.image) {\n this.stop();\n }\n }\n /**\n * Get the no conflict cropper class.\n * @returns {Cropper} The cropper class.\n */\n\n }], [{\n key: \"noConflict\",\n value: function noConflict() {\n window.Cropper = AnotherCropper;\n return Cropper;\n }\n /**\n * Change the default options.\n * @param {Object} options - The new default options.\n */\n\n }, {\n key: \"setDefaults\",\n value: function setDefaults(options) {\n assign(DEFAULTS, isPlainObject(options) && options);\n }\n }]);\n\n return Cropper;\n}();\n\nassign(Cropper.prototype, render, preview, events, handlers, change, methods);\n\nexport default Cropper;\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","\n\n
    \n\t\n\t\n\t{#if !streaming}\n\t\t\n\t\t\t{#if mode === \"video\"}\n\t\t\t\t{#if recording}\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t{:else}\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t{/if}\n\t\t\t{:else}\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t{/if}\n\t\t\n\t{/if}\n
    \n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/_commonjsHelpers.88e99c8f.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/_commonjsHelpers.88e99c8f.js new file mode 100644 index 0000000000000000000000000000000000000000..1e8c60e63103e9e303d5339b78e31fe542190fb2 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/_commonjsHelpers.88e99c8f.js @@ -0,0 +1,2 @@ +var o=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function n(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function r(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}export{r as a,o as c,n as g}; +//# sourceMappingURL=_commonjsHelpers.88e99c8f.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/_commonjsHelpers.88e99c8f.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/_commonjsHelpers.88e99c8f.js.map new file mode 100644 index 0000000000000000000000000000000000000000..f201a3565d500dac11be96c9e1cf2371b256edae --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/_commonjsHelpers.88e99c8f.js.map @@ -0,0 +1 @@ +{"version":3,"file":"_commonjsHelpers.88e99c8f.js","sources":[],"sourcesContent":[],"names":[],"mappings":""} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/color.dcb69c9e.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/color.dcb69c9e.js new file mode 100644 index 0000000000000000000000000000000000000000..facbf925f54a16dfc4e481dc561b9d077a0d1d50 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/color.dcb69c9e.js @@ -0,0 +1,2 @@ +import{aj as o}from"./index.cb50929e.js";const t=r=>o[r%o.length];export{t as g}; +//# sourceMappingURL=color.dcb69c9e.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/color.dcb69c9e.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/color.dcb69c9e.js.map new file mode 100644 index 0000000000000000000000000000000000000000..cd3461e05956c37d959616beb43545d87deb944d --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/color.dcb69c9e.js.map @@ -0,0 +1 @@ +{"version":3,"file":"color.dcb69c9e.js","sources":["../../../../ui/packages/utils/src/color.ts"],"sourcesContent":["import { colors, ordered_colors } from \"@gradio/theme\";\n\nexport const get_next_color = (index: number): keyof typeof colors => {\n\treturn ordered_colors[index % ordered_colors.length];\n};\n"],"names":[],"mappings":"8CAEa,GAAiB,AAAC,GACvB,EAAe,EAAQ,EAAe"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/csv.27f5436c.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/csv.27f5436c.js new file mode 100644 index 0000000000000000000000000000000000000000..7ee090c69a9158e1331c5630c3dff9699534ab58 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/csv.27f5436c.js @@ -0,0 +1,2 @@ +import{d as a}from"./dsv.7fe76a93.js";var s=a(","),v=s.parse,o=s.parseRows;export{v as a,o as c}; +//# sourceMappingURL=csv.27f5436c.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/csv.27f5436c.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/csv.27f5436c.js.map new file mode 100644 index 0000000000000000000000000000000000000000..a2fc13e7d828302e2d638bb4c4ef261c7c9670ec --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/csv.27f5436c.js.map @@ -0,0 +1 @@ +{"version":3,"file":"csv.27f5436c.js","sources":["../../../../ui/node_modules/.pnpm/d3-dsv@3.0.1/node_modules/d3-dsv/src/csv.js"],"sourcesContent":["import dsv from \"./dsv.js\";\n\nvar csv = dsv(\",\");\n\nexport var csvParse = csv.parse;\nexport var csvParseRows = csv.parseRows;\nexport var csvFormat = csv.format;\nexport var csvFormatBody = csv.formatBody;\nexport var csvFormatRows = csv.formatRows;\nexport var csvFormatRow = csv.formatRow;\nexport var csvFormatValue = csv.formatValue;\n"],"names":["dsv"],"mappings":"sCAEA,GAAI,GAAMA,EAAI,GAAG,EAEN,EAAW,EAAI,MACf,EAAe,EAAI"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/dsv.7fe76a93.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/dsv.7fe76a93.js new file mode 100644 index 0000000000000000000000000000000000000000..fd7a34bfb56dda82dfbc84dbca32dfe81c5c5b4d --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/dsv.7fe76a93.js @@ -0,0 +1,6 @@ +var D={},A={},E=34,m=10,R=13;function I(r){return new Function("d","return {"+r.map(function(t,e){return JSON.stringify(t)+": d["+e+'] || ""'}).join(",")+"}")}function B(r,t){var e=I(r);return function(a,c){return t(e(a),c,r)}}function F(r){var t=Object.create(null),e=[];return r.forEach(function(a){for(var c in a)c in t||e.push(t[c]=c)}),e}function f(r,t){var e=r+"",a=e.length;return a9999?"+"+f(r,6):f(r,4)}function S(r){var t=r.getUTCHours(),e=r.getUTCMinutes(),a=r.getUTCSeconds(),c=r.getUTCMilliseconds();return isNaN(r)?"Invalid Date":L(r.getUTCFullYear())+"-"+f(r.getUTCMonth()+1,2)+"-"+f(r.getUTCDate(),2)+(c?"T"+f(t,2)+":"+f(e,2)+":"+f(a,2)+"."+f(c,3)+"Z":a?"T"+f(t,2)+":"+f(e,2)+":"+f(a,2)+"Z":e||t?"T"+f(t,2)+":"+f(e,2)+"Z":"")}function Z(r){var t=new RegExp('["'+r+` +\r]`),e=r.charCodeAt(0);function a(n,o){var s,i,u=c(n,function(h,l){if(s)return s(h,l-1);i=h,s=o?B(h,o):I(h)});return u.columns=i||[],u}function c(n,o){var s=[],i=n.length,u=0,h=0,l,v=i<=0,C=!1;n.charCodeAt(i-1)===m&&--i,n.charCodeAt(i-1)===R&&--i;function w(){if(v)return A;if(C)return C=!1,D;var j,d=u,p;if(n.charCodeAt(d)===E){for(;u++=i?v=!0:(p=n.charCodeAt(u++))===m?C=!0:p===R&&(C=!0,n.charCodeAt(u)===m&&++u),n.slice(d+1,j-1).replace(/""/g,'"')}for(;u 9999 ? \"+\" + pad(year, 6)\n : pad(year, 4);\n}\n\nfunction formatDate(date) {\n var hours = date.getUTCHours(),\n minutes = date.getUTCMinutes(),\n seconds = date.getUTCSeconds(),\n milliseconds = date.getUTCMilliseconds();\n return isNaN(date) ? \"Invalid Date\"\n : formatYear(date.getUTCFullYear(), 4) + \"-\" + pad(date.getUTCMonth() + 1, 2) + \"-\" + pad(date.getUTCDate(), 2)\n + (milliseconds ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \":\" + pad(seconds, 2) + \".\" + pad(milliseconds, 3) + \"Z\"\n : seconds ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \":\" + pad(seconds, 2) + \"Z\"\n : minutes || hours ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \"Z\"\n : \"\");\n}\n\nexport default function(delimiter) {\n var reFormat = new RegExp(\"[\\\"\" + delimiter + \"\\n\\r]\"),\n DELIMITER = delimiter.charCodeAt(0);\n\n function parse(text, f) {\n var convert, columns, rows = parseRows(text, function(row, i) {\n if (convert) return convert(row, i - 1);\n columns = row, convert = f ? customConverter(row, f) : objectConverter(row);\n });\n rows.columns = columns || [];\n return rows;\n }\n\n function parseRows(text, f) {\n var rows = [], // output rows\n N = text.length,\n I = 0, // current character index\n n = 0, // current line number\n t, // current token\n eof = N <= 0, // current token followed by EOF?\n eol = false; // current token followed by EOL?\n\n // Strip the trailing newline.\n if (text.charCodeAt(N - 1) === NEWLINE) --N;\n if (text.charCodeAt(N - 1) === RETURN) --N;\n\n function token() {\n if (eof) return EOF;\n if (eol) return eol = false, EOL;\n\n // Unescape quotes.\n var i, j = I, c;\n if (text.charCodeAt(j) === QUOTE) {\n while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE);\n if ((i = I) >= N) eof = true;\n else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true;\n else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }\n return text.slice(j + 1, i - 1).replace(/\"\"/g, \"\\\"\");\n }\n\n // Find next delimiter or newline.\n while (I < N) {\n if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true;\n else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }\n else if (c !== DELIMITER) continue;\n return text.slice(j, i);\n }\n\n // Return last token before EOF.\n return eof = true, text.slice(j, N);\n }\n\n while ((t = token()) !== EOF) {\n var row = [];\n while (t !== EOL && t !== EOF) row.push(t), t = token();\n if (f && (row = f(row, n++)) == null) continue;\n rows.push(row);\n }\n\n return rows;\n }\n\n function preformatBody(rows, columns) {\n return rows.map(function(row) {\n return columns.map(function(column) {\n return formatValue(row[column]);\n }).join(delimiter);\n });\n }\n\n function format(rows, columns) {\n if (columns == null) columns = inferColumns(rows);\n return [columns.map(formatValue).join(delimiter)].concat(preformatBody(rows, columns)).join(\"\\n\");\n }\n\n function formatBody(rows, columns) {\n if (columns == null) columns = inferColumns(rows);\n return preformatBody(rows, columns).join(\"\\n\");\n }\n\n function formatRows(rows) {\n return rows.map(formatRow).join(\"\\n\");\n }\n\n function formatRow(row) {\n return row.map(formatValue).join(delimiter);\n }\n\n function formatValue(value) {\n return value == null ? \"\"\n : value instanceof Date ? formatDate(value)\n : reFormat.test(value += \"\") ? \"\\\"\" + value.replace(/\"/g, \"\\\"\\\"\") + \"\\\"\"\n : value;\n }\n\n return {\n parse: parse,\n parseRows: parseRows,\n format: format,\n formatBody: formatBody,\n formatRows: formatRows,\n formatRow: formatRow,\n formatValue: formatValue\n };\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.0bfc333c.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.0bfc333c.js new file mode 100644 index 0000000000000000000000000000000000000000..678f9752966cd015fc69dae67d52451272d425a7 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.0bfc333c.js @@ -0,0 +1,2 @@ +import{S as w,i as j,s as q,e as b,t as A,a as v,c as S,b as g,d as p,f as y,g as d,m as z,l as B,h as D,j as C,k,n as E,o as F,p as G,u as H,q as I,r as J}from"./index.cb50929e.js";import{C as K}from"./Column.6844546c.js";function L(l){let e;const s=l[6].default,t=G(s,l,l[7],null);return{c(){t&&t.c()},m(n,i){t&&t.m(n,i),e=!0},p(n,i){t&&t.p&&(!e||i&128)&&H(t,s,n,n[7],e?J(s,n[7],i,null):I(n[7]),null)},i(n){e||(C(t,n),e=!0)},o(n){k(t,n),e=!1},d(n){t&&t.d(n)}}}function M(l){let e,s,t,n,i,u,m,r,f,_,o;return r=new K({props:{visible:l[3],$$slots:{default:[L]},$$scope:{ctx:l}}}),{c(){e=b("div"),s=b("div"),t=b("span"),n=A(l[0]),i=v(),u=b("span"),u.textContent="\u25BC",m=v(),S(r.$$.fragment),g(u,"class","transition"),p(u,"rotate-90",!l[3]),g(s,"class","w-full flex justify-between cursor-pointer"),g(e,"id",l[1]),g(e,"class","p-3 border border-gray-200 dark:border-gray-700 rounded-lg flex flex-col gap-3 hover:border-gray-300 dark:hover:border-gray-600 transition"),p(e,"hidden",!l[2])},m(a,c){y(a,e,c),d(e,s),d(s,t),d(t,n),d(s,i),d(s,u),d(e,m),z(r,e,null),f=!0,_||(o=B(s,"click",l[4]),_=!0)},p(a,[c]){(!f||c&1)&&D(n,a[0]),c&8&&p(u,"rotate-90",!a[3]);const h={};c&8&&(h.visible=a[3]),c&128&&(h.$$scope={dirty:c,ctx:a}),r.$set(h),(!f||c&2)&&g(e,"id",a[1]),c&4&&p(e,"hidden",!a[2])},i(a){f||(C(r.$$.fragment,a),f=!0)},o(a){k(r.$$.fragment,a),f=!1},d(a){a&&E(e),F(r),_=!1,o()}}}function N(l,e,s){let t,{$$slots:n={},$$scope:i}=e,{label:u}=e,{elem_id:m}=e,{visible:r=!0}=e,{open:f=!0}=e;const _=()=>{s(3,t=!t)};return l.$$set=o=>{"label"in o&&s(0,u=o.label),"elem_id"in o&&s(1,m=o.elem_id),"visible"in o&&s(2,r=o.visible),"open"in o&&s(5,f=o.open),"$$scope"in o&&s(7,i=o.$$scope)},l.$$.update=()=>{l.$$.dirty&32&&s(3,t=f)},[u,m,r,t,_,f,n,i]}class O extends w{constructor(e){super(),j(this,e,N,M,q,{label:0,elem_id:1,visible:2,open:5})}}var R=O;const T=["static"];export{R as Component,T as modes}; +//# sourceMappingURL=index.0bfc333c.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.0bfc333c.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.0bfc333c.js.map new file mode 100644 index 0000000000000000000000000000000000000000..fce3e73a146cedb8dbf9cec864b86a495b4bf793 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.0bfc333c.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.0bfc333c.js","sources":["../../../../ui/packages/app/src/components/Accordion/Accordion.svelte","../../../../ui/packages/app/src/components/Accordion/index.ts"],"sourcesContent":["\n\n\n\t
    \n\t\t{label}\n\t\t\n\t
    \n\t\n\t\t\n\t\n\n","export { default as Component } from \"./Accordion.svelte\";\nexport const modes = [\"static\"];\n"],"names":[],"mappings":"qhBAuBkB,yFAHT,iHACiB,yEANrB,8KAEW,cAHhB,SAKC,OACC,qBACA,iDAFc,qCACP,4BACiB,iCAER,uEARb,yBAEW,yJAfJ,YACA,cACA,UAAmB,OACnB,OAAgB,WAIrB,YACL,GAAS,CAAK,iNAHZ,EAAQ,CAAI,iICNH,GAAQ,CAAC,QAAQ"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.0fca6928.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.0fca6928.js new file mode 100644 index 0000000000000000000000000000000000000000..8686e705fccce93abaacab8fce072e1947038ceb --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.0fca6928.js @@ -0,0 +1,2 @@ +import{ar as r}from"./index.cb50929e.js";const e=["static","dynamic"],o=t=>({type:"string",description:"text string",example_data:t.value||"hello world"});export{r as Component,o as document,e as modes}; +//# sourceMappingURL=index.0fca6928.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.0fca6928.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.0fca6928.js.map new file mode 100644 index 0000000000000000000000000000000000000000..0f4bef4ba39689c2bf57e0f0692254803dcc8a24 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.0fca6928.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.0fca6928.js","sources":["../../../../ui/packages/app/src/components/Textbox/index.ts"],"sourcesContent":["export { default as Component } from \"./Textbox.svelte\";\nexport const modes = [\"static\", \"dynamic\"];\n\nexport const document = (config: Record) => ({\n\ttype: \"string\",\n\tdescription: \"text string\",\n\texample_data: config.value || \"hello world\"\n});\n"],"names":[],"mappings":"8CACa,GAAQ,CAAC,SAAU,SAAS,EAE5B,EAAW,AAAC,KACxB,KAAM,SACN,YAAa,cACb,aAAc,EAAO,OAAS,aAC/B"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.10851bbc.css b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.10851bbc.css new file mode 100644 index 0000000000000000000000000000000000000000..9e7e911f291654464b8610b5f9462522dddbb07d --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.10851bbc.css @@ -0,0 +1 @@ +.gallery-item.svelte-1g9btlg.svelte-1g9btlg{position:relative;aspect-ratio:1 / 1;height:100%;width:100%;overflow:hidden;border-radius:.25rem;--tw-bg-opacity:1;background-color:rgb(243 244 246 / var(--tw-bg-opacity));object-fit:fill;--tw-shadow:0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-opacity:1;--tw-ring-color:rgb(229 231 235 / var(--tw-ring-opacity)) }.gallery-item.svelte-1g9btlg.svelte-1g9btlg:hover{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-opacity:1;--tw-ring-color:rgb(255 176 102 / var(--tw-ring-opacity));--tw-brightness:brightness(1.1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.gallery-item.svelte-1g9btlg.svelte-1g9btlg:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246 / var(--tw-ring-opacity)) }.dark.svelte-1g9btlg .gallery-item.svelte-1g9btlg{--tw-bg-opacity:1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))} diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.1285777f.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.1285777f.js new file mode 100644 index 0000000000000000000000000000000000000000..a3d18154be40de86138ed5236d62680589c1fd29 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.1285777f.js @@ -0,0 +1,3 @@ +import{S as Q,i as W,s as Z,w as B,b as f,f as y,g as E,x as O,n as w,e as T,t as U,Y as X,ae as ye,ai as we,h as Y,a as D,C as q,B as I,N as Le,y as Ee,F as ge,ad as je,a6 as G,P as Ae,c as P,m as R,j as F,k as N,o as V,Q as Me,X as Ce,R as ze,T as Be,U as Te,V as Se,D as be,E as ke}from"./index.cb50929e.js";import{U as Fe}from"./Upload.5e38559f.js";import{M as Ne}from"./ModifyUpload.e869f7e2.js";import{B as Ue}from"./BlockLabel.4b1193ac.js";import{g as Xe}from"./color.dcb69c9e.js";import{_ as J,m as K,Z as x}from"./linear.955f0731.js";import{a as Ye}from"./csv.27f5436c.js";import"./dsv.7fe76a93.js";function De(l){let e,t,n;return{c(){e=B("svg"),t=B("path"),n=B("path"),f(t,"d","M28.828 3.172a4.094 4.094 0 0 0-5.656 0L4.05 22.292A6.954 6.954 0 0 0 2 27.242V30h2.756a6.952 6.952 0 0 0 4.95-2.05L28.828 8.829a3.999 3.999 0 0 0 0-5.657zM10.91 18.26l2.829 2.829l-2.122 2.121l-2.828-2.828zm-2.619 8.276A4.966 4.966 0 0 1 4.756 28H4v-.759a4.967 4.967 0 0 1 1.464-3.535l1.91-1.91l2.829 2.828zM27.415 7.414l-12.261 12.26l-2.829-2.828l12.262-12.26a2.047 2.047 0 0 1 2.828 0a2 2 0 0 1 0 2.828z"),f(t,"fill","currentColor"),f(n,"d","M6.5 15a3.5 3.5 0 0 1-2.475-5.974l3.5-3.5a1.502 1.502 0 0 0 0-2.121a1.537 1.537 0 0 0-2.121 0L3.415 5.394L2 3.98l1.99-1.988a3.585 3.585 0 0 1 4.95 0a3.504 3.504 0 0 1 0 4.949L5.439 10.44a1.502 1.502 0 0 0 0 2.121a1.537 1.537 0 0 0 2.122 0l4.024-4.024L13 9.95l-4.025 4.024A3.475 3.475 0 0 1 6.5 15z"),f(n,"fill","currentColor"),f(e,"width","1em"),f(e,"height","1em"),f(e,"viewBox","0 0 32 32")},m(r,s){y(r,e,s),E(e,t),E(e,n)},p:O,i:O,o:O,d(r){r&&w(e)}}}class ve extends Q{constructor(e){super(),W(this,e,null,De,Z,{})}}function $(l){let e;return Array.isArray(l)?e=l.reduce((t,{values:n})=>[...t,...n.map(({y:r})=>r)],[]):e=l.values,[Math.min(...e),Math.max(...e)]}function ee(l,e,t){const n=Object.entries(l[0]).reduce((r,s,o)=>(!e&&o===0||e&&s[0]===e?r.x.name=s[0]:(!t||t&&t.includes(s[0]))&&r.y.push({name:s[0],values:[]}),r),{x:{name:"",values:[]},y:[]});for(let r=0;rl[6].call(e))},m(s,o){y(s,e,o),E(e,t),E(e,n),r=we(e,l[6].bind(e))},p(s,[o]){o&8&&X(t,"background",s[3]),o&1&&Y(n,s[0]),o&36&&X(e,"top",s[2]-s[5]/2+"px"),o&18&&X(e,"left",s[1]-s[4]-7+"px")},i:O,o:O,d(s){s&&w(e),r()}}}function Oe(l,e,t){let{text:n}=e,{x:r}=e,{y:s}=e,{color:o}=e,_,i;function b(){_=this.offsetWidth,i=this.offsetHeight,t(4,_),t(5,i)}return l.$$set=g=>{"text"in g&&t(0,n=g.text),"x"in g&&t(1,r=g.x),"y"in g&&t(2,s=g.y),"color"in g&&t(3,o=g.color)},[n,r,s,o,_,i,b]}class Pe extends Q{constructor(e){super(),W(this,e,Oe,He,Z,{text:0,x:1,y:2,color:3})}}function Re(l,{color:e,text:t}){let n;function r(i){return n=new Pe({props:{text:t,x:i.pageX,y:i.pageY,color:e},target:document.body}),i}function s(i){n.$set({x:i.pageX,y:i.pageY})}function o(){n.$destroy()}const _=l;return _.addEventListener("mouseover",r),_.addEventListener("mouseleave",o),_.addEventListener("mousemove",s),{destroy(){_.removeEventListener("mouseover",r),_.removeEventListener("mouseleave",o),_.removeEventListener("mousemove",s)}}}function le(l,e,t){const n=l.slice();n[16]=e[t].name,n[17]=e[t].values;const r=n[8][n[16]];return n[18]=r,n}function te(l,e,t){const n=l.slice();return n[0]=e[t].x,n[1]=e[t].y,n}function ne(l,e,t){const n=l.slice();n[16]=e[t].name,n[17]=e[t].values;const r=n[8][n[16]];return n[18]=r,n}function oe(l,e,t){const n=l.slice();return n[0]=e[t].x,n[1]=e[t].y,n}function re(l,e,t){const n=l.slice();return n[27]=e[t],n}function se(l,e,t){const n=l.slice();return n[27]=e[t],n}function ie(l,e,t){const n=l.slice();return n[16]=e[t].name,n}function ae(l){let e,t,n,r=l[16]+"",s,o;return{c(){e=T("div"),t=T("span"),n=D(),s=U(r),o=D(),f(t,"class","inline-block w-[12px] h-[12px] rounded-sm "),X(t,"background-color",l[8][l[16]]),f(e,"class","mx-2 flex gap-1 items-center")},m(_,i){y(_,e,i),E(e,t),E(e,n),E(e,s),E(e,o)},p(_,i){i[0]&260&&X(t,"background-color",_[8][_[16]]),i[0]&4&&r!==(r=_[16]+"")&&Y(s,r)},d(_){_&&w(e)}}}function fe(l){let e,t,n,r,s,o,_=l[27]+"",i,b,g;return{c(){e=B("line"),o=B("text"),i=U(_),f(e,"stroke-width","0.5"),f(e,"x1",t=l[5](l[27])),f(e,"x2",n=l[5](l[27])),f(e,"y1",r=l[4](l[9][0]l[9][l[9].length-1]?l[6][1]:l[9][l[9].length-1])),f(e,"stroke","#aaa"),f(o,"class","font-mono text-xs dark:fill-slate-200"),f(o,"text-anchor","middle"),f(o,"x",b=l[5](l[27])),f(o,"y",g=l[4](l[9][0])+30)},m(a,h){y(a,e,h),y(a,o,h),E(o,i)},p(a,h){h[0]&1056&&t!==(t=a[5](a[27]))&&f(e,"x1",t),h[0]&1056&&n!==(n=a[5](a[27]))&&f(e,"x2",n),h[0]&592&&r!==(r=a[4](a[9][0]a[9][a[9].length-1]?a[6][1]:a[9][a[9].length-1]))&&f(e,"y2",s),h[0]&1024&&_!==(_=a[27]+"")&&Y(i,_),h[0]&1056&&b!==(b=a[5](a[27]))&&f(o,"x",b),h[0]&528&&g!==(g=a[4](a[9][0])+30)&&f(o,"y",g)},d(a){a&&w(e),a&&w(o)}}}function _e(l){let e,t,n,r,s,o,_=l[27]+"",i,b,g;return{c(){e=B("line"),o=B("text"),i=U(_),f(e,"stroke-width","0.5"),f(e,"y1",t=l[4](l[27])),f(e,"y2",n=l[4](l[27])),f(e,"x1",r=l[5](l[10][0]l[10][l[10].length-1]?l[7][1]:l[10][l[10].length-1])),f(e,"stroke","#aaa"),f(o,"class","font-mono text-xs dark:fill-slate-200"),f(o,"text-anchor","end"),f(o,"y",b=l[4](l[27])+4),f(o,"x",g=l[5](l[10][0])-20)},m(a,h){y(a,e,h),y(a,o,h),E(o,i)},p(a,h){h[0]&528&&t!==(t=a[4](a[27]))&&f(e,"y1",t),h[0]&528&&n!==(n=a[4](a[27]))&&f(e,"y2",n),h[0]&1184&&r!==(r=a[5](a[10][0]a[10][a[10].length-1]?a[7][1]:a[10][a[10].length-1]))&&f(e,"x2",s),h[0]&512&&_!==(_=a[27]+"")&&Y(i,_),h[0]&528&&b!==(b=a[4](a[27])+4)&&f(o,"y",b),h[0]&1056&&g!==(g=a[5](a[10][0])-20)&&f(o,"x",g)},d(a){a&&w(e),a&&w(o)}}}function ue(l){let e,t,n,r,s,o,_=l[6][1]+"",i,b,g;return{c(){e=B("line"),o=B("text"),i=U(_),f(e,"stroke-width","0.5"),f(e,"y1",t=l[4](l[6][1])),f(e,"y2",n=l[4](l[6][1])),f(e,"x1",r=l[5](l[10][0])),f(e,"x2",s=l[5](l[7][1])),f(e,"stroke","#aaa"),f(o,"class","font-mono text-xs dark:fill-slate-200"),f(o,"text-anchor","end"),f(o,"y",b=l[4](l[6][1])+4),f(o,"x",g=l[5](l[10][0])-20)},m(a,h){y(a,e,h),y(a,o,h),E(o,i)},p(a,h){h[0]&80&&t!==(t=a[4](a[6][1]))&&f(e,"y1",t),h[0]&80&&n!==(n=a[4](a[6][1]))&&f(e,"y2",n),h[0]&1056&&r!==(r=a[5](a[10][0]))&&f(e,"x1",r),h[0]&160&&s!==(s=a[5](a[7][1]))&&f(e,"x2",s),h[0]&64&&_!==(_=a[6][1]+"")&&Y(i,_),h[0]&80&&b!==(b=a[4](a[6][1])+4)&&f(o,"y",b),h[0]&1056&&g!==(g=a[5](a[10][0])-20)&&f(o,"x",g)},d(a){a&&w(e),a&&w(o)}}}function ce(l){let e,t,n,r;return{c(){e=B("circle"),f(e,"r","3.5"),f(e,"cx",t=l[5](l[0])),f(e,"cy",n=l[4](l[1])),f(e,"stroke-width","1.5"),f(e,"stroke",r=l[18]),f(e,"fill","none")},m(s,o){y(s,e,o)},p(s,o){o[0]&36&&t!==(t=s[5](s[0]))&&f(e,"cx",t),o[0]&20&&n!==(n=s[4](s[1]))&&f(e,"cy",n),o[0]&260&&r!==(r=s[18])&&f(e,"stroke",r)},d(s){s&&w(e)}}}function me(l){let e,t,n,r=l[17],s=[];for(let o=0;ol[9][l[9].length-1]&&ue(l),A=l[2],M=[];for(let c=0;cc[9][c[9].length-1]?p?p.p(c,C):(p=ue(c),p.c(),p.m(s,null)):p&&(p.d(1),p=null),C[0]&308){A=c[2];let u;for(u=0;u{L("process",{x:n,y:r})});const j=({x:p,y:A})=>[_(p),i(A)];return l.$$set=p=>{"value"in p&&t(11,a=p.value),"x"in p&&t(0,h=p.x),"y"in p&&t(1,k=p.y),"colors"in p&&t(12,m=p.colors)},l.$$.update=()=>{l.$$.dirty[0]&2051&&t(3,{x:n,y:r}=ee(typeof a=="string"?Ye(a):a,h,k),n,(t(2,r),t(11,a),t(0,h),t(1,k))),l.$$.dirty[0]&8&&t(7,s=$(n)),l.$$.dirty[0]&4&&t(6,o=$(r)),l.$$.dirty[0]&128&&t(5,_=x(s,[0,600]).nice()),l.$$.dirty[0]&64&&t(4,i=x(o,[350,0]).nice()),l.$$.dirty[0]&32&&t(10,b=_.ticks(8)),l.$$.dirty[0]&16&&t(9,g=i.ticks(8)),l.$$.dirty[0]&4&&t(8,v=r.reduce((p,A,M)=>({...p,[A.name]:S(M)}),{}))},[h,k,r,n,i,_,o,s,v,g,b,a,m,j]}class pe extends Q{constructor(e){super(),W(this,e,qe,Ve,Z,{value:11,x:0,y:1,colors:12},null,[-1,-1])}}function Ie(l){let e,t,n;return t=new Fe({props:{filetype:"text/csv",include_file_metadata:!1,$$slots:{default:[Ze]},$$scope:{ctx:l}}}),t.$on("load",l[16]),{c(){e=T("div"),P(t.$$.fragment),f(e,"class","h-full min-h-[8rem]")},m(r,s){y(r,e,s),R(t,e,null),n=!0},p(r,s){const o={};s&1052672&&(o.$$scope={dirty:s,ctx:r}),t.$set(o)},i(r){n||(F(t.$$.fragment,r),n=!0)},o(r){N(t.$$.fragment,r),n=!1},d(r){r&&w(e),V(t)}}}function Qe(l){let e,t,n,r,s;return t=new Ne({}),t.$on("clear",l[14]),r=new pe({props:{value:l[10],y:l[3],x:l[4],colors:l[8]}}),r.$on("process",l[15]),{c(){e=T("div"),P(t.$$.fragment),n=D(),P(r.$$.fragment),f(e,"class","input-model w-full h-60 flex justify-center items-center bg-gray-200 dark:bg-gray-600 relative")},m(o,_){y(o,e,_),R(t,e,null),E(e,n),R(r,e,null),s=!0},p(o,_){const i={};_&1024&&(i.value=o[10]),_&8&&(i.y=o[3]),_&16&&(i.x=o[4]),_&256&&(i.colors=o[8]),r.$set(i)},i(o){s||(F(t.$$.fragment,o),F(r.$$.fragment,o),s=!0)},o(o){N(t.$$.fragment,o),N(r.$$.fragment,o),s=!1},d(o){o&&w(e),V(t),V(r)}}}function We(l){let e,t,n,r;const s=[Je,Ge],o=[];function _(i,b){return i[11]?0:1}return e=_(l),t=o[e]=s[e](l),{c(){t.c(),n=I()},m(i,b){o[e].m(i,b),y(i,n,b),r=!0},p(i,b){let g=e;e=_(i),e===g?o[e].p(i,b):(be(),N(o[g],1,1,()=>{o[g]=null}),ke(),t=o[e],t?t.p(i,b):(t=o[e]=s[e](i),t.c()),F(t,1),t.m(n.parentNode,n))},i(i){r||(F(t),r=!0)},o(i){N(t),r=!1},d(i){o[e].d(i),i&&w(n)}}}function Ze(l){let e=l[12]("interface.drop_csv")+"",t,n,r,s,o=l[12]("or")+"",_,i,b,g,a=l[12]("interface.click_to_upload")+"",h;return{c(){t=U(e),n=D(),r=T("br"),s=U("- "),_=U(o),i=U(" -"),b=T("br"),g=D(),h=U(a)},m(k,m){y(k,t,m),y(k,n,m),y(k,r,m),y(k,s,m),y(k,_,m),y(k,i,m),y(k,b,m),y(k,g,m),y(k,h,m)},p(k,m){m&4096&&e!==(e=k[12]("interface.drop_csv")+"")&&Y(t,e),m&4096&&o!==(o=k[12]("or")+"")&&Y(_,o),m&4096&&a!==(a=k[12]("interface.click_to_upload")+"")&&Y(h,a)},d(k){k&&w(t),k&&w(n),k&&w(r),k&&w(s),k&&w(_),k&&w(i),k&&w(b),k&&w(g),k&&w(h)}}}function Ge(l){let e,t,n,r;return n=new ve({}),{c(){e=T("div"),t=T("div"),P(n.$$.fragment),f(t,"class","h-5 dark:text-white opacity-50"),f(e,"class","h-full min-h-[15rem] flex justify-center items-center")},m(s,o){y(s,e,o),E(e,t),R(n,t,null),r=!0},p:O,i(s){r||(F(n.$$.fragment,s),r=!0)},o(s){N(n.$$.fragment,s),r=!1},d(s){s&&w(e),V(n)}}}function Je(l){let e,t;return e=new pe({props:{value:l[11],colors:l[8]}}),{c(){P(e.$$.fragment)},m(n,r){R(e,n,r),t=!0},p(n,r){const s={};r&2048&&(s.value=n[11]),r&256&&(s.colors=n[8]),e.$set(s)},i(n){t||(F(e.$$.fragment,n),t=!0)},o(n){N(e.$$.fragment,n),t=!1},d(n){V(e,n)}}}function Ke(l){let e,t,n,r,s,o,_,i;e=new Ue({props:{show_label:l[7],Icon:ve,label:l[6]||"TimeSeries"}});const b=[l[9]];let g={};for(let m=0;m{h[j]=null}),ke()),~s?(o=h[s],o?o.p(m,L):(o=h[s]=a[s](m),o.c()),F(o,1),o.m(_.parentNode,_)):o=null)},i(m){i||(F(e.$$.fragment,m),F(n.$$.fragment,m),F(o),i=!0)},o(m){N(e.$$.fragment,m),N(n.$$.fragment,m),N(o),i=!1},d(m){V(e,m),m&&w(t),V(n,m),m&&w(r),~s&&h[s].d(m),m&&w(_)}}}function xe(l){let e,t;return e=new Ae({props:{visible:l[2],variant:l[5]==="dynamic"&&!l[10]?"dashed":"solid",color:"grey",padding:!1,elem_id:l[1],$$slots:{default:[Ke]},$$scope:{ctx:l}}}),{c(){P(e.$$.fragment)},m(n,r){R(e,n,r),t=!0},p(n,[r]){const s={};r&4&&(s.visible=n[2]),r&1056&&(s.variant=n[5]==="dynamic"&&!n[10]?"dashed":"solid"),r&2&&(s.elem_id=n[1]),r&1056761&&(s.$$scope={dirty:r,ctx:n}),e.$set(s)},i(n){t||(F(e.$$.fragment,n),t=!0)},o(n){N(e.$$.fragment,n),t=!1},d(n){V(e,n)}}}function $e(l){return l.data.map(e=>e.reduce((t,n,r)=>({...t,[l.headers[r]]:n}),{}))}function el(l){const e=atob(l.split(",")[1]),t=l.split(",")[0].split(":")[1].split(";")[0],n=new ArrayBuffer(e.length),r=new Uint8Array(n);for(let s=0;st.push(r));for(let r=0;rs.push(o[r].y)),n.push(s)}return{headers:t,data:n}}function tl(l,e,t){let n,r;Me(l,Ce,d=>t(12,r=d));const s=ge();let{elem_id:o=""}=e,{visible:_=!0}=e,{value:i}=e,{y:b}=e,{x:g}=e,{mode:a}=e,{label:h}=e,{show_label:k}=e,{colors:m}=e,{loading_status:L}=e,v;function S(d){const c=new FileReader;c.addEventListener("loadend",C=>{t(10,v=C.srcElement.result)}),c.readAsText(d)}function j(d){d.headers&&t(10,v=d.headers.join(",")),d.data.forEach(C=>{t(10,v=v+` +`),t(10,v=v+C.join(","))})}function p(d){return t(0,i={data:d}),d}function A({detail:d}){t(0,i=null),s("change"),s("clear")}const M=({detail:{x:d,y:c}})=>t(0,i=ll(d,c)),H=({detail:d})=>p(d);return l.$$set=d=>{"elem_id"in d&&t(1,o=d.elem_id),"visible"in d&&t(2,_=d.visible),"value"in d&&t(0,i=d.value),"y"in d&&t(3,b=d.y),"x"in d&&t(4,g=d.x),"mode"in d&&t(5,a=d.mode),"label"in d&&t(6,h=d.label),"show_label"in d&&t(7,k=d.show_label),"colors"in d&&t(8,m=d.colors),"loading_status"in d&&t(9,L=d.loading_status)},l.$$.update=()=>{l.$$.dirty&1&&(i&&i.data&&typeof i.data=="string"?i?S(el(i.data)):t(10,v=null):i&&i.data&&typeof i.data!="string"&&(i||t(10,v=null),j(i))),l.$$.dirty&1025&&t(10,v=i==null?null:v),l.$$.dirty&33&&t(11,n=a==="static"&&i&&$e(i)),l.$$.dirty&1&&s("change")},[i,o,_,b,g,a,h,k,m,L,v,n,r,p,A,M,H]}class nl extends Q{constructor(e){super(),W(this,e,tl,xe,Z,{elem_id:1,visible:2,value:0,y:3,x:4,mode:5,label:6,show_label:7,colors:8,loading_status:9})}}var cl=nl;const ml=["static","dynamic"],hl=l=>({type:"{data: Array> | string; headers?: Array;}",description:"dataset of series"});export{cl as Component,hl as document,ml as modes}; +//# sourceMappingURL=index.1285777f.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.1285777f.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.1285777f.js.map new file mode 100644 index 0000000000000000000000000000000000000000..15541777bfd3565fd254a53391935606189724fe --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.1285777f.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.1285777f.js","sources":["../../../../ui/packages/icons/src/Chart.svelte","../../../../ui/packages/chart/src/utils.ts","../../../../ui/packages/tooltip/src/Tooltip.svelte","../../../../ui/packages/tooltip/src/tooltip.ts","../../../../ui/packages/chart/src/Chart.svelte","../../../../ui/packages/app/src/components/TimeSeries/TimeSeries.svelte","../../../../ui/packages/app/src/components/TimeSeries/index.ts"],"sourcesContent":["\n","interface XYValue {\n\tx: number;\n\ty: number;\n}\n\ninterface ObjectValue {\n\tvalues: XYValue[];\n}\n\nexport function get_domains(\n\tvalues: ObjectValue[] | { values: number[] }\n): [number, number] {\n\tlet _vs: number[];\n\tif (Array.isArray(values)) {\n\t\t_vs = values.reduce((acc, { values }) => {\n\t\t\treturn [...acc, ...values.map(({ y }) => y)];\n\t\t}, []);\n\t} else {\n\t\t_vs = values.values;\n\t}\n\treturn [Math.min(..._vs), Math.max(..._vs)];\n}\n\ninterface Row {\n\tname: string;\n\tvalues: number[];\n}\n\ninterface RowPoint {\n\tname: string;\n\tvalues: Array<{ x: number; y: number }>;\n}\n\ninterface TransformedValues {\n\tx: Row;\n\ty: Array;\n}\n\nexport function transform_values(\n\tvalues: Array>,\n\tx?: string,\n\ty?: string[]\n) {\n\tconst transformed_values = Object.entries(\n\t\tvalues[0]\n\t).reduce(\n\t\t(acc, next, i) => {\n\t\t\tif ((!x && i === 0) || (x && next[0] === x)) {\n\t\t\t\tacc.x.name = next[0];\n\t\t\t} else if (!y || (y && y.includes(next[0]))) {\n\t\t\t\tacc.y.push({ name: next[0], values: [] });\n\t\t\t}\n\t\t\treturn acc;\n\t\t},\n\t\t{ x: { name: \"\", values: [] }, y: [] }\n\t);\n\n\tfor (let i = 0; i < values.length; i++) {\n\t\tconst _a = Object.entries(values[i]);\n\t\tfor (let j = 0; j < _a.length; j++) {\n\t\t\tlet [name, x] = _a[j];\n\t\t\tif (name === transformed_values.x.name) {\n\t\t\t\ttransformed_values.x.values.push(parseFloat(x));\n\t\t\t} else {\n\t\t\t\ttransformed_values.y[j - 1].values.push({\n\t\t\t\t\ty: parseFloat(_a[j][1]),\n\t\t\t\t\tx: parseFloat(_a[0][1])\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\treturn transformed_values;\n}\n","\n\n\n\t{text}\n\n","import Tooltip from \"./Tooltip.svelte\";\n\ninterface ActionArgs {\n\tcolor: string;\n\ttext: string;\n}\n\nexport function tooltip(\n\telement: HTMLElement | SVGElement,\n\t{ color, text }: ActionArgs\n) {\n\tlet tooltipComponent: Tooltip;\n\tfunction mouse_over(event: MouseEvent) {\n\t\ttooltipComponent = new Tooltip({\n\t\t\tprops: {\n\t\t\t\ttext,\n\t\t\t\tx: event.pageX,\n\t\t\t\ty: event.pageY,\n\t\t\t\tcolor\n\t\t\t},\n\t\t\ttarget: document.body\n\t\t});\n\n\t\treturn event;\n\t}\n\tfunction mouseMove(event: MouseEvent) {\n\t\ttooltipComponent.$set({\n\t\t\tx: event.pageX,\n\t\t\ty: event.pageY\n\t\t});\n\t}\n\tfunction mouseLeave() {\n\t\ttooltipComponent.$destroy();\n\t}\n\n\tconst el = element as HTMLElement;\n\n\tel.addEventListener(\"mouseover\", mouse_over);\n\tel.addEventListener(\"mouseleave\", mouseLeave);\n\tel.addEventListener(\"mousemove\", mouseMove);\n\n\treturn {\n\t\tdestroy() {\n\t\t\tel.removeEventListener(\"mouseover\", mouse_over);\n\t\t\tel.removeEventListener(\"mouseleave\", mouseLeave);\n\t\t\tel.removeEventListener(\"mousemove\", mouseMove);\n\t\t}\n\t};\n}\n","\n\n
    \n\t
    \n\t\t{#each _y as { name }}\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{name}\n\t\t\t
    \n\t\t{/each}\n\t
    \n\t\n\t\t\n\t\t\t{#each x_ticks as tick}\n\t\t\t\t y_ticks[y_ticks.length - 1]\n\t\t\t\t\t\t\t? y_domain[1]\n\t\t\t\t\t\t\t: y_ticks[y_ticks.length - 1]\n\t\t\t\t\t)}\n\t\t\t\t\tstroke=\"#aaa\"\n\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\t{tick}\n\t\t\t\t\n\t\t\t{/each}\n\n\t\t\t{#each y_ticks as tick}\n\t\t\t\t x_ticks[x_ticks.length - 1]\n\t\t\t\t\t\t\t? x_domain[1]\n\t\t\t\t\t\t\t: x_ticks[x_ticks.length - 1]\n\t\t\t\t\t)}\n\t\t\t\t\tstroke=\"#aaa\"\n\t\t\t\t/>\n\n\t\t\t\t\n\t\t\t\t\t{tick}\n\t\t\t\t\n\t\t\t{/each}\n\n\t\t\t{#if y_domain[1] > y_ticks[y_ticks.length - 1]}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{y_domain[1]}\n\t\t\t\t\n\t\t\t{/if}\n\t\t\n\n\t\t{#each _y as { name, values }}\n\t\t\t{@const color = color_map[name]}\n\t\t\t{#each values as { x, y }}\n\t\t\t\t\n\t\t\t{/each}\n\t\t\t [scale_x(x), scale_y(y)])\n\t\t\t\t)}\n\t\t\t\tfill=\"none\"\n\t\t\t\tstroke={color}\n\t\t\t\tstroke-width=\"3\"\n\t\t\t/>\n\t\t{/each}\n\n\t\t{#each _y as { name, values }}\n\t\t\t{@const color = color_map[name]}\n\t\t\t{#each values as { x, y }}\n\t\t\t\t\n\t\t\t{/each}\n\t\t{/each}\n\t\n\n\t\n\t\t{_x.name}\n\t
    \n\n","\n\n\n\t\n\t\n\n\t{#if mode === \"static\"}\n\t\t{#if static_data}\n\t\t\t\n\t\t{:else}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{:else if _value}\n\t\t\n\t\t\t\n\t\t\t (value = make_dict(x, y))}\n\t\t\t\t{colors}\n\t\t\t/>\n\t\t\n\t{:else if value === undefined || value === null}\n\t\t
    \n\t\t\t handle_load(detail)}\n\t\t\t\tinclude_file_metadata={false}\n\t\t\t>\n\t\t\t\t{$_(\"interface.drop_csv\")}\n\t\t\t\t
    - {$_(\"or\")} -
    \n\t\t\t\t{$_(\"interface.click_to_upload\")}\n\t\t\t\n\t\t
    \n\t{/if}\n\n","export { default as Component } from \"./TimeSeries.svelte\";\nexport const modes = [\"static\", \"dynamic\"];\n\nexport const document = (config: Record) => ({\n\ttype: \"{data: Array> | string; headers?: Array;}\",\n\tdescription: \"dataset of series\"\n});\n"],"names":["colors","color_palette","scaleLinear","ChartIcon","document"],"mappings":"6/CAAA,SACE,OAGC,gHCMF,EACmB,IACf,SACA,OAAM,QAAQ,CAAM,IACjB,EAAO,OAAiB,CAAC,EAAK,CAAE,YAC9B,CAAC,GAAG,EAAK,GAAG,EAAO,IAAI,CAAC,CAAE,OAAQ,CAAC,CAAC,EACzC,EAAE,IAEC,EAAO,OAEP,CAAC,KAAK,IAAI,GAAG,CAAG,EAAG,KAAK,IAAI,GAAG,CAAG,CAAC,CAC3C,aAkBC,EACA,EACA,EACC,MACK,GAAqB,OAAO,QACjC,EAAO,EACR,EAAE,OACD,CAAC,EAAK,EAAM,KACN,CAAC,GAAK,IAAM,GAAO,GAAK,EAAK,KAAO,IACpC,EAAE,KAAO,EAAK,GACR,EAAC,GAAM,GAAK,EAAE,SAAS,EAAK,EAAE,MACpC,EAAE,KAAK,CAAE,KAAM,EAAK,GAAI,OAAQ,GAAI,EAElC,GAER,CAAE,EAAG,CAAE,KAAM,GAAI,OAAQ,IAAM,EAAG,GACnC,SAES,GAAI,EAAG,EAAI,EAAO,OAAQ,IAAK,MACjC,GAAK,OAAO,QAAQ,EAAO,EAAE,SAC1B,GAAI,EAAG,EAAI,EAAG,OAAQ,IAAK,IAC/B,CAAC,EAAM,GAAK,EAAG,GACf,IAAS,EAAmB,EAAE,OACd,EAAE,OAAO,KAAK,WAAW,CAAC,CAAC,IAE3B,EAAE,EAAI,GAAG,OAAO,KAAK,CACvC,EAAG,WAAW,EAAG,GAAG,EAAE,EACtB,EAAG,WAAW,EAAG,GAAG,EAAE,EACtB,SAKG,EACR,kECpDI,2EADkB,4IALd,KAAI,KAAI,mBACP,KAAI,KAAI,qCANjB,SAQC,mEAEqB,eAClB,sBANI,KAAI,KAAI,yBACP,KAAI,KAAI,2DAfL,WACA,QACA,QACA,WAEP,EACA,eAKc,mBACC,sQCLnB,EACA,CAAE,QAAO,QACR,IACG,cACgB,EAAmB,UACnB,GAAI,IAAQ,CAC9B,MAAO,CACN,OACA,EAAG,EAAM,MACT,EAAG,EAAM,MACT,SAED,OAAQ,SAAS,KACjB,EAEM,aAEW,EAAmB,GACpB,KAAK,CACrB,EAAG,EAAM,MACT,EAAG,EAAM,MACT,cAEoB,GACJ,gBAGZ,GAAK,WAER,iBAAiB,YAAa,CAAU,IACxC,iBAAiB,aAAc,CAAU,IACzC,iBAAiB,YAAa,CAAS,EAEnC,CACN,SAAU,GACN,oBAAoB,YAAa,CAAU,IAC3C,oBAAoB,aAAc,CAAU,IAC5C,oBAAoB,YAAa,CAAS,GAGhD,gFCkHmB,KAAU,6KAtBV,KAAU,ySA1ExB,mJAF0B,KAAU,4DAHtC,SACC,qEAE2B,KAAU,uBAEpC,mEAyBC,8FAhBG,KAAQ,mBACR,KAAQ,mBACR,KAAQ,KAAQ,GAAK,KAAS,GAAK,KAAQ,GAAK,KAAS,IAAM,EAAE,aACjE,KACH,KAAS,GAAK,KAAQ,KAAQ,OAAS,GACpC,KAAS,GACT,KAAQ,KAAQ,OAAS,qHAO1B,KAAQ,kBACR,KAAQ,KAAQ,IAAM,EAAE,UAhB5B,SAYA,0CAVK,KAAQ,uCACR,KAAQ,sCACR,KAAQ,KAAQ,GAAK,KAAS,GAAK,KAAQ,GAAK,KAAS,IAAM,kCAC/D,KACH,KAAS,GAAK,KAAQ,KAAQ,OAAS,GACpC,KAAS,GACT,KAAQ,KAAQ,OAAS,oCAU5B,oCAHE,KAAQ,qCACR,KAAQ,KAAQ,IAAM,yEA0BxB,8FAjBG,KAAQ,mBACR,KAAQ,mBACR,KAAQ,MAAQ,GAAK,KAAS,GAAK,MAAQ,GAAK,KAAS,IAAM,EAAE,aACjE,KACH,KAAS,GAAK,MAAQ,MAAQ,OAAS,GACpC,KAAS,GACT,MAAQ,MAAQ,OAAS,kHAQ1B,KAAQ,OAAQ,CAAC,YACjB,KAAQ,MAAQ,IAAM,EAAE,UAjB5B,SAaA,yCAXK,KAAQ,sCACR,KAAQ,uCACR,KAAQ,MAAQ,GAAK,KAAS,GAAK,MAAQ,GAAK,KAAS,IAAM,mCAC/D,KACH,KAAS,GAAK,MAAQ,MAAQ,OAAS,GACpC,KAAS,GACT,MAAQ,MAAQ,OAAS,mCAW5B,mCAHE,KAAQ,OAAQ,iCAChB,KAAQ,MAAQ,IAAM,yEAqBxB,KAAS,2FAZN,KAAQ,KAAS,gBACjB,KAAQ,KAAS,gBACjB,KAAQ,MAAQ,gBAChB,KAAQ,KAAS,kHAMlB,KAAQ,KAAS,IAAM,CAAC,YACxB,KAAQ,MAAQ,IAAM,EAAE,UAZ5B,SAQA,wCANK,KAAQ,KAAS,kCACjB,KAAQ,KAAS,oCACjB,KAAQ,MAAQ,mCAChB,KAAQ,KAAS,kCASpB,KAAS,+BAHP,KAAQ,KAAS,IAAM,iCACvB,KAAQ,MAAQ,IAAM,sHAYrB,KAAQ,kBACR,KAAQ,gDAEJ,kCALT,iCAEK,KAAQ,oCACR,KAAQ,qCAEJ,mEANH,2BAAL,qGAWE,IAAQ,MAAM,CAAW,EAC3B,MAAO,+CAGA,+EALT,gCAVO,wBAAL,uIAAA,uBAWE,IAAQ,MAAM,CAAW,EAC3B,MAAO,0CAGA,+HAWH,KAAQ,kBACR,KAAQ,oGAJb,oCACgB,MAAA,MAAO,SAAU,SAAM,6CAElC,KAAQ,oCACR,KAAQ,mEAHG,MAAA,MAAO,SAAU,SAAM,0DAFjC,2BAAL,qKAAK,wBAAL,uIAAA,wEAiBF,KAAG,YAxHG,0BAAL,qCAYM,2BAAL,qCAuBK,0BAAL,qCAwBG,KAAS,GAAK,KAAQ,KAAQ,OAAS,YAoBtC,0BAAL,qCAsBK,0BAAL,ujBAvGJ,SACC,yDAWA,OACC,8NA0GD,qCArHQ,uBAAL,+HAAA,uBAYM,wBAAL,4HAAA,uBAuBK,uBAAL,4HAAA,UAwBG,KAAS,GAAK,KAAQ,KAAQ,OAAS,yEAoBtC,uBAAL,4HAAA,sBAsBK,uBAAL,+HAAA,sBAmBD,KAAG,6HAvKM,YACA,IAAwB,WACxB,IAA+B,kBAC/BA,aAEL,GAAW,QAeb,cAMe,MACd,GAAgBA,EAAO,EAAQA,EAAO,cAEtC,IAAiB,IAAiBC,GAC9BA,EAAc,IAClB,QACQ,GACJA,EAAc,GAAe,CAAK,GACvC,QAMJ,QACC,EAAS,WAAa,EAAG,EAAI,EAAG,gBAmGf,IAAG,QAAS,EAAQ,CAAC,EAAG,EAAQ,CAAC,qKArI7C,EAAG,EAAI,EAAG,GAEZ,SADI,IAAU,SACG,GAAS,CAAK,EACd,EADkD,EAAG,CAAC,yDAGxE,EAAW,EAAY,CAAE,wBACzB,EAAW,EAAY,CAAE,0BAEzB,EAAUC,EAAY,GAAW,EAAG,GAAG,GAAG,8BAC1C,EAAUA,EAAY,GAAW,IAAK,CAAC,GAAG,+BAC1C,EAAU,EAAQ,MAAM,CAAC,yBACzB,EAAU,EAAQ,MAAM,CAAC,wBAGzB,EAAY,EAAG,QAChB,EAAK,EAAM,SAAY,GAAM,EAAK,MAAO,EAAU,CAAC,0OC0I5B,6IAJzB,mPAVyB,8BAEhB,wOALT,iFAKS,gRAbJ,oUA2BF,MAAG,oBAAoB,eACf,MAAG,IAAI,eACf,MAAG,2BAA2B,6CADzB,IAAE,aAAU,IAAE,mDAApB,oCAAoB,kDADnB,MAAG,oBAAoB,6BACf,MAAG,IAAI,6BACf,MAAG,2BAA2B,oTA1BhC,SACC,uKAHa,qGAAA,iMALeC,SAAkB,MAAS,yBACvC,0HAEd,QAAS,WAQJ,QAaA,OAAU,QAAa,OAAU,qPAxBM,MAAS,+CACvC,waANV,OAAS,YAAc,MAAS,SAAW,cAC7C,eACE,oKAFA,OAAS,YAAc,MAAS,SAAW,4KA9H9B,SACd,GAAI,KAAK,IAAK,GACpB,EAAE,QAAQ,EAAK,EAAM,SAAY,GAAM,EAAI,QAAQ,IAAK,qBAgChC,QACnB,GAAW,KAAK,EAAS,MAAM,GAAG,EAAE,IACpC,EAAW,EAAS,MAAM,GAAG,EAAE,GAAG,MAAM,GAAG,EAAE,GAAG,MAAM,GAAG,EAAE,GAE3D,KAAS,aAAY,EAAS,MAAM,EACpC,KAAS,YAAW,CAAE,SAEnB,GAAI,EAAG,EAAI,EAAS,OAAQ,IACpC,EAAG,GAAK,EAAS,WAAW,CAAC,YAGnB,OAAM,CAAE,GAAK,KAAM,gBA2CZ,EAAS,QACrB,MACA,KAEN,EAAQ,KAAK,EAAE,IAAI,EACnB,EAAE,UAAW,UAAW,EAAQ,KAAK,CAAI,UAEhC,GAAI,EAAG,EAAI,EAAE,OAAO,OAAQ,QAChC,MACJ,EAAM,KAAK,EAAE,OAAO,IACpB,EAAE,UAAW,YAAa,EAAM,KAAK,EAAO,GAAG,CAAC,GAEhD,EAAK,KAAK,CAAK,SAEP,UAAS,8DAhGb,GAAW,SAcN,UAAkB,OAClB,UAAmB,OACnB,YACA,QACA,QACA,WACA,YACA,iBACA,aAEA,oBAEP,aAgBoB,QACjB,MAAa,YAEnB,EAAO,iBAAiB,UAAY,SAEnC,EAAS,EAAE,WAAW,MAAM,IAG7B,EAAO,WAAW,CAAI,aAGC,GACnB,EAAK,cAAS,EAAS,EAAK,QAAQ,KAAK,GAAG,GAEhD,AADa,EAAK,KACb,QAAS,SACb,EAAS,EAAS;AAAA,CAAI,OACtB,EAAS,EAAS,EAAE,KAAK,GAAG,gBAyCT,cACpB,GAAU,KAAM,IAET,cAGgB,eACvB,EAAQ,IAAI,EACZ,EAAS,QAAQ,EACjB,EAAS,OAAO,YAqCC,QAAU,IAAG,YAAW,EAAQ,GAAU,EAAG,CAAC,OAQjD,YAAa,EAAY,CAAM,kWA1FzC,GAAS,EAAM,YAAe,GAAM,MAAS,SAC3C,EACA,EAAe,GAAiB,EAAM,IAAI,QADnC,EAAS,IAAI,EAEf,GAAS,EAAM,YAAe,GAAM,MAAQ,UACjD,SAAO,EAAS,IAAI,EACzB,EAAe,CAAK,0BA2CnB,EAAS,GAAS,KAAO,KAAO,CAAM,sBACtC,EACF,IAAS,UAAY,GAAS,GAAa,CAAmB,iBAErD,EAAS,QAAQ,+MCrIf,IAAQ,CAAC,SAAU,SAAS,EAE5BC,GAAW,AAAC,KACxB,KAAM,kEACN,YAAa,mBACd"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.1a9e15aa.css b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.1a9e15aa.css new file mode 100644 index 0000000000000000000000000000000000000000..c3bc466c7ea2ea9db5c19526346ee1812418b024 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.1a9e15aa.css @@ -0,0 +1 @@ +.gr-prose{color:#374151;max-width:65ch}.gr-prose [class~=lead]{color:#4b5563;font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.gr-prose a{color:#111827;text-decoration:underline;font-weight:500}.gr-prose strong{color:#111827;font-weight:600}.gr-prose ol[type=A]{--list-counter-style: upper-alpha}.gr-prose ol[type=a]{--list-counter-style: lower-alpha}.gr-prose ol[type=A s]{--list-counter-style: upper-alpha}.gr-prose ol[type=a s]{--list-counter-style: lower-alpha}.gr-prose ol[type=I]{--list-counter-style: upper-roman}.gr-prose ol[type=i]{--list-counter-style: lower-roman}.gr-prose ol[type=I s]{--list-counter-style: upper-roman}.gr-prose ol[type=i s]{--list-counter-style: lower-roman}.gr-prose ol[type="1"]{--list-counter-style: decimal}.gr-prose ol>li{position:relative;padding-left:1.75em}.gr-prose ol>li:before{content:counter(list-item,var(--list-counter-style, decimal)) ".";position:absolute;font-weight:400;color:#6b7280;left:0}.gr-prose ul>li{position:relative;padding-left:1.75em}.gr-prose ul>li:before{content:"";position:absolute;background-color:#d1d5db;border-radius:50%;width:.375em;height:.375em;top:.6875em;left:.25em}.gr-prose hr{border-color:#e5e7eb;border-top-width:1px;margin-top:3em;margin-bottom:3em}.gr-prose blockquote{font-weight:500;font-style:italic;color:#111827;border-left-width:.25rem;border-left-color:#e5e7eb;quotes:"\201c""\201d""\2018""\2019";margin-top:1.6em;margin-bottom:1.6em;padding-left:1em}.gr-prose blockquote p:first-of-type:before{content:open-quote}.gr-prose blockquote p:last-of-type:after{content:close-quote}.gr-prose h1{color:#111827;font-weight:600;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.gr-prose h2{color:#111827;font-weight:600;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.gr-prose h3{color:#111827;font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.gr-prose h4{color:#111827;font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.gr-prose figure figcaption{color:#6b7280;font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.gr-prose code{color:#111827;font-weight:600;font-size:.875em}.gr-prose code:before{content:"`"}.gr-prose code:after{content:"`"}.gr-prose a code{color:#111827}.gr-prose pre{color:#e5e7eb;background-color:#1f2937;overflow-x:auto;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding:.8571429em 1.1428571em}.gr-prose pre code{background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:400;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.gr-prose pre code:before{content:none}.gr-prose pre code:after{content:none}.gr-prose table{width:100%;table-layout:auto;text-align:left;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.gr-prose thead{color:#111827;font-weight:600;border-bottom-width:1px;border-bottom-color:#d1d5db}.gr-prose thead th{vertical-align:bottom;padding-right:.5714286em;padding-bottom:.5714286em;padding-left:.5714286em}.gr-prose tbody tr{border-bottom-width:1px;border-bottom-color:#e5e7eb}.gr-prose tbody tr:last-child{border-bottom-width:0}.gr-prose tbody td{vertical-align:top;padding:.5714286em}.gr-prose{font-size:1rem;line-height:1.75}.gr-prose p{margin-top:1.25em;margin-bottom:1.25em}.gr-prose img{margin-top:2em;margin-bottom:2em}.gr-prose video{margin-top:2em;margin-bottom:2em}.gr-prose figure{margin-top:2em;margin-bottom:2em}.gr-prose figure>*{margin-top:0;margin-bottom:0}.gr-prose h2 code{font-size:.875em}.gr-prose h3 code{font-size:.9em}.gr-prose ol,.gr-prose ul{margin-top:1.25em;margin-bottom:1.25em}.gr-prose li{margin-top:.5em;margin-bottom:.5em}.gr-prose>ul>li p{margin-top:.75em;margin-bottom:.75em}.gr-prose>ul>li>:first-child{margin-top:1.25em}.gr-prose>ul>li>:last-child{margin-bottom:1.25em}.gr-prose>ol>li>:first-child{margin-top:1.25em}.gr-prose>ol>li>:last-child{margin-bottom:1.25em}.gr-prose ol ol,.gr-prose ol ul,.gr-prose ul ol,.gr-prose ul ul{margin-top:.75em;margin-bottom:.75em}.gr-prose hr+*{margin-top:0}.gr-prose h2+*{margin-top:0}.gr-prose h3+*{margin-top:0}.gr-prose h4+*{margin-top:0}.gr-prose thead th:first-child{padding-left:0}.gr-prose thead th:last-child{padding-right:0}.gr-prose tbody td:first-child{padding-left:0}.gr-prose tbody td:last-child{padding-right:0}.gr-prose>:first-child{margin-top:0}.gr-prose>:last-child{margin-bottom:0}.gr-prose-sm{font-size:.875rem;line-height:1.7142857}.gr-prose-sm p{margin-top:1.1428571em;margin-bottom:1.1428571em}.gr-prose-sm [class~=lead]{font-size:1.2857143em;line-height:1.5555556;margin-top:.8888889em;margin-bottom:.8888889em}.gr-prose-sm blockquote{margin-top:1.3333333em;margin-bottom:1.3333333em;padding-left:1.1111111em}.gr-prose-sm h1{font-size:2.1428571em;margin-top:0;margin-bottom:.8em;line-height:1.2}.gr-prose-sm h2{font-size:1.4285714em;margin-top:1.6em;margin-bottom:.8em;line-height:1.4}.gr-prose-sm h3{font-size:1.2857143em;margin-top:1.5555556em;margin-bottom:.4444444em;line-height:1.5555556}.gr-prose-sm h4{margin-top:1.4285714em;margin-bottom:.5714286em;line-height:1.4285714}.gr-prose-sm img{margin-top:1.7142857em;margin-bottom:1.7142857em}.gr-prose-sm video{margin-top:1.7142857em;margin-bottom:1.7142857em}.gr-prose-sm figure{margin-top:1.7142857em;margin-bottom:1.7142857em}.gr-prose-sm figure>*{margin-top:0;margin-bottom:0}.gr-prose-sm figure figcaption{font-size:.8571429em;line-height:1.3333333;margin-top:.6666667em}.gr-prose-sm code{font-size:.8571429em}.gr-prose-sm h2 code{font-size:.9em}.gr-prose-sm h3 code{font-size:.8888889em}.gr-prose-sm pre{font-size:.8571429em;line-height:1.6666667;margin-top:1.6666667em;margin-bottom:1.6666667em;border-radius:.25rem;padding:.6666667em 1em}.gr-prose-sm ol,.gr-prose-sm ul{margin-top:1.1428571em;margin-bottom:1.1428571em}.gr-prose-sm li{margin-top:.2857143em;margin-bottom:.2857143em}.gr-prose-sm ol>li{padding-left:1.5714286em}.gr-prose-sm ol>li:before{left:0}.gr-prose-sm ul>li{padding-left:1.5714286em}.gr-prose-sm ul>li:before{height:.3571429em;width:.3571429em;top:calc(.8571429em - .1785714em);left:.2142857em}.gr-prose-sm>ul>li p{margin-top:.5714286em;margin-bottom:.5714286em}.gr-prose-sm>ul>li>:first-child{margin-top:1.1428571em}.gr-prose-sm>ul>li>:last-child{margin-bottom:1.1428571em}.gr-prose-sm>ol>li>:first-child{margin-top:1.1428571em}.gr-prose-sm>ol>li>:last-child{margin-bottom:1.1428571em}.gr-prose-sm ol ol,.gr-prose-sm ol ul,.gr-prose-sm ul ol,.gr-prose-sm ul ul{margin-top:.5714286em;margin-bottom:.5714286em}.gr-prose-sm hr{margin-top:2.8571429em;margin-bottom:2.8571429em}.gr-prose-sm hr+*{margin-top:0}.gr-prose-sm h2+*{margin-top:0}.gr-prose-sm h3+*{margin-top:0}.gr-prose-sm h4+*{margin-top:0}.gr-prose-sm table{font-size:.8571429em;line-height:1.5}.gr-prose-sm thead th{padding-right:1em;padding-bottom:.6666667em;padding-left:1em}.gr-prose-sm thead th:first-child{padding-left:0}.gr-prose-sm thead th:last-child{padding-right:0}.gr-prose-sm tbody td{padding:.6666667em 1em}.gr-prose-sm tbody td:first-child{padding-left:0}.gr-prose-sm tbody td:last-child{padding-right:0}.gr-prose-sm>:first-child{margin-top:0}.gr-prose-sm>:last-child{margin-bottom:0}.gr-prose-lg{font-size:1.125rem;line-height:1.7777778}.gr-prose-lg p{margin-top:1.3333333em;margin-bottom:1.3333333em}.gr-prose-lg [class~=lead]{font-size:1.2222222em;line-height:1.4545455;margin-top:1.0909091em;margin-bottom:1.0909091em}.gr-prose-lg blockquote{margin-top:1.6666667em;margin-bottom:1.6666667em;padding-left:1em}.gr-prose-lg h1{font-size:2.6666667em;margin-top:0;margin-bottom:.8333333em;line-height:1}.gr-prose-lg h2{font-size:1.6666667em;margin-top:1.8666667em;margin-bottom:1.0666667em;line-height:1.3333333}.gr-prose-lg h3{font-size:1.3333333em;margin-top:1.6666667em;margin-bottom:.6666667em;line-height:1.5}.gr-prose-lg h4{margin-top:1.7777778em;margin-bottom:.4444444em;line-height:1.5555556}.gr-prose-lg img{margin-top:1.7777778em;margin-bottom:1.7777778em}.gr-prose-lg video{margin-top:1.7777778em;margin-bottom:1.7777778em}.gr-prose-lg figure{margin-top:1.7777778em;margin-bottom:1.7777778em}.gr-prose-lg figure>*{margin-top:0;margin-bottom:0}.gr-prose-lg figure figcaption{font-size:.8888889em;line-height:1.5;margin-top:1em}.gr-prose-lg code{font-size:.8888889em}.gr-prose-lg h2 code{font-size:.8666667em}.gr-prose-lg h3 code{font-size:.875em}.gr-prose-lg pre{font-size:.8888889em;line-height:1.75;margin-top:2em;margin-bottom:2em;border-radius:.375rem;padding:1em 1.5em}.gr-prose-lg ol,.gr-prose-lg ul{margin-top:1.3333333em;margin-bottom:1.3333333em}.gr-prose-lg li{margin-top:.6666667em;margin-bottom:.6666667em}.gr-prose-lg ol>li{padding-left:1.6666667em}.gr-prose-lg ol>li:before{left:0}.gr-prose-lg ul>li{padding-left:1.6666667em}.gr-prose-lg ul>li:before{width:.3333333em;height:.3333333em;top:calc(.8888889em - .1666667em);left:.2222222em}.gr-prose-lg>ul>li p{margin-top:.8888889em;margin-bottom:.8888889em}.gr-prose-lg>ul>li>:first-child{margin-top:1.3333333em}.gr-prose-lg>ul>li>:last-child{margin-bottom:1.3333333em}.gr-prose-lg>ol>li>:first-child{margin-top:1.3333333em}.gr-prose-lg>ol>li>:last-child{margin-bottom:1.3333333em}.gr-prose-lg ol ol,.gr-prose-lg ol ul,.gr-prose-lg ul ol,.gr-prose-lg ul ul{margin-top:.8888889em;margin-bottom:.8888889em}.gr-prose-lg hr{margin-top:3.1111111em;margin-bottom:3.1111111em}.gr-prose-lg hr+*{margin-top:0}.gr-prose-lg h2+*{margin-top:0}.gr-prose-lg h3+*{margin-top:0}.gr-prose-lg h4+*{margin-top:0}.gr-prose-lg table{font-size:.8888889em;line-height:1.5}.gr-prose-lg thead th{padding-right:.75em;padding-bottom:.75em;padding-left:.75em}.gr-prose-lg thead th:first-child{padding-left:0}.gr-prose-lg thead th:last-child{padding-right:0}.gr-prose-lg tbody td{padding:.75em}.gr-prose-lg tbody td:first-child{padding-left:0}.gr-prose-lg tbody td:last-child{padding-right:0}.gr-prose-lg>:first-child{margin-top:0}.gr-prose-lg>:last-child{margin-bottom:0}.gr-prose-xl{font-size:1.25rem;line-height:1.8}.gr-prose-xl p{margin-top:1.2em;margin-bottom:1.2em}.gr-prose-xl [class~=lead]{font-size:1.2em;line-height:1.5;margin-top:1em;margin-bottom:1em}.gr-prose-xl blockquote{margin-top:1.6em;margin-bottom:1.6em;padding-left:1.0666667em}.gr-prose-xl h1{font-size:2.8em;margin-top:0;margin-bottom:.8571429em;line-height:1}.gr-prose-xl h2{font-size:1.8em;margin-top:1.5555556em;margin-bottom:.8888889em;line-height:1.1111111}.gr-prose-xl h3{font-size:1.5em;margin-top:1.6em;margin-bottom:.6666667em;line-height:1.3333333}.gr-prose-xl h4{margin-top:1.8em;margin-bottom:.6em;line-height:1.6}.gr-prose-xl img{margin-top:2em;margin-bottom:2em}.gr-prose-xl video{margin-top:2em;margin-bottom:2em}.gr-prose-xl figure{margin-top:2em;margin-bottom:2em}.gr-prose-xl figure>*{margin-top:0;margin-bottom:0}.gr-prose-xl figure figcaption{font-size:.9em;line-height:1.5555556;margin-top:1em}.gr-prose-xl code{font-size:.9em}.gr-prose-xl h2 code{font-size:.8611111em}.gr-prose-xl h3 code{font-size:.9em}.gr-prose-xl pre{font-size:.9em;line-height:1.7777778;margin-top:2em;margin-bottom:2em;border-radius:.5rem;padding:1.1111111em 1.3333333em}.gr-prose-xl ol,.gr-prose-xl ul{margin-top:1.2em;margin-bottom:1.2em}.gr-prose-xl li{margin-top:.6em;margin-bottom:.6em}.gr-prose-xl ol>li{padding-left:1.8em}.gr-prose-xl ol>li:before{left:0}.gr-prose-xl ul>li{padding-left:1.8em}.gr-prose-xl ul>li:before{width:.35em;height:.35em;top:calc(.9em - .175em);left:.25em}.gr-prose-xl>ul>li p{margin-top:.8em;margin-bottom:.8em}.gr-prose-xl>ul>li>:first-child{margin-top:1.2em}.gr-prose-xl>ul>li>:last-child{margin-bottom:1.2em}.gr-prose-xl>ol>li>:first-child{margin-top:1.2em}.gr-prose-xl>ol>li>:last-child{margin-bottom:1.2em}.gr-prose-xl ol ol,.gr-prose-xl ol ul,.gr-prose-xl ul ol,.gr-prose-xl ul ul{margin-top:.8em;margin-bottom:.8em}.gr-prose-xl hr{margin-top:2.8em;margin-bottom:2.8em}.gr-prose-xl hr+*{margin-top:0}.gr-prose-xl h2+*{margin-top:0}.gr-prose-xl h3+*{margin-top:0}.gr-prose-xl h4+*{margin-top:0}.gr-prose-xl table{font-size:.9em;line-height:1.5555556}.gr-prose-xl thead th{padding-right:.6666667em;padding-bottom:.8888889em;padding-left:.6666667em}.gr-prose-xl thead th:first-child{padding-left:0}.gr-prose-xl thead th:last-child{padding-right:0}.gr-prose-xl tbody td{padding:.8888889em .6666667em}.gr-prose-xl tbody td:first-child{padding-left:0}.gr-prose-xl tbody td:last-child{padding-right:0}.gr-prose-xl>:first-child{margin-top:0}.gr-prose-xl>:last-child{margin-bottom:0}.gr-prose-2xl{font-size:1.5rem;line-height:1.6666667}.gr-prose-2xl p{margin-top:1.3333333em;margin-bottom:1.3333333em}.gr-prose-2xl [class~=lead]{font-size:1.25em;line-height:1.4666667;margin-top:1.0666667em;margin-bottom:1.0666667em}.gr-prose-2xl blockquote{margin-top:1.7777778em;margin-bottom:1.7777778em;padding-left:1.1111111em}.gr-prose-2xl h1{font-size:2.6666667em;margin-top:0;margin-bottom:.875em;line-height:1}.gr-prose-2xl h2{font-size:2em;margin-top:1.5em;margin-bottom:.8333333em;line-height:1.0833333}.gr-prose-2xl h3{font-size:1.5em;margin-top:1.5555556em;margin-bottom:.6666667em;line-height:1.2222222}.gr-prose-2xl h4{margin-top:1.6666667em;margin-bottom:.6666667em;line-height:1.5}.gr-prose-2xl img{margin-top:2em;margin-bottom:2em}.gr-prose-2xl video{margin-top:2em;margin-bottom:2em}.gr-prose-2xl figure{margin-top:2em;margin-bottom:2em}.gr-prose-2xl figure>*{margin-top:0;margin-bottom:0}.gr-prose-2xl figure figcaption{font-size:.8333333em;line-height:1.6;margin-top:1em}.gr-prose-2xl code{font-size:.8333333em}.gr-prose-2xl h2 code{font-size:.875em}.gr-prose-2xl h3 code{font-size:.8888889em}.gr-prose-2xl pre{font-size:.8333333em;line-height:1.8;margin-top:2em;margin-bottom:2em;border-radius:.5rem;padding:1.2em 1.6em}.gr-prose-2xl ol,.gr-prose-2xl ul{margin-top:1.3333333em;margin-bottom:1.3333333em}.gr-prose-2xl li{margin-top:.5em;margin-bottom:.5em}.gr-prose-2xl ol>li{padding-left:1.6666667em}.gr-prose-2xl ol>li:before{left:0}.gr-prose-2xl ul>li{padding-left:1.6666667em}.gr-prose-2xl ul>li:before{width:.3333333em;height:.3333333em;top:calc(.8333333em - .1666667em);left:.25em}.gr-prose-2xl>ul>li p{margin-top:.8333333em;margin-bottom:.8333333em}.gr-prose-2xl>ul>li>:first-child{margin-top:1.3333333em}.gr-prose-2xl>ul>li>:last-child{margin-bottom:1.3333333em}.gr-prose-2xl>ol>li>:first-child{margin-top:1.3333333em}.gr-prose-2xl>ol>li>:last-child{margin-bottom:1.3333333em}.gr-prose-2xl ol ol,.gr-prose-2xl ol ul,.gr-prose-2xl ul ol,.gr-prose-2xl ul ul{margin-top:.6666667em;margin-bottom:.6666667em}.gr-prose-2xl hr{margin-top:3em;margin-bottom:3em}.gr-prose-2xl hr+*{margin-top:0}.gr-prose-2xl h2+*{margin-top:0}.gr-prose-2xl h3+*{margin-top:0}.gr-prose-2xl h4+*{margin-top:0}.gr-prose-2xl table{font-size:.8333333em;line-height:1.4}.gr-prose-2xl thead th{padding-right:.6em;padding-bottom:.8em;padding-left:.6em}.gr-prose-2xl thead th:first-child{padding-left:0}.gr-prose-2xl thead th:last-child{padding-right:0}.gr-prose-2xl tbody td{padding:.8em .6em}.gr-prose-2xl tbody td:first-child{padding-left:0}.gr-prose-2xl tbody td:last-child{padding-right:0}.gr-prose-2xl>:first-child{margin-top:0}.gr-prose-2xl>:last-child{margin-bottom:0}.gr-prose-red a,.gr-prose-red a code{color:#dc2626}.gr-prose-yellow a,.gr-prose-yellow a code{color:#d97706}.gr-prose-green a,.gr-prose-green a code{color:#059669}.gr-prose-blue a,.gr-prose-blue a code{color:#2563eb}.gr-prose-indigo a,.gr-prose-indigo a code{color:#4f46e5}.gr-prose-purple a,.gr-prose-purple a code{color:#7c3aed}.gr-prose-pink a,.gr-prose-pink a code{color:#db2777}.dark .gr-prose{color:#daddd8}.dark .gr-prose a{color:#fff}.dark .gr-prose strong,.dark .gr-prose code{color:#daddd8}.dark :is(h1,h2,h3,h4){color:#fff}@media (min-width: 640px){.sm\:gr-prose{color:#374151;max-width:65ch}.sm\:gr-prose [class~=lead]{color:#4b5563;font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.sm\:gr-prose a{color:#111827;text-decoration:underline;font-weight:500}.sm\:gr-prose strong{color:#111827;font-weight:600}.sm\:gr-prose ol[type=A]{--list-counter-style: upper-alpha}.sm\:gr-prose ol[type=a]{--list-counter-style: lower-alpha}.sm\:gr-prose ol[type=A s]{--list-counter-style: upper-alpha}.sm\:gr-prose ol[type=a s]{--list-counter-style: lower-alpha}.sm\:gr-prose ol[type=I]{--list-counter-style: upper-roman}.sm\:gr-prose ol[type=i]{--list-counter-style: lower-roman}.sm\:gr-prose ol[type=I s]{--list-counter-style: upper-roman}.sm\:gr-prose ol[type=i s]{--list-counter-style: lower-roman}.sm\:gr-prose ol[type="1"]{--list-counter-style: decimal}.sm\:gr-prose ol>li{position:relative;padding-left:1.75em}.sm\:gr-prose ol>li:before{content:counter(list-item,var(--list-counter-style, decimal)) ".";position:absolute;font-weight:400;color:#6b7280;left:0}.sm\:gr-prose ul>li{position:relative;padding-left:1.75em}.sm\:gr-prose ul>li:before{content:"";position:absolute;background-color:#d1d5db;border-radius:50%;width:.375em;height:.375em;top:.6875em;left:.25em}.sm\:gr-prose hr{border-color:#e5e7eb;border-top-width:1px;margin-top:3em;margin-bottom:3em}.sm\:gr-prose blockquote{font-weight:500;font-style:italic;color:#111827;border-left-width:.25rem;border-left-color:#e5e7eb;quotes:"\201c""\201d""\2018""\2019";margin-top:1.6em;margin-bottom:1.6em;padding-left:1em}.sm\:gr-prose blockquote p:first-of-type:before{content:open-quote}.sm\:gr-prose blockquote p:last-of-type:after{content:close-quote}.sm\:gr-prose h1{color:#111827;font-weight:600;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.sm\:gr-prose h2{color:#111827;font-weight:600;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.sm\:gr-prose h3{color:#111827;font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.sm\:gr-prose h4{color:#111827;font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.sm\:gr-prose figure figcaption{color:#6b7280;font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.sm\:gr-prose code{color:#111827;font-weight:600;font-size:.875em}.sm\:gr-prose code:before{content:"`"}.sm\:gr-prose code:after{content:"`"}.sm\:gr-prose a code{color:#111827}.sm\:gr-prose pre{color:#e5e7eb;background-color:#1f2937;overflow-x:auto;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding:.8571429em 1.1428571em}.sm\:gr-prose pre code{background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:400;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.sm\:gr-prose pre code:before{content:none}.sm\:gr-prose pre code:after{content:none}.sm\:gr-prose table{width:100%;table-layout:auto;text-align:left;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.sm\:gr-prose thead{color:#111827;font-weight:600;border-bottom-width:1px;border-bottom-color:#d1d5db}.sm\:gr-prose thead th{vertical-align:bottom;padding-right:.5714286em;padding-bottom:.5714286em;padding-left:.5714286em}.sm\:gr-prose tbody tr{border-bottom-width:1px;border-bottom-color:#e5e7eb}.sm\:gr-prose tbody tr:last-child{border-bottom-width:0}.sm\:gr-prose tbody td{vertical-align:top;padding:.5714286em}.sm\:gr-prose{font-size:1rem;line-height:1.75}.sm\:gr-prose p{margin-top:1.25em;margin-bottom:1.25em}.sm\:gr-prose img{margin-top:2em;margin-bottom:2em}.sm\:gr-prose video{margin-top:2em;margin-bottom:2em}.sm\:gr-prose figure{margin-top:2em;margin-bottom:2em}.sm\:gr-prose figure>*{margin-top:0;margin-bottom:0}.sm\:gr-prose h2 code{font-size:.875em}.sm\:gr-prose h3 code{font-size:.9em}.sm\:gr-prose ol,.sm\:gr-prose ul{margin-top:1.25em;margin-bottom:1.25em}.sm\:gr-prose li{margin-top:.5em;margin-bottom:.5em}.sm\:gr-prose>ul>li p{margin-top:.75em;margin-bottom:.75em}.sm\:gr-prose>ul>li>:first-child{margin-top:1.25em}.sm\:gr-prose>ul>li>:last-child{margin-bottom:1.25em}.sm\:gr-prose>ol>li>:first-child{margin-top:1.25em}.sm\:gr-prose>ol>li>:last-child{margin-bottom:1.25em}.sm\:gr-prose ol ol,.sm\:gr-prose ol ul,.sm\:gr-prose ul ol,.sm\:gr-prose ul ul{margin-top:.75em;margin-bottom:.75em}.sm\:gr-prose hr+*{margin-top:0}.sm\:gr-prose h2+*{margin-top:0}.sm\:gr-prose h3+*{margin-top:0}.sm\:gr-prose h4+*{margin-top:0}.sm\:gr-prose thead th:first-child{padding-left:0}.sm\:gr-prose thead th:last-child{padding-right:0}.sm\:gr-prose tbody td:first-child{padding-left:0}.sm\:gr-prose tbody td:last-child{padding-right:0}.sm\:gr-prose>:first-child{margin-top:0}.sm\:gr-prose>:last-child{margin-bottom:0}.sm\:gr-prose-sm{font-size:.875rem;line-height:1.7142857}.sm\:gr-prose-sm p{margin-top:1.1428571em;margin-bottom:1.1428571em}.sm\:gr-prose-sm [class~=lead]{font-size:1.2857143em;line-height:1.5555556;margin-top:.8888889em;margin-bottom:.8888889em}.sm\:gr-prose-sm blockquote{margin-top:1.3333333em;margin-bottom:1.3333333em;padding-left:1.1111111em}.sm\:gr-prose-sm h1{font-size:2.1428571em;margin-top:0;margin-bottom:.8em;line-height:1.2}.sm\:gr-prose-sm h2{font-size:1.4285714em;margin-top:1.6em;margin-bottom:.8em;line-height:1.4}.sm\:gr-prose-sm h3{font-size:1.2857143em;margin-top:1.5555556em;margin-bottom:.4444444em;line-height:1.5555556}.sm\:gr-prose-sm h4{margin-top:1.4285714em;margin-bottom:.5714286em;line-height:1.4285714}.sm\:gr-prose-sm img{margin-top:1.7142857em;margin-bottom:1.7142857em}.sm\:gr-prose-sm video{margin-top:1.7142857em;margin-bottom:1.7142857em}.sm\:gr-prose-sm figure{margin-top:1.7142857em;margin-bottom:1.7142857em}.sm\:gr-prose-sm figure>*{margin-top:0;margin-bottom:0}.sm\:gr-prose-sm figure figcaption{font-size:.8571429em;line-height:1.3333333;margin-top:.6666667em}.sm\:gr-prose-sm code{font-size:.8571429em}.sm\:gr-prose-sm h2 code{font-size:.9em}.sm\:gr-prose-sm h3 code{font-size:.8888889em}.sm\:gr-prose-sm pre{font-size:.8571429em;line-height:1.6666667;margin-top:1.6666667em;margin-bottom:1.6666667em;border-radius:.25rem;padding:.6666667em 1em}.sm\:gr-prose-sm ol,.sm\:gr-prose-sm ul{margin-top:1.1428571em;margin-bottom:1.1428571em}.sm\:gr-prose-sm li{margin-top:.2857143em;margin-bottom:.2857143em}.sm\:gr-prose-sm ol>li{padding-left:1.5714286em}.sm\:gr-prose-sm ol>li:before{left:0}.sm\:gr-prose-sm ul>li{padding-left:1.5714286em}.sm\:gr-prose-sm ul>li:before{height:.3571429em;width:.3571429em;top:calc(.8571429em - .1785714em);left:.2142857em}.sm\:gr-prose-sm>ul>li p{margin-top:.5714286em;margin-bottom:.5714286em}.sm\:gr-prose-sm>ul>li>:first-child{margin-top:1.1428571em}.sm\:gr-prose-sm>ul>li>:last-child{margin-bottom:1.1428571em}.sm\:gr-prose-sm>ol>li>:first-child{margin-top:1.1428571em}.sm\:gr-prose-sm>ol>li>:last-child{margin-bottom:1.1428571em}.sm\:gr-prose-sm ol ol,.sm\:gr-prose-sm ol ul,.sm\:gr-prose-sm ul ol,.sm\:gr-prose-sm ul ul{margin-top:.5714286em;margin-bottom:.5714286em}.sm\:gr-prose-sm hr{margin-top:2.8571429em;margin-bottom:2.8571429em}.sm\:gr-prose-sm hr+*{margin-top:0}.sm\:gr-prose-sm h2+*{margin-top:0}.sm\:gr-prose-sm h3+*{margin-top:0}.sm\:gr-prose-sm h4+*{margin-top:0}.sm\:gr-prose-sm table{font-size:.8571429em;line-height:1.5}.sm\:gr-prose-sm thead th{padding-right:1em;padding-bottom:.6666667em;padding-left:1em}.sm\:gr-prose-sm thead th:first-child{padding-left:0}.sm\:gr-prose-sm thead th:last-child{padding-right:0}.sm\:gr-prose-sm tbody td{padding:.6666667em 1em}.sm\:gr-prose-sm tbody td:first-child{padding-left:0}.sm\:gr-prose-sm tbody td:last-child{padding-right:0}.sm\:gr-prose-sm>:first-child{margin-top:0}.sm\:gr-prose-sm>:last-child{margin-bottom:0}.sm\:gr-prose-lg{font-size:1.125rem;line-height:1.7777778}.sm\:gr-prose-lg p{margin-top:1.3333333em;margin-bottom:1.3333333em}.sm\:gr-prose-lg [class~=lead]{font-size:1.2222222em;line-height:1.4545455;margin-top:1.0909091em;margin-bottom:1.0909091em}.sm\:gr-prose-lg blockquote{margin-top:1.6666667em;margin-bottom:1.6666667em;padding-left:1em}.sm\:gr-prose-lg h1{font-size:2.6666667em;margin-top:0;margin-bottom:.8333333em;line-height:1}.sm\:gr-prose-lg h2{font-size:1.6666667em;margin-top:1.8666667em;margin-bottom:1.0666667em;line-height:1.3333333}.sm\:gr-prose-lg h3{font-size:1.3333333em;margin-top:1.6666667em;margin-bottom:.6666667em;line-height:1.5}.sm\:gr-prose-lg h4{margin-top:1.7777778em;margin-bottom:.4444444em;line-height:1.5555556}.sm\:gr-prose-lg img{margin-top:1.7777778em;margin-bottom:1.7777778em}.sm\:gr-prose-lg video{margin-top:1.7777778em;margin-bottom:1.7777778em}.sm\:gr-prose-lg figure{margin-top:1.7777778em;margin-bottom:1.7777778em}.sm\:gr-prose-lg figure>*{margin-top:0;margin-bottom:0}.sm\:gr-prose-lg figure figcaption{font-size:.8888889em;line-height:1.5;margin-top:1em}.sm\:gr-prose-lg code{font-size:.8888889em}.sm\:gr-prose-lg h2 code{font-size:.8666667em}.sm\:gr-prose-lg h3 code{font-size:.875em}.sm\:gr-prose-lg pre{font-size:.8888889em;line-height:1.75;margin-top:2em;margin-bottom:2em;border-radius:.375rem;padding:1em 1.5em}.sm\:gr-prose-lg ol,.sm\:gr-prose-lg ul{margin-top:1.3333333em;margin-bottom:1.3333333em}.sm\:gr-prose-lg li{margin-top:.6666667em;margin-bottom:.6666667em}.sm\:gr-prose-lg ol>li{padding-left:1.6666667em}.sm\:gr-prose-lg ol>li:before{left:0}.sm\:gr-prose-lg ul>li{padding-left:1.6666667em}.sm\:gr-prose-lg ul>li:before{width:.3333333em;height:.3333333em;top:calc(.8888889em - .1666667em);left:.2222222em}.sm\:gr-prose-lg>ul>li p{margin-top:.8888889em;margin-bottom:.8888889em}.sm\:gr-prose-lg>ul>li>:first-child{margin-top:1.3333333em}.sm\:gr-prose-lg>ul>li>:last-child{margin-bottom:1.3333333em}.sm\:gr-prose-lg>ol>li>:first-child{margin-top:1.3333333em}.sm\:gr-prose-lg>ol>li>:last-child{margin-bottom:1.3333333em}.sm\:gr-prose-lg ol ol,.sm\:gr-prose-lg ol ul,.sm\:gr-prose-lg ul ol,.sm\:gr-prose-lg ul ul{margin-top:.8888889em;margin-bottom:.8888889em}.sm\:gr-prose-lg hr{margin-top:3.1111111em;margin-bottom:3.1111111em}.sm\:gr-prose-lg hr+*{margin-top:0}.sm\:gr-prose-lg h2+*{margin-top:0}.sm\:gr-prose-lg h3+*{margin-top:0}.sm\:gr-prose-lg h4+*{margin-top:0}.sm\:gr-prose-lg table{font-size:.8888889em;line-height:1.5}.sm\:gr-prose-lg thead th{padding-right:.75em;padding-bottom:.75em;padding-left:.75em}.sm\:gr-prose-lg thead th:first-child{padding-left:0}.sm\:gr-prose-lg thead th:last-child{padding-right:0}.sm\:gr-prose-lg tbody td{padding:.75em}.sm\:gr-prose-lg tbody td:first-child{padding-left:0}.sm\:gr-prose-lg tbody td:last-child{padding-right:0}.sm\:gr-prose-lg>:first-child{margin-top:0}.sm\:gr-prose-lg>:last-child{margin-bottom:0}.sm\:gr-prose-xl{font-size:1.25rem;line-height:1.8}.sm\:gr-prose-xl p{margin-top:1.2em;margin-bottom:1.2em}.sm\:gr-prose-xl [class~=lead]{font-size:1.2em;line-height:1.5;margin-top:1em;margin-bottom:1em}.sm\:gr-prose-xl blockquote{margin-top:1.6em;margin-bottom:1.6em;padding-left:1.0666667em}.sm\:gr-prose-xl h1{font-size:2.8em;margin-top:0;margin-bottom:.8571429em;line-height:1}.sm\:gr-prose-xl h2{font-size:1.8em;margin-top:1.5555556em;margin-bottom:.8888889em;line-height:1.1111111}.sm\:gr-prose-xl h3{font-size:1.5em;margin-top:1.6em;margin-bottom:.6666667em;line-height:1.3333333}.sm\:gr-prose-xl h4{margin-top:1.8em;margin-bottom:.6em;line-height:1.6}.sm\:gr-prose-xl img{margin-top:2em;margin-bottom:2em}.sm\:gr-prose-xl video{margin-top:2em;margin-bottom:2em}.sm\:gr-prose-xl figure{margin-top:2em;margin-bottom:2em}.sm\:gr-prose-xl figure>*{margin-top:0;margin-bottom:0}.sm\:gr-prose-xl figure figcaption{font-size:.9em;line-height:1.5555556;margin-top:1em}.sm\:gr-prose-xl code{font-size:.9em}.sm\:gr-prose-xl h2 code{font-size:.8611111em}.sm\:gr-prose-xl h3 code{font-size:.9em}.sm\:gr-prose-xl pre{font-size:.9em;line-height:1.7777778;margin-top:2em;margin-bottom:2em;border-radius:.5rem;padding:1.1111111em 1.3333333em}.sm\:gr-prose-xl ol,.sm\:gr-prose-xl ul{margin-top:1.2em;margin-bottom:1.2em}.sm\:gr-prose-xl li{margin-top:.6em;margin-bottom:.6em}.sm\:gr-prose-xl ol>li{padding-left:1.8em}.sm\:gr-prose-xl ol>li:before{left:0}.sm\:gr-prose-xl ul>li{padding-left:1.8em}.sm\:gr-prose-xl ul>li:before{width:.35em;height:.35em;top:calc(.9em - .175em);left:.25em}.sm\:gr-prose-xl>ul>li p{margin-top:.8em;margin-bottom:.8em}.sm\:gr-prose-xl>ul>li>:first-child{margin-top:1.2em}.sm\:gr-prose-xl>ul>li>:last-child{margin-bottom:1.2em}.sm\:gr-prose-xl>ol>li>:first-child{margin-top:1.2em}.sm\:gr-prose-xl>ol>li>:last-child{margin-bottom:1.2em}.sm\:gr-prose-xl ol ol,.sm\:gr-prose-xl ol ul,.sm\:gr-prose-xl ul ol,.sm\:gr-prose-xl ul ul{margin-top:.8em;margin-bottom:.8em}.sm\:gr-prose-xl hr{margin-top:2.8em;margin-bottom:2.8em}.sm\:gr-prose-xl hr+*{margin-top:0}.sm\:gr-prose-xl h2+*{margin-top:0}.sm\:gr-prose-xl h3+*{margin-top:0}.sm\:gr-prose-xl h4+*{margin-top:0}.sm\:gr-prose-xl table{font-size:.9em;line-height:1.5555556}.sm\:gr-prose-xl thead th{padding-right:.6666667em;padding-bottom:.8888889em;padding-left:.6666667em}.sm\:gr-prose-xl thead th:first-child{padding-left:0}.sm\:gr-prose-xl thead th:last-child{padding-right:0}.sm\:gr-prose-xl tbody td{padding:.8888889em .6666667em}.sm\:gr-prose-xl tbody td:first-child{padding-left:0}.sm\:gr-prose-xl tbody td:last-child{padding-right:0}.sm\:gr-prose-xl>:first-child{margin-top:0}.sm\:gr-prose-xl>:last-child{margin-bottom:0}.sm\:gr-prose-2xl{font-size:1.5rem;line-height:1.6666667}.sm\:gr-prose-2xl p{margin-top:1.3333333em;margin-bottom:1.3333333em}.sm\:gr-prose-2xl [class~=lead]{font-size:1.25em;line-height:1.4666667;margin-top:1.0666667em;margin-bottom:1.0666667em}.sm\:gr-prose-2xl blockquote{margin-top:1.7777778em;margin-bottom:1.7777778em;padding-left:1.1111111em}.sm\:gr-prose-2xl h1{font-size:2.6666667em;margin-top:0;margin-bottom:.875em;line-height:1}.sm\:gr-prose-2xl h2{font-size:2em;margin-top:1.5em;margin-bottom:.8333333em;line-height:1.0833333}.sm\:gr-prose-2xl h3{font-size:1.5em;margin-top:1.5555556em;margin-bottom:.6666667em;line-height:1.2222222}.sm\:gr-prose-2xl h4{margin-top:1.6666667em;margin-bottom:.6666667em;line-height:1.5}.sm\:gr-prose-2xl img{margin-top:2em;margin-bottom:2em}.sm\:gr-prose-2xl video{margin-top:2em;margin-bottom:2em}.sm\:gr-prose-2xl figure{margin-top:2em;margin-bottom:2em}.sm\:gr-prose-2xl figure>*{margin-top:0;margin-bottom:0}.sm\:gr-prose-2xl figure figcaption{font-size:.8333333em;line-height:1.6;margin-top:1em}.sm\:gr-prose-2xl code{font-size:.8333333em}.sm\:gr-prose-2xl h2 code{font-size:.875em}.sm\:gr-prose-2xl h3 code{font-size:.8888889em}.sm\:gr-prose-2xl pre{font-size:.8333333em;line-height:1.8;margin-top:2em;margin-bottom:2em;border-radius:.5rem;padding:1.2em 1.6em}.sm\:gr-prose-2xl ol,.sm\:gr-prose-2xl ul{margin-top:1.3333333em;margin-bottom:1.3333333em}.sm\:gr-prose-2xl li{margin-top:.5em;margin-bottom:.5em}.sm\:gr-prose-2xl ol>li{padding-left:1.6666667em}.sm\:gr-prose-2xl ol>li:before{left:0}.sm\:gr-prose-2xl ul>li{padding-left:1.6666667em}.sm\:gr-prose-2xl ul>li:before{width:.3333333em;height:.3333333em;top:calc(.8333333em - .1666667em);left:.25em}.sm\:gr-prose-2xl>ul>li p{margin-top:.8333333em;margin-bottom:.8333333em}.sm\:gr-prose-2xl>ul>li>:first-child{margin-top:1.3333333em}.sm\:gr-prose-2xl>ul>li>:last-child{margin-bottom:1.3333333em}.sm\:gr-prose-2xl>ol>li>:first-child{margin-top:1.3333333em}.sm\:gr-prose-2xl>ol>li>:last-child{margin-bottom:1.3333333em}.sm\:gr-prose-2xl ol ol,.sm\:gr-prose-2xl ol ul,.sm\:gr-prose-2xl ul ol,.sm\:gr-prose-2xl ul ul{margin-top:.6666667em;margin-bottom:.6666667em}.sm\:gr-prose-2xl hr{margin-top:3em;margin-bottom:3em}.sm\:gr-prose-2xl hr+*{margin-top:0}.sm\:gr-prose-2xl h2+*{margin-top:0}.sm\:gr-prose-2xl h3+*{margin-top:0}.sm\:gr-prose-2xl h4+*{margin-top:0}.sm\:gr-prose-2xl table{font-size:.8333333em;line-height:1.4}.sm\:gr-prose-2xl thead th{padding-right:.6em;padding-bottom:.8em;padding-left:.6em}.sm\:gr-prose-2xl thead th:first-child{padding-left:0}.sm\:gr-prose-2xl thead th:last-child{padding-right:0}.sm\:gr-prose-2xl tbody td{padding:.8em .6em}.sm\:gr-prose-2xl tbody td:first-child{padding-left:0}.sm\:gr-prose-2xl tbody td:last-child{padding-right:0}.sm\:gr-prose-2xl>:first-child{margin-top:0}.sm\:gr-prose-2xl>:last-child{margin-bottom:0}.sm\:gr-prose-red a,.sm\:gr-prose-red a code{color:#dc2626}.sm\:gr-prose-yellow a,.sm\:gr-prose-yellow a code{color:#d97706}.sm\:gr-prose-green a,.sm\:gr-prose-green a code{color:#059669}.sm\:gr-prose-blue a,.sm\:gr-prose-blue a code{color:#2563eb}.sm\:gr-prose-indigo a,.sm\:gr-prose-indigo a code{color:#4f46e5}.sm\:gr-prose-purple a,.sm\:gr-prose-purple a code{color:#7c3aed}.sm\:gr-prose-pink a,.sm\:gr-prose-pink a code{color:#db2777}}@media (min-width: 768px){.md\:gr-prose{color:#374151;max-width:65ch}.md\:gr-prose [class~=lead]{color:#4b5563;font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.md\:gr-prose a{color:#111827;text-decoration:underline;font-weight:500}.md\:gr-prose strong{color:#111827;font-weight:600}.md\:gr-prose ol[type=A]{--list-counter-style: upper-alpha}.md\:gr-prose ol[type=a]{--list-counter-style: lower-alpha}.md\:gr-prose ol[type=A s]{--list-counter-style: upper-alpha}.md\:gr-prose ol[type=a s]{--list-counter-style: lower-alpha}.md\:gr-prose ol[type=I]{--list-counter-style: upper-roman}.md\:gr-prose ol[type=i]{--list-counter-style: lower-roman}.md\:gr-prose ol[type=I s]{--list-counter-style: upper-roman}.md\:gr-prose ol[type=i s]{--list-counter-style: lower-roman}.md\:gr-prose ol[type="1"]{--list-counter-style: decimal}.md\:gr-prose ol>li{position:relative;padding-left:1.75em}.md\:gr-prose ol>li:before{content:counter(list-item,var(--list-counter-style, decimal)) ".";position:absolute;font-weight:400;color:#6b7280;left:0}.md\:gr-prose ul>li{position:relative;padding-left:1.75em}.md\:gr-prose ul>li:before{content:"";position:absolute;background-color:#d1d5db;border-radius:50%;width:.375em;height:.375em;top:.6875em;left:.25em}.md\:gr-prose hr{border-color:#e5e7eb;border-top-width:1px;margin-top:3em;margin-bottom:3em}.md\:gr-prose blockquote{font-weight:500;font-style:italic;color:#111827;border-left-width:.25rem;border-left-color:#e5e7eb;quotes:"\201c""\201d""\2018""\2019";margin-top:1.6em;margin-bottom:1.6em;padding-left:1em}.md\:gr-prose blockquote p:first-of-type:before{content:open-quote}.md\:gr-prose blockquote p:last-of-type:after{content:close-quote}.md\:gr-prose h1{color:#111827;font-weight:600;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.md\:gr-prose h2{color:#111827;font-weight:600;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.md\:gr-prose h3{color:#111827;font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.md\:gr-prose h4{color:#111827;font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.md\:gr-prose figure figcaption{color:#6b7280;font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.md\:gr-prose code{color:#111827;font-weight:600;font-size:.875em}.md\:gr-prose code:before{content:"`"}.md\:gr-prose code:after{content:"`"}.md\:gr-prose a code{color:#111827}.md\:gr-prose pre{color:#e5e7eb;background-color:#1f2937;overflow-x:auto;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding:.8571429em 1.1428571em}.md\:gr-prose pre code{background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:400;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.md\:gr-prose pre code:before{content:none}.md\:gr-prose pre code:after{content:none}.md\:gr-prose table{width:100%;table-layout:auto;text-align:left;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.md\:gr-prose thead{color:#111827;font-weight:600;border-bottom-width:1px;border-bottom-color:#d1d5db}.md\:gr-prose thead th{vertical-align:bottom;padding-right:.5714286em;padding-bottom:.5714286em;padding-left:.5714286em}.md\:gr-prose tbody tr{border-bottom-width:1px;border-bottom-color:#e5e7eb}.md\:gr-prose tbody tr:last-child{border-bottom-width:0}.md\:gr-prose tbody td{vertical-align:top;padding:.5714286em}.md\:gr-prose{font-size:1rem;line-height:1.75}.md\:gr-prose p{margin-top:1.25em;margin-bottom:1.25em}.md\:gr-prose img{margin-top:2em;margin-bottom:2em}.md\:gr-prose video{margin-top:2em;margin-bottom:2em}.md\:gr-prose figure{margin-top:2em;margin-bottom:2em}.md\:gr-prose figure>*{margin-top:0;margin-bottom:0}.md\:gr-prose h2 code{font-size:.875em}.md\:gr-prose h3 code{font-size:.9em}.md\:gr-prose ol,.md\:gr-prose ul{margin-top:1.25em;margin-bottom:1.25em}.md\:gr-prose li{margin-top:.5em;margin-bottom:.5em}.md\:gr-prose>ul>li p{margin-top:.75em;margin-bottom:.75em}.md\:gr-prose>ul>li>:first-child{margin-top:1.25em}.md\:gr-prose>ul>li>:last-child{margin-bottom:1.25em}.md\:gr-prose>ol>li>:first-child{margin-top:1.25em}.md\:gr-prose>ol>li>:last-child{margin-bottom:1.25em}.md\:gr-prose ol ol,.md\:gr-prose ol ul,.md\:gr-prose ul ol,.md\:gr-prose ul ul{margin-top:.75em;margin-bottom:.75em}.md\:gr-prose hr+*{margin-top:0}.md\:gr-prose h2+*{margin-top:0}.md\:gr-prose h3+*{margin-top:0}.md\:gr-prose h4+*{margin-top:0}.md\:gr-prose thead th:first-child{padding-left:0}.md\:gr-prose thead th:last-child{padding-right:0}.md\:gr-prose tbody td:first-child{padding-left:0}.md\:gr-prose tbody td:last-child{padding-right:0}.md\:gr-prose>:first-child{margin-top:0}.md\:gr-prose>:last-child{margin-bottom:0}.md\:gr-prose-sm{font-size:.875rem;line-height:1.7142857}.md\:gr-prose-sm p{margin-top:1.1428571em;margin-bottom:1.1428571em}.md\:gr-prose-sm [class~=lead]{font-size:1.2857143em;line-height:1.5555556;margin-top:.8888889em;margin-bottom:.8888889em}.md\:gr-prose-sm blockquote{margin-top:1.3333333em;margin-bottom:1.3333333em;padding-left:1.1111111em}.md\:gr-prose-sm h1{font-size:2.1428571em;margin-top:0;margin-bottom:.8em;line-height:1.2}.md\:gr-prose-sm h2{font-size:1.4285714em;margin-top:1.6em;margin-bottom:.8em;line-height:1.4}.md\:gr-prose-sm h3{font-size:1.2857143em;margin-top:1.5555556em;margin-bottom:.4444444em;line-height:1.5555556}.md\:gr-prose-sm h4{margin-top:1.4285714em;margin-bottom:.5714286em;line-height:1.4285714}.md\:gr-prose-sm img{margin-top:1.7142857em;margin-bottom:1.7142857em}.md\:gr-prose-sm video{margin-top:1.7142857em;margin-bottom:1.7142857em}.md\:gr-prose-sm figure{margin-top:1.7142857em;margin-bottom:1.7142857em}.md\:gr-prose-sm figure>*{margin-top:0;margin-bottom:0}.md\:gr-prose-sm figure figcaption{font-size:.8571429em;line-height:1.3333333;margin-top:.6666667em}.md\:gr-prose-sm code{font-size:.8571429em}.md\:gr-prose-sm h2 code{font-size:.9em}.md\:gr-prose-sm h3 code{font-size:.8888889em}.md\:gr-prose-sm pre{font-size:.8571429em;line-height:1.6666667;margin-top:1.6666667em;margin-bottom:1.6666667em;border-radius:.25rem;padding:.6666667em 1em}.md\:gr-prose-sm ol,.md\:gr-prose-sm ul{margin-top:1.1428571em;margin-bottom:1.1428571em}.md\:gr-prose-sm li{margin-top:.2857143em;margin-bottom:.2857143em}.md\:gr-prose-sm ol>li{padding-left:1.5714286em}.md\:gr-prose-sm ol>li:before{left:0}.md\:gr-prose-sm ul>li{padding-left:1.5714286em}.md\:gr-prose-sm ul>li:before{height:.3571429em;width:.3571429em;top:calc(.8571429em - .1785714em);left:.2142857em}.md\:gr-prose-sm>ul>li p{margin-top:.5714286em;margin-bottom:.5714286em}.md\:gr-prose-sm>ul>li>:first-child{margin-top:1.1428571em}.md\:gr-prose-sm>ul>li>:last-child{margin-bottom:1.1428571em}.md\:gr-prose-sm>ol>li>:first-child{margin-top:1.1428571em}.md\:gr-prose-sm>ol>li>:last-child{margin-bottom:1.1428571em}.md\:gr-prose-sm ol ol,.md\:gr-prose-sm ol ul,.md\:gr-prose-sm ul ol,.md\:gr-prose-sm ul ul{margin-top:.5714286em;margin-bottom:.5714286em}.md\:gr-prose-sm hr{margin-top:2.8571429em;margin-bottom:2.8571429em}.md\:gr-prose-sm hr+*{margin-top:0}.md\:gr-prose-sm h2+*{margin-top:0}.md\:gr-prose-sm h3+*{margin-top:0}.md\:gr-prose-sm h4+*{margin-top:0}.md\:gr-prose-sm table{font-size:.8571429em;line-height:1.5}.md\:gr-prose-sm thead th{padding-right:1em;padding-bottom:.6666667em;padding-left:1em}.md\:gr-prose-sm thead th:first-child{padding-left:0}.md\:gr-prose-sm thead th:last-child{padding-right:0}.md\:gr-prose-sm tbody td{padding:.6666667em 1em}.md\:gr-prose-sm tbody td:first-child{padding-left:0}.md\:gr-prose-sm tbody td:last-child{padding-right:0}.md\:gr-prose-sm>:first-child{margin-top:0}.md\:gr-prose-sm>:last-child{margin-bottom:0}.md\:gr-prose-lg{font-size:1.125rem;line-height:1.7777778}.md\:gr-prose-lg p{margin-top:1.3333333em;margin-bottom:1.3333333em}.md\:gr-prose-lg [class~=lead]{font-size:1.2222222em;line-height:1.4545455;margin-top:1.0909091em;margin-bottom:1.0909091em}.md\:gr-prose-lg blockquote{margin-top:1.6666667em;margin-bottom:1.6666667em;padding-left:1em}.md\:gr-prose-lg h1{font-size:2.6666667em;margin-top:0;margin-bottom:.8333333em;line-height:1}.md\:gr-prose-lg h2{font-size:1.6666667em;margin-top:1.8666667em;margin-bottom:1.0666667em;line-height:1.3333333}.md\:gr-prose-lg h3{font-size:1.3333333em;margin-top:1.6666667em;margin-bottom:.6666667em;line-height:1.5}.md\:gr-prose-lg h4{margin-top:1.7777778em;margin-bottom:.4444444em;line-height:1.5555556}.md\:gr-prose-lg img{margin-top:1.7777778em;margin-bottom:1.7777778em}.md\:gr-prose-lg video{margin-top:1.7777778em;margin-bottom:1.7777778em}.md\:gr-prose-lg figure{margin-top:1.7777778em;margin-bottom:1.7777778em}.md\:gr-prose-lg figure>*{margin-top:0;margin-bottom:0}.md\:gr-prose-lg figure figcaption{font-size:.8888889em;line-height:1.5;margin-top:1em}.md\:gr-prose-lg code{font-size:.8888889em}.md\:gr-prose-lg h2 code{font-size:.8666667em}.md\:gr-prose-lg h3 code{font-size:.875em}.md\:gr-prose-lg pre{font-size:.8888889em;line-height:1.75;margin-top:2em;margin-bottom:2em;border-radius:.375rem;padding:1em 1.5em}.md\:gr-prose-lg ol,.md\:gr-prose-lg ul{margin-top:1.3333333em;margin-bottom:1.3333333em}.md\:gr-prose-lg li{margin-top:.6666667em;margin-bottom:.6666667em}.md\:gr-prose-lg ol>li{padding-left:1.6666667em}.md\:gr-prose-lg ol>li:before{left:0}.md\:gr-prose-lg ul>li{padding-left:1.6666667em}.md\:gr-prose-lg ul>li:before{width:.3333333em;height:.3333333em;top:calc(.8888889em - .1666667em);left:.2222222em}.md\:gr-prose-lg>ul>li p{margin-top:.8888889em;margin-bottom:.8888889em}.md\:gr-prose-lg>ul>li>:first-child{margin-top:1.3333333em}.md\:gr-prose-lg>ul>li>:last-child{margin-bottom:1.3333333em}.md\:gr-prose-lg>ol>li>:first-child{margin-top:1.3333333em}.md\:gr-prose-lg>ol>li>:last-child{margin-bottom:1.3333333em}.md\:gr-prose-lg ol ol,.md\:gr-prose-lg ol ul,.md\:gr-prose-lg ul ol,.md\:gr-prose-lg ul ul{margin-top:.8888889em;margin-bottom:.8888889em}.md\:gr-prose-lg hr{margin-top:3.1111111em;margin-bottom:3.1111111em}.md\:gr-prose-lg hr+*{margin-top:0}.md\:gr-prose-lg h2+*{margin-top:0}.md\:gr-prose-lg h3+*{margin-top:0}.md\:gr-prose-lg h4+*{margin-top:0}.md\:gr-prose-lg table{font-size:.8888889em;line-height:1.5}.md\:gr-prose-lg thead th{padding-right:.75em;padding-bottom:.75em;padding-left:.75em}.md\:gr-prose-lg thead th:first-child{padding-left:0}.md\:gr-prose-lg thead th:last-child{padding-right:0}.md\:gr-prose-lg tbody td{padding:.75em}.md\:gr-prose-lg tbody td:first-child{padding-left:0}.md\:gr-prose-lg tbody td:last-child{padding-right:0}.md\:gr-prose-lg>:first-child{margin-top:0}.md\:gr-prose-lg>:last-child{margin-bottom:0}.md\:gr-prose-xl{font-size:1.25rem;line-height:1.8}.md\:gr-prose-xl p{margin-top:1.2em;margin-bottom:1.2em}.md\:gr-prose-xl [class~=lead]{font-size:1.2em;line-height:1.5;margin-top:1em;margin-bottom:1em}.md\:gr-prose-xl blockquote{margin-top:1.6em;margin-bottom:1.6em;padding-left:1.0666667em}.md\:gr-prose-xl h1{font-size:2.8em;margin-top:0;margin-bottom:.8571429em;line-height:1}.md\:gr-prose-xl h2{font-size:1.8em;margin-top:1.5555556em;margin-bottom:.8888889em;line-height:1.1111111}.md\:gr-prose-xl h3{font-size:1.5em;margin-top:1.6em;margin-bottom:.6666667em;line-height:1.3333333}.md\:gr-prose-xl h4{margin-top:1.8em;margin-bottom:.6em;line-height:1.6}.md\:gr-prose-xl img{margin-top:2em;margin-bottom:2em}.md\:gr-prose-xl video{margin-top:2em;margin-bottom:2em}.md\:gr-prose-xl figure{margin-top:2em;margin-bottom:2em}.md\:gr-prose-xl figure>*{margin-top:0;margin-bottom:0}.md\:gr-prose-xl figure figcaption{font-size:.9em;line-height:1.5555556;margin-top:1em}.md\:gr-prose-xl code{font-size:.9em}.md\:gr-prose-xl h2 code{font-size:.8611111em}.md\:gr-prose-xl h3 code{font-size:.9em}.md\:gr-prose-xl pre{font-size:.9em;line-height:1.7777778;margin-top:2em;margin-bottom:2em;border-radius:.5rem;padding:1.1111111em 1.3333333em}.md\:gr-prose-xl ol,.md\:gr-prose-xl ul{margin-top:1.2em;margin-bottom:1.2em}.md\:gr-prose-xl li{margin-top:.6em;margin-bottom:.6em}.md\:gr-prose-xl ol>li{padding-left:1.8em}.md\:gr-prose-xl ol>li:before{left:0}.md\:gr-prose-xl ul>li{padding-left:1.8em}.md\:gr-prose-xl ul>li:before{width:.35em;height:.35em;top:calc(.9em - .175em);left:.25em}.md\:gr-prose-xl>ul>li p{margin-top:.8em;margin-bottom:.8em}.md\:gr-prose-xl>ul>li>:first-child{margin-top:1.2em}.md\:gr-prose-xl>ul>li>:last-child{margin-bottom:1.2em}.md\:gr-prose-xl>ol>li>:first-child{margin-top:1.2em}.md\:gr-prose-xl>ol>li>:last-child{margin-bottom:1.2em}.md\:gr-prose-xl ol ol,.md\:gr-prose-xl ol ul,.md\:gr-prose-xl ul ol,.md\:gr-prose-xl ul ul{margin-top:.8em;margin-bottom:.8em}.md\:gr-prose-xl hr{margin-top:2.8em;margin-bottom:2.8em}.md\:gr-prose-xl hr+*{margin-top:0}.md\:gr-prose-xl h2+*{margin-top:0}.md\:gr-prose-xl h3+*{margin-top:0}.md\:gr-prose-xl h4+*{margin-top:0}.md\:gr-prose-xl table{font-size:.9em;line-height:1.5555556}.md\:gr-prose-xl thead th{padding-right:.6666667em;padding-bottom:.8888889em;padding-left:.6666667em}.md\:gr-prose-xl thead th:first-child{padding-left:0}.md\:gr-prose-xl thead th:last-child{padding-right:0}.md\:gr-prose-xl tbody td{padding:.8888889em .6666667em}.md\:gr-prose-xl tbody td:first-child{padding-left:0}.md\:gr-prose-xl tbody td:last-child{padding-right:0}.md\:gr-prose-xl>:first-child{margin-top:0}.md\:gr-prose-xl>:last-child{margin-bottom:0}.md\:gr-prose-2xl{font-size:1.5rem;line-height:1.6666667}.md\:gr-prose-2xl p{margin-top:1.3333333em;margin-bottom:1.3333333em}.md\:gr-prose-2xl [class~=lead]{font-size:1.25em;line-height:1.4666667;margin-top:1.0666667em;margin-bottom:1.0666667em}.md\:gr-prose-2xl blockquote{margin-top:1.7777778em;margin-bottom:1.7777778em;padding-left:1.1111111em}.md\:gr-prose-2xl h1{font-size:2.6666667em;margin-top:0;margin-bottom:.875em;line-height:1}.md\:gr-prose-2xl h2{font-size:2em;margin-top:1.5em;margin-bottom:.8333333em;line-height:1.0833333}.md\:gr-prose-2xl h3{font-size:1.5em;margin-top:1.5555556em;margin-bottom:.6666667em;line-height:1.2222222}.md\:gr-prose-2xl h4{margin-top:1.6666667em;margin-bottom:.6666667em;line-height:1.5}.md\:gr-prose-2xl img{margin-top:2em;margin-bottom:2em}.md\:gr-prose-2xl video{margin-top:2em;margin-bottom:2em}.md\:gr-prose-2xl figure{margin-top:2em;margin-bottom:2em}.md\:gr-prose-2xl figure>*{margin-top:0;margin-bottom:0}.md\:gr-prose-2xl figure figcaption{font-size:.8333333em;line-height:1.6;margin-top:1em}.md\:gr-prose-2xl code{font-size:.8333333em}.md\:gr-prose-2xl h2 code{font-size:.875em}.md\:gr-prose-2xl h3 code{font-size:.8888889em}.md\:gr-prose-2xl pre{font-size:.8333333em;line-height:1.8;margin-top:2em;margin-bottom:2em;border-radius:.5rem;padding:1.2em 1.6em}.md\:gr-prose-2xl ol,.md\:gr-prose-2xl ul{margin-top:1.3333333em;margin-bottom:1.3333333em}.md\:gr-prose-2xl li{margin-top:.5em;margin-bottom:.5em}.md\:gr-prose-2xl ol>li{padding-left:1.6666667em}.md\:gr-prose-2xl ol>li:before{left:0}.md\:gr-prose-2xl ul>li{padding-left:1.6666667em}.md\:gr-prose-2xl ul>li:before{width:.3333333em;height:.3333333em;top:calc(.8333333em - .1666667em);left:.25em}.md\:gr-prose-2xl>ul>li p{margin-top:.8333333em;margin-bottom:.8333333em}.md\:gr-prose-2xl>ul>li>:first-child{margin-top:1.3333333em}.md\:gr-prose-2xl>ul>li>:last-child{margin-bottom:1.3333333em}.md\:gr-prose-2xl>ol>li>:first-child{margin-top:1.3333333em}.md\:gr-prose-2xl>ol>li>:last-child{margin-bottom:1.3333333em}.md\:gr-prose-2xl ol ol,.md\:gr-prose-2xl ol ul,.md\:gr-prose-2xl ul ol,.md\:gr-prose-2xl ul ul{margin-top:.6666667em;margin-bottom:.6666667em}.md\:gr-prose-2xl hr{margin-top:3em;margin-bottom:3em}.md\:gr-prose-2xl hr+*{margin-top:0}.md\:gr-prose-2xl h2+*{margin-top:0}.md\:gr-prose-2xl h3+*{margin-top:0}.md\:gr-prose-2xl h4+*{margin-top:0}.md\:gr-prose-2xl table{font-size:.8333333em;line-height:1.4}.md\:gr-prose-2xl thead th{padding-right:.6em;padding-bottom:.8em;padding-left:.6em}.md\:gr-prose-2xl thead th:first-child{padding-left:0}.md\:gr-prose-2xl thead th:last-child{padding-right:0}.md\:gr-prose-2xl tbody td{padding:.8em .6em}.md\:gr-prose-2xl tbody td:first-child{padding-left:0}.md\:gr-prose-2xl tbody td:last-child{padding-right:0}.md\:gr-prose-2xl>:first-child{margin-top:0}.md\:gr-prose-2xl>:last-child{margin-bottom:0}.md\:gr-prose-red a,.md\:gr-prose-red a code{color:#dc2626}.md\:gr-prose-yellow a,.md\:gr-prose-yellow a code{color:#d97706}.md\:gr-prose-green a,.md\:gr-prose-green a code{color:#059669}.md\:gr-prose-blue a,.md\:gr-prose-blue a code{color:#2563eb}.md\:gr-prose-indigo a,.md\:gr-prose-indigo a code{color:#4f46e5}.md\:gr-prose-purple a,.md\:gr-prose-purple a code{color:#7c3aed}.md\:gr-prose-pink a,.md\:gr-prose-pink a code{color:#db2777}}@media (min-width: 1024px){.lg\:gr-prose{color:#374151;max-width:65ch}.lg\:gr-prose [class~=lead]{color:#4b5563;font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.lg\:gr-prose a{color:#111827;text-decoration:underline;font-weight:500}.lg\:gr-prose strong{color:#111827;font-weight:600}.lg\:gr-prose ol[type=A]{--list-counter-style: upper-alpha}.lg\:gr-prose ol[type=a]{--list-counter-style: lower-alpha}.lg\:gr-prose ol[type=A s]{--list-counter-style: upper-alpha}.lg\:gr-prose ol[type=a s]{--list-counter-style: lower-alpha}.lg\:gr-prose ol[type=I]{--list-counter-style: upper-roman}.lg\:gr-prose ol[type=i]{--list-counter-style: lower-roman}.lg\:gr-prose ol[type=I s]{--list-counter-style: upper-roman}.lg\:gr-prose ol[type=i s]{--list-counter-style: lower-roman}.lg\:gr-prose ol[type="1"]{--list-counter-style: decimal}.lg\:gr-prose ol>li{position:relative;padding-left:1.75em}.lg\:gr-prose ol>li:before{content:counter(list-item,var(--list-counter-style, decimal)) ".";position:absolute;font-weight:400;color:#6b7280;left:0}.lg\:gr-prose ul>li{position:relative;padding-left:1.75em}.lg\:gr-prose ul>li:before{content:"";position:absolute;background-color:#d1d5db;border-radius:50%;width:.375em;height:.375em;top:.6875em;left:.25em}.lg\:gr-prose hr{border-color:#e5e7eb;border-top-width:1px;margin-top:3em;margin-bottom:3em}.lg\:gr-prose blockquote{font-weight:500;font-style:italic;color:#111827;border-left-width:.25rem;border-left-color:#e5e7eb;quotes:"\201c""\201d""\2018""\2019";margin-top:1.6em;margin-bottom:1.6em;padding-left:1em}.lg\:gr-prose blockquote p:first-of-type:before{content:open-quote}.lg\:gr-prose blockquote p:last-of-type:after{content:close-quote}.lg\:gr-prose h1{color:#111827;font-weight:600;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.lg\:gr-prose h2{color:#111827;font-weight:600;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.lg\:gr-prose h3{color:#111827;font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.lg\:gr-prose h4{color:#111827;font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.lg\:gr-prose figure figcaption{color:#6b7280;font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.lg\:gr-prose code{color:#111827;font-weight:600;font-size:.875em}.lg\:gr-prose code:before{content:"`"}.lg\:gr-prose code:after{content:"`"}.lg\:gr-prose a code{color:#111827}.lg\:gr-prose pre{color:#e5e7eb;background-color:#1f2937;overflow-x:auto;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding:.8571429em 1.1428571em}.lg\:gr-prose pre code{background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:400;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.lg\:gr-prose pre code:before{content:none}.lg\:gr-prose pre code:after{content:none}.lg\:gr-prose table{width:100%;table-layout:auto;text-align:left;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.lg\:gr-prose thead{color:#111827;font-weight:600;border-bottom-width:1px;border-bottom-color:#d1d5db}.lg\:gr-prose thead th{vertical-align:bottom;padding-right:.5714286em;padding-bottom:.5714286em;padding-left:.5714286em}.lg\:gr-prose tbody tr{border-bottom-width:1px;border-bottom-color:#e5e7eb}.lg\:gr-prose tbody tr:last-child{border-bottom-width:0}.lg\:gr-prose tbody td{vertical-align:top;padding:.5714286em}.lg\:gr-prose{font-size:1rem;line-height:1.75}.lg\:gr-prose p{margin-top:1.25em;margin-bottom:1.25em}.lg\:gr-prose img{margin-top:2em;margin-bottom:2em}.lg\:gr-prose video{margin-top:2em;margin-bottom:2em}.lg\:gr-prose figure{margin-top:2em;margin-bottom:2em}.lg\:gr-prose figure>*{margin-top:0;margin-bottom:0}.lg\:gr-prose h2 code{font-size:.875em}.lg\:gr-prose h3 code{font-size:.9em}.lg\:gr-prose ol,.lg\:gr-prose ul{margin-top:1.25em;margin-bottom:1.25em}.lg\:gr-prose li{margin-top:.5em;margin-bottom:.5em}.lg\:gr-prose>ul>li p{margin-top:.75em;margin-bottom:.75em}.lg\:gr-prose>ul>li>:first-child{margin-top:1.25em}.lg\:gr-prose>ul>li>:last-child{margin-bottom:1.25em}.lg\:gr-prose>ol>li>:first-child{margin-top:1.25em}.lg\:gr-prose>ol>li>:last-child{margin-bottom:1.25em}.lg\:gr-prose ol ol,.lg\:gr-prose ol ul,.lg\:gr-prose ul ol,.lg\:gr-prose ul ul{margin-top:.75em;margin-bottom:.75em}.lg\:gr-prose hr+*{margin-top:0}.lg\:gr-prose h2+*{margin-top:0}.lg\:gr-prose h3+*{margin-top:0}.lg\:gr-prose h4+*{margin-top:0}.lg\:gr-prose thead th:first-child{padding-left:0}.lg\:gr-prose thead th:last-child{padding-right:0}.lg\:gr-prose tbody td:first-child{padding-left:0}.lg\:gr-prose tbody td:last-child{padding-right:0}.lg\:gr-prose>:first-child{margin-top:0}.lg\:gr-prose>:last-child{margin-bottom:0}.lg\:gr-prose-sm{font-size:.875rem;line-height:1.7142857}.lg\:gr-prose-sm p{margin-top:1.1428571em;margin-bottom:1.1428571em}.lg\:gr-prose-sm [class~=lead]{font-size:1.2857143em;line-height:1.5555556;margin-top:.8888889em;margin-bottom:.8888889em}.lg\:gr-prose-sm blockquote{margin-top:1.3333333em;margin-bottom:1.3333333em;padding-left:1.1111111em}.lg\:gr-prose-sm h1{font-size:2.1428571em;margin-top:0;margin-bottom:.8em;line-height:1.2}.lg\:gr-prose-sm h2{font-size:1.4285714em;margin-top:1.6em;margin-bottom:.8em;line-height:1.4}.lg\:gr-prose-sm h3{font-size:1.2857143em;margin-top:1.5555556em;margin-bottom:.4444444em;line-height:1.5555556}.lg\:gr-prose-sm h4{margin-top:1.4285714em;margin-bottom:.5714286em;line-height:1.4285714}.lg\:gr-prose-sm img{margin-top:1.7142857em;margin-bottom:1.7142857em}.lg\:gr-prose-sm video{margin-top:1.7142857em;margin-bottom:1.7142857em}.lg\:gr-prose-sm figure{margin-top:1.7142857em;margin-bottom:1.7142857em}.lg\:gr-prose-sm figure>*{margin-top:0;margin-bottom:0}.lg\:gr-prose-sm figure figcaption{font-size:.8571429em;line-height:1.3333333;margin-top:.6666667em}.lg\:gr-prose-sm code{font-size:.8571429em}.lg\:gr-prose-sm h2 code{font-size:.9em}.lg\:gr-prose-sm h3 code{font-size:.8888889em}.lg\:gr-prose-sm pre{font-size:.8571429em;line-height:1.6666667;margin-top:1.6666667em;margin-bottom:1.6666667em;border-radius:.25rem;padding:.6666667em 1em}.lg\:gr-prose-sm ol,.lg\:gr-prose-sm ul{margin-top:1.1428571em;margin-bottom:1.1428571em}.lg\:gr-prose-sm li{margin-top:.2857143em;margin-bottom:.2857143em}.lg\:gr-prose-sm ol>li{padding-left:1.5714286em}.lg\:gr-prose-sm ol>li:before{left:0}.lg\:gr-prose-sm ul>li{padding-left:1.5714286em}.lg\:gr-prose-sm ul>li:before{height:.3571429em;width:.3571429em;top:calc(.8571429em - .1785714em);left:.2142857em}.lg\:gr-prose-sm>ul>li p{margin-top:.5714286em;margin-bottom:.5714286em}.lg\:gr-prose-sm>ul>li>:first-child{margin-top:1.1428571em}.lg\:gr-prose-sm>ul>li>:last-child{margin-bottom:1.1428571em}.lg\:gr-prose-sm>ol>li>:first-child{margin-top:1.1428571em}.lg\:gr-prose-sm>ol>li>:last-child{margin-bottom:1.1428571em}.lg\:gr-prose-sm ol ol,.lg\:gr-prose-sm ol ul,.lg\:gr-prose-sm ul ol,.lg\:gr-prose-sm ul ul{margin-top:.5714286em;margin-bottom:.5714286em}.lg\:gr-prose-sm hr{margin-top:2.8571429em;margin-bottom:2.8571429em}.lg\:gr-prose-sm hr+*{margin-top:0}.lg\:gr-prose-sm h2+*{margin-top:0}.lg\:gr-prose-sm h3+*{margin-top:0}.lg\:gr-prose-sm h4+*{margin-top:0}.lg\:gr-prose-sm table{font-size:.8571429em;line-height:1.5}.lg\:gr-prose-sm thead th{padding-right:1em;padding-bottom:.6666667em;padding-left:1em}.lg\:gr-prose-sm thead th:first-child{padding-left:0}.lg\:gr-prose-sm thead th:last-child{padding-right:0}.lg\:gr-prose-sm tbody td{padding:.6666667em 1em}.lg\:gr-prose-sm tbody td:first-child{padding-left:0}.lg\:gr-prose-sm tbody td:last-child{padding-right:0}.lg\:gr-prose-sm>:first-child{margin-top:0}.lg\:gr-prose-sm>:last-child{margin-bottom:0}.lg\:gr-prose-lg{font-size:1.125rem;line-height:1.7777778}.lg\:gr-prose-lg p{margin-top:1.3333333em;margin-bottom:1.3333333em}.lg\:gr-prose-lg [class~=lead]{font-size:1.2222222em;line-height:1.4545455;margin-top:1.0909091em;margin-bottom:1.0909091em}.lg\:gr-prose-lg blockquote{margin-top:1.6666667em;margin-bottom:1.6666667em;padding-left:1em}.lg\:gr-prose-lg h1{font-size:2.6666667em;margin-top:0;margin-bottom:.8333333em;line-height:1}.lg\:gr-prose-lg h2{font-size:1.6666667em;margin-top:1.8666667em;margin-bottom:1.0666667em;line-height:1.3333333}.lg\:gr-prose-lg h3{font-size:1.3333333em;margin-top:1.6666667em;margin-bottom:.6666667em;line-height:1.5}.lg\:gr-prose-lg h4{margin-top:1.7777778em;margin-bottom:.4444444em;line-height:1.5555556}.lg\:gr-prose-lg img{margin-top:1.7777778em;margin-bottom:1.7777778em}.lg\:gr-prose-lg video{margin-top:1.7777778em;margin-bottom:1.7777778em}.lg\:gr-prose-lg figure{margin-top:1.7777778em;margin-bottom:1.7777778em}.lg\:gr-prose-lg figure>*{margin-top:0;margin-bottom:0}.lg\:gr-prose-lg figure figcaption{font-size:.8888889em;line-height:1.5;margin-top:1em}.lg\:gr-prose-lg code{font-size:.8888889em}.lg\:gr-prose-lg h2 code{font-size:.8666667em}.lg\:gr-prose-lg h3 code{font-size:.875em}.lg\:gr-prose-lg pre{font-size:.8888889em;line-height:1.75;margin-top:2em;margin-bottom:2em;border-radius:.375rem;padding:1em 1.5em}.lg\:gr-prose-lg ol,.lg\:gr-prose-lg ul{margin-top:1.3333333em;margin-bottom:1.3333333em}.lg\:gr-prose-lg li{margin-top:.6666667em;margin-bottom:.6666667em}.lg\:gr-prose-lg ol>li{padding-left:1.6666667em}.lg\:gr-prose-lg ol>li:before{left:0}.lg\:gr-prose-lg ul>li{padding-left:1.6666667em}.lg\:gr-prose-lg ul>li:before{width:.3333333em;height:.3333333em;top:calc(.8888889em - .1666667em);left:.2222222em}.lg\:gr-prose-lg>ul>li p{margin-top:.8888889em;margin-bottom:.8888889em}.lg\:gr-prose-lg>ul>li>:first-child{margin-top:1.3333333em}.lg\:gr-prose-lg>ul>li>:last-child{margin-bottom:1.3333333em}.lg\:gr-prose-lg>ol>li>:first-child{margin-top:1.3333333em}.lg\:gr-prose-lg>ol>li>:last-child{margin-bottom:1.3333333em}.lg\:gr-prose-lg ol ol,.lg\:gr-prose-lg ol ul,.lg\:gr-prose-lg ul ol,.lg\:gr-prose-lg ul ul{margin-top:.8888889em;margin-bottom:.8888889em}.lg\:gr-prose-lg hr{margin-top:3.1111111em;margin-bottom:3.1111111em}.lg\:gr-prose-lg hr+*{margin-top:0}.lg\:gr-prose-lg h2+*{margin-top:0}.lg\:gr-prose-lg h3+*{margin-top:0}.lg\:gr-prose-lg h4+*{margin-top:0}.lg\:gr-prose-lg table{font-size:.8888889em;line-height:1.5}.lg\:gr-prose-lg thead th{padding-right:.75em;padding-bottom:.75em;padding-left:.75em}.lg\:gr-prose-lg thead th:first-child{padding-left:0}.lg\:gr-prose-lg thead th:last-child{padding-right:0}.lg\:gr-prose-lg tbody td{padding:.75em}.lg\:gr-prose-lg tbody td:first-child{padding-left:0}.lg\:gr-prose-lg tbody td:last-child{padding-right:0}.lg\:gr-prose-lg>:first-child{margin-top:0}.lg\:gr-prose-lg>:last-child{margin-bottom:0}.lg\:gr-prose-xl{font-size:1.25rem;line-height:1.8}.lg\:gr-prose-xl p{margin-top:1.2em;margin-bottom:1.2em}.lg\:gr-prose-xl [class~=lead]{font-size:1.2em;line-height:1.5;margin-top:1em;margin-bottom:1em}.lg\:gr-prose-xl blockquote{margin-top:1.6em;margin-bottom:1.6em;padding-left:1.0666667em}.lg\:gr-prose-xl h1{font-size:2.8em;margin-top:0;margin-bottom:.8571429em;line-height:1}.lg\:gr-prose-xl h2{font-size:1.8em;margin-top:1.5555556em;margin-bottom:.8888889em;line-height:1.1111111}.lg\:gr-prose-xl h3{font-size:1.5em;margin-top:1.6em;margin-bottom:.6666667em;line-height:1.3333333}.lg\:gr-prose-xl h4{margin-top:1.8em;margin-bottom:.6em;line-height:1.6}.lg\:gr-prose-xl img{margin-top:2em;margin-bottom:2em}.lg\:gr-prose-xl video{margin-top:2em;margin-bottom:2em}.lg\:gr-prose-xl figure{margin-top:2em;margin-bottom:2em}.lg\:gr-prose-xl figure>*{margin-top:0;margin-bottom:0}.lg\:gr-prose-xl figure figcaption{font-size:.9em;line-height:1.5555556;margin-top:1em}.lg\:gr-prose-xl code{font-size:.9em}.lg\:gr-prose-xl h2 code{font-size:.8611111em}.lg\:gr-prose-xl h3 code{font-size:.9em}.lg\:gr-prose-xl pre{font-size:.9em;line-height:1.7777778;margin-top:2em;margin-bottom:2em;border-radius:.5rem;padding:1.1111111em 1.3333333em}.lg\:gr-prose-xl ol,.lg\:gr-prose-xl ul{margin-top:1.2em;margin-bottom:1.2em}.lg\:gr-prose-xl li{margin-top:.6em;margin-bottom:.6em}.lg\:gr-prose-xl ol>li{padding-left:1.8em}.lg\:gr-prose-xl ol>li:before{left:0}.lg\:gr-prose-xl ul>li{padding-left:1.8em}.lg\:gr-prose-xl ul>li:before{width:.35em;height:.35em;top:calc(.9em - .175em);left:.25em}.lg\:gr-prose-xl>ul>li p{margin-top:.8em;margin-bottom:.8em}.lg\:gr-prose-xl>ul>li>:first-child{margin-top:1.2em}.lg\:gr-prose-xl>ul>li>:last-child{margin-bottom:1.2em}.lg\:gr-prose-xl>ol>li>:first-child{margin-top:1.2em}.lg\:gr-prose-xl>ol>li>:last-child{margin-bottom:1.2em}.lg\:gr-prose-xl ol ol,.lg\:gr-prose-xl ol ul,.lg\:gr-prose-xl ul ol,.lg\:gr-prose-xl ul ul{margin-top:.8em;margin-bottom:.8em}.lg\:gr-prose-xl hr{margin-top:2.8em;margin-bottom:2.8em}.lg\:gr-prose-xl hr+*{margin-top:0}.lg\:gr-prose-xl h2+*{margin-top:0}.lg\:gr-prose-xl h3+*{margin-top:0}.lg\:gr-prose-xl h4+*{margin-top:0}.lg\:gr-prose-xl table{font-size:.9em;line-height:1.5555556}.lg\:gr-prose-xl thead th{padding-right:.6666667em;padding-bottom:.8888889em;padding-left:.6666667em}.lg\:gr-prose-xl thead th:first-child{padding-left:0}.lg\:gr-prose-xl thead th:last-child{padding-right:0}.lg\:gr-prose-xl tbody td{padding:.8888889em .6666667em}.lg\:gr-prose-xl tbody td:first-child{padding-left:0}.lg\:gr-prose-xl tbody td:last-child{padding-right:0}.lg\:gr-prose-xl>:first-child{margin-top:0}.lg\:gr-prose-xl>:last-child{margin-bottom:0}.lg\:gr-prose-2xl{font-size:1.5rem;line-height:1.6666667}.lg\:gr-prose-2xl p{margin-top:1.3333333em;margin-bottom:1.3333333em}.lg\:gr-prose-2xl [class~=lead]{font-size:1.25em;line-height:1.4666667;margin-top:1.0666667em;margin-bottom:1.0666667em}.lg\:gr-prose-2xl blockquote{margin-top:1.7777778em;margin-bottom:1.7777778em;padding-left:1.1111111em}.lg\:gr-prose-2xl h1{font-size:2.6666667em;margin-top:0;margin-bottom:.875em;line-height:1}.lg\:gr-prose-2xl h2{font-size:2em;margin-top:1.5em;margin-bottom:.8333333em;line-height:1.0833333}.lg\:gr-prose-2xl h3{font-size:1.5em;margin-top:1.5555556em;margin-bottom:.6666667em;line-height:1.2222222}.lg\:gr-prose-2xl h4{margin-top:1.6666667em;margin-bottom:.6666667em;line-height:1.5}.lg\:gr-prose-2xl img{margin-top:2em;margin-bottom:2em}.lg\:gr-prose-2xl video{margin-top:2em;margin-bottom:2em}.lg\:gr-prose-2xl figure{margin-top:2em;margin-bottom:2em}.lg\:gr-prose-2xl figure>*{margin-top:0;margin-bottom:0}.lg\:gr-prose-2xl figure figcaption{font-size:.8333333em;line-height:1.6;margin-top:1em}.lg\:gr-prose-2xl code{font-size:.8333333em}.lg\:gr-prose-2xl h2 code{font-size:.875em}.lg\:gr-prose-2xl h3 code{font-size:.8888889em}.lg\:gr-prose-2xl pre{font-size:.8333333em;line-height:1.8;margin-top:2em;margin-bottom:2em;border-radius:.5rem;padding:1.2em 1.6em}.lg\:gr-prose-2xl ol,.lg\:gr-prose-2xl ul{margin-top:1.3333333em;margin-bottom:1.3333333em}.lg\:gr-prose-2xl li{margin-top:.5em;margin-bottom:.5em}.lg\:gr-prose-2xl ol>li{padding-left:1.6666667em}.lg\:gr-prose-2xl ol>li:before{left:0}.lg\:gr-prose-2xl ul>li{padding-left:1.6666667em}.lg\:gr-prose-2xl ul>li:before{width:.3333333em;height:.3333333em;top:calc(.8333333em - .1666667em);left:.25em}.lg\:gr-prose-2xl>ul>li p{margin-top:.8333333em;margin-bottom:.8333333em}.lg\:gr-prose-2xl>ul>li>:first-child{margin-top:1.3333333em}.lg\:gr-prose-2xl>ul>li>:last-child{margin-bottom:1.3333333em}.lg\:gr-prose-2xl>ol>li>:first-child{margin-top:1.3333333em}.lg\:gr-prose-2xl>ol>li>:last-child{margin-bottom:1.3333333em}.lg\:gr-prose-2xl ol ol,.lg\:gr-prose-2xl ol ul,.lg\:gr-prose-2xl ul ol,.lg\:gr-prose-2xl ul ul{margin-top:.6666667em;margin-bottom:.6666667em}.lg\:gr-prose-2xl hr{margin-top:3em;margin-bottom:3em}.lg\:gr-prose-2xl hr+*{margin-top:0}.lg\:gr-prose-2xl h2+*{margin-top:0}.lg\:gr-prose-2xl h3+*{margin-top:0}.lg\:gr-prose-2xl h4+*{margin-top:0}.lg\:gr-prose-2xl table{font-size:.8333333em;line-height:1.4}.lg\:gr-prose-2xl thead th{padding-right:.6em;padding-bottom:.8em;padding-left:.6em}.lg\:gr-prose-2xl thead th:first-child{padding-left:0}.lg\:gr-prose-2xl thead th:last-child{padding-right:0}.lg\:gr-prose-2xl tbody td{padding:.8em .6em}.lg\:gr-prose-2xl tbody td:first-child{padding-left:0}.lg\:gr-prose-2xl tbody td:last-child{padding-right:0}.lg\:gr-prose-2xl>:first-child{margin-top:0}.lg\:gr-prose-2xl>:last-child{margin-bottom:0}.lg\:gr-prose-red a,.lg\:gr-prose-red a code{color:#dc2626}.lg\:gr-prose-yellow a,.lg\:gr-prose-yellow a code{color:#d97706}.lg\:gr-prose-green a,.lg\:gr-prose-green a code{color:#059669}.lg\:gr-prose-blue a,.lg\:gr-prose-blue a code{color:#2563eb}.lg\:gr-prose-indigo a,.lg\:gr-prose-indigo a code{color:#4f46e5}.lg\:gr-prose-purple a,.lg\:gr-prose-purple a code{color:#7c3aed}.lg\:gr-prose-pink a,.lg\:gr-prose-pink a code{color:#db2777}}@media (min-width: 1280px){.xl\:gr-prose{color:#374151;max-width:65ch}.xl\:gr-prose [class~=lead]{color:#4b5563;font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.xl\:gr-prose a{color:#111827;text-decoration:underline;font-weight:500}.xl\:gr-prose strong{color:#111827;font-weight:600}.xl\:gr-prose ol[type=A]{--list-counter-style: upper-alpha}.xl\:gr-prose ol[type=a]{--list-counter-style: lower-alpha}.xl\:gr-prose ol[type=A s]{--list-counter-style: upper-alpha}.xl\:gr-prose ol[type=a s]{--list-counter-style: lower-alpha}.xl\:gr-prose ol[type=I]{--list-counter-style: upper-roman}.xl\:gr-prose ol[type=i]{--list-counter-style: lower-roman}.xl\:gr-prose ol[type=I s]{--list-counter-style: upper-roman}.xl\:gr-prose ol[type=i s]{--list-counter-style: lower-roman}.xl\:gr-prose ol[type="1"]{--list-counter-style: decimal}.xl\:gr-prose ol>li{position:relative;padding-left:1.75em}.xl\:gr-prose ol>li:before{content:counter(list-item,var(--list-counter-style, decimal)) ".";position:absolute;font-weight:400;color:#6b7280;left:0}.xl\:gr-prose ul>li{position:relative;padding-left:1.75em}.xl\:gr-prose ul>li:before{content:"";position:absolute;background-color:#d1d5db;border-radius:50%;width:.375em;height:.375em;top:.6875em;left:.25em}.xl\:gr-prose hr{border-color:#e5e7eb;border-top-width:1px;margin-top:3em;margin-bottom:3em}.xl\:gr-prose blockquote{font-weight:500;font-style:italic;color:#111827;border-left-width:.25rem;border-left-color:#e5e7eb;quotes:"\201c""\201d""\2018""\2019";margin-top:1.6em;margin-bottom:1.6em;padding-left:1em}.xl\:gr-prose blockquote p:first-of-type:before{content:open-quote}.xl\:gr-prose blockquote p:last-of-type:after{content:close-quote}.xl\:gr-prose h1{color:#111827;font-weight:600;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.xl\:gr-prose h2{color:#111827;font-weight:600;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.xl\:gr-prose h3{color:#111827;font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.xl\:gr-prose h4{color:#111827;font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.xl\:gr-prose figure figcaption{color:#6b7280;font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.xl\:gr-prose code{color:#111827;font-weight:600;font-size:.875em}.xl\:gr-prose code:before{content:"`"}.xl\:gr-prose code:after{content:"`"}.xl\:gr-prose a code{color:#111827}.xl\:gr-prose pre{color:#e5e7eb;background-color:#1f2937;overflow-x:auto;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding:.8571429em 1.1428571em}.xl\:gr-prose pre code{background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:400;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.xl\:gr-prose pre code:before{content:none}.xl\:gr-prose pre code:after{content:none}.xl\:gr-prose table{width:100%;table-layout:auto;text-align:left;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.xl\:gr-prose thead{color:#111827;font-weight:600;border-bottom-width:1px;border-bottom-color:#d1d5db}.xl\:gr-prose thead th{vertical-align:bottom;padding-right:.5714286em;padding-bottom:.5714286em;padding-left:.5714286em}.xl\:gr-prose tbody tr{border-bottom-width:1px;border-bottom-color:#e5e7eb}.xl\:gr-prose tbody tr:last-child{border-bottom-width:0}.xl\:gr-prose tbody td{vertical-align:top;padding:.5714286em}.xl\:gr-prose{font-size:1rem;line-height:1.75}.xl\:gr-prose p{margin-top:1.25em;margin-bottom:1.25em}.xl\:gr-prose img{margin-top:2em;margin-bottom:2em}.xl\:gr-prose video{margin-top:2em;margin-bottom:2em}.xl\:gr-prose figure{margin-top:2em;margin-bottom:2em}.xl\:gr-prose figure>*{margin-top:0;margin-bottom:0}.xl\:gr-prose h2 code{font-size:.875em}.xl\:gr-prose h3 code{font-size:.9em}.xl\:gr-prose ol,.xl\:gr-prose ul{margin-top:1.25em;margin-bottom:1.25em}.xl\:gr-prose li{margin-top:.5em;margin-bottom:.5em}.xl\:gr-prose>ul>li p{margin-top:.75em;margin-bottom:.75em}.xl\:gr-prose>ul>li>:first-child{margin-top:1.25em}.xl\:gr-prose>ul>li>:last-child{margin-bottom:1.25em}.xl\:gr-prose>ol>li>:first-child{margin-top:1.25em}.xl\:gr-prose>ol>li>:last-child{margin-bottom:1.25em}.xl\:gr-prose ol ol,.xl\:gr-prose ol ul,.xl\:gr-prose ul ol,.xl\:gr-prose ul ul{margin-top:.75em;margin-bottom:.75em}.xl\:gr-prose hr+*{margin-top:0}.xl\:gr-prose h2+*{margin-top:0}.xl\:gr-prose h3+*{margin-top:0}.xl\:gr-prose h4+*{margin-top:0}.xl\:gr-prose thead th:first-child{padding-left:0}.xl\:gr-prose thead th:last-child{padding-right:0}.xl\:gr-prose tbody td:first-child{padding-left:0}.xl\:gr-prose tbody td:last-child{padding-right:0}.xl\:gr-prose>:first-child{margin-top:0}.xl\:gr-prose>:last-child{margin-bottom:0}.xl\:gr-prose-sm{font-size:.875rem;line-height:1.7142857}.xl\:gr-prose-sm p{margin-top:1.1428571em;margin-bottom:1.1428571em}.xl\:gr-prose-sm [class~=lead]{font-size:1.2857143em;line-height:1.5555556;margin-top:.8888889em;margin-bottom:.8888889em}.xl\:gr-prose-sm blockquote{margin-top:1.3333333em;margin-bottom:1.3333333em;padding-left:1.1111111em}.xl\:gr-prose-sm h1{font-size:2.1428571em;margin-top:0;margin-bottom:.8em;line-height:1.2}.xl\:gr-prose-sm h2{font-size:1.4285714em;margin-top:1.6em;margin-bottom:.8em;line-height:1.4}.xl\:gr-prose-sm h3{font-size:1.2857143em;margin-top:1.5555556em;margin-bottom:.4444444em;line-height:1.5555556}.xl\:gr-prose-sm h4{margin-top:1.4285714em;margin-bottom:.5714286em;line-height:1.4285714}.xl\:gr-prose-sm img{margin-top:1.7142857em;margin-bottom:1.7142857em}.xl\:gr-prose-sm video{margin-top:1.7142857em;margin-bottom:1.7142857em}.xl\:gr-prose-sm figure{margin-top:1.7142857em;margin-bottom:1.7142857em}.xl\:gr-prose-sm figure>*{margin-top:0;margin-bottom:0}.xl\:gr-prose-sm figure figcaption{font-size:.8571429em;line-height:1.3333333;margin-top:.6666667em}.xl\:gr-prose-sm code{font-size:.8571429em}.xl\:gr-prose-sm h2 code{font-size:.9em}.xl\:gr-prose-sm h3 code{font-size:.8888889em}.xl\:gr-prose-sm pre{font-size:.8571429em;line-height:1.6666667;margin-top:1.6666667em;margin-bottom:1.6666667em;border-radius:.25rem;padding:.6666667em 1em}.xl\:gr-prose-sm ol,.xl\:gr-prose-sm ul{margin-top:1.1428571em;margin-bottom:1.1428571em}.xl\:gr-prose-sm li{margin-top:.2857143em;margin-bottom:.2857143em}.xl\:gr-prose-sm ol>li{padding-left:1.5714286em}.xl\:gr-prose-sm ol>li:before{left:0}.xl\:gr-prose-sm ul>li{padding-left:1.5714286em}.xl\:gr-prose-sm ul>li:before{height:.3571429em;width:.3571429em;top:calc(.8571429em - .1785714em);left:.2142857em}.xl\:gr-prose-sm>ul>li p{margin-top:.5714286em;margin-bottom:.5714286em}.xl\:gr-prose-sm>ul>li>:first-child{margin-top:1.1428571em}.xl\:gr-prose-sm>ul>li>:last-child{margin-bottom:1.1428571em}.xl\:gr-prose-sm>ol>li>:first-child{margin-top:1.1428571em}.xl\:gr-prose-sm>ol>li>:last-child{margin-bottom:1.1428571em}.xl\:gr-prose-sm ol ol,.xl\:gr-prose-sm ol ul,.xl\:gr-prose-sm ul ol,.xl\:gr-prose-sm ul ul{margin-top:.5714286em;margin-bottom:.5714286em}.xl\:gr-prose-sm hr{margin-top:2.8571429em;margin-bottom:2.8571429em}.xl\:gr-prose-sm hr+*{margin-top:0}.xl\:gr-prose-sm h2+*{margin-top:0}.xl\:gr-prose-sm h3+*{margin-top:0}.xl\:gr-prose-sm h4+*{margin-top:0}.xl\:gr-prose-sm table{font-size:.8571429em;line-height:1.5}.xl\:gr-prose-sm thead th{padding-right:1em;padding-bottom:.6666667em;padding-left:1em}.xl\:gr-prose-sm thead th:first-child{padding-left:0}.xl\:gr-prose-sm thead th:last-child{padding-right:0}.xl\:gr-prose-sm tbody td{padding:.6666667em 1em}.xl\:gr-prose-sm tbody td:first-child{padding-left:0}.xl\:gr-prose-sm tbody td:last-child{padding-right:0}.xl\:gr-prose-sm>:first-child{margin-top:0}.xl\:gr-prose-sm>:last-child{margin-bottom:0}.xl\:gr-prose-lg{font-size:1.125rem;line-height:1.7777778}.xl\:gr-prose-lg p{margin-top:1.3333333em;margin-bottom:1.3333333em}.xl\:gr-prose-lg [class~=lead]{font-size:1.2222222em;line-height:1.4545455;margin-top:1.0909091em;margin-bottom:1.0909091em}.xl\:gr-prose-lg blockquote{margin-top:1.6666667em;margin-bottom:1.6666667em;padding-left:1em}.xl\:gr-prose-lg h1{font-size:2.6666667em;margin-top:0;margin-bottom:.8333333em;line-height:1}.xl\:gr-prose-lg h2{font-size:1.6666667em;margin-top:1.8666667em;margin-bottom:1.0666667em;line-height:1.3333333}.xl\:gr-prose-lg h3{font-size:1.3333333em;margin-top:1.6666667em;margin-bottom:.6666667em;line-height:1.5}.xl\:gr-prose-lg h4{margin-top:1.7777778em;margin-bottom:.4444444em;line-height:1.5555556}.xl\:gr-prose-lg img{margin-top:1.7777778em;margin-bottom:1.7777778em}.xl\:gr-prose-lg video{margin-top:1.7777778em;margin-bottom:1.7777778em}.xl\:gr-prose-lg figure{margin-top:1.7777778em;margin-bottom:1.7777778em}.xl\:gr-prose-lg figure>*{margin-top:0;margin-bottom:0}.xl\:gr-prose-lg figure figcaption{font-size:.8888889em;line-height:1.5;margin-top:1em}.xl\:gr-prose-lg code{font-size:.8888889em}.xl\:gr-prose-lg h2 code{font-size:.8666667em}.xl\:gr-prose-lg h3 code{font-size:.875em}.xl\:gr-prose-lg pre{font-size:.8888889em;line-height:1.75;margin-top:2em;margin-bottom:2em;border-radius:.375rem;padding:1em 1.5em}.xl\:gr-prose-lg ol,.xl\:gr-prose-lg ul{margin-top:1.3333333em;margin-bottom:1.3333333em}.xl\:gr-prose-lg li{margin-top:.6666667em;margin-bottom:.6666667em}.xl\:gr-prose-lg ol>li{padding-left:1.6666667em}.xl\:gr-prose-lg ol>li:before{left:0}.xl\:gr-prose-lg ul>li{padding-left:1.6666667em}.xl\:gr-prose-lg ul>li:before{width:.3333333em;height:.3333333em;top:calc(.8888889em - .1666667em);left:.2222222em}.xl\:gr-prose-lg>ul>li p{margin-top:.8888889em;margin-bottom:.8888889em}.xl\:gr-prose-lg>ul>li>:first-child{margin-top:1.3333333em}.xl\:gr-prose-lg>ul>li>:last-child{margin-bottom:1.3333333em}.xl\:gr-prose-lg>ol>li>:first-child{margin-top:1.3333333em}.xl\:gr-prose-lg>ol>li>:last-child{margin-bottom:1.3333333em}.xl\:gr-prose-lg ol ol,.xl\:gr-prose-lg ol ul,.xl\:gr-prose-lg ul ol,.xl\:gr-prose-lg ul ul{margin-top:.8888889em;margin-bottom:.8888889em}.xl\:gr-prose-lg hr{margin-top:3.1111111em;margin-bottom:3.1111111em}.xl\:gr-prose-lg hr+*{margin-top:0}.xl\:gr-prose-lg h2+*{margin-top:0}.xl\:gr-prose-lg h3+*{margin-top:0}.xl\:gr-prose-lg h4+*{margin-top:0}.xl\:gr-prose-lg table{font-size:.8888889em;line-height:1.5}.xl\:gr-prose-lg thead th{padding-right:.75em;padding-bottom:.75em;padding-left:.75em}.xl\:gr-prose-lg thead th:first-child{padding-left:0}.xl\:gr-prose-lg thead th:last-child{padding-right:0}.xl\:gr-prose-lg tbody td{padding:.75em}.xl\:gr-prose-lg tbody td:first-child{padding-left:0}.xl\:gr-prose-lg tbody td:last-child{padding-right:0}.xl\:gr-prose-lg>:first-child{margin-top:0}.xl\:gr-prose-lg>:last-child{margin-bottom:0}.xl\:gr-prose-xl{font-size:1.25rem;line-height:1.8}.xl\:gr-prose-xl p{margin-top:1.2em;margin-bottom:1.2em}.xl\:gr-prose-xl [class~=lead]{font-size:1.2em;line-height:1.5;margin-top:1em;margin-bottom:1em}.xl\:gr-prose-xl blockquote{margin-top:1.6em;margin-bottom:1.6em;padding-left:1.0666667em}.xl\:gr-prose-xl h1{font-size:2.8em;margin-top:0;margin-bottom:.8571429em;line-height:1}.xl\:gr-prose-xl h2{font-size:1.8em;margin-top:1.5555556em;margin-bottom:.8888889em;line-height:1.1111111}.xl\:gr-prose-xl h3{font-size:1.5em;margin-top:1.6em;margin-bottom:.6666667em;line-height:1.3333333}.xl\:gr-prose-xl h4{margin-top:1.8em;margin-bottom:.6em;line-height:1.6}.xl\:gr-prose-xl img{margin-top:2em;margin-bottom:2em}.xl\:gr-prose-xl video{margin-top:2em;margin-bottom:2em}.xl\:gr-prose-xl figure{margin-top:2em;margin-bottom:2em}.xl\:gr-prose-xl figure>*{margin-top:0;margin-bottom:0}.xl\:gr-prose-xl figure figcaption{font-size:.9em;line-height:1.5555556;margin-top:1em}.xl\:gr-prose-xl code{font-size:.9em}.xl\:gr-prose-xl h2 code{font-size:.8611111em}.xl\:gr-prose-xl h3 code{font-size:.9em}.xl\:gr-prose-xl pre{font-size:.9em;line-height:1.7777778;margin-top:2em;margin-bottom:2em;border-radius:.5rem;padding:1.1111111em 1.3333333em}.xl\:gr-prose-xl ol,.xl\:gr-prose-xl ul{margin-top:1.2em;margin-bottom:1.2em}.xl\:gr-prose-xl li{margin-top:.6em;margin-bottom:.6em}.xl\:gr-prose-xl ol>li{padding-left:1.8em}.xl\:gr-prose-xl ol>li:before{left:0}.xl\:gr-prose-xl ul>li{padding-left:1.8em}.xl\:gr-prose-xl ul>li:before{width:.35em;height:.35em;top:calc(.9em - .175em);left:.25em}.xl\:gr-prose-xl>ul>li p{margin-top:.8em;margin-bottom:.8em}.xl\:gr-prose-xl>ul>li>:first-child{margin-top:1.2em}.xl\:gr-prose-xl>ul>li>:last-child{margin-bottom:1.2em}.xl\:gr-prose-xl>ol>li>:first-child{margin-top:1.2em}.xl\:gr-prose-xl>ol>li>:last-child{margin-bottom:1.2em}.xl\:gr-prose-xl ol ol,.xl\:gr-prose-xl ol ul,.xl\:gr-prose-xl ul ol,.xl\:gr-prose-xl ul ul{margin-top:.8em;margin-bottom:.8em}.xl\:gr-prose-xl hr{margin-top:2.8em;margin-bottom:2.8em}.xl\:gr-prose-xl hr+*{margin-top:0}.xl\:gr-prose-xl h2+*{margin-top:0}.xl\:gr-prose-xl h3+*{margin-top:0}.xl\:gr-prose-xl h4+*{margin-top:0}.xl\:gr-prose-xl table{font-size:.9em;line-height:1.5555556}.xl\:gr-prose-xl thead th{padding-right:.6666667em;padding-bottom:.8888889em;padding-left:.6666667em}.xl\:gr-prose-xl thead th:first-child{padding-left:0}.xl\:gr-prose-xl thead th:last-child{padding-right:0}.xl\:gr-prose-xl tbody td{padding:.8888889em .6666667em}.xl\:gr-prose-xl tbody td:first-child{padding-left:0}.xl\:gr-prose-xl tbody td:last-child{padding-right:0}.xl\:gr-prose-xl>:first-child{margin-top:0}.xl\:gr-prose-xl>:last-child{margin-bottom:0}.xl\:gr-prose-2xl{font-size:1.5rem;line-height:1.6666667}.xl\:gr-prose-2xl p{margin-top:1.3333333em;margin-bottom:1.3333333em}.xl\:gr-prose-2xl [class~=lead]{font-size:1.25em;line-height:1.4666667;margin-top:1.0666667em;margin-bottom:1.0666667em}.xl\:gr-prose-2xl blockquote{margin-top:1.7777778em;margin-bottom:1.7777778em;padding-left:1.1111111em}.xl\:gr-prose-2xl h1{font-size:2.6666667em;margin-top:0;margin-bottom:.875em;line-height:1}.xl\:gr-prose-2xl h2{font-size:2em;margin-top:1.5em;margin-bottom:.8333333em;line-height:1.0833333}.xl\:gr-prose-2xl h3{font-size:1.5em;margin-top:1.5555556em;margin-bottom:.6666667em;line-height:1.2222222}.xl\:gr-prose-2xl h4{margin-top:1.6666667em;margin-bottom:.6666667em;line-height:1.5}.xl\:gr-prose-2xl img{margin-top:2em;margin-bottom:2em}.xl\:gr-prose-2xl video{margin-top:2em;margin-bottom:2em}.xl\:gr-prose-2xl figure{margin-top:2em;margin-bottom:2em}.xl\:gr-prose-2xl figure>*{margin-top:0;margin-bottom:0}.xl\:gr-prose-2xl figure figcaption{font-size:.8333333em;line-height:1.6;margin-top:1em}.xl\:gr-prose-2xl code{font-size:.8333333em}.xl\:gr-prose-2xl h2 code{font-size:.875em}.xl\:gr-prose-2xl h3 code{font-size:.8888889em}.xl\:gr-prose-2xl pre{font-size:.8333333em;line-height:1.8;margin-top:2em;margin-bottom:2em;border-radius:.5rem;padding:1.2em 1.6em}.xl\:gr-prose-2xl ol,.xl\:gr-prose-2xl ul{margin-top:1.3333333em;margin-bottom:1.3333333em}.xl\:gr-prose-2xl li{margin-top:.5em;margin-bottom:.5em}.xl\:gr-prose-2xl ol>li{padding-left:1.6666667em}.xl\:gr-prose-2xl ol>li:before{left:0}.xl\:gr-prose-2xl ul>li{padding-left:1.6666667em}.xl\:gr-prose-2xl ul>li:before{width:.3333333em;height:.3333333em;top:calc(.8333333em - .1666667em);left:.25em}.xl\:gr-prose-2xl>ul>li p{margin-top:.8333333em;margin-bottom:.8333333em}.xl\:gr-prose-2xl>ul>li>:first-child{margin-top:1.3333333em}.xl\:gr-prose-2xl>ul>li>:last-child{margin-bottom:1.3333333em}.xl\:gr-prose-2xl>ol>li>:first-child{margin-top:1.3333333em}.xl\:gr-prose-2xl>ol>li>:last-child{margin-bottom:1.3333333em}.xl\:gr-prose-2xl ol ol,.xl\:gr-prose-2xl ol ul,.xl\:gr-prose-2xl ul ol,.xl\:gr-prose-2xl ul ul{margin-top:.6666667em;margin-bottom:.6666667em}.xl\:gr-prose-2xl hr{margin-top:3em;margin-bottom:3em}.xl\:gr-prose-2xl hr+*{margin-top:0}.xl\:gr-prose-2xl h2+*{margin-top:0}.xl\:gr-prose-2xl h3+*{margin-top:0}.xl\:gr-prose-2xl h4+*{margin-top:0}.xl\:gr-prose-2xl table{font-size:.8333333em;line-height:1.4}.xl\:gr-prose-2xl thead th{padding-right:.6em;padding-bottom:.8em;padding-left:.6em}.xl\:gr-prose-2xl thead th:first-child{padding-left:0}.xl\:gr-prose-2xl thead th:last-child{padding-right:0}.xl\:gr-prose-2xl tbody td{padding:.8em .6em}.xl\:gr-prose-2xl tbody td:first-child{padding-left:0}.xl\:gr-prose-2xl tbody td:last-child{padding-right:0}.xl\:gr-prose-2xl>:first-child{margin-top:0}.xl\:gr-prose-2xl>:last-child{margin-bottom:0}.xl\:gr-prose-red a,.xl\:gr-prose-red a code{color:#dc2626}.xl\:gr-prose-yellow a,.xl\:gr-prose-yellow a code{color:#d97706}.xl\:gr-prose-green a,.xl\:gr-prose-green a code{color:#059669}.xl\:gr-prose-blue a,.xl\:gr-prose-blue a code{color:#2563eb}.xl\:gr-prose-indigo a,.xl\:gr-prose-indigo a code{color:#4f46e5}.xl\:gr-prose-purple a,.xl\:gr-prose-purple a code{color:#7c3aed}.xl\:gr-prose-pink a,.xl\:gr-prose-pink a code{color:#db2777}}@media (min-width: 1536px){.\32xl\:gr-prose{color:#374151;max-width:65ch}.\32xl\:gr-prose [class~=lead]{color:#4b5563;font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.\32xl\:gr-prose a{color:#111827;text-decoration:underline;font-weight:500}.\32xl\:gr-prose strong{color:#111827;font-weight:600}.\32xl\:gr-prose ol[type=A]{--list-counter-style: upper-alpha}.\32xl\:gr-prose ol[type=a]{--list-counter-style: lower-alpha}.\32xl\:gr-prose ol[type=A s]{--list-counter-style: upper-alpha}.\32xl\:gr-prose ol[type=a s]{--list-counter-style: lower-alpha}.\32xl\:gr-prose ol[type=I]{--list-counter-style: upper-roman}.\32xl\:gr-prose ol[type=i]{--list-counter-style: lower-roman}.\32xl\:gr-prose ol[type=I s]{--list-counter-style: upper-roman}.\32xl\:gr-prose ol[type=i s]{--list-counter-style: lower-roman}.\32xl\:gr-prose ol[type="1"]{--list-counter-style: decimal}.\32xl\:gr-prose ol>li{position:relative;padding-left:1.75em}.\32xl\:gr-prose ol>li:before{content:counter(list-item,var(--list-counter-style, decimal)) ".";position:absolute;font-weight:400;color:#6b7280;left:0}.\32xl\:gr-prose ul>li{position:relative;padding-left:1.75em}.\32xl\:gr-prose ul>li:before{content:"";position:absolute;background-color:#d1d5db;border-radius:50%;width:.375em;height:.375em;top:.6875em;left:.25em}.\32xl\:gr-prose hr{border-color:#e5e7eb;border-top-width:1px;margin-top:3em;margin-bottom:3em}.\32xl\:gr-prose blockquote{font-weight:500;font-style:italic;color:#111827;border-left-width:.25rem;border-left-color:#e5e7eb;quotes:"\201c""\201d""\2018""\2019";margin-top:1.6em;margin-bottom:1.6em;padding-left:1em}.\32xl\:gr-prose blockquote p:first-of-type:before{content:open-quote}.\32xl\:gr-prose blockquote p:last-of-type:after{content:close-quote}.\32xl\:gr-prose h1{color:#111827;font-weight:600;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.\32xl\:gr-prose h2{color:#111827;font-weight:600;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.\32xl\:gr-prose h3{color:#111827;font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.\32xl\:gr-prose h4{color:#111827;font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.\32xl\:gr-prose figure figcaption{color:#6b7280;font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.\32xl\:gr-prose code{color:#111827;font-weight:600;font-size:.875em}.\32xl\:gr-prose code:before{content:"`"}.\32xl\:gr-prose code:after{content:"`"}.\32xl\:gr-prose a code{color:#111827}.\32xl\:gr-prose pre{color:#e5e7eb;background-color:#1f2937;overflow-x:auto;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding:.8571429em 1.1428571em}.\32xl\:gr-prose pre code{background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:400;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.\32xl\:gr-prose pre code:before{content:none}.\32xl\:gr-prose pre code:after{content:none}.\32xl\:gr-prose table{width:100%;table-layout:auto;text-align:left;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.\32xl\:gr-prose thead{color:#111827;font-weight:600;border-bottom-width:1px;border-bottom-color:#d1d5db}.\32xl\:gr-prose thead th{vertical-align:bottom;padding-right:.5714286em;padding-bottom:.5714286em;padding-left:.5714286em}.\32xl\:gr-prose tbody tr{border-bottom-width:1px;border-bottom-color:#e5e7eb}.\32xl\:gr-prose tbody tr:last-child{border-bottom-width:0}.\32xl\:gr-prose tbody td{vertical-align:top;padding:.5714286em}.\32xl\:gr-prose{font-size:1rem;line-height:1.75}.\32xl\:gr-prose p{margin-top:1.25em;margin-bottom:1.25em}.\32xl\:gr-prose img{margin-top:2em;margin-bottom:2em}.\32xl\:gr-prose video{margin-top:2em;margin-bottom:2em}.\32xl\:gr-prose figure{margin-top:2em;margin-bottom:2em}.\32xl\:gr-prose figure>*{margin-top:0;margin-bottom:0}.\32xl\:gr-prose h2 code{font-size:.875em}.\32xl\:gr-prose h3 code{font-size:.9em}.\32xl\:gr-prose ol,.\32xl\:gr-prose ul{margin-top:1.25em;margin-bottom:1.25em}.\32xl\:gr-prose li{margin-top:.5em;margin-bottom:.5em}.\32xl\:gr-prose>ul>li p{margin-top:.75em;margin-bottom:.75em}.\32xl\:gr-prose>ul>li>:first-child{margin-top:1.25em}.\32xl\:gr-prose>ul>li>:last-child{margin-bottom:1.25em}.\32xl\:gr-prose>ol>li>:first-child{margin-top:1.25em}.\32xl\:gr-prose>ol>li>:last-child{margin-bottom:1.25em}.\32xl\:gr-prose ol ol,.\32xl\:gr-prose ol ul,.\32xl\:gr-prose ul ol,.\32xl\:gr-prose ul ul{margin-top:.75em;margin-bottom:.75em}.\32xl\:gr-prose hr+*{margin-top:0}.\32xl\:gr-prose h2+*{margin-top:0}.\32xl\:gr-prose h3+*{margin-top:0}.\32xl\:gr-prose h4+*{margin-top:0}.\32xl\:gr-prose thead th:first-child{padding-left:0}.\32xl\:gr-prose thead th:last-child{padding-right:0}.\32xl\:gr-prose tbody td:first-child{padding-left:0}.\32xl\:gr-prose tbody td:last-child{padding-right:0}.\32xl\:gr-prose>:first-child{margin-top:0}.\32xl\:gr-prose>:last-child{margin-bottom:0}.\32xl\:gr-prose-sm{font-size:.875rem;line-height:1.7142857}.\32xl\:gr-prose-sm p{margin-top:1.1428571em;margin-bottom:1.1428571em}.\32xl\:gr-prose-sm [class~=lead]{font-size:1.2857143em;line-height:1.5555556;margin-top:.8888889em;margin-bottom:.8888889em}.\32xl\:gr-prose-sm blockquote{margin-top:1.3333333em;margin-bottom:1.3333333em;padding-left:1.1111111em}.\32xl\:gr-prose-sm h1{font-size:2.1428571em;margin-top:0;margin-bottom:.8em;line-height:1.2}.\32xl\:gr-prose-sm h2{font-size:1.4285714em;margin-top:1.6em;margin-bottom:.8em;line-height:1.4}.\32xl\:gr-prose-sm h3{font-size:1.2857143em;margin-top:1.5555556em;margin-bottom:.4444444em;line-height:1.5555556}.\32xl\:gr-prose-sm h4{margin-top:1.4285714em;margin-bottom:.5714286em;line-height:1.4285714}.\32xl\:gr-prose-sm img{margin-top:1.7142857em;margin-bottom:1.7142857em}.\32xl\:gr-prose-sm video{margin-top:1.7142857em;margin-bottom:1.7142857em}.\32xl\:gr-prose-sm figure{margin-top:1.7142857em;margin-bottom:1.7142857em}.\32xl\:gr-prose-sm figure>*{margin-top:0;margin-bottom:0}.\32xl\:gr-prose-sm figure figcaption{font-size:.8571429em;line-height:1.3333333;margin-top:.6666667em}.\32xl\:gr-prose-sm code{font-size:.8571429em}.\32xl\:gr-prose-sm h2 code{font-size:.9em}.\32xl\:gr-prose-sm h3 code{font-size:.8888889em}.\32xl\:gr-prose-sm pre{font-size:.8571429em;line-height:1.6666667;margin-top:1.6666667em;margin-bottom:1.6666667em;border-radius:.25rem;padding:.6666667em 1em}.\32xl\:gr-prose-sm ol,.\32xl\:gr-prose-sm ul{margin-top:1.1428571em;margin-bottom:1.1428571em}.\32xl\:gr-prose-sm li{margin-top:.2857143em;margin-bottom:.2857143em}.\32xl\:gr-prose-sm ol>li{padding-left:1.5714286em}.\32xl\:gr-prose-sm ol>li:before{left:0}.\32xl\:gr-prose-sm ul>li{padding-left:1.5714286em}.\32xl\:gr-prose-sm ul>li:before{height:.3571429em;width:.3571429em;top:calc(.8571429em - .1785714em);left:.2142857em}.\32xl\:gr-prose-sm>ul>li p{margin-top:.5714286em;margin-bottom:.5714286em}.\32xl\:gr-prose-sm>ul>li>:first-child{margin-top:1.1428571em}.\32xl\:gr-prose-sm>ul>li>:last-child{margin-bottom:1.1428571em}.\32xl\:gr-prose-sm>ol>li>:first-child{margin-top:1.1428571em}.\32xl\:gr-prose-sm>ol>li>:last-child{margin-bottom:1.1428571em}.\32xl\:gr-prose-sm ol ol,.\32xl\:gr-prose-sm ol ul,.\32xl\:gr-prose-sm ul ol,.\32xl\:gr-prose-sm ul ul{margin-top:.5714286em;margin-bottom:.5714286em}.\32xl\:gr-prose-sm hr{margin-top:2.8571429em;margin-bottom:2.8571429em}.\32xl\:gr-prose-sm hr+*{margin-top:0}.\32xl\:gr-prose-sm h2+*{margin-top:0}.\32xl\:gr-prose-sm h3+*{margin-top:0}.\32xl\:gr-prose-sm h4+*{margin-top:0}.\32xl\:gr-prose-sm table{font-size:.8571429em;line-height:1.5}.\32xl\:gr-prose-sm thead th{padding-right:1em;padding-bottom:.6666667em;padding-left:1em}.\32xl\:gr-prose-sm thead th:first-child{padding-left:0}.\32xl\:gr-prose-sm thead th:last-child{padding-right:0}.\32xl\:gr-prose-sm tbody td{padding:.6666667em 1em}.\32xl\:gr-prose-sm tbody td:first-child{padding-left:0}.\32xl\:gr-prose-sm tbody td:last-child{padding-right:0}.\32xl\:gr-prose-sm>:first-child{margin-top:0}.\32xl\:gr-prose-sm>:last-child{margin-bottom:0}.\32xl\:gr-prose-lg{font-size:1.125rem;line-height:1.7777778}.\32xl\:gr-prose-lg p{margin-top:1.3333333em;margin-bottom:1.3333333em}.\32xl\:gr-prose-lg [class~=lead]{font-size:1.2222222em;line-height:1.4545455;margin-top:1.0909091em;margin-bottom:1.0909091em}.\32xl\:gr-prose-lg blockquote{margin-top:1.6666667em;margin-bottom:1.6666667em;padding-left:1em}.\32xl\:gr-prose-lg h1{font-size:2.6666667em;margin-top:0;margin-bottom:.8333333em;line-height:1}.\32xl\:gr-prose-lg h2{font-size:1.6666667em;margin-top:1.8666667em;margin-bottom:1.0666667em;line-height:1.3333333}.\32xl\:gr-prose-lg h3{font-size:1.3333333em;margin-top:1.6666667em;margin-bottom:.6666667em;line-height:1.5}.\32xl\:gr-prose-lg h4{margin-top:1.7777778em;margin-bottom:.4444444em;line-height:1.5555556}.\32xl\:gr-prose-lg img{margin-top:1.7777778em;margin-bottom:1.7777778em}.\32xl\:gr-prose-lg video{margin-top:1.7777778em;margin-bottom:1.7777778em}.\32xl\:gr-prose-lg figure{margin-top:1.7777778em;margin-bottom:1.7777778em}.\32xl\:gr-prose-lg figure>*{margin-top:0;margin-bottom:0}.\32xl\:gr-prose-lg figure figcaption{font-size:.8888889em;line-height:1.5;margin-top:1em}.\32xl\:gr-prose-lg code{font-size:.8888889em}.\32xl\:gr-prose-lg h2 code{font-size:.8666667em}.\32xl\:gr-prose-lg h3 code{font-size:.875em}.\32xl\:gr-prose-lg pre{font-size:.8888889em;line-height:1.75;margin-top:2em;margin-bottom:2em;border-radius:.375rem;padding:1em 1.5em}.\32xl\:gr-prose-lg ol,.\32xl\:gr-prose-lg ul{margin-top:1.3333333em;margin-bottom:1.3333333em}.\32xl\:gr-prose-lg li{margin-top:.6666667em;margin-bottom:.6666667em}.\32xl\:gr-prose-lg ol>li{padding-left:1.6666667em}.\32xl\:gr-prose-lg ol>li:before{left:0}.\32xl\:gr-prose-lg ul>li{padding-left:1.6666667em}.\32xl\:gr-prose-lg ul>li:before{width:.3333333em;height:.3333333em;top:calc(.8888889em - .1666667em);left:.2222222em}.\32xl\:gr-prose-lg>ul>li p{margin-top:.8888889em;margin-bottom:.8888889em}.\32xl\:gr-prose-lg>ul>li>:first-child{margin-top:1.3333333em}.\32xl\:gr-prose-lg>ul>li>:last-child{margin-bottom:1.3333333em}.\32xl\:gr-prose-lg>ol>li>:first-child{margin-top:1.3333333em}.\32xl\:gr-prose-lg>ol>li>:last-child{margin-bottom:1.3333333em}.\32xl\:gr-prose-lg ol ol,.\32xl\:gr-prose-lg ol ul,.\32xl\:gr-prose-lg ul ol,.\32xl\:gr-prose-lg ul ul{margin-top:.8888889em;margin-bottom:.8888889em}.\32xl\:gr-prose-lg hr{margin-top:3.1111111em;margin-bottom:3.1111111em}.\32xl\:gr-prose-lg hr+*{margin-top:0}.\32xl\:gr-prose-lg h2+*{margin-top:0}.\32xl\:gr-prose-lg h3+*{margin-top:0}.\32xl\:gr-prose-lg h4+*{margin-top:0}.\32xl\:gr-prose-lg table{font-size:.8888889em;line-height:1.5}.\32xl\:gr-prose-lg thead th{padding-right:.75em;padding-bottom:.75em;padding-left:.75em}.\32xl\:gr-prose-lg thead th:first-child{padding-left:0}.\32xl\:gr-prose-lg thead th:last-child{padding-right:0}.\32xl\:gr-prose-lg tbody td{padding:.75em}.\32xl\:gr-prose-lg tbody td:first-child{padding-left:0}.\32xl\:gr-prose-lg tbody td:last-child{padding-right:0}.\32xl\:gr-prose-lg>:first-child{margin-top:0}.\32xl\:gr-prose-lg>:last-child{margin-bottom:0}.\32xl\:gr-prose-xl{font-size:1.25rem;line-height:1.8}.\32xl\:gr-prose-xl p{margin-top:1.2em;margin-bottom:1.2em}.\32xl\:gr-prose-xl [class~=lead]{font-size:1.2em;line-height:1.5;margin-top:1em;margin-bottom:1em}.\32xl\:gr-prose-xl blockquote{margin-top:1.6em;margin-bottom:1.6em;padding-left:1.0666667em}.\32xl\:gr-prose-xl h1{font-size:2.8em;margin-top:0;margin-bottom:.8571429em;line-height:1}.\32xl\:gr-prose-xl h2{font-size:1.8em;margin-top:1.5555556em;margin-bottom:.8888889em;line-height:1.1111111}.\32xl\:gr-prose-xl h3{font-size:1.5em;margin-top:1.6em;margin-bottom:.6666667em;line-height:1.3333333}.\32xl\:gr-prose-xl h4{margin-top:1.8em;margin-bottom:.6em;line-height:1.6}.\32xl\:gr-prose-xl img{margin-top:2em;margin-bottom:2em}.\32xl\:gr-prose-xl video{margin-top:2em;margin-bottom:2em}.\32xl\:gr-prose-xl figure{margin-top:2em;margin-bottom:2em}.\32xl\:gr-prose-xl figure>*{margin-top:0;margin-bottom:0}.\32xl\:gr-prose-xl figure figcaption{font-size:.9em;line-height:1.5555556;margin-top:1em}.\32xl\:gr-prose-xl code{font-size:.9em}.\32xl\:gr-prose-xl h2 code{font-size:.8611111em}.\32xl\:gr-prose-xl h3 code{font-size:.9em}.\32xl\:gr-prose-xl pre{font-size:.9em;line-height:1.7777778;margin-top:2em;margin-bottom:2em;border-radius:.5rem;padding:1.1111111em 1.3333333em}.\32xl\:gr-prose-xl ol,.\32xl\:gr-prose-xl ul{margin-top:1.2em;margin-bottom:1.2em}.\32xl\:gr-prose-xl li{margin-top:.6em;margin-bottom:.6em}.\32xl\:gr-prose-xl ol>li{padding-left:1.8em}.\32xl\:gr-prose-xl ol>li:before{left:0}.\32xl\:gr-prose-xl ul>li{padding-left:1.8em}.\32xl\:gr-prose-xl ul>li:before{width:.35em;height:.35em;top:calc(.9em - .175em);left:.25em}.\32xl\:gr-prose-xl>ul>li p{margin-top:.8em;margin-bottom:.8em}.\32xl\:gr-prose-xl>ul>li>:first-child{margin-top:1.2em}.\32xl\:gr-prose-xl>ul>li>:last-child{margin-bottom:1.2em}.\32xl\:gr-prose-xl>ol>li>:first-child{margin-top:1.2em}.\32xl\:gr-prose-xl>ol>li>:last-child{margin-bottom:1.2em}.\32xl\:gr-prose-xl ol ol,.\32xl\:gr-prose-xl ol ul,.\32xl\:gr-prose-xl ul ol,.\32xl\:gr-prose-xl ul ul{margin-top:.8em;margin-bottom:.8em}.\32xl\:gr-prose-xl hr{margin-top:2.8em;margin-bottom:2.8em}.\32xl\:gr-prose-xl hr+*{margin-top:0}.\32xl\:gr-prose-xl h2+*{margin-top:0}.\32xl\:gr-prose-xl h3+*{margin-top:0}.\32xl\:gr-prose-xl h4+*{margin-top:0}.\32xl\:gr-prose-xl table{font-size:.9em;line-height:1.5555556}.\32xl\:gr-prose-xl thead th{padding-right:.6666667em;padding-bottom:.8888889em;padding-left:.6666667em}.\32xl\:gr-prose-xl thead th:first-child{padding-left:0}.\32xl\:gr-prose-xl thead th:last-child{padding-right:0}.\32xl\:gr-prose-xl tbody td{padding:.8888889em .6666667em}.\32xl\:gr-prose-xl tbody td:first-child{padding-left:0}.\32xl\:gr-prose-xl tbody td:last-child{padding-right:0}.\32xl\:gr-prose-xl>:first-child{margin-top:0}.\32xl\:gr-prose-xl>:last-child{margin-bottom:0}.\32xl\:gr-prose-2xl{font-size:1.5rem;line-height:1.6666667}.\32xl\:gr-prose-2xl p{margin-top:1.3333333em;margin-bottom:1.3333333em}.\32xl\:gr-prose-2xl [class~=lead]{font-size:1.25em;line-height:1.4666667;margin-top:1.0666667em;margin-bottom:1.0666667em}.\32xl\:gr-prose-2xl blockquote{margin-top:1.7777778em;margin-bottom:1.7777778em;padding-left:1.1111111em}.\32xl\:gr-prose-2xl h1{font-size:2.6666667em;margin-top:0;margin-bottom:.875em;line-height:1}.\32xl\:gr-prose-2xl h2{font-size:2em;margin-top:1.5em;margin-bottom:.8333333em;line-height:1.0833333}.\32xl\:gr-prose-2xl h3{font-size:1.5em;margin-top:1.5555556em;margin-bottom:.6666667em;line-height:1.2222222}.\32xl\:gr-prose-2xl h4{margin-top:1.6666667em;margin-bottom:.6666667em;line-height:1.5}.\32xl\:gr-prose-2xl img{margin-top:2em;margin-bottom:2em}.\32xl\:gr-prose-2xl video{margin-top:2em;margin-bottom:2em}.\32xl\:gr-prose-2xl figure{margin-top:2em;margin-bottom:2em}.\32xl\:gr-prose-2xl figure>*{margin-top:0;margin-bottom:0}.\32xl\:gr-prose-2xl figure figcaption{font-size:.8333333em;line-height:1.6;margin-top:1em}.\32xl\:gr-prose-2xl code{font-size:.8333333em}.\32xl\:gr-prose-2xl h2 code{font-size:.875em}.\32xl\:gr-prose-2xl h3 code{font-size:.8888889em}.\32xl\:gr-prose-2xl pre{font-size:.8333333em;line-height:1.8;margin-top:2em;margin-bottom:2em;border-radius:.5rem;padding:1.2em 1.6em}.\32xl\:gr-prose-2xl ol,.\32xl\:gr-prose-2xl ul{margin-top:1.3333333em;margin-bottom:1.3333333em}.\32xl\:gr-prose-2xl li{margin-top:.5em;margin-bottom:.5em}.\32xl\:gr-prose-2xl ol>li{padding-left:1.6666667em}.\32xl\:gr-prose-2xl ol>li:before{left:0}.\32xl\:gr-prose-2xl ul>li{padding-left:1.6666667em}.\32xl\:gr-prose-2xl ul>li:before{width:.3333333em;height:.3333333em;top:calc(.8333333em - .1666667em);left:.25em}.\32xl\:gr-prose-2xl>ul>li p{margin-top:.8333333em;margin-bottom:.8333333em}.\32xl\:gr-prose-2xl>ul>li>:first-child{margin-top:1.3333333em}.\32xl\:gr-prose-2xl>ul>li>:last-child{margin-bottom:1.3333333em}.\32xl\:gr-prose-2xl>ol>li>:first-child{margin-top:1.3333333em}.\32xl\:gr-prose-2xl>ol>li>:last-child{margin-bottom:1.3333333em}.\32xl\:gr-prose-2xl ol ol,.\32xl\:gr-prose-2xl ol ul,.\32xl\:gr-prose-2xl ul ol,.\32xl\:gr-prose-2xl ul ul{margin-top:.6666667em;margin-bottom:.6666667em}.\32xl\:gr-prose-2xl hr{margin-top:3em;margin-bottom:3em}.\32xl\:gr-prose-2xl hr+*{margin-top:0}.\32xl\:gr-prose-2xl h2+*{margin-top:0}.\32xl\:gr-prose-2xl h3+*{margin-top:0}.\32xl\:gr-prose-2xl h4+*{margin-top:0}.\32xl\:gr-prose-2xl table{font-size:.8333333em;line-height:1.4}.\32xl\:gr-prose-2xl thead th{padding-right:.6em;padding-bottom:.8em;padding-left:.6em}.\32xl\:gr-prose-2xl thead th:first-child{padding-left:0}.\32xl\:gr-prose-2xl thead th:last-child{padding-right:0}.\32xl\:gr-prose-2xl tbody td{padding:.8em .6em}.\32xl\:gr-prose-2xl tbody td:first-child{padding-left:0}.\32xl\:gr-prose-2xl tbody td:last-child{padding-right:0}.\32xl\:gr-prose-2xl>:first-child{margin-top:0}.\32xl\:gr-prose-2xl>:last-child{margin-bottom:0}.\32xl\:gr-prose-red a,.\32xl\:gr-prose-red a code{color:#dc2626}.\32xl\:gr-prose-yellow a,.\32xl\:gr-prose-yellow a code{color:#d97706}.\32xl\:gr-prose-green a,.\32xl\:gr-prose-green a code{color:#059669}.\32xl\:gr-prose-blue a,.\32xl\:gr-prose-blue a code{color:#2563eb}.\32xl\:gr-prose-indigo a,.\32xl\:gr-prose-indigo a code{color:#4f46e5}.\32xl\:gr-prose-purple a,.\32xl\:gr-prose-purple a code{color:#7c3aed}.\32xl\:gr-prose-pink a,.\32xl\:gr-prose-pink a code{color:#db2777}}.output-markdown .math.inline{display:inline-block;padding-left:.25rem;padding-right:.25rem;padding-bottom:.375rem;vertical-align:middle}.dark .output-markdown .math.inline{--tw-invert: invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.output-markdown .math.inline svg{display:inline} diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.2171fcd3.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.2171fcd3.js new file mode 100644 index 0000000000000000000000000000000000000000..43cbd745e8f53d3657a929a99d08818c014bda27 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.2171fcd3.js @@ -0,0 +1,2 @@ +import{S as D,i as E,s as q,a7 as K,e as j,c as d,a as A,b as w,f as S,m as h,g as B,a8 as C,l as N,am as F,j as g,k,n as T,o as v,A as L,F as O,t as P,h as R,aa as U,P as V,R as z,T as G,I as H,O as J,U as M,V as Q,L as W,K as y}from"./index.cb50929e.js";function X(a){let e;return{c(){e=P(a[2])},m(t,l){S(t,e,l)},p(t,l){l&4&&R(e,t[2])},d(t){t&&T(e)}}}function Y(a){let e,t,l,s,u,_,o;return t=new K({props:{show_label:a[3],$$slots:{default:[X]},$$scope:{ctx:a}}}),{c(){e=j("label"),d(t.$$.fragment),l=A(),s=j("input"),w(s,"type","number"),w(s,"class","gr-box gr-input w-full gr-text-input"),s.disabled=a[1],w(e,"class","block")},m(b,r){S(b,e,r),h(t,e,null),B(e,l),B(e,s),C(s,a[0]),u=!0,_||(o=[N(s,"input",a[6]),N(s,"keypress",a[4]),N(s,"blur",a[5])],_=!0)},p(b,[r]){const n={};r&8&&(n.show_label=b[3]),r&516&&(n.$$scope={dirty:r,ctx:b}),t.$set(n),(!u||r&2)&&(s.disabled=b[1]),r&1&&F(s.value)!==b[0]&&C(s,b[0])},i(b){u||(g(t.$$.fragment,b),u=!0)},o(b){k(t.$$.fragment,b),u=!1},d(b){b&&T(e),v(t),_=!1,L(o)}}}function Z(a,e,t){let{value:l=0}=e,{disabled:s=!1}=e,{label:u}=e,{show_label:_}=e;const o=O();function b(f){!isNaN(f)&&f!==null&&o("change",f)}async function r(f){await U(),f.key==="Enter"&&(f.preventDefault(),o("submit"))}function n(f){o("blur")}function c(){l=F(this.value),t(0,l)}return a.$$set=f=>{"value"in f&&t(0,l=f.value),"disabled"in f&&t(1,s=f.disabled),"label"in f&&t(2,u=f.label),"show_label"in f&&t(3,_=f.show_label)},a.$$.update=()=>{a.$$.dirty&1&&b(l)},[l,s,u,_,r,n,c]}class p extends D{constructor(e){super(),E(this,e,Z,Y,q,{value:0,disabled:1,label:2,show_label:3})}}function x(a){let e,t,l,s,u;const _=[a[6]];let o={};for(let n=0;n<_.length;n+=1)o=z(o,_[n]);e=new G({props:o});function b(n){a[8](n)}let r={label:a[1],show_label:a[5],disabled:a[7]==="static"};return a[0]!==void 0&&(r.value=a[0]),l=new p({props:r}),H.push(()=>J(l,"value",b)),l.$on("change",a[9]),l.$on("submit",a[10]),l.$on("blur",a[11]),{c(){d(e.$$.fragment),t=A(),d(l.$$.fragment)},m(n,c){h(e,n,c),S(n,t,c),h(l,n,c),u=!0},p(n,c){const f=c&64?M(_,[Q(n[6])]):{};e.$set(f);const m={};c&2&&(m.label=n[1]),c&32&&(m.show_label=n[5]),c&128&&(m.disabled=n[7]==="static"),!s&&c&1&&(s=!0,m.value=n[0],W(()=>s=!1)),l.$set(m)},i(n){u||(g(e.$$.fragment,n),g(l.$$.fragment,n),u=!0)},o(n){k(e.$$.fragment,n),k(l.$$.fragment,n),u=!1},d(n){v(e,n),n&&T(t),v(l,n)}}}function $(a){let e,t;return e=new V({props:{visible:a[3],elem_id:a[2],disable:typeof a[4].container=="boolean"&&!a[4].container,$$slots:{default:[x]},$$scope:{ctx:a}}}),{c(){d(e.$$.fragment)},m(l,s){h(e,l,s),t=!0},p(l,[s]){const u={};s&8&&(u.visible=l[3]),s&4&&(u.elem_id=l[2]),s&16&&(u.disable=typeof l[4].container=="boolean"&&!l[4].container),s&4323&&(u.$$scope={dirty:s,ctx:l}),e.$set(u)},i(l){t||(g(e.$$.fragment,l),t=!0)},o(l){k(e.$$.fragment,l),t=!1},d(l){v(e,l)}}}function ee(a,e,t){let{label:l="Number"}=e,{elem_id:s=""}=e,{visible:u=!0}=e,{style:_={}}=e,{value:o=0}=e,{show_label:b}=e,{loading_status:r}=e,{mode:n}=e;function c(i){o=i,t(0,o)}function f(i){y.call(this,a,i)}function m(i){y.call(this,a,i)}function I(i){y.call(this,a,i)}return a.$$set=i=>{"label"in i&&t(1,l=i.label),"elem_id"in i&&t(2,s=i.elem_id),"visible"in i&&t(3,u=i.visible),"style"in i&&t(4,_=i.style),"value"in i&&t(0,o=i.value),"show_label"in i&&t(5,b=i.show_label),"loading_status"in i&&t(6,r=i.loading_status),"mode"in i&&t(7,n=i.mode)},[o,l,s,u,_,b,r,n,c,f,m,I]}class le extends D{constructor(e){super(),E(this,e,ee,$,q,{label:1,elem_id:2,visible:3,style:4,value:0,show_label:5,loading_status:6,mode:7})}}var te=le;const ne=["static","dynamic"],se=a=>({type:"number",description:"numeric value",example_data:a.value??1});export{te as Component,se as document,ne as modes}; +//# sourceMappingURL=index.2171fcd3.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.2171fcd3.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.2171fcd3.js.map new file mode 100644 index 0000000000000000000000000000000000000000..634fb6fc9d2ea171904aeca22463b7c477466c82 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.2171fcd3.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.2171fcd3.js","sources":["../../../../ui/packages/form/src/Number.svelte","../../../../ui/packages/app/src/components/Number/Number.svelte","../../../../ui/packages/app/src/components/Number/index.ts"],"sourcesContent":["\n\n\n\n","\n\n\n\t\n\n\t\n\n","export { default as Component } from \"./Number.svelte\";\nexport const modes = [\"static\", \"dynamic\"];\n\nexport const document = (config: Record) => ({\n\ttype: \"number\",\n\tdescription: \"numeric value\",\n\texample_data: config.value ?? 1\n});\n"],"names":[],"mappings":"mSAwC2B,wCAAA,kTAD3B,4BAEC,8DAIc,iBACJ,6RAzCC,QAAgB,MAChB,WAAoB,OACpB,YACA,qBAEL,GAAW,eAMM,IACjB,MAAM,CAAC,GAAK,IAAM,MACtB,EAAS,SAAU,CAAC,mBAIS,QACxB,KAEF,EAAE,MAAQ,SACb,GAAE,iBACF,EAAS,QAAQ,cAME,GACpB,EAAS,MAAM,yNAHb,EAAc,CAAK,4JCRH,2IAMR,OAAS,6QAND,iGAMR,OAAS,uRARJ,MAAM,WAAc,YAAc,KAAM,uLAAxC,MAAM,WAAc,YAAc,KAAM,gKAd7C,QAAgB,aAChB,UAAkB,OAClB,UAAmB,OACnB,eACA,QAAgB,MAChB,iBAEA,qBACA,8kBCdC,IAAQ,CAAC,SAAU,SAAS,EAE5B,GAAW,AAAC,KACxB,KAAM,SACN,YAAa,gBACb,aAAc,EAAO,OAAS,CAC/B"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.2b8a022e.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.2b8a022e.js new file mode 100644 index 0000000000000000000000000000000000000000..ade20302f76cdb4c9a4223d97efaf08fdfc43ce5 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.2b8a022e.js @@ -0,0 +1,2 @@ +import{S as $,i as x,s as V,w as Q,b as d,f as y,g as S,x as F,n as C,e as L,M as O,F as he,ad as bt,I as E,ae as Ve,ak as Ze,Y as He,l as W,W as It,A as kt,a as U,ai as pt,j as w,D as X,k as I,E as G,C as yt,aa as Se,J as Ct,al as $e,K as ce,c as T,m as B,o as j,a8 as Re,am as vt,d as q,B as ue,L as Y,O as H,t as be,h as Qe,P as Mt,Q as zt,X as Tt,R as Bt,T as jt,U as St,V as Rt}from"./index.cb50929e.js";import{B as wt}from"./BlockLabel.4b1193ac.js";import{I as De}from"./Image.46cd55d4.js";import{C as Dt,i as Et,U as Lt,W as Ut}from"./Webcam.1069ca6e.js";import{I as Ee,C as Ft,M as Le}from"./ModifyUpload.e869f7e2.js";import{U as Nt}from"./Upload.5e38559f.js";import{E as On}from"./Image.f4b10781.js";function qt(t){let e,n,i;return{c(){e=Q("svg"),n=Q("path"),i=Q("path"),d(n,"d","M28.828 3.172a4.094 4.094 0 0 0-5.656 0L4.05 22.292A6.954 6.954 0 0 0 2 27.242V30h2.756a6.952 6.952 0 0 0 4.95-2.05L28.828 8.829a3.999 3.999 0 0 0 0-5.657zM10.91 18.26l2.829 2.829l-2.122 2.121l-2.828-2.828zm-2.619 8.276A4.966 4.966 0 0 1 4.756 28H4v-.759a4.967 4.967 0 0 1 1.464-3.535l1.91-1.91l2.829 2.828zM27.415 7.414l-12.261 12.26l-2.829-2.828l12.262-12.26a2.047 2.047 0 0 1 2.828 0a2 2 0 0 1 0 2.828z"),d(n,"fill","currentColor"),d(i,"d","M6.5 15a3.5 3.5 0 0 1-2.475-5.974l3.5-3.5a1.502 1.502 0 0 0 0-2.121a1.537 1.537 0 0 0-2.121 0L3.415 5.394L2 3.98l1.99-1.988a3.585 3.585 0 0 1 4.95 0a3.504 3.504 0 0 1 0 4.949L5.439 10.44a1.502 1.502 0 0 0 0 2.121a1.537 1.537 0 0 0 2.122 0l4.024-4.024L13 9.95l-4.025 4.024A3.475 3.475 0 0 1 6.5 15z"),d(i,"fill","currentColor"),d(e,"width","100%"),d(e,"height","100%"),d(e,"viewBox","0 0 32 32")},m(l,u){y(l,e,u),S(e,n),S(e,i)},p:F,i:F,o:F,d(l){l&&C(e)}}}class Ot extends ${constructor(e){super(),x(this,e,null,qt,V,{})}}function Wt(t){let e,n,i,l,u,r,o;return{c(){e=Q("svg"),n=Q("circle"),i=Q("circle"),l=Q("circle"),u=Q("circle"),r=Q("circle"),o=Q("path"),d(n,"cx","10"),d(n,"cy","12"),d(n,"r","2"),d(n,"fill","currentColor"),d(i,"cx","16"),d(i,"cy","9"),d(i,"r","2"),d(i,"fill","currentColor"),d(l,"cx","22"),d(l,"cy","12"),d(l,"r","2"),d(l,"fill","currentColor"),d(u,"cx","23"),d(u,"cy","18"),d(u,"r","2"),d(u,"fill","currentColor"),d(r,"cx","19"),d(r,"cy","23"),d(r,"r","2"),d(r,"fill","currentColor"),d(o,"fill","currentColor"),d(o,"d","M16.54 2A14 14 0 0 0 2 16a4.82 4.82 0 0 0 6.09 4.65l1.12-.31a3 3 0 0 1 3.79 2.9V27a3 3 0 0 0 3 3a14 14 0 0 0 14-14.54A14.05 14.05 0 0 0 16.54 2Zm8.11 22.31A11.93 11.93 0 0 1 16 28a1 1 0 0 1-1-1v-3.76a5 5 0 0 0-5-5a5.07 5.07 0 0 0-1.33.18l-1.12.31A2.82 2.82 0 0 1 4 16A12 12 0 0 1 16.47 4A12.18 12.18 0 0 1 28 15.53a11.89 11.89 0 0 1-3.35 8.79Z"),d(e,"width","100%"),d(e,"height","100%"),d(e,"viewBox","0 0 32 32")},m(s,g){y(s,e,g),S(e,n),S(e,i),S(e,l),S(e,u),S(e,r),S(e,o)},p:F,i:F,o:F,d(s){s&&C(e)}}}class Pt extends ${constructor(e){super(),x(this,e,null,Wt,V,{})}}function Jt(t){let e,n;return{c(){e=Q("svg"),n=Q("path"),d(n,"d","M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"),d(e,"xmlns","http://www.w3.org/2000/svg"),d(e,"width","100%"),d(e,"height","100%"),d(e,"viewBox","0 0 24 24"),d(e,"fill","none"),d(e,"stroke","currentColor"),d(e,"stroke-width","1.5"),d(e,"stroke-linecap","round"),d(e,"stroke-linejoin","round"),d(e,"class","feather feather-edit-2")},m(i,l){y(i,e,l),S(e,n)},p:F,i:F,o:F,d(i){i&&C(e)}}}class xe extends ${constructor(e){super(),x(this,e,null,Jt,V,{})}}function Yt(t){let e,n;return{c(){e=L("img"),O(e.src,n=t[0])||d(e,"src",n),d(e,"alt","")},m(i,l){y(i,e,l),t[2](e)},p(i,[l]){l&1&&!O(e.src,n=i[0])&&d(e,"src",n)},i:F,o:F,d(i){i&&C(e),t[2](null)}}}function Ht(t,e,n){let{image:i}=e,l;const u=he();bt(()=>{const o=new Dt(l,{autoCropArea:1,cropend(){const s=o.getCroppedCanvas().toDataURL();u("crop",s)}});return u("crop",i),()=>{o.destroy()}});function r(o){E[o?"unshift":"push"](()=>{l=o,n(1,l)})}return t.$$set=o=>{"image"in o&&n(0,i=o.image)},[i,l,r]}class At extends ${constructor(e){super(),x(this,e,Ht,Yt,V,{image:0})}}class et{constructor(e,n){this.x=e,this.y=n}}class tt extends et{update(e){this.x=e.x,this.y=e.y}moveByAngle(e,n){const i=e+Math.PI/2;this.x=this.x+Math.sin(i)*n,this.y=this.y-Math.cos(i)*n}equalsTo(e){return this.x===e.x&&this.y===e.y}getDifferenceTo(e){return new et(this.x-e.x,this.y-e.y)}getDistanceTo(e){const n=this.getDifferenceTo(e);return Math.sqrt(Math.pow(n.x,2)+Math.pow(n.y,2))}getAngleTo(e){const n=this.getDifferenceTo(e);return Math.atan2(n.y,n.x)}toObject(){return{x:this.x,y:this.y}}}const Qt=30;class Vt{constructor({radius:e=Qt,enabled:n=!0,initialPoint:i={x:0,y:0}}={}){this.radius=e,this._isEnabled=n,this.pointer=new tt(i.x,i.y),this.brush=new tt(i.x,i.y),this.angle=0,this.distance=0,this._hasMoved=!1}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}isEnabled(){return this._isEnabled}setRadius(e){this.radius=e}getRadius(){return this.radius}getBrushCoordinates(){return this.brush.toObject()}getPointerCoordinates(){return this.pointer.toObject()}getBrush(){return this.brush}getPointer(){return this.pointer}getAngle(){return this.angle}getDistance(){return this.distance}brushHasMoved(){return this._hasMoved}update(e,{both:n=!1}={}){return this._hasMoved=!1,this.pointer.equalsTo(e)&&!n?!1:(this.pointer.update(e),n?(this._hasMoved=!0,this.brush.update(e),!0):(this._isEnabled?(this.distance=this.pointer.getDistanceTo(this.brush),this.angle=this.pointer.getAngleTo(this.brush),this.distance>this.radius&&(this.brush.moveByAngle(this.angle,this.distance-this.radius),this._hasMoved=!0)):(this.distance=0,this.angle=0,this.brush.update(e),this._hasMoved=!0),!0))}}function nt(t,e,n){const i=t.slice();return i[56]=e[n].name,i[57]=e[n].zIndex,i[58]=e,i[59]=n,i}function it(t){let e,n,i;return{c(){e=L("div"),e.textContent="Start drawing",d(e,"class","absolute inset-0 flex items-center justify-center z-40 pointer-events-none touch-none text-gray-400 md:text-xl")},m(l,u){y(l,e,u),i=!0},i(l){i||(Ve(()=>{n||(n=Ze(e,$e,{duration:50},!0)),n.run(1)}),i=!0)},o(l){n||(n=Ze(e,$e,{duration:50},!1)),n.run(0),i=!1},d(l){l&&C(e),l&&n&&n.end()}}}function lt(t){let e,n,i=t[56],l,u;const r=()=>t[27](e,i),o=()=>t[27](null,i);return{c(){e=L("canvas"),d(e,"key",n=t[56]),d(e,"class","inset-0 m-auto hover:cursor-none"),He(e,"display","block"),He(e,"position","absolute"),He(e,"z-index",t[57])},m(s,g){y(s,e,g),r(),l||(u=[W(e,"mousedown",t[56]==="interface"?t[6]:void 0),W(e,"mousemove",t[56]==="interface"?t[7]:void 0),W(e,"mouseup",t[56]==="interface"?t[8]:void 0),W(e,"mouseout",t[56]==="interface"?t[8]:void 0),W(e,"blur",t[56]==="interface"?t[8]:void 0),W(e,"touchstart",t[56]==="interface"?t[6]:void 0),W(e,"touchmove",t[56]==="interface"?t[7]:void 0),W(e,"touchend",t[56]==="interface"?t[8]:void 0),W(e,"touchcancel",t[56]==="interface"?t[8]:void 0),W(e,"click",It(t[26]))],l=!0)},p(s,g){t=s,i!==t[56]&&(o(),i=t[56],r())},d(s){s&&C(e),o(),l=!1,kt(u)}}}function Xt(t){let e,n,i,l,u=t[4]===0&&it(),r=t[5],o=[];for(let s=0;st[29].call(e))},m(s,g){y(s,e,g),u&&u.m(e,null),S(e,n);for(let _=0;_{u=null}),G()),g[0]&481){r=s[5];let _;for(_=0;_{Object.keys(z).forEach(c=>{n(23,b[c]=z[c].getContext("2d"),b)}),await Se(),r&&(r.addEventListener("load",c=>{_==="webcam"?(b.temp.save(),b.temp.translate(m,0),b.temp.scale(-1,1),b.temp.drawImage(r,0,0),b.temp.restore()):b.temp.drawImage(r,0,0),b.drawing.drawImage(z.temp,0,0,m,a),se()}),setTimeout(()=>{_==="webcam"?(b.temp.save(),b.temp.translate(m,0),b.temp.scale(-1,1),b.temp.drawImage(r,0,0),b.temp.restore()):b.temp.drawImage(r,0,0),b.drawing.drawImage(z.temp,0,0,m,a),me({lines:J.slice()}),se()},100)),n(25,k=new Vt({radius:g*.05,enabled:!0,initialPoint:{x:m/2,y:a/2}})),ae=new Et((c,v,...M)=>{Ie(c,v)}),ae.observe(K),ge(),n(21,p=!0),requestAnimationFrame(()=>{re(),requestAnimationFrame(()=>{_e()})})});function re(){const c=m/2,v=a/2;k.update({x:c,y:v},{both:!0}),k.update({x:c,y:v},{both:!1}),te=!0,ne=!0}Ct(()=>{n(21,p=!1),ae.unobserve(K)});function Ue(){const c=J.slice(0,-1);Be(),r&&(_==="webcam"?(b.temp.save(),b.temp.translate(m,0),b.temp.scale(-1,1),b.temp.drawImage(r,0,0),b.temp.restore()):b.temp.drawImage(r,0,0),(!J||!J.length)&&b.drawing.drawImage(z.temp,0,0,m,a)),me({lines:c}),n(4,le=c.length),J.length&&n(24,J=c),se()}let me=({lines:c})=>{c.forEach(v=>{const{points:M,brush_color:h,brush_radius:R}=v;ve({points:M,brush_color:h,brush_radius:R}),o==="mask"&&Me({points:M,brush_color:h,brush_radius:R}),P=M}),Te({brush_color:s,brush_radius:g}),o==="mask"&&ze()},Fe=c=>{c.preventDefault(),N=!0;const{x:v,y:M}=ye(c);c.touches&&c.touches.length>0&&k.update({x:v,y:M},{both:!0}),Ce(v,M),n(4,le+=1)},ke=c=>{c.preventDefault();const{x:v,y:M}=ye(c);Ce(v,M)},Ne=c=>{c.preventDefault(),ke(c),ie=!1,N=!1,Te(),o==="mask"&&ze()},pe=0,we=0,Ae=0,Ie=async()=>{if(m===pe&&a===we&&Ae===f)return;const c={width:m,height:a},v={height:f,width:f*(c.width/c.height)};await Promise.all([fe(z.interface,c,v),fe(z.drawing,c,v),fe(z.temp,c,v),fe(z.temp_fake,c,v),fe(z.mask,c,v,!1)]),n(9,g=20*(c.width/v.width)),ge({once:!0}),setTimeout(()=>{we=a,pe=m,Ae=f},100),_e()},fe=async(c,v,M,h=!0)=>{if(!p)return;await Se();const R=window.devicePixelRatio||1;c.width=v.width*(h?R:1),c.height=v.height*(h?R:1);const Z=c.getContext("2d");h&&Z.scale(R,R),c.style.width=`${M.width}px`,c.style.height=`${M.height}px`},ye=c=>{const v=z.interface.getBoundingClientRect();let M=c.clientX,h=c.clientY;return c.changedTouches&&c.changedTouches.length>0&&(M=c.changedTouches[0].clientX,h=c.changedTouches[0].clientY),{x:(M-v.left)/v.width*m,y:(h-v.top)/v.height*a}},Ce=(c,v)=>{k.update({x:c,y:v});const M=!k.isEnabled();(N&&!ie||M&&N)&&(ie=!0,P.push(k.brush.toObject())),ie&&(P.push(k.brush.toObject()),ve({points:P,brush_color:s,brush_radius:g}),o==="mask"&&Me({points:P,brush_color:s,brush_radius:g})),te=!0},ve=({points:c,brush_color:v,brush_radius:M})=>{if(!c||c.length<2||(n(23,b.temp.lineJoin="round",b),n(23,b.temp.lineCap="round",b),n(23,b.temp.strokeStyle=v,b),n(23,b.temp.lineWidth=M,b),!c||c.length<2))return;let h=c[0],R=c[1];b.temp.moveTo(R.x,R.y),b.temp.beginPath();for(var Z=1,Ye=c.length;Z{if(!c||c.length<2)return;n(23,b.temp_fake.lineJoin="round",b),n(23,b.temp_fake.lineCap="round",b),n(23,b.temp_fake.strokeStyle="#fff",b),n(23,b.temp_fake.lineWidth=M,b);let h=c[0],R=c[1];b.temp_fake.moveTo(R.x,R.y),b.temp_fake.beginPath();for(var Z=1,Ye=c.length;Z{P.length<1||(P.length=0,b.mask.drawImage(z.temp_fake,0,0,m,a),se())},Te=()=>{P.length<1||(J.push({points:P.slice(),brush_color:s,brush_radius:g}),o!=="mask"&&(P.length=0),b.drawing.drawImage(z.temp,0,0,m,a),se())},se=()=>{const c=je();l("change",c)};function _e(){return n(24,J=[]),Be(),n(4,le=0),!0}function Be(){ne=!0,b.temp.clearRect(0,0,m,a),n(23,b.temp.fillStyle=o==="mask"?"transparent":"#FFFFFF",b),b.temp.fillRect(0,0,m,a),o==="mask"&&(b.temp_fake.clearRect(0,0,z.temp_fake.width,z.temp_fake.height),b.mask.clearRect(0,0,m,a),n(23,b.mask.fillStyle="#000",b),b.mask.fillRect(0,0,m,a))}let ge=({once:c=!1}={})=>{if(te||ne){const v=k.getPointerCoordinates(),M=k.getBrushCoordinates();qe(b.interface,v,M),te=!1,ne=!1}c||window.requestAnimationFrame(()=>{ge()})},qe=(c,v,M)=>{c.clearRect(0,0,m,a),c.beginPath(),c.fillStyle=s,c.arc(M.x,M.y,g/2,0,Math.PI*2,!0),c.fill(),c.beginPath(),c.fillStyle=Gt,c.arc(M.x,M.y,i,0,Math.PI*2,!0),c.fill()};function je(){return o==="mask"?z.mask.toDataURL("image/jpg"):z.drawing.toDataURL("image/jpg")}function Oe(c){ce.call(this,t,c)}function We(c,v){E[c?"unshift":"push"](()=>{z[v]=c,n(0,z)})}function Pe(c){E[c?"unshift":"push"](()=>{K=c,n(3,K)})}function Je(){A=this.offsetWidth,D=this.offsetHeight,n(1,A),n(2,D)}return t.$$set=c=>{"value"in c&&n(10,u=c.value),"value_img"in c&&n(11,r=c.value_img),"mode"in c&&n(12,o=c.mode),"brush_color"in c&&n(13,s=c.brush_color),"brush_radius"in c&&n(9,g=c.brush_radius),"source"in c&&n(14,_=c.source),"width"in c&&n(15,m=c.width),"height"in c&&n(16,a=c.height),"container_height"in c&&n(17,f=c.container_height)},t.$$.update=()=>{t.$$.dirty[0]&2098176&&p&&!u&&_e(),t.$$.dirty[0]&31574017&&p&&r!==ee&&(n(22,ee=r),_e(),setTimeout(()=>{_==="webcam"?(b.temp.save(),b.temp.translate(m,0),b.temp.scale(-1,1),b.temp.drawImage(r,0,0),b.temp.restore()):b.temp.drawImage(r,0,0),b.drawing.drawImage(z.temp,0,0,m,a),me({lines:J.slice()}),se()},50)),t.$$.dirty[0]&33554944&&k&&(re(),k.setRadius(g*.05)),t.$$.dirty[0]&98304&&(m||a)&&Ie(),t.$$.dirty[0]&512&&(i=g*.075)},[z,A,D,K,le,oe,Fe,ke,Ne,g,u,r,o,s,_,m,a,f,Ue,_e,je,p,ee,b,J,k,Oe,We,Pe,Je]}class Xe extends ${constructor(e){super(),x(this,e,Kt,Xt,V,{value:10,value_img:11,mode:12,brush_color:13,brush_radius:9,source:14,width:15,height:16,container_height:17,undo:18,clear:19,get_image_data:20},null,[-1,-1])}get undo(){return this.$$.ctx[18]}get clear(){return this.$$.ctx[19]}get get_image_data(){return this.$$.ctx[20]}}function Zt(t){let e,n,i,l,u;return n=new Ee({props:{Icon:Lt,label:"Undo"}}),n.$on("click",t[1]),l=new Ee({props:{Icon:Ft,label:"Clear"}}),l.$on("click",t[2]),{c(){e=L("div"),T(n.$$.fragment),i=U(),T(l.$$.fragment),d(e,"class","z-50 top-2 right-2 justify-end flex gap-1 absolute")},m(r,o){y(r,e,o),B(n,e,null),S(e,i),B(l,e,null),u=!0},p:F,i(r){u||(w(n.$$.fragment,r),w(l.$$.fragment,r),u=!0)},o(r){I(n.$$.fragment,r),I(l.$$.fragment,r),u=!1},d(r){r&&C(e),j(n),j(l)}}}function $t(t){const e=he();return[e,()=>e("undo"),l=>{e("clear"),l.stopPropagation()}]}class Ge extends ${constructor(e){super(),x(this,e,$t,Zt,V,{})}}function st(t){let e,n,i,l,u;return{c(){e=L("input"),d(e,"aria-label","Brush radius"),d(e,"class","absolute top-[2px] right-6"),d(e,"type","range"),d(e,"min",n=.5*(t[2]/t[6])),d(e,"max",i=75*(t[2]/t[6]))},m(r,o){y(r,e,o),Re(e,t[0]),l||(u=[W(e,"change",t[10]),W(e,"input",t[10])],l=!0)},p(r,o){o&68&&n!==(n=.5*(r[2]/r[6]))&&d(e,"min",n),o&68&&i!==(i=75*(r[2]/r[6]))&&d(e,"max",i),o&1&&Re(e,r[0])},d(r){r&&C(e),l=!1,kt(u)}}}function ut(t){let e,n,i,l;n=new Ee({props:{Icon:Pt,label:"Select brush color"}}),n.$on("click",t[11]);let u=t[5]&&ot(t);return{c(){e=L("span"),T(n.$$.fragment),i=U(),u&&u.c(),d(e,"class","absolute top-6 right-0")},m(r,o){y(r,e,o),B(n,e,null),S(e,i),u&&u.m(e,null),l=!0},p(r,o){r[5]?u?u.p(r,o):(u=ot(r),u.c(),u.m(e,null)):u&&(u.d(1),u=null)},i(r){l||(w(n.$$.fragment,r),l=!0)},o(r){I(n.$$.fragment,r),l=!1},d(r){r&&C(e),j(n),u&&u.d()}}}function ot(t){let e,n,i;return{c(){e=L("input"),d(e,"aria-label","Brush color"),d(e,"class","absolute top-[-3px] right-6"),d(e,"type","color")},m(l,u){y(l,e,u),Re(e,t[1]),n||(i=W(e,"input",t[12]),n=!0)},p(l,u){u&2&&Re(e,l[1])},d(l){l&&C(e),n=!1,i()}}}function xt(t){let e,n,i,l,u,r;i=new Ee({props:{Icon:Ot,label:"Use brush"}}),i.$on("click",t[9]);let o=t[4]&&st(t),s=t[3]!=="mask"&&ut(t);return{c(){e=L("div"),n=L("span"),T(i.$$.fragment),l=U(),o&&o.c(),u=U(),s&&s.c(),d(n,"class","absolute top-0 right-0"),d(e,"class","z-50 top-10 right-2 justify-end flex gap-1 absolute")},m(g,_){y(g,e,_),S(e,n),B(i,n,null),S(n,l),o&&o.m(n,null),S(e,u),s&&s.m(e,null),r=!0},p(g,[_]){g[4]?o?o.p(g,_):(o=st(g),o.c(),o.m(n,null)):o&&(o.d(1),o=null),g[3]!=="mask"?s?(s.p(g,_),_&8&&w(s,1)):(s=ut(g),s.c(),w(s,1),s.m(e,null)):s&&(X(),I(s,1,1,()=>{s=null}),G())},i(g){r||(w(i.$$.fragment,g),w(s),r=!0)},o(g){I(i.$$.fragment,g),I(s),r=!1},d(g){g&&C(e),j(i),o&&o.d(),s&&s.d()}}}function en(t,e,n){let i;he();let l=!1,u=!1,{brush_radius:r=20}=e,{brush_color:o="#000"}=e,{container_height:s}=e,{img_width:g}=e,{img_height:_}=e,{mode:m="other"}=e;const a=()=>n(4,l=!l);function f(){r=vt(this.value),n(0,r)}const p=()=>n(5,u=!u);function A(){o=this.value,n(1,o)}return t.$$set=D=>{"brush_radius"in D&&n(0,r=D.brush_radius),"brush_color"in D&&n(1,o=D.brush_color),"container_height"in D&&n(7,s=D.container_height),"img_width"in D&&n(2,g=D.img_width),"img_height"in D&&n(8,_=D.img_height),"mode"in D&&n(3,m=D.mode)},t.$$.update=()=>{t.$$.dirty&388&&n(6,i=s*(g/_))},[r,o,g,m,l,u,i,s,_,a,f,p,A]}class Ke extends ${constructor(e){super(),x(this,e,en,xt,V,{brush_radius:0,brush_color:1,container_height:7,img_width:2,img_height:8,mode:3})}}function tn(t){let e,n;return{c(){e=L("img"),d(e,"class","w-full h-full object-contain"),O(e.src,n=t[0].image||t[0])||d(e,"src",n),d(e,"alt",""),q(e,"scale-x-[-1]",t[4]==="webcam"&&t[10])},m(i,l){y(i,e,l)},p(i,l){l[0]&1&&!O(e.src,n=i[0].image||i[0])&&d(e,"src",n),l[0]&1040&&q(e,"scale-x-[-1]",i[4]==="webcam"&&i[10])},i:F,o:F,d(i){i&&C(e)}}}function nn(t){let e=t[21],n,i,l,u=at(t),r=t[15]>0&&ft(t);return{c(){u.c(),n=U(),r&&r.c(),i=ue()},m(o,s){u.m(o,s),y(o,n,s),r&&r.m(o,s),y(o,i,s),l=!0},p(o,s){s[0]&2097152&&V(e,e=o[21])?(u.d(1),u=at(o),u.c(),u.m(n.parentNode,n)):u.p(o,s),o[15]>0?r?(r.p(o,s),s[0]&32768&&w(r,1)):(r=ft(o),r.c(),w(r,1),r.m(i.parentNode,i)):r&&(X(),I(r,1,1,()=>{r=null}),G())},i(o){l||(w(r),l=!0)},o(o){I(r),l=!1},d(o){u.d(o),o&&C(n),r&&r.d(o),o&&C(i)}}}function ln(t){let e,n,i,l,u;return e=new Le({props:{editable:!0}}),e.$on("edit",t[48]),e.$on("clear",t[24]),{c(){T(e.$$.fragment),n=U(),i=L("img"),d(i,"class","w-full h-full object-contain"),O(i.src,l=t[0])||d(i,"src",l),d(i,"alt",""),q(i,"scale-x-[-1]",t[4]==="webcam"&&t[10])},m(r,o){B(e,r,o),y(r,n,o),y(r,i,o),u=!0},p(r,o){(!u||o[0]&1&&!O(i.src,l=r[0]))&&d(i,"src",l),o[0]&1040&&q(i,"scale-x-[-1]",r[4]==="webcam"&&r[10])},i(r){u||(w(e.$$.fragment,r),u=!0)},o(r){I(e.$$.fragment,r),u=!1},d(r){j(e,r),r&&C(n),r&&C(i)}}}function rn(t){let e,n,i,l;return e=new At({props:{image:t[0]}}),e.$on("crop",t[25]),i=new Le({}),i.$on("clear",t[47]),{c(){T(e.$$.fragment),n=U(),T(i.$$.fragment)},m(u,r){B(e,u,r),y(u,n,r),B(i,u,r),l=!0},p(u,r){const o={};r[0]&1&&(o.image=u[0]),e.$set(o)},i(u){l||(w(e.$$.fragment,u),w(i.$$.fragment,u),l=!0)},o(u){I(e.$$.fragment,u),I(i.$$.fragment,u),l=!1},d(u){j(e,u),u&&C(n),j(i,u)}}}function sn(t){let e,n,i=t[4]==="webcam"&&!t[21]&&ct(t);return{c(){i&&i.c(),e=ue()},m(l,u){i&&i.m(l,u),y(l,e,u),n=!0},p(l,u){l[4]==="webcam"&&!l[21]?i?(i.p(l,u),u[0]&2097168&&w(i,1)):(i=ct(l),i.c(),w(i,1),i.m(e.parentNode,e)):i&&(X(),I(i,1,1,()=>{i=null}),G())},i(l){n||(w(i),n=!0)},o(l){I(i),n=!1},d(l){i&&i.d(l),l&&C(e)}}}function un(t){let e,n,i,l,u,r,o;e=new Ge({}),e.$on("undo",t[38]),e.$on("clear",t[39]);let s=t[1]==="color-sketch"&&ht(t);function g(a){t[42](a)}function _(a){t[43](a)}let m={value:t[0],mode:t[12],width:t[15]||t[20],height:t[14]||t[19],container_height:t[16]||t[19]};return t[17]!==void 0&&(m.brush_radius=t[17]),t[22]!==void 0&&(m.brush_color=t[22]),l=new Xe({props:m}),E.push(()=>H(l,"brush_radius",g)),E.push(()=>H(l,"brush_color",_)),t[44](l),l.$on("change",t[25]),{c(){T(e.$$.fragment),n=U(),s&&s.c(),i=U(),T(l.$$.fragment)},m(a,f){B(e,a,f),y(a,n,f),s&&s.m(a,f),y(a,i,f),B(l,a,f),o=!0},p(a,f){a[1]==="color-sketch"?s?(s.p(a,f),f[0]&2&&w(s,1)):(s=ht(a),s.c(),w(s,1),s.m(i.parentNode,i)):s&&(X(),I(s,1,1,()=>{s=null}),G());const p={};f[0]&1&&(p.value=a[0]),f[0]&4096&&(p.mode=a[12]),f[0]&1081344&&(p.width=a[15]||a[20]),f[0]&540672&&(p.height=a[14]||a[19]),f[0]&589824&&(p.container_height=a[16]||a[19]),!u&&f[0]&131072&&(u=!0,p.brush_radius=a[17],Y(()=>u=!1)),!r&&f[0]&4194304&&(r=!0,p.brush_color=a[22],Y(()=>r=!1)),l.$set(p)},i(a){o||(w(e.$$.fragment,a),w(s),w(l.$$.fragment,a),o=!0)},o(a){I(e.$$.fragment,a),I(s),I(l.$$.fragment,a),o=!1},d(a){j(e,a),a&&C(n),s&&s.d(a),a&&C(i),t[44](null),j(l,a)}}}function on(t){let e,n,i;function l(r){t[37](r)}let u={filetype:"image/x-png,image/gif,image/jpeg",include_file_metadata:!1,disable_click:!!t[0],$$slots:{default:[mn]},$$scope:{ctx:t}};return t[11]!==void 0&&(u.dragging=t[11]),e=new Nt({props:u}),E.push(()=>H(e,"dragging",l)),e.$on("load",t[23]),{c(){T(e.$$.fragment)},m(r,o){B(e,r,o),i=!0},p(r,o){const s={};o[0]&1&&(s.disable_click=!!r[0]),o[0]&8386035|o[1]&134217728&&(s.$$scope={dirty:o,ctx:r}),!n&&o[0]&2048&&(n=!0,s.dragging=r[11],Y(()=>n=!1)),e.$set(s)},i(r){i||(w(e.$$.fragment,r),i=!0)},o(r){I(e.$$.fragment,r),i=!1},d(r){j(e,r)}}}function at(t){let e,n,i,l;return{c(){e=L("img"),d(e,"class","absolute w-full h-full object-contain"),O(e.src,n=t[21]||t[0]?.image||t[0])||d(e,"src",n),d(e,"alt",""),q(e,"scale-x-[-1]",t[4]==="webcam"&&t[10])},m(u,r){y(u,e,r),t[49](e),i||(l=W(e,"load",t[26]),i=!0)},p(u,r){r[0]&2097153&&!O(e.src,n=u[21]||u[0]?.image||u[0])&&d(e,"src",n),r[0]&1040&&q(e,"scale-x-[-1]",u[4]==="webcam"&&u[10])},d(u){u&&C(e),t[49](null),i=!1,l()}}}function ft(t){let e,n,i,l,u,r,o,s;function g(f){t[51](f)}function _(f){t[52](f)}let m={value:t[0],mode:t[12],width:t[15]||t[20],height:t[14]||t[19],container_height:t[16]||t[19],value_img:t[18],source:t[4]};t[17]!==void 0&&(m.brush_radius=t[17]),t[22]!==void 0&&(m.brush_color=t[22]),e=new Xe({props:m}),t[50](e),E.push(()=>H(e,"brush_radius",g)),E.push(()=>H(e,"brush_color",_)),e.$on("change",t[25]),u=new Ge({}),u.$on("undo",t[53]),u.$on("clear",t[27]);let a=(t[1]==="color-sketch"||t[1]==="sketch")&&_t(t);return{c(){T(e.$$.fragment),l=U(),T(u.$$.fragment),r=U(),a&&a.c(),o=ue()},m(f,p){B(e,f,p),y(f,l,p),B(u,f,p),y(f,r,p),a&&a.m(f,p),y(f,o,p),s=!0},p(f,p){const A={};p[0]&1&&(A.value=f[0]),p[0]&4096&&(A.mode=f[12]),p[0]&1081344&&(A.width=f[15]||f[20]),p[0]&540672&&(A.height=f[14]||f[19]),p[0]&589824&&(A.container_height=f[16]||f[19]),p[0]&262144&&(A.value_img=f[18]),p[0]&16&&(A.source=f[4]),!n&&p[0]&131072&&(n=!0,A.brush_radius=f[17],Y(()=>n=!1)),!i&&p[0]&4194304&&(i=!0,A.brush_color=f[22],Y(()=>i=!1)),e.$set(A),f[1]==="color-sketch"||f[1]==="sketch"?a?(a.p(f,p),p[0]&2&&w(a,1)):(a=_t(f),a.c(),w(a,1),a.m(o.parentNode,o)):a&&(X(),I(a,1,1,()=>{a=null}),G())},i(f){s||(w(e.$$.fragment,f),w(u.$$.fragment,f),w(a),s=!0)},o(f){I(e.$$.fragment,f),I(u.$$.fragment,f),I(a),s=!1},d(f){t[50](null),j(e,f),f&&C(l),j(u,f),f&&C(r),a&&a.d(f),f&&C(o)}}}function _t(t){let e,n,i,l;function u(s){t[54](s)}function r(s){t[55](s)}let o={container_height:t[16]||t[19],img_width:t[15]||t[20],img_height:t[14]||t[19],mode:t[12]};return t[17]!==void 0&&(o.brush_radius=t[17]),t[22]!==void 0&&(o.brush_color=t[22]),e=new Ke({props:o}),E.push(()=>H(e,"brush_radius",u)),E.push(()=>H(e,"brush_color",r)),{c(){T(e.$$.fragment)},m(s,g){B(e,s,g),l=!0},p(s,g){const _={};g[0]&589824&&(_.container_height=s[16]||s[19]),g[0]&1081344&&(_.img_width=s[15]||s[20]),g[0]&540672&&(_.img_height=s[14]||s[19]),g[0]&4096&&(_.mode=s[12]),!n&&g[0]&131072&&(n=!0,_.brush_radius=s[17],Y(()=>n=!1)),!i&&g[0]&4194304&&(i=!0,_.brush_color=s[22],Y(()=>i=!1)),e.$set(_)},i(s){l||(w(e.$$.fragment,s),l=!0)},o(s){I(e.$$.fragment,s),l=!1},d(s){j(e,s)}}}function ct(t){let e,n;return e=new Ut({props:{streaming:t[8],pending:t[9],mirror_webcam:t[10]}}),e.$on("capture",t[45]),e.$on("stream",t[25]),e.$on("error",t[46]),{c(){T(e.$$.fragment)},m(i,l){B(e,i,l),n=!0},p(i,l){const u={};l[0]&256&&(u.streaming=i[8]),l[0]&512&&(u.pending=i[9]),l[0]&1024&&(u.mirror_webcam=i[10]),e.$set(u)},i(i){n||(w(e.$$.fragment,i),n=!0)},o(i){I(e.$$.fragment,i),n=!1},d(i){j(e,i)}}}function ht(t){let e,n,i,l;function u(s){t[40](s)}function r(s){t[41](s)}let o={container_height:t[16]||t[19],img_width:t[15]||t[20],img_height:t[14]||t[19]};return t[17]!==void 0&&(o.brush_radius=t[17]),t[22]!==void 0&&(o.brush_color=t[22]),e=new Ke({props:o}),E.push(()=>H(e,"brush_radius",u)),E.push(()=>H(e,"brush_color",r)),{c(){T(e.$$.fragment)},m(s,g){B(e,s,g),l=!0},p(s,g){const _={};g[0]&589824&&(_.container_height=s[16]||s[19]),g[0]&1081344&&(_.img_width=s[15]||s[20]),g[0]&540672&&(_.img_height=s[14]||s[19]),!n&&g[0]&131072&&(n=!0,_.brush_radius=s[17],Y(()=>n=!1)),!i&&g[0]&4194304&&(i=!0,_.brush_color=s[22],Y(()=>i=!1)),e.$set(_)},i(s){l||(w(e.$$.fragment,s),l=!0)},o(s){I(e.$$.fragment,s),l=!1},d(s){j(e,s)}}}function an(t){let e,n;return{c(){e=L("img"),d(e,"class","w-full h-full object-contain"),O(e.src,n=t[0].image||t[0])||d(e,"src",n),d(e,"alt",""),q(e,"scale-x-[-1]",t[4]==="webcam"&&t[10])},m(i,l){y(i,e,l)},p(i,l){l[0]&1&&!O(e.src,n=i[0].image||i[0])&&d(e,"src",n),l[0]&1040&&q(e,"scale-x-[-1]",i[4]==="webcam"&&i[10])},i:F,o:F,d(i){i&&C(e)}}}function fn(t){let e=t[21],n,i,l,u=mt(t),r=t[15]>0&>(t);return{c(){u.c(),n=U(),r&&r.c(),i=ue()},m(o,s){u.m(o,s),y(o,n,s),r&&r.m(o,s),y(o,i,s),l=!0},p(o,s){s[0]&2097152&&V(e,e=o[21])?(u.d(1),u=mt(o),u.c(),u.m(n.parentNode,n)):u.p(o,s),o[15]>0?r?(r.p(o,s),s[0]&32768&&w(r,1)):(r=gt(o),r.c(),w(r,1),r.m(i.parentNode,i)):r&&(X(),I(r,1,1,()=>{r=null}),G())},i(o){l||(w(r),l=!0)},o(o){I(r),l=!1},d(o){u.d(o),o&&C(n),r&&r.d(o),o&&C(i)}}}function _n(t){let e,n,i,l,u;return e=new Le({props:{editable:!0}}),e.$on("edit",t[29]),e.$on("clear",t[24]),{c(){T(e.$$.fragment),n=U(),i=L("img"),d(i,"class","w-full h-full object-contain"),O(i.src,l=t[0])||d(i,"src",l),d(i,"alt",""),q(i,"scale-x-[-1]",t[4]==="webcam"&&t[10])},m(r,o){B(e,r,o),y(r,n,o),y(r,i,o),u=!0},p(r,o){(!u||o[0]&1&&!O(i.src,l=r[0]))&&d(i,"src",l),o[0]&1040&&q(i,"scale-x-[-1]",r[4]==="webcam"&&r[10])},i(r){u||(w(e.$$.fragment,r),u=!0)},o(r){I(e.$$.fragment,r),u=!1},d(r){j(e,r),r&&C(n),r&&C(i)}}}function cn(t){let e,n,i,l;return e=new At({props:{image:t[0]}}),e.$on("crop",t[25]),i=new Le({}),i.$on("clear",t[28]),{c(){T(e.$$.fragment),n=U(),T(i.$$.fragment)},m(u,r){B(e,u,r),y(u,n,r),B(i,u,r),l=!0},p(u,r){const o={};r[0]&1&&(o.image=u[0]),e.$set(o)},i(u){l||(w(e.$$.fragment,u),w(i.$$.fragment,u),l=!0)},o(u){I(e.$$.fragment,u),I(i.$$.fragment,u),l=!1},d(u){j(e,u),u&&C(n),j(i,u)}}}function hn(t){let e,n,i,l,u,r,o,s,g;return{c(){e=L("div"),n=be(t[5]),i=U(),l=L("span"),u=be("- "),r=be(t[6]),o=be(" -"),s=U(),g=be(t[7]),d(l,"class","text-gray-300"),d(e,"class","flex flex-col")},m(_,m){y(_,e,m),S(e,n),S(e,i),S(e,l),S(l,u),S(l,r),S(l,o),S(e,s),S(e,g)},p(_,m){m[0]&32&&Qe(n,_[5]),m[0]&64&&Qe(r,_[6]),m[0]&128&&Qe(g,_[7])},i:F,o:F,d(_){_&&C(e)}}}function mt(t){let e,n,i,l;return{c(){e=L("img"),d(e,"class","absolute w-full h-full object-contain"),O(e.src,n=t[21]||t[0]?.image||t[0])||d(e,"src",n),d(e,"alt",""),q(e,"scale-x-[-1]",t[4]==="webcam"&&t[10])},m(u,r){y(u,e,r),t[30](e),i||(l=W(e,"load",t[26]),i=!0)},p(u,r){r[0]&2097153&&!O(e.src,n=u[21]||u[0]?.image||u[0])&&d(e,"src",n),r[0]&1040&&q(e,"scale-x-[-1]",u[4]==="webcam"&&u[10])},d(u){u&&C(e),t[30](null),i=!1,l()}}}function gt(t){let e,n,i,l,u,r,o,s;function g(f){t[32](f)}function _(f){t[33](f)}let m={value:t[0],mode:t[12],width:t[15]||t[20],height:t[14]||t[19],container_height:t[16]||t[19],value_img:t[18],source:t[4]};t[17]!==void 0&&(m.brush_radius=t[17]),t[22]!==void 0&&(m.brush_color=t[22]),e=new Xe({props:m}),t[31](e),E.push(()=>H(e,"brush_radius",g)),E.push(()=>H(e,"brush_color",_)),e.$on("change",t[25]),u=new Ge({}),u.$on("undo",t[34]),u.$on("clear",t[27]);let a=(t[1]==="color-sketch"||t[1]==="sketch")&&dt(t);return{c(){T(e.$$.fragment),l=U(),T(u.$$.fragment),r=U(),a&&a.c(),o=ue()},m(f,p){B(e,f,p),y(f,l,p),B(u,f,p),y(f,r,p),a&&a.m(f,p),y(f,o,p),s=!0},p(f,p){const A={};p[0]&1&&(A.value=f[0]),p[0]&4096&&(A.mode=f[12]),p[0]&1081344&&(A.width=f[15]||f[20]),p[0]&540672&&(A.height=f[14]||f[19]),p[0]&589824&&(A.container_height=f[16]||f[19]),p[0]&262144&&(A.value_img=f[18]),p[0]&16&&(A.source=f[4]),!n&&p[0]&131072&&(n=!0,A.brush_radius=f[17],Y(()=>n=!1)),!i&&p[0]&4194304&&(i=!0,A.brush_color=f[22],Y(()=>i=!1)),e.$set(A),f[1]==="color-sketch"||f[1]==="sketch"?a?(a.p(f,p),p[0]&2&&w(a,1)):(a=dt(f),a.c(),w(a,1),a.m(o.parentNode,o)):a&&(X(),I(a,1,1,()=>{a=null}),G())},i(f){s||(w(e.$$.fragment,f),w(u.$$.fragment,f),w(a),s=!0)},o(f){I(e.$$.fragment,f),I(u.$$.fragment,f),I(a),s=!1},d(f){t[31](null),j(e,f),f&&C(l),j(u,f),f&&C(r),a&&a.d(f),f&&C(o)}}}function dt(t){let e,n,i,l;function u(s){t[35](s)}function r(s){t[36](s)}let o={container_height:t[16]||t[19],img_width:t[15]||t[20],img_height:t[14]||t[19],mode:t[12]};return t[17]!==void 0&&(o.brush_radius=t[17]),t[22]!==void 0&&(o.brush_color=t[22]),e=new Ke({props:o}),E.push(()=>H(e,"brush_radius",u)),E.push(()=>H(e,"brush_color",r)),{c(){T(e.$$.fragment)},m(s,g){B(e,s,g),l=!0},p(s,g){const _={};g[0]&589824&&(_.container_height=s[16]||s[19]),g[0]&1081344&&(_.img_width=s[15]||s[20]),g[0]&540672&&(_.img_height=s[14]||s[19]),g[0]&4096&&(_.mode=s[12]),!n&&g[0]&131072&&(n=!0,_.brush_radius=s[17],Y(()=>n=!1)),!i&&g[0]&4194304&&(i=!0,_.brush_color=s[22],Y(()=>i=!1)),e.$set(_)},i(s){l||(w(e.$$.fragment,s),l=!0)},o(s){I(e.$$.fragment,s),l=!1},d(s){j(e,s)}}}function mn(t){let e,n,i,l;const u=[hn,cn,_n,fn,an],r=[];function o(s,g){return s[0]===null&&!s[21]||s[8]?0:s[1]==="select"?1:s[1]==="editor"?2:(s[1]==="sketch"||s[1]==="color-sketch")&&(s[0]!==null||s[21])?3:4}return e=o(t),n=r[e]=u[e](t),{c(){n.c(),i=ue()},m(s,g){r[e].m(s,g),y(s,i,g),l=!0},p(s,g){let _=e;e=o(s),e===_?r[e].p(s,g):(X(),I(r[_],1,1,()=>{r[_]=null}),G(),n=r[e],n?n.p(s,g):(n=r[e]=u[e](s),n.c()),w(n,1),n.m(i.parentNode,i))},i(s){l||(w(n),l=!0)},o(s){I(n),l=!1},d(s){r[e].d(s),s&&C(i)}}}function gn(t){let e,n,i,l,u,r,o;e=new wt({props:{show_label:t[3],Icon:t[4]==="canvas"?xe:De,label:t[2]||(t[4]==="canvas"?"Sketch":"Image")}});const s=[on,un,sn,rn,ln,nn,tn],g=[];function _(m,a){return m[4]==="upload"?0:m[4]==="canvas"?1:m[0]===null&&!m[21]||m[8]?2:m[1]==="select"?3:m[1]==="editor"?4:(m[1]==="sketch"||m[1]==="color-sketch")&&(m[0]!==null||m[21])?5:6}return l=_(t),u=g[l]=s[l](t),{c(){T(e.$$.fragment),n=U(),i=L("div"),u.c(),d(i,"data-testid","image"),Ve(()=>t[56].call(i)),q(i,"bg-gray-200",t[0]),q(i,"h-60",t[4]!=="webcam"||t[1]==="sketch"||t[1]==="color-sketch")},m(m,a){B(e,m,a),y(m,n,a),y(m,i,a),g[l].m(i,null),r=pt(i,t[56].bind(i)),o=!0},p(m,a){const f={};a[0]&8&&(f.show_label=m[3]),a[0]&16&&(f.Icon=m[4]==="canvas"?xe:De),a[0]&20&&(f.label=m[2]||(m[4]==="canvas"?"Sketch":"Image")),e.$set(f);let p=l;l=_(m),l===p?g[l].p(m,a):(X(),I(g[p],1,1,()=>{g[p]=null}),G(),u=g[l],u?u.p(m,a):(u=g[l]=s[l](m),u.c()),w(u,1),u.m(i,null)),a[0]&1&&q(i,"bg-gray-200",m[0]),a[0]&18&&q(i,"h-60",m[4]!=="webcam"||m[1]==="sketch"||m[1]==="color-sketch")},i(m){o||(w(e.$$.fragment,m),w(u),o=!0)},o(m){I(e.$$.fragment,m),I(u),o=!1},d(m){j(e,m),m&&C(n),m&&C(i),g[l].d(),r()}}}function dn(t,e,n){let i,{value:l}=e,{label:u=void 0}=e,{show_label:r}=e,{source:o="upload"}=e,{tool:s="editor"}=e,{drop_text:g="Drop an image file"}=e,{or_text:_="or"}=e,{upload_text:m="click to upload"}=e,{streaming:a=!1}=e,{pending:f=!1}=e,{mirror_webcam:p}=e,A;l&&(o==="upload"||o==="webcam")&&s==="sketch"&&(l={image:l,mask:null});function D({detail:h}){s==="color-sketch"?n(21,re=h):n(0,l=(o==="upload"||o==="webcam")&&s==="sketch"?{image:h,mask:null}:h),z("upload",h)}function ee({detail:h}){n(0,l=null),n(21,re=void 0),z("clear")}async function oe({detail:h},R){k==="mask"?o==="webcam"&&R?n(0,l={image:h,mask:null}):n(0,l={image:typeof l=="string"?l:l?.image||null,mask:h}):(o==="upload"||o==="webcam")&&s==="sketch"?n(0,l={image:h,mask:null}):n(0,l=h),await Se(),z(a?"stream":"edit")}const z=he();let b=!1;function P(h){const R=h.composedPath()[0];n(15,ne=R.naturalWidth),n(14,te=R.naturalHeight),n(16,ie=R.getBoundingClientRect().height)}async function J(){A.clear(),await Se(),n(0,l=null),n(21,re=void 0)}let te=0,ne=0,ie=0,N=20,k,K,ae,le,re;const Ue=h=>(ee(h),n(1,s="editor")),me=()=>n(1,s="select");function Fe(h){E[h?"unshift":"push"](()=>{K=h,n(18,K)})}function ke(h){E[h?"unshift":"push"](()=>{A=h,n(13,A)})}function Ne(h){N=h,n(17,N)}function pe(h){i=h,n(22,i),n(12,k),n(4,o),n(1,s)}const we=()=>A.undo();function Ae(h){N=h,n(17,N)}function Ie(h){i=h,n(22,i),n(12,k),n(4,o),n(1,s)}function fe(h){b=h,n(11,b)}const ye=()=>A.undo(),Ce=()=>A.clear();function ve(h){N=h,n(17,N)}function Me(h){i=h,n(22,i),n(12,k),n(4,o),n(1,s)}function ze(h){N=h,n(17,N)}function Te(h){i=h,n(22,i),n(12,k),n(4,o),n(1,s)}function se(h){E[h?"unshift":"push"](()=>{A=h,n(13,A)})}const _e=h=>s==="color-sketch"?D(h):oe(h,!0);function Be(h){ce.call(this,t,h)}const ge=h=>(ee(h),n(1,s="editor")),qe=()=>n(1,s="select");function je(h){E[h?"unshift":"push"](()=>{K=h,n(18,K)})}function Oe(h){E[h?"unshift":"push"](()=>{A=h,n(13,A)})}function We(h){N=h,n(17,N)}function Pe(h){i=h,n(22,i),n(12,k),n(4,o),n(1,s)}const Je=()=>A.undo();function c(h){N=h,n(17,N)}function v(h){i=h,n(22,i),n(12,k),n(4,o),n(1,s)}function M(){ae=this.offsetHeight,le=this.offsetWidth,n(19,ae),n(20,le)}return t.$$set=h=>{"value"in h&&n(0,l=h.value),"label"in h&&n(2,u=h.label),"show_label"in h&&n(3,r=h.show_label),"source"in h&&n(4,o=h.source),"tool"in h&&n(1,s=h.tool),"drop_text"in h&&n(5,g=h.drop_text),"or_text"in h&&n(6,_=h.or_text),"upload_text"in h&&n(7,m=h.upload_text),"streaming"in h&&n(8,a=h.streaming),"pending"in h&&n(9,f=h.pending),"mirror_webcam"in h&&n(10,p=h.mirror_webcam)},t.$$.update=()=>{t.$$.dirty[0]&1&&z("change",l),t.$$.dirty[0]&2048&&z("drag",b),t.$$.dirty[0]&18&&(o==="canvas"&&s==="sketch"?n(12,k="bw-sketch"):s==="color-sketch"?n(12,k="color-sketch"):(o==="upload"||o==="webcam")&&s==="sketch"?n(12,k="mask"):n(12,k="editor")),t.$$.dirty[0]&4096&&n(22,i=k=="mask"?"#000000":"#000"),t.$$.dirty[0]&1&&(l===null||l.image===null&&l.mask===null)&&n(21,re=void 0)},[l,s,u,r,o,g,_,m,a,f,p,b,k,A,te,ne,ie,N,K,ae,le,re,i,D,ee,oe,P,J,Ue,me,Fe,ke,Ne,pe,we,Ae,Ie,fe,ye,Ce,ve,Me,ze,Te,se,_e,Be,ge,qe,je,Oe,We,Pe,Je,c,v,M]}class bn extends ${constructor(e){super(),x(this,e,dn,gn,V,{value:0,label:2,show_label:3,source:4,tool:1,drop_text:5,or_text:6,upload_text:7,streaming:8,pending:9,mirror_webcam:10},null,[-1,-1])}}function kn(t){let e,n;return{c(){e=L("img"),d(e,"class","w-full h-full object-contain"),O(e.src,n=t[0])||d(e,"src",n),d(e,"alt","")},m(i,l){y(i,e,l)},p(i,l){l&1&&!O(e.src,n=i[0])&&d(e,"src",n)},i:F,o:F,d(i){i&&C(e)}}}function pn(t){let e,n,i,l;return i=new De({}),{c(){e=L("div"),n=L("div"),T(i.$$.fragment),d(n,"class","h-5 dark:text-white opacity-50"),d(e,"class","h-full min-h-[15rem] flex justify-center items-center")},m(u,r){y(u,e,r),S(e,n),B(i,n,null),l=!0},p:F,i(u){l||(w(i.$$.fragment,u),l=!0)},o(u){I(i.$$.fragment,u),l=!1},d(u){u&&C(e),j(i)}}}function wn(t){let e,n,i,l,u,r;e=new wt({props:{show_label:t[2],Icon:De,label:t[1]||"Image"}});const o=[pn,kn],s=[];function g(_,m){return _[0]===null?0:1}return i=g(t),l=s[i]=o[i](t),{c(){T(e.$$.fragment),n=U(),l.c(),u=ue()},m(_,m){B(e,_,m),y(_,n,m),s[i].m(_,m),y(_,u,m),r=!0},p(_,[m]){const a={};m&4&&(a.show_label=_[2]),m&2&&(a.label=_[1]||"Image"),e.$set(a);let f=i;i=g(_),i===f?s[i].p(_,m):(X(),I(s[f],1,1,()=>{s[f]=null}),G(),l=s[i],l?l.p(_,m):(l=s[i]=o[i](_),l.c()),w(l,1),l.m(u.parentNode,u))},i(_){r||(w(e.$$.fragment,_),w(l),r=!0)},o(_){I(e.$$.fragment,_),I(l),r=!1},d(_){j(e,_),_&&C(n),s[i].d(_),_&&C(u)}}}function An(t,e,n){let{value:i}=e,{label:l=void 0}=e,{show_label:u}=e;const r=he();return t.$$set=o=>{"value"in o&&n(0,i=o.value),"label"in o&&n(1,l=o.label),"show_label"in o&&n(2,u=o.show_label)},t.$$.update=()=>{t.$$.dirty&1&&i&&r("change",i)},[i,l,u]}class In extends ${constructor(e){super(),x(this,e,An,wn,V,{value:0,label:1,show_label:2})}}function yn(t){let e,n,i;function l(r){t[15](r)}let u={source:t[4],tool:t[5],label:t[6],show_label:t[7],pending:t[9],streaming:t[8],drop_text:t[14]("interface.drop_image"),or_text:t[14]("or"),upload_text:t[14]("interface.click_to_upload"),mirror_webcam:t[11]};return t[0]!==void 0&&(u.value=t[0]),e=new bn({props:u}),E.push(()=>H(e,"value",l)),e.$on("edit",t[16]),e.$on("clear",t[17]),e.$on("change",t[18]),e.$on("stream",t[19]),e.$on("drag",t[20]),e.$on("upload",t[21]),e.$on("error",t[22]),{c(){T(e.$$.fragment)},m(r,o){B(e,r,o),i=!0},p(r,o){const s={};o&16&&(s.source=r[4]),o&32&&(s.tool=r[5]),o&64&&(s.label=r[6]),o&128&&(s.show_label=r[7]),o&512&&(s.pending=r[9]),o&256&&(s.streaming=r[8]),o&16384&&(s.drop_text=r[14]("interface.drop_image")),o&16384&&(s.or_text=r[14]("or")),o&16384&&(s.upload_text=r[14]("interface.click_to_upload")),o&2048&&(s.mirror_webcam=r[11]),!n&&o&1&&(n=!0,s.value=r[0],Y(()=>n=!1)),e.$set(s)},i(r){i||(w(e.$$.fragment,r),i=!0)},o(r){I(e.$$.fragment,r),i=!1},d(r){j(e,r)}}}function Cn(t){let e,n;return e=new In({props:{value:t[0],label:t[6],show_label:t[7]}}),{c(){T(e.$$.fragment)},m(i,l){B(e,i,l),n=!0},p(i,l){const u={};l&1&&(u.value=i[0]),l&64&&(u.label=i[6]),l&128&&(u.show_label=i[7]),e.$set(u)},i(i){n||(w(e.$$.fragment,i),n=!0)},o(i){I(e.$$.fragment,i),n=!1},d(i){j(e,i)}}}function vn(t){let e,n,i,l,u,r;const o=[t[1]];let s={};for(let a=0;a{_[A]=null}),G(),l=_[i],l?l.p(a,f):(l=_[i]=g[i](a),l.c()),w(l,1),l.m(u.parentNode,u))},i(a){r||(w(e.$$.fragment,a),w(l),r=!0)},o(a){I(e.$$.fragment,a),I(l),r=!1},d(a){j(e,a),a&&C(n),_[i].d(a),a&&C(u)}}}function Mn(t){let e,n;return e=new Mt({props:{visible:t[3],variant:t[12]==="dynamic"&&t[0]===null&&t[4]==="upload"?"dashed":"solid",color:t[13]?"green":"grey",padding:!1,elem_id:t[2],style:{height:t[10].height,width:t[10].width},$$slots:{default:[vn]},$$scope:{ctx:t}}}),{c(){T(e.$$.fragment)},m(i,l){B(e,i,l),n=!0},p(i,[l]){const u={};l&8&&(u.visible=i[3]),l&4113&&(u.variant=i[12]==="dynamic"&&i[0]===null&&i[4]==="upload"?"dashed":"solid"),l&8192&&(u.color=i[13]?"green":"grey"),l&4&&(u.elem_id=i[2]),l&1024&&(u.style={height:i[10].height,width:i[10].width}),l&16808947&&(u.$$scope={dirty:l,ctx:i}),e.$set(u)},i(i){n||(w(e.$$.fragment,i),n=!0)},o(i){I(e.$$.fragment,i),n=!1},d(i){j(e,i)}}}function zn(t,e,n){let i;zt(t,Tt,k=>n(14,i=k));let{elem_id:l=""}=e,{visible:u=!0}=e,{value:r=null}=e,{source:o="upload"}=e,{tool:s="editor"}=e,{label:g}=e,{show_label:_}=e,{streaming:m}=e,{pending:a}=e,{style:f={}}=e,{mirror_webcam:p}=e,{loading_status:A}=e,{mode:D}=e;const ee=he();let oe;function z(k){r=k,n(0,r)}function b(k){ce.call(this,t,k)}function P(k){ce.call(this,t,k)}function J(k){ce.call(this,t,k)}function te(k){ce.call(this,t,k)}const ne=({detail:k})=>n(13,oe=k);function ie(k){ce.call(this,t,k)}const N=({detail:k})=>{n(1,A=A||{}),n(1,A.status="error",A),n(1,A.message=k,A)};return t.$$set=k=>{"elem_id"in k&&n(2,l=k.elem_id),"visible"in k&&n(3,u=k.visible),"value"in k&&n(0,r=k.value),"source"in k&&n(4,o=k.source),"tool"in k&&n(5,s=k.tool),"label"in k&&n(6,g=k.label),"show_label"in k&&n(7,_=k.show_label),"streaming"in k&&n(8,m=k.streaming),"pending"in k&&n(9,a=k.pending),"style"in k&&n(10,f=k.style),"mirror_webcam"in k&&n(11,p=k.mirror_webcam),"loading_status"in k&&n(1,A=k.loading_status),"mode"in k&&n(12,D=k.mode)},t.$$.update=()=>{t.$$.dirty&1&&n(0,r=r||null),t.$$.dirty&1&&ee("change")},[r,A,l,u,o,s,g,_,m,a,f,p,D,oe,i,z,b,P,J,te,ne,ie,N]}class Tn extends ${constructor(e){super(),x(this,e,zn,Mn,V,{elem_id:2,visible:3,value:0,source:4,tool:5,label:6,show_label:7,streaming:8,pending:9,style:10,mirror_webcam:11,loading_status:1,mode:12})}}var Ln=Tn;const Un=["static","dynamic"],Fn=t=>({type:"string",description:"image data as base64 string",example_data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACklEQVR4nGMAAQAABQABDQottAAAAABJRU5ErkJggg=="});export{Ln as Component,On as ExampleComponent,Fn as document,Un as modes}; +//# sourceMappingURL=index.2b8a022e.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.2b8a022e.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.2b8a022e.js.map new file mode 100644 index 0000000000000000000000000000000000000000..ab0188e5839f12da6272111a5755838c6dec6ed8 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.2b8a022e.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.2b8a022e.js","sources":["../../../../ui/packages/icons/src/Brush.svelte","../../../../ui/packages/icons/src/Color.svelte","../../../../ui/packages/icons/src/Sketch.svelte","../../../../ui/packages/image/src/Cropper.svelte","../../../../ui/node_modules/.pnpm/lazy-brush@1.0.1/node_modules/lazy-brush/src/Point.js","../../../../ui/node_modules/.pnpm/lazy-brush@1.0.1/node_modules/lazy-brush/src/LazyPoint.js","../../../../ui/node_modules/.pnpm/lazy-brush@1.0.1/node_modules/lazy-brush/src/LazyBrush.js","../../../../ui/packages/image/src/Sketch.svelte","../../../../ui/packages/image/src/ModifySketch.svelte","../../../../ui/packages/image/src/SketchSettings.svelte","../../../../ui/packages/image/src/Image.svelte","../../../../ui/packages/image/src/StaticImage.svelte","../../../../ui/packages/app/src/components/Image/Image.svelte","../../../../ui/packages/app/src/components/Image/index.ts"],"sourcesContent":["\n","\n","\n","\n\n\"\"\n","class Point {\n /**\n *\n * @param {number} x\n * @param {number} y\n */\n constructor(x, y) {\n this.x = x\n this.y = y\n }\n}\n\nexport default Point\n","import Point from './Point'\n\nclass LazyPoint extends Point {\n /**\n * Update the x and y values\n *\n * @param {Point} point\n */\n update (point) {\n this.x = point.x\n this.y = point.y\n }\n\n /**\n * Move the point to another position using an angle and distance\n *\n * @param {number} angle The angle in radians\n * @param {number} distance How much the point should be moved\n */\n moveByAngle (angle, distance) {\n // Rotate the angle based on the browser coordinate system ([0,0] in the top left)\n const angleRotated = angle + (Math.PI / 2)\n\n this.x = this.x + (Math.sin(angleRotated) * distance),\n this.y = this.y - (Math.cos(angleRotated) * distance)\n }\n\n /**\n * Check if this point is the same as another point\n *\n * @param {Point} point\n * @returns {boolean}\n */\n equalsTo (point) {\n return this.x === point.x && this.y === point.y\n }\n\n /**\n * Get the difference for x and y axis to another point\n *\n * @param {Point} point\n * @returns {Point}\n */\n getDifferenceTo (point) {\n return new Point(this.x - point.x, this.y - point.y)\n }\n\n /**\n * Calculate distance to another point\n *\n * @param {Point} point\n * @returns {Point}\n */\n getDistanceTo (point) {\n const diff = this.getDifferenceTo(point)\n\n return Math.sqrt(Math.pow(diff.x, 2) + Math.pow(diff.y, 2))\n }\n\n /**\n * Calculate the angle to another point\n *\n * @param {Point} point\n * @returns {Point}\n */\n getAngleTo (point) {\n const diff = this.getDifferenceTo(point)\n\n return Math.atan2(diff.y, diff.x)\n }\n\n /**\n * Return a simple object with x and y properties\n *\n * @returns {object}\n */\n toObject () {\n return {\n x: this.x,\n y: this.y\n }\n }\n}\n\nexport default LazyPoint\n","import LazyPoint from './LazyPoint'\nconst RADIUS_DEFAULT = 30\n\nclass LazyBrush {\n /**\n * constructor\n *\n * @param {object} settings\n * @param {number} settings.radius The radius for the lazy area\n * @param {boolean} settings.enabled\n */\n constructor ({ radius = RADIUS_DEFAULT, enabled = true, initialPoint = { x: 0, y: 0 }} = {}) {\n this.radius = radius\n this._isEnabled = enabled\n\n this.pointer = new LazyPoint(initialPoint.x, initialPoint.y)\n this.brush = new LazyPoint(initialPoint.x, initialPoint.y)\n\n this.angle = 0\n this.distance = 0\n this._hasMoved = false\n }\n\n /**\n * Enable lazy brush calculations.\n *\n */\n enable () {\n this._isEnabled = true\n }\n\n /**\n * Disable lazy brush calculations.\n *\n */\n disable () {\n this._isEnabled = false\n }\n\n /**\n * @returns {boolean}\n */\n isEnabled () {\n return this._isEnabled\n }\n\n /**\n * Update the radius\n *\n * @param {number} radius\n */\n setRadius (radius) {\n this.radius = radius\n }\n\n /**\n * Return the current radius\n *\n * @returns {number}\n */\n getRadius () {\n return this.radius\n }\n\n /**\n * Return the brush coordinates as a simple object\n *\n * @returns {object}\n */\n getBrushCoordinates () {\n return this.brush.toObject()\n }\n\n /**\n * Return the pointer coordinates as a simple object\n *\n * @returns {object}\n */\n getPointerCoordinates () {\n return this.pointer.toObject()\n }\n\n /**\n * Return the brush as a LazyPoint\n *\n * @returns {LazyPoint}\n */\n getBrush () {\n return this.brush\n }\n\n /**\n * Return the pointer as a LazyPoint\n *\n * @returns {LazyPoint}\n */\n getPointer () {\n return this.pointer\n }\n\n /**\n * Return the angle between pointer and brush\n *\n * @returns {number} Angle in radians\n */\n getAngle () {\n return this.angle\n }\n\n /**\n * Return the distance between pointer and brush\n *\n * @returns {number} Distance in pixels\n */\n getDistance () {\n return this.distance\n }\n\n /**\n * Return if the previous update has moved the brush.\n *\n * @returns {boolean} Whether the brush moved previously.\n */\n brushHasMoved () {\n return this._hasMoved\n }\n\n /**\n * Updates the pointer point and calculates the new brush point.\n *\n * @param {Point} newPointerPoint\n * @param {Object} options\n * @param {Boolean} options.both Force update pointer and brush\n * @returns {Boolean} Whether any of the two points changed\n */\n update (newPointerPoint, { both = false } = {}) {\n this._hasMoved = false\n if (this.pointer.equalsTo(newPointerPoint) && !both) {\n return false\n }\n\n this.pointer.update(newPointerPoint)\n\n if (both) {\n this._hasMoved = true\n this.brush.update(newPointerPoint)\n return true\n }\n\n if (this._isEnabled) {\n this.distance = this.pointer.getDistanceTo(this.brush)\n this.angle = this.pointer.getAngleTo(this.brush)\n\n if (this.distance > this.radius) {\n this.brush.moveByAngle(this.angle, this.distance - this.radius)\n this._hasMoved = true\n }\n } else {\n this.distance = 0\n this.angle = 0\n this.brush.update(newPointerPoint)\n this._hasMoved = true\n }\n\n return true\n }\n}\n\nexport default LazyBrush\n\n","\n\n\n\t{#if line_count === 0}\n\t\t\n\t\t\tStart drawing\n\t\t\n\t{/if}\n\t{#each canvas_types as { name, zIndex }}\n\t\t\n\t{/each}\n\n","\n\n
    \n\t dispatch(\"undo\")} />\n\t {\n\t\t\tdispatch(\"clear\");\n\t\t\tevent.stopPropagation();\n\t\t}}\n\t/>\n
    \n","\n\n
    \n\t\n\n\t\n\t\t (show_size = !show_size)}\n\t\t/>\n\t\t{#if show_size}\n\t\t\t\n\t\t{/if}\n\t\n\n\t{#if mode !== \"mask\"}\n\t\t\n\t\t\t (show_col = !show_col)}\n\t\t\t/>\n\t\t\t{#if show_col}\n\t\t\t\t\n\t\t\t{/if}\n\t\t\n\t{/if}\n
    \n","\n\n\n\n\n\t{#if source === \"upload\"}\n\t\t\n\t\t\t{#if (value === null && !static_image) || streaming}\n\t\t\t\t
    \n\t\t\t\t\t{drop_text}\n\t\t\t\t\t- {or_text} -\n\t\t\t\t\t{upload_text}\n\t\t\t\t
    \n\t\t\t{:else if tool === \"select\"}\n\t\t\t\t\n\t\t\t\t (handle_clear(e), (tool = \"editor\"))} />\n\t\t\t{:else if tool === \"editor\"}\n\t\t\t\t (tool = \"select\")}\n\t\t\t\t\ton:clear={handle_clear}\n\t\t\t\t\teditable\n\t\t\t\t/>\n\n\t\t\t\t\n\t\t\t{:else if (tool === \"sketch\" || tool === \"color-sketch\") && (value !== null || static_image)}\n\t\t\t\t{#key static_image}\n\t\t\t\t\t\n\t\t\t\t{/key}\n\t\t\t\t{#if img_width > 0}\n\t\t\t\t\t\n\t\t\t\t\t sketch.undo()}\n\t\t\t\t\t\ton:clear={handle_mask_clear}\n\t\t\t\t\t/>\n\t\t\t\t\t{#if tool === \"color-sketch\" || tool === \"sketch\"}\n\t\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t{/if}\n\t\t\t{:else}\n\t\t\t\t\n\t\t\t{/if}\n\t\t\n\t{:else if source === \"canvas\"}\n\t\t sketch.undo()}\n\t\t\ton:clear={() => sketch.clear()}\n\t\t/>\n\t\t{#if tool === \"color-sketch\"}\n\t\t\t\n\t\t{/if}\n\t\t\n\t{:else if (value === null && !static_image) || streaming}\n\t\t{#if source === \"webcam\" && !static_image}\n\t\t\t\n\t\t\t\t\ttool === \"color-sketch\" ? handle_upload(e) : handle_save(e, true)}\n\t\t\t\ton:stream={handle_save}\n\t\t\t\ton:error\n\t\t\t\t{streaming}\n\t\t\t\t{pending}\n\t\t\t\t{mirror_webcam}\n\t\t\t/>\n\t\t{/if}\n\t{:else if tool === \"select\"}\n\t\t\n\t\t (handle_clear(e), (tool = \"editor\"))} />\n\t{:else if tool === \"editor\"}\n\t\t (tool = \"select\")}\n\t\t\ton:clear={handle_clear}\n\t\t\teditable\n\t\t/>\n\n\t\t\n\t{:else if (tool === \"sketch\" || tool === \"color-sketch\") && (value !== null || static_image)}\n\t\t{#key static_image}\n\t\t\t\n\t\t{/key}\n\t\t{#if img_width > 0}\n\t\t\t\n\t\t\t sketch.undo()}\n\t\t\t\ton:clear={handle_mask_clear}\n\t\t\t/>\n\t\t\t{#if tool === \"color-sketch\" || tool === \"sketch\"}\n\t\t\t\t\n\t\t\t{/if}\n\t\t{/if}\n\t{:else}\n\t\t\n\t{/if}\n\n","\n\n\n{#if value === null}\n\t
    \n\t\t
    \n\t
    \n{:else}\n\t\"\"\n{/if}\n","\n\n\n\t\n\t{#if mode === \"static\"}\n\t\t\n\t{:else}\n\t\t (dragging = detail)}\n\t\t\ton:upload\n\t\t\ton:error={({ detail }) => {\n\t\t\t\tloading_status = loading_status || {};\n\t\t\t\tloading_status.status = \"error\";\n\t\t\t\tloading_status.message = detail;\n\t\t\t}}\n\t\t\t{label}\n\t\t\t{show_label}\n\t\t\t{pending}\n\t\t\t{streaming}\n\t\t\tdrop_text={$_(\"interface.drop_image\")}\n\t\t\tor_text={$_(\"or\")}\n\t\t\tupload_text={$_(\"interface.click_to_upload\")}\n\t\t\t{mirror_webcam}\n\t\t/>\n\t{/if}\n\n","export { default as Component } from \"./Image.svelte\";\nexport { default as ExampleComponent } from \"../Dataset/ExampleComponents/Image.svelte\";\nexport const modes = [\"static\", \"dynamic\"];\n\nexport const document = (config: Record) => ({\n\ttype: \"string\",\n\tdescription: \"image data as base64 string\",\n\texample_data:\n\t\t\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACklEQVR4nGMAAQAABQABDQottAAAAABJRU5ErkJggg==\"\n});\n"],"names":["ResizeObserver","SketchIcon"],"mappings":"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"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.3266627b.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.3266627b.js new file mode 100644 index 0000000000000000000000000000000000000000..30b2ecd427b93af23fd8f937c0c0fbc93b2f9c34 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.3266627b.js @@ -0,0 +1,2 @@ +import{S as A,i as B,s as j,p as Q,e as v,a as T,b as d,d as E,f as k,l as R,u as X,q as Z,r as G,j as q,k as C,n as w,A as H,F as D,Z as J,I as M,c as N,m as V,o as W,Q as Y,X as p,t as x,h as $,aa as ee,K as te}from"./index.cb50929e.js";function le(l){let e,i,n,u,c,_,r,f,b,m;const y=l[13].default,o=Q(y,l,l[12],null);return{c(){e=v("input"),c=T(),_=v("button"),o&&o.c(),d(e,"class","hidden-upload hidden"),d(e,"accept",l[5]),d(e,"type","file"),e.multiple=i=l[3]==="multiple"||void 0,d(e,"webkitdirectory",n=l[3]==="directory"||void 0),d(e,"mozdirectory",u=l[3]==="directory"||void 0),d(_,"class",r="gr-button gr-button-"+l[2]+" "+l[6]),d(_,"id",l[0]),E(_,"!hidden",!l[1])},m(s,t){k(s,e,t),l[14](e),k(s,c,t),k(s,_,t),o&&o.m(_,null),f=!0,b||(m=[R(e,"change",l[8]),R(_,"click",l[7])],b=!0)},p(s,[t]){(!f||t&32)&&d(e,"accept",s[5]),(!f||t&8&&i!==(i=s[3]==="multiple"||void 0))&&(e.multiple=i),(!f||t&8&&n!==(n=s[3]==="directory"||void 0))&&d(e,"webkitdirectory",n),(!f||t&8&&u!==(u=s[3]==="directory"||void 0))&&d(e,"mozdirectory",u),o&&o.p&&(!f||t&4096)&&X(o,y,s,s[12],f?G(y,s[12],t,null):Z(s[12]),null),(!f||t&68&&r!==(r="gr-button gr-button-"+s[2]+" "+s[6]))&&d(_,"class",r),(!f||t&1)&&d(_,"id",s[0]),t&70&&E(_,"!hidden",!s[1])},i(s){f||(q(o,s),f=!0)},o(s){C(o,s),f=!1},d(s){s&&w(e),l[14](null),s&&w(c),s&&w(_),o&&o.d(s),b=!1,H(m)}}}function ie(l,e,i){let n,{$$slots:u={},$$scope:c}=e,{style:_={}}=e,{elem_id:r=""}=e,{visible:f=!0}=e,{size:b="lg"}=e,{file_count:m}=e,{file_types:y=["file"]}=e,{include_file_metadata:o=!0}=e,s;const t=D();let F="";try{y.forEach(a=>i(5,F+=a+"/*, "))}catch(a){if(a instanceof TypeError)t("error","Please set file_types to a list.");else throw a}const S=()=>{s.click()},I=a=>{let h=Array.from(a);if(!(!a.length||!window.FileReader)){m==="single"&&(h=[a[0]]);var g=[];h.forEach((z,O)=>{let U=new FileReader;U.readAsDataURL(z),U.onloadend=function(){g[O]=o?{name:z.name,size:z.size,data:this.result}:this.result,g.filter(P=>P!==void 0).length===a.length&&t("load",m=="single"?g[0]:g)}})}},K=a=>{const h=a.target;!h.files||I(h.files)};function L(a){M[a?"unshift":"push"](()=>{s=a,i(4,s)})}return l.$$set=a=>{"style"in a&&i(9,_=a.style),"elem_id"in a&&i(0,r=a.elem_id),"visible"in a&&i(1,f=a.visible),"size"in a&&i(2,b=a.size),"file_count"in a&&i(3,m=a.file_count),"file_types"in a&&i(10,y=a.file_types),"include_file_metadata"in a&&i(11,o=a.include_file_metadata),"$$scope"in a&&i(12,c=a.$$scope)},l.$$.update=()=>{l.$$.dirty&512&&i(6,{classes:n}=J(_,["full_width"]),n)},[r,f,b,m,s,F,n,S,K,_,y,o,c,u,L]}class ne extends A{constructor(e){super(),B(this,e,ie,le,j,{style:9,elem_id:0,visible:1,size:2,file_count:3,file_types:10,include_file_metadata:11})}}function se(l){let e=l[6](l[3])+"",i;return{c(){i=x(e)},m(n,u){k(n,i,u)},p(n,u){u&72&&e!==(e=n[6](n[3])+"")&&$(i,e)},d(n){n&&w(i)}}}function ae(l){let e,i;return e=new ne({props:{elem_id:l[1],style:l[0],visible:l[2],file_count:l[4],file_types:l[5],$$slots:{default:[se]},$$scope:{ctx:l}}}),e.$on("click",l[9]),e.$on("load",l[7]),{c(){N(e.$$.fragment)},m(n,u){V(e,n,u),i=!0},p(n,[u]){const c={};u&2&&(c.elem_id=n[1]),u&1&&(c.style=n[0]),u&4&&(c.visible=n[2]),u&16&&(c.file_count=n[4]),u&32&&(c.file_types=n[5]),u&2120&&(c.$$scope={dirty:u,ctx:n}),e.$set(c)},i(n){i||(q(e.$$.fragment,n),i=!0)},o(n){C(e.$$.fragment,n),i=!1},d(n){W(e,n)}}}function ue(l,e,i){let n;Y(l,p,t=>i(6,n=t));let{style:u={}}=e,{elem_id:c=""}=e,{visible:_=!0}=e,{label:r}=e,{value:f}=e,{file_count:b}=e,{file_types:m=["file"]}=e;async function y({detail:t}){i(8,f=t),await ee(),o("change",f),o("upload",t)}const o=D();function s(t){te.call(this,l,t)}return l.$$set=t=>{"style"in t&&i(0,u=t.style),"elem_id"in t&&i(1,c=t.elem_id),"visible"in t&&i(2,_=t.visible),"label"in t&&i(3,r=t.label),"value"in t&&i(8,f=t.value),"file_count"in t&&i(4,b=t.file_count),"file_types"in t&&i(5,m=t.file_types)},[u,c,_,r,b,m,n,y,f,s]}class fe extends A{constructor(e){super(),B(this,e,ue,ae,j,{style:0,elem_id:1,visible:2,label:3,value:8,file_count:4,file_types:5})}}var oe=fe;const ce=["static"];export{oe as Component,ce as modes}; +//# sourceMappingURL=index.3266627b.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.3266627b.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.3266627b.js.map new file mode 100644 index 0000000000000000000000000000000000000000..639b71cc9644ff05d184fe3695fbb6ec97786d49 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.3266627b.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.3266627b.js","sources":["../../../../ui/packages/upload-button/src/UploadButton.svelte","../../../../ui/packages/app/src/components/UploadButton/UploadButton.svelte","../../../../ui/packages/app/src/components/UploadButton/index.ts"],"sourcesContent":["\n\n\n\n\n\t\n\n","\n\n\n\t{$_(label)}\n\n","export { default as Component } from \"./UploadButton.svelte\";\nexport const modes = [\"static\"];\n"],"names":[],"mappings":"saA2ES,sCAIE,OAAe,YAAc,+BACtB,OAAe,aAAe,MAAS,uBAC1C,OAAe,aAAe,MAAS,uCAMzB,SAC1B,eACE,qBAHY,cAbjB,2BAWA,iDANY,kBAOD,gDAVF,uBAIE,OAAe,YAAc,0CACtB,OAAe,aAAe,oDACjC,OAAe,aAAe,gJAMhB,SAC1B,2CACE,2BAHY,oKAhFL,eACA,UAAkB,OAClB,UAAmB,OACnB,OAAoB,SACpB,iBACA,cAA6B,MAAM,MACnC,wBAAwB,MAI/B,OACE,GAAW,OACb,GAAoB,OAEvB,EAAW,QAAS,OAAU,GAAqB,EAAO,MAAM,SACxD,MACJ,YAAe,WAClB,EAAS,QAAS,kCAAkC,YAE9C,QAIF,QACL,EAAc,SAGT,EAAa,OACd,GAAsB,MAAM,KAAK,CAAK,QACrC,EAAM,SAAW,OAAO,aAGzB,IAAe,UAClB,IAAU,EAAM,QAEb,MACJ,EAAO,SAAS,EAAG,QACd,MAAgB,YACpB,EAAU,cAAc,CAAC,EACzB,EAAU,qBACT,EAAc,GAAK,GAEhB,KAAM,EAAE,KACR,KAAM,EAAE,KACR,KAAM,KAAK,QAEV,KAAK,OAER,EAAc,OAAQ,GAAM,IAAM,MAAS,EAAE,SAAW,EAAM,QAE9D,EACC,OACA,GAAc,SAAW,EAAc,GAAK,CAAa,OAOxD,EAAuB,SACtB,GAAS,EAAE,QAEZ,EAAO,OACZ,EAAU,EAAO,KAAK,4CAQZ,wWA/DL,WAAY,EAAW,GAAQ,YAAY,kNCuBhD,KAAG,mEAAH,KAAG,iOAFK,yWA5BE,eACA,UAAkB,OAClB,UAAmB,OACnB,YACA,YACA,iBACA,cAA6B,MAAM,uBAEf,eAC9B,EAAQ,CAAM,OACR,MACN,EAAS,SAAU,CAAK,EACxB,EAAS,SAAU,CAAM,OAGpB,GAAW,kcCrBL,IAAQ,CAAC,QAAQ"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.3517cbba.css b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.3517cbba.css new file mode 100644 index 0000000000000000000000000000000000000000..8a986feb0fd82c371bc0dfbbbced8f43167c38aa --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.3517cbba.css @@ -0,0 +1 @@ +span.svelte-1cgkd5k{text-shadow:0 0 8px rgba(0,0,0,.5)}progress.svelte-1cgkd5k::-webkit-progress-bar{border-radius:2px;background-color:#fff3;overflow:hidden}progress.svelte-1cgkd5k::-webkit-progress-value{background-color:#ffffffe6}.mirror.svelte-1cgkd5k{transform:scaleX(-1)}.wrap.svelte-1cgkd5k{width:calc(100% - .75rem)} diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.51ec63c2.css b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.51ec63c2.css new file mode 100644 index 0000000000000000000000000000000000000000..ced0526513f112de5c907e8123f766e9d33aff9a --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.51ec63c2.css @@ -0,0 +1 @@ +*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:Source Sans Pro,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[type=text],[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select{appearance:none;background-color:#fff;border-color:#6b7280;border-width:1px;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem;--tw-shadow: 0 0 #0000}[type=text]:focus,[type=email]:focus,[type=url]:focus,[type=password]:focus,[type=number]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=month]:focus,[type=search]:focus,[type=tel]:focus,[type=time]:focus,[type=week]:focus,[multiple]:focus,textarea:focus,select:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: #2563eb;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#2563eb}input::placeholder,textarea::placeholder{color:#6b7280;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;color-adjust:exact}[multiple]{background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;padding-right:.75rem;color-adjust:unset}[type=checkbox],[type=radio]{appearance:none;padding:0;color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;user-select:none;flex-shrink:0;height:1rem;width:1rem;color:#2563eb;background-color:#fff;border-color:#6b7280;border-width:1px;--tw-shadow: 0 0 #0000}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 2px;--tw-ring-offset-color: #fff;--tw-ring-color: #2563eb;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}[type=checkbox]:checked,[type=radio]:checked{border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}[type=checkbox]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}[type=radio]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}[type=checkbox]:checked:hover,[type=checkbox]:checked:focus,[type=radio]:checked:hover,[type=radio]:checked:focus{border-color:transparent;background-color:currentColor}[type=checkbox]:indeterminate{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}[type=checkbox]:indeterminate:hover,[type=checkbox]:indeterminate:focus{border-color:transparent;background-color:currentColor}[type=file]{background:unset;border-color:inherit;border-width:0;border-radius:0;padding:0;font-size:unset;line-height:inherit}[type=file]:focus{outline:1px auto -webkit-focus-ring-color}.bg-gray-950{background-color:#0b0f19}.dark{background-color:#0b0f19;--tw-bg-opacity: 1;background-color:rgb(11 15 25 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.dark .text-gray-500,.dark .text-gray-600,.dark .\!text-gray-500{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.dark .text-gray-700,.dark .text-gray-800,.dark .text-gray-900,.dark .\!text-gray-700,.dark .\!text-gray-800{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.dark .border,.dark .border-gray-100,.dark .border-gray-200,.dark .border-gray-300,.dark .\!border,.dark .\!border-gray-300{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.dark .bg-white{background-color:#0b0f19;--tw-bg-opacity: 1;background-color:rgb(11 15 25 / var(--tw-bg-opacity))}.dark .bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.dark .bg-gray-200,.dark .\!bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.unequal-height{align-items:flex-start}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}.\!container{width:100%!important}@media (min-width: 640px){.container{max-width:640px}.\!container{max-width:640px!important}}@media (min-width: 768px){.container{max-width:768px}.\!container{max-width:768px!important}}@media (min-width: 1024px){.container{max-width:1024px}.\!container{max-width:1024px!important}}@media (min-width: 1280px){.container{max-width:1280px}.\!container{max-width:1280px!important}}@media (min-width: 1536px){.container{max-width:1536px}.\!container{max-width:1536px!important}}.gr-form>.gr-block{border-radius:0;border-width:0px;--tw-shadow: 0 0 #0000 !important;--tw-shadow-colored: 0 0 #0000 !important;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)!important}.row>*,.row>.gr-form>*{min-width:min(160px,100%)}.\!row>*,.\!row>.gr-form>*{min-width:min(160px,100%)!important}.row>*,.row>.gr-form>*{flex:1 1 0%}.\!row>*,.\!row>.gr-form>*{flex:1 1 0%}.col>*,.col>.gr-form>*{width:100%}.gr-compact>*,.gr-compact .gr-box{border-radius:0!important;border-width:0px!important}.scroll-hide{-ms-overflow-style:none;scrollbar-width:none}.scroll-hide::-webkit-scrollbar{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.\!visible{visibility:visible!important}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.\!absolute{position:absolute!important}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-2{inset:.5rem}.inset-x-0{left:0;right:0}.right-6{right:1.5rem}.top-5{top:1.25rem}.top-0{top:0}.bottom-\[50px\]{bottom:50px}.bottom-0{bottom:0}.left-0{left:0}.right-0{right:0}.top-7{top:1.75rem}.left-4{left:1rem}.right-4{right:1rem}.top-2{top:.5rem}.right-2{right:.5rem}.top-10{top:2.5rem}.top-\[2px\]{top:2px}.top-6{top:1.5rem}.top-\[-3px\]{top:-3px}.bottom-2{bottom:.5rem}.isolate{isolation:isolate}.z-50{z-index:50}.z-10{z-index:10}.z-\[5\]{z-index:5}.z-20{z-index:20}.z-\[100\]{z-index:100}.z-40{z-index:40}.m-12{margin:3rem}.\!m-0{margin:0!important}.m-auto{margin:auto}.m-1{margin:.25rem}.m-1\.5{margin:.375rem}.m-0{margin:0}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-0{margin-top:0;margin-bottom:0}.mx-auto{margin-left:auto;margin-right:auto}.mx-1{margin-left:.25rem;margin-right:.25rem}.my-4{margin-top:1rem;margin-bottom:1rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.\!mt-0{margin-top:0!important}.\!mb-0{margin-bottom:0!important}.\!ml-0{margin-left:0!important}.\!mr-0{margin-right:0!important}.mr-1{margin-right:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-1{margin-bottom:.25rem}.mr-2{margin-right:.5rem}.mb-6{margin-bottom:1.5rem}.ml-2{margin-left:.5rem}.mt-6{margin-top:1.5rem}.mb-3{margin-bottom:.75rem}.mt-4{margin-top:1rem}.ml-auto{margin-left:auto}.mt-8{margin-top:2rem}.mr-1\.5{margin-right:.375rem}.mb-4{margin-bottom:1rem}.mb-2{margin-bottom:.5rem}.mt-7{margin-top:1.75rem}.mt-3{margin-top:.75rem}.mb-7{margin-bottom:1.75rem}.mr-\[-4px\]{margin-right:-4px}.mt-\[0\.05rem\]{margin-top:.05rem}.mr-0\.5{margin-right:.125rem}.mr-0{margin-right:0}.mt-10{margin-top:2.5rem}.-mb-\[2px\]{margin-bottom:-2px}.mt-1{margin-top:.25rem}.box-border{box-sizing:border-box}.block{display:block}.\!block{display:block!important}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.\!hidden{display:none!important}.aspect-square{aspect-ratio:1 / 1}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-screen{height:100vh}.h-full{height:100%}.h-5{height:1.25rem}.h-\[60px\]{height:60px}.\!h-9{height:2.25rem!important}.h-7{height:1.75rem}.h-96{height:24rem}.h-60{height:15rem}.h-0{height:0px}.h-\[12px\]{height:12px}.h-\[60\%\]{height:60%}.h-14{height:3.5rem}.h-6{height:1.5rem}.h-\[40vh\]{height:40vh}.h-10{height:2.5rem}.h-2\/4{height:50%}.h-20{height:5rem}.h-2{height:.5rem}.h-\[50\%\]{height:50%}.h-4{height:1rem}.h-3{height:.75rem}.max-h-\[55vh\]{max-height:55vh}.max-h-96{max-height:24rem}.max-h-60{max-height:15rem}.max-h-\[30rem\]{max-height:30rem}.max-h-\[15rem\]{max-height:15rem}.min-h-\[350px\]{min-height:350px}.min-h-screen{min-height:100vh}.min-h-\[15rem\]{min-height:15rem}.min-h-\[6rem\]{min-height:6rem}.min-h-\[8rem\]{min-height:8rem}.min-h-\[200px\]{min-height:200px}.min-h-\[16rem\]{min-height:16rem}.min-h-\[2\.3rem\]{min-height:2.3rem}.min-h-\[10rem\]{min-height:10rem}.w-3\.5{width:.875rem}.w-3{width:.75rem}.w-1\.5{width:.375rem}.w-1{width:.25rem}.w-40{width:10rem}.w-full{width:100%}.w-2\.5{width:.625rem}.w-2{width:.5rem}.w-screen{width:100vw}.\!w-9{width:2.25rem!important}.w-\[12px\]{width:12px}.w-5{width:1.25rem}.w-\[60\%\]{width:60%}.w-6{width:1.5rem}.w-3\/12{width:25%}.w-5\/12{width:41.666667%}.w-10{width:2.5rem}.w-2\/4{width:50%}.w-0{width:0px}.w-20{width:5rem}.w-4{width:1rem}.max-w-full{max-width:100%}.max-w-none{max-width:none}.flex-1{flex:1 1 0%}.\!flex-none{flex:none!important}.flex-none{flex:none}.shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.flex-grow,.grow{flex-grow:1}.grow-0{flex-grow:0}.\!grow-0{flex-grow:0!important}.table-auto{table-layout:auto}.border-collapse{border-collapse:collapse}.origin-left{transform-origin:left}.translate-x-px{--tw-translate-x: 1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-90{--tw-scale-x: .9;--tw-scale-y: .9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-x-\[-1\]{--tw-scale-x: -1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-scale-y-\[1\]{--tw-scale-y: -1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\!transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}@keyframes ping{75%,to{transform:scale(2);opacity:0}}.animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}.cursor-pointer{cursor:pointer}.\!cursor-not-allowed{cursor:not-allowed!important}.cursor-default{cursor:default}.cursor-crosshair{cursor:crosshair}.cursor-move{cursor:move}.cursor-col-resize{cursor:col-resize}.cursor-row-resize{cursor:row-resize}.cursor-ns-resize{cursor:ns-resize}.cursor-ew-resize{cursor:ew-resize}.cursor-sw-resize{cursor:sw-resize}.cursor-s-resize{cursor:s-resize}.cursor-se-resize{cursor:se-resize}.cursor-w-resize{cursor:w-resize}.cursor-e-resize{cursor:e-resize}.cursor-nw-resize{cursor:nw-resize}.cursor-n-resize{cursor:n-resize}.cursor-ne-resize{cursor:ne-resize}.cursor-grab{cursor:grab}.touch-none{touch-action:none}.select-none{user-select:none}.resize{resize:both}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-6{gap:1.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-2{gap:.5rem}.gap-px{gap:1px}.gap-1\.5{gap:.375rem}.gap-1{gap:.25rem}.gap-0{gap:0px}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.divide-x>:not([hidden])~:not([hidden]){--tw-divide-x-reverse: 0;border-right-width:calc(1px * var(--tw-divide-x-reverse));border-left-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}.place-self-start{place-self:start}.self-center{align-self:center}.justify-self-center{justify-self:center}.overflow-hidden{overflow:hidden}.overflow-clip{overflow:clip}.\!overflow-visible{overflow:visible!important}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-scroll{overflow-x:scroll}.overflow-y-scroll{overflow-y:scroll}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.rounded-sm{border-radius:.125rem}.rounded-\[22px\]{border-radius:22px}.rounded-none{border-radius:0}.\!rounded-none{border-radius:0!important}.\!rounded-lg{border-radius:.5rem!important}.rounded-md{border-radius:.375rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.\!rounded-br-none{border-bottom-right-radius:0!important}.\!rounded-br-lg{border-bottom-right-radius:.5rem!important}.\!rounded-bl-none{border-bottom-left-radius:0!important}.\!rounded-bl-lg{border-bottom-left-radius:.5rem!important}.\!rounded-tr-none{border-top-right-radius:0!important}.\!rounded-tr-lg{border-top-right-radius:.5rem!important}.\!rounded-tl-none{border-top-left-radius:0!important}.\!rounded-tl-lg{border-top-left-radius:.5rem!important}.rounded-tl-lg{border-top-left-radius:.5rem}.rounded-br-lg{border-bottom-right-radius:.5rem}.rounded-br-none{border-bottom-right-radius:0}.rounded-bl-none{border-bottom-left-radius:0}.rounded-bl-lg{border-bottom-left-radius:.5rem}.rounded-tr-lg{border-top-right-radius:.5rem}.border{border-width:1px}.border-2{border-width:2px}.\!border-0{border-width:0px!important}.border-0{border-width:0px}.\!border{border-width:1px!important}.\!border-t-0{border-top-width:0px!important}.\!border-b-0{border-bottom-width:0px!important}.\!border-l-0{border-left-width:0px!important}.\!border-r-0{border-right-width:0px!important}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-t-0{border-top-width:0px}.border-b-2{border-bottom-width:2px}.border-b-0{border-bottom-width:0px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-none{border-style:none}.\!border-none{border-style:none!important}.border-gray-100{--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity))}.border-orange-200{--tw-border-opacity: 1;border-color:rgb(255 216 180 / var(--tw-border-opacity))}.border-gray-400{--tw-border-opacity: 1;border-color:rgb(156 163 175 / var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.border-black{--tw-border-opacity: 1;border-color:rgb(0 0 0 / var(--tw-border-opacity))}.border-orange-500{--tw-border-opacity: 1;border-color:rgb(255 124 0 / var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}.border-green-400{--tw-border-opacity: 1;border-color:rgb(74 222 128 / var(--tw-border-opacity))}.border-gray-200\/60{border-color:#e5e7eb99}.border-transparent{border-color:transparent}.border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity))}.\!border-red-300{--tw-border-opacity: 1 !important;border-color:rgb(252 165 165 / var(--tw-border-opacity))!important}.\!border-yellow-300{--tw-border-opacity: 1 !important;border-color:rgb(253 224 71 / var(--tw-border-opacity))!important}.\!border-green-300{--tw-border-opacity: 1 !important;border-color:rgb(134 239 172 / var(--tw-border-opacity))!important}.\!border-blue-300{--tw-border-opacity: 1 !important;border-color:rgb(147 197 253 / var(--tw-border-opacity))!important}.\!border-purple-300{--tw-border-opacity: 1 !important;border-color:rgb(216 180 254 / var(--tw-border-opacity))!important}.\!border-gray-300{--tw-border-opacity: 1 !important;border-color:rgb(209 213 219 / var(--tw-border-opacity))!important}.\!border-pink-300{--tw-border-opacity: 1 !important;border-color:rgb(249 168 212 / var(--tw-border-opacity))!important}.border-b-slate-300{--tw-border-opacity: 1;border-bottom-color:rgb(203 213 225 / var(--tw-border-opacity))}.border-r-slate-300{--tw-border-opacity: 1;border-right-color:rgb(203 213 225 / var(--tw-border-opacity))}.\!bg-red-200{--tw-bg-opacity: 1 !important;background-color:rgb(254 202 202 / var(--tw-bg-opacity))!important}.\!bg-green-200{--tw-bg-opacity: 1 !important;background-color:rgb(187 247 208 / var(--tw-bg-opacity))!important}.\!bg-blue-200{--tw-bg-opacity: 1 !important;background-color:rgb(191 219 254 / var(--tw-bg-opacity))!important}.\!bg-yellow-200{--tw-bg-opacity: 1 !important;background-color:rgb(254 240 138 / var(--tw-bg-opacity))!important}.\!bg-purple-200{--tw-bg-opacity: 1 !important;background-color:rgb(233 213 255 / var(--tw-bg-opacity))!important}.\!bg-teal-200{--tw-bg-opacity: 1 !important;background-color:rgb(153 246 228 / var(--tw-bg-opacity))!important}.\!bg-orange-200{--tw-bg-opacity: 1 !important;background-color:rgb(255 216 180 / var(--tw-bg-opacity))!important}.\!bg-cyan-200{--tw-bg-opacity: 1 !important;background-color:rgb(165 243 252 / var(--tw-bg-opacity))!important}.\!bg-lime-200{--tw-bg-opacity: 1 !important;background-color:rgb(217 249 157 / var(--tw-bg-opacity))!important}.\!bg-pink-200{--tw-bg-opacity: 1 !important;background-color:rgb(251 207 232 / var(--tw-bg-opacity))!important}.\!bg-gray-200{--tw-bg-opacity: 1 !important;background-color:rgb(229 231 235 / var(--tw-bg-opacity))!important}.bg-orange-100{--tw-bg-opacity: 1;background-color:rgb(255 229 204 / var(--tw-bg-opacity))}.bg-gray-300{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.bg-gray-200\/80{background-color:#e5e7ebcc}.bg-black\/50{background-color:#00000080}.bg-gray-950{--tw-bg-opacity: 1;background-color:rgb(11 15 25 / var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity))}.bg-white\/90{background-color:#ffffffe6}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity))}.bg-red-500\/10{background-color:#ef44441a}.bg-red-500\/5{background-color:#ef44440d}.\!bg-red-500\/10{background-color:#ef44441a!important}.bg-red-400{--tw-bg-opacity: 1;background-color:rgb(248 113 113 / var(--tw-bg-opacity))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity))}.bg-black\/90{background-color:#000000e6}.bg-transparent{background-color:transparent}.bg-orange-50{--tw-bg-opacity: 1;background-color:rgb(255 242 229 / var(--tw-bg-opacity))}.\!bg-transparent{background-color:transparent!important}.\!bg-red-100{--tw-bg-opacity: 1 !important;background-color:rgb(254 226 226 / var(--tw-bg-opacity))!important}.\!bg-yellow-100{--tw-bg-opacity: 1 !important;background-color:rgb(254 249 195 / var(--tw-bg-opacity))!important}.\!bg-green-100{--tw-bg-opacity: 1 !important;background-color:rgb(220 252 231 / var(--tw-bg-opacity))!important}.\!bg-blue-100{--tw-bg-opacity: 1 !important;background-color:rgb(219 234 254 / var(--tw-bg-opacity))!important}.\!bg-purple-100{--tw-bg-opacity: 1 !important;background-color:rgb(243 232 255 / var(--tw-bg-opacity))!important}.\!bg-gray-100{--tw-bg-opacity: 1 !important;background-color:rgb(243 244 246 / var(--tw-bg-opacity))!important}.\!bg-pink-100{--tw-bg-opacity: 1 !important;background-color:rgb(252 231 243 / var(--tw-bg-opacity))!important}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity))}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity))}.bg-amber-600{--tw-bg-opacity: 1;background-color:rgb(217 119 6 / var(--tw-bg-opacity))}.bg-blue-400{--tw-bg-opacity: 1;background-color:rgb(96 165 250 / var(--tw-bg-opacity))}.bg-opacity-20{--tw-bg-opacity: .2}.bg-opacity-80{--tw-bg-opacity: .8}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.from-orange-200\/20{--tw-gradient-from: rgb(255 216 180 / .2);--tw-gradient-to: rgb(255 216 180 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-red-500\/5{--tw-gradient-from: rgb(239 68 68 / .05);--tw-gradient-to: rgb(239 68 68 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-red-500\/10{--tw-gradient-from: rgb(239 68 68 / .1);--tw-gradient-to: rgb(239 68 68 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-orange-400{--tw-gradient-from: #FF9633;--tw-gradient-to: rgb(255 150 51 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-gray-50{--tw-gradient-from: #f9fafb;--tw-gradient-to: rgb(249 250 251 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-orange-200\/70{--tw-gradient-from: rgb(255 216 180 / .7);--tw-gradient-to: rgb(255 216 180 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-gray-100\/70{--tw-gradient-from: rgb(243 244 246 / .7);--tw-gradient-to: rgb(243 244 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-red-200\/70{--tw-gradient-from: rgb(254 202 202 / .7);--tw-gradient-to: rgb(254 202 202 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.\!from-red-100{--tw-gradient-from: #fee2e2 !important;--tw-gradient-to: rgb(254 226 226 / 0) !important;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important}.\!from-yellow-100{--tw-gradient-from: #fef9c3 !important;--tw-gradient-to: rgb(254 249 195 / 0) !important;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important}.\!from-green-100{--tw-gradient-from: #dcfce7 !important;--tw-gradient-to: rgb(220 252 231 / 0) !important;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important}.\!from-blue-100{--tw-gradient-from: #dbeafe !important;--tw-gradient-to: rgb(219 234 254 / 0) !important;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important}.\!from-purple-100{--tw-gradient-from: #f3e8ff !important;--tw-gradient-to: rgb(243 232 255 / 0) !important;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important}.\!from-gray-100{--tw-gradient-from: #f3f4f6 !important;--tw-gradient-to: rgb(243 244 246 / 0) !important;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important}.\!from-pink-100{--tw-gradient-from: #fce7f3 !important;--tw-gradient-to: rgb(252 231 243 / 0) !important;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important}.from-\[rgba\(255\,255\,255\,0\)\]{--tw-gradient-from: rgba(255,255,255,0);--tw-gradient-to: rgb(255 255 255 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-amber-400{--tw-gradient-from: #fbbf24;--tw-gradient-to: rgb(251 191 36 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-transparent{--tw-gradient-to: rgb(0 0 0 / 0);--tw-gradient-stops: var(--tw-gradient-from), transparent, var(--tw-gradient-to)}.to-transparent{--tw-gradient-to: transparent}.to-red-200\/10{--tw-gradient-to: rgb(254 202 202 / .1)}.to-orange-200{--tw-gradient-to: #FFD8B4}.to-white{--tw-gradient-to: #fff}.to-orange-300\/80{--tw-gradient-to: rgb(255 176 102 / .8)}.to-gray-200\/80{--tw-gradient-to: rgb(229 231 235 / .8)}.to-red-300\/80{--tw-gradient-to: rgb(252 165 165 / .8)}.\!to-red-200{--tw-gradient-to: #fecaca !important}.\!to-yellow-200{--tw-gradient-to: #fef08a !important}.\!to-green-200{--tw-gradient-to: #bbf7d0 !important}.\!to-blue-200{--tw-gradient-to: #bfdbfe !important}.\!to-purple-200{--tw-gradient-to: #e9d5ff !important}.\!to-gray-200{--tw-gradient-to: #e5e7eb !important}.\!to-pink-200{--tw-gradient-to: #fbcfe8 !important}.to-gray-50{--tw-gradient-to: #f9fafb}.to-amber-500{--tw-gradient-to: #f59e0b}.fill-current{fill:currentColor}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.object-fill{object-fit:fill}.p-6{padding:1.5rem}.p-4{padding:1rem}.\!p-8{padding:2rem!important}.p-3{padding:.75rem}.p-2{padding:.5rem}.p-1{padding:.25rem}.p-0{padding:0}.p-2\.5{padding:.625rem}.\!p-0{padding:0!important}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-1{padding-left:.25rem;padding-right:.25rem}.\!py-0{padding-top:0!important;padding-bottom:0!important}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-0{padding-top:0;padding-bottom:0}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.px-4{padding-left:1rem;padding-right:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.px-\[0\.325rem\]{padding-left:.325rem;padding-right:.325rem}.py-\[0\.05rem\]{padding-top:.05rem;padding-bottom:.05rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.px-\[0\.4rem\]{padding-left:.4rem;padding-right:.4rem}.pb-6{padding-bottom:1.5rem}.pt-6{padding-top:1.5rem}.pl-4{padding-left:1rem}.pr-1{padding-right:.25rem}.pt-2{padding-top:.5rem}.pb-\[0\.225rem\]{padding-bottom:.225rem}.pt-\[0\.15rem\]{padding-top:.15rem}.pb-1\.5{padding-bottom:.375rem}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pt-1\.5{padding-top:.375rem}.pt-1{padding-top:.25rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.align-middle{vertical-align:middle}.font-mono{font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:Source Sans Pro,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.text-sm{font-size:.875rem;line-height:1.25rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-xs{font-size:.75rem;line-height:1rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-base{font-size:1rem;line-height:1.5rem}.text-\[0\.855rem\]{font-size:.855rem}.text-\[10px\]{font-size:10px}.text-4xl{font-size:2.25rem;line-height:2.5rem}.font-semibold{font-weight:600}.font-bold{font-weight:700}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.ordinal{--tw-ordinal: ordinal;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-none{line-height:1}.leading-7{line-height:1.75rem}.leading-tight{line-height:1.25}.leading-snug{line-height:1.375}.\!text-red-500{--tw-text-opacity: 1 !important;color:rgb(239 68 68 / var(--tw-text-opacity))!important}.\!text-green-500{--tw-text-opacity: 1 !important;color:rgb(34 197 94 / var(--tw-text-opacity))!important}.\!text-blue-500{--tw-text-opacity: 1 !important;color:rgb(59 130 246 / var(--tw-text-opacity))!important}.\!text-yellow-500{--tw-text-opacity: 1 !important;color:rgb(234 179 8 / var(--tw-text-opacity))!important}.\!text-purple-500{--tw-text-opacity: 1 !important;color:rgb(168 85 247 / var(--tw-text-opacity))!important}.\!text-teal-500{--tw-text-opacity: 1 !important;color:rgb(20 184 166 / var(--tw-text-opacity))!important}.\!text-orange-500{--tw-text-opacity: 1 !important;color:rgb(255 124 0 / var(--tw-text-opacity))!important}.\!text-cyan-500{--tw-text-opacity: 1 !important;color:rgb(6 182 212 / var(--tw-text-opacity))!important}.\!text-lime-500{--tw-text-opacity: 1 !important;color:rgb(132 204 22 / var(--tw-text-opacity))!important}.\!text-pink-500{--tw-text-opacity: 1 !important;color:rgb(236 72 153 / var(--tw-text-opacity))!important}.\!text-gray-500{--tw-text-opacity: 1 !important;color:rgb(107 114 128 / var(--tw-text-opacity))!important}.\!text-gray-700{--tw-text-opacity: 1 !important;color:rgb(55 65 81 / var(--tw-text-opacity))!important}.text-orange-500{--tw-text-opacity: 1;color:rgb(255 124 0 / var(--tw-text-opacity))}.text-orange-600{--tw-text-opacity: 1;color:rgb(238 116 0 / var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.text-indigo-600{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity))}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity))}.\!text-gray-800{--tw-text-opacity: 1 !important;color:rgb(31 41 55 / var(--tw-text-opacity))!important}.underline{text-decoration-line:underline}.opacity-50{opacity:.5}.opacity-20{opacity:.2}.opacity-0{opacity:0}.opacity-80{opacity:.8}.opacity-75{opacity:.75}.opacity-40{opacity:.4}.opacity-90{opacity:.9}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-inner{--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.\!shadow-none{--tw-shadow: 0 0 #0000 !important;--tw-shadow-colored: 0 0 #0000 !important;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)!important}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-red-500\/10{--tw-shadow-color: rgb(239 68 68 / .1);--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.\!ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color) !important;--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color) !important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)!important}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-inset{--tw-ring-inset: inset}.ring-gray-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity))}.\!ring-orange-500{--tw-ring-opacity: 1 !important;--tw-ring-color: rgb(255 124 0 / var(--tw-ring-opacity)) !important}.ring-gray-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(229 231 235 / var(--tw-ring-opacity))}.ring-orange-500{--tw-ring-opacity: 1;--tw-ring-color: rgb(255 124 0 / var(--tw-ring-opacity))}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-lg{--tw-drop-shadow: drop-shadow(0 10px 8px rgb(0 0 0 / .04)) drop-shadow(0 4px 3px rgb(0 0 0 / .1));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert: invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.sepia{--tw-sepia: sepia(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.\!filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur{--tw-backdrop-blur: blur(8px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-75{transition-duration:75ms}.duration-500{transition-duration:.5s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.gradio-container{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:Source Sans Pro,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.cropper-container{direction:ltr;font-size:0;line-height:0;position:relative;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.cropper-container img{display:block;height:100%;image-orientation:0deg;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}.cropper-wrap-box,.cropper-canvas,.cropper-drag-box,.cropper-crop-box,.cropper-modal{inset:0;position:absolute}.cropper-wrap-box,.cropper-canvas{overflow:hidden}.cropper-drag-box{background-color:#fff;opacity:0}.cropper-modal{background-color:#000;opacity:.5}.cropper-view-box{display:block;height:100%;outline:1px solid #39f;outline-color:#3399ffbf;overflow:hidden;width:100%}.cropper-dashed{border:0 dashed #eee;display:block;opacity:.5;position:absolute}.cropper-dashed.dashed-h{border-bottom-width:1px;border-top-width:1px;height:calc(100% / 3);left:0;top:calc(100% / 3);width:100%}.cropper-dashed.dashed-v{border-left-width:1px;border-right-width:1px;height:100%;left:calc(100% / 3);top:0;width:calc(100% / 3)}.cropper-center{display:block;height:0;left:50%;opacity:.75;position:absolute;top:50%;width:0}.cropper-center:before,.cropper-center:after{background-color:#eee;content:" ";display:block;position:absolute}.cropper-center:before{height:1px;left:-3px;top:0;width:7px}.cropper-center:after{height:7px;left:0;top:-3px;width:1px}.cropper-face,.cropper-line,.cropper-point{display:block;height:100%;opacity:.1;position:absolute;width:100%}.cropper-face{background-color:#fff;left:0;top:0}.cropper-line{background-color:#39f}.cropper-line.line-e{cursor:ew-resize;right:-3px;top:0;width:5px}.cropper-line.line-n{cursor:ns-resize;height:5px;left:0;top:-3px}.cropper-line.line-w{cursor:ew-resize;left:-3px;top:0;width:5px}.cropper-line.line-s{bottom:-3px;cursor:ns-resize;height:5px;left:0}.cropper-point{background-color:#39f;height:5px;opacity:.75;width:5px}.cropper-point.point-e{cursor:ew-resize;margin-top:-3px;right:-3px;top:50%}.cropper-point.point-n{cursor:ns-resize;left:50%;margin-left:-3px;top:-3px}.cropper-point.point-w{cursor:ew-resize;left:-3px;margin-top:-3px;top:50%}.cropper-point.point-s{bottom:-3px;cursor:s-resize;left:50%;margin-left:-3px}.cropper-point.point-ne{cursor:nesw-resize;right:-3px;top:-3px}.cropper-point.point-nw{cursor:nwse-resize;left:-3px;top:-3px}.cropper-point.point-sw{bottom:-3px;cursor:nesw-resize;left:-3px}.cropper-point.point-se{bottom:-3px;cursor:nwse-resize;height:20px;opacity:1;right:-3px;width:20px}@media (min-width: 768px){.cropper-point.point-se{height:15px;width:15px}}@media (min-width: 992px){.cropper-point.point-se{height:10px;width:10px}}@media (min-width: 1200px){.cropper-point.point-se{height:5px;opacity:.75;width:5px}}.cropper-point.point-se:before{background-color:#39f;bottom:-50%;content:" ";display:block;height:200%;opacity:0;position:absolute;right:-50%;width:200%}.cropper-invisible{opacity:0}.cropper-bg{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC)}.cropper-hide{display:block;height:0;position:absolute;width:0}.cropper-hidden{display:none!important}.cropper-move{cursor:move}.cropper-crop{cursor:crosshair}.cropper-disabled .cropper-drag-box,.cropper-disabled .cropper-face,.cropper-disabled .cropper-line,.cropper-disabled .cropper-point{cursor:not-allowed}.placeholder\:text-gray-400::placeholder{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.first\:rounded-t:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.last\:mb-0:last-child{margin-bottom:0}.last\:rounded-b:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.last\:border-none:last-child{border-style:none}.dark .odd\:bg-gray-50:nth-child(odd){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.odd\:bg-gray-50:nth-child(odd){--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.checked\:shadow-inner:checked{--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus-within\:bg-orange-50:focus-within{--tw-bg-opacity: 1;background-color:rgb(255 242 229 / var(--tw-bg-opacity))}.focus-within\:ring-1:focus-within{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.dark .hover\:text-gray-500:hover{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.dark .hover\:text-gray-700:hover{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.dark .hover\:border-gray-300:hover{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.dark .hover\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.hover\:cursor-none:hover{cursor:none}.hover\:divide-orange-100:hover>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(255 229 204 / var(--tw-divide-opacity))}.hover\:border-gray-300:hover{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}.hover\:border-orange-400:hover{--tw-border-opacity: 1;border-color:rgb(255 150 51 / var(--tw-border-opacity))}.hover\:bg-orange-50:hover{--tw-bg-opacity: 1;background-color:rgb(255 242 229 / var(--tw-bg-opacity))}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.hover\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.hover\:from-gray-100:hover{--tw-gradient-from: #f3f4f6;--tw-gradient-to: rgb(243 244 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:to-orange-200\/90:hover{--tw-gradient-to: rgb(255 216 180 / .9)}.hover\:to-gray-100\/90:hover{--tw-gradient-to: rgb(243 244 246 / .9)}.hover\:to-red-200\/90:hover{--tw-gradient-to: rgb(254 202 202 / .9)}.hover\:text-gray-700:hover{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.hover\:text-orange-600:hover{--tw-text-opacity: 1;color:rgb(238 116 0 / var(--tw-text-opacity))}.hover\:text-gray-500:hover{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.hover\:text-orange-500:hover{--tw-text-opacity: 1;color:rgb(255 124 0 / var(--tw-text-opacity))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-20:hover{opacity:.2}.hover\:shadow-sm:hover{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-xl:hover{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow:hover{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:ring:hover{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.hover\:ring-1:hover{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.hover\:\!ring-orange-500:hover{--tw-ring-opacity: 1 !important;--tw-ring-color: rgb(255 124 0 / var(--tw-ring-opacity)) !important}.hover\:ring-orange-300:hover{--tw-ring-opacity: 1;--tw-ring-color: rgb(255 176 102 / var(--tw-ring-opacity))}.hover\:brightness-110:hover{--tw-brightness: brightness(1.1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.focus\:border-blue-300:focus{--tw-border-opacity: 1;border-color:rgb(147 197 253 / var(--tw-border-opacity))}.focus\:bg-gradient-to-b:focus{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.focus\:from-blue-100:focus{--tw-gradient-from: #dbeafe;--tw-gradient-to: rgb(219 234 254 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.focus\:to-blue-50:focus{--tw-gradient-to: #eff6ff}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-blue-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity))}.focus\:ring-blue-200:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(191 219 254 / var(--tw-ring-opacity))}.focus\:ring-opacity-50:focus{--tw-ring-opacity: .5}.focus\:ring-offset-0:focus{--tw-ring-offset-width: 0px}.dark .focus\:odd\:bg-white:nth-child(odd):focus{background-color:#0b0f19;--tw-bg-opacity: 1;background-color:rgb(11 15 25 / var(--tw-bg-opacity))}.focus\:odd\:bg-white:nth-child(odd):focus{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.active\:shadow-inner:active{--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:\!cursor-not-allowed:disabled{cursor:not-allowed!important}.disabled\:text-gray-400:disabled{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.group:last-child .group-last\:first\:rounded-bl-lg:first-child{border-bottom-left-radius:.5rem}.group:last-child .group-last\:last\:rounded-br-lg:last-child{border-bottom-right-radius:.5rem}.group:hover .group-hover\:border-orange-400{--tw-border-opacity: 1;border-color:rgb(255 150 51 / var(--tw-border-opacity))}.group:hover .group-hover\:from-orange-500{--tw-gradient-from: #FF7C00;--tw-gradient-to: rgb(255 124 0 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.group:hover .group-hover\:text-orange-500{--tw-text-opacity: 1;color:rgb(255 124 0 / var(--tw-text-opacity))}.group:hover .group-hover\:opacity-50{opacity:.5}.dark .dark\:bg-gray-950{background-color:#0b0f19}.dark .dark\:divide-gray-800>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(31 41 55 / var(--tw-divide-opacity))}.dark .dark\:divide-gray-700>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(55 65 81 / var(--tw-divide-opacity))}.dark .dark\:border-gray-900{--tw-border-opacity: 1;border-color:rgb(17 24 39 / var(--tw-border-opacity))}.dark .dark\:border-orange-600{--tw-border-opacity: 1;border-color:rgb(238 116 0 / var(--tw-border-opacity))}.dark .dark\:border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.dark .dark\:border-gray-800{--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity))}.dark .dark\:border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.dark .dark\:\!border-red-900{--tw-border-opacity: 1 !important;border-color:rgb(127 29 29 / var(--tw-border-opacity))!important}.dark .dark\:\!border-yellow-900{--tw-border-opacity: 1 !important;border-color:rgb(113 63 18 / var(--tw-border-opacity))!important}.dark .dark\:\!border-green-900{--tw-border-opacity: 1 !important;border-color:rgb(20 83 45 / var(--tw-border-opacity))!important}.dark .dark\:\!border-blue-900{--tw-border-opacity: 1 !important;border-color:rgb(30 58 138 / var(--tw-border-opacity))!important}.dark .dark\:\!border-purple-900{--tw-border-opacity: 1 !important;border-color:rgb(88 28 135 / var(--tw-border-opacity))!important}.dark .dark\:\!border-gray-900{--tw-border-opacity: 1 !important;border-color:rgb(17 24 39 / var(--tw-border-opacity))!important}.dark .dark\:\!border-pink-900{--tw-border-opacity: 1 !important;border-color:rgb(131 24 67 / var(--tw-border-opacity))!important}.dark .dark\:border-slate-300{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity))}.dark .dark\:border-b-slate-700{--tw-border-opacity: 1;border-bottom-color:rgb(51 65 85 / var(--tw-border-opacity))}.dark .dark\:border-r-slate-700{--tw-border-opacity: 1;border-right-color:rgb(51 65 85 / var(--tw-border-opacity))}.dark .dark\:\!bg-red-700{--tw-bg-opacity: 1 !important;background-color:rgb(185 28 28 / var(--tw-bg-opacity))!important}.dark .dark\:\!bg-green-700{--tw-bg-opacity: 1 !important;background-color:rgb(21 128 61 / var(--tw-bg-opacity))!important}.dark .dark\:\!bg-blue-700{--tw-bg-opacity: 1 !important;background-color:rgb(29 78 216 / var(--tw-bg-opacity))!important}.dark .dark\:\!bg-yellow-700{--tw-bg-opacity: 1 !important;background-color:rgb(161 98 7 / var(--tw-bg-opacity))!important}.dark .dark\:\!bg-purple-700{--tw-bg-opacity: 1 !important;background-color:rgb(126 34 206 / var(--tw-bg-opacity))!important}.dark .dark\:\!bg-teal-700{--tw-bg-opacity: 1 !important;background-color:rgb(15 118 110 / var(--tw-bg-opacity))!important}.dark .dark\:\!bg-orange-700{--tw-bg-opacity: 1 !important;background-color:rgb(206 100 0 / var(--tw-bg-opacity))!important}.dark .dark\:\!bg-cyan-700{--tw-bg-opacity: 1 !important;background-color:rgb(14 116 144 / var(--tw-bg-opacity))!important}.dark .dark\:\!bg-lime-700{--tw-bg-opacity: 1 !important;background-color:rgb(77 124 15 / var(--tw-bg-opacity))!important}.dark .dark\:\!bg-pink-700{--tw-bg-opacity: 1 !important;background-color:rgb(190 24 93 / var(--tw-bg-opacity))!important}.dark .dark\:\!bg-gray-700{--tw-bg-opacity: 1 !important;background-color:rgb(55 65 81 / var(--tw-bg-opacity))!important}.dark .dark\:bg-orange-400{--tw-bg-opacity: 1;background-color:rgb(255 150 51 / var(--tw-bg-opacity))}.dark .dark\:bg-gray-500{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.dark .dark\:bg-gray-400{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity))}.dark .dark\:bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.dark .dark\:bg-gray-600{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.dark .dark\:bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.dark .dark\:bg-gray-950{--tw-bg-opacity: 1;background-color:rgb(11 15 25 / var(--tw-bg-opacity))}.dark .dark\:bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.dark .dark\:bg-transparent{background-color:transparent}.dark .dark\:bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity))}.dark .dark\:bg-opacity-80{--tw-bg-opacity: .8}.dark .dark\:from-orange-200\/5{--tw-gradient-from: rgb(255 216 180 / .05);--tw-gradient-to: rgb(255 216 180 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark .dark\:from-orange-400{--tw-gradient-from: #FF9633;--tw-gradient-to: rgb(255 150 51 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark .dark\:from-gray-900{--tw-gradient-from: #111827;--tw-gradient-to: rgb(17 24 39 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark .dark\:from-orange-700{--tw-gradient-from: #CE6400;--tw-gradient-to: rgb(206 100 0 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark .dark\:from-gray-600{--tw-gradient-from: #4b5563;--tw-gradient-to: rgb(75 85 99 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark .dark\:from-red-700{--tw-gradient-from: #b91c1c;--tw-gradient-to: rgb(185 28 28 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark .dark\:\!from-red-700{--tw-gradient-from: #b91c1c !important;--tw-gradient-to: rgb(185 28 28 / 0) !important;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important}.dark .dark\:\!from-yellow-700{--tw-gradient-from: #a16207 !important;--tw-gradient-to: rgb(161 98 7 / 0) !important;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important}.dark .dark\:\!from-green-700{--tw-gradient-from: #15803d !important;--tw-gradient-to: rgb(21 128 61 / 0) !important;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important}.dark .dark\:\!from-blue-700{--tw-gradient-from: #1d4ed8 !important;--tw-gradient-to: rgb(29 78 216 / 0) !important;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important}.dark .dark\:\!from-purple-700{--tw-gradient-from: #7e22ce !important;--tw-gradient-to: rgb(126 34 206 / 0) !important;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important}.dark .dark\:\!from-gray-700{--tw-gradient-from: #374151 !important;--tw-gradient-to: rgb(55 65 81 / 0) !important;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important}.dark .dark\:\!from-pink-700{--tw-gradient-from: #be185d !important;--tw-gradient-to: rgb(190 24 93 / 0) !important;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important}.dark .dark\:from-\[rgba\(0\,0\,0\,0\)\]{--tw-gradient-from: rgba(0,0,0,0);--tw-gradient-to: rgb(0 0 0 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark .dark\:from-red-500{--tw-gradient-from: #ef4444;--tw-gradient-to: rgb(239 68 68 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark .dark\:to-orange-600{--tw-gradient-to: #EE7400}.dark .dark\:to-gray-800{--tw-gradient-to: #1f2937}.dark .dark\:to-orange-700{--tw-gradient-to: #CE6400}.dark .dark\:to-gray-700{--tw-gradient-to: #374151}.dark .dark\:to-red-700{--tw-gradient-to: #b91c1c}.dark .dark\:\!to-red-800{--tw-gradient-to: #991b1b !important}.dark .dark\:\!to-yellow-800{--tw-gradient-to: #854d0e !important}.dark .dark\:\!to-green-800{--tw-gradient-to: #166534 !important}.dark .dark\:\!to-blue-800{--tw-gradient-to: #1e40af !important}.dark .dark\:\!to-purple-800{--tw-gradient-to: #6b21a8 !important}.dark .dark\:\!to-gray-800{--tw-gradient-to: #1f2937 !important}.dark .dark\:\!to-pink-800{--tw-gradient-to: #9d174d !important}.dark .dark\:to-gray-950{--tw-gradient-to: #0b0f19}.dark .dark\:to-red-600{--tw-gradient-to: #dc2626}.dark .dark\:fill-slate-200{fill:#e2e8f0}.dark .dark\:\!text-red-300{--tw-text-opacity: 1 !important;color:rgb(252 165 165 / var(--tw-text-opacity))!important}.dark .dark\:\!text-green-300{--tw-text-opacity: 1 !important;color:rgb(134 239 172 / var(--tw-text-opacity))!important}.dark .dark\:\!text-blue-300{--tw-text-opacity: 1 !important;color:rgb(147 197 253 / var(--tw-text-opacity))!important}.dark .dark\:\!text-yellow-300{--tw-text-opacity: 1 !important;color:rgb(253 224 71 / var(--tw-text-opacity))!important}.dark .dark\:\!text-purple-300{--tw-text-opacity: 1 !important;color:rgb(216 180 254 / var(--tw-text-opacity))!important}.dark .dark\:\!text-teal-300{--tw-text-opacity: 1 !important;color:rgb(94 234 212 / var(--tw-text-opacity))!important}.dark .dark\:\!text-orange-300{--tw-text-opacity: 1 !important;color:rgb(255 176 102 / var(--tw-text-opacity))!important}.dark .dark\:\!text-cyan-300{--tw-text-opacity: 1 !important;color:rgb(103 232 249 / var(--tw-text-opacity))!important}.dark .dark\:\!text-lime-300{--tw-text-opacity: 1 !important;color:rgb(190 242 100 / var(--tw-text-opacity))!important}.dark .dark\:\!text-pink-300{--tw-text-opacity: 1 !important;color:rgb(249 168 212 / var(--tw-text-opacity))!important}.dark .dark\:\!text-gray-300{--tw-text-opacity: 1 !important;color:rgb(209 213 219 / var(--tw-text-opacity))!important}.dark .dark\:\!text-gray-50{--tw-text-opacity: 1 !important;color:rgb(249 250 251 / var(--tw-text-opacity))!important}.dark .dark\:text-orange-900{--tw-text-opacity: 1;color:rgb(92 45 0 / var(--tw-text-opacity))}.dark .dark\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.dark .dark\:text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.dark .dark\:text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.dark .dark\:text-slate-200{--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity))}.dark .dark\:text-indigo-300{--tw-text-opacity: 1;color:rgb(165 180 252 / var(--tw-text-opacity))}.dark .dark\:text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity))}.dark .dark\:text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity))}.dark .dark\:text-red-100{--tw-text-opacity: 1;color:rgb(254 226 226 / var(--tw-text-opacity))}.dark .dark\:text-yellow-100{--tw-text-opacity: 1;color:rgb(254 249 195 / var(--tw-text-opacity))}.dark .dark\:text-green-100{--tw-text-opacity: 1;color:rgb(220 252 231 / var(--tw-text-opacity))}.dark .dark\:text-blue-100{--tw-text-opacity: 1;color:rgb(219 234 254 / var(--tw-text-opacity))}.dark .dark\:text-purple-100{--tw-text-opacity: 1;color:rgb(243 232 255 / var(--tw-text-opacity))}.dark .dark\:text-gray-50{--tw-text-opacity: 1;color:rgb(249 250 251 / var(--tw-text-opacity))}.dark .dark\:ring-gray-500{--tw-ring-opacity: 1;--tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity))}.dark .dark\:ring-gray-600{--tw-ring-opacity: 1;--tw-ring-color: rgb(75 85 99 / var(--tw-ring-opacity))}.dark .dark\:invert{--tw-invert: invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.dark .dark .dark\:placeholder\:text-gray-500::placeholder{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.dark .dark\:placeholder\:text-gray-500::placeholder{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.dark .dark\:odd\:bg-gray-900:nth-child(odd){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.dark .dark\:focus-within\:bg-gray-800:focus-within{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.dark .dark\:hover\:border-gray-600:hover{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.dark .dark\:hover\:border-orange-700:hover{--tw-border-opacity: 1;border-color:rgb(206 100 0 / var(--tw-border-opacity))}.dark .dark\:hover\:bg-gray-700:hover{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.dark .dark\:hover\:bg-gray-800:hover{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.dark .dark\:hover\:to-orange-500:hover{--tw-gradient-to: #FF7C00}.dark .dark\:hover\:to-gray-600:hover{--tw-gradient-to: #4b5563}.dark .dark\:hover\:to-red-500:hover{--tw-gradient-to: #ef4444}.dark .dark\:hover\:text-gray-200:hover{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.dark .dark\:focus\:border-gray-600:focus{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.dark .dark\:focus\:from-blue-900:focus{--tw-gradient-from: #1e3a8a;--tw-gradient-to: rgb(30 58 138 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark .dark\:focus\:to-gray-900:focus{--tw-gradient-to: #111827}.dark .dark\:focus\:ring-0:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.dark .dark\:focus\:ring-gray-700:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(55 65 81 / var(--tw-ring-opacity))}@media (min-width: 640px){.sm\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.sm\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.sm\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.sm\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.sm\:grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.sm\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}}@media (min-width: 768px){.md\:top-6{top:1.5rem}.md\:left-auto{left:auto}.md\:right-8{right:2rem}.md\:bottom-4{bottom:1rem}.md\:mr-2{margin-right:.5rem}.md\:min-h-\[15rem\]{min-height:15rem}.md\:w-4{width:1rem}.md\:w-3{width:.75rem}.md\:w-\[950px\]{width:950px}.md\:w-1\/2{width:50%}.md\:w-96{width:24rem}.md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.md\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.md\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.md\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.md\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.md\:grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.md\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.md\:rounded-l-xl{border-top-left-radius:.75rem;border-bottom-left-radius:.75rem}.md\:bg-gradient-to-bl{background-image:linear-gradient(to bottom left,var(--tw-gradient-stops))}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}.md\:text-base{font-size:1rem;line-height:1.5rem}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width: 1024px){.lg\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lg\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.lg\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.lg\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.lg\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.lg\:grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}}@media (min-width: 1280px){.xl\:bottom-8{bottom:2rem}.xl\:max-h-\[18rem\]{max-height:18rem}.xl\:min-h-\[450px\]{min-height:450px}.xl\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xl\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.xl\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.xl\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.xl\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.xl\:grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.xl\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}}@media (min-width: 1536px){.\32xl\:max-h-\[20rem\]{max-height:20rem}.\32xl\:w-\[1150px\]{width:1150px}.\32xl\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.\32xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.\32xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.\32xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.\32xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.\32xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.\32xl\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.\32xl\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.\32xl\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.\32xl\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.\32xl\:grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.\32xl\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}}.dark .gr-box{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity));background-color:#0b0f19;--tw-bg-opacity: 1;background-color:rgb(11 15 25 / var(--tw-bg-opacity))}.gr-box{position:relative;border-radius:.5rem;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity));--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark .gr-box{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.dark .gr-box-unrounded{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity));background-color:#0b0f19;--tw-bg-opacity: 1;background-color:rgb(11 15 25 / var(--tw-bg-opacity))}.gr-box-unrounded{position:relative;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity));--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark .gr-box-unrounded{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.dark .gr-input{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.gr-input{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.gr-input::placeholder{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.gr-input:checked{--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.gr-input:focus{--tw-border-opacity: 1;border-color:rgb(147 197 253 / var(--tw-border-opacity));--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-color: rgb(191 219 254 / var(--tw-ring-opacity));--tw-ring-opacity: .5}.dark .gr-input{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity));--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.dark .dark .gr-input::placeholder{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.dark .gr-input::placeholder{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.dark .gr-input:focus{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity));--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.dark .gr-label{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.gr-label{margin-bottom:.5rem;display:block;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.gr-padded{padding:.625rem .75rem}.gr-panel{border-radius:.5rem;--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity));padding:.5rem}.dark .gr-panel{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.dark .gr-box-sm,.dark .gr-box-sm-gray-100,.dark .gr-box-sm-gray-200,.dark .gr-box-sm-gray-300{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.gr-box-sm>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.gr-box-sm{border-width:1px;padding:.375rem .75rem}.dark .gr-compact,.dark .gr-compact-gray-100,.dark .gr-compact-gray-200,.dark .gr-compact-gray-300{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.gr-compact{align-items:stretch;gap:0px;overflow:clip;border-radius:.5rem!important;border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.dark .gr-compact{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.gr-text-input{padding:.625rem;--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.gr-text-input:disabled{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark .gr-check-radio{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.gr-check-radio{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity));--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity));--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.gr-check-radio:focus{--tw-border-opacity: 1;border-color:rgb(147 197 253 / var(--tw-border-opacity));--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-color: rgb(191 219 254 / var(--tw-ring-opacity));--tw-ring-opacity: .5;--tw-ring-offset-width: 0px}.gr-check-radio:disabled{cursor:not-allowed!important;--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.dark .gr-check-radio{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.dark .gr-check-radio:checked{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity))}.dark .gr-check-radio:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(55 65 81 / var(--tw-ring-opacity))}.gr-checkbox{border-radius:.25rem}.gr-input-label{background-image:linear-gradient(to top,var(--tw-gradient-stops));--tw-gradient-from: #f9fafb;--tw-gradient-to: rgb(249 250 251 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #fff;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.gr-input-label:hover{--tw-gradient-from: #f3f4f6;--tw-gradient-to: rgb(243 244 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark .gr-input-label{--tw-gradient-from: #111827;--tw-gradient-to: rgb(17 24 39 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #1f2937}.gr-radio{border-radius:9999px}.dark .gr-button,.dark .gr-button-gray-100,.dark .gr-button-gray-200,.dark .gr-button-gray-300{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.dark .gr-button{background-color:#0b0f19;--tw-bg-opacity: 1;background-color:rgb(11 15 25 / var(--tw-bg-opacity))}.gr-button{display:inline-flex;align-items:center;justify-content:center;border-radius:.25rem;border-width:1px;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));background-image:linear-gradient(to bottom right,var(--tw-gradient-stops));padding:.125rem .5rem;text-align:center;font-size:.875rem;line-height:1.25rem;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.gr-button:hover{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.gr-button:active{--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark .gr-button{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.gr-button-primary{--tw-border-opacity: 1;border-color:rgb(255 216 180 / var(--tw-border-opacity));--tw-gradient-from: rgb(255 216 180 / .7);--tw-gradient-to: rgb(255 216 180 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: rgb(255 176 102 / .8);--tw-text-opacity: 1;color:rgb(238 116 0 / var(--tw-text-opacity))}.gr-button-primary:hover{--tw-gradient-to: rgb(255 216 180 / .9)}.dark .gr-button-primary{--tw-border-opacity: 1;border-color:rgb(238 116 0 / var(--tw-border-opacity));--tw-gradient-from: #CE6400;--tw-gradient-to: rgb(206 100 0 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #CE6400;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.dark .gr-button-primary:hover{--tw-gradient-to: #FF7C00}.dark .gr-button-secondary{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.dark .gr-button-secondary{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.gr-button-secondary{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity));--tw-gradient-from: rgb(243 244 246 / .7);--tw-gradient-to: rgb(243 244 246 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: rgb(229 231 235 / .8);--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.gr-button-secondary:hover{--tw-gradient-to: rgb(243 244 246 / .9)}.dark .gr-button-secondary{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity));--tw-gradient-from: #4b5563;--tw-gradient-to: rgb(75 85 99 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #374151;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.dark .gr-button-secondary:hover{--tw-gradient-to: #4b5563}.gr-button-stop{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity));--tw-gradient-from: rgb(254 202 202 / .7);--tw-gradient-to: rgb(254 202 202 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: rgb(252 165 165 / .8);--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity))}.gr-button-stop:hover{--tw-gradient-to: rgb(254 202 202 / .9)}.dark .gr-button-stop{--tw-border-opacity: 1;border-color:rgb(220 38 38 / var(--tw-border-opacity));--tw-gradient-from: #b91c1c;--tw-gradient-to: rgb(185 28 28 / 0);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #b91c1c;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.dark .gr-button-stop:hover{--tw-gradient-to: #ef4444}.gr-button-sm{border-radius:.375rem;padding:.25rem .75rem;font-size:.875rem;line-height:1.25rem}.gr-button-lg{border-radius:.5rem;padding:.5rem 1rem;font-size:1rem;line-height:1.5rem;font-weight:600}.gr-samples-table{width:100%}.gr-samples-table img.gr-sample-image,.gr-samples-table video.gr-sample-video{height:5rem;width:5rem;object-fit:cover}.gr-samples-gallery{display:flex;flex-wrap:wrap;gap:.5rem}.gr-samples-gallery img.gr-sample-image,.gr-samples-gallery video.gr-sample-video{max-height:5rem;object-fit:cover}.dark .gr-samples-gallery .gr-sample-textbox,.dark .gr-samples-gallery .gr-sample-textbox-gray-100,.dark .gr-samples-gallery .gr-sample-textbox-gray-200,.dark .gr-samples-gallery .gr-sample-textbox-gray-300,.dark .gr-samples-gallery .gr-sample-markdown,.dark .gr-samples-gallery .gr-sample-markdown-gray-100,.dark .gr-samples-gallery .gr-sample-markdown-gray-200,.dark .gr-samples-gallery .gr-sample-markdown-gray-300,.dark .gr-samples-gallery .gr-sample-html,.dark .gr-samples-gallery .gr-sample-html-gray-100,.dark .gr-samples-gallery .gr-sample-html-gray-200,.dark .gr-samples-gallery .gr-sample-html-gray-300,.dark .gr-samples-gallery .gr-sample-slider,.dark .gr-samples-gallery .gr-sample-slider-gray-100,.dark .gr-samples-gallery .gr-sample-slider-gray-200,.dark .gr-samples-gallery .gr-sample-slider-gray-300,.dark .gr-samples-gallery .gr-sample-checkbox,.dark .gr-samples-gallery .gr-sample-checkbox-gray-100,.dark .gr-samples-gallery .gr-sample-checkbox-gray-200,.dark .gr-samples-gallery .gr-sample-checkbox-gray-300,.dark .gr-samples-gallery .gr-sample-checkboxgroup,.dark .gr-samples-gallery .gr-sample-checkboxgroup-gray-100,.dark .gr-samples-gallery .gr-sample-checkboxgroup-gray-200,.dark .gr-samples-gallery .gr-sample-checkboxgroup-gray-300,.dark .gr-samples-gallery .gr-sample-file,.dark .gr-samples-gallery .gr-sample-file-gray-100,.dark .gr-samples-gallery .gr-sample-file-gray-200,.dark .gr-samples-gallery .gr-sample-file-gray-300,.dark .gr-samples-gallery .gr-sample-number,.dark .gr-samples-gallery .gr-sample-number-gray-100,.dark .gr-samples-gallery .gr-sample-number-gray-200,.dark .gr-samples-gallery .gr-sample-number-gray-300,.dark .gr-samples-gallery .gr-sample-audio,.dark .gr-samples-gallery .gr-sample-audio-gray-100,.dark .gr-samples-gallery .gr-sample-audio-gray-200,.dark .gr-samples-gallery .gr-sample-audio-gray-300,.dark .gr-samples-gallery .gr-sample-3d,.dark .gr-samples-gallery .gr-sample-3d-gray-100,.dark .gr-samples-gallery .gr-sample-3d-gray-200,.dark .gr-samples-gallery .gr-sample-3d-gray-300{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.dark .gr-samples-gallery .gr-sample-textbox,.dark .gr-samples-gallery .gr-sample-markdown,.dark .gr-samples-gallery .gr-sample-html,.dark .gr-samples-gallery .gr-sample-slider,.dark .gr-samples-gallery .gr-sample-checkbox,.dark .gr-samples-gallery .gr-sample-checkboxgroup,.dark .gr-samples-gallery .gr-sample-file,.dark .gr-samples-gallery .gr-sample-number,.dark .gr-samples-gallery .gr-sample-audio,.dark .gr-samples-gallery .gr-sample-3d{background-color:#0b0f19;--tw-bg-opacity: 1;background-color:rgb(11 15 25 / var(--tw-bg-opacity))}.gr-samples-gallery .gr-sample-textbox,.gr-samples-gallery .gr-sample-markdown,.gr-samples-gallery .gr-sample-html,.gr-samples-gallery .gr-sample-slider,.gr-samples-gallery .gr-sample-checkbox,.gr-samples-gallery .gr-sample-checkboxgroup,.gr-samples-gallery .gr-sample-file,.gr-samples-gallery .gr-sample-number,.gr-samples-gallery .gr-sample-audio,.gr-samples-gallery .gr-sample-3d{display:flex;cursor:pointer;align-items:center;border-radius:.5rem;border-width:1px;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));padding:.375rem .5rem;text-align:left;font-size:.875rem;line-height:1.25rem}.dark .gr-samples-gallery .gr-sample-textbox:hover,.dark .gr-samples-gallery .gr-sample-markdown:hover,.dark .gr-samples-gallery .gr-sample-html:hover,.dark .gr-samples-gallery .gr-sample-slider:hover,.dark .gr-samples-gallery .gr-sample-checkbox:hover,.dark .gr-samples-gallery .gr-sample-checkboxgroup:hover,.dark .gr-samples-gallery .gr-sample-file:hover,.dark .gr-samples-gallery .gr-sample-number:hover,.dark .gr-samples-gallery .gr-sample-audio:hover,.dark .gr-samples-gallery .gr-sample-3d:hover{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.gr-samples-gallery .gr-sample-textbox:hover,.gr-samples-gallery .gr-sample-markdown:hover,.gr-samples-gallery .gr-sample-html:hover,.gr-samples-gallery .gr-sample-slider:hover,.gr-samples-gallery .gr-sample-checkbox:hover,.gr-samples-gallery .gr-sample-checkboxgroup:hover,.gr-samples-gallery .gr-sample-file:hover,.gr-samples-gallery .gr-sample-number:hover,.gr-samples-gallery .gr-sample-audio:hover,.gr-samples-gallery .gr-sample-3d:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.dark .gr-samples-gallery .gr-sample-textbox,.dark .gr-samples-gallery .gr-sample-markdown,.dark .gr-samples-gallery .gr-sample-html,.dark .gr-samples-gallery .gr-sample-slider,.dark .gr-samples-gallery .gr-sample-checkbox,.dark .gr-samples-gallery .gr-sample-checkboxgroup,.dark .gr-samples-gallery .gr-sample-file,.dark .gr-samples-gallery .gr-sample-number,.dark .gr-samples-gallery .gr-sample-audio,.dark .gr-samples-gallery .gr-sample-3d{background-color:transparent}.dark .gr-samples-gallery .gr-sample-textbox:hover,.dark .gr-samples-gallery .gr-sample-markdown:hover,.dark .gr-samples-gallery .gr-sample-html:hover,.dark .gr-samples-gallery .gr-sample-slider:hover,.dark .gr-samples-gallery .gr-sample-checkbox:hover,.dark .gr-samples-gallery .gr-sample-checkboxgroup:hover,.dark .gr-samples-gallery .gr-sample-file:hover,.dark .gr-samples-gallery .gr-sample-number:hover,.dark .gr-samples-gallery .gr-sample-audio:hover,.dark .gr-samples-gallery .gr-sample-3d:hover{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.dark .gr-samples-gallery .gr-sample-dataframe,.dark .gr-samples-gallery .gr-sample-dataframe-gray-100,.dark .gr-samples-gallery .gr-sample-dataframe-gray-200,.dark .gr-samples-gallery .gr-sample-dataframe-gray-300{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.dark .gr-samples-gallery .gr-sample-dataframe{background-color:#0b0f19;--tw-bg-opacity: 1;background-color:rgb(11 15 25 / var(--tw-bg-opacity))}.gr-samples-gallery .gr-sample-dataframe{border-collapse:collapse;cursor:pointer;align-items:center;overflow:hidden;border-radius:.5rem;border-width:1px;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));padding:.375rem .5rem;text-align:left;font-size:.875rem;line-height:1.25rem}.dark .gr-samples-gallery .gr-sample-dataframe:hover{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.gr-samples-gallery .gr-sample-dataframe:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.dark .gr-samples-gallery .gr-sample-dataframe{background-color:transparent}.dark .gr-samples-gallery .gr-sample-dataframe:hover{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}img.gr-sample-image,video.gr-sample-video{max-width:none;flex:none;border-radius:.5rem;border-width:2px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}img.gr-sample-image:hover,video.gr-sample-video:hover{--tw-border-opacity: 1;border-color:rgb(255 150 51 / var(--tw-border-opacity))}.group:hover img.gr-sample-image,.group:hover video.gr-sample-video{--tw-border-opacity: 1;border-color:rgb(255 150 51 / var(--tw-border-opacity))}.dark img.gr-sample-image,.dark video.gr-sample-video{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.dark img.gr-sample-image:hover,.dark video.gr-sample-video:hover{--tw-border-opacity: 1;border-color:rgb(206 100 0 / var(--tw-border-opacity))}.dark .group:hover img.gr-sample-image,.dark .group:hover video.gr-sample-video{--tw-border-opacity: 1;border-color:rgb(206 100 0 / var(--tw-border-opacity))}.wrap.svelte-1w9161c{pointer-events:none;position:absolute;z-index:50;display:flex;max-height:100vh;flex-direction:column;align-items:center;justify-content:center;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.dark .cover-bg.svelte-1w9161c{--tw-bg-opacity:1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.cover-bg.svelte-1w9161c{--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}@keyframes svelte-1w9161c-pulse{50%{opacity:.5}}.generating.svelte-1w9161c{animation:svelte-1w9161c-pulse 2s cubic-bezier(.4,0,.6,1) infinite;border-width:2px;--tw-border-opacity:1;border-color:rgb(255 124 0 / var(--tw-border-opacity))}.progress-bar.svelte-1w9161c{position:absolute;inset:0;z-index:10;transform-origin:left;--tw-bg-opacity:1;background-color:rgb(241 245 249 / var(--tw-bg-opacity));opacity:.8}.meta-text.svelte-1w9161c{position:absolute;top:0;right:0;z-index:20;padding:.25rem .5rem;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.75rem;line-height:1rem}.meta-text-center.svelte-1w9161c{position:absolute;inset:0;z-index:20;display:flex;--tw-translate-y:1.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));align-items:center;justify-content:center;text-align:center;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.75rem;line-height:1rem}.timer.svelte-1w9161c{--tw-translate-y:-4rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark .error.svelte-1w9161c{background-color:#ef44441a;--tw-text-opacity:1;color:rgb(220 38 38 / var(--tw-text-opacity))}.error.svelte-1w9161c{border-radius:9999px;background-color:#ef44440d;padding-left:1rem;padding-right:1rem;font-family:Source Sans Pro,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-size:1.125rem;line-height:1.75rem;font-weight:600;--tw-text-opacity:1;color:rgb(248 113 113 / var(--tw-text-opacity))} diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.57f9dd27.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.57f9dd27.js new file mode 100644 index 0000000000000000000000000000000000000000..9fac58a427f589f747476b388b339ac6481fd42b --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.57f9dd27.js @@ -0,0 +1,2 @@ +import{T as s}from"./index.cb50929e.js";const o=["static"];export{s as Component,o as modes}; +//# sourceMappingURL=index.57f9dd27.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.57f9dd27.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.57f9dd27.js.map new file mode 100644 index 0000000000000000000000000000000000000000..0238b9916cb6d84e9cb50fed460f872ddb6ef5e9 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.57f9dd27.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.57f9dd27.js","sources":["../../../../ui/packages/app/src/components/StatusTracker/index.ts"],"sourcesContent":["export { default as Component } from \"./StatusTracker.svelte\";\nexport const modes = [\"static\"];\n"],"names":[],"mappings":"6CACa,GAAQ,CAAC,QAAQ"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.59240862.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.59240862.js new file mode 100644 index 0000000000000000000000000000000000000000..204ddc00eff32faf7649a293e4e3d216dbd3b99c --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.59240862.js @@ -0,0 +1,2 @@ +import{S as O,i as D,s as E,a7 as K,e as w,a as j,t as F,b as h,d as q,f as m,g as k,l as L,h as I,n as g,c as v,m as y,ab as M,aq as P,j as R,k as S,o as T,F as U,Z as V,P as Z,R as z,T as A,I as G,O as H,U as J,V as N,L as Q,K as W}from"./index.cb50929e.js";function B(n,e,t){const l=n.slice();return l[11]=e[t],l[13]=t,l}function X(n){let e;return{c(){e=F(n[3])},m(t,l){m(t,e,l)},p(t,l){l&8&&I(e,t[3])},d(t){t&&g(e)}}}function C(n,e){let t,l,o,_,c,f,r=e[11]+"",i,a,u,b;return{key:n,first:null,c(){t=w("label"),l=w("input"),c=j(),f=w("span"),i=F(r),l.disabled=e[2],h(l,"type","radio"),h(l,"name",o="radio-"+e[5]),h(l,"class","gr-check-radio gr-radio"),l.__value=_=e[11],l.value=l.__value,e[9][0].push(l),h(f,"class","ml-2"),h(t,"class",a="gr-input-label flex items-center text-gray-700 text-sm space-x-2 border py-1.5 px-3 rounded-lg cursor-pointer bg-white shadow-sm checked:shadow-inner "+e[6]),q(t,"!cursor-not-allowed",e[2]),this.first=t},m(d,s){m(d,t,s),k(t,l),l.checked=l.__value===e[0],k(t,c),k(t,f),k(f,i),u||(b=L(l,"change",e[8]),u=!0)},p(d,s){e=d,s&4&&(l.disabled=e[2]),s&32&&o!==(o="radio-"+e[5])&&h(l,"name",o),s&2&&_!==(_=e[11])&&(l.__value=_,l.value=l.__value),s&1&&(l.checked=l.__value===e[0]),s&2&&r!==(r=e[11]+"")&&I(i,r),s&64&&a!==(a="gr-input-label flex items-center text-gray-700 text-sm space-x-2 border py-1.5 px-3 rounded-lg cursor-pointer bg-white shadow-sm checked:shadow-inner "+e[6])&&h(t,"class",a),s&68&&q(t,"!cursor-not-allowed",e[2])},d(d){d&&g(t),e[9][0].splice(e[9][0].indexOf(l),1),u=!1,b()}}}function Y(n){let e,t,l,o=[],_=new Map,c;e=new K({props:{show_label:n[4],$$slots:{default:[X]},$$scope:{ctx:n}}});let f=n[1];const r=i=>i[13];for(let i=0;i{"value"in s&&t(0,o=s.value),"style"in s&&t(7,_=s.style),"choices"in s&&t(1,c=s.choices),"disabled"in s&&t(2,f=s.disabled),"label"in s&&t(3,r=s.label),"show_label"in s&&t(4,i=s.show_label),"elem_id"in s&&t(5,a=s.elem_id)},n.$$.update=()=>{n.$$.dirty&1&&u("change",o),n.$$.dirty&128&&t(6,{item_container:l}=V(_,["item_container"]),l)},[o,c,f,r,i,a,l,_,d,b]}class x extends O{constructor(e){super(),D(this,e,p,Y,E,{value:0,style:7,choices:1,disabled:2,label:3,show_label:4,elem_id:5})}}function $(n){let e,t,l,o,_;const c=[n[8]];let f={};for(let a=0;aH(l,"value",r)),l.$on("change",n[10]),{c(){v(e.$$.fragment),t=j(),v(l.$$.fragment)},m(a,u){y(e,a,u),m(a,t,u),y(l,a,u),_=!0},p(a,u){const b=u&256?J(c,[N(a[8])]):{};e.$set(b);const d={};u&2&&(d.label=a[1]),u&4&&(d.elem_id=a[2]),u&64&&(d.show_label=a[6]),u&16&&(d.choices=a[4]),u&128&&(d.style=a[7]),u&32&&(d.disabled=a[5]==="static"),!o&&u&1&&(o=!0,d.value=a[0],Q(()=>o=!1)),l.$set(d)},i(a){_||(R(e.$$.fragment,a),R(l.$$.fragment,a),_=!0)},o(a){S(e.$$.fragment,a),S(l.$$.fragment,a),_=!1},d(a){T(e,a),a&&g(t),T(l,a)}}}function ee(n){let e,t;return e=new Z({props:{visible:n[3],type:"fieldset",elem_id:n[2],disable:typeof n[7].container=="boolean"&&!n[7].container,$$slots:{default:[$]},$$scope:{ctx:n}}}),{c(){v(e.$$.fragment)},m(l,o){y(e,l,o),t=!0},p(l,[o]){const _={};o&8&&(_.visible=l[3]),o&4&&(_.elem_id=l[2]),o&128&&(_.disable=typeof l[7].container=="boolean"&&!l[7].container),o&2551&&(_.$$scope={dirty:o,ctx:l}),e.$set(_)},i(l){t||(R(e.$$.fragment,l),t=!0)},o(l){S(e.$$.fragment,l),t=!1},d(l){T(e,l)}}}function le(n,e,t){let{label:l="Radio"}=e,{elem_id:o=""}=e,{visible:_=!0}=e,{value:c=""}=e,{choices:f=[]}=e,{mode:r}=e,{show_label:i}=e,{style:a={}}=e,{loading_status:u}=e;function b(s){c=s,t(0,c)}function d(s){W.call(this,n,s)}return n.$$set=s=>{"label"in s&&t(1,l=s.label),"elem_id"in s&&t(2,o=s.elem_id),"visible"in s&&t(3,_=s.visible),"value"in s&&t(0,c=s.value),"choices"in s&&t(4,f=s.choices),"mode"in s&&t(5,r=s.mode),"show_label"in s&&t(6,i=s.show_label),"style"in s&&t(7,a=s.style),"loading_status"in s&&t(8,u=s.loading_status)},[c,l,o,_,f,r,i,a,u,b,d]}class ae extends O{constructor(e){super(),D(this,e,le,ee,E,{label:1,elem_id:2,visible:3,value:0,choices:4,mode:5,show_label:6,style:7,loading_status:8})}}var se=ae;const ne=["static","dynamic"],ie=n=>({type:"string",description:"selected choice",example_data:n.choices.length>1?n.choices[0]:""});export{se as Component,ie as document,ne as modes}; +//# sourceMappingURL=index.59240862.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.59240862.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.59240862.js.map new file mode 100644 index 0000000000000000000000000000000000000000..575624382a8aff17459dcbcce367082d0c7fe427 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.59240862.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.59240862.js","sources":["../../../../ui/packages/form/src/Radio.svelte","../../../../ui/packages/app/src/components/Radio/Radio.svelte","../../../../ui/packages/app/src/components/Radio/index.ts"],"sourcesContent":["\n\n{label}\n\n
    \n\t{#each choices as choice, i (i)}\n\t\t\n\t\t\t {choice}\n\t{/each}\n
    \n","\n\n\n\t\n\n\t\n\n","export { default as Component } from \"./Radio.svelte\";\nexport const modes = [\"static\", \"dynamic\"];\n\nexport const document = (config: Record) => ({\n\ttype: \"string\",\n\tdescription: \"selected choice\",\n\texample_data: config.choices.length > 1 ? config.choices[0] : \"\"\n});\n"],"names":[],"mappings":"uWAqB0B,wCAAA,wDAeA,0JAHT,yDAEN,mOARsJ,gCADnI,2BAD5B,SAIC,6BAEa,YAKV,sGAHW,iCAEN,oEAJK,kBAKU,wLATuI,sDADnI,4LAFtB,gBAAsB,sBAA3B,wMADH,iKACQ,oMAlBI,YACA,eACA,cACA,WAAoB,OACpB,YACA,iBACA,kBAEL,GAAW,wBAiBF,qSAfZ,EAAS,SAAU,CAAK,uBAErB,kBAAmB,EAAW,GAAQ,gBAAgB,kMCMzC,gLASR,OAAS,qOATD,mKASR,OAAS,wSAXJ,MAAM,WAAc,YAAc,KAAM,wLAAxC,MAAM,WAAc,YAAc,KAAM,gKAf7C,QAAgB,YAChB,UAAkB,OAClB,UAAmB,OACnB,QAAgB,OAChB,iBACA,WACA,iBACA,eACA,mkBCdC,IAAQ,CAAC,SAAU,SAAS,EAE5B,GAAW,AAAC,KACxB,KAAM,SACN,YAAa,kBACb,aAAc,EAAO,QAAQ,OAAS,EAAI,EAAO,QAAQ,GAAK,EAC/D"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.5f4416cb.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.5f4416cb.js new file mode 100644 index 0000000000000000000000000000000000000000..b7841f2b81aa28505f2d19bd7f2d63ef408f94a0 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.5f4416cb.js @@ -0,0 +1,6 @@ +import{S as V,i as A,s as E,w as P,b as d,f as m,g as k,x as y,n as b,e as j,a as O,d as R,D as N,k as v,E as S,j as p,t as h,h as J,B as L,c as B,m as C,o as T,C as K,l as M,ae as x,an as ee,al as q,ao as te,J as le,P as ne,Q as ie,X as oe,F as re,R as se,T as ae,U as ce,V as fe}from"./index.cb50929e.js";import{B as ue}from"./BlockLabel.4b1193ac.js";function _e(c){let e,t;return{c(){e=P("svg"),t=P("path"),d(t,"fill","currentColor"),d(t,"d","M5 3h2v2H5v5a2 2 0 0 1-2 2a2 2 0 0 1 2 2v5h2v2H5c-1.07-.27-2-.9-2-2v-4a2 2 0 0 0-2-2H0v-2h1a2 2 0 0 0 2-2V5a2 2 0 0 1 2-2m14 0a2 2 0 0 1 2 2v4a2 2 0 0 0 2 2h1v2h-1a2 2 0 0 0-2 2v4a2 2 0 0 1-2 2h-2v-2h2v-5a2 2 0 0 1 2-2a2 2 0 0 1-2-2V5h-2V3h2m-7 12a1 1 0 0 1 1 1a1 1 0 0 1-1 1a1 1 0 0 1-1-1a1 1 0 0 1 1-1m-4 0a1 1 0 0 1 1 1a1 1 0 0 1-1 1a1 1 0 0 1-1-1a1 1 0 0 1 1-1m8 0a1 1 0 0 1 1 1a1 1 0 0 1-1 1a1 1 0 0 1-1-1a1 1 0 0 1 1-1Z"),d(e,"xmlns","http://www.w3.org/2000/svg"),d(e,"xmlns:xlink","http://www.w3.org/1999/xlink"),d(e,"aria-hidden","true"),d(e,"role","img"),d(e,"class","iconify iconify--mdi"),d(e,"width","100%"),d(e,"height","100%"),d(e,"preserveAspectRatio","xMidYMid meet"),d(e,"viewBox","0 0 24 24")},m(n,i){m(n,e,i),k(e,t)},p:y,i:y,o:y,d(n){n&&b(e)}}}class W extends V{constructor(e){super(),A(this,e,null,_e,E,{})}}function z(c,e,t){const n=c.slice();return n[5]=e[t],n[7]=t,n}function F(c,e,t){const n=c.slice();return n[5]=e[t],n[7]=t,n}function de(c){let e,t;return{c(){e=j("div"),t=h(c[1]),d(e,"class","json-item inline"),d(e,"item-type","other")},m(n,i){m(n,e,i),k(e,t)},p(n,i){i&2&&J(t,n[1])},i:y,o:y,d(n){n&&b(e)}}}function me(c){let e,t;return{c(){e=j("div"),t=h(c[1]),d(e,"class","json-item inline text-blue-500"),d(e,"item-type","number")},m(n,i){m(n,e,i),k(e,t)},p(n,i){i&2&&J(t,n[1])},i:y,o:y,d(n){n&&b(e)}}}function be(c){let e,t=c[1].toLocaleString()+"",n;return{c(){e=j("div"),n=h(t),d(e,"class","json-item inline text-red-500"),d(e,"item-type","boolean")},m(i,o){m(i,e,o),k(e,n)},p(i,o){o&2&&t!==(t=i[1].toLocaleString()+"")&&J(n,t)},i:y,o:y,d(i){i&&b(e)}}}function pe(c){let e,t,n,i;return{c(){e=j("div"),t=h('"'),n=h(c[1]),i=h('"'),d(e,"class","json-item inline text-green-500"),d(e,"item-type","string")},m(o,s){m(o,e,s),k(e,t),k(e,n),k(e,i)},p(o,s){s&2&&J(n,o[1])},i:y,o:y,d(o){o&&b(e)}}}function ke(c){let e;return{c(){e=j("div"),e.textContent="null",d(e,"class","json-item inline text-gray-500 dark:text-gray-400"),d(e,"item-type","null")},m(t,n){m(t,e,n)},p:y,i:y,o:y,d(t){t&&b(e)}}}function ge(c){let e,t,n,i;const o=[ye,he],s=[];function u(l,a){return l[0]?0:1}return e=u(c),t=s[e]=o[e](c),{c(){t.c(),n=L()},m(l,a){s[e].m(l,a),m(l,n,a),i=!0},p(l,a){let r=e;e=u(l),e===r?s[e].p(l,a):(N(),v(s[r],1,1,()=>{s[r]=null}),S(),t=s[e],t?t.p(l,a):(t=s[e]=o[e](l),t.c()),p(t,1),t.m(n.parentNode,n))},i(l){i||(p(t),i=!0)},o(l){v(t),i=!1},d(l){s[e].d(l),l&&b(n)}}}function ve(c){let e,t,n,i;const o=[we,je],s=[];function u(l,a){return l[0]?0:1}return e=u(c),t=s[e]=o[e](c),{c(){t.c(),n=L()},m(l,a){s[e].m(l,a),m(l,n,a),i=!0},p(l,a){let r=e;e=u(l),e===r?s[e].p(l,a):(N(),v(s[r],1,1,()=>{s[r]=null}),S(),t=s[e],t?t.p(l,a):(t=s[e]=o[e](l),t.c()),p(t,1),t.m(n.parentNode,n))},i(l){i||(p(t),i=!0)},o(l){v(t),i=!1},d(l){s[e].d(l),l&&b(n)}}}function he(c){let e,t,n,i,o=Object.entries(c[1]),s=[];for(let l=0;lv(s[l],1,1,()=>{s[l]=null});return{c(){e=h(`{ + `),t=j("div");for(let l=0;lv(s[l],1,1,()=>{s[l]=null});return{c(){e=h(`[ + `),t=j("div");for(let l=0;l{l[g]=null}),S(),o=l[i],o?o.p(r,f):(o=l[i]=u[i](r),o.c()),p(o,1),o.m(n,null))},i(r){s||(p(o),s=!0)},o(r){v(o),s=!1},d(r){r&&b(e),r&&b(t),r&&b(n),l[i].d()}}}function Ne(c,e,t){let{value:n}=e,{depth:i}=e,{collapsed:o=i>4}=e;const s=()=>{t(0,o=!1)},u=()=>{t(0,o=!1)};return c.$$set=l=>{"value"in l&&t(1,n=l.value),"depth"in l&&t(2,i=l.depth),"collapsed"in l&&t(0,o=l.collapsed)},[o,n,i,s,u]}class I extends V{constructor(e){super(),A(this,e,Ne,Oe,E,{value:1,depth:2,collapsed:0})}}function Z(c){let e,t,n,i;return{c(){e=j("span"),e.textContent="COPIED",d(e,"class","font-bold dark:text-green-400 text-green-600 py-1 px-2 absolute block w-full text-left bg-white dark:bg-gray-900")},m(o,s){m(o,e,s),i=!0},i(o){i||(x(()=>{n&&n.end(1),t=ee(e,q,{duration:100}),t.start()}),i=!0)},o(o){t&&t.invalidate(),n=te(e,q,{duration:350}),i=!1},d(o){o&&b(e),o&&n&&n.end()}}}function Se(c){let e,t,n,i,o,s,u,l,a,r=c[2]&&Z();return s=new I({props:{value:c[0],depth:0}}),{c(){e=j("button"),t=j("span"),n=h(c[1]),i=O(),r&&r.c(),o=O(),B(s.$$.fragment),d(t,"class","py-1 px-2"),d(e,"class","transition-color overflow-hidden font-sans absolute right-0 top-0 rounded-bl-lg shadow-sm text-xs text-gray-500 flex items-center bg-white z-20 border-l border-b border-gray-100 dark:text-slate-200")},m(f,g){m(f,e,g),k(e,t),k(t,n),k(e,i),r&&r.m(e,null),m(f,o,g),C(s,f,g),u=!0,l||(a=M(e,"click",c[3]),l=!0)},p(f,[g]){(!u||g&2)&&J(n,f[1]),f[2]?r?g&4&&p(r,1):(r=Z(),r.c(),p(r,1),r.m(e,null)):r&&(N(),v(r,1,1,()=>{r=null}),S());const D={};g&1&&(D.value=f[0]),s.$set(D)},i(f){u||(p(r),p(s.$$.fragment,f),u=!0)},o(f){v(r),v(s.$$.fragment,f),u=!1},d(f){f&&b(e),r&&r.d(),f&&b(o),T(s,f),l=!1,a()}}}function Je(c,e,t){let{value:n={}}=e,{copy_to_clipboard:i="copy to clipboard"}=e,o=!1,s;function u(){t(2,o=!0),s&&clearTimeout(s),s=setTimeout(()=>{t(2,o=!1)},1e3)}async function l(){"clipboard"in navigator&&(await navigator.clipboard.writeText(JSON.stringify(n,null,2)),u())}return le(()=>{s&&clearTimeout(s)}),c.$$set=a=>{"value"in a&&t(0,n=a.value),"copy_to_clipboard"in a&&t(1,i=a.copy_to_clipboard)},[n,i,o,l]}class Be extends V{constructor(e){super(),A(this,e,Je,Se,E,{value:0,copy_to_clipboard:1})}}function G(c){let e,t;return e=new ue({props:{Icon:W,label:c[4],disable:typeof c[5].container=="boolean"&&!c[5].container}}),{c(){B(e.$$.fragment)},m(n,i){C(e,n,i),t=!0},p(n,i){const o={};i&16&&(o.label=n[4]),i&32&&(o.disable=typeof n[5].container=="boolean"&&!n[5].container),e.$set(o)},i(n){t||(p(e.$$.fragment,n),t=!0)},o(n){v(e.$$.fragment,n),t=!1},d(n){T(e,n)}}}function Ce(c){let e,t,n,i;return n=new W({}),{c(){e=j("div"),t=j("div"),B(n.$$.fragment),d(t,"class","h-7 dark:text-white opacity-50"),d(e,"class","h-full min-h-[6rem] flex justify-center items-center")},m(o,s){m(o,e,s),k(e,t),C(n,t,null),i=!0},p:y,i(o){i||(p(n.$$.fragment,o),i=!0)},o(o){v(n.$$.fragment,o),i=!1},d(o){o&&b(e),T(n)}}}function Te(c){let e,t;return e=new Be({props:{value:c[2],copy_to_clipboard:c[6]("interface.copy_to_clipboard")}}),{c(){B(e.$$.fragment)},m(n,i){C(e,n,i),t=!0},p(n,i){const o={};i&4&&(o.value=n[2]),i&64&&(o.copy_to_clipboard=n[6]("interface.copy_to_clipboard")),e.$set(o)},i(n){t||(p(e.$$.fragment,n),t=!0)},o(n){v(e.$$.fragment,n),t=!1},d(n){T(e,n)}}}function De(c){let e,t,n,i,o,s,u,l=c[4]&&G(c);const a=[c[3]];let r={};for(let _=0;_{l=null}),S());const $=w&8?ce(a,[fe(_[3])]):{};t.$set($);let H=i;i=D(_),i===H?g[i].p(_,w):(N(),v(g[H],1,1,()=>{g[H]=null}),S(),o=g[i],o?o.p(_,w):(o=g[i]=f[i](_),o.c()),p(o,1),o.m(s.parentNode,s))},i(_){u||(p(l),p(t.$$.fragment,_),p(o),u=!0)},o(_){v(l),v(t.$$.fragment,_),v(o),u=!1},d(_){l&&l.d(_),_&&b(e),T(t,_),_&&b(n),g[i].d(_),_&&b(s)}}}function Ve(c){let e,t;return e=new ne({props:{visible:c[1],test_id:"json",elem_id:c[0],disable:typeof c[5].container=="boolean"&&!c[5].container,$$slots:{default:[De]},$$scope:{ctx:c}}}),{c(){B(e.$$.fragment)},m(n,i){C(e,n,i),t=!0},p(n,[i]){const o={};i&2&&(o.visible=n[1]),i&1&&(o.elem_id=n[0]),i&32&&(o.disable=typeof n[5].container=="boolean"&&!n[5].container),i&380&&(o.$$scope={dirty:i,ctx:n}),e.$set(o)},i(n){t||(p(e.$$.fragment,n),t=!0)},o(n){v(e.$$.fragment,n),t=!1},d(n){T(e,n)}}}function Ae(c,e,t){let n;ie(c,oe,f=>t(6,n=f));let{elem_id:i=""}=e,{visible:o=!0}=e,{value:s}=e,{loading_status:u}=e,{label:l}=e,{style:a={}}=e;const r=re();return c.$$set=f=>{"elem_id"in f&&t(0,i=f.elem_id),"visible"in f&&t(1,o=f.visible),"value"in f&&t(2,s=f.value),"loading_status"in f&&t(3,u=f.loading_status),"label"in f&&t(4,l=f.label),"style"in f&&t(5,a=f.style)},c.$$.update=()=>{c.$$.dirty&4&&r("change")},[i,o,s,u,l,a,n]}class Ee extends V{constructor(e){super(),A(this,e,Ae,Ve,E,{elem_id:0,visible:1,value:2,loading_status:3,label:4,style:5})}}var Me=Ee;const Ie=["static"],Pe=c=>({type:"Object | Array",description:"JSON object"});export{Me as Component,Pe as document,Ie as modes}; +//# sourceMappingURL=index.5f4416cb.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.5f4416cb.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.5f4416cb.js.map new file mode 100644 index 0000000000000000000000000000000000000000..bfc6e2d71f088421108352669999841b026336d7 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.5f4416cb.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.5f4416cb.js","sources":["../../../../ui/packages/icons/src/JSON.svelte","../../../../ui/packages/json/src/JSONNode.svelte","../../../../ui/packages/json/src/JSON.svelte","../../../../ui/packages/app/src/components/Json/Json.svelte","../../../../ui/packages/app/src/components/Json/index.ts"],"sourcesContent":["\n","\n\n\n\n\t{#if value instanceof Array}\n\t\t{#if collapsed}\n\t\t\t {\n\t\t\t\t\tcollapsed = false;\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\texpand {value.length} children\n\t\t\t\n\t\t{:else}\n\t\t\t[\n\t\t\t
    \n\t\t\t\t{#each value as node, i}\n\t\t\t\t\t
    \n\t\t\t\t\t\t{i}: \n\t\t\t\t\t\t{#if i !== value.length - 1}\n\t\t\t\t\t\t\t,\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t{/each}\n\t\t\t
    \n\t\t\t]\n\t\t{/if}\n\t{:else if value instanceof Object}\n\t\t{#if collapsed}\n\t\t\t {\n\t\t\t\t\tcollapsed = false;\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{+{Object.keys(value).length} items}\n\t\t\t\n\t\t{:else}\n\t\t\t{\n\t\t\t
    \n\t\t\t\t{#each Object.entries(value) as node, i}\n\t\t\t\t\t
    \n\t\t\t\t\t\t{node[0]}: {#if i !== Object.keys(value).length - 1},\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t{/each}\n\t\t\t
    \n\t\t\t}\n\t\t{/if}\n\t{:else if value === null}\n\t\t\n\t\t\tnull\n\t\t\n\t{:else if typeof value === \"string\"}\n\t\t
    \n\t\t\t\"{value}\"\n\t\t
    \n\t{:else if typeof value === \"boolean\"}\n\t\t
    \n\t\t\t{value.toLocaleString()}\n\t\t
    \n\t{:else if typeof value === \"number\"}\n\t\t
    \n\t\t\t{value}\n\t\t
    \n\t{:else}\n\t\t
    \n\t\t\t{value}\n\t\t
    \n\t{/if}\n\n","\n\n\n\t{copy_to_clipboard}\n\t{#if copied}\n\t\tCOPIED\n\t{/if}\n\n\n\n","\n\n\n\t{#if label}\n\t\t\n\t{/if}\n\n\t\n\n\t{#if value && value !== '\"\"'}\n\t\t\n\t{:else}\n\t\t
    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n","export { default as Component } from \"./Json.svelte\";\nexport const modes = [\"static\"];\n\nexport const document = (config: Record) => ({\n\ttype: \"Object | Array\",\n\tdescription: \"JSON object\"\n});\n"],"names":["JSONIcon"],"mappings":"6oCAAA,SAUE,iRC0EE,uEADF,iCACE,+EAJA,sFADF,iCACE,qDAJA,KAAM,mIADR,oCACE,KAAM,0GALuD,GAC7D,MAAC,UAAM,GACT,mFAFA,+CACG,+LARH,2GA3BK,kXA1BA,yUAqCI,OAAO,QAAQ,2BAApB,mFAHE;AAAA,IAEL,sDAaK;AAAA,KAEN,qDAfC,oFACQ,OAAO,QAAQ,wBAApB,qHAAA,8DAAA,6JALM,OAAO,KAAK,MAAO,+CAD5B,IACQ,aAA2B,SACnC,UANA,gFAKS,OAAO,KAAK,MAAO,uFAahB,GACT,yDAPC,KAAK,cAKQ,OAAM,OAAO,KAAK,MAAO,OAAS,4BAJxC,KAAK,SACL,KAAQ,MACV,sDAHG,IAAE,mEADZ,wFACE,KAAK,wCACE,KAAK,kBACL,KAAQ,qBAGF,OAAM,OAAO,KAAK,MAAO,OAAS,8KA9B3C,0BAAL,mFAHE;AAAA,IAEL,sDASK;AAAA,KAEN,qDAXC,oFACQ,uBAAL,qHAAA,8DAAA,+JANQ,KAAM,2DAAd,SAAO,aAAc,WAAS,+GAPjC,SAKC,8EAEU,KAAM,uFASa,GAE3B,yFAHyB,WAAa,KAAQ,WACzC,OAAM,KAAM,OAAS,iCADzB,UAAE,IAAE,yEADN,sGAC0B,oBAAa,KAAQ,aACzC,OAAM,KAAM,OAAS,uOAlB1B,eAAiB,SA0BZ,cAAiB,UA2BjB,OAAU,aAOH,OAAU,iBAIV,OAAU,kBAIV,OAAU,kIAxEoB,OAAU,CAAC,8FAA3D,kBACA,wDADgD,OAAU,CAAC,0OAL/C,YACA,YACA,YAAY,EAAQ,sBAW3B,EAAY,EAAK,cA0BjB,EAAY,EAAK,yaCHpB,qDACY,SAAU,0DACT,SAAU,gFAHnB,kDAUmB,wCAXC,kSAJ1B,SAIC,6EAHU,qCAGe,MACpB,mRA/BM,eACA,oBAA4B,uBAEnC,EAAS,GACT,mBAGH,EAAS,EAAI,EACT,GAAO,aAAa,CAAK,EAC7B,EAAQ,oBACP,EAAS,EAAK,GACZ,wBAIC,aAAe,kBACZ,WAAU,UAAU,UAAU,KAAK,UAAU,EAAO,KAAM,CAAC,GACjE,KAIF,eACK,GAAO,aAAa,CAAK,yPCItBA,2BAEU,MAAM,WAAc,YAAc,KAAM,wHAAxC,MAAM,WAAc,YAAc,KAAM,yTASzD,SACC,8LAHgC,KAAG,6BAA6B,mHAAhC,KAAG,6BAA6B,gIAX7D,oBAQc,uHAEd,OAAS,OAAU,8KAVnB,iIAQc,sZAVH,MAAM,WAAc,YAAc,KAAM,wLAAxC,MAAM,WAAc,YAAc,KAAM,0LAhB7C,UAAkB,OAClB,UAAmB,OACnB,YACA,qBACA,YACA,mBAEL,GAAW,0PAEP,EAAS,QAAQ,8JCnBf,IAAQ,CAAC,QAAQ,EAEjB,GAAW,AAAC,KACxB,KAAM,iBACN,YAAa,aACd"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.5f8802f8.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.5f8802f8.js new file mode 100644 index 0000000000000000000000000000000000000000..47f0008a0fa80a22de25d2cac690d262f9507ada --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.5f8802f8.js @@ -0,0 +1,2 @@ +import{S as r,i as h,s as g,p as c,e as d,b as o,d as f,f as q,u as v,q as b,r as w,j as C,k as R,n as S}from"./index.cb50929e.js";function j(s){let e,a;const u=s[5].default,t=c(u,s,s[4],null);return{c(){e=d("div"),t&&t.c(),o(e,"class","flex row w-full flex-wrap gap-4"),o(e,"id",s[1]),f(e,"gr-compact",s[3]==="compact"),f(e,"gr-panel",s[3]==="panel"),f(e,"unequal-height",s[0].equal_height===!1),f(e,"items-stretch",s[0].equal_height),f(e,"!hidden",!s[2])},m(l,i){q(l,e,i),t&&t.m(e,null),a=!0},p(l,[i]){t&&t.p&&(!a||i&16)&&v(t,u,l,l[4],a?w(u,l[4],i,null):b(l[4]),null),(!a||i&2)&&o(e,"id",l[1]),i&8&&f(e,"gr-compact",l[3]==="compact"),i&8&&f(e,"gr-panel",l[3]==="panel"),i&1&&f(e,"unequal-height",l[0].equal_height===!1),i&1&&f(e,"items-stretch",l[0].equal_height),i&4&&f(e,"!hidden",!l[2])},i(l){a||(C(t,l),a=!0)},o(l){R(t,l),a=!1},d(l){l&&S(e),t&&t.d(l)}}}function k(s,e,a){let{$$slots:u={},$$scope:t}=e,{style:l={}}=e,{elem_id:i}=e,{visible:_=!0}=e,{variant:m="default"}=e;return s.$$set=n=>{"style"in n&&a(0,l=n.style),"elem_id"in n&&a(1,i=n.elem_id),"visible"in n&&a(2,_=n.visible),"variant"in n&&a(3,m=n.variant),"$$scope"in n&&a(4,t=n.$$scope)},[l,i,_,m,t,u]}class z extends r{constructor(e){super(),h(this,e,k,j,g,{style:0,elem_id:1,visible:2,variant:3})}}var B=z;const D=["static"];export{B as Component,D as modes}; +//# sourceMappingURL=index.5f8802f8.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.5f8802f8.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.5f8802f8.js.map new file mode 100644 index 0000000000000000000000000000000000000000..f1141d8a42b4111fb225cf78ba31ce3152e78afd --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.5f8802f8.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.5f8802f8.js","sources":["../../../../ui/packages/app/src/components/Row/Row.svelte","../../../../ui/packages/app/src/components/Row/index.ts"],"sourcesContent":["\n\n\n\t\n\n","export { default as Component } from \"./Row.svelte\";\nexport const modes = [\"static\"];\n"],"names":[],"mappings":"wRAgBK,uBALc,OAAY,SAAS,iBACvB,OAAY,OAAO,uBACb,KAAM,eAAiB,EAAK,sBAC7B,KAAM,YAAY,iBACvB,cANjB,6HAOK,4BALc,OAAY,SAAS,sBACvB,OAAY,OAAO,4BACb,KAAM,eAAiB,EAAK,2BAC7B,KAAM,YAAY,sBACvB,0HAZL,eACA,cACA,UAAmB,OACnB,UAA2C,0TCL1C,GAAQ,CAAC,QAAQ"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.5fff5881.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.5fff5881.js new file mode 100644 index 0000000000000000000000000000000000000000..52d7de351a940919590dbb534ec836470d308d95 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.5fff5881.js @@ -0,0 +1,2 @@ +import{S as p,i as b,s as h,c,m,j as _,k as f,o as d,R as k,T as v,p as C,a as $,f as S,U as j,V as q,u as w,q as T,r as K,n as R,K as U}from"./index.cb50929e.js";import{C as V}from"./CarouselItem.svelte_svelte_type_style_lang.248bb157.js";function z(l){let s,o,t;const i=[l[2]];let r={};for(let e=0;e{"elem_id"in a&&o(0,r=a.elem_id),"visible"in a&&o(1,u=a.visible),"loading_status"in a&&o(2,n=a.loading_status),"$$scope"in a&&o(5,i=a.$$scope)},[r,u,n,t,e,i]}class D extends p{constructor(s){super(),b(this,s,B,A,h,{elem_id:0,visible:1,loading_status:2})}}var G=D;const H=["static"];export{G as Component,H as modes}; +//# sourceMappingURL=index.5fff5881.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.5fff5881.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.5fff5881.js.map new file mode 100644 index 0000000000000000000000000000000000000000..57d1c329b986907e86def32eb73dd62598353272 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.5fff5881.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.5fff5881.js","sources":["../../../../ui/packages/app/src/components/Carousel/Carousel.svelte","../../../../ui/packages/app/src/components/Carousel/index.ts"],"sourcesContent":["\n\n\n\t\n\n\t\n\n","export { default as Component } from \"./Carousel.svelte\";\nexport const modes = [\"static\"];\n"],"names":[],"mappings":"iRAWoB,mOAAA,smBANR,UAAkB,OAClB,UAAmB,OACnB,iVCNC,GAAQ,CAAC,QAAQ"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.6010fe83.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.6010fe83.js new file mode 100644 index 0000000000000000000000000000000000000000..a5504154d75f5f7e5c1d27c089c41ad3906126b8 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.6010fe83.js @@ -0,0 +1,2 @@ +import{S as q,i as A,s as D,a7 as I,e as w,a as T,t as E,b as d,d as j,f as g,g as k,l as K,h as F,n as m,c as v,m as C,j as y,k as G,o as S,C as L,F as P,Z as R,P as U,R as V,T as Z,I as z,O as H,U as J,V as M,L as N,K as Q}from"./index.cb50929e.js";function B(l,e,t){const s=l.slice();return s[10]=e[t],s}function W(l){let e;return{c(){e=E(l[3])},m(t,s){g(t,e,s)},p(t,s){s&8&&F(e,t[3])},d(t){t&&m(e)}}}function O(l){let e,t,s,c,o,u=l[10]+"",n,f,b,a;function r(){return l[8](l[10])}return{c(){e=w("label"),t=w("input"),c=T(),o=w("span"),n=E(u),t.disabled=l[2],t.checked=s=l[0].includes(l[10]),d(t,"type","checkbox"),d(t,"name","test"),d(t,"class","gr-check-radio gr-checkbox"),d(o,"class","ml-2"),d(e,"class",f="gr-input-label flex items-center text-gray-700 text-sm space-x-2 border py-1.5 px-3 rounded-lg cursor-pointer bg-white shadow-sm checked:shadow-inner "+l[5]),j(e,"!cursor-not-allowed",l[2])},m(h,i){g(h,e,i),k(e,t),k(e,c),k(e,o),k(o,n),b||(a=K(t,"change",r),b=!0)},p(h,i){l=h,i&4&&(t.disabled=l[2]),i&3&&s!==(s=l[0].includes(l[10]))&&(t.checked=s),i&2&&u!==(u=l[10]+"")&&F(n,u),i&32&&f!==(f="gr-input-label flex items-center text-gray-700 text-sm space-x-2 border py-1.5 px-3 rounded-lg cursor-pointer bg-white shadow-sm checked:shadow-inner "+l[5])&&d(e,"class",f),i&36&&j(e,"!cursor-not-allowed",l[2])},d(h){h&&m(e),b=!1,a()}}}function X(l){let e,t,s,c;e=new I({props:{show_label:l[4],$$slots:{default:[W]},$$scope:{ctx:l}}});let o=l[1],u=[];for(let n=0;n{c.includes(i)?c.splice(c.indexOf(i),1):c.push(i),a("change",c),t(0,c)},h=i=>r(i);return l.$$set=i=>{"value"in i&&t(0,c=i.value),"style"in i&&t(7,o=i.style),"choices"in i&&t(1,u=i.choices),"disabled"in i&&t(2,n=i.disabled),"label"in i&&t(3,f=i.label),"show_label"in i&&t(4,b=i.show_label)},l.$$.update=()=>{l.$$.dirty&128&&t(5,{item_container:s}=R(o,["item_container"]),s)},[c,u,n,f,b,s,r,o,h]}class p extends q{constructor(e){super(),A(this,e,Y,X,D,{value:0,style:7,choices:1,disabled:2,label:3,show_label:4})}}function x(l){let e,t,s,c,o;const u=[l[8]];let n={};for(let a=0;aH(s,"value",f)),s.$on("change",l[10]),{c(){v(e.$$.fragment),t=T(),v(s.$$.fragment)},m(a,r){C(e,a,r),g(a,t,r),C(s,a,r),o=!0},p(a,r){const h=r&256?J(u,[M(a[8])]):{};e.$set(h);const i={};r&8&&(i.choices=a[3]),r&64&&(i.label=a[6]),r&16&&(i.style=a[4]),r&128&&(i.show_label=a[7]),r&32&&(i.disabled=a[5]==="static"),!c&&r&1&&(c=!0,i.value=a[0],N(()=>c=!1)),s.$set(i)},i(a){o||(y(e.$$.fragment,a),y(s.$$.fragment,a),o=!0)},o(a){G(e.$$.fragment,a),G(s.$$.fragment,a),o=!1},d(a){S(e,a),a&&m(t),S(s,a)}}}function $(l){let e,t;return e=new U({props:{visible:l[2],elem_id:l[1],type:"fieldset",disable:typeof l[4].container=="boolean"&&!l[4].container,$$slots:{default:[x]},$$scope:{ctx:l}}}),{c(){v(e.$$.fragment)},m(s,c){C(e,s,c),t=!0},p(s,[c]){const o={};c&4&&(o.visible=s[2]),c&2&&(o.elem_id=s[1]),c&16&&(o.disable=typeof s[4].container=="boolean"&&!s[4].container),c&2553&&(o.$$scope={dirty:c,ctx:s}),e.$set(o)},i(s){t||(y(e.$$.fragment,s),t=!0)},o(s){G(e.$$.fragment,s),t=!1},d(s){S(e,s)}}}function ee(l,e,t){let{elem_id:s=""}=e,{visible:c=!0}=e,{value:o=[]}=e,{choices:u}=e,{style:n={}}=e,{mode:f}=e,{label:b="Checkbox Group"}=e,{show_label:a}=e,{loading_status:r}=e;function h(_){o=_,t(0,o)}function i(_){Q.call(this,l,_)}return l.$$set=_=>{"elem_id"in _&&t(1,s=_.elem_id),"visible"in _&&t(2,c=_.visible),"value"in _&&t(0,o=_.value),"choices"in _&&t(3,u=_.choices),"style"in _&&t(4,n=_.style),"mode"in _&&t(5,f=_.mode),"label"in _&&t(6,b=_.label),"show_label"in _&&t(7,a=_.show_label),"loading_status"in _&&t(8,r=_.loading_status)},[o,s,c,u,n,f,b,a,r,h,i]}class le extends q{constructor(e){super(),A(this,e,ee,$,D,{elem_id:1,visible:2,value:0,choices:3,style:4,mode:5,label:6,show_label:7,loading_status:8})}}var se=le;const ae=["static","dynamic"],ne=l=>({type:"Array",description:"list of selected choices",example_data:l.choices.length?[l.choices[0]]:[]});export{se as Component,ne as document,ae as modes}; +//# sourceMappingURL=index.6010fe83.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.6010fe83.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.6010fe83.js.map new file mode 100644 index 0000000000000000000000000000000000000000..370cd96b8f32e31be094b794854a3e6ccf3b66c6 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.6010fe83.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.6010fe83.js","sources":["../../../../ui/packages/form/src/CheckboxGroup.svelte","../../../../ui/packages/app/src/components/CheckboxGroup/CheckboxGroup.svelte","../../../../ui/packages/app/src/components/CheckboxGroup/index.ts"],"sourcesContent":["\n\n{label}\n\n
    \n\t{#each choices as choice}\n\t\t\n\t\t\t toggleChoice(choice)}\n\t\t\t\tchecked={value.includes(choice)}\n\t\t\t\ttype=\"checkbox\"\n\t\t\t\tname=\"test\"\n\t\t\t\tclass=\"gr-check-radio gr-checkbox\"\n\t\t\t/> {choice}\n\t{/each}\n
    \n","\n\n\n\t\n\n\t\n\n","export { default as Component } from \"./CheckboxGroup.svelte\";\nexport const modes = [\"static\", \"dynamic\"];\n\nexport const document = (config: Record) => ({\n\ttype: \"Array\",\n\tdescription: \"list of selected choices\",\n\texample_data: config.choices.length ? [config.choices[0]] : []\n});\n"],"names":[],"mappings":"sVA4B0B,wCAAA,oDAeA,2IAJb,KAAM,SAAS,sRALqI,gCADnI,cAD5B,SAIC,cAOG,yFAJO,KAAM,SAAS,mCAIF,wLATuI,sDADnI,wIAFtB,0BAAL,iNADH,kKACQ,uBAAL,6HAAA,wIAzBS,eACA,eACA,cACA,WAAoB,OACpB,YACA,qBAEL,GAAW,IAEX,EAAgB,IACjB,EAAM,SAAS,CAAM,EACxB,EAAM,OAAO,EAAM,QAAQ,CAAM,EAAG,CAAC,EAErC,EAAM,KAAK,CAAM,EAElB,EAAS,SAAU,CAAK,eAiBL,EAAa,CAAM,wPAbjC,kBAAmB,EAAW,GAAQ,gBAAgB,sLCAzC,mKASR,OAAS,qOATD,6IASR,OAAS,uSAXJ,MAAM,WAAc,YAAc,KAAM,uLAAxC,MAAM,WAAc,YAAc,KAAM,gKAhB7C,UAAkB,OAClB,UAAmB,OACnB,eACA,cACA,eACA,WACA,QAAgB,qBAChB,iBAEA,kkBCfC,IAAQ,CAAC,SAAU,SAAS,EAE5B,GAAW,AAAC,KACxB,KAAM,gBACN,YAAa,2BACb,aAAc,EAAO,QAAQ,OAAS,CAAC,EAAO,QAAQ,EAAE,EAAI,EAC7D"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.64cd2c53.css b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.64cd2c53.css new file mode 100644 index 0000000000000000000000000000000000000000..0107402b5cf065d10c4cfd756200b56b923f0cc9 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.64cd2c53.css @@ -0,0 +1 @@ +input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input{-moz-appearance:textfield}.input-number{--tw-shadow:0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.input-number:hover{--tw-shadow:0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark .input-number{--tw-bg-opacity:1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.input-dropdown .dark .selector{background-color:#0b0f19;--tw-bg-opacity:1;background-color:rgb(11 15 25 / var(--tw-bg-opacity))}.input-dropdown .selector{--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));--tw-shadow:0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.input-dropdown .selector:hover{--tw-shadow:0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.input-dropdown .dark .selector{--tw-bg-opacity:1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.input-dropdown .dropdown-menu{--tw-shadow:0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.input-dropdown .dark .dropdown-item{background-color:#0b0f19;--tw-bg-opacity:1;background-color:rgb(11 15 25 / var(--tw-bg-opacity))}.input-dropdown .dropdown-item{--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.input-dropdown .dropdown-item:hover{font-weight:600}.input-dropdown .dark .dropdown-item{--tw-bg-opacity:1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.selected.svelte-r8ethh .check.svelte-r8ethh{opacity:1}.input-checkbox.svelte-r8ethh .dark .checkbox-item.svelte-r8ethh{background-color:#0b0f19;--tw-bg-opacity:1;background-color:rgb(11 15 25 / var(--tw-bg-opacity))}.input-checkbox.svelte-r8ethh .checkbox-item.svelte-r8ethh{--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));--tw-shadow:0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.input-checkbox.svelte-r8ethh .checkbox-item.svelte-r8ethh:hover{--tw-shadow:0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.input-checkbox.svelte-r8ethh .dark .checkbox-item.svelte-r8ethh{--tw-bg-opacity:1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.input-checkbox.svelte-r8ethh .checkbox-item.selected.svelte-r8ethh{--tw-bg-opacity:1;background-color:rgb(245 158 11 / var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.input-checkbox.svelte-r8ethh .dark .checkbox-item.selected.svelte-r8ethh{--tw-bg-opacity:1;background-color:rgb(220 38 38 / var(--tw-bg-opacity))}.selected.svelte-h5sk3f .check.svelte-h5sk3f{opacity:1}.input-checkbox-group.svelte-h5sk3f .dark .checkbox-item.svelte-h5sk3f{background-color:#0b0f19;--tw-bg-opacity:1;background-color:rgb(11 15 25 / var(--tw-bg-opacity))}.input-checkbox-group.svelte-h5sk3f .checkbox-item.svelte-h5sk3f{--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));--tw-shadow:0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.input-checkbox-group.svelte-h5sk3f .checkbox-item.svelte-h5sk3f:hover{--tw-shadow:0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.input-checkbox-group.svelte-h5sk3f .dark .checkbox-item.svelte-h5sk3f{--tw-bg-opacity:1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.input-checkbox-group.svelte-h5sk3f .checkbox.svelte-h5sk3f{--tw-bg-opacity:1;background-color:rgb(243 244 246 / var(--tw-bg-opacity));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.input-checkbox-group.svelte-h5sk3f .dark .checkbox.svelte-h5sk3f{--tw-bg-opacity:1;background-color:rgb(156 163 175 / var(--tw-bg-opacity))}.input-checkbox-group.svelte-h5sk3f .checkbox-item.selected.svelte-h5sk3f{--tw-bg-opacity:1;background-color:rgb(245 158 11 / var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.input-checkbox-group.svelte-h5sk3f .dark .checkbox-item.selected.svelte-h5sk3f{--tw-bg-opacity:1;background-color:rgb(220 38 38 / var(--tw-bg-opacity))}.input-checkbox-group.svelte-h5sk3f .selected .checkbox.svelte-h5sk3f{--tw-bg-opacity:1;background-color:rgb(217 119 6 / var(--tw-bg-opacity))}.input-checkbox-group.svelte-h5sk3f .dark .selected .checkbox.svelte-h5sk3f{--tw-bg-opacity:1;background-color:rgb(185 28 28 / var(--tw-bg-opacity))}.range.svelte-3aijhr.svelte-3aijhr::-webkit-slider-thumb{-webkit-appearance:none;height:1.25rem;width:1.25rem;cursor:pointer;appearance:none;border-radius:.25rem}.range.svelte-3aijhr.svelte-3aijhr::-moz-range-thumb{height:1.25rem;width:1.25rem;cursor:pointer;appearance:none;border-radius:.25rem}.input-slider.svelte-3aijhr .dark .range.svelte-3aijhr{background-color:#0b0f19;--tw-bg-opacity:1;background-color:rgb(11 15 25 / var(--tw-bg-opacity))}.input-slider.svelte-3aijhr .range.svelte-3aijhr{height:.75rem;--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));--tw-shadow:0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.input-slider.svelte-3aijhr .range.svelte-3aijhr:hover{--tw-shadow:0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.input-slider.svelte-3aijhr .dark .range.svelte-3aijhr{--tw-bg-opacity:1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.input-slider.svelte-3aijhr .range.svelte-3aijhr::-webkit-slider-thumb{background-image:linear-gradient(to bottom,var(--tw-gradient-stops));--tw-gradient-from:#fbbf24;--tw-gradient-to:rgb(251 191 36 / 0);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to:#f59e0b;--tw-shadow:0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.input-slider.svelte-3aijhr .dark .range.svelte-3aijhr::-webkit-slider-thumb{--tw-gradient-from:#ef4444;--tw-gradient-to:rgb(239 68 68 / 0);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to:#dc2626}.input-slider.svelte-3aijhr .range.svelte-3aijhr::-moz-range-thumb{background-image:linear-gradient(to bottom,var(--tw-gradient-stops));--tw-gradient-from:#fbbf24;--tw-gradient-to:rgb(251 191 36 / 0);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to:#f59e0b;--tw-shadow:0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.input-radio.svelte-145r163 .dark .radio-item.svelte-145r163{background-color:#0b0f19;--tw-bg-opacity:1;background-color:rgb(11 15 25 / var(--tw-bg-opacity))}.input-radio.svelte-145r163 .radio-item.svelte-145r163{--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));--tw-shadow:0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.input-radio.svelte-145r163 .radio-item.svelte-145r163:hover{--tw-shadow:0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.input-radio.svelte-145r163 .dark .radio-item.svelte-145r163{--tw-bg-opacity:1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.input-radio.svelte-145r163 .radio-circle.svelte-145r163{box-sizing:border-box;height:1rem;width:1rem;border-radius:9999px}.input-radio.svelte-145r163 .radio-item.selected.svelte-145r163{--tw-bg-opacity:1;background-color:rgb(245 158 11 / var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity));--tw-shadow:0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.input-radio.svelte-145r163 .dark .radio-item.selected.svelte-145r163{--tw-bg-opacity:1;background-color:rgb(220 38 38 / var(--tw-bg-opacity))} diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.6a107eaa.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.6a107eaa.js new file mode 100644 index 0000000000000000000000000000000000000000..fd717d6c2ce494facb11b557064f5395ae5bda06 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.6a107eaa.js @@ -0,0 +1,3744 @@ +import{S as by,i as _y,s as wy,w as Fp,b as Aa,f as uf,g as zf,x as cu,n as cf,e as Gh,F as TG,J as FD,I as gA,O as AG,c as u0,m as c0,L as MG,j as Bh,k as jh,o as f0,K as Z4,ap as Cf,B as SG,D as EG,E as CG,a5 as OG,a6 as M5,M as bC,t as LG,h as PG,a as J4,P as DG,R as IG,T as zG,U as RG,V as FG}from"./index.cb50929e.js";import{c as Ro,a as Jx,g as NG}from"./_commonjsHelpers.88e99c8f.js";import{g as BG}from"./color.dcb69c9e.js";import{a as Vv,n as jG,b as UG,c as V2,t as b0,f as K4,p as VG,d as qG,e as HG,g as ND,h as $G,i as GG,j as Yo,k as Bm,l as WG,_ as BD,m as jD,x as YG,y as XG,o as Zh,R as q2,r as UD,q as mA,s as vA,C as yA,u as _C,v as wC,w as H2,z as Xp,A as Q4,B as zl,D as ky,E as ZG,F as JG,G as KG,H as QG,I as eW,J as tW,K as $2,L as nW,M as rW,N as iW,O as aW,P as kC,Q as jm,S as xA,T as G2,U as TC,V as Ed,W as W2,X as oW,Y as cp,Z as sW,$ as ek,a0 as lW,a1 as c_,a2 as uW}from"./linear.955f0731.js";import{d as cW}from"./dsv.7fe76a93.js";import{B as fW}from"./BlockLabel.4b1193ac.js";function hW(t){let n,e,o,f,r,a,u;return{c(){n=Fp("svg"),e=Fp("circle"),o=Fp("circle"),f=Fp("circle"),r=Fp("circle"),a=Fp("circle"),u=Fp("path"),Aa(e,"cx","20"),Aa(e,"cy","4"),Aa(e,"r","2"),Aa(e,"fill","currentColor"),Aa(o,"cx","8"),Aa(o,"cy","16"),Aa(o,"r","2"),Aa(o,"fill","currentColor"),Aa(f,"cx","28"),Aa(f,"cy","12"),Aa(f,"r","2"),Aa(f,"fill","currentColor"),Aa(r,"cx","11"),Aa(r,"cy","7"),Aa(r,"r","2"),Aa(r,"fill","currentColor"),Aa(a,"cx","16"),Aa(a,"cy","24"),Aa(a,"r","2"),Aa(a,"fill","currentColor"),Aa(u,"fill","currentColor"),Aa(u,"d","M30 3.413L28.586 2L4 26.585V2H2v26a2 2 0 0 0 2 2h26v-2H5.413Z"),Aa(n,"xmlns","http://www.w3.org/2000/svg"),Aa(n,"xmlns:xlink","http://www.w3.org/1999/xlink"),Aa(n,"aria-hidden","true"),Aa(n,"role","img"),Aa(n,"class","iconify iconify--carbon"),Aa(n,"width","100%"),Aa(n,"height","100%"),Aa(n,"preserveAspectRatio","xMidYMid meet"),Aa(n,"viewBox","0 0 32 32")},m(c,i){uf(c,n,i),zf(n,e),zf(n,o),zf(n,f),zf(n,r),zf(n,a),zf(n,u)},p:cu,i:cu,o:cu,d(c){c&&cf(n)}}}class VD extends by{constructor(n){super(),_y(this,n,null,hW,wy,{})}}var qD={exports:{}};(function(t,n){(function(e){t.exports=e()})(function(){return function e(o,f,r){function a(i,s){if(!f[i]){if(!o[i]){var l=typeof Jx=="function"&&Jx;if(!s&&l)return l(i,!0);if(u)return u(i,!0);var d=new Error("Cannot find module '"+i+"'");throw d.code="MODULE_NOT_FOUND",d}var h=f[i]={exports:{}};o[i][0].call(h.exports,function(m){return a(o[i][1][m]||m)},h,h.exports,e,o,f,r)}return f[i].exports}for(var u=typeof Jx=="function"&&Jx,c=0;c:not(.watermark)":"opacity:0;-webkit-transition:opacity .3s ease 0s;-moz-transition:opacity .3s ease 0s;-ms-transition:opacity .3s ease 0s;-o-transition:opacity .3s ease 0s;transition:opacity .3s ease 0s;","X:hover .modebar--hover .modebar-group":"opacity:1;","X .modebar-group":"float:left;display:inline-block;box-sizing:border-box;padding-left:8px;position:relative;vertical-align:middle;white-space:nowrap;","X .modebar-btn":"position:relative;font-size:16px;padding:3px 4px;height:22px;cursor:pointer;line-height:normal;box-sizing:border-box;","X .modebar-btn svg":"position:relative;top:2px;","X .modebar.vertical":"display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-end;max-height:100%;","X .modebar.vertical svg":"top:-1px;","X .modebar.vertical .modebar-group":"display:block;float:none;padding-left:0px;padding-bottom:8px;","X .modebar.vertical .modebar-group .modebar-btn":"display:block;text-align:center;","X [data-title]:before,X [data-title]:after":"position:absolute;-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);display:none;opacity:0;z-index:1001;pointer-events:none;top:110%;right:50%;","X [data-title]:hover:before,X [data-title]:hover:after":"display:block;opacity:1;","X [data-title]:before":'content:"";position:absolute;background:transparent;border:6px solid transparent;z-index:1002;margin-top:-12px;border-bottom-color:#69738a;margin-right:-6px;',"X [data-title]:after":"content:attr(data-title);background:#69738a;color:#fff;padding:8px 10px;font-size:12px;line-height:12px;white-space:nowrap;margin-right:-18px;border-radius:2px;","X .vertical [data-title]:before,X .vertical [data-title]:after":"top:0%;right:200%;","X .vertical [data-title]:before":"border:6px solid transparent;border-left-color:#69738a;margin-top:8px;margin-right:-30px;","X .select-outline":"fill:none;stroke-width:1;shape-rendering:crispEdges;","X .select-outline-1":"stroke:#fff;","X .select-outline-2":"stroke:#000;stroke-dasharray:2px 2px;",Y:'font-family:"Open Sans",verdana,arial,sans-serif;position:fixed;top:50px;right:20px;z-index:10000;font-size:10pt;max-width:180px;',"Y p":"margin:0;","Y .notifier-note":"min-width:180px;max-width:250px;border:1px solid #fff;z-index:3000;margin:0;background-color:#8c97af;background-color:rgba(140,151,175,.9);color:#fff;padding:10px;overflow-wrap:break-word;word-wrap:break-word;-ms-hyphens:auto;-webkit-hyphens:auto;hyphens:auto;","Y .notifier-close":"color:#fff;opacity:.8;float:right;padding:0 5px;background:none;border:none;font-size:20px;font-weight:bold;line-height:20px;","Y .notifier-close:hover":"color:#444;text-decoration:none;cursor:pointer;"};for(var u in a){var c=u.replace(/^,/," ,").replace(/X/g,".js-plotly-plot .plotly").replace(/Y/g,".plotly-notifier");r.addStyleRule(c,a[u])}},{"../src/lib":503}],2:[function(e,o,f){o.exports=e("../src/transforms/aggregate")},{"../src/transforms/aggregate":1118}],3:[function(e,o,f){o.exports=e("../src/traces/bar")},{"../src/traces/bar":656}],4:[function(e,o,f){o.exports=e("../src/traces/barpolar")},{"../src/traces/barpolar":669}],5:[function(e,o,f){o.exports=e("../src/traces/box")},{"../src/traces/box":679}],6:[function(e,o,f){o.exports=e("../src/components/calendars")},{"../src/components/calendars":364}],7:[function(e,o,f){o.exports=e("../src/traces/candlestick")},{"../src/traces/candlestick":688}],8:[function(e,o,f){o.exports=e("../src/traces/carpet")},{"../src/traces/carpet":707}],9:[function(e,o,f){o.exports=e("../src/traces/choropleth")},{"../src/traces/choropleth":721}],10:[function(e,o,f){o.exports=e("../src/traces/choroplethmapbox")},{"../src/traces/choroplethmapbox":728}],11:[function(e,o,f){o.exports=e("../src/traces/cone")},{"../src/traces/cone":734}],12:[function(e,o,f){o.exports=e("../src/traces/contour")},{"../src/traces/contour":749}],13:[function(e,o,f){o.exports=e("../src/traces/contourcarpet")},{"../src/traces/contourcarpet":760}],14:[function(e,o,f){o.exports=e("../src/core")},{"../src/core":481}],15:[function(e,o,f){o.exports=e("../src/traces/densitymapbox")},{"../src/traces/densitymapbox":768}],16:[function(e,o,f){o.exports=e("../src/transforms/filter")},{"../src/transforms/filter":1119}],17:[function(e,o,f){o.exports=e("../src/traces/funnel")},{"../src/traces/funnel":778}],18:[function(e,o,f){o.exports=e("../src/traces/funnelarea")},{"../src/traces/funnelarea":787}],19:[function(e,o,f){o.exports=e("../src/transforms/groupby")},{"../src/transforms/groupby":1120}],20:[function(e,o,f){o.exports=e("../src/traces/heatmap")},{"../src/traces/heatmap":800}],21:[function(e,o,f){o.exports=e("../src/traces/heatmapgl")},{"../src/traces/heatmapgl":811}],22:[function(e,o,f){o.exports=e("../src/traces/histogram")},{"../src/traces/histogram":823}],23:[function(e,o,f){o.exports=e("../src/traces/histogram2d")},{"../src/traces/histogram2d":829}],24:[function(e,o,f){o.exports=e("../src/traces/histogram2dcontour")},{"../src/traces/histogram2dcontour":833}],25:[function(e,o,f){o.exports=e("../src/traces/icicle")},{"../src/traces/icicle":839}],26:[function(e,o,f){o.exports=e("../src/traces/image")},{"../src/traces/image":852}],27:[function(e,o,f){var r=e("./core");r.register([e("./bar"),e("./box"),e("./heatmap"),e("./histogram"),e("./histogram2d"),e("./histogram2dcontour"),e("./contour"),e("./scatterternary"),e("./violin"),e("./funnel"),e("./waterfall"),e("./image"),e("./pie"),e("./sunburst"),e("./treemap"),e("./icicle"),e("./funnelarea"),e("./scatter3d"),e("./surface"),e("./isosurface"),e("./volume"),e("./mesh3d"),e("./cone"),e("./streamtube"),e("./scattergeo"),e("./choropleth"),e("./scattergl"),e("./splom"),e("./pointcloud"),e("./heatmapgl"),e("./parcoords"),e("./parcats"),e("./scattermapbox"),e("./choroplethmapbox"),e("./densitymapbox"),e("./sankey"),e("./indicator"),e("./table"),e("./carpet"),e("./scattercarpet"),e("./contourcarpet"),e("./ohlc"),e("./candlestick"),e("./scatterpolar"),e("./scatterpolargl"),e("./barpolar"),e("./scattersmith"),e("./aggregate"),e("./filter"),e("./groupby"),e("./sort"),e("./calendars")]),o.exports=r},{"./aggregate":2,"./bar":3,"./barpolar":4,"./box":5,"./calendars":6,"./candlestick":7,"./carpet":8,"./choropleth":9,"./choroplethmapbox":10,"./cone":11,"./contour":12,"./contourcarpet":13,"./core":14,"./densitymapbox":15,"./filter":16,"./funnel":17,"./funnelarea":18,"./groupby":19,"./heatmap":20,"./heatmapgl":21,"./histogram":22,"./histogram2d":23,"./histogram2dcontour":24,"./icicle":25,"./image":26,"./indicator":28,"./isosurface":29,"./mesh3d":30,"./ohlc":31,"./parcats":32,"./parcoords":33,"./pie":34,"./pointcloud":35,"./sankey":36,"./scatter3d":37,"./scattercarpet":38,"./scattergeo":39,"./scattergl":40,"./scattermapbox":41,"./scatterpolar":42,"./scatterpolargl":43,"./scattersmith":44,"./scatterternary":45,"./sort":46,"./splom":47,"./streamtube":48,"./sunburst":49,"./surface":50,"./table":51,"./treemap":52,"./violin":53,"./volume":54,"./waterfall":55}],28:[function(e,o,f){o.exports=e("../src/traces/indicator")},{"../src/traces/indicator":860}],29:[function(e,o,f){o.exports=e("../src/traces/isosurface")},{"../src/traces/isosurface":866}],30:[function(e,o,f){o.exports=e("../src/traces/mesh3d")},{"../src/traces/mesh3d":871}],31:[function(e,o,f){o.exports=e("../src/traces/ohlc")},{"../src/traces/ohlc":876}],32:[function(e,o,f){o.exports=e("../src/traces/parcats")},{"../src/traces/parcats":885}],33:[function(e,o,f){o.exports=e("../src/traces/parcoords")},{"../src/traces/parcoords":896}],34:[function(e,o,f){o.exports=e("../src/traces/pie")},{"../src/traces/pie":907}],35:[function(e,o,f){o.exports=e("../src/traces/pointcloud")},{"../src/traces/pointcloud":916}],36:[function(e,o,f){o.exports=e("../src/traces/sankey")},{"../src/traces/sankey":922}],37:[function(e,o,f){o.exports=e("../src/traces/scatter3d")},{"../src/traces/scatter3d":960}],38:[function(e,o,f){o.exports=e("../src/traces/scattercarpet")},{"../src/traces/scattercarpet":967}],39:[function(e,o,f){o.exports=e("../src/traces/scattergeo")},{"../src/traces/scattergeo":975}],40:[function(e,o,f){o.exports=e("../src/traces/scattergl")},{"../src/traces/scattergl":989}],41:[function(e,o,f){o.exports=e("../src/traces/scattermapbox")},{"../src/traces/scattermapbox":999}],42:[function(e,o,f){o.exports=e("../src/traces/scatterpolar")},{"../src/traces/scatterpolar":1007}],43:[function(e,o,f){o.exports=e("../src/traces/scatterpolargl")},{"../src/traces/scatterpolargl":1015}],44:[function(e,o,f){o.exports=e("../src/traces/scattersmith")},{"../src/traces/scattersmith":1022}],45:[function(e,o,f){o.exports=e("../src/traces/scatterternary")},{"../src/traces/scatterternary":1030}],46:[function(e,o,f){o.exports=e("../src/transforms/sort")},{"../src/transforms/sort":1122}],47:[function(e,o,f){o.exports=e("../src/traces/splom")},{"../src/traces/splom":1040}],48:[function(e,o,f){o.exports=e("../src/traces/streamtube")},{"../src/traces/streamtube":1048}],49:[function(e,o,f){o.exports=e("../src/traces/sunburst")},{"../src/traces/sunburst":1056}],50:[function(e,o,f){o.exports=e("../src/traces/surface")},{"../src/traces/surface":1065}],51:[function(e,o,f){o.exports=e("../src/traces/table")},{"../src/traces/table":1073}],52:[function(e,o,f){o.exports=e("../src/traces/treemap")},{"../src/traces/treemap":1084}],53:[function(e,o,f){o.exports=e("../src/traces/violin")},{"../src/traces/violin":1097}],54:[function(e,o,f){o.exports=e("../src/traces/volume")},{"../src/traces/volume":1105}],55:[function(e,o,f){o.exports=e("../src/traces/waterfall")},{"../src/traces/waterfall":1113}],56:[function(e,o,f){(function(r,a){typeof f=="object"&&o!==void 0?a(f,e("d3-array"),e("d3-collection"),e("d3-shape"),e("elementary-circuits-directed-graph")):a(r.d3=r.d3||{},r.d3,r.d3,r.d3,null)})(this,function(r,a,u,c,i){function s(ie){return ie.target.depth}function l(ie,ae){return ie.sourceLinks.length?ie.depth:ae-1}function d(ie){return function(){return ie}}i=i&&i.hasOwnProperty("default")?i.default:i;var h=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(ie){return typeof ie}:function(ie){return ie&&typeof Symbol=="function"&&ie.constructor===Symbol&&ie!==Symbol.prototype?"symbol":typeof ie};function m(ie,ae){return p(ie.source,ae.source)||ie.index-ae.index}function g(ie,ae){return p(ie.target,ae.target)||ie.index-ae.index}function p(ie,ae){return ie.partOfCycle===ae.partOfCycle?ie.y0-ae.y0:ie.circularLinkType==="top"||ae.circularLinkType==="bottom"?-1:1}function v(ie){return ie.value}function y(ie){return(ie.y0+ie.y1)/2}function x(ie){return y(ie.source)}function w(ie){return y(ie.target)}function k(ie){return ie.index}function b(ie){return ie.nodes}function T(ie){return ie.links}function _(ie,ae){var ue=ie.get(ae);if(!ue)throw new Error("missing: "+ae);return ue}function M(ie,ae){return ae(ie)}function A(ie,ae,ue){var le=0;if(ue===null){for(var ge=[],fe=0;fe1||ge>1)}function R(ie,ae,ue){return ie.sort(L),ie.forEach(function(le,ge){var fe,me,_e=0;if(Q(le,ue)&&O(le))le.circularPathData.verticalBuffer=_e+le.width/2;else{for(var we=0;weme.source.column)){var Te=ie[we].circularPathData.verticalBuffer+ie[we].width/2+ae;_e=Te>_e?Te:_e}le.circularPathData.verticalBuffer=_e+le.width/2}}),ie}function z(ie,ae,ue,le){var ge=a.min(ie.links,function(fe){return fe.source.y0});ie.links.forEach(function(fe){fe.circular&&(fe.circularPathData={})}),R(ie.links.filter(function(fe){return fe.circularLinkType=="top"}),ae,le),R(ie.links.filter(function(fe){return fe.circularLinkType=="bottom"}),ae,le),ie.links.forEach(function(fe){if(fe.circular){if(fe.circularPathData.arcRadius=fe.width+10,fe.circularPathData.leftNodeBuffer=5,fe.circularPathData.rightNodeBuffer=5,fe.circularPathData.sourceWidth=fe.source.x1-fe.source.x0,fe.circularPathData.sourceX=fe.source.x0+fe.circularPathData.sourceWidth,fe.circularPathData.targetX=fe.target.x0,fe.circularPathData.sourceY=fe.y0,fe.circularPathData.targetY=fe.y1,Q(fe,le)&&O(fe))fe.circularPathData.leftSmallArcRadius=10+fe.width/2,fe.circularPathData.leftLargeArcRadius=10+fe.width/2,fe.circularPathData.rightSmallArcRadius=10+fe.width/2,fe.circularPathData.rightLargeArcRadius=10+fe.width/2,fe.circularLinkType=="bottom"?(fe.circularPathData.verticalFullExtent=fe.source.y1+25+fe.circularPathData.verticalBuffer,fe.circularPathData.verticalLeftInnerExtent=fe.circularPathData.verticalFullExtent-fe.circularPathData.leftLargeArcRadius,fe.circularPathData.verticalRightInnerExtent=fe.circularPathData.verticalFullExtent-fe.circularPathData.rightLargeArcRadius):(fe.circularPathData.verticalFullExtent=fe.source.y0-25-fe.circularPathData.verticalBuffer,fe.circularPathData.verticalLeftInnerExtent=fe.circularPathData.verticalFullExtent+fe.circularPathData.leftLargeArcRadius,fe.circularPathData.verticalRightInnerExtent=fe.circularPathData.verticalFullExtent+fe.circularPathData.rightLargeArcRadius);else{var me=fe.source.column,_e=fe.circularLinkType,we=ie.links.filter(function(de){return de.source.column==me&&de.circularLinkType==_e});fe.circularLinkType=="bottom"?we.sort(N):we.sort(P);var Te=0;we.forEach(function(de,ye){de.circularLinkID==fe.circularLinkID&&(fe.circularPathData.leftSmallArcRadius=10+fe.width/2+Te,fe.circularPathData.leftLargeArcRadius=10+fe.width/2+ye*ae+Te),Te+=de.width}),me=fe.target.column,we=ie.links.filter(function(de){return de.target.column==me&&de.circularLinkType==_e}),fe.circularLinkType=="bottom"?we.sort(G):we.sort(B),Te=0,we.forEach(function(de,ye){de.circularLinkID==fe.circularLinkID&&(fe.circularPathData.rightSmallArcRadius=10+fe.width/2+Te,fe.circularPathData.rightLargeArcRadius=10+fe.width/2+ye*ae+Te),Te+=de.width}),fe.circularLinkType=="bottom"?(fe.circularPathData.verticalFullExtent=Math.max(ue,fe.source.y1,fe.target.y1)+25+fe.circularPathData.verticalBuffer,fe.circularPathData.verticalLeftInnerExtent=fe.circularPathData.verticalFullExtent-fe.circularPathData.leftLargeArcRadius,fe.circularPathData.verticalRightInnerExtent=fe.circularPathData.verticalFullExtent-fe.circularPathData.rightLargeArcRadius):(fe.circularPathData.verticalFullExtent=ge-25-fe.circularPathData.verticalBuffer,fe.circularPathData.verticalLeftInnerExtent=fe.circularPathData.verticalFullExtent+fe.circularPathData.leftLargeArcRadius,fe.circularPathData.verticalRightInnerExtent=fe.circularPathData.verticalFullExtent+fe.circularPathData.rightLargeArcRadius)}fe.circularPathData.leftInnerExtent=fe.circularPathData.sourceX+fe.circularPathData.leftNodeBuffer,fe.circularPathData.rightInnerExtent=fe.circularPathData.targetX-fe.circularPathData.rightNodeBuffer,fe.circularPathData.leftFullExtent=fe.circularPathData.sourceX+fe.circularPathData.leftLargeArcRadius+fe.circularPathData.leftNodeBuffer,fe.circularPathData.rightFullExtent=fe.circularPathData.targetX-fe.circularPathData.rightLargeArcRadius-fe.circularPathData.rightNodeBuffer}if(fe.circular)fe.path=function(de){var ye="";return ye=de.circularLinkType=="top"?"M"+de.circularPathData.sourceX+" "+de.circularPathData.sourceY+" L"+de.circularPathData.leftInnerExtent+" "+de.circularPathData.sourceY+" A"+de.circularPathData.leftLargeArcRadius+" "+de.circularPathData.leftSmallArcRadius+" 0 0 0 "+de.circularPathData.leftFullExtent+" "+(de.circularPathData.sourceY-de.circularPathData.leftSmallArcRadius)+" L"+de.circularPathData.leftFullExtent+" "+de.circularPathData.verticalLeftInnerExtent+" A"+de.circularPathData.leftLargeArcRadius+" "+de.circularPathData.leftLargeArcRadius+" 0 0 0 "+de.circularPathData.leftInnerExtent+" "+de.circularPathData.verticalFullExtent+" L"+de.circularPathData.rightInnerExtent+" "+de.circularPathData.verticalFullExtent+" A"+de.circularPathData.rightLargeArcRadius+" "+de.circularPathData.rightLargeArcRadius+" 0 0 0 "+de.circularPathData.rightFullExtent+" "+de.circularPathData.verticalRightInnerExtent+" L"+de.circularPathData.rightFullExtent+" "+(de.circularPathData.targetY-de.circularPathData.rightSmallArcRadius)+" A"+de.circularPathData.rightLargeArcRadius+" "+de.circularPathData.rightSmallArcRadius+" 0 0 0 "+de.circularPathData.rightInnerExtent+" "+de.circularPathData.targetY+" L"+de.circularPathData.targetX+" "+de.circularPathData.targetY:"M"+de.circularPathData.sourceX+" "+de.circularPathData.sourceY+" L"+de.circularPathData.leftInnerExtent+" "+de.circularPathData.sourceY+" A"+de.circularPathData.leftLargeArcRadius+" "+de.circularPathData.leftSmallArcRadius+" 0 0 1 "+de.circularPathData.leftFullExtent+" "+(de.circularPathData.sourceY+de.circularPathData.leftSmallArcRadius)+" L"+de.circularPathData.leftFullExtent+" "+de.circularPathData.verticalLeftInnerExtent+" A"+de.circularPathData.leftLargeArcRadius+" "+de.circularPathData.leftLargeArcRadius+" 0 0 1 "+de.circularPathData.leftInnerExtent+" "+de.circularPathData.verticalFullExtent+" L"+de.circularPathData.rightInnerExtent+" "+de.circularPathData.verticalFullExtent+" A"+de.circularPathData.rightLargeArcRadius+" "+de.circularPathData.rightLargeArcRadius+" 0 0 1 "+de.circularPathData.rightFullExtent+" "+de.circularPathData.verticalRightInnerExtent+" L"+de.circularPathData.rightFullExtent+" "+(de.circularPathData.targetY+de.circularPathData.rightSmallArcRadius)+" A"+de.circularPathData.rightLargeArcRadius+" "+de.circularPathData.rightSmallArcRadius+" 0 0 1 "+de.circularPathData.rightInnerExtent+" "+de.circularPathData.targetY+" L"+de.circularPathData.targetX+" "+de.circularPathData.targetY,ye}(fe);else{var Oe=c.linkHorizontal().source(function(de){return[de.source.x0+(de.source.x1-de.source.x0),de.y0]}).target(function(de){return[de.target.x0,de.y1]});fe.path=Oe(fe)}})}function L(ie,ae){return W(ie)==W(ae)?ie.circularLinkType=="bottom"?N(ie,ae):P(ie,ae):W(ae)-W(ie)}function P(ie,ae){return ie.y0-ae.y0}function N(ie,ae){return ae.y0-ie.y0}function B(ie,ae){return ie.y1-ae.y1}function G(ie,ae){return ae.y1-ie.y1}function W(ie){return ie.target.column-ie.source.column}function K(ie){return ie.target.x0-ie.source.x1}function te(ie,ae){var ue=E(ie),le=K(ae)/Math.tan(ue);return H(ie)=="up"?ie.y1+le:ie.y1-le}function Y(ie,ae){var ue=E(ie),le=K(ae)/Math.tan(ue);return H(ie)=="up"?ie.y1-le:ie.y1+le}function Z(ie,ae,ue,le){ie.links.forEach(function(ge){if(!ge.circular&&ge.target.column-ge.source.column>1){var fe=ge.source.column+1,me=ge.target.column-1,_e=1,we=me-fe+1;for(_e=1;fe<=me;fe++,_e++)ie.nodes.forEach(function(Te){if(Te.column==fe){var Oe,de=_e/(we+1),ye=Math.pow(1-de,3),Me=3*de*Math.pow(1-de,2),ke=3*Math.pow(de,2)*(1-de),Ee=Math.pow(de,3),ze=ye*ge.y0+Me*ge.y0+ke*ge.y1+Ee*ge.y1,Fe=ze-ge.width/2,Ve=ze+ge.width/2;Fe>Te.y0&&FeTe.y0&&VeTe.y1)&&(Oe=Ve-Te.y0+10,Te=U(Te,Oe,ae,ue),ie.nodes.forEach(function(Ke){M(Ke,le)!=M(Te,le)&&Ke.column==Te.column&&Ke.y0Te.y1&&U(Ke,Oe,ae,ue)}))}})}})}function re(ie,ae){return ie.y0>ae.y0&&ie.y0ae.y0&&ie.y1ae.y1}function U(ie,ae,ue,le){return ie.y0+ae>=ue&&ie.y1+ae<=le&&(ie.y0=ie.y0+ae,ie.y1=ie.y1+ae,ie.targetLinks.forEach(function(ge){ge.y1=ge.y1+ae}),ie.sourceLinks.forEach(function(ge){ge.y0=ge.y0+ae})),ie}function q(ie,ae,ue,le){ie.nodes.forEach(function(ge){le&&ge.y+(ge.y1-ge.y0)>ae&&(ge.y=ge.y-(ge.y+(ge.y1-ge.y0)-ae));var fe=ie.links.filter(function(we){return M(we.source,ue)==M(ge,ue)}),me=fe.length;me>1&&fe.sort(function(we,Te){if(!we.circular&&!Te.circular){if(we.target.column==Te.target.column||!ne(we,Te))return we.y1-Te.y1;if(we.target.column>Te.target.column){var Oe=Y(Te,we);return we.y1-Oe}if(Te.target.column>we.target.column)return Y(we,Te)-Te.y1}return we.circular&&!Te.circular?we.circularLinkType=="top"?-1:1:Te.circular&&!we.circular?Te.circularLinkType=="top"?1:-1:we.circular&&Te.circular?we.circularLinkType===Te.circularLinkType&&we.circularLinkType=="top"?we.target.column===Te.target.column?we.target.y1-Te.target.y1:Te.target.column-we.target.column:we.circularLinkType===Te.circularLinkType&&we.circularLinkType=="bottom"?we.target.column===Te.target.column?Te.target.y1-we.target.y1:we.target.column-Te.target.column:we.circularLinkType=="top"?-1:1:void 0});var _e=ge.y0;fe.forEach(function(we){we.y0=_e+we.width/2,_e+=we.width}),fe.forEach(function(we,Te){if(we.circularLinkType=="bottom"){for(var Oe=Te+1,de=0;Oe1&&ge.sort(function(_e,we){if(!_e.circular&&!we.circular){if(_e.source.column==we.source.column||!ne(_e,we))return _e.y0-we.y0;if(we.source.column<_e.source.column){var Te=te(we,_e);return _e.y0-Te}if(_e.source.column0?"up":"down"}function Q(ie,ae){return M(ie.source,ae)==M(ie.target,ae)}function ee(ie,ae,ue){var le=ie.nodes,ge=ie.links,fe=!1,me=!1;if(ge.forEach(function(Te){Te.circularLinkType=="top"?fe=!0:Te.circularLinkType=="bottom"&&(me=!0)}),fe==0||me==0){var _e=a.min(le,function(Te){return Te.y0}),we=(ue-ae)/(a.max(le,function(Te){return Te.y1})-_e);le.forEach(function(Te){var Oe=(Te.y1-Te.y0)*we;Te.y0=(Te.y0-_e)*we,Te.y1=Te.y0+Oe}),ge.forEach(function(Te){Te.y0=(Te.y0-_e)*we,Te.y1=(Te.y1-_e)*we,Te.width=Te.width*we})}}r.sankeyCircular=function(){var ie,ae,ue=0,le=0,ge=1,fe=1,me=24,_e=k,we=l,Te=b,Oe=T,de=32,ye=2,Me=null;function ke(){var Re={nodes:Te.apply(null,arguments),links:Oe.apply(null,arguments)};Ee(Re),A(Re,_e,Me),ze(Re),Fe(Re),S(Re,_e),Ve(Re,de,_e),Ke(Re);for(var qe=4,We=0;We0?Be+25+10:Be,bottom:Ge=Ge>0?Ge+25+10:Ge,left:dt=dt>0?dt+25+10:dt,right:Tt=Tt>0?Tt+25+10:Tt}}(Re),Wt=function(Jt,Be){var Ge=a.max(Jt.nodes,function(Ae){return Ae.column}),Tt=ge-ue,dt=fe-le,Pe=Tt/(Tt+Be.right+Be.left),Ie=dt/(dt+Be.top+Be.bottom);return ue=ue*Pe+Be.left,ge=Be.right==0?ge:ge*Pe,le=le*Ie+Be.top,fe*=Ie,Jt.nodes.forEach(function(Ae){Ae.x0=ue+Ae.column*((ge-ue-me)/Ge),Ae.x1=Ae.x0+me}),Ie}(Re,Ot);et*=Wt,Re.links.forEach(function(Jt){Jt.width=Jt.value*et}),Ye.forEach(function(Jt){var Be=Jt.length;Jt.forEach(function(Ge,Tt){Ge.depth==Ye.length-1&&Be==1||Ge.depth==0&&Be==1?(Ge.y0=fe/2-Ge.value*et,Ge.y1=Ge.y0+Ge.value*et):Ge.partOfCycle?D(Ge,At)==0?(Ge.y0=fe/2+Tt,Ge.y1=Ge.y0+Ge.value*et):Ge.circularLinkType=="top"?(Ge.y0=le+Tt,Ge.y1=Ge.y0+Ge.value*et):(Ge.y0=fe-Ge.value*et-Tt,Ge.y1=Ge.y0+Ge.value*et):Ot.top==0||Ot.bottom==0?(Ge.y0=(fe-le)/Be*Tt,Ge.y1=Ge.y0+Ge.value*et):(Ge.y0=(fe-le)/2-Be/2+Tt,Ge.y1=Ge.y0+Ge.value*et)})})})(We),Pt();for(var nt=1,ft=qe;ft>0;--ft)vt(nt*=.99,We),Pt();function vt(At,at){var et=Ye.length;Ye.forEach(function(Ot){var Wt=Ot.length,Jt=Ot[0].depth;Ot.forEach(function(Be){var Ge;if((Be.sourceLinks.length||Be.targetLinks.length)&&!(Be.partOfCycle&&D(Be,at)>0))if(Jt==0&&Wt==1)Ge=Be.y1-Be.y0,Be.y0=fe/2-Ge/2,Be.y1=fe/2+Ge/2;else if(Jt==et-1&&Wt==1)Ge=Be.y1-Be.y0,Be.y0=fe/2-Ge/2,Be.y1=fe/2+Ge/2;else{var Tt=a.mean(Be.sourceLinks,w),dt=a.mean(Be.targetLinks,x),Pe=((Tt&&dt?(Tt+dt)/2:Tt||dt)-y(Be))*At;Be.y0+=Pe,Be.y1+=Pe}})})}function Pt(){Ye.forEach(function(At){var at,et,Ot,Wt=le,Jt=At.length;for(At.sort(p),Ot=0;Ot0&&(at.y0+=et,at.y1+=et),Wt=at.y1+ie;if((et=Wt-ie-fe)>0)for(Wt=at.y0-=et,at.y1-=et,Ot=Jt-2;Ot>=0;--Ot)(et=(at=At[Ot]).y1+ie-Wt)>0&&(at.y0-=et,at.y1-=et),Wt=at.y0})}}function Ke(Re){Re.nodes.forEach(function(qe){qe.sourceLinks.sort(g),qe.targetLinks.sort(m)}),Re.nodes.forEach(function(qe){var We=qe.y0,Ye=We,nt=qe.y1,ft=nt;qe.sourceLinks.forEach(function(vt){vt.circular?(vt.y0=nt-vt.width/2,nt-=vt.width):(vt.y0=We+vt.width/2,We+=vt.width)}),qe.targetLinks.forEach(function(vt){vt.circular?(vt.y1=ft-vt.width/2,ft-=vt.width):(vt.y1=Ye+vt.width/2,Ye+=vt.width)})})}return ke.nodeId=function(Re){return arguments.length?(_e=typeof Re=="function"?Re:d(Re),ke):_e},ke.nodeAlign=function(Re){return arguments.length?(we=typeof Re=="function"?Re:d(Re),ke):we},ke.nodeWidth=function(Re){return arguments.length?(me=+Re,ke):me},ke.nodePadding=function(Re){return arguments.length?(ie=+Re,ke):ie},ke.nodes=function(Re){return arguments.length?(Te=typeof Re=="function"?Re:d(Re),ke):Te},ke.links=function(Re){return arguments.length?(Oe=typeof Re=="function"?Re:d(Re),ke):Oe},ke.size=function(Re){return arguments.length?(ue=le=0,ge=+Re[0],fe=+Re[1],ke):[ge-ue,fe-le]},ke.extent=function(Re){return arguments.length?(ue=+Re[0][0],ge=+Re[1][0],le=+Re[0][1],fe=+Re[1][1],ke):[[ue,le],[ge,fe]]},ke.iterations=function(Re){return arguments.length?(de=+Re,ke):de},ke.circularLinkGap=function(Re){return arguments.length?(ye=+Re,ke):ye},ke.nodePaddingRatio=function(Re){return arguments.length?(ae=+Re,ke):ae},ke.sortNodes=function(Re){return arguments.length?(Me=Re,ke):Me},ke.update=function(Re){return S(Re,_e),Ke(Re),Re.links.forEach(function(qe){qe.circular&&(qe.circularLinkType=qe.y0+qe.y1ee&&(O=ee);var ie=a.min(re,function(ae){return(E-A-(ae.length-1)*O)/a.sum(ae,g)});re.forEach(function(ae){ae.forEach(function(ue,le){ue.y1=(ue.y0=le)+ue.value*ie})}),Z.links.forEach(function(ae){ae.width=ae.value*ie})})(),H();for(var U=1,q=N;q>0;--q)ne(U*=.99),H(),$(U),H();function $(Q){re.forEach(function(ee){ee.forEach(function(ie){if(ie.targetLinks.length){var ae=(a.sum(ie.targetLinks,v)/a.sum(ie.targetLinks,g)-p(ie))*Q;ie.y0+=ae,ie.y1+=ae}})})}function ne(Q){re.slice().reverse().forEach(function(ee){ee.forEach(function(ie){if(ie.sourceLinks.length){var ae=(a.sum(ie.sourceLinks,y)/a.sum(ie.sourceLinks,g)-p(ie))*Q;ie.y0+=ae,ie.y1+=ae}})})}function H(){re.forEach(function(Q){var ee,ie,ae,ue=A,le=Q.length;for(Q.sort(m),ae=0;ae0&&(ee.y0+=ie,ee.y1+=ie),ue=ee.y1+O;if((ie=ue-O-E)>0)for(ue=ee.y0-=ie,ee.y1-=ie,ae=le-2;ae>=0;--ae)(ie=(ee=Q[ae]).y1+O-ue)>0&&(ee.y0-=ie,ee.y1-=ie),ue=ee.y0})}}function Y(Z){Z.nodes.forEach(function(re){re.sourceLinks.sort(h),re.targetLinks.sort(d)}),Z.nodes.forEach(function(re){var U=re.y0,q=U;re.sourceLinks.forEach(function($){$.y0=U+$.width/2,U+=$.width}),re.targetLinks.forEach(function($){$.y1=q+$.width/2,q+=$.width})})}return B.update=function(Z){return Y(Z),Z},B.nodeId=function(Z){return arguments.length?(R=typeof Z=="function"?Z:l(Z),B):R},B.nodeAlign=function(Z){return arguments.length?(z=typeof Z=="function"?Z:l(Z),B):z},B.nodeWidth=function(Z){return arguments.length?(D=+Z,B):D},B.nodePadding=function(Z){return arguments.length?(O=+Z,B):O},B.nodes=function(Z){return arguments.length?(L=typeof Z=="function"?Z:l(Z),B):L},B.links=function(Z){return arguments.length?(P=typeof Z=="function"?Z:l(Z),B):P},B.size=function(Z){return arguments.length?(M=A=0,S=+Z[0],E=+Z[1],B):[S-M,E-A]},B.extent=function(Z){return arguments.length?(M=+Z[0][0],S=+Z[1][0],A=+Z[0][1],E=+Z[1][1],B):[[M,A],[S,E]]},B.iterations=function(Z){return arguments.length?(N=+Z,B):N},B},r.sankeyCenter=function(M){return M.targetLinks.length?M.depth:M.sourceLinks.length?a.min(M.sourceLinks,i)-1:0},r.sankeyLeft=function(M){return M.depth},r.sankeyRight=function(M,A){return A-1-M.height},r.sankeyJustify=s,r.sankeyLinkHorizontal=function(){return c.linkHorizontal().source(T).target(_)},Object.defineProperty(r,"__esModule",{value:!0})})},{"d3-array":107,"d3-collection":108,"d3-shape":119}],58:[function(e,o,f){(function(){var r={version:"3.8.0"},a=[].slice,u=function(ce){return a.call(ce)},c=self.document;function i(ce){return ce&&(ce.ownerDocument||ce.document||ce).documentElement}function s(ce){return ce&&(ce.ownerDocument&&ce.ownerDocument.defaultView||ce.document&&ce||ce.defaultView)}if(c)try{u(c.documentElement.childNodes)[0].nodeType}catch{u=function(I){for(var j=I.length,V=new Array(j);j--;)V[j]=I[j];return V}}if(Date.now||(Date.now=function(){return+new Date}),c)try{c.createElement("DIV").style.setProperty("opacity",0,"")}catch{var l=this.Element.prototype,d=l.setAttribute,h=l.setAttributeNS,m=this.CSSStyleDeclaration.prototype,g=m.setProperty;l.setAttribute=function(I,j){d.call(this,I,j+"")},l.setAttributeNS=function(I,j,V){h.call(this,I,j,V+"")},m.setProperty=function(I,j,V){g.call(this,I,j+"",V)}}function p(ce,I){return ceI?1:ce>=I?0:NaN}function v(ce){return ce===null?NaN:+ce}function y(ce){return!isNaN(ce)}function x(ce){return{left:function(I,j,V,X){for(arguments.length<3&&(V=0),arguments.length<4&&(X=I.length);V>>1;ce(I[se],j)<0?V=se+1:X=se}return V},right:function(I,j,V,X){for(arguments.length<3&&(V=0),arguments.length<4&&(X=I.length);V>>1;ce(I[se],j)>0?X=se:V=se+1}return V}}}r.ascending=p,r.descending=function(ce,I){return Ice?1:I>=ce?0:NaN},r.min=function(ce,I){var j,V,X=-1,se=ce.length;if(arguments.length===1){for(;++X=V){j=V;break}for(;++XV&&(j=V)}else{for(;++X=V){j=V;break}for(;++XV&&(j=V)}return j},r.max=function(ce,I){var j,V,X=-1,se=ce.length;if(arguments.length===1){for(;++X=V){j=V;break}for(;++Xj&&(j=V)}else{for(;++X=V){j=V;break}for(;++Xj&&(j=V)}return j},r.extent=function(ce,I){var j,V,X,se=-1,he=ce.length;if(arguments.length===1){for(;++se=V){j=X=V;break}for(;++seV&&(j=V),X=V){j=X=V;break}for(;++seV&&(j=V),X1)return he/(be-1)},r.deviation=function(){var ce=r.variance.apply(this,arguments);return ce&&Math.sqrt(ce)};var w=x(p);function k(ce){return ce.length}r.bisectLeft=w.left,r.bisect=r.bisectRight=w.right,r.bisector=function(ce){return x(ce.length===1?function(I,j){return p(ce(I),j)}:ce)},r.shuffle=function(ce,I,j){(se=arguments.length)<3&&(j=ce.length,se<2&&(I=0));for(var V,X,se=j-I;se;)X=Math.random()*se--|0,V=ce[se+I],ce[se+I]=ce[X+I],ce[X+I]=V;return ce},r.permute=function(ce,I){for(var j=I.length,V=new Array(j);j--;)V[j]=ce[I[j]];return V},r.pairs=function(ce){for(var I=0,j=ce.length-1,V=ce[0],X=new Array(j<0?0:j);I=0;)for(I=(V=ce[X]).length;--I>=0;)j[--he]=V[I];return j};var b=Math.abs;function T(ce){for(var I=1;ce*I%1;)I*=10;return I}function _(ce,I){for(var j in I)Object.defineProperty(ce.prototype,j,{value:I[j],enumerable:!1})}function M(){this._=Object.create(null)}r.range=function(ce,I,j){if(arguments.length<3&&(j=1,arguments.length<2&&(I=ce,ce=0)),(I-ce)/j==1/0)throw new Error("infinite range");var V,X=[],se=T(b(j)),he=-1;if(ce*=se,I*=se,(j*=se)<0)for(;(V=ce+j*++he)>I;)X.push(V/se);else for(;(V=ce+j*++he)=V.length)return I?I.call(j,ve):ce?ve.sort(ce):ve;for(var Se,Ue,Xe,it,xt=-1,Lt=ve.length,_t=V[be++],Mt=new M;++xt=V.length)return be;var Ue=[],Xe=X[Se++];return be.forEach(function(it,xt){Ue.push({key:it,values:ve(xt,Se)})}),Xe?Ue.sort(function(it,xt){return Xe(it.key,xt.key)}):Ue}(se(r.map,he,0),0)},j.key=function(he){return V.push(he),j},j.sortKeys=function(he){return X[V.length-1]=he,j},j.sortValues=function(he){return ce=he,j},j.rollup=function(he){return I=he,j},j},r.set=function(ce){var I=new L;if(ce)for(var j=0,V=ce.length;j=0&&(V=ce.slice(j+1),ce=ce.slice(0,j)),ce)return arguments.length<2?this[ce].on(V):this[ce].on(V,I);if(arguments.length===2){if(I==null)for(ce in this)this.hasOwnProperty(ce)&&this[ce].on(V,null);return this}},r.event=null,r.requote=function(ce){return ce.replace(U,"\\$&")};var U=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,q=function(ce,I){for(var j in I)ce[j]=I[j]};function $(ce){return q(ce,ee),ce}var ne=function(ce,I){return I.querySelector(ce)},H=function(ce,I){return I.querySelectorAll(ce)},Q=function(ce,I){var j=ce.matches||ce[B(ce,"matchesSelector")];return(Q=function(V,X){return j.call(V,X)})(ce,I)};typeof Sizzle=="function"&&(ne=function(ce,I){return Sizzle(ce,I)[0]||null},H=Sizzle,Q=Sizzle.matchesSelector),r.selection=function(){return r.select(c.documentElement)};var ee=r.selection.prototype=[];function ie(ce){return typeof ce=="function"?ce:function(){return ne(ce,this)}}function ae(ce){return typeof ce=="function"?ce:function(){return H(ce,this)}}ee.select=function(ce){var I,j,V,X,se=[];ce=ie(ce);for(var he=-1,ve=this.length;++he=0&&(j=ce.slice(0,I))!=="xmlns"&&(ce=ce.slice(I+1)),le.hasOwnProperty(j)?{space:le[j],local:ce}:ce}},ee.attr=function(ce,I){if(arguments.length<2){if(typeof ce=="string"){var j=this.node();return(ce=r.ns.qualify(ce)).local?j.getAttributeNS(ce.space,ce.local):j.getAttribute(ce)}for(I in ce)this.each(ge(I,ce[I]));return this}return this.each(ge(ce,I))},ee.classed=function(ce,I){if(arguments.length<2){if(typeof ce=="string"){var j=this.node(),V=(ce=_e(ce)).length,X=-1;if(I=j.classList){for(;++X=0;)(j=V[X])&&(se&&se!==j.nextSibling&&se.parentNode.insertBefore(j,se),se=j);return this},ee.sort=function(ce){ce=ze.apply(this,arguments);for(var I=-1,j=this.length;++I=I&&(I=X+1);!(he=ve[I])&&++I0&&(ce=ce.slice(0,X));var he=We.get(ce);function ve(){var be=this[V];be&&(this.removeEventListener(ce,be,be.$),delete this[V])}return he&&(ce=he,se=nt),X?I?function(){var be=se(I,u(arguments));ve.call(this),this.addEventListener(ce,this[V]=be,be.$=j),be._=I}:ve:I?W:function(){var be,Se=new RegExp("^__on([^.]+)"+r.requote(ce)+"$");for(var Ue in this)if(be=Ue.match(Se)){var Xe=this[Ue];this.removeEventListener(be[1],Xe,Xe.$),delete this[Ue]}}}r.selection.enter=Ve,r.selection.enter.prototype=Ke,Ke.append=ee.append,Ke.empty=ee.empty,Ke.node=ee.node,Ke.call=ee.call,Ke.size=ee.size,Ke.select=function(ce){for(var I,j,V,X,se,he=[],ve=-1,be=this.length;++ve1?Ge:ce<-1?-Ge:Math.asin(ce)}function Ie(ce){return((ce=Math.exp(ce))+1/ce)/2}var Ae=Math.SQRT2;r.interpolateZoom=function(ce,I){var j,V,X=ce[0],se=ce[1],he=ce[2],ve=I[0],be=I[1],Se=I[2],Ue=ve-X,Xe=be-se,it=Ue*Ue+Xe*Xe;if(it<1e-12)V=Math.log(Se/he)/Ae,j=function(Nt){return[X+Nt*Ue,se+Nt*Xe,he*Math.exp(Ae*Nt*V)]};else{var xt=Math.sqrt(it),Lt=(Se*Se-he*he+4*it)/(2*he*2*xt),_t=(Se*Se-he*he-4*it)/(2*Se*2*xt),Mt=Math.log(Math.sqrt(Lt*Lt+1)-Lt),yt=Math.log(Math.sqrt(_t*_t+1)-_t);V=(yt-Mt)/Ae,j=function(Nt){var Rt,qt=Nt*V,rn=Ie(Mt),dn=he/(2*xt)*(rn*(Rt=Ae*qt+Mt,((Rt=Math.exp(2*Rt))-1)/(Rt+1))-function(Sn){return((Sn=Math.exp(Sn))-1/Sn)/2}(Mt));return[X+dn*Ue,se+dn*Xe,he*rn/Ie(Ae*qt+Mt)]}}return j.duration=1e3*V,j},r.behavior.zoom=function(){var ce,I,j,V,X,se,he,ve,be,Se={x:0,y:0,k:1},Ue=[960,500],Xe=rt,it=250,xt=0,Lt="mousedown.zoom",_t="mousemove.zoom",Mt="mouseup.zoom",yt="touchstart.zoom",Nt=re(Rt,"zoomstart","zoom","zoomend");function Rt(Gn){Gn.on(Lt,cr).on(He+".zoom",ii).on("dblclick.zoom",Ti).on(yt,Yr)}function qt(Gn){return[(Gn[0]-Se.x)/Se.k,(Gn[1]-Se.y)/Se.k]}function rn(Gn){Se.k=Math.max(Xe[0],Math.min(Xe[1],Gn))}function dn(Gn,Mr){Mr=function(ai){return[ai[0]*Se.k+Se.x,ai[1]*Se.k+Se.y]}(Mr),Se.x+=Gn[0]-Mr[0],Se.y+=Gn[1]-Mr[1]}function Sn(Gn,Mr,ai,Qr){Gn.__chart__={x:Se.x,y:Se.y,k:Se.k},rn(Math.pow(2,Qr)),dn(I=Mr,ai),Gn=r.select(Gn),it>0&&(Gn=Gn.transition().duration(it)),Gn.call(Rt.event)}function An(){he&&he.domain(se.range().map(function(Gn){return(Gn-Se.x)/Se.k}).map(se.invert)),be&&be.domain(ve.range().map(function(Gn){return(Gn-Se.y)/Se.k}).map(ve.invert))}function tr(Gn){xt++||Gn({type:"zoomstart"})}function er(Gn){An(),Gn({type:"zoom",scale:Se.k,translate:[Se.x,Se.y]})}function gr(Gn){--xt||(Gn({type:"zoomend"}),I=null)}function cr(){var Gn=this,Mr=Nt.of(Gn,arguments),ai=0,Qr=r.select(s(Gn)).on(_t,Yi).on(Mt,ci),gi=qt(r.mouse(Gn)),Mi=Pt(Gn);function Yi(){ai=1,dn(r.mouse(Gn),gi),er(Mr)}function ci(){Qr.on(_t,null).on(Mt,null),Mi(ai),gr(Mr)}Oc.call(Gn),tr(Mr)}function Yr(){var Gn,Mr=this,ai=Nt.of(Mr,arguments),Qr={},gi=0,Mi=".zoom-"+r.event.changedTouches[0].identifier,Yi="touchmove"+Mi,ci="touchend"+Mi,zi=[],Li=r.select(Mr),Qi=Pt(Mr);function Ri(){var xo=r.touches(Mr);return Gn=Se.k,xo.forEach(function(bo){bo.identifier in Qr&&(Qr[bo.identifier]=qt(bo))}),xo}function ea(){var xo=r.event.target;r.select(xo).on(Yi,fa).on(ci,Ha),zi.push(xo);for(var bo=r.event.changedTouches,qa=0,co=bo.length;qa1){Uo=eo[0];var Js=eo[1],sc=Uo[0]-Js[0],Af=Uo[1]-Js[1];gi=sc*sc+Af*Af}}function fa(){var xo,bo,qa,co,eo=r.touches(Mr);Oc.call(Mr);for(var As=0,Uo=eo.length;As360?ve-=360:ve<0&&(ve+=360),ve<60?V+(X-V)*ve/60:ve<180?X:ve<240?V+(X-V)*(240-ve)/60:V}(he))}return ce=isNaN(ce)?0:(ce%=360)<0?ce+360:ce,I=isNaN(I)||I<0?0:I>1?1:I,V=2*(j=j<0?0:j>1?1:j)-(X=j<=.5?j*(1+I):j+I-j*I),new It(se(ce+120),se(ce),se(ce-120))}function Vt(ce,I,j){return this instanceof Vt?(this.h=+ce,this.c=+I,void(this.l=+j)):arguments.length<2?ce instanceof Vt?new Vt(ce.h,ce.c,ce.l):Le(ce instanceof bt?ce.l:(ce=tn((ce=r.rgb(ce)).r,ce.g,ce.b)).l,ce.a,ce.b):new Vt(ce,I,j)}kt.brighter=function(ce){return ce=Math.pow(.7,arguments.length?ce:1),new ot(this.h,this.s,this.l/ce)},kt.darker=function(ce){return ce=Math.pow(.7,arguments.length?ce:1),new ot(this.h,this.s,ce*this.l)},kt.rgb=function(){return wt(this.h,this.s,this.l)},r.hcl=Vt;var Ut=Vt.prototype=new lt;function tt(ce,I,j){return isNaN(ce)&&(ce=0),isNaN(I)&&(I=0),new bt(j,Math.cos(ce*=Tt)*I,Math.sin(ce)*I)}function bt(ce,I,j){return this instanceof bt?(this.l=+ce,this.a=+I,void(this.b=+j)):arguments.length<2?ce instanceof bt?new bt(ce.l,ce.a,ce.b):ce instanceof Vt?tt(ce.h,ce.c,ce.l):tn((ce=It(ce)).r,ce.g,ce.b):new bt(ce,I,j)}Ut.brighter=function(ce){return new Vt(this.h,this.c,Math.min(100,this.l+zt*(arguments.length?ce:1)))},Ut.darker=function(ce){return new Vt(this.h,this.c,Math.max(0,this.l-zt*(arguments.length?ce:1)))},Ut.rgb=function(){return tt(this.h,this.c,this.l).rgb()},r.lab=bt;var zt=18,St=bt.prototype=new lt;function Dt(ce,I,j){var V=(ce+16)/116,X=V+I/500,se=V-j/200;return new It(Et(3.2404542*(X=.95047*Je(X))-1.5371385*(V=1*Je(V))-.4985314*(se=1.08883*Je(se))),Et(-.969266*X+1.8760108*V+.041556*se),Et(.0556434*X-.2040259*V+1.0572252*se))}function Le(ce,I,j){return ce>0?new Vt(Math.atan2(j,I)*dt,Math.sqrt(I*I+j*j),ce):new Vt(NaN,NaN,ce)}function Je(ce){return ce>.206893034?ce*ce*ce:(ce-4/29)/7.787037}function st(ce){return ce>.008856?Math.pow(ce,1/3):7.787037*ce+4/29}function Et(ce){return Math.round(255*(ce<=.00304?12.92*ce:1.055*Math.pow(ce,1/2.4)-.055))}function It(ce,I,j){return this instanceof It?(this.r=~~ce,this.g=~~I,void(this.b=~~j)):arguments.length<2?ce instanceof It?new It(ce.r,ce.g,ce.b):zn(""+ce,It,wt):new It(ce,I,j)}function Zt(ce){return new It(ce>>16,ce>>8&255,255&ce)}function Kt(ce){return Zt(ce)+""}St.brighter=function(ce){return new bt(Math.min(100,this.l+zt*(arguments.length?ce:1)),this.a,this.b)},St.darker=function(ce){return new bt(Math.max(0,this.l-zt*(arguments.length?ce:1)),this.a,this.b)},St.rgb=function(){return Dt(this.l,this.a,this.b)},r.rgb=It;var Ht=It.prototype=new lt;function mn(ce){return ce<16?"0"+Math.max(0,ce).toString(16):Math.min(255,ce).toString(16)}function zn(ce,I,j){var V,X,se,he=0,ve=0,be=0;if(V=/([a-z]+)\((.*)\)/.exec(ce=ce.toLowerCase()))switch(X=V[2].split(","),V[1]){case"hsl":return j(parseFloat(X[0]),parseFloat(X[1])/100,parseFloat(X[2])/100);case"rgb":return I(sn(X[0]),sn(X[1]),sn(X[2]))}return(se=gn.get(ce))?I(se.r,se.g,se.b):(ce==null||ce.charAt(0)!=="#"||isNaN(se=parseInt(ce.slice(1),16))||(ce.length===4?(he=(3840&se)>>4,he|=he>>4,ve=240&se,ve|=ve>>4,be=15&se,be|=be<<4):ce.length===7&&(he=(16711680&se)>>16,ve=(65280&se)>>8,be=255&se)),I(he,ve,be))}function pn(ce,I,j){var V,X,se=Math.min(ce/=255,I/=255,j/=255),he=Math.max(ce,I,j),ve=he-se,be=(he+se)/2;return ve?(X=be<.5?ve/(he+se):ve/(2-he-se),V=ce==he?(I-j)/ve+(I0&&be<1?0:V),new ot(V,X,be)}function tn(ce,I,j){var V=st((.4124564*(ce=nn(ce))+.3575761*(I=nn(I))+.1804375*(j=nn(j)))/.95047),X=st((.2126729*ce+.7151522*I+.072175*j)/1);return bt(116*X-16,500*(V-X),200*(X-st((.0193339*ce+.119192*I+.9503041*j)/1.08883)))}function nn(ce){return(ce/=255)<=.04045?ce/12.92:Math.pow((ce+.055)/1.055,2.4)}function sn(ce){var I=parseFloat(ce);return ce.charAt(ce.length-1)==="%"?Math.round(2.55*I):I}Ht.brighter=function(ce){ce=Math.pow(.7,arguments.length?ce:1);var I=this.r,j=this.g,V=this.b,X=30;return I||j||V?(I&&I=200&&Xe<300||Xe===304){try{Ue=j.call(X,ve)}catch(it){return void se.error.call(X,it)}se.load.call(X,Ue)}else se.error.call(X,ve)}return self.XDomainRequest&&!("withCredentials"in ve)&&/^(http(s)?:)?\/\//.test(ce)&&(ve=new XDomainRequest),"onload"in ve?ve.onload=ve.onerror=Se:ve.onreadystatechange=function(){ve.readyState>3&&Se()},ve.onprogress=function(Ue){var Xe=r.event;r.event=Ue;try{se.progress.call(X,ve)}finally{r.event=Xe}},X.header=function(Ue,Xe){return Ue=(Ue+"").toLowerCase(),arguments.length<2?he[Ue]:(Xe==null?delete he[Ue]:he[Ue]=Xe+"",X)},X.mimeType=function(Ue){return arguments.length?(I=Ue==null?null:Ue+"",X):I},X.responseType=function(Ue){return arguments.length?(be=Ue,X):be},X.response=function(Ue){return j=Ue,X},["get","post"].forEach(function(Ue){X[Ue]=function(){return X.send.apply(X,[Ue].concat(u(arguments)))}}),X.send=function(Ue,Xe,it){if(arguments.length===2&&typeof Xe=="function"&&(it=Xe,Xe=null),ve.open(Ue,ce,!0),I==null||"accept"in he||(he.accept=I+",*/*"),ve.setRequestHeader)for(var xt in he)ve.setRequestHeader(xt,he[xt]);return I!=null&&ve.overrideMimeType&&ve.overrideMimeType(I),be!=null&&(ve.responseType=be),it!=null&&X.on("error",it).on("load",function(Lt){it(null,Lt)}),se.beforesend.call(X,ve),ve.send(Xe??null),X},X.abort=function(){return ve.abort(),X},r.rebind(X,se,"on"),V==null?X:X.get(function(Ue){return Ue.length===1?function(Xe,it){Ue(Xe==null?it:null)}:Ue}(V))}gn.forEach(function(ce,I){gn.set(ce,Zt(I))}),r.functor=bn,r.xhr=In(P),r.dsv=function(ce,I){var j=new RegExp('["'+ce+` +]`),V=ce.charCodeAt(0);function X(Se,Ue,Xe){arguments.length<3&&(Xe=Ue,Ue=null);var it=Hn(Se,I,Ue==null?se:he(Ue),Xe);return it.row=function(xt){return arguments.length?it.response((Ue=xt)==null?se:he(xt)):Ue},it}function se(Se){return X.parse(Se.responseText)}function he(Se){return function(Ue){return X.parse(Ue.responseText,Se)}}function ve(Se){return Se.map(be).join(ce)}function be(Se){return j.test(Se)?'"'+Se.replace(/\"/g,'""')+'"':Se}return X.parse=function(Se,Ue){var Xe;return X.parseRows(Se,function(it,xt){if(Xe)return Xe(it,xt-1);var Lt=function(_t){for(var Mt={},yt=it.length,Nt=0;Nt=Mt)return Lt;if(it)return it=!1,xt;var rn=yt;if(Se.charCodeAt(rn)===34){for(var dn=rn;dn++24?(isFinite(I)&&(clearTimeout(vr),vr=setTimeout(Ln,I)),Or=0):(Or=1,Er(Ln))}function lr(){for(var ce=Date.now(),I=Wn;I;)ce>=I.t&&I.c(ce-I.t)&&(I.c=null),I=I.n;return ce}function Wr(){for(var ce,I=Wn,j=1/0;I;)I.c?(I.t1&&(I=ce[se[he-2]],j=ce[se[he-1]],V=ce[ve],(j[0]-I[0])*(V[1]-I[1])-(j[1]-I[1])*(V[0]-I[0])<=0);)--he;se[he++]=ve}return se.slice(0,he)}function Bn(ce,I){return ce[0]-I[0]||ce[1]-I[1]}r.timer=function(){Kn.apply(this,arguments)},r.timer.flush=function(){lr(),Wr()},r.round=function(ce,I){return I?Math.round(ce*(I=Math.pow(10,I)))/I:Math.round(ce)},r.geom={},r.geom.hull=function(ce){var I=Mn,j=rr;if(arguments.length)return V(ce);function V(X){if(X.length<3)return[];var se,he=bn(I),ve=bn(j),be=X.length,Se=[],Ue=[];for(se=0;se=0;--se)_t.push(X[Se[Xe[se]][2]]);for(se=+xt;seOt)ve=ve.L;else{if(!((X=se-Dn(ve,he))>Ot)){V>-Ot?(I=ve.P,j=ve):X>-Ot?(I=ve,j=ve.N):I=j=ve;break}if(!ve.R){I=ve;break}ve=ve.R}var be=Nn(ce);if(jn.insert(I,be),I||j){if(I===j)return xr(I),j=Nn(I.site),jn.insert(be,j),be.edge=j.edge=Dr(I.site,be.site),or(I),void or(j);if(j){xr(I),xr(j);var Se=I.site,Ue=Se.x,Xe=Se.y,it=ce.x-Ue,xt=ce.y-Xe,Lt=j.site,_t=Lt.x-Ue,Mt=Lt.y-Xe,yt=2*(it*Mt-xt*_t),Nt=it*it+xt*xt,Rt=_t*_t+Mt*Mt,qt={x:(Mt*Nt-xt*Rt)/yt+Ue,y:(it*Rt-_t*Nt)/yt+Xe};ri(j.edge,Se,Lt,qt),be.edge=Dr(Se,ce,null,qt),j.edge=Dr(ce,Lt,null,qt),or(I),or(j)}else be.edge=Dr(I.site,be.site)}}function Tn(ce,I){var j=ce.site,V=j.x,X=j.y,se=X-I;if(!se)return V;var he=ce.P;if(!he)return-1/0;var ve=(j=he.site).x,be=j.y,Se=be-I;if(!Se)return ve;var Ue=ve-V,Xe=1/se-1/Se,it=Ue/Se;return Xe?(-it+Math.sqrt(it*it-2*Xe*(Ue*Ue/(-2*Se)-be+Se/2+X-se/2)))/Xe+V:(V+ve)/2}function Dn(ce,I){var j=ce.N;if(j)return Tn(j,I);var V=ce.site;return V.y===I?V.x:1/0}function Zn(ce){this.site=ce,this.edges=[]}function Yn(ce,I){return I.angle-ce.angle}function ir(){Sr(this),this.x=this.y=this.arc=this.site=this.cy=null}function or(ce){var I=ce.P,j=ce.N;if(I&&j){var V=I.site,X=ce.site,se=j.site;if(V!==se){var he=X.x,ve=X.y,be=V.x-he,Se=V.y-ve,Ue=se.x-he,Xe=2*(be*(Mt=se.y-ve)-Se*Ue);if(!(Xe>=-1e-12)){var it=be*be+Se*Se,xt=Ue*Ue+Mt*Mt,Lt=(Mt*it-Se*xt)/Xe,_t=(be*xt-Ue*it)/Xe,Mt=_t+ve,yt=$n.pop()||new ir;yt.arc=ce,yt.site=X,yt.x=Lt+he,yt.y=Mt+Math.sqrt(Lt*Lt+_t*_t),yt.cy=Mt,ce.circle=yt;for(var Nt=null,Rt=fn._;Rt;)if(yt.y=ve)return;if(it>Lt){if(se){if(se.y>=Se)return}else se={x:Mt,y:be};j={x:Mt,y:Se}}else{if(se){if(se.y1)if(it>Lt){if(se){if(se.y>=Se)return}else se={x:(be-X)/V,y:be};j={x:(Se-X)/V,y:Se}}else{if(se){if(se.y=ve)return}else se={x:he,y:V*he+X};j={x:ve,y:V*ve+X}}else{if(se){if(se.x0)){if(yt/=An,An<0){if(yt0){if(yt>Sn)return;yt>dn&&(dn=yt)}if(yt=Xe-qt,An||!(yt<0)){if(yt/=An,An<0){if(yt>Sn)return;yt>dn&&(dn=yt)}else if(An>0){if(yt0)){if(yt/=tr,tr<0){if(yt0){if(yt>Sn)return;yt>dn&&(dn=yt)}if(yt=it-rn,tr||!(yt<0)){if(yt/=tr,tr<0){if(yt>Sn)return;yt>dn&&(dn=yt)}else if(tr>0){if(yt0&&(Mt.a={x:qt+dn*An,y:rn+dn*tr}),Sn<1&&(Mt.b={x:qt+Sn*An,y:rn+Sn*tr}),Mt}}}}}),_t=xt.length;_t--;)(!wr(be=xt[_t],ve)||!Lt(be)||b(be.a.x-be.b.x)Ot||b(Xe-Se)>Ot)&&(Lt.splice(xt,0,new ji(Nr(it.site,yt,b(Ue-Nt)Ot?{x:Nt,y:b(be-Nt)Ot?{x:b(Se-rn)Ot?{x:Rt,y:b(be-Rt)Ot?{x:b(Se-qt)=Ue&&yt.x<=it&&yt.y>=Xe&&yt.y<=xt?[[Ue,xt],[it,xt],[it,Xe],[Ue,Xe]]:[]).point=be[_t]}),Se}function ve(be){return be.map(function(Se,Ue){return{x:Math.round(V(Se,Ue)/Ot)*Ot,y:Math.round(X(Se,Ue)/Ot)*Ot,i:Ue}})}return he.links=function(be){return Ja(ve(be)).edges.filter(function(Se){return Se.l&&Se.r}).map(function(Se){return{source:be[Se.l.i],target:be[Se.r.i]}})},he.triangles=function(be){var Se=[];return Ja(ve(be)).cells.forEach(function(Ue,Xe){for(var it,xt,Lt,_t,Mt=Ue.site,yt=Ue.edges.sort(Yn),Nt=-1,Rt=yt.length,qt=yt[Rt-1].edge,rn=qt.l===Mt?qt.r:qt.l;++Ntse||it>he||xt=dn)<<1|I>=rn,An=Sn+4;Snse&&(X=I.slice(se,X),ve[he]?ve[he]+=X:ve[++he]=X),(j=j[0])===(V=V[0])?ve[he]?ve[he]+=V:ve[++he]=V:(ve[++he]=null,be.push({i:he,x:so(j,V)})),se=Ls.lastIndex;return seyt&&(yt=Ue.x),Ue.y>Nt&&(Nt=Ue.y),Xe.push(Ue.x),it.push(Ue.y);else for(xt=0;xtyt&&(yt=rn),dn>Nt&&(Nt=dn),Xe.push(rn),it.push(dn)}var Sn=yt-_t,An=Nt-Mt;function tr(cr,Yr,ii,Ti,Gn,Mr,ai,Qr){if(!isNaN(ii)&&!isNaN(Ti))if(cr.leaf){var gi=cr.x,Mi=cr.y;if(gi!=null)if(b(gi-ii)+b(Mi-Ti)<.01)er(cr,Yr,ii,Ti,Gn,Mr,ai,Qr);else{var Yi=cr.point;cr.x=cr.y=cr.point=null,er(cr,Yi,gi,Mi,Gn,Mr,ai,Qr),er(cr,Yr,ii,Ti,Gn,Mr,ai,Qr)}else cr.x=ii,cr.y=Ti,cr.point=Yr}else er(cr,Yr,ii,Ti,Gn,Mr,ai,Qr)}function er(cr,Yr,ii,Ti,Gn,Mr,ai,Qr){var gi=.5*(Gn+ai),Mi=.5*(Mr+Qr),Yi=ii>=gi,ci=Ti>=Mi,zi=ci<<1|Yi;cr.leaf=!1,Yi?Gn=gi:ai=gi,ci?Mr=Mi:Qr=Mi,tr(cr=cr.nodes[zi]||(cr.nodes[zi]={leaf:!0,nodes:[],point:null,x:null,y:null}),Yr,ii,Ti,Gn,Mr,ai,Qr)}Sn>An?Nt=Mt+Sn:yt=_t+An;var gr={leaf:!0,nodes:[],point:null,x:null,y:null,add:function(cr){tr(gr,cr,+Rt(cr,++xt),+qt(cr,xt),_t,Mt,yt,Nt)},visit:function(cr){Zo(cr,gr,_t,Mt,yt,Nt)},find:function(cr){return oa(gr,cr[0],cr[1],_t,Mt,yt,Nt)}};if(xt=-1,I==null){for(;++xt=0&&!(j=r.interpolators[V](ce,I)););return j}function Ka(ce,I){var j,V=[],X=[],se=ce.length,he=I.length,ve=Math.min(ce.length,I.length);for(j=0;j=1?1:ce(I)}}function ju(ce){return function(I){return 1-ce(1-I)}}function Wl(ce){return function(I){return .5*(I<.5?ce(2*I):2-ce(2-2*I))}}function Sc(ce){return ce*ce}function Ec(ce){return ce*ce*ce}function ac(ce){if(ce<=0)return 0;if(ce>=1)return 1;var I=ce*ce,j=I*ce;return 4*(ce<.5?j:3*(ce-I)+j-.75)}function Cc(ce){return 1-Math.cos(ce*Ge)}function Ns(ce){return Math.pow(2,10*(ce-1))}function Bs(ce){return 1-Math.sqrt(1-ce*ce)}function fl(ce){return ce<1/2.75?7.5625*ce*ce:ce<2/2.75?7.5625*(ce-=1.5/2.75)*ce+.75:ce<2.5/2.75?7.5625*(ce-=2.25/2.75)*ce+.9375:7.5625*(ce-=2.625/2.75)*ce+.984375}function hl(ce,I){return I-=ce,function(j){return Math.round(ce+I*j)}}function dl(ce){var I,j,V,X=[ce.a,ce.b],se=[ce.c,ce.d],he=ws(X),ve=Yl(X,se),be=ws(((I=se)[0]+=(V=-ve)*(j=X)[0],I[1]+=V*j[1],I))||0;X[0]*se[1]=0?ce.slice(0,I):ce,V=I>=0?ce.slice(I+1):"in";return j=ic.get(j)||$o,ba((V=Mc.get(V)||P)(j.apply(null,a.call(arguments,1))))},r.interpolateHcl=function(ce,I){ce=r.hcl(ce),I=r.hcl(I);var j=ce.h,V=ce.c,X=ce.l,se=I.h-j,he=I.c-V,ve=I.l-X;return isNaN(he)&&(he=0,V=isNaN(V)?I.c:V),isNaN(se)?(se=0,j=isNaN(j)?I.h:j):se>180?se-=360:se<-180&&(se+=360),function(be){return tt(j+se*be,V+he*be,X+ve*be)+""}},r.interpolateHsl=function(ce,I){ce=r.hsl(ce),I=r.hsl(I);var j=ce.h,V=ce.s,X=ce.l,se=I.h-j,he=I.s-V,ve=I.l-X;return isNaN(he)&&(he=0,V=isNaN(V)?I.s:V),isNaN(se)?(se=0,j=isNaN(j)?I.h:j):se>180?se-=360:se<-180&&(se+=360),function(be){return wt(j+se*be,V+he*be,X+ve*be)+""}},r.interpolateLab=function(ce,I){ce=r.lab(ce),I=r.lab(I);var j=ce.l,V=ce.a,X=ce.b,se=I.l-j,he=I.a-V,ve=I.b-X;return function(be){return Dt(j+se*be,V+he*be,X+ve*be)+""}},r.interpolateRound=hl,r.transform=function(ce){var I=c.createElementNS(r.ns.prefix.svg,"g");return(r.transform=function(j){if(j!=null){I.setAttribute("transform",j);var V=I.transform.baseVal.consolidate()}return new dl(V?V.matrix:Uu)})(ce)},dl.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var Uu={a:1,b:0,c:0,d:1,e:0,f:0};function ds(ce){return ce.length?ce.pop()+",":""}function pl(ce,I){var j=[],V=[];return ce=r.transform(ce),I=r.transform(I),function(X,se,he,ve){if(X[0]!==se[0]||X[1]!==se[1]){var be=he.push("translate(",null,",",null,")");ve.push({i:be-4,x:so(X[0],se[0])},{i:be-2,x:so(X[1],se[1])})}else(se[0]||se[1])&&he.push("translate("+se+")")}(ce.translate,I.translate,j,V),function(X,se,he,ve){X!==se?(X-se>180?se+=360:se-X>180&&(X+=360),ve.push({i:he.push(ds(he)+"rotate(",null,")")-2,x:so(X,se)})):se&&he.push(ds(he)+"rotate("+se+")")}(ce.rotate,I.rotate,j,V),function(X,se,he,ve){X!==se?ve.push({i:he.push(ds(he)+"skewX(",null,")")-2,x:so(X,se)}):se&&he.push(ds(he)+"skewX("+se+")")}(ce.skew,I.skew,j,V),function(X,se,he,ve){if(X[0]!==se[0]||X[1]!==se[1]){var be=he.push(ds(he)+"scale(",null,",",null,")");ve.push({i:be-4,x:so(X[0],se[0])},{i:be-2,x:so(X[1],se[1])})}else se[0]===1&&se[1]===1||he.push(ds(he)+"scale("+se+")")}(ce.scale,I.scale,j,V),ce=I=null,function(X){for(var se,he=-1,ve=V.length;++he0?j=qt:(ce.c=null,ce.t=NaN,ce=null,ve.end({type:"end",alpha:j=0})):qt>0&&(ve.start({type:"start",alpha:j=qt}),ce=Kn(he.tick)),he):j},he.start=function(){var qt,rn,dn,Sn=Mt.length,An=yt.length,tr=be[0],er=be[1];for(qt=0;qt=0;)j.push(X[V])}function an(ce,I){for(var j=[ce],V=[];(ce=j.pop())!=null;)if(V.push(ce),(se=ce.children)&&(X=se.length))for(var X,se,he=-1;++he=0;)he.push(Ue=Se[be]),Ue.parent=se,Ue.depth=se.depth+1;j&&(se.value=0),se.children=Se}else j&&(se.value=+j.call(V,se,se.depth)||0),delete se.children;return an(X,function(Xe){var it,xt;ce&&(it=Xe.children)&&it.sort(ce),j&&(xt=Xe.parent)&&(xt.value+=Xe.value)}),ve}return V.sort=function(X){return arguments.length?(ce=X,V):ce},V.children=function(X){return arguments.length?(I=X,V):I},V.value=function(X){return arguments.length?(j=X,V):j},V.revalue=function(X){return j&&(Yt(X,function(se){se.children&&(se.value=0)}),an(X,function(se){var he;se.children||(se.value=+j.call(V,se,se.depth)||0),(he=se.parent)&&(he.value+=se.value)})),X},V},r.layout.partition=function(){var ce=r.layout.hierarchy(),I=[1,1];function j(V,X){var se=ce.call(this,V,X);return function he(ve,be,Se,Ue){var Xe=ve.children;if(ve.x=be,ve.y=ve.depth*Ue,ve.dx=Se,ve.dy=Ue,Xe&&(it=Xe.length)){var it,xt,Lt,_t=-1;for(Se=ve.value?Se/ve.value:0;++_tve&&(ve=V),he.push(V)}for(j=0;jX&&(V=j,X=I);return V}function sa(ce){return ce.reduce(ca,0)}function ca(ce,I){return ce+I[1]}function lo(ce,I){return io(ce,Math.ceil(Math.log(I.length)/Math.LN2+1))}function io(ce,I){for(var j=-1,V=+ce[0],X=(ce[1]-V)/I,se=[];++j<=I;)se[j]=X*j+V;return se}function za(ce){return[r.min(ce),r.max(ce)]}function Ra(ce,I){return ce.value-I.value}function ao(ce,I){var j=ce._pack_next;ce._pack_next=I,I._pack_prev=ce,I._pack_next=j,j._pack_prev=I}function Lo(ce,I){ce._pack_next=I,I._pack_prev=ce}function Ko(ce,I){var j=I.x-ce.x,V=I.y-ce.y,X=ce.r+I.r;return .999*X*X>j*j+V*V}function Qo(ce){if((I=ce.children)&&(be=I.length)){var I,j,V,X,se,he,ve,be,Se=1/0,Ue=-1/0,Xe=1/0,it=-1/0;if(I.forEach(es),(j=I[0]).x=-j.r,j.y=0,Rt(j),be>1&&((V=I[1]).x=V.r,V.y=0,Rt(V),be>2))for(na(j,V,X=I[2]),Rt(X),ao(j,X),j._pack_prev=X,ao(X,V),V=j._pack_next,se=3;se0)for(he=-1;++he=Xe[0]&&be<=Xe[1]&&((ve=Se[r.bisect(it,be,1,Lt)-1]).y+=_t,ve.push(se[he]));return Se}return X.value=function(se){return arguments.length?(I=se,X):I},X.range=function(se){return arguments.length?(j=bn(se),X):j},X.bins=function(se){return arguments.length?(V=typeof se=="number"?function(he){return io(he,se)}:bn(se),X):V},X.frequency=function(se){return arguments.length?(ce=!!se,X):ce},X},r.layout.pack=function(){var ce,I=r.layout.hierarchy().sort(Ra),j=0,V=[1,1];function X(se,he){var ve=I.call(this,se,he),be=ve[0],Se=V[0],Ue=V[1],Xe=ce==null?Math.sqrt:typeof ce=="function"?ce:function(){return ce};if(be.x=be.y=0,an(be,function(xt){xt.r=+Xe(xt.value)}),an(be,Qo),j){var it=j*(ce?1:Math.max(2*be.r/Se,2*be.r/Ue))/2;an(be,function(xt){xt.r+=it}),an(be,Qo),an(be,function(xt){xt.r-=it})}return function xt(Lt,_t,Mt,yt){var Nt=Lt.children;if(Lt.x=_t+=yt*Lt.x,Lt.y=Mt+=yt*Lt.y,Lt.r*=yt,Nt)for(var Rt=-1,qt=Nt.length;++RtLt.x&&(Lt=Rt),Rt.depth>_t.depth&&(_t=Rt)});var Mt=I(xt,Lt)/2-xt.x,yt=j[0]/(Lt.x+I(Lt,xt)/2+Mt),Nt=j[1]/(_t.depth||1);Yt(Xe,function(Rt){Rt.x=(Rt.x+Mt)*yt,Rt.y=Rt.depth*Nt})}return Ue}function se(be){var Se=be.children,Ue=be.parent.children,Xe=be.i?Ue[be.i-1]:null;if(Se.length){(function(xt){for(var Lt,_t=0,Mt=0,yt=xt.children,Nt=yt.length;--Nt>=0;)(Lt=yt[Nt]).z+=_t,Lt.m+=_t,_t+=Lt.s+(Mt+=Lt.c)})(be);var it=(Se[0].z+Se[Se.length-1].z)/2;Xe?(be.z=Xe.z+I(be._,Xe._),be.m=be.z-it):be.z=it}else Xe&&(be.z=Xe.z+I(be._,Xe._));be.parent.A=function(xt,Lt,_t){if(Lt){for(var Mt,yt=xt,Nt=xt,Rt=Lt,qt=yt.parent.children[0],rn=yt.m,dn=Nt.m,Sn=Rt.m,An=qt.m;Rt=ln(Rt),yt=Ft(yt),Rt&&yt;)qt=Ft(qt),(Nt=ln(Nt)).a=xt,(Mt=Rt.z+Sn-yt.z-rn+I(Rt._,yt._))>0&&($t(un(Rt,xt,_t),xt,Mt),rn+=Mt,dn+=Mt),Sn+=Rt.m,rn+=yt.m,An+=qt.m,dn+=Nt.m;Rt&&!ln(Nt)&&(Nt.t=Rt,Nt.m+=Sn-dn),yt&&!Ft(qt)&&(qt.t=yt,qt.m+=rn-An,_t=xt)}return _t}(be,Xe,be.parent.A||Ue[0])}function he(be){be._.x=be.z+be.parent.m,be.m+=be.parent.m}function ve(be){be.x*=j[0],be.y=be.depth*j[1]}return X.separation=function(be){return arguments.length?(I=be,X):I},X.size=function(be){return arguments.length?(V=(j=be)==null?ve:null,X):V?null:j},X.nodeSize=function(be){return arguments.length?(V=(j=be)==null?null:ve,X):V?j:null},en(X,ce)},r.layout.cluster=function(){var ce=r.layout.hierarchy().sort(null).value(null),I=ht,j=[1,1],V=!1;function X(se,he){var ve,be=ce.call(this,se,he),Se=be[0],Ue=0;an(Se,function(_t){var Mt=_t.children;Mt&&Mt.length?(_t.x=function(yt){return yt.reduce(function(Nt,Rt){return Nt+Rt.x},0)/yt.length}(Mt),_t.y=function(yt){return 1+r.max(yt,function(Nt){return Nt.y})}(Mt)):(_t.x=ve?Ue+=I(_t,ve):0,_t.y=0,ve=_t)});var Xe=function _t(Mt){var yt=Mt.children;return yt&&yt.length?_t(yt[0]):Mt}(Se),it=function _t(Mt){var yt,Nt=Mt.children;return Nt&&(yt=Nt.length)?_t(Nt[yt-1]):Mt}(Se),xt=Xe.x-I(Xe,it)/2,Lt=it.x+I(it,Xe)/2;return an(Se,V?function(_t){_t.x=(_t.x-Se.x)*j[0],_t.y=(Se.y-_t.y)*j[1]}:function(_t){_t.x=(_t.x-xt)/(Lt-xt)*j[0],_t.y=(1-(Se.y?_t.y/Se.y:1))*j[1]}),be}return X.separation=function(se){return arguments.length?(I=se,X):I},X.size=function(se){return arguments.length?(V=(j=se)==null,X):V?null:j},X.nodeSize=function(se){return arguments.length?(V=(j=se)!=null,X):V?j:null},en(X,ce)},r.layout.treemap=function(){var ce,I=r.layout.hierarchy(),j=Math.round,V=[1,1],X=null,se=On,he=!1,ve="squarify",be=.5*(1+Math.sqrt(5));function Se(_t,Mt){for(var yt,Nt,Rt=-1,qt=_t.length;++Rt0;)rn.push(yt=dn[Rt-1]),rn.area+=yt.area,ve!=="squarify"||(Nt=it(rn,An))<=Sn?(dn.pop(),Sn=Nt):(rn.area-=rn.pop().area,xt(rn,An,qt,!1),An=Math.min(qt.dx,qt.dy),rn.length=rn.area=0,Sn=1/0);rn.length&&(xt(rn,An,qt,!0),rn.length=rn.area=0),Mt.forEach(Ue)}}function Xe(_t){var Mt=_t.children;if(Mt&&Mt.length){var yt,Nt=se(_t),Rt=Mt.slice(),qt=[];for(Se(Rt,Nt.dx*Nt.dy/_t.value),qt.area=0;yt=Rt.pop();)qt.push(yt),qt.area+=yt.area,yt.z!=null&&(xt(qt,yt.z?Nt.dx:Nt.dy,Nt,!Rt.length),qt.length=qt.area=0);Mt.forEach(Xe)}}function it(_t,Mt){for(var yt,Nt=_t.area,Rt=0,qt=1/0,rn=-1,dn=_t.length;++rnRt&&(Rt=yt));return Mt*=Mt,(Nt*=Nt)?Math.max(Mt*Rt*be/Nt,Nt/(Mt*qt*be)):1/0}function xt(_t,Mt,yt,Nt){var Rt,qt=-1,rn=_t.length,dn=yt.x,Sn=yt.y,An=Mt?j(_t.area/Mt):0;if(Mt==yt.dx){for((Nt||An>yt.dy)&&(An=yt.dy);++qtyt.dx)&&(An=yt.dx);++qt1);return ce+I*V*Math.sqrt(-2*Math.log(se)/se)}},logNormal:function(){var ce=r.random.normal.apply(r,arguments);return function(){return Math.exp(ce())}},bates:function(ce){var I=r.random.irwinHall(ce);return function(){return I()/ce}},irwinHall:function(ce){return function(){for(var I=0,j=0;j2?Ar:ur,Ue=X?js:Vu;return se=Se(I,j,Ue,V),he=Se(j,I,Ue,Oo),be}function be(Se){return se(Se)}return be.invert=function(Se){return he(Se)},be.domain=function(Se){return arguments.length?(I=Se.map(Number),ve()):I},be.range=function(Se){return arguments.length?(j=Se,ve()):j},be.rangeRound=function(Se){return be.range(Se).interpolate(hl)},be.clamp=function(Se){return arguments.length?(X=Se,ve()):X},be.interpolate=function(Se){return arguments.length?(V=Se,ve()):V},be.ticks=function(Se){return Qn(I,Se)},be.tickFormat=function(Se,Ue){return d3_scale_linearTickFormat(I,Se,Ue)},be.nice=function(Se){return Zr(I,Se),ve()},be.copy=function(){return ce(I,j,V,X)},ve()}([0,1],[0,1],Oo,!1)},r.scale.log=function(){return function ce(I,j,V,X){function se(be){return(V?Math.log(be<0?0:be):-Math.log(be>0?0:-be))/Math.log(j)}function he(be){return V?Math.pow(j,be):-Math.pow(j,-be)}function ve(be){return I(se(be))}return ve.invert=function(be){return he(I.invert(be))},ve.domain=function(be){return arguments.length?(V=be[0]>=0,I.domain((X=be.map(Number)).map(se)),ve):X},ve.base=function(be){return arguments.length?(j=+be,I.domain(X.map(se)),ve):j},ve.nice=function(){var be=yr(X.map(se),V?Math:di);return I.domain(be),X=be.map(he),ve},ve.ticks=function(){var be=Jn(X),Se=[],Ue=be[0],Xe=be[1],it=Math.floor(se(Ue)),xt=Math.ceil(se(Xe)),Lt=j%1?2:j;if(isFinite(xt-it)){if(V){for(;it0;_t--)Se.push(he(it)*_t);for(it=0;Se[it]Xe;xt--);Se=Se.slice(it,xt)}return Se},ve.copy=function(){return ce(I.copy(),j,V,X)},Ur(ve,I)}(r.scale.linear().domain([0,1]),10,!0,[1,10])};var di={floor:function(ce){return-Math.ceil(-ce)},ceil:function(ce){return-Math.floor(-ce)}};function Rr(ce){return function(I){return I<0?-Math.pow(-I,ce):Math.pow(I,ce)}}r.scale.pow=function(){return function ce(I,j,V){var X=Rr(j),se=Rr(1/j);function he(ve){return I(X(ve))}return he.invert=function(ve){return se(I.invert(ve))},he.domain=function(ve){return arguments.length?(I.domain((V=ve.map(Number)).map(X)),he):V},he.ticks=function(ve){return Qn(V,ve)},he.tickFormat=function(ve,be){return d3_scale_linearTickFormat(V,ve,be)},he.nice=function(ve){return he.domain(Zr(V,ve))},he.exponent=function(ve){return arguments.length?(X=Rr(j=ve),se=Rr(1/j),I.domain(V.map(X)),he):j},he.copy=function(){return ce(I.copy(),j,V)},Ur(he,I)}(r.scale.linear(),1,[0,1])},r.scale.sqrt=function(){return r.scale.pow().exponent(.5)},r.scale.ordinal=function(){return function ce(I,j){var V,X,se;function he(be){return X[((V.get(be)||(j.t==="range"?V.set(be,I.push(be)):NaN))-1)%X.length]}function ve(be,Se){return r.range(I.length).map(function(Ue){return be+Se*Ue})}return he.domain=function(be){if(!arguments.length)return I;I=[],V=new M;for(var Se,Ue=-1,Xe=be.length;++Ue0?V[he-1]:I[0],heit?0:1;if(Ue=Be)return be(Ue,Lt)+(Se?be(Se,1-Lt):"")+"Z";var _t,Mt,yt,Nt,Rt,qt,rn,dn,Sn,An,tr,er,gr=0,cr=0,Yr=[];if((Nt=(+he.apply(this,arguments)||0)/2)&&(yt=V===ra?Math.sqrt(Se*Se+Ue*Ue):+V.apply(this,arguments),Lt||(cr*=-1),Ue&&(cr=Pe(yt/Ue*Math.sin(Nt))),Se&&(gr=Pe(yt/Se*Math.sin(Nt)))),Ue){Rt=Ue*Math.cos(Xe+cr),qt=Ue*Math.sin(Xe+cr),rn=Ue*Math.cos(it-cr),dn=Ue*Math.sin(it-cr);var ii=Math.abs(it-Xe-2*cr)<=Wt?0:1;if(cr&&pi(Rt,qt,rn,dn)===Lt^ii){var Ti=(Xe+it)/2;Rt=Ue*Math.cos(Ti),qt=Ue*Math.sin(Ti),rn=dn=null}}else Rt=qt=0;if(Se){Sn=Se*Math.cos(it-gr),An=Se*Math.sin(it-gr),tr=Se*Math.cos(Xe+gr),er=Se*Math.sin(Xe+gr);var Gn=Math.abs(Xe-it+2*gr)<=Wt?0:1;if(gr&&pi(Sn,An,tr,er)===1-Lt^Gn){var Mr=(Xe+it)/2;Sn=Se*Math.cos(Mr),An=Se*Math.sin(Mr),tr=er=null}}else Sn=An=0;if(xt>Ot&&(_t=Math.min(Math.abs(Ue-Se)/2,+j.apply(this,arguments)))>.001){Mt=Se0?0:1}function _a(ce,I,j,V,X){var se=ce[0]-I[0],he=ce[1]-I[1],ve=(X?V:-V)/Math.sqrt(se*se+he*he),be=ve*he,Se=-ve*se,Ue=ce[0]+be,Xe=ce[1]+Se,it=I[0]+be,xt=I[1]+Se,Lt=(Ue+it)/2,_t=(Xe+xt)/2,Mt=it-Ue,yt=xt-Xe,Nt=Mt*Mt+yt*yt,Rt=j-V,qt=Ue*xt-it*Xe,rn=(yt<0?-1:1)*Math.sqrt(Math.max(0,Rt*Rt*Nt-qt*qt)),dn=(qt*yt-Mt*rn)/Nt,Sn=(-qt*Mt-yt*rn)/Nt,An=(qt*yt+Mt*rn)/Nt,tr=(-qt*Mt+yt*rn)/Nt,er=dn-Lt,gr=Sn-_t,cr=An-Lt,Yr=tr-_t;return er*er+gr*gr>cr*cr+Yr*Yr&&(dn=An,Sn=tr),[[dn-be,Sn-Se],[dn*j/Rt,Sn*j/Rt]]}function Po(){return!0}function Al(ce){var I=Mn,j=rr,V=Po,X=ks,se=X.key,he=.7;function ve(be){var Se,Ue=[],Xe=[],it=-1,xt=be.length,Lt=bn(I),_t=bn(j);function Mt(){Ue.push("M",X(ce(Xe),he))}for(;++it1&&X.push("H",V[0]),X.join("")},"step-before":Qa,"step-after":Ts,basis:jo,"basis-open":function(ce){if(ce.length<4)return ks(ce);for(var I,j=[],V=-1,X=ce.length,se=[0],he=[0];++V<3;)I=ce[V],se.push(I[0]),he.push(I[1]);for(j.push(La(ns,se)+","+La(ns,he)),--V;++V9&&(se=3*j/Math.sqrt(se),ve[be]=se*V,ve[be+1]=se*X));for(be=-1;++be<=Se;)se=(I[Math.min(Se,be+1)][0]-I[Math.max(0,be-1)][0])/(6*(1+ve[be]*ve[be])),he.push([se||0,ve[be]*se||0]);return he}(ce))}});function ks(ce){return ce.length>1?ce.join("L"):ce+"Z"}function Pi(ce){return ce.join("L")+"Z"}function Qa(ce){for(var I=0,j=ce.length,V=ce[0],X=[V[0],",",V[1]];++I1){ve=I[1],se=ce[be],be++,V+="C"+(X[0]+he[0])+","+(X[1]+he[1])+","+(se[0]-ve[0])+","+(se[1]-ve[1])+","+se[0]+","+se[1];for(var Se=2;SeWt)+",1 "+Ue}function be(Se,Ue,Xe,it){return"Q 0,0 "+it}return se.radius=function(Se){return arguments.length?(j=bn(Se),se):j},se.source=function(Se){return arguments.length?(ce=bn(Se),se):ce},se.target=function(Se){return arguments.length?(I=bn(Se),se):I},se.startAngle=function(Se){return arguments.length?(V=bn(Se),se):V},se.endAngle=function(Se){return arguments.length?(X=bn(Se),se):X},se},r.svg.diagonal=function(){var ce=wf,I=So,j=wi;function V(X,se){var he=ce.call(this,X,se),ve=I.call(this,X,se),be=(he.y+ve.y)/2,Se=[he,{x:he.x,y:be},{x:ve.x,y:be},ve];return"M"+(Se=Se.map(j))[0]+"C"+Se[1]+" "+Se[2]+" "+Se[3]}return V.source=function(X){return arguments.length?(ce=bn(X),V):ce},V.target=function(X){return arguments.length?(I=bn(X),V):I},V.projection=function(X){return arguments.length?(j=X,V):j},V},r.svg.diagonal.radial=function(){var ce=r.svg.diagonal(),I=wi,j=ce.projection;return ce.projection=function(V){return arguments.length?j(Di(I=V)):I},ce},r.svg.symbol=function(){var ce=Tf,I=kf;function j(V,X){return(Us.get(ce.call(this,V,X))||Jl)(I.call(this,V,X))}return j.type=function(V){return arguments.length?(ce=bn(V),j):ce},j.size=function(V){return arguments.length?(I=bn(V),j):I},j};var Us=r.map({circle:Jl,cross:function(ce){var I=Math.sqrt(ce/5)/2;return"M"+-3*I+","+-I+"H"+-I+"V"+-3*I+"H"+I+"V"+-I+"H"+3*I+"V"+I+"H"+I+"V"+3*I+"H"+-I+"V"+I+"H"+-3*I+"Z"},diamond:function(ce){var I=Math.sqrt(ce/(2*od)),j=I*od;return"M0,"+-I+"L"+j+",0 0,"+I+" "+-j+",0Z"},square:function(ce){var I=Math.sqrt(ce)/2;return"M"+-I+","+-I+"L"+I+","+-I+" "+I+","+I+" "+-I+","+I+"Z"},"triangle-down":function(ce){var I=Math.sqrt(ce/ml),j=I*ml/2;return"M0,"+j+"L"+I+","+-j+" "+-I+","+-j+"Z"},"triangle-up":function(ce){var I=Math.sqrt(ce/ml),j=I*ml/2;return"M0,"+-j+"L"+I+","+j+" "+-I+","+j+"Z"}});r.svg.symbolTypes=Us.keys();var ml=Math.sqrt(3),od=Math.tan(30*Tt);ee.transition=function(ce){for(var I,j,V=qu||++Hu,X=Pc(ce),se=[],he=yu||{time:Date.now(),ease:ac,delay:0,duration:250},ve=-1,be=this.length;++ve0;)Se[--yt].call(ce,Mt);if(_t>=1)return Xe.event&&Xe.event.end.call(ce,ce.__data__,I),--Ue.count?delete Ue[V]:delete ce[j],1}Xe||(se=X.time,he=Kn(function(Lt){var _t=Xe.delay;if(he.t=_t+se,_t<=Lt)return it(Lt-_t);he.c=it},0,se),Xe=Ue[V]={tween:new M,time:se,timer:he,delay:X.delay,duration:X.duration,ease:X.ease,index:I},X=null,++Ue.count)}yo.call=ee.call,yo.empty=ee.empty,yo.node=ee.node,yo.size=ee.size,r.transition=function(ce,I){return ce&&ce.transition?qu?ce.transition(I):ce:r.selection().transition(ce)},r.transition.prototype=yo,yo.select=function(ce){var I,j,V,X=this.id,se=this.namespace,he=[];ce=ie(ce);for(var ve=-1,be=this.length;++verect,.s>rect").attr("width",se[1]-se[0])}function xt(_t){_t.select(".extent").attr("y",he[0]),_t.selectAll(".extent,.e>rect,.w>rect").attr("height",he[1]-he[0])}function Lt(){var _t,Mt,yt=this,Nt=r.select(r.event.target),Rt=j.of(yt,arguments),qt=r.select(yt),rn=Nt.datum(),dn=!/^(n|s)$/.test(rn)&&V,Sn=!/^(e|w)$/.test(rn)&&X,An=Nt.classed("extent"),tr=Pt(yt),er=r.mouse(yt),gr=r.select(s(yt)).on("keydown.brush",ii).on("keyup.brush",Ti);if(r.event.changedTouches?gr.on("touchmove.brush",Gn).on("touchend.brush",ai):gr.on("mousemove.brush",Gn).on("mouseup.brush",ai),qt.interrupt().selectAll("*").interrupt(),An)er[0]=se[0]-er[0],er[1]=he[0]-er[1];else if(rn){var cr=+/w$/.test(rn),Yr=+/^n/.test(rn);Mt=[se[1-cr]-er[0],he[1-Yr]-er[1]],er[0]=se[cr],er[1]=he[Yr]}else r.event.altKey&&(_t=er.slice());function ii(){r.event.keyCode==32&&(An||(_t=null,er[0]-=se[1],er[1]-=he[1],An=2),Y())}function Ti(){r.event.keyCode==32&&An==2&&(er[0]+=se[1],er[1]+=he[1],An=0,Y())}function Gn(){var Qr=r.mouse(yt),gi=!1;Mt&&(Qr[0]+=Mt[0],Qr[1]+=Mt[1]),An||(r.event.altKey?(_t||(_t=[(se[0]+se[1])/2,(he[0]+he[1])/2]),er[0]=se[+(Qr[0]<_t[0])],er[1]=he[+(Qr[1]<_t[1])]):_t=null),dn&&Mr(Qr,V,0)&&(it(qt),gi=!0),Sn&&Mr(Qr,X,1)&&(xt(qt),gi=!0),gi&&(Xe(qt),Rt({type:"brush",mode:An?"move":"resize"}))}function Mr(Qr,gi,Mi){var Yi,ci,zi=fr(gi),Li=zi[0],Qi=zi[1],Ri=er[Mi],ea=Mi?he:se,fa=ea[1]-ea[0];if(An&&(Li-=Ri,Qi-=fa+Ri),Yi=(Mi?be:ve)?Math.max(Li,Math.min(Qi,Qr[Mi])):Qr[Mi],An?ci=(Yi+=Ri)+fa:(_t&&(Ri=Math.max(Li,Math.min(Qi,2*_t[Mi]-Yi))),Ri>>1;v.dtype||(v.dtype="array"),typeof v.dtype=="string"?w=new(h(v.dtype))(b):v.dtype&&(w=v.dtype,Array.isArray(w)&&(w.length=b));for(var T=0;Ty||Z>1073741824){for(var ne=0;nefe+_e||H>me+_e||Q=ie||Te===Oe)){var de=_[we];Oe===void 0&&(Oe=de.length);for(var ye=Te;ye=Z&&ke<=U&&Ee>=re&&Ee<=q&&ue.push(Me)}var ze=M[we],Fe=ze[4*Te+0],Ve=ze[4*Te+1],Ke=ze[4*Te+2],Re=ze[4*Te+3],qe=ge(ze,Te+1),We=.5*_e,Ye=we+1;le(fe,me,We,Ye,Fe,Ve||Ke||Re||qe),le(fe,me+We,We,Ye,Ve,Ke||Re||qe),le(fe+We,me,We,Ye,Ke,Re||qe),le(fe+We,me+We,We,Ye,Re,qe)}}function ge(fe,me){for(var _e=null,we=0;_e===null;)if(_e=fe[4*me+we],++we>fe.length)return null;return _e}return le(0,0,1,0,0,1),ue},w;function P(B,G,W,K,te){for(var Y=[],Z=0;Z0){s+=Math.abs(u(i[0]));for(var l=1;l2){for(g=0;g=0))throw new Error("precision must be a positive number");var x=Math.pow(10,y||0);return Math.round(v*x)/x},f.radiansToLength=h,f.lengthToRadians=m,f.lengthToDegrees=function(v,y){return g(m(v,y))},f.bearingToAzimuth=function(v){var y=v%360;return y<0&&(y+=360),y},f.radiansToDegrees=g,f.degreesToRadians=function(v){return v%360*Math.PI/180},f.convertLength=function(v,y,x){if(y===void 0&&(y="kilometers"),x===void 0&&(x="kilometers"),!(v>=0))throw new Error("length must be a positive number");return h(m(v,y),x)},f.convertArea=function(v,y,x){if(y===void 0&&(y="meters"),x===void 0&&(x="kilometers"),!(v>=0))throw new Error("area must be a positive number");var w=f.areaFactors[y];if(!w)throw new Error("invalid original units");var k=f.areaFactors[x];if(!k)throw new Error("invalid final units");return v/w*k},f.isNumber=p,f.isObject=function(v){return!!v&&v.constructor===Object},f.validateBBox=function(v){if(!v)throw new Error("bbox is required");if(!Array.isArray(v))throw new Error("bbox must be an Array");if(v.length!==4&&v.length!==6)throw new Error("bbox must be an Array of 4 or 6 numbers");v.forEach(function(y){if(!p(y))throw new Error("bbox must only contain numbers")})},f.validateId=function(v){if(!v)throw new Error("id is required");if(["string","number"].indexOf(typeof v)===-1)throw new Error("id must be a number or a string")}},{}],63:[function(e,o,f){Object.defineProperty(f,"__esModule",{value:!0});var r=e("@turf/helpers");function a(h,m,g){if(h!==null)for(var p,v,y,x,w,k,b,T,_=0,M=0,A=h.type,S=A==="FeatureCollection",E=A==="Feature",D=S?h.features.length:1,O=0;Ok||S>b||E>T)return w=_,k=p,b=S,T=E,void(y=0);var D=r.lineString([w,_],g.properties);if(m(D,p,v,E,y)===!1)return!1;y++,w=_})!==!1&&void 0}}})}function d(h,m){if(!h)throw new Error("geojson is required");s(h,function(g,p,v){if(g.geometry!==null){var y=g.geometry.type,x=g.geometry.coordinates;switch(y){case"LineString":if(m(g,p,v,0,0)===!1)return!1;break;case"Polygon":for(var w=0;wi[0]&&(c[0]=i[0]),c[1]>i[1]&&(c[1]=i[1]),c[2]=0))throw new Error("precision must be a positive number");var x=Math.pow(10,y||0);return Math.round(v*x)/x},f.radiansToLength=h,f.lengthToRadians=m,f.lengthToDegrees=function(v,y){return g(m(v,y))},f.bearingToAzimuth=function(v){var y=v%360;return y<0&&(y+=360),y},f.radiansToDegrees=g,f.degreesToRadians=function(v){return v%360*Math.PI/180},f.convertLength=function(v,y,x){if(y===void 0&&(y="kilometers"),x===void 0&&(x="kilometers"),!(v>=0))throw new Error("length must be a positive number");return h(m(v,y),x)},f.convertArea=function(v,y,x){if(y===void 0&&(y="meters"),x===void 0&&(x="kilometers"),!(v>=0))throw new Error("area must be a positive number");var w=f.areaFactors[y];if(!w)throw new Error("invalid original units");var k=f.areaFactors[x];if(!k)throw new Error("invalid final units");return v/w*k},f.isNumber=p,f.isObject=function(v){return!!v&&v.constructor===Object},f.validateBBox=function(v){if(!v)throw new Error("bbox is required");if(!Array.isArray(v))throw new Error("bbox must be an Array");if(v.length!==4&&v.length!==6)throw new Error("bbox must be an Array of 4 or 6 numbers");v.forEach(function(y){if(!p(y))throw new Error("bbox must only contain numbers")})},f.validateId=function(v){if(!v)throw new Error("id is required");if(["string","number"].indexOf(typeof v)===-1)throw new Error("id must be a number or a string")},f.radians2degrees=function(){throw new Error("method has been renamed to `radiansToDegrees`")},f.degrees2radians=function(){throw new Error("method has been renamed to `degreesToRadians`")},f.distanceToDegrees=function(){throw new Error("method has been renamed to `lengthToDegrees`")},f.distanceToRadians=function(){throw new Error("method has been renamed to `lengthToRadians`")},f.radiansToDistance=function(){throw new Error("method has been renamed to `radiansToLength`")},f.bearingToAngle=function(){throw new Error("method has been renamed to `bearingToAzimuth`")},f.convertDistance=function(){throw new Error("method has been renamed to `convertLength`")}},{}],69:[function(e,o,f){Object.defineProperty(f,"__esModule",{value:!0});var r=e("@turf/helpers");function a(h,m,g){if(h!==null)for(var p,v,y,x,w,k,b,T,_=0,M=0,A=h.type,S=A==="FeatureCollection",E=A==="Feature",D=S?h.features.length:1,O=0;Ok||S>b||E>T)return w=_,k=p,b=S,T=E,void(y=0);var D=r.lineString([w,_],g.properties);if(m(D,p,v,E,y)===!1)return!1;y++,w=_})!==!1&&void 0}}})}function d(h,m){if(!h)throw new Error("geojson is required");s(h,function(g,p,v){if(g.geometry!==null){var y=g.geometry.type,x=g.geometry.coordinates;switch(y){case"LineString":if(m(g,p,v,0,0)===!1)return!1;break;case"Polygon":for(var w=0;wi&&(i=r[l]),r[l] + * @license MIT + */function u(S,E){if(S===E)return 0;for(var D=S.length,O=E.length,R=0,z=Math.min(D,O);R=0;K--)if(te[K]!==Y[K])return!1;for(K=te.length-1;K>=0;K--)if(W=te[K],!b(z[W],L[W],P,N))return!1;return!0}(S,E,D,O))}return D?S===E:S==E}function T(S){return Object.prototype.toString.call(S)=="[object Arguments]"}function _(S,E){if(!S||!E)return!1;if(Object.prototype.toString.call(E)=="[object RegExp]")return E.test(S);try{if(S instanceof E)return!0}catch{}return!Error.isPrototypeOf(E)&&E.call({},S)===!0}function M(S,E,D,O){var R;if(typeof E!="function")throw new TypeError('"block" argument must be a function');typeof D=="string"&&(O=D,D=null),R=function(P){var N;try{P()}catch(B){N=B}return N}(E),O=(D&&D.name?" ("+D.name+").":".")+(O?" "+O:"."),S&&!R&&w(R,D,"Missing expected exception"+O);var z=typeof O=="string",L=!S&&R&&!D;if((!S&&i.isError(R)&&z&&_(R,D)||L)&&w(R,D,"Got unwanted exception"+O),S&&R&&D&&!_(R,D)||!S&&R)throw R}g.AssertionError=function(S){this.name="AssertionError",this.actual=S.actual,this.expected=S.expected,this.operator=S.operator,S.message?(this.message=S.message,this.generatedMessage=!1):(this.message=function(P){return y(x(P.actual),128)+" "+P.operator+" "+y(x(P.expected),128)}(this),this.generatedMessage=!0);var E=S.stackStartFunction||w;if(Error.captureStackTrace)Error.captureStackTrace(this,E);else{var D=new Error;if(D.stack){var O=D.stack,R=v(E),z=O.indexOf(` +`+R);if(z>=0){var L=O.indexOf(` +`,z+1);O=O.substring(L+1)}this.stack=O}}},i.inherits(g.AssertionError,Error),g.fail=w,g.ok=k,g.equal=function(S,E,D){S!=E&&w(S,E,D,"==",g.equal)},g.notEqual=function(S,E,D){S==E&&w(S,E,D,"!=",g.notEqual)},g.deepEqual=function(S,E,D){b(S,E,!1)||w(S,E,D,"deepEqual",g.deepEqual)},g.deepStrictEqual=function(S,E,D){b(S,E,!0)||w(S,E,D,"deepStrictEqual",g.deepStrictEqual)},g.notDeepEqual=function(S,E,D){b(S,E,!1)&&w(S,E,D,"notDeepEqual",g.notDeepEqual)},g.notDeepStrictEqual=function S(E,D,O){b(E,D,!0)&&w(E,D,O,"notDeepStrictEqual",S)},g.strictEqual=function(S,E,D){S!==E&&w(S,E,D,"===",g.strictEqual)},g.notStrictEqual=function(S,E,D){S===E&&w(S,E,D,"!==",g.notStrictEqual)},g.throws=function(S,E,D){M(!0,S,E,D)},g.doesNotThrow=function(S,E,D){M(!1,S,E,D)},g.ifError=function(S){if(S)throw S},g.strict=a(function S(E,D){E||w(E,!0,D,"==",S)},g,{equal:g.strictEqual,deepEqual:g.deepStrictEqual,notEqual:g.notStrictEqual,notDeepEqual:g.notDeepStrictEqual}),g.strict.strict=g.strict;var A=Object.keys||function(S){var E=[];for(var D in S)s.call(S,D)&&E.push(D);return E}}).call(this)}).call(this,typeof Ro<"u"?Ro:typeof self<"u"?self:typeof window<"u"?window:{})},{"object-assign":247,"util/":78}],76:[function(e,o,f){typeof Object.create=="function"?o.exports=function(r,a){r.super_=a,r.prototype=Object.create(a.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}})}:o.exports=function(r,a){r.super_=a;var u=function(){};u.prototype=a.prototype,r.prototype=new u,r.prototype.constructor=r}},{}],77:[function(e,o,f){o.exports=function(r){return r&&typeof r=="object"&&typeof r.copy=="function"&&typeof r.fill=="function"&&typeof r.readUInt8=="function"}},{}],78:[function(e,o,f){(function(r,a){(function(){var u=/%[sdj%]/g;f.format=function(z){if(!w(z)){for(var L=[],P=0;P=B)return K;switch(K){case"%s":return String(N[P++]);case"%d":return Number(N[P++]);case"%j":try{return JSON.stringify(N[P++])}catch{return"[Circular]"}default:return K}}),W=N[P];P=3&&(P.depth=arguments[2]),arguments.length>=4&&(P.colors=arguments[3]),v(L)?P.showHidden=L:L&&f._extend(P,L),k(P.showHidden)&&(P.showHidden=!1),k(P.depth)&&(P.depth=2),k(P.colors)&&(P.colors=!1),k(P.customInspect)&&(P.customInspect=!0),P.colors&&(P.stylize=l),h(P,z,P.depth)}function l(z,L){var P=s.styles[L];return P?"\x1B["+s.colors[P][0]+"m"+z+"\x1B["+s.colors[P][1]+"m":z}function d(z,L){return z}function h(z,L,P){if(z.customInspect&&L&&A(L.inspect)&&L.inspect!==f.inspect&&(!L.constructor||L.constructor.prototype!==L)){var N=L.inspect(P,z);return w(N)||(N=h(z,N,P)),N}var B=function(U,q){if(k(q))return U.stylize("undefined","undefined");if(w(q)){var $="'"+JSON.stringify(q).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return U.stylize($,"string")}if(x(q))return U.stylize(""+q,"number");if(v(q))return U.stylize(""+q,"boolean");if(y(q))return U.stylize("null","null")}(z,L);if(B)return B;var G=Object.keys(L),W=function(U){var q={};return U.forEach(function($,ne){q[$]=!0}),q}(G);if(z.showHidden&&(G=Object.getOwnPropertyNames(L)),M(L)&&(G.indexOf("message")>=0||G.indexOf("description")>=0))return m(L);if(G.length===0){if(A(L)){var K=L.name?": "+L.name:"";return z.stylize("[Function"+K+"]","special")}if(b(L))return z.stylize(RegExp.prototype.toString.call(L),"regexp");if(_(L))return z.stylize(Date.prototype.toString.call(L),"date");if(M(L))return m(L)}var te,Y="",Z=!1,re=["{","}"];return p(L)&&(Z=!0,re=["[","]"]),A(L)&&(Y=" [Function"+(L.name?": "+L.name:"")+"]"),b(L)&&(Y=" "+RegExp.prototype.toString.call(L)),_(L)&&(Y=" "+Date.prototype.toUTCString.call(L)),M(L)&&(Y=" "+m(L)),G.length!==0||Z&&L.length!=0?P<0?b(L)?z.stylize(RegExp.prototype.toString.call(L),"regexp"):z.stylize("[Object]","special"):(z.seen.push(L),te=Z?function(U,q,$,ne,H){for(var Q=[],ee=0,ie=q.length;ee=0,ne+H.replace(/\u001b\[\d\d?m/g,"").length+1},0)>60?$[0]+(q===""?"":q+` + `)+" "+U.join(`, + `)+" "+$[1]:$[0]+q+" "+U.join(", ")+" "+$[1]}(te,Y,re)):re[0]+Y+re[1]}function m(z){return"["+Error.prototype.toString.call(z)+"]"}function g(z,L,P,N,B,G){var W,K,te;if((te=Object.getOwnPropertyDescriptor(L,B)||{value:L[B]}).get?K=te.set?z.stylize("[Getter/Setter]","special"):z.stylize("[Getter]","special"):te.set&&(K=z.stylize("[Setter]","special")),R(N,B)||(W="["+B+"]"),K||(z.seen.indexOf(te.value)<0?(K=y(P)?h(z,te.value,null):h(z,te.value,P-1)).indexOf(` +`)>-1&&(K=G?K.split(` +`).map(function(Y){return" "+Y}).join(` +`).substr(2):` +`+K.split(` +`).map(function(Y){return" "+Y}).join(` +`)):K=z.stylize("[Circular]","special")),k(W)){if(G&&B.match(/^\d+$/))return K;(W=JSON.stringify(""+B)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(W=W.substr(1,W.length-2),W=z.stylize(W,"name")):(W=W.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),W=z.stylize(W,"string"))}return W+": "+K}function p(z){return Array.isArray(z)}function v(z){return typeof z=="boolean"}function y(z){return z===null}function x(z){return typeof z=="number"}function w(z){return typeof z=="string"}function k(z){return z===void 0}function b(z){return T(z)&&S(z)==="[object RegExp]"}function T(z){return typeof z=="object"&&z!==null}function _(z){return T(z)&&S(z)==="[object Date]"}function M(z){return T(z)&&(S(z)==="[object Error]"||z instanceof Error)}function A(z){return typeof z=="function"}function S(z){return Object.prototype.toString.call(z)}function E(z){return z<10?"0"+z.toString(10):z.toString(10)}f.debuglog=function(z){if(k(c)&&(c=r.env.NODE_DEBUG||""),z=z.toUpperCase(),!i[z])if(new RegExp("\\b"+z+"\\b","i").test(c)){var L=r.pid;i[z]=function(){var P=f.format.apply(f,arguments);console.error("%s %d: %s",z,L,P)}}else i[z]=function(){};return i[z]},f.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},f.isArray=p,f.isBoolean=v,f.isNull=y,f.isNullOrUndefined=function(z){return z==null},f.isNumber=x,f.isString=w,f.isSymbol=function(z){return typeof z=="symbol"},f.isUndefined=k,f.isRegExp=b,f.isObject=T,f.isDate=_,f.isError=M,f.isFunction=A,f.isPrimitive=function(z){return z===null||typeof z=="boolean"||typeof z=="number"||typeof z=="string"||typeof z=="symbol"||z===void 0},f.isBuffer=e("./support/isBuffer");var D=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function O(){var z=new Date,L=[E(z.getHours()),E(z.getMinutes()),E(z.getSeconds())].join(":");return[z.getDate(),D[z.getMonth()],L].join(" ")}function R(z,L){return Object.prototype.hasOwnProperty.call(z,L)}f.log=function(){console.log("%s - %s",O(),f.format.apply(f,arguments))},f.inherits=e("inherits"),f._extend=function(z,L){if(!L||!T(L))return z;for(var P=Object.keys(L),N=P.length;N--;)z[P[N]]=L[P[N]];return z}}).call(this)}).call(this,e("_process"),typeof Ro<"u"?Ro:typeof self<"u"?self:typeof window<"u"?window:{})},{"./support/isBuffer":77,_process:277,inherits:76}],79:[function(e,o,f){f.byteLength=function(h){var m=l(h),g=m[0],p=m[1];return 3*(g+p)/4-p},f.toByteArray=function(h){var m,g,p=l(h),v=p[0],y=p[1],x=new u(function(b,T,_){return 3*(T+_)/4-_}(0,v,y)),w=0,k=y>0?v-4:v;for(g=0;g>16&255,x[w++]=m>>8&255,x[w++]=255&m;return y===2&&(m=a[h.charCodeAt(g)]<<2|a[h.charCodeAt(g+1)]>>4,x[w++]=255&m),y===1&&(m=a[h.charCodeAt(g)]<<10|a[h.charCodeAt(g+1)]<<4|a[h.charCodeAt(g+2)]>>2,x[w++]=m>>8&255,x[w++]=255&m),x},f.fromByteArray=function(h){for(var m,g=h.length,p=g%3,v=[],y=0,x=g-p;yx?x:y+16383));return p===1?(m=h[g-1],v.push(r[m>>2]+r[m<<4&63]+"==")):p===2&&(m=(h[g-2]<<8)+h[g-1],v.push(r[m>>10]+r[m>>4&63]+r[m<<2&63]+"=")),v.join("")};for(var r=[],a=[],u=typeof Uint8Array<"u"?Uint8Array:Array,c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",i=0,s=c.length;i0)throw new Error("Invalid string. Length must be a multiple of 4");var g=h.indexOf("=");return g===-1&&(g=m),[g,g===m?0:4-g%4]}function d(h,m,g){for(var p,v,y=[],x=m;x>18&63]+r[v>>12&63]+r[v>>6&63]+r[63&v]);return y.join("")}a["-".charCodeAt(0)]=62,a["_".charCodeAt(0)]=63},{}],80:[function(e,o,f){function r(l,d,h,m,g){for(var p=g+1;m<=g;){var v=m+g>>>1,y=l[v];(h!==void 0?h(y,d):y-d)>=0?(p=v,g=v-1):m=v+1}return p}function a(l,d,h,m,g){for(var p=g+1;m<=g;){var v=m+g>>>1,y=l[v];(h!==void 0?h(y,d):y-d)>0?(p=v,g=v-1):m=v+1}return p}function u(l,d,h,m,g){for(var p=m-1;m<=g;){var v=m+g>>>1,y=l[v];(h!==void 0?h(y,d):y-d)<0?(p=v,m=v+1):g=v-1}return p}function c(l,d,h,m,g){for(var p=m-1;m<=g;){var v=m+g>>>1,y=l[v];(h!==void 0?h(y,d):y-d)<=0?(p=v,m=v+1):g=v-1}return p}function i(l,d,h,m,g){for(;m<=g;){var p=m+g>>>1,v=l[p],y=h!==void 0?h(v,d):v-d;if(y===0)return p;y<=0?m=p+1:g=p-1}return-1}function s(l,d,h,m,g,p){return typeof h=="function"?p(l,d,h,m===void 0?0:0|m,g===void 0?l.length-1:0|g):p(l,d,void 0,h===void 0?0:0|h,m===void 0?l.length-1:0|m)}o.exports={ge:function(l,d,h,m,g){return s(l,d,h,m,g,r)},gt:function(l,d,h,m,g){return s(l,d,h,m,g,a)},lt:function(l,d,h,m,g){return s(l,d,h,m,g,u)},le:function(l,d,h,m,g){return s(l,d,h,m,g,c)},eq:function(l,d,h,m,g){return s(l,d,h,m,g,i)}}},{}],81:[function(e,o,f){function r(u){var c=32;return(u&=-u)&&c--,65535&u&&(c-=16),16711935&u&&(c-=8),252645135&u&&(c-=4),858993459&u&&(c-=2),1431655765&u&&(c-=1),c}f.INT_BITS=32,f.INT_MAX=2147483647,f.INT_MIN=-1<<31,f.sign=function(u){return(u>0)-(u<0)},f.abs=function(u){var c=u>>31;return(u^c)-c},f.min=function(u,c){return c^(u^c)&-(u65535)<<4,c|=i=((u>>>=c)>255)<<3,c|=i=((u>>>=i)>15)<<2,(c|=i=((u>>>=i)>3)<<1)|(u>>>=i)>>1},f.log10=function(u){return u>=1e9?9:u>=1e8?8:u>=1e7?7:u>=1e6?6:u>=1e5?5:u>=1e4?4:u>=1e3?3:u>=100?2:u>=10?1:0},f.popCount=function(u){return 16843009*((u=(858993459&(u-=u>>>1&1431655765))+(u>>>2&858993459))+(u>>>4)&252645135)>>>24},f.countTrailingZeros=r,f.nextPow2=function(u){return u+=u===0,--u,u|=u>>>1,u|=u>>>2,u|=u>>>4,u|=u>>>8,(u|=u>>>16)+1},f.prevPow2=function(u){return u|=u>>>1,u|=u>>>2,u|=u>>>4,u|=u>>>8,(u|=u>>>16)-(u>>>1)},f.parity=function(u){return u^=u>>>16,u^=u>>>8,u^=u>>>4,27030>>>(u&=15)&1};var a=new Array(256);(function(u){for(var c=0;c<256;++c){var i=c,s=c,l=7;for(i>>>=1;i;i>>>=1)s<<=1,s|=1&i,--l;u[c]=s<>>8&255]<<16|a[u>>>16&255]<<8|a[u>>>24&255]},f.interleave2=function(u,c){return(u=1431655765&((u=858993459&((u=252645135&((u=16711935&((u&=65535)|u<<8))|u<<4))|u<<2))|u<<1))|(c=1431655765&((c=858993459&((c=252645135&((c=16711935&((c&=65535)|c<<8))|c<<4))|c<<2))|c<<1))<<1},f.deinterleave2=function(u,c){return(u=65535&((u=16711935&((u=252645135&((u=858993459&((u=u>>>c&1431655765)|u>>>1))|u>>>2))|u>>>4))|u>>>16))<<16>>16},f.interleave3=function(u,c,i){return u=1227133513&((u=3272356035&((u=251719695&((u=4278190335&((u&=1023)|u<<16))|u<<8))|u<<4))|u<<2),(u|=(c=1227133513&((c=3272356035&((c=251719695&((c=4278190335&((c&=1023)|c<<16))|c<<8))|c<<4))|c<<2))<<1)|(i=1227133513&((i=3272356035&((i=251719695&((i=4278190335&((i&=1023)|i<<16))|i<<8))|i<<4))|i<<2))<<2},f.deinterleave3=function(u,c){return(u=1023&((u=4278190335&((u=251719695&((u=3272356035&((u=u>>>c&1227133513)|u>>>2))|u>>>4))|u>>>8))|u>>>16))<<22>>22},f.nextCombination=function(u){var c=u|u-1;return c+1|(~c&-~c)-1>>>r(u)+1}},{}],82:[function(e,o,f){var r=e("clamp");o.exports=function(i,s){s||(s={});var l,d,h,m,g,p,v,y,x,w,k,b=s.cutoff==null?.25:s.cutoff,T=s.radius==null?8:s.radius,_=s.channel||0;if(ArrayBuffer.isView(i)||Array.isArray(i)){if(!s.width||!s.height)throw Error("For raw data width and height should be provided by options");l=s.width,d=s.height,m=i,p=s.stride?s.stride:Math.floor(i.length/l/d)}else window.HTMLCanvasElement&&i instanceof window.HTMLCanvasElement?(v=(y=i).getContext("2d"),l=y.width,d=y.height,x=v.getImageData(0,0,l,d),m=x.data,p=4):window.CanvasRenderingContext2D&&i instanceof window.CanvasRenderingContext2D?(y=i.canvas,v=i,l=y.width,d=y.height,x=v.getImageData(0,0,l,d),m=x.data,p=4):window.ImageData&&i instanceof window.ImageData&&(x=i,l=i.width,d=i.height,m=x.data,p=4);if(h=Math.max(l,d),window.Uint8ClampedArray&&m instanceof window.Uint8ClampedArray||window.Uint8Array&&m instanceof window.Uint8Array)for(g=m,m=Array(l*d),w=0,k=g.length;w0&&M.length>T&&!M.warned){M.warned=!0;var S=new Error("Possible EventEmitter memory leak detected. "+M.length+" "+String(w)+" listeners added. Use emitter.setMaxListeners() to increase limit");S.name="MaxListenersExceededWarning",S.emitter=x,S.type=w,S.count=M.length,A=S,console&&console.warn&&console.warn(A)}return x}function m(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function g(x,w,k){var b={fired:!1,wrapFn:void 0,target:x,type:w,listener:k},T=m.bind(b);return T.listener=k,b.wrapFn=T,T}function p(x,w,k){var b=x._events;if(b===void 0)return[];var T=b[w];return T===void 0?[]:typeof T=="function"?k?[T.listener||T]:[T]:k?function(_){for(var M=new Array(_.length),A=0;A0&&(_=w[0]),_ instanceof Error)throw _;var M=new Error("Unhandled error."+(_?" ("+_.message+")":""));throw M.context=_,M}var A=T[x];if(A===void 0)return!1;if(typeof A=="function")u(A,this,w);else{var S=A.length,E=y(A,S);for(k=0;k=0;_--)if(k[_]===w||k[_].listener===w){M=k[_].listener,T=_;break}if(T<0)return this;T===0?k.shift():function(A,S){for(;S+1=0;b--)this.removeListener(x,w[b]);return this},i.prototype.listeners=function(x){return p(this,x,!0)},i.prototype.rawListeners=function(x){return p(this,x,!1)},i.listenerCount=function(x,w){return typeof x.listenerCount=="function"?x.listenerCount(w):v.call(x,w)},i.prototype.listenerCount=v,i.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},{}],85:[function(e,o,f){(function(r){(function(){var a=e("base64-js"),u=e("ieee754");f.Buffer=i,f.SlowBuffer=function(U){return+U!=U&&(U=0),i.alloc(+U)},f.INSPECT_MAX_BYTES=50;function c(U){if(U>2147483647)throw new RangeError('The value "'+U+'" is invalid for option "size"');var q=new Uint8Array(U);return q.__proto__=i.prototype,q}function i(U,q,$){if(typeof U=="number"){if(typeof q=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return d(U)}return s(U,q,$)}function s(U,q,$){if(typeof U=="string")return function(Q,ee){if(typeof ee=="string"&&ee!==""||(ee="utf8"),!i.isEncoding(ee))throw new TypeError("Unknown encoding: "+ee);var ie=0|g(Q,ee),ae=c(ie),ue=ae.write(Q,ee);return ue!==ie&&(ae=ae.slice(0,ue)),ae}(U,q);if(ArrayBuffer.isView(U))return h(U);if(U==null)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof U);if(Z(U,ArrayBuffer)||U&&Z(U.buffer,ArrayBuffer))return function(Q,ee,ie){if(ee<0||Q.byteLength=2147483647)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+2147483647 .toString(16)+" bytes");return 0|U}function g(U,q){if(i.isBuffer(U))return U.length;if(ArrayBuffer.isView(U)||Z(U,ArrayBuffer))return U.byteLength;if(typeof U!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof U);var $=U.length,ne=arguments.length>2&&arguments[2]===!0;if(!ne&&$===0)return 0;for(var H=!1;;)switch(q){case"ascii":case"latin1":case"binary":return $;case"utf8":case"utf-8":return K(U).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*$;case"hex":return $>>>1;case"base64":return te(U).length;default:if(H)return ne?-1:K(U).length;q=(""+q).toLowerCase(),H=!0}}function p(U,q,$){var ne=!1;if((q===void 0||q<0)&&(q=0),q>this.length||(($===void 0||$>this.length)&&($=this.length),$<=0)||($>>>=0)<=(q>>>=0))return"";for(U||(U="utf8");;)switch(U){case"hex":return O(this,q,$);case"utf8":case"utf-8":return S(this,q,$);case"ascii":return E(this,q,$);case"latin1":case"binary":return D(this,q,$);case"base64":return A(this,q,$);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,q,$);default:if(ne)throw new TypeError("Unknown encoding: "+U);U=(U+"").toLowerCase(),ne=!0}}function v(U,q,$){var ne=U[q];U[q]=U[$],U[$]=ne}function y(U,q,$,ne,H){if(U.length===0)return-1;if(typeof $=="string"?(ne=$,$=0):$>2147483647?$=2147483647:$<-2147483648&&($=-2147483648),re($=+$)&&($=H?0:U.length-1),$<0&&($=U.length+$),$>=U.length){if(H)return-1;$=U.length-1}else if($<0){if(!H)return-1;$=0}if(typeof q=="string"&&(q=i.from(q,ne)),i.isBuffer(q))return q.length===0?-1:x(U,q,$,ne,H);if(typeof q=="number")return q&=255,typeof Uint8Array.prototype.indexOf=="function"?H?Uint8Array.prototype.indexOf.call(U,q,$):Uint8Array.prototype.lastIndexOf.call(U,q,$):x(U,[q],$,ne,H);throw new TypeError("val must be string, number or Buffer")}function x(U,q,$,ne,H){var Q,ee=1,ie=U.length,ae=q.length;if(ne!==void 0&&((ne=String(ne).toLowerCase())==="ucs2"||ne==="ucs-2"||ne==="utf16le"||ne==="utf-16le")){if(U.length<2||q.length<2)return-1;ee=2,ie/=2,ae/=2,$/=2}function ue(me,_e){return ee===1?me[_e]:me.readUInt16BE(_e*ee)}if(H){var le=-1;for(Q=$;Qie&&($=ie-ae),Q=$;Q>=0;Q--){for(var ge=!0,fe=0;feH&&(ne=H):ne=H;var Q=q.length;ne>Q/2&&(ne=Q/2);for(var ee=0;ee>8,ae=ee%256,ue.push(ae),ue.push(ie);return ue}(q,U.length-$),U,$,ne)}function A(U,q,$){return q===0&&$===U.length?a.fromByteArray(U):a.fromByteArray(U.slice(q,$))}function S(U,q,$){$=Math.min(U.length,$);for(var ne=[],H=q;H<$;){var Q,ee,ie,ae,ue=U[H],le=null,ge=ue>239?4:ue>223?3:ue>191?2:1;if(H+ge<=$)switch(ge){case 1:ue<128&&(le=ue);break;case 2:(192&(Q=U[H+1]))==128&&(ae=(31&ue)<<6|63&Q)>127&&(le=ae);break;case 3:Q=U[H+1],ee=U[H+2],(192&Q)==128&&(192&ee)==128&&(ae=(15&ue)<<12|(63&Q)<<6|63&ee)>2047&&(ae<55296||ae>57343)&&(le=ae);break;case 4:Q=U[H+1],ee=U[H+2],ie=U[H+3],(192&Q)==128&&(192&ee)==128&&(192&ie)==128&&(ae=(15&ue)<<18|(63&Q)<<12|(63&ee)<<6|63&ie)>65535&&ae<1114112&&(le=ae)}le===null?(le=65533,ge=1):le>65535&&(le-=65536,ne.push(le>>>10&1023|55296),le=56320|1023&le),ne.push(le),H+=ge}return function(fe){var me=fe.length;if(me<=4096)return String.fromCharCode.apply(String,fe);for(var _e="",we=0;we"u"||typeof console.error!="function"||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(i.prototype,"parent",{enumerable:!0,get:function(){if(i.isBuffer(this))return this.buffer}}),Object.defineProperty(i.prototype,"offset",{enumerable:!0,get:function(){if(i.isBuffer(this))return this.byteOffset}}),typeof Symbol<"u"&&Symbol.species!=null&&i[Symbol.species]===i&&Object.defineProperty(i,Symbol.species,{value:null,configurable:!0,enumerable:!1,writable:!1}),i.poolSize=8192,i.from=function(U,q,$){return s(U,q,$)},i.prototype.__proto__=Uint8Array.prototype,i.__proto__=Uint8Array,i.alloc=function(U,q,$){return function(ne,H,Q){return l(ne),ne<=0?c(ne):H!==void 0?typeof Q=="string"?c(ne).fill(H,Q):c(ne).fill(H):c(ne)}(U,q,$)},i.allocUnsafe=function(U){return d(U)},i.allocUnsafeSlow=function(U){return d(U)},i.isBuffer=function(U){return U!=null&&U._isBuffer===!0&&U!==i.prototype},i.compare=function(U,q){if(Z(U,Uint8Array)&&(U=i.from(U,U.offset,U.byteLength)),Z(q,Uint8Array)&&(q=i.from(q,q.offset,q.byteLength)),!i.isBuffer(U)||!i.isBuffer(q))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(U===q)return 0;for(var $=U.length,ne=q.length,H=0,Q=Math.min($,ne);Hq&&(U+=" ... "),""},i.prototype.compare=function(U,q,$,ne,H){if(Z(U,Uint8Array)&&(U=i.from(U,U.offset,U.byteLength)),!i.isBuffer(U))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof U);if(q===void 0&&(q=0),$===void 0&&($=U?U.length:0),ne===void 0&&(ne=0),H===void 0&&(H=this.length),q<0||$>U.length||ne<0||H>this.length)throw new RangeError("out of range index");if(ne>=H&&q>=$)return 0;if(ne>=H)return-1;if(q>=$)return 1;if(this===U)return 0;for(var Q=(H>>>=0)-(ne>>>=0),ee=($>>>=0)-(q>>>=0),ie=Math.min(Q,ee),ae=this.slice(ne,H),ue=U.slice(q,$),le=0;le>>=0,isFinite($)?($>>>=0,ne===void 0&&(ne="utf8")):(ne=$,$=void 0)}var H=this.length-q;if(($===void 0||$>H)&&($=H),U.length>0&&($<0||q<0)||q>this.length)throw new RangeError("Attempt to write outside buffer bounds");ne||(ne="utf8");for(var Q=!1;;)switch(ne){case"hex":return w(this,U,q,$);case"utf8":case"utf-8":return k(this,U,q,$);case"ascii":return b(this,U,q,$);case"latin1":case"binary":return T(this,U,q,$);case"base64":return _(this,U,q,$);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return M(this,U,q,$);default:if(Q)throw new TypeError("Unknown encoding: "+ne);ne=(""+ne).toLowerCase(),Q=!0}},i.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function E(U,q,$){var ne="";$=Math.min(U.length,$);for(var H=q;H<$;++H)ne+=String.fromCharCode(127&U[H]);return ne}function D(U,q,$){var ne="";$=Math.min(U.length,$);for(var H=q;H<$;++H)ne+=String.fromCharCode(U[H]);return ne}function O(U,q,$){var ne=U.length;(!q||q<0)&&(q=0),(!$||$<0||$>ne)&&($=ne);for(var H="",Q=q;Q<$;++Q)H+=W(U[Q]);return H}function R(U,q,$){for(var ne=U.slice(q,$),H="",Q=0;Q$)throw new RangeError("Trying to access beyond buffer length")}function L(U,q,$,ne,H,Q){if(!i.isBuffer(U))throw new TypeError('"buffer" argument must be a Buffer instance');if(q>H||qU.length)throw new RangeError("Index out of range")}function P(U,q,$,ne,H,Q){if($+ne>U.length)throw new RangeError("Index out of range");if($<0)throw new RangeError("Index out of range")}function N(U,q,$,ne,H){return q=+q,$>>>=0,H||P(U,0,$,4),u.write(U,q,$,ne,23,4),$+4}function B(U,q,$,ne,H){return q=+q,$>>>=0,H||P(U,0,$,8),u.write(U,q,$,ne,52,8),$+8}i.prototype.slice=function(U,q){var $=this.length;(U=~~U)<0?(U+=$)<0&&(U=0):U>$&&(U=$),(q=q===void 0?$:~~q)<0?(q+=$)<0&&(q=0):q>$&&(q=$),q>>=0,q>>>=0,$||z(U,q,this.length);for(var ne=this[U],H=1,Q=0;++Q>>=0,q>>>=0,$||z(U,q,this.length);for(var ne=this[U+--q],H=1;q>0&&(H*=256);)ne+=this[U+--q]*H;return ne},i.prototype.readUInt8=function(U,q){return U>>>=0,q||z(U,1,this.length),this[U]},i.prototype.readUInt16LE=function(U,q){return U>>>=0,q||z(U,2,this.length),this[U]|this[U+1]<<8},i.prototype.readUInt16BE=function(U,q){return U>>>=0,q||z(U,2,this.length),this[U]<<8|this[U+1]},i.prototype.readUInt32LE=function(U,q){return U>>>=0,q||z(U,4,this.length),(this[U]|this[U+1]<<8|this[U+2]<<16)+16777216*this[U+3]},i.prototype.readUInt32BE=function(U,q){return U>>>=0,q||z(U,4,this.length),16777216*this[U]+(this[U+1]<<16|this[U+2]<<8|this[U+3])},i.prototype.readIntLE=function(U,q,$){U>>>=0,q>>>=0,$||z(U,q,this.length);for(var ne=this[U],H=1,Q=0;++Q=(H*=128)&&(ne-=Math.pow(2,8*q)),ne},i.prototype.readIntBE=function(U,q,$){U>>>=0,q>>>=0,$||z(U,q,this.length);for(var ne=q,H=1,Q=this[U+--ne];ne>0&&(H*=256);)Q+=this[U+--ne]*H;return Q>=(H*=128)&&(Q-=Math.pow(2,8*q)),Q},i.prototype.readInt8=function(U,q){return U>>>=0,q||z(U,1,this.length),128&this[U]?-1*(255-this[U]+1):this[U]},i.prototype.readInt16LE=function(U,q){U>>>=0,q||z(U,2,this.length);var $=this[U]|this[U+1]<<8;return 32768&$?4294901760|$:$},i.prototype.readInt16BE=function(U,q){U>>>=0,q||z(U,2,this.length);var $=this[U+1]|this[U]<<8;return 32768&$?4294901760|$:$},i.prototype.readInt32LE=function(U,q){return U>>>=0,q||z(U,4,this.length),this[U]|this[U+1]<<8|this[U+2]<<16|this[U+3]<<24},i.prototype.readInt32BE=function(U,q){return U>>>=0,q||z(U,4,this.length),this[U]<<24|this[U+1]<<16|this[U+2]<<8|this[U+3]},i.prototype.readFloatLE=function(U,q){return U>>>=0,q||z(U,4,this.length),u.read(this,U,!0,23,4)},i.prototype.readFloatBE=function(U,q){return U>>>=0,q||z(U,4,this.length),u.read(this,U,!1,23,4)},i.prototype.readDoubleLE=function(U,q){return U>>>=0,q||z(U,8,this.length),u.read(this,U,!0,52,8)},i.prototype.readDoubleBE=function(U,q){return U>>>=0,q||z(U,8,this.length),u.read(this,U,!1,52,8)},i.prototype.writeUIntLE=function(U,q,$,ne){U=+U,q>>>=0,$>>>=0,ne||L(this,U,q,$,Math.pow(2,8*$)-1,0);var H=1,Q=0;for(this[q]=255&U;++Q<$&&(H*=256);)this[q+Q]=U/H&255;return q+$},i.prototype.writeUIntBE=function(U,q,$,ne){U=+U,q>>>=0,$>>>=0,ne||L(this,U,q,$,Math.pow(2,8*$)-1,0);var H=$-1,Q=1;for(this[q+H]=255&U;--H>=0&&(Q*=256);)this[q+H]=U/Q&255;return q+$},i.prototype.writeUInt8=function(U,q,$){return U=+U,q>>>=0,$||L(this,U,q,1,255,0),this[q]=255&U,q+1},i.prototype.writeUInt16LE=function(U,q,$){return U=+U,q>>>=0,$||L(this,U,q,2,65535,0),this[q]=255&U,this[q+1]=U>>>8,q+2},i.prototype.writeUInt16BE=function(U,q,$){return U=+U,q>>>=0,$||L(this,U,q,2,65535,0),this[q]=U>>>8,this[q+1]=255&U,q+2},i.prototype.writeUInt32LE=function(U,q,$){return U=+U,q>>>=0,$||L(this,U,q,4,4294967295,0),this[q+3]=U>>>24,this[q+2]=U>>>16,this[q+1]=U>>>8,this[q]=255&U,q+4},i.prototype.writeUInt32BE=function(U,q,$){return U=+U,q>>>=0,$||L(this,U,q,4,4294967295,0),this[q]=U>>>24,this[q+1]=U>>>16,this[q+2]=U>>>8,this[q+3]=255&U,q+4},i.prototype.writeIntLE=function(U,q,$,ne){if(U=+U,q>>>=0,!ne){var H=Math.pow(2,8*$-1);L(this,U,q,$,H-1,-H)}var Q=0,ee=1,ie=0;for(this[q]=255&U;++Q<$&&(ee*=256);)U<0&&ie===0&&this[q+Q-1]!==0&&(ie=1),this[q+Q]=(U/ee>>0)-ie&255;return q+$},i.prototype.writeIntBE=function(U,q,$,ne){if(U=+U,q>>>=0,!ne){var H=Math.pow(2,8*$-1);L(this,U,q,$,H-1,-H)}var Q=$-1,ee=1,ie=0;for(this[q+Q]=255&U;--Q>=0&&(ee*=256);)U<0&&ie===0&&this[q+Q+1]!==0&&(ie=1),this[q+Q]=(U/ee>>0)-ie&255;return q+$},i.prototype.writeInt8=function(U,q,$){return U=+U,q>>>=0,$||L(this,U,q,1,127,-128),U<0&&(U=255+U+1),this[q]=255&U,q+1},i.prototype.writeInt16LE=function(U,q,$){return U=+U,q>>>=0,$||L(this,U,q,2,32767,-32768),this[q]=255&U,this[q+1]=U>>>8,q+2},i.prototype.writeInt16BE=function(U,q,$){return U=+U,q>>>=0,$||L(this,U,q,2,32767,-32768),this[q]=U>>>8,this[q+1]=255&U,q+2},i.prototype.writeInt32LE=function(U,q,$){return U=+U,q>>>=0,$||L(this,U,q,4,2147483647,-2147483648),this[q]=255&U,this[q+1]=U>>>8,this[q+2]=U>>>16,this[q+3]=U>>>24,q+4},i.prototype.writeInt32BE=function(U,q,$){return U=+U,q>>>=0,$||L(this,U,q,4,2147483647,-2147483648),U<0&&(U=4294967295+U+1),this[q]=U>>>24,this[q+1]=U>>>16,this[q+2]=U>>>8,this[q+3]=255&U,q+4},i.prototype.writeFloatLE=function(U,q,$){return N(this,U,q,!0,$)},i.prototype.writeFloatBE=function(U,q,$){return N(this,U,q,!1,$)},i.prototype.writeDoubleLE=function(U,q,$){return B(this,U,q,!0,$)},i.prototype.writeDoubleBE=function(U,q,$){return B(this,U,q,!1,$)},i.prototype.copy=function(U,q,$,ne){if(!i.isBuffer(U))throw new TypeError("argument should be a Buffer");if($||($=0),ne||ne===0||(ne=this.length),q>=U.length&&(q=U.length),q||(q=0),ne>0&&ne<$&&(ne=$),ne===$||U.length===0||this.length===0)return 0;if(q<0)throw new RangeError("targetStart out of bounds");if($<0||$>=this.length)throw new RangeError("Index out of range");if(ne<0)throw new RangeError("sourceEnd out of bounds");ne>this.length&&(ne=this.length),U.length-q=0;--Q)U[Q+q]=this[Q+$];else Uint8Array.prototype.set.call(U,this.subarray($,ne),q);return H},i.prototype.fill=function(U,q,$,ne){if(typeof U=="string"){if(typeof q=="string"?(ne=q,q=0,$=this.length):typeof $=="string"&&(ne=$,$=this.length),ne!==void 0&&typeof ne!="string")throw new TypeError("encoding must be a string");if(typeof ne=="string"&&!i.isEncoding(ne))throw new TypeError("Unknown encoding: "+ne);if(U.length===1){var H=U.charCodeAt(0);(ne==="utf8"&&H<128||ne==="latin1")&&(U=H)}}else typeof U=="number"&&(U&=255);if(q<0||this.length>>=0,$=$===void 0?this.length:$>>>0,U||(U=0),typeof U=="number")for(Q=q;Q<$;++Q)this[Q]=U;else{var ee=i.isBuffer(U)?U:i.from(U,ne),ie=ee.length;if(ie===0)throw new TypeError('The value "'+U+'" is invalid for argument "value"');for(Q=0;Q<$-q;++Q)this[Q+q]=ee[Q%ie]}return this};var G=/[^+/0-9A-Za-z-_]/g;function W(U){return U<16?"0"+U.toString(16):U.toString(16)}function K(U,q){var $;q=q||1/0;for(var ne=U.length,H=null,Q=[],ee=0;ee55295&&$<57344){if(!H){if($>56319){(q-=3)>-1&&Q.push(239,191,189);continue}if(ee+1===ne){(q-=3)>-1&&Q.push(239,191,189);continue}H=$;continue}if($<56320){(q-=3)>-1&&Q.push(239,191,189),H=$;continue}$=65536+(H-55296<<10|$-56320)}else H&&(q-=3)>-1&&Q.push(239,191,189);if(H=null,$<128){if((q-=1)<0)break;Q.push($)}else if($<2048){if((q-=2)<0)break;Q.push($>>6|192,63&$|128)}else if($<65536){if((q-=3)<0)break;Q.push($>>12|224,$>>6&63|128,63&$|128)}else{if(!($<1114112))throw new Error("Invalid code point");if((q-=4)<0)break;Q.push($>>18|240,$>>12&63|128,$>>6&63|128,63&$|128)}}return Q}function te(U){return a.toByteArray(function(q){if((q=(q=q.split("=")[0]).trim().replace(G,"")).length<2)return"";for(;q.length%4!=0;)q+="=";return q}(U))}function Y(U,q,$,ne){for(var H=0;H=q.length||H>=U.length);++H)q[H+$]=U[H];return H}function Z(U,q){return U instanceof q||U!=null&&U.constructor!=null&&U.constructor.name!=null&&U.constructor.name===q.name}function re(U){return U!=U}}).call(this)}).call(this,e("buffer").Buffer)},{"base64-js":79,buffer:85,ieee754:230}],86:[function(e,o,f){o.exports=function(r,a,u){return au?u:r:ra?a:r}},{}],87:[function(e,o,f){var r=e("clamp");function a(u,c){c==null&&(c=!0);var i=u[0],s=u[1],l=u[2],d=u[3];return d==null&&(d=c?1:255),c&&(i*=255,s*=255,l*=255,d*=255),16777216*(i=255&r(i,0,255))+((s=255&r(s,0,255))<<16)+((l=255&r(l,0,255))<<8)+(d=255&r(d,0,255))}o.exports=a,o.exports.to=a,o.exports.from=function(u,c){var i=(u=+u)>>>24,s=(16711680&u)>>>16,l=(65280&u)>>>8,d=255&u;return c===!1?[i,s,l,d]:[i/255,s/255,l/255,d/255]}},{clamp:86}],88:[function(e,o,f){o.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},{}],89:[function(e,o,f){var r=e("color-rgba"),a=e("clamp"),u=e("dtype");o.exports=function(c,i){i!=="float"&&i||(i="array"),i==="uint"&&(i="uint8"),i==="uint_clamped"&&(i="uint8_clamped");var s=new(u(i))(4),l=i!=="uint8"&&i!=="uint8_clamped";return c.length&&typeof c!="string"||((c=r(c))[0]/=255,c[1]/=255,c[2]/=255),function(d){return d instanceof Uint8Array||d instanceof Uint8ClampedArray||!!(Array.isArray(d)&&(d[0]>1||d[0]===0)&&(d[1]>1||d[1]===0)&&(d[2]>1||d[2]===0)&&(!d[3]||d[3]>1))}(c)?(s[0]=c[0],s[1]=c[1],s[2]=c[2],s[3]=c[3]!=null?c[3]:255,l&&(s[0]/=255,s[1]/=255,s[2]/=255,s[3]/=255),s):(l?(s[0]=c[0],s[1]=c[1],s[2]=c[2],s[3]=c[3]!=null?c[3]:1):(s[0]=a(Math.floor(255*c[0]),0,255),s[1]=a(Math.floor(255*c[1]),0,255),s[2]=a(Math.floor(255*c[2]),0,255),s[3]=c[3]==null?255:a(Math.floor(255*c[3]),0,255)),s)}},{clamp:86,"color-rgba":91,dtype:127}],90:[function(e,o,f){(function(r){(function(){var a=e("color-name"),u=e("is-plain-obj"),c=e("defined");o.exports=function(s){var l,d,h=[],m=1;if(typeof s=="string")if(a[s])h=a[s].slice(),d="rgb";else if(s==="transparent")m=0,d="rgb",h=[0,0,0];else if(/^#[A-Fa-f0-9]+$/.test(s)){var g=(y=s.slice(1)).length;m=1,g<=4?(h=[parseInt(y[0]+y[0],16),parseInt(y[1]+y[1],16),parseInt(y[2]+y[2],16)],g===4&&(m=parseInt(y[3]+y[3],16)/255)):(h=[parseInt(y[0]+y[1],16),parseInt(y[2]+y[3],16),parseInt(y[4]+y[5],16)],g===8&&(m=parseInt(y[6]+y[7],16)/255)),h[0]||(h[0]=0),h[1]||(h[1]=0),h[2]||(h[2]=0),d="rgb"}else if(l=/^((?:rgb|hs[lvb]|hwb|cmyk?|xy[zy]|gray|lab|lchu?v?|[ly]uv|lms)a?)\s*\(([^\)]*)\)/.exec(s)){var p=l[1],v=p==="rgb",y=p.replace(/a$/,"");d=y,g=y==="cmyk"?4:y==="gray"?1:3,h=l[2].trim().split(/\s*,\s*/).map(function(w,k){if(/%$/.test(w))return k===g?parseFloat(w)/100:y==="rgb"?255*parseFloat(w)/100:parseFloat(w);if(y[k]==="h"){if(/deg$/.test(w))return parseFloat(w);if(i[w]!==void 0)return i[w]}return parseFloat(w)}),p===y&&h.push(1),m=v||h[g]===void 0?1:h[g],h=h.slice(0,g)}else s.length>10&&/[0-9](?:\s|\/)/.test(s)&&(h=s.match(/([0-9]+)/g).map(function(w){return parseFloat(w)}),d=s.match(/([a-z])/gi).join("").toLowerCase());else if(isNaN(s))if(u(s)){var x=c(s.r,s.red,s.R,null);x!==null?(d="rgb",h=[x,c(s.g,s.green,s.G),c(s.b,s.blue,s.B)]):(d="hsl",h=[c(s.h,s.hue,s.H),c(s.s,s.saturation,s.S),c(s.l,s.lightness,s.L,s.b,s.brightness)]),m=c(s.a,s.alpha,s.opacity,1),s.opacity!=null&&(m/=100)}else(Array.isArray(s)||r.ArrayBuffer&&ArrayBuffer.isView&&ArrayBuffer.isView(s))&&(h=[s[0],s[1],s[2]],d="rgb",m=s.length===4?s[3]:1);else d="rgb",h=[s>>>16,(65280&s)>>>8,255&s];return{space:d,values:h,alpha:m}};var i={red:0,orange:60,yellow:120,green:180,blue:240,purple:300}}).call(this)}).call(this,typeof Ro<"u"?Ro:typeof self<"u"?self:typeof window<"u"?window:{})},{"color-name":88,defined:124,"is-plain-obj":236}],91:[function(e,o,f){var r=e("color-parse"),a=e("color-space/hsl"),u=e("clamp");o.exports=function(c){var i,s=r(c);return s.space?((i=Array(3))[0]=u(s.values[0],0,255),i[1]=u(s.values[1],0,255),i[2]=u(s.values[2],0,255),s.space[0]==="h"&&(i=a.rgb(i)),i.push(u(s.alpha,0,1)),i):[]}},{clamp:86,"color-parse":90,"color-space/hsl":92}],92:[function(e,o,f){var r=e("./rgb");o.exports={name:"hsl",min:[0,0,0],max:[360,100,100],channel:["hue","saturation","lightness"],alias:["HSL"],rgb:function(a){var u,c,i,s,l,d=a[0]/360,h=a[1]/100,m=a[2]/100;if(h===0)return[l=255*m,l,l];u=2*m-(c=m<.5?m*(1+h):m+h-m*h),s=[0,0,0];for(var g=0;g<3;g++)(i=d+1/3*-(g-1))<0?i++:i>1&&i--,l=6*i<1?u+6*(c-u)*i:2*i<1?c:3*i<2?u+(c-u)*(2/3-i)*6:u,s[g]=255*l;return s}},r.hsl=function(a){var u,c,i=a[0]/255,s=a[1]/255,l=a[2]/255,d=Math.min(i,s,l),h=Math.max(i,s,l),m=h-d;return h===d?u=0:i===h?u=(s-l)/m:s===h?u=2+(l-i)/m:l===h&&(u=4+(i-s)/m),(u=Math.min(60*u,360))<0&&(u+=360),c=(d+h)/2,[u,100*(h===d?0:c<=.5?m/(h+d):m/(2-h-d)),100*c]}},{"./rgb":93}],93:[function(e,o,f){o.exports={name:"rgb",min:[0,0,0],max:[255,255,255],channel:["red","green","blue"],alias:["RGB"]}},{}],94:[function(e,o,f){o.exports={AFG:"afghan",ALA:"\\b\\wland",ALB:"albania",DZA:"algeria",ASM:"^(?=.*americ).*samoa",AND:"andorra",AGO:"angola",AIA:"anguill?a",ATA:"antarctica",ATG:"antigua",ARG:"argentin",ARM:"armenia",ABW:"^(?!.*bonaire).*\\baruba",AUS:"australia",AUT:"^(?!.*hungary).*austria|\\baustri.*\\bemp",AZE:"azerbaijan",BHS:"bahamas",BHR:"bahrain",BGD:"bangladesh|^(?=.*east).*paki?stan",BRB:"barbados",BLR:"belarus|byelo",BEL:"^(?!.*luxem).*belgium",BLZ:"belize|^(?=.*british).*honduras",BEN:"benin|dahome",BMU:"bermuda",BTN:"bhutan",BOL:"bolivia",BES:"^(?=.*bonaire).*eustatius|^(?=.*carib).*netherlands|\\bbes.?islands",BIH:"herzegovina|bosnia",BWA:"botswana|bechuana",BVT:"bouvet",BRA:"brazil",IOT:"british.?indian.?ocean",BRN:"brunei",BGR:"bulgaria",BFA:"burkina|\\bfaso|upper.?volta",BDI:"burundi",CPV:"verde",KHM:"cambodia|kampuchea|khmer",CMR:"cameroon",CAN:"canada",CYM:"cayman",CAF:"\\bcentral.african.republic",TCD:"\\bchad",CHL:"\\bchile",CHN:"^(?!.*\\bmac)(?!.*\\bhong)(?!.*\\btai)(?!.*\\brep).*china|^(?=.*peo)(?=.*rep).*china",CXR:"christmas",CCK:"\\bcocos|keeling",COL:"colombia",COM:"comoro",COG:"^(?!.*\\bdem)(?!.*\\bd[\\.]?r)(?!.*kinshasa)(?!.*zaire)(?!.*belg)(?!.*l.opoldville)(?!.*free).*\\bcongo",COK:"\\bcook",CRI:"costa.?rica",CIV:"ivoire|ivory",HRV:"croatia",CUB:"\\bcuba",CUW:"^(?!.*bonaire).*\\bcura(c|\xE7)ao",CYP:"cyprus",CSK:"czechoslovakia",CZE:"^(?=.*rep).*czech|czechia|bohemia",COD:"\\bdem.*congo|congo.*\\bdem|congo.*\\bd[\\.]?r|\\bd[\\.]?r.*congo|belgian.?congo|congo.?free.?state|kinshasa|zaire|l.opoldville|drc|droc|rdc",DNK:"denmark",DJI:"djibouti",DMA:"dominica(?!n)",DOM:"dominican.rep",ECU:"ecuador",EGY:"egypt",SLV:"el.?salvador",GNQ:"guine.*eq|eq.*guine|^(?=.*span).*guinea",ERI:"eritrea",EST:"estonia",ETH:"ethiopia|abyssinia",FLK:"falkland|malvinas",FRO:"faroe|faeroe",FJI:"fiji",FIN:"finland",FRA:"^(?!.*\\bdep)(?!.*martinique).*france|french.?republic|\\bgaul",GUF:"^(?=.*french).*guiana",PYF:"french.?polynesia|tahiti",ATF:"french.?southern",GAB:"gabon",GMB:"gambia",GEO:"^(?!.*south).*georgia",DDR:"german.?democratic.?republic|democratic.?republic.*germany|east.germany",DEU:"^(?!.*east).*germany|^(?=.*\\bfed.*\\brep).*german",GHA:"ghana|gold.?coast",GIB:"gibraltar",GRC:"greece|hellenic|hellas",GRL:"greenland",GRD:"grenada",GLP:"guadeloupe",GUM:"\\bguam",GTM:"guatemala",GGY:"guernsey",GIN:"^(?!.*eq)(?!.*span)(?!.*bissau)(?!.*portu)(?!.*new).*guinea",GNB:"bissau|^(?=.*portu).*guinea",GUY:"guyana|british.?guiana",HTI:"haiti",HMD:"heard.*mcdonald",VAT:"holy.?see|vatican|papal.?st",HND:"^(?!.*brit).*honduras",HKG:"hong.?kong",HUN:"^(?!.*austr).*hungary",ISL:"iceland",IND:"india(?!.*ocea)",IDN:"indonesia",IRN:"\\biran|persia",IRQ:"\\biraq|mesopotamia",IRL:"(^ireland)|(^republic.*ireland)",IMN:"^(?=.*isle).*\\bman",ISR:"israel",ITA:"italy",JAM:"jamaica",JPN:"japan",JEY:"jersey",JOR:"jordan",KAZ:"kazak",KEN:"kenya|british.?east.?africa|east.?africa.?prot",KIR:"kiribati",PRK:"^(?=.*democrat|people|north|d.*p.*.r).*\\bkorea|dprk|korea.*(d.*p.*r)",KWT:"kuwait",KGZ:"kyrgyz|kirghiz",LAO:"\\blaos?\\b",LVA:"latvia",LBN:"lebanon",LSO:"lesotho|basuto",LBR:"liberia",LBY:"libya",LIE:"liechtenstein",LTU:"lithuania",LUX:"^(?!.*belg).*luxem",MAC:"maca(o|u)",MDG:"madagascar|malagasy",MWI:"malawi|nyasa",MYS:"malaysia",MDV:"maldive",MLI:"\\bmali\\b",MLT:"\\bmalta",MHL:"marshall",MTQ:"martinique",MRT:"mauritania",MUS:"mauritius",MYT:"\\bmayotte",MEX:"\\bmexic",FSM:"fed.*micronesia|micronesia.*fed",MCO:"monaco",MNG:"mongolia",MNE:"^(?!.*serbia).*montenegro",MSR:"montserrat",MAR:"morocco|\\bmaroc",MOZ:"mozambique",MMR:"myanmar|burma",NAM:"namibia",NRU:"nauru",NPL:"nepal",NLD:"^(?!.*\\bant)(?!.*\\bcarib).*netherlands",ANT:"^(?=.*\\bant).*(nether|dutch)",NCL:"new.?caledonia",NZL:"new.?zealand",NIC:"nicaragua",NER:"\\bniger(?!ia)",NGA:"nigeria",NIU:"niue",NFK:"norfolk",MNP:"mariana",NOR:"norway",OMN:"\\boman|trucial",PAK:"^(?!.*east).*paki?stan",PLW:"palau",PSE:"palestin|\\bgaza|west.?bank",PAN:"panama",PNG:"papua|new.?guinea",PRY:"paraguay",PER:"peru",PHL:"philippines",PCN:"pitcairn",POL:"poland",PRT:"portugal",PRI:"puerto.?rico",QAT:"qatar",KOR:"^(?!.*d.*p.*r)(?!.*democrat)(?!.*people)(?!.*north).*\\bkorea(?!.*d.*p.*r)",MDA:"moldov|b(a|e)ssarabia",REU:"r(e|\xE9)union",ROU:"r(o|u|ou)mania",RUS:"\\brussia|soviet.?union|u\\.?s\\.?s\\.?r|socialist.?republics",RWA:"rwanda",BLM:"barth(e|\xE9)lemy",SHN:"helena",KNA:"kitts|\\bnevis",LCA:"\\blucia",MAF:"^(?=.*collectivity).*martin|^(?=.*france).*martin(?!ique)|^(?=.*french).*martin(?!ique)",SPM:"miquelon",VCT:"vincent",WSM:"^(?!.*amer).*samoa",SMR:"san.?marino",STP:"\\bs(a|\xE3)o.?tom(e|\xE9)",SAU:"\\bsa\\w*.?arabia",SEN:"senegal",SRB:"^(?!.*monte).*serbia",SYC:"seychell",SLE:"sierra",SGP:"singapore",SXM:"^(?!.*martin)(?!.*saba).*maarten",SVK:"^(?!.*cze).*slovak",SVN:"slovenia",SLB:"solomon",SOM:"somali",ZAF:"south.africa|s\\\\..?africa",SGS:"south.?georgia|sandwich",SSD:"\\bs\\w*.?sudan",ESP:"spain",LKA:"sri.?lanka|ceylon",SDN:"^(?!.*\\bs(?!u)).*sudan",SUR:"surinam|dutch.?guiana",SJM:"svalbard",SWZ:"swaziland",SWE:"sweden",CHE:"switz|swiss",SYR:"syria",TWN:"taiwan|taipei|formosa|^(?!.*peo)(?=.*rep).*china",TJK:"tajik",THA:"thailand|\\bsiam",MKD:"macedonia|fyrom",TLS:"^(?=.*leste).*timor|^(?=.*east).*timor",TGO:"togo",TKL:"tokelau",TON:"tonga",TTO:"trinidad|tobago",TUN:"tunisia",TUR:"turkey",TKM:"turkmen",TCA:"turks",TUV:"tuvalu",UGA:"uganda",UKR:"ukrain",ARE:"emirates|^u\\.?a\\.?e\\.?$|united.?arab.?em",GBR:"united.?kingdom|britain|^u\\.?k\\.?$",TZA:"tanzania",USA:"united.?states\\b(?!.*islands)|\\bu\\.?s\\.?a\\.?\\b|^\\s*u\\.?s\\.?\\b(?!.*islands)",UMI:"minor.?outlying.?is",URY:"uruguay",UZB:"uzbek",VUT:"vanuatu|new.?hebrides",VEN:"venezuela",VNM:"^(?!.*republic).*viet.?nam|^(?=.*socialist).*viet.?nam",VGB:"^(?=.*\\bu\\.?\\s?k).*virgin|^(?=.*brit).*virgin|^(?=.*kingdom).*virgin",VIR:"^(?=.*\\bu\\.?\\s?s).*virgin|^(?=.*states).*virgin",WLF:"futuna|wallis",ESH:"western.sahara",YEM:"^(?!.*arab)(?!.*north)(?!.*sana)(?!.*peo)(?!.*dem)(?!.*south)(?!.*aden)(?!.*\\bp\\.?d\\.?r).*yemen",YMD:"^(?=.*peo).*yemen|^(?!.*rep)(?=.*dem).*yemen|^(?=.*south).*yemen|^(?=.*aden).*yemen|^(?=.*\\bp\\.?d\\.?r).*yemen",YUG:"yugoslavia",ZMB:"zambia|northern.?rhodesia",EAZ:"zanzibar",ZWE:"zimbabwe|^(?!.*northern).*rhodesia"}},{}],95:[function(e,o,f){o.exports=["xx-small","x-small","small","medium","large","x-large","xx-large","larger","smaller"]},{}],96:[function(e,o,f){o.exports=["normal","condensed","semi-condensed","extra-condensed","ultra-condensed","expanded","semi-expanded","extra-expanded","ultra-expanded"]},{}],97:[function(e,o,f){o.exports=["normal","italic","oblique"]},{}],98:[function(e,o,f){o.exports=["normal","bold","bolder","lighter","100","200","300","400","500","600","700","800","900"]},{}],99:[function(e,o,f){o.exports={parse:e("./parse"),stringify:e("./stringify")}},{"./parse":101,"./stringify":102}],100:[function(e,o,f){var r=e("css-font-size-keywords");o.exports={isSize:function(a){return/^[\d\.]/.test(a)||a.indexOf("/")!==-1||r.indexOf(a)!==-1}}},{"css-font-size-keywords":95}],101:[function(e,o,f){var r=e("unquote"),a=e("css-global-keywords"),u=e("css-system-font-keywords"),c=e("css-font-weight-keywords"),i=e("css-font-style-keywords"),s=e("css-font-stretch-keywords"),l=e("string-split-by"),d=e("./lib/util").isSize;o.exports=m;var h=m.cache={};function m(p){if(typeof p!="string")throw new Error("Font argument must be a string.");if(h[p])return h[p];if(p==="")throw new Error("Cannot parse an empty string.");if(u.indexOf(p)!==-1)return h[p]={system:p};for(var v,y={style:"normal",variant:"normal",weight:"normal",stretch:"normal",lineHeight:"normal",size:"1rem",family:["serif"]},x=l(p,/\s+/);v=x.shift();){if(a.indexOf(v)!==-1)return["style","variant","weight","stretch"].forEach(function(k){y[k]=v}),h[p]=y;if(i.indexOf(v)===-1)if(v!=="normal"&&v!=="small-caps")if(s.indexOf(v)===-1){if(c.indexOf(v)===-1){if(d(v)){var w=l(v,"/");if(y.size=w[0],w[1]!=null?y.lineHeight=g(w[1]):x[0]==="/"&&(x.shift(),y.lineHeight=g(x.shift())),!x.length)throw new Error("Missing required font-family.");return y.family=l(x.join(" "),/\s*,\s*/).map(r),h[p]=y}throw new Error("Unknown or unsupported font token: "+v)}y.weight=v}else y.stretch=v;else y.variant=v;else y.style=v}throw new Error("Missing required font-size.")}function g(p){var v=parseFloat(p);return v.toString()===p?v:p}},{"./lib/util":100,"css-font-stretch-keywords":96,"css-font-style-keywords":97,"css-font-weight-keywords":98,"css-global-keywords":103,"css-system-font-keywords":104,"string-split-by":305,unquote:328}],102:[function(e,o,f){var r=e("pick-by-alias"),a=e("./lib/util").isSize,u=v(e("css-global-keywords")),c=v(e("css-system-font-keywords")),i=v(e("css-font-weight-keywords")),s=v(e("css-font-style-keywords")),l=v(e("css-font-stretch-keywords")),d={normal:1,"small-caps":1},h={serif:1,"sans-serif":1,monospace:1,cursive:1,fantasy:1,"system-ui":1},m="1rem",g="serif";function p(y,x){if(y&&!x[y]&&!u[y])throw Error("Unknown keyword `"+y+"`");return y}function v(y){for(var x={},w=0;wL?1:z>=L?0:NaN}function u(z){var L;return z.length===1&&(L=z,z=function(P,N){return a(L(P),N)}),{left:function(P,N,B,G){for(B==null&&(B=0),G==null&&(G=P.length);B>>1;z(P[W],N)<0?B=W+1:G=W}return B},right:function(P,N,B,G){for(B==null&&(B=0),G==null&&(G=P.length);B>>1;z(P[W],N)>0?G=W:B=W+1}return B}}}var c=u(a),i=c.right,s=c.left;function l(z,L){return[z,L]}function d(z){return z===null?NaN:+z}function h(z,L){var P,N,B=z.length,G=0,W=-1,K=0,te=0;if(L==null)for(;++W1)return te/(G-1)}function m(z,L){var P=h(z,L);return P&&Math.sqrt(P)}function g(z,L){var P,N,B,G=z.length,W=-1;if(L==null){for(;++W=P)for(N=B=P;++WP&&(N=P),B=P)for(N=B=P;++WP&&(N=P),B=0?(G>=b?10:G>=T?5:G>=_?2:1)*Math.pow(10,B):-Math.pow(10,-B)/(G>=b?10:G>=T?5:G>=_?2:1)}function A(z,L,P){var N=Math.abs(L-z)/Math.max(0,P),B=Math.pow(10,Math.floor(Math.log(N)/Math.LN10)),G=N/B;return G>=b?B*=10:G>=T?B*=5:G>=_&&(B*=2),L=1)return+P(z[N-1],N-1,z);var N,B=(N-1)*L,G=Math.floor(B),W=+P(z[G],G,z);return W+(+P(z[G+1],G+1,z)-W)*(B-G)}}function D(z,L){var P,N,B=z.length,G=-1;if(L==null){for(;++G=P)for(N=P;++GP&&(N=P)}else for(;++G=P)for(N=P;++GP&&(N=P);return N}function O(z){if(!(B=z.length))return[];for(var L=-1,P=D(z,R),N=new Array(P);++Lz?1:L>=z?0:NaN},r.deviation=m,r.extent=g,r.histogram=function(){var z=w,L=g,P=S;function N(B){var G,W,K=B.length,te=new Array(K);for(G=0;Gre;)U.pop(),--q;var $,ne=new Array(q+1);for(G=0;G<=q;++G)($=ne[G]=[]).x0=G>0?U[G-1]:Z,$.x1=G=P)for(N=P;++GN&&(N=P)}else for(;++G=P)for(N=P;++GN&&(N=P);return N},r.mean=function(z,L){var P,N=z.length,B=N,G=-1,W=0;if(L==null)for(;++G=0;)for(L=(N=z[B]).length;--L>=0;)P[--W]=N[L];return P},r.min=D,r.pairs=function(z,L){L==null&&(L=l);for(var P=0,N=z.length-1,B=z[0],G=new Array(N<0?0:N);P0)return[z];if((N=L0)for(z=Math.ceil(z/W),L=Math.floor(L/W),G=new Array(B=Math.ceil(L-z+1));++K=y.length)return g!=null&&k.sort(g),p!=null?p(k):k;for(var M,A,S,E=-1,D=k.length,O=y[b++],R=u(),z=T();++Ey.length)return T;var M,A=x[_-1];return p!=null&&_>=y.length?M=T.entries():(M=[],T.each(function(S,E){M.push({key:E,values:b(S,_)})})),A!=null?M.sort(function(S,E){return A(S.key,E.key)}):M}(w(k,0,s,l),0)},key:function(k){return y.push(k),v},sortKeys:function(k){return x[y.length-1]=k,v},sortValues:function(k){return g=k,v},rollup:function(k){return p=k,v}}},r.set=m,r.map=u,r.keys=function(g){var p=[];for(var v in g)p.push(v);return p},r.values=function(g){var p=[];for(var v in g)p.push(g[v]);return p},r.entries=function(g){var p=[];for(var v in g)p.push({key:v,value:g[v]});return p},Object.defineProperty(r,"__esModule",{value:!0})})},{}],109:[function(e,o,f){(function(r,a){a(typeof f=="object"&&o!==void 0?f:(r=r||self).d3=r.d3||{})})(this,function(r){function a(de,ye,Me){de.prototype=ye.prototype=Me,Me.constructor=de}function u(de,ye){var Me=Object.create(de.prototype);for(var ke in ye)Me[ke]=ye[ke];return Me}function c(){}var i="\\s*([+-]?\\d+)\\s*",s="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",l="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",d=/^#([0-9a-f]{3,8})$/,h=new RegExp("^rgb\\("+[i,i,i]+"\\)$"),m=new RegExp("^rgb\\("+[l,l,l]+"\\)$"),g=new RegExp("^rgba\\("+[i,i,i,s]+"\\)$"),p=new RegExp("^rgba\\("+[l,l,l,s]+"\\)$"),v=new RegExp("^hsl\\("+[s,l,l]+"\\)$"),y=new RegExp("^hsla\\("+[s,l,l,s]+"\\)$"),x={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function w(){return this.rgb().formatHex()}function k(){return this.rgb().formatRgb()}function b(de){var ye,Me;return de=(de+"").trim().toLowerCase(),(ye=d.exec(de))?(Me=ye[1].length,ye=parseInt(ye[1],16),Me===6?T(ye):Me===3?new S(ye>>8&15|ye>>4&240,ye>>4&15|240&ye,(15&ye)<<4|15&ye,1):Me===8?_(ye>>24&255,ye>>16&255,ye>>8&255,(255&ye)/255):Me===4?_(ye>>12&15|ye>>8&240,ye>>8&15|ye>>4&240,ye>>4&15|240&ye,((15&ye)<<4|15&ye)/255):null):(ye=h.exec(de))?new S(ye[1],ye[2],ye[3],1):(ye=m.exec(de))?new S(255*ye[1]/100,255*ye[2]/100,255*ye[3]/100,1):(ye=g.exec(de))?_(ye[1],ye[2],ye[3],ye[4]):(ye=p.exec(de))?_(255*ye[1]/100,255*ye[2]/100,255*ye[3]/100,ye[4]):(ye=v.exec(de))?R(ye[1],ye[2]/100,ye[3]/100,1):(ye=y.exec(de))?R(ye[1],ye[2]/100,ye[3]/100,ye[4]):x.hasOwnProperty(de)?T(x[de]):de==="transparent"?new S(NaN,NaN,NaN,0):null}function T(de){return new S(de>>16&255,de>>8&255,255&de,1)}function _(de,ye,Me,ke){return ke<=0&&(de=ye=Me=NaN),new S(de,ye,Me,ke)}function M(de){return de instanceof c||(de=b(de)),de?new S((de=de.rgb()).r,de.g,de.b,de.opacity):new S}function A(de,ye,Me,ke){return arguments.length===1?M(de):new S(de,ye,Me,ke??1)}function S(de,ye,Me,ke){this.r=+de,this.g=+ye,this.b=+Me,this.opacity=+ke}function E(){return"#"+O(this.r)+O(this.g)+O(this.b)}function D(){var de=this.opacity;return((de=isNaN(de)?1:Math.max(0,Math.min(1,de)))===1?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(de===1?")":", "+de+")")}function O(de){return((de=Math.max(0,Math.min(255,Math.round(de)||0)))<16?"0":"")+de.toString(16)}function R(de,ye,Me,ke){return ke<=0?de=ye=Me=NaN:Me<=0||Me>=1?de=ye=NaN:ye<=0&&(de=NaN),new P(de,ye,Me,ke)}function z(de){if(de instanceof P)return new P(de.h,de.s,de.l,de.opacity);if(de instanceof c||(de=b(de)),!de)return new P;if(de instanceof P)return de;var ye=(de=de.rgb()).r/255,Me=de.g/255,ke=de.b/255,Ee=Math.min(ye,Me,ke),ze=Math.max(ye,Me,ke),Fe=NaN,Ve=ze-Ee,Ke=(ze+Ee)/2;return Ve?(Fe=ye===ze?(Me-ke)/Ve+6*(Me0&&Ke<1?0:Fe,new P(Fe,Ve,Ke,de.opacity)}function L(de,ye,Me,ke){return arguments.length===1?z(de):new P(de,ye,Me,ke??1)}function P(de,ye,Me,ke){this.h=+de,this.s=+ye,this.l=+Me,this.opacity=+ke}function N(de,ye,Me){return 255*(de<60?ye+(Me-ye)*de/60:de<180?Me:de<240?ye+(Me-ye)*(240-de)/60:ye)}a(c,b,{copy:function(de){return Object.assign(new this.constructor,this,de)},displayable:function(){return this.rgb().displayable()},hex:w,formatHex:w,formatHsl:function(){return z(this).formatHsl()},formatRgb:k,toString:k}),a(S,A,u(c,{brighter:function(de){return de=de==null?1/.7:Math.pow(1/.7,de),new S(this.r*de,this.g*de,this.b*de,this.opacity)},darker:function(de){return de=de==null?.7:Math.pow(.7,de),new S(this.r*de,this.g*de,this.b*de,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:E,formatHex:E,formatRgb:D,toString:D})),a(P,L,u(c,{brighter:function(de){return de=de==null?1/.7:Math.pow(1/.7,de),new P(this.h,this.s,this.l*de,this.opacity)},darker:function(de){return de=de==null?.7:Math.pow(.7,de),new P(this.h,this.s,this.l*de,this.opacity)},rgb:function(){var de=this.h%360+360*(this.h<0),ye=isNaN(de)||isNaN(this.s)?0:this.s,Me=this.l,ke=Me+(Me<.5?Me:1-Me)*ye,Ee=2*Me-ke;return new S(N(de>=240?de-240:de+120,Ee,ke),N(de,Ee,ke),N(de<120?de+240:de-120,Ee,ke),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var de=this.opacity;return((de=isNaN(de)?1:Math.max(0,Math.min(1,de)))===1?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(de===1?")":", "+de+")")}}));var B=Math.PI/180,G=180/Math.PI,W=6/29,K=3*W*W;function te(de){if(de instanceof Z)return new Z(de.l,de.a,de.b,de.opacity);if(de instanceof Q)return ee(de);de instanceof S||(de=M(de));var ye,Me,ke=$(de.r),Ee=$(de.g),ze=$(de.b),Fe=re((.2225045*ke+.7168786*Ee+.0606169*ze)/1);return ke===Ee&&Ee===ze?ye=Me=Fe:(ye=re((.4360747*ke+.3850649*Ee+.1430804*ze)/.96422),Me=re((.0139322*ke+.0971045*Ee+.7141733*ze)/.82521)),new Z(116*Fe-16,500*(ye-Fe),200*(Fe-Me),de.opacity)}function Y(de,ye,Me,ke){return arguments.length===1?te(de):new Z(de,ye,Me,ke??1)}function Z(de,ye,Me,ke){this.l=+de,this.a=+ye,this.b=+Me,this.opacity=+ke}function re(de){return de>.008856451679035631?Math.pow(de,1/3):de/K+4/29}function U(de){return de>W?de*de*de:K*(de-4/29)}function q(de){return 255*(de<=.0031308?12.92*de:1.055*Math.pow(de,1/2.4)-.055)}function $(de){return(de/=255)<=.04045?de/12.92:Math.pow((de+.055)/1.055,2.4)}function ne(de){if(de instanceof Q)return new Q(de.h,de.c,de.l,de.opacity);if(de instanceof Z||(de=te(de)),de.a===0&&de.b===0)return new Q(NaN,0=0&&(g=m.slice(p+1),m=m.slice(0,p)),m&&!h.hasOwnProperty(m))throw new Error("unknown type: "+m);return{type:m,name:g}})}function s(d,h){for(var m,g=0,p=d.length;g0)for(var m,g,p=new Array(m),v=0;vO+U||teR+U||YD.index){var q=O-Z.x-Z.vx,$=R-Z.y-Z.vy,ne=q*q+$*$;neS.r&&(S.r=S[E].r)}function A(){if(w){var S,E,D=w.length;for(k=new Array(D),S=0;S=M)){(R.data!==w||R.next)&&(N===0&&(W+=(N=l())*N),B===0&&(W+=(B=l())*B),W<_&&(W=Math.sqrt(_*W)));do R.data!==w&&(G=b[R.data.index]*k/W,w.vx+=N*G,w.vy+=B*G);while(R=R.next)}}return S.initialize=function(R){x=R,E()},S.strength=function(R){return arguments.length?(T=typeof R=="function"?R:s(+R),E(),S):T},S.distanceMin=function(R){return arguments.length?(_=R*R,S):Math.sqrt(_)},S.distanceMax=function(R){return arguments.length?(M=R*R,S):Math.sqrt(M)},S.theta=function(R){return arguments.length?(A=R*R,S):Math.sqrt(A)},S},r.forceRadial=function(x,w,k){var b,T,_,M=s(.1);function A(E){for(var D=0,O=b.length;D1?(P==null?A.remove(L):A.set(L,z(P)),w):A.get(L)},find:function(L,P,N){var B,G,W,K,te,Y=0,Z=x.length;for(N==null?N=1/0:N*=N,Y=0;Y1?(E.on(L,P),w):E.on(L)}}},r.forceX=function(x){var w,k,b,T=s(.1);function _(A){for(var S,E=0,D=w.length;E1?T[0]+T.slice(2):T,+w.slice(b+1)]}function u(w){return(w=a(Math.abs(w)))?w[1]:NaN}var c,i=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function s(w){if(!(k=i.exec(w)))throw new Error("invalid format: "+w);var k;return new l({fill:k[1],align:k[2],sign:k[3],symbol:k[4],zero:k[5],width:k[6],comma:k[7],precision:k[8]&&k[8].slice(1),trim:k[9],type:k[10]})}function l(w){this.fill=w.fill===void 0?" ":w.fill+"",this.align=w.align===void 0?">":w.align+"",this.sign=w.sign===void 0?"-":w.sign+"",this.symbol=w.symbol===void 0?"":w.symbol+"",this.zero=!!w.zero,this.width=w.width===void 0?void 0:+w.width,this.comma=!!w.comma,this.precision=w.precision===void 0?void 0:+w.precision,this.trim=!!w.trim,this.type=w.type===void 0?"":w.type+""}function d(w,k){var b=a(w,k);if(!b)return w+"";var T=b[0],_=b[1];return _<0?"0."+new Array(-_).join("0")+T:T.length>_+1?T.slice(0,_+1)+"."+T.slice(_+1):T+new Array(_-T.length+2).join("0")}s.prototype=l.prototype,l.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,0|this.width))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var h={"%":function(w,k){return(100*w).toFixed(k)},b:function(w){return Math.round(w).toString(2)},c:function(w){return w+""},d:function(w){return Math.abs(w=Math.round(w))>=1e21?w.toLocaleString("en").replace(/,/g,""):w.toString(10)},e:function(w,k){return w.toExponential(k)},f:function(w,k){return w.toFixed(k)},g:function(w,k){return w.toPrecision(k)},o:function(w){return Math.round(w).toString(8)},p:function(w,k){return d(100*w,k)},r:d,s:function(w,k){var b=a(w,k);if(!b)return w+"";var T=b[0],_=b[1],M=_-(c=3*Math.max(-8,Math.min(8,Math.floor(_/3))))+1,A=T.length;return M===A?T:M>A?T+new Array(M-A+1).join("0"):M>0?T.slice(0,M)+"."+T.slice(M):"0."+new Array(1-M).join("0")+a(w,Math.max(0,k+M-1))[0]},X:function(w){return Math.round(w).toString(16).toUpperCase()},x:function(w){return Math.round(w).toString(16)}};function m(w){return w}var g,p=Array.prototype.map,v=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function y(w){var k,b,T=w.grouping===void 0||w.thousands===void 0?m:(k=p.call(w.grouping,Number),b=w.thousands+"",function(z,L){for(var P=z.length,N=[],B=0,G=k[0],W=0;P>0&&G>0&&(W+G+1>L&&(G=Math.max(1,L-W)),N.push(z.substring(P-=G,P+G)),!((W+=G+1)>L));)G=k[B=(B+1)%k.length];return N.reverse().join(b)}),_=w.currency===void 0?"":w.currency[0]+"",M=w.currency===void 0?"":w.currency[1]+"",A=w.decimal===void 0?".":w.decimal+"",S=w.numerals===void 0?m:function(z){return function(L){return L.replace(/[0-9]/g,function(P){return z[+P]})}}(p.call(w.numerals,String)),E=w.percent===void 0?"%":w.percent+"",D=w.minus===void 0?"-":w.minus+"",O=w.nan===void 0?"NaN":w.nan+"";function R(z){var L=(z=s(z)).fill,P=z.align,N=z.sign,B=z.symbol,G=z.zero,W=z.width,K=z.comma,te=z.precision,Y=z.trim,Z=z.type;Z==="n"?(K=!0,Z="g"):h[Z]||(te===void 0&&(te=12),Y=!0,Z="g"),(G||L==="0"&&P==="=")&&(G=!0,L="0",P="=");var re=B==="$"?_:B==="#"&&/[boxX]/.test(Z)?"0"+Z.toLowerCase():"",U=B==="$"?M:/[%p]/.test(Z)?E:"",q=h[Z],$=/[defgprs%]/.test(Z);function ne(H){var Q,ee,ie,ae=re,ue=U;if(Z==="c")ue=q(H)+ue,H="";else{var le=(H=+H)<0||1/H<0;if(H=isNaN(H)?O:q(Math.abs(H),te),Y&&(H=function(me){e:for(var _e,we=me.length,Te=1,Oe=-1;Te0&&(Oe=0)}return Oe>0?me.slice(0,Oe)+me.slice(_e+1):me}(H)),le&&+H==0&&N!=="+"&&(le=!1),ae=(le?N==="("?N:D:N==="-"||N==="("?"":N)+ae,ue=(Z==="s"?v[8+c/3]:"")+ue+(le&&N==="("?")":""),$){for(Q=-1,ee=H.length;++Q(ie=H.charCodeAt(Q))||ie>57){ue=(ie===46?A+H.slice(Q+1):H.slice(Q))+ue,H=H.slice(0,Q);break}}}K&&!G&&(H=T(H,1/0));var ge=ae.length+H.length+ue.length,fe=ge>1)+ae+H+ue+fe.slice(ge);break;default:H=fe+ae+H+ue}return S(H)}return te=te===void 0?6:/[gprs]/.test(Z)?Math.max(1,Math.min(21,te)):Math.max(0,Math.min(20,te)),ne.toString=function(){return z+""},ne}return{format:R,formatPrefix:function(z,L){var P=R(((z=s(z)).type="f",z)),N=3*Math.max(-8,Math.min(8,Math.floor(u(L)/3))),B=Math.pow(10,-N),G=v[8+N/3];return function(W){return P(B*W)+G}}}}function x(w){return g=y(w),r.format=g.format,r.formatPrefix=g.formatPrefix,g}x({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"}),r.FormatSpecifier=l,r.formatDefaultLocale=x,r.formatLocale=y,r.formatSpecifier=s,r.precisionFixed=function(w){return Math.max(0,-u(Math.abs(w)))},r.precisionPrefix=function(w,k){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(u(k)/3)))-u(Math.abs(w)))},r.precisionRound=function(w,k){return w=Math.abs(w),k=Math.abs(k)-w,Math.max(0,u(k)-u(w))+1},Object.defineProperty(r,"__esModule",{value:!0})})},{}],113:[function(e,o,f){(function(r,a){typeof f=="object"&&o!==void 0?a(f,e("d3-geo"),e("d3-array")):a(r.d3=r.d3||{},r.d3,r.d3)})(this,function(r,a,u){var c=Math.abs,i=Math.atan,s=Math.atan2,l=Math.cos,d=Math.exp,h=Math.floor,m=Math.log,g=Math.max,p=Math.min,v=Math.pow,y=Math.round,x=Math.sign||function(je){return je>0?1:je<0?-1:0},w=Math.sin,k=Math.tan,b=1e-6,T=Math.PI,_=T/2,M=T/4,A=Math.SQRT1_2,S=P(2),E=P(T),D=2*T,O=180/T,R=T/180;function z(je){return je>1?_:je<-1?-_:Math.asin(je)}function L(je){return je>1?0:je<-1?T:Math.acos(je)}function P(je){return je>0?Math.sqrt(je):0}function N(je){return(d(je)-d(-je))/2}function B(je){return(d(je)+d(-je))/2}function G(je){var $e=k(je/2),Qe=2*m(l(je/2))/($e*$e);function ut(mt,pt){var Ct=l(mt),Qt=l(pt),en=w(pt),Yt=Qt*Ct,an=-((1-Yt?m((1+Yt)/2)/(1-Yt):-.5)+Qe/(1+Yt));return[an*Qt*w(mt),an*en]}return ut.invert=function(mt,pt){var Ct,Qt=P(mt*mt+pt*pt),en=-je/2,Yt=50;if(!Qt)return[0,0];do{var an=en/2,hn=l(an),xn=w(an),_n=xn/hn,Pn=-m(c(hn));en-=Ct=(2/_n*Pn-Qe*_n-Qt)/(-Pn/(xn*xn)+1-Qe/(2*hn*hn))*(hn<0?.7:1)}while(c(Ct)>b&&--Yt>0);var sr=w(en);return[s(mt*sr,Qt*l(en)),z(pt*sr/Qt)]},ut}function W(je,$e){var Qe=l($e),ut=function(mt){return mt?mt/Math.sin(mt):1}(L(Qe*l(je/=2)));return[2*Qe*w(je)*ut,w($e)*ut]}function K(je){var $e=w(je),Qe=l(je),ut=je>=0?1:-1,mt=k(ut*je),pt=(1+$e-Qe)/2;function Ct(Qt,en){var Yt=l(en),an=l(Qt/=2);return[(1+Yt)*w(Qt),(ut*en>-s(an,mt)-.001?0:10*-ut)+pt+w(en)*Qe-(1+Yt)*$e*an]}return Ct.invert=function(Qt,en){var Yt=0,an=0,hn=50;do{var xn=l(Yt),_n=w(Yt),Pn=l(an),sr=w(an),mr=1+Pn,zr=mr*_n-Qt,Br=pt+sr*Qe-mr*$e*xn-en,Jr=mr*xn/2,jr=-_n*sr,Oi=$e*mr*_n/2,Ui=Qe*Pn+$e*xn*sr,ua=jr*Oi-Ui*Jr,sa=(Br*jr-zr*Ui)/ua/2,ca=(zr*Oi-Br*Jr)/ua;c(ca)>2&&(ca/=2),Yt-=sa,an-=ca}while((c(sa)>b||c(ca)>b)&&--hn>0);return ut*an>-s(l(Yt),mt)-.001?[2*Yt,an]:null},Ct}function te(je,$e){var Qe=k($e/2),ut=P(1-Qe*Qe),mt=1+ut*l(je/=2),pt=w(je)*ut/mt,Ct=Qe/mt,Qt=pt*pt,en=Ct*Ct;return[4/3*pt*(3+Qt-3*en),4/3*Ct*(3+3*Qt-en)]}W.invert=function(je,$e){if(!(je*je+4*$e*$e>T*T+b)){var Qe=je,ut=$e,mt=25;do{var pt,Ct=w(Qe),Qt=w(Qe/2),en=l(Qe/2),Yt=w(ut),an=l(ut),hn=w(2*ut),xn=Yt*Yt,_n=an*an,Pn=Qt*Qt,sr=1-_n*en*en,mr=sr?L(an*en)*P(pt=1/sr):pt=0,zr=2*mr*an*Qt-je,Br=mr*Yt-$e,Jr=pt*(_n*Pn+mr*an*en*xn),jr=pt*(.5*Ct*hn-2*mr*Yt*Qt),Oi=.25*pt*(hn*Qt-mr*Yt*_n*Ct),Ui=pt*(xn*en+mr*Pn*an),ua=jr*Oi-Ui*Jr;if(!ua)break;var sa=(Br*jr-zr*Ui)/ua,ca=(zr*Oi-Br*Jr)/ua;Qe-=sa,ut-=ca}while((c(sa)>b||c(ca)>b)&&--mt>0);return[Qe,ut]}},te.invert=function(je,$e){if($e*=3/8,!(je*=3/8)&&c($e)>1)return null;var Qe=1+je*je+$e*$e,ut=P((Qe-P(Qe*Qe-4*$e*$e))/2),mt=z(ut)/3,pt=ut?function(Yt){return m(Yt+P(Yt*Yt-1))}(c($e/ut))/3:function(Yt){return m(Yt+P(Yt*Yt+1))}(c(je))/3,Ct=l(mt),Qt=B(pt),en=Qt*Qt-Ct*Ct;return[2*x(je)*s(N(pt)*Ct,.25-en),2*x($e)*s(Qt*w(mt),.25+en)]};var Y=P(8),Z=m(1+S);function re(je,$e){var Qe=c($e);return Qe_){var Ct=s(pt[1],pt[0]),Qt=P(pt[0]*pt[0]+pt[1]*pt[1]),en=$e*y((Ct-_)/$e)+_,Yt=s(w(Ct-=en),2-l(Ct));Ct=en+z(T/Qt*w(Yt))-Yt,pt[0]=Qt*l(Ct),pt[1]=Qt*w(Ct)}return pt}return Qe.invert=function(ut,mt){var pt=P(ut*ut+mt*mt);if(pt>_){var Ct=s(mt,ut),Qt=$e*y((Ct-_)/$e)+_,en=Ct>Qt?-1:1,Yt=pt*l(Qt-Ct),an=1/k(en*L((Yt-T)/P(T*(T-2*Yt)+pt*pt)));Ct=Qt+2*i((an+en*P(an*an-3))/3),ut=pt*l(Ct),mt=pt*w(Ct)}return a.geoAzimuthalEquidistantRaw.invert(ut,mt)},Qe}function q(je,$e){if(arguments.length<2&&($e=je),$e===1)return a.geoAzimuthalEqualAreaRaw;if($e===1/0)return $;function Qe(ut,mt){var pt=a.geoAzimuthalEqualAreaRaw(ut/$e,mt);return pt[0]*=je,pt}return Qe.invert=function(ut,mt){var pt=a.geoAzimuthalEqualAreaRaw.invert(ut/je,mt);return pt[0]*=$e,pt},Qe}function $(je,$e){return[je*l($e)/l($e/=2),2*w($e)]}function ne(je,$e,Qe){var ut,mt,pt,Ct=100;Qe=Qe===void 0?0:+Qe,$e=+$e;do(mt=je(Qe))===(pt=je(Qe+b))&&(pt=mt+b),Qe-=ut=-1*b*(mt-$e)/(mt-pt);while(Ct-- >0&&c(ut)>b);return Ct<0?NaN:Qe}function H(je,$e,Qe){return $e===void 0&&($e=40),Qe===void 0&&(Qe=1e-12),function(ut,mt,pt,Ct){var Qt,en,Yt;pt=pt===void 0?0:+pt,Ct=Ct===void 0?0:+Ct;for(var an=0;an<$e;an++){var hn=je(pt,Ct),xn=hn[0]-ut,_n=hn[1]-mt;if(c(xn)Qt)pt-=en/=2,Ct-=Yt/=2;else{Qt=Pn;var sr=(pt>0?-1:1)*Qe,mr=(Ct>0?-1:1)*Qe,zr=je(pt+sr,Ct),Br=je(pt,Ct+mr),Jr=(zr[0]-hn[0])/sr,jr=(zr[1]-hn[1])/sr,Oi=(Br[0]-hn[0])/mr,Ui=(Br[1]-hn[1])/mr,ua=Ui*Jr-jr*Oi,sa=(c(ua)<.5?.5:1)/ua;if(pt+=en=(_n*Oi-xn*Ui)*sa,Ct+=Yt=(xn*jr-_n*Jr)*sa,c(en)0&&(pt[1]*=1+Ct/1.5*pt[0]*pt[0]),pt}return $e.invert=H($e),$e}function ee(je,$e){var Qe,ut=je*w($e),mt=30;do $e-=Qe=($e+w($e)-ut)/(1+l($e));while(c(Qe)>b&&--mt>0);return $e/2}function ie(je,$e,Qe){function ut(mt,pt){return[je*mt*l(pt=ee(Qe,pt)),$e*w(pt)]}return ut.invert=function(mt,pt){return pt=z(pt/$e),[mt/(je*l(pt)),z((2*pt+w(2*pt))/Qe)]},ut}re.invert=function(je,$e){if((ut=c($e))1e-12&&--pt>0);return[je/(l(mt)*(Y-1/w(mt))),x($e)*mt]},$.invert=function(je,$e){var Qe=2*z($e/2);return[je*l(Qe/2)/l(Qe),Qe]};var ae=ie(S/_,S,T),ue=2.00276,le=1.11072;function ge(je,$e){var Qe=ee(T,$e);return[ue*je/(1/l($e)+le/l(Qe)),($e+S*w(Qe))/ue]}function fe(je){var $e=0,Qe=a.geoProjectionMutator(je),ut=Qe($e);return ut.parallel=function(mt){return arguments.length?Qe($e=mt*R):$e*O},ut}function me(je,$e){return[je*l($e),$e]}function _e(je){if(!je)return me;var $e=1/k(je);function Qe(ut,mt){var pt=$e+je-mt,Ct=pt&&ut*l(mt)/pt;return[pt*w(Ct),$e-pt*l(Ct)]}return Qe.invert=function(ut,mt){var pt=P(ut*ut+(mt=$e-mt)*mt),Ct=$e+je-pt;return[pt/l(Ct)*s(ut,mt),Ct]},Qe}function we(je){function $e(Qe,ut){var mt=_-ut,pt=mt&&Qe*je*w(mt)/mt;return[mt*w(pt)/je,_-mt*l(pt)]}return $e.invert=function(Qe,ut){var mt=Qe*je,pt=_-ut,Ct=P(mt*mt+pt*pt),Qt=s(mt,pt);return[(Ct?Ct/w(Ct):1)*Qt/je,_-Ct]},$e}ge.invert=function(je,$e){var Qe,ut,mt=ue*$e,pt=$e<0?-M:M,Ct=25;do ut=mt-S*w(pt),pt-=Qe=(w(2*pt)+2*pt-T*w(ut))/(2*l(2*pt)+2+T*l(ut)*S*l(pt));while(c(Qe)>b&&--Ct>0);return ut=mt-S*w(pt),[je*(1/l(ut)+le/l(pt))/ue,ut]},me.invert=function(je,$e){return[je/l($e),$e]};var Te=ie(1,4/T,T);function Oe(je,$e,Qe,ut,mt,pt){var Ct,Qt=l(pt);if(c(je)>1||c(pt)>1)Ct=L(Qe*mt+$e*ut*Qt);else{var en=w(je/2),Yt=w(pt/2);Ct=2*z(P(en*en+$e*ut*Yt*Yt))}return c(Ct)>b?[Ct,s(ut*w(pt),$e*mt-Qe*ut*Qt)]:[0,0]}function de(je,$e,Qe){return L((je*je+$e*$e-Qe*Qe)/(2*je*$e))}function ye(je){return je-2*T*h((je+T)/(2*T))}function Me(je,$e,Qe){for(var ut,mt=[[je[0],je[1],w(je[1]),l(je[1])],[$e[0],$e[1],w($e[1]),l($e[1])],[Qe[0],Qe[1],w(Qe[1]),l(Qe[1])]],pt=mt[2],Ct=0;Ct<3;++Ct,pt=ut)ut=mt[Ct],pt.v=Oe(ut[1]-pt[1],pt[3],pt[2],ut[3],ut[2],ut[0]-pt[0]),pt.point=[0,0];var Qt=de(mt[0].v[0],mt[2].v[0],mt[1].v[0]),en=de(mt[0].v[0],mt[1].v[0],mt[2].v[0]),Yt=T-Qt;mt[2].point[1]=0,mt[0].point[0]=-(mt[1].point[0]=mt[0].v[0]/2);var an=[mt[2].point[0]=mt[0].point[0]+mt[2].v[0]*l(Qt),2*(mt[0].point[1]=mt[1].point[1]=mt[2].v[0]*w(Qt))];return function(hn,xn){var _n,Pn=w(xn),sr=l(xn),mr=new Array(3);for(_n=0;_n<3;++_n){var zr=mt[_n];if(mr[_n]=Oe(xn-zr[1],zr[3],zr[2],sr,Pn,hn-zr[0]),!mr[_n][0])return zr.point;mr[_n][1]=ye(mr[_n][1]-zr.v[1])}var Br=an.slice();for(_n=0;_n<3;++_n){var Jr=_n==2?0:_n+1,jr=de(mt[_n].v[0],mr[_n][0],mr[Jr][0]);mr[_n][1]<0&&(jr=-jr),_n?_n==1?(jr=en-jr,Br[0]-=mr[_n][0]*l(jr),Br[1]-=mr[_n][0]*w(jr)):(jr=Yt-jr,Br[0]+=mr[_n][0]*l(jr),Br[1]+=mr[_n][0]*w(jr)):(Br[0]+=mr[_n][0]*l(jr),Br[1]-=mr[_n][0]*w(jr))}return Br[0]/=3,Br[1]/=3,Br}}function ke(je){return je[0]*=R,je[1]*=R,je}function Ee(je,$e,Qe){var ut=a.geoCentroid({type:"MultiPoint",coordinates:[je,$e,Qe]}),mt=[-ut[0],-ut[1]],pt=a.geoRotation(mt),Ct=Me(ke(pt(je)),ke(pt($e)),ke(pt(Qe)));Ct.invert=H(Ct);var Qt=a.geoProjection(Ct).rotate(mt),en=Qt.center;return delete Qt.rotate,Qt.center=function(Yt){return arguments.length?en(pt(Yt)):pt.invert(en())},Qt.clipAngle(90)}function ze(je,$e){var Qe=P(1-w($e));return[2/E*je*Qe,E*(1-Qe)]}function Fe(je){var $e=k(je);function Qe(ut,mt){return[ut,(ut?ut/w(ut):1)*(w(mt)*l(ut)-$e*l(mt))]}return Qe.invert=$e?function(ut,mt){ut&&(mt*=w(ut)/ut);var pt=l(ut);return[ut,2*s(P(pt*pt+$e*$e-mt*mt)-pt,$e-mt)]}:function(ut,mt){return[ut,z(ut?mt*k(ut)/ut:mt)]},Qe}ze.invert=function(je,$e){var Qe=(Qe=$e/E-1)*Qe;return[Qe>0?je*P(T/Qe)/2:0,z(1-Qe)]};var Ve=P(3);function Ke(je,$e){return[Ve*je*(2*l(2*$e/3)-1)/E,Ve*E*w($e/3)]}function Re(je){var $e=l(je);function Qe(ut,mt){return[ut*$e,w(mt)/$e]}return Qe.invert=function(ut,mt){return[ut/$e,z(mt*$e)]},Qe}function qe(je){var $e=l(je);function Qe(ut,mt){return[ut*$e,(1+$e)*k(mt/2)]}return Qe.invert=function(ut,mt){return[ut/$e,2*i(mt/(1+$e))]},Qe}function We(je,$e){var Qe=P(8/(3*T));return[Qe*je*(1-c($e)/T),Qe*$e]}function Ye(je,$e){var Qe=P(4-3*w(c($e)));return[2/P(6*T)*je*Qe,x($e)*P(2*T/3)*(2-Qe)]}function nt(je,$e){var Qe=P(T*(4+T));return[2/Qe*je*(1+P(1-4*$e*$e/(T*T))),4/Qe*$e]}function ft(je,$e){var Qe=(2+_)*w($e);$e/=2;for(var ut=0,mt=1/0;ut<10&&c(mt)>b;ut++){var pt=l($e);$e-=mt=($e+w($e)*(pt+2)-Qe)/(2*pt*(1+pt))}return[2/P(T*(4+T))*je*(1+l($e)),2*P(T/(4+T))*w($e)]}function vt(je,$e){return[je*(1+l($e))/P(2+T),2*$e/P(2+T)]}function Pt(je,$e){for(var Qe=(1+_)*w($e),ut=0,mt=1/0;ut<10&&c(mt)>b;ut++)$e-=mt=($e+w($e)-Qe)/(1+l($e));return Qe=P(2+T),[je*(1+l($e))/Qe,2*$e/Qe]}Ke.invert=function(je,$e){var Qe=3*z($e/(Ve*E));return[E*je/(Ve*(2*l(2*Qe/3)-1)),Qe]},We.invert=function(je,$e){var Qe=P(8/(3*T)),ut=$e/Qe;return[je/(Qe*(1-c(ut)/T)),ut]},Ye.invert=function(je,$e){var Qe=2-c($e)/P(2*T/3);return[je*P(6*T)/(2*Qe),x($e)*z((4-Qe*Qe)/3)]},nt.invert=function(je,$e){var Qe=P(T*(4+T))/2;return[je*Qe/(1+P(1-$e*$e*(4+T)/(4*T))),$e*Qe/2]},ft.invert=function(je,$e){var Qe=$e*P((4+T)/T)/2,ut=z(Qe),mt=l(ut);return[je/(2/P(T*(4+T))*(1+mt)),z((ut+Qe*(mt+2))/(2+_))]},vt.invert=function(je,$e){var Qe=P(2+T),ut=$e*Qe/2;return[Qe*je/(1+l(ut)),ut]},Pt.invert=function(je,$e){var Qe=1+_,ut=P(Qe/2);return[2*je*ut/(1+l($e*=ut)),z(($e+w($e))/Qe)]};var At=3+2*S;function at(je,$e){var Qe=w(je/=2),ut=l(je),mt=P(l($e)),pt=l($e/=2),Ct=w($e)/(pt+S*ut*mt),Qt=P(2/(1+Ct*Ct)),en=P((S*pt+(ut+Qe)*mt)/(S*pt+(ut-Qe)*mt));return[At*(Qt*(en-1/en)-2*m(en)),At*(Qt*Ct*(en+1/en)-2*i(Ct))]}at.invert=function(je,$e){if(!(Qe=te.invert(je/1.2,1.065*$e)))return null;var Qe,ut=Qe[0],mt=Qe[1],pt=20;je/=At,$e/=At;do{var Ct=ut/2,Qt=mt/2,en=w(Ct),Yt=l(Ct),an=w(Qt),hn=l(Qt),xn=l(mt),_n=P(xn),Pn=an/(hn+S*Yt*_n),sr=Pn*Pn,mr=P(2/(1+sr)),zr=(S*hn+(Yt+en)*_n)/(S*hn+(Yt-en)*_n),Br=P(zr),Jr=Br-1/Br,jr=Br+1/Br,Oi=mr*Jr-2*m(Br)-je,Ui=mr*Pn*jr-2*i(Pn)-$e,ua=an&&A*_n*en*sr/an,sa=(S*Yt*hn+_n)/(2*(hn+S*Yt*_n)*(hn+S*Yt*_n)*_n),ca=-.5*Pn*mr*mr*mr,lo=ca*ua,io=ca*sa,za=(za=2*hn+S*_n*(Yt-en))*za*Br,Ra=(S*Yt*hn*_n+xn)/za,ao=-S*en*an/(_n*za),Lo=Jr*lo-2*Ra/Br+mr*(Ra+Ra/zr),Ko=Jr*io-2*ao/Br+mr*(ao+ao/zr),Qo=Pn*jr*lo-2*ua/(1+sr)+mr*jr*ua+mr*Pn*(Ra-Ra/zr),es=Pn*jr*io-2*sa/(1+sr)+mr*jr*sa+mr*Pn*(ao-ao/zr),ts=Ko*Qo-es*Lo;if(!ts)break;var na=(Ui*Ko-Oi*es)/ts,ht=(Oi*Qo-Ui*Lo)/ts;ut-=na,mt=g(-_,p(_,mt-ht))}while((c(na)>b||c(ht)>b)&&--pt>0);return c(c(mt)-_)ut){var hn=P(an),xn=s(Yt,en),_n=Qe*y(xn/Qe),Pn=xn-_n,sr=je*l(Pn),mr=(je*w(Pn)-Pn*w(sr))/(_-sr),zr=dt(Pn,mr),Br=(T-je)/Pe(zr,sr,T);en=hn;var Jr,jr=50;do en-=Jr=(je+Pe(zr,sr,en)*Br-hn)/(zr(en)*Br);while(c(Jr)>b&&--jr>0);Yt=Pn*w(en),en<_&&(Yt-=mr*(en-_));var Oi=w(_n),Ui=l(_n);Qt[0]=en*Ui-Yt*Oi,Qt[1]=en*Oi+Yt*Ui}return Qt}return mt.invert=function(pt,Ct){var Qt=pt*pt+Ct*Ct;if(Qt>ut){var en=P(Qt),Yt=s(Ct,pt),an=Qe*y(Yt/Qe),hn=Yt-an;pt=en*l(hn),Ct=en*w(hn);for(var xn=pt-_,_n=w(pt),Pn=Ct/_n,sr=pt<_?1/0:0,mr=10;;){var zr=je*w(Pn),Br=je*l(Pn),Jr=w(Br),jr=_-Br,Oi=(zr-Pn*Jr)/jr,Ui=dt(Pn,Oi);if(c(sr)<1e-12||!--mr)break;Pn-=sr=(Pn*_n-Oi*xn-Ct)/(_n-2*xn*(jr*(Br+Pn*zr*l(Br)-Jr)-zr*(zr-Pn*Jr))/(jr*jr))}pt=(en=je+Pe(Ui,Br,pt)*(T-je)/Pe(Ui,Br,T))*l(Yt=an+Pn),Ct=en*w(Yt)}return a.geoAzimuthalEquidistantRaw.invert(pt,Ct)},mt}function dt(je,$e){return function(Qe){var ut=je*l(Qe);return Qe<_&&(ut-=$e),P(1+ut*ut)}}function Pe(je,$e,Qe){for(var ut=(Qe-$e)/50,mt=je($e)+je(Qe),pt=1,Ct=$e;pt<50;++pt)mt+=2*je(Ct+=ut);return .5*mt*ut}function Ie(je,$e,Qe,ut,mt,pt,Ct,Qt){function en(Yt,an){if(!an)return[je*Yt/T,0];var hn=an*an,xn=je+hn*($e+hn*(Qe+hn*ut)),_n=an*(mt-1+hn*(pt-Qt+hn*Ct)),Pn=(xn*xn+_n*_n)/(2*_n),sr=Yt*z(xn/Pn)/T;return[Pn*w(sr),an*(1+hn*Qt)+Pn*(1-l(sr))]}return arguments.length<8&&(Qt=0),en.invert=function(Yt,an){var hn,xn,_n=T*Yt/je,Pn=an,sr=50;do{var mr=Pn*Pn,zr=je+mr*($e+mr*(Qe+mr*ut)),Br=Pn*(mt-1+mr*(pt-Qt+mr*Ct)),Jr=zr*zr+Br*Br,jr=2*Br,Oi=Jr/jr,Ui=Oi*Oi,ua=z(zr/Oi)/T,sa=_n*ua,ca=zr*zr,lo=(2*$e+mr*(4*Qe+6*mr*ut))*Pn,io=mt+mr*(3*pt+5*mr*Ct),za=(2*(zr*lo+Br*(io-1))*jr-Jr*(2*(io-1)))/(jr*jr),Ra=l(sa),ao=w(sa),Lo=Oi*Ra,Ko=Oi*ao,Qo=_n/T*(1/P(1-ca/Ui))*(lo*Oi-zr*za)/Ui,es=Ko-Yt,ts=Pn*(1+mr*Qt)+Oi-Lo-an,na=za*ao+Lo*Qo,ht=Lo*ua,Ft=1+za-(za*Ra-Ko*Qo),ln=Ko*ua,$t=na*ln-Ft*ht;if(!$t)break;_n-=hn=(ts*na-es*Ft)/$t,Pn-=xn=(es*ln-ts*ht)/$t}while((c(hn)>b||c(xn)>b)&&--sr>0);return[_n,Pn]},en}Ot.invert=function(je,$e){var Qe=$e/(1+et);return[je&&je/(et*P(1-Qe*Qe)),2*i(Qe)]},Wt.invert=function(je,$e){var Qe=i($e/E),ut=l(Qe),mt=2*Qe;return[je*E/2/(l(mt)*ut*ut),mt]};var Ae=Ie(2.8284,-1.6988,.75432,-.18071,1.76003,-.38914,.042555),De=Ie(2.583819,-.835827,.170354,-.038094,1.543313,-.411435,.082742),He=Ie(5/6*T,-.62636,-.0344,0,1.3493,-.05524,0,.045);function rt(je,$e){var Qe=je*je,ut=$e*$e;return[je*(1-.162388*ut)*(.87-952426e-9*Qe*Qe),$e*(1+ut/12)]}rt.invert=function(je,$e){var Qe,ut=je,mt=$e,pt=50;do{var Ct=mt*mt;mt-=Qe=(mt*(1+Ct/12)-$e)/(1+Ct/4)}while(c(Qe)>b&&--pt>0);pt=50,je/=1-.162388*Ct;do{var Qt=(Qt=ut*ut)*Qt;ut-=Qe=(ut*(.87-952426e-9*Qt)-je)/(.87-.00476213*Qt)}while(c(Qe)>b&&--pt>0);return[ut,mt]};var lt=Ie(2.6516,-.76534,.19123,-.047094,1.36289,-.13965,.031762);function ot(je){var $e=je(_,0)[0]-je(-_,0)[0];function Qe(ut,mt){var pt=ut>0?-.5:.5,Ct=je(ut+pt*T,mt);return Ct[0]-=pt*$e,Ct}return je.invert&&(Qe.invert=function(ut,mt){var pt=ut>0?-.5:.5,Ct=je.invert(ut+pt*$e,mt),Qt=Ct[0]-pt*T;return Qt<-T?Qt+=2*T:Qt>T&&(Qt-=2*T),Ct[0]=Qt,Ct}),Qe}function kt(je,$e){var Qe=x(je),ut=x($e),mt=l($e),pt=l(je)*mt,Ct=w(je)*mt,Qt=w(ut*$e);je=c(s(Ct,Qt)),$e=z(pt),c(je-_)>b&&(je%=_);var en=function(Yt,an){if(an===_)return[0,0];var hn,xn,_n=w(an),Pn=_n*_n,sr=Pn*Pn,mr=1+sr,zr=1+3*sr,Br=1-sr,Jr=z(1/P(mr)),jr=Br+Pn*mr*Jr,Oi=(1-_n)/jr,Ui=P(Oi),ua=Oi*mr,sa=P(ua),ca=Ui*Br;if(Yt===0)return[0,-(ca+Pn*sa)];var lo,io=l(an),za=1/io,Ra=2*_n*io,ao=(-jr*io-(-3*Pn+Jr*zr)*Ra*(1-_n))/(jr*jr),Lo=-za*Ra,Ko=-za*(Pn*mr*ao+Oi*zr*Ra),Qo=-2*za*(Br*(.5*ao/Ui)-2*Pn*Ui*Ra),es=4*Yt/T;if(Yt>.222*T||an.175*T){if(hn=(ca+Pn*P(ua*(1+sr)-ca*ca))/(1+sr),Yt>T/4)return[hn,hn];var ts=hn,na=.5*hn;hn=.5*(na+ts),xn=50;do{var ht=P(ua-hn*hn),Ft=hn*(Qo+Lo*ht)+Ko*z(hn/sa)-es;if(!Ft)break;Ft<0?na=hn:ts=hn,hn=.5*(na+ts)}while(c(ts-na)>b&&--xn>0)}else{hn=b,xn=25;do{var ln=hn*hn,$t=P(ua-ln),un=Qo+Lo*$t,On=hn*un+Ko*z(hn/sa)-es,Fn=un+(Ko-Lo*ln)/$t;hn-=lo=$t?On/Fn:0}while(c(lo)>b&&--xn>0)}return[hn,-ca-Pn*P(ua-hn*hn)]}(je>T/4?_-je:je,$e);return je>T/4&&(Qt=en[0],en[0]=-en[1],en[1]=-Qt),en[0]*=Qe,en[1]*=-ut,en}function wt(je,$e){var Qe,ut,mt,pt,Ct,Qt;if($e=1-b)return Qe=(1-$e)/4,mt=1/(ut=B(je)),[(pt=((Qt=d(2*(Qt=je)))-1)/(Qt+1))+Qe*((Ct=ut*N(je))-je)/(ut*ut),mt-Qe*pt*mt*(Ct-je),mt+Qe*pt*mt*(Ct+je),2*i(d(je))-_+Qe*(Ct-je)/ut];var en=[1,0,0,0,0,0,0,0,0],Yt=[P($e),0,0,0,0,0,0,0,0],an=0;for(ut=P(1-$e),Ct=1;c(Yt[an]/en[an])>b&&an<8;)Qe=en[an++],Yt[an]=(Qe-ut)/2,en[an]=(Qe+ut)/2,ut=P(Qe*ut),Ct*=2;mt=Ct*en[an]*je;do mt=(z(pt=Yt[an]*w(ut=mt)/en[an])+mt)/2;while(--an);return[w(mt),pt=l(mt),pt/l(mt-ut),mt]}function Vt(je,$e){if(!$e)return je;if($e===1)return m(k(je/2+M));for(var Qe=1,ut=P(1-$e),mt=P($e),pt=0;c(mt)>b;pt++){if(je%T){var Ct=i(ut*k(je)/Qe);Ct<0&&(Ct+=T),je+=Ct+~~(je/T)*T}else je+=je;mt=(Qe+ut)/2,ut=P(Qe*ut),mt=((Qe=mt)-ut)/2}return je/(v(2,pt)*Qe)}function Ut(je,$e){var Qe=(S-1)/(S+1),ut=P(1-Qe*Qe),mt=Vt(_,ut*ut),pt=m(k(T/4+c($e)/2)),Ct=d(-1*pt)/P(Qe),Qt=function(Yt,an){var hn=Yt*Yt,xn=an+1,_n=1-hn-an*an;return[.5*((Yt>=0?_:-_)-s(_n,2*Yt)),-.25*m(_n*_n+4*hn)+.5*m(xn*xn+hn)]}(Ct*l(-1*je),Ct*w(-1*je)),en=function(Yt,an,hn){var xn=c(Yt),_n=N(c(an));if(xn){var Pn=1/w(xn),sr=1/(k(xn)*k(xn)),mr=-(sr+hn*(_n*_n*Pn*Pn)-1+hn),zr=(-mr+P(mr*mr-4*((hn-1)*sr)))/2;return[Vt(i(1/P(zr)),hn)*x(Yt),Vt(i(P((zr/sr-1)/hn)),1-hn)*x(an)]}return[0,Vt(i(_n),1-hn)*x(an)]}(Qt[0],Qt[1],ut*ut);return[-en[1],($e>=0?1:-1)*(.5*mt-en[0])]}function tt(je){var $e=w(je),Qe=l(je),ut=bt(je);function mt(pt,Ct){var Qt=ut(pt,Ct);pt=Qt[0],Ct=Qt[1];var en=w(Ct),Yt=l(Ct),an=l(pt),hn=L($e*en+Qe*Yt*an),xn=w(hn),_n=c(xn)>b?hn/xn:1;return[_n*Qe*w(pt),(c(pt)>_?_n:-_n)*($e*Yt-Qe*en*an)]}return ut.invert=bt(-je),mt.invert=function(pt,Ct){var Qt=P(pt*pt+Ct*Ct),en=-w(Qt),Yt=l(Qt),an=Qt*Yt,hn=-Ct*en,xn=Qt*$e,_n=P(an*an+hn*hn-xn*xn),Pn=s(an*xn+hn*_n,hn*xn-an*_n),sr=(Qt>_?-1:1)*s(pt*en,Qt*l(Pn)*Yt+Ct*w(Pn)*en);return ut.invert(sr,Pn)},mt}function bt(je){var $e=w(je),Qe=l(je);return function(ut,mt){var pt=l(mt),Ct=l(ut)*pt,Qt=w(ut)*pt,en=w(mt);return[s(Qt,Ct*Qe-en*$e),z(en*Qe+Ct*$e)]}}kt.invert=function(je,$e){c(je)>1&&(je=2*x(je)-je),c($e)>1&&($e=2*x($e)-$e);var Qe=x(je),ut=x($e),mt=-Qe*je,pt=-ut*$e,Ct=pt/mt<1,Qt=function(hn,xn){for(var _n=0,Pn=1,sr=.5,mr=50;;){var zr=sr*sr,Br=P(sr),Jr=z(1/P(1+zr)),jr=1-zr+sr*(1+zr)*Jr,Oi=(1-Br)/jr,Ui=P(Oi),ua=Oi*(1+zr),sa=Ui*(1-zr),ca=P(ua-hn*hn),lo=xn+sa+sr*ca;if(c(Pn-_n)<1e-12||--mr==0||lo===0)break;lo>0?_n=sr:Pn=sr,sr=.5*(_n+Pn)}if(!mr)return null;var io=z(Br),za=l(io),Ra=1/za,ao=2*Br*za,Lo=(-jr*za-(-3*sr+Jr*(1+3*zr))*ao*(1-Br))/(jr*jr);return[T/4*(hn*(-2*Ra*(.5*Lo/Ui*(1-zr)-2*sr*Ui*ao)+-Ra*ao*ca)+-Ra*(sr*(1+zr)*Lo+Oi*(1+3*zr)*ao)*z(hn/P(ua))),io]}(Ct?pt:mt,Ct?mt:pt),en=Qt[0],Yt=Qt[1],an=l(Yt);return Ct&&(en=-_-en),[Qe*(s(w(en)*an,-w(Yt))+T),ut*z(l(en)*an)]},Ut.invert=function(je,$e){var Qe,ut,mt,pt,Ct,Qt,en=(S-1)/(S+1),Yt=P(1-en*en),an=Vt(_,Yt*Yt),hn=(ut=-je,mt=Yt*Yt,(Qe=.5*an-$e)?(pt=wt(Qe,mt),ut?(Qt=(Ct=wt(ut,1-mt))[1]*Ct[1]+mt*pt[0]*pt[0]*Ct[0]*Ct[0],[[pt[0]*Ct[2]/Qt,pt[1]*pt[2]*Ct[0]*Ct[1]/Qt],[pt[1]*Ct[1]/Qt,-pt[0]*pt[2]*Ct[0]*Ct[2]/Qt],[pt[2]*Ct[1]*Ct[2]/Qt,-mt*pt[0]*pt[1]*Ct[0]/Qt]]):[[pt[0],0],[pt[1],0],[pt[2],0]]):[[0,(Ct=wt(ut,1-mt))[0]/Ct[1]],[1/Ct[1],0],[Ct[2]/Ct[1],0]]),xn=function(_n,Pn){var sr=Pn[0]*Pn[0]+Pn[1]*Pn[1];return[(_n[0]*Pn[0]+_n[1]*Pn[1])/sr,(_n[1]*Pn[0]-_n[0]*Pn[1])/sr]}(hn[0],hn[1]);return[s(xn[1],xn[0])/-1,2*i(d(-.5*m(en*xn[0]*xn[0]+en*xn[1]*xn[1])))-_]};var zt=z(1-1/3)*O,St=Re(0);function Dt(je){var $e=zt*R,Qe=ze(T,$e)[0]-ze(-T,$e)[0],ut=St(0,$e)[1],mt=ze(0,$e)[1],pt=E-mt,Ct=D/je,Qt=4/D,en=ut+pt*pt*4/D;function Yt(an,hn){var xn,_n=c(hn);if(_n>$e){var Pn=p(je-1,g(0,h((an+T)/Ct)));(xn=ze(an+=T*(je-1)/je-Pn*Ct,_n))[0]=xn[0]*D/Qe-D*(je-1)/(2*je)+Pn*D/je,xn[1]=ut+4*(xn[1]-mt)*pt/D,hn<0&&(xn[1]=-xn[1])}else xn=St(an,hn);return xn[0]*=Qt,xn[1]/=en,xn}return Yt.invert=function(an,hn){an/=Qt;var xn=c(hn*=en);if(xn>ut){var _n=p(je-1,g(0,h((an+T)/Ct)));an=(an+T*(je-1)/je-_n*Ct)*Qe/D;var Pn=ze.invert(an,.25*(xn-ut)*D/pt+mt);return Pn[0]-=T*(je-1)/je-_n*Ct,hn<0&&(Pn[1]=-Pn[1]),Pn}return St.invert(an,hn)},Yt}function Le(je,$e){return[je,1&$e?90-b:zt]}function Je(je,$e){return[je,1&$e?-90+b:-zt]}function st(je){return[je[0]*(1-b),je[1]]}function Et(je){var $e,Qe=1+je,ut=z(w(1/Qe)),mt=2*P(T/($e=T+4*ut*Qe)),pt=.5*mt*(Qe+P(je*(2+je))),Ct=je*je,Qt=Qe*Qe;function en(Yt,an){var hn,xn,_n=1-w(an);if(_n&&_n<2){var Pn,sr=_-an,mr=25;do{var zr=w(sr),Br=l(sr),Jr=ut+s(zr,Qe-Br),jr=1+Qt-2*Qe*Br;sr-=Pn=(sr-Ct*ut-Qe*zr+jr*Jr-.5*_n*$e)/(2*Qe*zr*Jr)}while(c(Pn)>1e-12&&--mr>0);hn=mt*P(jr),xn=Yt*Jr/T}else hn=mt*(je+_n),xn=Yt*ut/T;return[hn*w(xn),pt-hn*l(xn)]}return en.invert=function(Yt,an){var hn=Yt*Yt+(an-=pt)*an,xn=(1+Qt-hn/(mt*mt))/(2*Qe),_n=L(xn),Pn=w(_n),sr=ut+s(Pn,Qe-xn);return[z(Yt/P(hn))*T/sr,z(1-2*(_n-Ct*ut-Qe*Pn+(1+Qt-2*Qe*xn)*sr)/$e)]},en}function It(je,$e){return $e>-.7109889596207567?((je=ae(je,$e))[1]+=.0528035274542,je):me(je,$e)}function Zt(je,$e){return c($e)>.7109889596207567?((je=ae(je,$e))[1]-=$e>0?.0528035274542:-.0528035274542,je):me(je,$e)}function Kt(je,$e,Qe,ut){var mt=P(4*T/(2*Qe+(1+je-$e/2)*w(2*Qe)+(je+$e)/2*w(4*Qe)+$e/2*w(6*Qe))),pt=P(ut*w(Qe)*P((1+je*l(2*Qe)+$e*l(4*Qe))/(1+je+$e))),Ct=Qe*en(1);function Qt(hn){return P(1+je*l(2*hn)+$e*l(4*hn))}function en(hn){var xn=hn*Qe;return(2*xn+(1+je-$e/2)*w(2*xn)+(je+$e)/2*w(4*xn)+$e/2*w(6*xn))/Qe}function Yt(hn){return Qt(hn)*w(hn)}var an=function(hn,xn){var _n=Qe*ne(en,Ct*w(xn)/Qe,xn/T);isNaN(_n)&&(_n=Qe*x(xn));var Pn=mt*Qt(_n);return[Pn*pt*hn/T*l(_n),Pn/pt*w(_n)]};return an.invert=function(hn,xn){var _n=ne(Yt,xn*pt/mt);return[hn*T/(l(_n)*mt*pt*Qt(_n)),z(Qe*en(_n/Qe)/Ct)]},Qe===0&&(mt=P(ut/T),(an=function(hn,xn){return[hn*mt,w(xn)/mt]}).invert=function(hn,xn){return[hn/mt,z(xn*mt)]}),an}function Ht(je,$e,Qe,ut,mt){ut===void 0&&(ut=1e-8),mt===void 0&&(mt=20);var pt=je($e),Ct=je(.5*($e+Qe)),Qt=je(Qe);return function en(Yt,an,hn,xn,_n,Pn,sr,mr,zr,Br,Jr){if(Jr.nanEncountered)return NaN;var jr,Oi,Ui,ua,sa,ca,lo,io,za,Ra;if(Oi=Yt(an+.25*(jr=hn-an)),Ui=Yt(hn-.25*jr),isNaN(Oi))Jr.nanEncountered=!0;else{if(!isNaN(Ui))return Ra=((ca=(ua=jr*(xn+4*Oi+_n)/12)+(sa=jr*(_n+4*Ui+Pn)/12))-sr)/15,Br>zr?(Jr.maxDepthCount++,ca+Ra):Math.abs(Ra)_n?sr=mr:Pn=mr,mr=Pn+sr>>1;while(mr>Pn);var zr=en[mr+1]-en[mr];return zr&&(zr=(_n-en[mr+1])/zr),(mr+1+zr)/Ct}var hn=2*an(1)/T*pt/Qe,xn=function(_n,Pn){var sr=an(c(w(Pn))),mr=ut(sr)*_n;return sr/=hn,[mr,Pn>=0?sr:-sr]};return xn.invert=function(_n,Pn){var sr;return c(Pn*=hn)<1&&(sr=x(Pn)*z(mt(c(Pn))*pt)),[_n/ut(c(Pn)),sr]},xn}function zn(je,$e){return c(je[0]-$e[0])=0;--Qt)Qe=($e=je[1][Qt])[0][0],ut=$e[0][1],mt=$e[1][1],pt=$e[2][0],Ct=$e[2][1],en.push(pn([[pt-b,Ct-b],[pt-b,mt+b],[Qe+b,mt+b],[Qe+b,ut-b]],30));return{type:"Polygon",coordinates:[u.merge(en)]}}function nn(je,$e,Qe){var ut,mt;function pt(en,Yt){for(var an=Yt<0?-1:1,hn=$e[+(Yt<0)],xn=0,_n=hn.length-1;xn<_n&&en>hn[xn][2][0];++xn);var Pn=je(en-hn[xn][1][0],Yt);return Pn[0]+=je(hn[xn][1][0],an*Yt>an*hn[xn][0][1]?hn[xn][0][1]:Yt)[0],Pn}Qe?pt.invert=Qe(pt):je.invert&&(pt.invert=function(en,Yt){for(var an=mt[+(Yt<0)],hn=$e[+(Yt<0)],xn=0,_n=an.length;xn<_n;++xn){var Pn=an[xn];if(Pn[0][0]<=en&&ensr&&(hn=Pn,Pn=sr,sr=hn),[[xn,Pn],[_n,sr]]})}),Ct):$e.map(function(Yt){return Yt.map(function(an){return[[an[0][0]*O,an[0][1]*O],[an[1][0]*O,an[1][1]*O],[an[2][0]*O,an[2][1]*O]]})})},$e!=null&&Ct.lobes($e),Ct}It.invert=function(je,$e){return $e>-.7109889596207567?ae.invert(je,$e-.0528035274542):me.invert(je,$e)},Zt.invert=function(je,$e){return c($e)>.7109889596207567?ae.invert(je,$e+($e>0?.0528035274542:-.0528035274542)):me.invert(je,$e)};var sn=[[[[-180,0],[-100,90],[-40,0]],[[-40,0],[30,90],[180,0]]],[[[-180,0],[-160,-90],[-100,0]],[[-100,0],[-60,-90],[-20,0]],[[-20,0],[20,-90],[80,0]],[[80,0],[140,-90],[180,0]]]],gn=[[[[-180,0],[-100,90],[-40,0]],[[-40,0],[30,90],[180,0]]],[[[-180,0],[-160,-90],[-100,0]],[[-100,0],[-60,-90],[-20,0]],[[-20,0],[20,-90],[80,0]],[[80,0],[140,-90],[180,0]]]],bn=[[[[-180,0],[-100,90],[-40,0]],[[-40,0],[30,90],[180,0]]],[[[-180,0],[-160,-90],[-100,0]],[[-100,0],[-60,-90],[-20,0]],[[-20,0],[20,-90],[80,0]],[[80,0],[140,-90],[180,0]]]],In=[[[[-180,0],[-90,90],[0,0]],[[0,0],[90,90],[180,0]]],[[[-180,0],[-90,-90],[0,0]],[[0,0],[90,-90],[180,0]]]],Hn=[[[[-180,35],[-30,90],[0,35]],[[0,35],[30,90],[180,35]]],[[[-180,-10],[-102,-90],[-65,-10]],[[-65,-10],[5,-90],[77,-10]],[[77,-10],[103,-90],[180,-10]]]],Wn=[[[[-180,0],[-110,90],[-40,0]],[[-40,0],[0,90],[40,0]],[[40,0],[110,90],[180,0]]],[[[-180,0],[-110,-90],[-40,0]],[[-40,0],[0,-90],[40,0]],[[40,0],[110,-90],[180,0]]]];function ar(je,$e){return[3/D*je*P(T*T/3-$e*$e),$e]}function Or(je){function $e(Qe,ut){if(c(c(ut)-_)2)return null;var pt=(Qe/=2)*Qe,Ct=(ut/=2)*ut,Qt=2*ut/(1+pt+Ct);return Qt=v((1+Qt)/(1-Qt),1/je),[s(2*Qe,1-pt-Ct)/je,z((Qt-1)/(Qt+1))]},$e}ar.invert=function(je,$e){return[D/3*je/P(T*T/3-$e*$e),$e]};var vr=T/S;function Er(je,$e){return[je*(1+P(l($e)))/2,$e/(l($e/2)*l(je/6))]}function Kn(je,$e){var Qe=je*je,ut=$e*$e;return[je*(.975534+ut*(-.0143059*Qe-.119161+-.0547009*ut)),$e*(1.00384+Qe*(.0802894+-.02855*ut+199025e-9*Qe)+ut*(.0998909+-.0491032*ut))]}function Ln(je,$e){return[w(je)/l($e),k($e)*l(je)]}function lr(je){var $e=l(je),Qe=k(M+je/2);function ut(mt,pt){var Ct=pt-je,Qt=c(Ct)=0;)xn=(hn=je[an])[0]+en*(pt=xn)-Yt*_n,_n=hn[1]+en*_n+Yt*pt;return[xn=en*(pt=xn)-Yt*_n,_n=en*_n+Yt*pt]}return Qe.invert=function(ut,mt){var pt=20,Ct=ut,Qt=mt;do{for(var en,Yt=$e,an=je[Yt],hn=an[0],xn=an[1],_n=0,Pn=0;--Yt>=0;)_n=hn+Ct*(en=_n)-Qt*Pn,Pn=xn+Ct*Pn+Qt*en,hn=(an=je[Yt])[0]+Ct*(en=hn)-Qt*xn,xn=an[1]+Ct*xn+Qt*en;var sr,mr,zr=(_n=hn+Ct*(en=_n)-Qt*Pn)*_n+(Pn=xn+Ct*Pn+Qt*en)*Pn;Ct-=sr=((hn=Ct*(en=hn)-Qt*xn-ut)*_n+(xn=Ct*xn+Qt*en-mt)*Pn)/zr,Qt-=mr=(xn*_n-hn*Pn)/zr}while(c(sr)+c(mr)>1e-12&&--pt>0);if(pt){var Br=P(Ct*Ct+Qt*Qt),Jr=2*i(.5*Br),jr=w(Jr);return[s(Ct*jr,Br*l(Jr)),Br?z(Qt*jr/Br):0]}},Qe}Er.invert=function(je,$e){var Qe=c(je),ut=c($e),mt=b,pt=_;utb||c(mr)>b)&&--mt>0);return mt&&[Qe,ut]},Ln.invert=function(je,$e){var Qe=je*je,ut=$e*$e+1,mt=Qe+ut,pt=je?A*P((mt-P(mt*mt-4*Qe))/Qe):1/P(ut);return[z(je*pt),x($e)*L(pt)]},Wr.invert=function(je,$e){return[je,2.5*i(d(.8*$e))-.625*T]};var rr=[[.9972523,0],[.0052513,-.0041175],[.0074606,.0048125],[-.0153783,-.1968253],[.0636871,-.1408027],[.3660976,-.2937382]],nr=[[.98879,0],[0,0],[-.050909,0],[0,0],[.075528,0]],Bn=[[.984299,0],[.0211642,.0037608],[-.1036018,-.0575102],[-.0329095,-.0320119],[.0499471,.1223335],[.026046,.0899805],[7388e-7,-.1435792],[.0075848,-.1334108],[-.0216473,.0776645],[-.0225161,.0853673]],Fr=[[.9245,0],[0,0],[.01943,0]],$r=[[.721316,0],[0,0],[-.00881625,-.00617325]];function pr(je,$e){var Qe=a.geoProjection(Mn(je)).rotate($e).clipAngle(90),ut=a.geoRotation($e),mt=Qe.center;return delete Qe.rotate,Qe.center=function(pt){return arguments.length?mt(ut(pt)):ut.invert(mt())},Qe}var qr=P(6),_i=P(7);function cn(je,$e){var Qe=z(7*w($e)/(3*qr));return[qr*je*(2*l(2*Qe/3)-1)/_i,9*w(Qe/3)/_i]}function jn(je,$e){for(var Qe,ut=(1+A)*w($e),mt=$e,pt=0;pt<25&&(mt-=Qe=(w(mt/2)+w(mt)-ut)/(.5*l(mt/2)+l(mt)),!(c(Qe)1e-12&&--Qt>0);return[je/(.84719-.13063*(ut=Ct*Ct)+(pt=ut*(mt=ut*ut))*pt*(.05494*ut-.04515-.02326*mt+.00331*pt)),Ct]},yn.invert=function(je,$e){for(var Qe=$e/2,ut=0,mt=1/0;ut<10&&c(mt)>b;++ut){var pt=l($e/2);$e-=mt=($e-k($e/2)-Qe)/(1-.5/(pt*pt))}return[2*je/(1+l($e)),$e]};var $n=[[[[-180,0],[-90,90],[0,0]],[[0,0],[90,90],[180,0]]],[[[-180,0],[-90,-90],[0,0]],[[0,0],[90,-90],[180,0]]]];function Un(je,$e){var Qe=w($e),ut=l($e),mt=x(je);if(je===0||c($e)===_)return[0,$e];if($e===0)return[je,0];if(c(je)===_)return[je*ut,_*Qe];var pt=T/(2*je)-2*je/T,Ct=2*$e/T,Qt=(1-Ct*Ct)/(Qe-Ct),en=pt*pt,Yt=Qt*Qt,an=1+en/Yt,hn=1+Yt/en,xn=(pt*Qe/Qt-pt/2)/an,_n=(Yt*Qe/en+Qt/2)/hn,Pn=_n*_n-(Yt*Qe*Qe/en+Qt*Qe-1)/hn;return[_*(xn+P(xn*xn+ut*ut/an)*mt),_*(_n+P(Pn<0?0:Pn)*x(-$e*pt)*mt)]}Un.invert=function(je,$e){var Qe=(je/=_)*je,ut=Qe+($e/=_)*$e,mt=T*T;return[je?(ut-1+P((1-ut)*(1-ut)+4*Qe))/(2*je)*_:0,ne(function(pt){return ut*(T*w(pt)-2*pt)*T+4*pt*pt*($e-w(pt))+2*T*pt-mt*$e},0)]};function Nn(je,$e){var Qe=$e*$e;return[je,$e*(1.0148+Qe*Qe*(.23185+Qe*(.02406*Qe-.14499)))]}function Rn(je,$e){if(c($e)=0;)if(zr=sr[Oi],mr[0]===zr[0]&&mr[1]===zr[1]){if(Jr)return[Jr,mr];Jr=mr}}}(Qt.face,en.face),an=wn(Yt.map(en.project),Yt.map(Qt.project));Qt.transform=en.transform?kn(en.transform,an):an;for(var hn=en.edges,xn=0,_n=hn.length;xn<_n;++xn)Yn(Yt[0],hn[xn][1])&&Yn(Yt[1],hn[xn][0])&&(hn[xn]=Qt),Yn(Yt[0],hn[xn][0])&&Yn(Yt[1],hn[xn][1])&&(hn[xn]=Qt);for(hn=Qt.edges,xn=0,_n=hn.length;xn<_n;++xn)Yn(Yt[0],hn[xn][0])&&Yn(Yt[1],hn[xn][1])&&(hn[xn]=en),Yn(Yt[0],hn[xn][1])&&Yn(Yt[1],hn[xn][0])&&(hn[xn]=en)}else Qt.transform=en.transform;return Qt.children&&Qt.children.forEach(function(Pn){Ct(Pn,Qt)}),Qt})(je,{transform:null}),ir(je)&&(ut.invert=function(Ct,Qt){var en=function Yt(an,hn){var xn=an.project.invert,_n=an.transform,Pn=hn;if(_n&&(_n=function(Jr){var jr=1/(Jr[0]*Jr[4]-Jr[1]*Jr[3]);return[jr*Jr[4],-jr*Jr[1],jr*(Jr[1]*Jr[5]-Jr[2]*Jr[4]),-jr*Jr[3],jr*Jr[0],jr*(Jr[2]*Jr[3]-Jr[0]*Jr[5])]}(_n),Pn=[_n[0]*Pn[0]+_n[1]*Pn[1]+_n[2],_n[3]*Pn[0]+_n[4]*Pn[1]+_n[5]]),xn&&an===function(Jr){return $e(Jr[0]*R,Jr[1]*R)}(sr=xn(Pn)))return sr;for(var sr,mr=an.children,zr=0,Br=mr&&mr.length;zr1.790857183?$e=1.790857183:$e<-1.790857183&&($e=-1.790857183);var Qe,ut=$e;do{var mt=ut*ut;ut-=Qe=(ut*(1.0148+mt*mt*(.23185+mt*(.02406*mt-.14499)))-$e)/(1.0148+mt*mt*(5*.23185+mt*(.21654*mt-1.01493)))}while(c(Qe)>b);return[je,ut]},Rn.invert=function(je,$e){if(c($e)b&&--pt>0);return Ct=k(mt),[(c($e)en^Br>en&&Qt<(zr-Pn)*(en-sr)/(Br-sr)+Pn&&(Yt=!Yt)}return Yt}(mt[0],ut))return mt.push(Qe),!0})||je.push([Qe])}),ta=[],je.length?je.length>1?{type:"MultiPolygon",coordinates:je}:{type:"Polygon",coordinates:je[0]}:null}};function ya(je){var $e=je(_,0)[0]-je(-_,0)[0];function Qe(ut,mt){var pt=c(ut)<_,Ct=je(pt?ut:ut>0?ut-T:ut+T,mt),Qt=(Ct[0]-Ct[1])*A,en=(Ct[0]+Ct[1])*A;if(pt)return[Qt,en];var Yt=$e*A,an=Qt>0^en>0?-1:1;return[an*Qt-x(en)*Yt,an*en-x(Qt)*Yt]}return je.invert&&(Qe.invert=function(ut,mt){var pt=(ut+mt)*A,Ct=(mt-ut)*A,Qt=c(pt)<.5*$e&&c(Ct)<.5*$e;if(!Qt){var en=$e*A,Yt=pt>0^Ct>0?-1:1,an=-Yt*ut+(Ct>0?1:-1)*en,hn=-Yt*mt+(pt>0?1:-1)*en;pt=(-an-hn)*A,Ct=(an-hn)*A}var xn=je.invert(pt,Ct);return Qt||(xn[0]+=pt>0?T:-T),xn}),a.geoProjection(Qe).rotate([-90,-90,45]).clipAngle(179.999)}function xa(){return ya(Ut).scale(111.48)}function Zo(je){var $e=w(je);function Qe(ut,mt){var pt=$e?k(ut*$e/2)/$e:ut/2;if(!mt)return[2*pt,-je];var Ct=2*i(pt*w(mt)),Qt=1/k(mt);return[w(Ct)*Qt,mt+(1-l(Ct))*Qt-je]}return Qe.invert=function(ut,mt){if(c(mt+=je)b&&--en>0);var xn=ut*(Yt=k(Qt)),_n=k(c(mt)0?_:-_)*(Yt+pt*(hn-Qt)/2+pt*pt*(hn-2*Yt+Qt)/2)]}function bs(je,$e){var Qe=function(Ct){function Qt(en,Yt){var an=l(Yt),hn=(Ct-1)/(Ct-an*l(en));return[hn*an*w(en),hn*w(Yt)]}return Qt.invert=function(en,Yt){var an=en*en+Yt*Yt,hn=P(an),xn=(Ct-P(1-an*(Ct+1)/(Ct-1)))/((Ct-1)/hn+hn/(Ct-1));return[s(en*xn,hn*P(1-xn*xn)),hn?z(Yt*xn/hn):0]},Qt}(je);if(!$e)return Qe;var ut=l($e),mt=w($e);function pt(Ct,Qt){var en=Qe(Ct,Qt),Yt=en[1],an=Yt*mt/(je-1)+ut;return[en[0]*ut/an,Yt/an]}return pt.invert=function(Ct,Qt){var en=(je-1)/(je-1-Qt*mt);return Qe.invert(en*Ct,en*Qt*ut)},pt}oa.forEach(function(je){je[1]*=1.0144}),hs.invert=function(je,$e){var Qe=$e/_,ut=90*Qe,mt=p(18,c(ut/5)),pt=g(0,h(mt));do{var Ct=oa[pt][1],Qt=oa[pt+1][1],en=oa[p(19,pt+2)][1],Yt=en-Ct,an=en-2*Qt+Ct,hn=2*(c(Qe)-Qt)/Yt,xn=an/Yt,_n=hn*(1-xn*hn*(1-2*xn*hn));if(_n>=0||pt===1){ut=($e>=0?5:-5)*(_n+mt);var Pn,sr=50;do _n=(mt=p(18,c(ut)/5))-(pt=h(mt)),Ct=oa[pt][1],Qt=oa[pt+1][1],en=oa[p(19,pt+2)][1],ut-=(Pn=($e>=0?_:-_)*(Qt+_n*(en-Ct)/2+_n*_n*(en-2*Qt+Ct)/2)-$e)*O;while(c(Pn)>1e-12&&--sr>0);break}}while(--pt>=0);var mr=oa[pt][0],zr=oa[pt+1][0],Br=oa[p(19,pt+2)][0];return[je/(zr+_n*(Br-mr)/2+_n*_n*(Br-2*zr+mr)/2),ut*R]};var so=-179.9999,Jo=179.9999,_s=-89.9999;function Ls(je){return je.length>0}function Oo(je){return je===-90||je===90?[0,je]:[-180,($e=je,Math.floor(1e4*$e)/1e4)];var $e}function Ka(je){var $e=je[0],Qe=je[1],ut=!1;return $e<=so?($e=-180,ut=!0):$e>=Jo&&($e=180,ut=!0),Qe<=_s?(Qe=-90,ut=!0):Qe>=89.9999&&(Qe=90,ut=!0),ut?[$e,Qe]:je}function $o(je){return je.map(Ka)}function ic(je,$e,Qe){for(var ut=0,mt=je.length;ut=Jo||an<=_s||an>=89.9999){pt[Ct]=Ka(en);for(var hn=Ct+1;hnso&&_n_s&&Pn<89.9999)break}if(hn===Ct+1)continue;if(Ct){var sr={index:-1,polygon:$e,ring:pt.slice(0,Ct+1)};sr.ring[sr.ring.length-1]=Oo(an),Qe[Qe.length-1]=sr}else Qe.pop();if(hn>=Qt)break;Qe.push({index:-1,polygon:$e,ring:pt=pt.slice(hn-1)}),pt[0]=Oo(pt[0][1]),Ct=-1,Qt=pt.length}}}}function Mc(je){var $e,Qe,ut,mt,pt,Ct,Qt=je.length,en={},Yt={};for($e=0;$e0?T-Qt:Qt)*O],Yt=a.geoProjection(je(Ct)).rotate(en),an=a.geoRotation(en),hn=Yt.center;return delete Yt.rotate,Yt.center=function(xn){return arguments.length?hn(an(xn)):an.invert(hn())},Yt.clipAngle(90)}function Ec(je){var $e=l(je);function Qe(ut,mt){var pt=a.geoGnomonicRaw(ut,mt);return pt[0]*=$e,pt}return Qe.invert=function(ut,mt){return a.geoGnomonicRaw.invert(ut/$e,mt)},Qe}function ac(je,$e){return Sc(Ec,je,$e)}function Cc(je){if(!(je*=2))return a.geoAzimuthalEquidistantRaw;var $e=-je/2,Qe=-$e,ut=je*je,mt=k(Qe),pt=.5/w(Qe);function Ct(Qt,en){var Yt=L(l(en)*l(Qt-$e)),an=L(l(en)*l(Qt-Qe));return[((Yt*=Yt)-(an*=an))/(2*je),(en<0?-1:1)*P(4*ut*an-(ut-Yt+an)*(ut-Yt+an))/(2*je)]}return Ct.invert=function(Qt,en){var Yt,an,hn=en*en,xn=l(P(hn+(Yt=Qt+$e)*Yt)),_n=l(P(hn+(Yt=Qt+Qe)*Yt));return[s(an=xn-_n,Yt=(xn+_n)*mt),(en<0?-1:1)*L(P(Yt*Yt+an*an)*pt)]},Ct}function Ns(je,$e){return Sc(Cc,je,$e)}function Bs(je,$e){if(c($e)b&&--Qt>0);return[x(je)*(P(mt*mt+4)+mt)*T/4,_*Ct]};var Uu=4*T+3*P(3),ds=2*P(2*T*P(3)/Uu),pl=ie(ds*P(3)/T,ds,Uu/6);function Vu(je,$e){return[je*P(1-3*$e*$e/(T*T)),$e]}function js(je,$e){var Qe=l($e),ut=l(je)*Qe,mt=1-ut,pt=l(je=s(w(je)*Qe,-w($e))),Ct=w(je);return[Ct*(Qe=P(1-ut*ut))-pt*mt,-pt*Qe-Ct*mt]}function ma(je,$e){var Qe=W(je,$e);return[(Qe[0]+je/_)/2,(Qe[1]+$e)/2]}Vu.invert=function(je,$e){return[je/P(1-3*$e*$e/(T*T)),$e]},js.invert=function(je,$e){var Qe=(je*je+$e*$e)/-2,ut=P(-Qe*(2+Qe)),mt=$e*Qe+je*ut,pt=je*Qe-$e*ut,Ct=P(pt*pt+mt*mt);return[s(ut*mt,Ct*(1+Qe)),Ct?-z(ut*pt/Ct):0]},ma.invert=function(je,$e){var Qe=je,ut=$e,mt=25;do{var pt,Ct=l(ut),Qt=w(ut),en=w(2*ut),Yt=Qt*Qt,an=Ct*Ct,hn=w(Qe),xn=l(Qe/2),_n=w(Qe/2),Pn=_n*_n,sr=1-an*xn*xn,mr=sr?L(Ct*xn)*P(pt=1/sr):pt=0,zr=.5*(2*mr*Ct*_n+Qe/_)-je,Br=.5*(mr*Qt+ut)-$e,Jr=.5*pt*(an*Pn+mr*Ct*xn*Yt)+.5/_,jr=pt*(hn*en/4-mr*Qt*_n),Oi=.125*pt*(en*_n-mr*Qt*an*hn),Ui=.5*pt*(Yt*xn+mr*Pn*Ct)+.5,ua=jr*Oi-Ui*Jr,sa=(Br*jr-zr*Ui)/ua,ca=(zr*Oi-Br*Jr)/ua;Qe-=sa,ut-=ca}while((c(sa)>b||c(ca)>b)&&--mt>0);return[Qe,ut]},r.geoNaturalEarth=a.geoNaturalEarth1,r.geoNaturalEarthRaw=a.geoNaturalEarth1Raw,r.geoAiry=function(){var je=_,$e=a.geoProjectionMutator(G),Qe=$e(je);return Qe.radius=function(ut){return arguments.length?$e(je=ut*R):je*O},Qe.scale(179.976).clipAngle(147)},r.geoAiryRaw=G,r.geoAitoff=function(){return a.geoProjection(W).scale(152.63)},r.geoAitoffRaw=W,r.geoArmadillo=function(){var je=20*R,$e=je>=0?1:-1,Qe=k($e*je),ut=a.geoProjectionMutator(K),mt=ut(je),pt=mt.stream;return mt.parallel=function(Ct){return arguments.length?(Qe=k(($e=(je=Ct*R)>=0?1:-1)*je),ut(je)):je*O},mt.stream=function(Ct){var Qt=mt.rotate(),en=pt(Ct),Yt=(mt.rotate([0,0]),pt(Ct)),an=mt.precision();return mt.rotate(Qt),en.sphere=function(){Yt.polygonStart(),Yt.lineStart();for(var hn=-180*$e;$e*hn<180;hn+=90*$e)Yt.point(hn,90*$e);if(je)for(;$e*(hn-=3*$e*an)>=-180;)Yt.point(hn,$e*-s(l(hn*R/2),Qe)*O);Yt.lineEnd(),Yt.polygonEnd()},en},mt.scale(218.695).center([0,28.0974])},r.geoArmadilloRaw=K,r.geoAugust=function(){return a.geoProjection(te).scale(66.1603)},r.geoAugustRaw=te,r.geoBaker=function(){return a.geoProjection(re).scale(112.314)},r.geoBakerRaw=re,r.geoBerghaus=function(){var je=5,$e=a.geoProjectionMutator(U),Qe=$e(je),ut=Qe.stream,mt=-l(.01*R),pt=w(.01*R);return Qe.lobes=function(Ct){return arguments.length?$e(je=+Ct):je},Qe.stream=function(Ct){var Qt=Qe.rotate(),en=ut(Ct),Yt=(Qe.rotate([0,0]),ut(Ct));return Qe.rotate(Qt),en.sphere=function(){Yt.polygonStart(),Yt.lineStart();for(var an=0,hn=360/je,xn=2*T/je,_n=90-180/je,Pn=_;an=0;)Ct.point((Qt=en[an])[0],Qt[1]);Ct.lineEnd(),Ct.polygonEnd()},Ct},Qe.scale(79.4187).parallel(45).clipAngle(179.999)},r.geoHammerRetroazimuthalRaw=tt,r.geoHealpix=function(){var je=4,$e=a.geoProjectionMutator(Dt),Qe=$e(je),ut=Qe.stream;return Qe.lobes=function(mt){return arguments.length?$e(je=+mt):je},Qe.stream=function(mt){var pt=Qe.rotate(),Ct=ut(mt),Qt=(Qe.rotate([0,0]),ut(mt));return Qe.rotate(pt),Ct.sphere=function(){var en,Yt;a.geoStream((en=180/je,Yt=[].concat(u.range(-180,180+en/2,en).map(Le),u.range(180,-180-en/2,-en).map(Je)),{type:"Polygon",coordinates:[en===180?Yt.map(st):Yt]}),Qt)},Ct},Qe.scale(239.75)},r.geoHealpixRaw=Dt,r.geoHill=function(){var je=1,$e=a.geoProjectionMutator(Et),Qe=$e(je);return Qe.ratio=function(ut){return arguments.length?$e(je=+ut):je},Qe.scale(167.774).center([0,18.67])},r.geoHillRaw=Et,r.geoHomolosine=function(){return a.geoProjection(Zt).scale(152.63)},r.geoHomolosineRaw=Zt,r.geoHufnagel=function(){var je=1,$e=0,Qe=45*R,ut=2,mt=a.geoProjectionMutator(Kt),pt=mt(je,$e,Qe,ut);return pt.a=function(Ct){return arguments.length?mt(je=+Ct,$e,Qe,ut):je},pt.b=function(Ct){return arguments.length?mt(je,$e=+Ct,Qe,ut):$e},pt.psiMax=function(Ct){return arguments.length?mt(je,$e,Qe=+Ct*R,ut):Qe*O},pt.ratio=function(Ct){return arguments.length?mt(je,$e,Qe,ut=+Ct):ut},pt.scale(180.739)},r.geoHufnagelRaw=Kt,r.geoHyperelliptical=function(){var je=0,$e=2.5,Qe=1.183136,ut=a.geoProjectionMutator(mn),mt=ut(je,$e,Qe);return mt.alpha=function(pt){return arguments.length?ut(je=+pt,$e,Qe):je},mt.k=function(pt){return arguments.length?ut(je,$e=+pt,Qe):$e},mt.gamma=function(pt){return arguments.length?ut(je,$e,Qe=+pt):Qe},mt.scale(152.63)},r.geoHyperellipticalRaw=mn,r.geoInterrupt=nn,r.geoInterruptedBoggs=function(){return nn(ge,sn).scale(160.857)},r.geoInterruptedHomolosine=function(){return nn(Zt,gn).scale(152.63)},r.geoInterruptedMollweide=function(){return nn(ae,bn).scale(169.529)},r.geoInterruptedMollweideHemispheres=function(){return nn(ae,In).scale(169.529).rotate([20,0])},r.geoInterruptedSinuMollweide=function(){return nn(It,Hn,H).rotate([-20,-55]).scale(164.263).center([0,-5.4036])},r.geoInterruptedSinusoidal=function(){return nn(me,Wn).scale(152.63).rotate([-20,0])},r.geoKavrayskiy7=function(){return a.geoProjection(ar).scale(158.837)},r.geoKavrayskiy7Raw=ar,r.geoLagrange=function(){var je=.5,$e=a.geoProjectionMutator(Or),Qe=$e(je);return Qe.spacing=function(ut){return arguments.length?$e(je=+ut):je},Qe.scale(124.75)},r.geoLagrangeRaw=Or,r.geoLarrivee=function(){return a.geoProjection(Er).scale(97.2672)},r.geoLarriveeRaw=Er,r.geoLaskowski=function(){return a.geoProjection(Kn).scale(139.98)},r.geoLaskowskiRaw=Kn,r.geoLittrow=function(){return a.geoProjection(Ln).scale(144.049).clipAngle(89.999)},r.geoLittrowRaw=Ln,r.geoLoximuthal=function(){return fe(lr).parallel(40).scale(158.837)},r.geoLoximuthalRaw=lr,r.geoMiller=function(){return a.geoProjection(Wr).scale(108.318)},r.geoMillerRaw=Wr,r.geoModifiedStereographic=pr,r.geoModifiedStereographicRaw=Mn,r.geoModifiedStereographicAlaska=function(){return pr(rr,[152,-64]).scale(1400).center([-160.908,62.4864]).clipAngle(30).angle(7.8)},r.geoModifiedStereographicGs48=function(){return pr(nr,[95,-38]).scale(1e3).clipAngle(55).center([-96.5563,38.8675])},r.geoModifiedStereographicGs50=function(){return pr(Bn,[120,-45]).scale(359.513).clipAngle(55).center([-117.474,53.0628])},r.geoModifiedStereographicMiller=function(){return pr(Fr,[-20,-18]).scale(209.091).center([20,16.7214]).clipAngle(82)},r.geoModifiedStereographicLee=function(){return pr($r,[165,10]).scale(250).clipAngle(130).center([-165,-10])},r.geoMollweide=function(){return a.geoProjection(ae).scale(169.529)},r.geoMollweideRaw=ae,r.geoMtFlatPolarParabolic=function(){return a.geoProjection(cn).scale(164.859)},r.geoMtFlatPolarParabolicRaw=cn,r.geoMtFlatPolarQuartic=function(){return a.geoProjection(jn).scale(188.209)},r.geoMtFlatPolarQuarticRaw=jn,r.geoMtFlatPolarSinusoidal=function(){return a.geoProjection(jt).scale(166.518)},r.geoMtFlatPolarSinusoidalRaw=jt,r.geoNaturalEarth2=function(){return a.geoProjection(fn).scale(175.295)},r.geoNaturalEarth2Raw=fn,r.geoNellHammer=function(){return a.geoProjection(yn).scale(152.63)},r.geoNellHammerRaw=yn,r.geoInterruptedQuarticAuthalic=function(){return nn(q(1/0),$n).rotate([20,0]).scale(152.63)},r.geoNicolosi=function(){return a.geoProjection(Un).scale(127.267)},r.geoNicolosiRaw=Un,r.geoPatterson=function(){return a.geoProjection(Nn).scale(139.319)},r.geoPattersonRaw=Nn,r.geoPolyconic=function(){return a.geoProjection(Rn).scale(103.74)},r.geoPolyconicRaw=Rn,r.geoPolyhedral=Zn,r.geoPolyhedralButterfly=function(je){je=je||function(Qe){var ut=a.geoCentroid({type:"MultiPoint",coordinates:Qe});return a.geoGnomonic().scale(1).translate([0,0]).rotate([-ut[0],-ut[1]])};var $e=xr.map(function(Qe){return{face:Qe,project:je(Qe)}});return[-1,0,0,1,0,1,4,5].forEach(function(Qe,ut){var mt=$e[Qe];mt&&(mt.children||(mt.children=[])).push($e[ut])}),Zn($e[0],function(Qe,ut){return $e[Qe<-T/2?ut<0?6:4:Qe<0?ut<0?2:0:Qe0?[-ut[0],0]:[180-ut[0],180])};var $e=xr.map(function(Qe){return{face:Qe,project:je(Qe)}});return[-1,0,0,1,0,1,4,5].forEach(function(Qe,ut){var mt=$e[Qe];mt&&(mt.children||(mt.children=[])).push($e[ut])}),Zn($e[0],function(Qe,ut){return $e[Qe<-T/2?ut<0?6:4:Qe<0?ut<0?2:0:Qe2||_n[0]!=an[0]||_n[1]!=an[1])&&(hn.push(_n),an=_n)}return hn.length===1&&Yt.length>1&&hn.push(Qe(Yt[Yt.length-1])),hn}function pt(Yt){return Yt.map(mt)}function Ct(Yt){if(Yt==null)return Yt;var an;switch(Yt.type){case"GeometryCollection":an={type:"GeometryCollection",geometries:Yt.geometries.map(Ct)};break;case"Point":an={type:"Point",coordinates:Qe(Yt.coordinates)};break;case"MultiPoint":an={type:Yt.type,coordinates:ut(Yt.coordinates)};break;case"LineString":an={type:Yt.type,coordinates:mt(Yt.coordinates)};break;case"MultiLineString":case"Polygon":an={type:Yt.type,coordinates:pt(Yt.coordinates)};break;case"MultiPolygon":an={type:"MultiPolygon",coordinates:Yt.coordinates.map(pt)};break;default:return Yt}return Yt.bbox!=null&&(an.bbox=Yt.bbox),an}function Qt(Yt){var an={type:"Feature",properties:Yt.properties,geometry:Ct(Yt.geometry)};return Yt.id!=null&&(an.id=Yt.id),Yt.bbox!=null&&(an.bbox=Yt.bbox),an}if(je!=null)switch(je.type){case"Feature":return Qt(je);case"FeatureCollection":var en={type:"FeatureCollection",features:je.features.map(Qt)};return je.bbox!=null&&(en.bbox=je.bbox),en;default:return Ct(je)}return je},r.geoQuincuncial=ya,r.geoRectangularPolyconic=function(){return fe(Zo).scale(131.215)},r.geoRectangularPolyconicRaw=Zo,r.geoRobinson=function(){return a.geoProjection(hs).scale(152.63)},r.geoRobinsonRaw=hs,r.geoSatellite=function(){var je=2,$e=0,Qe=a.geoProjectionMutator(bs),ut=Qe(je,$e);return ut.distance=function(mt){return arguments.length?Qe(je=+mt,$e):je},ut.tilt=function(mt){return arguments.length?Qe(je,$e=mt*R):$e*O},ut.scale(432.147).clipAngle(L(1/je)*O-1e-6)},r.geoSatelliteRaw=bs,r.geoSinuMollweide=function(){return a.geoProjection(It).rotate([-20,-55]).scale(164.263).center([0,-5.4036])},r.geoSinuMollweideRaw=It,r.geoSinusoidal=function(){return a.geoProjection(me).scale(152.63)},r.geoSinusoidalRaw=me,r.geoStitch=function(je){if(je==null)return je;switch(je.type){case"Feature":return ba(je);case"FeatureCollection":var $e={type:"FeatureCollection",features:je.features.map(ba)};return je.bbox!=null&&($e.bbox=je.bbox),$e;default:return ju(je)}},r.geoTimes=function(){return a.geoProjection(Wl).scale(146.153)},r.geoTimesRaw=Wl,r.geoTwoPointAzimuthal=ac,r.geoTwoPointAzimuthalRaw=Ec,r.geoTwoPointAzimuthalUsa=function(){return ac([-158,21.5],[-77,39]).clipAngle(60).scale(400)},r.geoTwoPointEquidistant=Ns,r.geoTwoPointEquidistantRaw=Cc,r.geoTwoPointEquidistantUsa=function(){return Ns([-158,21.5],[-77,39]).clipAngle(130).scale(122.571)},r.geoVanDerGrinten=function(){return a.geoProjection(Bs).scale(79.4183)},r.geoVanDerGrintenRaw=Bs,r.geoVanDerGrinten2=function(){return a.geoProjection(fl).scale(79.4183)},r.geoVanDerGrinten2Raw=fl,r.geoVanDerGrinten3=function(){return a.geoProjection(hl).scale(79.4183)},r.geoVanDerGrinten3Raw=hl,r.geoVanDerGrinten4=function(){return a.geoProjection(dl).scale(127.16)},r.geoVanDerGrinten4Raw=dl,r.geoWagner=ws,r.geoWagner7=function(){return ws().poleline(65).parallels(60).inflation(0).ratio(200).scale(172.633)},r.geoWagnerRaw=Yl,r.geoWagner4=function(){return a.geoProjection(pl).scale(176.84)},r.geoWagner4Raw=pl,r.geoWagner6=function(){return a.geoProjection(Vu).scale(152.63)},r.geoWagner6Raw=Vu,r.geoWiechel=function(){return a.geoProjection(js).rotate([0,-90,45]).scale(124.75).clipAngle(179.999)},r.geoWiechelRaw=js,r.geoWinkel3=function(){return a.geoProjection(ma).scale(158.837)},r.geoWinkel3Raw=ma,Object.defineProperty(r,"__esModule",{value:!0})})},{"d3-array":107,"d3-geo":114}],114:[function(e,o,f){(function(r,a){typeof f=="object"&&o!==void 0?a(f,e("d3-array")):a((r=r||self).d3=r.d3||{},r.d3)})(this,function(r,a){function u(){return new c}function c(){this.reset()}c.prototype={constructor:c,reset:function(){this.s=this.t=0},add:function(ht){s(i,ht,this.t),s(this,i.s,this.s),this.s?this.t+=i.t:this.s=i.t},valueOf:function(){return this.s}};var i=new c;function s(ht,Ft,ln){var $t=ht.s=Ft+ln,un=$t-Ft,On=$t-un;ht.t=Ft-On+(ln-un)}var l=1e-6,d=Math.PI,h=d/2,m=d/4,g=2*d,p=180/d,v=d/180,y=Math.abs,x=Math.atan,w=Math.atan2,k=Math.cos,b=Math.ceil,T=Math.exp,_=Math.log,M=Math.pow,A=Math.sin,S=Math.sign||function(ht){return ht>0?1:ht<0?-1:0},E=Math.sqrt,D=Math.tan;function O(ht){return ht>1?0:ht<-1?d:Math.acos(ht)}function R(ht){return ht>1?h:ht<-1?-h:Math.asin(ht)}function z(ht){return(ht=A(ht/2))*ht}function L(){}function P(ht,Ft){ht&&B.hasOwnProperty(ht.type)&&B[ht.type](ht,Ft)}var N={Feature:function(ht,Ft){P(ht.geometry,Ft)},FeatureCollection:function(ht,Ft){for(var ln=ht.features,$t=-1,un=ln.length;++$t=0?1:-1,un=$t*ln,On=k(Ft=(Ft*=v)/2+m),Fn=A(Ft),Jn=U*Fn,fr=re*On+Jn*k(un),ur=Jn*$t*A(un);q.add(w(ur,fr)),Z=ht,re=On,U=Fn}function ae(ht){return[w(ht[1],ht[0]),R(ht[2])]}function ue(ht){var Ft=ht[0],ln=ht[1],$t=k(ln);return[$t*k(Ft),$t*A(Ft),A(ln)]}function le(ht,Ft){return ht[0]*Ft[0]+ht[1]*Ft[1]+ht[2]*Ft[2]}function ge(ht,Ft){return[ht[1]*Ft[2]-ht[2]*Ft[1],ht[2]*Ft[0]-ht[0]*Ft[2],ht[0]*Ft[1]-ht[1]*Ft[0]]}function fe(ht,Ft){ht[0]+=Ft[0],ht[1]+=Ft[1],ht[2]+=Ft[2]}function me(ht,Ft){return[ht[0]*Ft,ht[1]*Ft,ht[2]*Ft]}function _e(ht){var Ft=E(ht[0]*ht[0]+ht[1]*ht[1]+ht[2]*ht[2]);ht[0]/=Ft,ht[1]/=Ft,ht[2]/=Ft}var we,Te,Oe,de,ye,Me,ke,Ee,ze,Fe,Ve,Ke,Re,qe,We,Ye,nt,ft,vt,Pt,At,at,et,Ot,Wt,Jt,Be=u(),Ge={point:Tt,lineStart:Pe,lineEnd:Ie,polygonStart:function(){Ge.point=Ae,Ge.lineStart=De,Ge.lineEnd=He,Be.reset(),ne.polygonStart()},polygonEnd:function(){ne.polygonEnd(),Ge.point=Tt,Ge.lineStart=Pe,Ge.lineEnd=Ie,q<0?(we=-(Oe=180),Te=-(de=90)):Be>l?de=90:Be<-l&&(Te=-90),Fe[0]=we,Fe[1]=Oe},sphere:function(){we=-(Oe=180),Te=-(de=90)}};function Tt(ht,Ft){ze.push(Fe=[we=ht,Oe=ht]),Ftde&&(de=Ft)}function dt(ht,Ft){var ln=ue([ht*v,Ft*v]);if(Ee){var $t=ge(Ee,ln),un=ge([$t[1],-$t[0],0],$t);_e(un),un=ae(un);var On,Fn=ht-ye,Jn=Fn>0?1:-1,fr=un[0]*p*Jn,ur=y(Fn)>180;ur^(Jn*yede&&(de=On):ur^(Jn*ye<(fr=(fr+360)%360-180)&&frde&&(de=Ft)),ur?htrt(we,Oe)&&(Oe=ht):rt(ht,Oe)>rt(we,Oe)&&(we=ht):Oe>=we?(htOe&&(Oe=ht)):ht>ye?rt(we,ht)>rt(we,Oe)&&(Oe=ht):rt(ht,Oe)>rt(we,Oe)&&(we=ht)}else ze.push(Fe=[we=ht,Oe=ht]);Ftde&&(de=Ft),Ee=ln,ye=ht}function Pe(){Ge.point=dt}function Ie(){Fe[0]=we,Fe[1]=Oe,Ge.point=Tt,Ee=null}function Ae(ht,Ft){if(Ee){var ln=ht-ye;Be.add(y(ln)>180?ln+(ln>0?360:-360):ln)}else Me=ht,ke=Ft;ne.point(ht,Ft),dt(ht,Ft)}function De(){ne.lineStart()}function He(){Ae(Me,ke),ne.lineEnd(),y(Be)>l&&(we=-(Oe=180)),Fe[0]=we,Fe[1]=Oe,Ee=null}function rt(ht,Ft){return(Ft-=ht)<0?Ft+360:Ft}function lt(ht,Ft){return ht[0]-Ft[0]}function ot(ht,Ft){return ht[0]<=ht[1]?ht[0]<=Ft&&Ft<=ht[1]:Ftd?ht+Math.round(-ht/g)*g:ht,Ft]}function Zt(ht,Ft,ln){return(ht%=g)?Ft||ln?Et(Ht(ht),mn(Ft,ln)):Ht(ht):Ft||ln?mn(Ft,ln):It}function Kt(ht){return function(Ft,ln){return[(Ft+=ht)>d?Ft-g:Ft<-d?Ft+g:Ft,ln]}}function Ht(ht){var Ft=Kt(ht);return Ft.invert=Kt(-ht),Ft}function mn(ht,Ft){var ln=k(ht),$t=A(ht),un=k(Ft),On=A(Ft);function Fn(Jn,fr){var ur=k(fr),yr=k(Jn)*ur,Tr=A(Jn)*ur,hr=A(fr),Ar=hr*ln+yr*$t;return[w(Tr*un-Ar*On,yr*ln-hr*$t),R(Ar*un+Tr*On)]}return Fn.invert=function(Jn,fr){var ur=k(fr),yr=k(Jn)*ur,Tr=A(Jn)*ur,hr=A(fr),Ar=hr*un-Tr*On;return[w(Tr*un+hr*On,yr*ln+Ar*$t),R(Ar*ln-yr*$t)]},Fn}function zn(ht){function Ft(ln){return(ln=ht(ln[0]*v,ln[1]*v))[0]*=p,ln[1]*=p,ln}return ht=Zt(ht[0]*v,ht[1]*v,ht.length>2?ht[2]*v:0),Ft.invert=function(ln){return(ln=ht.invert(ln[0]*v,ln[1]*v))[0]*=p,ln[1]*=p,ln},Ft}function pn(ht,Ft,ln,$t,un,On){if(ln){var Fn=k(Ft),Jn=A(Ft),fr=$t*ln;un==null?(un=Ft+$t*g,On=Ft-fr/2):(un=tn(Fn,un),On=tn(Fn,On),($t>0?unOn)&&(un+=$t*g));for(var ur,yr=un;$t>0?yr>On:yr1&&Ft.push(Ft.pop().concat(Ft.shift()))},result:function(){var ln=Ft;return Ft=[],ht=null,ln}}}function sn(ht,Ft){return y(ht[0]-Ft[0])=0;--On)un.point((yr=ur[On])[0],yr[1]);else $t(hr.x,hr.p.x,-1,un);hr=hr.p}ur=(hr=hr.o).z,Ar=!Ar}while(!hr.v);un.lineEnd()}}}function In(ht){if(Ft=ht.length){for(var Ft,ln,$t=0,un=ht[0];++$t=0?1:-1,ra=Lr*Ki,Ji=ra>d,Ci=Zr*fi;if(Hn.add(w(Ci*Lr*A(ra),mi*Ni+Ci*k(ra))),Fn+=Ji?Ki+Lr*g:Ki,Ji^Ar>=ln^Rr>=ln){var ia=ge(ue(hr),ue(di));_e(ia);var Wi=ge(On,ia);_e(Wi);var Ca=(Ji^Ki>=0?-1:1)*R(Wi[2]);($t>Ca||$t===Ca&&(ia[0]||ia[1]))&&(Jn+=Ji^Ki>=0?1:-1)}}return(Fn<-l||Fn0){for(Tr||(un.polygonStart(),Tr=!0),un.lineStart(),Gr=0;Gr1&&2&Lr&&ra.push(ra.pop().concat(ra.shift())),Fn.push(ra.filter(vr))}return hr}}function vr(ht){return ht.length>1}function Er(ht,Ft){return((ht=ht.x)[0]<0?ht[1]-h-l:h-ht[1])-((Ft=Ft.x)[0]<0?Ft[1]-h-l:h-Ft[1])}var Kn=Or(function(){return!0},function(ht){var Ft,ln=NaN,$t=NaN,un=NaN;return{lineStart:function(){ht.lineStart(),Ft=1},point:function(On,Fn){var Jn=On>0?d:-d,fr=y(On-ln);y(fr-d)0?h:-h),ht.point(un,$t),ht.lineEnd(),ht.lineStart(),ht.point(Jn,$t),ht.point(On,$t),Ft=0):un!==Jn&&fr>=d&&(y(ln-un)l?x((A(yr)*(Ur=k(hr))*A(Tr)-A(hr)*(Ar=k(yr))*A(ur))/(Ar*Ur*Zr)):(yr+hr)/2}(ln,$t,On,Fn),ht.point(un,$t),ht.lineEnd(),ht.lineStart(),ht.point(Jn,$t),Ft=0),ht.point(ln=On,$t=Fn),un=Jn},lineEnd:function(){ht.lineEnd(),ln=$t=NaN},clean:function(){return 2-Ft}}},function(ht,Ft,ln,$t){var un;if(ht==null)un=ln*h,$t.point(-d,un),$t.point(0,un),$t.point(d,un),$t.point(d,0),$t.point(d,-un),$t.point(0,-un),$t.point(-d,-un),$t.point(-d,0),$t.point(-d,un);else if(y(ht[0]-Ft[0])>l){var On=ht[0]0,un=y(Ft)>l;function On(fr,ur){return k(fr)*k(ur)>Ft}function Fn(fr,ur,yr){var Tr=[1,0,0],hr=ge(ue(fr),ue(ur)),Ar=le(hr,hr),Ur=hr[0],Zr=Ar-Ur*Ur;if(!Zr)return!yr&&fr;var mi=Ft*Ar/Zr,Qn=-Ft*Ur/Zr,di=ge(Tr,hr),Rr=me(Tr,mi);fe(Rr,me(hr,Qn));var Gr=di,fi=le(Rr,Gr),Ni=le(Gr,Gr),Ki=fi*fi-Ni*(le(Rr,Rr)-1);if(!(Ki<0)){var Lr=E(Ki),ra=me(Gr,(-fi-Lr)/Ni);if(fe(ra,Rr),ra=ae(ra),!yr)return ra;var Ji,Ci=fr[0],ia=ur[0],Wi=fr[1],Ca=ur[1];ia0^ra[1]<(y(ra[0]-Ci)d^(Ci<=ra[0]&&ra[0]<=ia)){var Po=me(Gr,(-fi+Lr)/Ni);return fe(Po,Rr),[ra,ae(Po)]}}}function Jn(fr,ur){var yr=$t?ht:d-ht,Tr=0;return fr<-yr?Tr|=1:fr>yr&&(Tr|=2),ur<-yr?Tr|=4:ur>yr&&(Tr|=8),Tr}return Or(On,function(fr){var ur,yr,Tr,hr,Ar;return{lineStart:function(){hr=Tr=!1,Ar=1},point:function(Ur,Zr){var mi,Qn=[Ur,Zr],di=On(Ur,Zr),Rr=$t?di?0:Jn(Ur,Zr):di?Jn(Ur+(Ur<0?d:-d),Zr):0;if(!ur&&(hr=Tr=di)&&fr.lineStart(),di!==Tr&&(!(mi=Fn(ur,Qn))||sn(ur,mi)||sn(Qn,mi))&&(Qn[2]=1),di!==Tr)Ar=0,di?(fr.lineStart(),mi=Fn(Qn,ur),fr.point(mi[0],mi[1])):(mi=Fn(ur,Qn),fr.point(mi[0],mi[1],2),fr.lineEnd()),ur=mi;else if(un&&ur&&$t^di){var Gr;Rr&yr||!(Gr=Fn(Qn,ur,!0))||(Ar=0,$t?(fr.lineStart(),fr.point(Gr[0][0],Gr[0][1]),fr.point(Gr[1][0],Gr[1][1]),fr.lineEnd()):(fr.point(Gr[1][0],Gr[1][1]),fr.lineEnd(),fr.lineStart(),fr.point(Gr[0][0],Gr[0][1],3)))}!di||ur&&sn(ur,Qn)||fr.point(Qn[0],Qn[1]),ur=Qn,Tr=di,yr=Rr},lineEnd:function(){Tr&&fr.lineEnd(),ur=null},clean:function(){return Ar|(hr&&Tr)<<1}}},function(fr,ur,yr,Tr){pn(Tr,ht,ln,yr,fr,ur)},$t?[0,-ht]:[-d,ht-d])}function lr(ht,Ft,ln,$t){function un(ur,yr){return ht<=ur&&ur<=ln&&Ft<=yr&&yr<=$t}function On(ur,yr,Tr,hr){var Ar=0,Ur=0;if(ur==null||(Ar=Fn(ur,Tr))!==(Ur=Fn(yr,Tr))||fr(ur,yr)<0^Tr>0)do hr.point(Ar===0||Ar===3?ht:ln,Ar>1?$t:Ft);while((Ar=(Ar+Tr+4)%4)!==Ur);else hr.point(yr[0],yr[1])}function Fn(ur,yr){return y(ur[0]-ht)0?0:3:y(ur[0]-ln)0?2:1:y(ur[1]-Ft)0?1:0:yr>0?3:2}function Jn(ur,yr){return fr(ur.x,yr.x)}function fr(ur,yr){var Tr=Fn(ur,1),hr=Fn(yr,1);return Tr!==hr?Tr-hr:Tr===0?yr[1]-ur[1]:Tr===1?ur[0]-yr[0]:Tr===2?ur[1]-yr[1]:yr[0]-ur[0]}return function(ur){var yr,Tr,hr,Ar,Ur,Zr,mi,Qn,di,Rr,Gr,fi=ur,Ni=nn(),Ki={point:Lr,lineStart:function(){Ki.point=ra,Tr&&Tr.push(hr=[]),Rr=!0,di=!1,mi=Qn=NaN},lineEnd:function(){yr&&(ra(Ar,Ur),Zr&&di&&Ni.rejoin(),yr.push(Ni.result())),Ki.point=Lr,di&&fi.lineEnd()},polygonStart:function(){fi=Ni,yr=[],Tr=[],Gr=!0},polygonEnd:function(){var Ji=function(){for(var Wi=0,Ca=0,pi=Tr.length;Ca$t&&(Qa-_a)*($t-Po)>(Ts-Po)*(ht-_a)&&++Wi:Ts<=$t&&(Qa-_a)*($t-Po)<(Ts-Po)*(ht-_a)&&--Wi;return Wi}(),Ci=Gr&&Ji,ia=(yr=a.merge(yr)).length;(Ci||ia)&&(ur.polygonStart(),Ci&&(ur.lineStart(),On(null,null,1,ur),ur.lineEnd()),ia&&bn(yr,Jn,Ji,On,ur),ur.polygonEnd()),fi=ur,yr=Tr=hr=null}};function Lr(Ji,Ci){un(Ji,Ci)&&fi.point(Ji,Ci)}function ra(Ji,Ci){var ia=un(Ji,Ci);if(Tr&&hr.push([Ji,Ci]),Rr)Ar=Ji,Ur=Ci,Zr=ia,Rr=!1,ia&&(fi.lineStart(),fi.point(Ji,Ci));else if(ia&&di)fi.point(Ji,Ci);else{var Wi=[mi=Math.max(-1e9,Math.min(1e9,mi)),Qn=Math.max(-1e9,Math.min(1e9,Qn))],Ca=[Ji=Math.max(-1e9,Math.min(1e9,Ji)),Ci=Math.max(-1e9,Math.min(1e9,Ci))];(function(pi,_a,Po,Al,Zs,ks){var Pi,Qa=pi[0],Ts=pi[1],wa=0,uo=1,jo=_a[0]-Qa,La=_a[1]-Ts;if(Pi=Po-Qa,jo||!(Pi>0)){if(Pi/=jo,jo<0){if(Pi0){if(Pi>uo)return;Pi>wa&&(wa=Pi)}if(Pi=Zs-Qa,jo||!(Pi<0)){if(Pi/=jo,jo<0){if(Pi>uo)return;Pi>wa&&(wa=Pi)}else if(jo>0){if(Pi0)){if(Pi/=La,La<0){if(Pi0){if(Pi>uo)return;Pi>wa&&(wa=Pi)}if(Pi=ks-Ts,La||!(Pi<0)){if(Pi/=La,La<0){if(Pi>uo)return;Pi>wa&&(wa=Pi)}else if(La>0){if(Pi0&&(pi[0]=Qa+wa*jo,pi[1]=Ts+wa*La),uo<1&&(_a[0]=Qa+uo*jo,_a[1]=Ts+uo*La),!0}}}}})(Wi,Ca,ht,Ft,ln,$t)?(di||(fi.lineStart(),fi.point(Wi[0],Wi[1])),fi.point(Ca[0],Ca[1]),ia||fi.lineEnd(),Gr=!1):ia&&(fi.lineStart(),fi.point(Ji,Ci),Gr=!1)}mi=Ji,Qn=Ci,di=ia}return Ki}}var Wr,Mn,rr,nr=u(),Bn={sphere:L,point:L,lineStart:function(){Bn.point=$r,Bn.lineEnd=Fr},lineEnd:L,polygonStart:L,polygonEnd:L};function Fr(){Bn.point=Bn.lineEnd=L}function $r(ht,Ft){Wr=ht*=v,Mn=A(Ft*=v),rr=k(Ft),Bn.point=pr}function pr(ht,Ft){ht*=v;var ln=A(Ft*=v),$t=k(Ft),un=y(ht-Wr),On=k(un),Fn=$t*A(un),Jn=rr*ln-Mn*$t*On,fr=Mn*ln+rr*$t*On;nr.add(w(E(Fn*Fn+Jn*Jn),fr)),Wr=ht,Mn=ln,rr=$t}function qr(ht){return nr.reset(),K(ht,Bn),+nr}var _i=[null,null],cn={type:"LineString",coordinates:_i};function jn(ht,Ft){return _i[0]=ht,_i[1]=Ft,qr(cn)}var jt={Feature:function(ht,Ft){return yn(ht.geometry,Ft)},FeatureCollection:function(ht,Ft){for(var ln=ht.features,$t=-1,un=ln.length;++$t0&&(un=jn(ht[On],ht[On-1]))>0&&ln<=un&&$t<=un&&(ln+$t-un)*(1-Math.pow((ln-$t)/un,2))<1e-12*un)return!0;ln=$t}return!1}function Nn(ht,Ft){return!!ar(ht.map(Rn),wn(Ft))}function Rn(ht){return(ht=ht.map(wn)).pop(),ht}function wn(ht){return[ht[0]*v,ht[1]*v]}function kn(ht,Ft,ln){var $t=a.range(ht,Ft-l,ln).concat(Ft);return function(un){return $t.map(function(On){return[un,On]})}}function Tn(ht,Ft,ln){var $t=a.range(ht,Ft-l,ln).concat(Ft);return function(un){return $t.map(function(On){return[On,un]})}}function Dn(){var ht,Ft,ln,$t,un,On,Fn,Jn,fr,ur,yr,Tr,hr=10,Ar=hr,Ur=90,Zr=360,mi=2.5;function Qn(){return{type:"MultiLineString",coordinates:di()}}function di(){return a.range(b($t/Ur)*Ur,ln,Ur).map(yr).concat(a.range(b(Jn/Zr)*Zr,Fn,Zr).map(Tr)).concat(a.range(b(Ft/hr)*hr,ht,hr).filter(function(Rr){return y(Rr%Ur)>l}).map(fr)).concat(a.range(b(On/Ar)*Ar,un,Ar).filter(function(Rr){return y(Rr%Zr)>l}).map(ur))}return Qn.lines=function(){return di().map(function(Rr){return{type:"LineString",coordinates:Rr}})},Qn.outline=function(){return{type:"Polygon",coordinates:[yr($t).concat(Tr(Fn).slice(1),yr(ln).reverse().slice(1),Tr(Jn).reverse().slice(1))]}},Qn.extent=function(Rr){return arguments.length?Qn.extentMajor(Rr).extentMinor(Rr):Qn.extentMinor()},Qn.extentMajor=function(Rr){return arguments.length?($t=+Rr[0][0],ln=+Rr[1][0],Jn=+Rr[0][1],Fn=+Rr[1][1],$t>ln&&(Rr=$t,$t=ln,ln=Rr),Jn>Fn&&(Rr=Jn,Jn=Fn,Fn=Rr),Qn.precision(mi)):[[$t,Jn],[ln,Fn]]},Qn.extentMinor=function(Rr){return arguments.length?(Ft=+Rr[0][0],ht=+Rr[1][0],On=+Rr[0][1],un=+Rr[1][1],Ft>ht&&(Rr=Ft,Ft=ht,ht=Rr),On>un&&(Rr=On,On=un,un=Rr),Qn.precision(mi)):[[Ft,On],[ht,un]]},Qn.step=function(Rr){return arguments.length?Qn.stepMajor(Rr).stepMinor(Rr):Qn.stepMinor()},Qn.stepMajor=function(Rr){return arguments.length?(Ur=+Rr[0],Zr=+Rr[1],Qn):[Ur,Zr]},Qn.stepMinor=function(Rr){return arguments.length?(hr=+Rr[0],Ar=+Rr[1],Qn):[hr,Ar]},Qn.precision=function(Rr){return arguments.length?(mi=+Rr,fr=kn(On,un,90),ur=Tn(Ft,ht,mi),yr=kn(Jn,Fn,90),Tr=Tn($t,ln,mi),Qn):mi},Qn.extentMajor([[-180,-90+l],[180,90-l]]).extentMinor([[-180,-80-l],[180,80+l]])}function Zn(ht){return ht}var Yn,ir,or,xr,wr=u(),kr=u(),Dr={point:L,lineStart:L,lineEnd:L,polygonStart:function(){Dr.lineStart=Nr,Dr.lineEnd=Bi},polygonEnd:function(){Dr.lineStart=Dr.lineEnd=Dr.point=L,wr.add(y(kr)),kr.reset()},result:function(){var ht=wr/2;return wr.reset(),ht}};function Nr(){Dr.point=ri}function ri(ht,Ft){Dr.point=ji,Yn=or=ht,ir=xr=Ft}function ji(ht,Ft){kr.add(xr*ht-or*Ft),or=ht,xr=Ft}function Bi(){ji(Yn,ir)}var Sr=1/0,ui=Sr,si=-Sr,ta=si,Ja={point:function(ht,Ft){htsi&&(si=ht),Ftta&&(ta=Ft)},lineStart:L,lineEnd:L,polygonStart:L,polygonEnd:L,result:function(){var ht=[[Sr,ui],[si,ta]];return si=ta=-(ui=Sr=1/0),ht}},Ao,fs,ya,xa,Zo=0,oa=0,hs=0,bs=0,so=0,Jo=0,_s=0,Ls=0,Oo=0,Ka={point:$o,lineStart:ic,lineEnd:ju,polygonStart:function(){Ka.lineStart=Wl,Ka.lineEnd=Sc},polygonEnd:function(){Ka.point=$o,Ka.lineStart=ic,Ka.lineEnd=ju},result:function(){var ht=Oo?[_s/Oo,Ls/Oo]:Jo?[bs/Jo,so/Jo]:hs?[Zo/hs,oa/hs]:[NaN,NaN];return Zo=oa=hs=bs=so=Jo=_s=Ls=Oo=0,ht}};function $o(ht,Ft){Zo+=ht,oa+=Ft,++hs}function ic(){Ka.point=Mc}function Mc(ht,Ft){Ka.point=ba,$o(ya=ht,xa=Ft)}function ba(ht,Ft){var ln=ht-ya,$t=Ft-xa,un=E(ln*ln+$t*$t);bs+=un*(ya+ht)/2,so+=un*(xa+Ft)/2,Jo+=un,$o(ya=ht,xa=Ft)}function ju(){Ka.point=$o}function Wl(){Ka.point=Ec}function Sc(){ac(Ao,fs)}function Ec(ht,Ft){Ka.point=ac,$o(Ao=ya=ht,fs=xa=Ft)}function ac(ht,Ft){var ln=ht-ya,$t=Ft-xa,un=E(ln*ln+$t*$t);bs+=un*(ya+ht)/2,so+=un*(xa+Ft)/2,Jo+=un,_s+=(un=xa*ht-ya*Ft)*(ya+ht),Ls+=un*(xa+Ft),Oo+=3*un,$o(ya=ht,xa=Ft)}function Cc(ht){this._context=ht}Cc.prototype={_radius:4.5,pointRadius:function(ht){return this._radius=ht,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){this._line===0&&this._context.closePath(),this._point=NaN},point:function(ht,Ft){switch(this._point){case 0:this._context.moveTo(ht,Ft),this._point=1;break;case 1:this._context.lineTo(ht,Ft);break;default:this._context.moveTo(ht+this._radius,Ft),this._context.arc(ht,Ft,this._radius,0,g)}},result:L};var Ns,Bs,fl,hl,dl,Yl=u(),ws={point:L,lineStart:function(){ws.point=Uu},lineEnd:function(){Ns&&ds(Bs,fl),ws.point=L},polygonStart:function(){Ns=!0},polygonEnd:function(){Ns=null},result:function(){var ht=+Yl;return Yl.reset(),ht}};function Uu(ht,Ft){ws.point=ds,Bs=hl=ht,fl=dl=Ft}function ds(ht,Ft){hl-=ht,dl-=Ft,Yl.add(E(hl*hl+dl*dl)),hl=ht,dl=Ft}function pl(){this._string=[]}function Vu(ht){return"m0,"+ht+"a"+ht+","+ht+" 0 1,1 0,"+-2*ht+"a"+ht+","+ht+" 0 1,1 0,"+2*ht+"z"}function js(ht){return function(Ft){var ln=new ma;for(var $t in ht)ln[$t]=ht[$t];return ln.stream=Ft,ln}}function ma(){}function je(ht,Ft,ln){var $t=ht.clipExtent&&ht.clipExtent();return ht.scale(150).translate([0,0]),$t!=null&&ht.clipExtent(null),K(ln,ht.stream(Ja)),Ft(Ja.result()),$t!=null&&ht.clipExtent($t),ht}function $e(ht,Ft,ln){return je(ht,function($t){var un=Ft[1][0]-Ft[0][0],On=Ft[1][1]-Ft[0][1],Fn=Math.min(un/($t[1][0]-$t[0][0]),On/($t[1][1]-$t[0][1])),Jn=+Ft[0][0]+(un-Fn*($t[1][0]+$t[0][0]))/2,fr=+Ft[0][1]+(On-Fn*($t[1][1]+$t[0][1]))/2;ht.scale(150*Fn).translate([Jn,fr])},ln)}function Qe(ht,Ft,ln){return $e(ht,[[0,0],Ft],ln)}function ut(ht,Ft,ln){return je(ht,function($t){var un=+Ft,On=un/($t[1][0]-$t[0][0]),Fn=(un-On*($t[1][0]+$t[0][0]))/2,Jn=-On*$t[0][1];ht.scale(150*On).translate([Fn,Jn])},ln)}function mt(ht,Ft,ln){return je(ht,function($t){var un=+Ft,On=un/($t[1][1]-$t[0][1]),Fn=-On*$t[0][0],Jn=(un-On*($t[1][1]+$t[0][1]))/2;ht.scale(150*On).translate([Fn,Jn])},ln)}pl.prototype={_radius:4.5,_circle:Vu(4.5),pointRadius:function(ht){return(ht=+ht)!==this._radius&&(this._radius=ht,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){this._line===0&&this._string.push("Z"),this._point=NaN},point:function(ht,Ft){switch(this._point){case 0:this._string.push("M",ht,",",Ft),this._point=1;break;case 1:this._string.push("L",ht,",",Ft);break;default:this._circle==null&&(this._circle=Vu(this._radius)),this._string.push("M",ht,",",Ft,this._circle)}},result:function(){if(this._string.length){var ht=this._string.join("");return this._string=[],ht}return null}},ma.prototype={constructor:ma,point:function(ht,Ft){this.stream.point(ht,Ft)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var pt=k(30*v);function Ct(ht,Ft){return+Ft?function(ln,$t){function un(On,Fn,Jn,fr,ur,yr,Tr,hr,Ar,Ur,Zr,mi,Qn,di){var Rr=Tr-On,Gr=hr-Fn,fi=Rr*Rr+Gr*Gr;if(fi>4*$t&&Qn--){var Ni=fr+Ur,Ki=ur+Zr,Lr=yr+mi,ra=E(Ni*Ni+Ki*Ki+Lr*Lr),Ji=R(Lr/=ra),Ci=y(y(Lr)-1)$t||y((Rr*pi+Gr*_a)/fi-.5)>.3||fr*Ur+ur*Zr+yr*mi2?pi[2]%360*v:0,Wi()):[mi*p,Qn*p,di*p]},Ci.angle=function(pi){return arguments.length?(Rr=pi%360*v,Wi()):Rr*p},Ci.reflectX=function(pi){return arguments.length?(Gr=pi?-1:1,Wi()):Gr<0},Ci.reflectY=function(pi){return arguments.length?(fi=pi?-1:1,Wi()):fi<0},Ci.precision=function(pi){return arguments.length?(Fn=Ct(Jn,Ji=pi*pi),Ca()):E(Ji)},Ci.fitExtent=function(pi,_a){return $e(Ci,pi,_a)},Ci.fitSize=function(pi,_a){return Qe(Ci,pi,_a)},Ci.fitWidth=function(pi,_a){return ut(Ci,pi,_a)},Ci.fitHeight=function(pi,_a){return mt(Ci,pi,_a)},function(){return Ft=ht.apply(this,arguments),Ci.invert=Ft.invert&&ia,Wi()}}function xn(ht){var Ft=0,ln=d/3,$t=hn(ht),un=$t(Ft,ln);return un.parallels=function(On){return arguments.length?$t(Ft=On[0]*v,ln=On[1]*v):[Ft*p,ln*p]},un}function _n(ht,Ft){var ln=A(ht),$t=(ln+A(Ft))/2;if(y($t)0?Jn<-h+l&&(Jn=-h+l):Jn>h-l&&(Jn=h-l);var fr=un/M(Ui(Jn),$t);return[fr*A($t*Fn),un-fr*k($t*Fn)]}return On.invert=function(Fn,Jn){var fr=un-Jn,ur=S($t)*E(Fn*Fn+fr*fr),yr=w(Fn,y(fr))*S(fr);return fr*$t<0&&(yr-=d*S(Fn)*S(fr)),[yr/$t,2*x(M(un/ur,1/$t))-h]},On}function sa(ht,Ft){return[ht,Ft]}function ca(ht,Ft){var ln=k(ht),$t=ht===Ft?A(ht):(ln-k(Ft))/(Ft-ht),un=ln/$t+ht;if(y($t)l&&--un>0);return[ht/(.8707+(On=$t*$t)*(On*(On*On*On*(.003971-.001529*On)-.013791)-.131979)),$t]},es.invert=zr(R),ts.invert=zr(function(ht){return 2*x(ht)}),na.invert=function(ht,Ft){return[-Ft,2*x(T(ht))-h]},r.geoAlbers=sr,r.geoAlbersUsa=function(){var ht,Ft,ln,$t,un,On,Fn=sr(),Jn=Pn().rotate([154,0]).center([-2,58.5]).parallels([55,65]),fr=Pn().rotate([157,0]).center([-3,19.9]).parallels([8,18]),ur={point:function(hr,Ar){On=[hr,Ar]}};function yr(hr){var Ar=hr[0],Ur=hr[1];return On=null,ln.point(Ar,Ur),On||($t.point(Ar,Ur),On)||(un.point(Ar,Ur),On)}function Tr(){return ht=Ft=null,yr}return yr.invert=function(hr){var Ar=Fn.scale(),Ur=Fn.translate(),Zr=(hr[0]-Ur[0])/Ar,mi=(hr[1]-Ur[1])/Ar;return(mi>=.12&&mi<.234&&Zr>=-.425&&Zr<-.214?Jn:mi>=.166&&mi<.234&&Zr>=-.214&&Zr<-.115?fr:Fn).invert(hr)},yr.stream=function(hr){return ht&&Ft===hr?ht:(Ar=[Fn.stream(Ft=hr),Jn.stream(hr),fr.stream(hr)],Ur=Ar.length,ht={point:function(Zr,mi){for(var Qn=-1;++Qnrt($t[0],$t[1])&&($t[1]=un[1]),rt(un[0],$t[1])>rt($t[0],$t[1])&&($t[0]=un[0])):On.push($t=un);for(Fn=-1/0,Ft=0,$t=On[ln=On.length-1];Ft<=ln;$t=un,++Ft)un=On[Ft],(Jn=rt($t[1],un[0]))>Fn&&(Fn=Jn,we=un[0],Oe=$t[1])}return ze=Fe=null,we===1/0||Te===1/0?[[NaN,NaN],[NaN,NaN]]:[[we,Te],[Oe,de]]},r.geoCentroid=function(ht){Ve=Ke=Re=qe=We=Ye=nt=ft=vt=Pt=At=0,K(ht,kt);var Ft=vt,ln=Pt,$t=At,un=Ft*Ft+ln*ln+$t*$t;return un<1e-12&&(Ft=Ye,ln=nt,$t=ft,Ke2?$t[2]+90:90]):[($t=ln())[0],$t[1],$t[2]-90]},ln([0,0,90]).scale(159.155)},r.geoTransverseMercatorRaw=na,Object.defineProperty(r,"__esModule",{value:!0})})},{"d3-array":107}],115:[function(e,o,f){(function(r,a){a(typeof f=="object"&&o!==void 0?f:(r=r||self).d3=r.d3||{})})(this,function(r){function a(le,ge){return le.parent===ge.parent?1:2}function u(le,ge){return le+ge.x}function c(le,ge){return Math.max(le,ge.y)}function i(le){var ge=0,fe=le.children,me=fe&&fe.length;if(me)for(;--me>=0;)ge+=fe[me].value;else ge=1;le.value=ge}function s(le,ge){var fe,me,_e,we,Te,Oe=new m(le),de=+le.value&&(Oe.value=le.value),ye=[Oe];for(ge==null&&(ge=l);fe=ye.pop();)if(de&&(fe.value=+fe.data.value),(_e=ge(fe.data))&&(Te=_e.length))for(fe.children=new Array(Te),we=Te-1;we>=0;--we)ye.push(me=fe.children[we]=new m(_e[we])),me.parent=fe,me.depth=fe.depth+1;return Oe.eachBefore(h)}function l(le){return le.children}function d(le){le.data=le.data.data}function h(le){var ge=0;do le.height=ge;while((le=le.parent)&&le.height<++ge)}function m(le){this.data=le,this.depth=this.height=0,this.parent=null}m.prototype=s.prototype={constructor:m,count:function(){return this.eachAfter(i)},each:function(le){var ge,fe,me,_e,we=this,Te=[we];do for(ge=Te.reverse(),Te=[];we=ge.pop();)if(le(we),fe=we.children)for(me=0,_e=fe.length;me<_e;++me)Te.push(fe[me]);while(Te.length);return this},eachAfter:function(le){for(var ge,fe,me,_e=this,we=[_e],Te=[];_e=we.pop();)if(Te.push(_e),ge=_e.children)for(fe=0,me=ge.length;fe=0;--fe)_e.push(ge[fe]);return this},sum:function(le){return this.eachAfter(function(ge){for(var fe=+le(ge.data)||0,me=ge.children,_e=me&&me.length;--_e>=0;)fe+=me[_e].value;ge.value=fe})},sort:function(le){return this.eachBefore(function(ge){ge.children&&ge.children.sort(le)})},path:function(le){for(var ge=this,fe=function(we,Te){if(we===Te)return we;var Oe=we.ancestors(),de=Te.ancestors(),ye=null;for(we=Oe.pop(),Te=de.pop();we===Te;)ye=we,we=Oe.pop(),Te=de.pop();return ye}(ge,le),me=[ge];ge!==fe;)ge=ge.parent,me.push(ge);for(var _e=me.length;le!==fe;)me.splice(_e,0,le),le=le.parent;return me},ancestors:function(){for(var le=this,ge=[le];le=le.parent;)ge.push(le);return ge},descendants:function(){var le=[];return this.each(function(ge){le.push(ge)}),le},leaves:function(){var le=[];return this.eachBefore(function(ge){ge.children||le.push(ge)}),le},links:function(){var le=this,ge=[];return le.each(function(fe){fe!==le&&ge.push({source:fe.parent,target:fe})}),ge},copy:function(){return s(this).eachBefore(d)}};var g=Array.prototype.slice;function p(le){for(var ge,fe,me=0,_e=(le=function(Te){for(var Oe,de,ye=Te.length;ye;)de=Math.random()*ye--|0,Oe=Te[ye],Te[ye]=Te[de],Te[de]=Oe;return Te}(g.call(le))).length,we=[];me<_e;)ge=le[me],fe&&x(fe,ge)?++me:(fe=k(we=v(we,ge)),me=0);return fe}function v(le,ge){var fe,me;if(w(ge,le))return[ge];for(fe=0;fe0&&fe*fe>me*me+_e*_e}function w(le,ge){for(var fe=0;fe(Te*=Te)?(me=(ye+Te-_e)/(2*ye),we=Math.sqrt(Math.max(0,Te/ye-me*me)),fe.x=le.x-me*Oe-we*de,fe.y=le.y-me*de+we*Oe):(me=(ye+_e-Te)/(2*ye),we=Math.sqrt(Math.max(0,_e/ye-me*me)),fe.x=ge.x+me*Oe-we*de,fe.y=ge.y+me*de+we*Oe)):(fe.x=ge.x+fe.r,fe.y=ge.y)}function M(le,ge){var fe=le.r+ge.r-1e-6,me=ge.x-le.x,_e=ge.y-le.y;return fe>0&&fe*fe>me*me+_e*_e}function A(le){var ge=le._,fe=le.next._,me=ge.r+fe.r,_e=(ge.x*fe.r+fe.x*ge.r)/me,we=(ge.y*fe.r+fe.y*ge.r)/me;return _e*_e+we*we}function S(le){this._=le,this.next=null,this.previous=null}function E(le){if(!(_e=le.length))return 0;var ge,fe,me,_e,we,Te,Oe,de,ye,Me,ke;if((ge=le[0]).x=0,ge.y=0,!(_e>1))return ge.r;if(fe=le[1],ge.x=-fe.r,fe.x=ge.r,fe.y=0,!(_e>2))return ge.r+fe.r;_(fe,ge,me=le[2]),ge=new S(ge),fe=new S(fe),me=new S(me),ge.next=me.previous=fe,fe.next=ge.previous=me,me.next=fe.previous=ge;e:for(Oe=3;Oe<_e;++Oe){_(ge._,fe._,me=le[Oe]),me=new S(me),de=fe.next,ye=ge.previous,Me=fe._.r,ke=ge._.r;do if(Me<=ke){if(M(de._,me._)){fe=de,ge.next=fe,fe.previous=ge,--Oe;continue e}Me+=de._.r,de=de.next}else{if(M(ye._,me._)){(ge=ye).next=fe,fe.previous=ge,--Oe;continue e}ke+=ye._.r,ye=ye.previous}while(de!==ye.next);for(me.previous=ge,me.next=fe,ge.next=fe.previous=fe=me,we=A(ge);(me=me.next)!==fe;)(Te=A(me))Ee&&(Ee=Oe),Ke=Me*Me*Ve,(ze=Math.max(Ee/Ke,Ke/ke))>Fe){Me-=Oe;break}Fe=ze}Re.push(Te={value:Me,dice:de1?me:1)},fe}(ee),ue=function le(ge){function fe(me,_e,we,Te,Oe){if((de=me._squarify)&&de.ratio===ge)for(var de,ye,Me,ke,Ee,ze=-1,Fe=de.length,Ve=me.value;++ze1?me:1)},fe}(ee);r.cluster=function(){var le=a,ge=1,fe=1,me=!1;function _e(we){var Te,Oe=0;we.eachAfter(function(Ee){var ze=Ee.children;ze?(Ee.x=function(Fe){return Fe.reduce(u,0)/Fe.length}(ze),Ee.y=function(Fe){return 1+Fe.reduce(c,0)}(ze)):(Ee.x=Te?Oe+=le(Ee,Te):0,Ee.y=0,Te=Ee)});var de=function(Ee){for(var ze;ze=Ee.children;)Ee=ze[0];return Ee}(we),ye=function(Ee){for(var ze;ze=Ee.children;)Ee=ze[ze.length-1];return Ee}(we),Me=de.x-le(de,ye)/2,ke=ye.x+le(ye,de)/2;return we.eachAfter(me?function(Ee){Ee.x=(Ee.x-we.x)*ge,Ee.y=(we.y-Ee.y)*fe}:function(Ee){Ee.x=(Ee.x-Me)/(ke-Me)*ge,Ee.y=(1-(we.y?Ee.y/we.y:1))*fe})}return _e.separation=function(we){return arguments.length?(le=we,_e):le},_e.size=function(we){return arguments.length?(me=!1,ge=+we[0],fe=+we[1],_e):me?null:[ge,fe]},_e.nodeSize=function(we){return arguments.length?(me=!0,ge=+we[0],fe=+we[1],_e):me?[ge,fe]:null},_e},r.hierarchy=s,r.pack=function(){var le=null,ge=1,fe=1,me=R;function _e(we){return we.x=ge/2,we.y=fe/2,le?we.eachBefore(P(le)).eachAfter(N(me,.5)).eachBefore(B(1)):we.eachBefore(P(L)).eachAfter(N(R,1)).eachAfter(N(me,we.r/Math.min(ge,fe))).eachBefore(B(Math.min(ge,fe)/(2*we.r))),we}return _e.radius=function(we){return arguments.length?(le=D(we),_e):le},_e.size=function(we){return arguments.length?(ge=+we[0],fe=+we[1],_e):[ge,fe]},_e.padding=function(we){return arguments.length?(me=typeof we=="function"?we:z(+we),_e):me},_e},r.packEnclose=p,r.packSiblings=function(le){return E(le),le},r.partition=function(){var le=1,ge=1,fe=0,me=!1;function _e(we){var Te=we.height+1;return we.x0=we.y0=fe,we.x1=le,we.y1=ge/Te,we.eachBefore(function(Oe,de){return function(ye){ye.children&&W(ye,ye.x0,Oe*(ye.depth+1)/de,ye.x1,Oe*(ye.depth+2)/de);var Me=ye.x0,ke=ye.y0,Ee=ye.x1-fe,ze=ye.y1-fe;Ee0)throw new Error("cycle");return Te}return fe.id=function(me){return arguments.length?(le=O(me),fe):le},fe.parentId=function(me){return arguments.length?(ge=O(me),fe):ge},fe},r.tree=function(){var le=re,ge=1,fe=1,me=null;function _e(de){var ye=function(Re){for(var qe,We,Ye,nt,ft,vt=new H(Re,0),Pt=[vt];qe=Pt.pop();)if(Ye=qe._.children)for(qe.children=new Array(ft=Ye.length),nt=ft-1;nt>=0;--nt)Pt.push(We=qe.children[nt]=new H(Ye[nt],nt)),We.parent=qe;return(vt.parent=new H(null,0)).children=[vt],vt}(de);if(ye.eachAfter(we),ye.parent.m=-ye.z,ye.eachBefore(Te),me)de.eachBefore(Oe);else{var Me=de,ke=de,Ee=de;de.eachBefore(function(Re){Re.xke.x&&(ke=Re),Re.depth>Ee.depth&&(Ee=Re)});var ze=Me===ke?1:le(Me,ke)/2,Fe=ze-Me.x,Ve=ge/(ke.x+ze+Fe),Ke=fe/(Ee.depth||1);de.eachBefore(function(Re){Re.x=(Re.x+Fe)*Ve,Re.y=Re.depth*Ke})}return de}function we(de){var ye=de.children,Me=de.parent.children,ke=de.i?Me[de.i-1]:null;if(ye){(function(ze){for(var Fe,Ve=0,Ke=0,Re=ze.children,qe=Re.length;--qe>=0;)(Fe=Re[qe]).z+=Ve,Fe.m+=Ve,Ve+=Fe.s+(Ke+=Fe.c)})(de);var Ee=(ye[0].z+ye[ye.length-1].z)/2;ke?(de.z=ke.z+le(de._,ke._),de.m=de.z-Ee):de.z=Ee}else ke&&(de.z=ke.z+le(de._,ke._));de.parent.A=function(ze,Fe,Ve){if(Fe){for(var Ke,Re=ze,qe=ze,We=Fe,Ye=Re.parent.children[0],nt=Re.m,ft=qe.m,vt=We.m,Pt=Ye.m;We=q(We),Re=U(Re),We&ℜ)Ye=U(Ye),(qe=q(qe)).a=ze,(Ke=We.z+vt-Re.z-nt+le(We._,Re._))>0&&($(ne(We,ze,Ve),ze,Ke),nt+=Ke,ft+=Ke),vt+=We.m,nt+=Re.m,Pt+=Ye.m,ft+=qe.m;We&&!q(qe)&&(qe.t=We,qe.m+=vt-ft),Re&&!U(Ye)&&(Ye.t=Re,Ye.m+=nt-Pt,Ve=ze)}return Ve}(de,ke,de.parent.A||Me[0])}function Te(de){de._.x=de.z+de.parent.m,de.m+=de.parent.m}function Oe(de){de.x*=ge,de.y=de.depth*fe}return _e.separation=function(de){return arguments.length?(le=de,_e):le},_e.size=function(de){return arguments.length?(me=!1,ge=+de[0],fe=+de[1],_e):me?null:[ge,fe]},_e.nodeSize=function(de){return arguments.length?(me=!0,ge=+de[0],fe=+de[1],_e):me?[ge,fe]:null},_e},r.treemap=function(){var le=ae,ge=!1,fe=1,me=1,_e=[0],we=R,Te=R,Oe=R,de=R,ye=R;function Me(Ee){return Ee.x0=Ee.y0=0,Ee.x1=fe,Ee.y1=me,Ee.eachBefore(ke),_e=[0],ge&&Ee.eachBefore(G),Ee}function ke(Ee){var ze=_e[Ee.depth],Fe=Ee.x0+ze,Ve=Ee.y0+ze,Ke=Ee.x1-ze,Re=Ee.y1-ze;Ke=Ee-1){var qe=Oe[ke];return qe.x0=Fe,qe.y0=Ve,qe.x1=Ke,void(qe.y1=Re)}for(var We=ye[ke],Ye=ze/2+We,nt=ke+1,ft=Ee-1;nt>>1;ye[vt]Re-Ve){var at=(Fe*At+Ke*Pt)/ze;Me(ke,nt,Pt,Fe,Ve,at,Re),Me(nt,Ee,At,at,Ve,Ke,Re)}else{var et=(Ve*At+Re*Pt)/ze;Me(ke,nt,Pt,Fe,Ve,Ke,et),Me(nt,Ee,At,Fe,et,Ke,Re)}})(0,de,le.value,ge,fe,me,_e)},r.treemapDice=W,r.treemapResquarify=ue,r.treemapSlice=Q,r.treemapSliceDice=function(le,ge,fe,me,_e){(1&le.depth?Q:W)(le,ge,fe,me,_e)},r.treemapSquarify=ae,Object.defineProperty(r,"__esModule",{value:!0})})},{}],116:[function(e,o,f){(function(r,a){typeof f=="object"&&o!==void 0?a(f,e("d3-color")):a((r=r||self).d3=r.d3||{},r.d3)})(this,function(r,a){function u(ee,ie,ae,ue,le){var ge=ee*ee,fe=ge*ee;return((1-3*ee+3*ge-fe)*ie+(4-6*ge+3*fe)*ae+(1+3*ee+3*ge-3*fe)*ue+fe*le)/6}function c(ee){var ie=ee.length-1;return function(ae){var ue=ae<=0?ae=0:ae>=1?(ae=1,ie-1):Math.floor(ae*ie),le=ee[ue],ge=ee[ue+1],fe=ue>0?ee[ue-1]:2*le-ge,me=ue180||ae<-180?ae-360*Math.round(ae/360):ae):s(isNaN(ee)?ie:ee)}function h(ee){return(ee=+ee)==1?m:function(ie,ae){return ae-ie?function(ue,le,ge){return ue=Math.pow(ue,ge),le=Math.pow(le,ge)-ue,ge=1/ge,function(fe){return Math.pow(ue+fe*le,ge)}}(ie,ae,ee):s(isNaN(ie)?ae:ie)}}function m(ee,ie){var ae=ie-ee;return ae?l(ee,ae):s(isNaN(ee)?ie:ee)}var g=function ee(ie){var ae=h(ie);function ue(le,ge){var fe=ae((le=a.rgb(le)).r,(ge=a.rgb(ge)).r),me=ae(le.g,ge.g),_e=ae(le.b,ge.b),we=m(le.opacity,ge.opacity);return function(Te){return le.r=fe(Te),le.g=me(Te),le.b=_e(Te),le.opacity=we(Te),le+""}}return ue.gamma=ee,ue}(1);function p(ee){return function(ie){var ae,ue,le=ie.length,ge=new Array(le),fe=new Array(le),me=new Array(le);for(ae=0;aege&&(le=ie.slice(ge,le),me[fe]?me[fe]+=le:me[++fe]=le),(ae=ae[0])===(ue=ue[0])?me[fe]?me[fe]+=ue:me[++fe]=ue:(me[++fe]=null,_e.push({i:fe,x:T(ae,ue)})),ge=A.lastIndex;return ge180?Te+=360:Te-we>180&&(we+=360),de.push({i:Oe.push(le(Oe)+"rotate(",null,ue)-2,x:T(we,Te)})):Te&&Oe.push(le(Oe)+"rotate("+Te+ue)}(ge.rotate,fe.rotate,me,_e),function(we,Te,Oe,de){we!==Te?de.push({i:Oe.push(le(Oe)+"skewX(",null,ue)-2,x:T(we,Te)}):Te&&Oe.push(le(Oe)+"skewX("+Te+ue)}(ge.skewX,fe.skewX,me,_e),function(we,Te,Oe,de,ye,Me){if(we!==Oe||Te!==de){var ke=ye.push(le(ye)+"scale(",null,",",null,")");Me.push({i:ke-4,x:T(we,Oe)},{i:ke-2,x:T(Te,de)})}else Oe===1&&de===1||ye.push(le(ye)+"scale("+Oe+","+de+")")}(ge.scaleX,ge.scaleY,fe.scaleX,fe.scaleY,me,_e),ge=fe=null,function(we){for(var Te,Oe=-1,de=_e.length;++Oe1e-6)if(Math.abs(k*y-x*w)>1e-6&&g){var T=h-p,_=m-v,M=y*y+x*x,A=T*T+_*_,S=Math.sqrt(M),E=Math.sqrt(b),D=g*Math.tan((a-Math.acos((M+b-A)/(2*S*E)))/2),O=D/E,R=D/S;Math.abs(O-1)>1e-6&&(this._+="L"+(l+O*w)+","+(d+O*k)),this._+="A"+g+","+g+",0,0,"+ +(k*T>w*_)+","+(this._x1=l+R*y)+","+(this._y1=d+R*x)}else this._+="L"+(this._x1=l)+","+(this._y1=d)},arc:function(l,d,h,m,g,p){l=+l,d=+d,p=!!p;var v=(h=+h)*Math.cos(m),y=h*Math.sin(m),x=l+v,w=d+y,k=1^p,b=p?m-g:g-m;if(h<0)throw new Error("negative radius: "+h);this._x1===null?this._+="M"+x+","+w:(Math.abs(this._x1-x)>1e-6||Math.abs(this._y1-w)>1e-6)&&(this._+="L"+x+","+w),h&&(b<0&&(b=b%u+u),b>c?this._+="A"+h+","+h+",0,1,"+k+","+(l-v)+","+(d-y)+"A"+h+","+h+",0,1,"+k+","+(this._x1=x)+","+(this._y1=w):b>1e-6&&(this._+="A"+h+","+h+",0,"+ +(b>=a)+","+k+","+(this._x1=l+h*Math.cos(g))+","+(this._y1=d+h*Math.sin(g))))},rect:function(l,d,h,m){this._+="M"+(this._x0=this._x1=+l)+","+(this._y0=this._y1=+d)+"h"+ +h+"v"+ +m+"h"+-h+"Z"},toString:function(){return this._}},r.path=s,Object.defineProperty(r,"__esModule",{value:!0})})},{}],118:[function(e,o,f){(function(r,a){a(typeof f=="object"&&o!==void 0?f:(r=r||self).d3=r.d3||{})})(this,function(r){function a(m,g,p,v){if(isNaN(g)||isNaN(p))return m;var y,x,w,k,b,T,_,M,A,S=m._root,E={data:v},D=m._x0,O=m._y0,R=m._x1,z=m._y1;if(!S)return m._root=E,m;for(;S.length;)if((T=g>=(x=(D+R)/2))?D=x:R=x,(_=p>=(w=(O+z)/2))?O=w:z=w,y=S,!(S=S[M=_<<1|T]))return y[M]=E,m;if(k=+m._x.call(null,S.data),b=+m._y.call(null,S.data),g===k&&p===b)return E.next=S,y?y[M]=E:m._root=E,m;do y=y?y[M]=new Array(4):m._root=new Array(4),(T=g>=(x=(D+R)/2))?D=x:R=x,(_=p>=(w=(O+z)/2))?O=w:z=w;while((M=_<<1|T)==(A=(b>=w)<<1|k>=x));return y[A]=S,y[M]=E,m}function u(m,g,p,v,y){this.node=m,this.x0=g,this.y0=p,this.x1=v,this.y1=y}function c(m){return m[0]}function i(m){return m[1]}function s(m,g,p){var v=new l(g??c,p??i,NaN,NaN,NaN,NaN);return m==null?v:v.addAll(m)}function l(m,g,p,v,y,x){this._x=m,this._y=g,this._x0=p,this._y0=v,this._x1=y,this._y1=x,this._root=void 0}function d(m){for(var g={data:m.data},p=g;m=m.next;)p=p.next={data:m.data};return g}var h=s.prototype=l.prototype;h.copy=function(){var m,g,p=new l(this._x,this._y,this._x0,this._y0,this._x1,this._y1),v=this._root;if(!v)return p;if(!v.length)return p._root=d(v),p;for(m=[{source:v,target:p._root=new Array(4)}];v=m.pop();)for(var y=0;y<4;++y)(g=v.source[y])&&(g.length?m.push({source:g,target:v.target[y]=new Array(4)}):v.target[y]=d(g));return p},h.add=function(m){var g=+this._x.call(null,m),p=+this._y.call(null,m);return a(this.cover(g,p),g,p,m)},h.addAll=function(m){var g,p,v,y,x=m.length,w=new Array(x),k=new Array(x),b=1/0,T=1/0,_=-1/0,M=-1/0;for(p=0;p_&&(_=v),yM&&(M=y));if(b>_||T>M)return this;for(this.cover(b,T).cover(_,M),p=0;pm||m>=y||v>g||g>=x;)switch(k=(gA||(x=b.y0)>S||(w=b.x1)<_||(k=b.y1)=R)<<1|m>=O)&&(b=E[E.length-1],E[E.length-1]=E[E.length-1-T],E[E.length-1-T]=b)}else{var z=m-+this._x.call(null,D.data),L=g-+this._y.call(null,D.data),P=z*z+L*L;if(P=(k=(E+O)/2))?E=k:O=k,(_=w>=(b=(D+R)/2))?D=b:R=b,g=S,!(S=S[M=_<<1|T]))return this;if(!S.length)break;(g[M+1&3]||g[M+2&3]||g[M+3&3])&&(p=g,A=M)}for(;S.data!==m;)if(v=S,!(S=S.next))return this;return(y=S.next)&&delete S.next,v?(y?v.next=y:delete v.next,this):g?(y?g[M]=y:delete g[M],(S=g[0]||g[1]||g[2]||g[3])&&S===(g[3]||g[2]||g[1]||g[0])&&!S.length&&(p?p[A]=S:this._root=S),this):(this._root=y,this)},h.removeAll=function(m){for(var g=0,p=m.length;g1?0:Le<-1?g:Math.acos(Le)}function x(Le){return Le>=1?p:Le<=-1?-p:Math.asin(Le)}function w(Le){return Le.innerRadius}function k(Le){return Le.outerRadius}function b(Le){return Le.startAngle}function T(Le){return Le.endAngle}function _(Le){return Le&&Le.padAngle}function M(Le,Je,st,Et,It,Zt,Kt,Ht){var mn=st-Le,zn=Et-Je,pn=Kt-It,tn=Ht-Zt,nn=tn*mn-pn*zn;if(!(nn*nn<1e-12))return[Le+(nn=(pn*(Je-Zt)-tn*(Le-It))/nn)*mn,Je+nn*zn]}function A(Le,Je,st,Et,It,Zt,Kt){var Ht=Le-st,mn=Je-Et,zn=(Kt?Zt:-Zt)/m(Ht*Ht+mn*mn),pn=zn*mn,tn=-zn*Ht,nn=Le+pn,sn=Je+tn,gn=st+pn,bn=Et+tn,In=(nn+gn)/2,Hn=(sn+bn)/2,Wn=gn-nn,ar=bn-sn,Or=Wn*Wn+ar*ar,vr=It-Zt,Er=nn*bn-gn*sn,Kn=(ar<0?-1:1)*m(l(0,vr*vr*Or-Er*Er)),Ln=(Er*ar-Wn*Kn)/Or,lr=(-Er*Wn-ar*Kn)/Or,Wr=(Er*ar+Wn*Kn)/Or,Mn=(-Er*Wn+ar*Kn)/Or,rr=Ln-In,nr=lr-Hn,Bn=Wr-In,Fr=Mn-Hn;return rr*rr+nr*nr>Bn*Bn+Fr*Fr&&(Ln=Wr,lr=Mn),{cx:Ln,cy:lr,x01:-pn,y01:-tn,x11:Ln*(It/vr-1),y11:lr*(It/vr-1)}}function S(Le){this._context=Le}function E(Le){return new S(Le)}function D(Le){return Le[0]}function O(Le){return Le[1]}function R(){var Le=D,Je=O,st=u(!0),Et=null,It=E,Zt=null;function Kt(Ht){var mn,zn,pn,tn=Ht.length,nn=!1;for(Et==null&&(Zt=It(pn=a.path())),mn=0;mn<=tn;++mn)!(mn=nn;--sn)Ht.point(Wn[sn],ar[sn]);Ht.lineEnd(),Ht.areaEnd()}Hn&&(Wn[tn]=+Le(gn,tn,pn),ar[tn]=+st(gn,tn,pn),Ht.point(Je?+Je(gn,tn,pn):Wn[tn],Et?+Et(gn,tn,pn):ar[tn]))}if(bn)return Ht=null,bn+""||null}function zn(){return R().defined(It).curve(Kt).context(Zt)}return mn.x=function(pn){return arguments.length?(Le=typeof pn=="function"?pn:u(+pn),Je=null,mn):Le},mn.x0=function(pn){return arguments.length?(Le=typeof pn=="function"?pn:u(+pn),mn):Le},mn.x1=function(pn){return arguments.length?(Je=pn==null?null:typeof pn=="function"?pn:u(+pn),mn):Je},mn.y=function(pn){return arguments.length?(st=typeof pn=="function"?pn:u(+pn),Et=null,mn):st},mn.y0=function(pn){return arguments.length?(st=typeof pn=="function"?pn:u(+pn),mn):st},mn.y1=function(pn){return arguments.length?(Et=pn==null?null:typeof pn=="function"?pn:u(+pn),mn):Et},mn.lineX0=mn.lineY0=function(){return zn().x(Le).y(st)},mn.lineY1=function(){return zn().x(Le).y(Et)},mn.lineX1=function(){return zn().x(Je).y(st)},mn.defined=function(pn){return arguments.length?(It=typeof pn=="function"?pn:u(!!pn),mn):It},mn.curve=function(pn){return arguments.length?(Kt=pn,Zt!=null&&(Ht=Kt(Zt)),mn):Kt},mn.context=function(pn){return arguments.length?(pn==null?Zt=Ht=null:Ht=Kt(Zt=pn),mn):Zt},mn}function L(Le,Je){return JeLe?1:Je>=Le?0:NaN}function P(Le){return Le}S.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(Le,Je){switch(Le=+Le,Je=+Je,this._point){case 0:this._point=1,this._line?this._context.lineTo(Le,Je):this._context.moveTo(Le,Je);break;case 1:this._point=2;default:this._context.lineTo(Le,Je)}}};var N=G(E);function B(Le){this._curve=Le}function G(Le){function Je(st){return new B(Le(st))}return Je._curve=Le,Je}function W(Le){var Je=Le.curve;return Le.angle=Le.x,delete Le.x,Le.radius=Le.y,delete Le.y,Le.curve=function(st){return arguments.length?Je(G(st)):Je()._curve},Le}function K(){return W(R().curve(N))}function te(){var Le=z().curve(N),Je=Le.curve,st=Le.lineX0,Et=Le.lineX1,It=Le.lineY0,Zt=Le.lineY1;return Le.angle=Le.x,delete Le.x,Le.startAngle=Le.x0,delete Le.x0,Le.endAngle=Le.x1,delete Le.x1,Le.radius=Le.y,delete Le.y,Le.innerRadius=Le.y0,delete Le.y0,Le.outerRadius=Le.y1,delete Le.y1,Le.lineStartAngle=function(){return W(st())},delete Le.lineX0,Le.lineEndAngle=function(){return W(Et())},delete Le.lineX1,Le.lineInnerRadius=function(){return W(It())},delete Le.lineY0,Le.lineOuterRadius=function(){return W(Zt())},delete Le.lineY1,Le.curve=function(Kt){return arguments.length?Je(G(Kt)):Je()._curve},Le}function Y(Le,Je){return[(Je=+Je)*Math.cos(Le-=Math.PI/2),Je*Math.sin(Le)]}B.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(Le,Je){this._curve.point(Je*Math.sin(Le),Je*-Math.cos(Le))}};var Z=Array.prototype.slice;function re(Le){return Le.source}function U(Le){return Le.target}function q(Le){var Je=re,st=U,Et=D,It=O,Zt=null;function Kt(){var Ht,mn=Z.call(arguments),zn=Je.apply(this,mn),pn=st.apply(this,mn);if(Zt||(Zt=Ht=a.path()),Le(Zt,+Et.apply(this,(mn[0]=zn,mn)),+It.apply(this,mn),+Et.apply(this,(mn[0]=pn,mn)),+It.apply(this,mn)),Ht)return Zt=null,Ht+""||null}return Kt.source=function(Ht){return arguments.length?(Je=Ht,Kt):Je},Kt.target=function(Ht){return arguments.length?(st=Ht,Kt):st},Kt.x=function(Ht){return arguments.length?(Et=typeof Ht=="function"?Ht:u(+Ht),Kt):Et},Kt.y=function(Ht){return arguments.length?(It=typeof Ht=="function"?Ht:u(+Ht),Kt):It},Kt.context=function(Ht){return arguments.length?(Zt=Ht??null,Kt):Zt},Kt}function $(Le,Je,st,Et,It){Le.moveTo(Je,st),Le.bezierCurveTo(Je=(Je+Et)/2,st,Je,It,Et,It)}function ne(Le,Je,st,Et,It){Le.moveTo(Je,st),Le.bezierCurveTo(Je,st=(st+It)/2,Et,st,Et,It)}function H(Le,Je,st,Et,It){var Zt=Y(Je,st),Kt=Y(Je,st=(st+It)/2),Ht=Y(Et,st),mn=Y(Et,It);Le.moveTo(Zt[0],Zt[1]),Le.bezierCurveTo(Kt[0],Kt[1],Ht[0],Ht[1],mn[0],mn[1])}var Q={draw:function(Le,Je){var st=Math.sqrt(Je/g);Le.moveTo(st,0),Le.arc(0,0,st,0,v)}},ee={draw:function(Le,Je){var st=Math.sqrt(Je/5)/2;Le.moveTo(-3*st,-st),Le.lineTo(-st,-st),Le.lineTo(-st,-3*st),Le.lineTo(st,-3*st),Le.lineTo(st,-st),Le.lineTo(3*st,-st),Le.lineTo(3*st,st),Le.lineTo(st,st),Le.lineTo(st,3*st),Le.lineTo(-st,3*st),Le.lineTo(-st,st),Le.lineTo(-3*st,st),Le.closePath()}},ie=Math.sqrt(1/3),ae=2*ie,ue={draw:function(Le,Je){var st=Math.sqrt(Je/ae),Et=st*ie;Le.moveTo(0,-st),Le.lineTo(Et,0),Le.lineTo(0,st),Le.lineTo(-Et,0),Le.closePath()}},le=Math.sin(g/10)/Math.sin(7*g/10),ge=Math.sin(v/10)*le,fe=-Math.cos(v/10)*le,me={draw:function(Le,Je){var st=Math.sqrt(.8908130915292852*Je),Et=ge*st,It=fe*st;Le.moveTo(0,-st),Le.lineTo(Et,It);for(var Zt=1;Zt<5;++Zt){var Kt=v*Zt/5,Ht=Math.cos(Kt),mn=Math.sin(Kt);Le.lineTo(mn*st,-Ht*st),Le.lineTo(Ht*Et-mn*It,mn*Et+Ht*It)}Le.closePath()}},_e={draw:function(Le,Je){var st=Math.sqrt(Je),Et=-st/2;Le.rect(Et,Et,st,st)}},we=Math.sqrt(3),Te={draw:function(Le,Je){var st=-Math.sqrt(Je/(3*we));Le.moveTo(0,2*st),Le.lineTo(-we*st,-st),Le.lineTo(we*st,-st),Le.closePath()}},Oe=-.5,de=Math.sqrt(3)/2,ye=1/Math.sqrt(12),Me=3*(ye/2+1),ke={draw:function(Le,Je){var st=Math.sqrt(Je/Me),Et=st/2,It=st*ye,Zt=Et,Kt=st*ye+st,Ht=-Zt,mn=Kt;Le.moveTo(Et,It),Le.lineTo(Zt,Kt),Le.lineTo(Ht,mn),Le.lineTo(Oe*Et-de*It,de*Et+Oe*It),Le.lineTo(Oe*Zt-de*Kt,de*Zt+Oe*Kt),Le.lineTo(Oe*Ht-de*mn,de*Ht+Oe*mn),Le.lineTo(Oe*Et+de*It,Oe*It-de*Et),Le.lineTo(Oe*Zt+de*Kt,Oe*Kt-de*Zt),Le.lineTo(Oe*Ht+de*mn,Oe*mn-de*Ht),Le.closePath()}},Ee=[Q,ee,ue,_e,me,Te,ke];function ze(){}function Fe(Le,Je,st){Le._context.bezierCurveTo((2*Le._x0+Le._x1)/3,(2*Le._y0+Le._y1)/3,(Le._x0+2*Le._x1)/3,(Le._y0+2*Le._y1)/3,(Le._x0+4*Le._x1+Je)/6,(Le._y0+4*Le._y1+st)/6)}function Ve(Le){this._context=Le}function Ke(Le){this._context=Le}function Re(Le){this._context=Le}function qe(Le,Je){this._basis=new Ve(Le),this._beta=Je}Ve.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Fe(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(Le,Je){switch(Le=+Le,Je=+Je,this._point){case 0:this._point=1,this._line?this._context.lineTo(Le,Je):this._context.moveTo(Le,Je);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Fe(this,Le,Je)}this._x0=this._x1,this._x1=Le,this._y0=this._y1,this._y1=Je}},Ke.prototype={areaStart:ze,areaEnd:ze,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(Le,Je){switch(Le=+Le,Je=+Je,this._point){case 0:this._point=1,this._x2=Le,this._y2=Je;break;case 1:this._point=2,this._x3=Le,this._y3=Je;break;case 2:this._point=3,this._x4=Le,this._y4=Je,this._context.moveTo((this._x0+4*this._x1+Le)/6,(this._y0+4*this._y1+Je)/6);break;default:Fe(this,Le,Je)}this._x0=this._x1,this._x1=Le,this._y0=this._y1,this._y1=Je}},Re.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(Le,Je){switch(Le=+Le,Je=+Je,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var st=(this._x0+4*this._x1+Le)/6,Et=(this._y0+4*this._y1+Je)/6;this._line?this._context.lineTo(st,Et):this._context.moveTo(st,Et);break;case 3:this._point=4;default:Fe(this,Le,Je)}this._x0=this._x1,this._x1=Le,this._y0=this._y1,this._y1=Je}},qe.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var Le=this._x,Je=this._y,st=Le.length-1;if(st>0)for(var Et,It=Le[0],Zt=Je[0],Kt=Le[st]-It,Ht=Je[st]-Zt,mn=-1;++mn<=st;)Et=mn/st,this._basis.point(this._beta*Le[mn]+(1-this._beta)*(It+Et*Kt),this._beta*Je[mn]+(1-this._beta)*(Zt+Et*Ht));this._x=this._y=null,this._basis.lineEnd()},point:function(Le,Je){this._x.push(+Le),this._y.push(+Je)}};var We=function Le(Je){function st(Et){return Je===1?new Ve(Et):new qe(Et,Je)}return st.beta=function(Et){return Le(+Et)},st}(.85);function Ye(Le,Je,st){Le._context.bezierCurveTo(Le._x1+Le._k*(Le._x2-Le._x0),Le._y1+Le._k*(Le._y2-Le._y0),Le._x2+Le._k*(Le._x1-Je),Le._y2+Le._k*(Le._y1-st),Le._x2,Le._y2)}function nt(Le,Je){this._context=Le,this._k=(1-Je)/6}nt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Ye(this,this._x1,this._y1)}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(Le,Je){switch(Le=+Le,Je=+Je,this._point){case 0:this._point=1,this._line?this._context.lineTo(Le,Je):this._context.moveTo(Le,Je);break;case 1:this._point=2,this._x1=Le,this._y1=Je;break;case 2:this._point=3;default:Ye(this,Le,Je)}this._x0=this._x1,this._x1=this._x2,this._x2=Le,this._y0=this._y1,this._y1=this._y2,this._y2=Je}};var ft=function Le(Je){function st(Et){return new nt(Et,Je)}return st.tension=function(Et){return Le(+Et)},st}(0);function vt(Le,Je){this._context=Le,this._k=(1-Je)/6}vt.prototype={areaStart:ze,areaEnd:ze,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(Le,Je){switch(Le=+Le,Je=+Je,this._point){case 0:this._point=1,this._x3=Le,this._y3=Je;break;case 1:this._point=2,this._context.moveTo(this._x4=Le,this._y4=Je);break;case 2:this._point=3,this._x5=Le,this._y5=Je;break;default:Ye(this,Le,Je)}this._x0=this._x1,this._x1=this._x2,this._x2=Le,this._y0=this._y1,this._y1=this._y2,this._y2=Je}};var Pt=function Le(Je){function st(Et){return new vt(Et,Je)}return st.tension=function(Et){return Le(+Et)},st}(0);function At(Le,Je){this._context=Le,this._k=(1-Je)/6}At.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(Le,Je){switch(Le=+Le,Je=+Je,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Ye(this,Le,Je)}this._x0=this._x1,this._x1=this._x2,this._x2=Le,this._y0=this._y1,this._y1=this._y2,this._y2=Je}};var at=function Le(Je){function st(Et){return new At(Et,Je)}return st.tension=function(Et){return Le(+Et)},st}(0);function et(Le,Je,st){var Et=Le._x1,It=Le._y1,Zt=Le._x2,Kt=Le._y2;if(Le._l01_a>1e-12){var Ht=2*Le._l01_2a+3*Le._l01_a*Le._l12_a+Le._l12_2a,mn=3*Le._l01_a*(Le._l01_a+Le._l12_a);Et=(Et*Ht-Le._x0*Le._l12_2a+Le._x2*Le._l01_2a)/mn,It=(It*Ht-Le._y0*Le._l12_2a+Le._y2*Le._l01_2a)/mn}if(Le._l23_a>1e-12){var zn=2*Le._l23_2a+3*Le._l23_a*Le._l12_a+Le._l12_2a,pn=3*Le._l23_a*(Le._l23_a+Le._l12_a);Zt=(Zt*zn+Le._x1*Le._l23_2a-Je*Le._l12_2a)/pn,Kt=(Kt*zn+Le._y1*Le._l23_2a-st*Le._l12_2a)/pn}Le._context.bezierCurveTo(Et,It,Zt,Kt,Le._x2,Le._y2)}function Ot(Le,Je){this._context=Le,this._alpha=Je}Ot.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(Le,Je){if(Le=+Le,Je=+Je,this._point){var st=this._x2-Le,Et=this._y2-Je;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(st*st+Et*Et,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(Le,Je):this._context.moveTo(Le,Je);break;case 1:this._point=2;break;case 2:this._point=3;default:et(this,Le,Je)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=Le,this._y0=this._y1,this._y1=this._y2,this._y2=Je}};var Wt=function Le(Je){function st(Et){return Je?new Ot(Et,Je):new nt(Et,0)}return st.alpha=function(Et){return Le(+Et)},st}(.5);function Jt(Le,Je){this._context=Le,this._alpha=Je}Jt.prototype={areaStart:ze,areaEnd:ze,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(Le,Je){if(Le=+Le,Je=+Je,this._point){var st=this._x2-Le,Et=this._y2-Je;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(st*st+Et*Et,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=Le,this._y3=Je;break;case 1:this._point=2,this._context.moveTo(this._x4=Le,this._y4=Je);break;case 2:this._point=3,this._x5=Le,this._y5=Je;break;default:et(this,Le,Je)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=Le,this._y0=this._y1,this._y1=this._y2,this._y2=Je}};var Be=function Le(Je){function st(Et){return Je?new Jt(Et,Je):new vt(Et,0)}return st.alpha=function(Et){return Le(+Et)},st}(.5);function Ge(Le,Je){this._context=Le,this._alpha=Je}Ge.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(Le,Je){if(Le=+Le,Je=+Je,this._point){var st=this._x2-Le,Et=this._y2-Je;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(st*st+Et*Et,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:et(this,Le,Je)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=Le,this._y0=this._y1,this._y1=this._y2,this._y2=Je}};var Tt=function Le(Je){function st(Et){return Je?new Ge(Et,Je):new At(Et,0)}return st.alpha=function(Et){return Le(+Et)},st}(.5);function dt(Le){this._context=Le}function Pe(Le){return Le<0?-1:1}function Ie(Le,Je,st){var Et=Le._x1-Le._x0,It=Je-Le._x1,Zt=(Le._y1-Le._y0)/(Et||It<0&&-0),Kt=(st-Le._y1)/(It||Et<0&&-0),Ht=(Zt*It+Kt*Et)/(Et+It);return(Pe(Zt)+Pe(Kt))*Math.min(Math.abs(Zt),Math.abs(Kt),.5*Math.abs(Ht))||0}function Ae(Le,Je){var st=Le._x1-Le._x0;return st?(3*(Le._y1-Le._y0)/st-Je)/2:Je}function De(Le,Je,st){var Et=Le._x0,It=Le._y0,Zt=Le._x1,Kt=Le._y1,Ht=(Zt-Et)/3;Le._context.bezierCurveTo(Et+Ht,It+Ht*Je,Zt-Ht,Kt-Ht*st,Zt,Kt)}function He(Le){this._context=Le}function rt(Le){this._context=new lt(Le)}function lt(Le){this._context=Le}function ot(Le){this._context=Le}function kt(Le){var Je,st,Et=Le.length-1,It=new Array(Et),Zt=new Array(Et),Kt=new Array(Et);for(It[0]=0,Zt[0]=2,Kt[0]=Le[0]+2*Le[1],Je=1;Je=0;--Je)It[Je]=(Kt[Je]-It[Je+1])/Zt[Je];for(Zt[Et-1]=(Le[Et]+It[Et-1])/2,Je=0;Je1)for(var st,Et,It,Zt=1,Kt=Le[Je[0]],Ht=Kt.length;Zt=0;)st[Je]=Je;return st}function tt(Le,Je){return Le[Je]}function bt(Le){var Je=Le.map(zt);return Ut(Le).sort(function(st,Et){return Je[st]-Je[Et]})}function zt(Le){for(var Je,st=-1,Et=0,It=Le.length,Zt=-1/0;++stZt&&(Zt=Je,Et=st);return Et}function St(Le){var Je=Le.map(Dt);return Ut(Le).sort(function(st,Et){return Je[st]-Je[Et]})}function Dt(Le){for(var Je,st=0,Et=-1,It=Le.length;++Et=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(Le,Je){switch(Le=+Le,Je=+Je,this._point){case 0:this._point=1,this._line?this._context.lineTo(Le,Je):this._context.moveTo(Le,Je);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,Je),this._context.lineTo(Le,Je);else{var st=this._x*(1-this._t)+Le*this._t;this._context.lineTo(st,this._y),this._context.lineTo(st,Je)}}this._x=Le,this._y=Je}},r.arc=function(){var Le=w,Je=k,st=u(0),Et=null,It=b,Zt=T,Kt=_,Ht=null;function mn(){var zn,pn,tn=+Le.apply(this,arguments),nn=+Je.apply(this,arguments),sn=It.apply(this,arguments)-p,gn=Zt.apply(this,arguments)-p,bn=c(gn-sn),In=gn>sn;if(Ht||(Ht=zn=a.path()),nn1e-12)if(bn>v-1e-12)Ht.moveTo(nn*s(sn),nn*h(sn)),Ht.arc(0,0,nn,sn,gn,!In),tn>1e-12&&(Ht.moveTo(tn*s(gn),tn*h(gn)),Ht.arc(0,0,tn,gn,sn,In));else{var Hn,Wn,ar=sn,Or=gn,vr=sn,Er=gn,Kn=bn,Ln=bn,lr=Kt.apply(this,arguments)/2,Wr=lr>1e-12&&(Et?+Et.apply(this,arguments):m(tn*tn+nn*nn)),Mn=d(c(nn-tn)/2,+st.apply(this,arguments)),rr=Mn,nr=Mn;if(Wr>1e-12){var Bn=x(Wr/tn*h(lr)),Fr=x(Wr/nn*h(lr));(Kn-=2*Bn)>1e-12?(vr+=Bn*=In?1:-1,Er-=Bn):(Kn=0,vr=Er=(sn+gn)/2),(Ln-=2*Fr)>1e-12?(ar+=Fr*=In?1:-1,Or-=Fr):(Ln=0,ar=Or=(sn+gn)/2)}var $r=nn*s(ar),pr=nn*h(ar),qr=tn*s(Er),_i=tn*h(Er);if(Mn>1e-12){var cn,jn=nn*s(Or),jt=nn*h(Or),fn=tn*s(vr),yn=tn*h(vr);if(bn1e-12?nr>1e-12?(Hn=A(fn,yn,$r,pr,nn,nr,In),Wn=A(jn,jt,qr,_i,nn,nr,In),Ht.moveTo(Hn.cx+Hn.x01,Hn.cy+Hn.y01),nr1e-12&&Kn>1e-12?rr>1e-12?(Hn=A(qr,_i,jn,jt,tn,-rr,In),Wn=A($r,pr,fn,yn,tn,-rr,In),Ht.lineTo(Hn.cx+Hn.x01,Hn.cy+Hn.y01),rr0&&(gn+=nn);for(Je!=null?bn.sort(function(vr,Er){return Je(In[vr],In[Er])}):st!=null&&bn.sort(function(vr,Er){return st(Ht[vr],Ht[Er])}),mn=0,pn=gn?(Wn-sn*Or)/gn:0;mn0?nn*pn:0)+Or,In[zn]={data:Ht[zn],index:mn,value:nn,startAngle:Hn,endAngle:tn,padAngle:ar};return In}return Kt.value=function(Ht){return arguments.length?(Le=typeof Ht=="function"?Ht:u(+Ht),Kt):Le},Kt.sortValues=function(Ht){return arguments.length?(Je=Ht,st=null,Kt):Je},Kt.sort=function(Ht){return arguments.length?(st=Ht,Je=null,Kt):st},Kt.startAngle=function(Ht){return arguments.length?(Et=typeof Ht=="function"?Ht:u(+Ht),Kt):Et},Kt.endAngle=function(Ht){return arguments.length?(It=typeof Ht=="function"?Ht:u(+Ht),Kt):It},Kt.padAngle=function(Ht){return arguments.length?(Zt=typeof Ht=="function"?Ht:u(+Ht),Kt):Zt},Kt},r.pointRadial=Y,r.radialArea=te,r.radialLine=K,r.stack=function(){var Le=u([]),Je=Ut,st=Vt,Et=tt;function It(Zt){var Kt,Ht,mn=Le.apply(this,arguments),zn=Zt.length,pn=mn.length,tn=new Array(pn);for(Kt=0;Kt0)for(var st,Et,It,Zt,Kt,Ht,mn=0,zn=Le[Je[0]].length;mn0?(Et[0]=Zt,Et[1]=Zt+=It):It<0?(Et[1]=Kt,Et[0]=Kt+=It):(Et[0]=0,Et[1]=It)},r.stackOffsetExpand=function(Le,Je){if((Et=Le.length)>0){for(var st,Et,It,Zt=0,Kt=Le[0].length;Zt0){for(var st,Et=0,It=Le[Je[0]],Zt=It.length;Et0&&(Et=(st=Le[Je[0]]).length)>0){for(var st,Et,It,Zt=0,Kt=1;Kt=12)]},q:function(Dt){return 1+~~(Dt.getMonth()/3)},Q:nt,s:ft,S:H,u:Q,U:ee,V:ie,w:ae,W:ue,x:null,X:null,y:le,Y:ge,Z:fe,"%":Ye},Ut={a:function(Dt){return Ge[Dt.getUTCDay()]},A:function(Dt){return Be[Dt.getUTCDay()]},b:function(Dt){return dt[Dt.getUTCMonth()]},B:function(Dt){return Tt[Dt.getUTCMonth()]},c:null,d:me,e:me,f:de,H:_e,I:we,j:Te,L:Oe,m:ye,M:Me,p:function(Dt){return Jt[+(Dt.getUTCHours()>=12)]},q:function(Dt){return 1+~~(Dt.getUTCMonth()/3)},Q:nt,s:ft,S:ke,u:Ee,U:ze,V:Fe,w:Ve,W:Ke,x:null,X:null,y:Re,Y:qe,Z:We,"%":Ye},tt={a:function(Dt,Le,Je){var st=He.exec(Le.slice(Je));return st?(Dt.w=rt[st[0].toLowerCase()],Je+st[0].length):-1},A:function(Dt,Le,Je){var st=Ae.exec(Le.slice(Je));return st?(Dt.w=De[st[0].toLowerCase()],Je+st[0].length):-1},b:function(Dt,Le,Je){var st=kt.exec(Le.slice(Je));return st?(Dt.m=wt[st[0].toLowerCase()],Je+st[0].length):-1},B:function(Dt,Le,Je){var st=lt.exec(Le.slice(Je));return st?(Dt.m=ot[st[0].toLowerCase()],Je+st[0].length):-1},c:function(Dt,Le,Je){return St(Dt,et,Le,Je)},d:O,e:O,f:B,H:z,I:z,j:R,L:N,m:D,M:L,p:function(Dt,Le,Je){var st=Pe.exec(Le.slice(Je));return st?(Dt.p=Ie[st[0].toLowerCase()],Je+st[0].length):-1},q:E,Q:W,s:K,S:P,u:k,U:b,V:T,w,W:_,x:function(Dt,Le,Je){return St(Dt,Ot,Le,Je)},X:function(Dt,Le,Je){return St(Dt,Wt,Le,Je)},y:A,Y:M,Z:S,"%":G};function bt(Dt,Le){return function(Je){var st,Et,It,Zt=[],Kt=-1,Ht=0,mn=Dt.length;for(Je instanceof Date||(Je=new Date(+Je));++Kt53)return null;"w"in It||(It.w=1),"Z"in It?(Et=(st=c(i(It.y,0,1))).getUTCDay(),st=Et>4||Et===0?a.utcMonday.ceil(st):a.utcMonday(st),st=a.utcDay.offset(st,7*(It.V-1)),It.y=st.getUTCFullYear(),It.m=st.getUTCMonth(),It.d=st.getUTCDate()+(It.w+6)%7):(Et=(st=u(i(It.y,0,1))).getDay(),st=Et>4||Et===0?a.timeMonday.ceil(st):a.timeMonday(st),st=a.timeDay.offset(st,7*(It.V-1)),It.y=st.getFullYear(),It.m=st.getMonth(),It.d=st.getDate()+(It.w+6)%7)}else("W"in It||"U"in It)&&("w"in It||(It.w="u"in It?It.u%7:"W"in It?1:0),Et="Z"in It?c(i(It.y,0,1)).getUTCDay():u(i(It.y,0,1)).getDay(),It.m=0,It.d="W"in It?(It.w+6)%7+7*It.W-(Et+5)%7:It.w+7*It.U-(Et+6)%7);return"Z"in It?(It.H+=It.Z/100|0,It.M+=It.Z%100,c(It)):u(It)}}function St(Dt,Le,Je,st){for(var Et,It,Zt=0,Kt=Le.length,Ht=Je.length;Zt=Ht)return-1;if((Et=Le.charCodeAt(Zt++))===37){if(Et=Le.charAt(Zt++),!(It=tt[Et in d?Le.charAt(Zt++):Et])||(st=It(Dt,Je,st))<0)return-1}else if(Et!=Je.charCodeAt(st++))return-1}return st}return Vt.x=bt(Ot,Vt),Vt.X=bt(Wt,Vt),Vt.c=bt(et,Vt),Ut.x=bt(Ot,Ut),Ut.X=bt(Wt,Ut),Ut.c=bt(et,Ut),{format:function(Dt){var Le=bt(Dt+="",Vt);return Le.toString=function(){return Dt},Le},parse:function(Dt){var Le=zt(Dt+="",!1);return Le.toString=function(){return Dt},Le},utcFormat:function(Dt){var Le=bt(Dt+="",Ut);return Le.toString=function(){return Dt},Le},utcParse:function(Dt){var Le=zt(Dt+="",!0);return Le.toString=function(){return Dt},Le}}}var l,d={"-":"",_:" ",0:"0"},h=/^\s*\d+/,m=/^%/,g=/[\\^$*+?|[\]().{}]/g;function p(at,et,Ot){var Wt=at<0?"-":"",Jt=(Wt?-at:at)+"",Be=Jt.length;return Wt+(Be68?1900:2e3),Ot+Wt[0].length):-1}function S(at,et,Ot){var Wt=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(et.slice(Ot,Ot+6));return Wt?(at.Z=Wt[1]?0:-(Wt[2]+(Wt[3]||"00")),Ot+Wt[0].length):-1}function E(at,et,Ot){var Wt=h.exec(et.slice(Ot,Ot+1));return Wt?(at.q=3*Wt[0]-3,Ot+Wt[0].length):-1}function D(at,et,Ot){var Wt=h.exec(et.slice(Ot,Ot+2));return Wt?(at.m=Wt[0]-1,Ot+Wt[0].length):-1}function O(at,et,Ot){var Wt=h.exec(et.slice(Ot,Ot+2));return Wt?(at.d=+Wt[0],Ot+Wt[0].length):-1}function R(at,et,Ot){var Wt=h.exec(et.slice(Ot,Ot+3));return Wt?(at.m=0,at.d=+Wt[0],Ot+Wt[0].length):-1}function z(at,et,Ot){var Wt=h.exec(et.slice(Ot,Ot+2));return Wt?(at.H=+Wt[0],Ot+Wt[0].length):-1}function L(at,et,Ot){var Wt=h.exec(et.slice(Ot,Ot+2));return Wt?(at.M=+Wt[0],Ot+Wt[0].length):-1}function P(at,et,Ot){var Wt=h.exec(et.slice(Ot,Ot+2));return Wt?(at.S=+Wt[0],Ot+Wt[0].length):-1}function N(at,et,Ot){var Wt=h.exec(et.slice(Ot,Ot+3));return Wt?(at.L=+Wt[0],Ot+Wt[0].length):-1}function B(at,et,Ot){var Wt=h.exec(et.slice(Ot,Ot+6));return Wt?(at.L=Math.floor(Wt[0]/1e3),Ot+Wt[0].length):-1}function G(at,et,Ot){var Wt=m.exec(et.slice(Ot,Ot+1));return Wt?Ot+Wt[0].length:-1}function W(at,et,Ot){var Wt=h.exec(et.slice(Ot));return Wt?(at.Q=+Wt[0],Ot+Wt[0].length):-1}function K(at,et,Ot){var Wt=h.exec(et.slice(Ot));return Wt?(at.s=+Wt[0],Ot+Wt[0].length):-1}function te(at,et){return p(at.getDate(),et,2)}function Y(at,et){return p(at.getHours(),et,2)}function Z(at,et){return p(at.getHours()%12||12,et,2)}function re(at,et){return p(1+a.timeDay.count(a.timeYear(at),at),et,3)}function U(at,et){return p(at.getMilliseconds(),et,3)}function q(at,et){return U(at,et)+"000"}function $(at,et){return p(at.getMonth()+1,et,2)}function ne(at,et){return p(at.getMinutes(),et,2)}function H(at,et){return p(at.getSeconds(),et,2)}function Q(at){var et=at.getDay();return et===0?7:et}function ee(at,et){return p(a.timeSunday.count(a.timeYear(at)-1,at),et,2)}function ie(at,et){var Ot=at.getDay();return at=Ot>=4||Ot===0?a.timeThursday(at):a.timeThursday.ceil(at),p(a.timeThursday.count(a.timeYear(at),at)+(a.timeYear(at).getDay()===4),et,2)}function ae(at){return at.getDay()}function ue(at,et){return p(a.timeMonday.count(a.timeYear(at)-1,at),et,2)}function le(at,et){return p(at.getFullYear()%100,et,2)}function ge(at,et){return p(at.getFullYear()%1e4,et,4)}function fe(at){var et=at.getTimezoneOffset();return(et>0?"-":(et*=-1,"+"))+p(et/60|0,"0",2)+p(et%60,"0",2)}function me(at,et){return p(at.getUTCDate(),et,2)}function _e(at,et){return p(at.getUTCHours(),et,2)}function we(at,et){return p(at.getUTCHours()%12||12,et,2)}function Te(at,et){return p(1+a.utcDay.count(a.utcYear(at),at),et,3)}function Oe(at,et){return p(at.getUTCMilliseconds(),et,3)}function de(at,et){return Oe(at,et)+"000"}function ye(at,et){return p(at.getUTCMonth()+1,et,2)}function Me(at,et){return p(at.getUTCMinutes(),et,2)}function ke(at,et){return p(at.getUTCSeconds(),et,2)}function Ee(at){var et=at.getUTCDay();return et===0?7:et}function ze(at,et){return p(a.utcSunday.count(a.utcYear(at)-1,at),et,2)}function Fe(at,et){var Ot=at.getUTCDay();return at=Ot>=4||Ot===0?a.utcThursday(at):a.utcThursday.ceil(at),p(a.utcThursday.count(a.utcYear(at),at)+(a.utcYear(at).getUTCDay()===4),et,2)}function Ve(at){return at.getUTCDay()}function Ke(at,et){return p(a.utcMonday.count(a.utcYear(at)-1,at),et,2)}function Re(at,et){return p(at.getUTCFullYear()%100,et,2)}function qe(at,et){return p(at.getUTCFullYear()%1e4,et,4)}function We(){return"+0000"}function Ye(){return"%"}function nt(at){return+at}function ft(at){return Math.floor(+at/1e3)}function vt(at){return l=s(at),r.timeFormat=l.format,r.timeParse=l.parse,r.utcFormat=l.utcFormat,r.utcParse=l.utcParse,l}vt({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var Pt=Date.prototype.toISOString?function(at){return at.toISOString()}:r.utcFormat("%Y-%m-%dT%H:%M:%S.%LZ"),At=+new Date("2000-01-01T00:00:00.000Z")?function(at){var et=new Date(at);return isNaN(et)?null:et}:r.utcParse("%Y-%m-%dT%H:%M:%S.%LZ");r.isoFormat=Pt,r.isoParse=At,r.timeFormatDefaultLocale=vt,r.timeFormatLocale=s,Object.defineProperty(r,"__esModule",{value:!0})})},{"d3-time":121}],121:[function(e,o,f){(function(r,a){a(typeof f=="object"&&o!==void 0?f:(r=r||self).d3=r.d3||{})})(this,function(r){var a=new Date,u=new Date;function c(ye,Me,ke,Ee){function ze(Fe){return ye(Fe=arguments.length===0?new Date:new Date(+Fe)),Fe}return ze.floor=function(Fe){return ye(Fe=new Date(+Fe)),Fe},ze.ceil=function(Fe){return ye(Fe=new Date(Fe-1)),Me(Fe,1),ye(Fe),Fe},ze.round=function(Fe){var Ve=ze(Fe),Ke=ze.ceil(Fe);return Fe-Ve0))return qe;do qe.push(Re=new Date(+Fe)),Me(Fe,Ke),ye(Fe);while(Re=Ve)for(;ye(Ve),!Fe(Ve);)Ve.setTime(Ve-1)},function(Ve,Ke){if(Ve>=Ve)if(Ke<0)for(;++Ke<=0;)for(;Me(Ve,-1),!Fe(Ve););else for(;--Ke>=0;)for(;Me(Ve,1),!Fe(Ve););})},ke&&(ze.count=function(Fe,Ve){return a.setTime(+Fe),u.setTime(+Ve),ye(a),ye(u),Math.floor(ke(a,u))},ze.every=function(Fe){return Fe=Math.floor(Fe),isFinite(Fe)&&Fe>0?Fe>1?ze.filter(Ee?function(Ve){return Ee(Ve)%Fe==0}:function(Ve){return ze.count(0,Ve)%Fe==0}):ze:null}),ze}var i=c(function(){},function(ye,Me){ye.setTime(+ye+Me)},function(ye,Me){return Me-ye});i.every=function(ye){return ye=Math.floor(ye),isFinite(ye)&&ye>0?ye>1?c(function(Me){Me.setTime(Math.floor(Me/ye)*ye)},function(Me,ke){Me.setTime(+Me+ke*ye)},function(Me,ke){return(ke-Me)/ye}):i:null};var s=i.range,l=c(function(ye){ye.setTime(ye-ye.getMilliseconds())},function(ye,Me){ye.setTime(+ye+1e3*Me)},function(ye,Me){return(Me-ye)/1e3},function(ye){return ye.getUTCSeconds()}),d=l.range,h=c(function(ye){ye.setTime(ye-ye.getMilliseconds()-1e3*ye.getSeconds())},function(ye,Me){ye.setTime(+ye+6e4*Me)},function(ye,Me){return(Me-ye)/6e4},function(ye){return ye.getMinutes()}),m=h.range,g=c(function(ye){ye.setTime(ye-ye.getMilliseconds()-1e3*ye.getSeconds()-6e4*ye.getMinutes())},function(ye,Me){ye.setTime(+ye+36e5*Me)},function(ye,Me){return(Me-ye)/36e5},function(ye){return ye.getHours()}),p=g.range,v=c(function(ye){ye.setHours(0,0,0,0)},function(ye,Me){ye.setDate(ye.getDate()+Me)},function(ye,Me){return(Me-ye-6e4*(Me.getTimezoneOffset()-ye.getTimezoneOffset()))/864e5},function(ye){return ye.getDate()-1}),y=v.range;function x(ye){return c(function(Me){Me.setDate(Me.getDate()-(Me.getDay()+7-ye)%7),Me.setHours(0,0,0,0)},function(Me,ke){Me.setDate(Me.getDate()+7*ke)},function(Me,ke){return(ke-Me-6e4*(ke.getTimezoneOffset()-Me.getTimezoneOffset()))/6048e5})}var w=x(0),k=x(1),b=x(2),T=x(3),_=x(4),M=x(5),A=x(6),S=w.range,E=k.range,D=b.range,O=T.range,R=_.range,z=M.range,L=A.range,P=c(function(ye){ye.setDate(1),ye.setHours(0,0,0,0)},function(ye,Me){ye.setMonth(ye.getMonth()+Me)},function(ye,Me){return Me.getMonth()-ye.getMonth()+12*(Me.getFullYear()-ye.getFullYear())},function(ye){return ye.getMonth()}),N=P.range,B=c(function(ye){ye.setMonth(0,1),ye.setHours(0,0,0,0)},function(ye,Me){ye.setFullYear(ye.getFullYear()+Me)},function(ye,Me){return Me.getFullYear()-ye.getFullYear()},function(ye){return ye.getFullYear()});B.every=function(ye){return isFinite(ye=Math.floor(ye))&&ye>0?c(function(Me){Me.setFullYear(Math.floor(Me.getFullYear()/ye)*ye),Me.setMonth(0,1),Me.setHours(0,0,0,0)},function(Me,ke){Me.setFullYear(Me.getFullYear()+ke*ye)}):null};var G=B.range,W=c(function(ye){ye.setUTCSeconds(0,0)},function(ye,Me){ye.setTime(+ye+6e4*Me)},function(ye,Me){return(Me-ye)/6e4},function(ye){return ye.getUTCMinutes()}),K=W.range,te=c(function(ye){ye.setUTCMinutes(0,0,0)},function(ye,Me){ye.setTime(+ye+36e5*Me)},function(ye,Me){return(Me-ye)/36e5},function(ye){return ye.getUTCHours()}),Y=te.range,Z=c(function(ye){ye.setUTCHours(0,0,0,0)},function(ye,Me){ye.setUTCDate(ye.getUTCDate()+Me)},function(ye,Me){return(Me-ye)/864e5},function(ye){return ye.getUTCDate()-1}),re=Z.range;function U(ye){return c(function(Me){Me.setUTCDate(Me.getUTCDate()-(Me.getUTCDay()+7-ye)%7),Me.setUTCHours(0,0,0,0)},function(Me,ke){Me.setUTCDate(Me.getUTCDate()+7*ke)},function(Me,ke){return(ke-Me)/6048e5})}var q=U(0),$=U(1),ne=U(2),H=U(3),Q=U(4),ee=U(5),ie=U(6),ae=q.range,ue=$.range,le=ne.range,ge=H.range,fe=Q.range,me=ee.range,_e=ie.range,we=c(function(ye){ye.setUTCDate(1),ye.setUTCHours(0,0,0,0)},function(ye,Me){ye.setUTCMonth(ye.getUTCMonth()+Me)},function(ye,Me){return Me.getUTCMonth()-ye.getUTCMonth()+12*(Me.getUTCFullYear()-ye.getUTCFullYear())},function(ye){return ye.getUTCMonth()}),Te=we.range,Oe=c(function(ye){ye.setUTCMonth(0,1),ye.setUTCHours(0,0,0,0)},function(ye,Me){ye.setUTCFullYear(ye.getUTCFullYear()+Me)},function(ye,Me){return Me.getUTCFullYear()-ye.getUTCFullYear()},function(ye){return ye.getUTCFullYear()});Oe.every=function(ye){return isFinite(ye=Math.floor(ye))&&ye>0?c(function(Me){Me.setUTCFullYear(Math.floor(Me.getUTCFullYear()/ye)*ye),Me.setUTCMonth(0,1),Me.setUTCHours(0,0,0,0)},function(Me,ke){Me.setUTCFullYear(Me.getUTCFullYear()+ke*ye)}):null};var de=Oe.range;r.timeDay=v,r.timeDays=y,r.timeFriday=M,r.timeFridays=z,r.timeHour=g,r.timeHours=p,r.timeInterval=c,r.timeMillisecond=i,r.timeMilliseconds=s,r.timeMinute=h,r.timeMinutes=m,r.timeMonday=k,r.timeMondays=E,r.timeMonth=P,r.timeMonths=N,r.timeSaturday=A,r.timeSaturdays=L,r.timeSecond=l,r.timeSeconds=d,r.timeSunday=w,r.timeSundays=S,r.timeThursday=_,r.timeThursdays=R,r.timeTuesday=b,r.timeTuesdays=D,r.timeWednesday=T,r.timeWednesdays=O,r.timeWeek=w,r.timeWeeks=S,r.timeYear=B,r.timeYears=G,r.utcDay=Z,r.utcDays=re,r.utcFriday=ee,r.utcFridays=me,r.utcHour=te,r.utcHours=Y,r.utcMillisecond=i,r.utcMilliseconds=s,r.utcMinute=W,r.utcMinutes=K,r.utcMonday=$,r.utcMondays=ue,r.utcMonth=we,r.utcMonths=Te,r.utcSaturday=ie,r.utcSaturdays=_e,r.utcSecond=l,r.utcSeconds=d,r.utcSunday=q,r.utcSundays=ae,r.utcThursday=Q,r.utcThursdays=fe,r.utcTuesday=ne,r.utcTuesdays=le,r.utcWednesday=H,r.utcWednesdays=ge,r.utcWeek=q,r.utcWeeks=ae,r.utcYear=Oe,r.utcYears=de,Object.defineProperty(r,"__esModule",{value:!0})})},{}],122:[function(e,o,f){arguments[4][121][0].apply(f,arguments)},{dup:121}],123:[function(e,o,f){(function(r,a){a(typeof f=="object"&&o!==void 0?f:(r=r||self).d3=r.d3||{})})(this,function(r){var a,u,c=0,i=0,s=0,l=0,d=0,h=0,m=typeof performance=="object"&&performance.now?performance:Date,g=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(_){setTimeout(_,17)};function p(){return d||(g(v),d=m.now()+h)}function v(){d=0}function y(){this._call=this._time=this._next=null}function x(_,M,A){var S=new y;return S.restart(_,M,A),S}function w(){p(),++c;for(var _,M=a;M;)(_=d-M._time)>=0&&M._call.call(null,_),M=M._next;--c}function k(){d=(l=m.now())+h,c=i=0;try{w()}finally{c=0,function(){for(var _,M,A=a,S=1/0;A;)A._call?(S>A._time&&(S=A._time),_=A,A=A._next):(M=A._next,A._next=null,A=_?_._next=M:a=M);u=_,T(S)}(),d=0}}function b(){var _=m.now(),M=_-l;M>1e3&&(h-=M,l=_)}function T(_){c||(i&&(i=clearTimeout(i)),_-d>24?(_<1/0&&(i=setTimeout(k,_-m.now()-h)),s&&(s=clearInterval(s))):(s||(l=m.now(),s=setInterval(b,1e3)),c=1,g(k)))}y.prototype=x.prototype={constructor:y,restart:function(_,M,A){if(typeof _!="function")throw new TypeError("callback is not a function");A=(A==null?p():+A)+(M==null?0:+M),this._next||u===this||(u?u._next=this:a=this,u=this),this._call=_,this._time=A,T()},stop:function(){this._call&&(this._call=null,this._time=1/0,T())}},r.interval=function(_,M,A){var S=new y,E=M;return M==null?(S.restart(_,M,A),S):(M=+M,A=A==null?p():+A,S.restart(function D(O){O+=E,S.restart(D,E+=M,A),_(O)},M,A),S)},r.now=p,r.timeout=function(_,M,A){var S=new y;return M=M==null?0:+M,S.restart(function(E){S.stop(),_(E+M)},M,A),S},r.timer=x,r.timerFlush=w,Object.defineProperty(r,"__esModule",{value:!0})})},{}],124:[function(e,o,f){o.exports=function(){for(var r=0;rh*m){var x=(y-v)/h;d[p]=1e3*x}}return d}function c(i){for(var s=[],l=i[0];l<=i[1];l++)for(var d=String.fromCharCode(l),h=i[0];h0)return function(u,c){var i,s;for(i=new Array(u),s=0;s80*L){P=B=R[0],N=G=R[1];for(var q=L;qB&&(B=W),K>G&&(G=K);te=(te=Math.max(B-P,G-N))!==0?1/te:0}return c(re,U,L,P,N,te),U}function a(R,z,L,P,N){var B,G;if(N===O(R,z,L,P)>0)for(B=z;B=z;B-=P)G=S(B,R[B],R[B+1],G);return G&&k(G,G.next)&&(E(G),G=G.next),G}function u(R,z){if(!R)return R;z||(z=R);var L,P=R;do if(L=!1,P.steiner||!k(P,P.next)&&w(P.prev,P,P.next)!==0)P=P.next;else{if(E(P),(P=z=P.prev)===P.next)break;L=!0}while(L||P!==z);return z}function c(R,z,L,P,N,B,G){if(R){!G&&B&&function(Y,Z,re,U){var q=Y;do q.z===null&&(q.z=p(q.x,q.y,Z,re,U)),q.prevZ=q.prev,q.nextZ=q.next,q=q.next;while(q!==Y);q.prevZ.nextZ=null,q.prevZ=null,function($){var ne,H,Q,ee,ie,ae,ue,le,ge=1;do{for(H=$,$=null,ie=null,ae=0;H;){for(ae++,Q=H,ue=0,ne=0;ne0||le>0&&Q;)ue!==0&&(le===0||!Q||H.z<=Q.z)?(ee=H,H=H.nextZ,ue--):(ee=Q,Q=Q.nextZ,le--),ie?ie.nextZ=ee:$=ee,ee.prevZ=ie,ie=ee;H=Q}ie.nextZ=null,ge*=2}while(ae>1)}(q)}(R,P,N,B);for(var W,K,te=R;R.prev!==R.next;)if(W=R.prev,K=R.next,B?s(R,P,N,B):i(R))z.push(W.i/L),z.push(R.i/L),z.push(K.i/L),E(R),R=K.next,te=K.next;else if((R=K)===te){G?G===1?c(R=l(u(R),z,L),z,L,P,N,B,2):G===2&&d(R,z,L,P,N,B):c(u(R),z,L,P,N,B,1);break}}}function i(R){var z=R.prev,L=R,P=R.next;if(w(z,L,P)>=0)return!1;for(var N=R.next.next;N!==R.prev;){if(y(z.x,z.y,L.x,L.y,P.x,P.y,N.x,N.y)&&w(N.prev,N,N.next)>=0)return!1;N=N.next}return!0}function s(R,z,L,P){var N=R.prev,B=R,G=R.next;if(w(N,B,G)>=0)return!1;for(var W=N.xB.x?N.x>G.x?N.x:G.x:B.x>G.x?B.x:G.x,Y=N.y>B.y?N.y>G.y?N.y:G.y:B.y>G.y?B.y:G.y,Z=p(W,K,z,L,P),re=p(te,Y,z,L,P),U=R.prevZ,q=R.nextZ;U&&U.z>=Z&&q&&q.z<=re;){if(U!==R.prev&&U!==R.next&&y(N.x,N.y,B.x,B.y,G.x,G.y,U.x,U.y)&&w(U.prev,U,U.next)>=0||(U=U.prevZ,q!==R.prev&&q!==R.next&&y(N.x,N.y,B.x,B.y,G.x,G.y,q.x,q.y)&&w(q.prev,q,q.next)>=0))return!1;q=q.nextZ}for(;U&&U.z>=Z;){if(U!==R.prev&&U!==R.next&&y(N.x,N.y,B.x,B.y,G.x,G.y,U.x,U.y)&&w(U.prev,U,U.next)>=0)return!1;U=U.prevZ}for(;q&&q.z<=re;){if(q!==R.prev&&q!==R.next&&y(N.x,N.y,B.x,B.y,G.x,G.y,q.x,q.y)&&w(q.prev,q,q.next)>=0)return!1;q=q.nextZ}return!0}function l(R,z,L){var P=R;do{var N=P.prev,B=P.next.next;!k(N,B)&&b(N,P,P.next,B)&&M(N,B)&&M(B,N)&&(z.push(N.i/L),z.push(P.i/L),z.push(B.i/L),E(P),E(P.next),P=R=B),P=P.next}while(P!==R);return u(P)}function d(R,z,L,P,N,B){var G=R;do{for(var W=G.next.next;W!==G.prev;){if(G.i!==W.i&&x(G,W)){var K=A(G,W);return G=u(G,G.next),K=u(K,K.next),c(G,z,L,P,N,B),void c(K,z,L,P,N,B)}W=W.next}G=G.next}while(G!==R)}function h(R,z){return R.x-z.x}function m(R,z){if(z=function(P,N){var B,G=N,W=P.x,K=P.y,te=-1/0;do{if(K<=G.y&&K>=G.next.y&&G.next.y!==G.y){var Y=G.x+(K-G.y)*(G.next.x-G.x)/(G.next.y-G.y);if(Y<=W&&Y>te){if(te=Y,Y===W){if(K===G.y)return G;if(K===G.next.y)return G.next}B=G.x=G.x&&G.x>=U&&W!==G.x&&y(KB.x||G.x===B.x&&g(B,G)))&&(B=G,$=Z)),G=G.next;while(G!==re);return B}(R,z)){var L=A(z,R);u(z,z.next),u(L,L.next)}}function g(R,z){return w(R.prev,R,z.prev)<0&&w(z.next,R,R.next)<0}function p(R,z,L,P,N){return(R=1431655765&((R=858993459&((R=252645135&((R=16711935&((R=32767*(R-L)*N)|R<<8))|R<<4))|R<<2))|R<<1))|(z=1431655765&((z=858993459&((z=252645135&((z=16711935&((z=32767*(z-P)*N)|z<<8))|z<<4))|z<<2))|z<<1))<<1}function v(R){var z=R,L=R;do(z.x=0&&(R-G)*(P-W)-(L-G)*(z-W)>=0&&(L-G)*(B-W)-(N-G)*(P-W)>=0}function x(R,z){return R.next.i!==z.i&&R.prev.i!==z.i&&!function(L,P){var N=L;do{if(N.i!==L.i&&N.next.i!==L.i&&N.i!==P.i&&N.next.i!==P.i&&b(N,N.next,L,P))return!0;N=N.next}while(N!==L);return!1}(R,z)&&(M(R,z)&&M(z,R)&&function(L,P){var N=L,B=!1,G=(L.x+P.x)/2,W=(L.y+P.y)/2;do N.y>W!=N.next.y>W&&N.next.y!==N.y&&G<(N.next.x-N.x)*(W-N.y)/(N.next.y-N.y)+N.x&&(B=!B),N=N.next;while(N!==L);return B}(R,z)&&(w(R.prev,R,z.prev)||w(R,z.prev,z))||k(R,z)&&w(R.prev,R,R.next)>0&&w(z.prev,z,z.next)>0)}function w(R,z,L){return(z.y-R.y)*(L.x-z.x)-(z.x-R.x)*(L.y-z.y)}function k(R,z){return R.x===z.x&&R.y===z.y}function b(R,z,L,P){var N=_(w(R,z,L)),B=_(w(R,z,P)),G=_(w(L,P,R)),W=_(w(L,P,z));return N!==B&&G!==W||!(N!==0||!T(R,L,z))||!(B!==0||!T(R,P,z))||!(G!==0||!T(L,R,P))||!(W!==0||!T(L,z,P))}function T(R,z,L){return z.x<=Math.max(R.x,L.x)&&z.x>=Math.min(R.x,L.x)&&z.y<=Math.max(R.y,L.y)&&z.y>=Math.min(R.y,L.y)}function _(R){return R>0?1:R<0?-1:0}function M(R,z){return w(R.prev,R,R.next)<0?w(R,z,R.next)>=0&&w(R,R.prev,z)>=0:w(R,z,R.prev)<0||w(R,R.next,z)<0}function A(R,z){var L=new D(R.i,R.x,R.y),P=new D(z.i,z.x,z.y),N=R.next,B=z.prev;return R.next=z,z.prev=R,L.next=N,N.prev=L,P.next=L,L.prev=P,B.next=P,P.prev=B,P}function S(R,z,L,P){var N=new D(R,z,L);return P?(N.next=P.next,N.prev=P,P.next.prev=N,P.next=N):(N.prev=N,N.next=N),N}function E(R){R.next.prev=R.prev,R.prev.next=R.next,R.prevZ&&(R.prevZ.nextZ=R.nextZ),R.nextZ&&(R.nextZ.prevZ=R.prevZ)}function D(R,z,L){this.i=R,this.x=z,this.y=L,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function O(R,z,L,P){for(var N=0,B=z,G=L-P;B0&&(P+=R[N-1].length,L.holes.push(P))}return L}},{}],130:[function(e,o,f){var r=e("strongly-connected-components");o.exports=function(a,u){var c,i=[],s=[],l=[],d={},h=[];function m(b){var T,_,M=!1;for(s.push(b),l[b]=!0,T=0;T=D})})(b);for(var T,_=r(a).components.filter(function(D){return D.length>1}),M=1/0,A=0;A<_.length;A++)for(var S=0;S<_[A].length;S++)_[A][S]=55296&&T<=56319&&(S+=v[++x]),S=E?m.call(E,D,S,w):S,y?(g.value=S,p(k,w,g)):k[w]=S,++w;b=w}}if(b===void 0)for(b=c(v.length),y&&(k=new y(b)),x=0;x0?1:-1}},{}],141:[function(e,o,f){var r=e("../math/sign"),a=Math.abs,u=Math.floor;o.exports=function(c){return isNaN(c)?0:(c=Number(c))!==0&&isFinite(c)?r(c)*u(a(c)):c}},{"../math/sign":138}],142:[function(e,o,f){var r=e("./to-integer"),a=Math.max;o.exports=function(u){return a(0,r(u))}},{"./to-integer":141}],143:[function(e,o,f){var r=e("./valid-callable"),a=e("./valid-value"),u=Function.prototype.bind,c=Function.prototype.call,i=Object.keys,s=Object.prototype.propertyIsEnumerable;o.exports=function(l,d){return function(h,m){var g,p=arguments[2],v=arguments[3];return h=Object(a(h)),r(m),g=i(h),v&&g.sort(typeof v=="function"?u.call(v,h):void 0),typeof l!="function"&&(l=g[l]),c.call(l,g,function(y,x){return s.call(h,y)?c.call(m,p,h[y],y,h,x):d})}}},{"./valid-callable":160,"./valid-value":162}],144:[function(e,o,f){o.exports=e("./is-implemented")()?Object.assign:e("./shim")},{"./is-implemented":145,"./shim":146}],145:[function(e,o,f){o.exports=function(){var r,a=Object.assign;return typeof a=="function"&&(a(r={foo:"raz"},{bar:"dwa"},{trzy:"trzy"}),r.foo+r.bar+r.trzy==="razdwatrzy")}},{}],146:[function(e,o,f){var r=e("../keys"),a=e("../valid-value"),u=Math.max;o.exports=function(c,i){var s,l,d,h=u(arguments.length,2);for(c=Object(a(c)),d=function(m){try{c[m]=i[m]}catch(g){s||(s=g)}},l=1;l-1}},{}],166:[function(e,o,f){var r=Object.prototype.toString,a=r.call("");o.exports=function(u){return typeof u=="string"||u&&typeof u=="object"&&(u instanceof String||r.call(u)===a)||!1}},{}],167:[function(e,o,f){var r=Object.create(null),a=Math.random;o.exports=function(){var u;do u=a().toString(36).slice(2);while(r[u]);return u}},{}],168:[function(e,o,f){var r,a=e("es5-ext/object/set-prototype-of"),u=e("es5-ext/string/#/contains"),c=e("d"),i=e("es6-symbol"),s=e("./"),l=Object.defineProperty;r=o.exports=function(d,h){if(!(this instanceof r))throw new TypeError("Constructor requires 'new'");s.call(this,d),h=h?u.call(h,"key+value")?"key+value":u.call(h,"key")?"key":"value":"value",l(this,"__kind__",c("",h))},a&&a(r,s),delete r.prototype.constructor,r.prototype=Object.create(s.prototype,{_resolve:c(function(d){return this.__kind__==="value"?this.__list__[d]:this.__kind__==="key+value"?[d,this.__list__[d]]:d})}),l(r.prototype,i.toStringTag,c("c","Array Iterator"))},{"./":171,d:106,"es5-ext/object/set-prototype-of":157,"es5-ext/string/#/contains":163,"es6-symbol":175}],169:[function(e,o,f){var r=e("es5-ext/function/is-arguments"),a=e("es5-ext/object/valid-callable"),u=e("es5-ext/string/is-string"),c=e("./get"),i=Array.isArray,s=Function.prototype.call,l=Array.prototype.some;o.exports=function(d,h){var m,g,p,v,y,x,w,k,b=arguments[2];if(i(d)||r(d)?m="array":u(d)?m="string":d=c(d),a(h),p=function(){v=!0},m!=="array")if(m!=="string")for(g=d.next();!g.done;){if(s.call(h,b,g.value,p),v)return;g=d.next()}else for(x=d.length,y=0;y=55296&&k<=56319&&(w+=d[++y]),s.call(h,b,w,p),!v);++y);else l.call(d,function(T){return s.call(h,b,T,p),v})}},{"./get":170,"es5-ext/function/is-arguments":135,"es5-ext/object/valid-callable":160,"es5-ext/string/is-string":166}],170:[function(e,o,f){var r=e("es5-ext/function/is-arguments"),a=e("es5-ext/string/is-string"),u=e("./array"),c=e("./string"),i=e("./valid-iterable"),s=e("es6-symbol").iterator;o.exports=function(l){return typeof i(l)[s]=="function"?l[s]():r(l)?new u(l):a(l)?new c(l):new u(l)}},{"./array":168,"./string":173,"./valid-iterable":174,"es5-ext/function/is-arguments":135,"es5-ext/string/is-string":166,"es6-symbol":175}],171:[function(e,o,f){var r,a=e("es5-ext/array/#/clear"),u=e("es5-ext/object/assign"),c=e("es5-ext/object/valid-callable"),i=e("es5-ext/object/valid-value"),s=e("d"),l=e("d/auto-bind"),d=e("es6-symbol"),h=Object.defineProperty,m=Object.defineProperties;o.exports=r=function(g,p){if(!(this instanceof r))throw new TypeError("Constructor requires 'new'");m(this,{__list__:s("w",i(g)),__context__:s("w",p),__nextIndex__:s("w",0)}),p&&(c(p.on),p.on("_add",this._onAdd),p.on("_delete",this._onDelete),p.on("_clear",this._onClear))},delete r.prototype.constructor,m(r.prototype,u({_next:s(function(){var g;if(this.__list__)return this.__redo__&&(g=this.__redo__.shift())!==void 0?g:this.__nextIndex__=this.__nextIndex__||(++this.__nextIndex__,this.__redo__?(this.__redo__.forEach(function(p,v){p>=g&&(this.__redo__[v]=++p)},this),this.__redo__.push(g)):h(this,"__redo__",s("c",[g])))}),_onDelete:s(function(g){var p;g>=this.__nextIndex__||(--this.__nextIndex__,this.__redo__&&((p=this.__redo__.indexOf(g))!==-1&&this.__redo__.splice(p,1),this.__redo__.forEach(function(v,y){v>g&&(this.__redo__[y]=--v)},this)))}),_onClear:s(function(){this.__redo__&&a.call(this.__redo__),this.__nextIndex__=0})}))),h(r.prototype,d.iterator,s(function(){return this}))},{d:106,"d/auto-bind":105,"es5-ext/array/#/clear":131,"es5-ext/object/assign":144,"es5-ext/object/valid-callable":160,"es5-ext/object/valid-value":162,"es6-symbol":175}],172:[function(e,o,f){var r=e("es5-ext/function/is-arguments"),a=e("es5-ext/object/is-value"),u=e("es5-ext/string/is-string"),c=e("es6-symbol").iterator,i=Array.isArray;o.exports=function(s){return!!a(s)&&(!!i(s)||!!u(s)||!!r(s)||typeof s[c]=="function")}},{"es5-ext/function/is-arguments":135,"es5-ext/object/is-value":151,"es5-ext/string/is-string":166,"es6-symbol":175}],173:[function(e,o,f){var r,a=e("es5-ext/object/set-prototype-of"),u=e("d"),c=e("es6-symbol"),i=e("./"),s=Object.defineProperty;r=o.exports=function(l){if(!(this instanceof r))throw new TypeError("Constructor requires 'new'");l=String(l),i.call(this,l),s(this,"__length__",u("",l.length))},a&&a(r,i),delete r.prototype.constructor,r.prototype=Object.create(i.prototype,{_next:u(function(){if(this.__list__)return this.__nextIndex__=55296&&d<=56319?h+this.__list__[this.__nextIndex__++]:h})}),s(r.prototype,c.toStringTag,u("c","String Iterator"))},{"./":171,d:106,"es5-ext/object/set-prototype-of":157,"es6-symbol":175}],174:[function(e,o,f){var r=e("./is-iterable");o.exports=function(a){if(!r(a))throw new TypeError(a+" is not iterable");return a}},{"./is-iterable":172}],175:[function(e,o,f){o.exports=e("./is-implemented")()?e("ext/global-this").Symbol:e("./polyfill")},{"./is-implemented":176,"./polyfill":181,"ext/global-this":188}],176:[function(e,o,f){var r=e("ext/global-this"),a={object:!0,symbol:!0};o.exports=function(){var u,c=r.Symbol;if(typeof c!="function")return!1;u=c("test symbol");try{String(u)}catch{return!1}return!!a[typeof c.iterator]&&!!a[typeof c.toPrimitive]&&!!a[typeof c.toStringTag]}},{"ext/global-this":188}],177:[function(e,o,f){o.exports=function(r){return!!r&&(typeof r=="symbol"||!!r.constructor&&r.constructor.name==="Symbol"&&r[r.constructor.toStringTag]==="Symbol")}},{}],178:[function(e,o,f){var r=e("d"),a=Object.create,u=Object.defineProperty,c=Object.prototype,i=a(null);o.exports=function(s){for(var l,d,h=0;i[s+(h||"")];)++h;return i[s+=h||""]=!0,u(c,l="@@"+s,r.gs(null,function(m){d||(d=!0,u(this,l,r(m)),d=!1)})),l}},{d:106}],179:[function(e,o,f){var r=e("d"),a=e("ext/global-this").Symbol;o.exports=function(u){return Object.defineProperties(u,{hasInstance:r("",a&&a.hasInstance||u("hasInstance")),isConcatSpreadable:r("",a&&a.isConcatSpreadable||u("isConcatSpreadable")),iterator:r("",a&&a.iterator||u("iterator")),match:r("",a&&a.match||u("match")),replace:r("",a&&a.replace||u("replace")),search:r("",a&&a.search||u("search")),species:r("",a&&a.species||u("species")),split:r("",a&&a.split||u("split")),toPrimitive:r("",a&&a.toPrimitive||u("toPrimitive")),toStringTag:r("",a&&a.toStringTag||u("toStringTag")),unscopables:r("",a&&a.unscopables||u("unscopables"))})}},{d:106,"ext/global-this":188}],180:[function(e,o,f){var r=e("d"),a=e("../../../validate-symbol"),u=Object.create(null);o.exports=function(c){return Object.defineProperties(c,{for:r(function(i){return u[i]?u[i]:u[i]=c(String(i))}),keyFor:r(function(i){var s;for(s in a(i),u)if(u[s]===i)return s})})}},{"../../../validate-symbol":182,d:106}],181:[function(e,o,f){var r,a,u,c=e("d"),i=e("./validate-symbol"),s=e("ext/global-this").Symbol,l=e("./lib/private/generate-name"),d=e("./lib/private/setup/standard-symbols"),h=e("./lib/private/setup/symbol-registry"),m=Object.create,g=Object.defineProperties,p=Object.defineProperty;if(typeof s=="function")try{String(s()),u=!0}catch{}else s=null;a=function(v){if(this instanceof a)throw new TypeError("Symbol is not a constructor");return r(v)},o.exports=r=function v(y){var x;if(this instanceof v)throw new TypeError("Symbol is not a constructor");return u?s(y):(x=m(a.prototype),y=y===void 0?"":String(y),g(x,{__description__:c("",y),__name__:c("",l(y))}))},d(r),h(r),g(a.prototype,{constructor:c(r),toString:c("",function(){return this.__name__})}),g(r.prototype,{toString:c(function(){return"Symbol ("+i(this).__description__+")"}),valueOf:c(function(){return i(this)})}),p(r.prototype,r.toPrimitive,c("",function(){var v=i(this);return typeof v=="symbol"?v:v.toString()})),p(r.prototype,r.toStringTag,c("c","Symbol")),p(a.prototype,r.toStringTag,c("c",r.prototype[r.toStringTag])),p(a.prototype,r.toPrimitive,c("c",r.prototype[r.toPrimitive]))},{"./lib/private/generate-name":178,"./lib/private/setup/standard-symbols":179,"./lib/private/setup/symbol-registry":180,"./validate-symbol":182,d:106,"ext/global-this":188}],182:[function(e,o,f){var r=e("./is-symbol");o.exports=function(a){if(!r(a))throw new TypeError(a+" is not a symbol");return a}},{"./is-symbol":177}],183:[function(e,o,f){o.exports=e("./is-implemented")()?WeakMap:e("./polyfill")},{"./is-implemented":184,"./polyfill":186}],184:[function(e,o,f){o.exports=function(){var r,a;if(typeof WeakMap!="function")return!1;try{r=new WeakMap([[a={},"one"],[{},"two"],[{},"three"]])}catch{return!1}return String(r)==="[object WeakMap]"&&typeof r.set=="function"&&r.set({},1)===r&&typeof r.delete=="function"&&typeof r.has=="function"&&r.get(a)==="one"}},{}],185:[function(e,o,f){o.exports=typeof WeakMap=="function"&&Object.prototype.toString.call(new WeakMap)==="[object WeakMap]"},{}],186:[function(e,o,f){var r,a=e("es5-ext/object/is-value"),u=e("es5-ext/object/set-prototype-of"),c=e("es5-ext/object/valid-object"),i=e("es5-ext/object/valid-value"),s=e("es5-ext/string/random-uniq"),l=e("d"),d=e("es6-iterator/get"),h=e("es6-iterator/for-of"),m=e("es6-symbol").toStringTag,g=e("./is-native-implemented"),p=Array.isArray,v=Object.defineProperty,y=Object.prototype.hasOwnProperty,x=Object.getPrototypeOf;o.exports=r=function(){var w,k=arguments[0];if(!(this instanceof r))throw new TypeError("Constructor requires 'new'");return w=g&&u&&WeakMap!==r?u(new WeakMap,x(this)):this,a(k)&&(p(k)||(k=d(k))),v(w,"__weakMapData__",l("c","$weakMap$"+s())),k&&h(k,function(b){i(b),w.set(b[0],b[1])}),w},g&&(u&&u(r,WeakMap),r.prototype=Object.create(WeakMap.prototype,{constructor:l(r)})),Object.defineProperties(r.prototype,{delete:l(function(w){return!!y.call(c(w),this.__weakMapData__)&&(delete w[this.__weakMapData__],!0)}),get:l(function(w){if(y.call(c(w),this.__weakMapData__))return w[this.__weakMapData__]}),has:l(function(w){return y.call(c(w),this.__weakMapData__)}),set:l(function(w,k){return v(c(w),this.__weakMapData__,l("c",k)),this}),toString:l(function(){return"[object WeakMap]"})}),v(r.prototype,m,l("c","WeakMap"))},{"./is-native-implemented":185,d:106,"es5-ext/object/is-value":151,"es5-ext/object/set-prototype-of":157,"es5-ext/object/valid-object":161,"es5-ext/object/valid-value":162,"es5-ext/string/random-uniq":167,"es6-iterator/for-of":169,"es6-iterator/get":170,"es6-symbol":175}],187:[function(e,o,f){var r=function(){if(typeof self=="object"&&self)return self;if(typeof window=="object"&&window)return window;throw new Error("Unable to resolve global `this`")};o.exports=function(){if(this)return this;try{Object.defineProperty(Object.prototype,"__global__",{get:function(){return this},configurable:!0})}catch{return r()}try{return __global__||r()}finally{delete Object.prototype.__global__}}()},{}],188:[function(e,o,f){o.exports=e("./is-implemented")()?globalThis:e("./implementation")},{"./implementation":187,"./is-implemented":189}],189:[function(e,o,f){o.exports=function(){return typeof globalThis=="object"&&!!globalThis&&globalThis.Array===Array}},{}],190:[function(e,o,f){var r=e("is-string-blank");o.exports=function(a){var u=typeof a;if(u==="string"){var c=a;if((a=+a)==0&&r(c))return!1}else if(u!=="number")return!1;return a-a<1}},{"is-string-blank":237}],191:[function(e,o,f){var r=e("dtype");o.exports=function(a,u,c){if(!a)throw new TypeError("must specify data as first parameter");if(c=0|+(c||0),Array.isArray(a)&&a[0]&&typeof a[0][0]=="number"){var i,s,l,d,h=a[0].length,m=a.length*h;u&&typeof u!="string"||(u=new(r(u||"float32"))(m+c));var g=u.length-c;if(m!==g)throw new Error("source length "+m+" ("+h+"x"+a.length+") does not match destination length "+g);for(i=0,l=c;ic[0]-l[0]/2&&(v=l[0]/2,y+=l[1]);return i}},{"css-font/stringify":102}],193:[function(e,o,f){function r(i,s){s||(s={}),(typeof i=="string"||Array.isArray(i))&&(s.family=i);var l=Array.isArray(s.family)?s.family.join(", "):s.family;if(!l)throw Error("`family` must be defined");var d=s.size||s.fontSize||s.em||48,h=s.weight||s.fontWeight||"",m=(i=[s.style||s.fontStyle||"",h,d].join(" ")+"px "+l,s.origin||"top");if(r.cache[l]&&d<=r.cache[l].em)return a(r.cache[l],m);var g=s.canvas||r.canvas,p=g.getContext("2d"),v={upper:s.upper!==void 0?s.upper:"H",lower:s.lower!==void 0?s.lower:"x",descent:s.descent!==void 0?s.descent:"p",ascent:s.ascent!==void 0?s.ascent:"h",tittle:s.tittle!==void 0?s.tittle:"i",overshoot:s.overshoot!==void 0?s.overshoot:"O"},y=Math.ceil(1.5*d);g.height=y,g.width=.5*y,p.font=i;var x={top:0};p.clearRect(0,0,y,y),p.textBaseline="top",p.fillStyle="black",p.fillText("H",0,0);var w=u(p.getImageData(0,0,y,y));p.clearRect(0,0,y,y),p.textBaseline="bottom",p.fillText("H",0,y);var k=u(p.getImageData(0,0,y,y));x.lineHeight=x.bottom=y-k+w,p.clearRect(0,0,y,y),p.textBaseline="alphabetic",p.fillText("H",0,y);var b=y-u(p.getImageData(0,0,y,y))-1+w;x.baseline=x.alphabetic=b,p.clearRect(0,0,y,y),p.textBaseline="middle",p.fillText("H",0,.5*y);var T=u(p.getImageData(0,0,y,y));x.median=x.middle=y-T-1+w-.5*y,p.clearRect(0,0,y,y),p.textBaseline="hanging",p.fillText("H",0,.5*y);var _=u(p.getImageData(0,0,y,y));x.hanging=y-_-1+w-.5*y,p.clearRect(0,0,y,y),p.textBaseline="ideographic",p.fillText("H",0,y);var M=u(p.getImageData(0,0,y,y));if(x.ideographic=y-M-1+w,v.upper&&(p.clearRect(0,0,y,y),p.textBaseline="top",p.fillText(v.upper,0,0),x.upper=u(p.getImageData(0,0,y,y)),x.capHeight=x.baseline-x.upper),v.lower&&(p.clearRect(0,0,y,y),p.textBaseline="top",p.fillText(v.lower,0,0),x.lower=u(p.getImageData(0,0,y,y)),x.xHeight=x.baseline-x.lower),v.tittle&&(p.clearRect(0,0,y,y),p.textBaseline="top",p.fillText(v.tittle,0,0),x.tittle=u(p.getImageData(0,0,y,y))),v.ascent&&(p.clearRect(0,0,y,y),p.textBaseline="top",p.fillText(v.ascent,0,0),x.ascent=u(p.getImageData(0,0,y,y))),v.descent&&(p.clearRect(0,0,y,y),p.textBaseline="top",p.fillText(v.descent,0,0),x.descent=c(p.getImageData(0,0,y,y))),v.overshoot){p.clearRect(0,0,y,y),p.textBaseline="top",p.fillText(v.overshoot,0,0);var A=c(p.getImageData(0,0,y,y));x.overshoot=A-b}for(var S in x)x[S]/=d;return x.em=d,r.cache[l]=x,a(x,m)}function a(i,s){var l={};for(var d in typeof s=="string"&&(s=i[s]),i)d!=="em"&&(l[d]=i[d]-s);return l}function u(i){for(var s=i.height,l=i.data,d=3;d0;d-=4)if(l[d]!==0)return Math.floor(.25*(d-3)/s)}o.exports=r,r.canvas=document.createElement("canvas"),r.cache={}},{}],194:[function(e,o,f){o.exports=function(r,a){if(typeof r!="string")throw new TypeError("must specify type string");if(a=a||{},typeof document>"u"&&!a.canvas)return null;var u=a.canvas||document.createElement("canvas");typeof a.width=="number"&&(u.width=a.width),typeof a.height=="number"&&(u.height=a.height);var c,i=a;try{var s=[r];r.indexOf("webgl")===0&&s.push("experimental-"+r);for(var l=0;l halfCharStep + halfCharWidth || + floor(uv.x) < halfCharStep - halfCharWidth) return; + + uv += charId * charStep; + uv = uv / atlasSize; + + vec4 color = fontColor; + vec4 mask = texture2D(atlas, uv); + + float maskY = lightness(mask); + // float colorY = lightness(color); + color.a *= maskY; + color.a *= opacity; + + // color.a += .1; + + // antialiasing, see yiq color space y-channel formula + // color.rgb += (1. - color.rgb) * (1. - mask.rgb); + + gl_FragColor = color; + }`});return{regl:A,draw:S,atlas:{}}},M.prototype.update=function(A){var S=this;if(typeof A=="string")A={text:A};else if(!A)return;(A=a(A,{position:"position positions coord coords coordinates",font:"font fontFace fontface typeface cssFont css-font family fontFamily",fontSize:"fontSize fontsize size font-size",text:"text texts chars characters value values symbols",align:"align alignment textAlign textbaseline",baseline:"baseline textBaseline textbaseline",direction:"dir direction textDirection",color:"color colour fill fill-color fillColor textColor textcolor",kerning:"kerning kern",range:"range dataBox",viewport:"vp viewport viewBox viewbox viewPort",opacity:"opacity alpha transparency visible visibility opaque",offset:"offset positionOffset padding shift indent indentation"},!0)).opacity!=null&&(Array.isArray(A.opacity)?this.opacity=A.opacity.map(function(ye){return parseFloat(ye)}):this.opacity=parseFloat(A.opacity)),A.viewport!=null&&(this.viewport=h(A.viewport),this.viewportArray=[this.viewport.x,this.viewport.y,this.viewport.width,this.viewport.height]),this.viewport==null&&(this.viewport={x:0,y:0,width:this.gl.drawingBufferWidth,height:this.gl.drawingBufferHeight},this.viewportArray=[this.viewport.x,this.viewport.y,this.viewport.width,this.viewport.height]),A.kerning!=null&&(this.kerning=A.kerning),A.offset!=null&&(typeof A.offset=="number"&&(A.offset=[A.offset,0]),this.positionOffset=w(A.offset)),A.direction&&(this.direction=A.direction),A.range&&(this.range=A.range,this.scale=[1/(A.range[2]-A.range[0]),1/(A.range[3]-A.range[1])],this.translate=[-A.range[0],-A.range[1]]),A.scale&&(this.scale=A.scale),A.translate&&(this.translate=A.translate),this.scale||(this.scale=[1/this.viewport.width,1/this.viewport.height]),this.translate||(this.translate=[0,0]),this.font.length||A.font||(A.font=M.baseFontSize+"px sans-serif");var E,D=!1,O=!1;if(A.font&&(Array.isArray(A.font)?A.font:[A.font]).forEach(function(ye,Me){if(typeof ye=="string")try{ye=r.parse(ye)}catch{ye=r.parse(M.baseFontSize+"px "+ye)}else ye=r.parse(r.stringify(ye));var ke=r.stringify({size:M.baseFontSize,family:ye.family,stretch:T?ye.stretch:void 0,variant:ye.variant,weight:ye.weight,style:ye.style}),Ee=g(ye.size),ze=Math.round(Ee[0]*p(Ee[1]));if(ze!==S.fontSize[Me]&&(O=!0,S.fontSize[Me]=ze),!(S.font[Me]&&ke==S.font[Me].baseString||(D=!0,S.font[Me]=M.fonts[ke],S.font[Me]))){var Fe=ye.family.join(", "),Ve=[ye.style];ye.style!=ye.variant&&Ve.push(ye.variant),ye.variant!=ye.weight&&Ve.push(ye.weight),T&&ye.weight!=ye.stretch&&Ve.push(ye.stretch),S.font[Me]={baseString:ke,family:Fe,weight:ye.weight,stretch:ye.stretch,style:ye.style,variant:ye.variant,width:{},kerning:{},metrics:x(Fe,{origin:"top",fontSize:M.baseFontSize,fontStyle:Ve.join(" ")})},M.fonts[ke]=S.font[Me]}}),(D||O)&&this.font.forEach(function(ye,Me){var ke=r.stringify({size:S.fontSize[Me],family:ye.family,stretch:T?ye.stretch:void 0,variant:ye.variant,weight:ye.weight,style:ye.style});if(S.fontAtlas[Me]=S.shader.atlas[ke],!S.fontAtlas[Me]){var Ee=ye.metrics;S.shader.atlas[ke]=S.fontAtlas[Me]={fontString:ke,step:2*Math.ceil(S.fontSize[Me]*Ee.bottom*.5),em:S.fontSize[Me],cols:0,rows:0,height:0,width:0,chars:[],ids:{},texture:S.regl.texture()}}A.text==null&&(A.text=S.text)}),typeof A.text=="string"&&A.position&&A.position.length>2){for(var R=Array(.5*A.position.length),z=0;z2){for(var P=!A.position[0].length,N=d.mallocFloat(2*this.count),B=0,G=0;B1?S.align[Me]:S.align[0]:S.align;if(typeof ke=="number")return ke;switch(ke){case"right":case"end":return-ye;case"center":case"centre":case"middle":return .5*-ye}return 0})),this.baseline==null&&A.baseline==null&&(A.baseline=0),A.baseline!=null&&(this.baseline=A.baseline,Array.isArray(this.baseline)||(this.baseline=[this.baseline]),this.baselineOffset=this.baseline.map(function(ye,Me){var ke=(S.font[Me]||S.font[0]).metrics,Ee=0;return Ee+=.5*ke.bottom,Ee+=typeof ye=="number"?ye-ke.baseline:-ke[ye],Ee*=-1})),A.color!=null)if(A.color||(A.color="transparent"),typeof A.color!="string"&&isNaN(A.color)){var ge;if(typeof A.color[0]=="number"&&A.color.length>this.counts.length){var fe=A.color.length;ge=d.mallocUint8(fe);for(var me=(A.color.subarray||A.color.slice).bind(A.color),_e=0;_e4||this.baselineOffset.length>1||this.align&&this.align.length>1||this.fontAtlas.length>1||this.positionOffset.length>2){var Oe=Math.max(.5*this.position.length||0,.25*this.color.length||0,this.baselineOffset.length||0,this.alignOffset.length||0,this.font.length||0,this.opacity.length||0,.5*this.positionOffset.length||0);this.batch=Array(Oe);for(var de=0;de1?this.counts[de]:this.counts[0],offset:this.textOffsets.length>1?this.textOffsets[de]:this.textOffsets[0],color:this.color?this.color.length<=4?this.color:this.color.subarray(4*de,4*de+4):[0,0,0,255],opacity:Array.isArray(this.opacity)?this.opacity[de]:this.opacity,baseline:this.baselineOffset[de]!=null?this.baselineOffset[de]:this.baselineOffset[0],align:this.align?this.alignOffset[de]!=null?this.alignOffset[de]:this.alignOffset[0]:0,atlas:this.fontAtlas[de]||this.fontAtlas[0],positionOffset:this.positionOffset.length>2?this.positionOffset.subarray(2*de,2*de+2):this.positionOffset}}else this.count?this.batch=[{count:this.count,offset:0,color:this.color||[0,0,0,255],opacity:Array.isArray(this.opacity)?this.opacity[0]:this.opacity,baseline:this.baselineOffset[0],align:this.alignOffset?this.alignOffset[0]:0,atlas:this.fontAtlas[0],positionOffset:this.positionOffset}]:this.batch=[]},M.prototype.destroy=function(){},M.prototype.kerning=!0,M.prototype.position={constant:new Float32Array(2)},M.prototype.translate=null,M.prototype.scale=null,M.prototype.font=null,M.prototype.text="",M.prototype.positionOffset=[0,0],M.prototype.opacity=1,M.prototype.color=new Uint8Array([0,0,0,255]),M.prototype.alignOffset=[0,0],M.maxAtlasSize=1024,M.atlasCanvas=document.createElement("canvas"),M.atlasContext=M.atlasCanvas.getContext("2d",{alpha:!1}),M.baseFontSize=64,M.fonts={},o.exports=M},{"bit-twiddle":81,"color-normalize":89,"css-font":99,"detect-kerning":125,"es6-weak-map":183,"flatten-vertex-data":191,"font-atlas":192,"font-measure":193,"gl-util/context":226,"is-plain-obj":236,"object-assign":247,"parse-rect":249,"parse-unit":251,"pick-by-alias":253,regl:283,"to-px":314,"typedarray-pool":327}],226:[function(e,o,f){(function(r){(function(){var a=e("pick-by-alias");function u(s){if(s.container)if(s.container==document.body)document.body.style.width||(s.canvas.width=s.width||s.pixelRatio*r.innerWidth),document.body.style.height||(s.canvas.height=s.height||s.pixelRatio*r.innerHeight);else{var l=s.container.getBoundingClientRect();s.canvas.width=s.width||l.right-l.left,s.canvas.height=s.height||l.bottom-l.top}}function c(s){return typeof s.getContext=="function"&&"width"in s&&"height"in s}function i(){var s=document.createElement("canvas");return s.style.position="absolute",s.style.top=0,s.style.left=0,s}o.exports=function(s){var l;if(s?typeof s=="string"&&(s={container:s}):s={},c(s)?s={container:s}:s=typeof(l=s).nodeName=="string"&&typeof l.appendChild=="function"&&typeof l.getBoundingClientRect=="function"?{container:s}:function(h){return typeof h.drawArrays=="function"||typeof h.drawElements=="function"}(s)?{gl:s}:a(s,{container:"container target element el canvas holder parent parentNode wrapper use ref root node",gl:"gl context webgl glContext",attrs:"attributes attrs contextAttributes",pixelRatio:"pixelRatio pxRatio px ratio pxratio pixelratio",width:"w width",height:"h height"},!0),s.pixelRatio||(s.pixelRatio=r.pixelRatio||1),s.gl)return s.gl;if(s.canvas&&(s.container=s.canvas.parentNode),s.container){if(typeof s.container=="string"){var d=document.querySelector(s.container);if(!d)throw Error("Element "+s.container+" is not found");s.container=d}c(s.container)?(s.canvas=s.container,s.container=s.canvas.parentNode):s.canvas||(s.canvas=i(),s.container.appendChild(s.canvas),u(s))}else if(!s.canvas){if(typeof document>"u")throw Error("Not DOM environment. Use headless-gl.");s.container=document.body||document.documentElement,s.canvas=i(),s.container.appendChild(s.canvas),u(s)}return s.gl||["webgl","experimental-webgl","webgl-experimental"].some(function(h){try{s.gl=s.canvas.getContext(h,s.attrs)}catch{}return s.gl}),s.gl}}).call(this)}).call(this,typeof Ro<"u"?Ro:typeof self<"u"?self:typeof window<"u"?window:{})},{"pick-by-alias":253}],227:[function(e,o,f){o.exports=function(r){typeof r=="string"&&(r=[r]);for(var a=[].slice.call(arguments,1),u=[],c=0;c>1,g=-7,p=u?i-1:0,v=u?-1:1,y=r[a+p];for(p+=v,s=y&(1<<-g)-1,y>>=-g,g+=d;g>0;s=256*s+r[a+p],p+=v,g-=8);for(l=s&(1<<-g)-1,s>>=-g,g+=c;g>0;l=256*l+r[a+p],p+=v,g-=8);if(s===0)s=1-m;else{if(s===h)return l?NaN:1/0*(y?-1:1);l+=Math.pow(2,c),s-=m}return(y?-1:1)*l*Math.pow(2,s-c)},f.write=function(r,a,u,c,i,s){var l,d,h,m=8*s-i-1,g=(1<>1,v=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,y=c?0:s-1,x=c?1:-1,w=a<0||a===0&&1/a<0?1:0;for(a=Math.abs(a),isNaN(a)||a===1/0?(d=isNaN(a)?1:0,l=g):(l=Math.floor(Math.log(a)/Math.LN2),a*(h=Math.pow(2,-l))<1&&(l--,h*=2),(a+=l+p>=1?v/h:v*Math.pow(2,1-p))*h>=2&&(l++,h/=2),l+p>=g?(d=0,l=g):l+p>=1?(d=(a*h-1)*Math.pow(2,i),l+=p):(d=a*Math.pow(2,p-1)*Math.pow(2,i),l=0));i>=8;r[u+y]=255&d,y+=x,d/=256,i-=8);for(l=l<0;r[u+y]=255&l,y+=x,l/=256,m-=8);r[u+y-x]|=128*w}},{}],231:[function(e,o,f){typeof Object.create=="function"?o.exports=function(r,a){a&&(r.super_=a,r.prototype=Object.create(a.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}))}:o.exports=function(r,a){if(a){r.super_=a;var u=function(){};u.prototype=a.prototype,r.prototype=new u,r.prototype.constructor=r}}},{}],232:[function(e,o,f){o.exports=!0},{}],233:[function(e,o,f){o.exports=typeof navigator<"u"&&(/MSIE/.test(navigator.userAgent)||/Trident\//.test(navigator.appVersion))},{}],234:[function(e,o,f){o.exports=u,o.exports.isMobile=u,o.exports.default=u;var r=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i,a=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino|android|ipad|playbook|silk/i;function u(c){c||(c={});var i=c.ua;if(i||typeof navigator>"u"||(i=navigator.userAgent),i&&i.headers&&typeof i.headers["user-agent"]=="string"&&(i=i.headers["user-agent"]),typeof i!="string")return!1;var s=c.tablet?a.test(i):r.test(i);return!s&&c.tablet&&c.featureDetect&&navigator&&navigator.maxTouchPoints>1&&i.indexOf("Macintosh")!==-1&&i.indexOf("Safari")!==-1&&(s=!0),s}},{}],235:[function(e,o,f){o.exports=function(r){var a=typeof r;return r!==null&&(a==="object"||a==="function")}},{}],236:[function(e,o,f){var r=Object.prototype.toString;o.exports=function(a){var u;return r.call(a)==="[object Object]"&&((u=Object.getPrototypeOf(a))===null||u===Object.getPrototypeOf({}))}},{}],237:[function(e,o,f){o.exports=function(r){for(var a,u=r.length,c=0;c13)&&a!==32&&a!==133&&a!==160&&a!==5760&&a!==6158&&(a<8192||a>8205)&&a!==8232&&a!==8233&&a!==8239&&a!==8287&&a!==8288&&a!==12288&&a!==65279)return!1;return!0}},{}],238:[function(e,o,f){o.exports=function(r){return typeof r=="string"&&(r=r.trim(),!!(/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(r)&&/[\dz]$/i.test(r)&&r.length>4))}},{}],239:[function(e,o,f){(function(r,a){typeof f=="object"&&o!==void 0?o.exports=a():(r=r||self).mapboxgl=a()})(this,function(){var r,a,u;function c(i,s){if(r)if(a){var l="var sharedChunk = {}; ("+r+")(sharedChunk); ("+a+")(sharedChunk);",d={};r(d),(u=s(d)).workerUrl=window.URL.createObjectURL(new Blob([l],{type:"text/javascript"}))}else a=s;else r=s}return c(0,function(i){function s(C,F){return C(F={exports:{}},F.exports),F.exports}var l=d;function d(C,F,J,oe){this.cx=3*C,this.bx=3*(J-C)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*F,this.by=3*(oe-F)-this.cy,this.ay=1-this.cy-this.by,this.p1x=C,this.p1y=oe,this.p2x=J,this.p2y=oe}d.prototype.sampleCurveX=function(C){return((this.ax*C+this.bx)*C+this.cx)*C},d.prototype.sampleCurveY=function(C){return((this.ay*C+this.by)*C+this.cy)*C},d.prototype.sampleCurveDerivativeX=function(C){return(3*this.ax*C+2*this.bx)*C+this.cx},d.prototype.solveCurveX=function(C,F){var J,oe,pe,xe,Ce;for(F===void 0&&(F=1e-6),pe=C,Ce=0;Ce<8;Ce++){if(xe=this.sampleCurveX(pe)-C,Math.abs(xe)(oe=1))return oe;for(;Jxe?J=pe:oe=pe,pe=.5*(oe-J)+J}return pe},d.prototype.solve=function(C,F){return this.sampleCurveY(this.solveCurveX(C,F))};var h=m;function m(C,F){this.x=C,this.y=F}function g(C,F,J,oe){var pe=new l(C,F,J,oe);return function(xe){return pe.solve(xe)}}m.prototype={clone:function(){return new m(this.x,this.y)},add:function(C){return this.clone()._add(C)},sub:function(C){return this.clone()._sub(C)},multByPoint:function(C){return this.clone()._multByPoint(C)},divByPoint:function(C){return this.clone()._divByPoint(C)},mult:function(C){return this.clone()._mult(C)},div:function(C){return this.clone()._div(C)},rotate:function(C){return this.clone()._rotate(C)},rotateAround:function(C,F){return this.clone()._rotateAround(C,F)},matMult:function(C){return this.clone()._matMult(C)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(C){return this.x===C.x&&this.y===C.y},dist:function(C){return Math.sqrt(this.distSqr(C))},distSqr:function(C){var F=C.x-this.x,J=C.y-this.y;return F*F+J*J},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(C){return Math.atan2(this.y-C.y,this.x-C.x)},angleWith:function(C){return this.angleWithSep(C.x,C.y)},angleWithSep:function(C,F){return Math.atan2(this.x*F-this.y*C,this.x*C+this.y*F)},_matMult:function(C){var F=C[0]*this.x+C[1]*this.y,J=C[2]*this.x+C[3]*this.y;return this.x=F,this.y=J,this},_add:function(C){return this.x+=C.x,this.y+=C.y,this},_sub:function(C){return this.x-=C.x,this.y-=C.y,this},_mult:function(C){return this.x*=C,this.y*=C,this},_div:function(C){return this.x/=C,this.y/=C,this},_multByPoint:function(C){return this.x*=C.x,this.y*=C.y,this},_divByPoint:function(C){return this.x/=C.x,this.y/=C.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var C=this.y;return this.y=this.x,this.x=-C,this},_rotate:function(C){var F=Math.cos(C),J=Math.sin(C),oe=F*this.x-J*this.y,pe=J*this.x+F*this.y;return this.x=oe,this.y=pe,this},_rotateAround:function(C,F){var J=Math.cos(C),oe=Math.sin(C),pe=F.x+J*(this.x-F.x)-oe*(this.y-F.y),xe=F.y+oe*(this.x-F.x)+J*(this.y-F.y);return this.x=pe,this.y=xe,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},m.convert=function(C){return C instanceof m?C:Array.isArray(C)?new m(C[0],C[1]):C};var p=g(.25,.1,.25,1);function v(C,F,J){return Math.min(J,Math.max(F,C))}function y(C,F,J){var oe=J-F,pe=((C-F)%oe+oe)%oe+F;return pe===F?J:pe}function x(C){for(var F=[],J=arguments.length-1;J-- >0;)F[J]=arguments[J+1];for(var oe=0,pe=F;oe>F/4).toString(16):([1e7]+-[1e3]+-4e3+-8e3+-1e11).replace(/[018]/g,C)}()}function T(C){return!!C&&/^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(C)}function _(C,F){C.forEach(function(J){F[J]&&(F[J]=F[J].bind(F))})}function M(C,F){return C.indexOf(F,C.length-F.length)!==-1}function A(C,F,J){var oe={};for(var pe in C)oe[pe]=F.call(J||this,C[pe],pe,C);return oe}function S(C,F,J){var oe={};for(var pe in C)F.call(J||this,C[pe],pe,C)&&(oe[pe]=C[pe]);return oe}function E(C){return Array.isArray(C)?C.map(E):typeof C=="object"&&C?A(C,E):C}var D={};function O(C){D[C]||(typeof console<"u"&&console.warn(C),D[C]=!0)}function R(C,F,J){return(J.y-C.y)*(F.x-C.x)>(F.y-C.y)*(J.x-C.x)}function z(C){for(var F=0,J=0,oe=C.length,pe=oe-1,xe=void 0,Ce=void 0;J@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,function(oe,pe,xe,Ce){var Ne=xe||Ce;return F[pe]=!Ne||Ne.toLowerCase(),""}),F["max-age"]){var J=parseInt(F["max-age"],10);isNaN(J)?delete F["max-age"]:F["max-age"]=J}return F}var N=null;function B(C){if(N==null){var F=C.navigator?C.navigator.userAgent:null;N=!!C.safari||!(!F||!(/\b(iPad|iPhone|iPod)\b/.test(F)||F.match("Safari")&&!F.match("Chrome")))}return N}function G(C){try{var F=self[C];return F.setItem("_mapbox_test_",1),F.removeItem("_mapbox_test_"),!0}catch{return!1}}var W,K,te,Y,Z=self.performance&&self.performance.now?self.performance.now.bind(self.performance):Date.now.bind(Date),re=self.requestAnimationFrame||self.mozRequestAnimationFrame||self.webkitRequestAnimationFrame||self.msRequestAnimationFrame,U=self.cancelAnimationFrame||self.mozCancelAnimationFrame||self.webkitCancelAnimationFrame||self.msCancelAnimationFrame,q={now:Z,frame:function(C){var F=re(C);return{cancel:function(){return U(F)}}},getImageData:function(C,F){F===void 0&&(F=0);var J=self.document.createElement("canvas"),oe=J.getContext("2d");if(!oe)throw new Error("failed to create canvas 2d context");return J.width=C.width,J.height=C.height,oe.drawImage(C,0,0,C.width,C.height),oe.getImageData(-F,-F,C.width+2*F,C.height+2*F)},resolveURL:function(C){return W||(W=self.document.createElement("a")),W.href=C,W.href},hardwareConcurrency:self.navigator.hardwareConcurrency||4,get devicePixelRatio(){return self.devicePixelRatio},get prefersReducedMotion(){return!!self.matchMedia&&(K==null&&(K=self.matchMedia("(prefers-reduced-motion: reduce)")),K.matches)}},$={API_URL:"https://api.mapbox.com",get EVENTS_URL(){return this.API_URL?this.API_URL.indexOf("https://api.mapbox.cn")===0?"https://events.mapbox.cn/events/v2":this.API_URL.indexOf("https://api.mapbox.com")===0?"https://events.mapbox.com/events/v2":null:null},FEEDBACK_URL:"https://apps.mapbox.com/feedback",REQUIRE_ACCESS_TOKEN:!0,ACCESS_TOKEN:null,MAX_PARALLEL_IMAGE_REQUESTS:16},ne={supported:!1,testSupport:function(C){H||!Y||(Q?ee(C):te=C)}},H=!1,Q=!1;function ee(C){var F=C.createTexture();C.bindTexture(C.TEXTURE_2D,F);try{if(C.texImage2D(C.TEXTURE_2D,0,C.RGBA,C.RGBA,C.UNSIGNED_BYTE,Y),C.isContextLost())return;ne.supported=!0}catch{}C.deleteTexture(F),H=!0}self.document&&((Y=self.document.createElement("img")).onload=function(){te&&ee(te),te=null,Q=!0},Y.onerror=function(){H=!0,te=null},Y.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=");var ie="01",ae=function(C,F){this._transformRequestFn=C,this._customAccessToken=F,this._createSkuToken()};function ue(C){return C.indexOf("mapbox:")===0}ae.prototype._createSkuToken=function(){var C=function(){for(var F="",J=0;J<10;J++)F+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[Math.floor(62*Math.random())];return{token:["1",ie,F].join(""),tokenExpiresAt:Date.now()+432e5}}();this._skuToken=C.token,this._skuTokenExpiresAt=C.tokenExpiresAt},ae.prototype._isSkuTokenExpired=function(){return Date.now()>this._skuTokenExpiresAt},ae.prototype.transformRequest=function(C,F){return this._transformRequestFn&&this._transformRequestFn(C,F)||{url:C}},ae.prototype.normalizeStyleURL=function(C,F){if(!ue(C))return C;var J=me(C);return J.path="/styles/v1"+J.path,this._makeAPIURL(J,this._customAccessToken||F)},ae.prototype.normalizeGlyphsURL=function(C,F){if(!ue(C))return C;var J=me(C);return J.path="/fonts/v1"+J.path,this._makeAPIURL(J,this._customAccessToken||F)},ae.prototype.normalizeSourceURL=function(C,F){if(!ue(C))return C;var J=me(C);return J.path="/v4/"+J.authority+".json",J.params.push("secure"),this._makeAPIURL(J,this._customAccessToken||F)},ae.prototype.normalizeSpriteURL=function(C,F,J,oe){var pe=me(C);return ue(C)?(pe.path="/styles/v1"+pe.path+"/sprite"+F+J,this._makeAPIURL(pe,this._customAccessToken||oe)):(pe.path+=""+F+J,_e(pe))},ae.prototype.normalizeTileURL=function(C,F){if(this._isSkuTokenExpired()&&this._createSkuToken(),C&&!ue(C))return C;var J=me(C),oe=q.devicePixelRatio>=2||F===512?"@2x":"",pe=ne.supported?".webp":"$1";J.path=J.path.replace(/(\.(png|jpg)\d*)(?=$)/,""+oe+pe),J.path=J.path.replace(/^.+\/v4\//,"/"),J.path="/v4"+J.path;var xe=this._customAccessToken||function(Ce){for(var Ne=0,Ze=Ce;Ne=1&&self.localStorage.setItem(F,JSON.stringify(this.eventData))}catch{O("Unable to write to LocalStorage")}},Te.prototype.processRequests=function(C){},Te.prototype.postEvent=function(C,F,J,oe){var pe=this;if($.EVENTS_URL){var xe=me($.EVENTS_URL);xe.params.push("access_token="+(oe||$.ACCESS_TOKEN||""));var Ce={event:this.type,created:new Date(C).toISOString(),sdkIdentifier:"mapbox-gl-js",sdkVersion:"1.10.1",skuId:ie,userId:this.anonId},Ne=F?x(Ce,F):Ce,Ze={url:_e(xe),headers:{"Content-Type":"text/plain"},body:JSON.stringify([Ne])};this.pendingRequest=Wt(Ze,function(ct){pe.pendingRequest=null,J(ct),pe.saveEventData(),pe.processRequests(oe)})}},Te.prototype.queueRequest=function(C,F){this.queue.push(C),this.processRequests(F)};var Oe,de,ye=function(C){function F(){C.call(this,"map.load"),this.success={},this.skuToken=""}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype.postMapLoadEvent=function(J,oe,pe,xe){this.skuToken=pe,($.EVENTS_URL&&xe||$.ACCESS_TOKEN&&Array.isArray(J)&&J.some(function(Ce){return ue(Ce)||ge(Ce)}))&&this.queueRequest({id:oe,timestamp:Date.now()},xe)},F.prototype.processRequests=function(J){var oe=this;if(!this.pendingRequest&&this.queue.length!==0){var pe=this.queue.shift(),xe=pe.id,Ce=pe.timestamp;xe&&this.success[xe]||(this.anonId||this.fetchEventData(),T(this.anonId)||(this.anonId=b()),this.postEvent(Ce,{skuToken:this.skuToken},function(Ne){Ne||xe&&(oe.success[xe]=!0)},J))}},F}(Te),Me=new(function(C){function F(J){C.call(this,"appUserTurnstile"),this._customAccessToken=J}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype.postTurnstileEvent=function(J,oe){$.EVENTS_URL&&$.ACCESS_TOKEN&&Array.isArray(J)&&J.some(function(pe){return ue(pe)||ge(pe)})&&this.queueRequest(Date.now(),oe)},F.prototype.processRequests=function(J){var oe=this;if(!this.pendingRequest&&this.queue.length!==0){this.anonId&&this.eventData.lastSuccess&&this.eventData.tokenU||this.fetchEventData();var pe=we($.ACCESS_TOKEN),xe=pe?pe.u:$.ACCESS_TOKEN,Ce=xe!==this.eventData.tokenU;T(this.anonId)||(this.anonId=b(),Ce=!0);var Ne=this.queue.shift();if(this.eventData.lastSuccess){var Ze=new Date(this.eventData.lastSuccess),ct=new Date(Ne),gt=(Ne-this.eventData.lastSuccess)/864e5;Ce=Ce||gt>=1||gt<-1||Ze.getDate()!==ct.getDate()}else Ce=!0;if(!Ce)return this.processRequests();this.postEvent(Ne,{"enabled.telemetry":!1},function(Bt){Bt||(oe.eventData.lastSuccess=Ne,oe.eventData.tokenU=xe)},J)}},F}(Te)),ke=Me.postTurnstileEvent.bind(Me),Ee=new ye,ze=Ee.postMapLoadEvent.bind(Ee),Fe=500,Ve=50;function Ke(){self.caches&&!Oe&&(Oe=self.caches.open("mapbox-tiles"))}function Re(C,F,J){if(Ke(),Oe){var oe={status:F.status,statusText:F.statusText,headers:new self.Headers};F.headers.forEach(function(xe,Ce){return oe.headers.set(Ce,xe)});var pe=P(F.headers.get("Cache-Control")||"");pe["no-store"]||(pe["max-age"]&&oe.headers.set("Expires",new Date(J+1e3*pe["max-age"]).toUTCString()),new Date(oe.headers.get("Expires")).getTime()-J<42e4||function(xe,Ce){if(de===void 0)try{new Response(new ReadableStream),de=!0}catch{de=!1}de?Ce(xe.body):xe.blob().then(Ce)}(F,function(xe){var Ce=new self.Response(xe,oe);Ke(),Oe&&Oe.then(function(Ne){return Ne.put(qe(C.url),Ce)}).catch(function(Ne){return O(Ne.message)})}))}}function qe(C){var F=C.indexOf("?");return F<0?C:C.slice(0,F)}function We(C,F){if(Ke(),!Oe)return F(null);var J=qe(C.url);Oe.then(function(oe){oe.match(J).then(function(pe){var xe=function(Ce){if(!Ce)return!1;var Ne=new Date(Ce.headers.get("Expires")||0),Ze=P(Ce.headers.get("Cache-Control")||"");return Ne>Date.now()&&!Ze["no-cache"]}(pe);oe.delete(J),xe&&oe.put(J,pe.clone()),F(null,pe,xe)}).catch(F)}).catch(F)}var Ye,nt=1/0;function ft(){return Ye==null&&(Ye=self.OffscreenCanvas&&new self.OffscreenCanvas(1,1).getContext("2d")&&typeof self.createImageBitmap=="function"),Ye}var vt={Unknown:"Unknown",Style:"Style",Source:"Source",Tile:"Tile",Glyphs:"Glyphs",SpriteImage:"SpriteImage",SpriteJSON:"SpriteJSON",Image:"Image"};typeof Object.freeze=="function"&&Object.freeze(vt);var Pt=function(C){function F(J,oe,pe){oe===401&&ge(pe)&&(J+=": you may have provided an invalid Mapbox access token. See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes"),C.call(this,J),this.status=oe,this.url=pe,this.name=this.constructor.name,this.message=J}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype.toString=function(){return this.name+": "+this.message+" ("+this.status+"): "+this.url},F}(Error),At=L()?function(){return self.worker&&self.worker.referrer}:function(){return(self.location.protocol==="blob:"?self.parent:self).location.href};function at(C,F){var J,oe=new self.AbortController,pe=new self.Request(C.url,{method:C.method||"GET",body:C.body,credentials:C.credentials,headers:C.headers,referrer:At(),signal:oe.signal}),xe=!1,Ce=!1,Ne=(J=pe.url).indexOf("sku=")>0&&ge(J);C.type==="json"&&pe.headers.set("Accept","application/json");var Ze=function(gt,Bt,Xt){if(!Ce){if(gt&>.message!=="SecurityError"&&O(gt),Bt&&Xt)return ct(Bt);var Gt=Date.now();self.fetch(pe).then(function(on){if(on.ok){var vn=Ne?on.clone():null;return ct(on,vn,Gt)}return F(new Pt(on.statusText,on.status,C.url))}).catch(function(on){on.code!==20&&F(new Error(on.message))})}},ct=function(gt,Bt,Xt){(C.type==="arrayBuffer"?gt.arrayBuffer():C.type==="json"?gt.json():gt.text()).then(function(Gt){Ce||(Bt&&Xt&&Re(pe,Bt,Xt),xe=!0,F(null,Gt,gt.headers.get("Cache-Control"),gt.headers.get("Expires")))}).catch(function(Gt){Ce||F(new Error(Gt.message))})};return Ne?We(pe,Ze):Ze(null,null),{cancel:function(){Ce=!0,xe||oe.abort()}}}var et=function(C,F){if(J=C.url,!(/^file:/.test(J)||/^file:/.test(At())&&!/^\w+:/.test(J))){if(self.fetch&&self.Request&&self.AbortController&&self.Request.prototype.hasOwnProperty("signal"))return at(C,F);if(L()&&self.worker&&self.worker.actor)return self.worker.actor.send("getResource",C,F,void 0,!0)}var J;return function(oe,pe){var xe=new self.XMLHttpRequest;for(var Ce in xe.open(oe.method||"GET",oe.url,!0),oe.type==="arrayBuffer"&&(xe.responseType="arraybuffer"),oe.headers)xe.setRequestHeader(Ce,oe.headers[Ce]);return oe.type==="json"&&(xe.responseType="text",xe.setRequestHeader("Accept","application/json")),xe.withCredentials=oe.credentials==="include",xe.onerror=function(){pe(new Error(xe.statusText))},xe.onload=function(){if((xe.status>=200&&xe.status<300||xe.status===0)&&xe.response!==null){var Ne=xe.response;if(oe.type==="json")try{Ne=JSON.parse(xe.response)}catch(Ze){return pe(Ze)}pe(null,Ne,xe.getResponseHeader("Cache-Control"),xe.getResponseHeader("Expires"))}else pe(new Pt(xe.statusText,xe.status,oe.url))},xe.send(oe.body),{cancel:function(){return xe.abort()}}}(C,F)},Ot=function(C,F){return et(x(C,{type:"arrayBuffer"}),F)},Wt=function(C,F){return et(x(C,{method:"POST"}),F)},Jt,Be;Jt=[],Be=0;var Ge=function(C,F){if(ne.supported&&(C.headers||(C.headers={}),C.headers.accept="image/webp,*/*"),Be>=$.MAX_PARALLEL_IMAGE_REQUESTS){var J={requestParameters:C,callback:F,cancelled:!1,cancel:function(){this.cancelled=!0}};return Jt.push(J),J}Be++;var oe=!1,pe=function(){if(!oe)for(oe=!0,Be--;Jt.length&&Be<$.MAX_PARALLEL_IMAGE_REQUESTS;){var Ce=Jt.shift(),Ne=Ce.requestParameters,Ze=Ce.callback;Ce.cancelled||(Ce.cancel=Ge(Ne,Ze).cancel)}},xe=Ot(C,function(Ce,Ne,Ze,ct){pe(),Ce?F(Ce):Ne&&(ft()?function(gt,Bt){var Xt=new self.Blob([new Uint8Array(gt)],{type:"image/png"});self.createImageBitmap(Xt).then(function(Gt){Bt(null,Gt)}).catch(function(Gt){Bt(new Error("Could not load image because of "+Gt.message+". Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."))})}(Ne,F):function(gt,Bt,Xt,Gt){var on=new self.Image,vn=self.URL;on.onload=function(){Bt(null,on),vn.revokeObjectURL(on.src)},on.onerror=function(){return Bt(new Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."))};var Cn=new self.Blob([new Uint8Array(gt)],{type:"image/png"});on.cacheControl=Xt,on.expires=Gt,on.src=gt.byteLength?vn.createObjectURL(Cn):"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII="}(Ne,F,Ze,ct))});return{cancel:function(){xe.cancel(),pe()}}};function Tt(C,F,J){J[C]&&J[C].indexOf(F)!==-1||(J[C]=J[C]||[],J[C].push(F))}function dt(C,F,J){if(J&&J[C]){var oe=J[C].indexOf(F);oe!==-1&&J[C].splice(oe,1)}}var Pe=function(C,F){F===void 0&&(F={}),x(this,F),this.type=C},Ie=function(C){function F(J,oe){oe===void 0&&(oe={}),C.call(this,"error",x({error:J},oe))}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F}(Pe),Ae=function(){};Ae.prototype.on=function(C,F){return this._listeners=this._listeners||{},Tt(C,F,this._listeners),this},Ae.prototype.off=function(C,F){return dt(C,F,this._listeners),dt(C,F,this._oneTimeListeners),this},Ae.prototype.once=function(C,F){return this._oneTimeListeners=this._oneTimeListeners||{},Tt(C,F,this._oneTimeListeners),this},Ae.prototype.fire=function(C,F){typeof C=="string"&&(C=new Pe(C,F||{}));var J=C.type;if(this.listens(J)){C.target=this;for(var oe=0,pe=this._listeners&&this._listeners[J]?this._listeners[J].slice():[];oe0||this._oneTimeListeners&&this._oneTimeListeners[C]&&this._oneTimeListeners[C].length>0||this._eventedParent&&this._eventedParent.listens(C)},Ae.prototype.setEventedParent=function(C,F){return this._eventedParent=C,this._eventedParentData=F,this};var De={$version:8,$root:{version:{required:!0,type:"enum",values:[8]},name:{type:"string"},metadata:{type:"*"},center:{type:"array",value:"number"},zoom:{type:"number"},bearing:{type:"number",default:0,period:360,units:"degrees"},pitch:{type:"number",default:0,units:"degrees"},light:{type:"light"},sources:{required:!0,type:"sources"},sprite:{type:"string"},glyphs:{type:"string"},transition:{type:"transition"},layers:{required:!0,type:"array",value:"layer"}},sources:{"*":{type:"source"}},source:["source_vector","source_raster","source_raster_dem","source_geojson","source_video","source_image"],source_vector:{type:{required:!0,type:"enum",values:{vector:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},attribution:{type:"string"},promoteId:{type:"promoteId"},"*":{type:"*"}},source_raster:{type:{required:!0,type:"enum",values:{raster:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},attribution:{type:"string"},"*":{type:"*"}},source_raster_dem:{type:{required:!0,type:"enum",values:{"raster-dem":{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},attribution:{type:"string"},encoding:{type:"enum",values:{terrarium:{},mapbox:{}},default:"mapbox"},"*":{type:"*"}},source_geojson:{type:{required:!0,type:"enum",values:{geojson:{}}},data:{type:"*"},maxzoom:{type:"number",default:18},attribution:{type:"string"},buffer:{type:"number",default:128,maximum:512,minimum:0},tolerance:{type:"number",default:.375},cluster:{type:"boolean",default:!1},clusterRadius:{type:"number",default:50,minimum:0},clusterMaxZoom:{type:"number"},clusterProperties:{type:"*"},lineMetrics:{type:"boolean",default:!1},generateId:{type:"boolean",default:!1},promoteId:{type:"promoteId"}},source_video:{type:{required:!0,type:"enum",values:{video:{}}},urls:{required:!0,type:"array",value:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},source_image:{type:{required:!0,type:"enum",values:{image:{}}},url:{required:!0,type:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},layer:{id:{type:"string",required:!0},type:{type:"enum",values:{fill:{},line:{},symbol:{},circle:{},heatmap:{},"fill-extrusion":{},raster:{},hillshade:{},background:{}},required:!0},metadata:{type:"*"},source:{type:"string"},"source-layer":{type:"string"},minzoom:{type:"number",minimum:0,maximum:24},maxzoom:{type:"number",minimum:0,maximum:24},filter:{type:"filter"},layout:{type:"layout"},paint:{type:"paint"}},layout:["layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_symbol","layout_raster","layout_hillshade","layout_background"],layout_background:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_fill:{"fill-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_circle:{"circle-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_heatmap:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},"layout_fill-extrusion":{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_line:{"line-cap":{type:"enum",values:{butt:{},round:{},square:{}},default:"butt",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-join":{type:"enum",values:{bevel:{},round:{},miter:{}},default:"miter",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{type:"number",default:2,requires:[{"line-join":"miter"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-round-limit":{type:"number",default:1.05,requires:[{"line-join":"round"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_symbol:{"symbol-placement":{type:"enum",values:{point:{},line:{},"line-center":{}},default:"point",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-spacing":{type:"number",default:250,minimum:1,units:"pixels",requires:[{"symbol-placement":"line"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{type:"boolean",default:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{type:"enum",values:{auto:{},"viewport-y":{},source:{}},default:"auto",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{type:"boolean",default:!1,requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{type:"boolean",default:!1,requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-optional":{type:"boolean",default:!1,requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-size":{type:"number",default:1,minimum:0,units:"factor of the original icon size",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit":{type:"enum",values:{none:{},width:{},height:{},both:{}},default:"none",requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-text-fit-padding":{type:"array",value:"number",length:4,default:[0,0,0,0],units:"pixels",requires:["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-image":{type:"resolvedImage",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{type:"number",default:2,minimum:0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-keep-upright":{type:"boolean",default:!1,requires:["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-offset":{type:"array",value:"number",length:2,default:[0,0],requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-field":{type:"formatted",default:"",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-font":{type:"array",value:"string",default:["Open Sans Regular","Arial Unicode MS Regular"],requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-size":{type:"number",default:16,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-width":{type:"number",default:10,minimum:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{type:"number",default:1.2,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-letter-spacing":{type:"number",default:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-justify":{type:"enum",values:{auto:{},left:{},center:{},right:{}},default:"center",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{type:"number",units:"ems",default:0,requires:["text-field"],"property-type":"data-driven",expression:{interpolated:!0,parameters:["zoom","feature"]}},"text-variable-anchor":{type:"array",value:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["text-field",{"!":"text-variable-anchor"}],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{type:"number",default:45,units:"degrees",requires:["text-field",{"symbol-placement":["line","line-center"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-writing-mode":{type:"array",value:"enum",values:{horizontal:{},vertical:{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-padding":{type:"number",default:2,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-keep-upright":{type:"boolean",default:!0,requires:["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-transform":{type:"enum",values:{none:{},uppercase:{},lowercase:{}},default:"none",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-offset":{type:"array",value:"number",units:"ems",length:2,default:[0,0],requires:["text-field",{"!":"text-radial-offset"}],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{type:"boolean",default:!1,requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{type:"boolean",default:!1,requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-optional":{type:"boolean",default:!1,requires:["text-field","icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_raster:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_hillshade:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},filter:{type:"array",value:"*"},filter_operator:{type:"enum",values:{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{},within:{}}},geometry_type:{type:"enum",values:{Point:{},LineString:{},Polygon:{}}},function:{expression:{type:"expression"},stops:{type:"array",value:"function_stop"},base:{type:"number",default:1,minimum:0},property:{type:"string",default:"$zoom"},type:{type:"enum",values:{identity:{},exponential:{},interval:{},categorical:{}},default:"exponential"},colorSpace:{type:"enum",values:{rgb:{},lab:{},hcl:{}},default:"rgb"},default:{type:"*",required:!1}},function_stop:{type:"array",minimum:0,maximum:24,value:["number","color"],length:2},expression:{type:"array",value:"*",minimum:1},expression_name:{type:"enum",values:{let:{group:"Variable binding"},var:{group:"Variable binding"},literal:{group:"Types"},array:{group:"Types"},at:{group:"Lookup"},in:{group:"Lookup"},"index-of":{group:"Lookup"},slice:{group:"Lookup"},case:{group:"Decision"},match:{group:"Decision"},coalesce:{group:"Decision"},step:{group:"Ramps, scales, curves"},interpolate:{group:"Ramps, scales, curves"},"interpolate-hcl":{group:"Ramps, scales, curves"},"interpolate-lab":{group:"Ramps, scales, curves"},ln2:{group:"Math"},pi:{group:"Math"},e:{group:"Math"},typeof:{group:"Types"},string:{group:"Types"},number:{group:"Types"},boolean:{group:"Types"},object:{group:"Types"},collator:{group:"Types"},format:{group:"Types"},image:{group:"Types"},"number-format":{group:"Types"},"to-string":{group:"Types"},"to-number":{group:"Types"},"to-boolean":{group:"Types"},"to-rgba":{group:"Color"},"to-color":{group:"Types"},rgb:{group:"Color"},rgba:{group:"Color"},get:{group:"Lookup"},has:{group:"Lookup"},length:{group:"Lookup"},properties:{group:"Feature data"},"feature-state":{group:"Feature data"},"geometry-type":{group:"Feature data"},id:{group:"Feature data"},zoom:{group:"Zoom"},"heatmap-density":{group:"Heatmap"},"line-progress":{group:"Feature data"},accumulated:{group:"Feature data"},"+":{group:"Math"},"*":{group:"Math"},"-":{group:"Math"},"/":{group:"Math"},"%":{group:"Math"},"^":{group:"Math"},sqrt:{group:"Math"},log10:{group:"Math"},ln:{group:"Math"},log2:{group:"Math"},sin:{group:"Math"},cos:{group:"Math"},tan:{group:"Math"},asin:{group:"Math"},acos:{group:"Math"},atan:{group:"Math"},min:{group:"Math"},max:{group:"Math"},round:{group:"Math"},abs:{group:"Math"},ceil:{group:"Math"},floor:{group:"Math"},distance:{group:"Math"},"==":{group:"Decision"},"!=":{group:"Decision"},">":{group:"Decision"},"<":{group:"Decision"},">=":{group:"Decision"},"<=":{group:"Decision"},all:{group:"Decision"},any:{group:"Decision"},"!":{group:"Decision"},within:{group:"Decision"},"is-supported-script":{group:"String"},upcase:{group:"String"},downcase:{group:"String"},concat:{group:"String"},"resolved-locale":{group:"String"}}},light:{anchor:{type:"enum",default:"viewport",values:{map:{},viewport:{}},"property-type":"data-constant",transition:!1,expression:{interpolated:!1,parameters:["zoom"]}},position:{type:"array",default:[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},paint:["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_background"],paint_fill:{"fill-antialias":{type:"boolean",default:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{type:"color",transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-extrusion-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-extrusion-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"fill-extrusion-height":{type:"number",default:0,minimum:0,units:"meters",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{type:"number",default:0,minimum:0,units:"meters",transition:!0,requires:["fill-extrusion-height"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{type:"boolean",default:!0,transition:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_line:{"line-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"line-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["line-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-width":{type:"number",default:1,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{type:"number",default:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{type:"array",value:"number",minimum:0,transition:!0,units:"line widths",requires:[{"!":"line-pattern"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"line-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-gradient":{type:"color",transition:!1,requires:[{"!":"line-dasharray"},{"!":"line-pattern"},{source:"geojson",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:["line-progress"]},"property-type":"color-ramp"}},paint_circle:{"circle-radius":{type:"number",default:5,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{type:"number",default:0,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["circle-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{type:"enum",values:{map:{},viewport:{}},default:"map",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"}},paint_heatmap:{"heatmap-radius":{type:"number",default:30,minimum:1,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{type:"number",default:1,minimum:0,transition:!1,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{type:"number",default:1,minimum:0,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"heatmap-color":{type:"color",default:["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",.1,"royalblue",.3,"cyan",.5,"lime",.7,"yellow",1,"red"],transition:!1,expression:{interpolated:!0,parameters:["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_symbol:{"icon-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{type:"color",default:"#000000",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["icon-image","icon-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{type:"color",default:"#000000",transition:!0,overridable:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["text-field","text-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_raster:{"raster-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{type:"number",default:0,period:360,transition:!0,units:"degrees",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{type:"number",default:0,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-saturation":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-contrast":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-resampling":{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{type:"number",default:300,minimum:0,transition:!1,units:"milliseconds",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_hillshade:{"hillshade-illumination-direction":{type:"number",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{type:"number",default:.5,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{type:"color",default:"#FFFFFF",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_background:{"background-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"background-pattern"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"background-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"background-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},transition:{duration:{type:"number",default:300,minimum:0,units:"milliseconds"},delay:{type:"number",default:0,minimum:0,units:"milliseconds"}},"property-type":{"data-driven":{type:"property-type"},"cross-faded":{type:"property-type"},"cross-faded-data-driven":{type:"property-type"},"color-ramp":{type:"property-type"},"data-constant":{type:"property-type"},constant:{type:"property-type"}},promoteId:{"*":{type:"string"}}},He=function(C,F,J,oe){this.message=(C?C+": ":"")+J,oe&&(this.identifier=oe),F!=null&&F.__line__&&(this.line=F.__line__)};function rt(C){var F=C.key,J=C.value;return J?[new He(F,J,"constants have been deprecated as of v8")]:[]}function lt(C){for(var F=[],J=arguments.length-1;J-- >0;)F[J]=arguments[J+1];for(var oe=0,pe=F;oe":C.itemType.kind==="value"?"array":"array<"+F+">"}return C.kind}var Kt=[Ut,tt,bt,zt,St,st,Dt,It(Le),Et];function Ht(C,F){if(F.kind==="error")return null;if(C.kind==="array"){if(F.kind==="array"&&(F.N===0&&F.itemType.kind==="value"||!Ht(C.itemType,F.itemType))&&(typeof C.N!="number"||C.N===F.N))return null}else{if(C.kind===F.kind)return null;if(C.kind==="value"){for(var J=0,oe=Kt;J255?255:Ze}function pe(Ze){return Ze<0?0:Ze>1?1:Ze}function xe(Ze){return Ze[Ze.length-1]==="%"?oe(parseFloat(Ze)/100*255):oe(parseInt(Ze))}function Ce(Ze){return Ze[Ze.length-1]==="%"?pe(parseFloat(Ze)/100):pe(parseFloat(Ze))}function Ne(Ze,ct,gt){return gt<0?gt+=1:gt>1&&(gt-=1),6*gt<1?Ze+(ct-Ze)*gt*6:2*gt<1?ct:3*gt<2?Ze+(ct-Ze)*(2/3-gt)*6:Ze}try{F.parseCSSColor=function(Ze){var ct,gt=Ze.replace(/ /g,"").toLowerCase();if(gt in J)return J[gt].slice();if(gt[0]==="#")return gt.length===4?(ct=parseInt(gt.substr(1),16))>=0&&ct<=4095?[(3840&ct)>>4|(3840&ct)>>8,240&ct|(240&ct)>>4,15&ct|(15&ct)<<4,1]:null:gt.length===7&&(ct=parseInt(gt.substr(1),16))>=0&&ct<=16777215?[(16711680&ct)>>16,(65280&ct)>>8,255&ct,1]:null;var Bt=gt.indexOf("("),Xt=gt.indexOf(")");if(Bt!==-1&&Xt+1===gt.length){var Gt=gt.substr(0,Bt),on=gt.substr(Bt+1,Xt-(Bt+1)).split(","),vn=1;switch(Gt){case"rgba":if(on.length!==4)return null;vn=Ce(on.pop());case"rgb":return on.length!==3?null:[xe(on[0]),xe(on[1]),xe(on[2]),vn];case"hsla":if(on.length!==4)return null;vn=Ce(on.pop());case"hsl":if(on.length!==3)return null;var Cn=(parseFloat(on[0])%360+360)%360/360,En=Ce(on[1]),Vn=Ce(on[2]),qn=Vn<=.5?Vn*(En+1):Vn+En-Vn*En,Xn=2*Vn-qn;return[oe(255*Ne(Xn,qn,Cn+1/3)),oe(255*Ne(Xn,qn,Cn)),oe(255*Ne(Xn,qn,Cn-1/3)),vn];default:return null}}return null}}catch{}}).parseCSSColor,tn=function(C,F,J,oe){oe===void 0&&(oe=1),this.r=C,this.g=F,this.b=J,this.a=oe};tn.parse=function(C){if(C){if(C instanceof tn)return C;if(typeof C=="string"){var F=pn(C);if(F)return new tn(F[0]/255*F[3],F[1]/255*F[3],F[2]/255*F[3],F[3])}}},tn.prototype.toString=function(){var C=this.toArray(),F=C[0],J=C[1],oe=C[2],pe=C[3];return"rgba("+Math.round(F)+","+Math.round(J)+","+Math.round(oe)+","+pe+")"},tn.prototype.toArray=function(){var C=this.r,F=this.g,J=this.b,oe=this.a;return oe===0?[0,0,0,0]:[255*C/oe,255*F/oe,255*J/oe,oe]},tn.black=new tn(0,0,0,1),tn.white=new tn(1,1,1,1),tn.transparent=new tn(0,0,0,0),tn.red=new tn(1,0,0,1);var nn=function(C,F,J){this.sensitivity=C?F?"variant":"case":F?"accent":"base",this.locale=J,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})};nn.prototype.compare=function(C,F){return this.collator.compare(C,F)},nn.prototype.resolvedLocale=function(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale};var sn=function(C,F,J,oe,pe){this.text=C,this.image=F,this.scale=J,this.fontStack=oe,this.textColor=pe},gn=function(C){this.sections=C};gn.fromString=function(C){return new gn([new sn(C,null,null,null,null)])},gn.prototype.isEmpty=function(){return this.sections.length===0||!this.sections.some(function(C){return C.text.length!==0||C.image&&C.image.name.length!==0})},gn.factory=function(C){return C instanceof gn?C:gn.fromString(C)},gn.prototype.toString=function(){return this.sections.length===0?"":this.sections.map(function(C){return C.text}).join("")},gn.prototype.serialize=function(){for(var C=["format"],F=0,J=this.sections;F=0&&C<=255&&typeof F=="number"&&F>=0&&F<=255&&typeof J=="number"&&J>=0&&J<=255?oe===void 0||typeof oe=="number"&&oe>=0&&oe<=1?null:"Invalid rgba value ["+[C,F,J,oe].join(", ")+"]: 'a' must be between 0 and 1.":"Invalid rgba value ["+(typeof oe=="number"?[C,F,J,oe]:[C,F,J]).join(", ")+"]: 'r', 'g', and 'b' must be between 0 and 255."}function Hn(C){if(C===null||typeof C=="string"||typeof C=="boolean"||typeof C=="number"||C instanceof tn||C instanceof nn||C instanceof gn||C instanceof bn)return!0;if(Array.isArray(C)){for(var F=0,J=C;F2){var Ne=C[1];if(typeof Ne!="string"||!(Ne in Er)||Ne==="object")return F.error('The item type argument of "array" must be one of string, number, boolean',1);xe=Er[Ne],oe++}else xe=Le;if(C.length>3){if(C[2]!==null&&(typeof C[2]!="number"||C[2]<0||C[2]!==Math.floor(C[2])))return F.error('The length argument to "array" must be a positive integer literal',2);Ce=C[2],oe++}J=It(xe,Ce)}else J=Er[pe];for(var Ze=[];oe1)&&F.push(oe)}}return F.concat(this.args.map(function(pe){return pe.serialize()}))};var Ln=function(C){this.type=st,this.sections=C};Ln.parse=function(C,F){if(C.length<2)return F.error("Expected at least one argument.");var J=C[1];if(!Array.isArray(J)&&typeof J=="object")return F.error("First argument must be an image or text section.");for(var oe=[],pe=!1,xe=1;xe<=C.length-1;++xe){var Ce=C[xe];if(pe&&typeof Ce=="object"&&!Array.isArray(Ce)){pe=!1;var Ne=null;if(Ce["font-scale"]&&!(Ne=F.parse(Ce["font-scale"],1,tt)))return null;var Ze=null;if(Ce["text-font"]&&!(Ze=F.parse(Ce["text-font"],1,It(bt))))return null;var ct=null;if(Ce["text-color"]&&!(ct=F.parse(Ce["text-color"],1,St)))return null;var gt=oe[oe.length-1];gt.scale=Ne,gt.font=Ze,gt.textColor=ct}else{var Bt=F.parse(C[xe],1,Le);if(!Bt)return null;var Xt=Bt.type.kind;if(Xt!=="string"&&Xt!=="value"&&Xt!=="null"&&Xt!=="resolvedImage")return F.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");pe=!0,oe.push({content:Bt,scale:null,font:null,textColor:null})}}return new Ln(oe)},Ln.prototype.evaluate=function(C){return new gn(this.sections.map(function(F){var J=F.content.evaluate(C);return Wn(J)===Et?new sn("",J,null,null,null):new sn(ar(J),null,F.scale?F.scale.evaluate(C):null,F.font?F.font.evaluate(C).join(","):null,F.textColor?F.textColor.evaluate(C):null)}))},Ln.prototype.eachChild=function(C){for(var F=0,J=this.sections;F-1),J},lr.prototype.eachChild=function(C){C(this.input)},lr.prototype.outputDefined=function(){return!1},lr.prototype.serialize=function(){return["image",this.input.serialize()]};var Wr={"to-boolean":zt,"to-color":St,"to-number":tt,"to-string":bt},Mn=function(C,F){this.type=C,this.args=F};Mn.parse=function(C,F){if(C.length<2)return F.error("Expected at least one argument.");var J=C[0];if((J==="to-boolean"||J==="to-string")&&C.length!==2)return F.error("Expected one argument.");for(var oe=Wr[J],pe=[],xe=1;xe4?"Invalid rbga value "+JSON.stringify(F)+": expected an array containing either three or four numeric values.":In(F[0],F[1],F[2],F[3])))return new tn(F[0]/255,F[1]/255,F[2]/255,F[3])}throw new vr(J||"Could not parse color from value '"+(typeof F=="string"?F:String(JSON.stringify(F)))+"'")}if(this.type.kind==="number"){for(var Ce=null,Ne=0,Ze=this.args;Ne=F[2])&&!(C[1]<=F[1])&&!(C[3]>=F[3])}function qr(C,F){var J,oe=(180+C[0])/360,pe=(J=C[1],(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+J*Math.PI/360)))/360),xe=Math.pow(2,F.z);return[Math.round(oe*xe*8192),Math.round(pe*xe*8192)]}function _i(C,F,J){return F[1]>C[1]!=J[1]>C[1]&&C[0]<(J[0]-F[0])*(C[1]-F[1])/(J[1]-F[1])+F[0]}function cn(C,F){for(var J,oe,pe,xe,Ce,Ne,Ze,ct=!1,gt=0,Bt=F.length;gt0&&Bt<0||gt<0&&Bt>0}function fn(C,F,J){for(var oe=0,pe=J;oeJ[2]){var pe=.5*oe,xe=C[0]-J[0]>pe?-oe:J[0]-C[0]>pe?oe:0;xe===0&&(xe=C[0]-J[2]>pe?-oe:J[2]-C[0]>pe?oe:0),C[0]+=xe}$r(F,C)}function wn(C,F,J,oe){for(var pe=8192*Math.pow(2,oe.z),xe=[8192*oe.x,8192*oe.y],Ce=[],Ne=0,Ze=C;Ne=0)return!1;var J=!0;return C.eachChild(function(oe){J&&!Yn(oe,F)&&(J=!1)}),J}Tn.parse=function(C,F){if(C.length!==2)return F.error("'within' expression requires exactly one argument, but found "+(C.length-1)+" instead.");if(Hn(C[1])){var J=C[1];if(J.type==="FeatureCollection")for(var oe=0;oeF))throw new vr("Input is not a number.");Ce=Ne-1}return 0}or.prototype.parse=function(C,F,J,oe,pe){return pe===void 0&&(pe={}),F?this.concat(F,J,oe)._parse(C,pe):this._parse(C,pe)},or.prototype._parse=function(C,F){function J(ct,gt,Bt){return Bt==="assert"?new Kn(gt,[ct]):Bt==="coerce"?new Mn(gt,[ct]):ct}if(C!==null&&typeof C!="string"&&typeof C!="boolean"&&typeof C!="number"||(C=["literal",C]),Array.isArray(C)){if(C.length===0)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');var oe=C[0];if(typeof oe!="string")return this.error("Expression name must be a string, but found "+typeof oe+' instead. If you wanted a literal array, use ["literal", [...]].',0),null;var pe=this.registry[oe];if(pe){var xe=pe.parse(C,this);if(!xe)return null;if(this.expectedType){var Ce=this.expectedType,Ne=xe.type;if(Ce.kind!=="string"&&Ce.kind!=="number"&&Ce.kind!=="boolean"&&Ce.kind!=="object"&&Ce.kind!=="array"||Ne.kind!=="value")if(Ce.kind!=="color"&&Ce.kind!=="formatted"&&Ce.kind!=="resolvedImage"||Ne.kind!=="value"&&Ne.kind!=="string"){if(this.checkSubtype(Ce,Ne))return null}else xe=J(xe,Ce,F.typeAnnotation||"coerce");else xe=J(xe,Ce,F.typeAnnotation||"assert")}if(!(xe instanceof Or)&&xe.type.kind!=="resolvedImage"&&function ct(gt){if(gt instanceof ir)return ct(gt.boundExpression);if(gt instanceof Bn&>.name==="error"||gt instanceof Fr||gt instanceof Tn)return!1;var Bt=gt instanceof Mn||gt instanceof Kn,Xt=!0;return gt.eachChild(function(Gt){Xt=Bt?Xt&&ct(Gt):Xt&&Gt instanceof Or}),Xt?Dn(gt)&&Yn(gt,["zoom","heatmap-density","line-progress","accumulated","is-supported-script"]):!1}(xe)){var Ze=new nr;try{xe=new Or(xe.type,xe.evaluate(Ze))}catch(ct){return this.error(ct.message),null}}return xe}return this.error('Unknown expression "'+oe+'". If you wanted a literal array, use ["literal", [...]].',0)}return C===void 0?this.error("'undefined' value invalid. Use null instead."):typeof C=="object"?this.error('Bare objects invalid. Use ["literal", {...}] instead.'):this.error("Expected an array, but found "+typeof C+" instead.")},or.prototype.concat=function(C,F,J){var oe=typeof C=="number"?this.path.concat(C):this.path,pe=J?this.scope.concat(J):this.scope;return new or(this.registry,oe,F||null,pe,this.errors)},or.prototype.error=function(C){for(var F=[],J=arguments.length-1;J-- >0;)F[J]=arguments[J+1];var oe=""+this.key+F.map(function(pe){return"["+pe+"]"}).join("");this.errors.push(new wt(oe,C))},or.prototype.checkSubtype=function(C,F){var J=Ht(C,F);return J&&this.error(J),J};var wr=function(C,F,J){this.type=C,this.input=F,this.labels=[],this.outputs=[];for(var oe=0,pe=J;oe=Ce)return F.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',Ze);var gt=F.parse(Ne,ct,pe);if(!gt)return null;pe=pe||gt.type,oe.push([Ce,gt])}return new wr(pe,J,oe)},wr.prototype.evaluate=function(C){var F=this.labels,J=this.outputs;if(F.length===1)return J[0].evaluate(C);var oe=this.input.evaluate(C);if(oe<=F[0])return J[0].evaluate(C);var pe=F.length;return oe>=F[pe-1]?J[pe-1].evaluate(C):J[xr(F,oe)].evaluate(C)},wr.prototype.eachChild=function(C){C(this.input);for(var F=0,J=this.outputs;F0&&C.push(this.labels[F]),C.push(this.outputs[F].serialize());return C};var Dr=Object.freeze({__proto__:null,number:kr,color:function(C,F,J){return new tn(kr(C.r,F.r,J),kr(C.g,F.g,J),kr(C.b,F.b,J),kr(C.a,F.a,J))},array:function(C,F,J){return C.map(function(oe,pe){return kr(oe,F[pe],J)})}}),Nr=6/29,ri=3*Nr*Nr,ji=Math.PI/180,Bi=180/Math.PI;function Sr(C){return C>.008856451679035631?Math.pow(C,1/3):C/ri+4/29}function ui(C){return C>Nr?C*C*C:ri*(C-4/29)}function si(C){return 255*(C<=.0031308?12.92*C:1.055*Math.pow(C,1/2.4)-.055)}function ta(C){return(C/=255)<=.04045?C/12.92:Math.pow((C+.055)/1.055,2.4)}function Ja(C){var F=ta(C.r),J=ta(C.g),oe=ta(C.b),pe=Sr((.4124564*F+.3575761*J+.1804375*oe)/.95047),xe=Sr((.2126729*F+.7151522*J+.072175*oe)/1);return{l:116*xe-16,a:500*(pe-xe),b:200*(xe-Sr((.0193339*F+.119192*J+.9503041*oe)/1.08883)),alpha:C.a}}function Ao(C){var F=(C.l+16)/116,J=isNaN(C.a)?F:F+C.a/500,oe=isNaN(C.b)?F:F-C.b/200;return F=1*ui(F),J=.95047*ui(J),oe=1.08883*ui(oe),new tn(si(3.2404542*J-1.5371385*F-.4985314*oe),si(-.969266*J+1.8760108*F+.041556*oe),si(.0556434*J-.2040259*F+1.0572252*oe),C.alpha)}function fs(C,F,J){var oe=F-C;return C+J*(oe>180||oe<-180?oe-360*Math.round(oe/360):oe)}var ya={forward:Ja,reverse:Ao,interpolate:function(C,F,J){return{l:kr(C.l,F.l,J),a:kr(C.a,F.a,J),b:kr(C.b,F.b,J),alpha:kr(C.alpha,F.alpha,J)}}},xa={forward:function(C){var F=Ja(C),J=F.l,oe=F.a,pe=F.b,xe=Math.atan2(pe,oe)*Bi;return{h:xe<0?xe+360:xe,c:Math.sqrt(oe*oe+pe*pe),l:J,alpha:C.a}},reverse:function(C){var F=C.h*ji,J=C.c;return Ao({l:C.l,a:Math.cos(F)*J,b:Math.sin(F)*J,alpha:C.alpha})},interpolate:function(C,F,J){return{h:fs(C.h,F.h,J),c:kr(C.c,F.c,J),l:kr(C.l,F.l,J),alpha:kr(C.alpha,F.alpha,J)}}},Zo=Object.freeze({__proto__:null,lab:ya,hcl:xa}),oa=function(C,F,J,oe,pe){this.type=C,this.operator=F,this.interpolation=J,this.input=oe,this.labels=[],this.outputs=[];for(var xe=0,Ce=pe;xe1}))return F.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);oe={name:"cubic-bezier",controlPoints:Ne}}if(C.length-1<4)return F.error("Expected at least 4 arguments, but found only "+(C.length-1)+".");if((C.length-1)%2!=0)return F.error("Expected an even number of arguments.");if(!(pe=F.parse(pe,2,tt)))return null;var Ze=[],ct=null;J==="interpolate-hcl"||J==="interpolate-lab"?ct=St:F.expectedType&&F.expectedType.kind!=="value"&&(ct=F.expectedType);for(var gt=0;gt=Bt)return F.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',Gt);var vn=F.parse(Xt,on,ct);if(!vn)return null;ct=ct||vn.type,Ze.push([Bt,vn])}return ct.kind==="number"||ct.kind==="color"||ct.kind==="array"&&ct.itemType.kind==="number"&&typeof ct.N=="number"?new oa(ct,J,oe,pe,Ze):F.error("Type "+Zt(ct)+" is not interpolatable.")},oa.prototype.evaluate=function(C){var F=this.labels,J=this.outputs;if(F.length===1)return J[0].evaluate(C);var oe=this.input.evaluate(C);if(oe<=F[0])return J[0].evaluate(C);var pe=F.length;if(oe>=F[pe-1])return J[pe-1].evaluate(C);var xe=xr(F,oe),Ce=F[xe],Ne=F[xe+1],Ze=oa.interpolationFactor(this.interpolation,oe,Ce,Ne),ct=J[xe].evaluate(C),gt=J[xe+1].evaluate(C);return this.operator==="interpolate"?Dr[this.type.kind.toLowerCase()](ct,gt,Ze):this.operator==="interpolate-hcl"?xa.reverse(xa.interpolate(xa.forward(ct),xa.forward(gt),Ze)):ya.reverse(ya.interpolate(ya.forward(ct),ya.forward(gt),Ze))},oa.prototype.eachChild=function(C){C(this.input);for(var F=0,J=this.outputs;F=J.length)throw new vr("Array index out of bounds: "+F+" > "+(J.length-1)+".");if(F!==Math.floor(F))throw new vr("Array index must be an integer, but found "+F+" instead.");return J[F]},Jo.prototype.eachChild=function(C){C(this.index),C(this.input)},Jo.prototype.outputDefined=function(){return!1},Jo.prototype.serialize=function(){return["at",this.index.serialize(),this.input.serialize()]};var _s=function(C,F){this.type=zt,this.needle=C,this.haystack=F};_s.parse=function(C,F){if(C.length!==3)return F.error("Expected 2 arguments, but found "+(C.length-1)+" instead.");var J=F.parse(C[1],1,Le),oe=F.parse(C[2],2,Le);return J&&oe?mn(J.type,[zt,bt,tt,Ut,Le])?new _s(J,oe):F.error("Expected first argument to be of type boolean, string, number or null, but found "+Zt(J.type)+" instead"):null},_s.prototype.evaluate=function(C){var F=this.needle.evaluate(C),J=this.haystack.evaluate(C);if(!J)return!1;if(!zn(F,["boolean","string","number","null"]))throw new vr("Expected first argument to be of type boolean, string, number or null, but found "+Zt(Wn(F))+" instead.");if(!zn(J,["string","array"]))throw new vr("Expected second argument to be of type array or string, but found "+Zt(Wn(J))+" instead.");return J.indexOf(F)>=0},_s.prototype.eachChild=function(C){C(this.needle),C(this.haystack)},_s.prototype.outputDefined=function(){return!0},_s.prototype.serialize=function(){return["in",this.needle.serialize(),this.haystack.serialize()]};var Ls=function(C,F,J){this.type=tt,this.needle=C,this.haystack=F,this.fromIndex=J};Ls.parse=function(C,F){if(C.length<=2||C.length>=5)return F.error("Expected 3 or 4 arguments, but found "+(C.length-1)+" instead.");var J=F.parse(C[1],1,Le),oe=F.parse(C[2],2,Le);if(!J||!oe)return null;if(!mn(J.type,[zt,bt,tt,Ut,Le]))return F.error("Expected first argument to be of type boolean, string, number or null, but found "+Zt(J.type)+" instead");if(C.length===4){var pe=F.parse(C[3],3,tt);return pe?new Ls(J,oe,pe):null}return new Ls(J,oe)},Ls.prototype.evaluate=function(C){var F=this.needle.evaluate(C),J=this.haystack.evaluate(C);if(!zn(F,["boolean","string","number","null"]))throw new vr("Expected first argument to be of type boolean, string, number or null, but found "+Zt(Wn(F))+" instead.");if(!zn(J,["string","array"]))throw new vr("Expected second argument to be of type array or string, but found "+Zt(Wn(J))+" instead.");if(this.fromIndex){var oe=this.fromIndex.evaluate(C);return J.indexOf(F,oe)}return J.indexOf(F)},Ls.prototype.eachChild=function(C){C(this.needle),C(this.haystack),this.fromIndex&&C(this.fromIndex)},Ls.prototype.outputDefined=function(){return!1},Ls.prototype.serialize=function(){if(this.fromIndex!=null&&this.fromIndex!==void 0){var C=this.fromIndex.serialize();return["index-of",this.needle.serialize(),this.haystack.serialize(),C]}return["index-of",this.needle.serialize(),this.haystack.serialize()]};var Oo=function(C,F,J,oe,pe,xe){this.inputType=C,this.type=F,this.input=J,this.cases=oe,this.outputs=pe,this.otherwise=xe};Oo.parse=function(C,F){if(C.length<5)return F.error("Expected at least 4 arguments, but found only "+(C.length-1)+".");if(C.length%2!=1)return F.error("Expected an even number of arguments.");var J,oe;F.expectedType&&F.expectedType.kind!=="value"&&(oe=F.expectedType);for(var pe={},xe=[],Ce=2;CeNumber.MAX_SAFE_INTEGER)return ct.error("Branch labels must be integers no larger than "+Number.MAX_SAFE_INTEGER+".");if(typeof Xt=="number"&&Math.floor(Xt)!==Xt)return ct.error("Numeric branch labels must be integer values.");if(J){if(ct.checkSubtype(J,Wn(Xt)))return null}else J=Wn(Xt);if(pe[String(Xt)]!==void 0)return ct.error("Branch labels must be unique.");pe[String(Xt)]=xe.length}var Gt=F.parse(Ze,Ce,oe);if(!Gt)return null;oe=oe||Gt.type,xe.push(Gt)}var on=F.parse(C[1],1,Le);if(!on)return null;var vn=F.parse(C[C.length-1],C.length-1,oe);return vn?on.type.kind!=="value"&&F.concat(1).checkSubtype(J,on.type)?null:new Oo(J,oe,on,pe,xe,vn):null},Oo.prototype.evaluate=function(C){var F=this.input.evaluate(C);return(Wn(F)===this.inputType&&this.outputs[this.cases[F]]||this.otherwise).evaluate(C)},Oo.prototype.eachChild=function(C){C(this.input),this.outputs.forEach(C),C(this.otherwise)},Oo.prototype.outputDefined=function(){return this.outputs.every(function(C){return C.outputDefined()})&&this.otherwise.outputDefined()},Oo.prototype.serialize=function(){for(var C=this,F=["match",this.input.serialize()],J=[],oe={},pe=0,xe=Object.keys(this.cases).sort();pe=5)return F.error("Expected 3 or 4 arguments, but found "+(C.length-1)+" instead.");var J=F.parse(C[1],1,Le),oe=F.parse(C[2],2,tt);if(!J||!oe)return null;if(!mn(J.type,[It(Le),bt,Le]))return F.error("Expected first argument to be of type array or string, but found "+Zt(J.type)+" instead");if(C.length===4){var pe=F.parse(C[3],3,tt);return pe?new $o(J.type,J,oe,pe):null}return new $o(J.type,J,oe)},$o.prototype.evaluate=function(C){var F=this.input.evaluate(C),J=this.beginIndex.evaluate(C);if(!zn(F,["string","array"]))throw new vr("Expected first argument to be of type array or string, but found "+Zt(Wn(F))+" instead.");if(this.endIndex){var oe=this.endIndex.evaluate(C);return F.slice(J,oe)}return F.slice(J)},$o.prototype.eachChild=function(C){C(this.input),C(this.beginIndex),this.endIndex&&C(this.endIndex)},$o.prototype.outputDefined=function(){return!1},$o.prototype.serialize=function(){if(this.endIndex!=null&&this.endIndex!==void 0){var C=this.endIndex.serialize();return["slice",this.input.serialize(),this.beginIndex.serialize(),C]}return["slice",this.input.serialize(),this.beginIndex.serialize()]};var ju=ba("==",function(C,F,J){return F===J},Mc),Wl=ba("!=",function(C,F,J){return F!==J},function(C,F,J,oe){return!Mc(0,F,J,oe)}),Sc=ba("<",function(C,F,J){return F",function(C,F,J){return F>J},function(C,F,J,oe){return oe.compare(F,J)>0}),ac=ba("<=",function(C,F,J){return F<=J},function(C,F,J,oe){return oe.compare(F,J)<=0}),Cc=ba(">=",function(C,F,J){return F>=J},function(C,F,J,oe){return oe.compare(F,J)>=0}),Ns=function(C,F,J,oe,pe){this.type=bt,this.number=C,this.locale=F,this.currency=J,this.minFractionDigits=oe,this.maxFractionDigits=pe};Ns.parse=function(C,F){if(C.length!==3)return F.error("Expected two arguments.");var J=F.parse(C[1],1,tt);if(!J)return null;var oe=C[2];if(typeof oe!="object"||Array.isArray(oe))return F.error("NumberFormat options argument must be an object.");var pe=null;if(oe.locale&&!(pe=F.parse(oe.locale,1,bt)))return null;var xe=null;if(oe.currency&&!(xe=F.parse(oe.currency,1,bt)))return null;var Ce=null;if(oe["min-fraction-digits"]&&!(Ce=F.parse(oe["min-fraction-digits"],1,tt)))return null;var Ne=null;return oe["max-fraction-digits"]&&!(Ne=F.parse(oe["max-fraction-digits"],1,tt))?null:new Ns(J,pe,xe,Ce,Ne)},Ns.prototype.evaluate=function(C){return new Intl.NumberFormat(this.locale?this.locale.evaluate(C):[],{style:this.currency?"currency":"decimal",currency:this.currency?this.currency.evaluate(C):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(C):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(C):void 0}).format(this.number.evaluate(C))},Ns.prototype.eachChild=function(C){C(this.number),this.locale&&C(this.locale),this.currency&&C(this.currency),this.minFractionDigits&&C(this.minFractionDigits),this.maxFractionDigits&&C(this.maxFractionDigits)},Ns.prototype.outputDefined=function(){return!1},Ns.prototype.serialize=function(){var C={};return this.locale&&(C.locale=this.locale.serialize()),this.currency&&(C.currency=this.currency.serialize()),this.minFractionDigits&&(C["min-fraction-digits"]=this.minFractionDigits.serialize()),this.maxFractionDigits&&(C["max-fraction-digits"]=this.maxFractionDigits.serialize()),["number-format",this.number.serialize(),C]};var Bs=function(C){this.type=tt,this.input=C};Bs.parse=function(C,F){if(C.length!==2)return F.error("Expected 1 argument, but found "+(C.length-1)+" instead.");var J=F.parse(C[1],1);return J?J.type.kind!=="array"&&J.type.kind!=="string"&&J.type.kind!=="value"?F.error("Expected argument of type string or array, but found "+Zt(J.type)+" instead."):new Bs(J):null},Bs.prototype.evaluate=function(C){var F=this.input.evaluate(C);if(typeof F=="string"||Array.isArray(F))return F.length;throw new vr("Expected value to be of type string or array, but found "+Zt(Wn(F))+" instead.")},Bs.prototype.eachChild=function(C){C(this.input)},Bs.prototype.outputDefined=function(){return!1},Bs.prototype.serialize=function(){var C=["length"];return this.eachChild(function(F){C.push(F.serialize())}),C};var fl={"==":ju,"!=":Wl,">":Ec,"<":Sc,">=":Cc,"<=":ac,array:Kn,at:Jo,boolean:Kn,case:Ka,coalesce:bs,collator:Fr,format:Ln,image:lr,in:_s,"index-of":Ls,interpolate:oa,"interpolate-hcl":oa,"interpolate-lab":oa,length:Bs,let:so,literal:Or,match:Oo,number:Kn,"number-format":Ns,object:Kn,slice:$o,step:wr,string:Kn,"to-boolean":Mn,"to-color":Mn,"to-number":Mn,"to-string":Mn,var:ir,within:Tn};function hl(C,F){var J=F[0],oe=F[1],pe=F[2],xe=F[3];J=J.evaluate(C),oe=oe.evaluate(C),pe=pe.evaluate(C);var Ce=xe?xe.evaluate(C):1,Ne=In(J,oe,pe,Ce);if(Ne)throw new vr(Ne);return new tn(J/255*Ce,oe/255*Ce,pe/255*Ce,Ce)}function dl(C,F){return C in F}function Yl(C,F){var J=F[C];return J===void 0?null:J}function ws(C){return{type:C}}function Uu(C){return{result:"success",value:C}}function ds(C){return{result:"error",value:C}}function pl(C){return C["property-type"]==="data-driven"||C["property-type"]==="cross-faded-data-driven"}function Vu(C){return!!C.expression&&C.expression.parameters.indexOf("zoom")>-1}function js(C){return!!C.expression&&C.expression.interpolated}function ma(C){return C instanceof Number?"number":C instanceof String?"string":C instanceof Boolean?"boolean":Array.isArray(C)?"array":C===null?"null":typeof C}function je(C){return typeof C=="object"&&C!==null&&!Array.isArray(C)}function $e(C){return C}function Qe(C,F,J){return C!==void 0?C:F!==void 0?F:J!==void 0?J:void 0}function ut(C,F,J,oe,pe){return Qe(typeof J===pe?oe[J]:void 0,C.default,F.default)}function mt(C,F,J){if(ma(J)!=="number")return Qe(C.default,F.default);var oe=C.stops.length;if(oe===1||J<=C.stops[0][0])return C.stops[0][1];if(J>=C.stops[oe-1][0])return C.stops[oe-1][1];var pe=xr(C.stops.map(function(xe){return xe[0]}),J);return C.stops[pe][1]}function pt(C,F,J){var oe=C.base!==void 0?C.base:1;if(ma(J)!=="number")return Qe(C.default,F.default);var pe=C.stops.length;if(pe===1||J<=C.stops[0][0])return C.stops[0][1];if(J>=C.stops[pe-1][0])return C.stops[pe-1][1];var xe=xr(C.stops.map(function(Bt){return Bt[0]}),J),Ce=function(Bt,Xt,Gt,on){var vn=on-Gt,Cn=Bt-Gt;return vn===0?0:Xt===1?Cn/vn:(Math.pow(Xt,Cn)-1)/(Math.pow(Xt,vn)-1)}(J,oe,C.stops[xe][0],C.stops[xe+1][0]),Ne=C.stops[xe][1],Ze=C.stops[xe+1][1],ct=Dr[F.type]||$e;if(C.colorSpace&&C.colorSpace!=="rgb"){var gt=Zo[C.colorSpace];ct=function(Bt,Xt){return gt.reverse(gt.interpolate(gt.forward(Bt),gt.forward(Xt),Ce))}}return typeof Ne.evaluate=="function"?{evaluate:function(){for(var Bt=[],Xt=arguments.length;Xt--;)Bt[Xt]=arguments[Xt];var Gt=Ne.evaluate.apply(void 0,Bt),on=Ze.evaluate.apply(void 0,Bt);if(Gt!==void 0&&on!==void 0)return ct(Gt,on,Ce)}}:ct(Ne,Ze,Ce)}function Ct(C,F,J){return F.type==="color"?J=tn.parse(J):F.type==="formatted"?J=gn.fromString(J.toString()):F.type==="resolvedImage"?J=bn.fromString(J.toString()):ma(J)===F.type||F.type==="enum"&&F.values[J]||(J=void 0),Qe(J,C.default,F.default)}Bn.register(fl,{error:[{kind:"error"},[bt],function(C,F){var J=F[0];throw new vr(J.evaluate(C))}],typeof:[bt,[Le],function(C,F){return Zt(Wn(F[0].evaluate(C)))}],"to-rgba":[It(tt,4),[St],function(C,F){return F[0].evaluate(C).toArray()}],rgb:[St,[tt,tt,tt],hl],rgba:[St,[tt,tt,tt,tt],hl],has:{type:zt,overloads:[[[bt],function(C,F){return dl(F[0].evaluate(C),C.properties())}],[[bt,Dt],function(C,F){var J=F[0],oe=F[1];return dl(J.evaluate(C),oe.evaluate(C))}]]},get:{type:Le,overloads:[[[bt],function(C,F){return Yl(F[0].evaluate(C),C.properties())}],[[bt,Dt],function(C,F){var J=F[0],oe=F[1];return Yl(J.evaluate(C),oe.evaluate(C))}]]},"feature-state":[Le,[bt],function(C,F){return Yl(F[0].evaluate(C),C.featureState||{})}],properties:[Dt,[],function(C){return C.properties()}],"geometry-type":[bt,[],function(C){return C.geometryType()}],id:[Le,[],function(C){return C.id()}],zoom:[tt,[],function(C){return C.globals.zoom}],"heatmap-density":[tt,[],function(C){return C.globals.heatmapDensity||0}],"line-progress":[tt,[],function(C){return C.globals.lineProgress||0}],accumulated:[Le,[],function(C){return C.globals.accumulated===void 0?null:C.globals.accumulated}],"+":[tt,ws(tt),function(C,F){for(var J=0,oe=0,pe=F;oe":[zt,[bt,Le],function(C,F){var J=F[0],oe=F[1],pe=C.properties()[J.value],xe=oe.value;return typeof pe==typeof xe&&pe>xe}],"filter-id->":[zt,[Le],function(C,F){var J=F[0],oe=C.id(),pe=J.value;return typeof oe==typeof pe&&oe>pe}],"filter-<=":[zt,[bt,Le],function(C,F){var J=F[0],oe=F[1],pe=C.properties()[J.value],xe=oe.value;return typeof pe==typeof xe&&pe<=xe}],"filter-id-<=":[zt,[Le],function(C,F){var J=F[0],oe=C.id(),pe=J.value;return typeof oe==typeof pe&&oe<=pe}],"filter->=":[zt,[bt,Le],function(C,F){var J=F[0],oe=F[1],pe=C.properties()[J.value],xe=oe.value;return typeof pe==typeof xe&&pe>=xe}],"filter-id->=":[zt,[Le],function(C,F){var J=F[0],oe=C.id(),pe=J.value;return typeof oe==typeof pe&&oe>=pe}],"filter-has":[zt,[Le],function(C,F){return F[0].value in C.properties()}],"filter-has-id":[zt,[],function(C){return C.id()!==null&&C.id()!==void 0}],"filter-type-in":[zt,[It(bt)],function(C,F){return F[0].value.indexOf(C.geometryType())>=0}],"filter-id-in":[zt,[It(Le)],function(C,F){return F[0].value.indexOf(C.id())>=0}],"filter-in-small":[zt,[bt,It(Le)],function(C,F){var J=F[0];return F[1].value.indexOf(C.properties()[J.value])>=0}],"filter-in-large":[zt,[bt,It(Le)],function(C,F){var J=F[0],oe=F[1];return function(pe,xe,Ce,Ne){for(;Ce<=Ne;){var Ze=Ce+Ne>>1;if(xe[Ze]===pe)return!0;xe[Ze]>pe?Ne=Ze-1:Ce=Ze+1}return!1}(C.properties()[J.value],oe.value,0,oe.value.length-1)}],all:{type:zt,overloads:[[[zt,zt],function(C,F){var J=F[0],oe=F[1];return J.evaluate(C)&&oe.evaluate(C)}],[ws(zt),function(C,F){for(var J=0,oe=F;J0&&typeof C[0]=="string"&&C[0]in fl}function Yt(C,F){var J=new or(fl,[],F?function(pe){var xe={color:St,string:bt,number:tt,enum:bt,boolean:zt,formatted:st,resolvedImage:Et};return pe.type==="array"?It(xe[pe.value]||Le,pe.length):xe[pe.type]}(F):void 0),oe=J.parse(C,void 0,void 0,void 0,F&&F.type==="string"?{typeAnnotation:"coerce"}:void 0);return oe?Uu(new Qt(oe,F)):ds(J.errors)}Qt.prototype.evaluateWithoutErrorHandling=function(C,F,J,oe,pe,xe){return this._evaluator.globals=C,this._evaluator.feature=F,this._evaluator.featureState=J,this._evaluator.canonical=oe,this._evaluator.availableImages=pe||null,this._evaluator.formattedSection=xe,this.expression.evaluate(this._evaluator)},Qt.prototype.evaluate=function(C,F,J,oe,pe,xe){this._evaluator.globals=C,this._evaluator.feature=F||null,this._evaluator.featureState=J||null,this._evaluator.canonical=oe,this._evaluator.availableImages=pe||null,this._evaluator.formattedSection=xe||null;try{var Ce=this.expression.evaluate(this._evaluator);if(Ce==null||typeof Ce=="number"&&Ce!=Ce)return this._defaultValue;if(this._enumValues&&!(Ce in this._enumValues))throw new vr("Expected value to be one of "+Object.keys(this._enumValues).map(function(Ne){return JSON.stringify(Ne)}).join(", ")+", but found "+JSON.stringify(Ce)+" instead.");return Ce}catch(Ne){return this._warningHistory[Ne.message]||(this._warningHistory[Ne.message]=!0,typeof console<"u"&&console.warn(Ne.message)),this._defaultValue}};var an=function(C,F){this.kind=C,this._styleExpression=F,this.isStateDependent=C!=="constant"&&!Zn(F.expression)};an.prototype.evaluateWithoutErrorHandling=function(C,F,J,oe,pe,xe){return this._styleExpression.evaluateWithoutErrorHandling(C,F,J,oe,pe,xe)},an.prototype.evaluate=function(C,F,J,oe,pe,xe){return this._styleExpression.evaluate(C,F,J,oe,pe,xe)};var hn=function(C,F,J,oe){this.kind=C,this.zoomStops=J,this._styleExpression=F,this.isStateDependent=C!=="camera"&&!Zn(F.expression),this.interpolationType=oe};function xn(C,F){if((C=Yt(C,F)).result==="error")return C;var J=C.value.expression,oe=Dn(J);if(!oe&&!pl(F))return ds([new wt("","data expressions not supported")]);var pe=Yn(J,["zoom"]);if(!pe&&!Vu(F))return ds([new wt("","zoom expressions not supported")]);var xe=function Ne(Ze){var ct=null;if(Ze instanceof so)ct=Ne(Ze.result);else if(Ze instanceof bs)for(var gt=0,Bt=Ze.args;gtoe.maximum?[new He(F,J,J+" is greater than the maximum value "+oe.maximum)]:[]}function zr(C){var F,J,oe,pe=C.valueSpec,xe=ot(C.value.type),Ce={},Ne=xe!=="categorical"&&C.value.property===void 0,Ze=!Ne,ct=ma(C.value.stops)==="array"&&ma(C.value.stops[0])==="array"&&ma(C.value.stops[0][0])==="object",gt=Pn({key:C.key,value:C.value,valueSpec:C.styleSpec.function,style:C.style,styleSpec:C.styleSpec,objectElementValidators:{stops:function(Gt){if(xe==="identity")return[new He(Gt.key,Gt.value,'identity function may not have a "stops" property')];var on=[],vn=Gt.value;return on=on.concat(sr({key:Gt.key,value:vn,valueSpec:Gt.valueSpec,style:Gt.style,styleSpec:Gt.styleSpec,arrayElementValidator:Bt})),ma(vn)==="array"&&vn.length===0&&on.push(new He(Gt.key,vn,"array must have at least one stop")),on},default:function(Gt){return ln({key:Gt.key,value:Gt.value,valueSpec:pe,style:Gt.style,styleSpec:Gt.styleSpec})}}});return xe==="identity"&&Ne&>.push(new He(C.key,C.value,'missing required property "property"')),xe==="identity"||C.value.stops||gt.push(new He(C.key,C.value,'missing required property "stops"')),xe==="exponential"&&C.valueSpec.expression&&!js(C.valueSpec)&>.push(new He(C.key,C.value,"exponential functions not supported")),C.styleSpec.$version>=8&&(Ze&&!pl(C.valueSpec)?gt.push(new He(C.key,C.value,"property functions not supported")):Ne&&!Vu(C.valueSpec)&>.push(new He(C.key,C.value,"zoom functions not supported"))),xe!=="categorical"&&!ct||C.value.property!==void 0||gt.push(new He(C.key,C.value,'"property" property is required')),gt;function Bt(Gt){var on=[],vn=Gt.value,Cn=Gt.key;if(ma(vn)!=="array")return[new He(Cn,vn,"array expected, "+ma(vn)+" found")];if(vn.length!==2)return[new He(Cn,vn,"array length 2 expected, length "+vn.length+" found")];if(ct){if(ma(vn[0])!=="object")return[new He(Cn,vn,"object expected, "+ma(vn[0])+" found")];if(vn[0].zoom===void 0)return[new He(Cn,vn,"object stop key must have zoom")];if(vn[0].value===void 0)return[new He(Cn,vn,"object stop key must have value")];if(oe&&oe>ot(vn[0].zoom))return[new He(Cn,vn[0].zoom,"stop zoom values must appear in ascending order")];ot(vn[0].zoom)!==oe&&(oe=ot(vn[0].zoom),J=void 0,Ce={}),on=on.concat(Pn({key:Cn+"[0]",value:vn[0],valueSpec:{zoom:{}},style:Gt.style,styleSpec:Gt.styleSpec,objectElementValidators:{zoom:mr,value:Xt}}))}else on=on.concat(Xt({key:Cn+"[0]",value:vn[0],valueSpec:{},style:Gt.style,styleSpec:Gt.styleSpec},vn));return en(kt(vn[1]))?on.concat([new He(Cn+"[1]",vn[1],"expressions are not allowed in function stops.")]):on.concat(ln({key:Cn+"[1]",value:vn[1],valueSpec:pe,style:Gt.style,styleSpec:Gt.styleSpec}))}function Xt(Gt,on){var vn=ma(Gt.value),Cn=ot(Gt.value),En=Gt.value!==null?Gt.value:on;if(F){if(vn!==F)return[new He(Gt.key,En,vn+" stop domain type must match previous stop domain type "+F)]}else F=vn;if(vn!=="number"&&vn!=="string"&&vn!=="boolean")return[new He(Gt.key,En,"stop domain value must be a number, string, or boolean")];if(vn!=="number"&&xe!=="categorical"){var Vn="number expected, "+vn+" found";return pl(pe)&&xe===void 0&&(Vn+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new He(Gt.key,En,Vn)]}return xe!=="categorical"||vn!=="number"||isFinite(Cn)&&Math.floor(Cn)===Cn?xe!=="categorical"&&vn==="number"&&J!==void 0&&Cn=2&&C[1]!=="$id"&&C[1]!=="$type";case"in":return C.length>=3&&(typeof C[1]!="string"||Array.isArray(C[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return C.length!==3||Array.isArray(C[1])||Array.isArray(C[2]);case"any":case"all":for(var F=0,J=C.slice(1);FF?1:0}function sa(C){if(!C)return!0;var F,J=C[0];return C.length<=1?J!=="any":J==="=="?ca(C[1],C[2],"=="):J==="!="?za(ca(C[1],C[2],"==")):J==="<"||J===">"||J==="<="||J===">="?ca(C[1],C[2],J):J==="any"?(F=C.slice(1),["any"].concat(F.map(sa))):J==="all"?["all"].concat(C.slice(1).map(sa)):J==="none"?["all"].concat(C.slice(1).map(sa).map(za)):J==="in"?lo(C[1],C.slice(2)):J==="!in"?za(lo(C[1],C.slice(2))):J==="has"?io(C[1]):J==="!has"?za(io(C[1])):J!=="within"||C}function ca(C,F,J){switch(C){case"$type":return["filter-type-"+J,F];case"$id":return["filter-id-"+J,F];default:return["filter-"+J,C,F]}}function lo(C,F){if(F.length===0)return!1;switch(C){case"$type":return["filter-type-in",["literal",F]];case"$id":return["filter-id-in",["literal",F]];default:return F.length>200&&!F.some(function(J){return typeof J!=typeof F[0]})?["filter-in-large",C,["literal",F.sort(ua)]]:["filter-in-small",C,["literal",F]]}}function io(C){switch(C){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",C]}}function za(C){return["!",C]}function Ra(C){return jr(kt(C.value))?Br(lt({},C,{expressionContext:"filter",valueSpec:{value:"boolean"}})):function F(J){var oe=J.value,pe=J.key;if(ma(oe)!=="array")return[new He(pe,oe,"array expected, "+ma(oe)+" found")];var xe,Ce=J.styleSpec,Ne=[];if(oe.length<1)return[new He(pe,oe,"filter array must have at least 1 element")];switch(Ne=Ne.concat(Jr({key:pe+"[0]",value:oe[0],valueSpec:Ce.filter_operator,style:J.style,styleSpec:J.styleSpec})),ot(oe[0])){case"<":case"<=":case">":case">=":oe.length>=2&&ot(oe[1])==="$type"&&Ne.push(new He(pe,oe,'"$type" cannot be use with operator "'+oe[0]+'"'));case"==":case"!=":oe.length!==3&&Ne.push(new He(pe,oe,'filter array for operator "'+oe[0]+'" must have 3 elements'));case"in":case"!in":oe.length>=2&&(xe=ma(oe[1]))!=="string"&&Ne.push(new He(pe+"[1]",oe[1],"string expected, "+xe+" found"));for(var Ze=2;Ze=gt[Gt+0]&&oe>=gt[Gt+1])?(Ce[Xt]=!0,xe.push(ct[Xt])):Ce[Xt]=!1}}},Ar.prototype._forEachCell=function(C,F,J,oe,pe,xe,Ce,Ne){for(var Ze=this._convertToCellCoord(C),ct=this._convertToCellCoord(F),gt=this._convertToCellCoord(J),Bt=this._convertToCellCoord(oe),Xt=Ze;Xt<=gt;Xt++)for(var Gt=ct;Gt<=Bt;Gt++){var on=this.d*Gt+Xt;if((!Ne||Ne(this._convertFromCellCoord(Xt),this._convertFromCellCoord(Gt),this._convertFromCellCoord(Xt+1),this._convertFromCellCoord(Gt+1)))&&pe.call(this,C,F,J,oe,on,xe,Ce,Ne))return}},Ar.prototype._convertFromCellCoord=function(C){return(C-this.padding)/this.scale},Ar.prototype._convertToCellCoord=function(C){return Math.max(0,Math.min(this.d-1,Math.floor(C*this.scale)+this.padding))},Ar.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var C=this.cells,F=3+this.cells.length+1+1,J=0,oe=0;oe=0)){var Bt=C[gt];ct[gt]=mi[Ze].shallow.indexOf(gt)>=0?Bt:fi(Bt,F)}C instanceof Error&&(ct.message=C.message)}if(ct.$name)throw new Error("$name property is reserved for worker serialization logic.");return Ze!=="Object"&&(ct.$name=Ze),ct}throw new Error("can't serialize object of type "+typeof C)}function Ni(C){if(C==null||typeof C=="boolean"||typeof C=="number"||typeof C=="string"||C instanceof Boolean||C instanceof Number||C instanceof String||C instanceof Date||C instanceof RegExp||Rr(C)||Gr(C)||ArrayBuffer.isView(C)||C instanceof Ur)return C;if(Array.isArray(C))return C.map(Ni);if(typeof C=="object"){var F=C.$name||"Object",J=mi[F].klass;if(!J)throw new Error("can't deserialize unregistered class "+F);if(J.deserialize)return J.deserialize(C);for(var oe=Object.create(J.prototype),pe=0,xe=Object.keys(C);pe=0?Ne:Ni(Ne)}}return oe}throw new Error("can't deserialize object of type "+typeof C)}var Ki=function(){this.first=!0};Ki.prototype.update=function(C,F){var J=Math.floor(C);return this.first?(this.first=!1,this.lastIntegerZoom=J,this.lastIntegerZoomTime=0,this.lastZoom=C,this.lastFloorZoom=J,!0):(this.lastFloorZoom>J?(this.lastIntegerZoom=J+1,this.lastIntegerZoomTime=F):this.lastFloorZoom=128&&C<=255},Arabic:function(C){return C>=1536&&C<=1791},"Arabic Supplement":function(C){return C>=1872&&C<=1919},"Arabic Extended-A":function(C){return C>=2208&&C<=2303},"Hangul Jamo":function(C){return C>=4352&&C<=4607},"Unified Canadian Aboriginal Syllabics":function(C){return C>=5120&&C<=5759},Khmer:function(C){return C>=6016&&C<=6143},"Unified Canadian Aboriginal Syllabics Extended":function(C){return C>=6320&&C<=6399},"General Punctuation":function(C){return C>=8192&&C<=8303},"Letterlike Symbols":function(C){return C>=8448&&C<=8527},"Number Forms":function(C){return C>=8528&&C<=8591},"Miscellaneous Technical":function(C){return C>=8960&&C<=9215},"Control Pictures":function(C){return C>=9216&&C<=9279},"Optical Character Recognition":function(C){return C>=9280&&C<=9311},"Enclosed Alphanumerics":function(C){return C>=9312&&C<=9471},"Geometric Shapes":function(C){return C>=9632&&C<=9727},"Miscellaneous Symbols":function(C){return C>=9728&&C<=9983},"Miscellaneous Symbols and Arrows":function(C){return C>=11008&&C<=11263},"CJK Radicals Supplement":function(C){return C>=11904&&C<=12031},"Kangxi Radicals":function(C){return C>=12032&&C<=12255},"Ideographic Description Characters":function(C){return C>=12272&&C<=12287},"CJK Symbols and Punctuation":function(C){return C>=12288&&C<=12351},Hiragana:function(C){return C>=12352&&C<=12447},Katakana:function(C){return C>=12448&&C<=12543},Bopomofo:function(C){return C>=12544&&C<=12591},"Hangul Compatibility Jamo":function(C){return C>=12592&&C<=12687},Kanbun:function(C){return C>=12688&&C<=12703},"Bopomofo Extended":function(C){return C>=12704&&C<=12735},"CJK Strokes":function(C){return C>=12736&&C<=12783},"Katakana Phonetic Extensions":function(C){return C>=12784&&C<=12799},"Enclosed CJK Letters and Months":function(C){return C>=12800&&C<=13055},"CJK Compatibility":function(C){return C>=13056&&C<=13311},"CJK Unified Ideographs Extension A":function(C){return C>=13312&&C<=19903},"Yijing Hexagram Symbols":function(C){return C>=19904&&C<=19967},"CJK Unified Ideographs":function(C){return C>=19968&&C<=40959},"Yi Syllables":function(C){return C>=40960&&C<=42127},"Yi Radicals":function(C){return C>=42128&&C<=42191},"Hangul Jamo Extended-A":function(C){return C>=43360&&C<=43391},"Hangul Syllables":function(C){return C>=44032&&C<=55215},"Hangul Jamo Extended-B":function(C){return C>=55216&&C<=55295},"Private Use Area":function(C){return C>=57344&&C<=63743},"CJK Compatibility Ideographs":function(C){return C>=63744&&C<=64255},"Arabic Presentation Forms-A":function(C){return C>=64336&&C<=65023},"Vertical Forms":function(C){return C>=65040&&C<=65055},"CJK Compatibility Forms":function(C){return C>=65072&&C<=65103},"Small Form Variants":function(C){return C>=65104&&C<=65135},"Arabic Presentation Forms-B":function(C){return C>=65136&&C<=65279},"Halfwidth and Fullwidth Forms":function(C){return C>=65280&&C<=65519}};function ra(C){for(var F=0,J=C;F=65097&&C<=65103)||!!Lr["CJK Compatibility Ideographs"](C)||!!Lr["CJK Compatibility"](C)||!!Lr["CJK Radicals Supplement"](C)||!!Lr["CJK Strokes"](C)||!(!Lr["CJK Symbols and Punctuation"](C)||C>=12296&&C<=12305||C>=12308&&C<=12319||C===12336)||!!Lr["CJK Unified Ideographs Extension A"](C)||!!Lr["CJK Unified Ideographs"](C)||!!Lr["Enclosed CJK Letters and Months"](C)||!!Lr["Hangul Compatibility Jamo"](C)||!!Lr["Hangul Jamo Extended-A"](C)||!!Lr["Hangul Jamo Extended-B"](C)||!!Lr["Hangul Jamo"](C)||!!Lr["Hangul Syllables"](C)||!!Lr.Hiragana(C)||!!Lr["Ideographic Description Characters"](C)||!!Lr.Kanbun(C)||!!Lr["Kangxi Radicals"](C)||!!Lr["Katakana Phonetic Extensions"](C)||!(!Lr.Katakana(C)||C===12540)||!(!Lr["Halfwidth and Fullwidth Forms"](C)||C===65288||C===65289||C===65293||C>=65306&&C<=65310||C===65339||C===65341||C===65343||C>=65371&&C<=65503||C===65507||C>=65512&&C<=65519)||!(!Lr["Small Form Variants"](C)||C>=65112&&C<=65118||C>=65123&&C<=65126)||!!Lr["Unified Canadian Aboriginal Syllabics"](C)||!!Lr["Unified Canadian Aboriginal Syllabics Extended"](C)||!!Lr["Vertical Forms"](C)||!!Lr["Yijing Hexagram Symbols"](C)||!!Lr["Yi Syllables"](C)||!!Lr["Yi Radicals"](C))}function ia(C){return!(Ci(C)||function(F){return!(!Lr["Latin-1 Supplement"](F)||F!==167&&F!==169&&F!==174&&F!==177&&F!==188&&F!==189&&F!==190&&F!==215&&F!==247)||!(!Lr["General Punctuation"](F)||F!==8214&&F!==8224&&F!==8225&&F!==8240&&F!==8241&&F!==8251&&F!==8252&&F!==8258&&F!==8263&&F!==8264&&F!==8265&&F!==8273)||!!Lr["Letterlike Symbols"](F)||!!Lr["Number Forms"](F)||!(!Lr["Miscellaneous Technical"](F)||!(F>=8960&&F<=8967||F>=8972&&F<=8991||F>=8996&&F<=9e3||F===9003||F>=9085&&F<=9114||F>=9150&&F<=9165||F===9167||F>=9169&&F<=9179||F>=9186&&F<=9215))||!(!Lr["Control Pictures"](F)||F===9251)||!!Lr["Optical Character Recognition"](F)||!!Lr["Enclosed Alphanumerics"](F)||!!Lr["Geometric Shapes"](F)||!(!Lr["Miscellaneous Symbols"](F)||F>=9754&&F<=9759)||!(!Lr["Miscellaneous Symbols and Arrows"](F)||!(F>=11026&&F<=11055||F>=11088&&F<=11097||F>=11192&&F<=11243))||!!Lr["CJK Symbols and Punctuation"](F)||!!Lr.Katakana(F)||!!Lr["Private Use Area"](F)||!!Lr["CJK Compatibility Forms"](F)||!!Lr["Small Form Variants"](F)||!!Lr["Halfwidth and Fullwidth Forms"](F)||F===8734||F===8756||F===8757||F>=9984&&F<=10087||F>=10102&&F<=10131||F===65532||F===65533}(C))}function Wi(C){return C>=1424&&C<=2303||Lr["Arabic Presentation Forms-A"](C)||Lr["Arabic Presentation Forms-B"](C)}function Ca(C,F){return!(!F&&Wi(C))&&!(C>=2304&&C<=3583||C>=3840&&C<=4255||Lr.Khmer(C))}function pi(C){for(var F=0,J=C;F-1&&(Pi=Zs),ks&&ks(C)};function wa(){uo.fire(new Pe("pluginStateChange",{pluginStatus:Pi,pluginURL:Qa}))}var uo=new Ae,jo=function(){return Pi},La=function(){if(Pi!==_a||!Qa)throw new Error("rtl-text-plugin cannot be downloaded unless a pluginURL is specified");Pi=Po,wa(),Qa&&Ot({url:Qa},function(C){C?Ts(C):(Pi=Al,wa())})},ps={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:function(){return Pi===Al||ps.applyArabicShaping!=null},isLoading:function(){return Pi===Po},setState:function(C){Pi=C.pluginStatus,Qa=C.pluginURL},isParsed:function(){return ps.applyArabicShaping!=null&&ps.processBidirectionalText!=null&&ps.processStyledBidirectionalText!=null},getPluginURL:function(){return Qa}},Pa=function(C,F){this.zoom=C,F?(this.now=F.now,this.fadeDuration=F.fadeDuration,this.zoomHistory=F.zoomHistory,this.transition=F.transition):(this.now=0,this.fadeDuration=0,this.zoomHistory=new Ki,this.transition={})};Pa.prototype.isSupportedScript=function(C){return function(F,J){for(var oe=0,pe=F;oethis.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:F+(1-F)*J}:{fromScale:.5,toScale:1,t:1-(1-J)*F}};var ns=function(C,F){this.property=C,this.value=F,this.expression=function(J,oe){if(je(J))return new _n(J,oe);if(en(J)){var pe=xn(J,oe);if(pe.result==="error")throw new Error(pe.value.map(function(Ce){return Ce.key+": "+Ce.message}).join(", "));return pe.value}var xe=J;return typeof J=="string"&&oe.type==="color"&&(xe=tn.parse(J)),{kind:"constant",evaluate:function(){return xe}}}(F===void 0?C.specification.default:F,C.specification)};ns.prototype.isDataDriven=function(){return this.expression.kind==="source"||this.expression.kind==="composite"},ns.prototype.possiblyEvaluate=function(C,F,J){return this.property.possiblyEvaluate(this,C,F,J)};var vu=function(C){this.property=C,this.value=new ns(C,void 0)};vu.prototype.transitioned=function(C,F){return new _f(this.property,this.value,F,x({},C.transition,this.transition),C.now)},vu.prototype.untransitioned=function(){return new _f(this.property,this.value,null,{},0)};var Xl=function(C){this._properties=C,this._values=Object.create(C.defaultTransitionablePropertyValues)};Xl.prototype.getValue=function(C){return E(this._values[C].value.value)},Xl.prototype.setValue=function(C,F){this._values.hasOwnProperty(C)||(this._values[C]=new vu(this._values[C].property)),this._values[C].value=new ns(this._values[C].property,F===null?void 0:E(F))},Xl.prototype.getTransition=function(C){return E(this._values[C].transition)},Xl.prototype.setTransition=function(C,F){this._values.hasOwnProperty(C)||(this._values[C]=new vu(this._values[C].property)),this._values[C].transition=E(F)||void 0},Xl.prototype.serialize=function(){for(var C={},F=0,J=Object.keys(this._values);Fthis.end)return this.prior=null,pe;if(this.value.isDataDriven())return this.prior=null,pe;if(oe=1)return 1;var Ze=Ne*Ne,ct=Ze*Ne;return 4*(Ne<.5?ct:3*(Ne-Ze)+ct-.75)}(Ce))}return pe};var Mo=function(C){this._properties=C,this._values=Object.create(C.defaultTransitioningPropertyValues)};Mo.prototype.possiblyEvaluate=function(C,F,J){for(var oe=new Zl(this._properties),pe=0,xe=Object.keys(this._values);pexe.zoomHistory.lastIntegerZoom?{from:J,to:oe}:{from:pe,to:oe}},F.prototype.interpolate=function(J){return J},F}(Di),Tf=function(C){this.specification=C};Tf.prototype.possiblyEvaluate=function(C,F,J,oe){if(C.value!==void 0){if(C.expression.kind==="constant"){var pe=C.expression.evaluate(F,null,{},J,oe);return this._calculate(pe,pe,pe,F)}return this._calculate(C.expression.evaluate(new Pa(Math.floor(F.zoom-1),F)),C.expression.evaluate(new Pa(Math.floor(F.zoom),F)),C.expression.evaluate(new Pa(Math.floor(F.zoom+1),F)),F)}},Tf.prototype._calculate=function(C,F,J,oe){return oe.zoom>oe.zoomHistory.lastIntegerZoom?{from:C,to:F}:{from:J,to:F}},Tf.prototype.interpolate=function(C){return C};var Jl=function(C){this.specification=C};Jl.prototype.possiblyEvaluate=function(C,F,J,oe){return!!C.expression.evaluate(F,null,{},J,oe)},Jl.prototype.interpolate=function(){return!1};var Us=function(C){for(var F in this.properties=C,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[],C){var J=C[F];J.specification.overridable&&this.overridableProperties.push(F);var oe=this.defaultPropertyValues[F]=new ns(J,void 0),pe=this.defaultTransitionablePropertyValues[F]=new vu(J);this.defaultTransitioningPropertyValues[F]=pe.untransitioned(),this.defaultPossiblyEvaluatedValues[F]=oe.possiblyEvaluate({})}};Qn("DataDrivenProperty",Di),Qn("DataConstantProperty",wi),Qn("CrossFadedDataDrivenProperty",kf),Qn("CrossFadedProperty",Tf),Qn("ColorRampProperty",Jl);var ml=function(C){function F(J,oe){if(C.call(this),this.id=J.id,this.type=J.type,this._featureFilter={filter:function(){return!0},needGeometry:!1},J.type!=="custom"&&(J=J,this.metadata=J.metadata,this.minzoom=J.minzoom,this.maxzoom=J.maxzoom,J.type!=="background"&&(this.source=J.source,this.sourceLayer=J["source-layer"],this.filter=J.filter),oe.layout&&(this._unevaluatedLayout=new wf(oe.layout)),oe.paint)){for(var pe in this._transitionablePaint=new Xl(oe.paint),J.paint)this.setPaintProperty(pe,J.paint[pe],{validate:!1});for(var xe in J.layout)this.setLayoutProperty(xe,J.layout[xe],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new Zl(oe.paint)}}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype.getCrossfadeParameters=function(){return this._crossfadeParameters},F.prototype.getLayoutProperty=function(J){return J==="visibility"?this.visibility:this._unevaluatedLayout.getValue(J)},F.prototype.setLayoutProperty=function(J,oe,pe){if(pe===void 0&&(pe={}),oe!=null){var xe="layers."+this.id+".layout."+J;if(this._validate(yr,xe,J,oe,pe))return}J!=="visibility"?this._unevaluatedLayout.setValue(J,oe):this.visibility=oe},F.prototype.getPaintProperty=function(J){return M(J,"-transition")?this._transitionablePaint.getTransition(J.slice(0,-11)):this._transitionablePaint.getValue(J)},F.prototype.setPaintProperty=function(J,oe,pe){if(pe===void 0&&(pe={}),oe!=null){var xe="layers."+this.id+".paint."+J;if(this._validate(ur,xe,J,oe,pe))return!1}if(M(J,"-transition"))return this._transitionablePaint.setTransition(J.slice(0,-11),oe||void 0),!1;var Ce=this._transitionablePaint._values[J],Ne=Ce.property.specification["property-type"]==="cross-faded-data-driven",Ze=Ce.value.isDataDriven(),ct=Ce.value;this._transitionablePaint.setValue(J,oe),this._handleSpecialPaintPropertyUpdate(J);var gt=this._transitionablePaint._values[J].value;return gt.isDataDriven()||Ze||Ne||this._handleOverridablePaintPropertyUpdate(J,ct,gt)},F.prototype._handleSpecialPaintPropertyUpdate=function(J){},F.prototype._handleOverridablePaintPropertyUpdate=function(J,oe,pe){return!1},F.prototype.isHidden=function(J){return!!(this.minzoom&&J=this.maxzoom)||this.visibility==="none"},F.prototype.updateTransitions=function(J){this._transitioningPaint=this._transitionablePaint.transitioned(J,this._transitioningPaint)},F.prototype.hasTransition=function(){return this._transitioningPaint.hasTransition()},F.prototype.recalculate=function(J,oe){J.getCrossfadeParameters&&(this._crossfadeParameters=J.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(J,void 0,oe)),this.paint=this._transitioningPaint.possiblyEvaluate(J,void 0,oe)},F.prototype.serialize=function(){var J={id:this.id,type:this.type,source:this.source,"source-layer":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(J.layout=J.layout||{},J.layout.visibility=this.visibility),S(J,function(oe,pe){return!(oe===void 0||pe==="layout"&&!Object.keys(oe).length||pe==="paint"&&!Object.keys(oe).length)})},F.prototype._validate=function(J,oe,pe,xe,Ce){return Ce===void 0&&(Ce={}),(!Ce||Ce.validate!==!1)&&Tr(this,J.call(Jn,{key:oe,layerType:this.type,objectKey:pe,value:xe,styleSpec:De,style:{glyphs:!0,sprite:!0}}))},F.prototype.is3D=function(){return!1},F.prototype.isTileClipped=function(){return!1},F.prototype.hasOffscreenPass=function(){return!1},F.prototype.resize=function(){},F.prototype.isStateDependent=function(){for(var J in this.paint._values){var oe=this.paint.get(J);if(oe instanceof So&&pl(oe.property.specification)&&(oe.value.kind==="source"||oe.value.kind==="composite")&&oe.value.isStateDependent)return!0}return!1},F}(Ae),od={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array},Oc=function(C,F){this._structArray=C,this._pos1=F*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8},ka=function(){this.isTransferred=!1,this.capacity=-1,this.resize(0)};function Da(C,F){F===void 0&&(F=1);var J=0,oe=0;return{members:C.map(function(pe){var xe,Ce=(xe=pe.type,od[xe].BYTES_PER_ELEMENT),Ne=J=qu(J,Math.max(F,Ce)),Ze=pe.components||1;return oe=Math.max(oe,Ce),J+=Ce*Ze,{name:pe.name,type:pe.type,components:Ze,offset:Ne}}),size:qu(J,Math.max(oe,F)),alignment:F}}function qu(C,F){return Math.ceil(C/F)*F}ka.serialize=function(C,F){return C._trim(),F&&(C.isTransferred=!0,F.push(C.arrayBuffer)),{length:C.length,arrayBuffer:C.arrayBuffer}},ka.deserialize=function(C){var F=Object.create(this.prototype);return F.arrayBuffer=C.arrayBuffer,F.length=C.length,F.capacity=C.arrayBuffer.byteLength/F.bytesPerElement,F._refreshViews(),F},ka.prototype._trim=function(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews())},ka.prototype.clear=function(){this.length=0},ka.prototype.resize=function(C){this.reserve(C),this.length=C},ka.prototype.reserve=function(C){if(C>this.capacity){this.capacity=Math.max(C,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);var F=this.uint8;this._refreshViews(),F&&this.uint8.set(F)}},ka.prototype._refreshViews=function(){throw new Error("_refreshViews() must be implemented by each concrete StructArray layout")};var yu=function(C){function F(){C.apply(this,arguments)}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},F.prototype.emplaceBack=function(J,oe){var pe=this.length;return this.resize(pe+1),this.emplace(pe,J,oe)},F.prototype.emplace=function(J,oe,pe){var xe=2*J;return this.int16[xe+0]=oe,this.int16[xe+1]=pe,J},F}(ka);yu.prototype.bytesPerElement=4,Qn("StructArrayLayout2i4",yu);var yo=function(C){function F(){C.apply(this,arguments)}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},F.prototype.emplaceBack=function(J,oe,pe,xe){var Ce=this.length;return this.resize(Ce+1),this.emplace(Ce,J,oe,pe,xe)},F.prototype.emplace=function(J,oe,pe,xe,Ce){var Ne=4*J;return this.int16[Ne+0]=oe,this.int16[Ne+1]=pe,this.int16[Ne+2]=xe,this.int16[Ne+3]=Ce,J},F}(ka);yo.prototype.bytesPerElement=8,Qn("StructArrayLayout4i8",yo);var Hu=function(C){function F(){C.apply(this,arguments)}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},F.prototype.emplaceBack=function(J,oe,pe,xe,Ce,Ne){var Ze=this.length;return this.resize(Ze+1),this.emplace(Ze,J,oe,pe,xe,Ce,Ne)},F.prototype.emplace=function(J,oe,pe,xe,Ce,Ne,Ze){var ct=6*J;return this.int16[ct+0]=oe,this.int16[ct+1]=pe,this.int16[ct+2]=xe,this.int16[ct+3]=Ce,this.int16[ct+4]=Ne,this.int16[ct+5]=Ze,J},F}(ka);Hu.prototype.bytesPerElement=12,Qn("StructArrayLayout2i4i12",Hu);var Lc=function(C){function F(){C.apply(this,arguments)}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},F.prototype.emplaceBack=function(J,oe,pe,xe,Ce,Ne){var Ze=this.length;return this.resize(Ze+1),this.emplace(Ze,J,oe,pe,xe,Ce,Ne)},F.prototype.emplace=function(J,oe,pe,xe,Ce,Ne,Ze){var ct=4*J,gt=8*J;return this.int16[ct+0]=oe,this.int16[ct+1]=pe,this.uint8[gt+4]=xe,this.uint8[gt+5]=Ce,this.uint8[gt+6]=Ne,this.uint8[gt+7]=Ze,J},F}(ka);Lc.prototype.bytesPerElement=8,Qn("StructArrayLayout2i4ub8",Lc);var oc=function(C){function F(){C.apply(this,arguments)}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},F.prototype.emplaceBack=function(J,oe,pe,xe,Ce,Ne,Ze,ct,gt,Bt){var Xt=this.length;return this.resize(Xt+1),this.emplace(Xt,J,oe,pe,xe,Ce,Ne,Ze,ct,gt,Bt)},F.prototype.emplace=function(J,oe,pe,xe,Ce,Ne,Ze,ct,gt,Bt,Xt){var Gt=9*J,on=18*J;return this.uint16[Gt+0]=oe,this.uint16[Gt+1]=pe,this.uint16[Gt+2]=xe,this.uint16[Gt+3]=Ce,this.uint16[Gt+4]=Ne,this.uint16[Gt+5]=Ze,this.uint16[Gt+6]=ct,this.uint16[Gt+7]=gt,this.uint8[on+16]=Bt,this.uint8[on+17]=Xt,J},F}(ka);oc.prototype.bytesPerElement=18,Qn("StructArrayLayout8ui2ub18",oc);var Pc=function(C){function F(){C.apply(this,arguments)}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},F.prototype.emplaceBack=function(J,oe,pe,xe,Ce,Ne,Ze,ct,gt,Bt,Xt,Gt){var on=this.length;return this.resize(on+1),this.emplace(on,J,oe,pe,xe,Ce,Ne,Ze,ct,gt,Bt,Xt,Gt)},F.prototype.emplace=function(J,oe,pe,xe,Ce,Ne,Ze,ct,gt,Bt,Xt,Gt,on){var vn=12*J;return this.int16[vn+0]=oe,this.int16[vn+1]=pe,this.int16[vn+2]=xe,this.int16[vn+3]=Ce,this.uint16[vn+4]=Ne,this.uint16[vn+5]=Ze,this.uint16[vn+6]=ct,this.uint16[vn+7]=gt,this.int16[vn+8]=Bt,this.int16[vn+9]=Xt,this.int16[vn+10]=Gt,this.int16[vn+11]=on,J},F}(ka);Pc.prototype.bytesPerElement=24,Qn("StructArrayLayout4i4ui4i24",Pc);var xu=function(C){function F(){C.apply(this,arguments)}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},F.prototype.emplaceBack=function(J,oe,pe){var xe=this.length;return this.resize(xe+1),this.emplace(xe,J,oe,pe)},F.prototype.emplace=function(J,oe,pe,xe){var Ce=3*J;return this.float32[Ce+0]=oe,this.float32[Ce+1]=pe,this.float32[Ce+2]=xe,J},F}(ka);xu.prototype.bytesPerElement=12,Qn("StructArrayLayout3f12",xu);var sd=function(C){function F(){C.apply(this,arguments)}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)},F.prototype.emplaceBack=function(J){var oe=this.length;return this.resize(oe+1),this.emplace(oe,J)},F.prototype.emplace=function(J,oe){var pe=1*J;return this.uint32[pe+0]=oe,J},F}(ka);sd.prototype.bytesPerElement=4,Qn("StructArrayLayout1ul4",sd);var Tp=function(C){function F(){C.apply(this,arguments)}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},F.prototype.emplaceBack=function(J,oe,pe,xe,Ce,Ne,Ze,ct,gt){var Bt=this.length;return this.resize(Bt+1),this.emplace(Bt,J,oe,pe,xe,Ce,Ne,Ze,ct,gt)},F.prototype.emplace=function(J,oe,pe,xe,Ce,Ne,Ze,ct,gt,Bt){var Xt=10*J,Gt=5*J;return this.int16[Xt+0]=oe,this.int16[Xt+1]=pe,this.int16[Xt+2]=xe,this.int16[Xt+3]=Ce,this.int16[Xt+4]=Ne,this.int16[Xt+5]=Ze,this.uint32[Gt+3]=ct,this.uint16[Xt+8]=gt,this.uint16[Xt+9]=Bt,J},F}(ka);Tp.prototype.bytesPerElement=20,Qn("StructArrayLayout6i1ul2ui20",Tp);var $u=function(C){function F(){C.apply(this,arguments)}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},F.prototype.emplaceBack=function(J,oe,pe,xe,Ce,Ne){var Ze=this.length;return this.resize(Ze+1),this.emplace(Ze,J,oe,pe,xe,Ce,Ne)},F.prototype.emplace=function(J,oe,pe,xe,Ce,Ne,Ze){var ct=6*J;return this.int16[ct+0]=oe,this.int16[ct+1]=pe,this.int16[ct+2]=xe,this.int16[ct+3]=Ce,this.int16[ct+4]=Ne,this.int16[ct+5]=Ze,J},F}(ka);$u.prototype.bytesPerElement=12,Qn("StructArrayLayout2i2i2i12",$u);var ld=function(C){function F(){C.apply(this,arguments)}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},F.prototype.emplaceBack=function(J,oe,pe,xe,Ce){var Ne=this.length;return this.resize(Ne+1),this.emplace(Ne,J,oe,pe,xe,Ce)},F.prototype.emplace=function(J,oe,pe,xe,Ce,Ne){var Ze=4*J,ct=8*J;return this.float32[Ze+0]=oe,this.float32[Ze+1]=pe,this.float32[Ze+2]=xe,this.int16[ct+6]=Ce,this.int16[ct+7]=Ne,J},F}(ka);ld.prototype.bytesPerElement=16,Qn("StructArrayLayout2f1f2i16",ld);var Dc=function(C){function F(){C.apply(this,arguments)}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},F.prototype.emplaceBack=function(J,oe,pe,xe){var Ce=this.length;return this.resize(Ce+1),this.emplace(Ce,J,oe,pe,xe)},F.prototype.emplace=function(J,oe,pe,xe,Ce){var Ne=12*J,Ze=3*J;return this.uint8[Ne+0]=oe,this.uint8[Ne+1]=pe,this.float32[Ze+1]=xe,this.float32[Ze+2]=Ce,J},F}(ka);Dc.prototype.bytesPerElement=12,Qn("StructArrayLayout2ub2f12",Dc);var rs=function(C){function F(){C.apply(this,arguments)}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},F.prototype.emplaceBack=function(J,oe,pe){var xe=this.length;return this.resize(xe+1),this.emplace(xe,J,oe,pe)},F.prototype.emplace=function(J,oe,pe,xe){var Ce=3*J;return this.uint16[Ce+0]=oe,this.uint16[Ce+1]=pe,this.uint16[Ce+2]=xe,J},F}(ka);rs.prototype.bytesPerElement=6,Qn("StructArrayLayout3ui6",rs);var Ap=function(C){function F(){C.apply(this,arguments)}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},F.prototype.emplaceBack=function(J,oe,pe,xe,Ce,Ne,Ze,ct,gt,Bt,Xt,Gt,on,vn,Cn,En,Vn){var qn=this.length;return this.resize(qn+1),this.emplace(qn,J,oe,pe,xe,Ce,Ne,Ze,ct,gt,Bt,Xt,Gt,on,vn,Cn,En,Vn)},F.prototype.emplace=function(J,oe,pe,xe,Ce,Ne,Ze,ct,gt,Bt,Xt,Gt,on,vn,Cn,En,Vn,qn){var Xn=24*J,dr=12*J,br=48*J;return this.int16[Xn+0]=oe,this.int16[Xn+1]=pe,this.uint16[Xn+2]=xe,this.uint16[Xn+3]=Ce,this.uint32[dr+2]=Ne,this.uint32[dr+3]=Ze,this.uint32[dr+4]=ct,this.uint16[Xn+10]=gt,this.uint16[Xn+11]=Bt,this.uint16[Xn+12]=Xt,this.float32[dr+7]=Gt,this.float32[dr+8]=on,this.uint8[br+36]=vn,this.uint8[br+37]=Cn,this.uint8[br+38]=En,this.uint32[dr+10]=Vn,this.int16[Xn+22]=qn,J},F}(ka);Ap.prototype.bytesPerElement=48,Qn("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48",Ap);var Mp=function(C){function F(){C.apply(this,arguments)}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},F.prototype.emplaceBack=function(J,oe,pe,xe,Ce,Ne,Ze,ct,gt,Bt,Xt,Gt,on,vn,Cn,En,Vn,qn,Xn,dr,br,Hr,Vr,ei,vi,yi,li,Si){var Ai=this.length;return this.resize(Ai+1),this.emplace(Ai,J,oe,pe,xe,Ce,Ne,Ze,ct,gt,Bt,Xt,Gt,on,vn,Cn,En,Vn,qn,Xn,dr,br,Hr,Vr,ei,vi,yi,li,Si)},F.prototype.emplace=function(J,oe,pe,xe,Ce,Ne,Ze,ct,gt,Bt,Xt,Gt,on,vn,Cn,En,Vn,qn,Xn,dr,br,Hr,Vr,ei,vi,yi,li,Si,Ai){var xi=34*J,Ta=17*J;return this.int16[xi+0]=oe,this.int16[xi+1]=pe,this.int16[xi+2]=xe,this.int16[xi+3]=Ce,this.int16[xi+4]=Ne,this.int16[xi+5]=Ze,this.int16[xi+6]=ct,this.int16[xi+7]=gt,this.uint16[xi+8]=Bt,this.uint16[xi+9]=Xt,this.uint16[xi+10]=Gt,this.uint16[xi+11]=on,this.uint16[xi+12]=vn,this.uint16[xi+13]=Cn,this.uint16[xi+14]=En,this.uint16[xi+15]=Vn,this.uint16[xi+16]=qn,this.uint16[xi+17]=Xn,this.uint16[xi+18]=dr,this.uint16[xi+19]=br,this.uint16[xi+20]=Hr,this.uint16[xi+21]=Vr,this.uint16[xi+22]=ei,this.uint32[Ta+12]=vi,this.float32[Ta+13]=yi,this.float32[Ta+14]=li,this.float32[Ta+15]=Si,this.float32[Ta+16]=Ai,J},F}(ka);Mp.prototype.bytesPerElement=68,Qn("StructArrayLayout8i15ui1ul4f68",Mp);var ce=function(C){function F(){C.apply(this,arguments)}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},F.prototype.emplaceBack=function(J){var oe=this.length;return this.resize(oe+1),this.emplace(oe,J)},F.prototype.emplace=function(J,oe){var pe=1*J;return this.float32[pe+0]=oe,J},F}(ka);ce.prototype.bytesPerElement=4,Qn("StructArrayLayout1f4",ce);var I=function(C){function F(){C.apply(this,arguments)}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},F.prototype.emplaceBack=function(J,oe,pe){var xe=this.length;return this.resize(xe+1),this.emplace(xe,J,oe,pe)},F.prototype.emplace=function(J,oe,pe,xe){var Ce=3*J;return this.int16[Ce+0]=oe,this.int16[Ce+1]=pe,this.int16[Ce+2]=xe,J},F}(ka);I.prototype.bytesPerElement=6,Qn("StructArrayLayout3i6",I);var j=function(C){function F(){C.apply(this,arguments)}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},F.prototype.emplaceBack=function(J,oe,pe){var xe=this.length;return this.resize(xe+1),this.emplace(xe,J,oe,pe)},F.prototype.emplace=function(J,oe,pe,xe){var Ce=2*J,Ne=4*J;return this.uint32[Ce+0]=oe,this.uint16[Ne+2]=pe,this.uint16[Ne+3]=xe,J},F}(ka);j.prototype.bytesPerElement=8,Qn("StructArrayLayout1ul2ui8",j);var V=function(C){function F(){C.apply(this,arguments)}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},F.prototype.emplaceBack=function(J,oe){var pe=this.length;return this.resize(pe+1),this.emplace(pe,J,oe)},F.prototype.emplace=function(J,oe,pe){var xe=2*J;return this.uint16[xe+0]=oe,this.uint16[xe+1]=pe,J},F}(ka);V.prototype.bytesPerElement=4,Qn("StructArrayLayout2ui4",V);var X=function(C){function F(){C.apply(this,arguments)}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},F.prototype.emplaceBack=function(J){var oe=this.length;return this.resize(oe+1),this.emplace(oe,J)},F.prototype.emplace=function(J,oe){var pe=1*J;return this.uint16[pe+0]=oe,J},F}(ka);X.prototype.bytesPerElement=2,Qn("StructArrayLayout1ui2",X);var se=function(C){function F(){C.apply(this,arguments)}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},F.prototype.emplaceBack=function(J,oe){var pe=this.length;return this.resize(pe+1),this.emplace(pe,J,oe)},F.prototype.emplace=function(J,oe,pe){var xe=2*J;return this.float32[xe+0]=oe,this.float32[xe+1]=pe,J},F}(ka);se.prototype.bytesPerElement=8,Qn("StructArrayLayout2f8",se);var he=function(C){function F(){C.apply(this,arguments)}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},F.prototype.emplaceBack=function(J,oe,pe,xe){var Ce=this.length;return this.resize(Ce+1),this.emplace(Ce,J,oe,pe,xe)},F.prototype.emplace=function(J,oe,pe,xe,Ce){var Ne=4*J;return this.float32[Ne+0]=oe,this.float32[Ne+1]=pe,this.float32[Ne+2]=xe,this.float32[Ne+3]=Ce,J},F}(ka);he.prototype.bytesPerElement=16,Qn("StructArrayLayout4f16",he);var ve=function(C){function F(){C.apply(this,arguments)}C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F;var J={anchorPointX:{configurable:!0},anchorPointY:{configurable:!0},x1:{configurable:!0},y1:{configurable:!0},x2:{configurable:!0},y2:{configurable:!0},featureIndex:{configurable:!0},sourceLayerIndex:{configurable:!0},bucketIndex:{configurable:!0},anchorPoint:{configurable:!0}};return J.anchorPointX.get=function(){return this._structArray.int16[this._pos2+0]},J.anchorPointY.get=function(){return this._structArray.int16[this._pos2+1]},J.x1.get=function(){return this._structArray.int16[this._pos2+2]},J.y1.get=function(){return this._structArray.int16[this._pos2+3]},J.x2.get=function(){return this._structArray.int16[this._pos2+4]},J.y2.get=function(){return this._structArray.int16[this._pos2+5]},J.featureIndex.get=function(){return this._structArray.uint32[this._pos4+3]},J.sourceLayerIndex.get=function(){return this._structArray.uint16[this._pos2+8]},J.bucketIndex.get=function(){return this._structArray.uint16[this._pos2+9]},J.anchorPoint.get=function(){return new h(this.anchorPointX,this.anchorPointY)},Object.defineProperties(F.prototype,J),F}(Oc);ve.prototype.size=20;var be=function(C){function F(){C.apply(this,arguments)}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype.get=function(J){return new ve(this,J)},F}(Tp);Qn("CollisionBoxArray",be);var Se=function(C){function F(){C.apply(this,arguments)}C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F;var J={anchorX:{configurable:!0},anchorY:{configurable:!0},glyphStartIndex:{configurable:!0},numGlyphs:{configurable:!0},vertexStartIndex:{configurable:!0},lineStartIndex:{configurable:!0},lineLength:{configurable:!0},segment:{configurable:!0},lowerSize:{configurable:!0},upperSize:{configurable:!0},lineOffsetX:{configurable:!0},lineOffsetY:{configurable:!0},writingMode:{configurable:!0},placedOrientation:{configurable:!0},hidden:{configurable:!0},crossTileID:{configurable:!0},associatedIconIndex:{configurable:!0}};return J.anchorX.get=function(){return this._structArray.int16[this._pos2+0]},J.anchorY.get=function(){return this._structArray.int16[this._pos2+1]},J.glyphStartIndex.get=function(){return this._structArray.uint16[this._pos2+2]},J.numGlyphs.get=function(){return this._structArray.uint16[this._pos2+3]},J.vertexStartIndex.get=function(){return this._structArray.uint32[this._pos4+2]},J.lineStartIndex.get=function(){return this._structArray.uint32[this._pos4+3]},J.lineLength.get=function(){return this._structArray.uint32[this._pos4+4]},J.segment.get=function(){return this._structArray.uint16[this._pos2+10]},J.lowerSize.get=function(){return this._structArray.uint16[this._pos2+11]},J.upperSize.get=function(){return this._structArray.uint16[this._pos2+12]},J.lineOffsetX.get=function(){return this._structArray.float32[this._pos4+7]},J.lineOffsetY.get=function(){return this._structArray.float32[this._pos4+8]},J.writingMode.get=function(){return this._structArray.uint8[this._pos1+36]},J.placedOrientation.get=function(){return this._structArray.uint8[this._pos1+37]},J.placedOrientation.set=function(oe){this._structArray.uint8[this._pos1+37]=oe},J.hidden.get=function(){return this._structArray.uint8[this._pos1+38]},J.hidden.set=function(oe){this._structArray.uint8[this._pos1+38]=oe},J.crossTileID.get=function(){return this._structArray.uint32[this._pos4+10]},J.crossTileID.set=function(oe){this._structArray.uint32[this._pos4+10]=oe},J.associatedIconIndex.get=function(){return this._structArray.int16[this._pos2+22]},Object.defineProperties(F.prototype,J),F}(Oc);Se.prototype.size=48;var Ue=function(C){function F(){C.apply(this,arguments)}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype.get=function(J){return new Se(this,J)},F}(Ap);Qn("PlacedSymbolArray",Ue);var Xe=function(C){function F(){C.apply(this,arguments)}C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F;var J={anchorX:{configurable:!0},anchorY:{configurable:!0},rightJustifiedTextSymbolIndex:{configurable:!0},centerJustifiedTextSymbolIndex:{configurable:!0},leftJustifiedTextSymbolIndex:{configurable:!0},verticalPlacedTextSymbolIndex:{configurable:!0},placedIconSymbolIndex:{configurable:!0},verticalPlacedIconSymbolIndex:{configurable:!0},key:{configurable:!0},textBoxStartIndex:{configurable:!0},textBoxEndIndex:{configurable:!0},verticalTextBoxStartIndex:{configurable:!0},verticalTextBoxEndIndex:{configurable:!0},iconBoxStartIndex:{configurable:!0},iconBoxEndIndex:{configurable:!0},verticalIconBoxStartIndex:{configurable:!0},verticalIconBoxEndIndex:{configurable:!0},featureIndex:{configurable:!0},numHorizontalGlyphVertices:{configurable:!0},numVerticalGlyphVertices:{configurable:!0},numIconVertices:{configurable:!0},numVerticalIconVertices:{configurable:!0},useRuntimeCollisionCircles:{configurable:!0},crossTileID:{configurable:!0},textBoxScale:{configurable:!0},textOffset0:{configurable:!0},textOffset1:{configurable:!0},collisionCircleDiameter:{configurable:!0}};return J.anchorX.get=function(){return this._structArray.int16[this._pos2+0]},J.anchorY.get=function(){return this._structArray.int16[this._pos2+1]},J.rightJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+2]},J.centerJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+3]},J.leftJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+4]},J.verticalPlacedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+5]},J.placedIconSymbolIndex.get=function(){return this._structArray.int16[this._pos2+6]},J.verticalPlacedIconSymbolIndex.get=function(){return this._structArray.int16[this._pos2+7]},J.key.get=function(){return this._structArray.uint16[this._pos2+8]},J.textBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+9]},J.textBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+10]},J.verticalTextBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+11]},J.verticalTextBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+12]},J.iconBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+13]},J.iconBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+14]},J.verticalIconBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+15]},J.verticalIconBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+16]},J.featureIndex.get=function(){return this._structArray.uint16[this._pos2+17]},J.numHorizontalGlyphVertices.get=function(){return this._structArray.uint16[this._pos2+18]},J.numVerticalGlyphVertices.get=function(){return this._structArray.uint16[this._pos2+19]},J.numIconVertices.get=function(){return this._structArray.uint16[this._pos2+20]},J.numVerticalIconVertices.get=function(){return this._structArray.uint16[this._pos2+21]},J.useRuntimeCollisionCircles.get=function(){return this._structArray.uint16[this._pos2+22]},J.crossTileID.get=function(){return this._structArray.uint32[this._pos4+12]},J.crossTileID.set=function(oe){this._structArray.uint32[this._pos4+12]=oe},J.textBoxScale.get=function(){return this._structArray.float32[this._pos4+13]},J.textOffset0.get=function(){return this._structArray.float32[this._pos4+14]},J.textOffset1.get=function(){return this._structArray.float32[this._pos4+15]},J.collisionCircleDiameter.get=function(){return this._structArray.float32[this._pos4+16]},Object.defineProperties(F.prototype,J),F}(Oc);Xe.prototype.size=68;var it=function(C){function F(){C.apply(this,arguments)}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype.get=function(J){return new Xe(this,J)},F}(Mp);Qn("SymbolInstanceArray",it);var xt=function(C){function F(){C.apply(this,arguments)}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype.getoffsetX=function(J){return this.float32[1*J+0]},F}(ce);Qn("GlyphOffsetArray",xt);var Lt=function(C){function F(){C.apply(this,arguments)}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype.getx=function(J){return this.int16[3*J+0]},F.prototype.gety=function(J){return this.int16[3*J+1]},F.prototype.gettileUnitDistanceFromAnchor=function(J){return this.int16[3*J+2]},F}(I);Qn("SymbolLineVertexArray",Lt);var _t=function(C){function F(){C.apply(this,arguments)}C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F;var J={featureIndex:{configurable:!0},sourceLayerIndex:{configurable:!0},bucketIndex:{configurable:!0}};return J.featureIndex.get=function(){return this._structArray.uint32[this._pos4+0]},J.sourceLayerIndex.get=function(){return this._structArray.uint16[this._pos2+2]},J.bucketIndex.get=function(){return this._structArray.uint16[this._pos2+3]},Object.defineProperties(F.prototype,J),F}(Oc);_t.prototype.size=8;var Mt=function(C){function F(){C.apply(this,arguments)}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype.get=function(J){return new _t(this,J)},F}(j);Qn("FeatureIndexArray",Mt);var yt=Da([{name:"a_pos",components:2,type:"Int16"}],4).members,Nt=function(C){C===void 0&&(C=[]),this.segments=C};function Rt(C,F){return 256*(C=v(Math.floor(C),0,255))+(F=v(Math.floor(F),0,255))}Nt.prototype.prepareSegment=function(C,F,J,oe){var pe=this.segments[this.segments.length-1];return C>Nt.MAX_VERTEX_ARRAY_LENGTH&&O("Max vertices per segment is "+Nt.MAX_VERTEX_ARRAY_LENGTH+": bucket requested "+C),(!pe||pe.vertexLength+C>Nt.MAX_VERTEX_ARRAY_LENGTH||pe.sortKey!==oe)&&(pe={vertexOffset:F.length,primitiveOffset:J.length,vertexLength:0,primitiveLength:0},oe!==void 0&&(pe.sortKey=oe),this.segments.push(pe)),pe},Nt.prototype.get=function(){return this.segments},Nt.prototype.destroy=function(){for(var C=0,F=this.segments;C>>16)*Ne&65535)<<16)&4294967295)<<15|ct>>>17))*Ze+(((ct>>>16)*Ze&65535)<<16)&4294967295)<<13|xe>>>19))+((5*(xe>>>16)&65535)<<16)&4294967295))+((58964+(Ce>>>16)&65535)<<16);switch(ct=0,oe){case 3:ct^=(255&F.charCodeAt(gt+2))<<16;case 2:ct^=(255&F.charCodeAt(gt+1))<<8;case 1:xe^=ct=(65535&(ct=(ct=(65535&(ct^=255&F.charCodeAt(gt)))*Ne+(((ct>>>16)*Ne&65535)<<16)&4294967295)<<15|ct>>>17))*Ze+(((ct>>>16)*Ze&65535)<<16)&4294967295}return xe^=F.length,xe=2246822507*(65535&(xe^=xe>>>16))+((2246822507*(xe>>>16)&65535)<<16)&4294967295,xe=3266489909*(65535&(xe^=xe>>>13))+((3266489909*(xe>>>16)&65535)<<16)&4294967295,(xe^=xe>>>16)>>>0}}),dn=s(function(C){C.exports=function(F,J){for(var oe,pe=F.length,xe=J^pe,Ce=0;pe>=4;)oe=1540483477*(65535&(oe=255&F.charCodeAt(Ce)|(255&F.charCodeAt(++Ce))<<8|(255&F.charCodeAt(++Ce))<<16|(255&F.charCodeAt(++Ce))<<24))+((1540483477*(oe>>>16)&65535)<<16),xe=1540483477*(65535&xe)+((1540483477*(xe>>>16)&65535)<<16)^(oe=1540483477*(65535&(oe^=oe>>>24))+((1540483477*(oe>>>16)&65535)<<16)),pe-=4,++Ce;switch(pe){case 3:xe^=(255&F.charCodeAt(Ce+2))<<16;case 2:xe^=(255&F.charCodeAt(Ce+1))<<8;case 1:xe=1540483477*(65535&(xe^=255&F.charCodeAt(Ce)))+((1540483477*(xe>>>16)&65535)<<16)}return xe=1540483477*(65535&(xe^=xe>>>13))+((1540483477*(xe>>>16)&65535)<<16),(xe^=xe>>>15)>>>0}}),Sn=rn,An=rn,tr=dn;Sn.murmur3=An,Sn.murmur2=tr;var er=function(){this.ids=[],this.positions=[],this.indexed=!1};er.prototype.add=function(C,F,J,oe){this.ids.push(cr(C)),this.positions.push(F,J,oe)},er.prototype.getPositions=function(C){for(var F=cr(C),J=0,oe=this.ids.length-1;J>1;this.ids[pe]>=F?oe=pe:J=pe+1}for(var xe=[];this.ids[J]===F;){var Ce=this.positions[3*J],Ne=this.positions[3*J+1],Ze=this.positions[3*J+2];xe.push({index:Ce,start:Ne,end:Ze}),J++}return xe},er.serialize=function(C,F){var J=new Float64Array(C.ids),oe=new Uint32Array(C.positions);return function pe(xe,Ce,Ne,Ze){for(;Ne>1],gt=Ne-1,Bt=Ze+1;;){do gt++;while(xe[gt]ct);if(gt>=Bt)break;Yr(xe,gt,Bt),Yr(Ce,3*gt,3*Bt),Yr(Ce,3*gt+1,3*Bt+1),Yr(Ce,3*gt+2,3*Bt+2)}Bt-Neco.max||Ce.yco.max)&&(O("Geometry exceeds allowed extent, reduce your vector tile buffer size"),Ce.x=v(Ce.x,co.min,co.max),Ce.y=v(Ce.y,co.min,co.max))}return J}function As(C,F,J,oe,pe){C.emplaceBack(2*F+(oe+1)/2,2*J+(pe+1)/2)}var Uo=function(C){this.zoom=C.zoom,this.overscaling=C.overscaling,this.layers=C.layers,this.layerIds=this.layers.map(function(F){return F.id}),this.index=C.index,this.hasPattern=!1,this.layoutVertexArray=new yu,this.indexArray=new rs,this.segments=new Nt,this.programConfigurations=new Ha(yt,C.layers,C.zoom),this.stateDependentLayerIds=this.layers.filter(function(F){return F.isStateDependent()}).map(function(F){return F.id})};function Js(C,F){for(var J=0;J1){if(ud(C,F))return!0;for(var oe=0;oe1?C.distSqr(J):C.distSqr(J.sub(F)._mult(pe)._add(F))}function Ep(C,F){for(var J,oe,pe,xe=!1,Ce=0;CeF.y!=pe.y>F.y&&F.x<(pe.x-oe.x)*(F.y-oe.y)/(pe.y-oe.y)+oe.x&&(xe=!xe);return xe}function Kl(C,F){for(var J=!1,oe=0,pe=C.length-1;oeF.y!=Ce.y>F.y&&F.x<(Ce.x-xe.x)*(F.y-xe.y)/(Ce.y-xe.y)+xe.x&&(J=!J)}return J}function Cp(C,F,J){var oe=J[0],pe=J[2];if(C.xpe.x&&F.x>pe.x||C.ype.y&&F.y>pe.y)return!1;var xe=R(C,F,J[0]);return xe!==R(C,F,J[1])||xe!==R(C,F,J[2])||xe!==R(C,F,J[3])}function fo(C,F,J){var oe=F.paint.get(C).value;return oe.kind==="constant"?oe.value:J.programConfigurations.get(F.id).getMaxValue(C)}function Vs(C){return Math.sqrt(C[0]*C[0]+C[1]*C[1])}function qs(C,F,J,oe,pe){if(!F[0]&&!F[1])return C;var xe=h.convert(F)._mult(pe);J==="viewport"&&xe._rotate(-oe);for(var Ce=[],Ne=0;Ne=8192||gt<0||gt>=8192)){var Bt=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,C.sortKey),Xt=Bt.vertexLength;As(this.layoutVertexArray,ct,gt,-1,-1),As(this.layoutVertexArray,ct,gt,1,-1),As(this.layoutVertexArray,ct,gt,1,1),As(this.layoutVertexArray,ct,gt,-1,1),this.indexArray.emplaceBack(Xt,Xt+1,Xt+2),this.indexArray.emplaceBack(Xt,Xt+3,Xt+2),Bt.vertexLength+=4,Bt.primitiveLength+=2}}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,C,J,{},oe)},Qn("CircleBucket",Uo,{omit:["layers"]});var rg=new Us({"circle-sort-key":new Di(De.layout_circle["circle-sort-key"])}),V3={paint:new Us({"circle-radius":new Di(De.paint_circle["circle-radius"]),"circle-color":new Di(De.paint_circle["circle-color"]),"circle-blur":new Di(De.paint_circle["circle-blur"]),"circle-opacity":new Di(De.paint_circle["circle-opacity"]),"circle-translate":new wi(De.paint_circle["circle-translate"]),"circle-translate-anchor":new wi(De.paint_circle["circle-translate-anchor"]),"circle-pitch-scale":new wi(De.paint_circle["circle-pitch-scale"]),"circle-pitch-alignment":new wi(De.paint_circle["circle-pitch-alignment"]),"circle-stroke-width":new Di(De.paint_circle["circle-stroke-width"]),"circle-stroke-color":new Di(De.paint_circle["circle-stroke-color"]),"circle-stroke-opacity":new Di(De.paint_circle["circle-stroke-opacity"])}),layout:rg},Ml=typeof Float32Array<"u"?Float32Array:Array;function c1(C){return C[0]=1,C[1]=0,C[2]=0,C[3]=0,C[4]=0,C[5]=1,C[6]=0,C[7]=0,C[8]=0,C[9]=0,C[10]=1,C[11]=0,C[12]=0,C[13]=0,C[14]=0,C[15]=1,C}function Op(C,F,J){var oe=F[0],pe=F[1],xe=F[2],Ce=F[3],Ne=F[4],Ze=F[5],ct=F[6],gt=F[7],Bt=F[8],Xt=F[9],Gt=F[10],on=F[11],vn=F[12],Cn=F[13],En=F[14],Vn=F[15],qn=J[0],Xn=J[1],dr=J[2],br=J[3];return C[0]=qn*oe+Xn*Ne+dr*Bt+br*vn,C[1]=qn*pe+Xn*Ze+dr*Xt+br*Cn,C[2]=qn*xe+Xn*ct+dr*Gt+br*En,C[3]=qn*Ce+Xn*gt+dr*on+br*Vn,qn=J[4],Xn=J[5],dr=J[6],br=J[7],C[4]=qn*oe+Xn*Ne+dr*Bt+br*vn,C[5]=qn*pe+Xn*Ze+dr*Xt+br*Cn,C[6]=qn*xe+Xn*ct+dr*Gt+br*En,C[7]=qn*Ce+Xn*gt+dr*on+br*Vn,qn=J[8],Xn=J[9],dr=J[10],br=J[11],C[8]=qn*oe+Xn*Ne+dr*Bt+br*vn,C[9]=qn*pe+Xn*Ze+dr*Xt+br*Cn,C[10]=qn*xe+Xn*ct+dr*Gt+br*En,C[11]=qn*Ce+Xn*gt+dr*on+br*Vn,qn=J[12],Xn=J[13],dr=J[14],br=J[15],C[12]=qn*oe+Xn*Ne+dr*Bt+br*vn,C[13]=qn*pe+Xn*Ze+dr*Xt+br*Cn,C[14]=qn*xe+Xn*ct+dr*Gt+br*En,C[15]=qn*Ce+Xn*gt+dr*on+br*Vn,C}Math.hypot||(Math.hypot=function(){for(var C=arguments,F=0,J=arguments.length;J--;)F+=C[J]*C[J];return Math.sqrt(F)});var q3=Op,yh,H3=function(C,F,J){return C[0]=F[0]-J[0],C[1]=F[1]-J[1],C[2]=F[2]-J[2],C};yh=new Ml(3),Ml!=Float32Array&&(yh[0]=0,yh[1]=0,yh[2]=0);function ig(C,F,J){var oe=F[0],pe=F[1],xe=F[2],Ce=F[3];return C[0]=J[0]*oe+J[4]*pe+J[8]*xe+J[12]*Ce,C[1]=J[1]*oe+J[5]*pe+J[9]*xe+J[13]*Ce,C[2]=J[2]*oe+J[6]*pe+J[10]*xe+J[14]*Ce,C[3]=J[3]*oe+J[7]*pe+J[11]*xe+J[15]*Ce,C}(function(){(function(){var C=new Ml(4);return Ml!=Float32Array&&(C[0]=0,C[1]=0,C[2]=0,C[3]=0),C})()})();var f1=function(C){var F=C[0],J=C[1];return F*F+J*J},WH=(function(){(function(){var C=new Ml(2);return Ml!=Float32Array&&(C[0]=0,C[1]=0),C})()}(),function(C){function F(J){C.call(this,J,V3)}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype.createBucket=function(J){return new Uo(J)},F.prototype.queryRadius=function(J){var oe=J;return fo("circle-radius",this,oe)+fo("circle-stroke-width",this,oe)+Vs(this.paint.get("circle-translate"))},F.prototype.queryIntersectsFeature=function(J,oe,pe,xe,Ce,Ne,Ze,ct){for(var gt=qs(J,this.paint.get("circle-translate"),this.paint.get("circle-translate-anchor"),Ne.angle,Ze),Bt=this.paint.get("circle-radius").evaluate(oe,pe)+this.paint.get("circle-stroke-width").evaluate(oe,pe),Xt=this.paint.get("circle-pitch-alignment")==="map",Gt=Xt?gt:function(Hr,Vr){return Hr.map(function(ei){return Y8(ei,Vr)})}(gt,ct),on=Xt?Bt*Ze:Bt,vn=0,Cn=xe;vnC.width||pe.height>C.height||J.x>C.width-pe.width||J.y>C.height-pe.height)throw new RangeError("out of range source coordinates for image copy");if(pe.width>F.width||pe.height>F.height||oe.x>F.width-pe.width||oe.y>F.height-pe.height)throw new RangeError("out of range destination coordinates for image copy");for(var Ce=C.data,Ne=F.data,Ze=0;Ze80*J){oe=xe=C[0],pe=Ce=C[1];for(var on=J;onxe&&(xe=Ne),Ze>Ce&&(Ce=Ze);ct=(ct=Math.max(xe-oe,Ce-pe))!==0?1/ct:0}return h1(Xt,Gt,J,oe,pe,ct),Gt}function Q8(C,F,J,oe,pe){var xe,Ce;if(pe===Z3(C,F,J,oe)>0)for(xe=F;xe=F;xe-=oe)Ce=n9(xe,C[xe],C[xe+1],Ce);return Ce&&gx(Ce,Ce.next)&&(p1(Ce),Ce=Ce.next),Ce}function fd(C,F){if(!C)return C;F||(F=C);var J,oe=C;do if(J=!1,oe.steiner||!gx(oe,oe.next)&&is(oe.prev,oe,oe.next)!==0)oe=oe.next;else{if(p1(oe),(oe=F=oe.prev)===oe.next)break;J=!0}while(J||oe!==F);return F}function h1(C,F,J,oe,pe,xe,Ce){if(C){!Ce&&xe&&function(gt,Bt,Xt,Gt){var on=gt;do on.z===null&&(on.z=Y3(on.x,on.y,Bt,Xt,Gt)),on.prevZ=on.prev,on.nextZ=on.next,on=on.next;while(on!==gt);on.prevZ.nextZ=null,on.prevZ=null,function(vn){var Cn,En,Vn,qn,Xn,dr,br,Hr,Vr=1;do{for(En=vn,vn=null,Xn=null,dr=0;En;){for(dr++,Vn=En,br=0,Cn=0;Cn0||Hr>0&&Vn;)br!==0&&(Hr===0||!Vn||En.z<=Vn.z)?(qn=En,En=En.nextZ,br--):(qn=Vn,Vn=Vn.nextZ,Hr--),Xn?Xn.nextZ=qn:vn=qn,qn.prevZ=Xn,Xn=qn;En=Vn}Xn.nextZ=null,Vr*=2}while(dr>1)}(on)}(C,oe,pe,xe);for(var Ne,Ze,ct=C;C.prev!==C.next;)if(Ne=C.prev,Ze=C.next,xe?e$(C,oe,pe,xe):QH(C))F.push(Ne.i/J),F.push(C.i/J),F.push(Ze.i/J),p1(C),C=Ze.next,ct=Ze.next;else if((C=Ze)===ct){Ce?Ce===1?h1(C=t$(fd(C),F,J),F,J,oe,pe,xe,2):Ce===2&&n$(C,F,J,oe,pe,xe):h1(fd(C),F,J,oe,pe,xe,1);break}}}function QH(C){var F=C.prev,J=C,oe=C.next;if(is(F,J,oe)>=0)return!1;for(var pe=C.next.next;pe!==C.prev;){if(ag(F.x,F.y,J.x,J.y,oe.x,oe.y,pe.x,pe.y)&&is(pe.prev,pe,pe.next)>=0)return!1;pe=pe.next}return!0}function e$(C,F,J,oe){var pe=C.prev,xe=C,Ce=C.next;if(is(pe,xe,Ce)>=0)return!1;for(var Ne=pe.xxe.x?pe.x>Ce.x?pe.x:Ce.x:xe.x>Ce.x?xe.x:Ce.x,gt=pe.y>xe.y?pe.y>Ce.y?pe.y:Ce.y:xe.y>Ce.y?xe.y:Ce.y,Bt=Y3(Ne,Ze,F,J,oe),Xt=Y3(ct,gt,F,J,oe),Gt=C.prevZ,on=C.nextZ;Gt&&Gt.z>=Bt&&on&&on.z<=Xt;){if(Gt!==C.prev&&Gt!==C.next&&ag(pe.x,pe.y,xe.x,xe.y,Ce.x,Ce.y,Gt.x,Gt.y)&&is(Gt.prev,Gt,Gt.next)>=0||(Gt=Gt.prevZ,on!==C.prev&&on!==C.next&&ag(pe.x,pe.y,xe.x,xe.y,Ce.x,Ce.y,on.x,on.y)&&is(on.prev,on,on.next)>=0))return!1;on=on.nextZ}for(;Gt&&Gt.z>=Bt;){if(Gt!==C.prev&&Gt!==C.next&&ag(pe.x,pe.y,xe.x,xe.y,Ce.x,Ce.y,Gt.x,Gt.y)&&is(Gt.prev,Gt,Gt.next)>=0)return!1;Gt=Gt.prevZ}for(;on&&on.z<=Xt;){if(on!==C.prev&&on!==C.next&&ag(pe.x,pe.y,xe.x,xe.y,Ce.x,Ce.y,on.x,on.y)&&is(on.prev,on,on.next)>=0)return!1;on=on.nextZ}return!0}function t$(C,F,J){var oe=C;do{var pe=oe.prev,xe=oe.next.next;!gx(pe,xe)&&e9(pe,oe,oe.next,xe)&&d1(pe,xe)&&d1(xe,pe)&&(F.push(pe.i/J),F.push(oe.i/J),F.push(xe.i/J),p1(oe),p1(oe.next),oe=C=xe),oe=oe.next}while(oe!==C);return fd(oe)}function n$(C,F,J,oe,pe,xe){var Ce=C;do{for(var Ne=Ce.next.next;Ne!==Ce.prev;){if(Ce.i!==Ne.i&&s$(Ce,Ne)){var Ze=t9(Ce,Ne);return Ce=fd(Ce,Ce.next),Ze=fd(Ze,Ze.next),h1(Ce,F,J,oe,pe,xe),void h1(Ze,F,J,oe,pe,xe)}Ne=Ne.next}Ce=Ce.next}while(Ce!==C)}function r$(C,F){return C.x-F.x}function i$(C,F){if(F=function(oe,pe){var xe,Ce=pe,Ne=oe.x,Ze=oe.y,ct=-1/0;do{if(Ze<=Ce.y&&Ze>=Ce.next.y&&Ce.next.y!==Ce.y){var gt=Ce.x+(Ze-Ce.y)*(Ce.next.x-Ce.x)/(Ce.next.y-Ce.y);if(gt<=Ne&>>ct){if(ct=gt,gt===Ne){if(Ze===Ce.y)return Ce;if(Ze===Ce.next.y)return Ce.next}xe=Ce.x=Ce.x&&Ce.x>=Gt&&Ne!==Ce.x&&ag(Zexe.x||Ce.x===xe.x&&a$(xe,Ce)))&&(xe=Ce,vn=Bt)),Ce=Ce.next;while(Ce!==Xt);return xe}(C,F)){var J=t9(F,C);fd(F,F.next),fd(J,J.next)}}function a$(C,F){return is(C.prev,C,F.prev)<0&&is(F.next,C,C.next)<0}function Y3(C,F,J,oe,pe){return(C=1431655765&((C=858993459&((C=252645135&((C=16711935&((C=32767*(C-J)*pe)|C<<8))|C<<4))|C<<2))|C<<1))|(F=1431655765&((F=858993459&((F=252645135&((F=16711935&((F=32767*(F-oe)*pe)|F<<8))|F<<4))|F<<2))|F<<1))<<1}function o$(C){var F=C,J=C;do(F.x=0&&(C-Ce)*(oe-Ne)-(J-Ce)*(F-Ne)>=0&&(J-Ce)*(xe-Ne)-(pe-Ce)*(oe-Ne)>=0}function s$(C,F){return C.next.i!==F.i&&C.prev.i!==F.i&&!function(J,oe){var pe=J;do{if(pe.i!==J.i&&pe.next.i!==J.i&&pe.i!==oe.i&&pe.next.i!==oe.i&&e9(pe,pe.next,J,oe))return!0;pe=pe.next}while(pe!==J);return!1}(C,F)&&(d1(C,F)&&d1(F,C)&&function(J,oe){var pe=J,xe=!1,Ce=(J.x+oe.x)/2,Ne=(J.y+oe.y)/2;do pe.y>Ne!=pe.next.y>Ne&&pe.next.y!==pe.y&&Ce<(pe.next.x-pe.x)*(Ne-pe.y)/(pe.next.y-pe.y)+pe.x&&(xe=!xe),pe=pe.next;while(pe!==J);return xe}(C,F)&&(is(C.prev,C,F.prev)||is(C,F.prev,F))||gx(C,F)&&is(C.prev,C,C.next)>0&&is(F.prev,F,F.next)>0)}function is(C,F,J){return(F.y-C.y)*(J.x-F.x)-(F.x-C.x)*(J.y-F.y)}function gx(C,F){return C.x===F.x&&C.y===F.y}function e9(C,F,J,oe){var pe=vx(is(C,F,J)),xe=vx(is(C,F,oe)),Ce=vx(is(J,oe,C)),Ne=vx(is(J,oe,F));return pe!==xe&&Ce!==Ne||!(pe!==0||!mx(C,J,F))||!(xe!==0||!mx(C,oe,F))||!(Ce!==0||!mx(J,C,oe))||!(Ne!==0||!mx(J,F,oe))}function mx(C,F,J){return F.x<=Math.max(C.x,J.x)&&F.x>=Math.min(C.x,J.x)&&F.y<=Math.max(C.y,J.y)&&F.y>=Math.min(C.y,J.y)}function vx(C){return C>0?1:C<0?-1:0}function d1(C,F){return is(C.prev,C,C.next)<0?is(C,F,C.next)>=0&&is(C,C.prev,F)>=0:is(C,F,C.prev)<0||is(C,C.next,F)<0}function t9(C,F){var J=new X3(C.i,C.x,C.y),oe=new X3(F.i,F.x,F.y),pe=C.next,xe=F.prev;return C.next=F,F.prev=C,J.next=pe,pe.prev=J,oe.next=J,J.prev=oe,xe.next=oe,oe.prev=xe,oe}function n9(C,F,J,oe){var pe=new X3(C,F,J);return oe?(pe.next=oe.next,pe.prev=oe,oe.next.prev=pe,oe.next=pe):(pe.prev=pe,pe.next=pe),pe}function p1(C){C.next.prev=C.prev,C.prev.next=C.next,C.prevZ&&(C.prevZ.nextZ=C.nextZ),C.nextZ&&(C.nextZ.prevZ=C.prevZ)}function X3(C,F,J){this.i=C,this.x=F,this.y=J,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function Z3(C,F,J,oe){for(var pe=0,xe=F,Ce=J-oe;xeZe;){if(ct-Ze>600){var Bt=ct-Ze+1,Xt=Ne-Ze+1,Gt=Math.log(Bt),on=.5*Math.exp(2*Gt/3),vn=.5*Math.sqrt(Gt*on*(Bt-on)/Bt)*(Xt-Bt/2<0?-1:1),Cn=Math.max(Ze,Math.floor(Ne-Xt*on/Bt+vn)),En=Math.min(ct,Math.floor(Ne+(Bt-Xt)*on/Bt+vn));xe(Ce,Ne,Cn,En,gt)}var Vn=Ce[Ne],qn=Ze,Xn=ct;for(g1(Ce,Ze,Ne),gt(Ce[ct],Vn)>0&&g1(Ce,Ze,ct);qn0;)Xn--}gt(Ce[Ze],Vn)===0?g1(Ce,Ze,Xn):(Xn++,g1(Ce,Xn,ct)),Xn<=Ne&&(Ze=Xn+1),Ne<=Xn&&(ct=Xn-1)}})(C,F,J||0,oe||C.length-1,pe||u$)}function g1(C,F,J){var oe=C[F];C[F]=C[J],C[J]=oe}function u$(C,F){return CF?1:0}function J3(C,F){var J=C.length;if(J<=1)return[C];for(var oe,pe,xe=[],Ce=0;Ce1)for(var Ze=0;Ze0&&(oe+=C[pe-1].length,J.holes.push(oe))}return J},W3.default=KH;var Ic=function(C){this.zoom=C.zoom,this.overscaling=C.overscaling,this.layers=C.layers,this.layerIds=this.layers.map(function(F){return F.id}),this.index=C.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new yu,this.indexArray=new rs,this.indexArray2=new V,this.programConfigurations=new Ha(K8,C.layers,C.zoom),this.segments=new Nt,this.segments2=new Nt,this.stateDependentLayerIds=this.layers.filter(function(F){return F.isStateDependent()}).map(function(F){return F.id})};Ic.prototype.populate=function(C,F,J){this.hasPattern=K3("fill",this.layers,F);for(var oe=this.layers[0].layout.get("fill-sort-key"),pe=[],xe=0,Ce=C;xe>3}if(pe--,oe===1||oe===2)xe+=C.readSVarint(),Ce+=C.readSVarint(),oe===1&&(F&&Ne.push(F),F=[]),F.push(new h(xe,Ce));else{if(oe!==7)throw new Error("unknown command "+oe);F&&F.push(F[0].clone())}}return F&&Ne.push(F),Ne},og.prototype.bbox=function(){var C=this._pbf;C.pos=this._geometry;for(var F=C.readVarint()+C.pos,J=1,oe=0,pe=0,xe=0,Ce=1/0,Ne=-1/0,Ze=1/0,ct=-1/0;C.pos>3}if(oe--,J===1||J===2)(pe+=C.readSVarint())Ne&&(Ne=pe),(xe+=C.readSVarint())ct&&(ct=xe);else if(J!==7)throw new Error("unknown command "+J)}return[Ce,Ze,Ne,ct]},og.prototype.toGeoJSON=function(C,F,J){var oe,pe,xe=this.extent*Math.pow(2,J),Ce=this.extent*C,Ne=this.extent*F,Ze=this.loadGeometry(),ct=og.types[this.type];function gt(Gt){for(var on=0;on>3;pe=Ce===1?oe.readString():Ce===2?oe.readFloat():Ce===3?oe.readDouble():Ce===4?oe.readVarint64():Ce===5?oe.readVarint():Ce===6?oe.readSVarint():Ce===7?oe.readBoolean():null}return pe}(J))}function v$(C,F,J){if(C===3){var oe=new a9(J,J.readVarint()+J.pos);oe.length&&(F[oe.name]=oe)}}o9.prototype.feature=function(C){if(C<0||C>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[C];var F=this._pbf.readVarint()+this._pbf.pos;return new i9(this._pbf,F,this.extent,this._keys,this._values)};var sg={VectorTile:function(C,F){this.layers=C.readFields(v$,{},F)},VectorTileFeature:i9,VectorTileLayer:a9},y$=sg.VectorTileFeature.types,e5=Math.pow(2,13);function m1(C,F,J,oe,pe,xe,Ce,Ne){C.emplaceBack(F,J,2*Math.floor(oe*e5)+Ce,pe*e5*2,xe*e5*2,Math.round(Ne))}var zc=function(C){this.zoom=C.zoom,this.overscaling=C.overscaling,this.layers=C.layers,this.layerIds=this.layers.map(function(F){return F.id}),this.index=C.index,this.hasPattern=!1,this.layoutVertexArray=new Hu,this.indexArray=new rs,this.programConfigurations=new Ha(r9,C.layers,C.zoom),this.segments=new Nt,this.stateDependentLayerIds=this.layers.filter(function(F){return F.isStateDependent()}).map(function(F){return F.id})};function x$(C,F){return C.x===F.x&&(C.x<0||C.x>8192)||C.y===F.y&&(C.y<0||C.y>8192)}function b$(C){return C.every(function(F){return F.x<0})||C.every(function(F){return F.x>8192})||C.every(function(F){return F.y<0})||C.every(function(F){return F.y>8192})}zc.prototype.populate=function(C,F,J){this.features=[],this.hasPattern=K3("fill-extrusion",this.layers,F);for(var oe=0,pe=C;oe=1){var Vn=on[Cn-1];if(!x$(En,Vn)){Bt.vertexLength+4>Nt.MAX_VERTEX_ARRAY_LENGTH&&(Bt=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));var qn=En.sub(Vn)._perp()._unit(),Xn=Vn.dist(En);vn+Xn>32768&&(vn=0),m1(this.layoutVertexArray,En.x,En.y,qn.x,qn.y,0,0,vn),m1(this.layoutVertexArray,En.x,En.y,qn.x,qn.y,0,1,vn),vn+=Xn,m1(this.layoutVertexArray,Vn.x,Vn.y,qn.x,qn.y,0,0,vn),m1(this.layoutVertexArray,Vn.x,Vn.y,qn.x,qn.y,0,1,vn);var dr=Bt.vertexLength;this.indexArray.emplaceBack(dr,dr+2,dr+1),this.indexArray.emplaceBack(dr+1,dr+2,dr+3),Bt.vertexLength+=4,Bt.primitiveLength+=2}}}}if(Bt.vertexLength+Ze>Nt.MAX_VERTEX_ARRAY_LENGTH&&(Bt=this.segments.prepareSegment(Ze,this.layoutVertexArray,this.indexArray)),y$[C.type]==="Polygon"){for(var br=[],Hr=[],Vr=Bt.vertexLength,ei=0,vi=Ne;ei=2&&C[Ze-1].equals(C[Ze-2]);)Ze--;for(var ct=0;ct0;if(Hr&&En>ct){var ei=gt.dist(Gt);if(ei>2*Bt){var vi=gt.sub(gt.sub(Gt)._mult(Bt/ei)._round());this.updateDistance(Gt,vi),this.addCurrentVertex(vi,vn,0,0,Xt),Gt=vi}}var yi=Gt&&on,li=yi?J:Ne?"butt":oe;if(yi&&li==="round"&&(drpe&&(li="bevel"),li==="bevel"&&(dr>2&&(li="flipbevel"),dr100)Vn=Cn.mult(-1);else{var Si=dr*vn.add(Cn).mag()/vn.sub(Cn).mag();Vn._perp()._mult(Si*(Vr?-1:1))}this.addCurrentVertex(gt,Vn,0,0,Xt),this.addCurrentVertex(gt,Vn.mult(-1),0,0,Xt)}else if(li==="bevel"||li==="fakeround"){var Ai=-Math.sqrt(dr*dr-1),xi=Vr?Ai:0,Ta=Vr?0:Ai;if(Gt&&this.addCurrentVertex(gt,vn,xi,Ta,Xt),li==="fakeround")for(var da=Math.round(180*br/Math.PI/20),Oa=1;Oa2*Bt){var Ga=gt.add(on.sub(gt)._mult(Bt/po)._round());this.updateDistance(gt,Ga),this.addCurrentVertex(Ga,Cn,0,0,Xt),gt=Ga}}}}},El.prototype.addCurrentVertex=function(C,F,J,oe,pe,xe){xe===void 0&&(xe=!1);var Ce=F.x+F.y*J,Ne=F.y-F.x*J,Ze=-F.x+F.y*oe,ct=-F.y-F.x*oe;this.addHalfVertex(C,Ce,Ne,xe,!1,J,pe),this.addHalfVertex(C,Ze,ct,xe,!0,-oe,pe),this.distance>u9/2&&this.totalDistance===0&&(this.distance=0,this.addCurrentVertex(C,F,J,oe,pe,xe))},El.prototype.addHalfVertex=function(C,F,J,oe,pe,xe,Ce){var Ne=C.x,Ze=C.y,ct=.5*this.scaledDistance;this.layoutVertexArray.emplaceBack((Ne<<1)+(oe?1:0),(Ze<<1)+(pe?1:0),Math.round(63*F)+128,Math.round(63*J)+128,1+(xe===0?0:xe<0?-1:1)|(63&ct)<<2,ct>>6);var gt=Ce.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,gt),Ce.primitiveLength++),pe?this.e2=gt:this.e1=gt},El.prototype.updateScaledDistance=function(){this.scaledDistance=this.totalDistance>0?(this.clipStart+(this.clipEnd-this.clipStart)*this.distance/this.totalDistance)*(u9-1):this.distance},El.prototype.updateDistance=function(C,F){this.distance+=C.dist(F),this.updateScaledDistance()},Qn("LineBucket",El,{omit:["layers","patternFeatures"]});var A$=new Us({"line-cap":new wi(De.layout_line["line-cap"]),"line-join":new Di(De.layout_line["line-join"]),"line-miter-limit":new wi(De.layout_line["line-miter-limit"]),"line-round-limit":new wi(De.layout_line["line-round-limit"]),"line-sort-key":new Di(De.layout_line["line-sort-key"])}),c9={paint:new Us({"line-opacity":new Di(De.paint_line["line-opacity"]),"line-color":new Di(De.paint_line["line-color"]),"line-translate":new wi(De.paint_line["line-translate"]),"line-translate-anchor":new wi(De.paint_line["line-translate-anchor"]),"line-width":new Di(De.paint_line["line-width"]),"line-gap-width":new Di(De.paint_line["line-gap-width"]),"line-offset":new Di(De.paint_line["line-offset"]),"line-blur":new Di(De.paint_line["line-blur"]),"line-dasharray":new Tf(De.paint_line["line-dasharray"]),"line-pattern":new kf(De.paint_line["line-pattern"]),"line-gradient":new Jl(De.paint_line["line-gradient"])}),layout:A$},f9=new(function(C){function F(){C.apply(this,arguments)}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype.possiblyEvaluate=function(J,oe){return oe=new Pa(Math.floor(oe.zoom),{now:oe.now,fadeDuration:oe.fadeDuration,zoomHistory:oe.zoomHistory,transition:oe.transition}),C.prototype.possiblyEvaluate.call(this,J,oe)},F.prototype.evaluate=function(J,oe,pe,xe){return oe=x({},oe,{zoom:Math.floor(oe.zoom)}),C.prototype.evaluate.call(this,J,oe,pe,xe)},F}(Di))(c9.paint.properties["line-width"].specification);f9.useIntegerZoom=!0;var M$=function(C){function F(J){C.call(this,J,c9)}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype._handleSpecialPaintPropertyUpdate=function(J){J==="line-gradient"&&this._updateGradient()},F.prototype._updateGradient=function(){var J=this._transitionablePaint._values["line-gradient"].value.expression;this.gradient=J8(J,"lineProgress"),this.gradientTexture=null},F.prototype.recalculate=function(J,oe){C.prototype.recalculate.call(this,J,oe),this.paint._values["line-floorwidth"]=f9.possiblyEvaluate(this._transitioningPaint._values["line-width"].value,J)},F.prototype.createBucket=function(J){return new El(J)},F.prototype.queryRadius=function(J){var oe=J,pe=h9(fo("line-width",this,oe),fo("line-gap-width",this,oe)),xe=fo("line-offset",this,oe);return pe/2+Math.abs(xe)+Vs(this.paint.get("line-translate"))},F.prototype.queryIntersectsFeature=function(J,oe,pe,xe,Ce,Ne,Ze){var ct=qs(J,this.paint.get("line-translate"),this.paint.get("line-translate-anchor"),Ne.angle,Ze),gt=Ze/2*h9(this.paint.get("line-width").evaluate(oe,pe),this.paint.get("line-gap-width").evaluate(oe,pe)),Bt=this.paint.get("line-offset").evaluate(oe,pe);return Bt&&(xe=function(Xt,Gt){for(var on=[],vn=new h(0,0),Cn=0;Cn=3){for(var En=0;En0?F+2*C:C}var t5=Da([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_data",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"}],4),S$=Da([{name:"a_projected_pos",components:3,type:"Float32"}],4),E$=(Da([{name:"a_fade_opacity",components:1,type:"Uint32"}],4),Da([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"}])),d9=(Da([{type:"Int16",name:"anchorPointX"},{type:"Int16",name:"anchorPointY"},{type:"Int16",name:"x1"},{type:"Int16",name:"y1"},{type:"Int16",name:"x2"},{type:"Int16",name:"y2"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"}]),Da([{name:"a_pos",components:2,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4)),C$=Da([{name:"a_pos",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);Da([{name:"triangle",components:3,type:"Uint16"}]),Da([{type:"Int16",name:"anchorX"},{type:"Int16",name:"anchorY"},{type:"Uint16",name:"glyphStartIndex"},{type:"Uint16",name:"numGlyphs"},{type:"Uint32",name:"vertexStartIndex"},{type:"Uint32",name:"lineStartIndex"},{type:"Uint32",name:"lineLength"},{type:"Uint16",name:"segment"},{type:"Uint16",name:"lowerSize"},{type:"Uint16",name:"upperSize"},{type:"Float32",name:"lineOffsetX"},{type:"Float32",name:"lineOffsetY"},{type:"Uint8",name:"writingMode"},{type:"Uint8",name:"placedOrientation"},{type:"Uint8",name:"hidden"},{type:"Uint32",name:"crossTileID"},{type:"Int16",name:"associatedIconIndex"}]),Da([{type:"Int16",name:"anchorX"},{type:"Int16",name:"anchorY"},{type:"Int16",name:"rightJustifiedTextSymbolIndex"},{type:"Int16",name:"centerJustifiedTextSymbolIndex"},{type:"Int16",name:"leftJustifiedTextSymbolIndex"},{type:"Int16",name:"verticalPlacedTextSymbolIndex"},{type:"Int16",name:"placedIconSymbolIndex"},{type:"Int16",name:"verticalPlacedIconSymbolIndex"},{type:"Uint16",name:"key"},{type:"Uint16",name:"textBoxStartIndex"},{type:"Uint16",name:"textBoxEndIndex"},{type:"Uint16",name:"verticalTextBoxStartIndex"},{type:"Uint16",name:"verticalTextBoxEndIndex"},{type:"Uint16",name:"iconBoxStartIndex"},{type:"Uint16",name:"iconBoxEndIndex"},{type:"Uint16",name:"verticalIconBoxStartIndex"},{type:"Uint16",name:"verticalIconBoxEndIndex"},{type:"Uint16",name:"featureIndex"},{type:"Uint16",name:"numHorizontalGlyphVertices"},{type:"Uint16",name:"numVerticalGlyphVertices"},{type:"Uint16",name:"numIconVertices"},{type:"Uint16",name:"numVerticalIconVertices"},{type:"Uint16",name:"useRuntimeCollisionCircles"},{type:"Uint32",name:"crossTileID"},{type:"Float32",name:"textBoxScale"},{type:"Float32",components:2,name:"textOffset"},{type:"Float32",name:"collisionCircleDiameter"}]),Da([{type:"Float32",name:"offsetX"}]),Da([{type:"Int16",name:"x"},{type:"Int16",name:"y"},{type:"Int16",name:"tileUnitDistanceFromAnchor"}]);function O$(C,F,J){return C.sections.forEach(function(oe){oe.text=function(pe,xe,Ce){var Ne=xe.layout.get("text-transform").evaluate(Ce,{});return Ne==="uppercase"?pe=pe.toLocaleUpperCase():Ne==="lowercase"&&(pe=pe.toLocaleLowerCase()),ps.applyArabicShaping&&(pe=ps.applyArabicShaping(pe)),pe}(oe.text,F,J)}),C}var y1={"!":"\uFE15","#":"\uFF03",$:"\uFF04","%":"\uFF05","&":"\uFF06","(":"\uFE35",")":"\uFE36","*":"\uFF0A","+":"\uFF0B",",":"\uFE10","-":"\uFE32",".":"\u30FB","/":"\uFF0F",":":"\uFE13",";":"\uFE14","<":"\uFE3F","=":"\uFF1D",">":"\uFE40","?":"\uFE16","@":"\uFF20","[":"\uFE47","\\":"\uFF3C","]":"\uFE48","^":"\uFF3E",_:"\uFE33","`":"\uFF40","{":"\uFE37","|":"\u2015","}":"\uFE38","~":"\uFF5E","\xA2":"\uFFE0","\xA3":"\uFFE1","\xA5":"\uFFE5","\xA6":"\uFFE4","\xAC":"\uFFE2","\xAF":"\uFFE3","\u2013":"\uFE32","\u2014":"\uFE31","\u2018":"\uFE43","\u2019":"\uFE44","\u201C":"\uFE41","\u201D":"\uFE42","\u2026":"\uFE19","\u2027":"\u30FB","\u20A9":"\uFFE6","\u3001":"\uFE11","\u3002":"\uFE12","\u3008":"\uFE3F","\u3009":"\uFE40","\u300A":"\uFE3D","\u300B":"\uFE3E","\u300C":"\uFE41","\u300D":"\uFE42","\u300E":"\uFE43","\u300F":"\uFE44","\u3010":"\uFE3B","\u3011":"\uFE3C","\u3014":"\uFE39","\u3015":"\uFE3A","\u3016":"\uFE17","\u3017":"\uFE18","\uFF01":"\uFE15","\uFF08":"\uFE35","\uFF09":"\uFE36","\uFF0C":"\uFE10","\uFF0D":"\uFE32","\uFF0E":"\u30FB","\uFF1A":"\uFE13","\uFF1B":"\uFE14","\uFF1C":"\uFE3F","\uFF1E":"\uFE40","\uFF1F":"\uFE16","\uFF3B":"\uFE47","\uFF3D":"\uFE48","\uFF3F":"\uFE33","\uFF5B":"\uFE37","\uFF5C":"\u2015","\uFF5D":"\uFE38","\uFF5F":"\uFE35","\uFF60":"\uFE36","\uFF61":"\uFE12","\uFF62":"\uFE41","\uFF63":"\uFE42"},p9=function(C,F,J,oe,pe){var xe,Ce,Ne=8*pe-oe-1,Ze=(1<>1,gt=-7,Bt=J?pe-1:0,Xt=J?-1:1,Gt=C[F+Bt];for(Bt+=Xt,xe=Gt&(1<<-gt)-1,Gt>>=-gt,gt+=Ne;gt>0;xe=256*xe+C[F+Bt],Bt+=Xt,gt-=8);for(Ce=xe&(1<<-gt)-1,xe>>=-gt,gt+=oe;gt>0;Ce=256*Ce+C[F+Bt],Bt+=Xt,gt-=8);if(xe===0)xe=1-ct;else{if(xe===Ze)return Ce?NaN:1/0*(Gt?-1:1);Ce+=Math.pow(2,oe),xe-=ct}return(Gt?-1:1)*Ce*Math.pow(2,xe-oe)},g9=function(C,F,J,oe,pe,xe){var Ce,Ne,Ze,ct=8*xe-pe-1,gt=(1<>1,Xt=pe===23?Math.pow(2,-24)-Math.pow(2,-77):0,Gt=oe?0:xe-1,on=oe?1:-1,vn=F<0||F===0&&1/F<0?1:0;for(F=Math.abs(F),isNaN(F)||F===1/0?(Ne=isNaN(F)?1:0,Ce=gt):(Ce=Math.floor(Math.log(F)/Math.LN2),F*(Ze=Math.pow(2,-Ce))<1&&(Ce--,Ze*=2),(F+=Ce+Bt>=1?Xt/Ze:Xt*Math.pow(2,1-Bt))*Ze>=2&&(Ce++,Ze/=2),Ce+Bt>=gt?(Ne=0,Ce=gt):Ce+Bt>=1?(Ne=(F*Ze-1)*Math.pow(2,pe),Ce+=Bt):(Ne=F*Math.pow(2,Bt-1)*Math.pow(2,pe),Ce=0));pe>=8;C[J+Gt]=255&Ne,Gt+=on,Ne/=256,pe-=8);for(Ce=Ce<0;C[J+Gt]=255&Ce,Gt+=on,Ce/=256,ct-=8);C[J+Gt-on]|=128*vn},yx=to;function to(C){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(C)?C:new Uint8Array(C||0),this.pos=0,this.type=0,this.length=this.buf.length}to.Varint=0,to.Fixed64=1,to.Bytes=2,to.Fixed32=5;var m9=typeof TextDecoder>"u"?null:new TextDecoder("utf8");function xh(C){return C.type===to.Bytes?C.readVarint()+C.pos:C.pos+1}function lg(C,F,J){return J?4294967296*F+(C>>>0):4294967296*(F>>>0)+(C>>>0)}function v9(C,F,J){var oe=F<=16383?1:F<=2097151?2:F<=268435455?3:Math.floor(Math.log(F)/(7*Math.LN2));J.realloc(oe);for(var pe=J.pos-1;pe>=C;pe--)J.buf[pe+oe]=J.buf[pe]}function L$(C,F){for(var J=0;J>>8,C[J+2]=F>>>16,C[J+3]=F>>>24}function y9(C,F){return(C[F]|C[F+1]<<8|C[F+2]<<16)+(C[F+3]<<24)}to.prototype={destroy:function(){this.buf=null},readFields:function(C,F,J){for(J=J||this.length;this.pos>3,xe=this.pos;this.type=7&oe,C(pe,F,this),this.pos===xe&&this.skip(oe)}return F},readMessage:function(C,F){return this.readFields(C,F,this.readVarint()+this.pos)},readFixed32:function(){var C=xx(this.buf,this.pos);return this.pos+=4,C},readSFixed32:function(){var C=y9(this.buf,this.pos);return this.pos+=4,C},readFixed64:function(){var C=xx(this.buf,this.pos)+4294967296*xx(this.buf,this.pos+4);return this.pos+=8,C},readSFixed64:function(){var C=xx(this.buf,this.pos)+4294967296*y9(this.buf,this.pos+4);return this.pos+=8,C},readFloat:function(){var C=p9(this.buf,this.pos,!0,23,4);return this.pos+=4,C},readDouble:function(){var C=p9(this.buf,this.pos,!0,52,8);return this.pos+=8,C},readVarint:function(C){var F,J,oe=this.buf;return F=127&(J=oe[this.pos++]),J<128?F:(F|=(127&(J=oe[this.pos++]))<<7,J<128?F:(F|=(127&(J=oe[this.pos++]))<<14,J<128?F:(F|=(127&(J=oe[this.pos++]))<<21,J<128?F:function(pe,xe,Ce){var Ne,Ze,ct=Ce.buf;if(Ze=ct[Ce.pos++],Ne=(112&Ze)>>4,Ze<128||(Ze=ct[Ce.pos++],Ne|=(127&Ze)<<3,Ze<128)||(Ze=ct[Ce.pos++],Ne|=(127&Ze)<<10,Ze<128)||(Ze=ct[Ce.pos++],Ne|=(127&Ze)<<17,Ze<128)||(Ze=ct[Ce.pos++],Ne|=(127&Ze)<<24,Ze<128)||(Ze=ct[Ce.pos++],Ne|=(1&Ze)<<31,Ze<128))return lg(pe,Ne,xe);throw new Error("Expected varint not more than 10 bytes")}(F|=(15&(J=oe[this.pos]))<<28,C,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var C=this.readVarint();return C%2==1?(C+1)/-2:C/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var C=this.readVarint()+this.pos,F=this.pos;return this.pos=C,C-F>=12&&m9?function(J,oe,pe){return m9.decode(J.subarray(oe,pe))}(this.buf,F,C):function(J,oe,pe){for(var xe="",Ce=oe;Ce239?4:gt>223?3:gt>191?2:1;if(Ce+Xt>pe)break;Xt===1?gt<128&&(Bt=gt):Xt===2?(192&(Ne=J[Ce+1]))==128&&(Bt=(31>)<<6|63&Ne)<=127&&(Bt=null):Xt===3?(Ne=J[Ce+1],Ze=J[Ce+2],(192&Ne)==128&&(192&Ze)==128&&((Bt=(15>)<<12|(63&Ne)<<6|63&Ze)<=2047||Bt>=55296&&Bt<=57343)&&(Bt=null)):Xt===4&&(Ne=J[Ce+1],Ze=J[Ce+2],ct=J[Ce+3],(192&Ne)==128&&(192&Ze)==128&&(192&ct)==128&&((Bt=(15>)<<18|(63&Ne)<<12|(63&Ze)<<6|63&ct)<=65535||Bt>=1114112)&&(Bt=null)),Bt===null?(Bt=65533,Xt=1):Bt>65535&&(Bt-=65536,xe+=String.fromCharCode(Bt>>>10&1023|55296),Bt=56320|1023&Bt),xe+=String.fromCharCode(Bt),Ce+=Xt}return xe}(this.buf,F,C)},readBytes:function(){var C=this.readVarint()+this.pos,F=this.buf.subarray(this.pos,C);return this.pos=C,F},readPackedVarint:function(C,F){if(this.type!==to.Bytes)return C.push(this.readVarint(F));var J=xh(this);for(C=C||[];this.pos127;);else if(F===to.Bytes)this.pos=this.readVarint()+this.pos;else if(F===to.Fixed32)this.pos+=4;else{if(F!==to.Fixed64)throw new Error("Unimplemented type: "+F);this.pos+=8}},writeTag:function(C,F){this.writeVarint(C<<3|F)},realloc:function(C){for(var F=this.length||16;F268435455||C<0?function(F,J){var oe,pe;if(F>=0?(oe=F%4294967296|0,pe=F/4294967296|0):(pe=~(-F/4294967296),4294967295^(oe=~(-F%4294967296))?oe=oe+1|0:(oe=0,pe=pe+1|0)),F>=18446744073709552e3||F<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");J.realloc(10),function(xe,Ce,Ne){Ne.buf[Ne.pos++]=127&xe|128,xe>>>=7,Ne.buf[Ne.pos++]=127&xe|128,xe>>>=7,Ne.buf[Ne.pos++]=127&xe|128,xe>>>=7,Ne.buf[Ne.pos++]=127&xe|128,xe>>>=7,Ne.buf[Ne.pos]=127&xe}(oe,0,J),function(xe,Ce){var Ne=(7&xe)<<4;Ce.buf[Ce.pos++]|=Ne|((xe>>>=3)?128:0),xe&&(Ce.buf[Ce.pos++]=127&xe|((xe>>>=7)?128:0),xe&&(Ce.buf[Ce.pos++]=127&xe|((xe>>>=7)?128:0),xe&&(Ce.buf[Ce.pos++]=127&xe|((xe>>>=7)?128:0),xe&&(Ce.buf[Ce.pos++]=127&xe|((xe>>>=7)?128:0),xe&&(Ce.buf[Ce.pos++]=127&xe)))))}(pe,J)}(C,this):(this.realloc(4),this.buf[this.pos++]=127&C|(C>127?128:0),C<=127||(this.buf[this.pos++]=127&(C>>>=7)|(C>127?128:0),C<=127||(this.buf[this.pos++]=127&(C>>>=7)|(C>127?128:0),C<=127||(this.buf[this.pos++]=C>>>7&127))))},writeSVarint:function(C){this.writeVarint(C<0?2*-C-1:2*C)},writeBoolean:function(C){this.writeVarint(Boolean(C))},writeString:function(C){C=String(C),this.realloc(4*C.length),this.pos++;var F=this.pos;this.pos=function(oe,pe,xe){for(var Ce,Ne,Ze=0;Ze55295&&Ce<57344){if(!Ne){Ce>56319||Ze+1===pe.length?(oe[xe++]=239,oe[xe++]=191,oe[xe++]=189):Ne=Ce;continue}if(Ce<56320){oe[xe++]=239,oe[xe++]=191,oe[xe++]=189,Ne=Ce;continue}Ce=Ne-55296<<10|Ce-56320|65536,Ne=null}else Ne&&(oe[xe++]=239,oe[xe++]=191,oe[xe++]=189,Ne=null);Ce<128?oe[xe++]=Ce:(Ce<2048?oe[xe++]=Ce>>6|192:(Ce<65536?oe[xe++]=Ce>>12|224:(oe[xe++]=Ce>>18|240,oe[xe++]=Ce>>12&63|128),oe[xe++]=Ce>>6&63|128),oe[xe++]=63&Ce|128)}return xe}(this.buf,C,this.pos);var J=this.pos-F;J>=128&&v9(F,J,this),this.pos=F-1,this.writeVarint(J),this.pos+=J},writeFloat:function(C){this.realloc(4),g9(this.buf,C,this.pos,!0,23,4),this.pos+=4},writeDouble:function(C){this.realloc(8),g9(this.buf,C,this.pos,!0,52,8),this.pos+=8},writeBytes:function(C){var F=C.length;this.writeVarint(F),this.realloc(F);for(var J=0;J=128&&v9(J,oe,this),this.pos=J-1,this.writeVarint(oe),this.pos+=oe},writeMessage:function(C,F,J){this.writeTag(C,to.Bytes),this.writeRawMessage(F,J)},writePackedVarint:function(C,F){F.length&&this.writeMessage(C,L$,F)},writePackedSVarint:function(C,F){F.length&&this.writeMessage(C,P$,F)},writePackedBoolean:function(C,F){F.length&&this.writeMessage(C,z$,F)},writePackedFloat:function(C,F){F.length&&this.writeMessage(C,D$,F)},writePackedDouble:function(C,F){F.length&&this.writeMessage(C,I$,F)},writePackedFixed32:function(C,F){F.length&&this.writeMessage(C,R$,F)},writePackedSFixed32:function(C,F){F.length&&this.writeMessage(C,F$,F)},writePackedFixed64:function(C,F){F.length&&this.writeMessage(C,N$,F)},writePackedSFixed64:function(C,F){F.length&&this.writeMessage(C,B$,F)},writeBytesField:function(C,F){this.writeTag(C,to.Bytes),this.writeBytes(F)},writeFixed32Field:function(C,F){this.writeTag(C,to.Fixed32),this.writeFixed32(F)},writeSFixed32Field:function(C,F){this.writeTag(C,to.Fixed32),this.writeSFixed32(F)},writeFixed64Field:function(C,F){this.writeTag(C,to.Fixed64),this.writeFixed64(F)},writeSFixed64Field:function(C,F){this.writeTag(C,to.Fixed64),this.writeSFixed64(F)},writeVarintField:function(C,F){this.writeTag(C,to.Varint),this.writeVarint(F)},writeSVarintField:function(C,F){this.writeTag(C,to.Varint),this.writeSVarint(F)},writeStringField:function(C,F){this.writeTag(C,to.Bytes),this.writeString(F)},writeFloatField:function(C,F){this.writeTag(C,to.Fixed32),this.writeFloat(F)},writeDoubleField:function(C,F){this.writeTag(C,to.Fixed64),this.writeDouble(F)},writeBooleanField:function(C,F){this.writeVarintField(C,Boolean(F))}};function j$(C,F,J){C===1&&J.readMessage(U$,F)}function U$(C,F,J){if(C===3){var oe=J.readMessage(V$,{}),pe=oe.id,xe=oe.bitmap,Ce=oe.width,Ne=oe.height,Ze=oe.left,ct=oe.top,gt=oe.advance;F.push({id:pe,bitmap:new Lp({width:Ce+6,height:Ne+6},xe),metrics:{width:Ce,height:Ne,left:Ze,top:ct,advance:gt}})}}function V$(C,F,J){C===1?F.id=J.readVarint():C===2?F.bitmap=J.readBytes():C===3?F.width=J.readVarint():C===4?F.height=J.readVarint():C===5?F.left=J.readSVarint():C===6?F.top=J.readSVarint():C===7&&(F.advance=J.readVarint())}function x9(C){for(var F=0,J=0,oe=0,pe=C;oe=0;Xt--){var Gt=Ce[Xt];if(!(Bt.w>Gt.w||Bt.h>Gt.h)){if(Bt.x=Gt.x,Bt.y=Gt.y,Ze=Math.max(Ze,Bt.y+Bt.h),Ne=Math.max(Ne,Bt.x+Bt.w),Bt.w===Gt.w&&Bt.h===Gt.h){var on=Ce.pop();Xt0&&yg>Eo&&(Eo=yg)}else{var Lx=da[Ia.fontStack],zp=Lx&&Lx[yl];if(zp&&zp.rect)Rc=zp.rect,el=zp.metrics;else{var Px=Ta[Ia.fontStack],Dx=Px&&Px[yl];if(!Dx)continue;el=Dx.metrics}eu=24*(aa-Ia.scale)}Fc?(xi.verticalizable=!0,Io.push({glyph:yl,imageName:wh,x:Hs,y:Es+eu,vertical:Fc,scale:Ia.scale,fontStack:Ia.fontStack,sectionIndex:zo,metrics:el,rect:Rc}),Hs+=Cs*Ia.scale+Ga):(Io.push({glyph:yl,imageName:wh,x:Hs,y:Es+eu,vertical:Fc,scale:Ia.scale,fontStack:Ia.fontStack,sectionIndex:zo,metrics:el,rect:Rc}),Hs+=el.advance*Ia.scale+Ga)}if(Io.length!==0){var Ix=Hs-Ga;Ps=Math.max(Ix,Ps),H$(Io,0,Io.length-1,Qs,Eo)}Hs=0;var zx=va*aa+Eo;Do.lineOffset=Math.max(Eo,Ma),Es+=zx,vl=Math.max(zx,vl),++ls}else Es+=va,++ls}var dd,xg=Es- -17,Rx=r5(no),bg=Rx.horizontalAlign,pd=Rx.verticalAlign;(function(k1,Fx,Nx,Bx,T1,jx,A1,Ux,M1){var Vx=(Fx-Nx)*T1,_g=0;_g=jx!==A1?-Ux*Bx- -17:(-Bx*M1+.5)*A1;for(var wg=0,kg=k1;wg=0&&oe>=C&&wx[this.text.charCodeAt(oe)];oe--)J--;this.text=this.text.substring(C,J),this.sectionIndex=this.sectionIndex.slice(C,J)},Ks.prototype.substring=function(C,F){var J=new Ks;return J.text=this.text.substring(C,F),J.sectionIndex=this.sectionIndex.slice(C,F),J.sections=this.sections,J},Ks.prototype.toString=function(){return this.text},Ks.prototype.getMaxScale=function(){var C=this;return this.sectionIndex.reduce(function(F,J){return Math.max(F,C.sections[J].scale)},0)},Ks.prototype.addTextSection=function(C,F){this.text+=C.text,this.sections.push(cg.forText(C.scale,C.fontStack||F));for(var J=this.sections.length-1,oe=0;oe=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)};var wx={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},Ql={};function b9(C,F,J,oe,pe,xe){if(F.imageName){var Ce=oe[F.imageName];return Ce?Ce.displaySize[0]*F.scale*24/xe+pe:0}var Ne=J[F.fontStack],Ze=Ne&&Ne[C];return Ze?Ze.metrics.advance*F.scale+pe:0}function _9(C,F,J,oe){var pe=Math.pow(C-F,2);return oe?C=0,Bt=0,Xt=0;Xt-J/2;){if(--Ce<0)return!1;Ne-=C[Ce].dist(xe),xe=C[Ce]}Ne+=C[Ce].dist(C[Ce+1]),Ce++;for(var Ze=[],ct=0;Neoe;)ct-=Ze.shift().angleDelta;if(ct>pe)return!1;Ce++,Ne+=Bt.dist(Xt)}return!0}function S9(C){for(var F=0,J=0;Jct){var on=(ct-Ze)/Gt,vn=kr(Bt.x,Xt.x,on),Cn=kr(Bt.y,Xt.y,on),En=new fg(vn,Cn,Xt.angleTo(Bt),gt);return En._round(),!Ce||M9(C,En,Ne,Ce,F)?En:void 0}Ze+=Gt}}function W$(C,F,J,oe,pe,xe,Ce,Ne,Ze){var ct=E9(oe,xe,Ce),gt=C9(oe,pe),Bt=gt*Ce,Xt=C[0].x===0||C[0].x===Ze||C[0].y===0||C[0].y===Ze;return F-Bt=0&&Oa=0&&Fi=0&&vi+Hr<=Vr){var va=new fg(Oa,Fi,Ta,li);va._round(),En&&!M9(on,va,qn,En,Vn)||yi.push(va)}}ei+=xi}return dr||yi.length||Xn||(yi=Gt(on,ei/2,Cn,En,Vn,qn,Xn,!0,br)),yi}(C,Xt?F/2*Ne%F:(gt/2+2*xe)*Ce*Ne%F,F,ct,J,Bt,Xt,!1,Ze)}function O9(C,F,J,oe,pe){for(var xe=[],Ce=0;Ce=oe&&Bt.x>=oe||(gt.x>=oe?gt=new h(oe,gt.y+(Bt.y-gt.y)*((oe-gt.x)/(Bt.x-gt.x)))._round():Bt.x>=oe&&(Bt=new h(oe,gt.y+(Bt.y-gt.y)*((oe-gt.x)/(Bt.x-gt.x)))._round()),gt.y>=pe&&Bt.y>=pe||(gt.y>=pe?gt=new h(gt.x+(Bt.x-gt.x)*((pe-gt.y)/(Bt.y-gt.y)),pe)._round():Bt.y>=pe&&(Bt=new h(gt.x+(Bt.x-gt.x)*((pe-gt.y)/(Bt.y-gt.y)),pe)._round()),Ze&>.equals(Ze[Ze.length-1])||(Ze=[gt],xe.push(Ze)),Ze.push(Bt)))))}return xe}function L9(C,F,J,oe){var pe=[],xe=C.image,Ce=xe.pixelRatio,Ne=xe.paddedRect.w-2,Ze=xe.paddedRect.h-2,ct=C.right-C.left,gt=C.bottom-C.top,Bt=xe.stretchX||[[0,Ne]],Xt=xe.stretchY||[[0,Ze]],Gt=function(va,no){return va+no[1]-no[0]},on=Bt.reduce(Gt,0),vn=Xt.reduce(Gt,0),Cn=Ne-on,En=Ze-vn,Vn=0,qn=on,Xn=0,dr=vn,br=0,Hr=Cn,Vr=0,ei=En;if(xe.content&&oe){var vi=xe.content;Vn=kx(Bt,0,vi[0]),Xn=kx(Xt,0,vi[1]),qn=kx(Bt,vi[0],vi[2]),dr=kx(Xt,vi[1],vi[3]),br=vi[0]-Vn,Vr=vi[1]-Xn,Hr=vi[2]-vi[0]-qn,ei=vi[3]-vi[1]-dr}var yi=function(va,no,$a,po){var Ga=Tx(va.stretch-Vn,qn,ct,C.left),ss=Ax(va.fixed-br,Hr,va.stretch,on),go=Tx(no.stretch-Xn,dr,gt,C.top),Hs=Ax(no.fixed-Vr,ei,no.stretch,vn),Es=Tx($a.stretch-Vn,qn,ct,C.left),Ps=Ax($a.fixed-br,Hr,$a.stretch,on),vl=Tx(po.stretch-Xn,dr,gt,C.top),Qs=Ax(po.fixed-Vr,ei,po.stretch,vn),ls=new h(Ga,go),Ds=new h(Es,go),Go=new h(Es,vl),gs=new h(Ga,vl),aa=new h(ss/Ce,Hs/Ce),Ma=new h(Ps/Ce,Qs/Ce),Do=F*Math.PI/180;if(Do){var Io=Math.sin(Do),Eo=Math.cos(Do),mo=[Eo,-Io,Io,Eo];ls._matMult(mo),Ds._matMult(mo),gs._matMult(mo),Go._matMult(mo)}var Ia=va.stretch+va.fixed,zo=$a.stretch+$a.fixed,yl=no.stretch+no.fixed,eu=po.stretch+po.fixed;return{tl:ls,tr:Ds,bl:gs,br:Go,tex:{x:xe.paddedRect.x+1+Ia,y:xe.paddedRect.y+1+yl,w:zo-Ia,h:eu-yl},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:aa,pixelOffsetBR:Ma,minFontScaleX:Hr/Ce/ct,minFontScaleY:ei/Ce/gt,isSDF:J}};if(oe&&(xe.stretchX||xe.stretchY))for(var li=P9(Bt,Cn,on),Si=P9(Xt,En,vn),Ai=0;Ai0&&(Gt=Math.max(10,Gt),this.circleDiameter=Gt)}else{var on=xe.top*Ce-Ne,vn=xe.bottom*Ce+Ne,Cn=xe.left*Ce-Ne,En=xe.right*Ce+Ne,Vn=xe.collisionPadding;if(Vn&&(Cn-=Vn[0]*Ce,on-=Vn[1]*Ce,En+=Vn[2]*Ce,vn+=Vn[3]*Ce),ct){var qn=new h(Cn,on),Xn=new h(En,on),dr=new h(Cn,vn),br=new h(En,vn),Hr=ct*Math.PI/180;qn._rotate(Hr),Xn._rotate(Hr),dr._rotate(Hr),br._rotate(Hr),Cn=Math.min(qn.x,Xn.x,dr.x,br.x),En=Math.max(qn.x,Xn.x,dr.x,br.x),on=Math.min(qn.y,Xn.y,dr.y,br.y),vn=Math.max(qn.y,Xn.y,dr.y,br.y)}C.emplaceBack(F.x,F.y,Cn,on,En,vn,J,oe,pe)}this.boxEndIndex=C.length},hg=function(C,F){if(C===void 0&&(C=[]),F===void 0&&(F=Y$),this.data=C,this.length=this.data.length,this.compare=F,this.length>0)for(var J=(this.length>>1)-1;J>=0;J--)this._down(J)};function Y$(C,F){return CF?1:0}function X$(C,F,J){F===void 0&&(F=1),J===void 0&&(J=!1);for(var oe=1/0,pe=1/0,xe=-1/0,Ce=-1/0,Ne=C[0],Ze=0;Zexe)&&(xe=ct.x),(!Ze||ct.y>Ce)&&(Ce=ct.y)}var gt=xe-oe,Bt=Ce-pe,Xt=Math.min(gt,Bt),Gt=Xt/2,on=new hg([],Z$);if(Xt===0)return new h(oe,pe);for(var vn=oe;vnEn.d||!En.d)&&(En=qn,J&&console.log("found best %d after %d probes",Math.round(1e4*qn.d)/1e4,Vn)),qn.max-En.d<=F||(Gt=qn.h/2,on.push(new dg(qn.p.x-Gt,qn.p.y-Gt,Gt,C)),on.push(new dg(qn.p.x+Gt,qn.p.y-Gt,Gt,C)),on.push(new dg(qn.p.x-Gt,qn.p.y+Gt,Gt,C)),on.push(new dg(qn.p.x+Gt,qn.p.y+Gt,Gt,C)),Vn+=4)}return J&&(console.log("num probes: "+Vn),console.log("best distance: "+En.d)),En.p}function Z$(C,F){return F.max-C.max}function dg(C,F,J,oe){this.p=new h(C,F),this.h=J,this.d=function(pe,xe){for(var Ce=!1,Ne=1/0,Ze=0;Zepe.y!=on.y>pe.y&&pe.x<(on.x-Gt.x)*(pe.y-Gt.y)/(on.y-Gt.y)+Gt.x&&(Ce=!Ce),Ne=Math.min(Ne,vh(pe,Gt,on))}return(Ce?1:-1)*Math.sqrt(Ne)}(this.p,oe),this.max=this.d+this.h*Math.SQRT2}hg.prototype.push=function(C){this.data.push(C),this.length++,this._up(this.length-1)},hg.prototype.pop=function(){if(this.length!==0){var C=this.data[0],F=this.data.pop();return this.length--,this.length>0&&(this.data[0]=F,this._down(0)),C}},hg.prototype.peek=function(){return this.data[0]},hg.prototype._up=function(C){for(var F=this.data,J=this.compare,oe=F[C];C>0;){var pe=C-1>>1,xe=F[pe];if(J(oe,xe)>=0)break;F[C]=xe,C=pe}F[C]=oe},hg.prototype._down=function(C){for(var F=this.data,J=this.compare,oe=this.length>>1,pe=F[C];C=0)break;F[C]=Ce,C=xe}F[C]=pe};var a5=Number.POSITIVE_INFINITY;function D9(C,F){return F[1]!==a5?function(J,oe,pe){var xe=0,Ce=0;switch(oe=Math.abs(oe),pe=Math.abs(pe),J){case"top-right":case"top-left":case"top":Ce=pe-7;break;case"bottom-right":case"bottom-left":case"bottom":Ce=7-pe}switch(J){case"top-right":case"bottom-right":case"right":xe=-oe;break;case"top-left":case"bottom-left":case"left":xe=oe}return[xe,Ce]}(C,F[0],F[1]):function(J,oe){var pe=0,xe=0;oe<0&&(oe=0);var Ce=oe/Math.sqrt(2);switch(J){case"top-right":case"top-left":xe=Ce-7;break;case"bottom-right":case"bottom-left":xe=7-Ce;break;case"bottom":xe=7-oe;break;case"top":xe=oe-7}switch(J){case"top-right":case"bottom-right":pe=-Ce;break;case"top-left":case"bottom-left":pe=Ce;break;case"left":pe=oe;break;case"right":pe=-oe}return[pe,xe]}(C,F[0])}function o5(C){switch(C){case"right":case"top-right":case"bottom-right":return"right";case"left":case"top-left":case"bottom-left":return"left"}return"center"}function I9(C,F,J,oe,pe,xe,Ce,Ne,Ze,ct,gt,Bt,Xt,Gt,on){var vn=function(Xn,dr,br,Hr,Vr,ei,vi,yi){for(var li=Hr.layout.get("text-rotate").evaluate(ei,{})*Math.PI/180,Si=[],Ai=0,xi=dr.positionedLines;Ai32640&&O(C.layerIds[0]+': Value for "text-size" is >= 255. Reduce your "text-size".'):Cn.kind==="composite"&&((En=[128*Gt.compositeTextSizes[0].evaluate(Ce,{},on),128*Gt.compositeTextSizes[1].evaluate(Ce,{},on)])[0]>32640||En[1]>32640)&&O(C.layerIds[0]+': Value for "text-size" is >= 255. Reduce your "text-size".'),C.addSymbols(C.text,vn,En,Ne,xe,Ce,ct,F,Ze.lineStartIndex,Ze.lineLength,Xt,on);for(var Vn=0,qn=gt;Vn=0;Ce--)if(oe.dist(xe[Ce])0)&&(xe.value.kind!=="constant"||xe.value.value.length>0),ct=Ne.value.kind!=="constant"||!!Ne.value.value||Object.keys(Ne.parameters).length>0,gt=pe.get("symbol-sort-key");if(this.features=[],Ze||ct){for(var Bt=F.iconDependencies,Xt=F.glyphDependencies,Gt=F.availableImages,on=new Pa(this.zoom),vn=0,Cn=C;vn=0;for(var da=0,Oa=Vr.sections;da=0;Ne--)xe[Ne]={x:F[Ne].x,y:F[Ne].y,tileUnitDistanceFromAnchor:pe},Ne>0&&(pe+=F[Ne-1].dist(F[Ne]));for(var Ze=0;Ze0},ja.prototype.hasIconData=function(){return this.icon.segments.get().length>0},ja.prototype.hasDebugData=function(){return this.textCollisionBox&&this.iconCollisionBox},ja.prototype.hasTextCollisionBoxData=function(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0},ja.prototype.hasIconCollisionBoxData=function(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0},ja.prototype.addIndicesForPlacedSymbol=function(C,F){for(var J=C.placedSymbolArray.get(F),oe=J.vertexStartIndex+4*J.numGlyphs,pe=J.vertexStartIndex;pe1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(C),this.sortedAngle=C,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(var J=0,oe=this.symbolInstanceIndexes;J=0&&Ze.indexOf(Ce)===Ne&&F.addIndicesForPlacedSymbol(F.text,Ce)}),xe.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,xe.verticalPlacedTextSymbolIndex),xe.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,xe.placedIconSymbolIndex),xe.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,xe.verticalPlacedIconSymbolIndex)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}},Qn("SymbolBucket",ja,{omit:["layers","collisionBoxArray","features","compareText"]}),ja.MAX_GLYPHS=65535,ja.addDynamicAttributes=s5;var tG=new Us({"symbol-placement":new wi(De.layout_symbol["symbol-placement"]),"symbol-spacing":new wi(De.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new wi(De.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new Di(De.layout_symbol["symbol-sort-key"]),"symbol-z-order":new wi(De.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new wi(De.layout_symbol["icon-allow-overlap"]),"icon-ignore-placement":new wi(De.layout_symbol["icon-ignore-placement"]),"icon-optional":new wi(De.layout_symbol["icon-optional"]),"icon-rotation-alignment":new wi(De.layout_symbol["icon-rotation-alignment"]),"icon-size":new Di(De.layout_symbol["icon-size"]),"icon-text-fit":new wi(De.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new wi(De.layout_symbol["icon-text-fit-padding"]),"icon-image":new Di(De.layout_symbol["icon-image"]),"icon-rotate":new Di(De.layout_symbol["icon-rotate"]),"icon-padding":new wi(De.layout_symbol["icon-padding"]),"icon-keep-upright":new wi(De.layout_symbol["icon-keep-upright"]),"icon-offset":new Di(De.layout_symbol["icon-offset"]),"icon-anchor":new Di(De.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new wi(De.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new wi(De.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new wi(De.layout_symbol["text-rotation-alignment"]),"text-field":new Di(De.layout_symbol["text-field"]),"text-font":new Di(De.layout_symbol["text-font"]),"text-size":new Di(De.layout_symbol["text-size"]),"text-max-width":new Di(De.layout_symbol["text-max-width"]),"text-line-height":new wi(De.layout_symbol["text-line-height"]),"text-letter-spacing":new Di(De.layout_symbol["text-letter-spacing"]),"text-justify":new Di(De.layout_symbol["text-justify"]),"text-radial-offset":new Di(De.layout_symbol["text-radial-offset"]),"text-variable-anchor":new wi(De.layout_symbol["text-variable-anchor"]),"text-anchor":new Di(De.layout_symbol["text-anchor"]),"text-max-angle":new wi(De.layout_symbol["text-max-angle"]),"text-writing-mode":new wi(De.layout_symbol["text-writing-mode"]),"text-rotate":new Di(De.layout_symbol["text-rotate"]),"text-padding":new wi(De.layout_symbol["text-padding"]),"text-keep-upright":new wi(De.layout_symbol["text-keep-upright"]),"text-transform":new Di(De.layout_symbol["text-transform"]),"text-offset":new Di(De.layout_symbol["text-offset"]),"text-allow-overlap":new wi(De.layout_symbol["text-allow-overlap"]),"text-ignore-placement":new wi(De.layout_symbol["text-ignore-placement"]),"text-optional":new wi(De.layout_symbol["text-optional"])}),l5={paint:new Us({"icon-opacity":new Di(De.paint_symbol["icon-opacity"]),"icon-color":new Di(De.paint_symbol["icon-color"]),"icon-halo-color":new Di(De.paint_symbol["icon-halo-color"]),"icon-halo-width":new Di(De.paint_symbol["icon-halo-width"]),"icon-halo-blur":new Di(De.paint_symbol["icon-halo-blur"]),"icon-translate":new wi(De.paint_symbol["icon-translate"]),"icon-translate-anchor":new wi(De.paint_symbol["icon-translate-anchor"]),"text-opacity":new Di(De.paint_symbol["text-opacity"]),"text-color":new Di(De.paint_symbol["text-color"],{runtimeType:St,getOverride:function(C){return C.textColor},hasOverride:function(C){return!!C.textColor}}),"text-halo-color":new Di(De.paint_symbol["text-halo-color"]),"text-halo-width":new Di(De.paint_symbol["text-halo-width"]),"text-halo-blur":new Di(De.paint_symbol["text-halo-blur"]),"text-translate":new wi(De.paint_symbol["text-translate"]),"text-translate-anchor":new wi(De.paint_symbol["text-translate-anchor"])}),layout:tG},gg=function(C){this.type=C.property.overrides?C.property.overrides.runtimeType:Ut,this.defaultValue=C};gg.prototype.evaluate=function(C){if(C.formattedSection){var F=this.defaultValue.property.overrides;if(F&&F.hasOverride(C.formattedSection))return F.getOverride(C.formattedSection)}return C.feature&&C.featureState?this.defaultValue.evaluate(C.feature,C.featureState):this.defaultValue.property.specification.default},gg.prototype.eachChild=function(C){this.defaultValue.isConstant()||C(this.defaultValue.value._styleExpression.expression)},gg.prototype.outputDefined=function(){return!1},gg.prototype.serialize=function(){return null},Qn("FormatSectionOverride",gg,{omit:["defaultValue"]});var nG=function(C){function F(J){C.call(this,J,l5)}return C&&(F.__proto__=C),F.prototype=Object.create(C&&C.prototype),F.prototype.constructor=F,F.prototype.recalculate=function(J,oe){if(C.prototype.recalculate.call(this,J,oe),this.layout.get("icon-rotation-alignment")==="auto"&&(this.layout.get("symbol-placement")!=="point"?this.layout._values["icon-rotation-alignment"]="map":this.layout._values["icon-rotation-alignment"]="viewport"),this.layout.get("text-rotation-alignment")==="auto"&&(this.layout.get("symbol-placement")!=="point"?this.layout._values["text-rotation-alignment"]="map":this.layout._values["text-rotation-alignment"]="viewport"),this.layout.get("text-pitch-alignment")==="auto"&&(this.layout._values["text-pitch-alignment"]=this.layout.get("text-rotation-alignment")),this.layout.get("icon-pitch-alignment")==="auto"&&(this.layout._values["icon-pitch-alignment"]=this.layout.get("icon-rotation-alignment")),this.layout.get("symbol-placement")==="point"){var pe=this.layout.get("text-writing-mode");if(pe){for(var xe=[],Ce=0,Ne=pe;Ce",targetMapId:oe,sourceMapId:xe.mapId})}}},mg.prototype.receive=function(C){var F=C.data,J=F.id;if(J&&(!F.targetMapId||this.mapId===F.targetMapId))if(F.type===""){delete this.tasks[J];var oe=this.cancelCallbacks[J];delete this.cancelCallbacks[J],oe&&oe()}else L()||F.mustQueue?(this.tasks[J]=F,this.taskQueue.push(J),this.invoker.trigger()):this.processTask(J,F)},mg.prototype.process=function(){if(this.taskQueue.length){var C=this.taskQueue.shift(),F=this.tasks[C];delete this.tasks[C],this.taskQueue.length&&this.invoker.trigger(),F&&this.processTask(C,F)}},mg.prototype.processTask=function(C,F){var J=this;if(F.type===""){var oe=this.callbacks[C];delete this.callbacks[C],oe&&(F.error?oe(Ni(F.error)):oe(null,Ni(F.data)))}else{var pe=!1,xe=B(this.globalScope)?void 0:[],Ce=F.hasCallback?function(gt,Bt){pe=!0,delete J.cancelCallbacks[C],J.target.postMessage({id:C,type:"",sourceMapId:J.mapId,error:gt?fi(gt):null,data:fi(Bt,xe)},xe)}:function(gt){pe=!0},Ne=null,Ze=Ni(F.data);if(this.parent[F.type])Ne=this.parent[F.type](F.sourceMapId,Ze,Ce);else if(this.parent.getWorkerSource){var ct=F.type.split(".");Ne=this.parent.getWorkerSource(F.sourceMapId,ct[0],Ze.source)[ct[1]](Ze,Ce)}else Ce(new Error("Could not find function "+F.type));!pe&&Ne&&Ne.cancel&&(this.cancelCallbacks[C]=Ne.cancel)}},mg.prototype.remove=function(){this.invoker.remove(),this.target.removeEventListener("message",this.receive,!1)};var as=function(C,F){C&&(F?this.setSouthWest(C).setNorthEast(F):C.length===4?this.setSouthWest([C[0],C[1]]).setNorthEast([C[2],C[3]]):this.setSouthWest(C[0]).setNorthEast(C[1]))};as.prototype.setNorthEast=function(C){return this._ne=C instanceof ho?new ho(C.lng,C.lat):ho.convert(C),this},as.prototype.setSouthWest=function(C){return this._sw=C instanceof ho?new ho(C.lng,C.lat):ho.convert(C),this},as.prototype.extend=function(C){var F,J,oe=this._sw,pe=this._ne;if(C instanceof ho)F=C,J=C;else{if(!(C instanceof as)){if(Array.isArray(C)){if(C.length===4||C.every(Array.isArray)){var xe=C;return this.extend(as.convert(xe))}var Ce=C;return this.extend(ho.convert(Ce))}return this}if(F=C._sw,J=C._ne,!F||!J)return this}return oe||pe?(oe.lng=Math.min(F.lng,oe.lng),oe.lat=Math.min(F.lat,oe.lat),pe.lng=Math.max(J.lng,pe.lng),pe.lat=Math.max(J.lat,pe.lat)):(this._sw=new ho(F.lng,F.lat),this._ne=new ho(J.lng,J.lat)),this},as.prototype.getCenter=function(){return new ho((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)},as.prototype.getSouthWest=function(){return this._sw},as.prototype.getNorthEast=function(){return this._ne},as.prototype.getNorthWest=function(){return new ho(this.getWest(),this.getNorth())},as.prototype.getSouthEast=function(){return new ho(this.getEast(),this.getSouth())},as.prototype.getWest=function(){return this._sw.lng},as.prototype.getSouth=function(){return this._sw.lat},as.prototype.getEast=function(){return this._ne.lng},as.prototype.getNorth=function(){return this._ne.lat},as.prototype.toArray=function(){return[this._sw.toArray(),this._ne.toArray()]},as.prototype.toString=function(){return"LngLatBounds("+this._sw.toString()+", "+this._ne.toString()+")"},as.prototype.isEmpty=function(){return!(this._sw&&this._ne)},as.prototype.contains=function(C){var F=ho.convert(C),J=F.lng,oe=F.lat,pe=this._sw.lat<=oe&&oe<=this._ne.lat,xe=this._sw.lng<=J&&J<=this._ne.lng;return this._sw.lng>this._ne.lng&&(xe=this._sw.lng>=J&&J>=this._ne.lng),pe&&xe},as.convert=function(C){return!C||C instanceof as?C:new as(C)};var ho=function(C,F){if(isNaN(C)||isNaN(F))throw new Error("Invalid LngLat object: ("+C+", "+F+")");if(this.lng=+C,this.lat=+F,this.lat>90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")};ho.prototype.wrap=function(){return new ho(y(this.lng,-180,180),this.lat)},ho.prototype.toArray=function(){return[this.lng,this.lat]},ho.prototype.toString=function(){return"LngLat("+this.lng+", "+this.lat+")"},ho.prototype.distanceTo=function(C){var F=Math.PI/180,J=this.lat*F,oe=C.lat*F,pe=Math.sin(J)*Math.sin(oe)+Math.cos(J)*Math.cos(oe)*Math.cos((C.lng-this.lng)*F);return 63710088e-1*Math.acos(Math.min(pe,1))},ho.prototype.toBounds=function(C){C===void 0&&(C=0);var F=360*C/40075017,J=F/Math.cos(Math.PI/180*this.lat);return new as(new ho(this.lng-J,this.lat-F),new ho(this.lng+J,this.lat+F))},ho.convert=function(C){if(C instanceof ho)return C;if(Array.isArray(C)&&(C.length===2||C.length===3))return new ho(Number(C[0]),Number(C[1]));if(!Array.isArray(C)&&typeof C=="object"&&C!==null)return new ho(Number("lng"in C?C.lng:C.lon),Number(C.lat));throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]")};var U9=2*Math.PI*63710088e-1;function V9(C){return U9*Math.cos(C*Math.PI/180)}function q9(C){return(180+C)/360}function H9(C){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+C*Math.PI/360)))/360}function $9(C,F){return C/V9(F)}function c5(C){var F=180-360*C;return 360/Math.PI*Math.atan(Math.exp(F*Math.PI/180))-90}var Dp=function(C,F,J){J===void 0&&(J=0),this.x=+C,this.y=+F,this.z=+J};Dp.fromLngLat=function(C,F){F===void 0&&(F=0);var J=ho.convert(C);return new Dp(q9(J.lng),H9(J.lat),$9(F,J.lat))},Dp.prototype.toLngLat=function(){return new ho(360*this.x-180,c5(this.y))},Dp.prototype.toAltitude=function(){return C=this.z,F=this.y,C*V9(c5(F));var C,F},Dp.prototype.meterInMercatorCoordinateUnits=function(){return 1/U9*(C=c5(this.y),1/Math.cos(C*Math.PI/180));var C};var Ip=function(C,F,J){this.z=C,this.x=F,this.y=J,this.key=w1(0,C,C,F,J)};Ip.prototype.equals=function(C){return this.z===C.z&&this.x===C.x&&this.y===C.y},Ip.prototype.url=function(C,F){var J,oe,pe,xe,Ce,Ne=(J=this.x,oe=this.y,pe=this.z,xe=j9(256*J,256*(oe=Math.pow(2,pe)-oe-1),pe),Ce=j9(256*(J+1),256*(oe+1),pe),xe[0]+","+xe[1]+","+Ce[0]+","+Ce[1]),Ze=function(ct,gt,Bt){for(var Xt,Gt="",on=ct;on>0;on--)Gt+=(gt&(Xt=1<this.canonical.z?new os(C,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new os(C,this.wrap,C,this.canonical.x>>F,this.canonical.y>>F)},os.prototype.calculateScaledKey=function(C,F){var J=this.canonical.z-C;return C>this.canonical.z?w1(this.wrap*+F,C,this.canonical.z,this.canonical.x,this.canonical.y):w1(this.wrap*+F,C,C,this.canonical.x>>J,this.canonical.y>>J)},os.prototype.isChildOf=function(C){if(C.wrap!==this.wrap)return!1;var F=this.canonical.z-C.canonical.z;return C.overscaledZ===0||C.overscaledZ>F&&C.canonical.y===this.canonical.y>>F},os.prototype.children=function(C){if(this.overscaledZ>=C)return[new os(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];var F=this.canonical.z+1,J=2*this.canonical.x,oe=2*this.canonical.y;return[new os(F,this.wrap,F,J,oe),new os(F,this.wrap,F,J+1,oe),new os(F,this.wrap,F,J,oe+1),new os(F,this.wrap,F,J+1,oe+1)]},os.prototype.isLessThan=function(C){return this.wrapC.wrap)&&(this.overscaledZC.overscaledZ)&&(this.canonical.xC.canonical.x)&&this.canonical.y=this.dim+1||F<-1||F>=this.dim+1)throw new RangeError("out of range source coordinates for DEM data");return(F+1)*this.stride+(C+1)},bh.prototype._unpackMapbox=function(C,F,J){return(256*C*256+256*F+J)/10-1e4},bh.prototype._unpackTerrarium=function(C,F,J){return 256*C+F+J/256-32768},bh.prototype.getPixels=function(){return new Sl({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))},bh.prototype.backfillBorder=function(C,F,J){if(this.dim!==C.dim)throw new Error("dem dimension mismatch");var oe=F*this.dim,pe=F*this.dim+this.dim,xe=J*this.dim,Ce=J*this.dim+this.dim;switch(F){case-1:oe=pe-1;break;case 1:pe=oe+1}switch(J){case-1:xe=Ce-1;break;case 1:Ce=xe+1}for(var Ne=-F*this.dim,Ze=-J*this.dim,ct=xe;ct=0&>[3]>=0&&Ne.insert(Ce,gt[0],gt[1],gt[2],gt[3])}},_h.prototype.loadVTLayers=function(){return this.vtLayers||(this.vtLayers=new sg.VectorTile(new yx(this.rawTileData)).layers,this.sourceLayerCoder=new Cx(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"])),this.vtLayers},_h.prototype.query=function(C,F,J,oe){var pe=this;this.loadVTLayers();for(var xe=C.params||{},Ce=8192/C.tileSize/C.scale,Ne=Ui(xe.filter),Ze=C.queryGeometry,ct=C.queryPadding*Ce,gt=Y9(Ze),Bt=this.grid.query(gt.minX-ct,gt.minY-ct,gt.maxX+ct,gt.maxY+ct),Xt=Y9(C.cameraQueryGeometry),Gt=this.grid3D.query(Xt.minX-ct,Xt.minY-ct,Xt.maxX+ct,Xt.maxY+ct,function(dr,br,Hr,Vr){return function(ei,vi,yi,li,Si){for(var Ai=0,xi=ei;Ai=Ta.x&&Si>=Ta.y)return!0}var da=[new h(vi,yi),new h(vi,Si),new h(li,Si),new h(li,yi)];if(ei.length>2){for(var Oa=0,Fi=da;Oa=0)return!0;return!1}(xe,Bt)){var Xt=this.sourceLayerCoder.decode(J),Gt=this.vtLayers[Xt].feature(oe);if(pe.filter(new Pa(this.tileID.overscaledZ),Gt))for(var on=this.getId(Gt,Xt),vn=0;vnoe)pe=!1;else if(F)if(this.expirationTimeVe&&(C.getActor().send("enforceCacheSizeLimit",Fe),nt=0)},i.clamp=v,i.clearTileCache=function(C){var F=self.caches.delete("mapbox-tiles");C&&F.catch(C).then(function(){return C()})},i.clipLine=O9,i.clone=function(C){var F=new Ml(16);return F[0]=C[0],F[1]=C[1],F[2]=C[2],F[3]=C[3],F[4]=C[4],F[5]=C[5],F[6]=C[6],F[7]=C[7],F[8]=C[8],F[9]=C[9],F[10]=C[10],F[11]=C[11],F[12]=C[12],F[13]=C[13],F[14]=C[14],F[15]=C[15],F},i.clone$1=E,i.clone$2=function(C){var F=new Ml(3);return F[0]=C[0],F[1]=C[1],F[2]=C[2],F},i.collisionCircleLayout=C$,i.config=$,i.create=function(){var C=new Ml(16);return Ml!=Float32Array&&(C[1]=0,C[2]=0,C[3]=0,C[4]=0,C[6]=0,C[7]=0,C[8]=0,C[9]=0,C[11]=0,C[12]=0,C[13]=0,C[14]=0),C[0]=1,C[5]=1,C[10]=1,C[15]=1,C},i.create$1=function(){var C=new Ml(9);return Ml!=Float32Array&&(C[1]=0,C[2]=0,C[3]=0,C[5]=0,C[6]=0,C[7]=0),C[0]=1,C[4]=1,C[8]=1,C},i.create$2=function(){var C=new Ml(4);return Ml!=Float32Array&&(C[1]=0,C[2]=0),C[0]=1,C[3]=1,C},i.createCommonjsModule=s,i.createExpression=Yt,i.createLayout=Da,i.createStyleLayer=function(C){return C.type==="custom"?new sG(C):new lG[C.type](C)},i.cross=function(C,F,J){var oe=F[0],pe=F[1],xe=F[2],Ce=J[0],Ne=J[1],Ze=J[2];return C[0]=pe*Ze-xe*Ne,C[1]=xe*Ce-oe*Ze,C[2]=oe*Ne-pe*Ce,C},i.deepEqual=function C(F,J){if(Array.isArray(F)){if(!Array.isArray(J)||F.length!==J.length)return!1;for(var oe=0;oe0&&(xe=1/Math.sqrt(xe)),C[0]=F[0]*xe,C[1]=F[1]*xe,C[2]=F[2]*xe,C},i.number=kr,i.offscreenCanvasSupported=ft,i.ortho=function(C,F,J,oe,pe,xe,Ce){var Ne=1/(F-J),Ze=1/(oe-pe),ct=1/(xe-Ce);return C[0]=-2*Ne,C[1]=0,C[2]=0,C[3]=0,C[4]=0,C[5]=-2*Ze,C[6]=0,C[7]=0,C[8]=0,C[9]=0,C[10]=2*ct,C[11]=0,C[12]=(F+J)*Ne,C[13]=(pe+oe)*Ze,C[14]=(Ce+xe)*ct,C[15]=1,C},i.parseGlyphPBF=function(C){return new yx(C).readFields(j$,[])},i.pbf=yx,i.performSymbolLayout=function(C,F,J,oe,pe,xe,Ce){C.createArrays();var Ne=512*C.overscaling;C.tilePixelRatio=8192/Ne,C.compareText={},C.iconsNeedLinear=!1;var Ze=C.layers[0].layout,ct=C.layers[0]._unevaluatedLayout._values,gt={};if(C.textSizeData.kind==="composite"){var Bt=C.textSizeData,Xt=Bt.minZoom,Gt=Bt.maxZoom;gt.compositeTextSizes=[ct["text-size"].possiblyEvaluate(new Pa(Xt),Ce),ct["text-size"].possiblyEvaluate(new Pa(Gt),Ce)]}if(C.iconSizeData.kind==="composite"){var on=C.iconSizeData,vn=on.minZoom,Cn=on.maxZoom;gt.compositeIconSizes=[ct["icon-size"].possiblyEvaluate(new Pa(vn),Ce),ct["icon-size"].possiblyEvaluate(new Pa(Cn),Ce)]}gt.layoutTextSize=ct["text-size"].possiblyEvaluate(new Pa(C.zoom+1),Ce),gt.layoutIconSize=ct["icon-size"].possiblyEvaluate(new Pa(C.zoom+1),Ce),gt.textMaxSize=ct["text-size"].possiblyEvaluate(new Pa(18));for(var En=24*Ze.get("text-line-height"),Vn=Ze.get("text-rotation-alignment")==="map"&&Ze.get("symbol-placement")!=="point",qn=Ze.get("text-keep-upright"),Xn=Ze.get("text-size"),dr=function(){var Vr=Hr[br],ei=Ze.get("text-font").evaluate(Vr,{},Ce).join(","),vi=Xn.evaluate(Vr,{},Ce),yi=gt.layoutTextSize.evaluate(Vr,{},Ce),li=gt.layoutIconSize.evaluate(Vr,{},Ce),Si={horizontal:{},vertical:void 0},Ai=Vr.text,xi=[0,0];if(Ai){var Ta=Ai.toString(),da=24*Ze.get("text-letter-spacing").evaluate(Vr,{},Ce),Oa=function(aa){for(var Ma=0,Do=aa;Ma=8192||E1.y<0||E1.y>=8192||function(Vo,jc,hG,gd,v5,Q9,Hx,Mf,$x,C1,Gx,Wx,y5,eC,O1,tC,nC,rC,iC,aC,_u,Yx,oC,Sf,dG){var x5,Rp,Mg,Sg,Eg,Cg=Vo.addToLineVertexArray(jc,hG),sC=0,lC=0,uC=0,cC=0,b5=-1,_5=-1,kh={},fC=Sn(""),w5=0,k5=0;if(Mf._unevaluatedLayout.getValue("text-radial-offset")===void 0?(x5=Mf.layout.get("text-offset").evaluate(_u,{},Sf).map(function(P1){return 24*P1}),w5=x5[0],k5=x5[1]):(w5=24*Mf.layout.get("text-radial-offset").evaluate(_u,{},Sf),k5=a5),Vo.allowVerticalPlacement&&gd.vertical){var hC=Mf.layout.get("text-rotate").evaluate(_u,{},Sf)+90,pG=gd.vertical;Sg=new Mx($x,jc,C1,Gx,Wx,pG,y5,eC,O1,hC),Hx&&(Eg=new Mx($x,jc,C1,Gx,Wx,Hx,nC,rC,O1,hC))}if(v5){var T5=Mf.layout.get("icon-rotate").evaluate(_u,{}),dC=Mf.layout.get("icon-text-fit")!=="none",pC=L9(v5,T5,oC,dC),A5=Hx?L9(Hx,T5,oC,dC):void 0;Mg=new Mx($x,jc,C1,Gx,Wx,v5,nC,rC,!1,T5),sC=4*pC.length;var gC=Vo.iconSizeData,L1=null;gC.kind==="source"?(L1=[128*Mf.layout.get("icon-size").evaluate(_u,{})])[0]>32640&&O(Vo.layerIds[0]+': Value for "icon-size" is >= 255. Reduce your "icon-size".'):gC.kind==="composite"&&((L1=[128*Yx.compositeIconSizes[0].evaluate(_u,{},Sf),128*Yx.compositeIconSizes[1].evaluate(_u,{},Sf)])[0]>32640||L1[1]>32640)&&O(Vo.layerIds[0]+': Value for "icon-size" is >= 255. Reduce your "icon-size".'),Vo.addSymbols(Vo.icon,pC,L1,aC,iC,_u,!1,jc,Cg.lineStartIndex,Cg.lineLength,-1,Sf),b5=Vo.icon.placedSymbolArray.length-1,A5&&(lC=4*A5.length,Vo.addSymbols(Vo.icon,A5,L1,aC,iC,_u,bu.vertical,jc,Cg.lineStartIndex,Cg.lineLength,-1,Sf),_5=Vo.icon.placedSymbolArray.length-1)}for(var mC in gd.horizontal){var Xx=gd.horizontal[mC];if(!Rp){fC=Sn(Xx.text);var gG=Mf.layout.get("text-rotate").evaluate(_u,{},Sf);Rp=new Mx($x,jc,C1,Gx,Wx,Xx,y5,eC,O1,gG)}var vC=Xx.positionedLines.length===1;if(uC+=I9(Vo,jc,Xx,Q9,Mf,O1,_u,tC,Cg,gd.vertical?bu.horizontal:bu.horizontalOnly,vC?Object.keys(gd.horizontal):[mC],kh,b5,Yx,Sf),vC)break}gd.vertical&&(cC+=I9(Vo,jc,gd.vertical,Q9,Mf,O1,_u,tC,Cg,bu.vertical,["vertical"],kh,_5,Yx,Sf));var mG=Rp?Rp.boxStartIndex:Vo.collisionBoxArray.length,vG=Rp?Rp.boxEndIndex:Vo.collisionBoxArray.length,yG=Sg?Sg.boxStartIndex:Vo.collisionBoxArray.length,xG=Sg?Sg.boxEndIndex:Vo.collisionBoxArray.length,bG=Mg?Mg.boxStartIndex:Vo.collisionBoxArray.length,_G=Mg?Mg.boxEndIndex:Vo.collisionBoxArray.length,wG=Eg?Eg.boxStartIndex:Vo.collisionBoxArray.length,kG=Eg?Eg.boxEndIndex:Vo.collisionBoxArray.length,Ef=-1,Zx=function(P1,xC){return P1&&P1.circleDiameter?Math.max(P1.circleDiameter,xC):xC};Ef=Zx(Rp,Ef),Ef=Zx(Sg,Ef),Ef=Zx(Mg,Ef);var yC=(Ef=Zx(Eg,Ef))>-1?1:0;yC&&(Ef*=dG/24),Vo.glyphOffsetArray.length>=ja.MAX_GLYPHS&&O("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),_u.sortKey!==void 0&&Vo.addToSortKeyRanges(Vo.symbolInstances.length,_u.sortKey),Vo.symbolInstances.emplaceBack(jc.x,jc.y,kh.right>=0?kh.right:-1,kh.center>=0?kh.center:-1,kh.left>=0?kh.left:-1,kh.vertical||-1,b5,_5,fC,mG,vG,yG,xG,bG,_G,wG,kG,C1,uC,cC,sC,lC,yC,0,y5,w5,k5,Ef)}(aa,E1,fG,Do,Io,Eo,wh,aa.layers[0],aa.collisionBoxArray,Ma.index,Ma.sourceLayerIndex,aa.index,h5,Px,zx,yl,Lx,Dx,dd,Fc,Ma,mo,eu,el,Ia)};if(xg==="line")for(var k1=0,Fx=O9(Ma.geometry,0,0,8192,8192);k11){var wg=G$(_g,Ix,Do.vertical||Nc,Io,24,yg);wg&&pd(_g,wg)}}else if(Ma.type==="Polygon")for(var kg=0,qx=J3(Ma.geometry,0);kg=mn.maxzoom||mn.visibility!=="none"&&(g(Ht,this.zoom,Ae),(tt[mn.id]=mn.createBucket({index:ot.bucketLayerIDs.length,layers:Ht,zoom:this.zoom,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:Le,sourceID:this.source})).populate(Je,bt,this.tileID.canonical),ot.bucketLayerIDs.push(Ht.map(function(sn){return sn.id})))}}}var zn=i.mapObject(bt.glyphDependencies,function(sn){return Object.keys(sn).map(Number)});Object.keys(zn).length?De.send("getGlyphs",{uid:this.uid,stacks:zn},function(sn,gn){kt||(kt=sn,wt=gn,nn.call(rt))}):wt={};var pn=Object.keys(bt.iconDependencies);pn.length?De.send("getImages",{icons:pn,source:this.source,tileID:this.tileID,type:"icons"},function(sn,gn){kt||(kt=sn,Vt=gn,nn.call(rt))}):Vt={};var tn=Object.keys(bt.patternDependencies);function nn(){if(kt)return He(kt);if(wt&&Vt&&Ut){var sn=new h(wt),gn=new i.ImageAtlas(Vt,Ut);for(var bn in tt){var In=tt[bn];In instanceof i.SymbolBucket?(g(In.layers,this.zoom,Ae),i.performSymbolLayout(In,wt,sn.positions,Vt,gn.iconPositions,this.showCollisionBoxes,this.tileID.canonical)):In.hasPattern&&(In instanceof i.LineBucket||In instanceof i.FillBucket||In instanceof i.FillExtrusionBucket)&&(g(In.layers,this.zoom,Ae),In.addFeatures(bt,this.tileID.canonical,gn.patternPositions))}this.status="done",He(null,{buckets:i.values(tt).filter(function(Hn){return!Hn.isEmpty()}),featureIndex:ot,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:sn.image,imageAtlas:gn,glyphMap:this.returnDependencies?wt:null,iconMap:this.returnDependencies?Vt:null,glyphPositions:this.returnDependencies?sn.positions:null})}}tn.length?De.send("getImages",{icons:tn,source:this.source,tileID:this.tileID,type:"patterns"},function(sn,gn){kt||(kt=sn,Ut=gn,nn.call(rt))}):Ut={},nn.call(this)};var v=function(Pe,Ie,Ae,De){this.actor=Pe,this.layerIndex=Ie,this.availableImages=Ae,this.loadVectorData=De||p,this.loading={},this.loaded={}};v.prototype.loadTile=function(Pe,Ie){var Ae=this,De=Pe.uid;this.loading||(this.loading={});var He=!!(Pe&&Pe.request&&Pe.request.collectResourceTiming)&&new i.RequestPerformance(Pe.request),rt=this.loading[De]=new m(Pe);rt.abort=this.loadVectorData(Pe,function(lt,ot){if(delete Ae.loading[De],lt||!ot)return rt.status="done",Ae.loaded[De]=rt,Ie(lt);var kt=ot.rawData,wt={};ot.expires&&(wt.expires=ot.expires),ot.cacheControl&&(wt.cacheControl=ot.cacheControl);var Vt={};if(He){var Ut=He.finish();Ut&&(Vt.resourceTiming=JSON.parse(JSON.stringify(Ut)))}rt.vectorTile=ot.vectorTile,rt.parse(ot.vectorTile,Ae.layerIndex,Ae.availableImages,Ae.actor,function(tt,bt){if(tt||!bt)return Ie(tt);Ie(null,i.extend({rawTileData:kt.slice(0)},bt,wt,Vt))}),Ae.loaded=Ae.loaded||{},Ae.loaded[De]=rt})},v.prototype.reloadTile=function(Pe,Ie){var Ae=this,De=this.loaded,He=Pe.uid,rt=this;if(De&&De[He]){var lt=De[He];lt.showCollisionBoxes=Pe.showCollisionBoxes;var ot=function(kt,wt){var Vt=lt.reloadCallback;Vt&&(delete lt.reloadCallback,lt.parse(lt.vectorTile,rt.layerIndex,Ae.availableImages,rt.actor,Vt)),Ie(kt,wt)};lt.status==="parsing"?lt.reloadCallback=ot:lt.status==="done"&&(lt.vectorTile?lt.parse(lt.vectorTile,this.layerIndex,this.availableImages,this.actor,ot):ot())}},v.prototype.abortTile=function(Pe,Ie){var Ae=this.loading,De=Pe.uid;Ae&&Ae[De]&&Ae[De].abort&&(Ae[De].abort(),delete Ae[De]),Ie()},v.prototype.removeTile=function(Pe,Ie){var Ae=this.loaded,De=Pe.uid;Ae&&Ae[De]&&delete Ae[De],Ie()};var y=i.window.ImageBitmap,x=function(){this.loaded={}};x.prototype.loadTile=function(Pe,Ie){var Ae=Pe.uid,De=Pe.encoding,He=Pe.rawImageData,rt=y&&He instanceof y?this.getImageData(He):He,lt=new i.DEMData(Ae,rt,De);this.loaded=this.loaded||{},this.loaded[Ae]=lt,Ie(null,lt)},x.prototype.getImageData=function(Pe){this.offscreenCanvas&&this.offscreenCanvasContext||(this.offscreenCanvas=new OffscreenCanvas(Pe.width,Pe.height),this.offscreenCanvasContext=this.offscreenCanvas.getContext("2d")),this.offscreenCanvas.width=Pe.width,this.offscreenCanvas.height=Pe.height,this.offscreenCanvasContext.drawImage(Pe,0,0,Pe.width,Pe.height);var Ie=this.offscreenCanvasContext.getImageData(-1,-1,Pe.width+2,Pe.height+2);return this.offscreenCanvasContext.clearRect(0,0,this.offscreenCanvas.width,this.offscreenCanvas.height),new i.RGBAImage({width:Ie.width,height:Ie.height},Ie.data)},x.prototype.removeTile=function(Pe){var Ie=this.loaded,Ae=Pe.uid;Ie&&Ie[Ae]&&delete Ie[Ae]};var w=function Pe(Ie,Ae){var De,He=Ie&&Ie.type;if(He==="FeatureCollection")for(De=0;De=0!=!!Ie&&Pe.reverse()}var T=i.vectorTile.VectorTileFeature.prototype.toGeoJSON,_=function(Pe){this._feature=Pe,this.extent=i.EXTENT,this.type=Pe.type,this.properties=Pe.tags,"id"in Pe&&!isNaN(Pe.id)&&(this.id=parseInt(Pe.id,10))};_.prototype.loadGeometry=function(){if(this._feature.type===1){for(var Pe=[],Ie=0,Ae=this._feature.geometry;Ie>31}function te(Pe,Ie){for(var Ae=Pe.loadGeometry(),De=Pe.type,He=0,rt=0,lt=Ae.length,ot=0;ot>1;(function ot(kt,wt,Vt,Ut,tt,bt){for(;tt>Ut;){if(tt-Ut>600){var zt=tt-Ut+1,St=Vt-Ut+1,Dt=Math.log(zt),Le=.5*Math.exp(2*Dt/3),Je=.5*Math.sqrt(Dt*Le*(zt-Le)/zt)*(St-zt/2<0?-1:1),st=Math.max(Ut,Math.floor(Vt-St*Le/zt+Je)),Et=Math.min(tt,Math.floor(Vt+(zt-St)*Le/zt+Je));ot(kt,wt,Vt,st,Et,bt)}var It=wt[2*Vt+bt],Zt=Ut,Kt=tt;for(re(kt,wt,Ut,Vt),wt[2*tt+bt]>It&&re(kt,wt,Ut,tt);ZtIt;)Kt--}wt[2*Ut+bt]===It?re(kt,wt,Ut,Kt):(Kt++,re(kt,wt,Kt,tt)),Kt<=Vt&&(Ut=Kt+1),Vt<=Kt&&(tt=Kt-1)}})(Pe,Ie,lt,De,He,rt%2),Z(Pe,Ie,Ae,De,lt-1,rt+1),Z(Pe,Ie,Ae,lt+1,He,rt+1)}}function re(Pe,Ie,Ae,De){U(Pe,Ae,De),U(Ie,2*Ae,2*De),U(Ie,2*Ae+1,2*De+1)}function U(Pe,Ie,Ae){var De=Pe[Ie];Pe[Ie]=Pe[Ae],Pe[Ae]=De}function q(Pe,Ie,Ae,De){var He=Pe-Ae,rt=Ie-De;return He*He+rt*rt}O.fromVectorTileJs=R,O.fromGeojsonVt=z,O.GeoJSONWrapper=L;var $=function(Pe){return Pe[0]},ne=function(Pe){return Pe[1]},H=function(Pe,Ie,Ae,De,He){Ie===void 0&&(Ie=$),Ae===void 0&&(Ae=ne),De===void 0&&(De=64),He===void 0&&(He=Float64Array),this.nodeSize=De,this.points=Pe;for(var rt=Pe.length<65536?Uint16Array:Uint32Array,lt=this.ids=new rt(Pe.length),ot=this.coords=new He(2*Pe.length),kt=0;kt=lt&&Ut<=kt&&tt>=ot&&tt<=wt&&zt.push(He[Je]);else{var st=Math.floor((Le+Dt)/2);Ut=rt[2*st],tt=rt[2*st+1],Ut>=lt&&Ut<=kt&&tt>=ot&&tt<=wt&&zt.push(He[st]);var Et=(St+1)%2;(St===0?lt<=Ut:ot<=tt)&&(bt.push(Le),bt.push(st-1),bt.push(Et)),(St===0?kt>=Ut:wt>=tt)&&(bt.push(st+1),bt.push(Dt),bt.push(Et))}}return zt}(this.ids,this.coords,Pe,Ie,Ae,De,this.nodeSize)},H.prototype.within=function(Pe,Ie,Ae){return function(De,He,rt,lt,ot,kt){for(var wt=[0,De.length-1,0],Vt=[],Ut=ot*ot;wt.length;){var tt=wt.pop(),bt=wt.pop(),zt=wt.pop();if(bt-zt<=kt)for(var St=zt;St<=bt;St++)q(He[2*St],He[2*St+1],rt,lt)<=Ut&&Vt.push(De[St]);else{var Dt=Math.floor((zt+bt)/2),Le=He[2*Dt],Je=He[2*Dt+1];q(Le,Je,rt,lt)<=Ut&&Vt.push(De[Dt]);var st=(tt+1)%2;(tt===0?rt-ot<=Le:lt-ot<=Je)&&(wt.push(zt),wt.push(Dt-1),wt.push(st)),(tt===0?rt+ot>=Le:lt+ot>=Je)&&(wt.push(Dt+1),wt.push(bt),wt.push(st))}}return Vt}(this.ids,this.coords,Pe,Ie,Ae,this.nodeSize)};var Q={minZoom:0,maxZoom:16,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:function(Pe){return Pe}},ee=function(Pe){this.options=me(Object.create(Q),Pe),this.trees=new Array(this.options.maxZoom+1)};function ie(Pe,Ie,Ae,De,He){return{x:Pe,y:Ie,zoom:1/0,id:Ae,parentId:-1,numPoints:De,properties:He}}function ae(Pe,Ie){var Ae=Pe.geometry.coordinates,De=Ae[0],He=Ae[1];return{x:ge(De),y:fe(He),zoom:1/0,index:Ie,parentId:-1}}function ue(Pe){return{type:"Feature",id:Pe.id,properties:le(Pe),geometry:{type:"Point",coordinates:[(De=Pe.x,360*(De-.5)),(Ie=Pe.y,Ae=(180-360*Ie)*Math.PI/180,360*Math.atan(Math.exp(Ae))/Math.PI-90)]}};var Ie,Ae,De}function le(Pe){var Ie=Pe.numPoints,Ae=Ie>=1e4?Math.round(Ie/1e3)+"k":Ie>=1e3?Math.round(Ie/100)/10+"k":Ie;return me(me({},Pe.properties),{cluster:!0,cluster_id:Pe.id,point_count:Ie,point_count_abbreviated:Ae})}function ge(Pe){return Pe/360+.5}function fe(Pe){var Ie=Math.sin(Pe*Math.PI/180),Ae=.5-.25*Math.log((1+Ie)/(1-Ie))/Math.PI;return Ae<0?0:Ae>1?1:Ae}function me(Pe,Ie){for(var Ae in Ie)Pe[Ae]=Ie[Ae];return Pe}function _e(Pe){return Pe.x}function we(Pe){return Pe.y}function Te(Pe,Ie,Ae,De,He,rt){var lt=He-Ae,ot=rt-De;if(lt!==0||ot!==0){var kt=((Pe-Ae)*lt+(Ie-De)*ot)/(lt*lt+ot*ot);kt>1?(Ae=He,De=rt):kt>0&&(Ae+=lt*kt,De+=ot*kt)}return(lt=Pe-Ae)*lt+(ot=Ie-De)*ot}function Oe(Pe,Ie,Ae,De){var He={id:Pe===void 0?null:Pe,type:Ie,geometry:Ae,tags:De,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(rt){var lt=rt.geometry,ot=rt.type;if(ot==="Point"||ot==="MultiPoint"||ot==="LineString")de(rt,lt);else if(ot==="Polygon"||ot==="MultiLineString")for(var kt=0;kt0&&(lt+=De?(He*wt-kt*rt)/2:Math.sqrt(Math.pow(kt-He,2)+Math.pow(wt-rt,2))),He=kt,rt=wt}var Vt=Ie.length-3;Ie[2]=1,function Ut(tt,bt,zt,St){for(var Dt,Le=St,Je=zt-bt>>1,st=zt-bt,Et=tt[bt],It=tt[bt+1],Zt=tt[zt],Kt=tt[zt+1],Ht=bt+3;HtLe)Dt=Ht,Le=mn;else if(mn===Le){var zn=Math.abs(Ht-Je);znSt&&(Dt-bt>3&&Ut(tt,bt,Dt,St),tt[Dt+2]=Le,zt-Dt>3&&Ut(tt,Dt,zt,St))}(Ie,0,Vt,Ae),Ie[Vt+2]=1,Ie.size=Math.abs(lt),Ie.start=0,Ie.end=Ie.size}function Ee(Pe,Ie,Ae,De){for(var He=0;He1?1:Ae}function Ve(Pe,Ie,Ae,De,He,rt,lt,ot){if(De/=Ie,rt>=(Ae/=Ie)&<=De)return null;for(var kt=[],wt=0;wt=Ae&&zt=De)){var St=[];if(tt==="Point"||tt==="MultiPoint")Ke(Ut,St,Ae,De,He);else if(tt==="LineString")Re(Ut,St,Ae,De,He,!1,ot.lineMetrics);else if(tt==="MultiLineString")We(Ut,St,Ae,De,He,!1);else if(tt==="Polygon")We(Ut,St,Ae,De,He,!0);else if(tt==="MultiPolygon")for(var Dt=0;Dt=Ae&<<=De&&(Ie.push(Pe[rt]),Ie.push(Pe[rt+1]),Ie.push(Pe[rt+2]))}}function Re(Pe,Ie,Ae,De,He,rt,lt){for(var ot,kt,wt=qe(Pe),Vt=He===0?nt:ft,Ut=Pe.start,tt=0;ttAe&&(kt=Vt(wt,bt,zt,Dt,Le,Ae),lt&&(wt.start=Ut+ot*kt)):Je>De?st=Ae&&(kt=Vt(wt,bt,zt,Dt,Le,Ae),Et=!0),st>De&&Je<=De&&(kt=Vt(wt,bt,zt,Dt,Le,De),Et=!0),!rt&&Et&&(lt&&(wt.end=Ut+ot*kt),Ie.push(wt),wt=qe(Pe)),lt&&(Ut+=ot)}var It=Pe.length-3;bt=Pe[It],zt=Pe[It+1],St=Pe[It+2],(Je=He===0?bt:zt)>=Ae&&Je<=De&&Ye(wt,bt,zt,St),It=wt.length-3,rt&&It>=3&&(wt[It]!==wt[0]||wt[It+1]!==wt[1])&&Ye(wt,wt[0],wt[1],wt[2]),wt.length&&Ie.push(wt)}function qe(Pe){var Ie=[];return Ie.size=Pe.size,Ie.start=Pe.start,Ie.end=Pe.end,Ie}function We(Pe,Ie,Ae,De,He,rt){for(var lt=0;ltlt.maxX&&(lt.maxX=Vt),Ut>lt.maxY&&(lt.maxY=Ut)}return lt}function Ot(Pe,Ie,Ae,De){var He=Ie.geometry,rt=Ie.type,lt=[];if(rt==="Point"||rt==="MultiPoint")for(var ot=0;ot0&&Ie.size<(He?lt:De))Ae.numPoints+=Ie.length/3;else{for(var ot=[],kt=0;ktlt)&&(Ae.numSimplified++,ot.push(Ie[kt]),ot.push(Ie[kt+1])),Ae.numPoints++;He&&function(wt,Vt){for(var Ut=0,tt=0,bt=wt.length,zt=bt-2;tt0===Vt)for(tt=0,bt=wt.length;tt24)throw new Error("maxZoom should be in the 0-24 range");if(Ie.promoteId&&Ie.generateId)throw new Error("promoteId and generateId cannot be used together.");var De=function(He,rt){var lt=[];if(He.type==="FeatureCollection")for(var ot=0;ot=De;wt--){var Vt=+Date.now();ot=this._cluster(ot,wt),this.trees[wt]=new H(ot,_e,we,rt,Float32Array),Ae&&console.log("z%d: %d clusters in %dms",wt,ot.length,+Date.now()-Vt)}return Ae&&console.timeEnd("total time"),this},ee.prototype.getClusters=function(Pe,Ie){var Ae=((Pe[0]+180)%360+360)%360-180,De=Math.max(-90,Math.min(90,Pe[1])),He=Pe[2]===180?180:((Pe[2]+180)%360+360)%360-180,rt=Math.max(-90,Math.min(90,Pe[3]));if(Pe[2]-Pe[0]>=360)Ae=-180,He=180;else if(Ae>He){var lt=this.getClusters([Ae,De,180,rt],Ie),ot=this.getClusters([-180,De,He,rt],Ie);return lt.concat(ot)}for(var kt=this.trees[this._limitZoom(Ie)],wt=[],Vt=0,Ut=kt.range(ge(Ae),fe(rt),ge(He),fe(De));Vt1?this._map(wt,!0):null,Dt=(kt<<5)+(Ie+1)+this.points.length,Le=0,Je=Ut;Le>5},ee.prototype._getOriginZoom=function(Pe){return(Pe-this.points.length)%32},ee.prototype._map=function(Pe,Ie){if(Pe.numPoints)return Ie?me({},Pe.properties):Pe.properties;var Ae=this.points[Pe.index].properties,De=this.options.map(Ae);return Ie&&De===Ae?me({},De):De},Jt.prototype.options={maxZoom:14,indexMaxZoom:5,indexMaxPoints:1e5,tolerance:3,extent:4096,buffer:64,lineMetrics:!1,promoteId:null,generateId:!1,debug:0},Jt.prototype.splitTile=function(Pe,Ie,Ae,De,He,rt,lt){for(var ot=[Pe,Ie,Ae,De],kt=this.options,wt=kt.debug;ot.length;){De=ot.pop(),Ae=ot.pop(),Ie=ot.pop(),Pe=ot.pop();var Vt=1<1&&console.time("creation"),tt=this.tiles[Ut]=et(Pe,Ie,Ae,De,kt),this.tileCoords.push({z:Ie,x:Ae,y:De}),wt)){wt>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",Ie,Ae,De,tt.numFeatures,tt.numPoints,tt.numSimplified),console.timeEnd("creation"));var bt="z"+Ie;this.stats[bt]=(this.stats[bt]||0)+1,this.total++}if(tt.source=Pe,He){if(Ie===kt.maxZoom||Ie===He)continue;var zt=1<1&&console.time("clipping");var St,Dt,Le,Je,st,Et,It=.5*kt.buffer/kt.extent,Zt=.5-It,Kt=.5+It,Ht=1+It;St=Dt=Le=Je=null,st=Ve(Pe,Vt,Ae-It,Ae+Kt,0,tt.minX,tt.maxX,kt),Et=Ve(Pe,Vt,Ae+Zt,Ae+Ht,0,tt.minX,tt.maxX,kt),Pe=null,st&&(St=Ve(st,Vt,De-It,De+Kt,1,tt.minY,tt.maxY,kt),Dt=Ve(st,Vt,De+Zt,De+Ht,1,tt.minY,tt.maxY,kt),st=null),Et&&(Le=Ve(Et,Vt,De-It,De+Kt,1,tt.minY,tt.maxY,kt),Je=Ve(Et,Vt,De+Zt,De+Ht,1,tt.minY,tt.maxY,kt),Et=null),wt>1&&console.timeEnd("clipping"),ot.push(St||[],Ie+1,2*Ae,2*De),ot.push(Dt||[],Ie+1,2*Ae,2*De+1),ot.push(Le||[],Ie+1,2*Ae+1,2*De),ot.push(Je||[],Ie+1,2*Ae+1,2*De+1)}}},Jt.prototype.getTile=function(Pe,Ie,Ae){var De=this.options,He=De.extent,rt=De.debug;if(Pe<0||Pe>24)return null;var lt=1<1&&console.log("drilling down to z%d-%d-%d",Pe,Ie,Ae);for(var kt,wt=Pe,Vt=Ie,Ut=Ae;!kt&&wt>0;)wt--,Vt=Math.floor(Vt/2),Ut=Math.floor(Ut/2),kt=this.tiles[Be(wt,Vt,Ut)];return kt&&kt.source?(rt>1&&console.log("found parent tile z%d-%d-%d",wt,Vt,Ut),rt>1&&console.time("drilling down"),this.splitTile(kt.source,wt,Vt,Ut,Pe,Ie,Ae),rt>1&&console.timeEnd("drilling down"),this.tiles[ot]?At(this.tiles[ot],He):null):null};var Tt=function(Pe){function Ie(Ae,De,He,rt){Pe.call(this,Ae,De,He,Ge),rt&&(this.loadGeoJSON=rt)}return Pe&&(Ie.__proto__=Pe),Ie.prototype=Object.create(Pe&&Pe.prototype),Ie.prototype.constructor=Ie,Ie.prototype.loadData=function(Ae,De){this._pendingCallback&&this._pendingCallback(null,{abandoned:!0}),this._pendingCallback=De,this._pendingLoadDataParams=Ae,this._state&&this._state!=="Idle"?this._state="NeedsLoadData":(this._state="Coalescing",this._loadData())},Ie.prototype._loadData=function(){var Ae=this;if(this._pendingCallback&&this._pendingLoadDataParams){var De=this._pendingCallback,He=this._pendingLoadDataParams;delete this._pendingCallback,delete this._pendingLoadDataParams;var rt=!!(He&&He.request&&He.request.collectResourceTiming)&&new i.RequestPerformance(He.request);this.loadGeoJSON(He,function(lt,ot){if(lt||!ot)return De(lt);if(typeof ot!="object")return De(new Error("Input data given to '"+He.source+"' is not a valid GeoJSON object."));w(ot,!0);try{Ae._geoJSONIndex=He.cluster?new ee(function(Vt){var Ut=Vt.superclusterOptions,tt=Vt.clusterProperties;if(!tt||!Ut)return Ut;for(var bt={},zt={},St={accumulated:null,zoom:0},Dt={properties:null},Le=Object.keys(tt),Je=0,st=Le;Je"u"||typeof document>"u"?"not a browser":Array.prototype&&Array.prototype.every&&Array.prototype.filter&&Array.prototype.forEach&&Array.prototype.indexOf&&Array.prototype.lastIndexOf&&Array.prototype.map&&Array.prototype.some&&Array.prototype.reduce&&Array.prototype.reduceRight&&Array.isArray?Function.prototype&&Function.prototype.bind?Object.keys&&Object.create&&Object.getPrototypeOf&&Object.getOwnPropertyNames&&Object.isSealed&&Object.isFrozen&&Object.isExtensible&&Object.getOwnPropertyDescriptor&&Object.defineProperty&&Object.defineProperties&&Object.seal&&Object.freeze&&Object.preventExtensions?"JSON"in window&&"parse"in JSON&&"stringify"in JSON?function(){if(!("Worker"in window&&"Blob"in window&&"URL"in window))return!1;var he,ve,be=new Blob([""],{type:"text/javascript"}),Se=URL.createObjectURL(be);try{ve=new Worker(Se),he=!0}catch{he=!1}return ve&&ve.terminate(),URL.revokeObjectURL(Se),he}()?"Uint8ClampedArray"in window?ArrayBuffer.isView?function(){var he=document.createElement("canvas");he.width=he.height=1;var ve=he.getContext("2d");if(!ve)return!1;var be=ve.getImageData(0,0,1,1);return be&&be.width===he.width}()?function(he){return X[he]===void 0&&(X[he]=function(ve){var be=function(Ue){var Xe=document.createElement("canvas"),it=Object.create(j.webGLContextAttributes);return it.failIfMajorPerformanceCaveat=Ue,Xe.probablySupportsContext?Xe.probablySupportsContext("webgl",it)||Xe.probablySupportsContext("experimental-webgl",it):Xe.supportsContext?Xe.supportsContext("webgl",it)||Xe.supportsContext("experimental-webgl",it):Xe.getContext("webgl",it)||Xe.getContext("experimental-webgl",it)}(ve);if(!be)return!1;var Se=be.createShader(be.VERTEX_SHADER);return!Se||be.isContextLost()?!1:(be.shaderSource(Se,"void main() {}"),be.compileShader(Se),be.getShaderParameter(Se,be.COMPILE_STATUS)===!0)}(he)),X[he]}(se&&se.failIfMajorPerformanceCaveat)?void 0:"insufficient WebGL support":"insufficient Canvas/getImageData support":"insufficient ArrayBuffer support":"insufficient Uint8ClampedArray support":"insufficient worker support":"insufficient JSON support":"insufficient Object support":"insufficient Function support":"insufficent Array support"}I.exports?I.exports=j:window&&(window.mapboxgl=window.mapboxgl||{},window.mapboxgl.supported=j,window.mapboxgl.notSupportedReason=V);var X={};j.webGLContextAttributes={antialias:!1,alpha:!0,stencil:!0,depth:!0}}),l={create:function(I,j,V){var X=i.window.document.createElement(I);return j!==void 0&&(X.className=j),V&&V.appendChild(X),X},createNS:function(I,j){return i.window.document.createElementNS(I,j)}},d=i.window.document.documentElement.style;function h(I){if(!d)return I[0];for(var j=0;j=0?0:I.button},l.remove=function(I){I.parentNode&&I.parentNode.removeChild(I)};var k=function(I){function j(){I.call(this),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new i.RGBAImage({width:1,height:1}),this.dirty=!0}return I&&(j.__proto__=I),j.prototype=Object.create(I&&I.prototype),j.prototype.constructor=j,j.prototype.isLoaded=function(){return this.loaded},j.prototype.setLoaded=function(V){if(this.loaded!==V&&(this.loaded=V,V)){for(var X=0,se=this.requestors;X=0?1.2:1))}function A(I,j,V,X,se,he,ve){for(var be=0;be65535)Ue(new Error("glyphs > 65535 not supported"));else if(xt.ranges[_t])Ue(null,{stack:Xe,id:it,glyph:Lt});else{var Mt=xt.requests[_t];Mt||(Mt=xt.requests[_t]=[],E.loadGlyphRange(Xe,_t,V.url,V.requestManager,function(yt,Nt){if(Nt){for(var Rt in Nt)V._doesCharSupportLocalGlyph(+Rt)||(xt.glyphs[+Rt]=Nt[+Rt]);xt.ranges[_t]=!0}for(var qt=0,rn=Mt;qt1&&(Se=I[++be]);var Xe=Math.abs(Ue-Se.left),it=Math.abs(Ue-Se.right),xt=Math.min(Xe,it),Lt=void 0,_t=se/V*(X+1);if(Se.isDash){var Mt=X-Math.abs(_t);Lt=Math.sqrt(xt*xt+Mt*Mt)}else Lt=X-Math.sqrt(xt*xt+_t*_t);this.data[ve+Ue]=Math.max(0,Math.min(255,Lt+128))}},z.prototype.addRegularDash=function(I){for(var j=I.length-1;j>=0;--j){var V=I[j],X=I[j+1];V.zeroLength?I.splice(j,1):X&&X.isDash===V.isDash&&(X.left=V.left,I.splice(j,1))}var se=I[0],he=I[I.length-1];se.isDash===he.isDash&&(se.left=he.left-this.width,he.right=se.right+this.width);for(var ve=this.width*this.nextRow,be=0,Se=I[be],Ue=0;Ue1&&(Se=I[++be]);var Xe=Math.abs(Ue-Se.left),it=Math.abs(Ue-Se.right),xt=Math.min(Xe,it),Lt=Se.isDash?xt:-xt;this.data[ve+Ue]=Math.max(0,Math.min(255,Lt+128))}},z.prototype.addDash=function(I,j){var V=j?7:0,X=2*V+1;if(this.nextRow+X>this.height)return i.warnOnce("LineAtlas out of space"),null;for(var se=0,he=0;he=V&&I.x=X&&I.y0&&(Ue[new i.OverscaledTileID(V.overscaledZ,ve,X.z,he,X.y-1).key]={backfilled:!1},Ue[new i.OverscaledTileID(V.overscaledZ,V.wrap,X.z,X.x,X.y-1).key]={backfilled:!1},Ue[new i.OverscaledTileID(V.overscaledZ,Se,X.z,be,X.y-1).key]={backfilled:!1}),X.y+10&&(se.resourceTiming=V._resourceTiming,V._resourceTiming=[]),V.fire(new i.Event("data",se))}})},j.prototype.onAdd=function(V){this.map=V,this.load()},j.prototype.setData=function(V){var X=this;return this._data=V,this.fire(new i.Event("dataloading",{dataType:"source"})),this._updateWorkerData(function(se){if(se)X.fire(new i.ErrorEvent(se));else{var he={dataType:"source",sourceDataType:"content"};X._collectResourceTiming&&X._resourceTiming&&X._resourceTiming.length>0&&(he.resourceTiming=X._resourceTiming,X._resourceTiming=[]),X.fire(new i.Event("data",he))}}),this},j.prototype.getClusterExpansionZoom=function(V,X){return this.actor.send("geojson.getClusterExpansionZoom",{clusterId:V,source:this.id},X),this},j.prototype.getClusterChildren=function(V,X){return this.actor.send("geojson.getClusterChildren",{clusterId:V,source:this.id},X),this},j.prototype.getClusterLeaves=function(V,X,se,he){return this.actor.send("geojson.getClusterLeaves",{source:this.id,clusterId:V,limit:X,offset:se},he),this},j.prototype._updateWorkerData=function(V){var X=this;this._loaded=!1;var se=i.extend({},this.workerOptions),he=this._data;typeof he=="string"?(se.request=this.map._requestManager.transformRequest(i.browser.resolveURL(he),i.ResourceType.Source),se.request.collectResourceTiming=this._collectResourceTiming):se.data=JSON.stringify(he),this.actor.send(this.type+".loadData",se,function(ve,be){X._removed||be&&be.abandoned||(X._loaded=!0,be&&be.resourceTiming&&be.resourceTiming[X.id]&&(X._resourceTiming=be.resourceTiming[X.id].slice(0)),X.actor.send(X.type+".coalesce",{source:se.source},null),V(ve))})},j.prototype.loaded=function(){return this._loaded},j.prototype.loadTile=function(V,X){var se=this,he=V.actor?"reloadTile":"loadTile";V.actor=this.actor;var ve={type:this.type,uid:V.uid,tileID:V.tileID,zoom:V.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:i.browser.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId};V.request=this.actor.send(he,ve,function(be,Se){return delete V.request,V.unloadVectorData(),V.aborted?X(null):be?X(be):(V.loadVectorData(Se,se.map.painter,he==="reloadTile"),X(null))})},j.prototype.abortTile=function(V){V.request&&(V.request.cancel(),delete V.request),V.aborted=!0},j.prototype.unloadTile=function(V){V.unloadVectorData(),this.actor.send("removeTile",{uid:V.uid,type:this.type,source:this.id})},j.prototype.onRemove=function(){this._removed=!0,this.actor.send("removeSource",{type:this.type,source:this.id})},j.prototype.serialize=function(){return i.extend({},this._options,{type:this.type,data:this._data})},j.prototype.hasTransition=function(){return!1},j}(i.Evented),te=i.createLayout([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]),Y=function(I){function j(V,X,se,he){I.call(this),this.id=V,this.dispatcher=se,this.coordinates=X.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(he),this.options=X}return I&&(j.__proto__=I),j.prototype=Object.create(I&&I.prototype),j.prototype.constructor=j,j.prototype.load=function(V,X){var se=this;this._loaded=!1,this.fire(new i.Event("dataloading",{dataType:"source"})),this.url=this.options.url,i.getImage(this.map._requestManager.transformRequest(this.url,i.ResourceType.Image),function(he,ve){se._loaded=!0,he?se.fire(new i.ErrorEvent(he)):ve&&(se.image=ve,V&&(se.coordinates=V),X&&X(),se._finishLoading())})},j.prototype.loaded=function(){return this._loaded},j.prototype.updateImage=function(V){var X=this;return this.image&&V.url?(this.options.url=V.url,this.load(V.coordinates,function(){X.texture=null}),this):this},j.prototype._finishLoading=function(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new i.Event("data",{dataType:"source",sourceDataType:"metadata"})))},j.prototype.onAdd=function(V){this.map=V,this.load()},j.prototype.setCoordinates=function(V){var X=this;this.coordinates=V;var se=V.map(i.MercatorCoordinate.fromLngLat);this.tileID=function(ve){for(var be=1/0,Se=1/0,Ue=-1/0,Xe=-1/0,it=0,xt=ve;itX.end(0)?this.fire(new i.ErrorEvent(new i.ValidationError("sources."+this.id,null,"Playback for this video can be set only between the "+X.start(0)+" and "+X.end(0)+"-second mark."))):this.video.currentTime=V}},j.prototype.getVideo=function(){return this.video},j.prototype.onAdd=function(V){this.map||(this.map=V,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))},j.prototype.prepare=function(){if(!(Object.keys(this.tiles).length===0||this.video.readyState<2)){var V=this.map.painter.context,X=V.gl;for(var se in this.boundsBuffer||(this.boundsBuffer=V.createVertexBuffer(this._boundsArray,te.members)),this.boundsSegments||(this.boundsSegments=i.SegmentVector.simpleSegment(0,0,4,2)),this.texture?this.video.paused||(this.texture.bind(X.LINEAR,X.CLAMP_TO_EDGE),X.texSubImage2D(X.TEXTURE_2D,0,0,0,X.RGBA,X.UNSIGNED_BYTE,this.video)):(this.texture=new i.Texture(V,this.video,X.RGBA),this.texture.bind(X.LINEAR,X.CLAMP_TO_EDGE)),this.tiles){var he=this.tiles[se];he.state!=="loaded"&&(he.state="loaded",he.texture=this.texture)}}},j.prototype.serialize=function(){return{type:"video",urls:this.urls,coordinates:this.coordinates}},j.prototype.hasTransition=function(){return this.video&&!this.video.paused},j}(Y),re=function(I){function j(V,X,se,he){I.call(this,V,X,se,he),X.coordinates?Array.isArray(X.coordinates)&&X.coordinates.length===4&&!X.coordinates.some(function(ve){return!Array.isArray(ve)||ve.length!==2||ve.some(function(be){return typeof be!="number"})})||this.fire(new i.ErrorEvent(new i.ValidationError("sources."+V,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new i.ErrorEvent(new i.ValidationError("sources."+V,null,'missing required property "coordinates"'))),X.animate&&typeof X.animate!="boolean"&&this.fire(new i.ErrorEvent(new i.ValidationError("sources."+V,null,'optional "animate" property must be a boolean value'))),X.canvas?typeof X.canvas=="string"||X.canvas instanceof i.window.HTMLCanvasElement||this.fire(new i.ErrorEvent(new i.ValidationError("sources."+V,null,'"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))):this.fire(new i.ErrorEvent(new i.ValidationError("sources."+V,null,'missing required property "canvas"'))),this.options=X,this.animate=X.animate===void 0||X.animate}return I&&(j.__proto__=I),j.prototype=Object.create(I&&I.prototype),j.prototype.constructor=j,j.prototype.load=function(){this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof i.window.HTMLCanvasElement?this.options.canvas:i.window.document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new i.ErrorEvent(new Error("Canvas dimensions cannot be less than or equal to zero."))):(this.play=function(){this._playing=!0,this.map.triggerRepaint()},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1)},this._finishLoading())},j.prototype.getCanvas=function(){return this.canvas},j.prototype.onAdd=function(V){this.map=V,this.load(),this.canvas&&this.animate&&this.play()},j.prototype.onRemove=function(){this.pause()},j.prototype.prepare=function(){var V=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,V=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,V=!0),!this._hasInvalidDimensions()&&Object.keys(this.tiles).length!==0){var X=this.map.painter.context,se=X.gl;for(var he in this.boundsBuffer||(this.boundsBuffer=X.createVertexBuffer(this._boundsArray,te.members)),this.boundsSegments||(this.boundsSegments=i.SegmentVector.simpleSegment(0,0,4,2)),this.texture?(V||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new i.Texture(X,this.canvas,se.RGBA,{premultiply:!0}),this.tiles){var ve=this.tiles[he];ve.state!=="loaded"&&(ve.state="loaded",ve.texture=this.texture)}}},j.prototype.serialize=function(){return{type:"canvas",coordinates:this.coordinates}},j.prototype.hasTransition=function(){return this._playing},j.prototype._hasInvalidDimensions=function(){for(var V=0,X=[this.canvas.width,this.canvas.height];Vthis.max){var ve=this._getAndRemoveByKey(this.order[0]);ve&&this.onRemove(ve)}return this},H.prototype.has=function(I){return I.wrapped().key in this.data},H.prototype.getAndRemove=function(I){return this.has(I)?this._getAndRemoveByKey(I.wrapped().key):null},H.prototype._getAndRemoveByKey=function(I){var j=this.data[I].shift();return j.timeout&&clearTimeout(j.timeout),this.data[I].length===0&&delete this.data[I],this.order.splice(this.order.indexOf(I),1),j.value},H.prototype.getByKey=function(I){var j=this.data[I];return j?j[0].value:null},H.prototype.get=function(I){return this.has(I)?this.data[I.wrapped().key][0].value:null},H.prototype.remove=function(I,j){if(!this.has(I))return this;var V=I.wrapped().key,X=j===void 0?0:this.data[V].indexOf(j),se=this.data[V][X];return this.data[V].splice(X,1),se.timeout&&clearTimeout(se.timeout),this.data[V].length===0&&delete this.data[V],this.onRemove(se.value),this.order.splice(this.order.indexOf(V),1),this},H.prototype.setMaxSize=function(I){for(this.max=I;this.order.length>this.max;){var j=this._getAndRemoveByKey(this.order[0]);j&&this.onRemove(j)}return this},H.prototype.filter=function(I){var j=[];for(var V in this.data)for(var X=0,se=this.data[V];X1||(Math.abs(Xe)>1&&(Math.abs(Xe+xt)===1?Xe+=xt:Math.abs(Xe-xt)===1&&(Xe-=xt)),Ue.dem&&Se.dem&&(Se.dem.backfillBorder(Ue.dem,Xe,it),Se.neighboringTiles&&Se.neighboringTiles[Lt]&&(Se.neighboringTiles[Lt].backfilled=!0)))}},j.prototype.getTile=function(V){return this.getTileByID(V.key)},j.prototype.getTileByID=function(V){return this._tiles[V]},j.prototype._retainLoadedChildren=function(V,X,se,he){for(var ve in this._tiles){var be=this._tiles[ve];if(!(he[ve]||!be.hasData()||be.tileID.overscaledZ<=X||be.tileID.overscaledZ>se)){for(var Se=be.tileID;be&&be.tileID.overscaledZ>X+1;){var Ue=be.tileID.scaledTo(be.tileID.overscaledZ-1);(be=this._tiles[Ue.key])&&be.hasData()&&(Se=Ue)}for(var Xe=Se;Xe.overscaledZ>X;)if(V[(Xe=Xe.scaledTo(Xe.overscaledZ-1)).key]){he[Se.key]=Se;break}}}},j.prototype.findLoadedParent=function(V,X){if(V.key in this._loadedParentTiles){var se=this._loadedParentTiles[V.key];return se&&se.tileID.overscaledZ>=X?se:null}for(var he=V.overscaledZ-1;he>=X;he--){var ve=V.scaledTo(he),be=this._getLoadedTile(ve);if(be)return be}},j.prototype._getLoadedTile=function(V){var X=this._tiles[V.key];return X&&X.hasData()?X:this._cache.getByKey(V.wrapped().key)},j.prototype.updateCacheSize=function(V){var X=(Math.ceil(V.width/this._source.tileSize)+1)*(Math.ceil(V.height/this._source.tileSize)+1),se=Math.floor(5*X),he=typeof this._maxTileCacheSize=="number"?Math.min(this._maxTileCacheSize,se):se;this._cache.setMaxSize(he)},j.prototype.handleWrapJump=function(V){var X=(V-(this._prevLng===void 0?V:this._prevLng))/360,se=Math.round(X);if(this._prevLng=V,se){var he={};for(var ve in this._tiles){var be=this._tiles[ve];be.tileID=be.tileID.unwrapTo(be.tileID.wrap+se),he[be.tileID.key]=be}for(var Se in this._tiles=he,this._timers)clearTimeout(this._timers[Se]),delete this._timers[Se];for(var Ue in this._tiles){var Xe=this._tiles[Ue];this._setTileReloadTimer(Ue,Xe)}}},j.prototype.update=function(V){var X=this;if(this.transform=V,this._sourceLoaded&&!this._paused){var se;this.updateCacheSize(V),this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used?this._source.tileID?se=V.getVisibleUnwrappedCoordinates(this._source.tileID).map(function(An){return new i.OverscaledTileID(An.canonical.z,An.wrap,An.canonical.z,An.canonical.x,An.canonical.y)}):(se=V.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}),this._source.hasTile&&(se=se.filter(function(An){return X._source.hasTile(An)}))):se=[];var he=V.coveringZoomLevel(this._source),ve=Math.max(he-j.maxOverzooming,this._source.minzoom),be=Math.max(he+j.maxUnderzooming,this._source.minzoom),Se=this._updateRetainedTiles(se,he);if(lt(this._source.type)){for(var Ue={},Xe={},it=0,xt=Object.keys(Se);itthis._source.maxzoom){var Nt=Mt.children(this._source.maxzoom)[0],Rt=this.getTile(Nt);if(Rt&&Rt.hasData()){se[Nt.key]=Nt;continue}}else{var qt=Mt.children(this._source.maxzoom);if(se[qt[0].key]&&se[qt[1].key]&&se[qt[2].key]&&se[qt[3].key])continue}for(var rn=yt.wasRequested(),dn=Mt.overscaledZ-1;dn>=ve;--dn){var Sn=Mt.scaledTo(dn);if(he[Sn.key]||(he[Sn.key]=!0,!(yt=this.getTile(Sn))&&rn&&(yt=this._addTile(Sn)),yt&&(se[Sn.key]=Sn,rn=yt.wasRequested(),yt.hasData())))break}}}return se},j.prototype._updateLoadedParentTileCache=function(){for(var V in this._loadedParentTiles={},this._tiles){for(var X=[],se=void 0,he=this._tiles[V].tileID;he.overscaledZ>0;){if(he.key in this._loadedParentTiles){se=this._loadedParentTiles[he.key];break}X.push(he.key);var ve=he.scaledTo(he.overscaledZ-1);if(se=this._getLoadedTile(ve))break;he=ve}for(var be=0,Se=X;be0||(X.hasData()&&X.state!=="reloading"?this._cache.add(X.tileID,X,X.getExpiryTimeout()):(X.aborted=!0,this._abortTile(X),this._unloadTile(X))))},j.prototype.clearTiles=function(){for(var V in this._shouldReloadOnResume=!1,this._paused=!1,this._tiles)this._removeTile(V);this._cache.reset()},j.prototype.tilesIn=function(V,X,se){var he=this,ve=[],be=this.transform;if(!be)return ve;for(var Se=se?be.getCameraQueryGeometry(V):V,Ue=V.map(function(dn){return be.pointCoordinate(dn)}),Xe=Se.map(function(dn){return be.pointCoordinate(dn)}),it=this.getIds(),xt=1/0,Lt=1/0,_t=-1/0,Mt=-1/0,yt=0,Nt=Xe;yt=0&&gr[1].y+er>=0){var cr=Ue.map(function(ii){return An.getTilePoint(ii)}),Yr=Xe.map(function(ii){return An.getTilePoint(ii)});ve.push({tile:Sn,tileID:An,queryGeometry:cr,cameraQueryGeometry:Yr,scale:tr})}}},rn=0;rn=i.browser.now())return!0}return!1},j.prototype.setFeatureState=function(V,X,se){V=V||"_geojsonTileLayer",this._state.updateState(V,X,se)},j.prototype.removeFeatureState=function(V,X,se){V=V||"_geojsonTileLayer",this._state.removeFeatureState(V,X,se)},j.prototype.getFeatureState=function(V,X){return V=V||"_geojsonTileLayer",this._state.getState(V,X)},j.prototype.setDependencies=function(V,X,se){var he=this._tiles[V];he&&he.setDependencies(X,se)},j.prototype.reloadTilesForDependencies=function(V,X){for(var se in this._tiles)this._tiles[se].hasDependency(V,X)&&this._reloadTile(se,"reloading");this._cache.filter(function(he){return!he.hasDependency(V,X)})},j}(i.Evented);function rt(I,j){var V=Math.abs(2*I.wrap)-+(I.wrap<0),X=Math.abs(2*j.wrap)-+(j.wrap<0);return I.overscaledZ-j.overscaledZ||X-V||j.canonical.y-I.canonical.y||j.canonical.x-I.canonical.x}function lt(I){return I==="raster"||I==="image"||I==="video"}function ot(){return new i.window.Worker(ce.workerUrl)}He.maxOverzooming=10,He.maxUnderzooming=3;var kt="mapboxgl_preloaded_worker_pool",wt=function(){this.active={}};wt.prototype.acquire=function(I){if(!this.workers)for(this.workers=[];this.workers.length0?(X-he)/ve:0;return this.points[se].mult(1-be).add(this.points[j].mult(be))};var mn=function(I,j,V){var X=this.boxCells=[],se=this.circleCells=[];this.xCellCount=Math.ceil(I/V),this.yCellCount=Math.ceil(j/V);for(var he=0;he=-j[0]&&V<=j[0]&&X>=-j[1]&&X<=j[1]}function gn(I,j,V,X,se,he,ve,be){var Se=X?I.textSizeData:I.iconSizeData,Ue=i.evaluateSizeForZoom(Se,V.transform.zoom),Xe=[256/V.width*2+1,256/V.height*2+1],it=X?I.text.dynamicLayoutVertexArray:I.icon.dynamicLayoutVertexArray;it.clear();for(var xt=I.lineVertexArray,Lt=X?I.text.placedSymbolArray:I.icon.placedSymbolArray,_t=V.transform.width/V.transform.height,Mt=!1,yt=0;ytMath.abs(V.x-j.x)*X?{useVertical:!0}:(I===i.WritingMode.vertical?j.yV.x)?{needsFlipping:!0}:null}function Hn(I,j,V,X,se,he,ve,be,Se,Ue,Xe,it,xt,Lt){var _t,Mt=j/24,yt=I.lineOffsetX*Mt,Nt=I.lineOffsetY*Mt;if(I.numGlyphs>1){var Rt=I.glyphStartIndex+I.numGlyphs,qt=I.lineStartIndex,rn=I.lineStartIndex+I.lineLength,dn=bn(Mt,be,yt,Nt,V,Xe,it,I,Se,he,xt);if(!dn)return{notEnoughRoom:!0};var Sn=tn(dn.first.point,ve).point,An=tn(dn.last.point,ve).point;if(X&&!V){var tr=In(I.writingMode,Sn,An,Lt);if(tr)return tr}_t=[dn.first];for(var er=I.glyphStartIndex+1;er0?ii.point:Wn(it,Yr,gr,1,se),Gn=In(I.writingMode,gr,Ti,Lt);if(Gn)return Gn}var Mr=ar(Mt*be.getoffsetX(I.glyphStartIndex),yt,Nt,V,Xe,it,I.segment,I.lineStartIndex,I.lineStartIndex+I.lineLength,Se,he,xt);if(!Mr)return{notEnoughRoom:!0};_t=[Mr]}for(var ai=0,Qr=_t;ai0?1:-1,_t=0;X&&(Lt*=-1,_t=Math.PI),Lt<0&&(_t+=Math.PI);for(var Mt=Lt>0?be+ve:be+ve+1,yt=se,Nt=se,Rt=0,qt=0,rn=Math.abs(xt),dn=[];Rt+qt<=rn;){if((Mt+=Lt)=Se)return null;if(Nt=yt,dn.push(yt),(yt=it[Mt])===void 0){var Sn=new i.Point(Ue.getx(Mt),Ue.gety(Mt)),An=tn(Sn,Xe);if(An.signedDistanceFromCamera>0)yt=it[Mt]=An.point;else{var tr=Mt-Lt;yt=Wn(Rt===0?he:new i.Point(Ue.getx(tr),Ue.gety(tr)),Sn,Nt,rn-Rt+1,Xe)}}Rt+=qt,qt=Nt.dist(yt)}var er=(rn-Rt)/qt,gr=yt.sub(Nt),cr=gr.mult(er)._add(Nt);cr._add(gr._unit()._perp()._mult(V*Lt));var Yr=_t+Math.atan2(yt.y-Nt.y,yt.x-Nt.x);return dn.push(cr),{point:cr,angle:Yr,path:dn}}mn.prototype.keysLength=function(){return this.boxKeys.length+this.circleKeys.length},mn.prototype.insert=function(I,j,V,X,se){this._forEachCell(j,V,X,se,this._insertBoxCell,this.boxUid++),this.boxKeys.push(I),this.bboxes.push(j),this.bboxes.push(V),this.bboxes.push(X),this.bboxes.push(se)},mn.prototype.insertCircle=function(I,j,V,X){this._forEachCell(j-X,V-X,j+X,V+X,this._insertCircleCell,this.circleUid++),this.circleKeys.push(I),this.circles.push(j),this.circles.push(V),this.circles.push(X)},mn.prototype._insertBoxCell=function(I,j,V,X,se,he){this.boxCells[se].push(he)},mn.prototype._insertCircleCell=function(I,j,V,X,se,he){this.circleCells[se].push(he)},mn.prototype._query=function(I,j,V,X,se,he){if(V<0||I>this.width||X<0||j>this.height)return!se&&[];var ve=[];if(I<=0&&j<=0&&this.width<=V&&this.height<=X){if(se)return!0;for(var be=0;be0:ve},mn.prototype._queryCircle=function(I,j,V,X,se){var he=I-V,ve=I+V,be=j-V,Se=j+V;if(ve<0||he>this.width||Se<0||be>this.height)return!X&&[];var Ue=[],Xe={hitTest:X,circle:{x:I,y:j,radius:V},seenUids:{box:{},circle:{}}};return this._forEachCell(he,be,ve,Se,this._queryCellCircle,Ue,Xe,se),X?Ue.length>0:Ue},mn.prototype.query=function(I,j,V,X,se){return this._query(I,j,V,X,!1,se)},mn.prototype.hitTest=function(I,j,V,X,se){return this._query(I,j,V,X,!0,se)},mn.prototype.hitTestCircle=function(I,j,V,X){return this._queryCircle(I,j,V,!0,X)},mn.prototype._queryCell=function(I,j,V,X,se,he,ve,be){var Se=ve.seenUids,Ue=this.boxCells[se];if(Ue!==null)for(var Xe=this.bboxes,it=0,xt=Ue;it=Xe[_t+0]&&X>=Xe[_t+1]&&(!be||be(this.boxKeys[Lt]))){if(ve.hitTest)return he.push(!0),!0;he.push({key:this.boxKeys[Lt],x1:Xe[_t],y1:Xe[_t+1],x2:Xe[_t+2],y2:Xe[_t+3]})}}}var Mt=this.circleCells[se];if(Mt!==null)for(var yt=this.circles,Nt=0,Rt=Mt;Ntve*ve+be*be},mn.prototype._circleAndRectCollide=function(I,j,V,X,se,he,ve){var be=(he-X)/2,Se=Math.abs(I-(X+be));if(Se>be+V)return!1;var Ue=(ve-se)/2,Xe=Math.abs(j-(se+Ue));if(Xe>Ue+V)return!1;if(Se<=be||Xe<=Ue)return!0;var it=Se-be,xt=Xe-Ue;return it*it+xt*xt<=V*V};var Or=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function vr(I,j){for(var V=0;V=1;Ti--)ii.push(cr.path[Ti]);for(var Gn=1;Gn0){for(var gi=ii[0].clone(),Mi=ii[0].clone(),Yi=1;Yi=tr.x&&Mi.x<=er.x&&gi.y>=tr.y&&Mi.y<=er.y?[ii]:Mi.xer.x||Mi.yer.y?[]:i.clipLine([ii],tr.x,tr.y,er.x,er.y)}for(var ci=0,zi=Qr;ci=this.screenRightBoundary||X<100||j>this.screenBottomBoundary},Kn.prototype.isInsideGrid=function(I,j,V,X){return V>=0&&I=0&&j0)return this.prevPlacement&&this.prevPlacement.variableOffsets[it.crossTileID]&&this.prevPlacement.placements[it.crossTileID]&&this.prevPlacement.placements[it.crossTileID].text&&(Mt=this.prevPlacement.variableOffsets[it.crossTileID].anchor),this.variableOffsets[it.crossTileID]={textOffset:yt,width:V,height:X,anchor:I,textBoxScale:se,prevAnchor:Mt},this.markUsedJustification(xt,I,it,Lt),xt.allowVerticalPlacement&&(this.markUsedOrientation(xt,Lt,it),this.placedOrientations[it.crossTileID]=Lt),{shift:Nt,placedGlyphBoxes:Rt}},pr.prototype.placeLayerBucketPart=function(I,j,V){var X=this,se=I.parameters,he=se.bucket,ve=se.layout,be=se.posMatrix,Se=se.textLabelPlaneMatrix,Ue=se.labelToScreenMatrix,Xe=se.textPixelRatio,it=se.holdingForFade,xt=se.collisionBoxArray,Lt=se.partiallyEvaluatedTextSize,_t=se.collisionGroup,Mt=ve.get("text-optional"),yt=ve.get("icon-optional"),Nt=ve.get("text-allow-overlap"),Rt=ve.get("icon-allow-overlap"),qt=ve.get("text-rotation-alignment")==="map",rn=ve.get("text-pitch-alignment")==="map",dn=ve.get("icon-text-fit")!=="none",Sn=ve.get("symbol-z-order")==="viewport-y",An=Nt&&(Rt||!he.hasIconData()||yt),tr=Rt&&(Nt||!he.hasTextData()||Mt);!he.collisionArrays&&xt&&he.deserializeCollisionBoxes(xt);var er=function(Gn,Mr){if(!j[Gn.crossTileID])if(it)X.placements[Gn.crossTileID]=new Mn(!1,!1,!1);else{var ai,Qr=!1,gi=!1,Mi=!0,Yi=null,ci={box:null,offscreen:null},zi={box:null,offscreen:null},Li=null,Qi=null,Ri=0,ea=0,fa=0;Mr.textFeatureIndex?Ri=Mr.textFeatureIndex:Gn.useRuntimeCollisionCircles&&(Ri=Gn.featureIndex),Mr.verticalTextFeatureIndex&&(ea=Mr.verticalTextFeatureIndex);var Ha=Mr.textBox;if(Ha){var xo=function(fo){var Vs=i.WritingMode.horizontal;if(he.allowVerticalPlacement&&!fo&&X.prevPlacement){var qs=X.prevPlacement.placedOrientations[Gn.crossTileID];qs&&(X.placedOrientations[Gn.crossTileID]=qs,Vs=qs,X.markUsedOrientation(he,Vs,Gn))}return Vs},bo=function(fo,Vs){if(he.allowVerticalPlacement&&Gn.numVerticalGlyphVertices>0&&Mr.verticalTextBox)for(var qs=0,rg=he.writingModes;qs0&&(qa=qa.filter(function(fo){return fo!==co.anchor})).unshift(co.anchor)}var eo=function(fo,Vs,qs){for(var rg=fo.x2-fo.x1,V3=fo.y2-fo.y1,Ml=Gn.textBoxScale,c1=dn&&!Rt?Vs:null,Op={box:[],offscreen:!1},q3=Nt?2*qa.length:qa.length,yh=0;yh=qa.length,f1=X.attemptAnchorPlacement(H3,fo,rg,V3,Ml,qt,rn,Xe,be,_t,ig,Gn,he,qs,c1);if(f1&&(Op=f1.placedGlyphBoxes)&&Op.box&&Op.box.length){Qr=!0,Yi=f1.shift;break}}return Op};bo(function(){return eo(Ha,Mr.iconBox,i.WritingMode.horizontal)},function(){var fo=Mr.verticalTextBox,Vs=ci&&ci.box&&ci.box.length;return he.allowVerticalPlacement&&!Vs&&Gn.numVerticalGlyphVertices>0&&fo?eo(fo,Mr.verticalIconBox,i.WritingMode.vertical):{box:null,offscreen:null}}),ci&&(Qr=ci.box,Mi=ci.offscreen);var As=xo(ci&&ci.box);if(!Qr&&X.prevPlacement){var Uo=X.prevPlacement.variableOffsets[Gn.crossTileID];Uo&&(X.variableOffsets[Gn.crossTileID]=Uo,X.markUsedJustification(he,Uo.anchor,Gn,As))}}else{var Js=function(fo,Vs){var qs=X.collisionIndex.placeCollisionBox(fo,Nt,Xe,be,_t.predicate);return qs&&qs.box&&qs.box.length&&(X.markUsedOrientation(he,Vs,Gn),X.placedOrientations[Gn.crossTileID]=Vs),qs};bo(function(){return Js(Ha,i.WritingMode.horizontal)},function(){var fo=Mr.verticalTextBox;return he.allowVerticalPlacement&&Gn.numVerticalGlyphVertices>0&&fo?Js(fo,i.WritingMode.vertical):{box:null,offscreen:null}}),xo(ci&&ci.box&&ci.box.length)}}if(Qr=(ai=ci)&&ai.box&&ai.box.length>0,Mi=ai&&ai.offscreen,Gn.useRuntimeCollisionCircles){var sc=he.text.placedSymbolArray.get(Gn.centerJustifiedTextSymbolIndex),Af=i.evaluateSizeForFeature(he.textSizeData,Lt,sc),Sp=ve.get("text-padding"),ud=Gn.collisionCircleDiameter;Li=X.collisionIndex.placeCollisionCircles(Nt,sc,he.lineVertexArray,he.glyphOffsetArray,Af,be,Se,Ue,V,rn,_t.predicate,ud,Sp),Qr=Nt||Li.circles.length>0&&!Li.collisionDetected,Mi=Mi&&Li.offscreen}if(Mr.iconFeatureIndex&&(fa=Mr.iconFeatureIndex),Mr.iconBox){var cd=function(fo){var Vs=dn&&Yi?$r(fo,Yi.x,Yi.y,qt,rn,X.transform.angle):fo;return X.collisionIndex.placeCollisionBox(Vs,Rt,Xe,be,_t.predicate)};gi=zi&&zi.box&&zi.box.length&&Mr.verticalIconBox?(Qi=cd(Mr.verticalIconBox)).box.length>0:(Qi=cd(Mr.iconBox)).box.length>0,Mi=Mi&&Qi.offscreen}var Ms=Mt||Gn.numHorizontalGlyphVertices===0&&Gn.numVerticalGlyphVertices===0,vh=yt||Gn.numIconVertices===0;if(Ms||vh?vh?Ms||(gi=gi&&Qr):Qr=gi&&Qr:gi=Qr=gi&&Qr,Qr&&ai&&ai.box&&(zi&&zi.box&&ea?X.collisionIndex.insertCollisionBox(ai.box,ve.get("text-ignore-placement"),he.bucketInstanceId,ea,_t.ID):X.collisionIndex.insertCollisionBox(ai.box,ve.get("text-ignore-placement"),he.bucketInstanceId,Ri,_t.ID)),gi&&Qi&&X.collisionIndex.insertCollisionBox(Qi.box,ve.get("icon-ignore-placement"),he.bucketInstanceId,fa,_t.ID),Li&&(Qr&&X.collisionIndex.insertCollisionCircles(Li.circles,ve.get("text-ignore-placement"),he.bucketInstanceId,Ri,_t.ID),V)){var Ep=he.bucketInstanceId,Kl=X.collisionCircleArrays[Ep];Kl===void 0&&(Kl=X.collisionCircleArrays[Ep]=new rr);for(var Cp=0;Cp=0;--cr){var Yr=gr[cr];er(he.symbolInstances.get(Yr),he.collisionArrays[Yr])}else for(var ii=I.symbolInstanceStart;ii=0&&(I.text.placedSymbolArray.get(Se).crossTileID=se>=0&&Se!==se?0:V.crossTileID)}},pr.prototype.markUsedOrientation=function(I,j,V){for(var X=j===i.WritingMode.horizontal||j===i.WritingMode.horizontalOnly?j:0,se=j===i.WritingMode.vertical?j:0,he=0,ve=[V.leftJustifiedTextSymbolIndex,V.centerJustifiedTextSymbolIndex,V.rightJustifiedTextSymbolIndex];he0||rn>0,er=Rt.numIconVertices>0,gr=X.placedOrientations[Rt.crossTileID],cr=gr===i.WritingMode.vertical,Yr=gr===i.WritingMode.horizontal||gr===i.WritingMode.horizontalOnly;if(tr){var ii=Un(An.text),Ti=cr?Nn:ii;Lt(I.text,qt,Ti);var Gn=Yr?Nn:ii;Lt(I.text,rn,Gn);var Mr=An.text.isHidden();[Rt.rightJustifiedTextSymbolIndex,Rt.centerJustifiedTextSymbolIndex,Rt.leftJustifiedTextSymbolIndex].forEach(function(fa){fa>=0&&(I.text.placedSymbolArray.get(fa).hidden=Mr||cr?1:0)}),Rt.verticalPlacedTextSymbolIndex>=0&&(I.text.placedSymbolArray.get(Rt.verticalPlacedTextSymbolIndex).hidden=Mr||Yr?1:0);var ai=X.variableOffsets[Rt.crossTileID];ai&&X.markUsedJustification(I,ai.anchor,Rt,gr);var Qr=X.placedOrientations[Rt.crossTileID];Qr&&(X.markUsedJustification(I,"left",Rt,Qr),X.markUsedOrientation(I,Qr,Rt))}if(er){var gi=Un(An.icon),Mi=!(it&&Rt.verticalPlacedIconSymbolIndex&&cr);if(Rt.placedIconSymbolIndex>=0){var Yi=Mi?gi:Nn;Lt(I.icon,Rt.numIconVertices,Yi),I.icon.placedSymbolArray.get(Rt.placedIconSymbolIndex).hidden=An.icon.isHidden()}if(Rt.verticalPlacedIconSymbolIndex>=0){var ci=Mi?Nn:gi;Lt(I.icon,Rt.numVerticalIconVertices,ci),I.icon.placedSymbolArray.get(Rt.verticalPlacedIconSymbolIndex).hidden=An.icon.isHidden()}}if(I.hasIconCollisionBoxData()||I.hasTextCollisionBoxData()){var zi=I.collisionArrays[Nt];if(zi){var Li=new i.Point(0,0);if(zi.textBox||zi.verticalTextBox){var Qi=!0;if(Se){var Ri=X.variableOffsets[dn];Ri?(Li=Fr(Ri.anchor,Ri.width,Ri.height,Ri.textOffset,Ri.textBoxScale),Ue&&Li._rotate(Xe?X.transform.angle:-X.transform.angle)):Qi=!1}zi.textBox&&qr(I.textCollisionBox.collisionVertexArray,An.text.placed,!Qi||cr,Li.x,Li.y),zi.verticalTextBox&&qr(I.textCollisionBox.collisionVertexArray,An.text.placed,!Qi||Yr,Li.x,Li.y)}var ea=Boolean(!Yr&&zi.verticalIconBox);zi.iconBox&&qr(I.iconCollisionBox.collisionVertexArray,An.icon.placed,ea,it?Li.x:0,it?Li.y:0),zi.verticalIconBox&&qr(I.iconCollisionBox.collisionVertexArray,An.icon.placed,!ea,it?Li.x:0,it?Li.y:0)}}},Mt=0;MtI},pr.prototype.setStale=function(){this.stale=!0};var _i=Math.pow(2,25),cn=Math.pow(2,24),jn=Math.pow(2,17),jt=Math.pow(2,16),fn=Math.pow(2,9),yn=Math.pow(2,8),$n=Math.pow(2,1);function Un(I){if(I.opacity===0&&!I.placed)return 0;if(I.opacity===1&&I.placed)return 4294967295;var j=I.placed?1:0,V=Math.floor(127*I.opacity);return V*_i+j*cn+V*jn+j*jt+V*fn+j*yn+V*$n+j}var Nn=0,Rn=function(I){this._sortAcrossTiles=I.layout.get("symbol-z-order")!=="viewport-y"&&I.layout.get("symbol-sort-key").constantOr(1)!==void 0,this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[]};Rn.prototype.continuePlacement=function(I,j,V,X,se){for(var he=this._bucketParts;this._currentTileIndex2};this._currentPlacementIndex>=0;){var ve=j[I[this._currentPlacementIndex]],be=this.placement.collisionIndex.transform.zoom;if(ve.type==="symbol"&&(!ve.minzoom||ve.minzoom<=be)&&(!ve.maxzoom||ve.maxzoom>be)){if(this._inProgressLayer||(this._inProgressLayer=new Rn(ve)),this._inProgressLayer.continuePlacement(V[ve.source],this.placement,this._showCollisionBoxes,ve,he))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0},wn.prototype.commit=function(I){return this.placement.commit(I),this.placement};var kn=512/i.EXTENT/2,Tn=function(I,j,V){this.tileID=I,this.indexedSymbolInstances={},this.bucketInstanceId=V;for(var X=0;XI.overscaledZ)for(var be in ve){var Se=ve[be];Se.tileID.isChildOf(I)&&Se.findMatches(j.symbolInstances,I,se)}else{var Ue=ve[I.scaledTo(Number(he)).key];Ue&&Ue.findMatches(j.symbolInstances,I,se)}}for(var Xe=0;Xe1?"@2x":"",it=i.getJSON(he.transformRequest(he.normalizeSpriteURL(se,Xe,".json"),i.ResourceType.SpriteJSON),function(_t,Mt){it=null,Ue||(Ue=_t,be=Mt,Lt())}),xt=i.getImage(he.transformRequest(he.normalizeSpriteURL(se,Xe,".png"),i.ResourceType.SpriteImage),function(_t,Mt){xt=null,Ue||(Ue=_t,Se=Mt,Lt())});function Lt(){if(Ue)ve(Ue);else if(be&&Se){var _t=i.browser.getImageData(Se),Mt={};for(var yt in be){var Nt=be[yt],Rt=Nt.width,qt=Nt.height,rn=Nt.x,dn=Nt.y,Sn=Nt.sdf,An=Nt.pixelRatio,tr=Nt.stretchX,er=Nt.stretchY,gr=Nt.content,cr=new i.RGBAImage({width:Rt,height:qt});i.RGBAImage.copy(_t,cr,{x:rn,y:dn},{x:0,y:0},{width:Rt,height:qt}),Mt[yt]={data:cr,pixelRatio:An,sdf:Sn,stretchX:tr,stretchY:er,content:gr}}ve(null,Mt)}}return{cancel:function(){it&&(it.cancel(),it=null),xt&&(xt.cancel(),xt=null)}}}(V,this.map._requestManager,function(se,he){if(X._spriteRequest=null,se)X.fire(new i.ErrorEvent(se));else if(he)for(var ve in he)X.imageManager.addImage(ve,he[ve]);X.imageManager.setLoaded(!0),X._availableImages=X.imageManager.listImages(),X.dispatcher.broadcast("setImages",X._availableImages),X.fire(new i.Event("data",{dataType:"style"}))})},j.prototype._validateLayer=function(V){var X=this.sourceCaches[V.source];if(X){var se=V.sourceLayer;if(se){var he=X.getSource();(he.type==="geojson"||he.vectorLayerIds&&he.vectorLayerIds.indexOf(se)===-1)&&this.fire(new i.ErrorEvent(new Error('Source layer "'+se+'" does not exist on source "'+he.id+'" as specified by style layer "'+V.id+'"')))}}},j.prototype.loaded=function(){if(!this._loaded||Object.keys(this._updatedSources).length)return!1;for(var V in this.sourceCaches)if(!this.sourceCaches[V].loaded())return!1;return!!this.imageManager.isLoaded()},j.prototype._serializeLayers=function(V){for(var X=[],se=0,he=V;se0)throw new Error("Unimplemented: "+he.map(function(ve){return ve.command}).join(", ")+".");return se.forEach(function(ve){ve.command!=="setTransition"&&X[ve.command].apply(X,ve.args)}),this.stylesheet=V,!0},j.prototype.addImage=function(V,X){if(this.getImage(V))return this.fire(new i.ErrorEvent(new Error("An image with this name already exists.")));this.imageManager.addImage(V,X),this._availableImages=this.imageManager.listImages(),this._changedImages[V]=!0,this._changed=!0,this.fire(new i.Event("data",{dataType:"style"}))},j.prototype.updateImage=function(V,X){this.imageManager.updateImage(V,X)},j.prototype.getImage=function(V){return this.imageManager.getImage(V)},j.prototype.removeImage=function(V){if(!this.getImage(V))return this.fire(new i.ErrorEvent(new Error("No image with this name exists.")));this.imageManager.removeImage(V),this._availableImages=this.imageManager.listImages(),this._changedImages[V]=!0,this._changed=!0,this.fire(new i.Event("data",{dataType:"style"}))},j.prototype.listImages=function(){return this._checkLoaded(),this.imageManager.listImages()},j.prototype.addSource=function(V,X,se){var he=this;if(se===void 0&&(se={}),this._checkLoaded(),this.sourceCaches[V]!==void 0)throw new Error("There is already a source with this ID");if(!X.type)throw new Error("The type property must be defined, but the only the following properties were given: "+Object.keys(X).join(", ")+".");if(!(["vector","raster","geojson","video","image"].indexOf(X.type)>=0)||!this._validate(i.validateStyle.source,"sources."+V,X,null,se)){this.map&&this.map._collectResourceTiming&&(X.collectResourceTiming=!0);var ve=this.sourceCaches[V]=new He(V,X,this.dispatcher);ve.style=this,ve.setEventedParent(this,function(){return{isSourceLoaded:he.loaded(),source:ve.serialize(),sourceId:V}}),ve.onAdd(this.map),this._changed=!0}},j.prototype.removeSource=function(V){if(this._checkLoaded(),this.sourceCaches[V]===void 0)throw new Error("There is no source with this ID");for(var X in this._layers)if(this._layers[X].source===V)return this.fire(new i.ErrorEvent(new Error('Source "'+V+'" cannot be removed while layer "'+X+'" is using it.')));var se=this.sourceCaches[V];delete this.sourceCaches[V],delete this._updatedSources[V],se.fire(new i.Event("data",{sourceDataType:"metadata",dataType:"source",sourceId:V})),se.setEventedParent(null),se.clearTiles(),se.onRemove&&se.onRemove(this.map),this._changed=!0},j.prototype.setGeoJSONSourceData=function(V,X){this._checkLoaded(),this.sourceCaches[V].getSource().setData(X),this._changed=!0},j.prototype.getSource=function(V){return this.sourceCaches[V]&&this.sourceCaches[V].getSource()},j.prototype.addLayer=function(V,X,se){se===void 0&&(se={}),this._checkLoaded();var he=V.id;if(this.getLayer(he))this.fire(new i.ErrorEvent(new Error('Layer with id "'+he+'" already exists on this map')));else{var ve;if(V.type==="custom"){if(ir(this,i.validateCustomStyleLayer(V)))return;ve=i.createStyleLayer(V)}else{if(typeof V.source=="object"&&(this.addSource(he,V.source),V=i.clone$1(V),V=i.extend(V,{source:he})),this._validate(i.validateStyle.layer,"layers."+he,V,{arrayIndex:-1},se))return;ve=i.createStyleLayer(V),this._validateLayer(ve),ve.setEventedParent(this,{layer:{id:he}}),this._serializedLayers[ve.id]=ve.serialize()}var be=X?this._order.indexOf(X):this._order.length;if(X&&be===-1)this.fire(new i.ErrorEvent(new Error('Layer with id "'+X+'" does not exist on this map.')));else{if(this._order.splice(be,0,he),this._layerOrderChanged=!0,this._layers[he]=ve,this._removedLayers[he]&&ve.source&&ve.type!=="custom"){var Se=this._removedLayers[he];delete this._removedLayers[he],Se.type!==ve.type?this._updatedSources[ve.source]="clear":(this._updatedSources[ve.source]="reload",this.sourceCaches[ve.source].pause())}this._updateLayer(ve),ve.onAdd&&ve.onAdd(this.map)}}},j.prototype.moveLayer=function(V,X){if(this._checkLoaded(),this._changed=!0,this._layers[V]){if(V!==X){var se=this._order.indexOf(V);this._order.splice(se,1);var he=X?this._order.indexOf(X):this._order.length;X&&he===-1?this.fire(new i.ErrorEvent(new Error('Layer with id "'+X+'" does not exist on this map.'))):(this._order.splice(he,0,V),this._layerOrderChanged=!0)}}else this.fire(new i.ErrorEvent(new Error("The layer '"+V+"' does not exist in the map's style and cannot be moved.")))},j.prototype.removeLayer=function(V){this._checkLoaded();var X=this._layers[V];if(X){X.setEventedParent(null);var se=this._order.indexOf(V);this._order.splice(se,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[V]=X,delete this._layers[V],delete this._serializedLayers[V],delete this._updatedLayers[V],delete this._updatedPaintProps[V],X.onRemove&&X.onRemove(this.map)}else this.fire(new i.ErrorEvent(new Error("The layer '"+V+"' does not exist in the map's style and cannot be removed.")))},j.prototype.getLayer=function(V){return this._layers[V]},j.prototype.hasLayer=function(V){return V in this._layers},j.prototype.setLayerZoomRange=function(V,X,se){this._checkLoaded();var he=this.getLayer(V);he?he.minzoom===X&&he.maxzoom===se||(X!=null&&(he.minzoom=X),se!=null&&(he.maxzoom=se),this._updateLayer(he)):this.fire(new i.ErrorEvent(new Error("The layer '"+V+"' does not exist in the map's style and cannot have zoom extent.")))},j.prototype.setFilter=function(V,X,se){se===void 0&&(se={}),this._checkLoaded();var he=this.getLayer(V);if(he){if(!i.deepEqual(he.filter,X))return X==null?(he.filter=void 0,void this._updateLayer(he)):void(this._validate(i.validateStyle.filter,"layers."+he.id+".filter",X,null,se)||(he.filter=i.clone$1(X),this._updateLayer(he)))}else this.fire(new i.ErrorEvent(new Error("The layer '"+V+"' does not exist in the map's style and cannot be filtered.")))},j.prototype.getFilter=function(V){return i.clone$1(this.getLayer(V).filter)},j.prototype.setLayoutProperty=function(V,X,se,he){he===void 0&&(he={}),this._checkLoaded();var ve=this.getLayer(V);ve?i.deepEqual(ve.getLayoutProperty(X),se)||(ve.setLayoutProperty(X,se,he),this._updateLayer(ve)):this.fire(new i.ErrorEvent(new Error("The layer '"+V+"' does not exist in the map's style and cannot be styled.")))},j.prototype.getLayoutProperty=function(V,X){var se=this.getLayer(V);if(se)return se.getLayoutProperty(X);this.fire(new i.ErrorEvent(new Error("The layer '"+V+"' does not exist in the map's style.")))},j.prototype.setPaintProperty=function(V,X,se,he){he===void 0&&(he={}),this._checkLoaded();var ve=this.getLayer(V);ve?i.deepEqual(ve.getPaintProperty(X),se)||(ve.setPaintProperty(X,se,he)&&this._updateLayer(ve),this._changed=!0,this._updatedPaintProps[V]=!0):this.fire(new i.ErrorEvent(new Error("The layer '"+V+"' does not exist in the map's style and cannot be styled.")))},j.prototype.getPaintProperty=function(V,X){return this.getLayer(V).getPaintProperty(X)},j.prototype.setFeatureState=function(V,X){this._checkLoaded();var se=V.source,he=V.sourceLayer,ve=this.sourceCaches[se];if(ve!==void 0){var be=ve.getSource().type;be==="geojson"&&he?this.fire(new i.ErrorEvent(new Error("GeoJSON sources cannot have a sourceLayer parameter."))):be!=="vector"||he?(V.id===void 0&&this.fire(new i.ErrorEvent(new Error("The feature id parameter must be provided."))),ve.setFeatureState(he,V.id,X)):this.fire(new i.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new i.ErrorEvent(new Error("The source '"+se+"' does not exist in the map's style.")))},j.prototype.removeFeatureState=function(V,X){this._checkLoaded();var se=V.source,he=this.sourceCaches[se];if(he!==void 0){var ve=he.getSource().type,be=ve==="vector"?V.sourceLayer:void 0;ve!=="vector"||be?X&&typeof V.id!="string"&&typeof V.id!="number"?this.fire(new i.ErrorEvent(new Error("A feature id is requred to remove its specific state property."))):he.removeFeatureState(be,V.id,X):this.fire(new i.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new i.ErrorEvent(new Error("The source '"+se+"' does not exist in the map's style.")))},j.prototype.getFeatureState=function(V){this._checkLoaded();var X=V.source,se=V.sourceLayer,he=this.sourceCaches[X];if(he!==void 0){if(he.getSource().type!=="vector"||se)return V.id===void 0&&this.fire(new i.ErrorEvent(new Error("The feature id parameter must be provided."))),he.getFeatureState(se,V.id);this.fire(new i.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new i.ErrorEvent(new Error("The source '"+X+"' does not exist in the map's style.")))},j.prototype.getTransition=function(){return i.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)},j.prototype.serialize=function(){return i.filterObject({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,light:this.stylesheet.light,center:this.stylesheet.center,zoom:this.stylesheet.zoom,bearing:this.stylesheet.bearing,pitch:this.stylesheet.pitch,sprite:this.stylesheet.sprite,glyphs:this.stylesheet.glyphs,transition:this.stylesheet.transition,sources:i.mapObject(this.sourceCaches,function(V){return V.serialize()}),layers:this._serializeLayers(this._order)},function(V){return V!==void 0})},j.prototype._updateLayer=function(V){this._updatedLayers[V.id]=!0,V.source&&!this._updatedSources[V.source]&&this.sourceCaches[V.source].getSource().type!=="raster"&&(this._updatedSources[V.source]="reload",this.sourceCaches[V.source].pause()),this._changed=!0},j.prototype._flattenAndSortRenderedFeatures=function(V){for(var X=this,se=function(gr){return X._layers[gr].type==="fill-extrusion"},he={},ve=[],be=this._order.length-1;be>=0;be--){var Se=this._order[be];if(se(Se)){he[Se]=be;for(var Ue=0,Xe=V;Ue=0;yt--){var Nt=this._order[yt];if(se(Nt))for(var Rt=ve.length-1;Rt>=0;Rt--){var qt=ve[Rt].feature;if(he[qt.layer.id] 0.5) {gl_FragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {gl_FragColor*=.1;}}","attribute vec2 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_anchor_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);gl_Position=u_matrix*vec4(a_pos,0.0,1.0);gl_Position.xy+=(a_extrude+a_shift)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}"),Ja=ba("varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}","attribute vec2 a_pos;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}"),Ao=ba("uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}","attribute vec2 a_pos;varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,0,1);}"),fs=ba(`#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float opacity +gl_FragColor=color*opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`attribute vec2 a_pos;uniform mat4 u_matrix; +#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float opacity +gl_Position=u_matrix*vec4(a_pos,0,1);}`),ya=ba(`varying vec2 v_pos; +#pragma mapbox: define highp vec4 outline_color +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize highp vec4 outline_color +#pragma mapbox: initialize lowp float opacity +float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=outline_color*(alpha*opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos; +#pragma mapbox: define highp vec4 outline_color +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize highp vec4 outline_color +#pragma mapbox: initialize lowp float opacity +gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}`),xa=ba(`uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos; +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +void main() { +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=mix(color1,color2,u_fade)*alpha*opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos; +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +#pragma mapbox: define lowp float pixel_ratio_from +#pragma mapbox: define lowp float pixel_ratio_to +void main() { +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +#pragma mapbox: initialize lowp float pixel_ratio_from +#pragma mapbox: initialize lowp float pixel_ratio_to +vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}`),Zo=ba(`uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b; +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +void main() { +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_fade)*opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b; +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +#pragma mapbox: define lowp float pixel_ratio_from +#pragma mapbox: define lowp float pixel_ratio_to +void main() { +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +#pragma mapbox: initialize lowp float pixel_ratio_from +#pragma mapbox: initialize lowp float pixel_ratio_to +vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}`),oa=ba(`varying vec4 v_color;void main() {gl_FragColor=v_color; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;attribute vec2 a_pos;attribute vec4 a_normal_ed;varying vec4 v_color; +#pragma mapbox: define highp float base +#pragma mapbox: define highp float height +#pragma mapbox: define highp vec4 color +void main() { +#pragma mapbox: initialize highp float base +#pragma mapbox: initialize highp float height +#pragma mapbox: initialize highp vec4 color +vec3 normal=a_normal_ed.xyz;base=max(0.0,base);height=max(0.0,height);float t=mod(normal.x,2.0);gl_Position=u_matrix*vec4(a_pos,t > 0.0 ? height : base,1);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal/16384.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}`),hs=ba(`uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting; +#pragma mapbox: define lowp float base +#pragma mapbox: define lowp float height +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +#pragma mapbox: define lowp float pixel_ratio_from +#pragma mapbox: define lowp float pixel_ratio_to +void main() { +#pragma mapbox: initialize lowp float base +#pragma mapbox: initialize lowp float height +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +#pragma mapbox: initialize lowp float pixel_ratio_from +#pragma mapbox: initialize lowp float pixel_ratio_to +vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);gl_FragColor=mixedColor*v_lighting; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec2 a_pos;attribute vec4 a_normal_ed;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting; +#pragma mapbox: define lowp float base +#pragma mapbox: define lowp float height +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +#pragma mapbox: define lowp float pixel_ratio_from +#pragma mapbox: define lowp float pixel_ratio_to +void main() { +#pragma mapbox: initialize lowp float base +#pragma mapbox: initialize lowp float height +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +#pragma mapbox: initialize lowp float pixel_ratio_from +#pragma mapbox: initialize lowp float pixel_ratio_to +vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=a_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;base=max(0.0,base);height=max(0.0,height);float t=mod(normal.x,2.0);float z=t > 0.0 ? height : base;gl_Position=u_matrix*vec4(a_pos,z,1);vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0 +? a_pos +: vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}`),bs=ba(`#ifdef GL_ES +precision highp float; +#endif +uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform float u_maxzoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggeration=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))/ pow(2.0,(u_zoom-u_maxzoom)*exaggeration+19.2562-u_zoom);gl_FragColor=clamp(vec4(deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,"uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}"),so=ba(`uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent; +#define PI 3.141592653589793 +void main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,"uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;}"),Jo=ba(`uniform lowp float u_device_pixel_ratio;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale; +#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);gl_FragColor=color*(alpha*opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,` +#define scale 0.015873016 +attribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_linesofar; +#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define mediump float gapwidth +#pragma mapbox: define lowp float offset +#pragma mapbox: define mediump float width +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump float gapwidth +#pragma mapbox: initialize lowp float offset +#pragma mapbox: initialize mediump float width +float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}`),_s=ba(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp float v_lineprogress; +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture2D(u_image,vec2(v_lineprogress,0.5));gl_FragColor=color*(alpha*opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,` +#define MAX_LINE_DISTANCE 32767.0 +#define scale 0.015873016 +attribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_lineprogress; +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define mediump float gapwidth +#pragma mapbox: define lowp float offset +#pragma mapbox: define mediump float width +void main() { +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump float gapwidth +#pragma mapbox: initialize lowp float offset +#pragma mapbox: initialize mediump float width +float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_lineprogress=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0/MAX_LINE_DISTANCE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}`),Ls=ba(`uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width; +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +#pragma mapbox: define lowp float pixel_ratio_from +#pragma mapbox: define lowp float pixel_ratio_to +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +#pragma mapbox: initialize lowp float pixel_ratio_from +#pragma mapbox: initialize lowp float pixel_ratio_to +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);gl_FragColor=color*alpha*opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,` +#define scale 0.015873016 +#define LINE_DISTANCE_SCALE 2.0 +attribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width; +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float offset +#pragma mapbox: define mediump float gapwidth +#pragma mapbox: define mediump float width +#pragma mapbox: define lowp float floorwidth +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +#pragma mapbox: define lowp float pixel_ratio_from +#pragma mapbox: define lowp float pixel_ratio_to +void main() { +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float offset +#pragma mapbox: initialize mediump float gapwidth +#pragma mapbox: initialize mediump float width +#pragma mapbox: initialize lowp float floorwidth +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +#pragma mapbox: initialize lowp float pixel_ratio_from +#pragma mapbox: initialize lowp float pixel_ratio_to +float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}`),Oo=ba(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale; +#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define mediump float width +#pragma mapbox: define lowp float floorwidth +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump float width +#pragma mapbox: initialize lowp float floorwidth +float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture2D(u_image,v_tex_a).a;float sdfdist_b=texture2D(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);gl_FragColor=color*(alpha*opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,` +#define scale 0.015873016 +#define LINE_DISTANCE_SCALE 2.0 +attribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale; +#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define mediump float gapwidth +#pragma mapbox: define lowp float offset +#pragma mapbox: define mediump float width +#pragma mapbox: define lowp float floorwidth +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump float gapwidth +#pragma mapbox: initialize lowp float offset +#pragma mapbox: initialize mediump float width +#pragma mapbox: initialize lowp float floorwidth +float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}`),Ka=ba(`uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);gl_FragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,"uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos0=(((a_texture_pos/8192.0)-0.5)/u_buffer_scale )+0.5;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}"),$o=ba(`uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity; +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize lowp float opacity +lowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;varying vec2 v_tex;varying float v_fade_opacity; +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize lowp float opacity +vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ? +camera_to_anchor_distance/u_camera_to_center_distance : +u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0),0.0,1.0);v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;v_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));}`),ic=ba(`#define SDF_PX 8.0 +uniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1; +#pragma mapbox: define highp vec4 fill_color +#pragma mapbox: define highp vec4 halo_color +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float halo_width +#pragma mapbox: define lowp float halo_blur +void main() { +#pragma mapbox: initialize highp vec4 fill_color +#pragma mapbox: initialize highp vec4 halo_color +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float halo_width +#pragma mapbox: initialize lowp float halo_blur +float EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;varying vec2 v_data0;varying vec3 v_data1; +#pragma mapbox: define highp vec4 fill_color +#pragma mapbox: define highp vec4 halo_color +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float halo_width +#pragma mapbox: define lowp float halo_blur +void main() { +#pragma mapbox: initialize highp vec4 fill_color +#pragma mapbox: initialize highp vec4 halo_color +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float halo_width +#pragma mapbox: initialize lowp float halo_blur +vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ? +camera_to_anchor_distance/u_camera_to_center_distance : +u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}`),Mc=ba(`#define SDF_PX 8.0 +#define SDF 1.0 +#define ICON 0.0 +uniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1; +#pragma mapbox: define highp vec4 fill_color +#pragma mapbox: define highp vec4 halo_color +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float halo_width +#pragma mapbox: define lowp float halo_blur +void main() { +#pragma mapbox: initialize highp vec4 fill_color +#pragma mapbox: initialize highp vec4 halo_color +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float halo_width +#pragma mapbox: initialize lowp float halo_blur +float fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +return;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;varying vec4 v_data0;varying vec4 v_data1; +#pragma mapbox: define highp vec4 fill_color +#pragma mapbox: define highp vec4 halo_color +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float halo_width +#pragma mapbox: define lowp float halo_blur +void main() { +#pragma mapbox: initialize highp vec4 fill_color +#pragma mapbox: initialize highp vec4 halo_color +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float halo_width +#pragma mapbox: initialize lowp float halo_blur +vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ? +camera_to_anchor_distance/u_camera_to_center_distance : +u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}`);function ba(I,j){var V=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,X={};return{fragmentSource:I=I.replace(V,function(se,he,ve,be,Se){return X[Se]=!0,he==="define"?` +#ifndef HAS_UNIFORM_u_`+Se+` +varying `+ve+" "+be+" "+Se+`; +#else +uniform `+ve+" "+be+" u_"+Se+`; +#endif +`:` +#ifdef HAS_UNIFORM_u_`+Se+` + `+ve+" "+be+" "+Se+" = u_"+Se+`; +#endif +`}),vertexSource:j=j.replace(V,function(se,he,ve,be,Se){var Ue=be==="float"?"vec2":"vec4",Xe=Se.match(/color/)?"color":Ue;return X[Se]?he==="define"?` +#ifndef HAS_UNIFORM_u_`+Se+` +uniform lowp float u_`+Se+`_t; +attribute `+ve+" "+Ue+" a_"+Se+`; +varying `+ve+" "+be+" "+Se+`; +#else +uniform `+ve+" "+be+" u_"+Se+`; +#endif +`:Xe==="vec4"?` +#ifndef HAS_UNIFORM_u_`+Se+` + `+Se+" = a_"+Se+`; +#else + `+ve+" "+be+" "+Se+" = u_"+Se+`; +#endif +`:` +#ifndef HAS_UNIFORM_u_`+Se+` + `+Se+" = unpack_mix_"+Xe+"(a_"+Se+", u_"+Se+`_t); +#else + `+ve+" "+be+" "+Se+" = u_"+Se+`; +#endif +`:he==="define"?` +#ifndef HAS_UNIFORM_u_`+Se+` +uniform lowp float u_`+Se+`_t; +attribute `+ve+" "+Ue+" a_"+Se+`; +#else +uniform `+ve+" "+be+" u_"+Se+`; +#endif +`:Xe==="vec4"?` +#ifndef HAS_UNIFORM_u_`+Se+` + `+ve+" "+be+" "+Se+" = a_"+Se+`; +#else + `+ve+" "+be+" "+Se+" = u_"+Se+`; +#endif +`:` +#ifndef HAS_UNIFORM_u_`+Se+` + `+ve+" "+be+" "+Se+" = unpack_mix_"+Xe+"(a_"+Se+", u_"+Se+`_t); +#else + `+ve+" "+be+" "+Se+" = u_"+Se+`; +#endif +`})}}var ju=Object.freeze({__proto__:null,prelude:Nr,background:ri,backgroundPattern:ji,circle:Bi,clippingMask:Sr,heatmap:ui,heatmapTexture:si,collisionBox:ta,collisionCircle:Ja,debug:Ao,fill:fs,fillOutline:ya,fillOutlinePattern:xa,fillPattern:Zo,fillExtrusion:oa,fillExtrusionPattern:hs,hillshadePrepare:bs,hillshade:so,line:Jo,lineGradient:_s,linePattern:Ls,lineSDF:Oo,raster:Ka,symbolIcon:$o,symbolSDF:ic,symbolTextAndIcon:Mc}),Wl=function(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null};Wl.prototype.bind=function(I,j,V,X,se,he,ve,be){this.context=I;for(var Se=this.boundPaintVertexBuffers.length!==X.length,Ue=0;!Se&&Ue>16,be>>16],u_pixel_coord_lower:[65535&ve,65535&be]}}Sc.prototype.draw=function(I,j,V,X,se,he,ve,be,Se,Ue,Xe,it,xt,Lt,_t,Mt){var yt,Nt=I.gl;if(!this.failedToCreate){for(var Rt in I.program.set(this.program),I.setDepthMode(V),I.setStencilMode(X),I.setColorMode(se),I.setCullFace(he),this.fixedUniforms)this.fixedUniforms[Rt].set(ve[Rt]);Lt&&Lt.setUniforms(I,this.binderUniforms,it,{zoom:xt});for(var qt=(yt={},yt[Nt.LINES]=2,yt[Nt.TRIANGLES]=3,yt[Nt.LINE_STRIP]=1,yt)[j],rn=0,dn=Xe.get();rn0?1-1/(1.001-ve):-ve),u_contrast_factor:(he=se.paint.get("raster-contrast"),he>0?1/(1-he):1+he),u_spin_weights:pt(se.paint.get("raster-hue-rotate"))};var he,ve};function pt(I){I*=Math.PI/180;var j=Math.sin(I),V=Math.cos(I);return[(2*V+1)/3,(-Math.sqrt(3)*j-V+1)/3,(Math.sqrt(3)*j-V+1)/3]}var Ct,Qt=function(I,j,V,X,se,he,ve,be,Se,Ue){var Xe=se.transform;return{u_is_size_zoom_constant:+(I==="constant"||I==="source"),u_is_size_feature_constant:+(I==="constant"||I==="camera"),u_size_t:j?j.uSizeT:0,u_size:j?j.uSize:0,u_camera_to_center_distance:Xe.cameraToCenterDistance,u_pitch:Xe.pitch/360*2*Math.PI,u_rotate_symbol:+V,u_aspect_ratio:Xe.width/Xe.height,u_fade_change:se.options.fadeDuration?se.symbolFadeChange:1,u_matrix:he,u_label_plane_matrix:ve,u_coord_matrix:be,u_is_text:+Se,u_pitch_with_map:+X,u_texsize:Ue,u_texture:0}},en=function(I,j,V,X,se,he,ve,be,Se,Ue,Xe){var it=se.transform;return i.extend(Qt(I,j,V,X,se,he,ve,be,Se,Ue),{u_gamma_scale:X?Math.cos(it._pitch)*it.cameraToCenterDistance:1,u_device_pixel_ratio:i.browser.devicePixelRatio,u_is_halo:+Xe})},Yt=function(I,j,V,X,se,he,ve,be,Se,Ue){return i.extend(en(I,j,V,X,se,he,ve,be,!0,Se,!0),{u_texsize_icon:Ue,u_texture_icon:1})},an=function(I,j,V){return{u_matrix:I,u_opacity:j,u_color:V}},hn=function(I,j,V,X,se,he){return i.extend(function(ve,be,Se,Ue){var Xe=Se.imageManager.getPattern(ve.from.toString()),it=Se.imageManager.getPattern(ve.to.toString()),xt=Se.imageManager.getPixelSize(),Lt=xt.width,_t=xt.height,Mt=Math.pow(2,Ue.tileID.overscaledZ),yt=Ue.tileSize*Math.pow(2,Se.transform.tileZoom)/Mt,Nt=yt*(Ue.tileID.canonical.x+Ue.tileID.wrap*Mt),Rt=yt*Ue.tileID.canonical.y;return{u_image:0,u_pattern_tl_a:Xe.tl,u_pattern_br_a:Xe.br,u_pattern_tl_b:it.tl,u_pattern_br_b:it.br,u_texsize:[Lt,_t],u_mix:be.t,u_pattern_size_a:Xe.displaySize,u_pattern_size_b:it.displaySize,u_scale_a:be.fromScale,u_scale_b:be.toScale,u_tile_units_to_pixels:1/Ln(Ue,1,Se.transform.tileZoom),u_pixel_coord_upper:[Nt>>16,Rt>>16],u_pixel_coord_lower:[65535&Nt,65535&Rt]}}(X,he,V,se),{u_matrix:I,u_opacity:j})},xn={fillExtrusion:function(I,j){return{u_matrix:new i.UniformMatrix4f(I,j.u_matrix),u_lightpos:new i.Uniform3f(I,j.u_lightpos),u_lightintensity:new i.Uniform1f(I,j.u_lightintensity),u_lightcolor:new i.Uniform3f(I,j.u_lightcolor),u_vertical_gradient:new i.Uniform1f(I,j.u_vertical_gradient),u_opacity:new i.Uniform1f(I,j.u_opacity)}},fillExtrusionPattern:function(I,j){return{u_matrix:new i.UniformMatrix4f(I,j.u_matrix),u_lightpos:new i.Uniform3f(I,j.u_lightpos),u_lightintensity:new i.Uniform1f(I,j.u_lightintensity),u_lightcolor:new i.Uniform3f(I,j.u_lightcolor),u_vertical_gradient:new i.Uniform1f(I,j.u_vertical_gradient),u_height_factor:new i.Uniform1f(I,j.u_height_factor),u_image:new i.Uniform1i(I,j.u_image),u_texsize:new i.Uniform2f(I,j.u_texsize),u_pixel_coord_upper:new i.Uniform2f(I,j.u_pixel_coord_upper),u_pixel_coord_lower:new i.Uniform2f(I,j.u_pixel_coord_lower),u_scale:new i.Uniform3f(I,j.u_scale),u_fade:new i.Uniform1f(I,j.u_fade),u_opacity:new i.Uniform1f(I,j.u_opacity)}},fill:function(I,j){return{u_matrix:new i.UniformMatrix4f(I,j.u_matrix)}},fillPattern:function(I,j){return{u_matrix:new i.UniformMatrix4f(I,j.u_matrix),u_image:new i.Uniform1i(I,j.u_image),u_texsize:new i.Uniform2f(I,j.u_texsize),u_pixel_coord_upper:new i.Uniform2f(I,j.u_pixel_coord_upper),u_pixel_coord_lower:new i.Uniform2f(I,j.u_pixel_coord_lower),u_scale:new i.Uniform3f(I,j.u_scale),u_fade:new i.Uniform1f(I,j.u_fade)}},fillOutline:function(I,j){return{u_matrix:new i.UniformMatrix4f(I,j.u_matrix),u_world:new i.Uniform2f(I,j.u_world)}},fillOutlinePattern:function(I,j){return{u_matrix:new i.UniformMatrix4f(I,j.u_matrix),u_world:new i.Uniform2f(I,j.u_world),u_image:new i.Uniform1i(I,j.u_image),u_texsize:new i.Uniform2f(I,j.u_texsize),u_pixel_coord_upper:new i.Uniform2f(I,j.u_pixel_coord_upper),u_pixel_coord_lower:new i.Uniform2f(I,j.u_pixel_coord_lower),u_scale:new i.Uniform3f(I,j.u_scale),u_fade:new i.Uniform1f(I,j.u_fade)}},circle:function(I,j){return{u_camera_to_center_distance:new i.Uniform1f(I,j.u_camera_to_center_distance),u_scale_with_map:new i.Uniform1i(I,j.u_scale_with_map),u_pitch_with_map:new i.Uniform1i(I,j.u_pitch_with_map),u_extrude_scale:new i.Uniform2f(I,j.u_extrude_scale),u_device_pixel_ratio:new i.Uniform1f(I,j.u_device_pixel_ratio),u_matrix:new i.UniformMatrix4f(I,j.u_matrix)}},collisionBox:function(I,j){return{u_matrix:new i.UniformMatrix4f(I,j.u_matrix),u_camera_to_center_distance:new i.Uniform1f(I,j.u_camera_to_center_distance),u_pixels_to_tile_units:new i.Uniform1f(I,j.u_pixels_to_tile_units),u_extrude_scale:new i.Uniform2f(I,j.u_extrude_scale),u_overscale_factor:new i.Uniform1f(I,j.u_overscale_factor)}},collisionCircle:function(I,j){return{u_matrix:new i.UniformMatrix4f(I,j.u_matrix),u_inv_matrix:new i.UniformMatrix4f(I,j.u_inv_matrix),u_camera_to_center_distance:new i.Uniform1f(I,j.u_camera_to_center_distance),u_viewport_size:new i.Uniform2f(I,j.u_viewport_size)}},debug:function(I,j){return{u_color:new i.UniformColor(I,j.u_color),u_matrix:new i.UniformMatrix4f(I,j.u_matrix),u_overlay:new i.Uniform1i(I,j.u_overlay),u_overlay_scale:new i.Uniform1f(I,j.u_overlay_scale)}},clippingMask:function(I,j){return{u_matrix:new i.UniformMatrix4f(I,j.u_matrix)}},heatmap:function(I,j){return{u_extrude_scale:new i.Uniform1f(I,j.u_extrude_scale),u_intensity:new i.Uniform1f(I,j.u_intensity),u_matrix:new i.UniformMatrix4f(I,j.u_matrix)}},heatmapTexture:function(I,j){return{u_matrix:new i.UniformMatrix4f(I,j.u_matrix),u_world:new i.Uniform2f(I,j.u_world),u_image:new i.Uniform1i(I,j.u_image),u_color_ramp:new i.Uniform1i(I,j.u_color_ramp),u_opacity:new i.Uniform1f(I,j.u_opacity)}},hillshade:function(I,j){return{u_matrix:new i.UniformMatrix4f(I,j.u_matrix),u_image:new i.Uniform1i(I,j.u_image),u_latrange:new i.Uniform2f(I,j.u_latrange),u_light:new i.Uniform2f(I,j.u_light),u_shadow:new i.UniformColor(I,j.u_shadow),u_highlight:new i.UniformColor(I,j.u_highlight),u_accent:new i.UniformColor(I,j.u_accent)}},hillshadePrepare:function(I,j){return{u_matrix:new i.UniformMatrix4f(I,j.u_matrix),u_image:new i.Uniform1i(I,j.u_image),u_dimension:new i.Uniform2f(I,j.u_dimension),u_zoom:new i.Uniform1f(I,j.u_zoom),u_maxzoom:new i.Uniform1f(I,j.u_maxzoom),u_unpack:new i.Uniform4f(I,j.u_unpack)}},line:function(I,j){return{u_matrix:new i.UniformMatrix4f(I,j.u_matrix),u_ratio:new i.Uniform1f(I,j.u_ratio),u_device_pixel_ratio:new i.Uniform1f(I,j.u_device_pixel_ratio),u_units_to_pixels:new i.Uniform2f(I,j.u_units_to_pixels)}},lineGradient:function(I,j){return{u_matrix:new i.UniformMatrix4f(I,j.u_matrix),u_ratio:new i.Uniform1f(I,j.u_ratio),u_device_pixel_ratio:new i.Uniform1f(I,j.u_device_pixel_ratio),u_units_to_pixels:new i.Uniform2f(I,j.u_units_to_pixels),u_image:new i.Uniform1i(I,j.u_image)}},linePattern:function(I,j){return{u_matrix:new i.UniformMatrix4f(I,j.u_matrix),u_texsize:new i.Uniform2f(I,j.u_texsize),u_ratio:new i.Uniform1f(I,j.u_ratio),u_device_pixel_ratio:new i.Uniform1f(I,j.u_device_pixel_ratio),u_image:new i.Uniform1i(I,j.u_image),u_units_to_pixels:new i.Uniform2f(I,j.u_units_to_pixels),u_scale:new i.Uniform3f(I,j.u_scale),u_fade:new i.Uniform1f(I,j.u_fade)}},lineSDF:function(I,j){return{u_matrix:new i.UniformMatrix4f(I,j.u_matrix),u_ratio:new i.Uniform1f(I,j.u_ratio),u_device_pixel_ratio:new i.Uniform1f(I,j.u_device_pixel_ratio),u_units_to_pixels:new i.Uniform2f(I,j.u_units_to_pixels),u_patternscale_a:new i.Uniform2f(I,j.u_patternscale_a),u_patternscale_b:new i.Uniform2f(I,j.u_patternscale_b),u_sdfgamma:new i.Uniform1f(I,j.u_sdfgamma),u_image:new i.Uniform1i(I,j.u_image),u_tex_y_a:new i.Uniform1f(I,j.u_tex_y_a),u_tex_y_b:new i.Uniform1f(I,j.u_tex_y_b),u_mix:new i.Uniform1f(I,j.u_mix)}},raster:function(I,j){return{u_matrix:new i.UniformMatrix4f(I,j.u_matrix),u_tl_parent:new i.Uniform2f(I,j.u_tl_parent),u_scale_parent:new i.Uniform1f(I,j.u_scale_parent),u_buffer_scale:new i.Uniform1f(I,j.u_buffer_scale),u_fade_t:new i.Uniform1f(I,j.u_fade_t),u_opacity:new i.Uniform1f(I,j.u_opacity),u_image0:new i.Uniform1i(I,j.u_image0),u_image1:new i.Uniform1i(I,j.u_image1),u_brightness_low:new i.Uniform1f(I,j.u_brightness_low),u_brightness_high:new i.Uniform1f(I,j.u_brightness_high),u_saturation_factor:new i.Uniform1f(I,j.u_saturation_factor),u_contrast_factor:new i.Uniform1f(I,j.u_contrast_factor),u_spin_weights:new i.Uniform3f(I,j.u_spin_weights)}},symbolIcon:function(I,j){return{u_is_size_zoom_constant:new i.Uniform1i(I,j.u_is_size_zoom_constant),u_is_size_feature_constant:new i.Uniform1i(I,j.u_is_size_feature_constant),u_size_t:new i.Uniform1f(I,j.u_size_t),u_size:new i.Uniform1f(I,j.u_size),u_camera_to_center_distance:new i.Uniform1f(I,j.u_camera_to_center_distance),u_pitch:new i.Uniform1f(I,j.u_pitch),u_rotate_symbol:new i.Uniform1i(I,j.u_rotate_symbol),u_aspect_ratio:new i.Uniform1f(I,j.u_aspect_ratio),u_fade_change:new i.Uniform1f(I,j.u_fade_change),u_matrix:new i.UniformMatrix4f(I,j.u_matrix),u_label_plane_matrix:new i.UniformMatrix4f(I,j.u_label_plane_matrix),u_coord_matrix:new i.UniformMatrix4f(I,j.u_coord_matrix),u_is_text:new i.Uniform1i(I,j.u_is_text),u_pitch_with_map:new i.Uniform1i(I,j.u_pitch_with_map),u_texsize:new i.Uniform2f(I,j.u_texsize),u_texture:new i.Uniform1i(I,j.u_texture)}},symbolSDF:function(I,j){return{u_is_size_zoom_constant:new i.Uniform1i(I,j.u_is_size_zoom_constant),u_is_size_feature_constant:new i.Uniform1i(I,j.u_is_size_feature_constant),u_size_t:new i.Uniform1f(I,j.u_size_t),u_size:new i.Uniform1f(I,j.u_size),u_camera_to_center_distance:new i.Uniform1f(I,j.u_camera_to_center_distance),u_pitch:new i.Uniform1f(I,j.u_pitch),u_rotate_symbol:new i.Uniform1i(I,j.u_rotate_symbol),u_aspect_ratio:new i.Uniform1f(I,j.u_aspect_ratio),u_fade_change:new i.Uniform1f(I,j.u_fade_change),u_matrix:new i.UniformMatrix4f(I,j.u_matrix),u_label_plane_matrix:new i.UniformMatrix4f(I,j.u_label_plane_matrix),u_coord_matrix:new i.UniformMatrix4f(I,j.u_coord_matrix),u_is_text:new i.Uniform1i(I,j.u_is_text),u_pitch_with_map:new i.Uniform1i(I,j.u_pitch_with_map),u_texsize:new i.Uniform2f(I,j.u_texsize),u_texture:new i.Uniform1i(I,j.u_texture),u_gamma_scale:new i.Uniform1f(I,j.u_gamma_scale),u_device_pixel_ratio:new i.Uniform1f(I,j.u_device_pixel_ratio),u_is_halo:new i.Uniform1i(I,j.u_is_halo)}},symbolTextAndIcon:function(I,j){return{u_is_size_zoom_constant:new i.Uniform1i(I,j.u_is_size_zoom_constant),u_is_size_feature_constant:new i.Uniform1i(I,j.u_is_size_feature_constant),u_size_t:new i.Uniform1f(I,j.u_size_t),u_size:new i.Uniform1f(I,j.u_size),u_camera_to_center_distance:new i.Uniform1f(I,j.u_camera_to_center_distance),u_pitch:new i.Uniform1f(I,j.u_pitch),u_rotate_symbol:new i.Uniform1i(I,j.u_rotate_symbol),u_aspect_ratio:new i.Uniform1f(I,j.u_aspect_ratio),u_fade_change:new i.Uniform1f(I,j.u_fade_change),u_matrix:new i.UniformMatrix4f(I,j.u_matrix),u_label_plane_matrix:new i.UniformMatrix4f(I,j.u_label_plane_matrix),u_coord_matrix:new i.UniformMatrix4f(I,j.u_coord_matrix),u_is_text:new i.Uniform1i(I,j.u_is_text),u_pitch_with_map:new i.Uniform1i(I,j.u_pitch_with_map),u_texsize:new i.Uniform2f(I,j.u_texsize),u_texsize_icon:new i.Uniform2f(I,j.u_texsize_icon),u_texture:new i.Uniform1i(I,j.u_texture),u_texture_icon:new i.Uniform1i(I,j.u_texture_icon),u_gamma_scale:new i.Uniform1f(I,j.u_gamma_scale),u_device_pixel_ratio:new i.Uniform1f(I,j.u_device_pixel_ratio),u_is_halo:new i.Uniform1i(I,j.u_is_halo)}},background:function(I,j){return{u_matrix:new i.UniformMatrix4f(I,j.u_matrix),u_opacity:new i.Uniform1f(I,j.u_opacity),u_color:new i.UniformColor(I,j.u_color)}},backgroundPattern:function(I,j){return{u_matrix:new i.UniformMatrix4f(I,j.u_matrix),u_opacity:new i.Uniform1f(I,j.u_opacity),u_image:new i.Uniform1i(I,j.u_image),u_pattern_tl_a:new i.Uniform2f(I,j.u_pattern_tl_a),u_pattern_br_a:new i.Uniform2f(I,j.u_pattern_br_a),u_pattern_tl_b:new i.Uniform2f(I,j.u_pattern_tl_b),u_pattern_br_b:new i.Uniform2f(I,j.u_pattern_br_b),u_texsize:new i.Uniform2f(I,j.u_texsize),u_mix:new i.Uniform1f(I,j.u_mix),u_pattern_size_a:new i.Uniform2f(I,j.u_pattern_size_a),u_pattern_size_b:new i.Uniform2f(I,j.u_pattern_size_b),u_scale_a:new i.Uniform1f(I,j.u_scale_a),u_scale_b:new i.Uniform1f(I,j.u_scale_b),u_pixel_coord_upper:new i.Uniform2f(I,j.u_pixel_coord_upper),u_pixel_coord_lower:new i.Uniform2f(I,j.u_pixel_coord_lower),u_tile_units_to_pixels:new i.Uniform1f(I,j.u_tile_units_to_pixels)}}};function _n(I,j,V,X,se,he,ve){for(var be=I.context,Se=be.gl,Ue=I.useProgram("collisionBox"),Xe=[],it=0,xt=0,Lt=0;Lt0){var rn=i.create(),dn=Nt;i.mul(rn,yt.placementInvProjMatrix,I.transform.glCoordMatrix),i.mul(rn,rn,yt.placementViewportMatrix),Xe.push({circleArray:qt,circleOffset:xt,transform:dn,invTransform:rn}),xt=it+=qt.length/4}Rt&&Ue.draw(be,Se.LINES,dt.disabled,Pe.disabled,I.colorModeForRenderPass(),Ae.disabled,Yl(Nt,I.transform,Mt),V.id,Rt.layoutVertexBuffer,Rt.indexBuffer,Rt.segments,null,I.transform.zoom,null,null,Rt.collisionVertexBuffer)}}if(ve&&Xe.length){var Sn=I.useProgram("collisionCircle"),An=new i.StructArrayLayout2f1f2i16;An.resize(4*it),An._trim();for(var tr=0,er=0,gr=Xe;er=0&&(_t[yt.associatedIconIndex]={shiftedAnchor:gr,angle:cr})}else vr(yt.numGlyphs,xt)}if(Xe){Lt.clear();for(var ii=I.icon.placedSymbolArray,Ti=0;Ti0){var ve=i.browser.now(),be=(ve-I.timeAdded)/he,Se=j?(ve-j.timeAdded)/he:-1,Ue=V.getSource(),Xe=se.coveringZoomLevel({tileSize:Ue.tileSize,roundZoom:Ue.roundZoom}),it=!j||Math.abs(j.tileID.overscaledZ-Xe)>Math.abs(I.tileID.overscaledZ-Xe),xt=it&&I.refreshedUponExpiration?1:i.clamp(it?be:1-Se,0,1);return I.refreshedUponExpiration&&be>=1&&(I.refreshedUponExpiration=!1),j?{opacity:1,mix:1-xt}:{opacity:xt,mix:0}}return{opacity:1,mix:0}}var ca=new i.Color(1,0,0,1),lo=new i.Color(0,1,0,1),io=new i.Color(0,0,1,1),za=new i.Color(1,0,1,1),Ra=new i.Color(0,1,1,1);function ao(I){var j=I.transform.padding;Lo(I,I.transform.height-(j.top||0),3,ca),Lo(I,j.bottom||0,3,lo),Ko(I,j.left||0,3,io),Ko(I,I.transform.width-(j.right||0),3,za);var V=I.transform.centerPoint;(function(X,se,he,ve){Qo(X,se-1,he-10,2,20,ve),Qo(X,se-10,he-1,20,2,ve)})(I,V.x,I.transform.height-V.y,Ra)}function Lo(I,j,V,X){Qo(I,0,j+V/2,I.transform.width,V,X)}function Ko(I,j,V,X){Qo(I,j-V/2,0,V,I.transform.height,X)}function Qo(I,j,V,X,se,he){var ve=I.context,be=ve.gl;be.enable(be.SCISSOR_TEST),be.scissor(j*i.browser.devicePixelRatio,V*i.browser.devicePixelRatio,X*i.browser.devicePixelRatio,se*i.browser.devicePixelRatio),ve.clear({color:he}),be.disable(be.SCISSOR_TEST)}function es(I,j,V){var X=I.context,se=X.gl,he=V.posMatrix,ve=I.useProgram("debug"),be=dt.disabled,Se=Pe.disabled,Ue=I.colorModeForRenderPass();X.activeTexture.set(se.TEXTURE0),I.emptyTexture.bind(se.LINEAR,se.CLAMP_TO_EDGE),ve.draw(X,se.LINE_STRIP,be,Se,Ue,Ae.disabled,Uu(he,i.Color.red),"$debug",I.debugBuffer,I.tileBorderIndexBuffer,I.debugSegments);var Xe=j.getTileByID(V.key).latestRawTileData,it=Xe&&Xe.byteLength||0,xt=Math.floor(it/1024),Lt=j.getTile(V).tileSize,_t=512/Math.min(Lt,512)*(V.overscaledZ/I.transform.zoom)*.5,Mt=V.canonical.toString();V.overscaledZ!==V.canonical.z&&(Mt+=" => "+V.overscaledZ),function(yt,Nt){yt.initDebugOverlayCanvas();var Rt=yt.debugOverlayCanvas,qt=yt.context.gl,rn=yt.debugOverlayCanvas.getContext("2d");rn.clearRect(0,0,Rt.width,Rt.height),rn.shadowColor="white",rn.shadowBlur=2,rn.lineWidth=1.5,rn.strokeStyle="white",rn.textBaseline="top",rn.font="bold 36px Open Sans, sans-serif",rn.fillText(Nt,5,5),rn.strokeText(Nt,5,5),yt.debugOverlayTexture.update(Rt),yt.debugOverlayTexture.bind(qt.LINEAR,qt.CLAMP_TO_EDGE)}(I,Mt+" "+xt+"kb"),ve.draw(X,se.TRIANGLES,be,Se,Ie.alphaBlended,Ae.disabled,Uu(he,i.Color.transparent,_t),"$debug",I.debugBuffer,I.quadTriangleIndexBuffer,I.debugSegments)}var ts={symbol:function(I,j,V,X,se){if(I.renderPass==="translucent"){var he=Pe.disabled,ve=I.colorModeForRenderPass();V.layout.get("text-variable-anchor")&&function(be,Se,Ue,Xe,it,xt,Lt){for(var _t=Se.transform,Mt=it==="map",yt=xt==="map",Nt=0,Rt=be;Nt256&&this.clearStencil(),V.setColorMode(Ie.disabled),V.setDepthMode(dt.disabled);var se=this.useProgram("clippingMask");this._tileClippingMaskIDs={};for(var he=0,ve=j;he256&&this.clearStencil();var I=this.nextStencilID++,j=this.context.gl;return new Pe({func:j.NOTEQUAL,mask:255},I,255,j.KEEP,j.KEEP,j.REPLACE)},na.prototype.stencilModeForClipping=function(I){var j=this.context.gl;return new Pe({func:j.EQUAL,mask:255},this._tileClippingMaskIDs[I.key],0,j.KEEP,j.KEEP,j.REPLACE)},na.prototype.stencilConfigForOverlap=function(I){var j,V=this.context.gl,X=I.sort(function(Se,Ue){return Ue.overscaledZ-Se.overscaledZ}),se=X[X.length-1].overscaledZ,he=X[0].overscaledZ-se+1;if(he>1){this.currentStencilSource=void 0,this.nextStencilID+he>256&&this.clearStencil();for(var ve={},be=0;be=0;this.currentLayer--){var dn=this.style._layers[X[this.currentLayer]],Sn=se[dn.source],An=Ue[dn.source];this._renderTileClippingMasks(dn,An),this.renderLayer(this,Sn,dn,An)}for(this.renderPass="translucent",this.currentLayer=0;this.currentLayer0?j.pop():null},na.prototype.isPatternMissing=function(I){if(!I)return!1;if(!I.from||!I.to)return!0;var j=this.imageManager.getPattern(I.from.toString()),V=this.imageManager.getPattern(I.to.toString());return!j||!V},na.prototype.useProgram=function(I,j){this.cache=this.cache||{};var V=""+I+(j?j.cacheKey:"")+(this._showOverdrawInspector?"/overdraw":"");return this.cache[V]||(this.cache[V]=new Sc(this.context,ju[I],j,xn[I],this._showOverdrawInspector)),this.cache[V]},na.prototype.setCustomLayerDefaults=function(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault()},na.prototype.setBaseState=function(){var I=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(I.FUNC_ADD)},na.prototype.initDebugOverlayCanvas=function(){if(this.debugOverlayCanvas==null){this.debugOverlayCanvas=i.window.document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512;var I=this.context.gl;this.debugOverlayTexture=new i.Texture(this.context,this.debugOverlayCanvas,I.RGBA)}},na.prototype.destroy=function(){this.emptyTexture.destroy(),this.debugOverlayTexture&&this.debugOverlayTexture.destroy()};var ht=function(I,j){this.points=I,this.planes=j};ht.fromInvProjectionMatrix=function(I,j,V){var X=Math.pow(2,V),se=[[-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]].map(function(ve){return i.transformMat4([],ve,I)}).map(function(ve){return i.scale$1([],ve,1/ve[3]/j*X)}),he=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map(function(ve){var be=i.sub([],se[ve[0]],se[ve[1]]),Se=i.sub([],se[ve[2]],se[ve[1]]),Ue=i.normalize([],i.cross([],be,Se)),Xe=-i.dot(Ue,se[ve[1]]);return Ue.concat(Xe)});return new ht(se,he)};var Ft=function(I,j){this.min=I,this.max=j,this.center=i.scale$2([],i.add([],this.min,this.max),.5)};Ft.prototype.quadrant=function(I){for(var j=[I%2==0,I<2],V=i.clone$2(this.min),X=i.clone$2(this.max),se=0;se=0;if(he===0)return 0;he!==j.length&&(V=!1)}if(V)return 2;for(var be=0;be<3;be++){for(var Se=Number.MAX_VALUE,Ue=-Number.MAX_VALUE,Xe=0;Xethis.max[be]-this.min[be])return 0}return 1};var ln=function(I,j,V,X){if(I===void 0&&(I=0),j===void 0&&(j=0),V===void 0&&(V=0),X===void 0&&(X=0),isNaN(I)||I<0||isNaN(j)||j<0||isNaN(V)||V<0||isNaN(X)||X<0)throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");this.top=I,this.bottom=j,this.left=V,this.right=X};ln.prototype.interpolate=function(I,j,V){return j.top!=null&&I.top!=null&&(this.top=i.number(I.top,j.top,V)),j.bottom!=null&&I.bottom!=null&&(this.bottom=i.number(I.bottom,j.bottom,V)),j.left!=null&&I.left!=null&&(this.left=i.number(I.left,j.left,V)),j.right!=null&&I.right!=null&&(this.right=i.number(I.right,j.right,V)),this},ln.prototype.getCenter=function(I,j){var V=i.clamp((this.left+I-this.right)/2,0,I),X=i.clamp((this.top+j-this.bottom)/2,0,j);return new i.Point(V,X)},ln.prototype.equals=function(I){return this.top===I.top&&this.bottom===I.bottom&&this.left===I.left&&this.right===I.right},ln.prototype.clone=function(){return new ln(this.top,this.bottom,this.left,this.right)},ln.prototype.toJSON=function(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}};var $t=function(I,j,V,X,se){this.tileSize=512,this.maxValidLatitude=85.051129,this._renderWorldCopies=se===void 0||se,this._minZoom=I||0,this._maxZoom=j||22,this._minPitch=V??0,this._maxPitch=X??60,this.setMaxBounds(),this.width=0,this.height=0,this._center=new i.LngLat(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._unmodified=!0,this._edgeInsets=new ln,this._posMatrixCache={},this._alignedPosMatrixCache={}},un={minZoom:{configurable:!0},maxZoom:{configurable:!0},minPitch:{configurable:!0},maxPitch:{configurable:!0},renderWorldCopies:{configurable:!0},worldSize:{configurable:!0},centerOffset:{configurable:!0},size:{configurable:!0},bearing:{configurable:!0},pitch:{configurable:!0},fov:{configurable:!0},zoom:{configurable:!0},center:{configurable:!0},padding:{configurable:!0},centerPoint:{configurable:!0},unmodified:{configurable:!0},point:{configurable:!0}};$t.prototype.clone=function(){var I=new $t(this._minZoom,this._maxZoom,this._minPitch,this.maxPitch,this._renderWorldCopies);return I.tileSize=this.tileSize,I.latRange=this.latRange,I.width=this.width,I.height=this.height,I._center=this._center,I.zoom=this.zoom,I.angle=this.angle,I._fov=this._fov,I._pitch=this._pitch,I._unmodified=this._unmodified,I._edgeInsets=this._edgeInsets.clone(),I._calcMatrices(),I},un.minZoom.get=function(){return this._minZoom},un.minZoom.set=function(I){this._minZoom!==I&&(this._minZoom=I,this.zoom=Math.max(this.zoom,I))},un.maxZoom.get=function(){return this._maxZoom},un.maxZoom.set=function(I){this._maxZoom!==I&&(this._maxZoom=I,this.zoom=Math.min(this.zoom,I))},un.minPitch.get=function(){return this._minPitch},un.minPitch.set=function(I){this._minPitch!==I&&(this._minPitch=I,this.pitch=Math.max(this.pitch,I))},un.maxPitch.get=function(){return this._maxPitch},un.maxPitch.set=function(I){this._maxPitch!==I&&(this._maxPitch=I,this.pitch=Math.min(this.pitch,I))},un.renderWorldCopies.get=function(){return this._renderWorldCopies},un.renderWorldCopies.set=function(I){I===void 0?I=!0:I===null&&(I=!1),this._renderWorldCopies=I},un.worldSize.get=function(){return this.tileSize*this.scale},un.centerOffset.get=function(){return this.centerPoint._sub(this.size._div(2))},un.size.get=function(){return new i.Point(this.width,this.height)},un.bearing.get=function(){return-this.angle/Math.PI*180},un.bearing.set=function(I){var j=-i.wrap(I,-180,180)*Math.PI/180;this.angle!==j&&(this._unmodified=!1,this.angle=j,this._calcMatrices(),this.rotationMatrix=i.create$2(),i.rotate(this.rotationMatrix,this.rotationMatrix,this.angle))},un.pitch.get=function(){return this._pitch/Math.PI*180},un.pitch.set=function(I){var j=i.clamp(I,this.minPitch,this.maxPitch)/180*Math.PI;this._pitch!==j&&(this._unmodified=!1,this._pitch=j,this._calcMatrices())},un.fov.get=function(){return this._fov/Math.PI*180},un.fov.set=function(I){I=Math.max(.01,Math.min(60,I)),this._fov!==I&&(this._unmodified=!1,this._fov=I/180*Math.PI,this._calcMatrices())},un.zoom.get=function(){return this._zoom},un.zoom.set=function(I){var j=Math.min(Math.max(I,this.minZoom),this.maxZoom);this._zoom!==j&&(this._unmodified=!1,this._zoom=j,this.scale=this.zoomScale(j),this.tileZoom=Math.floor(j),this.zoomFraction=j-this.tileZoom,this._constrain(),this._calcMatrices())},un.center.get=function(){return this._center},un.center.set=function(I){I.lat===this._center.lat&&I.lng===this._center.lng||(this._unmodified=!1,this._center=I,this._constrain(),this._calcMatrices())},un.padding.get=function(){return this._edgeInsets.toJSON()},un.padding.set=function(I){this._edgeInsets.equals(I)||(this._unmodified=!1,this._edgeInsets.interpolate(this._edgeInsets,I,1),this._calcMatrices())},un.centerPoint.get=function(){return this._edgeInsets.getCenter(this.width,this.height)},$t.prototype.isPaddingEqual=function(I){return this._edgeInsets.equals(I)},$t.prototype.interpolatePadding=function(I,j,V){this._unmodified=!1,this._edgeInsets.interpolate(I,j,V),this._constrain(),this._calcMatrices()},$t.prototype.coveringZoomLevel=function(I){var j=(I.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/I.tileSize));return Math.max(0,j)},$t.prototype.getVisibleUnwrappedCoordinates=function(I){var j=[new i.UnwrappedTileID(0,I)];if(this._renderWorldCopies)for(var V=this.pointCoordinate(new i.Point(0,0)),X=this.pointCoordinate(new i.Point(this.width,0)),se=this.pointCoordinate(new i.Point(this.width,this.height)),he=this.pointCoordinate(new i.Point(0,this.height)),ve=Math.floor(Math.min(V.x,X.x,se.x,he.x)),be=Math.floor(Math.max(V.x,X.x,se.x,he.x)),Se=ve-1;Se<=be+1;Se++)Se!==0&&j.push(new i.UnwrappedTileID(Se,I));return j},$t.prototype.coveringTiles=function(I){var j=this.coveringZoomLevel(I),V=j;if(I.minzoom!==void 0&&jI.maxzoom&&(j=I.maxzoom);var X=i.MercatorCoordinate.fromLngLat(this.center),se=Math.pow(2,j),he=[se*X.x,se*X.y,0],ve=ht.fromInvProjectionMatrix(this.invProjMatrix,this.worldSize,j),be=I.minzoom||0;this.pitch<=60&&this._edgeInsets.top<.1&&(be=j);var Se=function(gr){return{aabb:new Ft([gr*se,0,0],[(gr+1)*se,se,0]),zoom:0,x:0,y:0,wrap:gr,fullyVisible:!1}},Ue=[],Xe=[],it=j,xt=I.reparseOverscaled?V:j;if(this._renderWorldCopies)for(var Lt=1;Lt<=3;Lt++)Ue.push(Se(-Lt)),Ue.push(Se(Lt));for(Ue.push(Se(0));Ue.length>0;){var _t=Ue.pop(),Mt=_t.x,yt=_t.y,Nt=_t.fullyVisible;if(!Nt){var Rt=_t.aabb.intersects(ve);if(Rt===0)continue;Nt=Rt===2}var qt=_t.aabb.distanceX(he),rn=_t.aabb.distanceY(he),dn=Math.max(Math.abs(qt),Math.abs(rn)),Sn=3+(1<Sn&&_t.zoom>=be)Xe.push({tileID:new i.OverscaledTileID(_t.zoom===it?xt:_t.zoom,_t.wrap,_t.zoom,Mt,yt),distanceSq:i.sqrLen([he[0]-.5-Mt,he[1]-.5-yt])});else for(var An=0;An<4;An++){var tr=(Mt<<1)+An%2,er=(yt<<1)+(An>>1);Ue.push({aabb:_t.aabb.quadrant(An),zoom:_t.zoom+1,x:tr,y:er,wrap:_t.wrap,fullyVisible:Nt})}}return Xe.sort(function(gr,cr){return gr.distanceSq-cr.distanceSq}).map(function(gr){return gr.tileID})},$t.prototype.resize=function(I,j){this.width=I,this.height=j,this.pixelsToGLUnits=[2/I,-2/j],this._constrain(),this._calcMatrices()},un.unmodified.get=function(){return this._unmodified},$t.prototype.zoomScale=function(I){return Math.pow(2,I)},$t.prototype.scaleZoom=function(I){return Math.log(I)/Math.LN2},$t.prototype.project=function(I){var j=i.clamp(I.lat,-this.maxValidLatitude,this.maxValidLatitude);return new i.Point(i.mercatorXfromLng(I.lng)*this.worldSize,i.mercatorYfromLat(j)*this.worldSize)},$t.prototype.unproject=function(I){return new i.MercatorCoordinate(I.x/this.worldSize,I.y/this.worldSize).toLngLat()},un.point.get=function(){return this.project(this.center)},$t.prototype.setLocationAtPoint=function(I,j){var V=this.pointCoordinate(j),X=this.pointCoordinate(this.centerPoint),se=this.locationCoordinate(I),he=new i.MercatorCoordinate(se.x-(V.x-X.x),se.y-(V.y-X.y));this.center=this.coordinateLocation(he),this._renderWorldCopies&&(this.center=this.center.wrap())},$t.prototype.locationPoint=function(I){return this.coordinatePoint(this.locationCoordinate(I))},$t.prototype.pointLocation=function(I){return this.coordinateLocation(this.pointCoordinate(I))},$t.prototype.locationCoordinate=function(I){return i.MercatorCoordinate.fromLngLat(I)},$t.prototype.coordinateLocation=function(I){return I.toLngLat()},$t.prototype.pointCoordinate=function(I){var j=[I.x,I.y,0,1],V=[I.x,I.y,1,1];i.transformMat4(j,j,this.pixelMatrixInverse),i.transformMat4(V,V,this.pixelMatrixInverse);var X=j[3],se=V[3],he=j[0]/X,ve=V[0]/se,be=j[1]/X,Se=V[1]/se,Ue=j[2]/X,Xe=V[2]/se,it=Ue===Xe?0:(0-Ue)/(Xe-Ue);return new i.MercatorCoordinate(i.number(he,ve,it)/this.worldSize,i.number(be,Se,it)/this.worldSize)},$t.prototype.coordinatePoint=function(I){var j=[I.x*this.worldSize,I.y*this.worldSize,0,1];return i.transformMat4(j,j,this.pixelMatrix),new i.Point(j[0]/j[3],j[1]/j[3])},$t.prototype.getBounds=function(){return new i.LngLatBounds().extend(this.pointLocation(new i.Point(0,0))).extend(this.pointLocation(new i.Point(this.width,0))).extend(this.pointLocation(new i.Point(this.width,this.height))).extend(this.pointLocation(new i.Point(0,this.height)))},$t.prototype.getMaxBounds=function(){return this.latRange&&this.latRange.length===2&&this.lngRange&&this.lngRange.length===2?new i.LngLatBounds([this.lngRange[0],this.latRange[0]],[this.lngRange[1],this.latRange[1]]):null},$t.prototype.setMaxBounds=function(I){I?(this.lngRange=[I.getWest(),I.getEast()],this.latRange=[I.getSouth(),I.getNorth()],this._constrain()):(this.lngRange=null,this.latRange=[-this.maxValidLatitude,this.maxValidLatitude])},$t.prototype.calculatePosMatrix=function(I,j){j===void 0&&(j=!1);var V=I.key,X=j?this._alignedPosMatrixCache:this._posMatrixCache;if(X[V])return X[V];var se=I.canonical,he=this.worldSize/this.zoomScale(se.z),ve=se.x+Math.pow(2,se.z)*I.wrap,be=i.identity(new Float64Array(16));return i.translate(be,be,[ve*he,se.y*he,0]),i.scale(be,be,[he/i.EXTENT,he/i.EXTENT,1]),i.multiply(be,j?this.alignedProjMatrix:this.projMatrix,be),X[V]=new Float32Array(be),X[V]},$t.prototype.customLayerMatrix=function(){return this.mercatorMatrix.slice()},$t.prototype._constrain=function(){if(this.center&&this.width&&this.height&&!this._constraining){this._constraining=!0;var I,j,V,X,se=-90,he=90,ve=-180,be=180,Se=this.size,Ue=this._unmodified;if(this.latRange){var Xe=this.latRange;se=i.mercatorYfromLat(Xe[1])*this.worldSize,I=(he=i.mercatorYfromLat(Xe[0])*this.worldSize)-sehe&&(X=he-Mt)}if(this.lngRange){var yt=xt.x,Nt=Se.x/2;yt-Ntbe&&(V=be-Nt)}V===void 0&&X===void 0||(this.center=this.unproject(new i.Point(V!==void 0?V:xt.x,X!==void 0?X:xt.y))),this._unmodified=Ue,this._constraining=!1}},$t.prototype._calcMatrices=function(){if(this.height){var I=this._fov/2,j=this.centerOffset;this.cameraToCenterDistance=.5/Math.tan(I)*this.height;var V=Math.PI/2+this._pitch,X=this._fov*(.5+j.y/this.height),se=Math.sin(X)*this.cameraToCenterDistance/Math.sin(i.clamp(Math.PI-V-X,.01,Math.PI-.01)),he=this.point,ve=he.x,be=he.y,Se=1.01*(Math.cos(Math.PI/2-this._pitch)*se+this.cameraToCenterDistance),Ue=this.height/50,Xe=new Float64Array(16);i.perspective(Xe,this._fov,this.width/this.height,Ue,Se),Xe[8]=2*-j.x/this.width,Xe[9]=2*j.y/this.height,i.scale(Xe,Xe,[1,-1,1]),i.translate(Xe,Xe,[0,0,-this.cameraToCenterDistance]),i.rotateX(Xe,Xe,this._pitch),i.rotateZ(Xe,Xe,this.angle),i.translate(Xe,Xe,[-ve,-be,0]),this.mercatorMatrix=i.scale([],Xe,[this.worldSize,this.worldSize,this.worldSize]),i.scale(Xe,Xe,[1,1,i.mercatorZfromAltitude(1,this.center.lat)*this.worldSize,1]),this.projMatrix=Xe,this.invProjMatrix=i.invert([],this.projMatrix);var it=this.width%2/2,xt=this.height%2/2,Lt=Math.cos(this.angle),_t=Math.sin(this.angle),Mt=ve-Math.round(ve)+Lt*it+_t*xt,yt=be-Math.round(be)+Lt*xt+_t*it,Nt=new Float64Array(Xe);if(i.translate(Nt,Nt,[Mt>.5?Mt-1:Mt,yt>.5?yt-1:yt,0]),this.alignedProjMatrix=Nt,Xe=i.create(),i.scale(Xe,Xe,[this.width/2,-this.height/2,1]),i.translate(Xe,Xe,[1,-1,0]),this.labelPlaneMatrix=Xe,Xe=i.create(),i.scale(Xe,Xe,[1,-1,1]),i.translate(Xe,Xe,[-1,-1,0]),i.scale(Xe,Xe,[2/this.width,2/this.height,1]),this.glCoordMatrix=Xe,this.pixelMatrix=i.multiply(new Float64Array(16),this.labelPlaneMatrix,this.projMatrix),!(Xe=i.invert(new Float64Array(16),this.pixelMatrix)))throw new Error("failed to invert matrix");this.pixelMatrixInverse=Xe,this._posMatrixCache={},this._alignedPosMatrixCache={}}},$t.prototype.maxPitchScaleFactor=function(){if(!this.pixelMatrixInverse)return 1;var I=this.pointCoordinate(new i.Point(0,0)),j=[I.x*this.worldSize,I.y*this.worldSize,0,1];return i.transformMat4(j,j,this.pixelMatrix)[3]/this.cameraToCenterDistance},$t.prototype.getCameraPoint=function(){var I=this._pitch,j=Math.tan(I)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new i.Point(0,j))},$t.prototype.getCameraQueryGeometry=function(I){var j=this.getCameraPoint();if(I.length===1)return[I[0],j];for(var V=j.x,X=j.y,se=j.x,he=j.y,ve=0,be=I;ve=3&&!I.some(function(V){return isNaN(V)})){var j=this._map.dragRotate.isEnabled()&&this._map.touchZoomRotate.isEnabled()?+(I[3]||0):this._map.getBearing();return this._map.jumpTo({center:[+I[2],+I[1]],zoom:+I[0],bearing:j,pitch:+(I[4]||0)}),!0}return!1},On.prototype._updateHashUnthrottled=function(){var I=this.getHashString();try{i.window.history.replaceState(i.window.history.state,"",I)}catch{}};var Fn={linearity:.3,easing:i.bezier(0,0,.3,1)},Jn=i.extend({deceleration:2500,maxSpeed:1400},Fn),fr=i.extend({deceleration:20,maxSpeed:1400},Fn),ur=i.extend({deceleration:1e3,maxSpeed:360},Fn),yr=i.extend({deceleration:1e3,maxSpeed:90},Fn),Tr=function(I){this._map=I,this.clear()};function hr(I,j){(!I.duration||I.duration0&&j-I[0].time>160;)I.shift()},Tr.prototype._onMoveEnd=function(I){if(this._drainInertiaBuffer(),!(this._inertiaBuffer.length<2)){for(var j={zoom:0,bearing:0,pitch:0,pan:new i.Point(0,0),pinchAround:void 0,around:void 0},V=0,X=this._inertiaBuffer;V=this._clickTolerance||this._map.fire(new Ur(I.type,this._map,I))},Qn.prototype.dblclick=function(I){return this._firePreventable(new Ur(I.type,this._map,I))},Qn.prototype.mouseover=function(I){this._map.fire(new Ur(I.type,this._map,I))},Qn.prototype.mouseout=function(I){this._map.fire(new Ur(I.type,this._map,I))},Qn.prototype.touchstart=function(I){return this._firePreventable(new Zr(I.type,this._map,I))},Qn.prototype.touchmove=function(I){this._map.fire(new Zr(I.type,this._map,I))},Qn.prototype.touchend=function(I){this._map.fire(new Zr(I.type,this._map,I))},Qn.prototype.touchcancel=function(I){this._map.fire(new Zr(I.type,this._map,I))},Qn.prototype._firePreventable=function(I){if(this._map.fire(I),I.defaultPrevented)return{}},Qn.prototype.isEnabled=function(){return!0},Qn.prototype.isActive=function(){return!1},Qn.prototype.enable=function(){},Qn.prototype.disable=function(){};var di=function(I){this._map=I};di.prototype.reset=function(){this._delayContextMenu=!1,delete this._contextMenuEvent},di.prototype.mousemove=function(I){this._map.fire(new Ur(I.type,this._map,I))},di.prototype.mousedown=function(){this._delayContextMenu=!0},di.prototype.mouseup=function(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new Ur("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)},di.prototype.contextmenu=function(I){this._delayContextMenu?this._contextMenuEvent=I:this._map.fire(new Ur(I.type,this._map,I)),this._map.listens("contextmenu")&&I.preventDefault()},di.prototype.isEnabled=function(){return!0},di.prototype.isActive=function(){return!1},di.prototype.enable=function(){},di.prototype.disable=function(){};var Rr=function(I,j){this._map=I,this._el=I.getCanvasContainer(),this._container=I.getContainer(),this._clickTolerance=j.clickTolerance||1};function Gr(I,j){for(var V={},X=0;Xthis.numTouches)&&(this.aborted=!0),this.aborted||(this.startTime===void 0&&(this.startTime=I.timeStamp),V.length===this.numTouches&&(this.centroid=function(X){for(var se=new i.Point(0,0),he=0,ve=X;he30)&&(this.aborted=!0)}}},fi.prototype.touchend=function(I,j,V){if((!this.centroid||I.timeStamp-this.startTime>500)&&(this.aborted=!0),V.length===0){var X=!this.aborted&&this.centroid;if(this.reset(),X)return X}};var Ni=function(I){this.singleTap=new fi(I),this.numTaps=I.numTaps,this.reset()};Ni.prototype.reset=function(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset()},Ni.prototype.touchstart=function(I,j,V){this.singleTap.touchstart(I,j,V)},Ni.prototype.touchmove=function(I,j,V){this.singleTap.touchmove(I,j,V)},Ni.prototype.touchend=function(I,j,V){var X=this.singleTap.touchend(I,j,V);if(X){var se=I.timeStamp-this.lastTime<500,he=!this.lastTap||this.lastTap.dist(X)<30;if(se&&he||this.reset(),this.count++,this.lastTime=I.timeStamp,this.lastTap=X,this.count===this.numTaps)return this.reset(),X}};var Ki=function(){this._zoomIn=new Ni({numTouches:1,numTaps:2}),this._zoomOut=new Ni({numTouches:2,numTaps:1}),this.reset()};Ki.prototype.reset=function(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()},Ki.prototype.touchstart=function(I,j,V){this._zoomIn.touchstart(I,j,V),this._zoomOut.touchstart(I,j,V)},Ki.prototype.touchmove=function(I,j,V){this._zoomIn.touchmove(I,j,V),this._zoomOut.touchmove(I,j,V)},Ki.prototype.touchend=function(I,j,V){var X=this,se=this._zoomIn.touchend(I,j,V),he=this._zoomOut.touchend(I,j,V);return se?(this._active=!0,I.preventDefault(),setTimeout(function(){return X.reset()},0),{cameraAnimation:function(ve){return ve.easeTo({duration:300,zoom:ve.getZoom()+1,around:ve.unproject(se)},{originalEvent:I})}}):he?(this._active=!0,I.preventDefault(),setTimeout(function(){return X.reset()},0),{cameraAnimation:function(ve){return ve.easeTo({duration:300,zoom:ve.getZoom()-1,around:ve.unproject(he)},{originalEvent:I})}}):void 0},Ki.prototype.touchcancel=function(){this.reset()},Ki.prototype.enable=function(){this._enabled=!0},Ki.prototype.disable=function(){this._enabled=!1,this.reset()},Ki.prototype.isEnabled=function(){return this._enabled},Ki.prototype.isActive=function(){return this._active};var Lr=function(I){this.reset(),this._clickTolerance=I.clickTolerance||1};Lr.prototype.reset=function(){this._active=!1,this._moved=!1,delete this._lastPoint,delete this._eventButton},Lr.prototype._correctButton=function(I,j){return!1},Lr.prototype._move=function(I,j){return{}},Lr.prototype.mousedown=function(I,j){if(!this._lastPoint){var V=l.mouseButton(I);this._correctButton(I,V)&&(this._lastPoint=j,this._eventButton=V)}},Lr.prototype.mousemoveWindow=function(I,j){var V=this._lastPoint;if(V&&(I.preventDefault(),this._moved||!(j.dist(V)0&&(this._active=!0);var X=Gr(V,j),se=new i.Point(0,0),he=new i.Point(0,0),ve=0;for(var be in X){var Se=X[be],Ue=this._touches[be];Ue&&(se._add(Se),he._add(Se.sub(Ue)),ve++,X[be]=Se)}if(this._touches=X,!(veMath.abs(I.x)}var ks=function(I){function j(){I.apply(this,arguments)}return I&&(j.__proto__=I),j.prototype=Object.create(I&&I.prototype),j.prototype.constructor=j,j.prototype.reset=function(){I.prototype.reset.call(this),this._valid=void 0,delete this._firstMove,delete this._lastPoints},j.prototype._start=function(V){this._lastPoints=V,Zs(V[0].sub(V[1]))&&(this._valid=!1)},j.prototype._move=function(V,X,se){var he=V[0].sub(this._lastPoints[0]),ve=V[1].sub(this._lastPoints[1]);if(this._valid=this.gestureBeginsVertically(he,ve,se.timeStamp),this._valid)return this._lastPoints=V,this._active=!0,{pitchDelta:-.5*((he.y+ve.y)/2)}},j.prototype.gestureBeginsVertically=function(V,X,se){if(this._valid!==void 0)return this._valid;var he=V.mag()>=2,ve=X.mag()>=2;if(he||ve){if(!he||!ve)return this._firstMove===void 0&&(this._firstMove=se),se-this._firstMove<100&&void 0;var be=V.y>0==X.y>0;return Zs(V)&&Zs(X)&&be}},j}(Wi),Pi={panStep:100,bearingStep:15,pitchStep:10},Qa=function(){var I=Pi;this._panStep=I.panStep,this._bearingStep=I.bearingStep,this._pitchStep=I.pitchStep};function Ts(I){return I*(2-I)}Qa.prototype.reset=function(){this._active=!1},Qa.prototype.keydown=function(I){var j=this;if(!(I.altKey||I.ctrlKey||I.metaKey)){var V=0,X=0,se=0,he=0,ve=0;switch(I.keyCode){case 61:case 107:case 171:case 187:V=1;break;case 189:case 109:case 173:V=-1;break;case 37:I.shiftKey?X=-1:(I.preventDefault(),he=-1);break;case 39:I.shiftKey?X=1:(I.preventDefault(),he=1);break;case 38:I.shiftKey?se=1:(I.preventDefault(),ve=-1);break;case 40:I.shiftKey?se=-1:(I.preventDefault(),ve=1);break;default:return}return{cameraAnimation:function(be){var Se=be.getZoom();be.easeTo({duration:300,easeId:"keyboardHandler",easing:Ts,zoom:V?Math.round(Se)+V*(I.shiftKey?2:1):Se,bearing:be.getBearing()+X*j._bearingStep,pitch:be.getPitch()+se*j._pitchStep,offset:[-he*j._panStep,-ve*j._panStep],center:be.getCenter()},{originalEvent:I})}}}},Qa.prototype.enable=function(){this._enabled=!0},Qa.prototype.disable=function(){this._enabled=!1,this.reset()},Qa.prototype.isEnabled=function(){return this._enabled},Qa.prototype.isActive=function(){return this._active};var wa=function(I,j){this._map=I,this._el=I.getCanvasContainer(),this._handler=j,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=1/450,i.bindAll(["_onWheel","_onTimeout","_onScrollFrame","_onScrollFinished"],this)};wa.prototype.setZoomRate=function(I){this._defaultZoomRate=I},wa.prototype.setWheelZoomRate=function(I){this._wheelZoomRate=I},wa.prototype.isEnabled=function(){return!!this._enabled},wa.prototype.isActive=function(){return!!this._active||this._finishTimeout!==void 0},wa.prototype.isZooming=function(){return!!this._zooming},wa.prototype.enable=function(I){this.isEnabled()||(this._enabled=!0,this._aroundCenter=I&&I.around==="center")},wa.prototype.disable=function(){this.isEnabled()&&(this._enabled=!1)},wa.prototype.wheel=function(I){if(this.isEnabled()){var j=I.deltaMode===i.window.WheelEvent.DOM_DELTA_LINE?40*I.deltaY:I.deltaY,V=i.browser.now(),X=V-(this._lastWheelEventTime||0);this._lastWheelEventTime=V,j!==0&&j%4.000244140625==0?this._type="wheel":j!==0&&Math.abs(j)<4?this._type="trackpad":X>400?(this._type=null,this._lastValue=j,this._timeout=setTimeout(this._onTimeout,40,I)):this._type||(this._type=Math.abs(X*j)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,j+=this._lastValue)),I.shiftKey&&j&&(j/=4),this._type&&(this._lastWheelEvent=I,this._delta-=j,this._active||this._start(I)),I.preventDefault()}},wa.prototype._onTimeout=function(I){this._type="wheel",this._delta-=this._lastValue,this._active||this._start(I)},wa.prototype._start=function(I){if(this._delta){this._frameId&&(this._frameId=null),this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);var j=l.mousePos(this._el,I);this._around=i.LngLat.convert(this._aroundCenter?this._map.getCenter():this._map.unproject(j)),this._aroundPoint=this._map.transform.locationPoint(this._around),this._frameId||(this._frameId=!0,this._handler._triggerRenderFrame())}},wa.prototype.renderFrame=function(){return this._onScrollFrame()},wa.prototype._onScrollFrame=function(){var I=this;if(this._frameId&&(this._frameId=null,this.isActive())){var j=this._map.transform;if(this._delta!==0){var V=this._type==="wheel"&&Math.abs(this._delta)>4.000244140625?this._wheelZoomRate:this._defaultZoomRate,X=2/(1+Math.exp(-Math.abs(this._delta*V)));this._delta<0&&X!==0&&(X=1/X);var se=typeof this._targetZoom=="number"?j.zoomScale(this._targetZoom):j.scale;this._targetZoom=Math.min(j.maxZoom,Math.max(j.minZoom,j.scaleZoom(se*X))),this._type==="wheel"&&(this._startZoom=j.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0}var he,ve=typeof this._targetZoom=="number"?this._targetZoom:j.zoom,be=this._startZoom,Se=this._easing,Ue=!1;if(this._type==="wheel"&&be&&Se){var Xe=Math.min((i.browser.now()-this._lastWheelEventTime)/200,1),it=Se(Xe);he=i.number(be,ve,it),Xe<1?this._frameId||(this._frameId=!0):Ue=!0}else he=ve,Ue=!0;return this._active=!0,Ue&&(this._active=!1,this._finishTimeout=setTimeout(function(){I._zooming=!1,I._handler._triggerRenderFrame(),delete I._targetZoom,delete I._finishTimeout},200)),{noInertia:!0,needsRenderFrame:!Ue,zoomDelta:he-j.zoom,around:this._aroundPoint,originalEvent:this._lastWheelEvent}}},wa.prototype._smoothOutEasing=function(I){var j=i.ease;if(this._prevEase){var V=this._prevEase,X=(i.browser.now()-V.start)/V.duration,se=V.easing(X+.01)-V.easing(X),he=.27/Math.sqrt(se*se+1e-4)*.01,ve=Math.sqrt(.0729-he*he);j=i.bezier(he,ve,.25,1)}return this._prevEase={start:i.browser.now(),duration:I,easing:j},j},wa.prototype.reset=function(){this._active=!1};var uo=function(I,j){this._clickZoom=I,this._tapZoom=j};uo.prototype.enable=function(){this._clickZoom.enable(),this._tapZoom.enable()},uo.prototype.disable=function(){this._clickZoom.disable(),this._tapZoom.disable()},uo.prototype.isEnabled=function(){return this._clickZoom.isEnabled()&&this._tapZoom.isEnabled()},uo.prototype.isActive=function(){return this._clickZoom.isActive()||this._tapZoom.isActive()};var jo=function(){this.reset()};jo.prototype.reset=function(){this._active=!1},jo.prototype.dblclick=function(I,j){return I.preventDefault(),{cameraAnimation:function(V){V.easeTo({duration:300,zoom:V.getZoom()+(I.shiftKey?-1:1),around:V.unproject(j)},{originalEvent:I})}}},jo.prototype.enable=function(){this._enabled=!0},jo.prototype.disable=function(){this._enabled=!1,this.reset()},jo.prototype.isEnabled=function(){return this._enabled},jo.prototype.isActive=function(){return this._active};var La=function(){this._tap=new Ni({numTouches:1,numTaps:1}),this.reset()};La.prototype.reset=function(){this._active=!1,delete this._swipePoint,delete this._swipeTouch,delete this._tapTime,this._tap.reset()},La.prototype.touchstart=function(I,j,V){this._swipePoint||(this._tapTime&&I.timeStamp-this._tapTime>500&&this.reset(),this._tapTime?V.length>0&&(this._swipePoint=j[0],this._swipeTouch=V[0].identifier):this._tap.touchstart(I,j,V))},La.prototype.touchmove=function(I,j,V){if(this._tapTime){if(this._swipePoint){if(V[0].identifier!==this._swipeTouch)return;var X=j[0],se=X.y-this._swipePoint.y;return this._swipePoint=X,I.preventDefault(),this._active=!0,{zoomDelta:se/128}}}else this._tap.touchmove(I,j,V)},La.prototype.touchend=function(I,j,V){this._tapTime?this._swipePoint&&V.length===0&&this.reset():this._tap.touchend(I,j,V)&&(this._tapTime=I.timeStamp)},La.prototype.touchcancel=function(){this.reset()},La.prototype.enable=function(){this._enabled=!0},La.prototype.disable=function(){this._enabled=!1,this.reset()},La.prototype.isEnabled=function(){return this._enabled},La.prototype.isActive=function(){return this._active};var ps=function(I,j,V){this._el=I,this._mousePan=j,this._touchPan=V};ps.prototype.enable=function(I){this._inertiaOptions=I||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add("mapboxgl-touch-drag-pan")},ps.prototype.disable=function(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove("mapboxgl-touch-drag-pan")},ps.prototype.isEnabled=function(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()},ps.prototype.isActive=function(){return this._mousePan.isActive()||this._touchPan.isActive()};var Pa=function(I,j,V){this._pitchWithRotate=I.pitchWithRotate,this._mouseRotate=j,this._mousePitch=V};Pa.prototype.enable=function(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable()},Pa.prototype.disable=function(){this._mouseRotate.disable(),this._mousePitch.disable()},Pa.prototype.isEnabled=function(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())},Pa.prototype.isActive=function(){return this._mouseRotate.isActive()||this._mousePitch.isActive()};var ns=function(I,j,V,X){this._el=I,this._touchZoom=j,this._touchRotate=V,this._tapDragZoom=X,this._rotationDisabled=!1,this._enabled=!0};ns.prototype.enable=function(I){this._touchZoom.enable(I),this._rotationDisabled||this._touchRotate.enable(I),this._tapDragZoom.enable(),this._el.classList.add("mapboxgl-touch-zoom-rotate")},ns.prototype.disable=function(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove("mapboxgl-touch-zoom-rotate")},ns.prototype.isEnabled=function(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()},ns.prototype.isActive=function(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()},ns.prototype.disableRotation=function(){this._rotationDisabled=!0,this._touchRotate.disable()},ns.prototype.enableRotation=function(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable()};var vu=function(I){return I.zoom||I.drag||I.pitch||I.rotate},Xl=function(I){function j(){I.apply(this,arguments)}return I&&(j.__proto__=I),j.prototype=Object.create(I&&I.prototype),j.prototype.constructor=j,j}(i.Event);function _f(I){return I.panDelta&&I.panDelta.mag()||I.zoomDelta||I.bearingDelta||I.pitchDelta}var Mo=function(I,j){this._map=I,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new Tr(I),this._bearingSnap=j.bearingSnap,this._previousActiveHandlers={},this._eventsInProgress={},this._addDefaultHandlers(j),i.bindAll(["handleEvent","handleWindowEvent"],this);var V=this._el;this._listeners=[[V,"touchstart",{passive:!1}],[V,"touchmove",{passive:!1}],[V,"touchend",void 0],[V,"touchcancel",void 0],[V,"mousedown",void 0],[V,"mousemove",void 0],[V,"mouseup",void 0],[i.window.document,"mousemove",{capture:!0}],[i.window.document,"mouseup",void 0],[V,"mouseover",void 0],[V,"mouseout",void 0],[V,"dblclick",void 0],[V,"click",void 0],[V,"keydown",{capture:!1}],[V,"keyup",void 0],[V,"wheel",{passive:!1}],[V,"contextmenu",void 0],[i.window,"blur",void 0]];for(var X=0,se=this._listeners;Xve?Math.min(2,Sn):Math.max(.5,Sn),cr=Math.pow(gr,1-tr),Yr=he.unproject(rn.add(dn.mult(tr*cr)).mult(er));he.setLocationAtPoint(he.renderWorldCopies?Yr.wrap():Yr,Mt)}se._fireMoveEvents(X)},function(tr){se._afterEase(X,tr)},V),this},j.prototype._prepareEase=function(V,X,se){se===void 0&&(se={}),this._moving=!0,X||se.moving||this.fire(new i.Event("movestart",V)),this._zooming&&!se.zooming&&this.fire(new i.Event("zoomstart",V)),this._rotating&&!se.rotating&&this.fire(new i.Event("rotatestart",V)),this._pitching&&!se.pitching&&this.fire(new i.Event("pitchstart",V))},j.prototype._fireMoveEvents=function(V){this.fire(new i.Event("move",V)),this._zooming&&this.fire(new i.Event("zoom",V)),this._rotating&&this.fire(new i.Event("rotate",V)),this._pitching&&this.fire(new i.Event("pitch",V))},j.prototype._afterEase=function(V,X){if(!this._easeId||!X||this._easeId!==X){delete this._easeId;var se=this._zooming,he=this._rotating,ve=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,se&&this.fire(new i.Event("zoomend",V)),he&&this.fire(new i.Event("rotateend",V)),ve&&this.fire(new i.Event("pitchend",V)),this.fire(new i.Event("moveend",V))}},j.prototype.flyTo=function(V,X){var se=this;if(!V.essential&&i.browser.prefersReducedMotion){var he=i.pick(V,["center","zoom","bearing","pitch","around"]);return this.jumpTo(he,X)}this.stop(),V=i.extend({offset:[0,0],speed:1.2,curve:1.42,easing:i.ease},V);var ve=this.transform,be=this.getZoom(),Se=this.getBearing(),Ue=this.getPitch(),Xe=this.getPadding(),it="zoom"in V?i.clamp(+V.zoom,ve.minZoom,ve.maxZoom):be,xt="bearing"in V?this._normalizeBearing(V.bearing,Se):Se,Lt="pitch"in V?+V.pitch:Ue,_t="padding"in V?V.padding:ve.padding,Mt=ve.zoomScale(it-be),yt=i.Point.convert(V.offset),Nt=ve.centerPoint.add(yt),Rt=ve.pointLocation(Nt),qt=i.LngLat.convert(V.center||Rt);this._normalizeCenter(qt);var rn=ve.project(Rt),dn=ve.project(qt).sub(rn),Sn=V.curve,An=Math.max(ve.width,ve.height),tr=An/Mt,er=dn.mag();if("minZoom"in V){var gr=i.clamp(Math.min(V.minZoom,be,it),ve.minZoom,ve.maxZoom),cr=An/ve.zoomScale(gr-be);Sn=Math.sqrt(cr/er*2)}var Yr=Sn*Sn;function ii(ci){var zi=(tr*tr-An*An+(ci?-1:1)*Yr*Yr*er*er)/(2*(ci?tr:An)*Yr*er);return Math.log(Math.sqrt(zi*zi+1)-zi)}function Ti(ci){return(Math.exp(ci)-Math.exp(-ci))/2}function Gn(ci){return(Math.exp(ci)+Math.exp(-ci))/2}var Mr=ii(0),ai=function(ci){return Gn(Mr)/Gn(Mr+Sn*ci)},Qr=function(ci){return An*((Gn(Mr)*(Ti(zi=Mr+Sn*ci)/Gn(zi))-Ti(Mr))/Yr)/er;var zi},gi=(ii(1)-Mr)/Sn;if(Math.abs(er)<1e-6||!isFinite(gi)){if(Math.abs(An-tr)<1e-6)return this.easeTo(V,X);var Mi=trV.maxDuration&&(V.duration=0),this._zooming=!0,this._rotating=Se!==xt,this._pitching=Lt!==Ue,this._padding=!ve.isPaddingEqual(_t),this._prepareEase(X,!1),this._ease(function(ci){var zi=ci*gi,Li=1/ai(zi);ve.zoom=ci===1?it:be+ve.scaleZoom(Li),se._rotating&&(ve.bearing=i.number(Se,xt,ci)),se._pitching&&(ve.pitch=i.number(Ue,Lt,ci)),se._padding&&(ve.interpolatePadding(Xe,_t,ci),Nt=ve.centerPoint.add(yt));var Qi=ci===1?qt:ve.unproject(rn.add(dn.mult(Qr(zi))).mult(Li));ve.setLocationAtPoint(ve.renderWorldCopies?Qi.wrap():Qi,Nt),se._fireMoveEvents(X)},function(){return se._afterEase(X)},V),this},j.prototype.isEasing=function(){return!!this._easeFrameId},j.prototype.stop=function(){return this._stop()},j.prototype._stop=function(V,X){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){var se=this._onEaseEnd;delete this._onEaseEnd,se.call(this,X)}if(!V){var he=this.handlers;he&&he.stop()}return this},j.prototype._ease=function(V,X,se){se.animate===!1||se.duration===0?(V(1),X()):(this._easeStart=i.browser.now(),this._easeOptions=se,this._onEaseFrame=V,this._onEaseEnd=X,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))},j.prototype._renderFrameCallback=function(){var V=Math.min((i.browser.now()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(V)),V<1?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()},j.prototype._normalizeBearing=function(V,X){V=i.wrap(V,-180,180);var se=Math.abs(V-X);return Math.abs(V-360-X)180?-360:se<-180?360:0}},j}(i.Evented),So=function(I){I===void 0&&(I={}),this.options=I,i.bindAll(["_updateEditLink","_updateData","_updateCompact"],this)};So.prototype.getDefaultPosition=function(){return"bottom-right"},So.prototype.onAdd=function(I){var j=this.options&&this.options.compact;return this._map=I,this._container=l.create("div","mapboxgl-ctrl mapboxgl-ctrl-attrib"),this._innerContainer=l.create("div","mapboxgl-ctrl-attrib-inner",this._container),j&&this._container.classList.add("mapboxgl-compact"),this._updateAttributions(),this._updateEditLink(),this._map.on("styledata",this._updateData),this._map.on("sourcedata",this._updateData),this._map.on("moveend",this._updateEditLink),j===void 0&&(this._map.on("resize",this._updateCompact),this._updateCompact()),this._container},So.prototype.onRemove=function(){l.remove(this._container),this._map.off("styledata",this._updateData),this._map.off("sourcedata",this._updateData),this._map.off("moveend",this._updateEditLink),this._map.off("resize",this._updateCompact),this._map=void 0,this._attribHTML=void 0},So.prototype._updateEditLink=function(){var I=this._editLink;I||(I=this._editLink=this._container.querySelector(".mapbox-improve-map"));var j=[{key:"owner",value:this.styleOwner},{key:"id",value:this.styleId},{key:"access_token",value:this._map._requestManager._customAccessToken||i.config.ACCESS_TOKEN}];if(I){var V=j.reduce(function(X,se,he){return se.value&&(X+=se.key+"="+se.value+(he=0)return!1;return!0})).join(" | ");ve!==this._attribHTML&&(this._attribHTML=ve,I.length?(this._innerContainer.innerHTML=ve,this._container.classList.remove("mapboxgl-attrib-empty")):this._container.classList.add("mapboxgl-attrib-empty"),this._editLink=null)}},So.prototype._updateCompact=function(){this._map.getCanvasContainer().offsetWidth<=640?this._container.classList.add("mapboxgl-compact"):this._container.classList.remove("mapboxgl-compact")};var Zl=function(){i.bindAll(["_updateLogo"],this),i.bindAll(["_updateCompact"],this)};Zl.prototype.onAdd=function(I){this._map=I,this._container=l.create("div","mapboxgl-ctrl");var j=l.create("a","mapboxgl-ctrl-logo");return j.target="_blank",j.rel="noopener nofollow",j.href="https://www.mapbox.com/",j.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),j.setAttribute("rel","noopener nofollow"),this._container.appendChild(j),this._container.style.display="none",this._map.on("sourcedata",this._updateLogo),this._updateLogo(),this._map.on("resize",this._updateCompact),this._updateCompact(),this._container},Zl.prototype.onRemove=function(){l.remove(this._container),this._map.off("sourcedata",this._updateLogo),this._map.off("resize",this._updateCompact)},Zl.prototype.getDefaultPosition=function(){return"bottom-left"},Zl.prototype._updateLogo=function(I){I&&I.sourceDataType!=="metadata"||(this._container.style.display=this._logoRequired()?"block":"none")},Zl.prototype._logoRequired=function(){if(this._map.style){var I=this._map.style.sourceCaches;for(var j in I)if(I[j].getSource().mapbox_logo)return!0;return!1}},Zl.prototype._updateCompact=function(){var I=this._container.children;if(I.length){var j=I[0];this._map.getCanvasContainer().offsetWidth<250?j.classList.add("mapboxgl-compact"):j.classList.remove("mapboxgl-compact")}};var wi=function(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1};wi.prototype.add=function(I){var j=++this._id;return this._queue.push({callback:I,id:j,cancelled:!1}),j},wi.prototype.remove=function(I){for(var j=this._currentlyRunning,V=0,X=j?this._queue.concat(j):this._queue;VX.maxZoom)throw new Error("maxZoom must be greater than or equal to minZoom");if(X.minPitch!=null&&X.maxPitch!=null&&X.minPitch>X.maxPitch)throw new Error("maxPitch must be greater than or equal to minPitch");if(X.minPitch!=null&&X.minPitch<0)throw new Error("minPitch must be greater than or equal to 0");if(X.maxPitch!=null&&X.maxPitch>60)throw new Error("maxPitch must be less than or equal to 60");var he=new $t(X.minZoom,X.maxZoom,X.minPitch,X.maxPitch,X.renderWorldCopies);if(I.call(this,he,X),this._interactive=X.interactive,this._maxTileCacheSize=X.maxTileCacheSize,this._failIfMajorPerformanceCaveat=X.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=X.preserveDrawingBuffer,this._antialias=X.antialias,this._trackResize=X.trackResize,this._bearingSnap=X.bearingSnap,this._refreshExpiredTiles=X.refreshExpiredTiles,this._fadeDuration=X.fadeDuration,this._crossSourceCollisions=X.crossSourceCollisions,this._crossFadingFactor=1,this._collectResourceTiming=X.collectResourceTiming,this._renderTaskQueue=new wi,this._controls=[],this._mapId=i.uniqueId(),this._locale=i.extend({},Di,X.locale),this._requestManager=new i.RequestManager(X.transformRequest,X.accessToken),typeof X.container=="string"){if(this._container=i.window.document.getElementById(X.container),!this._container)throw new Error("Container '"+X.container+"' not found.")}else{if(!(X.container instanceof Tf))throw new Error("Invalid type: 'container' must be a String or HTMLElement.");this._container=X.container}if(X.maxBounds&&this.setMaxBounds(X.maxBounds),i.bindAll(["_onWindowOnline","_onWindowResize","_contextLost","_contextRestored"],this),this._setupContainer(),this._setupPainter(),this.painter===void 0)throw new Error("Failed to initialize WebGL.");this.on("move",function(){return se._update(!1)}),this.on("moveend",function(){return se._update(!1)}),this.on("zoom",function(){return se._update(!0)}),i.window!==void 0&&(i.window.addEventListener("online",this._onWindowOnline,!1),i.window.addEventListener("resize",this._onWindowResize,!1)),this.handlers=new Mo(this,X);var ve=typeof X.hash=="string"&&X.hash||void 0;this._hash=X.hash&&new On(ve).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:X.center,zoom:X.zoom,bearing:X.bearing,pitch:X.pitch}),X.bounds&&(this.resize(),this.fitBounds(X.bounds,i.extend({},X.fitBoundsOptions,{duration:0})))),this.resize(),this._localIdeographFontFamily=X.localIdeographFontFamily,X.style&&this.setStyle(X.style,{localIdeographFontFamily:X.localIdeographFontFamily}),X.attributionControl&&this.addControl(new So({customAttribution:X.customAttribution})),this.addControl(new Zl,X.logoPosition),this.on("style.load",function(){se.transform.unmodified&&se.jumpTo(se.style.stylesheet)}),this.on("data",function(be){se._update(be.dataType==="style"),se.fire(new i.Event(be.dataType+"data",be))}),this.on("dataloading",function(be){se.fire(new i.Event(be.dataType+"dataloading",be))})}I&&(j.__proto__=I),j.prototype=Object.create(I&&I.prototype),j.prototype.constructor=j;var V={showTileBoundaries:{configurable:!0},showPadding:{configurable:!0},showCollisionBoxes:{configurable:!0},showOverdrawInspector:{configurable:!0},repaint:{configurable:!0},vertices:{configurable:!0},version:{configurable:!0}};return j.prototype._getMapId=function(){return this._mapId},j.prototype.addControl=function(X,se){if(se===void 0&&X.getDefaultPosition&&(se=X.getDefaultPosition()),se===void 0&&(se="top-right"),!X||!X.onAdd)return this.fire(new i.ErrorEvent(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));var he=X.onAdd(this);this._controls.push(X);var ve=this._controlPositions[se];return se.indexOf("bottom")!==-1?ve.insertBefore(he,ve.firstChild):ve.appendChild(he),this},j.prototype.removeControl=function(X){if(!X||!X.onRemove)return this.fire(new i.ErrorEvent(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));var se=this._controls.indexOf(X);return se>-1&&this._controls.splice(se,1),X.onRemove(this),this},j.prototype.resize=function(X){var se=this._containerDimensions(),he=se[0],ve=se[1];this._resizeCanvas(he,ve),this.transform.resize(he,ve),this.painter.resize(he,ve);var be=!this._moving;return be&&(this.stop(),this.fire(new i.Event("movestart",X)).fire(new i.Event("move",X))),this.fire(new i.Event("resize",X)),be&&this.fire(new i.Event("moveend",X)),this},j.prototype.getBounds=function(){return this.transform.getBounds()},j.prototype.getMaxBounds=function(){return this.transform.getMaxBounds()},j.prototype.setMaxBounds=function(X){return this.transform.setMaxBounds(i.LngLatBounds.convert(X)),this._update()},j.prototype.setMinZoom=function(X){if((X=X??-2)>=-2&&X<=this.transform.maxZoom)return this.transform.minZoom=X,this._update(),this.getZoom()=this.transform.minZoom)return this.transform.maxZoom=X,this._update(),this.getZoom()>X&&this.setZoom(X),this;throw new Error("maxZoom must be greater than the current minZoom")},j.prototype.getMaxZoom=function(){return this.transform.maxZoom},j.prototype.setMinPitch=function(X){if((X=X??0)<0)throw new Error("minPitch must be greater than or equal to 0");if(X>=0&&X<=this.transform.maxPitch)return this.transform.minPitch=X,this._update(),this.getPitch()60)throw new Error("maxPitch must be less than or equal to 60");if(X>=this.transform.minPitch)return this.transform.maxPitch=X,this._update(),this.getPitch()>X&&this.setPitch(X),this;throw new Error("maxPitch must be greater than the current minPitch")},j.prototype.getMaxPitch=function(){return this.transform.maxPitch},j.prototype.getRenderWorldCopies=function(){return this.transform.renderWorldCopies},j.prototype.setRenderWorldCopies=function(X){return this.transform.renderWorldCopies=X,this._update()},j.prototype.project=function(X){return this.transform.locationPoint(i.LngLat.convert(X))},j.prototype.unproject=function(X){return this.transform.pointLocation(i.Point.convert(X))},j.prototype.isMoving=function(){return this._moving||this.handlers.isMoving()},j.prototype.isZooming=function(){return this._zooming||this.handlers.isZooming()},j.prototype.isRotating=function(){return this._rotating||this.handlers.isRotating()},j.prototype._createDelegatedListener=function(X,se,he){var ve,be=this;if(X==="mouseenter"||X==="mouseover"){var Se=!1;return{layer:se,listener:he,delegates:{mousemove:function(Xe){var it=be.getLayer(se)?be.queryRenderedFeatures(Xe.point,{layers:[se]}):[];it.length?Se||(Se=!0,he.call(be,new Ur(X,be,Xe.originalEvent,{features:it}))):Se=!1},mouseout:function(){Se=!1}}}}if(X==="mouseleave"||X==="mouseout"){var Ue=!1;return{layer:se,listener:he,delegates:{mousemove:function(Xe){(be.getLayer(se)?be.queryRenderedFeatures(Xe.point,{layers:[se]}):[]).length?Ue=!0:Ue&&(Ue=!1,he.call(be,new Ur(X,be,Xe.originalEvent)))},mouseout:function(Xe){Ue&&(Ue=!1,he.call(be,new Ur(X,be,Xe.originalEvent)))}}}}return{layer:se,listener:he,delegates:(ve={},ve[X]=function(Xe){var it=be.getLayer(se)?be.queryRenderedFeatures(Xe.point,{layers:[se]}):[];it.length&&(Xe.features=it,he.call(be,Xe),delete Xe.features)},ve)}},j.prototype.on=function(X,se,he){if(he===void 0)return I.prototype.on.call(this,X,se);var ve=this._createDelegatedListener(X,se,he);for(var be in this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[X]=this._delegatedListeners[X]||[],this._delegatedListeners[X].push(ve),ve.delegates)this.on(be,ve.delegates[be]);return this},j.prototype.once=function(X,se,he){if(he===void 0)return I.prototype.once.call(this,X,se);var ve=this._createDelegatedListener(X,se,he);for(var be in ve.delegates)this.once(be,ve.delegates[be]);return this},j.prototype.off=function(X,se,he){var ve=this;return he===void 0?I.prototype.off.call(this,X,se):(this._delegatedListeners&&this._delegatedListeners[X]&&function(be){for(var Se=be[X],Ue=0;Ue180;){var ve=V.locationPoint(I);if(ve.x>=0&&ve.y>=0&&ve.x<=V.width&&ve.y<=V.height)break;I.lng>V.center.lng?I.lng-=360:I.lng+=360}return I}Da.prototype.down=function(I,j){this.mouseRotate.mousedown(I,j),this.mousePitch&&this.mousePitch.mousedown(I,j),l.disableDrag()},Da.prototype.move=function(I,j){var V=this.map,X=this.mouseRotate.mousemoveWindow(I,j);if(X&&X.bearingDelta&&V.setBearing(V.getBearing()+X.bearingDelta),this.mousePitch){var se=this.mousePitch.mousemoveWindow(I,j);se&&se.pitchDelta&&V.setPitch(V.getPitch()+se.pitchDelta)}},Da.prototype.off=function(){var I=this.element;l.removeEventListener(I,"mousedown",this.mousedown),l.removeEventListener(I,"touchstart",this.touchstart,{passive:!1}),l.removeEventListener(I,"touchmove",this.touchmove),l.removeEventListener(I,"touchend",this.touchend),l.removeEventListener(I,"touchcancel",this.reset),this.offTemp()},Da.prototype.offTemp=function(){l.enableDrag(),l.removeEventListener(i.window,"mousemove",this.mousemove),l.removeEventListener(i.window,"mouseup",this.mouseup)},Da.prototype.mousedown=function(I){this.down(i.extend({},I,{ctrlKey:!0,preventDefault:function(){return I.preventDefault()}}),l.mousePos(this.element,I)),l.addEventListener(i.window,"mousemove",this.mousemove),l.addEventListener(i.window,"mouseup",this.mouseup)},Da.prototype.mousemove=function(I){this.move(I,l.mousePos(this.element,I))},Da.prototype.mouseup=function(I){this.mouseRotate.mouseupWindow(I),this.mousePitch&&this.mousePitch.mouseupWindow(I),this.offTemp()},Da.prototype.touchstart=function(I){I.targetTouches.length!==1?this.reset():(this._startPos=this._lastPos=l.touchPos(this.element,I.targetTouches)[0],this.down({type:"mousedown",button:0,ctrlKey:!0,preventDefault:function(){return I.preventDefault()}},this._startPos))},Da.prototype.touchmove=function(I){I.targetTouches.length!==1?this.reset():(this._lastPos=l.touchPos(this.element,I.targetTouches)[0],this.move({preventDefault:function(){return I.preventDefault()}},this._lastPos))},Da.prototype.touchend=function(I){I.targetTouches.length===0&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos)X.getEast()||se.latitudeX.getNorth())},j.prototype._setErrorState=function(){switch(this._watchState){case"WAITING_ACTIVE":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"ACTIVE_LOCK":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting");break;case"BACKGROUND":this._watchState="BACKGROUND_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting")}},j.prototype._onSuccess=function(V){if(this._map){if(this._isOutOfMapMaxBounds(V))return this._setErrorState(),this.fire(new i.Event("outofmaxbounds",V)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=V,this._watchState){case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"BACKGROUND":case"BACKGROUND_ERROR":this._watchState="BACKGROUND",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background")}this.options.showUserLocation&&this._watchState!=="OFF"&&this._updateMarker(V),this.options.trackUserLocation&&this._watchState!=="ACTIVE_LOCK"||this._updateCamera(V),this.options.showUserLocation&&this._dotElement.classList.remove("mapboxgl-user-location-dot-stale"),this.fire(new i.Event("geolocate",V)),this._finish()}},j.prototype._updateCamera=function(V){var X=new i.LngLat(V.coords.longitude,V.coords.latitude),se=V.coords.accuracy,he=this._map.getBearing(),ve=i.extend({bearing:he},this.options.fitBoundsOptions);this._map.fitBounds(X.toBounds(se),ve,{geolocateSource:!0})},j.prototype._updateMarker=function(V){if(V){var X=new i.LngLat(V.coords.longitude,V.coords.latitude);this._accuracyCircleMarker.setLngLat(X).addTo(this._map),this._userLocationDotMarker.setLngLat(X).addTo(this._map),this._accuracy=V.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()},j.prototype._updateCircleRadius=function(){var V=this._map._container.clientHeight/2,X=this._map.unproject([0,V]),se=this._map.unproject([1,V]),he=X.distanceTo(se),ve=Math.ceil(2*this._accuracy/he);this._circleElement.style.width=ve+"px",this._circleElement.style.height=ve+"px"},j.prototype._onZoom=function(){this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()},j.prototype._onError=function(V){if(this._map){if(this.options.trackUserLocation)if(V.code===1){this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.disabled=!0;var X=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.title=X,this._geolocateButton.setAttribute("aria-label",X),this._geolocationWatchID!==void 0&&this._clearWatch()}else{if(V.code===3&&xu)return;this._setErrorState()}this._watchState!=="OFF"&&this.options.showUserLocation&&this._dotElement.classList.add("mapboxgl-user-location-dot-stale"),this.fire(new i.Event("error",V)),this._finish()}},j.prototype._finish=function(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},j.prototype._setupUI=function(V){var X=this;if(this._container.addEventListener("contextmenu",function(ve){return ve.preventDefault()}),this._geolocateButton=l.create("button","mapboxgl-ctrl-geolocate",this._container),l.create("span","mapboxgl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden",!0),this._geolocateButton.type="button",V===!1){i.warnOnce("Geolocation support is not available so the GeolocateControl will be disabled.");var se=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.title=se,this._geolocateButton.setAttribute("aria-label",se)}else{var he=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.title=he,this._geolocateButton.setAttribute("aria-label",he)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=l.create("div","mapboxgl-user-location-dot"),this._userLocationDotMarker=new Lc(this._dotElement),this._circleElement=l.create("div","mapboxgl-user-location-accuracy-circle"),this._accuracyCircleMarker=new Lc({element:this._circleElement,pitchAlignment:"map"}),this.options.trackUserLocation&&(this._watchState="OFF"),this._map.on("zoom",this._onZoom)),this._geolocateButton.addEventListener("click",this.trigger.bind(this)),this._setup=!0,this.options.trackUserLocation&&this._map.on("movestart",function(ve){var be=ve.originalEvent&&ve.originalEvent.type==="resize";ve.geolocateSource||X._watchState!=="ACTIVE_LOCK"||be||(X._watchState="BACKGROUND",X._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background"),X._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),X.fire(new i.Event("trackuserlocationend")))})},j.prototype.trigger=function(){if(!this._setup)return i.warnOnce("Geolocate control triggered before added to a map"),!1;if(this.options.trackUserLocation){switch(this._watchState){case"OFF":this._watchState="WAITING_ACTIVE",this.fire(new i.Event("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":Pc--,xu=!1,this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this.fire(new i.Event("trackuserlocationend"));break;case"BACKGROUND":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new i.Event("trackuserlocationstart"))}switch(this._watchState){case"WAITING_ACTIVE":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_LOCK":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"BACKGROUND":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background");break;case"BACKGROUND_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error")}if(this._watchState==="OFF"&&this._geolocationWatchID!==void 0)this._clearWatch();else if(this._geolocationWatchID===void 0){var V;this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),++Pc>1?(V={maximumAge:6e5,timeout:0},xu=!0):(V=this.options.positionOptions,xu=!1),this._geolocationWatchID=i.window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,V)}}else i.window.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return!0},j.prototype._clearWatch=function(){i.window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","false"),this.options.showUserLocation&&this._updateMarker(null)},j}(i.Evented),Tp={maxWidth:100,unit:"metric"},$u=function(I){this.options=i.extend({},Tp,I),i.bindAll(["_onMove","setUnit"],this)};function ld(I,j,V){var X=V&&V.maxWidth||100,se=I._container.clientHeight/2,he=I.unproject([0,se]),ve=I.unproject([X,se]),be=he.distanceTo(ve);if(V&&V.unit==="imperial"){var Se=3.2808*be;Se>5280?Dc(j,X,Se/5280,I._getUIString("ScaleControl.Miles")):Dc(j,X,Se,I._getUIString("ScaleControl.Feet"))}else V&&V.unit==="nautical"?Dc(j,X,be/1852,I._getUIString("ScaleControl.NauticalMiles")):be>=1e3?Dc(j,X,be/1e3,I._getUIString("ScaleControl.Kilometers")):Dc(j,X,be,I._getUIString("ScaleControl.Meters"))}function Dc(I,j,V,X){var se,he,ve,be=(se=V,he=Math.pow(10,(""+Math.floor(se)).length-1),ve=(ve=se/he)>=10?10:ve>=5?5:ve>=3?3:ve>=2?2:ve>=1?1:function(Ue){var Xe=Math.pow(10,Math.ceil(-Math.log(Ue)/Math.LN10));return Math.round(Ue*Xe)/Xe}(ve),he*ve),Se=be/V;I.style.width=j*Se+"px",I.innerHTML=be+" "+X}$u.prototype.getDefaultPosition=function(){return"bottom-left"},$u.prototype._onMove=function(){ld(this._map,this._container,this.options)},$u.prototype.onAdd=function(I){return this._map=I,this._container=l.create("div","mapboxgl-ctrl mapboxgl-ctrl-scale",I.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container},$u.prototype.onRemove=function(){l.remove(this._container),this._map.off("move",this._onMove),this._map=void 0},$u.prototype.setUnit=function(I){this.options.unit=I,ld(this._map,this._container,this.options)};var rs=function(I){this._fullscreen=!1,I&&I.container&&(I.container instanceof i.window.HTMLElement?this._container=I.container:i.warnOnce("Full screen control 'container' must be a DOM element.")),i.bindAll(["_onClickFullscreen","_changeIcon"],this),"onfullscreenchange"in i.window.document?this._fullscreenchange="fullscreenchange":"onmozfullscreenchange"in i.window.document?this._fullscreenchange="mozfullscreenchange":"onwebkitfullscreenchange"in i.window.document?this._fullscreenchange="webkitfullscreenchange":"onmsfullscreenchange"in i.window.document&&(this._fullscreenchange="MSFullscreenChange")};rs.prototype.onAdd=function(I){return this._map=I,this._container||(this._container=this._map.getContainer()),this._controlContainer=l.create("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._checkFullscreenSupport()?this._setupUI():(this._controlContainer.style.display="none",i.warnOnce("This device does not support fullscreen mode.")),this._controlContainer},rs.prototype.onRemove=function(){l.remove(this._controlContainer),this._map=null,i.window.document.removeEventListener(this._fullscreenchange,this._changeIcon)},rs.prototype._checkFullscreenSupport=function(){return!!(i.window.document.fullscreenEnabled||i.window.document.mozFullScreenEnabled||i.window.document.msFullscreenEnabled||i.window.document.webkitFullscreenEnabled)},rs.prototype._setupUI=function(){var I=this._fullscreenButton=l.create("button","mapboxgl-ctrl-fullscreen",this._controlContainer);l.create("span","mapboxgl-ctrl-icon",I).setAttribute("aria-hidden",!0),I.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),i.window.document.addEventListener(this._fullscreenchange,this._changeIcon)},rs.prototype._updateTitle=function(){var I=this._getTitle();this._fullscreenButton.setAttribute("aria-label",I),this._fullscreenButton.title=I},rs.prototype._getTitle=function(){return this._map._getUIString(this._isFullscreen()?"FullscreenControl.Exit":"FullscreenControl.Enter")},rs.prototype._isFullscreen=function(){return this._fullscreen},rs.prototype._changeIcon=function(){(i.window.document.fullscreenElement||i.window.document.mozFullScreenElement||i.window.document.webkitFullscreenElement||i.window.document.msFullscreenElement)===this._container!==this._fullscreen&&(this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle("mapboxgl-ctrl-shrink"),this._fullscreenButton.classList.toggle("mapboxgl-ctrl-fullscreen"),this._updateTitle())},rs.prototype._onClickFullscreen=function(){this._isFullscreen()?i.window.document.exitFullscreen?i.window.document.exitFullscreen():i.window.document.mozCancelFullScreen?i.window.document.mozCancelFullScreen():i.window.document.msExitFullscreen?i.window.document.msExitFullscreen():i.window.document.webkitCancelFullScreen&&i.window.document.webkitCancelFullScreen():this._container.requestFullscreen?this._container.requestFullscreen():this._container.mozRequestFullScreen?this._container.mozRequestFullScreen():this._container.msRequestFullscreen?this._container.msRequestFullscreen():this._container.webkitRequestFullscreen&&this._container.webkitRequestFullscreen()};var Ap={closeButton:!0,closeOnClick:!0,className:"",maxWidth:"240px"},Mp=function(I){function j(V){I.call(this),this.options=i.extend(Object.create(Ap),V),i.bindAll(["_update","_onClose","remove","_onMouseMove","_onMouseUp","_onDrag"],this)}return I&&(j.__proto__=I),j.prototype=Object.create(I&&I.prototype),j.prototype.constructor=j,j.prototype.addTo=function(V){return this._map&&this.remove(),this._map=V,this.options.closeOnClick&&this._map.on("click",this._onClose),this.options.closeOnMove&&this._map.on("move",this._onClose),this._map.on("remove",this.remove),this._update(),this._trackPointer?(this._map.on("mousemove",this._onMouseMove),this._map.on("mouseup",this._onMouseUp),this._container&&this._container.classList.add("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.add("mapboxgl-track-pointer")):this._map.on("move",this._update),this.fire(new i.Event("open")),this},j.prototype.isOpen=function(){return!!this._map},j.prototype.remove=function(){return this._content&&l.remove(this._content),this._container&&(l.remove(this._container),delete this._container),this._map&&(this._map.off("move",this._update),this._map.off("move",this._onClose),this._map.off("click",this._onClose),this._map.off("remove",this.remove),this._map.off("mousemove",this._onMouseMove),this._map.off("mouseup",this._onMouseUp),this._map.off("drag",this._onDrag),delete this._map),this.fire(new i.Event("close")),this},j.prototype.getLngLat=function(){return this._lngLat},j.prototype.setLngLat=function(V){return this._lngLat=i.LngLat.convert(V),this._pos=null,this._trackPointer=!1,this._update(),this._map&&(this._map.on("move",this._update),this._map.off("mousemove",this._onMouseMove),this._container&&this._container.classList.remove("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.remove("mapboxgl-track-pointer")),this},j.prototype.trackPointer=function(){return this._trackPointer=!0,this._pos=null,this._update(),this._map&&(this._map.off("move",this._update),this._map.on("mousemove",this._onMouseMove),this._map.on("drag",this._onDrag),this._container&&this._container.classList.add("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.add("mapboxgl-track-pointer")),this},j.prototype.getElement=function(){return this._container},j.prototype.setText=function(V){return this.setDOMContent(i.window.document.createTextNode(V))},j.prototype.setHTML=function(V){var X,se=i.window.document.createDocumentFragment(),he=i.window.document.createElement("body");for(he.innerHTML=V;X=he.firstChild;)se.appendChild(X);return this.setDOMContent(se)},j.prototype.getMaxWidth=function(){return this._container&&this._container.style.maxWidth},j.prototype.setMaxWidth=function(V){return this.options.maxWidth=V,this._update(),this},j.prototype.setDOMContent=function(V){return this._createContent(),this._content.appendChild(V),this._update(),this},j.prototype.addClassName=function(V){this._container&&this._container.classList.add(V)},j.prototype.removeClassName=function(V){this._container&&this._container.classList.remove(V)},j.prototype.toggleClassName=function(V){if(this._container)return this._container.classList.toggle(V)},j.prototype._createContent=function(){this._content&&l.remove(this._content),this._content=l.create("div","mapboxgl-popup-content",this._container),this.options.closeButton&&(this._closeButton=l.create("button","mapboxgl-popup-close-button",this._content),this._closeButton.type="button",this._closeButton.setAttribute("aria-label","Close popup"),this._closeButton.innerHTML="×",this._closeButton.addEventListener("click",this._onClose))},j.prototype._onMouseUp=function(V){this._update(V.point)},j.prototype._onMouseMove=function(V){this._update(V.point)},j.prototype._onDrag=function(V){this._update(V.point)},j.prototype._update=function(V){var X=this,se=this._lngLat||this._trackPointer;if(this._map&&se&&this._content&&(this._container||(this._container=l.create("div","mapboxgl-popup",this._map.getContainer()),this._tip=l.create("div","mapboxgl-popup-tip",this._container),this._container.appendChild(this._content),this.options.className&&this.options.className.split(" ").forEach(function(xt){return X._container.classList.add(xt)}),this._trackPointer&&this._container.classList.add("mapboxgl-popup-track-pointer")),this.options.maxWidth&&this._container.style.maxWidth!==this.options.maxWidth&&(this._container.style.maxWidth=this.options.maxWidth),this._map.transform.renderWorldCopies&&!this._trackPointer&&(this._lngLat=qu(this._lngLat,this._pos,this._map.transform)),!this._trackPointer||V)){var he=this._pos=this._trackPointer&&V?V:this._map.project(this._lngLat),ve=this.options.anchor,be=function xt(Lt){if(Lt){if(typeof Lt=="number"){var _t=Math.round(Math.sqrt(.5*Math.pow(Lt,2)));return{center:new i.Point(0,0),top:new i.Point(0,Lt),"top-left":new i.Point(_t,_t),"top-right":new i.Point(-_t,_t),bottom:new i.Point(0,-Lt),"bottom-left":new i.Point(_t,-_t),"bottom-right":new i.Point(-_t,-_t),left:new i.Point(Lt,0),right:new i.Point(-Lt,0)}}if(Lt instanceof i.Point||Array.isArray(Lt)){var Mt=i.Point.convert(Lt);return{center:Mt,top:Mt,"top-left":Mt,"top-right":Mt,bottom:Mt,"bottom-left":Mt,"bottom-right":Mt,left:Mt,right:Mt}}return{center:i.Point.convert(Lt.center||[0,0]),top:i.Point.convert(Lt.top||[0,0]),"top-left":i.Point.convert(Lt["top-left"]||[0,0]),"top-right":i.Point.convert(Lt["top-right"]||[0,0]),bottom:i.Point.convert(Lt.bottom||[0,0]),"bottom-left":i.Point.convert(Lt["bottom-left"]||[0,0]),"bottom-right":i.Point.convert(Lt["bottom-right"]||[0,0]),left:i.Point.convert(Lt.left||[0,0]),right:i.Point.convert(Lt.right||[0,0])}}return xt(new i.Point(0,0))}(this.options.offset);if(!ve){var Se,Ue=this._container.offsetWidth,Xe=this._container.offsetHeight;Se=he.y+be.bottom.ythis._map.transform.height-Xe?["bottom"]:[],he.xthis._map.transform.width-Ue/2&&Se.push("right"),ve=Se.length===0?"bottom":Se.join("-")}var it=he.add(be[ve]).round();l.setTransform(this._container,yu[ve]+" translate("+it.x+"px,"+it.y+"px)"),yo(this._container,ve,"popup")}},j.prototype._onClose=function(){this.remove()},j}(i.Evented),ce={version:i.version,supported:s,setRTLTextPlugin:i.setRTLTextPlugin,getRTLTextPluginStatus:i.getRTLTextPluginStatus,Map:ml,NavigationControl:ka,GeolocateControl:sd,AttributionControl:So,ScaleControl:$u,FullscreenControl:rs,Popup:Mp,Marker:Lc,Style:kr,LngLat:i.LngLat,LngLatBounds:i.LngLatBounds,Point:i.Point,MercatorCoordinate:i.MercatorCoordinate,Evented:i.Evented,config:i.config,prewarm:function(){tt().acquire(kt)},clearPrewarmedResources:function(){var I=Vt;I&&(I.isPreloaded()&&I.numActive()===1?(I.release(kt),Vt=null):console.warn("Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()"))},get accessToken(){return i.config.ACCESS_TOKEN},set accessToken(I){i.config.ACCESS_TOKEN=I},get baseApiUrl(){return i.config.API_URL},set baseApiUrl(I){i.config.API_URL=I},get workerCount(){return wt.workerCount},set workerCount(I){wt.workerCount=I},get maxParallelImageRequests(){return i.config.MAX_PARALLEL_IMAGE_REQUESTS},set maxParallelImageRequests(I){i.config.MAX_PARALLEL_IMAGE_REQUESTS=I},clearStorage:function(I){i.clearTileCache(I)},workerUrl:""};return ce}),u})},{}],240:[function(e,o,f){o.exports=Math.log2||function(r){return Math.log(r)*Math.LOG2E}},{}],241:[function(e,o,f){o.exports=function(a,u){u||(u=a,a=window);var c=0,i=0,s=0,l={shift:!1,alt:!1,control:!1,meta:!1},d=!1;function h(T){var _=!1;return"altKey"in T&&(_=_||T.altKey!==l.alt,l.alt=!!T.altKey),"shiftKey"in T&&(_=_||T.shiftKey!==l.shift,l.shift=!!T.shiftKey),"ctrlKey"in T&&(_=_||T.ctrlKey!==l.control,l.control=!!T.ctrlKey),"metaKey"in T&&(_=_||T.metaKey!==l.meta,l.meta=!!T.metaKey),_}function m(T,_){var M=r.x(_),A=r.y(_);"buttons"in _&&(T=0|_.buttons),(T!==c||M!==i||A!==s||h(_))&&(c=0|T,i=M||0,s=A||0,u&&u(c,i,s,l))}function g(T){m(0,T)}function p(){(c||i||s||l.shift||l.alt||l.meta||l.control)&&(i=s=0,c=0,l.shift=l.alt=l.control=l.meta=!1,u&&u(0,0,0,l))}function v(T){h(T)&&u&&u(c,i,s,l)}function y(T){r.buttons(T)===0?m(0,T):m(c,T)}function x(T){m(c|r.buttons(T),T)}function w(T){m(c&~r.buttons(T),T)}function k(){d||(d=!0,a.addEventListener("mousemove",y),a.addEventListener("mousedown",x),a.addEventListener("mouseup",w),a.addEventListener("mouseleave",g),a.addEventListener("mouseenter",g),a.addEventListener("mouseout",g),a.addEventListener("mouseover",g),a.addEventListener("blur",p),a.addEventListener("keyup",v),a.addEventListener("keydown",v),a.addEventListener("keypress",v),a!==window&&(window.addEventListener("blur",p),window.addEventListener("keyup",v),window.addEventListener("keydown",v),window.addEventListener("keypress",v)))}k();var b={element:a};return Object.defineProperties(b,{enabled:{get:function(){return d},set:function(T){T?k():function(){!d||(d=!1,a.removeEventListener("mousemove",y),a.removeEventListener("mousedown",x),a.removeEventListener("mouseup",w),a.removeEventListener("mouseleave",g),a.removeEventListener("mouseenter",g),a.removeEventListener("mouseout",g),a.removeEventListener("mouseover",g),a.removeEventListener("blur",p),a.removeEventListener("keyup",v),a.removeEventListener("keydown",v),a.removeEventListener("keypress",v),a!==window&&(window.removeEventListener("blur",p),window.removeEventListener("keyup",v),window.removeEventListener("keydown",v),window.removeEventListener("keypress",v)))}()},enumerable:!0},buttons:{get:function(){return c},enumerable:!0},x:{get:function(){return i},enumerable:!0},y:{get:function(){return s},enumerable:!0},mods:{get:function(){return l},enumerable:!0}}),b};var r=e("mouse-event")},{"mouse-event":243}],242:[function(e,o,f){var r={left:0,top:0};o.exports=function(a,u,c){u=u||a.currentTarget||a.srcElement,Array.isArray(c)||(c=[0,0]);var i=a.clientX||0,s=a.clientY||0,l=(d=u,d===window||d===document||d===document.body?r:d.getBoundingClientRect()),d;return c[0]=i-l.left,c[1]=s-l.top,c}},{}],243:[function(e,o,f){function r(a){return a.target||a.srcElement||window}f.buttons=function(a){if(typeof a=="object"){if("buttons"in a)return a.buttons;if("which"in a){if((u=a.which)===2)return 4;if(u===3)return 2;if(u>0)return 1<=0)return 1<0&&d(m,M))}catch(A){v.call(new x(M),A)}}}function v(T){var _=this;_.triggered||(_.triggered=!0,_.def&&(_=_.def),_.msg=T,_.state=2,_.chain.length>0&&d(m,_))}function y(T,_,M,A){for(var S=0;S<_.length;S++)(function(E){T.resolve(_[E]).then(function(D){M(E,D)},A)})(S)}function x(T){this.def=T,this.triggered=!1}function w(T){this.promise=T,this.state=0,this.triggered=!1,this.chain=[],this.msg=void 0}function k(T){if(typeof T!="function")throw TypeError("Not a function");if(this.__NPO__!==0)throw TypeError("Not a promise");this.__NPO__=1;var _=new w(this);this.then=function(M,A){var S={success:typeof M!="function"||M,failure:typeof A=="function"&&A};return S.promise=new this.constructor(function(E,D){if(typeof E!="function"||typeof D!="function")throw TypeError("Not a function");S.resolve=E,S.reject=D}),_.chain.push(S),_.state!==0&&d(m,_),S.promise},this.catch=function(M){return this.then(void 0,M)};try{T.call(void 0,function(M){p.call(_,M)},function(M){v.call(_,M)})}catch(M){v.call(_,M)}}i=function(){var T,_,M;function A(S,E){this.fn=S,this.self=E,this.next=void 0}return{add:function(S,E){M=new A(S,E),_?_.next=M:T=M,_=M,M=void 0},drain:function(){var S=T;for(T=_=c=void 0;S;)S.fn.call(S.self),S=S.next}}}();var b=u({},"constructor",k,!1);return k.prototype=b,u(b,"__NPO__",0,!1),u(k,"resolve",function(T){return T&&typeof T=="object"&&T.__NPO__===1?T:new this(function(_,M){if(typeof _!="function"||typeof M!="function")throw TypeError("Not a function");_(T)})}),u(k,"reject",function(T){return new this(function(_,M){if(typeof _!="function"||typeof M!="function")throw TypeError("Not a function");M(T)})}),u(k,"all",function(T){var _=this;return s.call(T)!="[object Array]"?_.reject(TypeError("Not an array")):T.length===0?_.resolve([]):new _(function(M,A){if(typeof M!="function"||typeof A!="function")throw TypeError("Not a function");var S=T.length,E=Array(S),D=0;y(_,T,function(O,R){E[O]=R,++D===S&&M(E)},A)})}),u(k,"race",function(T){var _=this;return s.call(T)!="[object Array]"?_.reject(TypeError("Not an array")):new _(function(M,A){if(typeof M!="function"||typeof A!="function")throw TypeError("Not a function");y(_,T,function(S,E){M(E)},A)})}),k})}).call(this)}).call(this,typeof Ro<"u"?Ro:typeof self<"u"?self:typeof window<"u"?window:{},e("timers").setImmediate)},{timers:311}],246:[function(e,o,f){var r=Math.PI,a=l(120);function u(d,h,m,g){return["C",d,h,m,g,m,g]}function c(d,h,m,g,p,v){return["C",d/3+2/3*m,h/3+2/3*g,p/3+2/3*m,v/3+2/3*g,p,v]}function i(d,h,m,g,p,v,y,x,w,k){if(k)R=k[0],z=k[1],D=k[2],O=k[3];else{var b=s(d,h,-p);d=b.x,h=b.y;var T=(d-(x=(b=s(x,w,-p)).x))/2,_=(h-(w=b.y))/2,M=T*T/(m*m)+_*_/(g*g);M>1&&(m*=M=Math.sqrt(M),g*=M);var A=m*m,S=g*g,E=(v==y?-1:1)*Math.sqrt(Math.abs((A*S-A*_*_-S*T*T)/(A*_*_+S*T*T)));E==1/0&&(E=1);var D=E*m*_/g+(d+x)/2,O=E*-g*T/m+(h+w)/2,R=Math.asin(((h-O)/g).toFixed(9)),z=Math.asin(((w-O)/g).toFixed(9));(R=dz&&(R-=2*r),!y&&z>R&&(z-=2*r)}if(Math.abs(z-R)>a){var L=z,P=x,N=w;z=R+a*(y&&z>R?1:-1);var B=i(x=D+m*Math.cos(z),w=O+g*Math.sin(z),m,g,p,0,y,P,N,[z,L,D,O])}var G=Math.tan((z-R)/4),W=4/3*m*G,K=4/3*g*G,te=[2*d-(d+W*Math.sin(R)),2*h-(h-K*Math.cos(R)),x+W*Math.sin(z),w-K*Math.cos(z),x,w];if(k)return te;B&&(te=te.concat(B));for(var Y=0;Y7&&(m.push(M.splice(0,7)),M.unshift("C"));break;case"S":var S=k,E=b;h!="C"&&h!="S"||(S+=S-g,E+=E-p),M=["C",S,E,M[1],M[2],M[3],M[4]];break;case"T":h=="Q"||h=="T"?(x=2*k-x,w=2*b-w):(x=k,w=b),M=c(k,b,x,w,M[1],M[2]);break;case"Q":x=M[1],w=M[2],M=c(k,b,M[1],M[2],M[3],M[4]);break;case"L":M=u(k,b,M[1],M[2]);break;case"H":M=u(k,b,M[1],b);break;case"V":M=u(k,b,k,M[1]);break;case"Z":M=u(k,b,v,y)}h=A,k=M[M.length-2],b=M[M.length-1],M.length>4?(g=M[M.length-4],p=M[M.length-3]):(g=k,p=b),m.push(M)}return m}},{}],247:[function(e,o,f){var r=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable;function c(i){if(i==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(i)}o.exports=function(){try{if(!Object.assign)return!1;var i=new String("abc");if(i[5]="de",Object.getOwnPropertyNames(i)[0]==="5")return!1;for(var s={},l=0;l<10;l++)s["_"+String.fromCharCode(l)]=l;if(Object.getOwnPropertyNames(s).map(function(h){return s[h]}).join("")!=="0123456789")return!1;var d={};return"abcdefghijklmnopqrst".split("").forEach(function(h){d[h]=h}),Object.keys(Object.assign({},d)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}()?Object.assign:function(i,s){for(var l,d,h=c(i),m=1;m1e4)throw Error("References have circular dependency. Please, check them.");s[w]=x}),v=v.reverse(),s=s.map(function(x){return v.forEach(function(w){x=x.replace(new RegExp("(\\"+d+w+"\\"+d+")","g"),g[0]+"$1"+g[1])}),x})});var m=new RegExp("\\"+d+"([0-9]+)\\"+d);return h?s:function g(p,v,y){for(var x,w=[],k=0;x=m.exec(p);){if(k++>1e4)throw Error("Circular references in parenthesis");w.push(p.slice(0,x.index)),w.push(g(v[x[1]],v)),p=p.slice(x.index+x[0].length)}return w.push(p),w}(s[0],s)}function a(c,i){if(i&&i.flat){var s,l=i&&i.escape||"___",d=c[0];if(!d)return"";for(var h=new RegExp("\\"+l+"([0-9]+)\\"+l),m=0;d!=s;){if(m++>1e4)throw Error("Circular references in "+c);s=d,d=d.replace(h,g)}return d}return c.reduce(function p(v,y){return Array.isArray(y)&&(y=y.reduce(p,"")),v+y},"");function g(p,v){if(c[v]==null)throw Error("Reference "+v+"is undefined");return c[v]}}function u(c,i){return Array.isArray(c)?a(c,i):r(c,i)}u.parse=r,u.stringify=a,o.exports=u},{}],249:[function(e,o,f){var r=e("pick-by-alias");o.exports=function(a){var u;return arguments.length>1&&(a=arguments),typeof a=="string"?a=a.split(/\s/).map(parseFloat):typeof a=="number"&&(a=[a]),a.length&&typeof a[0]=="number"?u=a.length===1?{width:a[0],height:a[0],x:0,y:0}:a.length===2?{width:a[0],height:a[1],x:0,y:0}:{x:a[0],y:a[1],width:a[2]-a[0]||0,height:a[3]-a[1]||0}:a&&(a=r(a,{left:"x l left Left",top:"y t top Top",width:"w width W Width",height:"h height W Width",bottom:"b bottom Bottom",right:"r right Right"}),u={x:a.left||0,y:a.top||0},a.width==null?a.right?u.width=a.right-u.x:u.width=0:u.width=a.width,a.height==null?a.bottom?u.height=a.bottom-u.y:u.height=0:u.height=a.height),u}},{"pick-by-alias":253}],250:[function(e,o,f){o.exports=function(c){var i=[];return c.replace(a,function(s,l,d){var h=l.toLowerCase();for(d=function(m){var g=m.match(u);return g?g.map(Number):[]}(d),h=="m"&&d.length>2&&(i.push([l].concat(d.splice(0,2))),h="l",l=l=="m"?"l":"L");;){if(d.length==r[h])return d.unshift(l),i.push(d);if(d.length=-r},pointBetween:function(u,c,i){var s=u[1]-c[1],l=i[0]-c[0],d=u[0]-c[0],h=i[1]-c[1],m=d*l+s*h;return!(m-r)},pointsSameX:function(u,c){return Math.abs(u[0]-c[0])r!=d-s>r&&(l-g)*(s-p)/(d-p)+g-i>r&&(h=!h),l=g,d=p}return h}};return a}},{}],257:[function(e,o,f){var r={toPolygon:function(a,u){function c(l){if(l.length<=0)return a.segments({inverted:!1,regions:[]});function d(g){var p=g.slice(0,g.length-1);return a.segments({inverted:!1,regions:[p]})}for(var h=d(l[0]),m=1;m0})}function x(O,R){var z=O.seg,L=R.seg,P=z.start,N=z.end,B=L.start,G=L.end;c&&c.checkIntersection(z,L);var W=u.linesIntersect(P,N,B,G);if(W===!1){if(!u.pointsCollinear(P,N,B)||u.pointsSame(P,G)||u.pointsSame(N,B))return!1;var K=u.pointsSame(P,B),te=u.pointsSame(N,G);if(K&&te)return R;var Y=!K&&u.pointBetween(P,B,G),Z=!te&&u.pointBetween(N,B,G);if(K)return Z?h(R,N):h(O,G),R;Y&&(te||(Z?h(R,N):h(O,G)),h(R,P))}else W.alongA===0&&(W.alongB===-1?h(O,B):W.alongB===0?h(O,W.pt):W.alongB===1&&h(O,G)),W.alongB===0&&(W.alongA===-1?h(R,P):W.alongA===0?h(R,W.pt):W.alongA===1&&h(R,N));return!1}for(var w=[];!s.isEmpty();){var k=s.getHead();if(c&&c.vert(k.pt[0]),k.isStart){let O=function(){if(T){var R=x(k,T);if(R)return R}return!!_&&x(k,_)};c&&c.segmentNew(k.seg,k.primary);var b=y(k),T=b.before?b.before.ev:null,_=b.after?b.after.ev:null;c&&c.tempStatus(k.seg,!!T&&T.seg,!!_&&_.seg);var M,A=O();if(A){var S;a?(S=k.seg.myFill.below===null||k.seg.myFill.above!==k.seg.myFill.below)&&(A.seg.myFill.above=!A.seg.myFill.above):A.seg.otherFill=k.seg.myFill,c&&c.segmentUpdate(A.seg),k.other.remove(),k.remove()}if(s.getHead()!==k){c&&c.rewind(k.seg);continue}a?(S=k.seg.myFill.below===null||k.seg.myFill.above!==k.seg.myFill.below,k.seg.myFill.below=_?_.seg.myFill.above:g,k.seg.myFill.above=S?!k.seg.myFill.below:k.seg.myFill.below):k.seg.otherFill===null&&(M=_?k.primary===_.primary?_.seg.otherFill.above:_.seg.myFill.above:k.primary?p:g,k.seg.otherFill={above:M,below:M}),c&&c.status(k.seg,!!T&&T.seg,!!_&&_.seg),k.other.status=b.insert(r.node({ev:k}))}else{var E=k.status;if(E===null)throw new Error("PolyBool: Zero-length segment detected; your epsilon is probably too small or too large");if(v.exists(E.prev)&&v.exists(E.next)&&x(E.prev.ev,E.next.ev),c&&c.statusRemove(E.ev.seg),E.remove(),!k.primary){var D=k.seg.myFill;k.seg.myFill=k.seg.otherFill,k.seg.otherFill=D}w.push(k.seg)}s.getHead().remove()}return c&&c.done(),w}return a?{addRegion:function(g){for(var p,v,y,x=g[g.length-1],w=0;w0&&!this.aborted;){var s=this.ifds_to_read.shift();s.offset&&this.scan_ifd(s.id,s.offset,c)}},u.prototype.read_uint16=function(c){var i=this.input;if(c+2>i.length)throw r("unexpected EOF","EBADDATA");return this.big_endian?256*i[c]+i[c+1]:i[c]+256*i[c+1]},u.prototype.read_uint32=function(c){var i=this.input;if(c+4>i.length)throw r("unexpected EOF","EBADDATA");return this.big_endian?16777216*i[c]+65536*i[c+1]+256*i[c+2]+i[c+3]:i[c]+256*i[c+1]+65536*i[c+2]+16777216*i[c+3]},u.prototype.is_subifd_link=function(c,i){return c===0&&i===34665||c===0&&i===34853||c===34665&&i===40965},u.prototype.exif_format_length=function(c){switch(c){case 1:case 2:case 6:case 7:return 1;case 3:case 8:return 2;case 4:case 9:case 11:return 4;case 5:case 10:case 12:return 8;default:return 0}},u.prototype.exif_format_read=function(c,i){var s;switch(c){case 1:case 2:return s=this.input[i];case 6:return(s=this.input[i])|33554430*(128&s);case 3:return s=this.read_uint16(i);case 8:return(s=this.read_uint16(i))|131070*(32768&s);case 4:return s=this.read_uint32(i);case 9:return 0|(s=this.read_uint32(i));case 5:case 10:case 11:case 12:case 7:default:return null}},u.prototype.scan_ifd=function(c,i,s){var l=this.read_uint16(i);i+=2;for(var d=0;dthis.input.length)throw r("unexpected EOF","EBADDATA");for(var w=[],k=y,b=0;b0&&(this.ifds_to_read.push({id:h,offset:w[0]}),x=!0),s({is_big_endian:this.big_endian,ifd:c,tag:h,format:m,count:g,entry_offset:i+this.start,data_length:v,data_offset:y+this.start,value:w,is_subifd_link:x})===!1)return void(this.aborted=!0);i+=12}c===0&&this.ifds_to_read.push({id:1,offset:this.read_uint32(i)})},o.exports.ExifParser=u,o.exports.get_orientation=function(c){var i=0;try{return new u(c,0,c.length).each(function(s){if(s.ifd===0&&s.tag===274&&Array.isArray(s.value))return i=s.value[0],!1}),i}catch{return-1}}},{}],264:[function(e,o,f){var r=e("./common").readUInt16BE,a=e("./common").readUInt32BE;function u(h,m){if(h.length<4+m)return null;var g=a(h,m);return h.length>4&15,p=15&h[4],v=h[5]>>4&15,y=r(h,6),x=8,w=0;wb.width||k.width===b.width&&k.height>b.height?k:b}),v=g.reduce(function(k,b){return k.height>b.height||k.height===b.height&&k.width>b.width?k:b}),p.width>v.height||p.width===v.height&&p.height>v.width?p:v),x=1;m.transforms.forEach(function(k){var b={1:6,2:5,3:8,4:7,5:4,6:3,7:2,8:1},T={1:4,2:3,3:2,4:1,5:6,6:5,7:8,8:7};if(k.type==="imir"&&(x=k.value===0?T[x]:b[x=b[x=T[x]]]),k.type==="irot")for(var _=0;_1&&(y.variants=v.variants),v.orientation&&(y.orientation=v.orientation),v.exif_location&&v.exif_location.offset+v.exif_location.length<=l.length){var x=u(l,v.exif_location.offset),w=l.slice(v.exif_location.offset+x+4,v.exif_location.offset+v.exif_location.length),k=i.get_orientation(w);k>0&&(y.orientation=k)}return y}}}}}}},{"../common":262,"../exif_utils":263,"../miaf_utils":264}],266:[function(e,o,f){var r=e("../common").str2arr,a=e("../common").sliceEq,u=e("../common").readUInt16LE,c=r("BM");o.exports=function(i){if(!(i.length<26)&&a(i,0,c))return{width:u(i,18),height:u(i,22),type:"bmp",mime:"image/bmp",wUnits:"px",hUnits:"px"}}},{"../common":262}],267:[function(e,o,f){var r=e("../common").str2arr,a=e("../common").sliceEq,u=e("../common").readUInt16LE,c=r("GIF87a"),i=r("GIF89a");o.exports=function(s){if(!(s.length<10)&&(a(s,0,c)||a(s,0,i)))return{width:u(s,6),height:u(s,8),type:"gif",mime:"image/gif",wUnits:"px",hUnits:"px"}}},{"../common":262}],268:[function(e,o,f){var r=e("../common").readUInt16LE;o.exports=function(a){var u=r(a,0),c=r(a,2),i=r(a,4);if(u===0&&c===1&&i){for(var s=[],l={width:0,height:0},d=0;dl.width||m>l.height)&&(l=g)}return{width:l.width,height:l.height,variants:s,type:"ico",mime:"image/x-icon",wUnits:"px",hUnits:"px"}}}},{"../common":262}],269:[function(e,o,f){var r=e("../common").readUInt16BE,a=e("../common").str2arr,u=e("../common").sliceEq,c=e("../exif_utils"),i=a("Exif\0\0");o.exports=function(s){if(!(s.length<2)&&s[0]===255&&s[1]===216&&s[2]===255)for(var l=2;;){for(;;){if(s.length-l<2)return;if(s[l++]===255)break}for(var d,h,m=s[l++];m===255;)m=s[l++];if(208<=m&&m<=217||m===1)d=0;else{if(!(192<=m&&m<=254)||s.length-l<2)return;d=r(s,l)-2,l+=2}if(m===217||m===218)return;if(m===225&&d>=10&&u(s,l,i)&&(h=c.get_orientation(s.slice(l+6,l+d))),d>=5&&192<=m&&m<=207&&m!==196&&m!==200&&m!==204){if(s.length-l0&&(g.orientation=h),g}l+=d}}},{"../common":262,"../exif_utils":263}],270:[function(e,o,f){var r=e("../common").str2arr,a=e("../common").sliceEq,u=e("../common").readUInt32BE,c=r(`\x89PNG\r + +`),i=r("IHDR");o.exports=function(s){if(!(s.length<24)&&a(s,0,c)&&a(s,12,i))return{width:u(s,16),height:u(s,20),type:"png",mime:"image/png",wUnits:"px",hUnits:"px"}}},{"../common":262}],271:[function(e,o,f){var r=e("../common").str2arr,a=e("../common").sliceEq,u=e("../common").readUInt32BE,c=r("8BPS\0");o.exports=function(i){if(!(i.length<22)&&a(i,0,c))return{width:u(i,18),height:u(i,14),type:"psd",mime:"image/vnd.adobe.photoshop",wUnits:"px",hUnits:"px"}}},{"../common":262}],272:[function(e,o,f){function r(h){return typeof h=="number"&&isFinite(h)&&h>0}var a=/<[-_.:a-zA-Z0-9][^>]*>/,u=/^<([-_.:a-zA-Z0-9]+:)?svg\s/,c=/[^-]\bwidth="([^%]+?)"|[^-]\bwidth='([^%]+?)'/,i=/\bheight="([^%]+?)"|\bheight='([^%]+?)'/,s=/\bview[bB]ox="(.+?)"|\bview[bB]ox='(.+?)'/,l=/in$|mm$|cm$|pt$|pc$|px$|em$|ex$/;function d(h){return l.test(h)?h.match(l)[0]:"px"}o.exports=function(h){if(function(M){var A,S=0,E=M.length;for(M[0]===239&&M[1]===187&&M[2]===191&&(S=3);S>14&16383),type:"webp",mime:"image/webp",wUnits:"px",hUnits:"px"}}}function m(g,p){return{width:1+(g[p+6]<<16|g[p+5]<<8|g[p+4]),height:1+(g[p+9]<g.length)){for(;p+8=10?v=v||d(g,p+8):w==="VP8L"&&k>=9?v=v||h(g,p+8):w==="VP8X"&&k>=10?v=v||m(g,p+8):w==="EXIF"&&(y=i.get_orientation(g.slice(p+8,p+8+k)),p=1/0),p+=8+k}else p++;if(v)return y>0&&(v.orientation=y),v}}}},{"../common":262,"../exif_utils":263}],275:[function(e,o,f){o.exports={avif:e("./parse_sync/avif"),bmp:e("./parse_sync/bmp"),gif:e("./parse_sync/gif"),ico:e("./parse_sync/ico"),jpeg:e("./parse_sync/jpeg"),png:e("./parse_sync/png"),psd:e("./parse_sync/psd"),svg:e("./parse_sync/svg"),tiff:e("./parse_sync/tiff"),webp:e("./parse_sync/webp")}},{"./parse_sync/avif":265,"./parse_sync/bmp":266,"./parse_sync/gif":267,"./parse_sync/ico":268,"./parse_sync/jpeg":269,"./parse_sync/png":270,"./parse_sync/psd":271,"./parse_sync/svg":272,"./parse_sync/tiff":273,"./parse_sync/webp":274}],276:[function(e,o,f){var r=e("./lib/parsers_sync");o.exports=function(a){return function(u){for(var c=Object.keys(r),i=0;i1)for(var k=1;k"u"?r:window,c=["moz","webkit"],i="AnimationFrame",s=u["request"+i],l=u["cancel"+i]||u["cancelRequest"+i],d=0;!s&&d1&&(R.scaleRatio=[R.scale[0]*R.viewport.width,R.scale[1]*R.viewport.height],v(R),R.after&&R.after(R))}function D(R){if(R){R.length!=null?typeof R[0]=="number"&&(R=[{positions:R}]):Array.isArray(R)||(R=[R]);var z=0,L=0;if(A.groups=M=R.map(function(te,Y){var Z=M[Y];return te&&(typeof te=="function"?te={after:te}:typeof te[0]=="number"&&(te={positions:te}),te=c(te,{color:"color colors fill",capSize:"capSize cap capsize cap-size",lineWidth:"lineWidth line-width width line thickness",opacity:"opacity alpha",range:"range dataBox",viewport:"viewport viewBox",errors:"errors error",positions:"positions position data points"}),Z||(M[Y]=Z={id:Y,scale:null,translate:null,scaleFract:null,translateFract:null,draw:!0},te=i({},_,te)),u(Z,te,[{lineWidth:function(re){return .5*+re},capSize:function(re){return .5*+re},opacity:parseFloat,errors:function(re){return re=s(re),L+=re.length,re},positions:function(re,U){return re=s(re,"float64"),U.count=Math.floor(re.length/2),U.bounds=r(re,2),U.offset=z,z+=U.count,re}},{color:function(re,U){var q=U.count;if(re||(re="transparent"),!Array.isArray(re)||typeof re[0]=="number"){var $=re;re=Array(q);for(var ne=0;ne 0. && baClipping < length(normalWidth * endBotJoin)) { + //handle miter clipping + bTopCoord -= normalWidth * endTopJoin; + bTopCoord += normalize(endTopJoin * normalWidth) * baClipping; + } + + if (nextReverse) { + //make join rectangular + vec2 miterShift = normalWidth * endJoinDirection * miterLimit * .5; + float normalAdjust = 1. - min(miterLimit / endMiterRatio, 1.); + bBotCoord = bCoord + miterShift - normalAdjust * normalWidth * currNormal * .5; + bTopCoord = bCoord + miterShift + normalAdjust * normalWidth * currNormal * .5; + } + else if (!prevReverse && abClipping > 0. && abClipping < length(normalWidth * startBotJoin)) { + //handle miter clipping + aBotCoord -= normalWidth * startBotJoin; + aBotCoord += normalize(startBotJoin * normalWidth) * abClipping; + } + + vec2 aTopPosition = (aTopCoord) * adjustedScale + translate; + vec2 aBotPosition = (aBotCoord) * adjustedScale + translate; + + vec2 bTopPosition = (bTopCoord) * adjustedScale + translate; + vec2 bBotPosition = (bBotCoord) * adjustedScale + translate; + + //position is normalized 0..1 coord on the screen + vec2 position = (aTopPosition * lineTop + aBotPosition * lineBot) * lineStart + (bTopPosition * lineTop + bBotPosition * lineBot) * lineEnd; + + startCoord = aCoord * scaleRatio + translate * viewport.zw + viewport.xy; + endCoord = bCoord * scaleRatio + translate * viewport.zw + viewport.xy; + + gl_Position = vec4(position * 2.0 - 1.0, depth, 1); + + enableStartMiter = step(dot(currTangent, prevTangent), .5); + enableEndMiter = step(dot(currTangent, nextTangent), .5); + + //bevel miter cutoffs + if (miterMode == 1.) { + if (enableStartMiter == 1.) { + vec2 startMiterWidth = vec2(startJoinDirection) * thickness * miterLimit * .5; + startCutoff = vec4(aCoord, aCoord); + startCutoff.zw += vec2(-startJoinDirection.y, startJoinDirection.x) / scaleRatio; + startCutoff = startCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw; + startCutoff += viewport.xyxy; + startCutoff += startMiterWidth.xyxy; + } + + if (enableEndMiter == 1.) { + vec2 endMiterWidth = vec2(endJoinDirection) * thickness * miterLimit * .5; + endCutoff = vec4(bCoord, bCoord); + endCutoff.zw += vec2(-endJoinDirection.y, endJoinDirection.x) / scaleRatio; + endCutoff = endCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw; + endCutoff += viewport.xyxy; + endCutoff += endMiterWidth.xyxy; + } + } + + //round miter cutoffs + else if (miterMode == 2.) { + if (enableStartMiter == 1.) { + vec2 startMiterWidth = vec2(startJoinDirection) * thickness * abs(dot(startJoinDirection, currNormal)) * .5; + startCutoff = vec4(aCoord, aCoord); + startCutoff.zw += vec2(-startJoinDirection.y, startJoinDirection.x) / scaleRatio; + startCutoff = startCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw; + startCutoff += viewport.xyxy; + startCutoff += startMiterWidth.xyxy; + } + + if (enableEndMiter == 1.) { + vec2 endMiterWidth = vec2(endJoinDirection) * thickness * abs(dot(endJoinDirection, currNormal)) * .5; + endCutoff = vec4(bCoord, bCoord); + endCutoff.zw += vec2(-endJoinDirection.y, endJoinDirection.x) / scaleRatio; + endCutoff = endCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw; + endCutoff += viewport.xyxy; + endCutoff += endMiterWidth.xyxy; + } + } +} +`]),frag:c([`precision highp float; +#define GLSLIFY 1 + +uniform float dashLength, pixelRatio, thickness, opacity, id, miterMode; +uniform sampler2D dashTexture; + +varying vec4 fragColor; +varying vec2 tangent; +varying vec4 startCutoff, endCutoff; +varying vec2 startCoord, endCoord; +varying float enableStartMiter, enableEndMiter; + +float distToLine(vec2 p, vec2 a, vec2 b) { + vec2 diff = b - a; + vec2 perp = normalize(vec2(-diff.y, diff.x)); + return dot(p - a, perp); +} + +void main() { + float alpha = 1., distToStart, distToEnd; + float cutoff = thickness * .5; + + //bevel miter + if (miterMode == 1.) { + if (enableStartMiter == 1.) { + distToStart = distToLine(gl_FragCoord.xy, startCutoff.xy, startCutoff.zw); + if (distToStart < -1.) { + discard; + return; + } + alpha *= min(max(distToStart + 1., 0.), 1.); + } + + if (enableEndMiter == 1.) { + distToEnd = distToLine(gl_FragCoord.xy, endCutoff.xy, endCutoff.zw); + if (distToEnd < -1.) { + discard; + return; + } + alpha *= min(max(distToEnd + 1., 0.), 1.); + } + } + + // round miter + else if (miterMode == 2.) { + if (enableStartMiter == 1.) { + distToStart = distToLine(gl_FragCoord.xy, startCutoff.xy, startCutoff.zw); + if (distToStart < 0.) { + float radius = length(gl_FragCoord.xy - startCoord); + + if(radius > cutoff + .5) { + discard; + return; + } + + alpha -= smoothstep(cutoff - .5, cutoff + .5, radius); + } + } + + if (enableEndMiter == 1.) { + distToEnd = distToLine(gl_FragCoord.xy, endCutoff.xy, endCutoff.zw); + if (distToEnd < 0.) { + float radius = length(gl_FragCoord.xy - endCoord); + + if(radius > cutoff + .5) { + discard; + return; + } + + alpha -= smoothstep(cutoff - .5, cutoff + .5, radius); + } + } + } + + float t = fract(dot(tangent, gl_FragCoord.xy) / dashLength) * .5 + .25; + float dash = texture2D(dashTexture, vec2(t, .5)).r; + + gl_FragColor = fragColor; + gl_FragColor.a *= alpha * opacity * dash; +} +`]),attributes:{lineEnd:{buffer:b,divisor:0,stride:8,offset:0},lineTop:{buffer:b,divisor:0,stride:8,offset:4},aColor:{buffer:w.prop("colorBuffer"),stride:4,offset:0,divisor:1},bColor:{buffer:w.prop("colorBuffer"),stride:4,offset:4,divisor:1},prevCoord:{buffer:w.prop("positionBuffer"),stride:8,offset:0,divisor:1},aCoord:{buffer:w.prop("positionBuffer"),stride:8,offset:8,divisor:1},bCoord:{buffer:w.prop("positionBuffer"),stride:8,offset:16,divisor:1},nextCoord:{buffer:w.prop("positionBuffer"),stride:8,offset:24,divisor:1}}},T))}catch{k=_}return{fill:w({primitive:"triangle",elements:function(M,A){return A.triangles},offset:0,vert:c([`precision highp float; +#define GLSLIFY 1 + +attribute vec2 position, positionFract; + +uniform vec4 color; +uniform vec2 scale, scaleFract, translate, translateFract; +uniform float pixelRatio, id; +uniform vec4 viewport; +uniform float opacity; + +varying vec4 fragColor; + +const float MAX_LINES = 256.; + +void main() { + float depth = (MAX_LINES - 4. - id) / (MAX_LINES); + + vec2 position = position * scale + translate + + positionFract * scale + translateFract + + position * scaleFract + + positionFract * scaleFract; + + gl_Position = vec4(position * 2.0 - 1.0, depth, 1); + + fragColor = color / 255.; + fragColor.a *= opacity; +} +`]),frag:c([`precision highp float; +#define GLSLIFY 1 + +varying vec4 fragColor; + +void main() { + gl_FragColor = fragColor; +} +`]),uniforms:{scale:w.prop("scale"),color:w.prop("fill"),scaleFract:w.prop("scaleFract"),translateFract:w.prop("translateFract"),translate:w.prop("translate"),opacity:w.prop("opacity"),pixelRatio:w.context("pixelRatio"),id:w.prop("id"),viewport:function(M,A){return[A.viewport.x,A.viewport.y,M.viewportWidth,M.viewportHeight]}},attributes:{position:{buffer:w.prop("positionBuffer"),stride:8,offset:8},positionFract:{buffer:w.prop("positionFractBuffer"),stride:8,offset:8}},blend:T.blend,depth:{enable:!1},scissor:T.scissor,stencil:T.stencil,viewport:T.viewport}),rect:_,miter:k}},x.defaults={dashes:null,join:"miter",miterLimit:1,thickness:10,cap:"square",color:"black",opacity:1,overlay:!1,viewport:null,range:null,close:!1,fill:null},x.prototype.render=function(){for(var w,k=[],b=arguments.length;b--;)k[b]=arguments[b];k.length&&(w=this).update.apply(w,k),this.draw()},x.prototype.draw=function(){for(var w=this,k=[],b=arguments.length;b--;)k[b]=arguments[b];return(k.length?k:this.passes).forEach(function(T,_){var M;if(T&&Array.isArray(T))return(M=w).draw.apply(M,T);typeof T=="number"&&(T=w.passes[T]),T&&T.count>1&&T.opacity&&(w.regl._refresh(),T.fill&&T.triangles&&T.triangles.length>2&&w.shaders.fill(T),T.thickness&&(T.scale[0]*T.viewport.width>x.precisionThreshold||T.scale[1]*T.viewport.height>x.precisionThreshold||T.join==="rect"||!T.join&&(T.thickness<=2||T.count>=x.maxPoints)?w.shaders.rect(T):w.shaders.miter(T)))}),this},x.prototype.update=function(w){var k=this;if(w){w.length!=null?typeof w[0]=="number"&&(w=[{positions:w}]):Array.isArray(w)||(w=[w]);var b=this.regl,T=this.gl;if(w.forEach(function(E,D){var O=k.passes[D];if(E!==void 0)if(E!==null){if(typeof E[0]=="number"&&(E={positions:E}),E=i(E,{positions:"positions points data coords",thickness:"thickness lineWidth lineWidths line-width linewidth width stroke-width strokewidth strokeWidth",join:"lineJoin linejoin join type mode",miterLimit:"miterlimit miterLimit",dashes:"dash dashes dasharray dash-array dashArray",color:"color colour stroke colors colours stroke-color strokeColor",fill:"fill fill-color fillColor",opacity:"alpha opacity",overlay:"overlay crease overlap intersect",close:"closed close closed-path closePath",range:"range dataBox",viewport:"viewport viewBox",hole:"holes hole hollow",splitNull:"splitNull"}),O||(k.passes[D]=O={id:D,scale:null,scaleFract:null,translate:null,translateFract:null,count:0,hole:[],depth:0,dashLength:1,dashTexture:b.texture({channels:1,data:new Uint8Array([255]),width:1,height:1,mag:"linear",min:"linear"}),colorBuffer:b.buffer({usage:"dynamic",type:"uint8",data:new Uint8Array}),positionBuffer:b.buffer({usage:"dynamic",type:"float",data:new Uint8Array}),positionFractBuffer:b.buffer({usage:"dynamic",type:"float",data:new Uint8Array})},E=u({},x.defaults,E)),E.thickness!=null&&(O.thickness=parseFloat(E.thickness)),E.opacity!=null&&(O.opacity=parseFloat(E.opacity)),E.miterLimit!=null&&(O.miterLimit=parseFloat(E.miterLimit)),E.overlay!=null&&(O.overlay=!!E.overlay,D=H});(q=q.slice(0,Q)).push(H)}for(var ee=function(Ot){var Wt=G.slice(2*ne,2*q[Ot]).concat(H?G.slice(2*H):[]),Jt=(O.hole||[]).map(function(Ge){return Ge-H+(q[Ot]-ne)}),Be=l(Wt,Jt);Be=Be.map(function(Ge){return Ge+ne+(Ge+ne_.length)&&(M=_.length);for(var A=0,S=new Array(M);A 1.0 + delta) { + discard; + } + + alpha -= smoothstep(1.0 - delta, 1.0 + delta, radius); + + float borderRadius = fragBorderRadius; + float ratio = smoothstep(borderRadius - delta, borderRadius + delta, radius); + vec4 color = mix(fragColor, fragBorderColor, ratio); + color.a *= alpha * opacity; + gl_FragColor = color; +} +`]),z.vert=m([`precision highp float; +#define GLSLIFY 1 + +attribute float x, y, xFract, yFract; +attribute float size, borderSize; +attribute vec4 colorId, borderColorId; +attribute float isActive; + +uniform bool constPointSize; +uniform float pixelRatio; +uniform vec2 paletteSize, scale, scaleFract, translate, translateFract; +uniform sampler2D paletteTexture; + +const float maxSize = 100.; + +varying vec4 fragColor, fragBorderColor; +varying float fragBorderRadius, fragWidth; + +float pointSizeScale = (constPointSize) ? 2. : pixelRatio; + +bool isDirect = (paletteSize.x < 1.); + +vec4 getColor(vec4 id) { + return isDirect ? id / 255. : texture2D(paletteTexture, + vec2( + (id.x + .5) / paletteSize.x, + (id.y + .5) / paletteSize.y + ) + ); +} + +void main() { + // ignore inactive points + if (isActive == 0.) return; + + vec2 position = vec2(x, y); + vec2 positionFract = vec2(xFract, yFract); + + vec4 color = getColor(colorId); + vec4 borderColor = getColor(borderColorId); + + float size = size * maxSize / 255.; + float borderSize = borderSize * maxSize / 255.; + + gl_PointSize = (size + borderSize) * pointSizeScale; + + vec2 pos = (position + translate) * scale + + (positionFract + translateFract) * scale + + (position + translate) * scaleFract + + (positionFract + translateFract) * scaleFract; + + gl_Position = vec4(pos * 2. - 1., 0., 1.); + + fragBorderRadius = 1. - 2. * borderSize / (size + borderSize); + fragColor = color; + fragBorderColor = borderColor.a == 0. || borderSize == 0. ? vec4(color.rgb, 0.) : borderColor; + fragWidth = 1. / gl_PointSize; +} +`]),y&&(z.frag=z.frag.replace("smoothstep","smoothStep"),R.frag=R.frag.replace("smoothstep","smoothStep")),this.drawCircle=_(z)}b.defaults={color:"black",borderColor:"transparent",borderSize:0,size:12,opacity:1,marker:void 0,viewport:null,range:null,pixelSize:null,count:0,offset:0,bounds:null,positions:[],snap:1e4},b.prototype.render=function(){return arguments.length&&this.update.apply(this,arguments),this.draw(),this},b.prototype.draw=function(){for(var _=this,M=arguments.length,A=new Array(M),S=0;Swe)?me.tree=d(fe,{bounds:Me}):we&&we.length&&(me.tree=we),me.tree){var ke={primitive:"points",usage:"static",data:me.tree,type:"uint32"};me.elements?me.elements(ke):me.elements=O.elements(ke)}var Ee=x.float32(fe);return Te({data:Ee,usage:"dynamic"}),Oe({data:x.fract32(fe,Ee),usage:"dynamic"}),de({data:new Uint8Array(ye),type:"uint8",usage:"stream"}),fe}},{marker:function(fe,me,_e){var we=me.activation;if(we.forEach(function(Ee){return Ee&&Ee.destroy&&Ee.destroy()}),we.length=0,fe&&typeof fe[0]!="number"){for(var Te=[],Oe=0,de=Math.min(fe.length,me.count);Oe=0)return D;if(_ instanceof Uint8Array||_ instanceof Uint8ClampedArray)M=_;else{M=new Uint8Array(_.length);for(var O=0,R=_.length;O4*S&&(this.tooManyColors=!0),this.updatePalette(A),E.length===1?E[0]:E},b.prototype.updatePalette=function(_){if(!this.tooManyColors){var M=this.maxColors,A=this.paletteTexture,S=Math.ceil(.25*_.length/M);if(S>1)for(var E=.25*(_=_.slice()).length%M;E2?(T[0],T[2],x=T[1],w=T[3]):T.length?(x=T[0],w=T[1]):(T.x,x=T.y,T.x+T.width,w=T.y+T.height),_.length>2?(k=_[0],b=_[2],_[1],_[3]):_.length?(k=_[0],b=_[1]):(k=_.x,_.y,b=_.x+_.width,_.y+_.height),[k,x,b,w]}function g(p){if(typeof p=="number")return[p,p,p,p];if(p.length===2)return[p[0],p[1],p[0],p[1]];var v=s(p);return[v.x,v.y,v.x+v.width,v.y+v.height]}o.exports=d,d.prototype.render=function(){for(var p,v=this,y=[],x=arguments.length;x--;)y[x]=arguments[x];return y.length&&(p=this).update.apply(p,y),this.regl.attributes.preserveDrawingBuffer?this.draw():(this.dirty?this.planned==null&&(this.planned=c(function(){v.draw(),v.dirty=!0,v.planned=null})):(this.draw(),this.dirty=!0,c(function(){v.dirty=!1})),this)},d.prototype.update=function(){for(var p,v=[],y=arguments.length;y--;)v[y]=arguments[y];if(v.length){for(var x=0;xL))&&(k.lower||!(z"u"?1:window.devicePixelRatio,Ut=!1,tt={},bt=function(St){},zt=function(){};if(typeof ot=="string"?De=document.querySelector(ot):typeof ot=="object"&&(typeof ot.nodeName=="string"&&typeof ot.appendChild=="function"&&typeof ot.getBoundingClientRect=="function"?De=ot:typeof ot.drawArrays=="function"||typeof ot.drawElements=="function"?rt=(lt=ot).canvas:("gl"in ot?lt=ot.gl:"canvas"in ot?rt=c(ot.canvas):"container"in ot&&(He=c(ot.container)),"attributes"in ot&&(Ae=ot.attributes),"extensions"in ot&&(kt=u(ot.extensions)),"optionalExtensions"in ot&&(wt=u(ot.optionalExtensions)),"onDone"in ot&&(bt=ot.onDone),"profile"in ot&&(Ut=!!ot.profile),"pixelRatio"in ot&&(Vt=+ot.pixelRatio),"cachedCode"in ot&&(tt=ot.cachedCode))),De&&(De.nodeName.toLowerCase()==="canvas"?rt=De:He=De),!lt){if(!rt){if(!(De=function(St,Dt,Le){function Je(){var It=window.innerWidth,Zt=window.innerHeight;St!==document.body&&(It=(Zt=Et.getBoundingClientRect()).right-Zt.left,Zt=Zt.bottom-Zt.top),Et.width=Le*It,Et.height=Le*Zt}var st,Et=document.createElement("canvas");return H(Et.style,{border:0,margin:0,padding:0,top:0,left:0,width:"100%",height:"100%"}),St.appendChild(Et),St===document.body&&(Et.style.position="absolute",H(St.style,{margin:0,padding:0})),St!==document.body&&typeof ResizeObserver=="function"?(st=new ResizeObserver(function(){setTimeout(Je)})).observe(St):window.addEventListener("resize",Je,!1),Je(),{canvas:Et,onDestroy:function(){st?st.disconnect():window.removeEventListener("resize",Je),St.removeChild(Et)}}}(He||document.body,0,Vt)))return null;rt=De.canvas,zt=De.onDestroy}Ae.premultipliedAlpha===void 0&&(Ae.premultipliedAlpha=!0),lt=function(St,Dt){function Le(Je){try{return St.getContext(Je,Dt)}catch{return null}}return Le("webgl")||Le("experimental-webgl")||Le("webgl-experimental")}(rt,Ae)}return lt?{gl:lt,canvas:rt,container:He,extensions:kt,optionalExtensions:wt,pixelRatio:Vt,profile:Ut,cachedCode:tt,onDone:bt,onDestroy:zt}:(zt(),bt("webgl not supported, try upgrading your browser or graphics drivers http://get.webgl.org"),null)}function s(Ae,De){for(var He=Array(Ae),rt=0;rt>>=De))<<3,(De|=He=(15<(Ae>>>=He))<<2)|(He=(3<(Ae>>>=He))<<1)|Ae>>>He>>1}function d(){function Ae(rt){e:{for(var lt=16;268435456>=lt;lt*=16)if(rt<=lt){rt=lt;break e}rt=0}return 0<(lt=He[l(rt)>>2]).length?lt.pop():new ArrayBuffer(rt)}function De(rt){He[l(rt.byteLength)>>2].push(rt)}var He=s(8,function(){return[]});return{alloc:Ae,free:De,allocType:function(rt,lt){var ot=null;switch(rt){case 5120:ot=new Int8Array(Ae(lt),0,lt);break;case 5121:ot=new Uint8Array(Ae(lt),0,lt);break;case 5122:ot=new Int16Array(Ae(2*lt),0,lt);break;case 5123:ot=new Uint16Array(Ae(2*lt),0,lt);break;case 5124:ot=new Int32Array(Ae(4*lt),0,lt);break;case 5125:ot=new Uint32Array(Ae(4*lt),0,lt);break;case 5126:ot=new Float32Array(Ae(4*lt),0,lt);break;default:return null}return ot.length!==lt?ot.subarray(0,lt):ot},freeType:function(rt){De(rt.buffer)}}}function h(Ae){return!!Ae&&typeof Ae=="object"&&Array.isArray(Ae.shape)&&Array.isArray(Ae.stride)&&typeof Ae.offset=="number"&&Ae.shape.length===Ae.stride.length&&(Array.isArray(Ae.data)||ge(Ae.data))}function m(Ae,De,He,rt,lt,ot){for(var kt=0;kt(zt=Le)&&(zt=bt.buffer.byteLength,Et===5123?zt>>=1:Et===5125&&(zt>>=2)),bt.vertCount=zt,zt=Dt,0>Dt&&(zt=4,(Dt=bt.buffer.dimension)===1&&(zt=0),Dt===2&&(zt=1),Dt===3&&(zt=4)),bt.primType=zt}function kt(bt){rt.elementsCount--,delete wt[bt.id],bt.buffer.destroy(),bt.buffer=null}var wt={},Vt=0,Ut={uint8:5121,uint16:5123};De.oes_element_index_uint&&(Ut.uint32=5125),lt.prototype.bind=function(){this.buffer.bind()};var tt=[];return{create:function(bt,zt){function St(Je){if(Je)if(typeof Je=="number")Dt(Je),Le.primType=4,Le.vertCount=0|Je,Le.type=5121;else{var st=null,Et=35044,It=-1,Zt=-1,Kt=0,Ht=0;Array.isArray(Je)||ge(Je)||h(Je)?st=Je:("data"in Je&&(st=Je.data),"usage"in Je&&(Et=Te[Je.usage]),"primitive"in Je&&(It=Me[Je.primitive]),"count"in Je&&(Zt=0|Je.count),"type"in Je&&(Ht=Ut[Je.type]),"length"in Je?Kt=0|Je.length:(Kt=Zt,Ht===5123||Ht===5122?Kt*=2:Ht!==5125&&Ht!==5124||(Kt*=4))),ot(Le,st,Et,It,Zt,Kt,Ht)}else Dt(),Le.primType=4,Le.vertCount=0,Le.type=5121;return St}var Dt=He.create(null,34963,!0),Le=new lt(Dt._buffer);return rt.elementsCount++,St(bt),St._reglType="elements",St._elements=Le,St.subdata=function(Je,st){return Dt.subdata(Je,st),St},St.destroy=function(){kt(Le)},St},createStream:function(bt){var zt=tt.pop();return zt||(zt=new lt(He.create(null,34963,!0,!1)._buffer)),ot(zt,bt,35040,-1,-1,0,0),zt},destroyStream:function(bt){tt.push(bt)},getElements:function(bt){return typeof bt=="function"&&bt._elements instanceof lt?bt._elements:null},clear:function(){fe(wt).forEach(kt)}}}function w(Ae){for(var De=ue.allocType(5123,Ae.length),He=0;He>>31<<15,lt=(ot<<1>>>24)-127,ot=ot>>13&1023;De[He]=-24>lt?rt:-14>lt?rt+(ot+1024>>-14-lt):15>=yn,jt.height>>=yn,zt(jt,fn[yn]),cn.mipmask|=1<jn;++jn)cn.images[jn]=null;return cn}function Kt(cn){for(var jn=cn.images,jt=0;jtcn){for(var jn=0;jn=--this.refCount&&sn(this)}}),kt.profile&&(ot.getTotalTextureSize=function(){var cn=0;return Object.keys(pr).forEach(function(jn){cn+=pr[jn].stats.size}),cn}),{create2D:function(cn,jn){function jt(yn,$n){var Un=fn.texInfo;Ht.call(Un);var Nn=Zt();return typeof yn=="number"?st(Nn,0|yn,typeof $n=="number"?0|$n:0|yn):yn?(mn(Un,yn),Et(Nn,yn)):st(Nn,1,1),Un.genMipmaps&&(Nn.mipmask=(Nn.width<<1)-1),fn.mipmask=Nn.mipmask,Vt(fn,Nn),fn.internalformat=Nn.internalformat,jt.width=Nn.width,jt.height=Nn.height,tn(fn),It(Nn,3553),zn(Un,3553),nn(),Kt(Nn),kt.profile&&(fn.stats.size=E(fn.internalformat,fn.type,Nn.width,Nn.height,Un.genMipmaps,!1)),jt.format=Ln[fn.internalformat],jt.type=lr[fn.type],jt.mag=Wr[Un.magFilter],jt.min=Mn[Un.minFilter],jt.wrapS=rr[Un.wrapS],jt.wrapT=rr[Un.wrapT],jt}var fn=new pn(3553);return pr[fn.id]=fn,ot.textureCount++,jt(cn,jn),jt.subimage=function(yn,$n,Un,Nn){$n|=0,Un|=0,Nn|=0;var Rn=Dt();return Vt(Rn,fn),Rn.width=0,Rn.height=0,zt(Rn,yn),Rn.width=Rn.width||(fn.width>>Nn)-$n,Rn.height=Rn.height||(fn.height>>Nn)-Un,tn(fn),St(Rn,3553,$n,Un,Nn),nn(),Le(Rn),jt},jt.resize=function(yn,$n){var Un=0|yn,Nn=0|$n||Un;if(Un===fn.width&&Nn===fn.height)return jt;jt.width=fn.width=Un,jt.height=fn.height=Nn,tn(fn);for(var Rn=0;fn.mipmask>>Rn;++Rn){var wn=Un>>Rn,kn=Nn>>Rn;if(!wn||!kn)break;Ae.texImage2D(3553,Rn,fn.format,wn,kn,0,fn.format,fn.type,null)}return nn(),kt.profile&&(fn.stats.size=E(fn.internalformat,fn.type,Un,Nn,!1,!1)),jt},jt._reglType="texture2d",jt._texture=fn,kt.profile&&(jt.stats=fn.stats),jt.destroy=function(){fn.decRef()},jt},createCube:function(cn,jn,jt,fn,yn,$n){function Un(wn,kn,Tn,Dn,Zn,Yn){var ir,or=Nn.texInfo;for(Ht.call(or),ir=0;6>ir;++ir)Rn[ir]=Zt();if(typeof wn!="number"&&wn){if(typeof wn=="object")if(kn)Et(Rn[0],wn),Et(Rn[1],kn),Et(Rn[2],Tn),Et(Rn[3],Dn),Et(Rn[4],Zn),Et(Rn[5],Yn);else if(mn(or,wn),Ut(Nn,wn),"faces"in wn)for(wn=wn.faces,ir=0;6>ir;++ir)Vt(Rn[ir],Nn),Et(Rn[ir],wn[ir]);else for(ir=0;6>ir;++ir)Et(Rn[ir],wn)}else for(wn=0|wn||1,ir=0;6>ir;++ir)st(Rn[ir],wn,wn);for(Vt(Nn,Rn[0]),Nn.mipmask=or.genMipmaps?(Rn[0].width<<1)-1:Rn[0].mipmask,Nn.internalformat=Rn[0].internalformat,Un.width=Rn[0].width,Un.height=Rn[0].height,tn(Nn),ir=0;6>ir;++ir)It(Rn[ir],34069+ir);for(zn(or,34067),nn(),kt.profile&&(Nn.stats.size=E(Nn.internalformat,Nn.type,Un.width,Un.height,or.genMipmaps,!0)),Un.format=Ln[Nn.internalformat],Un.type=lr[Nn.type],Un.mag=Wr[or.magFilter],Un.min=Mn[or.minFilter],Un.wrapS=rr[or.wrapS],Un.wrapT=rr[or.wrapT],ir=0;6>ir;++ir)Kt(Rn[ir]);return Un}var Nn=new pn(34067);pr[Nn.id]=Nn,ot.cubeCount++;var Rn=Array(6);return Un(cn,jn,jt,fn,yn,$n),Un.subimage=function(wn,kn,Tn,Dn,Zn){Tn|=0,Dn|=0,Zn|=0;var Yn=Dt();return Vt(Yn,Nn),Yn.width=0,Yn.height=0,zt(Yn,kn),Yn.width=Yn.width||(Nn.width>>Zn)-Tn,Yn.height=Yn.height||(Nn.height>>Zn)-Dn,tn(Nn),St(Yn,34069+wn,Tn,Dn,Zn),nn(),Le(Yn),Un},Un.resize=function(wn){if((wn|=0)!==Nn.width){Un.width=Nn.width=wn,Un.height=Nn.height=wn,tn(Nn);for(var kn=0;6>kn;++kn)for(var Tn=0;Nn.mipmask>>Tn;++Tn)Ae.texImage2D(34069+kn,Tn,Nn.format,wn>>Tn,wn>>Tn,0,Nn.format,Nn.type,null);return nn(),kt.profile&&(Nn.stats.size=E(Nn.internalformat,Nn.type,Un.width,Un.height,!1,!0)),Un}},Un._reglType="textureCube",Un._texture=Nn,kt.profile&&(Un.stats=Nn.stats),Un.destroy=function(){Nn.decRef()},Un},clear:function(){for(var cn=0;cnfn;++fn)if((jt.mipmask&1<>fn,jt.height>>fn,0,jt.internalformat,jt.type,null);else for(var yn=0;6>yn;++yn)Ae.texImage2D(34069+yn,fn,jt.internalformat,jt.width>>fn,jt.height>>fn,0,jt.internalformat,jt.type,null);zn(jt.texInfo,jt.target)})},refresh:function(){for(var cn=0;cngn;++gn){for(ar=0;arsn;++sn)nn[sn].resize(gn);return tn.width=tn.height=gn,tn},_reglType:"framebufferCube",destroy:function(){nn.forEach(function(sn){sn.destroy()})}})},clear:function(){fe(zn).forEach(Je)},restore:function(){It.cur=null,It.next=null,It.dirty=!0,fe(zn).forEach(function(pn){pn.framebuffer=Ae.createFramebuffer(),st(pn)})}})}function R(){this.w=this.z=this.y=this.x=this.state=0,this.buffer=null,this.size=0,this.normalized=!1,this.type=5126,this.divisor=this.stride=this.offset=0}function z(Ae,De,He,rt,lt,ot,kt){function wt(){this.id=++tt,this.attributes=[],this.elements=null,this.ownsElements=!1,this.offset=this.count=0,this.instances=-1,this.primitive=4;var St=De.oes_vertex_array_object;this.vao=St?St.createVertexArrayOES():null,bt[this.id]=this,this.buffers=[]}var Vt=He.maxAttributes,Ut=Array(Vt);for(He=0;He=mn.byteLength?Zt.subdata(mn):(Zt.destroy(),Le.buffers[It]=null)),Le.buffers[It]||(Zt=Le.buffers[It]=lt.create(Kt,34962,!1,!0)),Ht.buffer=lt.getBuffer(Zt),Ht.size=0|Ht.buffer.dimension,Ht.normalized=!1,Ht.type=Ht.buffer.dtype,Ht.offset=0,Ht.stride=0,Ht.divisor=0,Ht.state=1,Je[It]=1):lt.getBuffer(Kt)?(Ht.buffer=lt.getBuffer(Kt),Ht.size=0|Ht.buffer.dimension,Ht.normalized=!1,Ht.type=Ht.buffer.dtype,Ht.offset=0,Ht.stride=0,Ht.divisor=0,Ht.state=1):lt.getBuffer(Kt.buffer)?(Ht.buffer=lt.getBuffer(Kt.buffer),Ht.size=0|(+Kt.size||Ht.buffer.dimension),Ht.normalized=!!Kt.normalized||!1,Ht.type="type"in Kt?we[Kt.type]:Ht.buffer.dtype,Ht.offset=0|(Kt.offset||0),Ht.stride=0|(Kt.stride||0),Ht.divisor=0|(Kt.divisor||0),Ht.state=1):"x"in Kt&&(Ht.x=+Kt.x||0,Ht.y=+Kt.y||0,Ht.z=+Kt.z||0,Ht.w=+Kt.w||0,Ht.state=2)}for(Zt=0;ZtDt&&(Dt=Le.stats.uniformsCount)}),Dt},He.getMaxAttributesCount=function(){var Dt=0;return zt.forEach(function(Le){Le.stats.attributesCount>Dt&&(Dt=Le.stats.attributesCount)}),Dt}),{clear:function(){var Dt=Ae.deleteShader.bind(Ae);fe(Ut).forEach(Dt),Ut={},fe(tt).forEach(Dt),tt={},zt.forEach(function(Le){Ae.deleteProgram(Le.program)}),zt.length=0,bt={},He.shaderCount=0},program:function(Dt,Le,Je,st){var Et=bt[Le];Et||(Et=bt[Le]={});var It=Et[Dt];if(It&&(It.refCount++,!st))return It;var Zt=new wt(Le,Dt);return He.shaderCount++,Vt(Zt,Je,st),It||(Et[Dt]=Zt),zt.push(Zt),H(Zt,{destroy:function(){if(Zt.refCount--,0>=Zt.refCount){Ae.deleteProgram(Zt.program);var Kt=zt.indexOf(Zt);zt.splice(Kt,1),He.shaderCount--}0>=Et[Zt.vertId].refCount&&(Ae.deleteShader(tt[Zt.vertId]),delete tt[Zt.vertId],delete bt[Zt.fragId][Zt.vertId]),Object.keys(bt[Zt.fragId]).length||(Ae.deleteShader(Ut[Zt.fragId]),delete Ut[Zt.fragId],delete bt[Zt.fragId])}})},restore:function(){Ut={},tt={};for(var Dt=0;Dt>>De|Ae<<32-De}function B(Ae,De){var He=(65535&Ae)+(65535&De);return(Ae>>16)+(De>>16)+(He>>16)<<16|65535&He}function G(Ae){return Array.prototype.slice.call(Ae)}function W(Ae){return G(Ae).join("")}function K(Ae){function De(){var tt=[],bt=[];return H(function(){tt.push.apply(tt,G(arguments))},{def:function(){var zt="v"+lt++;return bt.push(zt),0>>4&15)+"0123456789abcdef".charAt(15&Dt);return Le}(function(St){for(var Dt=Array(St.length>>2),Le=0;Le>5]|=(255&St.charCodeAt(Le/8))<<24-Le%32;var Je,st,Et,It,Zt,Kt,Ht,mn,zn,pn,tn,nn=8*St.length;for(St=[1779033703,-1150833019,1013904242,-1521486534,1359893119,-1694144372,528734635,1541459225],Le=Array(64),Dt[nn>>5]|=128<<24-nn%32,Dt[15+(nn+64>>9<<4)]=nn,mn=0;mnzn;zn++){var sn;16>zn?Le[zn]=Dt[zn+mn]:(pn=zn,tn=B(tn=N(tn=Le[zn-2],17)^N(tn,19)^tn>>>10,Le[zn-7]),sn=N(sn=Le[zn-15],7)^N(sn,18)^sn>>>3,Le[pn]=B(B(tn,sn),Le[zn-16])),pn=B(B(B(B(Ht,pn=N(pn=It,6)^N(pn,11)^N(pn,25)),It&Zt^~It&Kt),Wt[zn]),Le[zn]),tn=B(Ht=N(Ht=nn,2)^N(Ht,13)^N(Ht,22),nn&Je^nn&st^Je&st),Ht=Kt,Kt=Zt,Zt=It,It=B(Et,pn),Et=st,st=Je,Je=nn,nn=B(pn,tn)}St[0]=B(nn,St[0]),St[1]=B(Je,St[1]),St[2]=B(st,St[2]),St[3]=B(Et,St[3]),St[4]=B(It,St[4]),St[5]=B(Zt,St[5]),St[6]=B(Kt,St[6]),St[7]=B(Ht,St[7])}for(Dt="",Le=0;Le<32*St.length;Le+=8)Dt+=String.fromCharCode(St[Le>>5]>>>24-Le%32&255);return Dt}(function(St){for(var Dt,Le,Je="",st=-1;++st=Dt&&56320<=Le&&57343>=Le&&(Dt=65536+((1023&Dt)<<10)+(1023&Le),st++),127>=Dt?Je+=String.fromCharCode(Dt):2047>=Dt?Je+=String.fromCharCode(192|Dt>>>6&31,128|63&Dt):65535>=Dt?Je+=String.fromCharCode(224|Dt>>>12&15,128|Dt>>>6&63,128|63&Dt):2097151>=Dt&&(Je+=String.fromCharCode(240|Dt>>>18&7,128|Dt>>>12&63,128|Dt>>>6&63,128|63&Dt));return Je}(zt))),rt[bt])?rt[bt].apply(null,kt):(zt=Function.apply(null,ot.concat(zt)),rt&&(rt[bt]=zt),zt.apply(null,kt))}}}function te(Ae){return Array.isArray(Ae)||ge(Ae)||h(Ae)}function Y(Ae){return Ae.sort(function(De,He){return De==="viewport"?-1:He==="viewport"?1:De"+Nr+"?"+Dn+".constant["+Nr+"]:0;"}).join(""),"}}else{","if(",ir,"(",Dn,".buffer)){",wr,"=",Zn,".createStream(",34962,",",Dn,".buffer);","}else{",wr,"=",Zn,".getBuffer(",Dn,".buffer);","}",kr,'="type" in ',Dn,"?",Yn.glTypes,"[",Dn,".type]:",wr,".dtype;",or.normalized,"=!!",Dn,".normalized;"),Tn("size"),Tn("offset"),Tn("stride"),Tn("divisor"),kn("}}"),kn.exit("if(",or.isStream,"){",Zn,".destroyStream(",wr,");","}"),or})}),Un}function zn(jt,fn,yn,$n,Un){function Nn(xr){var wr=wn[xr];wr&&(Tn[xr]=wr)}var Rn=function(xr,wr){if(typeof(kr=xr.static).frag=="string"&&typeof kr.vert=="string"){if(0"u"?"Date.now()":"performance.now()"}function Rn(xr){xr(Tn=fn.def(),"=",Nn(),";"),typeof Un=="string"?xr(Yn,".count+=",Un,";"):xr(Yn,".count++;"),St&&($n?xr(Dn=fn.def(),"=",or,".getNumPendingQueries();"):xr(or,".beginQuery(",Yn,");"))}function wn(xr){xr(Yn,".cpuTime+=",Nn(),"-",Tn,";"),St&&($n?xr(or,".pushScopeStats(",Dn,",",or,".getNumPendingQueries(),",Yn,");"):xr(or,".endQuery();"))}function kn(xr){var wr=fn.def(ir,".profile");fn(ir,".profile=",xr,";"),fn.exit(ir,".profile=",wr,";")}var Tn,Dn,Zn=jt.shared,Yn=jt.stats,ir=Zn.current,or=Zn.timer;if(yn=yn.profile){if(re(yn))return void(yn.enable?(Rn(fn),wn(fn.exit),kn("true")):kn("false"));kn(yn=yn.append(jt,fn))}else yn=fn.def(ir,".profile");Rn(Zn=jt.block()),fn("if(",yn,"){",Zn,"}"),wn(jt=jt.block()),fn.exit("if(",yn,"){",jt,"}")}function In(jt,fn,yn,$n,Un){function Nn(wn,kn,Tn){function Dn(){fn("if(!",or,".buffer){",Yn,".enableVertexAttribArray(",ir,");}");var Dr,Nr=Tn.type;Dr=Tn.size?fn.def(Tn.size,"||",kn):kn,fn("if(",or,".type!==",Nr,"||",or,".size!==",Dr,"||",kr.map(function(ri){return or+"."+ri+"!=="+Tn[ri]}).join("||"),"){",Yn,".bindBuffer(",34962,",",xr,".buffer);",Yn,".vertexAttribPointer(",[ir,Dr,Nr,Tn.normalized,Tn.stride,Tn.offset],");",or,".type=",Nr,";",or,".size=",Dr,";",kr.map(function(ri){return or+"."+ri+"="+Tn[ri]+";"}).join(""),"}"),Mn&&(Nr=Tn.divisor,fn("if(",or,".divisor!==",Nr,"){",jt.instancing,".vertexAttribDivisorANGLE(",[ir,Nr],");",or,".divisor=",Nr,";}"))}function Zn(){fn("if(",or,".buffer){",Yn,".disableVertexAttribArray(",ir,");",or,".buffer=null;","}if(",Jt.map(function(Dr,Nr){return or+"."+Dr+"!=="+wr[Nr]}).join("||"),"){",Yn,".vertexAttrib4f(",ir,",",wr,");",Jt.map(function(Dr,Nr){return or+"."+Dr+"="+wr[Nr]+";"}).join(""),"}")}var Yn=Rn.gl,ir=fn.def(wn,".location"),or=fn.def(Rn.attributes,"[",ir,"]");wn=Tn.state;var xr=Tn.buffer,wr=[Tn.x,Tn.y,Tn.z,Tn.w],kr=["buffer","normalized","offset","stride"];wn===1?Dn():wn===2?Zn():(fn("if(",wn,"===",1,"){"),Dn(),fn("}else{"),Zn(),fn("}"))}var Rn=jt.shared;$n.forEach(function(wn){var kn,Tn=wn.name,Dn=yn.attributes[Tn];if(Dn){if(!Un(Dn))return;kn=Dn.append(jt,fn)}else{if(!Un(Ie))return;var Zn=jt.scopeAttrib(Tn);kn={},Object.keys(new lr).forEach(function(Yn){kn[Yn]=fn.def(Zn,".",Yn)})}Nn(jt.link(wn),function(Yn){switch(Yn){case 35664:case 35667:case 35671:return 2;case 35665:case 35668:case 35672:return 3;case 35666:case 35669:case 35673:return 4;default:return 1}}(wn.info.type),kn)})}function Hn(jt,fn,yn,$n,Un,Nn){for(var Rn,wn=jt.shared,kn=wn.gl,Tn=0;Tn<$n.length;++Tn){var Dn,Zn=(or=$n[Tn]).name,Yn=or.info.type,ir=yn.uniforms[Zn],or=jt.link(or)+".location";if(ir){if(!Un(ir))continue;if(re(ir)){if(Zn=ir.value,Yn===35678||Yn===35680)fn(kn,".uniform1i(",or,",",(Yn=jt.link(Zn._texture||Zn.color[0]._texture))+".bind());"),fn.exit(Yn,".unbind();");else if(Yn===35674||Yn===35675||Yn===35676)ir=2,Yn===35675?ir=3:Yn===35676&&(ir=4),fn(kn,".uniformMatrix",ir,"fv(",or,",false,",Zn=jt.global.def("new Float32Array(["+Array.prototype.slice.call(Zn)+"])"),");");else{switch(Yn){case 5126:Rn="1f";break;case 35664:Rn="2f";break;case 35665:Rn="3f";break;case 35666:Rn="4f";break;case 35670:case 5124:Rn="1i";break;case 35671:case 35667:Rn="2i";break;case 35672:case 35668:Rn="3i";break;case 35673:Rn="4i";break;case 35669:Rn="4i"}fn(kn,".uniform",Rn,"(",or,",",k(Zn)?Array.prototype.slice.call(Zn):Zn,");")}continue}Dn=ir.append(jt,fn)}else{if(!Un(Ie))continue;Dn=fn.def(wn.uniforms,"[",De.id(Zn),"]")}switch(Yn===35678?fn("if(",Dn,"&&",Dn,'._reglType==="framebuffer"){',Dn,"=",Dn,".color[0];","}"):Yn===35680&&fn("if(",Dn,"&&",Dn,'._reglType==="framebufferCube"){',Dn,"=",Dn,".color[0];","}"),Zn=1,Yn){case 35678:case 35680:Yn=fn.def(Dn,"._texture"),fn(kn,".uniform1i(",or,",",Yn,".bind());"),fn.exit(Yn,".unbind();");continue;case 5124:case 35670:Rn="1i";break;case 35667:case 35671:Rn="2i",Zn=2;break;case 35668:case 35672:Rn="3i",Zn=3;break;case 35669:case 35673:Rn="4i",Zn=4;break;case 5126:Rn="1f";break;case 35664:Rn="2f",Zn=2;break;case 35665:Rn="3f",Zn=3;break;case 35666:Rn="4f",Zn=4;break;case 35674:Rn="Matrix2fv";break;case 35675:Rn="Matrix3fv";break;case 35676:Rn="Matrix4fv"}if(Rn.charAt(0)==="M"){fn(kn,".uniform",Rn,"(",or,","),or=Math.pow(Yn-35674+2,2);var xr=jt.global.def("new Float32Array(",or,")");Array.isArray(Dn)?fn("false,(",s(or,function(kr){return xr+"["+kr+"]="+Dn[kr]}),",",xr,")"):fn("false,(Array.isArray(",Dn,")||",Dn," instanceof Float32Array)?",Dn,":(",s(or,function(kr){return xr+"["+kr+"]="+Dn+"["+kr+"]"}),",",xr,")"),fn(");")}else{if(1>1)",wn],");")}function ri(){yn(kn,".drawArraysInstancedANGLE(",[or,xr,wr,wn],");")}ir&&ir!=="null"?Dr?Nr():(yn("if(",ir,"){"),Nr(),yn("}else{"),ri(),yn("}")):ri()}function Rn(){function Nr(){yn(Dn+".drawElements("+[or,wr,kr,xr+"<<(("+kr+"-5121)>>1)"]+");")}function ri(){yn(Dn+".drawArrays("+[or,xr,wr]+");")}ir&&ir!=="null"?Dr?Nr():(yn("if(",ir,"){"),Nr(),yn("}else{"),ri(),yn("}")):ri()}var wn,kn,Tn=jt.shared,Dn=Tn.gl,Zn=Tn.draw,Yn=$n.draw,ir=function(){var Nr=Yn.elements,ri=fn;return Nr?((Nr.contextDep&&$n.contextDynamic||Nr.propDep)&&(ri=yn),Nr=Nr.append(jt,ri),Yn.elementsActive&&ri("if("+Nr+")"+Dn+".bindBuffer(34963,"+Nr+".buffer.buffer);")):(Nr=ri.def(),ri(Nr,"=",Zn,".","elements",";","if(",Nr,"){",Dn,".bindBuffer(",34963,",",Nr,".buffer.buffer);}","else if(",Tn.vao,".currentVAO){",Nr,"=",jt.shared.elements+".getElements("+Tn.vao,".currentVAO.elements);",nr?"":"if("+Nr+")"+Dn+".bindBuffer(34963,"+Nr+".buffer.buffer);","}")),Nr}(),or=Un("primitive"),xr=Un("offset"),wr=function(){var Nr=Yn.count,ri=fn;return Nr?((Nr.contextDep&&$n.contextDynamic||Nr.propDep)&&(ri=yn),Nr=Nr.append(jt,ri)):Nr=ri.def(Zn,".","count"),Nr}();if(typeof wr=="number"){if(wr===0)return}else yn("if(",wr,"){"),yn.exit("}");Mn&&(wn=Un("instances"),kn=jt.instancing);var kr=ir+".type",Dr=Yn.elements&&re(Yn.elements)&&!Yn.vaoActive;Mn&&(typeof wn!="number"||0<=wn)?typeof wn=="string"?(yn("if(",wn,">0){"),Nn(),yn("}else if(",wn,"<0){"),Rn(),yn("}")):Nn():Rn()}function ar(jt,fn,yn,$n,Un){return Un=(fn=It()).proc("body",Un),Mn&&(fn.instancing=Un.def(fn.shared.extensions,".angle_instanced_arrays")),jt(fn,Un,yn,$n),fn.compile().body}function Or(jt,fn,yn,$n){gn(jt,fn),yn.useVAO?yn.drawVAO?fn(jt.shared.vao,".setVAO(",yn.drawVAO.append(jt,fn),");"):fn(jt.shared.vao,".setVAO(",jt.shared.vao,".targetVAO);"):(fn(jt.shared.vao,".setVAO(null);"),In(jt,fn,yn,$n.attributes,function(){return!0})),Hn(jt,fn,yn,$n.uniforms,function(){return!0},!1),Wn(jt,fn,fn,yn)}function vr(jt,fn,yn,$n){function Un(){return!0}jt.batchId="a1",gn(jt,fn),In(jt,fn,yn,$n.attributes,Un),Hn(jt,fn,yn,$n.uniforms,Un,!1),Wn(jt,fn,fn,yn)}function Er(jt,fn,yn,$n){function Un(Zn){return Zn.contextDep&&Rn||Zn.propDep}function Nn(Zn){return!Un(Zn)}gn(jt,fn);var Rn=yn.contextDep,wn=fn.def(),kn=fn.def();jt.shared.props=kn,jt.batchId=wn;var Tn=jt.scope(),Dn=jt.scope();fn(Tn.entry,"for(",wn,"=0;",wn,"<","a1",";++",wn,"){",kn,"=","a0","[",wn,"];",Dn,"}",Tn.exit),yn.needsContext&&pn(jt,Dn,yn.context),yn.needsFramebuffer&&tn(jt,Dn,yn.framebuffer),sn(jt,Dn,yn.state,Un),yn.profile&&Un(yn.profile)&&bn(jt,Dn,yn,!1,!0),$n?(yn.useVAO?yn.drawVAO?Un(yn.drawVAO)?Dn(jt.shared.vao,".setVAO(",yn.drawVAO.append(jt,Dn),");"):Tn(jt.shared.vao,".setVAO(",yn.drawVAO.append(jt,Tn),");"):Tn(jt.shared.vao,".setVAO(",jt.shared.vao,".targetVAO);"):(Tn(jt.shared.vao,".setVAO(null);"),In(jt,Tn,yn,$n.attributes,Nn),In(jt,Dn,yn,$n.attributes,Un)),Hn(jt,Tn,yn,$n.uniforms,Nn,!1),Hn(jt,Dn,yn,$n.uniforms,Un,!0),Wn(jt,Tn,Dn,yn)):(fn=jt.global.def("{}"),$n=yn.shader.progVar.append(jt,Dn),kn=Dn.def($n,".id"),Tn=Dn.def(fn,"[",kn,"]"),Dn(jt.shared.gl,".useProgram(",$n,".program);","if(!",Tn,"){",Tn,"=",fn,"[",kn,"]=",jt.link(function(Zn){return ar(vr,jt,yn,Zn,2)}),"(",$n,");}",Tn,".call(this,a0[",wn,"],",wn,");"))}function Kn(jt,fn){function yn(wn){var kn=fn.shader[wn];kn&&(kn=kn.append(jt,$n),isNaN(kn)?$n.set(Un.shader,"."+wn,kn):$n.set(Un.shader,"."+wn,jt.link(kn,{stable:!0})))}var $n=jt.proc("scope",3);jt.batchId="a2";var Un=jt.shared,Nn=Un.current;if(pn(jt,$n,fn.context),fn.framebuffer&&fn.framebuffer.append(jt,$n),Y(Object.keys(fn.state)).forEach(function(wn){var kn=fn.state[wn],Tn=kn.append(jt,$n);k(Tn)?Tn.forEach(function(Dn,Zn){isNaN(Dn)?$n.set(jt.next[wn],"["+Zn+"]",Dn):$n.set(jt.next[wn],"["+Zn+"]",jt.link(Dn,{stable:!0}))}):re(kn)?$n.set(Un.next,"."+wn,jt.link(Tn,{stable:!0})):$n.set(Un.next,"."+wn,Tn)}),bn(jt,$n,fn,!0,!0),["elements","offset","count","instances","primitive"].forEach(function(wn){var kn=fn.draw[wn];kn&&(kn=kn.append(jt,$n),isNaN(kn)?$n.set(Un.draw,"."+wn,kn):$n.set(Un.draw,"."+wn,jt.link(kn),{stable:!0}))}),Object.keys(fn.uniforms).forEach(function(wn){var kn=fn.uniforms[wn].append(jt,$n);Array.isArray(kn)&&(kn="["+kn.map(function(Tn){return isNaN(Tn)?Tn:jt.link(Tn,{stable:!0})})+"]"),$n.set(Un.uniforms,"["+jt.link(De.id(wn),{stable:!0})+"]",kn)}),Object.keys(fn.attributes).forEach(function(wn){var kn=fn.attributes[wn].append(jt,$n),Tn=jt.scopeAttrib(wn);Object.keys(new lr).forEach(function(Dn){$n.set(Tn,"."+Dn,kn[Dn])})}),fn.scopeVAO){var Rn=fn.scopeVAO.append(jt,$n);isNaN(Rn)?$n.set(Un.vao,".targetVAO",Rn):$n.set(Un.vao,".targetVAO",jt.link(Rn,{stable:!0}))}yn("vert"),yn("frag"),0=--this.refCount&&kt(this)},lt.profile&&(rt.getTotalRenderbufferSize=function(){var bt=0;return Object.keys(tt).forEach(function(zt){bt+=tt[zt].stats.size}),bt}),{create:function(bt,zt){function St(Le,Je){var st=0,Et=0,It=32854;if(typeof Le=="object"&&Le?("shape"in Le?(st=0|(Et=Le.shape)[0],Et=0|Et[1]):("radius"in Le&&(st=Et=0|Le.radius),"width"in Le&&(st=0|Le.width),"height"in Le&&(Et=0|Le.height)),"format"in Le&&(It=wt[Le.format])):typeof Le=="number"?(st=0|Le,Et=typeof Je=="number"?0|Je:st):Le||(st=Et=1),st!==Dt.width||Et!==Dt.height||It!==Dt.format)return St.width=Dt.width=st,St.height=Dt.height=Et,Dt.format=It,Ae.bindRenderbuffer(36161,Dt.renderbuffer),Ae.renderbufferStorage(36161,It,st,Et),lt.profile&&(Dt.stats.size=At[Dt.format]*Dt.width*Dt.height),St.format=Vt[Dt.format],St}var Dt=new ot(Ae.createRenderbuffer());return tt[Dt.id]=Dt,rt.renderbufferCount++,St(bt,zt),St.resize=function(Le,Je){var st=0|Le,Et=0|Je||st;return st===Dt.width&&Et===Dt.height||(St.width=Dt.width=st,St.height=Dt.height=Et,Ae.bindRenderbuffer(36161,Dt.renderbuffer),Ae.renderbufferStorage(36161,Dt.format,st,Et),lt.profile&&(Dt.stats.size=At[Dt.format]*Dt.width*Dt.height)),St},St._reglType="renderbuffer",St._renderbuffer=Dt,lt.profile&&(St.stats=Dt.stats),St.destroy=function(){Dt.decRef()},St},clear:function(){fe(tt).forEach(kt)},restore:function(){fe(tt).forEach(function(bt){bt.renderbuffer=Ae.createRenderbuffer(),Ae.bindRenderbuffer(36161,bt.renderbuffer),Ae.renderbufferStorage(36161,bt.format,bt.width,bt.height)}),Ae.bindRenderbuffer(36161,null)}}},et=[];et[6408]=4,et[6407]=3;var Ot=[];Ot[5121]=1,Ot[5126]=4,Ot[36193]=2;var Wt=[1116352408,1899447441,-1245643825,-373957723,961987163,1508970993,-1841331548,-1424204075,-670586216,310598401,607225278,1426881987,1925078388,-2132889090,-1680079193,-1046744716,-459576895,-272742522,264347078,604807628,770255983,1249150122,1555081692,1996064986,-1740746414,-1473132947,-1341970488,-1084653625,-958395405,-710438585,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,-2117940946,-1838011259,-1564481375,-1474664885,-1035236496,-949202525,-778901479,-694614492,-200395387,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,-2067236844,-1933114872,-1866530822,-1538233109,-1090935817,-965641998],Jt=["x","y","z","w"],Be="blend.func blend.equation stencil.func stencil.opFront stencil.opBack sample.coverage viewport scissor.box polygonOffset.offset".split(" "),Ge={0:0,1:1,zero:0,one:1,"src color":768,"one minus src color":769,"src alpha":770,"one minus src alpha":771,"dst color":774,"one minus dst color":775,"dst alpha":772,"one minus dst alpha":773,"constant color":32769,"one minus constant color":32770,"constant alpha":32771,"one minus constant alpha":32772,"src alpha saturate":776},Tt={never:512,less:513,"<":513,equal:514,"=":514,"==":514,"===":514,lequal:515,"<=":515,greater:516,">":516,notequal:517,"!=":517,"!==":517,gequal:518,">=":518,always:519},dt={0:0,zero:0,keep:7680,replace:7681,increment:7682,decrement:7683,"increment wrap":34055,"decrement wrap":34056,invert:5386},Pe={cw:2304,ccw:2305},Ie=new Z(!1,!1,!1,function(){});return function(Ae){function De(){if(vr.length===0)Zt&&Zt.update(),lr=null;else{lr=ie.next(De),tt();for(var Mn=vr.length-1;0<=Mn;--Mn){var rr=vr[Mn];rr&&rr(zn,null,0)}St.flush(),Zt&&Zt.update()}}function He(){!lr&&0=vr.length&&rt()}}}}function Ut(){var Mn=ar.viewport,rr=ar.scissor_box;Mn[0]=Mn[1]=rr[0]=rr[1]=0,zn.viewportWidth=zn.framebufferWidth=zn.drawingBufferWidth=Mn[2]=rr[2]=St.drawingBufferWidth,zn.viewportHeight=zn.framebufferHeight=zn.drawingBufferHeight=Mn[3]=rr[3]=St.drawingBufferHeight}function tt(){zn.tick+=1,zn.time=zt(),Ut(),Wn.procs.poll()}function bt(){bn.refresh(),Ut(),Wn.procs.refresh(),Zt&&Zt.update()}function zt(){return(ae()-Kt)/1e3}if(!(Ae=i(Ae)))return null;var St=Ae.gl,Dt=St.getContextAttributes();St.isContextLost();var Le=function(Mn,rr){function nr(pr){var qr;pr=pr.toLowerCase();try{qr=Bn[pr]=Mn.getExtension(pr)}catch{}return!!qr}for(var Bn={},Fr=0;Frrr;++rr)Wr(H({framebuffer:Mn.framebuffer.faces[rr]},Mn),wt);else Wr(Mn,wt);else wt(0,Mn)},prop:ee.define.bind(null,1),context:ee.define.bind(null,2),this:ee.define.bind(null,3),draw:kt({}),buffer:function(Mn){return tn.create(Mn,34962,!1,!1)},elements:function(Mn){return nn.create(Mn,!1)},texture:bn.create2D,cube:bn.createCube,renderbuffer:In.create,framebuffer:Hn.create,framebufferCube:Hn.createCube,vao:sn.createVAO,attributes:Dt,frame:Vt,on:function(Mn,rr){var nr;switch(Mn){case"frame":return Vt(rr);case"lost":nr=Er;break;case"restore":nr=Kn;break;case"destroy":nr=Ln}return nr.push(rr),{cancel:function(){for(var Bn=0;Bn2?"one of ".concat(i," ").concat(c.slice(0,s-1).join(", "),", or ")+c[s-1]:s===2?"one of ".concat(i," ").concat(c[0]," or ").concat(c[1]):"of ".concat(i," ").concat(c[0])}return"of ".concat(i," ").concat(String(c))}a("ERR_INVALID_OPT_VALUE",function(c,i){return'The value "'+i+'" is invalid for option "'+c+'"'},TypeError),a("ERR_INVALID_ARG_TYPE",function(c,i,s){var l,d,h;if(typeof i=="string"&&(d="not ",i.substr(0,d.length)===d)?(l="must not be",i=i.replace(/^not /,"")):l="must be",function(g,p,v){return(v===void 0||v>g.length)&&(v=g.length),g.substring(v-p.length,v)===p}(c," argument"))h="The ".concat(c," ").concat(l," ").concat(u(i,"type"));else{var m=function(g,p,v){return typeof v!="number"&&(v=0),!(v+p.length>g.length)&&g.indexOf(p,v)!==-1}(c,".")?"property":"argument";h='The "'.concat(c,'" ').concat(m," ").concat(l," ").concat(u(i,"type"))}return h+=". Received type ".concat(typeof s)},TypeError),a("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),a("ERR_METHOD_NOT_IMPLEMENTED",function(c){return"The "+c+" method is not implemented"}),a("ERR_STREAM_PREMATURE_CLOSE","Premature close"),a("ERR_STREAM_DESTROYED",function(c){return"Cannot call "+c+" after a stream was destroyed"}),a("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),a("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),a("ERR_STREAM_WRITE_AFTER_END","write after end"),a("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),a("ERR_UNKNOWN_ENCODING",function(c){return"Unknown encoding: "+c},TypeError),a("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),o.exports.codes=r},{}],287:[function(e,o,f){(function(r){(function(){var a=Object.keys||function(g){var p=[];for(var v in g)p.push(v);return p};o.exports=d;var u=e("./_stream_readable"),c=e("./_stream_writable");e("inherits")(d,u);for(var i=a(c.prototype),s=0;s0)if(typeof q=="string"||ee.objectMode||Object.getPrototypeOf(q)===s.prototype||(q=function(ie){return s.from(ie)}(q)),ne)ee.endEmitted?M(U,new _):O(U,ee,q,!0);else if(ee.ended)M(U,new b);else{if(ee.destroyed)return!1;ee.reading=!1,ee.decoder&&!$?(q=ee.decoder.write(q),ee.objectMode||q.length!==0?O(U,ee,q,!1):P(U,ee)):O(U,ee,q,!1)}else ne||(ee.reading=!1,P(U,ee));return!ee.ended&&(ee.lengthq.highWaterMark&&(q.highWaterMark=function($){return $>=1073741824?$=1073741824:($--,$|=$>>>1,$|=$>>>2,$|=$>>>4,$|=$>>>8,$|=$>>>16,$++),$}(U)),U<=q.length?U:q.ended?q.length:(q.needReadable=!0,0))}function z(U){var q=U._readableState;d("emitReadable",q.needReadable,q.emittedReadable),q.needReadable=!1,q.emittedReadable||(d("emitReadable",q.flowing),q.emittedReadable=!0,r.nextTick(L,U))}function L(U){var q=U._readableState;d("emitReadable_",q.destroyed,q.length,q.ended),q.destroyed||!q.length&&!q.ended||(U.emit("readable"),q.emittedReadable=!1),q.needReadable=!q.flowing&&!q.ended&&q.length<=q.highWaterMark,K(U)}function P(U,q){q.readingMore||(q.readingMore=!0,r.nextTick(N,U,q))}function N(U,q){for(;!q.reading&&!q.ended&&(q.length0,q.resumeScheduled&&!q.paused?q.flowing=!0:U.listenerCount("data")>0&&U.resume()}function G(U){d("readable nexttick read 0"),U.read(0)}function W(U,q){d("resume",q.reading),q.reading||U.read(0),q.resumeScheduled=!1,U.emit("resume"),K(U),q.flowing&&!q.reading&&U.read(0)}function K(U){var q=U._readableState;for(d("flow",q.flowing);q.flowing&&U.read()!==null;);}function te(U,q){return q.length===0?null:(q.objectMode?$=q.buffer.shift():!U||U>=q.length?($=q.decoder?q.buffer.join(""):q.buffer.length===1?q.buffer.first():q.buffer.concat(q.length),q.buffer.clear()):$=q.buffer.consume(U,q.decoder),$);var $}function Y(U){var q=U._readableState;d("endReadable",q.endEmitted),q.endEmitted||(q.ended=!0,r.nextTick(Z,q,U))}function Z(U,q){if(d("endReadableNT",U.endEmitted,U.length),!U.endEmitted&&U.length===0&&(U.endEmitted=!0,q.readable=!1,q.emit("end"),U.autoDestroy)){var $=q._writableState;(!$||$.autoDestroy&&$.finished)&&q.destroy()}}function re(U,q){for(var $=0,ne=U.length;$=q.highWaterMark:q.length>0)||q.ended))return d("read: emitReadable",q.length,q.ended),q.length===0&&q.ended?Y(this):z(this),null;if((U=R(U,q))===0&&q.ended)return q.length===0&&Y(this),null;var ne,H=q.needReadable;return d("need readable",H),(q.length===0||q.length-U0?te(U,q):null)===null?(q.needReadable=q.length<=q.highWaterMark,U=0):(q.length-=U,q.awaitDrain=0),q.length===0&&(q.ended||(q.needReadable=!0),$!==U&&q.ended&&Y(this)),ne!==null&&this.emit("data",ne),ne},E.prototype._read=function(U){M(this,new T("_read()"))},E.prototype.pipe=function(U,q){var $=this,ne=this._readableState;switch(ne.pipesCount){case 0:ne.pipes=U;break;case 1:ne.pipes=[ne.pipes,U];break;default:ne.pipes.push(U)}ne.pipesCount+=1,d("pipe count=%d opts=%j",ne.pipesCount,q);var H=(!q||q.end!==!1)&&U!==r.stdout&&U!==r.stderr?ee:me;function Q(_e,we){d("onunpipe"),_e===$&&we&&we.hasUnpiped===!1&&(we.hasUnpiped=!0,d("cleanup"),U.removeListener("close",ge),U.removeListener("finish",fe),U.removeListener("drain",ie),U.removeListener("error",le),U.removeListener("unpipe",Q),$.removeListener("end",ee),$.removeListener("end",me),$.removeListener("data",ue),ae=!0,!ne.awaitDrain||U._writableState&&!U._writableState.needDrain||ie())}function ee(){d("onend"),U.end()}ne.endEmitted?r.nextTick(H):$.once("end",H),U.on("unpipe",Q);var ie=function(_e){return function(){var we=_e._readableState;d("pipeOnDrain",we.awaitDrain),we.awaitDrain&&we.awaitDrain--,we.awaitDrain===0&&c(_e,"data")&&(we.flowing=!0,K(_e))}}($);U.on("drain",ie);var ae=!1;function ue(_e){d("ondata");var we=U.write(_e);d("dest.write",we),we===!1&&((ne.pipesCount===1&&ne.pipes===U||ne.pipesCount>1&&re(ne.pipes,U)!==-1)&&!ae&&(d("false write response, pause",ne.awaitDrain),ne.awaitDrain++),$.pause())}function le(_e){d("onerror",_e),me(),U.removeListener("error",le),c(U,"error")===0&&M(U,_e)}function ge(){U.removeListener("finish",fe),me()}function fe(){d("onfinish"),U.removeListener("close",ge),me()}function me(){d("unpipe"),$.unpipe(U)}return $.on("data",ue),function(_e,we,Te){if(typeof _e.prependListener=="function")return _e.prependListener(we,Te);_e._events&&_e._events[we]?Array.isArray(_e._events[we])?_e._events[we].unshift(Te):_e._events[we]=[Te,_e._events[we]]:_e.on(we,Te)}(U,"error",le),U.once("close",ge),U.once("finish",fe),U.emit("pipe",$),ne.flowing||(d("pipe resume"),$.resume()),U},E.prototype.unpipe=function(U){var q=this._readableState,$={hasUnpiped:!1};if(q.pipesCount===0)return this;if(q.pipesCount===1)return U&&U!==q.pipes||(U||(U=q.pipes),q.pipes=null,q.pipesCount=0,q.flowing=!1,U&&U.emit("unpipe",this,$)),this;if(!U){var ne=q.pipes,H=q.pipesCount;q.pipes=null,q.pipesCount=0,q.flowing=!1;for(var Q=0;Q0,ne.flowing!==!1&&this.resume()):U==="readable"&&(ne.endEmitted||ne.readableListening||(ne.readableListening=ne.needReadable=!0,ne.flowing=!1,ne.emittedReadable=!1,d("on readable",ne.length,ne.reading),ne.length?z(this):ne.reading||r.nextTick(G,this))),$},E.prototype.addListener=E.prototype.on,E.prototype.removeListener=function(U,q){var $=i.prototype.removeListener.call(this,U,q);return U==="readable"&&r.nextTick(B,this),$},E.prototype.removeAllListeners=function(U){var q=i.prototype.removeAllListeners.apply(this,arguments);return U!=="readable"&&U!==void 0||r.nextTick(B,this),q},E.prototype.resume=function(){var U=this._readableState;return U.flowing||(d("resume"),U.flowing=!U.readableListening,function(q,$){$.resumeScheduled||($.resumeScheduled=!0,r.nextTick(W,q,$))}(this,U)),U.paused=!1,this},E.prototype.pause=function(){return d("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(d("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},E.prototype.wrap=function(U){var q=this,$=this._readableState,ne=!1;for(var H in U.on("end",function(){if(d("wrapped end"),$.decoder&&!$.ended){var ee=$.decoder.end();ee&&ee.length&&q.push(ee)}q.push(null)}),U.on("data",function(ee){d("wrapped data"),$.decoder&&(ee=$.decoder.write(ee)),$.objectMode&&ee==null||($.objectMode||ee&&ee.length)&&(q.push(ee)||(ne=!0,U.pause()))}),U)this[H]===void 0&&typeof U[H]=="function"&&(this[H]=function(ee){return function(){return U[ee].apply(U,arguments)}}(H));for(var Q=0;Q-1))throw new _(N);return this._writableState.defaultEncoding=N,this},Object.defineProperty(E.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(E.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),E.prototype._write=function(N,B,G){G(new y("_write()"))},E.prototype._writev=null,E.prototype.end=function(N,B,G){var W=this._writableState;return typeof N=="function"?(G=N,N=null,B=null):typeof B=="function"&&(G=B,B=null),N!=null&&this.write(N,B),W.corked&&(W.corked=1,this.uncork()),W.ending||function(K,te,Y){te.ending=!0,P(K,te),Y&&(te.finished?r.nextTick(Y):K.once("finish",Y)),te.ended=!0,K.writable=!1}(this,W,G),this},Object.defineProperty(E.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(E.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState!==void 0&&this._writableState.destroyed},set:function(N){this._writableState&&(this._writableState.destroyed=N)}}),E.prototype.destroy=m.destroy,E.prototype._undestroy=m.undestroy,E.prototype._destroy=function(N,B){B(N)}}).call(this)}).call(this,e("_process"),typeof Ro<"u"?Ro:typeof self<"u"?self:typeof window<"u"?window:{})},{"../errors":286,"./_stream_duplex":287,"./internal/streams/destroy":294,"./internal/streams/state":298,"./internal/streams/stream":299,_process:277,buffer:85,inherits:231,"util-deprecate":330}],292:[function(e,o,f){(function(r){(function(){var a;function u(k,b,T){return b in k?Object.defineProperty(k,b,{value:T,enumerable:!0,configurable:!0,writable:!0}):k[b]=T,k}var c=e("./end-of-stream"),i=Symbol("lastResolve"),s=Symbol("lastReject"),l=Symbol("error"),d=Symbol("ended"),h=Symbol("lastPromise"),m=Symbol("handlePromise"),g=Symbol("stream");function p(k,b){return{value:k,done:b}}function v(k){var b=k[i];if(b!==null){var T=k[g].read();T!==null&&(k[h]=null,k[i]=null,k[s]=null,b(p(T,!1)))}}function y(k){r.nextTick(v,k)}var x=Object.getPrototypeOf(function(){}),w=Object.setPrototypeOf((u(a={get stream(){return this[g]},next:function(){var k=this,b=this[l];if(b!==null)return Promise.reject(b);if(this[d])return Promise.resolve(p(void 0,!0));if(this[g].destroyed)return new Promise(function(A,S){r.nextTick(function(){k[l]?S(k[l]):A(p(void 0,!0))})});var T,_=this[h];if(_)T=new Promise(function(A,S){return function(E,D){A.then(function(){S[d]?E(p(void 0,!0)):S[m](E,D)},D)}}(_,this));else{var M=this[g].read();if(M!==null)return Promise.resolve(p(M,!1));T=new Promise(this[m])}return this[h]=T,T}},Symbol.asyncIterator,function(){return this}),u(a,"return",function(){var k=this;return new Promise(function(b,T){k[g].destroy(null,function(_){_?T(_):b(p(void 0,!0))})})}),a),x);o.exports=function(k){var b,T=Object.create(w,(u(b={},g,{value:k,writable:!0}),u(b,i,{value:null,writable:!0}),u(b,s,{value:null,writable:!0}),u(b,l,{value:null,writable:!0}),u(b,d,{value:k._readableState.endEmitted,writable:!0}),u(b,m,{value:function(_,M){var A=T[g].read();A?(T[h]=null,T[i]=null,T[s]=null,_(p(A,!1))):(T[i]=_,T[s]=M)},writable:!0}),b));return T[h]=null,c(k,function(_){if(_&&_.code!=="ERR_STREAM_PREMATURE_CLOSE"){var M=T[s];return M!==null&&(T[h]=null,T[i]=null,T[s]=null,M(_)),void(T[l]=_)}var A=T[i];A!==null&&(T[h]=null,T[i]=null,T[s]=null,A(p(void 0,!0))),T[d]=!0}),k.on("readable",y.bind(null,T)),T}}).call(this)}).call(this,e("_process"))},{"./end-of-stream":295,_process:277}],293:[function(e,o,f){function r(l,d){var h=Object.keys(l);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(l);d&&(m=m.filter(function(g){return Object.getOwnPropertyDescriptor(l,g).enumerable})),h.push.apply(h,m)}return h}function a(l,d,h){return d in l?Object.defineProperty(l,d,{value:h,enumerable:!0,configurable:!0,writable:!0}):l[d]=h,l}function u(l,d){for(var h=0;h0?this.tail.next=g:this.head=g,this.tail=g,++this.length}},{key:"unshift",value:function(m){var g={data:m,next:this.head};this.length===0&&(this.tail=g),this.head=g,++this.length}},{key:"shift",value:function(){if(this.length!==0){var m=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,m}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(m){if(this.length===0)return"";for(var g=this.head,p=""+g.data;g=g.next;)p+=m+g.data;return p}},{key:"concat",value:function(m){if(this.length===0)return c.alloc(0);for(var g,p,v,y=c.allocUnsafe(m>>>0),x=this.head,w=0;x;)g=x.data,p=y,v=w,c.prototype.copy.call(g,p,v),w+=x.data.length,x=x.next;return y}},{key:"consume",value:function(m,g){var p;return my.length?y.length:m;if(x===y.length?v+=y:v+=y.slice(0,m),(m-=x)==0){x===y.length?(++p,g.next?this.head=g.next:this.head=this.tail=null):(this.head=g,g.data=y.slice(x));break}++p}return this.length-=p,v}},{key:"_getBuffer",value:function(m){var g=c.allocUnsafe(m),p=this.head,v=1;for(p.data.copy(g),m-=p.data.length;p=p.next;){var y=p.data,x=m>y.length?y.length:m;if(y.copy(g,g.length-m,0,x),(m-=x)==0){x===y.length?(++v,p.next?this.head=p.next:this.head=this.tail=null):(this.head=p,p.data=y.slice(x));break}++v}return this.length-=v,g}},{key:s,value:function(m,g){return i(this,function(p){for(var v=1;v0,function(T){v||(v=T),T&&x.forEach(l),b||(x.forEach(l),y(v))})});return g.reduce(d)}},{"../../../errors":286,"./end-of-stream":295}],298:[function(e,o,f){var r=e("../../../errors").codes.ERR_INVALID_OPT_VALUE;o.exports={getHighWaterMark:function(a,u,c,i){var s=function(l,d,h){return l.highWaterMark!=null?l.highWaterMark:d?l[h]:null}(u,i,c);if(s!=null){if(!isFinite(s)||Math.floor(s)!==s||s<0)throw new r(i?c:"highWaterMark",s);return Math.floor(s)}return a.objectMode?16:16384}}},{"../../../errors":286}],299:[function(e,o,f){o.exports=e("events").EventEmitter},{events:84}],300:[function(e,o,f){var r=e("safe-buffer").Buffer,a=r.isEncoding||function(p){switch((p=""+p)&&p.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function u(p){var v;switch(this.encoding=function(y){var x=function(w){if(!w)return"utf8";for(var k;;)switch(w){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return w;default:if(k)return;w=(""+w).toLowerCase(),k=!0}}(y);if(typeof x!="string"&&(r.isEncoding===a||!a(y)))throw new Error("Unknown encoding: "+y);return x||y}(p),this.encoding){case"utf16le":this.text=s,this.end=l,v=4;break;case"utf8":this.fillLast=i,v=4;break;case"base64":this.text=d,this.end=h,v=3;break;default:return this.write=m,void(this.end=g)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(v)}function c(p){return p<=127?0:p>>5==6?2:p>>4==14?3:p>>3==30?4:p>>6==2?-1:-2}function i(p){var v=this.lastTotal-this.lastNeed,y=function(x,w,k){if((192&w[0])!=128)return x.lastNeed=0,"\uFFFD";if(x.lastNeed>1&&w.length>1){if((192&w[1])!=128)return x.lastNeed=1,"\uFFFD";if(x.lastNeed>2&&w.length>2&&(192&w[2])!=128)return x.lastNeed=2,"\uFFFD"}}(this,p);return y!==void 0?y:this.lastNeed<=p.length?(p.copy(this.lastChar,v,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(p.copy(this.lastChar,v,0,p.length),void(this.lastNeed-=p.length))}function s(p,v){if((p.length-v)%2==0){var y=p.toString("utf16le",v);if(y){var x=y.charCodeAt(y.length-1);if(x>=55296&&x<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=p[p.length-2],this.lastChar[1]=p[p.length-1],y.slice(0,-1)}return y}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=p[p.length-1],p.toString("utf16le",v,p.length-1)}function l(p){var v=p&&p.length?this.write(p):"";if(this.lastNeed){var y=this.lastTotal-this.lastNeed;return v+this.lastChar.toString("utf16le",0,y)}return v}function d(p,v){var y=(p.length-v)%3;return y===0?p.toString("base64",v):(this.lastNeed=3-y,this.lastTotal=3,y===1?this.lastChar[0]=p[p.length-1]:(this.lastChar[0]=p[p.length-2],this.lastChar[1]=p[p.length-1]),p.toString("base64",v,p.length-y))}function h(p){var v=p&&p.length?this.write(p):"";return this.lastNeed?v+this.lastChar.toString("base64",0,3-this.lastNeed):v}function m(p){return p.toString(this.encoding)}function g(p){return p&&p.length?this.write(p):""}f.StringDecoder=u,u.prototype.write=function(p){if(p.length===0)return"";var v,y;if(this.lastNeed){if((v=this.fillLast(p))===void 0)return"";y=this.lastNeed,this.lastNeed=0}else y=0;return y=0?(_>0&&(w.lastNeed=_-1),_):--T=0?(_>0&&(w.lastNeed=_-2),_):--T=0?(_>0&&(_===2?_=0:w.lastNeed=_-3),_):0}(this,p,v);if(!this.lastNeed)return p.toString("utf8",v);this.lastTotal=y;var x=p.length-(y-this.lastNeed);return p.copy(this.lastChar,0,x),p.toString("utf8",v,x)},u.prototype.fillLast=function(p){if(this.lastNeed<=p.length)return p.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);p.copy(this.lastChar,this.lastTotal-this.lastNeed,0,p.length),this.lastNeed-=p.length}},{"safe-buffer":284}],301:[function(e,o,f){(function(r,a){(function(){var u=e("assert"),c=e("debug")("stream-parser");o.exports=function(y){var x=y&&typeof y._transform=="function",w=y&&typeof y._write=="function";if(!x&&!w)throw new Error("must pass a Writable or Transform stream in");c("extending Parser into stream"),y._bytes=s,y._skipBytes=l,x&&(y._passthrough=d),x?y._transform=m:y._write=h};function i(y){c("initializing parser stream"),y._parserBytesLeft=0,y._parserBuffers=[],y._parserBuffered=0,y._parserState=-1,y._parserCallback=null,typeof y.push=="function"&&(y._parserOutput=y.push.bind(y)),y._parserInit=!0}function s(y,x){u(!this._parserCallback,'there is already a "callback" set!'),u(isFinite(y)&&y>0,'can only buffer a finite number of bytes > 0, got "'+y+'"'),this._parserInit||i(this),c("buffering %o bytes",y),this._parserBytesLeft=y,this._parserCallback=x,this._parserState=0}function l(y,x){u(!this._parserCallback,'there is already a "callback" set!'),u(y>0,'can only skip > 0 bytes, got "'+y+'"'),this._parserInit||i(this),c("skipping %o bytes",y),this._parserBytesLeft=y,this._parserCallback=x,this._parserState=1}function d(y,x){u(!this._parserCallback,'There is already a "callback" set!'),u(y>0,'can only pass through > 0 bytes, got "'+y+'"'),this._parserInit||i(this),c("passing through %o bytes",y),this._parserBytesLeft=y,this._parserCallback=x,this._parserState=2}function h(y,x,w){this._parserInit||i(this),c("write(%o bytes)",y.length),typeof x=="function"&&(w=x),p(this,y,null,w)}function m(y,x,w){this._parserInit||i(this),c("transform(%o bytes)",y.length),typeof x!="function"&&(x=this._parserOutput),p(this,y,x,w)}function g(y,x,w,k){if(y._parserBytesLeft-=x.length,c("%o bytes left for stream piece",y._parserBytesLeft),y._parserState===0?(y._parserBuffers.push(x),y._parserBuffered+=x.length):y._parserState===2&&w(x),y._parserBytesLeft!==0)return k;var b=y._parserCallback;if(b&&y._parserState===0&&y._parserBuffers.length>1&&(x=a.concat(y._parserBuffers,y._parserBuffered)),y._parserState!==0&&(x=null),y._parserCallback=null,y._parserBuffered=0,y._parserState=-1,y._parserBuffers.splice(0),b){var T=[];x&&T.push(x),w&&T.push(w);var _=b.length>T.length;_&&T.push(v(k));var M=b.apply(y,T);if(!_||k===M)return k}}var p=v(function y(x,w,k,b){return x._parserBytesLeft<=0?b(new Error("got data but not currently parsing anything")):w.length<=x._parserBytesLeft?function(){return g(x,w,k,b)}:function(){var T=w.slice(0,x._parserBytesLeft);return g(x,T,k,function(_){return _?b(_):w.length>T.length?function(){return y(x,w.slice(T.length),k,b)}:void 0})}});function v(y){return function(){for(var x=y.apply(this,arguments);typeof x=="function";)x=x();return x}}}).call(this)}).call(this,e("_process"),e("buffer").Buffer)},{_process:277,assert:75,buffer:85,debug:302}],302:[function(e,o,f){(function(r){(function(){function a(){var u;try{u=f.storage.debug}catch{}return!u&&r!==void 0&&"env"in r&&(u=r.env.DEBUG),u}(f=o.exports=e("./debug")).log=function(){return typeof console=="object"&&console.log&&Function.prototype.apply.call(console.log,console,arguments)},f.formatArgs=function(u){var c=this.useColors;if(u[0]=(c?"%c":"")+this.namespace+(c?" %c":" ")+u[0]+(c?"%c ":" ")+"+"+f.humanize(this.diff),!!c){var i="color: "+this.color;u.splice(1,0,i,"color: inherit");var s=0,l=0;u[0].replace(/%[a-zA-Z%]/g,function(d){d!=="%%"&&(s++,d==="%c"&&(l=s))}),u.splice(l,0,i)}},f.save=function(u){try{u==null?f.storage.removeItem("debug"):f.storage.debug=u}catch{}},f.load=a,f.useColors=function(){return typeof window<"u"&&window.process&&window.process.type==="renderer"?!0:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},f.storage=typeof chrome<"u"&&chrome.storage!==void 0?chrome.storage.local:function(){try{return window.localStorage}catch{}}(),f.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],f.formatters.j=function(u){try{return JSON.stringify(u)}catch(c){return"[UnexpectedJSONParseError]: "+c.message}},f.enable(a())}).call(this)}).call(this,e("_process"))},{"./debug":303,_process:277}],303:[function(e,o,f){var r;function a(u){function c(){if(c.enabled){var i=c,s=+new Date,l=s-(r||s);i.diff=l,i.prev=r,i.curr=s,r=s;for(var d=new Array(arguments.length),h=0;h0)return function(m){if(!((m=String(m)).length>100)){var g=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(m);if(!!g){var p=parseFloat(g[1]);switch((g[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*p;case"days":case"day":case"d":return p*c;case"hours":case"hour":case"hrs":case"hr":case"h":return p*u;case"minutes":case"minute":case"mins":case"min":case"m":return p*a;case"seconds":case"second":case"secs":case"sec":case"s":return p*r;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return p;default:return}}}}(s);if(h==="number"&&isNaN(s)===!1)return l.long?i(d=s,c,"day")||i(d,u,"hour")||i(d,a,"minute")||i(d,r,"second")||d+" ms":function(m){return m>=c?Math.round(m/c)+"d":m>=u?Math.round(m/u)+"h":m>=a?Math.round(m/a)+"m":m>=r?Math.round(m/r)+"s":m+"ms"}(s);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(s))}},{}],305:[function(e,o,f){var r=e("parenthesis");o.exports=function(a,u,c){if(a==null)throw Error("First argument should be a string");if(u==null)throw Error("Separator should be a string or a RegExp");c?(typeof c=="string"||Array.isArray(c))&&(c={ignore:c}):c={},c.escape==null&&(c.escape=!0),c.ignore==null?c.ignore=["[]","()","{}","<>",'""',"''","``","\u201C\u201D","\xAB\xBB"]:(typeof c.ignore=="string"&&(c.ignore=[c.ignore]),c.ignore=c.ignore.map(function(g){return g.length===1&&(g+=g),g}));var i=r.parse(a,{flat:!0,brackets:c.ignore}),s=i[0].split(u);if(c.escape){for(var l=[],d=0;d0;){k=T[T.length-1];var _=r[k];if(s[k]<_.length){for(var M=s[k];M<_.length;++M){var A=_[M];if(u[A]<0){u[A]=c[A]=g,i[A]=!0,g+=1,b.push(A),T.push(A);break}i[A]&&(c[k]=0|Math.min(c[k],c[A])),l[A]>=0&&d[k].push(l[A])}s[k]=M}else{if(c[k]===u[k]){var S=[],E=[],D=0;for(M=b.length-1;M>=0;--M){var O=b[M];if(i[O]=!1,S.push(O),E.push(d[O]),D+=d[O].length,l[O]=p.length,O===k){b.length=M;break}}p.push(S);var R=new Array(D);for(M=0;M1&&(m=1),m<-1&&(m=-1),(s*h-l*d<0?-1:1)*Math.acos(m)};f.default=function(s){var l=s.px,d=s.py,h=s.cx,m=s.cy,g=s.rx,p=s.ry,v=s.xAxisRotation,y=v===void 0?0:v,x=s.largeArcFlag,w=x===void 0?0:x,k=s.sweepFlag,b=k===void 0?0:k,T=[];if(g===0||p===0)return[];var _=Math.sin(y*a/360),M=Math.cos(y*a/360),A=M*(l-h)/2+_*(d-m)/2,S=-_*(l-h)/2+M*(d-m)/2;if(A===0&&S===0)return[];g=Math.abs(g),p=Math.abs(p);var E=Math.pow(A,2)/Math.pow(g,2)+Math.pow(S,2)/Math.pow(p,2);E>1&&(g*=Math.sqrt(E),p*=Math.sqrt(E));var D=function(W,K,te,Y,Z,re,U,q,$,ne,H,Q){var ee=Math.pow(Z,2),ie=Math.pow(re,2),ae=Math.pow(H,2),ue=Math.pow(Q,2),le=ee*ie-ee*ue-ie*ae;le<0&&(le=0),le/=ee*ue+ie*ae;var ge=(le=Math.sqrt(le)*(U===q?-1:1))*Z/re*Q,fe=le*-re/Z*H,me=ne*ge-$*fe+(W+te)/2,_e=$*ge+ne*fe+(K+Y)/2,we=(H-ge)/Z,Te=(Q-fe)/re,Oe=(-H-ge)/Z,de=(-Q-fe)/re,ye=i(1,0,we,Te),Me=i(we,Te,Oe,de);return q===0&&Me>0&&(Me-=a),q===1&&Me<0&&(Me+=a),[me,_e,ye,Me]}(l,d,h,m,g,p,w,b,_,M,A,S),O=r(D,4),R=O[0],z=O[1],L=O[2],P=O[3],N=Math.abs(P)/(a/4);Math.abs(1-N)<1e-7&&(N=1);var B=Math.max(Math.ceil(N),1);P/=B;for(var G=0;Gl[2]&&(l[2]=m[g+0]),m[g+1]>l[3]&&(l[3]=m[g+1]);return l}},{"abs-svg-path":70,assert:75,"is-svg-path":238,"normalize-svg-path":309,"parse-svg-path":250}],309:[function(e,o,f){o.exports=function(c){for(var i,s=[],l=0,d=0,h=0,m=0,g=null,p=null,v=0,y=0,x=0,w=c.length;x4?(l=k[k.length-4],d=k[k.length-3]):(l=v,d=y),s.push(k)}return s};var r=e("svg-arc-to-cubic-bezier");function a(c,i,s,l){return["C",c,i,s,l,s,l]}function u(c,i,s,l,d,h){return["C",c/3+2/3*s,i/3+2/3*l,d/3+2/3*s,h/3+2/3*l,d,h]}},{"svg-arc-to-cubic-bezier":307}],310:[function(e,o,f){var r,a=e("svg-path-bounds"),u=e("parse-svg-path"),c=e("draw-svg-path"),i=e("is-svg-path"),s=e("bitmap-sdf"),l=document.createElement("canvas"),d=l.getContext("2d");o.exports=function(h,m){if(!i(h))throw Error("Argument should be valid svg path string");m||(m={});var g,p;m.shape?(g=m.shape[0],p=m.shape[1]):(g=l.width=m.w||m.width||200,p=l.height=m.h||m.height||200);var v=Math.min(g,p),y=m.stroke||0,x=m.viewbox||m.viewBox||a(h),w=[g/(x[2]-x[0]),p/(x[3]-x[1])],k=Math.min(w[0]||0,w[1]||0)/2;if(d.fillStyle="black",d.fillRect(0,0,g,p),d.fillStyle="white",y&&(typeof y!="number"&&(y=1),d.strokeStyle=y>0?"white":"black",d.lineWidth=Math.abs(y)),d.translate(.5*g,.5*p),d.scale(k,k),function(){if(r!=null)return r;var _=document.createElement("canvas").getContext("2d");if(_.canvas.width=_.canvas.height=1,!window.Path2D)return r=!1;var M=new Path2D("M0,0h1v1h-1v-1Z");_.fillStyle="black",_.fill(M);var A=_.getImageData(0,0,1,1);return r=A&&A.data&&A.data[3]===255}()){var b=new Path2D(h);d.fill(b),y&&d.stroke(b)}else{var T=u(h);c(d,T),d.fill(),y&&d.stroke()}return d.setTransform(1,0,0,1,0,0),s(d,{cutoff:m.cutoff!=null?m.cutoff:.5,radius:m.radius!=null?m.radius:.5*v})}},{"bitmap-sdf":82,"draw-svg-path":126,"is-svg-path":238,"parse-svg-path":250,"svg-path-bounds":308}],311:[function(e,o,f){(function(r,a){(function(){var u=e("process/browser.js").nextTick,c=Function.prototype.apply,i=Array.prototype.slice,s={},l=0;function d(h,m){this._id=h,this._clearFn=m}f.setTimeout=function(){return new d(c.call(setTimeout,window,arguments),clearTimeout)},f.setInterval=function(){return new d(c.call(setInterval,window,arguments),clearInterval)},f.clearTimeout=f.clearInterval=function(h){h.close()},d.prototype.unref=d.prototype.ref=function(){},d.prototype.close=function(){this._clearFn.call(window,this._id)},f.enroll=function(h,m){clearTimeout(h._idleTimeoutId),h._idleTimeout=m},f.unenroll=function(h){clearTimeout(h._idleTimeoutId),h._idleTimeout=-1},f._unrefActive=f.active=function(h){clearTimeout(h._idleTimeoutId);var m=h._idleTimeout;m>=0&&(h._idleTimeoutId=setTimeout(function(){h._onTimeout&&h._onTimeout()},m))},f.setImmediate=typeof r=="function"?r:function(h){var m=l++,g=!(arguments.length<2)&&i.call(arguments,1);return s[m]=!0,u(function(){s[m]&&(g?h.apply(null,g):h.call(null),f.clearImmediate(m))}),m},f.clearImmediate=typeof a=="function"?a:function(h){delete s[h]}}).call(this)}).call(this,e("timers").setImmediate,e("timers").clearImmediate)},{"process/browser.js":277,timers:311}],312:[function(e,o,f){(function(r){var a=/^\s+/,u=/\s+$/,c=0,i=r.round,s=r.min,l=r.max,d=r.random;function h($,ne){if(ne=ne||{},($=$||"")instanceof h)return $;if(!(this instanceof h))return new h($,ne);var H=function(Q){var ee={r:0,g:0,b:0},ie=1,ae=null,ue=null,le=null,ge=!1,fe=!1;typeof Q=="string"&&(Q=function(Te){Te=Te.replace(a,"").replace(u,"").toLowerCase();var Oe,de=!1;if(R[Te])Te=R[Te],de=!0;else if(Te=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};return(Oe=U.rgb.exec(Te))?{r:Oe[1],g:Oe[2],b:Oe[3]}:(Oe=U.rgba.exec(Te))?{r:Oe[1],g:Oe[2],b:Oe[3],a:Oe[4]}:(Oe=U.hsl.exec(Te))?{h:Oe[1],s:Oe[2],l:Oe[3]}:(Oe=U.hsla.exec(Te))?{h:Oe[1],s:Oe[2],l:Oe[3],a:Oe[4]}:(Oe=U.hsv.exec(Te))?{h:Oe[1],s:Oe[2],v:Oe[3]}:(Oe=U.hsva.exec(Te))?{h:Oe[1],s:Oe[2],v:Oe[3],a:Oe[4]}:(Oe=U.hex8.exec(Te))?{r:B(Oe[1]),g:B(Oe[2]),b:B(Oe[3]),a:te(Oe[4]),format:de?"name":"hex8"}:(Oe=U.hex6.exec(Te))?{r:B(Oe[1]),g:B(Oe[2]),b:B(Oe[3]),format:de?"name":"hex"}:(Oe=U.hex4.exec(Te))?{r:B(Oe[1]+""+Oe[1]),g:B(Oe[2]+""+Oe[2]),b:B(Oe[3]+""+Oe[3]),a:te(Oe[4]+""+Oe[4]),format:de?"name":"hex8"}:(Oe=U.hex3.exec(Te))?{r:B(Oe[1]+""+Oe[1]),g:B(Oe[2]+""+Oe[2]),b:B(Oe[3]+""+Oe[3]),format:de?"name":"hex"}:!1}(Q)),typeof Q=="object"&&(q(Q.r)&&q(Q.g)&&q(Q.b)?(me=Q.r,_e=Q.g,we=Q.b,ee={r:255*P(me,255),g:255*P(_e,255),b:255*P(we,255)},ge=!0,fe=String(Q.r).substr(-1)==="%"?"prgb":"rgb"):q(Q.h)&&q(Q.s)&&q(Q.v)?(ae=W(Q.s),ue=W(Q.v),ee=function(Te,Oe,de){Te=6*P(Te,360),Oe=P(Oe,100),de=P(de,100);var ye=r.floor(Te),Me=Te-ye,ke=de*(1-Oe),Ee=de*(1-Me*Oe),ze=de*(1-(1-Me)*Oe),Fe=ye%6;return{r:255*[de,Ee,ke,ke,ze,de][Fe],g:255*[ze,de,de,Ee,ke,ke][Fe],b:255*[ke,ke,ze,de,de,Ee][Fe]}}(Q.h,ae,ue),ge=!0,fe="hsv"):q(Q.h)&&q(Q.s)&&q(Q.l)&&(ae=W(Q.s),le=W(Q.l),ee=function(Te,Oe,de){var ye,Me,ke;function Ee(Ve,Ke,Re){return Re<0&&(Re+=1),Re>1&&(Re-=1),Re<1/6?Ve+6*(Ke-Ve)*Re:Re<.5?Ke:Re<2/3?Ve+(Ke-Ve)*(2/3-Re)*6:Ve}if(Te=P(Te,360),Oe=P(Oe,100),de=P(de,100),Oe===0)ye=Me=ke=de;else{var ze=de<.5?de*(1+Oe):de+Oe-de*Oe,Fe=2*de-ze;ye=Ee(Fe,ze,Te+1/3),Me=Ee(Fe,ze,Te),ke=Ee(Fe,ze,Te-1/3)}return{r:255*ye,g:255*Me,b:255*ke}}(Q.h,ae,le),ge=!0,fe="hsl"),Q.hasOwnProperty("a")&&(ie=Q.a));var me,_e,we;return ie=L(ie),{ok:ge,format:Q.format||fe,r:s(255,l(ee.r,0)),g:s(255,l(ee.g,0)),b:s(255,l(ee.b,0)),a:ie}}($);this._originalInput=$,this._r=H.r,this._g=H.g,this._b=H.b,this._a=H.a,this._roundA=i(100*this._a)/100,this._format=ne.format||H.format,this._gradientType=ne.gradientType,this._r<1&&(this._r=i(this._r)),this._g<1&&(this._g=i(this._g)),this._b<1&&(this._b=i(this._b)),this._ok=H.ok,this._tc_id=c++}function m($,ne,H){$=P($,255),ne=P(ne,255),H=P(H,255);var Q,ee,ie=l($,ne,H),ae=s($,ne,H),ue=(ie+ae)/2;if(ie==ae)Q=ee=0;else{var le=ie-ae;switch(ee=ue>.5?le/(2-ie-ae):le/(ie+ae),ie){case $:Q=(ne-H)/le+(ne>1)+720)%360;--ne;)Q.h=(Q.h+ee)%360,ie.push(h(Q));return ie}function O($,ne){ne=ne||6;for(var H=h($).toHsv(),Q=H.h,ee=H.s,ie=H.v,ae=[],ue=1/ne;ne--;)ae.push(h({h:Q,s:ee,v:ie})),ie=(ie+ue)%1;return ae}h.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var $=this.toRgb();return(299*$.r+587*$.g+114*$.b)/1e3},getLuminance:function(){var $,ne,H,Q=this.toRgb();return $=Q.r/255,ne=Q.g/255,H=Q.b/255,.2126*($<=.03928?$/12.92:r.pow(($+.055)/1.055,2.4))+.7152*(ne<=.03928?ne/12.92:r.pow((ne+.055)/1.055,2.4))+.0722*(H<=.03928?H/12.92:r.pow((H+.055)/1.055,2.4))},setAlpha:function($){return this._a=L($),this._roundA=i(100*this._a)/100,this},toHsv:function(){var $=g(this._r,this._g,this._b);return{h:360*$.h,s:$.s,v:$.v,a:this._a}},toHsvString:function(){var $=g(this._r,this._g,this._b),ne=i(360*$.h),H=i(100*$.s),Q=i(100*$.v);return this._a==1?"hsv("+ne+", "+H+"%, "+Q+"%)":"hsva("+ne+", "+H+"%, "+Q+"%, "+this._roundA+")"},toHsl:function(){var $=m(this._r,this._g,this._b);return{h:360*$.h,s:$.s,l:$.l,a:this._a}},toHslString:function(){var $=m(this._r,this._g,this._b),ne=i(360*$.h),H=i(100*$.s),Q=i(100*$.l);return this._a==1?"hsl("+ne+", "+H+"%, "+Q+"%)":"hsla("+ne+", "+H+"%, "+Q+"%, "+this._roundA+")"},toHex:function($){return p(this._r,this._g,this._b,$)},toHexString:function($){return"#"+this.toHex($)},toHex8:function($){return function(ne,H,Q,ee,ie){var ae=[G(i(ne).toString(16)),G(i(H).toString(16)),G(i(Q).toString(16)),G(K(ee))];return ie&&ae[0].charAt(0)==ae[0].charAt(1)&&ae[1].charAt(0)==ae[1].charAt(1)&&ae[2].charAt(0)==ae[2].charAt(1)&&ae[3].charAt(0)==ae[3].charAt(1)?ae[0].charAt(0)+ae[1].charAt(0)+ae[2].charAt(0)+ae[3].charAt(0):ae.join("")}(this._r,this._g,this._b,this._a,$)},toHex8String:function($){return"#"+this.toHex8($)},toRgb:function(){return{r:i(this._r),g:i(this._g),b:i(this._b),a:this._a}},toRgbString:function(){return this._a==1?"rgb("+i(this._r)+", "+i(this._g)+", "+i(this._b)+")":"rgba("+i(this._r)+", "+i(this._g)+", "+i(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:i(100*P(this._r,255))+"%",g:i(100*P(this._g,255))+"%",b:i(100*P(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return this._a==1?"rgb("+i(100*P(this._r,255))+"%, "+i(100*P(this._g,255))+"%, "+i(100*P(this._b,255))+"%)":"rgba("+i(100*P(this._r,255))+"%, "+i(100*P(this._g,255))+"%, "+i(100*P(this._b,255))+"%, "+this._roundA+")"},toName:function(){return this._a===0?"transparent":!(this._a<1)&&(z[p(this._r,this._g,this._b,!0)]||!1)},toFilter:function($){var ne="#"+v(this._r,this._g,this._b,this._a),H=ne,Q=this._gradientType?"GradientType = 1, ":"";if($){var ee=h($);H="#"+v(ee._r,ee._g,ee._b,ee._a)}return"progid:DXImageTransform.Microsoft.gradient("+Q+"startColorstr="+ne+",endColorstr="+H+")"},toString:function($){var ne=!!$;$=$||this._format;var H=!1,Q=this._a<1&&this._a>=0;return ne||!Q||$!=="hex"&&$!=="hex6"&&$!=="hex3"&&$!=="hex4"&&$!=="hex8"&&$!=="name"?($==="rgb"&&(H=this.toRgbString()),$==="prgb"&&(H=this.toPercentageRgbString()),$!=="hex"&&$!=="hex6"||(H=this.toHexString()),$==="hex3"&&(H=this.toHexString(!0)),$==="hex4"&&(H=this.toHex8String(!0)),$==="hex8"&&(H=this.toHex8String()),$==="name"&&(H=this.toName()),$==="hsl"&&(H=this.toHslString()),$==="hsv"&&(H=this.toHsvString()),H||this.toHexString()):$==="name"&&this._a===0?this.toName():this.toRgbString()},clone:function(){return h(this.toString())},_applyModification:function($,ne){var H=$.apply(null,[this].concat([].slice.call(ne)));return this._r=H._r,this._g=H._g,this._b=H._b,this.setAlpha(H._a),this},lighten:function(){return this._applyModification(k,arguments)},brighten:function(){return this._applyModification(b,arguments)},darken:function(){return this._applyModification(T,arguments)},desaturate:function(){return this._applyModification(y,arguments)},saturate:function(){return this._applyModification(x,arguments)},greyscale:function(){return this._applyModification(w,arguments)},spin:function(){return this._applyModification(_,arguments)},_applyCombination:function($,ne){return $.apply(null,[this].concat([].slice.call(ne)))},analogous:function(){return this._applyCombination(D,arguments)},complement:function(){return this._applyCombination(M,arguments)},monochromatic:function(){return this._applyCombination(O,arguments)},splitcomplement:function(){return this._applyCombination(E,arguments)},triad:function(){return this._applyCombination(A,arguments)},tetrad:function(){return this._applyCombination(S,arguments)}},h.fromRatio=function($,ne){if(typeof $=="object"){var H={};for(var Q in $)$.hasOwnProperty(Q)&&(H[Q]=Q==="a"?$[Q]:W($[Q]));$=H}return h($,ne)},h.equals=function($,ne){return!(!$||!ne)&&h($).toRgbString()==h(ne).toRgbString()},h.random=function(){return h.fromRatio({r:d(),g:d(),b:d()})},h.mix=function($,ne,H){H=H===0?0:H||50;var Q=h($).toRgb(),ee=h(ne).toRgb(),ie=H/100;return h({r:(ee.r-Q.r)*ie+Q.r,g:(ee.g-Q.g)*ie+Q.g,b:(ee.b-Q.b)*ie+Q.b,a:(ee.a-Q.a)*ie+Q.a})},h.readability=function($,ne){var H=h($),Q=h(ne);return(r.max(H.getLuminance(),Q.getLuminance())+.05)/(r.min(H.getLuminance(),Q.getLuminance())+.05)},h.isReadable=function($,ne,H){var Q,ee,ie=h.readability($,ne);switch(ee=!1,(Q=function(ae){var ue,le;return ue=((ae=ae||{level:"AA",size:"small"}).level||"AA").toUpperCase(),le=(ae.size||"small").toLowerCase(),ue!=="AA"&&ue!=="AAA"&&(ue="AA"),le!=="small"&&le!=="large"&&(le="small"),{level:ue,size:le}}(H)).level+Q.size){case"AAsmall":case"AAAlarge":ee=ie>=4.5;break;case"AAlarge":ee=ie>=3;break;case"AAAsmall":ee=ie>=7}return ee},h.mostReadable=function($,ne,H){var Q,ee,ie,ae,ue=null,le=0;ee=(H=H||{}).includeFallbackColors,ie=H.level,ae=H.size;for(var ge=0;gele&&(le=Q,ue=h(ne[ge]));return h.isReadable($,ue,{level:ie,size:ae})||!ee?ue:(H.includeFallbackColors=!1,h.mostReadable($,["#fff","#000"],H))};var R=h.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},z=h.hexNames=function($){var ne={};for(var H in $)$.hasOwnProperty(H)&&(ne[$[H]]=H);return ne}(R);function L($){return $=parseFloat($),(isNaN($)||$<0||$>1)&&($=1),$}function P($,ne){(function(Q){return typeof Q=="string"&&Q.indexOf(".")!=-1&&parseFloat(Q)===1})($)&&($="100%");var H=function(Q){return typeof Q=="string"&&Q.indexOf("%")!=-1}($);return $=s(ne,l(0,parseFloat($))),H&&($=parseInt($*ne,10)/100),r.abs($-ne)<1e-6?1:$%ne/parseFloat(ne)}function N($){return s(1,l(0,$))}function B($){return parseInt($,16)}function G($){return $.length==1?"0"+$:""+$}function W($){return $<=1&&($=100*$+"%"),$}function K($){return r.round(255*parseFloat($)).toString(16)}function te($){return B($)/255}var Y,Z,re,U=(Z="[\\s|\\(]+("+(Y="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+")[,|\\s]+("+Y+")[,|\\s]+("+Y+")\\s*\\)?",re="[\\s|\\(]+("+Y+")[,|\\s]+("+Y+")[,|\\s]+("+Y+")[,|\\s]+("+Y+")\\s*\\)?",{CSS_UNIT:new RegExp(Y),rgb:new RegExp("rgb"+Z),rgba:new RegExp("rgba"+re),hsl:new RegExp("hsl"+Z),hsla:new RegExp("hsla"+re),hsv:new RegExp("hsv"+Z),hsva:new RegExp("hsva"+re),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});function q($){return!!U.CSS_UNIT.exec($)}o!==void 0&&o.exports?o.exports=h:window.tinycolor=h})(Math)},{}],313:[function(e,o,f){o.exports=a,o.exports.float32=o.exports.float=a,o.exports.fract32=o.exports.fract=function(u,c){if(u.length){if(u instanceof Float32Array)return new Float32Array(u.length);c instanceof Float32Array||(c=a(u));for(var i=0,s=c.length;ib&&(b=A[0]),A[1]T&&(T=A[1])}function M(A){switch(A.type){case"GeometryCollection":A.geometries.forEach(M);break;case"Point":_(A.coordinates);break;case"MultiPoint":A.coordinates.forEach(_)}}for(y in v.arcs.forEach(function(A){for(var S,E=-1,D=A.length;++Eb&&(b=S[0]),S[1]T&&(T=S[1])}),v.objects)M(v.objects[y]);return[w,k,b,T]}function i(v,y){var x=y.id,w=y.bbox,k=y.properties==null?{}:y.properties,b=s(v,y);return x==null&&w==null?{type:"Feature",properties:k,geometry:b}:w==null?{type:"Feature",id:x,properties:k,geometry:b}:{type:"Feature",id:x,bbox:w,properties:k,geometry:b}}function s(v,y){var x=u(v.transform),w=v.arcs;function k(A,S){S.length&&S.pop();for(var E=w[A<0?~A:A],D=0,O=E.length;D1)w=h(v,y,x);else for(k=0,w=new Array(b=v.arcs.length);k1)for(var S,E,D=1,O=T(A[0]);DO&&(E=A[0],A[0]=A[D],A[D]=E,O=S);return A}).filter(function(_){return _.length>0})}}function g(v,y){for(var x=0,w=v.length;x>>1;v[k]=2))throw new Error("n must be \u22652");var x,w=(_=v.bbox||c(v))[0],k=_[1],b=_[2],T=_[3];y={scale:[b-w?(b-w)/(x-1):1,T-k?(T-k)/(x-1):1],translate:[w,k]}}var _,M,A=p(y),S=v.objects,E={};function D(R){return A(R)}function O(R){var z;switch(R.type){case"GeometryCollection":z={type:"GeometryCollection",geometries:R.geometries.map(O)};break;case"Point":z={type:"Point",coordinates:D(R.coordinates)};break;case"MultiPoint":z={type:"MultiPoint",coordinates:R.coordinates.map(D)};break;default:return R}return R.id!=null&&(z.id=R.id),R.bbox!=null&&(z.bbox=R.bbox),R.properties!=null&&(z.properties=R.properties),z}for(M in S)E[M]=O(S[M]);return{type:"Topology",bbox:_,transform:y,objects:E,arcs:v.arcs.map(function(R){var z,L=0,P=1,N=R.length,B=new Array(N);for(B[0]=A(R[0],0);++L":(c.length>100&&(c=c.slice(0,99)+"\u2026"),c=c.replace(a,function(i){switch(i){case` +`:return"\\n";case"\r":return"\\r";case"\u2028":return"\\u2028";case"\u2029":return"\\u2029";default:throw new Error("Unexpected character")}}))}},{"./safe-to-string":318}],320:[function(e,o,f){var r=e("../value/is"),a={object:!0,function:!0,undefined:!0};o.exports=function(u){return!!r(u)&&hasOwnProperty.call(a,typeof u)}},{"../value/is":326}],321:[function(e,o,f){var r=e("../lib/resolve-exception"),a=e("./is");o.exports=function(u){return a(u)?u:r(u,"%v is not a plain function",arguments[1])}},{"../lib/resolve-exception":317,"./is":322}],322:[function(e,o,f){var r=e("../function/is"),a=/^\s*class[\s{/}]/,u=Function.prototype.toString;o.exports=function(c){return!!r(c)&&!a.test(u.call(c))}},{"../function/is":316}],323:[function(e,o,f){var r=e("../object/is");o.exports=function(a){if(!r(a))return!1;try{return!!a.constructor&&a.constructor.prototype===a}catch{return!1}}},{"../object/is":320}],324:[function(e,o,f){var r=e("../value/is"),a=e("../object/is"),u=Object.prototype.toString;o.exports=function(c){if(!r(c))return null;if(a(c)){var i=c.toString;if(typeof i!="function"||i===u)return null}try{return""+c}catch{return null}}},{"../object/is":320,"../value/is":326}],325:[function(e,o,f){var r=e("../lib/resolve-exception"),a=e("./is");o.exports=function(u){return a(u)?u:r(u,"Cannot use %v",arguments[1])}},{"../lib/resolve-exception":317,"./is":326}],326:[function(e,o,f){o.exports=function(r){return r!=null}},{}],327:[function(e,o,f){(function(r){(function(){var a=e("bit-twiddle"),u=e("dup"),c=e("buffer").Buffer;r.__TYPEDARRAY_POOL||(r.__TYPEDARRAY_POOL={UINT8:u([32,0]),UINT16:u([32,0]),UINT32:u([32,0]),BIGUINT64:u([32,0]),INT8:u([32,0]),INT16:u([32,0]),INT32:u([32,0]),BIGINT64:u([32,0]),FLOAT:u([32,0]),DOUBLE:u([32,0]),DATA:u([32,0]),UINT8C:u([32,0]),BUFFER:u([32,0])});var i=typeof Uint8ClampedArray<"u",s=typeof BigUint64Array<"u",l=typeof BigInt64Array<"u",d=r.__TYPEDARRAY_POOL;d.UINT8C||(d.UINT8C=u([32,0])),d.BIGUINT64||(d.BIGUINT64=u([32,0])),d.BIGINT64||(d.BIGINT64=u([32,0])),d.BUFFER||(d.BUFFER=u([32,0]));var h=d.DATA,m=d.BUFFER;function g(O){if(O){var R=O.length||O.byteLength,z=a.log2(R);h[z].push(O)}}function p(O){O=a.nextPow2(O);var R=a.log2(O),z=h[R];return z.length>0?z.pop():new ArrayBuffer(O)}function v(O){return new Uint8Array(p(O),0,O)}function y(O){return new Uint16Array(p(2*O),0,O)}function x(O){return new Uint32Array(p(4*O),0,O)}function w(O){return new Int8Array(p(O),0,O)}function k(O){return new Int16Array(p(2*O),0,O)}function b(O){return new Int32Array(p(4*O),0,O)}function T(O){return new Float32Array(p(4*O),0,O)}function _(O){return new Float64Array(p(8*O),0,O)}function M(O){return i?new Uint8ClampedArray(p(O),0,O):v(O)}function A(O){return s?new BigUint64Array(p(8*O),0,O):null}function S(O){return l?new BigInt64Array(p(8*O),0,O):null}function E(O){return new DataView(p(O),0,O)}function D(O){O=a.nextPow2(O);var R=a.log2(O),z=m[R];return z.length>0?z.pop():new c(O)}f.free=function(O){if(c.isBuffer(O))m[a.log2(O.length)].push(O);else{if(Object.prototype.toString.call(O)!=="[object ArrayBuffer]"&&(O=O.buffer),!O)return;var R=O.length||O.byteLength,z=0|a.log2(R);h[z].push(O)}},f.freeUint8=f.freeUint16=f.freeUint32=f.freeBigUint64=f.freeInt8=f.freeInt16=f.freeInt32=f.freeBigInt64=f.freeFloat32=f.freeFloat=f.freeFloat64=f.freeDouble=f.freeUint8Clamped=f.freeDataView=function(O){g(O.buffer)},f.freeArrayBuffer=g,f.freeBuffer=function(O){m[a.log2(O.length)].push(O)},f.malloc=function(O,R){if(R===void 0||R==="arraybuffer")return p(O);switch(R){case"uint8":return v(O);case"uint16":return y(O);case"uint32":return x(O);case"int8":return w(O);case"int16":return k(O);case"int32":return b(O);case"float":case"float32":return T(O);case"double":case"float64":return _(O);case"uint8_clamped":return M(O);case"bigint64":return S(O);case"biguint64":return A(O);case"buffer":return D(O);case"data":case"dataview":return E(O);default:return null}return null},f.mallocArrayBuffer=p,f.mallocUint8=v,f.mallocUint16=y,f.mallocUint32=x,f.mallocInt8=w,f.mallocInt16=k,f.mallocInt32=b,f.mallocFloat32=f.mallocFloat=T,f.mallocFloat64=f.mallocDouble=_,f.mallocUint8Clamped=M,f.mallocBigUint64=A,f.mallocBigInt64=S,f.mallocDataView=E,f.mallocBuffer=D,f.clearCache=function(){for(var O=0;O<32;++O)d.UINT8[O].length=0,d.UINT16[O].length=0,d.UINT32[O].length=0,d.INT8[O].length=0,d.INT16[O].length=0,d.INT32[O].length=0,d.FLOAT[O].length=0,d.DOUBLE[O].length=0,d.BIGUINT64[O].length=0,d.BIGINT64[O].length=0,d.UINT8C[O].length=0,h[O].length=0,m[O].length=0}}).call(this)}).call(this,typeof Ro<"u"?Ro:typeof self<"u"?self:typeof window<"u"?window:{})},{"bit-twiddle":81,buffer:85,dup:128}],328:[function(e,o,f){var r=/[\'\"]/;o.exports=function(a){return a?(r.test(a.charAt(0))&&(a=a.substr(1)),r.test(a.charAt(a.length-1))&&(a=a.substr(0,a.length-1)),a):""}},{}],329:[function(e,o,f){o.exports=function(r,a,u){Array.isArray(u)||(u=[].slice.call(arguments,2));for(var c=0,i=u.length;c2111)throw p.replace(/\{0\}/,this.local.name);return g},toMonthIndex:function(g,p,v){var y=this.intercalaryMonth(g);if(v&&p!==y||p<1||p>12)throw r.local.invalidMonth.replace(/\{0\}/,this.local.name);return y?!v&&p<=y?p-1:p:p-1},toChineseMonth:function(g,p){g.year&&(p=(g=g.year()).month());var v=this.intercalaryMonth(g);if(p<0||p>(v?12:11))throw r.local.invalidMonth.replace(/\{0\}/,this.local.name);return v?p>13},isIntercalaryMonth:function(g,p){g.year&&(p=(g=g.year()).month());var v=this.intercalaryMonth(g);return!!v&&v===p},leapYear:function(g){return this.intercalaryMonth(g)!==0},weekOfYear:function(g,p,v){var y,x=this._validateYear(g,r.local.invalidyear),w=m[x-m[0]],k=w>>9&4095,b=w>>5&15,T=31&w;(y=u.newDate(k,b,T)).add(4-(y.dayOfWeek()||7),"d");var _=this.toJD(g,p,v)-y.toJD();return 1+Math.floor(_/7)},monthsInYear:function(g){return this.leapYear(g)?13:12},daysInMonth:function(g,p){g.year&&(p=g.month(),g=g.year()),g=this._validateYear(g);var v=h[g-h[0]];if(p>(v>>13?12:11))throw r.local.invalidMonth.replace(/\{0\}/,this.local.name);return v&1<<12-p?30:29},weekDay:function(g,p,v){return(this.dayOfWeek(g,p,v)||7)<6},toJD:function(g,p,v){var y=this._validate(g,w,v,r.local.invalidDate);g=this._validateYear(y.year()),p=y.month(),v=y.day();var x=this.isIntercalaryMonth(g,p),w=this.toChineseMonth(g,p),k=function(b,T,_,M,A){var S,E,D;if(typeof b=="object")E=b,S=T||{};else{var O;if(!(typeof b=="number"&&b>=1888&&b<=2111))throw new Error("Lunar year outside range 1888-2111");if(!(typeof T=="number"&&T>=1&&T<=12))throw new Error("Lunar month outside range 1 - 12");if(!(typeof _=="number"&&_>=1&&_<=30))throw new Error("Lunar day outside range 1 - 30");typeof M=="object"?(O=!1,S=M):(O=!!M,S=A||{}),E={year:b,month:T,day:_,isIntercalary:O}}D=E.day-1;var R,z=h[E.year-h[0]],L=z>>13;R=L&&(E.month>L||E.isIntercalary)?E.month:E.month-1;for(var P=0;P>9&4095,(N>>5&15)-1,(31&N)+D);return S.year=B.getFullYear(),S.month=1+B.getMonth(),S.day=B.getDate(),S}(g,w,v,x);return u.toJD(k.year,k.month,k.day)},fromJD:function(g){var p=u.fromJD(g),v=function(x,w,k,b){var T,_;if(typeof x=="object")T=x,_=w||{};else{if(!(typeof x=="number"&&x>=1888&&x<=2111))throw new Error("Solar year outside range 1888-2111");if(!(typeof w=="number"&&w>=1&&w<=12))throw new Error("Solar month outside range 1 - 12");if(!(typeof k=="number"&&k>=1&&k<=31))throw new Error("Solar day outside range 1 - 31");T={year:x,month:w,day:k},_=b||{}}var M=m[T.year-m[0]],A=T.year<<9|T.month<<5|T.day;_.year=A>=M?T.year:T.year-1,M=m[_.year-m[0]];var S,E=new Date(M>>9&4095,(M>>5&15)-1,31&M),D=new Date(T.year,T.month-1,T.day);S=Math.round((D-E)/864e5);var O,R=h[_.year-h[0]];for(O=0;O<13;O++){var z=R&1<<12-O?30:29;if(S>13;return!L||O=2&&d<=6},extraInfo:function(i,s,l){var d=this._validate(i,s,l,r.local.invalidDate);return{century:c[Math.floor((d.year()-1)/100)+1]||""}},toJD:function(i,s,l){var d=this._validate(i,s,l,r.local.invalidDate);return i=d.year()+(d.year()<0?1:0),s=d.month(),(l=d.day())+(s>1?16:0)+(s>2?32*(s-2):0)+400*(i-1)+this.jdEpoch-1},fromJD:function(i){i=Math.floor(i+.5)-Math.floor(this.jdEpoch)-1;var s=Math.floor(i/400)+1;i-=400*(s-1),i+=i>15?16:0;var l=Math.floor(i/32)+1,d=i-32*(l-1)+1;return this.newDate(s<=0?s-1:s,l,d)}});var c={20:"Fruitbat",21:"Anchovy"};r.calendars.discworld=u},{"../main":346,"object-assign":247}],335:[function(e,o,f){var r=e("../main"),a=e("object-assign");function u(c){this.local=this.regionalOptions[c||""]||this.regionalOptions[""]}u.prototype=new r.baseCalendar,a(u.prototype,{name:"Ethiopian",jdEpoch:17242205e-1,daysPerMonth:[30,30,30,30,30,30,30,30,30,30,30,30,5],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Ethiopian",epochs:["BEE","EE"],monthNames:["Meskerem","Tikemet","Hidar","Tahesas","Tir","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehase","Pagume"],monthNamesShort:["Mes","Tik","Hid","Tah","Tir","Yek","Meg","Mia","Gen","Sen","Ham","Neh","Pag"],dayNames:["Ehud","Segno","Maksegno","Irob","Hamus","Arb","Kidame"],dayNamesShort:["Ehu","Seg","Mak","Iro","Ham","Arb","Kid"],dayNamesMin:["Eh","Se","Ma","Ir","Ha","Ar","Ki"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:0,isRTL:!1}},leapYear:function(c){var i=this._validate(c,this.minMonth,this.minDay,r.local.invalidYear);return(c=i.year()+(i.year()<0?1:0))%4==3||c%4==-1},monthsInYear:function(c){return this._validate(c,this.minMonth,this.minDay,r.local.invalidYear||r.regionalOptions[""].invalidYear),13},weekOfYear:function(c,i,s){var l=this.newDate(c,i,s);return l.add(-l.dayOfWeek(),"d"),Math.floor((l.dayOfYear()-1)/7)+1},daysInMonth:function(c,i){var s=this._validate(c,i,this.minDay,r.local.invalidMonth);return this.daysPerMonth[s.month()-1]+(s.month()===13&&this.leapYear(s.year())?1:0)},weekDay:function(c,i,s){return(this.dayOfWeek(c,i,s)||7)<6},toJD:function(c,i,s){var l=this._validate(c,i,s,r.local.invalidDate);return(c=l.year())<0&&c++,l.day()+30*(l.month()-1)+365*(c-1)+Math.floor(c/4)+this.jdEpoch-1},fromJD:function(c){var i=Math.floor(c)+.5-this.jdEpoch,s=Math.floor((i-Math.floor((i+366)/1461))/365)+1;s<=0&&s--,i=Math.floor(c)+.5-this.newDate(s,1,1).toJD();var l=Math.floor(i/30)+1,d=i-30*(l-1)+1;return this.newDate(s,l,d)}}),r.calendars.ethiopian=u},{"../main":346,"object-assign":247}],336:[function(e,o,f){var r=e("../main"),a=e("object-assign");function u(i){this.local=this.regionalOptions[i||""]||this.regionalOptions[""]}function c(i,s){return i-s*Math.floor(i/s)}u.prototype=new r.baseCalendar,a(u.prototype,{name:"Hebrew",jdEpoch:347995.5,daysPerMonth:[30,29,30,29,30,29,30,29,30,29,30,29,29],hasYearZero:!1,minMonth:1,firstMonth:7,minDay:1,regionalOptions:{"":{name:"Hebrew",epochs:["BAM","AM"],monthNames:["Nisan","Iyar","Sivan","Tammuz","Av","Elul","Tishrei","Cheshvan","Kislev","Tevet","Shevat","Adar","Adar II"],monthNamesShort:["Nis","Iya","Siv","Tam","Av","Elu","Tis","Che","Kis","Tev","She","Ada","Ad2"],dayNames:["Yom Rishon","Yom Sheni","Yom Shlishi","Yom Revi'i","Yom Chamishi","Yom Shishi","Yom Shabbat"],dayNamesShort:["Ris","She","Shl","Rev","Cha","Shi","Sha"],dayNamesMin:["Ri","She","Shl","Re","Ch","Shi","Sha"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:0,isRTL:!1}},leapYear:function(i){var s=this._validate(i,this.minMonth,this.minDay,r.local.invalidYear);return this._leapYear(s.year())},_leapYear:function(i){return c(7*(i=i<0?i+1:i)+1,19)<7},monthsInYear:function(i){return this._validate(i,this.minMonth,this.minDay,r.local.invalidYear),this._leapYear(i.year?i.year():i)?13:12},weekOfYear:function(i,s,l){var d=this.newDate(i,s,l);return d.add(-d.dayOfWeek(),"d"),Math.floor((d.dayOfYear()-1)/7)+1},daysInYear:function(i){return i=this._validate(i,this.minMonth,this.minDay,r.local.invalidYear).year(),this.toJD(i===-1?1:i+1,7,1)-this.toJD(i,7,1)},daysInMonth:function(i,s){return i.year&&(s=i.month(),i=i.year()),this._validate(i,s,this.minDay,r.local.invalidMonth),s===12&&this.leapYear(i)||s===8&&c(this.daysInYear(i),10)===5?30:s===9&&c(this.daysInYear(i),10)===3?29:this.daysPerMonth[s-1]},weekDay:function(i,s,l){return this.dayOfWeek(i,s,l)!==6},extraInfo:function(i,s,l){var d=this._validate(i,s,l,r.local.invalidDate);return{yearType:(this.leapYear(d)?"embolismic":"common")+" "+["deficient","regular","complete"][this.daysInYear(d)%10-3]}},toJD:function(i,s,l){var d=this._validate(i,s,l,r.local.invalidDate);i=d.year(),s=d.month(),l=d.day();var h=i<=0?i+1:i,m=this.jdEpoch+this._delay1(h)+this._delay2(h)+l+1;if(s<7){for(var g=7;g<=this.monthsInYear(i);g++)m+=this.daysInMonth(i,g);for(g=1;g=this.toJD(s===-1?1:s+1,7,1);)s++;for(var l=ithis.toJD(s,l,this.daysInMonth(s,l));)l++;var d=i-this.toJD(s,l,1)+1;return this.newDate(s,l,d)}}),r.calendars.hebrew=u},{"../main":346,"object-assign":247}],337:[function(e,o,f){var r=e("../main"),a=e("object-assign");function u(c){this.local=this.regionalOptions[c||""]||this.regionalOptions[""]}u.prototype=new r.baseCalendar,a(u.prototype,{name:"Islamic",jdEpoch:19484395e-1,daysPerMonth:[30,29,30,29,30,29,30,29,30,29,30,29],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Islamic",epochs:["BH","AH"],monthNames:["Muharram","Safar","Rabi' al-awwal","Rabi' al-thani","Jumada al-awwal","Jumada al-thani","Rajab","Sha'aban","Ramadan","Shawwal","Dhu al-Qi'dah","Dhu al-Hijjah"],monthNamesShort:["Muh","Saf","Rab1","Rab2","Jum1","Jum2","Raj","Sha'","Ram","Shaw","DhuQ","DhuH"],dayNames:["Yawm al-ahad","Yawm al-ithnayn","Yawm ath-thulaathaa'","Yawm al-arbi'aa'","Yawm al-kham\u012Bs","Yawm al-jum'a","Yawm as-sabt"],dayNamesShort:["Aha","Ith","Thu","Arb","Kha","Jum","Sab"],dayNamesMin:["Ah","It","Th","Ar","Kh","Ju","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:6,isRTL:!1}},leapYear:function(c){return(11*this._validate(c,this.minMonth,this.minDay,r.local.invalidYear).year()+14)%30<11},weekOfYear:function(c,i,s){var l=this.newDate(c,i,s);return l.add(-l.dayOfWeek(),"d"),Math.floor((l.dayOfYear()-1)/7)+1},daysInYear:function(c){return this.leapYear(c)?355:354},daysInMonth:function(c,i){var s=this._validate(c,i,this.minDay,r.local.invalidMonth);return this.daysPerMonth[s.month()-1]+(s.month()===12&&this.leapYear(s.year())?1:0)},weekDay:function(c,i,s){return this.dayOfWeek(c,i,s)!==5},toJD:function(c,i,s){var l=this._validate(c,i,s,r.local.invalidDate);return c=l.year(),i=l.month(),c=c<=0?c+1:c,(s=l.day())+Math.ceil(29.5*(i-1))+354*(c-1)+Math.floor((3+11*c)/30)+this.jdEpoch-1},fromJD:function(c){c=Math.floor(c)+.5;var i=Math.floor((30*(c-this.jdEpoch)+10646)/10631);i=i<=0?i-1:i;var s=Math.min(12,Math.ceil((c-29-this.toJD(i,1,1))/29.5)+1),l=c-this.toJD(i,s,1)+1;return this.newDate(i,s,l)}}),r.calendars.islamic=u},{"../main":346,"object-assign":247}],338:[function(e,o,f){var r=e("../main"),a=e("object-assign");function u(c){this.local=this.regionalOptions[c||""]||this.regionalOptions[""]}u.prototype=new r.baseCalendar,a(u.prototype,{name:"Julian",jdEpoch:17214235e-1,daysPerMonth:[31,28,31,30,31,30,31,31,30,31,30,31],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Julian",epochs:["BC","AD"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"mm/dd/yyyy",firstDay:0,isRTL:!1}},leapYear:function(c){var i=this._validate(c,this.minMonth,this.minDay,r.local.invalidYear);return(c=i.year()<0?i.year()+1:i.year())%4==0},weekOfYear:function(c,i,s){var l=this.newDate(c,i,s);return l.add(4-(l.dayOfWeek()||7),"d"),Math.floor((l.dayOfYear()-1)/7)+1},daysInMonth:function(c,i){var s=this._validate(c,i,this.minDay,r.local.invalidMonth);return this.daysPerMonth[s.month()-1]+(s.month()===2&&this.leapYear(s.year())?1:0)},weekDay:function(c,i,s){return(this.dayOfWeek(c,i,s)||7)<6},toJD:function(c,i,s){var l=this._validate(c,i,s,r.local.invalidDate);return c=l.year(),i=l.month(),s=l.day(),c<0&&c++,i<=2&&(c--,i+=12),Math.floor(365.25*(c+4716))+Math.floor(30.6001*(i+1))+s-1524.5},fromJD:function(c){var i=Math.floor(c+.5)+1524,s=Math.floor((i-122.1)/365.25),l=Math.floor(365.25*s),d=Math.floor((i-l)/30.6001),h=d-Math.floor(d<14?1:13),m=s-Math.floor(h>2?4716:4715),g=i-l-Math.floor(30.6001*d);return m<=0&&m--,this.newDate(m,h,g)}}),r.calendars.julian=u},{"../main":346,"object-assign":247}],339:[function(e,o,f){var r=e("../main"),a=e("object-assign");function u(s){this.local=this.regionalOptions[s||""]||this.regionalOptions[""]}function c(s,l){return s-l*Math.floor(s/l)}function i(s,l){return c(s-1,l)+1}u.prototype=new r.baseCalendar,a(u.prototype,{name:"Mayan",jdEpoch:584282.5,hasYearZero:!0,minMonth:0,firstMonth:0,minDay:0,regionalOptions:{"":{name:"Mayan",epochs:["",""],monthNames:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17"],monthNamesShort:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17"],dayNames:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"],dayNamesShort:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"],dayNamesMin:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"],digits:null,dateFormat:"YYYY.m.d",firstDay:0,isRTL:!1,haabMonths:["Pop","Uo","Zip","Zotz","Tzec","Xul","Yaxkin","Mol","Chen","Yax","Zac","Ceh","Mac","Kankin","Muan","Pax","Kayab","Cumku","Uayeb"],tzolkinMonths:["Imix","Ik","Akbal","Kan","Chicchan","Cimi","Manik","Lamat","Muluc","Oc","Chuen","Eb","Ben","Ix","Men","Cib","Caban","Etznab","Cauac","Ahau"]}},leapYear:function(s){return this._validate(s,this.minMonth,this.minDay,r.local.invalidYear),!1},formatYear:function(s){s=this._validate(s,this.minMonth,this.minDay,r.local.invalidYear).year();var l=Math.floor(s/400);return s%=400,s+=s<0?400:0,l+"."+Math.floor(s/20)+"."+s%20},forYear:function(s){if((s=s.split(".")).length<3)throw"Invalid Mayan year";for(var l=0,d=0;d19||d>0&&h<0)throw"Invalid Mayan year";l=20*l+h}return l},monthsInYear:function(s){return this._validate(s,this.minMonth,this.minDay,r.local.invalidYear),18},weekOfYear:function(s,l,d){return this._validate(s,l,d,r.local.invalidDate),0},daysInYear:function(s){return this._validate(s,this.minMonth,this.minDay,r.local.invalidYear),360},daysInMonth:function(s,l){return this._validate(s,l,this.minDay,r.local.invalidMonth),20},daysInWeek:function(){return 5},dayOfWeek:function(s,l,d){return this._validate(s,l,d,r.local.invalidDate).day()},weekDay:function(s,l,d){return this._validate(s,l,d,r.local.invalidDate),!0},extraInfo:function(s,l,d){var h=this._validate(s,l,d,r.local.invalidDate).toJD(),m=this._toHaab(h),g=this._toTzolkin(h);return{haabMonthName:this.local.haabMonths[m[0]-1],haabMonth:m[0],haabDay:m[1],tzolkinDayName:this.local.tzolkinMonths[g[0]-1],tzolkinDay:g[0],tzolkinTrecena:g[1]}},_toHaab:function(s){var l=c((s-=this.jdEpoch)+8+340,365);return[Math.floor(l/20)+1,c(l,20)]},_toTzolkin:function(s){return[i((s-=this.jdEpoch)+20,20),i(s+4,13)]},toJD:function(s,l,d){var h=this._validate(s,l,d,r.local.invalidDate);return h.day()+20*h.month()+360*h.year()+this.jdEpoch},fromJD:function(s){s=Math.floor(s)+.5-this.jdEpoch;var l=Math.floor(s/360);s%=360,s+=s<0?360:0;var d=Math.floor(s/20),h=s%20;return this.newDate(l,d,h)}}),r.calendars.mayan=u},{"../main":346,"object-assign":247}],340:[function(e,o,f){var r=e("../main"),a=e("object-assign");function u(i){this.local=this.regionalOptions[i||""]||this.regionalOptions[""]}u.prototype=new r.baseCalendar;var c=r.instance("gregorian");a(u.prototype,{name:"Nanakshahi",jdEpoch:22576735e-1,daysPerMonth:[31,31,31,31,31,30,30,30,30,30,30,30],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Nanakshahi",epochs:["BN","AN"],monthNames:["Chet","Vaisakh","Jeth","Harh","Sawan","Bhadon","Assu","Katak","Maghar","Poh","Magh","Phagun"],monthNamesShort:["Che","Vai","Jet","Har","Saw","Bha","Ass","Kat","Mgr","Poh","Mgh","Pha"],dayNames:["Somvaar","Mangalvar","Budhvaar","Veervaar","Shukarvaar","Sanicharvaar","Etvaar"],dayNamesShort:["Som","Mangal","Budh","Veer","Shukar","Sanichar","Et"],dayNamesMin:["So","Ma","Bu","Ve","Sh","Sa","Et"],digits:null,dateFormat:"dd-mm-yyyy",firstDay:0,isRTL:!1}},leapYear:function(i){var s=this._validate(i,this.minMonth,this.minDay,r.local.invalidYear||r.regionalOptions[""].invalidYear);return c.leapYear(s.year()+(s.year()<1?1:0)+1469)},weekOfYear:function(i,s,l){var d=this.newDate(i,s,l);return d.add(1-(d.dayOfWeek()||7),"d"),Math.floor((d.dayOfYear()-1)/7)+1},daysInMonth:function(i,s){var l=this._validate(i,s,this.minDay,r.local.invalidMonth);return this.daysPerMonth[l.month()-1]+(l.month()===12&&this.leapYear(l.year())?1:0)},weekDay:function(i,s,l){return(this.dayOfWeek(i,s,l)||7)<6},toJD:function(i,s,l){var d=this._validate(i,s,l,r.local.invalidMonth);(i=d.year())<0&&i++;for(var h=d.day(),m=1;m=this.toJD(s+1,1,1);)s++;for(var l=i-Math.floor(this.toJD(s,1,1)+.5)+1,d=1;l>this.daysInMonth(s,d);)l-=this.daysInMonth(s,d),d++;return this.newDate(s,d,l)}}),r.calendars.nanakshahi=u},{"../main":346,"object-assign":247}],341:[function(e,o,f){var r=e("../main"),a=e("object-assign");function u(c){this.local=this.regionalOptions[c||""]||this.regionalOptions[""]}u.prototype=new r.baseCalendar,a(u.prototype,{name:"Nepali",jdEpoch:17007095e-1,daysPerMonth:[31,31,32,32,31,30,30,29,30,29,30,30],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,daysPerYear:365,regionalOptions:{"":{name:"Nepali",epochs:["BBS","ABS"],monthNames:["Baisakh","Jestha","Ashadh","Shrawan","Bhadra","Ashwin","Kartik","Mangsir","Paush","Mangh","Falgun","Chaitra"],monthNamesShort:["Bai","Je","As","Shra","Bha","Ash","Kar","Mang","Pau","Ma","Fal","Chai"],dayNames:["Aaitabaar","Sombaar","Manglbaar","Budhabaar","Bihibaar","Shukrabaar","Shanibaar"],dayNamesShort:["Aaita","Som","Mangl","Budha","Bihi","Shukra","Shani"],dayNamesMin:["Aai","So","Man","Bu","Bi","Shu","Sha"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:1,isRTL:!1}},leapYear:function(c){return this.daysInYear(c)!==this.daysPerYear},weekOfYear:function(c,i,s){var l=this.newDate(c,i,s);return l.add(-l.dayOfWeek(),"d"),Math.floor((l.dayOfYear()-1)/7)+1},daysInYear:function(c){if(c=this._validate(c,this.minMonth,this.minDay,r.local.invalidYear).year(),this.NEPALI_CALENDAR_DATA[c]===void 0)return this.daysPerYear;for(var i=0,s=this.minMonth;s<=12;s++)i+=this.NEPALI_CALENDAR_DATA[c][s];return i},daysInMonth:function(c,i){return c.year&&(i=c.month(),c=c.year()),this._validate(c,i,this.minDay,r.local.invalidMonth),this.NEPALI_CALENDAR_DATA[c]===void 0?this.daysPerMonth[i-1]:this.NEPALI_CALENDAR_DATA[c][i]},weekDay:function(c,i,s){return this.dayOfWeek(c,i,s)!==6},toJD:function(c,i,s){var l=this._validate(c,i,s,r.local.invalidDate);c=l.year(),i=l.month(),s=l.day();var d=r.instance(),h=0,m=i,g=c;this._createMissingCalendarData(c);var p=c-(m>9||m===9&&s>=this.NEPALI_CALENDAR_DATA[g][0]?56:57);for(i!==9&&(h=s,m--);m!==9;)m<=0&&(m=12,g--),h+=this.NEPALI_CALENDAR_DATA[g][m],m--;return i===9?(h+=s-this.NEPALI_CALENDAR_DATA[g][0])<0&&(h+=d.daysInYear(p)):h+=this.NEPALI_CALENDAR_DATA[g][9]-this.NEPALI_CALENDAR_DATA[g][0],d.newDate(p,1,1).add(h,"d").toJD()},fromJD:function(c){var i=r.instance().fromJD(c),s=i.year(),l=i.dayOfYear(),d=s+56;this._createMissingCalendarData(d);for(var h=9,m=this.NEPALI_CALENDAR_DATA[d][0],g=this.NEPALI_CALENDAR_DATA[d][h]-m+1;l>g;)++h>12&&(h=1,d++),g+=this.NEPALI_CALENDAR_DATA[d][h];var p=this.NEPALI_CALENDAR_DATA[d][h]-(g-l);return this.newDate(d,h,p)},_createMissingCalendarData:function(c){var i=this.daysPerMonth.slice(0);i.unshift(17);for(var s=c-1;s0?474:473))%2820+474+38)%2816<682},weekOfYear:function(i,s,l){var d=this.newDate(i,s,l);return d.add(-(d.dayOfWeek()+1)%7,"d"),Math.floor((d.dayOfYear()-1)/7)+1},daysInMonth:function(i,s){var l=this._validate(i,s,this.minDay,r.local.invalidMonth);return this.daysPerMonth[l.month()-1]+(l.month()===12&&this.leapYear(l.year())?1:0)},weekDay:function(i,s,l){return this.dayOfWeek(i,s,l)!==5},toJD:function(i,s,l){var d=this._validate(i,s,l,r.local.invalidDate);i=d.year(),s=d.month(),l=d.day();var h=i-(i>=0?474:473),m=474+c(h,2820);return l+(s<=7?31*(s-1):30*(s-1)+6)+Math.floor((682*m-110)/2816)+365*(m-1)+1029983*Math.floor(h/2820)+this.jdEpoch-1},fromJD:function(i){var s=(i=Math.floor(i)+.5)-this.toJD(475,1,1),l=Math.floor(s/1029983),d=c(s,1029983),h=2820;if(d!==1029982){var m=Math.floor(d/366),g=c(d,366);h=Math.floor((2134*m+2816*g+2815)/1028522)+m+1}var p=h+2820*l+474;p=p<=0?p-1:p;var v=i-this.toJD(p,1,1)+1,y=v<=186?Math.ceil(v/31):Math.ceil((v-6)/30),x=i-this.toJD(p,y,1)+1;return this.newDate(p,y,x)}}),r.calendars.persian=u,r.calendars.jalali=u},{"../main":346,"object-assign":247}],343:[function(e,o,f){var r=e("../main"),a=e("object-assign"),u=r.instance();function c(i){this.local=this.regionalOptions[i||""]||this.regionalOptions[""]}c.prototype=new r.baseCalendar,a(c.prototype,{name:"Taiwan",jdEpoch:24194025e-1,yearsOffset:1911,daysPerMonth:[31,28,31,30,31,30,31,31,30,31,30,31],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Taiwan",epochs:["BROC","ROC"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:1,isRTL:!1}},leapYear:function(i){var s=this._validate(i,this.minMonth,this.minDay,r.local.invalidYear);return i=this._t2gYear(s.year()),u.leapYear(i)},weekOfYear:function(i,s,l){var d=this._validate(i,this.minMonth,this.minDay,r.local.invalidYear);return i=this._t2gYear(d.year()),u.weekOfYear(i,d.month(),d.day())},daysInMonth:function(i,s){var l=this._validate(i,s,this.minDay,r.local.invalidMonth);return this.daysPerMonth[l.month()-1]+(l.month()===2&&this.leapYear(l.year())?1:0)},weekDay:function(i,s,l){return(this.dayOfWeek(i,s,l)||7)<6},toJD:function(i,s,l){var d=this._validate(i,s,l,r.local.invalidDate);return i=this._t2gYear(d.year()),u.toJD(i,d.month(),d.day())},fromJD:function(i){var s=u.fromJD(i),l=this._g2tYear(s.year());return this.newDate(l,s.month(),s.day())},_t2gYear:function(i){return i+this.yearsOffset+(i>=-this.yearsOffset&&i<=-1?1:0)},_g2tYear:function(i){return i-this.yearsOffset-(i>=1&&i<=this.yearsOffset?1:0)}}),r.calendars.taiwan=c},{"../main":346,"object-assign":247}],344:[function(e,o,f){var r=e("../main"),a=e("object-assign"),u=r.instance();function c(i){this.local=this.regionalOptions[i||""]||this.regionalOptions[""]}c.prototype=new r.baseCalendar,a(c.prototype,{name:"Thai",jdEpoch:15230985e-1,yearsOffset:543,daysPerMonth:[31,28,31,30,31,30,31,31,30,31,30,31],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Thai",epochs:["BBE","BE"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:0,isRTL:!1}},leapYear:function(i){var s=this._validate(i,this.minMonth,this.minDay,r.local.invalidYear);return i=this._t2gYear(s.year()),u.leapYear(i)},weekOfYear:function(i,s,l){var d=this._validate(i,this.minMonth,this.minDay,r.local.invalidYear);return i=this._t2gYear(d.year()),u.weekOfYear(i,d.month(),d.day())},daysInMonth:function(i,s){var l=this._validate(i,s,this.minDay,r.local.invalidMonth);return this.daysPerMonth[l.month()-1]+(l.month()===2&&this.leapYear(l.year())?1:0)},weekDay:function(i,s,l){return(this.dayOfWeek(i,s,l)||7)<6},toJD:function(i,s,l){var d=this._validate(i,s,l,r.local.invalidDate);return i=this._t2gYear(d.year()),u.toJD(i,d.month(),d.day())},fromJD:function(i){var s=u.fromJD(i),l=this._g2tYear(s.year());return this.newDate(l,s.month(),s.day())},_t2gYear:function(i){return i-this.yearsOffset-(i>=1&&i<=this.yearsOffset?1:0)},_g2tYear:function(i){return i+this.yearsOffset+(i>=-this.yearsOffset&&i<=-1?1:0)}}),r.calendars.thai=c},{"../main":346,"object-assign":247}],345:[function(e,o,f){var r=e("../main"),a=e("object-assign");function u(i){this.local=this.regionalOptions[i||""]||this.regionalOptions[""]}u.prototype=new r.baseCalendar,a(u.prototype,{name:"UmmAlQura",hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Umm al-Qura",epochs:["BH","AH"],monthNames:["Al-Muharram","Safar","Rabi' al-awwal","Rabi' Al-Thani","Jumada Al-Awwal","Jumada Al-Thani","Rajab","Sha'aban","Ramadan","Shawwal","Dhu al-Qi'dah","Dhu al-Hijjah"],monthNamesShort:["Muh","Saf","Rab1","Rab2","Jum1","Jum2","Raj","Sha'","Ram","Shaw","DhuQ","DhuH"],dayNames:["Yawm al-Ahad","Yawm al-Ithnain","Yawm al-Thal\u0101th\u0101\u2019","Yawm al-Arba\u2018\u0101\u2019","Yawm al-Kham\u012Bs","Yawm al-Jum\u2018a","Yawm al-Sabt"],dayNamesMin:["Ah","Ith","Th","Ar","Kh","Ju","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:6,isRTL:!0}},leapYear:function(i){var s=this._validate(i,this.minMonth,this.minDay,r.local.invalidYear);return this.daysInYear(s.year())===355},weekOfYear:function(i,s,l){var d=this.newDate(i,s,l);return d.add(-d.dayOfWeek(),"d"),Math.floor((d.dayOfYear()-1)/7)+1},daysInYear:function(i){for(var s=0,l=1;l<=12;l++)s+=this.daysInMonth(i,l);return s},daysInMonth:function(i,s){for(var l=this._validate(i,s,this.minDay,r.local.invalidMonth).toJD()-24e5+.5,d=0,h=0;hl)return c[d]-c[d-1];d++}return 30},weekDay:function(i,s,l){return this.dayOfWeek(i,s,l)!==5},toJD:function(i,s,l){var d=this._validate(i,s,l,r.local.invalidDate),h=12*(d.year()-1)+d.month()-15292;return d.day()+c[h-1]-1+24e5-.5},fromJD:function(i){for(var s=i-24e5+.5,l=0,d=0;ds);d++)l++;var h=l+15292,m=Math.floor((h-1)/12),g=m+1,p=h-12*m,v=s-c[l-1]+1;return this.newDate(g,p,v)},isValid:function(i,s,l){var d=r.baseCalendar.prototype.isValid.apply(this,arguments);return d&&(d=(i=i.year!=null?i.year:i)>=1276&&i<=1500),d},_validate:function(i,s,l,d){var h=r.baseCalendar.prototype._validate.apply(this,arguments);if(h.year<1276||h.year>1500)throw d.replace(/\{0\}/,this.local.name);return h}}),r.calendars.ummalqura=u;var c=[20,50,79,109,138,168,197,227,256,286,315,345,374,404,433,463,492,522,551,581,611,641,670,700,729,759,788,818,847,877,906,936,965,995,1024,1054,1083,1113,1142,1172,1201,1231,1260,1290,1320,1350,1379,1409,1438,1468,1497,1527,1556,1586,1615,1645,1674,1704,1733,1763,1792,1822,1851,1881,1910,1940,1969,1999,2028,2058,2087,2117,2146,2176,2205,2235,2264,2294,2323,2353,2383,2413,2442,2472,2501,2531,2560,2590,2619,2649,2678,2708,2737,2767,2796,2826,2855,2885,2914,2944,2973,3003,3032,3062,3091,3121,3150,3180,3209,3239,3268,3298,3327,3357,3386,3416,3446,3476,3505,3535,3564,3594,3623,3653,3682,3712,3741,3771,3800,3830,3859,3889,3918,3948,3977,4007,4036,4066,4095,4125,4155,4185,4214,4244,4273,4303,4332,4362,4391,4421,4450,4480,4509,4539,4568,4598,4627,4657,4686,4716,4745,4775,4804,4834,4863,4893,4922,4952,4981,5011,5040,5070,5099,5129,5158,5188,5218,5248,5277,5307,5336,5366,5395,5425,5454,5484,5513,5543,5572,5602,5631,5661,5690,5720,5749,5779,5808,5838,5867,5897,5926,5956,5985,6015,6044,6074,6103,6133,6162,6192,6221,6251,6281,6311,6340,6370,6399,6429,6458,6488,6517,6547,6576,6606,6635,6665,6694,6724,6753,6783,6812,6842,6871,6901,6930,6960,6989,7019,7048,7078,7107,7137,7166,7196,7225,7255,7284,7314,7344,7374,7403,7433,7462,7492,7521,7551,7580,7610,7639,7669,7698,7728,7757,7787,7816,7846,7875,7905,7934,7964,7993,8023,8053,8083,8112,8142,8171,8201,8230,8260,8289,8319,8348,8378,8407,8437,8466,8496,8525,8555,8584,8614,8643,8673,8702,8732,8761,8791,8821,8850,8880,8909,8938,8968,8997,9027,9056,9086,9115,9145,9175,9205,9234,9264,9293,9322,9352,9381,9410,9440,9470,9499,9529,9559,9589,9618,9648,9677,9706,9736,9765,9794,9824,9853,9883,9913,9943,9972,10002,10032,10061,10090,10120,10149,10178,10208,10237,10267,10297,10326,10356,10386,10415,10445,10474,10504,10533,10562,10592,10621,10651,10680,10710,10740,10770,10799,10829,10858,10888,10917,10947,10976,11005,11035,11064,11094,11124,11153,11183,11213,11242,11272,11301,11331,11360,11389,11419,11448,11478,11507,11537,11567,11596,11626,11655,11685,11715,11744,11774,11803,11832,11862,11891,11921,11950,11980,12010,12039,12069,12099,12128,12158,12187,12216,12246,12275,12304,12334,12364,12393,12423,12453,12483,12512,12542,12571,12600,12630,12659,12688,12718,12747,12777,12807,12837,12866,12896,12926,12955,12984,13014,13043,13072,13102,13131,13161,13191,13220,13250,13280,13310,13339,13368,13398,13427,13456,13486,13515,13545,13574,13604,13634,13664,13693,13723,13752,13782,13811,13840,13870,13899,13929,13958,13988,14018,14047,14077,14107,14136,14166,14195,14224,14254,14283,14313,14342,14372,14401,14431,14461,14490,14520,14550,14579,14609,14638,14667,14697,14726,14756,14785,14815,14844,14874,14904,14933,14963,14993,15021,15051,15081,15110,15140,15169,15199,15228,15258,15287,15317,15347,15377,15406,15436,15465,15494,15524,15553,15582,15612,15641,15671,15701,15731,15760,15790,15820,15849,15878,15908,15937,15966,15996,16025,16055,16085,16114,16144,16174,16204,16233,16262,16292,16321,16350,16380,16409,16439,16468,16498,16528,16558,16587,16617,16646,16676,16705,16734,16764,16793,16823,16852,16882,16912,16941,16971,17001,17030,17060,17089,17118,17148,17177,17207,17236,17266,17295,17325,17355,17384,17414,17444,17473,17502,17532,17561,17591,17620,17650,17679,17709,17738,17768,17798,17827,17857,17886,17916,17945,17975,18004,18034,18063,18093,18122,18152,18181,18211,18241,18270,18300,18330,18359,18388,18418,18447,18476,18506,18535,18565,18595,18625,18654,18684,18714,18743,18772,18802,18831,18860,18890,18919,18949,18979,19008,19038,19068,19098,19127,19156,19186,19215,19244,19274,19303,19333,19362,19392,19422,19452,19481,19511,19540,19570,19599,19628,19658,19687,19717,19746,19776,19806,19836,19865,19895,19924,19954,19983,20012,20042,20071,20101,20130,20160,20190,20219,20249,20279,20308,20338,20367,20396,20426,20455,20485,20514,20544,20573,20603,20633,20662,20692,20721,20751,20780,20810,20839,20869,20898,20928,20957,20987,21016,21046,21076,21105,21135,21164,21194,21223,21253,21282,21312,21341,21371,21400,21430,21459,21489,21519,21548,21578,21607,21637,21666,21696,21725,21754,21784,21813,21843,21873,21902,21932,21962,21991,22021,22050,22080,22109,22138,22168,22197,22227,22256,22286,22316,22346,22375,22405,22434,22464,22493,22522,22552,22581,22611,22640,22670,22700,22730,22759,22789,22818,22848,22877,22906,22936,22965,22994,23024,23054,23083,23113,23143,23173,23202,23232,23261,23290,23320,23349,23379,23408,23438,23467,23497,23527,23556,23586,23616,23645,23674,23704,23733,23763,23792,23822,23851,23881,23910,23940,23970,23999,24029,24058,24088,24117,24147,24176,24206,24235,24265,24294,24324,24353,24383,24413,24442,24472,24501,24531,24560,24590,24619,24648,24678,24707,24737,24767,24796,24826,24856,24885,24915,24944,24974,25003,25032,25062,25091,25121,25150,25180,25210,25240,25269,25299,25328,25358,25387,25416,25446,25475,25505,25534,25564,25594,25624,25653,25683,25712,25742,25771,25800,25830,25859,25888,25918,25948,25977,26007,26037,26067,26096,26126,26155,26184,26214,26243,26272,26302,26332,26361,26391,26421,26451,26480,26510,26539,26568,26598,26627,26656,26686,26715,26745,26775,26805,26834,26864,26893,26923,26952,26982,27011,27041,27070,27099,27129,27159,27188,27218,27248,27277,27307,27336,27366,27395,27425,27454,27484,27513,27542,27572,27602,27631,27661,27691,27720,27750,27779,27809,27838,27868,27897,27926,27956,27985,28015,28045,28074,28104,28134,28163,28193,28222,28252,28281,28310,28340,28369,28399,28428,28458,28488,28517,28547,28577,28607,28636,28665,28695,28724,28754,28783,28813,28843,28872,28901,28931,28960,28990,29019,29049,29078,29108,29137,29167,29196,29226,29255,29285,29315,29345,29375,29404,29434,29463,29492,29522,29551,29580,29610,29640,29669,29699,29729,29759,29788,29818,29847,29876,29906,29935,29964,29994,30023,30053,30082,30112,30141,30171,30200,30230,30259,30289,30318,30348,30378,30408,30437,30467,30496,30526,30555,30585,30614,30644,30673,30703,30732,30762,30791,30821,30850,30880,30909,30939,30968,30998,31027,31057,31086,31116,31145,31175,31204,31234,31263,31293,31322,31352,31381,31411,31441,31471,31500,31530,31559,31589,31618,31648,31676,31706,31736,31766,31795,31825,31854,31884,31913,31943,31972,32002,32031,32061,32090,32120,32150,32180,32209,32239,32268,32298,32327,32357,32386,32416,32445,32475,32504,32534,32563,32593,32622,32652,32681,32711,32740,32770,32799,32829,32858,32888,32917,32947,32976,33006,33035,33065,33094,33124,33153,33183,33213,33243,33272,33302,33331,33361,33390,33420,33450,33479,33509,33539,33568,33598,33627,33657,33686,33716,33745,33775,33804,33834,33863,33893,33922,33952,33981,34011,34040,34069,34099,34128,34158,34187,34217,34247,34277,34306,34336,34365,34395,34424,34454,34483,34512,34542,34571,34601,34631,34660,34690,34719,34749,34778,34808,34837,34867,34896,34926,34955,34985,35015,35044,35074,35103,35133,35162,35192,35222,35251,35280,35310,35340,35370,35399,35429,35458,35488,35517,35547,35576,35605,35635,35665,35694,35723,35753,35782,35811,35841,35871,35901,35930,35960,35989,36019,36048,36078,36107,36136,36166,36195,36225,36254,36284,36314,36343,36373,36403,36433,36462,36492,36521,36551,36580,36610,36639,36669,36698,36728,36757,36786,36816,36845,36875,36904,36934,36963,36993,37022,37052,37081,37111,37141,37170,37200,37229,37259,37288,37318,37347,37377,37406,37436,37465,37495,37524,37554,37584,37613,37643,37672,37701,37731,37760,37790,37819,37849,37878,37908,37938,37967,37997,38027,38056,38085,38115,38144,38174,38203,38233,38262,38292,38322,38351,38381,38410,38440,38469,38499,38528,38558,38587,38617,38646,38676,38705,38735,38764,38794,38823,38853,38882,38912,38941,38971,39001,39030,39059,39089,39118,39148,39178,39208,39237,39267,39297,39326,39355,39385,39414,39444,39473,39503,39532,39562,39592,39621,39650,39680,39709,39739,39768,39798,39827,39857,39886,39916,39946,39975,40005,40035,40064,40094,40123,40153,40182,40212,40241,40271,40300,40330,40359,40389,40418,40448,40477,40507,40536,40566,40595,40625,40655,40685,40714,40744,40773,40803,40832,40862,40892,40921,40951,40980,41009,41039,41068,41098,41127,41157,41186,41216,41245,41275,41304,41334,41364,41393,41422,41452,41481,41511,41540,41570,41599,41629,41658,41688,41718,41748,41777,41807,41836,41865,41894,41924,41953,41983,42012,42042,42072,42102,42131,42161,42190,42220,42249,42279,42308,42337,42367,42397,42426,42456,42485,42515,42545,42574,42604,42633,42662,42692,42721,42751,42780,42810,42839,42869,42899,42929,42958,42988,43017,43046,43076,43105,43135,43164,43194,43223,43253,43283,43312,43342,43371,43401,43430,43460,43489,43519,43548,43578,43607,43637,43666,43696,43726,43755,43785,43814,43844,43873,43903,43932,43962,43991,44021,44050,44080,44109,44139,44169,44198,44228,44258,44287,44317,44346,44375,44405,44434,44464,44493,44523,44553,44582,44612,44641,44671,44700,44730,44759,44788,44818,44847,44877,44906,44936,44966,44996,45025,45055,45084,45114,45143,45172,45202,45231,45261,45290,45320,45350,45380,45409,45439,45468,45498,45527,45556,45586,45615,45644,45674,45704,45733,45763,45793,45823,45852,45882,45911,45940,45970,45999,46028,46058,46088,46117,46147,46177,46206,46236,46265,46295,46324,46354,46383,46413,46442,46472,46501,46531,46560,46590,46620,46649,46679,46708,46738,46767,46797,46826,46856,46885,46915,46944,46974,47003,47033,47063,47092,47122,47151,47181,47210,47240,47269,47298,47328,47357,47387,47417,47446,47476,47506,47535,47565,47594,47624,47653,47682,47712,47741,47771,47800,47830,47860,47890,47919,47949,47978,48008,48037,48066,48096,48125,48155,48184,48214,48244,48273,48303,48333,48362,48392,48421,48450,48480,48509,48538,48568,48598,48627,48657,48687,48717,48746,48776,48805,48834,48864,48893,48922,48952,48982,49011,49041,49071,49100,49130,49160,49189,49218,49248,49277,49306,49336,49365,49395,49425,49455,49484,49514,49543,49573,49602,49632,49661,49690,49720,49749,49779,49809,49838,49868,49898,49927,49957,49986,50016,50045,50075,50104,50133,50163,50192,50222,50252,50281,50311,50340,50370,50400,50429,50459,50488,50518,50547,50576,50606,50635,50665,50694,50724,50754,50784,50813,50843,50872,50902,50931,50960,50990,51019,51049,51078,51108,51138,51167,51197,51227,51256,51286,51315,51345,51374,51403,51433,51462,51492,51522,51552,51582,51611,51641,51670,51699,51729,51758,51787,51816,51846,51876,51906,51936,51965,51995,52025,52054,52083,52113,52142,52171,52200,52230,52260,52290,52319,52349,52379,52408,52438,52467,52497,52526,52555,52585,52614,52644,52673,52703,52733,52762,52792,52822,52851,52881,52910,52939,52969,52998,53028,53057,53087,53116,53146,53176,53205,53235,53264,53294,53324,53353,53383,53412,53441,53471,53500,53530,53559,53589,53619,53648,53678,53708,53737,53767,53796,53825,53855,53884,53913,53943,53973,54003,54032,54062,54092,54121,54151,54180,54209,54239,54268,54297,54327,54357,54387,54416,54446,54476,54505,54535,54564,54593,54623,54652,54681,54711,54741,54770,54800,54830,54859,54889,54919,54948,54977,55007,55036,55066,55095,55125,55154,55184,55213,55243,55273,55302,55332,55361,55391,55420,55450,55479,55508,55538,55567,55597,55627,55657,55686,55716,55745,55775,55804,55834,55863,55892,55922,55951,55981,56011,56040,56070,56100,56129,56159,56188,56218,56247,56276,56306,56335,56365,56394,56424,56454,56483,56513,56543,56572,56601,56631,56660,56690,56719,56749,56778,56808,56837,56867,56897,56926,56956,56985,57015,57044,57074,57103,57133,57162,57192,57221,57251,57280,57310,57340,57369,57399,57429,57458,57487,57517,57546,57576,57605,57634,57664,57694,57723,57753,57783,57813,57842,57871,57901,57930,57959,57989,58018,58048,58077,58107,58137,58167,58196,58226,58255,58285,58314,58343,58373,58402,58432,58461,58491,58521,58551,58580,58610,58639,58669,58698,58727,58757,58786,58816,58845,58875,58905,58934,58964,58994,59023,59053,59082,59111,59141,59170,59200,59229,59259,59288,59318,59348,59377,59407,59436,59466,59495,59525,59554,59584,59613,59643,59672,59702,59731,59761,59791,59820,59850,59879,59909,59939,59968,59997,60027,60056,60086,60115,60145,60174,60204,60234,60264,60293,60323,60352,60381,60411,60440,60469,60499,60528,60558,60588,60618,60648,60677,60707,60736,60765,60795,60824,60853,60883,60912,60942,60972,61002,61031,61061,61090,61120,61149,61179,61208,61237,61267,61296,61326,61356,61385,61415,61445,61474,61504,61533,61563,61592,61621,61651,61680,61710,61739,61769,61799,61828,61858,61888,61917,61947,61976,62006,62035,62064,62094,62123,62153,62182,62212,62242,62271,62301,62331,62360,62390,62419,62448,62478,62507,62537,62566,62596,62625,62655,62685,62715,62744,62774,62803,62832,62862,62891,62921,62950,62980,63009,63039,63069,63099,63128,63157,63187,63216,63246,63275,63305,63334,63363,63393,63423,63453,63482,63512,63541,63571,63600,63630,63659,63689,63718,63747,63777,63807,63836,63866,63895,63925,63955,63984,64014,64043,64073,64102,64131,64161,64190,64220,64249,64279,64309,64339,64368,64398,64427,64457,64486,64515,64545,64574,64603,64633,64663,64692,64722,64752,64782,64811,64841,64870,64899,64929,64958,64987,65017,65047,65076,65106,65136,65166,65195,65225,65254,65283,65313,65342,65371,65401,65431,65460,65490,65520,65549,65579,65608,65638,65667,65697,65726,65755,65785,65815,65844,65874,65903,65933,65963,65992,66022,66051,66081,66110,66140,66169,66199,66228,66258,66287,66317,66346,66376,66405,66435,66465,66494,66524,66553,66583,66612,66641,66671,66700,66730,66760,66789,66819,66849,66878,66908,66937,66967,66996,67025,67055,67084,67114,67143,67173,67203,67233,67262,67292,67321,67351,67380,67409,67439,67468,67497,67527,67557,67587,67617,67646,67676,67705,67735,67764,67793,67823,67852,67882,67911,67941,67971,68e3,68030,68060,68089,68119,68148,68177,68207,68236,68266,68295,68325,68354,68384,68414,68443,68473,68502,68532,68561,68591,68620,68650,68679,68708,68738,68768,68797,68827,68857,68886,68916,68946,68975,69004,69034,69063,69092,69122,69152,69181,69211,69240,69270,69300,69330,69359,69388,69418,69447,69476,69506,69535,69565,69595,69624,69654,69684,69713,69743,69772,69802,69831,69861,69890,69919,69949,69978,70008,70038,70067,70097,70126,70156,70186,70215,70245,70274,70303,70333,70362,70392,70421,70451,70481,70510,70540,70570,70599,70629,70658,70687,70717,70746,70776,70805,70835,70864,70894,70924,70954,70983,71013,71042,71071,71101,71130,71159,71189,71218,71248,71278,71308,71337,71367,71397,71426,71455,71485,71514,71543,71573,71602,71632,71662,71691,71721,71751,71781,71810,71839,71869,71898,71927,71957,71986,72016,72046,72075,72105,72135,72164,72194,72223,72253,72282,72311,72341,72370,72400,72429,72459,72489,72518,72548,72577,72607,72637,72666,72695,72725,72754,72784,72813,72843,72872,72902,72931,72961,72991,73020,73050,73080,73109,73139,73168,73197,73227,73256,73286,73315,73345,73375,73404,73434,73464,73493,73523,73552,73581,73611,73640,73669,73699,73729,73758,73788,73818,73848,73877,73907,73936,73965,73995,74024,74053,74083,74113,74142,74172,74202,74231,74261,74291,74320,74349,74379,74408,74437,74467,74497,74526,74556,74586,74615,74645,74675,74704,74733,74763,74792,74822,74851,74881,74910,74940,74969,74999,75029,75058,75088,75117,75147,75176,75206,75235,75264,75294,75323,75353,75383,75412,75442,75472,75501,75531,75560,75590,75619,75648,75678,75707,75737,75766,75796,75826,75856,75885,75915,75944,75974,76003,76032,76062,76091,76121,76150,76180,76210,76239,76269,76299,76328,76358,76387,76416,76446,76475,76505,76534,76564,76593,76623,76653,76682,76712,76741,76771,76801,76830,76859,76889,76918,76948,76977,77007,77036,77066,77096,77125,77155,77185,77214,77243,77273,77302,77332,77361,77390,77420,77450,77479,77509,77539,77569,77598,77627,77657,77686,77715,77745,77774,77804,77833,77863,77893,77923,77952,77982,78011,78041,78070,78099,78129,78158,78188,78217,78247,78277,78307,78336,78366,78395,78425,78454,78483,78513,78542,78572,78601,78631,78661,78690,78720,78750,78779,78808,78838,78867,78897,78926,78956,78985,79015,79044,79074,79104,79133,79163,79192,79222,79251,79281,79310,79340,79369,79399,79428,79458,79487,79517,79546,79576,79606,79635,79665,79695,79724,79753,79783,79812,79841,79871,79900,79930,79960,79990]},{"../main":346,"object-assign":247}],346:[function(e,o,f){var r=e("object-assign");function a(){this.regionalOptions=[],this.regionalOptions[""]={invalidCalendar:"Calendar {0} not found",invalidDate:"Invalid {0} date",invalidMonth:"Invalid {0} month",invalidYear:"Invalid {0} year",differentCalendars:"Cannot mix {0} and {1} dates"},this.local=this.regionalOptions[""],this.calendars={},this._localCals={}}function u(d,h,m,g){if(this._calendar=d,this._year=h,this._month=m,this._day=g,this._calendar._validateLevel===0&&!this._calendar.isValid(this._year,this._month,this._day))throw(l.local.invalidDate||l.regionalOptions[""].invalidDate).replace(/\{0\}/,this._calendar.local.name)}function c(d,h){return"000000".substring(0,h-(d=""+d).length)+d}function i(){this.shortYearCutoff="+10"}function s(d){this.local=this.regionalOptions[d]||this.regionalOptions[""]}r(a.prototype,{instance:function(d,h){d=(d||"gregorian").toLowerCase(),h=h||"";var m=this._localCals[d+"-"+h];if(!m&&this.calendars[d]&&(m=new this.calendars[d](h),this._localCals[d+"-"+h]=m),!m)throw(this.local.invalidCalendar||this.regionalOptions[""].invalidCalendar).replace(/\{0\}/,d);return m},newDate:function(d,h,m,g,p){return(g=(d!=null&&d.year?d.calendar():typeof g=="string"?this.instance(g,p):g)||this.instance()).newDate(d,h,m)},substituteDigits:function(d){return function(h){return(h+"").replace(/[0-9]/g,function(m){return d[m]})}},substituteChineseDigits:function(d,h){return function(m){for(var g="",p=0;m>0;){var v=m%10;g=(v===0?"":d[v]+h[p])+g,p++,m=Math.floor(m/10)}return g.indexOf(d[1]+h[1])===0&&(g=g.substr(1)),g||d[0]}}}),r(u.prototype,{newDate:function(d,h,m){return this._calendar.newDate(d??this,h,m)},year:function(d){return arguments.length===0?this._year:this.set(d,"y")},month:function(d){return arguments.length===0?this._month:this.set(d,"m")},day:function(d){return arguments.length===0?this._day:this.set(d,"d")},date:function(d,h,m){if(!this._calendar.isValid(d,h,m))throw(l.local.invalidDate||l.regionalOptions[""].invalidDate).replace(/\{0\}/,this._calendar.local.name);return this._year=d,this._month=h,this._day=m,this},leapYear:function(){return this._calendar.leapYear(this)},epoch:function(){return this._calendar.epoch(this)},formatYear:function(){return this._calendar.formatYear(this)},monthOfYear:function(){return this._calendar.monthOfYear(this)},weekOfYear:function(){return this._calendar.weekOfYear(this)},daysInYear:function(){return this._calendar.daysInYear(this)},dayOfYear:function(){return this._calendar.dayOfYear(this)},daysInMonth:function(){return this._calendar.daysInMonth(this)},dayOfWeek:function(){return this._calendar.dayOfWeek(this)},weekDay:function(){return this._calendar.weekDay(this)},extraInfo:function(){return this._calendar.extraInfo(this)},add:function(d,h){return this._calendar.add(this,d,h)},set:function(d,h){return this._calendar.set(this,d,h)},compareTo:function(d){if(this._calendar.name!==d._calendar.name)throw(l.local.differentCalendars||l.regionalOptions[""].differentCalendars).replace(/\{0\}/,this._calendar.local.name).replace(/\{1\}/,d._calendar.local.name);var h=this._year!==d._year?this._year-d._year:this._month!==d._month?this.monthOfYear()-d.monthOfYear():this._day-d._day;return h===0?0:h<0?-1:1},calendar:function(){return this._calendar},toJD:function(){return this._calendar.toJD(this)},fromJD:function(d){return this._calendar.fromJD(d)},toJSDate:function(){return this._calendar.toJSDate(this)},fromJSDate:function(d){return this._calendar.fromJSDate(d)},toString:function(){return(this.year()<0?"-":"")+c(Math.abs(this.year()),4)+"-"+c(this.month(),2)+"-"+c(this.day(),2)}}),r(i.prototype,{_validateLevel:0,newDate:function(d,h,m){return d==null?this.today():(d.year&&(this._validate(d,h,m,l.local.invalidDate||l.regionalOptions[""].invalidDate),m=d.day(),h=d.month(),d=d.year()),new u(this,d,h,m))},today:function(){return this.fromJSDate(new Date)},epoch:function(d){return this._validate(d,this.minMonth,this.minDay,l.local.invalidYear||l.regionalOptions[""].invalidYear).year()<0?this.local.epochs[0]:this.local.epochs[1]},formatYear:function(d){var h=this._validate(d,this.minMonth,this.minDay,l.local.invalidYear||l.regionalOptions[""].invalidYear);return(h.year()<0?"-":"")+c(Math.abs(h.year()),4)},monthsInYear:function(d){return this._validate(d,this.minMonth,this.minDay,l.local.invalidYear||l.regionalOptions[""].invalidYear),12},monthOfYear:function(d,h){var m=this._validate(d,h,this.minDay,l.local.invalidMonth||l.regionalOptions[""].invalidMonth);return(m.month()+this.monthsInYear(m)-this.firstMonth)%this.monthsInYear(m)+this.minMonth},fromMonthOfYear:function(d,h){var m=(h+this.firstMonth-2*this.minMonth)%this.monthsInYear(d)+this.minMonth;return this._validate(d,m,this.minDay,l.local.invalidMonth||l.regionalOptions[""].invalidMonth),m},daysInYear:function(d){var h=this._validate(d,this.minMonth,this.minDay,l.local.invalidYear||l.regionalOptions[""].invalidYear);return this.leapYear(h)?366:365},dayOfYear:function(d,h,m){var g=this._validate(d,h,m,l.local.invalidDate||l.regionalOptions[""].invalidDate);return g.toJD()-this.newDate(g.year(),this.fromMonthOfYear(g.year(),this.minMonth),this.minDay).toJD()+1},daysInWeek:function(){return 7},dayOfWeek:function(d,h,m){var g=this._validate(d,h,m,l.local.invalidDate||l.regionalOptions[""].invalidDate);return(Math.floor(this.toJD(g))+2)%this.daysInWeek()},extraInfo:function(d,h,m){return this._validate(d,h,m,l.local.invalidDate||l.regionalOptions[""].invalidDate),{}},add:function(d,h,m){return this._validate(d,this.minMonth,this.minDay,l.local.invalidDate||l.regionalOptions[""].invalidDate),this._correctAdd(d,this._add(d,h,m),h,m)},_add:function(d,h,m){if(this._validateLevel++,m==="d"||m==="w"){var g=d.toJD()+h*(m==="w"?this.daysInWeek():1),p=d.calendar().fromJD(g);return this._validateLevel--,[p.year(),p.month(),p.day()]}try{var v=d.year()+(m==="y"?h:0),y=d.monthOfYear()+(m==="m"?h:0);p=d.day(),m==="y"?(d.month()!==this.fromMonthOfYear(v,y)&&(y=this.newDate(v,d.month(),this.minDay).monthOfYear()),y=Math.min(y,this.monthsInYear(v)),p=Math.min(p,this.daysInMonth(v,this.fromMonthOfYear(v,y)))):m==="m"&&(function(w){for(;yk-1+w.minMonth;)v++,y-=k,k=w.monthsInYear(v)}(this),p=Math.min(p,this.daysInMonth(v,this.fromMonthOfYear(v,y))));var x=[v,this.fromMonthOfYear(v,y),p];return this._validateLevel--,x}catch(w){throw this._validateLevel--,w}},_correctAdd:function(d,h,m,g){if(!(this.hasYearZero||g!=="y"&&g!=="m"||h[0]!==0&&d.year()>0==h[0]>0)){var p={y:[1,1,"y"],m:[1,this.monthsInYear(-1),"m"],w:[this.daysInWeek(),this.daysInYear(-1),"d"],d:[1,this.daysInYear(-1),"d"]}[g],v=m<0?-1:1;h=this._add(d,m*p[0]+v*p[1],p[2])}return d.date(h[0],h[1],h[2])},set:function(d,h,m){this._validate(d,this.minMonth,this.minDay,l.local.invalidDate||l.regionalOptions[""].invalidDate);var g=m==="y"?h:d.year(),p=m==="m"?h:d.month(),v=m==="d"?h:d.day();return m!=="y"&&m!=="m"||(v=Math.min(v,this.daysInMonth(g,p))),d.date(g,p,v)},isValid:function(d,h,m){this._validateLevel++;var g=this.hasYearZero||d!==0;if(g){var p=this.newDate(d,h,this.minDay);g=h>=this.minMonth&&h-this.minMonth=this.minDay&&m-this.minDay13.5?13:1),k=p-(w>2.5?4716:4715);return k<=0&&k--,this.newDate(k,w,x)},toJSDate:function(d,h,m){var g=this._validate(d,h,m,l.local.invalidDate||l.regionalOptions[""].invalidDate),p=new Date(g.year(),g.month()-1,g.day());return p.setHours(0),p.setMinutes(0),p.setSeconds(0),p.setMilliseconds(0),p.setHours(p.getHours()>12?p.getHours()+2:0),p},fromJSDate:function(d){return this.newDate(d.getFullYear(),d.getMonth()+1,d.getDate())}});var l=o.exports=new a;l.cdate=u,l.baseCalendar=i,l.calendars.gregorian=s},{"object-assign":247}],347:[function(e,o,f){var r=e("object-assign"),a=e("./main");r(a.regionalOptions[""],{invalidArguments:"Invalid arguments",invalidFormat:"Cannot format a date from another calendar",missingNumberAt:"Missing number at position {0}",unknownNameAt:"Unknown name at position {0}",unexpectedLiteralAt:"Unexpected literal at position {0}",unexpectedText:"Additional text found at end"}),a.local=a.regionalOptions[""],r(a.cdate.prototype,{formatDate:function(u,c){return typeof u!="string"&&(c=u,u=""),this._calendar.formatDate(u||"",this,c)}}),r(a.baseCalendar.prototype,{UNIX_EPOCH:a.instance().newDate(1970,1,1).toJD(),SECS_PER_DAY:86400,TICKS_EPOCH:a.instance().jdEpoch,TICKS_PER_DAY:864e9,ATOM:"yyyy-mm-dd",COOKIE:"D, dd M yyyy",FULL:"DD, MM d, yyyy",ISO_8601:"yyyy-mm-dd",JULIAN:"J",RFC_822:"D, d M yy",RFC_850:"DD, dd-M-yy",RFC_1036:"D, d M yy",RFC_1123:"D, d M yyyy",RFC_2822:"D, d M yyyy",RSS:"D, d M yy",TICKS:"!",TIMESTAMP:"@",W3C:"yyyy-mm-dd",formatDate:function(u,c,i){if(typeof u!="string"&&(i=c,c=u,u=""),!c)return"";if(c.calendar()!==this)throw a.local.invalidFormat||a.regionalOptions[""].invalidFormat;u=u||this.local.dateFormat;for(var s,l,d,h,m=(i=i||{}).dayNamesShort||this.local.dayNamesShort,g=i.dayNames||this.local.dayNames,p=i.monthNumbers||this.local.monthNumbers,v=i.monthNamesShort||this.local.monthNamesShort,y=i.monthNames||this.local.monthNames,x=(i.calculateWeek||this.local.calculateWeek,function(D,O){for(var R=1;E+R1}),w=function(D,O,R,z){var L=""+O;if(x(D,z))for(;L.length1},M=function(N,B){var G=_(N,B),W=[2,3,G?4:2,G?4:2,10,11,20]["oyYJ@!".indexOf(N)+1],K=new RegExp("^-?\\d{1,"+W+"}"),te=c.substring(R).match(K);if(!te)throw(a.local.missingNumberAt||a.regionalOptions[""].missingNumberAt).replace(/\{0\}/,R);return R+=te[0].length,parseInt(te[0],10)},A=this,S=function(){if(typeof m=="function"){_("m");var N=m.call(A,c.substring(R));return R+=N.length,N}return M("m")},E=function(N,B,G,W){for(var K=_(N,W)?G:B,te=0;te-1){x=1,w=k;for(var P=this.daysInMonth(y,x);w>P;P=this.daysInMonth(y,x))x++,w-=P}return v>-1?this.fromJD(v):this.newDate(y,x,w)},determineDate:function(u,c,i,s,l){i&&typeof i!="object"&&(l=s,s=i,i=null),typeof s!="string"&&(l=s,s="");var d=this;return c=c?c.newDate():null,u=u==null?c:typeof u=="string"?function(h){try{return d.parseDate(s,h,l)}catch{}for(var m=((h=h.toLowerCase()).match(/^c/)&&i?i.newDate():null)||d.today(),g=/([+-]?[0-9]+)\s*(d|w|m|y)?/g,p=g.exec(h);p;)m.add(parseInt(p[1],10),p[2]||"d"),p=g.exec(h);return m}(u):typeof u=="number"?isNaN(u)||u===1/0||u===-1/0?c:d.today().add(u,"d"):d.newDate(u)}})},{"./main":346,"object-assign":247}],348:[function(e,o,f){o.exports=[{path:"",backoff:0},{path:"M-2.4,-3V3L0.6,0Z",backoff:.6},{path:"M-3.7,-2.5V2.5L1.3,0Z",backoff:1.3},{path:"M-4.45,-3L-1.65,-0.2V0.2L-4.45,3L1.55,0Z",backoff:1.55},{path:"M-2.2,-2.2L-0.2,-0.2V0.2L-2.2,2.2L-1.4,3L1.6,0L-1.4,-3Z",backoff:1.6},{path:"M-4.4,-2.1L-0.6,-0.2V0.2L-4.4,2.1L-4,3L2,0L-4,-3Z",backoff:2},{path:"M2,0A2,2 0 1,1 0,-2A2,2 0 0,1 2,0Z",backoff:0,noRotate:!0},{path:"M2,2V-2H-2V2Z",backoff:0,noRotate:!0}]},{}],349:[function(e,o,f){var r=e("./arrow_paths"),a=e("../../plots/font_attributes"),u=e("../../plots/cartesian/constants"),c=e("../../plot_api/plot_template").templatedArray;e("../../constants/axis_placeable_objects"),o.exports=c("annotation",{visible:{valType:"boolean",dflt:!0,editType:"calc+arraydraw"},text:{valType:"string",editType:"calc+arraydraw"},textangle:{valType:"angle",dflt:0,editType:"calc+arraydraw"},font:a({editType:"calc+arraydraw",colorEditType:"arraydraw"}),width:{valType:"number",min:1,dflt:null,editType:"calc+arraydraw"},height:{valType:"number",min:1,dflt:null,editType:"calc+arraydraw"},opacity:{valType:"number",min:0,max:1,dflt:1,editType:"arraydraw"},align:{valType:"enumerated",values:["left","center","right"],dflt:"center",editType:"arraydraw"},valign:{valType:"enumerated",values:["top","middle","bottom"],dflt:"middle",editType:"arraydraw"},bgcolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"arraydraw"},bordercolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"arraydraw"},borderpad:{valType:"number",min:0,dflt:1,editType:"calc+arraydraw"},borderwidth:{valType:"number",min:0,dflt:1,editType:"calc+arraydraw"},showarrow:{valType:"boolean",dflt:!0,editType:"calc+arraydraw"},arrowcolor:{valType:"color",editType:"arraydraw"},arrowhead:{valType:"integer",min:0,max:r.length,dflt:1,editType:"arraydraw"},startarrowhead:{valType:"integer",min:0,max:r.length,dflt:1,editType:"arraydraw"},arrowside:{valType:"flaglist",flags:["end","start"],extras:["none"],dflt:"end",editType:"arraydraw"},arrowsize:{valType:"number",min:.3,dflt:1,editType:"calc+arraydraw"},startarrowsize:{valType:"number",min:.3,dflt:1,editType:"calc+arraydraw"},arrowwidth:{valType:"number",min:.1,editType:"calc+arraydraw"},standoff:{valType:"number",min:0,dflt:0,editType:"calc+arraydraw"},startstandoff:{valType:"number",min:0,dflt:0,editType:"calc+arraydraw"},ax:{valType:"any",editType:"calc+arraydraw"},ay:{valType:"any",editType:"calc+arraydraw"},axref:{valType:"enumerated",dflt:"pixel",values:["pixel",u.idRegex.x.toString()],editType:"calc"},ayref:{valType:"enumerated",dflt:"pixel",values:["pixel",u.idRegex.y.toString()],editType:"calc"},xref:{valType:"enumerated",values:["paper",u.idRegex.x.toString()],editType:"calc"},x:{valType:"any",editType:"calc+arraydraw"},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"auto",editType:"calc+arraydraw"},xshift:{valType:"number",dflt:0,editType:"calc+arraydraw"},yref:{valType:"enumerated",values:["paper",u.idRegex.y.toString()],editType:"calc"},y:{valType:"any",editType:"calc+arraydraw"},yanchor:{valType:"enumerated",values:["auto","top","middle","bottom"],dflt:"auto",editType:"calc+arraydraw"},yshift:{valType:"number",dflt:0,editType:"calc+arraydraw"},clicktoshow:{valType:"enumerated",values:[!1,"onoff","onout"],dflt:!1,editType:"arraydraw"},xclick:{valType:"any",editType:"arraydraw"},yclick:{valType:"any",editType:"arraydraw"},hovertext:{valType:"string",editType:"arraydraw"},hoverlabel:{bgcolor:{valType:"color",editType:"arraydraw"},bordercolor:{valType:"color",editType:"arraydraw"},font:a({editType:"arraydraw"}),editType:"arraydraw"},captureevents:{valType:"boolean",editType:"arraydraw"},editType:"calc",_deprecated:{ref:{valType:"string",editType:"calc"}}})},{"../../constants/axis_placeable_objects":472,"../../plot_api/plot_template":543,"../../plots/cartesian/constants":561,"../../plots/font_attributes":585,"./arrow_paths":348}],350:[function(e,o,f){var r=e("../../lib"),a=e("../../plots/cartesian/axes"),u=e("./draw").draw;function c(s){var l=s._fullLayout;r.filterVisible(l.annotations).forEach(function(d){var h=a.getFromId(s,d.xref),m=a.getFromId(s,d.yref),g=a.getRefType(d.xref),p=a.getRefType(d.yref);d._extremes={},g==="range"&&i(d,h),p==="range"&&i(d,m)})}function i(s,l){var d,h=l._id,m=h.charAt(0),g=s[m],p=s["a"+m],v=s[m+"ref"],y=s["a"+m+"ref"],x=s["_"+m+"padplus"],w=s["_"+m+"padminus"],k={x:1,y:-1}[m]*s[m+"shift"],b=3*s.arrowsize*s.arrowwidth||0,T=b+k,_=b-k,M=3*s.startarrowsize*s.arrowwidth||0,A=M+k,S=M-k;if(y===v){var E=a.findExtremes(l,[l.r2c(g)],{ppadplus:T,ppadminus:_}),D=a.findExtremes(l,[l.r2c(p)],{ppadplus:Math.max(x,A),ppadminus:Math.max(w,S)});d={min:[E.min[0],D.min[0]],max:[E.max[0],D.max[0]]}}else A=p?A+p:A,S=p?S-p:S,d=a.findExtremes(l,[l.r2c(g)],{ppadplus:Math.max(x,T,A),ppadminus:Math.max(w,_,S)});s._extremes[h]=d}o.exports=function(s){var l=s._fullLayout;if(r.filterVisible(l.annotations).length&&s._fullData.length)return r.syncOrAsync([u,c],s)}},{"../../lib":503,"../../plots/cartesian/axes":554,"./draw":355}],351:[function(e,o,f){var r=e("../../lib"),a=e("../../registry"),u=e("../../plot_api/plot_template").arrayEditor;function c(s,l){var d,h,m,g,p,v,y,x=s._fullLayout.annotations,w=[],k=[],b=[],T=(l||[]).length;for(d=0;d0||d.explicitOff.length>0},onClick:function(s,l){var d,h,m=c(s,l),g=m.on,p=m.off.concat(m.explicitOff),v={},y=s._fullLayout.annotations;if(!(!g.length&&!p.length)){for(d=0;d2/3?"right":"center"),{center:0,middle:0,left:.5,bottom:-.5,right:-.5,top:.5}[bt]}for(var Fe=!1,Ve=["x","y"],Ke=0;Ke1)&&(Pt===vt?((dt=At.r2fraction(T["a"+ft]))<0||dt>1)&&(Fe=!0):Fe=!0),Re=At._offset+At.r2p(T[ft]),Ye=.5}else{var Pe=Tt==="domain";ft==="x"?(We=T[ft],Re=Pe?At._offset+At._length*We:Re=R.l+R.w*We):(We=1-T[ft],Re=Pe?At._offset+At._length*We:Re=R.t+R.h*We),Ye=T.showarrow?.5:We}if(T.showarrow){Ge.head=Re;var Ie=T["a"+ft];if(nt=et*ze(.5,T.xanchor)-Ot*ze(.5,T.yanchor),Pt===vt){var Ae=s.getRefType(Pt);Ae==="domain"?(ft==="y"&&(Ie=1-Ie),Ge.tail=At._offset+At._length*Ie):Ae==="paper"?ft==="y"?(Ie=1-Ie,Ge.tail=R.t+R.h*Ie):Ge.tail=R.l+R.w*Ie:Ge.tail=At._offset+At.r2p(Ie),qe=nt}else Ge.tail=Re+Ie,qe=nt+Ie;Ge.text=Ge.tail+nt;var De=O[ft==="x"?"width":"height"];if(vt==="paper"&&(Ge.head=c.constrain(Ge.head,1,De-1)),Pt==="pixel"){var He=-Math.max(Ge.tail-3,Ge.text),rt=Math.min(Ge.tail+3,Ge.text)-De;He>0?(Ge.tail+=He,Ge.text+=He):rt>0&&(Ge.tail-=rt,Ge.text-=rt)}Ge.tail+=Be,Ge.head+=Be}else qe=nt=Wt*ze(Ye,Jt),Ge.text=Re+nt;Ge.text+=Be,nt+=Be,qe+=Be,T["_"+ft+"padplus"]=Wt/2+qe,T["_"+ft+"padminus"]=Wt/2-qe,T["_"+ft+"size"]=Wt,T["_"+ft+"shift"]=nt}if(Fe)U.remove();else{var lt=0,ot=0;if(T.align!=="left"&&(lt=(ye-Oe)*(T.align==="center"?.5:1)),T.valign!=="top"&&(ot=(Me-de)*(T.valign==="middle"?.5:1)),we)_e.select("svg").attr({x:ne+lt-1,y:ne+ot}).call(d.setClipUrl,Q?G:null,b);else{var kt=ne+ot-Te.top,wt=ne+lt-Te.left;ue.call(m.positionText,wt,kt).call(d.setClipUrl,Q?G:null,b)}ee.select("rect").call(d.setRect,ne,ne,ye,Me),H.call(d.setRect,q/2,q/2,ke-q,Ee-q),U.call(d.setTranslate,Math.round(W.x.text-ke/2),Math.round(W.y.text-Ee/2)),Y.attr({transform:"rotate("+K+","+W.x.text+","+W.y.text+")"});var Vt,Ut=function(tt,bt){te.selectAll(".annotation-arrow-g").remove();var zt=W.x.head,St=W.y.head,Dt=W.x.tail+tt,Le=W.y.tail+bt,Je=W.x.text+tt,st=W.y.text+bt,Et=c.rotationXYMatrix(K,Je,st),It=c.apply2DTransform(Et),Zt=c.apply2DTransform2(Et),Kt=+H.attr("width"),Ht=+H.attr("height"),mn=Je-.5*Kt,zn=mn+Kt,pn=st-.5*Ht,tn=pn+Ht,nn=[[mn,pn,mn,tn],[mn,tn,zn,tn],[zn,tn,zn,pn],[zn,pn,mn,pn]].map(Zt);if(!nn.reduce(function(Ln,lr){return Ln^!!c.segmentsIntersect(zt,St,zt+1e6,St+1e6,lr[0],lr[1],lr[2],lr[3])},!1)){nn.forEach(function(Ln){var lr=c.segmentsIntersect(Dt,Le,zt,St,Ln[0],Ln[1],Ln[2],Ln[3]);lr&&(Dt=lr.x,Le=lr.y)});var sn=T.arrowwidth,gn=T.arrowcolor,bn=T.arrowside,In=te.append("g").style({opacity:l.opacity(gn)}).classed("annotation-arrow-g",!0),Hn=In.append("path").attr("d","M"+Dt+","+Le+"L"+zt+","+St).style("stroke-width",sn+"px").call(l.stroke,l.rgb(gn));if(y(Hn,bn,T),z.annotationPosition&&Hn.node().parentNode&&!M){var Wn=zt,ar=St;if(T.standoff){var Or=Math.sqrt(Math.pow(zt-Dt,2)+Math.pow(St-Le,2));Wn+=T.standoff*(Dt-zt)/Or,ar+=T.standoff*(Le-St)/Or}var vr,Er,Kn=In.append("path").classed("annotation-arrow",!0).classed("anndrag",!0).classed("cursor-move",!0).attr({d:"M3,3H-3V-3H3ZM0,0L"+(Dt-Wn)+","+(Le-ar),transform:i(Wn,ar)}).style("stroke-width",sn+6+"px").call(l.stroke,"rgba(0,0,0,0)").call(l.fill,"rgba(0,0,0,0)");p.init({element:Kn.node(),gd:b,prepFn:function(){var Ln=d.getTranslate(U);vr=Ln.x,Er=Ln.y,A&&A.autorange&&P(A._name+".autorange",!0),S&&S.autorange&&P(S._name+".autorange",!0)},moveFn:function(Ln,lr){var Wr=It(vr,Er),Mn=Wr[0]+Ln,rr=Wr[1]+lr;U.call(d.setTranslate,Mn,rr),N("x",w(A,Ln,"x",R,T)),N("y",w(S,lr,"y",R,T)),T.axref===T.xref&&N("ax",w(A,Ln,"ax",R,T)),T.ayref===T.yref&&N("ay",w(S,lr,"ay",R,T)),In.attr("transform",i(Ln,lr)),Y.attr({transform:"rotate("+K+","+Mn+","+rr+")"})},doneFn:function(){a.call("_guiRelayout",b,B());var Ln=document.querySelector(".js-notes-box-panel");Ln&&Ln.redraw(Ln.selectedObj)}})}}};T.showarrow&&Ut(0,0),Z&&p.init({element:U.node(),gd:b,prepFn:function(){Vt=Y.attr("transform")},moveFn:function(tt,bt){var zt="pointer";if(T.showarrow)T.axref===T.xref?N("ax",w(A,tt,"ax",R,T)):N("ax",T.ax+tt),T.ayref===T.yref?N("ay",w(S,bt,"ay",R.w,T)):N("ay",T.ay+bt),Ut(tt,bt);else{if(M)return;var St,Dt;if(A)St=w(A,tt,"x",R,T);else{var Le=T._xsize/R.w,Je=T.x+(T._xshift-T.xshift)/R.w-Le/2;St=p.align(Je+tt/R.w,Le,0,1,T.xanchor)}if(S)Dt=w(S,bt,"y",R,T);else{var st=T._ysize/R.h,Et=T.y-(T._yshift+T.yshift)/R.h-st/2;Dt=p.align(Et-bt/R.h,st,0,1,T.yanchor)}N("x",St),N("y",Dt),A&&S||(zt=p.getCursor(A?.5:St,S?.5:Dt,T.xanchor,T.yanchor))}Y.attr({transform:i(tt,bt)+Vt}),g(U,zt)},clickFn:function(tt,bt){T.captureevents&&b.emit("plotly_clickannotation",le(bt))},doneFn:function(){g(U),a.call("_guiRelayout",b,B());var tt=document.querySelector(".js-notes-box-panel");tt&&tt.redraw(tt.selectedObj)}})}}}o.exports={draw:function(b){var T=b._fullLayout;T._infolayer.selectAll(".annotation").remove();for(var _=0;_=0,M=h.indexOf("end")>=0,A=w.backoff*b+m.standoff,S=k.backoff*T+m.startstandoff;if(x.nodeName==="line"){g={x:+d.attr("x1"),y:+d.attr("y1")},p={x:+d.attr("x2"),y:+d.attr("y2")};var E=g.x-p.x,D=g.y-p.y;if(y=(v=Math.atan2(D,E))+Math.PI,A&&S&&A+S>Math.sqrt(E*E+D*D))return void te();if(A){if(A*A>E*E+D*D)return void te();var O=A*Math.cos(v),R=A*Math.sin(v);p.x+=O,p.y+=R,d.attr({x2:p.x,y2:p.y})}if(S){if(S*S>E*E+D*D)return void te();var z=S*Math.cos(v),L=S*Math.sin(v);g.x-=z,g.y-=L,d.attr({x1:g.x,y1:g.y})}}else if(x.nodeName==="path"){var P=x.getTotalLength(),N="";if(P1){m=!0;break}}m?c.fullLayout._infolayer.select(".annotation-"+c.id+'[data-index="'+d+'"]').remove():(h._pdata=a(c.glplot.cameraParams,[i.xaxis.r2l(h.x)*s[0],i.yaxis.r2l(h.y)*s[1],i.zaxis.r2l(h.z)*s[2]]),r(c.graphDiv,h,d,c.id,h._xa,h._ya))}}},{"../../plots/gl3d/project":607,"../annotations/draw":355}],362:[function(e,o,f){var r=e("../../registry"),a=e("../../lib");o.exports={moduleType:"component",name:"annotations3d",schema:{subplots:{scene:{annotations:e("./attributes")}}},layoutAttributes:e("./attributes"),handleDefaults:e("./defaults"),includeBasePlot:function(u,c){var i=r.subplotsRegistry.gl3d;if(!!i)for(var s=i.attrRegex,l=Object.keys(u),d=0;d=0)))return h;if(y===3)p[y]>1&&(p[y]=1);else if(p[y]>=1)return h}var x=Math.round(255*p[0])+", "+Math.round(255*p[1])+", "+Math.round(255*p[2]);return v?"rgba("+x+", "+p[3]+")":"rgb("+x+")"}c.tinyRGB=function(h){var m=h.toRgb();return"rgb("+Math.round(m.r)+", "+Math.round(m.g)+", "+Math.round(m.b)+")"},c.rgb=function(h){return c.tinyRGB(r(h))},c.opacity=function(h){return h?r(h).getAlpha():0},c.addOpacity=function(h,m){var g=r(h).toRgb();return"rgba("+Math.round(g.r)+", "+Math.round(g.g)+", "+Math.round(g.b)+", "+m+")"},c.combine=function(h,m){var g=r(h).toRgb();if(g.a===1)return r(h).toRgbString();var p=r(m||l).toRgb(),v=p.a===1?p:{r:255*(1-p.a)+p.r*p.a,g:255*(1-p.a)+p.g*p.a,b:255*(1-p.a)+p.b*p.a},y={r:v.r*(1-g.a)+g.r*g.a,g:v.g*(1-g.a)+g.g*g.a,b:v.b*(1-g.a)+g.b*g.a};return r(y).toRgbString()},c.contrast=function(h,m,g){var p=r(h);return p.getAlpha()!==1&&(p=r(c.combine(h,l))),(p.isDark()?m?p.lighten(m):l:g?p.darken(g):s).toString()},c.stroke=function(h,m){var g=r(m);h.style({stroke:c.tinyRGB(g),"stroke-opacity":g.getAlpha()})},c.fill=function(h,m){var g=r(m);h.style({fill:c.tinyRGB(g),"fill-opacity":g.getAlpha()})},c.clean=function(h){if(h&&typeof h=="object"){var m,g,p,v,y=Object.keys(h);for(m=0;m0?Ie>=lt:Ie<=lt));Ae++)Ie>kt&&Ie0?Ie>=lt:Ie<=lt));Ae++)Ie>Pe[0]&&Ie1){var Pt=Math.pow(10,Math.floor(Math.log(vt)/Math.LN10));nt*=Pt*l.roundUp(vt/Pt,[2,5,10]),(Math.abs(we.start)/we.size+1e-6)%1<2e-6&&(We.tick0=0)}We.dtick=nt}We.domain=B?[Re+ne/ie.h,Re+Ee-ne/ie.h]:[Re+$/ie.w,Re+Ee-$/ie.w],We.setScale(),L.attr("transform",d(Math.round(ie.l),Math.round(ie.t)));var At,at=L.select("."+S.cbtitleunshift).attr("transform",d(-Math.round(ie.l),-Math.round(ie.t))),et=We.ticklabelposition,Ot=We.title.font.size,Wt=L.select("."+S.cbaxis),Jt=0,Be=0;function Ge(Tt,dt){var Pe={propContainer:We,propName:P._propPrefix+"title",traceIndex:P._traceIndex,_meta:P._meta,placeholder:ee._dfltTitle.colorbar,containerGroup:L.select("."+S.cbtitle)},Ie=Tt.charAt(0)==="h"?Tt.substr(1):"h"+Tt;L.selectAll("."+Ie+",."+Ie+"-math-group").remove(),v.draw(N,Tt,h(Pe,dt||{}))}return l.syncOrAsync([u.previousPromises,function(){var Tt,dt;(B&&Ye||!B&&!Ye)&&(ge==="top"&&(Tt=$+ie.l+ie.w*H,dt=ne+ie.t+ie.h*(1-Re-Ee)+3+.75*Ot),ge==="bottom"&&(Tt=$+ie.l+ie.w*H,dt=ne+ie.t+ie.h*(1-Re)-3-.25*Ot),ge==="right"&&(dt=ne+ie.t+ie.h*Q+3+.75*Ot,Tt=$+ie.l+ie.w*Re),Ge(We._id+"title",{attributes:{x:Tt,y:dt,"text-anchor":B?"start":"middle"}}))},function(){if(!B&&!Ye||B&&Ye){var Tt,dt=L.select("."+S.cbtitle),Pe=dt.select("text"),Ie=[-Y/2,Y/2],Ae=dt.select(".h"+We._id+"title-math-group").node(),De=15.6;if(Pe.node()&&(De=parseInt(Pe.node().style.fontSize,10)*_),Ae?(Tt=g.bBox(Ae),Be=Tt.width,(Jt=Tt.height)>De&&(Ie[1]-=(Jt-De)/2)):Pe.node()&&!Pe.classed(S.jsPlaceholder)&&(Tt=g.bBox(Pe.node()),Be=Tt.width,Jt=Tt.height),B){if(Jt){if(Jt+=5,ge==="top")We.domain[1]-=Jt/ie.h,Ie[1]*=-1;else{We.domain[0]+=Jt/ie.h;var He=y.lineCount(Pe);Ie[1]+=(1-He)*De}dt.attr("transform",d(Ie[0],Ie[1])),We.setScale()}}else Be&&(ge==="right"&&(We.domain[0]+=(Be+Ot/2)/ie.w),dt.attr("transform",d(Ie[0],Ie[1])),We.setScale())}L.selectAll("."+S.cbfills+",."+S.cblines).attr("transform",B?d(0,Math.round(ie.h*(1-We.domain[1]))):d(Math.round(ie.w*We.domain[0]),0)),Wt.attr("transform",B?d(0,Math.round(-ie.t)):d(Math.round(-ie.l),0));var rt=L.select("."+S.cbfills).selectAll("rect."+S.cbfill).attr("style","").data(Oe);rt.enter().append("rect").classed(S.cbfill,!0).style("stroke","none"),rt.exit().remove();var lt=fe.map(We.c2p).map(Math.round).sort(function(Ut,tt){return Ut-tt});rt.each(function(Ut,tt){var bt=[tt===0?fe[0]:(Oe[tt]+Oe[tt-1])/2,tt===Oe.length-1?fe[1]:(Oe[tt]+Oe[tt+1])/2].map(We.c2p).map(Math.round);B&&(bt[1]=l.constrain(bt[1]+(bt[1]>bt[0])?1:-1,lt[0],lt[1]));var zt=r.select(this).attr(B?"x":"y",ze).attr(B?"y":"x",r.min(bt)).attr(B?"width":"height",Math.max(ye,2)).attr(B?"height":"width",Math.max(r.max(bt)-r.min(bt),2));if(P._fillgradient)g.gradient(zt,N,P._id,B?"vertical":"horizontalreversed",P._fillgradient,"fill");else{var St=_e(Ut).replace("e-","");zt.attr("fill",a(St).toHexString())}});var ot=L.select("."+S.cblines).selectAll("path."+S.cbline).data(ue.color&&ue.width?de:[]);ot.enter().append("path").classed(S.cbline,!0),ot.exit().remove(),ot.each(function(Ut){var tt=ze,bt=Math.round(We.c2p(Ut))+ue.width/2%1;r.select(this).attr("d","M"+(B?tt+","+bt:bt+","+tt)+(B?"h":"v")+ye).call(g.lineGroupStyle,ue.width,me(Ut),ue.dash)}),Wt.selectAll("g."+We._id+"tick,path").remove();var kt=ze+ye+(Y||0)/2-(P.ticks==="outside"?1:0),wt=i.calcTicks(We),Vt=i.getTickSigns(We)[2];return i.drawTicks(N,We,{vals:We.ticks==="inside"?i.clipEnds(We,wt):wt,layer:Wt,path:i.makeTickPath(We,kt,Vt),transFn:i.makeTransTickFn(We)}),i.drawLabels(N,We,{vals:wt,layer:Wt,transFn:i.makeTransTickLabelFn(We),labelFns:i.makeLabelFns(We,kt)})},function(){if(B&&!Ye||!B&&Ye){var Tt,dt,Pe=We.position||0,Ie=We._offset+We._length/2;if(ge==="right")dt=Ie,Tt=ie.l+ie.w*Pe+10+Ot*(We.showticklabels?1:.5);else if(Tt=Ie,ge==="bottom"&&(dt=ie.t+ie.h*Pe+10+(et.indexOf("inside")===-1?We.tickfont.size:0)+(We.ticks!=="intside"&&P.ticklen||0)),ge==="top"){var Ae=le.text.split("
    ").length;dt=ie.t+ie.h*Pe+10-ye-_*Ot*Ae}Ge((B?"h":"v")+We._id+"title",{avoid:{selection:r.select(N).selectAll("g."+We._id+"tick"),side:ge,offsetTop:B?0:ie.t,offsetLeft:B?ie.l:0,maxShift:B?ee.width:ee.height},attributes:{x:Tt,y:dt,"text-anchor":"middle"},transform:{rotate:B?-90:0,offset:0}})}},u.previousPromises,function(){var Tt,dt=ye+Y/2;et.indexOf("inside")===-1&&(Tt=g.bBox(Wt.node()),dt+=B?Tt.width:Tt.height),At=at.select("text");var Pe=0,Ie=B&&ge==="top",Ae=!B&&ge==="right",De=0;if(At.node()&&!At.classed(S.jsPlaceholder)){var He,rt=at.select(".h"+We._id+"title-math-group").node();rt&&(B&&Ye||!B&&!Ye)?(Pe=(Tt=g.bBox(rt)).width,He=Tt.height):(Pe=(Tt=g.bBox(at.node())).right-ie.l-(B?ze:qe),He=Tt.bottom-ie.t-(B?qe:ze),B||ge!=="top"||(dt+=Tt.height,De=Tt.height)),Ae&&(At.attr("transform",d(Pe/2+Ot/2,0)),Pe*=2),dt=Math.max(dt,B?Pe:He)}var lt=2*(B?$:ne)+dt+Z+Y/2,ot=0;!B&&le.text&&q==="bottom"&&Q<=0&&(lt+=ot=lt/2,De+=ot),ee._hColorbarMoveTitle=ot,ee._hColorbarMoveCBTitle=De;var kt=Z+Y;L.select("."+S.cbbg).attr("x",(B?ze:qe)-kt/2-(B?$:0)).attr("y",(B?qe:ze)-(B?ke:ne+De-ot)).attr(B?"width":"height",Math.max(lt-ot,2)).attr(B?"height":"width",Math.max(ke+kt,2)).call(p.fill,re).call(p.stroke,P.bordercolor).style("stroke-width",Z);var wt=Ae?Math.max(Pe-10,0):0;if(L.selectAll("."+S.cboutline).attr("x",(B?ze:qe+$)+wt).attr("y",(B?qe+ne-ke:ze)+(Ie?Jt:0)).attr(B?"width":"height",Math.max(ye,2)).attr(B?"height":"width",Math.max(ke-(B?2*ne+Jt:2*$+wt),2)).call(p.stroke,P.outlinecolor).style({fill:"none","stroke-width":Y}),L.attr("transform",d(ie.l-(B?Fe*lt:0),ie.t-(B?0:(1-Ve)*lt-De))),!B&&(Z||a(re).getAlpha()&&!a.equals(ee.paper_bgcolor,re))){var Vt=Wt.selectAll("text"),Ut=Vt[0].length,tt=L.select("."+S.cbbg).node(),bt=g.bBox(tt),zt=g.getTranslate(L);Vt.each(function(It,Zt){var Kt=Ut-1;if(Zt===0||Zt===Kt){var Ht,mn=g.bBox(this),zn=g.getTranslate(this);if(Zt===Kt){var pn=mn.right+zn.x;(Ht=bt.right+zt.x+qe-Z-2+H-pn)>0&&(Ht=0)}else if(Zt===0){var tn=mn.left+zn.x;(Ht=bt.left+zt.x+qe+Z+2-tn)<0&&(Ht=0)}Ht&&(Ut<3?this.setAttribute("transform","translate("+Ht+",0) "+this.getAttribute("transform")):this.setAttribute("visibility","hidden"))}})}var St={},Dt=M[U],Le=A[U],Je=M[q],st=A[q],Et=lt-ye;B?(W==="pixels"?(St.y=Q,St.t=ke*Je,St.b=ke*st):(St.t=St.b=0,St.yt=Q+G*Je,St.yb=Q-G*st),te==="pixels"?(St.x=H,St.l=lt*Dt,St.r=lt*Le):(St.l=Et*Dt,St.r=Et*Le,St.xl=H-K*Dt,St.xr=H+K*Le)):(W==="pixels"?(St.x=H,St.l=ke*Dt,St.r=ke*Le):(St.l=St.r=0,St.xl=H+G*Dt,St.xr=H-G*Le),te==="pixels"?(St.y=1-Q,St.t=lt*Je,St.b=lt*st):(St.t=Et*Je,St.b=Et*st,St.yt=Q-K*Je,St.yb=Q+K*st)),u.autoMargin(N,P._id,St)}],N)}(R,O,E);z&&z.then&&(E._promises||[]).push(z),E._context.edits.colorbarPosition&&function(L,P,N){var B,G,W,K=P.orientation==="v",te=N._fullLayout._size;s.init({element:L.node(),gd:N,prepFn:function(){B=L.attr("transform"),m(L)},moveFn:function(Y,Z){L.attr("transform",B+d(Y,Z)),G=s.align((K?P._uFrac:P._vFrac)+Y/te.w,K?P._thickFrac:P._lenFrac,0,1,P.xanchor),W=s.align((K?P._vFrac:1-P._uFrac)-Z/te.h,K?P._lenFrac:P._thickFrac,0,1,P.yanchor);var re=s.getCursor(G,W,P.xanchor,P.yanchor);m(L,re)},doneFn:function(){if(m(L),G!==void 0&&W!==void 0){var Y={};Y[P._propPrefix+"x"]=G,Y[P._propPrefix+"y"]=W,P._traceIndex!==void 0?c.call("_guiRestyle",N,Y,P._traceIndex):c.call("_guiRelayout",N,Y)}}})}(R,O,E)}),D.exit().each(function(O){u.autoMargin(E,O._id)}).remove(),D.order()}}},{"../../constants/alignment":471,"../../lib":503,"../../lib/extend":493,"../../lib/setcursor":524,"../../lib/svg_text_utils":529,"../../plots/cartesian/axes":554,"../../plots/cartesian/axis_defaults":556,"../../plots/cartesian/layout_attributes":569,"../../plots/cartesian/position_defaults":572,"../../plots/plots":619,"../../registry":638,"../color":366,"../colorscale/helpers":377,"../dragelement":385,"../drawing":388,"../titles":464,"./constants":368,"@plotly/d3":58,tinycolor2:312}],371:[function(e,o,f){var r=e("../../lib");o.exports=function(a){return r.isPlainObject(a.colorbar)}},{"../../lib":503}],372:[function(e,o,f){o.exports={moduleType:"component",name:"colorbar",attributes:e("./attributes"),supplyDefaults:e("./defaults"),draw:e("./draw").draw,hasColorbar:e("./has_colorbar")}},{"./attributes":367,"./defaults":369,"./draw":370,"./has_colorbar":371}],373:[function(e,o,f){var r=e("../colorbar/attributes"),a=e("../../lib/regex").counter,u=e("../../lib/sort_object_keys"),c=e("./scales.js").scales;u(c);function i(s){return"`"+s+"`"}o.exports=function(s,l){s=s||"";var d,h=(l=l||{}).cLetter||"c",m=("onlyIfNumerical"in l?l.onlyIfNumerical:Boolean(s),"noScale"in l?l.noScale:s==="marker.line"),g="showScaleDflt"in l?l.showScaleDflt:h==="z",p=typeof l.colorscaleDflt=="string"?c[l.colorscaleDflt]:null,v=l.editTypeOverride||"",y=s?s+".":"";"colorAttr"in l?(d=l.colorAttr,l.colorAttr):i(y+(d={z:"z",c:"color"}[h]));var x=h+"auto",w=h+"min",k=h+"max",b=h+"mid",T={};T[w]=T[k]=void 0;var _={};_[x]=!1;var M={};return d==="color"&&(M.color={valType:"color",arrayOk:!0,editType:v||"style"},l.anim&&(M.color.anim=!0)),M[x]={valType:"boolean",dflt:!0,editType:"calc",impliedEdits:T},M[w]={valType:"number",dflt:null,editType:v||"plot",impliedEdits:_},M[k]={valType:"number",dflt:null,editType:v||"plot",impliedEdits:_},M[b]={valType:"number",dflt:null,editType:"calc",impliedEdits:T},M.colorscale={valType:"colorscale",editType:"calc",dflt:p,impliedEdits:{autocolorscale:!1}},M.autocolorscale={valType:"boolean",dflt:l.autoColorDflt!==!1,editType:"calc",impliedEdits:{colorscale:void 0}},M.reversescale={valType:"boolean",dflt:!1,editType:"plot"},m||(M.showscale={valType:"boolean",dflt:g,editType:"calc"},M.colorbar=r),l.noColorAxis||(M.coloraxis={valType:"subplotid",regex:a("coloraxis"),dflt:null,editType:"calc"}),M}},{"../../lib/regex":520,"../../lib/sort_object_keys":526,"../colorbar/attributes":367,"./scales.js":381}],374:[function(e,o,f){var r=e("fast-isnumeric"),a=e("../../lib"),u=e("./helpers").extractOpts;o.exports=function(c,i,s){var l,d=c._fullLayout,h=s.vals,m=s.containerStr,g=m?a.nestedProperty(i,m).get():i,p=u(g),v=p.auto!==!1,y=p.min,x=p.max,w=p.mid,k=function(){return a.aggNums(Math.min,null,h)},b=function(){return a.aggNums(Math.max,null,h)};y===void 0?y=k():v&&(y=g._colorAx&&r(y)?Math.min(y,k()):k()),x===void 0?x=b():v&&(x=g._colorAx&&r(x)?Math.max(x,b()):b()),v&&w!==void 0&&(x-w>w-y?y=w-(x-w):x-w=0?d.colorscale.sequential:d.colorscale.sequentialminus,p._sync("colorscale",l))}},{"../../lib":503,"./helpers":377,"fast-isnumeric":190}],375:[function(e,o,f){var r=e("../../lib"),a=e("./helpers").hasColorscale,u=e("./helpers").extractOpts;o.exports=function(c,i){function s(v,y){var x=v["_"+y];x!==void 0&&(v[y]=x)}function l(v,y){var x=y.container?r.nestedProperty(v,y.container).get():v;if(x)if(x.coloraxis)x._colorAx=i[x.coloraxis];else{var w=u(x),k=w.auto;(k||w.min===void 0)&&s(x,y.min),(k||w.max===void 0)&&s(x,y.max),w.autocolorscale&&s(x,"colorscale")}}for(var d=0;d=0;k--,b++){var T=y[k];w[b]=[1-T[0],T[1]]}return w}function p(y,x){x=x||{};for(var w=y.domain,k=y.range,b=k.length,T=new Array(b),_=0;_4/3-d?l:d}},{}],383:[function(e,o,f){var r=e("../../lib"),a=[["sw-resize","s-resize","se-resize"],["w-resize","move","e-resize"],["nw-resize","n-resize","ne-resize"]];o.exports=function(u,c,i,s){return u=i==="left"?0:i==="center"?1:i==="right"?2:r.constrain(Math.floor(3*u),0,2),c=s==="bottom"?0:s==="middle"?1:s==="top"?2:r.constrain(Math.floor(3*c),0,2),a[c][u]}},{"../../lib":503}],384:[function(e,o,f){f.selectMode=function(r){return r==="lasso"||r==="select"},f.drawMode=function(r){return r==="drawclosedpath"||r==="drawopenpath"||r==="drawline"||r==="drawrect"||r==="drawcircle"},f.openMode=function(r){return r==="drawline"||r==="drawopenpath"},f.rectMode=function(r){return r==="select"||r==="drawline"||r==="drawrect"||r==="drawcircle"},f.freeMode=function(r){return r==="lasso"||r==="drawclosedpath"||r==="drawopenpath"},f.selectingOrDrawing=function(r){return f.freeMode(r)||f.rectMode(r)}},{}],385:[function(e,o,f){var r=e("mouse-event-offset"),a=e("has-hover"),u=e("has-passive-events"),c=e("../../lib").removeElement,i=e("../../plots/cartesian/constants"),s=o.exports={};s.align=e("./align"),s.getCursor=e("./cursor");var l=e("./unhover");function d(){var m=document.createElement("div");m.className="dragcover";var g=m.style;return g.position="fixed",g.left=0,g.right=0,g.top=0,g.bottom=0,g.zIndex=999999999,g.background="none",document.body.appendChild(m),m}function h(m){return r(m.changedTouches?m.changedTouches[0]:m,document.body)}s.unhover=l.wrapped,s.unhoverRaw=l.raw,s.init=function(m){var g,p,v,y,x,w,k,b,T=m.gd,_=1,M=T._context.doubleClickDelay,A=m.element;T._mouseDownTime||(T._mouseDownTime=0),A.style.pointerEvents="all",A.onmousedown=E,u?(A._ontouchstart&&A.removeEventListener("touchstart",A._ontouchstart),A._ontouchstart=E,A.addEventListener("touchstart",E,{passive:!1})):A.ontouchstart=E;var S=m.clampFn||function(R,z,L){return Math.abs(R)M&&(_=Math.max(_-1,1)),T._dragged)m.doneFn&&m.doneFn();else if(m.clickFn&&m.clickFn(_,w),!b){var z;try{z=new MouseEvent("click",R)}catch{var L=h(R);(z=document.createEvent("MouseEvents")).initMouseEvent("click",R.bubbles,R.cancelable,R.view,R.detail,R.screenX,R.screenY,L[0],L[1],R.ctrlKey,R.altKey,R.shiftKey,R.metaKey,R.button,R.relatedTarget)}k.dispatchEvent(z)}T._dragging=!1,T._dragged=!1}else T._dragged=!1}},s.coverSlip=d},{"../../lib":503,"../../plots/cartesian/constants":561,"./align":382,"./cursor":383,"./unhover":386,"has-hover":228,"has-passive-events":229,"mouse-event-offset":242}],386:[function(e,o,f){var r=e("../../lib/events"),a=e("../../lib/throttle"),u=e("../../lib/dom").getGraphDiv,c=e("../fx/constants"),i=o.exports={};i.wrapped=function(s,l,d){(s=u(s))._fullLayout&&a.clear(s._fullLayout._uid+c.HOVERID),i.raw(s,l,d)},i.raw=function(s,l){var d=s._fullLayout,h=s._hoverdata;l||(l={}),l.target&&!s._dragged&&r.triggerHandler(s,"plotly_beforehover",l)===!1||(d._hoverlayer.selectAll("g").remove(),d._hoverlayer.selectAll("line").remove(),d._hoverlayer.selectAll("circle").remove(),s._hoverdata=void 0,l.target&&h&&s.emit("plotly_unhover",{event:l,points:h}))}},{"../../lib/dom":491,"../../lib/events":492,"../../lib/throttle":530,"../fx/constants":400}],387:[function(e,o,f){f.dash={valType:"string",values:["solid","dot","dash","longdash","dashdot","longdashdot"],dflt:"solid",editType:"style"},f.pattern={shape:{valType:"enumerated",values:["","/","\\","x","-","|","+","."],dflt:"",arrayOk:!0,editType:"style"},fillmode:{valType:"enumerated",values:["replace","overlay"],dflt:"replace",editType:"style"},bgcolor:{valType:"color",arrayOk:!0,editType:"style"},fgcolor:{valType:"color",arrayOk:!0,editType:"style"},fgopacity:{valType:"number",editType:"style",min:0,max:1},size:{valType:"number",min:0,dflt:8,arrayOk:!0,editType:"style"},solidity:{valType:"number",min:0,max:1,dflt:.3,arrayOk:!0,editType:"style"},editType:"style"}},{}],388:[function(e,o,f){var r=e("@plotly/d3"),a=e("../../lib"),u=a.numberFormat,c=e("fast-isnumeric"),i=e("tinycolor2"),s=e("../../registry"),l=e("../color"),d=e("../colorscale"),h=a.strTranslate,m=e("../../lib/svg_text_utils"),g=e("../../constants/xmlns_namespaces"),p=e("../../constants/alignment").LINE_SPACING,v=e("../../constants/interactions").DESELECTDIM,y=e("../../traces/scatter/subtypes"),x=e("../../traces/scatter/make_bubble_size_func"),w=e("../../components/fx/helpers").appendArrayPointValue,k=o.exports={};function b(Y,Z,re){var U=Z.fillpattern,q=U&&k.getPatternAttr(U.shape,0,"");if(q){var $=k.getPatternAttr(U.bgcolor,0,null),ne=k.getPatternAttr(U.fgcolor,0,null),H=U.fgopacity,Q=k.getPatternAttr(U.size,0,8),ee=k.getPatternAttr(U.solidity,0,.3),ie=Z.uid;k.pattern(Y,"point",re,ie,q,Q,ee,void 0,U.fillmode,$,ne,H)}else Z.fillcolor&&Y.call(l.fill,Z.fillcolor)}k.font=function(Y,Z,re,U){a.isPlainObject(Z)&&(U=Z.color,re=Z.size,Z=Z.family),Z&&Y.style("font-family",Z),re+1&&Y.style("font-size",re+"px"),U&&Y.call(l.fill,U)},k.setPosition=function(Y,Z,re){Y.attr("x",Z).attr("y",re)},k.setSize=function(Y,Z,re){Y.attr("width",Z).attr("height",re)},k.setRect=function(Y,Z,re,U,q){Y.call(k.setPosition,Z,re).call(k.setSize,U,q)},k.translatePoint=function(Y,Z,re,U){var q=re.c2p(Y.x),$=U.c2p(Y.y);return!!(c(q)&&c($)&&Z.node())&&(Z.node().nodeName==="text"?Z.attr("x",q).attr("y",$):Z.attr("transform",h(q,$)),!0)},k.translatePoints=function(Y,Z,re){Y.each(function(U){var q=r.select(this);k.translatePoint(U,q,Z,re)})},k.hideOutsideRangePoint=function(Y,Z,re,U,q,$){Z.attr("display",re.isPtWithinRange(Y,q)&&U.isPtWithinRange(Y,$)?null:"none")},k.hideOutsideRangePoints=function(Y,Z){if(Z._hasClipOnAxisFalse){var re=Z.xaxis,U=Z.yaxis;Y.each(function(q){var $=q[0].trace,ne=$.xcalendar,H=$.ycalendar,Q=s.traceIs($,"bar-like")?".bartext":".point,.textpoint";Y.selectAll(Q).each(function(ee){k.hideOutsideRangePoint(ee,r.select(this),re,U,ne,H)})})}},k.crispRound=function(Y,Z,re){return Z&&c(Z)?Y._context.staticPlot?Z:Z<1?1:Math.round(Z):re||0},k.singleLineStyle=function(Y,Z,re,U,q){Z.style("fill","none");var $=(((Y||[])[0]||{}).trace||{}).line||{},ne=re||$.width||0,H=q||$.dash||"";l.stroke(Z,U||$.color),k.dashLine(Z,H,ne)},k.lineGroupStyle=function(Y,Z,re,U){Y.style("fill","none").each(function(q){var $=(((q||[])[0]||{}).trace||{}).line||{},ne=Z||$.width||0,H=U||$.dash||"";r.select(this).call(l.stroke,re||$.color).call(k.dashLine,H,ne)})},k.dashLine=function(Y,Z,re){re=+re||0,Z=k.dashStyle(Z,re),Y.style({"stroke-dasharray":Z,"stroke-width":re+"px"})},k.dashStyle=function(Y,Z){Z=+Z||1;var re=Math.max(Z,3);return Y==="solid"?Y="":Y==="dot"?Y=re+"px,"+re+"px":Y==="dash"?Y=3*re+"px,"+3*re+"px":Y==="longdash"?Y=5*re+"px,"+5*re+"px":Y==="dashdot"?Y=3*re+"px,"+re+"px,"+re+"px,"+re+"px":Y==="longdashdot"&&(Y=5*re+"px,"+2*re+"px,"+re+"px,"+2*re+"px"),Y},k.singleFillStyle=function(Y,Z){var re=r.select(Y.node());b(Y,((re.data()[0]||[])[0]||{}).trace||{},Z)},k.fillGroupStyle=function(Y,Z){Y.style("stroke-width",0).each(function(re){var U=r.select(this);re[0].trace&&b(U,re[0].trace,Z)})};var T=e("./symbol_defs");k.symbolNames=[],k.symbolFuncs=[],k.symbolNeedLines={},k.symbolNoDot={},k.symbolNoFill={},k.symbolList=[],Object.keys(T).forEach(function(Y){var Z=T[Y],re=Z.n;k.symbolList.push(re,String(re),Y,re+100,String(re+100),Y+"-open"),k.symbolNames[re]=Y,k.symbolFuncs[re]=Z.f,Z.needLine&&(k.symbolNeedLines[re]=!0),Z.noDot?k.symbolNoDot[re]=!0:k.symbolList.push(re+200,String(re+200),Y+"-dot",re+300,String(re+300),Y+"-open-dot"),Z.noFill&&(k.symbolNoFill[re]=!0)});var _=k.symbolNames.length;function M(Y,Z){var re=Y%100;return k.symbolFuncs[re](Z)+(Y>=200?"M0,0.5L0.5,0L0,-0.5L-0.5,0Z":"")}k.symbolNumber=function(Y){if(c(Y))Y=+Y;else if(typeof Y=="string"){var Z=0;Y.indexOf("-open")>0&&(Z=100,Y=Y.replace("-open","")),Y.indexOf("-dot")>0&&(Z+=200,Y=Y.replace("-dot","")),(Y=k.symbolNames.indexOf(Y))>=0&&(Y+=Z)}return Y%100>=_||Y>=400?0:Math.floor(Math.max(Y,0))};var A={x1:1,x2:0,y1:0,y2:0},S={x1:0,x2:0,y1:1,y2:0},E=u("~f"),D={radial:{node:"radialGradient"},radialreversed:{node:"radialGradient",reversed:!0},horizontal:{node:"linearGradient",attrs:A},horizontalreversed:{node:"linearGradient",attrs:A,reversed:!0},vertical:{node:"linearGradient",attrs:S},verticalreversed:{node:"linearGradient",attrs:S,reversed:!0}};k.gradient=function(Y,Z,re,U,q,$){for(var ne=q.length,H=D[U],Q=new Array(ne),ee=0;ee=100,Z.attr("d",M(Q,H))}var ee,ie,ae,ue=!1;if(Y.so)ae=ne.outlierwidth,ie=ne.outliercolor,ee=$.outliercolor;else{var le=(ne||{}).width;ae=(Y.mlw+1||le+1||(Y.trace?(Y.trace.marker.line||{}).width:0)+1)-1||0,ie="mlc"in Y?Y.mlcc=U.lineScale(Y.mlc):a.isArrayOrTypedArray(ne.color)?l.defaultLine:ne.color,a.isArrayOrTypedArray($.color)&&(ee=l.defaultLine,ue=!0),ee="mc"in Y?Y.mcc=U.markerScale(Y.mc):$.color||"rgba(0,0,0,0)",U.selectedColorFn&&(ee=U.selectedColorFn(Y))}if(Y.om)Z.call(l.stroke,ee).style({"stroke-width":(ae||1)+"px",fill:"none"});else{Z.style("stroke-width",(Y.isBlank?0:ae)+"px");var ge=$.gradient,fe=Y.mgt;fe?ue=!0:fe=ge&&ge.type,a.isArrayOrTypedArray(fe)&&(fe=fe[0],D[fe]||(fe=0));var me=$.pattern,_e=me&&k.getPatternAttr(me.shape,Y.i,"");if(fe&&fe!=="none"){var we=Y.mgc;we?ue=!0:we=ge.color;var Te=re.uid;ue&&(Te+="-"+Y.i),k.gradient(Z,q,Te,fe,[[0,we],[1,ee]],"fill")}else if(_e){var Oe=k.getPatternAttr(me.bgcolor,Y.i,null),de=k.getPatternAttr(me.fgcolor,Y.i,null),ye=me.fgopacity,Me=k.getPatternAttr(me.size,Y.i,8),ke=k.getPatternAttr(me.solidity,Y.i,.3),Ee=Y.mcc||a.isArrayOrTypedArray(me.shape)||a.isArrayOrTypedArray(me.bgcolor)||a.isArrayOrTypedArray(me.size)||a.isArrayOrTypedArray(me.solidity),ze=re.uid;Ee&&(ze+="-"+Y.i),k.pattern(Z,"point",q,ze,_e,Me,ke,Y.mcc,me.fillmode,Oe,de,ye)}else l.fill(Z,ee);ae&&l.stroke(Z,ie)}},k.makePointStyleFns=function(Y){var Z={},re=Y.marker;return Z.markerScale=k.tryColorscale(re,""),Z.lineScale=k.tryColorscale(re,"line"),s.traceIs(Y,"symbols")&&(Z.ms2mrc=y.isBubble(Y)?x(Y):function(){return(re.size||6)/2}),Y.selectedpoints&&a.extendFlat(Z,k.makeSelectedPointStyleFns(Y)),Z},k.makeSelectedPointStyleFns=function(Y){var Z={},re=Y.selected||{},U=Y.unselected||{},q=Y.marker||{},$=re.marker||{},ne=U.marker||{},H=q.opacity,Q=$.opacity,ee=ne.opacity,ie=Q!==void 0,ae=ee!==void 0;(a.isArrayOrTypedArray(H)||ie||ae)&&(Z.selectedOpacityFn=function(Oe){var de=Oe.mo===void 0?q.opacity:Oe.mo;return Oe.selected?ie?Q:de:ae?ee:v*de});var ue=q.color,le=$.color,ge=ne.color;(le||ge)&&(Z.selectedColorFn=function(Oe){var de=Oe.mcc||ue;return Oe.selected?le||de:ge||de});var fe=q.size,me=$.size,_e=ne.size,we=me!==void 0,Te=_e!==void 0;return s.traceIs(Y,"symbols")&&(we||Te)&&(Z.selectedSizeFn=function(Oe){var de=Oe.mrc||fe/2;return Oe.selected?we?me/2:de:Te?_e/2:de}),Z},k.makeSelectedTextStyleFns=function(Y){var Z={},re=Y.selected||{},U=Y.unselected||{},q=Y.textfont||{},$=re.textfont||{},ne=U.textfont||{},H=q.color,Q=$.color,ee=ne.color;return Z.selectedTextColorFn=function(ie){var ae=ie.tc||H;return ie.selected?Q||ae:ee||(Q?ae:l.addOpacity(ae,v))},Z},k.selectedPointStyle=function(Y,Z){if(Y.size()&&Z.selectedpoints){var re=k.makeSelectedPointStyleFns(Z),U=Z.marker||{},q=[];re.selectedOpacityFn&&q.push(function($,ne){$.style("opacity",re.selectedOpacityFn(ne))}),re.selectedColorFn&&q.push(function($,ne){l.fill($,re.selectedColorFn(ne))}),re.selectedSizeFn&&q.push(function($,ne){var H=ne.mx||U.symbol||0,Q=re.selectedSizeFn(ne);$.attr("d",M(k.symbolNumber(H),Q)),ne.mrc2=Q}),q.length&&Y.each(function($){for(var ne=r.select(this),H=0;H0?re:0}k.textPointStyle=function(Y,Z,re){if(Y.size()){var U;if(Z.selectedpoints){var q=k.makeSelectedTextStyleFns(Z);U=q.selectedTextColorFn}var $=Z.texttemplate,ne=re._fullLayout;Y.each(function(H){var Q=r.select(this),ee=$?a.extractOption(H,Z,"txt","texttemplate"):a.extractOption(H,Z,"tx","text");if(ee||ee===0){if($){var ie=Z._module.formatLabels,ae=ie?ie(H,Z,ne):{},ue={};w(ue,Z,H.i);var le=Z._meta||{};ee=a.texttemplateString(ee,ae,ne._d3locale,ue,H,le)}var ge=H.tp||Z.textposition,fe=z(H,Z),me=U?U(H):H.tc||Z.textfont.color;Q.call(k.font,H.tf||Z.textfont.family,fe,me).text(ee).call(m.convertToTspans,re).call(R,ge,fe,H.mrc)}else Q.remove()})}},k.selectedTextStyle=function(Y,Z){if(Y.size()&&Z.selectedpoints){var re=k.makeSelectedTextStyleFns(Z);Y.each(function(U){var q=r.select(this),$=re.selectedTextColorFn(U),ne=U.tp||Z.textposition,H=z(U,Z);l.fill(q,$);var Q=s.traceIs(Z,"bar-like");R(q,ne,H,U.mrc2||U.mrc,Q)})}};function L(Y,Z,re,U){var q=Y[0]-Z[0],$=Y[1]-Z[1],ne=re[0]-Z[0],H=re[1]-Z[1],Q=Math.pow(q*q+$*$,.25),ee=Math.pow(ne*ne+H*H,.25),ie=(ee*ee*q-Q*Q*ne)*U,ae=(ee*ee*$-Q*Q*H)*U,ue=3*ee*(Q+ee),le=3*Q*(Q+ee);return[[r.round(Z[0]+(ue&&ie/ue),2),r.round(Z[1]+(ue&&ae/ue),2)],[r.round(Z[0]-(le&&ie/le),2),r.round(Z[1]-(le&&ae/le),2)]]}k.smoothopen=function(Y,Z){if(Y.length<3)return"M"+Y.join("L");var re,U="M"+Y[0],q=[];for(re=1;re=1e4&&(k.savedBBoxes={},B=0),re&&(k.savedBBoxes[re]=le),B++,a.extendFlat({},le)},k.setClipUrl=function(Y,Z,re){Y.attr("clip-path",W(Z,re))},k.getTranslate=function(Y){var Z=(Y[Y.attr?"attr":"getAttribute"]("transform")||"").replace(/.*\btranslate\((-?\d*\.?\d*)[^-\d]*(-?\d*\.?\d*)[^\d].*/,function(re,U,q){return[U,q].join(" ")}).split(" ");return{x:+Z[0]||0,y:+Z[1]||0}},k.setTranslate=function(Y,Z,re){var U=Y.attr?"attr":"getAttribute",q=Y.attr?"attr":"setAttribute",$=Y[U]("transform")||"";return Z=Z||0,re=re||0,$=$.replace(/(\btranslate\(.*?\);?)/,"").trim(),$=($+=h(Z,re)).trim(),Y[q]("transform",$),$},k.getScale=function(Y){var Z=(Y[Y.attr?"attr":"getAttribute"]("transform")||"").replace(/.*\bscale\((\d*\.?\d*)[^\d]*(\d*\.?\d*)[^\d].*/,function(re,U,q){return[U,q].join(" ")}).split(" ");return{x:+Z[0]||1,y:+Z[1]||1}},k.setScale=function(Y,Z,re){var U=Y.attr?"attr":"getAttribute",q=Y.attr?"attr":"setAttribute",$=Y[U]("transform")||"";return Z=Z||1,re=re||1,$=$.replace(/(\bscale\(.*?\);?)/,"").trim(),$=($+="scale("+Z+","+re+")").trim(),Y[q]("transform",$),$};var K=/\s*sc.*/;k.setPointGroupScale=function(Y,Z,re){if(Z=Z||1,re=re||1,Y){var U=Z===1&&re===1?"":"scale("+Z+","+re+")";Y.each(function(){var q=(this.getAttribute("transform")||"").replace(K,"");q=(q+=U).trim(),this.setAttribute("transform",q)})}};var te=/translate\([^)]*\)\s*$/;k.setTextPointsScale=function(Y,Z,re){Y&&Y.each(function(){var U,q=r.select(this),$=q.select("text");if($.node()){var ne=parseFloat($.attr("x")||0),H=parseFloat($.attr("y")||0),Q=(q.attr("transform")||"").match(te);U=Z===1&&re===1?[]:[h(ne,H),"scale("+Z+","+re+")",h(-ne,-H)],Q&&U.push(Q),q.attr("transform",U.join(""))}})}},{"../../components/fx/helpers":402,"../../constants/alignment":471,"../../constants/interactions":478,"../../constants/xmlns_namespaces":480,"../../lib":503,"../../lib/svg_text_utils":529,"../../registry":638,"../../traces/scatter/make_bubble_size_func":944,"../../traces/scatter/subtypes":952,"../color":366,"../colorscale":378,"./symbol_defs":389,"@plotly/d3":58,"fast-isnumeric":190,tinycolor2:312}],389:[function(e,o,f){var r=e("@plotly/d3");o.exports={circle:{n:0,f:function(a){var u=r.round(a,2);return"M"+u+",0A"+u+","+u+" 0 1,1 0,-"+u+"A"+u+","+u+" 0 0,1 "+u+",0Z"}},square:{n:1,f:function(a){var u=r.round(a,2);return"M"+u+","+u+"H-"+u+"V-"+u+"H"+u+"Z"}},diamond:{n:2,f:function(a){var u=r.round(1.3*a,2);return"M"+u+",0L0,"+u+"L-"+u+",0L0,-"+u+"Z"}},cross:{n:3,f:function(a){var u=r.round(.4*a,2),c=r.round(1.2*a,2);return"M"+c+","+u+"H"+u+"V"+c+"H-"+u+"V"+u+"H-"+c+"V-"+u+"H-"+u+"V-"+c+"H"+u+"V-"+u+"H"+c+"Z"}},x:{n:4,f:function(a){var u=r.round(.8*a/Math.sqrt(2),2),c="l"+u+","+u,i="l"+u+",-"+u,s="l-"+u+",-"+u,l="l-"+u+","+u;return"M0,"+u+c+i+s+i+s+l+s+l+c+l+c+"Z"}},"triangle-up":{n:5,f:function(a){var u=r.round(2*a/Math.sqrt(3),2);return"M-"+u+","+r.round(a/2,2)+"H"+u+"L0,-"+r.round(a,2)+"Z"}},"triangle-down":{n:6,f:function(a){var u=r.round(2*a/Math.sqrt(3),2);return"M-"+u+",-"+r.round(a/2,2)+"H"+u+"L0,"+r.round(a,2)+"Z"}},"triangle-left":{n:7,f:function(a){var u=r.round(2*a/Math.sqrt(3),2);return"M"+r.round(a/2,2)+",-"+u+"V"+u+"L-"+r.round(a,2)+",0Z"}},"triangle-right":{n:8,f:function(a){var u=r.round(2*a/Math.sqrt(3),2);return"M-"+r.round(a/2,2)+",-"+u+"V"+u+"L"+r.round(a,2)+",0Z"}},"triangle-ne":{n:9,f:function(a){var u=r.round(.6*a,2),c=r.round(1.2*a,2);return"M-"+c+",-"+u+"H"+u+"V"+c+"Z"}},"triangle-se":{n:10,f:function(a){var u=r.round(.6*a,2),c=r.round(1.2*a,2);return"M"+u+",-"+c+"V"+u+"H-"+c+"Z"}},"triangle-sw":{n:11,f:function(a){var u=r.round(.6*a,2),c=r.round(1.2*a,2);return"M"+c+","+u+"H-"+u+"V-"+c+"Z"}},"triangle-nw":{n:12,f:function(a){var u=r.round(.6*a,2),c=r.round(1.2*a,2);return"M-"+u+","+c+"V-"+u+"H"+c+"Z"}},pentagon:{n:13,f:function(a){var u=r.round(.951*a,2),c=r.round(.588*a,2),i=r.round(-a,2),s=r.round(-.309*a,2);return"M"+u+","+s+"L"+c+","+r.round(.809*a,2)+"H-"+c+"L-"+u+","+s+"L0,"+i+"Z"}},hexagon:{n:14,f:function(a){var u=r.round(a,2),c=r.round(a/2,2),i=r.round(a*Math.sqrt(3)/2,2);return"M"+i+",-"+c+"V"+c+"L0,"+u+"L-"+i+","+c+"V-"+c+"L0,-"+u+"Z"}},hexagon2:{n:15,f:function(a){var u=r.round(a,2),c=r.round(a/2,2),i=r.round(a*Math.sqrt(3)/2,2);return"M-"+c+","+i+"H"+c+"L"+u+",0L"+c+",-"+i+"H-"+c+"L-"+u+",0Z"}},octagon:{n:16,f:function(a){var u=r.round(.924*a,2),c=r.round(.383*a,2);return"M-"+c+",-"+u+"H"+c+"L"+u+",-"+c+"V"+c+"L"+c+","+u+"H-"+c+"L-"+u+","+c+"V-"+c+"Z"}},star:{n:17,f:function(a){var u=1.4*a,c=r.round(.225*u,2),i=r.round(.951*u,2),s=r.round(.363*u,2),l=r.round(.588*u,2),d=r.round(-u,2),h=r.round(-.309*u,2),m=r.round(.118*u,2),g=r.round(.809*u,2);return"M"+c+","+h+"H"+i+"L"+s+","+m+"L"+l+","+g+"L0,"+r.round(.382*u,2)+"L-"+l+","+g+"L-"+s+","+m+"L-"+i+","+h+"H-"+c+"L0,"+d+"Z"}},hexagram:{n:18,f:function(a){var u=r.round(.66*a,2),c=r.round(.38*a,2),i=r.round(.76*a,2);return"M-"+i+",0l-"+c+",-"+u+"h"+i+"l"+c+",-"+u+"l"+c+","+u+"h"+i+"l-"+c+","+u+"l"+c+","+u+"h-"+i+"l-"+c+","+u+"l-"+c+",-"+u+"h-"+i+"Z"}},"star-triangle-up":{n:19,f:function(a){var u=r.round(a*Math.sqrt(3)*.8,2),c=r.round(.8*a,2),i=r.round(1.6*a,2),s=r.round(4*a,2),l="A "+s+","+s+" 0 0 1 ";return"M-"+u+","+c+l+u+","+c+l+"0,-"+i+l+"-"+u+","+c+"Z"}},"star-triangle-down":{n:20,f:function(a){var u=r.round(a*Math.sqrt(3)*.8,2),c=r.round(.8*a,2),i=r.round(1.6*a,2),s=r.round(4*a,2),l="A "+s+","+s+" 0 0 1 ";return"M"+u+",-"+c+l+"-"+u+",-"+c+l+"0,"+i+l+u+",-"+c+"Z"}},"star-square":{n:21,f:function(a){var u=r.round(1.1*a,2),c=r.round(2*a,2),i="A "+c+","+c+" 0 0 1 ";return"M-"+u+",-"+u+i+"-"+u+","+u+i+u+","+u+i+u+",-"+u+i+"-"+u+",-"+u+"Z"}},"star-diamond":{n:22,f:function(a){var u=r.round(1.4*a,2),c=r.round(1.9*a,2),i="A "+c+","+c+" 0 0 1 ";return"M-"+u+",0"+i+"0,"+u+i+u+",0"+i+"0,-"+u+i+"-"+u+",0Z"}},"diamond-tall":{n:23,f:function(a){var u=r.round(.7*a,2),c=r.round(1.4*a,2);return"M0,"+c+"L"+u+",0L0,-"+c+"L-"+u+",0Z"}},"diamond-wide":{n:24,f:function(a){var u=r.round(1.4*a,2),c=r.round(.7*a,2);return"M0,"+c+"L"+u+",0L0,-"+c+"L-"+u+",0Z"}},hourglass:{n:25,f:function(a){var u=r.round(a,2);return"M"+u+","+u+"H-"+u+"L"+u+",-"+u+"H-"+u+"Z"},noDot:!0},bowtie:{n:26,f:function(a){var u=r.round(a,2);return"M"+u+","+u+"V-"+u+"L-"+u+","+u+"V-"+u+"Z"},noDot:!0},"circle-cross":{n:27,f:function(a){var u=r.round(a,2);return"M0,"+u+"V-"+u+"M"+u+",0H-"+u+"M"+u+",0A"+u+","+u+" 0 1,1 0,-"+u+"A"+u+","+u+" 0 0,1 "+u+",0Z"},needLine:!0,noDot:!0},"circle-x":{n:28,f:function(a){var u=r.round(a,2),c=r.round(a/Math.sqrt(2),2);return"M"+c+","+c+"L-"+c+",-"+c+"M"+c+",-"+c+"L-"+c+","+c+"M"+u+",0A"+u+","+u+" 0 1,1 0,-"+u+"A"+u+","+u+" 0 0,1 "+u+",0Z"},needLine:!0,noDot:!0},"square-cross":{n:29,f:function(a){var u=r.round(a,2);return"M0,"+u+"V-"+u+"M"+u+",0H-"+u+"M"+u+","+u+"H-"+u+"V-"+u+"H"+u+"Z"},needLine:!0,noDot:!0},"square-x":{n:30,f:function(a){var u=r.round(a,2);return"M"+u+","+u+"L-"+u+",-"+u+"M"+u+",-"+u+"L-"+u+","+u+"M"+u+","+u+"H-"+u+"V-"+u+"H"+u+"Z"},needLine:!0,noDot:!0},"diamond-cross":{n:31,f:function(a){var u=r.round(1.3*a,2);return"M"+u+",0L0,"+u+"L-"+u+",0L0,-"+u+"ZM0,-"+u+"V"+u+"M-"+u+",0H"+u},needLine:!0,noDot:!0},"diamond-x":{n:32,f:function(a){var u=r.round(1.3*a,2),c=r.round(.65*a,2);return"M"+u+",0L0,"+u+"L-"+u+",0L0,-"+u+"ZM-"+c+",-"+c+"L"+c+","+c+"M-"+c+","+c+"L"+c+",-"+c},needLine:!0,noDot:!0},"cross-thin":{n:33,f:function(a){var u=r.round(1.4*a,2);return"M0,"+u+"V-"+u+"M"+u+",0H-"+u},needLine:!0,noDot:!0,noFill:!0},"x-thin":{n:34,f:function(a){var u=r.round(a,2);return"M"+u+","+u+"L-"+u+",-"+u+"M"+u+",-"+u+"L-"+u+","+u},needLine:!0,noDot:!0,noFill:!0},asterisk:{n:35,f:function(a){var u=r.round(1.2*a,2),c=r.round(.85*a,2);return"M0,"+u+"V-"+u+"M"+u+",0H-"+u+"M"+c+","+c+"L-"+c+",-"+c+"M"+c+",-"+c+"L-"+c+","+c},needLine:!0,noDot:!0,noFill:!0},hash:{n:36,f:function(a){var u=r.round(a/2,2),c=r.round(a,2);return"M"+u+","+c+"V-"+c+"m-"+c+",0V"+c+"M"+c+","+u+"H-"+c+"m0,-"+c+"H"+c},needLine:!0,noFill:!0},"y-up":{n:37,f:function(a){var u=r.round(1.2*a,2),c=r.round(1.6*a,2),i=r.round(.8*a,2);return"M-"+u+","+i+"L0,0M"+u+","+i+"L0,0M0,-"+c+"L0,0"},needLine:!0,noDot:!0,noFill:!0},"y-down":{n:38,f:function(a){var u=r.round(1.2*a,2),c=r.round(1.6*a,2),i=r.round(.8*a,2);return"M-"+u+",-"+i+"L0,0M"+u+",-"+i+"L0,0M0,"+c+"L0,0"},needLine:!0,noDot:!0,noFill:!0},"y-left":{n:39,f:function(a){var u=r.round(1.2*a,2),c=r.round(1.6*a,2),i=r.round(.8*a,2);return"M"+i+","+u+"L0,0M"+i+",-"+u+"L0,0M-"+c+",0L0,0"},needLine:!0,noDot:!0,noFill:!0},"y-right":{n:40,f:function(a){var u=r.round(1.2*a,2),c=r.round(1.6*a,2),i=r.round(.8*a,2);return"M-"+i+","+u+"L0,0M-"+i+",-"+u+"L0,0M"+c+",0L0,0"},needLine:!0,noDot:!0,noFill:!0},"line-ew":{n:41,f:function(a){var u=r.round(1.4*a,2);return"M"+u+",0H-"+u},needLine:!0,noDot:!0,noFill:!0},"line-ns":{n:42,f:function(a){var u=r.round(1.4*a,2);return"M0,"+u+"V-"+u},needLine:!0,noDot:!0,noFill:!0},"line-ne":{n:43,f:function(a){var u=r.round(a,2);return"M"+u+",-"+u+"L-"+u+","+u},needLine:!0,noDot:!0,noFill:!0},"line-nw":{n:44,f:function(a){var u=r.round(a,2);return"M"+u+","+u+"L-"+u+",-"+u},needLine:!0,noDot:!0,noFill:!0},"arrow-up":{n:45,f:function(a){var u=r.round(a,2);return"M0,0L-"+u+","+r.round(2*a,2)+"H"+u+"Z"},noDot:!0},"arrow-down":{n:46,f:function(a){var u=r.round(a,2);return"M0,0L-"+u+",-"+r.round(2*a,2)+"H"+u+"Z"},noDot:!0},"arrow-left":{n:47,f:function(a){var u=r.round(2*a,2),c=r.round(a,2);return"M0,0L"+u+",-"+c+"V"+c+"Z"},noDot:!0},"arrow-right":{n:48,f:function(a){var u=r.round(2*a,2),c=r.round(a,2);return"M0,0L-"+u+",-"+c+"V"+c+"Z"},noDot:!0},"arrow-bar-up":{n:49,f:function(a){var u=r.round(a,2);return"M-"+u+",0H"+u+"M0,0L-"+u+","+r.round(2*a,2)+"H"+u+"Z"},needLine:!0,noDot:!0},"arrow-bar-down":{n:50,f:function(a){var u=r.round(a,2);return"M-"+u+",0H"+u+"M0,0L-"+u+",-"+r.round(2*a,2)+"H"+u+"Z"},needLine:!0,noDot:!0},"arrow-bar-left":{n:51,f:function(a){var u=r.round(2*a,2),c=r.round(a,2);return"M0,-"+c+"V"+c+"M0,0L"+u+",-"+c+"V"+c+"Z"},needLine:!0,noDot:!0},"arrow-bar-right":{n:52,f:function(a){var u=r.round(2*a,2),c=r.round(a,2);return"M0,-"+c+"V"+c+"M0,0L-"+u+",-"+c+"V"+c+"Z"},needLine:!0,noDot:!0}}},{"@plotly/d3":58}],390:[function(e,o,f){o.exports={visible:{valType:"boolean",editType:"calc"},type:{valType:"enumerated",values:["percent","constant","sqrt","data"],editType:"calc"},symmetric:{valType:"boolean",editType:"calc"},array:{valType:"data_array",editType:"calc"},arrayminus:{valType:"data_array",editType:"calc"},value:{valType:"number",min:0,dflt:10,editType:"calc"},valueminus:{valType:"number",min:0,dflt:10,editType:"calc"},traceref:{valType:"integer",min:0,dflt:0,editType:"style"},tracerefminus:{valType:"integer",min:0,dflt:0,editType:"style"},copy_ystyle:{valType:"boolean",editType:"plot"},copy_zstyle:{valType:"boolean",editType:"style"},color:{valType:"color",editType:"style"},thickness:{valType:"number",min:0,dflt:2,editType:"style"},width:{valType:"number",min:0,editType:"plot"},editType:"calc",_deprecated:{opacity:{valType:"number",editType:"style"}}}},{}],391:[function(e,o,f){var r=e("fast-isnumeric"),a=e("../../registry"),u=e("../../plots/cartesian/axes"),c=e("../../lib"),i=e("./compute_error");function s(l,d,h,m){var g=d["error_"+m]||{},p=[];if(g.visible&&["linear","log"].indexOf(h.type)!==-1){for(var v=i(g),y=0;y0;s.each(function(p){var v,y=p[0].trace,x=y.error_x||{},w=y.error_y||{};y.ids&&(v=function(_){return _.id});var k=c.hasMarkers(y)&&y.marker.maxdisplayed>0;w.visible||x.visible||(p=[]);var b=r.select(this).selectAll("g.errorbar").data(p,v);if(b.exit().remove(),p.length){x.visible||b.selectAll("path.xerror").remove(),w.visible||b.selectAll("path.yerror").remove(),b.style("opacity",1);var T=b.enter().append("g").classed("errorbar",!0);g&&T.style("opacity",0).transition().duration(d.duration).style("opacity",1),u.setClipUrl(b,l.layerClipId,i),b.each(function(_){var M=r.select(this),A=function(z,L,P){var N={x:L.c2p(z.x),y:P.c2p(z.y)};return z.yh!==void 0&&(N.yh=P.c2p(z.yh),N.ys=P.c2p(z.ys),a(N.ys)||(N.noYS=!0,N.ys=P.c2p(z.ys,!0))),z.xh!==void 0&&(N.xh=L.c2p(z.xh),N.xs=L.c2p(z.xs),a(N.xs)||(N.noXS=!0,N.xs=L.c2p(z.xs,!0))),N}(_,h,m);if(!k||_.vis){var S,E=M.select("path.yerror");if(w.visible&&a(A.x)&&a(A.yh)&&a(A.ys)){var D=w.width;S="M"+(A.x-D)+","+A.yh+"h"+2*D+"m-"+D+",0V"+A.ys,A.noYS||(S+="m-"+D+",0h"+2*D),E.size()?g&&(E=E.transition().duration(d.duration).ease(d.easing)):E=M.append("path").style("vector-effect","non-scaling-stroke").classed("yerror",!0),E.attr("d",S)}else E.remove();var O=M.select("path.xerror");if(x.visible&&a(A.y)&&a(A.xh)&&a(A.xs)){var R=(x.copy_ystyle?w:x).width;S="M"+A.xh+","+(A.y-R)+"v"+2*R+"m0,-"+R+"H"+A.xs,A.noXS||(S+="m0,-"+R+"v"+2*R),O.size()?g&&(O=O.transition().duration(d.duration).ease(d.easing)):O=M.append("path").style("vector-effect","non-scaling-stroke").classed("xerror",!0),O.attr("d",S)}else O.remove()}})}})}},{"../../traces/scatter/subtypes":952,"../drawing":388,"@plotly/d3":58,"fast-isnumeric":190}],396:[function(e,o,f){var r=e("@plotly/d3"),a=e("../color");o.exports=function(u){u.each(function(c){var i=c[0].trace,s=i.error_y||{},l=i.error_x||{},d=r.select(this);d.selectAll("path.yerror").style("stroke-width",s.thickness+"px").call(a.stroke,s.color),l.copy_ystyle&&(l=s),d.selectAll("path.xerror").style("stroke-width",l.thickness+"px").call(a.stroke,l.color)})}},{"../color":366,"@plotly/d3":58}],397:[function(e,o,f){var r=e("../../plots/font_attributes"),a=e("./layout_attributes").hoverlabel,u=e("../../lib/extend").extendFlat;o.exports={hoverlabel:{bgcolor:u({},a.bgcolor,{arrayOk:!0}),bordercolor:u({},a.bordercolor,{arrayOk:!0}),font:r({arrayOk:!0,editType:"none"}),align:u({},a.align,{arrayOk:!0}),namelength:u({},a.namelength,{arrayOk:!0}),editType:"none"}}},{"../../lib/extend":493,"../../plots/font_attributes":585,"./layout_attributes":407}],398:[function(e,o,f){var r=e("../../lib"),a=e("../../registry");function u(c,i,s,l){l=l||r.identity,Array.isArray(c)&&(i[0][s]=l(c))}o.exports=function(c){var i=c.calcdata,s=c._fullLayout;function l(p){return function(v){return r.coerceHoverinfo({hoverinfo:v},{_module:p._module},s)}}for(var d=0;d=0&&h.indexde[0]._length||Pe<0||Pe>ye[0]._length)return p.unhoverRaw(ee,ie)}if(ie.pointerX=dt+de[0]._offset,ie.pointerY=Pe+ye[0]._offset,Re="xval"in ie?x.flat(ge,ie.xval):x.p2c(de,dt),qe="yval"in ie?x.flat(ge,ie.yval):x.p2c(ye,Pe),!a(Re[0])||!a(qe[0]))return c.warn("Fx.hover failed",ie,ee),p.unhoverRaw(ee,ie)}var De=1/0;function He(Mn,rr){for(Ye=0;YeWt&&(Jt.splice(0,Wt),De=Jt[0].distance),we&&Ke!==0&&Jt.length===0){Ot.distance=Ke,Ot.index=!1;var pr=ft._module.hoverPoints(Ot,at,et,"closest",{hoverLayer:fe._hoverlayer});if(pr&&(pr=pr.filter(function(fn){return fn.spikeDistance<=Ke})),pr&&pr.length){var qr,_i=pr.filter(function(fn){return fn.xa.showspikes&&fn.xa.spikesnap!=="hovered data"});if(_i.length){var cn=_i[0];a(cn.x0)&&a(cn.y0)&&(qr=lt(cn),(!Ge.vLinePoint||Ge.vLinePoint.spikeDistance>qr.spikeDistance)&&(Ge.vLinePoint=qr))}var jn=pr.filter(function(fn){return fn.ya.showspikes&&fn.ya.spikesnap!=="hovered data"});if(jn.length){var jt=jn[0];a(jt.x0)&&a(jt.y0)&&(qr=lt(jt),(!Ge.hLinePoint||Ge.hLinePoint.spikeDistance>qr.spikeDistance)&&(Ge.hLinePoint=qr))}}}}}function rt(Mn,rr,nr){for(var Bn,Fr=null,$r=1/0,pr=0;pr0&&Math.abs(Mn.distance)Le-1;Et--)Ht(Jt[Et]);Jt=It,Vt()}var mn=ee._hoverdata,zn=[],pn=Z(ee),tn=re(ee);for(We=0;We1||Jt.length>1)||Fe==="closest"&&Tt&&Jt.length>1,Ln=g.combine(fe.plot_bgcolor||g.background,fe.paper_bgcolor),lr=P(Jt,{gd:ee,hovermode:Fe,rotateLabels:Kn,bgColor:Ln,container:fe._hoverlayer,outerContainer:fe._paper.node(),commonLabelOpts:fe.hoverlabel,hoverdistance:fe.hoverdistance});if(x.isUnifiedHover(Fe)||(function(Mn,rr,nr){var Bn,Fr,$r,pr,qr,_i,cn,jn=0,jt=1,fn=Mn.size(),yn=new Array(fn),$n=0;function Un(Yn){var ir=Yn[0],or=Yn[Yn.length-1];if(Fr=ir.pmin-ir.pos-ir.dp+ir.size,$r=or.pos+or.dp+or.size-ir.pmax,Fr>.01){for(qr=Yn.length-1;qr>=0;qr--)Yn[qr].dp+=Fr;Bn=!1}if(!($r<.01)){if(Fr<-.01){for(qr=Yn.length-1;qr>=0;qr--)Yn[qr].dp-=$r;Bn=!1}if(Bn){var xr=0;for(pr=0;prir.pmax&&xr++;for(pr=Yn.length-1;pr>=0&&!(xr<=0);pr--)(_i=Yn[pr]).pos>ir.pmax-1&&(_i.del=!0,xr--);for(pr=0;pr=0;qr--)Yn[qr].dp-=$r;for(pr=Yn.length-1;pr>=0&&!(xr<=0);pr--)(_i=Yn[pr]).pos+_i.dp+_i.size>ir.pmax&&(_i.del=!0,xr--)}}}for(Mn.each(function(Yn){var ir=Yn[rr],or=ir._id.charAt(0)==="x",xr=ir.range;$n===0&&xr&&xr[0]>xr[1]!==or&&(jt=-1),yn[$n++]=[{datum:Yn,traceIndex:Yn.trace.index,dp:0,pos:Yn.pos,posref:Yn.posref,size:Yn.by*(or?M:1)/2,pmin:0,pmax:or?nr.width:nr.height}]}),yn.sort(function(Yn,ir){return Yn[0].posref-ir[0].posref||jt*(ir[0].traceIndex-Yn[0].traceIndex)});!Bn&&jn<=fn;){for(jn++,Bn=!0,pr=0;pr.01&&wn.pmin===kn.pmin&&wn.pmax===kn.pmax){for(qr=Rn.length-1;qr>=0;qr--)Rn[qr].dp+=Fr;for(Nn.push.apply(Nn,Rn),yn.splice(pr+1,1),cn=0,qr=Nn.length-1;qr>=0;qr--)cn+=Nn[qr].dp;for($r=cn/Nn.length,qr=Nn.length-1;qr>=0;qr--)Nn[qr].dp-=$r;Bn=!1}else pr++}yn.forEach(Un)}for(pr=yn.length-1;pr>=0;pr--){var Tn=yn[pr];for(qr=Tn.length-1;qr>=0;qr--){var Dn=Tn[qr],Zn=Dn.datum;Zn.offset=Dn.dp,Zn.del=Dn.del}}}(lr,Kn?"xa":"ya",fe),B(lr,Kn,fe._invScaleX,fe._invScaleY)),le&&le.tagName){var Wr=y.getComponentMethod("annotations","hasClickToShow")(ee,zn);h(r.select(le),Wr?"pointer":"")}!le||ue||!function(Mn,rr,nr){if(!nr||nr.length!==Mn._hoverdata.length)return!0;for(var Bn=nr.length-1;Bn>=0;Bn--){var Fr=nr[Bn],$r=Mn._hoverdata[Bn];if(Fr.curveNumber!==$r.curveNumber||String(Fr.pointNumber)!==String($r.pointNumber)||String(Fr.pointNumbers)!==String($r.pointNumbers))return!0}return!1}(ee,0,mn)||(mn&&ee.emit("plotly_unhover",{event:ie,points:mn}),ee.emit("plotly_hover",{event:ie,points:ee._hoverdata,xaxes:de,yaxes:ye,xvals:Re,yvals:qe}))})(q,$,ne,H,Q)})},f.loneHover=function(q,$){var ne=!0;Array.isArray(q)||(ne=!1,q=[q]);var H=$.gd,Q=Z(H),ee=re(H),ie=P(q.map(function(le){var ge=le._x0||le.x0||le.x||0,fe=le._x1||le.x1||le.x||0,me=le._y0||le.y0||le.y||0,_e=le._y1||le.y1||le.y||0,we=le.eventData;if(we){var Te=Math.min(ge,fe),Oe=Math.max(ge,fe),de=Math.min(me,_e),ye=Math.max(me,_e),Me=le.trace;if(y.traceIs(Me,"gl3d")){var ke=H._fullLayout[Me.scene]._scene.container,Ee=ke.offsetLeft,ze=ke.offsetTop;Te+=Ee,Oe+=Ee,de+=ze,ye+=ze}we.bbox={x0:Te+ee,x1:Oe+ee,y0:de+Q,y1:ye+Q},$.inOut_bbox&&$.inOut_bbox.push(we.bbox)}else we=!1;return{color:le.color||g.defaultLine,x0:le.x0||le.x||0,x1:le.x1||le.x||0,y0:le.y0||le.y||0,y1:le.y1||le.y||0,xLabel:le.xLabel,yLabel:le.yLabel,zLabel:le.zLabel,text:le.text,name:le.name,idealAlign:le.idealAlign,borderColor:le.borderColor,fontFamily:le.fontFamily,fontSize:le.fontSize,fontColor:le.fontColor,nameLength:le.nameLength,textAlign:le.textAlign,trace:le.trace||{index:0,hoverinfo:""},xa:{_offset:0},ya:{_offset:0},index:0,hovertemplate:le.hovertemplate||!1,hovertemplateLabels:le.hovertemplateLabels||!1,eventData:we}}),{gd:H,hovermode:"closest",rotateLabels:!1,bgColor:$.bgColor||g.background,container:r.select($.container),outerContainer:$.outerContainer||$.container}),ae=0,ue=0;return ie.sort(function(le,ge){return le.y0-ge.y0}).each(function(le,ge){var fe=le.y0-le.by/2;le.offset=fe-5([\s\S]*)<\/extra>/;function P(q,$){var ne=$.gd,H=ne._fullLayout,Q=$.hovermode,ee=$.rotateLabels,ie=$.bgColor,ae=$.container,ue=$.outerContainer,le=$.commonLabelOpts||{};if(q.length===0)return[[]];var ge=$.fontFamily||w.HOVERFONT,fe=$.fontSize||w.HOVERFONTSIZE,me=q[0],_e=me.xa,we=me.ya,Te=Q.charAt(0),Oe=me[Te+"Label"],de=U(ne,ue),ye=de.top,Me=de.width,ke=de.height,Ee=Oe!==void 0&&me.distance<=$.hoverdistance&&(Q==="x"||Q==="y");if(Ee){var ze,Fe,Ve=!0;for(ze=0;zeH.width-Kt?(st=H.width-Kt,bt.attr("d","M"+(Kt-E)+",0L"+Kt+","+Zt+E+"v"+Zt+(2*D+It.height)+"H-"+Kt+"V"+Zt+E+"H"+(Kt-2*E)+"Z")):bt.attr("d","M0,0L"+E+","+Zt+E+"H"+(D+It.width/2)+"v"+Zt+(2*D+It.height)+"H-"+(D+It.width/2)+"V"+Zt+E+"H-"+E+"Z")}else{var Ht,mn,zn;we.side==="right"?(Ht="start",mn=1,zn="",st=_e._offset+_e._length):(Ht="end",mn=-1,zn="-",st=_e._offset),Et=we._offset+(me.y0+me.y1)/2,zt.attr("text-anchor",Ht),bt.attr("d","M0,0L"+zn+E+","+E+"V"+(D+It.height/2)+"h"+zn+(2*D+It.width)+"V-"+(D+It.height/2)+"H"+zn+E+"V-"+E+"Z");var pn,tn=It.height/2,nn=ye-It.top-tn,sn="clip"+H._uid+"commonlabel"+we._id;if(st=0?Ge:Tt+Ie=0?Tt:wt+Ie=0?Jt:Be+Ae=0?Be:Vt+Ae=0,tt.idealAlign!=="top"&&Hn||!Wn?Hn?(tn+=sn/2,tt.anchor="start"):tt.anchor="middle":(tn-=sn/2,tt.anchor="end");else if(tt.pos=tn,Hn=pn+nn/2+ar<=Me,Wn=pn-nn/2-ar>=0,tt.idealAlign!=="left"&&Hn||!Wn)if(Hn)pn+=nn/2,tt.anchor="start";else{tt.anchor="middle";var Or=ar/2,vr=pn+Or-Me,Er=pn-Or;vr>0&&(pn-=vr),Er<0&&(pn+=-Er)}else pn-=nn/2,tt.anchor="end";Zt.attr("text-anchor",tt.anchor),Ht&&Kt.attr("text-anchor",tt.anchor),bt.attr("transform",i(pn,tn)+(ee?s(T):""))}),Ut}function N(q,$,ne,H,Q,ee){var ie="",ae="";q.nameOverride!==void 0&&(q.name=q.nameOverride),q.name&&(q.trace._meta&&(q.name=c.templateString(q.name,q.trace._meta)),ie=te(q.name,q.nameLength));var ue=ne.charAt(0),le=ue==="x"?"y":"x";q.zLabel!==void 0?(q.xLabel!==void 0&&(ae+="x: "+q.xLabel+"
    "),q.yLabel!==void 0&&(ae+="y: "+q.yLabel+"
    "),q.trace.type!=="choropleth"&&q.trace.type!=="choroplethmapbox"&&(ae+=(ae?"z: ":"")+q.zLabel)):$&&q[ue+"Label"]===Q?ae=q[le+"Label"]||"":q.xLabel===void 0?q.yLabel!==void 0&&q.trace.type!=="scattercarpet"&&(ae=q.yLabel):ae=q.yLabel===void 0?q.xLabel:"("+q.xLabel+", "+q.yLabel+")",!q.text&&q.text!==0||Array.isArray(q.text)||(ae+=(ae?"
    ":"")+q.text),q.extraText!==void 0&&(ae+=(ae?"
    ":"")+q.extraText),ee&&ae===""&&!q.hovertemplate&&(ie===""&&ee.remove(),ae=ie);var ge=q.hovertemplate||!1;if(ge){var fe=q.hovertemplateLabels||q;q[ue+"Label"]!==Q&&(fe[ue+"other"]=fe[ue+"Val"],fe[ue+"otherLabel"]=fe[ue+"Label"]),ae=(ae=c.hovertemplateString(ge,fe,H._d3locale,q.eventData[0]||{},q.trace._meta)).replace(L,function(me,_e){return ie=te(_e,q.nameLength),""})}return[ae,ie]}function B(q,$,ne,H){var Q=function(ie){return ie*ne},ee=function(ie){return ie*H};q.each(function(ie){var ae=r.select(this);if(ie.del)return ae.remove();var ue=ae.select("text.nums"),le=ie.anchor,ge=le==="end"?-1:1,fe={start:1,end:-1,middle:0}[le],me=fe*(E+D),_e=me+fe*(ie.txwidth+D),we=0,Te=ie.offset,Oe=le==="middle";Oe&&(me-=ie.tx2width/2,_e+=ie.txwidth/2+D),$&&(Te*=-S,we=ie.offset*A),ae.select("path").attr("d",Oe?"M-"+Q(ie.bx/2+ie.tx2width/2)+","+ee(Te-ie.by/2)+"h"+Q(ie.bx)+"v"+ee(ie.by)+"h-"+Q(ie.bx)+"Z":"M0,0L"+Q(ge*E+we)+","+ee(E+Te)+"v"+ee(ie.by/2-E)+"h"+Q(ge*ie.bx)+"v-"+ee(ie.by)+"H"+Q(ge*E+we)+"V"+ee(Te-E)+"Z");var de=we+me,ye=Te+ie.ty0-ie.by/2+D,Me=ie.textAlign||"auto";Me!=="auto"&&(Me==="left"&&le!=="start"?(ue.attr("text-anchor","start"),de=Oe?-ie.bx/2-ie.tx2width/2+D:-ie.bx-D):Me==="right"&&le!=="end"&&(ue.attr("text-anchor","end"),de=Oe?ie.bx/2-ie.tx2width/2-D:ie.bx+D)),ue.call(d.positionText,Q(de),ee(ye)),ie.tx2width&&(ae.select("text.name").call(d.positionText,Q(_e+fe*D+we),ee(Te+ie.ty0-ie.by/2+D)),ae.select("rect").call(m.setRect,Q(_e+(fe-1)*ie.tx2width/2+we),ee(Te-ie.by/2-1),Q(ie.tx2width),ee(ie.by+2)))})}function G(q,$){var ne=q.index,H=q.trace||{},Q=q.cd[0],ee=q.cd[ne]||{};function ie(me){return me||a(me)&&me===0}var ae=Array.isArray(ne)?function(me,_e){var we=c.castOption(Q,ne,me);return ie(we)?we:c.extractOption({},H,"",_e)}:function(me,_e){return c.extractOption(ee,H,me,_e)};function ue(me,_e,we){var Te=ae(_e,we);ie(Te)&&(q[me]=Te)}if(ue("hoverinfo","hi","hoverinfo"),ue("bgcolor","hbg","hoverlabel.bgcolor"),ue("borderColor","hbc","hoverlabel.bordercolor"),ue("fontFamily","htf","hoverlabel.font.family"),ue("fontSize","hts","hoverlabel.font.size"),ue("fontColor","htc","hoverlabel.font.color"),ue("nameLength","hnl","hoverlabel.namelength"),ue("textAlign","hta","hoverlabel.align"),q.posref=$==="y"||$==="closest"&&H.orientation==="h"?q.xa._offset+(q.x0+q.x1)/2:q.ya._offset+(q.y0+q.y1)/2,q.x0=c.constrain(q.x0,0,q.xa._length),q.x1=c.constrain(q.x1,0,q.xa._length),q.y0=c.constrain(q.y0,0,q.ya._length),q.y1=c.constrain(q.y1,0,q.ya._length),q.xLabelVal!==void 0&&(q.xLabel="xLabel"in q?q.xLabel:v.hoverLabelText(q.xa,q.xLabelVal,H.xhoverformat),q.xVal=q.xa.c2d(q.xLabelVal)),q.yLabelVal!==void 0&&(q.yLabel="yLabel"in q?q.yLabel:v.hoverLabelText(q.ya,q.yLabelVal,H.yhoverformat),q.yVal=q.ya.c2d(q.yLabelVal)),q.zLabelVal!==void 0&&q.zLabel===void 0&&(q.zLabel=String(q.zLabelVal)),!(isNaN(q.xerr)||q.xa.type==="log"&&q.xerr<=0)){var le=v.tickText(q.xa,q.xa.c2l(q.xerr),"hover").text;q.xerrneg!==void 0?q.xLabel+=" +"+le+" / -"+v.tickText(q.xa,q.xa.c2l(q.xerrneg),"hover").text:q.xLabel+=" \xB1 "+le,$==="x"&&(q.distance+=1)}if(!(isNaN(q.yerr)||q.ya.type==="log"&&q.yerr<=0)){var ge=v.tickText(q.ya,q.ya.c2l(q.yerr),"hover").text;q.yerrneg!==void 0?q.yLabel+=" +"+ge+" / -"+v.tickText(q.ya,q.ya.c2l(q.yerrneg),"hover").text:q.yLabel+=" \xB1 "+ge,$==="y"&&(q.distance+=1)}var fe=q.hoverinfo||q.trace.hoverinfo;return fe&&fe!=="all"&&((fe=Array.isArray(fe)?fe:fe.split("+")).indexOf("x")===-1&&(q.xLabel=void 0),fe.indexOf("y")===-1&&(q.yLabel=void 0),fe.indexOf("z")===-1&&(q.zLabel=void 0),fe.indexOf("text")===-1&&(q.text=void 0),fe.indexOf("name")===-1&&(q.name=void 0)),q}function W(q,$,ne){var H,Q,ee=ne.container,ie=ne.fullLayout,ae=ie._size,ue=ne.event,le=!!$.hLinePoint,ge=!!$.vLinePoint;if(ee.selectAll(".spikeline").remove(),ge||le){var fe=g.combine(ie.plot_bgcolor,ie.paper_bgcolor);if(le){var me,_e,we=$.hLinePoint;H=we&&we.xa,(Q=we&&we.ya).spikesnap==="cursor"?(me=ue.pointerX,_e=ue.pointerY):(me=H._offset+we.x,_e=Q._offset+we.y);var Te,Oe,de=u.readability(we.color,fe)<1.5?g.contrast(fe):we.color,ye=Q.spikemode,Me=Q.spikethickness,ke=Q.spikecolor||de,Ee=v.getPxPosition(q,Q);if(ye.indexOf("toaxis")!==-1||ye.indexOf("across")!==-1){if(ye.indexOf("toaxis")!==-1&&(Te=Ee,Oe=me),ye.indexOf("across")!==-1){var ze=Q._counterDomainMin,Fe=Q._counterDomainMax;Q.anchor==="free"&&(ze=Math.min(ze,Q.position),Fe=Math.max(Fe,Q.position)),Te=ae.l+ze*ae.w,Oe=ae.l+Fe*ae.w}ee.insert("line",":first-child").attr({x1:Te,x2:Oe,y1:_e,y2:_e,"stroke-width":Me,stroke:ke,"stroke-dasharray":m.dashStyle(Q.spikedash,Me)}).classed("spikeline",!0).classed("crisp",!0),ee.insert("line",":first-child").attr({x1:Te,x2:Oe,y1:_e,y2:_e,"stroke-width":Me+2,stroke:fe}).classed("spikeline",!0).classed("crisp",!0)}ye.indexOf("marker")!==-1&&ee.insert("circle",":first-child").attr({cx:Ee+(Q.side!=="right"?Me:-Me),cy:_e,r:Me,fill:ke}).classed("spikeline",!0)}if(ge){var Ve,Ke,Re=$.vLinePoint;H=Re&&Re.xa,Q=Re&&Re.ya,H.spikesnap==="cursor"?(Ve=ue.pointerX,Ke=ue.pointerY):(Ve=H._offset+Re.x,Ke=Q._offset+Re.y);var qe,We,Ye=u.readability(Re.color,fe)<1.5?g.contrast(fe):Re.color,nt=H.spikemode,ft=H.spikethickness,vt=H.spikecolor||Ye,Pt=v.getPxPosition(q,H);if(nt.indexOf("toaxis")!==-1||nt.indexOf("across")!==-1){if(nt.indexOf("toaxis")!==-1&&(qe=Pt,We=Ke),nt.indexOf("across")!==-1){var At=H._counterDomainMin,at=H._counterDomainMax;H.anchor==="free"&&(At=Math.min(At,H.position),at=Math.max(at,H.position)),qe=ae.t+(1-at)*ae.h,We=ae.t+(1-At)*ae.h}ee.insert("line",":first-child").attr({x1:Ve,x2:Ve,y1:qe,y2:We,"stroke-width":ft,stroke:vt,"stroke-dasharray":m.dashStyle(H.spikedash,ft)}).classed("spikeline",!0).classed("crisp",!0),ee.insert("line",":first-child").attr({x1:Ve,x2:Ve,y1:qe,y2:We,"stroke-width":ft+2,stroke:fe}).classed("spikeline",!0).classed("crisp",!0)}nt.indexOf("marker")!==-1&&ee.insert("circle",":first-child").attr({cx:Ve,cy:Pt-(H.side!=="top"?ft:-ft),r:ft,fill:vt}).classed("spikeline",!0)}}}function K(q,$){return!$||$.vLinePoint!==q._spikepoints.vLinePoint||$.hLinePoint!==q._spikepoints.hLinePoint}function te(q,$){return d.plainText(q||"",{len:$,allowedTags:["br","sub","sup","b","i","em"]})}function Y(q,$,ne){var H=$[q+"a"],Q=$[q+"Val"],ee=$.cd[0];if(H.type==="category")Q=H._categoriesMap[Q];else if(H.type==="date"){var ie=$.trace[q+"periodalignment"];if(ie){var ae=$.cd[$.index],ue=ae[q+"Start"];ue===void 0&&(ue=ae[q]);var le=ae[q+"End"];le===void 0&&(le=ae[q]);var ge=le-ue;ie==="end"?Q+=ge:ie==="middle"&&(Q+=ge/2)}Q=H.d2c(Q)}return ee&&ee.t&&ee.t.posLetter===H._id&&(ne.boxmode!=="group"&&ne.violinmode!=="group"||(Q+=ee.t.dPos)),Q}function Z(q){return q.offsetTop+q.clientTop}function re(q){return q.offsetLeft+q.clientLeft}function U(q,$){var ne=q._fullLayout,H=$.getBoundingClientRect(),Q=H.x,ee=H.y,ie=Q+H.width,ae=ee+H.height,ue=c.apply3DTransform(ne._invTransform)(Q,ee),le=c.apply3DTransform(ne._invTransform)(ie,ae),ge=ue[0],fe=ue[1],me=le[0],_e=le[1];return{x:ge,y:fe,width:me-ge,height:_e-fe,top:Math.min(fe,_e),left:Math.min(ge,me),right:Math.max(ge,me),bottom:Math.max(fe,_e)}}},{"../../lib":503,"../../lib/events":492,"../../lib/override_cursor":514,"../../lib/svg_text_utils":529,"../../plots/cartesian/axes":554,"../../registry":638,"../color":366,"../dragelement":385,"../drawing":388,"../legend/defaults":418,"../legend/draw":419,"./constants":400,"./helpers":402,"@plotly/d3":58,"fast-isnumeric":190,tinycolor2:312}],404:[function(e,o,f){var r=e("../../lib"),a=e("../color"),u=e("./helpers").isUnifiedHover;o.exports=function(c,i,s,l){l=l||{};var d=i.legend;function h(m){l.font[m]||(l.font[m]=d?i.legend.font[m]:i.font[m])}i&&u(i.hovermode)&&(l.font||(l.font={}),h("size"),h("family"),h("color"),d?(l.bgcolor||(l.bgcolor=a.combine(i.legend.bgcolor,i.paper_bgcolor)),l.bordercolor||(l.bordercolor=i.legend.bordercolor)):l.bgcolor||(l.bgcolor=i.paper_bgcolor)),s("hoverlabel.bgcolor",l.bgcolor),s("hoverlabel.bordercolor",l.bordercolor),s("hoverlabel.namelength",l.namelength),r.coerceFont(s,"hoverlabel.font",l.font),s("hoverlabel.align",l.align)}},{"../../lib":503,"../color":366,"./helpers":402}],405:[function(e,o,f){var r=e("../../lib"),a=e("./layout_attributes");o.exports=function(u,c){function i(s,l){return c[s]!==void 0?c[s]:r.coerce(u,c,a,s,l)}return i("clickmode"),i("hovermode")}},{"../../lib":503,"./layout_attributes":407}],406:[function(e,o,f){var r=e("@plotly/d3"),a=e("../../lib"),u=e("../dragelement"),c=e("./helpers"),i=e("./layout_attributes"),s=e("./hover");o.exports={moduleType:"component",name:"fx",constants:e("./constants"),schema:{layout:i},attributes:e("./attributes"),layoutAttributes:i,supplyLayoutGlobalDefaults:e("./layout_global_defaults"),supplyDefaults:e("./defaults"),supplyLayoutDefaults:e("./layout_defaults"),calc:e("./calc"),getDistanceFunction:c.getDistanceFunction,getClosest:c.getClosest,inbox:c.inbox,quadrature:c.quadrature,appendArrayPointValue:c.appendArrayPointValue,castHoverOption:function(l,d,h){return a.castOption(l,d,"hoverlabel."+h)},castHoverinfo:function(l,d,h){return a.castOption(l,h,"hoverinfo",function(m){return a.coerceHoverinfo({hoverinfo:m},{_module:l._module},d)})},hover:s.hover,unhover:u.unhover,loneHover:s.loneHover,loneUnhover:function(l){var d=a.isD3Selection(l)?l:r.select(l);d.selectAll("g.hovertext").remove(),d.selectAll(".spikeline").remove()},click:e("./click")}},{"../../lib":503,"../dragelement":385,"./attributes":397,"./calc":398,"./click":399,"./constants":400,"./defaults":401,"./helpers":402,"./hover":403,"./layout_attributes":407,"./layout_defaults":408,"./layout_global_defaults":409,"@plotly/d3":58}],407:[function(e,o,f){var r=e("./constants"),a=e("../../plots/font_attributes"),u=a({editType:"none"});u.family.dflt=r.HOVERFONT,u.size.dflt=r.HOVERFONTSIZE,o.exports={clickmode:{valType:"flaglist",flags:["event","select"],dflt:"event",editType:"plot",extras:["none"]},dragmode:{valType:"enumerated",values:["zoom","pan","select","lasso","drawclosedpath","drawopenpath","drawline","drawrect","drawcircle","orbit","turntable",!1],dflt:"zoom",editType:"modebar"},hovermode:{valType:"enumerated",values:["x","y","closest",!1,"x unified","y unified"],dflt:"closest",editType:"modebar"},hoverdistance:{valType:"integer",min:-1,dflt:20,editType:"none"},spikedistance:{valType:"integer",min:-1,dflt:-1,editType:"none"},hoverlabel:{bgcolor:{valType:"color",editType:"none"},bordercolor:{valType:"color",editType:"none"},font:u,grouptitlefont:a({editType:"none"}),align:{valType:"enumerated",values:["left","right","auto"],dflt:"auto",editType:"none"},namelength:{valType:"integer",min:-1,dflt:15,editType:"none"},editType:"none"},selectdirection:{valType:"enumerated",values:["h","v","d","any"],dflt:"any",editType:"none"}}},{"../../plots/font_attributes":585,"./constants":400}],408:[function(e,o,f){var r=e("../../lib"),a=e("./layout_attributes"),u=e("./hovermode_defaults"),c=e("./hoverlabel_defaults");o.exports=function(i,s){function l(g,p){return r.coerce(i,s,a,g,p)}u(i,s)&&(l("hoverdistance"),l("spikedistance")),l("dragmode")==="select"&&l("selectdirection");var d=s._has("mapbox"),h=s._has("geo"),m=s._basePlotModules.length;s.dragmode==="zoom"&&((d||h)&&m===1||d&&h&&m===2)&&(s.dragmode="pan"),c(i,s,l),r.coerceFont(l,"hoverlabel.grouptitlefont",s.hoverlabel.font)}},{"../../lib":503,"./hoverlabel_defaults":404,"./hovermode_defaults":405,"./layout_attributes":407}],409:[function(e,o,f){var r=e("../../lib"),a=e("./hoverlabel_defaults"),u=e("./layout_attributes");o.exports=function(c,i){a(c,i,function(s,l){return r.coerce(c,i,u,s,l)})}},{"../../lib":503,"./hoverlabel_defaults":404,"./layout_attributes":407}],410:[function(e,o,f){var r=e("../../lib"),a=e("../../lib/regex").counter,u=e("../../plots/domain").attributes,c=e("../../plots/cartesian/constants").idRegex,i=e("../../plot_api/plot_template"),s={rows:{valType:"integer",min:1,editType:"plot"},roworder:{valType:"enumerated",values:["top to bottom","bottom to top"],dflt:"top to bottom",editType:"plot"},columns:{valType:"integer",min:1,editType:"plot"},subplots:{valType:"info_array",freeLength:!0,dimensions:2,items:{valType:"enumerated",values:[a("xy").toString(),""],editType:"plot"},editType:"plot"},xaxes:{valType:"info_array",freeLength:!0,items:{valType:"enumerated",values:[c.x.toString(),""],editType:"plot"},editType:"plot"},yaxes:{valType:"info_array",freeLength:!0,items:{valType:"enumerated",values:[c.y.toString(),""],editType:"plot"},editType:"plot"},pattern:{valType:"enumerated",values:["independent","coupled"],dflt:"coupled",editType:"plot"},xgap:{valType:"number",min:0,max:1,editType:"plot"},ygap:{valType:"number",min:0,max:1,editType:"plot"},domain:u({name:"grid",editType:"plot",noGridCell:!0},{}),xside:{valType:"enumerated",values:["bottom","bottom plot","top plot","top"],dflt:"bottom plot",editType:"plot"},yside:{valType:"enumerated",values:["left","left plot","right plot","right"],dflt:"left plot",editType:"plot"},editType:"plot"};function l(m,g,p){var v=g[p+"axes"],y=Object.keys((m._splomAxes||{})[p]||{});return Array.isArray(v)?v:y.length?y:void 0}function d(m,g,p,v,y,x){var w=g(m+"gap",p),k=g("domain."+m);g(m+"side",v);for(var b=new Array(y),T=k[0],_=(k[1]-T)/(y-w),M=_*(1-w),A=0;A1){!k&&!b&&!T&&L("pattern")==="independent"&&(k=!0),M._hasSubplotGrid=k;var E,D,O=L("roworder")==="top to bottom",R=k?.2:.1,z=k?.3:.1;_&&g._splomGridDflt&&(E=g._splomGridDflt.xside,D=g._splomGridDflt.yside),M._domains={x:d("x",L,R,E,S),y:d("y",L,z,D,A,O)}}else delete g.grid}function L(P,N){return r.coerce(p,M,s,P,N)}},contentDefaults:function(m,g){var p=g.grid;if(p&&p._domains){var v,y,x,w,k,b,T,_=m.grid||{},M=g._subplots,A=p._hasSubplotGrid,S=p.rows,E=p.columns,D=p.pattern==="independent",O=p._axisMap={};if(A){var R=_.subplots||[];b=p.subplots=new Array(S);var z=1;for(v=0;v1);if(A===!1&&(h.legend=void 0),(A!==!1||p.uirevision)&&(y("uirevision",h.uirevision),A!==!1)){y("bgcolor",h.paper_bgcolor),y("bordercolor"),y("borderwidth");var S,E,D,O=a.coerceFont(y,"font",h.font),R=y("orientation")==="h";if(R?(S=0,r.getComponentMethod("rangeslider","isVisible")(d.xaxis)?(E=1.1,D="bottom"):(E=-.1,D="top")):(S=1.02,E=1,D="auto"),y("traceorder",_),l.isGrouped(h.legend)&&y("tracegroupgap"),y("itemsizing"),y("itemwidth"),y("itemclick"),y("itemdoubleclick"),y("groupclick"),y("x",S),y("xanchor"),y("y",E),y("yanchor",D),y("valign"),a.noneOrAll(p,v,["x","y"]),y("title.text")){y("title.side",R?"left":"top");var z=a.extendFlat({},O,{size:a.bigFont(O.size)});a.coerceFont(y,"title.font",z)}}}},{"../../lib":503,"../../plot_api/plot_template":543,"../../plots/attributes":550,"../../plots/layout_attributes":610,"../../registry":638,"./attributes":416,"./helpers":422}],419:[function(e,o,f){var r=e("@plotly/d3"),a=e("../../lib"),u=e("../../plots/plots"),c=e("../../registry"),i=e("../../lib/events"),s=e("../dragelement"),l=e("../drawing"),d=e("../color"),h=e("../../lib/svg_text_utils"),m=e("./handle_click"),g=e("./constants"),p=e("../../constants/alignment"),v=p.LINE_SPACING,y=p.FROM_TL,x=p.FROM_BR,w=e("./get_legend_data"),k=e("./style"),b=e("./helpers");function T(O,R,z,L,P){var N=z.data()[0][0].trace,B={event:P,node:z.node(),curveNumber:N.index,expandedIndex:N._expandedIndex,data:O.data,layout:O.layout,frames:O._transitionData._frames,config:O._context,fullData:O._fullData,fullLayout:O._fullLayout};N._group&&(B.group=N._group),c.traceIs(N,"pie-like")&&(B.label=z.datum()[0].label),i.triggerHandler(O,"plotly_legendclick",B)!==!1&&(L===1?R._clickTimeout=setTimeout(function(){O._fullLayout&&m(z,O,L)},O._context.doubleClickDelay):L===2&&(R._clickTimeout&&clearTimeout(R._clickTimeout),O._legendMouseDownTime=0,i.triggerHandler(O,"plotly_legenddoubleclick",B)!==!1&&m(z,O,L)))}function _(O,R,z){var L,P,N=O.data()[0][0],B=N.trace,G=c.traceIs(B,"pie-like"),W=!z._inHover&&R._context.edits.legendText&&!G,K=z._maxNameLength;N.groupTitle?(L=N.groupTitle.text,P=N.groupTitle.font):(P=z.font,z.entries?L=N.text:(L=G?N.label:B.name,B._meta&&(L=a.templateString(L,B._meta))));var te=a.ensureSingle(O,"text","legendtext");te.attr("text-anchor","start").call(l.font,P).text(W?M(L,K):L);var Y=z.itemwidth+2*g.itemGap;h.positionText(te,Y,0),W?te.call(h.makeEditable,{gd:R,text:L}).call(S,O,R,z).on("edit",function(Z){this.text(M(Z,K)).call(S,O,R,z);var re=N.trace._fullInput||{},U={};if(c.hasTransform(re,"groupby")){var q=c.getTransformIndices(re,"groupby"),$=q[q.length-1],ne=a.keyedContainer(re,"transforms["+$+"].styles","target","value.name");ne.set(N.trace._group,Z),U=ne.constructUpdate()}else U.name=Z;return c.call("_guiRestyle",R,U,B.index)}):S(te,O,R,z)}function M(O,R){var z=Math.max(4,R);if(O&&O.trim().length>=z/2)return O;for(var L=z-(O=O||"").length;L>0;L--)O+=" ";return O}function A(O,R){var z,L=R._context.doubleClickDelay,P=1,N=a.ensureSingle(O,"rect","legendtoggle",function(B){R._context.staticPlot||B.style("cursor","pointer").attr("pointer-events","all"),B.call(d.fill,"rgba(0,0,0,0)")});R._context.staticPlot||(N.on("mousedown",function(){(z=new Date().getTime())-R._legendMouseDownTimeL&&(P=Math.max(P-1,1)),T(R,B,O,P,r.event)}}))}function S(O,R,z,L,P){L._inHover&&O.attr("data-notex",!0),h.convertToTspans(O,z,function(){(function(N,B,G,W){var K=N.data()[0][0];if(!G._inHover&&K&&!K.trace.showlegend)return void N.remove();var te=N.select("g[class*=math-group]"),Y=te.node();G||(G=B._fullLayout.legend);var Z,re=G.borderwidth;Z=W===1?G.title.font:K.groupTitle?K.groupTitle.font:G.font;var U,q,$=Z.size*v;if(Y){var ne=l.bBox(Y);U=ne.height,q=ne.width,W===1?l.setTranslate(te,re,re+.75*U):l.setTranslate(te,0,.25*U)}else{var H=N.select(W===1?".legendtitletext":".legendtext"),Q=h.lineCount(H),ee=H.node();if(U=$*Q,q=ee?l.bBox(ee).width:0,W===1)G.title.side==="left"&&(q+=2*g.itemGap),h.positionText(H,re+g.titlePad,re+$);else{var ie=2*g.itemGap+G.itemwidth;K.groupTitle&&(ie=g.itemGap,q-=G.itemwidth),h.positionText(H,ie,-$*((Q-1)/2-.3))}}W===1?(G._titleWidth=q,G._titleHeight=U):(K.lineHeight=$,K.height=Math.max(U,16)+3,K.width=q)})(R,z,L,P)})}function E(O){return a.isRightAnchor(O)?"right":a.isCenterAnchor(O)?"center":"left"}function D(O){return a.isBottomAnchor(O)?"bottom":a.isMiddleAnchor(O)?"middle":"top"}o.exports=function(O,R){return R||(R=O._fullLayout.legend||{}),function(z,L){var P,N,B=z._fullLayout,G="legend"+B._uid,W=L._inHover;if(W?(P=L.layer,G+="-hover"):P=B._infolayer,!!P){if(z._legendMouseDownTime||(z._legendMouseDownTime=0),W){if(!L.entries)return;N=w(L.entries,L)}else{if(!z.calcdata)return;N=B.showlegend&&w(z.calcdata,L)}var K=B.hiddenlabels||[];if(!(W||B.showlegend&&N.length))return P.selectAll(".legend").remove(),B._topdefs.select("#"+G).remove(),u.autoMargin(z,"legend");var te=a.ensureSingle(P,"g","legend",function(Q){W||Q.attr("pointer-events","all")}),Y=a.ensureSingleById(B._topdefs,"clipPath",G,function(Q){Q.append("rect")}),Z=a.ensureSingle(te,"rect","bg",function(Q){Q.attr("shape-rendering","crispEdges")});Z.call(d.stroke,L.bordercolor).call(d.fill,L.bgcolor).style("stroke-width",L.borderwidth+"px");var re=a.ensureSingle(te,"g","scrollbox"),U=L.title;if(L._titleWidth=0,L._titleHeight=0,U.text){var q=a.ensureSingle(re,"text","legendtitletext");q.attr("text-anchor","start").call(l.font,U.font).text(U.text),S(q,re,z,L,1)}else re.selectAll(".legendtitletext").remove();var $=a.ensureSingle(te,"rect","scrollbar",function(Q){Q.attr(g.scrollBarEnterAttrs).call(d.fill,g.scrollBarColor)}),ne=re.selectAll("g.groups").data(N);ne.enter().append("g").attr("class","groups"),ne.exit().remove();var H=ne.selectAll("g.traces").data(a.identity);H.enter().append("g").attr("class","traces"),H.exit().remove(),H.style("opacity",function(Q){var ee=Q[0].trace;return c.traceIs(ee,"pie-like")?K.indexOf(Q[0].label)!==-1?.5:1:ee.visible==="legendonly"?.5:1}).each(function(){r.select(this).call(_,z,L)}).call(k,z,L).each(function(){W||r.select(this).call(A,z)}),a.syncOrAsync([u.previousPromises,function(){return function(Q,ee,ie,ae){var ue=Q._fullLayout;ae||(ae=ue.legend);var le=ue._size,ge=b.isVertical(ae),fe=b.isGrouped(ae),me=ae.borderwidth,_e=2*me,we=g.itemGap,Te=ae.itemwidth+2*we,Oe=2*(me+we),de=D(ae),ye=ae.y<0||ae.y===0&&de==="top",Me=ae.y>1||ae.y===1&&de==="bottom",ke=ae.tracegroupgap;ae._maxHeight=Math.max(ye||Me?ue.height/2:le.h,30);var Ee=0;ae._width=0,ae._height=0;var ze=function(Tt){var dt=0,Pe=0,Ie=Tt.title.side;return Ie&&(Ie.indexOf("left")!==-1&&(dt=Tt._titleWidth),Ie.indexOf("top")!==-1&&(Pe=Tt._titleHeight)),[dt,Pe]}(ae);if(ge)ie.each(function(Tt){var dt=Tt[0].height;l.setTranslate(this,me+ze[0],me+ze[1]+ae._height+dt/2+we),ae._height+=dt,ae._width=Math.max(ae._width,Tt[0].width)}),Ee=Te+ae._width,ae._width+=we+Te+_e,ae._height+=Oe,fe&&(ee.each(function(Tt,dt){l.setTranslate(this,0,dt*ae.tracegroupgap)}),ae._height+=(ae._lgroupsLength-1)*ae.tracegroupgap);else{var Fe=E(ae),Ve=ae.x<0||ae.x===0&&Fe==="right",Ke=ae.x>1||ae.x===1&&Fe==="left",Re=Me||ye,qe=ue.width/2;ae._maxWidth=Math.max(Ve?Re&&Fe==="left"?le.l+le.w:qe:Ke?Re&&Fe==="right"?le.r+le.w:qe:le.w,2*Te);var We=0,Ye=0;ie.each(function(Tt){var dt=Tt[0].width+Te;We=Math.max(We,dt),Ye+=dt}),Ee=null;var nt=0;if(fe){var ft=0,vt=0,Pt=0;ee.each(function(){var Tt=0,dt=0;r.select(this).selectAll("g.traces").each(function(Ie){var Ae=Ie[0].width,De=Ie[0].height;l.setTranslate(this,ze[0],ze[1]+me+we+De/2+dt),dt+=De,Tt=Math.max(Tt,Te+Ae)});var Pe=Tt+we;vt>0&&Pe+me+vt>ae._maxWidth?(nt=Math.max(nt,vt),vt=0,Pt+=ft+ke,ft=dt):ft=Math.max(ft,dt),l.setTranslate(this,vt,Pt),vt+=Pe}),ae._width=Math.max(nt,vt)+me,ae._height=Pt+ft+Oe}else{var At=ie.size(),at=Ye+_e+(At-1)*we=ae._maxWidth&&(nt=Math.max(nt,Jt),Ot=0,Wt+=et,ae._height+=et,et=0),l.setTranslate(this,ze[0]+me+Ot,ze[1]+me+Wt+dt/2+we),Jt=Ot+Pe+we,Ot+=Ie,et=Math.max(et,dt)}),at?(ae._width=Ot+_e,ae._height=et+Oe):(ae._width=Math.max(nt,Jt)+_e,ae._height+=et+Oe)}}ae._width=Math.ceil(Math.max(ae._width+ze[0],ae._titleWidth+2*(me+g.titlePad))),ae._height=Math.ceil(Math.max(ae._height+ze[1],ae._titleHeight+2*(me+g.itemGap))),ae._effHeight=Math.min(ae._height,ae._maxHeight);var Be=Q._context.edits,Ge=Be.legendText||Be.legendPosition;ie.each(function(Tt){var dt=r.select(this).select(".legendtoggle"),Pe=Tt[0].height,Ie=Ge?Te:Ee||Te+Tt[0].width;ge||(Ie+=we/2),l.setRect(dt,0,-Pe/2,Ie,Pe)})}(z,ne,H,L)},function(){var Q,ee,ie,ae,ue=B._size,le=L.borderwidth;if(!W){if(function(Re){var qe=Re._fullLayout.legend,We=E(qe),Ye=D(qe);return u.autoMargin(Re,"legend",{x:qe.x,y:qe.y,l:qe._width*y[We],r:qe._width*x[We],b:qe._effHeight*x[Ye],t:qe._effHeight*y[Ye]})}(z))return;var ge=ue.l+ue.w*L.x-y[E(L)]*L._width,fe=ue.t+ue.h*(1-L.y)-y[D(L)]*L._effHeight;if(B.margin.autoexpand){var me=ge,_e=fe;ge=a.constrain(ge,0,B.width-L._width),fe=a.constrain(fe,0,B.height-L._effHeight),ge!==me&&a.log("Constrain legend.x to make legend fit inside graph"),fe!==_e&&a.log("Constrain legend.y to make legend fit inside graph")}l.setTranslate(te,ge,fe)}if($.on(".drag",null),te.on("wheel",null),W||L._height<=L._maxHeight||z._context.staticPlot){var we=L._effHeight;W&&(we=L._height),Z.attr({width:L._width-le,height:we-le,x:le/2,y:le/2}),l.setTranslate(re,0,0),Y.select("rect").attr({width:L._width-2*le,height:we-2*le,x:le,y:le}),l.setClipUrl(re,G,z),l.setRect($,0,0,0,0),delete L._scrollY}else{var Te,Oe,de,ye=Math.max(g.scrollBarMinHeight,L._effHeight*L._effHeight/L._height),Me=L._effHeight-ye-2*g.scrollBarMargin,ke=L._height-L._effHeight,Ee=Me/ke,ze=Math.min(L._scrollY||0,ke);Z.attr({width:L._width-2*le+g.scrollBarWidth+g.scrollBarMargin,height:L._effHeight-le,x:le/2,y:le/2}),Y.select("rect").attr({width:L._width-2*le+g.scrollBarWidth+g.scrollBarMargin,height:L._effHeight-2*le,x:le,y:le+ze}),l.setClipUrl(re,G,z),Ke(ze,ye,Ee),te.on("wheel",function(){Ke(ze=a.constrain(L._scrollY+r.event.deltaY/Me*ke,0,ke),ye,Ee),ze!==0&&ze!==ke&&r.event.preventDefault()});var Fe=r.behavior.drag().on("dragstart",function(){var Re=r.event.sourceEvent;Te=Re.type==="touchstart"?Re.changedTouches[0].clientY:Re.clientY,de=ze}).on("drag",function(){var Re=r.event.sourceEvent;Re.buttons===2||Re.ctrlKey||(Oe=Re.type==="touchmove"?Re.changedTouches[0].clientY:Re.clientY,Ke(ze=function(qe,We,Ye){var nt=(Ye-We)/Ee+qe;return a.constrain(nt,0,ke)}(de,Te,Oe),ye,Ee))});$.call(Fe);var Ve=r.behavior.drag().on("dragstart",function(){var Re=r.event.sourceEvent;Re.type==="touchstart"&&(Te=Re.changedTouches[0].clientY,de=ze)}).on("drag",function(){var Re=r.event.sourceEvent;Re.type==="touchmove"&&(Oe=Re.changedTouches[0].clientY,Ke(ze=function(qe,We,Ye){var nt=(We-Ye)/Ee+qe;return a.constrain(nt,0,ke)}(de,Te,Oe),ye,Ee))});re.call(Ve)}function Ke(Re,qe,We){L._scrollY=z._fullLayout.legend._scrollY=Re,l.setTranslate(re,0,-Re),l.setRect($,L._width,g.scrollBarMargin+Re*We,g.scrollBarWidth,qe),Y.select("rect").attr("y",le+Re)}z._context.edits.legendPosition&&(te.classed("cursor-move",!0),s.init({element:te.node(),gd:z,prepFn:function(){var Re=l.getTranslate(te);ie=Re.x,ae=Re.y},moveFn:function(Re,qe){var We=ie+Re,Ye=ae+qe;l.setTranslate(te,We,Ye),Q=s.align(We,0,ue.l,ue.l+ue.w,L.xanchor),ee=s.align(Ye,0,ue.t+ue.h,ue.t,L.yanchor)},doneFn:function(){Q!==void 0&&ee!==void 0&&c.call("_guiRelayout",z,{"legend.x":Q,"legend.y":ee})},clickFn:function(Re,qe){var We=P.selectAll("g.traces").filter(function(){var Ye=this.getBoundingClientRect();return qe.clientX>=Ye.left&&qe.clientX<=Ye.right&&qe.clientY>=Ye.top&&qe.clientY<=Ye.bottom});We.size()>0&&T(z,te,We,Re,qe)}}))}],z)}}(O,R)}},{"../../constants/alignment":471,"../../lib":503,"../../lib/events":492,"../../lib/svg_text_utils":529,"../../plots/plots":619,"../../registry":638,"../color":366,"../dragelement":385,"../drawing":388,"./constants":417,"./get_legend_data":420,"./handle_click":421,"./helpers":422,"./style":424,"@plotly/d3":58}],420:[function(e,o,f){var r=e("../../registry"),a=e("./helpers");o.exports=function(u,c){var i,s,l=c._inHover,d=a.isGrouped(c),h=a.isReversed(c),m={},g=[],p=!1,v={},y=0,x=0;function w(B,G){if(B!==""&&a.isGrouped(c))g.indexOf(B)===-1?(g.push(B),p=!0,m[B]=[G]):m[B].push(G);else{var W="~~i"+y;g.push(W),m[W]=[G],y++}}for(i=0;iO&&(D=O)}S[i][0]._groupMinRank=D,S[i][0]._preGroupSort=i}var R=function(B,G){return B.trace.legendrank-G.trace.legendrank||B._preSort-G._preSort};for(S.forEach(function(B,G){B[0]._preGroupSort=G}),S.sort(function(B,G){return B[0]._groupMinRank-G[0]._groupMinRank||B[0]._preGroupSort-G[0]._preGroupSort}),i=0;ik?k:x}o.exports=function(x,w,k){var b=w._fullLayout;k||(k=b.legend);var T=k.itemsizing==="constant",_=k.itemwidth,M=(_+2*g.itemGap)/2,A=c(M,0),S=function(O,R,z,L){var P;if(O+1)P=O;else{if(!(R&&R.width>0))return 0;P=R.width}return T?L:Math.min(P,z)};function E(O,R,z){var L=O[0].trace,P=L.marker||{},N=P.line||{},B=z?L.visible&&L.type===z:a.traceIs(L,"bar"),G=r.select(R).select("g.legendpoints").selectAll("path.legend"+z).data(B?[O]:[]);G.enter().append("path").classed("legend"+z,!0).attr("d","M6,6H-6V-6H6Z").attr("transform",A),G.exit().remove(),G.each(function(W){var K=r.select(this),te=W[0],Y=S(te.mlw,P.line,5,2);K.style("stroke-width",Y+"px");var Z=te.mcc;if(!k._inHover&&"mc"in te){var re=l(P),U=re.mid;U===void 0&&(U=(re.max+re.min)/2),Z=i.tryColorscale(P,"")(U)}var q=Z||te.mc||P.color,$=P.pattern,ne=$&&i.getPatternAttr($.shape,0,"");if(ne){var H=i.getPatternAttr($.bgcolor,0,null),Q=i.getPatternAttr($.fgcolor,0,null),ee=$.fgopacity,ie=y($.size,8,10),ae=y($.solidity,.5,1),ue="legend-"+L.uid;K.call(i.pattern,"legend",w,ue,ne,ie,ae,Z,$.fillmode,H,Q,ee)}else K.call(s.fill,q);Y&&s.stroke(K,te.mlc||N.color)})}function D(O,R,z){var L=O[0],P=L.trace,N=z?P.visible&&P.type===z:a.traceIs(P,z),B=r.select(R).select("g.legendpoints").selectAll("path.legend"+z).data(N?[O]:[]);if(B.enter().append("path").classed("legend"+z,!0).attr("d","M6,6H-6V-6H6Z").attr("transform",A),B.exit().remove(),B.size()){var G=(P.marker||{}).line,W=S(m(G.width,L.pts),G,5,2),K=u.minExtend(P,{marker:{line:{width:W}}});K.marker.line.color=G.color;var te=u.minExtend(L,{trace:K});h(B,te,K)}}x.each(function(O){var R=r.select(this),z=u.ensureSingle(R,"g","layers");z.style("opacity",O[0].trace.opacity);var L=k.valign,P=O[0].lineHeight,N=O[0].height;if(L!=="middle"&&P&&N){var B={top:1,bottom:-1}[L]*(.5*(P-N+3));z.attr("transform",c(0,B))}else z.attr("transform",null);z.selectAll("g.legendfill").data([O]).enter().append("g").classed("legendfill",!0),z.selectAll("g.legendlines").data([O]).enter().append("g").classed("legendlines",!0);var G=z.selectAll("g.legendsymbols").data([O]);G.enter().append("g").classed("legendsymbols",!0),G.selectAll("g.legendpoints").data([O]).enter().append("g").classed("legendpoints",!0)}).each(function(O){var R,z=O[0].trace,L=[];if(z.visible)switch(z.type){case"histogram2d":case"heatmap":L=[["M-15,-2V4H15V-2Z"]],R=!0;break;case"choropleth":case"choroplethmapbox":L=[["M-6,-6V6H6V-6Z"]],R=!0;break;case"densitymapbox":L=[["M-6,0 a6,6 0 1,0 12,0 a 6,6 0 1,0 -12,0"]],R="radial";break;case"cone":L=[["M-6,2 A2,2 0 0,0 -6,6 V6L6,4Z"],["M-6,-6 A2,2 0 0,0 -6,-2 L6,-4Z"],["M-6,-2 A2,2 0 0,0 -6,2 L6,0Z"]],R=!1;break;case"streamtube":L=[["M-6,2 A2,2 0 0,0 -6,6 H6 A2,2 0 0,1 6,2 Z"],["M-6,-6 A2,2 0 0,0 -6,-2 H6 A2,2 0 0,1 6,-6 Z"],["M-6,-2 A2,2 0 0,0 -6,2 H6 A2,2 0 0,1 6,-2 Z"]],R=!1;break;case"surface":L=[["M-6,-6 A2,3 0 0,0 -6,0 H6 A2,3 0 0,1 6,-6 Z"],["M-6,1 A2,3 0 0,1 -6,6 H6 A2,3 0 0,0 6,0 Z"]],R=!0;break;case"mesh3d":L=[["M-6,6H0L-6,-6Z"],["M6,6H0L6,-6Z"],["M-6,-6H6L0,6Z"]],R=!1;break;case"volume":L=[["M-6,6H0L-6,-6Z"],["M6,6H0L6,-6Z"],["M-6,-6H6L0,6Z"]],R=!0;break;case"isosurface":L=[["M-6,6H0L-6,-6Z"],["M6,6H0L6,-6Z"],["M-6,-6 A12,24 0 0,0 6,-6 L0,6Z"]],R=!1}var P=r.select(this).select("g.legendpoints").selectAll("path.legend3dandfriends").data(L);P.enter().append("path").classed("legend3dandfriends",!0).attr("transform",A).style("stroke-miterlimit",1),P.exit().remove(),P.each(function(N,B){var G,W=r.select(this),K=l(z),te=K.colorscale,Y=K.reversescale;if(te){if(!R){var Z=te.length;G=B===0?te[Y?Z-1:0][1]:B===1?te[Y?0:Z-1][1]:te[Math.floor((Z-1)/2)][1]}}else{var re=z.vertexcolor||z.facecolor||z.color;G=u.isArrayOrTypedArray(re)?re[B]||re[0]:re}W.attr("d",N[0]),G?W.call(s.fill,G):W.call(function(U){if(U.size()){var q="legendfill-"+z.uid;i.gradient(U,w,q,p(Y,R==="radial"),te,"fill")}})})}).each(function(O){var R=O[0].trace,z=R.type==="waterfall";if(O[0]._distinct&&z){var L=O[0].trace[O[0].dir].marker;return O[0].mc=L.color,O[0].mlw=L.line.width,O[0].mlc=L.line.color,E(O,this,"waterfall")}var P=[];R.visible&&z&&(P=O[0].hasTotals?[["increasing","M-6,-6V6H0Z"],["totals","M6,6H0L-6,-6H-0Z"],["decreasing","M6,6V-6H0Z"]]:[["increasing","M-6,-6V6H6Z"],["decreasing","M6,6V-6H-6Z"]]);var N=r.select(this).select("g.legendpoints").selectAll("path.legendwaterfall").data(P);N.enter().append("path").classed("legendwaterfall",!0).attr("transform",A).style("stroke-miterlimit",1),N.exit().remove(),N.each(function(B){var G=r.select(this),W=R[B[0]].marker,K=S(void 0,W.line,5,2);G.attr("d",B[1]).style("stroke-width",K+"px").call(s.fill,W.color),K&&G.call(s.stroke,W.line.color)})}).each(function(O){E(O,this,"funnel")}).each(function(O){E(O,this)}).each(function(O){var R=O[0].trace,z=r.select(this).select("g.legendpoints").selectAll("path.legendbox").data(R.visible&&a.traceIs(R,"box-violin")?[O]:[]);z.enter().append("path").classed("legendbox",!0).attr("d","M6,6H-6V-6H6Z").attr("transform",A),z.exit().remove(),z.each(function(){var L=r.select(this);if(R.boxpoints!=="all"&&R.points!=="all"||s.opacity(R.fillcolor)!==0||s.opacity((R.line||{}).color)!==0){var P=S(void 0,R.line,5,2);L.style("stroke-width",P+"px").call(s.fill,R.fillcolor),P&&s.stroke(L,R.line.color)}else{var N=u.minExtend(R,{marker:{size:T?12:u.constrain(R.marker.size,2,16),sizeref:1,sizemin:1,sizemode:"diameter"}});z.call(i.pointStyle,N,w)}})}).each(function(O){D(O,this,"funnelarea")}).each(function(O){D(O,this,"pie")}).each(function(O){var R,z,L=v(O),P=L.showFill,N=L.showLine,B=L.showGradientLine,G=L.showGradientFill,W=L.anyFill,K=L.anyLine,te=O[0],Y=te.trace,Z=l(Y),re=Z.colorscale,U=Z.reversescale,q=d.hasMarkers(Y)||!W?"M5,0":K?"M5,-2":"M5,-3",$=r.select(this),ne=$.select(".legendfill").selectAll("path").data(P||G?[O]:[]);if(ne.enter().append("path").classed("js-fill",!0),ne.exit().remove(),ne.attr("d",q+"h"+_+"v6h-"+_+"z").call(function(ee){if(ee.size())if(P)i.fillGroupStyle(ee,w);else{var ie="legendfill-"+Y.uid;i.gradient(ee,w,ie,p(U),re,"fill")}}),N||B){var H=S(void 0,Y.line,10,5);z=u.minExtend(Y,{line:{width:H}}),R=[u.minExtend(te,{trace:z})]}var Q=$.select(".legendlines").selectAll("path").data(N||B?[R]:[]);Q.enter().append("path").classed("js-line",!0),Q.exit().remove(),Q.attr("d",q+(B?"l"+_+",0.0001":"h"+_)).call(N?i.lineGroupStyle:function(ee){if(ee.size()){var ie="legendline-"+Y.uid;i.lineGroupStyle(ee),i.gradient(ee,w,ie,p(U),re,"stroke")}})}).each(function(O){var R,z,L=v(O),P=L.anyFill,N=L.anyLine,B=L.showLine,G=L.showMarker,W=O[0],K=W.trace,te=!G&&!N&&!P&&d.hasText(K);function Y(Q,ee,ie,ae){var ue=u.nestedProperty(K,Q).get(),le=u.isArrayOrTypedArray(ue)&&ee?ee(ue):ue;if(T&&le&&ae!==void 0&&(le=ae),ie){if(leie[1])return ie[1]}return le}function Z(Q){return W._distinct&&W.index&&Q[W.index]?Q[W.index]:Q[0]}if(G||te||B){var re={},U={};if(G){re.mc=Y("marker.color",Z),re.mx=Y("marker.symbol",Z),re.mo=Y("marker.opacity",u.mean,[.2,1]),re.mlc=Y("marker.line.color",Z),re.mlw=Y("marker.line.width",u.mean,[0,5],2),U.marker={sizeref:1,sizemin:1,sizemode:"diameter"};var q=Y("marker.size",u.mean,[2,16],12);re.ms=q,U.marker.size=q}B&&(U.line={width:Y("line.width",Z,[0,10],5)}),te&&(re.tx="Aa",re.tp=Y("textposition",Z),re.ts=10,re.tc=Y("textfont.color",Z),re.tf=Y("textfont.family",Z)),R=[u.minExtend(W,re)],(z=u.minExtend(K,U)).selectedpoints=null,z.texttemplate=null}var $=r.select(this).select("g.legendpoints"),ne=$.selectAll("path.scatterpts").data(G?R:[]);ne.enter().insert("path",":first-child").classed("scatterpts",!0).attr("transform",A),ne.exit().remove(),ne.call(i.pointStyle,z,w),G&&(R[0].mrc=3);var H=$.selectAll("g.pointtext").data(te?R:[]);H.enter().append("g").classed("pointtext",!0).append("text").attr("transform",A),H.exit().remove(),H.selectAll("text").call(i.textPointStyle,z,w)}).each(function(O){var R=O[0].trace,z=r.select(this).select("g.legendpoints").selectAll("path.legendcandle").data(R.visible&&R.type==="candlestick"?[O,O]:[]);z.enter().append("path").classed("legendcandle",!0).attr("d",function(L,P){return P?"M-15,0H-8M-8,6V-6H8Z":"M15,0H8M8,-6V6H-8Z"}).attr("transform",A).style("stroke-miterlimit",1),z.exit().remove(),z.each(function(L,P){var N=r.select(this),B=R[P?"increasing":"decreasing"],G=S(void 0,B.line,5,2);N.style("stroke-width",G+"px").call(s.fill,B.fillcolor),G&&s.stroke(N,B.line.color)})}).each(function(O){var R=O[0].trace,z=r.select(this).select("g.legendpoints").selectAll("path.legendohlc").data(R.visible&&R.type==="ohlc"?[O,O]:[]);z.enter().append("path").classed("legendohlc",!0).attr("d",function(L,P){return P?"M-15,0H0M-8,-6V0":"M15,0H0M8,6V0"}).attr("transform",A).style("stroke-miterlimit",1),z.exit().remove(),z.each(function(L,P){var N=r.select(this),B=R[P?"increasing":"decreasing"],G=S(void 0,B.line,5,2);N.style("fill","none").call(i.dashLine,B.line.dash,G),G&&s.stroke(N,B.line.color)})})}},{"../../lib":503,"../../registry":638,"../../traces/pie/helpers":906,"../../traces/pie/style_one":912,"../../traces/scatter/subtypes":952,"../color":366,"../colorscale/helpers":377,"../drawing":388,"./constants":417,"@plotly/d3":58}],425:[function(e,o,f){e("./constants"),o.exports={editType:"modebar",orientation:{valType:"enumerated",values:["v","h"],dflt:"h",editType:"modebar"},bgcolor:{valType:"color",editType:"modebar"},color:{valType:"color",editType:"modebar"},activecolor:{valType:"color",editType:"modebar"},uirevision:{valType:"any",editType:"none"},add:{valType:"string",arrayOk:!0,dflt:"",editType:"modebar"},remove:{valType:"string",arrayOk:!0,dflt:"",editType:"modebar"}}},{"./constants":427}],426:[function(e,o,f){var r=e("../../registry"),a=e("../../plots/plots"),u=e("../../plots/cartesian/axis_ids"),c=e("../../fonts/ploticon"),i=e("../shapes/draw").eraseActiveShape,s=e("../../lib"),l=s._,d=o.exports={};function h(b,T){var _,M,A=T.currentTarget,S=A.getAttribute("data-attr"),E=A.getAttribute("data-val")||!0,D=b._fullLayout,O={},R=u.list(b,null,!0),z=D._cartesianSpikesEnabled;if(S==="zoom"){var L,P=E==="in"?.5:2,N=(1+P)/2,B=(1-P)/2;for(M=0;M1?(U=["toggleHover"],q=["resetViews"]):D?(re=["zoomInGeo","zoomOutGeo"],U=["hoverClosestGeo"],q=["resetGeo"]):E?(U=["hoverClosest3d"],q=["resetCameraDefault3d","resetCameraLastSave3d"]):P?(re=["zoomInMapbox","zoomOutMapbox"],U=["toggleHover"],q=["resetViewMapbox"]):z?U=["hoverClosestGl2d"]:O?U=["hoverClosestPie"]:G?(U=["hoverClosestCartesian","hoverCompareCartesian"],q=["resetViewSankey"]):U=["toggleHover"],S&&(U=["toggleSpikelines","hoverClosestCartesian","hoverCompareCartesian"]),(function(ae){for(var ue=0;ue0)){var w=function(b,T,_){for(var M=_.filter(function(D){return T[D].anchor===b._id}),A=0,S=0;S=fe.max)le=ee[ge+1];else if(ue=fe.pmax)le=ee[ge+1];else if(ue0?b+x:x;return{ppad:x,ppadplus:w?_:M,ppadminus:w?M:_}}return{ppad:x}}function d(h,m,g,p,v){var y=h.type==="category"||h.type==="multicategory"?h.r2c:h.d2c;if(m!==void 0)return[y(m),y(g)];if(p){var x,w,k,b,T=1/0,_=-1/0,M=p.match(u.segmentRE);for(h.type==="date"&&(y=c.decodeDate(y)),x=0;x_&&(_=b)));return _>=T?[T,_]:void 0}}o.exports=function(h){var m=h._fullLayout,g=r.filterVisible(m.shapes);if(g.length&&h._fullData.length)for(var p=0;pge?(_e=ue,de="y0",we=ge,ye="y1"):(_e=ge,de="y1",we=ue,ye="y0"),Wt(dt),Ge(ee,H),function(Pe,Ie,Ae){var De=Ie.xref,He=Ie.yref,rt=u.getFromId(Ae,De),lt=u.getFromId(Ae,He),ot="";De==="paper"||rt.autorange||(ot+=De),He==="paper"||lt.autorange||(ot+=He),d.setClipUrl(Pe,ot?"clip"+Ae._fullLayout._uid+ot:null,Ae)}(ne,H,$),Ot.moveFn=ze==="move"?Jt:Be,Ot.altKey=dt.altKey)},doneFn:function(){x($)||(g(ne),Tt(ee),b(ne,$,H),r.call("_guiRelayout",$,ie.getUpdateObj()))},clickFn:function(){x($)||Tt(ee)}};function Wt(dt){if(x($))ze=null;else if(Ke)ze=dt.target.tagName==="path"?"move":dt.target.attributes["data-line-point"].value==="start-point"?"resize-over-start-point":"resize-over-end-point";else{var Pe=Ot.element.getBoundingClientRect(),Ie=Pe.right-Pe.left,Ae=Pe.bottom-Pe.top,De=dt.clientX-Pe.left,He=dt.clientY-Pe.top,rt=!Re&&Ie>10&&Ae>10&&!dt.shiftKey?m.getCursor(De/Ie,1-He/Ae):"move";g(ne,rt),ze=rt.split("-")[0]}}function Jt(dt,Pe){if(H.type==="path"){var Ie=function(He){return He},Ae=Ie,De=Ie;Fe?qe("xanchor",H.xanchor=At(fe+dt)):(Ae=function(He){return At(vt(He)+dt)},We&&We.type==="date"&&(Ae=v.encodeDate(Ae))),Ve?qe("yanchor",H.yanchor=at(me+Pe)):(De=function(He){return at(Pt(He)+Pe)},nt&&nt.type==="date"&&(De=v.encodeDate(De))),qe("path",H.path=_(Ee,Ae,De))}else Fe?qe("xanchor",H.xanchor=At(fe+dt)):(qe("x0",H.x0=At(ae+dt)),qe("x1",H.x1=At(le+dt))),Ve?qe("yanchor",H.yanchor=at(me+Pe)):(qe("y0",H.y0=at(ue+Pe)),qe("y1",H.y1=at(ge+Pe)));ne.attr("d",T($,H)),Ge(ee,H)}function Be(dt,Pe){if(Re){var Ie=function(Le){return Le},Ae=Ie,De=Ie;Fe?qe("xanchor",H.xanchor=At(fe+dt)):(Ae=function(Le){return At(vt(Le)+dt)},We&&We.type==="date"&&(Ae=v.encodeDate(Ae))),Ve?qe("yanchor",H.yanchor=at(me+Pe)):(De=function(Le){return at(Pt(Le)+Pe)},nt&&nt.type==="date"&&(De=v.encodeDate(De))),qe("path",H.path=_(Ee,Ae,De))}else if(Ke){if(ze==="resize-over-start-point"){var He=ae+dt,rt=Ve?ue-Pe:ue+Pe;qe("x0",H.x0=Fe?He:At(He)),qe("y0",H.y0=Ve?rt:at(rt))}else if(ze==="resize-over-end-point"){var lt=le+dt,ot=Ve?ge-Pe:ge+Pe;qe("x1",H.x1=Fe?lt:At(lt)),qe("y1",H.y1=Ve?ot:at(ot))}}else{var kt=function(Le){return ze.indexOf(Le)!==-1},wt=kt("n"),Vt=kt("s"),Ut=kt("w"),tt=kt("e"),bt=wt?_e+Pe:_e,zt=Vt?we+Pe:we,St=Ut?Te+dt:Te,Dt=tt?Oe+dt:Oe;Ve&&(wt&&(bt=_e-Pe),Vt&&(zt=we-Pe)),(!Ve&&zt-bt>10||Ve&&bt-zt>10)&&(qe(de,H[de]=Ve?bt:at(bt)),qe(ye,H[ye]=Ve?zt:at(zt))),Dt-St>10&&(qe(Me,H[Me]=Fe?St:At(St)),qe(ke,H[ke]=Fe?Dt:At(Dt)))}ne.attr("d",T($,H)),Ge(ee,H)}function Ge(dt,Pe){(Fe||Ve)&&function(){var Ie=Pe.type!=="path",Ae=dt.selectAll(".visual-cue").data([0]);Ae.enter().append("path").attr({fill:"#fff","fill-rule":"evenodd",stroke:"#000","stroke-width":1}).classed("visual-cue",!0);var De=vt(Fe?Pe.xanchor:a.midRange(Ie?[Pe.x0,Pe.x1]:v.extractPathCoords(Pe.path,p.paramIsX))),He=Pt(Ve?Pe.yanchor:a.midRange(Ie?[Pe.y0,Pe.y1]:v.extractPathCoords(Pe.path,p.paramIsY)));if(De=v.roundPositionForSharpStrokeRendering(De,1),He=v.roundPositionForSharpStrokeRendering(He,1),Fe&&Ve){var rt="M"+(De-1-1)+","+(He-1-1)+"h-8v2h8 v8h2v-8 h8v-2h-8 v-8h-2 Z";Ae.attr("d",rt)}else if(Fe){var lt="M"+(De-1-1)+","+(He-9-1)+"v18 h2 v-18 Z";Ae.attr("d",lt)}else{var ot="M"+(De-9-1)+","+(He-1-1)+"h18 v2 h-18 Z";Ae.attr("d",ot)}}()}function Tt(dt){dt.selectAll(".visual-cue").remove()}m.init(Ot),et.node().onmousemove=Wt}(A,re,D,S,z,Z):D.editable===!0&&re.style("pointer-events",te||l.opacity(B)*N<=.5?"stroke":"all");re.node().addEventListener("click",function(){return function($,ne){if(!!w($)){var H=+ne.node().getAttribute("data-index");if(H>=0){if(H===$._fullLayout._activeShapeIndex)return void M($);$._fullLayout._activeShapeIndex=H,$._fullLayout._deactivateShape=M,y($)}}}(A,re)})}}function b(A,S,E){var D=(E.xref+E.yref).replace(/paper/g,"").replace(/[xyz][1-9]* *domain/g,"");d.setClipUrl(A,D?"clip"+S._fullLayout._uid+D:null,S)}function T(A,S){var E,D,O,R,z,L,P,N,B=S.type,G=u.getRefType(S.xref),W=u.getRefType(S.yref),K=u.getFromId(A,S.xref),te=u.getFromId(A,S.yref),Y=A._fullLayout._size;if(K?G==="domain"?D=function(ee){return K._offset+K._length*ee}:(E=v.shapePositionToRange(K),D=function(ee){return K._offset+K.r2p(E(ee,!0))}):D=function(ee){return Y.l+Y.w*ee},te?W==="domain"?R=function(ee){return te._offset+te._length*(1-ee)}:(O=v.shapePositionToRange(te),R=function(ee){return te._offset+te.r2p(O(ee,!0))}):R=function(ee){return Y.t+Y.h*(1-ee)},B==="path")return K&&K.type==="date"&&(D=v.decodeDate(D)),te&&te.type==="date"&&(R=v.decodeDate(R)),function(ee,ie,ae){var ue=ee.path,le=ee.xsizemode,ge=ee.ysizemode,fe=ee.xanchor,me=ee.yanchor;return ue.replace(p.segmentRE,function(_e){var we=0,Te=_e.charAt(0),Oe=p.paramIsX[Te],de=p.paramIsY[Te],ye=p.numParams[Te],Me=_e.substr(1).replace(p.paramRE,function(ke){return Oe[we]?ke=le==="pixel"?ie(fe)+Number(ke):ie(ke):de[we]&&(ke=ge==="pixel"?ae(me)-Number(ke):ae(ke)),++we>ye&&(ke="X"),ke});return we>ye&&(Me=Me.replace(/[\s,]*X.*/,""),a.log("Ignoring extra params in segment "+_e)),Te+Me})}(S,D,R);if(S.xsizemode==="pixel"){var Z=D(S.xanchor);z=Z+S.x0,L=Z+S.x1}else z=D(S.x0),L=D(S.x1);if(S.ysizemode==="pixel"){var re=R(S.yanchor);P=re-S.y0,N=re-S.y1}else P=R(S.y0),N=R(S.y1);if(B==="line")return"M"+z+","+P+"L"+L+","+N;if(B==="rect")return"M"+z+","+P+"H"+L+"V"+N+"H"+z+"Z";var U=(z+L)/2,q=(P+N)/2,$=Math.abs(U-z),ne=Math.abs(q-P),H="A"+$+","+ne,Q=U+$+","+q;return"M"+Q+H+" 0 1,1 "+(U+","+(q-ne))+H+" 0 0,1 "+Q+"Z"}function _(A,S,E){return A.replace(p.segmentRE,function(D){var O=0,R=D.charAt(0),z=p.paramIsX[R],L=p.paramIsY[R],P=p.numParams[R];return R+D.substr(1).replace(p.paramRE,function(N){return O>=P||(z[O]?N=S(N):L[O]&&(N=E(N)),O++),N})})}function M(A){w(A)&&A._fullLayout._activeShapeIndex>=0&&(s(A),delete A._fullLayout._activeShapeIndex,y(A))}o.exports={draw:y,drawOne:k,eraseActiveShape:function(A){if(!!w(A)){s(A);var S=A._fullLayout._activeShapeIndex,E=(A.layout||{}).shapes||[];if(S=0&&h(_),k.attr("d",v(w)),z&&!T&&(R=function(Z,re){for(var U=0;U1&&(q.length!==2||q[1][0]!=="Z")&&(O===0&&(q[0][0]="M"),w[D]=q,M(),A())}}()}}function K(Z,re){(function(U,q){if(w.length)for(var $=0;$0&&_0&&(Y=Y.transition().duration(N.transition.duration).ease(N.transition.easing)),Y.attr("transform",s(te-.5*h.gripWidth,N._dims.currentValueTotalHeight))}}function O(P,N){var B=P._dims;return B.inputAreaStart+h.stepInset+(B.inputAreaLength-2*h.stepInset)*Math.min(1,Math.max(0,N))}function R(P,N){var B=P._dims;return Math.min(1,Math.max(0,(N-h.stepInset-B.inputAreaStart)/(B.inputAreaLength-2*h.stepInset-2*B.inputAreaStart)))}function z(P,N,B){var G=B._dims,W=i.ensureSingle(P,"rect",h.railTouchRectClass,function(K){K.call(S,N,P,B).style("pointer-events","all")});W.attr({width:G.inputAreaLength,height:Math.max(G.inputAreaWidth,h.tickOffset+B.ticklen+G.labelHeight)}).call(u.fill,B.bgcolor).attr("opacity",0),c.setTranslate(W,0,G.currentValueTotalHeight)}function L(P,N){var B=N._dims,G=B.inputAreaLength-2*h.railInset,W=i.ensureSingle(P,"rect",h.railRectClass);W.attr({width:G,height:h.railWidth,rx:h.railRadius,ry:h.railRadius,"shape-rendering":"crispEdges"}).call(u.stroke,N.bordercolor).call(u.fill,N.bgcolor).style("stroke-width",N.borderwidth+"px"),c.setTranslate(W,h.railInset,.5*(B.inputAreaWidth-h.railWidth)+B.currentValueTotalHeight)}o.exports=function(P){var N=P._fullLayout,B=function(Z,re){for(var U=Z[h.name],q=[],$=0;$0?[0]:[]);function W(Z){Z._commandObserver&&(Z._commandObserver.remove(),delete Z._commandObserver),a.autoMargin(P,y(Z))}if(G.enter().append("g").classed(h.containerClassName,!0).style("cursor","ew-resize"),G.exit().each(function(){r.select(this).selectAll("g."+h.groupClassName).each(W)}).remove(),B.length!==0){var K=G.selectAll("g."+h.groupClassName).data(B,x);K.enter().append("g").classed(h.groupClassName,!0),K.exit().each(W).remove();for(var te=0;te0||ae<0){var fe={left:[-ue,0],right:[ue,0],top:[0,-ue],bottom:[0,ue]}[M.side];$.attr("transform",s(fe[0],fe[1]))}}}return Y.call(Z),W&&(L?Y.on(".opacity",null):(O=0,R=!0,Y.text(T).on("mouseover.opacity",function(){r.select(this).transition().duration(m.SHOW_PLACEHOLDER).style("opacity",1)}).on("mouseout.opacity",function(){r.select(this).transition().duration(m.HIDE_PLACEHOLDER).style("opacity",0)})),Y.call(h.makeEditable,{gd:v}).on("edit",function(q){_!==void 0?c.call("_guiRestyle",v,b,q,_):c.call("_guiRelayout",v,b,q)}).on("cancel",function(){this.text(this.attr("data-unformatted")).call(Z)}).on("input",function(q){this.text(q||" ").call(h.positionText,A.x,A.y)})),Y.classed("js-placeholder",R),E}}},{"../../constants/alignment":471,"../../constants/interactions":478,"../../lib":503,"../../lib/svg_text_utils":529,"../../plots/plots":619,"../../registry":638,"../color":366,"../drawing":388,"@plotly/d3":58,"fast-isnumeric":190}],465:[function(e,o,f){var r=e("../../plots/font_attributes"),a=e("../color/attributes"),u=e("../../lib/extend").extendFlat,c=e("../../plot_api/edit_types").overrideAll,i=e("../../plots/pad_attributes"),s=e("../../plot_api/plot_template").templatedArray,l=s("button",{visible:{valType:"boolean"},method:{valType:"enumerated",values:["restyle","relayout","animate","update","skip"],dflt:"restyle"},args:{valType:"info_array",freeLength:!0,items:[{valType:"any"},{valType:"any"},{valType:"any"}]},args2:{valType:"info_array",freeLength:!0,items:[{valType:"any"},{valType:"any"},{valType:"any"}]},label:{valType:"string",dflt:""},execute:{valType:"boolean",dflt:!0}});o.exports=c(s("updatemenu",{_arrayAttrRegexps:[/^updatemenus\[(0|[1-9][0-9]+)\]\.buttons/],visible:{valType:"boolean"},type:{valType:"enumerated",values:["dropdown","buttons"],dflt:"dropdown"},direction:{valType:"enumerated",values:["left","right","up","down"],dflt:"down"},active:{valType:"integer",min:-1,dflt:0},showactive:{valType:"boolean",dflt:!0},buttons:l,x:{valType:"number",min:-2,max:3,dflt:-.05},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"right"},y:{valType:"number",min:-2,max:3,dflt:1},yanchor:{valType:"enumerated",values:["auto","top","middle","bottom"],dflt:"top"},pad:u(i({editType:"arraydraw"}),{}),font:r({}),bgcolor:{valType:"color"},bordercolor:{valType:"color",dflt:a.borderLine},borderwidth:{valType:"number",min:0,dflt:1,editType:"arraydraw"}}),"arraydraw","from-root")},{"../../lib/extend":493,"../../plot_api/edit_types":536,"../../plot_api/plot_template":543,"../../plots/font_attributes":585,"../../plots/pad_attributes":618,"../color/attributes":365}],466:[function(e,o,f){o.exports={name:"updatemenus",containerClassName:"updatemenu-container",headerGroupClassName:"updatemenu-header-group",headerClassName:"updatemenu-header",headerArrowClassName:"updatemenu-header-arrow",dropdownButtonGroupClassName:"updatemenu-dropdown-button-group",dropdownButtonClassName:"updatemenu-dropdown-button",buttonClassName:"updatemenu-button",itemRectClassName:"updatemenu-item-rect",itemTextClassName:"updatemenu-item-text",menuIndexAttrName:"updatemenu-active-index",autoMarginIdRoot:"updatemenu-",blankHeaderOpts:{label:" "},minWidth:30,minHeight:30,textPadX:24,arrowPadX:16,rx:2,ry:2,textOffsetX:12,textOffsetY:3,arrowOffsetX:4,gapButtonHeader:5,gapButton:2,activeColor:"#F4FAFF",hoverColor:"#F4FAFF",arrowSymbol:{left:"\u25C4",right:"\u25BA",up:"\u25B2",down:"\u25BC"}}},{}],467:[function(e,o,f){var r=e("../../lib"),a=e("../../plots/array_container_defaults"),u=e("./attributes"),c=e("./constants").name,i=u.buttons;function s(d,h,m){function g(p,v){return r.coerce(d,h,u,p,v)}g("visible",a(d,h,{name:"buttons",handleItemDefaults:l}).length>0)&&(g("active"),g("direction"),g("type"),g("showactive"),g("x"),g("y"),r.noneOrAll(d,h,["x","y"]),g("xanchor"),g("yanchor"),g("pad.t"),g("pad.r"),g("pad.b"),g("pad.l"),r.coerceFont(g,"font",m.font),g("bgcolor",m.paper_bgcolor),g("bordercolor"),g("borderwidth"))}function l(d,h){function m(g,p){return r.coerce(d,h,i,g,p)}m("visible",d.method==="skip"||Array.isArray(d.args))&&(m("method"),m("args"),m("args2"),m("label"),m("execute"))}o.exports=function(d,h){a(d,h,{name:c,handleItemDefaults:s})}},{"../../lib":503,"../../plots/array_container_defaults":549,"./attributes":465,"./constants":466}],468:[function(e,o,f){var r=e("@plotly/d3"),a=e("../../plots/plots"),u=e("../color"),c=e("../drawing"),i=e("../../lib"),s=e("../../lib/svg_text_utils"),l=e("../../plot_api/plot_template").arrayEditor,d=e("../../constants/alignment").LINE_SPACING,h=e("./constants"),m=e("./scrollbox");function g(O){return O._index}function p(O,R){return+O.attr(h.menuIndexAttrName)===R._index}function v(O,R,z,L,P,N,B,G){R.active=B,l(O.layout,h.name,R).applyUpdate("active",B),R.type==="buttons"?x(O,L,null,null,R):R.type==="dropdown"&&(P.attr(h.menuIndexAttrName,"-1"),y(O,L,P,N,R),G||x(O,L,P,N,R))}function y(O,R,z,L,P){var N=i.ensureSingle(R,"g",h.headerClassName,function(Y){Y.style("pointer-events","all")}),B=P._dims,G=P.active,W=P.buttons[G]||h.blankHeaderOpts,K={y:P.pad.t,yPad:0,x:P.pad.l,xPad:0,index:0},te={width:B.headerWidth,height:B.headerHeight};N.call(w,P,W,O).call(E,P,K,te),i.ensureSingle(R,"text",h.headerArrowClassName,function(Y){Y.attr("text-anchor","end").call(c.font,P.font).text(h.arrowSymbol[P.direction])}).attr({x:B.headerWidth-h.arrowOffsetX+P.pad.l,y:B.headerHeight/2+h.textOffsetY+P.pad.t}),N.on("click",function(){z.call(D,String(p(z,P)?-1:P._index)),x(O,R,z,L,P)}),N.on("mouseover",function(){N.call(_)}),N.on("mouseout",function(){N.call(M,P)}),c.setTranslate(R,B.lx,B.ly)}function x(O,R,z,L,P){z||(z=R).attr("pointer-events","all");var N=function($){return+$.attr(h.menuIndexAttrName)==-1}(z)&&P.type!=="buttons"?[]:P.buttons,B=P.type==="dropdown"?h.dropdownButtonClassName:h.buttonClassName,G=z.selectAll("g."+B).data(i.filterVisible(N)),W=G.enter().append("g").classed(B,!0),K=G.exit();P.type==="dropdown"?(W.attr("opacity","0").transition().attr("opacity","1"),K.transition().attr("opacity","0").remove()):K.remove();var te=0,Y=0,Z=P._dims,re=["up","down"].indexOf(P.direction)!==-1;P.type==="dropdown"&&(re?Y=Z.headerHeight+h.gapButtonHeader:te=Z.headerWidth+h.gapButtonHeader),P.type==="dropdown"&&P.direction==="up"&&(Y=-h.gapButtonHeader+h.gapButton-Z.openHeight),P.type==="dropdown"&&P.direction==="left"&&(te=-h.gapButtonHeader+h.gapButton-Z.openWidth);var U={x:Z.lx+te+P.pad.l,y:Z.ly+Y+P.pad.t,yPad:h.gapButton,xPad:h.gapButton,index:0},q={l:U.x+P.borderwidth,t:U.y+P.borderwidth};G.each(function($,ne){var H=r.select(this);H.call(w,P,$,O).call(E,P,U),H.on("click",function(){r.event.defaultPrevented||($.execute&&($.args2&&P.active===ne?(v(O,P,0,R,z,L,-1),a.executeAPICommand(O,$.method,$.args2)):(v(O,P,0,R,z,L,ne),a.executeAPICommand(O,$.method,$.args))),O.emit("plotly_buttonclicked",{menu:P,button:$,active:P.active}))}),H.on("mouseover",function(){H.call(_)}),H.on("mouseout",function(){H.call(M,P),G.call(T,P)})}),G.call(T,P),re?(q.w=Math.max(Z.openWidth,Z.headerWidth),q.h=U.y-q.t):(q.w=U.x-q.l,q.h=Math.max(Z.openHeight,Z.headerHeight)),q.direction=P.direction,L&&(G.size()?function($,ne,H,Q,ee,ie){var ae,ue,le,ge=ee.direction,fe=ge==="up"||ge==="down",me=ee._dims,_e=ee.active;if(fe)for(ue=0,le=0;le<_e;le++)ue+=me.heights[le]+h.gapButton;else for(ae=0,le=0;le<_e;le++)ae+=me.widths[le]+h.gapButton;Q.enable(ie,ae,ue),Q.hbar&&Q.hbar.attr("opacity","0").transition().attr("opacity","1"),Q.vbar&&Q.vbar.attr("opacity","0").transition().attr("opacity","1")}(0,0,0,L,P,q):function($){var ne=!!$.hbar,H=!!$.vbar;ne&&$.hbar.transition().attr("opacity","0").each("end",function(){ne=!1,H||$.disable()}),H&&$.vbar.transition().attr("opacity","0").each("end",function(){H=!1,ne||$.disable()})}(L))}function w(O,R,z,L){O.call(k,R).call(b,R,z,L)}function k(O,R){i.ensureSingle(O,"rect",h.itemRectClassName,function(z){z.attr({rx:h.rx,ry:h.ry,"shape-rendering":"crispEdges"})}).call(u.stroke,R.bordercolor).call(u.fill,R.bgcolor).style("stroke-width",R.borderwidth+"px")}function b(O,R,z,L){var P=i.ensureSingle(O,"text",h.itemTextClassName,function(G){G.attr({"text-anchor":"start","data-notex":1})}),N=z.label,B=L._fullLayout._meta;B&&(N=i.templateString(N,B)),P.call(c.font,R.font).text(N).call(s.convertToTspans,L)}function T(O,R){var z=R.active;O.each(function(L,P){var N=r.select(this);P===z&&R.showactive&&N.select("rect."+h.itemRectClassName).call(u.fill,h.activeColor)})}function _(O){O.select("rect."+h.itemRectClassName).call(u.fill,h.hoverColor)}function M(O,R){O.select("rect."+h.itemRectClassName).call(u.fill,R.bgcolor)}function A(O,R){var z=R._dims={width1:0,height1:0,heights:[],widths:[],totalWidth:0,totalHeight:0,openWidth:0,openHeight:0,lx:0,ly:0},L=c.tester.selectAll("g."+h.dropdownButtonClassName).data(i.filterVisible(R.buttons));L.enter().append("g").classed(h.dropdownButtonClassName,!0);var P=["up","down"].indexOf(R.direction)!==-1;L.each(function(te,Y){var Z=r.select(this);Z.call(w,R,te,O);var re=Z.select("."+h.itemTextClassName),U=re.node()&&c.bBox(re.node()).width,q=Math.max(U+h.textPadX,h.minWidth),$=R.font.size*d,ne=s.lineCount(re),H=Math.max($*ne,h.minHeight)+h.textOffsetY;H=Math.ceil(H),q=Math.ceil(q),z.widths[Y]=q,z.heights[Y]=H,z.height1=Math.max(z.height1,H),z.width1=Math.max(z.width1,q),P?(z.totalWidth=Math.max(z.totalWidth,q),z.openWidth=z.totalWidth,z.totalHeight+=H+h.gapButton,z.openHeight+=H+h.gapButton):(z.totalWidth+=q+h.gapButton,z.openWidth+=q+h.gapButton,z.totalHeight=Math.max(z.totalHeight,H),z.openHeight=z.totalHeight)}),P?z.totalHeight-=h.gapButton:z.totalWidth-=h.gapButton,z.headerWidth=z.width1+h.arrowPadX,z.headerHeight=z.height1,R.type==="dropdown"&&(P?(z.width1+=h.arrowPadX,z.totalHeight=z.height1):z.totalWidth=z.width1,z.totalWidth+=h.arrowPadX),L.remove();var N=z.totalWidth+R.pad.l+R.pad.r,B=z.totalHeight+R.pad.t+R.pad.b,G=O._fullLayout._size;z.lx=G.l+G.w*R.x,z.ly=G.t+G.h*(1-R.y);var W="left";i.isRightAnchor(R)&&(z.lx-=N,W="right"),i.isCenterAnchor(R)&&(z.lx-=N/2,W="center");var K="top";i.isBottomAnchor(R)&&(z.ly-=B,K="bottom"),i.isMiddleAnchor(R)&&(z.ly-=B/2,K="middle"),z.totalWidth=Math.ceil(z.totalWidth),z.totalHeight=Math.ceil(z.totalHeight),z.lx=Math.round(z.lx),z.ly=Math.round(z.ly),a.autoMargin(O,S(R),{x:R.x,y:R.y,l:N*({right:1,center:.5}[W]||0),r:N*({left:1,center:.5}[W]||0),b:B*({top:1,middle:.5}[K]||0),t:B*({bottom:1,middle:.5}[K]||0)})}function S(O){return h.autoMarginIdRoot+O._index}function E(O,R,z,L){L=L||{};var P=O.select("."+h.itemRectClassName),N=O.select("."+h.itemTextClassName),B=R.borderwidth,G=z.index,W=R._dims;c.setTranslate(O,B+z.x,B+z.y);var K=["up","down"].indexOf(R.direction)!==-1,te=L.height||(K?W.heights[G]:W.height1);P.attr({x:0,y:0,width:L.width||(K?W.width1:W.widths[G]),height:te});var Y=R.font.size*d,Z=(s.lineCount(N)-1)*Y/2;s.positionText(N,h.textOffsetX,te/2-Z+h.textOffsetY),K?z.y+=W.heights[G]+z.yPad:z.x+=W.widths[G]+z.xPad,z.index++}function D(O,R){O.attr(h.menuIndexAttrName,R||"-1").selectAll("g."+h.dropdownButtonClassName).remove()}o.exports=function(O){var R=O._fullLayout,z=i.filterVisible(R[h.name]);function L(Y){a.autoMargin(O,S(Y))}var P=R._menulayer.selectAll("g."+h.containerClassName).data(z.length>0?[0]:[]);if(P.enter().append("g").classed(h.containerClassName,!0).style("cursor","pointer"),P.exit().each(function(){r.select(this).selectAll("g."+h.headerGroupClassName).each(L)}).remove(),z.length!==0){var N=P.selectAll("g."+h.headerGroupClassName).data(z,g);N.enter().append("g").classed(h.headerGroupClassName,!0);for(var B=i.ensureSingle(P,"g",h.dropdownButtonGroupClassName,function(Y){Y.style("pointer-events","all")}),G=0;GE,R=i.barLength+2*i.barPad,z=i.barWidth+2*i.barPad,L=w,P=b+T;P+z>g&&(P=g-z);var N=this.container.selectAll("rect.scrollbar-horizontal").data(O?[0]:[]);N.exit().on(".drag",null).remove(),N.enter().append("rect").classed("scrollbar-horizontal",!0).call(a.fill,i.barColor),O?(this.hbar=N.attr({rx:i.barRadius,ry:i.barRadius,x:L,y:P,width:R,height:z}),this._hbarXMin=L+R/2,this._hbarTranslateMax=E-R):(delete this.hbar,delete this._hbarXMin,delete this._hbarTranslateMax);var B=T>D,G=i.barWidth+2*i.barPad,W=i.barLength+2*i.barPad,K=w+k,te=b;K+G>m&&(K=m-G);var Y=this.container.selectAll("rect.scrollbar-vertical").data(B?[0]:[]);Y.exit().on(".drag",null).remove(),Y.enter().append("rect").classed("scrollbar-vertical",!0).call(a.fill,i.barColor),B?(this.vbar=Y.attr({rx:i.barRadius,ry:i.barRadius,x:K,y:te,width:G,height:W}),this._vbarYMin=te+W/2,this._vbarTranslateMax=D-W):(delete this.vbar,delete this._vbarYMin,delete this._vbarTranslateMax);var Z=this.id,re=p-.5,U=B?v+G+.5:v+.5,q=y-.5,$=O?x+z+.5:x+.5,ne=h._topdefs.selectAll("#"+Z).data(O||B?[0]:[]);if(ne.exit().remove(),ne.enter().append("clipPath").attr("id",Z).append("rect"),O||B?(this._clipRect=ne.select("rect").attr({x:Math.floor(re),y:Math.floor(q),width:Math.ceil(U)-Math.floor(re),height:Math.ceil($)-Math.floor(q)}),this.container.call(u.setClipUrl,Z,this.gd),this.bg.attr({x:w,y:b,width:k,height:T})):(this.bg.attr({width:0,height:0}),this.container.on("wheel",null).on(".drag",null).call(u.setClipUrl,null),delete this._clipRect),O||B){var H=r.behavior.drag().on("dragstart",function(){r.event.sourceEvent.preventDefault()}).on("drag",this._onBoxDrag.bind(this));this.container.on("wheel",null).on("wheel",this._onBoxWheel.bind(this)).on(".drag",null).call(H);var Q=r.behavior.drag().on("dragstart",function(){r.event.sourceEvent.preventDefault(),r.event.sourceEvent.stopPropagation()}).on("drag",this._onBarDrag.bind(this));O&&this.hbar.on(".drag",null).call(Q),B&&this.vbar.on(".drag",null).call(Q)}this.setTranslate(l,d)},i.prototype.disable=function(){(this.hbar||this.vbar)&&(this.bg.attr({width:0,height:0}),this.container.on("wheel",null).on(".drag",null).call(u.setClipUrl,null),delete this._clipRect),this.hbar&&(this.hbar.on(".drag",null),this.hbar.remove(),delete this.hbar,delete this._hbarXMin,delete this._hbarTranslateMax),this.vbar&&(this.vbar.on(".drag",null),this.vbar.remove(),delete this.vbar,delete this._vbarYMin,delete this._vbarTranslateMax)},i.prototype._onBoxDrag=function(){var s=this.translateX,l=this.translateY;this.hbar&&(s-=r.event.dx),this.vbar&&(l-=r.event.dy),this.setTranslate(s,l)},i.prototype._onBoxWheel=function(){var s=this.translateX,l=this.translateY;this.hbar&&(s+=r.event.deltaY),this.vbar&&(l+=r.event.deltaY),this.setTranslate(s,l)},i.prototype._onBarDrag=function(){var s=this.translateX,l=this.translateY;if(this.hbar){var d=s+this._hbarXMin,h=d+this._hbarTranslateMax;s=(c.constrain(r.event.x,d,h)-d)/(h-d)*(this.position.w-this._box.w)}if(this.vbar){var m=l+this._vbarYMin,g=m+this._vbarTranslateMax;l=(c.constrain(r.event.y,m,g)-m)/(g-m)*(this.position.h-this._box.h)}this.setTranslate(s,l)},i.prototype.setTranslate=function(s,l){var d=this.position.w-this._box.w,h=this.position.h-this._box.h;if(s=c.constrain(s||0,0,d),l=c.constrain(l||0,0,h),this.translateX=s,this.translateY=l,this.container.call(u.setTranslate,this._box.l-this.position.l-s,this._box.t-this.position.t-l),this._clipRect&&this._clipRect.attr({x:Math.floor(this.position.l+s-.5),y:Math.floor(this.position.t+l-.5)}),this.hbar){var m=s/d;this.hbar.call(u.setTranslate,s+m*this._hbarTranslateMax,l)}if(this.vbar){var g=l/h;this.vbar.call(u.setTranslate,s,l+g*this._vbarTranslateMax)}}},{"../../lib":503,"../color":366,"../drawing":388,"@plotly/d3":58}],471:[function(e,o,f){o.exports={FROM_BL:{left:0,center:.5,right:1,bottom:0,middle:.5,top:1},FROM_TL:{left:0,center:.5,right:1,bottom:1,middle:.5,top:0},FROM_BR:{left:1,center:.5,right:0,bottom:0,middle:.5,top:1},LINE_SPACING:1.3,CAP_SHIFT:.7,MID_SHIFT:.35,OPPOSITE_SIDE:{left:"right",right:"left",top:"bottom",bottom:"top"}}},{}],472:[function(e,o,f){o.exports={axisRefDescription:function(r,a,u){return["If set to a",r,"axis id (e.g. *"+r+"* or","*"+r+"2*), the `"+r+"` position refers to a",r,"coordinate. If set to *paper*, the `"+r+"`","position refers to the distance from the",a,"of the plotting","area in normalized coordinates where *0* (*1*) corresponds to the",a,"("+u+"). If set to a",r,"axis ID followed by","*domain* (separated by a space), the position behaves like for","*paper*, but refers to the distance in fractions of the domain","length from the",a,"of the domain of that axis: e.g.,","*"+r+"2 domain* refers to the domain of the second",r," axis and a",r,"position of 0.5 refers to the","point between the",a,"and the",u,"of the domain of the","second",r,"axis."].join(" ")}}},{}],473:[function(e,o,f){o.exports={INCREASING:{COLOR:"#3D9970",SYMBOL:"\u25B2"},DECREASING:{COLOR:"#FF4136",SYMBOL:"\u25BC"}}},{}],474:[function(e,o,f){o.exports={FORMAT_LINK:"https://github.com/d3/d3-format/tree/v1.4.5#d3-format",DATE_FORMAT_LINK:"https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format"}},{}],475:[function(e,o,f){o.exports={COMPARISON_OPS:["=","!=","<",">=",">","<="],COMPARISON_OPS2:["=","<",">=",">","<="],INTERVAL_OPS:["[]","()","[)","(]","][",")(","](",")["],SET_OPS:["{}","}{"],CONSTRAINT_REDUCTION:{"=":"=","<":"<","<=":"<",">":">",">=":">","[]":"[]","()":"[]","[)":"[]","(]":"[]","][":"][",")(":"][","](":"][",")[":"]["}}},{}],476:[function(e,o,f){o.exports={solid:[[],0],dot:[[.5,1],200],dash:[[.5,1],50],longdash:[[.5,1],10],dashdot:[[.5,.625,.875,1],50],longdashdot:[[.5,.7,.8,1],10]}},{}],477:[function(e,o,f){o.exports={circle:"\u25CF","circle-open":"\u25CB",square:"\u25A0","square-open":"\u25A1",diamond:"\u25C6","diamond-open":"\u25C7",cross:"+",x:"\u274C"}},{}],478:[function(e,o,f){o.exports={SHOW_PLACEHOLDER:100,HIDE_PLACEHOLDER:1e3,DESELECTDIM:.2}},{}],479:[function(e,o,f){o.exports={BADNUM:void 0,FP_SAFE:1e-4*Number.MAX_VALUE,ONEMAXYEAR:316224e5,ONEAVGYEAR:315576e5,ONEMINYEAR:31536e6,ONEMAXQUARTER:79488e5,ONEAVGQUARTER:78894e5,ONEMINQUARTER:76896e5,ONEMAXMONTH:26784e5,ONEAVGMONTH:26298e5,ONEMINMONTH:24192e5,ONEWEEK:6048e5,ONEDAY:864e5,ONEHOUR:36e5,ONEMIN:6e4,ONESEC:1e3,EPOCHJD:24405875e-1,ALMOST_EQUAL:.999999,LOG_CLIP:10,MINUS_SIGN:"\u2212"}},{}],480:[function(e,o,f){f.xmlns="http://www.w3.org/2000/xmlns/",f.svg="http://www.w3.org/2000/svg",f.xlink="http://www.w3.org/1999/xlink",f.svgAttrs={xmlns:f.svg,"xmlns:xlink":f.xlink}},{}],481:[function(e,o,f){f.version=e("./version").version,e("native-promise-only"),e("../build/plotcss");for(var r=e("./registry"),a=f.register=r.register,u=e("./plot_api"),c=Object.keys(u),i=0;iplotly-logomark"}}},{}],483:[function(e,o,f){f.isLeftAnchor=function(r){return r.xanchor==="left"||r.xanchor==="auto"&&r.x<=1/3},f.isCenterAnchor=function(r){return r.xanchor==="center"||r.xanchor==="auto"&&r.x>1/3&&r.x<2/3},f.isRightAnchor=function(r){return r.xanchor==="right"||r.xanchor==="auto"&&r.x>=2/3},f.isTopAnchor=function(r){return r.yanchor==="top"||r.yanchor==="auto"&&r.y>=2/3},f.isMiddleAnchor=function(r){return r.yanchor==="middle"||r.yanchor==="auto"&&r.y>1/3&&r.y<2/3},f.isBottomAnchor=function(r){return r.yanchor==="bottom"||r.yanchor==="auto"&&r.y<=1/3}},{}],484:[function(e,o,f){var r=e("./mod"),a=r.mod,u=r.modHalf,c=Math.PI,i=2*c;function s(m){return Math.abs(m[1]-m[0])>i-1e-14}function l(m,g){return u(g-m,i)}function d(m,g){if(s(g))return!0;var p,v;g[0](v=a(v,i))&&(v+=i);var y=a(m,i),x=y+i;return y>=p&&y<=v||x>=p&&x<=v}function h(m,g,p,v,y,x,w){y=y||0,x=x||0;var k,b,T,_,M,A=s([p,v]);function S(R,z){return[R*Math.cos(z)+y,x-R*Math.sin(z)]}A?(k=0,b=c,T=i):p=y&&m<=x);var y,x},pathArc:function(m,g,p,v,y){return h(null,m,g,p,v,y,0)},pathSector:function(m,g,p,v,y){return h(null,m,g,p,v,y,1)},pathAnnulus:function(m,g,p,v,y,x){return h(m,g,p,v,y,x,1)}}},{"./mod":510}],485:[function(e,o,f){var r=Array.isArray,a=ArrayBuffer,u=DataView;function c(l){return a.isView(l)&&!(l instanceof u)}function i(l){return r(l)||c(l)}function s(l,d,h){if(i(l)){if(i(l[0])){for(var m=h,g=0;gx.max?v.set(y):v.set(+p)}},integer:{coerceFunction:function(p,v,y,x){p%1||!r(p)||x.min!==void 0&&px.max?v.set(y):v.set(+p)}},string:{coerceFunction:function(p,v,y,x){if(typeof p!="string"){var w=typeof p=="number";x.strict!==!0&&w?v.set(String(p)):v.set(y)}else x.noBlank&&!p?v.set(y):v.set(p)}},color:{coerceFunction:function(p,v,y){a(p).isValid()?v.set(p):v.set(y)}},colorlist:{coerceFunction:function(p,v,y){Array.isArray(p)&&p.length&&p.every(function(x){return a(x).isValid()})?v.set(p):v.set(y)}},colorscale:{coerceFunction:function(p,v,y){v.set(c.get(p,y))}},angle:{coerceFunction:function(p,v,y){p==="auto"?v.set("auto"):r(p)?v.set(h(+p,360)):v.set(y)}},subplotid:{coerceFunction:function(p,v,y,x){var w=x.regex||d(y);typeof p=="string"&&w.test(p)?v.set(p):v.set(y)},validateFunction:function(p,v){var y=v.dflt;return p===y||typeof p=="string"&&!!d(y).test(p)}},flaglist:{coerceFunction:function(p,v,y,x){if(typeof p=="string")if((x.extras||[]).indexOf(p)===-1){for(var w=p.split("+"),k=0;k=r&&N<=a?N:d}if(typeof N!="string"&&typeof N!="number")return d;N=String(N);var te=T(B),Y=N.charAt(0);!te||Y!=="G"&&Y!=="g"||(N=N.substr(1),B="");var Z=te&&B.substr(0,7)==="chinese",re=N.match(Z?k:w);if(!re)return d;var U=re[1],q=re[3]||"1",$=Number(re[5]||1),ne=Number(re[7]||0),H=Number(re[9]||0),Q=Number(re[11]||0);if(te){if(U.length===2)return d;var ee;U=Number(U);try{var ie=y.getComponentMethod("calendars","getCal")(B);if(Z){var ae=q.charAt(q.length-1)==="i";q=parseInt(q,10),ee=ie.newDate(U,ie.toMonthIndex(U,q,ae),$)}else ee=ie.newDate(U,Number(q),$)}catch{return d}return ee?(ee.toJD()-v)*h+ne*m+H*g+Q*p:d}U=U.length===2?(Number(U)+2e3-b)%100+b:Number(U),q-=1;var ue=new Date(Date.UTC(2e3,q,$,ne,H));return ue.setUTCFullYear(U),ue.getUTCMonth()!==q||ue.getUTCDate()!==$?d:ue.getTime()+Q*p},r=f.MIN_MS=f.dateTime2ms("-9999"),a=f.MAX_MS=f.dateTime2ms("9999-12-31 23:59:59.9999"),f.isDateTime=function(N,B){return f.dateTime2ms(N,B)!==d};var M=90*h,A=3*m,S=5*g;function E(N,B,G,W,K){if((B||G||W||K)&&(N+=" "+_(B,2)+":"+_(G,2),(W||K)&&(N+=":"+_(W,2),K))){for(var te=4;K%10==0;)te-=1,K/=10;N+="."+_(K,te)}return N}f.ms2DateTime=function(N,B,G){if(typeof N!="number"||!(N>=r&&N<=a))return d;B||(B=0);var W,K,te,Y,Z,re,U=Math.floor(10*s(N+.05,1)),q=Math.round(N-U/10);if(T(G)){var $=Math.floor(q/h)+v,ne=Math.floor(s(N,h));try{W=y.getComponentMethod("calendars","getCal")(G).fromJD($).formatDate("yyyy-mm-dd")}catch{W=x("G%Y-%m-%d")(new Date(q))}if(W.charAt(0)==="-")for(;W.length<11;)W="-0"+W.substr(1);else for(;W.length<10;)W="0"+W;K=B=r+h&&N<=a-h))return d;var B=Math.floor(10*s(N+.05,1)),G=new Date(Math.round(N-B/10));return E(u("%Y-%m-%d")(G),G.getHours(),G.getMinutes(),G.getSeconds(),10*G.getUTCMilliseconds()+B)},f.cleanDate=function(N,B,G){if(N===d)return B;if(f.isJSDate(N)||typeof N=="number"&&isFinite(N)){if(T(G))return i.error("JS Dates and milliseconds are incompatible with world calendars",N),B;if(!(N=f.ms2DateTimeLocal(+N))&&B!==void 0)return B}else if(!f.isDateTime(N,G))return i.error("unrecognized date",N),B;return N};var D=/%\d?f/g,O=/%h/g,R={1:"1",2:"1",3:"2",4:"2"};function z(N,B,G,W){N=N.replace(D,function(te){var Y=Math.min(+te.charAt(1)||6,6);return(B/1e3%1+2).toFixed(Y).substr(2).replace(/0+$/,"")||"0"});var K=new Date(Math.floor(B+.05));if(N=N.replace(O,function(){return R[G("%q")(K)]}),T(W))try{N=y.getComponentMethod("calendars","worldCalFmt")(N,B,W)}catch{return"Invalid"}return G(N)(K)}var L=[59,59.9,59.99,59.999,59.9999];f.formatDate=function(N,B,G,W,K,te){if(K=T(K)&&K,!B)if(G==="y")B=te.year;else if(G==="m")B=te.month;else{if(G!=="d")return function(Y,Z){var re=s(Y+.05,h),U=_(Math.floor(re/m),2)+":"+_(s(Math.floor(re/g),60),2);if(Z!=="M"){c(Z)||(Z=0);var q=(100+Math.min(s(Y/p,60),L[Z])).toFixed(Z).substr(1);Z>0&&(q=q.replace(/0+$/,"").replace(/[\.]$/,"")),U+=":"+q}return U}(N,G)+` +`+z(te.dayMonthYear,N,W,K);B=te.dayMonth+` +`+te.year}return z(B,N,W,K)};var P=3*h;f.incrementMonth=function(N,B,G){G=T(G)&&G;var W=s(N,h);if(N=Math.round(N-W),G)try{var K=Math.round(N/h)+v,te=y.getComponentMethod("calendars","getCal")(G),Y=te.fromJD(K);return B%12?te.add(Y,B,"m"):te.add(Y,B/12,"y"),(Y.toJD()-v)*h+W}catch{i.error("invalid ms "+N+" in calendar "+G)}var Z=new Date(N+P);return Z.setUTCMonth(Z.getUTCMonth()+B)+W-P},f.findExactDates=function(N,B){for(var G,W,K=0,te=0,Y=0,Z=0,re=T(B)&&y.getComponentMethod("calendars","getCal")(B),U=0;U0&&E[D+1][0]<0)return D;return null}switch(x=M==="RUS"||M==="FJI"?function(E){var D;if(S(E)===null)D=E;else for(D=new Array(E.length),b=0;bD?O[R++]=[E[b][0]+360,E[b][1]]:b===D?(O[R++]=E[b],O[R++]=[E[b][0],-90]):O[R++]=E[b];var z=m.tester(O);z.pts.pop(),A.push(z)}:function(E){A.push(m.tester(E))},T.type){case"MultiPolygon":for(w=0;w<_.length;w++)for(k=0;k<_[w].length;k++)x(_[w][k]);break;case"Polygon":for(w=0;w<_.length;w++)x(_[w])}return A},getTraceGeojson:v,extractTraceFeature:function(y){var x=y[0].trace,w=v(x);if(!w)return!1;var k,b={},T=[];for(k=0;kG&&(G=te,P=K)}else P=N;return c.default(P).geometry.coordinates}(z),O.fIn=E,O.fOut=z,T.push(z)}else l.log(["Location",O.loc,"does not have a valid GeoJSON geometry.","Traces with locationmode *geojson-id* only support","*Polygon* and *MultiPolygon* geometries."].join(" "))}delete b[D]}switch(w.type){case"FeatureCollection":var A=w.features;for(k=0;k100?(clearInterval(D),S("Unexpected error while fetching from "+M)):void E++},50)})}for(var T=0;T0&&(c.push(i),i=[])}return i.length>0&&c.push(i),c},f.makeLine=function(a){return a.length===1?{type:"LineString",coordinates:a[0]}:{type:"MultiLineString",coordinates:a}},f.makePolygon=function(a){if(a.length===1)return{type:"Polygon",coordinates:a};for(var u=new Array(a.length),c=0;c1||A<0||A>1?null:{x:l+x*A,y:d+b*A}}function s(l,d,h,m,g){var p=m*l+g*d;if(p<0)return m*m+g*g;if(p>h){var v=m-l,y=g-d;return v*v+y*y}var x=m*d-g*l;return x*x/h}f.segmentsIntersect=i,f.segmentDistance=function(l,d,h,m,g,p,v,y){if(i(l,d,h,m,g,p,v,y))return 0;var x=h-l,w=m-d,k=v-g,b=y-p,T=x*x+w*w,_=k*k+b*b,M=Math.min(s(x,w,T,g-l,p-d),s(x,w,T,v-l,y-d),s(k,b,_,l-g,d-p),s(k,b,_,h-g,m-p));return Math.sqrt(M)},f.getTextLocation=function(l,d,h,m){if(l===a&&m===u||(r={},a=l,u=m),r[h])return r[h];var g=l.getPointAtLength(c(h-m/2,d)),p=l.getPointAtLength(c(h+m/2,d)),v=Math.atan((p.y-g.y)/(p.x-g.x)),y=l.getPointAtLength(c(h,d)),x={x:(4*y.x+g.x+p.x)/6,y:(4*y.y+g.y+p.y)/6,theta:v};return r[h]=x,x},f.clearLocationCache=function(){a=null},f.getVisibleSegment=function(l,d,h){var m,g,p=d.left,v=d.right,y=d.top,x=d.bottom,w=0,k=l.getTotalLength(),b=k;function T(M){var A=l.getPointAtLength(M);M===0?m=A:M===k&&(g=A);var S=A.xv?A.x-v:0,E=A.yx?A.y-x:0;return Math.sqrt(S*S+E*E)}for(var _=T(w);_;){if((w+=_+h)>b)return;_=T(w)}for(_=T(b);_;){if(w>(b-=_+h))return;_=T(b)}return{min:w,max:b,len:b-w,total:k,isClosed:w===0&&b===k&&Math.abs(m.x-g.x)<.1&&Math.abs(m.y-g.y)<.1}},f.findPointOnPath=function(l,d,h,m){for(var g,p,v,y=(m=m||{}).pathLength||l.getTotalLength(),x=m.tolerance||.001,w=m.iterationLimit||30,k=l.getPointAtLength(0)[h]>l.getPointAtLength(y)[h]?-1:1,b=0,T=0,_=y;b0?_=g:T=g,b++}return p}},{"./mod":510}],499:[function(e,o,f){var r=e("fast-isnumeric"),a=e("tinycolor2"),u=e("color-normalize"),c=e("../components/colorscale"),i=e("../components/color/attributes").defaultLine,s=e("./array").isArrayOrTypedArray,l=u(i);function d(g,p){var v=g;return v[3]*=p,v}function h(g){if(r(g))return l;var p=u(g);return p.length?p:l}function m(g){return r(g)?g:1}o.exports={formatColor:function(g,p,v){var y,x,w,k,b,T=g.color,_=s(T),M=s(p),A=c.extractOpts(g),S=[];if(y=A.colorscale!==void 0?c.makeColorScaleFuncFromTrace(g):h,x=_?function(D,O){return D[O]===void 0?l:u(y(D[O]))}:h,w=M?function(D,O){return D[O]===void 0?1:m(D[O])}:m,_||M)for(var E=0;E1?(u*r+u*a)/u:r+a,i=String(c).length;if(i>16){var s=String(a).length;if(i>=String(r).length+s){var l=parseFloat(c).toPrecision(12);l.indexOf("e+")===-1&&(c=+l)}}return c}},{}],503:[function(e,o,f){var r=e("@plotly/d3"),a=e("d3-time-format").utcFormat,u=e("d3-format").format,c=e("fast-isnumeric"),i=e("../constants/numerical"),s=i.FP_SAFE,l=-s,d=i.BADNUM,h=o.exports={};h.adjustFormat=function(U){return!U||/^\d[.]\df/.test(U)||/[.]\d%/.test(U)?U:U==="0.f"?"~f":/^\d%/.test(U)?"~%":/^\ds/.test(U)?"~s":!/^[~,.0$]/.test(U)&&/[&fps]/.test(U)?"~"+U:U};var m={};h.warnBadFormat=function(U){var q=String(U);m[q]||(m[q]=1,h.warn('encountered bad format: "'+q+'"'))},h.noFormat=function(U){return String(U)},h.numberFormat=function(U){var q;try{q=u(h.adjustFormat(U))}catch{return h.warnBadFormat(U),h.noFormat}return q},h.nestedProperty=e("./nested_property"),h.keyedContainer=e("./keyed_container"),h.relativeAttr=e("./relative_attr"),h.isPlainObject=e("./is_plain_object"),h.toLogRange=e("./to_log_range"),h.relinkPrivateKeys=e("./relink_private");var g=e("./array");h.isTypedArray=g.isTypedArray,h.isArrayOrTypedArray=g.isArrayOrTypedArray,h.isArray1D=g.isArray1D,h.ensureArray=g.ensureArray,h.concat=g.concat,h.maxRowLength=g.maxRowLength,h.minRowLength=g.minRowLength;var p=e("./mod");h.mod=p.mod,h.modHalf=p.modHalf;var v=e("./coerce");h.valObjectMeta=v.valObjectMeta,h.coerce=v.coerce,h.coerce2=v.coerce2,h.coerceFont=v.coerceFont,h.coercePattern=v.coercePattern,h.coerceHoverinfo=v.coerceHoverinfo,h.coerceSelectionMarkerOpacity=v.coerceSelectionMarkerOpacity,h.validate=v.validate;var y=e("./dates");h.dateTime2ms=y.dateTime2ms,h.isDateTime=y.isDateTime,h.ms2DateTime=y.ms2DateTime,h.ms2DateTimeLocal=y.ms2DateTimeLocal,h.cleanDate=y.cleanDate,h.isJSDate=y.isJSDate,h.formatDate=y.formatDate,h.incrementMonth=y.incrementMonth,h.dateTick0=y.dateTick0,h.dfltRange=y.dfltRange,h.findExactDates=y.findExactDates,h.MIN_MS=y.MIN_MS,h.MAX_MS=y.MAX_MS;var x=e("./search");h.findBin=x.findBin,h.sorterAsc=x.sorterAsc,h.sorterDes=x.sorterDes,h.distinctVals=x.distinctVals,h.roundUp=x.roundUp,h.sort=x.sort,h.findIndexOfMin=x.findIndexOfMin,h.sortObjectKeys=e("./sort_object_keys");var w=e("./stats");h.aggNums=w.aggNums,h.len=w.len,h.mean=w.mean,h.median=w.median,h.midRange=w.midRange,h.variance=w.variance,h.stdev=w.stdev,h.interp=w.interp;var k=e("./matrix");h.init2dArray=k.init2dArray,h.transposeRagged=k.transposeRagged,h.dot=k.dot,h.translationMatrix=k.translationMatrix,h.rotationMatrix=k.rotationMatrix,h.rotationXYMatrix=k.rotationXYMatrix,h.apply3DTransform=k.apply3DTransform,h.apply2DTransform=k.apply2DTransform,h.apply2DTransform2=k.apply2DTransform2,h.convertCssMatrix=k.convertCssMatrix,h.inverseTransformMatrix=k.inverseTransformMatrix;var b=e("./angles");h.deg2rad=b.deg2rad,h.rad2deg=b.rad2deg,h.angleDelta=b.angleDelta,h.angleDist=b.angleDist,h.isFullCircle=b.isFullCircle,h.isAngleInsideSector=b.isAngleInsideSector,h.isPtInsideSector=b.isPtInsideSector,h.pathArc=b.pathArc,h.pathSector=b.pathSector,h.pathAnnulus=b.pathAnnulus;var T=e("./anchor_utils");h.isLeftAnchor=T.isLeftAnchor,h.isCenterAnchor=T.isCenterAnchor,h.isRightAnchor=T.isRightAnchor,h.isTopAnchor=T.isTopAnchor,h.isMiddleAnchor=T.isMiddleAnchor,h.isBottomAnchor=T.isBottomAnchor;var _=e("./geometry2d");h.segmentsIntersect=_.segmentsIntersect,h.segmentDistance=_.segmentDistance,h.getTextLocation=_.getTextLocation,h.clearLocationCache=_.clearLocationCache,h.getVisibleSegment=_.getVisibleSegment,h.findPointOnPath=_.findPointOnPath;var M=e("./extend");h.extendFlat=M.extendFlat,h.extendDeep=M.extendDeep,h.extendDeepAll=M.extendDeepAll,h.extendDeepNoArrays=M.extendDeepNoArrays;var A=e("./loggers");h.log=A.log,h.warn=A.warn,h.error=A.error;var S=e("./regex");h.counterRegex=S.counter;var E=e("./throttle");h.throttle=E.throttle,h.throttleDone=E.done,h.clearThrottle=E.clear;var D=e("./dom");function O(U){var q={};for(var $ in U)for(var ne=U[$],H=0;Hs||U=q)&&c(U)&&U>=0&&U%1==0},h.noop=e("./noop"),h.identity=e("./identity"),h.repeat=function(U,q){for(var $=new Array(q),ne=0;ne$?Math.max($,Math.min(q,U)):Math.max(q,Math.min($,U))},h.bBoxIntersect=function(U,q,$){return $=$||0,U.left<=q.right+$&&q.left<=U.right+$&&U.top<=q.bottom+$&&q.top<=U.bottom+$},h.simpleMap=function(U,q,$,ne,H){for(var Q=U.length,ee=new Array(Q),ie=0;ie=Math.pow(2,$)?H>10?(h.warn("randstr failed uniqueness"),ae):U(q,$,ne,(H||0)+1):ae},h.OptionControl=function(U,q){U||(U={}),q||(q="opt");var $={optionList:[],_newoption:function(ne){ne[q]=U,$[ne.name]=ne,$.optionList.push(ne)}};return $["_"+q]=U,$},h.smooth=function(U,q){if((q=Math.round(q)||0)<2)return U;var $,ne,H,Q,ee=U.length,ie=2*ee,ae=2*q-1,ue=new Array(ae),le=new Array(ee);for($=0;$=ie&&(H-=ie*Math.floor(H/ie)),H<0?H=-1-H:H>=ee&&(H=ie-1-H),Q+=U[H]*ue[ne];le[$]=Q}return le},h.syncOrAsync=function(U,q,$){var ne;function H(){return h.syncOrAsync(U,q,$)}for(;U.length;)if((ne=(0,U.splice(0,1)[0])(q))&&ne.then)return ne.then(H);return $&&$(q)},h.stripTrailingSlash=function(U){return U.substr(-1)==="/"?U.substr(0,U.length-1):U},h.noneOrAll=function(U,q,$){if(U){var ne,H=!1,Q=!0;for(ne=0;ne<$.length;ne++)U[$[ne]]!=null?H=!0:Q=!1;if(H&&!Q)for(ne=0;ne<$.length;ne++)U[$[ne]]=q[$[ne]]}},h.mergeArray=function(U,q,$,ne){var H=typeof ne=="function";if(h.isArrayOrTypedArray(U))for(var Q=Math.min(U.length,q.length),ee=0;ee0?H:0})},h.fillArray=function(U,q,$,ne){if(ne=ne||h.identity,h.isArrayOrTypedArray(U))for(var H=0;H1?H+ee[1]:"";if(Q&&(ee.length>1||ie.length>4||$))for(;ne.test(ie);)ie=ie.replace(ne,"$1"+Q+"$2");return ie+ae},h.TEMPLATE_STRING_REGEX=/%{([^\s%{}:]*)([:|\|][^}]*)?}/g;var B=/^\w*$/;h.templateString=function(U,q){var $={};return U.replace(h.TEMPLATE_STRING_REGEX,function(ne,H){var Q;return B.test(H)?Q=q[H]:($[H]=$[H]||h.nestedProperty(q,H).get,Q=$[H]()),h.isValidTextValue(Q)?Q:""})};var G={max:10,count:0,name:"hovertemplate"};h.hovertemplateString=function(){return te.apply(G,arguments)};var W={max:10,count:0,name:"texttemplate"};h.texttemplateString=function(){return te.apply(W,arguments)};var K=/^[:|\|]/;function te(U,q,$){var ne=this,H=arguments;q||(q={});var Q={};return U.replace(h.TEMPLATE_STRING_REGEX,function(ee,ie,ae){var ue,le,ge,fe=ie==="_xother"||ie==="_yother",me=ie==="_xother_"||ie==="_yother_",_e=ie==="xother_"||ie==="yother_",we=ie==="xother"||ie==="yother"||fe||_e||me,Te=ie;if((fe||me)&&(Te=Te.substring(1)),(_e||me)&&(Te=Te.substring(0,Te.length-1)),we){if((ue=q[Te])===void 0)return""}else for(ge=3;ge=48&&ee<=57,ue=ie>=48&&ie<=57;if(ae&&(ne=10*ne+ee-48),ue&&(H=10*H+ie-48),!ae||!ue){if(ne!==H)return ne-H;if(ee!==ie)return ee-ie}}return H-ne};var Y=2e9;h.seedPseudoRandom=function(){Y=2e9},h.pseudoRandom=function(){var U=Y;return Y=(69069*Y+1)%4294967296,Math.abs(Y-U)<429496729?h.pseudoRandom():Y/4294967296},h.fillText=function(U,q,$){var ne=Array.isArray($)?function(ee){$.push(ee)}:function(ee){$.text=ee},H=h.extractOption(U,q,"htx","hovertext");if(h.isValidTextValue(H))return ne(H);var Q=h.extractOption(U,q,"tx","text");return h.isValidTextValue(Q)?ne(Q):void 0},h.isValidTextValue=function(U){return U||U===0},h.formatPercent=function(U,q){q=q||0;for(var $=(Math.round(100*U*Math.pow(10,q))*Math.pow(.1,q)).toFixed(q)+"%",ne=0;ne1&&(ue=1):ue=0,h.strTranslate(H-ue*($+ee),Q-ue*(ne+ie))+h.strScale(ue)+(ae?"rotate("+ae+(q?"":" "+$+" "+ne)+")":"")},h.ensureUniformFontSize=function(U,q){var $=h.extendFlat({},q);return $.size=Math.max(q.size,U._fullLayout.uniformtext.minsize||0),$},h.join2=function(U,q,$){var ne=U.length;return ne>1?U.slice(0,-1).join(q)+$+U[ne-1]:U.join(q)},h.bigFont=function(U){return Math.round(1.2*U)};var Z=h.getFirefoxVersion(),re=Z!==null&&Z<86;h.getPositionFromD3Event=function(){return re?[r.event.layerX,r.event.layerY]:[r.event.offsetX,r.event.offsetY]}},{"../constants/numerical":479,"./anchor_utils":483,"./angles":484,"./array":485,"./clean_number":486,"./clear_responsive":488,"./coerce":489,"./dates":490,"./dom":491,"./extend":493,"./filter_unique":494,"./filter_visible":495,"./geometry2d":498,"./identity":501,"./increment":502,"./is_plain_object":504,"./keyed_container":505,"./localize":506,"./loggers":507,"./make_trace_groups":508,"./matrix":509,"./mod":510,"./nested_property":511,"./noop":512,"./notifier":513,"./preserve_drawing_buffer":517,"./push_unique":518,"./regex":520,"./relative_attr":521,"./relink_private":522,"./search":523,"./sort_object_keys":526,"./stats":527,"./throttle":530,"./to_log_range":531,"@plotly/d3":58,"d3-format":112,"d3-time-format":120,"fast-isnumeric":190}],504:[function(e,o,f){o.exports=function(r){return window&&window.process&&window.process.versions?Object.prototype.toString.call(r)==="[object Object]":Object.prototype.toString.call(r)==="[object Object]"&&Object.getPrototypeOf(r).hasOwnProperty("hasOwnProperty")}},{}],505:[function(e,o,f){var r=e("./nested_property"),a=/^\w*$/;o.exports=function(u,c,i,s){var l,d,h;i=i||"name",s=s||"value";var m={};c&&c.length?(h=r(u,c),d=h.get()):d=u,c=c||"";var g={};if(d)for(l=0;l2)return m[x]=2|m[x],v.set(y,null);if(p){for(l=x;l1){var i=["LOG:"];for(c=0;c1){var s=[];for(c=0;c"),"long")}},u.warn=function(){var c;if(r.logging>0){var i=["WARN:"];for(c=0;c0){var s=[];for(c=0;c"),"stick")}},u.error=function(){var c;if(r.logging>0){var i=["ERROR:"];for(c=0;c0){var s=[];for(c=0;c"),"stick")}}},{"../plot_api/plot_config":541,"./notifier":513}],508:[function(e,o,f){var r=e("@plotly/d3");o.exports=function(a,u,c){var i=a.selectAll("g."+c.replace(/\s/g,".")).data(u,function(l){return l[0].trace.uid});i.exit().remove(),i.enter().append("g").attr("class",c),i.order();var s=a.classed("rangeplot")?"nodeRangePlot3":"node3";return i.each(function(l){l[0][s]=r.select(this)}),i}},{"@plotly/d3":58}],509:[function(e,o,f){var r=e("gl-mat4");f.init2dArray=function(a,u){for(var c=new Array(a),i=0;ia/2?r-Math.round(r/a)*a:r}}},{}],511:[function(e,o,f){var r=e("fast-isnumeric"),a=e("./array").isArrayOrTypedArray;function u(m,g){return function(){var p,v,y,x,w,k=m;for(x=0;x/g),v=0;vd||b===a||bm)&&(!w||!g(x))}:function(x,w){var k=x[0],b=x[1];if(k===a||kd||b===a||bm)return!1;var T,_,M,A,S,E=s.length,D=s[0][0],O=s[0][1],R=0;for(T=1;TMath.max(_,D)||b>Math.max(M,O)))if(bv||Math.abs(r(h,x))>l)return!0;return!1},u.filter=function(c,i){var s=[c[0]],l=0,d=0;function h(m){c.push(m);var g=s.length,p=l;s.splice(d+1);for(var v=p+1;v1&&h(c.pop()),{addPt:h,raw:c,filtered:s}}},{"../constants/numerical":479,"./matrix":509}],516:[function(e,o,f){(function(r){(function(){var a=e("./show_no_webgl_msg"),u=e("regl");o.exports=function(c,i,s){var l=c._fullLayout,d=!0;return l._glcanvas.each(function(h){if(h.regl)h.regl.preloadCachedCode(s);else if(!h.pick||l._has("parcoords")){try{h.regl=u({canvas:this,attributes:{antialias:!h.pick,preserveDrawingBuffer:!0},pixelRatio:c._context.plotGlPixelRatio||r.devicePixelRatio,extensions:i||[],cachedCode:s||{}})}catch{d=!1}h.regl||(d=!1),d&&this.addEventListener("webglcontextlost",function(m){c&&c.emit&&c.emit("plotly_webglcontextlost",{event:m,layer:h.key})},!1)}}),d||a({container:l._glcontainer.node()}),d}}).call(this)}).call(this,typeof Ro<"u"?Ro:typeof self<"u"?self:typeof window<"u"?window:{})},{"./show_no_webgl_msg":525,regl:283}],517:[function(e,o,f){var r=e("fast-isnumeric"),a=e("is-mobile");o.exports=function(u){var c;if(typeof(c=u&&u.hasOwnProperty("userAgent")?u.userAgent:function(){var g;return typeof navigator<"u"&&(g=navigator.userAgent),g&&g.headers&&typeof g.headers["user-agent"]=="string"&&(g=g.headers["user-agent"]),g}())!="string")return!0;var i=a({ua:{headers:{"user-agent":c}},tablet:!0,featureDetect:!1});if(!i){for(var s=c.split(" "),l=1;l-1;d--){var h=s[d];if(h.substr(0,8)==="Version/"){var m=h.substr(8).split(".")[0];if(r(m)&&(m=+m),m>=13)return!0}}}return i}},{"fast-isnumeric":190,"is-mobile":234}],518:[function(e,o,f){o.exports=function(r,a){if(a instanceof RegExp){for(var u=a.toString(),c=0;ca.queueLength&&(c.undoQueue.queue.shift(),c.undoQueue.index--))},startSequence:function(c){c.undoQueue=c.undoQueue||{index:0,queue:[],sequence:!1},c.undoQueue.sequence=!0,c.undoQueue.beginSequence=!0},stopSequence:function(c){c.undoQueue=c.undoQueue||{index:0,queue:[],sequence:!1},c.undoQueue.sequence=!1,c.undoQueue.beginSequence=!1},undo:function(c){var i,s;if(!(c.undoQueue===void 0||isNaN(c.undoQueue.index)||c.undoQueue.index<=0)){for(c.undoQueue.index--,i=c.undoQueue.queue[c.undoQueue.index],c.undoQueue.inSequence=!0,s=0;s=c.undoQueue.queue.length)){for(i=c.undoQueue.queue[c.undoQueue.index],c.undoQueue.inSequence=!0,s=0;sm}function d(h,m){return h>=m}f.findBin=function(h,m,g){if(r(m.start))return g?Math.ceil((h-m.start)/m.size-1e-9)-1:Math.floor((h-m.start)/m.size+1e-9);var p,v,y=0,x=m.length,w=0,k=x>1?(m[x-1]-m[0])/(x-1):1;for(v=k>=0?g?i:s:g?d:l,h+=1e-9*k*(g?-1:1)*(k>=0?1:-1);y90&&a.log("Long binary search..."),y-1},f.sorterAsc=function(h,m){return h-m},f.sorterDes=function(h,m){return m-h},f.distinctVals=function(h){var m,g=h.slice();for(g.sort(f.sorterAsc),m=g.length-1;m>-1&&g[m]===c;m--);for(var p,v=g[m]-g[0]||1,y=v/(m||1)/1e4,x=[],w=0;w<=m;w++){var k=g[w],b=k-p;p===void 0?(x.push(k),p=k):b>y&&(v=Math.min(v,b),x.push(k),p=k)}return{vals:x,minDiff:v}},f.roundUp=function(h,m,g){for(var p,v=0,y=m.length-1,x=0,w=g?0:1,k=g?1:0,b=g?Math.ceil:Math.floor;v0&&(p=1),g&&p)return h.sort(m)}return p?h:h.reverse()},f.findIndexOfMin=function(h,m){m=m||u;for(var g,p=1/0,v=0;vi.length)&&(s=i.length),r(c)||(c=!1),a(i[0])){for(d=new Array(s),l=0;lu.length-1)return u[u.length-1];var i=c%1;return i*u[Math.ceil(c)]+(1-i)*u[Math.floor(c)]}},{"./array":485,"fast-isnumeric":190}],528:[function(e,o,f){var r=e("color-normalize");o.exports=function(a){return a?r(a):[0,0,0,1]}},{"color-normalize":89}],529:[function(e,o,f){var r=e("@plotly/d3"),a=e("../lib"),u=a.strTranslate,c=e("../constants/xmlns_namespaces"),i=e("../constants/alignment").LINE_SPACING,s=/([^$]*)([$]+[^$]*[$]+)([^$]*)/;f.convertToTspans=function(L,P,N){var B=L.text(),G=!L.attr("data-notex")&&P&&P._context.typesetMath&&typeof MathJax<"u"&&B.match(s),W=r.select(L.node().parentNode);if(!W.empty()){var K=L.attr("class")?L.attr("class").split(" ")[0]:"text";return K+="-math",W.selectAll("svg."+K).remove(),W.selectAll("g."+K+"-group").remove(),L.style("display",null).attr({"data-unformatted":B,"data-math":"N"}),G?(P&&P._promises||[]).push(new Promise(function(Y){L.style("display","none");var Z=parseInt(L.node().style.fontSize,10),re={fontSize:Z};(function(U,q,$){var ne,H,Q,ee,ie=parseInt((MathJax.version||"").split(".")[0]);if(ie!==2&&ie!==3)return void a.warn("No MathJax version:",MathJax.version);var ae=function(){var le="math-output-"+a.randstr({},64),ge=(ee=r.select("body").append("div").attr({id:le}).style({visibility:"hidden",position:"absolute","font-size":q.fontSize+"px"}).text(U.replace(l,"\\lt ").replace(d,"\\gt "))).node();return ie===2?MathJax.Hub.Typeset(ge):MathJax.typeset([ge])},ue=function(){var le=ee.select(ie===2?".MathJax_SVG":".MathJax"),ge=!le.empty()&&ee.select("svg").node();if(ge){var fe,me=ge.getBoundingClientRect();fe=ie===2?r.select("body").select("#MathJax_SVG_glyphs"):le.select("defs"),$(le,fe,me)}else a.log("There was an error in the tex syntax.",U),$();ee.remove()};ie===2?MathJax.Hub.Queue(function(){return H=a.extendDeepAll({},MathJax.Hub.config),Q=MathJax.Hub.processSectionDelay,MathJax.Hub.processSectionDelay!==void 0&&(MathJax.Hub.processSectionDelay=0),MathJax.Hub.Config({messageStyle:"none",tex2jax:{inlineMath:h},displayAlign:"left"})},function(){if((ne=MathJax.Hub.config.menuSettings.renderer)!=="SVG")return MathJax.Hub.setRenderer("SVG")},ae,ue,function(){if(ne!=="SVG")return MathJax.Hub.setRenderer(ne)},function(){return Q!==void 0&&(MathJax.Hub.processSectionDelay=Q),MathJax.Hub.Config(H)}):ie===3&&(H=a.extendDeepAll({},MathJax.config),MathJax.config.tex||(MathJax.config.tex={}),MathJax.config.tex.inlineMath=h,(ne=MathJax.config.startup.output)!=="svg"&&(MathJax.config.startup.output="svg"),MathJax.startup.defaultReady(),MathJax.startup.promise.then(function(){ae(),ue(),ne!=="svg"&&(MathJax.config.startup.output=ne),MathJax.config=H}))})(G[2],re,function(U,q,$){W.selectAll("svg."+K).remove(),W.selectAll("g."+K+"-group").remove();var ne=U&&U.select("svg");if(!ne||!ne.node())return te(),void Y();var H=W.append("g").classed(K+"-group",!0).attr({"pointer-events":"none","data-unformatted":B,"data-math":"Y"});H.node().appendChild(ne.node()),q&&q.node()&&ne.node().insertBefore(q.node().cloneNode(!0),ne.node().firstChild);var Q=$.width,ee=$.height;ne.attr({class:K,height:ee,preserveAspectRatio:"xMinYMin meet"}).style({overflow:"visible","pointer-events":"none"});var ie=L.node().style.fill||"black",ae=ne.select("g");ae.attr({fill:ie,stroke:ie});var ue=ae.node().getBoundingClientRect(),le=ue.width,ge=ue.height;(le>Q||ge>ee)&&(ne.style("overflow","hidden"),le=(ue=ne.node().getBoundingClientRect()).width,ge=ue.height);var fe=+L.attr("x"),me=+L.attr("y"),_e=-(Z||L.node().getBoundingClientRect().height)/4;if(K[0]==="y")H.attr({transform:"rotate("+[-90,fe,me]+")"+u(-le/2,_e-ge/2)});else if(K[0]==="l")me=_e-ge/2;else if(K[0]==="a"&&K.indexOf("atitle")!==0)fe=0,me=_e;else{var we=L.attr("text-anchor");fe-=le*(we==="middle"?.5:we==="end"?1:0),me=me+_e-ge/2}ne.attr({x:fe,y:me}),N&&N.call(L,H),Y(H)})})):te(),L}function te(){W.empty()||(K=L.attr("class")+"-math",W.select("svg."+K).remove()),L.text("").style("white-space","pre"),function(Y,Z){Z=Z.replace(y," ");var re,U=!1,q=[],$=-1;function ne(){$++;var de=document.createElementNS(c.svg,"tspan");r.select(de).attr({class:"line",dy:$*i+"em"}),Y.appendChild(de),re=de;var ye=q;if(q=[{node:de}],ye.length>1)for(var Me=1;Me doesnt match end tag <"+de+">. Pretending it did match.",Z),re=q[q.length-1].node}else a.log("Ignoring unexpected end tag .",Z)}k.test(Z)?ne():(re=Y,q=[{node:Y}]);for(var ie=Z.split(x),ae=0;ae|>|>)/g,h=[["$","$"],["\\(","\\)"]],m={sup:"font-size:70%",sub:"font-size:70%",b:"font-weight:bold",i:"font-style:italic",a:"cursor:pointer",span:"",em:"font-style:italic;font-weight:bold"},g={sub:"0.3em",sup:"-0.6em"},p={sub:"-0.21em",sup:"0.42em"},v=["http:","https:","mailto:","",void 0,":"],y=f.NEWLINES=/(\r\n?|\n)/g,x=/(<[^<>]*>)/,w=/<(\/?)([^ >]*)(\s+(.*))?>/i,k=//i;f.BR_TAG_ALL=//gi;var b=/(^|[\s"'])style\s*=\s*("([^"]*);?"|'([^']*);?')/i,T=/(^|[\s"'])href\s*=\s*("([^"]*)"|'([^']*)')/i,_=/(^|[\s"'])target\s*=\s*("([^"\s]*)"|'([^'\s]*)')/i,M=/(^|[\s"'])popup\s*=\s*("([\w=,]*)"|'([\w=,]*)')/i;function A(L,P){if(!L)return null;var N=L.match(P),B=N&&(N[3]||N[4]);return B&&O(B)}var S=/(^|;)\s*color:/;f.plainText=function(L,P){for(var N=(P=P||{}).len!==void 0&&P.len!==-1?P.len:1/0,B=P.allowedTags!==void 0?P.allowedTags:["br"],G=3,W=L.split(x),K=[],te="",Y=0,Z=0;ZG?K.push(re.substr(0,ne-G)+"..."):K.push(re.substr(0,ne));break}te=""}}return K.join("")};var E={mu:"\u03BC",amp:"&",lt:"<",gt:">",nbsp:"\xA0",times:"\xD7",plusmn:"\xB1",deg:"\xB0"},D=/&(#\d+|#x[\da-fA-F]+|[a-z]+);/g;function O(L){return L.replace(D,function(P,N){return(N.charAt(0)==="#"?function(B){if(!(B>1114111)){var G=String.fromCodePoint;if(G)return G(B);var W=String.fromCharCode;return B<=65535?W(B):W(55232+(B>>10),B%1024+56320)}}(N.charAt(1)==="x"?parseInt(N.substr(2),16):parseInt(N.substr(1),10)):E[N])||P})}function R(L){var P=encodeURI(decodeURI(L)),N=document.createElement("a"),B=document.createElement("a");N.href=L,B.href=P;var G=N.protocol,W=B.protocol;return v.indexOf(G)!==-1&&v.indexOf(W)!==-1?P:""}function z(L,P,N){var B,G,W,K=N.horizontalAlign,te=N.verticalAlign||"top",Y=L.node().getBoundingClientRect(),Z=P.node().getBoundingClientRect();return G=te==="bottom"?function(){return Y.bottom-B.height}:te==="middle"?function(){return Y.top+(Y.height-B.height)/2}:function(){return Y.top},W=K==="right"?function(){return Y.right-B.width}:K==="center"?function(){return Y.left+(Y.width-B.width)/2}:function(){return Y.left},function(){B=this.node().getBoundingClientRect();var re=W()-Z.left,U=G()-Z.top,q=N.gd||{};if(N.gd){q._fullLayout._calcInverseTransform(q);var $=a.apply3DTransform(q._fullLayout._invTransform)(re,U);re=$[0],U=$[1]}return this.style({top:U+"px",left:re+"px","z-index":1e3}),this}}f.convertEntities=O,f.sanitizeHTML=function(L){L=L.replace(y," ");for(var P=document.createElement("p"),N=P,B=[],G=L.split(x),W=0;Ws.ts+c?h():s.timer=setTimeout(function(){h(),s.timer=null},c)},f.done=function(u){var c=r[u];return c&&c.timer?new Promise(function(i){var s=c.onDone;c.onDone=function(){s&&s(),i(),c.onDone=null}}):Promise.resolve()},f.clear=function(u){if(u)a(r[u]),delete r[u];else for(var c in r)f.clear(c)}},{}],531:[function(e,o,f){var r=e("fast-isnumeric");o.exports=function(a,u){if(a>0)return Math.log(a)/Math.LN10;var c=Math.log(Math.min(u[0],u[1]))/Math.LN10;return r(c)||(c=Math.log(Math.max(u[0],u[1]))/Math.LN10-6),c}},{"fast-isnumeric":190}],532:[function(e,o,f){var r=o.exports={},a=e("../plots/geo/constants").locationmodeToLayer,u=e("topojson-client").feature;r.getTopojsonName=function(c){return[c.scope.replace(/ /g,"-"),"_",c.resolution.toString(),"m"].join("")},r.getTopojsonPath=function(c,i){return c+i+".json"},r.getTopojsonFeatures=function(c,i){var s=a[c.locationmode],l=i.objects[s];return u(i,l).features}},{"../plots/geo/constants":587,"topojson-client":315}],533:[function(e,o,f){o.exports={moduleType:"locale",name:"en-US",dictionary:{"Click to enter Colorscale title":"Click to enter Colorscale title"},format:{date:"%m/%d/%Y"}}},{}],534:[function(e,o,f){o.exports={moduleType:"locale",name:"en",dictionary:{"Click to enter Colorscale title":"Click to enter Colourscale title"},format:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],periods:["AM","PM"],dateTime:"%a %b %e %X %Y",date:"%d/%m/%Y",time:"%H:%M:%S",decimal:".",thousands:",",grouping:[3],currency:["$",""],year:"%Y",month:"%b %Y",dayMonth:"%b %-d",dayMonthYear:"%b %-d, %Y"}}},{}],535:[function(e,o,f){var r=e("../registry");o.exports=function(a){for(var u,c,i=r.layoutArrayContainers,s=r.layoutArrayRegexes,l=a.split("[")[0],d=0;d0&&c.log("Clearing previous rejected promises from queue."),_._promises=[]},f.cleanLayout=function(_){var M,A;_||(_={}),_.xaxis1&&(_.xaxis||(_.xaxis=_.xaxis1),delete _.xaxis1),_.yaxis1&&(_.yaxis||(_.yaxis=_.yaxis1),delete _.yaxis1),_.scene1&&(_.scene||(_.scene=_.scene1),delete _.scene1);var S=(i.subplotsRegistry.cartesian||{}).attrRegex,E=(i.subplotsRegistry.polar||{}).attrRegex,D=(i.subplotsRegistry.ternary||{}).attrRegex,O=(i.subplotsRegistry.gl3d||{}).attrRegex,R=Object.keys(_);for(M=0;M3?(H.x=1.02,H.xanchor="left"):H.x<-2&&(H.x=-.02,H.xanchor="right"),H.y>3?(H.y=1.02,H.yanchor="bottom"):H.y<-2&&(H.y=-.02,H.yanchor="top")),p(_),_.dragmode==="rotate"&&(_.dragmode="orbit"),l.clean(_),_.template&&_.template.layout&&f.cleanLayout(_.template.layout),_},f.cleanData=function(_){for(var M=0;M<_.length;M++){var A,S=_[M];if(S.type==="histogramy"&&"xbins"in S&&!("ybins"in S)&&(S.ybins=S.xbins,delete S.xbins),S.error_y&&"opacity"in S.error_y){var E=l.defaults,D=S.error_y.color||(m(S,"bar")?l.defaultLine:E[M%E.length]);S.error_y.color=l.addOpacity(l.rgb(D),l.opacity(D)*S.error_y.opacity),delete S.error_y.opacity}if("bardir"in S&&(S.bardir!=="h"||!m(S,"bar")&&S.type.substr(0,9)!=="histogram"||(S.orientation="h",f.swapXYData(S)),delete S.bardir),S.type==="histogramy"&&f.swapXYData(S),S.type!=="histogramx"&&S.type!=="histogramy"||(S.type="histogram"),"scl"in S&&!("colorscale"in S)&&(S.colorscale=S.scl,delete S.scl),"reversescl"in S&&!("reversescale"in S)&&(S.reversescale=S.reversescl,delete S.reversescl),S.xaxis&&(S.xaxis=d(S.xaxis,"x")),S.yaxis&&(S.yaxis=d(S.yaxis,"y")),m(S,"gl3d")&&S.scene&&(S.scene=i.subplotsRegistry.gl3d.cleanId(S.scene)),!m(S,"pie-like")&&!m(S,"bar-like"))if(Array.isArray(S.textposition))for(A=0;A0)return _.substr(0,M)}f.hasParent=function(_,M){for(var A=b(M);A;){if(A in _)return!0;A=b(A)}return!1};var T=["x","y","z"];f.clearAxisTypes=function(_,M,A){for(var S=0;S1&&u.warn("Full array edits are incompatible with other edits",v);var _=m[""][""];if(l(_))h.set(null);else{if(!Array.isArray(_))return u.warn("Unrecognized full array edit value",v,_),!0;h.set(_)}return!k&&(y(b,T),x(d),!0)}var M,A,S,E,D,O,R,z,L=Object.keys(m).map(Number).sort(c),P=h.get(),N=P||[],B=p(T,v).get(),G=[],W=-1,K=N.length;for(M=0;MN.length-(R?0:1))u.warn("index out of range",v,S);else if(O!==void 0)D.length>1&&u.warn("Insertion & removal are incompatible with edits to the same index.",v,S),l(O)?G.push(S):R?(O==="add"&&(O={}),N.splice(S,0,O),B&&B.splice(S,0,{})):u.warn("Unrecognized full object edit value",v,S,O),W===-1&&(W=S);else for(A=0;A=0;M--)N.splice(G[M],1),B&&B.splice(G[M],1);if(N.length?P||h.set(N):h.set(null),k)return!1;if(y(b,T),w!==a){var te;if(W===-1)te=L;else{for(K=Math.max(N.length,K),te=[],M=0;M=W);M++)te.push(S);for(M=W;M=de.data.length||Ee<-de.data.length)throw new Error(Me+" must be valid indices for gd.data.");if(ye.indexOf(Ee,ke+1)>-1||Ee>=0&&ye.indexOf(-de.data.length+Ee)>-1||Ee<0&&ye.indexOf(de.data.length+Ee)>-1)throw new Error("each index in "+Me+" must be unique.")}}function P(de,ye,Me){if(!Array.isArray(de.data))throw new Error("gd.data must be an array.");if(ye===void 0)throw new Error("currentIndices is a required argument.");if(Array.isArray(ye)||(ye=[ye]),L(de,ye,"currentIndices"),Me===void 0||Array.isArray(Me)||(Me=[Me]),Me!==void 0&&L(de,Me,"newIndices"),Me!==void 0&&ye.length!==Me.length)throw new Error("current and new indices must be of equal length.")}function N(de,ye,Me,ke,Ee){(function(Ye,nt,ft,vt){var Pt=c.isPlainObject(vt);if(!Array.isArray(Ye.data))throw new Error("gd.data must be an array");if(!c.isPlainObject(nt))throw new Error("update must be a key:value object");if(ft===void 0)throw new Error("indices must be an integer or array of integers");for(var At in L(Ye,ft,"indices"),nt){if(!Array.isArray(nt[At])||nt[At].length!==ft.length)throw new Error("attribute "+At+" must be an array of length equal to indices array length");if(Pt&&(!(At in vt)||!Array.isArray(vt[At])||vt[At].length!==nt[At].length))throw new Error("when maxPoints is set as a key:value object it must contain a 1:1 corrispondence with the keys and number of traces in the update object")}})(de,ye,Me,ke);for(var ze=function(Ye,nt,ft,vt){var Pt,At,at,et,Ot,Wt=c.isPlainObject(vt),Jt=[];for(var Be in Array.isArray(ft)||(ft=[ft]),ft=z(ft,Ye.data.length-1),nt)for(var Ge=0;Ge-1&&Me.indexOf("grouptitlefont")===-1?Ve(Me,Me.replace("titlefont","title.font")):Me.indexOf("titleposition")>-1?Ve(Me,Me.replace("titleposition","title.position")):Me.indexOf("titleside")>-1?Ve(Me,Me.replace("titleside","title.side")):Me.indexOf("titleoffset")>-1&&Ve(Me,Me.replace("titleoffset","title.offset")):Ve(Me,Me.replace("title","title.text"));function Ve(Ke,Re){de[Re]=de[Ke],delete de[Ke]}}function re(de,ye,Me){de=c.getGraphDiv(de),T.clearPromiseQueue(de);var ke={};if(typeof ye=="string")ke[ye]=Me;else{if(!c.isPlainObject(ye))return c.warn("Relayout fail.",ye,Me),Promise.reject();ke=c.extendFlat({},ye)}Object.keys(ke).length&&(de.changed=!0);var Ee=Q(de,ke),ze=Ee.flags;ze.calc&&(de.calcdata=void 0);var Fe=[m.previousPromises];ze.layoutReplot?Fe.push(_.layoutReplot):Object.keys(ke).length&&(U(de,ze,Ee)||m.supplyDefaults(de),ze.legend&&Fe.push(_.doLegend),ze.layoutstyle&&Fe.push(_.layoutStyles),ze.axrange&&q(Fe,Ee.rangesAltered),ze.ticks&&Fe.push(_.doTicksRelayout),ze.modebar&&Fe.push(_.doModeBar),ze.camera&&Fe.push(_.doCamera),ze.colorbars&&Fe.push(_.doColorBars),Fe.push(E)),Fe.push(m.rehover,m.redrag),l.add(de,re,[de,Ee.undoit],re,[de,Ee.redoit]);var Ve=c.syncOrAsync(Fe,de);return Ve&&Ve.then||(Ve=Promise.resolve(de)),Ve.then(function(){return de.emit("plotly_relayout",Ee.eventData),de})}function U(de,ye,Me){var ke=de._fullLayout;if(!ye.axrange)return!1;for(var Ee in ye)if(Ee!=="axrange"&&ye[Ee])return!1;for(var ze in Me.rangesAltered){var Fe=g.id2name(ze),Ve=de.layout[Fe],Ke=ke[Fe];if(Ke.autorange=Ve.autorange,Ve.range&&(Ke.range=Ve.range.slice()),Ke.cleanRange(),Ke._matchGroup){for(var Re in Ke._matchGroup)if(Re!==ze){var qe=ke[g.id2name(Re)];qe.autorange=Ke.autorange,qe.range=Ke.range.slice(),qe._input.range=Ke.range.slice()}}}return!0}function q(de,ye){var Me=ye?function(ke){var Ee=[],ze=!0;for(var Fe in ye){var Ve=g.getFromId(ke,Fe);if(Ee.push(Fe),(Ve.ticklabelposition||"").indexOf("inside")!==-1&&Ve._anchorAxis&&Ee.push(Ve._anchorAxis._id),Ve._matchGroup)for(var Ke in Ve._matchGroup)ye[Ke]||Ee.push(Ke);Ve.automargin&&(ze=!1)}return g.draw(ke,Ee,{skipTitle:ze})}:function(ke){return g.draw(ke,"redraw")};de.push(w,_.doAutoRangeAndConstraints,Me,_.drawData,_.finalDraw)}var $=/^[xyz]axis[0-9]*\.range(\[[0|1]\])?$/,ne=/^[xyz]axis[0-9]*\.autorange$/,H=/^[xyz]axis[0-9]*\.domain(\[[0|1]\])?$/;function Q(de,ye){var Me,ke,Ee,ze=de.layout,Fe=de._fullLayout,Ve=Fe._guiEditing,Ke=K(Fe._preGUI,Ve),Re=Object.keys(ye),qe=g.list(de),We=c.extendDeepAll({},ye),Ye={};for(Z(ye),Re=Object.keys(ye),ke=0;ke0&&typeof Ge.parts[dt]!="string";)dt--;var Pe=Ge.parts[dt],Ie=Ge.parts[dt-1]+"."+Pe,Ae=Ge.parts.slice(0,dt).join("."),De=i(de.layout,Ae).get(),He=i(Fe,Ae).get(),rt=Ge.get();if(Tt!==void 0){At[Be]=Tt,at[Be]=Pe==="reverse"?Tt:W(rt);var lt=h.getLayoutValObject(Fe,Ge.parts);if(lt&<.impliedEdits&&Tt!==null)for(var ot in lt.impliedEdits)et(c.relativeAttr(Be,ot),lt.impliedEdits[ot]);if(["width","height"].indexOf(Be)!==-1)if(Tt){et("autosize",null);var kt=Be==="height"?"width":"height";et(kt,Fe[kt])}else Fe[Be]=de._initialAutoSize[Be];else if(Be==="autosize")et("width",Tt?null:Fe.width),et("height",Tt?null:Fe.height);else if(Ie.match($))Jt(Ie),i(Fe,Ae+"._inputRange").set(null);else if(Ie.match(ne)){Jt(Ie),i(Fe,Ae+"._inputRange").set(null);var wt=i(Fe,Ae).get();wt._inputDomain&&(wt._input.domain=wt._inputDomain.slice())}else Ie.match(H)&&i(Fe,Ae+"._inputDomain").set(null);if(Pe==="type"){Ot=De;var Vt=He.type==="linear"&&Tt==="log",Ut=He.type==="log"&&Tt==="linear";if(Vt||Ut){if(Ot&&Ot.range)if(He.autorange)Vt&&(Ot.range=Ot.range[1]>Ot.range[0]?[1,2]:[2,1]);else{var tt=Ot.range[0],bt=Ot.range[1];Vt?(tt<=0&&bt<=0&&et(Ae+".autorange",!0),tt<=0?tt=bt/1e6:bt<=0&&(bt=tt/1e6),et(Ae+".range[0]",Math.log(tt)/Math.LN10),et(Ae+".range[1]",Math.log(bt)/Math.LN10)):(et(Ae+".range[0]",Math.pow(10,tt)),et(Ae+".range[1]",Math.pow(10,bt)))}else et(Ae+".autorange",!0);Array.isArray(Fe._subplots.polar)&&Fe._subplots.polar.length&&Fe[Ge.parts[0]]&&Ge.parts[1]==="radialaxis"&&delete Fe[Ge.parts[0]]._subplot.viewInitial["radialaxis.range"],d.getComponentMethod("annotations","convertCoords")(de,He,Tt,et),d.getComponentMethod("images","convertCoords")(de,He,Tt,et)}else et(Ae+".autorange",!0),et(Ae+".range",null);i(Fe,Ae+"._inputRange").set(null)}else if(Pe.match(A)){var zt=i(Fe,Be).get(),St=(Tt||{}).type;St&&St!=="-"||(St="linear"),d.getComponentMethod("annotations","convertCoords")(de,zt,St,et),d.getComponentMethod("images","convertCoords")(de,zt,St,et)}var Dt=b.containerArrayMatch(Be);if(Dt){Me=Dt.array,ke=Dt.index;var Le=Dt.property,Je=lt||{editType:"calc"};ke!==""&&Le===""&&(b.isAddVal(Tt)?at[Be]=null:b.isRemoveVal(Tt)?at[Be]=(i(ze,Me).get()||[])[ke]:c.warn("unrecognized full object value",ye)),M.update(Pt,Je),Ye[Me]||(Ye[Me]={});var st=Ye[Me][ke];st||(st=Ye[Me][ke]={}),st[Le]=Tt,delete ye[Be]}else Pe==="reverse"?(De.range?De.range.reverse():(et(Ae+".autorange",!0),De.range=[1,0]),He.autorange?Pt.calc=!0:Pt.plot=!0):(Fe._has("scatter-like")&&Fe._has("regl")&&Be==="dragmode"&&(Tt==="lasso"||Tt==="select")&&rt!=="lasso"&&rt!=="select"||Fe._has("gl2d")?Pt.plot=!0:lt?M.update(Pt,lt):Pt.calc=!0,Ge.set(Tt))}}for(Me in Ye)b.applyContainerArrayChanges(de,Ke(ze,Me),Ye[Me],Pt,Ke)||(Pt.plot=!0);for(var Et in Wt){var It=(Ot=g.getFromId(de,Et))&&Ot._constraintGroup;if(It)for(var Zt in Pt.calc=!0,It)Wt[Zt]||(g.getFromId(de,Zt)._constraintShrinkable=!0)}return(ee(de)||ye.height||ye.width)&&(Pt.plot=!0),(Pt.plot||Pt.calc)&&(Pt.layoutReplot=!0),{flags:Pt,rangesAltered:Wt,undoit:at,redoit:At,eventData:We}}function ee(de){var ye=de._fullLayout,Me=ye.width,ke=ye.height;return de.layout.autosize&&m.plotAutoSize(de,de.layout,ye),ye.width!==Me||ye.height!==ke}function ie(de,ye,Me,ke){de=c.getGraphDiv(de),T.clearPromiseQueue(de),c.isPlainObject(ye)||(ye={}),c.isPlainObject(Me)||(Me={}),Object.keys(ye).length&&(de.changed=!0),Object.keys(Me).length&&(de.changed=!0);var Ee=T.coerceTraceIndices(de,ke),ze=Y(de,c.extendFlat({},ye),Ee),Fe=ze.flags,Ve=Q(de,c.extendFlat({},Me)),Ke=Ve.flags;(Fe.calc||Ke.calc)&&(de.calcdata=void 0),Fe.clearAxisTypes&&T.clearAxisTypes(de,Ee,Me);var Re=[];Ke.layoutReplot?Re.push(_.layoutReplot):Fe.fullReplot?Re.push(f._doPlot):(Re.push(m.previousPromises),U(de,Ke,Ve)||m.supplyDefaults(de),Fe.style&&Re.push(_.doTraceStyle),(Fe.colorbars||Ke.colorbars)&&Re.push(_.doColorBars),Ke.legend&&Re.push(_.doLegend),Ke.layoutstyle&&Re.push(_.layoutStyles),Ke.axrange&&q(Re,Ve.rangesAltered),Ke.ticks&&Re.push(_.doTicksRelayout),Ke.modebar&&Re.push(_.doModeBar),Ke.camera&&Re.push(_.doCamera),Re.push(E)),Re.push(m.rehover,m.redrag),l.add(de,ie,[de,ze.undoit,Ve.undoit,ze.traces],ie,[de,ze.redoit,Ve.redoit,ze.traces]);var qe=c.syncOrAsync(Re,de);return qe&&qe.then||(qe=Promise.resolve(de)),qe.then(function(){return de.emit("plotly_update",{data:ze.eventData,layout:Ve.eventData}),de})}function ae(de){return function(ye){ye._fullLayout._guiEditing=!0;var Me=de.apply(null,arguments);return ye._fullLayout._guiEditing=!1,Me}}var ue=[{pattern:/^hiddenlabels/,attr:"legend.uirevision"},{pattern:/^((x|y)axis\d*)\.((auto)?range|title\.text)/},{pattern:/axis\d*\.showspikes$/,attr:"modebar.uirevision"},{pattern:/(hover|drag)mode$/,attr:"modebar.uirevision"},{pattern:/^(scene\d*)\.camera/},{pattern:/^(geo\d*)\.(projection|center|fitbounds)/},{pattern:/^(ternary\d*\.[abc]axis)\.(min|title\.text)$/},{pattern:/^(polar\d*\.radialaxis)\.((auto)?range|angle|title\.text)/},{pattern:/^(polar\d*\.angularaxis)\.rotation/},{pattern:/^(mapbox\d*)\.(center|zoom|bearing|pitch)/},{pattern:/^legend\.(x|y)$/,attr:"editrevision"},{pattern:/^(shapes|annotations)/,attr:"editrevision"},{pattern:/^title\.text$/,attr:"editrevision"}],le=[{pattern:/^selectedpoints$/,attr:"selectionrevision"},{pattern:/(^|value\.)visible$/,attr:"legend.uirevision"},{pattern:/^dimensions\[\d+\]\.constraintrange/},{pattern:/^node\.(x|y|groups)/},{pattern:/^level$/},{pattern:/(^|value\.)name$/},{pattern:/colorbar\.title\.text$/},{pattern:/colorbar\.(x|y)$/,attr:"editrevision"}];function ge(de,ye){for(var Me=0;Me1;)if(ke.pop(),(Me=i(ye,ke.join(".")+".uirevision").get())!==void 0)return Me;return ye.uirevision}function me(de,ye){for(var Me=0;Me=Ee.length?Ee[0]:Ee[Re]:Ee}function Ve(Re){return Array.isArray(ze)?Re>=ze.length?ze[0]:ze[Re]:ze}function Ke(Re,qe){var We=0;return function(){if(Re&&++We===qe)return Re()}}return ke._frameWaitingCnt===void 0&&(ke._frameWaitingCnt=0),new Promise(function(Re,qe){function We(){ke._currentFrame&&ke._currentFrame.onComplete&&ke._currentFrame.onComplete();var Ge=ke._currentFrame=ke._frameQueue.shift();if(Ge){var Tt=Ge.name?Ge.name.toString():null;de._fullLayout._currentFrame=Tt,ke._lastFrameAt=Date.now(),ke._timeToNext=Ge.frameOpts.duration,m.transition(de,Ge.frame.data,Ge.frame.layout,T.coerceTraceIndices(de,Ge.frame.traces),Ge.frameOpts,Ge.transitionOpts).then(function(){Ge.onComplete&&Ge.onComplete()}),de.emit("plotly_animatingframe",{name:Tt,frame:Ge.frame,animation:{frame:Ge.frameOpts,transition:Ge.transitionOpts}})}else de.emit("plotly_animated"),window.cancelAnimationFrame(ke._animationRaf),ke._animationRaf=null}function Ye(){de.emit("plotly_animating"),ke._lastFrameAt=-1/0,ke._timeToNext=0,ke._runningTransitions=0,ke._currentFrame=null;var Ge=function(){ke._animationRaf=window.requestAnimationFrame(Ge),Date.now()-ke._lastFrameAt>ke._timeToNext&&We()};Ge()}var nt,ft,vt=0;function Pt(Ge){return Array.isArray(Ee)?vt>=Ee.length?Ge.transitionOpts=Ee[vt]:Ge.transitionOpts=Ee[0]:Ge.transitionOpts=Ee,vt++,Ge}var At=[],at=ye==null,et=Array.isArray(ye);if(!at&&!et&&c.isPlainObject(ye))At.push({type:"object",data:Pt(c.extendFlat({},ye))});else if(at||["string","number"].indexOf(typeof ye)!==-1)for(nt=0;nt0&&JtJt)&&Be.push(ft);At=Be}}At.length>0?function(Ge){if(Ge.length!==0){for(var Tt=0;Tt=0;ke--)if(c.isPlainObject(ye[ke])){var Ye=ye[ke].name,nt=(Ke[Ye]||We[Ye]||{}).name,ft=ye[ke].name,vt=Ke[nt]||We[nt];nt&&ft&&typeof ft=="number"&&vt&&S<5&&(S++,c.warn('addFrames: overwriting frame "'+(Ke[nt]||We[nt]).name+'" with a frame whose name of type "number" also equates to "'+nt+'". This is valid but may potentially lead to unexpected behavior since all plotly.js frame names are stored internally as strings.'),S===5&&c.warn("addFrames: This API call has yielded too many of these warnings. For the rest of this call, further warnings about numeric frame names will be suppressed.")),We[Ye]={name:Ye},qe.push({frame:m.supplyFrameDefaults(ye[ke]),index:Me&&Me[ke]!==void 0&&Me[ke]!==null?Me[ke]:Re+ke})}qe.sort(function(Be,Ge){return Be.index>Ge.index?-1:Be.index=0;ke--){if(typeof(Ee=qe[ke].frame).name=="number"&&c.warn("Warning: addFrames accepts frames with numeric names, but the numbers areimplicitly cast to strings"),!Ee.name)for(;Ke[Ee.name="frame "+de._transitionData._counter++];);if(Ke[Ee.name]){for(ze=0;ze=0;Me--)ke=ye[Me],ze.push({type:"delete",index:ke}),Fe.unshift({type:"insert",index:ke,value:Ee[ke]});var Ve=m.modifyFrames,Ke=m.modifyFrames,Re=[de,Fe],qe=[de,ze];return l&&l.add(de,Ve,Re,Ke,qe),m.modifyFrames(de,ze)},f.addTraces=function de(ye,Me,ke){ye=c.getGraphDiv(ye);var Ee,ze,Fe=[],Ve=f.deleteTraces,Ke=de,Re=[ye,Fe],qe=[ye,Me];for(function(We,Ye,nt){var ft,vt;if(!Array.isArray(We.data))throw new Error("gd.data must be an array.");if(Ye===void 0)throw new Error("traces must be defined.");for(Array.isArray(Ye)||(Ye=[Ye]),ft=0;ft=0&&We=0&&We=R.length)return!1;if(A.dimensions===2){if(E++,S.length===E)return A;var z=S[E];if(!w(z))return!1;A=R[O][z]}else A=R[O]}else A=R}}return A}function w(A){return A===Math.round(A)&&A>=0}function k(){var A,S,E={};for(A in h(E,c),r.subplotsRegistry)if((S=r.subplotsRegistry[A]).layoutAttributes)if(Array.isArray(S.attr))for(var D=0;D=z.length)return!1;D=(E=(r.transformsRegistry[z[L].type]||{}).attributes)&&E[S[2]],R=3}else{var P=A._module;if(P||(P=(r.modules[A.type||u.type.dflt]||{})._module),!P)return!1;if(!(D=(E=P.attributes)&&E[O])){var N=P.basePlotModule;N&&N.attributes&&(D=N.attributes[O])}D||(D=u[O])}return x(D,S,R)},f.getLayoutValObject=function(A,S){return x(function(E,D){var O,R,z,L,P=E._basePlotModules;if(P){var N;for(O=0;O=h&&(d._input||{})._templateitemname;g&&(m=h);var p,v=l+"["+m+"]";function y(){p={},g&&(p[v]={},p[v].templateitemname=g)}function x(k,b){g?r.nestedProperty(p[v],k).set(b):p[v+"."+k]=b}function w(){var k=p;return y(),k}return y(),{modifyBase:function(k,b){p[k]=b},modifyItem:x,getUpdateObj:w,applyUpdate:function(k,b){k&&x(k,b);var T=w();for(var _ in T)r.nestedProperty(s,_).set(T[_])}}}},{"../lib":503,"../plots/attributes":550}],544:[function(e,o,f){var r=e("@plotly/d3"),a=e("../registry"),u=e("../plots/plots"),c=e("../lib"),i=e("../lib/clear_gl_canvases"),s=e("../components/color"),l=e("../components/drawing"),d=e("../components/titles"),h=e("../components/modebar"),m=e("../plots/cartesian/axes"),g=e("../constants/alignment"),p=e("../plots/cartesian/constraints"),v=p.enforce,y=p.clean,x=e("../plots/cartesian/autorange").doAutoRange;function w(S,E,D){for(var O=0;O=S[1]||R[1]<=S[0])&&z[0]E[0])return!0}return!1}function k(S){var E,D,O,R,z,L,P=S._fullLayout,N=P._size,B=N.p,G=m.list(S,"",!0);if(P._paperdiv.style({width:S._context.responsive&&P.autosize&&!S._context._hasZeroWidth&&!S.layout.width?"100%":P.width+"px",height:S._context.responsive&&P.autosize&&!S._context._hasZeroHeight&&!S.layout.height?"100%":P.height+"px"}).selectAll(".main-svg").call(l.setSize,P.width,P.height),S._context.setBackground(S,P.paper_bgcolor),f.drawMainTitle(S),h.manage(S),!P._has("cartesian"))return u.previousPromises(S);function W(Ye,nt,ft){var vt=Ye._lw/2;return Ye._id.charAt(0)==="x"?nt?ft==="top"?nt._offset-B-vt:nt._offset+nt._length+B+vt:N.t+N.h*(1-(Ye.position||0))+vt%1:nt?ft==="right"?nt._offset+nt._length+B+vt:nt._offset-B-vt:N.l+N.w*(Ye.position||0)+vt%1}for(E=0;EN?A.push({code:"unused",traceType:O,templateCount:P,dataCount:N}):N>P&&A.push({code:"reused",traceType:O,templateCount:P,dataCount:N})}}else A.push({code:"data"});if(function B(G,W){for(var K in G)if(K.charAt(0)!=="_"){var te=G[K],Y=v(G,K,W);a(te)?(Array.isArray(G)&&te._template===!1&&te.templateitemname&&A.push({code:"missing",path:Y,templateitemname:te.templateitemname}),B(te,Y)):Array.isArray(te)&&y(te)&&B(te,Y)}}({data:E,layout:S},""),A.length)return A.map(x)}},{"../lib":503,"../plots/attributes":550,"../plots/plots":619,"./plot_config":541,"./plot_schema":542,"./plot_template":543}],546:[function(e,o,f){var r=e("fast-isnumeric"),a=e("./plot_api"),u=e("../plots/plots"),c=e("../lib"),i=e("../snapshot/helpers"),s=e("../snapshot/tosvg"),l=e("../snapshot/svgtoimg"),d=e("../version").version,h={format:{valType:"enumerated",values:["png","jpeg","webp","svg","full-json"],dflt:"png"},width:{valType:"number",min:1},height:{valType:"number",min:1},scale:{valType:"number",min:0,dflt:1},setBackground:{valType:"any",dflt:!1},imageDataOnly:{valType:"boolean",dflt:!1}};o.exports=function(m,g){var p,v,y,x;function w(N){return!(N in g)||c.validate(g[N],h[N])}if(g=g||{},c.isPlainObject(m)?(p=m.data||[],v=m.layout||{},y=m.config||{},x={}):(m=c.getGraphDiv(m),p=c.extendDeep([],m.data),v=c.extendDeep({},m.layout),y=m._context,x=m._fullLayout||{}),!w("width")&&g.width!==null||!w("height")&&g.height!==null)throw new Error("Height and width should be pixel values.");if(!w("format"))throw new Error("Export format is not "+c.join2(h.format.values,", "," or ")+".");var k={};function b(N,B){return c.coerce(g,k,h,N,B)}var T=b("format"),_=b("width"),M=b("height"),A=b("scale"),S=b("setBackground"),E=b("imageDataOnly"),D=document.createElement("div");D.style.position="absolute",D.style.left="-5000px",document.body.appendChild(D);var O=c.extendFlat({},v);_?O.width=_:g.width===null&&r(x.width)&&(O.width=x.width),M?O.height=M:g.height===null&&r(x.height)&&(O.height=x.height);var R=c.extendFlat({},y,{_exportedPlot:!0,staticPlot:!0,setBackground:S}),z=i.getRedrawFunc(D);function L(){return new Promise(function(N){setTimeout(N,i.getDelay(D._fullLayout))})}function P(){return new Promise(function(N,B){var G=s(D,T,A),W=D._fullLayout.width,K=D._fullLayout.height;function te(){a.purge(D),document.body.removeChild(D)}if(T==="full-json"){var Y=u.graphJson(D,!1,"keepdata","object",!0,!0);return Y.version=d,Y=JSON.stringify(Y),te(),N(E?Y:i.encodeJSON(Y))}if(te(),T==="svg")return N(E?G:i.encodeSVG(G));var Z=document.createElement("canvas");Z.id=c.randstr(),l({format:T,width:W,height:K,scale:A,canvas:Z,svg:G,promise:!0}).then(N).catch(B)})}return new Promise(function(N,B){a.newPlot(D,p,O,R).then(z).then(L).then(P).then(function(G){N(function(W){return E?W.replace(i.IMAGE_URL_PREFIX,""):W}(G))}).catch(function(G){B(G)})})}},{"../lib":503,"../plots/plots":619,"../snapshot/helpers":642,"../snapshot/svgtoimg":644,"../snapshot/tosvg":646,"../version":1123,"./plot_api":540,"fast-isnumeric":190}],547:[function(e,o,f){var r=e("../lib"),a=e("../plots/plots"),u=e("./plot_schema"),c=e("./plot_config").dfltConfig,i=r.isPlainObject,s=Array.isArray,l=r.isArrayOrTypedArray;function d(k,b,T,_,M,A){A=A||[];for(var S=Object.keys(k),E=0;Ez.length&&_.push(p("unused",M,O.concat(z.length)));var W,K,te,Y,Z,re=z.length,U=Array.isArray(G);if(U&&(re=Math.min(re,G.length)),L.dimensions===2)for(K=0;Kz[K].length&&_.push(p("unused",M,O.concat(K,z[K].length)));var q=z[K].length;for(W=0;W<(U?Math.min(q,G[K].length):q);W++)te=U?G[K][W]:G,Y=R[K][W],Z=z[K][W],r.validate(Y,te)?Z!==Y&&Z!==+Y&&_.push(p("dynamic",M,O.concat(K,W),Y,Z)):_.push(p("value",M,O.concat(K,W),Y))}else _.push(p("array",M,O.concat(K),R[K]));else for(K=0;K1&&A.push(p("object","layout"))),a.supplyDefaults(S);for(var E=S._fullData,D=T.length,O=0;O0&&Math.round(v)===v))return{vals:h};g=v}for(var y=l.calendar,x=m==="start",w=m==="end",k=s[d+"period0"],b=u(k,y)||0,T=[],_=[],M=[],A=h.length,S=0;SR;)O=c(O,-g,y);for(;O<=R;)O=c(O,g,y);D=c(O,-g,y)}else{for(O=b+(E=Math.round((R-b)/p))*p;O>R;)O-=p;for(;O<=R;)O+=p;D=O-p}T[S]=x?D:w?O:(D+O)/2,_[S]=D,M[S]=O}return{vals:T,starts:_,ends:M}}},{"../../constants/numerical":479,"../../lib":503,"fast-isnumeric":190}],552:[function(e,o,f){o.exports={xaxis:{valType:"subplotid",dflt:"x",editType:"calc+clearAxisTypes"},yaxis:{valType:"subplotid",dflt:"y",editType:"calc+clearAxisTypes"}}},{}],553:[function(e,o,f){var r=e("@plotly/d3"),a=e("fast-isnumeric"),u=e("../../lib"),c=e("../../constants/numerical").FP_SAFE,i=e("../../registry"),s=e("../../components/drawing"),l=e("./axis_ids"),d=l.getFromId,h=l.isLinked;function m(_,M){var A,S,E=[],D=_._fullLayout,O=p(D,M,0),R=p(D,M,1),z=v(_,M),L=z.min,P=z.max;if(L.length===0||P.length===0)return u.simpleMap(M.range,M.r2l);var N=L[0].val,B=P[0].val;for(A=1;A0&&((re=H-O(K)-R(te))>Q?U/re>ee&&(Y=K,Z=te,ee=U/re):U/H>ee&&(Y={val:K.val,nopad:1},Z={val:te.val,nopad:1},ee=U/H));if(N===B){var ie=N-1,ae=N+1;if($)if(N===0)E=[0,1];else{var ue=(N>0?P:L).reduce(function(ge,fe){return Math.max(ge,R(fe))},0),le=N/(1-Math.min(.5,ue/H));E=N>0?[0,le]:[le,0]}else E=ne?[Math.max(0,ie),Math.max(1,ae)]:[ie,ae]}else $?(Y.val>=0&&(Y={val:0,nopad:1}),Z.val<=0&&(Z={val:0,nopad:1})):ne&&(Y.val-ee*O(Y)<0&&(Y={val:0,nopad:1}),Z.val<=0&&(Z={val:1,nopad:1})),ee=(Z.val-Y.val-g(M,K.val,te.val))/(H-O(Y)-R(Z)),E=[Y.val-ee*O(Y),Z.val+ee*R(Z)];return G&&E.reverse(),u.simpleMap(E,M.l2r||Number)}function g(_,M,A){var S=0;if(_.rangebreaks)for(var E=_.locateBreaks(M,A),D=0;D0?A.ppadplus:A.ppadminus)||A.ppad||0),$=U((_._m>0?A.ppadminus:A.ppadplus)||A.ppad||0),ne=U(A.vpadplus||A.vpad),H=U(A.vpadminus||A.vpad);if(!Z){if(P=1/0,N=-1/0,Y)for(S=0;S0&&(P=E),E>N&&E-c&&(P=E),E>N&&E=ie;S--)ee(S);return{min:B,max:G,opts:A}},concatExtremes:v};function v(_,M,A){var S,E,D,O=M._id,R=_._fullData,z=_._fullLayout,L=[],P=[];function N(te,Y){for(S=0;S=A&&(L.extrapad||!O)){R=!1;break}E(M,L.val)&&L.pad<=A&&(O||!L.extrapad)&&(_.splice(z,1),z--)}if(R){var P=D&&M===0;_.push({val:M,pad:P?0:A,extrapad:!P&&O})}}function k(_){return a(_)&&Math.abs(_)=M}},{"../../components/drawing":388,"../../constants/numerical":479,"../../lib":503,"../../registry":638,"./axis_ids":558,"@plotly/d3":58,"fast-isnumeric":190}],554:[function(e,o,f){var r=e("@plotly/d3"),a=e("fast-isnumeric"),u=e("../../plots/plots"),c=e("../../registry"),i=e("../../lib"),s=i.strTranslate,l=e("../../lib/svg_text_utils"),d=e("../../components/titles"),h=e("../../components/color"),m=e("../../components/drawing"),g=e("./layout_attributes"),p=e("./clean_ticks"),v=e("../../constants/numerical"),y=v.ONEMAXYEAR,x=v.ONEAVGYEAR,w=v.ONEMINYEAR,k=v.ONEMAXQUARTER,b=v.ONEAVGQUARTER,T=v.ONEMINQUARTER,_=v.ONEMAXMONTH,M=v.ONEAVGMONTH,A=v.ONEMINMONTH,S=v.ONEWEEK,E=v.ONEDAY,D=E/2,O=v.ONEHOUR,R=v.ONEMIN,z=v.ONESEC,L=v.MINUS_SIGN,P=v.BADNUM,N={K:"zeroline"},B={K:"gridline",L:"path"},G={K:"tick",L:"path"},W={K:"tick",L:"text"},K=e("../../constants/alignment"),te=K.MID_SHIFT,Y=K.CAP_SHIFT,Z=K.LINE_SPACING,re=K.OPPOSITE_SIDE,U=o.exports={};U.setConvert=e("./set_convert");var q=e("./axis_autotype"),$=e("./axis_ids"),ne=$.idSort,H=$.isLinked;U.id2name=$.id2name,U.name2id=$.name2id,U.cleanId=$.cleanId,U.list=$.list,U.listIds=$.listIds,U.getFromId=$.getFromId,U.getFromTrace=$.getFromTrace;var Q=e("./autorange");U.getAutoRange=Q.getAutoRange,U.findExtremes=Q.findExtremes;function ee(Be){var Ge=1e-4*(Be[1]-Be[0]);return[Be[0]-Ge,Be[1]+Ge]}U.coerceRef=function(Be,Ge,Tt,dt,Pe,Ie){var Ae=dt.charAt(dt.length-1),De=Tt._fullLayout._subplots[Ae+"axis"],He=dt+"ref",rt={};return Pe||(Pe=De[0]||(typeof Ie=="string"?Ie:Ie[0])),Ie||(Ie=Pe),De=De.concat(De.map(function(lt){return lt+" domain"})),rt[He]={valType:"enumerated",values:De.concat(Ie?typeof Ie=="string"?[Ie]:Ie:[]),dflt:Pe},i.coerce(Be,Ge,rt,He)},U.getRefType=function(Be){return Be===void 0?Be:Be==="paper"?"paper":Be==="pixel"?"pixel":/( domain)$/.test(Be)?"domain":"range"},U.coercePosition=function(Be,Ge,Tt,dt,Pe,Ie){var Ae,De;if(U.getRefType(dt)!=="range")Ae=i.ensureNumber,De=Tt(Pe,Ie);else{var He=U.getFromId(Ge,dt);De=Tt(Pe,Ie=He.fraction2r(Ie)),Ae=He.cleanPos}Be[Pe]=Ae(De)},U.cleanPosition=function(Be,Ge,Tt){return(Tt==="paper"||Tt==="pixel"?i.ensureNumber:U.getFromId(Ge,Tt).cleanPos)(Be)},U.redrawComponents=function(Be,Ge){Ge=Ge||U.listIds(Be);var Tt=Be._fullLayout;function dt(Pe,Ie,Ae,De){for(var He=c.getComponentMethod(Pe,Ie),rt={},lt=0;lt2e-6||((Tt-Be._forceTick0)/Be._minDtick%1+1.000001)%1>2e-6)&&(Be._minDtick=0)):Be._minDtick=0},U.saveRangeInitial=function(Be,Ge){for(var Tt=U.list(Be,"",!0),dt=!1,Pe=0;Pe.3*Kt||It(St)||It(Dt))){var Ht=zt.dtick/2;tt+=tt+Ht.8){var Je=Number(zt.substr(1));Le.exactYears>.8&&Je%12==0?tt=U.tickIncrement(tt,"M6","reverse")+1.5*E:Le.exactMonths>.8?tt=U.tickIncrement(tt,"M1","reverse")+15.5*E:tt-=D;var st=U.tickIncrement(tt,zt);if(st<=St)return st}return tt}(Ut,Be,Vt,De,Pe)),wt=Ut,0;wt<=He;)wt=U.tickIncrement(wt,Vt,!1,Pe);return{start:Ge.c2r(Ut,0,Pe),end:Ge.c2r(wt,0,Pe),size:Vt,_dataSpan:He-De}},U.prepTicks=function(Be,Ge){var Tt=i.simpleMap(Be.range,Be.r2l,void 0,void 0,Ge);if(Be._dtickInit=Be.dtick,Be._tick0Init=Be.tick0,Be.tickmode==="auto"||!Be.dtick){var dt,Pe=Be.nticks;Pe||(Be.type==="category"||Be.type==="multicategory"?(dt=Be.tickfont?i.bigFont(Be.tickfont.size||12):15,Pe=Be._length/dt):(dt=Be._id.charAt(0)==="y"?40:80,Pe=i.constrain(Be._length/dt,4,9)+1),Be._name==="radialaxis"&&(Pe*=2)),Be.tickmode==="array"&&(Pe*=100),Be._roughDTick=Math.abs(Tt[1]-Tt[0])/Pe,U.autoTicks(Be,Be._roughDTick),Be._minDtick>0&&Be.dtick<2*Be._minDtick&&(Be.dtick=Be._minDtick,Be.tick0=Be.l2r(Be._forceTick0))}Be.ticklabelmode==="period"&&function(Ie){var Ae;function De(){return!(a(Ie.dtick)||Ie.dtick.charAt(0)!=="M")}var He=De(),rt=U.getTickFormat(Ie);if(rt){var lt=Ie._dtickInit!==Ie.dtick;/%[fLQsSMX]/.test(rt)||(/%[HI]/.test(rt)?(Ae=O,lt&&!He&&Ie.dtickHn&&Er=Ie:kt<=Ie;kt=U.tickIncrement(kt,Be.dtick,Ae,Be.calendar)){if(Dt++,Be.rangebreaks&&!Ae){if(kt=He)break}if(tt.length>Ut||kt===bt)break;bt=kt;var Le=!1;lt&&kt!==(0|kt)&&(Le=!0);var Je={minor:Le,value:kt};Vt>1&&Dt%Vt&&(Je.skipLabel=!0),tt.push(Je)}if(ot&&function(nn,sn,gn){for(var bn=0;bn0?(Hn=bn-1,Wn=bn):(Hn=bn,Wn=bn);var ar,Or=nn[Hn].value,vr=nn[Wn].value,Er=Math.abs(vr-Or),Kn=gn||Er,Ln=0;Kn>=w?Ln=Er>=w&&Er<=y?Er:x:gn===b&&Kn>=T?Ln=Er>=T&&Er<=k?Er:b:Kn>=A?Ln=Er>=A&&Er<=_?Er:M:gn===S&&Kn>=S?Ln=S:Kn>=E?Ln=E:gn===D&&Kn>=D?Ln=D:gn===O&&Kn>=O&&(Ln=O),Ln>=Er&&(Ln=Er,ar=!0);var lr=In+Ln;if(sn.rangebreaks&&Ln>0){for(var Wr=0,Mn=0;Mn<84;Mn++){var rr=(Mn+.5)/84;sn.maskBreaks(In*(1-rr)+rr*lr)!==P&&Wr++}(Ln*=Wr/84)||(nn[bn].drop=!0),ar&&Er>S&&(Ln=Er)}(Ln>0||bn===0)&&(nn[bn].periodX=In+Ln/2)}}(tt,Be,Be._definedDelta),Be.rangebreaks){var st=Be._id.charAt(0)==="y",Et=1;Be.tickmode==="auto"&&(Et=Be.tickfont?Be.tickfont.size:12);var It=NaN;for(zt=tt.length-1;zt>-1;zt--)if(tt[zt].drop)tt.splice(zt,1);else{tt[zt].value=Ot(tt[zt].value,Be);var Zt=Be.c2p(tt[zt].value);(st?It>Zt-Et:ItHe||HtHe&&(Kt.periodX=He),Ht10||dt.substr(5)!=="01-01"?Be._tickround="d":Be._tickround=+Ge.substr(1)%12==0?"y":"m";else if(Ge>=E&&Pe<=10||Ge>=15*E)Be._tickround="d";else if(Ge>=R&&Pe<=16||Ge>=O)Be._tickround="M";else if(Ge>=z&&Pe<=19||Ge>=R)Be._tickround="S";else{var Ie=Be.l2r(Tt+Ge).replace(/^-/,"").length;Be._tickround=Math.max(Pe,Ie)-20,Be._tickround<0&&(Be._tickround=4)}}else if(a(Ge)||Ge.charAt(0)==="L"){var Ae=Be.range.map(Be.r2d||Number);a(Ge)||(Ge=Number(Ge.substr(1))),Be._tickround=2-Math.floor(Math.log(Ge)/Math.LN10+.01);var De=Math.max(Math.abs(Ae[0]),Math.abs(Ae[1])),He=Math.floor(Math.log(De)/Math.LN10+.01),rt=Be.minexponent===void 0?3:Be.minexponent;Math.abs(He)>rt&&(Ee(Be.exponentformat)&&!ze(He)?Be._tickexponent=3*Math.round((He-1)/3):Be._tickexponent=He)}else Be._tickround=null}function Me(Be,Ge,Tt){var dt=Be.tickfont||{};return{x:Ge,dx:0,dy:0,text:Tt||"",fontSize:dt.size,font:dt.family,fontColor:dt.color}}U.autoTicks=function(Be,Ge){var Tt;function dt(lt){return Math.pow(lt,Math.floor(Math.log(Ge)/Math.LN10))}if(Be.type==="date"){Be.tick0=i.dateTick0(Be.calendar,0);var Pe=2*Ge;if(Pe>x)Ge/=x,Tt=dt(10),Be.dtick="M"+12*de(Ge,Tt,ge);else if(Pe>M)Ge/=M,Be.dtick="M"+de(Ge,1,fe);else if(Pe>E){Be.dtick=de(Ge,E,Be._hasDayOfWeekBreaks?[1,2,7,14]:_e);var Ie=U.getTickFormat(Be),Ae=Be.ticklabelmode==="period";Ae&&(Be._rawTick0=Be.tick0),/%[uVW]/.test(Ie)?Be.tick0=i.dateTick0(Be.calendar,2):Be.tick0=i.dateTick0(Be.calendar,1),Ae&&(Be._dowTick0=Be.tick0)}else Pe>O?Be.dtick=de(Ge,O,fe):Pe>R?Be.dtick=de(Ge,R,me):Pe>z?Be.dtick=de(Ge,z,me):(Tt=dt(10),Be.dtick=de(Ge,Tt,ge))}else if(Be.type==="log"){Be.tick0=0;var De=i.simpleMap(Be.range,Be.r2l);if(Ge>.7)Be.dtick=Math.ceil(Ge);else if(Math.abs(De[1]-De[0])<1){var He=1.5*Math.abs((De[1]-De[0])/Ge);Ge=Math.abs(Math.pow(10,De[1])-Math.pow(10,De[0]))/He,Tt=dt(10),Be.dtick="L"+de(Ge,Tt,ge)}else Be.dtick=Ge>.3?"D2":"D1"}else Be.type==="category"||Be.type==="multicategory"?(Be.tick0=0,Be.dtick=Math.ceil(Math.max(Ge,1))):et(Be)?(Be.tick0=0,Tt=1,Be.dtick=de(Ge,Tt,Oe)):(Be.tick0=0,Tt=dt(10),Be.dtick=de(Ge,Tt,ge));if(Be.dtick===0&&(Be.dtick=1),!a(Be.dtick)&&typeof Be.dtick!="string"){var rt=Be.dtick;throw Be.dtick=1,"ax.dtick error: "+String(rt)}},U.tickIncrement=function(Be,Ge,Tt,dt){var Pe=Tt?-1:1;if(a(Ge))return i.increment(Be,Pe*Ge);var Ie=Ge.charAt(0),Ae=Pe*Number(Ge.substr(1));if(Ie==="M")return i.incrementMonth(Be,Ae,dt);if(Ie==="L")return Math.log(Math.pow(10,Be)+Ae)/Math.LN10;if(Ie==="D"){var De=Ge==="D2"?Te:we,He=Be+.01*Pe,rt=i.roundUp(i.mod(He,1),De,Tt);return Math.floor(He)+Math.log(r.round(Math.pow(10,rt),1))/Math.LN10}throw"unrecognized dtick "+String(Ge)},U.tickFirst=function(Be,Ge){var Tt=Be.r2l||Number,dt=i.simpleMap(Be.range,Tt,void 0,void 0,Ge),Pe=dt[1] ")}else Ut._prevDateHead=Le,Je+="
    "+Le;tt.text=Je}(Be,Ie,Tt,De):He==="log"?function(Ut,tt,bt,zt,St){var Dt=Ut.dtick,Le=tt.x,Je=Ut.tickformat,st=typeof Dt=="string"&&Dt.charAt(0);if(St==="never"&&(St=""),zt&&st!=="L"&&(Dt="L3",st="L"),Je||st==="L")tt.text=Fe(Math.pow(10,Le),Ut,St,zt);else if(a(Dt)||st==="D"&&i.mod(Le+.01,1)<.1){var Et=Math.round(Le),It=Math.abs(Et),Zt=Ut.exponentformat;Zt==="power"||Ee(Zt)&&ze(Et)?(tt.text=Et===0?1:Et===1?"10":"10"+(Et>1?"":L)+It+"",tt.fontSize*=1.25):(Zt==="e"||Zt==="E")&&It>2?tt.text="1"+Zt+(Et>0?"+":L)+It:(tt.text=Fe(Math.pow(10,Le),Ut,"","fakehover"),Dt==="D1"&&Ut._id.charAt(0)==="y"&&(tt.dy-=tt.fontSize/6))}else{if(st!=="D")throw"unrecognized dtick "+String(Dt);tt.text=String(Math.round(Math.pow(10,i.mod(Le,1)))),tt.fontSize*=.75}if(Ut.dtick==="D1"){var Kt=String(tt.text).charAt(0);Kt!=="0"&&Kt!=="1"||(Ut._id.charAt(0)==="y"?tt.dx-=tt.fontSize/4:(tt.dy+=tt.fontSize/2,tt.dx+=(Ut.range[1]>Ut.range[0]?1:-1)*tt.fontSize*(Le<0?.5:.25)))}}(Be,Ie,0,De,wt):He==="category"?function(Ut,tt){var bt=Ut._categories[Math.round(tt.x)];bt===void 0&&(bt=""),tt.text=String(bt)}(Be,Ie):He==="multicategory"?function(Ut,tt,bt){var zt=Math.round(tt.x),St=Ut._categories[zt]||[],Dt=St[1]===void 0?"":String(St[1]),Le=St[0]===void 0?"":String(St[0]);bt?tt.text=Le+" - "+Dt:(tt.text=Dt,tt.text2=Le)}(Be,Ie,Tt):et(Be)?function(Ut,tt,bt,zt,St){if(Ut.thetaunit!=="radians"||bt)tt.text=Fe(tt.x,Ut,St,zt);else{var Dt=tt.x/180;if(Dt===0)tt.text="0";else{var Le=function(st){function Et(Ht,mn){return Math.abs(Ht-mn)<=1e-6}var It=function(Ht){for(var mn=1;!Et(Math.round(Ht*mn)/mn,Ht);)mn*=10;return mn}(st),Zt=st*It,Kt=Math.abs(function Ht(mn,zn){return Et(zn,0)?mn:Ht(zn,mn%zn)}(Zt,It));return[Math.round(Zt/Kt),Math.round(It/Kt)]}(Dt);if(Le[1]>=100)tt.text=Fe(i.deg2rad(tt.x),Ut,St,zt);else{var Je=tt.x<0;Le[1]===1?Le[0]===1?tt.text="\u03C0":tt.text=Le[0]+"\u03C0":tt.text=["",Le[0],"","\u2044","",Le[1],"","\u03C0"].join(""),Je&&(tt.text=L+tt.text)}}}}(Be,Ie,Tt,De,wt):function(Ut,tt,bt,zt,St){St==="never"?St="":Ut.showexponent==="all"&&Math.abs(tt.x/Ut.dtick)<1e-6&&(St="hide"),tt.text=Fe(tt.x,Ut,St,zt)}(Be,Ie,0,De,wt),dt||(Be.tickprefix&&!kt(Be.showtickprefix)&&(Ie.text=Be.tickprefix+Ie.text),Be.ticksuffix&&!kt(Be.showticksuffix)&&(Ie.text+=Be.ticksuffix)),Be.tickson==="boundaries"||Be.showdividers){var Vt=function(Ut){var tt=Be.l2p(Ut);return tt>=0&&tt<=Be._length?Ut:null};Ie.xbnd=[Vt(Ie.x-.5),Vt(Ie.x+Be.dtick-.5)]}return Ie},U.hoverLabelText=function(Be,Ge,Tt){Tt&&(Be=i.extendFlat({},Be,{hoverformat:Tt}));var dt=Array.isArray(Ge)?Ge[0]:Ge,Pe=Array.isArray(Ge)?Ge[1]:void 0;if(Pe!==void 0&&Pe!==dt)return U.hoverLabelText(Be,dt,Tt)+" - "+U.hoverLabelText(Be,Pe,Tt);var Ie=Be.type==="log"&&dt<=0,Ae=U.tickText(Be,Be.c2l(Ie?-dt:dt),"hover").text;return Ie?dt===0?"0":L+Ae:Ae};var ke=["f","p","n","\u03BC","m","","k","M","G","T"];function Ee(Be){return Be==="SI"||Be==="B"}function ze(Be){return Be>14||Be<-15}function Fe(Be,Ge,Tt,dt){var Pe=Be<0,Ie=Ge._tickround,Ae=Tt||Ge.exponentformat||"B",De=Ge._tickexponent,He=U.getTickFormat(Ge),rt=Ge.separatethousands;if(dt){var lt={exponentformat:Ae,minexponent:Ge.minexponent,dtick:Ge.showexponent==="none"?Ge.dtick:a(Be)&&Math.abs(Be)||1,range:Ge.showexponent==="none"?Ge.range.map(Ge.r2d):[0,Be||1]};ye(lt),Ie=(Number(lt._tickround)||0)+4,De=lt._tickexponent,Ge.hoverformat&&(He=Ge.hoverformat)}if(He)return Ge._numFormat(He)(Be).replace(/-/g,L);var ot,kt=Math.pow(10,-Ie)/2;if(Ae==="none"&&(De=0),(Be=Math.abs(Be))"+ot+"":Ae==="B"&&De===9?Be+="B":Ee(Ae)&&(Be+=ke[De/3+5])),Pe?L+Be:Be}function Ve(Be,Ge){for(var Tt=[],dt={},Pe=0;Pe1&&Tt=Pe.min&&Be=0,bt=lt(kt,wt[1])<=0;return(Vt||tt)&&(Ut||bt)}if(Be.tickformatstops&&Be.tickformatstops.length>0)switch(Be.type){case"date":case"linear":for(Ge=0;Ge=Ae(Pe)))){Tt=dt;break}break;case"log":for(Ge=0;Ge0?Kn.bottom-nr:0,Bn)))),Ge.automargin){Ln={x:0,y:0,r:0,l:0,t:0,b:0};var Fr=[0,1];if(He==="x"){if(Mn==="b"?Ln[Mn]=Ge._depth:(Ln[Mn]=Ge._depth=Math.max(Kn.width>0?nr-Kn.top:0,Bn),Fr.reverse()),Kn.width>0){var $r=Kn.right-(Ge._offset+Ge._length);$r>0&&(Ln.xr=1,Ln.r=$r);var pr=Ge._offset-Kn.left;pr>0&&(Ln.xl=0,Ln.l=pr)}}else if(Mn==="l"?Ln[Mn]=Ge._depth=Math.max(Kn.height>0?nr-Kn.left:0,Bn):(Ln[Mn]=Ge._depth=Math.max(Kn.height>0?Kn.right-nr:0,Bn),Fr.reverse()),Kn.height>0){var qr=Kn.bottom-(Ge._offset+Ge._length);qr>0&&(Ln.yb=0,Ln.b=qr);var _i=Ge._offset-Kn.top;_i>0&&(Ln.yt=1,Ln.t=_i)}Ln[rt]=Ge.anchor==="free"?Ge.position:Ge._anchorAxis.domain[Fr[0]],Ge.title.text!==Ae._dfltTitle[He]&&(Ln[Mn]+=qe(Ge)+(Ge.title.standoff||0)),Ge.mirror&&Ge.anchor!=="free"&&((lr={x:0,y:0,r:0,l:0,t:0,b:0})[rr]=Ge.linewidth,Ge.mirror&&Ge.mirror!==!0&&(lr[rr]+=Bn),Ge.mirror===!0||Ge.mirror==="ticks"?lr[rt]=Ge._anchorAxis.domain[Fr[1]]:Ge.mirror!=="all"&&Ge.mirror!=="allticks"||(lr[rt]=[Ge._counterDomainMin,Ge._counterDomainMax][Fr[1]]))}vr&&(Wr=c.getComponentMethod("rangeslider","autoMarginOpts")(Be,Ge)),u.autoMargin(Be,nt(Ge),Ln),u.autoMargin(Be,ft(Ge),lr),u.autoMargin(Be,vt(Ge),Wr)}),Tt.skipTitle||vr&&Ge.side==="bottom"||ar.push(function(){return function(Kn,Ln){var lr,Wr=Kn._fullLayout,Mn=Ln._id,rr=Mn.charAt(0),nr=Ln.title.font.size;if(Ln.title.hasOwnProperty("standoff"))lr=Ln._depth+Ln.title.standoff+qe(Ln);else{var Bn=Wt(Ln);if(Ln.type==="multicategory")lr=Ln._depth;else{var Fr=1.5*nr;Bn&&(Fr=.5*nr,Ln.ticks==="outside"&&(Fr+=Ln.ticklen)),lr=10+Fr+(Ln.linewidth?Ln.linewidth-1:0)}Bn||(lr+=rr==="x"?Ln.side==="top"?nr*(Ln.showticklabels?1:0):nr*(Ln.showticklabels?1.5:.5):Ln.side==="right"?nr*(Ln.showticklabels?1:.5):nr*(Ln.showticklabels?.5:0))}var $r,pr,qr,_i,cn=U.getPxPosition(Kn,Ln);if(rr==="x"?(pr=Ln._offset+Ln._length/2,qr=Ln.side==="top"?cn-lr:cn+lr):(qr=Ln._offset+Ln._length/2,pr=Ln.side==="right"?cn+lr:cn-lr,$r={rotate:"-90",offset:0}),Ln.type!=="multicategory"){var jn=Ln._selections[Ln._id+"tick"];if(_i={selection:jn,side:Ln.side},jn&&jn.node()&&jn.node().parentNode){var jt=m.getTranslate(jn.node().parentNode);_i.offsetLeft=jt.x,_i.offsetTop=jt.y}Ln.title.hasOwnProperty("standoff")&&(_i.pad=0)}return d.draw(Kn,Mn+"title",{propContainer:Ln,propName:Ln._name+".title.text",placeholder:Wr._dfltTitle[rr],avoid:_i,transform:$r,attributes:{x:pr,y:qr,"text-anchor":"middle"}})}(Be,Ge)}),i.syncOrAsync(ar)}}function Er(Kn){var Ln=De+(Kn||"tick");return tt[Ln]||(tt[Ln]=function(lr,Wr){var Mn,rr,nr,Bn;return lr._selections[Wr].size()?(Mn=1/0,rr=-1/0,nr=1/0,Bn=-1/0,lr._selections[Wr].each(function(){var Fr=Ye(this),$r=m.bBox(Fr.node().parentNode);Mn=Math.min(Mn,$r.top),rr=Math.max(rr,$r.bottom),nr=Math.min(nr,$r.left),Bn=Math.max(Bn,$r.right)})):(Mn=0,rr=0,nr=0,Bn=0),{top:Mn,bottom:rr,left:nr,right:Bn,height:rr-Mn,width:Bn-nr}}(Ge,Ln)),tt[Ln]}},U.getTickSigns=function(Be){var Ge=Be._id.charAt(0),Tt={x:"top",y:"right"}[Ge],dt=Be.side===Tt?1:-1,Pe=[-1,1,dt,-dt];return Be.ticks!=="inside"==(Ge==="x")&&(Pe=Pe.map(function(Ie){return-Ie})),Be.side&&Pe.push({l:-1,t:-1,r:1,b:1}[Be.side.charAt(0)]),Pe},U.makeTransTickFn=function(Be){return Be._id.charAt(0)==="x"?function(Ge){return s(Be._offset+Be.l2p(Ge.x),0)}:function(Ge){return s(0,Be._offset+Be.l2p(Ge.x))}},U.makeTransTickLabelFn=function(Be){var Ge=function(Pe){var Ie=Pe.ticklabelposition||"",Ae=function(bt){return Ie.indexOf(bt)!==-1},De=Ae("top"),He=Ae("left"),rt=Ae("right"),lt=Ae("bottom"),ot=Ae("inside"),kt=lt||He||De||rt;if(!kt&&!ot)return[0,0];var wt=Pe.side,Vt=kt?(Pe.tickwidth||0)/2:0,Ut=3,tt=Pe.tickfont?Pe.tickfont.size:12;return(lt||De)&&(Vt+=tt*Y,Ut+=(Pe.linewidth||0)/2),(He||rt)&&(Vt+=(Pe.linewidth||0)/2,Ut+=3),ot&&wt==="top"&&(Ut-=tt*(1-Y)),(He||De)&&(Vt=-Vt),wt!=="bottom"&&wt!=="right"||(Ut=-Ut),[kt?Vt:0,ot?Ut:0]}(Be),Tt=Ge[0],dt=Ge[1];return Be._id.charAt(0)==="x"?function(Pe){return s(Tt+Be._offset+Be.l2p(Ke(Pe)),dt)}:function(Pe){return s(dt,Tt+Be._offset+Be.l2p(Ke(Pe)))}},U.makeTickPath=function(Be,Ge,Tt,dt){dt=dt!==void 0?dt:Be.ticklen;var Pe=Be._id.charAt(0),Ie=(Be.linewidth||1)/2;return Pe==="x"?"M0,"+(Ge+Ie*Tt)+"v"+dt*Tt:"M"+(Ge+Ie*Tt)+",0h"+dt*Tt},U.makeLabelFns=function(Be,Ge,Tt){var dt=Be.ticklabelposition||"",Pe=function(Kt){return dt.indexOf(Kt)!==-1},Ie=Pe("top"),Ae=Pe("left"),De=Pe("right"),He=Pe("bottom")||Ae||Ie||De,rt=Pe("inside"),lt=dt==="inside"&&Be.ticks==="inside"||!rt&&Be.ticks==="outside"&&Be.tickson!=="boundaries",ot=0,kt=0,wt=lt?Be.ticklen:0;if(rt?wt*=-1:He&&(wt=0),lt&&(ot+=wt,Tt)){var Vt=i.deg2rad(Tt);ot=wt*Math.cos(Vt)+1,kt=wt*Math.sin(Vt)}Be.showticklabels&&(lt||Be.showline)&&(ot+=.2*Be.tickfont.size);var Ut,tt,bt,zt,St,Dt={labelStandoff:ot+=(Be.linewidth||1)/2*(rt?-1:1),labelShift:kt},Le=0,Je=Be.side,st=Be._id.charAt(0),Et=Be.tickangle;if(st==="x")zt=(St=!rt&&Je==="bottom"||rt&&Je==="top")?1:-1,rt&&(zt*=-1),Ut=kt*zt,tt=Ge+ot*zt,bt=St?1:-.2,Math.abs(Et)===90&&(rt?bt+=te:bt=Et===-90&&Je==="bottom"?Y:Et===90&&Je==="top"?te:.5,Le=te/2*(Et/90)),Dt.xFn=function(Kt){return Kt.dx+Ut+Le*Kt.fontSize},Dt.yFn=function(Kt){return Kt.dy+tt+Kt.fontSize*bt},Dt.anchorFn=function(Kt,Ht){if(He){if(Ae)return"end";if(De)return"start"}return a(Ht)&&Ht!==0&&Ht!==180?Ht*zt<0!==rt?"end":"start":"middle"},Dt.heightFn=function(Kt,Ht,mn){return Ht<-60||Ht>60?-.5*mn:Be.side==="top"!==rt?-mn:0};else if(st==="y"){if(zt=(St=!rt&&Je==="left"||rt&&Je==="right")?1:-1,rt&&(zt*=-1),Ut=ot,tt=kt*zt,bt=0,rt||Math.abs(Et)!==90||(bt=Et===-90&&Je==="left"||Et===90&&Je==="right"?Y:.5),rt){var It=a(Et)?+Et:0;if(It!==0){var Zt=i.deg2rad(It);Le=Math.abs(Math.sin(Zt))*Y*zt,bt=0}}Dt.xFn=function(Kt){return Kt.dx+Ge-(Ut+Kt.fontSize*bt)*zt+Le*Kt.fontSize},Dt.yFn=function(Kt){return Kt.dy+tt+Kt.fontSize*te},Dt.anchorFn=function(Kt,Ht){return a(Ht)&&Math.abs(Ht)===90?"middle":St?"end":"start"},Dt.heightFn=function(Kt,Ht,mn){return Be.side==="right"&&(Ht*=-1),Ht<-30?-mn:Ht<30?-.5*mn:0}}return Dt},U.drawTicks=function(Be,Ge,Tt){Tt=Tt||{};var dt=Ge._id+"tick",Pe=Tt.vals;Ge.ticklabelmode==="period"&&(Pe=Pe.slice()).shift();var Ie=Tt.layer.selectAll("path."+dt).data(Ge.ticks?Pe:[],Re);Ie.exit().remove(),Ie.enter().append("path").classed(dt,1).classed("ticks",1).classed("crisp",Tt.crisp!==!1).call(h.stroke,Ge.tickcolor).style("stroke-width",m.crispRound(Be,Ge.tickwidth,1)+"px").attr("d",Tt.path).style("display",null),Jt(Ge,[G]),Ie.attr("transform",Tt.transFn)},U.drawGrid=function(Be,Ge,Tt){Tt=Tt||{};var dt=Ge._id+"grid",Pe=Tt.vals,Ie=Tt.counterAxis;if(Ge.showgrid===!1)Pe=[];else if(Ie&&U.shouldShowZeroLine(Be,Ge,Ie))for(var Ae=Ge.tickmode==="array",De=0;DeIt||sn.leftIt||sn.top+(Ge.tickangle?0:tn.fontSize/4)Ge["_visibleLabelMin_"+st._id]?pn.style("display","none"):It.K!=="tick"||Et||pn.style("display",null)})})})})},wt(ot,lt+1?lt:rt);var Vt=null;Ge._selections&&(Ge._selections[Ae]=ot);var Ut=[function(){return kt.length&&Promise.all(kt)}];Ge.automargin&&dt._redrawFromAutoMarginCount&<===90?(Vt=90,Ut.push(function(){wt(ot,lt)})):Ut.push(function(){if(wt(ot,rt),De.length&&Ie==="x"&&!a(rt)&&(Ge.type!=="log"||String(Ge.dtick).charAt(0)!=="D")){Vt=0;var zt,St=0,Dt=[];if(ot.each(function(nn){St=Math.max(St,nn.fontSize);var sn=Ge.l2p(nn.x),gn=Ye(this),bn=m.bBox(gn.node());Dt.push({top:0,bottom:10,height:10,left:sn-bn.width/2,right:sn+bn.width/2+2,width:bn.width+2})}),Ge.tickson!=="boundaries"&&!Ge.showdividers||Tt.secondary){var Le=De.length,Je=Math.abs((De[Le-1].x-De[0].x)*Ge._m)/(Le-1),st=Ge.ticklabelposition||"",Et=function(nn){return st.indexOf(nn)!==-1},It=Et("top"),Zt=Et("left"),Kt=Et("right"),Ht=Et("bottom")||Zt||It||Kt?(Ge.tickwidth||0)+6:0,mn=Je<2.5*St||Ge.type==="multicategory"||Ge._name==="realaxis";for(zt=0;zt1)for(De=1;De2*E}(v,g))return"date";var b=p.autotypenumbers!=="strict";return function(T,_){for(var M=T.length,A=h(M),S=0,E=0,D={},O=0;O2*S}(v,b)?"category":function(T,_){for(var M=T.length,A=0;A=2){var S,E,D="";if(A.length===2){for(S=0;S<2;S++)if(E=k(A[S])){D=v;break}}var O=M("pattern",D);if(O===v)for(S=0;S<2;S++)(E=k(A[S]))&&(T.bounds[S]=A[S]=E-1);if(O)for(S=0;S<2;S++)switch(E=A[S],O){case v:if(!r(E)||(E=+E)!==Math.floor(E)||E<0||E>=7)return void(T.enabled=!1);T.bounds[S]=A[S]=E;break;case y:if(!r(E)||(E=+E)<0||E>24)return void(T.enabled=!1);T.bounds[S]=A[S]=E}if(_.autorange===!1){var R=_.range;if(R[0]R[1])return void(T.enabled=!1)}else if(A[0]>R[0]&&A[1]l?1:-1:+(c.substr(1)||1)-+(i.substr(1)||1)},f.ref2id=function(c){return!!/^[xyz]/.test(c)&&c.split(" ")[0]},f.isLinked=function(c,i){return u(i,c._axisMatchGroups)||u(i,c._axisConstraintGroups)}},{"../../registry":638,"./constants":561}],559:[function(e,o,f){o.exports=function(r,a,u,c){if(a.type==="category"){var i,s=r.categoryarray,l=Array.isArray(s)&&s.length>0;l&&(i="array");var d,h=u("categoryorder",i);h==="array"&&(d=u("categoryarray")),l||h!=="array"||(h=a.categoryorder="trace"),h==="trace"?a._initialCategories=[]:h==="array"?a._initialCategories=d.slice():(d=function(m,g){var p,v,y,x=g.dataAttr||m._id.charAt(0),w={};if(g.axData)p=g.axData;else for(p=[],v=0;vT?_.substr(T):M.substr(b))+A:_+M+w*k:A}function y(w,k){for(var b=k._size,T=b.h/b.w,_={},M=Object.keys(w),A=0;Al*L)||G){for(b=0;bne&&ieq&&(q=ie);E/=(q-U)/(2*$),U=M.l2r(U),q=M.l2r(q),M.range=M._input.range=Y=0?Math.min(ie,.9):1/(1/Math.max(ie,-.3)+3.222))}function Y(ie,ae,ue,le,ge){return ie.append("path").attr("class","zoombox").style({fill:ae>.2?"rgba(0,0,0,0)":"rgba(255,255,255,0)","stroke-width":0}).attr("transform",l(ue,le)).attr("d",ge+"Z")}function Z(ie,ae,ue){return ie.append("path").attr("class","zoombox-corners").style({fill:h.background,stroke:h.defaultLine,"stroke-width":1,opacity:0}).attr("transform",l(ae,ue)).attr("d","M0,0Z")}function re(ie,ae,ue,le,ge,fe){ie.attr("d",le+"M"+ue.l+","+ue.t+"v"+ue.h+"h"+ue.w+"v-"+ue.h+"h-"+ue.w+"Z"),U(ie,ae,ge,fe)}function U(ie,ae,ue,le){ue||(ie.transition().style("fill",le>.2?"rgba(0,0,0,0.4)":"rgba(255,255,255,0.3)").duration(200),ae.transition().style("opacity",1).duration(200))}function q(ie){r.select(ie).selectAll(".zoombox,.js-zoombox-backdrop,.js-zoombox-menu,.zoombox-corners").remove()}function $(ie){P&&ie.data&&ie._context.showTips&&(a.notifier(a._(ie,"Double-click to zoom back out"),"long"),P=!1)}function ne(ie){var ae=Math.floor(Math.min(ie.b-ie.t,ie.r-ie.l,L)/2);return"M"+(ie.l-3.5)+","+(ie.t-.5+ae)+"h3v"+-ae+"h"+ae+"v-3h-"+(ae+3)+"ZM"+(ie.r+3.5)+","+(ie.t-.5+ae)+"h-3v"+-ae+"h"+-ae+"v-3h"+(ae+3)+"ZM"+(ie.r+3.5)+","+(ie.b+.5-ae)+"h-3v"+ae+"h"+-ae+"v3h"+(ae+3)+"ZM"+(ie.l-3.5)+","+(ie.b+.5-ae)+"h3v"+ae+"h"+ae+"v3h-"+(ae+3)+"Z"}function H(ie,ae,ue,le,ge){for(var fe,me,_e,we,Te=!1,Oe={},de={},ye=(ge||{}).xaHash,Me=(ge||{}).yaHash,ke=0;ke=0)sn._fullLayout._deactivateShape(sn);else{var gn=sn._fullLayout.clickmode;if(q(sn),tn!==2||Jt||Zt(),Wt)gn.indexOf("select")>-1&&D(nn,sn,ye,Me,ae.id,wt),gn.indexOf("event")>-1&&g.click(sn,nn,ae.id);else if(tn===1&&Jt){var bn=me?Te:we,In=me==="s"||_e==="w"?0:1,Hn=bn._name+".range["+In+"]",Wn=function(vr,Er){var Kn,Ln=vr.range[Er],lr=Math.abs(Ln-vr.range[1-Er]);return vr.type==="date"?Ln:vr.type==="log"?(Kn=Math.ceil(Math.max(0,-Math.log(lr)/Math.LN10))+3,u("."+Kn+"g")(Math.pow(10,Ln))):(Kn=Math.floor(Math.log(Math.abs(Ln))/Math.LN10)-Math.floor(Math.log(lr)/Math.LN10)+4,u("."+String(Kn)+"g")(Ln))}(bn,In),ar="left",Or="middle";if(bn.fixedrange)return;me?(Or=me==="n"?"top":"bottom",bn.side==="right"&&(ar="right")):_e==="e"&&(ar="right"),sn._context.showAxisRangeEntryBoxes&&r.select(Tt).call(d.makeEditable,{gd:sn,immediate:!0,background:sn._fullLayout.paper_bgcolor,text:String(Wn),fill:bn.tickfont?bn.tickfont.color:"#444",horizontalAlign:ar,verticalAlign:Or}).on("edit",function(vr){var Er=bn.d2r(vr);Er!==void 0&&s.call("_guiRelayout",sn,Hn,Er)})}}}function tt(tn,nn){if(ie._transitioningWithDuration)return!1;var sn=Math.max(0,Math.min(ze,at*tn+dt)),gn=Math.max(0,Math.min(Fe,et*nn+Pe)),bn=Math.abs(sn-dt),In=Math.abs(gn-Pe);function Hn(){rt="",Ie.r=Ie.l,Ie.t=Ie.b,ot.attr("d","M0,0Z")}if(Ie.l=Math.min(dt,sn),Ie.r=Math.max(dt,sn),Ie.t=Math.min(Pe,gn),Ie.b=Math.max(Pe,gn),Ve.isSubplotConstrained)bn>L||In>L?(rt="xy",bn/ze>In/Fe?(In=bn*Fe/ze,Pe>gn?Ie.t=Pe-In:Ie.b=Pe+In):(bn=In*ze/Fe,dt>sn?Ie.l=dt-bn:Ie.r=dt+bn),ot.attr("d",ne(Ie))):Hn();else if(Ke.isSubplotConstrained)if(bn>L||In>L){rt="xy";var Wn=Math.min(Ie.l/ze,(Fe-Ie.b)/Fe),ar=Math.max(Ie.r/ze,(Fe-Ie.t)/Fe);Ie.l=Wn*ze,Ie.r=ar*ze,Ie.b=(1-Wn)*Fe,Ie.t=(1-ar)*Fe,ot.attr("d",ne(Ie))}else Hn();else!qe||In0){var Or;if(Ke.isSubplotConstrained||!Re&&qe.length===1){for(Or=0;Orw[1]-1/4096&&(c.domain=d),a.noneOrAll(u.domain,c.domain,d)}return i("layer"),c}},{"../../lib":503,"fast-isnumeric":190}],573:[function(e,o,f){var r=e("./show_dflt");o.exports=function(a,u,c,i,s){s||(s={});var l=s.tickSuffixDflt,d=r(a);c("tickprefix")&&c("showtickprefix",d),c("ticksuffix",l)&&c("showticksuffix",d)}},{"./show_dflt":577}],574:[function(e,o,f){var r=e("../../constants/alignment").FROM_BL;o.exports=function(a,u,c){c===void 0&&(c=r[a.constraintoward||"center"]);var i=[a.r2l(a.range[0]),a.r2l(a.range[1])],s=i[0]+(i[1]-i[0])*c;a.range=a._input.range=[a.l2r(s+(i[0]-s)*u),a.l2r(s+(i[1]-s)*u)],a.setScale()}},{"../../constants/alignment":471}],575:[function(e,o,f){var r=e("polybooljs"),a=e("../../registry"),u=e("../../components/drawing").dashStyle,c=e("../../components/color"),i=e("../../components/fx"),s=e("../../components/fx/helpers").makeEventData,l=e("../../components/dragelement/helpers"),d=l.freeMode,h=l.rectMode,m=l.drawMode,g=l.openMode,p=l.selectMode,v=e("../../components/shapes/draw_newshape/display_outlines"),y=e("../../components/shapes/draw_newshape/helpers").handleEllipse,x=e("../../components/shapes/draw_newshape/newshapes"),w=e("../../lib"),k=e("../../lib/polygon"),b=e("../../lib/throttle"),T=e("./axis_ids").getFromId,_=e("../../lib/clear_gl_canvases"),M=e("../../plot_api/subroutines").redrawReglTraces,A=e("./constants"),S=A.MINSELECT,E=k.filter,D=k.tester,O=e("./handle_outline").clearSelect,R=e("./helpers"),z=R.p2r,L=R.axValue,P=R.getTransform;function N($,ne,H,Q,ee,ie,ae){var ue,le,ge,fe,me,_e,we,Te,Oe,de=ne._hoverdata,ye=ne._fullLayout.clickmode.indexOf("event")>-1,Me=[];if(function(Ve){return Ve&&Array.isArray(Ve)&&Ve[0].hoverOnBox!==!0}(de)){K($,ne,ie);var ke=function(Ve,Ke){var Re,qe,We=Ve[0],Ye=-1,nt=[];for(qe=0;qe0?function(Ve,Ke){var Re,qe,We,Ye=[];for(We=0;We0&&Ye.push(Re);if(Ye.length===1&&Ye[0]===Ke.searchInfo&&(qe=Ke.searchInfo.cd[0].trace).selectedpoints.length===Ke.pointNumbers.length){for(We=0;We1||(We+=Re.selectedpoints.length)>1))return!1;return We===1}(ue)&&(_e=Z(ke))){for(ae&&ae.remove(),Oe=0;Oe=0&&Q._fullLayout._deactivateShape(Q),m(ne)){var ee=Q._fullLayout._zoomlayer.selectAll(".select-outline-"+H.id);if(ee&&Q._fullLayout._drawing){var ie=x(ee,$);ie&&a.call("_guiRelayout",Q,{shapes:ie}),Q._fullLayout._drawing=!1}}H.selection={},H.selection.selectionDefs=$.selectionDefs=[],H.selection.mergedPolygons=$.mergedPolygons=[]}function Y($,ne,H,Q){var ee,ie,ae,ue=[],le=ne.map(function(we){return we._id}),ge=H.map(function(we){return we._id});for(ae=0;ae<$.calcdata.length;ae++)if((ie=(ee=$.calcdata[ae])[0].trace).visible===!0&&ie._module&&ie._module.selectPoints)if(!Q||ie.subplot!==Q&&ie.geo!==Q)if(ie.type==="splom"&&ie._xaxes[le[0]]&&ie._yaxes[ge[0]]){var fe=_e(ie._module,ee,ne[0],H[0]);fe.scene=$._fullLayout._splomScenes[ie.uid],ue.push(fe)}else if(ie.type==="sankey"){var me=_e(ie._module,ee,ne[0],H[0]);ue.push(me)}else{if(le.indexOf(ie.xaxis)===-1||ge.indexOf(ie.yaxis)===-1)continue;ue.push(_e(ie._module,ee,T($,ie.xaxis),T($,ie.yaxis)))}else ue.push(_e(ie._module,ee,ne[0],H[0]));return ue;function _e(we,Te,Oe,de){return{_module:we,cd:Te,xaxis:Oe,yaxis:de}}}function Z($){var ne=$.searchInfo.cd[0].trace,H=$.pointNumber,Q=$.pointNumbers,ee=Q.length>0?Q[0]:H;return!!ne.selectedpoints&&ne.selectedpoints.indexOf(ee)>-1}function re($,ne,H){var Q,ee,ie,ae;for(Q=0;Q=0)_e._fullLayout._deactivateShape(_e);else if(!le){var He=we.clickmode;b.done(Tt).then(function(){if(b.clear(Tt),Ae===2){for(Wt.remove(),Re=0;Re-1&&N(De,_e,Q.xaxes,Q.yaxes,Q.subplot,Q,Wt),He==="event"&&_e.emit("plotly_selected",void 0);i.click(_e,De)}).catch(w.error)}},Q.doneFn=function(){Ge.remove(),b.done(Tt).then(function(){b.clear(Tt),Q.gd.emit("plotly_selected",We),Ke&&Q.selectionDefs&&(Ke.subtract=Ot,Q.selectionDefs.push(Ke),Q.mergedPolygons.length=0,[].push.apply(Q.mergedPolygons,Ve)),Q.doneFnCompleted&&Q.doneFnCompleted(dt)}).catch(w.error),le&&te(Q)}},clearSelect:O,clearSelectionsCache:te,selectOnClick:N}},{"../../components/color":366,"../../components/dragelement/helpers":384,"../../components/drawing":388,"../../components/fx":406,"../../components/fx/helpers":402,"../../components/shapes/draw_newshape/display_outlines":454,"../../components/shapes/draw_newshape/helpers":455,"../../components/shapes/draw_newshape/newshapes":456,"../../lib":503,"../../lib/clear_gl_canvases":487,"../../lib/polygon":515,"../../lib/throttle":530,"../../plot_api/subroutines":544,"../../registry":638,"./axis_ids":558,"./constants":561,"./handle_outline":565,"./helpers":566,polybooljs:254}],576:[function(e,o,f){var r=e("@plotly/d3"),a=e("d3-time-format").utcFormat,u=e("../../lib"),c=u.numberFormat,i=e("fast-isnumeric"),s=u.cleanNumber,l=u.ms2DateTime,d=u.dateTime2ms,h=u.ensureNumber,m=u.isArrayOrTypedArray,g=e("../../constants/numerical"),p=g.FP_SAFE,v=g.BADNUM,y=g.LOG_CLIP,x=g.ONEWEEK,w=g.ONEDAY,k=g.ONEHOUR,b=g.ONEMIN,T=g.ONESEC,_=e("./axis_ids"),M=e("./constants"),A=M.HOUR_PATTERN,S=M.WEEKDAY_PATTERN;function E(O){return Math.pow(10,O)}function D(O){return O!=null}o.exports=function(O,R){R=R||{};var z=O._id||"x",L=z.charAt(0);function P(H,Q){if(H>0)return Math.log(H)/Math.LN10;if(H<=0&&Q&&O.range&&O.range.length===2){var ee=O.range[0],ie=O.range[1];return .5*(ee+ie-2*y*Math.abs(ee-ie))}return v}function N(H,Q,ee,ie){if((ie||{}).msUTC&&i(H))return+H;var ae=d(H,ee||O.calendar);if(ae===v){if(!i(H))return v;H=+H;var ue=Math.floor(10*u.mod(H+.05,1)),le=Math.round(H-ue/10);ae=d(new Date(le))+ue/10}return ae}function B(H,Q,ee){return l(H,Q,ee||O.calendar)}function G(H){return O._categories[Math.round(H)]}function W(H){if(D(H)){if(O._categoriesMap===void 0&&(O._categoriesMap={}),O._categoriesMap[H]!==void 0)return O._categoriesMap[H];O._categories.push(typeof H=="number"?String(H):H);var Q=O._categories.length-1;return O._categoriesMap[H]=Q,Q}return v}function K(H){if(O._categoriesMap)return O._categoriesMap[H]}function te(H){var Q=K(H);return Q!==void 0?Q:i(H)?+H:void 0}function Y(H){return i(H)?+H:K(H)}function Z(H,Q,ee){return r.round(ee+Q*H,2)}function re(H,Q,ee){return(H-ee)/Q}var U=function(H){return i(H)?Z(H,O._m,O._b):v},q=function(H){return re(H,O._m,O._b)};if(O.rangebreaks){var $=L==="y";U=function(H){if(!i(H))return v;var Q=O._rangebreaks.length;if(!Q)return Z(H,O._m,O._b);var ee=$;O.range[0]>O.range[1]&&(ee=!ee);for(var ie=ee?-1:1,ae=ie*H,ue=0,le=0;lefe)){ue=ae<(ge+fe)/2?le:le+1;break}ue=le+1}var me=O._B[ue]||0;return isFinite(me)?Z(H,O._m2,me):0},q=function(H){var Q=O._rangebreaks.length;if(!Q)return re(H,O._m,O._b);for(var ee=0,ie=0;ieO._rangebreaks[ie].pmax&&(ee=ie+1);return re(H,O._m2,O._B[ee])}}O.c2l=O.type==="log"?P:h,O.l2c=O.type==="log"?E:h,O.l2p=U,O.p2l=q,O.c2p=O.type==="log"?function(H,Q){return U(P(H,Q))}:U,O.p2c=O.type==="log"?function(H){return E(q(H))}:q,["linear","-"].indexOf(O.type)!==-1?(O.d2r=O.r2d=O.d2c=O.r2c=O.d2l=O.r2l=s,O.c2d=O.c2r=O.l2d=O.l2r=h,O.d2p=O.r2p=function(H){return O.l2p(s(H))},O.p2d=O.p2r=q,O.cleanPos=h):O.type==="log"?(O.d2r=O.d2l=function(H,Q){return P(s(H),Q)},O.r2d=O.r2c=function(H){return E(s(H))},O.d2c=O.r2l=s,O.c2d=O.l2r=h,O.c2r=P,O.l2d=E,O.d2p=function(H,Q){return O.l2p(O.d2r(H,Q))},O.p2d=function(H){return E(q(H))},O.r2p=function(H){return O.l2p(s(H))},O.p2r=q,O.cleanPos=h):O.type==="date"?(O.d2r=O.r2d=u.identity,O.d2c=O.r2c=O.d2l=O.r2l=N,O.c2d=O.c2r=O.l2d=O.l2r=B,O.d2p=O.r2p=function(H,Q,ee){return O.l2p(N(H,0,ee))},O.p2d=O.p2r=function(H,Q,ee){return B(q(H),Q,ee)},O.cleanPos=function(H){return u.cleanDate(H,v,O.calendar)}):O.type==="category"?(O.d2c=O.d2l=W,O.r2d=O.c2d=O.l2d=G,O.d2r=O.d2l_noadd=te,O.r2c=function(H){var Q=Y(H);return Q!==void 0?Q:O.fraction2r(.5)},O.l2r=O.c2r=h,O.r2l=Y,O.d2p=function(H){return O.l2p(O.r2c(H))},O.p2d=function(H){return G(q(H))},O.r2p=O.d2p,O.p2r=q,O.cleanPos=function(H){return typeof H=="string"&&H!==""?H:h(H)}):O.type==="multicategory"&&(O.r2d=O.c2d=O.l2d=G,O.d2r=O.d2l_noadd=te,O.r2c=function(H){var Q=te(H);return Q!==void 0?Q:O.fraction2r(.5)},O.r2c_just_indices=K,O.l2r=O.c2r=h,O.r2l=te,O.d2p=function(H){return O.l2p(O.r2c(H))},O.p2d=function(H){return G(q(H))},O.r2p=O.d2p,O.p2r=q,O.cleanPos=function(H){return Array.isArray(H)||typeof H=="string"&&H!==""?H:h(H)},O.setupMultiCategory=function(H){var Q,ee,ie=O._traceIndices,ae=O._matchGroup;if(ae&&O._categories.length===0){for(var ue in ae)if(ue!==z){var le=R[_.id2name(ue)];ie=ie.concat(le._traceIndices)}}var ge=[[0,{}],[0,{}]],fe=[];for(Q=0;Qp&&(ae[ee]=p),ae[0]===ae[1]){var le=Math.max(1,Math.abs(1e-6*ae[0]));ae[0]-=le,ae[1]+=le}}else u.nestedProperty(O,H).set(ie)},O.setScale=function(H){var Q=R._size;if(O.overlaying){var ee=_.getFromId({_fullLayout:R},O.overlaying);O.domain=ee.domain}var ie=H&&O._r?"_r":"range",ae=O.calendar;O.cleanRange(ie);var ue,le,ge=O.r2l(O[ie][0],ae),fe=O.r2l(O[ie][1],ae),me=L==="y";if(me?(O._offset=Q.t+(1-O.domain[1])*Q.h,O._length=Q.h*(O.domain[1]-O.domain[0]),O._m=O._length/(ge-fe),O._b=-O._m*fe):(O._offset=Q.l+O.domain[0]*Q.w,O._length=Q.w*(O.domain[1]-O.domain[0]),O._m=O._length/(fe-ge),O._b=-O._m*ge),O._rangebreaks=[],O._lBreaks=0,O._m2=0,O._B=[],O.rangebreaks&&(O._rangebreaks=O.locateBreaks(Math.min(ge,fe),Math.max(ge,fe)),O._rangebreaks.length)){for(ue=0;uefe&&(_e=!_e),_e&&O._rangebreaks.reverse();var we=_e?-1:1;for(O._m2=we*O._length/(Math.abs(fe-ge)-O._lBreaks),O._B.push(-O._m2*(me?fe:ge)),ue=0;ueie&&(ie+=7,aeie&&(ie+=24,ae=ee&&ae=ee&&H=Ke.min&&(EeKe.max&&(Ke.max=ze),Fe=!1)}Fe&&le.push({min:Ee,max:ze})}};for(ee=0;eed.duration?(function(){for(var A={},S=0;S rect").call(c.setTranslate,0,0).call(c.setScale,1,1),b.plot.call(c.setTranslate,T._offset,_._offset).call(c.setScale,1,1);var M=b.plot.selectAll(".scatterlayer .trace");M.selectAll(".point").call(c.setPointGroupScale,1,1),M.selectAll(".textpoint").call(c.setTextPointsScale,1,1),M.call(c.hideOutsideRangePoints,b)}function k(b,T){var _=b.plotinfo,M=_.xaxis,A=_.yaxis,S=M._length,E=A._length,D=!!b.xr1,O=!!b.yr1,R=[];if(D){var z=u.simpleMap(b.xr0,M.r2l),L=u.simpleMap(b.xr1,M.r2l),P=z[1]-z[0],N=L[1]-L[0];R[0]=(z[0]*(1-T)+T*L[0]-z[0])/(z[1]-z[0])*S,R[2]=S*(1-T+T*N/P),M.range[0]=M.l2r(z[0]*(1-T)+T*L[0]),M.range[1]=M.l2r(z[1]*(1-T)+T*L[1])}else R[0]=0,R[2]=S;if(O){var B=u.simpleMap(b.yr0,A.r2l),G=u.simpleMap(b.yr1,A.r2l),W=B[1]-B[0],K=G[1]-G[0];R[1]=(B[1]*(1-T)+T*G[1]-B[1])/(B[0]-B[1])*E,R[3]=E*(1-T+T*K/W),A.range[0]=M.l2r(B[0]*(1-T)+T*G[0]),A.range[1]=A.l2r(B[1]*(1-T)+T*G[1])}else R[1]=0,R[3]=E;i.drawOne(s,M,{skipTitle:!0}),i.drawOne(s,A,{skipTitle:!0}),i.redrawComponents(s,[M._id,A._id]);var te=D?S/R[2]:1,Y=O?E/R[3]:1,Z=D?R[0]:0,re=O?R[1]:0,U=D?R[0]/R[2]*S:0,q=O?R[1]/R[3]*E:0,$=M._offset-U,ne=A._offset-q;_.clipRect.call(c.setTranslate,Z,re).call(c.setScale,1/te,1/Y),_.plot.call(c.setTranslate,$,ne).call(c.setScale,te,Y),c.setPointGroupScale(_.zoomScalePts,1/te,1/Y),c.setTextPointsScale(_.zoomScaleTxt,1/te,1/Y)}i.redrawComponents(s)}},{"../../components/drawing":388,"../../lib":503,"../../registry":638,"./axes":554,"@plotly/d3":58}],582:[function(e,o,f){var r=e("../../registry").traceIs,a=e("./axis_autotype");function u(i){return{v:"x",h:"y"}[i.orientation||"v"]}function c(i,s){var l=u(i),d=r(i,"box-violin"),h=r(i._fullInput||{},"candlestick");return d&&!h&&s===l&&i[l]===void 0&&i[l+"0"]===void 0}o.exports=function(i,s,l,d){l("autotypenumbers",d.autotypenumbersDflt),l("type",(d.splomStash||{}).type)==="-"&&(function(h,m){if(h.type==="-"){var g,p=h._id,v=p.charAt(0);p.indexOf("scene")!==-1&&(p=v);var y=function(A,S,E){for(var D=0;D0&&(O["_"+E+"axes"]||{})[S]||(O[E+"axis"]||E)===S&&(c(O,E)||(O[E]||[]).length||O[E+"0"]))return O}}(m,p,v);if(!!y){if(y.type==="histogram"&&v==={v:"y",h:"x"}[y.orientation||"v"])return void(h.type="linear");var x=v+"calendar",w=y[x],k={noMultiCategory:!r(y,"cartesian")||r(y,"noMultiCategory")};if(y.type==="box"&&y._hasPreCompStats&&v==={h:"x",v:"y"}[y.orientation||"v"]&&(k.noMultiCategory=!0),k.autotypenumbers=h.autotypenumbers,c(y,v)){var b=u(y),T=[];for(g=0;g0?".":"")+g;a.isPlainObject(p)?s(p,d,v,m+1):d(v,g,p)}})}f.manageCommandObserver=function(l,d,h,m){var g={},p=!0;d&&d._commandObserver&&(g=d._commandObserver),g.cache||(g.cache={}),g.lookupTable={};var v=f.hasSimpleAPICommandBindings(l,h,g.lookupTable);if(d&&d._commandObserver){if(v)return g;if(d._commandObserver.remove)return d._commandObserver.remove(),d._commandObserver=null,g}if(v){u(l,v,g.cache),g.check=function(){if(p){var w=u(l,v,g.cache);return w.changed&&m&&g.lookupTable[w.value]!==void 0&&(g.disable(),Promise.resolve(m({value:w.value,type:v.type,prop:v.prop,traces:v.traces,index:g.lookupTable[w.value]})).then(g.enable,g.enable)),w.changed}};for(var y=["plotly_relayout","plotly_redraw","plotly_restyle","plotly_update","plotly_animatingframe","plotly_afterplot"],x=0;x0&&N<0&&(N+=360);var W=(N-P)/4;return{type:"Polygon",coordinates:[[[P,B],[P,G],[P+W,G],[P+2*W,G],[P+3*W,G],[N,G],[N,B],[N-W,B],[N-2*W,B],[N-3*W,B],[P,B]]]}}o.exports=function(R){return new E(R)},D.plot=function(R,z,L){var P=this,N=z[this.id],B=[],G=!1;for(var W in _.layerNameToAdjective)if(W!=="frame"&&N["show"+W]){G=!0;break}for(var K=0;K0&&B._module.calcGeoJSON(N,z)}if(!this.updateProjection(R,z)){this.viewInitial&&this.scope===L.scope||this.saveViewInitial(L),this.scope=L.scope,this.updateBaseLayers(z,L),this.updateDims(z,L),this.updateFx(z,L),p.generalUpdatePerTraceModule(this.graphDiv,this,R,L);var G=this.layers.frontplot.select(".scatterlayer");this.dataPoints.point=G.selectAll(".point"),this.dataPoints.text=G.selectAll("text"),this.dataPaths.line=G.selectAll(".js-line");var W=this.layers.backplot.select(".choroplethlayer");this.dataPaths.choropleth=W.selectAll("path"),this.render()}},D.updateProjection=function(R,z){var L=this.graphDiv,P=z[this.id],N=z._size,B=P.domain,G=P.projection,W=P.lonaxis,K=P.lataxis,te=W._ax,Y=K._ax,Z=this.projection=function(de){var ye=de.projection,Me=ye.type,ke=_.projNames[Me];ke="geo"+l.titleCase(ke);for(var Ee=(a[ke]||i[ke])(),ze=de._isSatellite?180*Math.acos(1/ye.distance)/Math.PI:de._isClipped?_.lonaxisSpan[Me]/2:null,Fe=["center","rotate","parallels","clipExtent"],Ve=function(qe){return qe?Ee:[]},Ke=0;Keze*Math.PI/180}return!1},Ee.getPath=function(){return u().projection(Ee)},Ee.getBounds=function(qe){return Ee.getPath().bounds(qe)},Ee.precision(_.precision),de._isSatellite&&Ee.tilt(ye.tilt).distance(ye.distance),ze&&Ee.clipAngle(ze-_.clipPad),Ee}(P),re=[[N.l+N.w*B.x[0],N.t+N.h*(1-B.y[1])],[N.l+N.w*B.x[1],N.t+N.h*(1-B.y[0])]],U=P.center||{},q=G.rotation||{},$=W.range||[],ne=K.range||[];if(P.fitbounds){te._length=re[1][0]-re[0][0],Y._length=re[1][1]-re[0][1],te.range=y(L,te),Y.range=y(L,Y);var H=(te.range[0]+te.range[1])/2,Q=(Y.range[0]+Y.range[1])/2;if(P._isScoped)U={lon:H,lat:Q};else if(P._isClipped){U={lon:H,lat:Q},q={lon:H,lat:Q,roll:q.roll};var ee=G.type,ie=_.lonaxisSpan[ee]/2||180,ae=_.lataxisSpan[ee]/2||90;$=[H-ie,H+ie],ne=[Q-ae,Q+ae]}else U={lon:H,lat:Q},q={lon:H,lat:q.lat,roll:q.roll}}Z.center([U.lon-q.lon,U.lat-q.lat]).rotate([-q.lon,-q.lat,q.roll]).parallels(G.parallels);var ue=O($,ne);Z.fitExtent(re,ue);var le=this.bounds=Z.getBounds(ue),ge=this.fitScale=Z.scale(),fe=Z.translate();if(P.fitbounds){var me=Z.getBounds(O(te.range,Y.range)),_e=Math.min((le[1][0]-le[0][0])/(me[1][0]-me[0][0]),(le[1][1]-le[0][1])/(me[1][1]-me[0][1]));isFinite(_e)?Z.scale(_e*ge):l.warn("Something went wrong during"+this.id+"fitbounds computations.")}else Z.scale(G.scale*ge);var we=this.midPt=[(le[0][0]+le[1][0])/2,(le[0][1]+le[1][1])/2];if(Z.translate([fe[0]+(we[0]-fe[0]),fe[1]+(we[1]-fe[1])]).clipExtent(le),P._isAlbersUsa){var Te=Z([U.lon,U.lat]),Oe=Z.translate();Z.translate([Oe[0]-(Te[0]-Oe[0]),Oe[1]-(Te[1]-Oe[1])])}},D.updateBaseLayers=function(R,z){var L=this,P=L.topojson,N=L.layers,B=L.basePaths;function G(Z){return Z==="lonaxis"||Z==="lataxis"}function W(Z){return Boolean(_.lineLayers[Z])}function K(Z){return Boolean(_.fillLayers[Z])}var te=(this.hasChoropleth?_.layersForChoropleth:_.layers).filter(function(Z){return W(Z)||K(Z)?z["show"+Z]:!G(Z)||z[Z].showgrid}),Y=L.framework.selectAll(".layer").data(te,String);Y.exit().each(function(Z){delete N[Z],delete B[Z],r.select(this).remove()}),Y.enter().append("g").attr("class",function(Z){return"layer "+Z}).each(function(Z){var re=N[Z]=r.select(this);Z==="bg"?L.bgRect=re.append("rect").style("pointer-events","all"):G(Z)?B[Z]=re.append("path").style("fill","none"):Z==="backplot"?re.append("g").classed("choroplethlayer",!0):Z==="frontplot"?re.append("g").classed("scatterlayer",!0):W(Z)?B[Z]=re.append("path").style("fill","none").style("stroke-miterlimit",2):K(Z)&&(B[Z]=re.append("path").style("stroke","none"))}),Y.order(),Y.each(function(Z){var re=B[Z],U=_.layerNameToAdjective[Z];Z==="frame"?re.datum(_.sphereSVG):W(Z)||K(Z)?re.datum(S(P,P.objects[Z])):G(Z)&&re.datum(function(q,$,ne){var H,Q,ee,ie=$[q],ae=_.scopeDefaults[$.scope];q==="lonaxis"?(H=ae.lonaxisRange,Q=ae.lataxisRange,ee=function(Oe,de){return[Oe,de]}):q==="lataxis"&&(H=ae.lataxisRange,Q=ae.lonaxisRange,ee=function(Oe,de){return[de,Oe]});var ue={type:"linear",range:[H[0],H[1]-1e-6],tick0:ie.tick0,dtick:ie.dtick};v.setConvert(ue,ne);var le=v.calcTicks(ue);$.isScoped||q!=="lonaxis"||le.pop();for(var ge=le.length,fe=new Array(ge),me=0;me-1&&b(r.event,P,[L.xaxis],[L.yaxis],L.id,K),G.indexOf("event")>-1&&g.click(P,r.event))})}function te(Y){return L.projection.invert([Y[0]+L.xaxis._offset,Y[1]+L.yaxis._offset])}},D.makeFramework=function(){var R=this,z=R.graphDiv,L=z._fullLayout,P="clip"+L._uid+R.id;R.clipDef=L._clips.append("clipPath").attr("id",P),R.clipRect=R.clipDef.append("rect"),R.framework=r.select(R.container).append("g").attr("class","geo "+R.id).call(m.setClipUrl,P,z),R.project=function(N){var B=R.projection(N);return B?[B[0]-R.xaxis._offset,B[1]-R.yaxis._offset]:[null,null]},R.xaxis={_id:"x",c2p:function(N){return R.project(N)[0]}},R.yaxis={_id:"y",c2p:function(N){return R.project(N)[1]}},R.mockAxis={type:"linear",showexponent:"all",exponentformat:"B"},v.setConvert(R.mockAxis,L)},D.saveViewInitial=function(R){var z,L=R.center||{},P=R.projection,N=P.rotation||{};this.viewInitial={fitbounds:R.fitbounds,"projection.scale":P.scale},z=R._isScoped?{"center.lon":L.lon,"center.lat":L.lat}:R._isClipped?{"projection.rotation.lon":N.lon,"projection.rotation.lat":N.lat}:{"center.lon":L.lon,"center.lat":L.lat,"projection.rotation.lon":N.lon},l.extendFlat(this.viewInitial,z)},D.render=function(){var R,z=this.projection,L=z.getPath();function P(B){var G=z(B.lonlat);return G?d(G[0],G[1]):null}function N(B){return z.isLonLatOverEdges(B.lonlat)?"none":null}for(R in this.basePaths)this.basePaths[R].attr("d",L);for(R in this.dataPaths)this.dataPaths[R].attr("d",function(B){return L(B.geojson)});for(R in this.dataPoints)this.dataPoints[R].attr("display",N).attr("transform",P)}},{"../../components/color":366,"../../components/dragelement":385,"../../components/drawing":388,"../../components/fx":406,"../../lib":503,"../../lib/geo_location_utils":496,"../../lib/topojson_utils":532,"../../registry":638,"../cartesian/autorange":553,"../cartesian/axes":554,"../cartesian/select":575,"../plots":619,"./constants":587,"./zoom":592,"@plotly/d3":58,"d3-geo":114,"d3-geo-projection":113,"topojson-client":315}],589:[function(e,o,f){var r=e("../../plots/get_data").getSubplotCalcData,a=e("../../lib").counterRegex,u=e("./geo"),c="geo",i=a(c),s={};s.geo={valType:"subplotid",dflt:c,editType:"calc"},o.exports={attr:c,name:c,idRoot:c,idRegex:i,attrRegex:i,attributes:s,layoutAttributes:e("./layout_attributes"),supplyLayoutDefaults:e("./layout_defaults"),plot:function(l){for(var d=l._fullLayout,h=l.calcdata,m=d._subplots.geo,g=0;g0&&K<0&&(K+=360);var te,Y,Z,re=(W+K)/2;if(!k){var U=b?x.projRotate:[re,0,0];te=m("projection.rotation.lon",U[0]),m("projection.rotation.lat",U[1]),m("projection.rotation.roll",U[2]),m("showcoastlines",!b&&S)&&(m("coastlinecolor"),m("coastlinewidth")),m("showocean",!!S&&void 0)&&m("oceancolor")}k?(Y=-96.6,Z=38.7):(Y=b?re:te,Z=(G[0]+G[1])/2),m("center.lon",Y),m("center.lat",Z),T&&(m("projection.tilt"),m("projection.distance")),_&&m("projection.parallels",x.projParallels||[0,60]),m("projection.scale"),m("showland",!!S&&void 0)&&m("landcolor"),m("showlakes",!!S&&void 0)&&m("lakecolor"),m("showrivers",!!S&&void 0)&&(m("rivercolor"),m("riverwidth")),m("showcountries",b&&y!=="usa"&&S)&&(m("countrycolor"),m("countrywidth")),(y==="usa"||y==="north america"&&v===50)&&(m("showsubunits",S),m("subunitcolor"),m("subunitwidth")),b||m("showframe",S)&&(m("framecolor"),m("framewidth")),m("bgcolor"),m("fitbounds")&&(delete h.projection.scale,b?(delete h.center.lon,delete h.center.lat):M?(delete h.center.lon,delete h.center.lat,delete h.projection.rotation.lon,delete h.projection.rotation.lat,delete h.lonaxis.range,delete h.lataxis.range):(delete h.center.lon,delete h.center.lat,delete h.projection.rotation.lon))}o.exports=function(d,h,m){a(d,h,m,{type:"geo",attributes:i,handleDefaults:l,fullData:m,partition:"y"})}},{"../../lib":503,"../get_data":593,"../subplot_defaults":632,"./constants":587,"./layout_attributes":590}],592:[function(e,o,f){var r=e("@plotly/d3"),a=e("../../lib"),u=e("../../registry"),c=Math.PI/180,i=180/Math.PI,s={cursor:"pointer"},l={cursor:"auto"};function d(S,E){return r.behavior.zoom().translate(E.translate()).scale(E.scale())}function h(S,E,D){var O=S.id,R=S.graphDiv,z=R.layout,L=z[O],P=R._fullLayout,N=P[O],B={},G={};function W(K,te){B[O+"."+K]=a.nestedProperty(L,K).get(),u.call("_storeDirectGUIEdit",z,P._preGUI,B);var Y=a.nestedProperty(N,K);Y.get()!==te&&(Y.set(te),a.nestedProperty(L,K).set(te),G[O+"."+K]=te)}D(W),W("projection.scale",E.scale()/S.fitScale),W("fitbounds",!1),R.emit("plotly_relayout",G)}function m(S,E){var D=d(0,E);function O(R){var z=E.invert(S.midPt);R("center.lon",z[0]),R("center.lat",z[1])}return D.on("zoomstart",function(){r.select(this).style(s)}).on("zoom",function(){E.scale(r.event.scale).translate(r.event.translate),S.render();var R=E.invert(S.midPt);S.graphDiv.emit("plotly_relayouting",{"geo.projection.scale":E.scale()/S.fitScale,"geo.center.lon":R[0],"geo.center.lat":R[1]})}).on("zoomend",function(){r.select(this).style(l),h(S,E,O)}),D}function g(S,E){var D,O,R,z,L,P,N,B,G,W=d(0,E);function K(Y){return E.invert(Y)}function te(Y){var Z=E.rotate(),re=E.invert(S.midPt);Y("projection.rotation.lon",-Z[0]),Y("center.lon",re[0]),Y("center.lat",re[1])}return W.on("zoomstart",function(){r.select(this).style(s),D=r.mouse(this),O=E.rotate(),R=E.translate(),z=O,L=K(D)}).on("zoom",function(){if(P=r.mouse(this),function(re){var U=K(re);if(!U)return!0;var q=E(U);return Math.abs(q[0]-re[0])>2||Math.abs(q[1]-re[1])>2}(D))return W.scale(E.scale()),void W.translate(E.translate());E.scale(r.event.scale),E.translate([R[0],r.event.translate[1]]),L?K(P)&&(B=K(P),N=[z[0]+(B[0]-L[0]),O[1],O[2]],E.rotate(N),z=N):L=K(D=P),G=!0,S.render();var Y=E.rotate(),Z=E.invert(S.midPt);S.graphDiv.emit("plotly_relayouting",{"geo.projection.scale":E.scale()/S.fitScale,"geo.center.lon":Z[0],"geo.center.lat":Z[1],"geo.projection.rotation.lon":-Y[0]})}).on("zoomend",function(){r.select(this).style(l),G&&h(S,E,te)}),W}function p(S,E){var D,O={r:E.rotate(),k:E.scale()},R=d(0,E),z=function(K){for(var te=0,Y=arguments.length,Z=[];++tete?(z=(G>0?90:-90)-K,R=0):(z=Math.asin(G/te)*i-K,R=Math.sqrt(te*te-G*G));var Y=180-z-2*K,Z=(Math.atan2(W,B)-Math.atan2(N,R))*i,re=(Math.atan2(W,B)-Math.atan2(N,-R))*i;return b(D[0],D[1],z,Z)<=b(D[0],D[1],Y,re)?[z,Z,D[2]]:[Y,re,D[2]]}function b(S,E,D,O){var R=T(D-S),z=T(O-E);return Math.sqrt(R*R+z*z)}function T(S){return(S%360+540)%360-180}function _(S,E,D){var O=D*c,R=S.slice(),z=E===0?1:0,L=E===2?1:2,P=Math.cos(O),N=Math.sin(O);return R[z]=S[z]*P-S[L]*N,R[L]=S[L]*P+S[z]*N,R}function M(S){return[Math.atan2(2*(S[0]*S[1]+S[2]*S[3]),1-2*(S[1]*S[1]+S[2]*S[2]))*i,Math.asin(Math.max(-1,Math.min(1,2*(S[0]*S[2]-S[3]*S[1]))))*i,Math.atan2(2*(S[0]*S[3]+S[1]*S[2]),1-2*(S[2]*S[2]+S[3]*S[3]))*i]}function A(S,E){for(var D=0,O=0,R=S.length;OMath.abs(k)?(m.boxEnd[1]=m.boxStart[1]+Math.abs(w)*L*(k>=0?1:-1),m.boxEnd[1]b[3]&&(m.boxEnd[1]=b[3],m.boxEnd[0]=m.boxStart[0]+(b[3]-m.boxStart[1])/Math.abs(L))):(m.boxEnd[0]=m.boxStart[0]+Math.abs(k)/L*(w>=0?1:-1),m.boxEnd[0]b[2]&&(m.boxEnd[0]=b[2],m.boxEnd[1]=m.boxStart[1]+(b[2]-m.boxStart[0])*Math.abs(L)))}}else m.boxEnabled?(w=m.boxStart[0]!==m.boxEnd[0],k=m.boxStart[1]!==m.boxEnd[1],w||k?(w&&(E(0,m.boxStart[0],m.boxEnd[0]),l.xaxis.autorange=!1),k&&(E(1,m.boxStart[1],m.boxEnd[1]),l.yaxis.autorange=!1),l.relayoutCallback()):l.glplot.setDirty(),m.boxEnabled=!1,m.boxInited=!1):m.boxInited&&(m.boxInited=!1);break;case"pan":m.boxEnabled=!1,m.boxInited=!1,v?(m.panning||(m.dragStart[0]=y,m.dragStart[1]=x),Math.abs(m.dragStart[0]-y).999&&(_="turntable"):_="turntable")}else _="turntable";g("dragmode",_),g("hovermode",p.getDfltFromLayout("hovermode"))}o.exports=function(h,m,g){var p=m._basePlotModules.length>1;c(h,m,g,{type:"gl3d",attributes:s,handleDefaults:d,fullLayout:m,font:m.font,fullData:g,getDfltFromLayout:function(v){if(!p)return r.validate(h[v],s[v])?h[v]:void 0},autotypenumbersDflt:m.autotypenumbers,paper_bgcolor:m.paper_bgcolor,calendar:m.calendar})}},{"../../../components/color":366,"../../../lib":503,"../../../registry":638,"../../get_data":593,"../../subplot_defaults":632,"./axis_defaults":601,"./layout_attributes":604}],604:[function(e,o,f){var r=e("./axis_attributes"),a=e("../../domain").attributes,u=e("../../../lib/extend").extendFlat,c=e("../../../lib").counterRegex;function i(s,l,d){return{x:{valType:"number",dflt:s,editType:"camera"},y:{valType:"number",dflt:l,editType:"camera"},z:{valType:"number",dflt:d,editType:"camera"},editType:"camera"}}o.exports={_arrayAttrRegexps:[c("scene",".annotations",!0)],bgcolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"plot"},camera:{up:u(i(0,0,1),{}),center:u(i(0,0,0),{}),eye:u(i(1.25,1.25,1.25),{}),projection:{type:{valType:"enumerated",values:["perspective","orthographic"],dflt:"perspective",editType:"calc"},editType:"calc"},editType:"camera"},domain:a({name:"scene",editType:"plot"}),aspectmode:{valType:"enumerated",values:["auto","cube","data","manual"],dflt:"auto",editType:"plot",impliedEdits:{"aspectratio.x":void 0,"aspectratio.y":void 0,"aspectratio.z":void 0}},aspectratio:{x:{valType:"number",min:0,editType:"plot",impliedEdits:{"^aspectmode":"manual"}},y:{valType:"number",min:0,editType:"plot",impliedEdits:{"^aspectmode":"manual"}},z:{valType:"number",min:0,editType:"plot",impliedEdits:{"^aspectmode":"manual"}},editType:"plot",impliedEdits:{aspectmode:"manual"}},xaxis:r,yaxis:r,zaxis:r,dragmode:{valType:"enumerated",values:["orbit","turntable","zoom","pan",!1],editType:"plot"},hovermode:{valType:"enumerated",values:["closest",!1],dflt:"closest",editType:"modebar"},uirevision:{valType:"any",editType:"none"},editType:"plot",_deprecated:{cameraposition:{valType:"info_array",editType:"camera"}}}},{"../../../lib":503,"../../../lib/extend":493,"../../domain":584,"./axis_attributes":600}],605:[function(e,o,f){var r=e("../../../lib/str2rgbarray"),a=["xaxis","yaxis","zaxis"];function u(){this.enabled=[!0,!0,!0],this.colors=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.drawSides=[!0,!0,!0],this.lineWidth=[1,1,1]}u.prototype.merge=function(c){for(var i=0;i<3;++i){var s=c[a[i]];s.visible?(this.enabled[i]=s.showspikes,this.colors[i]=r(s.spikecolor),this.drawSides[i]=s.spikesides,this.lineWidth[i]=s.spikethickness):(this.enabled[i]=!1,this.drawSides[i]=!1)}},o.exports=function(c){var i=new u;return i.merge(c),i}},{"../../../lib/str2rgbarray":528}],606:[function(e,o,f){o.exports=function(i){for(var s=i.axesOptions,l=i.glplot.axesPixels,d=i.fullSceneLayout,h=[[],[],[]],m=0;m<3;++m){var g=d[u[m]];if(g._length=(l[m].hi-l[m].lo)*l[m].pixelsPerDataUnit/i.dataScale[m],Math.abs(g._length)===1/0||isNaN(g._length))h[m]=[];else{g._input_range=g.range.slice(),g.range[0]=l[m].lo/i.dataScale[m],g.range[1]=l[m].hi/i.dataScale[m],g._m=1/(i.dataScale[m]*l[m].pixelsPerDataUnit),g.range[0]===g.range[1]&&(g.range[0]-=1,g.range[1]+=1);var p=g.tickmode;if(g.tickmode==="auto"){g.tickmode="linear";var v=g.nticks||a.constrain(g._length/40,4,9);r.autoTicks(g,Math.abs(g.range[1]-g.range[0])/v)}for(var y=r.calcTicks(g,{msUTC:!0}),x=0;x/g," "));h[m]=y,g.tickmode=p}}for(s.ticks=h,m=0;m<3;++m)for(c[m]=.5*(i.glplot.bounds[0][m]+i.glplot.bounds[1][m]),x=0;x<2;++x)s.bounds[x][m]=i.glplot.bounds[x][m];i.contourLevels=function(w){for(var k=new Array(3),b=0;b<3;++b){for(var T=w[b],_=new Array(T.length),M=0;ML.deltaY?1.1:.9090909090909091,N=E.glplot.getAspectratio();E.glplot.setAspectratio({x:P*N.x,y:P*N.y,z:P*N.z})}z(E)}},!!l&&{passive:!1}),E.glplot.canvas.addEventListener("mousemove",function(){if(E.fullSceneLayout.dragmode!==!1&&E.camera.mouseListener.buttons!==0){var L=R();E.graphDiv.emit("plotly_relayouting",L)}}),E.staticMode||E.glplot.canvas.addEventListener("webglcontextlost",function(L){D&&D.emit&&D.emit("plotly_webglcontextlost",{event:L,layer:E.id})},!1)),E.glplot.oncontextloss=function(){E.recoverContext()},E.glplot.onrender=function(){E.render()},!0},_.render=function(){var E,D=this,O=D.graphDiv,R=D.svgContainer,z=D.container.getBoundingClientRect();O._fullLayout._calcInverseTransform(O);var L=O._fullLayout._invScaleX,P=O._fullLayout._invScaleY,N=z.width*L,B=z.height*P;R.setAttributeNS(null,"viewBox","0 0 "+N+" "+B),R.setAttributeNS(null,"width",N),R.setAttributeNS(null,"height",B),b(D),D.glplot.axes.update(D.axesOptions);for(var G=Object.keys(D.traces),W=null,K=D.glplot.selection,te=0;te")):E.type==="isosurface"||E.type==="volume"?($.valueLabel=g.hoverLabelText(D._mockAxis,D._mockAxis.d2l(K.traceCoordinate[3]),E.valuehoverformat),ee.push("value: "+$.valueLabel),K.textLabel&&ee.push(K.textLabel),re=ee.join("
    ")):re=K.textLabel;var ie={x:K.traceCoordinate[0],y:K.traceCoordinate[1],z:K.traceCoordinate[2],data:U._input,fullData:U,curveNumber:U.index,pointNumber:q};p.appendArrayPointValue(ie,U,q),E._module.eventData&&(ie=U._module.eventData(ie,K,U,{},q));var ae={points:[ie]};if(D.fullSceneLayout.hovermode){var ue=[];p.loneHover({trace:U,x:(.5+.5*Z[0]/Z[3])*N,y:(.5-.5*Z[1]/Z[3])*B,xLabel:$.xLabel,yLabel:$.yLabel,zLabel:$.zLabel,text:re,name:W.name,color:p.castHoverOption(U,q,"bgcolor")||W.color,borderColor:p.castHoverOption(U,q,"bordercolor"),fontFamily:p.castHoverOption(U,q,"font.family"),fontSize:p.castHoverOption(U,q,"font.size"),fontColor:p.castHoverOption(U,q,"font.color"),nameLength:p.castHoverOption(U,q,"namelength"),textAlign:p.castHoverOption(U,q,"align"),hovertemplate:h.castOption(U,q,"hovertemplate"),hovertemplateLabels:h.extendFlat({},ie,$),eventData:[ie]},{container:R,gd:O,inOut_bbox:ue}),ie.bbox=ue[0]}K.buttons&&K.distance<5?O.emit("plotly_click",ae):O.emit("plotly_hover",ae),this.oldEventData=ae}else p.loneUnhover(R),this.oldEventData&&O.emit("plotly_unhover",this.oldEventData),this.oldEventData=void 0;D.drawAnnotations(D)},_.recoverContext=function(){var E=this;E.glplot.dispose();var D=function(){E.glplot.gl.isContextLost()?requestAnimationFrame(D):E.initializeGLPlot()?E.plot.apply(E,E.plotArgs):h.error("Catastrophic and unrecoverable WebGL error. Context lost.")};requestAnimationFrame(D)};var A=["xaxis","yaxis","zaxis"];function S(E,D,O){for(var R=E.fullSceneLayout,z=0;z<3;z++){var L=A[z],P=L.charAt(0),N=R[L],B=D[P],G=D[P+"calendar"],W=D["_"+P+"length"];if(h.isArrayOrTypedArray(B))for(var K,te=0;te<(W||B.length);te++)if(h.isArrayOrTypedArray(B[te]))for(var Y=0;Yre[1][L])re[0][L]=-1,re[1][L]=1;else{var le=re[1][L]-re[0][L];re[0][L]-=le/32,re[1][L]+=le/32}if(N.autorange==="reversed"){var ge=re[0][L];re[0][L]=re[1][L],re[1][L]=ge}}else{var fe=N.range;re[0][L]=N.r2l(fe[0]),re[1][L]=N.r2l(fe[1])}re[0][L]===re[1][L]&&(re[0][L]-=1,re[1][L]+=1),U[L]=re[1][L]-re[0][L],this.glplot.setBounds(L,{min:re[0][L]*te[L],max:re[1][L]*te[L]})}var me=G.aspectmode;if(me==="cube")Z=[1,1,1];else if(me==="manual"){var _e=G.aspectratio;Z=[_e.x,_e.y,_e.z]}else{if(me!=="auto"&&me!=="data")throw new Error("scene.js aspectRatio was not one of the enumerated types");var we=[1,1,1];for(L=0;L<3;++L){var Te=q[B=(N=G[A[L]]).type];we[L]=Math.pow(Te.acc,1/Te.count)/te[L]}Z=me==="data"||Math.max.apply(null,we)/Math.min.apply(null,we)<=4?we:[1,1,1]}G.aspectratio.x=W.aspectratio.x=Z[0],G.aspectratio.y=W.aspectratio.y=Z[1],G.aspectratio.z=W.aspectratio.z=Z[2],this.glplot.setAspectratio(G.aspectratio),this.viewInitial.aspectratio||(this.viewInitial.aspectratio={x:G.aspectratio.x,y:G.aspectratio.y,z:G.aspectratio.z}),this.viewInitial.aspectmode||(this.viewInitial.aspectmode=G.aspectmode);var Oe=G.domain||null,de=D._size||null;if(Oe&&de){var ye=this.container.style;ye.position="absolute",ye.left=de.l+Oe.x[0]*de.w+"px",ye.top=de.t+(1-Oe.y[1])*de.h+"px",ye.width=de.w*(Oe.x[1]-Oe.x[0])+"px",ye.height=de.h*(Oe.y[1]-Oe.y[0])+"px"}this.glplot.redraw()}},_.destroy=function(){this.glplot&&(this.camera.mouseListener.enabled=!1,this.container.removeEventListener("wheel",this.camera.wheelListener),this.camera=null,this.glplot.dispose(),this.container.parentNode.removeChild(this.container),this.glplot=null)},_.getCamera=function(){var E;return this.camera.view.recalcMatrix(this.camera.view.lastT()),{up:{x:(E=this.camera).up[0],y:E.up[1],z:E.up[2]},center:{x:E.center[0],y:E.center[1],z:E.center[2]},eye:{x:E.eye[0],y:E.eye[1],z:E.eye[2]},projection:{type:E._ortho===!0?"orthographic":"perspective"}}},_.setViewport=function(E){var D,O=E.camera;this.camera.lookAt.apply(this,[[(D=O).eye.x,D.eye.y,D.eye.z],[D.center.x,D.center.y,D.center.z],[D.up.x,D.up.y,D.up.z]]),this.glplot.setAspectratio(E.aspectratio),O.projection.type==="orthographic"!==this.camera._ortho&&(this.glplot.redraw(),this.glplot.clearRGBA(),this.glplot.dispose(),this.initializeGLPlot())},_.isCameraChanged=function(E){var D=this.getCamera(),O=h.nestedProperty(E,this.id+".camera").get();function R(N,B,G,W){var K=["up","center","eye"],te=["x","y","z"];return B[K[G]]&&N[K[G]][te[W]]===B[K[G]][te[W]]}var z=!1;if(O===void 0)z=!0;else{for(var L=0;L<3;L++)for(var P=0;P<3;P++)if(!R(D,O,L,P)){z=!0;break}(!O.projection||D.projection&&D.projection.type!==O.projection.type)&&(z=!0)}return z},_.isAspectChanged=function(E){var D=this.glplot.getAspectratio(),O=h.nestedProperty(E,this.id+".aspectratio").get();return O===void 0||O.x!==D.x||O.y!==D.y||O.z!==D.z},_.saveLayout=function(E){var D,O,R,z,L,P,N=this.fullLayout,B=this.isCameraChanged(E),G=this.isAspectChanged(E),W=B||G;if(W){var K={};B&&(D=this.getCamera(),R=(O=h.nestedProperty(E,this.id+".camera")).get(),K[this.id+".camera"]=R),G&&(z=this.glplot.getAspectratio(),P=(L=h.nestedProperty(E,this.id+".aspectratio")).get(),K[this.id+".aspectratio"]=P),d.call("_storeDirectGUIEdit",E,N._preGUI,K),B&&(O.set(D),h.nestedProperty(N,this.id+".camera").set(D)),G&&(L.set(z),h.nestedProperty(N,this.id+".aspectratio").set(z),this.glplot.redraw())}return W},_.updateFx=function(E,D){var O=this.camera;if(O)if(E==="orbit")O.mode="orbit",O.keyBindingMode="rotate";else if(E==="turntable"){O.up=[0,0,1],O.mode="turntable",O.keyBindingMode="rotate";var R=this.graphDiv,z=R._fullLayout,L=this.fullSceneLayout.camera,P=L.up.x,N=L.up.y,B=L.up.z;if(B/Math.sqrt(P*P+N*N+B*B)<.999){var G=this.id+".camera.up",W={x:0,y:0,z:1},K={};K[G]=W;var te=R.layout;d.call("_storeDirectGUIEdit",te,z._preGUI,K),L.up=W,h.nestedProperty(te,G).set(W)}}else O.keyBindingMode=E;this.fullSceneLayout.hovermode=D},_.toImage=function(E){E||(E="png"),this.staticMode&&this.container.appendChild(r),this.glplot.redraw();var D=this.glplot.gl,O=D.drawingBufferWidth,R=D.drawingBufferHeight;D.bindFramebuffer(D.FRAMEBUFFER,null);var z=new Uint8Array(O*R*4);D.readPixels(0,0,O,R,D.RGBA,D.UNSIGNED_BYTE,z),function(G,W,K){for(var te=0,Y=K-1;te0)for(var U=255/re,q=0;q<3;++q)G[Z+q]=Math.min(U*G[Z+q],255)}}(z,O,R);var L=document.createElement("canvas");L.width=O,L.height=R;var P,N=L.getContext("2d"),B=N.createImageData(O,R);switch(B.data.set(z),N.putImageData(B,0,0),E){case"jpeg":P=L.toDataURL("image/jpeg");break;case"webp":P=L.toDataURL("image/webp");break;default:P=L.toDataURL("image/png")}return this.staticMode&&this.container.removeChild(r),P},_.setConvert=function(){for(var E=0;E<3;E++){var D=this.fullSceneLayout[A[E]];g.setConvert(D,this.fullLayout),D.setScale=h.noop}},_.make4thDimension=function(){var E=this.graphDiv._fullLayout;this._mockAxis={type:"linear",showexponent:"all",exponentformat:"B"},g.setConvert(this._mockAxis,E)},o.exports=T},{"../../../stackgl_modules":1124,"../../components/fx":406,"../../lib":503,"../../lib/show_no_webgl_msg":525,"../../lib/str2rgbarray":528,"../../plots/cartesian/axes":554,"../../registry":638,"./layout/convert":602,"./layout/spikes":605,"./layout/tick_marks":606,"./project":607,"has-passive-events":229,"webgl-context":331}],609:[function(e,o,f){o.exports=function(r,a,u,c){c=c||r.length;for(var i=new Array(c),s=0;sOpenStreetMap contributors',u=['\xA9 Carto',a].join(" "),c=['Map tiles by Stamen Design','under CC BY 3.0',"|",'Data by OpenStreetMap contributors','under ODbL'].join(" "),i={"open-street-map":{id:"osm",version:8,sources:{"plotly-osm-tiles":{type:"raster",attribution:a,tiles:["https://a.tile.openstreetmap.org/{z}/{x}/{y}.png","https://b.tile.openstreetmap.org/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"plotly-osm-tiles",type:"raster",source:"plotly-osm-tiles",minzoom:0,maxzoom:22}]},"white-bg":{id:"white-bg",version:8,sources:{},layers:[{id:"white-bg",type:"background",paint:{"background-color":"#FFFFFF"},minzoom:0,maxzoom:22}]},"carto-positron":{id:"carto-positron",version:8,sources:{"plotly-carto-positron":{type:"raster",attribution:u,tiles:["https://cartodb-basemaps-c.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"plotly-carto-positron",type:"raster",source:"plotly-carto-positron",minzoom:0,maxzoom:22}]},"carto-darkmatter":{id:"carto-darkmatter",version:8,sources:{"plotly-carto-darkmatter":{type:"raster",attribution:u,tiles:["https://cartodb-basemaps-c.global.ssl.fastly.net/dark_all/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"plotly-carto-darkmatter",type:"raster",source:"plotly-carto-darkmatter",minzoom:0,maxzoom:22}]},"stamen-terrain":{id:"stamen-terrain",version:8,sources:{"plotly-stamen-terrain":{type:"raster",attribution:c,tiles:["https://stamen-tiles.a.ssl.fastly.net/terrain/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"plotly-stamen-terrain",type:"raster",source:"plotly-stamen-terrain",minzoom:0,maxzoom:22}]},"stamen-toner":{id:"stamen-toner",version:8,sources:{"plotly-stamen-toner":{type:"raster",attribution:c,tiles:["https://stamen-tiles.a.ssl.fastly.net/toner/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"plotly-stamen-toner",type:"raster",source:"plotly-stamen-toner",minzoom:0,maxzoom:22}]},"stamen-watercolor":{id:"stamen-watercolor",version:8,sources:{"plotly-stamen-watercolor":{type:"raster",attribution:['Map tiles by Stamen Design','under CC BY 3.0',"|",'Data by OpenStreetMap contributors','under CC BY SA'].join(" "),tiles:["https://stamen-tiles.a.ssl.fastly.net/watercolor/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"plotly-stamen-watercolor",type:"raster",source:"plotly-stamen-watercolor",minzoom:0,maxzoom:22}]}},s=r(i);o.exports={requiredVersion:"1.10.1",styleUrlPrefix:"mapbox://styles/mapbox/",styleUrlSuffix:"v9",styleValuesMapbox:["basic","streets","outdoors","light","dark","satellite","satellite-streets"],styleValueDflt:"basic",stylesNonMapbox:i,styleValuesNonMapbox:s,traceLayerPrefix:"plotly-trace-layer-",layoutLayerPrefix:"plotly-layout-layer-",wrongVersionErrorMsg:["Your custom plotly.js bundle is not using the correct mapbox-gl version","Please install mapbox-gl@1.10.1."].join(` +`),noAccessTokenErrorMsg:["Missing Mapbox access token.","Mapbox trace type require a Mapbox access token to be registered.","For example:"," Plotly.newPlot(gd, data, layout, { mapboxAccessToken: 'my-access-token' });","More info here: https://www.mapbox.com/help/define-access-token/"].join(` +`),missingStyleErrorMsg:["No valid mapbox style found, please set `mapbox.style` to one of:",s.join(", "),"or register a Mapbox access token to use a Mapbox-served style."].join(` +`),multipleTokensErrorMsg:["Set multiple mapbox access token across different mapbox subplot,","using first token found as mapbox-gl does not allow multipleaccess tokens on the same page."].join(` +`),mapOnErrorMsg:"Mapbox error.",mapboxLogo:{path0:"m 10.5,1.24 c -5.11,0 -9.25,4.15 -9.25,9.25 0,5.1 4.15,9.25 9.25,9.25 5.1,0 9.25,-4.15 9.25,-9.25 0,-5.11 -4.14,-9.25 -9.25,-9.25 z m 4.39,11.53 c -1.93,1.93 -4.78,2.31 -6.7,2.31 -0.7,0 -1.41,-0.05 -2.1,-0.16 0,0 -1.02,-5.64 2.14,-8.81 0.83,-0.83 1.95,-1.28 3.13,-1.28 1.27,0 2.49,0.51 3.39,1.42 1.84,1.84 1.89,4.75 0.14,6.52 z",path1:"M 10.5,-0.01 C 4.7,-0.01 0,4.7 0,10.49 c 0,5.79 4.7,10.5 10.5,10.5 5.8,0 10.5,-4.7 10.5,-10.5 C 20.99,4.7 16.3,-0.01 10.5,-0.01 Z m 0,19.75 c -5.11,0 -9.25,-4.15 -9.25,-9.25 0,-5.1 4.14,-9.26 9.25,-9.26 5.11,0 9.25,4.15 9.25,9.25 0,5.13 -4.14,9.26 -9.25,9.26 z",path2:"M 14.74,6.25 C 12.9,4.41 9.98,4.35 8.23,6.1 5.07,9.27 6.09,14.91 6.09,14.91 c 0,0 5.64,1.02 8.81,-2.14 C 16.64,11 16.59,8.09 14.74,6.25 Z m -2.27,4.09 -0.91,1.87 -0.9,-1.87 -1.86,-0.91 1.86,-0.9 0.9,-1.87 0.91,1.87 1.86,0.9 z",polygon:"11.56,12.21 10.66,10.34 8.8,9.43 10.66,8.53 11.56,6.66 12.47,8.53 14.33,9.43 12.47,10.34"},styleRules:{map:"overflow:hidden;position:relative;","missing-css":"display:none;",canary:"background-color:salmon;","ctrl-bottom-left":"position: absolute; pointer-events: none; z-index: 2; bottom: 0; left: 0;","ctrl-bottom-right":"position: absolute; pointer-events: none; z-index: 2; right: 0; bottom: 0;",ctrl:"clear: both; pointer-events: auto; transform: translate(0, 0);","ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner":"display: none;","ctrl-attrib.mapboxgl-compact:hover .mapboxgl-ctrl-attrib-inner":"display: block; margin-top:2px","ctrl-attrib.mapboxgl-compact:hover":"padding: 2px 24px 2px 4px; visibility: visible; margin-top: 6px;","ctrl-attrib.mapboxgl-compact::after":`content: ""; cursor: pointer; position: absolute; background-image: url('data:image/svg+xml;charset=utf-8,%3Csvg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"%3E %3Cpath fill="%23333333" fill-rule="evenodd" d="M4,10a6,6 0 1,0 12,0a6,6 0 1,0 -12,0 M9,7a1,1 0 1,0 2,0a1,1 0 1,0 -2,0 M9,10a1,1 0 1,1 2,0l0,3a1,1 0 1,1 -2,0"/%3E %3C/svg%3E'); background-color: rgba(255, 255, 255, 0.5); width: 24px; height: 24px; box-sizing: border-box; border-radius: 12px;`,"ctrl-attrib.mapboxgl-compact":"min-height: 20px; padding: 0; margin: 10px; position: relative; background-color: #fff; border-radius: 3px 12px 12px 3px;","ctrl-bottom-right > .mapboxgl-ctrl-attrib.mapboxgl-compact::after":"bottom: 0; right: 0","ctrl-bottom-left > .mapboxgl-ctrl-attrib.mapboxgl-compact::after":"bottom: 0; left: 0","ctrl-bottom-left .mapboxgl-ctrl":"margin: 0 0 10px 10px; float: left;","ctrl-bottom-right .mapboxgl-ctrl":"margin: 0 10px 10px 0; float: right;","ctrl-attrib":"color: rgba(0, 0, 0, 0.75); text-decoration: none; font-size: 12px","ctrl-attrib a":"color: rgba(0, 0, 0, 0.75); text-decoration: none; font-size: 12px","ctrl-attrib a:hover":"color: inherit; text-decoration: underline;","ctrl-attrib .mapbox-improve-map":"font-weight: bold; margin-left: 2px;","attrib-empty":"display: none;","ctrl-logo":`display:block; width: 21px; height: 21px; background-image: url('data:image/svg+xml;charset=utf-8,%3C?xml version="1.0" encoding="utf-8"?%3E %3Csvg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 21 21" style="enable-background:new 0 0 21 21;" xml:space="preserve"%3E%3Cg transform="translate(0,0.01)"%3E%3Cpath d="m 10.5,1.24 c -5.11,0 -9.25,4.15 -9.25,9.25 0,5.1 4.15,9.25 9.25,9.25 5.1,0 9.25,-4.15 9.25,-9.25 0,-5.11 -4.14,-9.25 -9.25,-9.25 z m 4.39,11.53 c -1.93,1.93 -4.78,2.31 -6.7,2.31 -0.7,0 -1.41,-0.05 -2.1,-0.16 0,0 -1.02,-5.64 2.14,-8.81 0.83,-0.83 1.95,-1.28 3.13,-1.28 1.27,0 2.49,0.51 3.39,1.42 1.84,1.84 1.89,4.75 0.14,6.52 z" style="opacity:0.9;fill:%23ffffff;enable-background:new" class="st0"/%3E%3Cpath d="M 10.5,-0.01 C 4.7,-0.01 0,4.7 0,10.49 c 0,5.79 4.7,10.5 10.5,10.5 5.8,0 10.5,-4.7 10.5,-10.5 C 20.99,4.7 16.3,-0.01 10.5,-0.01 Z m 0,19.75 c -5.11,0 -9.25,-4.15 -9.25,-9.25 0,-5.1 4.14,-9.26 9.25,-9.26 5.11,0 9.25,4.15 9.25,9.25 0,5.13 -4.14,9.26 -9.25,9.26 z" style="opacity:0.35;enable-background:new" class="st1"/%3E%3Cpath d="M 14.74,6.25 C 12.9,4.41 9.98,4.35 8.23,6.1 5.07,9.27 6.09,14.91 6.09,14.91 c 0,0 5.64,1.02 8.81,-2.14 C 16.64,11 16.59,8.09 14.74,6.25 Z m -2.27,4.09 -0.91,1.87 -0.9,-1.87 -1.86,-0.91 1.86,-0.9 0.9,-1.87 0.91,1.87 1.86,0.9 z" style="opacity:0.35;enable-background:new" class="st1"/%3E%3Cpolygon points="11.56,12.21 10.66,10.34 8.8,9.43 10.66,8.53 11.56,6.66 12.47,8.53 14.33,9.43 12.47,10.34 " style="opacity:0.9;fill:%23ffffff;enable-background:new" class="st0"/%3E%3C/g%3E%3C/svg%3E')`}}},{"../../lib/sort_object_keys":526}],612:[function(e,o,f){var r=e("../../lib");o.exports=function(a,u){var c=a.split(" "),i=c[0],s=c[1],l=r.isArrayOrTypedArray(u)?r.mean(u):u,d=.5+l/100,h=1.5+l/100,m=["",""],g=[0,0];switch(i){case"top":m[0]="top",g[1]=-h;break;case"bottom":m[0]="bottom",g[1]=h}switch(s){case"left":m[1]="right",g[0]=-d;break;case"right":m[1]="left",g[0]=d}return{anchor:m[0]&&m[1]?m.join("-"):m[0]?m[0]:m[1]?m[1]:"center",offset:g}}},{"../../lib":503}],613:[function(e,o,f){var r=e("mapbox-gl/dist/mapbox-gl-unminified"),a=e("../../lib"),u=a.strTranslate,c=a.strScale,i=e("../../plots/get_data").getSubplotCalcData,s=e("../../constants/xmlns_namespaces"),l=e("@plotly/d3"),d=e("../../components/drawing"),h=e("../../lib/svg_text_utils"),m=e("./mapbox"),g=f.constants=e("./constants");function p(v){return typeof v=="string"&&(g.styleValuesMapbox.indexOf(v)!==-1||v.indexOf("mapbox://")===0)}f.name="mapbox",f.attr="subplot",f.idRoot="mapbox",f.idRegex=f.attrRegex=a.counterRegex("mapbox"),f.attributes={subplot:{valType:"subplotid",dflt:"mapbox",editType:"calc"}},f.layoutAttributes=e("./layout_attributes"),f.supplyLayoutDefaults=e("./layout_defaults"),f.plot=function(v){var y=v._fullLayout,x=v.calcdata,w=y._subplots.mapbox;if(r.version!==g.requiredVersion)throw new Error(g.wrongVersionErrorMsg);var k=function(S,E){var D=S._fullLayout;if(S._context.mapboxAccessToken==="")return"";for(var O=[],R=[],z=!1,L=!1,P=0;P1&&a.warn(g.multipleTokensErrorMsg),O[0]):(R.length&&a.log(["Listed mapbox access token(s)",R.join(","),"but did not use a Mapbox map style, ignoring token(s)."].join(" ")),"")}(v,w);r.accessToken=k;for(var b=0;bR/2){var z=S.split("|").join("
    ");D.text(z).attr("data-unformatted",z).call(h.convertToTspans,v),O=d.bBox(D.node())}D.attr("transform",u(-3,8-O.height)),E.insert("rect",".static-attribution").attr({x:-O.width-6,y:-O.height-3,width:O.width+6,height:O.height+3,fill:"rgba(255, 255, 255, 0.75)"});var L=1;O.width+6>R&&(L=R/(O.width+6));var P=[w.l+w.w*T.x[1],w.t+w.h*(1-T.y[0])];E.attr("transform",u(P[0],P[1])+c(L))}},f.updateFx=function(v){for(var y=v._fullLayout,x=y._subplots.mapbox,w=0;w0){for(var g=0;g0}function d(h){var m={},g={};switch(h.type){case"circle":r.extendFlat(g,{"circle-radius":h.circle.radius,"circle-color":h.color,"circle-opacity":h.opacity});break;case"line":r.extendFlat(g,{"line-width":h.line.width,"line-color":h.color,"line-opacity":h.opacity,"line-dasharray":h.line.dash});break;case"fill":r.extendFlat(g,{"fill-color":h.color,"fill-outline-color":h.fill.outlinecolor,"fill-opacity":h.opacity});break;case"symbol":var p=h.symbol,v=u(p.textposition,p.iconsize);r.extendFlat(m,{"icon-image":p.icon+"-15","icon-size":p.iconsize/10,"text-field":p.text,"text-size":p.textfont.size,"text-anchor":v.anchor,"text-offset":v.offset,"symbol-placement":p.placement}),r.extendFlat(g,{"icon-color":h.color,"text-color":p.textfont.color,"text-opacity":h.opacity});break;case"raster":r.extendFlat(g,{"raster-fade-duration":0,"raster-opacity":h.opacity})}return{layout:m,paint:g}}s.update=function(h){this.visible?this.needsNewImage(h)?this.updateImage(h):this.needsNewSource(h)?(this.removeLayer(),this.updateSource(h),this.updateLayer(h)):this.needsNewLayer(h)?this.updateLayer(h):this.updateStyle(h):(this.updateSource(h),this.updateLayer(h)),this.visible=l(h)},s.needsNewImage=function(h){return this.subplot.map.getSource(this.idSource)&&this.sourceType==="image"&&h.sourcetype==="image"&&(this.source!==h.source||JSON.stringify(this.coordinates)!==JSON.stringify(h.coordinates))},s.needsNewSource=function(h){return this.sourceType!==h.sourcetype||JSON.stringify(this.source)!==JSON.stringify(h.source)||this.layerType!==h.type},s.needsNewLayer=function(h){return this.layerType!==h.type||this.below!==this.subplot.belowLookup["layout-"+this.index]},s.lookupBelow=function(){return this.subplot.belowLookup["layout-"+this.index]},s.updateImage=function(h){this.subplot.map.getSource(this.idSource).updateImage({url:h.source,coordinates:h.coordinates});var m=this.findFollowingMapboxLayerId(this.lookupBelow());m!==null&&this.subplot.map.moveLayer(this.idLayer,m)},s.updateSource=function(h){var m=this.subplot.map;if(m.getSource(this.idSource)&&m.removeSource(this.idSource),this.sourceType=h.sourcetype,this.source=h.source,l(h)){var g=function(p){var v,y=p.sourcetype,x=p.source,w={type:y};return y==="geojson"?v="data":y==="vector"?v=typeof x=="string"?"url":"tiles":y==="raster"?(v="tiles",w.tileSize=256):y==="image"&&(v="url",w.coordinates=p.coordinates),w[v]=x,p.sourceattribution&&(w.attribution=a(p.sourceattribution)),w}(h);m.addSource(this.idSource,g)}},s.findFollowingMapboxLayerId=function(h){if(h==="traces")for(var m=this.subplot.getMapLayers(),g=0;g1)for(O=0;O-1&&x(B.originalEvent,R,[O.xaxis],[O.yaxis],O.id,N),G.indexOf("event")>-1&&l.click(R,B.originalEvent)}}},T.updateFx=function(E){var D=this,O=D.map,R=D.gd;if(!D.isStatic){var z,L=E.dragmode;z=h(L)?function(B,G){(B.range={})[D.id]=[N([G.xmin,G.ymin]),N([G.xmax,G.ymax])]}:function(B,G,W){(B.lassoPoints={})[D.id]=W.filtered.map(N)};var P=D.dragOptions;D.dragOptions=a.extendDeep(P||{},{dragmode:E.dragmode,element:D.div,gd:R,plotinfo:{id:D.id,domain:E[D.id].domain,xaxis:D.xaxis,yaxis:D.yaxis,fillRangeItems:z},xaxes:[D.xaxis],yaxes:[D.yaxis],subplot:D.id}),O.off("click",D.onClickInPanHandler),g(L)||m(L)?(O.dragPan.disable(),O.on("zoomstart",D.clearSelect),D.dragOptions.prepFn=function(B,G,W){p(B,G,W,D.dragOptions,L)},s.init(D.dragOptions)):(O.dragPan.enable(),O.off("zoomstart",D.clearSelect),D.div.onmousedown=null,D.onClickInPanHandler=D.onClickInPanFn(D.dragOptions),O.on("click",D.onClickInPanHandler))}function N(B){var G=D.map.unproject(B);return[G.lng,G.lat]}},T.updateFramework=function(E){var D=E[this.id].domain,O=E._size,R=this.div.style;R.width=O.w*(D.x[1]-D.x[0])+"px",R.height=O.h*(D.y[1]-D.y[0])+"px",R.left=O.l+D.x[0]*O.w+"px",R.top=O.t+(1-D.y[1])*O.h+"px",this.xaxis._offset=O.l+D.x[0]*O.w,this.xaxis._length=O.w*(D.x[1]-D.x[0]),this.yaxis._offset=O.t+(1-D.y[1])*O.h,this.yaxis._length=O.h*(D.y[1]-D.y[0])},T.updateLayers=function(E){var D,O=E[this.id].layers,R=this.layerList;if(O.length!==R.length){for(D=0;D=K.width-20?(Z["text-anchor"]="start",Z.x=5):(Z["text-anchor"]="end",Z.x=K._paper.attr("width")-7),te.attr(Z);var re=te.select(".js-link-to-tool"),U=te.select(".js-link-spacer"),q=te.select(".js-sourcelinks");W._context.showSources&&W._context.showSources(W),W._context.showLink&&function($,ne){ne.text("");var H=ne.append("a").attr({"xlink:xlink:href":"#",class:"link--impt link--embedview","font-weight":"bold"}).text($._context.linkText+" "+String.fromCharCode(187));if($._context.sendData)H.on("click",function(){b.sendDataToCloud($)});else{var Q=window.location.pathname.split("/"),ee=window.location.search;H.attr({"xlink:xlink:show":"new","xlink:xlink:href":"/"+Q[2].split(".")[0]+"/"+Q[1]+ee})}}(W,re),U.text(re.text()&&q.text()?" - ":"")}},b.sendDataToCloud=function(W){var K=(window.PLOTLYENV||{}).BASE_URL||W._context.plotlyServerURL;if(K){W.emit("plotly_beforeexport");var te=r.select(W).append("div").attr("id","hiddenform").style("display","none"),Y=te.append("form").attr({action:K+"/external",method:"post",target:"_blank"});return Y.append("input").attr({type:"text",name:"data"}).node().value=b.graphJson(W,!1,"keepdata"),Y.node().submit(),te.remove(),W.emit("plotly_afterexport"),!1}};var M=["days","shortDays","months","shortMonths","periods","dateTime","date","time","decimal","thousands","grouping","currency"],A=["year","month","dayMonth","dayMonthYear"];function S(W,K){var te=W._context.locale;te||(te="en-US");var Y=!1,Z={};function re(Q){for(var ee=!0,ie=0;ie1&&Te.length>1){for(i.getComponentMethod("grid","sizeDefaults")(U,re),Z=0;Z15&&Te.length>15&&re.shapes.length===0&&re.images.length===0,b.linkSubplots($,re,q,Y),b.cleanPlot($,re,q,Y);var ke=!(!Y._has||!Y._has("gl2d")),Ee=!(!re._has||!re._has("gl2d")),ze=!(!Y._has||!Y._has("cartesian"))||ke,Fe=!(!re._has||!re._has("cartesian"))||Ee;ze&&!Fe?Y._bgLayer.remove():Fe&&!ze&&(re._shouldCreateBgLayer=!0),Y._zoomlayer&&!W._dragging&&p({_fullLayout:Y}),function(qe,We){var Ye,nt=[];We.meta&&(Ye=We._meta={meta:We.meta,layout:{meta:We.meta}});for(var ft=0;ft0){var ne=1-2*U;Y=Math.round(ne*Y),Z=Math.round(ne*Z)}}var H=b.layoutAttributes.width.min,Q=b.layoutAttributes.height.min;Y1,ie=!K.height&&Math.abs(te.height-Z)>1;(ie||ee)&&(ee&&(te.width=Y),ie&&(te.height=Z)),W._initialAutoSize||(W._initialAutoSize={width:Y,height:Z}),b.sanitizeMargins(te)},b.supplyLayoutModuleDefaults=function(W,K,te,Y){var Z,re,U,q=i.componentsRegistry,$=K._basePlotModules,ne=i.subplotsRegistry.cartesian;for(Z in q)(U=q[Z]).includeBasePlot&&U.includeBasePlot(W,K);for(var H in $.length||$.push(ne),K._has("cartesian")&&(i.getComponentMethod("grid","contentDefaults")(W,K),ne.finalizeSubplots(W,K)),K._subplots)K._subplots[H].sort(d.subplotSort);for(re=0;re<$.length;re++)(U=$[re]).supplyLayoutDefaults&&U.supplyLayoutDefaults(W,K,te);var Q=K._modules;for(re=0;re1&&(te.l/=ae,te.r/=ae)}if(H){var ue=(te.t+te.b)/H;ue>1&&(te.t/=ue,te.b/=ue)}var le=te.xl!==void 0?te.xl:te.x,ge=te.xr!==void 0?te.xr:te.x,fe=te.yt!==void 0?te.yt:te.y,me=te.yb!==void 0?te.yb:te.y;Q[K]={l:{val:le,size:te.l+ie},r:{val:ge,size:te.r+ie},b:{val:me,size:te.b+ie},t:{val:fe,size:te.t+ie}},ee[K]=1}else delete Q[K],delete ee[K];if(!Y._replotting)return b.doAutoMargin(W)}},b.doAutoMargin=function(W){var K=W._fullLayout,te=K.width,Y=K.height;K._size||(K._size={}),z(K);var Z=K._size,re=K.margin,U=d.extendFlat({},Z),q=re.l,$=re.r,ne=re.t,H=re.b,Q=K._pushmargin,ee=K._pushmarginIds;if(K.margin.autoexpand!==!1){for(var ie in Q)ee[ie]||delete Q[ie];for(var ae in Q.base={l:{val:0,size:q},r:{val:1,size:$},t:{val:1,size:ne},b:{val:0,size:H}},Q){var ue=Q[ae].l||{},le=Q[ae].b||{},ge=ue.val,fe=ue.size,me=le.val,_e=le.size;for(var we in Q){if(c(fe)&&Q[we].r){var Te=Q[we].r.val,Oe=Q[we].r.size;if(Te>ge){var de=(fe*Te+(Oe-te)*ge)/(Te-ge),ye=(Oe*(1-ge)+(fe-te)*(1-Te))/(Te-ge);de+ye>q+$&&(q=de,$=ye)}}if(c(_e)&&Q[we].t){var Me=Q[we].t.val,ke=Q[we].t.size;if(Me>me){var Ee=(_e*Me+(ke-Y)*me)/(Me-me),ze=(ke*(1-me)+(_e-Y)*(1-Me))/(Me-me);Ee+ze>H+ne&&(H=Ee,ne=ze)}}}}}var Fe=d.constrain(te-re.l-re.r,2,64),Ve=d.constrain(Y-re.t-re.b,2,64),Ke=Math.max(0,te-Fe),Re=Math.max(0,Y-Ve);if(Ke){var qe=(q+$)/Ke;qe>1&&(q/=qe,$/=qe)}if(Re){var We=(H+ne)/Re;We>1&&(H/=We,ne/=We)}if(Z.l=Math.round(q),Z.r=Math.round($),Z.t=Math.round(ne),Z.b=Math.round(H),Z.p=Math.round(re.pad),Z.w=Math.round(te)-Z.l-Z.r,Z.h=Math.round(Y)-Z.t-Z.b,!K._replotting&&b.didMarginChange(U,Z)){"_redrawFromAutoMarginCount"in K?K._redrawFromAutoMarginCount++:K._redrawFromAutoMarginCount=1;var Ye=3*(1+Object.keys(ee).length);if(K._redrawFromAutoMarginCount0&&(W._transitioningWithDuration=!0),W._transitionData._interruptCallbacks.push(function(){Y=!0}),te.redraw&&W._transitionData._interruptCallbacks.push(function(){return i.call("redraw",W)}),W._transitionData._interruptCallbacks.push(function(){W.emit("plotly_transitioninterrupted",[])});var q=0,$=0;function ne(){return q++,function(){$++,Y||$!==q||function(H){!W._transitionData||(function(Q){if(Q)for(;Q.length;)Q.shift()}(W._transitionData._interruptCallbacks),Promise.resolve().then(function(){if(te.redraw)return i.call("redraw",W)}).then(function(){W._transitioning=!1,W._transitioningWithDuration=!1,W.emit("plotly_transitioned",[])}).then(H))}(U)}}te.runFn(ne),setTimeout(ne())})}],re=d.syncOrAsync(Z,W);return re&&re.then||(re=Promise.resolve()),re.then(function(){return W})}b.didMarginChange=function(W,K){for(var te=0;te1)return!0}return!1},b.graphJson=function(W,K,te,Y,Z,re){(Z&&K&&!W._fullData||Z&&!K&&!W._fullLayout)&&b.supplyDefaults(W);var U=Z?W._fullData:W.data,q=Z?W._fullLayout:W.layout,$=(W._transitionData||{})._frames;function ne(ee,ie){if(typeof ee=="function")return ie?"_function_":null;if(d.isPlainObject(ee)){var ae,ue={};return Object.keys(ee).sort().forEach(function(le){if(["_","["].indexOf(le.charAt(0))===-1)if(typeof ee[le]!="function"){if(te==="keepdata"){if(le.substr(le.length-3)==="src")return}else if(te==="keepstream"){if(typeof(ae=ee[le+"src"])=="string"&&ae.indexOf(":")>0&&!d.isPlainObject(ee.stream))return}else if(te!=="keepall"&&typeof(ae=ee[le+"src"])=="string"&&ae.indexOf(":")>0)return;ue[le]=ne(ee[le],ie)}else ie&&(ue[le]="_function")}),ue}return Array.isArray(ee)?ee.map(function(le){return ne(le,ie)}):d.isTypedArray(ee)?d.simpleMap(ee,d.identity):d.isJSDate(ee)?d.ms2DateTimeLocal(+ee):ee}var H={data:(U||[]).map(function(ee){var ie=ne(ee);return K&&delete ie.fit,ie})};if(!K&&(H.layout=ne(q),Z)){var Q=q._size;H.layout.computed={margin:{b:Q.b,l:Q.l,r:Q.r,t:Q.t}}}return $&&(H.frames=ne($)),re&&(H.config=ne(W._context,!0)),Y==="object"?H:JSON.stringify(H)},b.modifyFrames=function(W,K){var te,Y,Z,re=W._transitionData._frames,U=W._transitionData._frameHash;for(te=0;te=0;re--)if(we[re].enabled){te._indexToPoints=we[re]._indexToPoints;break}Y&&Y.calc&&(_e=Y.calc(W,te))}Array.isArray(_e)&&_e[0]||(_e=[{x:m,y:m}]),_e[0].t||(_e[0].t={}),_e[0].trace=te,ne[fe]=_e}}for(B(U,q,$),Z=0;Z1e-10?g:0}function m(g,p,v){p=p||0,v=v||0;for(var y=g.length,x=new Array(y),w=0;w0?w:1/0}),y=r.mod(v+1,p.length);return[p[v],p[y]]},findIntersectionXY:l,findXYatLength:function(g,p,v,y){var x=-p*v,w=p*p+1,k=2*(p*x-v),b=x*x+v*v-g*g,T=Math.sqrt(k*k-4*w*b),_=(-k+T)/(2*w),M=(-k-T)/(2*w);return[[_,p*_+x+y],[M,p*M+x+y]]},clampTiny:h,pathPolygon:function(g,p,v,y,x,w){return"M"+m(d(g,p,v,y),x,w).join("L")},pathPolygonAnnulus:function(g,p,v,y,x,w,k){var b,T;g=90||Jt>90&&Be>=450?1:Tt<=0&&Pe<=0?0:Math.max(Tt,Pe),Pt=Jt<=180&&Be>=180||Jt>180&&Be>=540?-1:Ge>=0&&dt>=0?0:Math.min(Ge,dt),At=Jt<=270&&Be>=270||Jt>270&&Be>=630?-1:Tt>=0&&Pe>=0?0:Math.min(Tt,Pe),at=Be>=360?1:Ge<=0&&dt<=0?0:Math.max(Ge,dt),[Pt,At,at,et]}(ge),de=Oe[2]-Oe[0],ye=Oe[3]-Oe[1],Me=le/ue,ke=Math.abs(ye/de);Me>ke?(fe=ue,Te=(le-(me=ue*ke))/H.h/2,_e=[ie[0],ie[1]],we=[ae[0]+Te,ae[1]-Te]):(me=le,Te=(ue-(fe=le/ke))/H.w/2,_e=[ie[0]+Te,ie[1]-Te],we=[ae[0],ae[1]]),this.xLength2=fe,this.yLength2=me,this.xDomain2=_e,this.yDomain2=we;var Ee,ze=this.xOffset2=H.l+H.w*_e[0],Fe=this.yOffset2=H.t+H.h*(1-we[1]),Ve=this.radius=fe/de,Ke=this.innerRadius=this.getHole($)*Ve,Re=this.cx=ze-Ve*Oe[0],qe=this.cy=Fe+Ve*Oe[3],We=this.cxx=Re-ze,Ye=this.cyy=qe-Fe,nt=Q.side;nt==="counterclockwise"?(Ee=nt,nt="top"):nt==="clockwise"&&(Ee=nt,nt="bottom"),this.radialAxis=this.mockAxis(q,$,Q,{_id:"x",side:nt,_trueSide:Ee,domain:[Ke/H.w,Ve/H.w]}),this.angularAxis=this.mockAxis(q,$,ee,{side:"right",domain:[0,Math.PI],autorange:!1}),this.doAutoRange(q,$),this.updateAngularAxis(q,$),this.updateRadialAxis(q,$),this.updateRadialAxisTitle(q,$),this.xaxis=this.mockCartesianAxis(q,$,{_id:"x",domain:_e}),this.yaxis=this.mockCartesianAxis(q,$,{_id:"y",domain:we});var ft=this.pathSubplot();this.clipPaths.forTraces.select("path").attr("d",ft).attr("transform",s(We,Ye)),ne.frontplot.attr("transform",s(ze,Fe)).call(d.setClipUrl,this._hasClipOnAxisFalse?null:this.clipIds.forTraces,this.gd),ne.bg.attr("d",ft).attr("transform",s(Re,qe)).call(l.fill,$.bgcolor)},Y.mockAxis=function(q,$,ne,H){var Q=c.extendFlat({},ne,H);return p(Q,$,q),Q},Y.mockCartesianAxis=function(q,$,ne){var H=this,Q=H.isSmith,ee=ne._id,ie=c.extendFlat({type:"linear"},ne);g(ie,q);var ae={x:[0,2],y:[1,3]};return ie.setRange=function(){var ue=H.sectorBBox,le=ae[ee],ge=H.radialAxis._rl,fe=(ge[1]-ge[0])/(1-H.getHole($));ie.range=[ue[le[0]]*fe,ue[le[1]]*fe]},ie.isPtWithinRange=ee!=="x"||Q?function(){return!0}:function(ue){return H.isPtInside(ue)},ie.setRange(),ie.setScale(),ie},Y.doAutoRange=function(q,$){var ne=this.gd,H=this.radialAxis,Q=this.getRadial($);v(ne,H);var ee=H.range;Q.range=ee.slice(),Q._input.range=ee.slice(),H._rl=[H.r2l(ee[0],null,"gregorian"),H.r2l(ee[1],null,"gregorian")]},Y.updateRadialAxis=function(q,$){var ne=this,H=ne.gd,Q=ne.layers,ee=ne.radius,ie=ne.innerRadius,ae=ne.cx,ue=ne.cy,le=ne.getRadial($),ge=G(ne.getSector($)[0],360),fe=ne.radialAxis,me=ie90&&ge<=270&&(fe.tickangle=180);var we=_e?function(Ve){var Ke=N(ne,z([Ve.x,0]));return s(Ke[0]-ae,Ke[1]-ue)}:function(Ve){return s(fe.l2p(Ve.x)+ie,0)},Te=_e?function(Ve){return P(ne,Ve.x,-1/0,1/0)}:function(Ve){return ne.pathArc(fe.r2p(Ve.x)+ie)},Oe=Z(le);if(ne.radialTickLayout!==Oe&&(Q["radial-axis"].selectAll(".xtick").remove(),ne.radialTickLayout=Oe),me){fe.setScale();var de=0,ye=_e?(fe.tickvals||[]).filter(function(Ve){return Ve>=0}).map(function(Ve){return m.tickText(fe,Ve,!0,!1)}):m.calcTicks(fe),Me=_e?ye:m.clipEnds(fe,ye),ke=m.getTickSigns(fe)[2];_e&&((fe.ticks==="top"&&fe.side==="bottom"||fe.ticks==="bottom"&&fe.side==="top")&&(ke=-ke),fe.ticks==="top"&&fe.side==="top"&&(de=-fe.ticklen),fe.ticks==="bottom"&&fe.side==="bottom"&&(de=fe.ticklen)),m.drawTicks(H,fe,{vals:ye,layer:Q["radial-axis"],path:m.makeTickPath(fe,0,ke),transFn:we,crisp:!1}),m.drawGrid(H,fe,{vals:Me,layer:Q["radial-grid"],path:Te,transFn:c.noop,crisp:!1}),m.drawLabels(H,fe,{vals:ye,layer:Q["radial-axis"],transFn:we,labelFns:m.makeLabelFns(fe,de)})}var Ee=ne.radialAxisAngle=ne.vangles?K(re(W(le.angle),ne.vangles)):le.angle,ze=s(ae,ue),Fe=ze+i(-Ee);U(Q["radial-axis"],me&&(le.showticklabels||le.ticks),{transform:Fe}),U(Q["radial-grid"],me&&le.showgrid,{transform:_e?"":ze}),U(Q["radial-line"].select("line"),me&&le.showline,{x1:_e?-ee:ie,y1:0,x2:ee,y2:0,transform:Fe}).attr("stroke-width",le.linewidth).call(l.stroke,le.linecolor)},Y.updateRadialAxisTitle=function(q,$,ne){if(!this.isSmith){var H=this.gd,Q=this.radius,ee=this.cx,ie=this.cy,ae=this.getRadial($),ue=this.id+"title",le=0;if(ae.title){var ge=d.bBox(this.layers["radial-axis"].node()).height,fe=ae.title.font.size,me=ae.side;le=me==="top"?fe:me==="counterclockwise"?-(ge+.4*fe):ge+.8*fe}var _e=ne!==void 0?ne:this.radialAxisAngle,we=W(_e),Te=Math.cos(we),Oe=Math.sin(we),de=ee+Q/2*Te+le*Oe,ye=ie-Q/2*Oe+le*Te;this.layers["radial-axis-title"]=k.draw(H,ue,{propContainer:ae,propName:this.id+".radialaxis.title",placeholder:B(H,"Click to enter radial axis title"),attributes:{x:de,y:ye,"text-anchor":"middle"},transform:{rotate:-_e}})}},Y.updateAngularAxis=function(q,$){var ne=this,H=ne.gd,Q=ne.layers,ee=ne.radius,ie=ne.innerRadius,ae=ne.cx,ue=ne.cy,le=ne.getAngular($),ge=ne.angularAxis,fe=ne.isSmith;fe||(ne.fillViewInitialKey("angularaxis.rotation",le.rotation),ge.setGeometry(),ge.setScale());var me=fe?function(Ve){var Ke=N(ne,z([0,Ve.x]));return Math.atan2(Ke[0]-ae,Ke[1]-ue)-Math.PI/2}:function(Ve){return ge.t2g(Ve.x)};ge.type==="linear"&&ge.thetaunit==="radians"&&(ge.tick0=K(ge.tick0),ge.dtick=K(ge.dtick));var _e=function(Ve){return s(ae+ee*Math.cos(Ve),ue-ee*Math.sin(Ve))},we=fe?function(Ve){var Ke=N(ne,z([0,Ve.x]));return s(Ke[0],Ke[1])}:function(Ve){return _e(me(Ve))},Te=fe?function(Ve){var Ke=N(ne,z([0,Ve.x])),Re=Math.atan2(Ke[0]-ae,Ke[1]-ue)-Math.PI/2;return s(Ke[0],Ke[1])+i(-K(Re))}:function(Ve){var Ke=me(Ve);return _e(Ke)+i(-K(Ke))},Oe=fe?function(Ve){return L(ne,Ve.x,0,1/0)}:function(Ve){var Ke=me(Ve),Re=Math.cos(Ke),qe=Math.sin(Ke);return"M"+[ae+ie*Re,ue-ie*qe]+"L"+[ae+ee*Re,ue-ee*qe]},de=m.makeLabelFns(ge,0).labelStandoff,ye={xFn:function(Ve){var Ke=me(Ve);return Math.cos(Ke)*de},yFn:function(Ve){var Ke=me(Ve),Re=Math.sin(Ke)>0?.2:1;return-Math.sin(Ke)*(de+Ve.fontSize*Re)+Math.abs(Math.cos(Ke))*(Ve.fontSize*E)},anchorFn:function(Ve){var Ke=me(Ve),Re=Math.cos(Ke);return Math.abs(Re)<.1?"middle":Re>0?"start":"end"},heightFn:function(Ve,Ke,Re){var qe=me(Ve);return-.5*(1+Math.sin(qe))*Re}},Me=Z(le);ne.angularTickLayout!==Me&&(Q["angular-axis"].selectAll("."+ge._id+"tick").remove(),ne.angularTickLayout=Me);var ke,Ee=fe?[1/0].concat(ge.tickvals||[]).map(function(Ve){return m.tickText(ge,Ve,!0,!1)}):m.calcTicks(ge);if(fe&&(Ee[0].text="\u221E",Ee[0].fontSize*=1.75),$.gridshape==="linear"?(ke=Ee.map(me),c.angleDelta(ke[0],ke[1])<0&&(ke=ke.slice().reverse())):ke=null,ne.vangles=ke,ge.type==="category"&&(Ee=Ee.filter(function(Ve){return c.isAngleInsideSector(me(Ve),ne.sectorInRad)})),ge.visible){var ze=ge.ticks==="inside"?-1:1,Fe=(ge.linewidth||1)/2;m.drawTicks(H,ge,{vals:Ee,layer:Q["angular-axis"],path:"M"+ze*Fe+",0h"+ze*ge.ticklen,transFn:Te,crisp:!1}),m.drawGrid(H,ge,{vals:Ee,layer:Q["angular-grid"],path:Oe,transFn:c.noop,crisp:!1}),m.drawLabels(H,ge,{vals:Ee,layer:Q["angular-axis"],repositionOnUpdate:!0,transFn:we,labelFns:ye})}U(Q["angular-line"].select("path"),le.showline,{d:ne.pathSubplot(),transform:s(ae,ue)}).attr("stroke-width",le.linewidth).call(l.stroke,le.linecolor)},Y.updateFx=function(q,$){this.gd._context.staticPlot||(!this.isSmith&&(this.updateAngularDrag(q),this.updateRadialDrag(q,$,0),this.updateRadialDrag(q,$,1)),this.updateHoverAndMainDrag(q))},Y.updateHoverAndMainDrag=function(q){var $,ne,H=this,Q=H.isSmith,ee=H.gd,ie=H.layers,ae=q._zoomlayer,ue=D.MINZOOM,le=D.OFFEDGE,ge=H.radius,fe=H.innerRadius,me=H.cx,_e=H.cy,we=H.cxx,Te=H.cyy,Oe=H.sectorInRad,de=H.vangles,ye=H.radialAxis,Me=O.clampTiny,ke=O.findXYatLength,Ee=O.findEnclosingVertexAngles,ze=D.cornerHalfWidth,Fe=D.cornerLen/2,Ve=y.makeDragger(ie,"path","maindrag","crosshair");r.select(Ve).attr("d",H.pathSubplot()).attr("transform",s(me,_e)),Ve.onmousemove=function(rt){w.hover(ee,rt,H.id),ee._fullLayout._lasthover=Ve,ee._fullLayout._hoversubplot=H.id},Ve.onmouseout=function(rt){ee._dragging||x.unhover(ee,rt)};var Ke,Re,qe,We,Ye,nt,ft,vt,Pt,At={element:Ve,gd:ee,subplot:H.id,plotinfo:{id:H.id,xaxis:H.xaxis,yaxis:H.yaxis},xaxes:[H.xaxis],yaxes:[H.yaxis]};function at(rt,lt){return Math.sqrt(rt*rt+lt*lt)}function et(rt,lt){return at(rt-we,lt-Te)}function Ot(rt,lt){return Math.atan2(Te-lt,rt-we)}function Wt(rt,lt){return[rt*Math.cos(lt),rt*Math.sin(-lt)]}function Jt(rt,lt){if(rt===0)return H.pathSector(2*ze);var ot=Fe/rt,kt=lt-ot,wt=lt+ot,Vt=Math.max(0,Math.min(rt,ge)),Ut=Vt-ze,tt=Vt+ze;return"M"+Wt(Ut,kt)+"A"+[Ut,Ut]+" 0,0,0 "+Wt(Ut,wt)+"L"+Wt(tt,wt)+"A"+[tt,tt]+" 0,0,1 "+Wt(tt,kt)+"Z"}function Be(rt,lt,ot){if(rt===0)return H.pathSector(2*ze);var kt,wt,Vt=Wt(rt,lt),Ut=Wt(rt,ot),tt=Me((Vt[0]+Ut[0])/2),bt=Me((Vt[1]+Ut[1])/2);if(tt&&bt){var zt=bt/tt,St=-1/zt,Dt=ke(ze,zt,tt,bt);kt=ke(Fe,St,Dt[0][0],Dt[0][1]),wt=ke(Fe,St,Dt[1][0],Dt[1][1])}else{var Le,Je;bt?(Le=Fe,Je=ze):(Le=ze,Je=Fe),kt=[[tt-Le,bt-Je],[tt+Le,bt-Je]],wt=[[tt-Le,bt+Je],[tt+Le,bt+Je]]}return"M"+kt.join("L")+"L"+wt.reverse().join("L")+"Z"}function Ge(rt,lt){return lt=Math.max(Math.min(lt,ge),fe),rtue?(rt-1&&rt===1&&T(lt,ee,[H.xaxis],[H.yaxis],H.id,At),ot.indexOf("event")>-1&&w.click(ee,lt,H.id)}At.prepFn=function(rt,lt,ot){var kt=ee._fullLayout.dragmode,wt=Ve.getBoundingClientRect();ee._fullLayout._calcInverseTransform(ee);var Vt=ee._fullLayout._invTransform;$=ee._fullLayout._invScaleX,ne=ee._fullLayout._invScaleY;var Ut=c.apply3DTransform(Vt)(lt-wt.left,ot-wt.top);if(Ke=Ut[0],Re=Ut[1],de){var tt=O.findPolygonOffset(ge,Oe[0],Oe[1],de);Ke+=we+tt[0],Re+=Te+tt[1]}switch(kt){case"zoom":At.clickFn=He,Q||(At.moveFn=de?Ie:dt,At.doneFn=Ae,function(){qe=null,We=null,Ye=H.pathSubplot(),nt=!1;var bt=ee._fullLayout[H.id];ft=a(bt.bgcolor).getLuminance(),(vt=y.makeZoombox(ae,ft,me,_e,Ye)).attr("fill-rule","evenodd"),Pt=y.makeCorners(ae,me,_e),_(ee)}());break;case"select":case"lasso":b(rt,lt,ot,At,kt)}},x.init(At)},Y.updateRadialDrag=function(q,$,ne){var H=this,Q=H.gd,ee=H.layers,ie=H.radius,ae=H.innerRadius,ue=H.cx,le=H.cy,ge=H.radialAxis,fe=D.radialDragBoxSize,me=fe/2;if(ge.visible){var _e,we,Te,Oe=W(H.radialAxisAngle),de=ge._rl,ye=de[0],Me=de[1],ke=de[ne],Ee=.75*(de[1]-de[0])/(1-H.getHole($))/ie;ne?(_e=ue+(ie+me)*Math.cos(Oe),we=le-(ie+me)*Math.sin(Oe),Te="radialdrag"):(_e=ue+(ae-me)*Math.cos(Oe),we=le-(ae-me)*Math.sin(Oe),Te="radialdrag-inner");var ze,Fe,Ve,Ke=y.makeRectDragger(ee,Te,"crosshair",-me,-me,fe,fe),Re={element:Ke,gd:Q};U(r.select(Ke),ge.visible&&ae0==(ne?Ve>ye:Vep?function(k){return k<=0}:function(k){return k>=0};d.c2g=function(k){var b=d.c2l(k)-g;return(w(b)?b:0)+x},d.g2c=function(k){return d.l2c(k+g-x)},d.g2p=function(k){return k*y},d.c2p=function(k){return d.g2p(d.c2g(k))}}})(i,s);break;case"angularaxis":(function(d,h){var m=d.type;if(m==="linear"){var g=d.d2c,p=d.c2d;d.d2c=function(v,y){return function(x,w){return w==="degrees"?u(x):x}(g(v),y)},d.c2d=function(v,y){return p(function(x,w){return w==="degrees"?c(x):x}(v,y))}}d.makeCalcdata=function(v,y){var x,w,k=v[y],b=v._length,T=function(E){return d.d2c(E,v.thetaunit)};if(k){if(r.isTypedArray(k)&&m==="linear"){if(b===k.length)return k;if(k.subarray)return k.subarray(0,b)}for(x=new Array(b),w=0;w0?1:0}function a(i){var s=i[0],l=i[1];if(!isFinite(s)||!isFinite(l))return[1,0];var d=(s+1)*(s+1)+l*l;return[(s*s+l*l-1)/d,2*l/d]}function u(i,s){var l=s[0],d=s[1];return[l*i.radius+i.cx,-d*i.radius+i.cy]}function c(i,s){return s*i.radius}o.exports={smith:a,reactanceArc:function(i,s,l,d){var h=u(i,a([l,s])),m=h[0],g=h[1],p=u(i,a([d,s])),v=p[0],y=p[1];if(s===0)return["M"+m+","+g,"L"+v+","+y].join(" ");var x=c(i,1/Math.abs(s));return["M"+m+","+g,"A"+x+","+x+" 0 0,"+(s<0?1:0)+" "+v+","+y].join(" ")},resistanceArc:function(i,s,l,d){var h=c(i,1/(s+1)),m=u(i,a([s,l])),g=m[0],p=m[1],v=u(i,a([s,d])),y=v[0],x=v[1];if(r(l)!==r(d)){var w=u(i,a([s,0]));return["M"+g+","+p,"A"+h+","+h+" 0 0,"+(00){for(var s=[],l=0;l=A&&(E.min=0,D.min=0,O.min=0,y.aaxis&&delete y.aaxis.min,y.baxis&&delete y.baxis.min,y.caxis&&delete y.caxis.min)}function v(y,x,w,k){var b=m[x._name];function T(D,O){return u.coerce(y,x,b,D,O)}T("uirevision",k.uirevision),x.type="linear";var _=T("color"),M=_!==b.color.dflt?_:w.font.color,A=x._name.charAt(0).toUpperCase(),S="Component "+A,E=T("title.text",S);x._hovertitle=E===S?E:A,u.coerceFont(T,"title.font",{family:w.font.family,size:u.bigFont(w.font.size),color:M}),T("min"),d(y,x,T,"linear"),s(y,x,T,"linear"),i(y,x,T,"linear"),l(y,x,T,{outerTicks:!0}),T("showticklabels")&&(u.coerceFont(T,"tickfont",{family:w.font.family,size:w.font.size,color:M}),T("tickangle"),T("tickformat")),h(y,x,T,{dfltColor:_,bgColor:w.bgColor,blend:60,showLine:!0,showGrid:!0,noZeroLine:!0,attributes:b}),T("hoverformat"),T("layer")}o.exports=function(y,x,w){c(y,x,w,{type:"ternary",attributes:m,handleDefaults:p,font:x.font,paper_bgcolor:x.paper_bgcolor})}},{"../../components/color":366,"../../lib":503,"../../plot_api/plot_template":543,"../cartesian/line_grid_defaults":571,"../cartesian/prefix_suffix_defaults":573,"../cartesian/tick_label_defaults":578,"../cartesian/tick_mark_defaults":579,"../cartesian/tick_value_defaults":580,"../subplot_defaults":632,"./layout_attributes":635}],637:[function(e,o,f){var r=e("@plotly/d3"),a=e("tinycolor2"),u=e("../../registry"),c=e("../../lib"),i=c.strTranslate,s=c._,l=e("../../components/color"),d=e("../../components/drawing"),h=e("../cartesian/set_convert"),m=e("../../lib/extend").extendFlat,g=e("../plots"),p=e("../cartesian/axes"),v=e("../../components/dragelement"),y=e("../../components/fx"),x=e("../../components/dragelement/helpers"),w=x.freeMode,k=x.rectMode,b=e("../../components/titles"),T=e("../cartesian/select").prepSelect,_=e("../cartesian/select").selectOnClick,M=e("../cartesian/select").clearSelect,A=e("../cartesian/select").clearSelectionsCache,S=e("../cartesian/constants");function E(G,W){this.id=G.id,this.graphDiv=G.graphDiv,this.init(W),this.makeFramework(W),this.aTickLayout=null,this.bTickLayout=null,this.cTickLayout=null}o.exports=E;var D=E.prototype;D.init=function(G){this.container=G._ternarylayer,this.defs=G._defs,this.layoutId=G._uid,this.traceHash={},this.layers={}},D.plot=function(G,W){var K=W[this.id],te=W._size;this._hasClipOnAxisFalse=!1;for(var Y=0;YO*ae?Y=(Z=ae)*O:Z=(Y=ie)/O,re=Q*Y/ie,U=ee*Z/ae,K=W.l+W.w*ne-Y/2,te=W.t+W.h*(1-H)-Z/2,q.x0=K,q.y0=te,q.w=Y,q.h=Z,q.sum=ue,q.xaxis={type:"linear",range:[le+2*fe-ue,ue-le-2*ge],domain:[ne-re/2,ne+re/2],_id:"x"},h(q.xaxis,q.graphDiv._fullLayout),q.xaxis.setScale(),q.xaxis.isPtWithinRange=function(ze){return ze.a>=q.aaxis.range[0]&&ze.a<=q.aaxis.range[1]&&ze.b>=q.baxis.range[1]&&ze.b<=q.baxis.range[0]&&ze.c>=q.caxis.range[1]&&ze.c<=q.caxis.range[0]},q.yaxis={type:"linear",range:[le,ue-ge-fe],domain:[H-U/2,H+U/2],_id:"y"},h(q.yaxis,q.graphDiv._fullLayout),q.yaxis.setScale(),q.yaxis.isPtWithinRange=function(){return!0};var me=q.yaxis.domain[0],_e=q.aaxis=m({},G.aaxis,{range:[le,ue-ge-fe],side:"left",tickangle:(+G.aaxis.tickangle||0)-30,domain:[me,me+U*O],anchor:"free",position:0,_id:"y",_length:Y});h(_e,q.graphDiv._fullLayout),_e.setScale();var we=q.baxis=m({},G.baxis,{range:[ue-le-fe,ge],side:"bottom",domain:q.xaxis.domain,anchor:"free",position:0,_id:"x",_length:Y});h(we,q.graphDiv._fullLayout),we.setScale();var Te=q.caxis=m({},G.caxis,{range:[ue-le-ge,fe],side:"right",tickangle:(+G.caxis.tickangle||0)+30,domain:[me,me+U*O],anchor:"free",position:0,_id:"y",_length:Y});h(Te,q.graphDiv._fullLayout),Te.setScale();var Oe="M"+K+","+(te+Z)+"h"+Y+"l-"+Y/2+",-"+Z+"Z";q.clipDef.select("path").attr("d",Oe),q.layers.plotbg.select("path").attr("d",Oe);var de="M0,"+Z+"h"+Y+"l-"+Y/2+",-"+Z+"Z";q.clipDefRelative.select("path").attr("d",de);var ye=i(K,te);q.plotContainer.selectAll(".scatterlayer,.maplayer").attr("transform",ye),q.clipDefRelative.select("path").attr("transform",null);var Me=i(K-we._offset,te+Z);q.layers.baxis.attr("transform",Me),q.layers.bgrid.attr("transform",Me);var ke=i(K+Y/2,te)+"rotate(30)"+i(0,-_e._offset);q.layers.aaxis.attr("transform",ke),q.layers.agrid.attr("transform",ke);var Ee=i(K+Y/2,te)+"rotate(-30)"+i(0,-Te._offset);q.layers.caxis.attr("transform",Ee),q.layers.cgrid.attr("transform",Ee),q.drawAxes(!0),q.layers.aline.select("path").attr("d",_e.showline?"M"+K+","+(te+Z)+"l"+Y/2+",-"+Z:"M0,0").call(l.stroke,_e.linecolor||"#000").style("stroke-width",(_e.linewidth||0)+"px"),q.layers.bline.select("path").attr("d",we.showline?"M"+K+","+(te+Z)+"h"+Y:"M0,0").call(l.stroke,we.linecolor||"#000").style("stroke-width",(we.linewidth||0)+"px"),q.layers.cline.select("path").attr("d",Te.showline?"M"+(K+Y/2)+","+te+"l"+Y/2+","+Z:"M0,0").call(l.stroke,Te.linecolor||"#000").style("stroke-width",(Te.linewidth||0)+"px"),q.graphDiv._context.staticPlot||q.initInteractions(),d.setClipUrl(q.layers.frontplot,q._hasClipOnAxisFalse?null:q.clipId,q.graphDiv)},D.drawAxes=function(G){var W=this.graphDiv,K=this.id.substr(7)+"title",te=this.layers,Y=this.aaxis,Z=this.baxis,re=this.caxis;if(this.drawAx(Y),this.drawAx(Z),this.drawAx(re),G){var U=Math.max(Y.showticklabels?Y.tickfont.size/2:0,(re.showticklabels?.75*re.tickfont.size:0)+(re.ticks==="outside"?.87*re.ticklen:0)),q=(Z.showticklabels?Z.tickfont.size:0)+(Z.ticks==="outside"?Z.ticklen:0)+3;te["a-title"]=b.draw(W,"a"+K,{propContainer:Y,propName:this.id+".aaxis.title",placeholder:s(W,"Click to enter Component A title"),attributes:{x:this.x0+this.w/2,y:this.y0-Y.title.font.size/3-U,"text-anchor":"middle"}}),te["b-title"]=b.draw(W,"b"+K,{propContainer:Z,propName:this.id+".baxis.title",placeholder:s(W,"Click to enter Component B title"),attributes:{x:this.x0-q,y:this.y0+this.h+.83*Z.title.font.size+q,"text-anchor":"middle"}}),te["c-title"]=b.draw(W,"c"+K,{propContainer:re,propName:this.id+".caxis.title",placeholder:s(W,"Click to enter Component C title"),attributes:{x:this.x0+this.w+q,y:this.y0+this.h+.83*re.title.font.size+q,"text-anchor":"middle"}})}},D.drawAx=function(G){var W,K=this.graphDiv,te=G._name,Y=te.charAt(0),Z=G._id,re=this.layers[te],U=Y+"tickLayout",q=(W=G).ticks+String(W.ticklen)+String(W.showticklabels);this[U]!==q&&(re.selectAll("."+Z+"tick").remove(),this[U]=q),G.setScale();var $=p.calcTicks(G),ne=p.clipEnds(G,$),H=p.makeTransTickFn(G),Q=p.getTickSigns(G)[2],ee=c.deg2rad(30),ie=Q*(G.linewidth||1)/2,ae=Q*G.ticklen,ue=this.w,le=this.h,ge=Y==="b"?"M0,"+ie+"l"+Math.sin(ee)*ae+","+Math.cos(ee)*ae:"M"+ie+",0l"+Math.cos(ee)*ae+","+-Math.sin(ee)*ae,fe={a:"M0,0l"+le+",-"+ue/2,b:"M0,0l-"+ue/2+",-"+le,c:"M0,0l-"+le+","+ue/2}[Y];p.drawTicks(K,G,{vals:G.ticks==="inside"?ne:$,layer:re,path:ge,transFn:H,crisp:!1}),p.drawGrid(K,G,{vals:ne,layer:this.layers[Y+"grid"],path:fe,transFn:H,crisp:!1}),p.drawLabels(K,G,{vals:$,layer:re,transFn:H,labelFns:p.makeLabelFns(G,0,30)})};var R=S.MINZOOM/2+.87,z="m-0.87,.5h"+R+"v3h-"+(R+5.2)+"l"+(R/2+2.6)+",-"+(.87*R+4.5)+"l2.6,1.5l-"+R/2+","+.87*R+"Z",L="m0.87,.5h-"+R+"v3h"+(R+5.2)+"l-"+(R/2+2.6)+",-"+(.87*R+4.5)+"l-2.6,1.5l"+R/2+","+.87*R+"Z",P="m0,1l"+R/2+","+.87*R+"l2.6,-1.5l-"+(R/2+2.6)+",-"+(.87*R+4.5)+"l-"+(R/2+2.6)+","+(.87*R+4.5)+"l2.6,1.5l"+R/2+",-"+.87*R+"Z",N=!0;function B(G){r.select(G).selectAll(".zoombox,.js-zoombox-backdrop,.js-zoombox-menu,.zoombox-corners").remove()}D.clearSelect=function(){A(this.dragOptions),M(this.dragOptions.gd)},D.initInteractions=function(){var G,W,K,te,Y,Z,re,U,q,$,ne,H,Q=this,ee=Q.layers.plotbg.select("path").node(),ie=Q.graphDiv,ae=ie._fullLayout._zoomlayer;function ue(de){var ye={};return ye[Q.id+".aaxis.min"]=de.a,ye[Q.id+".baxis.min"]=de.b,ye[Q.id+".caxis.min"]=de.c,ye}function le(de,ye){var Me=ie._fullLayout.clickmode;B(ie),de===2&&(ie.emit("plotly_doubleclick",null),u.call("_guiRelayout",ie,ue({a:0,b:0,c:0}))),Me.indexOf("select")>-1&&de===1&&_(ye,ie,[Q.xaxis],[Q.yaxis],Q.id,Q.dragOptions),Me.indexOf("event")>-1&&y.click(ie,ye,Q.id)}function ge(de,ye){return 1-ye/Q.h}function fe(de,ye){return 1-(de+(Q.h-ye)/Math.sqrt(3))/Q.w}function me(de,ye){return(de-(Q.h-ye)/Math.sqrt(3))/Q.w}function _e(de,ye){var Me=K+de*G,ke=te+ye*W,Ee=Math.max(0,Math.min(1,ge(0,te),ge(0,ke))),ze=Math.max(0,Math.min(1,fe(K,te),fe(Me,ke))),Fe=Math.max(0,Math.min(1,me(K,te),me(Me,ke))),Ve=(Ee/2+Fe)*Q.w,Ke=(1-Ee/2-ze)*Q.w,Re=(Ve+Ke)/2,qe=Ke-Ve,We=(1-Ee)*Q.h,Ye=We-qe/O;qe.2?"rgba(0,0,0,0.4)":"rgba(255,255,255,0.3)").duration(200),H.transition().style("opacity",1).duration(200),$=!0),ie.emit("plotly_relayouting",ue(re))}function we(){B(ie),re!==Y&&(u.call("_guiRelayout",ie,ue(re)),N&&ie.data&&ie._context.showTips&&(c.notifier(s(ie,"Double-click to zoom back out"),"long"),N=!1))}function Te(de,ye){var Me=de/Q.xaxis._m,ke=ye/Q.yaxis._m,Ee=[(re={a:Y.a-ke,b:Y.b+(Me+ke)/2,c:Y.c-(Me-ke)/2}).a,re.b,re.c].sort(c.sorterAsc),ze=Ee.indexOf(re.a),Fe=Ee.indexOf(re.b),Ve=Ee.indexOf(re.c);Ee[0]<0&&(Ee[1]+Ee[0]/2<0?(Ee[2]+=Ee[0]+Ee[1],Ee[0]=Ee[1]=0):(Ee[2]+=Ee[0]/2,Ee[1]+=Ee[0]/2,Ee[0]=0),re={a:Ee[ze],b:Ee[Fe],c:Ee[Ve]},ye=(Y.a-re.a)*Q.yaxis._m,de=(Y.c-re.c-Y.b+re.b)*Q.xaxis._m);var Ke=i(Q.x0+de,Q.y0+ye);Q.plotContainer.selectAll(".scatterlayer,.maplayer").attr("transform",Ke);var Re=i(-de,-ye);Q.clipDefRelative.select("path").attr("transform",Re),Q.aaxis.range=[re.a,Q.sum-re.b-re.c],Q.baxis.range=[Q.sum-re.a-re.c,re.b],Q.caxis.range=[Q.sum-re.a-re.b,re.c],Q.drawAxes(!1),Q._hasClipOnAxisFalse&&Q.plotContainer.select(".scatterlayer").selectAll(".trace").call(d.hideOutsideRangePoints,Q),ie.emit("plotly_relayouting",ue(re))}function Oe(){u.call("_guiRelayout",ie,ue(re))}this.dragOptions={element:ee,gd:ie,plotinfo:{id:Q.id,domain:ie._fullLayout[Q.id].domain,xaxis:Q.xaxis,yaxis:Q.yaxis},subplot:Q.id,prepFn:function(de,ye,Me){Q.dragOptions.xaxes=[Q.xaxis],Q.dragOptions.yaxes=[Q.yaxis],G=ie._fullLayout._invScaleX,W=ie._fullLayout._invScaleY;var ke=Q.dragOptions.dragmode=ie._fullLayout.dragmode;w(ke)?Q.dragOptions.minDrag=1:Q.dragOptions.minDrag=void 0,ke==="zoom"?(Q.dragOptions.moveFn=_e,Q.dragOptions.clickFn=le,Q.dragOptions.doneFn=we,function(Ee,ze,Fe){var Ve=ee.getBoundingClientRect();K=ze-Ve.left,te=Fe-Ve.top,ie._fullLayout._calcInverseTransform(ie);var Ke=ie._fullLayout._invTransform,Re=c.apply3DTransform(Ke)(K,te);K=Re[0],te=Re[1],Y={a:Q.aaxis.range[0],b:Q.baxis.range[1],c:Q.caxis.range[1]},re=Y,Z=Q.aaxis.range[1]-Y.a,U=a(Q.graphDiv._fullLayout[Q.id].bgcolor).getLuminance(),q="M0,"+Q.h+"L"+Q.w/2+", 0L"+Q.w+","+Q.h+"Z",$=!1,ne=ae.append("path").attr("class","zoombox").attr("transform",i(Q.x0,Q.y0)).style({fill:U>.2?"rgba(0,0,0,0)":"rgba(255,255,255,0)","stroke-width":0}).attr("d",q),H=ae.append("path").attr("class","zoombox-corners").attr("transform",i(Q.x0,Q.y0)).style({fill:l.background,stroke:l.defaultLine,"stroke-width":1,opacity:0}).attr("d","M0,0Z"),Q.clearSelect(ie)}(0,ye,Me)):ke==="pan"?(Q.dragOptions.moveFn=Te,Q.dragOptions.clickFn=le,Q.dragOptions.doneFn=Oe,Y={a:Q.aaxis.range[0],b:Q.baxis.range[1],c:Q.caxis.range[1]},re=Y,Q.clearSelect(ie)):(k(ke)||w(ke))&&T(de,ye,Me,Q.dragOptions,ke)}},ee.onmousemove=function(de){y.hover(ie,de,Q.id),ie._fullLayout._lasthover=ee,ie._fullLayout._hoversubplot=Q.id},ee.onmouseout=function(de){ie._dragging||v.unhover(ie,de)},v.init(this.dragOptions)}},{"../../components/color":366,"../../components/dragelement":385,"../../components/dragelement/helpers":384,"../../components/drawing":388,"../../components/fx":406,"../../components/titles":464,"../../lib":503,"../../lib/extend":493,"../../registry":638,"../cartesian/axes":554,"../cartesian/constants":561,"../cartesian/select":575,"../cartesian/set_convert":576,"../plots":619,"@plotly/d3":58,tinycolor2:312}],638:[function(e,o,f){var r=e("./lib/loggers"),a=e("./lib/noop"),u=e("./lib/push_unique"),c=e("./lib/is_plain_object"),i=e("./lib/dom").addStyleRule,s=e("./lib/extend"),l=e("./plots/attributes"),d=e("./plots/layout_attributes"),h=s.extendFlat,m=s.extendDeepAll;function g(_){var M=_.name,A=_.categories,S=_.meta;if(f.modules[M])r.log("Type "+M+" already registered");else{f.subplotsRegistry[_.basePlotModule.name]||function(N){var B=N.name;if(f.subplotsRegistry[B])return void r.log("Plot type "+B+" already registered.");for(var G in x(N),f.subplotsRegistry[B]=N,f.componentsRegistry)b(G,N.name)}(_.basePlotModule);for(var E={},D=0;D-1&&(v[x[d]].title={text:""});for(d=0;d")!==-1?"":E.html(O).text()});return E.remove(),D}(A),A=(A=A.replace(/&(?!\w+;|\#[0-9]+;| \#x[0-9A-F]+;)/g,"&")).replace(l,"'"),a.isIE()&&(A=(A=(A=A.replace(/"/gi,"'")).replace(/(\('#)([^']*)('\))/gi,'("#$2")')).replace(/(\\')/gi,'"')),A}},{"../components/color":366,"../components/drawing":388,"../constants/xmlns_namespaces":480,"../lib":503,"@plotly/d3":58}],647:[function(e,o,f){var r=e("../../lib");o.exports=function(a,u){for(var c=0;cO+E||!r(D))}for(var z=0;zd))return i}return s!==void 0?s:c.dflt},f.coerceColor=function(c,i,s){return a(i).isValid()?i:s!==void 0?s:c.dflt},f.coerceEnumerated=function(c,i,s){return c.coerceNumber&&(i=+i),c.values.indexOf(i)!==-1?i:s!==void 0?s:c.dflt},f.getValue=function(c,i){var s;return Array.isArray(c)?i0?ue+=le:w<0&&(ue-=le)}return ue}function U(ae){var ue=w,le=ae.b,ge=re(ae);return r.inbox(le-ue,ge-ue,R+(ge-ue)/(ge-le)-1)}var q=m[k+"a"],$=m[b+"a"];M=Math.abs(q.r2c(q.range[1])-q.r2c(q.range[0]));var ne=r.getDistanceFunction(v,T,_,function(ae){return(T(ae)+_(ae))/2});if(r.getClosest(A,ne,m),m.index!==!1&&A[m.index].p!==l){P||(K=function(ae){return Math.min(N(ae),ae.p-E.bargroupwidth/2)},te=function(ae){return Math.max(B(ae),ae.p+E.bargroupwidth/2)});var H=A[m.index],Q=S.base?H.b+H.s:H.s;m[b+"0"]=m[b+"1"]=$.c2p(H[b],!0),m[b+"LabelVal"]=Q;var ee=E.extents[E.extents.round(H.p)];m[k+"0"]=q.c2p(D?K(H):ee[0],!0),m[k+"1"]=q.c2p(D?te(H):ee[1],!0);var ie=H.orig_p!==void 0;return m[k+"LabelVal"]=ie?H.orig_p:H.p,m.labelLabel=s(q,m[k+"LabelVal"],S[k+"hoverformat"]),m.valueLabel=s($,m[b+"LabelVal"],S[b+"hoverformat"]),m.baseLabel=s($,H.b,S[b+"hoverformat"]),m.spikeDistance=(function(ae){var ue=w,le=ae.b,ge=re(ae);return r.inbox(le-ue,ge-ue,z+(ge-ue)/(ge-le)-1)}(H)+function(ae){return Y(N(ae),B(ae),z)}(H))/2,m[k+"Spike"]=q.c2p(H.p,!0),c(H,S,m),m.hovertemplate=S.hovertemplate,m}}function h(m,g){var p=g.mcc||m.marker.color,v=g.mlcc||m.marker.line.color,y=i(m,g);return u.opacity(p)?p:u.opacity(v)&&y?v:void 0}o.exports={hoverPoints:function(m,g,p,v,y){var x=d(m,g,p,v,y);if(x){var w=x.cd,k=w[0].trace,b=w[x.index];return x.color=h(k,b),a.getComponentMethod("errorbars","hoverInfo")(b,k,x),[x]}},hoverOnBars:d,getTraceColor:h}},{"../../components/color":366,"../../components/fx":406,"../../constants/numerical":479,"../../lib":503,"../../plots/cartesian/axes":554,"../../registry":638,"./helpers":654}],656:[function(e,o,f){o.exports={attributes:e("./attributes"),layoutAttributes:e("./layout_attributes"),supplyDefaults:e("./defaults").supplyDefaults,crossTraceDefaults:e("./defaults").crossTraceDefaults,supplyLayoutDefaults:e("./layout_defaults"),calc:e("./calc"),crossTraceCalc:e("./cross_trace_calc").crossTraceCalc,colorbar:e("../scatter/marker_colorbar"),arraysToCalcdata:e("./arrays_to_calcdata"),plot:e("./plot").plot,style:e("./style").style,styleOnSelect:e("./style").styleOnSelect,hoverPoints:e("./hover").hoverPoints,eventData:e("./event_data"),selectPoints:e("./select"),moduleType:"trace",name:"bar",basePlotModule:e("../../plots/cartesian"),categories:["bar-like","cartesian","svg","bar","oriented","errorBarsOK","showLegend","zoomScale"],animatable:!0,meta:{}}},{"../../plots/cartesian":568,"../scatter/marker_colorbar":945,"./arrays_to_calcdata":647,"./attributes":648,"./calc":649,"./cross_trace_calc":651,"./defaults":652,"./event_data":653,"./hover":655,"./layout_attributes":657,"./layout_defaults":658,"./plot":659,"./select":660,"./style":662}],657:[function(e,o,f){o.exports={barmode:{valType:"enumerated",values:["stack","group","overlay","relative"],dflt:"group",editType:"calc"},barnorm:{valType:"enumerated",values:["","fraction","percent"],dflt:"",editType:"calc"},bargap:{valType:"number",min:0,max:1,editType:"calc"},bargroupgap:{valType:"number",min:0,max:1,dflt:0,editType:"calc"}}},{}],658:[function(e,o,f){var r=e("../../registry"),a=e("../../plots/cartesian/axes"),u=e("../../lib"),c=e("./layout_attributes");o.exports=function(i,s,l){function d(k,b){return u.coerce(i,s,c,k,b)}for(var h=!1,m=!1,g=!1,p={},v=d("barmode"),y=0;y0}function D(z){return z==="auto"?0:z}function O(z,L){var P=Math.PI/180*L,N=Math.abs(Math.sin(P)),B=Math.abs(Math.cos(P));return{x:z.width*B+z.height*N,y:z.width*N+z.height*B}}function R(z,L,P,N,B,G){var W=!!G.isHorizontal,K=!!G.constrained,te=G.angle||0,Y=G.anchor||"end",Z=Y==="end",re=Y==="start",U=((G.leftToRight||0)+1)/2,q=1-U,$=B.width,ne=B.height,H=Math.abs(L-z),Q=Math.abs(N-P),ee=H>2*T&&Q>2*T?T:0;H-=2*ee,Q-=2*ee;var ie=D(te);te!=="auto"||$<=H&&ne<=Q||!($>H||ne>Q)||($>Q||ne>H)&&$.01?ze:function(Re,qe,We){return We&&Re===qe?Re:Math.abs(Re-qe)>=2?ze(Re):Re>qe?Math.ceil(Re):Math.floor(Re)};Oe=Fe(Oe,de,Q),de=Fe(de,Oe,Q),ye=Fe(ye,Me,!Q),Me=Fe(Me,ye,!Q)}var Ve=S(u.ensureSingle(we,"path"),te,B,G);if(Ve.style("vector-effect","non-scaling-stroke").attr("d",isNaN((de-Oe)*(Me-ye))||ke&&z._context.staticPlot?"M0,0Z":"M"+Oe+","+ye+"V"+Me+"H"+de+"V"+ye+"Z").call(s.setClipUrl,L.layerClipId,z),!te.uniformtext.mode&&ee){var Ke=s.makePointStyleFns(U);s.singlePointStyle(ge,Ve,U,Ke,z)}(function(Re,qe,We,Ye,nt,ft,vt,Pt,At,at,et){var Ot,Wt=qe.xaxis,Jt=qe.yaxis,Be=Re._fullLayout;function Ge(Kt,Ht,mn){return u.ensureSingle(Kt,"text").text(Ht).attr({class:"bartext bartext-"+Ot,"text-anchor":"middle","data-notex":1}).call(s.font,mn).call(c.convertToTspans,Re)}var Tt=Ye[0].trace,dt=Tt.orientation==="h",Pe=function(Kt,Ht,mn,zn,pn){var tn,nn=Ht[0].trace;return tn=nn.texttemplate?function(sn,gn,bn,In,Hn){var Wn=gn[0].trace,ar=u.castOption(Wn,bn,"texttemplate");if(!ar)return"";var Or,vr,Er,Kn,Ln=Wn.type==="histogram",lr=Wn.type==="waterfall",Wr=Wn.type==="funnel",Mn=Wn.orientation==="h";Mn?(Or="y",vr=Hn,Er="x",Kn=In):(Or="x",vr=In,Er="y",Kn=Hn);function rr(_i){return d(Kn,Kn.c2l(_i),!0).text}var nr=gn[bn],Bn={};Bn.label=nr.p,Bn.labelLabel=Bn[Or+"Label"]=(Fr=nr.p,d(vr,vr.c2l(Fr),!0).text);var Fr,$r=u.castOption(Wn,nr.i,"text");($r===0||$r)&&(Bn.text=$r),Bn.value=nr.s,Bn.valueLabel=Bn[Er+"Label"]=rr(nr.s);var pr={};b(pr,Wn,nr.i),(Ln||pr.x===void 0)&&(pr.x=Mn?Bn.value:Bn.label),(Ln||pr.y===void 0)&&(pr.y=Mn?Bn.label:Bn.value),(Ln||pr.xLabel===void 0)&&(pr.xLabel=Mn?Bn.valueLabel:Bn.labelLabel),(Ln||pr.yLabel===void 0)&&(pr.yLabel=Mn?Bn.labelLabel:Bn.valueLabel),lr&&(Bn.delta=+nr.rawS||nr.s,Bn.deltaLabel=rr(Bn.delta),Bn.final=nr.v,Bn.finalLabel=rr(Bn.final),Bn.initial=Bn.final-Bn.delta,Bn.initialLabel=rr(Bn.initial)),Wr&&(Bn.value=nr.s,Bn.valueLabel=rr(Bn.value),Bn.percentInitial=nr.begR,Bn.percentInitialLabel=u.formatPercent(nr.begR),Bn.percentPrevious=nr.difR,Bn.percentPreviousLabel=u.formatPercent(nr.difR),Bn.percentTotal=nr.sumR,Bn.percenTotalLabel=u.formatPercent(nr.sumR));var qr=u.castOption(Wn,nr.i,"customdata");return qr&&(Bn.customdata=qr),u.texttemplateString(ar,Bn,sn._d3locale,pr,Bn,Wn._meta||{})}(Kt,Ht,mn,zn,pn):nn.textinfo?function(sn,gn,bn,In){var Hn=sn[0].trace,Wn=Hn.orientation==="h",ar=Hn.type==="waterfall",Or=Hn.type==="funnel";function vr(qr){return d(Wn?bn:In,+qr,!0).text}var Er,Kn=Hn.textinfo,Ln=sn[gn],lr=Kn.split("+"),Wr=[],Mn=function(qr){return lr.indexOf(qr)!==-1};Mn("label")&&Wr.push((rr=sn[gn].p,d(Wn?In:bn,rr,!0).text));var rr;if(Mn("text")&&((Er=u.castOption(Hn,Ln.i,"text"))===0||Er)&&Wr.push(Er),ar){var nr=+Ln.rawS||Ln.s,Bn=Ln.v,Fr=Bn-nr;Mn("initial")&&Wr.push(vr(Fr)),Mn("delta")&&Wr.push(vr(nr)),Mn("final")&&Wr.push(vr(Bn))}if(Or){Mn("value")&&Wr.push(vr(Ln.s));var $r=0;Mn("percent initial")&&$r++,Mn("percent previous")&&$r++,Mn("percent total")&&$r++;var pr=$r>1;Mn("percent initial")&&(Er=u.formatPercent(Ln.begR),pr&&(Er+=" of initial"),Wr.push(Er)),Mn("percent previous")&&(Er=u.formatPercent(Ln.difR),pr&&(Er+=" of previous"),Wr.push(Er)),Mn("percent total")&&(Er=u.formatPercent(Ln.sumR),pr&&(Er+=" of total"),Wr.push(Er))}return Wr.join("
    ")}(Ht,mn,zn,pn):v.getValue(nn.text,mn),v.coerceString(w,tn)}(Be,Ye,nt,Wt,Jt);Ot=function(Kt,Ht){var mn=v.getValue(Kt.textposition,Ht);return v.coerceEnumerated(k,mn)}(Tt,nt);var Ie=at.mode==="stack"||at.mode==="relative",Ae=Ye[nt],De=!Ie||Ae._outmost;if(!Pe||Ot==="none"||(Ae.isBlank||ft===vt||Pt===At)&&(Ot==="auto"||Ot==="inside"))return void We.select("text").remove();var He=Be.font,rt=p.getBarColor(Ye[nt],Tt),lt=p.getInsideTextFont(Tt,nt,He,rt),ot=p.getOutsideTextFont(Tt,nt,He),kt=We.datum();dt?Wt.type==="log"&&kt.s0<=0&&(ft=Wt.range[0]=Ut*(St/tt):St>=tt*(zt/Ut);Ut>0&&tt>0&&(Dt||Le||Je)?Ot="inside":(Ot="outside",wt.remove(),wt=null)}else Ot="inside";if(!wt){bt=u.ensureUniformFontSize(Re,Ot==="outside"?ot:lt);var st=(wt=Ge(We,Pe,bt)).attr("transform");if(wt.attr("transform",""),Vt=s.bBox(wt.node()),Ut=Vt.width,tt=Vt.height,wt.attr("transform",st),Ut<=0||tt<=0)return void wt.remove()}var Et,It,Zt=Tt.textangle;Ot==="outside"?(It=Tt.constraintext==="both"||Tt.constraintext==="outside",Et=function(Kt,Ht,mn,zn,pn,tn){var nn,sn=!!tn.isHorizontal,gn=!!tn.constrained,bn=tn.angle||0,In=pn.width,Hn=pn.height,Wn=Math.abs(Ht-Kt),ar=Math.abs(zn-mn);nn=sn?ar>2*T?T:0:Wn>2*T?T:0;var Or=1;gn&&(Or=sn?Math.min(1,ar/Hn):Math.min(1,Wn/In));var vr=D(bn),Er=O(pn,vr),Kn=(sn?Er.x:Er.y)/2,Ln=(pn.left+pn.right)/2,lr=(pn.top+pn.bottom)/2,Wr=(Kt+Ht)/2,Mn=(mn+zn)/2,rr=0,nr=0,Bn=sn?A(Ht,Kt):A(mn,zn);return sn?(Wr=Ht-Bn*nn,rr=Bn*Kn):(Mn=zn+Bn*nn,nr=-Bn*Kn),{textX:Ln,textY:lr,targetX:Wr,targetY:Mn,anchorX:rr,anchorY:nr,scale:Or,rotate:vr}}(ft,vt,Pt,At,Vt,{isHorizontal:dt,constrained:It,angle:Zt})):(It=Tt.constraintext==="both"||Tt.constraintext==="inside",Et=R(ft,vt,Pt,At,Vt,{isHorizontal:dt,constrained:It,angle:Zt,anchor:Tt.insidetextanchor})),Et.fontSize=bt.size,m(Tt.type==="histogram"?"bar":Tt.type,Et,Be),Ae.transform=Et,S(wt,Be,at,et).attr("transform",u.getTextTransform(Et))})(z,L,we,Z,fe,Oe,de,ye,Me,B,G),L.layerClipId&&s.hideOutsideRangePoint(ge,we.select("text"),W,K,U.xcalendar,U.ycalendar)});var le=U.cliponaxis===!1;s.setClipUrl(re,le?null:L.layerClipId,z)});l.getComponentMethod("errorbars","plot")(z,Y,L,B)},toMoveInsideBar:R}},{"../../components/color":366,"../../components/drawing":388,"../../components/fx/helpers":402,"../../lib":503,"../../lib/svg_text_utils":529,"../../plots/cartesian/axes":554,"../../registry":638,"./attributes":648,"./constants":650,"./helpers":654,"./style":662,"./uniform_text":664,"@plotly/d3":58,"fast-isnumeric":190}],660:[function(e,o,f){function r(a,u,c,i,s){var l=u.c2p(i?a.s0:a.p0,!0),d=u.c2p(i?a.s1:a.p1,!0),h=c.c2p(i?a.p0:a.s0,!0),m=c.c2p(i?a.p1:a.s1,!0);return s?[(l+d)/2,(h+m)/2]:i?[d,(h+m)/2]:[(l+d)/2,m]}o.exports=function(a,u){var c,i=a.cd,s=a.xaxis,l=a.yaxis,d=i[0].trace,h=d.type==="funnel",m=d.orientation==="h",g=[];if(u===!1)for(c=0;c1||S.bargap===0&&S.bargroupgap===0&&!E[0].trace.marker.line.width)&&r.select(this).attr("shape-rendering","crispEdges")}),M.selectAll("g.points").each(function(E){p(r.select(this),E[0].trace,_)}),i.getComponentMethod("errorbars","style")(M)},styleTextPoints:v,styleOnSelect:function(_,M,A){var S=M[0].trace;S.selectedpoints?function(E,D,O){u.selectedPointStyle(E.selectAll("path"),D),function(R,z,L){R.each(function(P){var N,B=r.select(this);if(P.selected){N=c.ensureUniformFontSize(L,y(B,P,z,L));var G=z.selected.textfont&&z.selected.textfont.color;G&&(N.color=G),u.font(B,N)}else u.selectedTextStyle(B,z)})}(E.selectAll("text"),D,O)}(A,S,_):(p(A,S,_),i.getComponentMethod("errorbars","style")(A))},getInsideTextFont:w,getOutsideTextFont:k,getBarColor:T,resizeText:s}},{"../../components/color":366,"../../components/drawing":388,"../../lib":503,"../../registry":638,"./attributes":648,"./helpers":654,"./uniform_text":664,"@plotly/d3":58}],663:[function(e,o,f){var r=e("../../components/color"),a=e("../../components/colorscale/helpers").hasColorscale,u=e("../../components/colorscale/defaults"),c=e("../../lib").coercePattern;o.exports=function(i,s,l,d,h){var m=l("marker.color",d),g=a(i,"marker");g&&u(i,s,h,l,{prefix:"marker.",cLetter:"c"}),l("marker.line.color",r.defaultLine),a(i,"marker.line")&&u(i,s,h,l,{prefix:"marker.line.",cLetter:"c"}),l("marker.line.width"),l("marker.opacity"),c(l,"marker.pattern",m,g),l("selected.marker.color"),l("unselected.marker.color")}},{"../../components/color":366,"../../components/colorscale/defaults":376,"../../components/colorscale/helpers":377,"../../lib":503}],664:[function(e,o,f){var r=e("@plotly/d3"),a=e("../../lib");function u(c){return"_"+c+"Text_minsize"}o.exports={recordMinTextSize:function(c,i,s){if(s.uniformtext.mode){var l=u(c),d=s.uniformtext.minsize,h=i.scale*i.fontSize;i.hide=hv.range[1]&&(_+=Math.PI),r.getClosest(m,function(S){return w(T,_,[S.rp0,S.rp1],[S.thetag0,S.thetag1],x)?k+Math.min(1,Math.abs(S.thetag1-S.thetag0)/b)-1+(S.rp1-T)/(S.rp1-S.rp0)-1:1/0},l),l.index!==!1){var M=m[l.index];l.x0=l.x1=M.ct[0],l.y0=l.y1=M.ct[1];var A=a.extendFlat({},M,{r:M.s,theta:M.p});return c(M,g,l),i(A,g,p,l),l.hovertemplate=g.hovertemplate,l.color=u(g,M),l.xLabelVal=l.yLabelVal=void 0,M.s<0&&(l.idealAlign="left"),[l]}}},{"../../components/fx":406,"../../lib":503,"../../plots/polar/helpers":621,"../bar/hover":655,"../scatterpolar/hover":1006}],669:[function(e,o,f){o.exports={moduleType:"trace",name:"barpolar",basePlotModule:e("../../plots/polar"),categories:["polar","bar","showLegend"],attributes:e("./attributes"),layoutAttributes:e("./layout_attributes"),supplyDefaults:e("./defaults"),supplyLayoutDefaults:e("./layout_defaults"),calc:e("./calc").calc,crossTraceCalc:e("./calc").crossTraceCalc,plot:e("./plot"),colorbar:e("../scatter/marker_colorbar"),formatLabels:e("../scatterpolar/format_labels"),style:e("../bar/style").style,styleOnSelect:e("../bar/style").styleOnSelect,hoverPoints:e("./hover"),selectPoints:e("../bar/select"),meta:{}}},{"../../plots/polar":622,"../bar/select":660,"../bar/style":662,"../scatter/marker_colorbar":945,"../scatterpolar/format_labels":1005,"./attributes":665,"./calc":666,"./defaults":667,"./hover":668,"./layout_attributes":670,"./layout_defaults":671,"./plot":672}],670:[function(e,o,f){o.exports={barmode:{valType:"enumerated",values:["stack","overlay"],dflt:"stack",editType:"calc"},bargap:{valType:"number",dflt:.1,min:0,max:1,editType:"calc"}}},{}],671:[function(e,o,f){var r=e("../../lib"),a=e("./layout_attributes");o.exports=function(u,c,i){var s,l={};function d(g,p){return r.coerce(u[s]||{},c[s],a,g,p)}for(var h=0;h0?(A=_,S=M):(A=M,S=_);var E=[i.findEnclosingVertexAngles(A,x.vangles)[0],(A+S)/2,i.findEnclosingVertexAngles(S,x.vangles)[1]];return i.pathPolygonAnnulus(b,T,A,S,E,w,k)}:function(b,T,_,M){return u.pathAnnulus(b,T,_,M,w,k)}}(l),y=l.layers.frontplot.select("g.barlayer");u.makeTraceGroups(y,d,"trace bars").each(function(){var x=r.select(this),w=u.ensureSingle(x,"g","points").selectAll("g.point").data(u.identity);w.enter().append("g").style("vector-effect","non-scaling-stroke").style("stroke-miterlimit",2).classed("point",!0),w.exit().remove(),w.each(function(k){var b,T=r.select(this),_=k.rp0=g.c2p(k.s0),M=k.rp1=g.c2p(k.s1),A=k.thetag0=p.c2g(k.p0),S=k.thetag1=p.c2g(k.p1);if(a(_)&&a(M)&&a(A)&&a(S)&&_!==M&&A!==S){var E=g.c2g(k.s1),D=(A+S)/2;k.ct=[h.c2p(E*Math.cos(D)),m.c2p(E*Math.sin(D))],b=v(_,M,A,S)}else b="M0,0Z";u.ensureSingle(T,"path").attr("d",b)}),c.setClipUrl(x,l._hasClipOnAxisFalse?l.clipIds.forTraces:null,s)})}},{"../../components/drawing":388,"../../lib":503,"../../plots/polar/helpers":621,"@plotly/d3":58,"fast-isnumeric":190}],673:[function(e,o,f){var r=e("../scatter/attributes"),a=e("../bar/attributes"),u=e("../../components/color/attributes"),c=e("../../plots/cartesian/axis_format_attributes").axisHoverFormat,i=e("../../plots/template_attributes").hovertemplateAttrs,s=e("../../lib/extend").extendFlat,l=r.marker,d=l.line;o.exports={y:{valType:"data_array",editType:"calc+clearAxisTypes"},x:{valType:"data_array",editType:"calc+clearAxisTypes"},x0:{valType:"any",editType:"calc+clearAxisTypes"},y0:{valType:"any",editType:"calc+clearAxisTypes"},dx:{valType:"number",editType:"calc"},dy:{valType:"number",editType:"calc"},xperiod:r.xperiod,yperiod:r.yperiod,xperiod0:r.xperiod0,yperiod0:r.yperiod0,xperiodalignment:r.xperiodalignment,yperiodalignment:r.yperiodalignment,xhoverformat:c("x"),yhoverformat:c("y"),name:{valType:"string",editType:"calc+clearAxisTypes"},q1:{valType:"data_array",editType:"calc+clearAxisTypes"},median:{valType:"data_array",editType:"calc+clearAxisTypes"},q3:{valType:"data_array",editType:"calc+clearAxisTypes"},lowerfence:{valType:"data_array",editType:"calc"},upperfence:{valType:"data_array",editType:"calc"},notched:{valType:"boolean",editType:"calc"},notchwidth:{valType:"number",min:0,max:.5,dflt:.25,editType:"calc"},notchspan:{valType:"data_array",editType:"calc"},boxpoints:{valType:"enumerated",values:["all","outliers","suspectedoutliers",!1],editType:"calc"},jitter:{valType:"number",min:0,max:1,editType:"calc"},pointpos:{valType:"number",min:-2,max:2,editType:"calc"},boxmean:{valType:"enumerated",values:[!0,"sd",!1],editType:"calc"},mean:{valType:"data_array",editType:"calc"},sd:{valType:"data_array",editType:"calc"},orientation:{valType:"enumerated",values:["v","h"],editType:"calc+clearAxisTypes"},quartilemethod:{valType:"enumerated",values:["linear","exclusive","inclusive"],dflt:"linear",editType:"calc"},width:{valType:"number",min:0,dflt:0,editType:"calc"},marker:{outliercolor:{valType:"color",dflt:"rgba(0, 0, 0, 0)",editType:"style"},symbol:s({},l.symbol,{arrayOk:!1,editType:"plot"}),opacity:s({},l.opacity,{arrayOk:!1,dflt:1,editType:"style"}),size:s({},l.size,{arrayOk:!1,editType:"calc"}),color:s({},l.color,{arrayOk:!1,editType:"style"}),line:{color:s({},d.color,{arrayOk:!1,dflt:u.defaultLine,editType:"style"}),width:s({},d.width,{arrayOk:!1,dflt:0,editType:"style"}),outliercolor:{valType:"color",editType:"style"},outlierwidth:{valType:"number",min:0,dflt:1,editType:"style"},editType:"style"},editType:"plot"},line:{color:{valType:"color",editType:"style"},width:{valType:"number",min:0,dflt:2,editType:"style"},editType:"plot"},fillcolor:r.fillcolor,whiskerwidth:{valType:"number",min:0,max:1,dflt:.5,editType:"calc"},offsetgroup:a.offsetgroup,alignmentgroup:a.alignmentgroup,selected:{marker:r.selected.marker,editType:"style"},unselected:{marker:r.unselected.marker,editType:"style"},text:s({},r.text,{}),hovertext:s({},r.hovertext,{}),hovertemplate:i({}),hoveron:{valType:"flaglist",flags:["boxes","points"],dflt:"boxes+points",editType:"style"}}},{"../../components/color/attributes":365,"../../lib/extend":493,"../../plots/cartesian/axis_format_attributes":557,"../../plots/template_attributes":633,"../bar/attributes":648,"../scatter/attributes":927}],674:[function(e,o,f){var r=e("fast-isnumeric"),a=e("../../plots/cartesian/axes"),u=e("../../plots/cartesian/align_period"),c=e("../../lib"),i=e("../../constants/numerical").BADNUM,s=c._;o.exports=function(w,k){var b,T,_,M,A,S,E,D=w._fullLayout,O=a.getFromId(w,k.xaxis||"x"),R=a.getFromId(w,k.yaxis||"y"),z=[],L=k.type==="violin"?"_numViolins":"_numBoxes";k.orientation==="h"?(_=O,M="x",A=R,S="y",E=!!k.yperiodalignment):(_=R,M="y",A=O,S="x",E=!!k.xperiodalignment);var P,N,B,G,W,K,te=function(We,Ye,nt,ft){var vt,Pt=Ye+"0"in We,At="d"+Ye in We;if(Ye in We||Pt&&At){var at=nt.makeCalcdata(We,Ye);return[u(We,nt,Ye,at).vals,at]}vt=Pt?We[Ye+"0"]:"name"in We&&(nt.type==="category"||r(We.name)&&["linear","log"].indexOf(nt.type)!==-1||c.isDateTime(We.name)&&nt.type==="date")?We.name:ft;for(var et=nt.type==="multicategory"?nt.r2c_just_indices(vt):nt.d2c(vt,0,We[Ye+"calendar"]),Ot=We._length,Wt=new Array(Ot),Jt=0;JtP.uf};if(k._hasPreCompStats){var ne=k[M],H=function(We){return _.d2c((k[We]||[])[b])},Q=1/0,ee=-1/0;for(b=0;b=P.q1&&P.q3>=P.med){var ae=H("lowerfence");P.lf=ae!==i&&ae<=P.q1?ae:g(P,B,G);var ue=H("upperfence");P.uf=ue!==i&&ue>=P.q3?ue:p(P,B,G);var le=H("mean");P.mean=le!==i?le:G?c.mean(B,G):(P.q1+P.q3)/2;var ge=H("sd");P.sd=le!==i&&ge>=0?ge:G?c.stdev(B,G,P.mean):P.q3-P.q1,P.lo=v(P),P.uo=y(P);var fe=H("notchspan");fe=fe!==i&&fe>0?fe:x(P,G),P.ln=P.med-fe,P.un=P.med+fe;var me=P.lf,_e=P.uf;k.boxpoints&&B.length&&(me=Math.min(me,B[0]),_e=Math.max(_e,B[G-1])),k.notched&&(me=Math.min(me,P.ln),_e=Math.max(_e,P.un)),P.min=me,P.max=_e}else{var we;c.warn(["Invalid input - make sure that q1 <= median <= q3","q1 = "+P.q1,"median = "+P.med,"q3 = "+P.q3].join(` +`)),we=P.med!==i?P.med:P.q1!==i?P.q3!==i?(P.q1+P.q3)/2:P.q1:P.q3!==i?P.q3:0,P.med=we,P.q1=P.q3=we,P.lf=P.uf=we,P.mean=P.sd=we,P.ln=P.un=we,P.min=P.max=we}Q=Math.min(Q,P.min),ee=Math.max(ee,P.max),P.pts2=N.filter($),z.push(P)}}k._extremes[_._id]=a.findExtremes(_,[Q,ee],{padded:!0})}else{var Te=_.makeCalcdata(k,M),Oe=function(We,Ye){for(var nt=We.length,ft=new Array(nt+1),vt=0;vt=0&&Me0){var Ke,Re;(P={}).pos=P[S]=U[b],N=P.pts=ye[b].sort(h),G=(B=P[M]=N.map(m)).length,P.min=B[0],P.max=B[G-1],P.mean=c.mean(B,G),P.sd=c.stdev(B,G,P.mean),P.med=c.interp(B,.5),G%2&&(Fe||Ve)?(Fe?(Ke=B.slice(0,G/2),Re=B.slice(G/2+1)):Ve&&(Ke=B.slice(0,G/2+1),Re=B.slice(G/2)),P.q1=c.interp(Ke,.5),P.q3=c.interp(Re,.5)):(P.q1=c.interp(B,.25),P.q3=c.interp(B,.75)),P.lf=g(P,B,G),P.uf=p(P,B,G),P.lo=v(P),P.uo=y(P);var qe=x(P,G);P.ln=P.med-qe,P.un=P.med+qe,ke=Math.min(ke,P.ln),Ee=Math.max(Ee,P.un),P.pts2=N.filter($),z.push(P)}k._extremes[_._id]=a.findExtremes(_,k.notched?Te.concat([ke,Ee]):Te,{padded:!0})}return function(We,Ye){if(c.isArrayOrTypedArray(Ye.selectedpoints))for(var nt=0;nt0?(z[0].t={num:D[L],dPos:q,posLetter:S,valLetter:M,labels:{med:s(w,"median:"),min:s(w,"min:"),q1:s(w,"q1:"),q3:s(w,"q3:"),max:s(w,"max:"),mean:k.boxmean==="sd"?s(w,"mean \xB1 \u03C3:"):s(w,"mean:"),lf:s(w,"lower fence:"),uf:s(w,"upper fence:")}},D[L]++,z):[{t:{empty:!0}}]};var l={text:"tx",hovertext:"htx"};function d(w,k,b){for(var T in l)c.isArrayOrTypedArray(k[T])&&(Array.isArray(b)?c.isArrayOrTypedArray(k[T][b[0]])&&(w[l[T]]=k[T][b[0]][b[1]]):w[l[T]]=k[T][b])}function h(w,k){return w.v-k.v}function m(w){return w.v}function g(w,k,b){return b===0?w.q1:Math.min(w.q1,k[Math.min(c.findBin(2.5*w.q1-1.5*w.q3,k,!0)+1,b-1)])}function p(w,k,b){return b===0?w.q3:Math.max(w.q3,k[Math.max(c.findBin(2.5*w.q3-1.5*w.q1,k),0)])}function v(w){return 4*w.q1-3*w.q3}function y(w){return 4*w.q3-3*w.q1}function x(w,k){return k===0?0:1.57*(w.q3-w.q1)/Math.sqrt(k)}},{"../../constants/numerical":479,"../../lib":503,"../../plots/cartesian/align_period":551,"../../plots/cartesian/axes":554,"fast-isnumeric":190}],675:[function(e,o,f){var r=e("../../plots/cartesian/axes"),a=e("../../lib"),u=e("../../plots/cartesian/constraints").getAxisGroup,c=["v","h"];function i(s,l,d,h){var m,g,p,v=l.calcdata,y=l._fullLayout,x=h._id,w=x.charAt(0),k=[],b=0;for(m=0;m1,S=1-y[s+"gap"],E=1-y[s+"groupgap"];for(m=0;m0){var ie=N.pointpos,ae=N.jitter,ue=N.marker.size/2,le=0;ie+ae>=0&&((le=Q*(ie+ae))>L?(ee=!0,ne=ue,q=le):le>re&&(ne=ue,q=L)),le<=L&&(q=L);var ge=0;ie-ae<=0&&((ge=-Q*(ie-ae))>P?(ee=!0,H=ue,$=ge):ge>U&&(H=ue,$=P)),ge<=P&&($=P)}else q=L,$=P;var fe=new Array(p.length);for(g=0;g0?(A="v",S=D>0?Math.min(R,O):Math.min(O)):D>0?(A="h",S=Math.min(R)):S=0;if(S){g._length=S;var G=p("orientation",A);g._hasPreCompStats?G==="v"&&D===0?(p("x0",0),p("dx",1)):G==="h"&&E===0&&(p("y0",0),p("dy",1)):G==="v"&&D===0?p("x0"):G==="h"&&E===0&&p("y0"),a.getComponentMethod("calendars","handleTraceDefaults")(m,g,["x","y"],v)}else g.visible=!1}function h(m,g,p,v){var y=v.prefix,x=r.coerce2(m,g,l,"marker.outliercolor"),w=p("marker.line.outliercolor"),k="outliers";g._hasPreCompStats?k="all":(x||w)&&(k="suspectedoutliers");var b=p(y+"points",k);b?(p("jitter",b==="all"?.3:0),p("pointpos",b==="all"?-1.5:0),p("marker.symbol"),p("marker.opacity"),p("marker.size"),p("marker.color",g.line.color),p("marker.line.color"),p("marker.line.width"),b==="suspectedoutliers"&&(p("marker.line.outliercolor",g.marker.color),p("marker.line.outlierwidth")),p("selected.marker.color"),p("unselected.marker.color"),p("selected.marker.size"),p("unselected.marker.size"),p("text"),p("hovertext")):delete g.marker;var T=p("hoveron");T!=="all"&&T.indexOf("points")===-1||p("hovertemplate"),r.coerceSelectionMarkerOpacity(g,p)}o.exports={supplyDefaults:function(m,g,p,v){function y(M,A){return r.coerce(m,g,l,M,A)}if(d(m,g,y,v),g.visible!==!1){c(m,g,v,y),y("xhoverformat"),y("yhoverformat");var x=g._hasPreCompStats;x&&(y("lowerfence"),y("upperfence")),y("line.color",(m.marker||{}).color||p),y("line.width"),y("fillcolor",u.addOpacity(g.line.color,.5));var w=!1;if(x){var k=y("mean"),b=y("sd");k&&k.length&&(w=!0,b&&b.length&&(w="sd"))}y("boxmean",w),y("whiskerwidth"),y("width"),y("quartilemethod");var T=!1;if(x){var _=y("notchspan");_&&_.length&&(T=!0)}else r.validate(m.notchwidth,l.notchwidth)&&(T=!0);y("notched",T)&&y("notchwidth"),h(m,g,y,{prefix:"box"})}},crossTraceDefaults:function(m,g){var p,v;function y(k){return r.coerce(v._input,v,l,k)}for(var x=0;xb.lo&&(B.so=!0)}return M});k.enter().append("path").classed("point",!0),k.exit().remove(),k.call(u.translatePoints,g,p)}function s(l,d,h,m){var g,p,v=d.val,y=d.pos,x=!!y.rangebreaks,w=m.bPos,k=m.bPosPxOffset||0,b=h.boxmean||(h.meanline||{}).visible;Array.isArray(m.bdPos)?(g=m.bdPos[0],p=m.bdPos[1]):(g=m.bdPos,p=m.bdPos);var T=l.selectAll("path.mean").data(h.type==="box"&&h.boxmean||h.type==="violin"&&h.box.visible&&h.meanline.visible?a.identity:[]);T.enter().append("path").attr("class","mean").style({fill:"none","vector-effect":"non-scaling-stroke"}),T.exit().remove(),T.each(function(_){var M=y.c2l(_.pos+w,!0),A=y.l2p(M-g)+k,S=y.l2p(M+p)+k,E=x?(A+S)/2:y.l2p(M)+k,D=v.c2p(_.mean,!0),O=v.c2p(_.mean-_.sd,!0),R=v.c2p(_.mean+_.sd,!0);h.orientation==="h"?r.select(this).attr("d","M"+D+","+A+"V"+S+(b==="sd"?"m0,0L"+O+","+E+"L"+D+","+A+"L"+R+","+E+"Z":"")):r.select(this).attr("d","M"+A+","+D+"H"+S+(b==="sd"?"m0,0L"+E+","+O+"L"+A+","+D+"L"+E+","+R+"Z":""))})}o.exports={plot:function(l,d,h,m){var g=d.xaxis,p=d.yaxis;a.makeTraceGroups(m,h,"trace boxes").each(function(v){var y,x,w=r.select(this),k=v[0],b=k.t,T=k.trace;b.wdPos=b.bdPos*T.whiskerwidth,T.visible!==!0||b.empty?w.remove():(T.orientation==="h"?(y=p,x=g):(y=g,x=p),c(w,{pos:y,val:x},T,b),i(w,{x:g,y:p},T,b),s(w,{pos:y,val:x},T,b))})},plotBoxAndWhiskers:c,plotPoints:i,plotBoxMean:s}},{"../../components/drawing":388,"../../lib":503,"@plotly/d3":58}],683:[function(e,o,f){o.exports=function(r,a){var u,c,i=r.cd,s=r.xaxis,l=r.yaxis,d=[];if(a===!1)for(u=0;u=10)return null;for(var s=1/0,l=-1/0,d=c.length,h=0;h0?Math.floor:Math.ceil,G=P>0?Math.ceil:Math.floor,W=P>0?Math.min:Math.max,K=P>0?Math.max:Math.min,te=B(z+N),Y=G(L-N),Z=[[p=R(z)]];for(s=te;s*P=0;i--)s[g-i]=r[p][i],l[g-i]=a[p][i];for(d.push({x:s,y:l,bicubic:h}),i=p,s=[],l=[];i>=0;i--)s[p-i]=r[i][0],l[p-i]=a[i][0];return d.push({x:s,y:l,bicubic:m}),d}},{}],697:[function(e,o,f){var r=e("../../plots/cartesian/axes"),a=e("../../lib/extend").extendFlat;o.exports=function(u,c,i){var s,l,d,h,m,g,p,v,y,x,w,k,b,T,_=u["_"+c],M=u[c+"axis"],A=M._gridlines=[],S=M._minorgridlines=[],E=M._boundarylines=[],D=u["_"+i],O=u[i+"axis"];M.tickmode==="array"&&(M.tickvals=_.slice());var R=u._xctrl,z=u._yctrl,L=R[0].length,P=R.length,N=u._a.length,B=u._b.length;r.prepTicks(M),M.tickmode==="array"&&delete M.tickvals;var G=M.smoothing?3:1;function W(te){var Y,Z,re,U,q,$,ne,H,Q,ee,ie,ae,ue=[],le=[],ge={};if(c==="b")for(Z=u.b2j(te),re=Math.floor(Math.max(0,Math.min(B-2,Z))),U=Z-re,ge.length=B,ge.crossLength=N,ge.xy=function(fe){return u.evalxy([],fe,Z)},ge.dxy=function(fe,me){return u.dxydi([],fe,re,me,U)},Y=0;Y0&&(Q=u.dxydi([],Y-1,re,0,U),ue.push(q[0]+Q[0]/3),le.push(q[1]+Q[1]/3),ee=u.dxydi([],Y-1,re,1,U),ue.push(H[0]-ee[0]/3),le.push(H[1]-ee[1]/3)),ue.push(H[0]),le.push(H[1]),q=H;else for(Y=u.a2i(te),$=Math.floor(Math.max(0,Math.min(N-2,Y))),ne=Y-$,ge.length=N,ge.crossLength=B,ge.xy=function(fe){return u.evalxy([],Y,fe)},ge.dxy=function(fe,me){return u.dxydj([],$,fe,ne,me)},Z=0;Z0&&(ie=u.dxydj([],$,Z-1,ne,0),ue.push(q[0]+ie[0]/3),le.push(q[1]+ie[1]/3),ae=u.dxydj([],$,Z-1,ne,1),ue.push(H[0]-ae[0]/3),le.push(H[1]-ae[1]/3)),ue.push(H[0]),le.push(H[1]),q=H;return ge.axisLetter=c,ge.axis=M,ge.crossAxis=O,ge.value=te,ge.constvar=i,ge.index=v,ge.x=ue,ge.y=le,ge.smoothing=O.smoothing,ge}function K(te){var Y,Z,re,U,q,$=[],ne=[],H={};if(H.length=_.length,H.crossLength=D.length,c==="b")for(re=Math.max(0,Math.min(B-2,te)),q=Math.min(1,Math.max(0,te-re)),H.xy=function(Q){return u.evalxy([],Q,te)},H.dxy=function(Q,ee){return u.dxydi([],Q,re,ee,q)},Y=0;Y_.length-1||A.push(a(K(l),{color:M.gridcolor,width:M.gridwidth}));for(v=g;v_.length-1||w<0||w>_.length-1))for(k=_[d],b=_[w],s=0;s_[_.length-1]||S.push(a(W(x),{color:M.minorgridcolor,width:M.minorgridwidth}));M.startline&&E.push(a(K(0),{color:M.startlinecolor,width:M.startlinewidth})),M.endline&&E.push(a(K(_.length-1),{color:M.endlinecolor,width:M.endlinewidth}))}else{for(h=5e-15,g=(m=[Math.floor((_[_.length-1]-M.tick0)/M.dtick*(1+h)),Math.ceil((_[0]-M.tick0)/M.dtick/(1+h))].sort(function(te,Y){return te-Y}))[0],p=m[1],v=g;v<=p;v++)y=M.tick0+M.dtick*v,A.push(a(W(y),{color:M.gridcolor,width:M.gridwidth}));for(v=g-1;v_[_.length-1]||S.push(a(W(x),{color:M.minorgridcolor,width:M.minorgridwidth}));M.startline&&E.push(a(W(_[0]),{color:M.startlinecolor,width:M.startlinewidth})),M.endline&&E.push(a(W(_[_.length-1]),{color:M.endlinecolor,width:M.endlinewidth}))}}},{"../../lib/extend":493,"../../plots/cartesian/axes":554}],698:[function(e,o,f){var r=e("../../plots/cartesian/axes"),a=e("../../lib/extend").extendFlat;o.exports=function(u,c){var i,s,l,d=c._labels=[],h=c._gridlines;for(i=0;iu.length&&(a=a.slice(0,u.length)):a=[],i=0;i90&&(y-=180,h=-h),{angle:y,flip:h,p:r.c2p(c,a,u),offsetMultplier:m}}},{}],712:[function(e,o,f){var r=e("@plotly/d3"),a=e("../../components/drawing"),u=e("./map_1d_array"),c=e("./makepath"),i=e("./orient_text"),s=e("../../lib/svg_text_utils"),l=e("../../lib"),d=l.strRotate,h=l.strTranslate,m=e("../../constants/alignment");function g(w,k,b,T,_,M){var A="const-"+_+"-lines",S=b.selectAll("."+A).data(M);S.enter().append("path").classed(A,!0).style("vector-effect","non-scaling-stroke"),S.each(function(E){var D=E,O=D.x,R=D.y,z=u([],O,w.c2p),L=u([],R,k.c2p),P="M"+c(z,L,D.smoothing);r.select(this).attr("d",P).style("stroke-width",D.width).style("stroke",D.color).style("fill","none")}),S.exit().remove()}function p(w,k,b,T,_,M,A,S){var E=M.selectAll("text."+S).data(A);E.enter().append("text").classed(S,!0);var D=0,O={};return E.each(function(R,z){var L;if(R.axis.tickangle==="auto")L=i(T,k,b,R.xy,R.dxy);else{var P=(R.axis.tickangle+180)*Math.PI/180;L=i(T,k,b,R.xy,[Math.cos(P),Math.sin(P)])}z||(O={angle:L.angle,flip:L.flip});var N=(R.endAnchor?-1:1)*L.flip,B=r.select(this).attr({"text-anchor":N>0?"start":"end","data-notex":1}).call(a.font,R.font).text(R.text).call(s.convertToTspans,w),G=a.bBox(this);B.attr("transform",h(L.p[0],L.p[1])+d(L.angle)+h(R.axis.labelpadding*N,.3*G.height)),D=Math.max(D,G.width+R.axis.labelpadding)}),E.exit().remove(),O.maxExtent=D,O}o.exports=function(w,k,b,T){var _=k.xaxis,M=k.yaxis,A=w._fullLayout._clips;l.makeTraceGroups(T,b,"trace").each(function(S){var E=r.select(this),D=S[0],O=D.trace,R=O.aaxis,z=O.baxis,L=l.ensureSingle(E,"g","minorlayer"),P=l.ensureSingle(E,"g","majorlayer"),N=l.ensureSingle(E,"g","boundarylayer"),B=l.ensureSingle(E,"g","labellayer");E.style("opacity",O.opacity),g(_,M,P,R,"a",R._gridlines),g(_,M,P,z,"b",z._gridlines),g(_,M,L,R,"a",R._minorgridlines),g(_,M,L,z,"b",z._minorgridlines),g(_,M,N,R,"a-boundary",R._boundarylines),g(_,M,N,z,"b-boundary",z._boundarylines);var G=p(w,_,M,O,D,B,R._labels,"a-label"),W=p(w,_,M,O,D,B,z._labels,"b-label");(function(K,te,Y,Z,re,U,q,$){var ne,H,Q,ee,ie=l.aggNums(Math.min,null,Y.a),ae=l.aggNums(Math.max,null,Y.a),ue=l.aggNums(Math.min,null,Y.b),le=l.aggNums(Math.max,null,Y.b);ne=.5*(ie+ae),H=ue,Q=Y.ab2xy(ne,H,!0),ee=Y.dxyda_rough(ne,H),q.angle===void 0&&l.extendFlat(q,i(Y,re,U,Q,Y.dxydb_rough(ne,H))),x(K,te,Y,Z,Q,ee,Y.aaxis,re,U,q,"a-title"),ne=ie,H=.5*(ue+le),Q=Y.ab2xy(ne,H,!0),ee=Y.dxydb_rough(ne,H),$.angle===void 0&&l.extendFlat($,i(Y,re,U,Q,Y.dxyda_rough(ne,H))),x(K,te,Y,Z,Q,ee,Y.baxis,re,U,$,"b-title")})(w,B,O,D,_,M,G,W),function(K,te,Y,Z,re){var U,q,$,ne,H=Y.select("#"+K._clipPathId);H.size()||(H=Y.append("clipPath").classed("carpetclip",!0));var Q=l.ensureSingle(H,"path","carpetboundary"),ee=te.clipsegments,ie=[];for(ne=0;ne90&&B<270,W=r.select(this);W.text(A.title.text).call(s.convertToTspans,w),G&&(L=(-s.lineCount(W)+y)*v*N-L),W.attr("transform",h(P.p[0],P.p[1])+d(P.angle)+h(0,L)).attr("text-anchor","middle").call(a.font,A.title.font)}),z.exit().remove()}},{"../../components/drawing":388,"../../constants/alignment":471,"../../lib":503,"../../lib/svg_text_utils":529,"./makepath":709,"./map_1d_array":710,"./orient_text":711,"@plotly/d3":58}],713:[function(e,o,f){var r=e("./constants"),a=e("../../lib/search").findBin,u=e("./compute_control_points"),c=e("./create_spline_evaluator"),i=e("./create_i_derivative_evaluator"),s=e("./create_j_derivative_evaluator");o.exports=function(l){var d=l._a,h=l._b,m=d.length,g=h.length,p=l.aaxis,v=l.baxis,y=d[0],x=d[m-1],w=h[0],k=h[g-1],b=d[d.length-1]-d[0],T=h[h.length-1]-h[0],_=b*r.RELATIVE_CULL_TOLERANCE,M=T*r.RELATIVE_CULL_TOLERANCE;y-=_,x+=_,w-=M,k+=M,l.isVisible=function(A,S){return A>y&&Aw&&Sx||Sk},l.setScale=function(){var A=l._x,S=l._y,E=u(l._xctrl,l._yctrl,A,S,p.smoothing,v.smoothing);l._xctrl=E[0],l._yctrl=E[1],l.evalxy=c([l._xctrl,l._yctrl],m,g,p.smoothing,v.smoothing),l.dxydi=i([l._xctrl,l._yctrl],p.smoothing,v.smoothing),l.dxydj=s([l._xctrl,l._yctrl],p.smoothing,v.smoothing)},l.i2a=function(A){var S=Math.max(0,Math.floor(A[0]),m-2),E=A[0]-S;return(1-E)*d[S]+E*d[S+1]},l.j2b=function(A){var S=Math.max(0,Math.floor(A[1]),m-2),E=A[1]-S;return(1-E)*h[S]+E*h[S+1]},l.ij2ab=function(A){return[l.i2a(A[0]),l.j2b(A[1])]},l.a2i=function(A){var S=Math.max(0,Math.min(a(A,d),m-2)),E=d[S],D=d[S+1];return Math.max(0,Math.min(m-1,S+(A-E)/(D-E)))},l.b2j=function(A){var S=Math.max(0,Math.min(a(A,h),g-2)),E=h[S],D=h[S+1];return Math.max(0,Math.min(g-1,S+(A-E)/(D-E)))},l.ab2ij=function(A){return[l.a2i(A[0]),l.b2j(A[1])]},l.i2c=function(A,S){return l.evalxy([],A,S)},l.ab2xy=function(A,S,E){if(!E&&(Ad[m-1]|Sh[g-1]))return[!1,!1];var D=l.a2i(A),O=l.b2j(S),R=l.evalxy([],D,O);if(E){var z,L,P,N,B=0,G=0,W=[];Ad[m-1]?(z=m-2,L=1,B=(A-d[m-1])/(d[m-1]-d[m-2])):L=D-(z=Math.max(0,Math.min(m-2,Math.floor(D)))),Sh[g-1]?(P=g-2,N=1,G=(S-h[g-1])/(h[g-1]-h[g-2])):N=O-(P=Math.max(0,Math.min(g-2,Math.floor(O)))),B&&(l.dxydi(W,z,P,L,N),R[0]+=W[0]*B,R[1]+=W[1]*B),G&&(l.dxydj(W,z,P,L,N),R[0]+=W[0]*G,R[1]+=W[1]*G)}return R},l.c2p=function(A,S,E){return[S.c2p(A[0]),E.c2p(A[1])]},l.p2x=function(A,S,E){return[S.p2c(A[0]),E.p2c(A[1])]},l.dadi=function(A){var S=Math.max(0,Math.min(d.length-2,A));return d[S+1]-d[S]},l.dbdj=function(A){var S=Math.max(0,Math.min(h.length-2,A));return h[S+1]-h[S]},l.dxyda=function(A,S,E,D){var O=l.dxydi(null,A,S,E,D),R=l.dadi(A,E);return[O[0]/R,O[1]/R]},l.dxydb=function(A,S,E,D){var O=l.dxydj(null,A,S,E,D),R=l.dbdj(S,D);return[O[0]/R,O[1]/R]},l.dxyda_rough=function(A,S,E){var D=b*(E||.1),O=l.ab2xy(A+D,S,!0),R=l.ab2xy(A-D,S,!0);return[.5*(O[0]-R[0])/D,.5*(O[1]-R[1])/D]},l.dxydb_rough=function(A,S,E){var D=T*(E||.1),O=l.ab2xy(A,S+D,!0),R=l.ab2xy(A,S-D,!0);return[.5*(O[0]-R[0])/D,.5*(O[1]-R[1])/D]},l.dpdx=function(A){return A._m},l.dpdy=function(A){return A._m}}},{"../../lib/search":523,"./compute_control_points":701,"./constants":702,"./create_i_derivative_evaluator":703,"./create_j_derivative_evaluator":704,"./create_spline_evaluator":705}],714:[function(e,o,f){var r=e("../../lib");o.exports=function(a,u,c){var i,s,l,d=[],h=[],m=a[0].length,g=a.length;function p(te,Y){var Z,re=0,U=0;return te>0&&(Z=a[Y][te-1])!==void 0&&(U++,re+=Z),te0&&(Z=a[Y-1][te])!==void 0&&(U++,re+=Z),Y0&&s0&&i1e-5);return r.log("Smoother converged to",D,"after",O,"iterations"),a}},{"../../lib":503}],715:[function(e,o,f){var r=e("../../lib").isArray1D;o.exports=function(a,u,c){var i=c("x"),s=i&&i.length,l=c("y"),d=l&&l.length;if(!s&&!d)return!1;if(u._cheater=!i,s&&!r(i)||d&&!r(l))u._length=null;else{var h=s?i.length:1/0;d&&(h=Math.min(h,l.length)),u.a&&u.a.length&&(h=Math.min(h,u.a.length)),u.b&&u.b.length&&(h=Math.min(h,u.b.length)),u._length=h}return!0}},{"../../lib":503}],716:[function(e,o,f){var r=e("../../plots/template_attributes").hovertemplateAttrs,a=e("../scattergeo/attributes"),u=e("../../components/colorscale/attributes"),c=e("../../plots/attributes"),i=e("../../components/color/attributes").defaultLine,s=e("../../lib/extend").extendFlat,l=a.marker.line;o.exports=s({locations:{valType:"data_array",editType:"calc"},locationmode:a.locationmode,z:{valType:"data_array",editType:"calc"},geojson:s({},a.geojson,{}),featureidkey:a.featureidkey,text:s({},a.text,{}),hovertext:s({},a.hovertext,{}),marker:{line:{color:s({},l.color,{dflt:i}),width:s({},l.width,{dflt:1}),editType:"calc"},opacity:{valType:"number",arrayOk:!0,min:0,max:1,dflt:1,editType:"style"},editType:"calc"},selected:{marker:{opacity:a.selected.marker.opacity,editType:"plot"},editType:"plot"},unselected:{marker:{opacity:a.unselected.marker.opacity,editType:"plot"},editType:"plot"},hoverinfo:s({},c.hoverinfo,{editType:"calc",flags:["location","z","text","name"]}),hovertemplate:r(),showlegend:s({},c.showlegend,{dflt:!1})},u("",{cLetter:"z",editTypeOverride:"calc"}))},{"../../components/color/attributes":365,"../../components/colorscale/attributes":373,"../../lib/extend":493,"../../plots/attributes":550,"../../plots/template_attributes":633,"../scattergeo/attributes":969}],717:[function(e,o,f){var r=e("fast-isnumeric"),a=e("../../constants/numerical").BADNUM,u=e("../../components/colorscale/calc"),c=e("../scatter/arrays_to_calcdata"),i=e("../scatter/calc_selection");function s(l){return l&&typeof l=="string"}o.exports=function(l,d){var h,m=d._length,g=new Array(m);h=d.geojson?function(w){return s(w)||r(w)}:s;for(var p=0;p")}}(c,p,l),[c]}},{"../../lib":503,"../../plots/cartesian/axes":554,"./attributes":716}],721:[function(e,o,f){o.exports={attributes:e("./attributes"),supplyDefaults:e("./defaults"),colorbar:e("../heatmap/colorbar"),calc:e("./calc"),calcGeoJSON:e("./plot").calcGeoJSON,plot:e("./plot").plot,style:e("./style").style,styleOnSelect:e("./style").styleOnSelect,hoverPoints:e("./hover"),eventData:e("./event_data"),selectPoints:e("./select"),moduleType:"trace",name:"choropleth",basePlotModule:e("../../plots/geo"),categories:["geo","noOpacity","showLegend"],meta:{}}},{"../../plots/geo":589,"../heatmap/colorbar":795,"./attributes":716,"./calc":717,"./defaults":718,"./event_data":719,"./hover":720,"./plot":722,"./select":723,"./style":724}],722:[function(e,o,f){var r=e("@plotly/d3"),a=e("../../lib"),u=e("../../lib/geo_location_utils"),c=e("../../lib/topojson_utils").getTopojsonFeatures,i=e("../../plots/cartesian/autorange").findExtremes,s=e("./style").style;o.exports={calcGeoJSON:function(l,d){for(var h=l[0].trace,m=d[h.geo],g=m._subplot,p=h.locationmode,v=h._length,y=p==="geojson-id"?u.extractTraceFeature(l):c(h,g.topojson),x=[],w=[],k=0;k=0;c--){var i=u[c].id;if(typeof i=="string"&&i.indexOf("water")===0){for(var s=c+1;s=0;d--)s.removeLayer(l[d][1])},i.dispose=function(){var s=this.subplot.map;this._removeLayers(),s.removeSource(this.sourceId)},o.exports=function(s,l){var d=l[0].trace,h=new c(s,d.uid),m=h.sourceId,g=r(l),p=h.below=s.belowLookup["trace-"+d.uid];return s.map.addSource(m,{type:"geojson",data:g.geojson}),h._addLayers(g,p),l[0].trace._glTrace=h,h}},{"../../plots/mapbox/constants":611,"./convert":726}],730:[function(e,o,f){var r=e("../../components/colorscale/attributes"),a=e("../../plots/cartesian/axis_format_attributes").axisHoverFormat,u=e("../../plots/template_attributes").hovertemplateAttrs,c=e("../mesh3d/attributes"),i=e("../../plots/attributes"),s=e("../../lib/extend").extendFlat,l={x:{valType:"data_array",editType:"calc+clearAxisTypes"},y:{valType:"data_array",editType:"calc+clearAxisTypes"},z:{valType:"data_array",editType:"calc+clearAxisTypes"},u:{valType:"data_array",editType:"calc"},v:{valType:"data_array",editType:"calc"},w:{valType:"data_array",editType:"calc"},sizemode:{valType:"enumerated",values:["scaled","absolute"],editType:"calc",dflt:"scaled"},sizeref:{valType:"number",editType:"calc",min:0},anchor:{valType:"enumerated",editType:"calc",values:["tip","tail","cm","center"],dflt:"cm"},text:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},hovertext:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},hovertemplate:u({editType:"calc"},{keys:["norm"]}),uhoverformat:a("u",1),vhoverformat:a("v",1),whoverformat:a("w",1),xhoverformat:a("x"),yhoverformat:a("y"),zhoverformat:a("z"),showlegend:s({},i.showlegend,{dflt:!1})};s(l,r("",{colorAttr:"u/v/w norm",showScaleDflt:!0,editTypeOverride:"calc"})),["opacity","lightposition","lighting"].forEach(function(d){l[d]=c[d]}),l.hoverinfo=s({},i.hoverinfo,{editType:"calc",flags:["x","y","z","u","v","w","norm","text","name"],dflt:"x+y+z+norm+text+name"}),l.transforms=void 0,o.exports=l},{"../../components/colorscale/attributes":373,"../../lib/extend":493,"../../plots/attributes":550,"../../plots/cartesian/axis_format_attributes":557,"../../plots/template_attributes":633,"../mesh3d/attributes":867}],731:[function(e,o,f){var r=e("../../components/colorscale/calc");o.exports=function(a,u){for(var c=u.u,i=u.v,s=u.w,l=Math.min(u.x.length,u.y.length,u.z.length,c.length,i.length,s.length),d=-1/0,h=1/0,m=0;ml.level||l.starts.length&&s===l.level)}break;case"constraint":if(c.prefixBoundary=!1,c.edgepaths.length)return;var d=c.x.length,h=c.y.length,m=-1/0,g=1/0;for(u=0;u":y>m&&(c.prefixBoundary=!0);break;case"<":(ym||c.starts.length&&v===g)&&(c.prefixBoundary=!0);break;case"][":p=Math.min(y[0],y[1]),v=Math.max(y[0],y[1]),pm&&(c.prefixBoundary=!0)}}}},{}],738:[function(e,o,f){var r=e("../../components/colorscale"),a=e("./make_color_map"),u=e("./end_plus");o.exports={min:"zmin",max:"zmax",calc:function(c,i,s){var l=i.contours,d=i.line,h=l.size||1,m=l.coloring,g=a(i,{isColorbar:!0});if(m==="heatmap"){var p=r.extractOpts(i);s._fillgradient=p.reversescale?r.flipScale(p.colorscale):p.colorscale,s._zrange=[p.min,p.max]}else m==="fill"&&(s._fillcolor=g);s._line={color:m==="lines"?g:d.color,width:l.showlines!==!1?d.width:0,dash:d.dash},s._levels={start:l.start,end:u(l),size:h}}}},{"../../components/colorscale":378,"./end_plus":746,"./make_color_map":751}],739:[function(e,o,f){o.exports={BOTTOMSTART:[1,9,13,104,713],TOPSTART:[4,6,7,104,713],LEFTSTART:[8,12,14,208,1114],RIGHTSTART:[2,3,11,208,1114],NEWDELTA:[null,[-1,0],[0,-1],[-1,0],[1,0],null,[0,-1],[-1,0],[0,1],[0,1],null,[0,1],[1,0],[1,0],[0,-1]],CHOOSESADDLE:{104:[4,1],208:[2,8],713:[7,13],1114:[11,14]},SADDLEREMAINDER:{1:4,2:8,4:1,7:13,8:2,11:14,13:7,14:11},LABELDISTANCE:2,LABELINCREASE:10,LABELMIN:3,LABELMAX:10,LABELOPTIMIZER:{EDGECOST:1,ANGLECOST:1,NEIGHBORCOST:5,SAMELEVELFACTOR:10,SAMELEVELDISTANCE:5,MAXCOST:100,INITIALSEARCHPOINTS:10,ITERATIONS:5}}},{}],740:[function(e,o,f){var r=e("fast-isnumeric"),a=e("./label_defaults"),u=e("../../components/color"),c=u.addOpacity,i=u.opacity,s=e("../../constants/filter_ops"),l=s.CONSTRAINT_REDUCTION,d=s.COMPARISON_OPS2;o.exports=function(h,m,g,p,v,y){var x,w,k,b=m.contours,T=g("contours.operation");b._operation=l[T],function(_,M){var A;d.indexOf(M.operation)===-1?(_("contours.value",[0,1]),Array.isArray(M.value)?M.value.length>2?M.value=M.value.slice(2):M.length===0?M.value=[0,1]:M.length<2?(A=parseFloat(M.value[0]),M.value=[A,A+1]):M.value=[parseFloat(M.value[0]),parseFloat(M.value[1])]:r(M.value)&&(A=parseFloat(M.value),M.value=[A,A+1])):(_("contours.value",0),r(M.value)||(Array.isArray(M.value)?M.value=parseFloat(M.value[0]):M.value=0))}(g,b),T==="="?x=b.showlines=!0:(x=g("contours.showlines"),k=g("fillcolor",c((h.line||{}).color||v,.5))),x&&(w=g("line.color",k&&i(k)?c(m.fillcolor,1):v),g("line.width",2),g("line.dash")),g("line.smoothing"),a(g,p,w,y)}},{"../../components/color":366,"../../constants/filter_ops":475,"./label_defaults":750,"fast-isnumeric":190}],741:[function(e,o,f){var r=e("../../constants/filter_ops"),a=e("fast-isnumeric");function u(s,l){var d,h=Array.isArray(l);function m(g){return a(g)?+g:null}return r.COMPARISON_OPS2.indexOf(s)!==-1?d=m(h?l[0]:l):r.INTERVAL_OPS.indexOf(s)!==-1?d=h?[m(l[0]),m(l[1])]:[m(l),m(l)]:r.SET_OPS.indexOf(s)!==-1&&(d=h?l.map(m):[m(l)]),d}function c(s){return function(l){l=u(s,l);var d=Math.min(l[0],l[1]),h=Math.max(l[0],l[1]);return{start:d,end:h,size:h-d}}}function i(s){return function(l){return{start:l=u(s,l),end:1/0,size:1/0}}}o.exports={"[]":c("[]"),"][":c("]["),">":i(">"),"<":i("<"),"=":i("=")}},{"../../constants/filter_ops":475,"fast-isnumeric":190}],742:[function(e,o,f){o.exports=function(r,a,u,c){var i=c("contours.start"),s=c("contours.end"),l=i===!1||s===!1,d=u("contours.size");!(l?a.autocontour=!0:u("autocontour",!1))&&d||u("ncontours")}},{}],743:[function(e,o,f){var r=e("../../lib");function a(u){return r.extendFlat({},u,{edgepaths:r.extendDeep([],u.edgepaths),paths:r.extendDeep([],u.paths),starts:r.extendDeep([],u.starts)})}o.exports=function(u,c){var i,s,l,d=function(g){return g.reverse()},h=function(g){return g};switch(c){case"=":case"<":return u;case">":for(u.length!==1&&r.warn("Contour data invalid for the specified inequality operation."),s=u[0],i=0;i1e3){r.warn("Too many contours, clipping at 1000",c);break}return h}},{"../../lib":503,"./constraint_mapping":741,"./end_plus":746}],746:[function(e,o,f){o.exports=function(r){return r.end+r.size/1e6}},{}],747:[function(e,o,f){var r=e("../../lib"),a=e("./constants");function u(s,l,d,h){return Math.abs(s[0]-l[0])20&&ee?Q===208||Q===1114?ae=ie[0]===0?1:-1:ue=ie[1]===0?1:-1:a.BOTTOMSTART.indexOf(Q)!==-1?ue=1:a.LEFTSTART.indexOf(Q)!==-1?ae=1:a.TOPSTART.indexOf(Q)!==-1?ue=-1:ae=-1,[ae,ue]}(v,d,l),x=[i(s,l,[-y[0],-y[1]])],w=s.z.length,k=s.z[0].length,b=l.slice(),T=y.slice();for(g=0;g<1e4;g++){if(v>20?(v=a.CHOOSESADDLE[v][(y[0]||y[1])<0?0:1],s.crossings[p]=a.SADDLEREMAINDER[v]):delete s.crossings[p],!(y=a.NEWDELTA[v])){r.log("Found bad marching index:",v,l,s.level);break}x.push(i(s,l,y)),l[0]+=y[0],l[1]+=y[1],p=l.join(","),u(x[x.length-1],x[x.length-2],h,m)&&x.pop();var _=y[0]&&(l[0]<0||l[0]>k-2)||y[1]&&(l[1]<0||l[1]>w-2);if(l[0]===b[0]&&l[1]===b[1]&&y[0]===T[0]&&y[1]===T[1]||d&&_)break;v=s.crossings[p]}g===1e4&&r.log("Infinite loop in contour?");var M,A,S,E,D,O,R,z,L,P,N,B,G,W,K,te=u(x[0],x[x.length-1],h,m),Y=0,Z=.2*s.smoothing,re=[],U=0;for(g=1;g=U;g--)if((M=re[g])=U&&M+re[A]z&&L--,s.edgepaths[L]=N.concat(x,P));break}H||(s.edgepaths[z]=x.concat(P))}for(z=0;zu?0:1)+(c[0][1]>u?0:2)+(c[1][1]>u?0:4)+(c[1][0]>u?0:8);return i===5||i===10?u>(c[0][0]+c[0][1]+c[1][0]+c[1][1])/4?i===5?713:1114:i===5?104:208:i===15?0:i}o.exports=function(u){var c,i,s,l,d,h,m,g,p,v=u[0].z,y=v.length,x=v[0].length,w=y===2||x===2;for(i=0;i=0&&(A=K,E=D):Math.abs(M[1]-A[1])<.01?Math.abs(M[1]-K[1])<.01&&(K[0]-M[0])*(A[0]-K[0])>=0&&(A=K,E=D):a.log("endpt to newendpt is not vert. or horz.",M,A,K)}if(M=A,E>=0)break;z+="L"+A}if(E===T.edgepaths.length){a.log("unclosed perimeter path");break}L=E,(N=P.indexOf(L)===-1)&&(L=P[0],z+="Z")}for(L=0;LA.center?A.right-D:D-A.left)/(z+Math.abs(Math.sin(R)*E)),N=(O>A.middle?A.bottom-O:O-A.top)/(Math.abs(L)+Math.cos(R)*E);if(P<1||N<1)return 1/0;var B=x.EDGECOST*(1/(P-1)+1/(N-1));B+=x.ANGLECOST*R*R;for(var G=D-z,W=O-L,K=D+z,te=O+L,Y=0;Y2*x.MAXCOST)break;N&&(D/=2),O=(E=R-D/2)+1.5*D}if(P<=x.MAXCOST)return z},f.addLabelData=function(T,_,M,A){var S=_.fontSize,E=_.width+S/3,D=Math.max(0,_.height-S/3),O=T.x,R=T.y,z=T.theta,L=Math.sin(z),P=Math.cos(z),N=function(G,W){return[O+G*P-W*L,R+G*L+W*P]},B=[N(-E/2,-D/2),N(-E/2,D/2),N(E/2,D/2),N(E/2,-D/2)];M.push({text:_.text,x:O,y:R,dy:_.dy,theta:z,level:_.level,width:E,height:D}),A.push(B)},f.drawLabels=function(T,_,M,A,S){var E=T.selectAll("text").data(_,function(R){return R.text+","+R.x+","+R.y+","+R.theta});if(E.exit().remove(),E.enter().append("text").attr({"data-notex":1,"text-anchor":"middle"}).each(function(R){var z=R.x+Math.sin(R.theta)*R.dy,L=R.y-Math.cos(R.theta)*R.dy;r.select(this).text(R.text).attr({x:z,y:L,transform:"rotate("+180*R.theta/Math.PI+" "+z+" "+L+")"}).call(i.convertToTspans,M)}),S){for(var D="",O=0;Os.end&&(s.start=s.end=(s.start+s.end)/2),c._input.contours||(c._input.contours={}),a.extendFlat(c._input.contours,{start:s.start,end:s.end,size:s.size}),c._input.autocontour=!0}else if(s.type!=="constraint"){var m,g=s.start,p=s.end,v=c._input.contours;g>p&&(s.start=v.start=p,p=s.end=v.end=g,g=s.start),!(s.size>0)&&(m=g===p?1:u(g,p,c.ncontours).dtick,v.size=s.size=m)}}},{"../../lib":503,"../../plots/cartesian/axes":554}],755:[function(e,o,f){var r=e("@plotly/d3"),a=e("../../components/drawing"),u=e("../heatmap/style"),c=e("./make_color_map");o.exports=function(i){var s=r.select(i).selectAll("g.contour");s.style("opacity",function(l){return l[0].trace.opacity}),s.each(function(l){var d=r.select(this),h=l[0].trace,m=h.contours,g=h.line,p=m.size||1,v=m.start,y=m.type==="constraint",x=!y&&m.coloring==="lines",w=!y&&m.coloring==="fill",k=x||w?c(h):null;d.selectAll("g.contourlevel").each(function(_){r.select(this).selectAll("path").call(a.lineGroupStyle,g.width,x?k(_.level):g.color,g.dash)});var b=m.labelfont;if(d.selectAll("g.contourlabels text").each(function(_){a.font(r.select(this),{family:b.family,size:b.size,color:b.color||(x?k(_.level):g.color)})}),y)d.selectAll("g.contourfill path").style("fill",h.fillcolor);else if(w){var T;d.selectAll("g.contourfill path").style("fill",function(_){return T===void 0&&(T=_.level),k(_.level+.5*p)}),T===void 0&&(T=v),d.selectAll("g.contourbg path").style("fill",k(T-.5*p))}}),u(i)}},{"../../components/drawing":388,"../heatmap/style":805,"./make_color_map":751,"@plotly/d3":58}],756:[function(e,o,f){var r=e("../../components/colorscale/defaults"),a=e("./label_defaults");o.exports=function(u,c,i,s,l){var d,h=i("contours.coloring"),m="";h==="fill"&&(d=i("contours.showlines")),d!==!1&&(h!=="lines"&&(m=i("line.color","#000")),i("line.width",.5),i("line.dash")),h!=="none"&&(u.showlegend!==!0&&(c.showlegend=!1),c._dfltShowLegend=!1,r(u,c,s,i,{prefix:"",cLetter:"z"})),i("line.smoothing"),a(i,s,m,l)}},{"../../components/colorscale/defaults":376,"./label_defaults":750}],757:[function(e,o,f){var r=e("../heatmap/attributes"),a=e("../contour/attributes"),u=e("../../components/colorscale/attributes"),c=e("../../lib/extend").extendFlat,i=a.contours;o.exports=c({carpet:{valType:"string",editType:"calc"},z:r.z,a:r.x,a0:r.x0,da:r.dx,b:r.y,b0:r.y0,db:r.dy,text:r.text,hovertext:r.hovertext,transpose:r.transpose,atype:r.xtype,btype:r.ytype,fillcolor:a.fillcolor,autocontour:a.autocontour,ncontours:a.ncontours,contours:{type:i.type,start:i.start,end:i.end,size:i.size,coloring:{valType:"enumerated",values:["fill","lines","none"],dflt:"fill",editType:"calc"},showlines:i.showlines,showlabels:i.showlabels,labelfont:i.labelfont,labelformat:i.labelformat,operation:i.operation,value:i.value,editType:"calc",impliedEdits:{autocontour:!1}},line:{color:a.line.color,width:a.line.width,dash:a.line.dash,smoothing:a.line.smoothing,editType:"plot"},transforms:void 0},u("",{cLetter:"z",autoColorDflt:!1}))},{"../../components/colorscale/attributes":373,"../../lib/extend":493,"../contour/attributes":735,"../heatmap/attributes":792}],758:[function(e,o,f){var r=e("../../components/colorscale/calc"),a=e("../../lib"),u=e("../heatmap/convert_column_xyz"),c=e("../heatmap/clean_2d_array"),i=e("../heatmap/interp2d"),s=e("../heatmap/find_empties"),l=e("../heatmap/make_bound_array"),d=e("./defaults"),h=e("../carpet/lookup_carpetid"),m=e("../contour/set_contours");o.exports=function(g,p){var v=p._carpetTrace=h(g,p);if(v&&v.visible&&v.visible!=="legendonly"){if(!p.a||!p.b){var y=g.data[v.index],x=g.data[p.index];x.a||(x.a=y.a),x.b||(x.b=y.b),d(x,p,p._defaultColor,g._fullLayout)}var w=function(k,b){var T,_,M,A,S,E,D,O=b._carpetTrace,R=O.aaxis,z=O.baxis;R._minDtick=0,z._minDtick=0,a.isArray1D(b.z)&&u(b,R,z,"a","b",["z"]),T=b._a=b._a||b.a,A=b._b=b._b||b.b,T=T?R.makeCalcdata(b,"_a"):[],A=A?z.makeCalcdata(b,"_b"):[],_=b.a0||0,M=b.da||1,S=b.b0||0,E=b.db||1,D=b._z=c(b._z||b.z,b.transpose),b._emptypoints=s(D),i(D,b._emptypoints);var L=a.maxRowLength(D),P=b.xtype==="scaled"?"":T,N=l(b,P,_,M,L,R),B=b.ytype==="scaled"?"":A,G=l(b,B,S,E,D.length,z),W={a:N,b:G,z:D};return b.contours.type==="levels"&&b.contours.coloring!=="none"&&r(k,b,{vals:D,containerStr:"",cLetter:"z"}),[W]}(g,p);return m(p,p._z),w}}},{"../../components/colorscale/calc":374,"../../lib":503,"../carpet/lookup_carpetid":708,"../contour/set_contours":754,"../heatmap/clean_2d_array":794,"../heatmap/convert_column_xyz":796,"../heatmap/find_empties":798,"../heatmap/interp2d":801,"../heatmap/make_bound_array":803,"./defaults":759}],759:[function(e,o,f){var r=e("../../lib"),a=e("../heatmap/xyz_defaults"),u=e("./attributes"),c=e("../contour/constraint_defaults"),i=e("../contour/contours_defaults"),s=e("../contour/style_defaults");o.exports=function(l,d,h,m){function g(p,v){return r.coerce(l,d,u,p,v)}if(g("carpet"),l.a&&l.b){if(!a(l,d,g,m,"a","b"))return void(d.visible=!1);g("text"),g("contours.type")==="constraint"?c(l,d,g,m,h,{hasHover:!1}):(i(l,d,g,function(p){return r.coerce2(l,d,u,p)}),s(l,d,g,m,{hasHover:!1}))}else d._defaultColor=h,d._length=null}},{"../../lib":503,"../contour/constraint_defaults":740,"../contour/contours_defaults":742,"../contour/style_defaults":756,"../heatmap/xyz_defaults":807,"./attributes":757}],760:[function(e,o,f){o.exports={attributes:e("./attributes"),supplyDefaults:e("./defaults"),colorbar:e("../contour/colorbar"),calc:e("./calc"),plot:e("./plot"),style:e("../contour/style"),moduleType:"trace",name:"contourcarpet",basePlotModule:e("../../plots/cartesian"),categories:["cartesian","svg","carpet","contour","symbols","showLegend","hasLines","carpetDependent","noHover","noSortingByValue"],meta:{}}},{"../../plots/cartesian":568,"../contour/colorbar":738,"../contour/style":755,"./attributes":757,"./calc":758,"./defaults":759,"./plot":761}],761:[function(e,o,f){var r=e("@plotly/d3"),a=e("../carpet/map_1d_array"),u=e("../carpet/makepath"),c=e("../../components/drawing"),i=e("../../lib"),s=e("../contour/make_crossings"),l=e("../contour/find_all_paths"),d=e("../contour/plot"),h=e("../contour/constants"),m=e("../contour/convert_to_constraints"),g=e("../contour/empty_pathinfo"),p=e("../contour/close_boundaries"),v=e("../carpet/lookup_carpetid"),y=e("../carpet/axis_aligned_line");function x(b,T,_){var M=b.getPointAtLength(T),A=b.getPointAtLength(_),S=A.x-M.x,E=A.y-M.y,D=Math.sqrt(S*S+E*E);return[S/D,E/D]}function w(b){var T=Math.sqrt(b[0]*b[0]+b[1]*b[1]);return[b[0]/T,b[1]/T]}function k(b,T){var _=Math.abs(b[0]*T[0]+b[1]*T[1]);return Math.sqrt(1-_*_)/_}o.exports=function(b,T,_,M){var A=T.xaxis,S=T.yaxis;i.makeTraceGroups(M,_,"contour").each(function(E){var D=r.select(this),O=E[0],R=O.trace,z=R._carpetTrace=v(b,R),L=b.calcdata[z.index][0];if(z.visible&&z.visible!=="legendonly"){var P=O.a,N=O.b,B=R.contours,G=g(B,T,O),W=B.type==="constraint",K=B._operation,te=W?K==="="?"lines":"fill":B.coloring,Y=[[P[0],N[N.length-1]],[P[P.length-1],N[N.length-1]],[P[P.length-1],N[0]],[P[0],N[0]]];s(G);var Z=1e-8*(P[P.length-1]-P[0]),re=1e-8*(N[N.length-1]-N[0]);l(G,Z,re);var U,q,$,ne,H=G;B.type==="constraint"&&(H=m(G,K)),function(ae,ue){var le,ge,fe,me,_e,we,Te,Oe,de;for(le=0;le=0;ne--)U=L.clipsegments[ne],q=a([],U.x,A.c2p),$=a([],U.y,S.c2p),q.reverse(),$.reverse(),Q.push(u(q,$,U.bicubic));var ee="M"+Q.join("L")+"Z";(function(ae,ue,le,ge,fe,me){var _e,we,Te,Oe,de=i.ensureSingle(ae,"g","contourbg").selectAll("path").data(me!=="fill"||fe?[]:[0]);de.enter().append("path"),de.exit().remove();var ye=[];for(Oe=0;Oe=0&&(vt=He,At=at):Math.abs(ft[1]-vt[1])=0&&(vt=He,At=at):i.log("endpt to newendpt is not vert. or horz.",ft,vt,He)}if(At>=0)break;Ot+=Ae(ft,vt),ft=vt}if(At===Fe.edgepaths.length){i.log("unclosed perimeter path");break}nt=At,(Jt=Wt.indexOf(nt)===-1)&&(nt=Wt[0],Ot+=Ae(ft,vt)+"Z",ft=null)}for(nt=0;ntUt&&(Tt.max=Ut),Tt.len=Tt.max-Tt.min}(this,At,vt,at,_e,Pt.height),!(at.len<(Pt.width+Pt.height)*h.LABELMIN)))for(var et=Math.min(Math.ceil(at.len/ft),h.LABELMAX),Ot=0;Ot0?+y[g]:0),p.push({type:"Feature",geometry:{type:"Point",coordinates:b},properties:T})}}var M=c.extractOpts(d),A=M.reversescale?c.flipScale(M.colorscale):M.colorscale,S=A[0][1],E=["interpolate",["linear"],["heatmap-density"],0,u.opacity(S)<1?S:u.addOpacity(S,0)];for(g=1;g=0;l--)i.removeLayer(s[l][1])},c.dispose=function(){var i=this.subplot.map;this._removeLayers(),i.removeSource(this.sourceId)},o.exports=function(i,s){var l=s[0].trace,d=new u(i,l.uid),h=d.sourceId,m=r(s),g=d.below=i.belowLookup["trace-"+l.uid];return i.map.addSource(h,{type:"geojson",data:m.geojson}),d._addLayers(m,g),d}},{"../../plots/mapbox/constants":611,"./convert":764}],770:[function(e,o,f){var r=e("../../lib");o.exports=function(a,u){for(var c=0;c"),h.color=function(T,_){var M=T.marker,A=_.mc||M.color,S=_.mlc||M.line.color,E=_.mlw||M.line.width;if(r(A))return A;if(r(S)&&E)return S}(g,v),[h]}}},{"../../components/color":366,"../../lib":503,"../bar/hover":655}],778:[function(e,o,f){o.exports={attributes:e("./attributes"),layoutAttributes:e("./layout_attributes"),supplyDefaults:e("./defaults").supplyDefaults,crossTraceDefaults:e("./defaults").crossTraceDefaults,supplyLayoutDefaults:e("./layout_defaults"),calc:e("./calc"),crossTraceCalc:e("./cross_trace_calc"),plot:e("./plot"),style:e("./style").style,hoverPoints:e("./hover"),eventData:e("./event_data"),selectPoints:e("../bar/select"),moduleType:"trace",name:"funnel",basePlotModule:e("../../plots/cartesian"),categories:["bar-like","cartesian","svg","oriented","showLegend","zoomScale"],meta:{}}},{"../../plots/cartesian":568,"../bar/select":660,"./attributes":771,"./calc":772,"./cross_trace_calc":774,"./defaults":775,"./event_data":776,"./hover":777,"./layout_attributes":779,"./layout_defaults":780,"./plot":781,"./style":782}],779:[function(e,o,f){o.exports={funnelmode:{valType:"enumerated",values:["stack","group","overlay"],dflt:"stack",editType:"calc"},funnelgap:{valType:"number",min:0,max:1,editType:"calc"},funnelgroupgap:{valType:"number",min:0,max:1,dflt:0,editType:"calc"}}},{}],780:[function(e,o,f){var r=e("../../lib"),a=e("./layout_attributes");o.exports=function(u,c,i){var s=!1;function l(m,g){return r.coerce(u,c,a,m,g)}for(var d=0;d path").each(function(x){if(!x.isBlank){var w=y.marker;r.select(this).call(u.fill,x.mc||w.color).call(u.stroke,x.mlc||w.line.color).call(a.dashLine,w.line.dash,x.mlw||w.line.width).style("opacity",y.selectedpoints&&!x.selected?c:1)}}),l(v,y,d),v.selectAll(".regions").each(function(){r.select(this).selectAll("path").style("stroke-width",0).call(u.fill,y.connector.fillcolor)}),v.selectAll(".lines").each(function(){var x=y.connector.line;a.lineGroupStyle(r.select(this).selectAll("path"),x.width,x.color,x.dash)})})}}},{"../../components/color":366,"../../components/drawing":388,"../../constants/interactions":478,"../bar/style":662,"../bar/uniform_text":664,"@plotly/d3":58}],783:[function(e,o,f){var r=e("../pie/attributes"),a=e("../../plots/attributes"),u=e("../../plots/domain").attributes,c=e("../../plots/template_attributes").hovertemplateAttrs,i=e("../../plots/template_attributes").texttemplateAttrs,s=e("../../lib/extend").extendFlat;o.exports={labels:r.labels,label0:r.label0,dlabel:r.dlabel,values:r.values,marker:{colors:r.marker.colors,line:{color:s({},r.marker.line.color,{dflt:null}),width:s({},r.marker.line.width,{dflt:1}),editType:"calc"},editType:"calc"},text:r.text,hovertext:r.hovertext,scalegroup:s({},r.scalegroup,{}),textinfo:s({},r.textinfo,{flags:["label","text","value","percent"]}),texttemplate:i({editType:"plot"},{keys:["label","color","value","text","percent"]}),hoverinfo:s({},a.hoverinfo,{flags:["label","text","value","percent","name"]}),hovertemplate:c({},{keys:["label","color","value","text","percent"]}),textposition:s({},r.textposition,{values:["inside","none"],dflt:"inside"}),textfont:r.textfont,insidetextfont:r.insidetextfont,title:{text:r.title.text,font:r.title.font,position:s({},r.title.position,{values:["top left","top center","top right"],dflt:"top center"}),editType:"plot"},domain:u({name:"funnelarea",trace:!0,editType:"calc"}),aspectratio:{valType:"number",min:0,dflt:1,editType:"plot"},baseratio:{valType:"number",min:0,max:1,dflt:.333,editType:"plot"}}},{"../../lib/extend":493,"../../plots/attributes":550,"../../plots/domain":584,"../../plots/template_attributes":633,"../pie/attributes":901}],784:[function(e,o,f){var r=e("../../plots/plots");f.name="funnelarea",f.plot=function(a,u,c,i){r.plotBasePlot(f.name,a,u,c,i)},f.clean=function(a,u,c,i){r.cleanBasePlot(f.name,a,u,c,i)}},{"../../plots/plots":619}],785:[function(e,o,f){var r=e("../pie/calc");o.exports={calc:function(a,u){return r.calc(a,u)},crossTraceCalc:function(a){r.crossTraceCalc(a,{type:"funnelarea"})}}},{"../pie/calc":903}],786:[function(e,o,f){var r=e("../../lib"),a=e("./attributes"),u=e("../../plots/domain").defaults,c=e("../bar/defaults").handleText,i=e("../pie/defaults").handleLabelsAndValues;o.exports=function(s,l,d,h){function m(T,_){return r.coerce(s,l,a,T,_)}var g=m("labels"),p=m("values"),v=i(g,p),y=v.len;if(l._hasLabels=v.hasLabels,l._hasValues=v.hasValues,!l._hasLabels&&l._hasValues&&(m("label0"),m("dlabel")),y){l._length=y,m("marker.line.width")&&m("marker.line.color",h.paper_bgcolor),m("marker.colors"),m("scalegroup");var x,w=m("text"),k=m("texttemplate");if(k||(x=m("textinfo",Array.isArray(w)?"text+percent":"percent")),m("hovertext"),m("hovertemplate"),k||x&&x!=="none"){var b=m("textposition");c(s,l,h,m,b,{moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!1,moduleHasCliponaxis:!1,moduleHasTextangle:!1,moduleHasInsideanchor:!1})}u(l,h,m),m("title.text")&&(m("title.position"),r.coerceFont(m,"title.font",h.font)),m("aspectratio"),m("baseratio")}else l.visible=!1}},{"../../lib":503,"../../plots/domain":584,"../bar/defaults":652,"../pie/defaults":904,"./attributes":783}],787:[function(e,o,f){o.exports={moduleType:"trace",name:"funnelarea",basePlotModule:e("./base_plot"),categories:["pie-like","funnelarea","showLegend"],attributes:e("./attributes"),layoutAttributes:e("./layout_attributes"),supplyDefaults:e("./defaults"),supplyLayoutDefaults:e("./layout_defaults"),calc:e("./calc").calc,crossTraceCalc:e("./calc").crossTraceCalc,plot:e("./plot"),style:e("./style"),styleOne:e("../pie/style_one"),meta:{}}},{"../pie/style_one":912,"./attributes":783,"./base_plot":784,"./calc":785,"./defaults":786,"./layout_attributes":788,"./layout_defaults":789,"./plot":790,"./style":791}],788:[function(e,o,f){var r=e("../pie/layout_attributes").hiddenlabels;o.exports={hiddenlabels:r,funnelareacolorway:{valType:"colorlist",editType:"calc"},extendfunnelareacolors:{valType:"boolean",dflt:!0,editType:"calc"}}},{"../pie/layout_attributes":908}],789:[function(e,o,f){var r=e("../../lib"),a=e("./layout_attributes");o.exports=function(u,c){function i(s,l){return r.coerce(u,c,a,s,l)}i("hiddenlabels"),i("funnelareacolorway",c.colorway),i("extendfunnelareacolors")}},{"../../lib":503,"./layout_attributes":788}],790:[function(e,o,f){var r=e("@plotly/d3"),a=e("../../components/drawing"),u=e("../../lib"),c=u.strScale,i=u.strTranslate,s=e("../../lib/svg_text_utils"),l=e("../bar/plot").toMoveInsideBar,d=e("../bar/uniform_text"),h=d.recordMinTextSize,m=d.clearMinTextSize,g=e("../pie/helpers"),p=e("../pie/plot"),v=p.attachFxHandlers,y=p.determineInsideTextFont,x=p.layoutAreas,w=p.prerenderTitles,k=p.positionTitleOutside,b=p.formatSliceLabel;function T(_,M){return"l"+(M[0]-_[0])+","+(M[1]-_[1])}o.exports=function(_,M){var A=_._fullLayout;m("funnelarea",A),w(M,_),x(M,A._size),u.makeTraceGroups(A._funnelarealayer,M,"trace").each(function(S){var E=r.select(this),D=S[0],O=D.trace;(function(R){if(!R.length)return;var z=R[0],L=z.trace,P=L.aspectratio,N=L.baseratio;N>.999&&(N=.999);var B,G=Math.pow(N,2),W=z.vTotal,K=W,te=W*G/(1-G)/W;function Y(){var Te,Oe={x:Te=Math.sqrt(te),y:-Te};return[Oe.x,Oe.y]}var Z,re,U=[];for(U.push(Y()),Z=R.length-1;Z>-1;Z--)if(!(re=R[Z]).hidden){var q=re.v/K;te+=q,U.push(Y())}var $=1/0,ne=-1/0;for(Z=0;Z-1;Z--)if(!(re=R[Z]).hidden){var fe=U[ge+=1][0],me=U[ge][1];re.TL=[-fe,me],re.TR=[fe,me],re.BL=ue,re.BR=le,re.pxmid=(_e=re.TR,we=re.BR,[.5*(_e[0]+we[0]),.5*(_e[1]+we[1])]),ue=re.TL,le=re.TR}var _e,we})(S),E.each(function(){var R=r.select(this).selectAll("g.slice").data(S);R.enter().append("g").classed("slice",!0),R.exit().remove(),R.each(function(L,P){if(L.hidden)r.select(this).selectAll("path,g").remove();else{L.pointNumber=L.i,L.curveNumber=O.index;var N=D.cx,B=D.cy,G=r.select(this),W=G.selectAll("path.surface").data([L]);W.enter().append("path").classed("surface",!0).style({"pointer-events":"all"}),G.call(v,_,S);var K="M"+(N+L.TR[0])+","+(B+L.TR[1])+T(L.TR,L.BR)+T(L.BR,L.BL)+T(L.BL,L.TL)+"Z";W.attr("d",K),b(_,L,D);var te=g.castOption(O.textposition,L.pts),Y=G.selectAll("g.slicetext").data(L.text&&te!=="none"?[0]:[]);Y.enter().append("g").classed("slicetext",!0),Y.exit().remove(),Y.each(function(){var Z=u.ensureSingle(r.select(this),"text","",function(ee){ee.attr("data-notex",1)}),re=u.ensureUniformFontSize(_,y(O,L,A.font));Z.text(L.text).attr({class:"slicetext",transform:"","text-anchor":"middle"}).call(a.font,re).call(s.convertToTspans,_);var U,q,$,ne=a.bBox(Z.node()),H=Math.min(L.BL[1],L.BR[1])+B,Q=Math.max(L.TL[1],L.TR[1])+B;q=Math.max(L.TL[0],L.BL[0])+N,$=Math.min(L.TR[0],L.BR[0])+N,(U=l(q,$,H,Q,ne,{isHorizontal:!0,constrained:!0,angle:0,anchor:"middle"})).fontSize=re.size,h(O.type,U,A),S[P].transform=U,Z.attr("transform",u.getTextTransform(U))})}});var z=r.select(this).selectAll("g.titletext").data(O.title.text?[0]:[]);z.enter().append("g").classed("titletext",!0),z.exit().remove(),z.each(function(){var L=u.ensureSingle(r.select(this),"text","",function(B){B.attr("data-notex",1)}),P=O.title.text;O._meta&&(P=u.templateString(P,O._meta)),L.text(P).attr({class:"titletext",transform:"","text-anchor":"middle"}).call(a.font,O.title.font).call(s.convertToTspans,_);var N=k(D,A._size);L.attr("transform",i(N.x,N.y)+c(Math.min(1,N.scale))+i(N.tx,N.ty))})})})}},{"../../components/drawing":388,"../../lib":503,"../../lib/svg_text_utils":529,"../bar/plot":659,"../bar/uniform_text":664,"../pie/helpers":906,"../pie/plot":910,"@plotly/d3":58}],791:[function(e,o,f){var r=e("@plotly/d3"),a=e("../pie/style_one"),u=e("../bar/uniform_text").resizeText;o.exports=function(c){var i=c._fullLayout._funnelarealayer.selectAll(".trace");u(c,i,"funnelarea"),i.each(function(s){var l=s[0].trace,d=r.select(this);d.style({opacity:l.opacity}),d.selectAll("path.surface").each(function(h){r.select(this).call(a,h,l)})})}},{"../bar/uniform_text":664,"../pie/style_one":912,"@plotly/d3":58}],792:[function(e,o,f){var r=e("../scatter/attributes"),a=e("../../plots/attributes"),u=e("../../plots/font_attributes"),c=e("../../plots/cartesian/axis_format_attributes").axisHoverFormat,i=e("../../plots/template_attributes").hovertemplateAttrs,s=e("../../plots/template_attributes").texttemplateAttrs,l=e("../../components/colorscale/attributes"),d=e("../../lib/extend").extendFlat;o.exports=d({z:{valType:"data_array",editType:"calc"},x:d({},r.x,{impliedEdits:{xtype:"array"}}),x0:d({},r.x0,{impliedEdits:{xtype:"scaled"}}),dx:d({},r.dx,{impliedEdits:{xtype:"scaled"}}),y:d({},r.y,{impliedEdits:{ytype:"array"}}),y0:d({},r.y0,{impliedEdits:{ytype:"scaled"}}),dy:d({},r.dy,{impliedEdits:{ytype:"scaled"}}),xperiod:d({},r.xperiod,{impliedEdits:{xtype:"scaled"}}),yperiod:d({},r.yperiod,{impliedEdits:{ytype:"scaled"}}),xperiod0:d({},r.xperiod0,{impliedEdits:{xtype:"scaled"}}),yperiod0:d({},r.yperiod0,{impliedEdits:{ytype:"scaled"}}),xperiodalignment:d({},r.xperiodalignment,{impliedEdits:{xtype:"scaled"}}),yperiodalignment:d({},r.yperiodalignment,{impliedEdits:{ytype:"scaled"}}),text:{valType:"data_array",editType:"calc"},hovertext:{valType:"data_array",editType:"calc"},transpose:{valType:"boolean",dflt:!1,editType:"calc"},xtype:{valType:"enumerated",values:["array","scaled"],editType:"calc+clearAxisTypes"},ytype:{valType:"enumerated",values:["array","scaled"],editType:"calc+clearAxisTypes"},zsmooth:{valType:"enumerated",values:["fast","best",!1],dflt:!1,editType:"calc"},hoverongaps:{valType:"boolean",dflt:!0,editType:"none"},connectgaps:{valType:"boolean",editType:"calc"},xgap:{valType:"number",dflt:0,min:0,editType:"plot"},ygap:{valType:"number",dflt:0,min:0,editType:"plot"},xhoverformat:c("x"),yhoverformat:c("y"),zhoverformat:c("z",1),hovertemplate:i(),texttemplate:s({arrayOk:!1,editType:"plot"},{keys:["x","y","z","text"]}),textfont:u({editType:"plot",autoSize:!0,autoColor:!0,colorEditType:"style"}),showlegend:d({},a.showlegend,{dflt:!1})},{transforms:void 0},l("",{cLetter:"z",autoColorDflt:!1}))},{"../../components/colorscale/attributes":373,"../../lib/extend":493,"../../plots/attributes":550,"../../plots/cartesian/axis_format_attributes":557,"../../plots/font_attributes":585,"../../plots/template_attributes":633,"../scatter/attributes":927}],793:[function(e,o,f){var r=e("../../registry"),a=e("../../lib"),u=e("../../plots/cartesian/axes"),c=e("../../plots/cartesian/align_period"),i=e("../histogram2d/calc"),s=e("../../components/colorscale/calc"),l=e("./convert_column_xyz"),d=e("./clean_2d_array"),h=e("./interp2d"),m=e("./find_empties"),g=e("./make_bound_array"),p=e("../../constants/numerical").BADNUM;function v(y){for(var x=[],w=y.length,k=0;kte){W("x scale is not linear");break}}if(_.length&&B==="fast"){var Y=(_[_.length-1]-_[0])/(_.length-1),Z=Math.abs(Y/100);for(D=0;D<_.length-1;D++)if(Math.abs(_[D+1]-_[D]-Y)>Z){W("y scale is not linear");break}}}}var re=a.maxRowLength(E),U=x.xtype==="scaled"?"":w,q=g(x,U,k,b,re,R),$=x.ytype==="scaled"?"":_,ne=g(x,$,M,A,E.length,z);N||(x._extremes[R._id]=u.findExtremes(R,q),x._extremes[z._id]=u.findExtremes(z,ne));var H={x:q,y:ne,z:E,text:x._text||x.text,hovertext:x._hovertext||x.hovertext};if(x.xperiodalignment&&T&&(H.orig_x=T),x.yperiodalignment&&S&&(H.orig_y=S),U&&U.length===q.length-1&&(H.xCenter=U),$&&$.length===ne.length-1&&(H.yCenter=$),P&&(H.xRanges=O.xRanges,H.yRanges=O.yRanges,H.pts=O.pts),L||s(y,x,{vals:E,cLetter:"z"}),L&&x.contours&&x.contours.coloring==="heatmap"){var Q={type:x.type==="contour"?"heatmap":"histogram2d",xcalendar:x.xcalendar,ycalendar:x.ycalendar};H.xfill=g(Q,U,k,b,re,R),H.yfill=g(Q,$,M,A,E.length,z)}return[H]}},{"../../components/colorscale/calc":374,"../../constants/numerical":479,"../../lib":503,"../../plots/cartesian/align_period":551,"../../plots/cartesian/axes":554,"../../registry":638,"../histogram2d/calc":826,"./clean_2d_array":794,"./convert_column_xyz":796,"./find_empties":798,"./interp2d":801,"./make_bound_array":803}],794:[function(e,o,f){var r=e("fast-isnumeric"),a=e("../../lib"),u=e("../../constants/numerical").BADNUM;o.exports=function(c,i,s,l){var d,h,m,g,p,v;function y(_){if(r(_))return+_}if(i&&i.transpose){for(d=0,p=0;p=0;l--)(d=((p[[(c=(s=v[l])[0])-1,i=s[1]]]||w)[2]+(p[[c+1,i]]||w)[2]+(p[[c,i-1]]||w)[2]+(p[[c,i+1]]||w)[2])/20)&&(h[s]=[c,i,d],v.splice(l,1),m=!0);if(!m)throw"findEmpties iterated with no new neighbors";for(s in h)p[s]=h[s],g.push(h[s])}return g.sort(function(b,T){return T[2]-b[2]})}},{"../../lib":503}],799:[function(e,o,f){var r=e("../../components/fx"),a=e("../../lib"),u=e("../../plots/cartesian/axes"),c=e("../../components/colorscale").extractOpts;o.exports=function(i,s,l,d,h){h||(h={});var m,g,p,v,y=h.isContour,x=i.cd[0],w=x.trace,k=i.xa,b=i.ya,T=x.x,_=x.y,M=x.z,A=x.xCenter,S=x.yCenter,E=x.zmask,D=w.zhoverformat,O=T,R=_;if(i.index!==!1){try{p=Math.round(i.index[1]),v=Math.round(i.index[0])}catch{return void a.error("Error hovering on heatmap, pointNumber must be [row,col], found:",i.index)}if(p<0||p>=M[0].length||v<0||v>M.length)return}else{if(r.inbox(s-T[0],s-T[T.length-1],0)>0||r.inbox(l-_[0],l-_[_.length-1],0)>0)return;if(y){var z;for(O=[2*T[0]-T[1]],z=1;zT&&(M=Math.max(M,Math.abs(i[h][m]-b)/(_-T))))}return M}o.exports=function(i,s){var l,d=1;for(c(i,s),l=0;l.01;l++)d=c(i,s,u(d));return d>.01&&r.log("interp2d didn't converge quickly",d),i}},{"../../lib":503}],802:[function(e,o,f){var r=e("../../lib");o.exports=function(a,u){a("texttemplate");var c=r.extendFlat({},u.font,{color:"auto",size:"auto"});r.coerceFont(a,"textfont",c)}},{"../../lib":503}],803:[function(e,o,f){var r=e("../../registry"),a=e("../../lib").isArrayOrTypedArray;o.exports=function(u,c,i,s,l,d){var h,m,g,p=[],v=r.traceIs(u,"contour"),y=r.traceIs(u,"histogram"),x=r.traceIs(u,"gl2d");if(a(c)&&c.length>1&&!y&&d.type!=="category"){var w=c.length;if(!(w<=l))return v?c.slice(0,l):c.slice(0,l+1);if(v||x)p=c.slice(0,l);else if(l===1)p=[c[0]-.5,c[0]+.5];else{for(p=[1.5*c[0]-.5*c[1]],g=1;g0;)R=S.c2p(U[N]),N--;for(R0;)P=E.c2p(q[N]),N--;if(PJe||Je>E._length))for(B=zt;BEt||Et>S._length)){var It=d({x:st,y:Le},te,T._fullLayout);It.x=st,It.y=Le;var Zt=K.z[N][B];Zt===void 0?(It.z="",It.zLabel=""):(It.z=Zt,It.zLabel=i.tickText(Vt,Zt,"hover").text);var Kt=K.text&&K.text[N]&&K.text[N][B];Kt!==void 0&&Kt!==!1||(Kt=""),It.text=Kt;var Ht=s.texttemplateString(kt,It,T._fullLayout._d3locale,It,te._meta||{});if(Ht){var mn=Ht.split("
    "),zn=mn.length,pn=0;for(G=0;G0&&(T=!0);for(var A=0;As){var l=s-c[a];return c[a]=s,l}}return 0},max:function(a,u,c,i){var s=i[u];if(r(s)){if(s=Number(s),!r(c[a]))return c[a]=s,s;if(c[a]l?v>c?v>1.1*a?a:v>1.1*u?u:c:v>i?i:v>s?s:l:Math.pow(10,Math.floor(Math.log(v)/Math.LN10))}function g(v,y,x,w,k,b){if(w&&v>c){var T=p(y,k,b),_=p(x,k,b),M=v===a?0:1;return T[M]!==_[M]}return Math.floor(x/v)-Math.floor(y/v)>.1}function p(v,y,x){var w=y.c2d(v,a,x).split("-");return w[0]===""&&(w.unshift(),w[0]="-"+w[0]),w}o.exports=function(v,y,x,w,k){var b,T,_=-1.1*y,M=-.1*y,A=v-M,S=x[0],E=x[1],D=Math.min(h(S+M,S+A,w,k),h(E+M,E+A,w,k)),O=Math.min(h(S+_,S+M,w,k),h(E+_,E+M,w,k));if(D>O&&Oc){var R=b===a?1:6,z=b===a?"M12":"M1";return function(L,P){var N=w.c2d(L,a,k),B=N.indexOf("-",R);B>0&&(N=N.substr(0,B));var G=w.d2c(N,0,k);if(Gv.r2l(H)&&(ee=c.tickIncrement(ee,O.size,!0,T)),U.start=v.l2r(ee),ne||a.nestedProperty(p,S+".start").set(U.start)}var ie=O.end,ae=v.r2l(re.end),ue=ae!==void 0;if((O.endFound||ue)&&ae!==v.r2l(ie)){var le=ue?ae:a.aggNums(Math.max,null,_);U.end=v.l2r(le),ue||a.nestedProperty(p,S+".start").set(U.end)}var ge="autobin"+y;return p._input[ge]===!1&&(p._input[S]=a.extendFlat({},p[S]||{}),delete p._input[ge],delete p[ge]),[U,_]}o.exports={calc:function(g,p){var v,y,x,w,k=[],b=[],T=p.orientation==="h",_=c.getFromId(g,T?p.yaxis:p.xaxis),M=T?"y":"x",A={x:"y",y:"x"}[M],S=p[M+"calendar"],E=p.cumulative,D=m(g,p,_,M),O=D[0],R=D[1],z=typeof O.size=="string",L=[],P=z?L:O,N=[],B=[],G=[],W=0,K=p.histnorm,te=p.histfunc,Y=K.indexOf("density")!==-1;E.enabled&&Y&&(K=K.replace(/ ?density$/,""),Y=!1);var Z,re=te==="max"||te==="min"?null:0,U=s.count,q=l[K],$=!1,ne=function(de){return _.r2c(de,0,S)};for(a.isArrayOrTypedArray(p[A])&&te!=="count"&&(Z=p[A],$=te==="avg",U=s[te]),v=ne(O.start),x=ne(O.end)+(v-c.tickIncrement(v,O.size,!1,S))/1e6;v=0&&w=0;ke--)Ve(ke);else if(ye==="increasing"){for(ke=1;ke=0;ke--)de[ke]+=de[ke+1];Me==="exclude"&&(de.push(0),de.shift())}}(b,E.direction,E.currentbin);var me=Math.min(k.length,b.length),_e=[],we=0,Te=me-1;for(v=0;v=we;v--)if(b[v]){Te=v;break}for(v=we;v<=Te;v++)if(r(k[v])&&r(b[v])){var Oe={p:k[v],s:b[v],b:0};E.enabled||(Oe.pts=G[v],ae?Oe.ph0=Oe.ph1=G[v].length?R[G[v][0]]:k[v]:(p._computePh=!0,Oe.ph0=ee(L[v]),Oe.ph1=ee(L[v+1],!0))),_e.push(Oe)}return _e.length===1&&(_e[0].width1=c.tickIncrement(_e[0].p,O.size,!1,S)-_e[0].p),i(_e,p),a.isArrayOrTypedArray(p.selectedpoints)&&a.tagSelected(_e,p,ge),_e},calcAllAutoBins:m}},{"../../lib":503,"../../plots/cartesian/axes":554,"../../registry":638,"../bar/arrays_to_calcdata":647,"./average":813,"./bin_functions":815,"./bin_label_vals":816,"./norm_functions":824,"fast-isnumeric":190}],818:[function(e,o,f){o.exports={eventDataKeys:["binNumber"]}},{}],819:[function(e,o,f){var r=e("../../lib"),a=e("../../plots/cartesian/axis_ids"),u=e("../../registry").traceIs,c=e("../bar/defaults").handleGroupingDefaults,i=r.nestedProperty,s=e("../../plots/cartesian/constraints").getAxisGroup,l=[{aStr:{x:"xbins.start",y:"ybins.start"},name:"start"},{aStr:{x:"xbins.end",y:"ybins.end"},name:"end"},{aStr:{x:"xbins.size",y:"ybins.size"},name:"size"},{aStr:{x:"nbinsx",y:"nbinsy"},name:"nbins"}],d=["x","y"];o.exports=function(h,m){var g,p,v,y,x,w,k,b=m._histogramBinOpts={},T=[],_={},M=[];function A(Y,Z){return r.coerce(g._input,g,g._module.attributes,Y,Z)}function S(Y){return Y.orientation==="v"?"x":"y"}function E(Y,Z,re){var U=Y.uid+"__"+re;Z||(Z=U);var q=function(Q,ee){return a.getFromTrace({_fullLayout:m},Q,ee).type}(Y,re),$=Y[re+"calendar"]||"",ne=b[Z],H=!0;ne&&(q===ne.axType&&$===ne.calendar?(H=!1,ne.traces.push(Y),ne.dirs.push(re)):(Z=U,q!==ne.axType&&r.warn(["Attempted to group the bins of trace",Y.index,"set on a","type:"+q,"axis","with bins on","type:"+ne.axType,"axis."].join(" ")),$!==ne.calendar&&r.warn(["Attempted to group the bins of trace",Y.index,"set with a",$,"calendar","with bins",ne.calendar?"on a "+ne.calendar+" calendar":"w/o a set calendar"].join(" ")))),H&&(b[Z]={traces:[Y],dirs:[re],axType:q,calendar:Y[re+"calendar"]||""}),Y["_"+re+"bingroup"]=Z}for(x=0;xL&&D.splice(L,D.length-L),z.length>L&&z.splice(L,z.length-L);var P=[],N=[],B=[],G=typeof E.size=="string",W=typeof R.size=="string",K=[],te=[],Y=G?K:E,Z=W?te:R,re=0,U=[],q=[],$=p.histnorm,ne=p.histfunc,H=$.indexOf("density")!==-1,Q=ne==="max"||ne==="min"?null:0,ee=u.count,ie=c[$],ae=!1,ue=[],le=[],ge="z"in p?p.z:"marker"in p&&Array.isArray(p.marker.color)?p.marker.color:"";ge&&ne!=="count"&&(ae=ne==="avg",ee=u[ne]);var fe=E.size,me=M(E.start),_e=M(E.end)+(me-a.tickIncrement(me,fe,!1,T))/1e6;for(v=me;v<_e;v=a.tickIncrement(v,fe,!1,T))N.push(Q),K.push(v),ae&&B.push(0);K.push(v);var we,Te=N.length,Oe=(v-me)/Te,de=(we=me+Oe/2,k.c2r(we,0,T)),ye=R.size,Me=A(R.start),ke=A(R.end)+(Me-a.tickIncrement(Me,ye,!1,_))/1e6;for(v=Me;v=0&&x=0&&w-1,flipY:L.tiling.flip.indexOf("y")>-1,orientation:L.tiling.orientation,pad:{inner:L.tiling.pad},maxDepth:L._maxDepth}).descendants(),W=1/0,K=-1/0;G.forEach(function(U){var q=U.depth;q>=L._maxDepth?(U.x0=U.x1=(U.x0+U.x1)/2,U.y0=U.y1=(U.y0+U.y1)/2):(W=Math.min(W,q),K=Math.max(K,q))}),y=y.data(G,d.getPtId),L._maxVisibleLayers=isFinite(K)?K-W+1:0,y.enter().append("g").classed("slice",!0),E(y,!1,{},[w,k],_),y.order();var te=null;if(S&&R){var Y=d.getPtId(R);y.each(function(U){te===null&&d.getPtId(U)===Y&&(te={x0:U.x0,x1:U.x1,y0:U.y0,y1:U.y1})})}var Z=function(){return te||{x0:0,x1:w,y0:0,y1:k}},re=y;return S&&(re=re.transition().each("end",function(){var U=r.select(this);d.setSliceCursor(U,g,{hideOnRoot:!0,hideOnLeaves:!1,isTransitioning:!1})})),re.each(function(U){U._x0=b(U.x0),U._x1=b(U.x1),U._y0=T(U.y0),U._y1=T(U.y1),U._hoverX=b(U.x1-L.tiling.pad),U._hoverY=T(B?U.y1-L.tiling.pad/2:U.y0+L.tiling.pad/2);var q=r.select(this),$=a.ensureSingle(q,"path","surface",function(ee){ee.style("pointer-events","all")});S?$.transition().attrTween("d",function(ee){var ie=D(ee,!1,Z(),[w,k],{orientation:L.tiling.orientation,flipX:L.tiling.flip.indexOf("x")>-1,flipY:L.tiling.flip.indexOf("y")>-1});return function(ae){return _(ie(ae))}}):$.attr("d",_),q.call(h,v,g,p,{styleOne:s,eventDataKeys:l.eventDataKeys,transitionTime:l.CLICK_TRANSITION_TIME,transitionEasing:l.CLICK_TRANSITION_EASING}).call(d.setSliceCursor,g,{isTransitioning:g._transitioning}),$.call(s,U,L,{hovered:!1}),U.x0===U.x1||U.y0===U.y1?U._text="":U._text=m(U,v,L,p,z)||"";var ne=a.ensureSingle(q,"g","slicetext"),H=a.ensureSingle(ne,"text","",function(ee){ee.attr("data-notex",1)}),Q=a.ensureUniformFontSize(g,d.determineTextFont(L,U,z.font));H.text(U._text||" ").classed("slicetext",!0).attr("text-anchor",N?"end":P?"start":"middle").call(u.font,Q).call(c.convertToTspans,g),U.textBB=u.bBox(H.node()),U.transform=M(U,{fontSize:Q.size}),U.transform.fontSize=Q.size,S?H.transition().attrTween("transform",function(ee){var ie=O(ee,!1,Z(),[w,k]);return function(ae){return A(ie(ae))}}):H.attr("transform",A(U))}),te}},{"../../components/drawing":388,"../../lib":503,"../../lib/svg_text_utils":529,"../sunburst/fx":1054,"../sunburst/helpers":1055,"../sunburst/plot":1059,"../treemap/constants":1078,"./partition":842,"./style":844,"@plotly/d3":58}],839:[function(e,o,f){o.exports={moduleType:"trace",name:"icicle",basePlotModule:e("./base_plot"),categories:[],animatable:!0,attributes:e("./attributes"),layoutAttributes:e("./layout_attributes"),supplyDefaults:e("./defaults"),supplyLayoutDefaults:e("./layout_defaults"),calc:e("./calc").calc,crossTraceCalc:e("./calc").crossTraceCalc,plot:e("./plot"),style:e("./style").style,colorbar:e("../scatter/marker_colorbar"),meta:{}}},{"../scatter/marker_colorbar":945,"./attributes":834,"./base_plot":835,"./calc":836,"./defaults":837,"./layout_attributes":840,"./layout_defaults":841,"./plot":843,"./style":844}],840:[function(e,o,f){o.exports={iciclecolorway:{valType:"colorlist",editType:"calc"},extendiciclecolors:{valType:"boolean",dflt:!0,editType:"calc"}}},{}],841:[function(e,o,f){var r=e("../../lib"),a=e("./layout_attributes");o.exports=function(u,c){function i(s,l){return r.coerce(u,c,a,s,l)}i("iciclecolorway",c.colorway),i("extendiciclecolors")}},{"../../lib":503,"./layout_attributes":840}],842:[function(e,o,f){var r=e("d3-hierarchy"),a=e("../treemap/flip_tree");o.exports=function(u,c,i){var s=i.flipX,l=i.flipY,d=i.orientation==="h",h=i.maxDepth,m=c[0],g=c[1];h&&(m=(u.height+1)*c[0]/Math.min(u.height+1,h),g=(u.height+1)*c[1]/Math.min(u.height+1,h));var p=r.partition().padding(i.pad.inner).size(d?[c[1],m]:[c[0],g])(u);return(d||s||l)&&a(p,c,{swapXY:d,flipX:s,flipY:l}),p}},{"../treemap/flip_tree":1083,"d3-hierarchy":115}],843:[function(e,o,f){var r=e("../treemap/draw"),a=e("./draw_descendants");o.exports=function(u,c,i,s){return r(u,c,i,s,{type:"icicle",drawDescendants:a})}},{"../treemap/draw":1080,"./draw_descendants":838}],844:[function(e,o,f){var r=e("@plotly/d3"),a=e("../../components/color"),u=e("../../lib"),c=e("../bar/uniform_text").resizeText;function i(s,l,d){var h=l.data.data,m=!l.children,g=h.i,p=u.castOption(d,g,"marker.line.color")||a.defaultLine,v=u.castOption(d,g,"marker.line.width")||0;s.style("stroke-width",v).call(a.fill,h.color).call(a.stroke,p).style("opacity",m?d.leaf.opacity:null)}o.exports={style:function(s){var l=s._fullLayout._iciclelayer.selectAll(".trace");c(s,l,"icicle"),l.each(function(d){var h=r.select(this),m=d[0].trace;h.style("opacity",m.opacity),h.selectAll("path.surface").each(function(g){r.select(this).call(i,g,m)})})},styleOne:i}},{"../../components/color":366,"../../lib":503,"../bar/uniform_text":664,"@plotly/d3":58}],845:[function(e,o,f){for(var r=e("../../plots/attributes"),a=e("../../plots/template_attributes").hovertemplateAttrs,u=e("../../lib/extend").extendFlat,c=e("./constants").colormodel,i=["rgb","rgba","rgba256","hsl","hsla"],s=[],l=[],d=0;d0||r.inbox(s-l.y0,s-(l.y0+l.h*d.dy),0)>0)){var g,p=Math.floor((i-l.x0)/d.dx),v=Math.floor(Math.abs(s-l.y0)/d.dy);if(d._hasZ?g=l.z[v][p]:d._hasSource&&(g=d._canvas.el.getContext("2d").getImageData(p,v,1,1).data),g){var y,x=l.hi||d.hoverinfo;if(x){var w=x.split("+");w.indexOf("all")!==-1&&(w=["color"]),w.indexOf("color")!==-1&&(y=!0)}var k,b=u.colormodel[d.colormodel],T=b.colormodel||d.colormodel,_=T.length,M=d._scaler(g),A=b.suffix,S=[];(d.hovertemplate||y)&&(S.push("["+[M[0]+A[0],M[1]+A[1],M[2]+A[2]].join(", ")),_===4&&S.push(", "+M[3]+A[3]),S.push("]"),S=S.join(""),c.extraText=T.toUpperCase()+": "+S),Array.isArray(d.hovertext)&&Array.isArray(d.hovertext[v])?k=d.hovertext[v][p]:Array.isArray(d.text)&&Array.isArray(d.text[v])&&(k=d.text[v][p]);var E=m.c2p(l.y0+(v+.5)*d.dy),D=l.x0+(p+.5)*d.dx,O=l.y0+(v+.5)*d.dy,R="["+g.slice(0,d.colormodel.length).join(", ")+"]";return[a.extendFlat(c,{index:[v,p],x0:h.c2p(l.x0+p*d.dx),x1:h.c2p(l.x0+(p+1)*d.dx),y0:E,y1:E,color:M,xVal:D,xLabelVal:D,yVal:O,yLabelVal:O,zLabelVal:R,text:k,hovertemplateLabels:{zLabel:R,colorLabel:S,"color[0]Label":M[0]+A[0],"color[1]Label":M[1]+A[1],"color[2]Label":M[2]+A[2],"color[3]Label":M[3]+A[3]}})]}}}},{"../../components/fx":406,"../../lib":503,"./constants":847}],852:[function(e,o,f){o.exports={attributes:e("./attributes"),supplyDefaults:e("./defaults"),calc:e("./calc"),plot:e("./plot"),style:e("./style"),hoverPoints:e("./hover"),eventData:e("./event_data"),moduleType:"trace",name:"image",basePlotModule:e("../../plots/cartesian"),categories:["cartesian","svg","2dMap","noSortingByValue"],animatable:!1,meta:{}}},{"../../plots/cartesian":568,"./attributes":845,"./calc":846,"./defaults":848,"./event_data":849,"./hover":851,"./plot":853,"./style":854}],853:[function(e,o,f){var r=e("@plotly/d3"),a=e("../../lib"),u=a.strTranslate,c=e("../../constants/xmlns_namespaces"),i=e("./constants"),s=a.isIOS()||a.isSafari()||a.isIE();o.exports=function(l,d,h,m){var g=d.xaxis,p=d.yaxis,v=!(s||l._context._exportedPlot);a.makeTraceGroups(m,h,"im").each(function(y){var x=r.select(this),w=y[0],k=w.trace,b=(k.zsmooth==="fast"||k.zsmooth===!1&&v)&&!k._hasZ&&k._hasSource&&g.type==="linear"&&p.type==="linear";k._realImage=b;var T,_,M,A,S,E,D=w.z,O=w.x0,R=w.y0,z=w.w,L=w.h,P=k.dx,N=k.dy;for(E=0;T===void 0&&E0;)_=g.c2p(O+E*P),E--;for(E=0;A===void 0&&E0;)S=p.c2p(R+E*N),E--;_Y[0];if(Z||re){var U=T+B/2,q=A+G/2;K+="transform:"+u(U+"px",q+"px")+"scale("+(Z?-1:1)+","+(re?-1:1)+")"+u(-U+"px",-q+"px")+";"}}W.attr("style",K);var $=new Promise(function(H){if(k._hasZ)H();else if(k._hasSource)if(k._canvas&&k._canvas.el.width===z&&k._canvas.el.height===L&&k._canvas.source===k.source)H();else{var Q=document.createElement("canvas");Q.width=z,Q.height=L;var ee=Q.getContext("2d");k._image=k._image||new Image;var ie=k._image;ie.onload=function(){ee.drawImage(ie,0,0),k._canvas={el:Q,source:k.source},H()},ie.setAttribute("src",k.source)}}).then(function(){var H;if(k._hasZ)H=ne(function(ee,ie){return D[ie][ee]}).toDataURL("image/png");else if(k._hasSource)if(b)H=k.source;else{var Q=k._canvas.el.getContext("2d").getImageData(0,0,z,L).data;H=ne(function(ee,ie){var ae=4*(ie*z+ee);return[Q[ae],Q[ae+1],Q[ae+2],Q[ae+3]]}).toDataURL("image/png")}W.attr({"xlink:href":H,height:G,width:B,x:T,y:A})});l._promises.push($)}function ne(H){var Q=document.createElement("canvas");Q.width=B,Q.height=G;var ee,ie=Q.getContext("2d"),ae=function(de){return a.constrain(Math.round(g.c2p(O+de*P)-T),0,B)},ue=function(de){return a.constrain(Math.round(p.c2p(R+de*N)-A),0,G)},le=i.colormodel[k.colormodel],ge=le.colormodel||k.colormodel,fe=le.fmt;for(E=0;E0}function M(O){O.each(function(R){w.stroke(r.select(this),R.line.color)}).each(function(R){w.fill(r.select(this),R.color)}).style("stroke-width",function(R){return R.line.width})}function A(O,R,z){var L=O._fullLayout,P=c.extendFlat({type:"linear",ticks:"outside",range:z,showline:!0},R),N={type:"linear",_id:"x"+R._id},B={letter:"x",font:L.font,noHover:!0,noTickson:!0};function G(W,K){return c.coerce(P,N,x,W,K)}return v(P,N,G,B,L),y(P,N,G,B),N}function S(O,R,z){return[Math.min(R/O.width,z/O.height),O,R+"x"+z]}function E(O,R,z,L){var P=document.createElementNS("http://www.w3.org/2000/svg","text"),N=r.select(P);return N.text(O).attr("x",0).attr("y",0).attr("text-anchor",z).attr("data-unformatted",O).call(g.convertToTspans,L).call(h.font,R),h.bBox(N.node())}function D(O,R,z,L,P,N){var B="_cache"+R;O[B]&&O[B].key===P||(O[B]={key:P,value:z});var G=c.aggNums(N,null,[O[B].value,L],2);return O[B].value=G,G}o.exports=function(O,R,z,L){var P,N=O._fullLayout;_(z)&&L&&(P=L()),c.makeTraceGroups(N._indicatorlayer,R,"trace").each(function(B){var G,W,K,te,Y,Z=B[0].trace,re=r.select(this),U=Z._hasGauge,q=Z._isAngular,$=Z._isBullet,ne=Z.domain,H={w:N._size.w*(ne.x[1]-ne.x[0]),h:N._size.h*(ne.y[1]-ne.y[0]),l:N._size.l+N._size.w*ne.x[0],r:N._size.r+N._size.w*(1-ne.x[1]),t:N._size.t+N._size.h*(1-ne.y[1]),b:N._size.b+N._size.h*ne.y[0]},Q=H.l+H.w/2,ee=H.t+H.h/2,ie=Math.min(H.w/2,H.h),ae=m.innerRadius*ie,ue=Z.align||"center";if(W=ee,U){if(q&&(G=Q,W=ee+ie/2,K=function(Oe){return function(de,ye){var Me=Math.sqrt(de.width/2*(de.width/2)+de.height*de.height);return[ye/Me,de,ye]}(Oe,.9*ae)}),$){var le=m.bulletPadding,ge=1-m.bulletNumberDomainSize+le;G=H.l+(ge+(1-ge)*b[ue])*H.w,K=function(Oe){return S(Oe,(m.bulletNumberDomainSize-le)*H.w,H.h)}}}else G=H.l+b[ue]*H.w,K=function(Oe){return S(Oe,H.w,H.h)};(function(Oe,de,ye,Me){var ke,Ee,ze,Fe=ye[0].trace,Ve=Me.numbersX,Ke=Me.numbersY,Re=Fe.align||"center",qe=k[Re],We=Me.transitionOpts,Ye=Me.onComplete,nt=c.ensureSingle(de,"g","numbers"),ft=[];Fe._hasNumber&&ft.push("number"),Fe._hasDelta&&(ft.push("delta"),Fe.delta.position==="left"&&ft.reverse());var vt=nt.selectAll("text").data(ft);function Pt(Ge,Tt,dt,Pe){if(!Ge.match("s")||dt>=0==Pe>=0||Tt(dt).slice(-1).match(T)||Tt(Pe).slice(-1).match(T))return Tt;var Ie=Ge.slice().replace("s","f").replace(/\d+/,function(De){return parseInt(De)-1}),Ae=A(Oe,{tickformat:Ie});return function(De){return Math.abs(De)<1?p.tickText(Ae,De).text:Tt(De)}}vt.enter().append("text"),vt.attr("text-anchor",function(){return qe}).attr("class",function(Ge){return Ge}).attr("x",null).attr("y",null).attr("dx",null).attr("dy",null),vt.exit().remove();var At,at=Fe.mode+Fe.align;if(Fe._hasDelta&&(At=function(){var Ge=A(Oe,{tickformat:Fe.delta.valueformat},Fe._range);Ge.setScale(),p.prepTicks(Ge);var Tt=function(He){return p.tickText(Ge,He).text},dt=function(He){return Fe.delta.relative?He.relativeDelta:He.delta},Pe=function(He,rt){return He===0||typeof He!="number"||isNaN(He)?"-":(He>0?Fe.delta.increasing.symbol:Fe.delta.decreasing.symbol)+rt(He)},Ie=function(He){return He.delta>=0?Fe.delta.increasing.color:Fe.delta.decreasing.color};Fe._deltaLastValue===void 0&&(Fe._deltaLastValue=dt(ye[0]));var Ae=nt.select("text.delta");function De(){Ae.text(Pe(dt(ye[0]),Tt)).call(w.fill,Ie(ye[0])).call(g.convertToTspans,Oe)}return Ae.call(h.font,Fe.delta.font).call(w.fill,Ie({delta:Fe._deltaLastValue})),_(We)?Ae.transition().duration(We.duration).ease(We.easing).tween("text",function(){var He=r.select(this),rt=dt(ye[0]),lt=Fe._deltaLastValue,ot=Pt(Fe.delta.valueformat,Tt,lt,rt),kt=u(lt,rt);return Fe._deltaLastValue=rt,function(wt){He.text(Pe(kt(wt),ot)),He.call(w.fill,Ie({delta:kt(wt)}))}}).each("end",function(){De(),Ye&&Ye()}).each("interrupt",function(){De(),Ye&&Ye()}):De(),Ee=E(Pe(dt(ye[0]),Tt),Fe.delta.font,qe,Oe),Ae}(),at+=Fe.delta.position+Fe.delta.font.size+Fe.delta.font.family+Fe.delta.valueformat,at+=Fe.delta.increasing.symbol+Fe.delta.decreasing.symbol,ze=Ee),Fe._hasNumber&&(function(){var Ge=A(Oe,{tickformat:Fe.number.valueformat},Fe._range);Ge.setScale(),p.prepTicks(Ge);var Tt=function(De){return p.tickText(Ge,De).text},dt=Fe.number.suffix,Pe=Fe.number.prefix,Ie=nt.select("text.number");function Ae(){var De=typeof ye[0].y=="number"?Pe+Tt(ye[0].y)+dt:"-";Ie.text(De).call(h.font,Fe.number.font).call(g.convertToTspans,Oe)}_(We)?Ie.transition().duration(We.duration).ease(We.easing).each("end",function(){Ae(),Ye&&Ye()}).each("interrupt",function(){Ae(),Ye&&Ye()}).attrTween("text",function(){var De=r.select(this),He=u(ye[0].lastY,ye[0].y);Fe._lastValue=ye[0].y;var rt=Pt(Fe.number.valueformat,Tt,ye[0].lastY,ye[0].y);return function(lt){De.text(Pe+rt(He(lt))+dt)}}):Ae(),ke=E(Pe+Tt(ye[0].y)+dt,Fe.number.font,qe,Oe)}(),at+=Fe.number.font.size+Fe.number.font.family+Fe.number.valueformat+Fe.number.suffix+Fe.number.prefix,ze=ke),Fe._hasDelta&&Fe._hasNumber){var et,Ot,Wt=[(ke.left+ke.right)/2,(ke.top+ke.bottom)/2],Jt=[(Ee.left+Ee.right)/2,(Ee.top+Ee.bottom)/2],Be=.75*Fe.delta.font.size;Fe.delta.position==="left"&&(et=D(Fe,"deltaPos",0,-1*(ke.width*b[Fe.align]+Ee.width*(1-b[Fe.align])+Be),at,Math.min),Ot=Wt[1]-Jt[1],ze={width:ke.width+Ee.width+Be,height:Math.max(ke.height,Ee.height),left:Ee.left+et,right:ke.right,top:Math.min(ke.top,Ee.top+Ot),bottom:Math.max(ke.bottom,Ee.bottom+Ot)}),Fe.delta.position==="right"&&(et=D(Fe,"deltaPos",0,ke.width*(1-b[Fe.align])+Ee.width*b[Fe.align]+Be,at,Math.max),Ot=Wt[1]-Jt[1],ze={width:ke.width+Ee.width+Be,height:Math.max(ke.height,Ee.height),left:ke.left,right:Ee.right+et,top:Math.min(ke.top,Ee.top+Ot),bottom:Math.max(ke.bottom,Ee.bottom+Ot)}),Fe.delta.position==="bottom"&&(et=null,Ot=Ee.height,ze={width:Math.max(ke.width,Ee.width),height:ke.height+Ee.height,left:Math.min(ke.left,Ee.left),right:Math.max(ke.right,Ee.right),top:ke.bottom-ke.height,bottom:ke.bottom+Ee.height}),Fe.delta.position==="top"&&(et=null,Ot=ke.top,ze={width:Math.max(ke.width,Ee.width),height:ke.height+Ee.height,left:Math.min(ke.left,Ee.left),right:Math.max(ke.right,Ee.right),top:ke.bottom-ke.height-Ee.height,bottom:ke.bottom}),At.attr({dx:et,dy:Ot})}(Fe._hasNumber||Fe._hasDelta)&&nt.attr("transform",function(){var Ge=Me.numbersScaler(ze);at+=Ge[2];var Tt,dt=D(Fe,"numbersScale",1,Ge[0],at,Math.min);Fe._scaleNumbers||(dt=1),Tt=Fe._isAngular?Ke-dt*ze.bottom:Ke-dt*(ze.top+ze.bottom)/2,Fe._numbersTop=dt*ze.top+Tt;var Pe=ze[Re];Re==="center"&&(Pe=(ze.left+ze.right)/2);var Ie=Ve-dt*Pe;return Ie=D(Fe,"numbersTranslate",0,Ie,at,Math.max),s(Ie,Tt)+i(dt)})})(O,re,B,{numbersX:G,numbersY:W,numbersScaler:K,transitionOpts:z,onComplete:P}),U&&(te={range:Z.gauge.axis.range,color:Z.gauge.bgcolor,line:{color:Z.gauge.bordercolor,width:0},thickness:1},Y={range:Z.gauge.axis.range,color:"rgba(0, 0, 0, 0)",line:{color:Z.gauge.bordercolor,width:Z.gauge.borderwidth},thickness:1});var fe=re.selectAll("g.angular").data(q?B:[]);fe.exit().remove();var me=re.selectAll("g.angularaxis").data(q?B:[]);me.exit().remove(),q&&function(Oe,de,ye,Me){var ke,Ee,ze,Fe,Ve=ye[0].trace,Ke=Me.size,Re=Me.radius,qe=Me.innerRadius,We=Me.gaugeBg,Ye=Me.gaugeOutline,nt=[Ke.l+Ke.w/2,Ke.t+Ke.h/2+Re/2],ft=Me.gauge,vt=Me.layer,Pt=Me.transitionOpts,At=Me.onComplete,at=Math.PI/2;function et(Ut){var tt=Ve.gauge.axis.range[0],bt=(Ut-tt)/(Ve.gauge.axis.range[1]-tt)*Math.PI-at;return bt<-at?-at:bt>at?at:bt}function Ot(Ut){return r.svg.arc().innerRadius((qe+Re)/2-Ut/2*(Re-qe)).outerRadius((qe+Re)/2+Ut/2*(Re-qe)).startAngle(-at)}function Wt(Ut){Ut.attr("d",function(tt){return Ot(tt.thickness).startAngle(et(tt.range[0])).endAngle(et(tt.range[1]))()})}ft.enter().append("g").classed("angular",!0),ft.attr("transform",s(nt[0],nt[1])),vt.enter().append("g").classed("angularaxis",!0).classed("crisp",!0),vt.selectAll("g.xangularaxistick,path,text").remove(),(ke=A(Oe,Ve.gauge.axis)).type="linear",ke.range=Ve.gauge.axis.range,ke._id="xangularaxis",ke.ticklabeloverflow="allow",ke.setScale();var Jt=function(Ut){return(ke.range[0]-Ut.x)/(ke.range[1]-ke.range[0])*Math.PI+Math.PI},Be={},Ge=p.makeLabelFns(ke,0).labelStandoff;Be.xFn=function(Ut){var tt=Jt(Ut);return Math.cos(tt)*Ge},Be.yFn=function(Ut){var tt=Jt(Ut),bt=Math.sin(tt)>0?.2:1;return-Math.sin(tt)*(Ge+Ut.fontSize*bt)+Math.abs(Math.cos(tt))*(Ut.fontSize*d)},Be.anchorFn=function(Ut){var tt=Jt(Ut),bt=Math.cos(tt);return Math.abs(bt)<.1?"middle":bt>0?"start":"end"},Be.heightFn=function(Ut,tt,bt){var zt=Jt(Ut);return-.5*(1+Math.sin(zt))*bt};var Tt=function(Ut){return s(nt[0]+Re*Math.cos(Ut),nt[1]-Re*Math.sin(Ut))};if(ze=function(Ut){return Tt(Jt(Ut))},Ee=p.calcTicks(ke),Fe=p.getTickSigns(ke)[2],ke.visible){Fe=ke.ticks==="inside"?-1:1;var dt=(ke.linewidth||1)/2;p.drawTicks(Oe,ke,{vals:Ee,layer:vt,path:"M"+Fe*dt+",0h"+Fe*ke.ticklen,transFn:function(Ut){var tt=Jt(Ut);return Tt(tt)+"rotate("+-l(tt)+")"}}),p.drawLabels(Oe,ke,{vals:Ee,layer:vt,transFn:ze,labelFns:Be})}var Pe=[We].concat(Ve.gauge.steps),Ie=ft.selectAll("g.bg-arc").data(Pe);Ie.enter().append("g").classed("bg-arc",!0).append("path"),Ie.select("path").call(Wt).call(M),Ie.exit().remove();var Ae=Ot(Ve.gauge.bar.thickness),De=ft.selectAll("g.value-arc").data([Ve.gauge.bar]);De.enter().append("g").classed("value-arc",!0).append("path");var He=De.select("path");_(Pt)?(He.transition().duration(Pt.duration).ease(Pt.easing).each("end",function(){At&&At()}).each("interrupt",function(){At&&At()}).attrTween("d",(rt=Ae,lt=et(ye[0].lastY),ot=et(ye[0].y),function(){var Ut=a(lt,ot);return function(tt){return rt.endAngle(Ut(tt))()}})),Ve._lastValue=ye[0].y):He.attr("d",typeof ye[0].y=="number"?Ae.endAngle(et(ye[0].y)):"M0,0Z");var rt,lt,ot;He.call(M),De.exit().remove(),Pe=[];var kt=Ve.gauge.threshold.value;(kt||kt===0)&&Pe.push({range:[kt,kt],color:Ve.gauge.threshold.color,line:{color:Ve.gauge.threshold.line.color,width:Ve.gauge.threshold.line.width},thickness:Ve.gauge.threshold.thickness});var wt=ft.selectAll("g.threshold-arc").data(Pe);wt.enter().append("g").classed("threshold-arc",!0).append("path"),wt.select("path").call(Wt).call(M),wt.exit().remove();var Vt=ft.selectAll("g.gauge-outline").data([Ye]);Vt.enter().append("g").classed("gauge-outline",!0).append("path"),Vt.select("path").call(Wt).call(M),Vt.exit().remove()}(O,0,B,{radius:ie,innerRadius:ae,gauge:fe,layer:me,size:H,gaugeBg:te,gaugeOutline:Y,transitionOpts:z,onComplete:P});var _e=re.selectAll("g.bullet").data($?B:[]);_e.exit().remove();var we=re.selectAll("g.bulletaxis").data($?B:[]);we.exit().remove(),$&&function(Oe,de,ye,Me){var ke,Ee,ze,Fe,Ve,Ke=ye[0].trace,Re=Me.gauge,qe=Me.layer,We=Me.gaugeBg,Ye=Me.gaugeOutline,nt=Me.size,ft=Ke.domain,vt=Me.transitionOpts,Pt=Me.onComplete;Re.enter().append("g").classed("bullet",!0),Re.attr("transform",s(nt.l,nt.t)),qe.enter().append("g").classed("bulletaxis",!0).classed("crisp",!0),qe.selectAll("g.xbulletaxistick,path,text").remove();var At=nt.h,at=Ke.gauge.bar.thickness*At,et=ft.x[0],Ot=ft.x[0]+(ft.x[1]-ft.x[0])*(Ke._hasNumber||Ke._hasDelta?1-m.bulletNumberDomainSize:1);(ke=A(Oe,Ke.gauge.axis))._id="xbulletaxis",ke.domain=[et,Ot],ke.setScale(),Ee=p.calcTicks(ke),ze=p.makeTransTickFn(ke),Fe=p.getTickSigns(ke)[2],Ve=nt.t+nt.h,ke.visible&&(p.drawTicks(Oe,ke,{vals:ke.ticks==="inside"?p.clipEnds(ke,Ee):Ee,layer:qe,path:p.makeTickPath(ke,Ve,Fe),transFn:ze}),p.drawLabels(Oe,ke,{vals:Ee,layer:qe,transFn:ze,labelFns:p.makeLabelFns(ke,Ve)}));function Wt(Ie){Ie.attr("width",function(Ae){return Math.max(0,ke.c2p(Ae.range[1])-ke.c2p(Ae.range[0]))}).attr("x",function(Ae){return ke.c2p(Ae.range[0])}).attr("y",function(Ae){return .5*(1-Ae.thickness)*At}).attr("height",function(Ae){return Ae.thickness*At})}var Jt=[We].concat(Ke.gauge.steps),Be=Re.selectAll("g.bg-bullet").data(Jt);Be.enter().append("g").classed("bg-bullet",!0).append("rect"),Be.select("rect").call(Wt).call(M),Be.exit().remove();var Ge=Re.selectAll("g.value-bullet").data([Ke.gauge.bar]);Ge.enter().append("g").classed("value-bullet",!0).append("rect"),Ge.select("rect").attr("height",at).attr("y",(At-at)/2).call(M),_(vt)?Ge.select("rect").transition().duration(vt.duration).ease(vt.easing).each("end",function(){Pt&&Pt()}).each("interrupt",function(){Pt&&Pt()}).attr("width",Math.max(0,ke.c2p(Math.min(Ke.gauge.axis.range[1],ye[0].y)))):Ge.select("rect").attr("width",typeof ye[0].y=="number"?Math.max(0,ke.c2p(Math.min(Ke.gauge.axis.range[1],ye[0].y))):0),Ge.exit().remove();var Tt=ye.filter(function(){return Ke.gauge.threshold.value||Ke.gauge.threshold.value===0}),dt=Re.selectAll("g.threshold-bullet").data(Tt);dt.enter().append("g").classed("threshold-bullet",!0).append("line"),dt.select("line").attr("x1",ke.c2p(Ke.gauge.threshold.value)).attr("x2",ke.c2p(Ke.gauge.threshold.value)).attr("y1",(1-Ke.gauge.threshold.thickness)/2*At).attr("y2",(1-(1-Ke.gauge.threshold.thickness)/2)*At).call(w.stroke,Ke.gauge.threshold.line.color).style("stroke-width",Ke.gauge.threshold.line.width),dt.exit().remove();var Pe=Re.selectAll("g.gauge-outline").data([Ye]);Pe.enter().append("g").classed("gauge-outline",!0).append("rect"),Pe.select("rect").call(Wt).call(M),Pe.exit().remove()}(O,0,B,{gauge:_e,layer:we,size:H,gaugeBg:te,gaugeOutline:Y,transitionOpts:z,onComplete:P});var Te=re.selectAll("text.title").data(B);Te.exit().remove(),Te.enter().append("text").classed("title",!0),Te.attr("text-anchor",function(){return $?k.right:k[Z.title.align]}).text(Z.title.text).call(h.font,Z.title.font).call(g.convertToTspans,O),Te.attr("transform",function(){var Oe,de=H.l+H.w*b[Z.title.align],ye=m.titlePadding,Me=h.bBox(Te.node());return U?(q&&(Z.gauge.axis.visible?Oe=h.bBox(me.node()).top-ye-Me.bottom:Oe=H.t+H.h/2-ie/2-Me.bottom-ye),$&&(Oe=W-(Me.top+Me.bottom)/2,de=H.l-m.bulletPadding*H.w)):Oe=Z._numbersTop-ye-Me.bottom,s(de,Oe)})})}},{"../../components/color":366,"../../components/drawing":388,"../../constants/alignment":471,"../../lib":503,"../../lib/svg_text_utils":529,"../../plots/cartesian/axes":554,"../../plots/cartesian/axis_defaults":556,"../../plots/cartesian/layout_attributes":569,"../../plots/cartesian/position_defaults":572,"./constants":858,"@plotly/d3":58,"d3-interpolate":116}],862:[function(e,o,f){var r=e("../../components/colorscale/attributes"),a=e("../../plots/cartesian/axis_format_attributes").axisHoverFormat,u=e("../../plots/template_attributes").hovertemplateAttrs,c=e("../mesh3d/attributes"),i=e("../../plots/attributes"),s=e("../../lib/extend").extendFlat,l=e("../../plot_api/edit_types").overrideAll,d=o.exports=l(s({x:{valType:"data_array"},y:{valType:"data_array"},z:{valType:"data_array"},value:{valType:"data_array"},isomin:{valType:"number"},isomax:{valType:"number"},surface:{show:{valType:"boolean",dflt:!0},count:{valType:"integer",dflt:2,min:1},fill:{valType:"number",min:0,max:1,dflt:1},pattern:{valType:"flaglist",flags:["A","B","C","D","E"],extras:["all","odd","even"],dflt:"all"}},spaceframe:{show:{valType:"boolean",dflt:!1},fill:{valType:"number",min:0,max:1,dflt:.15}},slices:{x:{show:{valType:"boolean",dflt:!1},locations:{valType:"data_array",dflt:[]},fill:{valType:"number",min:0,max:1,dflt:1}},y:{show:{valType:"boolean",dflt:!1},locations:{valType:"data_array",dflt:[]},fill:{valType:"number",min:0,max:1,dflt:1}},z:{show:{valType:"boolean",dflt:!1},locations:{valType:"data_array",dflt:[]},fill:{valType:"number",min:0,max:1,dflt:1}}},caps:{x:{show:{valType:"boolean",dflt:!0},fill:{valType:"number",min:0,max:1,dflt:1}},y:{show:{valType:"boolean",dflt:!0},fill:{valType:"number",min:0,max:1,dflt:1}},z:{show:{valType:"boolean",dflt:!0},fill:{valType:"number",min:0,max:1,dflt:1}}},text:{valType:"string",dflt:"",arrayOk:!0},hovertext:{valType:"string",dflt:"",arrayOk:!0},hovertemplate:u(),xhoverformat:a("x"),yhoverformat:a("y"),zhoverformat:a("z"),valuehoverformat:a("value",1),showlegend:s({},i.showlegend,{dflt:!1})},r("",{colorAttr:"`value`",showScaleDflt:!0,editTypeOverride:"calc"}),{opacity:c.opacity,lightposition:c.lightposition,lighting:c.lighting,flatshading:c.flatshading,contour:c.contour,hoverinfo:s({},i.hoverinfo)}),"calc","nested");d.flatshading.dflt=!0,d.lighting.facenormalsepsilon.dflt=0,d.x.editType=d.y.editType=d.z.editType=d.value.editType="calc+clearAxisTypes",d.transforms=void 0},{"../../components/colorscale/attributes":373,"../../lib/extend":493,"../../plot_api/edit_types":536,"../../plots/attributes":550,"../../plots/cartesian/axis_format_attributes":557,"../../plots/template_attributes":633,"../mesh3d/attributes":867}],863:[function(e,o,f){var r=e("../../components/colorscale/calc"),a=e("../streamtube/calc").processGrid,u=e("../streamtube/calc").filter;o.exports=function(c,i){i._len=Math.min(i.x.length,i.y.length,i.z.length,i.value.length),i._x=u(i.x,i._len),i._y=u(i.y,i._len),i._z=u(i.z,i._len),i._value=u(i.value,i._len);var s=a(i);i._gridFill=s.fill,i._Xs=s.Xs,i._Ys=s.Ys,i._Zs=s.Zs,i._len=s.len;for(var l=1/0,d=-1/0,h=0;h0;v--){var y=Math.min(p[v],p[v-1]),x=Math.max(p[v],p[v-1]);if(x>y&&y-1}function Q(Re,qe){return Re===null?qe:Re}function ee(Re,qe,We){re();var Ye,nt,ft,vt=[qe],Pt=[We];if(b>=1)vt=[qe],Pt=[We];else if(b>0){var At=function(dt,Pe){var Ie=dt[0],Ae=dt[1],De=dt[2],He=function(tt,bt,zt){for(var St=[],Dt=0;Dt-1?We[Ot]:Z(Wt,Jt,Be);et[Ot]=Tt>-1?Tt:q(Wt,Jt,Be,Q(Re,Ge))}Ye=et[0],nt=et[1],ft=et[2],g._meshI.push(Ye),g._meshJ.push(nt),g._meshK.push(ft),++D}}function ie(Re,qe,We,Ye){var nt=Re[3];ntYe&&(nt=Ye);for(var ft=(Re[3]-nt)/(Re[3]-qe[3]+1e-9),vt=[],Pt=0;Pt<4;Pt++)vt[Pt]=(1-ft)*Re[Pt]+ft*qe[Pt];return vt}function ae(Re,qe,We){return Re>=qe&&Re<=We}function ue(Re){var qe=.001*(Y-te);return Re>=te-qe&&Re<=Y+qe}function le(Re){for(var qe=[],We=0;We<4;We++){var Ye=Re[We];qe.push([g._x[Ye],g._y[Ye],g._z[Ye],g._value[Ye]])}return qe}function ge(Re,qe,We,Ye,nt,ft){ft||(ft=1),We=[-1,-1,-1];var vt=!1,Pt=[ae(qe[0][3],Ye,nt),ae(qe[1][3],Ye,nt),ae(qe[2][3],Ye,nt)];if(!Pt[0]&&!Pt[1]&&!Pt[2])return!1;var At=function(et,Ot,Wt){return ue(Ot[0][3])&&ue(Ot[1][3])&&ue(Ot[2][3])?(ee(et,Ot,Wt),!0):ft<3&&ge(et,Ot,Wt,te,Y,++ft)};if(Pt[0]&&Pt[1]&&Pt[2])return At(Re,qe,We)||vt;var at=!1;return[[0,1,2],[2,0,1],[1,2,0]].forEach(function(et){if(Pt[et[0]]&&Pt[et[1]]&&!Pt[et[2]]){var Ot=qe[et[0]],Wt=qe[et[1]],Jt=qe[et[2]],Be=ie(Jt,Ot,Ye,nt),Ge=ie(Jt,Wt,Ye,nt);vt=At(Re,[Ge,Be,Ot],[-1,-1,We[et[0]]])||vt,vt=At(Re,[Ot,Wt,Ge],[We[et[0]],We[et[1]],-1])||vt,at=!0}}),at||[[0,1,2],[1,2,0],[2,0,1]].forEach(function(et){if(Pt[et[0]]&&!Pt[et[1]]&&!Pt[et[2]]){var Ot=qe[et[0]],Wt=qe[et[1]],Jt=qe[et[2]],Be=ie(Wt,Ot,Ye,nt),Ge=ie(Jt,Ot,Ye,nt);vt=At(Re,[Ge,Be,Ot],[-1,-1,We[et[0]]])||vt,at=!0}}),vt}function fe(Re,qe,We,Ye){var nt=!1,ft=le(qe),vt=[ae(ft[0][3],We,Ye),ae(ft[1][3],We,Ye),ae(ft[2][3],We,Ye),ae(ft[3][3],We,Ye)];if(!(vt[0]||vt[1]||vt[2]||vt[3]))return nt;if(vt[0]&&vt[1]&&vt[2]&&vt[3])return E&&(nt=function(At,at,et){var Ot=function(Wt,Jt,Be){ee(At,[at[Wt],at[Jt],at[Be]],[et[Wt],et[Jt],et[Be]])};Ot(0,1,2),Ot(3,0,1),Ot(2,3,0),Ot(1,2,3)}(Re,ft,qe)||nt),nt;var Pt=!1;return[[0,1,2,3],[3,0,1,2],[2,3,0,1],[1,2,3,0]].forEach(function(At){if(vt[At[0]]&&vt[At[1]]&&vt[At[2]]&&!vt[At[3]]){var at=ft[At[0]],et=ft[At[1]],Ot=ft[At[2]],Wt=ft[At[3]];if(E)nt=ee(Re,[at,et,Ot],[qe[At[0]],qe[At[1]],qe[At[2]]])||nt;else{var Jt=ie(Wt,at,We,Ye),Be=ie(Wt,et,We,Ye),Ge=ie(Wt,Ot,We,Ye);nt=ee(null,[Jt,Be,Ge],[-1,-1,-1])||nt}Pt=!0}}),Pt||([[0,1,2,3],[1,2,3,0],[2,3,0,1],[3,0,1,2],[0,2,3,1],[1,3,2,0]].forEach(function(At){if(vt[At[0]]&&vt[At[1]]&&!vt[At[2]]&&!vt[At[3]]){var at=ft[At[0]],et=ft[At[1]],Ot=ft[At[2]],Wt=ft[At[3]],Jt=ie(Ot,at,We,Ye),Be=ie(Ot,et,We,Ye),Ge=ie(Wt,et,We,Ye),Tt=ie(Wt,at,We,Ye);E?(nt=ee(Re,[at,Tt,Jt],[qe[At[0]],-1,-1])||nt,nt=ee(Re,[et,Be,Ge],[qe[At[1]],-1,-1])||nt):nt=function(dt,Pe,Ie){var Ae=function(De,He,rt){ee(dt,[Pe[De],Pe[He],Pe[rt]],[Ie[De],Ie[He],Ie[rt]])};Ae(0,1,2),Ae(2,3,0)}(null,[Jt,Be,Ge,Tt],[-1,-1,-1,-1])||nt,Pt=!0}}),Pt||[[0,1,2,3],[1,2,3,0],[2,3,0,1],[3,0,1,2]].forEach(function(At){if(vt[At[0]]&&!vt[At[1]]&&!vt[At[2]]&&!vt[At[3]]){var at=ft[At[0]],et=ft[At[1]],Ot=ft[At[2]],Wt=ft[At[3]],Jt=ie(et,at,We,Ye),Be=ie(Ot,at,We,Ye),Ge=ie(Wt,at,We,Ye);E?(nt=ee(Re,[at,Jt,Be],[qe[At[0]],-1,-1])||nt,nt=ee(Re,[at,Be,Ge],[qe[At[0]],-1,-1])||nt,nt=ee(Re,[at,Ge,Jt],[qe[At[0]],-1,-1])||nt):nt=ee(null,[Jt,Be,Ge],[-1,-1,-1])||nt,Pt=!0}})),nt}function me(Re,qe,We,Ye,nt,ft,vt,Pt,At,at,et){var Ot=!1;return S&&(H(Re,"A")&&(Ot=fe(null,[qe,We,Ye,ft],at,et)||Ot),H(Re,"B")&&(Ot=fe(null,[We,Ye,nt,At],at,et)||Ot),H(Re,"C")&&(Ot=fe(null,[We,ft,vt,At],at,et)||Ot),H(Re,"D")&&(Ot=fe(null,[Ye,ft,Pt,At],at,et)||Ot),H(Re,"E")&&(Ot=fe(null,[We,Ye,ft,At],at,et)||Ot)),E&&(Ot=fe(Re,[We,Ye,ft,At],at,et)||Ot),Ot}function _e(Re,qe,We,Ye,nt,ft,vt,Pt){return[Pt[0]===!0||ge(Re,le([qe,We,Ye]),[qe,We,Ye],ft,vt),Pt[1]===!0||ge(Re,le([Ye,nt,qe]),[Ye,nt,qe],ft,vt)]}function we(Re,qe,We,Ye,nt,ft,vt,Pt,At){return Pt?_e(Re,qe,We,nt,Ye,ft,vt,At):_e(Re,We,nt,Ye,qe,ft,vt,At)}function Te(Re,qe,We,Ye,nt,ft,vt){var Pt,At,at,et,Ot=!1,Wt=function(){Ot=ge(Re,[Pt,At,at],[-1,-1,-1],nt,ft)||Ot,Ot=ge(Re,[at,et,Pt],[-1,-1,-1],nt,ft)||Ot},Jt=vt[0],Be=vt[1],Ge=vt[2];return Jt&&(Pt=$(le([G(qe,We-0,Ye-0)])[0],le([G(qe-1,We-0,Ye-0)])[0],Jt),At=$(le([G(qe,We-0,Ye-1)])[0],le([G(qe-1,We-0,Ye-1)])[0],Jt),at=$(le([G(qe,We-1,Ye-1)])[0],le([G(qe-1,We-1,Ye-1)])[0],Jt),et=$(le([G(qe,We-1,Ye-0)])[0],le([G(qe-1,We-1,Ye-0)])[0],Jt),Wt()),Be&&(Pt=$(le([G(qe-0,We,Ye-0)])[0],le([G(qe-0,We-1,Ye-0)])[0],Be),At=$(le([G(qe-0,We,Ye-1)])[0],le([G(qe-0,We-1,Ye-1)])[0],Be),at=$(le([G(qe-1,We,Ye-1)])[0],le([G(qe-1,We-1,Ye-1)])[0],Be),et=$(le([G(qe-1,We,Ye-0)])[0],le([G(qe-1,We-1,Ye-0)])[0],Be),Wt()),Ge&&(Pt=$(le([G(qe-0,We-0,Ye)])[0],le([G(qe-0,We-0,Ye-1)])[0],Ge),At=$(le([G(qe-0,We-1,Ye)])[0],le([G(qe-0,We-1,Ye-1)])[0],Ge),at=$(le([G(qe-1,We-1,Ye)])[0],le([G(qe-1,We-1,Ye-1)])[0],Ge),et=$(le([G(qe-1,We-0,Ye)])[0],le([G(qe-1,We-0,Ye-1)])[0],Ge),Wt()),Ot}function Oe(Re,qe,We,Ye,nt,ft,vt,Pt,At,at,et,Ot){var Wt=Re;return Ot?(S&&Re==="even"&&(Wt=null),me(Wt,qe,We,Ye,nt,ft,vt,Pt,At,at,et)):(S&&Re==="odd"&&(Wt=null),me(Wt,At,Pt,vt,ft,nt,Ye,We,qe,at,et))}function de(Re,qe,We,Ye,nt){for(var ft=[],vt=0,Pt=0;PtMath.abs(nt-K)?[W,nt]:[nt,K];Ee(Re,ft[0],ft[1])}}var vt=[[Math.min(te,K),Math.max(te,K)],[Math.min(W,Y),Math.max(W,Y)]];["x","y","z"].forEach(function(Pt){for(var At=[],at=0;at0&&(Ge.push(Pe.id),Pt==="x"?Tt.push([Pe.distRatio,0,0]):Pt==="y"?Tt.push([0,Pe.distRatio,0]):Tt.push([0,0,Pe.distRatio]))}else Be=Ke(1,Pt==="x"?L-1:Pt==="y"?P-1:N-1);Ge.length>0&&(At[et]=Pt==="x"?ze(null,Ge,Ot,Wt,Tt,At[et]):Pt==="y"?Fe(null,Ge,Ot,Wt,Tt,At[et]):Ve(null,Ge,Ot,Wt,Tt,At[et]),et++),Be.length>0&&(At[et]=Pt==="x"?de(null,Be,Ot,Wt,At[et]):Pt==="y"?ye(null,Be,Ot,Wt,At[et]):Me(null,Be,Ot,Wt,At[et]),et++)}var Ie=g.caps[Pt];Ie.show&&Ie.fill&&(ne(Ie.fill),At[et]=Pt==="x"?de(null,[0,L-1],Ot,Wt,At[et]):Pt==="y"?ye(null,[0,P-1],Ot,Wt,At[et]):Me(null,[0,N-1],Ot,Wt,At[et]),et++)}}),D===0&&U(),g._meshX=y,g._meshY=x,g._meshZ=w,g._meshIntensity=k,g._Xs=O,g._Ys=R,g._Zs=z}(),g}o.exports={findNearestOnAxis:s,generateIsoMeshes:m,createIsosurfaceTrace:function(g,p){var v=g.glplot.gl,y=r({gl:v}),x=new l(g,y,p.uid);return y._trace=x,x.update(p),g.glplot.add(y),x}}},{"../../../stackgl_modules":1124,"../../components/colorscale":378,"../../lib/gl_format_color":499,"../../lib/str2rgbarray":528,"../../plots/gl3d/zip3":609}],865:[function(e,o,f){var r=e("../../lib"),a=e("../../registry"),u=e("./attributes"),c=e("../../components/colorscale/defaults");function i(s,l,d,h,m){var g=m("isomin"),p=m("isomax");p!=null&&g!=null&&g>p&&(l.isomin=null,l.isomax=null);var v=m("x"),y=m("y"),x=m("z"),w=m("value");v&&v.length&&y&&y.length&&x&&x.length&&w&&w.length?(a.getComponentMethod("calendars","handleTraceDefaults")(s,l,["x","y","z"],h),m("valuehoverformat"),["x","y","z"].forEach(function(k){m(k+"hoverformat");var b="caps."+k;m(b+".show")&&m(b+".fill");var T="slices."+k;m(T+".show")&&(m(T+".fill"),m(T+".locations"))}),m("spaceframe.show")&&m("spaceframe.fill"),m("surface.show")&&(m("surface.count"),m("surface.fill"),m("surface.pattern")),m("contour.show")&&(m("contour.color"),m("contour.width")),["text","hovertext","hovertemplate","lighting.ambient","lighting.diffuse","lighting.specular","lighting.roughness","lighting.fresnel","lighting.vertexnormalsepsilon","lighting.facenormalsepsilon","lightposition.x","lightposition.y","lightposition.z","flatshading","opacity"].forEach(function(k){m(k)}),c(s,l,h,m,{prefix:"",cLetter:"c"}),l._length=null):l.visible=!1}o.exports={supplyDefaults:function(s,l,d,h){i(s,l,d,h,function(m,g){return r.coerce(s,l,u,m,g)})},supplyIsoDefaults:i}},{"../../components/colorscale/defaults":376,"../../lib":503,"../../registry":638,"./attributes":862}],866:[function(e,o,f){o.exports={attributes:e("./attributes"),supplyDefaults:e("./defaults").supplyDefaults,calc:e("./calc"),colorbar:{min:"cmin",max:"cmax"},plot:e("./convert").createIsosurfaceTrace,moduleType:"trace",name:"isosurface",basePlotModule:e("../../plots/gl3d"),categories:["gl3d","showLegend"],meta:{}}},{"../../plots/gl3d":598,"./attributes":862,"./calc":863,"./convert":864,"./defaults":865}],867:[function(e,o,f){var r=e("../../components/colorscale/attributes"),a=e("../../plots/cartesian/axis_format_attributes").axisHoverFormat,u=e("../../plots/template_attributes").hovertemplateAttrs,c=e("../surface/attributes"),i=e("../../plots/attributes"),s=e("../../lib/extend").extendFlat;o.exports=s({x:{valType:"data_array",editType:"calc+clearAxisTypes"},y:{valType:"data_array",editType:"calc+clearAxisTypes"},z:{valType:"data_array",editType:"calc+clearAxisTypes"},i:{valType:"data_array",editType:"calc"},j:{valType:"data_array",editType:"calc"},k:{valType:"data_array",editType:"calc"},text:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},hovertext:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},hovertemplate:u({editType:"calc"}),xhoverformat:a("x"),yhoverformat:a("y"),zhoverformat:a("z"),delaunayaxis:{valType:"enumerated",values:["x","y","z"],dflt:"z",editType:"calc"},alphahull:{valType:"number",dflt:-1,editType:"calc"},intensity:{valType:"data_array",editType:"calc"},intensitymode:{valType:"enumerated",values:["vertex","cell"],dflt:"vertex",editType:"calc"},color:{valType:"color",editType:"calc"},vertexcolor:{valType:"data_array",editType:"calc"},facecolor:{valType:"data_array",editType:"calc"},transforms:void 0},r("",{colorAttr:"`intensity`",showScaleDflt:!0,editTypeOverride:"calc"}),{opacity:c.opacity,flatshading:{valType:"boolean",dflt:!1,editType:"calc"},contour:{show:s({},c.contours.x.show,{}),color:c.contours.x.color,width:c.contours.x.width,editType:"calc"},lightposition:{x:s({},c.lightposition.x,{dflt:1e5}),y:s({},c.lightposition.y,{dflt:1e5}),z:s({},c.lightposition.z,{dflt:0}),editType:"calc"},lighting:s({vertexnormalsepsilon:{valType:"number",min:0,max:1,dflt:1e-12,editType:"calc"},facenormalsepsilon:{valType:"number",min:0,max:1,dflt:1e-6,editType:"calc"},editType:"calc"},c.lighting),hoverinfo:s({},i.hoverinfo,{editType:"calc"}),showlegend:s({},i.showlegend,{dflt:!1})})},{"../../components/colorscale/attributes":373,"../../lib/extend":493,"../../plots/attributes":550,"../../plots/cartesian/axis_format_attributes":557,"../../plots/template_attributes":633,"../surface/attributes":1061}],868:[function(e,o,f){var r=e("../../components/colorscale/calc");o.exports=function(a,u){u.intensity&&r(a,u,{vals:u.intensity,containerStr:"",cLetter:"c"})}},{"../../components/colorscale/calc":374}],869:[function(e,o,f){var r=e("../../../stackgl_modules").gl_mesh3d,a=e("../../../stackgl_modules").delaunay_triangulate,u=e("../../../stackgl_modules").alpha_shape,c=e("../../../stackgl_modules").convex_hull,i=e("../../lib/gl_format_color").parseColorScale,s=e("../../lib/str2rgbarray"),l=e("../../components/colorscale").extractOpts,d=e("../../plots/gl3d/zip3");function h(x,w,k){this.scene=x,this.uid=k,this.mesh=w,this.name="",this.color="#fff",this.data=null,this.showContour=!1}var m=h.prototype;function g(x){for(var w=[],k=x.length,b=0;b=w-.5)return!1;return!0}m.handlePick=function(x){if(x.object===this.mesh){var w=x.index=x.data.index;x.data._cellCenter?x.traceCoordinate=x.data.dataCoordinate:x.traceCoordinate=[this.data.x[w],this.data.y[w],this.data.z[w]];var k=this.data.hovertext||this.data.text;return Array.isArray(k)&&k[w]!==void 0?x.textLabel=k[w]:k&&(x.textLabel=k),!0}},m.update=function(x){var w=this.scene,k=w.fullSceneLayout;this.data=x;var b,T=x.x.length,_=d(p(k.xaxis,x.x,w.dataScale[0],x.xcalendar),p(k.yaxis,x.y,w.dataScale[1],x.ycalendar),p(k.zaxis,x.z,w.dataScale[2],x.zcalendar));if(x.i&&x.j&&x.k){if(x.i.length!==x.j.length||x.j.length!==x.k.length||!y(x.i,T)||!y(x.j,T)||!y(x.k,T))return;b=d(v(x.i),v(x.j),v(x.k))}else b=x.alphahull===0?c(_):x.alphahull>0?u(x.alphahull,_):function(E,D){for(var O=["x","y","z"].indexOf(E),R=[],z=D.length,L=0;LM):_=L>O,M=L;var P=v(O,R,z,L);P.pos=D,P.yc=(O+L)/2,P.i=E,P.dir=_?"increasing":"decreasing",P.x=P.pos,P.y=[z,R],A&&(P.orig_p=m[E]),b&&(P.tx=h.text[E]),T&&(P.htx=h.hovertext[E]),S.push(P)}else S.push({pos:D,empty:!0})}return h._extremes[p._id]=u.findExtremes(p,r.concat(w,x),{padded:!0}),S.length&&(S[0].t={labels:{open:a(d,"open:")+" ",high:a(d,"high:")+" ",low:a(d,"low:")+" ",close:a(d,"close:")+" "}}),S}o.exports={calc:function(d,h){var m=u.getFromId(d,h.xaxis),g=u.getFromId(d,h.yaxis),p=function(k,b,T){var _=T._minDiff;if(!_){var M,A=k._fullData,S=[];for(_=1/0,M=0;M"+b.labels[R]+r.hoverLabelText(w,z,k.yhoverformat):((O=a.extendFlat({},_)).y0=O.y1=L,O.yLabelVal=z,O.yLabel=b.labels[R]+r.hoverLabelText(w,z,k.yhoverformat),O.name="",T.push(O),E[z]=O)}return T}function m(g,p,v,y){var x=g.cd,w=g.ya,k=x[0].trace,b=x[0].t,T=d(g,p,v,y);if(!T)return[];var _=x[T.index],M=T.index=_.i,A=_.dir;function S(P){return b.labels[P]+r.hoverLabelText(w,k[P][M],k.yhoverformat)}var E=_.hi||k.hoverinfo,D=E.split("+"),O=E==="all",R=O||D.indexOf("y")!==-1,z=O||D.indexOf("text")!==-1,L=R?[S("open"),S("high"),S("low"),S("close")+" "+l[A]]:[];return z&&i(_,k,L),T.extraText=L.join("
    "),T.y0=T.y1=w.c2p(_.yc,!0),[T]}o.exports={hoverPoints:function(g,p,v,y){return g.cd[0].trace.hoverlabel.split?h(g,p,v,y):m(g,p,v,y)},hoverSplit:h,hoverOnPoints:m}},{"../../components/color":366,"../../components/fx":406,"../../constants/delta.js":473,"../../lib":503,"../../plots/cartesian/axes":554}],876:[function(e,o,f){o.exports={moduleType:"trace",name:"ohlc",basePlotModule:e("../../plots/cartesian"),categories:["cartesian","svg","showLegend"],meta:{},attributes:e("./attributes"),supplyDefaults:e("./defaults"),calc:e("./calc").calc,plot:e("./plot"),style:e("./style"),hoverPoints:e("./hover").hoverPoints,selectPoints:e("./select")}},{"../../plots/cartesian":568,"./attributes":872,"./calc":873,"./defaults":874,"./hover":875,"./plot":878,"./select":879,"./style":880}],877:[function(e,o,f){var r=e("../../registry"),a=e("../../lib");o.exports=function(u,c,i,s){var l=i("x"),d=i("open"),h=i("high"),m=i("low"),g=i("close");if(i("hoverlabel.split"),r.getComponentMethod("calendars","handleTraceDefaults")(u,c,["x"],s),d&&h&&m&&g){var p=Math.min(d.length,h.length,m.length,g.length);return l&&(p=Math.min(p,a.minRowLength(l))),c._length=p,p}}},{"../../lib":503,"../../registry":638}],878:[function(e,o,f){var r=e("@plotly/d3"),a=e("../../lib");o.exports=function(u,c,i,s){var l=c.yaxis,d=c.xaxis,h=!!d.rangebreaks;a.makeTraceGroups(s,i,"trace ohlc").each(function(m){var g=r.select(this),p=m[0],v=p.t;if(p.trace.visible!==!0||v.empty)g.remove();else{var y=v.tickLen,x=g.selectAll("path").data(a.identity);x.enter().append("path"),x.exit().remove(),x.attr("d",function(w){if(w.empty)return"M0,0Z";var k=d.c2p(w.pos-y,!0),b=d.c2p(w.pos+y,!0),T=h?(k+b)/2:d.c2p(w.pos,!0);return"M"+k+","+l.c2p(w.o,!0)+"H"+T+"M"+T+","+l.c2p(w.h,!0)+"V"+l.c2p(w.l,!0)+"M"+b+","+l.c2p(w.c,!0)+"H"+T})}})}},{"../../lib":503,"@plotly/d3":58}],879:[function(e,o,f){o.exports=function(r,a){var u,c=r.cd,i=r.xaxis,s=r.yaxis,l=[],d=c[0].t.bPos||0;if(a===!1)for(u=0;u=U.length||q[U[$]]!==void 0)return!1;q[U[$]]=!0}return!0}(Z.map(function(U){return U.displayindex})))for(re=0;re0;w&&(y="array");var k=g("categoryorder",y);k==="array"?(g("categoryarray"),g("ticktext")):(delete h.categoryarray,delete h.ticktext),w||k!=="array"||(m.categoryorder="trace")}}o.exports=function(h,m,g,p){function v(b,T){return r.coerce(h,m,s,b,T)}var y=i(h,m,{name:"dimensions",handleItemDefaults:d}),x=function(b,T,_,M,A){A("line.shape"),A("line.hovertemplate");var S=A("line.color",M.colorway[0]);if(a(b,"line")&&r.isArrayOrTypedArray(S)){if(S.length)return A("line.colorscale"),u(b,T,M,A,{prefix:"line.",cLetter:"c"}),S.length;T.line.color=_}return 1/0}(h,m,g,p,v);c(m,p,v),Array.isArray(y)&&y.length||(m.visible=!1),l(m,y,"values",x),v("hoveron"),v("hovertemplate"),v("arrangement"),v("bundlecolors"),v("sortpaths"),v("counts");var w={family:p.font.family,size:Math.round(p.font.size),color:p.font.color};r.coerceFont(v,"labelfont",w);var k={family:p.font.family,size:Math.round(p.font.size/1.2),color:p.font.color};r.coerceFont(v,"tickfont",k)}},{"../../components/colorscale/defaults":376,"../../components/colorscale/helpers":377,"../../lib":503,"../../plots/array_container_defaults":549,"../../plots/domain":584,"../parcoords/merge_length":898,"./attributes":881}],885:[function(e,o,f){o.exports={attributes:e("./attributes"),supplyDefaults:e("./defaults"),calc:e("./calc"),plot:e("./plot"),colorbar:{container:"line",min:"cmin",max:"cmax"},moduleType:"trace",name:"parcats",basePlotModule:e("./base_plot"),categories:["noOpacity"],meta:{}}},{"./attributes":881,"./base_plot":882,"./calc":883,"./defaults":884,"./plot":887}],886:[function(e,o,f){var r=e("@plotly/d3"),a=e("d3-interpolate").interpolateNumber,u=e("../../plot_api/plot_api"),c=e("../../components/fx"),i=e("../../lib"),s=i.strTranslate,l=e("../../components/drawing"),d=e("tinycolor2"),h=e("../../lib/svg_text_utils");function m(U,q,$,ne){var H=U.map(K.bind(0,q,$)),Q=ne.selectAll("g.parcatslayer").data([null]);Q.enter().append("g").attr("class","parcatslayer").style("pointer-events","all");var ee=Q.selectAll("g.trace.parcats").data(H,g),ie=ee.enter().append("g").attr("class","trace parcats");ee.attr("transform",function(Te){return s(Te.x,Te.y)}),ie.append("g").attr("class","paths");var ae=ee.select("g.paths").selectAll("path.path").data(function(Te){return Te.paths},g);ae.attr("fill",function(Te){return Te.model.color});var ue=ae.enter().append("path").attr("class","path").attr("stroke-opacity",0).attr("fill",function(Te){return Te.model.color}).attr("fill-opacity",0);T(ue),ae.attr("d",function(Te){return Te.svgD}),ue.empty()||ae.sort(v),ae.exit().remove(),ae.on("mouseover",y).on("mouseout",x).on("click",b),ie.append("g").attr("class","dimensions");var le=ee.select("g.dimensions").selectAll("g.dimension").data(function(Te){return Te.dimensions},g);le.enter().append("g").attr("class","dimension"),le.attr("transform",function(Te){return s(Te.x,0)}),le.exit().remove();var ge=le.selectAll("g.category").data(function(Te){return Te.categories},g),fe=ge.enter().append("g").attr("class","category");ge.attr("transform",function(Te){return s(0,Te.y)}),fe.append("rect").attr("class","catrect").attr("pointer-events","none"),ge.select("rect.catrect").attr("fill","none").attr("width",function(Te){return Te.width}).attr("height",function(Te){return Te.height}),M(fe);var me=ge.selectAll("rect.bandrect").data(function(Te){return Te.bands},g);me.each(function(){i.raiseToTop(this)}),me.attr("fill",function(Te){return Te.color});var _e=me.enter().append("rect").attr("class","bandrect").attr("stroke-opacity",0).attr("fill",function(Te){return Te.color}).attr("fill-opacity",0);me.attr("fill",function(Te){return Te.color}).attr("width",function(Te){return Te.width}).attr("height",function(Te){return Te.height}).attr("y",function(Te){return Te.y}).attr("cursor",function(Te){return Te.parcatsViewModel.arrangement==="fixed"?"default":Te.parcatsViewModel.arrangement==="perpendicular"?"ns-resize":"move"}),A(_e),me.exit().remove(),fe.append("text").attr("class","catlabel").attr("pointer-events","none");var we=q._fullLayout.paper_bgcolor;ge.select("text.catlabel").attr("text-anchor",function(Te){return p(Te)?"start":"end"}).attr("alignment-baseline","middle").style("text-shadow",h.makeTextShadow(we)).style("fill","rgb(0, 0, 0)").attr("x",function(Te){return p(Te)?Te.width+5:-5}).attr("y",function(Te){return Te.height/2}).text(function(Te){return Te.model.categoryLabel}).each(function(Te){l.font(r.select(this),Te.parcatsViewModel.categorylabelfont),h.convertToTspans(r.select(this),q)}),fe.append("text").attr("class","dimlabel"),ge.select("text.dimlabel").attr("text-anchor","middle").attr("alignment-baseline","baseline").attr("cursor",function(Te){return Te.parcatsViewModel.arrangement==="fixed"?"default":"ew-resize"}).attr("x",function(Te){return Te.width/2}).attr("y",-5).text(function(Te,Oe){return Oe===0?Te.parcatsViewModel.model.dimensions[Te.model.dimensionInd].dimensionLabel:null}).each(function(Te){l.font(r.select(this),Te.parcatsViewModel.labelfont)}),ge.selectAll("rect.bandrect").on("mouseover",R).on("mouseout",z),ge.exit().remove(),le.call(r.behavior.drag().origin(function(Te){return{x:Te.x,y:0}}).on("dragstart",L).on("drag",P).on("dragend",N)),ee.each(function(Te){Te.traceSelection=r.select(this),Te.pathSelection=r.select(this).selectAll("g.paths").selectAll("path.path"),Te.dimensionSelection=r.select(this).selectAll("g.dimensions").selectAll("g.dimension")}),ee.exit().remove()}function g(U){return U.key}function p(U){var q=U.parcatsViewModel.dimensions.length,$=U.parcatsViewModel.dimensions[q-1].model.dimensionInd;return U.model.dimensionInd===$}function v(U,q){return U.model.rawColor>q.model.rawColor?1:U.model.rawColor"),Ee=r.mouse(ie)[0];c.loneHover({trace:ae,x:_e-le.left+ge.left,y:we-le.top+ge.top,text:ke,color:U.model.color,borderColor:"black",fontFamily:'Monaco, "Courier New", monospace',fontSize:10,fontColor:Te,idealAlign:Ee<_e?"right":"left",hovertemplate:(ae.line||{}).hovertemplate,hovertemplateLabels:ye,eventData:[{data:ae._input,fullData:ae,count:Oe,probability:de}]},{container:ue._hoverlayer.node(),outerContainer:ue._paper.node(),gd:ie})}}}function x(U){if(!U.parcatsViewModel.dragDimension&&(T(r.select(this)),c.loneUnhover(U.parcatsViewModel.graphDiv._fullLayout._hoverlayer.node()),U.parcatsViewModel.pathSelection.sort(v),U.parcatsViewModel.hoverinfoItems.indexOf("skip")===-1)){var q=w(U),$=k(U);U.parcatsViewModel.graphDiv.emit("plotly_unhover",{points:q,event:r.event,constraints:$})}}function w(U){for(var q=[],$=B(U.parcatsViewModel),ne=0;ne1&&ge.displayInd===le.dimensions.length-1?(ne=ae.left,H="left"):(ne=ae.left+ae.width,H="right");var _e=ue.model.count,we=ue.model.categoryLabel,Te=_e/ue.parcatsViewModel.model.count,Oe={countLabel:_e,categoryLabel:we,probabilityLabel:Te.toFixed(3)},de=[];ue.parcatsViewModel.hoverinfoItems.indexOf("count")!==-1&&de.push(["Count:",Oe.countLabel].join(" ")),ue.parcatsViewModel.hoverinfoItems.indexOf("probability")!==-1&&de.push(["P("+Oe.categoryLabel+"):",Oe.probabilityLabel].join(" "));var ye=de.join("
    ");return{trace:fe,x:Q*(ne-q.left),y:ee*(me-q.top),text:ye,color:"lightgray",borderColor:"black",fontFamily:'Monaco, "Courier New", monospace',fontSize:12,fontColor:"black",idealAlign:H,hovertemplate:fe.hovertemplate,hovertemplateLabels:Oe,eventData:[{data:fe._input,fullData:fe,count:_e,category:we,probability:Te}]}}function R(U){if(!U.parcatsViewModel.dragDimension&&U.parcatsViewModel.hoverinfoItems.indexOf("skip")===-1){if(r.mouse(this)[1]<-1)return;var q,$=U.parcatsViewModel.graphDiv,ne=$._fullLayout,H=ne._paperdiv.node().getBoundingClientRect(),Q=U.parcatsViewModel.hoveron;Q==="color"?(function(ee){var ie=r.select(ee).datum(),ae=S(ie);_(ae),ae.each(function(){i.raiseToTop(this)}),r.select(ee.parentNode).selectAll("rect.bandrect").filter(function(ue){return ue.color===ie.color}).each(function(){i.raiseToTop(this),r.select(this).attr("stroke","black").attr("stroke-width",1.5)})}(this),D(this,"plotly_hover",r.event)):(function(ee){r.select(ee.parentNode).selectAll("rect.bandrect").each(function(ie){var ae=S(ie);_(ae),ae.each(function(){i.raiseToTop(this)})}),r.select(ee.parentNode).select("rect.catrect").attr("stroke","black").attr("stroke-width",2.5)}(this),E(this,"plotly_hover",r.event)),U.parcatsViewModel.hoverinfoItems.indexOf("none")===-1&&(Q==="category"?q=O($,H,this):Q==="color"?q=function(ee,ie,ae){ee._fullLayout._calcInverseTransform(ee);var ue,le,ge=ee._fullLayout._invScaleX,fe=ee._fullLayout._invScaleY,me=ae.getBoundingClientRect(),_e=r.select(ae).datum(),we=_e.categoryViewModel,Te=we.parcatsViewModel,Oe=Te.model.dimensions[we.model.dimensionInd],de=Te.trace,ye=me.y+me.height/2;Te.dimensions.length>1&&Oe.displayInd===Te.dimensions.length-1?(ue=me.left,le="left"):(ue=me.left+me.width,le="right");var Me=we.model.categoryLabel,ke=_e.parcatsViewModel.model.count,Ee=0;_e.categoryViewModel.bands.forEach(function(ft){ft.color===_e.color&&(Ee+=ft.count)});var ze=we.model.count,Fe=0;Te.pathSelection.each(function(ft){ft.model.color===_e.color&&(Fe+=ft.model.count)});var Ve=Ee/ke,Ke=Ee/Fe,Re=Ee/ze,qe={countLabel:ke,categoryLabel:Me,probabilityLabel:Ve.toFixed(3)},We=[];we.parcatsViewModel.hoverinfoItems.indexOf("count")!==-1&&We.push(["Count:",qe.countLabel].join(" ")),we.parcatsViewModel.hoverinfoItems.indexOf("probability")!==-1&&(We.push("P(color \u2229 "+Me+"): "+qe.probabilityLabel),We.push("P("+Me+" | color): "+Ke.toFixed(3)),We.push("P(color | "+Me+"): "+Re.toFixed(3)));var Ye=We.join("
    "),nt=d.mostReadable(_e.color,["black","white"]);return{trace:de,x:ge*(ue-ie.left),y:fe*(ye-ie.top),text:Ye,color:_e.color,borderColor:"black",fontFamily:'Monaco, "Courier New", monospace',fontColor:nt,fontSize:10,idealAlign:le,hovertemplate:de.hovertemplate,hovertemplateLabels:qe,eventData:[{data:de._input,fullData:de,category:Me,count:ke,probability:Ve,categorycount:ze,colorcount:Fe,bandcolorcount:Ee}]}}($,H,this):Q==="dimension"&&(q=function(ee,ie,ae){var ue=[];return r.select(ae.parentNode.parentNode).selectAll("g.category").select("rect.catrect").each(function(){ue.push(O(ee,ie,this))}),ue}($,H,this)),q&&c.loneHover(q,{container:ne._hoverlayer.node(),outerContainer:ne._paper.node(),gd:$}))}}function z(U){var q=U.parcatsViewModel;!q.dragDimension&&(T(q.pathSelection),M(q.dimensionSelection.selectAll("g.category")),A(q.dimensionSelection.selectAll("g.category").selectAll("rect.bandrect")),c.loneUnhover(q.graphDiv._fullLayout._hoverlayer.node()),q.pathSelection.sort(v),q.hoverinfoItems.indexOf("skip")===-1)&&(U.parcatsViewModel.hoveron==="color"?D(this,"plotly_unhover",r.event):E(this,"plotly_unhover",r.event))}function L(U){U.parcatsViewModel.arrangement!=="fixed"&&(U.dragDimensionDisplayInd=U.model.displayInd,U.initialDragDimensionDisplayInds=U.parcatsViewModel.model.dimensions.map(function(q){return q.displayInd}),U.dragHasMoved=!1,U.dragCategoryDisplayInd=null,r.select(this).selectAll("g.category").select("rect.catrect").each(function(q){var $=r.mouse(this)[0],ne=r.mouse(this)[1];-2<=$&&$<=q.width+2&&-2<=ne&&ne<=q.height+2&&(U.dragCategoryDisplayInd=q.model.displayInd,U.initialDragCategoryDisplayInds=U.model.categories.map(function(H){return H.displayInd}),q.model.dragY=q.y,i.raiseToTop(this.parentNode),r.select(this.parentNode).selectAll("rect.bandrect").each(function(H){H.yle.y+le.height/2&&(Q.model.displayInd=le.model.displayInd,le.model.displayInd=ie),U.dragCategoryDisplayInd=Q.model.displayInd}if(U.dragCategoryDisplayInd===null||U.parcatsViewModel.arrangement==="freeform"){H.model.dragX=r.event.x;var ge=U.parcatsViewModel.dimensions[$],fe=U.parcatsViewModel.dimensions[ne];ge!==void 0&&H.model.dragXfe.x&&(H.model.displayInd=fe.model.displayInd,fe.model.displayInd=U.dragDimensionDisplayInd),U.dragDimensionDisplayInd=H.model.displayInd}Z(U.parcatsViewModel),Y(U.parcatsViewModel),W(U.parcatsViewModel),G(U.parcatsViewModel)}}function N(U){if(U.parcatsViewModel.arrangement!=="fixed"&&U.dragDimensionDisplayInd!==null){r.select(this).selectAll("text").attr("font-weight","normal");var q={},$=B(U.parcatsViewModel),ne=U.parcatsViewModel.model.dimensions.map(function(le){return le.displayInd}),H=U.initialDragDimensionDisplayInds.some(function(le,ge){return le!==ne[ge]});H&&ne.forEach(function(le,ge){var fe=U.parcatsViewModel.model.dimensions[ge].containerInd;q["dimensions["+fe+"].displayindex"]=le});var Q=!1;if(U.dragCategoryDisplayInd!==null){var ee=U.model.categories.map(function(le){return le.displayInd});if(Q=U.initialDragCategoryDisplayInds.some(function(le,ge){return le!==ee[ge]})){var ie=U.model.categories.slice().sort(function(le,ge){return le.displayInd-ge.displayInd}),ae=ie.map(function(le){return le.categoryValue}),ue=ie.map(function(le){return le.categoryLabel});q["dimensions["+U.model.containerInd+"].categoryarray"]=[ae],q["dimensions["+U.model.containerInd+"].ticktext"]=[ue],q["dimensions["+U.model.containerInd+"].categoryorder"]="array"}}U.parcatsViewModel.hoverinfoItems.indexOf("skip")===-1&&!U.dragHasMoved&&U.potentialClickBand&&(U.parcatsViewModel.hoveron==="color"?D(U.potentialClickBand,"plotly_click",r.event.sourceEvent):E(U.potentialClickBand,"plotly_click",r.event.sourceEvent)),U.model.dragX=null,U.dragCategoryDisplayInd!==null&&(U.parcatsViewModel.dimensions[U.dragDimensionDisplayInd].categories[U.dragCategoryDisplayInd].model.dragY=null,U.dragCategoryDisplayInd=null),U.dragDimensionDisplayInd=null,U.parcatsViewModel.dragDimension=null,U.dragHasMoved=null,U.potentialClickBand=null,Z(U.parcatsViewModel),Y(U.parcatsViewModel),r.transition().duration(300).ease("cubic-in-out").each(function(){W(U.parcatsViewModel,!0),G(U.parcatsViewModel,!0)}).each("end",function(){(H||Q)&&u.restyle(U.parcatsViewModel.graphDiv,q,[$])})}}function B(U){for(var q,$=U.graphDiv._fullData,ne=0;ne<$.length;ne++)if(U.key===$[ne].uid){q=ne;break}return q}function G(U,q){var $;q===void 0&&(q=!1),U.pathSelection.data(function(ne){return ne.paths},g),($=U.pathSelection,q?$.transition():$).attr("d",function(ne){return ne.svgD})}function W(U,q){function $(ee){return q?ee.transition():ee}q===void 0&&(q=!1),U.dimensionSelection.data(function(ee){return ee.dimensions},g);var ne=U.dimensionSelection.selectAll("g.category").data(function(ee){return ee.categories},g);$(U.dimensionSelection).attr("transform",function(ee){return s(ee.x,0)}),$(ne).attr("transform",function(ee){return s(0,ee.y)}),ne.select(".dimlabel").text(function(ee,ie){return ie===0?ee.parcatsViewModel.model.dimensions[ee.model.dimensionInd].dimensionLabel:null}),ne.select(".catlabel").attr("text-anchor",function(ee){return p(ee)?"start":"end"}).attr("x",function(ee){return p(ee)?ee.width+5:-5}).each(function(ee){var ie,ae;p(ee)?(ie=ee.width+5,ae="start"):(ie=-5,ae="end"),r.select(this).selectAll("tspan").attr("x",ie).attr("text-anchor",ae)});var H=ne.selectAll("rect.bandrect").data(function(ee){return ee.bands},g),Q=H.enter().append("rect").attr("class","bandrect").attr("cursor","move").attr("stroke-opacity",0).attr("fill",function(ee){return ee.color}).attr("fill-opacity",0);H.attr("fill",function(ee){return ee.color}).attr("width",function(ee){return ee.width}).attr("height",function(ee){return ee.height}).attr("y",function(ee){return ee.y}),A(Q),H.each(function(){i.raiseToTop(this)}),H.exit().remove()}function K(U,q,$){var ne,H=$[0],Q=q.margin||{l:80,r:80,t:100,b:80},ee=H.trace,ie=ee.domain,ae=q.width,ue=q.height,le=Math.floor(ae*(ie.x[1]-ie.x[0])),ge=Math.floor(ue*(ie.y[1]-ie.y[0])),fe=ie.x[0]*ae+Q.l,me=q.height-ie.y[1]*q.height+Q.t,_e=ee.line.shape;ne=ee.hoverinfo==="all"?["count","probability"]:(ee.hoverinfo||"").split("+");var we={trace:ee,key:ee.uid,model:H,x:fe,y:me,width:le,height:ge,hoveron:ee.hoveron,hoverinfoItems:ne,arrangement:ee.arrangement,bundlecolors:ee.bundlecolors,sortpaths:ee.sortpaths,labelfont:ee.labelfont,categorylabelfont:ee.tickfont,pathShape:_e,dragDimension:null,margin:Q,paths:[],dimensions:[],graphDiv:U,traceSelection:null,pathSelection:null,dimensionSelection:null};return H.dimensions&&(Z(we),Y(we)),we}function te(U,q,$,ne,H){var Q,ee,ie=[],ae=[];for(ee=0;ee<$.length-1;ee++)Q=a($[ee]+U[ee],U[ee+1]),ie.push(Q(H)),ae.push(Q(1-H));var ue="M "+U[0]+","+q[0];for(ue+="l"+$[0]+",0 ",ee=1;ee<$.length;ee++)ue+="C"+ie[ee-1]+","+q[ee-1]+" "+ae[ee-1]+","+q[ee]+" "+U[ee]+","+q[ee],ue+="l"+$[ee]+",0 ";for(ue+="l0,"+ne+" ",ue+="l -"+$[$.length-1]+",0 ",ee=$.length-2;ee>=0;ee--)ue+="C"+ae[ee]+","+(q[ee+1]+ne)+" "+ie[ee]+","+(q[ee]+ne)+" "+(U[ee]+$[ee])+","+(q[ee]+ne),ue+="l-"+$[ee]+",0 ";return ue+="Z"}function Y(U){var q=U.dimensions,$=U.model,ne=q.map(function(We){return We.categories.map(function(Ye){return Ye.y})}),H=U.model.dimensions.map(function(We){return We.categories.map(function(Ye){return Ye.displayInd})}),Q=U.model.dimensions.map(function(We){return We.displayInd}),ee=U.dimensions.map(function(We){return We.model.dimensionInd}),ie=q.map(function(We){return We.x}),ae=q.map(function(We){return We.width}),ue=[];for(var le in $.paths)$.paths.hasOwnProperty(le)&&ue.push($.paths[le]);function ge(We){var Ye=We.categoryInds.map(function(nt,ft){return H[ft][nt]});return ee.map(function(nt){return Ye[nt]})}ue.sort(function(We,Ye){var nt=ge(We),ft=ge(Ye);return U.sortpaths==="backward"&&(nt.reverse(),ft.reverse()),nt.push(We.valueInds[0]),ft.push(Ye.valueInds[0]),U.bundlecolors&&(nt.unshift(We.rawColor),ft.unshift(Ye.rawColor)),ntft?1:0});for(var fe=new Array(ue.length),me=q[0].model.count,_e=q[0].categories.map(function(We){return We.height}).reduce(function(We,Ye){return We+Ye}),we=0;we0?_e*(Oe.count/me):0;for(var de,ye=new Array(ne.length),Me=0;Me1?(U.width-80-16)/(ne-1):0)*H;var Q,ee,ie,ae,ue,le=[],ge=U.model.maxCats,fe=q.categories.length,me=q.count,_e=U.height-8*(ge-1),we=8*(ge-fe)/2,Te=q.categories.map(function(Oe){return{displayInd:Oe.displayInd,categoryInd:Oe.categoryInd}});for(Te.sort(function(Oe,de){return Oe.displayInd-de.displayInd}),ue=0;ue0?ee.count/me*_e:0,ie={key:ee.valueInds[0],model:ee,width:16,height:Q,y:ee.dragY!==null?ee.dragY:we,bands:[],parcatsViewModel:U},we=we+Q+8,le.push(ie);return{key:q.dimensionInd,x:q.dragX!==null?q.dragX:$,y:0,width:16,model:q,categories:le,parcatsViewModel:U,dragCategoryDisplayInd:null,dragDimensionDisplayInd:null,initialDragDimensionDisplayInds:null,initialDragCategoryDisplayInds:null,dragHasMoved:null,potentialClickBand:null}}o.exports=function(U,q,$,ne){m($,U,ne,q)}},{"../../components/drawing":388,"../../components/fx":406,"../../lib":503,"../../lib/svg_text_utils":529,"../../plot_api/plot_api":540,"@plotly/d3":58,"d3-interpolate":116,tinycolor2:312}],887:[function(e,o,f){var r=e("./parcats");o.exports=function(a,u,c,i){var s=a._fullLayout,l=s._paper,d=s._size;r(a,l,u,{width:d.w,height:d.h,margin:{t:d.t,r:d.r,b:d.b,l:d.l}},c,i)}},{"./parcats":886}],888:[function(e,o,f){var r=e("../../components/colorscale/attributes"),a=e("../../plots/cartesian/layout_attributes"),u=e("../../plots/font_attributes"),c=e("../../plots/domain").attributes,i=e("../../lib/extend").extendFlat,s=e("../../plot_api/plot_template").templatedArray;o.exports={domain:c({name:"parcoords",trace:!0,editType:"plot"}),labelangle:{valType:"angle",dflt:0,editType:"plot"},labelside:{valType:"enumerated",values:["top","bottom"],dflt:"top",editType:"plot"},labelfont:u({editType:"plot"}),tickfont:u({editType:"plot"}),rangefont:u({editType:"plot"}),dimensions:s("dimension",{label:{valType:"string",editType:"plot"},tickvals:i({},a.tickvals,{editType:"plot"}),ticktext:i({},a.ticktext,{editType:"plot"}),tickformat:i({},a.tickformat,{editType:"plot"}),visible:{valType:"boolean",dflt:!0,editType:"plot"},range:{valType:"info_array",items:[{valType:"number",editType:"plot"},{valType:"number",editType:"plot"}],editType:"plot"},constraintrange:{valType:"info_array",freeLength:!0,dimensions:"1-2",items:[{valType:"any",editType:"plot"},{valType:"any",editType:"plot"}],editType:"plot"},multiselect:{valType:"boolean",dflt:!0,editType:"plot"},values:{valType:"data_array",editType:"calc"},editType:"calc"}),line:i({editType:"calc"},r("line",{colorscaleDflt:"Viridis",autoColorDflt:!1,editTypeOverride:"calc"}))}},{"../../components/colorscale/attributes":373,"../../lib/extend":493,"../../plot_api/plot_template":543,"../../plots/cartesian/layout_attributes":569,"../../plots/domain":584,"../../plots/font_attributes":585}],889:[function(e,o,f){var r=e("./constants"),a=e("@plotly/d3"),u=e("../../lib/gup").keyFun,c=e("../../lib/gup").repeat,i=e("../../lib").sorterAsc,s=e("../../lib").strTranslate,l=r.bar.snapRatio;function d(O,R){return O*(1-l)+R*l}var h=r.bar.snapClose;function m(O,R){return O*(1-h)+R*h}function g(O,R,z,L){if(function(re,U){for(var q=0;q=U[q][0]&&re<=U[q][1])return!0;return!1}(z,L))return z;var P=O?-1:1,N=0,B=R.length-1;if(P<0){var G=N;N=B,B=G}for(var W=R[N],K=W,te=N;P*teR){Y=z;break}}if(P=K,isNaN(P)&&(P=isNaN(te)||isNaN(Y)?isNaN(te)?Y:te:R-W[te][1]H[1]+ee||Q=.9*H[1]+.1*H[0]?"n":Q<=.9*H[0]+.1*H[1]?"s":"ns"}(re,R);U&&(N.interval=G[P],N.intervalPix=re,N.region=U)}}if(O.ordinal&&!N.region){var q=O.unitTickvals,$=O.unitToPaddedPx.invert(R);for(z=0;z=ne[0]&&$<=ne[1]){N.clickableOrdinalRange=ne;break}}}return N}function _(O,R){a.event.sourceEvent.stopPropagation();var z=R.height-a.mouse(O)[1]-2*r.verticalPadding,L=R.brush.svgBrush;L.wasDragged=!0,L._dragging=!0,L.grabbingBar?L.newExtent=[z-L.grabPoint,z+L.barLength-L.grabPoint].map(R.unitToPaddedPx.invert):L.newExtent=[L.startExtent,R.unitToPaddedPx.invert(z)].sort(i),R.brush.filterSpecified=!0,L.extent=L.stayingIntervals.concat([L.newExtent]),L.brushCallback(R),b(O.parentNode)}function M(O,R){var z=T(R,R.height-a.mouse(O)[1]-2*r.verticalPadding),L="crosshair";z.clickableOrdinalRange?L="pointer":z.region&&(L=z.region+"-resize"),a.select(document.body).style("cursor",L)}function A(O){O.on("mousemove",function(R){a.event.preventDefault(),R.parent.inBrushDrag||M(this,R)}).on("mouseleave",function(R){R.parent.inBrushDrag||w()}).call(a.behavior.drag().on("dragstart",function(R){(function(z,L){a.event.sourceEvent.stopPropagation();var P=L.height-a.mouse(z)[1]-2*r.verticalPadding,N=L.unitToPaddedPx.invert(P),B=L.brush,G=T(L,P),W=G.interval,K=B.svgBrush;if(K.wasDragged=!1,K.grabbingBar=G.region==="ns",K.grabbingBar){var te=W.map(L.unitToPaddedPx);K.grabPoint=P-te[0]-r.verticalPadding,K.barLength=te[1]-te[0]}K.clickableOrdinalRange=G.clickableOrdinalRange,K.stayingIntervals=L.multiselect&&B.filterSpecified?B.filter.getConsolidated():[],W&&(K.stayingIntervals=K.stayingIntervals.filter(function(Y){return Y[0]!==W[0]&&Y[1]!==W[1]})),K.startExtent=G.region?W[G.region==="s"?1:0]:N,L.parent.inBrushDrag=!0,K.brushStartCallback()})(this,R)}).on("drag",function(R){_(this,R)}).on("dragend",function(R){(function(z,L){var P=L.brush,N=P.filter,B=P.svgBrush;B._dragging||(M(z,L),_(z,L),L.brush.svgBrush.wasDragged=!1),B._dragging=!1,a.event.sourceEvent.stopPropagation();var G=B.grabbingBar;if(B.grabbingBar=!1,B.grabLocation=void 0,L.parent.inBrushDrag=!1,w(),!B.wasDragged)return B.wasDragged=void 0,B.clickableOrdinalRange?P.filterSpecified&&L.multiselect?B.extent.push(B.clickableOrdinalRange):(B.extent=[B.clickableOrdinalRange],P.filterSpecified=!0):G?(B.extent=B.stayingIntervals,B.extent.length===0&&E(P)):E(P),B.brushCallback(L),b(z.parentNode),void B.brushEndCallback(P.filterSpecified?N.getConsolidated():[]);var W=function(){N.set(N.getConsolidated())};if(L.ordinal){var K=L.unitTickvals;K[K.length-1]B.newExtent[0];B.extent=B.stayingIntervals.concat(te?[B.newExtent]:[]),B.extent.length||E(P),B.brushCallback(L),te?b(z.parentNode,W):(W(),b(z.parentNode))}else W();B.brushEndCallback(P.filterSpecified?N.getConsolidated():[])})(this,R)}))}function S(O,R){return O[0]-R[0]}function E(O){O.filterSpecified=!1,O.svgBrush.extent=[[-1/0,1/0]]}function D(O){for(var R,z=O.slice(),L=[],P=z.shift();P;){for(R=P.slice();(P=z.shift())&&P[0]<=R[1];)R[1]=Math.max(R[1],P[1]);L.push(R)}return L.length===1&&L[0][0]>L[0][1]&&(L=[]),L}o.exports={makeBrush:function(O,R,z,L,P,N){var B,G=function(){var W,K,te=[];return{set:function(Y){(te=Y.map(function(Z){return Z.slice().sort(i)}).sort(S)).length===1&&te[0][0]===-1/0&&te[0][1]===1/0&&(te=[[0,-1]]),W=D(te),K=te.reduce(function(Z,re){return[Math.min(Z[0],re[0]),Math.max(Z[1],re[1])]},[1/0,-1/0])},get:function(){return te.slice()},getConsolidated:function(){return W},getBounds:function(){return K}}}();return G.set(z),{filter:G,filterSpecified:R,svgBrush:{extent:[],brushStartCallback:L,brushCallback:(B=P,function(W){var K=W.brush,te=function(Y){return Y.svgBrush.extent.map(function(Z){return Z.slice()})}(K).slice();K.filter.set(te),B()}),brushEndCallback:N}}},ensureAxisBrush:function(O,R){var z=O.selectAll("."+r.cn.axisBrush).data(c,u);z.enter().append("g").classed(r.cn.axisBrush,!0),function(L,P){var N=L.selectAll(".background").data(c);N.enter().append("rect").classed("background",!0).call(p).call(v).style("pointer-events","auto").attr("transform",s(0,r.verticalPadding)),N.call(A).attr("height",function(W){return W.height-r.verticalPadding});var B=L.selectAll(".highlight-shadow").data(c);B.enter().append("line").classed("highlight-shadow",!0).attr("x",-r.bar.width/2).attr("stroke-width",r.bar.width+r.bar.strokeWidth).attr("stroke",P).attr("opacity",r.bar.strokeOpacity).attr("stroke-linecap","butt"),B.attr("y1",function(W){return W.height}).call(k);var G=L.selectAll(".highlight").data(c);G.enter().append("line").classed("highlight",!0).attr("x",-r.bar.width/2).attr("stroke-width",r.bar.width-r.bar.strokeWidth).attr("stroke",r.bar.fillColor).attr("opacity",r.bar.fillOpacity).attr("stroke-linecap","butt"),G.attr("y1",function(W){return W.height}).call(k)}(z,R)},cleanRanges:function(O,R){if(Array.isArray(O[0])?(O=O.map(function(L){return L.sort(i)}),O=R.multiselect?D(O.sort(S)):[O[0]]):O=[O.sort(i)],R.tickvals){var z=R.tickvals.slice().sort(i);if(!(O=O.map(function(L){var P=[g(0,z,L[0],[]),g(1,z,L[1],[])];if(P[1]>P[0])return P}).filter(function(L){return L})).length)return}return O.length>1?O:O[0]}}},{"../../lib":503,"../../lib/gup":500,"./constants":893,"@plotly/d3":58}],890:[function(e,o,f){o.exports={attributes:e("./attributes"),supplyDefaults:e("./defaults"),calc:e("./calc"),colorbar:{container:"line",min:"cmin",max:"cmax"},moduleType:"trace",name:"parcoords",basePlotModule:e("./base_plot"),categories:["gl","regl","noOpacity","noHover"],meta:{}}},{"./attributes":888,"./base_plot":891,"./calc":892,"./defaults":894}],891:[function(e,o,f){var r=e("@plotly/d3"),a=e("../../plots/get_data").getModuleCalcData,u=e("./plot"),c=e("../../constants/xmlns_namespaces");f.name="parcoords",f.plot=function(i){var s=a(i.calcdata,"parcoords")[0];s.length&&u(i,s)},f.clean=function(i,s,l,d){var h=d._has&&d._has("parcoords"),m=s._has&&s._has("parcoords");h&&!m&&(d._paperdiv.selectAll(".parcoords").remove(),d._glimages.selectAll("*").remove())},f.toSVG=function(i){var s=i._fullLayout._glimages,l=r.select(i).selectAll(".svg-container");l.filter(function(d,h){return h===l.size()-1}).selectAll(".gl-canvas-context, .gl-canvas-focus").each(function(){var d=this.toDataURL("image/png");s.append("svg:image").attr({xmlns:c.svg,"xlink:href":d,preserveAspectRatio:"none",x:0,y:0,width:this.style.width,height:this.style.height})}),window.setTimeout(function(){r.selectAll("#filterBarPattern").attr("id","filterBarPattern")},60)}},{"../../constants/xmlns_namespaces":480,"../../plots/get_data":593,"./plot":900,"@plotly/d3":58}],892:[function(e,o,f){var r=e("../../lib").isArrayOrTypedArray,a=e("../../components/colorscale"),u=e("../../lib/gup").wrap;o.exports=function(c,i){var s,l;return a.hasColorscale(i,"line")&&r(i.line.color)?(s=i.line.color,l=a.extractOpts(i.line).colorscale,a.calc(c,i,{vals:s,containerStr:"line",cLetter:"c"})):(s=function(d){for(var h=new Array(d),m=0;mh&&(r.log("parcoords traces support up to "+h+" dimensions at the moment"),k.splice(h));var b=i(p,v,{name:"dimensions",layout:x,handleItemDefaults:g}),T=function(M,A,S,E,D){var O=D("line.color",S);if(a(M,"line")&&r.isArrayOrTypedArray(O)){if(O.length)return D("line.colorscale"),u(M,A,E,D,{prefix:"line.",cLetter:"c"}),O.length;A.line.color=S}return 1/0}(p,v,y,x,w);c(v,x,w),Array.isArray(b)&&b.length||(v.visible=!1),m(v,b,"values",T);var _={family:x.font.family,size:Math.round(x.font.size/1.2),color:x.font.color};r.coerceFont(w,"labelfont",_),r.coerceFont(w,"tickfont",_),r.coerceFont(w,"rangefont",_),w("labelangle"),w("labelside")}},{"../../components/colorscale/defaults":376,"../../components/colorscale/helpers":377,"../../lib":503,"../../plots/array_container_defaults":549,"../../plots/cartesian/axes":554,"../../plots/domain":584,"./attributes":888,"./axisbrush":889,"./constants":893,"./merge_length":898}],895:[function(e,o,f){var r=e("../../lib").isTypedArray;f.convertTypedArray=function(a){return r(a)?Array.prototype.slice.call(a):a},f.isOrdinal=function(a){return!!a.tickvals},f.isVisible=function(a){return a.visible||!("visible"in a)}},{"../../lib":503}],896:[function(e,o,f){var r=e("./base_index");r.plot=e("./plot"),o.exports=r},{"./base_index":890,"./plot":900}],897:[function(e,o,f){var r=e("glslify"),a=r([`precision highp float; +#define GLSLIFY 1 + +varying vec4 fragColor; + +attribute vec4 p01_04, p05_08, p09_12, p13_16, + p17_20, p21_24, p25_28, p29_32, + p33_36, p37_40, p41_44, p45_48, + p49_52, p53_56, p57_60, colors; + +uniform mat4 dim0A, dim1A, dim0B, dim1B, dim0C, dim1C, dim0D, dim1D, + loA, hiA, loB, hiB, loC, hiC, loD, hiD; + +uniform vec2 resolution, viewBoxPos, viewBoxSize; +uniform float maskHeight; +uniform float drwLayer; // 0: context, 1: focus, 2: pick +uniform vec4 contextColor; +uniform sampler2D maskTexture, palette; + +bool isPick = (drwLayer > 1.5); +bool isContext = (drwLayer < 0.5); + +const vec4 ZEROS = vec4(0.0, 0.0, 0.0, 0.0); +const vec4 UNITS = vec4(1.0, 1.0, 1.0, 1.0); + +float val(mat4 p, mat4 v) { + return dot(matrixCompMult(p, v) * UNITS, UNITS); +} + +float axisY(float ratio, mat4 A, mat4 B, mat4 C, mat4 D) { + float y1 = val(A, dim0A) + val(B, dim0B) + val(C, dim0C) + val(D, dim0D); + float y2 = val(A, dim1A) + val(B, dim1B) + val(C, dim1C) + val(D, dim1D); + return y1 * (1.0 - ratio) + y2 * ratio; +} + +int iMod(int a, int b) { + return a - b * (a / b); +} + +bool fOutside(float p, float lo, float hi) { + return (lo < hi) && (lo > p || p > hi); +} + +bool vOutside(vec4 p, vec4 lo, vec4 hi) { + return ( + fOutside(p[0], lo[0], hi[0]) || + fOutside(p[1], lo[1], hi[1]) || + fOutside(p[2], lo[2], hi[2]) || + fOutside(p[3], lo[3], hi[3]) + ); +} + +bool mOutside(mat4 p, mat4 lo, mat4 hi) { + return ( + vOutside(p[0], lo[0], hi[0]) || + vOutside(p[1], lo[1], hi[1]) || + vOutside(p[2], lo[2], hi[2]) || + vOutside(p[3], lo[3], hi[3]) + ); +} + +bool outsideBoundingBox(mat4 A, mat4 B, mat4 C, mat4 D) { + return mOutside(A, loA, hiA) || + mOutside(B, loB, hiB) || + mOutside(C, loC, hiC) || + mOutside(D, loD, hiD); +} + +bool outsideRasterMask(mat4 A, mat4 B, mat4 C, mat4 D) { + mat4 pnts[4]; + pnts[0] = A; + pnts[1] = B; + pnts[2] = C; + pnts[3] = D; + + for(int i = 0; i < 4; ++i) { + for(int j = 0; j < 4; ++j) { + for(int k = 0; k < 4; ++k) { + if(0 == iMod( + int(255.0 * texture2D(maskTexture, + vec2( + (float(i * 2 + j / 2) + 0.5) / 8.0, + (pnts[i][j][k] * (maskHeight - 1.0) + 1.0) / maskHeight + ))[3] + ) / int(pow(2.0, float(iMod(j * 4 + k, 8)))), + 2 + )) return true; + } + } + } + return false; +} + +vec4 position(bool isContext, float v, mat4 A, mat4 B, mat4 C, mat4 D) { + float x = 0.5 * sign(v) + 0.5; + float y = axisY(x, A, B, C, D); + float z = 1.0 - abs(v); + + z += isContext ? 0.0 : 2.0 * float( + outsideBoundingBox(A, B, C, D) || + outsideRasterMask(A, B, C, D) + ); + + return vec4( + 2.0 * (vec2(x, y) * viewBoxSize + viewBoxPos) / resolution - 1.0, + z, + 1.0 + ); +} + +void main() { + mat4 A = mat4(p01_04, p05_08, p09_12, p13_16); + mat4 B = mat4(p17_20, p21_24, p25_28, p29_32); + mat4 C = mat4(p33_36, p37_40, p41_44, p45_48); + mat4 D = mat4(p49_52, p53_56, p57_60, ZEROS); + + float v = colors[3]; + + gl_Position = position(isContext, v, A, B, C, D); + + fragColor = + isContext ? vec4(contextColor) : + isPick ? vec4(colors.rgb, 1.0) : texture2D(palette, vec2(abs(v), 0.5)); +} +`]),u=r([`precision highp float; +#define GLSLIFY 1 + +varying vec4 fragColor; + +void main() { + gl_FragColor = fragColor; +} +`]),c=e("./constants").maxDimensionCount,i=e("../../lib"),s=new Uint8Array(4),l=new Uint8Array(4),d={shape:[256,1],format:"rgba",type:"uint8",mag:"nearest",min:"nearest"};function h(b,T,_,M,A){var S=b._gl;S.enable(S.SCISSOR_TEST),S.scissor(T,_,M,A),b.clear({color:[0,0,0,0],depth:1})}function m(b,T,_,M,A,S){var E=S.key;_.drawCompleted||(function(D){D.read({x:0,y:0,width:1,height:1,data:s})}(b),_.drawCompleted=!0),function D(O){var R=Math.min(M,A-O*M);O===0&&(window.cancelAnimationFrame(_.currentRafs[E]),delete _.currentRafs[E],h(b,S.scissorX,S.scissorY,S.scissorWidth,S.viewBoxSize[1])),_.clearOnly||(S.count=2*R,S.offset=2*O*M,T(S),O*M+R>>8*T)%256/255}function v(b,T,_){for(var M=new Array(8*T),A=0,S=0;SQ&&(Q=Y[U].dim1.canvasX,$=U);ne===0&&h(R,0,0,_.canvasWidth,_.canvasHeight);var ee=function(Te){var Oe,de,ye,Me=[[],[]];for(ye=0;ye<64;ye++){var ke=!Te&&yeee._length&&(_e=_e.slice(0,ee._length));var we,Te=ee.tickvals;function Oe(Ee,ze){return{val:Ee,text:we[ze]}}function de(Ee,ze){return Ee.val-ze.val}if(Array.isArray(Te)&&Te.length){we=ee.ticktext,Array.isArray(we)&&we.length?we.length>Te.length?we=we.slice(0,Te.length):Te.length>we.length&&(Te=Te.slice(0,we.length)):we=Te.map(u(ee.tickformat));for(var ye=1;ye=ze||Re>=Fe)return;var qe=ke.lineLayer.readPixel(Ke,Fe-1-Re),We=qe[3]!==0,Ye=We?qe[2]+256*(qe[1]+256*qe[0]):null,nt={x:Ke,y:Re,clientX:Ee.clientX,clientY:Ee.clientY,dataIndex:ke.model.key,curveNumber:Ye};Ye!==ae&&(We?Y.hover(nt):Y.unhover&&Y.unhover(nt),ae=Ye)}}),ie.style("opacity",function(ke){return ke.pick?0:1}),re.style("background","rgba(255, 255, 255, 0)");var ue=re.selectAll("."+w.cn.parcoords).data(ee,p);ue.exit().remove(),ue.enter().append("g").classed(w.cn.parcoords,!0).style("shape-rendering","crispEdges").style("pointer-events","none"),ue.attr("transform",function(ke){return l(ke.model.translateX,ke.model.translateY)});var le=ue.selectAll("."+w.cn.parcoordsControlView).data(v,p);le.enter().append("g").classed(w.cn.parcoordsControlView,!0),le.attr("transform",function(ke){return l(ke.model.pad.l,ke.model.pad.t)});var ge=le.selectAll("."+w.cn.yAxis).data(function(ke){return ke.dimensions},p);ge.enter().append("g").classed(w.cn.yAxis,!0),le.each(function(ke){N(ge,ke,q)}),ie.each(function(ke){if(ke.viewModel){!ke.lineLayer||Y?ke.lineLayer=b(this,ke):ke.lineLayer.update(ke),(ke.key||ke.key===0)&&(ke.viewModel[ke.key]=ke.lineLayer);var Ee=!ke.context||Y;ke.lineLayer.render(ke.viewModel.panels,Ee)}}),ge.attr("transform",function(ke){return l(ke.xScale(ke.xIndex),0)}),ge.call(r.behavior.drag().origin(function(ke){return ke}).on("drag",function(ke){var Ee=ke.parent;Q.linePickActive(!1),ke.x=Math.max(-w.overdrag,Math.min(ke.model.width+w.overdrag,r.event.x)),ke.canvasX=ke.x*ke.model.canvasPixelRatio,ge.sort(function(ze,Fe){return ze.x-Fe.x}).each(function(ze,Fe){ze.xIndex=Fe,ze.x=ke===ze?ze.x:ze.xScale(ze.xIndex),ze.canvasX=ze.x*ze.model.canvasPixelRatio}),N(ge,Ee,q),ge.filter(function(ze){return Math.abs(ke.xIndex-ze.xIndex)!==0}).attr("transform",function(ze){return l(ze.xScale(ze.xIndex),0)}),r.select(this).attr("transform",l(ke.x,0)),ge.each(function(ze,Fe,Ve){Ve===ke.parent.key&&(Ee.dimensions[Fe]=ze)}),Ee.contextLayer&&Ee.contextLayer.render(Ee.panels,!1,!O(Ee)),Ee.focusLayer.render&&Ee.focusLayer.render(Ee.panels)}).on("dragend",function(ke){var Ee=ke.parent;ke.x=ke.xScale(ke.xIndex),ke.canvasX=ke.x*ke.model.canvasPixelRatio,N(ge,Ee,q),r.select(this).attr("transform",function(ze){return l(ze.x,0)}),Ee.contextLayer&&Ee.contextLayer.render(Ee.panels,!1,!O(Ee)),Ee.focusLayer&&Ee.focusLayer.render(Ee.panels),Ee.pickLayer&&Ee.pickLayer.render(Ee.panels,!0),Q.linePickActive(!0),Y&&Y.axesMoved&&Y.axesMoved(Ee.key,Ee.dimensions.map(function(ze){return ze.crossfilterDimensionIndex}))})),ge.exit().remove();var fe=ge.selectAll("."+w.cn.axisOverlays).data(v,p);fe.enter().append("g").classed(w.cn.axisOverlays,!0),fe.selectAll("."+w.cn.axis).remove();var me=fe.selectAll("."+w.cn.axis).data(v,p);me.enter().append("g").classed(w.cn.axis,!0),me.each(function(ke){var Ee=ke.model.height/ke.model.tickDistance,ze=ke.domainScale,Fe=ze.domain();r.select(this).call(r.svg.axis().orient("left").tickSize(4).outerTickSize(2).ticks(Ee,ke.tickFormat).tickValues(ke.ordinal?Fe:null).tickFormat(function(Ve){return x.isOrdinal(ke)?Ve:B(ke.model.dimensions[ke.visibleIndex],Ve)}).scale(ze)),h.font(me.selectAll("text"),ke.model.tickFont)}),me.selectAll(".domain, .tick>line").attr("fill","none").attr("stroke","black").attr("stroke-opacity",.25).attr("stroke-width","1px"),me.selectAll("text").style("text-shadow",d.makeTextShadow($)).style("cursor","default");var _e=fe.selectAll("."+w.cn.axisHeading).data(v,p);_e.enter().append("g").classed(w.cn.axisHeading,!0);var we=_e.selectAll("."+w.cn.axisTitle).data(v,p);we.enter().append("text").classed(w.cn.axisTitle,!0).attr("text-anchor","middle").style("cursor","ew-resize").style("pointer-events","auto"),we.text(function(ke){return ke.label}).each(function(ke){var Ee=r.select(this);h.font(Ee,ke.model.labelFont),d.convertToTspans(Ee,W)}).attr("transform",function(ke){var Ee=P(ke.model.labelAngle,ke.model.labelSide),ze=w.axisTitleOffset;return(Ee.dir>0?"":l(0,2*ze+ke.model.height))+s(Ee.degrees)+l(-ze*Ee.dx,-ze*Ee.dy)}).attr("text-anchor",function(ke){var Ee=P(ke.model.labelAngle,ke.model.labelSide);return 2*Math.abs(Ee.dx)>Math.abs(Ee.dy)?Ee.dir*Ee.dx<0?"start":"end":"middle"});var Te=fe.selectAll("."+w.cn.axisExtent).data(v,p);Te.enter().append("g").classed(w.cn.axisExtent,!0);var Oe=Te.selectAll("."+w.cn.axisExtentTop).data(v,p);Oe.enter().append("g").classed(w.cn.axisExtentTop,!0),Oe.attr("transform",l(0,-w.axisExtentOffset));var de=Oe.selectAll("."+w.cn.axisExtentTopText).data(v,p);de.enter().append("text").classed(w.cn.axisExtentTopText,!0).call(L),de.text(function(ke){return G(ke,!0)}).each(function(ke){h.font(r.select(this),ke.model.rangeFont)});var ye=Te.selectAll("."+w.cn.axisExtentBottom).data(v,p);ye.enter().append("g").classed(w.cn.axisExtentBottom,!0),ye.attr("transform",function(ke){return l(0,ke.model.height+w.axisExtentOffset)});var Me=ye.selectAll("."+w.cn.axisExtentBottomText).data(v,p);Me.enter().append("text").classed(w.cn.axisExtentBottomText,!0).attr("dy","0.75em").call(L),Me.text(function(ke){return G(ke,!1)}).each(function(ke){h.font(r.select(this),ke.model.rangeFont)}),k.ensureAxisBrush(fe,$)}},{"../../components/colorscale":378,"../../components/drawing":388,"../../lib":503,"../../lib/gup":500,"../../lib/svg_text_utils":529,"../../plots/cartesian/axes":554,"./axisbrush":889,"./constants":893,"./helpers":895,"./lines":897,"@plotly/d3":58,"color-rgba":91}],900:[function(e,o,f){var r=e("./parcoords"),a=e("../../lib/prepare_regl"),u=e("./helpers").isVisible,c={};function i(s,l,d){var h=l.indexOf(d),m=s.indexOf(h);return m===-1&&(m+=l.length),m}(o.exports=function(s,l){var d=s._fullLayout;if(a(s,[],c)){var h={},m={},g={},p={},v=d._size;l.forEach(function(y,x){var w=y[0].trace;g[x]=w.index;var k=p[x]=w._fullInput.index;h[x]=s.data[k].dimensions,m[x]=s.data[k].dimensions.slice()}),r(s,l,{width:v.w,height:v.h,margin:{t:v.t,r:v.r,b:v.b,l:v.l}},{filterChanged:function(y,x,w){var k=m[y][x],b=w.map(function(E){return E.slice()}),T="dimensions["+x+"].constraintrange",_=d._tracePreGUI[s._fullData[g[y]]._fullInput.uid];if(_[T]===void 0){var M=k.constraintrange;_[T]=M||null}var A=s._fullData[g[y]].dimensions[x];b.length?(b.length===1&&(b=b[0]),k.constraintrange=b,A.constraintrange=b.slice(),b=[b]):(delete k.constraintrange,delete A.constraintrange,b=null);var S={};S[T]=b,s.emit("plotly_restyle",[S,[p[y]]])},hover:function(y){s.emit("plotly_hover",y)},unhover:function(y){s.emit("plotly_unhover",y)},axesMoved:function(y,x){var w=function(k,b){return function(T,_){return i(k,b,T)-i(k,b,_)}}(x,m[y].filter(u));h[y].sort(w),m[y].filter(function(k){return!u(k)}).sort(function(k){return m[y].indexOf(k)}).forEach(function(k){h[y].splice(h[y].indexOf(k),1),h[y].splice(m[y].indexOf(k),0,k)}),s.emit("plotly_restyle",[{dimensions:[h[y]]},[p[y]]])}})}}).reglPrecompiled=c},{"../../lib/prepare_regl":516,"./helpers":895,"./parcoords":899}],901:[function(e,o,f){var r=e("../../plots/attributes"),a=e("../../plots/domain").attributes,u=e("../../plots/font_attributes"),c=e("../../components/color/attributes"),i=e("../../plots/template_attributes").hovertemplateAttrs,s=e("../../plots/template_attributes").texttemplateAttrs,l=e("../../lib/extend").extendFlat,d=u({editType:"plot",arrayOk:!0,colorEditType:"plot"});o.exports={labels:{valType:"data_array",editType:"calc"},label0:{valType:"number",dflt:0,editType:"calc"},dlabel:{valType:"number",dflt:1,editType:"calc"},values:{valType:"data_array",editType:"calc"},marker:{colors:{valType:"data_array",editType:"calc"},line:{color:{valType:"color",dflt:c.defaultLine,arrayOk:!0,editType:"style"},width:{valType:"number",min:0,dflt:0,arrayOk:!0,editType:"style"},editType:"calc"},editType:"calc"},text:{valType:"data_array",editType:"plot"},hovertext:{valType:"string",dflt:"",arrayOk:!0,editType:"style"},scalegroup:{valType:"string",dflt:"",editType:"calc"},textinfo:{valType:"flaglist",flags:["label","text","value","percent"],extras:["none"],editType:"calc"},hoverinfo:l({},r.hoverinfo,{flags:["label","text","value","percent","name"]}),hovertemplate:i({},{keys:["label","color","value","percent","text"]}),texttemplate:s({editType:"plot"},{keys:["label","color","value","percent","text"]}),textposition:{valType:"enumerated",values:["inside","outside","auto","none"],dflt:"auto",arrayOk:!0,editType:"plot"},textfont:l({},d,{}),insidetextorientation:{valType:"enumerated",values:["horizontal","radial","tangential","auto"],dflt:"auto",editType:"plot"},insidetextfont:l({},d,{}),outsidetextfont:l({},d,{}),automargin:{valType:"boolean",dflt:!1,editType:"plot"},title:{text:{valType:"string",dflt:"",editType:"plot"},font:l({},d,{}),position:{valType:"enumerated",values:["top left","top center","top right","middle center","bottom left","bottom center","bottom right"],editType:"plot"},editType:"plot"},domain:a({name:"pie",trace:!0,editType:"calc"}),hole:{valType:"number",min:0,max:1,dflt:0,editType:"calc"},sort:{valType:"boolean",dflt:!0,editType:"calc"},direction:{valType:"enumerated",values:["clockwise","counterclockwise"],dflt:"counterclockwise",editType:"calc"},rotation:{valType:"number",min:-360,max:360,dflt:0,editType:"calc"},pull:{valType:"number",min:0,max:1,dflt:0,arrayOk:!0,editType:"calc"},_deprecated:{title:{valType:"string",dflt:"",editType:"calc"},titlefont:l({},d,{}),titleposition:{valType:"enumerated",values:["top left","top center","top right","middle center","bottom left","bottom center","bottom right"],editType:"calc"}}}},{"../../components/color/attributes":365,"../../lib/extend":493,"../../plots/attributes":550,"../../plots/domain":584,"../../plots/font_attributes":585,"../../plots/template_attributes":633}],902:[function(e,o,f){var r=e("../../plots/plots");f.name="pie",f.plot=function(a,u,c,i){r.plotBasePlot(f.name,a,u,c,i)},f.clean=function(a,u,c,i){r.cleanBasePlot(f.name,a,u,c,i)}},{"../../plots/plots":619}],903:[function(e,o,f){var r=e("fast-isnumeric"),a=e("tinycolor2"),u=e("../../components/color"),c={};function i(l){return function(d,h){return!!d&&!!(d=a(d)).isValid()&&(d=u.addOpacity(d,d.getAlpha()),l[h]||(l[h]=d),d)}}function s(l,d){var h,m=JSON.stringify(l),g=d[m];if(!g){for(g=l.slice(),h=0;h=0}),(d.type==="funnelarea"?A:d.sort)&&g.sort(function(R,z){return z.v-R.v}),g[0]&&(g[0].vTotal=M),g},crossTraceCalc:function(l,d){var h=(d||{}).type;h||(h="pie");var m=l._fullLayout,g=l.calcdata,p=m[h+"colorway"],v=m["_"+h+"colormap"];m["extend"+h+"colors"]&&(p=s(p,c));for(var y=0,x=0;x0){p=!0;break}}p||(g=0)}return{hasLabels:h,hasValues:m,len:g}}o.exports={handleLabelsAndValues:s,supplyDefaults:function(l,d,h,m){function g(_,M){return a.coerce(l,d,u,_,M)}var p=s(g("labels"),g("values")),v=p.len;if(d._hasLabels=p.hasLabels,d._hasValues=p.hasValues,!d._hasLabels&&d._hasValues&&(g("label0"),g("dlabel")),v){d._length=v,g("marker.line.width")&&g("marker.line.color"),g("marker.colors"),g("scalegroup");var y,x=g("text"),w=g("texttemplate");if(w||(y=g("textinfo",Array.isArray(x)?"text+percent":"percent")),g("hovertext"),g("hovertemplate"),w||y&&y!=="none"){var k=g("textposition");i(l,d,m,g,k,{moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!1,moduleHasCliponaxis:!1,moduleHasTextangle:!1,moduleHasInsideanchor:!1}),(Array.isArray(k)||k==="auto"||k==="outside")&&g("automargin"),(k==="inside"||k==="auto"||Array.isArray(k))&&g("insidetextorientation")}c(d,m,g);var b=g("hole");if(g("title.text")){var T=g("title.position",b?"middle center":"top center");b||T!=="middle center"||(d.title.position="top center"),a.coerceFont(g,"title.font",m.font)}g("sort"),g("direction"),g("rotation"),g("pull")}else d.visible=!1}}},{"../../lib":503,"../../plots/domain":584,"../bar/defaults":652,"./attributes":901,"fast-isnumeric":190}],905:[function(e,o,f){var r=e("../../components/fx/helpers").appendArrayMultiPointValues;o.exports=function(a,u){var c={curveNumber:u.index,pointNumbers:a.pts,data:u._input,fullData:u,label:a.label,color:a.color,value:a.v,percent:a.percent,text:a.text,bbox:a.bbox,v:a.v};return a.pts.length===1&&(c.pointNumber=c.i=a.pts[0]),r(c,u,a.pts),u.type==="funnelarea"&&(delete c.v,delete c.i),c}},{"../../components/fx/helpers":402}],906:[function(e,o,f){var r=e("../../lib");function a(u){return u.indexOf("e")!==-1?u.replace(/[.]?0+e/,"e"):u.indexOf(".")!==-1?u.replace(/[.]?0+$/,""):u}f.formatPiePercent=function(u,c){var i=a((100*u).toPrecision(3));return r.numSeparate(i,c)+"%"},f.formatPieValue=function(u,c){var i=a(u.toPrecision(10));return r.numSeparate(i,c)},f.getFirstFilled=function(u,c){if(Array.isArray(u))for(var i=0;i"),name:Q.hovertemplate||ee.indexOf("name")!==-1?Q.name:void 0,idealAlign:ne.pxmid[0]<0?"left":"right",color:y.castOption(me.bgcolor,ne.pts)||ne.color,borderColor:y.castOption(me.bordercolor,ne.pts),fontFamily:y.castOption(_e.family,ne.pts),fontSize:y.castOption(_e.size,ne.pts),fontColor:y.castOption(_e.color,ne.pts),nameLength:y.castOption(me.namelength,ne.pts),textAlign:y.castOption(me.align,ne.pts),hovertemplate:y.castOption(Q.hovertemplate,ne.pts),hovertemplateLabels:ne,eventData:[x(ne,Q)]},{container:H._hoverlayer.node(),outerContainer:H._paper.node(),gd:te,inOut_bbox:we}),ne.bbox=we[0],q._hasHoverLabel=!0}q._hasHoverEvent=!0,te.emit("plotly_hover",{points:[x(ne,Q)],event:r.event})}}),K.on("mouseout",function(ne){var H=te._fullLayout,Q=te._fullData[q.index],ee=r.select(this).datum();q._hasHoverEvent&&(ne.originalEvent=r.event,te.emit("plotly_unhover",{points:[x(ee,Q)],event:r.event}),q._hasHoverEvent=!1),q._hasHoverLabel&&(u.loneUnhover(H._hoverlayer.node()),q._hasHoverLabel=!1)}),K.on("click",function(ne){var H=te._fullLayout,Q=te._fullData[q.index];te._dragging||H.hovermode===!1||(te._hoverdata=[x(ne,Q)],u.click(te,r.event))})}function b(K,te,Y){var Z=y.castOption(K.insidetextfont.color,te.pts);!Z&&K._input.textfont&&(Z=y.castOption(K._input.textfont.color,te.pts));var re=y.castOption(K.insidetextfont.family,te.pts)||y.castOption(K.textfont.family,te.pts)||Y.family,U=y.castOption(K.insidetextfont.size,te.pts)||y.castOption(K.textfont.size,te.pts)||Y.size;return{color:Z||c.contrast(te.color),family:re,size:U}}function T(K,te){for(var Y,Z,re=0;reFe&&Fe>Ke||Ve=-4;ge-=2)fe(Math.PI*ge,"tan");for(ge=4;ge>=-4;ge-=2)fe(Math.PI*(ge+1),"tan")}if(ee||ae){for(ge=4;ge>=-4;ge-=2)fe(Math.PI*(ge+1.5),"rad");for(ge=4;ge>=-4;ge-=2)fe(Math.PI*(ge+.5),"rad")}}if($||ue||ee){var me=Math.sqrt(K.width*K.width+K.height*K.height);if((U={scale:re*Z*2/me,rCenter:1-re,rotate:0}).textPosAngle=(te.startangle+te.stopangle)/2,U.scale>=1)return U;le.push(U)}(ue||ae)&&((U=M(K,Z,q,ne,H)).textPosAngle=(te.startangle+te.stopangle)/2,le.push(U)),(ue||ie)&&((U=A(K,Z,q,ne,H)).textPosAngle=(te.startangle+te.stopangle)/2,le.push(U));for(var _e=0,we=0,Te=0;Te=1)break}return le[_e]}function M(K,te,Y,Z,re){te=Math.max(0,te-2*v);var U=K.width/K.height,q=D(U,Z,te,Y);return{scale:2*q/K.height,rCenter:S(U,q/te),rotate:E(re)}}function A(K,te,Y,Z,re){te=Math.max(0,te-2*v);var U=K.height/K.width,q=D(U,Z,te,Y);return{scale:2*q/K.width,rCenter:S(U,q/te),rotate:E(re+Math.PI/2)}}function S(K,te){return Math.cos(te)-K*te}function E(K){return(180/Math.PI*K+720)%180-90}function D(K,te,Y,Z){var re=K+1/(2*Math.tan(te));return Y*Math.min(1/(Math.sqrt(re*re+.5)+re),Z/(Math.sqrt(K*K+Z/2)+K))}function O(K,te){return K.v!==te.vTotal||te.trace.hole?Math.min(1/(1+1/Math.sin(K.halfangle)),K.ring/2):1}function R(K,te){var Y=te.pxmid[0],Z=te.pxmid[1],re=K.width/2,U=K.height/2;return Y<0&&(re*=-1),Z<0&&(U*=-1),{scale:1,rCenter:1,rotate:0,x:re+Math.abs(U)*(re>0?1:-1)/2,y:U/(1+Y*Y/(Z*Z)),outside:!0}}function z(K,te){var Y,Z,re,U=K.trace,q={x:K.cx,y:K.cy},$={tx:0,ty:0};$.ty+=U.title.font.size,re=P(U),U.title.position.indexOf("top")!==-1?(q.y-=(1+re)*K.r,$.ty-=K.titleBox.height):U.title.position.indexOf("bottom")!==-1&&(q.y+=(1+re)*K.r);var ne,H,Q=(ne=K.r,H=K.trace.aspectratio,ne/(H===void 0?1:H)),ee=te.w*(U.domain.x[1]-U.domain.x[0])/2;return U.title.position.indexOf("left")!==-1?(ee+=Q,q.x-=(1+re)*Q,$.tx+=K.titleBox.width/2):U.title.position.indexOf("center")!==-1?ee*=2:U.title.position.indexOf("right")!==-1&&(ee+=Q,q.x+=(1+re)*Q,$.tx-=K.titleBox.width/2),Y=ee/K.titleBox.width,Z=L(K,te)/K.titleBox.height,{x:q.x,y:q.y,scale:Math.min(Y,Z),tx:$.tx,ty:$.ty}}function L(K,te){var Y=K.trace,Z=te.h*(Y.domain.y[1]-Y.domain.y[0]);return Math.min(K.titleBox.height,Z/2)}function P(K){var te,Y=K.pull;if(!Y)return 0;if(Array.isArray(Y))for(Y=0,te=0;teY&&(Y=K.pull[te]);return Y}function N(K,te){for(var Y=[],Z=0;Z1?(we=ae.r,Te=we/le.aspectratio):(Te=ae.r,we=Te*le.aspectratio),we*=(1+le.baseratio)/2,_e=we*Te}fe=Math.min(fe,_e/ae.vTotal)}for(ue=0;ue")}if(U){var ge=s.castOption(re,te.i,"texttemplate");if(ge){var fe=function(_e){return{label:_e.label,value:_e.v,valueLabel:y.formatPieValue(_e.v,Z.separators),percent:_e.v/Y.vTotal,percentLabel:y.formatPiePercent(_e.v/Y.vTotal,Z.separators),color:_e.color,text:_e.text,customdata:s.castOption(re,_e.i,"customdata")}}(te),me=y.getFirstFilled(re.text,te.pts);(w(me)||me==="")&&(fe.text=me),te.text=s.texttemplateString(ge,fe,K._fullLayout._d3locale,fe,re._meta||{})}else te.text=""}}function W(K,te){var Y=K.rotate*Math.PI/180,Z=Math.cos(Y),re=Math.sin(Y),U=(te.left+te.right)/2,q=(te.top+te.bottom)/2;K.textX=U*Z-q*re,K.textY=U*re+q*Z,K.noCenter=!0}o.exports={plot:function(K,te){var Y=K._fullLayout,Z=Y._size;p("pie",Y),T(te,K),N(te,Z);var re=s.makeTraceGroups(Y._pielayer,te,"trace").each(function(U){var q=r.select(this),$=U[0],ne=$.trace;(function(H){var Q,ee,ie,ae=H[0],ue=ae.r,le=ae.trace,ge=y.getRotationAngle(le.rotation),fe=2*Math.PI/ae.vTotal,me="px0",_e="px1";if(le.direction==="counterclockwise"){for(Q=0;Qae.vTotal/2?1:0,ee.halfangle=Math.PI*Math.min(ee.v/ae.vTotal,.5),ee.ring=1-le.hole,ee.rInscribed=O(ee,ae))})(U),q.attr("stroke-linejoin","round"),q.each(function(){var H=r.select(this).selectAll("g.slice").data(U);H.enter().append("g").classed("slice",!0),H.exit().remove();var Q=[[[],[]],[[],[]]],ee=!1;H.each(function(_e,we){if(_e.hidden)r.select(this).selectAll("path,g").remove();else{_e.pointNumber=_e.i,_e.curveNumber=ne.index,Q[_e.pxmid[1]<0?0:1][_e.pxmid[0]<0?0:1].push(_e);var Te=$.cx,Oe=$.cy,de=r.select(this),ye=de.selectAll("path.surface").data([_e]);if(ye.enter().append("path").classed("surface",!0).style({"pointer-events":"all"}),de.call(k,K,U),ne.pull){var Me=+y.castOption(ne.pull,_e.pts)||0;Me>0&&(Te+=Me*_e.pxmid[0],Oe+=Me*_e.pxmid[1])}_e.cxFinal=Te,_e.cyFinal=Oe;var ke=ne.hole;if(_e.v===$.vTotal){var Ee="M"+(Te+_e.px0[0])+","+(Oe+_e.px0[1])+Re(_e.px0,_e.pxmid,!0,1)+Re(_e.pxmid,_e.px0,!0,1)+"Z";ke?ye.attr("d","M"+(Te+ke*_e.px0[0])+","+(Oe+ke*_e.px0[1])+Re(_e.px0,_e.pxmid,!1,ke)+Re(_e.pxmid,_e.px0,!1,ke)+"Z"+Ee):ye.attr("d",Ee)}else{var ze=Re(_e.px0,_e.px1,!0,1);if(ke){var Fe=1-ke;ye.attr("d","M"+(Te+ke*_e.px1[0])+","+(Oe+ke*_e.px1[1])+Re(_e.px1,_e.px0,!1,ke)+"l"+Fe*_e.px0[0]+","+Fe*_e.px0[1]+ze+"Z")}else ye.attr("d","M"+Te+","+Oe+"l"+_e.px0[0]+","+_e.px0[1]+ze+"Z")}G(K,_e,$);var Ve=y.castOption(ne.textposition,_e.pts),Ke=de.selectAll("g.slicetext").data(_e.text&&Ve!=="none"?[0]:[]);Ke.enter().append("g").classed("slicetext",!0),Ke.exit().remove(),Ke.each(function(){var qe=s.ensureSingle(r.select(this),"text","",function(at){at.attr("data-notex",1)}),We=s.ensureUniformFontSize(K,Ve==="outside"?function(at,et,Ot){var Wt=y.castOption(at.outsidetextfont.color,et.pts)||y.castOption(at.textfont.color,et.pts)||Ot.color,Jt=y.castOption(at.outsidetextfont.family,et.pts)||y.castOption(at.textfont.family,et.pts)||Ot.family,Be=y.castOption(at.outsidetextfont.size,et.pts)||y.castOption(at.textfont.size,et.pts)||Ot.size;return{color:Wt,family:Jt,size:Be}}(ne,_e,Y.font):b(ne,_e,Y.font));qe.text(_e.text).attr({class:"slicetext",transform:"","text-anchor":"middle"}).call(i.font,We).call(h.convertToTspans,K);var Ye,nt=i.bBox(qe.node());if(Ve==="outside")Ye=R(nt,_e);else if(Ye=_(nt,_e,$),Ve==="auto"&&Ye.scale<1){var ft=s.ensureUniformFontSize(K,ne.outsidetextfont);qe.call(i.font,ft),Ye=R(nt=i.bBox(qe.node()),_e)}var vt=Ye.textPosAngle,Pt=vt===void 0?_e.pxmid:B($.r,vt);if(Ye.targetX=Te+Pt[0]*Ye.rCenter+(Ye.x||0),Ye.targetY=Oe+Pt[1]*Ye.rCenter+(Ye.y||0),W(Ye,nt),Ye.outside){var At=Ye.targetY;_e.yLabelMin=At-nt.height/2,_e.yLabelMid=At,_e.yLabelMax=At+nt.height/2,_e.labelExtraX=0,_e.labelExtraY=0,ee=!0}Ye.fontSize=We.size,g(ne.type,Ye,Y),U[we].transform=Ye,qe.attr("transform",s.getTextTransform(Ye))})}function Re(qe,We,Ye,nt){var ft=nt*(We[0]-qe[0]),vt=nt*(We[1]-qe[1]);return"a"+nt*$.r+","+nt*$.r+" 0 "+_e.largeArc+(Ye?" 1 ":" 0 ")+ft+","+vt}});var ie=r.select(this).selectAll("g.titletext").data(ne.title.text?[0]:[]);if(ie.enter().append("g").classed("titletext",!0),ie.exit().remove(),ie.each(function(){var _e,we=s.ensureSingle(r.select(this),"text","",function(Oe){Oe.attr("data-notex",1)}),Te=ne.title.text;ne._meta&&(Te=s.templateString(Te,ne._meta)),we.text(Te).attr({class:"titletext",transform:"","text-anchor":"middle"}).call(i.font,ne.title.font).call(h.convertToTspans,K),_e=ne.title.position==="middle center"?function(Oe){var de=Math.sqrt(Oe.titleBox.width*Oe.titleBox.width+Oe.titleBox.height*Oe.titleBox.height);return{x:Oe.cx,y:Oe.cy,scale:Oe.trace.hole*Oe.r*2/de,tx:0,ty:-Oe.titleBox.height/2+Oe.trace.title.font.size}}($):z($,Z),we.attr("transform",d(_e.x,_e.y)+l(Math.min(1,_e.scale))+d(_e.tx,_e.ty))}),ee&&function(_e,we){var Te,Oe,de,ye,Me,ke,Ee,ze,Fe,Ve,Ke,Re,qe;function We(vt,Pt){return vt.pxmid[1]-Pt.pxmid[1]}function Ye(vt,Pt){return Pt.pxmid[1]-vt.pxmid[1]}function nt(vt,Pt){Pt||(Pt={});var At,at,et,Ot,Wt=Pt.labelExtraY+(Oe?Pt.yLabelMax:Pt.yLabelMin),Jt=Oe?vt.yLabelMin:vt.yLabelMax,Be=Oe?vt.yLabelMax:vt.yLabelMin,Ge=vt.cyFinal+Me(vt.px0[1],vt.px1[1]),Tt=Wt-Jt;if(Tt*Ee>0&&(vt.labelExtraY=Tt),Array.isArray(we.pull))for(at=0;at=(y.castOption(we.pull,et.pts)||0)||((vt.pxmid[1]-et.pxmid[1])*Ee>0?(Tt=et.cyFinal+Me(et.px0[1],et.px1[1])-Jt-vt.labelExtraY)*Ee>0&&(vt.labelExtraY+=Tt):(Be+vt.labelExtraY-Ge)*Ee>0&&(At=3*ke*Math.abs(at-Ve.indexOf(vt)),(Ot=et.cxFinal+ye(et.px0[0],et.px1[0])+At-(vt.cxFinal+vt.pxmid[0])-vt.labelExtraX)*ke>0&&(vt.labelExtraX+=Ot)))}for(Oe=0;Oe<2;Oe++)for(de=Oe?We:Ye,Me=Oe?Math.max:Math.min,Ee=Oe?1:-1,Te=0;Te<2;Te++){for(ye=Te?Math.max:Math.min,ke=Te?1:-1,(ze=_e[Oe][Te]).sort(de),Fe=_e[1-Oe][Te],Ve=Fe.concat(ze),Re=[],Ke=0;KeMath.abs(ze)?Me+="l"+ze*Te.pxmid[0]/Te.pxmid[1]+","+ze+"H"+(ye+Te.labelExtraX+ke):Me+="l"+Te.labelExtraX+","+Ee+"v"+(ze-Ee)+"h"+ke}else Me+="V"+(Te.yLabelMid+Te.labelExtraY)+"h"+ke;s.ensureSingle(Oe,"path","textline").call(c.stroke,we.outsidetextfont.color).attr({"stroke-width":Math.min(2,we.outsidetextfont.size/8),d:Me,fill:"none"})}else Oe.select("path.textline").remove()})}(H,ne),ee&&ne.automargin){var ae=i.bBox(q.node()),ue=ne.domain,le=Z.w*(ue.x[1]-ue.x[0]),ge=Z.h*(ue.y[1]-ue.y[0]),fe=(.5*le-$.r)/Z.w,me=(.5*ge-$.r)/Z.h;a.autoMargin(K,"pie."+ne.uid+".automargin",{xl:ue.x[0]-fe,xr:ue.x[1]+fe,yb:ue.y[0]-me,yt:ue.y[1]+me,l:Math.max($.cx-$.r-ae.left,0),r:Math.max(ae.right-($.cx+$.r),0),b:Math.max(ae.bottom-($.cy+$.r),0),t:Math.max($.cy-$.r-ae.top,0),pad:5})}})});setTimeout(function(){re.selectAll("tspan").each(function(){var U=r.select(this);U.attr("dy")&&U.attr("dy",U.attr("dy"))})},0)},formatSliceLabel:G,transformInsideText:_,determineInsideTextFont:b,positionTitleOutside:z,prerenderTitles:T,layoutAreas:N,attachFxHandlers:k,computeTransform:W}},{"../../components/color":366,"../../components/drawing":388,"../../components/fx":406,"../../lib":503,"../../lib/svg_text_utils":529,"../../plots/plots":619,"../bar/constants":650,"../bar/uniform_text":664,"./event_data":905,"./helpers":906,"@plotly/d3":58}],911:[function(e,o,f){var r=e("@plotly/d3"),a=e("./style_one"),u=e("../bar/uniform_text").resizeText;o.exports=function(c){var i=c._fullLayout._pielayer.selectAll(".trace");u(c,i,"pie"),i.each(function(s){var l=s[0].trace,d=r.select(this);d.style({opacity:l.opacity}),d.selectAll("path.surface").each(function(h){r.select(this).call(a,h,l)})})}},{"../bar/uniform_text":664,"./style_one":912,"@plotly/d3":58}],912:[function(e,o,f){var r=e("../../components/color"),a=e("./helpers").castOption;o.exports=function(u,c,i){var s=i.marker.line,l=a(s.color,c.pts)||r.defaultLine,d=a(s.width,c.pts)||0;u.style("stroke-width",d).call(r.fill,c.color).call(r.stroke,l)}},{"../../components/color":366,"./helpers":906}],913:[function(e,o,f){var r=e("../scatter/attributes");o.exports={x:r.x,y:r.y,xy:{valType:"data_array",editType:"calc"},indices:{valType:"data_array",editType:"calc"},xbounds:{valType:"data_array",editType:"calc"},ybounds:{valType:"data_array",editType:"calc"},text:r.text,marker:{color:{valType:"color",arrayOk:!1,editType:"calc"},opacity:{valType:"number",min:0,max:1,dflt:1,arrayOk:!1,editType:"calc"},blend:{valType:"boolean",dflt:null,editType:"calc"},sizemin:{valType:"number",min:.1,max:2,dflt:.5,editType:"calc"},sizemax:{valType:"number",min:.1,dflt:20,editType:"calc"},border:{color:{valType:"color",arrayOk:!1,editType:"calc"},arearatio:{valType:"number",min:0,max:1,dflt:0,editType:"calc"},editType:"calc"},editType:"calc"},transforms:void 0}},{"../scatter/attributes":927}],914:[function(e,o,f){var r=e("../../../stackgl_modules").gl_pointcloud2d,a=e("../../lib/str2rgbarray"),u=e("../../plots/cartesian/autorange").findExtremes,c=e("../scatter/get_trace_color");function i(l,d){this.scene=l,this.uid=d,this.type="pointcloud",this.pickXData=[],this.pickYData=[],this.xData=[],this.yData=[],this.textLabels=[],this.color="rgb(0, 0, 0)",this.name="",this.hoverinfo="all",this.idToIndex=new Int32Array(0),this.bounds=[0,0,0,0],this.pointcloudOptions={positions:new Float32Array(0),idToIndex:this.idToIndex,sizemin:.5,sizemax:12,color:[0,0,0,1],areaRatio:1,borderColor:[0,0,0,1]},this.pointcloud=r(l.glplot,this.pointcloudOptions),this.pointcloud._trace=this}var s=i.prototype;s.handlePick=function(l){var d=this.idToIndex[l.pointId];return{trace:this,dataCoord:l.dataCoord,traceCoord:this.pickXYData?[this.pickXYData[2*d],this.pickXYData[2*d+1]]:[this.pickXData[d],this.pickYData[d]],textLabel:Array.isArray(this.textLabels)?this.textLabels[d]:this.textLabels,color:this.color,name:this.name,pointIndex:d,hoverinfo:this.hoverinfo}},s.update=function(l){this.index=l.index,this.textLabels=l.text,this.name=l.name,this.hoverinfo=l.hoverinfo,this.bounds=[1/0,1/0,-1/0,-1/0],this.updateFast(l),this.color=c(l,{})},s.updateFast=function(l){var d,h,m,g,p,v,y=this.xData=this.pickXData=l.x,x=this.yData=this.pickYData=l.y,w=this.pickXYData=l.xy,k=l.xbounds&&l.ybounds,b=l.indices,T=this.bounds;if(w){if(m=w,d=w.length>>>1,k)T[0]=l.xbounds[0],T[2]=l.xbounds[1],T[1]=l.ybounds[0],T[3]=l.ybounds[1];else for(v=0;vT[2]&&(T[2]=g),pT[3]&&(T[3]=p);if(b)h=b;else for(h=new Int32Array(d),v=0;vT[2]&&(T[2]=g),pT[3]&&(T[3]=p);this.idToIndex=h,this.pointcloudOptions.idToIndex=h,this.pointcloudOptions.positions=m;var _=a(l.marker.color),M=a(l.marker.border.color),A=l.opacity*l.marker.opacity;_[3]*=A,this.pointcloudOptions.color=_;var S=l.marker.blend;S===null&&(S=y.length<100||x.length<100),this.pointcloudOptions.blend=S,M[3]*=A,this.pointcloudOptions.borderColor=M;var E=l.marker.sizemin,D=Math.max(l.marker.sizemax,l.marker.sizemin);this.pointcloudOptions.sizeMin=E,this.pointcloudOptions.sizeMax=D,this.pointcloudOptions.areaRatio=l.marker.border.arearatio,this.pointcloud.update(this.pointcloudOptions);var O=this.scene.xaxis,R=this.scene.yaxis,z=D/2||.5;l._extremes[O._id]=u(O,[T[0],T[2]],{ppad:z}),l._extremes[R._id]=u(R,[T[1],T[3]],{ppad:z})},s.dispose=function(){this.pointcloud.dispose()},o.exports=function(l,d){var h=new i(l,d.uid);return h.update(d),h}},{"../../../stackgl_modules":1124,"../../lib/str2rgbarray":528,"../../plots/cartesian/autorange":553,"../scatter/get_trace_color":937}],915:[function(e,o,f){var r=e("../../lib"),a=e("./attributes");o.exports=function(u,c,i){function s(l,d){return r.coerce(u,c,a,l,d)}s("x"),s("y"),s("xbounds"),s("ybounds"),u.xy&&u.xy instanceof Float32Array&&(c.xy=u.xy),u.indices&&u.indices instanceof Int32Array&&(c.indices=u.indices),s("text"),s("marker.color",i),s("marker.opacity"),s("marker.blend"),s("marker.sizemin"),s("marker.sizemax"),s("marker.border.color",i),s("marker.border.arearatio"),c._length=null}},{"../../lib":503,"./attributes":913}],916:[function(e,o,f){o.exports={attributes:e("./attributes"),supplyDefaults:e("./defaults"),calc:e("../scatter3d/calc"),plot:e("./convert"),moduleType:"trace",name:"pointcloud",basePlotModule:e("../../plots/gl2d"),categories:["gl","gl2d","showLegend"],meta:{}}},{"../../plots/gl2d":596,"../scatter3d/calc":956,"./attributes":913,"./convert":914,"./defaults":915}],917:[function(e,o,f){var r=e("../../plots/font_attributes"),a=e("../../plots/attributes"),u=e("../../components/color/attributes"),c=e("../../components/fx/attributes"),i=e("../../plots/domain").attributes,s=e("../../plots/template_attributes").hovertemplateAttrs,l=e("../../components/colorscale/attributes"),d=e("../../plot_api/plot_template").templatedArray,h=e("../../plots/cartesian/axis_format_attributes").descriptionOnlyNumbers,m=e("../../lib/extend").extendFlat,g=e("../../plot_api/edit_types").overrideAll;(o.exports=g({hoverinfo:m({},a.hoverinfo,{flags:[],arrayOk:!1}),hoverlabel:c.hoverlabel,domain:i({name:"sankey",trace:!0}),orientation:{valType:"enumerated",values:["v","h"],dflt:"h"},valueformat:{valType:"string",dflt:".3s",description:h("value")},valuesuffix:{valType:"string",dflt:""},arrangement:{valType:"enumerated",values:["snap","perpendicular","freeform","fixed"],dflt:"snap"},textfont:r({}),customdata:void 0,node:{label:{valType:"data_array",dflt:[]},groups:{valType:"info_array",impliedEdits:{x:[],y:[]},dimensions:2,freeLength:!0,dflt:[],items:{valType:"number",editType:"calc"}},x:{valType:"data_array",dflt:[]},y:{valType:"data_array",dflt:[]},color:{valType:"color",arrayOk:!0},customdata:{valType:"data_array",editType:"calc"},line:{color:{valType:"color",dflt:u.defaultLine,arrayOk:!0},width:{valType:"number",min:0,dflt:.5,arrayOk:!0}},pad:{valType:"number",arrayOk:!1,min:0,dflt:20},thickness:{valType:"number",arrayOk:!1,min:1,dflt:20},hoverinfo:{valType:"enumerated",values:["all","none","skip"],dflt:"all"},hoverlabel:c.hoverlabel,hovertemplate:s({},{keys:["value","label"]})},link:{label:{valType:"data_array",dflt:[]},color:{valType:"color",arrayOk:!0},customdata:{valType:"data_array",editType:"calc"},line:{color:{valType:"color",dflt:u.defaultLine,arrayOk:!0},width:{valType:"number",min:0,dflt:0,arrayOk:!0}},source:{valType:"data_array",dflt:[]},target:{valType:"data_array",dflt:[]},value:{valType:"data_array",dflt:[]},hoverinfo:{valType:"enumerated",values:["all","none","skip"],dflt:"all"},hoverlabel:c.hoverlabel,hovertemplate:s({},{keys:["value","label"]}),colorscales:d("concentrationscales",{editType:"calc",label:{valType:"string",editType:"calc",dflt:""},cmax:{valType:"number",editType:"calc",dflt:1},cmin:{valType:"number",editType:"calc",dflt:0},colorscale:m(l().colorscale,{dflt:[[0,"white"],[1,"black"]]})})}},"calc","nested")).transforms=void 0},{"../../components/color/attributes":365,"../../components/colorscale/attributes":373,"../../components/fx/attributes":397,"../../lib/extend":493,"../../plot_api/edit_types":536,"../../plot_api/plot_template":543,"../../plots/attributes":550,"../../plots/cartesian/axis_format_attributes":557,"../../plots/domain":584,"../../plots/font_attributes":585,"../../plots/template_attributes":633}],918:[function(e,o,f){var r=e("../../plot_api/edit_types").overrideAll,a=e("../../plots/get_data").getModuleCalcData,u=e("./plot"),c=e("../../components/fx/layout_attributes"),i=e("../../lib/setcursor"),s=e("../../components/dragelement"),l=e("../../plots/cartesian/select").prepSelect,d=e("../../lib"),h=e("../../registry");function m(g,p){var v=g._fullData[p],y=g._fullLayout,x=y.dragmode,w=y.dragmode==="pan"?"move":"crosshair",k=v._bgRect;if(x!=="pan"&&x!=="zoom"){i(k,w);var b={_id:"x",c2p:d.identity,_offset:v._sankey.translateX,_length:v._sankey.width},T={_id:"y",c2p:d.identity,_offset:v._sankey.translateY,_length:v._sankey.height},_={gd:g,element:k.node(),plotinfo:{id:p,xaxis:b,yaxis:T,fillRangeItems:d.noop},subplot:p,xaxes:[b],yaxes:[T],doneFnCompleted:function(M){var A,S=g._fullData[p],E=S.node.groups.slice(),D=[];function O(P){for(var N=S._sankey.graph.nodes,B=0;BM&&(M=g.source[h]),g.target[h]>M&&(M=g.target[h]);var A,S=M+1;d.node._count=S;var E=d.node.groups,D={};for(h=0;h0&&i(N,S)&&i(B,S)&&(!D.hasOwnProperty(N)||!D.hasOwnProperty(B)||D[N]!==D[B])){D.hasOwnProperty(B)&&(B=D[B]),D.hasOwnProperty(N)&&(N=D[N]),B=+B,x[N=+N]=x[B]=!0;var G="";g.label&&g.label[h]&&(G=g.label[h]);var W=null;G&&w.hasOwnProperty(G)&&(W=w[G]),p.push({pointNumber:h,label:G,color:v?g.color[h]:g.color,customdata:y?g.customdata[h]:g.customdata,concentrationscale:W,source:N,target:B,value:+P}),L.source.push(N),L.target.push(B)}}var K=S+E.length,te=c(m.color),Y=c(m.customdata),Z=[];for(h=0;hS-1,childrenNodes:[],pointNumber:h,label:re,color:te?m.color[h]:m.color,customdata:Y?m.customdata[h]:m.customdata})}var U=!1;return function(q,$,ne){for(var H=a.init2dArray(q,0),Q=0;Q1})}(K,L.source,L.target)&&(U=!0),{circular:U,links:p,nodes:Z,groups:E,groupLookup:D}}o.exports=function(d,h){var m=l(h);return u({circular:m.circular,_nodes:m.nodes,_links:m.links,_groups:m.groups,_groupLookup:m.groupLookup})}},{"../../components/colorscale":378,"../../lib":503,"../../lib/gup":500,"strongly-connected-components":306}],920:[function(e,o,f){o.exports={nodeTextOffsetHorizontal:4,nodeTextOffsetVertical:3,nodePadAcross:10,sankeyIterations:50,forceIterations:5,forceTicksPerFrame:10,duration:500,ease:"linear",cn:{sankey:"sankey",sankeyLinks:"sankey-links",sankeyLink:"sankey-link",sankeyNodeSet:"sankey-node-set",sankeyNode:"sankey-node",nodeRect:"node-rect",nodeLabel:"node-label"}}},{}],921:[function(e,o,f){var r=e("../../lib"),a=e("./attributes"),u=e("../../components/color"),c=e("tinycolor2"),i=e("../../plots/domain").defaults,s=e("../../components/fx/hoverlabel_defaults"),l=e("../../plot_api/plot_template"),d=e("../../plots/array_container_defaults");function h(m,g){function p(v,y){return r.coerce(m,g,a.link.colorscales,v,y)}p("label"),p("cmin"),p("cmax"),p("colorscale")}o.exports=function(m,g,p,v){function y(D,O){return r.coerce(m,g,a,D,O)}var x=r.extendDeep(v.hoverlabel,m.hoverlabel),w=m.node,k=l.newContainer(g,"node");function b(D,O){return r.coerce(w,k,a.node,D,O)}b("label"),b("groups"),b("x"),b("y"),b("pad"),b("thickness"),b("line.color"),b("line.width"),b("hoverinfo",m.hoverinfo),s(w,k,b,x),b("hovertemplate");var T=v.colorway;b("color",k.label.map(function(D,O){return u.addOpacity(function(R){return T[R%T.length]}(O),.8)})),b("customdata");var _=m.link||{},M=l.newContainer(g,"link");function A(D,O){return r.coerce(_,M,a.link,D,O)}A("label"),A("source"),A("target"),A("value"),A("line.color"),A("line.width"),A("hoverinfo",m.hoverinfo),s(_,M,A,x),A("hovertemplate");var S,E=c(v.paper_bgcolor).getLuminance()<.333?"rgba(255, 255, 255, 0.6)":"rgba(0, 0, 0, 0.2)";A("color",r.repeat(E,M.value.length)),A("customdata"),d(_,M,{name:"colorscales",handleItemDefaults:h}),i(g,v,y),y("orientation"),y("valueformat"),y("valuesuffix"),k.x.length&&k.y.length&&(S="freeform"),y("arrangement",S),r.coerceFont(y,"textfont",r.extendFlat({},v.font)),g._length=null}},{"../../components/color":366,"../../components/fx/hoverlabel_defaults":404,"../../lib":503,"../../plot_api/plot_template":543,"../../plots/array_container_defaults":549,"../../plots/domain":584,"./attributes":917,tinycolor2:312}],922:[function(e,o,f){o.exports={attributes:e("./attributes"),supplyDefaults:e("./defaults"),calc:e("./calc"),plot:e("./plot"),moduleType:"trace",name:"sankey",basePlotModule:e("./base_plot"),selectPoints:e("./select.js"),categories:["noOpacity"],meta:{}}},{"./attributes":917,"./base_plot":918,"./calc":919,"./defaults":921,"./plot":923,"./select.js":925}],923:[function(e,o,f){var r=e("@plotly/d3"),a=e("../../lib"),u=a.numberFormat,c=e("./render"),i=e("../../components/fx"),s=e("../../components/color"),l=e("./constants").cn,d=a._;function h(_){return _!==""}function m(_,M){return _.filter(function(A){return A.key===M.traceId})}function g(_,M){r.select(_).select("path").style("fill-opacity",M),r.select(_).select("rect").style("fill-opacity",M)}function p(_){r.select(_).select("text.name").style("fill","black")}function v(_){return function(M){return _.node.sourceLinks.indexOf(M.link)!==-1||_.node.targetLinks.indexOf(M.link)!==-1}}function y(_){return function(M){return M.node.sourceLinks.indexOf(_.link)!==-1||M.node.targetLinks.indexOf(_.link)!==-1}}function x(_,M,A){M&&A&&m(A,M).selectAll("."+l.sankeyLink).filter(v(M)).call(k.bind(0,M,A,!1))}function w(_,M,A){M&&A&&m(A,M).selectAll("."+l.sankeyLink).filter(v(M)).call(b.bind(0,M,A,!1))}function k(_,M,A,S){var E=S.datum().link.label;S.style("fill-opacity",function(D){if(!D.link.concentrationscale)return .4}),E&&m(M,_).selectAll("."+l.sankeyLink).filter(function(D){return D.link.label===E}).style("fill-opacity",function(D){if(!D.link.concentrationscale)return .4}),A&&m(M,_).selectAll("."+l.sankeyNode).filter(y(_)).call(x)}function b(_,M,A,S){var E=S.datum().link.label;S.style("fill-opacity",function(D){return D.tinyColorAlpha}),E&&m(M,_).selectAll("."+l.sankeyLink).filter(function(D){return D.link.label===E}).style("fill-opacity",function(D){return D.tinyColorAlpha}),A&&m(M,_).selectAll(l.sankeyNode).filter(y(_)).call(w)}function T(_,M){var A=_.hoverlabel||{},S=a.nestedProperty(A,M).get();return!Array.isArray(S)&&S}o.exports=function(_,M){for(var A=_._fullLayout,S=A._paper,E=A._size,D=0;D<_._fullData.length;D++)if(_._fullData[D].visible&&_._fullData[D].type===l.sankey&&!_._fullData[D]._viewInitial){var O=_._fullData[D].node;_._fullData[D]._viewInitial={node:{groups:O.groups.slice(),x:O.x.slice(),y:O.y.slice()}}}var R=d(_,"source:")+" ",z=d(_,"target:")+" ",L=d(_,"concentration:")+" ",P=d(_,"incoming flow count:")+" ",N=d(_,"outgoing flow count:")+" ";c(_,S,M,{width:E.w,height:E.h,margin:{t:E.t,r:E.r,b:E.b,l:E.l}},{linkEvents:{hover:function(B,G,W){_._fullLayout.hovermode!==!1&&(r.select(B).call(k.bind(0,G,W,!0)),G.link.trace.link.hoverinfo!=="skip"&&(G.link.fullData=G.link.trace,_.emit("plotly_hover",{event:r.event,points:[G.link]})))},follow:function(B,G){if(_._fullLayout.hovermode!==!1){var W=G.link.trace.link;if(W.hoverinfo!=="none"&&W.hoverinfo!=="skip"){for(var K=[],te=0,Y=0;Y"),color:T(W,"bgcolor")||s.addOpacity(Z.color,1),borderColor:T(W,"bordercolor"),fontFamily:T(W,"font.family"),fontSize:T(W,"font.size"),fontColor:T(W,"font.color"),nameLength:T(W,"namelength"),textAlign:T(W,"align"),idealAlign:r.event.x"),color:T(W,"bgcolor")||G.tinyColorHue,borderColor:T(W,"bordercolor"),fontFamily:T(W,"font.family"),fontSize:T(W,"font.size"),fontColor:T(W,"font.color"),nameLength:T(W,"namelength"),textAlign:T(W,"align"),idealAlign:"left",hovertemplate:W.hovertemplate,hovertemplateLabels:q,eventData:[G.node]},{container:A._hoverlayer.node(),outerContainer:A._paper.node(),gd:_});g(H,.85),p(H)}}},unhover:function(B,G,W){_._fullLayout.hovermode!==!1&&(r.select(B).call(w,G,W),G.node.trace.node.hoverinfo!=="skip"&&(G.node.fullData=G.node.trace,_.emit("plotly_unhover",{event:r.event,points:[G.node]})),i.loneUnhover(A._hoverlayer.node()))},select:function(B,G,W){var K=G.node;K.originalEvent=r.event,_._hoverdata=[K],r.select(B).call(w,G,W),i.click(_,{target:!0})}}})}},{"../../components/color":366,"../../components/fx":406,"../../lib":503,"./constants":920,"./render":924,"@plotly/d3":58}],924:[function(e,o,f){var r=e("d3-force"),a=e("d3-interpolate").interpolateNumber,u=e("@plotly/d3"),c=e("@plotly/d3-sankey"),i=e("@plotly/d3-sankey-circular"),s=e("./constants"),l=e("tinycolor2"),d=e("../../components/color"),h=e("../../components/drawing"),m=e("../../lib"),g=m.strTranslate,p=m.strRotate,v=e("../../lib/gup"),y=v.keyFun,x=v.repeat,w=v.unwrap,k=e("../../lib/svg_text_utils"),b=e("../../registry"),T=e("../../constants/alignment"),_=T.CAP_SHIFT,M=T.LINE_SPACING;function A(Y,Z,re){var U,q=w(Z),$=q.trace,ne=$.domain,H=$.orientation==="h",Q=$.node.pad,ee=$.node.thickness,ie=Y.width*(ne.x[1]-ne.x[0]),ae=Y.height*(ne.y[1]-ne.y[0]),ue=q._nodes,le=q._links,ge=q.circular;(U=ge?i.sankeyCircular().circularLinkGap(0):c.sankey()).iterations(s.sankeyIterations).size(H?[ie,ae]:[ae,ie]).nodeWidth(ee).nodePadding(Q).nodeId(function(Ee){return Ee.pointNumber}).nodes(ue).links(le);var fe,me,_e,we=U();for(var Te in U.nodePadding()=Re||(Ve=Re-Fe.y0)>1e-6&&(Fe.y0+=Ve,Fe.y1+=Ve),Re=Fe.y1+Q})}(function(Ee){var ze,Fe,Ve=Ee.map(function(Ye,nt){return{x0:Ye.x0,index:nt}}).sort(function(Ye,nt){return Ye.x0-nt.x0}),Ke=[],Re=-1,qe=-1/0;for(fe=0;feqe+ee&&(Re+=1,ze=We.x0),qe=We.x0,Ke[Re]||(Ke[Re]=[]),Ke[Re].push(We),Fe=ze-We.x0,We.x0+=Fe,We.x1+=Fe}return Ke}(ue=we.nodes)),U.update(we)}return{circular:ge,key:re,trace:$,guid:m.randstr(),horizontal:H,width:ie,height:ae,nodePad:$.node.pad,nodeLineColor:$.node.line.color,nodeLineWidth:$.node.line.width,linkLineColor:$.link.line.color,linkLineWidth:$.link.line.width,valueFormat:$.valueformat,valueSuffix:$.valuesuffix,textFont:$.textfont,translateX:ne.x[0]*Y.width+Y.margin.l,translateY:Y.height-ne.y[1]*Y.height+Y.margin.t,dragParallel:H?ae:ie,dragPerpendicular:H?ie:ae,arrangement:$.arrangement,sankey:U,graph:we,forceLayouts:{},interactionState:{dragInProgress:!1,hovered:!1}}}function S(Y,Z,re){var U=l(Z.color),q=Z.source.label+"|"+Z.target.label+"__"+re;return Z.trace=Y.trace,Z.curveNumber=Y.trace.index,{circular:Y.circular,key:q,traceId:Y.key,pointNumber:Z.pointNumber,link:Z,tinyColorHue:d.tinyRGB(U),tinyColorAlpha:U.getAlpha(),linkPath:E,linkLineColor:Y.linkLineColor,linkLineWidth:Y.linkLineWidth,valueFormat:Y.valueFormat,valueSuffix:Y.valueSuffix,sankey:Y.sankey,parent:Y,interactionState:Y.interactionState,flow:Z.flow}}function E(){return function(Y){if(Y.link.circular)return Z=Y.link,re=Z.width/2,U=Z.circularPathData,Z.circularLinkType==="top"?"M "+U.targetX+" "+(U.targetY+re)+" L"+U.rightInnerExtent+" "+(U.targetY+re)+"A"+(U.rightLargeArcRadius+re)+" "+(U.rightSmallArcRadius+re)+" 0 0 1 "+(U.rightFullExtent-re)+" "+(U.targetY-U.rightSmallArcRadius)+"L"+(U.rightFullExtent-re)+" "+U.verticalRightInnerExtent+"A"+(U.rightLargeArcRadius+re)+" "+(U.rightLargeArcRadius+re)+" 0 0 1 "+U.rightInnerExtent+" "+(U.verticalFullExtent-re)+"L"+U.leftInnerExtent+" "+(U.verticalFullExtent-re)+"A"+(U.leftLargeArcRadius+re)+" "+(U.leftLargeArcRadius+re)+" 0 0 1 "+(U.leftFullExtent+re)+" "+U.verticalLeftInnerExtent+"L"+(U.leftFullExtent+re)+" "+(U.sourceY-U.leftSmallArcRadius)+"A"+(U.leftLargeArcRadius+re)+" "+(U.leftSmallArcRadius+re)+" 0 0 1 "+U.leftInnerExtent+" "+(U.sourceY+re)+"L"+U.sourceX+" "+(U.sourceY+re)+"L"+U.sourceX+" "+(U.sourceY-re)+"L"+U.leftInnerExtent+" "+(U.sourceY-re)+"A"+(U.leftLargeArcRadius-re)+" "+(U.leftSmallArcRadius-re)+" 0 0 0 "+(U.leftFullExtent-re)+" "+(U.sourceY-U.leftSmallArcRadius)+"L"+(U.leftFullExtent-re)+" "+U.verticalLeftInnerExtent+"A"+(U.leftLargeArcRadius-re)+" "+(U.leftLargeArcRadius-re)+" 0 0 0 "+U.leftInnerExtent+" "+(U.verticalFullExtent+re)+"L"+U.rightInnerExtent+" "+(U.verticalFullExtent+re)+"A"+(U.rightLargeArcRadius-re)+" "+(U.rightLargeArcRadius-re)+" 0 0 0 "+(U.rightFullExtent+re)+" "+U.verticalRightInnerExtent+"L"+(U.rightFullExtent+re)+" "+(U.targetY-U.rightSmallArcRadius)+"A"+(U.rightLargeArcRadius-re)+" "+(U.rightSmallArcRadius-re)+" 0 0 0 "+U.rightInnerExtent+" "+(U.targetY-re)+"L"+U.targetX+" "+(U.targetY-re)+"Z":"M "+U.targetX+" "+(U.targetY-re)+" L"+U.rightInnerExtent+" "+(U.targetY-re)+"A"+(U.rightLargeArcRadius+re)+" "+(U.rightSmallArcRadius+re)+" 0 0 0 "+(U.rightFullExtent-re)+" "+(U.targetY+U.rightSmallArcRadius)+"L"+(U.rightFullExtent-re)+" "+U.verticalRightInnerExtent+"A"+(U.rightLargeArcRadius+re)+" "+(U.rightLargeArcRadius+re)+" 0 0 0 "+U.rightInnerExtent+" "+(U.verticalFullExtent+re)+"L"+U.leftInnerExtent+" "+(U.verticalFullExtent+re)+"A"+(U.leftLargeArcRadius+re)+" "+(U.leftLargeArcRadius+re)+" 0 0 0 "+(U.leftFullExtent+re)+" "+U.verticalLeftInnerExtent+"L"+(U.leftFullExtent+re)+" "+(U.sourceY+U.leftSmallArcRadius)+"A"+(U.leftLargeArcRadius+re)+" "+(U.leftSmallArcRadius+re)+" 0 0 0 "+U.leftInnerExtent+" "+(U.sourceY-re)+"L"+U.sourceX+" "+(U.sourceY-re)+"L"+U.sourceX+" "+(U.sourceY+re)+"L"+U.leftInnerExtent+" "+(U.sourceY+re)+"A"+(U.leftLargeArcRadius-re)+" "+(U.leftSmallArcRadius-re)+" 0 0 1 "+(U.leftFullExtent-re)+" "+(U.sourceY+U.leftSmallArcRadius)+"L"+(U.leftFullExtent-re)+" "+U.verticalLeftInnerExtent+"A"+(U.leftLargeArcRadius-re)+" "+(U.leftLargeArcRadius-re)+" 0 0 1 "+U.leftInnerExtent+" "+(U.verticalFullExtent-re)+"L"+U.rightInnerExtent+" "+(U.verticalFullExtent-re)+"A"+(U.rightLargeArcRadius-re)+" "+(U.rightLargeArcRadius-re)+" 0 0 1 "+(U.rightFullExtent+re)+" "+U.verticalRightInnerExtent+"L"+(U.rightFullExtent+re)+" "+(U.targetY+U.rightSmallArcRadius)+"A"+(U.rightLargeArcRadius-re)+" "+(U.rightSmallArcRadius-re)+" 0 0 1 "+U.rightInnerExtent+" "+(U.targetY+re)+"L"+U.targetX+" "+(U.targetY+re)+"Z";var Z,re,U,q=Y.link.source.x1,$=Y.link.target.x0,ne=a(q,$),H=ne(.5),Q=ne(.5),ee=Y.link.y0-Y.link.width/2,ie=Y.link.y0+Y.link.width/2,ae=Y.link.y1-Y.link.width/2,ue=Y.link.y1+Y.link.width/2;return"M"+q+","+ee+"C"+H+","+ee+" "+Q+","+ae+" "+$+","+ae+"L"+$+","+ue+"C"+Q+","+ue+" "+H+","+ie+" "+q+","+ie+"Z"}}function D(Y,Z){var re=l(Z.color),U=s.nodePadAcross,q=Y.nodePad/2;Z.dx=Z.x1-Z.x0,Z.dy=Z.y1-Z.y0;var $=Z.dx,ne=Math.max(.5,Z.dy),H="node_"+Z.pointNumber;return Z.group&&(H=m.randstr()),Z.trace=Y.trace,Z.curveNumber=Y.trace.index,{index:Z.pointNumber,key:H,partOfGroup:Z.partOfGroup||!1,group:Z.group,traceId:Y.key,trace:Y.trace,node:Z,nodePad:Y.nodePad,nodeLineColor:Y.nodeLineColor,nodeLineWidth:Y.nodeLineWidth,textFont:Y.textFont,size:Y.horizontal?Y.height:Y.width,visibleWidth:Math.ceil($),visibleHeight:ne,zoneX:-U,zoneY:-q,zoneWidth:$+2*U,zoneHeight:ne+2*q,labelY:Y.horizontal?Z.dy/2+1:Z.dx/2+1,left:Z.originalLayer===1,sizeAcross:Y.width,forceLayouts:Y.forceLayouts,horizontal:Y.horizontal,darkBackground:re.getBrightness()<=128,tinyColorHue:d.tinyRGB(re),tinyColorAlpha:re.getAlpha(),valueFormat:Y.valueFormat,valueSuffix:Y.valueSuffix,sankey:Y.sankey,graph:Y.graph,arrangement:Y.arrangement,uniqueNodeLabelPathId:[Y.guid,Y.key,H].join("_"),interactionState:Y.interactionState,figure:Y}}function O(Y){Y.attr("transform",function(Z){return g(Z.node.x0.toFixed(3),Z.node.y0.toFixed(3))})}function R(Y){Y.call(O)}function z(Y,Z){Y.call(R),Z.attr("d",E())}function L(Y){Y.attr("width",function(Z){return Z.node.x1-Z.node.x0}).attr("height",function(Z){return Z.visibleHeight})}function P(Y){return Y.link.width>1||Y.linkLineWidth>0}function N(Y){return g(Y.translateX,Y.translateY)+(Y.horizontal?"matrix(1 0 0 1 0 0)":"matrix(0 1 1 0 0 0)")}function B(Y,Z,re){Y.on(".basic",null).on("mouseover.basic",function(U){U.interactionState.dragInProgress||U.partOfGroup||(re.hover(this,U,Z),U.interactionState.hovered=[this,U])}).on("mousemove.basic",function(U){U.interactionState.dragInProgress||U.partOfGroup||(re.follow(this,U),U.interactionState.hovered=[this,U])}).on("mouseout.basic",function(U){U.interactionState.dragInProgress||U.partOfGroup||(re.unhover(this,U,Z),U.interactionState.hovered=!1)}).on("click.basic",function(U){U.interactionState.hovered&&(re.unhover(this,U,Z),U.interactionState.hovered=!1),U.interactionState.dragInProgress||U.partOfGroup||re.select(this,U,Z)})}function G(Y,Z,re,U){var q=u.behavior.drag().origin(function($){return{x:$.node.x0+$.visibleWidth/2,y:$.node.y0+$.visibleHeight/2}}).on("dragstart",function($){if($.arrangement!=="fixed"&&(m.ensureSingle(U._fullLayout._infolayer,"g","dragcover",function(H){U._fullLayout._dragCover=H}),m.raiseToTop(this),$.interactionState.dragInProgress=$.node,K($.node),$.interactionState.hovered&&(re.nodeEvents.unhover.apply(0,$.interactionState.hovered),$.interactionState.hovered=!1),$.arrangement==="snap")){var ne=$.traceId+"|"+$.key;$.forceLayouts[ne]?$.forceLayouts[ne].alpha(1):function(H,Q,ee,ie){(function(ue){for(var le=0;le0&&fe.forceLayouts[le].alpha(0)}}(0,Q,ae,ee)).stop()}(0,ne,$),function(H,Q,ee,ie,ae){window.requestAnimationFrame(function ue(){var le;for(le=0;le0)window.requestAnimationFrame(ue);else{var ge=ee.node.originalX;ee.node.x0=ge-ee.visibleWidth/2,ee.node.x1=ge+ee.visibleWidth/2,W(ee,ae)}})}(Y,Z,$,ne,U)}}).on("drag",function($){if($.arrangement!=="fixed"){var ne=u.event.x,H=u.event.y;$.arrangement==="snap"?($.node.x0=ne-$.visibleWidth/2,$.node.x1=ne+$.visibleWidth/2,$.node.y0=H-$.visibleHeight/2,$.node.y1=H+$.visibleHeight/2):($.arrangement==="freeform"&&($.node.x0=ne-$.visibleWidth/2,$.node.x1=ne+$.visibleWidth/2),H=Math.max(0,Math.min($.size-$.visibleHeight/2,H)),$.node.y0=H-$.visibleHeight/2,$.node.y1=H+$.visibleHeight/2),K($.node),$.arrangement!=="snap"&&($.sankey.update($.graph),z(Y.filter(te($)),Z))}}).on("dragend",function($){if($.arrangement!=="fixed"){$.interactionState.dragInProgress=!1;for(var ne=0;ne<$.node.childrenNodes.length;ne++)$.node.childrenNodes[ne].x=$.node.x,$.node.childrenNodes[ne].y=$.node.y;$.arrangement!=="snap"&&W($,U)}});Y.on(".drag",null).call(q)}function W(Y,Z){for(var re=[],U=[],q=0;qb&&G[_].gap;)_--;for(A=G[_].s,T=G.length-1;T>_;T--)G[T].s=A;for(;b<_;)if(G[++b].gap){for(T=b+1;G[T].gap;)T++;for(var Q=G[b-1][Y],ee=G[b-1].s,ie=(G[T].s-ee)/(G[T][Y]-Q);bR[g]&&g=0;i--){var s=r[i];if(s.type==="scatter"&&s.xaxis===u.xaxis&&s.yaxis===u.yaxis){s.opacity=void 0;break}}}}}},{}],934:[function(e,o,f){var r=e("../../lib"),a=e("../../registry"),u=e("./attributes"),c=e("./constants"),i=e("./subtypes"),s=e("./xy_defaults"),l=e("./period_defaults"),d=e("./stack_defaults"),h=e("./marker_defaults"),m=e("./line_defaults"),g=e("./line_shape_defaults"),p=e("./text_defaults"),v=e("./fillcolor_defaults"),y=e("../../lib").coercePattern;o.exports=function(x,w,k,b){function T(R,z){return r.coerce(x,w,u,R,z)}var _=s(x,w,b,T);if(_||(w.visible=!1),w.visible){l(x,w,b,T),T("xhoverformat"),T("yhoverformat");var M=d(x,w,b,T),A=!M&&_=Math.min(ge,fe)&&x<=Math.max(ge,fe)?0:1/0}var me=Math.max(3,le.mrc||0),_e=1-1/me,we=Math.abs(v.c2p(le.x)-x);return we=Math.min(ge,fe)&&w<=Math.max(ge,fe)?0:1/0}var me=Math.max(3,le.mrc||0),_e=1-1/me,we=Math.abs(y.c2p(le.y)-w);return weae!=(U=K[G][1])>=ae&&(Y=K[G-1][0],Z=K[G][0],U-re&&(te=Y+(Z-Y)*(ae-re)/(U-re),H=Math.min(H,te),Q=Math.max(Q,te)));H=Math.max(H,0),Q=Math.min(Q,v._length);var ue=i.defaultLine;return i.opacity(p.fillcolor)?ue=p.fillcolor:i.opacity((p.line||{}).color)&&(ue=p.line.color),r.extendFlat(l,{distance:l.maxHoverDistance,x0:H,x1:Q,y0:ae,y1:ae,color:ue,hovertemplate:!1}),delete l.index,p.text&&!Array.isArray(p.text)?l.text=String(p.text):l.text=p.name,[l]}}}},{"../../components/color":366,"../../components/fx":406,"../../lib":503,"../../registry":638,"./get_trace_color":937}],939:[function(e,o,f){var r=e("./subtypes");o.exports={hasLines:r.hasLines,hasMarkers:r.hasMarkers,hasText:r.hasText,isBubble:r.isBubble,attributes:e("./attributes"),supplyDefaults:e("./defaults"),crossTraceDefaults:e("./cross_trace_defaults"),calc:e("./calc").calc,crossTraceCalc:e("./cross_trace_calc"),arraysToCalcdata:e("./arrays_to_calcdata"),plot:e("./plot"),colorbar:e("./marker_colorbar"),formatLabels:e("./format_labels"),style:e("./style").style,styleOnSelect:e("./style").styleOnSelect,hoverPoints:e("./hover"),selectPoints:e("./select"),animatable:!0,moduleType:"trace",name:"scatter",basePlotModule:e("../../plots/cartesian"),categories:["cartesian","svg","symbols","errorBarsOK","showLegend","scatter-like","zoomScale"],meta:{}}},{"../../plots/cartesian":568,"./arrays_to_calcdata":926,"./attributes":927,"./calc":928,"./cross_trace_calc":932,"./cross_trace_defaults":933,"./defaults":934,"./format_labels":936,"./hover":938,"./marker_colorbar":945,"./plot":948,"./select":949,"./style":951,"./subtypes":952}],940:[function(e,o,f){var r=e("../../lib").isArrayOrTypedArray,a=e("../../components/colorscale/helpers").hasColorscale,u=e("../../components/colorscale/defaults");o.exports=function(c,i,s,l,d,h){var m=(c.marker||{}).color;d("line.color",s),a(c,"line")?u(c,i,l,d,{prefix:"line.",cLetter:"c"}):d("line.color",!r(m)&&m||s),d("line.width"),(h||{}).noDash||d("line.dash")}},{"../../components/colorscale/defaults":376,"../../components/colorscale/helpers":377,"../../lib":503}],941:[function(e,o,f){var r=e("../../constants/numerical"),a=r.BADNUM,u=r.LOG_CLIP,c=u+.5,i=u-.5,s=e("../../lib"),l=s.segmentsIntersect,d=s.constrain,h=e("./constants");o.exports=function(m,g){var p,v,y,x,w,k,b,T,_,M,A,S,E,D,O,R,z,L,P=g.xaxis,N=g.yaxis,B=P.type==="log",G=N.type==="log",W=P._length,K=N._length,te=g.connectGaps,Y=g.baseTolerance,Z=g.shape,re=Z==="linear",U=g.fill&&g.fill!=="none",q=[],$=h.minTolerance,ne=m.length,H=new Array(ne),Q=0;function ee(Ye){var nt=m[Ye];if(!nt)return!1;var ft=g.linearized?P.l2p(nt.x):P.c2p(nt.x),vt=g.linearized?N.l2p(nt.y):N.c2p(nt.y);if(ft===a){if(B&&(ft=P.c2p(nt.x,!0)),ft===a)return!1;G&&vt===a&&(ft*=Math.abs(P._m*K*(P._m>0?c:i)/(N._m*W*(N._m>0?c:i)))),ft*=1e3}if(vt===a){if(G&&(vt=N.c2p(nt.y,!0)),vt===a)return!1;vt*=1e3}return[ft,vt]}function ie(Ye,nt,ft,vt){var Pt=ft-Ye,At=vt-nt,at=.5-Ye,et=.5-nt,Ot=Pt*Pt+At*At,Wt=Pt*at+At*et;if(Wt>0&&Wtye||Ye[1]ke)return[d(Ye[0],de,ye),d(Ye[1],Me,ke)]}function Fe(Ye,nt){return Ye[0]===nt[0]&&(Ye[0]===de||Ye[0]===ye)||Ye[1]===nt[1]&&(Ye[1]===Me||Ye[1]===ke)||void 0}function Ve(Ye,nt,ft){return function(vt,Pt){var At=ze(vt),at=ze(Pt),et=[];if(At&&at&&Fe(At,at))return et;At&&et.push(At),at&&et.push(at);var Ot=2*s.constrain((vt[Ye]+Pt[Ye])/2,nt,ft)-((At||vt)[Ye]+(at||Pt)[Ye]);return Ot&&((At&&at?Ot>0==At[Ye]>at[Ye]?At:at:At||at)[Ye]+=Ot),et}}function Ke(Ye){var nt=Ye[0],ft=Ye[1],vt=nt===H[Q-1][0],Pt=ft===H[Q-1][1];if(!vt||!Pt)if(Q>1){var At=nt===H[Q-2][0],at=ft===H[Q-2][1];vt&&(nt===de||nt===ye)&&At?at?Q--:H[Q-1]=Ye:Pt&&(ft===Me||ft===ke)&&at?At?Q--:H[Q-1]=Ye:H[Q++]=Ye}else H[Q++]=Ye}function Re(Ye){H[Q-1][0]!==Ye[0]&&H[Q-1][1]!==Ye[1]&&Ke([fe,me]),Ke(Ye),_e=null,fe=me=0}function qe(Ye){if(z=Ye[0]/W,L=Ye[1]/K,le=Ye[0]ye?ye:0,ge=Ye[1]ke?ke:0,le||ge){if(Q)if(_e){var nt=Te(_e,Ye);nt.length>1&&(Re(nt[0]),H[Q++]=nt[1])}else we=Te(H[Q-1],Ye)[0],H[Q++]=we;else H[Q++]=[le||Ye[0],ge||Ye[1]];var ft=H[Q-1];le&&ge&&(ft[0]!==le||ft[1]!==ge)?(_e&&(fe!==le&&me!==ge?Ke(fe&&me?(vt=_e,At=(Pt=Ye)[0]-vt[0],at=(Pt[1]-vt[1])/At,(vt[1]*Pt[0]-Pt[1]*vt[0])/At>0?[at>0?de:ye,ke]:[at>0?ye:de,Me]):[fe||le,me||ge]):fe&&me&&Ke([fe,me])),Ke([le,ge])):fe-le&&me-ge&&Ke([le||fe,ge||me]),_e=Ye,fe=le,me=ge}else _e&&Re(Te(_e,Ye)[0]),H[Q++]=Ye;var vt,Pt,At,at}for(Z==="linear"||Z==="spline"?Te=function(Ye,nt){for(var ft=[],vt=0,Pt=0;Pt<4;Pt++){var At=Ee[Pt],at=l(Ye[0],Ye[1],nt[0],nt[1],At[0],At[1],At[2],At[3]);at&&(!vt||Math.abs(at.x-ft[0][0])>1||Math.abs(at.y-ft[0][1])>1)&&(at=[at.x,at.y],vt&&ue(at,Ye)ae(k,We))break;y=k,(E=_[0]*T[0]+_[1]*T[1])>A?(A=E,x=k,b=!1):E=m.length||!k)break;qe(k),v=k}}else qe(x)}_e&&Ke([fe||_e[0],me||_e[1]]),q.push(H.slice(0,Q))}return q}},{"../../constants/numerical":479,"../../lib":503,"./constants":931}],942:[function(e,o,f){o.exports=function(r,a,u){u("line.shape")==="spline"&&u("line.smoothing")}},{}],943:[function(e,o,f){var r={tonextx:1,tonexty:1,tonext:1};o.exports=function(a,u,c){var i,s,l,d,h,m={},g=!1,p=-1,v=0,y=-1;for(s=0;s=0?h=y:(h=y=v,v++),h0?Math.max(h,s):0}}},{"fast-isnumeric":190}],945:[function(e,o,f){o.exports={container:"marker",min:"cmin",max:"cmax"}},{}],946:[function(e,o,f){var r=e("../../components/color"),a=e("../../components/colorscale/helpers").hasColorscale,u=e("../../components/colorscale/defaults"),c=e("./subtypes");o.exports=function(i,s,l,d,h,m){var g=c.isBubble(i),p=(i.line||{}).color;m=m||{},p&&(l=p),h("marker.symbol"),h("marker.opacity",g?.7:1),h("marker.size"),h("marker.color",l),a(i,"marker")&&u(i,s,d,h,{prefix:"marker.",cLetter:"c"}),m.noSelect||(h("selected.marker.color"),h("unselected.marker.color"),h("selected.marker.size"),h("unselected.marker.size")),m.noLine||(h("marker.line.color",p&&!Array.isArray(p)&&s.marker.color!==p?p:g?r.background:r.defaultLine),a(i,"marker.line")&&u(i,s,d,h,{prefix:"marker.line.",cLetter:"c"}),h("marker.line.width",g?1:0)),g&&(h("marker.sizeref"),h("marker.sizemin"),h("marker.sizemode")),m.gradient&&h("marker.gradient.type")!=="none"&&h("marker.gradient.color")}},{"../../components/color":366,"../../components/colorscale/defaults":376,"../../components/colorscale/helpers":377,"./subtypes":952}],947:[function(e,o,f){var r=e("../../lib").dateTick0,a=e("../../constants/numerical").ONEWEEK;function u(c,i){return r(i,c%a==0?1:0)}o.exports=function(c,i,s,l,d){if(d||(d={x:!0,y:!0}),d.x){var h=l("xperiod");h&&(l("xperiod0",u(h,i.xcalendar)),l("xperiodalignment"))}if(d.y){var m=l("yperiod");m&&(l("yperiod0",u(m,i.ycalendar)),l("yperiodalignment"))}}},{"../../constants/numerical":479,"../../lib":503}],948:[function(e,o,f){var r=e("@plotly/d3"),a=e("../../registry"),u=e("../../lib"),c=u.ensureSingle,i=u.identity,s=e("../../components/drawing"),l=e("./subtypes"),d=e("./line_points"),h=e("./link_traces"),m=e("../../lib/polygon").tester;function g(p,v,y,x,w,k,b){var T;(function(ye,Me,ke,Ee,ze){var Fe=ke.xaxis,Ve=ke.yaxis,Ke=r.extent(u.simpleMap(Fe.range,Fe.r2c)),Re=r.extent(u.simpleMap(Ve.range,Ve.r2c)),qe=Ee[0].trace;if(!!l.hasMarkers(qe)){var We=qe.marker.maxdisplayed;if(We!==0){var Ye=Ee.filter(function(Pt){return Pt.x>=Ke[0]&&Pt.x<=Ke[1]&&Pt.y>=Re[0]&&Pt.y<=Re[1]}),nt=Math.ceil(Ye.length/We),ft=0;ze.forEach(function(Pt,At){var at=Pt[0].trace;l.hasMarkers(at)&&at.marker.maxdisplayed>0&&At0;function M(ye){return _?ye.transition():ye}var A=y.xaxis,S=y.yaxis,E=x[0].trace,D=E.line,O=r.select(k),R=c(O,"g","errorbars"),z=c(O,"g","lines"),L=c(O,"g","points"),P=c(O,"g","text");if(a.getComponentMethod("errorbars","plot")(p,R,y,b),E.visible===!0){var N,B;M(O).style("opacity",E.opacity);var G=E.fill.charAt(E.fill.length-1);G!=="x"&&G!=="y"&&(G=""),x[0][y.isRangePlot?"nodeRangePlot3":"node3"]=O;var W,K,te="",Y=[],Z=E._prevtrace;Z&&(te=Z._prevRevpath||"",B=Z._nextFill,Y=Z._polygons);var re,U,q,$,ne,H,Q,ee="",ie="",ae=[],ue=u.noop;if(N=E._ownFill,l.hasLines(E)||E.fill!=="none"){for(B&&B.datum(x),["hv","vh","hvh","vhv"].indexOf(D.shape)!==-1?(re=s.steps(D.shape),U=s.steps(D.shape.split("").reverse().join(""))):re=U=D.shape==="spline"?function(ye){var Me=ye[ye.length-1];return ye.length>1&&ye[0][0]===Me[0]&&ye[0][1]===Me[1]?s.smoothclosed(ye.slice(1),D.smoothing):s.smoothopen(ye,D.smoothing)}:function(ye){return"M"+ye.join("L")},q=function(ye){return U(ye.reverse())},ae=d(x,{xaxis:A,yaxis:S,connectGaps:E.connectgaps,baseTolerance:Math.max(D.width||1,3)/4,shape:D.shape,simplify:D.simplify,fill:E.fill}),Q=E._polygons=new Array(ae.length),T=0;T1){var ke=r.select(this);if(ke.datum(x),ye)M(ke.style("opacity",0).attr("d",W).call(s.lineGroupStyle)).style("opacity",1);else{var Ee=M(ke);Ee.attr("d",W),s.singleLineStyle(x,Ee)}}}}}var le=z.selectAll(".js-line").data(ae);M(le.exit()).style("opacity",0).remove(),le.each(ue(!1)),le.enter().append("path").classed("js-line",!0).style("vector-effect","non-scaling-stroke").call(s.lineGroupStyle).each(ue(!0)),s.setClipUrl(le,y.layerClipId,p),ae.length?(N?(N.datum(x),$&&H&&(G?(G==="y"?$[1]=H[1]=S.c2p(0,!0):G==="x"&&($[0]=H[0]=A.c2p(0,!0)),M(N).attr("d","M"+H+"L"+$+"L"+ee.substr(1)).call(s.singleFillStyle,p)):M(N).attr("d",ee+"Z").call(s.singleFillStyle,p))):B&&(E.fill.substr(0,6)==="tonext"&&ee&&te?(E.fill==="tonext"?M(B).attr("d",ee+"Z"+te+"Z").call(s.singleFillStyle,p):M(B).attr("d",ee+"L"+te.substr(1)+"Z").call(s.singleFillStyle,p),E._polygons=E._polygons.concat(Y)):(fe(B),E._polygons=null)),E._prevRevpath=ie,E._prevPolygons=Q):(N?fe(N):B&&fe(B),E._polygons=E._prevRevpath=E._prevPolygons=null),L.datum(x),P.datum(x),function(ye,Me,ke){var Ee,ze=ke[0].trace,Fe=l.hasMarkers(ze),Ve=l.hasText(ze),Ke=Oe(ze),Re=de,qe=de;if(Fe||Ve){var We=i,Ye=ze.stackgroup,nt=Ye&&p._fullLayout._scatterStackOpts[A._id+S._id][Ye].stackgaps==="infer zero";ze.marker.maxdisplayed||ze._needsCull?We=nt?_e:me:Ye&&!nt&&(We=we),Fe&&(Re=We),Ve&&(qe=We)}var ft,vt=(Ee=ye.selectAll("path.point").data(Re,Ke)).enter().append("path").classed("point",!0);_&&vt.call(s.pointStyle,ze,p).call(s.translatePoints,A,S).style("opacity",0).transition().style("opacity",1),Ee.order(),Fe&&(ft=s.makePointStyleFns(ze)),Ee.each(function(Pt){var At=r.select(this),at=M(At);s.translatePoint(Pt,at,A,S)?(s.singlePointStyle(Pt,at,ze,ft,p),y.layerClipId&&s.hideOutsideRangePoint(Pt,at,A,S,ze.xcalendar,ze.ycalendar),ze.customdata&&At.classed("plotly-customdata",Pt.data!==null&&Pt.data!==void 0)):at.remove()}),_?Ee.exit().transition().style("opacity",0).remove():Ee.exit().remove(),(Ee=Me.selectAll("g").data(qe,Ke)).enter().append("g").classed("textpoint",!0).append("text"),Ee.order(),Ee.each(function(Pt){var At=r.select(this),at=M(At.select("text"));s.translatePoint(Pt,at,A,S)?y.layerClipId&&s.hideOutsideRangePoint(Pt,At,A,S,ze.xcalendar,ze.ycalendar):At.remove()}),Ee.selectAll("text").call(s.textPointStyle,ze,p).each(function(Pt){var At=A.c2p(Pt.x),at=S.c2p(Pt.y);r.select(this).selectAll("tspan.line").each(function(){M(r.select(this)).attr({x:At,y:at})})}),Ee.exit().remove()}(L,P,x);var ge=E.cliponaxis===!1?null:y.layerClipId;s.setClipUrl(L,ge,p),s.setClipUrl(P,ge,p)}function fe(ye){M(ye).attr("d","M0,0Z")}function me(ye){return ye.filter(function(Me){return!Me.gap&&Me.vis})}function _e(ye){return ye.filter(function(Me){return Me.vis})}function we(ye){return ye.filter(function(Me){return!Me.gap})}function Te(ye){return ye.id}function Oe(ye){if(ye.ids)return Te}function de(){return!1}}o.exports=function(p,v,y,x,w,k){var b,T,_=!w,M=!!w&&w.duration>0,A=h(p,v,y);(b=x.selectAll("g.trace").data(A,function(S){return S[0].trace.uid})).enter().append("g").attr("class",function(S){return"trace scatter trace"+S[0].trace.uid}).style("stroke-miterlimit",2),b.order(),function(S,E,D){E.each(function(O){var R=c(r.select(this),"g","fills");s.setClipUrl(R,D.layerClipId,S);var z=O[0].trace,L=[];z._ownfill&&L.push("_ownFill"),z._nexttrace&&L.push("_nextFill");var P=R.selectAll("g").data(L,i);P.enter().append("g"),P.exit().each(function(N){z[N]=null}).remove(),P.order().each(function(N){z[N]=c(r.select(this),"path","js-fill")})})}(p,b,v),M?(k&&(T=k()),r.transition().duration(w.duration).ease(w.easing).each("end",function(){T&&T()}).each("interrupt",function(){T&&T()}).each(function(){x.selectAll("g.trace").each(function(S,E){g(p,E,v,S,A,this,w)})})):b.each(function(S,E){g(p,E,v,S,A,this,w)}),_&&b.exit().remove(),x.selectAll("path:not([d])").remove()}},{"../../components/drawing":388,"../../lib":503,"../../lib/polygon":515,"../../registry":638,"./line_points":941,"./link_traces":943,"./subtypes":952,"@plotly/d3":58}],949:[function(e,o,f){var r=e("./subtypes");o.exports=function(a,u){var c,i,s,l,d=a.cd,h=a.xaxis,m=a.yaxis,g=[],p=d[0].trace;if(!r.hasMarkers(p)&&!r.hasText(p))return[];if(u===!1)for(c=0;c0){var y=s.c2l(p);s._lowerLogErrorBound||(s._lowerLogErrorBound=y),s._lowerErrorBound=Math.min(s._lowerLogErrorBound,y)}}else d[h]=[-m[0]*i,m[1]*i]}return d}o.exports=function(u,c,i){var s=[a(u.x,u.error_x,c[0],i.xaxis),a(u.y,u.error_y,c[1],i.yaxis),a(u.z,u.error_z,c[2],i.zaxis)],l=function(v){for(var y=0;y-1?-1:D.indexOf("right")>-1?1:0}function b(D){return D==null?0:D.indexOf("top")>-1?-1:D.indexOf("bottom")>-1?1:0}function T(D,O){return O(4*D)}function _(D){return g[D]}function M(D,O,R,z,L){var P=null;if(s.isArrayOrTypedArray(D)){P=[];for(var N=0;N=0){var W=function(K,te,Y){var Z,re=(Y+1)%3,U=(Y+2)%3,q=[],$=[];for(Z=0;Z=0&&p("surfacecolor",v||y);for(var x=["x","y","z"],w=0;w<3;++w){var k="projection."+x[w];p(k+".show")&&(p(k+".opacity"),p(k+".scale"))}var b=r.getComponentMethod("errorbars","supplyDefaults");b(d,h,v||y||m,{axis:"z"}),b(d,h,v||y||m,{axis:"y",inherit:"z"}),b(d,h,v||y||m,{axis:"x",inherit:"z"})}else h.visible=!1}},{"../../lib":503,"../../registry":638,"../scatter/line_defaults":940,"../scatter/marker_defaults":946,"../scatter/subtypes":952,"../scatter/text_defaults":953,"./attributes":955}],960:[function(e,o,f){o.exports={plot:e("./convert"),attributes:e("./attributes"),markerSymbols:e("../../constants/gl3d_markers"),supplyDefaults:e("./defaults"),colorbar:[{container:"marker",min:"cmin",max:"cmax"},{container:"line",min:"cmin",max:"cmax"}],calc:e("./calc"),moduleType:"trace",name:"scatter3d",basePlotModule:e("../../plots/gl3d"),categories:["gl3d","symbols","showLegend","scatter-like"],meta:{}}},{"../../constants/gl3d_markers":477,"../../plots/gl3d":598,"./attributes":955,"./calc":956,"./convert":958,"./defaults":959}],961:[function(e,o,f){var r=e("../scatter/attributes"),a=e("../../plots/attributes"),u=e("../../plots/template_attributes").hovertemplateAttrs,c=e("../../plots/template_attributes").texttemplateAttrs,i=e("../../components/colorscale/attributes"),s=e("../../lib/extend").extendFlat,l=r.marker,d=r.line,h=l.line;o.exports={carpet:{valType:"string",editType:"calc"},a:{valType:"data_array",editType:"calc"},b:{valType:"data_array",editType:"calc"},mode:s({},r.mode,{dflt:"markers"}),text:s({},r.text,{}),texttemplate:c({editType:"plot"},{keys:["a","b","text"]}),hovertext:s({},r.hovertext,{}),line:{color:d.color,width:d.width,dash:d.dash,shape:s({},d.shape,{values:["linear","spline"]}),smoothing:d.smoothing,editType:"calc"},connectgaps:r.connectgaps,fill:s({},r.fill,{values:["none","toself","tonext"],dflt:"none"}),fillcolor:r.fillcolor,marker:s({symbol:l.symbol,opacity:l.opacity,maxdisplayed:l.maxdisplayed,size:l.size,sizeref:l.sizeref,sizemin:l.sizemin,sizemode:l.sizemode,line:s({width:h.width,editType:"calc"},i("marker.line")),gradient:l.gradient,editType:"calc"},i("marker")),textfont:r.textfont,textposition:r.textposition,selected:r.selected,unselected:r.unselected,hoverinfo:s({},a.hoverinfo,{flags:["a","b","text","name"]}),hoveron:r.hoveron,hovertemplate:u()}},{"../../components/colorscale/attributes":373,"../../lib/extend":493,"../../plots/attributes":550,"../../plots/template_attributes":633,"../scatter/attributes":927}],962:[function(e,o,f){var r=e("fast-isnumeric"),a=e("../scatter/colorscale_calc"),u=e("../scatter/arrays_to_calcdata"),c=e("../scatter/calc_selection"),i=e("../scatter/calc").calcMarkerSize,s=e("../carpet/lookup_carpetid");o.exports=function(l,d){var h=d._carpetTrace=s(l,d);if(h&&h.visible&&h.visible!=="legendonly"){var m;d.xaxis=h.xaxis,d.yaxis=h.yaxis;var g,p,v=d._length,y=new Array(v),x=!1;for(m=0;m")}return l}function T(_,M){var A;A=_.labelprefix&&_.labelprefix.length>0?_.labelprefix.replace(/ = $/,""):_._hovertitle,k.push(A+": "+M.toFixed(3)+_.labelsuffix)}}},{"../../lib":503,"../scatter/hover":938}],967:[function(e,o,f){o.exports={attributes:e("./attributes"),supplyDefaults:e("./defaults"),colorbar:e("../scatter/marker_colorbar"),formatLabels:e("./format_labels"),calc:e("./calc"),plot:e("./plot"),style:e("../scatter/style").style,styleOnSelect:e("../scatter/style").styleOnSelect,hoverPoints:e("./hover"),selectPoints:e("../scatter/select"),eventData:e("./event_data"),moduleType:"trace",name:"scattercarpet",basePlotModule:e("../../plots/cartesian"),categories:["svg","carpet","symbols","showLegend","carpetDependent","zoomScale"],meta:{}}},{"../../plots/cartesian":568,"../scatter/marker_colorbar":945,"../scatter/select":949,"../scatter/style":951,"./attributes":961,"./calc":962,"./defaults":963,"./event_data":964,"./format_labels":965,"./hover":966,"./plot":968}],968:[function(e,o,f){var r=e("../scatter/plot"),a=e("../../plots/cartesian/axes"),u=e("../../components/drawing");o.exports=function(c,i,s,l){var d,h,m,g=s[0][0].carpet,p={xaxis:a.getFromId(c,g.xaxis||"x"),yaxis:a.getFromId(c,g.yaxis||"y"),plot:i.plot};for(r(c,p,s,l),d=0;d")}(m,w,s,h[0].t.labels),s.hovertemplate=m.hovertemplate,[s]}}},{"../../components/fx":406,"../../constants/numerical":479,"../../lib":503,"../scatter/get_trace_color":937,"./attributes":969}],975:[function(e,o,f){o.exports={attributes:e("./attributes"),supplyDefaults:e("./defaults"),colorbar:e("../scatter/marker_colorbar"),formatLabels:e("./format_labels"),calc:e("./calc"),calcGeoJSON:e("./plot").calcGeoJSON,plot:e("./plot").plot,style:e("./style"),styleOnSelect:e("../scatter/style").styleOnSelect,hoverPoints:e("./hover"),eventData:e("./event_data"),selectPoints:e("./select"),moduleType:"trace",name:"scattergeo",basePlotModule:e("../../plots/geo"),categories:["geo","symbols","showLegend","scatter-like"],meta:{}}},{"../../plots/geo":589,"../scatter/marker_colorbar":945,"../scatter/style":951,"./attributes":969,"./calc":970,"./defaults":971,"./event_data":972,"./format_labels":973,"./hover":974,"./plot":976,"./select":977,"./style":978}],976:[function(e,o,f){var r=e("@plotly/d3"),a=e("../../lib"),u=e("../../lib/topojson_utils").getTopojsonFeatures,c=e("../../lib/geojson_utils"),i=e("../../lib/geo_location_utils"),s=e("../../plots/cartesian/autorange").findExtremes,l=e("../../constants/numerical").BADNUM,d=e("../scatter/calc").calcMarkerSize,h=e("../scatter/subtypes"),m=e("./style");o.exports={calcGeoJSON:function(g,p){var v,y,x=g[0].trace,w=p[x.geo],k=w._subplot,b=x._length;if(Array.isArray(x.locations)){var T=x.locationmode,_=T==="geojson-id"?i.extractTraceFeature(g):u(x,k.topojson);for(v=0;v=y,D=2*S,O={},R=_.makeCalcdata(k,"x"),z=M.makeCalcdata(k,"y"),L=i(k,_,"x",R),P=i(k,M,"y",z),N=L.vals,B=P.vals;k._x=N,k._y=B,k.xperiodalignment&&(k._origX=R,k._xStarts=L.starts,k._xEnds=L.ends),k.yperiodalignment&&(k._origY=z,k._yStarts=P.starts,k._yEnds=P.ends);var G=new Array(D),W=new Array(S);for(b=0;b1&&a.extendFlat(H.line,g.linePositions(Z,U,q)),H.errorX||H.errorY){var Q=g.errorBarPositions(Z,U,q,$,ne);H.errorX&&a.extendFlat(H.errorX,Q.x),H.errorY&&a.extendFlat(H.errorY,Q.y)}return H.text&&(a.extendFlat(H.text,{positions:q},g.textPosition(Z,U,H.text,H.marker)),a.extendFlat(H.textSel,{positions:q},g.textPosition(Z,U,H.text,H.markerSel)),a.extendFlat(H.textUnsel,{positions:q},g.textPosition(Z,U,H.text,H.markerUnsel))),H}(w,0,k,G,N,B),Y=p(w,A);return h(T,k),E?te.marker&&(K=te.marker.sizeAvg||Math.max(te.marker.size,3)):K=l(k,S),d(w,k,_,M,N,B,K),te.errorX&&x(k,_,te.errorX),te.errorY&&x(k,M,te.errorY),te.fill&&!Y.fill2d&&(Y.fill2d=!0),te.marker&&!Y.scatter2d&&(Y.scatter2d=!0),te.line&&!Y.line2d&&(Y.line2d=!0),!te.errorX&&!te.errorY||Y.error2d||(Y.error2d=!0),te.text&&!Y.glText&&(Y.glText=!0),te.marker&&(te.marker.snap=S),Y.lineOptions.push(te.line),Y.errorXOptions.push(te.errorX),Y.errorYOptions.push(te.errorY),Y.fillOptions.push(te.fill),Y.markerOptions.push(te.marker),Y.markerSelectedOptions.push(te.markerSel),Y.markerUnselectedOptions.push(te.markerUnsel),Y.textOptions.push(te.text),Y.textSelectedOptions.push(te.textSel),Y.textUnselectedOptions.push(te.textUnsel),Y.selectBatch.push([]),Y.unselectBatch.push([]),O._scene=Y,O.index=Y.count,O.x=N,O.y=B,O.positions=G,Y.count++,[{x:!1,y:!1,t:O,trace:k}]}},{"../../constants/numerical":479,"../../lib":503,"../../plots/cartesian/align_period":551,"../../plots/cartesian/autorange":553,"../../plots/cartesian/axis_ids":558,"../scatter/calc":928,"../scatter/colorscale_calc":930,"./constants":982,"./convert":983,"./scene_update":991,"@plotly/point-cluster":59}],982:[function(e,o,f){o.exports={TOO_MANY_POINTS:1e5,SYMBOL_SDF_SIZE:200,SYMBOL_SIZE:20,SYMBOL_STROKE:1,DOT_RE:/-dot/,OPEN_RE:/-open/,DASHES:{solid:[1],dot:[1,1],dash:[4,1],longdash:[8,1],dashdot:[4,1,1,1],longdashdot:[8,1,1,1]}}},{}],983:[function(e,o,f){var r=e("fast-isnumeric"),a=e("svg-path-sdf"),u=e("color-normalize"),c=e("../../registry"),i=e("../../lib"),s=e("../../components/drawing"),l=e("../../plots/cartesian/axis_ids"),d=e("../../lib/gl_format_color").formatColor,h=e("../scatter/subtypes"),m=e("../scatter/make_bubble_size_func"),g=e("./helpers"),p=e("./constants"),v=e("../../constants/interactions").DESELECTDIM,y={start:1,left:1,end:-1,right:-1,middle:0,center:0,bottom:1,top:-1},x=e("../../components/fx/helpers").appendArrayPointValue;function w(R,z){var L,P=R._fullLayout,N=z._length,B=z.textfont,G=z.textposition,W=Array.isArray(G)?G:[G],K=B.color,te=B.size,Y=B.family,Z={},re=R._context.plotGlPixelRatio,U=z.texttemplate;if(U){Z.text=[];var q=P._d3locale,$=Array.isArray(U),ne=$?Math.min(U.length,N):N,H=$?function(ge){return U[ge]}:function(){return U};for(L=0;Lp.TOO_MANY_POINTS||h.hasMarkers(z)?"rect":"round";if(te&&z.connectgaps){var Z=P[0],re=P[1];for(N=0;N1?K[N]:K[0]:K,U=Array.isArray(te)?te.length>1?te[N]:te[0]:te,q=y[re],$=y[U],ne=Y?Y/.8+1:0,H=-$*ne-.5*$;G.offset[N]=[q*ne/Z,H/Z]}}return G}}},{"../../components/drawing":388,"../../components/fx/helpers":402,"../../constants/interactions":478,"../../lib":503,"../../lib/gl_format_color":499,"../../plots/cartesian/axis_ids":558,"../../registry":638,"../scatter/make_bubble_size_func":944,"../scatter/subtypes":952,"./constants":982,"./helpers":987,"color-normalize":89,"fast-isnumeric":190,"svg-path-sdf":310}],984:[function(e,o,f){var r=e("../../lib"),a=e("../../registry"),u=e("./helpers"),c=e("./attributes"),i=e("../scatter/constants"),s=e("../scatter/subtypes"),l=e("../scatter/xy_defaults"),d=e("../scatter/period_defaults"),h=e("../scatter/marker_defaults"),m=e("../scatter/line_defaults"),g=e("../scatter/fillcolor_defaults"),p=e("../scatter/text_defaults");o.exports=function(v,y,x,w){function k(D,O){return r.coerce(v,y,c,D,O)}var b=!!v.marker&&u.isOpenSymbol(v.marker.symbol),T=s.isBubble(v),_=l(v,y,w,k);if(_){d(v,y,w,k),k("xhoverformat"),k("yhoverformat");var M=_100},f.isDotSymbol=function(a){return typeof a=="string"?r.DOT_RE.test(a):a>200}},{"./constants":982}],988:[function(e,o,f){var r=e("../../registry"),a=e("../../lib"),u=e("../scatter/get_trace_color");function c(i,s,l,d){var h=i.xa,m=i.ya,g=i.distance,p=i.dxy,v=i.index,y={pointNumber:v,x:s[v],y:l[v]};y.tx=Array.isArray(d.text)?d.text[v]:d.text,y.htx=Array.isArray(d.hovertext)?d.hovertext[v]:d.hovertext,y.data=Array.isArray(d.customdata)?d.customdata[v]:d.customdata,y.tp=Array.isArray(d.textposition)?d.textposition[v]:d.textposition;var x=d.textfont;x&&(y.ts=a.isArrayOrTypedArray(x.size)?x.size[v]:x.size,y.tc=Array.isArray(x.color)?x.color[v]:x.color,y.tf=Array.isArray(x.family)?x.family[v]:x.family);var w=d.marker;w&&(y.ms=a.isArrayOrTypedArray(w.size)?w.size[v]:w.size,y.mo=a.isArrayOrTypedArray(w.opacity)?w.opacity[v]:w.opacity,y.mx=a.isArrayOrTypedArray(w.symbol)?w.symbol[v]:w.symbol,y.mc=a.isArrayOrTypedArray(w.color)?w.color[v]:w.color);var k=w&&w.line;k&&(y.mlc=Array.isArray(k.color)?k.color[v]:k.color,y.mlw=a.isArrayOrTypedArray(k.width)?k.width[v]:k.width);var b=w&&w.gradient;b&&b.type!=="none"&&(y.mgt=Array.isArray(b.type)?b.type[v]:b.type,y.mgc=Array.isArray(b.color)?b.color[v]:b.color);var T=h.c2p(y.x,!0),_=m.c2p(y.y,!0),M=y.mrc||1,A=d.hoverlabel;A&&(y.hbg=Array.isArray(A.bgcolor)?A.bgcolor[v]:A.bgcolor,y.hbc=Array.isArray(A.bordercolor)?A.bordercolor[v]:A.bordercolor,y.hts=a.isArrayOrTypedArray(A.font.size)?A.font.size[v]:A.font.size,y.htc=Array.isArray(A.font.color)?A.font.color[v]:A.font.color,y.htf=Array.isArray(A.font.family)?A.font.family[v]:A.font.family,y.hnl=a.isArrayOrTypedArray(A.namelength)?A.namelength[v]:A.namelength);var S=d.hoverinfo;S&&(y.hi=Array.isArray(S)?S[v]:S);var E=d.hovertemplate;E&&(y.ht=Array.isArray(E)?E[v]:E);var D={};D[i.index]=y;var O=d._origX,R=d._origY,z=a.extendFlat({},i,{color:u(d,y),x0:T-M,x1:T+M,xLabelVal:O?O[v]:y.x,y0:_-M,y1:_+M,yLabelVal:R?R[v]:y.y,cd:D,distance:g,spikeDistance:p,hovertemplate:y.ht});return y.htx?z.text=y.htx:y.tx?z.text=y.tx:d.text&&(z.text=d.text),a.fillText(y,d,z),r.getComponentMethod("errorbars","hoverInfo")(y,d,z),z}o.exports={hoverPoints:function(i,s,l,d){var h,m,g,p,v,y,x,w,k,b,T=i.cd,_=T[0].t,M=T[0].trace,A=i.xa,S=i.ya,E=_.x,D=_.y,O=A.c2p(s),R=S.c2p(l),z=i.distance;if(_.tree){var L=A.p2c(O-z),P=A.p2c(O+z),N=S.p2c(R-z),B=S.p2c(R+z);h=d==="x"?_.tree.range(Math.min(L,P),Math.min(S._rl[0],S._rl[1]),Math.max(L,P),Math.max(S._rl[0],S._rl[1])):_.tree.range(Math.min(L,P),Math.min(N,B),Math.max(L,P),Math.max(N,B))}else h=_.ids;var G=z;if(d==="x"){var W=!!M.xperiodalignment,K=!!M.yperiodalignment;for(y=0;y=Math.min(te,Y)&&O<=Math.max(te,Y)?0:1/0}if(x=Math.min(Z,re)&&R<=Math.max(Z,re)?0:1/0}b=Math.sqrt(x*x+w*w),g=h[y]}}}else for(y=h.length-1;y>-1;y--)p=E[m=h[y]],v=D[m],x=A.c2p(p)-O,w=S.c2p(v)-R,(k=Math.sqrt(x*x+w*w))T.glText.length){var E=A-T.glText.length;for(w=0;wie&&(isNaN(ee[ae])||isNaN(ee[ae+1]));)ae-=2;Q.positions=ee.slice(ie,ae+2)}return Q}),T.line2d.update(T.lineOptions)),T.error2d){var O=(T.errorXOptions||[]).concat(T.errorYOptions||[]);T.error2d.update(O)}T.scatter2d&&T.scatter2d.update(T.markerOptions),T.fillOrder=i.repeat(null,A),T.fill2d&&(T.fillOptions=T.fillOptions.map(function(Q,ee){var ie=x[ee];if(Q&&ie&&ie[0]&&ie[0].trace){var ae,ue,le=ie[0],ge=le.trace,fe=le.t,me=T.lineOptions[ee],_e=[];ge._ownfill&&_e.push(ee),ge._nexttrace&&_e.push(ee+1),_e.length&&(T.fillOrder[ee]=_e);var we,Te,Oe=[],de=me&&me.positions||fe.positions;if(ge.fill==="tozeroy"){for(we=0;wewe&&isNaN(de[Te+1]);)Te-=2;de[we+1]!==0&&(Oe=[de[we],0]),Oe=Oe.concat(de.slice(we,Te+2)),de[Te+1]!==0&&(Oe=Oe.concat([de[Te],0]))}else if(ge.fill==="tozerox"){for(we=0;wewe&&isNaN(de[Te]);)Te-=2;de[we]!==0&&(Oe=[0,de[we+1]]),Oe=Oe.concat(de.slice(we,Te+2)),de[Te]!==0&&(Oe=Oe.concat([0,de[Te+1]]))}else if(ge.fill==="toself"||ge.fill==="tonext"){for(Oe=[],ae=0,Q.splitNull=!0,ue=0;ue-1;for(w=0;w")}function w(k){return k+"\xB0"}}o.exports={hoverPoints:function(l,d,h){var m=l.cd,g=m[0].trace,p=l.xa,v=l.ya,y=l.subplot,x=360*(d>=0?Math.floor((d+180)/360):Math.ceil((d-180)/360)),w=d-x;if(r.getClosest(m,function(D){var O=D.lonlat;if(O[0]===i)return 1/0;var R=a.modHalf(O[0],360),z=O[1],L=y.project([R,z]),P=L.x-p.c2p([w,z]),N=L.y-v.c2p([R,h]),B=Math.max(3,D.mrc||0);return Math.max(Math.sqrt(P*P+N*N)-B,1-3/B)},l),l.index!==!1){var k=m[l.index],b=k.lonlat,T=[a.modHalf(b[0],360)+x,b[1]],_=p.c2p(T),M=v.c2p(T),A=k.mrc||1;l.x0=_-A,l.x1=_+A,l.y0=M-A,l.y1=M+A;var S={};S[g.subplot]={_subplot:y};var E=g._module.formatLabels(k,g,S);return l.lonLabel=E.lonLabel,l.latLabel=E.latLabel,l.color=u(g,k),l.extraText=s(g,k,m[0].t.labels),l.hovertemplate=g.hovertemplate,[l]}},getExtraText:s}},{"../../components/fx":406,"../../constants/numerical":479,"../../lib":503,"../scatter/get_trace_color":937}],999:[function(e,o,f){o.exports={attributes:e("./attributes"),supplyDefaults:e("./defaults"),colorbar:e("../scatter/marker_colorbar"),formatLabels:e("./format_labels"),calc:e("../scattergeo/calc"),plot:e("./plot"),hoverPoints:e("./hover").hoverPoints,eventData:e("./event_data"),selectPoints:e("./select"),styleOnSelect:function(r,a){a&&a[0].trace._glTrace.update(a)},moduleType:"trace",name:"scattermapbox",basePlotModule:e("../../plots/mapbox"),categories:["mapbox","gl","symbols","showLegend","scatter-like"],meta:{}}},{"../../plots/mapbox":613,"../scatter/marker_colorbar":945,"../scattergeo/calc":970,"./attributes":993,"./defaults":995,"./event_data":996,"./format_labels":997,"./hover":998,"./plot":1e3,"./select":1001}],1e3:[function(e,o,f){var r=e("./convert"),a=e("../../plots/mapbox/constants").traceLayerPrefix,u=["fill","line","circle","symbol"];function c(s,l){this.type="scattermapbox",this.subplot=s,this.uid=l,this.sourceIds={fill:"source-"+l+"-fill",line:"source-"+l+"-line",circle:"source-"+l+"-circle",symbol:"source-"+l+"-symbol"},this.layerIds={fill:a+l+"-fill",line:a+l+"-line",circle:a+l+"-circle",symbol:a+l+"-symbol"},this.below=null}var i=c.prototype;i.addSource=function(s,l){this.subplot.map.addSource(this.sourceIds[s],{type:"geojson",data:l.geojson})},i.setSourceData=function(s,l){this.subplot.map.getSource(this.sourceIds[s]).setData(l.geojson)},i.addLayer=function(s,l,d){this.subplot.addLayer({type:s,id:this.layerIds[s],source:this.sourceIds[s],layout:l.layout,paint:l.paint},d)},i.update=function(s){var l,d,h,m=this.subplot,g=m.map,p=r(m.gd,s),v=m.belowLookup["trace-"+this.uid];if(v!==this.below){for(l=u.length-1;l>=0;l--)d=u[l],g.removeLayer(this.layerIds[d]);for(l=0;l=0;l--){var d=u[l];s.removeLayer(this.layerIds[d]),s.removeSource(this.sourceIds[d])}},o.exports=function(s,l){for(var d=l[0].trace,h=new c(s,d.uid),m=r(s.gd,l),g=h.below=s.belowLookup["trace-"+d.uid],p=0;p")}}o.exports={hoverPoints:function(u,c,i,s){var l=r(u,c,i,s);if(l&&l[0].index!==!1){var d=l[0];if(d.index===void 0)return l;var h=u.subplot,m=d.cd[d.index],g=d.trace;if(h.isPtInside(m))return d.xLabelVal=void 0,d.yLabelVal=void 0,a(m,g,h,d),d.hovertemplate=g.hovertemplate,l}},makeHoverPointText:a}},{"../scatter/hover":938}],1007:[function(e,o,f){o.exports={moduleType:"trace",name:"scatterpolar",basePlotModule:e("../../plots/polar"),categories:["polar","symbols","showLegend","scatter-like"],attributes:e("./attributes"),supplyDefaults:e("./defaults").supplyDefaults,colorbar:e("../scatter/marker_colorbar"),formatLabels:e("./format_labels"),calc:e("./calc"),plot:e("./plot"),style:e("../scatter/style").style,styleOnSelect:e("../scatter/style").styleOnSelect,hoverPoints:e("./hover").hoverPoints,selectPoints:e("../scatter/select"),meta:{}}},{"../../plots/polar":622,"../scatter/marker_colorbar":945,"../scatter/select":949,"../scatter/style":951,"./attributes":1002,"./calc":1003,"./defaults":1004,"./format_labels":1005,"./hover":1006,"./plot":1008}],1008:[function(e,o,f){var r=e("../scatter/plot"),a=e("../../constants/numerical").BADNUM;o.exports=function(u,c,i){for(var s=c.layers.frontplot.select("g.scatterlayer"),l={xaxis:c.xaxis,yaxis:c.yaxis,plot:c.framework,layerClipId:c._hasClipOnAxisFalse?c.clipIds.forTraces:null},d=c.radialAxis,h=c.angularAxis,m=0;m=l&&(A.marker.cluster=b.tree),A.marker&&(A.markerSel.positions=A.markerUnsel.positions=A.marker.positions=D),A.line&&D.length>1&&s.extendFlat(A.line,i.linePositions(d,k,D)),A.text&&(s.extendFlat(A.text,{positions:D},i.textPosition(d,k,A.text,A.marker)),s.extendFlat(A.textSel,{positions:D},i.textPosition(d,k,A.text,A.markerSel)),s.extendFlat(A.textUnsel,{positions:D},i.textPosition(d,k,A.text,A.markerUnsel))),A.fill&&!v.fill2d&&(v.fill2d=!0),A.marker&&!v.scatter2d&&(v.scatter2d=!0),A.line&&!v.line2d&&(v.line2d=!0),A.text&&!v.glText&&(v.glText=!0),v.lineOptions.push(A.line),v.fillOptions.push(A.fill),v.markerOptions.push(A.marker),v.markerSelectedOptions.push(A.markerSel),v.markerUnselectedOptions.push(A.markerUnsel),v.textOptions.push(A.text),v.textSelectedOptions.push(A.textSel),v.textUnselectedOptions.push(A.textUnsel),v.selectBatch.push([]),v.unselectBatch.push([]),b.x=O,b.y=R,b.rawx=O,b.rawy=R,b.r=_,b.theta=M,b.positions=D,b._scene=v,b.index=v.count,v.count++}}),u(d,h,m)}},o.exports.reglPrecompiled={}},{"../../lib":503,"../scattergl/constants":982,"../scattergl/convert":983,"../scattergl/plot":990,"../scattergl/scene_update":991,"@plotly/point-cluster":59,"fast-isnumeric":190}],1017:[function(e,o,f){var r=e("../../plots/template_attributes").hovertemplateAttrs,a=e("../../plots/template_attributes").texttemplateAttrs,u=e("../../lib/extend").extendFlat,c=e("../scatter/attributes"),i=e("../../plots/attributes"),s=c.line;o.exports={mode:c.mode,real:{valType:"data_array",editType:"calc+clearAxisTypes"},imag:{valType:"data_array",editType:"calc+clearAxisTypes"},text:c.text,texttemplate:a({editType:"plot"},{keys:["real","imag","text"]}),hovertext:c.hovertext,line:{color:s.color,width:s.width,dash:s.dash,shape:u({},s.shape,{values:["linear","spline"]}),smoothing:s.smoothing,editType:"calc"},connectgaps:c.connectgaps,marker:c.marker,cliponaxis:u({},c.cliponaxis,{dflt:!1}),textposition:c.textposition,textfont:c.textfont,fill:u({},c.fill,{values:["none","toself","tonext"],dflt:"none"}),fillcolor:c.fillcolor,hoverinfo:u({},i.hoverinfo,{flags:["real","imag","text","name"]}),hoveron:c.hoveron,hovertemplate:r(),selected:c.selected,unselected:c.unselected}},{"../../lib/extend":493,"../../plots/attributes":550,"../../plots/template_attributes":633,"../scatter/attributes":927}],1018:[function(e,o,f){var r=e("fast-isnumeric"),a=e("../../constants/numerical").BADNUM,u=e("../scatter/colorscale_calc"),c=e("../scatter/arrays_to_calcdata"),i=e("../scatter/calc_selection"),s=e("../scatter/calc").calcMarkerSize;o.exports=function(l,d){for(var h=l._fullLayout,m=d.subplot,g=h[m].realaxis,p=h[m].imaginaryaxis,v=g.makeCalcdata(d,"real"),y=p.makeCalcdata(d,"imag"),x=d._length,w=new Array(x),k=0;k")}}o.exports={hoverPoints:function(u,c,i,s){var l=r(u,c,i,s);if(l&&l[0].index!==!1){var d=l[0];if(d.index===void 0)return l;var h=u.subplot,m=d.cd[d.index],g=d.trace;if(h.isPtInside(m))return d.xLabelVal=void 0,d.yLabelVal=void 0,a(m,g,h,d),d.hovertemplate=g.hovertemplate,l}},makeHoverPointText:a}},{"../scatter/hover":938}],1022:[function(e,o,f){o.exports={moduleType:"trace",name:"scattersmith",basePlotModule:e("../../plots/smith"),categories:["smith","symbols","showLegend","scatter-like"],attributes:e("./attributes"),supplyDefaults:e("./defaults"),colorbar:e("../scatter/marker_colorbar"),formatLabels:e("./format_labels"),calc:e("./calc"),plot:e("./plot"),style:e("../scatter/style").style,styleOnSelect:e("../scatter/style").styleOnSelect,hoverPoints:e("./hover").hoverPoints,selectPoints:e("../scatter/select"),meta:{}}},{"../../plots/smith":629,"../scatter/marker_colorbar":945,"../scatter/select":949,"../scatter/style":951,"./attributes":1017,"./calc":1018,"./defaults":1019,"./format_labels":1020,"./hover":1021,"./plot":1023}],1023:[function(e,o,f){var r=e("../scatter/plot"),a=e("../../constants/numerical").BADNUM,u=e("../../plots/smith/helpers").smith;o.exports=function(c,i,s){for(var l=i.layers.frontplot.select("g.scatterlayer"),d={xaxis:i.xaxis,yaxis:i.yaxis,plot:i.framework,layerClipId:i._hasClipOnAxisFalse?i.clipIds.forTraces:null},h=0;h"),l.hovertemplate=v.hovertemplate,s}function _(M,A){b.push(M._hovertitle+": "+A)}}},{"../scatter/hover":938}],1030:[function(e,o,f){o.exports={attributes:e("./attributes"),supplyDefaults:e("./defaults"),colorbar:e("../scatter/marker_colorbar"),formatLabels:e("./format_labels"),calc:e("./calc"),plot:e("./plot"),style:e("../scatter/style").style,styleOnSelect:e("../scatter/style").styleOnSelect,hoverPoints:e("./hover"),selectPoints:e("../scatter/select"),eventData:e("./event_data"),moduleType:"trace",name:"scatterternary",basePlotModule:e("../../plots/ternary"),categories:["ternary","symbols","showLegend","scatter-like"],meta:{}}},{"../../plots/ternary":634,"../scatter/marker_colorbar":945,"../scatter/select":949,"../scatter/style":951,"./attributes":1024,"./calc":1025,"./defaults":1026,"./event_data":1027,"./format_labels":1028,"./hover":1029,"./plot":1031}],1031:[function(e,o,f){var r=e("../scatter/plot");o.exports=function(a,u,c){var i=u.plotContainer;i.select(".scatterlayer").selectAll("*").remove();var s={xaxis:u.xaxis,yaxis:u.yaxis,plot:i,layerClipId:u._hasClipOnAxisFalse?u.clipIdRelative:null},l=u.layers.frontplot.select("g.scatterlayer");r(a,s,c,l)}},{"../scatter/plot":948}],1032:[function(e,o,f){var r=e("../scatter/attributes"),a=e("../../components/colorscale/attributes"),u=e("../../plots/cartesian/axis_format_attributes").axisHoverFormat,c=e("../../plots/template_attributes").hovertemplateAttrs,i=e("../scattergl/attributes"),s=e("../../plots/cartesian/constants").idRegex,l=e("../../plot_api/plot_template").templatedArray,d=e("../../lib/extend").extendFlat,h=r.marker,m=h.line,g=d(a("marker.line",{editTypeOverride:"calc"}),{width:d({},m.width,{editType:"calc"}),editType:"calc"}),p=d(a("marker"),{symbol:h.symbol,size:d({},h.size,{editType:"markerSize"}),sizeref:h.sizeref,sizemin:h.sizemin,sizemode:h.sizemode,opacity:h.opacity,colorbar:h.colorbar,line:g,editType:"calc"});function v(y){return{valType:"info_array",freeLength:!0,editType:"calc",items:{valType:"subplotid",regex:s[y],editType:"plot"}}}p.color.editType=p.cmin.editType=p.cmax.editType="style",o.exports={dimensions:l("dimension",{visible:{valType:"boolean",dflt:!0,editType:"calc"},label:{valType:"string",editType:"calc"},values:{valType:"data_array",editType:"calc+clearAxisTypes"},axis:{type:{valType:"enumerated",values:["linear","log","date","category"],editType:"calc+clearAxisTypes"},matches:{valType:"boolean",dflt:!1,editType:"calc"},editType:"calc+clearAxisTypes"},editType:"calc+clearAxisTypes"}),text:d({},i.text,{}),hovertext:d({},i.hovertext,{}),hovertemplate:c(),xhoverformat:u("x"),yhoverformat:u("y"),marker:p,xaxes:v("x"),yaxes:v("y"),diagonal:{visible:{valType:"boolean",dflt:!0,editType:"calc"},editType:"calc"},showupperhalf:{valType:"boolean",dflt:!0,editType:"calc"},showlowerhalf:{valType:"boolean",dflt:!0,editType:"calc"},selected:{marker:i.selected.marker,editType:"calc"},unselected:{marker:i.unselected.marker,editType:"calc"},opacity:i.opacity}},{"../../components/colorscale/attributes":373,"../../lib/extend":493,"../../plot_api/plot_template":543,"../../plots/cartesian/axis_format_attributes":557,"../../plots/cartesian/constants":561,"../../plots/template_attributes":633,"../scatter/attributes":927,"../scattergl/attributes":979}],1033:[function(e,o,f){var r=e("../../registry"),a=e("../../components/grid");o.exports={moduleType:"trace",name:"splom",categories:["gl","regl","cartesian","symbols","showLegend","scatter-like"],attributes:e("./attributes"),supplyDefaults:e("./defaults"),colorbar:e("../scatter/marker_colorbar"),calc:e("./calc"),plot:e("./plot"),hoverPoints:e("./hover").hoverPoints,selectPoints:e("./select"),editStyle:e("./edit_style"),meta:{}},r.register(a)},{"../../components/grid":410,"../../registry":638,"../scatter/marker_colorbar":945,"./attributes":1032,"./calc":1035,"./defaults":1036,"./edit_style":1037,"./hover":1039,"./plot":1041,"./select":1043}],1034:[function(e,o,f){var r=e("regl-line2d"),a=e("../../registry"),u=e("../../lib/prepare_regl"),c=e("../../plots/get_data").getModuleCalcData,i=e("../../plots/cartesian"),s=e("../../plots/cartesian/axis_ids").getFromId,l=e("../../plots/cartesian/axes").shouldShowZeroLine,d={};function h(g,p,v){for(var y=v.matrixOptions.data.length,x=p._visibleDims,w=v.viewOpts.ranges=new Array(y),k=0;km?M.sizeAvg||Math.max(M.size,3):u(p,_),y=0;yD&&z||E-1,G=!0;if(c(M)||!!x.selectedpoints||B){var W=x._length;if(x.selectedpoints){k.selectBatch=x.selectedpoints;var K=x.selectedpoints,te={};for(m=0;m1&&(y=T[A-1],w=_[A-1],b=M[A-1]),l=0;ly?"-":"+")+"x")).replace("y",(x>w?"-":"+")+"y")).replace("z",(k>b?"-":"+")+"z");var G=function(){A=0,P=[],N=[],B=[]};(!A||A2?v.slice(1,y-1):y===2?[(v[0]+v[1])/2]:v}function g(v){var y=v.length;return y===1?[.5,.5]:[v[1]-v[0],v[y-1]-v[y-2]]}function p(v,y){var x=v.fullSceneLayout,w=v.dataScale,k=y._len,b={};function T(U,q){var $=x[q],ne=w[l[q]];return u.simpleMap(U,function(H){return $.d2l(H)*ne})}if(b.vectors=s(T(y._u,"xaxis"),T(y._v,"yaxis"),T(y._w,"zaxis"),k),!k)return{positions:[],cells:[]};var _=T(y._Xs,"xaxis"),M=T(y._Ys,"yaxis"),A=T(y._Zs,"zaxis");if(b.meshgrid=[_,M,A],b.gridFill=y._gridFill,y._slen)b.startingPositions=s(T(y._startsX,"xaxis"),T(y._startsY,"yaxis"),T(y._startsZ,"zaxis"));else{for(var S=M[0],E=m(_),D=m(A),O=new Array(E.length*D.length),R=0,z=0;z=0};A?(y=Math.min(M.length,E.length),x=function(ee){return P(M[ee])&&N(ee)},w=function(ee){return String(M[ee])}):(y=Math.min(S.length,E.length),x=function(ee){return P(S[ee])&&N(ee)},w=function(ee){return String(S[ee])}),O&&(y=Math.min(y,D.length));for(var B=0;B1){for(var te=u.randstr(),Y=0;Y"),name:P||re("name")?S.name:void 0,color:L("hoverlabel.bgcolor")||E.color,borderColor:L("hoverlabel.bordercolor"),fontFamily:L("hoverlabel.font.family"),fontSize:L("hoverlabel.font.size"),fontColor:L("hoverlabel.font.color"),nameLength:L("hoverlabel.namelength"),textAlign:L("hoverlabel.align"),hovertemplate:P,hovertemplateLabels:te,eventData:A};b&&($.x0=G-_.rInscribed*_.rpx1,$.x1=G+_.rInscribed*_.rpx1,$.idealAlign=_.pxmid[0]<0?"left":"right"),T&&($.x=G,$.idealAlign=G<0?"left":"right");var ne=[];c.loneHover($,{container:M._hoverlayer.node(),outerContainer:M._paper.node(),gd:p,inOut_bbox:ne}),A[0].bbox=ne[0],w._hasHoverLabel=!0}if(T){var H=m.select("path.surface");y.styleOne(H,_,S,{hovered:!0})}w._hasHoverEvent=!0,p.emit("plotly_hover",{points:A||[h(_,S,y.eventDataKeys)],event:r.event})}}),m.on("mouseout",function(_){var M=p._fullLayout,A=p._fullData[w.index],S=r.select(this).datum();if(w._hasHoverEvent&&(_.originalEvent=r.event,p.emit("plotly_unhover",{points:[h(S,A,y.eventDataKeys)],event:r.event}),w._hasHoverEvent=!1),w._hasHoverLabel&&(c.loneUnhover(M._hoverlayer.node()),w._hasHoverLabel=!1),T){var E=m.select("path.surface");y.styleOne(E,S,A,{hovered:!1})}}),m.on("click",function(_){var M=p._fullLayout,A=p._fullData[w.index],S=b&&(l.isHierarchyRoot(_)||l.isLeaf(_)),E=l.getPtId(_),D=l.isEntry(_)?l.findEntryWithChild(k,E):l.findEntryWithLevel(k,E),O=l.getPtId(D),R={points:[h(_,A,y.eventDataKeys)],event:r.event};S||(R.nextLevel=O);var z=s.triggerHandler(p,"plotly_"+w.type+"click",R);if(z!==!1&&M.hovermode&&(p._hoverdata=[h(_,A,y.eventDataKeys)],c.click(p,r.event)),!S&&z!==!1&&!p._dragging&&!p._transitioning){a.call("_storeDirectGUIEdit",A,M._tracePreGUI[A.uid],{level:A.level});var L={data:[{level:O}],traces:[w.index]},P={frame:{redraw:!1,duration:y.transitionTime},transition:{duration:y.transitionTime,easing:y.transitionEasing},mode:"immediate",fromcurrent:!0};c.loneUnhover(M._hoverlayer.node()),a.call("animate",p,L,P)}})}},{"../../components/fx":406,"../../components/fx/helpers":402,"../../lib":503,"../../lib/events":492,"../../registry":638,"../pie/helpers":906,"./helpers":1055,"@plotly/d3":58}],1055:[function(e,o,f){var r=e("../../lib"),a=e("../../components/color"),u=e("../../lib/setcursor"),c=e("../pie/helpers");function i(s){return s.data.data.pid}f.findEntryWithLevel=function(s,l){var d;return l&&s.eachAfter(function(h){if(f.getPtId(h)===l)return d=h.copy()}),d||s},f.findEntryWithChild=function(s,l){var d;return s.eachAfter(function(h){for(var m=h.children||[],g=0;g0)},f.getMaxDepth=function(s){return s.maxdepth>=0?s.maxdepth:1/0},f.isHeader=function(s,l){return!(f.isLeaf(s)||s.depth===l._maxDepth-1)},f.getParent=function(s,l){return f.findEntryWithLevel(s,i(l))},f.listPath=function(s,l){var d=s.parent;if(!d)return[];var h=l?[d.data[l]]:[d];return f.listPath(d,l).concat(h)},f.getPath=function(s){return f.listPath(s,"label").join("/")+"/"},f.formatValue=c.formatPieValue,f.formatPercent=function(s,l){var d=r.formatPercent(s,0);return d==="0%"&&(d=c.formatPiePercent(s,l)),d}},{"../../components/color":366,"../../lib":503,"../../lib/setcursor":524,"../pie/helpers":906}],1056:[function(e,o,f){o.exports={moduleType:"trace",name:"sunburst",basePlotModule:e("./base_plot"),categories:[],animatable:!0,attributes:e("./attributes"),layoutAttributes:e("./layout_attributes"),supplyDefaults:e("./defaults"),supplyLayoutDefaults:e("./layout_defaults"),calc:e("./calc").calc,crossTraceCalc:e("./calc").crossTraceCalc,plot:e("./plot").plot,style:e("./style").style,colorbar:e("../scatter/marker_colorbar"),meta:{}}},{"../scatter/marker_colorbar":945,"./attributes":1049,"./base_plot":1050,"./calc":1051,"./defaults":1053,"./layout_attributes":1057,"./layout_defaults":1058,"./plot":1059,"./style":1060}],1057:[function(e,o,f){o.exports={sunburstcolorway:{valType:"colorlist",editType:"calc"},extendsunburstcolors:{valType:"boolean",dflt:!0,editType:"calc"}}},{}],1058:[function(e,o,f){var r=e("../../lib"),a=e("./layout_attributes");o.exports=function(u,c){function i(s,l){return r.coerce(u,c,a,s,l)}i("sunburstcolorway",c.colorway),i("extendsunburstcolors")}},{"../../lib":503,"./layout_attributes":1057}],1059:[function(e,o,f){var r=e("@plotly/d3"),a=e("d3-hierarchy"),u=e("d3-interpolate").interpolate,c=e("../../components/drawing"),i=e("../../lib"),s=e("../../lib/svg_text_utils"),l=e("../bar/uniform_text"),d=l.recordMinTextSize,h=l.clearMinTextSize,m=e("../pie/plot"),g=e("../pie/helpers").getRotationAngle,p=m.computeTransform,v=m.transformInsideText,y=e("./style").styleOne,x=e("../bar/style").resizeText,w=e("./fx"),k=e("./constants"),b=e("./helpers");function T(M,A,S,E){var D=M._fullLayout,O=!D.uniformtext.mode&&b.hasTransition(E),R=r.select(S).selectAll("g.slice"),z=A[0],L=z.trace,P=z.hierarchy,N=b.findEntryWithLevel(P,L.level),B=b.getMaxDepth(L),G=D._size,W=L.domain,K=G.w*(W.x[1]-W.x[0]),te=G.h*(W.y[1]-W.y[0]),Y=.5*Math.min(K,te),Z=z.cx=G.l+G.w*(W.x[1]+W.x[0])/2,re=z.cy=G.t+G.h*(1-W.y[0])-te/2;if(!N)return R.remove();var U=null,q={};O&&R.each(function(Oe){q[b.getPtId(Oe)]={rpx0:Oe.rpx0,rpx1:Oe.rpx1,x0:Oe.x0,x1:Oe.x1,transform:Oe.transform},!U&&b.isEntry(Oe)&&(U=Oe)});var $=function(Oe){return a.partition().size([2*Math.PI,Oe.height+1])(Oe)}(N).descendants(),ne=N.height+1,H=0,Q=B;z.hasMultipleRoots&&b.isHierarchyRoot(N)&&($=$.slice(1),ne-=1,H=1,Q+=1),$=$.filter(function(Oe){return Oe.y1<=Q});var ee=g(L.rotation);ee&&$.forEach(function(Oe){Oe.x0+=ee,Oe.x1+=ee});var ie=Math.min(ne,B),ae=function(Oe){return(Oe-H)/ie*Y},ue=function(Oe,de){return[Oe*Math.cos(de),-Oe*Math.sin(de)]},le=function(Oe){return i.pathAnnulus(Oe.rpx0,Oe.rpx1,Oe.x0,Oe.x1,Z,re)},ge=function(Oe){return Z+_(Oe)[0]*(Oe.transform.rCenter||0)+(Oe.transform.x||0)},fe=function(Oe){return re+_(Oe)[1]*(Oe.transform.rCenter||0)+(Oe.transform.y||0)};(R=R.data($,b.getPtId)).enter().append("g").classed("slice",!0),O?R.exit().transition().each(function(){var Oe=r.select(this);Oe.select("path.surface").transition().attrTween("d",function(de){var ye=function(Me){var ke,Ee=b.getPtId(Me),ze=q[Ee],Fe=q[b.getPtId(N)];if(Fe){var Ve=(Me.x1>Fe.x1?2*Math.PI:0)+ee;ke=Me.rpx1me?2*Math.PI:0)+ee;qe={x0:nt,x1:nt}}else qe={rpx0:Y,rpx1:Y},i.extendFlat(qe,Te(Re));else qe={rpx0:0,rpx1:0};else qe={x0:ee,x1:ee};return u(qe,Ye)}(Ve);return function(Re){return le(Ke(Re))}}):ye.attr("d",le),de.call(w,N,M,A,{eventDataKeys:k.eventDataKeys,transitionTime:k.CLICK_TRANSITION_TIME,transitionEasing:k.CLICK_TRANSITION_EASING}).call(b.setSliceCursor,M,{hideOnRoot:!0,hideOnLeaves:!0,isTransitioning:M._transitioning}),ye.call(y,Oe,L);var Me=i.ensureSingle(de,"g","slicetext"),ke=i.ensureSingle(Me,"text","",function(Ve){Ve.attr("data-notex",1)}),Ee=i.ensureUniformFontSize(M,b.determineTextFont(L,Oe,D.font));ke.text(f.formatSliceLabel(Oe,N,L,A,D)).classed("slicetext",!0).attr("text-anchor","middle").call(c.font,Ee).call(s.convertToTspans,M);var ze=c.bBox(ke.node());Oe.transform=v(ze,Oe,z),Oe.transform.targetX=ge(Oe),Oe.transform.targetY=fe(Oe);var Fe=function(Ve,Ke){var Re=Ve.transform;return p(Re,Ke),Re.fontSize=Ee.size,d(L.type,Re,D),i.getTextTransform(Re)};O?ke.transition().attrTween("transform",function(Ve){var Ke=function(Re){var qe,We=q[b.getPtId(Re)],Ye=Re.transform;if(We)qe=We;else if(qe={rpx1:Re.rpx1,transform:{textPosAngle:Ye.textPosAngle,scale:0,rotate:Ye.rotate,rCenter:Ye.rCenter,x:Ye.x,y:Ye.y}},U)if(Re.parent)if(me){var nt=Re.x1>me?2*Math.PI:0;qe.x0=qe.x1=nt}else i.extendFlat(qe,Te(Re));else qe.x0=qe.x1=ee;else qe.x0=qe.x1=ee;var ft=u(qe.transform.textPosAngle,Re.transform.textPosAngle),vt=u(qe.rpx1,Re.rpx1),Pt=u(qe.x0,Re.x0),At=u(qe.x1,Re.x1),at=u(qe.transform.scale,Ye.scale),et=u(qe.transform.rotate,Ye.rotate),Ot=Ye.rCenter===0?3:qe.transform.rCenter===0?1/3:1,Wt=u(qe.transform.rCenter,Ye.rCenter);return function(Jt){var Be=vt(Jt),Ge=Pt(Jt),Tt=At(Jt),dt=function(Ie){return Wt(Math.pow(Ie,Ot))}(Jt),Pe={pxmid:ue(Be,(Ge+Tt)/2),rpx1:Be,transform:{textPosAngle:ft(Jt),rCenter:dt,x:Ye.x,y:Ye.y}};return d(L.type,Ye,D),{transform:{targetX:ge(Pe),targetY:fe(Pe),scale:at(Jt),rotate:et(Jt),rCenter:dt}}}}(Ve);return function(Re){return Fe(Ke(Re),ze)}}):ke.attr("transform",Fe(Oe,ze))})}function _(M){return A=M.rpx1,S=M.transform.textPosAngle,[A*Math.sin(S),-A*Math.cos(S)];var A,S}f.plot=function(M,A,S,E){var D,O,R=M._fullLayout,z=R._sunburstlayer,L=!S,P=!R.uniformtext.mode&&b.hasTransition(S);h("sunburst",R),(D=z.selectAll("g.trace.sunburst").data(A,function(N){return N[0].trace.uid})).enter().append("g").classed("trace",!0).classed("sunburst",!0).attr("stroke-linejoin","round"),D.order(),P?(E&&(O=E()),r.transition().duration(S.duration).ease(S.easing).each("end",function(){O&&O()}).each("interrupt",function(){O&&O()}).each(function(){z.selectAll("g.trace").each(function(N){T(M,N,this,S)})})):(D.each(function(N){T(M,N,this,S)}),R.uniformtext.mode&&x(M,R._sunburstlayer.selectAll(".trace"),"sunburst")),L&&D.exit().remove()},f.formatSliceLabel=function(M,A,S,E,D){var O=S.texttemplate,R=S.textinfo;if(!(O||R&&R!=="none"))return"";var z=D.separators,L=E[0],P=M.data.data,N=L.hierarchy,B=b.isHierarchyRoot(M),G=b.getParent(N,M),W=b.getValue(M);if(!O){var K,te=R.split("+"),Y=function(ee){return te.indexOf(ee)!==-1},Z=[];if(Y("label")&&P.label&&Z.push(P.label),P.hasOwnProperty("v")&&Y("value")&&Z.push(b.formatValue(P.v,z)),!B){Y("current path")&&Z.push(b.getPath(M.data));var re=0;Y("percent parent")&&re++,Y("percent entry")&&re++,Y("percent root")&&re++;var U=re>1;if(re){var q,$=function(ee){K=b.formatPercent(q,z),U&&(K+=" of "+ee),Z.push(K)};Y("percent parent")&&!B&&(q=W/b.getValue(G),$("parent")),Y("percent entry")&&(q=W/b.getValue(A),$("entry")),Y("percent root")&&(q=W/b.getValue(N),$("root"))}}return Y("text")&&(K=i.castOption(S,P.i,"text"),i.isValidTextValue(K)&&Z.push(K)),Z.join("
    ")}var ne=i.castOption(S,P.i,"texttemplate");if(!ne)return"";var H={};P.label&&(H.label=P.label),P.hasOwnProperty("v")&&(H.value=P.v,H.valueLabel=b.formatValue(P.v,z)),H.currentPath=b.getPath(M.data),B||(H.percentParent=W/b.getValue(G),H.percentParentLabel=b.formatPercent(H.percentParent,z),H.parent=b.getPtLabel(G)),H.percentEntry=W/b.getValue(A),H.percentEntryLabel=b.formatPercent(H.percentEntry,z),H.entry=b.getPtLabel(A),H.percentRoot=W/b.getValue(N),H.percentRootLabel=b.formatPercent(H.percentRoot,z),H.root=b.getPtLabel(N),P.hasOwnProperty("color")&&(H.color=P.color);var Q=i.castOption(S,P.i,"text");return(i.isValidTextValue(Q)||Q==="")&&(H.text=Q),H.customdata=i.castOption(S,P.i,"customdata"),i.texttemplateString(ne,H,D._d3locale,H,S._meta||{})}},{"../../components/drawing":388,"../../lib":503,"../../lib/svg_text_utils":529,"../bar/style":662,"../bar/uniform_text":664,"../pie/helpers":906,"../pie/plot":910,"./constants":1052,"./fx":1054,"./helpers":1055,"./style":1060,"@plotly/d3":58,"d3-hierarchy":115,"d3-interpolate":116}],1060:[function(e,o,f){var r=e("@plotly/d3"),a=e("../../components/color"),u=e("../../lib"),c=e("../bar/uniform_text").resizeText;function i(s,l,d){var h=l.data.data,m=!l.children,g=h.i,p=u.castOption(d,g,"marker.line.color")||a.defaultLine,v=u.castOption(d,g,"marker.line.width")||0;s.style("stroke-width",v).call(a.fill,h.color).call(a.stroke,p).style("opacity",m?d.leaf.opacity:null)}o.exports={style:function(s){var l=s._fullLayout._sunburstlayer.selectAll(".trace");c(s,l,"sunburst"),l.each(function(d){var h=r.select(this),m=d[0].trace;h.style("opacity",m.opacity),h.selectAll("path.surface").each(function(g){r.select(this).call(i,g,m)})})},styleOne:i}},{"../../components/color":366,"../../lib":503,"../bar/uniform_text":664,"@plotly/d3":58}],1061:[function(e,o,f){var r=e("../../components/color"),a=e("../../components/colorscale/attributes"),u=e("../../plots/cartesian/axis_format_attributes").axisHoverFormat,c=e("../../plots/template_attributes").hovertemplateAttrs,i=e("../../plots/attributes"),s=e("../../lib/extend").extendFlat,l=e("../../plot_api/edit_types").overrideAll;function d(m){return{show:{valType:"boolean",dflt:!1},start:{valType:"number",dflt:null,editType:"plot"},end:{valType:"number",dflt:null,editType:"plot"},size:{valType:"number",dflt:null,min:0,editType:"plot"},project:{x:{valType:"boolean",dflt:!1},y:{valType:"boolean",dflt:!1},z:{valType:"boolean",dflt:!1}},color:{valType:"color",dflt:r.defaultLine},usecolormap:{valType:"boolean",dflt:!1},width:{valType:"number",min:1,max:16,dflt:2},highlight:{valType:"boolean",dflt:!0},highlightcolor:{valType:"color",dflt:r.defaultLine},highlightwidth:{valType:"number",min:1,max:16,dflt:2}}}var h=o.exports=l(s({z:{valType:"data_array"},x:{valType:"data_array"},y:{valType:"data_array"},text:{valType:"string",dflt:"",arrayOk:!0},hovertext:{valType:"string",dflt:"",arrayOk:!0},hovertemplate:c(),xhoverformat:u("x"),yhoverformat:u("y"),zhoverformat:u("z"),connectgaps:{valType:"boolean",dflt:!1,editType:"calc"},surfacecolor:{valType:"data_array"}},a("",{colorAttr:"z or surfacecolor",showScaleDflt:!0,autoColorDflt:!1,editTypeOverride:"calc"}),{contours:{x:d(),y:d(),z:d()},hidesurface:{valType:"boolean",dflt:!1},lightposition:{x:{valType:"number",min:-1e5,max:1e5,dflt:10},y:{valType:"number",min:-1e5,max:1e5,dflt:1e4},z:{valType:"number",min:-1e5,max:1e5,dflt:0}},lighting:{ambient:{valType:"number",min:0,max:1,dflt:.8},diffuse:{valType:"number",min:0,max:1,dflt:.8},specular:{valType:"number",min:0,max:2,dflt:.05},roughness:{valType:"number",min:0,max:1,dflt:.5},fresnel:{valType:"number",min:0,max:5,dflt:.2}},opacity:{valType:"number",min:0,max:1,dflt:1},opacityscale:{valType:"any",editType:"calc"},_deprecated:{zauto:s({},a.zauto,{}),zmin:s({},a.zmin,{}),zmax:s({},a.zmax,{})},hoverinfo:s({},i.hoverinfo),showlegend:s({},i.showlegend,{dflt:!1})}),"calc","nested");h.x.editType=h.y.editType=h.z.editType="calc+clearAxisTypes",h.transforms=void 0},{"../../components/color":366,"../../components/colorscale/attributes":373,"../../lib/extend":493,"../../plot_api/edit_types":536,"../../plots/attributes":550,"../../plots/cartesian/axis_format_attributes":557,"../../plots/template_attributes":633}],1062:[function(e,o,f){var r=e("../../components/colorscale/calc");o.exports=function(a,u){u.surfacecolor?r(a,u,{vals:u.surfacecolor,containerStr:"",cLetter:"c"}):r(a,u,{vals:u.z,containerStr:"",cLetter:"c"})}},{"../../components/colorscale/calc":374}],1063:[function(e,o,f){var r=e("../../../stackgl_modules").gl_surface3d,a=e("../../../stackgl_modules").ndarray,u=e("../../../stackgl_modules").ndarray_linear_interpolate.d2,c=e("../heatmap/interp2d"),i=e("../heatmap/find_empties"),s=e("../../lib").isArrayOrTypedArray,l=e("../../lib/gl_format_color").parseColorScale,d=e("../../lib/str2rgbarray"),h=e("../../components/colorscale").extractOpts;function m(S,E,D){this.scene=S,this.uid=D,this.surface=E,this.data=null,this.showContour=[!1,!1,!1],this.contourStart=[null,null,null],this.contourEnd=[null,null,null],this.contourSize=[0,0,0],this.minValues=[1/0,1/0,1/0],this.maxValues=[-1/0,-1/0,-1/0],this.dataScaleX=1,this.dataScaleY=1,this.refineData=!0,this.objectOffset=[0,0,0]}var g=m.prototype;g.getXat=function(S,E,D,O){var R=s(this.data.x)?s(this.data.x[0])?this.data.x[E][S]:this.data.x[S]:S;return D===void 0?R:O.d2l(R,0,D)},g.getYat=function(S,E,D,O){var R=s(this.data.y)?s(this.data.y[0])?this.data.y[E][S]:this.data.y[E]:E;return D===void 0?R:O.d2l(R,0,D)},g.getZat=function(S,E,D,O){var R=this.data.z[E][S];return R===null&&this.data.connectgaps&&this.data._interpolatedZ&&(R=this.data._interpolatedZ[E][S]),D===void 0?R:O.d2l(R,0,D)},g.handlePick=function(S){if(S.object===this.surface){var E=(S.data.index[0]-1)/this.dataScaleX-1,D=(S.data.index[1]-1)/this.dataScaleY-1,O=Math.max(Math.min(Math.round(E),this.data.z[0].length-1),0),R=Math.max(Math.min(Math.round(D),this.data._ylength-1),0);S.index=[O,R],S.traceCoordinate=[this.getXat(O,R),this.getYat(O,R),this.getZat(O,R)],S.dataCoordinate=[this.getXat(O,R,this.data.xcalendar,this.scene.fullSceneLayout.xaxis),this.getYat(O,R,this.data.ycalendar,this.scene.fullSceneLayout.yaxis),this.getZat(O,R,this.data.zcalendar,this.scene.fullSceneLayout.zaxis)];for(var z=0;z<3;z++){var L=S.dataCoordinate[z];L!=null&&(S.dataCoordinate[z]*=this.scene.dataScale[z])}var P=this.data.hovertext||this.data.text;return Array.isArray(P)&&P[R]&&P[R][O]!==void 0?S.textLabel=P[R][O]:S.textLabel=P||"",S.data.dataCoordinate=S.dataCoordinate.slice(),this.surface.highlight(S.data),this.scene.glplot.spikes.position=S.dataCoordinate,!0}};var p=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999];function v(S,E){if(S0){D=p[O];break}return D}function w(S,E){if(!(S<1||E<1)){for(var D=y(S),O=y(E),R=1,z=0;zT;)D--,D/=x(D),++D1?O:1},g.refineCoords=function(S){for(var E=this.dataScaleX,D=this.dataScaleY,O=S[0].shape[0],R=S[0].shape[1],z=0|Math.floor(S[0].shape[0]*E+1),L=0|Math.floor(S[0].shape[1]*D+1),P=1+O+1,N=1+R+1,B=a(new Float32Array(P*N),[P,N]),G=[1/E,0,0,0,1/D,0,0,0,1],W=0;W0&&this.contourStart[S]!==null&&this.contourEnd[S]!==null&&this.contourEnd[S]>this.contourStart[S]))for(R[S]=!0,E=this.contourStart[S];ER&&(this.minValues[E]=R),this.maxValues[E]",maxDimensionCount:60,overdrag:45,releaseTransitionDuration:120,releaseTransitionEase:"cubic-out",scrollbarCaptureWidth:18,scrollbarHideDelay:1e3,scrollbarHideDuration:1e3,scrollbarOffset:5,scrollbarWidth:8,transitionDuration:100,transitionEase:"cubic-out",uplift:5,wrapSpacer:" ",wrapSplitCharacter:" ",cn:{table:"table",tableControlView:"table-control-view",scrollBackground:"scroll-background",yColumn:"y-column",columnBlock:"column-block",scrollAreaClip:"scroll-area-clip",scrollAreaClipRect:"scroll-area-clip-rect",columnBoundary:"column-boundary",columnBoundaryClippath:"column-boundary-clippath",columnBoundaryRect:"column-boundary-rect",columnCells:"column-cells",columnCell:"column-cell",cellRect:"cell-rect",cellText:"cell-text",cellTextHolder:"cell-text-holder",scrollbarKit:"scrollbar-kit",scrollbar:"scrollbar",scrollbarSlider:"scrollbar-slider",scrollbarGlyph:"scrollbar-glyph",scrollbarCaptureZone:"scrollbar-capture-zone"}}},{}],1070:[function(e,o,f){var r=e("./constants"),a=e("../../lib/extend").extendFlat,u=e("fast-isnumeric");function c(g){if(Array.isArray(g)){for(var p=0,v=0;v=p||_===g.length-1)&&(y[x]=k,k.key=T++,k.firstRowIndex=b,k.lastRowIndex=_,k={firstRowIndex:null,lastRowIndex:null,rows:[]},x+=w,b=_+1,w=0);return y}o.exports=function(g,p){var v=s(p.cells.values),y=function(B){return B.slice(p.header.values.length,B.length)},x=s(p.header.values);x.length&&!x[0].length&&(x[0]=[""],x=s(x));var w=x.concat(y(v).map(function(){return l((x[0]||[""]).length)})),k=p.domain,b=Math.floor(g._fullLayout._size.w*(k.x[1]-k.x[0])),T=Math.floor(g._fullLayout._size.h*(k.y[1]-k.y[0])),_=p.header.values.length?w[0].map(function(){return p.header.height}):[r.emptyHeaderHeight],M=v.length?v[0].map(function(){return p.cells.height}):[],A=_.reduce(i,0),S=m(M,T-A+r.uplift),E=h(m(_,A),[]),D=h(S,E),O={},R=p._fullInput.columnorder.concat(y(v.map(function(B,G){return G}))),z=w.map(function(B,G){var W=Array.isArray(p.columnwidth)?p.columnwidth[Math.min(G,p.columnwidth.length-1)]:p.columnwidth;return u(W)?Number(W):1}),L=z.reduce(i,0);z=z.map(function(B){return B/L*b});var P=Math.max(c(p.header.line.width),c(p.cells.line.width)),N={key:p.uid+g._context.staticPlot,translateX:k.x[0]*g._fullLayout._size.w,translateY:g._fullLayout._size.h*(1-k.y[1]),size:g._fullLayout._size,width:b,maxLineWidth:P,height:T,columnOrder:R,groupHeight:T,rowBlocks:D,headerRowBlocks:E,scrollY:0,cells:a({},p.cells,{values:v}),headerCells:a({},p.header,{values:w}),gdColumns:w.map(function(B){return B[0]}),gdColumnsOriginalOrder:w.map(function(B){return B[0]}),prevPages:[0,0],scrollbarState:{scrollbarScrollInProgress:!1},columns:w.map(function(B,G){var W=O[B];return O[B]=(W||0)+1,{key:B+"__"+O[B],label:B,specIndex:G,xIndex:R[G],xScale:d,x:void 0,calcdata:void 0,columnWidth:z[G]}})};return N.columns.forEach(function(B){B.calcdata=N,B.x=d(B)}),N}},{"../../lib/extend":493,"./constants":1069,"fast-isnumeric":190}],1071:[function(e,o,f){var r=e("../../lib/extend").extendFlat;f.splitToPanels=function(a){var u=[0,0],c=r({},a,{key:"header",type:"header",page:0,prevPages:u,currentRepaint:[null,null],dragHandle:!0,values:a.calcdata.headerCells.values[a.specIndex],rowBlocks:a.calcdata.headerRowBlocks,calcdata:r({},a.calcdata,{cells:a.calcdata.headerCells})});return[r({},a,{key:"cells1",type:"cells",page:0,prevPages:u,currentRepaint:[null,null],dragHandle:!1,values:a.calcdata.cells.values[a.specIndex],rowBlocks:a.calcdata.rowBlocks}),r({},a,{key:"cells2",type:"cells",page:1,prevPages:u,currentRepaint:[null,null],dragHandle:!1,values:a.calcdata.cells.values[a.specIndex],rowBlocks:a.calcdata.rowBlocks}),c]},f.splitToCells=function(a){var u=function(c){var i=c.rowBlocks[c.page],s=i?i.rows[0].rowIndex:0,l=i?s+i.rows.length:0;return[s,l]}(a);return(a.values||[]).slice(u[0],u[1]).map(function(c,i){return{keyWithinBlock:i+(typeof c=="string"&&c.match(/[<$&> ]/)?"_keybuster_"+Math.random():""),key:u[0]+i,column:a,calcdata:a.calcdata,page:a.page,rowBlocks:a.rowBlocks,value:c}})}},{"../../lib/extend":493}],1072:[function(e,o,f){var r=e("../../lib"),a=e("./attributes"),u=e("../../plots/domain").defaults;o.exports=function(c,i,s,l){function d(h,m){return r.coerce(c,i,a,h,m)}u(i,l,d),d("columnwidth"),d("header.values"),d("header.format"),d("header.align"),d("header.prefix"),d("header.suffix"),d("header.height"),d("header.line.width"),d("header.line.color"),d("header.fill.color"),r.coerceFont(d,"header.font",r.extendFlat({},l.font)),function(h,m){for(var g=h.columnorder||[],p=h.header.values.length,v=g.slice(0,p),y=v.slice().sort(function(k,b){return k-b}),x=v.map(function(k){return y.indexOf(k)}),w=x.length;w/i),ie=!Q||ee;q.mayHaveMarkup=Q&&H.match(/[<&>]/);var ae,ue=typeof(ae=H)=="string"&&ae.match(r.latexCheck);q.latex=ue;var le,ge,fe=ue?"":M(q.calcdata.cells.prefix,$,ne)||"",me=ue?"":M(q.calcdata.cells.suffix,$,ne)||"",_e=ue?null:M(q.calcdata.cells.format,$,ne)||null,we=fe+(_e?u(_e)(q.value):q.value)+me;if(q.wrappingNeeded=!q.wrapped&&!ie&&!ue&&(le=_(we)),q.cellHeightMayIncrease=ee||ue||q.mayHaveMarkup||(le===void 0?_(we):le),q.needsConvertToTspans=q.mayHaveMarkup||q.wrappingNeeded||q.latex,q.wrappingNeeded){var Te=(r.wrapSplitCharacter===" "?we.replace(/ge&&le.push(fe),ge+=we}return le}(q,Q,H);ee.length===1&&(ee[0]===q.length-1?ee.unshift(ee[0]-1):ee.push(ee[0]+1)),ee[0]%2&&ee.reverse(),Z.each(function(ie,ae){ie.page=ee[ae],ie.scrollY=Q}),Z.attr("transform",function(ie){var ae=G(ie.rowBlocks,ie.page)-ie.scrollY;return d(0,ae)}),Y&&(z(Y,re,Z,ee,U.prevPages,U,0),z(Y,re,Z,ee,U.prevPages,U,1),k(re,Y))}}function R(Y,Z,re,U){return function(q){var $=q.calcdata?q.calcdata:q,ne=Z.filter(function(ie){return $.key===ie.key}),H=re||$.scrollbarState.dragMultiplier,Q=$.scrollY;$.scrollY=U===void 0?$.scrollY+H*a.event.dy:U;var ee=ne.selectAll("."+r.cn.yColumn).selectAll("."+r.cn.columnBlock).filter(S);return O(Y,ee,ne),$.scrollY===Q}}function z(Y,Z,re,U,q,$,ne){U[ne]!==q[ne]&&(clearTimeout($.currentRepaint[ne]),$.currentRepaint[ne]=setTimeout(function(){var H=re.filter(function(Q,ee){return ee===ne&&U[ee]!==q[ee]});b(Y,Z,H,re),q[ne]=U[ne]}))}function L(Y,Z,re,U){return function(){var q=a.select(Z.parentNode);q.each(function($){var ne=$.fragments;q.selectAll("tspan.line").each(function(ge,fe){ne[fe].width=this.getComputedTextLength()});var H,Q,ee=ne[ne.length-1].width,ie=ne.slice(0,-1),ae=[],ue=0,le=$.column.columnWidth-2*r.cellPad;for($.value="";ie.length;)ue+(Q=(H=ie.shift()).width+ee)>le&&($.value+=ae.join(r.wrapSpacer)+r.lineBreaker,ae=[],ue=0),ae.push(H.text),ue+=Q;ue&&($.value+=ae.join(r.wrapSpacer)),$.wrapped=!0}),q.selectAll("tspan.line").remove(),T(q.select("."+r.cn.cellText),re,Y,U),a.select(Z.parentNode.parentNode).call(B)}}function P(Y,Z,re,U,q){return function(){if(!q.settledY){var $=a.select(Z.parentNode),ne=te(q),H=q.key-ne.firstRowIndex,Q=ne.rows[H].rowHeight,ee=q.cellHeightMayIncrease?Z.parentNode.getBoundingClientRect().height+2*r.cellPad:Q,ie=Math.max(ee,Q);ie-ne.rows[H].rowHeight&&(ne.rows[H].rowHeight=ie,Y.selectAll("."+r.cn.columnCell).call(B),O(null,Y.filter(S),0),k(re,U,!0)),$.attr("transform",function(){var ae=this.parentNode.getBoundingClientRect(),ue=a.select(this.parentNode).select("."+r.cn.cellRect).node().getBoundingClientRect(),le=this.transform.baseVal.consolidate(),ge=ue.top-ae.top+(le?le.matrix.f:r.cellPad);return d(N(q,a.select(this.parentNode).select("."+r.cn.cellTextHolder).node().getBoundingClientRect().width),ge)}),q.settledY=!0}}}function N(Y,Z){switch(Y.align){case"left":return r.cellPad;case"right":return Y.column.columnWidth-(Z||0)-r.cellPad;case"center":return(Y.column.columnWidth-(Z||0))/2;default:return r.cellPad}}function B(Y){Y.attr("transform",function(Z){var re=Z.rowBlocks[0].auxiliaryBlocks.reduce(function(q,$){return q+W($,1/0)},0),U=W(te(Z),Z.key);return d(0,U+re)}).selectAll("."+r.cn.cellRect).attr("height",function(Z){return(re=te(Z),U=Z.key,re.rows[U-re.firstRowIndex]).rowHeight;var re,U})}function G(Y,Z){for(var re=0,U=Z-1;U>=0;U--)re+=K(Y[U]);return re}function W(Y,Z){for(var re=0,U=0;U","<","|","/","\\"],dflt:">",editType:"plot"},thickness:{valType:"number",min:12,editType:"plot"},textfont:d({},i.textfont,{}),editType:"calc"},text:i.text,textinfo:s.textinfo,texttemplate:a({editType:"plot"},{keys:l.eventDataKeys.concat(["label","value"])}),hovertext:i.hovertext,hoverinfo:s.hoverinfo,hovertemplate:r({},{keys:l.eventDataKeys}),textfont:i.textfont,insidetextfont:i.insidetextfont,outsidetextfont:d({},i.outsidetextfont,{}),textposition:{valType:"enumerated",values:["top left","top center","top right","middle left","middle center","middle right","bottom left","bottom center","bottom right"],dflt:"top left",editType:"plot"},sort:i.sort,root:s.root,domain:c({name:"treemap",trace:!0,editType:"calc"})}},{"../../components/colorscale/attributes":373,"../../lib/extend":493,"../../plots/domain":584,"../../plots/template_attributes":633,"../pie/attributes":901,"../sunburst/attributes":1049,"./constants":1078}],1076:[function(e,o,f){var r=e("../../plots/plots");f.name="treemap",f.plot=function(a,u,c,i){r.plotBasePlot(f.name,a,u,c,i)},f.clean=function(a,u,c,i){r.cleanBasePlot(f.name,a,u,c,i)}},{"../../plots/plots":619}],1077:[function(e,o,f){var r=e("../sunburst/calc");f.calc=function(a,u){return r.calc(a,u)},f.crossTraceCalc=function(a){return r._runCrossTraceCalc("treemap",a)}},{"../sunburst/calc":1051}],1078:[function(e,o,f){o.exports={CLICK_TRANSITION_TIME:750,CLICK_TRANSITION_EASING:"poly",eventDataKeys:["currentPath","root","entry","percentRoot","percentEntry","percentParent"],gapWithPathbar:1}},{}],1079:[function(e,o,f){var r=e("../../lib"),a=e("./attributes"),u=e("../../components/color"),c=e("../../plots/domain").defaults,i=e("../bar/defaults").handleText,s=e("../bar/constants").TEXTPAD,l=e("../../components/colorscale"),d=l.hasColorscale,h=l.handleDefaults;o.exports=function(m,g,p,v){function y(S,E){return r.coerce(m,g,a,S,E)}var x=y("labels"),w=y("parents");if(x&&x.length&&w&&w.length){var k=y("values");k&&k.length?y("branchvalues"):y("count"),y("level"),y("maxdepth"),y("tiling.packing")==="squarify"&&y("tiling.squarifyratio"),y("tiling.flip"),y("tiling.pad");var b=y("text");y("texttemplate"),g.texttemplate||y("textinfo",Array.isArray(b)?"text+label":"label"),y("hovertext"),y("hovertemplate");var T=y("pathbar.visible");i(m,g,v,y,"auto",{hasPathbar:T,moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!1,moduleHasCliponaxis:!1,moduleHasTextangle:!1,moduleHasInsideanchor:!1}),y("textposition");var _=g.textposition.indexOf("bottom")!==-1;y("marker.line.width")&&y("marker.line.color",v.paper_bgcolor);var M=y("marker.colors");(g._hasColorscale=d(m,"marker","colors")||(m.marker||{}).coloraxis)?h(m,g,v,y,{prefix:"marker.",cLetter:"c"}):y("marker.depthfade",!(M||[]).length);var A=2*g.textfont.size;y("marker.pad.t",_?A/4:A),y("marker.pad.l",A/4),y("marker.pad.r",A/4),y("marker.pad.b",_?A:A/4),g._hovered={marker:{line:{width:2,color:u.contrast(v.paper_bgcolor)}}},T&&(y("pathbar.thickness",g.pathbar.textfont.size+2*s),y("pathbar.side"),y("pathbar.edgeshape")),y("sort"),y("root.color"),c(g,v,y),g._length=null}else g.visible=!1}},{"../../components/color":366,"../../components/colorscale":378,"../../lib":503,"../../plots/domain":584,"../bar/constants":650,"../bar/defaults":652,"./attributes":1075}],1080:[function(e,o,f){var r=e("@plotly/d3"),a=e("../sunburst/helpers"),u=e("../bar/uniform_text").clearMinTextSize,c=e("../bar/style").resizeText,i=e("./plot_one");o.exports=function(s,l,d,h,m){var g,p,v=m.type,y=m.drawDescendants,x=s._fullLayout,w=x["_"+v+"layer"],k=!d;u(v,x),(g=w.selectAll("g.trace."+v).data(l,function(b){return b[0].trace.uid})).enter().append("g").classed("trace",!0).classed(v,!0),g.order(),!x.uniformtext.mode&&a.hasTransition(d)?(h&&(p=h()),r.transition().duration(d.duration).ease(d.easing).each("end",function(){p&&p()}).each("interrupt",function(){p&&p()}).each(function(){w.selectAll("g.trace").each(function(b){i(s,b,this,d,y)})})):(g.each(function(b){i(s,b,this,d,y)}),x.uniformtext.mode&&c(s,w.selectAll(".trace"),v)),k&&g.exit().remove()}},{"../bar/style":662,"../bar/uniform_text":664,"../sunburst/helpers":1055,"./plot_one":1089,"@plotly/d3":58}],1081:[function(e,o,f){var r=e("@plotly/d3"),a=e("../../lib"),u=e("../../components/drawing"),c=e("../../lib/svg_text_utils"),i=e("./partition"),s=e("./style").styleOne,l=e("./constants"),d=e("../sunburst/helpers"),h=e("../sunburst/fx");o.exports=function(m,g,p,v,y){var x=y.barDifY,w=y.width,k=y.height,b=y.viewX,T=y.viewY,_=y.pathSlice,M=y.toMoveInsideSlice,A=y.strTransform,S=y.hasTransition,E=y.handleSlicesExit,D=y.makeUpdateSliceInterpolator,O=y.makeUpdateTextInterpolator,R={},z=m._fullLayout,L=g[0],P=L.trace,N=L.hierarchy,B=w/P._entryDepth,G=d.listPath(p.data,"id"),W=i(N.copy(),[w,k],{packing:"dice",pad:{inner:0,top:0,left:0,right:0,bottom:0}}).descendants();(W=W.filter(function(te){var Y=G.indexOf(te.data.id);return Y!==-1&&(te.x0=B*Y,te.x1=B*(Y+1),te.y0=x,te.y1=x+k,te.onPathbar=!0,!0)})).reverse(),(v=v.data(W,d.getPtId)).enter().append("g").classed("pathbar",!0),E(v,!0,R,[w,k],_),v.order();var K=v;S&&(K=K.transition().each("end",function(){var te=r.select(this);d.setSliceCursor(te,m,{hideOnRoot:!1,hideOnLeaves:!1,isTransitioning:!1})})),K.each(function(te){te._x0=b(te.x0),te._x1=b(te.x1),te._y0=T(te.y0),te._y1=T(te.y1),te._hoverX=b(te.x1-Math.min(w,k)/2),te._hoverY=T(te.y1-k/2);var Y=r.select(this),Z=a.ensureSingle(Y,"path","surface",function($){$.style("pointer-events","all")});S?Z.transition().attrTween("d",function($){var ne=D($,!0,R,[w,k]);return function(H){return _(ne(H))}}):Z.attr("d",_),Y.call(h,p,m,g,{styleOne:s,eventDataKeys:l.eventDataKeys,transitionTime:l.CLICK_TRANSITION_TIME,transitionEasing:l.CLICK_TRANSITION_EASING}).call(d.setSliceCursor,m,{hideOnRoot:!1,hideOnLeaves:!1,isTransitioning:m._transitioning}),Z.call(s,te,P,{hovered:!1}),te._text=(d.getPtLabel(te)||"").split("
    ").join(" ")||"";var re=a.ensureSingle(Y,"g","slicetext"),U=a.ensureSingle(re,"text","",function($){$.attr("data-notex",1)}),q=a.ensureUniformFontSize(m,d.determineTextFont(P,te,z.font,{onPathbar:!0}));U.text(te._text||" ").classed("slicetext",!0).attr("text-anchor","start").call(u.font,q).call(c.convertToTspans,m),te.textBB=u.bBox(U.node()),te.transform=M(te,{fontSize:q.size,onPathbar:!0}),te.transform.fontSize=q.size,S?U.transition().attrTween("transform",function($){var ne=O($,!0,R,[w,k]);return function(H){return A(ne(H))}}):U.attr("transform",A(te))})}},{"../../components/drawing":388,"../../lib":503,"../../lib/svg_text_utils":529,"../sunburst/fx":1054,"../sunburst/helpers":1055,"./constants":1078,"./partition":1087,"./style":1090,"@plotly/d3":58}],1082:[function(e,o,f){var r=e("@plotly/d3"),a=e("../../lib"),u=e("../../components/drawing"),c=e("../../lib/svg_text_utils"),i=e("./partition"),s=e("./style").styleOne,l=e("./constants"),d=e("../sunburst/helpers"),h=e("../sunburst/fx"),m=e("../sunburst/plot").formatSliceLabel;o.exports=function(g,p,v,y,x){var w=x.width,k=x.height,b=x.viewX,T=x.viewY,_=x.pathSlice,M=x.toMoveInsideSlice,A=x.strTransform,S=x.hasTransition,E=x.handleSlicesExit,D=x.makeUpdateSliceInterpolator,O=x.makeUpdateTextInterpolator,R=x.prevEntry,z=g._fullLayout,L=p[0].trace,P=L.textposition.indexOf("left")!==-1,N=L.textposition.indexOf("right")!==-1,B=L.textposition.indexOf("bottom")!==-1,G=!B&&!L.marker.pad.t||B&&!L.marker.pad.b,W=i(v,[w,k],{packing:L.tiling.packing,squarifyratio:L.tiling.squarifyratio,flipX:L.tiling.flip.indexOf("x")>-1,flipY:L.tiling.flip.indexOf("y")>-1,pad:{inner:L.tiling.pad,top:L.marker.pad.t,left:L.marker.pad.l,right:L.marker.pad.r,bottom:L.marker.pad.b}}).descendants(),K=1/0,te=-1/0;W.forEach(function(q){var $=q.depth;$>=L._maxDepth?(q.x0=q.x1=(q.x0+q.x1)/2,q.y0=q.y1=(q.y0+q.y1)/2):(K=Math.min(K,$),te=Math.max(te,$))}),y=y.data(W,d.getPtId),L._maxVisibleLayers=isFinite(te)?te-K+1:0,y.enter().append("g").classed("slice",!0),E(y,!1,{},[w,k],_),y.order();var Y=null;if(S&&R){var Z=d.getPtId(R);y.each(function(q){Y===null&&d.getPtId(q)===Z&&(Y={x0:q.x0,x1:q.x1,y0:q.y0,y1:q.y1})})}var re=function(){return Y||{x0:0,x1:w,y0:0,y1:k}},U=y;return S&&(U=U.transition().each("end",function(){var q=r.select(this);d.setSliceCursor(q,g,{hideOnRoot:!0,hideOnLeaves:!1,isTransitioning:!1})})),U.each(function(q){var $=d.isHeader(q,L);q._x0=b(q.x0),q._x1=b(q.x1),q._y0=T(q.y0),q._y1=T(q.y1),q._hoverX=b(q.x1-L.marker.pad.r),q._hoverY=T(B?q.y1-L.marker.pad.b/2:q.y0+L.marker.pad.t/2);var ne=r.select(this),H=a.ensureSingle(ne,"path","surface",function(ae){ae.style("pointer-events","all")});S?H.transition().attrTween("d",function(ae){var ue=D(ae,!1,re(),[w,k]);return function(le){return _(ue(le))}}):H.attr("d",_),ne.call(h,v,g,p,{styleOne:s,eventDataKeys:l.eventDataKeys,transitionTime:l.CLICK_TRANSITION_TIME,transitionEasing:l.CLICK_TRANSITION_EASING}).call(d.setSliceCursor,g,{isTransitioning:g._transitioning}),H.call(s,q,L,{hovered:!1}),q.x0===q.x1||q.y0===q.y1?q._text="":q._text=$?G?"":d.getPtLabel(q)||"":m(q,v,L,p,z)||"";var Q=a.ensureSingle(ne,"g","slicetext"),ee=a.ensureSingle(Q,"text","",function(ae){ae.attr("data-notex",1)}),ie=a.ensureUniformFontSize(g,d.determineTextFont(L,q,z.font));ee.text(q._text||" ").classed("slicetext",!0).attr("text-anchor",N?"end":P||$?"start":"middle").call(u.font,ie).call(c.convertToTspans,g),q.textBB=u.bBox(ee.node()),q.transform=M(q,{fontSize:ie.size,isHeader:$}),q.transform.fontSize=ie.size,S?ee.transition().attrTween("transform",function(ae){var ue=O(ae,!1,re(),[w,k]);return function(le){return A(ue(le))}}):ee.attr("transform",A(q))}),Y}},{"../../components/drawing":388,"../../lib":503,"../../lib/svg_text_utils":529,"../sunburst/fx":1054,"../sunburst/helpers":1055,"../sunburst/plot":1059,"./constants":1078,"./partition":1087,"./style":1090,"@plotly/d3":58}],1083:[function(e,o,f){o.exports=function r(a,u,c){var i;c.swapXY&&(i=a.x0,a.x0=a.y0,a.y0=i,i=a.x1,a.x1=a.y1,a.y1=i),c.flipX&&(i=a.x0,a.x0=u[0]-a.x1,a.x1=u[0]-i),c.flipY&&(i=a.y0,a.y0=u[1]-a.y1,a.y1=u[1]-i);var s=a.children;if(s)for(var l=0;l-1?N+W:-(G+W):0,te={x0:B,x1:B,y0:K,y1:K+G},Y=function(Ee,ze,Fe){var Ve=b.tiling.pad,Ke=function(Ye){return Ye-Ve<=ze.x0},Re=function(Ye){return Ye+Ve>=ze.x1},qe=function(Ye){return Ye-Ve<=ze.y0},We=function(Ye){return Ye+Ve>=ze.y1};return Ee.x0===ze.x0&&Ee.x1===ze.x1&&Ee.y0===ze.y0&&Ee.y1===ze.y1?{x0:Ee.x0,x1:Ee.x1,y0:Ee.y0,y1:Ee.y1}:{x0:Ke(Ee.x0-Ve)?0:Re(Ee.x0-Ve)?Fe[0]:Ee.x0,x1:Ke(Ee.x1+Ve)?0:Re(Ee.x1+Ve)?Fe[0]:Ee.x1,y0:qe(Ee.y0-Ve)?0:We(Ee.y0-Ve)?Fe[1]:Ee.y0,y1:qe(Ee.y1+Ve)?0:We(Ee.y1+Ve)?Fe[1]:Ee.y1}},Z=null,re={},U={},q=null,$=function(Ee,ze){return ze?re[m(Ee)]:U[m(Ee)]},ne=function(Ee,ze,Fe,Ve){if(ze)return re[m(_)]||te;var Ke=U[b.level]||Fe;return function(Re){return Re.data.depth-M.data.depth=(Ve-=(T?Pt:Pt.r)-i)){var At=(Fe+Ve)/2;Fe=At,Ve=At}var at;Ye?Ke<(at=Re-(T?Pt:Pt.b))&&at"?(Ye.x-=Re,nt.x-=Re,ft.x-=Re,vt.x-=Re):we==="/"?(ft.x-=Re,vt.x-=Re,qe.x-=Re/2,We.x-=Re/2):we==="\\"?(Ye.x-=Re,nt.x-=Re,qe.x-=Re/2,We.x-=Re/2):we==="<"&&(qe.x-=Re,We.x-=Re),_e(Ye),_e(vt),_e(qe),_e(nt),_e(ft),_e(We),"M"+fe(Ye.x,Ye.y)+"L"+fe(nt.x,nt.y)+"L"+fe(We.x,We.y)+"L"+fe(ft.x,ft.y)+"L"+fe(vt.x,vt.y)+"L"+fe(qe.x,qe.y)+"Z"},toMoveInsideSlice:Te,makeUpdateSliceInterpolator:de,makeUpdateTextInterpolator:ye,handleSlicesExit:Me,hasTransition:O,strTransform:ke}):S.remove()}},{"../../lib":503,"../bar/constants":650,"../bar/plot":659,"../bar/uniform_text":664,"../sunburst/helpers":1055,"./constants":1078,"./draw_ancestors":1081,"@plotly/d3":58,"d3-interpolate":116}],1090:[function(e,o,f){var r=e("@plotly/d3"),a=e("../../components/color"),u=e("../../lib"),c=e("../sunburst/helpers"),i=e("../bar/uniform_text").resizeText;function s(l,d,h,m){var g,p,v=(m||{}).hovered,y=d.data.data,x=y.i,w=y.color,k=c.isHierarchyRoot(d),b=1;if(v)g=h._hovered.marker.line.color,p=h._hovered.marker.line.width;else if(k&&w===h.root.color)b=100,g="rgba(0,0,0,0)",p=0;else if(g=u.castOption(h,x,"marker.line.color")||a.defaultLine,p=u.castOption(h,x,"marker.line.width")||0,!h._hasColorscale&&!d.onPathbar){var T=h.marker.depthfade;if(T){var _,M=a.combine(a.addOpacity(h._backgroundColor,.75),w);if(T===!0){var A=c.getMaxDepth(h);_=isFinite(A)?c.isLeaf(d)?0:h._maxVisibleLayers-(d.data.depth-h._entryDepth):d.data.height+1}else _=d.data.depth-h._entryDepth,h._atRootLevel||_++;if(_>0)for(var S=0;S<_;S++){var E=.5*S/_;w=a.combine(a.addOpacity(M,E),w)}}}l.style("stroke-width",p).call(a.fill,w).call(a.stroke,g).style("opacity",b)}o.exports={style:function(l){var d=l._fullLayout._treemaplayer.selectAll(".trace");i(l,d,"treemap"),d.each(function(h){var m=r.select(this),g=h[0].trace;m.style("opacity",g.opacity),m.selectAll("path.surface").each(function(p){r.select(this).call(s,p,g,{hovered:!1})})})},styleOne:s}},{"../../components/color":366,"../../lib":503,"../bar/uniform_text":664,"../sunburst/helpers":1055,"@plotly/d3":58}],1091:[function(e,o,f){var r=e("../box/attributes"),a=e("../../lib/extend").extendFlat,u=e("../../plots/cartesian/axis_format_attributes").axisHoverFormat;o.exports={y:r.y,x:r.x,x0:r.x0,y0:r.y0,xhoverformat:u("x"),yhoverformat:u("y"),name:a({},r.name,{}),orientation:a({},r.orientation,{}),bandwidth:{valType:"number",min:0,editType:"calc"},scalegroup:{valType:"string",dflt:"",editType:"calc"},scalemode:{valType:"enumerated",values:["width","count"],dflt:"width",editType:"calc"},spanmode:{valType:"enumerated",values:["soft","hard","manual"],dflt:"soft",editType:"calc"},span:{valType:"info_array",items:[{valType:"any",editType:"calc"},{valType:"any",editType:"calc"}],editType:"calc"},line:{color:{valType:"color",editType:"style"},width:{valType:"number",min:0,dflt:2,editType:"style"},editType:"plot"},fillcolor:r.fillcolor,points:a({},r.boxpoints,{}),jitter:a({},r.jitter,{}),pointpos:a({},r.pointpos,{}),width:a({},r.width,{}),marker:r.marker,text:r.text,hovertext:r.hovertext,hovertemplate:r.hovertemplate,box:{visible:{valType:"boolean",dflt:!1,editType:"plot"},width:{valType:"number",min:0,max:1,dflt:.25,editType:"plot"},fillcolor:{valType:"color",editType:"style"},line:{color:{valType:"color",editType:"style"},width:{valType:"number",min:0,editType:"style"},editType:"style"},editType:"plot"},meanline:{visible:{valType:"boolean",dflt:!1,editType:"plot"},color:{valType:"color",editType:"style"},width:{valType:"number",min:0,editType:"style"},editType:"plot"},side:{valType:"enumerated",values:["both","positive","negative"],dflt:"both",editType:"calc"},offsetgroup:r.offsetgroup,alignmentgroup:r.alignmentgroup,selected:r.selected,unselected:r.unselected,hoveron:{valType:"flaglist",flags:["violins","points","kde"],dflt:"violins+points+kde",extras:["all"],editType:"style"}}},{"../../lib/extend":493,"../../plots/cartesian/axis_format_attributes":557,"../box/attributes":673}],1092:[function(e,o,f){var r=e("../../lib"),a=e("../../plots/cartesian/axes"),u=e("../box/calc"),c=e("./helpers"),i=e("../../constants/numerical").BADNUM;function s(d,h,m){var g=h.max-h.min;if(!g)return d.bandwidth?d.bandwidth:0;if(d.bandwidth)return Math.max(d.bandwidth,g/1e4);var p=m.length,v=r.stdev(m,p-1,h.mean);return Math.max(function(y,x,w){return 1.059*Math.min(x,w/1.349)*Math.pow(y,-.2)}(p,v,h.q3-h.q1),g/100)}function l(d,h,m,g){var p,v=d.spanmode,y=d.span||[],x=[h.min,h.max],w=[h.min-2*g,h.max+2*g];function k(T){var _=y[T],M=m.type==="multicategory"?m.r2c(_):m.d2c(_,0,d[h.valLetter+"calendar"]);return M===i?w[T]:M}var b={type:"linear",range:p=v==="soft"?w:v==="hard"?x:[k(0),k(1)]};return a.setConvert(b),b.cleanRange(),p}o.exports=function(d,h){var m=u(d,h);if(m[0].t.empty)return m;for(var g=d._fullLayout,p=a.getFromId(d,h[h.orientation==="h"?"xaxis":"yaxis"]),v=1/0,y=-1/0,x=0,w=0,k=0;k0){var _,M,A,S,E,D=i.xa,O=i.ya;y.orientation==="h"?(E=s,_="y",A=O,M="x",S=D):(E=l,_="x",A=D,M="y",S=O);var R=v[i.index];if(E>=R.span[0]&&E<=R.span[1]){var z=r.extendFlat({},i),L=S.c2p(E,!0),P=c.getKdeValue(R,y,E),N=c.getPositionOnKdePath(R,y,L),B=A._offset,G=A._length;z[_+"0"]=N[0],z[_+"1"]=N[1],z[M+"0"]=z[M+"1"]=L,z[M+"Label"]=M+": "+a.hoverLabelText(S,E,y[M+"hoverformat"])+", "+v[0].t.labels.kde+" "+P.toFixed(3),z.spikeDistance=T[0].spikeDistance;var W=_+"Spike";z[W]=T[0][W],T[0].spikeDistance=void 0,T[0][W]=void 0,z.hovertemplate=!1,b.push(z),(g={stroke:i.color})[_+"1"]=r.constrain(B+N[0],B,B+G),g[_+"2"]=r.constrain(B+N[1],B,B+G),g[M+"1"]=g[M+"2"]=S._offset+L}}w&&(b=b.concat(T))}x.indexOf("points")!==-1&&(m=u.hoverOnPoints(i,s,l));var K=p.selectAll(".violinline-"+y.uid).data(g?[0]:[]);return K.enter().append("line").classed("violinline-"+y.uid,!0).attr("stroke-width",1.5),K.exit().remove(),K.attr(g),d==="closest"?m?[m]:b:(m&&b.push(m),b)}},{"../../lib":503,"../../plots/cartesian/axes":554,"../box/hover":678,"./helpers":1095}],1097:[function(e,o,f){o.exports={attributes:e("./attributes"),layoutAttributes:e("./layout_attributes"),supplyDefaults:e("./defaults"),crossTraceDefaults:e("../box/defaults").crossTraceDefaults,supplyLayoutDefaults:e("./layout_defaults"),calc:e("./calc"),crossTraceCalc:e("./cross_trace_calc"),plot:e("./plot"),style:e("./style"),styleOnSelect:e("../scatter/style").styleOnSelect,hoverPoints:e("./hover"),selectPoints:e("../box/select"),moduleType:"trace",name:"violin",basePlotModule:e("../../plots/cartesian"),categories:["cartesian","svg","symbols","oriented","box-violin","showLegend","violinLayout","zoomScale"],meta:{}}},{"../../plots/cartesian":568,"../box/defaults":676,"../box/select":683,"../scatter/style":951,"./attributes":1091,"./calc":1092,"./cross_trace_calc":1093,"./defaults":1094,"./hover":1096,"./layout_attributes":1098,"./layout_defaults":1099,"./plot":1100,"./style":1101}],1098:[function(e,o,f){var r=e("../box/layout_attributes"),a=e("../../lib").extendFlat;o.exports={violinmode:a({},r.boxmode,{}),violingap:a({},r.boxgap,{}),violingroupgap:a({},r.boxgroupgap,{})}},{"../../lib":503,"../box/layout_attributes":680}],1099:[function(e,o,f){var r=e("../../lib"),a=e("./layout_attributes"),u=e("../box/layout_defaults");o.exports=function(c,i,s){u._supply(c,i,s,function(l,d){return r.coerce(c,i,a,l,d)},"violin")}},{"../../lib":503,"../box/layout_defaults":681,"./layout_attributes":1098}],1100:[function(e,o,f){var r=e("@plotly/d3"),a=e("../../lib"),u=e("../../components/drawing"),c=e("../box/plot"),i=e("../scatter/line_points"),s=e("./helpers");o.exports=function(l,d,h,m){var g=l._fullLayout,p=d.xaxis,v=d.yaxis;function y(x){var w=i(x,{xaxis:p,yaxis:v,connectGaps:!0,baseTolerance:.75,shape:"spline",simplify:!0,linearized:!0});return u.smoothopen(w[0],1)}a.makeTraceGroups(m,h,"trace violins").each(function(x){var w=r.select(this),k=x[0],b=k.t,T=k.trace;if(T.visible!==!0||b.empty)w.remove();else{var _=b.bPos,M=b.bdPos,A=d[b.valLetter+"axis"],S=d[b.posLetter+"axis"],E=T.side==="both",D=E||T.side==="positive",O=E||T.side==="negative",R=w.selectAll("path.violin").data(a.identity);R.enter().append("path").style("vector-effect","non-scaling-stroke").attr("class","violin"),R.exit().remove(),R.each(function(K){var te,Y,Z,re,U,q,$,ne,H=r.select(this),Q=K.density,ee=Q.length,ie=S.c2l(K.pos+_,!0),ae=S.l2p(ie);if(T.width)te=b.maxKDE/M;else{var ue=g._violinScaleGroupStats[T.scalegroup];te=T.scalemode==="count"?ue.maxKDE/M*(ue.maxCount/K.pts.length):ue.maxKDE/M}if(D){for($=new Array(ee),U=0;U")),p.color=function(R,z){var L=R[z.dir].marker,P=L.color,N=L.line.color,B=L.line.width;if(a(P))return P;if(a(N)&&B)return N}(y,b),[p]}function O(R){return r(k,R,y[w+"hoverformat"])}}},{"../../components/color":366,"../../constants/delta.js":473,"../../plots/cartesian/axes":554,"../bar/hover":655}],1113:[function(e,o,f){o.exports={attributes:e("./attributes"),layoutAttributes:e("./layout_attributes"),supplyDefaults:e("./defaults").supplyDefaults,crossTraceDefaults:e("./defaults").crossTraceDefaults,supplyLayoutDefaults:e("./layout_defaults"),calc:e("./calc"),crossTraceCalc:e("./cross_trace_calc"),plot:e("./plot"),style:e("./style").style,hoverPoints:e("./hover"),eventData:e("./event_data"),selectPoints:e("../bar/select"),moduleType:"trace",name:"waterfall",basePlotModule:e("../../plots/cartesian"),categories:["bar-like","cartesian","svg","oriented","showLegend","zoomScale"],meta:{}}},{"../../plots/cartesian":568,"../bar/select":660,"./attributes":1106,"./calc":1107,"./cross_trace_calc":1109,"./defaults":1110,"./event_data":1111,"./hover":1112,"./layout_attributes":1114,"./layout_defaults":1115,"./plot":1116,"./style":1117}],1114:[function(e,o,f){o.exports={waterfallmode:{valType:"enumerated",values:["group","overlay"],dflt:"group",editType:"calc"},waterfallgap:{valType:"number",min:0,max:1,editType:"calc"},waterfallgroupgap:{valType:"number",min:0,max:1,dflt:0,editType:"calc"}}},{}],1115:[function(e,o,f){var r=e("../../lib"),a=e("./layout_attributes");o.exports=function(u,c,i){var s=!1;function l(m,g){return r.coerce(u,c,a,m,g)}for(var d=0;d0&&(N+=A?"M"+L[0]+","+P[1]+"V"+P[0]:"M"+L[1]+","+P[0]+"H"+L[0]),S!=="between"&&(O.isSum||R path").each(function(x){if(!x.isBlank){var w=y[x.dir].marker;r.select(this).call(u.fill,w.color).call(u.stroke,w.line.color).call(a.dashLine,w.line.dash,w.line.width).style("opacity",y.selectedpoints&&!x.selected?c:1)}}),l(v,y,d),v.selectAll(".lines").each(function(){var x=y.connector.line;a.lineGroupStyle(r.select(this).selectAll("path"),x.width,x.color,x.dash)})})}}},{"../../components/color":366,"../../components/drawing":388,"../../constants/interactions":478,"../bar/style":662,"../bar/uniform_text":664,"@plotly/d3":58}],1118:[function(e,o,f){var r=e("../plots/cartesian/axes"),a=e("../lib"),u=e("../plot_api/plot_schema"),c=e("./helpers").pointsAccessorFunction,i=e("../constants/numerical").BADNUM;f.moduleType="transform",f.name="aggregate";var s=f.attributes={enabled:{valType:"boolean",dflt:!0,editType:"calc"},groups:{valType:"string",strict:!0,noBlank:!0,arrayOk:!0,dflt:"x",editType:"calc"},aggregations:{_isLinkedToArray:"aggregation",target:{valType:"string",editType:"calc"},func:{valType:"enumerated",values:["count","sum","avg","median","mode","rms","stddev","min","max","first","last","change","range"],dflt:"first",editType:"calc"},funcmode:{valType:"enumerated",values:["sample","population"],dflt:"sample",editType:"calc"},enabled:{valType:"boolean",dflt:!0,editType:"calc"},editType:"calc"},editType:"calc"},l=s.aggregations;function d(p,v,y,x){if(x.enabled){for(var w=x.target,k=a.nestedProperty(v,w),b=k.get(),T=function(A,S){var E=A.func,D=S.d2c,O=S.c2d;switch(E){case"count":return h;case"first":return m;case"last":return g;case"sum":return function(R,z){for(var L=0,P=0;PP&&(P=W,N=G)}}return P?O(N):i};case"rms":return function(R,z){for(var L=0,P=0,N=0;N":return function(Z){return Y(Z)>K};case">=":return function(Z){return Y(Z)>=K};case"[]":return function(Z){var re=Y(Z);return re>=K[0]&&re<=K[1]};case"()":return function(Z){var re=Y(Z);return re>K[0]&&re=K[0]&&reK[0]&&re<=K[1]};case"][":return function(Z){var re=Y(Z);return re<=K[0]||re>=K[1]};case")(":return function(Z){var re=Y(Z);return reK[1]};case"](":return function(Z){var re=Y(Z);return re<=K[0]||re>K[1]};case")[":return function(Z){var re=Y(Z);return re=K[1]};case"{}":return function(Z){return K.indexOf(Y(Z))!==-1};case"}{":return function(Z){return K.indexOf(Y(Z))===-1}}}(g,u.getDataToCoordFunc(h,m,v,p),x),A={},S={},E=0;k?(T=function(z){A[z.astr]=r.extendDeep([],z.get()),z.set(new Array(y))},_=function(z,L){var P=A[z.astr][L];z.get()[L]=P}):(T=function(z){A[z.astr]=r.extendDeep([],z.get()),z.set([])},_=function(z,L){var P=A[z.astr][L];z.get().push(P)}),R(T);for(var D=c(m.transforms,g),O=0;O1?"%{group} (%{trace})":"%{group}");var p=s.styles,v=m.styles=[];if(p)for(h=0;h0?k-4:k;for(x=0;x>16&255,T[_++]=y>>8&255,T[_++]=255&y;return b===2&&(y=s[v.charCodeAt(x)]<<2|s[v.charCodeAt(x+1)]>>4,T[_++]=255&y),b===1&&(y=s[v.charCodeAt(x)]<<10|s[v.charCodeAt(x+1)]<<4|s[v.charCodeAt(x+2)]>>2,T[_++]=y>>8&255,T[_++]=255&y),T},c.fromByteArray=function(v){for(var y,x=v.length,w=x%3,k=[],b=0,T=x-w;bT?T:b+16383));return w===1?(y=v[x-1],k.push(i[y>>2]+i[y<<4&63]+"==")):w===2&&(y=(v[x-2]<<8)+v[x-1],k.push(i[y>>10]+i[y>>4&63]+i[y<<2&63]+"=")),k.join("")};for(var i=[],s=[],l=typeof Uint8Array<"u"?Uint8Array:Array,d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",h=0,m=d.length;h0)throw new Error("Invalid string. Length must be a multiple of 4");var x=v.indexOf("=");return x===-1&&(x=y),[x,x===y?0:4-x%4]}function p(v,y,x){for(var w,k,b=[],T=y;T>18&63]+i[k>>12&63]+i[k>>6&63]+i[63&k]);return b.join("")}s["-".charCodeAt(0)]=62,s["_".charCodeAt(0)]=63},{}],2:[function(a,u,c){},{}],3:[function(a,u,c){(function(i){(function(){var s=a("base64-js"),l=a("ieee754");c.Buffer=h,c.SlowBuffer=function(H){return+H!=H&&(H=0),h.alloc(+H)},c.INSPECT_MAX_BYTES=50;function d(H){if(H>2147483647)throw new RangeError('The value "'+H+'" is invalid for option "size"');var Q=new Uint8Array(H);return Q.__proto__=h.prototype,Q}function h(H,Q,ee){if(typeof H=="number"){if(typeof Q=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return p(H)}return m(H,Q,ee)}function m(H,Q,ee){if(typeof H=="string")return function(ue,le){if(typeof le=="string"&&le!==""||(le="utf8"),!h.isEncoding(le))throw new TypeError("Unknown encoding: "+le);var ge=0|x(ue,le),fe=d(ge),me=fe.write(ue,le);return me!==ge&&(fe=fe.slice(0,me)),fe}(H,Q);if(ArrayBuffer.isView(H))return v(H);if(H==null)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof H);if($(H,ArrayBuffer)||H&&$(H.buffer,ArrayBuffer))return function(ue,le,ge){if(le<0||ue.byteLength=2147483647)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+2147483647 .toString(16)+" bytes");return 0|H}function x(H,Q){if(h.isBuffer(H))return H.length;if(ArrayBuffer.isView(H)||$(H,ArrayBuffer))return H.byteLength;if(typeof H!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof H);var ee=H.length,ie=arguments.length>2&&arguments[2]===!0;if(!ie&&ee===0)return 0;for(var ae=!1;;)switch(Q){case"ascii":case"latin1":case"binary":return ee;case"utf8":case"utf-8":return re(H).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*ee;case"hex":return ee>>>1;case"base64":return U(H).length;default:if(ae)return ie?-1:re(H).length;Q=(""+Q).toLowerCase(),ae=!0}}function w(H,Q,ee){var ie=!1;if((Q===void 0||Q<0)&&(Q=0),Q>this.length||((ee===void 0||ee>this.length)&&(ee=this.length),ee<=0)||(ee>>>=0)<=(Q>>>=0))return"";for(H||(H="utf8");;)switch(H){case"hex":return P(this,Q,ee);case"utf8":case"utf-8":return R(this,Q,ee);case"ascii":return z(this,Q,ee);case"latin1":case"binary":return L(this,Q,ee);case"base64":return O(this,Q,ee);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return N(this,Q,ee);default:if(ie)throw new TypeError("Unknown encoding: "+H);H=(H+"").toLowerCase(),ie=!0}}function k(H,Q,ee){var ie=H[Q];H[Q]=H[ee],H[ee]=ie}function b(H,Q,ee,ie,ae){if(H.length===0)return-1;if(typeof ee=="string"?(ie=ee,ee=0):ee>2147483647?ee=2147483647:ee<-2147483648&&(ee=-2147483648),ne(ee=+ee)&&(ee=ae?0:H.length-1),ee<0&&(ee=H.length+ee),ee>=H.length){if(ae)return-1;ee=H.length-1}else if(ee<0){if(!ae)return-1;ee=0}if(typeof Q=="string"&&(Q=h.from(Q,ie)),h.isBuffer(Q))return Q.length===0?-1:T(H,Q,ee,ie,ae);if(typeof Q=="number")return Q&=255,typeof Uint8Array.prototype.indexOf=="function"?ae?Uint8Array.prototype.indexOf.call(H,Q,ee):Uint8Array.prototype.lastIndexOf.call(H,Q,ee):T(H,[Q],ee,ie,ae);throw new TypeError("val must be string, number or Buffer")}function T(H,Q,ee,ie,ae){var ue,le=1,ge=H.length,fe=Q.length;if(ie!==void 0&&((ie=String(ie).toLowerCase())==="ucs2"||ie==="ucs-2"||ie==="utf16le"||ie==="utf-16le")){if(H.length<2||Q.length<2)return-1;le=2,ge/=2,fe/=2,ee/=2}function me(Oe,de){return le===1?Oe[de]:Oe.readUInt16BE(de*le)}if(ae){var _e=-1;for(ue=ee;uege&&(ee=ge-fe),ue=ee;ue>=0;ue--){for(var we=!0,Te=0;Teae&&(ie=ae):ie=ae;var ue=Q.length;ie>ue/2&&(ie=ue/2);for(var le=0;le>8,fe=le%256,me.push(fe),me.push(ge);return me}(Q,H.length-ee),H,ee,ie)}function O(H,Q,ee){return Q===0&&ee===H.length?s.fromByteArray(H):s.fromByteArray(H.slice(Q,ee))}function R(H,Q,ee){ee=Math.min(H.length,ee);for(var ie=[],ae=Q;ae239?4:me>223?3:me>191?2:1;if(ae+we<=ee)switch(we){case 1:me<128&&(_e=me);break;case 2:(192&(ue=H[ae+1]))==128&&(fe=(31&me)<<6|63&ue)>127&&(_e=fe);break;case 3:ue=H[ae+1],le=H[ae+2],(192&ue)==128&&(192&le)==128&&(fe=(15&me)<<12|(63&ue)<<6|63&le)>2047&&(fe<55296||fe>57343)&&(_e=fe);break;case 4:ue=H[ae+1],le=H[ae+2],ge=H[ae+3],(192&ue)==128&&(192&le)==128&&(192&ge)==128&&(fe=(15&me)<<18|(63&ue)<<12|(63&le)<<6|63&ge)>65535&&fe<1114112&&(_e=fe)}_e===null?(_e=65533,we=1):_e>65535&&(_e-=65536,ie.push(_e>>>10&1023|55296),_e=56320|1023&_e),ie.push(_e),ae+=we}return function(Te){var Oe=Te.length;if(Oe<=4096)return String.fromCharCode.apply(String,Te);for(var de="",ye=0;ye"u"||typeof console.error!="function"||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(h.prototype,"parent",{enumerable:!0,get:function(){if(h.isBuffer(this))return this.buffer}}),Object.defineProperty(h.prototype,"offset",{enumerable:!0,get:function(){if(h.isBuffer(this))return this.byteOffset}}),typeof Symbol<"u"&&Symbol.species!=null&&h[Symbol.species]===h&&Object.defineProperty(h,Symbol.species,{value:null,configurable:!0,enumerable:!1,writable:!1}),h.poolSize=8192,h.from=function(H,Q,ee){return m(H,Q,ee)},h.prototype.__proto__=Uint8Array.prototype,h.__proto__=Uint8Array,h.alloc=function(H,Q,ee){return function(ie,ae,ue){return g(ie),ie<=0?d(ie):ae!==void 0?typeof ue=="string"?d(ie).fill(ae,ue):d(ie).fill(ae):d(ie)}(H,Q,ee)},h.allocUnsafe=function(H){return p(H)},h.allocUnsafeSlow=function(H){return p(H)},h.isBuffer=function(H){return H!=null&&H._isBuffer===!0&&H!==h.prototype},h.compare=function(H,Q){if($(H,Uint8Array)&&(H=h.from(H,H.offset,H.byteLength)),$(Q,Uint8Array)&&(Q=h.from(Q,Q.offset,Q.byteLength)),!h.isBuffer(H)||!h.isBuffer(Q))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(H===Q)return 0;for(var ee=H.length,ie=Q.length,ae=0,ue=Math.min(ee,ie);aeQ&&(H+=" ... "),""},h.prototype.compare=function(H,Q,ee,ie,ae){if($(H,Uint8Array)&&(H=h.from(H,H.offset,H.byteLength)),!h.isBuffer(H))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof H);if(Q===void 0&&(Q=0),ee===void 0&&(ee=H?H.length:0),ie===void 0&&(ie=0),ae===void 0&&(ae=this.length),Q<0||ee>H.length||ie<0||ae>this.length)throw new RangeError("out of range index");if(ie>=ae&&Q>=ee)return 0;if(ie>=ae)return-1;if(Q>=ee)return 1;if(this===H)return 0;for(var ue=(ae>>>=0)-(ie>>>=0),le=(ee>>>=0)-(Q>>>=0),ge=Math.min(ue,le),fe=this.slice(ie,ae),me=H.slice(Q,ee),_e=0;_e>>=0,isFinite(ee)?(ee>>>=0,ie===void 0&&(ie="utf8")):(ie=ee,ee=void 0)}var ae=this.length-Q;if((ee===void 0||ee>ae)&&(ee=ae),H.length>0&&(ee<0||Q<0)||Q>this.length)throw new RangeError("Attempt to write outside buffer bounds");ie||(ie="utf8");for(var ue=!1;;)switch(ie){case"hex":return _(this,H,Q,ee);case"utf8":case"utf-8":return M(this,H,Q,ee);case"ascii":return A(this,H,Q,ee);case"latin1":case"binary":return S(this,H,Q,ee);case"base64":return E(this,H,Q,ee);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return D(this,H,Q,ee);default:if(ue)throw new TypeError("Unknown encoding: "+ie);ie=(""+ie).toLowerCase(),ue=!0}},h.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function z(H,Q,ee){var ie="";ee=Math.min(H.length,ee);for(var ae=Q;aeie)&&(ee=ie);for(var ae="",ue=Q;ueee)throw new RangeError("Trying to access beyond buffer length")}function G(H,Q,ee,ie,ae,ue){if(!h.isBuffer(H))throw new TypeError('"buffer" argument must be a Buffer instance');if(Q>ae||QH.length)throw new RangeError("Index out of range")}function W(H,Q,ee,ie,ae,ue){if(ee+ie>H.length)throw new RangeError("Index out of range");if(ee<0)throw new RangeError("Index out of range")}function K(H,Q,ee,ie,ae){return Q=+Q,ee>>>=0,ae||W(H,0,ee,4),l.write(H,Q,ee,ie,23,4),ee+4}function te(H,Q,ee,ie,ae){return Q=+Q,ee>>>=0,ae||W(H,0,ee,8),l.write(H,Q,ee,ie,52,8),ee+8}h.prototype.slice=function(H,Q){var ee=this.length;(H=~~H)<0?(H+=ee)<0&&(H=0):H>ee&&(H=ee),(Q=Q===void 0?ee:~~Q)<0?(Q+=ee)<0&&(Q=0):Q>ee&&(Q=ee),Q>>=0,Q>>>=0,ee||B(H,Q,this.length);for(var ie=this[H],ae=1,ue=0;++ue>>=0,Q>>>=0,ee||B(H,Q,this.length);for(var ie=this[H+--Q],ae=1;Q>0&&(ae*=256);)ie+=this[H+--Q]*ae;return ie},h.prototype.readUInt8=function(H,Q){return H>>>=0,Q||B(H,1,this.length),this[H]},h.prototype.readUInt16LE=function(H,Q){return H>>>=0,Q||B(H,2,this.length),this[H]|this[H+1]<<8},h.prototype.readUInt16BE=function(H,Q){return H>>>=0,Q||B(H,2,this.length),this[H]<<8|this[H+1]},h.prototype.readUInt32LE=function(H,Q){return H>>>=0,Q||B(H,4,this.length),(this[H]|this[H+1]<<8|this[H+2]<<16)+16777216*this[H+3]},h.prototype.readUInt32BE=function(H,Q){return H>>>=0,Q||B(H,4,this.length),16777216*this[H]+(this[H+1]<<16|this[H+2]<<8|this[H+3])},h.prototype.readIntLE=function(H,Q,ee){H>>>=0,Q>>>=0,ee||B(H,Q,this.length);for(var ie=this[H],ae=1,ue=0;++ue=(ae*=128)&&(ie-=Math.pow(2,8*Q)),ie},h.prototype.readIntBE=function(H,Q,ee){H>>>=0,Q>>>=0,ee||B(H,Q,this.length);for(var ie=Q,ae=1,ue=this[H+--ie];ie>0&&(ae*=256);)ue+=this[H+--ie]*ae;return ue>=(ae*=128)&&(ue-=Math.pow(2,8*Q)),ue},h.prototype.readInt8=function(H,Q){return H>>>=0,Q||B(H,1,this.length),128&this[H]?-1*(255-this[H]+1):this[H]},h.prototype.readInt16LE=function(H,Q){H>>>=0,Q||B(H,2,this.length);var ee=this[H]|this[H+1]<<8;return 32768&ee?4294901760|ee:ee},h.prototype.readInt16BE=function(H,Q){H>>>=0,Q||B(H,2,this.length);var ee=this[H+1]|this[H]<<8;return 32768&ee?4294901760|ee:ee},h.prototype.readInt32LE=function(H,Q){return H>>>=0,Q||B(H,4,this.length),this[H]|this[H+1]<<8|this[H+2]<<16|this[H+3]<<24},h.prototype.readInt32BE=function(H,Q){return H>>>=0,Q||B(H,4,this.length),this[H]<<24|this[H+1]<<16|this[H+2]<<8|this[H+3]},h.prototype.readFloatLE=function(H,Q){return H>>>=0,Q||B(H,4,this.length),l.read(this,H,!0,23,4)},h.prototype.readFloatBE=function(H,Q){return H>>>=0,Q||B(H,4,this.length),l.read(this,H,!1,23,4)},h.prototype.readDoubleLE=function(H,Q){return H>>>=0,Q||B(H,8,this.length),l.read(this,H,!0,52,8)},h.prototype.readDoubleBE=function(H,Q){return H>>>=0,Q||B(H,8,this.length),l.read(this,H,!1,52,8)},h.prototype.writeUIntLE=function(H,Q,ee,ie){H=+H,Q>>>=0,ee>>>=0,ie||G(this,H,Q,ee,Math.pow(2,8*ee)-1,0);var ae=1,ue=0;for(this[Q]=255&H;++ue>>=0,ee>>>=0,ie||G(this,H,Q,ee,Math.pow(2,8*ee)-1,0);var ae=ee-1,ue=1;for(this[Q+ae]=255&H;--ae>=0&&(ue*=256);)this[Q+ae]=H/ue&255;return Q+ee},h.prototype.writeUInt8=function(H,Q,ee){return H=+H,Q>>>=0,ee||G(this,H,Q,1,255,0),this[Q]=255&H,Q+1},h.prototype.writeUInt16LE=function(H,Q,ee){return H=+H,Q>>>=0,ee||G(this,H,Q,2,65535,0),this[Q]=255&H,this[Q+1]=H>>>8,Q+2},h.prototype.writeUInt16BE=function(H,Q,ee){return H=+H,Q>>>=0,ee||G(this,H,Q,2,65535,0),this[Q]=H>>>8,this[Q+1]=255&H,Q+2},h.prototype.writeUInt32LE=function(H,Q,ee){return H=+H,Q>>>=0,ee||G(this,H,Q,4,4294967295,0),this[Q+3]=H>>>24,this[Q+2]=H>>>16,this[Q+1]=H>>>8,this[Q]=255&H,Q+4},h.prototype.writeUInt32BE=function(H,Q,ee){return H=+H,Q>>>=0,ee||G(this,H,Q,4,4294967295,0),this[Q]=H>>>24,this[Q+1]=H>>>16,this[Q+2]=H>>>8,this[Q+3]=255&H,Q+4},h.prototype.writeIntLE=function(H,Q,ee,ie){if(H=+H,Q>>>=0,!ie){var ae=Math.pow(2,8*ee-1);G(this,H,Q,ee,ae-1,-ae)}var ue=0,le=1,ge=0;for(this[Q]=255&H;++ue>0)-ge&255;return Q+ee},h.prototype.writeIntBE=function(H,Q,ee,ie){if(H=+H,Q>>>=0,!ie){var ae=Math.pow(2,8*ee-1);G(this,H,Q,ee,ae-1,-ae)}var ue=ee-1,le=1,ge=0;for(this[Q+ue]=255&H;--ue>=0&&(le*=256);)H<0&&ge===0&&this[Q+ue+1]!==0&&(ge=1),this[Q+ue]=(H/le>>0)-ge&255;return Q+ee},h.prototype.writeInt8=function(H,Q,ee){return H=+H,Q>>>=0,ee||G(this,H,Q,1,127,-128),H<0&&(H=255+H+1),this[Q]=255&H,Q+1},h.prototype.writeInt16LE=function(H,Q,ee){return H=+H,Q>>>=0,ee||G(this,H,Q,2,32767,-32768),this[Q]=255&H,this[Q+1]=H>>>8,Q+2},h.prototype.writeInt16BE=function(H,Q,ee){return H=+H,Q>>>=0,ee||G(this,H,Q,2,32767,-32768),this[Q]=H>>>8,this[Q+1]=255&H,Q+2},h.prototype.writeInt32LE=function(H,Q,ee){return H=+H,Q>>>=0,ee||G(this,H,Q,4,2147483647,-2147483648),this[Q]=255&H,this[Q+1]=H>>>8,this[Q+2]=H>>>16,this[Q+3]=H>>>24,Q+4},h.prototype.writeInt32BE=function(H,Q,ee){return H=+H,Q>>>=0,ee||G(this,H,Q,4,2147483647,-2147483648),H<0&&(H=4294967295+H+1),this[Q]=H>>>24,this[Q+1]=H>>>16,this[Q+2]=H>>>8,this[Q+3]=255&H,Q+4},h.prototype.writeFloatLE=function(H,Q,ee){return K(this,H,Q,!0,ee)},h.prototype.writeFloatBE=function(H,Q,ee){return K(this,H,Q,!1,ee)},h.prototype.writeDoubleLE=function(H,Q,ee){return te(this,H,Q,!0,ee)},h.prototype.writeDoubleBE=function(H,Q,ee){return te(this,H,Q,!1,ee)},h.prototype.copy=function(H,Q,ee,ie){if(!h.isBuffer(H))throw new TypeError("argument should be a Buffer");if(ee||(ee=0),ie||ie===0||(ie=this.length),Q>=H.length&&(Q=H.length),Q||(Q=0),ie>0&&ie=this.length)throw new RangeError("Index out of range");if(ie<0)throw new RangeError("sourceEnd out of bounds");ie>this.length&&(ie=this.length),H.length-Q=0;--ue)H[ue+Q]=this[ue+ee];else Uint8Array.prototype.set.call(H,this.subarray(ee,ie),Q);return ae},h.prototype.fill=function(H,Q,ee,ie){if(typeof H=="string"){if(typeof Q=="string"?(ie=Q,Q=0,ee=this.length):typeof ee=="string"&&(ie=ee,ee=this.length),ie!==void 0&&typeof ie!="string")throw new TypeError("encoding must be a string");if(typeof ie=="string"&&!h.isEncoding(ie))throw new TypeError("Unknown encoding: "+ie);if(H.length===1){var ae=H.charCodeAt(0);(ie==="utf8"&&ae<128||ie==="latin1")&&(H=ae)}}else typeof H=="number"&&(H&=255);if(Q<0||this.length>>=0,ee=ee===void 0?this.length:ee>>>0,H||(H=0),typeof H=="number")for(ue=Q;ue55295&&ee<57344){if(!ae){if(ee>56319){(Q-=3)>-1&&ue.push(239,191,189);continue}if(le+1===ie){(Q-=3)>-1&&ue.push(239,191,189);continue}ae=ee;continue}if(ee<56320){(Q-=3)>-1&&ue.push(239,191,189),ae=ee;continue}ee=65536+(ae-55296<<10|ee-56320)}else ae&&(Q-=3)>-1&&ue.push(239,191,189);if(ae=null,ee<128){if((Q-=1)<0)break;ue.push(ee)}else if(ee<2048){if((Q-=2)<0)break;ue.push(ee>>6|192,63&ee|128)}else if(ee<65536){if((Q-=3)<0)break;ue.push(ee>>12|224,ee>>6&63|128,63&ee|128)}else{if(!(ee<1114112))throw new Error("Invalid code point");if((Q-=4)<0)break;ue.push(ee>>18|240,ee>>12&63|128,ee>>6&63|128,63&ee|128)}}return ue}function U(H){return s.toByteArray(function(Q){if((Q=(Q=Q.split("=")[0]).trim().replace(Y,"")).length<2)return"";for(;Q.length%4!=0;)Q+="=";return Q}(H))}function q(H,Q,ee,ie){for(var ae=0;ae=Q.length||ae>=H.length);++ae)Q[ae+ee]=H[ae];return ae}function $(H,Q){return H instanceof Q||H!=null&&H.constructor!=null&&H.constructor.name!=null&&H.constructor.name===Q.name}function ne(H){return H!=H}}).call(this)}).call(this,a("buffer").Buffer)},{"base64-js":1,buffer:3,ieee754:4}],4:[function(a,u,c){c.read=function(i,s,l,d,h){var m,g,p=8*h-d-1,v=(1<>1,x=-7,w=l?h-1:0,k=l?-1:1,b=i[s+w];for(w+=k,m=b&(1<<-x)-1,b>>=-x,x+=p;x>0;m=256*m+i[s+w],w+=k,x-=8);for(g=m&(1<<-x)-1,m>>=-x,x+=d;x>0;g=256*g+i[s+w],w+=k,x-=8);if(m===0)m=1-y;else{if(m===v)return g?NaN:1/0*(b?-1:1);g+=Math.pow(2,d),m-=y}return(b?-1:1)*g*Math.pow(2,m-d)},c.write=function(i,s,l,d,h,m){var g,p,v,y=8*m-h-1,x=(1<>1,k=h===23?Math.pow(2,-24)-Math.pow(2,-77):0,b=d?0:m-1,T=d?1:-1,_=s<0||s===0&&1/s<0?1:0;for(s=Math.abs(s),isNaN(s)||s===1/0?(p=isNaN(s)?1:0,g=x):(g=Math.floor(Math.log(s)/Math.LN2),s*(v=Math.pow(2,-g))<1&&(g--,v*=2),(s+=g+w>=1?k/v:k*Math.pow(2,1-w))*v>=2&&(g++,v/=2),g+w>=x?(p=0,g=x):g+w>=1?(p=(s*v-1)*Math.pow(2,h),g+=w):(p=s*Math.pow(2,w-1)*Math.pow(2,h),g=0));h>=8;i[l+b]=255&p,b+=T,p/=256,h-=8);for(g=g<0;i[l+b]=255&g,b+=T,g/=256,y-=8);i[l+b-T]|=128*_}},{}],5:[function(a,u,c){var i,s,l=u.exports={};function d(){throw new Error("setTimeout has not been defined")}function h(){throw new Error("clearTimeout has not been defined")}function m(T){if(i===setTimeout)return setTimeout(T,0);if((i===d||!i)&&setTimeout)return i=setTimeout,setTimeout(T,0);try{return i(T,0)}catch{try{return i.call(null,T,0)}catch{return i.call(this,T,0)}}}(function(){try{i=typeof setTimeout=="function"?setTimeout:d}catch{i=d}try{s=typeof clearTimeout=="function"?clearTimeout:h}catch{s=h}})();var g,p=[],v=!1,y=-1;function x(){v&&g&&(v=!1,g.length?p=g.concat(p):y=-1,p.length&&w())}function w(){if(!v){var T=m(x);v=!0;for(var _=p.length;_;){for(g=p,p=[];++y<_;)g&&g[y].run();y=-1,_=p.length}g=null,v=!1,function(M){if(s===clearTimeout)return clearTimeout(M);if((s===h||!s)&&clearTimeout)return s=clearTimeout,clearTimeout(M);try{s(M)}catch{try{return s.call(null,M)}catch{return s.call(this,M)}}}(T)}}function k(T,_){this.fun=T,this.array=_}function b(){}l.nextTick=function(T){var _=new Array(arguments.length-1);if(arguments.length>1)for(var M=1;M"u"?a("weak-map"):WeakMap,s=a("gl-buffer"),l=a("gl-vao"),d=new i;u.exports=function(h){var m=d.get(h),g=m&&(m._triangleBuffer.handle||m._triangleBuffer.buffer);if(!g||!h.isBuffer(g)){var p=s(h,new Float32Array([-1,-1,-1,4,4,-1]));(m=l(h,[{buffer:p,type:h.FLOAT,size:2}]))._triangleBuffer=p,d.set(h,m)}m.bind(),h.drawArrays(h.TRIANGLES,0,3),m.unbind()}},{"gl-buffer":78,"gl-vao":150,"weak-map":313}],9:[function(a,u,c){var i=a("pad-left");u.exports=function(s,l,d){l=typeof l=="number"?l:1,d=d||": ";var h=s.split(/\r?\n/),m=String(h.length+l-1).length;return h.map(function(g,p){var v=p+l,y=String(v).length;return i(v,m-y)+d+g}).join(` +`)}},{"pad-left":264}],10:[function(a,u,c){u.exports=function(l){var d=l.length;if(d===0)return[];if(d===1)return[0];for(var h=l[0].length,m=[l[0]],g=[0],p=1;p0?y=y.ushln(w):w<0&&(x=x.ushln(-w)),h(y,x)}},{"./div":17,"./is-rat":19,"./lib/is-bn":23,"./lib/num-to-bn":24,"./lib/rationalize":25,"./lib/str-to-bn":26}],19:[function(a,u,c){var i=a("./lib/is-bn");u.exports=function(s){return Array.isArray(s)&&s.length===2&&i(s[0])&&i(s[1])}},{"./lib/is-bn":23}],20:[function(a,u,c){var i=a("bn.js");u.exports=function(s){return s.cmp(new i(0))}},{"bn.js":33}],21:[function(a,u,c){var i=a("./bn-sign");u.exports=function(s){var l=s.length,d=s.words,h=0;if(l===1)h=d[0];else if(l===2)h=d[0]+67108864*d[1];else for(var m=0;m20?52:h+32}},{"bit-twiddle":32,"double-bits":64}],23:[function(a,u,c){a("bn.js"),u.exports=function(i){return i&&typeof i=="object"&&Boolean(i.words)}},{"bn.js":33}],24:[function(a,u,c){var i=a("bn.js"),s=a("double-bits");u.exports=function(l){var d=s.exponent(l);return d<52?new i(l):new i(l*Math.pow(2,52-d)).ushln(d-52)}},{"bn.js":33,"double-bits":64}],25:[function(a,u,c){var i=a("./num-to-bn"),s=a("./bn-sign");u.exports=function(l,d){var h=s(l),m=s(d);if(h===0)return[i(0),i(1)];if(m===0)return[i(0),i(0)];m<0&&(l=l.neg(),d=d.neg());var g=l.gcd(d);return g.cmpn(1)?[l.div(g),d.div(g)]:[l,d]}},{"./bn-sign":20,"./num-to-bn":24}],26:[function(a,u,c){var i=a("bn.js");u.exports=function(s){return new i(s)}},{"bn.js":33}],27:[function(a,u,c){var i=a("./lib/rationalize");u.exports=function(s,l){return i(s[0].mul(l[0]),s[1].mul(l[1]))}},{"./lib/rationalize":25}],28:[function(a,u,c){var i=a("./lib/bn-sign");u.exports=function(s){return i(s[0])*i(s[1])}},{"./lib/bn-sign":20}],29:[function(a,u,c){var i=a("./lib/rationalize");u.exports=function(s,l){return i(s[0].mul(l[1]).sub(s[1].mul(l[0])),s[1].mul(l[1]))}},{"./lib/rationalize":25}],30:[function(a,u,c){var i=a("./lib/bn-to-num"),s=a("./lib/ctz");u.exports=function(l){var d=l[0],h=l[1];if(d.cmpn(0)===0)return 0;var m=d.abs().divmod(h.abs()),g=m.div,p=i(g),v=m.mod,y=d.negative!==h.negative?-1:1;if(v.cmpn(0)===0)return y*p;if(p){var x=s(p)+4,w=i(v.ushln(x).divRound(h));return y*(p+w*Math.pow(2,-x))}var k=h.bitLength()-v.bitLength()+53;return w=i(v.ushln(k).divRound(h)),k<1023?y*w*Math.pow(2,-k):(w*=Math.pow(2,-1023),y*w*Math.pow(2,1023-k))}},{"./lib/bn-to-num":21,"./lib/ctz":22}],31:[function(a,u,c){function i(g,p,v,y,x){for(var w=x+1;y<=x;){var k=y+x>>>1,b=g[k];(v!==void 0?v(b,p):b-p)>=0?(w=k,x=k-1):y=k+1}return w}function s(g,p,v,y,x){for(var w=x+1;y<=x;){var k=y+x>>>1,b=g[k];(v!==void 0?v(b,p):b-p)>0?(w=k,x=k-1):y=k+1}return w}function l(g,p,v,y,x){for(var w=y-1;y<=x;){var k=y+x>>>1,b=g[k];(v!==void 0?v(b,p):b-p)<0?(w=k,y=k+1):x=k-1}return w}function d(g,p,v,y,x){for(var w=y-1;y<=x;){var k=y+x>>>1,b=g[k];(v!==void 0?v(b,p):b-p)<=0?(w=k,y=k+1):x=k-1}return w}function h(g,p,v,y,x){for(;y<=x;){var w=y+x>>>1,k=g[w],b=v!==void 0?v(k,p):k-p;if(b===0)return w;b<=0?y=w+1:x=w-1}return-1}function m(g,p,v,y,x,w){return typeof v=="function"?w(g,p,v,y===void 0?0:0|y,x===void 0?g.length-1:0|x):w(g,p,void 0,v===void 0?0:0|v,y===void 0?g.length-1:0|y)}u.exports={ge:function(g,p,v,y,x){return m(g,p,v,y,x,i)},gt:function(g,p,v,y,x){return m(g,p,v,y,x,s)},lt:function(g,p,v,y,x){return m(g,p,v,y,x,l)},le:function(g,p,v,y,x){return m(g,p,v,y,x,d)},eq:function(g,p,v,y,x){return m(g,p,v,y,x,h)}}},{}],32:[function(a,u,c){function i(l){var d=32;return(l&=-l)&&d--,65535&l&&(d-=16),16711935&l&&(d-=8),252645135&l&&(d-=4),858993459&l&&(d-=2),1431655765&l&&(d-=1),d}c.INT_BITS=32,c.INT_MAX=2147483647,c.INT_MIN=-1<<31,c.sign=function(l){return(l>0)-(l<0)},c.abs=function(l){var d=l>>31;return(l^d)-d},c.min=function(l,d){return d^(l^d)&-(l65535)<<4,d|=h=((l>>>=d)>255)<<3,d|=h=((l>>>=h)>15)<<2,(d|=h=((l>>>=h)>3)<<1)|(l>>>=h)>>1},c.log10=function(l){return l>=1e9?9:l>=1e8?8:l>=1e7?7:l>=1e6?6:l>=1e5?5:l>=1e4?4:l>=1e3?3:l>=100?2:l>=10?1:0},c.popCount=function(l){return 16843009*((l=(858993459&(l-=l>>>1&1431655765))+(l>>>2&858993459))+(l>>>4)&252645135)>>>24},c.countTrailingZeros=i,c.nextPow2=function(l){return l+=l===0,--l,l|=l>>>1,l|=l>>>2,l|=l>>>4,l|=l>>>8,(l|=l>>>16)+1},c.prevPow2=function(l){return l|=l>>>1,l|=l>>>2,l|=l>>>4,l|=l>>>8,(l|=l>>>16)-(l>>>1)},c.parity=function(l){return l^=l>>>16,l^=l>>>8,l^=l>>>4,27030>>>(l&=15)&1};var s=new Array(256);(function(l){for(var d=0;d<256;++d){var h=d,m=d,g=7;for(h>>>=1;h;h>>>=1)m<<=1,m|=1&h,--g;l[d]=m<>>8&255]<<16|s[l>>>16&255]<<8|s[l>>>24&255]},c.interleave2=function(l,d){return(l=1431655765&((l=858993459&((l=252645135&((l=16711935&((l&=65535)|l<<8))|l<<4))|l<<2))|l<<1))|(d=1431655765&((d=858993459&((d=252645135&((d=16711935&((d&=65535)|d<<8))|d<<4))|d<<2))|d<<1))<<1},c.deinterleave2=function(l,d){return(l=65535&((l=16711935&((l=252645135&((l=858993459&((l=l>>>d&1431655765)|l>>>1))|l>>>2))|l>>>4))|l>>>16))<<16>>16},c.interleave3=function(l,d,h){return l=1227133513&((l=3272356035&((l=251719695&((l=4278190335&((l&=1023)|l<<16))|l<<8))|l<<4))|l<<2),(l|=(d=1227133513&((d=3272356035&((d=251719695&((d=4278190335&((d&=1023)|d<<16))|d<<8))|d<<4))|d<<2))<<1)|(h=1227133513&((h=3272356035&((h=251719695&((h=4278190335&((h&=1023)|h<<16))|h<<8))|h<<4))|h<<2))<<2},c.deinterleave3=function(l,d){return(l=1023&((l=4278190335&((l=251719695&((l=3272356035&((l=l>>>d&1227133513)|l>>>2))|l>>>4))|l>>>8))|l>>>16))<<22>>22},c.nextCombination=function(l){var d=l|l-1;return d+1|(~d&-~d)-1>>>i(l)+1}},{}],33:[function(a,u,c){(function(i,s){function l(L,P){if(!L)throw new Error(P||"Assertion failed")}function d(L,P){L.super_=P;var N=function(){};N.prototype=P.prototype,L.prototype=new N,L.prototype.constructor=L}function h(L,P,N){if(h.isBN(L))return L;this.negative=0,this.words=null,this.length=0,this.red=null,L!==null&&(P!=="le"&&P!=="be"||(N=P,P=10),this._init(L||0,P||10,N||"be"))}var m;typeof i=="object"?i.exports=h:s.BN=h,h.BN=h,h.wordSize=26;try{m=typeof window<"u"&&window.Buffer!==void 0?window.Buffer:a("buffer").Buffer}catch{}function g(L,P){var N=L.charCodeAt(P);return N>=65&&N<=70?N-55:N>=97&&N<=102?N-87:N-48&15}function p(L,P,N){var B=g(L,N);return N-1>=P&&(B|=g(L,N-1)<<4),B}function v(L,P,N,B){for(var G=0,W=Math.min(L.length,N),K=P;K=49?te-49+10:te>=17?te-17+10:te}return G}h.isBN=function(L){return L instanceof h||L!==null&&typeof L=="object"&&L.constructor.wordSize===h.wordSize&&Array.isArray(L.words)},h.max=function(L,P){return L.cmp(P)>0?L:P},h.min=function(L,P){return L.cmp(P)<0?L:P},h.prototype._init=function(L,P,N){if(typeof L=="number")return this._initNumber(L,P,N);if(typeof L=="object")return this._initArray(L,P,N);P==="hex"&&(P=16),l(P===(0|P)&&P>=2&&P<=36);var B=0;(L=L.toString().replace(/\s+/g,""))[0]==="-"&&(B++,this.negative=1),B=0;B-=3)W=L[B]|L[B-1]<<8|L[B-2]<<16,this.words[G]|=W<>>26-K&67108863,(K+=24)>=26&&(K-=26,G++);else if(N==="le")for(B=0,G=0;B>>26-K&67108863,(K+=24)>=26&&(K-=26,G++);return this.strip()},h.prototype._parseHex=function(L,P,N){this.length=Math.ceil((L.length-P)/6),this.words=new Array(this.length);for(var B=0;B=P;B-=2)G=p(L,P,B)<=18?(W-=18,K+=1,this.words[K]|=G>>>26):W+=8;else for(B=(L.length-P)%2==0?P+1:P;B=18?(W-=18,K+=1,this.words[K]|=G>>>26):W+=8;this.strip()},h.prototype._parseBase=function(L,P,N){this.words=[0],this.length=1;for(var B=0,G=1;G<=67108863;G*=P)B++;B--,G=G/P|0;for(var W=L.length-N,K=W%B,te=Math.min(W,W-K)+N,Y=0,Z=N;Z1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},h.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},h.prototype.inspect=function(){return(this.red?""};var y=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],x=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],w=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function k(L,P,N){N.negative=P.negative^L.negative;var B=L.length+P.length|0;N.length=B,B=B-1|0;var G=0|L.words[0],W=0|P.words[0],K=G*W,te=67108863&K,Y=K/67108864|0;N.words[0]=te;for(var Z=1;Z>>26,U=67108863&Y,q=Math.min(Z,P.length-1),$=Math.max(0,Z-L.length+1);$<=q;$++){var ne=Z-$|0;re+=(K=(G=0|L.words[ne])*(W=0|P.words[$])+U)/67108864|0,U=67108863&K}N.words[Z]=0|U,Y=0|re}return Y!==0?N.words[Z]=0|Y:N.length--,N.strip()}h.prototype.toString=function(L,P){var N;if(P=0|P||1,(L=L||10)===16||L==="hex"){N="";for(var B=0,G=0,W=0;W>>24-B&16777215)!==0||W!==this.length-1?y[6-te.length]+te+N:te+N,(B+=2)>=26&&(B-=26,W--)}for(G!==0&&(N=G.toString(16)+N);N.length%P!=0;)N="0"+N;return this.negative!==0&&(N="-"+N),N}if(L===(0|L)&&L>=2&&L<=36){var Y=x[L],Z=w[L];N="";var re=this.clone();for(re.negative=0;!re.isZero();){var U=re.modn(Z).toString(L);N=(re=re.idivn(Z)).isZero()?U+N:y[Y-U.length]+U+N}for(this.isZero()&&(N="0"+N);N.length%P!=0;)N="0"+N;return this.negative!==0&&(N="-"+N),N}l(!1,"Base should be between 2 and 36")},h.prototype.toNumber=function(){var L=this.words[0];return this.length===2?L+=67108864*this.words[1]:this.length===3&&this.words[2]===1?L+=4503599627370496+67108864*this.words[1]:this.length>2&&l(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-L:L},h.prototype.toJSON=function(){return this.toString(16)},h.prototype.toBuffer=function(L,P){return l(m!==void 0),this.toArrayLike(m,L,P)},h.prototype.toArray=function(L,P){return this.toArrayLike(Array,L,P)},h.prototype.toArrayLike=function(L,P,N){var B=this.byteLength(),G=N||Math.max(1,B);l(B<=G,"byte array longer than desired length"),l(G>0,"Requested array length <= 0"),this.strip();var W,K,te=P==="le",Y=new L(G),Z=this.clone();if(te){for(K=0;!Z.isZero();K++)W=Z.andln(255),Z.iushrn(8),Y[K]=W;for(;K=4096&&(N+=13,P>>>=13),P>=64&&(N+=7,P>>>=7),P>=8&&(N+=4,P>>>=4),P>=2&&(N+=2,P>>>=2),N+P},h.prototype._zeroBits=function(L){if(L===0)return 26;var P=L,N=0;return(8191&P)==0&&(N+=13,P>>>=13),(127&P)==0&&(N+=7,P>>>=7),(15&P)==0&&(N+=4,P>>>=4),(3&P)==0&&(N+=2,P>>>=2),(1&P)==0&&N++,N},h.prototype.bitLength=function(){var L=this.words[this.length-1],P=this._countBits(L);return 26*(this.length-1)+P},h.prototype.zeroBits=function(){if(this.isZero())return 0;for(var L=0,P=0;PL.length?this.clone().ior(L):L.clone().ior(this)},h.prototype.uor=function(L){return this.length>L.length?this.clone().iuor(L):L.clone().iuor(this)},h.prototype.iuand=function(L){var P;P=this.length>L.length?L:this;for(var N=0;NL.length?this.clone().iand(L):L.clone().iand(this)},h.prototype.uand=function(L){return this.length>L.length?this.clone().iuand(L):L.clone().iuand(this)},h.prototype.iuxor=function(L){var P,N;this.length>L.length?(P=this,N=L):(P=L,N=this);for(var B=0;BL.length?this.clone().ixor(L):L.clone().ixor(this)},h.prototype.uxor=function(L){return this.length>L.length?this.clone().iuxor(L):L.clone().iuxor(this)},h.prototype.inotn=function(L){l(typeof L=="number"&&L>=0);var P=0|Math.ceil(L/26),N=L%26;this._expand(P),N>0&&P--;for(var B=0;B0&&(this.words[B]=~this.words[B]&67108863>>26-N),this.strip()},h.prototype.notn=function(L){return this.clone().inotn(L)},h.prototype.setn=function(L,P){l(typeof L=="number"&&L>=0);var N=L/26|0,B=L%26;return this._expand(N+1),this.words[N]=P?this.words[N]|1<L.length?(N=this,B=L):(N=L,B=this);for(var G=0,W=0;W>>26;for(;G!==0&&W>>26;if(this.length=N.length,G!==0)this.words[this.length]=G,this.length++;else if(N!==this)for(;WL.length?this.clone().iadd(L):L.clone().iadd(this)},h.prototype.isub=function(L){if(L.negative!==0){L.negative=0;var P=this.iadd(L);return L.negative=1,P._normSign()}if(this.negative!==0)return this.negative=0,this.iadd(L),this.negative=1,this._normSign();var N,B,G=this.cmp(L);if(G===0)return this.negative=0,this.length=1,this.words[0]=0,this;G>0?(N=this,B=L):(N=L,B=this);for(var W=0,K=0;K>26,this.words[K]=67108863&P;for(;W!==0&&K>26,this.words[K]=67108863&P;if(W===0&&K>>13,$=0|K[1],ne=8191&$,H=$>>>13,Q=0|K[2],ee=8191&Q,ie=Q>>>13,ae=0|K[3],ue=8191&ae,le=ae>>>13,ge=0|K[4],fe=8191&ge,me=ge>>>13,_e=0|K[5],we=8191&_e,Te=_e>>>13,Oe=0|K[6],de=8191&Oe,ye=Oe>>>13,Me=0|K[7],ke=8191&Me,Ee=Me>>>13,ze=0|K[8],Fe=8191&ze,Ve=ze>>>13,Ke=0|K[9],Re=8191&Ke,qe=Ke>>>13,We=0|te[0],Ye=8191&We,nt=We>>>13,ft=0|te[1],vt=8191&ft,Pt=ft>>>13,At=0|te[2],at=8191&At,et=At>>>13,Ot=0|te[3],Wt=8191&Ot,Jt=Ot>>>13,Be=0|te[4],Ge=8191&Be,Tt=Be>>>13,dt=0|te[5],Pe=8191&dt,Ie=dt>>>13,Ae=0|te[6],De=8191&Ae,He=Ae>>>13,rt=0|te[7],lt=8191&rt,ot=rt>>>13,kt=0|te[8],wt=8191&kt,Vt=kt>>>13,Ut=0|te[9],tt=8191&Ut,bt=Ut>>>13;N.negative=L.negative^P.negative,N.length=19;var zt=(Z+(B=Math.imul(U,Ye))|0)+((8191&(G=(G=Math.imul(U,nt))+Math.imul(q,Ye)|0))<<13)|0;Z=((W=Math.imul(q,nt))+(G>>>13)|0)+(zt>>>26)|0,zt&=67108863,B=Math.imul(ne,Ye),G=(G=Math.imul(ne,nt))+Math.imul(H,Ye)|0,W=Math.imul(H,nt);var St=(Z+(B=B+Math.imul(U,vt)|0)|0)+((8191&(G=(G=G+Math.imul(U,Pt)|0)+Math.imul(q,vt)|0))<<13)|0;Z=((W=W+Math.imul(q,Pt)|0)+(G>>>13)|0)+(St>>>26)|0,St&=67108863,B=Math.imul(ee,Ye),G=(G=Math.imul(ee,nt))+Math.imul(ie,Ye)|0,W=Math.imul(ie,nt),B=B+Math.imul(ne,vt)|0,G=(G=G+Math.imul(ne,Pt)|0)+Math.imul(H,vt)|0,W=W+Math.imul(H,Pt)|0;var Dt=(Z+(B=B+Math.imul(U,at)|0)|0)+((8191&(G=(G=G+Math.imul(U,et)|0)+Math.imul(q,at)|0))<<13)|0;Z=((W=W+Math.imul(q,et)|0)+(G>>>13)|0)+(Dt>>>26)|0,Dt&=67108863,B=Math.imul(ue,Ye),G=(G=Math.imul(ue,nt))+Math.imul(le,Ye)|0,W=Math.imul(le,nt),B=B+Math.imul(ee,vt)|0,G=(G=G+Math.imul(ee,Pt)|0)+Math.imul(ie,vt)|0,W=W+Math.imul(ie,Pt)|0,B=B+Math.imul(ne,at)|0,G=(G=G+Math.imul(ne,et)|0)+Math.imul(H,at)|0,W=W+Math.imul(H,et)|0;var Le=(Z+(B=B+Math.imul(U,Wt)|0)|0)+((8191&(G=(G=G+Math.imul(U,Jt)|0)+Math.imul(q,Wt)|0))<<13)|0;Z=((W=W+Math.imul(q,Jt)|0)+(G>>>13)|0)+(Le>>>26)|0,Le&=67108863,B=Math.imul(fe,Ye),G=(G=Math.imul(fe,nt))+Math.imul(me,Ye)|0,W=Math.imul(me,nt),B=B+Math.imul(ue,vt)|0,G=(G=G+Math.imul(ue,Pt)|0)+Math.imul(le,vt)|0,W=W+Math.imul(le,Pt)|0,B=B+Math.imul(ee,at)|0,G=(G=G+Math.imul(ee,et)|0)+Math.imul(ie,at)|0,W=W+Math.imul(ie,et)|0,B=B+Math.imul(ne,Wt)|0,G=(G=G+Math.imul(ne,Jt)|0)+Math.imul(H,Wt)|0,W=W+Math.imul(H,Jt)|0;var Je=(Z+(B=B+Math.imul(U,Ge)|0)|0)+((8191&(G=(G=G+Math.imul(U,Tt)|0)+Math.imul(q,Ge)|0))<<13)|0;Z=((W=W+Math.imul(q,Tt)|0)+(G>>>13)|0)+(Je>>>26)|0,Je&=67108863,B=Math.imul(we,Ye),G=(G=Math.imul(we,nt))+Math.imul(Te,Ye)|0,W=Math.imul(Te,nt),B=B+Math.imul(fe,vt)|0,G=(G=G+Math.imul(fe,Pt)|0)+Math.imul(me,vt)|0,W=W+Math.imul(me,Pt)|0,B=B+Math.imul(ue,at)|0,G=(G=G+Math.imul(ue,et)|0)+Math.imul(le,at)|0,W=W+Math.imul(le,et)|0,B=B+Math.imul(ee,Wt)|0,G=(G=G+Math.imul(ee,Jt)|0)+Math.imul(ie,Wt)|0,W=W+Math.imul(ie,Jt)|0,B=B+Math.imul(ne,Ge)|0,G=(G=G+Math.imul(ne,Tt)|0)+Math.imul(H,Ge)|0,W=W+Math.imul(H,Tt)|0;var st=(Z+(B=B+Math.imul(U,Pe)|0)|0)+((8191&(G=(G=G+Math.imul(U,Ie)|0)+Math.imul(q,Pe)|0))<<13)|0;Z=((W=W+Math.imul(q,Ie)|0)+(G>>>13)|0)+(st>>>26)|0,st&=67108863,B=Math.imul(de,Ye),G=(G=Math.imul(de,nt))+Math.imul(ye,Ye)|0,W=Math.imul(ye,nt),B=B+Math.imul(we,vt)|0,G=(G=G+Math.imul(we,Pt)|0)+Math.imul(Te,vt)|0,W=W+Math.imul(Te,Pt)|0,B=B+Math.imul(fe,at)|0,G=(G=G+Math.imul(fe,et)|0)+Math.imul(me,at)|0,W=W+Math.imul(me,et)|0,B=B+Math.imul(ue,Wt)|0,G=(G=G+Math.imul(ue,Jt)|0)+Math.imul(le,Wt)|0,W=W+Math.imul(le,Jt)|0,B=B+Math.imul(ee,Ge)|0,G=(G=G+Math.imul(ee,Tt)|0)+Math.imul(ie,Ge)|0,W=W+Math.imul(ie,Tt)|0,B=B+Math.imul(ne,Pe)|0,G=(G=G+Math.imul(ne,Ie)|0)+Math.imul(H,Pe)|0,W=W+Math.imul(H,Ie)|0;var Et=(Z+(B=B+Math.imul(U,De)|0)|0)+((8191&(G=(G=G+Math.imul(U,He)|0)+Math.imul(q,De)|0))<<13)|0;Z=((W=W+Math.imul(q,He)|0)+(G>>>13)|0)+(Et>>>26)|0,Et&=67108863,B=Math.imul(ke,Ye),G=(G=Math.imul(ke,nt))+Math.imul(Ee,Ye)|0,W=Math.imul(Ee,nt),B=B+Math.imul(de,vt)|0,G=(G=G+Math.imul(de,Pt)|0)+Math.imul(ye,vt)|0,W=W+Math.imul(ye,Pt)|0,B=B+Math.imul(we,at)|0,G=(G=G+Math.imul(we,et)|0)+Math.imul(Te,at)|0,W=W+Math.imul(Te,et)|0,B=B+Math.imul(fe,Wt)|0,G=(G=G+Math.imul(fe,Jt)|0)+Math.imul(me,Wt)|0,W=W+Math.imul(me,Jt)|0,B=B+Math.imul(ue,Ge)|0,G=(G=G+Math.imul(ue,Tt)|0)+Math.imul(le,Ge)|0,W=W+Math.imul(le,Tt)|0,B=B+Math.imul(ee,Pe)|0,G=(G=G+Math.imul(ee,Ie)|0)+Math.imul(ie,Pe)|0,W=W+Math.imul(ie,Ie)|0,B=B+Math.imul(ne,De)|0,G=(G=G+Math.imul(ne,He)|0)+Math.imul(H,De)|0,W=W+Math.imul(H,He)|0;var It=(Z+(B=B+Math.imul(U,lt)|0)|0)+((8191&(G=(G=G+Math.imul(U,ot)|0)+Math.imul(q,lt)|0))<<13)|0;Z=((W=W+Math.imul(q,ot)|0)+(G>>>13)|0)+(It>>>26)|0,It&=67108863,B=Math.imul(Fe,Ye),G=(G=Math.imul(Fe,nt))+Math.imul(Ve,Ye)|0,W=Math.imul(Ve,nt),B=B+Math.imul(ke,vt)|0,G=(G=G+Math.imul(ke,Pt)|0)+Math.imul(Ee,vt)|0,W=W+Math.imul(Ee,Pt)|0,B=B+Math.imul(de,at)|0,G=(G=G+Math.imul(de,et)|0)+Math.imul(ye,at)|0,W=W+Math.imul(ye,et)|0,B=B+Math.imul(we,Wt)|0,G=(G=G+Math.imul(we,Jt)|0)+Math.imul(Te,Wt)|0,W=W+Math.imul(Te,Jt)|0,B=B+Math.imul(fe,Ge)|0,G=(G=G+Math.imul(fe,Tt)|0)+Math.imul(me,Ge)|0,W=W+Math.imul(me,Tt)|0,B=B+Math.imul(ue,Pe)|0,G=(G=G+Math.imul(ue,Ie)|0)+Math.imul(le,Pe)|0,W=W+Math.imul(le,Ie)|0,B=B+Math.imul(ee,De)|0,G=(G=G+Math.imul(ee,He)|0)+Math.imul(ie,De)|0,W=W+Math.imul(ie,He)|0,B=B+Math.imul(ne,lt)|0,G=(G=G+Math.imul(ne,ot)|0)+Math.imul(H,lt)|0,W=W+Math.imul(H,ot)|0;var Zt=(Z+(B=B+Math.imul(U,wt)|0)|0)+((8191&(G=(G=G+Math.imul(U,Vt)|0)+Math.imul(q,wt)|0))<<13)|0;Z=((W=W+Math.imul(q,Vt)|0)+(G>>>13)|0)+(Zt>>>26)|0,Zt&=67108863,B=Math.imul(Re,Ye),G=(G=Math.imul(Re,nt))+Math.imul(qe,Ye)|0,W=Math.imul(qe,nt),B=B+Math.imul(Fe,vt)|0,G=(G=G+Math.imul(Fe,Pt)|0)+Math.imul(Ve,vt)|0,W=W+Math.imul(Ve,Pt)|0,B=B+Math.imul(ke,at)|0,G=(G=G+Math.imul(ke,et)|0)+Math.imul(Ee,at)|0,W=W+Math.imul(Ee,et)|0,B=B+Math.imul(de,Wt)|0,G=(G=G+Math.imul(de,Jt)|0)+Math.imul(ye,Wt)|0,W=W+Math.imul(ye,Jt)|0,B=B+Math.imul(we,Ge)|0,G=(G=G+Math.imul(we,Tt)|0)+Math.imul(Te,Ge)|0,W=W+Math.imul(Te,Tt)|0,B=B+Math.imul(fe,Pe)|0,G=(G=G+Math.imul(fe,Ie)|0)+Math.imul(me,Pe)|0,W=W+Math.imul(me,Ie)|0,B=B+Math.imul(ue,De)|0,G=(G=G+Math.imul(ue,He)|0)+Math.imul(le,De)|0,W=W+Math.imul(le,He)|0,B=B+Math.imul(ee,lt)|0,G=(G=G+Math.imul(ee,ot)|0)+Math.imul(ie,lt)|0,W=W+Math.imul(ie,ot)|0,B=B+Math.imul(ne,wt)|0,G=(G=G+Math.imul(ne,Vt)|0)+Math.imul(H,wt)|0,W=W+Math.imul(H,Vt)|0;var Kt=(Z+(B=B+Math.imul(U,tt)|0)|0)+((8191&(G=(G=G+Math.imul(U,bt)|0)+Math.imul(q,tt)|0))<<13)|0;Z=((W=W+Math.imul(q,bt)|0)+(G>>>13)|0)+(Kt>>>26)|0,Kt&=67108863,B=Math.imul(Re,vt),G=(G=Math.imul(Re,Pt))+Math.imul(qe,vt)|0,W=Math.imul(qe,Pt),B=B+Math.imul(Fe,at)|0,G=(G=G+Math.imul(Fe,et)|0)+Math.imul(Ve,at)|0,W=W+Math.imul(Ve,et)|0,B=B+Math.imul(ke,Wt)|0,G=(G=G+Math.imul(ke,Jt)|0)+Math.imul(Ee,Wt)|0,W=W+Math.imul(Ee,Jt)|0,B=B+Math.imul(de,Ge)|0,G=(G=G+Math.imul(de,Tt)|0)+Math.imul(ye,Ge)|0,W=W+Math.imul(ye,Tt)|0,B=B+Math.imul(we,Pe)|0,G=(G=G+Math.imul(we,Ie)|0)+Math.imul(Te,Pe)|0,W=W+Math.imul(Te,Ie)|0,B=B+Math.imul(fe,De)|0,G=(G=G+Math.imul(fe,He)|0)+Math.imul(me,De)|0,W=W+Math.imul(me,He)|0,B=B+Math.imul(ue,lt)|0,G=(G=G+Math.imul(ue,ot)|0)+Math.imul(le,lt)|0,W=W+Math.imul(le,ot)|0,B=B+Math.imul(ee,wt)|0,G=(G=G+Math.imul(ee,Vt)|0)+Math.imul(ie,wt)|0,W=W+Math.imul(ie,Vt)|0;var Ht=(Z+(B=B+Math.imul(ne,tt)|0)|0)+((8191&(G=(G=G+Math.imul(ne,bt)|0)+Math.imul(H,tt)|0))<<13)|0;Z=((W=W+Math.imul(H,bt)|0)+(G>>>13)|0)+(Ht>>>26)|0,Ht&=67108863,B=Math.imul(Re,at),G=(G=Math.imul(Re,et))+Math.imul(qe,at)|0,W=Math.imul(qe,et),B=B+Math.imul(Fe,Wt)|0,G=(G=G+Math.imul(Fe,Jt)|0)+Math.imul(Ve,Wt)|0,W=W+Math.imul(Ve,Jt)|0,B=B+Math.imul(ke,Ge)|0,G=(G=G+Math.imul(ke,Tt)|0)+Math.imul(Ee,Ge)|0,W=W+Math.imul(Ee,Tt)|0,B=B+Math.imul(de,Pe)|0,G=(G=G+Math.imul(de,Ie)|0)+Math.imul(ye,Pe)|0,W=W+Math.imul(ye,Ie)|0,B=B+Math.imul(we,De)|0,G=(G=G+Math.imul(we,He)|0)+Math.imul(Te,De)|0,W=W+Math.imul(Te,He)|0,B=B+Math.imul(fe,lt)|0,G=(G=G+Math.imul(fe,ot)|0)+Math.imul(me,lt)|0,W=W+Math.imul(me,ot)|0,B=B+Math.imul(ue,wt)|0,G=(G=G+Math.imul(ue,Vt)|0)+Math.imul(le,wt)|0,W=W+Math.imul(le,Vt)|0;var mn=(Z+(B=B+Math.imul(ee,tt)|0)|0)+((8191&(G=(G=G+Math.imul(ee,bt)|0)+Math.imul(ie,tt)|0))<<13)|0;Z=((W=W+Math.imul(ie,bt)|0)+(G>>>13)|0)+(mn>>>26)|0,mn&=67108863,B=Math.imul(Re,Wt),G=(G=Math.imul(Re,Jt))+Math.imul(qe,Wt)|0,W=Math.imul(qe,Jt),B=B+Math.imul(Fe,Ge)|0,G=(G=G+Math.imul(Fe,Tt)|0)+Math.imul(Ve,Ge)|0,W=W+Math.imul(Ve,Tt)|0,B=B+Math.imul(ke,Pe)|0,G=(G=G+Math.imul(ke,Ie)|0)+Math.imul(Ee,Pe)|0,W=W+Math.imul(Ee,Ie)|0,B=B+Math.imul(de,De)|0,G=(G=G+Math.imul(de,He)|0)+Math.imul(ye,De)|0,W=W+Math.imul(ye,He)|0,B=B+Math.imul(we,lt)|0,G=(G=G+Math.imul(we,ot)|0)+Math.imul(Te,lt)|0,W=W+Math.imul(Te,ot)|0,B=B+Math.imul(fe,wt)|0,G=(G=G+Math.imul(fe,Vt)|0)+Math.imul(me,wt)|0,W=W+Math.imul(me,Vt)|0;var zn=(Z+(B=B+Math.imul(ue,tt)|0)|0)+((8191&(G=(G=G+Math.imul(ue,bt)|0)+Math.imul(le,tt)|0))<<13)|0;Z=((W=W+Math.imul(le,bt)|0)+(G>>>13)|0)+(zn>>>26)|0,zn&=67108863,B=Math.imul(Re,Ge),G=(G=Math.imul(Re,Tt))+Math.imul(qe,Ge)|0,W=Math.imul(qe,Tt),B=B+Math.imul(Fe,Pe)|0,G=(G=G+Math.imul(Fe,Ie)|0)+Math.imul(Ve,Pe)|0,W=W+Math.imul(Ve,Ie)|0,B=B+Math.imul(ke,De)|0,G=(G=G+Math.imul(ke,He)|0)+Math.imul(Ee,De)|0,W=W+Math.imul(Ee,He)|0,B=B+Math.imul(de,lt)|0,G=(G=G+Math.imul(de,ot)|0)+Math.imul(ye,lt)|0,W=W+Math.imul(ye,ot)|0,B=B+Math.imul(we,wt)|0,G=(G=G+Math.imul(we,Vt)|0)+Math.imul(Te,wt)|0,W=W+Math.imul(Te,Vt)|0;var pn=(Z+(B=B+Math.imul(fe,tt)|0)|0)+((8191&(G=(G=G+Math.imul(fe,bt)|0)+Math.imul(me,tt)|0))<<13)|0;Z=((W=W+Math.imul(me,bt)|0)+(G>>>13)|0)+(pn>>>26)|0,pn&=67108863,B=Math.imul(Re,Pe),G=(G=Math.imul(Re,Ie))+Math.imul(qe,Pe)|0,W=Math.imul(qe,Ie),B=B+Math.imul(Fe,De)|0,G=(G=G+Math.imul(Fe,He)|0)+Math.imul(Ve,De)|0,W=W+Math.imul(Ve,He)|0,B=B+Math.imul(ke,lt)|0,G=(G=G+Math.imul(ke,ot)|0)+Math.imul(Ee,lt)|0,W=W+Math.imul(Ee,ot)|0,B=B+Math.imul(de,wt)|0,G=(G=G+Math.imul(de,Vt)|0)+Math.imul(ye,wt)|0,W=W+Math.imul(ye,Vt)|0;var tn=(Z+(B=B+Math.imul(we,tt)|0)|0)+((8191&(G=(G=G+Math.imul(we,bt)|0)+Math.imul(Te,tt)|0))<<13)|0;Z=((W=W+Math.imul(Te,bt)|0)+(G>>>13)|0)+(tn>>>26)|0,tn&=67108863,B=Math.imul(Re,De),G=(G=Math.imul(Re,He))+Math.imul(qe,De)|0,W=Math.imul(qe,He),B=B+Math.imul(Fe,lt)|0,G=(G=G+Math.imul(Fe,ot)|0)+Math.imul(Ve,lt)|0,W=W+Math.imul(Ve,ot)|0,B=B+Math.imul(ke,wt)|0,G=(G=G+Math.imul(ke,Vt)|0)+Math.imul(Ee,wt)|0,W=W+Math.imul(Ee,Vt)|0;var nn=(Z+(B=B+Math.imul(de,tt)|0)|0)+((8191&(G=(G=G+Math.imul(de,bt)|0)+Math.imul(ye,tt)|0))<<13)|0;Z=((W=W+Math.imul(ye,bt)|0)+(G>>>13)|0)+(nn>>>26)|0,nn&=67108863,B=Math.imul(Re,lt),G=(G=Math.imul(Re,ot))+Math.imul(qe,lt)|0,W=Math.imul(qe,ot),B=B+Math.imul(Fe,wt)|0,G=(G=G+Math.imul(Fe,Vt)|0)+Math.imul(Ve,wt)|0,W=W+Math.imul(Ve,Vt)|0;var sn=(Z+(B=B+Math.imul(ke,tt)|0)|0)+((8191&(G=(G=G+Math.imul(ke,bt)|0)+Math.imul(Ee,tt)|0))<<13)|0;Z=((W=W+Math.imul(Ee,bt)|0)+(G>>>13)|0)+(sn>>>26)|0,sn&=67108863,B=Math.imul(Re,wt),G=(G=Math.imul(Re,Vt))+Math.imul(qe,wt)|0,W=Math.imul(qe,Vt);var gn=(Z+(B=B+Math.imul(Fe,tt)|0)|0)+((8191&(G=(G=G+Math.imul(Fe,bt)|0)+Math.imul(Ve,tt)|0))<<13)|0;Z=((W=W+Math.imul(Ve,bt)|0)+(G>>>13)|0)+(gn>>>26)|0,gn&=67108863;var bn=(Z+(B=Math.imul(Re,tt))|0)+((8191&(G=(G=Math.imul(Re,bt))+Math.imul(qe,tt)|0))<<13)|0;return Z=((W=Math.imul(qe,bt))+(G>>>13)|0)+(bn>>>26)|0,bn&=67108863,Y[0]=zt,Y[1]=St,Y[2]=Dt,Y[3]=Le,Y[4]=Je,Y[5]=st,Y[6]=Et,Y[7]=It,Y[8]=Zt,Y[9]=Kt,Y[10]=Ht,Y[11]=mn,Y[12]=zn,Y[13]=pn,Y[14]=tn,Y[15]=nn,Y[16]=sn,Y[17]=gn,Y[18]=bn,Z!==0&&(Y[19]=Z,N.length++),N};function T(L,P,N){return new _().mulp(L,P,N)}function _(L,P){this.x=L,this.y=P}Math.imul||(b=k),h.prototype.mulTo=function(L,P){var N=this.length+L.length;return this.length===10&&L.length===10?b(this,L,P):N<63?k(this,L,P):N<1024?function(B,G,W){W.negative=G.negative^B.negative,W.length=B.length+G.length;for(var K=0,te=0,Y=0;Y>>26)|0)>>>26,Z&=67108863}W.words[Y]=re,K=Z,Z=te}return K!==0?W.words[Y]=K:W.length--,W.strip()}(this,L,P):T(this,L,P)},_.prototype.makeRBT=function(L){for(var P=new Array(L),N=h.prototype._countBits(L)-1,B=0;B>=1;return B},_.prototype.permute=function(L,P,N,B,G,W){for(var K=0;K>>=1)G++;return 1<>>=13,N[2*W+1]=8191&G,G>>>=13;for(W=2*P;W>=26,P+=B/67108864|0,P+=G>>>26,this.words[N]=67108863&G}return P!==0&&(this.words[N]=P,this.length++),this},h.prototype.muln=function(L){return this.clone().imuln(L)},h.prototype.sqr=function(){return this.mul(this)},h.prototype.isqr=function(){return this.imul(this.clone())},h.prototype.pow=function(L){var P=function(W){for(var K=new Array(W.bitLength()),te=0;te>>Z}return K}(L);if(P.length===0)return new h(1);for(var N=this,B=0;B=0);var P,N=L%26,B=(L-N)/26,G=67108863>>>26-N<<26-N;if(N!==0){var W=0;for(P=0;P>>26-N}W&&(this.words[P]=W,this.length++)}if(B!==0){for(P=this.length-1;P>=0;P--)this.words[P+B]=this.words[P];for(P=0;P=0),B=P?(P-P%26)/26:0;var G=L%26,W=Math.min((L-G)/26,this.length),K=67108863^67108863>>>G<W)for(this.length-=W,Y=0;Y=0&&(Z!==0||Y>=B);Y--){var re=0|this.words[Y];this.words[Y]=Z<<26-G|re>>>G,Z=re&K}return te&&Z!==0&&(te.words[te.length++]=Z),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},h.prototype.ishrn=function(L,P,N){return l(this.negative===0),this.iushrn(L,P,N)},h.prototype.shln=function(L){return this.clone().ishln(L)},h.prototype.ushln=function(L){return this.clone().iushln(L)},h.prototype.shrn=function(L){return this.clone().ishrn(L)},h.prototype.ushrn=function(L){return this.clone().iushrn(L)},h.prototype.testn=function(L){l(typeof L=="number"&&L>=0);var P=L%26,N=(L-P)/26,B=1<=0);var P=L%26,N=(L-P)/26;if(l(this.negative===0,"imaskn works only with positive numbers"),this.length<=N)return this;if(P!==0&&N++,this.length=Math.min(N,this.length),P!==0){var B=67108863^67108863>>>P<=67108864;P++)this.words[P]-=67108864,P===this.length-1?this.words[P+1]=1:this.words[P+1]++;return this.length=Math.max(this.length,P+1),this},h.prototype.isubn=function(L){if(l(typeof L=="number"),l(L<67108864),L<0)return this.iaddn(-L);if(this.negative!==0)return this.negative=0,this.iaddn(L),this.negative=1,this;if(this.words[0]-=L,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var P=0;P>26)-(te/67108864|0),this.words[B+N]=67108863&G}for(;B>26,this.words[B+N]=67108863&G;if(K===0)return this.strip();for(l(K===-1),K=0,B=0;B>26,this.words[B]=67108863&G;return this.negative=1,this.strip()},h.prototype._wordDiv=function(L,P){var N=(this.length,L.length),B=this.clone(),G=L,W=0|G.words[G.length-1];(N=26-this._countBits(W))!==0&&(G=G.ushln(N),B.iushln(N),W=0|G.words[G.length-1]);var K,te=B.length-G.length;if(P!=="mod"){(K=new h(null)).length=te+1,K.words=new Array(K.length);for(var Y=0;Y=0;re--){var U=67108864*(0|B.words[G.length+re])+(0|B.words[G.length+re-1]);for(U=Math.min(U/W|0,67108863),B._ishlnsubmul(G,U,re);B.negative!==0;)U--,B.negative=0,B._ishlnsubmul(G,1,re),B.isZero()||(B.negative^=1);K&&(K.words[re]=U)}return K&&K.strip(),B.strip(),P!=="div"&&N!==0&&B.iushrn(N),{div:K||null,mod:B}},h.prototype.divmod=function(L,P,N){return l(!L.isZero()),this.isZero()?{div:new h(0),mod:new h(0)}:this.negative!==0&&L.negative===0?(W=this.neg().divmod(L,P),P!=="mod"&&(B=W.div.neg()),P!=="div"&&(G=W.mod.neg(),N&&G.negative!==0&&G.iadd(L)),{div:B,mod:G}):this.negative===0&&L.negative!==0?(W=this.divmod(L.neg(),P),P!=="mod"&&(B=W.div.neg()),{div:B,mod:W.mod}):(this.negative&L.negative)!=0?(W=this.neg().divmod(L.neg(),P),P!=="div"&&(G=W.mod.neg(),N&&G.negative!==0&&G.isub(L)),{div:W.div,mod:G}):L.length>this.length||this.cmp(L)<0?{div:new h(0),mod:this}:L.length===1?P==="div"?{div:this.divn(L.words[0]),mod:null}:P==="mod"?{div:null,mod:new h(this.modn(L.words[0]))}:{div:this.divn(L.words[0]),mod:new h(this.modn(L.words[0]))}:this._wordDiv(L,P);var B,G,W},h.prototype.div=function(L){return this.divmod(L,"div",!1).div},h.prototype.mod=function(L){return this.divmod(L,"mod",!1).mod},h.prototype.umod=function(L){return this.divmod(L,"mod",!0).mod},h.prototype.divRound=function(L){var P=this.divmod(L);if(P.mod.isZero())return P.div;var N=P.div.negative!==0?P.mod.isub(L):P.mod,B=L.ushrn(1),G=L.andln(1),W=N.cmp(B);return W<0||G===1&&W===0?P.div:P.div.negative!==0?P.div.isubn(1):P.div.iaddn(1)},h.prototype.modn=function(L){l(L<=67108863);for(var P=(1<<26)%L,N=0,B=this.length-1;B>=0;B--)N=(P*N+(0|this.words[B]))%L;return N},h.prototype.idivn=function(L){l(L<=67108863);for(var P=0,N=this.length-1;N>=0;N--){var B=(0|this.words[N])+67108864*P;this.words[N]=B/L|0,P=B%L}return this.strip()},h.prototype.divn=function(L){return this.clone().idivn(L)},h.prototype.egcd=function(L){l(L.negative===0),l(!L.isZero());var P=this,N=L.clone();P=P.negative!==0?P.umod(L):P.clone();for(var B=new h(1),G=new h(0),W=new h(0),K=new h(1),te=0;P.isEven()&&N.isEven();)P.iushrn(1),N.iushrn(1),++te;for(var Y=N.clone(),Z=P.clone();!P.isZero();){for(var re=0,U=1;(P.words[0]&U)==0&&re<26;++re,U<<=1);if(re>0)for(P.iushrn(re);re-- >0;)(B.isOdd()||G.isOdd())&&(B.iadd(Y),G.isub(Z)),B.iushrn(1),G.iushrn(1);for(var q=0,$=1;(N.words[0]&$)==0&&q<26;++q,$<<=1);if(q>0)for(N.iushrn(q);q-- >0;)(W.isOdd()||K.isOdd())&&(W.iadd(Y),K.isub(Z)),W.iushrn(1),K.iushrn(1);P.cmp(N)>=0?(P.isub(N),B.isub(W),G.isub(K)):(N.isub(P),W.isub(B),K.isub(G))}return{a:W,b:K,gcd:N.iushln(te)}},h.prototype._invmp=function(L){l(L.negative===0),l(!L.isZero());var P=this,N=L.clone();P=P.negative!==0?P.umod(L):P.clone();for(var B,G=new h(1),W=new h(0),K=N.clone();P.cmpn(1)>0&&N.cmpn(1)>0;){for(var te=0,Y=1;(P.words[0]&Y)==0&&te<26;++te,Y<<=1);if(te>0)for(P.iushrn(te);te-- >0;)G.isOdd()&&G.iadd(K),G.iushrn(1);for(var Z=0,re=1;(N.words[0]&re)==0&&Z<26;++Z,re<<=1);if(Z>0)for(N.iushrn(Z);Z-- >0;)W.isOdd()&&W.iadd(K),W.iushrn(1);P.cmp(N)>=0?(P.isub(N),G.isub(W)):(N.isub(P),W.isub(G))}return(B=P.cmpn(1)===0?G:W).cmpn(0)<0&&B.iadd(L),B},h.prototype.gcd=function(L){if(this.isZero())return L.abs();if(L.isZero())return this.abs();var P=this.clone(),N=L.clone();P.negative=0,N.negative=0;for(var B=0;P.isEven()&&N.isEven();B++)P.iushrn(1),N.iushrn(1);for(;;){for(;P.isEven();)P.iushrn(1);for(;N.isEven();)N.iushrn(1);var G=P.cmp(N);if(G<0){var W=P;P=N,N=W}else if(G===0||N.cmpn(1)===0)break;P.isub(N)}return N.iushln(B)},h.prototype.invm=function(L){return this.egcd(L).a.umod(L)},h.prototype.isEven=function(){return(1&this.words[0])==0},h.prototype.isOdd=function(){return(1&this.words[0])==1},h.prototype.andln=function(L){return this.words[0]&L},h.prototype.bincn=function(L){l(typeof L=="number");var P=L%26,N=(L-P)/26,B=1<>>26,K&=67108863,this.words[W]=K}return G!==0&&(this.words[W]=G,this.length++),this},h.prototype.isZero=function(){return this.length===1&&this.words[0]===0},h.prototype.cmpn=function(L){var P,N=L<0;if(this.negative!==0&&!N)return-1;if(this.negative===0&&N)return 1;if(this.strip(),this.length>1)P=1;else{N&&(L=-L),l(L<=67108863,"Number is too big");var B=0|this.words[0];P=B===L?0:BL.length)return 1;if(this.length=0;N--){var B=0|this.words[N],G=0|L.words[N];if(B!==G){BG&&(P=1);break}}return P},h.prototype.gtn=function(L){return this.cmpn(L)===1},h.prototype.gt=function(L){return this.cmp(L)===1},h.prototype.gten=function(L){return this.cmpn(L)>=0},h.prototype.gte=function(L){return this.cmp(L)>=0},h.prototype.ltn=function(L){return this.cmpn(L)===-1},h.prototype.lt=function(L){return this.cmp(L)===-1},h.prototype.lten=function(L){return this.cmpn(L)<=0},h.prototype.lte=function(L){return this.cmp(L)<=0},h.prototype.eqn=function(L){return this.cmpn(L)===0},h.prototype.eq=function(L){return this.cmp(L)===0},h.red=function(L){return new R(L)},h.prototype.toRed=function(L){return l(!this.red,"Already a number in reduction context"),l(this.negative===0,"red works only with positives"),L.convertTo(this)._forceRed(L)},h.prototype.fromRed=function(){return l(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},h.prototype._forceRed=function(L){return this.red=L,this},h.prototype.forceRed=function(L){return l(!this.red,"Already a number in reduction context"),this._forceRed(L)},h.prototype.redAdd=function(L){return l(this.red,"redAdd works only with red numbers"),this.red.add(this,L)},h.prototype.redIAdd=function(L){return l(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,L)},h.prototype.redSub=function(L){return l(this.red,"redSub works only with red numbers"),this.red.sub(this,L)},h.prototype.redISub=function(L){return l(this.red,"redISub works only with red numbers"),this.red.isub(this,L)},h.prototype.redShl=function(L){return l(this.red,"redShl works only with red numbers"),this.red.shl(this,L)},h.prototype.redMul=function(L){return l(this.red,"redMul works only with red numbers"),this.red._verify2(this,L),this.red.mul(this,L)},h.prototype.redIMul=function(L){return l(this.red,"redMul works only with red numbers"),this.red._verify2(this,L),this.red.imul(this,L)},h.prototype.redSqr=function(){return l(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},h.prototype.redISqr=function(){return l(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},h.prototype.redSqrt=function(){return l(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},h.prototype.redInvm=function(){return l(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},h.prototype.redNeg=function(){return l(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},h.prototype.redPow=function(L){return l(this.red&&!L.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,L)};var M={k256:null,p224:null,p192:null,p25519:null};function A(L,P){this.name=L,this.p=new h(P,16),this.n=this.p.bitLength(),this.k=new h(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function S(){A.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function E(){A.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function D(){A.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function O(){A.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function R(L){if(typeof L=="string"){var P=h._prime(L);this.m=P.p,this.prime=P}else l(L.gtn(1),"modulus must be greater than 1"),this.m=L,this.prime=null}function z(L){R.call(this,L),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new h(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}A.prototype._tmp=function(){var L=new h(null);return L.words=new Array(Math.ceil(this.n/13)),L},A.prototype.ireduce=function(L){var P,N=L;do this.split(N,this.tmp),P=(N=(N=this.imulK(N)).iadd(this.tmp)).bitLength();while(P>this.n);var B=P0?N.isub(this.p):N.strip!==void 0?N.strip():N._strip(),N},A.prototype.split=function(L,P){L.iushrn(this.n,0,P)},A.prototype.imulK=function(L){return L.imul(this.k)},d(S,A),S.prototype.split=function(L,P){for(var N=Math.min(L.length,9),B=0;B>>22,G=W}G>>>=22,L.words[B-10]=G,G===0&&L.length>10?L.length-=10:L.length-=9},S.prototype.imulK=function(L){L.words[L.length]=0,L.words[L.length+1]=0,L.length+=2;for(var P=0,N=0;N>>=26,L.words[N]=G,P=B}return P!==0&&(L.words[L.length++]=P),L},h._prime=function(L){if(M[L])return M[L];var P;if(L==="k256")P=new S;else if(L==="p224")P=new E;else if(L==="p192")P=new D;else{if(L!=="p25519")throw new Error("Unknown prime "+L);P=new O}return M[L]=P,P},R.prototype._verify1=function(L){l(L.negative===0,"red works only with positives"),l(L.red,"red works only with red numbers")},R.prototype._verify2=function(L,P){l((L.negative|P.negative)==0,"red works only with positives"),l(L.red&&L.red===P.red,"red works only with red numbers")},R.prototype.imod=function(L){return this.prime?this.prime.ireduce(L)._forceRed(this):L.umod(this.m)._forceRed(this)},R.prototype.neg=function(L){return L.isZero()?L.clone():this.m.sub(L)._forceRed(this)},R.prototype.add=function(L,P){this._verify2(L,P);var N=L.add(P);return N.cmp(this.m)>=0&&N.isub(this.m),N._forceRed(this)},R.prototype.iadd=function(L,P){this._verify2(L,P);var N=L.iadd(P);return N.cmp(this.m)>=0&&N.isub(this.m),N},R.prototype.sub=function(L,P){this._verify2(L,P);var N=L.sub(P);return N.cmpn(0)<0&&N.iadd(this.m),N._forceRed(this)},R.prototype.isub=function(L,P){this._verify2(L,P);var N=L.isub(P);return N.cmpn(0)<0&&N.iadd(this.m),N},R.prototype.shl=function(L,P){return this._verify1(L),this.imod(L.ushln(P))},R.prototype.imul=function(L,P){return this._verify2(L,P),this.imod(L.imul(P))},R.prototype.mul=function(L,P){return this._verify2(L,P),this.imod(L.mul(P))},R.prototype.isqr=function(L){return this.imul(L,L.clone())},R.prototype.sqr=function(L){return this.mul(L,L)},R.prototype.sqrt=function(L){if(L.isZero())return L.clone();var P=this.m.andln(3);if(l(P%2==1),P===3){var N=this.m.add(new h(1)).iushrn(2);return this.pow(L,N)}for(var B=this.m.subn(1),G=0;!B.isZero()&&B.andln(1)===0;)G++,B.iushrn(1);l(!B.isZero());var W=new h(1).toRed(this),K=W.redNeg(),te=this.m.subn(1).iushrn(1),Y=this.m.bitLength();for(Y=new h(2*Y*Y).toRed(this);this.pow(Y,te).cmp(K)!==0;)Y.redIAdd(K);for(var Z=this.pow(Y,B),re=this.pow(L,B.addn(1).iushrn(1)),U=this.pow(L,B),q=G;U.cmp(W)!==0;){for(var $=U,ne=0;$.cmp(W)!==0;ne++)$=$.redSqr();l(ne=0;B--){for(var Y=P.words[B],Z=te-1;Z>=0;Z--){var re=Y>>Z&1;G!==N[0]&&(G=this.sqr(G)),re!==0||W!==0?(W<<=1,W|=re,(++K===4||B===0&&Z===0)&&(G=this.mul(G,N[W]),K=0,W=0)):K=0}te=26}return G},R.prototype.convertTo=function(L){var P=L.umod(this.m);return P===L?P.clone():P},R.prototype.convertFrom=function(L){var P=L.clone();return P.red=null,P},h.mont=function(L){return new z(L)},d(z,R),z.prototype.convertTo=function(L){return this.imod(L.ushln(this.shift))},z.prototype.convertFrom=function(L){var P=this.imod(L.mul(this.rinv));return P.red=null,P},z.prototype.imul=function(L,P){if(L.isZero()||P.isZero())return L.words[0]=0,L.length=1,L;var N=L.imul(P),B=N.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),G=N.isub(B).iushrn(this.shift),W=G;return G.cmp(this.m)>=0?W=G.isub(this.m):G.cmpn(0)<0&&(W=G.iadd(this.m)),W._forceRed(this)},z.prototype.mul=function(L,P){if(L.isZero()||P.isZero())return new h(0)._forceRed(this);var N=L.mul(P),B=N.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),G=N.isub(B).iushrn(this.shift),W=G;return G.cmp(this.m)>=0?W=G.isub(this.m):G.cmpn(0)<0&&(W=G.iadd(this.m)),W._forceRed(this)},z.prototype.invm=function(L){return this.imod(L._invmp(this.m).mul(this.r2))._forceRed(this)}})(u===void 0||u,this)},{buffer:2}],34:[function(a,u,c){u.exports=function(i){var s,l,d,h=i.length,m=0;for(s=0;s>>1;if(!(M<=0)){var A,S=s.mallocDouble(2*M*T),E=s.mallocInt32(T);if((T=m(x,M,S,E))>0){if(M===1&&b)l.init(T),A=l.sweepComplete(M,k,0,T,S,E,0,T,S,E);else{var D=s.mallocDouble(2*M*_),O=s.mallocInt32(_);(_=m(w,M,D,O))>0&&(l.init(T+_),A=M===1?l.sweepBipartite(M,k,0,T,S,E,0,_,D,O):d(M,k,b,T,S,E,_,D,O),s.free(D),s.free(O))}s.free(S),s.free(E)}return A}}}function p(x,w){i.push([x,w])}function v(x){return i=[],g(x,x,p,!0),i}function y(x,w){return i=[],g(x,w,p,!1),i}},{"./lib/intersect":37,"./lib/sweep":41,"typedarray-pool":308}],36:[function(a,u,c){function i(s){return s?function(l,d,h,m,g,p,v,y,x,w,k){return g-m>x-y?function(b,T,_,M,A,S,E,D,O,R,z){for(var L=2*b,P=M,N=L*M;Pw-x?m?function(T,_,M,A,S,E,D,O,R,z,L){for(var P=2*T,N=A,B=P*A;N0;){var te=6*(W-=1),Y=T[te],Z=T[te+1],re=T[te+2],U=T[te+3],q=T[te+4],$=T[te+5],ne=2*W,H=_[ne],Q=_[ne+1],ee=1&$,ie=!!(16&$),ae=z,ue=L,le=N,ge=B;if(ee&&(ae=N,ue=B,le=z,ge=L),!(2&$&&(re=x(E,Y,Z,re,ae,ue,Q),Z>=re)||4&$&&(Z=w(E,Y,Z,re,ae,ue,H))>=re)){var fe=re-Z,me=q-U;if(ie){if(E*fe*(fe+me)<1<<22){if((G=m.scanComplete(E,Y,D,Z,re,ae,ue,U,q,le,ge))!==void 0)return G;continue}}else{if(E*Math.min(fe,me)<128){if((G=d(E,Y,D,ee,Z,re,ae,ue,U,q,le,ge))!==void 0)return G;continue}if(E*fe*me<1<<22){if((G=m.scanBipartite(E,Y,D,ee,Z,re,ae,ue,U,q,le,ge))!==void 0)return G;continue}}var _e=v(E,Y,Z,re,ae,ue,H,Q);if(Z<_e)if(E*(_e-Z)<128){if((G=h(E,Y+1,D,Z,_e,ae,ue,U,q,le,ge))!==void 0)return G}else if(Y===E-2){if((G=ee?m.sweepBipartite(E,D,U,q,le,ge,Z,_e,ae,ue):m.sweepBipartite(E,D,Z,_e,ae,ue,U,q,le,ge))!==void 0)return G}else M(W++,Y+1,Z,_e,U,q,ee,-1/0,1/0),M(W++,Y+1,U,q,Z,_e,1^ee,-1/0,1/0);if(_e=p0)&&!(p1>=hi)"),y=p("lo===p0"),x=p("lo>>1,w=2*l,k=x,b=g[w*x+d];v=S?(k=A,b=S):M>=D?(k=_,b=M):(k=E,b=D):S>=D?(k=A,b=S):D>=M?(k=_,b=M):(k=E,b=D);for(var O=w*(y-1),R=w*k,z=0;zh&&g[b+d]>w;--k,b-=v){for(var T=b,_=b+v,M=0;Mb;++b,y+=v)if(m[y+k]===p)if(w===b)w+=1,x+=v;else{for(var T=0;v>T;++T){var _=m[y+T];m[y+T]=m[x],m[x++]=_}var M=g[b];g[b]=g[w],g[w++]=M}return w},"lob;++b,y+=v)if(m[y+k]T;++T){var _=m[y+T];m[y+T]=m[x],m[x++]=_}var M=g[b];g[b]=g[w],g[w++]=M}return w},"lo<=p0":function(s,l,d,h,m,g,p){for(var v=2*s,y=v*d,x=y,w=d,k=s+l,b=d;h>b;++b,y+=v)if(m[y+k]<=p)if(w===b)w+=1,x+=v;else{for(var T=0;v>T;++T){var _=m[y+T];m[y+T]=m[x],m[x++]=_}var M=g[b];g[b]=g[w],g[w++]=M}return w},"hi<=p0":function(s,l,d,h,m,g,p){for(var v=2*s,y=v*d,x=y,w=d,k=s+l,b=d;h>b;++b,y+=v)if(m[y+k]<=p)if(w===b)w+=1,x+=v;else{for(var T=0;v>T;++T){var _=m[y+T];m[y+T]=m[x],m[x++]=_}var M=g[b];g[b]=g[w],g[w++]=M}return w},"loT;++T,y+=v){var _=m[y+k],M=m[y+b];if(_A;++A){var S=m[y+A];m[y+A]=m[x],m[x++]=S}var E=g[T];g[T]=g[w],g[w++]=E}}return w},"lo<=p0&&p0<=hi":function(s,l,d,h,m,g,p){for(var v=2*s,y=v*d,x=y,w=d,k=l,b=s+l,T=d;h>T;++T,y+=v){var _=m[y+k],M=m[y+b];if(_<=p&&p<=M)if(w===T)w+=1,x+=v;else{for(var A=0;v>A;++A){var S=m[y+A];m[y+A]=m[x],m[x++]=S}var E=g[T];g[T]=g[w],g[w++]=E}}return w},"!(lo>=p0)&&!(p1>=hi)":function(s,l,d,h,m,g,p,v){for(var y=2*s,x=y*d,w=x,k=d,b=l,T=s+l,_=d;h>_;++_,x+=y){var M=m[x+b],A=m[x+T];if(!(M>=p||v>=A))if(k===_)k+=1,w+=y;else{for(var S=0;y>S;++S){var E=m[x+S];m[x+S]=m[w],m[w++]=E}var D=g[_];g[_]=g[k],g[k++]=D}}return k}}},{}],40:[function(a,u,c){u.exports=function(p,v){v<=128?i(0,v-1,p):function y(x,w,k){var b=(w-x+1)/6|0,T=x+b,_=w-b,M=x+w>>1,A=M-b,S=M+b,E=T,D=A,O=M,R=S,z=_,L=x+1,P=w-1,N=0;m(E,D,k)&&(N=E,E=D,D=N),m(R,z,k)&&(N=R,R=z,z=N),m(E,O,k)&&(N=E,E=O,O=N),m(D,O,k)&&(N=D,D=O,O=N),m(E,R,k)&&(N=E,E=R,R=N),m(O,R,k)&&(N=O,O=R,R=N),m(D,z,k)&&(N=D,D=z,z=N),m(D,O,k)&&(N=D,D=O,O=N),m(R,z,k)&&(N=R,R=z,z=N);for(var B=k[2*D],G=k[2*D+1],W=k[2*R],K=k[2*R+1],te=2*E,Y=2*O,Z=2*z,re=2*T,U=2*M,q=2*_,$=0;$<2;++$){var ne=k[te+$],H=k[Y+$],Q=k[Z+$];k[re+$]=ne,k[U+$]=H,k[q+$]=Q}l(A,x,k),l(S,w,k);for(var ee=L;ee<=P;++ee)if(g(ee,B,G,k))ee!==L&&s(ee,L,k),++L;else if(!g(ee,W,K,k))for(;;){if(g(P,W,K,k)){g(P,B,G,k)?(d(ee,L,P,k),++L,--P):(s(ee,P,k),--P);break}if(--Pp;){var M=y[_-2],A=y[_-1];if(My[v+1])}function g(p,v,y,x){var w=x[p*=2];return w>>1;l(y,K);var te=0,Y=0;for(N=0;N=1<<28)x(m,g,Y--,Z=Z-(1<<28)|0);else if(Z>=0)x(d,h,te--,Z);else if(Z<=-(1<<28)){Z=-Z-(1<<28)|0;for(var re=0;re>>1;l(y,K);var te=0,Y=0,Z=0;for(N=0;N>1==y[2*N+3]>>1&&(U=2,N+=1),re<0){for(var q=-(re>>1)-1,$=0;$>1)-1,U===0?x(d,h,te--,q):U===1?x(m,g,Y--,q):U===2&&x(p,v,Z--,q)}},scanBipartite:function(k,b,T,_,M,A,S,E,D,O,R,z){var L=0,P=2*k,N=b,B=b+k,G=1,W=1;_?W=1<<28:G=1<<28;for(var K=M;K>>1;l(y,re);var U=0;for(K=0;K=1<<28?($=!_,te-=1<<28):($=!!_,te-=1),$)w(d,h,U++,te);else{var ne=z[te],H=P*te,Q=R[H+b+1],ee=R[H+b+1+k];e:for(var ie=0;ie>>1;l(y,te);var Y=0;for(B=0;B=1<<28)d[Y++]=G-(1<<28);else{var re=R[G-=1],U=L*G,q=O[U+b+1],$=O[U+b+1+k];e:for(var ne=0;ne=0;--ne)if(d[ne]===G){for(ie=ne+1;ie0;){for(var b=h.pop(),T=(p=h.pop(),x=-1,w=-1,v=g[p],1);T=0||(d.flip(p,b),s(l,d,h,x,p,w),s(l,d,h,p,w,x),s(l,d,h,w,b,x),s(l,d,h,b,x,w))}}},{"binary-search-bounds":31,"robust-in-sphere":282}],44:[function(a,u,c){var i,s=a("binary-search-bounds");function l(h,m,g,p,v,y,x){this.cells=h,this.neighbor=m,this.flags=p,this.constraint=g,this.active=v,this.next=y,this.boundary=x}function d(h,m){return h[0]-m[0]||h[1]-m[1]||h[2]-m[2]}u.exports=function(h,m,g){var p=function(D,O){for(var R=D.cells(),z=R.length,L=0;L0||x.length>0;){for(;y.length>0;){var _=y.pop();if(w[_]!==-v){w[_]=v,k[_];for(var M=0;M<3;++M){var A=T[3*_+M];A>=0&&w[A]===0&&(b[3*_+M]?x.push(A):(y.push(A),w[A]=v))}}}var S=x;x=y,y=S,x.length=0,v=-v}var E=function(D,O,R){for(var z=0,L=0;L1&&s(k[E[D-2]],k[E[D-1]],b)>0;)x.push([E[D-1],E[D-2],T]),D-=1;E.length=D,E.push(T);var O=S.upperIds;for(D=O.length;D>1&&s(k[O[D-2]],k[O[D-1]],b)<0;)x.push([O[D-2],O[D-1],T]),D-=1;O.length=D,O.push(T)}}function p(x,w){var k;return(k=x.a[0]S[0]&&T.push(new d(S,A,2,_),new d(A,S,1,_))}T.sort(h);for(var E=T[0].a[0]-(1+Math.abs(T[0].a[0]))*Math.pow(2,-52),D=[new l([E,1],[E,0],-1,[],[],[],[])],O=[],R=(_=0,T.length);_=0}}(),l.removeTriangle=function(h,m,g){var p=this.stars;d(p[h],m,g),d(p[m],g,h),d(p[g],h,m)},l.addTriangle=function(h,m,g){var p=this.stars;p[h].push(m,g),p[m].push(g,h),p[g].push(h,m)},l.opposite=function(h,m){for(var g=this.stars[m],p=1,v=g.length;pA[2]?1:0)}function T(M,A,S){if(M.length!==0){if(A)for(var E=0;E=0;--W){var ne=P[K=(ge=B[W])[0]],H=ne[0],Q=ne[1],ee=L[H],ie=L[Q];if((ee[0]-ie[0]||ee[1]-ie[1])<0){var ae=H;H=Q,Q=ae}ne[0]=H;var ue,le=ne[1]=ge[1];for(G&&(ue=ne[2]);W>0&&B[W-1][0]===K;){var ge,fe=(ge=B[--W])[1];G?P.push([le,fe,ue]):P.push([le,fe]),le=fe}G?P.push([le,Q,ue]):P.push([le,Q])}return te}(M,A,D,R,S));return T(A,z,S),!!z||D.length>0||R.length>0}},{"./lib/rat-seg-intersect":51,"big-rat":18,"big-rat/cmp":16,"big-rat/to-float":30,"box-intersect":35,nextafter:260,"rat-vec":273,"robust-segment-intersect":287,"union-find":309}],51:[function(a,u,c){u.exports=function(v,y,x,w){var k=h(y,v),b=h(w,x),T=p(k,b);if(d(T)===0)return null;var _=h(v,x),M=p(b,_),A=s(M,T),S=g(k,A);return m(v,S)};var i=a("big-rat/mul"),s=a("big-rat/div"),l=a("big-rat/sub"),d=a("big-rat/sign"),h=a("rat-vec/sub"),m=a("rat-vec/add"),g=a("rat-vec/muls");function p(v,y){return l(i(v[0],y[1]),i(v[1],y[0]))}},{"big-rat/div":17,"big-rat/mul":27,"big-rat/sign":28,"big-rat/sub":29,"rat-vec/add":272,"rat-vec/muls":274,"rat-vec/sub":275}],52:[function(a,u,c){u.exports={jet:[{index:0,rgb:[0,0,131]},{index:.125,rgb:[0,60,170]},{index:.375,rgb:[5,255,255]},{index:.625,rgb:[255,255,0]},{index:.875,rgb:[250,0,0]},{index:1,rgb:[128,0,0]}],hsv:[{index:0,rgb:[255,0,0]},{index:.169,rgb:[253,255,2]},{index:.173,rgb:[247,255,2]},{index:.337,rgb:[0,252,4]},{index:.341,rgb:[0,252,10]},{index:.506,rgb:[1,249,255]},{index:.671,rgb:[2,0,253]},{index:.675,rgb:[8,0,253]},{index:.839,rgb:[255,0,251]},{index:.843,rgb:[255,0,245]},{index:1,rgb:[255,0,6]}],hot:[{index:0,rgb:[0,0,0]},{index:.3,rgb:[230,0,0]},{index:.6,rgb:[255,210,0]},{index:1,rgb:[255,255,255]}],spring:[{index:0,rgb:[255,0,255]},{index:1,rgb:[255,255,0]}],summer:[{index:0,rgb:[0,128,102]},{index:1,rgb:[255,255,102]}],autumn:[{index:0,rgb:[255,0,0]},{index:1,rgb:[255,255,0]}],winter:[{index:0,rgb:[0,0,255]},{index:1,rgb:[0,255,128]}],bone:[{index:0,rgb:[0,0,0]},{index:.376,rgb:[84,84,116]},{index:.753,rgb:[169,200,200]},{index:1,rgb:[255,255,255]}],copper:[{index:0,rgb:[0,0,0]},{index:.804,rgb:[255,160,102]},{index:1,rgb:[255,199,127]}],greys:[{index:0,rgb:[0,0,0]},{index:1,rgb:[255,255,255]}],yignbu:[{index:0,rgb:[8,29,88]},{index:.125,rgb:[37,52,148]},{index:.25,rgb:[34,94,168]},{index:.375,rgb:[29,145,192]},{index:.5,rgb:[65,182,196]},{index:.625,rgb:[127,205,187]},{index:.75,rgb:[199,233,180]},{index:.875,rgb:[237,248,217]},{index:1,rgb:[255,255,217]}],greens:[{index:0,rgb:[0,68,27]},{index:.125,rgb:[0,109,44]},{index:.25,rgb:[35,139,69]},{index:.375,rgb:[65,171,93]},{index:.5,rgb:[116,196,118]},{index:.625,rgb:[161,217,155]},{index:.75,rgb:[199,233,192]},{index:.875,rgb:[229,245,224]},{index:1,rgb:[247,252,245]}],yiorrd:[{index:0,rgb:[128,0,38]},{index:.125,rgb:[189,0,38]},{index:.25,rgb:[227,26,28]},{index:.375,rgb:[252,78,42]},{index:.5,rgb:[253,141,60]},{index:.625,rgb:[254,178,76]},{index:.75,rgb:[254,217,118]},{index:.875,rgb:[255,237,160]},{index:1,rgb:[255,255,204]}],bluered:[{index:0,rgb:[0,0,255]},{index:1,rgb:[255,0,0]}],rdbu:[{index:0,rgb:[5,10,172]},{index:.35,rgb:[106,137,247]},{index:.5,rgb:[190,190,190]},{index:.6,rgb:[220,170,132]},{index:.7,rgb:[230,145,90]},{index:1,rgb:[178,10,28]}],picnic:[{index:0,rgb:[0,0,255]},{index:.1,rgb:[51,153,255]},{index:.2,rgb:[102,204,255]},{index:.3,rgb:[153,204,255]},{index:.4,rgb:[204,204,255]},{index:.5,rgb:[255,255,255]},{index:.6,rgb:[255,204,255]},{index:.7,rgb:[255,153,255]},{index:.8,rgb:[255,102,204]},{index:.9,rgb:[255,102,102]},{index:1,rgb:[255,0,0]}],rainbow:[{index:0,rgb:[150,0,90]},{index:.125,rgb:[0,0,200]},{index:.25,rgb:[0,25,255]},{index:.375,rgb:[0,152,255]},{index:.5,rgb:[44,255,150]},{index:.625,rgb:[151,255,0]},{index:.75,rgb:[255,234,0]},{index:.875,rgb:[255,111,0]},{index:1,rgb:[255,0,0]}],portland:[{index:0,rgb:[12,51,131]},{index:.25,rgb:[10,136,186]},{index:.5,rgb:[242,211,56]},{index:.75,rgb:[242,143,56]},{index:1,rgb:[217,30,30]}],blackbody:[{index:0,rgb:[0,0,0]},{index:.2,rgb:[230,0,0]},{index:.4,rgb:[230,210,0]},{index:.7,rgb:[255,255,255]},{index:1,rgb:[160,200,255]}],earth:[{index:0,rgb:[0,0,130]},{index:.1,rgb:[0,180,180]},{index:.2,rgb:[40,210,40]},{index:.4,rgb:[230,230,50]},{index:.6,rgb:[120,70,20]},{index:1,rgb:[255,255,255]}],electric:[{index:0,rgb:[0,0,0]},{index:.15,rgb:[30,0,100]},{index:.4,rgb:[120,0,100]},{index:.6,rgb:[160,90,0]},{index:.8,rgb:[230,200,0]},{index:1,rgb:[255,250,220]}],alpha:[{index:0,rgb:[255,255,255,0]},{index:1,rgb:[255,255,255,1]}],viridis:[{index:0,rgb:[68,1,84]},{index:.13,rgb:[71,44,122]},{index:.25,rgb:[59,81,139]},{index:.38,rgb:[44,113,142]},{index:.5,rgb:[33,144,141]},{index:.63,rgb:[39,173,129]},{index:.75,rgb:[92,200,99]},{index:.88,rgb:[170,220,50]},{index:1,rgb:[253,231,37]}],inferno:[{index:0,rgb:[0,0,4]},{index:.13,rgb:[31,12,72]},{index:.25,rgb:[85,15,109]},{index:.38,rgb:[136,34,106]},{index:.5,rgb:[186,54,85]},{index:.63,rgb:[227,89,51]},{index:.75,rgb:[249,140,10]},{index:.88,rgb:[249,201,50]},{index:1,rgb:[252,255,164]}],magma:[{index:0,rgb:[0,0,4]},{index:.13,rgb:[28,16,68]},{index:.25,rgb:[79,18,123]},{index:.38,rgb:[129,37,129]},{index:.5,rgb:[181,54,122]},{index:.63,rgb:[229,80,100]},{index:.75,rgb:[251,135,97]},{index:.88,rgb:[254,194,135]},{index:1,rgb:[252,253,191]}],plasma:[{index:0,rgb:[13,8,135]},{index:.13,rgb:[75,3,161]},{index:.25,rgb:[125,3,168]},{index:.38,rgb:[168,34,150]},{index:.5,rgb:[203,70,121]},{index:.63,rgb:[229,107,93]},{index:.75,rgb:[248,148,65]},{index:.88,rgb:[253,195,40]},{index:1,rgb:[240,249,33]}],warm:[{index:0,rgb:[125,0,179]},{index:.13,rgb:[172,0,187]},{index:.25,rgb:[219,0,170]},{index:.38,rgb:[255,0,130]},{index:.5,rgb:[255,63,74]},{index:.63,rgb:[255,123,0]},{index:.75,rgb:[234,176,0]},{index:.88,rgb:[190,228,0]},{index:1,rgb:[147,255,0]}],cool:[{index:0,rgb:[125,0,179]},{index:.13,rgb:[116,0,218]},{index:.25,rgb:[98,74,237]},{index:.38,rgb:[68,146,231]},{index:.5,rgb:[0,204,197]},{index:.63,rgb:[0,247,146]},{index:.75,rgb:[0,255,88]},{index:.88,rgb:[40,255,8]},{index:1,rgb:[147,255,0]}],"rainbow-soft":[{index:0,rgb:[125,0,179]},{index:.1,rgb:[199,0,180]},{index:.2,rgb:[255,0,121]},{index:.3,rgb:[255,108,0]},{index:.4,rgb:[222,194,0]},{index:.5,rgb:[150,255,0]},{index:.6,rgb:[0,255,55]},{index:.7,rgb:[0,246,150]},{index:.8,rgb:[50,167,222]},{index:.9,rgb:[103,51,235]},{index:1,rgb:[124,0,186]}],bathymetry:[{index:0,rgb:[40,26,44]},{index:.13,rgb:[59,49,90]},{index:.25,rgb:[64,76,139]},{index:.38,rgb:[63,110,151]},{index:.5,rgb:[72,142,158]},{index:.63,rgb:[85,174,163]},{index:.75,rgb:[120,206,163]},{index:.88,rgb:[187,230,172]},{index:1,rgb:[253,254,204]}],cdom:[{index:0,rgb:[47,15,62]},{index:.13,rgb:[87,23,86]},{index:.25,rgb:[130,28,99]},{index:.38,rgb:[171,41,96]},{index:.5,rgb:[206,67,86]},{index:.63,rgb:[230,106,84]},{index:.75,rgb:[242,149,103]},{index:.88,rgb:[249,193,135]},{index:1,rgb:[254,237,176]}],chlorophyll:[{index:0,rgb:[18,36,20]},{index:.13,rgb:[25,63,41]},{index:.25,rgb:[24,91,59]},{index:.38,rgb:[13,119,72]},{index:.5,rgb:[18,148,80]},{index:.63,rgb:[80,173,89]},{index:.75,rgb:[132,196,122]},{index:.88,rgb:[175,221,162]},{index:1,rgb:[215,249,208]}],density:[{index:0,rgb:[54,14,36]},{index:.13,rgb:[89,23,80]},{index:.25,rgb:[110,45,132]},{index:.38,rgb:[120,77,178]},{index:.5,rgb:[120,113,213]},{index:.63,rgb:[115,151,228]},{index:.75,rgb:[134,185,227]},{index:.88,rgb:[177,214,227]},{index:1,rgb:[230,241,241]}],"freesurface-blue":[{index:0,rgb:[30,4,110]},{index:.13,rgb:[47,14,176]},{index:.25,rgb:[41,45,236]},{index:.38,rgb:[25,99,212]},{index:.5,rgb:[68,131,200]},{index:.63,rgb:[114,156,197]},{index:.75,rgb:[157,181,203]},{index:.88,rgb:[200,208,216]},{index:1,rgb:[241,237,236]}],"freesurface-red":[{index:0,rgb:[60,9,18]},{index:.13,rgb:[100,17,27]},{index:.25,rgb:[142,20,29]},{index:.38,rgb:[177,43,27]},{index:.5,rgb:[192,87,63]},{index:.63,rgb:[205,125,105]},{index:.75,rgb:[216,162,148]},{index:.88,rgb:[227,199,193]},{index:1,rgb:[241,237,236]}],oxygen:[{index:0,rgb:[64,5,5]},{index:.13,rgb:[106,6,15]},{index:.25,rgb:[144,26,7]},{index:.38,rgb:[168,64,3]},{index:.5,rgb:[188,100,4]},{index:.63,rgb:[206,136,11]},{index:.75,rgb:[220,174,25]},{index:.88,rgb:[231,215,44]},{index:1,rgb:[248,254,105]}],par:[{index:0,rgb:[51,20,24]},{index:.13,rgb:[90,32,35]},{index:.25,rgb:[129,44,34]},{index:.38,rgb:[159,68,25]},{index:.5,rgb:[182,99,19]},{index:.63,rgb:[199,134,22]},{index:.75,rgb:[212,171,35]},{index:.88,rgb:[221,210,54]},{index:1,rgb:[225,253,75]}],phase:[{index:0,rgb:[145,105,18]},{index:.13,rgb:[184,71,38]},{index:.25,rgb:[186,58,115]},{index:.38,rgb:[160,71,185]},{index:.5,rgb:[110,97,218]},{index:.63,rgb:[50,123,164]},{index:.75,rgb:[31,131,110]},{index:.88,rgb:[77,129,34]},{index:1,rgb:[145,105,18]}],salinity:[{index:0,rgb:[42,24,108]},{index:.13,rgb:[33,50,162]},{index:.25,rgb:[15,90,145]},{index:.38,rgb:[40,118,137]},{index:.5,rgb:[59,146,135]},{index:.63,rgb:[79,175,126]},{index:.75,rgb:[120,203,104]},{index:.88,rgb:[193,221,100]},{index:1,rgb:[253,239,154]}],temperature:[{index:0,rgb:[4,35,51]},{index:.13,rgb:[23,51,122]},{index:.25,rgb:[85,59,157]},{index:.38,rgb:[129,79,143]},{index:.5,rgb:[175,95,130]},{index:.63,rgb:[222,112,101]},{index:.75,rgb:[249,146,66]},{index:.88,rgb:[249,196,65]},{index:1,rgb:[232,250,91]}],turbidity:[{index:0,rgb:[34,31,27]},{index:.13,rgb:[65,50,41]},{index:.25,rgb:[98,69,52]},{index:.38,rgb:[131,89,57]},{index:.5,rgb:[161,112,59]},{index:.63,rgb:[185,140,66]},{index:.75,rgb:[202,174,88]},{index:.88,rgb:[216,209,126]},{index:1,rgb:[233,246,171]}],"velocity-blue":[{index:0,rgb:[17,32,64]},{index:.13,rgb:[35,52,116]},{index:.25,rgb:[29,81,156]},{index:.38,rgb:[31,113,162]},{index:.5,rgb:[50,144,169]},{index:.63,rgb:[87,173,176]},{index:.75,rgb:[149,196,189]},{index:.88,rgb:[203,221,211]},{index:1,rgb:[254,251,230]}],"velocity-green":[{index:0,rgb:[23,35,19]},{index:.13,rgb:[24,64,38]},{index:.25,rgb:[11,95,45]},{index:.38,rgb:[39,123,35]},{index:.5,rgb:[95,146,12]},{index:.63,rgb:[152,165,18]},{index:.75,rgb:[201,186,69]},{index:.88,rgb:[233,216,137]},{index:1,rgb:[255,253,205]}],cubehelix:[{index:0,rgb:[0,0,0]},{index:.07,rgb:[22,5,59]},{index:.13,rgb:[60,4,105]},{index:.2,rgb:[109,1,135]},{index:.27,rgb:[161,0,147]},{index:.33,rgb:[210,2,142]},{index:.4,rgb:[251,11,123]},{index:.47,rgb:[255,29,97]},{index:.53,rgb:[255,54,69]},{index:.6,rgb:[255,85,46]},{index:.67,rgb:[255,120,34]},{index:.73,rgb:[255,157,37]},{index:.8,rgb:[241,191,57]},{index:.87,rgb:[224,220,93]},{index:.93,rgb:[218,241,142]},{index:1,rgb:[227,253,198]}]}},{}],53:[function(a,u,c){var i=a("./colorScale"),s=a("lerp");function l(m){return[m[0]/255,m[1]/255,m[2]/255,m[3]]}function d(m){for(var g,p="#",v=0;v<3;++v)p+=("00"+(g=(g=m[v]).toString(16))).substr(g.length);return p}function h(m){return"rgba("+m.join(",")+")"}u.exports=function(m){var g,p,v,y,x,w,k,b,T,_;if(m||(m={}),b=(m.nshades||72)-1,k=m.format||"hex",(w=m.colormap)||(w="jet"),typeof w=="string"){if(w=w.toLowerCase(),!i[w])throw Error(w+" not a supported colorscale");x=i[w]}else{if(!Array.isArray(w))throw Error("unsupported colormap option",w);x=w.slice()}if(x.length>b+1)throw new Error(w+" map requires nshades to be at least size "+x.length);T=Array.isArray(m.alpha)?m.alpha.length!==2?[1,1]:m.alpha.slice():typeof m.alpha=="number"?[m.alpha,m.alpha]:[1,1],g=x.map(function(D){return Math.round(D.index*b)}),T[0]=Math.min(Math.max(T[0],0),1),T[1]=Math.min(Math.max(T[1],0),1);var M=x.map(function(D,O){var R=x[O].index,z=x[O].rgb.slice();return z.length===4&&z[3]>=0&&z[3]<=1||(z[3]=T[0]+(T[1]-T[0])*R),z}),A=[];for(_=0;_0||m(g,p,y)?-1:1:w===0?k>0||m(g,p,v)?1:-1:s(k-w)}var _=i(g,p,v);return _>0?x>0&&i(g,p,y)>0?1:-1:_<0?x>0||i(g,p,y)>0?1:-1:i(g,p,y)>0||m(g,p,v)?1:-1};var i=a("robust-orientation"),s=a("signum"),l=a("two-sum"),d=a("robust-product"),h=a("robust-sum");function m(g,p,v){var y=l(g[0],-p[0]),x=l(g[1],-p[1]),w=l(v[0],-p[0]),k=l(v[1],-p[1]),b=h(d(y,w),d(x,k));return b[b.length-1]>=0}},{"robust-orientation":284,"robust-product":285,"robust-sum":289,signum:55,"two-sum":307}],55:[function(a,u,c){u.exports=function(i){return i<0?-1:i>0?1:0}},{}],56:[function(a,u,c){u.exports=function(l,d){var h=l.length,m=l.length-d.length;if(m)return m;switch(h){case 0:return 0;case 1:return l[0]-d[0];case 2:return l[0]+l[1]-d[0]-d[1]||i(l[0],l[1])-i(d[0],d[1]);case 3:var g=l[0]+l[1],p=d[0]+d[1];if(m=g+l[2]-(p+d[2]))return m;var v=i(l[0],l[1]),y=i(d[0],d[1]);return i(v,l[2])-i(y,d[2])||i(v+l[2],g)-i(y+d[2],p);case 4:var x=l[0],w=l[1],k=l[2],b=l[3],T=d[0],_=d[1],M=d[2],A=d[3];return x+w+k+b-(T+_+M+A)||i(x,w,k,b)-i(T,_,M,A,T)||i(x+w,x+k,x+b,w+k,w+b,k+b)-i(T+_,T+M,T+A,_+M,_+A,M+A)||i(x+w+k,x+w+b,x+k+b,w+k+b)-i(T+_+M,T+_+A,T+M+A,_+M+A);default:for(var S=l.slice().sort(s),E=d.slice().sort(s),D=0;Di[l][0]&&(l=d);return sl?[[l],[s]]:[[s]]}},{}],60:[function(a,u,c){u.exports=function(s){var l=i(s),d=l.length;if(d<=2)return[];for(var h=new Array(d),m=l[d-1],g=0;g=v[_]&&(T+=1);k[b]=T}}return p}(i(m,!0),h)}};var i=a("incremental-convex-hull"),s=a("affine-hull")},{"affine-hull":10,"incremental-convex-hull":233}],62:[function(a,u,c){u.exports=function(i,s,l,d,h,m){var g=h-1,p=h*h,v=g*g,y=(1+2*h)*v,x=h*v,w=p*(3-2*h),k=p*g;if(i.length){m||(m=new Array(i.length));for(var b=i.length-1;b>=0;--b)m[b]=y*i[b]+x*s[b]+w*l[b]+k*d[b];return m}return y*i+x*s+w*l+k*d},u.exports.derivative=function(i,s,l,d,h,m){var g=6*h*h-6*h,p=3*h*h-4*h+1,v=-6*h*h+6*h,y=3*h*h-2*h;if(i.length){m||(m=new Array(i.length));for(var x=i.length-1;x>=0;--x)m[x]=g*i[x]+p*s[x]+v*l[x]+y*d[x];return m}return g*i+p*s+v*l[x]+y*d}},{}],63:[function(a,u,c){var i=a("incremental-convex-hull"),s=a("uniq");function l(h,m){this.point=h,this.index=m}function d(h,m){for(var g=h.point,p=m.point,v=g.length,y=0;y=2)return!1;R[L]=P}return!0}):O.filter(function(R){for(var z=0;z<=p;++z){var L=A[R[z]];if(L<0)return!1;R[z]=L}return!0}),1&p)for(x=0;x>>31},u.exports.exponent=function(m){return(u.exports.hi(m)<<1>>>21)-1023},u.exports.fraction=function(m){var g=u.exports.lo(m),p=u.exports.hi(m),v=1048575&p;return 2146435072&p&&(v+=1<<20),[g,v]},u.exports.denormalized=function(m){return!(2146435072&u.exports.hi(m))}}).call(this)}).call(this,a("buffer").Buffer)},{buffer:3}],65:[function(a,u,c){u.exports=function(i,s){switch(s===void 0&&(s=0),typeof i){case"number":if(i>0)return function(l,d){var h,m;for(h=new Array(l),m=0;m=v-1){_=w.length-1;var A=g-p[v-1];for(M=0;M=v-1)for(var T=w.length-1,_=(p[v-1],0);_=0;--v)if(g[--p])return!1;return!0},h.jump=function(g){var p=this.lastT(),v=this.dimension;if(!(g0;--M)y.push(l(b[M-1],T[M-1],arguments[M])),x.push(0)}},h.push=function(g){var p=this.lastT(),v=this.dimension;if(!(g1e-6?1/k:0;this._time.push(g);for(var A=v;A>0;--A){var S=l(T[A-1],_[A-1],arguments[A]);y.push(S),x.push((S-y[w++])*M)}}},h.set=function(g){var p=this.dimension;if(!(g0;--b)v.push(l(w[b-1],k[b-1],arguments[b])),y.push(0)}},h.move=function(g){var p=this.lastT(),v=this.dimension;if(!(g<=p||arguments.length!==v+1)){var y=this._state,x=this._velocity,w=y.length-this.dimension,k=this.bounds,b=k[0],T=k[1],_=g-p,M=_>1e-6?1/_:0;this._time.push(g);for(var A=v;A>0;--A){var S=arguments[A];y.push(l(b[A-1],T[A-1],y[w++]+S)),x.push(S*M)}}},h.idle=function(g){var p=this.lastT();if(!(g=0;--M)y.push(l(b[M],T[M],y[w]+_*x[w])),x.push(0),w+=1}}},{"binary-search-bounds":31,"cubic-hermite":62}],69:[function(a,u,c){u.exports=function(b){return new h(b||k,null)};function i(b,T,_,M,A,S){this._color=b,this.key=T,this.value=_,this.left=M,this.right=A,this._count=S}function s(b){return new i(b._color,b.key,b.value,b.left,b.right,b._count)}function l(b,T){return new i(b,T.key,T.value,T.left,T.right,T._count)}function d(b){b._count=1+(b.left?b.left._count:0)+(b.right?b.right._count:0)}function h(b,T){this._compare=b,this.root=T}var m=h.prototype;function g(b,T){var _;return T.left&&(_=g(b,T.left))?_:(_=b(T.key,T.value))||(T.right?g(b,T.right):void 0)}function p(b,T,_,M){if(T(b,M.key)<=0){var A;if(M.left&&(A=p(b,T,_,M.left))||(A=_(M.key,M.value)))return A}if(M.right)return p(b,T,_,M.right)}function v(b,T,_,M,A){var S,E=_(b,A.key),D=_(T,A.key);if(E<=0&&(A.left&&(S=v(b,T,_,M,A.left))||D>0&&(S=M(A.key,A.value))))return S;if(D>0&&A.right)return v(b,T,_,M,A.right)}function y(b,T){this.tree=b,this._stack=T}Object.defineProperty(m,"keys",{get:function(){var b=[];return this.forEach(function(T,_){b.push(T)}),b}}),Object.defineProperty(m,"values",{get:function(){var b=[];return this.forEach(function(T,_){b.push(_)}),b}}),Object.defineProperty(m,"length",{get:function(){return this.root?this.root._count:0}}),m.insert=function(b,T){for(var _=this._compare,M=this.root,A=[],S=[];M;){var E=_(b,M.key);A.push(M),S.push(E),M=E<=0?M.left:M.right}A.push(new i(0,b,T,null,null,1));for(var D=A.length-2;D>=0;--D)M=A[D],S[D]<=0?A[D]=new i(M._color,M.key,M.value,A[D+1],M.right,M._count+1):A[D]=new i(M._color,M.key,M.value,M.left,A[D+1],M._count+1);for(D=A.length-1;D>1;--D){var O=A[D-1];if(M=A[D],O._color===1||M._color===1)break;var R=A[D-2];if(R.left===O)if(O.left===M){if(!(z=R.right)||z._color!==0){R._color=0,R.left=O.right,O._color=1,O.right=R,A[D-2]=O,A[D-1]=M,d(R),d(O),D>=3&&((L=A[D-3]).left===R?L.left=O:L.right=O);break}O._color=1,R.right=l(1,z),R._color=0,D-=1}else{if(!(z=R.right)||z._color!==0){O.right=M.left,R._color=0,R.left=M.right,M._color=1,M.left=O,M.right=R,A[D-2]=M,A[D-1]=O,d(R),d(O),d(M),D>=3&&((L=A[D-3]).left===R?L.left=M:L.right=M);break}O._color=1,R.right=l(1,z),R._color=0,D-=1}else if(O.right===M){if(!(z=R.left)||z._color!==0){R._color=0,R.right=O.left,O._color=1,O.left=R,A[D-2]=O,A[D-1]=M,d(R),d(O),D>=3&&((L=A[D-3]).right===R?L.right=O:L.left=O);break}O._color=1,R.left=l(1,z),R._color=0,D-=1}else{var z;if(!(z=R.left)||z._color!==0){var L;O.left=M.right,R._color=0,R.right=M.left,M._color=1,M.right=O,M.left=R,A[D-2]=M,A[D-1]=O,d(R),d(O),d(M),D>=3&&((L=A[D-3]).right===R?L.right=M:L.left=M);break}O._color=1,R.left=l(1,z),R._color=0,D-=1}}return A[0]._color=1,new h(_,A[0])},m.forEach=function(b,T,_){if(this.root)switch(arguments.length){case 1:return g(b,this.root);case 2:return p(T,this._compare,b,this.root);case 3:return this._compare(T,_)>=0?void 0:v(T,_,this._compare,b,this.root)}},Object.defineProperty(m,"begin",{get:function(){for(var b=[],T=this.root;T;)b.push(T),T=T.left;return new y(this,b)}}),Object.defineProperty(m,"end",{get:function(){for(var b=[],T=this.root;T;)b.push(T),T=T.right;return new y(this,b)}}),m.at=function(b){if(b<0)return new y(this,[]);for(var T=this.root,_=[];;){if(_.push(T),T.left){if(b=T.right._count)break;T=T.right}return new y(this,[])},m.ge=function(b){for(var T=this._compare,_=this.root,M=[],A=0;_;){var S=T(b,_.key);M.push(_),S<=0&&(A=M.length),_=S<=0?_.left:_.right}return M.length=A,new y(this,M)},m.gt=function(b){for(var T=this._compare,_=this.root,M=[],A=0;_;){var S=T(b,_.key);M.push(_),S<0&&(A=M.length),_=S<0?_.left:_.right}return M.length=A,new y(this,M)},m.lt=function(b){for(var T=this._compare,_=this.root,M=[],A=0;_;){var S=T(b,_.key);M.push(_),S>0&&(A=M.length),_=S<=0?_.left:_.right}return M.length=A,new y(this,M)},m.le=function(b){for(var T=this._compare,_=this.root,M=[],A=0;_;){var S=T(b,_.key);M.push(_),S>=0&&(A=M.length),_=S<0?_.left:_.right}return M.length=A,new y(this,M)},m.find=function(b){for(var T=this._compare,_=this.root,M=[];_;){var A=T(b,_.key);if(M.push(_),A===0)return new y(this,M);_=A<=0?_.left:_.right}return new y(this,[])},m.remove=function(b){var T=this.find(b);return T?T.remove():this},m.get=function(b){for(var T=this._compare,_=this.root;_;){var M=T(b,_.key);if(M===0)return _.value;_=M<=0?_.left:_.right}};var x=y.prototype;function w(b,T){b.key=T.key,b.value=T.value,b.left=T.left,b.right=T.right,b._color=T._color,b._count=T._count}function k(b,T){return bT?1:0}Object.defineProperty(x,"valid",{get:function(){return this._stack.length>0}}),Object.defineProperty(x,"node",{get:function(){return this._stack.length>0?this._stack[this._stack.length-1]:null},enumerable:!0}),x.clone=function(){return new y(this.tree,this._stack.slice())},x.remove=function(){var b=this._stack;if(b.length===0)return this.tree;var T=new Array(b.length),_=b[b.length-1];T[T.length-1]=new i(_._color,_.key,_.value,_.left,_.right,_._count);for(var M=b.length-2;M>=0;--M)(_=b[M]).left===b[M+1]?T[M]=new i(_._color,_.key,_.value,T[M+1],_.right,_._count):T[M]=new i(_._color,_.key,_.value,_.left,T[M+1],_._count);if((_=T[T.length-1]).left&&_.right){var A=T.length;for(_=_.left;_.right;)T.push(_),_=_.right;var S=T[A-1];for(T.push(new i(_._color,S.key,S.value,_.left,_.right,_._count)),T[A-1].key=_.key,T[A-1].value=_.value,M=T.length-2;M>=A;--M)_=T[M],T[M]=new i(_._color,_.key,_.value,_.left,T[M+1],_._count);T[A-1].left=T[A]}if((_=T[T.length-1])._color===0){var E=T[T.length-2];for(E.left===_?E.left=null:E.right===_&&(E.right=null),T.pop(),M=0;M=0;--N){if(R=O[N],N===0)return void(R._color=1);if((z=O[N-1]).left===R){if((L=z.right).right&&L.right._color===0)return P=(L=z.right=s(L)).right=s(L.right),z.right=L.left,L.left=z,L.right=P,L._color=z._color,R._color=1,z._color=1,P._color=1,d(z),d(L),N>1&&((B=O[N-2]).left===z?B.left=L:B.right=L),void(O[N-1]=L);if(L.left&&L.left._color===0)return P=(L=z.right=s(L)).left=s(L.left),z.right=P.left,L.left=P.right,P.left=z,P.right=L,P._color=z._color,z._color=1,L._color=1,R._color=1,d(z),d(L),d(P),N>1&&((B=O[N-2]).left===z?B.left=P:B.right=P),void(O[N-1]=P);if(L._color===1){if(z._color===0)return z._color=1,void(z.right=l(0,L));z.right=l(0,L);continue}L=s(L),z.right=L.left,L.left=z,L._color=z._color,z._color=0,d(z),d(L),N>1&&((B=O[N-2]).left===z?B.left=L:B.right=L),O[N-1]=L,O[N]=z,N+11&&((B=O[N-2]).right===z?B.right=L:B.left=L),void(O[N-1]=L);if(L.right&&L.right._color===0)return P=(L=z.left=s(L)).right=s(L.right),z.left=P.right,L.right=P.left,P.right=z,P.left=L,P._color=z._color,z._color=1,L._color=1,R._color=1,d(z),d(L),d(P),N>1&&((B=O[N-2]).right===z?B.right=P:B.left=P),void(O[N-1]=P);if(L._color===1){if(z._color===0)return z._color=1,void(z.left=l(0,L));z.left=l(0,L);continue}var B;L=s(L),z.left=L.right,L.right=z,L._color=z._color,z._color=0,d(z),d(L),N>1&&((B=O[N-2]).right===z?B.right=L:B.left=L),O[N-1]=L,O[N]=z,N+10)return this._stack[this._stack.length-1].key},enumerable:!0}),Object.defineProperty(x,"value",{get:function(){if(this._stack.length>0)return this._stack[this._stack.length-1].value},enumerable:!0}),Object.defineProperty(x,"index",{get:function(){var b=0,T=this._stack;if(T.length===0){var _=this.tree.root;return _?_._count:0}T[T.length-1].left&&(b=T[T.length-1].left._count);for(var M=T.length-2;M>=0;--M)T[M+1]===T[M].right&&(++b,T[M].left&&(b+=T[M].left._count));return b},enumerable:!0}),x.next=function(){var b=this._stack;if(b.length!==0){var T=b[b.length-1];if(T.right)for(T=T.right;T;)b.push(T),T=T.left;else for(b.pop();b.length>0&&b[b.length-1].right===T;)T=b[b.length-1],b.pop()}},Object.defineProperty(x,"hasNext",{get:function(){var b=this._stack;if(b.length===0)return!1;if(b[b.length-1].right)return!0;for(var T=b.length-1;T>0;--T)if(b[T-1].left===b[T])return!0;return!1}}),x.update=function(b){var T=this._stack;if(T.length===0)throw new Error("Can't update empty node!");var _=new Array(T.length),M=T[T.length-1];_[_.length-1]=new i(M._color,M.key,b,M.left,M.right,M._count);for(var A=T.length-2;A>=0;--A)(M=T[A]).left===T[A+1]?_[A]=new i(M._color,M.key,M.value,_[A+1],M.right,M._count):_[A]=new i(M._color,M.key,M.value,M.left,_[A+1],M._count);return new h(this.tree._compare,_[0])},x.prev=function(){var b=this._stack;if(b.length!==0){var T=b[b.length-1];if(T.left)for(T=T.left;T;)b.push(T),T=T.right;else for(b.pop();b.length>0&&b[b.length-1].left===T;)T=b[b.length-1],b.pop()}},Object.defineProperty(x,"hasPrev",{get:function(){var b=this._stack;if(b.length===0)return!1;if(b[b.length-1].left)return!0;for(var T=b.length-1;T>0;--T)if(b[T-1].right===b[T])return!0;return!1}})},{}],70:[function(a,u,c){u.exports=function(A,S){var E=new p(A);return E.update(S),E};var i=a("./lib/text.js"),s=a("./lib/lines.js"),l=a("./lib/background.js"),d=a("./lib/cube.js"),h=a("./lib/ticks.js"),m=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);function g(A,S){return A[0]=S[0],A[1]=S[1],A[2]=S[2],A}function p(A){this.gl=A,this.pixelRatio=1,this.bounds=[[-10,-10,-10],[10,10,10]],this.ticks=[[],[],[]],this.autoTicks=!0,this.tickSpacing=[1,1,1],this.tickEnable=[!0,!0,!0],this.tickFont=["sans-serif","sans-serif","sans-serif"],this.tickSize=[12,12,12],this.tickAngle=[0,0,0],this.tickAlign=["auto","auto","auto"],this.tickColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.tickPad=[10,10,10],this.lastCubeProps={cubeEdges:[0,0,0],axis:[0,0,0]},this.labels=["x","y","z"],this.labelEnable=[!0,!0,!0],this.labelFont="sans-serif",this.labelSize=[20,20,20],this.labelAngle=[0,0,0],this.labelAlign=["auto","auto","auto"],this.labelColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.labelPad=[10,10,10],this.lineEnable=[!0,!0,!0],this.lineMirror=[!1,!1,!1],this.lineWidth=[1,1,1],this.lineColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.lineTickEnable=[!0,!0,!0],this.lineTickMirror=[!1,!1,!1],this.lineTickLength=[0,0,0],this.lineTickWidth=[1,1,1],this.lineTickColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.gridEnable=[!0,!0,!0],this.gridWidth=[1,1,1],this.gridColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.zeroEnable=[!0,!0,!0],this.zeroLineColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.zeroLineWidth=[2,2,2],this.backgroundEnable=[!1,!1,!1],this.backgroundColor=[[.8,.8,.8,.5],[.8,.8,.8,.5],[.8,.8,.8,.5]],this._firstInit=!0,this._text=null,this._lines=null,this._background=l(A)}var v=p.prototype;function y(){this.primalOffset=[0,0,0],this.primalMinor=[0,0,0],this.mirrorOffset=[0,0,0],this.mirrorMinor=[0,0,0]}v.update=function(A){function S(K,te,Y){if(Y in A){var Z,re=A[Y],U=this[Y];(K?Array.isArray(re)&&Array.isArray(re[0]):Array.isArray(re))?this[Y]=Z=[te(re[0]),te(re[1]),te(re[2])]:this[Y]=Z=[te(re),te(re),te(re)];for(var q=0;q<3;++q)if(Z[q]!==U[q])return!0}return!1}A=A||{};var E,D=S.bind(this,!1,Number),O=S.bind(this,!1,Boolean),R=S.bind(this,!1,String),z=S.bind(this,!0,function(K){if(Array.isArray(K)){if(K.length===3)return[+K[0],+K[1],+K[2],1];if(K.length===4)return[+K[0],+K[1],+K[2],+K[3]]}return[0,0,0,1]}),L=!1,P=!1;if("bounds"in A)for(var N=A.bounds,B=0;B<2;++B)for(var G=0;G<3;++G)N[B][G]!==this.bounds[B][G]&&(P=!0),this.bounds[B][G]=N[B][G];if("ticks"in A)for(E=A.ticks,L=!0,this.autoTicks=!1,B=0;B<3;++B)this.tickSpacing[B]=0;else D("tickSpacing")&&(this.autoTicks=!0,P=!0);if(this._firstInit&&("ticks"in A||"tickSpacing"in A||(this.autoTicks=!0),P=!0,L=!0,this._firstInit=!1),P&&this.autoTicks&&(E=h.create(this.bounds,this.tickSpacing),L=!0),L){for(B=0;B<3;++B)E[B].sort(function(K,te){return K.x-te.x});h.equal(E,this.ticks)?L=!1:this.ticks=E}O("tickEnable"),R("tickFont")&&(L=!0),D("tickSize"),D("tickAngle"),D("tickPad"),z("tickColor");var W=R("labels");R("labelFont")&&(W=!0),O("labelEnable"),D("labelSize"),D("labelPad"),z("labelColor"),O("lineEnable"),O("lineMirror"),D("lineWidth"),z("lineColor"),O("lineTickEnable"),O("lineTickMirror"),D("lineTickLength"),D("lineTickWidth"),z("lineTickColor"),O("gridEnable"),D("gridWidth"),z("gridColor"),O("zeroEnable"),z("zeroLineColor"),D("zeroLineWidth"),O("backgroundEnable"),z("backgroundColor"),this._text?this._text&&(W||L)&&this._text.update(this.bounds,this.labels,this.labelFont,this.ticks,this.tickFont):this._text=i(this.gl,this.bounds,this.labels,this.labelFont,this.ticks,this.tickFont),this._lines&&L&&(this._lines.dispose(),this._lines=null),this._lines||(this._lines=s(this.gl,this.bounds,this.ticks))};var x=[new y,new y,new y];function w(A,S,E,D,O){for(var R=A.primalOffset,z=A.primalMinor,L=A.mirrorOffset,P=A.mirrorMinor,N=D[S],B=0;B<3;++B)if(S!==B){var G=R,W=L,K=z,te=P;N&1<0?(K[B]=-1,te[B]=0):(K[B]=0,te[B]=1)}}var k=[0,0,0],b={model:m,view:m,projection:m,_ortho:!1};v.isOpaque=function(){return!0},v.isTransparent=function(){return!1},v.drawTransparent=function(A){};var T=[0,0,0],_=[0,0,0],M=[0,0,0];v.draw=function(A){A=A||b;for(var S=this.gl,E=A.model||m,D=A.view||m,O=A.projection||m,R=this.bounds,z=A._ortho||!1,L=d(E,D,O,R,z),P=L.cubeEdges,N=L.axis,B=D[12],G=D[13],W=D[14],K=D[15],te=(z?2:1)*this.pixelRatio*(O[3]*B+O[7]*G+O[11]*W+O[15]*K)/S.drawingBufferHeight,Y=0;Y<3;++Y)this.lastCubeProps.cubeEdges[Y]=P[Y],this.lastCubeProps.axis[Y]=N[Y];var Z=x;for(Y=0;Y<3;++Y)w(x[Y],Y,this.bounds,P,N);S=this.gl;var re,U=k;for(Y=0;Y<3;++Y)this.backgroundEnable[Y]?U[Y]=N[Y]:U[Y]=0;for(this._background.draw(E,D,O,R,U,this.backgroundColor),this._lines.bind(E,D,O,this),Y=0;Y<3;++Y){var q=[0,0,0];N[Y]>0?q[Y]=R[1][Y]:q[Y]=R[0][Y];for(var $=0;$<2;++$){var ne=(Y+1+$)%3,H=(Y+1+(1^$))%3;this.gridEnable[ne]&&this._lines.drawGrid(ne,H,this.bounds,q,this.gridColor[ne],this.gridWidth[ne]*this.pixelRatio)}for($=0;$<2;++$)ne=(Y+1+$)%3,H=(Y+1+(1^$))%3,this.zeroEnable[H]&&Math.min(R[0][H],R[1][H])<=0&&Math.max(R[0][H],R[1][H])>=0&&this._lines.drawZero(ne,H,this.bounds,q,this.zeroLineColor[H],this.zeroLineWidth[H]*this.pixelRatio)}for(Y=0;Y<3;++Y){this.lineEnable[Y]&&this._lines.drawAxisLine(Y,this.bounds,Z[Y].primalOffset,this.lineColor[Y],this.lineWidth[Y]*this.pixelRatio),this.lineMirror[Y]&&this._lines.drawAxisLine(Y,this.bounds,Z[Y].mirrorOffset,this.lineColor[Y],this.lineWidth[Y]*this.pixelRatio);var Q=g(T,Z[Y].primalMinor),ee=g(_,Z[Y].mirrorMinor),ie=this.lineTickLength;for($=0;$<3;++$){var ae=te/E[5*$];Q[$]*=ie[$]*ae,ee[$]*=ie[$]*ae}this.lineTickEnable[Y]&&this._lines.drawAxisTicks(Y,Z[Y].primalOffset,Q,this.lineTickColor[Y],this.lineTickWidth[Y]*this.pixelRatio),this.lineTickMirror[Y]&&this._lines.drawAxisTicks(Y,Z[Y].mirrorOffset,ee,this.lineTickColor[Y],this.lineTickWidth[Y]*this.pixelRatio)}this._lines.unbind(),this._text.bind(E,D,O,this.pixelRatio);var ue,le;function ge(Oe){(le=[0,0,0])[Oe]=1}function fe(Oe,de,ye){var Me=(Oe+1)%3,ke=(Oe+2)%3,Ee=de[Me],ze=de[ke],Fe=ye[Me],Ve=ye[ke];Ee>0&&Ve>0||Ee>0&&Ve<0||Ee<0&&Ve>0||Ee<0&&Ve<0?ge(Me):(ze>0&&Fe>0||ze>0&&Fe<0||ze<0&&Fe>0||ze<0&&Fe<0)&&ge(ke)}for(Y=0;Y<3;++Y){var me=Z[Y].primalMinor,_e=Z[Y].mirrorMinor,we=g(M,Z[Y].primalOffset);for($=0;$<3;++$)this.lineTickEnable[Y]&&(we[$]+=te*me[$]*Math.max(this.lineTickLength[$],0)/E[5*$]);var Te=[0,0,0];if(Te[Y]=1,this.tickEnable[Y]){for(this.tickAngle[Y]===-3600?(this.tickAngle[Y]=0,this.tickAlign[Y]="auto"):this.tickAlign[Y]=-1,ue=1,(re=[this.tickAlign[Y],.5,ue])[0]==="auto"?re[0]=0:re[0]=parseInt(""+re[0]),le=[0,0,0],fe(Y,me,_e),$=0;$<3;++$)we[$]+=te*me[$]*this.tickPad[$]/E[5*$];this._text.drawTicks(Y,this.tickSize[Y],this.tickAngle[Y],we,this.tickColor[Y],Te,le,re)}if(this.labelEnable[Y]){for(ue=0,le=[0,0,0],this.labels[Y].length>4&&(ge(Y),ue=1),(re=[this.labelAlign[Y],.5,ue])[0]==="auto"?re[0]=0:re[0]=parseInt(""+re[0]),$=0;$<3;++$)we[$]+=te*me[$]*this.labelPad[$]/E[5*$];we[Y]+=.5*(R[0][Y]+R[1][Y]),this._text.drawLabel(Y,this.labelSize[Y],this.labelAngle[Y],we,this.labelColor[Y],[0,0,0],le,re)}}this._text.unbind()},v.dispose=function(){this._text.dispose(),this._lines.dispose(),this._background.dispose(),this._lines=null,this._text=null,this._background=null,this.gl=null}},{"./lib/background.js":71,"./lib/cube.js":72,"./lib/lines.js":73,"./lib/text.js":75,"./lib/ticks.js":76}],71:[function(a,u,c){u.exports=function(m){for(var g=[],p=[],v=0,y=0;y<3;++y)for(var x=(y+1)%3,w=(y+2)%3,k=[0,0,0],b=[0,0,0],T=-1;T<=1;T+=2){p.push(v,v+2,v+1,v+1,v+2,v+3),k[y]=T,b[y]=T;for(var _=-1;_<=1;_+=2){k[x]=_;for(var M=-1;M<=1;M+=2)k[w]=M,g.push(k[0],k[1],k[2],b[0],b[1],b[2]),v+=1}var A=x;x=w,w=A}var S=i(m,new Float32Array(g)),E=i(m,new Uint16Array(p),m.ELEMENT_ARRAY_BUFFER),D=s(m,[{buffer:S,type:m.FLOAT,size:3,offset:0,stride:24},{buffer:S,type:m.FLOAT,size:3,offset:12,stride:24}],E),O=l(m);return O.attributes.position.location=0,O.attributes.normal.location=1,new d(m,S,D,O)};var i=a("gl-buffer"),s=a("gl-vao"),l=a("./shaders").bg;function d(m,g,p,v){this.gl=m,this.buffer=g,this.vao=p,this.shader=v}var h=d.prototype;h.draw=function(m,g,p,v,y,x){for(var w=!1,k=0;k<3;++k)w=w||y[k];if(w){var b=this.gl;b.enable(b.POLYGON_OFFSET_FILL),b.polygonOffset(1,2),this.shader.bind(),this.shader.uniforms={model:m,view:g,projection:p,bounds:v,enable:y,colors:x},this.vao.bind(),this.vao.draw(this.gl.TRIANGLES,36),this.vao.unbind(),b.disable(b.POLYGON_OFFSET_FILL)}},h.dispose=function(){this.vao.dispose(),this.buffer.dispose(),this.shader.dispose()}},{"./shaders":74,"gl-buffer":78,"gl-vao":150}],72:[function(a,u,c){u.exports=function(_,M,A,S,E){s(h,M,_),s(h,A,h);for(var D=0,O=0;O<2;++O){p[2]=S[O][2];for(var R=0;R<2;++R){p[1]=S[R][1];for(var z=0;z<2;++z)p[0]=S[z][0],y(m[D],p,h),D+=1}}var L=-1;for(O=0;O<8;++O){for(var P=m[O][3],N=0;N<3;++N)g[O][N]=m[O][N]/P;E&&(g[O][2]*=-1),P<0&&(L<0||g[O][2]K&&(L|=1<K&&(L|=1<g[O][1])&&(ne=O);var H=-1;for(O=0;O<3;++O)(ee=ne^1<g[Q][0]&&(Q=ee))}var ie=k;ie[0]=ie[1]=ie[2]=0,ie[i.log2(H^ne)]=ne&H,ie[i.log2(ne^Q)]=ne&Q;var ae=7^Q;ae===L||ae===$?(ae=7^H,ie[i.log2(Q^ae)]=ae&Q):ie[i.log2(H^ae)]=ae&H;var ue=b,le=L;for(B=0;B<3;++B)ue[B]=le&1< HALF_PI) && (b <= ONE_AND_HALF_PI)) ? + b - PI : + b; +} + +float look_horizontal_or_vertical(float a, float ratio) { + // ratio controls the ratio between being horizontal to (vertical + horizontal) + // if ratio is set to 0.5 then it is 50%, 50%. + // when using a higher ratio e.g. 0.75 the result would + // likely be more horizontal than vertical. + + float b = positive_angle(a); + + return + (b < ( ratio) * HALF_PI) ? 0.0 : + (b < (2.0 - ratio) * HALF_PI) ? -HALF_PI : + (b < (2.0 + ratio) * HALF_PI) ? 0.0 : + (b < (4.0 - ratio) * HALF_PI) ? HALF_PI : + 0.0; +} + +float roundTo(float a, float b) { + return float(b * floor((a + 0.5 * b) / b)); +} + +float look_round_n_directions(float a, int n) { + float b = positive_angle(a); + float div = TWO_PI / float(n); + float c = roundTo(b, div); + return look_upwards(c); +} + +float applyAlignOption(float rawAngle, float delta) { + return + (option > 2) ? look_round_n_directions(rawAngle + delta, option) : // option 3-n: round to n directions + (option == 2) ? look_horizontal_or_vertical(rawAngle + delta, hv_ratio) : // horizontal or vertical + (option == 1) ? rawAngle + delta : // use free angle, and flip to align with one direction of the axis + (option == 0) ? look_upwards(rawAngle) : // use free angle, and stay upwards + (option ==-1) ? 0.0 : // useful for backward compatibility, all texts remains horizontal + rawAngle; // otherwise return back raw input angle +} + +bool isAxisTitle = (axis.x == 0.0) && + (axis.y == 0.0) && + (axis.z == 0.0); + +void main() { + //Compute world offset + float axisDistance = position.z; + vec3 dataPosition = axisDistance * axis + offset; + + float beta = angle; // i.e. user defined attributes for each tick + + float axisAngle; + float clipAngle; + float flip; + + if (enableAlign) { + axisAngle = (isAxisTitle) ? HALF_PI : + computeViewAngle(dataPosition, dataPosition + axis); + clipAngle = computeViewAngle(dataPosition, dataPosition + alignDir); + + axisAngle += (sin(axisAngle) < 0.0) ? PI : 0.0; + clipAngle += (sin(clipAngle) < 0.0) ? PI : 0.0; + + flip = (dot(vec2(cos(axisAngle), sin(axisAngle)), + vec2(sin(clipAngle),-cos(clipAngle))) > 0.0) ? 1.0 : 0.0; + + beta += applyAlignOption(clipAngle, flip * PI); + } + + //Compute plane offset + vec2 planeCoord = position.xy * pixelScale; + + mat2 planeXform = scale * mat2( + cos(beta), sin(beta), + -sin(beta), cos(beta) + ); + + vec2 viewOffset = 2.0 * planeXform * planeCoord / resolution; + + //Compute clip position + vec3 clipPosition = project(dataPosition); + + //Apply text offset in clip coordinates + clipPosition += vec3(viewOffset, 0.0); + + //Done + gl_Position = vec4(clipPosition, 1.0); +}`]),m=i([`precision highp float; +#define GLSLIFY 1 + +uniform vec4 color; +void main() { + gl_FragColor = color; +}`]);c.text=function(v){return s(v,h,m,null,[{name:"position",type:"vec3"}])};var g=i([`precision highp float; +#define GLSLIFY 1 + +attribute vec3 position; +attribute vec3 normal; + +uniform mat4 model, view, projection; +uniform vec3 enable; +uniform vec3 bounds[2]; + +varying vec3 colorChannel; + +void main() { + + vec3 signAxis = sign(bounds[1] - bounds[0]); + + vec3 realNormal = signAxis * normal; + + if(dot(realNormal, enable) > 0.0) { + vec3 minRange = min(bounds[0], bounds[1]); + vec3 maxRange = max(bounds[0], bounds[1]); + vec3 nPosition = mix(minRange, maxRange, 0.5 * (position + 1.0)); + gl_Position = projection * view * model * vec4(nPosition, 1.0); + } else { + gl_Position = vec4(0,0,0,0); + } + + colorChannel = abs(realNormal); +}`]),p=i([`precision highp float; +#define GLSLIFY 1 + +uniform vec4 colors[3]; + +varying vec3 colorChannel; + +void main() { + gl_FragColor = colorChannel.x * colors[0] + + colorChannel.y * colors[1] + + colorChannel.z * colors[2]; +}`]);c.bg=function(v){return s(v,g,p,null,[{name:"position",type:"vec3"},{name:"normal",type:"vec3"}])}},{"gl-shader":132,glslify:231}],75:[function(a,u,c){(function(i){(function(){u.exports=function(x,w,k,b,T,_){var M=s(x),A=l(x,[{buffer:M,size:3}]),S=h(x);S.attributes.position.location=0;var E=new p(x,S,M,A);return E.update(w,k,b,T,_),E};var s=a("gl-buffer"),l=a("gl-vao"),d=a("vectorize-text"),h=a("./shaders").text,m=window||i.global||{},g=m.__TEXT_CACHE||{};m.__TEXT_CACHE={};function p(x,w,k,b){this.gl=x,this.shader=w,this.buffer=k,this.vao=b,this.tickOffset=this.tickCount=this.labelOffset=this.labelCount=null}var v=p.prototype,y=[0,0];v.bind=function(x,w,k,b){this.vao.bind(),this.shader.bind();var T=this.shader.uniforms;T.model=x,T.view=w,T.projection=k,T.pixelScale=b,y[0]=this.gl.drawingBufferWidth,y[1]=this.gl.drawingBufferHeight,this.shader.uniforms.resolution=y},v.unbind=function(){this.vao.unbind()},v.update=function(x,w,k,b,T){var _=[];function M(L,P,N,B,G,W){var K=g[N];K||(K=g[N]={});var te=K[P];te||(te=K[P]=function(Q,ee){try{return d(Q,ee)}catch(ie){return console.warn('error vectorizing text:"'+Q+'" error:',ie),{cells:[],positions:[]}}}(P,{triangles:!0,font:N,textAlign:"center",textBaseline:"middle",lineSpacing:G,styletags:W}));for(var Y=(B||12)/12,Z=te.positions,re=te.cells,U=0,q=re.length;U=0;--ne){var H=Z[$[ne]];_.push(Y*H[0],-Y*H[1],L)}}for(var A=[0,0,0],S=[0,0,0],E=[0,0,0],D=[0,0,0],O={breaklines:!0,bolds:!0,italics:!0,subscripts:!0,superscripts:!0},R=0;R<3;++R){E[R]=_.length/3|0,M(.5*(x[0][R]+x[1][R]),w[R],k[R],12,1.25,O),D[R]=(_.length/3|0)-E[R],A[R]=_.length/3|0;for(var z=0;z=0&&(m=d.length-h-1);var g=Math.pow(10,m),p=Math.round(s*l*g),v=p+"";if(v.indexOf("e")>=0)return v;var y=p/g,x=p%g;p<0?(y=0|-Math.ceil(y),x=0|-x):(y=0|Math.floor(y),x|=0);var w=""+y;if(p<0&&(w="-"+w),m){for(var k=""+x;k.length=s[0][h];--g)m.push({x:g*l[h],text:i(l[h],g)});d.push(m)}return d},c.equal=function(s,l){for(var d=0;d<3;++d){if(s[d].length!==l[d].length)return!1;for(var h=0;hx)throw new Error("gl-buffer: If resizing buffer, must not specify offset");return v.bufferSubData(y,b,k),x}function p(v,y){for(var x=i.malloc(v.length,y),w=v.length,k=0;k=0;--A){if(_[A]!==M)return!1;M*=T[A]}return!0}(v.shape,v.stride))v.offset===0&&v.data.length===v.shape[0]?this.length=g(this.gl,this.type,this.length,this.usage,v.data,y):this.length=g(this.gl,this.type,this.length,this.usage,v.data.subarray(v.offset,v.shape[0]),y);else{var w=i.malloc(v.size,x),k=l(w,v.shape);s.assign(k,v),this.length=g(this.gl,this.type,this.length,this.usage,y<0?w:w.subarray(0,v.size),y),i.free(w)}}else if(Array.isArray(v)){var b;b=this.type===this.gl.ELEMENT_ARRAY_BUFFER?p(v,"uint16"):p(v,"float32"),this.length=g(this.gl,this.type,this.length,this.usage,y<0?b:b.subarray(0,v.length),y),i.free(b)}else if(typeof v=="object"&&typeof v.length=="number")this.length=g(this.gl,this.type,this.length,this.usage,v,y);else{if(typeof v!="number"&&v!==void 0)throw new Error("gl-buffer: Invalid data type");if(y>=0)throw new Error("gl-buffer: Cannot specify offset when resizing buffer");(v|=0)<=0&&(v=1),this.gl.bufferData(this.type,0|v,this.usage),this.length=v}},u.exports=function(v,y,x,w){if(x=x||v.ARRAY_BUFFER,w=w||v.DYNAMIC_DRAW,x!==v.ARRAY_BUFFER&&x!==v.ELEMENT_ARRAY_BUFFER)throw new Error("gl-buffer: Invalid type for webgl buffer, must be either gl.ARRAY_BUFFER or gl.ELEMENT_ARRAY_BUFFER");if(w!==v.DYNAMIC_DRAW&&w!==v.STATIC_DRAW&&w!==v.STREAM_DRAW)throw new Error("gl-buffer: Invalid usage for buffer, must be either gl.DYNAMIC_DRAW, gl.STATIC_DRAW or gl.STREAM_DRAW");var k=v.createBuffer(),b=new h(v,x,k,0,w);return b.update(y),b}},{ndarray:259,"ndarray-ops":254,"typedarray-pool":308}],79:[function(a,u,c){var i=a("gl-vec3");u.exports=function(l,d){var h=l.positions,m=l.vectors,g={positions:[],vertexIntensity:[],vertexIntensityBounds:l.vertexIntensityBounds,vectors:[],cells:[],coneOffset:l.coneOffset,colormap:l.colormap};if(l.positions.length===0)return d&&(d[0]=[0,0,0],d[1]=[0,0,0]),g;for(var p=0,v=1/0,y=-1/0,x=1/0,w=-1/0,k=1/0,b=-1/0,T=null,_=null,M=[],A=1/0,S=!1,E=0;Ep&&(p=i.length(O)),E){var R=2*i.distance(T,D)/(i.length(_)+i.length(O));R?(A=Math.min(A,R),S=!1):S=!0}S||(T=D,_=O),M.push(O)}var z=[v,x,k],L=[y,w,b];d&&(d[0]=z,d[1]=L),p===0&&(p=1);var P=1/p;isFinite(A)||(A=1),g.vectorScale=A;var N=l.coneSize||.5;l.absoluteConeSize&&(N=l.absoluteConeSize*P),g.coneScale=N,E=0;for(var B=0;E=1},x.isTransparent=function(){return this.opacity<1},x.pickSlots=1,x.setPickBase=function(b){this.pickId=b},x.update=function(b){b=b||{};var T=this.gl;this.dirty=!0,"lightPosition"in b&&(this.lightPosition=b.lightPosition),"opacity"in b&&(this.opacity=b.opacity),"ambient"in b&&(this.ambientLight=b.ambient),"diffuse"in b&&(this.diffuseLight=b.diffuse),"specular"in b&&(this.specularLight=b.specular),"roughness"in b&&(this.roughness=b.roughness),"fresnel"in b&&(this.fresnel=b.fresnel),b.tubeScale!==void 0&&(this.tubeScale=b.tubeScale),b.vectorScale!==void 0&&(this.vectorScale=b.vectorScale),b.coneScale!==void 0&&(this.coneScale=b.coneScale),b.coneOffset!==void 0&&(this.coneOffset=b.coneOffset),b.colormap&&(this.texture.shape=[256,256],this.texture.minFilter=T.LINEAR_MIPMAP_LINEAR,this.texture.magFilter=T.LINEAR,this.texture.setPixels(function(ne){for(var H=p({colormap:ne,nshades:256,format:"rgba"}),Q=new Uint8Array(1024),ee=0;ee<256;++ee){for(var ie=H[ee],ae=0;ae<3;++ae)Q[4*ee+ae]=ie[ae];Q[4*ee+3]=255*ie[3]}return g(Q,[256,256,4],[4,0,1])}(b.colormap)),this.texture.generateMipmap());var _=b.cells,M=b.positions,A=b.vectors;if(M&&_&&A){var S=[],E=[],D=[],O=[],R=[];this.cells=_,this.positions=M,this.vectors=A;var z=b.meshColor||[1,1,1,1],L=b.vertexIntensity,P=1/0,N=-1/0;if(L)if(b.vertexIntensityBounds)P=+b.vertexIntensityBounds[0],N=+b.vertexIntensityBounds[1];else for(var B=0;B0){var P=this.triShader;P.bind(),P.uniforms=D,this.triangleVAO.bind(),T.drawArrays(T.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind()}},x.drawPick=function(b){b=b||{};for(var T=this.gl,_=b.model||v,M=b.view||v,A=b.projection||v,S=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],E=0;E<3;++E)S[0][E]=Math.max(S[0][E],this.clipBounds[0][E]),S[1][E]=Math.min(S[1][E],this.clipBounds[1][E]);this._model=[].slice.call(_),this._view=[].slice.call(M),this._projection=[].slice.call(A),this._resolution=[T.drawingBufferWidth,T.drawingBufferHeight];var D={model:_,view:M,projection:A,clipBounds:S,tubeScale:this.tubeScale,vectorScale:this.vectorScale,coneScale:this.coneScale,coneOffset:this.coneOffset,pickId:this.pickId/255},O=this.pickShader;O.bind(),O.uniforms=D,this.triangleCount>0&&(this.triangleVAO.bind(),T.drawArrays(T.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind())},x.pick=function(b){if(!b||b.id!==this.pickId)return null;var T=b.value[0]+256*b.value[1]+65536*b.value[2],_=this.cells[T],M=this.positions[_[1]].slice(0,3),A={position:M,dataCoordinate:M,index:Math.floor(_[1]/48)};return this.traceType==="cone"?A.index=Math.floor(_[1]/48):this.traceType==="streamtube"&&(A.intensity=this.intensity[_[1]],A.velocity=this.vectors[_[1]].slice(0,3),A.divergence=this.vectors[_[1]][3],A.index=T),A},x.dispose=function(){this.texture.dispose(),this.triShader.dispose(),this.pickShader.dispose(),this.triangleVAO.dispose(),this.trianglePositions.dispose(),this.triangleVectors.dispose(),this.triangleColors.dispose(),this.triangleUVs.dispose(),this.triangleIds.dispose()},u.exports=function(b,T,_){var M=_.shaders;arguments.length===1&&(b=(T=b).gl);var A=w(b,M),S=k(b,M),E=d(b,g(new Uint8Array([255,255,255,255]),[1,1,4]));E.generateMipmap(),E.minFilter=b.LINEAR_MIPMAP_LINEAR,E.magFilter=b.LINEAR;var D=s(b),O=s(b),R=s(b),z=s(b),L=s(b),P=l(b,[{buffer:D,type:b.FLOAT,size:4},{buffer:L,type:b.UNSIGNED_BYTE,size:4,normalized:!0},{buffer:R,type:b.FLOAT,size:4},{buffer:z,type:b.FLOAT,size:2},{buffer:O,type:b.FLOAT,size:4}]),N=new y(b,E,A,S,D,O,L,R,z,P,_.traceType||"cone");return N.update(T),N}},{colormap:53,"gl-buffer":78,"gl-mat4/invert":98,"gl-mat4/multiply":100,"gl-shader":132,"gl-texture2d":146,"gl-vao":150,ndarray:259}],81:[function(a,u,c){var i=a("glslify"),s=i([`precision highp float; + +precision highp float; +#define GLSLIFY 1 + +vec3 getOrthogonalVector(vec3 v) { + // Return up-vector for only-z vector. + // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0). + // From the above if-statement we have ||a|| > 0 U ||b|| > 0. + // Assign z = 0, x = -b, y = a: + // a*-b + b*a + c*0 = -ba + ba + 0 = 0 + if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) { + return normalize(vec3(-v.y, v.x, 0.0)); + } else { + return normalize(vec3(0.0, v.z, -v.y)); + } +} + +// Calculate the cone vertex and normal at the given index. +// +// The returned vertex is for a cone with its top at origin and height of 1.0, +// pointing in the direction of the vector attribute. +// +// Each cone is made up of a top vertex, a center base vertex and base perimeter vertices. +// These vertices are used to make up the triangles of the cone by the following: +// segment + 0 top vertex +// segment + 1 perimeter vertex a+1 +// segment + 2 perimeter vertex a +// segment + 3 center base vertex +// segment + 4 perimeter vertex a +// segment + 5 perimeter vertex a+1 +// Where segment is the number of the radial segment * 6 and a is the angle at that radial segment. +// To go from index to segment, floor(index / 6) +// To go from segment to angle, 2*pi * (segment/segmentCount) +// To go from index to segment index, index - (segment*6) +// +vec3 getConePosition(vec3 d, float rawIndex, float coneOffset, out vec3 normal) { + + const float segmentCount = 8.0; + + float index = rawIndex - floor(rawIndex / + (segmentCount * 6.0)) * + (segmentCount * 6.0); + + float segment = floor(0.001 + index/6.0); + float segmentIndex = index - (segment*6.0); + + normal = -normalize(d); + + if (segmentIndex > 2.99 && segmentIndex < 3.01) { + return mix(vec3(0.0), -d, coneOffset); + } + + float nextAngle = ( + (segmentIndex > 0.99 && segmentIndex < 1.01) || + (segmentIndex > 4.99 && segmentIndex < 5.01) + ) ? 1.0 : 0.0; + float angle = 2.0 * 3.14159 * ((segment + nextAngle) / segmentCount); + + vec3 v1 = mix(d, vec3(0.0), coneOffset); + vec3 v2 = v1 - d; + + vec3 u = getOrthogonalVector(d); + vec3 v = normalize(cross(u, d)); + + vec3 x = u * cos(angle) * length(d)*0.25; + vec3 y = v * sin(angle) * length(d)*0.25; + vec3 v3 = v2 + x + y; + if (segmentIndex < 3.0) { + vec3 tx = u * sin(angle); + vec3 ty = v * -cos(angle); + vec3 tangent = tx + ty; + normal = normalize(cross(v3 - v1, tangent)); + } + + if (segmentIndex == 0.0) { + return mix(d, vec3(0.0), coneOffset); + } + return v3; +} + +attribute vec3 vector; +attribute vec4 color, position; +attribute vec2 uv; + +uniform float vectorScale, coneScale, coneOffset; +uniform mat4 model, view, projection, inverseModel; +uniform vec3 eyePosition, lightPosition; + +varying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position; +varying vec4 f_color; +varying vec2 f_uv; + +void main() { + // Scale the vector magnitude to stay constant with + // model & view changes. + vec3 normal; + vec3 XYZ = getConePosition(mat3(model) * ((vectorScale * coneScale) * vector), position.w, coneOffset, normal); + vec4 conePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0); + + //Lighting geometry parameters + vec4 cameraCoordinate = view * conePosition; + cameraCoordinate.xyz /= cameraCoordinate.w; + f_lightDirection = lightPosition - cameraCoordinate.xyz; + f_eyeDirection = eyePosition - cameraCoordinate.xyz; + f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz); + + // vec4 m_position = model * vec4(conePosition, 1.0); + vec4 t_position = view * conePosition; + gl_Position = projection * t_position; + + f_color = color; + f_data = conePosition.xyz; + f_position = position.xyz; + f_uv = uv; +} +`]),l=i([`#extension GL_OES_standard_derivatives : enable + +precision highp float; +#define GLSLIFY 1 + +float beckmannDistribution(float x, float roughness) { + float NdotH = max(x, 0.0001); + float cos2Alpha = NdotH * NdotH; + float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha; + float roughness2 = roughness * roughness; + float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha; + return exp(tan2Alpha / roughness2) / denom; +} + +float cookTorranceSpecular( + vec3 lightDirection, + vec3 viewDirection, + vec3 surfaceNormal, + float roughness, + float fresnel) { + + float VdotN = max(dot(viewDirection, surfaceNormal), 0.0); + float LdotN = max(dot(lightDirection, surfaceNormal), 0.0); + + //Half angle vector + vec3 H = normalize(lightDirection + viewDirection); + + //Geometric term + float NdotH = max(dot(surfaceNormal, H), 0.0); + float VdotH = max(dot(viewDirection, H), 0.000001); + float LdotH = max(dot(lightDirection, H), 0.000001); + float G1 = (2.0 * NdotH * VdotN) / VdotH; + float G2 = (2.0 * NdotH * LdotN) / LdotH; + float G = min(1.0, min(G1, G2)); + + //Distribution term + float D = beckmannDistribution(NdotH, roughness); + + //Fresnel term + float F = pow(1.0 - VdotN, fresnel); + + //Multiply terms and done + return G * F * D / max(3.14159265 * VdotN, 0.000001); +} + +bool outOfRange(float a, float b, float p) { + return ((p > max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +uniform vec3 clipBounds[2]; +uniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity; +uniform sampler2D texture; + +varying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position; +varying vec4 f_color; +varying vec2 f_uv; + +void main() { + if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard; + vec3 N = normalize(f_normal); + vec3 L = normalize(f_lightDirection); + vec3 V = normalize(f_eyeDirection); + + if(gl_FrontFacing) { + N = -N; + } + + float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel))); + float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0); + + vec4 surfaceColor = f_color * texture2D(texture, f_uv); + vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0); + + gl_FragColor = litColor * opacity; +} +`]),d=i([`precision highp float; + +precision highp float; +#define GLSLIFY 1 + +vec3 getOrthogonalVector(vec3 v) { + // Return up-vector for only-z vector. + // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0). + // From the above if-statement we have ||a|| > 0 U ||b|| > 0. + // Assign z = 0, x = -b, y = a: + // a*-b + b*a + c*0 = -ba + ba + 0 = 0 + if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) { + return normalize(vec3(-v.y, v.x, 0.0)); + } else { + return normalize(vec3(0.0, v.z, -v.y)); + } +} + +// Calculate the cone vertex and normal at the given index. +// +// The returned vertex is for a cone with its top at origin and height of 1.0, +// pointing in the direction of the vector attribute. +// +// Each cone is made up of a top vertex, a center base vertex and base perimeter vertices. +// These vertices are used to make up the triangles of the cone by the following: +// segment + 0 top vertex +// segment + 1 perimeter vertex a+1 +// segment + 2 perimeter vertex a +// segment + 3 center base vertex +// segment + 4 perimeter vertex a +// segment + 5 perimeter vertex a+1 +// Where segment is the number of the radial segment * 6 and a is the angle at that radial segment. +// To go from index to segment, floor(index / 6) +// To go from segment to angle, 2*pi * (segment/segmentCount) +// To go from index to segment index, index - (segment*6) +// +vec3 getConePosition(vec3 d, float rawIndex, float coneOffset, out vec3 normal) { + + const float segmentCount = 8.0; + + float index = rawIndex - floor(rawIndex / + (segmentCount * 6.0)) * + (segmentCount * 6.0); + + float segment = floor(0.001 + index/6.0); + float segmentIndex = index - (segment*6.0); + + normal = -normalize(d); + + if (segmentIndex > 2.99 && segmentIndex < 3.01) { + return mix(vec3(0.0), -d, coneOffset); + } + + float nextAngle = ( + (segmentIndex > 0.99 && segmentIndex < 1.01) || + (segmentIndex > 4.99 && segmentIndex < 5.01) + ) ? 1.0 : 0.0; + float angle = 2.0 * 3.14159 * ((segment + nextAngle) / segmentCount); + + vec3 v1 = mix(d, vec3(0.0), coneOffset); + vec3 v2 = v1 - d; + + vec3 u = getOrthogonalVector(d); + vec3 v = normalize(cross(u, d)); + + vec3 x = u * cos(angle) * length(d)*0.25; + vec3 y = v * sin(angle) * length(d)*0.25; + vec3 v3 = v2 + x + y; + if (segmentIndex < 3.0) { + vec3 tx = u * sin(angle); + vec3 ty = v * -cos(angle); + vec3 tangent = tx + ty; + normal = normalize(cross(v3 - v1, tangent)); + } + + if (segmentIndex == 0.0) { + return mix(d, vec3(0.0), coneOffset); + } + return v3; +} + +attribute vec4 vector; +attribute vec4 position; +attribute vec4 id; + +uniform mat4 model, view, projection; +uniform float vectorScale, coneScale, coneOffset; + +varying vec3 f_position; +varying vec4 f_id; + +void main() { + vec3 normal; + vec3 XYZ = getConePosition(mat3(model) * ((vectorScale * coneScale) * vector.xyz), position.w, coneOffset, normal); + vec4 conePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0); + gl_Position = projection * view * conePosition; + f_id = id; + f_position = position.xyz; +} +`]),h=i([`precision highp float; +#define GLSLIFY 1 + +bool outOfRange(float a, float b, float p) { + return ((p > max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +uniform vec3 clipBounds[2]; +uniform float pickId; + +varying vec3 f_position; +varying vec4 f_id; + +void main() { + if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard; + + gl_FragColor = vec4(pickId, f_id.xyz); +}`]);c.meshShader={vertex:s,fragment:l,attributes:[{name:"position",type:"vec4"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"},{name:"vector",type:"vec3"}]},c.pickShader={vertex:d,fragment:h,attributes:[{name:"position",type:"vec4"},{name:"id",type:"vec4"},{name:"vector",type:"vec3"}]}},{glslify:231}],82:[function(a,u,c){u.exports={0:"NONE",1:"ONE",2:"LINE_LOOP",3:"LINE_STRIP",4:"TRIANGLES",5:"TRIANGLE_STRIP",6:"TRIANGLE_FAN",256:"DEPTH_BUFFER_BIT",512:"NEVER",513:"LESS",514:"EQUAL",515:"LEQUAL",516:"GREATER",517:"NOTEQUAL",518:"GEQUAL",519:"ALWAYS",768:"SRC_COLOR",769:"ONE_MINUS_SRC_COLOR",770:"SRC_ALPHA",771:"ONE_MINUS_SRC_ALPHA",772:"DST_ALPHA",773:"ONE_MINUS_DST_ALPHA",774:"DST_COLOR",775:"ONE_MINUS_DST_COLOR",776:"SRC_ALPHA_SATURATE",1024:"STENCIL_BUFFER_BIT",1028:"FRONT",1029:"BACK",1032:"FRONT_AND_BACK",1280:"INVALID_ENUM",1281:"INVALID_VALUE",1282:"INVALID_OPERATION",1285:"OUT_OF_MEMORY",1286:"INVALID_FRAMEBUFFER_OPERATION",2304:"CW",2305:"CCW",2849:"LINE_WIDTH",2884:"CULL_FACE",2885:"CULL_FACE_MODE",2886:"FRONT_FACE",2928:"DEPTH_RANGE",2929:"DEPTH_TEST",2930:"DEPTH_WRITEMASK",2931:"DEPTH_CLEAR_VALUE",2932:"DEPTH_FUNC",2960:"STENCIL_TEST",2961:"STENCIL_CLEAR_VALUE",2962:"STENCIL_FUNC",2963:"STENCIL_VALUE_MASK",2964:"STENCIL_FAIL",2965:"STENCIL_PASS_DEPTH_FAIL",2966:"STENCIL_PASS_DEPTH_PASS",2967:"STENCIL_REF",2968:"STENCIL_WRITEMASK",2978:"VIEWPORT",3024:"DITHER",3042:"BLEND",3088:"SCISSOR_BOX",3089:"SCISSOR_TEST",3106:"COLOR_CLEAR_VALUE",3107:"COLOR_WRITEMASK",3317:"UNPACK_ALIGNMENT",3333:"PACK_ALIGNMENT",3379:"MAX_TEXTURE_SIZE",3386:"MAX_VIEWPORT_DIMS",3408:"SUBPIXEL_BITS",3410:"RED_BITS",3411:"GREEN_BITS",3412:"BLUE_BITS",3413:"ALPHA_BITS",3414:"DEPTH_BITS",3415:"STENCIL_BITS",3553:"TEXTURE_2D",4352:"DONT_CARE",4353:"FASTEST",4354:"NICEST",5120:"BYTE",5121:"UNSIGNED_BYTE",5122:"SHORT",5123:"UNSIGNED_SHORT",5124:"INT",5125:"UNSIGNED_INT",5126:"FLOAT",5386:"INVERT",5890:"TEXTURE",6401:"STENCIL_INDEX",6402:"DEPTH_COMPONENT",6406:"ALPHA",6407:"RGB",6408:"RGBA",6409:"LUMINANCE",6410:"LUMINANCE_ALPHA",7680:"KEEP",7681:"REPLACE",7682:"INCR",7683:"DECR",7936:"VENDOR",7937:"RENDERER",7938:"VERSION",9728:"NEAREST",9729:"LINEAR",9984:"NEAREST_MIPMAP_NEAREST",9985:"LINEAR_MIPMAP_NEAREST",9986:"NEAREST_MIPMAP_LINEAR",9987:"LINEAR_MIPMAP_LINEAR",10240:"TEXTURE_MAG_FILTER",10241:"TEXTURE_MIN_FILTER",10242:"TEXTURE_WRAP_S",10243:"TEXTURE_WRAP_T",10497:"REPEAT",10752:"POLYGON_OFFSET_UNITS",16384:"COLOR_BUFFER_BIT",32769:"CONSTANT_COLOR",32770:"ONE_MINUS_CONSTANT_COLOR",32771:"CONSTANT_ALPHA",32772:"ONE_MINUS_CONSTANT_ALPHA",32773:"BLEND_COLOR",32774:"FUNC_ADD",32777:"BLEND_EQUATION_RGB",32778:"FUNC_SUBTRACT",32779:"FUNC_REVERSE_SUBTRACT",32819:"UNSIGNED_SHORT_4_4_4_4",32820:"UNSIGNED_SHORT_5_5_5_1",32823:"POLYGON_OFFSET_FILL",32824:"POLYGON_OFFSET_FACTOR",32854:"RGBA4",32855:"RGB5_A1",32873:"TEXTURE_BINDING_2D",32926:"SAMPLE_ALPHA_TO_COVERAGE",32928:"SAMPLE_COVERAGE",32936:"SAMPLE_BUFFERS",32937:"SAMPLES",32938:"SAMPLE_COVERAGE_VALUE",32939:"SAMPLE_COVERAGE_INVERT",32968:"BLEND_DST_RGB",32969:"BLEND_SRC_RGB",32970:"BLEND_DST_ALPHA",32971:"BLEND_SRC_ALPHA",33071:"CLAMP_TO_EDGE",33170:"GENERATE_MIPMAP_HINT",33189:"DEPTH_COMPONENT16",33306:"DEPTH_STENCIL_ATTACHMENT",33635:"UNSIGNED_SHORT_5_6_5",33648:"MIRRORED_REPEAT",33901:"ALIASED_POINT_SIZE_RANGE",33902:"ALIASED_LINE_WIDTH_RANGE",33984:"TEXTURE0",33985:"TEXTURE1",33986:"TEXTURE2",33987:"TEXTURE3",33988:"TEXTURE4",33989:"TEXTURE5",33990:"TEXTURE6",33991:"TEXTURE7",33992:"TEXTURE8",33993:"TEXTURE9",33994:"TEXTURE10",33995:"TEXTURE11",33996:"TEXTURE12",33997:"TEXTURE13",33998:"TEXTURE14",33999:"TEXTURE15",34e3:"TEXTURE16",34001:"TEXTURE17",34002:"TEXTURE18",34003:"TEXTURE19",34004:"TEXTURE20",34005:"TEXTURE21",34006:"TEXTURE22",34007:"TEXTURE23",34008:"TEXTURE24",34009:"TEXTURE25",34010:"TEXTURE26",34011:"TEXTURE27",34012:"TEXTURE28",34013:"TEXTURE29",34014:"TEXTURE30",34015:"TEXTURE31",34016:"ACTIVE_TEXTURE",34024:"MAX_RENDERBUFFER_SIZE",34041:"DEPTH_STENCIL",34055:"INCR_WRAP",34056:"DECR_WRAP",34067:"TEXTURE_CUBE_MAP",34068:"TEXTURE_BINDING_CUBE_MAP",34069:"TEXTURE_CUBE_MAP_POSITIVE_X",34070:"TEXTURE_CUBE_MAP_NEGATIVE_X",34071:"TEXTURE_CUBE_MAP_POSITIVE_Y",34072:"TEXTURE_CUBE_MAP_NEGATIVE_Y",34073:"TEXTURE_CUBE_MAP_POSITIVE_Z",34074:"TEXTURE_CUBE_MAP_NEGATIVE_Z",34076:"MAX_CUBE_MAP_TEXTURE_SIZE",34338:"VERTEX_ATTRIB_ARRAY_ENABLED",34339:"VERTEX_ATTRIB_ARRAY_SIZE",34340:"VERTEX_ATTRIB_ARRAY_STRIDE",34341:"VERTEX_ATTRIB_ARRAY_TYPE",34342:"CURRENT_VERTEX_ATTRIB",34373:"VERTEX_ATTRIB_ARRAY_POINTER",34466:"NUM_COMPRESSED_TEXTURE_FORMATS",34467:"COMPRESSED_TEXTURE_FORMATS",34660:"BUFFER_SIZE",34661:"BUFFER_USAGE",34816:"STENCIL_BACK_FUNC",34817:"STENCIL_BACK_FAIL",34818:"STENCIL_BACK_PASS_DEPTH_FAIL",34819:"STENCIL_BACK_PASS_DEPTH_PASS",34877:"BLEND_EQUATION_ALPHA",34921:"MAX_VERTEX_ATTRIBS",34922:"VERTEX_ATTRIB_ARRAY_NORMALIZED",34930:"MAX_TEXTURE_IMAGE_UNITS",34962:"ARRAY_BUFFER",34963:"ELEMENT_ARRAY_BUFFER",34964:"ARRAY_BUFFER_BINDING",34965:"ELEMENT_ARRAY_BUFFER_BINDING",34975:"VERTEX_ATTRIB_ARRAY_BUFFER_BINDING",35040:"STREAM_DRAW",35044:"STATIC_DRAW",35048:"DYNAMIC_DRAW",35632:"FRAGMENT_SHADER",35633:"VERTEX_SHADER",35660:"MAX_VERTEX_TEXTURE_IMAGE_UNITS",35661:"MAX_COMBINED_TEXTURE_IMAGE_UNITS",35663:"SHADER_TYPE",35664:"FLOAT_VEC2",35665:"FLOAT_VEC3",35666:"FLOAT_VEC4",35667:"INT_VEC2",35668:"INT_VEC3",35669:"INT_VEC4",35670:"BOOL",35671:"BOOL_VEC2",35672:"BOOL_VEC3",35673:"BOOL_VEC4",35674:"FLOAT_MAT2",35675:"FLOAT_MAT3",35676:"FLOAT_MAT4",35678:"SAMPLER_2D",35680:"SAMPLER_CUBE",35712:"DELETE_STATUS",35713:"COMPILE_STATUS",35714:"LINK_STATUS",35715:"VALIDATE_STATUS",35716:"INFO_LOG_LENGTH",35717:"ATTACHED_SHADERS",35718:"ACTIVE_UNIFORMS",35719:"ACTIVE_UNIFORM_MAX_LENGTH",35720:"SHADER_SOURCE_LENGTH",35721:"ACTIVE_ATTRIBUTES",35722:"ACTIVE_ATTRIBUTE_MAX_LENGTH",35724:"SHADING_LANGUAGE_VERSION",35725:"CURRENT_PROGRAM",36003:"STENCIL_BACK_REF",36004:"STENCIL_BACK_VALUE_MASK",36005:"STENCIL_BACK_WRITEMASK",36006:"FRAMEBUFFER_BINDING",36007:"RENDERBUFFER_BINDING",36048:"FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE",36049:"FRAMEBUFFER_ATTACHMENT_OBJECT_NAME",36050:"FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL",36051:"FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE",36053:"FRAMEBUFFER_COMPLETE",36054:"FRAMEBUFFER_INCOMPLETE_ATTACHMENT",36055:"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT",36057:"FRAMEBUFFER_INCOMPLETE_DIMENSIONS",36061:"FRAMEBUFFER_UNSUPPORTED",36064:"COLOR_ATTACHMENT0",36096:"DEPTH_ATTACHMENT",36128:"STENCIL_ATTACHMENT",36160:"FRAMEBUFFER",36161:"RENDERBUFFER",36162:"RENDERBUFFER_WIDTH",36163:"RENDERBUFFER_HEIGHT",36164:"RENDERBUFFER_INTERNAL_FORMAT",36168:"STENCIL_INDEX8",36176:"RENDERBUFFER_RED_SIZE",36177:"RENDERBUFFER_GREEN_SIZE",36178:"RENDERBUFFER_BLUE_SIZE",36179:"RENDERBUFFER_ALPHA_SIZE",36180:"RENDERBUFFER_DEPTH_SIZE",36181:"RENDERBUFFER_STENCIL_SIZE",36194:"RGB565",36336:"LOW_FLOAT",36337:"MEDIUM_FLOAT",36338:"HIGH_FLOAT",36339:"LOW_INT",36340:"MEDIUM_INT",36341:"HIGH_INT",36346:"SHADER_COMPILER",36347:"MAX_VERTEX_UNIFORM_VECTORS",36348:"MAX_VARYING_VECTORS",36349:"MAX_FRAGMENT_UNIFORM_VECTORS",37440:"UNPACK_FLIP_Y_WEBGL",37441:"UNPACK_PREMULTIPLY_ALPHA_WEBGL",37442:"CONTEXT_LOST_WEBGL",37443:"UNPACK_COLORSPACE_CONVERSION_WEBGL",37444:"BROWSER_DEFAULT_WEBGL"}},{}],83:[function(a,u,c){var i=a("./1.0/numbers");u.exports=function(s){return i[s]}},{"./1.0/numbers":82}],84:[function(a,u,c){u.exports=function(y){var x=y.gl,w=i(x),k=s(x,[{buffer:w,type:x.FLOAT,size:3,offset:0,stride:40},{buffer:w,type:x.FLOAT,size:4,offset:12,stride:40},{buffer:w,type:x.FLOAT,size:3,offset:28,stride:40}]),b=l(x);b.attributes.position.location=0,b.attributes.color.location=1,b.attributes.offset.location=2;var T=new h(x,w,k,b);return T.update(y),T};var i=a("gl-buffer"),s=a("gl-vao"),l=a("./shaders/index"),d=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function h(y,x,w,k){this.gl=y,this.shader=k,this.buffer=x,this.vao=w,this.pixelRatio=1,this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.lineWidth=[1,1,1],this.capSize=[10,10,10],this.lineCount=[0,0,0],this.lineOffset=[0,0,0],this.opacity=1,this.hasAlpha=!1}var m=h.prototype;function g(y,x){for(var w=0;w<3;++w)y[0][w]=Math.min(y[0][w],x[w]),y[1][w]=Math.max(y[1][w],x[w])}m.isOpaque=function(){return!this.hasAlpha},m.isTransparent=function(){return this.hasAlpha},m.drawTransparent=m.draw=function(y){var x=this.gl,w=this.shader.uniforms;this.shader.bind();var k=w.view=y.view||d,b=w.projection=y.projection||d;w.model=y.model||d,w.clipBounds=this.clipBounds,w.opacity=this.opacity;var T=k[12],_=k[13],M=k[14],A=k[15],S=(y._ortho?2:1)*this.pixelRatio*(b[3]*T+b[7]*_+b[11]*M+b[15]*A)/x.drawingBufferHeight;this.vao.bind();for(var E=0;E<3;++E)x.lineWidth(this.lineWidth[E]*this.pixelRatio),w.capSize=this.capSize[E]*S,this.lineCount[E]&&x.drawArrays(x.LINES,this.lineOffset[E],this.lineCount[E]);this.vao.unbind()};var p=function(){for(var y=new Array(3),x=0;x<3;++x){for(var w=[],k=1;k<=2;++k)for(var b=-1;b<=1;b+=2){var T=[0,0,0];T[(k+x)%3]=b,w.push(T)}y[x]=w}return y}();function v(y,x,w,k){for(var b=p[k],T=0;T0&&((R=S.slice())[M]+=D[1][M],b.push(S[0],S[1],S[2],O[0],O[1],O[2],O[3],0,0,0,R[0],R[1],R[2],O[0],O[1],O[2],O[3],0,0,0),g(this.bounds,R),_+=2+v(b,R,O,M))}}this.lineCount[M]=_-this.lineOffset[M]}this.buffer.update(b)}},m.dispose=function(){this.shader.dispose(),this.buffer.dispose(),this.vao.dispose()}},{"./shaders/index":85,"gl-buffer":78,"gl-vao":150}],85:[function(a,u,c){var i=a("glslify"),s=a("gl-shader"),l=i([`precision highp float; +#define GLSLIFY 1 + +attribute vec3 position, offset; +attribute vec4 color; +uniform mat4 model, view, projection; +uniform float capSize; +varying vec4 fragColor; +varying vec3 fragPosition; + +void main() { + vec4 worldPosition = model * vec4(position, 1.0); + worldPosition = (worldPosition / worldPosition.w) + vec4(capSize * offset, 0.0); + gl_Position = projection * view * worldPosition; + fragColor = color; + fragPosition = position; +}`]),d=i([`precision highp float; +#define GLSLIFY 1 + +bool outOfRange(float a, float b, float p) { + return ((p > max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +uniform vec3 clipBounds[2]; +uniform float opacity; +varying vec3 fragPosition; +varying vec4 fragColor; + +void main() { + if ( + outOfRange(clipBounds[0], clipBounds[1], fragPosition) || + fragColor.a * opacity == 0. + ) discard; + + gl_FragColor = opacity * fragColor; +}`]);u.exports=function(h){return s(h,l,d,null,[{name:"position",type:"vec3"},{name:"color",type:"vec4"},{name:"offset",type:"vec3"}])}},{"gl-shader":132,glslify:231}],86:[function(a,u,c){var i=a("gl-texture2d");u.exports=function(T,_,M,A){s||(s=T.FRAMEBUFFER_UNSUPPORTED,l=T.FRAMEBUFFER_INCOMPLETE_ATTACHMENT,d=T.FRAMEBUFFER_INCOMPLETE_DIMENSIONS,h=T.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT);var S=T.getExtension("WEBGL_draw_buffers");if(!m&&S&&function(P,N){var B=P.getParameter(N.MAX_COLOR_ATTACHMENTS_WEBGL);m=new Array(B+1);for(var G=0;G<=B;++G){for(var W=new Array(B),K=0;KE||M<0||M>E)throw new Error("gl-fbo: Parameters are too large for FBO");var D=1;if("color"in(A=A||{})){if((D=Math.max(0|A.color,0))<0)throw new Error("gl-fbo: Must specify a nonnegative number of colors");if(D>1){if(!S)throw new Error("gl-fbo: Multiple draw buffer extension not supported");if(D>T.getParameter(S.MAX_COLOR_ATTACHMENTS_WEBGL))throw new Error("gl-fbo: Context does not support "+D+" draw buffers")}}var O=T.UNSIGNED_BYTE,R=T.getExtension("OES_texture_float");if(A.float&&D>0){if(!R)throw new Error("gl-fbo: Context does not support floating point textures");O=T.FLOAT}else A.preferFloat&&D>0&&R&&(O=T.FLOAT);var z=!0;"depth"in A&&(z=!!A.depth);var L=!1;return"stencil"in A&&(L=!!A.stencil),new w(T,_,M,O,D,z,L,S)};var s,l,d,h,m=null;function g(T){return[T.getParameter(T.FRAMEBUFFER_BINDING),T.getParameter(T.RENDERBUFFER_BINDING),T.getParameter(T.TEXTURE_BINDING_2D)]}function p(T,_){T.bindFramebuffer(T.FRAMEBUFFER,_[0]),T.bindRenderbuffer(T.RENDERBUFFER,_[1]),T.bindTexture(T.TEXTURE_2D,_[2])}function v(T){switch(T){case s:throw new Error("gl-fbo: Framebuffer unsupported");case l:throw new Error("gl-fbo: Framebuffer incomplete attachment");case d:throw new Error("gl-fbo: Framebuffer incomplete dimensions");case h:throw new Error("gl-fbo: Framebuffer incomplete missing attachment");default:throw new Error("gl-fbo: Framebuffer failed for unspecified reason")}}function y(T,_,M,A,S,E){if(!A)return null;var D=i(T,_,M,S,A);return D.magFilter=T.NEAREST,D.minFilter=T.NEAREST,D.mipSamples=1,D.bind(),T.framebufferTexture2D(T.FRAMEBUFFER,E,T.TEXTURE_2D,D.handle,0),D}function x(T,_,M,A,S){var E=T.createRenderbuffer();return T.bindRenderbuffer(T.RENDERBUFFER,E),T.renderbufferStorage(T.RENDERBUFFER,A,_,M),T.framebufferRenderbuffer(T.FRAMEBUFFER,S,T.RENDERBUFFER,E),E}function w(T,_,M,A,S,E,D,O){this.gl=T,this._shape=[0|_,0|M],this._destroyed=!1,this._ext=O,this.color=new Array(S);for(var R=0;R1&&Y.drawBuffersWEBGL(m[te]);var $=B.getExtension("WEBGL_depth_texture");$?Z?P.depth=y(B,W,K,$.UNSIGNED_INT_24_8_WEBGL,B.DEPTH_STENCIL,B.DEPTH_STENCIL_ATTACHMENT):re&&(P.depth=y(B,W,K,B.UNSIGNED_SHORT,B.DEPTH_COMPONENT,B.DEPTH_ATTACHMENT)):re&&Z?P._depth_rb=x(B,W,K,B.DEPTH_STENCIL,B.DEPTH_STENCIL_ATTACHMENT):re?P._depth_rb=x(B,W,K,B.DEPTH_COMPONENT16,B.DEPTH_ATTACHMENT):Z&&(P._depth_rb=x(B,W,K,B.STENCIL_INDEX,B.STENCIL_ATTACHMENT));var ne=B.checkFramebufferStatus(B.FRAMEBUFFER);if(ne!==B.FRAMEBUFFER_COMPLETE){for(P._destroyed=!0,B.bindFramebuffer(B.FRAMEBUFFER,null),B.deleteFramebuffer(P.handle),P.handle=null,P.depth&&(P.depth.dispose(),P.depth=null),P._depth_rb&&(B.deleteRenderbuffer(P._depth_rb),P._depth_rb=null),q=0;qS||M<0||M>S)throw new Error("gl-fbo: Can't resize FBO, invalid dimensions");T._shape[0]=_,T._shape[1]=M;for(var E=g(A),D=0;D>8*z&255;this.pickOffset=k,T.bind();var L=T.uniforms;L.viewTransform=x,L.pickOffset=w,L.shape=this.shape;var P=T.attributes;return this.positionBuffer.bind(),P.position.pointer(),this.weightBuffer.bind(),P.weight.pointer(A.UNSIGNED_BYTE,!1),this.idBuffer.bind(),P.pickId.pointer(A.UNSIGNED_BYTE,!1),A.drawArrays(A.TRIANGLES,0,M),k+this.shape[0]*this.shape[1]}}}(),v.pick=function(x,w,k){var b=this.pickOffset,T=this.shape[0]*this.shape[1];if(k=b+T)return null;var _=k-b,M=this.xData,A=this.yData;return{object:this,pointId:_,dataCoord:[M[_%this.shape[0]],A[_/this.shape[0]|0]]}},v.update=function(x){var w=(x=x||{}).shape||[0,0],k=x.x||s(w[0]),b=x.y||s(w[1]),T=x.z||new Float32Array(w[0]*w[1]),_=x.zsmooth!==!1;this.xData=k,this.yData=b;var M,A,S,E,D=x.colorLevels||[0],O=x.colorValues||[0,0,0,1],R=D.length,z=this.bounds;_?(M=z[0]=k[0],A=z[1]=b[0],S=z[2]=k[k.length-1],E=z[3]=b[b.length-1]):(M=z[0]=k[0]+(k[1]-k[0])/2,A=z[1]=b[0]+(b[1]-b[0])/2,S=z[2]=k[k.length-1]+(k[k.length-1]-k[k.length-2])/2,E=z[3]=b[b.length-1]+(b[b.length-1]-b[b.length-2])/2);var L=1/(S-M),P=1/(E-A),N=w[0],B=w[1];this.shape=[N,B];var G=(_?(N-1)*(B-1):N*B)*(y.length>>>1);this.numVertices=G;for(var W=l.mallocUint8(4*G),K=l.mallocFloat32(2*G),te=l.mallocUint8(2*G),Y=l.mallocUint32(G),Z=0,re=_?N-1:N,U=_?B-1:B,q=0;q max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +uniform vec3 clipBounds[2]; +uniform sampler2D dashTexture; +uniform float dashScale; +uniform float opacity; + +varying vec3 worldPosition; +varying float pixelArcLength; +varying vec4 fragColor; + +void main() { + if ( + outOfRange(clipBounds[0], clipBounds[1], worldPosition) || + fragColor.a * opacity == 0. + ) discard; + + float dashWeight = texture2D(dashTexture, vec2(dashScale * pixelArcLength, 0)).r; + if(dashWeight < 0.5) { + discard; + } + gl_FragColor = fragColor * opacity; +} +`]),h=i([`precision highp float; +#define GLSLIFY 1 + +#define FLOAT_MAX 1.70141184e38 +#define FLOAT_MIN 1.17549435e-38 + +// https://github.com/mikolalysenko/glsl-read-float/blob/master/index.glsl +vec4 packFloat(float v) { + float av = abs(v); + + //Handle special cases + if(av < FLOAT_MIN) { + return vec4(0.0, 0.0, 0.0, 0.0); + } else if(v > FLOAT_MAX) { + return vec4(127.0, 128.0, 0.0, 0.0) / 255.0; + } else if(v < -FLOAT_MAX) { + return vec4(255.0, 128.0, 0.0, 0.0) / 255.0; + } + + vec4 c = vec4(0,0,0,0); + + //Compute exponent and mantissa + float e = floor(log2(av)); + float m = av * pow(2.0, -e) - 1.0; + + //Unpack mantissa + c[1] = floor(128.0 * m); + m -= c[1] / 128.0; + c[2] = floor(32768.0 * m); + m -= c[2] / 32768.0; + c[3] = floor(8388608.0 * m); + + //Unpack exponent + float ebias = e + 127.0; + c[0] = floor(ebias / 2.0); + ebias -= c[0] * 2.0; + c[1] += floor(ebias) * 128.0; + + //Unpack sign bit + c[0] += 128.0 * step(0.0, -v); + + //Scale back to range + return c / 255.0; +} + +bool outOfRange(float a, float b, float p) { + return ((p > max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +uniform float pickId; +uniform vec3 clipBounds[2]; + +varying vec3 worldPosition; +varying float pixelArcLength; +varying vec4 fragColor; + +void main() { + if (outOfRange(clipBounds[0], clipBounds[1], worldPosition)) discard; + + gl_FragColor = vec4(pickId/255.0, packFloat(pixelArcLength).xyz); +}`]),m=[{name:"position",type:"vec3"},{name:"nextPosition",type:"vec3"},{name:"arcLength",type:"float"},{name:"lineWidth",type:"float"},{name:"color",type:"vec4"}];c.createShader=function(g){return s(g,l,d,null,m)},c.createPickShader=function(g){return s(g,l,h,null,m)}},{"gl-shader":132,glslify:231}],91:[function(a,u,c){u.exports=function(M){var A=M.gl||M.scene&&M.scene.gl,S=v(A);S.attributes.position.location=0,S.attributes.nextPosition.location=1,S.attributes.arcLength.location=2,S.attributes.lineWidth.location=3,S.attributes.color.location=4;var E=y(A);E.attributes.position.location=0,E.attributes.nextPosition.location=1,E.attributes.arcLength.location=2,E.attributes.lineWidth.location=3,E.attributes.color.location=4;for(var D=i(A),O=s(A,[{buffer:D,size:3,offset:0,stride:48},{buffer:D,size:3,offset:12,stride:48},{buffer:D,size:1,offset:24,stride:48},{buffer:D,size:1,offset:28,stride:48},{buffer:D,size:4,offset:32,stride:48}]),R=g(new Array(1024),[256,1,4]),z=0;z<1024;++z)R.data[z]=255;var L=l(A,R);L.wrap=A.REPEAT;var P=new T(A,S,E,D,O,L);return P.update(M),P};var i=a("gl-buffer"),s=a("gl-vao"),l=a("gl-texture2d"),d=new Uint8Array(4),h=new Float32Array(d.buffer),m=a("binary-search-bounds"),g=a("ndarray"),p=a("./lib/shaders"),v=p.createShader,y=p.createPickShader,x=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function w(M,A){for(var S=0,E=0;E<3;++E){var D=M[E]-A[E];S+=D*D}return Math.sqrt(S)}function k(M){for(var A=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],S=0;S<3;++S)A[0][S]=Math.max(M[0][S],A[0][S]),A[1][S]=Math.min(M[1][S],A[1][S]);return A}function b(M,A,S,E){this.arcLength=M,this.position=A,this.index=S,this.dataCoordinate=E}function T(M,A,S,E,D,O){this.gl=M,this.shader=A,this.pickShader=S,this.buffer=E,this.vao=D,this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.points=[],this.arcLength=[],this.vertexCount=0,this.bounds=[[0,0,0],[0,0,0]],this.pickId=0,this.lineWidth=1,this.texture=O,this.dashScale=1,this.opacity=1,this.hasAlpha=!1,this.dirty=!0,this.pixelRatio=1}var _=T.prototype;_.isTransparent=function(){return this.hasAlpha},_.isOpaque=function(){return!this.hasAlpha},_.pickSlots=1,_.setPickBase=function(M){this.pickId=M},_.drawTransparent=_.draw=function(M){if(this.vertexCount){var A=this.gl,S=this.shader,E=this.vao;S.bind(),S.uniforms={model:M.model||x,view:M.view||x,projection:M.projection||x,clipBounds:k(this.clipBounds),dashTexture:this.texture.bind(),dashScale:this.dashScale/this.arcLength[this.arcLength.length-1],opacity:this.opacity,screenShape:[A.drawingBufferWidth,A.drawingBufferHeight],pixelRatio:this.pixelRatio},E.bind(),E.draw(A.TRIANGLE_STRIP,this.vertexCount),E.unbind()}},_.drawPick=function(M){if(this.vertexCount){var A=this.gl,S=this.pickShader,E=this.vao;S.bind(),S.uniforms={model:M.model||x,view:M.view||x,projection:M.projection||x,pickId:this.pickId,clipBounds:k(this.clipBounds),screenShape:[A.drawingBufferWidth,A.drawingBufferHeight],pixelRatio:this.pixelRatio},E.bind(),E.draw(A.TRIANGLE_STRIP,this.vertexCount),E.unbind()}},_.update=function(M){var A,S;this.dirty=!0;var E=!!M.connectGaps;"dashScale"in M&&(this.dashScale=M.dashScale),this.hasAlpha=!1,"opacity"in M&&(this.opacity=+M.opacity,this.opacity<1&&(this.hasAlpha=!0));var D=[],O=[],R=[],z=0,L=0,P=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],N=M.position||M.positions;if(N){var B=M.color||M.colors||[0,0,0,1],G=M.lineWidth||1,W=!1;e:for(A=1;A0){for(var U=0;U<24;++U)D.push(D[D.length-12]);L+=2,W=!0}continue e}P[0][S]=Math.min(P[0][S],Z[S],re[S]),P[1][S]=Math.max(P[1][S],Z[S],re[S])}Array.isArray(B[0])?(K=B.length>A-1?B[A-1]:B.length>0?B[B.length-1]:[0,0,0,1],te=B.length>A?B[A]:B.length>0?B[B.length-1]:[0,0,0,1]):K=te=B,K.length===3&&(K=[K[0],K[1],K[2],1]),te.length===3&&(te=[te[0],te[1],te[2],1]),!this.hasAlpha&&K[3]<1&&(this.hasAlpha=!0),Y=Array.isArray(G)?G.length>A-1?G[A-1]:G.length>0?G[G.length-1]:[0,0,0,1]:G;var q=z;if(z+=w(Z,re),W){for(S=0;S<2;++S)D.push(Z[0],Z[1],Z[2],re[0],re[1],re[2],q,Y,K[0],K[1],K[2],K[3]);L+=2,W=!1}D.push(Z[0],Z[1],Z[2],re[0],re[1],re[2],q,Y,K[0],K[1],K[2],K[3],Z[0],Z[1],Z[2],re[0],re[1],re[2],q,-Y,K[0],K[1],K[2],K[3],re[0],re[1],re[2],Z[0],Z[1],Z[2],z,-Y,te[0],te[1],te[2],te[3],re[0],re[1],re[2],Z[0],Z[1],Z[2],z,Y,te[0],te[1],te[2],te[3]),L+=4}}if(this.buffer.update(D),O.push(z),R.push(N[N.length-1].slice()),this.bounds=P,this.vertexCount=L,this.points=R,this.arcLength=O,"dashes"in M){var $=M.dashes.slice();for($.unshift(0),A=1;A<$.length;++A)$[A]=$[A-1]+$[A];var ne=g(new Array(1024),[256,1,4]);for(A=0;A<256;++A){for(S=0;S<4;++S)ne.set(A,0,S,0);1&m.le($,$[$.length-1]*A/255)?ne.set(A,0,0,0):ne.set(A,0,0,255)}this.texture.setPixels(ne)}},_.dispose=function(){this.shader.dispose(),this.vao.dispose(),this.buffer.dispose()},_.pick=function(M){if(!M||M.id!==this.pickId)return null;var A=function(N,B,G,W){return d[0]=W,d[1]=G,d[2]=B,d[3]=N,h[0]}(M.value[0],M.value[1],M.value[2],0),S=m.le(this.arcLength,A);if(S<0)return null;if(S===this.arcLength.length-1)return new b(this.arcLength[this.arcLength.length-1],this.points[this.points.length-1].slice(),S);for(var E=this.points[S],D=this.points[Math.min(S+1,this.points.length-1)],O=(A-this.arcLength[S])/(this.arcLength[S+1]-this.arcLength[S]),R=1-O,z=[0,0,0],L=0;L<3;++L)z[L]=R*E[L]+O*D[L];var P=Math.min(O<.5?S:S+1,this.points.length-1);return new b(A,z,P,this.points[P])}},{"./lib/shaders":90,"binary-search-bounds":31,"gl-buffer":78,"gl-texture2d":146,"gl-vao":150,ndarray:259}],92:[function(a,u,c){u.exports=function(i){var s=new Float32Array(16);return s[0]=i[0],s[1]=i[1],s[2]=i[2],s[3]=i[3],s[4]=i[4],s[5]=i[5],s[6]=i[6],s[7]=i[7],s[8]=i[8],s[9]=i[9],s[10]=i[10],s[11]=i[11],s[12]=i[12],s[13]=i[13],s[14]=i[14],s[15]=i[15],s}},{}],93:[function(a,u,c){u.exports=function(){var i=new Float32Array(16);return i[0]=1,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=1,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=1,i[11]=0,i[12]=0,i[13]=0,i[14]=0,i[15]=1,i}},{}],94:[function(a,u,c){u.exports=function(i){var s=i[0],l=i[1],d=i[2],h=i[3],m=i[4],g=i[5],p=i[6],v=i[7],y=i[8],x=i[9],w=i[10],k=i[11],b=i[12],T=i[13],_=i[14],M=i[15];return(s*g-l*m)*(w*M-k*_)-(s*p-d*m)*(x*M-k*T)+(s*v-h*m)*(x*_-w*T)+(l*p-d*g)*(y*M-k*b)-(l*v-h*g)*(y*_-w*b)+(d*v-h*p)*(y*T-x*b)}},{}],95:[function(a,u,c){u.exports=function(i,s){var l=s[0],d=s[1],h=s[2],m=s[3],g=l+l,p=d+d,v=h+h,y=l*g,x=d*g,w=d*p,k=h*g,b=h*p,T=h*v,_=m*g,M=m*p,A=m*v;return i[0]=1-w-T,i[1]=x+A,i[2]=k-M,i[3]=0,i[4]=x-A,i[5]=1-y-T,i[6]=b+_,i[7]=0,i[8]=k+M,i[9]=b-_,i[10]=1-y-w,i[11]=0,i[12]=0,i[13]=0,i[14]=0,i[15]=1,i}},{}],96:[function(a,u,c){u.exports=function(i,s,l){var d=s[0],h=s[1],m=s[2],g=s[3],p=d+d,v=h+h,y=m+m,x=d*p,w=d*v,k=d*y,b=h*v,T=h*y,_=m*y,M=g*p,A=g*v,S=g*y;return i[0]=1-(b+_),i[1]=w+S,i[2]=k-A,i[3]=0,i[4]=w-S,i[5]=1-(x+_),i[6]=T+M,i[7]=0,i[8]=k+A,i[9]=T-M,i[10]=1-(x+b),i[11]=0,i[12]=l[0],i[13]=l[1],i[14]=l[2],i[15]=1,i}},{}],97:[function(a,u,c){u.exports=function(i){return i[0]=1,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=1,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=1,i[11]=0,i[12]=0,i[13]=0,i[14]=0,i[15]=1,i}},{}],98:[function(a,u,c){u.exports=function(i,s){var l=s[0],d=s[1],h=s[2],m=s[3],g=s[4],p=s[5],v=s[6],y=s[7],x=s[8],w=s[9],k=s[10],b=s[11],T=s[12],_=s[13],M=s[14],A=s[15],S=l*p-d*g,E=l*v-h*g,D=l*y-m*g,O=d*v-h*p,R=d*y-m*p,z=h*y-m*v,L=x*_-w*T,P=x*M-k*T,N=x*A-b*T,B=w*M-k*_,G=w*A-b*_,W=k*A-b*M,K=S*W-E*G+D*B+O*N-R*P+z*L;return K?(K=1/K,i[0]=(p*W-v*G+y*B)*K,i[1]=(h*G-d*W-m*B)*K,i[2]=(_*z-M*R+A*O)*K,i[3]=(k*R-w*z-b*O)*K,i[4]=(v*N-g*W-y*P)*K,i[5]=(l*W-h*N+m*P)*K,i[6]=(M*D-T*z-A*E)*K,i[7]=(x*z-k*D+b*E)*K,i[8]=(g*G-p*N+y*L)*K,i[9]=(d*N-l*G-m*L)*K,i[10]=(T*R-_*D+A*S)*K,i[11]=(w*D-x*R-b*S)*K,i[12]=(p*P-g*B-v*L)*K,i[13]=(l*B-d*P+h*L)*K,i[14]=(_*E-T*O-M*S)*K,i[15]=(x*O-w*E+k*S)*K,i):null}},{}],99:[function(a,u,c){var i=a("./identity");u.exports=function(s,l,d,h){var m,g,p,v,y,x,w,k,b,T,_=l[0],M=l[1],A=l[2],S=h[0],E=h[1],D=h[2],O=d[0],R=d[1],z=d[2];return Math.abs(_-O)<1e-6&&Math.abs(M-R)<1e-6&&Math.abs(A-z)<1e-6?i(s):(w=_-O,k=M-R,b=A-z,T=1/Math.sqrt(w*w+k*k+b*b),m=E*(b*=T)-D*(k*=T),g=D*(w*=T)-S*b,p=S*k-E*w,(T=Math.sqrt(m*m+g*g+p*p))?(m*=T=1/T,g*=T,p*=T):(m=0,g=0,p=0),v=k*p-b*g,y=b*m-w*p,x=w*g-k*m,(T=Math.sqrt(v*v+y*y+x*x))?(v*=T=1/T,y*=T,x*=T):(v=0,y=0,x=0),s[0]=m,s[1]=v,s[2]=w,s[3]=0,s[4]=g,s[5]=y,s[6]=k,s[7]=0,s[8]=p,s[9]=x,s[10]=b,s[11]=0,s[12]=-(m*_+g*M+p*A),s[13]=-(v*_+y*M+x*A),s[14]=-(w*_+k*M+b*A),s[15]=1,s)}},{"./identity":97}],100:[function(a,u,c){u.exports=function(i,s,l){var d=s[0],h=s[1],m=s[2],g=s[3],p=s[4],v=s[5],y=s[6],x=s[7],w=s[8],k=s[9],b=s[10],T=s[11],_=s[12],M=s[13],A=s[14],S=s[15],E=l[0],D=l[1],O=l[2],R=l[3];return i[0]=E*d+D*p+O*w+R*_,i[1]=E*h+D*v+O*k+R*M,i[2]=E*m+D*y+O*b+R*A,i[3]=E*g+D*x+O*T+R*S,E=l[4],D=l[5],O=l[6],R=l[7],i[4]=E*d+D*p+O*w+R*_,i[5]=E*h+D*v+O*k+R*M,i[6]=E*m+D*y+O*b+R*A,i[7]=E*g+D*x+O*T+R*S,E=l[8],D=l[9],O=l[10],R=l[11],i[8]=E*d+D*p+O*w+R*_,i[9]=E*h+D*v+O*k+R*M,i[10]=E*m+D*y+O*b+R*A,i[11]=E*g+D*x+O*T+R*S,E=l[12],D=l[13],O=l[14],R=l[15],i[12]=E*d+D*p+O*w+R*_,i[13]=E*h+D*v+O*k+R*M,i[14]=E*m+D*y+O*b+R*A,i[15]=E*g+D*x+O*T+R*S,i}},{}],101:[function(a,u,c){u.exports=function(i,s,l,d,h,m,g){var p=1/(s-l),v=1/(d-h),y=1/(m-g);return i[0]=-2*p,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=-2*v,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=2*y,i[11]=0,i[12]=(s+l)*p,i[13]=(h+d)*v,i[14]=(g+m)*y,i[15]=1,i}},{}],102:[function(a,u,c){u.exports=function(i,s,l,d,h){var m=1/Math.tan(s/2),g=1/(d-h);return i[0]=m/l,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=m,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=(h+d)*g,i[11]=-1,i[12]=0,i[13]=0,i[14]=2*h*d*g,i[15]=0,i}},{}],103:[function(a,u,c){u.exports=function(i,s,l,d){var h,m,g,p,v,y,x,w,k,b,T,_,M,A,S,E,D,O,R,z,L,P,N,B,G=d[0],W=d[1],K=d[2],te=Math.sqrt(G*G+W*W+K*K);return Math.abs(te)<1e-6?null:(G*=te=1/te,W*=te,K*=te,h=Math.sin(l),m=Math.cos(l),g=1-m,p=s[0],v=s[1],y=s[2],x=s[3],w=s[4],k=s[5],b=s[6],T=s[7],_=s[8],M=s[9],A=s[10],S=s[11],E=G*G*g+m,D=W*G*g+K*h,O=K*G*g-W*h,R=G*W*g-K*h,z=W*W*g+m,L=K*W*g+G*h,P=G*K*g+W*h,N=W*K*g-G*h,B=K*K*g+m,i[0]=p*E+w*D+_*O,i[1]=v*E+k*D+M*O,i[2]=y*E+b*D+A*O,i[3]=x*E+T*D+S*O,i[4]=p*R+w*z+_*L,i[5]=v*R+k*z+M*L,i[6]=y*R+b*z+A*L,i[7]=x*R+T*z+S*L,i[8]=p*P+w*N+_*B,i[9]=v*P+k*N+M*B,i[10]=y*P+b*N+A*B,i[11]=x*P+T*N+S*B,s!==i&&(i[12]=s[12],i[13]=s[13],i[14]=s[14],i[15]=s[15]),i)}},{}],104:[function(a,u,c){u.exports=function(i,s,l){var d=Math.sin(l),h=Math.cos(l),m=s[4],g=s[5],p=s[6],v=s[7],y=s[8],x=s[9],w=s[10],k=s[11];return s!==i&&(i[0]=s[0],i[1]=s[1],i[2]=s[2],i[3]=s[3],i[12]=s[12],i[13]=s[13],i[14]=s[14],i[15]=s[15]),i[4]=m*h+y*d,i[5]=g*h+x*d,i[6]=p*h+w*d,i[7]=v*h+k*d,i[8]=y*h-m*d,i[9]=x*h-g*d,i[10]=w*h-p*d,i[11]=k*h-v*d,i}},{}],105:[function(a,u,c){u.exports=function(i,s,l){var d=Math.sin(l),h=Math.cos(l),m=s[0],g=s[1],p=s[2],v=s[3],y=s[8],x=s[9],w=s[10],k=s[11];return s!==i&&(i[4]=s[4],i[5]=s[5],i[6]=s[6],i[7]=s[7],i[12]=s[12],i[13]=s[13],i[14]=s[14],i[15]=s[15]),i[0]=m*h-y*d,i[1]=g*h-x*d,i[2]=p*h-w*d,i[3]=v*h-k*d,i[8]=m*d+y*h,i[9]=g*d+x*h,i[10]=p*d+w*h,i[11]=v*d+k*h,i}},{}],106:[function(a,u,c){u.exports=function(i,s,l){var d=Math.sin(l),h=Math.cos(l),m=s[0],g=s[1],p=s[2],v=s[3],y=s[4],x=s[5],w=s[6],k=s[7];return s!==i&&(i[8]=s[8],i[9]=s[9],i[10]=s[10],i[11]=s[11],i[12]=s[12],i[13]=s[13],i[14]=s[14],i[15]=s[15]),i[0]=m*h+y*d,i[1]=g*h+x*d,i[2]=p*h+w*d,i[3]=v*h+k*d,i[4]=y*h-m*d,i[5]=x*h-g*d,i[6]=w*h-p*d,i[7]=k*h-v*d,i}},{}],107:[function(a,u,c){u.exports=function(i,s,l){var d=l[0],h=l[1],m=l[2];return i[0]=s[0]*d,i[1]=s[1]*d,i[2]=s[2]*d,i[3]=s[3]*d,i[4]=s[4]*h,i[5]=s[5]*h,i[6]=s[6]*h,i[7]=s[7]*h,i[8]=s[8]*m,i[9]=s[9]*m,i[10]=s[10]*m,i[11]=s[11]*m,i[12]=s[12],i[13]=s[13],i[14]=s[14],i[15]=s[15],i}},{}],108:[function(a,u,c){u.exports=function(i,s,l){var d,h,m,g,p,v,y,x,w,k,b,T,_=l[0],M=l[1],A=l[2];return s===i?(i[12]=s[0]*_+s[4]*M+s[8]*A+s[12],i[13]=s[1]*_+s[5]*M+s[9]*A+s[13],i[14]=s[2]*_+s[6]*M+s[10]*A+s[14],i[15]=s[3]*_+s[7]*M+s[11]*A+s[15]):(d=s[0],h=s[1],m=s[2],g=s[3],p=s[4],v=s[5],y=s[6],x=s[7],w=s[8],k=s[9],b=s[10],T=s[11],i[0]=d,i[1]=h,i[2]=m,i[3]=g,i[4]=p,i[5]=v,i[6]=y,i[7]=x,i[8]=w,i[9]=k,i[10]=b,i[11]=T,i[12]=d*_+p*M+w*A+s[12],i[13]=h*_+v*M+k*A+s[13],i[14]=m*_+y*M+b*A+s[14],i[15]=g*_+x*M+T*A+s[15]),i}},{}],109:[function(a,u,c){u.exports=function(i,s){if(i===s){var l=s[1],d=s[2],h=s[3],m=s[6],g=s[7],p=s[11];i[1]=s[4],i[2]=s[8],i[3]=s[12],i[4]=l,i[6]=s[9],i[7]=s[13],i[8]=d,i[9]=m,i[11]=s[14],i[12]=h,i[13]=g,i[14]=p}else i[0]=s[0],i[1]=s[4],i[2]=s[8],i[3]=s[12],i[4]=s[1],i[5]=s[5],i[6]=s[9],i[7]=s[13],i[8]=s[2],i[9]=s[6],i[10]=s[10],i[11]=s[14],i[12]=s[3],i[13]=s[7],i[14]=s[11],i[15]=s[15];return i}},{}],110:[function(a,u,c){var i=a("barycentric"),s=a("polytope-closest-point/lib/closest_point_2d.js");function l(m,g){for(var p=[0,0,0,0],v=0;v<4;++v)for(var y=0;y<4;++y)p[y]+=m[4*v+y]*g[v];return p}function d(m,g,p,v,y){for(var x=l(v,l(p,l(g,[m[0],m[1],m[2],1]))),w=0;w<3;++w)x[w]/=x[3];return[.5*y[0]*(1+x[0]),.5*y[1]*(1-x[1])]}function h(m,g){for(var p=[0,0,0],v=0;v1.0001)return null;S+=A[k]}return Math.abs(S-1)>.001?null:[b,h(m,A),A]}},{barycentric:14,"polytope-closest-point/lib/closest_point_2d.js":270}],111:[function(a,u,c){var i=a("glslify"),s=i([`precision highp float; +#define GLSLIFY 1 + +attribute vec3 position, normal; +attribute vec4 color; +attribute vec2 uv; + +uniform mat4 model + , view + , projection + , inverseModel; +uniform vec3 eyePosition + , lightPosition; + +varying vec3 f_normal + , f_lightDirection + , f_eyeDirection + , f_data; +varying vec4 f_color; +varying vec2 f_uv; + +vec4 project(vec3 p) { + return projection * view * model * vec4(p, 1.0); +} + +void main() { + gl_Position = project(position); + + //Lighting geometry parameters + vec4 cameraCoordinate = view * vec4(position , 1.0); + cameraCoordinate.xyz /= cameraCoordinate.w; + f_lightDirection = lightPosition - cameraCoordinate.xyz; + f_eyeDirection = eyePosition - cameraCoordinate.xyz; + f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz); + + f_color = color; + f_data = position; + f_uv = uv; +} +`]),l=i([`#extension GL_OES_standard_derivatives : enable + +precision highp float; +#define GLSLIFY 1 + +float beckmannDistribution(float x, float roughness) { + float NdotH = max(x, 0.0001); + float cos2Alpha = NdotH * NdotH; + float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha; + float roughness2 = roughness * roughness; + float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha; + return exp(tan2Alpha / roughness2) / denom; +} + +float cookTorranceSpecular( + vec3 lightDirection, + vec3 viewDirection, + vec3 surfaceNormal, + float roughness, + float fresnel) { + + float VdotN = max(dot(viewDirection, surfaceNormal), 0.0); + float LdotN = max(dot(lightDirection, surfaceNormal), 0.0); + + //Half angle vector + vec3 H = normalize(lightDirection + viewDirection); + + //Geometric term + float NdotH = max(dot(surfaceNormal, H), 0.0); + float VdotH = max(dot(viewDirection, H), 0.000001); + float LdotH = max(dot(lightDirection, H), 0.000001); + float G1 = (2.0 * NdotH * VdotN) / VdotH; + float G2 = (2.0 * NdotH * LdotN) / LdotH; + float G = min(1.0, min(G1, G2)); + + //Distribution term + float D = beckmannDistribution(NdotH, roughness); + + //Fresnel term + float F = pow(1.0 - VdotN, fresnel); + + //Multiply terms and done + return G * F * D / max(3.14159265 * VdotN, 0.000001); +} + +//#pragma glslify: beckmann = require(glsl-specular-beckmann) // used in gl-surface3d + +bool outOfRange(float a, float b, float p) { + return ((p > max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +uniform vec3 clipBounds[2]; +uniform float roughness + , fresnel + , kambient + , kdiffuse + , kspecular; +uniform sampler2D texture; + +varying vec3 f_normal + , f_lightDirection + , f_eyeDirection + , f_data; +varying vec4 f_color; +varying vec2 f_uv; + +void main() { + if (f_color.a == 0.0 || + outOfRange(clipBounds[0], clipBounds[1], f_data) + ) discard; + + vec3 N = normalize(f_normal); + vec3 L = normalize(f_lightDirection); + vec3 V = normalize(f_eyeDirection); + + if(gl_FrontFacing) { + N = -N; + } + + float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel))); + //float specular = max(0.0, beckmann(L, V, N, roughness)); // used in gl-surface3d + + float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0); + + vec4 surfaceColor = vec4(f_color.rgb, 1.0) * texture2D(texture, f_uv); + vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0); + + gl_FragColor = litColor * f_color.a; +} +`]),d=i([`precision highp float; +#define GLSLIFY 1 + +attribute vec3 position; +attribute vec4 color; +attribute vec2 uv; + +uniform mat4 model, view, projection; + +varying vec4 f_color; +varying vec3 f_data; +varying vec2 f_uv; + +void main() { + gl_Position = projection * view * model * vec4(position, 1.0); + f_color = color; + f_data = position; + f_uv = uv; +}`]),h=i([`precision highp float; +#define GLSLIFY 1 + +bool outOfRange(float a, float b, float p) { + return ((p > max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +uniform vec3 clipBounds[2]; +uniform sampler2D texture; +uniform float opacity; + +varying vec4 f_color; +varying vec3 f_data; +varying vec2 f_uv; + +void main() { + if (outOfRange(clipBounds[0], clipBounds[1], f_data)) discard; + + gl_FragColor = f_color * texture2D(texture, f_uv) * opacity; +}`]),m=i([`precision highp float; +#define GLSLIFY 1 + +bool outOfRange(float a, float b, float p) { + return ((p > max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +attribute vec3 position; +attribute vec4 color; +attribute vec2 uv; +attribute float pointSize; + +uniform mat4 model, view, projection; +uniform vec3 clipBounds[2]; + +varying vec4 f_color; +varying vec2 f_uv; + +void main() { + if (outOfRange(clipBounds[0], clipBounds[1], position)) { + + gl_Position = vec4(0.0, 0.0 ,0.0 ,0.0); + } else { + gl_Position = projection * view * model * vec4(position, 1.0); + } + gl_PointSize = pointSize; + f_color = color; + f_uv = uv; +}`]),g=i([`precision highp float; +#define GLSLIFY 1 + +uniform sampler2D texture; +uniform float opacity; + +varying vec4 f_color; +varying vec2 f_uv; + +void main() { + vec2 pointR = gl_PointCoord.xy - vec2(0.5, 0.5); + if(dot(pointR, pointR) > 0.25) { + discard; + } + gl_FragColor = f_color * texture2D(texture, f_uv) * opacity; +}`]),p=i([`precision highp float; +#define GLSLIFY 1 + +attribute vec3 position; +attribute vec4 id; + +uniform mat4 model, view, projection; + +varying vec3 f_position; +varying vec4 f_id; + +void main() { + gl_Position = projection * view * model * vec4(position, 1.0); + f_id = id; + f_position = position; +}`]),v=i([`precision highp float; +#define GLSLIFY 1 + +bool outOfRange(float a, float b, float p) { + return ((p > max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +uniform vec3 clipBounds[2]; +uniform float pickId; + +varying vec3 f_position; +varying vec4 f_id; + +void main() { + if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard; + + gl_FragColor = vec4(pickId, f_id.xyz); +}`]),y=i([`precision highp float; +#define GLSLIFY 1 + +bool outOfRange(float a, float b, float p) { + return ((p > max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +attribute vec3 position; +attribute float pointSize; +attribute vec4 id; + +uniform mat4 model, view, projection; +uniform vec3 clipBounds[2]; + +varying vec3 f_position; +varying vec4 f_id; + +void main() { + if (outOfRange(clipBounds[0], clipBounds[1], position)) { + + gl_Position = vec4(0.0, 0.0, 0.0, 0.0); + } else { + gl_Position = projection * view * model * vec4(position, 1.0); + gl_PointSize = pointSize; + } + f_id = id; + f_position = position; +}`]),x=i([`precision highp float; +#define GLSLIFY 1 + +attribute vec3 position; + +uniform mat4 model, view, projection; + +void main() { + gl_Position = projection * view * model * vec4(position, 1.0); +}`]),w=i([`precision highp float; +#define GLSLIFY 1 + +uniform vec3 contourColor; + +void main() { + gl_FragColor = vec4(contourColor, 1.0); +} +`]);c.meshShader={vertex:s,fragment:l,attributes:[{name:"position",type:"vec3"},{name:"normal",type:"vec3"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"}]},c.wireShader={vertex:d,fragment:h,attributes:[{name:"position",type:"vec3"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"}]},c.pointShader={vertex:m,fragment:g,attributes:[{name:"position",type:"vec3"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"},{name:"pointSize",type:"float"}]},c.pickShader={vertex:p,fragment:v,attributes:[{name:"position",type:"vec3"},{name:"id",type:"vec4"}]},c.pointPickShader={vertex:y,fragment:v,attributes:[{name:"position",type:"vec3"},{name:"pointSize",type:"float"},{name:"id",type:"vec4"}]},c.contourShader={vertex:x,fragment:w,attributes:[{name:"position",type:"vec3"}]}},{glslify:231}],112:[function(a,u,c){var i=a("gl-shader"),s=a("gl-buffer"),l=a("gl-vao"),d=a("gl-texture2d"),h=a("normals"),m=a("gl-mat4/multiply"),g=a("gl-mat4/invert"),p=a("ndarray"),v=a("colormap"),y=a("simplicial-complex-contour"),x=a("typedarray-pool"),w=a("./lib/shaders"),k=a("./lib/closest-point"),b=w.meshShader,T=w.wireShader,_=w.pointShader,M=w.pickShader,A=w.pointPickShader,S=w.contourShader,E=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function D(W,K,te,Y,Z,re,U,q,$,ne,H,Q,ee,ie,ae,ue,le,ge,fe,me,_e,we,Te,Oe,de,ye,Me){this.gl=W,this.pixelRatio=1,this.cells=[],this.positions=[],this.intensity=[],this.texture=K,this.dirty=!0,this.triShader=te,this.lineShader=Y,this.pointShader=Z,this.pickShader=re,this.pointPickShader=U,this.contourShader=q,this.trianglePositions=$,this.triangleColors=H,this.triangleNormals=ee,this.triangleUVs=Q,this.triangleIds=ne,this.triangleVAO=ie,this.triangleCount=0,this.lineWidth=1,this.edgePositions=ae,this.edgeColors=le,this.edgeUVs=ge,this.edgeIds=ue,this.edgeVAO=fe,this.edgeCount=0,this.pointPositions=me,this.pointColors=we,this.pointUVs=Te,this.pointSizes=Oe,this.pointIds=_e,this.pointVAO=de,this.pointCount=0,this.contourLineWidth=1,this.contourPositions=ye,this.contourVAO=Me,this.contourCount=0,this.contourColor=[0,0,0],this.contourEnable=!0,this.pickVertex=!0,this.pickId=1,this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.lightPosition=[1e5,1e5,0],this.ambientLight=.8,this.diffuseLight=.8,this.specularLight=2,this.roughness=.5,this.fresnel=1.5,this.opacity=1,this.hasAlpha=!1,this.opacityscale=!1,this._model=E,this._view=E,this._projection=E,this._resolution=[1,1]}var O=D.prototype;function R(W,K){if(!K||!K.length)return 1;for(var te=0;teW&&te>0){var Y=(K[te][0]-W)/(K[te][0]-K[te-1][0]);return K[te][1]*(1-Y)+Y*K[te-1][1]}}return 1}function z(W){var K=i(W,b.vertex,b.fragment);return K.attributes.position.location=0,K.attributes.color.location=2,K.attributes.uv.location=3,K.attributes.normal.location=4,K}function L(W){var K=i(W,T.vertex,T.fragment);return K.attributes.position.location=0,K.attributes.color.location=2,K.attributes.uv.location=3,K}function P(W){var K=i(W,_.vertex,_.fragment);return K.attributes.position.location=0,K.attributes.color.location=2,K.attributes.uv.location=3,K.attributes.pointSize.location=4,K}function N(W){var K=i(W,M.vertex,M.fragment);return K.attributes.position.location=0,K.attributes.id.location=1,K}function B(W){var K=i(W,A.vertex,A.fragment);return K.attributes.position.location=0,K.attributes.id.location=1,K.attributes.pointSize.location=4,K}function G(W){var K=i(W,S.vertex,S.fragment);return K.attributes.position.location=0,K}O.isOpaque=function(){return!this.hasAlpha},O.isTransparent=function(){return this.hasAlpha},O.pickSlots=1,O.setPickBase=function(W){this.pickId=W},O.highlight=function(W){if(W&&this.contourEnable){for(var K=y(this.cells,this.intensity,W.intensity),te=K.cells,Y=K.vertexIds,Z=K.vertexWeights,re=te.length,U=x.mallocFloat32(6*re),q=0,$=0;$0&&((ne=this.triShader).bind(),ne.uniforms=q,this.triangleVAO.bind(),K.drawArrays(K.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind()),this.edgeCount>0&&this.lineWidth>0&&((ne=this.lineShader).bind(),ne.uniforms=q,this.edgeVAO.bind(),K.lineWidth(this.lineWidth*this.pixelRatio),K.drawArrays(K.LINES,0,2*this.edgeCount),this.edgeVAO.unbind()),this.pointCount>0&&((ne=this.pointShader).bind(),ne.uniforms=q,this.pointVAO.bind(),K.drawArrays(K.POINTS,0,this.pointCount),this.pointVAO.unbind()),this.contourEnable&&this.contourCount>0&&this.contourLineWidth>0&&((ne=this.contourShader).bind(),ne.uniforms=q,this.contourVAO.bind(),K.drawArrays(K.LINES,0,this.contourCount),this.contourVAO.unbind())},O.drawPick=function(W){W=W||{};for(var K=this.gl,te=W.model||E,Y=W.view||E,Z=W.projection||E,re=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],U=0;U<3;++U)re[0][U]=Math.max(re[0][U],this.clipBounds[0][U]),re[1][U]=Math.min(re[1][U],this.clipBounds[1][U]);this._model=[].slice.call(te),this._view=[].slice.call(Y),this._projection=[].slice.call(Z),this._resolution=[K.drawingBufferWidth,K.drawingBufferHeight];var q,$={model:te,view:Y,projection:Z,clipBounds:re,pickId:this.pickId/255};(q=this.pickShader).bind(),q.uniforms=$,this.triangleCount>0&&(this.triangleVAO.bind(),K.drawArrays(K.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind()),this.edgeCount>0&&(this.edgeVAO.bind(),K.lineWidth(this.lineWidth*this.pixelRatio),K.drawArrays(K.LINES,0,2*this.edgeCount),this.edgeVAO.unbind()),this.pointCount>0&&((q=this.pointPickShader).bind(),q.uniforms=$,this.pointVAO.bind(),K.drawArrays(K.POINTS,0,this.pointCount),this.pointVAO.unbind())},O.pick=function(W){if(!W||W.id!==this.pickId)return null;for(var K=W.value[0]+256*W.value[1]+65536*W.value[2],te=this.cells[K],Y=this.positions,Z=new Array(te.length),re=0;reA[Z]&&(_.uniforms.dataAxis=g,_.uniforms.screenOffset=p,_.uniforms.color=P[b],_.uniforms.angle=N[b],S.drawArrays(S.TRIANGLES,A[Z],A[re]-A[Z]))),B[b]&&Y&&(p[1^b]-=U*R*G[b],_.uniforms.dataAxis=v,_.uniforms.screenOffset=p,_.uniforms.color=W[b],_.uniforms.angle=K[b],S.drawArrays(S.TRIANGLES,te,Y)),p[1^b]=U*E[2+(1^b)]-1,z[b+2]&&(p[1^b]+=U*R*L[b+2],ZA[Z]&&(_.uniforms.dataAxis=g,_.uniforms.screenOffset=p,_.uniforms.color=P[b+2],_.uniforms.angle=N[b+2],S.drawArrays(S.TRIANGLES,A[Z],A[re]-A[Z]))),B[b+2]&&Y&&(p[1^b]+=U*R*G[b+2],_.uniforms.dataAxis=v,_.uniforms.screenOffset=p,_.uniforms.color=W[b+2],_.uniforms.angle=K[b+2],S.drawArrays(S.TRIANGLES,te,Y))}),k.drawTitle=function(){var b=[0,0],T=[0,0];return function(){var _=this.plot,M=this.shader,A=_.gl,S=_.screenBox,E=_.titleCenter,D=_.titleAngle,O=_.titleColor,R=_.pixelRatio;if(this.titleCount){for(var z=0;z<2;++z)T[z]=2*(E[z]*R-S[z])/(S[2+z]-S[z])-1;M.bind(),M.uniforms.dataAxis=b,M.uniforms.screenOffset=T,M.uniforms.angle=D,M.uniforms.color=O,A.drawArrays(A.TRIANGLES,this.titleOffset,this.titleCount)}}}(),k.bind=(y=[0,0],x=[0,0],w=[0,0],function(){var b=this.plot,T=this.shader,_=b._tickBounds,M=b.dataBox,A=b.screenBox,S=b.viewBox;T.bind();for(var E=0;E<2;++E){var D=_[E],O=_[E+2]-D,R=.5*(M[E+2]+M[E]),z=M[E+2]-M[E],L=S[E],P=S[E+2]-L,N=A[E],B=A[E+2]-N;x[E]=2*O/z*P/B,y[E]=2*(D-R)/z*P/B}w[1]=2*b.pixelRatio/(A[3]-A[1]),w[0]=w[1]*(A[3]-A[1])/(A[2]-A[0]),T.uniforms.dataScale=x,T.uniforms.dataShift=y,T.uniforms.textScale=w,this.vbo.bind(),T.attributes.textCoordinate.pointer()}),k.update=function(b){var T,_,M,A,S,E=[],D=b.ticks,O=b.bounds;for(S=0;S<2;++S){var R=[Math.floor(E.length/3)],z=[-1/0],L=D[S];for(T=0;T=0){var L=x[z]-k[z]*(x[z+2]-x[z])/(k[z+2]-k[z]);z===0?_.drawLine(L,x[1],L,x[3],R[z],O[z]):_.drawLine(x[0],L,x[2],L,R[z],O[z])}}for(z=0;z=0;--y)this.objects[y].dispose();for(this.objects.length=0,y=this.overlays.length-1;y>=0;--y)this.overlays[y].dispose();this.overlays.length=0,this.gl=null},g.addObject=function(y){this.objects.indexOf(y)<0&&(this.objects.push(y),this.setDirty())},g.removeObject=function(y){for(var x=this.objects,w=0;wMath.abs(A))y.rotate(D,0,0,-M*S*Math.PI*T.rotateSpeed/window.innerWidth);else if(!T._ortho){var O=-T.zoomSpeed*E*A/window.innerHeight*(D-y.lastT())/20;y.pan(D,0,0,w*(Math.exp(O)-1))}}},!0)},T.enableMouseListeners(),T};var i=a("right-now"),s=a("3d-view"),l=a("mouse-change"),d=a("mouse-wheel"),h=a("mouse-event-offset"),m=a("has-passive-events")},{"3d-view":7,"has-passive-events":232,"mouse-change":247,"mouse-event-offset":248,"mouse-wheel":250,"right-now":278}],120:[function(a,u,c){var i=a("glslify"),s=a("gl-shader"),l=i([`precision mediump float; +#define GLSLIFY 1 +attribute vec2 position; +varying vec2 uv; +void main() { + uv = position; + gl_Position = vec4(position, 0, 1); +}`]),d=i([`precision mediump float; +#define GLSLIFY 1 + +uniform sampler2D accumBuffer; +varying vec2 uv; + +void main() { + vec4 accum = texture2D(accumBuffer, 0.5 * (uv + 1.0)); + gl_FragColor = min(vec4(1,1,1,1), accum); +}`]);u.exports=function(h){return s(h,l,d,null,[{name:"position",type:"vec2"}])}},{"gl-shader":132,glslify:231}],121:[function(a,u,c){var i=a("./camera.js"),s=a("gl-axes3d"),l=a("gl-axes3d/properties"),d=a("gl-spikes3d"),h=a("gl-select-static"),m=a("gl-fbo"),g=a("a-big-triangle"),p=a("mouse-change"),v=a("gl-mat4/perspective"),y=a("gl-mat4/ortho"),x=a("./lib/shader"),w=a("is-mobile")({tablet:!0,featureDetect:!0});function k(){this.mouse=[-1,-1],this.screen=null,this.distance=1/0,this.index=null,this.dataCoordinate=null,this.dataPosition=null,this.object=null,this.data=null}function b(_){var M=Math.round(Math.log(Math.abs(_))/Math.log(10));if(M<0){var A=Math.round(Math.pow(10,-M));return Math.ceil(_*A)/A}return M>0?(A=Math.round(Math.pow(10,M)),Math.ceil(_/A)*A):Math.ceil(_)}function T(_){return typeof _!="boolean"||_}u.exports={createScene:function(_){(_=_||{}).camera=_.camera||{};var M=_.canvas;M||(M=document.createElement("canvas"),_.container?_.container.appendChild(M):document.body.appendChild(M));var A=_.gl;if(A||(_.glOptions&&(w=!!_.glOptions.preserveDrawingBuffer),A=function(fe,me){var _e=null;try{(_e=fe.getContext("webgl",me))||(_e=fe.getContext("experimental-webgl",me))}catch{return null}return _e}(M,_.glOptions||{premultipliedAlpha:!0,antialias:!0,preserveDrawingBuffer:w})),!A)throw new Error("webgl not supported");var S=_.bounds||[[-10,-10,-10],[10,10,10]],E=new k,D=m(A,A.drawingBufferWidth,A.drawingBufferHeight,{preferFloat:!w}),O=x(A),R=_.cameraObject&&_.cameraObject._ortho===!0||_.camera.projection&&_.camera.projection.type==="orthographic"||!1,z={eye:_.camera.eye||[2,0,0],center:_.camera.center||[0,0,0],up:_.camera.up||[0,1,0],zoomMin:_.camera.zoomMax||.1,zoomMax:_.camera.zoomMin||100,mode:_.camera.mode||"turntable",_ortho:R},L=_.axes||{},P=s(A,L);P.enable=!L.disable;var N=_.spikes||{},B=d(A,N),G=[],W=[],K=[],te=[],Y=!0,Z=!0,re=new Array(16),U=new Array(16),q={view:null,projection:re,model:U,_ortho:!1},$=(Z=!0,[A.drawingBufferWidth,A.drawingBufferHeight]),ne=_.cameraObject||i(M,z),H={gl:A,contextLost:!1,pixelRatio:_.pixelRatio||1,canvas:M,selection:E,camera:ne,axes:P,axesPixels:null,spikes:B,bounds:S,objects:G,shape:$,aspect:_.aspectRatio||[1,1,1],pickRadius:_.pickRadius||10,zNear:_.zNear||.01,zFar:_.zFar||1e3,fovy:_.fovy||Math.PI/4,clearColor:_.clearColor||[0,0,0,0],autoResize:T(_.autoResize),autoBounds:T(_.autoBounds),autoScale:!!_.autoScale,autoCenter:T(_.autoCenter),clipToBounds:T(_.clipToBounds),snapToData:!!_.snapToData,onselect:_.onselect||null,onrender:_.onrender||null,onclick:_.onclick||null,cameraParams:q,oncontextloss:null,mouseListener:null,_stopped:!1,getAspectratio:function(){return{x:this.aspect[0],y:this.aspect[1],z:this.aspect[2]}},setAspectratio:function(fe){this.aspect[0]=fe.x,this.aspect[1]=fe.y,this.aspect[2]=fe.z,Z=!0},setBounds:function(fe,me){this.bounds[0][fe]=me.min,this.bounds[1][fe]=me.max},setClearColor:function(fe){this.clearColor=fe},clearRGBA:function(){this.gl.clearColor(this.clearColor[0],this.clearColor[1],this.clearColor[2],this.clearColor[3]),this.gl.clear(this.gl.COLOR_BUFFER_BIT|this.gl.DEPTH_BUFFER_BIT)}},Q=[A.drawingBufferWidth/H.pixelRatio|0,A.drawingBufferHeight/H.pixelRatio|0];function ee(){if(!H._stopped&&H.autoResize){var fe=M.parentNode,me=1,_e=1;fe&&fe!==document.body?(me=fe.clientWidth,_e=fe.clientHeight):(me=window.innerWidth,_e=window.innerHeight);var we=0|Math.ceil(me*H.pixelRatio),Te=0|Math.ceil(_e*H.pixelRatio);if(we!==M.width||Te!==M.height){M.width=we,M.height=Te;var Oe=M.style;Oe.position=Oe.position||"absolute",Oe.left="0px",Oe.top="0px",Oe.width=me+"px",Oe.height=_e+"px",Y=!0}}}H.autoResize&&ee();function ie(){for(var fe=G.length,me=te.length,_e=0;_e0&&K[me-1]===0;)K.pop(),te.pop().dispose()}function ae(){if(H.contextLost)return!0;A.isContextLost()&&(H.contextLost=!0,H.mouseListener.enabled=!1,H.selection.object=null,H.oncontextloss&&H.oncontextloss())}window.addEventListener("resize",ee),H.update=function(fe){H._stopped||(Y=!0,Z=!0)},H.add=function(fe){H._stopped||(fe.axes=P,G.push(fe),W.push(-1),Y=!0,Z=!0,ie())},H.remove=function(fe){if(!H._stopped){var me=G.indexOf(fe);me<0||(G.splice(me,1),W.pop(),Y=!0,Z=!0,ie())}},H.dispose=function(){if(!H._stopped&&(H._stopped=!0,window.removeEventListener("resize",ee),M.removeEventListener("webglcontextlost",ae),H.mouseListener.enabled=!1,!H.contextLost)){P.dispose(),B.dispose();for(var fe=0;feE.distance)continue;for(var ke=0;ke 1.0) { + discard; + } + baseColor = mix(borderColor, color, step(radius, centerFraction)); + gl_FragColor = vec4(baseColor.rgb * baseColor.a, baseColor.a); + } +} +`]),c.pickVertex=i([`precision mediump float; +#define GLSLIFY 1 + +attribute vec2 position; +attribute vec4 pickId; + +uniform mat3 matrix; +uniform float pointSize; +uniform vec4 pickOffset; + +varying vec4 fragId; + +void main() { + vec3 hgPosition = matrix * vec3(position, 1); + gl_Position = vec4(hgPosition.xy, 0, hgPosition.z); + gl_PointSize = pointSize; + + vec4 id = pickId + pickOffset; + id.y += floor(id.x / 256.0); + id.x -= floor(id.x / 256.0) * 256.0; + + id.z += floor(id.y / 256.0); + id.y -= floor(id.y / 256.0) * 256.0; + + id.w += floor(id.z / 256.0); + id.z -= floor(id.z / 256.0) * 256.0; + + fragId = id; +} +`]),c.pickFragment=i([`precision mediump float; +#define GLSLIFY 1 + +varying vec4 fragId; + +void main() { + float radius = length(2.0 * gl_PointCoord.xy - 1.0); + if(radius > 1.0) { + discard; + } + gl_FragColor = fragId / 255.0; +} +`])},{glslify:231}],123:[function(a,u,c){var i=a("gl-shader"),s=a("gl-buffer"),l=a("typedarray-pool"),d=a("./lib/shader");function h(v,y,x,w,k){this.plot=v,this.offsetBuffer=y,this.pickBuffer=x,this.shader=w,this.pickShader=k,this.sizeMin=.5,this.sizeMinCap=2,this.sizeMax=20,this.areaRatio=1,this.pointCount=0,this.color=[1,0,0,1],this.borderColor=[0,0,0,1],this.blend=!1,this.pickOffset=0,this.points=null}u.exports=function(v,y){var x=v.gl,w=s(x),k=s(x),b=i(x,d.pointVertex,d.pointFragment),T=i(x,d.pickVertex,d.pickFragment),_=new h(v,w,k,b,T);return _.update(y),v.addObject(_),_};var m,g,p=h.prototype;p.dispose=function(){this.shader.dispose(),this.pickShader.dispose(),this.offsetBuffer.dispose(),this.pickBuffer.dispose(),this.plot.removeObject(this)},p.update=function(v){var y;function x(A,S){return A in v?v[A]:S}v=v||{},this.sizeMin=x("sizeMin",.5),this.sizeMax=x("sizeMax",20),this.color=x("color",[1,0,0,1]).slice(),this.areaRatio=x("areaRatio",1),this.borderColor=x("borderColor",[0,0,0,1]).slice(),this.blend=x("blend",!1);var w=v.positions.length>>>1,k=v.positions instanceof Float32Array,b=v.idToIndex instanceof Int32Array&&v.idToIndex.length>=w,T=v.positions,_=k?T:l.mallocFloat32(T.length),M=b?v.idToIndex:l.mallocInt32(w);if(k||_.set(T),!b)for(_.set(T),y=0;y>>1;for(O=0;O=D[0]&&L<=D[2]&&P>=D[1]&&P<=D[3]&&R++}return R}(this.points,k),M=this.plot.pickPixelRatio*Math.max(Math.min(this.sizeMinCap,this.sizeMin),Math.min(this.sizeMax,this.sizeMax/Math.pow(_,.33333)));m[0]=2/b,m[4]=2/T,m[6]=-2*k[0]/b-1,m[7]=-2*k[1]/T-1,this.offsetBuffer.bind(),x.bind(),x.attributes.position.pointer(),x.uniforms.matrix=m,x.uniforms.color=this.color,x.uniforms.borderColor=this.borderColor,x.uniforms.pointCloud=M<5,x.uniforms.pointSize=M,x.uniforms.centerFraction=Math.min(1,Math.max(0,Math.sqrt(1-this.areaRatio))),y&&(g[0]=255&v,g[1]=v>>8&255,g[2]=v>>16&255,g[3]=v>>24&255,this.pickBuffer.bind(),x.attributes.pickId.pointer(w.UNSIGNED_BYTE),x.uniforms.pickOffset=g,this.pickOffset=v);var A=w.getParameter(w.BLEND),S=w.getParameter(w.DITHER);return A&&!this.blend&&w.disable(w.BLEND),S&&w.disable(w.DITHER),w.drawArrays(w.POINTS,0,this.pointCount),A&&!this.blend&&w.enable(w.BLEND),S&&w.enable(w.DITHER),v+this.pointCount}),p.draw=p.unifiedDraw,p.drawPick=p.unifiedDraw,p.pick=function(v,y,x){var w=this.pickOffset,k=this.pointCount;if(x=w+k)return null;var b=x-w,T=this.points;return{object:this,pointId:b,dataCoord:[T[2*b],T[2*b+1]]}}},{"./lib/shader":122,"gl-buffer":78,"gl-shader":132,"typedarray-pool":308}],124:[function(a,u,c){u.exports=function(i,s,l,d){var h,m,g,p,v,y=s[0],x=s[1],w=s[2],k=s[3],b=l[0],T=l[1],_=l[2],M=l[3];return(m=y*b+x*T+w*_+k*M)<0&&(m=-m,b=-b,T=-T,_=-_,M=-M),1-m>1e-6?(h=Math.acos(m),g=Math.sin(h),p=Math.sin((1-d)*h)/g,v=Math.sin(d*h)/g):(p=1-d,v=d),i[0]=p*y+v*b,i[1]=p*x+v*T,i[2]=p*w+v*_,i[3]=p*k+v*M,i}},{}],125:[function(a,u,c){u.exports=function(i){return i||i===0?i.toString():""}},{}],126:[function(a,u,c){var i=a("vectorize-text");u.exports=function(l,d,h){var m=s[d];if(m||(m=s[d]={}),l in m)return m[l];var g={textAlign:"center",textBaseline:"middle",lineHeight:1,font:d,lineSpacing:1.25,styletags:{breaklines:!0,bolds:!0,italics:!0,subscripts:!0,superscripts:!0},triangles:!0},p=i(l,g);g.triangles=!1;var v,y,x=i(l,g);if(h&&h!==1){for(v=0;v max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +attribute vec3 position; +attribute vec4 color; +attribute vec2 glyph; +attribute vec4 id; + +uniform vec4 highlightId; +uniform float highlightScale; +uniform mat4 model, view, projection; +uniform vec3 clipBounds[2]; + +varying vec4 interpColor; +varying vec4 pickId; +varying vec3 dataCoordinate; + +void main() { + if (outOfRange(clipBounds[0], clipBounds[1], position)) { + + gl_Position = vec4(0,0,0,0); + } else { + float scale = 1.0; + if(distance(highlightId, id) < 0.0001) { + scale = highlightScale; + } + + vec4 worldPosition = model * vec4(position, 1); + vec4 viewPosition = view * worldPosition; + viewPosition = viewPosition / viewPosition.w; + vec4 clipPosition = projection * (viewPosition + scale * vec4(glyph.x, -glyph.y, 0, 0)); + + gl_Position = clipPosition; + interpColor = color; + pickId = id; + dataCoordinate = position; + } +}`]),d=s([`precision highp float; +#define GLSLIFY 1 + +bool outOfRange(float a, float b, float p) { + return ((p > max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +attribute vec3 position; +attribute vec4 color; +attribute vec2 glyph; +attribute vec4 id; + +uniform mat4 model, view, projection; +uniform vec2 screenSize; +uniform vec3 clipBounds[2]; +uniform float highlightScale, pixelRatio; +uniform vec4 highlightId; + +varying vec4 interpColor; +varying vec4 pickId; +varying vec3 dataCoordinate; + +void main() { + if (outOfRange(clipBounds[0], clipBounds[1], position)) { + + gl_Position = vec4(0,0,0,0); + } else { + float scale = pixelRatio; + if(distance(highlightId.bgr, id.bgr) < 0.001) { + scale *= highlightScale; + } + + vec4 worldPosition = model * vec4(position, 1.0); + vec4 viewPosition = view * worldPosition; + vec4 clipPosition = projection * viewPosition; + clipPosition /= clipPosition.w; + + gl_Position = clipPosition + vec4(screenSize * scale * vec2(glyph.x, -glyph.y), 0.0, 0.0); + interpColor = color; + pickId = id; + dataCoordinate = position; + } +}`]),h=s([`precision highp float; +#define GLSLIFY 1 + +bool outOfRange(float a, float b, float p) { + return ((p > max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +attribute vec3 position; +attribute vec4 color; +attribute vec2 glyph; +attribute vec4 id; + +uniform float highlightScale; +uniform vec4 highlightId; +uniform vec3 axes[2]; +uniform mat4 model, view, projection; +uniform vec2 screenSize; +uniform vec3 clipBounds[2]; +uniform float scale, pixelRatio; + +varying vec4 interpColor; +varying vec4 pickId; +varying vec3 dataCoordinate; + +void main() { + if (outOfRange(clipBounds[0], clipBounds[1], position)) { + + gl_Position = vec4(0,0,0,0); + } else { + float lscale = pixelRatio * scale; + if(distance(highlightId, id) < 0.0001) { + lscale *= highlightScale; + } + + vec4 clipCenter = projection * view * model * vec4(position, 1); + vec3 dataPosition = position + 0.5*lscale*(axes[0] * glyph.x + axes[1] * glyph.y) * clipCenter.w * screenSize.y; + vec4 clipPosition = projection * view * model * vec4(dataPosition, 1); + + gl_Position = clipPosition; + interpColor = color; + pickId = id; + dataCoordinate = dataPosition; + } +} +`]),m=s([`precision highp float; +#define GLSLIFY 1 + +bool outOfRange(float a, float b, float p) { + return ((p > max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +uniform vec3 fragClipBounds[2]; +uniform float opacity; + +varying vec4 interpColor; +varying vec3 dataCoordinate; + +void main() { + if ( + outOfRange(fragClipBounds[0], fragClipBounds[1], dataCoordinate) || + interpColor.a * opacity == 0. + ) discard; + gl_FragColor = interpColor * opacity; +} +`]),g=s([`precision highp float; +#define GLSLIFY 1 + +bool outOfRange(float a, float b, float p) { + return ((p > max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +uniform vec3 fragClipBounds[2]; +uniform float pickGroup; + +varying vec4 pickId; +varying vec3 dataCoordinate; + +void main() { + if (outOfRange(fragClipBounds[0], fragClipBounds[1], dataCoordinate)) discard; + + gl_FragColor = vec4(pickGroup, pickId.bgr); +}`]),p=[{name:"position",type:"vec3"},{name:"color",type:"vec4"},{name:"glyph",type:"vec2"},{name:"id",type:"vec4"}],v={vertex:l,fragment:m,attributes:p},y={vertex:d,fragment:m,attributes:p},x={vertex:h,fragment:m,attributes:p},w={vertex:l,fragment:g,attributes:p},k={vertex:d,fragment:g,attributes:p},b={vertex:h,fragment:g,attributes:p};function T(_,M){var A=i(_,M),S=A.attributes;return S.position.location=0,S.color.location=1,S.glyph.location=2,S.id.location=3,A}c.createPerspective=function(_){return T(_,v)},c.createOrtho=function(_){return T(_,y)},c.createProject=function(_){return T(_,x)},c.createPickPerspective=function(_){return T(_,w)},c.createPickOrtho=function(_){return T(_,k)},c.createPickProject=function(_){return T(_,b)}},{"gl-shader":132,glslify:231}],128:[function(a,u,c){var i=a("is-string-blank"),s=a("gl-buffer"),l=a("gl-vao"),d=a("typedarray-pool"),h=a("gl-mat4/multiply"),m=a("./lib/shaders"),g=a("./lib/glyphs"),p=a("./lib/get-simple-string"),v=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function y(K,te){var Y=K[0],Z=K[1],re=K[2],U=K[3];return K[0]=te[0]*Y+te[4]*Z+te[8]*re+te[12]*U,K[1]=te[1]*Y+te[5]*Z+te[9]*re+te[13]*U,K[2]=te[2]*Y+te[6]*Z+te[10]*re+te[14]*U,K[3]=te[3]*Y+te[7]*Z+te[11]*re+te[15]*U,K}function x(K,te,Y,Z){return y(Z,Z),y(Z,Z),y(Z,Z)}function w(K,te){this.index=K,this.dataCoordinate=this.position=te}function k(K){return K===!0||K>1?1:K}function b(K,te,Y,Z,re,U,q,$,ne,H,Q,ee){this.gl=K,this.pixelRatio=1,this.shader=te,this.orthoShader=Y,this.projectShader=Z,this.pointBuffer=re,this.colorBuffer=U,this.glyphBuffer=q,this.idBuffer=$,this.vao=ne,this.vertexCount=0,this.lineVertexCount=0,this.opacity=1,this.hasAlpha=!1,this.lineWidth=0,this.projectScale=[2/3,2/3,2/3],this.projectOpacity=[1,1,1],this.projectHasAlpha=!1,this.pickId=0,this.pickPerspectiveShader=H,this.pickOrthoShader=Q,this.pickProjectShader=ee,this.points=[],this._selectResult=new w(0,[0,0,0]),this.useOrtho=!0,this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.axesProject=[!0,!0,!0],this.axesBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.highlightId=[1,1,1,1],this.highlightScale=2,this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.dirty=!0}u.exports=function(K){var te=K.gl,Y=m.createPerspective(te),Z=m.createOrtho(te),re=m.createProject(te),U=m.createPickPerspective(te),q=m.createPickOrtho(te),$=m.createPickProject(te),ne=s(te),H=s(te),Q=s(te),ee=s(te),ie=l(te,[{buffer:ne,size:3,type:te.FLOAT},{buffer:H,size:4,type:te.FLOAT},{buffer:Q,size:2,type:te.FLOAT},{buffer:ee,size:4,type:te.UNSIGNED_BYTE,normalized:!0}]),ae=new b(te,Y,Z,re,ne,H,Q,ee,ie,U,q,$);return ae.update(K),ae};var T=b.prototype;T.pickSlots=1,T.setPickBase=function(K){this.pickId=K},T.isTransparent=function(){if(this.hasAlpha)return!0;for(var K=0;K<3;++K)if(this.axesProject[K]&&this.projectHasAlpha)return!0;return!1},T.isOpaque=function(){if(!this.hasAlpha)return!0;for(var K=0;K<3;++K)if(this.axesProject[K]&&!this.projectHasAlpha)return!0;return!1};var _=[0,0],M=[0,0,0],A=[0,0,0],S=[0,0,0,1],E=[0,0,0,1],D=v.slice(),O=[0,0,0],R=[[0,0,0],[0,0,0]];function z(K){return K[0]=K[1]=K[2]=0,K}function L(K,te){return K[0]=te[0],K[1]=te[1],K[2]=te[2],K[3]=1,K}function P(K,te,Y,Z){return K[0]=te[0],K[1]=te[1],K[2]=te[2],K[Y]=Z,K}function N(K,te,Y,Z){var re,U=te.axesProject,q=te.gl,$=K.uniforms,ne=Y.model||v,H=Y.view||v,Q=Y.projection||v,ee=te.axesBounds,ie=function(ke){for(var Ee=R,ze=0;ze<2;++ze)for(var Fe=0;Fe<3;++Fe)Ee[ze][Fe]=Math.max(Math.min(ke[ze][Fe],1e8),-1e8);return Ee}(te.clipBounds);re=te.axes&&te.axes.lastCubeProps?te.axes.lastCubeProps.axis:[1,1,1],_[0]=2/q.drawingBufferWidth,_[1]=2/q.drawingBufferHeight,K.bind(),$.view=H,$.projection=Q,$.screenSize=_,$.highlightId=te.highlightId,$.highlightScale=te.highlightScale,$.clipBounds=ie,$.pickGroup=te.pickId/255,$.pixelRatio=Z;for(var ae=0;ae<3;++ae)if(U[ae]){$.scale=te.projectScale[ae],$.opacity=te.projectOpacity[ae];for(var ue=D,le=0;le<16;++le)ue[le]=0;for(le=0;le<4;++le)ue[5*le]=1;ue[5*ae]=0,re[ae]<0?ue[12+ae]=ee[0][ae]:ue[12+ae]=ee[1][ae],h(ue,ne,ue),$.model=ue;var ge=(ae+1)%3,fe=(ae+2)%3,me=z(M),_e=z(A);me[ge]=1,_e[fe]=1;var we=x(0,0,0,L(S,me)),Te=x(0,0,0,L(E,_e));if(Math.abs(we[1])>Math.abs(Te[1])){var Oe=we;we=Te,Te=Oe,Oe=me,me=_e,_e=Oe;var de=ge;ge=fe,fe=de}we[0]<0&&(me[ge]=-1),Te[1]>0&&(_e[fe]=-1);var ye=0,Me=0;for(le=0;le<4;++le)ye+=Math.pow(ne[4*ge+le],2),Me+=Math.pow(ne[4*fe+le],2);me[ge]/=Math.sqrt(ye),_e[fe]/=Math.sqrt(Me),$.axes[0]=me,$.axes[1]=_e,$.fragClipBounds[0]=P(O,ie[0],ae,-1e8),$.fragClipBounds[1]=P(O,ie[1],ae,1e8),te.vao.bind(),te.vao.draw(q.TRIANGLES,te.vertexCount),te.lineWidth>0&&(q.lineWidth(te.lineWidth*Z),te.vao.draw(q.LINES,te.lineVertexCount,te.vertexCount)),te.vao.unbind()}}var B=[[-1e8,-1e8,-1e8],[1e8,1e8,1e8]];function G(K,te,Y,Z,re,U,q){var $=Y.gl;if((U===Y.projectHasAlpha||q)&&N(te,Y,Z,re),U===Y.hasAlpha||q){K.bind();var ne=K.uniforms;ne.model=Z.model||v,ne.view=Z.view||v,ne.projection=Z.projection||v,_[0]=2/$.drawingBufferWidth,_[1]=2/$.drawingBufferHeight,ne.screenSize=_,ne.highlightId=Y.highlightId,ne.highlightScale=Y.highlightScale,ne.fragClipBounds=B,ne.clipBounds=Y.axes.bounds,ne.opacity=Y.opacity,ne.pickGroup=Y.pickId/255,ne.pixelRatio=re,Y.vao.bind(),Y.vao.draw($.TRIANGLES,Y.vertexCount),Y.lineWidth>0&&($.lineWidth(Y.lineWidth*re),Y.vao.draw($.LINES,Y.lineVertexCount,Y.vertexCount)),Y.vao.unbind()}}function W(K,te,Y,Z){var re;re=Array.isArray(K)?te=this.pointCount||te<0)return null;var Y=this.points[te],Z=this._selectResult;Z.index=te;for(var re=0;re<3;++re)Z.position[re]=Z.dataCoordinate[re]=Y[re];return Z},T.highlight=function(K){if(K){var te=K.index,Y=255&te,Z=te>>8&255,re=te>>16&255;this.highlightId=[Y/255,Z/255,re/255,0]}else this.highlightId=[1,1,1,1]},T.update=function(K){if("perspective"in(K=K||{})&&(this.useOrtho=!K.perspective),"orthographic"in K&&(this.useOrtho=!!K.orthographic),"lineWidth"in K&&(this.lineWidth=K.lineWidth),"project"in K)if(Array.isArray(K.project))this.axesProject=K.project;else{var te=!!K.project;this.axesProject=[te,te,te]}if("projectScale"in K)if(Array.isArray(K.projectScale))this.projectScale=K.projectScale.slice();else{var Y=+K.projectScale;this.projectScale=[Y,Y,Y]}if(this.projectHasAlpha=!1,"projectOpacity"in K){Array.isArray(K.projectOpacity)?this.projectOpacity=K.projectOpacity.slice():(Y=+K.projectOpacity,this.projectOpacity=[Y,Y,Y]);for(var Z=0;Z<3;++Z)this.projectOpacity[Z]=k(this.projectOpacity[Z]),this.projectOpacity[Z]<1&&(this.projectHasAlpha=!0)}this.hasAlpha=!1,"opacity"in K&&(this.opacity=k(K.opacity),this.opacity<1&&(this.hasAlpha=!0)),this.dirty=!0;var re,U,q=K.position,$=K.font||"normal",ne=K.alignment||[0,0];if(ne.length===2)re=ne[0],U=ne[1];else for(re=[],U=[],Z=0;Z0){var Ve=0,Ke=fe,Re=[0,0,0,1],qe=[0,0,0,1],We=Array.isArray(ie)&&Array.isArray(ie[0]),Ye=Array.isArray(le)&&Array.isArray(le[0]);e:for(Z=0;Z<_e;++Z){for(ge+=1,we=q[Z],Te=0;Te<3;++Te){if(isNaN(we[Te])||!isFinite(we[Te]))continue e;Q[Te]=Math.max(Q[Te],we[Te]),H[Te]=Math.min(H[Te],we[Te])}Oe=(nt=W(ee,Z,$,this.pixelRatio)).mesh,de=nt.lines,ye=nt.bounds;var nt,ft=nt.visible;if(ft)if(Array.isArray(ie)){if((vt=We?Z0?1-ye[0][0]:Ot<0?1+ye[1][0]:1,Wt*=Wt>0?1-ye[0][1]:Wt<0?1+ye[1][1]:1],Be=Oe.cells||[],Ge=Oe.positions||[];for(Te=0;Te0){var R=p*_;w.drawBox(M-R,A-R,S+R,A+R,x),w.drawBox(M-R,E-R,S+R,E+R,x),w.drawBox(M-R,A-R,M+R,E+R,x),w.drawBox(S-R,A-R,S+R,E+R,x)}}}},h.update=function(m){m=m||{},this.innerFill=!!m.innerFill,this.outerFill=!!m.outerFill,this.innerColor=(m.innerColor||[0,0,0,.5]).slice(),this.outerColor=(m.outerColor||[0,0,0,.5]).slice(),this.borderColor=(m.borderColor||[0,0,0,1]).slice(),this.borderWidth=m.borderWidth||0,this.selectBox=(m.selectBox||this.selectBox).slice()},h.dispose=function(){this.boxBuffer.dispose(),this.boxShader.dispose(),this.plot.removeOverlay(this)}},{"./lib/shaders":129,"gl-buffer":78,"gl-shader":132}],131:[function(a,u,c){u.exports=function(p,v){var y=v[0],x=v[1],w=i(p,y,x,{}),k=s.mallocUint8(y*x*4);return new m(p,w,k)};var i=a("gl-fbo"),s=a("typedarray-pool"),l=a("ndarray"),d=a("bit-twiddle").nextPow2;function h(p,v,y,x,w){this.coord=[p,v],this.id=y,this.value=x,this.distance=w}function m(p,v,y){this.gl=p,this.fbo=v,this.buffer=y,this._readTimeout=null;var x=this;this._readCallback=function(){x.gl&&(v.bind(),p.readPixels(0,0,v.shape[0],v.shape[1],p.RGBA,p.UNSIGNED_BYTE,x.buffer),x._readTimeout=null)}}var g=m.prototype;Object.defineProperty(g,"shape",{get:function(){return this.gl?this.fbo.shape.slice():[0,0]},set:function(p){if(this.gl){this.fbo.shape=p;var v=this.fbo.shape[0],y=this.fbo.shape[1];if(y*v*4>this.buffer.length){s.free(this.buffer);for(var x=this.buffer=s.mallocUint8(d(y*v*4)),w=0;ww)for(y=w;yx)for(y=x;y=0){for(var P=0|L.type.charAt(L.type.length-1),N=new Array(P),B=0;B=0;)G+=1;z[D]=G}var W=new Array(w.length);function K(){T.program=d.program(_,T._vref,T._fref,R,z);for(var te=0;te=0){if((A=_.charCodeAt(_.length-1)-48)<2||A>4)throw new i("","Invalid data type for attribute "+T+": "+_);h(g,p,M[0],y,A,x,T)}else{if(!(_.indexOf("mat")>=0))throw new i("","Unknown data type for attribute "+T+": "+_);var A;if((A=_.charCodeAt(_.length-1)-48)<2||A>4)throw new i("","Invalid data type for attribute "+T+": "+_);m(g,p,M,y,A,x,T)}}}return x};var i=a("./GLError");function s(g,p,v,y,x,w){this._gl=g,this._wrapper=p,this._index=v,this._locations=y,this._dimension=x,this._constFunc=w}var l=s.prototype;l.pointer=function(g,p,v,y){var x=this._gl,w=this._locations[this._index];x.vertexAttribPointer(w,this._dimension,g||x.FLOAT,!!p,v||0,y||0),x.enableVertexAttribArray(w)},l.set=function(g,p,v,y){return this._constFunc(this._locations[this._index],g,p,v,y)},Object.defineProperty(l,"location",{get:function(){return this._locations[this._index]},set:function(g){return g!==this._locations[this._index]&&(this._locations[this._index]=0|g,this._wrapper.program=null),0|g}});var d=[function(g,p,v){return v.length===void 0?g.vertexAttrib1f(p,v):g.vertexAttrib1fv(p,v)},function(g,p,v,y){return v.length===void 0?g.vertexAttrib2f(p,v,y):g.vertexAttrib2fv(p,v)},function(g,p,v,y,x){return v.length===void 0?g.vertexAttrib3f(p,v,y,x):g.vertexAttrib3fv(p,v)},function(g,p,v,y,x,w){return v.length===void 0?g.vertexAttrib4f(p,v,y,x,w):g.vertexAttrib4fv(p,v)}];function h(g,p,v,y,x,w,k){var b=d[x],T=new s(g,p,v,y,x,b);Object.defineProperty(w,k,{set:function(_){return g.disableVertexAttribArray(y[v]),b(g,y[v],_),_},get:function(){return T},enumerable:!0})}function m(g,p,v,y,x,w,k){for(var b=new Array(x),T=new Array(x),_=0;_4)throw new s("","Invalid uniform dimension type for matrix "+name+": "+P);h["uniformMatrix"+L+"fv"](p[S],!1,E);break}throw new s("","Unknown uniform data type for "+name+": "+P)}if((L=P.charCodeAt(P.length-1)-48)<2||L>4)throw new s("","Invalid data type");switch(P.charAt(0)){case"b":case"i":h["uniform"+L+"iv"](p[S],E);break;case"v":h["uniform"+L+"fv"](p[S],E);break;default:throw new s("","Unrecognized data type for vector "+name+": "+P)}}}}}}function y(k,b,T){if(typeof T=="object"){var _=x(T);Object.defineProperty(k,b,{get:l(_),set:v(T),enumerable:!0,configurable:!1})}else p[T]?Object.defineProperty(k,b,{get:(M=T,function(A,S,E){return A.getUniform(S.program,E[M])}),set:v(T),enumerable:!0,configurable:!1}):k[b]=function(A){switch(A){case"bool":return!1;case"int":case"sampler2D":case"samplerCube":case"float":return 0;default:var S=A.indexOf("vec");if(0<=S&&S<=1&&A.length===4+S){if((E=A.charCodeAt(A.length-1)-48)<2||E>4)throw new s("","Invalid data type");return A.charAt(0)==="b"?d(E,!1):d(E,0)}if(A.indexOf("mat")===0&&A.length===4){var E;if((E=A.charCodeAt(A.length-1)-48)<2||E>4)throw new s("","Invalid uniform dimension type for matrix "+name+": "+A);return d(E*E,0)}throw new s("","Unknown uniform data type for "+name+": "+A)}}(g[T].type);var M}function x(k){var b;if(Array.isArray(k)){b=new Array(k.length);for(var T=0;T1){p[0]in m||(m[p[0]]=[]),m=m[p[0]];for(var v=1;v1)for(var x=0;x"u"?a("weakmap-shim"):WeakMap),d=0;function h(v,y,x,w,k,b,T){this.id=v,this.src=y,this.type=x,this.shader=w,this.count=b,this.programs=[],this.cache=T}function m(v){this.gl=v,this.shaders=[{},{}],this.programs={}}h.prototype.dispose=function(){if(--this.count==0){for(var v=this.cache,y=v.gl,x=this.programs,w=0,k=x.length;w 0 U ||b|| > 0. + // Assign z = 0, x = -b, y = a: + // a*-b + b*a + c*0 = -ba + ba + 0 = 0 + if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) { + return normalize(vec3(-v.y, v.x, 0.0)); + } else { + return normalize(vec3(0.0, v.z, -v.y)); + } +} + +// Calculate the tube vertex and normal at the given index. +// +// The returned vertex is for a tube ring with its center at origin, radius of length(d), pointing in the direction of d. +// +// Each tube segment is made up of a ring of vertices. +// These vertices are used to make up the triangles of the tube by connecting them together in the vertex array. +// The indexes of tube segments run from 0 to 8. +// +vec3 getTubePosition(vec3 d, float index, out vec3 normal) { + float segmentCount = 8.0; + + float angle = 2.0 * 3.14159 * (index / segmentCount); + + vec3 u = getOrthogonalVector(d); + vec3 v = normalize(cross(u, d)); + + vec3 x = u * cos(angle) * length(d); + vec3 y = v * sin(angle) * length(d); + vec3 v3 = x + y; + + normal = normalize(v3); + + return v3; +} + +attribute vec4 vector; +attribute vec4 color, position; +attribute vec2 uv; + +uniform float vectorScale, tubeScale; +uniform mat4 model, view, projection, inverseModel; +uniform vec3 eyePosition, lightPosition; + +varying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position; +varying vec4 f_color; +varying vec2 f_uv; + +void main() { + // Scale the vector magnitude to stay constant with + // model & view changes. + vec3 normal; + vec3 XYZ = getTubePosition(mat3(model) * (tubeScale * vector.w * normalize(vector.xyz)), position.w, normal); + vec4 tubePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0); + + //Lighting geometry parameters + vec4 cameraCoordinate = view * tubePosition; + cameraCoordinate.xyz /= cameraCoordinate.w; + f_lightDirection = lightPosition - cameraCoordinate.xyz; + f_eyeDirection = eyePosition - cameraCoordinate.xyz; + f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz); + + // vec4 m_position = model * vec4(tubePosition, 1.0); + vec4 t_position = view * tubePosition; + gl_Position = projection * t_position; + + f_color = color; + f_data = tubePosition.xyz; + f_position = position.xyz; + f_uv = uv; +} +`]),l=i([`#extension GL_OES_standard_derivatives : enable + +precision highp float; +#define GLSLIFY 1 + +float beckmannDistribution(float x, float roughness) { + float NdotH = max(x, 0.0001); + float cos2Alpha = NdotH * NdotH; + float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha; + float roughness2 = roughness * roughness; + float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha; + return exp(tan2Alpha / roughness2) / denom; +} + +float cookTorranceSpecular( + vec3 lightDirection, + vec3 viewDirection, + vec3 surfaceNormal, + float roughness, + float fresnel) { + + float VdotN = max(dot(viewDirection, surfaceNormal), 0.0); + float LdotN = max(dot(lightDirection, surfaceNormal), 0.0); + + //Half angle vector + vec3 H = normalize(lightDirection + viewDirection); + + //Geometric term + float NdotH = max(dot(surfaceNormal, H), 0.0); + float VdotH = max(dot(viewDirection, H), 0.000001); + float LdotH = max(dot(lightDirection, H), 0.000001); + float G1 = (2.0 * NdotH * VdotN) / VdotH; + float G2 = (2.0 * NdotH * LdotN) / LdotH; + float G = min(1.0, min(G1, G2)); + + //Distribution term + float D = beckmannDistribution(NdotH, roughness); + + //Fresnel term + float F = pow(1.0 - VdotN, fresnel); + + //Multiply terms and done + return G * F * D / max(3.14159265 * VdotN, 0.000001); +} + +bool outOfRange(float a, float b, float p) { + return ((p > max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +uniform vec3 clipBounds[2]; +uniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity; +uniform sampler2D texture; + +varying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position; +varying vec4 f_color; +varying vec2 f_uv; + +void main() { + if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard; + vec3 N = normalize(f_normal); + vec3 L = normalize(f_lightDirection); + vec3 V = normalize(f_eyeDirection); + + if(gl_FrontFacing) { + N = -N; + } + + float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel))); + float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0); + + vec4 surfaceColor = f_color * texture2D(texture, f_uv); + vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0); + + gl_FragColor = litColor * opacity; +} +`]),d=i([`precision highp float; + +precision highp float; +#define GLSLIFY 1 + +vec3 getOrthogonalVector(vec3 v) { + // Return up-vector for only-z vector. + // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0). + // From the above if-statement we have ||a|| > 0 U ||b|| > 0. + // Assign z = 0, x = -b, y = a: + // a*-b + b*a + c*0 = -ba + ba + 0 = 0 + if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) { + return normalize(vec3(-v.y, v.x, 0.0)); + } else { + return normalize(vec3(0.0, v.z, -v.y)); + } +} + +// Calculate the tube vertex and normal at the given index. +// +// The returned vertex is for a tube ring with its center at origin, radius of length(d), pointing in the direction of d. +// +// Each tube segment is made up of a ring of vertices. +// These vertices are used to make up the triangles of the tube by connecting them together in the vertex array. +// The indexes of tube segments run from 0 to 8. +// +vec3 getTubePosition(vec3 d, float index, out vec3 normal) { + float segmentCount = 8.0; + + float angle = 2.0 * 3.14159 * (index / segmentCount); + + vec3 u = getOrthogonalVector(d); + vec3 v = normalize(cross(u, d)); + + vec3 x = u * cos(angle) * length(d); + vec3 y = v * sin(angle) * length(d); + vec3 v3 = x + y; + + normal = normalize(v3); + + return v3; +} + +attribute vec4 vector; +attribute vec4 position; +attribute vec4 id; + +uniform mat4 model, view, projection; +uniform float tubeScale; + +varying vec3 f_position; +varying vec4 f_id; + +void main() { + vec3 normal; + vec3 XYZ = getTubePosition(mat3(model) * (tubeScale * vector.w * normalize(vector.xyz)), position.w, normal); + vec4 tubePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0); + + gl_Position = projection * view * tubePosition; + f_id = id; + f_position = position.xyz; +} +`]),h=i([`precision highp float; +#define GLSLIFY 1 + +bool outOfRange(float a, float b, float p) { + return ((p > max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +uniform vec3 clipBounds[2]; +uniform float pickId; + +varying vec3 f_position; +varying vec4 f_id; + +void main() { + if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard; + + gl_FragColor = vec4(pickId, f_id.xyz); +}`]);c.meshShader={vertex:s,fragment:l,attributes:[{name:"position",type:"vec4"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"},{name:"vector",type:"vec4"}]},c.pickShader={vertex:d,fragment:h,attributes:[{name:"position",type:"vec4"},{name:"id",type:"vec4"},{name:"vector",type:"vec4"}]}},{glslify:231}],143:[function(a,u,c){var i=a("gl-vec3"),s=a("gl-vec4"),l=["xyz","xzy","yxz","yzx","zxy","zyx"],d=function(y,x,w,k){for(var b=0,T=0;T0)for(_e=0;_e<8;_e++){var we=(_e+1)%8;U.push(ne[_e],H[_e],H[we],H[we],ne[we],ne[_e]),$.push(ue,ae,ae,ae,ue,ue),Q.push(ee,ie,ie,ie,ee,ee);var Te=U.length;q.push([Te-6,Te-5,Te-4],[Te-3,Te-2,Te-1])}var Oe=ne;ne=H,H=Oe;var de=ue;ue=ae,ae=de;var ye=ee;ee=ie,ie=ye}return{positions:U,cells:q,vectors:$,vertexIntensity:Q}}(B,w,k,b)}),S=[],E=[],D=[],O=[];for(T=0;Tx)return w-1}return w},m=function(y,x,w){return yw?w:y},g=function(y){var x=1/0;y.sort(function(T,_){return T-_});for(var w=y.length,k=1;kye-1||Ke>Me-1||Re>ke-1)return i.create();var qe,We,Ye,nt,ft,vt,Pt=we[0][Ee],At=we[0][Ve],at=we[1][ze],et=we[1][Ke],Ot=we[2][Fe],Wt=(Te-Pt)/(At-Pt),Jt=(Oe-at)/(et-at),Be=(de-Ot)/(we[2][Re]-Ot);switch(isFinite(Wt)||(Wt=.5),isFinite(Jt)||(Jt=.5),isFinite(Be)||(Be=.5),me.reversedX&&(Ee=ye-1-Ee,Ve=ye-1-Ve),me.reversedY&&(ze=Me-1-ze,Ke=Me-1-Ke),me.reversedZ&&(Fe=ke-1-Fe,Re=ke-1-Re),me.filled){case 5:ft=Fe,vt=Re,Ye=ze*ke,nt=Ke*ke,qe=Ee*ke*Me,We=Ve*ke*Me;break;case 4:ft=Fe,vt=Re,qe=Ee*ke,We=Ve*ke,Ye=ze*ke*ye,nt=Ke*ke*ye;break;case 3:Ye=ze,nt=Ke,ft=Fe*Me,vt=Re*Me,qe=Ee*Me*ke,We=Ve*Me*ke;break;case 2:Ye=ze,nt=Ke,qe=Ee*Me,We=Ve*Me,ft=Fe*Me*ye,vt=Re*Me*ye;break;case 1:qe=Ee,We=Ve,ft=Fe*ye,vt=Re*ye,Ye=ze*ye*ke,nt=Ke*ye*ke;break;default:qe=Ee,We=Ve,Ye=ze*ye,nt=Ke*ye,ft=Fe*ye*Me,vt=Re*ye*Me}var Ge=_e[qe+Ye+ft],Tt=_e[qe+Ye+vt],dt=_e[qe+nt+ft],Pe=_e[qe+nt+vt],Ie=_e[We+Ye+ft],Ae=_e[We+Ye+vt],De=_e[We+nt+ft],He=_e[We+nt+vt],rt=i.create(),lt=i.create(),ot=i.create(),kt=i.create();i.lerp(rt,Ge,Ie,Wt),i.lerp(lt,Tt,Ae,Wt),i.lerp(ot,dt,De,Wt),i.lerp(kt,Pe,He,Wt);var wt=i.create(),Vt=i.create();i.lerp(wt,rt,ot,Jt),i.lerp(Vt,lt,kt,Jt);var Ut=i.create();return i.lerp(Ut,wt,Vt,Be),Ut}(le,y,M)},S=y.getDivergence||function(le,ge){var fe=i.create(),me=1e-4;i.add(fe,le,[me,0,0]);var _e=A(fe);i.subtract(_e,_e,ge),i.scale(_e,_e,1/me),i.add(fe,le,[0,me,0]);var we=A(fe);i.subtract(we,we,ge),i.scale(we,we,1/me),i.add(fe,le,[0,0,me]);var Te=A(fe);return i.subtract(Te,Te,ge),i.scale(Te,Te,1/me),i.add(fe,_e,we),i.add(fe,fe,Te),fe},E=[],D=x[0][0],O=x[0][1],R=x[0][2],z=x[1][0],L=x[1][1],P=x[1][2],N=function(le){var ge=le[0],fe=le[1],me=le[2];return!(gez||feL||meP)},B=10*i.distance(x[0],x[1])/k,G=B*B,W=1,K=0,te=w.length;te>1&&(W=function(le){for(var ge=[],fe=[],me=[],_e={},we={},Te={},Oe=le.length,de=0;deK&&(K=Q),ne.push(Q),E.push({points:re,velocities:U,divergences:ne});for(var ee=0;ee<100*k&&re.lengthG&&i.scale(ie,ie,B/Math.sqrt(ae)),i.add(ie,ie,Z),q=A(ie),i.squaredDistance($,ie)-G>-1e-4*G&&(re.push(ie),$=ie,U.push(q),H=S(ie,q),Q=i.length(H),isFinite(Q)&&Q>K&&(K=Q),ne.push(Q)),Z=ie}}var ue=d(E,y.colormap,K,W);return T?ue.tubeScale=T:(K===0&&(K=1),ue.tubeScale=.5*b*W/K),ue};var p=a("./lib/shaders"),v=a("gl-cone3d").createMesh;u.exports.createTubeMesh=function(y,x){return v(y,x,{shaders:p,traceType:"streamtube"})}},{"./lib/shaders":142,"gl-cone3d":79,"gl-vec3":169,"gl-vec4":205}],144:[function(a,u,c){var i=a("gl-shader"),s=a("glslify"),l=s([`precision highp float; +#define GLSLIFY 1 + +attribute vec4 uv; +attribute vec3 f; +attribute vec3 normal; + +uniform vec3 objectOffset; +uniform mat4 model, view, projection, inverseModel; +uniform vec3 lightPosition, eyePosition; +uniform sampler2D colormap; + +varying float value, kill; +varying vec3 worldCoordinate; +varying vec2 planeCoordinate; +varying vec3 lightDirection, eyeDirection, surfaceNormal; +varying vec4 vColor; + +void main() { + vec3 localCoordinate = vec3(uv.zw, f.x); + worldCoordinate = objectOffset + localCoordinate; + vec4 worldPosition = model * vec4(worldCoordinate, 1.0); + vec4 clipPosition = projection * view * worldPosition; + gl_Position = clipPosition; + kill = f.y; + value = f.z; + planeCoordinate = uv.xy; + + vColor = texture2D(colormap, vec2(value, value)); + + //Lighting geometry parameters + vec4 cameraCoordinate = view * worldPosition; + cameraCoordinate.xyz /= cameraCoordinate.w; + lightDirection = lightPosition - cameraCoordinate.xyz; + eyeDirection = eyePosition - cameraCoordinate.xyz; + surfaceNormal = normalize((vec4(normal,0) * inverseModel).xyz); +} +`]),d=s([`precision highp float; +#define GLSLIFY 1 + +float beckmannDistribution(float x, float roughness) { + float NdotH = max(x, 0.0001); + float cos2Alpha = NdotH * NdotH; + float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha; + float roughness2 = roughness * roughness; + float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha; + return exp(tan2Alpha / roughness2) / denom; +} + +float beckmannSpecular( + vec3 lightDirection, + vec3 viewDirection, + vec3 surfaceNormal, + float roughness) { + return beckmannDistribution(dot(surfaceNormal, normalize(lightDirection + viewDirection)), roughness); +} + +bool outOfRange(float a, float b, float p) { + return ((p > max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +uniform vec3 lowerBound, upperBound; +uniform float contourTint; +uniform vec4 contourColor; +uniform sampler2D colormap; +uniform vec3 clipBounds[2]; +uniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity; +uniform float vertexColor; + +varying float value, kill; +varying vec3 worldCoordinate; +varying vec3 lightDirection, eyeDirection, surfaceNormal; +varying vec4 vColor; + +void main() { + if ( + kill > 0.0 || + vColor.a == 0.0 || + outOfRange(clipBounds[0], clipBounds[1], worldCoordinate) + ) discard; + + vec3 N = normalize(surfaceNormal); + vec3 V = normalize(eyeDirection); + vec3 L = normalize(lightDirection); + + if(gl_FrontFacing) { + N = -N; + } + + float specular = max(beckmannSpecular(L, V, N, roughness), 0.); + float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0); + + //decide how to interpolate color \u2014 in vertex or in fragment + vec4 surfaceColor = + step(vertexColor, .5) * texture2D(colormap, vec2(value, value)) + + step(.5, vertexColor) * vColor; + + vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0); + + gl_FragColor = mix(litColor, contourColor, contourTint) * opacity; +} +`]),h=s([`precision highp float; +#define GLSLIFY 1 + +attribute vec4 uv; +attribute float f; + +uniform vec3 objectOffset; +uniform mat3 permutation; +uniform mat4 model, view, projection; +uniform float height, zOffset; +uniform sampler2D colormap; + +varying float value, kill; +varying vec3 worldCoordinate; +varying vec2 planeCoordinate; +varying vec3 lightDirection, eyeDirection, surfaceNormal; +varying vec4 vColor; + +void main() { + vec3 dataCoordinate = permutation * vec3(uv.xy, height); + worldCoordinate = objectOffset + dataCoordinate; + vec4 worldPosition = model * vec4(worldCoordinate, 1.0); + + vec4 clipPosition = projection * view * worldPosition; + clipPosition.z += zOffset; + + gl_Position = clipPosition; + value = f + objectOffset.z; + kill = -1.0; + planeCoordinate = uv.zw; + + vColor = texture2D(colormap, vec2(value, value)); + + //Don't do lighting for contours + surfaceNormal = vec3(1,0,0); + eyeDirection = vec3(0,1,0); + lightDirection = vec3(0,0,1); +} +`]),m=s([`precision highp float; +#define GLSLIFY 1 + +bool outOfRange(float a, float b, float p) { + return ((p > max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +uniform vec2 shape; +uniform vec3 clipBounds[2]; +uniform float pickId; + +varying float value, kill; +varying vec3 worldCoordinate; +varying vec2 planeCoordinate; +varying vec3 surfaceNormal; + +vec2 splitFloat(float v) { + float vh = 255.0 * v; + float upper = floor(vh); + float lower = fract(vh); + return vec2(upper / 255.0, floor(lower * 16.0) / 16.0); +} + +void main() { + if ((kill > 0.0) || + (outOfRange(clipBounds[0], clipBounds[1], worldCoordinate))) discard; + + vec2 ux = splitFloat(planeCoordinate.x / shape.x); + vec2 uy = splitFloat(planeCoordinate.y / shape.y); + gl_FragColor = vec4(pickId, ux.x, uy.x, ux.y + (uy.y/16.0)); +} +`]);c.createShader=function(g){var p=i(g,l,d,null,[{name:"uv",type:"vec4"},{name:"f",type:"vec3"},{name:"normal",type:"vec3"}]);return p.attributes.uv.location=0,p.attributes.f.location=1,p.attributes.normal.location=2,p},c.createPickShader=function(g){var p=i(g,l,m,null,[{name:"uv",type:"vec4"},{name:"f",type:"vec3"},{name:"normal",type:"vec3"}]);return p.attributes.uv.location=0,p.attributes.f.location=1,p.attributes.normal.location=2,p},c.createContourShader=function(g){var p=i(g,h,d,null,[{name:"uv",type:"vec4"},{name:"f",type:"float"}]);return p.attributes.uv.location=0,p.attributes.f.location=1,p},c.createPickContourShader=function(g){var p=i(g,h,m,null,[{name:"uv",type:"vec4"},{name:"f",type:"float"}]);return p.attributes.uv.location=0,p.attributes.f.location=1,p}},{"gl-shader":132,glslify:231}],145:[function(a,u,c){u.exports=function(q){var $=q.gl,ne=_($),H=A($),Q=M($),ee=S($),ie=s($),ae=l($,[{buffer:ie,size:4,stride:40,offset:0},{buffer:ie,size:3,stride:40,offset:16},{buffer:ie,size:3,stride:40,offset:28}]),ue=s($),le=l($,[{buffer:ue,size:4,stride:20,offset:0},{buffer:ue,size:1,stride:20,offset:16}]),ge=s($),fe=l($,[{buffer:ge,size:2,type:$.FLOAT}]),me=d($,1,256,$.RGBA,$.UNSIGNED_BYTE);me.minFilter=$.LINEAR,me.magFilter=$.LINEAR;var _e=new z($,[0,0],[[0,0,0],[0,0,0]],ne,H,ie,ae,me,Q,ee,ue,le,ge,fe,[0,0,0]),we={levels:[[],[],[]]};for(var Te in q)we[Te]=q[Te];return we.colormap=we.colormap||"jet",_e.update(we),_e};var i=a("bit-twiddle"),s=a("gl-buffer"),l=a("gl-vao"),d=a("gl-texture2d"),h=a("typedarray-pool"),m=a("colormap"),g=a("ndarray-ops"),p=a("ndarray-pack"),v=a("ndarray"),y=a("surface-nets"),x=a("gl-mat4/multiply"),w=a("gl-mat4/invert"),k=a("binary-search-bounds"),b=a("ndarray-gradient"),T=a("./lib/shaders"),_=T.createShader,M=T.createContourShader,A=T.createPickShader,S=T.createPickContourShader,E=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],D=[[0,0],[0,1],[1,0],[1,1],[1,0],[0,1]],O=[[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0]];function R(q,$,ne,H,Q){this.position=q,this.index=$,this.uv=ne,this.level=H,this.dataCoordinate=Q}(function(){for(var q=0;q<3;++q){var $=O[q],ne=(q+2)%3;$[(q+1)%3+0]=1,$[ne+3]=1,$[q+6]=1}})();function z(q,$,ne,H,Q,ee,ie,ae,ue,le,ge,fe,me,_e,we){this.gl=q,this.shape=$,this.bounds=ne,this.objectOffset=we,this.intensityBounds=[],this._shader=H,this._pickShader=Q,this._coordinateBuffer=ee,this._vao=ie,this._colorMap=ae,this._contourShader=ue,this._contourPickShader=le,this._contourBuffer=ge,this._contourVAO=fe,this._contourOffsets=[[],[],[]],this._contourCounts=[[],[],[]],this._vertexCount=0,this._pickResult=new R([0,0,0],[0,0],[0,0],[0,0,0],[0,0,0]),this._dynamicBuffer=me,this._dynamicVAO=_e,this._dynamicOffsets=[0,0,0],this._dynamicCounts=[0,0,0],this.contourWidth=[1,1,1],this.contourLevels=[[1],[1],[1]],this.contourTint=[0,0,0],this.contourColor=[[.5,.5,.5,1],[.5,.5,.5,1],[.5,.5,.5,1]],this.showContour=!0,this.showSurface=!0,this.enableHighlight=[!0,!0,!0],this.highlightColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.highlightTint=[1,1,1],this.highlightLevel=[-1,-1,-1],this.enableDynamic=[!0,!0,!0],this.dynamicLevel=[NaN,NaN,NaN],this.dynamicColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.dynamicTint=[1,1,1],this.dynamicWidth=[1,1,1],this.axesBounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.surfaceProject=[!1,!1,!1],this.contourProject=[[!1,!1,!1],[!1,!1,!1],[!1,!1,!1]],this.colorBounds=[!1,!1],this._field=[v(h.mallocFloat(1024),[0,0]),v(h.mallocFloat(1024),[0,0]),v(h.mallocFloat(1024),[0,0])],this.pickId=1,this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.snapToData=!1,this.pixelRatio=1,this.opacity=1,this.lightPosition=[10,1e4,0],this.ambientLight=.8,this.diffuseLight=.8,this.specularLight=2,this.roughness=.5,this.fresnel=1.5,this.vertexColor=0,this.dirty=!0}var L=z.prototype;L.genColormap=function(q,$){var ne=!1,H=p([m({colormap:q,nshades:256,format:"rgba"}).map(function(Q,ee){var ie=$?function(ae,ue){if(!ue||!ue.length)return 1;for(var le=0;leae&&le>0){var ge=(ue[le][0]-ae)/(ue[le][0]-ue[le-1][0]);return ue[le][1]*(1-ge)+ge*ue[le-1][1]}}return 1}(ee/255,$):Q[3];return ie<1&&(ne=!0),[Q[0],Q[1],Q[2],255*ie]})]);return g.divseq(H,255),this.hasAlphaScale=ne,H},L.isTransparent=function(){return this.opacity<1||this.hasAlphaScale},L.isOpaque=function(){return!this.isTransparent()},L.pickSlots=1,L.setPickBase=function(q){this.pickId=q};var P=[0,0,0],N={showSurface:!1,showContour:!1,projections:[E.slice(),E.slice(),E.slice()],clipBounds:[[[0,0,0],[0,0,0]],[[0,0,0],[0,0,0]],[[0,0,0],[0,0,0]]]};function B(q,$){var ne,H,Q,ee=$.axes&&$.axes.lastCubeProps.axis||P,ie=$.showSurface,ae=$.showContour;for(ne=0;ne<3;++ne)for(ie=ie||$.surfaceProject[ne],H=0;H<3;++H)ae=ae||$.contourProject[ne][H];for(ne=0;ne<3;++ne){var ue=N.projections[ne];for(H=0;H<16;++H)ue[H]=0;for(H=0;H<4;++H)ue[5*H]=1;ue[5*ne]=0,ue[12+ne]=$.axesBounds[+(ee[ne]>0)][ne],x(ue,q.model,ue);var le=N.clipBounds[ne];for(Q=0;Q<2;++Q)for(H=0;H<3;++H)le[Q][H]=q.clipBounds[Q][H];le[0][ne]=-1e8,le[1][ne]=1e8}return N.showSurface=ie,N.showContour=ae,N}var G={model:E,view:E,projection:E,inverseModel:E.slice(),lowerBound:[0,0,0],upperBound:[0,0,0],colorMap:0,clipBounds:[[0,0,0],[0,0,0]],height:0,contourTint:0,contourColor:[0,0,0,1],permutation:[1,0,0,0,1,0,0,0,1],zOffset:-1e-4,objectOffset:[0,0,0],kambient:1,kdiffuse:1,kspecular:1,lightPosition:[1e3,1e3,1e3],eyePosition:[0,0,0],roughness:1,fresnel:1,opacity:1,vertexColor:0},W=E.slice(),K=[1,0,0,0,1,0,0,0,1];function te(q,$){q=q||{};var ne=this.gl;ne.disable(ne.CULL_FACE),this._colorMap.bind(0);var H=G;H.model=q.model||E,H.view=q.view||E,H.projection=q.projection||E,H.lowerBound=[this.bounds[0][0],this.bounds[0][1],this.colorBounds[0]||this.bounds[0][2]],H.upperBound=[this.bounds[1][0],this.bounds[1][1],this.colorBounds[1]||this.bounds[1][2]],H.objectOffset=this.objectOffset,H.contourColor=this.contourColor[0],H.inverseModel=w(H.inverseModel,H.model);for(var Q=0;Q<2;++Q)for(var ee=H.clipBounds[Q],ie=0;ie<3;++ie)ee[ie]=Math.min(Math.max(this.clipBounds[Q][ie],-1e8),1e8);H.kambient=this.ambientLight,H.kdiffuse=this.diffuseLight,H.kspecular=this.specularLight,H.roughness=this.roughness,H.fresnel=this.fresnel,H.opacity=this.opacity,H.height=0,H.permutation=K,H.vertexColor=this.vertexColor;var ae=W;for(x(ae,H.view,H.model),x(ae,H.projection,ae),w(ae,ae),Q=0;Q<3;++Q)H.eyePosition[Q]=ae[12+Q]/ae[15];var ue=ae[15];for(Q=0;Q<3;++Q)ue+=this.lightPosition[Q]*ae[4*Q+3];for(Q=0;Q<3;++Q){var le=ae[12+Q];for(ie=0;ie<3;++ie)le+=ae[4*ie+Q]*this.lightPosition[ie];H.lightPosition[Q]=le/ue}var ge=B(H,this);if(ge.showSurface){for(this._shader.bind(),this._shader.uniforms=H,this._vao.bind(),this.showSurface&&this._vertexCount&&this._vao.draw(ne.TRIANGLES,this._vertexCount),Q=0;Q<3;++Q)this.surfaceProject[Q]&&this.vertexCount&&(this._shader.uniforms.model=ge.projections[Q],this._shader.uniforms.clipBounds=ge.clipBounds[Q],this._vao.draw(ne.TRIANGLES,this._vertexCount));this._vao.unbind()}if(ge.showContour){var fe=this._contourShader;H.kambient=1,H.kdiffuse=0,H.kspecular=0,H.opacity=1,fe.bind(),fe.uniforms=H;var me=this._contourVAO;for(me.bind(),Q=0;Q<3;++Q)for(fe.uniforms.permutation=O[Q],ne.lineWidth(this.contourWidth[Q]*this.pixelRatio),ie=0;ie>4)/16)/255,Q=Math.floor(H),ee=H-Q,ie=$[1]*(q.value[1]+(15&q.value[2])/16)/255,ae=Math.floor(ie),ue=ie-ae;Q+=1,ae+=1;var le=ne.position;le[0]=le[1]=le[2]=0;for(var ge=0;ge<2;++ge)for(var fe=ge?ee:1-ee,me=0;me<2;++me)for(var _e=Q+ge,we=ae+me,Te=fe*(me?ue:1-ue),Oe=0;Oe<3;++Oe)le[Oe]+=this._field[Oe].get(_e,we)*Te;for(var de=this._pickResult.level,ye=0;ye<3;++ye)if(de[ye]=k.le(this.contourLevels[ye],le[ye]),de[ye]<0)this.contourLevels[ye].length>0&&(de[ye]=0);else if(de[ye]Math.abs(ke-le[ye])&&(de[ye]+=1)}for(ne.index[0]=ee<.5?Q:Q+1,ne.index[1]=ue<.5?ae:ae+1,ne.uv[0]=H/$[0],ne.uv[1]=ie/$[1],Oe=0;Oe<3;++Oe)ne.dataCoordinate[Oe]=this._field[Oe].get(ne.index[0],ne.index[1]);return ne},L.padField=function(q,$){var ne=$.shape.slice(),H=q.shape.slice();g.assign(q.lo(1,1).hi(ne[0],ne[1]),$),g.assign(q.lo(1).hi(ne[0],1),$.hi(ne[0],1)),g.assign(q.lo(1,H[1]-1).hi(ne[0],1),$.lo(0,ne[1]-1).hi(ne[0],1)),g.assign(q.lo(0,1).hi(1,ne[1]),$.hi(1)),g.assign(q.lo(H[0]-1,1).hi(1,ne[1]),$.lo(ne[0]-1)),q.set(0,0,$.get(0,0)),q.set(0,H[1]-1,$.get(0,ne[1]-1)),q.set(H[0]-1,0,$.get(ne[0]-1,0)),q.set(H[0]-1,H[1]-1,$.get(ne[0]-1,ne[1]-1))},L.update=function(q){q=q||{},this.objectOffset=q.objectOffset||this.objectOffset,this.dirty=!0,"contourWidth"in q&&(this.contourWidth=Z(q.contourWidth,Number)),"showContour"in q&&(this.showContour=Z(q.showContour,Boolean)),"showSurface"in q&&(this.showSurface=!!q.showSurface),"contourTint"in q&&(this.contourTint=Z(q.contourTint,Boolean)),"contourColor"in q&&(this.contourColor=U(q.contourColor)),"contourProject"in q&&(this.contourProject=Z(q.contourProject,function(Kt){return Z(Kt,Boolean)})),"surfaceProject"in q&&(this.surfaceProject=q.surfaceProject),"dynamicColor"in q&&(this.dynamicColor=U(q.dynamicColor)),"dynamicTint"in q&&(this.dynamicTint=Z(q.dynamicTint,Number)),"dynamicWidth"in q&&(this.dynamicWidth=Z(q.dynamicWidth,Number)),"opacity"in q&&(this.opacity=q.opacity),"opacityscale"in q&&(this.opacityscale=q.opacityscale),"colorBounds"in q&&(this.colorBounds=q.colorBounds),"vertexColor"in q&&(this.vertexColor=q.vertexColor?1:0),"colormap"in q&&this._colorMap.setPixels(this.genColormap(q.colormap,this.opacityscale));var $=q.field||q.coords&&q.coords[2]||null,ne=!1;if($||($=this._field[2].shape[0]||this._field[2].shape[2]?this._field[2].lo(1,1).hi(this._field[2].shape[0]-2,this._field[2].shape[1]-2):this._field[2].hi(0,0)),"field"in q||"coords"in q){var H=($.shape[0]+2)*($.shape[1]+2);H>this._field[2].data.length&&(h.freeFloat(this._field[2].data),this._field[2].data=h.mallocFloat(i.nextPow2(H))),this._field[2]=v(this._field[2].data,[$.shape[0]+2,$.shape[1]+2]),this.padField(this._field[2],$),this.shape=$.shape.slice();for(var Q=this.shape,ee=0;ee<2;++ee)this._field[2].size>this._field[ee].data.length&&(h.freeFloat(this._field[ee].data),this._field[ee].data=h.mallocFloat(this._field[2].size)),this._field[ee]=v(this._field[ee].data,[Q[0]+2,Q[1]+2]);if(q.coords){var ie=q.coords;if(!Array.isArray(ie)||ie.length!==3)throw new Error("gl-surface: invalid coordinates for x/y");for(ee=0;ee<2;++ee){var ae=ie[ee];for(me=0;me<2;++me)if(ae.shape[me]!==Q[me])throw new Error("gl-surface: coords have incorrect shape");this.padField(this._field[ee],ae)}}else if(q.ticks){var ue=q.ticks;if(!Array.isArray(ue)||ue.length!==2)throw new Error("gl-surface: invalid ticks");for(ee=0;ee<2;++ee){var le=ue[ee];if((Array.isArray(le)||le.length)&&(le=v(le)),le.shape[0]!==Q[ee])throw new Error("gl-surface: invalid tick length");var ge=v(le.data,Q);ge.stride[ee]=le.stride[0],ge.stride[1^ee]=0,this.padField(this._field[ee],ge)}}else{for(ee=0;ee<2;++ee){var fe=[0,0];fe[ee]=1,this._field[ee]=v(this._field[ee].data,[Q[0]+2,Q[1]+2],fe,0)}this._field[0].set(0,0,0);for(var me=0;me0){for(var It=0;It<5;++It)Pe.pop();Pt-=1}continue e}Pe.push(rt[0],rt[1],kt[0],kt[1],rt[2]),Pt+=1}}He.push(Pt)}this._contourOffsets[Ie]=De,this._contourCounts[Ie]=He}var Zt=h.mallocFloat(Pe.length);for(ee=0;eeO||E<0||E>O)throw new Error("gl-texture2d: Invalid texture size");return A._shape=[S,E],A.bind(),D.texImage2D(D.TEXTURE_2D,0,A.format,S,E,0,A.format,A.type,null),A._mipLevels=[0],A}function x(A,S,E,D,O,R){this.gl=A,this.handle=S,this.format=O,this.type=R,this._shape=[E,D],this._mipLevels=[0],this._magFilter=A.NEAREST,this._minFilter=A.NEAREST,this._wrapS=A.CLAMP_TO_EDGE,this._wrapT=A.CLAMP_TO_EDGE,this._anisoSamples=1;var z=this,L=[this._wrapS,this._wrapT];Object.defineProperties(L,[{get:function(){return z._wrapS},set:function(N){return z.wrapS=N}},{get:function(){return z._wrapT},set:function(N){return z.wrapT=N}}]),this._wrapVector=L;var P=[this._shape[0],this._shape[1]];Object.defineProperties(P,[{get:function(){return z._shape[0]},set:function(N){return z.width=N}},{get:function(){return z._shape[1]},set:function(N){return z.height=N}}]),this._shapeVector=P}var w=x.prototype;function k(A,S){return A.length===3?S[2]===1&&S[1]===A[0]*A[2]&&S[0]===A[2]:S[0]===1&&S[1]===A[0]}function b(A){var S=A.createTexture();return A.bindTexture(A.TEXTURE_2D,S),A.texParameteri(A.TEXTURE_2D,A.TEXTURE_MIN_FILTER,A.NEAREST),A.texParameteri(A.TEXTURE_2D,A.TEXTURE_MAG_FILTER,A.NEAREST),A.texParameteri(A.TEXTURE_2D,A.TEXTURE_WRAP_S,A.CLAMP_TO_EDGE),A.texParameteri(A.TEXTURE_2D,A.TEXTURE_WRAP_T,A.CLAMP_TO_EDGE),S}function T(A,S,E,D,O){var R=A.getParameter(A.MAX_TEXTURE_SIZE);if(S<0||S>R||E<0||E>R)throw new Error("gl-texture2d: Invalid texture shape");if(O===A.FLOAT&&!A.getExtension("OES_texture_float"))throw new Error("gl-texture2d: Floating point textures not supported on this platform");var z=b(A);return A.texImage2D(A.TEXTURE_2D,0,D,S,E,0,D,O,null),new x(A,z,S,E,D,O)}function _(A,S,E,D,O,R){var z=b(A);return A.texImage2D(A.TEXTURE_2D,0,O,O,R,S),new x(A,z,E,D,O,R)}function M(A,S){var E=S.dtype,D=S.shape.slice(),O=A.getParameter(A.MAX_TEXTURE_SIZE);if(D[0]<0||D[0]>O||D[1]<0||D[1]>O)throw new Error("gl-texture2d: Invalid texture size");var R=k(D,S.stride.slice()),z=0;E==="float32"?z=A.FLOAT:E==="float64"?(z=A.FLOAT,R=!1,E="float32"):E==="uint8"?z=A.UNSIGNED_BYTE:(z=A.UNSIGNED_BYTE,R=!1,E="uint8");var L,P,N=0;if(D.length===2)N=A.LUMINANCE,D=[D[0],D[1],1],S=i(S.data,D,[S.stride[0],S.stride[1],1],S.offset);else{if(D.length!==3)throw new Error("gl-texture2d: Invalid shape for texture");if(D[2]===1)N=A.ALPHA;else if(D[2]===2)N=A.LUMINANCE_ALPHA;else if(D[2]===3)N=A.RGB;else{if(D[2]!==4)throw new Error("gl-texture2d: Invalid shape for pixel coords");N=A.RGBA}}z!==A.FLOAT||A.getExtension("OES_texture_float")||(z=A.UNSIGNED_BYTE,R=!1);var B=S.size;if(R)L=S.offset===0&&S.data.length===B?S.data:S.data.subarray(S.offset,S.offset+B);else{var G=[D[2],D[2]*D[0],1];P=l.malloc(B,E);var W=i(P,D,G,0);E!=="float32"&&E!=="float64"||z!==A.UNSIGNED_BYTE?s.assign(W,S):v(W,S),L=P.subarray(0,B)}var K=b(A);return A.texImage2D(A.TEXTURE_2D,0,N,D[0],D[1],0,N,z,L),R||l.free(P),new x(A,K,D[0],D[1],N,z)}Object.defineProperties(w,{minFilter:{get:function(){return this._minFilter},set:function(A){this.bind();var S=this.gl;if(this.type===S.FLOAT&&d.indexOf(A)>=0&&(S.getExtension("OES_texture_float_linear")||(A=S.NEAREST)),h.indexOf(A)<0)throw new Error("gl-texture2d: Unknown filter mode "+A);return S.texParameteri(S.TEXTURE_2D,S.TEXTURE_MIN_FILTER,A),this._minFilter=A}},magFilter:{get:function(){return this._magFilter},set:function(A){this.bind();var S=this.gl;if(this.type===S.FLOAT&&d.indexOf(A)>=0&&(S.getExtension("OES_texture_float_linear")||(A=S.NEAREST)),h.indexOf(A)<0)throw new Error("gl-texture2d: Unknown filter mode "+A);return S.texParameteri(S.TEXTURE_2D,S.TEXTURE_MAG_FILTER,A),this._magFilter=A}},mipSamples:{get:function(){return this._anisoSamples},set:function(A){var S=this._anisoSamples;if(this._anisoSamples=0|Math.max(A,1),S!==this._anisoSamples){var E=this.gl.getExtension("EXT_texture_filter_anisotropic");E&&this.gl.texParameterf(this.gl.TEXTURE_2D,E.TEXTURE_MAX_ANISOTROPY_EXT,this._anisoSamples)}return this._anisoSamples}},wrapS:{get:function(){return this._wrapS},set:function(A){if(this.bind(),m.indexOf(A)<0)throw new Error("gl-texture2d: Unknown wrap mode "+A);return this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,A),this._wrapS=A}},wrapT:{get:function(){return this._wrapT},set:function(A){if(this.bind(),m.indexOf(A)<0)throw new Error("gl-texture2d: Unknown wrap mode "+A);return this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,A),this._wrapT=A}},wrap:{get:function(){return this._wrapVector},set:function(A){if(Array.isArray(A)||(A=[A,A]),A.length!==2)throw new Error("gl-texture2d: Must specify wrap mode for rows and columns");for(var S=0;S<2;++S)if(m.indexOf(A[S])<0)throw new Error("gl-texture2d: Unknown wrap mode "+A);this._wrapS=A[0],this._wrapT=A[1];var E=this.gl;return this.bind(),E.texParameteri(E.TEXTURE_2D,E.TEXTURE_WRAP_S,this._wrapS),E.texParameteri(E.TEXTURE_2D,E.TEXTURE_WRAP_T,this._wrapT),A}},shape:{get:function(){return this._shapeVector},set:function(A){if(Array.isArray(A)){if(A.length!==2)throw new Error("gl-texture2d: Invalid texture shape")}else A=[0|A,0|A];return y(this,0|A[0],0|A[1]),[0|A[0],0|A[1]]}},width:{get:function(){return this._shape[0]},set:function(A){return y(this,A|=0,this._shape[1]),A}},height:{get:function(){return this._shape[1]},set:function(A){return A|=0,y(this,this._shape[0],A),A}}}),w.bind=function(A){var S=this.gl;return A!==void 0&&S.activeTexture(S.TEXTURE0+(0|A)),S.bindTexture(S.TEXTURE_2D,this.handle),A!==void 0?0|A:S.getParameter(S.ACTIVE_TEXTURE)-S.TEXTURE0},w.dispose=function(){this.gl.deleteTexture(this.handle)},w.generateMipmap=function(){this.bind(),this.gl.generateMipmap(this.gl.TEXTURE_2D);for(var A=Math.min(this._shape[0],this._shape[1]),S=0;A>0;++S,A>>>=1)this._mipLevels.indexOf(S)<0&&this._mipLevels.push(S)},w.setPixels=function(A,S,E,D){var O=this.gl;this.bind(),Array.isArray(S)?(D=E,E=0|S[1],S=0|S[0]):(S=S||0,E=E||0),D=D||0;var R=p(A)?A:A.raw;if(R)this._mipLevels.indexOf(D)<0?(O.texImage2D(O.TEXTURE_2D,0,this.format,this.format,this.type,R),this._mipLevels.push(D)):O.texSubImage2D(O.TEXTURE_2D,D,S,E,this.format,this.type,R);else{if(!(A.shape&&A.stride&&A.data))throw new Error("gl-texture2d: Unsupported data type");if(A.shape.length<2||S+A.shape[1]>this._shape[1]>>>D||E+A.shape[0]>this._shape[0]>>>D||S<0||E<0)throw new Error("gl-texture2d: Texture dimensions are out of bounds");(function(z,L,P,N,B,G,W,K){var te=K.dtype,Y=K.shape.slice();if(Y.length<2||Y.length>3)throw new Error("gl-texture2d: Invalid ndarray, must be 2d or 3d");var Z=0,re=0,U=k(Y,K.stride.slice());if(te==="float32"?Z=z.FLOAT:te==="float64"?(Z=z.FLOAT,U=!1,te="float32"):te==="uint8"?Z=z.UNSIGNED_BYTE:(Z=z.UNSIGNED_BYTE,U=!1,te="uint8"),Y.length===2)re=z.LUMINANCE,Y=[Y[0],Y[1],1],K=i(K.data,Y,[K.stride[0],K.stride[1],1],K.offset);else{if(Y.length!==3)throw new Error("gl-texture2d: Invalid shape for texture");if(Y[2]===1)re=z.ALPHA;else if(Y[2]===2)re=z.LUMINANCE_ALPHA;else if(Y[2]===3)re=z.RGB;else{if(Y[2]!==4)throw new Error("gl-texture2d: Invalid shape for pixel coords");re=z.RGBA}Y[2]}if(re!==z.LUMINANCE&&re!==z.ALPHA||B!==z.LUMINANCE&&B!==z.ALPHA||(re=B),re!==B)throw new Error("gl-texture2d: Incompatible texture format for setPixels");var q=K.size,$=W.indexOf(N)<0;if($&&W.push(N),Z===G&&U)K.offset===0&&K.data.length===q?$?z.texImage2D(z.TEXTURE_2D,N,B,Y[0],Y[1],0,B,G,K.data):z.texSubImage2D(z.TEXTURE_2D,N,L,P,Y[0],Y[1],B,G,K.data):$?z.texImage2D(z.TEXTURE_2D,N,B,Y[0],Y[1],0,B,G,K.data.subarray(K.offset,K.offset+q)):z.texSubImage2D(z.TEXTURE_2D,N,L,P,Y[0],Y[1],B,G,K.data.subarray(K.offset,K.offset+q));else{var ne;ne=G===z.FLOAT?l.mallocFloat32(q):l.mallocUint8(q);var H=i(ne,Y,[Y[2],Y[2]*Y[0],1]);Z===z.FLOAT&&G===z.UNSIGNED_BYTE?v(H,K):s.assign(H,K),$?z.texImage2D(z.TEXTURE_2D,N,B,Y[0],Y[1],0,B,G,ne.subarray(0,q)):z.texSubImage2D(z.TEXTURE_2D,N,L,P,Y[0],Y[1],B,G,ne.subarray(0,q)),G===z.FLOAT?l.freeFloat32(ne):l.freeUint8(ne)}})(O,S,E,D,this.format,this.type,this._mipLevels,A)}}},{ndarray:259,"ndarray-ops":254,"typedarray-pool":308}],147:[function(a,u,c){u.exports=function(i,s,l){s?s.bind():i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,null);var d=0|i.getParameter(i.MAX_VERTEX_ATTRIBS);if(l){if(l.length>d)throw new Error("gl-vao: Too many vertex attributes");for(var h=0;h1?0:Math.acos(p)};var i=a("./fromValues"),s=a("./normalize"),l=a("./dot")},{"./dot":162,"./fromValues":168,"./normalize":179}],153:[function(a,u,c){u.exports=function(i,s){return i[0]=Math.ceil(s[0]),i[1]=Math.ceil(s[1]),i[2]=Math.ceil(s[2]),i}},{}],154:[function(a,u,c){u.exports=function(i){var s=new Float32Array(3);return s[0]=i[0],s[1]=i[1],s[2]=i[2],s}},{}],155:[function(a,u,c){u.exports=function(i,s){return i[0]=s[0],i[1]=s[1],i[2]=s[2],i}},{}],156:[function(a,u,c){u.exports=function(){var i=new Float32Array(3);return i[0]=0,i[1]=0,i[2]=0,i}},{}],157:[function(a,u,c){u.exports=function(i,s,l){var d=s[0],h=s[1],m=s[2],g=l[0],p=l[1],v=l[2];return i[0]=h*v-m*p,i[1]=m*g-d*v,i[2]=d*p-h*g,i}},{}],158:[function(a,u,c){u.exports=a("./distance")},{"./distance":159}],159:[function(a,u,c){u.exports=function(i,s){var l=s[0]-i[0],d=s[1]-i[1],h=s[2]-i[2];return Math.sqrt(l*l+d*d+h*h)}},{}],160:[function(a,u,c){u.exports=a("./divide")},{"./divide":161}],161:[function(a,u,c){u.exports=function(i,s,l){return i[0]=s[0]/l[0],i[1]=s[1]/l[1],i[2]=s[2]/l[2],i}},{}],162:[function(a,u,c){u.exports=function(i,s){return i[0]*s[0]+i[1]*s[1]+i[2]*s[2]}},{}],163:[function(a,u,c){u.exports=1e-6},{}],164:[function(a,u,c){u.exports=function(s,l){var d=s[0],h=s[1],m=s[2],g=l[0],p=l[1],v=l[2];return Math.abs(d-g)<=i*Math.max(1,Math.abs(d),Math.abs(g))&&Math.abs(h-p)<=i*Math.max(1,Math.abs(h),Math.abs(p))&&Math.abs(m-v)<=i*Math.max(1,Math.abs(m),Math.abs(v))};var i=a("./epsilon")},{"./epsilon":163}],165:[function(a,u,c){u.exports=function(i,s){return i[0]===s[0]&&i[1]===s[1]&&i[2]===s[2]}},{}],166:[function(a,u,c){u.exports=function(i,s){return i[0]=Math.floor(s[0]),i[1]=Math.floor(s[1]),i[2]=Math.floor(s[2]),i}},{}],167:[function(a,u,c){u.exports=function(s,l,d,h,m,g){var p,v;for(l||(l=3),d||(d=0),v=h?Math.min(h*l+d,s.length):s.length,p=d;p0&&(m=1/Math.sqrt(m),i[0]=s[0]*m,i[1]=s[1]*m,i[2]=s[2]*m),i}},{}],180:[function(a,u,c){u.exports=function(i,s){s=s||1;var l=2*Math.random()*Math.PI,d=2*Math.random()-1,h=Math.sqrt(1-d*d)*s;return i[0]=Math.cos(l)*h,i[1]=Math.sin(l)*h,i[2]=d*s,i}},{}],181:[function(a,u,c){u.exports=function(i,s,l,d){var h=l[1],m=l[2],g=s[1]-h,p=s[2]-m,v=Math.sin(d),y=Math.cos(d);return i[0]=s[0],i[1]=h+g*y-p*v,i[2]=m+g*v+p*y,i}},{}],182:[function(a,u,c){u.exports=function(i,s,l,d){var h=l[0],m=l[2],g=s[0]-h,p=s[2]-m,v=Math.sin(d),y=Math.cos(d);return i[0]=h+p*v+g*y,i[1]=s[1],i[2]=m+p*y-g*v,i}},{}],183:[function(a,u,c){u.exports=function(i,s,l,d){var h=l[0],m=l[1],g=s[0]-h,p=s[1]-m,v=Math.sin(d),y=Math.cos(d);return i[0]=h+g*y-p*v,i[1]=m+g*v+p*y,i[2]=s[2],i}},{}],184:[function(a,u,c){u.exports=function(i,s){return i[0]=Math.round(s[0]),i[1]=Math.round(s[1]),i[2]=Math.round(s[2]),i}},{}],185:[function(a,u,c){u.exports=function(i,s,l){return i[0]=s[0]*l,i[1]=s[1]*l,i[2]=s[2]*l,i}},{}],186:[function(a,u,c){u.exports=function(i,s,l,d){return i[0]=s[0]+l[0]*d,i[1]=s[1]+l[1]*d,i[2]=s[2]+l[2]*d,i}},{}],187:[function(a,u,c){u.exports=function(i,s,l,d){return i[0]=s,i[1]=l,i[2]=d,i}},{}],188:[function(a,u,c){u.exports=a("./squaredDistance")},{"./squaredDistance":190}],189:[function(a,u,c){u.exports=a("./squaredLength")},{"./squaredLength":191}],190:[function(a,u,c){u.exports=function(i,s){var l=s[0]-i[0],d=s[1]-i[1],h=s[2]-i[2];return l*l+d*d+h*h}},{}],191:[function(a,u,c){u.exports=function(i){var s=i[0],l=i[1],d=i[2];return s*s+l*l+d*d}},{}],192:[function(a,u,c){u.exports=a("./subtract")},{"./subtract":193}],193:[function(a,u,c){u.exports=function(i,s,l){return i[0]=s[0]-l[0],i[1]=s[1]-l[1],i[2]=s[2]-l[2],i}},{}],194:[function(a,u,c){u.exports=function(i,s,l){var d=s[0],h=s[1],m=s[2];return i[0]=d*l[0]+h*l[3]+m*l[6],i[1]=d*l[1]+h*l[4]+m*l[7],i[2]=d*l[2]+h*l[5]+m*l[8],i}},{}],195:[function(a,u,c){u.exports=function(i,s,l){var d=s[0],h=s[1],m=s[2],g=l[3]*d+l[7]*h+l[11]*m+l[15];return g=g||1,i[0]=(l[0]*d+l[4]*h+l[8]*m+l[12])/g,i[1]=(l[1]*d+l[5]*h+l[9]*m+l[13])/g,i[2]=(l[2]*d+l[6]*h+l[10]*m+l[14])/g,i}},{}],196:[function(a,u,c){u.exports=function(i,s,l){var d=s[0],h=s[1],m=s[2],g=l[0],p=l[1],v=l[2],y=l[3],x=y*d+p*m-v*h,w=y*h+v*d-g*m,k=y*m+g*h-p*d,b=-g*d-p*h-v*m;return i[0]=x*y+b*-g+w*-v-k*-p,i[1]=w*y+b*-p+k*-g-x*-v,i[2]=k*y+b*-v+x*-p-w*-g,i}},{}],197:[function(a,u,c){u.exports=function(i,s,l){return i[0]=s[0]+l[0],i[1]=s[1]+l[1],i[2]=s[2]+l[2],i[3]=s[3]+l[3],i}},{}],198:[function(a,u,c){u.exports=function(i){var s=new Float32Array(4);return s[0]=i[0],s[1]=i[1],s[2]=i[2],s[3]=i[3],s}},{}],199:[function(a,u,c){u.exports=function(i,s){return i[0]=s[0],i[1]=s[1],i[2]=s[2],i[3]=s[3],i}},{}],200:[function(a,u,c){u.exports=function(){var i=new Float32Array(4);return i[0]=0,i[1]=0,i[2]=0,i[3]=0,i}},{}],201:[function(a,u,c){u.exports=function(i,s){var l=s[0]-i[0],d=s[1]-i[1],h=s[2]-i[2],m=s[3]-i[3];return Math.sqrt(l*l+d*d+h*h+m*m)}},{}],202:[function(a,u,c){u.exports=function(i,s,l){return i[0]=s[0]/l[0],i[1]=s[1]/l[1],i[2]=s[2]/l[2],i[3]=s[3]/l[3],i}},{}],203:[function(a,u,c){u.exports=function(i,s){return i[0]*s[0]+i[1]*s[1]+i[2]*s[2]+i[3]*s[3]}},{}],204:[function(a,u,c){u.exports=function(i,s,l,d){var h=new Float32Array(4);return h[0]=i,h[1]=s,h[2]=l,h[3]=d,h}},{}],205:[function(a,u,c){u.exports={create:a("./create"),clone:a("./clone"),fromValues:a("./fromValues"),copy:a("./copy"),set:a("./set"),add:a("./add"),subtract:a("./subtract"),multiply:a("./multiply"),divide:a("./divide"),min:a("./min"),max:a("./max"),scale:a("./scale"),scaleAndAdd:a("./scaleAndAdd"),distance:a("./distance"),squaredDistance:a("./squaredDistance"),length:a("./length"),squaredLength:a("./squaredLength"),negate:a("./negate"),inverse:a("./inverse"),normalize:a("./normalize"),dot:a("./dot"),lerp:a("./lerp"),random:a("./random"),transformMat4:a("./transformMat4"),transformQuat:a("./transformQuat")}},{"./add":197,"./clone":198,"./copy":199,"./create":200,"./distance":201,"./divide":202,"./dot":203,"./fromValues":204,"./inverse":206,"./length":207,"./lerp":208,"./max":209,"./min":210,"./multiply":211,"./negate":212,"./normalize":213,"./random":214,"./scale":215,"./scaleAndAdd":216,"./set":217,"./squaredDistance":218,"./squaredLength":219,"./subtract":220,"./transformMat4":221,"./transformQuat":222}],206:[function(a,u,c){u.exports=function(i,s){return i[0]=1/s[0],i[1]=1/s[1],i[2]=1/s[2],i[3]=1/s[3],i}},{}],207:[function(a,u,c){u.exports=function(i){var s=i[0],l=i[1],d=i[2],h=i[3];return Math.sqrt(s*s+l*l+d*d+h*h)}},{}],208:[function(a,u,c){u.exports=function(i,s,l,d){var h=s[0],m=s[1],g=s[2],p=s[3];return i[0]=h+d*(l[0]-h),i[1]=m+d*(l[1]-m),i[2]=g+d*(l[2]-g),i[3]=p+d*(l[3]-p),i}},{}],209:[function(a,u,c){u.exports=function(i,s,l){return i[0]=Math.max(s[0],l[0]),i[1]=Math.max(s[1],l[1]),i[2]=Math.max(s[2],l[2]),i[3]=Math.max(s[3],l[3]),i}},{}],210:[function(a,u,c){u.exports=function(i,s,l){return i[0]=Math.min(s[0],l[0]),i[1]=Math.min(s[1],l[1]),i[2]=Math.min(s[2],l[2]),i[3]=Math.min(s[3],l[3]),i}},{}],211:[function(a,u,c){u.exports=function(i,s,l){return i[0]=s[0]*l[0],i[1]=s[1]*l[1],i[2]=s[2]*l[2],i[3]=s[3]*l[3],i}},{}],212:[function(a,u,c){u.exports=function(i,s){return i[0]=-s[0],i[1]=-s[1],i[2]=-s[2],i[3]=-s[3],i}},{}],213:[function(a,u,c){u.exports=function(i,s){var l=s[0],d=s[1],h=s[2],m=s[3],g=l*l+d*d+h*h+m*m;return g>0&&(g=1/Math.sqrt(g),i[0]=l*g,i[1]=d*g,i[2]=h*g,i[3]=m*g),i}},{}],214:[function(a,u,c){var i=a("./normalize"),s=a("./scale");u.exports=function(l,d){return d=d||1,l[0]=Math.random(),l[1]=Math.random(),l[2]=Math.random(),l[3]=Math.random(),i(l,l),s(l,l,d),l}},{"./normalize":213,"./scale":215}],215:[function(a,u,c){u.exports=function(i,s,l){return i[0]=s[0]*l,i[1]=s[1]*l,i[2]=s[2]*l,i[3]=s[3]*l,i}},{}],216:[function(a,u,c){u.exports=function(i,s,l,d){return i[0]=s[0]+l[0]*d,i[1]=s[1]+l[1]*d,i[2]=s[2]+l[2]*d,i[3]=s[3]+l[3]*d,i}},{}],217:[function(a,u,c){u.exports=function(i,s,l,d,h){return i[0]=s,i[1]=l,i[2]=d,i[3]=h,i}},{}],218:[function(a,u,c){u.exports=function(i,s){var l=s[0]-i[0],d=s[1]-i[1],h=s[2]-i[2],m=s[3]-i[3];return l*l+d*d+h*h+m*m}},{}],219:[function(a,u,c){u.exports=function(i){var s=i[0],l=i[1],d=i[2],h=i[3];return s*s+l*l+d*d+h*h}},{}],220:[function(a,u,c){u.exports=function(i,s,l){return i[0]=s[0]-l[0],i[1]=s[1]-l[1],i[2]=s[2]-l[2],i[3]=s[3]-l[3],i}},{}],221:[function(a,u,c){u.exports=function(i,s,l){var d=s[0],h=s[1],m=s[2],g=s[3];return i[0]=l[0]*d+l[4]*h+l[8]*m+l[12]*g,i[1]=l[1]*d+l[5]*h+l[9]*m+l[13]*g,i[2]=l[2]*d+l[6]*h+l[10]*m+l[14]*g,i[3]=l[3]*d+l[7]*h+l[11]*m+l[15]*g,i}},{}],222:[function(a,u,c){u.exports=function(i,s,l){var d=s[0],h=s[1],m=s[2],g=l[0],p=l[1],v=l[2],y=l[3],x=y*d+p*m-v*h,w=y*h+v*d-g*m,k=y*m+g*h-p*d,b=-g*d-p*h-v*m;return i[0]=x*y+b*-g+w*-v-k*-p,i[1]=w*y+b*-p+k*-g-x*-v,i[2]=k*y+b*-v+x*-p-w*-g,i[3]=s[3],i}},{}],223:[function(a,u,c){var i=a("glsl-tokenizer"),s=a("atob-lite");u.exports=function(l){for(var d=Array.isArray(l)?l:i(l),h=0;h0)continue;ne=q.slice(0,1).join("")}return P(ne),A+=ne.length,(b=b.slice(ne.length)).length}}function Y(){return/[^a-fA-F0-9]/.test(p)?(P(b.join("")),k=999,x):(b.push(p),v=p,x+1)}function Z(){return p==="."||/[eE]/.test(p)?(b.push(p),k=5,v=p,x+1):p==="x"&&b.length===1&&b[0]==="0"?(k=11,b.push(p),v=p,x+1):/[^\d]/.test(p)?(P(b.join("")),k=999,x):(b.push(p),v=p,x+1)}function re(){return p==="f"&&(b.push(p),v=p,x+=1),/[eE]/.test(p)?(b.push(p),v=p,x+1):(p!=="-"&&p!=="+"||!/[eE]/.test(v))&&/[^\d]/.test(p)?(P(b.join("")),k=999,x):(b.push(p),v=p,x+1)}function U(){if(/[^\d\w_]/.test(p)){var q=b.join("");return k=L[q]?8:z[q]?7:6,P(b.join("")),k=999,x}return b.push(p),v=p,x+1}};var i=a("./lib/literals"),s=a("./lib/operators"),l=a("./lib/builtins"),d=a("./lib/literals-300es"),h=a("./lib/builtins-300es"),m=["block-comment","line-comment","preprocessor","operator","integer","float","ident","builtin","keyword","whitespace","eof","integer"]},{"./lib/builtins":226,"./lib/builtins-300es":225,"./lib/literals":228,"./lib/literals-300es":227,"./lib/operators":229}],225:[function(a,u,c){var i=a("./builtins");i=i.slice().filter(function(s){return!/^(gl\_|texture)/.test(s)}),u.exports=i.concat(["gl_VertexID","gl_InstanceID","gl_Position","gl_PointSize","gl_FragCoord","gl_FrontFacing","gl_FragDepth","gl_PointCoord","gl_MaxVertexAttribs","gl_MaxVertexUniformVectors","gl_MaxVertexOutputVectors","gl_MaxFragmentInputVectors","gl_MaxVertexTextureImageUnits","gl_MaxCombinedTextureImageUnits","gl_MaxTextureImageUnits","gl_MaxFragmentUniformVectors","gl_MaxDrawBuffers","gl_MinProgramTexelOffset","gl_MaxProgramTexelOffset","gl_DepthRangeParameters","gl_DepthRange","trunc","round","roundEven","isnan","isinf","floatBitsToInt","floatBitsToUint","intBitsToFloat","uintBitsToFloat","packSnorm2x16","unpackSnorm2x16","packUnorm2x16","unpackUnorm2x16","packHalf2x16","unpackHalf2x16","outerProduct","transpose","determinant","inverse","texture","textureSize","textureProj","textureLod","textureOffset","texelFetch","texelFetchOffset","textureProjOffset","textureLodOffset","textureProjLod","textureProjLodOffset","textureGrad","textureGradOffset","textureProjGrad","textureProjGradOffset"])},{"./builtins":226}],226:[function(a,u,c){u.exports=["abs","acos","all","any","asin","atan","ceil","clamp","cos","cross","dFdx","dFdy","degrees","distance","dot","equal","exp","exp2","faceforward","floor","fract","gl_BackColor","gl_BackLightModelProduct","gl_BackLightProduct","gl_BackMaterial","gl_BackSecondaryColor","gl_ClipPlane","gl_ClipVertex","gl_Color","gl_DepthRange","gl_DepthRangeParameters","gl_EyePlaneQ","gl_EyePlaneR","gl_EyePlaneS","gl_EyePlaneT","gl_Fog","gl_FogCoord","gl_FogFragCoord","gl_FogParameters","gl_FragColor","gl_FragCoord","gl_FragData","gl_FragDepth","gl_FragDepthEXT","gl_FrontColor","gl_FrontFacing","gl_FrontLightModelProduct","gl_FrontLightProduct","gl_FrontMaterial","gl_FrontSecondaryColor","gl_LightModel","gl_LightModelParameters","gl_LightModelProducts","gl_LightProducts","gl_LightSource","gl_LightSourceParameters","gl_MaterialParameters","gl_MaxClipPlanes","gl_MaxCombinedTextureImageUnits","gl_MaxDrawBuffers","gl_MaxFragmentUniformComponents","gl_MaxLights","gl_MaxTextureCoords","gl_MaxTextureImageUnits","gl_MaxTextureUnits","gl_MaxVaryingFloats","gl_MaxVertexAttribs","gl_MaxVertexTextureImageUnits","gl_MaxVertexUniformComponents","gl_ModelViewMatrix","gl_ModelViewMatrixInverse","gl_ModelViewMatrixInverseTranspose","gl_ModelViewMatrixTranspose","gl_ModelViewProjectionMatrix","gl_ModelViewProjectionMatrixInverse","gl_ModelViewProjectionMatrixInverseTranspose","gl_ModelViewProjectionMatrixTranspose","gl_MultiTexCoord0","gl_MultiTexCoord1","gl_MultiTexCoord2","gl_MultiTexCoord3","gl_MultiTexCoord4","gl_MultiTexCoord5","gl_MultiTexCoord6","gl_MultiTexCoord7","gl_Normal","gl_NormalMatrix","gl_NormalScale","gl_ObjectPlaneQ","gl_ObjectPlaneR","gl_ObjectPlaneS","gl_ObjectPlaneT","gl_Point","gl_PointCoord","gl_PointParameters","gl_PointSize","gl_Position","gl_ProjectionMatrix","gl_ProjectionMatrixInverse","gl_ProjectionMatrixInverseTranspose","gl_ProjectionMatrixTranspose","gl_SecondaryColor","gl_TexCoord","gl_TextureEnvColor","gl_TextureMatrix","gl_TextureMatrixInverse","gl_TextureMatrixInverseTranspose","gl_TextureMatrixTranspose","gl_Vertex","greaterThan","greaterThanEqual","inversesqrt","length","lessThan","lessThanEqual","log","log2","matrixCompMult","max","min","mix","mod","normalize","not","notEqual","pow","radians","reflect","refract","sign","sin","smoothstep","sqrt","step","tan","texture2D","texture2DLod","texture2DProj","texture2DProjLod","textureCube","textureCubeLod","texture2DLodEXT","texture2DProjLodEXT","textureCubeLodEXT","texture2DGradEXT","texture2DProjGradEXT","textureCubeGradEXT"]},{}],227:[function(a,u,c){var i=a("./literals");u.exports=i.slice().concat(["layout","centroid","smooth","case","mat2x2","mat2x3","mat2x4","mat3x2","mat3x3","mat3x4","mat4x2","mat4x3","mat4x4","uvec2","uvec3","uvec4","samplerCubeShadow","sampler2DArray","sampler2DArrayShadow","isampler2D","isampler3D","isamplerCube","isampler2DArray","usampler2D","usampler3D","usamplerCube","usampler2DArray","coherent","restrict","readonly","writeonly","resource","atomic_uint","noperspective","patch","sample","subroutine","common","partition","active","filter","image1D","image2D","image3D","imageCube","iimage1D","iimage2D","iimage3D","iimageCube","uimage1D","uimage2D","uimage3D","uimageCube","image1DArray","image2DArray","iimage1DArray","iimage2DArray","uimage1DArray","uimage2DArray","image1DShadow","image2DShadow","image1DArrayShadow","image2DArrayShadow","imageBuffer","iimageBuffer","uimageBuffer","sampler1DArray","sampler1DArrayShadow","isampler1D","isampler1DArray","usampler1D","usampler1DArray","isampler2DRect","usampler2DRect","samplerBuffer","isamplerBuffer","usamplerBuffer","sampler2DMS","isampler2DMS","usampler2DMS","sampler2DMSArray","isampler2DMSArray","usampler2DMSArray"])},{"./literals":228}],228:[function(a,u,c){u.exports=["precision","highp","mediump","lowp","attribute","const","uniform","varying","break","continue","do","for","while","if","else","in","out","inout","float","int","uint","void","bool","true","false","discard","return","mat2","mat3","mat4","vec2","vec3","vec4","ivec2","ivec3","ivec4","bvec2","bvec3","bvec4","sampler1D","sampler2D","sampler3D","samplerCube","sampler1DShadow","sampler2DShadow","struct","asm","class","union","enum","typedef","template","this","packed","goto","switch","default","inline","noinline","volatile","public","static","extern","external","interface","long","short","double","half","fixed","unsigned","input","output","hvec2","hvec3","hvec4","dvec2","dvec3","dvec4","fvec2","fvec3","fvec4","sampler2DRect","sampler3DRect","sampler2DRectShadow","sizeof","cast","namespace","using"]},{}],229:[function(a,u,c){u.exports=["<<=",">>=","++","--","<<",">>","<=",">=","==","!=","&&","||","+=","-=","*=","/=","%=","&=","^^","^=","|=","(",")","[","]",".","!","~","*","/","%","+","-","<",">","&","^","|","?",":","=",",",";","{","}"]},{}],230:[function(a,u,c){var i=a("./index");u.exports=function(s,l){var d=i(l),h=[];return h=(h=h.concat(d(s))).concat(d(null))}},{"./index":224}],231:[function(a,u,c){u.exports=function(i){typeof i=="string"&&(i=[i]);for(var s=[].slice.call(arguments,1),l=[],d=0;d0;)for(var _=(v=T.pop()).adjacent,M=0;M<=x;++M){var A=_[M];if(A.boundary&&!(A.lastVisited<=-w)){for(var S=A.vertices,E=0;E<=x;++E){var D=S[E];k[E]=D<0?y:b[D]}var O=this.orient();if(O>0)return A;A.lastVisited=-w,O===0&&T.push(A)}}return null},p.walk=function(v,y){var x=this.vertices.length-1,w=this.dimension,k=this.vertices,b=this.tuple,T=y?this.interior.length*Math.random()|0:this.interior.length-1,_=this.interior[T];e:for(;!_.boundary;){for(var M=_.vertices,A=_.adjacent,S=0;S<=w;++S)b[S]=k[M[S]];for(_.lastVisited=x,S=0;S<=w;++S){var E=A[S];if(!(E.lastVisited>=x)){var D=b[S];b[S]=v;var O=this.orient();if(b[S]=D,O<0){_=E;continue e}E.boundary?E.lastVisited=-x:E.lastVisited=x}}return}return _},p.addPeaks=function(v,y){var x=this.vertices.length-1,w=this.dimension,k=this.vertices,b=this.tuple,T=this.interior,_=this.simplices,M=[y];y.lastVisited=x,y.vertices[y.vertices.indexOf(-1)]=x,y.boundary=!1,T.push(y);for(var A=[];M.length>0;){var S=(y=M.pop()).vertices,E=y.adjacent,D=S.indexOf(x);if(!(D<0)){for(var O=0;O<=w;++O)if(O!==D){var R=E[O];if(R.boundary&&!(R.lastVisited>=x)){var z=R.vertices;if(R.lastVisited!==-x){for(var L=0,P=0;P<=w;++P)z[P]<0?(L=P,b[P]=v):b[P]=k[z[P]];if(this.orient()>0){z[L]=x,R.boundary=!1,T.push(R),M.push(R),R.lastVisited=x;continue}R.lastVisited=-x}var N=R.adjacent,B=S.slice(),G=E.slice(),W=new l(B,G,!0);_.push(W);var K=N.indexOf(y);if(!(K<0))for(N[K]=W,G[D]=R,B[O]=-1,G[O]=y,E[O]=W,W.flip(),P=0;P<=w;++P){var te=B[P];if(!(te<0||te===x)){for(var Y=new Array(w-1),Z=0,re=0;re<=w;++re){var U=B[re];U<0||re===P||(Y[Z++]=U)}A.push(new d(Y,W,P))}}}}}}for(A.sort(h),O=0;O+1=0?T[M++]=_[S]:A=1&S;if(A===(1&v)){var E=T[0];T[0]=T[1],T[1]=E}y.push(T)}}return y}},{"robust-orientation":284,"simplicial-complex":293}],234:[function(a,u,c){var i=a("binary-search-bounds");function s(M,A,S,E,D){this.mid=M,this.left=A,this.right=S,this.leftPoints=E,this.rightPoints=D,this.count=(A?A.count:0)+(S?S.count:0)+E.length}u.exports=function(M){return!M||M.length===0?new T(null):new T(b(M))};var l=s.prototype;function d(M,A){M.mid=A.mid,M.left=A.left,M.right=A.right,M.leftPoints=A.leftPoints,M.rightPoints=A.rightPoints,M.count=A.count}function h(M,A){var S=b(A);M.mid=S.mid,M.left=S.left,M.right=S.right,M.leftPoints=S.leftPoints,M.rightPoints=S.rightPoints,M.count=S.count}function m(M,A){var S=M.intervals([]);S.push(A),h(M,S)}function g(M,A){var S=M.intervals([]),E=S.indexOf(A);return E<0?0:(S.splice(E,1),h(M,S),1)}function p(M,A,S){for(var E=0;E=0&&M[E][1]>=A;--E){var D=S(M[E]);if(D)return D}}function y(M,A){for(var S=0;S>1],D=[],O=[],R=[];for(S=0;S3*(A+1)?m(this,M):this.left.insert(M):this.left=b([M]);else if(M[0]>this.mid)this.right?4*(this.right.count+1)>3*(A+1)?m(this,M):this.right.insert(M):this.right=b([M]);else{var S=i.ge(this.leftPoints,M,w),E=i.ge(this.rightPoints,M,k);this.leftPoints.splice(S,0,M),this.rightPoints.splice(E,0,M)}},l.remove=function(M){var A=this.count-this.leftPoints;if(M[1]3*(A-1)?g(this,M):(O=this.left.remove(M))===2?(this.left=null,this.count-=1,1):(O===1&&(this.count-=1),O):0;if(M[0]>this.mid)return this.right?4*(this.left?this.left.count:0)>3*(A-1)?g(this,M):(O=this.right.remove(M))===2?(this.right=null,this.count-=1,1):(O===1&&(this.count-=1),O):0;if(this.count===1)return this.leftPoints[0]===M?2:0;if(this.leftPoints.length===1&&this.leftPoints[0]===M){if(this.left&&this.right){for(var S=this,E=this.left;E.right;)S=E,E=E.right;if(S===this)E.right=this.right;else{var D=this.left,O=this.right;S.count-=E.count,S.right=E.left,E.left=D,E.right=O}d(this,E),this.count=(this.left?this.left.count:0)+(this.right?this.right.count:0)+this.leftPoints.length}else this.left?d(this,this.left):d(this,this.right);return 1}for(D=i.ge(this.leftPoints,M,w);Dthis.mid){var S;return this.right&&(S=this.right.queryPoint(M,A))?S:v(this.rightPoints,M,A)}return y(this.leftPoints,A)},l.queryInterval=function(M,A,S){var E;return Mthis.mid&&this.right&&(E=this.right.queryInterval(M,A,S))?E:Athis.mid?v(this.rightPoints,M,S):y(this.leftPoints,S)};var _=T.prototype;_.insert=function(M){this.root?this.root.insert(M):this.root=new s(M[0],null,null,[M],[M])},_.remove=function(M){if(this.root){var A=this.root.remove(M);return A===2&&(this.root=null),A!==0}return!1},_.queryPoint=function(M,A){if(this.root)return this.root.queryPoint(M,A)},_.queryInterval=function(M,A,S){if(M<=A&&this.root)return this.root.queryInterval(M,A,S)},Object.defineProperty(_,"count",{get:function(){return this.root?this.root.count:0}}),Object.defineProperty(_,"intervals",{get:function(){return this.root?this.root.intervals([]):[]}})},{"binary-search-bounds":31}],235:[function(a,u,c){u.exports=function(i){for(var s=new Array(i),l=0;l + * @license MIT + */u.exports=function(s){return s!=null&&(i(s)||function(l){return typeof l.readFloatLE=="function"&&typeof l.slice=="function"&&i(l.slice(0,0))}(s)||!!s._isBuffer)}},{}],238:[function(a,u,c){u.exports=l,u.exports.isMobile=l,u.exports.default=l;var i=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i,s=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino|android|ipad|playbook|silk/i;function l(d){d||(d={});var h=d.ua;if(h||typeof navigator>"u"||(h=navigator.userAgent),h&&h.headers&&typeof h.headers["user-agent"]=="string"&&(h=h.headers["user-agent"]),typeof h!="string")return!1;var m=d.tablet?s.test(h):i.test(h);return!m&&d.tablet&&d.featureDetect&&navigator&&navigator.maxTouchPoints>1&&h.indexOf("Macintosh")!==-1&&h.indexOf("Safari")!==-1&&(m=!0),m}},{}],239:[function(a,u,c){u.exports=function(i){for(var s,l=i.length,d=0;d13)&&s!==32&&s!==133&&s!==160&&s!==5760&&s!==6158&&(s<8192||s>8205)&&s!==8232&&s!==8233&&s!==8239&&s!==8287&&s!==8288&&s!==12288&&s!==65279)return!1;return!0}},{}],240:[function(a,u,c){u.exports=function(i,s,l){return i*(1-l)+s*l}},{}],241:[function(a,u,c){var i=a("./normalize"),s=a("gl-mat4/create"),l=a("gl-mat4/clone"),d=a("gl-mat4/determinant"),h=a("gl-mat4/invert"),m=a("gl-mat4/transpose"),g={length:a("gl-vec3/length"),normalize:a("gl-vec3/normalize"),dot:a("gl-vec3/dot"),cross:a("gl-vec3/cross")},p=s(),v=s(),y=[0,0,0,0],x=[[0,0,0],[0,0,0],[0,0,0]],w=[0,0,0];function k(b,T,_,M,A){b[0]=T[0]*M+_[0]*A,b[1]=T[1]*M+_[1]*A,b[2]=T[2]*M+_[2]*A}u.exports=function(b,T,_,M,A,S){if(T||(T=[0,0,0]),_||(_=[0,0,0]),M||(M=[0,0,0]),A||(A=[0,0,0,1]),S||(S=[0,0,0,1]),!i(p,b)||(l(v,p),v[3]=0,v[7]=0,v[11]=0,v[15]=1,Math.abs(d(v)<1e-8)))return!1;var E,D,O,R,z,L,P,N=p[3],B=p[7],G=p[11],W=p[12],K=p[13],te=p[14],Y=p[15];if(N!==0||B!==0||G!==0){if(y[0]=N,y[1]=B,y[2]=G,y[3]=Y,!h(v,v))return!1;m(v,v),E=A,O=v,R=(D=y)[0],z=D[1],L=D[2],P=D[3],E[0]=O[0]*R+O[4]*z+O[8]*L+O[12]*P,E[1]=O[1]*R+O[5]*z+O[9]*L+O[13]*P,E[2]=O[2]*R+O[6]*z+O[10]*L+O[14]*P,E[3]=O[3]*R+O[7]*z+O[11]*L+O[15]*P}else A[0]=A[1]=A[2]=0,A[3]=1;if(T[0]=W,T[1]=K,T[2]=te,function(re,U){re[0][0]=U[0],re[0][1]=U[1],re[0][2]=U[2],re[1][0]=U[4],re[1][1]=U[5],re[1][2]=U[6],re[2][0]=U[8],re[2][1]=U[9],re[2][2]=U[10]}(x,p),_[0]=g.length(x[0]),g.normalize(x[0],x[0]),M[0]=g.dot(x[0],x[1]),k(x[1],x[1],x[0],1,-M[0]),_[1]=g.length(x[1]),g.normalize(x[1],x[1]),M[0]/=_[1],M[1]=g.dot(x[0],x[2]),k(x[2],x[2],x[0],1,-M[1]),M[2]=g.dot(x[1],x[2]),k(x[2],x[2],x[1],1,-M[2]),_[2]=g.length(x[2]),g.normalize(x[2],x[2]),M[1]/=_[2],M[2]/=_[2],g.cross(w,x[1],x[2]),g.dot(x[0],w)<0)for(var Z=0;Z<3;Z++)_[Z]*=-1,x[Z][0]*=-1,x[Z][1]*=-1,x[Z][2]*=-1;return S[0]=.5*Math.sqrt(Math.max(1+x[0][0]-x[1][1]-x[2][2],0)),S[1]=.5*Math.sqrt(Math.max(1-x[0][0]+x[1][1]-x[2][2],0)),S[2]=.5*Math.sqrt(Math.max(1-x[0][0]-x[1][1]+x[2][2],0)),S[3]=.5*Math.sqrt(Math.max(1+x[0][0]+x[1][1]+x[2][2],0)),x[2][1]>x[1][2]&&(S[0]=-S[0]),x[0][2]>x[2][0]&&(S[1]=-S[1]),x[1][0]>x[0][1]&&(S[2]=-S[2]),!0}},{"./normalize":242,"gl-mat4/clone":92,"gl-mat4/create":93,"gl-mat4/determinant":94,"gl-mat4/invert":98,"gl-mat4/transpose":109,"gl-vec3/cross":157,"gl-vec3/dot":162,"gl-vec3/length":172,"gl-vec3/normalize":179}],242:[function(a,u,c){u.exports=function(i,s){var l=s[15];if(l===0)return!1;for(var d=1/l,h=0;h<16;h++)i[h]=s[h]*d;return!0}},{}],243:[function(a,u,c){var i=a("gl-vec3/lerp"),s=a("mat4-recompose"),l=a("mat4-decompose"),d=a("gl-mat4/determinant"),h=a("quat-slerp"),m=v(),g=v(),p=v();function v(){return{translate:y(),scale:y(1),skew:y(),perspective:[0,0,0,1],quaternion:[0,0,0,1]}}function y(x){return[x||0,x||0,x||0]}u.exports=function(x,w,k,b){if(d(w)===0||d(k)===0)return!1;var T=l(w,m.translate,m.scale,m.skew,m.perspective,m.quaternion),_=l(k,g.translate,g.scale,g.skew,g.perspective,g.quaternion);return!(!T||!_)&&(i(p.translate,m.translate,g.translate,b),i(p.skew,m.skew,g.skew,b),i(p.scale,m.scale,g.scale,b),i(p.perspective,m.perspective,g.perspective,b),h(p.quaternion,m.quaternion,g.quaternion,b),s(x,p.translate,p.scale,p.skew,p.perspective,p.quaternion),!0)}},{"gl-mat4/determinant":94,"gl-vec3/lerp":173,"mat4-decompose":241,"mat4-recompose":244,"quat-slerp":271}],244:[function(a,u,c){var i={identity:a("gl-mat4/identity"),translate:a("gl-mat4/translate"),multiply:a("gl-mat4/multiply"),create:a("gl-mat4/create"),scale:a("gl-mat4/scale"),fromRotationTranslation:a("gl-mat4/fromRotationTranslation")},s=(i.create(),i.create());u.exports=function(l,d,h,m,g,p){return i.identity(l),i.fromRotationTranslation(l,p,d),l[3]=g[0],l[7]=g[1],l[11]=g[2],l[15]=g[3],i.identity(s),m[2]!==0&&(s[9]=m[2],i.multiply(l,l,s)),m[1]!==0&&(s[9]=0,s[8]=m[1],i.multiply(l,l,s)),m[0]!==0&&(s[8]=0,s[4]=m[0],i.multiply(l,l,s)),i.scale(l,l,h),l}},{"gl-mat4/create":93,"gl-mat4/fromRotationTranslation":96,"gl-mat4/identity":97,"gl-mat4/multiply":100,"gl-mat4/scale":107,"gl-mat4/translate":108}],245:[function(a,u,c){var i=a("binary-search-bounds"),s=a("mat4-interpolate"),l=a("gl-mat4/invert"),d=a("gl-mat4/rotateX"),h=a("gl-mat4/rotateY"),m=a("gl-mat4/rotateZ"),g=a("gl-mat4/lookAt"),p=a("gl-mat4/translate"),v=(a("gl-mat4/scale"),a("gl-vec3/normalize")),y=[0,0,0];function x(b){this._components=b.slice(),this._time=[0],this.prevMatrix=b.slice(),this.nextMatrix=b.slice(),this.computedMatrix=b.slice(),this.computedInverse=b.slice(),this.computedEye=[0,0,0],this.computedUp=[0,0,0],this.computedCenter=[0,0,0],this.computedRadius=[0],this._limits=[-1/0,1/0]}u.exports=function(b){return new x((b=b||{}).matrix||[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])};var w=x.prototype;w.recalcMatrix=function(b){var T=this._time,_=i.le(T,b),M=this.computedMatrix;if(!(_<0)){var A=this._components;if(_===T.length-1)for(var S=16*_,E=0;E<16;++E)M[E]=A[S++];else{var D=T[_+1]-T[_],O=(S=16*_,this.prevMatrix),R=!0;for(E=0;E<16;++E)O[E]=A[S++];var z=this.nextMatrix;for(E=0;E<16;++E)z[E]=A[S++],R=R&&O[E]===z[E];if(D<1e-6||R)for(E=0;E<16;++E)M[E]=O[E];else s(M,O,z,(b-T[_])/D)}var L=this.computedUp;L[0]=M[1],L[1]=M[5],L[2]=M[9],v(L,L);var P=this.computedInverse;l(P,M);var N=this.computedEye,B=P[15];N[0]=P[12]/B,N[1]=P[13]/B,N[2]=P[14]/B;var G=this.computedCenter,W=Math.exp(this.computedRadius[0]);for(E=0;E<3;++E)G[E]=N[E]-M[2+4*E]*W}},w.idle=function(b){if(!(b1&&i(s[g[x-2]],s[g[x-1]],y)<=0;)x-=1,g.pop();for(g.push(v),x=p.length;x>1&&i(s[p[x-2]],s[p[x-1]],y)>=0;)x-=1,p.pop();p.push(v)}d=new Array(p.length+g.length-2);for(var w=0,k=(h=0,g.length);h0;--b)d[w++]=p[b];return d};var i=a("robust-orientation")[3]},{"robust-orientation":284}],247:[function(a,u,c){u.exports=function(s,l){l||(l=s,s=window);var d=0,h=0,m=0,g={shift:!1,alt:!1,control:!1,meta:!1},p=!1;function v(S){var E=!1;return"altKey"in S&&(E=E||S.altKey!==g.alt,g.alt=!!S.altKey),"shiftKey"in S&&(E=E||S.shiftKey!==g.shift,g.shift=!!S.shiftKey),"ctrlKey"in S&&(E=E||S.ctrlKey!==g.control,g.control=!!S.ctrlKey),"metaKey"in S&&(E=E||S.metaKey!==g.meta,g.meta=!!S.metaKey),E}function y(S,E){var D=i.x(E),O=i.y(E);"buttons"in E&&(S=0|E.buttons),(S!==d||D!==h||O!==m||v(E))&&(d=0|S,h=D||0,m=O||0,l&&l(d,h,m,g))}function x(S){y(0,S)}function w(){(d||h||m||g.shift||g.alt||g.meta||g.control)&&(h=m=0,d=0,g.shift=g.alt=g.control=g.meta=!1,l&&l(0,0,0,g))}function k(S){v(S)&&l&&l(d,h,m,g)}function b(S){i.buttons(S)===0?y(0,S):y(d,S)}function T(S){y(d|i.buttons(S),S)}function _(S){y(d&~i.buttons(S),S)}function M(){p||(p=!0,s.addEventListener("mousemove",b),s.addEventListener("mousedown",T),s.addEventListener("mouseup",_),s.addEventListener("mouseleave",x),s.addEventListener("mouseenter",x),s.addEventListener("mouseout",x),s.addEventListener("mouseover",x),s.addEventListener("blur",w),s.addEventListener("keyup",k),s.addEventListener("keydown",k),s.addEventListener("keypress",k),s!==window&&(window.addEventListener("blur",w),window.addEventListener("keyup",k),window.addEventListener("keydown",k),window.addEventListener("keypress",k)))}M();var A={element:s};return Object.defineProperties(A,{enabled:{get:function(){return p},set:function(S){S?M():function(){!p||(p=!1,s.removeEventListener("mousemove",b),s.removeEventListener("mousedown",T),s.removeEventListener("mouseup",_),s.removeEventListener("mouseleave",x),s.removeEventListener("mouseenter",x),s.removeEventListener("mouseout",x),s.removeEventListener("mouseover",x),s.removeEventListener("blur",w),s.removeEventListener("keyup",k),s.removeEventListener("keydown",k),s.removeEventListener("keypress",k),s!==window&&(window.removeEventListener("blur",w),window.removeEventListener("keyup",k),window.removeEventListener("keydown",k),window.removeEventListener("keypress",k)))}()},enumerable:!0},buttons:{get:function(){return d},enumerable:!0},x:{get:function(){return h},enumerable:!0},y:{get:function(){return m},enumerable:!0},mods:{get:function(){return g},enumerable:!0}}),A};var i=a("mouse-event")},{"mouse-event":249}],248:[function(a,u,c){var i={left:0,top:0};u.exports=function(s,l,d){l=l||s.currentTarget||s.srcElement,Array.isArray(d)||(d=[0,0]);var h=s.clientX||0,m=s.clientY||0,g=(p=l,p===window||p===document||p===document.body?i:p.getBoundingClientRect()),p;return d[0]=h-g.left,d[1]=m-g.top,d}},{}],249:[function(a,u,c){function i(s){return s.target||s.srcElement||window}c.buttons=function(s){if(typeof s=="object"){if("buttons"in s)return s.buttons;if("which"in s){if((l=s.which)===2)return 4;if(l===3)return 2;if(l>0)return 1<=0)return 1< 0"),typeof l.vertex!="function"&&d("Must specify vertex creation function"),typeof l.cell!="function"&&d("Must specify cell creation function"),typeof l.phase!="function"&&d("Must specify phase function");for(var p=l.getters||[],v=new Array(m),y=0;y=0?v[y]=!0:v[y]=!1;return function(x,w,k,b,T,_){var M=[_,T].join(",");return(0,s[M])(x,w,k,i.mallocUint32,i.freeUint32)}(l.vertex,l.cell,l.phase,0,h,v)};var s={"false,0,1":function(l,d,h,m,g){return function(p,v,y,x){var w,k=0|p.shape[0],b=0|p.shape[1],T=p.data,_=0|p.offset,M=0|p.stride[0],A=0|p.stride[1],S=_,E=0|-M,D=0,O=0|-A,R=0,z=-M-A|0,L=0,P=0|M,N=A-M*k|0,B=0,G=0,W=0,K=2*k|0,te=m(K),Y=m(K),Z=0,re=0,U=-1,q=-1,$=0,ne=0|-k,H=0|k,Q=0,ee=-k-1|0,ie=k-1|0,ae=0,ue=0,le=0;for(B=0;B0){if(G=1,te[Z++]=h(T[S],v,y,x),S+=P,k>0)for(B=1,w=T[S],re=te[Z]=h(w,v,y,x),$=te[Z+U],Q=te[Z+ne],ae=te[Z+ee],re===$&&re===Q&&re===ae||(D=T[S+E],R=T[S+O],L=T[S+z],l(B,G,w,D,R,L,re,$,Q,ae,v,y,x),ue=Y[Z]=W++),Z+=1,S+=P,B=2;B0)for(B=1,w=T[S],re=te[Z]=h(w,v,y,x),$=te[Z+U],Q=te[Z+ne],ae=te[Z+ee],re===$&&re===Q&&re===ae||(D=T[S+E],R=T[S+O],L=T[S+z],l(B,G,w,D,R,L,re,$,Q,ae,v,y,x),ue=Y[Z]=W++,ae!==Q&&d(Y[Z+ne],ue,R,L,Q,ae,v,y,x)),Z+=1,S+=P,B=2;B0){if(B=1,te[Z++]=h(T[S],v,y,x),S+=P,b>0)for(G=1,w=T[S],re=te[Z]=h(w,v,y,x),Q=te[Z+ne],$=te[Z+U],ae=te[Z+ee],re===Q&&re===$&&re===ae||(D=T[S+E],R=T[S+O],L=T[S+z],l(B,G,w,D,R,L,re,Q,$,ae,v,y,x),ue=Y[Z]=W++),Z+=1,S+=P,G=2;G0)for(G=1,w=T[S],re=te[Z]=h(w,v,y,x),Q=te[Z+ne],$=te[Z+U],ae=te[Z+ee],re===Q&&re===$&&re===ae||(D=T[S+E],R=T[S+O],L=T[S+z],l(B,G,w,D,R,L,re,Q,$,ae,v,y,x),ue=Y[Z]=W++,ae!==Q&&d(Y[Z+ne],ue,L,D,ae,Q,v,y,x)),Z+=1,S+=P,G=2;G2&&S[1]>2&&_(A.pick(-1,-1).lo(1,1).hi(S[0]-2,S[1]-2),M.pick(-1,-1,0).lo(1,1).hi(S[0]-2,S[1]-2),M.pick(-1,-1,1).lo(1,1).hi(S[0]-2,S[1]-2)),S[1]>2&&(T(A.pick(0,-1).lo(1).hi(S[1]-2),M.pick(0,-1,1).lo(1).hi(S[1]-2)),b(M.pick(0,-1,0).lo(1).hi(S[1]-2))),S[1]>2&&(T(A.pick(S[0]-1,-1).lo(1).hi(S[1]-2),M.pick(S[0]-1,-1,1).lo(1).hi(S[1]-2)),b(M.pick(S[0]-1,-1,0).lo(1).hi(S[1]-2))),S[0]>2&&(T(A.pick(-1,0).lo(1).hi(S[0]-2),M.pick(-1,0,0).lo(1).hi(S[0]-2)),b(M.pick(-1,0,1).lo(1).hi(S[0]-2))),S[0]>2&&(T(A.pick(-1,S[1]-1).lo(1).hi(S[0]-2),M.pick(-1,S[1]-1,0).lo(1).hi(S[0]-2)),b(M.pick(-1,S[1]-1,1).lo(1).hi(S[0]-2))),M.set(0,0,0,0),M.set(0,0,1,0),M.set(S[0]-1,0,0,0),M.set(S[0]-1,0,1,0),M.set(0,S[1]-1,0,0),M.set(0,S[1]-1,1,0),M.set(S[0]-1,S[1]-1,0,0),M.set(S[0]-1,S[1]-1,1,0),M}}u.exports=function(k,b,T){return Array.isArray(T)||(T=i(b.dimension,typeof T=="string"?T:"clamp")),b.size===0?k:b.dimension===0?(k.set(0),k):function(_){var M=_.join();if(D=p[M])return D;for(var A=_.length,S=[v,y],E=1;E<=A;++E)S.push(x(E));var D=w.apply(void 0,S);return p[M]=D,D}(T)(k,b)}},{dup:65}],253:[function(a,u,c){function i(h,m){var g=Math.floor(m),p=m-g,v=0<=g&&g0;){L<64?(b=L,L=0):(b=64,L-=64);for(var P=0|m[1];P>0;){P<64?(T=P,P=0):(T=64,P-=64),v=R+L*M+P*A,w=z+L*E+P*D;var N=0,B=0,G=0,W=S,K=M-_*S,te=A-b*M,Y=O,Z=E-_*O,re=D-b*E;for(G=0;G0;){D<64?(b=D,D=0):(b=64,D-=64);for(var O=0|m[0];O>0;){O<64?(k=O,O=0):(k=64,O-=64),v=S+D*_+O*T,w=E+D*A+O*M;var R=0,z=0,L=_,P=T-b*_,N=A,B=M-b*A;for(z=0;z0;){z<64?(T=z,z=0):(T=64,z-=64);for(var L=0|m[0];L>0;){L<64?(k=L,L=0):(k=64,L-=64);for(var P=0|m[1];P>0;){P<64?(b=P,P=0):(b=64,P-=64),v=O+z*A+L*_+P*M,w=R+z*D+L*S+P*E;var N=0,B=0,G=0,W=A,K=_-T*A,te=M-k*_,Y=D,Z=S-T*D,re=E-k*S;for(G=0;Gp;){R=0,z=D-w;t:for(O=0;OP)break t;z+=M,R+=A}for(R=D,z=D-w,O=0;O>1,_e=me-le,we=me+le,Te=ge,Oe=_e,de=me,ye=we,Me=fe,ke=y+1,Ee=x-1,ze=!0,Fe=0,Ve=0,Ke=0,Re=M,qe=g(Re),We=g(Re);K=b*Te,te=b*Oe,ue=k;e:for(W=0;W0){O=Te,Te=Oe,Oe=O;break e}if(Ke<0)break e;ue+=S}K=b*ye,te=b*Me,ue=k;e:for(W=0;W0){O=ye,ye=Me,Me=O;break e}if(Ke<0)break e;ue+=S}K=b*Te,te=b*de,ue=k;e:for(W=0;W0){O=Te,Te=de,de=O;break e}if(Ke<0)break e;ue+=S}K=b*Oe,te=b*de,ue=k;e:for(W=0;W0){O=Oe,Oe=de,de=O;break e}if(Ke<0)break e;ue+=S}K=b*Te,te=b*ye,ue=k;e:for(W=0;W0){O=Te,Te=ye,ye=O;break e}if(Ke<0)break e;ue+=S}K=b*de,te=b*ye,ue=k;e:for(W=0;W0){O=de,de=ye,ye=O;break e}if(Ke<0)break e;ue+=S}K=b*Oe,te=b*Me,ue=k;e:for(W=0;W0){O=Oe,Oe=Me,Me=O;break e}if(Ke<0)break e;ue+=S}K=b*Oe,te=b*de,ue=k;e:for(W=0;W0){O=Oe,Oe=de,de=O;break e}if(Ke<0)break e;ue+=S}K=b*ye,te=b*Me,ue=k;e:for(W=0;W0){O=ye,ye=Me,Me=O;break e}if(Ke<0)break e;ue+=S}for(K=b*Te,te=b*Oe,Y=b*de,Z=b*ye,re=b*Me,U=b*ge,q=b*me,$=b*fe,ae=0,ue=k,W=0;W0)){if(Ke<0){for(K=b*P,te=b*ke,Y=b*Ee,ue=k,W=0;W0)for(;;){for(N=k+Ee*b,ae=0,W=0;W0)){for(N=k+Ee*b,ae=0,W=0;Wfe){e:for(;;){for(N=k+ke*b,ae=0,ue=k,W=0;W1&&T?M(b,T[0],T[1]):M(b)}(m,g,y);return v(y,x)}},{"typedarray-pool":308}],258:[function(a,u,c){var i=a("./lib/compile_sort.js"),s={};u.exports=function(l){var d=l.order,h=l.dtype,m=[d,h].join(":"),g=s[m];return g||(s[m]=g=i(d,h)),g(l),l}},{"./lib/compile_sort.js":257}],259:[function(a,u,c){var i=a("is-buffer"),s=typeof Float64Array<"u";function l(p,v){return p[0]-v[0]}function d(){var p,v=this.stride,y=new Array(v.length);for(p=0;p=0&&(b+=M*(T=0|k),_-=T),new x(this.data,_,M,b)},w.step=function(k){var b=this.shape[0],T=this.stride[0],_=this.offset,M=0,A=Math.ceil;return typeof k=="number"&&((M=0|k)<0?(_+=T*(b-1),b=A(-b/M)):b=A(b/M),T*=M),new x(this.data,b,T,_)},w.transpose=function(k){k=k===void 0?0:0|k;var b=this.shape,T=this.stride;return new x(this.data,b[k],T[k],this.offset)},w.pick=function(k){var b=[],T=[],_=this.offset;return typeof k=="number"&&k>=0?_=_+this.stride[0]*k|0:(b.push(this.shape[0]),T.push(this.stride[0])),(0,v[b.length+1])(this.data,b,T,_)},function(k,b,T,_){return new x(k,b[0],T[0],_)}},2:function(p,v,y){function x(k,b,T,_,M,A){this.data=k,this.shape=[b,T],this.stride=[_,M],this.offset=0|A}var w=x.prototype;return w.dtype=p,w.dimension=2,Object.defineProperty(w,"size",{get:function(){return this.shape[0]*this.shape[1]}}),Object.defineProperty(w,"order",{get:function(){return Math.abs(this.stride[0])>Math.abs(this.stride[1])?[1,0]:[0,1]}}),w.set=function(k,b,T){return p==="generic"?this.data.set(this.offset+this.stride[0]*k+this.stride[1]*b,T):this.data[this.offset+this.stride[0]*k+this.stride[1]*b]=T},w.get=function(k,b){return p==="generic"?this.data.get(this.offset+this.stride[0]*k+this.stride[1]*b):this.data[this.offset+this.stride[0]*k+this.stride[1]*b]},w.index=function(k,b){return this.offset+this.stride[0]*k+this.stride[1]*b},w.hi=function(k,b){return new x(this.data,typeof k!="number"||k<0?this.shape[0]:0|k,typeof b!="number"||b<0?this.shape[1]:0|b,this.stride[0],this.stride[1],this.offset)},w.lo=function(k,b){var T=this.offset,_=0,M=this.shape[0],A=this.shape[1],S=this.stride[0],E=this.stride[1];return typeof k=="number"&&k>=0&&(T+=S*(_=0|k),M-=_),typeof b=="number"&&b>=0&&(T+=E*(_=0|b),A-=_),new x(this.data,M,A,S,E,T)},w.step=function(k,b){var T=this.shape[0],_=this.shape[1],M=this.stride[0],A=this.stride[1],S=this.offset,E=0,D=Math.ceil;return typeof k=="number"&&((E=0|k)<0?(S+=M*(T-1),T=D(-T/E)):T=D(T/E),M*=E),typeof b=="number"&&((E=0|b)<0?(S+=A*(_-1),_=D(-_/E)):_=D(_/E),A*=E),new x(this.data,T,_,M,A,S)},w.transpose=function(k,b){k=k===void 0?0:0|k,b=b===void 0?1:0|b;var T=this.shape,_=this.stride;return new x(this.data,T[k],T[b],_[k],_[b],this.offset)},w.pick=function(k,b){var T=[],_=[],M=this.offset;return typeof k=="number"&&k>=0?M=M+this.stride[0]*k|0:(T.push(this.shape[0]),_.push(this.stride[0])),typeof b=="number"&&b>=0?M=M+this.stride[1]*b|0:(T.push(this.shape[1]),_.push(this.stride[1])),(0,v[T.length+1])(this.data,T,_,M)},function(k,b,T,_){return new x(k,b[0],b[1],T[0],T[1],_)}},3:function(p,v,y){function x(k,b,T,_,M,A,S,E){this.data=k,this.shape=[b,T,_],this.stride=[M,A,S],this.offset=0|E}var w=x.prototype;return w.dtype=p,w.dimension=3,Object.defineProperty(w,"size",{get:function(){return this.shape[0]*this.shape[1]*this.shape[2]}}),Object.defineProperty(w,"order",{get:function(){var k=Math.abs(this.stride[0]),b=Math.abs(this.stride[1]),T=Math.abs(this.stride[2]);return k>b?b>T?[2,1,0]:k>T?[1,2,0]:[1,0,2]:k>T?[2,0,1]:T>b?[0,1,2]:[0,2,1]}}),w.set=function(k,b,T,_){return p==="generic"?this.data.set(this.offset+this.stride[0]*k+this.stride[1]*b+this.stride[2]*T,_):this.data[this.offset+this.stride[0]*k+this.stride[1]*b+this.stride[2]*T]=_},w.get=function(k,b,T){return p==="generic"?this.data.get(this.offset+this.stride[0]*k+this.stride[1]*b+this.stride[2]*T):this.data[this.offset+this.stride[0]*k+this.stride[1]*b+this.stride[2]*T]},w.index=function(k,b,T){return this.offset+this.stride[0]*k+this.stride[1]*b+this.stride[2]*T},w.hi=function(k,b,T){return new x(this.data,typeof k!="number"||k<0?this.shape[0]:0|k,typeof b!="number"||b<0?this.shape[1]:0|b,typeof T!="number"||T<0?this.shape[2]:0|T,this.stride[0],this.stride[1],this.stride[2],this.offset)},w.lo=function(k,b,T){var _=this.offset,M=0,A=this.shape[0],S=this.shape[1],E=this.shape[2],D=this.stride[0],O=this.stride[1],R=this.stride[2];return typeof k=="number"&&k>=0&&(_+=D*(M=0|k),A-=M),typeof b=="number"&&b>=0&&(_+=O*(M=0|b),S-=M),typeof T=="number"&&T>=0&&(_+=R*(M=0|T),E-=M),new x(this.data,A,S,E,D,O,R,_)},w.step=function(k,b,T){var _=this.shape[0],M=this.shape[1],A=this.shape[2],S=this.stride[0],E=this.stride[1],D=this.stride[2],O=this.offset,R=0,z=Math.ceil;return typeof k=="number"&&((R=0|k)<0?(O+=S*(_-1),_=z(-_/R)):_=z(_/R),S*=R),typeof b=="number"&&((R=0|b)<0?(O+=E*(M-1),M=z(-M/R)):M=z(M/R),E*=R),typeof T=="number"&&((R=0|T)<0?(O+=D*(A-1),A=z(-A/R)):A=z(A/R),D*=R),new x(this.data,_,M,A,S,E,D,O)},w.transpose=function(k,b,T){k=k===void 0?0:0|k,b=b===void 0?1:0|b,T=T===void 0?2:0|T;var _=this.shape,M=this.stride;return new x(this.data,_[k],_[b],_[T],M[k],M[b],M[T],this.offset)},w.pick=function(k,b,T){var _=[],M=[],A=this.offset;return typeof k=="number"&&k>=0?A=A+this.stride[0]*k|0:(_.push(this.shape[0]),M.push(this.stride[0])),typeof b=="number"&&b>=0?A=A+this.stride[1]*b|0:(_.push(this.shape[1]),M.push(this.stride[1])),typeof T=="number"&&T>=0?A=A+this.stride[2]*T|0:(_.push(this.shape[2]),M.push(this.stride[2])),(0,v[_.length+1])(this.data,_,M,A)},function(k,b,T,_){return new x(k,b[0],b[1],b[2],T[0],T[1],T[2],_)}},4:function(p,v,y){function x(k,b,T,_,M,A,S,E,D,O){this.data=k,this.shape=[b,T,_,M],this.stride=[A,S,E,D],this.offset=0|O}var w=x.prototype;return w.dtype=p,w.dimension=4,Object.defineProperty(w,"size",{get:function(){return this.shape[0]*this.shape[1]*this.shape[2]*this.shape[3]}}),Object.defineProperty(w,"order",{get:y}),w.set=function(k,b,T,_,M){return p==="generic"?this.data.set(this.offset+this.stride[0]*k+this.stride[1]*b+this.stride[2]*T+this.stride[3]*_,M):this.data[this.offset+this.stride[0]*k+this.stride[1]*b+this.stride[2]*T+this.stride[3]*_]=M},w.get=function(k,b,T,_){return p==="generic"?this.data.get(this.offset+this.stride[0]*k+this.stride[1]*b+this.stride[2]*T+this.stride[3]*_):this.data[this.offset+this.stride[0]*k+this.stride[1]*b+this.stride[2]*T+this.stride[3]*_]},w.index=function(k,b,T,_){return this.offset+this.stride[0]*k+this.stride[1]*b+this.stride[2]*T+this.stride[3]*_},w.hi=function(k,b,T,_){return new x(this.data,typeof k!="number"||k<0?this.shape[0]:0|k,typeof b!="number"||b<0?this.shape[1]:0|b,typeof T!="number"||T<0?this.shape[2]:0|T,typeof _!="number"||_<0?this.shape[3]:0|_,this.stride[0],this.stride[1],this.stride[2],this.stride[3],this.offset)},w.lo=function(k,b,T,_){var M=this.offset,A=0,S=this.shape[0],E=this.shape[1],D=this.shape[2],O=this.shape[3],R=this.stride[0],z=this.stride[1],L=this.stride[2],P=this.stride[3];return typeof k=="number"&&k>=0&&(M+=R*(A=0|k),S-=A),typeof b=="number"&&b>=0&&(M+=z*(A=0|b),E-=A),typeof T=="number"&&T>=0&&(M+=L*(A=0|T),D-=A),typeof _=="number"&&_>=0&&(M+=P*(A=0|_),O-=A),new x(this.data,S,E,D,O,R,z,L,P,M)},w.step=function(k,b,T,_){var M=this.shape[0],A=this.shape[1],S=this.shape[2],E=this.shape[3],D=this.stride[0],O=this.stride[1],R=this.stride[2],z=this.stride[3],L=this.offset,P=0,N=Math.ceil;return typeof k=="number"&&((P=0|k)<0?(L+=D*(M-1),M=N(-M/P)):M=N(M/P),D*=P),typeof b=="number"&&((P=0|b)<0?(L+=O*(A-1),A=N(-A/P)):A=N(A/P),O*=P),typeof T=="number"&&((P=0|T)<0?(L+=R*(S-1),S=N(-S/P)):S=N(S/P),R*=P),typeof _=="number"&&((P=0|_)<0?(L+=z*(E-1),E=N(-E/P)):E=N(E/P),z*=P),new x(this.data,M,A,S,E,D,O,R,z,L)},w.transpose=function(k,b,T,_){k=k===void 0?0:0|k,b=b===void 0?1:0|b,T=T===void 0?2:0|T,_=_===void 0?3:0|_;var M=this.shape,A=this.stride;return new x(this.data,M[k],M[b],M[T],M[_],A[k],A[b],A[T],A[_],this.offset)},w.pick=function(k,b,T,_){var M=[],A=[],S=this.offset;return typeof k=="number"&&k>=0?S=S+this.stride[0]*k|0:(M.push(this.shape[0]),A.push(this.stride[0])),typeof b=="number"&&b>=0?S=S+this.stride[1]*b|0:(M.push(this.shape[1]),A.push(this.stride[1])),typeof T=="number"&&T>=0?S=S+this.stride[2]*T|0:(M.push(this.shape[2]),A.push(this.stride[2])),typeof _=="number"&&_>=0?S=S+this.stride[3]*_|0:(M.push(this.shape[3]),A.push(this.stride[3])),(0,v[M.length+1])(this.data,M,A,S)},function(k,b,T,_){return new x(k,b[0],b[1],b[2],b[3],T[0],T[1],T[2],T[3],_)}},5:function(p,v,y){function x(k,b,T,_,M,A,S,E,D,O,R,z){this.data=k,this.shape=[b,T,_,M,A],this.stride=[S,E,D,O,R],this.offset=0|z}var w=x.prototype;return w.dtype=p,w.dimension=5,Object.defineProperty(w,"size",{get:function(){return this.shape[0]*this.shape[1]*this.shape[2]*this.shape[3]*this.shape[4]}}),Object.defineProperty(w,"order",{get:y}),w.set=function(k,b,T,_,M,A){return p==="generic"?this.data.set(this.offset+this.stride[0]*k+this.stride[1]*b+this.stride[2]*T+this.stride[3]*_+this.stride[4]*M,A):this.data[this.offset+this.stride[0]*k+this.stride[1]*b+this.stride[2]*T+this.stride[3]*_+this.stride[4]*M]=A},w.get=function(k,b,T,_,M){return p==="generic"?this.data.get(this.offset+this.stride[0]*k+this.stride[1]*b+this.stride[2]*T+this.stride[3]*_+this.stride[4]*M):this.data[this.offset+this.stride[0]*k+this.stride[1]*b+this.stride[2]*T+this.stride[3]*_+this.stride[4]*M]},w.index=function(k,b,T,_,M){return this.offset+this.stride[0]*k+this.stride[1]*b+this.stride[2]*T+this.stride[3]*_+this.stride[4]*M},w.hi=function(k,b,T,_,M){return new x(this.data,typeof k!="number"||k<0?this.shape[0]:0|k,typeof b!="number"||b<0?this.shape[1]:0|b,typeof T!="number"||T<0?this.shape[2]:0|T,typeof _!="number"||_<0?this.shape[3]:0|_,typeof M!="number"||M<0?this.shape[4]:0|M,this.stride[0],this.stride[1],this.stride[2],this.stride[3],this.stride[4],this.offset)},w.lo=function(k,b,T,_,M){var A=this.offset,S=0,E=this.shape[0],D=this.shape[1],O=this.shape[2],R=this.shape[3],z=this.shape[4],L=this.stride[0],P=this.stride[1],N=this.stride[2],B=this.stride[3],G=this.stride[4];return typeof k=="number"&&k>=0&&(A+=L*(S=0|k),E-=S),typeof b=="number"&&b>=0&&(A+=P*(S=0|b),D-=S),typeof T=="number"&&T>=0&&(A+=N*(S=0|T),O-=S),typeof _=="number"&&_>=0&&(A+=B*(S=0|_),R-=S),typeof M=="number"&&M>=0&&(A+=G*(S=0|M),z-=S),new x(this.data,E,D,O,R,z,L,P,N,B,G,A)},w.step=function(k,b,T,_,M){var A=this.shape[0],S=this.shape[1],E=this.shape[2],D=this.shape[3],O=this.shape[4],R=this.stride[0],z=this.stride[1],L=this.stride[2],P=this.stride[3],N=this.stride[4],B=this.offset,G=0,W=Math.ceil;return typeof k=="number"&&((G=0|k)<0?(B+=R*(A-1),A=W(-A/G)):A=W(A/G),R*=G),typeof b=="number"&&((G=0|b)<0?(B+=z*(S-1),S=W(-S/G)):S=W(S/G),z*=G),typeof T=="number"&&((G=0|T)<0?(B+=L*(E-1),E=W(-E/G)):E=W(E/G),L*=G),typeof _=="number"&&((G=0|_)<0?(B+=P*(D-1),D=W(-D/G)):D=W(D/G),P*=G),typeof M=="number"&&((G=0|M)<0?(B+=N*(O-1),O=W(-O/G)):O=W(O/G),N*=G),new x(this.data,A,S,E,D,O,R,z,L,P,N,B)},w.transpose=function(k,b,T,_,M){k=k===void 0?0:0|k,b=b===void 0?1:0|b,T=T===void 0?2:0|T,_=_===void 0?3:0|_,M=M===void 0?4:0|M;var A=this.shape,S=this.stride;return new x(this.data,A[k],A[b],A[T],A[_],A[M],S[k],S[b],S[T],S[_],S[M],this.offset)},w.pick=function(k,b,T,_,M){var A=[],S=[],E=this.offset;return typeof k=="number"&&k>=0?E=E+this.stride[0]*k|0:(A.push(this.shape[0]),S.push(this.stride[0])),typeof b=="number"&&b>=0?E=E+this.stride[1]*b|0:(A.push(this.shape[1]),S.push(this.stride[1])),typeof T=="number"&&T>=0?E=E+this.stride[2]*T|0:(A.push(this.shape[2]),S.push(this.stride[2])),typeof _=="number"&&_>=0?E=E+this.stride[3]*_|0:(A.push(this.shape[3]),S.push(this.stride[3])),typeof M=="number"&&M>=0?E=E+this.stride[4]*M|0:(A.push(this.shape[4]),S.push(this.stride[4])),(0,v[A.length+1])(this.data,A,S,E)},function(k,b,T,_){return new x(k,b[0],b[1],b[2],b[3],b[4],T[0],T[1],T[2],T[3],T[4],_)}}};function m(p,v){var y=v===-1?"T":String(v),x=h[y];return v===-1?x(p):v===0?x(p,g[p][0]):x(p,g[p],d)}var g={generic:[],buffer:[],array:[],float32:[],float64:[],int8:[],int16:[],int32:[],uint8_clamped:[],uint8:[],uint16:[],uint32:[],bigint64:[],biguint64:[]};u.exports=function(p,v,y,x){if(p===void 0)return(0,g.array[0])([]);typeof p=="number"&&(p=[p]),v===void 0&&(v=[p.length]);var w=v.length;if(y===void 0){y=new Array(w);for(var k=w-1,b=1;k>=0;--k)y[k]=b,b*=v[k]}if(x===void 0)for(x=0,k=0;kl==l>0?m===-1>>>0?(h+=1,m=0):m+=1:m===0?(m=-1>>>0,h-=1):m-=1,i.pack(m,h)}},{"double-bits":64}],261:[function(a,u,c){c.vertexNormals=function(i,s,l){for(var d=s.length,h=new Array(d),m=l===void 0?1e-6:l,g=0;gm){var D=h[y],O=1/Math.sqrt(M*S);for(E=0;E<3;++E){var R=(E+1)%3,z=(E+2)%3;D[E]+=O*(A[R]*_[z]-A[z]*_[R])}}}for(g=0;gm)for(O=1/Math.sqrt(L),E=0;E<3;++E)D[E]*=O;else for(E=0;E<3;++E)D[E]=0}return h},c.faceNormals=function(i,s,l){for(var d=i.length,h=new Array(d),m=l===void 0?1e-6:l,g=0;gm?1/Math.sqrt(b):0,y=0;y<3;++y)k[y]*=b;h[g]=k}return h}},{}],262:[function(a,u,c){u.exports=function(i,s,l,d,h,m,g,p,v,y){var x=s+m+y;if(w>0){var w=Math.sqrt(x+1);i[0]=.5*(g-v)/w,i[1]=.5*(p-d)/w,i[2]=.5*(l-m)/w,i[3]=.5*w}else{var k=Math.max(s,m,y);w=Math.sqrt(2*k-x+1),s>=k?(i[0]=.5*w,i[1]=.5*(h+l)/w,i[2]=.5*(p+d)/w,i[3]=.5*(g-v)/w):m>=k?(i[0]=.5*(l+h)/w,i[1]=.5*w,i[2]=.5*(v+g)/w,i[3]=.5*(p-d)/w):(i[0]=.5*(d+p)/w,i[1]=.5*(g+v)/w,i[2]=.5*w,i[3]=.5*(l-h)/w)}return i}},{}],263:[function(a,u,c){u.exports=function(x){var w=(x=x||{}).center||[0,0,0],k=x.rotation||[0,0,0,1],b=x.radius||1;w=[].slice.call(w,0,3),p(k=[].slice.call(k,0,4),k);var T=new v(k,w,Math.log(b));return T.setDistanceLimits(x.zoomMin,x.zoomMax),("eye"in x||"up"in x)&&T.lookAt(0,x.eye,x.center,x.up),T};var i=a("filtered-vector"),s=a("gl-mat4/lookAt"),l=a("gl-mat4/fromQuat"),d=a("gl-mat4/invert"),h=a("./lib/quatFromFrame");function m(x,w,k){return Math.sqrt(Math.pow(x,2)+Math.pow(w,2)+Math.pow(k,2))}function g(x,w,k,b){return Math.sqrt(Math.pow(x,2)+Math.pow(w,2)+Math.pow(k,2)+Math.pow(b,2))}function p(x,w){var k=w[0],b=w[1],T=w[2],_=w[3],M=g(k,b,T,_);M>1e-6?(x[0]=k/M,x[1]=b/M,x[2]=T/M,x[3]=_/M):(x[0]=x[1]=x[2]=0,x[3]=1)}function v(x,w,k){this.radius=i([k]),this.center=i(w),this.rotation=i(x),this.computedRadius=this.radius.curve(0),this.computedCenter=this.center.curve(0),this.computedRotation=this.rotation.curve(0),this.computedUp=[.1,0,0],this.computedEye=[.1,0,0],this.computedMatrix=[.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],this.recalcMatrix(0)}var y=v.prototype;y.lastT=function(){return Math.max(this.radius.lastT(),this.center.lastT(),this.rotation.lastT())},y.recalcMatrix=function(x){this.radius.curve(x),this.center.curve(x),this.rotation.curve(x);var w=this.computedRotation;p(w,w);var k=this.computedMatrix;l(k,w);var b=this.computedCenter,T=this.computedEye,_=this.computedUp,M=Math.exp(this.computedRadius[0]);T[0]=b[0]+M*k[2],T[1]=b[1]+M*k[6],T[2]=b[2]+M*k[10],_[0]=k[1],_[1]=k[5],_[2]=k[9];for(var A=0;A<3;++A){for(var S=0,E=0;E<3;++E)S+=k[A+4*E]*T[E];k[12+A]=-S}},y.getMatrix=function(x,w){this.recalcMatrix(x);var k=this.computedMatrix;if(w){for(var b=0;b<16;++b)w[b]=k[b];return w}return k},y.idle=function(x){this.center.idle(x),this.radius.idle(x),this.rotation.idle(x)},y.flush=function(x){this.center.flush(x),this.radius.flush(x),this.rotation.flush(x)},y.pan=function(x,w,k,b){w=w||0,k=k||0,b=b||0,this.recalcMatrix(x);var T=this.computedMatrix,_=T[1],M=T[5],A=T[9],S=m(_,M,A);_/=S,M/=S,A/=S;var E=T[0],D=T[4],O=T[8],R=E*_+D*M+O*A,z=m(E-=_*R,D-=M*R,O-=A*R);E/=z,D/=z,O/=z,T[2],T[6],T[10];var L=E*w+_*k,P=D*w+M*k,N=O*w+A*k;this.center.move(x,L,P,N);var B=Math.exp(this.computedRadius[0]);B=Math.max(1e-4,B+b),this.radius.set(x,Math.log(B))},y.rotate=function(x,w,k,b){this.recalcMatrix(x),w=w||0,k=k||0;var T=this.computedMatrix,_=T[0],M=T[4],A=T[8],S=T[1],E=T[5],D=T[9],O=T[2],R=T[6],z=T[10],L=w*_+k*S,P=w*M+k*E,N=w*A+k*D,B=-(R*N-z*P),G=-(z*L-O*N),W=-(O*P-R*L),K=Math.sqrt(Math.max(0,1-Math.pow(B,2)-Math.pow(G,2)-Math.pow(W,2))),te=g(B,G,W,K);te>1e-6?(B/=te,G/=te,W/=te,K/=te):(B=G=W=0,K=1);var Y=this.computedRotation,Z=Y[0],re=Y[1],U=Y[2],q=Y[3],$=Z*K+q*B+re*W-U*G,ne=re*K+q*G+U*B-Z*W,H=U*K+q*W+Z*G-re*B,Q=q*K-Z*B-re*G-U*W;if(b){B=O,G=R,W=z;var ee=Math.sin(b)/m(B,G,W);B*=ee,G*=ee,W*=ee,Q=Q*(K=Math.cos(w))-($=$*K+Q*B+ne*W-H*G)*B-(ne=ne*K+Q*G+H*B-$*W)*G-(H=H*K+Q*W+$*G-ne*B)*W}var ie=g($,ne,H,Q);ie>1e-6?($/=ie,ne/=ie,H/=ie,Q/=ie):($=ne=H=0,Q=1),this.rotation.set(x,$,ne,H,Q)},y.lookAt=function(x,w,k,b){this.recalcMatrix(x),k=k||this.computedCenter,w=w||this.computedEye,b=b||this.computedUp;var T=this.computedMatrix;s(T,w,k,b);var _=this.computedRotation;h(_,T[0],T[1],T[2],T[4],T[5],T[6],T[8],T[9],T[10]),p(_,_),this.rotation.set(x,_[0],_[1],_[2],_[3]);for(var M=0,A=0;A<3;++A)M+=Math.pow(k[A]-w[A],2);this.radius.set(x,.5*Math.log(Math.max(M,1e-6))),this.center.set(x,k[0],k[1],k[2])},y.translate=function(x,w,k,b){this.center.move(x,w||0,k||0,b||0)},y.setMatrix=function(x,w){var k=this.computedRotation;h(k,w[0],w[1],w[2],w[4],w[5],w[6],w[8],w[9],w[10]),p(k,k),this.rotation.set(x,k[0],k[1],k[2],k[3]);var b=this.computedMatrix;d(b,w);var T=b[15];if(Math.abs(T)>1e-6){var _=b[12]/T,M=b[13]/T,A=b[14]/T;this.recalcMatrix(x);var S=Math.exp(this.computedRadius[0]);this.center.set(x,_-b[2]*S,M-b[6]*S,A-b[10]*S),this.radius.idle(x)}else this.center.idle(x),this.radius.idle(x)},y.setDistance=function(x,w){w>0&&this.radius.set(x,Math.log(w))},y.setDistanceLimits=function(x,w){x=x>0?Math.log(x):-1/0,w=w>0?Math.log(w):1/0,w=Math.max(w,x),this.radius.bounds[0][0]=x,this.radius.bounds[1][0]=w},y.getDistanceLimits=function(x){var w=this.radius.bounds;return x?(x[0]=Math.exp(w[0][0]),x[1]=Math.exp(w[1][0]),x):[Math.exp(w[0][0]),Math.exp(w[1][0])]},y.toJSON=function(){return this.recalcMatrix(this.lastT()),{center:this.computedCenter.slice(),rotation:this.computedRotation.slice(),distance:Math.log(this.computedRadius[0]),zoomMin:this.radius.bounds[0][0],zoomMax:this.radius.bounds[1][0]}},y.fromJSON=function(x){var w=this.lastT(),k=x.center;k&&this.center.set(w,k[0],k[1],k[2]);var b=x.rotation;b&&this.rotation.set(w,b[0],b[1],b[2],b[3]);var T=x.distance;T&&T>0&&this.radius.set(w,Math.log(T)),this.setDistanceLimits(x.zoomMin,x.zoomMax)}},{"./lib/quatFromFrame":262,"filtered-vector":68,"gl-mat4/fromQuat":95,"gl-mat4/invert":98,"gl-mat4/lookAt":99}],264:[function(a,u,c){var i=a("repeat-string");u.exports=function(s,l,d){return i(d=d!==void 0?d+"":" ",l)+s}},{"repeat-string":277}],265:[function(a,u,c){u.exports=function(i,s){s||(s=[0,""]),i=String(i);var l=parseFloat(i,10);return s[0]=l,s[1]=i.match(/[\d.\-\+]*\s*(.*)/)[1]||"",s}},{}],266:[function(a,u,c){u.exports=function(s,l){for(var d=0|l.length,h=s.length,m=[new Array(d),new Array(d)],g=0;g0){E=m[R][A][0],O=R;break}D=E[1^O];for(var z=0;z<2;++z)for(var L=m[z][A],P=0;P0&&(E=N,D=B,O=z)}return S||E&&y(E,O),D}function w(M,A){var S=m[A][M][0],E=[M];y(S,A);for(var D=S[1^A];;){for(;D!==M;)E.push(D),D=x(E[E.length-2],D,!1);if(m[0][M].length+m[1][M].length===0)break;var O=E[E.length-1],R=M,z=E[1],L=x(O,R,!0);if(i(l[O],l[R],l[z],l[L])<0)break;E.push(M),D=x(O,R)}return E}function k(M,A){return A[1]===A[A.length-1]}for(g=0;g0;){m[0][g].length;var _=w(g,b);k(0,_)?T.push.apply(T,_):(T.length>0&&v.push(T),T=_)}T.length>0&&v.push(T)}return v};var i=a("compare-angle")},{"compare-angle":54}],267:[function(a,u,c){u.exports=function(s,l){for(var d=i(s,l.length),h=new Array(l.length),m=new Array(l.length),g=[],p=0;p0;){var y=g.pop();h[y]=!1;var x=d[y];for(p=0;p0})).length,M=new Array(_),A=new Array(_);for(b=0;b<_;++b){M[b]=b;var S=new Array(_),E=T[b].map(function(le){return y[le]}),D=l([E]),O=0;e:for(var R=0;R<_;++R)if(S[R]=0,b!==R){for(var z=(ae=T[R]).length,L=0;L0;){var ne=q.pop(),H=G[ne];m(H,function(le,ge){return le-ge});var Q,ee=H.length,ie=$[ne];if(ie===0){var ae=T[ne];Q=[ae]}for(b=0;b=0||($[ue]=1^ie,q.push(ue),ie===0&&(U(ae=T[ue])||(ae.reverse(),Q.push(ae))))}ie===0&&x.push(Q)}return x};var i=a("edges-to-adjacency-list"),s=a("planar-dual"),l=a("point-in-big-polygon"),d=a("two-product"),h=a("robust-sum"),m=a("uniq"),g=a("./lib/trim-leaves");function p(v,y){for(var x=new Array(v),w=0;w0&&R[L]===z[0]))return 1;P=O[L-1]}for(var N=1;P;){var B=P.key,G=i(z,B[0],B[1]);if(B[0][0]0))return 0;N=-1,P=P.right}else if(G>0)P=P.left;else{if(!(G<0))return 0;N=1,P=P.right}}return N}}(E.slabs,E.coordinates);return x.length===0?D:function(O,R){return function(z){return O(z[0],z[1])?0:R(z)}}(m(x),D)};var i=a("robust-orientation")[3],s=a("slab-decomposition"),l=a("interval-tree-1d"),d=a("binary-search-bounds");function h(){return!0}function m(p){for(var v={},y=0;y=y?(L=1,S=y+2*k+T):S=k*(L=-k/y)+T):(L=0,b>=0?(P=0,S=T):-b>=w?(P=1,S=w+2*b+T):S=b*(P=-b/w)+T);else if(P<0)P=0,k>=0?(L=0,S=T):-k>=y?(L=1,S=y+2*k+T):S=k*(L=-k/y)+T;else{var N=1/z;S=(L*=N)*(y*L+x*(P*=N)+2*k)+P*(x*L+w*P+2*b)+T}else L<0?(D=w+b)>(E=x+k)?(O=D-E)>=(R=y-2*x+w)?(L=1,P=0,S=y+2*k+T):S=(L=O/R)*(y*L+x*(P=1-L)+2*k)+P*(x*L+w*P+2*b)+T:(L=0,D<=0?(P=1,S=w+2*b+T):b>=0?(P=0,S=T):S=b*(P=-b/w)+T):P<0?(D=y+k)>(E=x+b)?(O=D-E)>=(R=y-2*x+w)?(P=1,L=0,S=w+2*b+T):S=(L=1-(P=O/R))*(y*L+x*P+2*k)+P*(x*L+w*P+2*b)+T:(P=0,D<=0?(L=1,S=y+2*k+T):k>=0?(L=0,S=T):S=k*(L=-k/y)+T):(O=w+b-x-k)<=0?(L=0,P=1,S=w+2*b+T):O>=(R=y-2*x+w)?(L=1,P=0,S=y+2*k+T):S=(L=O/R)*(y*L+x*(P=1-L)+2*k)+P*(x*L+w*P+2*b)+T;var B=1-L-P;for(v=0;v0){var y=d[m-1];if(i(p,y)===0&&l(y)!==v){m-=1;continue}}d[m++]=p}}return d.length=m,d}},{"cell-orientation":47,"compare-cell":56,"compare-oriented-cell":57}],277:[function(a,u,c){var i,s="";u.exports=function(l,d){if(typeof l!="string")throw new TypeError("expected a string");if(d===1)return l;if(d===2)return l+l;var h=l.length*d;if(i!==l||i===void 0)i=l,s="";else if(s.length>=h)return s.substr(0,h);for(;h>s.length&&d>1;)1&d&&(s+=l),d>>=1,l+=l;return s=(s+=l).substr(0,h)}},{}],278:[function(a,u,c){(function(i){(function(){u.exports=i.performance&&i.performance.now?function(){return performance.now()}:Date.now||function(){return+new Date}}).call(this)}).call(this,r!==void 0?r:typeof self<"u"?self:typeof window<"u"?window:{})},{}],279:[function(a,u,c){u.exports=function(i){for(var s=i.length,l=i[i.length-1],d=s,h=s-2;h>=0;--h){var m=l,g=i[h];(v=g-((l=m+g)-m))&&(i[--d]=l,l=v)}var p=0;for(h=d;h0){if(S<=0)return E;M=A+S}else{if(!(A<0)||S>=0)return E;M=-(A+S)}var D=33306690738754716e-32*M;return E>=D||E<=-D?E:v(b,T,_)},function(b,T,_,M){var A=b[0]-M[0],S=T[0]-M[0],E=_[0]-M[0],D=b[1]-M[1],O=T[1]-M[1],R=_[1]-M[1],z=b[2]-M[2],L=T[2]-M[2],P=_[2]-M[2],N=S*R,B=E*O,G=E*D,W=A*R,K=A*O,te=S*D,Y=z*(N-B)+L*(G-W)+P*(K-te),Z=7771561172376103e-31*((Math.abs(N)+Math.abs(B))*Math.abs(z)+(Math.abs(G)+Math.abs(W))*Math.abs(L)+(Math.abs(K)+Math.abs(te))*Math.abs(P));return Y>Z||-Y>Z?Y:y(b,T,_,M)}];function w(b){var T=x[b.length];return T||(T=x[b.length]=p(b.length)),T.apply(void 0,b)}function k(b,T,_,M,A,S,E){return function(D,O,R,z,L){switch(arguments.length){case 0:case 1:return 0;case 2:return M(D,O);case 3:return A(D,O,R);case 4:return S(D,O,R,z);case 5:return E(D,O,R,z,L)}for(var P=new Array(arguments.length),N=0;N0&&g>0||m<0&&g<0)return!1;var p=i(d,s,l),v=i(h,s,l);return p>0&&v>0||p<0&&v<0?!1:m===0&&g===0&&p===0&&v===0?function(y,x,w,k){for(var b=0;b<2;++b){var T=y[b],_=x[b],M=Math.min(T,_),A=Math.max(T,_),S=w[b],E=k[b],D=Math.min(S,E);if(Math.max(S,E)=d?(h=w,(v+=1)=d?(h=w,(v+=1)>1,w=d[2*x+1];if(w===p)return x;p>1,w=d[2*x+1];if(w===p)return x;p>1,w=d[2*x+1];if(w===p)return x;p>1,_=l(y[T],x);_<=0?(_===0&&(b=T),w=T+1):_>0&&(k=T-1)}return b}function p(y,x){for(var w=new Array(y.length),k=0,b=w.length;k=y.length||l(y[R],T)!==0););}return w}function v(y,x){if(x<0)return[];for(var w=[],k=(1<>>S&1&&A.push(b[S]);x.push(A)}return h(x)},c.skeleton=v,c.boundary=function(y){for(var x=[],w=0,k=y.length;w>1:(te>>1)-1}function E(te){for(var Y=A(te);;){var Z=Y,re=2*te+1,U=2*(te+1),q=te;if(re0;){var Z=S(te);if(Z>=0&&Y0){var te=L[0];return M(0,N-1),N-=1,E(0),te}return-1}function R(te,Y){var Z=L[te];return y[Z]===Y?te:(y[Z]=-1/0,D(te),O(),y[Z]=Y,D((N+=1)-1))}function z(te){if(!x[te]){x[te]=!0;var Y=p[te],Z=v[te];p[Z]>=0&&(p[Z]=Y),v[Y]>=0&&(v[Y]=Z),P[Y]>=0&&R(P[Y],_(Y)),P[Z]>=0&&R(P[Z],_(Z))}}var L=[],P=new Array(m);for(w=0;w>1;w>=0;--w)E(w);for(;;){var B=O();if(B<0||y[B]>h)break;z(B)}var G=[];for(w=0;w=0&&Z>=0&&Y!==Z){var re=P[Y],U=P[Z];re!==U&&K.push([re,U])}}),s.unique(s.normalize(K)),{positions:G,edges:K}};var i=a("robust-orientation"),s=a("simplicial-complex")},{"robust-orientation":284,"simplicial-complex":295}],298:[function(a,u,c){u.exports=function(l,d){var h,m,g,p;if(d[0][0]d[1][0]))return s(d,l);h=d[1],m=d[0]}if(l[0][0]l[1][0]))return-s(l,d);g=l[1],p=l[0]}var v=i(h,m,p),y=i(h,m,g);if(v<0){if(y<=0)return v}else if(v>0){if(y>=0)return v}else if(y)return y;if(v=i(p,g,m),y=i(p,g,h),v<0){if(y<=0)return v}else if(v>0){if(y>=0)return v}else if(y)return y;return m[0]-p[0]};var i=a("robust-orientation");function s(l,d){var h,m,g,p;if(d[0][0]d[1][0])){var v=Math.min(l[0][1],l[1][1]),y=Math.max(l[0][1],l[1][1]),x=Math.min(d[0][1],d[1][1]),w=Math.max(d[0][1],d[1][1]);return yw?v-w:y-w}h=d[1],m=d[0]}l[0][1]0)if(x[0]!==T[1][0])w=y,y=y.right;else{if(M=g(y.right,x))return M;y=y.left}else{if(x[0]!==T[1][0])return y;var M;if(M=g(y.right,x))return M;y=y.left}}return w}function p(y,x,w,k){this.y=y,this.index=x,this.start=w,this.closed=k}function v(y,x,w,k){this.x=y,this.segment=x,this.create=w,this.index=k}h.prototype.castUp=function(y){var x=i.le(this.coordinates,y[0]);if(x<0)return-1;this.slabs[x];var w=g(this.slabs[x],y),k=-1;if(w&&(k=w.value),this.coordinates[x]===y[0]){var b=null;if(w&&(b=w.key),x>0){var T=g(this.slabs[x-1],y);T&&(b?d(T.key,b)>0&&(b=T.key,k=T.value):(k=T.value,b=T.key))}var _=this.horizontal[x];if(_.length>0){var M=i.ge(_,y[1],m);if(M<_.length){var A=_[M];if(y[1]===A.y){if(A.closed)return A.index;for(;M<_.length-1&&_[M+1].y===y[1];)if((A=_[M+=1]).closed)return A.index;if(A.y===y[1]&&!A.start){if((M+=1)>=_.length)return k;A=_[M]}}if(A.start)if(b){var S=l(b[0],b[1],[y[0],A.y]);b[0][0]>b[1][0]&&(S=-S),S>0&&(k=A.index)}else k=A.index;else A.y!==y[1]&&(k=A.index)}}}return k}},{"./lib/order-segments":298,"binary-search-bounds":31,"functional-red-black-tree":69,"robust-orientation":284}],300:[function(a,u,c){var i=a("robust-dot-product"),s=a("robust-sum");function l(h,m){var g=s(i(h,m),[m[m.length-1]]);return g[g.length-1]}function d(h,m,g,p){var v=-m/(p-m);v<0?v=0:v>1&&(v=1);for(var y=1-v,x=h.length,w=new Array(x),k=0;k0||v>0&&k<0){var b=d(y,k,x,v);g.push(b),p.push(b.slice())}k<0?p.push(x.slice()):k>0?g.push(x.slice()):(g.push(x.slice()),p.push(x.slice())),v=k}return{positive:g,negative:p}},u.exports.positive=function(h,m){for(var g=[],p=l(h[h.length-1],m),v=h[h.length-1],y=h[0],x=0;x0||p>0&&w<0)&&g.push(d(v,w,y,p)),w>=0&&g.push(y.slice()),p=w}return g},u.exports.negative=function(h,m){for(var g=[],p=l(h[h.length-1],m),v=h[h.length-1],y=h[0],x=0;x0||p>0&&w<0)&&g.push(d(v,w,y,p)),w<=0&&g.push(y.slice()),p=w}return g}},{"robust-dot-product":281,"robust-sum":289}],301:[function(a,u,c){(function(){var i={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function s(g){return d(m(g),arguments)}function l(g,p){return s.apply(null,[g].concat(p||[]))}function d(g,p){var v,y,x,w,k,b,T,_,M,A=1,S=g.length,E="";for(y=0;y=0),w.type){case"b":v=parseInt(v,10).toString(2);break;case"c":v=String.fromCharCode(parseInt(v,10));break;case"d":case"i":v=parseInt(v,10);break;case"j":v=JSON.stringify(v,null,w.width?parseInt(w.width):0);break;case"e":v=w.precision?parseFloat(v).toExponential(w.precision):parseFloat(v).toExponential();break;case"f":v=w.precision?parseFloat(v).toFixed(w.precision):parseFloat(v);break;case"g":v=w.precision?String(Number(v.toPrecision(w.precision))):parseFloat(v);break;case"o":v=(parseInt(v,10)>>>0).toString(8);break;case"s":v=String(v),v=w.precision?v.substring(0,w.precision):v;break;case"t":v=String(!!v),v=w.precision?v.substring(0,w.precision):v;break;case"T":v=Object.prototype.toString.call(v).slice(8,-1).toLowerCase(),v=w.precision?v.substring(0,w.precision):v;break;case"u":v=parseInt(v,10)>>>0;break;case"v":v=v.valueOf(),v=w.precision?v.substring(0,w.precision):v;break;case"x":v=(parseInt(v,10)>>>0).toString(16);break;case"X":v=(parseInt(v,10)>>>0).toString(16).toUpperCase()}i.json.test(w.type)?E+=v:(!i.number.test(w.type)||_&&!w.sign?M="":(M=_?"+":"-",v=v.toString().replace(i.sign,"")),b=w.pad_char?w.pad_char==="0"?"0":w.pad_char.charAt(1):" ",T=w.width-(M+v).length,k=w.width&&T>0?b.repeat(T):"",E+=w.align?M+v+k:b==="0"?M+k+v:k+M+v)}return E}var h=Object.create(null);function m(g){if(h[g])return h[g];for(var p,v=g,y=[],x=0;v;){if((p=i.text.exec(v))!==null)y.push(p[0]);else if((p=i.modulo.exec(v))!==null)y.push("%");else{if((p=i.placeholder.exec(v))===null)throw new SyntaxError("[sprintf] unexpected placeholder");if(p[2]){x|=1;var w=[],k=p[2],b=[];if((b=i.key.exec(k))===null)throw new SyntaxError("[sprintf] failed to parse named argument key");for(w.push(b[1]);(k=k.substring(b[0].length))!=="";)if((b=i.key_access.exec(k))!==null)w.push(b[1]);else{if((b=i.index_access.exec(k))===null)throw new SyntaxError("[sprintf] failed to parse named argument key");w.push(b[1])}p[2]=w}else x|=2;if(x===3)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");y.push({placeholder:p[0],param_no:p[1],keys:p[2],sign:p[3],pad_char:p[4],align:p[5],width:p[6],precision:p[7],type:p[8]})}v=v.substring(p[0].length)}return h[g]=y}c!==void 0&&(c.sprintf=s,c.vsprintf=l),typeof window<"u"&&(window.sprintf=s,window.vsprintf=l)})()},{}],302:[function(a,u,c){u.exports=function(h,m){if(h.dimension<=0)return{positions:[],cells:[]};if(h.dimension===1)return function(v,y){for(var x=s(v,y),w=x.length,k=new Array(w),b=new Array(w),T=0;Tw|0},vertex:function(v,y,x,w,k,b,T,_,M,A,S,E,D){var O=(T<<0)+(_<<1)+(M<<2)+(A<<3)|0;if(O!==0&&O!==15)switch(O){case 0:S.push([v-.5,y-.5]);break;case 1:S.push([v-.25-.25*(w+x-2*D)/(x-w),y-.25-.25*(k+x-2*D)/(x-k)]);break;case 2:S.push([v-.75-.25*(-w-x+2*D)/(w-x),y-.25-.25*(b+w-2*D)/(w-b)]);break;case 3:S.push([v-.5,y-.5-.5*(k+x+b+w-4*D)/(x-k+w-b)]);break;case 4:S.push([v-.25-.25*(b+k-2*D)/(k-b),y-.75-.25*(-k-x+2*D)/(k-x)]);break;case 5:S.push([v-.5-.5*(w+x+b+k-4*D)/(x-w+k-b),y-.5]);break;case 6:S.push([v-.5-.25*(-w-x+b+k)/(w-x+k-b),y-.5-.25*(-k-x+b+w)/(k-x+w-b)]);break;case 7:S.push([v-.75-.25*(b+k-2*D)/(k-b),y-.75-.25*(b+w-2*D)/(w-b)]);break;case 8:S.push([v-.75-.25*(-b-k+2*D)/(b-k),y-.75-.25*(-b-w+2*D)/(b-w)]);break;case 9:S.push([v-.5-.25*(w+x+-b-k)/(x-w+b-k),y-.5-.25*(k+x+-b-w)/(x-k+b-w)]);break;case 10:S.push([v-.5-.5*(-w-x-b-k+4*D)/(w-x+b-k),y-.5]);break;case 11:S.push([v-.25-.25*(-b-k+2*D)/(b-k),y-.75-.25*(k+x-2*D)/(x-k)]);break;case 12:S.push([v-.5,y-.5-.5*(-k-x-b-w+4*D)/(k-x+b-w)]);break;case 13:S.push([v-.75-.25*(w+x-2*D)/(x-w),y-.25-.25*(-b-w+2*D)/(b-w)]);break;case 14:S.push([v-.25-.25*(-w-x+2*D)/(w-x),y-.25-.25*(-k-x+2*D)/(k-x)]);break;case 15:S.push([v-.5,y-.5])}},cell:function(v,y,x,w,k,b,T,_,M){k?_.push([v,y]):_.push([y,v])}});return function(v,y){var x=[],w=[];return p(v,x,w,y),{positions:x,cells:w}}}},d={}},{"ndarray-extract-contour":251,"zero-crossings":318}],303:[function(a,u,c){(function(i){(function(){u.exports=function h(m,g,p){p=p||{};var v=d[m];v||(v=d[m]={" ":{data:new Float32Array(0),shape:.2}});var y=v[g];if(!y)if(g.length<=1||!/\d/.test(g))y=v[g]=function(D){for(var O=D.cells,R=D.positions,z=new Float32Array(6*O.length),L=0,P=0,N=0;N0&&(b+=.02);var _=new Float32Array(k),M=0,A=-.5*b;for(T=0;TMath.max(T,_)?M[2]=1:T>Math.max(b,_)?M[0]=1:M[1]=1;for(var A=0,S=0,E=0;E<3;++E)A+=k[E]*k[E],S+=M[E]*k[E];for(E=0;E<3;++E)M[E]-=S/A*k[E];return h(M,M),M}function y(k,b,T,_,M,A,S,E){this.center=i(T),this.up=i(_),this.right=i(M),this.radius=i([A]),this.angle=i([S,E]),this.angle.bounds=[[-1/0,-Math.PI/2],[1/0,Math.PI/2]],this.setDistanceLimits(k,b),this.computedCenter=this.center.curve(0),this.computedUp=this.up.curve(0),this.computedRight=this.right.curve(0),this.computedRadius=this.radius.curve(0),this.computedAngle=this.angle.curve(0),this.computedToward=[0,0,0],this.computedEye=[0,0,0],this.computedMatrix=new Array(16);for(var D=0;D<16;++D)this.computedMatrix[D]=.5;this.recalcMatrix(0)}var x=y.prototype;x.setDistanceLimits=function(k,b){k=k>0?Math.log(k):-1/0,b=b>0?Math.log(b):1/0,b=Math.max(b,k),this.radius.bounds[0][0]=k,this.radius.bounds[1][0]=b},x.getDistanceLimits=function(k){var b=this.radius.bounds[0];return k?(k[0]=Math.exp(b[0][0]),k[1]=Math.exp(b[1][0]),k):[Math.exp(b[0][0]),Math.exp(b[1][0])]},x.recalcMatrix=function(k){this.center.curve(k),this.up.curve(k),this.right.curve(k),this.radius.curve(k),this.angle.curve(k);for(var b=this.computedUp,T=this.computedRight,_=0,M=0,A=0;A<3;++A)M+=b[A]*T[A],_+=b[A]*b[A];var S=Math.sqrt(_),E=0;for(A=0;A<3;++A)T[A]-=b[A]*M/_,E+=T[A]*T[A],b[A]/=S;var D=Math.sqrt(E);for(A=0;A<3;++A)T[A]/=D;var O=this.computedToward;d(O,b,T),h(O,O);var R=Math.exp(this.computedRadius[0]),z=this.computedAngle[0],L=this.computedAngle[1],P=Math.cos(z),N=Math.sin(z),B=Math.cos(L),G=Math.sin(L),W=this.computedCenter,K=P*B,te=N*B,Y=G,Z=-P*G,re=-N*G,U=B,q=this.computedEye,$=this.computedMatrix;for(A=0;A<3;++A){var ne=K*T[A]+te*O[A]+Y*b[A];$[4*A+1]=Z*T[A]+re*O[A]+U*b[A],$[4*A+2]=ne,$[4*A+3]=0}var H=$[1],Q=$[5],ee=$[9],ie=$[2],ae=$[6],ue=$[10],le=Q*ue-ee*ae,ge=ee*ie-H*ue,fe=H*ae-Q*ie,me=g(le,ge,fe);for(le/=me,ge/=me,fe/=me,$[0]=le,$[4]=ge,$[8]=fe,A=0;A<3;++A)q[A]=W[A]+$[2+4*A]*R;for(A=0;A<3;++A){E=0;for(var _e=0;_e<3;++_e)E+=$[A+4*_e]*q[_e];$[12+A]=-E}$[15]=1},x.getMatrix=function(k,b){this.recalcMatrix(k);var T=this.computedMatrix;if(b){for(var _=0;_<16;++_)b[_]=T[_];return b}return T};var w=[0,0,0];x.rotate=function(k,b,T,_){if(this.angle.move(k,b,T),_){this.recalcMatrix(k);var M=this.computedMatrix;w[0]=M[2],w[1]=M[6],w[2]=M[10];for(var A=this.computedUp,S=this.computedRight,E=this.computedToward,D=0;D<3;++D)M[4*D]=A[D],M[4*D+1]=S[D],M[4*D+2]=E[D];for(l(M,M,_,w),D=0;D<3;++D)A[D]=M[4*D],S[D]=M[4*D+1];this.up.set(k,A[0],A[1],A[2]),this.right.set(k,S[0],S[1],S[2])}},x.pan=function(k,b,T,_){b=b||0,T=T||0,_=_||0,this.recalcMatrix(k);var M=this.computedMatrix,A=(Math.exp(this.computedRadius[0]),M[1]),S=M[5],E=M[9],D=g(A,S,E);A/=D,S/=D,E/=D;var O=M[0],R=M[4],z=M[8],L=O*A+R*S+z*E,P=g(O-=A*L,R-=S*L,z-=E*L),N=(O/=P)*b+A*T,B=(R/=P)*b+S*T,G=(z/=P)*b+E*T;this.center.move(k,N,B,G);var W=Math.exp(this.computedRadius[0]);W=Math.max(1e-4,W+_),this.radius.set(k,Math.log(W))},x.translate=function(k,b,T,_){this.center.move(k,b||0,T||0,_||0)},x.setMatrix=function(k,b,T,_){var M=1;typeof T=="number"&&(M=0|T),(M<0||M>3)&&(M=1);var A=(M+2)%3;b||(this.recalcMatrix(k),b=this.computedMatrix);var S=b[M],E=b[M+4],D=b[M+8];if(_){var O=Math.abs(S),R=Math.abs(E),z=Math.abs(D),L=Math.max(O,R,z);O===L?(S=S<0?-1:1,E=D=0):z===L?(D=D<0?-1:1,S=E=0):(E=E<0?-1:1,S=D=0)}else{var P=g(S,E,D);S/=P,E/=P,D/=P}var N,B,G=b[A],W=b[A+4],K=b[A+8],te=G*S+W*E+K*D,Y=g(G-=S*te,W-=E*te,K-=D*te),Z=E*(K/=Y)-D*(W/=Y),re=D*(G/=Y)-S*K,U=S*W-E*G,q=g(Z,re,U);if(Z/=q,re/=q,U/=q,this.center.jump(k,de,ye,Me),this.radius.idle(k),this.up.jump(k,S,E,D),this.right.jump(k,G,W,K),M===2){var $=b[1],ne=b[5],H=b[9],Q=$*G+ne*W+H*K,ee=$*Z+ne*re+H*U;N=le<0?-Math.PI/2:Math.PI/2,B=Math.atan2(ee,Q)}else{var ie=b[2],ae=b[6],ue=b[10],le=ie*S+ae*E+ue*D,ge=ie*G+ae*W+ue*K,fe=ie*Z+ae*re+ue*U;N=Math.asin(p(le)),B=Math.atan2(fe,ge)}this.angle.jump(k,B,N),this.recalcMatrix(k);var me=b[2],_e=b[6],we=b[10],Te=this.computedMatrix;s(Te,b);var Oe=Te[15],de=Te[12]/Oe,ye=Te[13]/Oe,Me=Te[14]/Oe,ke=Math.exp(this.computedRadius[0]);this.center.jump(k,de-me*ke,ye-_e*ke,Me-we*ke)},x.lastT=function(){return Math.max(this.center.lastT(),this.up.lastT(),this.right.lastT(),this.radius.lastT(),this.angle.lastT())},x.idle=function(k){this.center.idle(k),this.up.idle(k),this.right.idle(k),this.radius.idle(k),this.angle.idle(k)},x.flush=function(k){this.center.flush(k),this.up.flush(k),this.right.flush(k),this.radius.flush(k),this.angle.flush(k)},x.setDistance=function(k,b){b>0&&this.radius.set(k,Math.log(b))},x.lookAt=function(k,b,T,_){this.recalcMatrix(k),b=b||this.computedEye,T=T||this.computedCenter;var M=(_=_||this.computedUp)[0],A=_[1],S=_[2],E=g(M,A,S);if(!(E<1e-6)){M/=E,A/=E,S/=E;var D=b[0]-T[0],O=b[1]-T[1],R=b[2]-T[2],z=g(D,O,R);if(!(z<1e-6)){D/=z,O/=z,R/=z;var L=this.computedRight,P=L[0],N=L[1],B=L[2],G=M*P+A*N+S*B,W=g(P-=G*M,N-=G*A,B-=G*S);if(!(W<.01&&(W=g(P=A*R-S*O,N=S*D-M*R,B=M*O-A*D))<1e-6)){P/=W,N/=W,B/=W,this.up.set(k,M,A,S),this.right.set(k,P,N,B),this.center.set(k,T[0],T[1],T[2]),this.radius.set(k,Math.log(z));var K=A*B-S*N,te=S*P-M*B,Y=M*N-A*P,Z=g(K,te,Y),re=M*D+A*O+S*R,U=P*D+N*O+B*R,q=(K/=Z)*D+(te/=Z)*O+(Y/=Z)*R,$=Math.asin(p(re)),ne=Math.atan2(q,U),H=this.angle._state,Q=H[H.length-1],ee=H[H.length-2];Q%=2*Math.PI;var ie=Math.abs(Q+2*Math.PI-ne),ae=Math.abs(Q-ne),ue=Math.abs(Q-2*Math.PI-ne);ie0?B.pop():new ArrayBuffer(P)}function k(P){return new Uint8Array(w(P),0,P)}function b(P){return new Uint16Array(w(2*P),0,P)}function T(P){return new Uint32Array(w(4*P),0,P)}function _(P){return new Int8Array(w(P),0,P)}function M(P){return new Int16Array(w(2*P),0,P)}function A(P){return new Int32Array(w(4*P),0,P)}function S(P){return new Float32Array(w(4*P),0,P)}function E(P){return new Float64Array(w(8*P),0,P)}function D(P){return h?new Uint8ClampedArray(w(P),0,P):k(P)}function O(P){return m?new BigUint64Array(w(8*P),0,P):null}function R(P){return g?new BigInt64Array(w(8*P),0,P):null}function z(P){return new DataView(w(P),0,P)}function L(P){P=s.nextPow2(P);var N=s.log2(P),B=y[N];return B.length>0?B.pop():new d(P)}c.free=function(P){if(d.isBuffer(P))y[s.log2(P.length)].push(P);else{if(Object.prototype.toString.call(P)!=="[object ArrayBuffer]"&&(P=P.buffer),!P)return;var N=P.length||P.byteLength,B=0|s.log2(N);v[B].push(P)}},c.freeUint8=c.freeUint16=c.freeUint32=c.freeBigUint64=c.freeInt8=c.freeInt16=c.freeInt32=c.freeBigInt64=c.freeFloat32=c.freeFloat=c.freeFloat64=c.freeDouble=c.freeUint8Clamped=c.freeDataView=function(P){x(P.buffer)},c.freeArrayBuffer=x,c.freeBuffer=function(P){y[s.log2(P.length)].push(P)},c.malloc=function(P,N){if(N===void 0||N==="arraybuffer")return w(P);switch(N){case"uint8":return k(P);case"uint16":return b(P);case"uint32":return T(P);case"int8":return _(P);case"int16":return M(P);case"int32":return A(P);case"float":case"float32":return S(P);case"double":case"float64":return E(P);case"uint8_clamped":return D(P);case"bigint64":return R(P);case"biguint64":return O(P);case"buffer":return L(P);case"data":case"dataview":return z(P);default:return null}return null},c.mallocArrayBuffer=w,c.mallocUint8=k,c.mallocUint16=b,c.mallocUint32=T,c.mallocInt8=_,c.mallocInt16=M,c.mallocInt32=A,c.mallocFloat32=c.mallocFloat=S,c.mallocFloat64=c.mallocDouble=E,c.mallocUint8Clamped=D,c.mallocBigUint64=O,c.mallocBigInt64=R,c.mallocDataView=z,c.mallocBuffer=L,c.clearCache=function(){for(var P=0;P<32;++P)p.UINT8[P].length=0,p.UINT16[P].length=0,p.UINT32[P].length=0,p.INT8[P].length=0,p.INT16[P].length=0,p.INT32[P].length=0,p.FLOAT[P].length=0,p.DOUBLE[P].length=0,p.BIGUINT64[P].length=0,p.BIGINT64[P].length=0,p.UINT8C[P].length=0,v[P].length=0,y[P].length=0}}).call(this)}).call(this,r!==void 0?r:typeof self<"u"?self:typeof window<"u"?window:{})},{"bit-twiddle":32,buffer:3,dup:65}],309:[function(a,u,c){function i(l){this.roots=new Array(l),this.ranks=new Array(l);for(var d=0;d0&&(T=b.size),b.lineSpacing&&b.lineSpacing>0&&(_=b.lineSpacing),b.styletags&&b.styletags.breaklines&&(M.breaklines=!!b.styletags.breaklines),b.styletags&&b.styletags.bolds&&(M.bolds=!!b.styletags.bolds),b.styletags&&b.styletags.italics&&(M.italics=!!b.styletags.italics),b.styletags&&b.styletags.subscripts&&(M.subscripts=!!b.styletags.subscripts),b.styletags&&b.styletags.superscripts&&(M.superscripts=!!b.styletags.superscripts)),k.font=[b.fontStyle,b.fontVariant,b.fontWeight,T+"px",b.font].filter(function(A){return A}).join(" "),k.textAlign="start",k.textBaseline="alphabetic",k.direction="ltr",y(function(A,S,E,D,O,R){E=E.replace(/\n/g,""),E=R.breaklines===!0?E.replace(/\/g,` +`):E.replace(/\/g," ");var z="",L=[];for(G=0;G-1?parseInt(_e[1+Oe]):0,Me=de>-1?parseInt(we[1+de]):0;ye!==Me&&(Te=Te.replace(ie(),"?px "),te*=Math.pow(.75,Me-ye),Te=Te.replace("?px ",ie())),K+=.25*re*(Me-ye)}if(R.superscripts===!0){var ke=_e.indexOf("+"),Ee=we.indexOf("+"),ze=ke>-1?parseInt(_e[1+ke]):0,Fe=Ee>-1?parseInt(we[1+Ee]):0;ze!==Fe&&(Te=Te.replace(ie(),"?px "),te*=Math.pow(.75,Fe-ze),Te=Te.replace("?px ",ie())),K-=.25*re*(Fe-ze)}if(R.bolds===!0){var Ve=_e.indexOf("b|")>-1,Ke=we.indexOf("b|")>-1;!Ve&&Ke&&(Te=Re?Te.replace("italic ","italic bold "):"bold "+Te),Ve&&!Ke&&(Te=Te.replace("bold ",""))}if(R.italics===!0){var Re=_e.indexOf("i|")>-1,qe=we.indexOf("i|")>-1;!Re&&qe&&(Te="italic "+Te),Re&&!qe&&(Te=Te.replace("italic ",""))}S.font=Te}for(B=0;B",_="",M=T.length,A=_.length,S=w[0]==="+"||w[0]==="-",E=0,D=-A;E>-1&&(E=k.indexOf(T,E))!==-1&&(D=k.indexOf(_,E+M))!==-1&&!(D<=E);){for(var O=E;O=D)b[O]=null,k=k.substr(0,O)+" "+k.substr(O+1);else if(b[O]!==null){var R=b[O].indexOf(w[0]);R===-1?b[O]+=w:S&&(b[O]=b[O].substr(0,R+1)+(1+parseInt(b[O][R+1]))+b[O].substr(R+2))}var z=E+M,L=k.substr(z,D-z).indexOf(T);E=L!==-1?L:D+A}return b}function p(x,w){var k=i(x,128);return w?l(k.cells,k.positions,.25):{edges:k.cells,positions:k.positions}}function v(x,w,k,b){var T=p(x,b),_=function(B,G,W){for(var K=G.textAlign||"start",te=G.textBaseline||"alphabetic",Y=[1<<30,1<<30],Z=[0,0],re=B.length,U=0;U"u"||!ses.ok||ses.ok()){typeof ses<"u"&&(ses.weakMapPermitHostObjects=T);var i=!1;if(typeof WeakMap=="function"){var s=WeakMap;if(!(typeof navigator<"u"&&/Firefox/.test(navigator.userAgent))){var l=new s,d=Object.freeze({});if(l.set(d,1),l.get(d)===1)return void(u.exports=WeakMap);i=!0}}var h=Object.getOwnPropertyNames,m=Object.defineProperty,g=Object.isExtensible,p="weakmap:ident:"+Math.random()+"___";if(typeof crypto<"u"&&typeof crypto.getRandomValues=="function"&&typeof ArrayBuffer=="function"&&typeof Uint8Array=="function"){var v=new ArrayBuffer(25),y=new Uint8Array(v);crypto.getRandomValues(y),p="weakmap:rand:"+Array.prototype.map.call(y,function(E){return(E%36).toString(36)}).join("")+"___"}if(m(Object,"getOwnPropertyNames",{value:function(E){return h(E).filter(_)}}),"getPropertyNames"in Object){var x=Object.getPropertyNames;m(Object,"getPropertyNames",{value:function(E){return x(E).filter(_)}})}(function(){var E=Object.freeze;m(Object,"freeze",{value:function(R){return M(R),E(R)}});var D=Object.seal;m(Object,"seal",{value:function(R){return M(R),D(R)}});var O=Object.preventExtensions;m(Object,"preventExtensions",{value:function(R){return M(R),O(R)}})})();var w=!1,k=0,b=function(){this instanceof b||S();var E=[],D=[],O=k++;return Object.create(b.prototype,{get___:{value:A(function(R,z){var L,P=M(R);return P?O in P?P[O]:z:(L=E.indexOf(R))>=0?D[L]:z})},has___:{value:A(function(R){var z=M(R);return z?O in z:E.indexOf(R)>=0})},set___:{value:A(function(R,z){var L,P=M(R);return P?P[O]=z:(L=E.indexOf(R))>=0?D[L]=z:(L=E.length,D[L]=z,E[L]=R),this})},delete___:{value:A(function(R){var z,L,P=M(R);return P?O in P&&delete P[O]:!((z=E.indexOf(R))<0)&&(L=E.length-1,E[z]=void 0,D[z]=D[L],E[z]=E[L],E.length=L,D.length=L,!0)})}})};b.prototype=Object.create(Object.prototype,{get:{value:function(E,D){return this.get___(E,D)},writable:!0,configurable:!0},has:{value:function(E){return this.has___(E)},writable:!0,configurable:!0},set:{value:function(E,D){return this.set___(E,D)},writable:!0,configurable:!0},delete:{value:function(E){return this.delete___(E)},writable:!0,configurable:!0}}),typeof s=="function"?function(){function E(){this instanceof b||S();var D,O=new s,R=void 0,z=!1;return D=i?function(L,P){return O.set(L,P),O.has(L)||(R||(R=new b),R.set(L,P)),this}:function(L,P){if(z)try{O.set(L,P)}catch{R||(R=new b),R.set___(L,P)}else O.set(L,P);return this},Object.create(b.prototype,{get___:{value:A(function(L,P){return R?O.has(L)?O.get(L):R.get___(L,P):O.get(L,P)})},has___:{value:A(function(L){return O.has(L)||!!R&&R.has___(L)})},set___:{value:A(D)},delete___:{value:A(function(L){var P=!!O.delete(L);return R&&R.delete___(L)||P})},permitHostObjects___:{value:A(function(L){if(L!==T)throw new Error("bogus call to permitHostObjects___");z=!0})}})}i&&typeof Proxy<"u"&&(Proxy=void 0),E.prototype=b.prototype,u.exports=E,Object.defineProperty(WeakMap.prototype,"constructor",{value:WeakMap,enumerable:!1,configurable:!0,writable:!0})}():(typeof Proxy<"u"&&(Proxy=void 0),u.exports=b)}function T(E){E.permitHostObjects___&&E.permitHostObjects___(T)}function _(E){return!(E.substr(0,8)=="weakmap:"&&E.substr(E.length-3)==="___")}function M(E){if(E!==Object(E))throw new TypeError("Not an object: "+E);var D=E[p];if(D&&D.key===E)return D;if(g(E)){D={key:E};try{return m(E,p,{value:D,writable:!1,enumerable:!1,configurable:!1}),D}catch{return}}}function A(E){return E.prototype=null,Object.freeze(E)}function S(){w||typeof console>"u"||(w=!0,console.warn("WeakMap should be invoked as new WeakMap(), not WeakMap(). This will be an error in the future."))}})()},{}],314:[function(a,u,c){var i=a("./hidden-store.js");u.exports=function(){var s={};return function(l){if((typeof l!="object"||l===null)&&typeof l!="function")throw new Error("Weakmap-shim: Key must be object");var d=l.valueOf(s);return d&&d.identity===s?d:i(l,s)}}},{"./hidden-store.js":315}],315:[function(a,u,c){u.exports=function(i,s){var l={identity:s},d=i.valueOf;return Object.defineProperty(i,"valueOf",{value:function(h){return h!==s?d.apply(this,arguments):l},writable:!0}),l}},{}],316:[function(a,u,c){var i=a("./create-store.js");u.exports=function(){var s=i();return{get:function(l,d){var h=s(l);return h.hasOwnProperty("value")?h.value:d},set:function(l,d){return s(l).value=d,this},has:function(l){return"value"in s(l)},delete:function(l){return delete s(l).value}}}},{"./create-store.js":314}],317:[function(a,u,c){var i,s=function(){return function(l,d,h,m,g,p){var v=l[0],y=h[0],x=[0],w=y;m|=0;var k=0,b=y;for(k=0;k=0!=_>=0&&g.push(x[0]+.5+.5*(T+_)/(T-_)),m+=b,++x[0]}}};u.exports=(i={funcName:"zeroCrossings"},function(l){var d={};return function(h,m,g){var p=h.dtype,v=h.order,y=[p,v.join()].join(),x=d[y];return x||(d[y]=x=l([p,v])),x(h.shape.slice(0),h.data,h.stride,0|h.offset,m,g)}}(s.bind(void 0,i)))},{}],318:[function(a,u,c){u.exports=function(s,l){var d=[];return l=+l||0,i(s.hi(s.shape[0]-1),d,l),d};var i=a("./lib/zc-core")},{"./lib/zc-core":317}]},{},[6])(6)})}).call(this)}).call(this,typeof Ro<"u"?Ro:typeof self<"u"?self:typeof window<"u"?window:{})},{}]},{},[27])(27)})})(qD);var dW=NG(qD.exports);/*! + * https://github.com/Starcounter-Jack/JSON-Patch + * (c) 2017-2022 Joachim Wester + * MIT licensed + */var pW=globalThis&&globalThis.__extends||function(){var t=function(n,e){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(o,f){o.__proto__=f}||function(o,f){for(var r in f)f.hasOwnProperty(r)&&(o[r]=f[r])},t(n,e)};return function(n,e){t(n,e);function o(){this.constructor=n}n.prototype=e===null?Object.create(e):(o.prototype=e.prototype,new o)}}(),gW=Object.prototype.hasOwnProperty;function tk(t,n){return gW.call(t,n)}function nk(t){if(Array.isArray(t)){for(var n=new Array(t.length),e=0;e=48&&o<=57){n++;continue}return!1}return!0}function Zp(t){return t.indexOf("/")===-1&&t.indexOf("~")===-1?t:t.replace(/~/g,"~0").replace(/\//g,"~1")}function HD(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}function ik(t){if(t===void 0)return!0;if(t){if(Array.isArray(t)){for(var n=0,e=t.length;n0&&c[s-1]=="constructor"))throw new TypeError("JSON-Patch: modifying `__proto__` or `constructor/prototype` prop is banned for security reasons, if this was on purpose, please set `banPrototypeModifications` flag false and pass it to this function. More info in fast-json-patch README");if(e&&d===void 0&&(i[h]===void 0?d=c.slice(0,s).join("/"):s==l-1&&(d=n.path),d!==void 0&&m(n,0,t,d)),s++,Array.isArray(i)){if(h==="-")h=i.length;else{if(e&&!rk(h))throw new vs("Expected an unsigned base-10 integer value, making the new referenced value the array element with the zero-based index","OPERATION_PATH_ILLEGAL_ARRAY_INDEX",r,n,t);rk(h)&&(h=~~h)}if(s>=l){if(e&&n.op==="add"&&h>i.length)throw new vs("The specified index MUST NOT be greater than the number of elements in the array","OPERATION_VALUE_OUT_OF_BOUNDS",r,n,t);var a=vW[n.op].call(n,i,h,t);if(a.test===!1)throw new vs("Test operation failed","TEST_OPERATION_FAILED",r,n,t);return a}}else if(s>=l){var a=Gg[n.op].call(n,i,h,t);if(a.test===!1)throw new vs("Test operation failed","TEST_OPERATION_FAILED",r,n,t);return a}if(i=i[h],e&&s0)throw new vs('Operation `path` property must start with "/"',"OPERATION_PATH_INVALID",n,t,e);if((t.op==="move"||t.op==="copy")&&typeof t.from!="string")throw new vs("Operation `from` property is not present (applicable in `move` and `copy` operations)","OPERATION_FROM_REQUIRED",n,t,e);if((t.op==="add"||t.op==="replace"||t.op==="test")&&t.value===void 0)throw new vs("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_REQUIRED",n,t,e);if((t.op==="add"||t.op==="replace"||t.op==="test")&&ik(t.value))throw new vs("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_CANNOT_CONTAIN_UNDEFINED",n,t,e);if(e){if(t.op=="add"){var f=t.path.split("/").length,r=o.split("/").length;if(f!==r+1&&f!==r)throw new vs("Cannot perform an `add` operation at the desired path","OPERATION_PATH_CANNOT_ADD",n,t,e)}else if(t.op==="replace"||t.op==="remove"||t.op==="_get"){if(t.path!==o)throw new vs("Cannot perform the operation at a path that does not exist","OPERATION_PATH_UNRESOLVABLE",n,t,e)}else if(t.op==="move"||t.op==="copy"){var a={op:"_get",path:t.from,value:void 0},u=GD([a],e);if(u&&u.name==="OPERATION_PATH_UNRESOLVABLE")throw new vs("Cannot perform the operation from a path that does not exist","OPERATION_FROM_UNRESOLVABLE",n,t,e)}}}else throw new vs("Operation `op` property is not one of operations defined in RFC-6902","OPERATION_OP_INVALID",n,t,e)}function GD(t,n,e){try{if(!Array.isArray(t))throw new vs("Patch sequence must be an array","SEQUENCE_NOT_AN_ARRAY");if(n)Y2(Zu(n),Zu(t),e||!0);else{e=e||h_;for(var o=0;o0&&(t.patches=[],t.callback&&t.callback(o)),o}function _A(t,n,e,o,f){if(n!==t){typeof n.toJSON=="function"&&(n=n.toJSON());for(var r=nk(n),a=nk(t),u=!1,c=a.length-1;c>=0;c--){var i=a[c],s=t[i];if(tk(n,i)&&!(n[i]===void 0&&s!==void 0&&Array.isArray(n)===!1)){var l=n[i];typeof s=="object"&&s!=null&&typeof l=="object"&&l!=null&&Array.isArray(s)===Array.isArray(l)?_A(s,l,e,o+"/"+Zp(i),f):s!==l&&(f&&e.push({op:"test",path:o+"/"+Zp(i),value:Zu(s)}),e.push({op:"replace",path:o+"/"+Zp(i),value:Zu(l)}))}else Array.isArray(t)===Array.isArray(n)?(f&&e.push({op:"test",path:o+"/"+Zp(i),value:Zu(s)}),e.push({op:"remove",path:o+"/"+Zp(i)}),u=!0):(f&&e.push({op:"test",path:o,value:t}),e.push({op:"replace",path:o,value:n}))}if(!(!u&&r.length==a.length))for(var c=0;c0)return[x,o+d.join(`, +`+v),s].join(` +`+c)}return w}(n,"",0)};function Nu(t,n,e){return t.fields=n||[],t.fname=e,t}function xs(t){return t==null?null:t.fname}function Bl(t){return t==null?null:t.fields}function WD(t){return t.length===1?OW(t[0]):LW(t)}const OW=t=>function(n){return n[t]},LW=t=>{const n=t.length;return function(e){for(let o=0;oa?i():a=u+1:c==="["?(u>a&&i(),f=a=u+1):c==="]"&&(f||Pr("Access path missing open bracket: "+t),f>0&&i(),f=0,a=u+1)}return f&&Pr("Access path missing closing bracket: "+t),o&&Pr("Access path missing closing quote: "+t),u>a&&(u++,i()),n}function Lu(t,n,e){const o=ih(t);return t=o.length===1?o[0]:t,Nu((e&&e.get||WD)(o),[t],n||t)}const Ty=Lu("id"),Hl=Nu(t=>t,[],"identity"),Md=Nu(()=>0,[],"zero"),Um=Nu(()=>1,[],"one"),mc=Nu(()=>!0,[],"true"),yd=Nu(()=>!1,[],"false");function PW(t,n,e){const o=[n].concat([].slice.call(e));console[t].apply(console,o)}const YD=0,wA=1,kA=2,XD=3,ZD=4;function TA(t,n,e=PW){let o=t||YD;return{level(f){return arguments.length?(o=+f,this):o},error(){return o>=wA&&e(n||"error","ERROR",arguments),this},warn(){return o>=kA&&e(n||"warn","WARN",arguments),this},info(){return o>=XD&&e(n||"log","INFO",arguments),this},debug(){return o>=ZD&&e(n||"log","DEBUG",arguments),this}}}var Ir=Array.isArray;function Ei(t){return t===Object(t)}const MC=t=>t!=="__proto__";function Vm(...t){return t.reduce((n,e)=>{for(const o in e)if(o==="signals")n.signals=DW(n.signals,e.signals);else{const f=o==="legend"?{layout:1}:o==="style"?!0:null;qm(n,o,e[o],f)}return n},{})}function qm(t,n,e,o){if(!MC(n))return;let f,r;if(Ei(e)&&!Ir(e)){r=Ei(t[n])?t[n]:t[n]={};for(f in e)o&&(o===!0||o[f])?qm(r,f,e[f]):MC(f)&&(r[f]=e[f])}else t[n]=e}function DW(t,n){if(t==null)return n;const e={},o=[];function f(r){e[r.name]||(e[r.name]=1,o.push(r))}return n.forEach(f),t.forEach(f),o}function Na(t){return t[t.length-1]}function Rl(t){return t==null||t===""?null:+t}const JD=t=>n=>t*Math.exp(n),KD=t=>n=>Math.log(t*n),QD=t=>n=>Math.sign(n)*Math.log1p(Math.abs(n/t)),eI=t=>n=>Math.sign(n)*Math.expm1(Math.abs(n))*t,d_=t=>n=>n<0?-Math.pow(-n,t):Math.pow(n,t);function X2(t,n,e,o){const f=e(t[0]),r=e(Na(t)),a=(r-f)*n;return[o(f-a),o(r-a)]}function tI(t,n){return X2(t,n,Rl,Hl)}function nI(t,n){var e=Math.sign(t[0]);return X2(t,n,KD(e),JD(e))}function rI(t,n,e){return X2(t,n,d_(e),d_(1/e))}function iI(t,n,e){return X2(t,n,QD(e),eI(e))}function Z2(t,n,e,o,f){const r=o(t[0]),a=o(Na(t)),u=n!=null?o(n):(r+a)/2;return[f(u+(r-u)*e),f(u+(a-u)*e)]}function AA(t,n,e){return Z2(t,n,e,Rl,Hl)}function MA(t,n,e){const o=Math.sign(t[0]);return Z2(t,n,e,KD(o),JD(o))}function p_(t,n,e,o){return Z2(t,n,e,d_(o),d_(1/o))}function SA(t,n,e,o){return Z2(t,n,e,QD(o),eI(o))}function aI(t){return 1+~~(new Date(t).getMonth()/3)}function oI(t){return 1+~~(new Date(t).getUTCMonth()/3)}function ki(t){return t!=null?Ir(t)?t:[t]:[]}function sI(t,n,e){let o=t[0],f=t[1],r;return f=e-n?[n,e]:[o=Math.min(Math.max(o,n),e-r),o+r]}function ga(t){return typeof t=="function"}const IW="descending";function EA(t,n,e){e=e||{},n=ki(n)||[];const o=[],f=[],r={},a=e.comparator||zW;return ki(t).forEach((u,c)=>{u!=null&&(o.push(n[c]===IW?-1:1),f.push(u=ga(u)?u:Lu(u,null,e)),(Bl(u)||[]).forEach(i=>r[i]=1))}),f.length===0?null:Nu(a(f,o),Object.keys(r))}const J2=(t,n)=>(tn||n==null)&&t!=null?1:(n=n instanceof Date?+n:n,(t=t instanceof Date?+t:t)!==t&&n===n?-1:n!==n&&t===t?1:0),zW=(t,n)=>t.length===1?RW(t[0],n[0]):FW(t,n,t.length),RW=(t,n)=>function(e,o){return J2(t(e),t(o))*n},FW=(t,n,e)=>(n.push(0),function(o,f){let r,a=0,u=-1;for(;a===0&&++ut}function CA(t,n){let e;return o=>{e&&clearTimeout(e),e=setTimeout(()=>(n(o),e=null),t)}}function pa(t){for(let n,e,o=1,f=arguments.length;oa&&(a=f))}else{for(f=n(t[e]);ea&&(a=f))}return[r,a]}function lI(t,n){const e=t.length;let o=-1,f,r,a,u,c;if(n==null){for(;++o=r){f=a=r;break}if(o===e)return[-1,-1];for(u=c=o;++or&&(f=r,u=o),a=r){f=a=r;break}if(o===e)return[-1,-1];for(u=c=o;++or&&(f=r,u=o),a{f.set(r,t[r])}),f}function uI(t,n,e,o,f,r){if(!e&&e!==0)return r;const a=+e;let u=t[0],c=Na(t),i;cr&&(a=f,f=r,r=a),e=e===void 0||e,o=o===void 0||o,(e?f<=t:fu.replace(/\\(.)/g,"$1")):ki(t));const o=t&&t.length,f=e&&e.get||WD,r=u=>f(n?[u]:ih(u));let a;if(!o)a=function(){return""};else if(o===1){const u=r(t[0]);a=function(c){return""+u(c)}}else{const u=t.map(r);a=function(c){let i=""+u[0](c),s=0;for(;++s{n={},e={},o=0},r=(a,u)=>(++o>t&&(e=n,n={},o=1),n[a]=u);return f(),{clear:f,has:a=>qi(n,a)||qi(e,a),get:a=>qi(n,a)?n[a]:qi(e,a)?r(a,e[a]):void 0,set:(a,u)=>qi(n,a)?n[a]=u:r(a,u)}}function pI(t,n,e,o){const f=n.length,r=e.length;if(!r)return n;if(!f)return e;const a=o||new n.constructor(f+r);let u=0,c=0,i=0;for(;u0?e[c++]:n[u++];for(;u=0;)e+=t;return e}function gI(t,n,e,o){const f=e||" ",r=t+"",a=n-r.length;return a<=0?r:o==="left"?iv(f,a)+r:o==="center"?iv(f,~~(a/2))+r+iv(f,Math.ceil(a/2)):r+iv(f,a)}function Ay(t){return t&&Na(t)-t[0]||0}function oi(t){return Ir(t)?"["+t.map(oi)+"]":Ei(t)||bi(t)?JSON.stringify(t).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):t}function LA(t){return t==null||t===""?null:!t||t==="false"||t==="0"?!1:!!t}const jW=t=>wo(t)||Nd(t)?t:Date.parse(t);function PA(t,n){return n=n||jW,t==null||t===""?null:n(t)}function DA(t){return t==null||t===""?null:t+""}function ff(t){const n={},e=t.length;for(let o=0;o1)o=YW(t,n,e);else for(f=0,o=new Array(r=t.arcs.length);f=a&&(o=a-f,f+=o/++e,r+=o*(a-f));else{let a=-1;for(let u of t)(u=n(u,++a,t))!=null&&(u=+u)>=u&&(o=u-f,f+=o/++e,r+=o*(u-f))}if(e>1)return r/(e-1)}function ZW(t,n){const e=XW(t,n);return e&&Math.sqrt(e)}class fu{constructor(){this._partials=new Float64Array(32),this._n=0}add(n){const e=this._partials;let o=0;for(let f=0;f0){for(a=n[--e];e>0&&(o=a,f=n[--e],a=o+f,r=f-(a-o),!r););e>0&&(r<0&&n[e-1]<0||r>0&&n[e-1]>0)&&(f=r*2,o=a+f,f==o-a&&(a=o))}return a}}class EC extends Map{constructor(n,e=bI){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:e}}),n!=null)for(const[o,f]of n)this.set(o,f)}get(n){return super.get(ok(this,n))}has(n){return super.has(ok(this,n))}set(n,e){return super.set(yI(this,n),e)}delete(n){return super.delete(xI(this,n))}}class g_ extends Set{constructor(n,e=bI){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:e}}),n!=null)for(const o of n)this.add(o)}has(n){return super.has(ok(this,n))}add(n){return super.add(yI(this,n))}delete(n){return super.delete(xI(this,n))}}function ok({_intern:t,_key:n},e){const o=n(e);return t.has(o)?t.get(o):e}function yI({_intern:t,_key:n},e){const o=n(e);return t.has(o)?t.get(o):(t.set(o,e),e)}function xI({_intern:t,_key:n},e){const o=n(e);return t.has(o)&&(e=t.get(o),t.delete(o)),e}function bI(t){return t!==null&&typeof t=="object"?t.valueOf():t}function JW(t,n){return Array.from(n,e=>t[e])}function KW(t=Vv){if(t===Vv)return _I;if(typeof t!="function")throw new TypeError("compare is not a function");return(n,e)=>{const o=t(n,e);return o||o===0?o:(t(e,e)===0)-(t(n,n)===0)}}function _I(t,n){return(t==null||!(t>=t))-(n==null||!(n>=n))||(tn?1:0)}function d0(t,n){let e;if(n===void 0)for(const o of t)o!=null&&(e=o)&&(e=o);else{let o=-1;for(let f of t)(f=n(f,++o,t))!=null&&(e=f)&&(e=f)}return e}function sk(t,n){let e;if(n===void 0)for(const o of t)o!=null&&(e>o||e===void 0&&o>=o)&&(e=o);else{let o=-1;for(let f of t)(f=n(f,++o,t))!=null&&(e>f||e===void 0&&f>=f)&&(e=f)}return e}function wI(t,n,e=0,o=t.length-1,f){for(f=f===void 0?_I:KW(f);o>e;){if(o-e>600){const c=o-e+1,i=n-e+1,s=Math.log(c),l=.5*Math.exp(2*s/3),d=.5*Math.sqrt(s*l*(c-l)/c)*(i-c/2<0?-1:1),h=Math.max(e,Math.floor(n-i*l/c+d)),m=Math.min(o,Math.floor(n+(c-i)*l/c+d));wI(t,n,h,m,f)}const r=t[n];let a=e,u=o;for(D1(t,e,n),f(t[o],r)>0&&D1(t,e,o);a0;)--u}f(t[e],r)===0?D1(t,e,u):(++u,D1(t,u,o)),u<=n&&(e=u+1),n<=u&&(o=u-1)}return t}function D1(t,n,e){const o=t[n];t[n]=t[e],t[e]=o}function lk(t,n,e){if(t=Float64Array.from(UG(t,e)),!!(o=t.length)){if((n=+n)<=0||o<2)return sk(t);if(n>=1)return d0(t);var o,f=(o-1)*n,r=Math.floor(f),a=d0(wI(t,r).subarray(0,r+1)),u=sk(t.subarray(r+1));return a+(u-a)*(f-r)}}function kI(t,n,e=jG){if(!!(o=t.length)){if((n=+n)<=0||o<2)return+e(t[0],0,t);if(n>=1)return+e(t[o-1],o-1,t);var o,f=(o-1)*n,r=Math.floor(f),a=+e(t[r],r,t),u=+e(t[r+1],r+1,t);return a+(u-a)*(f-r)}}function QW(t,n){let e=0,o=0;if(n===void 0)for(let f of t)f!=null&&(f=+f)>=f&&(++e,o+=f);else{let f=-1;for(let r of t)(r=n(r,++f,t))!=null&&(r=+r)>=r&&(++e,o+=r)}if(e)return o/e}function TI(t,n){return lk(t,.5,n)}function*eY(t){for(const n of t)yield*n}function AI(t){return Array.from(eY(t))}function Ju(t,n,e){t=+t,n=+n,e=(f=arguments.length)<2?(n=t,t=0,1):f<3?1:+e;for(var o=-1,f=Math.max(0,Math.ceil((n-t)/e))|0,r=new Array(f);++o0))return c;do c.push(i=new Date(+r)),n(r,u),t(r);while(i=a)for(;t(a),!r(a);)a.setTime(a-1)},function(a,u){if(a>=a)if(u<0)for(;++u<=0;)for(;n(a,-1),!r(a););else for(;--u>=0;)for(;n(a,1),!r(a););})},e&&(f.count=function(r,a){return E5.setTime(+r),C5.setTime(+a),t(E5),t(C5),Math.floor(e(E5,C5))},f.every=function(r){return r=Math.floor(r),!isFinite(r)||!(r>0)?null:r>1?f.filter(o?function(a){return o(a)%r===0}:function(a){return f.count(0,a)%r===0}):f}),f}var uk=ul(function(){},function(t,n){t.setTime(+t+n)},function(t,n){return n-t});uk.every=function(t){return t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?ul(function(n){n.setTime(Math.floor(n/t)*t)},function(n,e){n.setTime(+n+e*t)},function(n,e){return(e-n)/t}):uk};var IA=uk;const Ih=1e3,cc=Ih*60,zh=cc*60,_0=zh*24,zA=_0*7,CC=_0*30,O5=_0*365;var iY=ul(function(t){t.setTime(t-t.getMilliseconds())},function(t,n){t.setTime(+t+n*Ih)},function(t,n){return(n-t)/Ih},function(t){return t.getUTCSeconds()}),Cd=iY,aY=ul(function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*Ih)},function(t,n){t.setTime(+t+n*cc)},function(t,n){return(n-t)/cc},function(t){return t.getMinutes()}),RA=aY,oY=ul(function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*Ih-t.getMinutes()*cc)},function(t,n){t.setTime(+t+n*zh)},function(t,n){return(n-t)/zh},function(t){return t.getHours()}),FA=oY,sY=ul(t=>t.setHours(0,0,0,0),(t,n)=>t.setDate(t.getDate()+n),(t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*cc)/_0,t=>t.getDate()-1),Bd=sY;function V0(t){return ul(function(n){n.setDate(n.getDate()-(n.getDay()+7-t)%7),n.setHours(0,0,0,0)},function(n,e){n.setDate(n.getDate()+e*7)},function(n,e){return(e-n-(e.getTimezoneOffset()-n.getTimezoneOffset())*cc)/zA})}var My=V0(0),ck=V0(1);V0(2);V0(3);var Hv=V0(4);V0(5);V0(6);var lY=ul(function(t){t.setDate(1),t.setHours(0,0,0,0)},function(t,n){t.setMonth(t.getMonth()+n)},function(t,n){return n.getMonth()-t.getMonth()+(n.getFullYear()-t.getFullYear())*12},function(t){return t.getMonth()}),m_=lY,SI=ul(function(t){t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,n){t.setFullYear(t.getFullYear()+n)},function(t,n){return n.getFullYear()-t.getFullYear()},function(t){return t.getFullYear()});SI.every=function(t){return!isFinite(t=Math.floor(t))||!(t>0)?null:ul(function(n){n.setFullYear(Math.floor(n.getFullYear()/t)*t),n.setMonth(0,1),n.setHours(0,0,0,0)},function(n,e){n.setFullYear(n.getFullYear()+e*t)})};var Wd=SI,uY=ul(function(t){t.setUTCSeconds(0,0)},function(t,n){t.setTime(+t+n*cc)},function(t,n){return(n-t)/cc},function(t){return t.getUTCMinutes()}),NA=uY,cY=ul(function(t){t.setUTCMinutes(0,0,0)},function(t,n){t.setTime(+t+n*zh)},function(t,n){return(n-t)/zh},function(t){return t.getUTCHours()}),BA=cY,fY=ul(function(t){t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+n)},function(t,n){return(n-t)/_0},function(t){return t.getUTCDate()-1}),jd=fY;function q0(t){return ul(function(n){n.setUTCDate(n.getUTCDate()-(n.getUTCDay()+7-t)%7),n.setUTCHours(0,0,0,0)},function(n,e){n.setUTCDate(n.getUTCDate()+e*7)},function(n,e){return(e-n)/zA})}var Sy=q0(0),fk=q0(1);q0(2);q0(3);var $v=q0(4);q0(5);q0(6);var hY=ul(function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCMonth(t.getUTCMonth()+n)},function(t,n){return n.getUTCMonth()-t.getUTCMonth()+(n.getUTCFullYear()-t.getUTCFullYear())*12},function(t){return t.getUTCMonth()}),v_=hY,EI=ul(function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n)},function(t,n){return n.getUTCFullYear()-t.getUTCFullYear()},function(t){return t.getUTCFullYear()});EI.every=function(t){return!isFinite(t=Math.floor(t))||!(t>0)?null:ul(function(n){n.setUTCFullYear(Math.floor(n.getUTCFullYear()/t)*t),n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0)},function(n,e){n.setUTCFullYear(n.getUTCFullYear()+e*t)})};var Yd=EI;function CI(t,n,e,o,f,r){const a=[[Cd,1,Ih],[Cd,5,5*Ih],[Cd,15,15*Ih],[Cd,30,30*Ih],[r,1,cc],[r,5,5*cc],[r,15,15*cc],[r,30,30*cc],[f,1,zh],[f,3,3*zh],[f,6,6*zh],[f,12,12*zh],[o,1,_0],[o,2,2*_0],[e,1,zA],[n,1,CC],[n,3,3*CC],[t,1,O5]];function u(i,s,l){const d=sp).right(a,d);if(h===a.length)return t.every(b0(i/O5,s/O5,l));if(h===0)return IA.every(Math.max(b0(i,s,l),1));const[m,g]=a[d/a[h-1][2](t[n]=1+e,t),{});function UA(t){const n=ki(t).slice(),e={};return n.length||Pr("Missing time unit."),n.forEach(f=>{qi(L5,f)?e[f]=1:Pr("Invalid time unit: ".concat(f,"."))}),(e[Gs]||e[Il]?1:0)+(e[Pu]||e[jl]||e[Du]?1:0)+(e[Jf]?1:0)>1&&Pr("Incompatible time units: ".concat(t)),n.sort((f,r)=>L5[f]-L5[r]),n}const vY={[wl]:"%Y ",[Pu]:"Q%q ",[jl]:"%b ",[Du]:"%d ",[Gs]:"W%U ",[Il]:"%a ",[Jf]:"%j ",[Qu]:"%H:00",[ec]:"00:%M",[vc]:":%S",[hf]:".%L",["".concat(wl,"-").concat(jl)]:"%Y-%m ",["".concat(wl,"-").concat(jl,"-").concat(Du)]:"%Y-%m-%d ",["".concat(Qu,"-").concat(ec)]:"%H:%M"};function OI(t,n){const e=pa({},vY,n),o=UA(t),f=o.length;let r="",a=0,u,c;for(a=0;aa;--u)if(c=o.slice(a,u).join("-"),e[c]!=null){r+=e[c],a=u;break}return r.trim()}const Kp=new Date;function VA(t){return Kp.setFullYear(t),Kp.setMonth(0),Kp.setDate(1),Kp.setHours(0,0,0,0),Kp}function LI(t){return DI(new Date(t))}function PI(t){return hk(new Date(t))}function DI(t){return Bd.count(VA(t.getFullYear())-1,t)}function hk(t){return My.count(VA(t.getFullYear())-1,t)}function dk(t){return VA(t).getDay()}function yY(t,n,e,o,f,r,a){if(0<=t&&t<100){const u=new Date(-1,n,e,o,f,r,a);return u.setFullYear(t),u}return new Date(t,n,e,o,f,r,a)}function II(t){return RI(new Date(t))}function zI(t){return pk(new Date(t))}function RI(t){const n=Date.UTC(t.getUTCFullYear(),0,1);return jd.count(n-1,t)}function pk(t){const n=Date.UTC(t.getUTCFullYear(),0,1);return Sy.count(n-1,t)}function gk(t){return Kp.setTime(Date.UTC(t,0,1)),Kp.getUTCDay()}function xY(t,n,e,o,f,r,a){if(0<=t&&t<100){const u=new Date(Date.UTC(-1,n,e,o,f,r,a));return u.setUTCFullYear(e.y),u}return new Date(Date.UTC(t,n,e,o,f,r,a))}function FI(t,n,e,o,f){const r=n||1,a=Na(t),u=(v,y,x)=>(x=x||v,bY(e[x],o[x],v===a&&r,y)),c=new Date,i=ff(t),s=i[wl]?u(wl):$l(2012),l=i[jl]?u(jl):i[Pu]?u(Pu):Md,d=i[Gs]&&i[Il]?u(Il,1,Gs+Il):i[Gs]?u(Gs,1):i[Il]?u(Il,1):i[Du]?u(Du,1):i[Jf]?u(Jf,1):Um,h=i[Qu]?u(Qu):Md,m=i[ec]?u(ec):Md,g=i[vc]?u(vc):Md,p=i[hf]?u(hf):Md;return function(v){c.setTime(+v);const y=s(c);return f(y,l(c),d(c,y),h(c),m(c),g(c),p(c))}}function bY(t,n,e,o){const f=e<=1?t:o?(r,a)=>o+e*Math.floor((t(r,a)-o)/e):(r,a)=>e*Math.floor(t(r,a)/e);return n?(r,a)=>n(f(r,a),a):f}function um(t,n,e){return n+t*7-(e+6)%7}const _Y={[wl]:t=>t.getFullYear(),[Pu]:t=>Math.floor(t.getMonth()/3),[jl]:t=>t.getMonth(),[Du]:t=>t.getDate(),[Qu]:t=>t.getHours(),[ec]:t=>t.getMinutes(),[vc]:t=>t.getSeconds(),[hf]:t=>t.getMilliseconds(),[Jf]:t=>DI(t),[Gs]:t=>hk(t),[Gs+Il]:(t,n)=>um(hk(t),t.getDay(),dk(n)),[Il]:(t,n)=>um(1,t.getDay(),dk(n))},wY={[Pu]:t=>3*t,[Gs]:(t,n)=>um(t,0,dk(n))};function NI(t,n){return FI(t,n||1,_Y,wY,yY)}const kY={[wl]:t=>t.getUTCFullYear(),[Pu]:t=>Math.floor(t.getUTCMonth()/3),[jl]:t=>t.getUTCMonth(),[Du]:t=>t.getUTCDate(),[Qu]:t=>t.getUTCHours(),[ec]:t=>t.getUTCMinutes(),[vc]:t=>t.getUTCSeconds(),[hf]:t=>t.getUTCMilliseconds(),[Jf]:t=>RI(t),[Gs]:t=>pk(t),[Il]:(t,n)=>um(1,t.getUTCDay(),gk(n)),[Gs+Il]:(t,n)=>um(pk(t),t.getUTCDay(),gk(n))},TY={[Pu]:t=>3*t,[Gs]:(t,n)=>um(t,0,gk(n))};function BI(t,n){return FI(t,n||1,kY,TY,xY)}const AY={[wl]:Wd,[Pu]:m_.every(3),[jl]:m_,[Gs]:My,[Du]:Bd,[Il]:Bd,[Jf]:Bd,[Qu]:FA,[ec]:RA,[vc]:Cd,[hf]:IA},MY={[wl]:Yd,[Pu]:v_.every(3),[jl]:v_,[Gs]:Sy,[Du]:jd,[Il]:jd,[Jf]:jd,[Qu]:BA,[ec]:NA,[vc]:Cd,[hf]:IA};function $m(t){return AY[t]}function Gm(t){return MY[t]}function jI(t,n,e){return t?t.offset(n,e):void 0}function UI(t,n,e){return jI($m(t),n,e)}function VI(t,n,e){return jI(Gm(t),n,e)}function qI(t,n,e,o){return t?t.range(n,e,o):void 0}function HI(t,n,e,o){return qI($m(t),n,e,o)}function $I(t,n,e,o){return qI(Gm(t),n,e,o)}const av=1e3,ov=av*60,sv=ov*60,K2=sv*24,SY=K2*7,OC=K2*30,mk=K2*365,GI=[wl,jl,Du,Qu,ec,vc,hf],lv=GI.slice(0,-1),uv=lv.slice(0,-1),cv=uv.slice(0,-1),EY=cv.slice(0,-1),CY=[wl,Gs],LC=[wl,jl],WI=[wl],I1=[[lv,1,av],[lv,5,5*av],[lv,15,15*av],[lv,30,30*av],[uv,1,ov],[uv,5,5*ov],[uv,15,15*ov],[uv,30,30*ov],[cv,1,sv],[cv,3,3*sv],[cv,6,6*sv],[cv,12,12*sv],[EY,1,K2],[CY,1,SY],[LC,1,OC],[LC,3,3*OC],[WI,1,mk]];function YI(t){const n=t.extent,e=t.maxbins||40,o=Math.abs(Ay(n))/e;let f=V2(u=>u[2]).right(I1,o),r,a;return f===I1.length?(r=WI,a=b0(n[0]/mk,n[1]/mk,e)):f?(f=I1[o/I1[f-1][2]53)return null;"w"in H||(H.w=1),"Z"in H?(ee=D5(z1(H.y,0,1)),ie=ee.getUTCDay(),ee=ie>4||ie===0?fk.ceil(ee):fk(ee),ee=jd.offset(ee,(H.V-1)*7),H.y=ee.getUTCFullYear(),H.m=ee.getUTCMonth(),H.d=ee.getUTCDate()+(H.w+6)%7):(ee=P5(z1(H.y,0,1)),ie=ee.getDay(),ee=ie>4||ie===0?ck.ceil(ee):ck(ee),ee=Bd.offset(ee,(H.V-1)*7),H.y=ee.getFullYear(),H.m=ee.getMonth(),H.d=ee.getDate()+(H.w+6)%7)}else("W"in H||"U"in H)&&("w"in H||(H.w="u"in H?H.u%7:"W"in H?1:0),ie="Z"in H?D5(z1(H.y,0,1)).getUTCDay():P5(z1(H.y,0,1)).getDay(),H.m=0,H.d="W"in H?(H.w+6)%7+H.W*7-(ie+5)%7:H.w+H.U*7-(ie+6)%7);return"Z"in H?(H.H+=H.Z/100|0,H.M+=H.Z%100,D5(H)):P5(H)}}function _(q,$,ne,H){for(var Q=0,ee=$.length,ie=ne.length,ae,ue;Q=ie)return-1;if(ae=$.charCodeAt(Q++),ae===37){if(ae=$.charAt(Q++),ue=k[ae in PC?$.charAt(Q++):ae],!ue||(H=ue(q,ne,H))<0)return-1}else if(ae!=ne.charCodeAt(H++))return-1}return H}function M(q,$,ne){var H=i.exec($.slice(ne));return H?(q.p=s.get(H[0].toLowerCase()),ne+H[0].length):-1}function A(q,$,ne){var H=h.exec($.slice(ne));return H?(q.w=m.get(H[0].toLowerCase()),ne+H[0].length):-1}function S(q,$,ne){var H=l.exec($.slice(ne));return H?(q.w=d.get(H[0].toLowerCase()),ne+H[0].length):-1}function E(q,$,ne){var H=v.exec($.slice(ne));return H?(q.m=y.get(H[0].toLowerCase()),ne+H[0].length):-1}function D(q,$,ne){var H=g.exec($.slice(ne));return H?(q.m=p.get(H[0].toLowerCase()),ne+H[0].length):-1}function O(q,$,ne){return _(q,n,$,ne)}function R(q,$,ne){return _(q,e,$,ne)}function z(q,$,ne){return _(q,o,$,ne)}function L(q){return a[q.getDay()]}function P(q){return r[q.getDay()]}function N(q){return c[q.getMonth()]}function B(q){return u[q.getMonth()]}function G(q){return f[+(q.getHours()>=12)]}function W(q){return 1+~~(q.getMonth()/3)}function K(q){return a[q.getUTCDay()]}function te(q){return r[q.getUTCDay()]}function Y(q){return c[q.getUTCMonth()]}function Z(q){return u[q.getUTCMonth()]}function re(q){return f[+(q.getUTCHours()>=12)]}function U(q){return 1+~~(q.getUTCMonth()/3)}return{format:function(q){var $=b(q+="",x);return $.toString=function(){return q},$},parse:function(q){var $=T(q+="",!1);return $.toString=function(){return q},$},utcFormat:function(q){var $=b(q+="",w);return $.toString=function(){return q},$},utcParse:function(q){var $=T(q+="",!0);return $.toString=function(){return q},$}}}var PC={"-":"",_:" ","0":"0"},cl=/^\s*\d+/,OY=/^%/,LY=/[\\^$*+?|[\]().{}]/g;function Ya(t,n,e){var o=t<0?"-":"",f=(o?-t:t)+"",r=f.length;return o+(r[n.toLowerCase(),e]))}function DY(t,n,e){var o=cl.exec(n.slice(e,e+1));return o?(t.w=+o[0],e+o[0].length):-1}function IY(t,n,e){var o=cl.exec(n.slice(e,e+1));return o?(t.u=+o[0],e+o[0].length):-1}function zY(t,n,e){var o=cl.exec(n.slice(e,e+2));return o?(t.U=+o[0],e+o[0].length):-1}function RY(t,n,e){var o=cl.exec(n.slice(e,e+2));return o?(t.V=+o[0],e+o[0].length):-1}function FY(t,n,e){var o=cl.exec(n.slice(e,e+2));return o?(t.W=+o[0],e+o[0].length):-1}function DC(t,n,e){var o=cl.exec(n.slice(e,e+4));return o?(t.y=+o[0],e+o[0].length):-1}function IC(t,n,e){var o=cl.exec(n.slice(e,e+2));return o?(t.y=+o[0]+(+o[0]>68?1900:2e3),e+o[0].length):-1}function NY(t,n,e){var o=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(n.slice(e,e+6));return o?(t.Z=o[1]?0:-(o[2]+(o[3]||"00")),e+o[0].length):-1}function BY(t,n,e){var o=cl.exec(n.slice(e,e+1));return o?(t.q=o[0]*3-3,e+o[0].length):-1}function jY(t,n,e){var o=cl.exec(n.slice(e,e+2));return o?(t.m=o[0]-1,e+o[0].length):-1}function zC(t,n,e){var o=cl.exec(n.slice(e,e+2));return o?(t.d=+o[0],e+o[0].length):-1}function UY(t,n,e){var o=cl.exec(n.slice(e,e+3));return o?(t.m=0,t.d=+o[0],e+o[0].length):-1}function RC(t,n,e){var o=cl.exec(n.slice(e,e+2));return o?(t.H=+o[0],e+o[0].length):-1}function VY(t,n,e){var o=cl.exec(n.slice(e,e+2));return o?(t.M=+o[0],e+o[0].length):-1}function qY(t,n,e){var o=cl.exec(n.slice(e,e+2));return o?(t.S=+o[0],e+o[0].length):-1}function HY(t,n,e){var o=cl.exec(n.slice(e,e+3));return o?(t.L=+o[0],e+o[0].length):-1}function $Y(t,n,e){var o=cl.exec(n.slice(e,e+6));return o?(t.L=Math.floor(o[0]/1e3),e+o[0].length):-1}function GY(t,n,e){var o=OY.exec(n.slice(e,e+1));return o?e+o[0].length:-1}function WY(t,n,e){var o=cl.exec(n.slice(e));return o?(t.Q=+o[0],e+o[0].length):-1}function YY(t,n,e){var o=cl.exec(n.slice(e));return o?(t.s=+o[0],e+o[0].length):-1}function FC(t,n){return Ya(t.getDate(),n,2)}function XY(t,n){return Ya(t.getHours(),n,2)}function ZY(t,n){return Ya(t.getHours()%12||12,n,2)}function JY(t,n){return Ya(1+Bd.count(Wd(t),t),n,3)}function ZI(t,n){return Ya(t.getMilliseconds(),n,3)}function KY(t,n){return ZI(t,n)+"000"}function QY(t,n){return Ya(t.getMonth()+1,n,2)}function eX(t,n){return Ya(t.getMinutes(),n,2)}function tX(t,n){return Ya(t.getSeconds(),n,2)}function nX(t){var n=t.getDay();return n===0?7:n}function rX(t,n){return Ya(My.count(Wd(t)-1,t),n,2)}function JI(t){var n=t.getDay();return n>=4||n===0?Hv(t):Hv.ceil(t)}function iX(t,n){return t=JI(t),Ya(Hv.count(Wd(t),t)+(Wd(t).getDay()===4),n,2)}function aX(t){return t.getDay()}function oX(t,n){return Ya(ck.count(Wd(t)-1,t),n,2)}function sX(t,n){return Ya(t.getFullYear()%100,n,2)}function lX(t,n){return t=JI(t),Ya(t.getFullYear()%100,n,2)}function uX(t,n){return Ya(t.getFullYear()%1e4,n,4)}function cX(t,n){var e=t.getDay();return t=e>=4||e===0?Hv(t):Hv.ceil(t),Ya(t.getFullYear()%1e4,n,4)}function fX(t){var n=t.getTimezoneOffset();return(n>0?"-":(n*=-1,"+"))+Ya(n/60|0,"0",2)+Ya(n%60,"0",2)}function NC(t,n){return Ya(t.getUTCDate(),n,2)}function hX(t,n){return Ya(t.getUTCHours(),n,2)}function dX(t,n){return Ya(t.getUTCHours()%12||12,n,2)}function pX(t,n){return Ya(1+jd.count(Yd(t),t),n,3)}function KI(t,n){return Ya(t.getUTCMilliseconds(),n,3)}function gX(t,n){return KI(t,n)+"000"}function mX(t,n){return Ya(t.getUTCMonth()+1,n,2)}function vX(t,n){return Ya(t.getUTCMinutes(),n,2)}function yX(t,n){return Ya(t.getUTCSeconds(),n,2)}function xX(t){var n=t.getUTCDay();return n===0?7:n}function bX(t,n){return Ya(Sy.count(Yd(t)-1,t),n,2)}function QI(t){var n=t.getUTCDay();return n>=4||n===0?$v(t):$v.ceil(t)}function _X(t,n){return t=QI(t),Ya($v.count(Yd(t),t)+(Yd(t).getUTCDay()===4),n,2)}function wX(t){return t.getUTCDay()}function kX(t,n){return Ya(fk.count(Yd(t)-1,t),n,2)}function TX(t,n){return Ya(t.getUTCFullYear()%100,n,2)}function AX(t,n){return t=QI(t),Ya(t.getUTCFullYear()%100,n,2)}function MX(t,n){return Ya(t.getUTCFullYear()%1e4,n,4)}function SX(t,n){var e=t.getUTCDay();return t=e>=4||e===0?$v(t):$v.ceil(t),Ya(t.getUTCFullYear()%1e4,n,4)}function EX(){return"+0000"}function BC(){return"%"}function jC(t){return+t}function UC(t){return Math.floor(+t/1e3)}var Og,qA,ez,HA,tz;CX({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function CX(t){return Og=XI(t),qA=Og.format,ez=Og.parse,HA=Og.utcFormat,tz=Og.utcParse,Og}function fv(t){const n={};return e=>n[e]||(n[e]=t(e))}function OX(t,n){return e=>{const o=t(e),f=o.indexOf(n);if(f<0)return o;let r=LX(o,f);const a=rf;)if(o[r]!=="0"){++r;break}return o.slice(0,r)+a}}function LX(t,n){let e=t.lastIndexOf("e"),o;if(e>0)return e;for(e=t.length;--e>n;)if(o=t.charCodeAt(e),o>=48&&o<=57)return e+1}function nz(t){const n=fv(t.format),e=t.formatPrefix;return{format:n,formatPrefix:e,formatFloat(o){const f=K4(o||",");if(f.precision==null){switch(f.precision=12,f.type){case"%":f.precision-=2;break;case"e":f.precision-=1;break}return OX(n(f),n(".1f")(1)[1])}else return n(f)},formatSpan(o,f,r,a){a=K4(a??",f");const u=b0(o,f,r),c=Math.max(Math.abs(o),Math.abs(f));let i;if(a.precision==null)switch(a.type){case"s":return isNaN(i=HG(u,c))||(a.precision=i),e(a,c);case"":case"e":case"g":case"p":case"r":{isNaN(i=qG(u,c))||(a.precision=i-(a.type==="e"));break}case"f":case"%":{isNaN(i=VG(u))||(a.precision=i-(a.type==="%")*2);break}}return n(a)}}}let vk;rz();function rz(){return vk=nz({format:ND,formatPrefix:$G})}function iz(t){return nz(GG(t))}function y_(t){return arguments.length?vk=iz(t):vk}function VC(t,n,e){e=e||{},Ei(e)||Pr("Invalid time multi-format specifier: ".concat(e));const o=n(vc),f=n(ec),r=n(Qu),a=n(Du),u=n(Gs),c=n(jl),i=n(Pu),s=n(wl),l=t(e[hf]||".%L"),d=t(e[vc]||":%S"),h=t(e[ec]||"%I:%M"),m=t(e[Qu]||"%I %p"),g=t(e[Du]||e[Il]||"%a %d"),p=t(e[Gs]||"%b %d"),v=t(e[jl]||"%B"),y=t(e[Pu]||"%B"),x=t(e[wl]||"%Y");return w=>(o(w)bi(o)?n(o):VC(n,$m,o),utcFormat:o=>bi(o)?e(o):VC(e,Gm,o),timeParse:fv(t.parse),utcParse:fv(t.utcParse)}}let yk;oz();function oz(){return yk=az({format:qA,parse:ez,utcFormat:HA,utcParse:tz})}function sz(t){return az(XI(t))}function Gv(t){return arguments.length?yk=sz(t):yk}const xk=(t,n)=>pa({},t,n);function lz(t,n){const e=t?iz(t):y_(),o=n?sz(n):Gv();return xk(e,o)}function $A(t,n){const e=arguments.length;return e&&e!==2&&Pr("defaultLocale expects either zero or two arguments."),e?xk(y_(t),Gv(n)):xk(y_(),Gv())}function PX(){return rz(),oz(),$A()}const DX=/^(data:|([A-Za-z]+:)?\/\/)/,IX=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,zX=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,qC="file://";function RX(t,n){return e=>({options:e||{},sanitize:NX,load:FX,fileAccess:!!n,file:BX(n),http:UX(t)})}async function FX(t,n){const e=await this.sanitize(t,n),o=e.href;return e.localFile?this.file(o):this.http(o,n)}async function NX(t,n){n=pa({},this.options,n);const e=this.fileAccess,o={href:null};let f,r,a;const u=IX.test(t.replace(zX,""));(t==null||typeof t!="string"||!u)&&Pr("Sanitize failure, invalid URI: "+oi(t));const c=DX.test(t);return(a=n.baseURL)&&!c&&(!t.startsWith("/")&&!a.endsWith("/")&&(t="/"+t),t=a+t),r=(f=t.startsWith(qC))||n.mode==="file"||n.mode!=="http"&&!c&&e,f?t=t.slice(qC.length):t.startsWith("//")&&(n.defaultProtocol==="file"?(t=t.slice(2),r=!0):t=(n.defaultProtocol||"http")+":"+t),Object.defineProperty(o,"localFile",{value:!!r}),o.href=t,n.target&&(o.target=n.target+""),n.rel&&(o.rel=n.rel+""),n.context==="image"&&n.crossOrigin&&(o.crossOrigin=n.crossOrigin+""),o}function BX(t){return t?n=>new Promise((e,o)=>{t.readFile(n,(f,r)=>{f?o(f):e(r)})}):jX}async function jX(){Pr("No file system access.")}function UX(t){return t?async function(n,e){const o=pa({},this.options.http,e),f=e&&e.response,r=await t(n,o);return r.ok?ga(r[f])?r[f]():r.text():Pr(r.status+""+r.statusText)}:VX}async function VX(){Pr("No HTTP fetch method available.")}const qX=t=>t!=null&&t===t,HX=t=>t==="true"||t==="false"||t===!0||t===!1,$X=t=>!Number.isNaN(Date.parse(t)),uz=t=>!Number.isNaN(+t)&&!(t instanceof Date),GX=t=>uz(t)&&Number.isInteger(+t),bk={boolean:LA,integer:Rl,number:Rl,date:PA,string:DA,unknown:Hl},Qx=[HX,GX,uz,$X],WX=["boolean","integer","number","date"];function cz(t,n){if(!t||!t.length)return"unknown";const e=t.length,o=Qx.length,f=Qx.map((r,a)=>a+1);for(let r=0,a=0,u,c;rr===0?a:r,0)-1]}function fz(t,n){return n.reduce((e,o)=>(e[o]=cz(t,o),e),{})}function HC(t){const n=function(e,o){const f={delimiter:t};return GA(e,o?pa(o,f):f)};return n.responseType="text",n}function GA(t,n){return n.header&&(t=n.header.map(oi).join(n.delimiter)+` +`+t),cW(n.delimiter).parse(t+"")}GA.responseType="text";function YX(t){return typeof Buffer=="function"&&ga(Buffer.isBuffer)?Buffer.isBuffer(t):!1}function WA(t,n){const e=n&&n.property?Lu(n.property):Hl;return Ei(t)&&!YX(t)?XX(e(t),n):e(JSON.parse(t))}WA.responseType="json";function XX(t,n){return!Ir(t)&&cI(t)&&(t=[...t]),n&&n.copy?JSON.parse(JSON.stringify(t)):t}const ZX={interior:(t,n)=>t!==n,exterior:(t,n)=>t===n};function hz(t,n){let e,o,f,r;return t=WA(t,n),n&&n.feature?(e=HW,f=n.feature):n&&n.mesh?(e=GW,f=n.mesh,r=ZX[n.filter]):Pr("Missing TopoJSON feature or mesh parameter."),o=(o=t.objects[f])?e(t,o,r):Pr("Invalid TopoJSON object: "+f),o&&o.features||[o]}hz.responseType="json";const Bb={dsv:GA,csv:HC(","),tsv:HC(" "),json:WA,topojson:hz};function YA(t,n){return arguments.length>1?(Bb[t]=n,this):qi(Bb,t)?Bb[t]:null}function dz(t){const n=YA(t);return n&&n.responseType||"text"}function pz(t,n,e,o){n=n||{};const f=YA(n.type||"json");return f||Pr("Unknown data format type: "+n.type),t=f(t,n),n.parse&&JX(t,n.parse,e,o),qi(t,"columns")&&delete t.columns,t}function JX(t,n,e,o){if(!t.length)return;const f=Gv();e=e||f.timeParse,o=o||f.utcParse;let r=t.columns||Object.keys(t[0]),a,u,c,i,s,l;n==="auto"&&(n=fz(t,r)),r=Object.keys(n);const d=r.map(h=>{const m=n[h];let g,p;if(m&&(m.startsWith("date:")||m.startsWith("utc:")))return g=m.split(/:(.+)?/,2),p=g[1],(p[0]==="'"&&p[p.length-1]==="'"||p[0]==='"'&&p[p.length-1]==='"')&&(p=p.slice(1,-1)),(g[0]==="utc"?o:e)(p);if(!bk[m])throw Error("Illegal format pattern: "+h+":"+m);return bk[m]});for(c=0,s=t.length,l=r.length;c{const r=n(f);return o[r]||(o[r]=1,e.push(f)),e},e.remove=f=>{const r=n(f);if(o[r]){o[r]=0;const a=e.indexOf(f);a>=0&&e.splice(a,1)}return e},e}async function jb(t,n){try{await n(t)}catch(e){t.error(e)}}const gz=Symbol("vega_id");let KX=1;function tw(t){return!!(t&&$i(t))}function $i(t){return t[gz]}function mz(t,n){return t[gz]=n,t}function ro(t){const n=t===Object(t)?t:{data:t};return $i(n)?n:mz(n,KX++)}function XA(t){return nw(t,ro({}))}function nw(t,n){for(const e in t)n[e]=t[e];return n}function vz(t,n){return mz(n,$i(t))}function H0(t,n){return t?n?(e,o)=>t(e,o)||$i(n(e))-$i(n(o)):(e,o)=>t(e,o)||$i(e)-$i(o):null}function yz(t){return t&&t.constructor===$0}function $0(){const t=[],n=[],e=[],o=[],f=[];let r=null,a=!1;return{constructor:$0,insert(u){const c=ki(u),i=c.length;for(let s=0;s{m(y)&&(i[$i(y)]=-1)});for(l=0,d=t.length;l0&&(v(g,m,h.value),u.modifies(m));for(l=0,d=f.length;l{m(y)&&i[$i(y)]>0&&v(y,h.field,h.value)}),u.modifies(h.field);if(a)u.mod=n.length||o.length?c.filter(y=>i[$i(y)]>0):c.slice();else for(p in s)u.mod.push(s[p]);return(r||r==null&&(n.length||o.length))&&u.clean(!0),u}}}const Ub="_:mod:_";function rw(){Object.defineProperty(this,Ub,{writable:!0,value:{}})}rw.prototype={set(t,n,e,o){const f=this,r=f[t],a=f[Ub];return n!=null&&n>=0?(r[n]!==e||o)&&(r[n]=e,a[n+":"+t]=-1,a[t]=-1):(r!==e||o)&&(f[t]=e,a[t]=Ir(e)?1+e.length:-1),f},modified(t,n){const e=this[Ub];if(arguments.length){if(Ir(t)){for(let o=0;o=0?n+1{h instanceof Co?(h!==this&&(n&&h.targets().add(this),r.push(h)),f.push({op:h,name:l,index:d})):o.set(l,d,h)};for(a in t)if(u=t[a],a===eZ)ki(u).forEach(l=>{l instanceof Co?l!==this&&(l.targets().add(this),r.push(l)):Pr("Pulse parameters must be operator instances.")}),this.source=u;else if(Ir(u))for(o.set(a,-1,Array(c=u.length)),i=0;i{const e=Date.now();return e-n>t?(n=e,1):0})},debounce(t){const n=xd();return this.targets().add(xd(null,null,CA(t,e=>{const o=e.dataflow;n.receive(e),o&&o.run&&o.run()}))),n},between(t,n){let e=!1;return t.targets().add(xd(null,null,()=>e=!0)),n.targets().add(xd(null,null,()=>e=!1)),this.filter(()=>e)},detach(){this._filter=mc,this._targets=null}};function sZ(t,n,e,o){const f=this,r=xd(e,o),a=function(i){i.dataflow=f;try{r.receive(i)}catch(s){f.error(s)}finally{f.run()}};let u;typeof t=="string"&&typeof document<"u"?u=document.querySelectorAll(t):u=ki(t);const c=u.length;for(let i=0;in=o);return e.requests=0,e.done=()=>{--e.requests===0&&(t._pending=null,n(t))},t._pending=e}const dZ={skip:!0};function pZ(t,n,e,o,f){return(t instanceof Co?mZ:gZ)(this,t,n,e,o,f),this}function gZ(t,n,e,o,f,r){const a=pa({},r,dZ);let u,c;ga(e)||(e=$l(e)),o===void 0?u=i=>t.touch(e(i)):ga(o)?(c=new Co(null,o,f,!1),u=i=>{c.evaluate(i);const s=e(i),l=c.value;yz(l)?t.pulse(s,l,r):t.update(s,l,a)}):u=i=>t.update(e(i),o,a),n.apply(u)}function mZ(t,n,e,o,f,r){if(o===void 0)n.targets().add(e);else{const a=r||{},u=new Co(null,vZ(e,o),f,!1);u.modified(a.force),u.rank=n.rank,n.targets().add(u),e&&(u.skip(!0),u.value=e.value,u.targets().add(e),t.connect(e,[u]))}}function vZ(t,n){return n=ga(n)?n:$l(n),t?function(e,o){const f=n(e,o);return t.skip()||(t.skip(f!==this.value).value=f),f}:n}function yZ(t){t.rank=++this._rank}function xZ(t){const n=[t];let e,o,f;for(;n.length;)if(this.rank(e=n.pop()),o=e._targets)for(f=o.length;--f>=0;)n.push(e=o[f]),e===t&&Pr("Cycle detected in dataflow graph.")}const x_={},Df=1<<0,wd=1<<1,Eh=1<<2,bZ=Df|wd,GC=Df|Eh,Lg=Df|wd|Eh,WC=1<<3,N1=1<<4,YC=1<<5,XC=1<<6;function Ud(t,n,e){this.dataflow=t,this.stamp=n??-1,this.add=[],this.rem=[],this.mod=[],this.fields=null,this.encode=e||null}function I5(t,n){const e=[];return _d(t,n,o=>e.push(o)),e}function ZC(t,n){const e={};return t.visit(n,o=>{e[$i(o)]=1}),o=>e[$i(o)]?null:o}function eb(t,n){return t?(e,o)=>t(e,o)&&n(e,o):n}Ud.prototype={StopPropagation:x_,ADD:Df,REM:wd,MOD:Eh,ADD_REM:bZ,ADD_MOD:GC,ALL:Lg,REFLOW:WC,SOURCE:N1,NO_SOURCE:YC,NO_FIELDS:XC,fork(t){return new Ud(this.dataflow).init(this,t)},clone(){const t=this.fork(Lg);return t.add=t.add.slice(),t.rem=t.rem.slice(),t.mod=t.mod.slice(),t.source&&(t.source=t.source.slice()),t.materialize(Lg|N1)},addAll(){let t=this;return!t.source||t.add===t.rem||!t.rem.length&&t.source.length===t.add.length||(t=new Ud(this.dataflow).init(this),t.add=t.source,t.rem=[]),t},init(t,n){const e=this;return e.stamp=t.stamp,e.encode=t.encode,t.fields&&!(n&XC)&&(e.fields=t.fields),n&Df?(e.addF=t.addF,e.add=t.add):(e.addF=null,e.add=[]),n&wd?(e.remF=t.remF,e.rem=t.rem):(e.remF=null,e.rem=[]),n&Eh?(e.modF=t.modF,e.mod=t.mod):(e.modF=null,e.mod=[]),n&YC?(e.srcF=null,e.source=null):(e.srcF=t.srcF,e.source=t.source,t.cleans&&(e.cleans=t.cleans)),e},runAfter(t){this.dataflow.runAfter(t)},changed(t){const n=t||Lg;return n&Df&&this.add.length||n&wd&&this.rem.length||n&Eh&&this.mod.length},reflow(t){if(t)return this.fork(Lg).reflow();const n=this.add.length,e=this.source&&this.source.length;return e&&e!==n&&(this.mod=this.source,n&&this.filter(Eh,ZC(this,Df))),this},clean(t){return arguments.length?(this.cleans=!!t,this):this.cleans},modifies(t){const n=this.fields||(this.fields={});return Ir(t)?t.forEach(e=>n[e]=!0):n[t]=!0,this},modified(t,n){const e=this.fields;return(n||this.mod.length)&&e?arguments.length?Ir(t)?t.some(o=>e[o]):e[t]:!!e:!1},filter(t,n){const e=this;return t&Df&&(e.addF=eb(e.addF,n)),t&wd&&(e.remF=eb(e.remF,n)),t&Eh&&(e.modF=eb(e.modF,n)),t&N1&&(e.srcF=eb(e.srcF,n)),e},materialize(t){t=t||Lg;const n=this;return t&Df&&n.addF&&(n.add=I5(n.add,n.addF),n.addF=null),t&wd&&n.remF&&(n.rem=I5(n.rem,n.remF),n.remF=null),t&Eh&&n.modF&&(n.mod=I5(n.mod,n.modF),n.modF=null),t&N1&&n.srcF&&(n.source=n.source.filter(n.srcF),n.srcF=null),n},visit(t,n){const e=this,o=n;if(t&N1)return _d(e.source,e.srcF,o),e;t&Df&&_d(e.add,e.addF,o),t&wd&&_d(e.rem,e.remF,o),t&Eh&&_d(e.mod,e.modF,o);const f=e.source;if(t&WC&&f){const r=e.add.length+e.mod.length;r===f.length||(r?_d(f,ZC(e,GC),o):_d(f,e.srcF,o))}return e}};function ZA(t,n,e,o){const f=this,r=e.length;let a=0;this.dataflow=t,this.stamp=n,this.fields=null,this.encode=o||null,this.pulses=e;for(let u=0;un.add.push(e)),t&n.REM&&this.visit(n.REM,e=>n.rem.push(e)),t&n.MOD&&this.visit(n.MOD,e=>n.mod.push(e))),n},changed(t){return this.changes&t},modified(t){const n=this,e=n.fields;return e&&n.changes&n.MOD?Ir(t)?t.some(o=>e[o]):e[t]:0},filter(){Pr("MultiPulse does not support filtering.")},materialize(){Pr("MultiPulse does not support materialization.")},visit(t,n){const e=this,o=e.pulses,f=o.length;let r=0;if(t&e.SOURCE)for(;ro._enqueue(s,!0)),o._touched=ew(Ty);let a=0,u,c,i;try{for(;o._heap.size()>0;){if(u=o._heap.pop(),u.rank!==u.qrank){o._enqueue(u,!0);continue}c=u.run(o._getPulse(u,t)),c.then?c=await c:c.async&&(f.push(c.async),c=x_),c!==x_&&u._targets&&u._targets.forEach(s=>o._enqueue(s)),++a}}catch(s){o._heap.clear(),i=s}if(o._input={},o._pulse=null,o.debug(`Pulse ${r}: ${a} operators`),i&&(o._postrun=[],o.error(i)),o._postrun.length){const s=o._postrun.sort((l,d)=>d.priority-l.priority);o._postrun=[];for(let l=0;lo.runAsync(null,()=>{s.forEach(l=>{try{l(o)}catch(d){o.error(d)}})})),o}async function wZ(t,n,e){for(;this._running;)await this._running;const o=()=>this._running=null;return(this._running=this.evaluate(t,n,e)).then(o,o),this._running}function kZ(t,n,e){return this._pulse?xz(this):(this.evaluate(t,n,e),this)}function TZ(t,n,e){if(this._pulse||n)this._postrun.push({priority:e||0,callback:t});else try{t(this)}catch(o){this.error(o)}}function xz(t){return t.error("Dataflow already running. Use runAsync() to chain invocations."),t}function AZ(t,n){const e=t.stampf.pulse),n):this._input[t.id]||SZ(this._pulse,e&&e.pulse)}function SZ(t,n){return n&&n.stamp===t.stamp?n:(t=t.fork(),n&&n!==x_&&(t.source=n.source),t)}const JA={skip:!1,force:!1};function EZ(t,n){const e=n||JA;return this._pulse?this._enqueue(t):this._touched.add(t),e.skip&&t.skip(!0),this}function CZ(t,n,e){const o=e||JA;return(t.set(n)||o.force)&&this.touch(t,o),this}function OZ(t,n,e){this.touch(t,e||JA);const o=new Ud(this,this._clock+(this._pulse?0:1)),f=t.pulse&&t.pulse.source||[];return o.target=t,this._input[t.id]=n.pulse(o,f),this}function LZ(t){let n=[];return{clear:()=>n=[],size:()=>n.length,peek:()=>n[0],push:e=>(n.push(e),bz(n,0,n.length-1,t)),pop:()=>{const e=n.pop();let o;return n.length?(o=n[0],n[0]=e,PZ(n,0,t)):o=e,o}}}function bz(t,n,e,o){let f,r;const a=t[e];for(;e>n;){if(r=e-1>>1,f=t[r],o(a,f)<0){t[e]=f,e=r;continue}break}return t[e]=a}function PZ(t,n,e){const o=n,f=t.length,r=t[n];let a=(n<<1)+1,u;for(;a=0&&(a=u),t[n]=t[a],n=a,a=(n<<1)+1;return t[n]=r,bz(t,o,n,e)}function Qg(){this.logger(TA()),this.logLevel(wA),this._clock=0,this._rank=0,this._locale=$A();try{this._loader=Q2()}catch{}this._touched=ew(Ty),this._input={},this._pulse=null,this._heap=LZ((t,n)=>t.qrank-n.qrank),this._postrun=[]}function B1(t){return function(){return this._log[t].apply(this,arguments)}}Qg.prototype={stamp(){return this._clock},loader(t){return arguments.length?(this._loader=t,this):this._loader},locale(t){return arguments.length?(this._locale=t,this):this._locale},logger(t){return arguments.length?(this._log=t,this):this._log},error:B1("error"),warn:B1("warn"),info:B1("info"),debug:B1("debug"),logLevel:B1("level"),cleanThreshold:1e4,add:iZ,connect:aZ,rank:yZ,rerank:xZ,pulse:OZ,touch:EZ,update:CZ,changeset:$0,ingest:uZ,parse:lZ,preload:fZ,request:cZ,events:sZ,on:pZ,evaluate:_Z,run:kZ,runAsync:wZ,runAfter:TZ,_enqueue:AZ,_getPulse:MZ};function _r(t,n){Co.call(this,t,null,n)}ni(_r,Co,{run(t){if(t.stampthis.pulse=e):n!==t.StopPropagation&&(this.pulse=n),n},evaluate(t){const n=this.marshall(t.stamp),e=this.transform(n,t);return n.clear(),e},transform(){}});const cm={};function _z(t){const n=wz(t);return n&&n.Definition||null}function wz(t){return t=t&&t.toLowerCase(),qi(cm,t)?cm[t]:null}function*kz(t,n){if(n==null)for(let e of t)e!=null&&e!==""&&(e=+e)>=e&&(yield e);else{let e=-1;for(let o of t)o=n(o,++e,t),o!=null&&o!==""&&(o=+o)>=o&&(yield o)}}function KA(t,n,e){const o=Float64Array.from(kz(t,e));return o.sort(Vv),n.map(f=>kI(o,f))}function QA(t,n){return KA(t,[.25,.5,.75],n)}function e6(t,n){const e=t.length,o=ZW(t,n),f=QA(t,n),r=(f[2]-f[0])/1.34,a=Math.min(o,r)||o||Math.abs(f[0])||1;return 1.06*a*Math.pow(e,-.2)}function Tz(t){const n=t.maxbins||20,e=t.base||10,o=Math.log(e),f=t.divide||[5,2];let r=t.extent[0],a=t.extent[1],u,c,i,s,l,d;const h=t.span||a-r||Math.abs(r)||1;if(t.step)u=t.step;else if(t.steps){for(s=h/n,l=0,d=t.steps.length;ln;)u*=e;for(l=0,d=f.length;l=i&&h/s<=n&&(u=s)}s=Math.log(u);const m=s>=0?0:~~(-s/o)+1,g=Math.pow(e,-m-1);return(t.nice||t.nice===void 0)&&(s=Math.floor(r/u+g)*u,r=rd);const f=t.length,r=new Float64Array(f);let a=0,u=1,c=o(t[0]),i=c,s=c+n,l;for(;u=s){for(i=(c+i)/2;a>1);af;)t[a--]=t[o]}o=f,f=r}return t}function zZ(t){return function(){return t=(1103515245*t+12345)%2147483647,t/2147483647}}function RZ(t,n){n==null&&(n=t,t=0);let e,o,f;const r={min(a){return arguments.length?(e=a||0,f=o-e,r):e},max(a){return arguments.length?(o=a||0,f=o-e,r):o},sample(){return e+Math.floor(f*yc())},pdf(a){return a===Math.floor(a)&&a>=e&&a=o?1:(u-e+1)/f},icdf(a){return a>=0&&a<=1?e-1+Math.floor(a*f):NaN}};return r.min(t).max(n)}const Sz=Math.sqrt(2*Math.PI),FZ=Math.SQRT2;let j1=NaN;function aw(t,n){t=t||0,n=n??1;let e=0,o=0,f,r;if(j1===j1)e=j1,j1=NaN;else{do e=yc()*2-1,o=yc()*2-1,f=e*e+o*o;while(f===0||f>1);r=Math.sqrt(-2*Math.log(f)/f),e*=r,j1=o*r}return t+e*n}function t6(t,n,e){e=e??1;const o=(t-(n||0))/e;return Math.exp(-.5*o*o)/(e*Sz)}function ow(t,n,e){n=n||0,e=e??1;const o=(t-n)/e,f=Math.abs(o);let r;if(f>37)r=0;else{const a=Math.exp(-f*f/2);let u;f<7.07106781186547?(u=.0352624965998911*f+.700383064443688,u=u*f+6.37396220353165,u=u*f+33.912866078383,u=u*f+112.079291497871,u=u*f+221.213596169931,u=u*f+220.206867912376,r=a*u,u=.0883883476483184*f+1.75566716318264,u=u*f+16.064177579207,u=u*f+86.7807322029461,u=u*f+296.564248779674,u=u*f+637.333633378831,u=u*f+793.826512519948,u=u*f+440.413735824752,r=r/u):(u=f+.65,u=f+4/u,u=f+3/u,u=f+2/u,u=f+1/u,r=a/u/2.506628274631)}return o>0?1-r:r}function sw(t,n,e){return t<0||t>1?NaN:(n||0)+(e??1)*FZ*NZ(2*t-1)}function NZ(t){let n=-Math.log((1-t)*(1+t)),e;return n<6.25?(n-=3.125,e=-364441206401782e-35,e=-16850591381820166e-35+e*n,e=128584807152564e-32+e*n,e=11157877678025181e-33+e*n,e=-1333171662854621e-31+e*n,e=20972767875968562e-33+e*n,e=6637638134358324e-30+e*n,e=-4054566272975207e-29+e*n,e=-8151934197605472e-29+e*n,e=26335093153082323e-28+e*n,e=-12975133253453532e-27+e*n,e=-5415412054294628e-26+e*n,e=10512122733215323e-25+e*n,e=-4112633980346984e-24+e*n,e=-29070369957882005e-24+e*n,e=42347877827932404e-23+e*n,e=-13654692000834679e-22+e*n,e=-13882523362786469e-21+e*n,e=.00018673420803405714+e*n,e=-.000740702534166267+e*n,e=-.006033670871430149+e*n,e=.24015818242558962+e*n,e=1.6536545626831027+e*n):n<16?(n=Math.sqrt(n)-3.25,e=22137376921775787e-25,e=9075656193888539e-23+e*n,e=-27517406297064545e-23+e*n,e=18239629214389228e-24+e*n,e=15027403968909828e-22+e*n,e=-4013867526981546e-21+e*n,e=29234449089955446e-22+e*n,e=12475304481671779e-21+e*n,e=-47318229009055734e-21+e*n,e=6828485145957318e-20+e*n,e=24031110387097894e-21+e*n,e=-.0003550375203628475+e*n,e=.0009532893797373805+e*n,e=-.0016882755560235047+e*n,e=.002491442096107851+e*n,e=-.003751208507569241+e*n,e=.005370914553590064+e*n,e=1.0052589676941592+e*n,e=3.0838856104922208+e*n):Number.isFinite(n)?(n=Math.sqrt(n)-5,e=-27109920616438573e-27,e=-2555641816996525e-25+e*n,e=15076572693500548e-25+e*n,e=-3789465440126737e-24+e*n,e=761570120807834e-23+e*n,e=-1496002662714924e-23+e*n,e=2914795345090108e-23+e*n,e=-6771199775845234e-23+e*n,e=22900482228026655e-23+e*n,e=-99298272942317e-20+e*n,e=4526062597223154e-21+e*n,e=-1968177810553167e-20+e*n,e=7599527703001776e-20+e*n,e=-.00021503011930044477+e*n,e=-.00013871931833623122+e*n,e=1.0103004648645344+e*n,e=4.849906401408584+e*n):e=1/0,e*t}function n6(t,n){let e,o;const f={mean(r){return arguments.length?(e=r||0,f):e},stdev(r){return arguments.length?(o=r??1,f):o},sample:()=>aw(e,o),pdf:r=>t6(r,e,o),cdf:r=>ow(r,e,o),icdf:r=>sw(r,e,o)};return f.mean(t).stdev(n)}function r6(t,n){const e=n6();let o=0;const f={data(r){return arguments.length?(t=r,o=r?r.length:0,f.bandwidth(n)):t},bandwidth(r){return arguments.length?(n=r,!n&&t&&(n=e6(t)),f):n},sample(){return t[~~(yc()*o)]+n*e.sample()},pdf(r){let a=0,u=0;for(;ui6(e,o),pdf:r=>a6(r,e,o),cdf:r=>o6(r,e,o),icdf:r=>s6(r,e,o)};return f.mean(t).stdev(n)}function Cz(t,n){let e=0,o;function f(a){const u=[];let c=0,i;for(i=0;i=n&&t<=e?1/(e-n):0}function c6(t,n,e){return e==null&&(e=n??1,n=0),te?1:(t-n)/(e-n)}function f6(t,n,e){return e==null&&(e=n??1,n=0),t>=0&&t<=1?n+t*(e-n):NaN}function Oz(t,n){let e,o;const f={min(r){return arguments.length?(e=r||0,f):e},max(r){return arguments.length?(o=r??1,f):o},sample:()=>l6(e,o),pdf:r=>u6(r,e,o),cdf:r=>c6(r,e,o),icdf:r=>f6(r,e,o)};return n==null&&(n=t??1,t=0),f.min(t).max(n)}function Ey(t,n,e,o){const f=o-t*t,r=Math.abs(f)<1e-24?0:(e-t*n)/f;return[n-r*t,r]}function lw(t,n,e,o){t=t.filter(h=>{let m=n(h),g=e(h);return m!=null&&(m=+m)>=m&&g!=null&&(g=+g)>=g}),o&&t.sort((h,m)=>n(h)-n(m));const f=t.length,r=new Float64Array(f),a=new Float64Array(f);let u=0,c=0,i=0,s,l,d;for(d of t)r[u]=s=+n(d),a[u]=l=+e(d),++u,c+=(s-c)/u,i+=(l-i)/u;for(u=0;u=r&&a!=null&&(a=+a)>=a&&o(r,a,++f)}function Wm(t,n,e,o,f){let r=0,a=0;return Cy(t,n,e,(u,c)=>{const i=c-f(u),s=c-o;r+=i*i,a+=s*s}),1-r/a}function h6(t,n,e){let o=0,f=0,r=0,a=0,u=0;Cy(t,n,e,(s,l)=>{++u,o+=(s-o)/u,f+=(l-f)/u,r+=(s*l-r)/u,a+=(s*s-a)/u});const c=Ey(o,f,r,a),i=s=>c[0]+c[1]*s;return{coef:c,predict:i,rSquared:Wm(t,n,e,f,i)}}function Lz(t,n,e){let o=0,f=0,r=0,a=0,u=0;Cy(t,n,e,(s,l)=>{++u,s=Math.log(s),o+=(s-o)/u,f+=(l-f)/u,r+=(s*l-r)/u,a+=(s*s-a)/u});const c=Ey(o,f,r,a),i=s=>c[0]+c[1]*Math.log(s);return{coef:c,predict:i,rSquared:Wm(t,n,e,f,i)}}function Pz(t,n,e){const[o,f,r,a]=lw(t,n,e);let u=0,c=0,i=0,s=0,l=0,d,h,m;Cy(t,n,e,(y,x)=>{d=o[l++],h=Math.log(x),m=d*x,u+=(x*h-u)/l,c+=(m-c)/l,i+=(m*h-i)/l,s+=(d*m-s)/l});const[g,p]=Ey(c/a,u/a,i/a,s/a),v=y=>Math.exp(g+p*(y-r));return{coef:[Math.exp(g-p*r),p],predict:v,rSquared:Wm(t,n,e,a,v)}}function Dz(t,n,e){let o=0,f=0,r=0,a=0,u=0,c=0;Cy(t,n,e,(l,d)=>{const h=Math.log(l),m=Math.log(d);++c,o+=(h-o)/c,f+=(m-f)/c,r+=(h*m-r)/c,a+=(h*h-a)/c,u+=(d-u)/c});const i=Ey(o,f,r,a),s=l=>i[0]*Math.pow(l,i[1]);return i[0]=Math.exp(i[0]),{coef:i,predict:s,rSquared:Wm(t,n,e,u,s)}}function d6(t,n,e){const[o,f,r,a]=lw(t,n,e),u=o.length;let c=0,i=0,s=0,l=0,d=0,h,m,g,p;for(h=0;h(T=T-r,x*T*T+w*T+k+a);return{coef:[k-w*r+x*r*r+a,w-2*x*r,x],predict:b,rSquared:Wm(t,n,e,a,b)}}function Iz(t,n,e,o){if(o===1)return h6(t,n,e);if(o===2)return d6(t,n,e);const[f,r,a,u]=lw(t,n,e),c=f.length,i=[],s=[],l=o+1;let d,h,m,g,p;for(d=0;d{x-=a;let w=u+v[0]+v[1]*x+v[2]*x*x;for(d=3;d=0;--r)for(u=n[r],c=1,f[r]+=u,a=1;a<=r;++a)c*=(r+1-a)/a,f[r-a]+=u*Math.pow(e,a)*c;return f[0]+=o,f}function jZ(t){const n=t.length-1,e=[];let o,f,r,a,u;for(o=0;oMath.abs(t[o][a])&&(a=f);for(r=o;r=o;r--)t[r][f]-=t[r][o]*t[o][f]/t[o][o]}for(f=n-1;f>=0;--f){for(u=0,r=f+1;rf[x]-v?y:x;let k=0,b=0,T=0,_=0,M=0;const A=1/Math.abs(f[w]-v||1);for(let D=y;D<=x;++D){const O=f[D],R=r[D],z=UZ(Math.abs(v-O)*A)*d[D],L=O*z;k+=z,b+=L,T+=R*z,_+=R*L,M+=O*L}const[S,E]=Ey(b/k,T/k,_/k,M/k);s[p]=S+E*v,l[p]=Math.abs(r[p]-s[p]),VZ(f,p+1,m)}if(h===JC)break;const g=TI(l);if(Math.abs(g)=1?KC:(y=1-v*v)*y}return qZ(f,s,a,u)}function UZ(t){return(t=1-t*t*t)*t*t}function VZ(t,n,e){const o=t[n];let f=e[0],r=e[1]+1;if(!(r>=t.length))for(;n>f&&t[r]-o<=o-t[f];)e[0]=++f,e[1]=r,++r}function qZ(t,n,e,o){const f=t.length,r=[];let a=0,u=0,c=[],i;for(;a[g,t(g)],r=n[0],a=n[1],u=a-r,c=u/o,i=[f(r)],s=[];if(e===o){for(let g=1;g0;)s.push(f(r+g/e*u))}let l=i[0],d=s[s.length-1];const h=1/u,m=$Z(l[1],s);for(;d;){const g=f((l[0]+d[0])/2);g[0]-l[0]>=c&&GZ(l,g,d,h,m)>HZ?s.push(g):(l=d,i.push(d),s.pop()),d=s[s.length-1]}return i}function $Z(t,n){let e=t,o=t;const f=n.length;for(let r=0;ro&&(o=a)}return 1/(o-e)}function GZ(t,n,e,o,f){const r=Math.atan2(f*(e[1]-t[1]),o*(e[0]-t[0])),a=Math.atan2(f*(n[1]-t[1]),o*(n[0]-t[0]));return Math.abs(r-a)}function WZ(t){return n=>{const e=t.length;let o=1,f=String(t[0](n));for(;o{},YZ={init:z5,add:z5,rem:z5,idx:0},Wv={values:{init:t=>t.cell.store=!0,value:t=>t.cell.data.values(),idx:-1},count:{value:t=>t.cell.num},__count__:{value:t=>t.missing+t.valid},missing:{value:t=>t.missing},valid:{value:t=>t.valid},sum:{init:t=>t.sum=0,value:t=>t.sum,add:(t,n)=>t.sum+=+n,rem:(t,n)=>t.sum-=n},product:{init:t=>t.product=1,value:t=>t.valid?t.product:void 0,add:(t,n)=>t.product*=n,rem:(t,n)=>t.product/=n},mean:{init:t=>t.mean=0,value:t=>t.valid?t.mean:void 0,add:(t,n)=>(t.mean_d=n-t.mean,t.mean+=t.mean_d/t.valid),rem:(t,n)=>(t.mean_d=n-t.mean,t.mean-=t.valid?t.mean_d/t.valid:t.mean)},average:{value:t=>t.valid?t.mean:void 0,req:["mean"],idx:1},variance:{init:t=>t.dev=0,value:t=>t.valid>1?t.dev/(t.valid-1):void 0,add:(t,n)=>t.dev+=t.mean_d*(n-t.mean),rem:(t,n)=>t.dev-=t.mean_d*(n-t.mean),req:["mean"],idx:1},variancep:{value:t=>t.valid>1?t.dev/t.valid:void 0,req:["variance"],idx:2},stdev:{value:t=>t.valid>1?Math.sqrt(t.dev/(t.valid-1)):void 0,req:["variance"],idx:2},stdevp:{value:t=>t.valid>1?Math.sqrt(t.dev/t.valid):void 0,req:["variance"],idx:2},stderr:{value:t=>t.valid>1?Math.sqrt(t.dev/(t.valid*(t.valid-1))):void 0,req:["variance"],idx:2},distinct:{value:t=>t.cell.data.distinct(t.get),req:["values"],idx:3},ci0:{value:t=>t.cell.data.ci0(t.get),req:["values"],idx:3},ci1:{value:t=>t.cell.data.ci1(t.get),req:["values"],idx:3},median:{value:t=>t.cell.data.q2(t.get),req:["values"],idx:3},q1:{value:t=>t.cell.data.q1(t.get),req:["values"],idx:3},q3:{value:t=>t.cell.data.q3(t.get),req:["values"],idx:3},min:{init:t=>t.min=void 0,value:t=>t.min=Number.isNaN(t.min)?t.cell.data.min(t.get):t.min,add:(t,n)=>{(n{n<=t.min&&(t.min=NaN)},req:["values"],idx:4},max:{init:t=>t.max=void 0,value:t=>t.max=Number.isNaN(t.max)?t.cell.data.max(t.get):t.max,add:(t,n)=>{(n>t.max||t.max===void 0)&&(t.max=n)},rem:(t,n)=>{n>=t.max&&(t.max=NaN)},req:["values"],idx:4},argmin:{init:t=>t.argmin=void 0,value:t=>t.argmin||t.cell.data.argmin(t.get),add:(t,n,e)=>{n{n<=t.min&&(t.argmin=void 0)},req:["min","values"],idx:3},argmax:{init:t=>t.argmax=void 0,value:t=>t.argmax||t.cell.data.argmax(t.get),add:(t,n,e)=>{n>t.max&&(t.argmax=e)},rem:(t,n)=>{n>=t.max&&(t.argmax=void 0)},req:["max","values"],idx:3}},Oy=Object.keys(Wv);function XZ(t,n){return e=>pa({name:t,out:e||t},YZ,n)}Oy.forEach(t=>{Wv[t]=XZ(t,Wv[t])});function Fz(t,n){return Wv[t](n)}function Nz(t,n){return t.idx-n.idx}function ZZ(t){const n={};t.forEach(o=>n[o.name]=o);const e=o=>{!o.req||o.req.forEach(f=>{n[f]||e(n[f]=Wv[f]())})};return t.forEach(e),Object.values(n).sort(Nz)}function JZ(){this.valid=0,this.missing=0,this._ops.forEach(t=>t.init(this))}function KZ(t,n){if(t==null||t===""){++this.missing;return}t===t&&(++this.valid,this._ops.forEach(e=>e.add(this,t,n)))}function QZ(t,n){if(t==null||t===""){--this.missing;return}t===t&&(--this.valid,this._ops.forEach(e=>e.rem(this,t,n)))}function eJ(t){return this._out.forEach(n=>t[n.out]=n.value(this)),t}function Bz(t,n){const e=n||Hl,o=ZZ(t),f=t.slice().sort(Nz);function r(a){this._ops=o,this._out=f,this.cell=a,this.init()}return r.prototype.init=JZ,r.prototype.add=KZ,r.prototype.rem=QZ,r.prototype.set=eJ,r.prototype.get=e,r.fields=t.map(a=>a.out),r}function p6(t){this._key=t?Lu(t):$i,this.reset()}const Tl=p6.prototype;Tl.reset=function(){this._add=[],this._rem=[],this._ext=null,this._get=null,this._q=null};Tl.add=function(t){this._add.push(t)};Tl.rem=function(t){this._rem.push(t)};Tl.values=function(){if(this._get=null,this._rem.length===0)return this._add;const t=this._add,n=this._rem,e=this._key,o=t.length,f=n.length,r=Array(o-f),a={};let u,c,i;for(u=0;u=0;)r=t(n[o])+"",qi(e,r)||(e[r]=1,++f);return f};Tl.extent=function(t){if(this._get!==t||!this._ext){const n=this.values(),e=lI(n,t);this._ext=[n[e[0]],n[e[1]]],this._get=t}return this._ext};Tl.argmin=function(t){return this.extent(t)[0]||{}};Tl.argmax=function(t){return this.extent(t)[1]||{}};Tl.min=function(t){const n=this.extent(t)[0];return n!=null?t(n):void 0};Tl.max=function(t){const n=this.extent(t)[1];return n!=null?t(n):void 0};Tl.quartile=function(t){return(this._get!==t||!this._q)&&(this._q=QA(this.values(),t),this._get=t),this._q};Tl.q1=function(t){return this.quartile(t)[0]};Tl.q2=function(t){return this.quartile(t)[1]};Tl.q3=function(t){return this.quartile(t)[2]};Tl.ci=function(t){return(this._get!==t||!this._ci)&&(this._ci=Az(this.values(),1e3,.05,t),this._get=t),this._ci};Tl.ci0=function(t){return this.ci(t)[0]};Tl.ci1=function(t){return this.ci(t)[1]};function Xd(t){_r.call(this,null,t),this._adds=[],this._mods=[],this._alen=0,this._mlen=0,this._drop=!0,this._cross=!1,this._dims=[],this._dnames=[],this._measures=[],this._countOnly=!1,this._counts=null,this._prev=null,this._inputs=null,this._outputs=null}Xd.Definition={type:"Aggregate",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"ops",type:"enum",array:!0,values:Oy},{name:"fields",type:"field",null:!0,array:!0},{name:"as",type:"string",null:!0,array:!0},{name:"drop",type:"boolean",default:!0},{name:"cross",type:"boolean",default:!1},{name:"key",type:"field"}]};ni(Xd,_r,{transform(t,n){const e=this,o=n.fork(n.NO_SOURCE|n.NO_FIELDS),f=t.modified();return e.stamp=o.stamp,e.value&&(f||n.modified(e._inputs,!0))?(e._prev=e.value,e.value=f?e.init(t):{},n.visit(n.SOURCE,r=>e.add(r))):(e.value=e.value||e.init(t),n.visit(n.REM,r=>e.rem(r)),n.visit(n.ADD,r=>e.add(r))),o.modifies(e._outputs),e._drop=t.drop!==!1,t.cross&&e._dims.length>1&&(e._drop=!1,e.cross()),n.clean()&&e._drop&&o.clean(!0).runAfter(()=>this.clean()),e.changes(o)},cross(){const t=this,n=t.value,e=t._dnames,o=e.map(()=>({})),f=e.length;function r(u){let c,i,s,l;for(c in u)for(s=u[c].tuple,i=0;i{const v=xs(p);return f(p),e.push(v),v}),this.cellkey=t.key?t.key:_k(this._dims),this._countOnly=!0,this._counts=[],this._measures=[];const r=t.fields||[null],a=t.ops||["count"],u=t.as||[],c=r.length,i={};let s,l,d,h,m,g;for(c!==a.length&&Pr("Unmatched number of fields and aggregate ops."),g=0;gBz(p,p.field)),{}},cellkey:_k(),cell(t,n){let e=this.value[t];return e?e.num===0&&this._drop&&e.stamp{const l=o(s);s[u]=l,s[c]=l==null?null:f+r*(1+(l-f)/r)}:s=>s[u]=o(s)),n.modifies(e?a:u)},_bins(t){if(this.value&&!t.modified())return this.value;const n=t.field,e=Tz(t),o=e.step;let f=e.start,r=f+Math.ceil((e.stop-f)/o)*o,a,u;(a=t.anchor)!=null&&(u=a-(f+o*Math.floor((a-f)/o)),f+=u,r+=u);const c=function(i){let s=Rl(n(i));return s==null?null:sr?1/0:(s=Math.max(f,Math.min(s,r-o)),f+o*Math.floor(tJ+(s-f)/o))};return c.start=f,c.stop=e.stop,c.step=o,this.value=Nu(c,Bl(n),t.name||"bin_"+xs(n))}});function jz(t,n,e){const o=t;let f=n||[],r=e||[],a={},u=0;return{add:c=>r.push(c),remove:c=>a[o(c)]=++u,size:()=>f.length,data:(c,i)=>(u&&(f=f.filter(s=>!a[o(s)]),a={},u=0),i&&c&&f.sort(c),r.length&&(f=c?pI(c,f,r.sort(c)):f.concat(r),r=[]),f)}}function m6(t){_r.call(this,[],t)}m6.Definition={type:"Collect",metadata:{source:!0},params:[{name:"sort",type:"compare"}]};ni(m6,_r,{transform(t,n){const e=n.fork(n.ALL),o=jz($i,this.value,e.materialize(e.ADD).add),f=t.sort,r=n.changed()||f&&(t.modified("sort")||n.modified(f.fields));return e.visit(e.REM,o.remove),this.modified(r),this.value=e.source=o.data(H0(f),r),n.source&&n.source.root&&(this.value.root=n.source.root),e}});function Uz(t){Co.call(this,null,nJ,t)}ni(Uz,Co);function nJ(t){return this.value&&!t.modified()?this.value:EA(t.fields,t.orders)}function v6(t){_r.call(this,null,t)}v6.Definition={type:"CountPattern",metadata:{generates:!0,changes:!0},params:[{name:"field",type:"field",required:!0},{name:"case",type:"enum",values:["upper","lower","mixed"],default:"mixed"},{name:"pattern",type:"string",default:'[\\w"]+'},{name:"stopwords",type:"string",default:""},{name:"as",type:"string",array:!0,length:2,default:["text","count"]}]};function rJ(t,n,e){switch(n){case"upper":t=t.toUpperCase();break;case"lower":t=t.toLowerCase();break}return t.match(e)}ni(v6,_r,{transform(t,n){const e=l=>d=>{for(var h=rJ(u(d),t.case,r)||[],m,g=0,p=h.length;gf[l]=1+(f[l]||0)),s=e(l=>f[l]-=1);return o?n.visit(n.SOURCE,i):(n.visit(n.ADD,i),n.visit(n.REM,s)),this._finish(n,c)},_parameterCheck(t,n){let e=!1;return(t.modified("stopwords")||!this._stop)&&(this._stop=new RegExp("^"+(t.stopwords||"")+"$","i"),e=!0),(t.modified("pattern")||!this._match)&&(this._match=new RegExp(t.pattern||"[\\w']+","g"),e=!0),(t.modified("field")||n.modified(t.field.fields))&&(e=!0),e&&(this._counts={}),e},_finish(t,n){const e=this._counts,o=this._tuples||(this._tuples={}),f=n[0],r=n[1],a=t.fork(t.NO_SOURCE|t.NO_FIELDS);let u,c,i;for(u in e)c=o[u],i=e[u]||0,!c&&i?(o[u]=c=ro({}),c[f]=u,c[r]=i,a.add.push(c)):i===0?(c&&a.rem.push(c),e[u]=null,o[u]=null):c[r]!==i&&(c[r]=i,a.mod.push(c));return a.modifies(n)}});function y6(t){_r.call(this,null,t)}y6.Definition={type:"Cross",metadata:{generates:!0},params:[{name:"filter",type:"expr"},{name:"as",type:"string",array:!0,length:2,default:["a","b"]}]};ni(y6,_r,{transform(t,n){const e=n.fork(n.NO_SOURCE),o=t.as||["a","b"],f=o[0],r=o[1],a=!this.value||n.changed(n.ADD_REM)||t.modified("as")||t.modified("filter");let u=this.value;return a?(u&&(e.rem=u),u=n.materialize(n.SOURCE).source,e.add=this.value=iJ(u,f,r,t.filter||mc)):e.mod=u,e.source=this.value,e.modifies(o)}});function iJ(t,n,e,o){for(var f=[],r={},a=t.length,u=0,c,i;uVz(r,n))):typeof o[f]===e7&&o[f](t[f]);return o}function x6(t){_r.call(this,null,t)}const qz=[{key:{function:"normal"},params:[{name:"mean",type:"number",default:0},{name:"stdev",type:"number",default:1}]},{key:{function:"lognormal"},params:[{name:"mean",type:"number",default:0},{name:"stdev",type:"number",default:1}]},{key:{function:"uniform"},params:[{name:"min",type:"number",default:0},{name:"max",type:"number",default:1}]},{key:{function:"kde"},params:[{name:"field",type:"field",required:!0},{name:"from",type:"data"},{name:"bandwidth",type:"number",default:0}]}],sJ={key:{function:"mixture"},params:[{name:"distributions",type:"param",array:!0,params:qz},{name:"weights",type:"number",array:!0}]};x6.Definition={type:"Density",metadata:{generates:!0},params:[{name:"extent",type:"number",array:!0,length:2},{name:"steps",type:"number"},{name:"minsteps",type:"number",default:25},{name:"maxsteps",type:"number",default:200},{name:"method",type:"string",default:"pdf",values:["pdf","cdf"]},{name:"distribution",type:"param",params:qz.concat(sJ)},{name:"as",type:"string",array:!0,default:["value","density"]}]};ni(x6,_r,{transform(t,n){const e=n.fork(n.NO_SOURCE|n.NO_FIELDS);if(!this.value||n.changed()||t.modified()){const o=Vz(t.distribution,lJ(n)),f=t.steps||t.minsteps||25,r=t.steps||t.maxsteps||200;let a=t.method||"pdf";a!=="pdf"&&a!=="cdf"&&Pr("Invalid density method: "+a),!t.extent&&!o.data&&Pr("Missing density extent parameter."),a=o[a];const u=t.as||["value","density"],c=t.extent||Zf(o.data()),i=uw(a,c,f,r).map(s=>{const l={};return l[u[0]]=s[0],l[u[1]]=s[1],ro(l)});this.value&&(e.rem=this.value),this.value=e.add=e.source=i}return e}});function lJ(t){return()=>t.materialize(t.SOURCE).source}function Hz(t,n){return t?t.map((e,o)=>n[o]||xs(e)):null}function b6(t,n,e){const o=[],f=l=>l(c);let r,a,u,c,i,s;if(n==null)o.push(t.map(e));else for(r={},a=0,u=t.length;aAy(Zf(t,n))/30;ni(_6,_r,{transform(t,n){if(this.value&&!(t.modified()||n.changed()))return n;const e=n.materialize(n.SOURCE).source,o=b6(n.source,t.groupby,Hl),f=t.smooth||!1,r=t.field,a=t.step||uJ(e,r),u=H0((m,g)=>r(m)-r(g)),c=t.as||$z,i=o.length;let s=1/0,l=-1/0,d=0,h;for(;dl&&(l=g),m[++h][c]=g}return this.value={start:s,stop:l,step:a},n.reflow(!0).modifies(c)}});function Gz(t){Co.call(this,null,cJ,t),this.modified(!0)}ni(Gz,Co);function cJ(t){const n=t.expr;return this.value&&!t.modified("expr")?this.value:Nu(e=>n(e,t),Bl(n),xs(n))}function w6(t){_r.call(this,[void 0,void 0],t)}w6.Definition={type:"Extent",metadata:{},params:[{name:"field",type:"field",required:!0}]};ni(w6,_r,{transform(t,n){const e=this.value,o=t.field,f=n.changed()||n.modified(o.fields)||t.modified("field");let r=e[0],a=e[1];if((f||r==null)&&(r=1/0,a=-1/0),n.visit(f?n.SOURCE:n.ADD,u=>{const c=Rl(o(u));c!=null&&(ca&&(a=c))}),!Number.isFinite(r)||!Number.isFinite(a)){let u=xs(o);u&&(u=' for field "'.concat(u,'"')),n.dataflow.warn("Infinite extent".concat(u,": [").concat(r,", ").concat(a,"]")),r=a=void 0}this.value=[r,a]}});function k6(t,n){Co.call(this,t),this.parent=n,this.count=0}ni(k6,Co,{connect(t){return this.detachSubflow=t.detachSubflow,this.targets().add(t),t.source=this},add(t){this.count+=1,this.value.add.push(t)},rem(t){this.count-=1,this.value.rem.push(t)},mod(t){this.value.mod.push(t)},init(t){this.value.init(t,t.NO_SOURCE)},evaluate(){return this.value}});function cw(t){_r.call(this,{},t),this._keys=Hm();const n=this._targets=[];n.active=0,n.forEach=e=>{for(let o=0,f=n.active;oo&&o.count>0);this.initTargets(e)}},initTargets(t){const n=this._targets,e=n.length,o=t?t.length:0;let f=0;for(;fthis.subflow(c,f,n);return this._group=t.group||{},this.initTargets(),n.visit(n.REM,c=>{const i=$i(c),s=r.get(i);s!==void 0&&(r.delete(i),u(s).rem(c))}),n.visit(n.ADD,c=>{const i=o(c);r.set($i(c),i),u(i).add(c)}),a||n.modified(o.fields)?n.visit(n.MOD,c=>{const i=$i(c),s=r.get(i),l=o(c);s===l?u(l).mod(c):(r.set(i,l),u(s).rem(c),u(l).add(c))}):n.changed(n.MOD)&&n.visit(n.MOD,c=>{u(r.get($i(c))).mod(c)}),a&&n.visit(n.REFLOW,c=>{const i=$i(c),s=r.get(i),l=o(c);s!==l&&(r.set(i,l),u(s).rem(c),u(l).add(c))}),n.clean()?e.runAfter(()=>{this.clean(),r.clean()}):r.empty>e.cleanThreshold&&e.runAfter(r.clean),n}});function Wz(t){Co.call(this,null,fJ,t)}ni(Wz,Co);function fJ(t){return this.value&&!t.modified()?this.value:Ir(t.name)?ki(t.name).map(n=>Lu(n)):Lu(t.name,t.as)}function T6(t){_r.call(this,Hm(),t)}T6.Definition={type:"Filter",metadata:{changes:!0},params:[{name:"expr",type:"expr",required:!0}]};ni(T6,_r,{transform(t,n){const e=n.dataflow,o=this.value,f=n.fork(),r=f.add,a=f.rem,u=f.mod,c=t.expr;let i=!0;n.visit(n.REM,l=>{const d=$i(l);o.has(d)?o.delete(d):a.push(l)}),n.visit(n.ADD,l=>{c(l,t)?r.push(l):o.set($i(l),1)});function s(l){const d=$i(l),h=c(l,t),m=o.get(d);h&&m?(o.delete(d),r.push(l)):!h&&!m?(o.set(d,1),a.push(l)):i&&h&&!m&&u.push(l)}return n.visit(n.MOD,s),t.modified()&&(i=!1,n.visit(n.REFLOW,s)),o.empty>e.cleanThreshold&&e.runAfter(o.clean),f}});function A6(t){_r.call(this,[],t)}A6.Definition={type:"Flatten",metadata:{generates:!0},params:[{name:"fields",type:"field",array:!0,required:!0},{name:"index",type:"string"},{name:"as",type:"string",array:!0}]};ni(A6,_r,{transform(t,n){const e=n.fork(n.NO_SOURCE),o=t.fields,f=Hz(o,t.as||[]),r=t.index||null,a=f.length;return e.rem=this.value,n.visit(n.SOURCE,u=>{const c=o.map(m=>m(u)),i=c.reduce((m,g)=>Math.max(m,g.length),0);let s=0,l,d,h;for(;s{for(let s=0,l;sa[o]=e(a,t))}});function Yz(t){_r.call(this,[],t)}ni(Yz,_r,{transform(t,n){const e=n.fork(n.ALL),o=t.generator;let f=this.value,r=t.size-f.length,a,u,c;if(r>0){for(a=[];--r>=0;)a.push(c=ro(o(t))),f.push(c);e.add=e.add.length?e.materialize(e.ADD).add.concat(a):a}else u=f.slice(0,-r),e.rem=e.rem.length?e.materialize(e.REM).rem.concat(u):u,f=f.slice(-r);return e.source=this.value=f,e}});const tb={value:"value",median:TI,mean:QW,min:sk,max:d0},hJ=[];function E6(t){_r.call(this,[],t)}E6.Definition={type:"Impute",metadata:{changes:!0},params:[{name:"field",type:"field",required:!0},{name:"key",type:"field",required:!0},{name:"keyvals",array:!0},{name:"groupby",type:"field",array:!0},{name:"method",type:"enum",default:"value",values:["value","mean","median","max","min"]},{name:"value",default:0}]};function dJ(t){var n=t.method||tb.value,e;if(tb[n]==null)Pr("Unrecognized imputation method: "+n);else return n===tb.value?(e=t.value!==void 0?t.value:0,()=>e):tb[n]}function pJ(t){const n=t.field;return e=>e?n(e):NaN}ni(E6,_r,{transform(t,n){var e=n.fork(n.ALL),o=dJ(t),f=pJ(t),r=xs(t.field),a=xs(t.key),u=(t.groupby||[]).map(xs),c=gJ(n.source,t.groupby,t.key,t.keyvals),i=[],s=this.value,l=c.domain.length,d,h,m,g,p,v,y,x,w,k;for(p=0,x=c.length;pv(p),r=[],a=o?o.slice():[],u={},c={},i,s,l,d,h,m,g,p;for(a.forEach((v,y)=>u[v]=y+1),d=0,g=t.length;de.add(r))):(f=e.value=e.value||this.init(t),n.visit(n.REM,r=>e.rem(r)),n.visit(n.ADD,r=>e.add(r))),e.changes(),n.visit(n.SOURCE,r=>{pa(r,f[e.cellkey(r)].tuple)}),n.reflow(o).modifies(this._outputs)},changes(){const t=this._adds,n=this._mods;let e,o;for(e=0,o=this._alen;e{const m=r6(h,a)[u],g=t.counts?h.length:1,p=s||Zf(h);uw(m,p,l,d).forEach(v=>{const y={};for(let x=0;x(this._pending=ki(f.data),r=>r.touch(this)))}:e.request(t.url,t.format).then(o=>R5(this,n,ki(o.data)))}});function vJ(t){return t.modified("async")&&!(t.modified("values")||t.modified("url")||t.modified("format"))}function R5(t,n,e){e.forEach(ro);const o=n.fork(n.NO_FIELDS&n.NO_SOURCE);return o.rem=t.value,t.value=o.source=o.add=e,t._pending=null,o.rem.length&&o.clean(!0),o}function L6(t){_r.call(this,{},t)}L6.Definition={type:"Lookup",metadata:{modifies:!0},params:[{name:"index",type:"index",params:[{name:"from",type:"data",required:!0},{name:"key",type:"field",required:!0}]},{name:"values",type:"field",array:!0},{name:"fields",type:"field",array:!0,required:!0},{name:"as",type:"string",array:!0},{name:"default",default:null}]};ni(L6,_r,{transform(t,n){const e=t.fields,o=t.index,f=t.values,r=t.default==null?null:t.default,a=t.modified(),u=e.length;let c=a?n.SOURCE:n.ADD,i=n,s=t.as,l,d,h;return f?(d=f.length,u>1&&!s&&Pr('Multi-field lookup requires explicit "as" parameter.'),s&&s.length!==u*d&&Pr('The "as" parameter has too few output field names.'),s=s||f.map(xs),l=function(m){for(var g=0,p=0,v,y;gn.modified(m.fields)),c|=h?n.MOD:0),n.visit(c,l),i.modifies(s)}});function Jz(t){Co.call(this,null,yJ,t)}ni(Jz,Co);function yJ(t){if(this.value&&!t.modified())return this.value;const n=t.extents,e=n.length;let o=1/0,f=-1/0,r,a;for(r=0;rf&&(f=a[1]);return[o,f]}function Kz(t){Co.call(this,null,xJ,t)}ni(Kz,Co);function xJ(t){return this.value&&!t.modified()?this.value:t.values.reduce((n,e)=>n.concat(e),[])}function Qz(t){_r.call(this,null,t)}ni(Qz,_r,{transform(t,n){return this.modified(t.modified()),this.value=t,n.fork(n.NO_SOURCE|n.NO_FIELDS)}});function P6(t){Xd.call(this,t)}P6.Definition={type:"Pivot",metadata:{generates:!0,changes:!0},params:[{name:"groupby",type:"field",array:!0},{name:"field",type:"field",required:!0},{name:"value",type:"field",required:!0},{name:"op",type:"enum",values:Oy,default:"sum"},{name:"limit",type:"number",default:0},{name:"key",type:"field"}]};ni(P6,Xd,{_transform:Xd.prototype.transform,transform(t,n){return this._transform(bJ(t,n),n)}});function bJ(t,n){const e=t.field,o=t.value,f=(t.op==="count"?"__count__":t.op)||"sum",r=Bl(e).concat(Bl(o)),a=wJ(e,t.limit||0,n);return n.changed()&&t.set("__pivot__",null,null,!0),{key:t.key,groupby:t.groupby,ops:a.map(()=>f),fields:a.map(u=>_J(u,e,o,r)),as:a.map(u=>u+""),modified:t.modified.bind(t)}}function _J(t,n,e,o){return Nu(f=>n(f)===t?e(f):NaN,o,t+"")}function wJ(t,n,e){const o={},f=[];return e.visit(e.SOURCE,r=>{const a=t(r);o[a]||(o[a]=1,f.push(a))}),f.sort(J2),n?f.slice(0,n):f}function eR(t){cw.call(this,t)}ni(eR,cw,{transform(t,n){const e=t.subflow,o=t.field,f=r=>this.subflow($i(r),e,n,r);return(t.modified("field")||o&&n.modified(Bl(o)))&&Pr("PreFacet does not support field modification."),this.initTargets(),o?(n.visit(n.MOD,r=>{const a=f(r);o(r).forEach(u=>a.mod(u))}),n.visit(n.ADD,r=>{const a=f(r);o(r).forEach(u=>a.add(ro(u)))}),n.visit(n.REM,r=>{const a=f(r);o(r).forEach(u=>a.rem(u))})):(n.visit(n.MOD,r=>f(r).mod(r)),n.visit(n.ADD,r=>f(r).add(r)),n.visit(n.REM,r=>f(r).rem(r))),n.clean()&&n.runAfter(()=>this.clean()),n}});function D6(t){_r.call(this,null,t)}D6.Definition={type:"Project",metadata:{generates:!0,changes:!0},params:[{name:"fields",type:"field",array:!0},{name:"as",type:"string",null:!0,array:!0}]};ni(D6,_r,{transform(t,n){const e=n.fork(n.NO_SOURCE),o=t.fields,f=Hz(t.fields,t.as||[]),r=o?(u,c)=>kJ(u,c,o,f):nw;let a;return this.value?a=this.value:(n=n.addAll(),a=this.value={}),n.visit(n.REM,u=>{const c=$i(u);e.rem.push(a[c]),a[c]=null}),n.visit(n.ADD,u=>{const c=r(u,ro({}));a[$i(u)]=c,e.add.push(c)}),n.visit(n.MOD,u=>{e.mod.push(r(u,a[$i(u)]))}),e}});function kJ(t,n,e,o){for(let f=0,r=e.length;f{const d=KA(l,i);for(let h=0;h{const r=$i(f);e.rem.push(o[r]),o[r]=null}),n.visit(n.ADD,f=>{const r=XA(f);o[$i(f)]=r,e.add.push(r)}),n.visit(n.MOD,f=>{const r=o[$i(f)];for(const a in f)r[a]=f[a],e.modifies(a);e.mod.push(r)})),e}});function z6(t){_r.call(this,[],t),this.count=0}z6.Definition={type:"Sample",metadata:{},params:[{name:"size",type:"number",default:1e3}]};ni(z6,_r,{transform(t,n){const e=n.fork(n.NO_SOURCE),o=t.modified("size"),f=t.size,r=this.value.reduce((s,l)=>(s[$i(l)]=1,s),{});let a=this.value,u=this.count,c=0;function i(s){let l,d;a.length=c&&(l=a[d],r[$i(l)]&&e.rem.push(l),a[d]=s)),++u}if(n.rem.length&&(n.visit(n.REM,s=>{const l=$i(s);r[l]&&(r[l]=-1,e.rem.push(s)),--u}),a=a.filter(s=>r[$i(s)]!==-1)),(n.rem.length||o)&&a.length{r[$i(s)]||i(s)}),c=-1),o&&a.length>f){const s=a.length-f;for(let l=0;l{r[$i(s)]&&e.mod.push(s)}),n.add.length&&n.visit(n.ADD,i),(n.add.length||c<0)&&(e.add=a.filter(s=>!r[$i(s)])),this.count=u,this.value=e.source=a,e}});function R6(t){_r.call(this,null,t)}R6.Definition={type:"Sequence",metadata:{generates:!0,changes:!0},params:[{name:"start",type:"number",required:!0},{name:"stop",type:"number",required:!0},{name:"step",type:"number",default:1},{name:"as",type:"string",default:"data"}]};ni(R6,_r,{transform(t,n){if(this.value&&!t.modified())return;const e=n.materialize().fork(n.MOD),o=t.as||"data";return e.rem=this.value?n.rem.concat(this.value):n.rem,this.value=Ju(t.start,t.stop,t.step||1).map(f=>{const r={};return r[o]=f,ro(r)}),e.add=n.add.concat(this.value),e}});function rR(t){_r.call(this,null,t),this.modified(!0)}ni(rR,_r,{transform(t,n){return this.value=n.source,n.changed()?n.fork(n.NO_SOURCE|n.NO_FIELDS):n.StopPropagation}});function F6(t){_r.call(this,null,t)}const iR=["unit0","unit1"];F6.Definition={type:"TimeUnit",metadata:{modifies:!0},params:[{name:"field",type:"field",required:!0},{name:"interval",type:"boolean",default:!0},{name:"units",type:"enum",values:jA,array:!0},{name:"step",type:"number",default:1},{name:"maxbins",type:"number",default:40},{name:"extent",type:"date",array:!0},{name:"timezone",type:"enum",default:"local",values:["local","utc"]},{name:"as",type:"string",array:!0,length:2,default:iR}]};ni(F6,_r,{transform(t,n){const e=t.field,o=t.interval!==!1,f=t.timezone==="utc",r=this._floor(t,n),a=(f?Gm:$m)(r.unit).offset,u=t.as||iR,c=u[0],i=u[1],s=r.step;let l=r.start||1/0,d=r.stop||-1/0,h=n.ADD;return(t.modified()||n.changed(n.REM)||n.modified(Bl(e)))&&(n=n.reflow(!0),h=n.SOURCE,l=1/0,d=-1/0),n.visit(h,m=>{const g=e(m);let p,v;g==null?(m[c]=null,o&&(m[i]=null)):(m[c]=p=v=r(g),o&&(m[i]=v=a(p,s)),pd&&(d=v))}),r.start=l,r.stop=d,n.modifies(o?u:c)},_floor(t,n){const e=t.timezone==="utc",{units:o,step:f}=t.units?{units:t.units,step:t.step||1}:YI({extent:t.extent||Zf(n.materialize(n.SOURCE).source,t.field),maxbins:t.maxbins}),r=UA(o),a=this.value||{},u=(e?BI:NI)(r,f);return u.unit=Na(r),u.units=r,u.step=f,u.start=a.start,u.stop=a.stop,this.value=u}});function aR(t){_r.call(this,Hm(),t)}ni(aR,_r,{transform(t,n){const e=n.dataflow,o=t.field,f=this.value,r=u=>f.set(o(u),u);let a=!0;return t.modified("field")||n.modified(o.fields)?(f.clear(),n.visit(n.SOURCE,r)):n.changed()?(n.visit(n.REM,u=>f.delete(o(u))),n.visit(n.ADD,r)):a=!1,this.modified(a),f.empty>e.cleanThreshold&&e.runAfter(f.clean),n.fork()}});function oR(t){_r.call(this,null,t)}ni(oR,_r,{transform(t,n){(!this.value||t.modified("field")||t.modified("sort")||n.changed()||t.sort&&n.modified(t.sort.fields))&&(this.value=(t.sort?n.source.slice().sort(H0(t.sort)):n.source).map(t.field))}});function AJ(t,n,e,o){const f=Yv[t](n,e);return{init:f.init||Md,update:function(r,a){a[o]=f.next(r)}}}const Yv={row_number:function(){return{next:t=>t.index+1}},rank:function(){let t;return{init:()=>t=1,next:n=>{const e=n.index,o=n.data;return e&&n.compare(o[e-1],o[e])?t=e+1:t}}},dense_rank:function(){let t;return{init:()=>t=1,next:n=>{const e=n.index,o=n.data;return e&&n.compare(o[e-1],o[e])?++t:t}}},percent_rank:function(){const t=Yv.rank(),n=t.next;return{init:t.init,next:e=>(n(e)-1)/(e.data.length-1)}},cume_dist:function(){let t;return{init:()=>t=0,next:n=>{const e=n.data,o=n.compare;let f=n.index;if(t0||Pr("ntile num must be greater than zero.");const e=Yv.cume_dist(),o=e.next;return{init:e.init,next:f=>Math.ceil(n*o(f))}},lag:function(t,n){return n=+n||1,{next:e=>{const o=e.index-n;return o>=0?t(e.data[o]):null}}},lead:function(t,n){return n=+n||1,{next:e=>{const o=e.index+n,f=e.data;return ot(n.data[n.i0])}},last_value:function(t){return{next:n=>t(n.data[n.i1-1])}},nth_value:function(t,n){return n=+n,n>0||Pr("nth_value nth must be greater than zero."),{next:e=>{const o=e.i0+(n-1);return on=null,next:e=>{const o=t(e.data[e.index]);return o!=null?n=o:n}}},next_value:function(t){let n,e;return{init:()=>(n=null,e=-1),next:o=>{const f=o.data;return o.index<=e?n:(e=MJ(t,f,o.index))<0?(e=f.length,n=null):n=t(f[e])}}}};function MJ(t,n,e){for(let o=n.length;eu[m]=1)}d(t.sort),n.forEach((h,m)=>{const g=e[m],p=xs(g),v=Rz(h,p,f[m]);if(d(g),r.push(v),qi(Yv,h))a.push(AJ(h,e[m],o[m],v));else{if(g==null&&h!=="count"&&Pr("Null aggregate field specified."),h==="count"){i.push(v);return}l=!1;let y=c[p];y||(y=c[p]=[],y.field=g,s.push(y)),y.push(Fz(h,v))}}),(i.length||s.length)&&(this.cell=EJ(s,i,l)),this.inputs=Object.keys(u)}const lR=sR.prototype;lR.init=function(){this.windows.forEach(t=>t.init()),this.cell&&this.cell.init()};lR.update=function(t,n){const e=this.cell,o=this.windows,f=t.data,r=o&&o.length;let a;if(e){for(a=t.p0;aBz(c,c.field));const o={num:0,agg:null,store:!1,count:n};if(!e)for(var f=t.length,r=o.agg=Array(f),a=0;athis.group(f(u));let a=this.state;(!a||e)&&(a=this.state=new sR(t)),e||n.modified(a.inputs)?(this.value={},n.visit(n.SOURCE,u=>r(u).add(u))):(n.visit(n.REM,u=>r(u).remove(u)),n.visit(n.ADD,u=>r(u).add(u)));for(let u=0,c=this._mlen;u0&&!f(r[e],r[e-1])&&(t.i0=n.left(r,r[e])),o1?0:t<-1?fm:Math.acos(t)}function n7(t){return t>=1?b_:t<=-1?-b_:Math.asin(t)}function zJ(t){return t.innerRadius}function RJ(t){return t.outerRadius}function FJ(t){return t.startAngle}function NJ(t){return t.endAngle}function BJ(t){return t&&t.padAngle}function jJ(t,n,e,o,f,r,a,u){var c=e-t,i=o-n,s=a-f,l=u-r,d=l*c-s*i;if(!(d*dO*O+R*R&&(_=A,M=S),{cx:_,cy:M,x01:-s,y01:-l,x11:_*(f/k-1),y11:M*(f/k-1)}}function UJ(){var t=zJ,n=RJ,e=Yo(0),o=null,f=FJ,r=NJ,a=BJ,u=null;function c(){var i,s,l=+t.apply(this,arguments),d=+n.apply(this,arguments),h=f.apply(this,arguments)-b_,m=r.apply(this,arguments)-b_,g=t7(m-h),p=m>h;if(u||(u=i=Bm()),dLl))u.moveTo(0,0);else if(g>uR-Ll)u.moveTo(d*Np(h),d*Of(h)),u.arc(0,0,d,h,m,!p),l>Ll&&(u.moveTo(l*Np(m),l*Of(m)),u.arc(0,0,l,m,h,p));else{var v=h,y=m,x=h,w=m,k=g,b=g,T=a.apply(this,arguments)/2,_=T>Ll&&(o?+o.apply(this,arguments):i0(l*l+d*d)),M=F5(t7(d-l)/2,+e.apply(this,arguments)),A=M,S=M,E,D;if(_>Ll){var O=n7(_/l*Of(T)),R=n7(_/d*Of(T));(k-=O*2)>Ll?(O*=p?1:-1,x+=O,w-=O):(k=0,x=w=(h+m)/2),(b-=R*2)>Ll?(R*=p?1:-1,v+=R,y-=R):(b=0,v=y=(h+m)/2)}var z=d*Np(v),L=d*Of(v),P=l*Np(w),N=l*Of(w);if(M>Ll){var B=d*Np(y),G=d*Of(y),W=l*Np(x),K=l*Of(x),te;if(gLl?S>Ll?(E=nb(W,K,z,L,d,S,p),D=nb(B,G,P,N,d,S,p),u.moveTo(E.cx+E.x01,E.cy+E.y01),SLl)||!(k>Ll)?u.lineTo(P,N):A>Ll?(E=nb(P,N,B,G,l,-A,p),D=nb(z,L,W,K,l,-A,p),u.lineTo(E.cx+E.x01,E.cy+E.y01),A=d;--h)u.point(y[h],x[h]);u.lineEnd(),u.areaEnd()}p&&(y[l]=+t(g,l,s),x[l]=+n(g,l,s),u.point(o?+o(g,l,s):y[l],e?+e(g,l,s):x[l]))}if(v)return u=null,v+""||null}function i(){return BD().defined(f).curve(a).context(r)}return c.x=function(s){return arguments.length?(t=typeof s=="function"?s:Yo(+s),o=null,c):t},c.x0=function(s){return arguments.length?(t=typeof s=="function"?s:Yo(+s),c):t},c.x1=function(s){return arguments.length?(o=s==null?null:typeof s=="function"?s:Yo(+s),c):o},c.y=function(s){return arguments.length?(n=typeof s=="function"?s:Yo(+s),e=null,c):n},c.y0=function(s){return arguments.length?(n=typeof s=="function"?s:Yo(+s),c):n},c.y1=function(s){return arguments.length?(e=s==null?null:typeof s=="function"?s:Yo(+s),c):e},c.lineX0=c.lineY0=function(){return i().x(t).y(n)},c.lineY1=function(){return i().x(t).y(e)},c.lineX1=function(){return i().x(o).y(n)},c.defined=function(s){return arguments.length?(f=typeof s=="function"?s:Yo(!!s),c):f},c.curve=function(s){return arguments.length?(a=s,r!=null&&(u=a(r)),c):a},c.context=function(s){return arguments.length?(s==null?r=u=null:u=a(r=s),c):r},c}var VJ={draw(t,n){const e=i0(n/fm);t.moveTo(e,0),t.arc(0,0,e,0,uR)}};function qJ(t,n){let e=null;t=typeof t=="function"?t:Yo(t||VJ),n=typeof n=="function"?n:Yo(n===void 0?64:+n);function o(){let f;if(e||(e=f=Bm()),t.apply(this,arguments).draw(e,+n.apply(this,arguments)),f)return e=null,f+""||null}return o.type=function(f){return arguments.length?(t=typeof f=="function"?f:Yo(f),o):t},o.size=function(f){return arguments.length?(n=typeof f=="function"?f:Yo(+f),o):n},o.context=function(f){return arguments.length?(e=f??null,o):e},o}function Zd(){}function __(t,n,e){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+n)/6,(t._y0+4*t._y1+e)/6)}function fw(t){this._context=t}fw.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:__(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:__(this,t,n);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};function HJ(t){return new fw(t)}function fR(t){this._context=t}fR.prototype={areaStart:Zd,areaEnd:Zd,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x2=t,this._y2=n;break;case 1:this._point=2,this._x3=t,this._y3=n;break;case 2:this._point=3,this._x4=t,this._y4=n,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+n)/6);break;default:__(this,t,n);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};function $J(t){return new fR(t)}function hR(t){this._context=t}hR.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var e=(this._x0+4*this._x1+t)/6,o=(this._y0+4*this._y1+n)/6;this._line?this._context.lineTo(e,o):this._context.moveTo(e,o);break;case 3:this._point=4;default:__(this,t,n);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};function GJ(t){return new hR(t)}function dR(t,n){this._basis=new fw(t),this._beta=n}dR.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,n=this._y,e=t.length-1;if(e>0)for(var o=t[0],f=n[0],r=t[e]-o,a=n[e]-f,u=-1,c;++u<=e;)c=u/e,this._basis.point(this._beta*t[u]+(1-this._beta)*(o+c*r),this._beta*n[u]+(1-this._beta)*(f+c*a));this._x=this._y=null,this._basis.lineEnd()},point:function(t,n){this._x.push(+t),this._y.push(+n)}};var WJ=function t(n){function e(o){return n===1?new fw(o):new dR(o,n)}return e.beta=function(o){return t(+o)},e}(.85);function w_(t,n,e){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-n),t._y2+t._k*(t._y1-e),t._x2,t._y2)}function B6(t,n){this._context=t,this._k=(1-n)/6}B6.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:w_(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2,this._x1=t,this._y1=n;break;case 2:this._point=3;default:w_(this,t,n);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var YJ=function t(n){function e(o){return new B6(o,n)}return e.tension=function(o){return t(+o)},e}(0);function j6(t,n){this._context=t,this._k=(1-n)/6}j6.prototype={areaStart:Zd,areaEnd:Zd,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:w_(this,t,n);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var XJ=function t(n){function e(o){return new j6(o,n)}return e.tension=function(o){return t(+o)},e}(0);function U6(t,n){this._context=t,this._k=(1-n)/6}U6.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:w_(this,t,n);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var ZJ=function t(n){function e(o){return new U6(o,n)}return e.tension=function(o){return t(+o)},e}(0);function V6(t,n,e){var o=t._x1,f=t._y1,r=t._x2,a=t._y2;if(t._l01_a>Ll){var u=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,c=3*t._l01_a*(t._l01_a+t._l12_a);o=(o*u-t._x0*t._l12_2a+t._x2*t._l01_2a)/c,f=(f*u-t._y0*t._l12_2a+t._y2*t._l01_2a)/c}if(t._l23_a>Ll){var i=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,s=3*t._l23_a*(t._l23_a+t._l12_a);r=(r*i+t._x1*t._l23_2a-n*t._l12_2a)/s,a=(a*i+t._y1*t._l23_2a-e*t._l12_2a)/s}t._context.bezierCurveTo(o,f,r,a,t._x2,t._y2)}function pR(t,n){this._context=t,this._alpha=n}pR.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,o=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+o*o,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3;default:V6(this,t,n);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var JJ=function t(n){function e(o){return n?new pR(o,n):new B6(o,0)}return e.alpha=function(o){return t(+o)},e}(.5);function gR(t,n){this._context=t,this._alpha=n}gR.prototype={areaStart:Zd,areaEnd:Zd,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,o=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+o*o,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:V6(this,t,n);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var KJ=function t(n){function e(o){return n?new gR(o,n):new j6(o,0)}return e.alpha=function(o){return t(+o)},e}(.5);function mR(t,n){this._context=t,this._alpha=n}mR.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,o=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+o*o,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:V6(this,t,n);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var QJ=function t(n){function e(o){return n?new mR(o,n):new U6(o,0)}return e.alpha=function(o){return t(+o)},e}(.5);function vR(t){this._context=t}vR.prototype={areaStart:Zd,areaEnd:Zd,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,n){t=+t,n=+n,this._point?this._context.lineTo(t,n):(this._point=1,this._context.moveTo(t,n))}};function eK(t){return new vR(t)}function r7(t){return t<0?-1:1}function i7(t,n,e){var o=t._x1-t._x0,f=n-t._x1,r=(t._y1-t._y0)/(o||f<0&&-0),a=(e-t._y1)/(f||o<0&&-0),u=(r*f+a*o)/(o+f);return(r7(r)+r7(a))*Math.min(Math.abs(r),Math.abs(a),.5*Math.abs(u))||0}function a7(t,n){var e=t._x1-t._x0;return e?(3*(t._y1-t._y0)/e-n)/2:n}function N5(t,n,e){var o=t._x0,f=t._y0,r=t._x1,a=t._y1,u=(r-o)/3;t._context.bezierCurveTo(o+u,f+u*n,r-u,a-u*e,r,a)}function k_(t){this._context=t}k_.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:N5(this,this._t0,a7(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){var e=NaN;if(t=+t,n=+n,!(t===this._x1&&n===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,N5(this,a7(this,e=i7(this,t,n)),e);break;default:N5(this,this._t0,e=i7(this,t,n));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n,this._t0=e}}};function yR(t){this._context=new xR(t)}(yR.prototype=Object.create(k_.prototype)).point=function(t,n){k_.prototype.point.call(this,n,t)};function xR(t){this._context=t}xR.prototype={moveTo:function(t,n){this._context.moveTo(n,t)},closePath:function(){this._context.closePath()},lineTo:function(t,n){this._context.lineTo(n,t)},bezierCurveTo:function(t,n,e,o,f,r){this._context.bezierCurveTo(n,t,o,e,r,f)}};function tK(t){return new k_(t)}function nK(t){return new yR(t)}function bR(t){this._context=t}bR.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,n=this._y,e=t.length;if(e)if(this._line?this._context.lineTo(t[0],n[0]):this._context.moveTo(t[0],n[0]),e===2)this._context.lineTo(t[1],n[1]);else for(var o=o7(t),f=o7(n),r=0,a=1;a=0;--n)f[n]=(a[n]-f[n+1])/r[n];for(r[e-1]=(t[e]+f[e-1])/2,n=0;n=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,n),this._context.lineTo(t,n);else{var e=this._x*(1-this._t)+t*this._t;this._context.lineTo(e,this._y),this._context.lineTo(e,n)}break}}this._x=t,this._y=n}};function iK(t){return new hw(t,.5)}function aK(t){return new hw(t,0)}function oK(t){return new hw(t,1)}function Vd(t,n){if(typeof document<"u"&&document.createElement){const e=document.createElement("canvas");if(e&&e.getContext)return e.width=t,e.height=n,e}return null}const sK=()=>typeof Image<"u"?Image:null,wk=Symbol("implicit");function q6(){var t=new EC,n=[],e=[],o=wk;function f(r){let a=t.get(r);if(a===void 0){if(o!==wk)return o;t.set(r,a=n.push(r)-1)}return e[a%e.length]}return f.domain=function(r){if(!arguments.length)return n.slice();n=[],t=new EC;for(const a of r)t.has(a)||t.set(a,n.push(a)-1);return f},f.range=function(r){return arguments.length?(e=Array.from(r),f):e.slice()},f.unknown=function(r){return arguments.length?(o=r,f):o},f.copy=function(){return q6(n,e).unknown(o)},Zh.apply(f,arguments),f}const _R=Math.PI/180,wR=180/Math.PI,T_=18,kR=.96422,TR=1,AR=.82521,MR=4/29,em=6/29,SR=3*em*em,lK=em*em*em;function ER(t){if(t instanceof $f)return new $f(t.l,t.a,t.b,t.opacity);if(t instanceof Rh)return CR(t);t instanceof q2||(t=UD(t));var n=V5(t.r),e=V5(t.g),o=V5(t.b),f=B5((.2225045*n+.7168786*e+.0606169*o)/TR),r,a;return n===e&&e===o?r=a=f:(r=B5((.4360747*n+.3850649*e+.1430804*o)/kR),a=B5((.0139322*n+.0971045*e+.7141733*o)/AR)),new $f(116*f-16,500*(r-f),200*(f-a),t.opacity)}function A_(t,n,e,o){return arguments.length===1?ER(t):new $f(t,n,e,o??1)}function $f(t,n,e,o){this.l=+t,this.a=+n,this.b=+e,this.opacity=+o}mA($f,A_,vA(yA,{brighter:function(t){return new $f(this.l+T_*(t??1),this.a,this.b,this.opacity)},darker:function(t){return new $f(this.l-T_*(t??1),this.a,this.b,this.opacity)},rgb:function(){var t=(this.l+16)/116,n=isNaN(this.a)?t:t+this.a/500,e=isNaN(this.b)?t:t-this.b/200;return n=kR*j5(n),t=TR*j5(t),e=AR*j5(e),new q2(U5(3.1338561*n-1.6168667*t-.4906146*e),U5(-.9787684*n+1.9161415*t+.033454*e),U5(.0719453*n-.2289914*t+1.4052427*e),this.opacity)}}));function B5(t){return t>lK?Math.pow(t,1/3):t/SR+MR}function j5(t){return t>em?t*t*t:SR*(t-MR)}function U5(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function V5(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function uK(t){if(t instanceof Rh)return new Rh(t.h,t.c,t.l,t.opacity);if(t instanceof $f||(t=ER(t)),t.a===0&&t.b===0)return new Rh(NaN,0180?s+=360:s-i>180&&(i+=360),d.push({i:l.push(f(l)+"rotate(",null,o)-2,x:Xp(i,s)})):s&&l.push(f(l)+"rotate("+s+o)}function u(i,s,l,d){i!==s?d.push({i:l.push(f(l)+"skewX(",null,o)-2,x:Xp(i,s)}):s&&l.push(f(l)+"skewX("+s+o)}function c(i,s,l,d,h,m){if(i!==l||s!==d){var g=h.push(f(h)+"scale(",null,",",null,")");m.push({i:g-4,x:Xp(i,l)},{i:g-2,x:Xp(s,d)})}else(l!==1||d!==1)&&h.push(f(h)+"scale("+l+","+d+")")}return function(i,s){var l=[],d=[];return i=t(i),s=t(s),r(i.translateX,i.translateY,s.translateX,s.translateY,l,d),a(i.rotate,s.rotate,l,d),u(i.skewX,s.skewX,l,d),c(i.scaleX,i.scaleY,s.scaleX,s.scaleY,l,d),i=s=null,function(h){for(var m=-1,g=d.length,p;++mMath.pow(t,n)}function IK(t){return t===Math.E?Math.log:t===10&&Math.log10||t===2&&Math.log2||(t=Math.log(t),n=>Math.log(n)/t)}function p7(t){return(n,e)=>-t(-n,e)}function W6(t){const n=t(h7,d7),e=n.domain;let o=10,f,r;function a(){return f=IK(o),r=DK(o),e()[0]<0?(f=p7(f),r=p7(r),t(OK,LK)):t(h7,d7),n}return n.base=function(u){return arguments.length?(o=+u,a()):o},n.domain=function(u){return arguments.length?(e(u),a()):e()},n.ticks=u=>{const c=e();let i=c[0],s=c[c.length-1];const l=s0){for(;d<=h;++d)for(m=1;ms)break;v.push(g)}}else for(;d<=h;++d)for(m=o-1;m>=1;--m)if(g=d>0?m/r(-d):m*r(d),!(gs)break;v.push(g)}v.length*2{if(u==null&&(u=10),c==null&&(c=o===10?"s":","),typeof c!="function"&&(!(o%1)&&(c=K4(c)).precision==null&&(c.trim=!0),c=ND(c)),u===1/0)return c;const i=Math.max(1,o*u/n.ticks().length);return s=>{let l=s/r(Math.round(f(s)));return l*oe(FR(e(),{floor:u=>r(Math.floor(f(u))),ceil:u=>r(Math.ceil(f(u)))})),n}function NR(){const t=W6(xA()).domain([1,10]);return t.copy=()=>G2(t,NR()).base(t.base()),Zh.apply(t,arguments),t}function g7(t){return function(n){return Math.sign(n)*Math.log1p(Math.abs(n/t))}}function m7(t){return function(n){return Math.sign(n)*Math.expm1(Math.abs(n))*t}}function Y6(t){var n=1,e=t(g7(n),m7(n));return e.constant=function(o){return arguments.length?t(g7(n=+o),m7(n)):n},jm(e)}function BR(){var t=Y6(xA());return t.copy=function(){return G2(t,BR()).constant(t.constant())},Zh.apply(t,arguments)}function v7(t){return function(n){return n<0?-Math.pow(-n,t):Math.pow(n,t)}}function zK(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function RK(t){return t<0?-t*t:t*t}function X6(t){var n=t(Ed,Ed),e=1;function o(){return e===1?t(Ed,Ed):e===.5?t(zK,RK):t(v7(e),v7(1/e))}return n.exponent=function(f){return arguments.length?(e=+f,o()):e},jm(n)}function Z6(){var t=X6(xA());return t.copy=function(){return G2(t,Z6()).exponent(t.exponent())},Zh.apply(t,arguments),t}function FK(){return Z6.apply(null,arguments).exponent(.5)}function jR(){var t=[],n=[],e=[],o;function f(){var a=0,u=Math.max(1,n.length);for(e=new Array(u-1);++a0?e[u-1]:t[0],u=e?[o[e-1],n]:[o[i-1],o[i]]},a.unknown=function(c){return arguments.length&&(r=c),a},a.thresholds=function(){return o.slice()},a.copy=function(){return UR().domain([t,n]).range(f).unknown(r)},Zh.apply(jm(a),arguments)}function VR(){var t=[.5],n=[0,1],e,o=1;function f(r){return r!=null&&r<=r?n[W2(t,r,0,o)]:e}return f.domain=function(r){return arguments.length?(t=Array.from(r),o=Math.min(t.length,n.length-1),f):t.slice()},f.range=function(r){return arguments.length?(n=Array.from(r),o=Math.min(t.length,n.length-1),f):n.slice()},f.invertExtent=function(r){var a=n.indexOf(r);return[t[a-1],t[a]]},f.unknown=function(r){return arguments.length?(e=r,f):e},f.copy=function(){return VR().domain(t).range(n).unknown(e)},Zh.apply(f,arguments)}function NK(t){return new Date(t)}function BK(t){return t instanceof Date?+t:+new Date(+t)}function J6(t,n,e,o,f,r,a,u,c,i){var s=oW(),l=s.invert,d=s.domain,h=i(".%L"),m=i(":%S"),g=i("%I:%M"),p=i("%I %p"),v=i("%a %d"),y=i("%b %d"),x=i("%B"),w=i("%Y");function k(b){return(c(b)0?o:1:0}const HK="identity",hm="linear",Wh="log",Ly="pow",Py="sqrt",mw="symlog",w0="time",k0="utc",Gf="sequential",Ym="diverging",dm="quantile",vw="quantize",yw="threshold",nM="ordinal",Ak="point",YR="band",rM="bin-ordinal",Xs="continuous",Dy="discrete",Iy="discretizing",kc="interpolating",iM="temporal";function $K(t){return function(n){let e=n[0],o=n[1],f;return o=o&&e[c]<=f&&(r<0&&(r=c),a=c);if(!(r<0))return o=t.invertExtent(e[r]),f=t.invertExtent(e[a]),[o[0]===void 0?o[1]:o[0],f[1]===void 0?f[0]:f[1]]}}function aM(){const t=q6().unknown(void 0),n=t.domain,e=t.range;let o=[0,1],f,r,a=!1,u=0,c=0,i=.5;delete t.unknown;function s(){const l=n().length,d=o[1]g+f*v);return e(d?p.reverse():p)}return t.domain=function(l){return arguments.length?(n(l),s()):n()},t.range=function(l){return arguments.length?(o=[+l[0],+l[1]],s()):o.slice()},t.rangeRound=function(l){return o=[+l[0],+l[1]],a=!0,s()},t.bandwidth=function(){return r},t.step=function(){return f},t.round=function(l){return arguments.length?(a=!!l,s()):a},t.padding=function(l){return arguments.length?(c=Math.max(0,Math.min(1,l)),u=c,s()):u},t.paddingInner=function(l){return arguments.length?(u=Math.max(0,Math.min(1,l)),s()):u},t.paddingOuter=function(l){return arguments.length?(c=Math.max(0,Math.min(1,l)),s()):c},t.align=function(l){return arguments.length?(i=Math.max(0,Math.min(1,l)),s()):i},t.invertRange=function(l){if(l[0]==null||l[1]==null)return;const d=o[1]o[1-d])))return v=Math.max(0,ek(h,g)-1),y=g===p?v:ek(h,p)-1,g-h[v]>r+1e-10&&++v,d&&(x=v,v=m-y,y=m-x),v>y?void 0:n().slice(v,y+1)},t.invert=function(l){const d=t.invertRange([l,l]);return d&&d[0]},t.copy=function(){return aM().domain(n()).range(o).round(a).paddingInner(u).paddingOuter(c).align(i)},s()}function XR(t){const n=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,t.copy=function(){return XR(n())},t}function WK(){return XR(aM().paddingInner(1))}var YK=Array.prototype.map;function XK(t){return YK.call(t,Rl)}const ZK=Array.prototype.slice;function ZR(){let t=[],n=[];function e(o){return o==null||o!==o?void 0:n[(W2(t,o)-1)%n.length]}return e.domain=function(o){return arguments.length?(t=XK(o),e):t.slice()},e.range=function(o){return arguments.length?(n=ZK.call(o),e):n.slice()},e.tickFormat=function(o,f){return lW(t[0],Na(t),o??10,f)},e.copy=function(){return ZR().domain(e.domain()).range(e.range())},e}const S_={};function JK(t,n,e){const o=function(){const r=n();return r.invertRange||(r.invertRange=r.invert?$K(r):r.invertExtent?GK(r):void 0),r.type=t,r};return o.metadata=ff(ki(e)),o}function Xa(t,n,e){return arguments.length>1?(S_[t]=JK(t,n,e),this):JR(t)?S_[t]:void 0}Xa(HK,RR);Xa(hm,sW,Xs);Xa(Wh,NR,[Xs,Wh]);Xa(Ly,Z6,Xs);Xa(Py,FK,Xs);Xa(mw,BR,Xs);Xa(w0,jK,[Xs,iM]);Xa(k0,UK,[Xs,iM]);Xa(Gf,K6,[Xs,kc]);Xa("".concat(Gf,"-").concat(hm),K6,[Xs,kc]);Xa("".concat(Gf,"-").concat(Wh),qR,[Xs,kc,Wh]);Xa("".concat(Gf,"-").concat(Ly),Q6,[Xs,kc]);Xa("".concat(Gf,"-").concat(Py),VK,[Xs,kc]);Xa("".concat(Gf,"-").concat(mw),HR,[Xs,kc]);Xa("".concat(Ym,"-").concat(hm),$R,[Xs,kc]);Xa("".concat(Ym,"-").concat(Wh),GR,[Xs,kc,Wh]);Xa("".concat(Ym,"-").concat(Ly),eM,[Xs,kc]);Xa("".concat(Ym,"-").concat(Py),qK,[Xs,kc]);Xa("".concat(Ym,"-").concat(mw),WR,[Xs,kc]);Xa(dm,jR,[Iy,dm]);Xa(vw,UR,Iy);Xa(yw,VR,Iy);Xa(rM,ZR,[Dy,Iy]);Xa(nM,q6,Dy);Xa(YR,aM,Dy);Xa(Ak,WK,Dy);function JR(t){return qi(S_,t)}function G0(t,n){const e=S_[t];return e&&e.metadata[n]}function oM(t){return G0(t,Xs)}function pm(t){return G0(t,Dy)}function Mk(t){return G0(t,Iy)}function KR(t){return G0(t,Wh)}function KK(t){return G0(t,iM)}function QR(t){return G0(t,kc)}function eF(t){return G0(t,dm)}const QK=["clamp","base","constant","exponent"];function tF(t,n){const e=n[0],o=Na(n)-e;return function(f){return t(e+f*o)}}function xw(t,n,e){return G6(sM(n||"rgb",e),t)}function nF(t,n){const e=new Array(n),o=n+1;for(let f=0;ft[u]?a[u](t[u]()):0),a)}function sM(t,n){const e=CK[eQ(t)];return n!=null&&e&&e.gamma?e.gamma(n):e}function eQ(t){return"interpolate"+t.toLowerCase().split("-").map(n=>n[0].toUpperCase()+n.slice(1)).join("")}const tQ={blues:"cfe1f2bed8eca8cee58fc1de74b2d75ba3cf4592c63181bd206fb2125ca40a4a90",greens:"d3eecdc0e6baabdda594d3917bc77d60ba6c46ab5e329a512089430e7735036429",greys:"e2e2e2d4d4d4c4c4c4b1b1b19d9d9d8888887575756262624d4d4d3535351e1e1e",oranges:"fdd8b3fdc998fdb87bfda55efc9244f87f2cf06b18e4580bd14904b93d029f3303",purples:"e2e1efd4d4e8c4c5e0b4b3d6a3a0cc928ec3827cb97566ae684ea25c3696501f8c",reds:"fdc9b4fcb49afc9e80fc8767fa7051f6573fec3f2fdc2a25c81b1db21218970b13",blueGreen:"d5efedc1e8e0a7ddd18bd2be70c6a958ba9144ad77319c5d2089460e7736036429",bluePurple:"ccddecbad0e4a8c2dd9ab0d4919cc98d85be8b6db28a55a6873c99822287730f71",greenBlue:"d3eecec5e8c3b1e1bb9bd8bb82cec269c2ca51b2cd3c9fc7288abd1675b10b60a1",orangeRed:"fddcaffdcf9bfdc18afdad77fb9562f67d53ee6545e24932d32d1ebf130da70403",purpleBlue:"dbdaebc8cee4b1c3de97b7d87bacd15b9fc93a90c01e7fb70b70ab056199045281",purpleBlueGreen:"dbd8eac8cee4b0c3de93b7d872acd1549fc83892bb1c88a3097f8702736b016353",purpleRed:"dcc9e2d3b3d7ce9eccd186c0da6bb2e14da0e23189d91e6fc61159ab07498f023a",redPurple:"fccfccfcbec0faa9b8f98faff571a5ec539ddb3695c41b8aa908808d0179700174",yellowGreen:"e4f4acd1eca0b9e2949ed68880c97c62bb6e47aa5e3297502083440e723b036034",yellowOrangeBrown:"feeaa1fedd84fecc63feb746fca031f68921eb7215db5e0bc54c05ab3d038f3204",yellowOrangeRed:"fee087fed16ffebd59fea849fd903efc7335f9522bee3423de1b20ca0b22af0225",blueOrange:"134b852f78b35da2cb9dcae1d2e5eff2f0ebfce0bafbbf74e8932fc5690d994a07",brownBlueGreen:"704108a0651ac79548e3c78af3e6c6eef1eac9e9e48ed1c74da79e187a72025147",purpleGreen:"5b1667834792a67fb6c9aed3e6d6e8eff0efd9efd5aedda971bb75368e490e5e29",purpleOrange:"4114696647968f83b7b9b4d6dadbebf3eeeafce0bafbbf74e8932fc5690d994a07",redBlue:"8c0d25bf363adf745ef4ae91fbdbc9f2efeed2e5ef9dcae15da2cb2f78b3134b85",redGrey:"8c0d25bf363adf745ef4ae91fcdccbfaf4f1e2e2e2c0c0c0969696646464343434",yellowGreenBlue:"eff9bddbf1b4bde5b594d5b969c5be45b4c22c9ec02182b82163aa23479c1c3185",redYellowBlue:"a50026d4322cf16e43fcac64fedd90faf8c1dcf1ecabd6e875abd04a74b4313695",redYellowGreen:"a50026d4322cf16e43fcac63fedd8df9f7aed7ee8ea4d86e64bc6122964f006837",pinkYellowGreen:"8e0152c0267edd72adf0b3d6faddedf5f3efe1f2cab6de8780bb474f9125276419",spectral:"9e0142d13c4bf0704afcac63fedd8dfbf8b0e0f3a1a9dda269bda94288b55e4fa2",viridis:"440154470e61481a6c482575472f7d443a834144873d4e8a39568c35608d31688e2d708e2a788e27818e23888e21918d1f988b1fa08822a8842ab07f35b77943bf7154c56866cc5d7ad1518fd744a5db36bcdf27d2e21be9e51afde725",magma:"0000040404130b0924150e3720114b2c11603b0f704a107957157e651a80721f817f24828c29819a2e80a8327db6377ac43c75d1426fde4968e95462f1605df76f5cfa7f5efc8f65fe9f6dfeaf78febf84fece91fddea0fcedaffcfdbf",inferno:"0000040403130c0826170c3b240c4f330a5f420a68500d6c5d126e6b176e781c6d86216b932667a12b62ae305cbb3755c73e4cd24644dd513ae65c30ed6925f3771af8850ffb9506fca50afcb519fac62df6d645f2e661f3f484fcffa4",plasma:"0d088723069033059742039d5002a25d01a66a00a87801a88405a7900da49c179ea72198b12a90ba3488c33d80cb4779d35171da5a69e16462e76e5bed7953f2834cf68f44fa9a3dfca636fdb32ffec029fcce25f9dc24f5ea27f0f921",cividis:"00205100235800265d002961012b65042e670831690d346b11366c16396d1c3c6e213f6e26426e2c456e31476e374a6e3c4d6e42506e47536d4c566d51586e555b6e5a5e6e5e616e62646f66676f6a6a706e6d717270717573727976737c79747f7c75827f758682768985778c8877908b78938e789691789a94789e9778a19b78a59e77a9a177aea575b2a874b6ab73bbaf71c0b26fc5b66dc9b96acebd68d3c065d8c462ddc85fe2cb5ce7cf58ebd355f0d652f3da4ff7de4cfae249fce647",rainbow:"6e40aa883eb1a43db3bf3cafd83fa4ee4395fe4b83ff576eff6659ff7847ff8c38f3a130e2b72fcfcc36bee044aff05b8ff4576ff65b52f6673af27828ea8d1ddfa319d0b81cbecb23abd82f96e03d82e14c6edb5a5dd0664dbf6e40aa",sinebow:"ff4040fc582af47218e78d0bd5a703bfbf00a7d5038de70b72f41858fc2a40ff402afc5818f4720be78d03d5a700bfbf03a7d50b8de71872f42a58fc4040ff582afc7218f48d0be7a703d5bf00bfd503a7e70b8df41872fc2a58ff4040",turbo:"23171b32204a3e2a71453493493eae4b49c54a53d7485ee44569ee4074f53c7ff8378af93295f72e9ff42ba9ef28b3e926bce125c5d925cdcf27d5c629dcbc2de3b232e9a738ee9d3ff39347f68950f9805afc7765fd6e70fe667cfd5e88fc5795fb51a1f84badf545b9f140c5ec3cd0e637dae034e4d931ecd12ef4c92bfac029ffb626ffad24ffa223ff9821ff8d1fff821dff771cfd6c1af76118f05616e84b14df4111d5380fcb2f0dc0260ab61f07ac1805a313029b0f00950c00910b00",browns:"eedbbdecca96e9b97ae4a865dc9856d18954c7784cc0673fb85536ad44339f3632",tealBlues:"bce4d89dd3d181c3cb65b3c245a2b9368fae347da0306a932c5985",teals:"bbdfdfa2d4d58ac9c975bcbb61b0af4da5a43799982b8b8c1e7f7f127273006667",warmGreys:"dcd4d0cec5c1c0b8b4b3aaa7a59c9998908c8b827f7e7673726866665c5a59504e",goldGreen:"f4d166d5ca60b6c35c98bb597cb25760a6564b9c533f8f4f33834a257740146c36",goldOrange:"f4d166f8be5cf8aa4cf5983bf3852aef701be2621fd65322c54923b142239e3a26",goldRed:"f4d166f6be59f9aa51fc964ef6834bee734ae56249db5247cf4244c43141b71d3e",lightGreyRed:"efe9e6e1dad7d5cbc8c8bdb9bbaea9cd967ddc7b43e15f19df4011dc000b",lightGreyTeal:"e4eaead6dcddc8ced2b7c2c7a6b4bc64b0bf22a6c32295c11f85be1876bc",lightMulti:"e0f1f2c4e9d0b0de9fd0e181f6e072f6c053f3993ef77440ef4a3c",lightOrange:"f2e7daf7d5baf9c499fab184fa9c73f68967ef7860e8645bde515bd43d5b",lightTealBlue:"e3e9e0c0dccf9aceca7abfc859afc0389fb9328dad2f7ca0276b95255988",darkBlue:"3232322d46681a5c930074af008cbf05a7ce25c0dd38daed50f3faffffff",darkGold:"3c3c3c584b37725e348c7631ae8b2bcfa424ecc31ef9de30fff184ffffff",darkGreen:"3a3a3a215748006f4d048942489e4276b340a6c63dd2d836ffeb2cffffaa",darkMulti:"3737371f5287197d8c29a86995ce3fffe800ffffff",darkRed:"3434347036339e3c38cc4037e75d1eec8620eeab29f0ce32ffeb2c"},nQ={category10:"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf",category20:"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5",category20b:"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6",category20c:"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9",tableau10:"4c78a8f58518e4575672b7b254a24beeca3bb279a2ff9da69d755dbab0ac",tableau20:"4c78a89ecae9f58518ffbf7954a24b88d27ab79a20f2cf5b43989483bcb6e45756ff9d9879706ebab0acd67195fcbfd2b279a2d6a5c99e765fd8b5a5",accent:"7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666",dark2:"1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666",paired:"a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928",pastel1:"fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2",pastel2:"b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc",set1:"e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999",set2:"66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3",set3:"8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"};function iF(t){const n=t.length/6|0,e=new Array(n);for(let o=0;oxw(iF(t)));function lM(t,n){return t=t&&t.toLowerCase(),arguments.length>1?(y7[t]=n,this):y7[t]}const Vb="symbol",rQ="discrete",iQ="gradient",aQ=t=>Ir(t)?t.map(n=>String(n)):String(t),oQ=(t,n)=>t[1]-n[1],sQ=(t,n)=>n[1]-t[1];function uM(t,n,e){let o;return wo(n)&&(t.bins&&(n=Math.max(n,t.bins.length)),e!=null&&(n=Math.min(n,Math.floor(Ay(t.domain())/e||1)))),Ei(n)&&(o=n.step,n=n.interval),bi(n)&&(n=t.type===w0?$m(n):t.type==k0?Gm(n):Pr("Only time and utc scales accept interval strings."),o&&(n=n.every(o))),n}function oF(t,n,e){let o=t.range(),f=o[0],r=Na(o),a=oQ;if(f>r&&(o=r,r=f,f=o,a=sQ),f=Math.floor(f),r=Math.ceil(r),n=n.map(u=>[u,t(u)]).filter(u=>f<=u[1]&&u[1]<=r).sort(a).map(u=>u[0]),e>0&&n.length>1){const u=[n[0],Na(n)];for(;n.length>e&&n.length>=3;)n=n.filter((c,i)=>!(i%2));n.length<3&&(n=u)}return n}function cM(t,n){return t.bins?oF(t,t.bins):t.ticks?t.ticks(n):t.domain()}function sF(t,n,e,o,f,r){const a=n.type;let u=aQ;if(a===w0||f===w0)u=t.timeFormat(o);else if(a===k0||f===k0)u=t.utcFormat(o);else if(KR(a)){const c=t.formatFloat(o);if(r||n.bins)u=c;else{const i=lF(n,e,!1);u=s=>i(s)?c(s):""}}else if(n.tickFormat){const c=n.domain();u=t.formatSpan(c[0],c[c.length-1],e,o)}else o&&(u=t.format(o));return u}function lF(t,n,e){const o=cM(t,n),f=t.base(),r=Math.log(f),a=Math.max(1,f*n/o.length),u=c=>{let i=c/Math.pow(f,Math.round(Math.log(c)/r));return i*f1?o[1]-o[0]:o[0],a;for(a=1;aSk[t.type]||t.bins;function fF(t,n,e,o,f,r,a){const u=uF[n.type]&&r!==w0&&r!==k0?lQ(t,n,f):sF(t,n,e,f,r,a);return o===Vb&&fQ(n)?hQ(u):o===rQ?dQ(u):pQ(u)}const hQ=t=>(n,e,o)=>{const f=x7(o[e+1],x7(o.max,1/0)),r=b7(n,t),a=b7(f,t);return r&&a?r+" \u2013 "+a:a?"< "+a:"\u2265 "+r},x7=(t,n)=>t??n,dQ=t=>(n,e)=>e?t(n):null,pQ=t=>n=>t(n),b7=(t,n)=>Number.isFinite(t)?n(t):null;function gQ(t){const n=t.domain(),e=n.length-1;let o=+n[0],f=+Na(n),r=f-o;if(t.type===yw){const a=e?r/e:.1;o-=a,f+=a,r=f-o}return a=>(a-o)/r}function mQ(t,n,e,o){const f=o||n.type;return bi(e)&&KK(f)&&(e=e.replace(/%a/g,"%A").replace(/%b/g,"%B")),!e&&f===w0?t.timeFormat("%A, %d %B %Y, %X"):!e&&f===k0?t.utcFormat("%A, %d %B %Y, %X UTC"):fF(t,n,5,null,e,o,!0)}function hF(t,n,e){e=e||{};const o=Math.max(3,e.maxlen||7),f=mQ(t,n,e.format,e.formatType);if(Mk(n.type)){const r=cF(n).slice(1).map(f),a=r.length;return"".concat(a," boundar").concat(a===1?"y":"ies",": ").concat(r.join(", "))}else if(pm(n.type)){const r=n.domain(),a=r.length,u=a>o?r.slice(0,o-2).map(f).join(", ")+", ending with "+r.slice(-1).map(f):r.map(f).join(", ");return"".concat(a," value").concat(a===1?"":"s",": ").concat(u)}else{const r=n.domain();return"values from ".concat(f(r[0])," to ").concat(f(Na(r)))}}let dF=0;function vQ(){dF=0}const E_="p_";function fM(t){return t&&t.gradient}function pF(t,n,e){const o=t.gradient;let f=t.id,r=o==="radial"?E_:"";return f||(f=t.id="gradient_"+dF++,o==="radial"?(t.x1=Lf(t.x1,.5),t.y1=Lf(t.y1,.5),t.r1=Lf(t.r1,0),t.x2=Lf(t.x2,.5),t.y2=Lf(t.y2,.5),t.r2=Lf(t.r2,.5),r=E_):(t.x1=Lf(t.x1,0),t.y1=Lf(t.y1,0),t.x2=Lf(t.x2,1),t.y2=Lf(t.y2,0))),n[f]=t,"url("+(e||"")+"#"+r+f+")"}function Lf(t,n){return t??n}function gF(t,n){var e=[],o;return o={gradient:"linear",x1:t?t[0]:0,y1:t?t[1]:0,x2:n?n[0]:1,y2:n?n[1]:0,stops:e,stop:function(f,r){return e.push({offset:f,color:r}),o}}}const _7={basis:{curve:HJ},"basis-closed":{curve:$J},"basis-open":{curve:GJ},bundle:{curve:WJ,tension:"beta",value:.85},cardinal:{curve:YJ,tension:"tension",value:0},"cardinal-open":{curve:ZJ,tension:"tension",value:0},"cardinal-closed":{curve:XJ,tension:"tension",value:0},"catmull-rom":{curve:JJ,tension:"alpha",value:.5},"catmull-rom-closed":{curve:KJ,tension:"alpha",value:.5},"catmull-rom-open":{curve:QJ,tension:"alpha",value:.5},linear:{curve:jD},"linear-closed":{curve:eK},monotone:{horizontal:nK,vertical:tK},natural:{curve:rK},step:{curve:iK},"step-after":{curve:oK},"step-before":{curve:aK}};function hM(t,n,e){var o=qi(_7,t)&&_7[t],f=null;return o&&(f=o.curve||o[n||"vertical"],o.tension&&e!=null&&(f=f[o.tension](e))),f}const yQ={m:2,l:2,h:1,v:1,z:0,c:6,s:4,q:4,t:2,a:7},xQ=/[mlhvzcsqta]([^mlhvzcsqta]+|$)/gi,bQ=/^[+-]?(([0-9]*\.[0-9]+)|([0-9]+\.)|([0-9]+))([eE][+-]?[0-9]+)?/,_Q=/^((\s+,?\s*)|(,\s*))/,wQ=/^[01]/;function gm(t){const n=[];return(t.match(xQ)||[]).forEach(o=>{let f=o[0];const r=f.toLowerCase(),a=yQ[r],u=kQ(r,a,o.slice(1).trim()),c=u.length;if(c1&&(g=Math.sqrt(g),e*=g,o*=g);const p=d/e,v=l/e,y=-l/o,x=d/o,w=p*u+v*c,k=y*u+x*c,b=p*t+v*n,T=y*t+x*n,_=(b-w)*(b-w)+(T-k)*(T-k);let M=1/_-.25;M<0&&(M=0);let A=Math.sqrt(M);r==f&&(A=-A);const S=.5*(w+b)-A*(T-k),E=.5*(k+T)+A*(b-w),D=Math.atan2(k-E,w-S);let R=Math.atan2(T-E,b-S)-D;R<0&&r===1?R+=Ff:R>0&&r===0&&(R-=Ff);const z=Math.ceil(Math.abs(R/(Qp+.001))),L=[];for(let P=0;P+t}function ib(t,n,e){return Math.max(n,Math.min(t,e))}function yF(){var t=CQ,n=OQ,e=LQ,o=PQ,f=Th(0),r=f,a=f,u=f,c=null;function i(s,l,d){var h,m=l??+t.call(this,s),g=d??+n.call(this,s),p=+e.call(this,s),v=+o.call(this,s),y=Math.min(p,v)/2,x=ib(+f.call(this,s),0,y),w=ib(+r.call(this,s),0,y),k=ib(+a.call(this,s),0,y),b=ib(+u.call(this,s),0,y);if(c||(c=h=Bm()),x<=0&&w<=0&&k<=0&&b<=0)c.rect(m,g,p,v);else{var T=m+p,_=g+v;c.moveTo(m+x,g),c.lineTo(T-w,g),c.bezierCurveTo(T-md*w,g,T,g+md*w,T,g+w),c.lineTo(T,_-b),c.bezierCurveTo(T,_-md*b,T-md*b,_,T-b,_),c.lineTo(m+k,_),c.bezierCurveTo(m+md*k,_,m,_-md*k,m,_-k),c.lineTo(m,g+x),c.bezierCurveTo(m,g+md*x,m+md*x,g,m+x,g),c.closePath()}if(h)return c=null,h+""||null}return i.x=function(s){return arguments.length?(t=Th(s),i):t},i.y=function(s){return arguments.length?(n=Th(s),i):n},i.width=function(s){return arguments.length?(e=Th(s),i):e},i.height=function(s){return arguments.length?(o=Th(s),i):o},i.cornerRadius=function(s,l,d,h){return arguments.length?(f=Th(s),r=l!=null?Th(l):f,u=d!=null?Th(d):f,a=h!=null?Th(h):r,i):f},i.context=function(s){return arguments.length?(c=s??null,i):c},i}function xF(){var t,n,e,o,f=null,r,a,u,c;function i(l,d,h){const m=h/2;if(r){var g=u-d,p=l-a;if(g||p){var v=Math.sqrt(g*g+p*p),y=(g/=v)*c,x=(p/=v)*c,w=Math.atan2(p,g);f.moveTo(a-y,u-x),f.lineTo(l-g*m,d-p*m),f.arc(l,d,m,w-Math.PI,w),f.lineTo(a+y,u+x),f.arc(a,u,c,w,w+Math.PI)}else f.arc(l,d,m,0,Ff);f.closePath()}else r=1;a=l,u=d,c=m}function s(l){var d,h=l.length,m,g=!1,p;for(f==null&&(f=p=Bm()),d=0;d<=h;++d)!(dt.x||0,Fy=t=>t.y||0,DQ=t=>t.width||0,IQ=t=>t.height||0,zQ=t=>(t.x||0)+(t.width||0),RQ=t=>(t.y||0)+(t.height||0),FQ=t=>t.startAngle||0,NQ=t=>t.endAngle||0,BQ=t=>t.padAngle||0,jQ=t=>t.innerRadius||0,UQ=t=>t.outerRadius||0,VQ=t=>t.cornerRadius||0,qQ=t=>zy(t.cornerRadiusTopLeft,t.cornerRadius)||0,HQ=t=>zy(t.cornerRadiusTopRight,t.cornerRadius)||0,$Q=t=>zy(t.cornerRadiusBottomRight,t.cornerRadius)||0,GQ=t=>zy(t.cornerRadiusBottomLeft,t.cornerRadius)||0,WQ=t=>zy(t.size,64),YQ=t=>t.size||1,bw=t=>t.defined!==!1,XQ=t=>vF(t.shape||"circle"),ZQ=UJ().startAngle(FQ).endAngle(NQ).padAngle(BQ).innerRadius(jQ).outerRadius(UQ).cornerRadius(VQ),JQ=cR().x(Ry).y1(Fy).y0(RQ).defined(bw),KQ=cR().y(Fy).x1(Ry).x0(zQ).defined(bw),QQ=BD().x(Ry).y(Fy).defined(bw),eee=yF().x(Ry).y(Fy).width(DQ).height(IQ).cornerRadius(qQ,HQ,$Q,GQ),tee=qJ().type(XQ).size(WQ),nee=xF().x(Ry).y(Fy).defined(bw).size(YQ);function dM(t){return t.cornerRadius||t.cornerRadiusTopLeft||t.cornerRadiusTopRight||t.cornerRadiusBottomRight||t.cornerRadiusBottomLeft}function ree(t,n){return ZQ.context(t)(n)}function iee(t,n){const e=n[0],o=e.interpolate||"linear";return(e.orient==="horizontal"?KQ:JQ).curve(hM(o,e.orient,e.tension)).context(t)(n)}function aee(t,n){const e=n[0],o=e.interpolate||"linear";return QQ.curve(hM(o,e.orient,e.tension)).context(t)(n)}function Xm(t,n,e,o){return eee.context(t)(n,e,o)}function oee(t,n){return(n.mark.shape||n.shape).context(t)(n)}function see(t,n){return tee.context(t)(n)}function lee(t,n){return nee.context(t)(n)}var bF=1;function _F(){bF=1}function pM(t,n,e){var o=n.clip,f=t._defs,r=n.clip_id||(n.clip_id="clip"+bF++),a=f.clipping[r]||(f.clipping[r]={id:r});return ga(o)?a.path=o(null):dM(e)?a.path=Xm(null,e,0,0):(a.width=e.width||0,a.height=e.height||0),"url(#"+r+")"}function zs(t){this.clear(),t&&this.union(t)}zs.prototype={clone(){return new zs(this)},clear(){return this.x1=+Number.MAX_VALUE,this.y1=+Number.MAX_VALUE,this.x2=-Number.MAX_VALUE,this.y2=-Number.MAX_VALUE,this},empty(){return this.x1===+Number.MAX_VALUE&&this.y1===+Number.MAX_VALUE&&this.x2===-Number.MAX_VALUE&&this.y2===-Number.MAX_VALUE},equals(t){return this.x1===t.x1&&this.y1===t.y1&&this.x2===t.x2&&this.y2===t.y2},set(t,n,e,o){return ethis.x2&&(this.x2=t),n>this.y2&&(this.y2=n),this},expand(t){return this.x1-=t,this.y1-=t,this.x2+=t,this.y2+=t,this},round(){return this.x1=Math.floor(this.x1),this.y1=Math.floor(this.y1),this.x2=Math.ceil(this.x2),this.y2=Math.ceil(this.y2),this},scale(t){return this.x1*=t,this.y1*=t,this.x2*=t,this.y2*=t,this},translate(t,n){return this.x1+=t,this.x2+=t,this.y1+=n,this.y2+=n,this},rotate(t,n,e){const o=this.rotatedPoints(t,n,e);return this.clear().add(o[0],o[1]).add(o[2],o[3]).add(o[4],o[5]).add(o[6],o[7])},rotatedPoints(t,n,e){var{x1:o,y1:f,x2:r,y2:a}=this,u=Math.cos(t),c=Math.sin(t),i=n-n*u+e*c,s=e-n*c-e*u;return[u*o-c*f+i,c*o+u*f+s,u*o-c*a+i,c*o+u*a+s,u*r-c*f+i,c*r+u*f+s,u*r-c*a+i,c*r+u*a+s]},union(t){return t.x1this.x2&&(this.x2=t.x2),t.y2>this.y2&&(this.y2=t.y2),this},intersect(t){return t.x1>this.x1&&(this.x1=t.x1),t.y1>this.y1&&(this.y1=t.y1),t.x2=t.x2&&this.y1<=t.y1&&this.y2>=t.y2},alignsWith(t){return t&&(this.x1==t.x1||this.x2==t.x2||this.y1==t.y1||this.y2==t.y2)},intersects(t){return t&&!(this.x2t.x2||this.y2t.y2)},contains(t,n){return!(tthis.x2||nthis.y2)},width(){return this.x2-this.x1},height(){return this.y2-this.y1}};function _w(t){this.mark=t,this.bounds=this.bounds||new zs}function ww(t){_w.call(this,t),this.items=this.items||[]}ni(ww,_w);function gM(t){this._pending=0,this._loader=t||Q2()}function A7(t){t._pending+=1}function U1(t){t._pending-=1}gM.prototype={pending(){return this._pending},sanitizeURL(t){const n=this;return A7(n),n._loader.sanitize(t,{context:"href"}).then(e=>(U1(n),e)).catch(()=>(U1(n),null))},loadImage(t){const n=this,e=sK();return A7(n),n._loader.sanitize(t,{context:"image"}).then(o=>{const f=o.href;if(!f||!e)throw{url:f};const r=new e,a=qi(o,"crossOrigin")?o.crossOrigin:"anonymous";return a!=null&&(r.crossOrigin=a),r.onload=()=>U1(n),r.onerror=()=>U1(n),r.src=f,r}).catch(o=>(U1(n),{complete:!1,width:0,height:0,src:o&&o.url||""}))},ready(){const t=this;return new Promise(n=>{function e(o){t.pending()?setTimeout(()=>{e(!0)},10):n(o)}e(!1)})}};function Jh(t,n,e){if(n.stroke&&n.opacity!==0&&n.strokeOpacity!==0){const o=n.strokeWidth!=null?+n.strokeWidth:1;t.expand(o+(e?uee(n,o):0))}return t}function uee(t,n){return t.strokeJoin&&t.strokeJoin!=="miter"?0:n}const cee=Ff-1e-8;let kw,qb,Hb,a0,Ek,$b,Ck,Ok;const Od=(t,n)=>kw.add(t,n),Gb=(t,n)=>Od(qb=t,Hb=n),M7=t=>Od(t,kw.y1),S7=t=>Od(kw.x1,t),e0=(t,n)=>Ek*t+Ck*n,t0=(t,n)=>$b*t+Ok*n,G5=(t,n)=>Od(e0(t,n),t0(t,n)),W5=(t,n)=>Gb(e0(t,n),t0(t,n));function Ny(t,n){return kw=t,n?(a0=n*Jd,Ek=Ok=Math.cos(a0),$b=Math.sin(a0),Ck=-$b):(Ek=Ok=1,a0=$b=Ck=0),fee}const fee={beginPath(){},closePath(){},moveTo:W5,lineTo:W5,rect(t,n,e,o){a0?(G5(t+e,n),G5(t+e,n+o),G5(t,n+o),W5(t,n)):(Od(t+e,n+o),Gb(t,n))},quadraticCurveTo(t,n,e,o){const f=e0(t,n),r=t0(t,n),a=e0(e,o),u=t0(e,o);E7(qb,f,a,M7),E7(Hb,r,u,S7),Gb(a,u)},bezierCurveTo(t,n,e,o,f,r){const a=e0(t,n),u=t0(t,n),c=e0(e,o),i=t0(e,o),s=e0(f,r),l=t0(f,r);C7(qb,a,c,s,M7),C7(Hb,u,i,l,S7),Gb(s,l)},arc(t,n,e,o,f,r){if(o+=a0,f+=a0,qb=e*Math.cos(f)+t,Hb=e*Math.sin(f)+n,Math.abs(f-o)>cee)Od(t-e,n-e),Od(t+e,n+e);else{const a=i=>Od(e*Math.cos(i)+t,e*Math.sin(i)+n);let u,c;if(a(o),a(f),f!==o)if(o=o%Ff,o<0&&(o+=Ff),f=f%Ff,f<0&&(f+=Ff),ff;++c,u-=Qp)a(u);else for(u=o-o%Qp+Qp,c=0;c<4&&uTQ?(s=a*a+u*r,s>=0&&(s=Math.sqrt(s),c=(-a+s)/r,i=(-a-s)/r)):c=.5*u/a,0d)return!1;g>l&&(l=g)}else if(h>0){if(g0?(t.globalAlpha=e,t.fillStyle=TF(t,n,n.fill),!0):!1}var dee=[];function vm(t,n,e){var o=(o=n.strokeWidth)!=null?o:1;return o<=0?!1:(e*=n.strokeOpacity==null?1:n.strokeOpacity,e>0?(t.globalAlpha=e,t.strokeStyle=TF(t,n,n.stroke),t.lineWidth=o,t.lineCap=n.strokeCap||"butt",t.lineJoin=n.strokeJoin||"miter",t.miterLimit=n.strokeMiterLimit||10,t.setLineDash&&(t.setLineDash(n.strokeDash||dee),t.lineDashOffset=n.strokeDashOffset||0),!0):!1)}function pee(t,n){return t.zindex-n.zindex||t.index-n.index}function yM(t){if(!t.zdirty)return t.zitems;var n=t.items,e=[],o,f,r;for(f=0,r=n.length;f=0;)if(o=n(e[f]))return o;if(e===r){for(e=t.items,f=e.length;--f>=0;)if(!e[f].zindex&&(o=n(e[f])))return o}return null}function xM(t){return function(n,e,o){df(e,f=>{(!o||o.intersects(f.bounds))&&AF(t,n,f,f)})}}function gee(t){return function(n,e,o){e.items.length&&(!o||o.intersects(e.bounds))&&AF(t,n,e.items[0],e.items)}}function AF(t,n,e,o){var f=e.opacity==null?1:e.opacity;f!==0&&(t(n,o)||(mm(n,e),e.fill&&C_(n,e,f)&&n.fill(),e.stroke&&vm(n,e,f)&&n.stroke()))}function Tw(t){return t=t||mc,function(n,e,o,f,r,a){return o*=n.pixelRatio,f*=n.pixelRatio,O_(e,u=>{const c=u.bounds;if(!(c&&!c.contains(r,a)||!c)&&t(n,u,o,f,r,a))return u})}}function By(t,n){return function(e,o,f,r){var a=Array.isArray(o)?o[0]:o,u=n??a.fill,c=a.stroke&&e.isPointInStroke,i,s;return c&&(i=a.strokeWidth,s=a.strokeCap,e.lineWidth=i??1,e.lineCap=s??"butt"),t(e,o)?!1:u&&e.isPointInPath(f,r)||c&&e.isPointInStroke(f,r)}}function bM(t){return Tw(By(t))}function g0(t,n){return"translate("+t+","+n+")"}function _M(t){return"rotate("+t+")"}function mee(t,n){return"scale("+t+","+n+")"}function MF(t){return g0(t.x||0,t.y||0)}function vee(t){return g0(t.x||0,t.y||0)+(t.angle?" "+_M(t.angle):"")}function yee(t){return g0(t.x||0,t.y||0)+(t.angle?" "+_M(t.angle):"")+(t.scaleX||t.scaleY?" "+mee(t.scaleX||1,t.scaleY||1):"")}function wM(t,n,e){function o(a,u){a("transform",vee(u)),a("d",n(null,u))}function f(a,u){return n(Ny(a,u.angle),u),Jh(a,u).translate(u.x||0,u.y||0)}function r(a,u){var c=u.x||0,i=u.y||0,s=u.angle||0;a.translate(c,i),s&&a.rotate(s*=Jd),a.beginPath(),n(a,u),s&&a.rotate(-s),a.translate(-c,-i)}return{type:t,tag:"path",nested:!1,attr:o,bound:f,draw:xM(r),pick:bM(r),isect:e||mM(r)}}var xee=wM("arc",ree);function bee(t,n){for(var e=t[0].orient==="horizontal"?n[1]:n[0],o=t[0].orient==="horizontal"?"y":"x",f=t.length,r=1/0,a,u;--f>=0;)t[f].defined!==!1&&(u=Math.abs(t[f][o]-e),u=0;)if(t[o].defined!==!1&&(f=t[o].x-n[0],r=t[o].y-n[1],a=f*f+r*r,a=0;)if(t[e].defined!==!1&&(o=t[e].x-n[0],f=t[e].y-n[1],r=o*o+f*f,o=t[e].size||1,r.5&&n<1.5?.5-Math.abs(n-1):0}function Aee(t,n){t("transform",MF(n))}function CF(t,n){const e=EF(n);t("d",Xm(null,n,e,e))}function Mee(t,n){t("class","background"),t("aria-hidden",!0),CF(t,n)}function See(t,n){t("class","foreground"),t("aria-hidden",!0),n.strokeForeground?CF(t,n):t("d","")}function Eee(t,n,e){const o=n.clip?pM(e,n,n):null;t("clip-path",o)}function Cee(t,n){if(!n.clip&&n.items){const e=n.items,o=e.length;for(let f=0;f{const f=o.x||0,r=o.y||0,a=o.strokeForeground,u=o.opacity==null?1:o.opacity;(o.stroke||o.fill)&&u&&(Jv(t,o,f,r),mm(t,o),o.fill&&C_(t,o,u)&&t.fill(),o.stroke&&!a&&vm(t,o,u)&&t.stroke()),t.save(),t.translate(f,r),o.clip&&SF(t,o),e&&e.translate(-f,-r),df(o,c=>{this.draw(t,c,e)}),e&&e.translate(f,r),t.restore(),a&&o.stroke&&u&&(Jv(t,o,f,r),mm(t,o),vm(t,o,u)&&t.stroke())})}function Iee(t,n,e,o,f,r){if(n.bounds&&!n.bounds.contains(f,r)||!n.items)return null;const a=e*t.pixelRatio,u=o*t.pixelRatio;return O_(n,c=>{let i,s,l;const d=c.bounds;if(d&&!d.contains(f,r))return;s=c.x||0,l=c.y||0;const h=s+(c.width||0),m=l+(c.height||0),g=c.clip;if(g&&(fh||rm))return;if(t.save(),t.translate(s,l),s=f-s,l=r-l,g&&dM(c)&&!Pee(t,c,a,u))return t.restore(),null;const p=c.strokeForeground,v=n.interactive!==!1;return v&&p&&c.stroke&&Lee(t,c,a,u)?(t.restore(),c):(i=O_(c,y=>zee(y,s,l)?this.pick(y,e,o,s,l):null),!i&&v&&(c.fill||!p&&c.stroke)&&Oee(t,c,a,u)&&(i=c),t.restore(),i||null)})}function zee(t,n,e){return(t.interactive!==!1||t.marktype==="group")&&t.bounds&&t.bounds.contains(n,e)}var Ree={type:"group",tag:"g",nested:!1,attr:Aee,bound:Cee,draw:Dee,pick:Iee,isect:wF,content:Eee,background:Mee,foreground:See},Kv={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1"};function TM(t,n){var e=t.image;return(!e||t.url&&t.url!==e.url)&&(e={complete:!1,width:0,height:0},n.loadImage(t.url).then(o=>{t.image=o,t.image.url=t.url})),e}function AM(t,n){return t.width!=null?t.width:!n||!n.width?0:t.aspect!==!1&&t.height?t.height*n.width/n.height:n.width}function MM(t,n){return t.height!=null?t.height:!n||!n.height?0:t.aspect!==!1&&t.width?t.width*n.height/n.width:n.height}function Aw(t,n){return t==="center"?n/2:t==="right"?n:0}function Mw(t,n){return t==="middle"?n/2:t==="bottom"?n:0}function Fee(t,n,e){const o=TM(n,e),f=AM(n,o),r=MM(n,o),a=(n.x||0)-Aw(n.align,f),u=(n.y||0)-Mw(n.baseline,r),c=!o.src&&o.toDataURL?o.toDataURL():o.src||"";t("href",c,Kv["xmlns:xlink"],"xlink:href"),t("transform",g0(a,u)),t("width",f),t("height",r),t("preserveAspectRatio",n.aspect===!1?"none":"xMidYMid")}function Nee(t,n){const e=n.image,o=AM(n,e),f=MM(n,e),r=(n.x||0)-Aw(n.align,o),a=(n.y||0)-Mw(n.baseline,f);return t.set(r,a,r+o,a+f)}function Bee(t,n,e){df(n,o=>{if(e&&!e.intersects(o.bounds))return;const f=TM(o,this);let r=AM(o,f),a=MM(o,f);if(r===0||a===0)return;let u=(o.x||0)-Aw(o.align,r),c=(o.y||0)-Mw(o.baseline,a),i,s,l,d;o.aspect!==!1&&(s=f.width/f.height,l=o.width/o.height,s===s&&l===l&&s!==l&&(l{if(!(e&&!e.intersects(o.bounds))){var f=o.opacity==null?1:o.opacity;f&&OF(t,o,f)&&(mm(t,o),t.stroke())}})}function Jee(t,n,e,o){return t.isPointInStroke?OF(t,n,1)&&t.isPointInStroke(e,o):!1}var Kee={type:"rule",tag:"line",nested:!1,attr:Yee,bound:Xee,draw:Zee,pick:Tw(Jee),isect:kF},Qee=wM("shape",oee),ete=wM("symbol",see,vM);const D7=dI();var af={height:ah,measureWidth:SM,estimateWidth:Pk,width:Pk,canvas:LF};LF(!0);function LF(t){af.width=t&&qd?SM:Pk}function Pk(t,n){return PF(Qd(t,n),ah(t))}function PF(t,n){return~~(.8*t.length*n)}function SM(t,n){return ah(t)<=0||!(n=Qd(t,n))?0:DF(n,Sw(t))}function DF(t,n){const e="(".concat(n,") ").concat(t);let o=D7.get(e);return o===void 0&&(qd.font=n,o=qd.measureText(t).width,D7.set(e,o)),o}function ah(t){return t.fontSize!=null?+t.fontSize||0:11}function Kd(t){return t.lineHeight!=null?t.lineHeight:ah(t)+2}function tte(t){return Ir(t)?t.length>1?t:t[0]:t}function jy(t){return tte(t.lineBreak&&t.text&&!Ir(t.text)?t.text.split(t.lineBreak):t.text)}function EM(t){const n=jy(t);return(Ir(n)?n.length-1:0)*Kd(t)}function Qd(t,n){const e=n==null?"":(n+"").trim();return t.limit>0&&e.length?rte(t,e):e}function nte(t){if(af.width===SM){const n=Sw(t);return e=>DF(e,n)}else{const n=ah(t);return e=>PF(e,n)}}function rte(t,n){var e=+t.limit,o=nte(t);if(o(n)>>1,o(n.slice(c))>e?a=c+1:u=c;return f+n.slice(a)}else{for(;a>>1),o(n.slice(0,c))Math.max(d,af.width(n,h)),0)):l=af.width(n,s),f==="center"?c-=l/2:f==="right"&&(c-=l),t.set(c+=a,i+=u,c+l,i+o),n.angle&&!e)t.rotate(n.angle*Jd,a,u);else if(e===2)return t.rotatedPoints(n.angle*Jd,a,u);return t}function ote(t,n,e){df(n,o=>{var f=o.opacity==null?1:o.opacity,r,a,u,c,i,s,l;if(!(e&&!e.intersects(o.bounds)||f===0||o.fontSize<=0||o.text==null||o.text.length===0)){if(t.font=Sw(o),t.textAlign=o.align||"left",r=Ew(o),a=r.x1,u=r.y1,o.angle&&(t.save(),t.translate(a,u),t.rotate(o.angle*Jd),a=u=0),a+=o.dx||0,u+=(o.dy||0)+CM(o),s=jy(o),mm(t,o),Ir(s))for(i=Kd(o),c=0;cn;)t.removeChild(e[--o]);return t}function BF(t){return"mark-"+t.marktype+(t.role?" role-"+t.role:"")+(t.name?" "+t.name:"")}function Cw(t,n){const e=n.getBoundingClientRect();return[t.clientX-e.left-(n.clientLeft||0),t.clientY-e.top-(n.clientTop||0)]}function hte(t,n,e,o){var f=t&&t.mark,r,a;if(f&&(r=tc[f.marktype]).tip){for(a=Cw(n,e),a[0]-=o[0],a[1]-=o[1];t=t.mark.group;)a[0]-=t.x||0,a[1]-=t.y||0;t=r.tip(f.items,a)}return t}function ep(t,n){this._active=null,this._handlers={},this._loader=t||Q2(),this._tooltip=n||dte}function dte(t,n,e,o){t.element().setAttribute("title",o||"")}ep.prototype={initialize(t,n,e){return this._el=t,this._obj=e||null,this.origin(n)},element(){return this._el},canvas(){return this._el&&this._el.firstChild},origin(t){return arguments.length?(this._origin=t||[0,0],this):this._origin.slice()},scene(t){return arguments.length?(this._scene=t,this):this._scene},on(){},off(){},_handlerIndex(t,n,e){for(let o=t?t.length:0;--o>=0;)if(t[o].type===n&&(!e||t[o].handler===e))return o;return-1},handlers(t){const n=this._handlers,e=[];if(t)e.push(...n[this.eventName(t)]);else for(const o in n)e.push(...n[o]);return e},eventName(t){const n=t.indexOf(".");return n<0?t:t.slice(0,n)},handleHref(t,n,e){this._loader.sanitize(e,{context:"href"}).then(o=>{const f=new MouseEvent(t.type,t),r=Ld(null,"a");for(const a in o)r.setAttribute(a,o[a]);r.dispatchEvent(f)}).catch(()=>{})},handleTooltip(t,n,e){if(n&&n.tooltip!=null){n=hte(n,t,this.canvas(),this._origin);const o=e&&n&&n.tooltip||null;this._tooltip.call(this._obj,this,t,n,o)}},getItemBoundingClientRect(t){const n=this.canvas();if(!n)return;const e=n.getBoundingClientRect(),o=this._origin,f=t.bounds,r=f.width(),a=f.height();let u=f.x1+o[0]+e.left,c=f.y1+o[1]+e.top;for(;t.mark&&(t=t.mark.group);)u+=t.x||0,c+=t.y||0;return{x:u,y:c,width:r,height:a,left:u,top:c,right:u+r,bottom:c+a}}};function oh(t){this._el=null,this._bgcolor=null,this._loader=new gM(t)}oh.prototype={initialize(t,n,e,o,f){return this._el=t,this.resize(n,e,o,f)},element(){return this._el},canvas(){return this._el&&this._el.firstChild},background(t){return arguments.length===0?this._bgcolor:(this._bgcolor=t,this)},resize(t,n,e,o){return this._width=t,this._height=n,this._origin=e||[0,0],this._scale=o||1,this},dirty(){},render(t){const n=this;return n._call=function(){n._render(t)},n._call(),n._call=null,n},_render(){},renderAsync(t){const n=this.render(t);return this._ready?this._ready.then(()=>n):Promise.resolve(n)},_load(t,n){var e=this,o=e._loader[t](n);if(!e._ready){const f=e._call;e._ready=e._loader.ready().then(r=>{r&&f(),e._ready=null})}return o},sanitizeURL(t){return this._load("sanitizeURL",t)},loadImage(t){return this._load("loadImage",t)}};const pte="keydown",gte="keypress",mte="keyup",jF="dragenter",Yb="dragleave",UF="dragover",Ik="mousedown",vte="mouseup",L_="mousemove",Ev="mouseout",VF="mouseover",P_="click",yte="dblclick",xte="wheel",qF="mousewheel",D_="touchstart",I_="touchmove",z_="touchend",bte=[pte,gte,mte,jF,Yb,UF,Ik,vte,L_,Ev,VF,P_,yte,xte,qF,D_,I_,z_],zk=L_,Qv=Ev,Rk=P_;function Vy(t,n){ep.call(this,t,n),this._down=null,this._touch=null,this._first=!0,this._events={}}const _te=t=>t===D_||t===I_||t===z_?[D_,I_,z_]:[t];function z7(t,n){_te(n).forEach(e=>wte(t,e))}function wte(t,n){const e=t.canvas();e&&!t._events[n]&&(t._events[n]=1,e.addEventListener(n,t[n]?o=>t[n](o):o=>t.fire(n,o)))}function R7(t,n,e){return function(o){const f=this._active,r=this.pickEvent(o);r===f?this.fire(t,o):((!f||!f.exit)&&this.fire(e,o),this._active=r,this.fire(n,o),this.fire(t,o))}}function F7(t){return function(n){this.fire(t,n),this._active=null}}ni(Vy,ep,{initialize(t,n,e){return this._canvas=t&&PM(t,"canvas"),[P_,Ik,L_,Ev,Yb].forEach(o=>z7(this,o)),ep.prototype.initialize.call(this,t,n,e)},canvas(){return this._canvas},context(){return this._canvas.getContext("2d")},events:bte,DOMMouseScroll(t){this.fire(qF,t)},mousemove:R7(L_,VF,Ev),dragover:R7(UF,jF,Yb),mouseout:F7(Ev),dragleave:F7(Yb),mousedown(t){this._down=this._active,this.fire(Ik,t)},click(t){this._down===this._active&&(this.fire(P_,t),this._down=null)},touchstart(t){this._touch=this.pickEvent(t.changedTouches[0]),this._first&&(this._active=this._touch,this._first=!1),this.fire(D_,t,!0)},touchmove(t){this.fire(I_,t,!0)},touchend(t){this.fire(z_,t,!0),this._touch=null},fire(t,n,e){const o=e?this._touch:this._active,f=this._handlers[t];if(n.vegaType=t,t===Rk&&o&&o.href?this.handleHref(n,o,o.href):(t===zk||t===Qv)&&this.handleTooltip(n,o,t!==Qv),f)for(let r=0,a=f.length;r=0&&o.splice(f,1),this},pickEvent(t){const n=Cw(t,this._canvas),e=this._origin;return this.pick(this._scene,n[0],n[1],n[0]-e[0],n[1]-e[1])},pick(t,n,e,o,f){const r=this.context();return tc[t.marktype].pick.call(this,r,t,n,e,o,f)}});function kte(){return typeof window<"u"&&window.devicePixelRatio||1}var Tte=kte();function Ate(t,n,e,o,f,r){const a=typeof HTMLElement<"u"&&t instanceof HTMLElement&&t.parentNode!=null,u=t.getContext("2d"),c=a?Tte:f;t.width=n*c,t.height=e*c;for(const i in r)u[i]=r[i];return a&&c!==1&&(t.style.width=n+"px",t.style.height=e+"px"),u.pixelRatio=c,u.setTransform(c,0,0,c,c*o[0],c*o[1]),t}function R_(t){oh.call(this,t),this._options={},this._redraw=!1,this._dirty=new zs,this._tempb=new zs}const N7=oh.prototype,Mte=(t,n,e)=>new zs().set(0,0,n,e).translate(-t[0],-t[1]);function Ste(t,n,e){return n.expand(1).round(),t.pixelRatio%1&&n.scale(t.pixelRatio).round().scale(1/t.pixelRatio),n.translate(-(e[0]%1),-(e[1]%1)),t.beginPath(),t.rect(n.x1,n.y1,n.width(),n.height()),t.clip(),n}ni(R_,oh,{initialize(t,n,e,o,f,r){return this._options=r||{},this._canvas=this._options.externalContext?null:Vd(1,1,this._options.type),t&&this._canvas&&(Xc(t,0).appendChild(this._canvas),this._canvas.setAttribute("class","marks")),N7.initialize.call(this,t,n,e,o,f)},resize(t,n,e,o){if(N7.resize.call(this,t,n,e,o),this._canvas)Ate(this._canvas,this._width,this._height,this._origin,this._scale,this._options.context);else{const f=this._options.externalContext;f||Pr("CanvasRenderer is missing a valid canvas or context"),f.scale(this._scale,this._scale),f.translate(this._origin[0],this._origin[1])}return this._redraw=!0,this},canvas(){return this._canvas},context(){return this._options.externalContext||(this._canvas?this._canvas.getContext("2d"):null)},dirty(t){const n=this._tempb.clear().union(t.bounds);let e=t.mark.group;for(;e;)n.translate(e.x||0,e.y||0),e=e.mark.group;this._dirty.union(n)},_render(t){const n=this.context(),e=this._origin,o=this._width,f=this._height,r=this._dirty,a=Mte(e,o,f);n.save();const u=this._redraw||r.empty()?(this._redraw=!1,a.expand(1)):Ste(n,a.intersect(r),e);return this.clear(-e[0],-e[1],o,f),this.draw(n,t,u),n.restore(),r.clear(),this},draw(t,n,e){const o=tc[n.marktype];n.clip&&Tee(t,n),o.draw.call(this,t,n,e),n.clip&&t.restore()},clear(t,n,e,o){const f=this._options,r=this.context();f.type!=="pdf"&&!f.externalContext&&r.clearRect(t,n,e,o),this._bgcolor!=null&&(r.fillStyle=this._bgcolor,r.fillRect(t,n,e,o))}});function DM(t,n){ep.call(this,t,n);const e=this;e._hrefHandler=Fk(e,(o,f)=>{f&&f.href&&e.handleHref(o,f,f.href)}),e._tooltipHandler=Fk(e,(o,f)=>{e.handleTooltip(o,f,o.type!==Qv)})}const Fk=(t,n)=>e=>{let o=e.target.__data__;o=Array.isArray(o)?o[0]:o,e.vegaType=e.type,n.call(t._obj,e,o)};ni(DM,ep,{initialize(t,n,e){let o=this._svg;return o&&(o.removeEventListener(Rk,this._hrefHandler),o.removeEventListener(zk,this._tooltipHandler),o.removeEventListener(Qv,this._tooltipHandler)),this._svg=o=t&&PM(t,"svg"),o&&(o.addEventListener(Rk,this._hrefHandler),o.addEventListener(zk,this._tooltipHandler),o.addEventListener(Qv,this._tooltipHandler)),ep.prototype.initialize.call(this,t,n,e)},canvas(){return this._svg},on(t,n){const e=this.eventName(t),o=this._handlers;if(this._handlerIndex(o[e],t,n)<0){const r={type:t,handler:n,listener:Fk(this,n)};(o[e]||(o[e]=[])).push(r),this._svg&&this._svg.addEventListener(e,r.listener)}return this},off(t,n){const e=this.eventName(t),o=this._handlers[e],f=this._handlerIndex(o,t,n);return f>=0&&(this._svg&&this._svg.removeEventListener(e,o[f].listener),o.splice(f,1)),this}});const HF="aria-hidden",IM="aria-label",zM="role",RM="aria-roledescription",$F="graphics-object",FM="graphics-symbol",GF=(t,n,e)=>({[zM]:t,[RM]:n,[IM]:e||void 0}),Ete=ff(["axis-domain","axis-grid","axis-label","axis-tick","axis-title","legend-band","legend-entry","legend-gradient","legend-label","legend-title","legend-symbol","title"]),B7={axis:{desc:"axis",caption:Lte},legend:{desc:"legend",caption:Pte},"title-text":{desc:"title",caption:t=>"Title text '".concat(U7(t),"'")},"title-subtitle":{desc:"subtitle",caption:t=>"Subtitle text '".concat(U7(t),"'")}},j7={ariaRole:zM,ariaRoleDescription:RM,description:IM};function WF(t,n){const e=n.aria===!1;if(t(HF,e||void 0),e||n.description==null)for(const o in j7)t(j7[o],void 0);else{const o=n.mark.marktype;t(IM,n.description),t(zM,n.ariaRole||(o==="group"?$F:FM)),t(RM,n.ariaRoleDescription||"".concat(o," mark"))}}function YF(t){return t.aria===!1?{[HF]:!0}:Ete[t.role]?null:B7[t.role]?Ote(t,B7[t.role]):Cte(t)}function Cte(t){const n=t.marktype,e=n==="group"||n==="text"||t.items.some(o=>o.description!=null&&o.aria!==!1);return GF(e?$F:FM,"".concat(n," mark container"),t.description)}function Ote(t,n){try{const e=t.items[0],o=n.caption||(()=>"");return GF(n.role||FM,n.desc,e.description||o(e))}catch{return null}}function U7(t){return ki(t.text).join(" ")}function Lte(t){const n=t.datum,e=t.orient,o=n.title?XF(t):null,f=t.context,r=f.scales[n.scale].value,a=f.dataflow.locale(),u=r.type,c=e==="left"||e==="right"?"Y":"X";return"".concat(c,"-axis")+(o?" titled '".concat(o,"'"):"")+" for a ".concat(pm(u)?"discrete":u," scale")+" with ".concat(hF(a,r,t))}function Pte(t){const n=t.datum,e=n.title?XF(t):null,o="".concat(n.type||""," legend").trim(),f=n.scales,r=Object.keys(f),a=t.context,u=a.scales[f[r[0]]].value,c=a.dataflow.locale();return Ite(o)+(e?" titled '".concat(e,"'"):"")+" for ".concat(Dte(r))+" with ".concat(hF(c,u,t))}function XF(t){try{return ki(Na(t.items).items[0].text).join(" ")}catch{return null}}function Dte(t){return t=t.map(n=>n+(n==="fill"||n==="stroke"?" color":"")),t.length<2?t[0]:t.slice(0,-1).join(", ")+" and "+Na(t)}function Ite(t){return t.length?t[0].toUpperCase()+t.slice(1):t}const ZF=t=>(t+"").replace(/&/g,"&").replace(//g,">"),zte=t=>ZF(t).replace(/"/g,""").replace(/\t/g," ").replace(/\n/g," ").replace(/\r/g," ");function NM(){let t="",n="",e="";const o=[],f=()=>n=e="",r=c=>{n&&(t+="".concat(n,">").concat(e),f()),o.push(c)},a=(c,i)=>(i!=null&&(n+=" ".concat(c,'="').concat(zte(i),'"')),u),u={open(c){r(c),n="<"+c;for(var i=arguments.length,s=new Array(i>1?i-1:0),l=1;l".concat(e,""):"/>"):t+=""),f(),u},attr:a,text:c=>(e+=ZF(c),u),toString:()=>t};return u}const JF=t=>KF(NM(),t)+"";function KF(t,n){if(t.open(n.tagName),n.hasAttributes()){const e=n.attributes,o=e.length;for(let f=0;f{i.dirty=n})),!o.zdirty){if(e.exit){r.nested&&o.items.length?(c=o.items[0],c._svg&&this._update(r,c._svg,c)):e._svg&&(c=e._svg.parentNode,c&&c.removeChild(e._svg)),e._svg=null;continue}e=r.nested?o.items[0]:e,e._update!==n&&(!e._svg||!e._svg.ownerSVGElement?(this._dirtyAll=!1,q7(e,n)):this._update(r,e._svg,e),e._update=n)}return!this._dirtyAll},mark(t,n,e){if(!this.isDirty(n))return n._svg;const o=this._svg,f=tc[n.marktype],r=n.interactive===!1?"none":null,a=f.tag==="g",u=H7(n,t,e,"g",o);u.setAttribute("class",BF(n));const c=YF(n);for(const d in c)ru(u,d,c[d]);a||ru(u,"pointer-events",r),ru(u,"clip-path",n.clip?pM(this,n,n.group):null);let i=null,s=0;const l=d=>{const h=this.isDirty(d),m=H7(d,u,i,f.tag,o);h&&(this._update(f,m,d),a&&Nte(this,m,d)),i=m,++s};return f.nested?n.items.length&&l(n.items[0]):df(n,l),Xc(u,s),u},_update(t,n,e){Fh=n,Dl=n.__values__,WF(Cv,e),t.attr(Cv,e,this);const o=jte[t.type];o&&o.call(this,t,n,e),Fh&&this.style(Fh,e)},style(t,n){if(n!=null){for(const e in F_){let o=e==="font"?Uy(n):n[e];if(o===Dl[e])continue;const f=F_[e];o==null?t.removeAttribute(f):(fM(o)&&(o=pF(o,this._defs.gradient,eN())),t.setAttribute(f,o+"")),Dl[e]=o}for(const e in N_)Xb(t,N_[e],n[e])}},defs(){const t=this._svg,n=this._defs;let e=n.el,o=0;for(const f in n.gradient)e||(n.el=e=Au(t,V1+1,"defs",$s)),o=Rte(e,n.gradient[f],o);for(const f in n.clipping)e||(n.el=e=Au(t,V1+1,"defs",$s)),o=Fte(e,n.clipping[f],o);e&&(o===0?(t.removeChild(e),n.el=null):Xc(e,o))},_clearDefs(){const t=this._defs;t.gradient={},t.clipping={}}});function q7(t,n){for(;t&&t.dirty!==n;t=t.mark.group)if(t.dirty=n,t.mark&&t.mark.dirty!==n)t.mark.dirty=n;else return}function Rte(t,n,e){let o,f,r;if(n.gradient==="radial"){let a=Au(t,e++,"pattern",$s);Pd(a,{id:E_+n.id,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"}),a=Au(a,0,"rect",$s),Pd(a,{width:1,height:1,fill:"url(".concat(eN(),"#").concat(n.id,")")}),t=Au(t,e++,"radialGradient",$s),Pd(t,{id:n.id,fx:n.x1,fy:n.y1,fr:n.r1,cx:n.x2,cy:n.y2,r:n.r2})}else t=Au(t,e++,"linearGradient",$s),Pd(t,{id:n.id,x1:n.x1,x2:n.x2,y1:n.y1,y2:n.y2});for(o=0,f=n.stops.length;o{o=t.mark(n,r,o),++f}),Xc(n,1+f)}function H7(t,n,e,o,f){let r=t._svg,a;if(!r&&(a=n.ownerDocument,r=Ld(a,o,$s),t._svg=r,t.mark&&(r.__data__=t,r.__values__={fill:"default"},o==="g"))){const u=Ld(a,"path",$s);r.appendChild(u),u.__data__=t;const c=Ld(a,"g",$s);r.appendChild(c),c.__data__=t;const i=Ld(a,"path",$s);r.appendChild(i),i.__data__=t,i.__values__={fill:"default"}}return(r.ownerSVGElement!==f||Bte(r,e))&&n.insertBefore(r,e?e.nextSibling:n.firstChild),r}function Bte(t,n){return t.parentNode&&t.parentNode.childNodes.length>1&&t.previousSibling!=n}let Fh=null,Dl=null;const jte={group(t,n,e){const o=Fh=n.childNodes[2];Dl=o.__values__,t.foreground(Cv,e,this),Dl=n.__values__,Fh=n.childNodes[1],t.content(Cv,e,this);const f=Fh=n.childNodes[0];t.background(Cv,e,this);const r=e.mark.interactive===!1?"none":null;if(r!==Dl.events&&(ru(o,"pointer-events",r),ru(f,"pointer-events",r),Dl.events=r),e.strokeForeground&&e.stroke){const a=e.fill;ru(o,"display",null),this.style(f,e),ru(f,"stroke",null),a&&(e.fill=null),Dl=o.__values__,this.style(o,e),a&&(e.fill=a),Fh=null}else ru(o,"display","none")},image(t,n,e){e.smooth===!1?(Xb(n,"image-rendering","optimizeSpeed"),Xb(n,"image-rendering","pixelated")):Xb(n,"image-rendering",null)},text(t,n,e){const o=jy(e);let f,r,a,u;Ir(o)?(r=o.map(c=>Qd(e,c)),f=r.join(` +`),f!==Dl.text&&(Xc(n,0),a=n.ownerDocument,u=Kd(e),r.forEach((c,i)=>{const s=Ld(a,"tspan",$s);s.__data__=e,s.textContent=c,i&&(s.setAttribute("x",0),s.setAttribute("dy",u)),n.appendChild(s)}),Dl.text=f)):(r=Qd(e,o),r!==Dl.text&&(n.textContent=r,Dl.text=r)),ru(n,"font-family",Uy(e)),ru(n,"font-size",ah(e)+"px"),ru(n,"font-style",e.fontStyle),ru(n,"font-variant",e.fontVariant),ru(n,"font-weight",e.fontWeight)}};function Cv(t,n,e){n!==Dl[t]&&(e?Ute(Fh,t,n,e):ru(Fh,t,n),Dl[t]=n)}function Xb(t,n,e){e!==Dl[n]&&(e==null?t.style.removeProperty(n):t.style.setProperty(n,e+""),Dl[n]=e)}function Pd(t,n){for(const e in n)ru(t,e,n[e])}function ru(t,n,e){e!=null?t.setAttribute(n,e):t.removeAttribute(n)}function Ute(t,n,e,o){e!=null?t.setAttributeNS(o,n,e):t.removeAttributeNS(o,n)}function eN(){let t;return typeof window>"u"?"":(t=window.location).hash?t.href.slice(0,-t.hash.length):t.href}function jM(t){oh.call(this,t),this._text=null,this._defs={gradient:{},clipping:{}}}ni(jM,oh,{svg(){return this._text},_render(t){const n=NM();n.open("svg",pa({},Kv,{class:"marks",width:this._width*this._scale,height:this._height*this._scale,viewBox:"0 0 ".concat(this._width," ").concat(this._height)}));const e=this._bgcolor;return e&&e!=="transparent"&&e!=="none"&&n.open("rect",{width:this._width,height:this._height,fill:e}).close(),n.open("g",QF,{transform:"translate("+this._origin+")"}),this.mark(n,t),n.close(),this.defs(n),this._text=n.close()+"",this},mark(t,n){const e=tc[n.marktype],o=e.tag,f=[WF,e.attr];t.open("g",{class:BF(n),"clip-path":n.clip?pM(this,n,n.group):null},YF(n),{"pointer-events":o!=="g"&&n.interactive===!1?"none":null});const r=a=>{const u=this.href(a);if(u&&t.open("a",u),t.open(o,this.attr(n,a,f,o!=="g"?o:null)),o==="text"){const c=jy(a);if(Ir(c)){const i={x:0,dy:Kd(a)};for(let s=0;sthis.mark(t,l)),t.close(),c&&s?(i&&(a.fill=null),a.stroke=s,t.open("path",this.attr(n,a,e.foreground,"bgrect")).close(),i&&(a.fill=i)):t.open("path",this.attr(n,a,e.foreground,"bgfore")).close()}t.close(),u&&t.close()};return e.nested?n.items&&n.items.length&&r(n.items[0]):df(n,r),t.close()},href(t){const n=t.href;let e;if(n){if(e=this._hrefs&&this._hrefs[n])return e;this.sanitizeURL(n).then(o=>{o["xlink:href"]=o.href,o.href=null,(this._hrefs||(this._hrefs={}))[n]=o})}return null},attr(t,n,e,o){const f={},r=(a,u,c,i)=>{f[i||a]=u};return Array.isArray(e)?e.forEach(a=>a(r,n,this)):e(r,n,this),o&&Vte(f,n,t,o,this._defs),f},defs(t){const n=this._defs.gradient,e=this._defs.clipping;if(Object.keys(n).length+Object.keys(e).length!==0){t.open("defs");for(const f in n){const r=n[f],a=r.stops;r.gradient==="radial"?(t.open("pattern",{id:E_+f,viewBox:"0,0,1,1",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid slice"}),t.open("rect",{width:"1",height:"1",fill:"url(#"+f+")"}).close(),t.close(),t.open("radialGradient",{id:f,fx:r.x1,fy:r.y1,fr:r.r1,cx:r.x2,cy:r.y2,r:r.r2})):t.open("linearGradient",{id:f,x1:r.x1,x2:r.x2,y1:r.y1,y2:r.y2});for(let u=0;u1?(ym[t]=n,this):ym[t]}function aN(t,n,e){const o=[],f=new zs().union(n),r=t.marktype;return r?oN(t,f,e,o):r==="group"?sN(t,f,e,o):Pr("Intersect scene must be mark node or group item.")}function oN(t,n,e,o){if(qte(t,n,e)){const f=t.items,r=t.marktype,a=f.length;let u=0;if(r==="group")for(;u=0;r--)if(e[r]!=o[r])return!1;for(r=e.length-1;r>=0;r--)if(f=e[r],!UM(t[f],n[f],f))return!1;return typeof t==typeof n}function Gte(){_F(),vQ()}const xm="top",Zc="left",ef="right",tp="bottom",Wte="top-left",Yte="top-right",Xte="bottom-left",Zte="bottom-right",VM="start",Nk="middle",iu="end",Jte="x",Kte="y",Lw="group",qM="axis",HM="title",Qte="frame",ene="scope",$M="legend",fN="row-header",hN="row-footer",dN="row-title",pN="column-header",gN="column-footer",mN="column-title",tne="padding",nne="symbol",vN="fit",rne="fit-x",ine="fit-y",ane="pad",GM="none",ab="all",Bk="each",WM="flush",Id="column",zd="row";function yN(t){_r.call(this,null,t)}ni(yN,_r,{transform(t,n){const e=n.dataflow,o=t.mark,f=o.marktype,r=tc[f],a=r.bound;let u=o.bounds,c;if(r.nested)o.items.length&&e.dirty(o.items[0]),u=ob(o,a),o.items.forEach(i=>{i.bounds.clear().union(u)});else if(f===Lw||t.modified())switch(n.visit(n.MOD,i=>e.dirty(i)),u.clear(),o.items.forEach(i=>u.union(ob(i,a))),o.role){case qM:case $M:case HM:n.reflow()}else c=n.changed(n.REM),n.visit(n.ADD,i=>{u.union(ob(i,a))}),n.visit(n.MOD,i=>{c=c||u.alignsWith(i.bounds),e.dirty(i),u.union(ob(i,a))}),c&&(u.clear(),o.items.forEach(i=>u.union(i.bounds)));return uN(o),n.modifies("bounds")}});function ob(t,n,e){return n(t.bounds.clear(),t,e)}const $7=":vega_identifier:";function YM(t){_r.call(this,0,t)}YM.Definition={type:"Identifier",metadata:{modifies:!0},params:[{name:"as",type:"string",required:!0}]};ni(YM,_r,{transform(t,n){const e=one(n.dataflow),o=t.as;let f=e.value;return n.visit(n.ADD,r=>r[o]=r[o]||++f),e.set(this.value=f),n}});function one(t){return t._signals[$7]||(t._signals[$7]=t.add(0))}function xN(t){_r.call(this,null,t)}ni(xN,_r,{transform(t,n){let e=this.value;e||(e=n.dataflow.scenegraph().mark(t.markdef,sne(t),t.index),e.group.context=t.context,t.context.group||(t.context.group=e.group),e.source=this.source,e.clip=t.clip,e.interactive=t.interactive,this.value=e);const o=e.marktype===Lw?ww:_w;return n.visit(n.ADD,f=>o.call(f,e)),(t.modified("clip")||t.modified("interactive"))&&(e.clip=t.clip,e.interactive=!!t.interactive,e.zdirty=!0,n.reflow()),e.items=n.source,n}});function sne(t){const n=t.groups,e=t.parent;return n&&n.size===1?n.get(Object.keys(n.object)[0]):n&&e?n.lookup(e):null}function bN(t){_r.call(this,null,t)}const G7={parity:t=>t.filter((n,e)=>e%2?n.opacity=0:1),greedy:(t,n)=>{let e;return t.filter((o,f)=>!f||!_N(e.bounds,o.bounds,n)?(e=o,1):o.opacity=0)}},_N=(t,n,e)=>e>Math.max(n.x1-t.x2,t.x1-n.x2,n.y1-t.y2,t.y1-n.y2),W7=(t,n)=>{for(var e=1,o=t.length,f=t[0].bounds,r;e{const n=t.bounds;return n.width()>1&&n.height()>1},une=(t,n,e)=>{var o=t.range(),f=new zs;return n===xm||n===tp?f.set(o[0],-1/0,o[1],1/0):f.set(-1/0,o[0],1/0,o[1]),f.expand(e||1),r=>f.encloses(r.bounds)},Y7=t=>(t.forEach(n=>n.opacity=1),t),X7=(t,n)=>t.reflow(n.modified()).modifies("opacity");ni(bN,_r,{transform(t,n){const e=G7[t.method]||G7.parity,o=t.separation||0;let f=n.materialize(n.SOURCE).source,r,a;if(!f||!f.length)return;if(!t.method)return t.modified("method")&&(Y7(f),n=X7(n,t)),n;if(f=f.filter(lne),!f.length)return;if(t.sort&&(f=f.slice().sort(t.sort)),r=Y7(f),n=X7(n,t),r.length>=3&&W7(r,o)){do r=e(r,o);while(r.length>=3&&W7(r,o));r.length<3&&!Na(f).opacity&&(r.length>1&&(Na(r).opacity=0),Na(f).opacity=1)}t.boundScale&&t.boundTolerance>=0&&(a=une(t.boundScale,t.boundOrient,+t.boundTolerance),f.forEach(c=>{a(c)||(c.opacity=0)}));const u=r[0].mark.bounds.clear();return f.forEach(c=>{c.opacity&&u.union(c.bounds)}),n}});function wN(t){_r.call(this,null,t)}ni(wN,_r,{transform(t,n){const e=n.dataflow;if(n.visit(n.ALL,o=>e.dirty(o)),n.fields&&n.fields.zindex){const o=n.source&&n.source[0];o&&(o.mark.zdirty=!0)}}});const Pl=new zs;function Xg(t,n,e){return t[n]===e?0:(t[n]=e,1)}function cne(t){var n=t.items[0].orient;return n===Zc||n===ef}function fne(t){let n=+t.grid;return[t.ticks?n++:-1,t.labels?n++:-1,n+ +t.domain]}function hne(t,n,e,o){var f=n.items[0],r=f.datum,a=f.translate!=null?f.translate:.5,u=f.orient,c=fne(r),i=f.range,s=f.offset,l=f.position,d=f.minExtent,h=f.maxExtent,m=r.title&&f.items[c[2]].items[0],g=f.titlePadding,p=f.bounds,v=m&&EM(m),y=0,x=0,w,k;switch(Pl.clear().union(p),p.clear(),(w=c[0])>-1&&p.union(f.items[w].bounds),(w=c[1])>-1&&p.union(f.items[w].bounds),u){case xm:y=l||0,x=-s,k=Math.max(d,Math.min(h,-p.y1)),p.add(0,-k).add(i,0),m&&sb(t,m,k,g,v,0,-1,p);break;case Zc:y=-s,x=l||0,k=Math.max(d,Math.min(h,-p.x1)),p.add(-k,0).add(0,i),m&&sb(t,m,k,g,v,1,-1,p);break;case ef:y=e+s,x=l||0,k=Math.max(d,Math.min(h,p.x2)),p.add(0,0).add(k,i),m&&sb(t,m,k,g,v,1,1,p);break;case tp:y=l||0,x=o+s,k=Math.max(d,Math.min(h,p.y2)),p.add(0,0).add(i,k),m&&sb(t,m,k,g,0,0,1,p);break;default:y=f.x,x=f.y}return Jh(p.translate(y,x),f),Xg(f,"x",y+a)|Xg(f,"y",x+a)&&(f.bounds=Pl,t.dirty(f),f.bounds=p,t.dirty(f)),f.mark.bounds.clear().union(p)}function sb(t,n,e,o,f,r,a,u){const c=n.bounds;if(n.auto){const i=a*(e+f+o);let s=0,l=0;t.dirty(n),r?s=(n.x||0)-(n.x=i):l=(n.y||0)-(n.y=i),n.mark.bounds.clear().union(c.translate(-s,-l)),t.dirty(n)}u.union(c)}const Z7=(t,n)=>Math.floor(Math.min(t,n)),J7=(t,n)=>Math.ceil(Math.max(t,n));function dne(t){var n=t.items,e=n.length,o=0,f,r;const a={marks:[],rowheaders:[],rowfooters:[],colheaders:[],colfooters:[],rowtitle:null,coltitle:null};for(;o1)for(T=0;T0&&(x[T]+=O/2);if(u&&Wo(e.center,zd)&&s!==1)for(T=0;T0&&(w[T]+=R/2);for(T=0;Tf&&(t.warn("Grid headers exceed limit: "+f),n=n.slice(0,f)),g+=r,y=0,w=n.length;y=0&&(T=e[x])==null;x-=d);u?(_=h==null?T.x:Math.round(T.bounds.x1+h*T.bounds.width()),M=g):(_=g,M=h==null?T.y:Math.round(T.bounds.y1+h*T.bounds.height())),k.union(b.bounds.translate(_-(b.x||0),M-(b.y||0))),b.x=_,b.y=M,t.dirty(b),p=a(p,k[i])}return p}function Q7(t,n,e,o,f,r){if(!!n){t.dirty(n);var a=e,u=e;o?a=Math.round(f.x1+r*f.width()):u=Math.round(f.y1+r*f.height()),n.bounds.translate(a-(n.x||0),u-(n.y||0)),n.mark.bounds.clear().union(n.bounds),n.x=a,n.y=u,t.dirty(n)}}function xne(t,n){const e=t[n]||{};return(o,f)=>e[o]!=null?e[o]:t[o]!=null?t[o]:f}function bne(t,n){let e=-1/0;return t.forEach(o=>{o.offset!=null&&(e=Math.max(e,o.offset))}),e>-1/0?e:n}function _ne(t,n,e,o,f,r,a){const u=xne(e,n),c=bne(t,u("offset",0)),i=u("anchor",VM),s=i===iu?1:i===Nk?.5:0,l={align:Bk,bounds:u("bounds",WM),columns:u("direction")==="vertical"?1:t.length,padding:u("margin",8),center:u("center"),nodirty:!0};switch(n){case Zc:l.anchor={x:Math.floor(o.x1)-c,column:iu,y:s*(a||o.height()+2*o.y1),row:i};break;case ef:l.anchor={x:Math.ceil(o.x2)+c,y:s*(a||o.height()+2*o.y1),row:i};break;case xm:l.anchor={y:Math.floor(f.y1)-c,row:iu,x:s*(r||f.width()+2*f.x1),column:i};break;case tp:l.anchor={y:Math.ceil(f.y2)+c,x:s*(r||f.width()+2*f.x1),column:i};break;case Wte:l.anchor={x:c,y:c};break;case Yte:l.anchor={x:r-c,y:c,column:iu};break;case Xte:l.anchor={x:c,y:a-c,row:iu};break;case Zte:l.anchor={x:r-c,y:a-c,column:iu,row:iu};break}return l}function wne(t,n){var e=n.items[0],o=e.datum,f=e.orient,r=e.bounds,a=e.x,u=e.y,c,i;return e._bounds?e._bounds.clear().union(r):e._bounds=r.clone(),r.clear(),Tne(t,e,e.items[0].items[0]),r=kne(e,r),c=2*e.padding,i=2*e.padding,r.empty()||(c=Math.ceil(r.width()+c),i=Math.ceil(r.height()+i)),o.type===nne&&Ane(e.items[0].items[0].items[0].items),f!==GM&&(e.x=a=0,e.y=u=0),e.width=c,e.height=i,Jh(r.set(a,u,a+c,u+i),e),e.mark.bounds.clear().union(r),e}function kne(t,n){return t.items.forEach(e=>n.union(e.bounds)),n.x1=t.padding,n.y1=t.padding,n}function Tne(t,n,e){var o=n.padding,f=o-e.x,r=o-e.y;if(!n.datum.title)(f||r)&&q1(t,e,f,r);else{var a=n.items[1].items[0],u=a.anchor,c=n.titlePadding||0,i=o-a.x,s=o-a.y;switch(a.orient){case Zc:f+=Math.ceil(a.bounds.width())+c;break;case ef:case tp:break;default:r+=a.bounds.height()+c}switch((f||r)&&q1(t,e,f,r),a.orient){case Zc:s+=Dg(n,e,a,u,1,1);break;case ef:i+=Dg(n,e,a,iu,0,0)+c,s+=Dg(n,e,a,u,1,1);break;case tp:i+=Dg(n,e,a,u,0,0),s+=Dg(n,e,a,iu,-1,0,1)+c;break;default:i+=Dg(n,e,a,u,0,0)}(i||s)&&q1(t,a,i,s),(i=Math.round(a.bounds.x1-o))<0&&(q1(t,e,-i,0),q1(t,a,-i,0))}}function Dg(t,n,e,o,f,r,a){const u=t.datum.type!=="symbol",c=e.datum.vgrad,i=u&&(r||!c)&&!a?n.items[0]:n,s=i.bounds[f?"y2":"x2"]-t.padding,l=c&&r?s:0,d=c&&r?0:s,h=f<=0?0:EM(e);return Math.round(o===VM?l:o===iu?d-h:.5*(s-h))}function q1(t,n,e,o){n.x+=e,n.y+=o,n.bounds.translate(e,o),n.mark.bounds.translate(e,o),t.dirty(n)}function Ane(t){const n=t.reduce((e,o)=>(e[o.column]=Math.max(o.bounds.x2-o.x,e[o.column]||0),e),{});t.forEach(e=>{e.width=n[e.column],e.height=e.bounds.y2-e.y})}function Mne(t,n,e,o,f){var r=n.items[0],a=r.frame,u=r.orient,c=r.anchor,i=r.offset,s=r.padding,l=r.items[0].items[0],d=r.items[1]&&r.items[1].items[0],h=u===Zc||u===ef?o:e,m=0,g=0,p=0,v=0,y=0,x;if(a!==Lw?u===Zc?(m=f.y2,h=f.y1):u===ef?(m=f.y1,h=f.y2):(m=f.x1,h=f.x2):u===Zc&&(m=o,h=0),x=c===VM?m:c===iu?h:(m+h)/2,d&&d.text){switch(u){case xm:case tp:y=l.bounds.height()+s;break;case Zc:v=l.bounds.width()+s;break;case ef:v=-l.bounds.width()-s;break}Pl.clear().union(d.bounds),Pl.translate(v-(d.x||0),y-(d.y||0)),Xg(d,"x",v)|Xg(d,"y",y)&&(t.dirty(d),d.bounds.clear().union(Pl),d.mark.bounds.clear().union(Pl),t.dirty(d)),Pl.clear().union(d.bounds)}else Pl.clear();switch(Pl.union(l.bounds),u){case xm:g=x,p=f.y1-Pl.height()-i;break;case Zc:g=f.x1-Pl.width()-i,p=x;break;case ef:g=f.x2+Pl.width()+i,p=x;break;case tp:g=x,p=f.y2+i;break;default:g=r.x,p=r.y}return Xg(r,"x",g)|Xg(r,"y",p)&&(Pl.translate(g,p),t.dirty(r),r.bounds.clear().union(Pl),n.bounds.clear().union(Pl),t.dirty(r)),r.bounds}function TN(t){_r.call(this,null,t)}ni(TN,_r,{transform(t,n){const e=n.dataflow;return t.mark.items.forEach(o=>{t.layout&&mne(e,o,t.layout),Ene(e,o,t)}),Sne(t.mark.group)?n.reflow():n}});function Sne(t){return t&&t.mark.role!=="legend-entry"}function Ene(t,n,e){var o=n.items,f=Math.max(0,n.width||0),r=Math.max(0,n.height||0),a=new zs().set(0,0,f,r),u=a.clone(),c=a.clone(),i=[],s,l,d,h,m,g;for(m=0,g=o.length;m{d=v.orient||ef,d!==GM&&(p[d]||(p[d]=[])).push(v)});for(const v in p){const y=p[v];kN(t,y,_ne(y,v,e.legends,u,c,f,r))}i.forEach(v=>{const y=v.bounds;if(y.equals(v._bounds)||(v.bounds=v._bounds,t.dirty(v),v.bounds=y,t.dirty(v)),e.autosize&&e.autosize.type===vN)switch(v.orient){case Zc:case ef:a.add(y.x1,0).add(y.x2,0);break;case xm:case tp:a.add(0,y.y1).add(0,y.y2)}else a.union(y)})}a.union(u).union(c),s&&a.union(Mne(t,s,f,r,a)),n.clip&&a.set(0,0,n.width||0,n.height||0),Cne(t,n,a,e)}function Cne(t,n,e,o){const f=o.autosize||{},r=f.type;if(t._autosize<1||!r)return;let a=t._width,u=t._height,c=Math.max(0,n.width||0),i=Math.max(0,Math.ceil(-e.x1)),s=Math.max(0,n.height||0),l=Math.max(0,Math.ceil(-e.y1));const d=Math.max(0,Math.ceil(e.x2-c)),h=Math.max(0,Math.ceil(e.y2-s));if(f.contains===tne){const m=t.padding();a-=m.left+m.right,u-=m.top+m.bottom}r===GM?(i=0,l=0,c=a,s=u):r===vN?(c=Math.max(0,a-i-d),s=Math.max(0,u-l-h)):r===rne?(c=Math.max(0,a-i-d),u=s+l+h):r===ine?(a=c+i+d,s=Math.max(0,u-l-h)):r===ane&&(a=c+i+d,u=s+l+h),t._resizeView(a,u,c,s,[i,l],f.resize)}var One=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",bound:yN,identifier:YM,mark:xN,overlap:bN,render:wN,viewlayout:TN});function AN(t){_r.call(this,null,t)}ni(AN,_r,{transform(t,n){if(this.value&&!t.modified())return n.StopPropagation;var e=n.dataflow.locale(),o=n.fork(n.NO_SOURCE|n.NO_FIELDS),f=this.value,r=t.scale,a=t.count==null?t.values?t.values.length:10:t.count,u=uM(r,a,t.minstep),c=t.format||sF(e,r,u,t.formatSpecifier,t.formatType,!!t.values),i=t.values?oF(r,t.values,u):cM(r,u);return f&&(o.rem=f),f=i.map((s,l)=>ro({index:l/(i.length-1||1),value:s,label:c(s)})),t.extra&&f.length&&f.push(ro({index:-1,extra:{value:f[0].value},label:""})),o.source=f,o.add=f,this.value=f,o}});function MN(t){_r.call(this,null,t)}function Lne(){return ro({})}function Pne(t){const n=Hm().test(e=>e.exit);return n.lookup=e=>n.get(t(e)),n}ni(MN,_r,{transform(t,n){var e=n.dataflow,o=n.fork(n.NO_SOURCE|n.NO_FIELDS),f=t.item||Lne,r=t.key||$i,a=this.value;return Ir(o.encode)&&(o.encode=null),a&&(t.modified("key")||n.modified(r))&&Pr("DataJoin does not support modified key function or fields."),a||(n=n.addAll(),this.value=a=Pne(r)),n.visit(n.ADD,u=>{const c=r(u);let i=a.get(c);i?i.exit?(a.empty--,o.add.push(i)):o.mod.push(i):(i=f(u),a.set(c,i),o.add.push(i)),i.datum=u,i.exit=!1}),n.visit(n.MOD,u=>{const c=r(u),i=a.get(c);i&&(i.datum=u,o.mod.push(i))}),n.visit(n.REM,u=>{const c=r(u),i=a.get(c);u===i.datum&&!i.exit&&(o.rem.push(i),i.exit=!0,++a.empty)}),n.changed(n.ADD_MOD)&&o.modifies("datum"),(n.clean()||t.clean&&a.empty>e.cleanThreshold)&&e.runAfter(a.clean),o}});function SN(t){_r.call(this,null,t)}ni(SN,_r,{transform(t,n){var e=n.fork(n.ADD_REM),o=t.mod||!1,f=t.encoders,r=n.encode;if(Ir(r))if(e.changed()||r.every(l=>f[l]))r=r[0],e.encode=null;else return n.StopPropagation;var a=r==="enter",u=f.update||yd,c=f.enter||yd,i=f.exit||yd,s=(r&&!a?f[r]:u)||yd;if(n.changed(n.ADD)&&(n.visit(n.ADD,l=>{c(l,t),u(l,t)}),e.modifies(c.output),e.modifies(u.output),s!==yd&&s!==u&&(n.visit(n.ADD,l=>{s(l,t)}),e.modifies(s.output))),n.changed(n.REM)&&i!==yd&&(n.visit(n.REM,l=>{i(l,t)}),e.modifies(i.output)),a||s!==yd){const l=n.MOD|(t.modified()?n.REFLOW:0);a?(n.visit(l,d=>{const h=c(d,t)||o;(s(d,t)||h)&&e.mod.push(d)}),e.mod.length&&e.modifies(c.output)):n.visit(l,d=>{(s(d,t)||o)&&e.mod.push(d)}),e.mod.length&&e.modifies(s.output)}return e.changed()?e:n.StopPropagation}});function EN(t){_r.call(this,[],t)}ni(EN,_r,{transform(t,n){if(this.value!=null&&!t.modified())return n.StopPropagation;var e=n.dataflow.locale(),o=n.fork(n.NO_SOURCE|n.NO_FIELDS),f=this.value,r=t.type||Vb,a=t.scale,u=+t.limit,c=uM(a,t.count==null?5:t.count,t.minstep),i=!!t.values||r===Vb,s=t.format||fF(e,a,c,r,t.formatSpecifier,t.formatType,i),l=t.values||cF(a,c),d,h,m,g,p;return f&&(o.rem=f),r===Vb?(u&&l.length>u?(n.dataflow.warn("Symbol legend count exceeds limit, filtering items."),f=l.slice(0,u-1),p=!0):f=l,ga(m=t.size)?(!t.values&&a(f[0])===0&&(f=f.slice(1)),g=f.reduce((v,y)=>Math.max(v,m(y,t)),0)):m=$l(g=m||8),f=f.map((v,y)=>ro({index:y,label:s(v,y,f),value:v,offset:g,size:m(v,t)})),p&&(p=l[f.length],f.push(ro({index:f.length,label:"\u2026".concat(l.length-f.length," entries"),value:p,offset:g,size:m(p,t)})))):r===iQ?(d=a.domain(),h=rF(a,d[0],Na(d)),l.length<3&&!t.values&&d[0]!==Na(d)&&(l=[d[0],Na(d)]),f=l.map((v,y)=>ro({index:y,label:s(v,y,l),value:v,perc:h(v)}))):(m=l.length-1,h=gQ(a),f=l.map((v,y)=>ro({index:y,label:s(v,y,l),value:v,perc:y?h(v):0,perc2:y===m?1:h(l[y+1])}))),o.source=f,o.add=f,this.value=f,o}});const Dne=t=>t.source.x,Ine=t=>t.source.y,zne=t=>t.target.x,Rne=t=>t.target.y;function XM(t){_r.call(this,{},t)}XM.Definition={type:"LinkPath",metadata:{modifies:!0},params:[{name:"sourceX",type:"field",default:"source.x"},{name:"sourceY",type:"field",default:"source.y"},{name:"targetX",type:"field",default:"target.x"},{name:"targetY",type:"field",default:"target.y"},{name:"orient",type:"enum",default:"vertical",values:["horizontal","vertical","radial"]},{name:"shape",type:"enum",default:"line",values:["line","arc","curve","diagonal","orthogonal"]},{name:"require",type:"signal"},{name:"as",type:"string",default:"path"}]};ni(XM,_r,{transform(t,n){var e=t.sourceX||Dne,o=t.sourceY||Ine,f=t.targetX||zne,r=t.targetY||Rne,a=t.as||"path",u=t.orient||"vertical",c=t.shape||"line",i=eO.get(c+"-"+u)||eO.get(c);return i||Pr("LinkPath unsupported type: "+t.shape+(t.orient?"-"+t.orient:"")),n.visit(n.SOURCE,s=>{s[a]=i(e(s),o(s),f(s),r(s))}),n.reflow(t.modified()).modifies(a)}});const CN=(t,n,e,o)=>"M"+t+","+n+"L"+e+","+o,Fne=(t,n,e,o)=>CN(n*Math.cos(t),n*Math.sin(t),o*Math.cos(e),o*Math.sin(e)),ON=(t,n,e,o)=>{var f=e-t,r=o-n,a=Math.sqrt(f*f+r*r)/2,u=180*Math.atan2(r,f)/Math.PI;return"M"+t+","+n+"A"+a+","+a+" "+u+" 0 1 "+e+","+o},Nne=(t,n,e,o)=>ON(n*Math.cos(t),n*Math.sin(t),o*Math.cos(e),o*Math.sin(e)),LN=(t,n,e,o)=>{const f=e-t,r=o-n,a=.2*(f+r),u=.2*(r-f);return"M"+t+","+n+"C"+(t+a)+","+(n+u)+" "+(e+u)+","+(o-a)+" "+e+","+o},Bne=(t,n,e,o)=>LN(n*Math.cos(t),n*Math.sin(t),o*Math.cos(e),o*Math.sin(e)),jne=(t,n,e,o)=>"M"+t+","+n+"V"+o+"H"+e,Une=(t,n,e,o)=>"M"+t+","+n+"H"+e+"V"+o,Vne=(t,n,e,o)=>{const f=Math.cos(t),r=Math.sin(t),a=Math.cos(e),u=Math.sin(e),c=Math.abs(e-t)>Math.PI?e<=t:e>t;return"M"+n*f+","+n*r+"A"+n+","+n+" 0 0,"+(c?1:0)+" "+n*a+","+n*u+"L"+o*a+","+o*u},qne=(t,n,e,o)=>{const f=(t+e)/2;return"M"+t+","+n+"C"+f+","+n+" "+f+","+o+" "+e+","+o},Hne=(t,n,e,o)=>{const f=(n+o)/2;return"M"+t+","+n+"C"+t+","+f+" "+e+","+f+" "+e+","+o},$ne=(t,n,e,o)=>{const f=Math.cos(t),r=Math.sin(t),a=Math.cos(e),u=Math.sin(e),c=(n+o)/2;return"M"+n*f+","+n*r+"C"+c*f+","+c*r+" "+c*a+","+c*u+" "+o*a+","+o*u},eO=Hm({line:CN,"line-radial":Fne,arc:ON,"arc-radial":Nne,curve:LN,"curve-radial":Bne,"orthogonal-horizontal":jne,"orthogonal-vertical":Une,"orthogonal-radial":Vne,"diagonal-horizontal":qne,"diagonal-vertical":Hne,"diagonal-radial":$ne});function ZM(t){_r.call(this,null,t)}ZM.Definition={type:"Pie",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"startAngle",type:"number",default:0},{name:"endAngle",type:"number",default:6.283185307179586},{name:"sort",type:"boolean",default:!1},{name:"as",type:"string",array:!0,length:2,default:["startAngle","endAngle"]}]};ni(ZM,_r,{transform(t,n){var e=t.as||["startAngle","endAngle"],o=e[0],f=e[1],r=t.field||Um,a=t.startAngle||0,u=t.endAngle!=null?t.endAngle:2*Math.PI,c=n.source,i=c.map(r),s=i.length,l=a,d=(u-a)/MI(i),h=Ju(s),m,g,p;for(t.sort&&h.sort((v,y)=>i[v]-i[y]),m=0;m-1)return o;var f=n.domain,r=t.type,a=n.zero||n.zero===void 0&&Wne(t),u,c;if(!f)return 0;if(PN(r)&&n.padding&&f[0]!==Na(f)&&(f=Qne(r,f,n.range,n.padding,n.exponent,n.constant)),(a||n.domainMin!=null||n.domainMax!=null||n.domainMid!=null)&&(u=(f=f.slice()).length-1||1,a&&(f[0]>0&&(f[0]=0),f[u]<0&&(f[u]=0)),n.domainMin!=null&&(f[0]=n.domainMin),n.domainMax!=null&&(f[u]=n.domainMax),n.domainMid!=null)){c=n.domainMid;const i=c>f[u]?u+1:cf+(r<0?-1:r>0?1:0),0));o!==n.length&&e.warn("Log scale domain includes zero: "+oi(n))}return n}function ere(t,n,e){let o=n.bins;if(o&&!Ir(o)){const f=t.domain(),r=f[0],a=Na(f),u=o.step;let c=o.start==null?r:o.start,i=o.stop==null?a:o.stop;u||Pr("Scale bins parameter missing step property."),ca&&(i=u*Math.floor(a/u)),o=Ju(c,i+u/2,u)}return o?t.bins=o:t.bins&&delete t.bins,t.type===rM&&(o?!n.domain&&!n.domainRaw&&(t.domain(o),e=o.length):t.bins=t.domain()),e}function tre(t,n,e){var o=t.type,f=n.round||!1,r=n.range;if(n.rangeStep!=null)r=nre(o,n,e);else if(n.scheme&&(r=rre(o,n,e),ga(r))){if(t.interpolator)return t.interpolator(r);Pr("Scale type ".concat(o," does not support interpolating color schemes."))}if(r&&QR(o))return t.interpolator(xw(jk(r,n.reverse),n.interpolate,n.interpolateGamma));r&&n.interpolate&&t.interpolate?t.interpolate(sM(n.interpolate,n.interpolateGamma)):ga(t.round)?t.round(f):ga(t.rangeRound)&&t.interpolate(f?$2:ky),r&&t.range(jk(r,n.reverse))}function nre(t,n,e){t!==YR&&t!==Ak&&Pr("Only band and point scales support rangeStep.");var o=(n.paddingOuter!=null?n.paddingOuter:n.padding)||0,f=t===Ak?1:(n.paddingInner!=null?n.paddingInner:n.padding)||0;return[0,n.rangeStep*tM(e,f,o)]}function rre(t,n,e){var o=n.schemeExtent,f,r;return Ir(n.scheme)?r=xw(n.scheme,n.interpolate,n.interpolateGamma):(f=n.scheme.toLowerCase(),r=lM(f),r||Pr("Unrecognized scheme name: ".concat(n.scheme))),e=t===yw?e+1:t===rM?e-1:t===dm||t===vw?+n.schemeCount||Gne:e,QR(t)?tO(r,o,n.reverse):ga(r)?nF(tO(r,o),e):t===nM?r:r.slice(0,e)}function tO(t,n,e){return ga(t)&&(n||e)?tF(t,jk(n||[0,1],e)):t}function jk(t,n){return n?t.slice().reverse():t}function zN(t){_r.call(this,null,t)}ni(zN,_r,{transform(t,n){const e=t.modified("sort")||n.changed(n.ADD)||n.modified(t.sort.fields)||n.modified("datum");return e&&n.source.sort(H0(t.sort)),this.modified(e),n}});const nO="zero",RN="center",FN="normalize",NN=["y0","y1"];function JM(t){_r.call(this,null,t)}JM.Definition={type:"Stack",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"groupby",type:"field",array:!0},{name:"sort",type:"compare"},{name:"offset",type:"enum",default:nO,values:[nO,RN,FN]},{name:"as",type:"string",array:!0,length:2,default:NN}]};ni(JM,_r,{transform(t,n){var e=t.as||NN,o=e[0],f=e[1],r=H0(t.sort),a=t.field||Um,u=t.offset===RN?ire:t.offset===FN?are:ore,c,i,s,l;for(c=sre(n.source,t.groupby,r,a),i=0,s=c.length,l=c.max;ig(s),a,u,c,i,s,l,d,h,m;if(n==null)f.push(t.slice());else for(a={},u=0,c=t.length;um&&(m=h),e&&d.sort(e)}return f.max=m,f}var lre=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",axisticks:AN,datajoin:MN,encode:SN,legendentries:EN,linkpath:XM,pie:ZM,scale:DN,sortitems:zN,stack:JM}),Xi=1e-6,B_=1e-12,Sa=Math.PI,ys=Sa/2,j_=Sa/4,du=Sa*2,Os=180/Sa,Ea=Sa/180,Va=Math.abs,Zm=Math.atan,xc=Math.atan2,Zi=Math.cos,ub=Math.ceil,BN=Math.exp,Uk=Math.hypot,U_=Math.log,Z5=Math.pow,Gi=Math.sin,fc=Math.sign||function(t){return t>0?1:t<0?-1:0},pu=Math.sqrt,KM=Math.tan;function jN(t){return t>1?0:t<-1?Sa:Math.acos(t)}function Iu(t){return t>1?ys:t<-1?-ys:Math.asin(t)}function bl(){}function V_(t,n){t&&iO.hasOwnProperty(t.type)&&iO[t.type](t,n)}var rO={Feature:function(t,n){V_(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,o=-1,f=e.length;++o=0?1:-1,f=o*e,r=Zi(n),a=Gi(n),u=$k*a,c=Hk*r+u*Zi(f),i=u*o*Gi(f);q_.add(xc(i,c)),qk=t,Hk=r,$k=a}function hre(t){return H_=new fu,Dh(t,Kf),H_*2}function $_(t){return[xc(t[1],t[0]),Iu(t[2])]}function T0(t){var n=t[0],e=t[1],o=Zi(e);return[o*Zi(n),o*Gi(n),Gi(e)]}function cb(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function bm(t,n){return[t[1]*n[2]-t[2]*n[1],t[2]*n[0]-t[0]*n[2],t[0]*n[1]-t[1]*n[0]]}function J5(t,n){t[0]+=n[0],t[1]+=n[1],t[2]+=n[2]}function fb(t,n){return[t[0]*n,t[1]*n,t[2]*n]}function G_(t){var n=pu(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=n,t[1]/=n,t[2]/=n}var us,ku,ms,Yu,Jp,HN,$N,tm,Ov,kd,Yh,Oh={point:Gk,lineStart:oO,lineEnd:sO,polygonStart:function(){Oh.point=WN,Oh.lineStart=dre,Oh.lineEnd=pre,Ov=new fu,Kf.polygonStart()},polygonEnd:function(){Kf.polygonEnd(),Oh.point=Gk,Oh.lineStart=oO,Oh.lineEnd=sO,q_<0?(us=-(ms=180),ku=-(Yu=90)):Ov>Xi?Yu=90:Ov<-Xi&&(ku=-90),Yh[0]=us,Yh[1]=ms},sphere:function(){us=-(ms=180),ku=-(Yu=90)}};function Gk(t,n){kd.push(Yh=[us=t,ms=t]),nYu&&(Yu=n)}function GN(t,n){var e=T0([t*Ea,n*Ea]);if(tm){var o=bm(tm,e),f=[o[1],-o[0],0],r=bm(f,o);G_(r),r=$_(r);var a=t-Jp,u=a>0?1:-1,c=r[0]*Os*u,i,s=Va(a)>180;s^(u*JpYu&&(Yu=i)):(c=(c+360)%360-180,s^(u*JpYu&&(Yu=n))),s?tWu(us,ms)&&(ms=t):Wu(t,ms)>Wu(us,ms)&&(us=t):ms>=us?(tms&&(ms=t)):t>Jp?Wu(us,t)>Wu(us,ms)&&(ms=t):Wu(t,ms)>Wu(us,ms)&&(us=t)}else kd.push(Yh=[us=t,ms=t]);nYu&&(Yu=n),tm=e,Jp=t}function oO(){Oh.point=GN}function sO(){Yh[0]=us,Yh[1]=ms,Oh.point=Gk,tm=null}function WN(t,n){if(tm){var e=t-Jp;Ov.add(Va(e)>180?e+(e>0?360:-360):e)}else HN=t,$N=n;Kf.point(t,n),GN(t,n)}function dre(){Kf.lineStart()}function pre(){WN(HN,$N),Kf.lineEnd(),Va(Ov)>Xi&&(us=-(ms=180)),Yh[0]=us,Yh[1]=ms,tm=null}function Wu(t,n){return(n-=t)<0?n+360:n}function gre(t,n){return t[0]-n[0]}function lO(t,n){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:nWu(o[0],o[1])&&(o[1]=f[1]),Wu(f[0],o[1])>Wu(o[0],o[1])&&(o[0]=f[0])):r.push(o=f);for(a=-1/0,e=r.length-1,n=0,o=r[e];n<=e;o=f,++n)f=r[n],(u=Wu(o[1],f[0]))>a&&(a=u,us=f[0],ms=o[1])}return kd=Yh=null,us===1/0||ku===1/0?[[NaN,NaN],[NaN,NaN]]:[[us,ku],[ms,Yu]]}var hv,W_,Y_,X_,Z_,J_,K_,Q_,Wk,Yk,Xk,YN,XN,au,ou,su,tf={sphere:bl,point:QM,lineStart:uO,lineEnd:cO,polygonStart:function(){tf.lineStart=xre,tf.lineEnd=bre},polygonEnd:function(){tf.lineStart=uO,tf.lineEnd=cO}};function QM(t,n){t*=Ea,n*=Ea;var e=Zi(n);qy(e*Zi(t),e*Gi(t),Gi(n))}function qy(t,n,e){++hv,Y_+=(t-Y_)/hv,X_+=(n-X_)/hv,Z_+=(e-Z_)/hv}function uO(){tf.point=vre}function vre(t,n){t*=Ea,n*=Ea;var e=Zi(n);au=e*Zi(t),ou=e*Gi(t),su=Gi(n),tf.point=yre,qy(au,ou,su)}function yre(t,n){t*=Ea,n*=Ea;var e=Zi(n),o=e*Zi(t),f=e*Gi(t),r=Gi(n),a=xc(pu((a=ou*r-su*f)*a+(a=su*o-au*r)*a+(a=au*f-ou*o)*a),au*o+ou*f+su*r);W_+=a,J_+=a*(au+(au=o)),K_+=a*(ou+(ou=f)),Q_+=a*(su+(su=r)),qy(au,ou,su)}function cO(){tf.point=QM}function xre(){tf.point=_re}function bre(){ZN(YN,XN),tf.point=QM}function _re(t,n){YN=t,XN=n,t*=Ea,n*=Ea,tf.point=ZN;var e=Zi(n);au=e*Zi(t),ou=e*Gi(t),su=Gi(n),qy(au,ou,su)}function ZN(t,n){t*=Ea,n*=Ea;var e=Zi(n),o=e*Zi(t),f=e*Gi(t),r=Gi(n),a=ou*r-su*f,u=su*o-au*r,c=au*f-ou*o,i=Uk(a,u,c),s=Iu(i),l=i&&-s/i;Wk.add(l*a),Yk.add(l*u),Xk.add(l*c),W_+=s,J_+=s*(au+(au=o)),K_+=s*(ou+(ou=f)),Q_+=s*(su+(su=r)),qy(au,ou,su)}function wre(t){hv=W_=Y_=X_=Z_=J_=K_=Q_=0,Wk=new fu,Yk=new fu,Xk=new fu,Dh(t,tf);var n=+Wk,e=+Yk,o=+Xk,f=Uk(n,e,o);return fSa?t+Math.round(-t/du)*du:t,n]}Jk.invert=Jk;function JN(t,n,e){return(t%=du)?n||e?Zk(hO(t),dO(n,e)):hO(t):n||e?dO(n,e):Jk}function fO(t){return function(n,e){return n+=t,[n>Sa?n-du:n<-Sa?n+du:n,e]}}function hO(t){var n=fO(t);return n.invert=fO(-t),n}function dO(t,n){var e=Zi(t),o=Gi(t),f=Zi(n),r=Gi(n);function a(u,c){var i=Zi(c),s=Zi(u)*i,l=Gi(u)*i,d=Gi(c),h=d*e+s*o;return[xc(l*f-h*r,s*e-d*o),Iu(h*f+l*r)]}return a.invert=function(u,c){var i=Zi(c),s=Zi(u)*i,l=Gi(u)*i,d=Gi(c),h=d*f-l*r;return[xc(l*f+d*r,s*e+h*o),Iu(h*e-s*o)]},a}function kre(t){t=JN(t[0]*Ea,t[1]*Ea,t.length>2?t[2]*Ea:0);function n(e){return e=t(e[0]*Ea,e[1]*Ea),e[0]*=Os,e[1]*=Os,e}return n.invert=function(e){return e=t.invert(e[0]*Ea,e[1]*Ea),e[0]*=Os,e[1]*=Os,e},n}function Tre(t,n,e,o,f,r){if(!!e){var a=Zi(n),u=Gi(n),c=o*e;f==null?(f=n+o*du,r=n-c/2):(f=pO(a,f),r=pO(a,r),(o>0?fr)&&(f+=o*du));for(var i,s=f;o>0?s>r:s1&&t.push(t.pop().concat(t.shift()))},result:function(){var e=t;return t=[],n=null,e}}}function Zb(t,n){return Va(t[0]-n[0])=0;--u)f.point((l=s[u])[0],l[1]);else o(d.x,d.p.x,-1,f);d=d.p}d=d.o,s=d.z,h=!h}while(!d.v);f.lineEnd()}}}function gO(t){if(!!(n=t.length)){for(var n,e=0,o=t[0],f;++e=0?1:-1,A=M*_,S=A>Sa,E=p*b;if(c.add(xc(E*M*Gi(A),v*T+E*Zi(A))),a+=S?_+M*du:_,S^m>=e^w>=e){var D=bm(T0(h),T0(x));G_(D);var O=bm(r,D);G_(O);var R=(S^_>=0?-1:1)*Iu(O[2]);(o>R||o===R&&(D[0]||D[1]))&&(u+=S^_>=0?1:-1)}}return(a<-Xi||a0){for(c||(f.polygonStart(),c=!0),f.lineStart(),b=0;b<_;++b)f.point((A=M[b])[0],A[1]);f.lineEnd()}return}T>1&&w&2&&k.push(k.pop().concat(k.shift())),s.push(k.filter(Mre))}}return d}}function Mre(t){return t.length>1}function Sre(t,n){return((t=t.x)[0]<0?t[1]-ys-Xi:ys-t[1])-((n=n.x)[0]<0?n[1]-ys-Xi:ys-n[1])}var mO=eB(function(){return!0},Ere,Ore,[-Sa,-ys]);function Ere(t){var n=NaN,e=NaN,o=NaN,f;return{lineStart:function(){t.lineStart(),f=1},point:function(r,a){var u=r>0?Sa:-Sa,c=Va(r-n);Va(c-Sa)0?ys:-ys),t.point(o,e),t.lineEnd(),t.lineStart(),t.point(u,e),t.point(r,e),f=0):o!==u&&c>=Sa&&(Va(n-o)Xi?Zm((Gi(n)*(r=Zi(o))*Gi(e)-Gi(o)*(f=Zi(n))*Gi(t))/(f*r*a)):(n+o)/2}function Ore(t,n,e,o){var f;if(t==null)f=e*ys,o.point(-Sa,f),o.point(0,f),o.point(Sa,f),o.point(Sa,0),o.point(Sa,-f),o.point(0,-f),o.point(-Sa,-f),o.point(-Sa,0),o.point(-Sa,f);else if(Va(t[0]-n[0])>Xi){var r=t[0]0,f=Va(n)>Xi;function r(s,l,d,h){Tre(h,t,e,d,s,l)}function a(s,l){return Zi(s)*Zi(l)>n}function u(s){var l,d,h,m,g;return{lineStart:function(){m=h=!1,g=1},point:function(p,v){var y=[p,v],x,w=a(p,v),k=o?w?0:i(p,v):w?i(p+(p<0?Sa:-Sa),v):0;if(!l&&(m=h=w)&&s.lineStart(),w!==h&&(x=c(l,y),(!x||Zb(l,x)||Zb(y,x))&&(y[2]=1)),w!==h)g=0,w?(s.lineStart(),x=c(y,l),s.point(x[0],x[1])):(x=c(l,y),s.point(x[0],x[1],2),s.lineEnd()),l=x;else if(f&&l&&o^w){var b;!(k&d)&&(b=c(y,l,!0))&&(g=0,o?(s.lineStart(),s.point(b[0][0],b[0][1]),s.point(b[1][0],b[1][1]),s.lineEnd()):(s.point(b[1][0],b[1][1]),s.lineEnd(),s.lineStart(),s.point(b[0][0],b[0][1],3)))}w&&(!l||!Zb(l,y))&&s.point(y[0],y[1]),l=y,h=w,d=k},lineEnd:function(){h&&s.lineEnd(),l=null},clean:function(){return g|(m&&h)<<1}}}function c(s,l,d){var h=T0(s),m=T0(l),g=[1,0,0],p=bm(h,m),v=cb(p,p),y=p[0],x=v-y*y;if(!x)return!d&&s;var w=n*v/x,k=-n*y/x,b=bm(g,p),T=fb(g,w),_=fb(p,k);J5(T,_);var M=b,A=cb(T,M),S=cb(M,M),E=A*A-S*(cb(T,T)-1);if(!(E<0)){var D=pu(E),O=fb(M,(-A-D)/S);if(J5(O,T),O=$_(O),!d)return O;var R=s[0],z=l[0],L=s[1],P=l[1],N;z0^O[1]<(Va(O[0]-R)Sa^(R<=O[0]&&O[0]<=z)){var K=fb(M,(-A+D)/S);return J5(K,T),[O,$_(K)]}}}function i(s,l){var d=o?t:Sa-t,h=0;return s<-d?h|=1:s>d&&(h|=2),l<-d?h|=4:l>d&&(h|=8),h}return eB(a,u,r,o?[0,-t]:[-Sa,t-Sa])}function Pre(t,n,e,o,f,r){var a=t[0],u=t[1],c=n[0],i=n[1],s=0,l=1,d=c-a,h=i-u,m;if(m=e-a,!(!d&&m>0)){if(m/=d,d<0){if(m0){if(m>l)return;m>s&&(s=m)}if(m=f-a,!(!d&&m<0)){if(m/=d,d<0){if(m>l)return;m>s&&(s=m)}else if(d>0){if(m0)){if(m/=h,h<0){if(m0){if(m>l)return;m>s&&(s=m)}if(m=r-u,!(!h&&m<0)){if(m/=h,h<0){if(m>l)return;m>s&&(s=m)}else if(h>0){if(m0&&(t[0]=a+s*d,t[1]=u+s*h),l<1&&(n[0]=a+l*d,n[1]=u+l*h),!0}}}}}var dv=1e9,db=-dv;function tB(t,n,e,o){function f(i,s){return t<=i&&i<=e&&n<=s&&s<=o}function r(i,s,l,d){var h=0,m=0;if(i==null||(h=a(i,l))!==(m=a(s,l))||c(i,s)<0^l>0)do d.point(h===0||h===3?t:e,h>1?o:n);while((h=(h+l+4)%4)!==m);else d.point(s[0],s[1])}function a(i,s){return Va(i[0]-t)0?0:3:Va(i[0]-e)0?2:1:Va(i[1]-n)0?1:0:s>0?3:2}function u(i,s){return c(i.x,s.x)}function c(i,s){var l=a(i,1),d=a(s,1);return l!==d?l-d:l===0?s[1]-i[1]:l===1?i[0]-s[0]:l===2?i[1]-s[1]:s[0]-i[0]}return function(i){var s=i,l=KN(),d,h,m,g,p,v,y,x,w,k,b,T={point:_,lineStart:E,lineEnd:D,polygonStart:A,polygonEnd:S};function _(R,z){f(R,z)&&s.point(R,z)}function M(){for(var R=0,z=0,L=h.length;zo&&(te-W)*(o-K)>(Y-K)*(t-W)&&++R:Y<=o&&(te-W)*(o-K)<(Y-K)*(t-W)&&--R;return R}function A(){s=l,d=[],h=[],b=!0}function S(){var R=M(),z=b&&R,L=(d=AI(d)).length;(z||L)&&(i.polygonStart(),z&&(i.lineStart(),r(null,null,1,i),i.lineEnd()),L&&QN(d,u,R,r,i),i.polygonEnd()),s=i,d=h=m=null}function E(){T.point=O,h&&h.push(m=[]),k=!0,w=!1,y=x=NaN}function D(){d&&(O(g,p),v&&w&&l.rejoin(),d.push(l.result())),T.point=_,w&&s.lineEnd()}function O(R,z){var L=f(R,z);if(h&&m.push([R,z]),k)g=R,p=z,v=L,k=!1,L&&(s.lineStart(),s.point(R,z));else if(L&&w)s.point(R,z);else{var P=[y=Math.max(db,Math.min(dv,y)),x=Math.max(db,Math.min(dv,x))],N=[R=Math.max(db,Math.min(dv,R)),z=Math.max(db,Math.min(dv,z))];Pre(P,N,t,n,e,o)?(w||(s.lineStart(),s.point(P[0],P[1])),s.point(N[0],N[1]),L||s.lineEnd(),b=!1):L&&(s.lineStart(),s.point(R,z),b=!1)}y=R,x=z,w=L}return T}}function vO(t,n,e){var o=Ju(t,n-Xi,e).concat(n);return function(f){return o.map(function(r){return[f,r]})}}function yO(t,n,e){var o=Ju(t,n-Xi,e).concat(n);return function(f){return o.map(function(r){return[r,f]})}}function Dre(){var t,n,e,o,f,r,a,u,c=10,i=c,s=90,l=360,d,h,m,g,p=2.5;function v(){return{type:"MultiLineString",coordinates:y()}}function y(){return Ju(ub(o/s)*s,e,s).map(m).concat(Ju(ub(u/l)*l,a,l).map(g)).concat(Ju(ub(n/c)*c,t,c).filter(function(x){return Va(x%s)>Xi}).map(d)).concat(Ju(ub(r/i)*i,f,i).filter(function(x){return Va(x%l)>Xi}).map(h))}return v.lines=function(){return y().map(function(x){return{type:"LineString",coordinates:x}})},v.outline=function(){return{type:"Polygon",coordinates:[m(o).concat(g(a).slice(1),m(e).reverse().slice(1),g(u).reverse().slice(1))]}},v.extent=function(x){return arguments.length?v.extentMajor(x).extentMinor(x):v.extentMinor()},v.extentMajor=function(x){return arguments.length?(o=+x[0][0],e=+x[1][0],u=+x[0][1],a=+x[1][1],o>e&&(x=o,o=e,e=x),u>a&&(x=u,u=a,a=x),v.precision(p)):[[o,u],[e,a]]},v.extentMinor=function(x){return arguments.length?(n=+x[0][0],t=+x[1][0],r=+x[0][1],f=+x[1][1],n>t&&(x=n,n=t,t=x),r>f&&(x=r,r=f,f=x),v.precision(p)):[[n,r],[t,f]]},v.step=function(x){return arguments.length?v.stepMajor(x).stepMinor(x):v.stepMinor()},v.stepMajor=function(x){return arguments.length?(s=+x[0],l=+x[1],v):[s,l]},v.stepMinor=function(x){return arguments.length?(c=+x[0],i=+x[1],v):[c,i]},v.precision=function(x){return arguments.length?(p=+x,d=vO(r,f,90),h=yO(n,t,p),m=vO(u,a,90),g=yO(o,e,p),v):p},v.extentMajor([[-180,-90+Xi],[180,90-Xi]]).extentMinor([[-180,-80-Xi],[180,80+Xi]])}var ey=t=>t,Q5=new fu,Kk=new fu,nB,rB,Qk,eT,Sd={point:bl,lineStart:bl,lineEnd:bl,polygonStart:function(){Sd.lineStart=Ire,Sd.lineEnd=Rre},polygonEnd:function(){Sd.lineStart=Sd.lineEnd=Sd.point=bl,Q5.add(Va(Kk)),Kk=new fu},result:function(){var t=Q5/2;return Q5=new fu,t}};function Ire(){Sd.point=zre}function zre(t,n){Sd.point=iB,nB=Qk=t,rB=eT=n}function iB(t,n){Kk.add(eT*t-Qk*n),Qk=t,eT=n}function Rre(){iB(nB,rB)}var xO=Sd,_m=1/0,e2=_m,ty=-_m,t2=ty,Fre={point:Nre,lineStart:bl,lineEnd:bl,polygonStart:bl,polygonEnd:bl,result:function(){var t=[[_m,e2],[ty,t2]];return ty=t2=-(e2=_m=1/0),t}};function Nre(t,n){t<_m&&(_m=t),t>ty&&(ty=t),nt2&&(t2=n)}var n2=Fre,tT=0,nT=0,pv=0,r2=0,i2=0,Zg=0,rT=0,iT=0,gv=0,aB,oB,Nf,Bf,Jc={point:A0,lineStart:bO,lineEnd:_O,polygonStart:function(){Jc.lineStart=Ure,Jc.lineEnd=Vre},polygonEnd:function(){Jc.point=A0,Jc.lineStart=bO,Jc.lineEnd=_O},result:function(){var t=gv?[rT/gv,iT/gv]:Zg?[r2/Zg,i2/Zg]:pv?[tT/pv,nT/pv]:[NaN,NaN];return tT=nT=pv=r2=i2=Zg=rT=iT=gv=0,t}};function A0(t,n){tT+=t,nT+=n,++pv}function bO(){Jc.point=Bre}function Bre(t,n){Jc.point=jre,A0(Nf=t,Bf=n)}function jre(t,n){var e=t-Nf,o=n-Bf,f=pu(e*e+o*o);r2+=f*(Nf+t)/2,i2+=f*(Bf+n)/2,Zg+=f,A0(Nf=t,Bf=n)}function _O(){Jc.point=A0}function Ure(){Jc.point=qre}function Vre(){sB(aB,oB)}function qre(t,n){Jc.point=sB,A0(aB=Nf=t,oB=Bf=n)}function sB(t,n){var e=t-Nf,o=n-Bf,f=pu(e*e+o*o);r2+=f*(Nf+t)/2,i2+=f*(Bf+n)/2,Zg+=f,f=Bf*t-Nf*n,rT+=f*(Nf+t),iT+=f*(Bf+n),gv+=f*3,A0(Nf=t,Bf=n)}var wO=Jc;function lB(t){this._context=t}lB.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){this._line===0&&this._context.closePath(),this._point=NaN},point:function(t,n){switch(this._point){case 0:{this._context.moveTo(t,n),this._point=1;break}case 1:{this._context.lineTo(t,n);break}default:{this._context.moveTo(t+this._radius,n),this._context.arc(t,n,this._radius,0,du);break}}},result:bl};var aT=new fu,e4,uB,cB,mv,vv,a2={point:bl,lineStart:function(){a2.point=Hre},lineEnd:function(){e4&&fB(uB,cB),a2.point=bl},polygonStart:function(){e4=!0},polygonEnd:function(){e4=null},result:function(){var t=+aT;return aT=new fu,t}};function Hre(t,n){a2.point=fB,uB=mv=t,cB=vv=n}function fB(t,n){mv-=t,vv-=n,aT.add(pu(mv*mv+vv*vv)),mv=t,vv=n}var kO=a2;function hB(){this._string=[]}hB.prototype={_radius:4.5,_circle:TO(4.5),pointRadius:function(t){return(t=+t)!==this._radius&&(this._radius=t,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){this._line===0&&this._string.push("Z"),this._point=NaN},point:function(t,n){switch(this._point){case 0:{this._string.push("M",t,",",n),this._point=1;break}case 1:{this._string.push("L",t,",",n);break}default:{this._circle==null&&(this._circle=TO(this._radius)),this._string.push("M",t,",",n,this._circle);break}}},result:function(){if(this._string.length){var t=this._string.join("");return this._string=[],t}else return null}};function TO(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}function dB(t,n){var e=4.5,o,f;function r(a){return a&&(typeof e=="function"&&f.pointRadius(+e.apply(this,arguments)),Dh(a,o(f))),f.result()}return r.area=function(a){return Dh(a,o(xO)),xO.result()},r.measure=function(a){return Dh(a,o(kO)),kO.result()},r.bounds=function(a){return Dh(a,o(n2)),n2.result()},r.centroid=function(a){return Dh(a,o(wO)),wO.result()},r.projection=function(a){return arguments.length?(o=a==null?(t=null,ey):(t=a).stream,r):t},r.context=function(a){return arguments.length?(f=a==null?(n=null,new hB):new lB(n=a),typeof e!="function"&&f.pointRadius(e),r):n},r.pointRadius=function(a){return arguments.length?(e=typeof a=="function"?a:(f.pointRadius(+a),+a),r):e},r.projection(t).context(n)}function Pw(t){return function(n){var e=new oT;for(var o in t)e[o]=t[o];return e.stream=n,e}}function oT(){}oT.prototype={constructor:oT,point:function(t,n){this.stream.point(t,n)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};function eS(t,n,e){var o=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),o!=null&&t.clipExtent(null),Dh(e,t.stream(n2)),n(n2.result()),o!=null&&t.clipExtent(o),t}function Dw(t,n,e){return eS(t,function(o){var f=n[1][0]-n[0][0],r=n[1][1]-n[0][1],a=Math.min(f/(o[1][0]-o[0][0]),r/(o[1][1]-o[0][1])),u=+n[0][0]+(f-a*(o[1][0]+o[0][0]))/2,c=+n[0][1]+(r-a*(o[1][1]+o[0][1]))/2;t.scale(150*a).translate([u,c])},e)}function tS(t,n,e){return Dw(t,[[0,0],n],e)}function nS(t,n,e){return eS(t,function(o){var f=+n,r=f/(o[1][0]-o[0][0]),a=(f-r*(o[1][0]+o[0][0]))/2,u=-r*o[0][1];t.scale(150*r).translate([a,u])},e)}function rS(t,n,e){return eS(t,function(o){var f=+n,r=f/(o[1][1]-o[0][1]),a=-r*o[0][0],u=(f-r*(o[1][1]+o[0][1]))/2;t.scale(150*r).translate([a,u])},e)}var AO=16,$re=Zi(30*Ea);function MO(t,n){return+n?Wre(t,n):Gre(t)}function Gre(t){return Pw({point:function(n,e){n=t(n,e),this.stream.point(n[0],n[1])}})}function Wre(t,n){function e(o,f,r,a,u,c,i,s,l,d,h,m,g,p){var v=i-o,y=s-f,x=v*v+y*y;if(x>4*n&&g--){var w=a+d,k=u+h,b=c+m,T=pu(w*w+k*k+b*b),_=Iu(b/=T),M=Va(Va(b)-1)n||Va((v*D+y*O)/x-.5)>.3||a*d+u*h+c*m<$re)&&(e(o,f,r,a,u,c,S,E,M,w/=T,k/=T,b,g,p),p.point(S,E),e(S,E,M,w,k,b,i,s,l,d,h,m,g,p))}}return function(o){var f,r,a,u,c,i,s,l,d,h,m,g,p={point:v,lineStart:y,lineEnd:w,polygonStart:function(){o.polygonStart(),p.lineStart=k},polygonEnd:function(){o.polygonEnd(),p.lineStart=y}};function v(_,M){_=t(_,M),o.point(_[0],_[1])}function y(){l=NaN,p.point=x,o.lineStart()}function x(_,M){var A=T0([_,M]),S=t(_,M);e(l,d,s,h,m,g,l=S[0],d=S[1],s=_,h=A[0],m=A[1],g=A[2],AO,o),o.point(l,d)}function w(){p.point=v,o.lineEnd()}function k(){y(),p.point=b,p.lineEnd=T}function b(_,M){x(f=_,M),r=l,a=d,u=h,c=m,i=g,p.point=x}function T(){e(l,d,s,h,m,g,r,a,f,u,c,i,AO,o),p.lineEnd=w,w()}return p}}var Yre=Pw({point:function(t,n){this.stream.point(t*Ea,n*Ea)}});function Xre(t){return Pw({point:function(n,e){var o=t(n,e);return this.stream.point(o[0],o[1])}})}function Zre(t,n,e,o,f){function r(a,u){return a*=o,u*=f,[n+t*a,e-t*u]}return r.invert=function(a,u){return[(a-n)/t*o,(e-u)/t*f]},r}function SO(t,n,e,o,f,r){if(!r)return Zre(t,n,e,o,f);var a=Zi(r),u=Gi(r),c=a*t,i=u*t,s=a/t,l=u/t,d=(u*e-a*n)/t,h=(u*n+a*e)/t;function m(g,p){return g*=o,p*=f,[c*g-i*p+n,e-i*g-c*p]}return m.invert=function(g,p){return[o*(s*g-l*p+d),f*(h-l*g-s*p)]},m}function sh(t){return pB(function(){return t})()}function pB(t){var n,e=150,o=480,f=250,r=0,a=0,u=0,c=0,i=0,s,l=0,d=1,h=1,m=null,g=mO,p=null,v,y,x,w=ey,k=.5,b,T,_,M,A;function S(R){return _(R[0]*Ea,R[1]*Ea)}function E(R){return R=_.invert(R[0],R[1]),R&&[R[0]*Os,R[1]*Os]}S.stream=function(R){return M&&A===R?M:M=Yre(Xre(s)(g(b(w(A=R)))))},S.preclip=function(R){return arguments.length?(g=R,m=void 0,O()):g},S.postclip=function(R){return arguments.length?(w=R,p=v=y=x=null,O()):w},S.clipAngle=function(R){return arguments.length?(g=+R?Lre(m=R*Ea):(m=null,mO),O()):m*Os},S.clipExtent=function(R){return arguments.length?(w=R==null?(p=v=y=x=null,ey):tB(p=+R[0][0],v=+R[0][1],y=+R[1][0],x=+R[1][1]),O()):p==null?null:[[p,v],[y,x]]},S.scale=function(R){return arguments.length?(e=+R,D()):e},S.translate=function(R){return arguments.length?(o=+R[0],f=+R[1],D()):[o,f]},S.center=function(R){return arguments.length?(r=R[0]%360*Ea,a=R[1]%360*Ea,D()):[r*Os,a*Os]},S.rotate=function(R){return arguments.length?(u=R[0]%360*Ea,c=R[1]%360*Ea,i=R.length>2?R[2]%360*Ea:0,D()):[u*Os,c*Os,i*Os]},S.angle=function(R){return arguments.length?(l=R%360*Ea,D()):l*Os},S.reflectX=function(R){return arguments.length?(d=R?-1:1,D()):d<0},S.reflectY=function(R){return arguments.length?(h=R?-1:1,D()):h<0},S.precision=function(R){return arguments.length?(b=MO(T,k=R*R),O()):pu(k)},S.fitExtent=function(R,z){return Dw(S,R,z)},S.fitSize=function(R,z){return tS(S,R,z)},S.fitWidth=function(R,z){return nS(S,R,z)},S.fitHeight=function(R,z){return rS(S,R,z)};function D(){var R=SO(e,0,0,d,h,l).apply(null,n(r,a)),z=SO(e,o-R[0],f-R[1],d,h,l);return s=JN(u,c,i),T=Zk(n,z),_=Zk(s,T),b=MO(T,k),O()}function O(){return M=A=null,S}return function(){return n=t.apply(this,arguments),S.invert=n.invert&&E,D()}}function iS(t){var n=0,e=Sa/3,o=pB(t),f=o(n,e);return f.parallels=function(r){return arguments.length?o(n=r[0]*Ea,e=r[1]*Ea):[n*Os,e*Os]},f}function Jre(t){var n=Zi(t);function e(o,f){return[o*n,Gi(f)/n]}return e.invert=function(o,f){return[o/n,Iu(f*n)]},e}function Kre(t,n){var e=Gi(t),o=(e+Gi(n))/2;if(Va(o)=.12&&p<.234&&g>=-.425&&g<-.214?f:p>=.166&&p<.234&&g>=-.214&&g<-.115?a:e).invert(d)},s.stream=function(d){return t&&n===d?t:t=Qre([e.stream(n=d),f.stream(d),a.stream(d)])},s.precision=function(d){return arguments.length?(e.precision(d),f.precision(d),a.precision(d),l()):e.precision()},s.scale=function(d){return arguments.length?(e.scale(d),f.scale(d*.35),a.scale(d),s.translate(e.translate())):e.scale()},s.translate=function(d){if(!arguments.length)return e.translate();var h=e.scale(),m=+d[0],g=+d[1];return o=e.translate(d).clipExtent([[m-.455*h,g-.238*h],[m+.455*h,g+.238*h]]).stream(i),r=f.translate([m-.307*h,g+.201*h]).clipExtent([[m-.425*h+Xi,g+.12*h+Xi],[m-.214*h-Xi,g+.234*h-Xi]]).stream(i),u=a.translate([m-.205*h,g+.212*h]).clipExtent([[m-.214*h+Xi,g+.166*h+Xi],[m-.115*h-Xi,g+.234*h-Xi]]).stream(i),l()},s.fitExtent=function(d,h){return Dw(s,d,h)},s.fitSize=function(d,h){return tS(s,d,h)},s.fitWidth=function(d,h){return nS(s,d,h)},s.fitHeight=function(d,h){return rS(s,d,h)};function l(){return t=n=null,s}return s.scale(1070)}function mB(t){return function(n,e){var o=Zi(n),f=Zi(e),r=t(o*f);return r===1/0?[2,0]:[r*f*Gi(n),r*Gi(e)]}}function Hy(t){return function(n,e){var o=pu(n*n+e*e),f=t(o),r=Gi(f),a=Zi(f);return[xc(n*r,o*a),Iu(o&&e*r/o)]}}var vB=mB(function(t){return pu(2/(1+t))});vB.invert=Hy(function(t){return 2*Iu(t/2)});function tie(){return sh(vB).scale(124.75).clipAngle(180-.001)}var yB=mB(function(t){return(t=jN(t))&&t/Gi(t)});yB.invert=Hy(function(t){return t});function nie(){return sh(yB).scale(79.4188).clipAngle(180-.001)}function Iw(t,n){return[t,U_(KM((ys+n)/2))]}Iw.invert=function(t,n){return[t,2*Zm(BN(n))-ys]};function rie(){return xB(Iw).scale(961/du)}function xB(t){var n=sh(t),e=n.center,o=n.scale,f=n.translate,r=n.clipExtent,a=null,u,c,i;n.scale=function(l){return arguments.length?(o(l),s()):o()},n.translate=function(l){return arguments.length?(f(l),s()):f()},n.center=function(l){return arguments.length?(e(l),s()):e()},n.clipExtent=function(l){return arguments.length?(l==null?a=u=c=i=null:(a=+l[0][0],u=+l[0][1],c=+l[1][0],i=+l[1][1]),s()):a==null?null:[[a,u],[c,i]]};function s(){var l=Sa*o(),d=n(kre(n.rotate()).invert([0,0]));return r(a==null?[[d[0]-l,d[1]-l],[d[0]+l,d[1]+l]]:t===Iw?[[Math.max(d[0]-l,a),u],[Math.min(d[0]+l,c),i]]:[[a,Math.max(d[1]-l,u)],[c,Math.min(d[1]+l,i)]])}return s()}function pb(t){return KM((ys+t)/2)}function iie(t,n){var e=Zi(t),o=t===n?Gi(t):U_(e/Zi(n))/U_(pb(n)/pb(t)),f=e*Z5(pb(t),o)/o;if(!o)return Iw;function r(a,u){f>0?u<-ys+Xi&&(u=-ys+Xi):u>ys-Xi&&(u=ys-Xi);var c=f/Z5(pb(u),o);return[c*Gi(o*a),f-c*Zi(o*a)]}return r.invert=function(a,u){var c=f-u,i=fc(o)*pu(a*a+c*c),s=xc(a,Va(c))*fc(c);return c*o<0&&(s-=Sa*fc(a)*fc(c)),[s/o,2*Zm(Z5(f/i,1/o))-ys]},r}function aie(){return iS(iie).scale(109.5).parallels([30,30])}function s2(t,n){return[t,n]}s2.invert=s2;function oie(){return sh(s2).scale(152.63)}function sie(t,n){var e=Zi(t),o=t===n?Gi(t):(e-Zi(n))/(n-t),f=e/o+t;if(Va(o)Xi&&--o>0);return[t/(.8707+(r=e*e)*(-.131979+r*(-.013791+r*r*r*(.003971-.001529*r)))),e]};function die(){return sh(wB).scale(175.295)}function kB(t,n){return[Zi(n)*Gi(t),Gi(n)]}kB.invert=Hy(Iu);function pie(){return sh(kB).scale(249.5).clipAngle(90+Xi)}function TB(t,n){var e=Zi(n),o=1+Zi(t)*e;return[e*Gi(t)/o,Gi(n)/o]}TB.invert=Hy(function(t){return 2*Zm(t)});function gie(){return sh(TB).scale(250).clipAngle(142)}function AB(t,n){return[U_(KM((ys+n)/2)),-t]}AB.invert=function(t,n){return[-n,2*Zm(BN(t))-ys]};function mie(){var t=xB(AB),n=t.center,e=t.rotate;return t.center=function(o){return arguments.length?n([-o[1],o[0]]):(o=n(),[o[1],-o[0]])},t.rotate=function(o){return arguments.length?e([o[0],o[1],o.length>2?o[2]+90:90]):(o=e(),[o[0],o[1],o[2]-90])},e([0,0,90]).scale(159.155)}var vie=Math.abs,sT=Math.cos,u2=Math.sin,yie=1e-6,MB=Math.PI,lT=MB/2,EO=xie(2);function CO(t){return t>1?lT:t<-1?-lT:Math.asin(t)}function xie(t){return t>0?Math.sqrt(t):0}function bie(t,n){var e=t*u2(n),o=30,f;do n-=f=(n+u2(n)-e)/(1+sT(n));while(vie(f)>yie&&--o>0);return n/2}function _ie(t,n,e){function o(f,r){return[t*f*sT(r=bie(e,r)),n*u2(r)]}return o.invert=function(f,r){return r=CO(r/n),[f/(t*sT(r)),CO((2*r+u2(2*r))/e)]},o}var wie=_ie(EO/lT,EO,MB);function kie(){return sh(wie).scale(169.529)}const Tie=dB(),uT=["clipAngle","clipExtent","scale","translate","center","rotate","parallels","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];function Aie(t,n){return function e(){const o=n();return o.type=t,o.path=dB().projection(o),o.copy=o.copy||function(){const f=e();return uT.forEach(r=>{o[r]&&f[r](o[r]())}),f.path.pointRadius(o.path.pointRadius()),f},o}}function aS(t,n){if(!t||typeof t!="string")throw new Error("Projection type must be a name string.");return t=t.toLowerCase(),arguments.length>1?(c2[t]=Aie(t,n),this):c2[t]||null}function SB(t){return t&&t.path||Tie}const c2={albers:gB,albersusa:eie,azimuthalequalarea:tie,azimuthalequidistant:nie,conicconformal:aie,conicequalarea:o2,conicequidistant:lie,equalEarth:cie,equirectangular:oie,gnomonic:fie,identity:hie,mercator:rie,mollweide:kie,naturalEarth1:die,orthographic:pie,stereographic:gie,transversemercator:mie};for(const t in c2)aS(t,c2[t]);function Mie(){}const Ah=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function EB(){var t=1,n=1,e=u;function o(c,i){return i.map(s=>f(c,s))}function f(c,i){var s=[],l=[];return r(c,i,d=>{e(d,c,i),Sie(d)>0?s.push([d]):l.push(d)}),l.forEach(d=>{for(var h=0,m=s.length,g;h=i,Ah[p<<1].forEach(x);++h=i,Ah[g|p<<1].forEach(x);for(Ah[p<<0].forEach(x);++m=i,v=c[m*t]>=i,Ah[p<<1|v<<2].forEach(x);++h=i,y=v,v=c[m*t+h+1]>=i,Ah[g|p<<1|v<<2|y<<3].forEach(x);Ah[p|v<<3].forEach(x)}for(h=-1,v=c[m*t]>=i,Ah[v<<2].forEach(x);++h=i,Ah[v<<2|y<<3].forEach(x);Ah[v<<3].forEach(x);function x(w){var k=[w[0][0]+h,w[0][1]+m],b=[w[1][0]+h,w[1][1]+m],T=a(k),_=a(b),M,A;(M=d[T])?(A=l[_])?(delete d[M.end],delete l[A.start],M===A?(M.ring.push(b),s(M.ring)):l[M.start]=d[A.end]={start:M.start,end:A.end,ring:M.ring.concat(A.ring)}):(delete d[M.end],M.ring.push(b),d[M.end=_]=M):(M=l[_])?(A=d[T])?(delete l[M.start],delete d[A.end],M===A?(M.ring.push(b),s(M.ring)):l[A.start]=d[M.end]={start:A.start,end:M.end,ring:A.ring.concat(M.ring)}):(delete l[M.start],M.ring.unshift(k),l[M.start=T]=M):l[T]=d[_]={start:T,end:_,ring:[k,b]}}}function a(c){return c[0]*2+c[1]*(t+1)*4}function u(c,i,s){c.forEach(l=>{var d=l[0],h=l[1],m=d|0,g=h|0,p,v=i[g*t+m];d>0&&d0&&h=0&&s>=0||Pr("invalid size"),t=i,n=s,o},o.smooth=function(c){return arguments.length?(e=c?u:Mie,o):e===u},o}function Sie(t){for(var n=0,e=t.length,o=t[e-1][1]*t[0][0]-t[e-1][0]*t[0][1];++no!=h>o&&e<(d-i)*(o-s)/(h-s)+i&&(f=-f)}return f}function Oie(t,n,e){var o;return Lie(t,n,e)&&Pie(t[o=+(t[0]===n[0])],e[o],n[o])}function Lie(t,n,e){return(n[0]-t[0])*(e[1]-t[1])===(e[0]-t[0])*(n[1]-t[1])}function Pie(t,n,e){return t<=n&&n<=e||e<=n&&n<=t}function CB(t,n,e){return function(o){var f=Zf(o),r=e?Math.min(f[0],0):f[0],a=f[1],u=a-r,c=n?b0(r,a,t):u/(t+1);return Ju(r+c,a,c)}}function oS(t){_r.call(this,null,t)}oS.Definition={type:"Isocontour",metadata:{generates:!0},params:[{name:"field",type:"field"},{name:"thresholds",type:"number",array:!0},{name:"levels",type:"number"},{name:"nice",type:"boolean",default:!1},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"zero",type:"boolean",default:!0},{name:"smooth",type:"boolean",default:!0},{name:"scale",type:"number",expr:!0},{name:"translate",type:"number",array:!0,expr:!0},{name:"as",type:"string",null:!0,default:"contour"}]};ni(oS,_r,{transform(t,n){if(this.value&&!n.changed()&&!t.modified())return n.StopPropagation;var e=n.fork(n.NO_SOURCE|n.NO_FIELDS),o=n.materialize(n.SOURCE).source,f=t.field||Hl,r=EB().smooth(t.smooth!==!1),a=t.thresholds||Die(o,f,t),u=t.as===null?null:t.as||"contour",c=[];return o.forEach(i=>{const s=f(i),l=r.size([s.width,s.height])(s.values,Ir(a)?a:a(s.values));Iie(l,s,i,t),l.forEach(d=>{c.push(nw(i,ro(u!=null?{[u]:d}:d)))})}),this.value&&(e.rem=this.value),this.value=e.source=e.add=c,e}});function Die(t,n,e){const o=CB(e.levels||10,e.nice,e.zero!==!1);return e.resolve!=="shared"?o:o(t.map(f=>d0(n(f).values)))}function Iie(t,n,e,o){let f=o.scale||n.scale,r=o.translate||n.translate;if(ga(f)&&(f=f(e,o)),ga(r)&&(r=r(e,o)),(f===1||f==null)&&!r)return;const a=(wo(f)?f:f[0])||1,u=(wo(f)?f:f[1])||1,c=r&&r[0]||0,i=r&&r[1]||0;t.forEach(OB(n,a,u,c,i))}function OB(t,n,e,o,f){const r=t.x1||0,a=t.y1||0,u=n*e<0;function c(l){l.forEach(i)}function i(l){u&&l.reverse(),l.forEach(s)}function s(l){l[0]=(l[0]-r)*n+o,l[1]=(l[1]-a)*e+f}return function(l){return l.coordinates.forEach(c),l}}function OO(t,n,e){const o=t>=0?t:e6(n,e);return Math.round((Math.sqrt(4*o*o+1)-1)/2)}function t4(t){return ga(t)?t:$l(+t)}function LB(){var t=c=>c[0],n=c=>c[1],e=Um,o=[-1,-1],f=960,r=500,a=2;function u(c,i){const s=OO(o[0],c,t)>>a,l=OO(o[1],c,n)>>a,d=s?s+2:0,h=l?l+2:0,m=2*d+(f>>a),g=2*h+(r>>a),p=new Float32Array(m*g),v=new Float32Array(m*g);let y=p;c.forEach(w=>{const k=d+(+t(w)>>a),b=h+(+n(w)>>a);k>=0&&k=0&&b0&&l>0?(Ig(m,g,p,v,s),zg(m,g,v,p,l),Ig(m,g,p,v,s),zg(m,g,v,p,l),Ig(m,g,p,v,s),zg(m,g,v,p,l)):s>0?(Ig(m,g,p,v,s),Ig(m,g,v,p,s),Ig(m,g,p,v,s),y=v):l>0&&(zg(m,g,p,v,l),zg(m,g,v,p,l),zg(m,g,p,v,l),y=v);const x=i?Math.pow(2,-2*a):1/MI(y);for(let w=0,k=m*g;w>a),y2:h+(r>>a)}}return u.x=function(c){return arguments.length?(t=t4(c),u):t},u.y=function(c){return arguments.length?(n=t4(c),u):n},u.weight=function(c){return arguments.length?(e=t4(c),u):e},u.size=function(c){if(!arguments.length)return[f,r];var i=+c[0],s=+c[1];return i>=0&&s>=0||Pr("invalid size"),f=i,r=s,u},u.cellSize=function(c){return arguments.length?((c=+c)>=1||Pr("invalid cell size"),a=Math.floor(Math.log(c)/Math.LN2),u):1<=f&&(u>=r&&(c-=e[u-r+a*t]),o[u-f+a*t]=c/Math.min(u+1,t-1+r-u,r))}function zg(t,n,e,o,f){const r=(f<<1)+1;for(let a=0;a=f&&(u>=r&&(c-=e[a+(u-r)*t]),o[a+(u-f)*t]=c/Math.min(u+1,n-1+r-u,r))}function sS(t){_r.call(this,null,t)}sS.Definition={type:"KDE2D",metadata:{generates:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"weight",type:"field"},{name:"groupby",type:"field",array:!0},{name:"cellSize",type:"number"},{name:"bandwidth",type:"number",array:!0,length:2},{name:"counts",type:"boolean",default:!1},{name:"as",type:"string",default:"grid"}]};const zie=["x","y","weight","size","cellSize","bandwidth"];function PB(t,n){return zie.forEach(e=>n[e]!=null?t[e](n[e]):0),t}ni(sS,_r,{transform(t,n){if(this.value&&!n.changed()&&!t.modified())return n.StopPropagation;var e=n.fork(n.NO_SOURCE|n.NO_FIELDS),o=n.materialize(n.SOURCE).source,f=Rie(o,t.groupby),r=(t.groupby||[]).map(xs),a=PB(LB(),t),u=t.as||"grid",c=[];function i(s,l){for(let d=0;dro(i({[u]:a(s,t.counts)},s.dims))),this.value&&(e.rem=this.value),this.value=e.source=e.add=c,e}});function Rie(t,n){var e=[],o=s=>s(u),f,r,a,u,c,i;if(n==null)e.push(t);else for(f={},r=0,a=t.length;re.push(u(s))),r&&a&&(n.visit(c,s=>{var l=r(s),d=a(s);l!=null&&d!=null&&(l=+l)===l&&(d=+d)===d&&o.push([l,d])}),e=e.concat({type:cT,geometry:{type:Fie,coordinates:o}})),this.value={type:uS,features:e}}});function fS(t){_r.call(this,null,t)}fS.Definition={type:"GeoPath",metadata:{modifies:!0},params:[{name:"projection",type:"projection"},{name:"field",type:"field"},{name:"pointRadius",type:"number",expr:!0},{name:"as",type:"string",default:"path"}]};ni(fS,_r,{transform(t,n){var e=n.fork(n.ALL),o=this.value,f=t.field||Hl,r=t.as||"path",a=e.SOURCE;!o||t.modified()?(this.value=o=SB(t.projection),e.materialize().reflow()):a=f===Hl||n.modified(f.fields)?e.ADD_MOD:e.ADD;const u=Nie(o,t.pointRadius);return e.visit(a,c=>c[r]=o(f(c))),o.pointRadius(u),e.modifies(r)}});function Nie(t,n){const e=t.pointRadius();return t.context(null),n!=null&&t.pointRadius(n),e}function hS(t){_r.call(this,null,t)}hS.Definition={type:"GeoPoint",metadata:{modifies:!0},params:[{name:"projection",type:"projection",required:!0},{name:"fields",type:"field",array:!0,required:!0,length:2},{name:"as",type:"string",array:!0,length:2,default:["x","y"]}]};ni(hS,_r,{transform(t,n){var e=t.projection,o=t.fields[0],f=t.fields[1],r=t.as||["x","y"],a=r[0],u=r[1],c;function i(s){const l=e([o(s),f(s)]);l?(s[a]=l[0],s[u]=l[1]):(s[a]=void 0,s[u]=void 0)}return t.modified()?n=n.materialize().reflow(!0).visit(n.SOURCE,i):(c=n.modified(o.fields)||n.modified(f.fields),n.visit(c?n.ADD_MOD:n.ADD,i)),n.modifies(r)}});function dS(t){_r.call(this,null,t)}dS.Definition={type:"GeoShape",metadata:{modifies:!0,nomod:!0},params:[{name:"projection",type:"projection"},{name:"field",type:"field",default:"datum"},{name:"pointRadius",type:"number",expr:!0},{name:"as",type:"string",default:"shape"}]};ni(dS,_r,{transform(t,n){var e=n.fork(n.ALL),o=this.value,f=t.as||"shape",r=e.ADD;return(!o||t.modified())&&(this.value=o=Bie(SB(t.projection),t.field||Lu("datum"),t.pointRadius),e.materialize().reflow(),r=e.SOURCE),e.visit(r,a=>a[f]=o),e.modifies(f)}});function Bie(t,n,e){const o=e==null?f=>t(n(f)):f=>{var r=t.pointRadius(),a=t.pointRadius(e)(n(f));return t.pointRadius(r),a};return o.context=f=>(t.context(f),o),o}function pS(t){_r.call(this,[],t),this.generator=Dre()}pS.Definition={type:"Graticule",metadata:{changes:!0,generates:!0},params:[{name:"extent",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"extentMajor",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"extentMinor",type:"array",array:!0,length:2,content:{type:"number",array:!0,length:2}},{name:"step",type:"number",array:!0,length:2},{name:"stepMajor",type:"number",array:!0,length:2,default:[90,360]},{name:"stepMinor",type:"number",array:!0,length:2,default:[10,10]},{name:"precision",type:"number",default:2.5}]};ni(pS,_r,{transform(t,n){var e=this.value,o=this.generator,f;if(!e.length||t.modified())for(const r in t)ga(o[r])&&o[r](t[r]);return f=o(),e.length?n.mod.push(vz(e[0],f)):n.add.push(ro(f)),e[0]=f,n}});function gS(t){_r.call(this,null,t)}gS.Definition={type:"heatmap",metadata:{modifies:!0},params:[{name:"field",type:"field"},{name:"color",type:"string",expr:!0},{name:"opacity",type:"number",expr:!0},{name:"resolve",type:"enum",values:["shared","independent"],default:"independent"},{name:"as",type:"string",default:"image"}]};ni(gS,_r,{transform(t,n){if(!n.changed()&&!t.modified())return n.StopPropagation;var e=n.materialize(n.SOURCE).source,o=t.resolve==="shared",f=t.field||Hl,r=Uie(t.opacity,t),a=jie(t.color,t),u=t.as||"image",c={$x:0,$y:0,$value:0,$max:o?d0(e.map(i=>d0(f(i).values))):0};return e.forEach(i=>{const s=f(i),l=pa({},i,c);o||(l.$max=d0(s.values||[])),i[u]=Vie(s,l,a.dep?a:$l(a(l)),r.dep?r:$l(r(l)))}),n.reflow(!0).modifies(u)}});function jie(t,n){let e;return ga(t)?(e=o=>c_(t(o,n)),e.dep=DB(t)):e=$l(c_(t||"#888")),e}function Uie(t,n){let e;return ga(t)?(e=o=>t(o,n),e.dep=DB(t)):t?e=$l(t):(e=o=>o.$value/o.$max||0,e.dep=!0),e}function DB(t){if(!ga(t))return!1;const n=ff(Bl(t));return n.$x||n.$y||n.$value||n.$max}function Vie(t,n,e,o){const f=t.width,r=t.height,a=t.x1||0,u=t.y1||0,c=t.x2||f,i=t.y2||r,s=t.values,l=s?p=>s[p]:Md,d=Vd(c-a,i-u),h=d.getContext("2d"),m=h.getImageData(0,0,c-a,i-u),g=m.data;for(let p=u,v=0;p{t[o]!=null&&LO(e,o,t[o])})):uT.forEach(o=>{t.modified(o)&&LO(e,o,t[o])}),t.pointRadius!=null&&e.path.pointRadius(t.pointRadius),t.fit&&qie(e,t),n.fork(n.NO_SOURCE|n.NO_FIELDS)}});function qie(t,n){const e=$ie(n.fit);n.extent?t.fitExtent(n.extent,e):n.size&&t.fitSize(n.size,e)}function Hie(t){const n=aS((t||"mercator").toLowerCase());return n||Pr("Unrecognized projection type: "+t),n()}function LO(t,n,e){ga(t[n])&&t[n](e)}function $ie(t){return t=ki(t),t.length===1?t[0]:{type:uS,features:t.reduce((n,e)=>n.concat(Gie(e)),[])}}function Gie(t){return t.type===uS?t.features:ki(t).filter(n=>n!=null).map(n=>n.type===cT?n:{type:cT,geometry:n})}var Wie=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",contour:lS,geojson:cS,geopath:fS,geopoint:hS,geoshape:dS,graticule:pS,heatmap:gS,isocontour:oS,kde2d:sS,projection:IB});function Yie(t,n){var e,o=1;t==null&&(t=0),n==null&&(n=0);function f(){var r,a=e.length,u,c=0,i=0;for(r=0;r=(l=(u+i)/2))?u=l:i=l,(p=e>=(d=(c+s)/2))?c=d:s=d,f=r,!(r=r[v=p<<1|g]))return f[v]=a,t;if(h=+t._x.call(null,r.data),m=+t._y.call(null,r.data),n===h&&e===m)return a.next=r,f?f[v]=a:t._root=a,t;do f=f?f[v]=new Array(4):t._root=new Array(4),(g=n>=(l=(u+i)/2))?u=l:i=l,(p=e>=(d=(c+s)/2))?c=d:s=d;while((v=p<<1|g)===(y=(m>=d)<<1|h>=l));return f[y]=r,f[v]=a,t}function Zie(t){var n,e,o=t.length,f,r,a=new Array(o),u=new Array(o),c=1/0,i=1/0,s=-1/0,l=-1/0;for(e=0;es&&(s=f),rl&&(l=r));if(c>s||i>l)return this;for(this.cover(c,i).cover(s,l),e=0;et||t>=f||o>n||n>=r;)switch(i=(ns||(u=m.y0)>l||(c=m.x1)=v)<<1|t>=p)&&(m=d[d.length-1],d[d.length-1]=d[d.length-1-g],d[d.length-1-g]=m)}else{var y=t-+this._x.call(null,h.data),x=n-+this._y.call(null,h.data),w=y*y+x*x;if(w=(d=(a+c)/2))?a=d:c=d,(g=l>=(h=(u+i)/2))?u=h:i=h,n=e,!(e=e[p=g<<1|m]))return this;if(!e.length)break;(n[p+1&3]||n[p+2&3]||n[p+3&3])&&(o=n,v=p)}for(;e.data!==t;)if(f=e,!(e=e.next))return this;return(r=e.next)&&delete e.next,f?(r?f.next=r:delete f.next,this):n?(r?n[p]=r:delete n[p],(e=n[0]||n[1]||n[2]||n[3])&&e===(n[3]||n[2]||n[1]||n[0])&&!e.length&&(o?o[v]=e:this._root=e),this):(this._root=r,this)}function nae(t){for(var n=0,e=t.length;nd.index){var S=h-_.x-_.vx,E=m-_.y-_.vy,D=S*S+E*E;Dh+A||bm+A||Ti.r&&(i.r=i[s].r)}function c(){if(!!n){var i,s=n.length,l;for(e=new Array(s),i=0;i[n(k,b,a),k])),w;for(p=0,u=new Array(v);p{}};function RB(){for(var t=0,n=arguments.length,e={},o;t=0&&(o=e.slice(f+1),e=e.slice(0,f)),e&&!n.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:o}})}Jb.prototype=RB.prototype={constructor:Jb,on:function(t,n){var e=this._,o=vae(t+"",e),f,r=-1,a=o.length;if(arguments.length<2){for(;++r0)for(var e=new Array(f),o=0,f,r;o=0&&t._call.call(void 0,n),t=t._next;--wm}function zO(){M0=(h2=ny.now())+zw,wm=yv=0;try{bae()}finally{wm=0,wae(),M0=0}}function _ae(){var t=ny.now(),n=t-h2;n>FB&&(zw-=n,h2=t)}function wae(){for(var t,n=f2,e,o=1/0;n;)n._call?(o>n._time&&(o=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:f2=e);xv=t,fT(o)}function fT(t){if(!wm){yv&&(yv=clearTimeout(yv));var n=t-M0;n>24?(t<1/0&&(yv=setTimeout(zO,t-ny.now()-zw)),H1&&(H1=clearInterval(H1))):(H1||(h2=ny.now(),H1=setInterval(_ae,FB)),wm=1,NB(zO))}}function kae(t,n,e){var o=new d2,f=n;return n==null?(o.restart(t,n,e),o):(o._restart=o.restart,o.restart=function(r,a,u){a=+a,u=u==null?yS():+u,o._restart(function c(i){i+=f,o._restart(c,f+=a,u),r(i)},a,u)},o.restart(t,n,e),o)}const Tae=1664525,Aae=1013904223,RO=4294967296;function Mae(){let t=1;return()=>(t=(Tae*t+Aae)%RO)/RO}function Sae(t){return t.x}function Eae(t){return t.y}var Cae=10,Oae=Math.PI*(3-Math.sqrt(5));function Lae(t){var n,e=1,o=.001,f=1-Math.pow(o,1/300),r=0,a=.6,u=new Map,c=BB(l),i=RB("tick","end"),s=Mae();t==null&&(t=[]);function l(){d(),i.call("tick",n),e1?(p==null?u.delete(g):u.set(g,m(p)),n):u.get(g)},find:function(g,p,v){var y=0,x=t.length,w,k,b,T,_;for(v==null?v=1/0:v*=v,y=0;y1?(i.on(g,p),n):i.on(g)}}}function Pae(){var t,n,e,o,f=uu(-30),r,a=1,u=1/0,c=.81;function i(h){var m,g=t.length,p=mS(t,Sae,Eae).visitAfter(l);for(o=h,m=0;m=u)return;(h.data!==n||h.next)&&(v===0&&(v=Rd(e),w+=v*v),y===0&&(y=Rd(e),w+=y*y),w=0;)e.tick();else if(e.stopped()&&e.restart(),!o)return n.StopPropagation}return this.finish(t,n)},finish(t,n){const e=n.dataflow;for(let u=this._argops,c=0,i=u.length,s;ct.touch(n).run()}function Fae(t,n){const e=Lae(t),o=e.stop,f=e.restart;let r=!1;return e.stopped=()=>r,e.restart=()=>(r=!1,f()),e.stop=()=>(r=!0,o()),UB(e,n,!0).on("end",()=>r=!0)}function UB(t,n,e,o){var f=ki(n.forces),r,a,u,c;for(r=0,a=hT.length;rn(o,e):n)}var Uae=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",force:xS});function Vae(t,n){return t.parent===n.parent?1:2}function qae(t){return t.reduce(Hae,0)/t.length}function Hae(t,n){return t+n.x}function $ae(t){return 1+t.reduce(Gae,0)}function Gae(t,n){return Math.max(t,n.y)}function Wae(t){for(var n;n=t.children;)t=n[0];return t}function Yae(t){for(var n;n=t.children;)t=n[n.length-1];return t}function Xae(){var t=Vae,n=1,e=1,o=!1;function f(r){var a,u=0;r.eachAfter(function(d){var h=d.children;h?(d.x=qae(h),d.y=$ae(h)):(d.x=a?u+=t(d,a):0,d.y=0,a=d)});var c=Wae(r),i=Yae(r),s=c.x-t(c,i)/2,l=i.x+t(i,c)/2;return r.eachAfter(o?function(d){d.x=(d.x-r.x)*n,d.y=(r.y-d.y)*e}:function(d){d.x=(d.x-s)/(l-s)*n,d.y=(1-(r.y?d.y/r.y:1))*e})}return f.separation=function(r){return arguments.length?(t=r,f):t},f.size=function(r){return arguments.length?(o=!1,n=+r[0],e=+r[1],f):o?null:[n,e]},f.nodeSize=function(r){return arguments.length?(o=!0,n=+r[0],e=+r[1],f):o?[n,e]:null},f}function Zae(t){var n=0,e=t.children,o=e&&e.length;if(!o)n=1;else for(;--o>=0;)n+=e[o].value;t.value=n}function Jae(){return this.eachAfter(Zae)}function Kae(t,n){let e=-1;for(const o of this)t.call(n,o,++e,this);return this}function Qae(t,n){for(var e=this,o=[e],f,r,a=-1;e=o.pop();)if(t.call(n,e,++a,this),f=e.children)for(r=f.length-1;r>=0;--r)o.push(f[r]);return this}function eoe(t,n){for(var e=this,o=[e],f=[],r,a,u,c=-1;e=o.pop();)if(f.push(e),r=e.children)for(a=0,u=r.length;a=0;)e+=o[f].value;n.value=e})}function roe(t){return this.eachBefore(function(n){n.children&&n.children.sort(t)})}function ioe(t){for(var n=this,e=aoe(n,t),o=[n];n!==e;)n=n.parent,o.push(n);for(var f=o.length;t!==e;)o.splice(f,0,t),t=t.parent;return o}function aoe(t,n){if(t===n)return t;var e=t.ancestors(),o=n.ancestors(),f=null;for(t=e.pop(),n=o.pop();t===n;)f=t,t=e.pop(),n=o.pop();return f}function ooe(){for(var t=this,n=[t];t=t.parent;)n.push(t);return n}function soe(){return Array.from(this)}function loe(){var t=[];return this.eachBefore(function(n){n.children||t.push(n)}),t}function uoe(){var t=this,n=[];return t.each(function(e){e!==t&&n.push({source:e.parent,target:e})}),n}function*coe(){var t=this,n,e=[t],o,f,r;do for(n=e.reverse(),e=[];t=n.pop();)if(yield t,o=t.children)for(f=0,r=o.length;f=0;--u)f.push(r=a[u]=new km(a[u])),r.parent=o,r.depth=o.depth+1;return e.eachBefore(VB)}function foe(){return bS(this).eachBefore(poe)}function hoe(t){return t.children}function doe(t){return Array.isArray(t)?t[1]:null}function poe(t){t.data.value!==void 0&&(t.value=t.data.value),t.data=t.data.data}function VB(t){var n=0;do t.height=n;while((t=t.parent)&&t.height<++n)}function km(t){this.data=t,this.depth=this.height=0,this.parent=null}km.prototype=bS.prototype={constructor:km,count:Jae,each:Kae,eachAfter:eoe,eachBefore:Qae,find:toe,sum:noe,sort:roe,path:ioe,ancestors:ooe,descendants:soe,leaves:loe,links:uoe,copy:foe,[Symbol.iterator]:coe};function Kb(t){return t==null?null:qB(t)}function qB(t){if(typeof t!="function")throw new Error;return t}function n0(){return 0}function Hg(t){return function(){return t}}const goe=1664525,moe=1013904223,NO=4294967296;function voe(){let t=1;return()=>(t=(goe*t+moe)%NO)/NO}function yoe(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function xoe(t,n){let e=t.length,o,f;for(;e;)f=n()*e--|0,o=t[e],t[e]=t[f],t[f]=o;return t}function boe(t,n){for(var e=0,o=(t=xoe(Array.from(t),n)).length,f=[],r,a;e0&&e*e>o*o+f*f}function n4(t,n){for(var e=0;e1e-6?(S+Math.sqrt(S*S-4*A*E))/(2*A):E/S);return{x:o+b+T*D,y:f+_+M*D,r:D}}function BO(t,n,e){var o=t.x-n.x,f,r,a=t.y-n.y,u,c,i=o*o+a*a;i?(r=n.r+e.r,r*=r,c=t.r+e.r,c*=c,r>c?(f=(i+c-r)/(2*i),u=Math.sqrt(Math.max(0,c/i-f*f)),e.x=t.x-f*o-u*a,e.y=t.y-f*a+u*o):(f=(i+r-c)/(2*i),u=Math.sqrt(Math.max(0,r/i-f*f)),e.x=n.x+f*o-u*a,e.y=n.y+f*a+u*o)):(e.x=n.x+e.r,e.y=n.y)}function jO(t,n){var e=t.r+n.r-1e-6,o=n.x-t.x,f=n.y-t.y;return e>0&&e*e>o*o+f*f}function UO(t){var n=t._,e=t.next._,o=n.r+e.r,f=(n.x*e.r+e.x*n.r)/o,r=(n.y*e.r+e.y*n.r)/o;return f*f+r*r}function mb(t){this._=t,this.next=null,this.previous=null}function Toe(t,n){if(!(r=(t=yoe(t)).length))return 0;var e,o,f,r,a,u,c,i,s,l,d;if(e=t[0],e.x=0,e.y=0,!(r>1))return e.r;if(o=t[1],e.x=-o.r,o.x=e.r,o.y=0,!(r>2))return e.r+o.r;BO(o,e,f=t[2]),e=new mb(e),o=new mb(o),f=new mb(f),e.next=f.previous=o,o.next=e.previous=f,f.next=o.previous=e;e:for(c=3;cLoe(e(w,k,f))),y=v.map(GO),x=new Set(v).add("");for(const w of y)x.has(w)||(x.add(w),v.push(w),y.push(GO(w)),r.push(i4));a=(w,k)=>v[k],u=(w,k)=>y[k]}for(s=0,c=r.length;s=0&&(h=r[v],h.data===i4);--v)h.data=null}if(l.parent=Eoe,l.eachBefore(function(v){v.depth=v.parent.depth+1,--c}).eachBefore(VB),l.parent=null,c>0)throw new Error("cycle");return l}return o.id=function(f){return arguments.length?(t=Kb(f),o):t},o.parentId=function(f){return arguments.length?(n=Kb(f),o):n},o.path=function(f){return arguments.length?(e=Kb(f),o):e},o}function Loe(t){t=`${t}`;let n=t.length;return dT(t,n-1)&&!dT(t,n-2)&&(t=t.slice(0,-1)),t[0]==="/"?t:`/${t}`}function GO(t){let n=t.length;if(n<2)return"";for(;--n>1&&!dT(t,n););return t.slice(0,n)}function dT(t,n){if(t[n]==="/"){let e=0;for(;n>0&&t[--n]==="\\";)++e;if((e&1)===0)return!0}return!1}function Poe(t,n){return t.parent===n.parent?1:2}function a4(t){var n=t.children;return n?n[0]:t.t}function o4(t){var n=t.children;return n?n[n.length-1]:t.t}function Doe(t,n,e){var o=e/(n.i-t.i);n.c-=o,n.s+=e,t.c+=o,n.z+=e,n.m+=e}function Ioe(t){for(var n=0,e=0,o=t.children,f=o.length,r;--f>=0;)r=o[f],r.z+=n,r.m+=n,n+=r.s+(e+=r.c)}function zoe(t,n,e){return t.a.parent===n.parent?t.a:e}function Qb(t,n){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=n}Qb.prototype=Object.create(km.prototype);function Roe(t){for(var n=new Qb(t,0),e,o=[n],f,r,a,u;e=o.pop();)if(r=e._.children)for(e.children=new Array(u=r.length),a=u-1;a>=0;--a)o.push(f=e.children[a]=new Qb(r[a],a)),f.parent=e;return(n.parent=new Qb(null,0)).children=[n],n}function Foe(){var t=Poe,n=1,e=1,o=null;function f(i){var s=Roe(i);if(s.eachAfter(r),s.parent.m=-s.z,s.eachBefore(a),o)i.eachBefore(c);else{var l=i,d=i,h=i;i.eachBefore(function(y){y.xd.x&&(d=y),y.depth>h.depth&&(h=y)});var m=l===d?1:t(l,d)/2,g=m-l.x,p=n/(d.x+m+g),v=e/(h.depth||1);i.eachBefore(function(y){y.x=(y.x+g)*p,y.y=y.depth*v})}return i}function r(i){var s=i.children,l=i.parent.children,d=i.i?l[i.i-1]:null;if(s){Ioe(i);var h=(s[0].z+s[s.length-1].z)/2;d?(i.z=d.z+t(i._,d._),i.m=i.z-h):i.z=h}else d&&(i.z=d.z+t(i._,d._));i.parent.A=u(i,d,i.parent.A||l[0])}function a(i){i._.x=i.z+i.parent.m,i.m+=i.parent.m}function u(i,s,l){if(s){for(var d=i,h=i,m=s,g=d.parent.children[0],p=d.m,v=h.m,y=m.m,x=g.m,w;m=o4(m),d=a4(d),m&&d;)g=a4(g),h=o4(h),h.a=i,w=m.z+y-d.z-p+t(m._,d._),w>0&&(Doe(zoe(m,i,l),i,w),p+=w,v+=w),y+=m.m,p+=d.m,x+=g.m,v+=h.m;m&&!o4(h)&&(h.t=m,h.m+=y-v),d&&!a4(g)&&(g.t=d,g.m+=p-x,l=i)}return l}function c(i){i.x*=n,i.y=i.depth*e}return f.separation=function(i){return arguments.length?(t=i,f):t},f.size=function(i){return arguments.length?(o=!1,n=+i[0],e=+i[1],f):o?null:[n,e]},f.nodeSize=function(i){return arguments.length?(o=!0,n=+i[0],e=+i[1],f):o?[n,e]:null},f}function Rw(t,n,e,o,f){for(var r=t.children,a,u=-1,c=r.length,i=t.value&&(f-e)/t.value;++uy&&(y=i),b=p*p*k,x=Math.max(y/b,b/v),x>w){p-=i;break}w=x}a.push(c={value:p,dice:h1?o:1)},e}(WB);function Noe(){var t=XB,n=!1,e=1,o=1,f=[0],r=n0,a=n0,u=n0,c=n0,i=n0;function s(d){return d.x0=d.y0=0,d.x1=e,d.y1=o,d.eachBefore(l),f=[0],n&&d.eachBefore(GB),d}function l(d){var h=f[d.depth],m=d.x0+h,g=d.y0+h,p=d.x1-h,v=d.y1-h;p=d-1){var y=r[l];y.x0=m,y.y0=g,y.x1=p,y.y1=v;return}for(var x=i[l],w=h/2+x,k=l+1,b=d-1;k>>1;i[T]v-g){var A=h?(m*M+p*_)/h:p;s(l,k,_,m,g,A,v),s(k,d,M,A,g,p,v)}else{var S=h?(g*M+v*_)/h:v;s(l,k,_,m,g,p,S),s(k,d,M,m,S,p,v)}}}function joe(t,n,e,o,f){(t.depth&1?Rw:$y)(t,n,e,o,f)}var Uoe=function t(n){function e(o,f,r,a,u){if((c=o._squarify)&&c.ratio===n)for(var c,i,s,l,d=-1,h,m=c.length,g=o.value;++d1?o:1)},e}(WB);function pT(t,n,e){const o={};return t.each(f=>{const r=f.data;e(r)&&(o[n(r)]=f)}),t.lookup=o,t}function _S(t){_r.call(this,null,t)}_S.Definition={type:"Nest",metadata:{treesource:!0,changes:!0},params:[{name:"keys",type:"field",array:!0},{name:"generate",type:"boolean"}]};const Voe=t=>t.values;ni(_S,_r,{transform(t,n){n.source||Pr("Nest transform requires an upstream data source.");var e=t.generate,o=t.modified(),f=n.clone(),r=this.value;return(!r||o||n.changed())&&(r&&r.each(a=>{a.children&&tw(a.data)&&f.rem.push(a.data)}),this.value=r=bS({values:ki(t.keys).reduce((a,u)=>(a.key(u),a),qoe()).entries(f.source)},Voe),e&&r.each(a=>{a.children&&(a=ro(a.data),f.add.push(a),f.source.push(a))}),pT(r,$i,$i)),f.source.root=r,f}});function qoe(){const t=[],n={entries:f=>o(e(f,0),0),key:f=>(t.push(f),n)};function e(f,r){if(r>=t.length)return f;const a=f.length,u=t[r++],c={},i={};let s=-1,l,d,h;for(;++st.length)return f;const a=[];for(const u in f)a.push({key:u,values:o(f[u],r)});return a}return n}function Kh(t){_r.call(this,null,t)}const Hoe=(t,n)=>t.parent===n.parent?1:2;ni(Kh,_r,{transform(t,n){(!n.source||!n.source.root)&&Pr(this.constructor.name+" transform requires a backing tree data source.");const e=this.layout(t.method),o=this.fields,f=n.source.root,r=t.as||o;t.field?f.sum(t.field):f.count(),t.sort&&f.sort(H0(t.sort,a=>a.data)),$oe(e,this.params,t),e.separation&&e.separation(t.separation!==!1?Hoe:Um);try{this.value=e(f)}catch(a){Pr(a)}return f.each(a=>Goe(a,o,r)),n.reflow(t.modified()).modifies(r).modifies("leaf")}});function $oe(t,n,e){for(let o,f=0,r=n.length;fr[$i(a)]=1),o.each(a=>{const u=a.data,c=a.parent&&a.parent.data;c&&r[$i(u)]&&r[$i(c)]&&f.add.push(ro({source:c,target:u}))}),this.value=f.add):n.changed(n.MOD)&&(n.visit(n.MOD,a=>r[$i(a)]=1),e.forEach(a=>{(r[$i(a.source)]||r[$i(a.target)])&&f.mod.push(a)})),f}});const YO={binary:Boe,dice:$y,slice:Rw,slicedice:joe,squarify:XB,resquarify:Uoe},yT=["x0","y0","x1","y1","depth","children"];function SS(t){Kh.call(this,t)}SS.Definition={type:"Treemap",metadata:{tree:!0,modifies:!0},params:[{name:"field",type:"field"},{name:"sort",type:"compare"},{name:"method",type:"enum",default:"squarify",values:["squarify","resquarify","binary","dice","slice","slicedice"]},{name:"padding",type:"number",default:0},{name:"paddingInner",type:"number",default:0},{name:"paddingOuter",type:"number",default:0},{name:"paddingTop",type:"number",default:0},{name:"paddingRight",type:"number",default:0},{name:"paddingBottom",type:"number",default:0},{name:"paddingLeft",type:"number",default:0},{name:"ratio",type:"number",default:1.618033988749895},{name:"round",type:"boolean",default:!1},{name:"size",type:"number",array:!0,length:2},{name:"as",type:"string",array:!0,length:yT.length,default:yT}]};ni(SS,Kh,{layout(){const t=Noe();return t.ratio=n=>{const e=t.tile();e.ratio&&t.tile(e.ratio(n))},t.method=n=>{qi(YO,n)?t.tile(YO[n]):Pr("Unrecognized Treemap layout method: "+n)},t},params:["method","ratio","size","round","padding","paddingInner","paddingOuter","paddingTop","paddingRight","paddingBottom","paddingLeft"],fields:yT});var Woe=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",nest:_S,pack:wS,partition:kS,stratify:TS,tree:AS,treelinks:MS,treemap:SS});const s4=4278190080;function Yoe(t,n){const e=t.bitmap();return(n||[]).forEach(o=>e.set(t(o.boundary[0]),t(o.boundary[3]))),[e,void 0]}function Xoe(t,n,e,o,f){const r=t.width,a=t.height,u=o||f,c=Vd(r,a).getContext("2d"),i=Vd(r,a).getContext("2d"),s=u&&Vd(r,a).getContext("2d");e.forEach(_=>e_(c,_,!1)),e_(i,n,!1),u&&e_(s,n,!0);const l=l4(c,r,a),d=l4(i,r,a),h=u&&l4(s,r,a),m=t.bitmap(),g=u&&t.bitmap();let p,v,y,x,w,k,b,T;for(v=0;v{f.items.forEach(r=>e_(t,r.items,e))}):tc[o].draw(t,{items:e?n.map(Zoe):n})}function Zoe(t){const n=nw(t,{});return n.stroke&&n.strokeOpacity!==0||n.fill&&n.fillOpacity!==0?{...n,strokeOpacity:1,stroke:"#000",fillOpacity:0}:n}const Mh=5,tu=31,ry=32,Td=new Uint32Array(ry+1),Yc=new Uint32Array(ry+1);Yc[0]=0;Td[0]=~Yc[0];for(let t=1;t<=ry;++t)Yc[t]=Yc[t-1]<<1|1,Td[t]=~Yc[t];function Joe(t,n){const e=new Uint32Array(~~((t*n+ry)/ry));function o(r,a){e[r]|=a}function f(r,a){e[r]&=a}return{array:e,get:(r,a)=>{const u=a*t+r;return e[u>>>Mh]&1<<(u&tu)},set:(r,a)=>{const u=a*t+r;o(u>>>Mh,1<<(u&tu))},clear:(r,a)=>{const u=a*t+r;f(u>>>Mh,~(1<<(u&tu)))},getRange:(r,a,u,c)=>{let i=c,s,l,d,h;for(;i>=a;--i)if(s=i*t+r,l=i*t+u,d=s>>>Mh,h=l>>>Mh,d===h){if(e[d]&Td[s&tu]&Yc[(l&tu)+1])return!0}else{if(e[d]&Td[s&tu]||e[h]&Yc[(l&tu)+1])return!0;for(let m=d+1;m{let i,s,l,d,h;for(;a<=c;++a)if(i=a*t+r,s=a*t+u,l=i>>>Mh,d=s>>>Mh,l===d)o(l,Td[i&tu]&Yc[(s&tu)+1]);else for(o(l,Td[i&tu]),o(d,Yc[(s&tu)+1]),h=l+1;h{let i,s,l,d,h;for(;a<=c;++a)if(i=a*t+r,s=a*t+u,l=i>>>Mh,d=s>>>Mh,l===d)f(l,Yc[i&tu]|Td[(s&tu)+1]);else for(f(l,Yc[i&tu]),f(d,Td[(s&tu)+1]),h=l+1;hr<0||a<0||c>=n||u>=t}}function Koe(t,n,e){const o=Math.max(1,Math.sqrt(t*n/1e6)),f=~~((t+2*e+o)/o),r=~~((n+2*e+o)/o),a=u=>~~((u+e)/o);return a.invert=u=>u*o-e,a.bitmap=()=>Joe(f,r),a.ratio=o,a.padding=e,a.width=t,a.height=n,a}function Qoe(t,n,e,o){const f=t.width,r=t.height;return function(a){const u=a.datum.datum.items[o].items,c=u.length,i=a.datum.fontSize,s=af.width(a.datum,a.datum.text);let l=0,d,h,m,g,p,v,y;for(let x=0;x=l&&(l=y,a.x=p,a.y=v);return p=s/2,v=i/2,d=a.x-p,h=a.x+p,m=a.y-v,g=a.y+v,a.align="center",d<0&&h<=f?a.align="left":0<=d&&ff||n-(a=o/2)<0||n+a>r}function Fd(t,n,e,o,f,r,a,u){const c=f*r/(o*2),i=t(n-c),s=t(n+c),l=t(e-(r=r/2)),d=t(e+r);return a.outOfBounds(i,l,s,d)||a.getRange(i,l,s,d)||u&&u.getRange(i,l,s,d)}function ese(t,n,e,o){const f=t.width,r=t.height,a=n[0],u=n[1];function c(i,s,l,d,h){const m=t.invert(i),g=t.invert(s);let p=l,v=r,y;if(!p2(m,g,d,h,f,r)&&!Fd(t,m,g,h,d,p,a,u)&&!Fd(t,m,g,h,d,h,a,null)){for(;v-p>=1;)y=(p+v)/2,Fd(t,m,g,h,d,y,a,u)?v=y:p=y;if(p>l)return[m,g,p,!0]}}return function(i){const s=i.datum.datum.items[o].items,l=s.length,d=i.datum.fontSize,h=af.width(i.datum,i.datum.text);let m=e?d:0,g=!1,p=!1,v=0,y,x,w,k,b,T,_,M,A,S,E,D,O,R,z,L,P;for(let N=0;Nx&&(P=y,y=x,x=P),w>k&&(P=w,w=k,k=P),A=t(y),E=t(x),S=~~((A+E)/2),D=t(w),R=t(k),O=~~((D+R)/2),_=S;_>=A;--_)for(M=O;M>=D;--M)L=c(_,M,m,h,d),L&&([i.x,i.y,m,g]=L);for(_=S;_<=E;++_)for(M=O;M<=R;++M)L=c(_,M,m,h,d),L&&([i.x,i.y,m,g]=L);!g&&!e&&(z=Math.abs(x-y+k-w),b=(y+x)/2,T=(w+k)/2,z>=v&&!p2(b,T,h,d,f,r)&&!Fd(t,b,T,d,h,d,a,null)&&(v=z,i.x=b,i.y=T,p=!0))}return g||p?(b=h/2,T=d/2,a.setRange(t(i.x-b),t(i.y-T),t(i.x+b),t(i.y+T)),i.align="center",i.baseline="middle",!0):!1}}const tse=[-1,-1,1,1],nse=[-1,1,-1,1];function rse(t,n,e,o){const f=t.width,r=t.height,a=n[0],u=n[1],c=t.bitmap();return function(i){const s=i.datum.datum.items[o].items,l=s.length,d=i.datum.fontSize,h=af.width(i.datum,i.datum.text),m=[];let g=e?d:0,p=!1,v=!1,y=0,x,w,k,b,T,_,M,A,S,E,D,O;for(let R=0;R=1;)D=(S+E)/2,Fd(t,T,_,d,h,D,a,u)?E=D:S=D;S>g&&(i.x=T,i.y=_,g=S,p=!0)}}!p&&!e&&(O=Math.abs(w-x+b-k),T=(x+w)/2,_=(k+b)/2,O>=y&&!p2(T,_,h,d,f,r)&&!Fd(t,T,_,d,h,d,a,null)&&(y=O,i.x=T,i.y=_,v=!0))}return p||v?(T=h/2,_=d/2,a.setRange(t(i.x-T),t(i.y-_),t(i.x+T),t(i.y+_)),i.align="center",i.baseline="middle",!0):!1}}const ise=["right","center","left"],ase=["bottom","middle","top"];function ose(t,n,e,o){const f=t.width,r=t.height,a=n[0],u=n[1],c=o.length;return function(i){var s;const l=i.boundary,d=i.datum.fontSize;if(l[2]<0||l[5]<0||l[0]>f||l[3]>r)return!1;let h=(s=i.textWidth)!==null&&s!==void 0?s:0,m,g,p,v,y,x,w,k,b,T,_,M,A,S,E;for(let D=0;D>>2&3)-1,p=m===0&&g===0||o[D]<0,v=m&&g?Math.SQRT1_2:1,y=o[D]<0?-1:1,x=l[1+m]+o[D]*m*v,_=l[4+g]+y*d*g/2+o[D]*g*v,k=_-d/2,b=_+d/2,M=t(x),S=t(k),E=t(b),!h)if(XO(M,M,S,E,a,u,x,x,k,b,l,p))h=af.width(i.datum,i.datum.text);else continue;if(T=x+y*h*m/2,x=T-h/2,w=T+h/2,M=t(x),A=t(w),XO(M,A,S,E,a,u,x,w,k,b,l,p))return i.x=m?m*y<0?w:x:T,i.y=g?g*y<0?b:k:_,i.align=ise[m*y+1],i.baseline=ase[g*y+1],a.setRange(M,S,A,E),!0}return!1}}function XO(t,n,e,o,f,r,a,u,c,i,s,l){return!(f.outOfBounds(t,e,n,o)||(l&&r||f).getRange(t,e,n,o))}const u4=0,c4=4,f4=8,h4=0,d4=1,p4=2,sse={"top-left":u4+h4,top:u4+d4,"top-right":u4+p4,left:c4+h4,middle:c4+d4,right:c4+p4,"bottom-left":f4+h4,bottom:f4+d4,"bottom-right":f4+p4},lse={naive:Qoe,"reduced-search":ese,floodfill:rse};function use(t,n,e,o,f,r,a,u,c,i,s){if(!t.length)return t;const l=Math.max(o.length,f.length),d=cse(o,l),h=fse(f,l),m=hse(t[0].datum),g=m==="group"&&t[0].datum.items[c].marktype,p=g==="area",v=dse(m,g,u,c),y=i===null||i===1/0,x=p&&s==="naive";let w=-1,k=-1;const b=t.map(A=>{const S=y?af.width(A,A.text):void 0;return w=Math.max(w,S),k=Math.max(k,A.fontSize),{datum:A,opacity:0,x:void 0,y:void 0,align:void 0,baseline:void 0,boundary:v(A),textWidth:S}});i=i===null||i===1/0?Math.max(w,k)+Math.max(...o):i;const T=Koe(n[0],n[1],i);let _;if(!x){e&&b.sort((E,D)=>e(E.datum,D.datum));let A=!1;for(let E=0;EE.datum);_=r.length||S?Xoe(T,S||[],r,A,p):Yoe(T,a&&b)}const M=p?lse[s](T,_,a,c):ose(T,_,h,d);return b.forEach(A=>A.opacity=+M(A)),b}function cse(t,n){const e=new Float64Array(n),o=t.length;for(let f=0;f[r.x,r.x,r.x,r.y,r.y,r.y];return t?t==="line"||t==="area"?r=>f(r.datum):n==="line"?r=>{const a=r.datum.items[o].items;return f(a.length?a[e==="start"?0:a.length-1]:{x:NaN,y:NaN})}:r=>{const a=r.datum.bounds;return[a.x1,(a.x1+a.x2)/2,a.x2,a.y1,(a.y1+a.y2)/2,a.y2]}:f}const xT=["x","y","opacity","align","baseline"],ZB=["top-left","left","bottom-left","top","bottom","top-right","right","bottom-right"];function ES(t){_r.call(this,null,t)}ES.Definition={type:"Label",metadata:{modifies:!0},params:[{name:"size",type:"number",array:!0,length:2,required:!0},{name:"sort",type:"compare"},{name:"anchor",type:"string",array:!0,default:ZB},{name:"offset",type:"number",array:!0,default:[1]},{name:"padding",type:"number",default:0,null:!0},{name:"lineAnchor",type:"string",values:["start","end"],default:"end"},{name:"markIndex",type:"number",default:0},{name:"avoidBaseMark",type:"boolean",default:!0},{name:"avoidMarks",type:"data",array:!0},{name:"method",type:"string",default:"naive"},{name:"as",type:"string",array:!0,length:xT.length,default:xT}]};ni(ES,_r,{transform(t,n){function e(r){const a=t[r];return ga(a)&&n.modified(a.fields)}const o=t.modified();if(!(o||n.changed(n.ADD_REM)||e("sort")))return;(!t.size||t.size.length!==2)&&Pr("Size parameter should be specified as a [width, height] array.");const f=t.as||xT;return use(n.materialize(n.SOURCE).source||[],t.size,t.sort,ki(t.offset==null?1:t.offset),ki(t.anchor||ZB),t.avoidMarks||[],t.avoidBaseMark!==!1,t.lineAnchor||"end",t.markIndex||0,t.padding===void 0?0:t.padding,t.method||"naive").forEach(r=>{const a=r.datum;a[f[0]]=r.x,a[f[1]]=r.y,a[f[2]]=r.opacity,a[f[3]]=r.align,a[f[4]]=r.baseline}),n.reflow(o).modifies(f)}});var pse=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",label:ES});function JB(t,n){var e=[],o=function(s){return s(u)},f,r,a,u,c,i;if(n==null)e.push(t);else for(f={},r=0,a=t.length;r{zz(i,t.x,t.y,t.bandwidth||.3).forEach(s=>{const l={};for(let d=0;dt==="poly"?n:t==="quad"?2:1;function OS(t){_r.call(this,null,t)}OS.Definition={type:"Regression",metadata:{generates:!0},params:[{name:"x",type:"field",required:!0},{name:"y",type:"field",required:!0},{name:"groupby",type:"field",array:!0},{name:"method",type:"string",default:"linear",values:Object.keys(bT)},{name:"order",type:"number",default:3},{name:"extent",type:"number",array:!0,length:2},{name:"params",type:"boolean",default:!1},{name:"as",type:"string",array:!0}]};ni(OS,_r,{transform(t,n){const e=n.fork(n.NO_SOURCE|n.NO_FIELDS);if(!this.value||n.changed()||t.modified()){const o=n.materialize(n.SOURCE).source,f=JB(o,t.groupby),r=(t.groupby||[]).map(xs),a=t.method||"linear",u=t.order||3,c=gse(a,u),i=t.as||[xs(t.x),xs(t.y)],s=bT[a],l=[];let d=t.extent;qi(bT,a)||Pr("Invalid regression method: "+a),d!=null&&a==="log"&&d[0]<=0&&(n.dataflow.warn("Ignoring extent with values <= 0 for log regression."),d=null),f.forEach(h=>{if(h.length<=c){n.dataflow.warn("Skipping regression with more parameters than data points.");return}const g=s(h,t.x,t.y,u);if(t.params){l.push(ro({keys:h.dims,coef:g.coef,rSquared:g.rSquared}));return}const p=d||Zf(h,t.x),v=y=>{const x={};for(let w=0;wv([y,g.predict(y)])):uw(g.predict,p,25,200).forEach(v)}),this.value&&(e.rem=this.value),this.value=e.add=e.source=l}return e}});var mse=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",loess:CS,regression:OS});const Uh=11102230246251565e-32,Ol=134217729,vse=(3+8*Uh)*Uh;function g4(t,n,e,o,f){let r,a,u,c,i=n[0],s=o[0],l=0,d=0;s>i==s>-i?(r=i,i=n[++l]):(r=s,s=o[++d]);let h=0;if(li==s>-i?(a=i+r,u=r-(a-i),i=n[++l]):(a=s+r,u=r-(a-s),s=o[++d]),r=a,u!==0&&(f[h++]=u);li==s>-i?(a=r+i,c=a-r,u=r-(a-c)+(i-c),i=n[++l]):(a=r+s,c=a-r,u=r-(a-c)+(s-c),s=o[++d]),r=a,u!==0&&(f[h++]=u);for(;l=O||-D>=O||(l=t-M,u=t-(M+l)+(l-f),l=e-A,i=e-(A+l)+(l-f),l=n-S,c=n-(S+l)+(l-r),l=o-E,s=o-(E+l)+(l-r),u===0&&c===0&&i===0&&s===0)||(O=_se*a+vse*Math.abs(D),D+=M*s+E*u-(S*i+A*c),D>=O||-D>=O))return D;w=u*E,d=Ol*u,h=d-(d-u),m=u-h,d=Ol*E,g=d-(d-E),p=E-g,k=m*p-(w-h*g-m*g-h*p),b=c*A,d=Ol*c,h=d-(d-c),m=c-h,d=Ol*A,g=d-(d-A),p=A-g,T=m*p-(b-h*g-m*g-h*p),v=k-T,l=k-v,nu[0]=k-(v+l)+(l-T),y=w+v,l=y-w,x=w-(y-l)+(v-l),v=x-b,l=x-v,nu[1]=x-(v+l)+(l-b),_=y+v,l=_-y,nu[2]=y-(_-l)+(v-l),nu[3]=_;const R=g4(4,Rg,4,nu,ZO);w=M*s,d=Ol*M,h=d-(d-M),m=M-h,d=Ol*s,g=d-(d-s),p=s-g,k=m*p-(w-h*g-m*g-h*p),b=S*i,d=Ol*S,h=d-(d-S),m=S-h,d=Ol*i,g=d-(d-i),p=i-g,T=m*p-(b-h*g-m*g-h*p),v=k-T,l=k-v,nu[0]=k-(v+l)+(l-T),y=w+v,l=y-w,x=w-(y-l)+(v-l),v=x-b,l=x-v,nu[1]=x-(v+l)+(l-b),_=y+v,l=_-y,nu[2]=y-(_-l)+(v-l),nu[3]=_;const z=g4(R,ZO,4,nu,JO);w=u*s,d=Ol*u,h=d-(d-u),m=u-h,d=Ol*s,g=d-(d-s),p=s-g,k=m*p-(w-h*g-m*g-h*p),b=c*i,d=Ol*c,h=d-(d-c),m=c-h,d=Ol*i,g=d-(d-i),p=i-g,T=m*p-(b-h*g-m*g-h*p),v=k-T,l=k-v,nu[0]=k-(v+l)+(l-T),y=w+v,l=y-w,x=w-(y-l)+(v-l),v=x-b,l=x-v,nu[1]=x-(v+l)+(l-b),_=y+v,l=_-y,nu[2]=y-(_-l)+(v-l),nu[3]=_;const L=g4(z,JO,4,nu,KO);return KO[L-1]}function vb(t,n,e,o,f,r){const a=(n-r)*(e-f),u=(t-f)*(o-r),c=a-u;if(a===0||u===0||a>0!=u>0)return c;const i=Math.abs(a+u);return Math.abs(c)>=xse*i?c:-wse(t,n,e,o,f,r,i)}const QO=Math.pow(2,-52),yb=new Uint32Array(512);class g2{static from(n,e=Sse,o=Ese){const f=n.length,r=new Float64Array(f*2);for(let a=0;a>1;if(e>0&&typeof n[0]!="number")throw new Error("Expected coords to contain numbers.");this.coords=n;const o=Math.max(2*e-5,0);this._triangles=new Uint32Array(o*3),this._halfedges=new Int32Array(o*3),this._hashSize=Math.ceil(Math.sqrt(e)),this._hullPrev=new Uint32Array(e),this._hullNext=new Uint32Array(e),this._hullTri=new Uint32Array(e),this._hullHash=new Int32Array(this._hashSize).fill(-1),this._ids=new Uint32Array(e),this._dists=new Float64Array(e),this.update()}update(){const{coords:n,_hullPrev:e,_hullNext:o,_hullTri:f,_hullHash:r}=this,a=n.length>>1;let u=1/0,c=1/0,i=-1/0,s=-1/0;for(let A=0;Ai&&(i=S),E>s&&(s=E),this._ids[A]=A}const l=(u+i)/2,d=(c+s)/2;let h=1/0,m,g,p;for(let A=0;A0&&(g=A,h=S)}let x=n[2*g],w=n[2*g+1],k=1/0;for(let A=0;AD&&(A[S++]=O,D=this._dists[O])}this.hull=A.subarray(0,S),this.triangles=new Uint32Array(0),this.halfedges=new Uint32Array(0);return}if(vb(v,y,x,w,b,T)<0){const A=g,S=x,E=w;g=p,x=b,w=T,p=A,b=S,T=E}const _=Mse(v,y,x,w,b,T);this._cx=_.x,this._cy=_.y;for(let A=0;A0&&Math.abs(O-S)<=QO&&Math.abs(R-E)<=QO||(S=O,E=R,D===m||D===g||D===p))continue;let z=0;for(let G=0,W=this._hashKey(O,R);G=0;)if(L=P,L===z){L=-1;break}if(L===-1)continue;let N=this._addTriangle(L,D,o[L],-1,-1,f[L]);f[D]=this._legalize(N+2),f[L]=N,M++;let B=o[L];for(;P=o[B],vb(O,R,n[2*B],n[2*B+1],n[2*P],n[2*P+1])<0;)N=this._addTriangle(B,D,P,f[D],-1,f[B]),f[D]=this._legalize(N+2),o[B]=B,M--,B=P;if(L===z)for(;P=e[L],vb(O,R,n[2*P],n[2*P+1],n[2*L],n[2*L+1])<0;)N=this._addTriangle(P,D,L,-1,f[L],f[P]),this._legalize(N+2),f[P]=N,o[L]=L,M--,L=P;this._hullStart=e[D]=L,o[L]=e[B]=D,o[D]=B,r[this._hashKey(O,R)]=D,r[this._hashKey(n[2*L],n[2*L+1])]=L}this.hull=new Uint32Array(M);for(let A=0,S=this._hullStart;A0?3-e:1+e)/4}function m4(t,n,e,o){const f=t-e,r=n-o;return f*f+r*r}function Tse(t,n,e,o,f,r,a,u){const c=t-a,i=n-u,s=e-a,l=o-u,d=f-a,h=r-u,m=c*c+i*i,g=s*s+l*l,p=d*d+h*h;return c*(l*p-g*h)-i*(s*p-g*d)+m*(s*h-l*d)<0}function Ase(t,n,e,o,f,r){const a=e-t,u=o-n,c=f-t,i=r-n,s=a*a+u*u,l=c*c+i*i,d=.5/(a*i-u*c),h=(i*s-u*l)*d,m=(a*l-c*s)*d;return h*h+m*m}function Mse(t,n,e,o,f,r){const a=e-t,u=o-n,c=f-t,i=r-n,s=a*a+u*u,l=c*c+i*i,d=.5/(a*i-u*c),h=t+(i*s-u*l)*d,m=n+(a*l-c*s)*d;return{x:h,y:m}}function Jg(t,n,e,o){if(o-e<=20)for(let f=e+1;f<=o;f++){const r=t[f],a=n[r];let u=f-1;for(;u>=e&&n[t[u]]>a;)t[u+1]=t[u--];t[u+1]=r}else{const f=e+o>>1;let r=e+1,a=o;$1(t,f,r),n[t[e]]>n[t[o]]&&$1(t,e,o),n[t[r]]>n[t[o]]&&$1(t,r,o),n[t[e]]>n[t[r]]&&$1(t,e,r);const u=t[r],c=n[u];for(;;){do r++;while(n[t[r]]c);if(a=a-e?(Jg(t,n,r,o),Jg(t,n,e,a-1)):(Jg(t,n,e,a-1),Jg(t,n,r,o))}}function $1(t,n,e){const o=t[n];t[n]=t[e],t[e]=o}function Sse(t){return t[0]}function Ese(t){return t[1]}const eL=1e-6;class o0{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(n,e){this._+=`M${this._x0=this._x1=+n},${this._y0=this._y1=+e}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(n,e){this._+=`L${this._x1=+n},${this._y1=+e}`}arc(n,e,o){n=+n,e=+e,o=+o;const f=n+o,r=e;if(o<0)throw new Error("negative radius");this._x1===null?this._+=`M${f},${r}`:(Math.abs(this._x1-f)>eL||Math.abs(this._y1-r)>eL)&&(this._+="L"+f+","+r),o&&(this._+=`A${o},${o},0,1,1,${n-o},${e}A${o},${o},0,1,1,${this._x1=f},${this._y1=r}`)}rect(n,e,o,f){this._+=`M${this._x0=this._x1=+n},${this._y0=this._y1=+e}h${+o}v${+f}h${-o}Z`}value(){return this._||null}}class _T{constructor(){this._=[]}moveTo(n,e){this._.push([n,e])}closePath(){this._.push(this._[0].slice())}lineTo(n,e){this._.push([n,e])}value(){return this._.length?this._:null}}class Cse{constructor(n,[e,o,f,r]=[0,0,960,500]){if(!((f=+f)>=(e=+e))||!((r=+r)>=(o=+o)))throw new Error("invalid bounds");this.delaunay=n,this._circumcenters=new Float64Array(n.points.length*2),this.vectors=new Float64Array(n.points.length*2),this.xmax=f,this.xmin=e,this.ymax=r,this.ymin=o,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:n,hull:e,triangles:o},vectors:f}=this,r=this.circumcenters=this._circumcenters.subarray(0,o.length/3*2);for(let h=0,m=0,g=o.length,p,v;h1;)r-=2;for(let a=2;a4)for(let a=0;a0){if(e>=this.ymax)return null;(a=(this.ymax-e)/f)0){if(n>=this.xmax)return null;(a=(this.xmax-n)/o)this.xmax?2:0)|(ethis.ymax?8:0)}}const Ose=2*Math.PI,Fg=Math.pow;function Lse(t){return t[0]}function Pse(t){return t[1]}function Dse(t){const{triangles:n,coords:e}=t;for(let o=0;o1e-10)return!1}return!0}function Ise(t,n,e){return[t+Math.sin(t+n)*e,n+Math.cos(t-n)*e]}class LS{static from(n,e=Lse,o=Pse,f){return new LS("length"in n?zse(n,e,o,f):Float64Array.from(Rse(n,e,o,f)))}constructor(n){this._delaunator=new g2(n),this.inedges=new Int32Array(n.length/2),this._hullIndex=new Int32Array(n.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){const n=this._delaunator,e=this.points;if(n.hull&&n.hull.length>2&&Dse(n)){this.collinear=Int32Array.from({length:e.length/2},(d,h)=>h).sort((d,h)=>e[2*d]-e[2*h]||e[2*d+1]-e[2*h+1]);const c=this.collinear[0],i=this.collinear[this.collinear.length-1],s=[e[2*c],e[2*c+1],e[2*i],e[2*i+1]],l=1e-8*Math.hypot(s[3]-s[1],s[2]-s[0]);for(let d=0,h=e.length/2;d0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=f[0],a[f[0]]=1,f.length===2&&(a[f[1]]=0,this.triangles[1]=f[1],this.triangles[2]=f[1]))}voronoi(n){return new Cse(this,n)}*neighbors(n){const{inedges:e,hull:o,_hullIndex:f,halfedges:r,triangles:a,collinear:u}=this;if(u){const l=u.indexOf(n);l>0&&(yield u[l-1]),l=0&&r!==o&&r!==f;)o=r;return r}_step(n,e,o){const{inedges:f,hull:r,_hullIndex:a,halfedges:u,triangles:c,points:i}=this;if(f[n]===-1||!i.length)return(n+1)%(i.length>>1);let s=n,l=Fg(e-i[n*2],2)+Fg(o-i[n*2+1],2);const d=f[n];let h=d;do{let m=c[h];const g=Fg(e-i[m*2],2)+Fg(o-i[m*2+1],2);if(g>5,t_=1<<11;function jse(){var t=[256,256],n,e,o,f,r,a,u,c=KB,i=[],s=Math.random,l={};l.layout=function(){for(var m=d(Vd()),g=Gse((t[0]>>5)*t[1]),p=null,v=i.length,y=-1,x=[],w=i.map(b=>({text:n(b),font:e(b),style:f(b),weight:r(b),rotate:a(b),size:~~(o(b)+1e-14),padding:u(b),xoff:0,yoff:0,x1:0,y1:0,x0:0,y0:0,hasText:!1,sprite:null,datum:b})).sort((b,T)=>T.size-b.size);++y>1,k.y=t[1]*(s()+.5)>>1,Use(m,k,w,y),k.hasText&&h(g,k,p)&&(x.push(k),p?qse(p,k):p=[{x:k.x+k.x0,y:k.y+k.y0},{x:k.x+k.x1,y:k.y+k.y1}],k.x-=t[0]>>1,k.y-=t[1]>>1)}return x};function d(m){m.width=m.height=1;var g=Math.sqrt(m.getContext("2d").getImageData(0,0,1,1).data.length>>2);m.width=(wv<<5)/g,m.height=t_/g;var p=m.getContext("2d");return p.fillStyle=p.strokeStyle="red",p.textAlign="center",{context:p,ratio:g}}function h(m,g,p){for(var v=g.x,y=g.y,x=Math.sqrt(t[0]*t[0]+t[1]*t[1]),w=c(t),k=s()<.5?1:-1,b=-k,T,_,M;(T=w(b+=k))&&(_=~~T[0],M=~~T[1],!(Math.min(Math.abs(_),Math.abs(M))>=x));)if(g.x=v+_,g.y=y+M,!(g.x+g.x0<0||g.y+g.y0<0||g.x+g.x1>t[0]||g.y+g.y1>t[1])&&(!p||!Vse(g,m,t[0]))&&(!p||Hse(g,p))){for(var A=g.sprite,S=g.width>>5,E=t[0]>>5,D=g.x-(S<<4),O=D&127,R=32-O,z=g.y1-g.y0,L=(g.y+g.y0)*E+(D>>5),P,N=0;N>>O:0);L+=E}return g.sprite=null,!0}return!1}return l.words=function(m){return arguments.length?(i=m,l):i},l.size=function(m){return arguments.length?(t=[+m[0],+m[1]],l):t},l.font=function(m){return arguments.length?(e=Bp(m),l):e},l.fontStyle=function(m){return arguments.length?(f=Bp(m),l):f},l.fontWeight=function(m){return arguments.length?(r=Bp(m),l):r},l.rotate=function(m){return arguments.length?(a=Bp(m),l):a},l.text=function(m){return arguments.length?(n=Bp(m),l):n},l.spiral=function(m){return arguments.length?(c=Wse[m]||m,l):c},l.fontSize=function(m){return arguments.length?(o=Bp(m),l):o},l.padding=function(m){return arguments.length?(u=Bp(m),l):u},l.random=function(m){return arguments.length?(s=m,l):s},l}function Use(t,n,e,o){if(!n.sprite){var f=t.context,r=t.ratio;f.clearRect(0,0,(wv<<5)/r,t_/r);var a=0,u=0,c=0,i=e.length,s,l,d,h,m;for(--o;++o>5<<5,d=~~Math.max(Math.abs(y+x),Math.abs(y-x))}else s=s+31>>5<<5;if(d>c&&(c=d),a+s>=wv<<5&&(a=0,u+=c,c=0),u+d>=t_)break;f.translate((a+(s>>1))/r,(u+(d>>1))/r),n.rotate&&f.rotate(n.rotate*v4),f.fillText(n.text,0,0),n.padding&&(f.lineWidth=2*n.padding,f.strokeText(n.text,0,0)),f.restore(),n.width=s,n.height=d,n.xoff=a,n.yoff=u,n.x1=s>>1,n.y1=d>>1,n.x0=-n.x1,n.y0=-n.y1,n.hasText=!0,a+=s}for(var k=f.getImageData(0,0,(wv<<5)/r,t_/r).data,b=[];--o>=0;)if(n=e[o],!!n.hasText){for(s=n.width,l=s>>5,d=n.y1-n.y0,h=0;h>5),A=k[(u+m)*(wv<<5)+(a+h)<<2]?1<<31-h%32:0;b[M]|=A,T|=A}T?_=m:(n.y0++,d--,m--,u++)}n.y1=n.y0+_,n.sprite=b.slice(0,(n.y1-n.y0)*l)}}}function Vse(t,n,e){e>>=5;for(var o=t.sprite,f=t.width>>5,r=t.x-(f<<4),a=r&127,u=32-a,c=t.y1-t.y0,i=(t.y+t.y0)*e+(r>>5),s,l=0;l>>a:0))&n[i+d])return!0;i+=e}return!1}function qse(t,n){var e=t[0],o=t[1];n.x+n.x0o.x&&(o.x=n.x+n.x1),n.y+n.y1>o.y&&(o.y=n.y+n.y1)}function Hse(t,n){return t.x+t.x1>n[0].x&&t.x+t.x0n[0].y&&t.y+t.y0g(m(p))}f.forEach(m=>{m[a[0]]=NaN,m[a[1]]=NaN,m[a[3]]=0});const i=r.words(f).text(t.text).size(t.size||[500,500]).padding(t.padding||1).spiral(t.spiral||"archimedean").rotate(t.rotate||0).font(t.font||"sans-serif").fontStyle(t.fontStyle||"normal").fontWeight(t.fontWeight||"normal").fontSize(u).random(yc).layout(),s=r.size(),l=s[0]>>1,d=s[1]>>1,h=i.length;for(let m=0,g,p;mnew Uint8Array(t),Jse=t=>new Uint16Array(t),zv=t=>new Uint32Array(t);function Kse(){let t=8,n=[],e=zv(0),o=xb(0,t),f=xb(0,t);return{data:()=>n,seen:()=>e=Qse(e,n.length),add(r){for(let a=0,u=n.length,c=r.length,i;an.length,curr:()=>o,prev:()=>f,reset:r=>f[r]=o[r],all:()=>t<257?255:t<65537?65535:4294967295,set(r,a){o[r]|=a},clear(r,a){o[r]&=~a},resize(r,a){const u=o.length;(r>u||a>t)&&(t=Math.max(a,t),o=xb(r,t,o),f=xb(r,t))}}}function Qse(t,n,e){return t.length>=n?t:(e=e||new t.constructor(n),e.set(t),e)}function xb(t,n,e){const o=(n<257?Zse:n<65537?Jse:zv)(t);return e&&o.set(e),o}function tL(t,n,e){const o=1<0)for(p=0;pt,size:()=>e}}function ele(t,n){return t.sort.call(n,(e,o)=>{const f=t[e],r=t[o];return fr?1:0}),JW(t,n)}function tle(t,n,e,o,f,r,a,u,c){let i=0,s=0,l;for(l=0;in.modified(o.fields));return e?this.reinit(t,n):this.eval(t,n)}else return this.init(t,n)},init(t,n){const e=t.fields,o=t.query,f=this._indices={},r=this._dims=[],a=o.length;let u=0,c,i;for(;u{const r=f.remove(n,e);for(const a in o)o[a].reindex(r)})},update(t,n,e){const o=this._dims,f=t.query,r=n.stamp,a=o.length;let u=0,c,i;for(e.filters=0,i=0;ih)for(p=h,v=Math.min(l,m);pm)for(p=Math.max(l,m),v=d;pl)for(m=l,g=Math.min(i,d);md)for(m=Math.max(i,d),g=s;mu[s]&e?null:a[s];return r.filter(r.MOD,i),f&f-1?(r.filter(r.ADD,s=>{const l=u[s]&e;return!l&&l^c[s]&e?a[s]:null}),r.filter(r.REM,s=>{const l=u[s]&e;return l&&!(l^(l^c[s]&e))?a[s]:null})):(r.filter(r.ADD,i),r.filter(r.REM,s=>(u[s]&e)===f?a[s]:null)),r.filter(r.SOURCE,s=>i(s._index))}});var nle=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",crossfilter:IS,resolvefilter:zS});const rle="RawCode",S0="Literal",ile="Property",ale="Identifier",ole="ArrayExpression",sle="BinaryExpression",ej="CallExpression",lle="ConditionalExpression",ule="LogicalExpression",cle="MemberExpression",fle="ObjectExpression",hle="UnaryExpression";function gf(t){this.type=t}gf.prototype.visit=function(t){let n,e,o;if(t(this))return 1;for(n=dle(this),e=0,o=n.length;e";lh[E0]="Identifier";lh[dp]="Keyword";lh[Nw]="Null";lh[W0]="Numeric";lh[wu]="Punctuator";lh[Yy]="String";lh[ple]="RegularExpression";var gle="ArrayExpression",mle="BinaryExpression",vle="CallExpression",yle="ConditionalExpression",tj="Identifier",xle="Literal",ble="LogicalExpression",_le="MemberExpression",wle="ObjectExpression",kle="Property",Tle="UnaryExpression",rl="Unexpected token %0",Ale="Unexpected number",Mle="Unexpected string",Sle="Unexpected identifier",Ele="Unexpected reserved word",Cle="Unexpected end of input",wT="Invalid regular expression",y4="Invalid regular expression: missing /",nj="Octal literals are not allowed in strict mode.",Ole="Duplicate data property in object literal not allowed in strict mode",_l="ILLEGAL",iy="Disabled.",Lle=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"),Ple=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]");function Bw(t,n){if(!t)throw new Error("ASSERT: "+n)}function Lh(t){return t>=48&&t<=57}function RS(t){return"0123456789abcdefABCDEF".indexOf(t)>=0}function Rv(t){return"01234567".indexOf(t)>=0}function Dle(t){return t===32||t===9||t===11||t===12||t===160||t>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(t)>=0}function ay(t){return t===10||t===13||t===8232||t===8233}function Xy(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t===92||t>=128&&Lle.test(String.fromCharCode(t))}function m2(t){return t===36||t===95||t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||t===92||t>=128&&Ple.test(String.fromCharCode(t))}const Ile={if:1,in:1,do:1,var:1,for:1,new:1,try:1,let:1,this:1,else:1,case:1,void:1,with:1,enum:1,while:1,break:1,catch:1,throw:1,const:1,yield:1,class:1,super:1,return:1,typeof:1,delete:1,switch:1,export:1,import:1,public:1,static:1,default:1,finally:1,extends:1,package:1,private:1,function:1,continue:1,debugger:1,interface:1,protected:1,instanceof:1,implements:1};function rj(){for(;Cr1114111||t!=="}")&&Wa({},rl,_l),n<=65535?String.fromCharCode(n):(e=(n-65536>>10)+55296,o=(n-65536&1023)+56320,String.fromCharCode(e,o))}function ij(){var t,n;for(t=Ii.charCodeAt(Cr++),n=String.fromCharCode(t),t===92&&(Ii.charCodeAt(Cr)!==117&&Wa({},rl,_l),++Cr,t=kT("u"),(!t||t==="\\"||!Xy(t.charCodeAt(0)))&&Wa({},rl,_l),n=t);Cr>>=")return Cr+=4,{type:wu,value:a,start:t,end:Cr};if(r=a.substr(0,3),r===">>>"||r==="<<="||r===">>=")return Cr+=3,{type:wu,value:r,start:t,end:Cr};if(f=r.substr(0,2),o===f[1]&&"+-<>&|".indexOf(o)>=0||f==="=>")return Cr+=2,{type:wu,value:f,start:t,end:Cr};if(f==="//"&&Wa({},rl,_l),"<>=!+-*%&|^/".indexOf(o)>=0)return++Cr,{type:wu,value:o,start:t,end:Cr};Wa({},rl,_l)}function Nle(t){let n="";for(;Cr=0&&Cr=0&&(e=e.replace(/\\u\{([0-9a-fA-F]+)\}/g,(o,f)=>{if(parseInt(f,16)<=1114111)return"x";Wa({},wT)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(e)}catch{Wa({},wT)}try{return new RegExp(t,n)}catch{return null}}function Vle(){var t,n,e,o,f;for(t=Ii[Cr],Bw(t==="/","Regular expression literal must start with a slash"),n=Ii[Cr++],e=!1,o=!1;Cr=0&&Wa({},wT,e),{value:e,literal:n}}function Hle(){var t,n,e,o;return vo=null,rj(),t=Cr,n=Vle(),e=qle(),o=Ule(n.value,e.value),{literal:n.literal+e.literal,value:o,regex:{pattern:n.value,flags:e.value},start:t,end:Cr}}function $le(t){return t.type===E0||t.type===dp||t.type===Fw||t.type===Nw}function aj(){if(rj(),Cr>=Ul)return{type:Wy,start:Cr,end:Cr};const t=Ii.charCodeAt(Cr);return Xy(t)?Fle():t===40||t===41||t===59?x4():t===39||t===34?jle():t===46?Lh(Ii.charCodeAt(Cr+1))?rL():x4():Lh(t)?rL():x4()}function Mu(){const t=vo;return Cr=t.end,vo=aj(),Cr=t.end,t}function oj(){const t=Cr;vo=aj(),Cr=t}function Gle(t){const n=new gf(gle);return n.elements=t,n}function iL(t,n,e){const o=new gf(t==="||"||t==="&&"?ble:mle);return o.operator=t,o.left=n,o.right=e,o}function Wle(t,n){const e=new gf(vle);return e.callee=t,e.arguments=n,e}function Yle(t,n,e){const o=new gf(yle);return o.test=t,o.consequent=n,o.alternate=e,o}function FS(t){const n=new gf(tj);return n.name=t,n}function kv(t){const n=new gf(xle);return n.value=t.value,n.raw=Ii.slice(t.start,t.end),t.regex&&(n.raw==="//"&&(n.raw="/(?:)/"),n.regex=t.regex),n}function aL(t,n,e){const o=new gf(_le);return o.computed=t==="[",o.object=n,o.property=e,o.computed||(e.member=!0),o}function Xle(t){const n=new gf(wle);return n.properties=t,n}function oL(t,n,e){const o=new gf(kle);return o.key=n,o.value=e,o.kind=t,o}function Zle(t,n){const e=new gf(Tle);return e.operator=t,e.argument=n,e.prefix=!0,e}function Wa(t,n){var e,o=Array.prototype.slice.call(arguments,2),f=n.replace(/%(\d)/g,(r,a)=>(Bw(a":case"<=":case">=":case"instanceof":case"in":n=7;break;case"<<":case">>":case">>>":n=8;break;case"+":case"-":n=9;break;case"*":case"/":case"%":n=11;break}return n}function lue(){var t,n,e,o,f,r,a,u,c,i;if(t=vo,c=n_(),o=vo,f=uL(o),f===0)return c;for(o.prec=f,Mu(),n=[t,vo],a=n_(),r=[c,o,a];(f=uL(vo))>0;){for(;r.length>2&&f<=r[r.length-2].prec;)a=r.pop(),u=r.pop().value,c=r.pop(),n.pop(),e=iL(u,c,a),r.push(e);o=Mu(),o.prec=f,r.push(o),n.push(vo),e=n_(),r.push(e)}for(i=r.length-1,e=r[i],n.pop();i>1;)n.pop(),e=iL(r[i-1].value,r[i-2],e),i-=2;return e}function C0(){var t,n,e;return t=lue(),qo("?")&&(Mu(),n=C0(),Vl(":"),e=C0(),t=Yle(t,n,e)),t}function NS(){const t=C0();if(qo(","))throw new Error(iy);return t}function BS(t){Ii=t,Cr=0,Ul=Ii.length,vo=null,oj();const n=NS();if(vo.type!==Wy)throw new Error("Unexpect token after expression.");return n}var sj={NaN:"NaN",E:"Math.E",LN2:"Math.LN2",LN10:"Math.LN10",LOG2E:"Math.LOG2E",LOG10E:"Math.LOG10E",PI:"Math.PI",SQRT1_2:"Math.SQRT1_2",SQRT2:"Math.SQRT2",MIN_VALUE:"Number.MIN_VALUE",MAX_VALUE:"Number.MAX_VALUE"};function lj(t){function n(a,u,c,i){let s=t(u[0]);return c&&(s=c+"("+s+")",c.lastIndexOf("new ",0)===0&&(s="("+s+")")),s+"."+a+(i<0?"":i===0?"()":"("+u.slice(1).map(t).join(",")+")")}function e(a,u,c){return i=>n(a,i,u,c)}const o="new Date",f="String",r="RegExp";return{isNaN:"Number.isNaN",isFinite:"Number.isFinite",abs:"Math.abs",acos:"Math.acos",asin:"Math.asin",atan:"Math.atan",atan2:"Math.atan2",ceil:"Math.ceil",cos:"Math.cos",exp:"Math.exp",floor:"Math.floor",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(a){a.length<3&&Pr("Missing arguments to clamp function."),a.length>3&&Pr("Too many arguments to clamp function.");const u=a.map(t);return"Math.max("+u[1]+", Math.min("+u[2]+","+u[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:o,date:e("getDate",o,0),day:e("getDay",o,0),year:e("getFullYear",o,0),month:e("getMonth",o,0),hours:e("getHours",o,0),minutes:e("getMinutes",o,0),seconds:e("getSeconds",o,0),milliseconds:e("getMilliseconds",o,0),time:e("getTime",o,0),timezoneoffset:e("getTimezoneOffset",o,0),utcdate:e("getUTCDate",o,0),utcday:e("getUTCDay",o,0),utcyear:e("getUTCFullYear",o,0),utcmonth:e("getUTCMonth",o,0),utchours:e("getUTCHours",o,0),utcminutes:e("getUTCMinutes",o,0),utcseconds:e("getUTCSeconds",o,0),utcmilliseconds:e("getUTCMilliseconds",o,0),length:e("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:e("toUpperCase",f,0),lower:e("toLowerCase",f,0),substring:e("substring",f),split:e("split",f),trim:e("trim",f,0),regexp:r,test:e("test",r),if:function(a){a.length<3&&Pr("Missing arguments to if function."),a.length>3&&Pr("Too many arguments to if function.");const u=a.map(t);return"("+u[0]+"?"+u[1]+":"+u[2]+")"}}}function uue(t){const n=t&&t.length-1;return n&&(t[0]==='"'&&t[n]==='"'||t[0]==="'"&&t[n]==="'")?t.slice(1,-1):t}function uj(t){t=t||{};const n=t.allowed?ff(t.allowed):{},e=t.forbidden?ff(t.forbidden):{},o=t.constants||sj,f=(t.functions||lj)(l),r=t.globalvar,a=t.fieldvar,u=ga(r)?r:m=>`${r}["${m}"]`;let c={},i={},s=0;function l(m){if(bi(m))return m;const g=d[m.type];return g==null&&Pr("Unsupported type: "+m.type),g(m)}const d={Literal:m=>m.raw,Identifier:m=>{const g=m.name;return s>0?g:qi(e,g)?Pr("Illegal identifier: "+g):qi(o,g)?o[g]:qi(n,g)?g:(c[g]=1,u(g))},MemberExpression:m=>{const g=!m.computed,p=l(m.object);g&&(s+=1);const v=l(m.property);return p===a&&(i[uue(v)]=1),g&&(s-=1),p+(g?"."+v:"["+v+"]")},CallExpression:m=>{m.callee.type!=="Identifier"&&Pr("Illegal callee type: "+m.callee.type);const g=m.callee.name,p=m.arguments,v=qi(f,g)&&f[g];return v||Pr("Unrecognized function: "+g),ga(v)?v(p):v+"("+p.map(l).join(",")+")"},ArrayExpression:m=>"["+m.elements.map(l).join(",")+"]",BinaryExpression:m=>"("+l(m.left)+" "+m.operator+" "+l(m.right)+")",UnaryExpression:m=>"("+m.operator+l(m.argument)+")",ConditionalExpression:m=>"("+l(m.test)+"?"+l(m.consequent)+":"+l(m.alternate)+")",LogicalExpression:m=>"("+l(m.left)+m.operator+l(m.right)+")",ObjectExpression:m=>"{"+m.properties.map(l).join(",")+"}",Property:m=>{s+=1;const g=l(m.key);return s-=1,g+":"+l(m.value)}};function h(m){const g={code:l(m),globals:Object.keys(c),fields:Object.keys(i)};return c={},i={},g}return h.functions=f,h.constants=o,h}const jS="intersect",cL="union",cue="vlMulti",fue="vlPoint",fL="or",hue="and",Rf="_vgsid_",oy=Lu(Rf),due="E",pue="R",gue="R-E",mue="R-LE",vue="R-RE",v2="index:unit";function hL(t,n){for(var e=n.fields,o=n.values,f=e.length,r=0,a,u;rpa(n.fields?{values:n.fields.map(o=>(o.getter||(o.getter=Lu(o.field)))(e.datum))}:{[Rf]:oy(e.datum)},n))}function kue(t,n,e,o){for(var f=this.context.data[t],r=f?f.values.value:[],a={},u={},c={},i,s,l,d,h,m,g,p,v,y,x=r.length,w=0,k,b;w(T[s[M].field]=_,T),{})))}else h=Rf,m=oy(i),g=a[h]||(a[h]={}),p=g[d]||(g[d]=[]),p.push(m),e&&(p=u[d]||(u[d]=[]),p.push({[Rf]:m}));if(n=n||cL,a[Rf]?a[Rf]=_4["".concat(Rf,"_").concat(n)](...Object.values(a[Rf])):Object.keys(a).forEach(T=>{a[T]=Object.keys(a[T]).map(_=>a[T][_]).reduce((_,M)=>_===void 0?M:_4["".concat(c[T],"_").concat(n)](_,M))}),r=Object.keys(u),e&&r.length){const T=o?fue:cue;a[T]=n===cL?{[fL]:r.reduce((_,M)=>(_.push(...u[M]),_),[])}:{[hue]:r.map(_=>({[fL]:u[_]}))}}return a}var _4={["".concat(Rf,"_union")]:rY,["".concat(Rf,"_intersect")]:tY,E_union:function(t,n){if(!t.length)return n;for(var e=0,o=n.length;en.indexOf(e)>=0):n},R_union:function(t,n){var e=Rl(n[0]),o=Rl(n[1]);return e>o&&(e=n[1],o=n[0]),t.length?(t[0]>e&&(t[0]=e),t[1]o&&(e=n[1],o=n[0]),t.length?oo&&(t[1]=o),t):[e,o]}};const Tue=":",Aue="@";function US(t,n,e,o){n[0].type!==S0&&Pr("First argument to selection functions must be a string literal.");const f=n[0].value,r=n.length>=2&&Na(n).value,a="unit",u=Aue+a,c=Tue+f;r===jS&&!qi(o,u)&&(o[u]=e.getData(f).indataRef(e,a)),qi(o,c)||(o[c]=e.getData(f).tuplesRef())}function fj(t){const n=this.context.data[t];return n?n.values.value:[]}function Mue(t,n,e){const o=this.context.data[t]["index:"+n],f=o?o.value.get(e):void 0;return f&&f.count}function Sue(t,n){const e=this.context.dataflow,o=this.context.data[t],f=o.input;return e.pulse(f,e.changeset().remove(mc).insert(n)),1}function Eue(t,n,e){if(t){const o=this.context.dataflow,f=t.mark.source;o.pulse(f,o.changeset().encode(t,n))}return e!==void 0?e:t}const Zy=t=>function(n,e){return this.context.dataflow.locale()[t](e)(n)},Cue=Zy("format"),hj=Zy("timeFormat"),Oue=Zy("utcFormat"),Lue=Zy("timeParse"),Pue=Zy("utcParse"),bb=new Date(2e3,0,1);function Uw(t,n,e){return!Number.isInteger(t)||!Number.isInteger(n)?"":(bb.setYear(2e3),bb.setMonth(t),bb.setDate(n),hj.call(this,bb,e))}function Due(t){return Uw.call(this,t,1,"%B")}function Iue(t){return Uw.call(this,t,1,"%b")}function zue(t){return Uw.call(this,0,2+t,"%A")}function Rue(t){return Uw.call(this,0,2+t,"%a")}const Fue=":",Nue="@",TT="%",dj="$";function VS(t,n,e,o){n[0].type!==S0&&Pr("First argument to data functions must be a string literal.");const f=n[0].value,r=Fue+f;if(!qi(r,o))try{o[r]=e.getData(f).tuplesRef()}catch{}}function Bue(t,n,e,o){n[0].type!==S0&&Pr("First argument to indata must be a string literal."),n[1].type!==S0&&Pr("Second argument to indata must be a string literal.");const f=n[0].value,r=n[1].value,a=Nue+r;qi(a,o)||(o[a]=e.getData(f).indataRef(e,r))}function Su(t,n,e,o){if(n[0].type===S0)dL(e,o,n[0].value);else for(t in e.scales)dL(e,o,t)}function dL(t,n,e){const o=TT+e;if(!qi(n,o))try{n[o]=t.scaleRef(e)}catch{}}function Qh(t,n){let e;return ga(t)?t:bi(t)?(e=n.scales[t])&&e.value:void 0}function jue(t,n,e){n.__bandwidth=f=>f&&f.bandwidth?f.bandwidth():0,e._bandwidth=Su,e._range=Su,e._scale=Su;const o=f=>"_["+(f.type===S0?oi(TT+f.value):oi(TT)+"+"+t(f))+"]";return{_bandwidth:f=>"this.__bandwidth(".concat(o(f[0]),")"),_range:f=>"".concat(o(f[0]),".range()"),_scale:f=>"".concat(o(f[0]),"(").concat(t(f[1]),")")}}function qS(t,n){return function(e,o,f){if(e){const r=Qh(e,(f||this).context);return r&&r.path[t](o)}else return n(o)}}const Uue=qS("area",hre),Vue=qS("bounds",mre),que=qS("centroid",wre);function Hue(t){const n=this.context.group;let e=!1;if(n)for(;t;){if(t===n){e=!0;break}t=t.mark.group}return e}function HS(t,n,e){try{t[n].apply(t,["EXPRESSION"].concat([].slice.call(e)))}catch(o){t.warn(o)}return e[e.length-1]}function $ue(){return HS(this.context.dataflow,"warn",arguments)}function Gue(){return HS(this.context.dataflow,"info",arguments)}function Wue(){return HS(this.context.dataflow,"debug",arguments)}function w4(t){const n=t/255;return n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4)}function AT(t){const n=c_(t),e=w4(n.r),o=w4(n.g),f=w4(n.b);return .2126*e+.7152*o+.0722*f}function Yue(t,n){const e=AT(t),o=AT(n),f=Math.max(e,o),r=Math.min(e,o);return(f+.05)/(r+.05)}function Xue(){const t=[].slice.call(arguments);return t.unshift({}),pa(...t)}function pj(t,n){return t===n||t!==t&&n!==n?!0:Ir(t)?Ir(n)&&t.length===n.length?Zue(t,n):!1:Ei(t)&&Ei(n)?gj(t,n):!1}function Zue(t,n){for(let e=0,o=t.length;egj(t,n)}function Jue(t,n,e,o,f,r){const a=this.context.dataflow,u=this.context.data[t],c=u.input,i=a.stamp();let s=u.changes,l,d;if(a._trigger===!1||!(c.value.length||n||o))return 0;if((!s||s.stamp{u.modified=!0,a.pulse(c,s).run()},!0,1)),e&&(l=e===!0?mc:Ir(e)||tw(e)?e:pL(e),s.remove(l)),n&&s.insert(n),o&&(l=pL(o),c.value.some(l)?s.remove(l):s.insert(o)),f)for(d in r)s.modify(f,d,r[d]);return 1}function Kue(t){const n=t.touches,e=n[0].clientX-n[1].clientX,o=n[0].clientY-n[1].clientY;return Math.sqrt(e*e+o*o)}function Que(t){const n=t.touches;return Math.atan2(n[0].clientY-n[1].clientY,n[0].clientX-n[1].clientX)}const gL={};function ece(t,n){const e=gL[n]||(gL[n]=Lu(n));return Ir(t)?t.map(e):e(t)}function $S(t){return Ir(t)||ArrayBuffer.isView(t)?t:null}function GS(t){return $S(t)||(bi(t)?t:null)}function tce(t){for(var n=arguments.length,e=new Array(n>1?n-1:0),o=1;o1?n-1:0),o=1;o1?n-1:0),o=1;o1?n-1:0),o=1;or.stop(i(s),t(s))),r}function gce(t,n,e){const o=Qh(t,(e||this).context);return function(f){return o?o.path.context(f)(n):""}}function mce(t){let n=null;return function(e){return e?Zv(e,n=n||gm(t)):t}}const mj=t=>t.data;function vj(t,n){const e=fj.call(n,t);return e.root&&e.root.lookup||{}}function vce(t,n,e){const o=vj(t,this),f=o[n],r=o[e];return f&&r?f.path(r).map(mj):void 0}function yce(t,n){const e=vj(t,this)[n];return e?e.ancestors().map(mj):void 0}const yj=()=>typeof window<"u"&&window||null;function xce(){const t=yj();return t?t.screen:{}}function bce(){const t=yj();return t?[t.innerWidth,t.innerHeight]:[void 0,void 0]}function _ce(){const t=this.context.dataflow,n=t.container&&t.container();return n?[n.clientWidth,n.clientHeight]:[void 0,void 0]}function xj(t,n,e){if(!t)return[];const[o,f]=t,r=new zs().set(o[0],o[1],f[0],f[1]),a=e||this.context.dataflow.scenegraph().root;return aN(a,r,wce(n))}function wce(t){let n=null;if(t){const e=ki(t.marktype),o=ki(t.markname);n=f=>(!e.length||e.some(r=>f.marktype===r))&&(!o.length||o.some(r=>f.name===r))}return n}function kce(t,n,e){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:5;const f=t[t.length-1];return f===void 0||Math.sqrt((f[0]-n)**2+(f[1]-e)**2)>o?(t.push([n,e]),[...t]):t}function Tce(t){return(t??[]).reduce((n,e,o)=>{let[f,r]=e;return n+=o==0?"M ".concat(f,",").concat(r," "):o===t.length-1?" Z":"L ".concat(f,",").concat(r," ")},"")}function Ace(t,n,e){const{x:o,y:f,mark:r}=e,a=new zs().set(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,Number.MIN_SAFE_INTEGER,Number.MIN_SAFE_INTEGER);for(const[c,i]of n)ca.x2&&(a.x2=c),ia.y2&&(a.y2=i);return a.translate(o,f),xj([[a.x1,a.y1],[a.x2,a.y2]],t,r).filter(c=>Mce(c.x,c.y,n))}function Mce(t,n,e){let o=0;for(let f=0,r=e.length-1;fn!=u>n&&t<(a-c)*(n-i)/(u-i)+c&&o++}return o&1}const sy={random(){return yc()},cumulativeNormal:ow,cumulativeLogNormal:o6,cumulativeUniform:c6,densityNormal:t6,densityLogNormal:a6,densityUniform:u6,quantileNormal:sw,quantileLogNormal:s6,quantileUniform:f6,sampleNormal:aw,sampleLogNormal:i6,sampleUniform:l6,isArray:Ir,isBoolean:fp,isDate:Nd,isDefined(t){return t!==void 0},isNumber:wo,isObject:Ei,isRegExp:fI,isString:bi,isTuple:tw,isValid(t){return t!=null&&t===t},toBoolean:LA,toDate(t){return PA(t)},toNumber:Rl,toString:DA,indexof:nce,join:tce,lastindexof:rce,replace:ace,reverse:oce,slice:ice,flush:uI,lerp:hI,merge:Xue,pad:gI,peek:Na,pluck:ece,span:Ay,inrange:Wg,truncate:mI,rgb:c_,lab:A_,hcl:M_,hsl:Q4,luminance:AT,contrast:Yue,sequence:Ju,format:Cue,utcFormat:Oue,utcParse:Pue,utcOffset:VI,utcSequence:$I,timeFormat:hj,timeParse:Lue,timeOffset:UI,timeSequence:HI,timeUnitSpecifier:OI,monthFormat:Due,monthAbbrevFormat:Iue,dayFormat:zue,dayAbbrevFormat:Rue,quarter:aI,utcquarter:oI,week:PI,utcweek:zI,dayofyear:LI,utcdayofyear:II,warn:$ue,info:Gue,debug:Wue,extent(t){return Zf(t)},inScope:Hue,intersect:xj,clampRange:sI,pinchDistance:Kue,pinchAngle:Que,screen:xce,containerSize:_ce,windowSize:bce,bandspace:sce,setdata:Sue,pathShape:mce,panLinear:tI,panLog:nI,panPow:rI,panSymlog:iI,zoomLinear:AA,zoomLog:MA,zoomPow:p_,zoomSymlog:SA,encode:Eue,modify:Jue,lassoAppend:kce,lassoPath:Tce,intersectLasso:Ace},Sce=["view","item","group","xy","x","y"],Ece="event.vega.",bj="this.",WS={},_j={forbidden:["_"],allowed:["datum","event","item"],fieldvar:"datum",globalvar:t=>"_[".concat(oi(dj+t),"]"),functions:Cce,constants:sj,visitors:WS},MT=uj(_j);function Cce(t){const n=lj(t);Sce.forEach(e=>n[e]=Ece+e);for(const e in sy)n[e]=bj+e;return pa(n,jue(t,sy,WS)),n}function Fs(t,n,e){return arguments.length===1?sy[t]:(sy[t]=n,e&&(WS[t]=e),MT&&(MT.functions[t]=bj+t),this)}Fs("bandwidth",lce,Su);Fs("copy",uce,Su);Fs("domain",cce,Su);Fs("range",hce,Su);Fs("invert",fce,Su);Fs("scale",dce,Su);Fs("gradient",pce,Su);Fs("geoArea",Uue,Su);Fs("geoBounds",Vue,Su);Fs("geoCentroid",que,Su);Fs("geoShape",gce,Su);Fs("indata",Mue,Bue);Fs("data",fj,VS);Fs("treePath",vce,VS);Fs("treeAncestors",yce,VS);Fs("vlSelectionTest",yue,US);Fs("vlSelectionIdTest",_ue,US);Fs("vlSelectionResolve",kue,US);Fs("vlSelectionTuples",wue);function Qf(t,n){const e={};let o;try{t=bi(t)?t:oi(t)+"",o=BS(t)}catch{Pr("Expression parse error: "+t)}o.visit(r=>{if(r.type!==ej)return;const a=r.callee.name,u=_j.visitors[a];u&&u(a,r.arguments,n,e)});const f=MT(o);return f.globals.forEach(r=>{const a=dj+r;!qi(e,a)&&n.getSignal(r)&&(e[a]=n.signalRef(r))}),{$expr:pa({code:f.code},n.options.ast?{ast:o}:null),$fields:f.fields,$params:e}}function Oce(t){const n=this,e=t.operators||[];return t.background&&(n.background=t.background),t.eventConfig&&(n.eventConfig=t.eventConfig),t.locale&&(n.locale=t.locale),e.forEach(o=>n.parseOperator(o)),e.forEach(o=>n.parseOperatorParameters(o)),(t.streams||[]).forEach(o=>n.parseStream(o)),(t.updates||[]).forEach(o=>n.parseUpdate(o)),n.resolve()}const Lce=ff(["rule"]),mL=ff(["group","image","rect"]);function Pce(t,n){let e="";return Lce[n]||(t.x2&&(t.x?(mL[n]&&(e+="if(o.x>o.x2)$=o.x,o.x=o.x2,o.x2=$;"),e+="o.width=o.x2-o.x;"):e+="o.x=o.x2-(o.width||0);"),t.xc&&(e+="o.x=o.xc-(o.width||0)/2;"),t.y2&&(t.y?(mL[n]&&(e+="if(o.y>o.y2)$=o.y,o.y=o.y2,o.y2=$;"),e+="o.height=o.y2-o.y;"):e+="o.y=o.y2-(o.height||0);"),t.yc&&(e+="o.y=o.yc-(o.height||0)/2;")),e}function YS(t){return(t+"").toLowerCase()}function Dce(t){return YS(t)==="operator"}function Ice(t){return YS(t)==="collect"}function G1(t,n,e){e[e.length-1]!==";"&&(e="return("+e+");");const o=Function(...n.concat(e));return t&&t.functions?o.bind(t.functions):o}function zce(t,n,e,o){return"((u = ".concat(t,") < (v = ").concat(n,") || u == null) && v != null ? ").concat(e,` + : (u > v || v == null) && u != null ? `).concat(o,` + : ((v = v instanceof Date ? +v : v), (u = u instanceof Date ? +u : u)) !== u && v === v ? `).concat(e,` + : v !== v && u === u ? `).concat(o," : ")}var Rce={operator:(t,n)=>G1(t,["_"],n.code),parameter:(t,n)=>G1(t,["datum","_"],n.code),event:(t,n)=>G1(t,["event"],n.code),handler:(t,n)=>{const e="var datum=event.item&&event.item.datum;return ".concat(n.code,";");return G1(t,["_","event"],e)},encode:(t,n)=>{const{marktype:e,channels:o}=n;let f="var o=item,datum=o.datum,m=0,$;";for(const r in o){const a="o["+oi(r)+"]";f+="$=".concat(o[r].code,";if(").concat(a,"!==$)").concat(a,"=$,m=1;")}return f+=Pce(o,e),f+="return m;",G1(t,["item","_"],f)},codegen:{get(t){const n="[".concat(t.map(oi).join("]["),"]"),e=Function("_","return _".concat(n,";"));return e.path=n,e},comparator(t,n){let e;const o=(r,a)=>{const u=n[a];let c,i;return r.path?(c="a".concat(r.path),i="b".concat(r.path)):((e=e||{})["f"+a]=r,c="this.f".concat(a,"(a)"),i="this.f".concat(a,"(b)")),zce(c,i,-u,u)},f=Function("a","b","var u, v; return "+t.map(o).join("")+"0;");return e?f.bind(e):f}}};function Fce(t){const n=this;Dce(t.type)||!t.type?n.operator(t,t.update?n.operatorExpression(t.update):null):n.transform(t,t.type)}function Nce(t){const n=this;if(t.params){const e=n.get(t.id);e||Pr("Invalid operator id: "+t.id),n.dataflow.connect(e,e.parameters(n.parseParameters(t.params),t.react,t.initonly))}}function Bce(t,n){n=n||{};const e=this;for(const o in t){const f=t[o];n[o]=Ir(f)?f.map(r=>vL(r,e,n)):vL(f,e,n)}return n}function vL(t,n,e){if(!t||!Ei(t))return t;for(let o=0,f=yL.length,r;of&&f.$tupleid?$i:f);return n.fn[e]||(n.fn[e]=EA(o,t.$order,n.expr.codegen))}function $ce(t,n){const e=t.$encode,o={};for(const f in e){const r=e[f];o[f]=Nu(n.encodeExpression(r.$expr),r.$fields),o[f].output=r.$output}return o}function Gce(t,n){return n}function Wce(t,n){const e=t.$subflow;return function(o,f,r){const a=n.fork().parse(e),u=a.get(e.operators[0].id),c=a.signals.parent;return c&&c.set(r),u.detachSubflow=()=>n.detach(a),u}}function Yce(){return $i}function Xce(t){var n=this,e=t.filter!=null?n.eventExpression(t.filter):void 0,o=t.stream!=null?n.get(t.stream):void 0,f;t.source?o=n.events(t.source,t.type,e):t.merge&&(f=t.merge.map(r=>n.get(r)),o=f[0].merge.apply(f[0],f.slice(1))),t.between&&(f=t.between.map(r=>n.get(r)),o=o.between(f[0],f[1])),t.filter&&(o=o.filter(e)),t.throttle!=null&&(o=o.throttle(+t.throttle)),t.debounce!=null&&(o=o.debounce(+t.debounce)),o==null&&Pr("Invalid stream definition: "+JSON.stringify(t)),t.consume&&o.consume(!0),n.stream(t,o)}function Zce(t){var n=this,e=Ei(e=t.source)?e.$ref:e,o=n.get(e),f=null,r=t.update,a=void 0;o||Pr("Source not defined: "+t.source),f=t.target&&t.target.$expr?n.eventExpression(t.target.$expr):n.get(t.target),r&&r.$expr&&(r.$params&&(a=n.parseParameters(r.$params)),r=n.handlerExpression(r.$expr)),n.update(t,o,f,r,a)}const Jce={skip:!0};function Kce(t){var n=this,e={};if(t.signals){var o=e.signals={};Object.keys(n.signals).forEach(r=>{const a=n.signals[r];t.signals(r,a)&&(o[r]=a.value)})}if(t.data){var f=e.data={};Object.keys(n.data).forEach(r=>{const a=n.data[r];t.data(r,a)&&(f[r]=a.input.value)})}return n.subcontext&&t.recurse!==!1&&(e.subcontext=n.subcontext.map(r=>r.getState(t))),e}function Qce(t){var n=this,e=n.dataflow,o=t.data,f=t.signals;Object.keys(f||{}).forEach(r=>{e.update(n.signals[r],f[r],Jce)}),Object.keys(o||{}).forEach(r=>{e.pulse(n.data[r].input,e.changeset().remove(mc).insert(o[r]))}),(t.subcontext||[]).forEach((r,a)=>{const u=n.subcontext[a];u&&u.setState(r)})}function wj(t,n,e,o){return new kj(t,n,e,o)}function kj(t,n,e,o){this.dataflow=t,this.transforms=n,this.events=t.events.bind(t),this.expr=o||Rce,this.signals={},this.scales={},this.nodes={},this.data={},this.fn={},e&&(this.functions=Object.create(e),this.functions.context=this)}function xL(t){this.dataflow=t.dataflow,this.transforms=t.transforms,this.events=t.events,this.expr=t.expr,this.signals=Object.create(t.signals),this.scales=Object.create(t.scales),this.nodes=Object.create(t.nodes),this.data=Object.create(t.data),this.fn=Object.create(t.fn),t.functions&&(this.functions=Object.create(t.functions),this.functions.context=this)}kj.prototype=xL.prototype={fork(){const t=new xL(this);return(this.subcontext||(this.subcontext=[])).push(t),t},detach(t){this.subcontext=this.subcontext.filter(e=>e!==t);const n=Object.keys(t.nodes);for(const e of n)t.nodes[e]._targets=null;for(const e of n)t.nodes[e].detach();t.nodes=null},get(t){return this.nodes[t]},set(t,n){return this.nodes[t]=n},add(t,n){const e=this,o=e.dataflow,f=t.value;if(e.set(t.id,n),Ice(t.type)&&f&&(f.$ingest?o.ingest(n,f.$ingest,f.$format):f.$request?o.preload(n,f.$request,f.$format):o.pulse(n,o.changeset().insert(f))),t.root&&(e.root=n),t.parent){let r=e.get(t.parent.$ref);r?(o.connect(r,[n]),n.targets().add(r)):(e.unresolved=e.unresolved||[]).push(()=>{r=e.get(t.parent.$ref),o.connect(r,[n]),n.targets().add(r)})}if(t.signal&&(e.signals[t.signal]=n),t.scale&&(e.scales[t.scale]=n),t.data)for(const r in t.data){const a=e.data[r]||(e.data[r]={});t.data[r].forEach(u=>a[u]=n)}},resolve(){return(this.unresolved||[]).forEach(t=>t()),delete this.unresolved,this},operator(t,n){this.add(t,this.dataflow.add(t.value,n))},transform(t,n){this.add(t,this.dataflow.add(this.transforms[YS(n)]))},stream(t,n){this.set(t.id,n)},update(t,n,e,o,f){this.dataflow.on(n,e,o,f,t.options)},operatorExpression(t){return this.expr.operator(this,t)},parameterExpression(t){return this.expr.parameter(this,t)},eventExpression(t){return this.expr.event(this,t)},handlerExpression(t){return this.expr.handler(this,t)},encodeExpression(t){return this.expr.encode(this,t)},parse:Oce,parseOperator:Fce,parseOperatorParameters:Nce,parseParameters:Bce,parseStream:Xce,parseUpdate:Zce,getState:Kce,setState:Qce};function efe(t){const n=t.container();n&&(n.setAttribute("role","graphics-document"),n.setAttribute("aria-roleDescription","visualization"),Tj(n,t.description()))}function Tj(t,n){t&&(n==null?t.removeAttribute("aria-label"):t.setAttribute("aria-label",n))}function tfe(t){t.add(null,n=>(t._background=n.bg,t._resize=1,n.bg),{bg:t._signals.background})}const k4="default";function nfe(t){const n=t._signals.cursor||(t._signals.cursor=t.add({user:k4,item:null}));t.on(t.events("view","mousemove"),n,(e,o)=>{const f=n.value,r=f?bi(f)?f:f.user:k4,a=o.item&&o.item.cursor||null;return f&&r===f.user&&a==f.item?f:{user:r,item:a}}),t.add(null,function(e){let o=e.cursor,f=this.value;return bi(o)||(f=o.item,o=o.user),ST(t,o&&o!==k4?o:f||o),f},{cursor:n})}function ST(t,n){const e=t.globalCursor()?typeof document<"u"&&document.body:t.container();if(e)return n==null?e.style.removeProperty("cursor"):e.style.cursor=n}function y2(t,n){var e=t._runtime.data;return qi(e,n)||Pr("Unrecognized data set: "+n),e[n]}function rfe(t,n){return arguments.length<2?y2(this,t).values.value:Vw.call(this,t,$0().remove(mc).insert(n))}function Vw(t,n){yz(n)||Pr("Second argument to changes must be a changeset.");const e=y2(this,t);return e.modified=!0,this.pulse(e.input,n)}function ife(t,n){return Vw.call(this,t,$0().insert(n))}function afe(t,n){return Vw.call(this,t,$0().remove(n))}function Aj(t){var n=t.padding();return Math.max(0,t._viewWidth+n.left+n.right)}function Mj(t){var n=t.padding();return Math.max(0,t._viewHeight+n.top+n.bottom)}function qw(t){var n=t.padding(),e=t._origin;return[n.left+e[0],n.top+e[1]]}function ofe(t){var n=qw(t),e=Aj(t),o=Mj(t);t._renderer.background(t.background()),t._renderer.resize(e,o,n),t._handler.origin(n),t._resizeListeners.forEach(f=>{try{f(e,o)}catch(r){t.error(r)}})}function sfe(t,n,e){var o=t._renderer,f=o&&o.canvas(),r,a,u;return f&&(u=qw(t),a=n.changedTouches?n.changedTouches[0]:n,r=Cw(a,f),r[0]-=u[0],r[1]-=u[1]),n.dataflow=t,n.item=e,n.vega=lfe(t,e,r),n}function lfe(t,n,e){const o=n?n.mark.marktype==="group"?n:n.mark.group:null;function f(a){var u=o,c;if(a){for(c=n;c;c=c.mark.group)if(c.mark.name===a){u=c;break}}return u&&u.mark&&u.mark.interactive?u:{}}function r(a){if(!a)return e;bi(a)&&(a=f(a));const u=e.slice();for(;a;)u[0]-=a.x||0,u[1]-=a.y||0,a=a.mark&&a.mark.group;return u}return{view:$l(t),item:$l(n||{}),group:f,xy:r,x:a=>r(a)[0],y:a=>r(a)[1]}}const bL="view",ufe="timer",cfe="window",ffe={trap:!1};function hfe(t){const n=pa({defaults:{}},t),e=(o,f)=>{f.forEach(r=>{Ir(o[r])&&(o[r]=ff(o[r]))})};return e(n.defaults,["prevent","allow"]),e(n,["view","window","selector"]),n}function Sj(t,n,e,o){t._eventListeners.push({type:e,sources:ki(n),handler:o})}function dfe(t,n){var e=t._eventConfig.defaults,o=e.prevent,f=e.allow;return o===!1||f===!0?!1:o===!0||f===!1?!0:o?o[n]:f?!f[n]:t.preventDefault()}function _b(t,n,e){const o=t._eventConfig&&t._eventConfig[n];return o===!1||Ei(o)&&!o[e]?(t.warn("Blocked ".concat(n," ").concat(e," event listener.")),!1):!0}function pfe(t,n,e){var o=this,f=new iw(e),r=function(i,s){o.runAsync(null,()=>{t===bL&&dfe(o,n)&&i.preventDefault(),f.receive(sfe(o,i,s))})},a;if(t===ufe)_b(o,"timer",n)&&o.timer(r,n);else if(t===bL)_b(o,"view",n)&&o.addEventListener(n,r,ffe);else if(t===cfe?_b(o,"window",n)&&typeof window<"u"&&(a=[window]):typeof document<"u"&&_b(o,"selector",n)&&(a=document.querySelectorAll(t)),!a)o.warn("Can not resolve event source: "+t);else{for(var u=0,c=a.length;u=0;)n[o].stop();for(o=e.length;--o>=0;)for(r=e[o],f=r.sources.length;--f>=0;)r.sources[f].removeEventListener(r.type,r.handler);return t&&t.call(this,this._handler,null,null,null),this}function Ku(t,n,e){const o=document.createElement(t);for(const f in n)o.setAttribute(f,n[f]);return e!=null&&(o.textContent=e),o}const vfe="vega-bind",yfe="vega-bind-name",xfe="vega-bind-radio";function bfe(t,n,e){if(!n)return;const o=e.param;let f=e.state;return f||(f=e.state={elements:null,active:!1,set:null,update:a=>{a!=t.signal(o.signal)&&t.runAsync(null,()=>{f.source=!0,t.signal(o.signal,a)})}},o.debounce&&(f.update=CA(o.debounce,f.update))),(o.input==null&&o.element?_fe:kfe)(f,n,o,t),f.active||(t.on(t._signals[o.signal],null,()=>{f.source?f.source=!1:f.set(t.signal(o.signal))}),f.active=!0),f}function _fe(t,n,e,o){const f=e.event||"input",r=()=>t.update(n.value);o.signal(e.signal,n.value),n.addEventListener(f,r),Sj(o,n,f,r),t.set=a=>{n.value=a,n.dispatchEvent(wfe(f))}}function wfe(t){return typeof Event<"u"?new Event(t):{type:t}}function kfe(t,n,e,o){const f=o.signal(e.signal),r=Ku("div",{class:vfe}),a=e.input==="radio"?r:r.appendChild(Ku("label"));a.appendChild(Ku("span",{class:yfe},e.name||e.signal)),n.appendChild(r);let u=Tfe;switch(e.input){case"checkbox":u=Afe;break;case"select":u=Mfe;break;case"radio":u=Sfe;break;case"range":u=Efe;break}u(t,a,e,f)}function Tfe(t,n,e,o){const f=Ku("input");for(const r in e)r!=="signal"&&r!=="element"&&f.setAttribute(r==="input"?"type":r,e[r]);f.setAttribute("name",e.signal),f.value=o,n.appendChild(f),f.addEventListener("input",()=>t.update(f.value)),t.elements=[f],t.set=r=>f.value=r}function Afe(t,n,e,o){const f={type:"checkbox",name:e.signal};o&&(f.checked=!0);const r=Ku("input",f);n.appendChild(r),r.addEventListener("change",()=>t.update(r.checked)),t.elements=[r],t.set=a=>r.checked=!!a||null}function Mfe(t,n,e,o){const f=Ku("select",{name:e.signal}),r=e.labels||[];e.options.forEach((a,u)=>{const c={value:a};x2(a,o)&&(c.selected=!0),f.appendChild(Ku("option",c,(r[u]||a)+""))}),n.appendChild(f),f.addEventListener("change",()=>{t.update(e.options[f.selectedIndex])}),t.elements=[f],t.set=a=>{for(let u=0,c=e.options.length;u{const c={type:"radio",name:e.signal,value:a};x2(a,o)&&(c.checked=!0);const i=Ku("input",c);i.addEventListener("change",()=>t.update(a));const s=Ku("label",{},(r[u]||a)+"");return s.prepend(i),f.appendChild(s),i}),t.set=a=>{const u=t.elements,c=u.length;for(let i=0;i{c.textContent=u.value,t.update(+u.value)};u.addEventListener("input",i),u.addEventListener("change",i),t.elements=[u],t.set=s=>{u.value=s,c.textContent=s}}function x2(t,n){return t===n||t+""==n+""}function Ej(t,n,e,o,f,r){return n=n||new o(t.loader()),n.initialize(e,Aj(t),Mj(t),qw(t),f,r).background(t.background())}function XS(t,n){return n?function(){try{n.apply(this,arguments)}catch(e){t.error(e)}}:null}function Cfe(t,n,e,o){const f=new o(t.loader(),XS(t,t.tooltip())).scene(t.scenegraph().root).initialize(e,qw(t),t);return n&&n.handlers().forEach(r=>{f.on(r.type,r.handler)}),f}function Ofe(t,n){const e=this,o=e._renderType,f=e._eventConfig.bind,r=Ow(o);t=e._el=t?T4(e,t,!0):null,efe(e),r||e.error("Unrecognized renderer type: "+o);const a=r.handler||Vy,u=t?r.renderer:r.headless;return e._renderer=u?Ej(e,e._renderer,t,u):null,e._handler=Cfe(e,e._handler,t,a),e._redraw=!0,t&&f!=="none"&&(n=n?e._elBind=T4(e,n,!0):t.appendChild(Ku("form",{class:"vega-bindings"})),e._bind.forEach(c=>{c.param.element&&f!=="container"&&(c.element=T4(e,c.param.element,!!c.param.input))}),e._bind.forEach(c=>{bfe(e,c.element||n,c)})),e}function T4(t,n,e){if(typeof n=="string")if(typeof document<"u"){if(n=document.querySelector(n),!n)return t.error("Signal bind element not found: "+n),null}else return t.error("DOM document instance not found."),null;if(n&&e)try{n.textContent=""}catch(o){n=null,t.error(o)}return n}const W1=t=>+t||0,Lfe=t=>({top:t,bottom:t,left:t,right:t});function TL(t){return Ei(t)?{top:W1(t.top),bottom:W1(t.bottom),left:W1(t.left),right:W1(t.right)}:Lfe(W1(t))}async function ZS(t,n,e,o){const f=Ow(n),r=f&&f.headless;return r||Pr("Unrecognized renderer type: "+n),await t.runAsync(),Ej(t,null,null,r,e,o).renderAsync(t._scenegraph.root)}async function Pfe(t,n){t!==Dd.Canvas&&t!==Dd.SVG&&t!==Dd.PNG&&Pr("Unrecognized image type: "+t);const e=await ZS(this,t,n);return t===Dd.SVG?Dfe(e.svg(),"image/svg+xml"):e.canvas().toDataURL("image/png")}function Dfe(t,n){const e=new Blob([t],{type:n});return window.URL.createObjectURL(e)}async function Ife(t,n){return(await ZS(this,Dd.Canvas,t,n)).canvas()}async function zfe(t){return(await ZS(this,Dd.SVG,t)).svg()}function Rfe(t,n,e){return wj(t,cm,sy,e).parse(n)}function Ffe(t){var n=this._runtime.scales;return qi(n,t)||Pr("Unrecognized scale or projection: "+t),n[t].value}var Cj="width",Oj="height",JS="padding",AL={skip:!0};function Lj(t,n){var e=t.autosize(),o=t.padding();return n-(e&&e.contains===JS?o.left+o.right:0)}function Pj(t,n){var e=t.autosize(),o=t.padding();return n-(e&&e.contains===JS?o.top+o.bottom:0)}function Nfe(t){var n=t._signals,e=n[Cj],o=n[Oj],f=n[JS];function r(){t._autosize=t._resize=1}t._resizeWidth=t.add(null,u=>{t._width=u.size,t._viewWidth=Lj(t,u.size),r()},{size:e}),t._resizeHeight=t.add(null,u=>{t._height=u.size,t._viewHeight=Pj(t,u.size),r()},{size:o});const a=t.add(null,r,{pad:f});t._resizeWidth.rank=e.rank+1,t._resizeHeight.rank=o.rank+1,a.rank=f.rank+1}function Bfe(t,n,e,o,f,r){this.runAfter(a=>{let u=0;a._autosize=0,a.width()!==e&&(u=1,a.signal(Cj,e,AL),a._resizeWidth.skip(!0)),a.height()!==o&&(u=1,a.signal(Oj,o,AL),a._resizeHeight.skip(!0)),a._viewWidth!==t&&(a._resize=1,a._viewWidth=t),a._viewHeight!==n&&(a._resize=1,a._viewHeight=n),(a._origin[0]!==f[0]||a._origin[1]!==f[1])&&(a._resize=1,a._origin=f),u&&a.run("enter"),r&&a.runAfter(c=>c.resize())},!1,1)}function jfe(t){return this._runtime.getState(t||{data:Ufe,signals:Vfe,recurse:!0})}function Ufe(t,n){return n.modified&&Ir(n.input.value)&&t.indexOf("_:vega:_")}function Vfe(t,n){return!(t==="parent"||n instanceof cm.proxy)}function qfe(t){return this.runAsync(null,n=>{n._trigger=!1,n._runtime.setState(t)},n=>{n._trigger=!0}),this}function Hfe(t,n){function e(o){t({timestamp:Date.now(),elapsed:o})}this._timers.push(kae(e,n))}function $fe(t,n,e,o){const f=t.element();f&&f.setAttribute("title",Gfe(o))}function Gfe(t){return t==null?"":Ir(t)?Dj(t):Ei(t)&&!Nd(t)?Wfe(t):t+""}function Wfe(t){return Object.keys(t).map(n=>{const e=t[n];return n+": "+(Ir(e)?Dj(e):Ij(e))}).join(` +`)}function Dj(t){return"["+t.map(Ij).join(", ")+"]"}function Ij(t){return Ir(t)?"[\u2026]":Ei(t)&&!Nd(t)?"{\u2026}":t}function zj(t,n){const e=this;if(n=n||{},Qg.call(e),n.loader&&e.loader(n.loader),n.logger&&e.logger(n.logger),n.logLevel!=null&&e.logLevel(n.logLevel),n.locale||t.locale){const r=pa({},t.locale,n.locale);e.locale(lz(r.number,r.time))}e._el=null,e._elBind=null,e._renderType=n.renderer||Dd.Canvas,e._scenegraph=new LM;const o=e._scenegraph.root;e._renderer=null,e._tooltip=n.tooltip||$fe,e._redraw=!0,e._handler=new Vy().scene(o),e._globalCursor=!1,e._preventDefault=!1,e._timers=[],e._eventListeners=[],e._resizeListeners=[],e._eventConfig=hfe(t.eventConfig),e.globalCursor(e._eventConfig.globalCursor);const f=Rfe(e,t,n.expr);e._runtime=f,e._signals=f.signals,e._bind=(t.bindings||[]).map(r=>({state:null,param:pa({},r)})),f.root&&f.root.set(o),o.source=f.data.root.input,e.pulse(f.data.root.input,e.changeset().insert(o.items)),e._width=e.width(),e._height=e.height(),e._viewWidth=Lj(e,e._width),e._viewHeight=Pj(e,e._height),e._origin=[0,0],e._resize=0,e._autosize=1,Nfe(e),tfe(e),nfe(e),e.description(t.description),n.hover&&e.hover(),n.container&&e.initialize(n.container,n.bind)}function wb(t,n){return qi(t._signals,n)?t._signals[n]:Pr("Unrecognized signal name: "+oi(n))}function Rj(t,n){const e=(t._targets||[]).filter(o=>o._update&&o._update.handler===n);return e.length?e[0]:null}function ML(t,n,e,o){let f=Rj(e,o);return f||(f=XS(t,()=>o(n,e.value)),f.handler=o,t.on(e,null,f)),t}function SL(t,n,e){const o=Rj(n,e);return o&&n._targets.remove(o),t}ni(zj,Qg,{async evaluate(t,n,e){if(await Qg.prototype.evaluate.call(this,t,n),this._redraw||this._resize)try{this._renderer&&(this._resize&&(this._resize=0,ofe(this)),await this._renderer.renderAsync(this._scenegraph.root)),this._redraw=!1}catch(o){this.error(o)}return e&&jb(this,e),this},dirty(t){this._redraw=!0,this._renderer&&this._renderer.dirty(t)},description(t){if(arguments.length){const n=t!=null?t+"":null;return n!==this._desc&&Tj(this._el,this._desc=n),this}return this._desc},container(){return this._el},scenegraph(){return this._scenegraph},origin(){return this._origin.slice()},signal(t,n,e){const o=wb(this,t);return arguments.length===1?o.value:this.update(o,n,e)},width(t){return arguments.length?this.signal("width",t):this.signal("width")},height(t){return arguments.length?this.signal("height",t):this.signal("height")},padding(t){return arguments.length?this.signal("padding",TL(t)):TL(this.signal("padding"))},autosize(t){return arguments.length?this.signal("autosize",t):this.signal("autosize")},background(t){return arguments.length?this.signal("background",t):this.signal("background")},renderer(t){return arguments.length?(Ow(t)||Pr("Unrecognized renderer type: "+t),t!==this._renderType&&(this._renderType=t,this._resetRenderer()),this):this._renderType},tooltip(t){return arguments.length?(t!==this._tooltip&&(this._tooltip=t,this._resetRenderer()),this):this._tooltip},loader(t){return arguments.length?(t!==this._loader&&(Qg.prototype.loader.call(this,t),this._resetRenderer()),this):this._loader},resize(){return this._autosize=1,this.touch(wb(this,"autosize"))},_resetRenderer(){this._renderer&&(this._renderer=null,this.initialize(this._el,this._elBind))},_resizeView:Bfe,addEventListener(t,n,e){let o=n;return e&&e.trap===!1||(o=XS(this,n),o.raw=n),this._handler.on(t,o),this},removeEventListener(t,n){for(var e=this._handler.handlers(t),o=e.length,f,r;--o>=0;)if(r=e[o].type,f=e[o].handler,t===r&&(n===f||n===f.raw)){this._handler.off(r,f);break}return this},addResizeListener(t){const n=this._resizeListeners;return n.indexOf(t)<0&&n.push(t),this},removeResizeListener(t){var n=this._resizeListeners,e=n.indexOf(t);return e>=0&&n.splice(e,1),this},addSignalListener(t,n){return ML(this,t,wb(this,t),n)},removeSignalListener(t,n){return SL(this,wb(this,t),n)},addDataListener(t,n){return ML(this,t,y2(this,t).values,n)},removeDataListener(t,n){return SL(this,y2(this,t).values,n)},globalCursor(t){if(arguments.length){if(this._globalCursor!==!!t){const n=ST(this,null);this._globalCursor=!!t,n&&ST(this,n)}return this}else return this._globalCursor},preventDefault(t){return arguments.length?(this._preventDefault=t,this):this._preventDefault},timer:Hfe,events:pfe,finalize:mfe,hover:gfe,data:rfe,change:Vw,insert:ife,remove:afe,scale:Ffe,initialize:Ofe,toImageURL:Pfe,toCanvas:Ife,toSVG:zfe,getState:jfe,setState:qfe});const Yfe="view",b2="[",_2="]",Fj="{",Nj="}",Xfe=":",Bj=",",Zfe="@",Jfe=">",Kfe=/[[\]{}]/,Qfe={"*":1,arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1};let jj,Uj;function pp(t,n,e){return jj=n||Yfe,Uj=e||Qfe,Vj(t.trim()).map(ET)}function ehe(t){return Uj[t]}function Fv(t,n,e,o,f){const r=t.length;let a=0,u;for(;n=0?--a:o&&o.indexOf(u)>=0&&++a}return n}function Vj(t){const n=[],e=t.length;let o=0,f=0;for(;f' after between selector: "+t;o=o.map(ET);const f=ET(t.slice(1).trim());return f.between?{between:o,stream:f}:(f.between=o,f)}function nhe(t){const n={source:jj},e=[];let o=[0,0],f=0,r=0,a=t.length,u=0,c,i;if(t[a-1]===Nj){if(u=t.lastIndexOf(Fj),u>=0){try{o=rhe(t.substring(u+1,a-1))}catch{throw"Invalid throttle specification: "+t}t=t.slice(0,u).trim(),a=t.length}else throw"Unmatched right brace: "+t;u=0}if(!a)throw t;if(t[0]===Zfe&&(f=++u),c=Fv(t,u,Xfe),c1?(n.type=e[1],f?n.markname=e[0].slice(1):ehe(e[0])?n.marktype=e[0]:n.source=e[0]):n.type=e[0],n.type.slice(-1)==="!"&&(n.consume=!0,n.type=n.type.slice(0,-1)),i!=null&&(n.filter=i),o[0]&&(n.throttle=o[0]),o[1]&&(n.debounce=o[1]),n}function rhe(t){const n=t.split(Bj);if(!t.length||n.length>2)throw t;return n.map(e=>{const o=+e;if(o!==o)throw t;return o})}function ihe(t){return Ei(t)?t:{type:t||"pad"}}const Y1=t=>+t||0,ahe=t=>({top:t,bottom:t,left:t,right:t});function ohe(t){return Ei(t)?t.signal?t:{top:Y1(t.top),bottom:Y1(t.bottom),left:Y1(t.left),right:Y1(t.right)}:ahe(Y1(t))}const il=t=>Ei(t)&&!Ir(t)?pa({},t):{value:t};function EL(t,n,e,o){return e!=null?(Ei(e)&&!Ir(e)||Ir(e)&&e.length&&Ei(e[0])?t.update[n]=e:t[o||"enter"][n]={value:e},1):0}function kl(t,n,e){for(const o in n)EL(t,o,n[o]);for(const o in e)EL(t,o,e[o],"update")}function Jm(t,n,e){for(const o in n)e&&qi(e,o)||(t[o]=pa(t[o]||{},n[o]));return t}function $g(t,n){return n&&(n.enter&&n.enter[t]||n.update&&n.update[t])}const KS="mark",QS="frame",eE="scope",she="axis",lhe="axis-domain",uhe="axis-grid",che="axis-label",fhe="axis-tick",hhe="axis-title",dhe="legend",phe="legend-band",ghe="legend-entry",mhe="legend-gradient",qj="legend-label",vhe="legend-symbol",yhe="legend-title",xhe="title",bhe="title-text",_he="title-subtitle";function whe(t,n,e,o,f){const r={},a={};let u,c,i,s;c="lineBreak",n==="text"&&f[c]!=null&&!$g(c,t)&&A4(r,c,f[c]),(e=="legend"||String(e).startsWith("axis"))&&(e=null),s=e===QS?f.group:e===KS?pa({},f.mark,f[n]):null;for(c in s)i=$g(c,t)||(c==="fill"||c==="stroke")&&($g("fill",t)||$g("stroke",t)),i||A4(r,c,s[c]);ki(o).forEach(l=>{const d=f.style&&f.style[l];for(const h in d)$g(h,t)||A4(r,h,d[h])}),t=pa({},t);for(c in r)s=r[c],s.signal?(u=u||{})[c]=s:a[c]=s;return t.enter=pa(a,t.enter),u&&(t.update=pa(u,t.update)),t}function A4(t,n,e){t[n]=e&&e.signal?{signal:e.signal}:{value:e}}const Hj=t=>bi(t)?oi(t):t.signal?`(${t.signal})`:$j(t);function Hw(t){if(t.gradient!=null)return The(t);let n=t.signal?`(${t.signal})`:t.color?khe(t.color):t.field!=null?$j(t.field):t.value!==void 0?oi(t.value):void 0;return t.scale!=null&&(n=Ahe(t,n)),n===void 0&&(n=null),t.exponent!=null&&(n=`pow(${n},${r_(t.exponent)})`),t.mult!=null&&(n+=`*${r_(t.mult)}`),t.offset!=null&&(n+=`+${r_(t.offset)}`),t.round&&(n=`round(${n})`),n}const kb=(t,n,e,o)=>`(${t}(${[n,e,o].map(Hw).join(",")})+'')`;function khe(t){return t.c?kb("hcl",t.h,t.c,t.l):t.h||t.s?kb("hsl",t.h,t.s,t.l):t.l||t.a?kb("lab",t.l,t.a,t.b):t.r||t.g||t.b?kb("rgb",t.r,t.g,t.b):null}function The(t){const n=[t.start,t.stop,t.count].map(e=>e==null?null:oi(e));for(;n.length&&Na(n)==null;)n.pop();return n.unshift(Hj(t.gradient)),`gradient(${n.join(",")})`}function r_(t){return Ei(t)?"("+Hw(t)+")":t}function $j(t){return Gj(Ei(t)?t:{datum:t})}function Gj(t){let n,e,o;if(t.signal)n="datum",o=t.signal;else if(t.group||t.parent){for(e=Math.max(1,t.level||1),n="item";e-- >0;)n+=".mark.group";t.parent?(o=t.parent,n+=".datum"):o=t.group}else t.datum?(n="datum",o=t.datum):Pr("Invalid field reference: "+oi(t));return t.signal||(o=bi(o)?ih(o).map(oi).join("]["):Gj(o)),n+"["+o+"]"}function Ahe(t,n){const e=Hj(t.scale);return t.range!=null?n=`lerp(_range(${e}), ${+t.range})`:(n!==void 0&&(n=`_scale(${e}, ${n})`),t.band&&(n=(n?n+"+":"")+`_bandwidth(${e})`+(+t.band==1?"":"*"+r_(t.band)),t.extra&&(n=`(datum.extra ? _scale(${e}, datum.extra.value) : ${n})`)),n==null&&(n="0")),n}function Mhe(t){let n="";return t.forEach(e=>{const o=Hw(e);n+=e.test?`(${e.test})?${o}:`:o}),Na(n)===":"&&(n+="null"),n}function Wj(t,n,e,o,f,r){const a={};r=r||{},r.encoders={$encode:a},t=whe(t,n,e,o,f.config);for(const u in t)a[u]=She(t[u],n,r,f);return r}function She(t,n,e,o){const f={},r={};for(const a in t)t[a]!=null&&(f[a]=Che(Ehe(t[a]),o,e,r));return{$expr:{marktype:n,channels:f},$fields:Object.keys(r),$output:Object.keys(t)}}function Ehe(t){return Ir(t)?Mhe(t):Hw(t)}function Che(t,n,e,o){const f=Qf(t,n);return f.$fields.forEach(r=>o[r]=1),pa(e,f.$params),f.$expr}const Ohe="outer",Lhe=["value","update","init","react","bind"];function CL(t,n){Pr(t+' for "outer" push: '+oi(n))}function Yj(t,n){const e=t.name;if(t.push===Ohe)n.signals[e]||CL("No prior signal definition",e),Lhe.forEach(o=>{t[o]!==void 0&&CL("Invalid property ",o)});else{const o=n.addSignal(e,t.value);t.react===!1&&(o.react=!1),t.bind&&n.addBinding(e,t.bind)}}function CT(t,n,e,o){this.id=-1,this.type=t,this.value=n,this.params=e,o&&(this.parent=o)}function $w(t,n,e,o){return new CT(t,n,e,o)}function w2(t,n){return $w("operator",t,n)}function Hi(t){const n={$ref:t.id};return t.id<0&&(t.refs=t.refs||[]).push(n),n}function ly(t,n){return n?{$field:t,$name:n}:{$field:t}}const OT=ly("key");function OL(t,n){return{$compare:t,$order:n}}function Phe(t,n){const e={$key:t};return n&&(e.$flat=!0),e}const Dhe="ascending",Ihe="descending";function zhe(t){return Ei(t)?(t.order===Ihe?"-":"+")+Gw(t.op,t.field):""}function Gw(t,n){return(t&&t.signal?"$"+t.signal:t||"")+(t&&n?"_":"")+(n&&n.signal?"$"+n.signal:n||"")}const tE="scope",LT="view";function Ys(t){return t&&t.signal}function Rhe(t){return t&&t.expr}function i_(t){if(Ys(t))return!0;if(Ei(t)){for(const n in t)if(i_(t[n]))return!0}return!1}function Wc(t,n){return t??n}function m0(t){return t&&t.signal||t}const LL="timer";function uy(t,n){return(t.merge?Nhe:t.stream?Bhe:t.type?jhe:Pr("Invalid stream specification: "+oi(t)))(t,n)}function Fhe(t){return t===tE?LT:t||LT}function Nhe(t,n){const e=t.merge.map(f=>uy(f,n)),o=nE({merge:e},t,n);return n.addStream(o).id}function Bhe(t,n){const e=uy(t.stream,n),o=nE({stream:e},t,n);return n.addStream(o).id}function jhe(t,n){let e;t.type===LL?(e=n.event(LL,t.throttle),t={between:t.between,filter:t.filter}):e=n.event(Fhe(t.source),t.type);const o=nE({stream:e},t,n);return Object.keys(o).length===1?e:n.addStream(o).id}function nE(t,n,e){let o=n.between;return o&&(o.length!==2&&Pr('Stream "between" parameter must have 2 entries: '+oi(n)),t.between=[uy(o[0],e),uy(o[1],e)]),o=n.filter?[].concat(n.filter):[],(n.marktype||n.markname||n.markrole)&&o.push(Uhe(n.marktype,n.markname,n.markrole)),n.source===tE&&o.push("inScope(event.item)"),o.length&&(t.filter=Qf("("+o.join(")&&(")+")",e).$expr),(o=n.throttle)!=null&&(t.throttle=+o),(o=n.debounce)!=null&&(t.debounce=+o),n.consume&&(t.consume=!0),t}function Uhe(t,n,e){const o="event.item";return o+(t&&t!=="*"?"&&"+o+".mark.marktype==='"+t+"'":"")+(e?"&&"+o+".mark.role==='"+e+"'":"")+(n?"&&"+o+".mark.name==='"+n+"'":"")}const Vhe={code:"_.$value",ast:{type:"Identifier",value:"value"}};function qhe(t,n,e){const o=t.encode,f={target:e};let r=t.events,a=t.update,u=[];r||Pr("Signal update missing events specification."),bi(r)&&(r=pp(r,n.isSubscope()?tE:LT)),r=ki(r).filter(c=>c.signal||c.scale?(u.push(c),0):1),u.length>1&&(u=[$he(u)]),r.length&&u.push(r.length>1?{merge:r}:r[0]),o!=null&&(a&&Pr("Signal encode and update are mutually exclusive."),a="encode(item(),"+oi(o)+")"),f.update=bi(a)?Qf(a,n):a.expr!=null?Qf(a.expr,n):a.value!=null?a.value:a.signal!=null?{$expr:Vhe,$params:{$value:n.signalRef(a.signal)}}:Pr("Invalid signal update specification."),t.force&&(f.options={force:!0}),u.forEach(c=>n.addUpdate(pa(Hhe(c,n),f)))}function Hhe(t,n){return{source:t.signal?n.signalRef(t.signal):t.scale?n.scaleRef(t.scale):uy(t,n)}}function $he(t){return{signal:"["+t.map(n=>n.scale?'scale("'+n.scale+'")':n.signal)+"]"}}function Ghe(t,n){const e=n.getSignal(t.name);let o=t.update;t.init&&(o?Pr("Signals can not include both init and update expressions."):(o=t.init,e.initonly=!0)),o&&(o=Qf(o,n),e.update=o.$expr,e.params=o.$params),t.on&&t.on.forEach(f=>qhe(f,n,e.id))}const ko=t=>(n,e,o)=>$w(t,e,n||void 0,o),Xj=ko("aggregate"),Whe=ko("axisticks"),Zj=ko("bound"),mf=ko("collect"),PL=ko("compare"),Yhe=ko("datajoin"),Jj=ko("encode"),Xhe=ko("expression"),Zhe=ko("facet"),Jhe=ko("field"),Khe=ko("key"),Qhe=ko("legendentries"),ede=ko("load"),tde=ko("mark"),nde=ko("multiextent"),rde=ko("multivalues"),ide=ko("overlap"),ade=ko("params"),Kj=ko("prefacet"),ode=ko("projection"),sde=ko("proxy"),lde=ko("relay"),Qj=ko("render"),ude=ko("scale"),Y0=ko("sieve"),cde=ko("sortitems"),eU=ko("viewlayout"),fde=ko("values");let hde=0;const tU={min:"min",max:"max",count:"sum"};function dde(t,n){const e=t.type||"linear";JR(e)||Pr("Unrecognized scale type: "+oi(e)),n.addScale(t.name,{type:e,domain:void 0})}function pde(t,n){const e=n.getScale(t.name).params;let o;e.domain=nU(t.domain,t,n),t.range!=null&&(e.range=iU(t,n,e)),t.interpolate!=null&&Tde(t.interpolate,e),t.nice!=null&&(e.nice=kde(t.nice)),t.bins!=null&&(e.bins=wde(t.bins,n));for(o in t)qi(e,o)||o==="name"||(e[o]=hc(t[o],n))}function hc(t,n){return Ei(t)?t.signal?n.signalRef(t.signal):Pr("Unsupported object: "+oi(t)):t}function a_(t,n){return t.signal?n.signalRef(t.signal):t.map(e=>hc(e,n))}function Ww(t){Pr("Can not find data set: "+oi(t))}function nU(t,n,e){if(!t){(n.domainMin!=null||n.domainMax!=null)&&Pr("No scale domain defined for domainMin/domainMax to override.");return}return t.signal?e.signalRef(t.signal):(Ir(t)?gde:t.fields?vde:mde)(t,n,e)}function gde(t,n,e){return t.map(o=>hc(o,e))}function mde(t,n,e){const o=e.getData(t.data);return o||Ww(t.data),pm(n.type)?o.valuesRef(e,t.field,rU(t.sort,!1)):eF(n.type)?o.domainRef(e,t.field):o.extentRef(e,t.field)}function vde(t,n,e){const o=t.data,f=t.fields.reduce((r,a)=>(a=bi(a)?{data:o,field:a}:Ir(a)||a.signal?yde(a,e):a,r.push(a),r),[]);return(pm(n.type)?xde:eF(n.type)?bde:_de)(t,e,f)}function yde(t,n){const e="_:vega:_"+hde++,o=mf({});if(Ir(t))o.value={$ingest:t};else if(t.signal){const f="setdata("+oi(e)+","+t.signal+")";o.params.input=n.signalRef(f)}return n.addDataPipeline(e,[o,Y0({})]),{data:e,field:"data"}}function xde(t,n,e){const o=rU(t.sort,!0);let f,r;const a=e.map(i=>{const s=n.getData(i.data);return s||Ww(i.data),s.countsRef(n,i.field,o)}),u={groupby:OT,pulse:a};o&&(f=o.op||"count",r=o.field?Gw(f,o.field):"count",u.ops=[tU[f]],u.fields=[n.fieldRef(r)],u.as=[r]),f=n.add(Xj(u));const c=n.add(mf({pulse:Hi(f)}));return r=n.add(fde({field:OT,sort:n.sortRef(o),pulse:Hi(c)})),Hi(r)}function rU(t,n){return t&&(!t.field&&!t.op?Ei(t)?t.field="key":t={field:"key"}:!t.field&&t.op!=="count"?Pr("No field provided for sort aggregate op: "+t.op):n&&t.field&&t.op&&!tU[t.op]&&Pr("Multiple domain scales can not be sorted using "+t.op)),t}function bde(t,n,e){const o=e.map(f=>{const r=n.getData(f.data);return r||Ww(f.data),r.domainRef(n,f.field)});return Hi(n.add(rde({values:o})))}function _de(t,n,e){const o=e.map(f=>{const r=n.getData(f.data);return r||Ww(f.data),r.extentRef(n,f.field)});return Hi(n.add(nde({extents:o})))}function wde(t,n){return t.signal||Ir(t)?a_(t,n):n.objectProperty(t)}function kde(t){return Ei(t)?{interval:hc(t.interval),step:hc(t.step)}:hc(t)}function Tde(t,n){n.interpolate=hc(t.type||t),t.gamma!=null&&(n.interpolateGamma=hc(t.gamma))}function iU(t,n,e){const o=n.config.range;let f=t.range;if(f.signal)return n.signalRef(f.signal);if(bi(f)){if(o&&qi(o,f))return t=pa({},t,{range:o[f]}),iU(t,n,e);f==="width"?f=[0,{signal:"width"}]:f==="height"?f=pm(t.type)?[0,{signal:"height"}]:[{signal:"height"},0]:Pr("Unrecognized scale range value: "+oi(f))}else if(f.scheme){e.scheme=Ir(f.scheme)?a_(f.scheme,n):hc(f.scheme,n),f.extent&&(e.schemeExtent=a_(f.extent,n)),f.count&&(e.schemeCount=hc(f.count,n));return}else if(f.step){e.rangeStep=hc(f.step,n);return}else{if(pm(t.type)&&!Ir(f))return nU(f,t,n);Ir(f)||Pr("Unsupported range type: "+oi(f))}return f.map(r=>(Ir(r)?a_:hc)(r,n))}function Ade(t,n){const e=n.config.projection||{},o={};for(const f in t)f!=="name"&&(o[f]=PT(t[f],f,n));for(const f in e)o[f]==null&&(o[f]=PT(e[f],f,n));n.addProjection(t.name,o)}function PT(t,n,e){return Ir(t)?t.map(o=>PT(o,n,e)):Ei(t)?t.signal?e.signalRef(t.signal):n==="fit"?t:Pr("Unsupported parameter object: "+oi(t)):t}const vf="top",Km="left",Qm="right",np="bottom",aU="center",Mde="vertical",Sde="start",Ede="middle",Cde="end",DT="index",rE="label",Ode="offset",Tm="perc",Lde="perc2",pc="value",Jy="guide-label",iE="guide-title",Pde="group-title",Dde="group-subtitle",DL="symbol",o_="gradient",IT="discrete",zT="size",Ide="shape",zde="fill",Rde="stroke",Fde="strokeWidth",Nde="strokeDash",Bde="opacity",aE=[zT,Ide,zde,Rde,Fde,Nde,Bde],Ky={name:1,style:1,interactive:1},Ua={value:0},gc={value:1},Yw="group",oU="rect",oE="rule",jde="symbol",X0="text";function cy(t){return t.type=Yw,t.interactive=t.interactive||!1,t}function Bu(t,n){const e=(o,f)=>Wc(t[o],Wc(n[o],f));return e.isVertical=o=>Mde===Wc(t.direction,n.direction||(o?n.symbolDirection:n.gradientDirection)),e.gradientLength=()=>Wc(t.gradientLength,n.gradientLength||n.gradientWidth),e.gradientThickness=()=>Wc(t.gradientThickness,n.gradientThickness||n.gradientHeight),e.entryColumns=()=>Wc(t.columns,Wc(n.columns,+e.isVertical(!0))),e}function sU(t,n){const e=n&&(n.update&&n.update[t]||n.enter&&n.enter[t]);return e&&e.signal?e:e?e.value:null}function Ude(t,n,e){const o=n.config.style[e];return o&&o[t]}function Xw(t,n,e){return`item.anchor === '${Sde}' ? ${t} : item.anchor === '${Cde}' ? ${n} : ${e}`}const sE=Xw(oi(Km),oi(Qm),oi(aU));function Vde(t){const n=t("tickBand");let e=t("tickOffset"),o,f;return n?n.signal?(o={signal:`(${n.signal}) === 'extent' ? 1 : 0.5`},f={signal:`(${n.signal}) === 'extent'`},Ei(e)||(e={signal:`(${n.signal}) === 'extent' ? 0 : ${e}`})):n==="extent"?(o=1,f=!0,e=0):(o=.5,f=!1):(o=t("bandPosition"),f=t("tickExtra")),{extra:f,band:o,offset:e}}function lU(t,n){return n?t?Ei(t)?Object.assign({},t,{offset:lU(t.offset,n)}):{value:t,offset:n}:n:t}function nc(t,n){return n?(t.name=n.name,t.style=n.style||t.style,t.interactive=!!n.interactive,t.encode=Jm(t.encode,n,Ky)):t.interactive=!1,t}function qde(t,n,e,o){const f=Bu(t,e),r=f.isVertical(),a=f.gradientThickness(),u=f.gradientLength();let c,i,s,l,d;r?(i=[0,1],s=[0,0],l=a,d=u):(i=[0,0],s=[1,0],l=u,d=a);const h={enter:c={opacity:Ua,x:Ua,y:Ua,width:il(l),height:il(d)},update:pa({},c,{opacity:gc,fill:{gradient:n,start:i,stop:s}}),exit:{opacity:Ua}};return kl(h,{stroke:f("gradientStrokeColor"),strokeWidth:f("gradientStrokeWidth")},{opacity:f("gradientOpacity")}),nc({type:oU,role:mhe,encode:h},o)}function Hde(t,n,e,o,f){const r=Bu(t,e),a=r.isVertical(),u=r.gradientThickness(),c=r.gradientLength();let i,s,l,d,h="";a?(i="y",l="y2",s="x",d="width",h="1-"):(i="x",l="x2",s="y",d="height");const m={opacity:Ua,fill:{scale:n,field:pc}};m[i]={signal:h+"datum."+Tm,mult:c},m[s]=Ua,m[l]={signal:h+"datum."+Lde,mult:c},m[d]=il(u);const g={enter:m,update:pa({},m,{opacity:gc}),exit:{opacity:Ua}};return kl(g,{stroke:r("gradientStrokeColor"),strokeWidth:r("gradientStrokeWidth")},{opacity:r("gradientOpacity")}),nc({type:oU,role:phe,key:pc,from:f,encode:g},o)}const $de=`datum.${Tm}<=0?"${Km}":datum.${Tm}>=1?"${Qm}":"${aU}"`,Gde=`datum.${Tm}<=0?"${np}":datum.${Tm}>=1?"${vf}":"${Ede}"`;function IL(t,n,e,o){const f=Bu(t,n),r=f.isVertical(),a=il(f.gradientThickness()),u=f.gradientLength();let c=f("labelOverlap"),i,s,l,d,h="";const m={enter:i={opacity:Ua},update:s={opacity:gc,text:{field:rE}},exit:{opacity:Ua}};return kl(m,{fill:f("labelColor"),fillOpacity:f("labelOpacity"),font:f("labelFont"),fontSize:f("labelFontSize"),fontStyle:f("labelFontStyle"),fontWeight:f("labelFontWeight"),limit:Wc(t.labelLimit,n.gradientLabelLimit)}),r?(i.align={value:"left"},i.baseline=s.baseline={signal:Gde},l="y",d="x",h="1-"):(i.align=s.align={signal:$de},i.baseline={value:"top"},l="x",d="y"),i[l]=s[l]={signal:h+"datum."+Tm,mult:u},i[d]=s[d]=a,a.offset=Wc(t.labelOffset,n.gradientLabelOffset)||0,c=c?{separation:f("labelSeparation"),method:c,order:"datum."+DT}:void 0,nc({type:X0,role:qj,style:Jy,key:pc,from:o,encode:m,overlap:c},e)}function Wde(t,n,e,o,f){const r=Bu(t,n),a=e.entries,u=!!(a&&a.interactive),c=a?a.name:void 0,i=r("clipHeight"),s=r("symbolOffset"),l={data:"value"},d=`(${f}) ? datum.${Ode} : datum.${zT}`,h=i?il(i):{field:zT},m=`datum.${DT}`,g=`max(1, ${f})`;let p,v,y,x,w;h.mult=.5,p={enter:v={opacity:Ua,x:{signal:d,mult:.5,offset:s},y:h},update:y={opacity:gc,x:v.x,y:v.y},exit:{opacity:Ua}};let k=null,b=null;t.fill||(k=n.symbolBaseFillColor,b=n.symbolBaseStrokeColor),kl(p,{fill:r("symbolFillColor",k),shape:r("symbolType"),size:r("symbolSize"),stroke:r("symbolStrokeColor",b),strokeDash:r("symbolDash"),strokeDashOffset:r("symbolDashOffset"),strokeWidth:r("symbolStrokeWidth")},{opacity:r("symbolOpacity")}),aE.forEach(A=>{t[A]&&(y[A]=v[A]={scale:t[A],field:pc})});const T=nc({type:jde,role:vhe,key:pc,from:l,clip:i?!0:void 0,encode:p},e.symbols),_=il(s);_.offset=r("labelOffset"),p={enter:v={opacity:Ua,x:{signal:d,offset:_},y:h},update:y={opacity:gc,text:{field:rE},x:v.x,y:v.y},exit:{opacity:Ua}},kl(p,{align:r("labelAlign"),baseline:r("labelBaseline"),fill:r("labelColor"),fillOpacity:r("labelOpacity"),font:r("labelFont"),fontSize:r("labelFontSize"),fontStyle:r("labelFontStyle"),fontWeight:r("labelFontWeight"),limit:r("labelLimit")});const M=nc({type:X0,role:qj,style:Jy,key:pc,from:l,encode:p},e.labels);return p={enter:{noBound:{value:!i},width:Ua,height:i?il(i):Ua,opacity:Ua},exit:{opacity:Ua},update:y={opacity:gc,row:{signal:null},column:{signal:null}}},r.isVertical(!0)?(x=`ceil(item.mark.items.length / ${g})`,y.row.signal=`${m}%${x}`,y.column.signal=`floor(${m} / ${x})`,w={field:["row",m]}):(y.row.signal=`floor(${m} / ${g})`,y.column.signal=`${m} % ${g}`,w={field:m}),y.column.signal=`(${f})?${y.column.signal}:${m}`,o={facet:{data:o,name:"value",groupby:DT}},cy({role:eE,from:o,encode:Jm(p,a,Ky),marks:[T,M],name:c,interactive:u,sort:w})}function Yde(t,n){const e=Bu(t,n);return{align:e("gridAlign"),columns:e.entryColumns(),center:{row:!0,column:!1},padding:{row:e("rowPadding"),column:e("columnPadding")}}}const lE='item.orient === "left"',uE='item.orient === "right"',Zw=`(${lE} || ${uE})`,Xde=`datum.vgrad && ${Zw}`,Zde=Xw('"top"','"bottom"','"middle"'),Jde=Xw('"right"','"left"','"center"'),Kde=`datum.vgrad && ${uE} ? (${Jde}) : (${Zw} && !(datum.vgrad && ${lE})) ? "left" : ${sE}`,Qde=`item._anchor || (${Zw} ? "middle" : "start")`,epe=`${Xde} ? (${lE} ? -90 : 90) : 0`,tpe=`${Zw} ? (datum.vgrad ? (${uE} ? "bottom" : "top") : ${Zde}) : "top"`;function npe(t,n,e,o){const f=Bu(t,n),r={enter:{opacity:Ua},update:{opacity:gc,x:{field:{group:"padding"}},y:{field:{group:"padding"}}},exit:{opacity:Ua}};return kl(r,{orient:f("titleOrient"),_anchor:f("titleAnchor"),anchor:{signal:Qde},angle:{signal:epe},align:{signal:Kde},baseline:{signal:tpe},text:t.title,fill:f("titleColor"),fillOpacity:f("titleOpacity"),font:f("titleFont"),fontSize:f("titleFontSize"),fontStyle:f("titleFontStyle"),fontWeight:f("titleFontWeight"),limit:f("titleLimit"),lineHeight:f("titleLineHeight")},{align:f("titleAlign"),baseline:f("titleBaseline")}),nc({type:X0,role:yhe,style:iE,from:o,encode:r},e)}function rpe(t,n){let e;return Ei(t)&&(t.signal?e=t.signal:t.path?e="pathShape("+zL(t.path)+")":t.sphere&&(e="geoShape("+zL(t.sphere)+', {type: "Sphere"})')),e?n.signalRef(e):!!t}function zL(t){return Ei(t)&&t.signal?t.signal:oi(t)}function uU(t){const n=t.role||"";return!n.indexOf("axis")||!n.indexOf("legend")||!n.indexOf("title")?n:t.type===Yw?eE:n||KS}function ipe(t){return{marktype:t.type,name:t.name||void 0,role:t.role||uU(t),zindex:+t.zindex||void 0,aria:t.aria,description:t.description}}function ape(t,n){return t&&t.signal?n.signalRef(t.signal):t!==!1}function cE(t,n){const e=_z(t.type);e||Pr("Unrecognized transform type: "+oi(t.type));const o=$w(e.type.toLowerCase(),null,cU(e,t,n));return t.signal&&n.addSignal(t.signal,n.proxy(o)),o.metadata=e.metadata||{},o}function cU(t,n,e){const o={},f=t.params.length;for(let r=0;rRL(t,r,e)):RL(t,f,e)}function RL(t,n,e){const o=t.type;if(Ys(n))return NL(o)?Pr("Expression references can not be signals."):M4(o)?e.fieldRef(n):BL(o)?e.compareRef(n):e.signalRef(n.signal);{const f=t.expr||M4(o);return f&&upe(n)?e.exprRef(n.expr,n.as):f&&cpe(n)?ly(n.field,n.as):NL(o)?Qf(n,e):fpe(o)?Hi(e.getData(n).values):M4(o)?ly(n):BL(o)?e.compareRef(n):n}}function spe(t,n,e){return bi(n.from)||Pr('Lookup "from" parameter must be a string literal.'),e.getData(n.from).lookupRef(e,n.key)}function lpe(t,n,e){const o=n[t.name];return t.array?(Ir(o)||Pr("Expected an array of sub-parameters. Instead: "+oi(o)),o.map(f=>FL(t,f,e))):FL(t,o,e)}function FL(t,n,e){const o=t.params.length;let f;for(let a=0;at&&t.expr,cpe=t=>t&&t.field,fpe=t=>t==="data",NL=t=>t==="expr",M4=t=>t==="field",BL=t=>t==="compare";function hpe(t,n,e){let o,f,r,a,u;return t?(o=t.facet)&&(n||Pr("Only group marks can be faceted."),o.field!=null?a=u=s_(o,e):(t.data?u=Hi(e.getData(t.data).aggregate):(r=cE(pa({type:"aggregate",groupby:ki(o.groupby)},o.aggregate),e),r.params.key=e.keyRef(o.groupby),r.params.pulse=s_(o,e),a=u=Hi(e.add(r))),f=e.keyRef(o.groupby,!0))):a=Hi(e.add(mf(null,[{}]))),a||(a=s_(t,e)),{key:f,pulse:a,parent:u}}function s_(t,n){return t.$ref?t:t.data&&t.data.$ref?t.data:Hi(n.getData(t.data).output)}function O0(t,n,e,o,f){this.scope=t,this.input=n,this.output=e,this.values=o,this.aggregate=f,this.index={}}O0.fromEntries=function(t,n){const e=n.length,o=n[e-1],f=n[e-2];let r=n[0],a=null,u=1;for(r&&r.type==="load"&&(r=n[1]),t.add(n[0]);ul??"null").join(",")+"),0)",s=Qf(i,n);c.update=s.$expr,c.params=s.$params}function Jw(t,n){const e=uU(t),o=t.type===Yw,f=t.from&&t.from.facet,r=t.overlap;let a=t.layout||e===eE||e===QS,u,c,i,s,l,d,h;const m=e===KS||a||f,g=hpe(t.from,o,n);c=n.add(Yhe({key:g.key||(t.key?ly(t.key):void 0),pulse:g.pulse,clean:!o}));const p=Hi(c);c=i=n.add(mf({pulse:p})),c=n.add(tde({markdef:ipe(t),interactive:ape(t.interactive,n),clip:rpe(t.clip,n),context:{$context:!0},groups:n.lookup(),parent:n.signals.parent?n.signalRef("parent"):null,index:n.markpath(),pulse:Hi(c)}));const v=Hi(c);c=s=n.add(Jj(Wj(t.encode,t.type,e,t.style,n,{mod:!1,pulse:v}))),c.params.parent=n.encode(),t.transform&&t.transform.forEach(b=>{const T=cE(b,n),_=T.metadata;(_.generates||_.changes)&&Pr("Mark transforms should not generate new data."),_.nomod||(s.params.mod=!0),T.params.pulse=Hi(c),n.add(c=T)}),t.sort&&(c=n.add(cde({sort:n.compareRef(t.sort),pulse:Hi(c)})));const y=Hi(c);(f||a)&&(a=n.add(eU({layout:n.objectProperty(t.layout),legends:n.legends,mark:v,pulse:y})),d=Hi(a));const x=n.add(Zj({mark:v,pulse:d||y}));h=Hi(x),o&&(m&&(u=n.operators,u.pop(),a&&u.pop()),n.pushState(y,d||h,p),f?dpe(t,n,g):m?ppe(t,n,g):n.parse(t),n.popState(),m&&(a&&u.push(a),u.push(x))),r&&(h=gpe(r,h,n));const w=n.add(Qj({pulse:h})),k=n.add(Y0({pulse:Hi(w)},void 0,n.parent()));t.name!=null&&(l=t.name,n.addData(l,new O0(n,i,w,k)),t.on&&t.on.forEach(b=>{(b.insert||b.remove||b.toggle)&&Pr("Marks only support modify triggers."),hU(b,n,l)}))}function gpe(t,n,e){const o=t.method,f=t.bound,r=t.separation,a={separation:Ys(r)?e.signalRef(r.signal):r,method:Ys(o)?e.signalRef(o.signal):o,pulse:n};if(t.order&&(a.sort=e.compareRef({field:t.order})),f){const u=f.tolerance;a.boundTolerance=Ys(u)?e.signalRef(u.signal):+u,a.boundScale=e.scaleRef(f.scale),a.boundOrient=f.orient}return Hi(e.add(ide(a)))}function mpe(t,n){const e=n.config.legend,o=t.encode||{},f=Bu(t,e),r=o.legend||{},a=r.name||void 0,u=r.interactive,c=r.style,i={};let s=0,l,d,h;aE.forEach(x=>t[x]?(i[x]=t[x],s=s||t[x]):0),s||Pr("Missing valid scale for legend.");const m=vpe(t,n.scaleType(s)),g={title:t.title!=null,scales:i,type:m,vgrad:m!=="symbol"&&f.isVertical()},p=Hi(n.add(mf(null,[g]))),v={enter:{x:{value:0},y:{value:0}}},y=Hi(n.add(Qhe(d={type:m,scale:n.scaleRef(s),count:n.objectProperty(f("tickCount")),limit:n.property(f("symbolLimit")),values:n.objectProperty(t.values),minstep:n.property(t.tickMinStep),formatType:n.property(t.formatType),formatSpecifier:n.property(t.format)})));return m===o_?(h=[qde(t,s,e,o.gradient),IL(t,e,o.labels,y)],d.count=d.count||n.signalRef(`max(2,2*floor((${m0(f.gradientLength())})/100))`)):m===IT?h=[Hde(t,s,e,o.gradient,y),IL(t,e,o.labels,y)]:(l=Yde(t,e),h=[Wde(t,e,o,y,m0(l.columns))],d.size=bpe(t,n,h[0].marks)),h=[cy({role:ghe,from:p,encode:v,marks:h,layout:l,interactive:u})],g.title&&h.push(npe(t,e,o.title,p)),Jw(cy({role:dhe,from:p,encode:Jm(xpe(f,t,e),r,Ky),marks:h,aria:f("aria"),description:f("description"),zindex:f("zindex"),name:a,interactive:u,style:c}),n)}function vpe(t,n){let e=t.type||DL;return!t.type&&ype(t)===1&&(t.fill||t.stroke)&&(e=oM(n)?o_:Mk(n)?IT:DL),e!==o_?e:Mk(n)?IT:o_}function ype(t){return aE.reduce((n,e)=>n+(t[e]?1:0),0)}function xpe(t,n,e){const o={enter:{},update:{}};return kl(o,{orient:t("orient"),offset:t("offset"),padding:t("padding"),titlePadding:t("titlePadding"),cornerRadius:t("cornerRadius"),fill:t("fillColor"),stroke:t("strokeColor"),strokeWidth:e.strokeWidth,strokeDash:e.strokeDash,x:t("legendX"),y:t("legendY"),format:n.format,formatType:n.formatType}),o}function bpe(t,n,e){const o=m0(UL("size",t,e)),f=m0(UL("strokeWidth",t,e)),r=m0(_pe(e[1].encode,n,Jy));return Qf(`max(ceil(sqrt(${o})+${f}),${r})`,n)}function UL(t,n,e){return n[t]?`scale("${n[t]}",datum)`:sU(t,e[0].encode)}function _pe(t,n,e){return sU("fontSize",t)||Ude("fontSize",n,e)}const wpe=`item.orient==="${Km}"?-90:item.orient==="${Qm}"?90:0`;function kpe(t,n){t=bi(t)?{text:t}:t;const e=Bu(t,n.config.title),o=t.encode||{},f=o.group||{},r=f.name||void 0,a=f.interactive,u=f.style,c=[],i={},s=Hi(n.add(mf(null,[i])));return c.push(Mpe(t,e,Tpe(t),s)),t.subtitle&&c.push(Spe(t,e,o.subtitle,s)),Jw(cy({role:xhe,from:s,encode:Ape(e,f),marks:c,aria:e("aria"),description:e("description"),zindex:e("zindex"),name:r,interactive:a,style:u}),n)}function Tpe(t){const n=t.encode;return n&&n.title||pa({name:t.name,interactive:t.interactive,style:t.style},n)}function Ape(t,n){const e={enter:{},update:{}};return kl(e,{orient:t("orient"),anchor:t("anchor"),align:{signal:sE},angle:{signal:wpe},limit:t("limit"),frame:t("frame"),offset:t("offset")||0,padding:t("subtitlePadding")}),Jm(e,n,Ky)}function Mpe(t,n,e,o){const f={value:0},r=t.text,a={enter:{opacity:f},update:{opacity:{value:1}},exit:{opacity:f}};return kl(a,{text:r,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:n("dx"),dy:n("dy"),fill:n("color"),font:n("font"),fontSize:n("fontSize"),fontStyle:n("fontStyle"),fontWeight:n("fontWeight"),lineHeight:n("lineHeight")},{align:n("align"),angle:n("angle"),baseline:n("baseline")}),nc({type:X0,role:bhe,style:Pde,from:o,encode:a},e)}function Spe(t,n,e,o){const f={value:0},r=t.subtitle,a={enter:{opacity:f},update:{opacity:{value:1}},exit:{opacity:f}};return kl(a,{text:r,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:n("dx"),dy:n("dy"),fill:n("subtitleColor"),font:n("subtitleFont"),fontSize:n("subtitleFontSize"),fontStyle:n("subtitleFontStyle"),fontWeight:n("subtitleFontWeight"),lineHeight:n("subtitleLineHeight")},{align:n("align"),angle:n("angle"),baseline:n("baseline")}),nc({type:X0,role:_he,style:Dde,from:o,encode:a},e)}function Epe(t,n){const e=[];t.transform&&t.transform.forEach(o=>{e.push(cE(o,n))}),t.on&&t.on.forEach(o=>{hU(o,n,t.name)}),n.addDataPipeline(t.name,Cpe(t,n,e))}function Cpe(t,n,e){const o=[];let f=null,r=!1,a=!1,u,c,i,s,l;for(t.values?Ys(t.values)||i_(t.format)?(o.push(VL(n,t)),o.push(f=jp())):o.push(f=jp({$ingest:t.values,$format:t.format})):t.url?i_(t.url)||i_(t.format)?(o.push(VL(n,t)),o.push(f=jp())):o.push(f=jp({$request:t.url,$format:t.format})):t.source&&(f=u=ki(t.source).map(d=>Hi(n.getData(d).output)),o.push(null)),c=0,i=e.length;ct===np||t===vf,Kw=(t,n,e)=>Ys(t)?Dpe(t.signal,n,e):t===Km||t===vf?n:e,al=(t,n,e)=>Ys(t)?Lpe(t.signal,n,e):dU(t)?n:e,of=(t,n,e)=>Ys(t)?Ppe(t.signal,n,e):dU(t)?e:n,pU=(t,n,e)=>Ys(t)?Ipe(t.signal,n,e):t===vf?{value:n}:{value:e},Ope=(t,n,e)=>Ys(t)?zpe(t.signal,n,e):t===Qm?{value:n}:{value:e},Lpe=(t,n,e)=>gU(`${t} === '${vf}' || ${t} === '${np}'`,n,e),Ppe=(t,n,e)=>gU(`${t} !== '${vf}' && ${t} !== '${np}'`,n,e),Dpe=(t,n,e)=>fE(`${t} === '${Km}' || ${t} === '${vf}'`,n,e),Ipe=(t,n,e)=>fE(`${t} === '${vf}'`,n,e),zpe=(t,n,e)=>fE(`${t} === '${Qm}'`,n,e),gU=(t,n,e)=>(n=n!=null?il(n):n,e=e!=null?il(e):e,qL(n)&&qL(e)?(n=n?n.signal||oi(n.value):null,e=e?e.signal||oi(e.value):null,{signal:`${t} ? (${n}) : (${e})`}):[pa({test:t},n)].concat(e||[])),qL=t=>t==null||Object.keys(t).length===1,fE=(t,n,e)=>({signal:`${t} ? (${Kg(n)}) : (${Kg(e)})`}),Rpe=(t,n,e,o,f)=>({signal:(o!=null?`${t} === '${Km}' ? (${Kg(o)}) : `:"")+(e!=null?`${t} === '${np}' ? (${Kg(e)}) : `:"")+(f!=null?`${t} === '${Qm}' ? (${Kg(f)}) : `:"")+(n!=null?`${t} === '${vf}' ? (${Kg(n)}) : `:"")+"(null)"}),Kg=t=>Ys(t)?t.signal:t==null?null:oi(t),Fpe=(t,n)=>n===0?0:Ys(t)?{signal:`(${t.signal}) * ${n}`}:{value:t*n},nm=(t,n)=>{const e=t.signal;return e&&e.endsWith("(null)")?{signal:e.slice(0,-6)+n.signal}:t};function Ng(t,n,e,o){let f;if(n&&qi(n,t))return n[t];if(qi(e,t))return e[t];if(t.startsWith("title")){switch(t){case"titleColor":f="fill";break;case"titleFont":case"titleFontSize":case"titleFontWeight":f=t[5].toLowerCase()+t.slice(6)}return o[iE][f]}else if(t.startsWith("label")){switch(t){case"labelColor":f="fill";break;case"labelFont":case"labelFontSize":f=t[5].toLowerCase()+t.slice(6)}return o[Jy][f]}return null}function HL(t){const n={};for(const e of t)if(!!e)for(const o in e)n[o]=1;return Object.keys(n)}function Npe(t,n){var e=n.config,o=e.style,f=e.axis,r=n.scaleType(t.scale)==="band"&&e.axisBand,a=t.orient,u,c,i;if(Ys(a)){const l=HL([e.axisX,e.axisY]),d=HL([e.axisTop,e.axisBottom,e.axisLeft,e.axisRight]);u={};for(i of l)u[i]=al(a,Ng(i,e.axisX,f,o),Ng(i,e.axisY,f,o));c={};for(i of d)c[i]=Rpe(a.signal,Ng(i,e.axisTop,f,o),Ng(i,e.axisBottom,f,o),Ng(i,e.axisLeft,f,o),Ng(i,e.axisRight,f,o))}else u=a===vf||a===np?e.axisX:e.axisY,c=e["axis"+a[0].toUpperCase()+a.slice(1)];return u||c||r?pa({},f,u,c,r):f}function Bpe(t,n,e,o){const f=Bu(t,n),r=t.orient;let a,u;const c={enter:a={opacity:Ua},update:u={opacity:gc},exit:{opacity:Ua}};kl(c,{stroke:f("domainColor"),strokeCap:f("domainCap"),strokeDash:f("domainDash"),strokeDashOffset:f("domainDashOffset"),strokeWidth:f("domainWidth"),strokeOpacity:f("domainOpacity")});const i=$L(t,0),s=$L(t,1);return a.x=u.x=al(r,i,Ua),a.x2=u.x2=al(r,s),a.y=u.y=of(r,i,Ua),a.y2=u.y2=of(r,s),nc({type:oE,role:lhe,from:o,encode:c},e)}function $L(t,n){return{scale:t.scale,range:n}}function jpe(t,n,e,o,f){const r=Bu(t,n),a=t.orient,u=t.gridScale,c=Kw(a,1,-1),i=Upe(t.offset,c);let s,l,d;const h={enter:s={opacity:Ua},update:d={opacity:gc},exit:l={opacity:Ua}};kl(h,{stroke:r("gridColor"),strokeCap:r("gridCap"),strokeDash:r("gridDash"),strokeDashOffset:r("gridDashOffset"),strokeOpacity:r("gridOpacity"),strokeWidth:r("gridWidth")});const m={scale:t.scale,field:pc,band:f.band,extra:f.extra,offset:f.offset,round:r("tickRound")},g=al(a,{signal:"height"},{signal:"width"}),p=u?{scale:u,range:0,mult:c,offset:i}:{value:0,offset:i},v=u?{scale:u,range:1,mult:c,offset:i}:pa(g,{mult:c,offset:i});return s.x=d.x=al(a,m,p),s.y=d.y=of(a,m,p),s.x2=d.x2=of(a,v),s.y2=d.y2=al(a,v),l.x=al(a,m),l.y=of(a,m),nc({type:oE,role:uhe,key:pc,from:o,encode:h},e)}function Upe(t,n){if(n!==1)if(!Ei(t))t=Ys(n)?{signal:`(${n.signal}) * (${t||0})`}:n*(t||0);else{let e=t=pa({},t);for(;e.mult!=null;)if(Ei(e.mult))e=e.mult=pa({},e.mult);else return e.mult=Ys(n)?{signal:`(${e.mult}) * (${n.signal})`}:e.mult*n,t;e.mult=n}return t}function Vpe(t,n,e,o,f,r){const a=Bu(t,n),u=t.orient,c=Kw(u,-1,1);let i,s,l;const d={enter:i={opacity:Ua},update:l={opacity:gc},exit:s={opacity:Ua}};kl(d,{stroke:a("tickColor"),strokeCap:a("tickCap"),strokeDash:a("tickDash"),strokeDashOffset:a("tickDashOffset"),strokeOpacity:a("tickOpacity"),strokeWidth:a("tickWidth")});const h=il(f);h.mult=c;const m={scale:t.scale,field:pc,band:r.band,extra:r.extra,offset:r.offset,round:a("tickRound")};return l.y=i.y=al(u,Ua,m),l.y2=i.y2=al(u,h),s.x=al(u,m),l.x=i.x=of(u,Ua,m),l.x2=i.x2=of(u,h),s.y=of(u,m),nc({type:oE,role:fhe,key:pc,from:o,encode:d},e)}function S4(t,n,e,o,f){return{signal:'flush(range("'+t+'"), scale("'+t+'", datum.value), '+n+","+e+","+o+","+f+")"}}function qpe(t,n,e,o,f,r){const a=Bu(t,n),u=t.orient,c=t.scale,i=Kw(u,-1,1),s=m0(a("labelFlush")),l=m0(a("labelFlushOffset")),d=a("labelAlign"),h=a("labelBaseline");let m=s===0||!!s,g;const p=il(f);p.mult=i,p.offset=il(a("labelPadding")||0),p.offset.mult=i;const v={scale:c,field:pc,band:.5,offset:lU(r.offset,a("labelOffset"))},y=al(u,m?S4(c,s,'"left"','"right"','"center"'):{value:"center"},Ope(u,"left","right")),x=al(u,pU(u,"bottom","top"),m?S4(c,s,'"top"','"bottom"','"middle"'):{value:"middle"}),w=S4(c,s,`-(${l})`,l,0);m=m&&l;const k={opacity:Ua,x:al(u,v,p),y:of(u,v,p)},b={enter:k,update:g={opacity:gc,text:{field:rE},x:k.x,y:k.y,align:y,baseline:x},exit:{opacity:Ua,x:k.x,y:k.y}};kl(b,{dx:!d&&m?al(u,w):null,dy:!h&&m?of(u,w):null}),kl(b,{angle:a("labelAngle"),fill:a("labelColor"),fillOpacity:a("labelOpacity"),font:a("labelFont"),fontSize:a("labelFontSize"),fontWeight:a("labelFontWeight"),fontStyle:a("labelFontStyle"),limit:a("labelLimit"),lineHeight:a("labelLineHeight")},{align:d,baseline:h});const T=a("labelBound");let _=a("labelOverlap");return _=_||T?{separation:a("labelSeparation"),method:_,order:"datum.index",bound:T?{scale:c,orient:u,tolerance:T}:null}:void 0,g.align!==y&&(g.align=nm(g.align,y)),g.baseline!==x&&(g.baseline=nm(g.baseline,x)),nc({type:X0,role:che,style:Jy,key:pc,from:o,encode:b,overlap:_},e)}function Hpe(t,n,e,o){const f=Bu(t,n),r=t.orient,a=Kw(r,-1,1);let u,c;const i={enter:u={opacity:Ua,anchor:il(f("titleAnchor",null)),align:{signal:sE}},update:c=pa({},u,{opacity:gc,text:il(t.title)}),exit:{opacity:Ua}},s={signal:`lerp(range("${t.scale}"), ${Xw(0,1,.5)})`};return c.x=al(r,s),c.y=of(r,s),u.angle=al(r,Ua,Fpe(a,90)),u.baseline=al(r,pU(r,np,vf),{value:np}),c.angle=u.angle,c.baseline=u.baseline,kl(i,{fill:f("titleColor"),fillOpacity:f("titleOpacity"),font:f("titleFont"),fontSize:f("titleFontSize"),fontStyle:f("titleFontStyle"),fontWeight:f("titleFontWeight"),limit:f("titleLimit"),lineHeight:f("titleLineHeight")},{align:f("titleAlign"),angle:f("titleAngle"),baseline:f("titleBaseline")}),$pe(f,r,i,e),i.update.align=nm(i.update.align,u.align),i.update.angle=nm(i.update.angle,u.angle),i.update.baseline=nm(i.update.baseline,u.baseline),nc({type:X0,role:hhe,style:iE,from:o,encode:i},e)}function $pe(t,n,e,o){const f=(u,c)=>u!=null?(e.update[c]=nm(il(u),e.update[c]),!1):!$g(c,o),r=f(t("titleX"),"x"),a=f(t("titleY"),"y");e.enter.auto=a===r?il(a):al(n,il(a),il(r))}function Gpe(t,n){const e=Npe(t,n),o=t.encode||{},f=o.axis||{},r=f.name||void 0,a=f.interactive,u=f.style,c=Bu(t,e),i=Vde(c),s={scale:t.scale,ticks:!!c("ticks"),labels:!!c("labels"),grid:!!c("grid"),domain:!!c("domain"),title:t.title!=null},l=Hi(n.add(mf({},[s]))),d=Hi(n.add(Whe({scale:n.scaleRef(t.scale),extra:n.property(i.extra),count:n.objectProperty(t.tickCount),values:n.objectProperty(t.values),minstep:n.property(t.tickMinStep),formatType:n.property(t.formatType),formatSpecifier:n.property(t.format)}))),h=[];let m;return s.grid&&h.push(jpe(t,e,o.grid,d,i)),s.ticks&&(m=c("tickSize"),h.push(Vpe(t,e,o.ticks,d,m,i))),s.labels&&(m=s.ticks?m:0,h.push(qpe(t,e,o.labels,d,m,i))),s.domain&&h.push(Bpe(t,e,o.domain,l)),s.title&&h.push(Hpe(t,e,o.title,l)),Jw(cy({role:she,from:l,encode:Jm(Wpe(c,t),f,Ky),marks:h,aria:c("aria"),description:c("description"),zindex:c("zindex"),name:r,interactive:a,style:u}),n)}function Wpe(t,n){const e={enter:{},update:{}};return kl(e,{orient:t("orient"),offset:t("offset")||0,position:Wc(n.position,0),titlePadding:t("titlePadding"),minExtent:t("minExtent"),maxExtent:t("maxExtent"),range:{signal:`abs(span(range("${n.scale}")))`},translate:t("translate"),format:n.format,formatType:n.formatType}),e}function mU(t,n,e){const o=ki(t.signals),f=ki(t.scales);return e||o.forEach(r=>Yj(r,n)),ki(t.projections).forEach(r=>Ade(r,n)),f.forEach(r=>dde(r,n)),ki(t.data).forEach(r=>Epe(r,n)),f.forEach(r=>pde(r,n)),(e||o).forEach(r=>Ghe(r,n)),ki(t.axes).forEach(r=>Gpe(r,n)),ki(t.marks).forEach(r=>Jw(r,n)),ki(t.legends).forEach(r=>mpe(r,n)),t.title&&kpe(t.title,n),n.parseLambdas(),n}const Ype=t=>Jm({enter:{x:{value:0},y:{value:0}},update:{width:{signal:"width"},height:{signal:"height"}}},t);function Xpe(t,n){const e=n.config,o=Hi(n.root=n.add(w2())),f=Zpe(t,e);f.forEach(i=>Yj(i,n)),n.description=t.description||e.description,n.eventConfig=e.events,n.legends=n.objectProperty(e.legend&&e.legend.layout),n.locale=e.locale;const r=n.add(mf()),a=n.add(Jj(Wj(Ype(t.encode),Yw,QS,t.style,n,{pulse:Hi(r)}))),u=n.add(eU({layout:n.objectProperty(t.layout),legends:n.legends,autosize:n.signalRef("autosize"),mark:o,pulse:Hi(a)}));n.operators.pop(),n.pushState(Hi(a),Hi(u),null),mU(t,n,f),n.operators.push(u);let c=n.add(Zj({mark:o,pulse:Hi(u)}));return c=n.add(Qj({pulse:Hi(c)})),c=n.add(Y0({pulse:Hi(c)})),n.addData("root",new O0(n,r,r,c)),n}function Z1(t,n){return n&&n.signal?{name:t,update:n.signal}:{name:t,value:n}}function Zpe(t,n){const e=a=>Wc(t[a],n[a]),o=[Z1("background",e("background")),Z1("autosize",ihe(e("autosize"))),Z1("padding",ohe(e("padding"))),Z1("width",e("width")||0),Z1("height",e("height")||0)],f=o.reduce((a,u)=>(a[u.name]=u,a),{}),r={};return ki(t.signals).forEach(a=>{qi(f,a.name)?a=pa(f[a.name],a):o.push(a),r[a.name]=a}),ki(n.signals).forEach(a=>{!qi(r,a.name)&&!qi(f,a.name)&&o.push(a)}),o}function vU(t,n){this.config=t||{},this.options=n||{},this.bindings=[],this.field={},this.signals={},this.lambdas={},this.scales={},this.events={},this.data={},this.streams=[],this.updates=[],this.operators=[],this.eventConfig=null,this.locale=null,this._id=0,this._subid=0,this._nextsub=[0],this._parent=[],this._encode=[],this._lookup=[],this._markpath=[]}function GL(t){this.config=t.config,this.options=t.options,this.legends=t.legends,this.field=Object.create(t.field),this.signals=Object.create(t.signals),this.lambdas=Object.create(t.lambdas),this.scales=Object.create(t.scales),this.events=Object.create(t.events),this.data=Object.create(t.data),this.streams=[],this.updates=[],this.operators=[],this._id=0,this._subid=++t._nextsub[0],this._nextsub=t._nextsub,this._parent=t._parent.slice(),this._encode=t._encode.slice(),this._lookup=t._lookup.slice(),this._markpath=t._markpath}vU.prototype=GL.prototype={parse(t){return mU(t,this)},fork(){return new GL(this)},isSubscope(){return this._subid>0},toRuntime(){return this.finish(),{description:this.description,operators:this.operators,streams:this.streams,updates:this.updates,bindings:this.bindings,eventConfig:this.eventConfig,locale:this.locale}},id(){return(this._subid?this._subid+":":0)+this._id++},add(t){return this.operators.push(t),t.id=this.id(),t.refs&&(t.refs.forEach(n=>{n.$ref=t.id}),t.refs=null),t},proxy(t){const n=t instanceof CT?Hi(t):t;return this.add(sde({value:n}))},addStream(t){return this.streams.push(t),t.id=this.id(),t},addUpdate(t){return this.updates.push(t),t},finish(){let t,n;this.root&&(this.root.root=!0);for(t in this.signals)this.signals[t].signal=t;for(t in this.scales)this.scales[t].scale=t;function e(o,f,r){let a,u;o&&(a=o.data||(o.data={}),u=a[f]||(a[f]=[]),u.push(r))}for(t in this.data){n=this.data[t],e(n.input,t,"input"),e(n.output,t,"output"),e(n.values,t,"values");for(const o in n.index)e(n.index[o],t,"index:"+o)}return this},pushState(t,n,e){this._encode.push(Hi(this.add(Y0({pulse:t})))),this._parent.push(n),this._lookup.push(e?Hi(this.proxy(e)):null),this._markpath.push(-1)},popState(){this._encode.pop(),this._parent.pop(),this._lookup.pop(),this._markpath.pop()},parent(){return Na(this._parent)},encode(){return Na(this._encode)},lookup(){return Na(this._lookup)},markpath(){const t=this._markpath;return++t[t.length-1]},fieldRef(t,n){if(bi(t))return ly(t,n);t.signal||Pr("Unsupported field reference: "+oi(t));const e=t.signal;let o=this.field[e];if(!o){const f={name:this.signalRef(e)};n&&(f.as=n),this.field[e]=o=Hi(this.add(Jhe(f)))}return o},compareRef(t){let n=!1;const e=r=>Ys(r)?(n=!0,this.signalRef(r.signal)):Rhe(r)?(n=!0,this.exprRef(r.expr)):r,o=ki(t.field).map(e),f=ki(t.order).map(e);return n?Hi(this.add(PL({fields:o,orders:f}))):OL(o,f)},keyRef(t,n){let e=!1;const o=r=>Ys(r)?(e=!0,Hi(f[r.signal])):r,f=this.signals;return t=ki(t).map(o),e?Hi(this.add(Khe({fields:t,flat:n}))):Phe(t,n)},sortRef(t){if(!t)return t;const n=Gw(t.op,t.field),e=t.order||Dhe;return e.signal?Hi(this.add(PL({fields:n,orders:this.signalRef(e.signal)}))):OL(n,e)},event(t,n){const e=t+":"+n;if(!this.events[e]){const o=this.id();this.streams.push({id:o,source:t,type:n}),this.events[e]=o}return this.events[e]},hasOwnSignal(t){return qi(this.signals,t)},addSignal(t,n){this.hasOwnSignal(t)&&Pr("Duplicate signal name: "+oi(t));const e=n instanceof CT?n:this.add(w2(n));return this.signals[t]=e},getSignal(t){return this.signals[t]||Pr("Unrecognized signal name: "+oi(t)),this.signals[t]},signalRef(t){return this.signals[t]?Hi(this.signals[t]):(qi(this.lambdas,t)||(this.lambdas[t]=this.add(w2(null))),Hi(this.lambdas[t]))},parseLambdas(){const t=Object.keys(this.lambdas);for(let n=0,e=t.length;n0?",":"")+(Ei(f)?f.signal||hE(f):oi(f))}return e+"]"}function Kpe(t){let n="{",e=0,o,f;for(o in t)f=t[o],n+=(++e>1?",":"")+oi(o)+":"+(Ei(f)?f.signal||hE(f):oi(f));return n+"}"}function Qpe(){const t="sans-serif",o="#4c78a8",f="#000",r="#888",a="#ddd";return{description:"Vega visualization",padding:0,autosize:"pad",background:null,events:{defaults:{allow:["wheel"]}},group:null,mark:null,arc:{fill:o},area:{fill:o},image:null,line:{stroke:o,strokeWidth:2},path:{stroke:o},rect:{fill:o},rule:{stroke:f},shape:{stroke:o},symbol:{fill:o,size:64},text:{fill:f,font:t,fontSize:11},trail:{fill:o,size:2},style:{"guide-label":{fill:f,font:t,fontSize:10},"guide-title":{fill:f,font:t,fontSize:11,fontWeight:"bold"},"group-title":{fill:f,font:t,fontSize:13,fontWeight:"bold"},"group-subtitle":{fill:f,font:t,fontSize:12},point:{size:30,strokeWidth:2,shape:"circle"},circle:{size:30,strokeWidth:2},square:{size:30,strokeWidth:2,shape:"square"},cell:{fill:"transparent",stroke:a}},title:{orient:"top",anchor:"middle",offset:4,subtitlePadding:3},axis:{minExtent:0,maxExtent:200,bandPosition:.5,domain:!0,domainWidth:1,domainColor:r,grid:!1,gridWidth:1,gridColor:a,labels:!0,labelAngle:0,labelLimit:180,labelOffset:0,labelPadding:2,ticks:!0,tickColor:r,tickOffset:0,tickRound:!0,tickSize:5,tickWidth:1,titlePadding:4},axisBand:{tickOffset:-.5},projection:{type:"mercator"},legend:{orient:"right",padding:0,gridAlign:"each",columnPadding:10,rowPadding:2,symbolDirection:"vertical",gradientDirection:"vertical",gradientLength:200,gradientThickness:16,gradientStrokeColor:a,gradientStrokeWidth:0,gradientLabelOffset:2,labelAlign:"left",labelBaseline:"middle",labelLimit:160,labelOffset:4,labelOverlap:!0,symbolLimit:30,symbolType:"circle",symbolSize:100,symbolOffset:0,symbolStrokeWidth:1.5,symbolBaseFillColor:"transparent",symbolBaseStrokeColor:r,titleLimit:180,titleOrient:"top",titlePadding:5,layout:{offset:18,direction:"horizontal",left:{direction:"vertical"},right:{direction:"vertical"}}},range:{category:{scheme:"tableau10"},ordinal:{scheme:"blues"},heatmap:{scheme:"yellowgreenblue"},ramp:{scheme:"blues"},diverging:{scheme:"blueorange",extent:[1,0]},symbol:["circle","square","triangle-up","cross","diamond","triangle-right","triangle-down","triangle-left"]}}}function e0e(t,n,e){return Ei(t)||Pr("Input Vega specification must be an object."),n=Vm(Qpe(),n,t.config),Xpe(t,new vU(n,e)).toRuntime()}var t0e="5.22.1";pa(cm,PJ,One,lre,Wie,Uae,pse,Woe,mse,Bse,Xse,nle);var n0e=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",version:t0e,Dataflow:Qg,EventStream:iw,MultiPulse:ZA,Operator:Co,Parameters:rw,Pulse:Ud,Transform:_r,changeset:$0,definition:_z,ingest:ro,isTuple:tw,transform:wz,transforms:cm,tupleid:$i,interpolate:sM,interpolateColors:xw,interpolateRange:tF,quantizeInterpolator:nF,scale:Xa,scheme:lM,projection:aS,View:zj,defaultLocale:$A,formatLocale:y_,locale:lz,resetDefaultLocale:PX,timeFormatLocale:Gv,expressionFunction:Fs,parse:e0e,runtimeContext:wj,codegenExpression:uj,parseExpression:BS,parseSelector:pp,Debug:ZD,Error:wA,Info:XD,None:YD,Warn:kA,accessor:Nu,accessorFields:Bl,accessorName:xs,array:ki,ascending:J2,clampRange:sI,compare:EA,constant:$l,debounce:CA,error:Pr,extend:pa,extent:Zf,extentIndex:lI,falsy:yd,fastmap:Hm,field:Lu,flush:uI,hasOwnProperty:qi,id:Ty,identity:Hl,inherits:ni,inrange:Wg,isArray:Ir,isBoolean:fp,isDate:Nd,isFunction:ga,isIterable:cI,isNumber:wo,isObject:Ei,isRegExp:fI,isString:bi,key:OA,lerp:hI,logger:TA,lruCache:dI,merge:pI,mergeConfig:Vm,one:Um,pad:gI,panLinear:tI,panLog:nI,panPow:rI,panSymlog:iI,peek:Na,quarter:aI,repeat:iv,span:Ay,splitAccessPath:ih,stringValue:oi,toBoolean:LA,toDate:PA,toNumber:Rl,toSet:ff,toString:DA,truncate:mI,truthy:mc,utcquarter:oI,visitArray:_d,writeConfig:qm,zero:Md,zoomLinear:AA,zoomLog:MA,zoomPow:p_,zoomSymlog:SA,bandwidthNRD:e6,bin:Tz,bootstrapCI:Az,cumulativeLogNormal:o6,cumulativeNormal:ow,cumulativeUniform:c6,densityLogNormal:a6,densityNormal:t6,densityUniform:u6,dotbin:Mz,quantileLogNormal:s6,quantileNormal:sw,quantileUniform:f6,quantiles:KA,quartiles:QA,get random(){return yc},randomInteger:RZ,randomKDE:r6,randomLCG:zZ,randomLogNormal:Ez,randomMixture:Cz,randomNormal:n6,randomUniform:Oz,regressionExp:Pz,regressionLinear:h6,regressionLoess:zz,regressionLog:Lz,regressionPoly:Iz,regressionPow:Dz,regressionQuad:d6,sampleCurve:uw,sampleLogNormal:i6,sampleNormal:aw,sampleUniform:l6,setRandom:DZ,DATE:Du,DAY:Il,DAYOFYEAR:Jf,HOURS:Qu,MILLISECONDS:hf,MINUTES:ec,MONTH:jl,QUARTER:Pu,SECONDS:vc,TIME_UNITS:jA,WEEK:Gs,YEAR:wl,dayofyear:LI,timeBin:YI,timeFloor:NI,timeInterval:$m,timeOffset:UI,timeSequence:HI,timeUnitSpecifier:OI,timeUnits:UA,utcFloor:BI,utcInterval:Gm,utcOffset:VI,utcSequence:$I,utcdayofyear:II,utcweek:zI,week:PI,format:Bb,formats:YA,inferType:cz,inferTypes:fz,loader:Q2,read:pz,responseType:dz,typeParsers:bk,path:Bm,Bounds:zs,CanvasHandler:Vy,CanvasRenderer:R_,Gradient:gF,GroupItem:ww,Handler:ep,Item:_w,Marks:tc,RenderType:Dd,Renderer:oh,ResourceLoader:gM,SVGHandler:DM,SVGRenderer:BM,SVGStringRenderer:jM,Scenegraph:LM,boundClip:uN,boundContext:Ny,boundItem:Dk,boundMark:IF,boundStroke:Jh,domChild:Au,domClear:Xc,domCreate:Ld,domFind:PM,font:Sw,fontFamily:Uy,fontSize:ah,intersect:aN,intersectBoxLine:Yg,intersectPath:mM,intersectPoint:vM,intersectRule:kF,lineHeight:Kd,markup:NM,multiLineOffset:EM,pathCurves:hM,pathEqual:cN,pathParse:gm,pathRectangle:yF,pathRender:Zv,pathSymbols:vF,pathTrail:xF,point:Cw,renderModule:Ow,resetSVGClipId:_F,resetSVGDefIds:Gte,sceneEqual:UM,sceneFromJSON:RF,scenePickVisit:O_,sceneToJSON:zF,sceneVisit:df,sceneZOrder:yM,serializeXML:JF,textMetrics:af});function r0e(t,n,e){let o;n.x2&&(n.x?(e&&t.x>t.x2&&(o=t.x,t.x=t.x2,t.x2=o),t.width=t.x2-t.x):t.x=t.x2-(t.width||0)),n.xc&&(t.x=t.xc-(t.width||0)/2),n.y2&&(n.y?(e&&t.y>t.y2&&(o=t.y,t.y=t.y2,t.y2=o),t.height=t.y2-t.y):t.y=t.y2-(t.height||0)),n.yc&&(t.y=t.yc-(t.height||0)/2)}var i0e={NaN:NaN,E:Math.E,LN2:Math.LN2,LN10:Math.LN10,LOG2E:Math.LOG2E,LOG10E:Math.LOG10E,PI:Math.PI,SQRT1_2:Math.SQRT1_2,SQRT2:Math.SQRT2,MIN_VALUE:Number.MIN_VALUE,MAX_VALUE:Number.MAX_VALUE},a0e={"*":(t,n)=>t*n,"+":(t,n)=>t+n,"-":(t,n)=>t-n,"/":(t,n)=>t/n,"%":(t,n)=>t%n,">":(t,n)=>t>n,"<":(t,n)=>tt<=n,">=":(t,n)=>t>=n,"==":(t,n)=>t==n,"!=":(t,n)=>t!=n,"===":(t,n)=>t===n,"!==":(t,n)=>t!==n,"&":(t,n)=>t&n,"|":(t,n)=>t|n,"^":(t,n)=>t^n,"<<":(t,n)=>t<>":(t,n)=>t>>n,">>>":(t,n)=>t>>>n},o0e={"+":t=>+t,"-":t=>-t,"~":t=>~t,"!":t=>!t};const s0e=Array.prototype.slice,Up=(t,n,e)=>{const o=e?e(n[0]):n[0];return o[t].apply(o,s0e.call(n,1))},l0e=(t,n,e,o,f,r,a)=>new Date(t,n||0,e??1,o||0,f||0,r||0,a||0);var u0e={isNaN:Number.isNaN,isFinite:Number.isFinite,abs:Math.abs,acos:Math.acos,asin:Math.asin,atan:Math.atan,atan2:Math.atan2,ceil:Math.ceil,cos:Math.cos,exp:Math.exp,floor:Math.floor,log:Math.log,max:Math.max,min:Math.min,pow:Math.pow,random:Math.random,round:Math.round,sin:Math.sin,sqrt:Math.sqrt,tan:Math.tan,clamp:(t,n,e)=>Math.max(n,Math.min(e,t)),now:Date.now,utc:Date.UTC,datetime:l0e,date:t=>new Date(t).getDate(),day:t=>new Date(t).getDay(),year:t=>new Date(t).getFullYear(),month:t=>new Date(t).getMonth(),hours:t=>new Date(t).getHours(),minutes:t=>new Date(t).getMinutes(),seconds:t=>new Date(t).getSeconds(),milliseconds:t=>new Date(t).getMilliseconds(),time:t=>new Date(t).getTime(),timezoneoffset:t=>new Date(t).getTimezoneOffset(),utcdate:t=>new Date(t).getUTCDate(),utcday:t=>new Date(t).getUTCDay(),utcyear:t=>new Date(t).getUTCFullYear(),utcmonth:t=>new Date(t).getUTCMonth(),utchours:t=>new Date(t).getUTCHours(),utcminutes:t=>new Date(t).getUTCMinutes(),utcseconds:t=>new Date(t).getUTCSeconds(),utcmilliseconds:t=>new Date(t).getUTCMilliseconds(),length:t=>t.length,join:function(){return Up("join",arguments)},indexof:function(){return Up("indexOf",arguments)},lastindexof:function(){return Up("lastIndexOf",arguments)},slice:function(){return Up("slice",arguments)},reverse:t=>t.slice().reverse(),parseFloat,parseInt,upper:t=>String(t).toUpperCase(),lower:t=>String(t).toLowerCase(),substring:function(){return Up("substring",arguments,String)},split:function(){return Up("split",arguments,String)},replace:function(){return Up("replace",arguments,String)},trim:t=>String(t).trim(),regexp:RegExp,test:(t,n)=>RegExp(t).test(n)};const c0e=["view","item","group","xy","x","y"],f0e={Literal:(t,n)=>n.value,Identifier:(t,n)=>{const e=n.name;return t.memberDepth>0?e:e==="datum"?t.datum:e==="event"?t.event:e==="item"?t.item:i0e[e]||t.params["$"+e]},MemberExpression:(t,n)=>{const e=!n.computed,o=t(n.object);e&&(t.memberDepth+=1);const f=t(n.property);return e&&(t.memberDepth-=1),o[f]},CallExpression:(t,n)=>{const e=n.arguments;let o=n.callee.name;return o.startsWith("_")&&(o=o.slice(1)),o==="if"?t(e[0])?t(e[1]):t(e[2]):(t.fn[o]||u0e[o]).apply(t.fn,e.map(t))},ArrayExpression:(t,n)=>n.elements.map(t),BinaryExpression:(t,n)=>a0e[n.operator](t(n.left),t(n.right)),UnaryExpression:(t,n)=>o0e[n.operator](t(n.argument)),ConditionalExpression:(t,n)=>t(n.test)?t(n.consequent):t(n.alternate),LogicalExpression:(t,n)=>n.operator==="&&"?t(n.left)&&t(n.right):t(n.left)||t(n.right),ObjectExpression:(t,n)=>n.properties.reduce((e,o)=>{t.memberDepth+=1;const f=t(o.key);return t.memberDepth-=1,e[f]=t(o.value),e},{})};function J1(t,n,e,o,f,r){const a=u=>f0e[u.type](a,u);return a.memberDepth=0,a.fn=Object.create(n),a.params=e,a.datum=o,a.event=f,a.item=r,c0e.forEach(u=>a.fn[u]=(...c)=>f.vega[u](...c)),a(t)}var h0e={operator(t,n){const e=n.ast,o=t.functions;return f=>J1(e,o,f)},parameter(t,n){const e=n.ast,o=t.functions;return(f,r)=>J1(e,o,r,f)},event(t,n){const e=n.ast,o=t.functions;return f=>J1(e,o,void 0,void 0,f)},handler(t,n){const e=n.ast,o=t.functions;return(f,r)=>{const a=r.item&&r.item.datum;return J1(e,o,f,a,r)}},encode(t,n){const{marktype:e,channels:o}=n,f=t.functions,r=e==="group"||e==="image"||e==="rect";return(a,u)=>{const c=a.datum;let i=0,s;for(const l in o)s=J1(o[l].ast,f,u,c,void 0,a),a[l]!==s&&(a[l]=s,i=1);return e!=="rule"&&r0e(a,o,r),i}}};const d0e="vega-lite",p0e='Dominik Moritz, Kanit "Ham" Wongsuphasawat, Arvind Satyanarayan, Jeffrey Heer',g0e="5.5.0",m0e=["Kanit Wongsuphasawat (http://kanitw.yellowpigz.com)","Dominik Moritz (https://www.domoritz.de)","Arvind Satyanarayan (https://arvindsatya.com)","Jeffrey Heer (https://jheer.org)"],v0e="https://vega.github.io/vega-lite/",y0e="Vega-Lite is a concise high-level language for interactive visualization.",x0e=["vega","chart","visualization"],b0e="build/vega-lite.js",_0e="build/vega-lite.min.js",w0e="build/vega-lite.min.js",k0e="build/src/index",T0e="build/src/index.d.ts",A0e={vl2png:"./bin/vl2png",vl2svg:"./bin/vl2svg",vl2pdf:"./bin/vl2pdf",vl2vg:"./bin/vl2vg"},M0e=["bin","build","src","vega-lite*","tsconfig.json"],S0e={changelog:"conventional-changelog -p angular -r 2",prebuild:"yarn clean:build",build:"yarn build:only","build:only":"tsc -p tsconfig.build.json && rollup -c","prebuild:examples":"yarn build:only","build:examples":"yarn data && TZ=America/Los_Angeles scripts/build-examples.sh","prebuild:examples-full":"yarn build:only","build:examples-full":"TZ=America/Los_Angeles scripts/build-examples.sh 1","build:example":"TZ=America/Los_Angeles scripts/build-example.sh","build:toc":"yarn build:jekyll && scripts/generate-toc","build:site":"rollup -c site/rollup.config.js","build:jekyll":"pushd site && bundle exec jekyll build -q && popd","build:versions":"scripts/update-version.sh",clean:"yarn clean:build && del-cli 'site/data/*' 'examples/compiled/*.png' && find site/examples ! -name 'index.md' ! -name 'data' -type f -delete","clean:build":"del-cli 'build/*' !build/vega-lite-schema.json","predeploy:site":"yarn presite","deploy:site":"gh-pages -d site",data:"rsync -r node_modules/vega-datasets/data/* site/data",schema:"mkdir -p build && ts-json-schema-generator -f tsconfig.json -p src/index.ts -t TopLevelSpec --no-type-check --no-ref-encode > build/vega-lite-schema.json && yarn renameschema && cp build/vega-lite-schema.json site/_data/",renameschema:"scripts/rename-schema.sh",presite:"yarn data && yarn schema && yarn build:site && yarn build:versions && scripts/create-example-pages.sh",site:"yarn site:only","site:only":"pushd site && bundle exec jekyll serve -I -l && popd",prettierbase:"prettier '**/*.{md,css,yml}'",eslintbase:"eslint .",format:"yarn eslintbase --fix && yarn prettierbase --write",lint:"yarn eslintbase && yarn prettierbase --check",jest:"NODE_OPTIONS=--experimental-vm-modules npx jest",test:"yarn jest test/ && yarn lint && yarn schema && yarn jest examples/ && yarn test:runtime","test:cover":"yarn jest --collectCoverage test/","test:inspect":"node --inspect-brk --experimental-vm-modules ./node_modules/.bin/jest --runInBand test","test:runtime":"NODE_OPTIONS=--experimental-vm-modules TZ=America/Los_Angeles npx jest test-runtime/ --config test-runtime/jest-config.json","test:runtime:generate":"yarn build:only && del-cli test-runtime/resources && VL_GENERATE_TESTS=true yarn test:runtime",watch:"tsc -p tsconfig.build.json -w","watch:site":"yarn build:site -w","watch:test":"yarn jest --watch test/","watch:test:runtime":"NODE_OPTIONS=--experimental-vm-modules TZ=America/Los_Angeles npx jest --watch test-runtime/ --config test-runtime/jest-config.json",release:"yarn run prebuild && yarn build && yarn shipit",shipit:"auto shipit"},E0e={type:"git",url:"https://github.com/vega/vega-lite.git"},C0e="BSD-3-Clause",O0e={url:"https://github.com/vega/vega-lite/issues"},L0e={"@auto-it/conventional-commits":"^10.37.6","@auto-it/first-time-contributor":"^10.37.6","@babel/core":"^7.19.1","@babel/preset-env":"^7.19.1","@babel/preset-typescript":"^7.18.6","@rollup/plugin-alias":"^4.0.0","@rollup/plugin-babel":"^6.0.0","@rollup/plugin-commonjs":"^23.0.0","@rollup/plugin-json":"^4.1.0","@types/jest":"^27.4.1","@rollup/plugin-node-resolve":"^14.1.0","@types/chai":"^4.3.3","@types/d3":"^7.4.0","@types/mkdirp":"^1.0.2","@types/pako":"^2.0.0","@typescript-eslint/eslint-plugin":"^5.38.0","@typescript-eslint/parser":"^5.38.0",ajv:"^8.11.0","ajv-formats":"^2.1.1",auto:"^10.37.6",chai:"^4.3.6",cheerio:"^1.0.0-rc.12","conventional-changelog-cli":"^2.2.2",d3:"^7.6.1","del-cli":"^5.0.0",eslint:"^8.23.1","eslint-config-prettier":"^8.5.0","eslint-plugin-jest":"^27.0.4","eslint-plugin-prettier":"^4.2.1","gh-pages":"^4.0.0",jest:"^27.5.1","highlight.js":"^11.6.0","jest-dev-server":"^6.1.1",mkdirp:"^1.0.4",pako:"^2.0.4",prettier:"^2.7.1",puppeteer:"^15.0.0",rollup:"^2.79.1","rollup-plugin-bundle-size":"^1.0.3","rollup-plugin-sourcemaps":"^0.6.3","rollup-plugin-terser":"^7.0.2",serve:"^14.0.1",terser:"^5.15.0","ts-jest":"^29.0.1","ts-json-schema-generator":"^1.1.1","vega-cli":"^5.22.1",typescript:"~4.8.3","vega-datasets":"~2.5.1","vega-embed":"^6.21.0","vega-tooltip":"^0.28.0","yaml-front-matter":"^4.1.1"},P0e={"@types/clone":"~2.1.1",clone:"~2.1.2","fast-deep-equal":"~3.1.3","fast-json-stable-stringify":"~2.1.0","json-stringify-pretty-compact":"~3.0.0",tslib:"~2.4.0","vega-event-selector":"~3.0.0","vega-expression":"~5.0.0","vega-util":"~1.17.0",yargs:"~17.6.0"},D0e={vega:"^5.22.0"},I0e={node:">=12"};var z0e={name:d0e,author:p0e,version:g0e,collaborators:m0e,homepage:v0e,description:y0e,keywords:x0e,main:b0e,unpkg:_0e,jsdelivr:w0e,module:k0e,types:T0e,bin:A0e,files:M0e,scripts:S0e,repository:E0e,license:C0e,bugs:O0e,devDependencies:L0e,dependencies:P0e,peerDependencies:D0e,engines:I0e},yU={exports:{}};(function(t){var n=function(){function e(d,h){return h!=null&&d instanceof h}var o;try{o=Map}catch{o=function(){}}var f;try{f=Set}catch{f=function(){}}var r;try{r=Promise}catch{r=function(){}}function a(d,h,m,g,p){typeof h=="object"&&(m=h.depth,g=h.prototype,p=h.includeNonEnumerable,h=h.circular);var v=[],y=[],x=typeof Buffer<"u";typeof h>"u"&&(h=!0),typeof m>"u"&&(m=1/0);function w(k,b){if(k===null)return null;if(b===0)return k;var T,_;if(typeof k!="object")return k;if(e(k,o))T=new o;else if(e(k,f))T=new f;else if(e(k,r))T=new r(function(L,P){k.then(function(N){L(w(N,b-1))},function(N){P(w(N,b-1))})});else if(a.__isArray(k))T=[];else if(a.__isRegExp(k))T=new RegExp(k.source,l(k)),k.lastIndex&&(T.lastIndex=k.lastIndex);else if(a.__isDate(k))T=new Date(k.getTime());else{if(x&&Buffer.isBuffer(k))return Buffer.allocUnsafe?T=Buffer.allocUnsafe(k.length):T=new Buffer(k.length),k.copy(T),T;e(k,Error)?T=Object.create(k):typeof g>"u"?(_=Object.getPrototypeOf(k),T=Object.create(_)):(T=Object.create(g),_=g)}if(h){var M=v.indexOf(k);if(M!=-1)return y[M];v.push(k),y.push(T)}e(k,o)&&k.forEach(function(L,P){var N=w(P,b-1),B=w(L,b-1);T.set(N,B)}),e(k,f)&&k.forEach(function(L){var P=w(L,b-1);T.add(P)});for(var A in k){var S;_&&(S=Object.getOwnPropertyDescriptor(_,A)),!(S&&S.set==null)&&(T[A]=w(k[A],b-1))}if(Object.getOwnPropertySymbols)for(var E=Object.getOwnPropertySymbols(k),A=0;Arm(e,n))}:pE(t)?{or:t.or.map(e=>rm(e,n))}:n(t)}const Uf=xU,ha=R0e;function bU(t){throw new Error(t)}function Am(t,n){const e={};for(const o of n)qi(t,o)&&(e[o]=t[o]);return e}function Eu(t,n){const e=Object.assign({},t);for(const o of n)delete e[o];return e}Set.prototype.toJSON=function(){return`Set(${[...this].map(t=>dE(t)).join(",")})`};const No=dE;function Ba(t){if(wo(t))return t;const n=bi(t)?t:dE(t);if(n.length<250)return n;let e=0;for(let o=0;ou===0?a:`[${a}]`),r=f.map((a,u)=>f.slice(0,u+1).join(""));for(const a of r)n.add(a)}return n}function xE(t,n){return t===void 0||n===void 0?!0:yE(FT(t),FT(n))}function _o(t){return Xr(t).length===0}const Xr=Object.keys,ql=Object.values,rp=Object.entries;function fy(t){return t===!0||t===!1}function Xo(t){const n=t.replace(/\W/g,"_");return(t.match(/^\d+/)?"_":"")+n}function Nv(t,n){return mE(t)?`!(${Nv(t.not,n)})`:gE(t)?`(${t.and.map(e=>Nv(e,n)).join(") && (")})`:pE(t)?`(${t.or.map(e=>Nv(e,n)).join(") || (")})`:n(t)}function k2(t,n){if(n.length===0)return!0;const e=n.shift();return e in t&&k2(t[e],n)&&delete t[e],_o(t)}function Qy(t){return t.charAt(0).toUpperCase()+t.substr(1)}function bE(t,n="datum"){const e=ih(t),o=[];for(let f=1;f<=e.length;f++){const r=`[${e.slice(0,f).map(oi).join("][")}]`;o.push(`${n}${r}`)}return o.join(" && ")}function kU(t,n="datum"){return`${n}[${oi(ih(t).join("."))}]`}function B0e(t){return t.replace(/(\[|\]|\.|'|")/g,"\\$1")}function bc(t){return`${ih(t).map(B0e).join("\\.")}`}function P0(t,n,e){return t.replace(new RegExp(n.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"g"),e)}function _E(t){return`${ih(t).join(".")}`}function Mm(t){return t?ih(t).length:0}function Rs(...t){for(const n of t)if(n!==void 0)return n}let TU=42;function AU(t){const n=++TU;return t?String(t)+n:n}function j0e(){TU=42}function MU(t){return SU(t)?t:`__${t}`}function SU(t){return t.startsWith("__")}function hy(t){if(t!==void 0)return(t%360+360)%360}function Qw(t){return wo(t)?!0:!isNaN(t)&&!isNaN(parseFloat(t))}var ex=globalThis&&globalThis.__rest||function(t,n){var e={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&n.indexOf(o)<0&&(e[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var f=0,o=Object.getOwnPropertySymbols(t);fs3(t[n])?Xo(`_${n}_${rp(t[n])}`):Xo(`_${n}_${t[n]}`)).join("")}function Bo(t){return t===!0||K0(t)&&!t.binned}function xl(t){return t==="binned"||K0(t)&&t.binned===!0}function K0(t){return Ei(t)}function s3(t){return t?.param}function WL(t){switch(t){case Vh:case qh:case nd:case zu:case hh:case dh:case yp:case rd:case mp:case vp:case Ru:return 6;case xp:return 4;default:return 10}}function ix(t){return!!t?.expr}function Tu(t){const n=Xr(t||{}),e={};for(const o of n)e[o]=Xu(t[o]);return e}var hge=globalThis&&globalThis.__rest||function(t,n){var e={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&n.indexOf(o)<0&&(e[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var f=0,o=Object.getOwnPropertySymbols(t);f{var f;return e.field.push(hi(o,n)),e.order.push((f=o.sort)!==null&&f!==void 0?f:"ascending"),e},{field:[],order:[]})}function GU(t,n){const e=[...t];return n.forEach(o=>{for(const f of e)if(Uf(f,o))return;e.push(o)}),e}function WU(t,n){return Uf(t,n)||!n?t:t?[...ki(t),...ki(n)].join(", "):n}function YU(t,n){const e=t.value,o=n.value;if(e==null||o===null)return{explicit:t.explicit,value:null};if((Ad(e)||Vi(e))&&(Ad(o)||Vi(o)))return{explicit:t.explicit,value:WU(e,o)};if(Ad(e)||Vi(e))return{explicit:t.explicit,value:e};if(Ad(o)||Vi(o))return{explicit:t.explicit,value:o};if(!Ad(e)&&!Vi(e)&&!Ad(o)&&!Vi(o))return{explicit:t.explicit,value:GU(e,o)};throw new Error("It should never reach here")}function OE(t){return`Invalid specification ${No(t)}. Make sure the specification includes at least one of the following properties: "mark", "layer", "facet", "hconcat", "vconcat", "concat", or "repeat".`}const bge='Autosize "fit" only works for single views and layered views.';function ZL(t){return`${t=="width"?"Width":"Height"} "container" only works for single views and layered views.`}function JL(t){const n=t=="width"?"Width":"Height",e=t=="width"?"x":"y";return`${n} "container" only works well with autosize "fit" or "fit-${e}".`}function KL(t){return t?`Dropping "fit-${t}" because spec has discrete ${Fu(t)}.`:'Dropping "fit" because spec has discrete size.'}function LE(t){return`Unknown field for ${t}. Cannot calculate view size.`}function QL(t){return`Cannot project a selection on encoding channel "${t}", which has no field.`}function _ge(t,n){return`Cannot project a selection on encoding channel "${t}" as it uses an aggregate function ("${n}").`}function wge(t){return`The "nearest" transform is not supported for ${t} marks.`}function XU(t){return`Selection not supported for ${t} yet.`}function kge(t){return`Cannot find a selection named "${t}".`}const Tge="Scale bindings are currently only supported for scales with unbinned, continuous domains.",Age="Legend bindings are only supported for selections over an individual field or encoding channel.";function Mge(t){return`Lookups can only be performed on selection parameters. "${t}" is a variable parameter.`}function Sge(t){return`Cannot define and lookup the "${t}" selection in the same view. Try moving the lookup into a second, layered view?`}const Ege="The same selection must be used to override scale domains in a layered view.",Cge='Interval selections should be initialized using "x" and/or "y" keys.';function Oge(t){return`Unknown repeated value "${t}".`}function eP(t){return`The "columns" property cannot be used when "${t}" has nested row/column.`}const Lge="Axes cannot be shared in concatenated or repeated views yet (https://github.com/vega/vega-lite/issues/2415).";function Pge(t){return`Unrecognized parse "${t}".`}function tP(t,n,e){return`An ancestor parsed field "${t}" as ${e} but a child wants to parse the field as ${n}.`}const Dge="Attempt to add the same child twice.";function Ige(t){return`Ignoring an invalid transform: ${No(t)}.`}const zge='If "from.fields" is not specified, "as" has to be a string that specifies the key to be used for the data from the secondary source.';function nP(t){return`Config.customFormatTypes is not true, thus custom format type and format for channel ${t} are dropped.`}function Rge(t){const{parentProjection:n,projection:e}=t;return`Layer's shared projection ${No(n)} is overridden by a child projection ${No(e)}.`}const Fge="Arc marks uses theta channel rather than angle, replacing angle with theta.";function Nge(t){return`${t}Offset dropped because ${t} is continuous`}function Bge(t){return`There is no ${t} encoding. Replacing ${t}Offset encoding as ${t}.`}function jge(t,n,e){return`Channel ${t} is a ${n}. Converted to {value: ${No(e)}}.`}function ZU(t){return`Invalid field type "${t}".`}function Uge(t,n){return`Invalid field type "${t}" for aggregate: "${n}", using "quantitative" instead.`}function Vge(t){return`Invalid aggregation operator "${t}".`}function JU(t,n){const{fill:e,stroke:o}=n;return`Dropping color ${t} as the plot also has ${e&&o?"fill and stroke":e?"fill":"stroke"}.`}function qge(t){return`Position range does not support relative band size for ${t}.`}function BT(t,n){return`Dropping ${No(t)} from channel "${n}" since it does not contain any data field, datum, value, or signal.`}const Hge="Line marks cannot encode size with a non-groupby field. You may want to use trail marks instead.";function l3(t,n,e){return`${t} dropped as it is incompatible with "${n}"${e?` when ${e}`:""}.`}function $ge(t){return`${t} encoding has no scale, so specified scale is ignored.`}function Gge(t){return`${t}-encoding is dropped as ${t} is not a valid encoding channel.`}function Wge(t){return`${t} encoding should be discrete (ordinal / nominal / binned).`}function Yge(t){return`${t} encoding should be discrete (ordinal / nominal / binned) or use a discretizing scale (e.g. threshold).`}function Xge(t){return`Facet encoding dropped as ${t.join(" and ")} ${t.length>1?"are":"is"} also specified.`}function C4(t,n){return`Using discrete channel "${t}" to encode "${n}" field can be misleading as it does not encode ${n==="ordinal"?"order":"magnitude"}.`}function Zge(t){return`The ${t} for range marks cannot be an expression`}function Jge(t,n){return`Line mark is for continuous lines and thus cannot be used with ${t&&n?"x2 and y2":t?"x2":"y2"}. We will use the rule mark (line segments) instead.`}function Kge(t,n){return`Specified orient "${t}" overridden with "${n}".`}function Qge(t){return`Cannot use the scale property "${t}" with non-color channel.`}function eme(t){return`Cannot use the relative band size with ${t} scale.`}function tme(t){return`Using unaggregated domain with raw field has no effect (${No(t)}).`}function nme(t){return`Unaggregated domain not applicable for "${t}" since it produces values outside the origin domain of the source data.`}function rme(t){return`Unaggregated domain is currently unsupported for log scale (${No(t)}).`}function ime(t){return`Cannot apply size to non-oriented mark "${t}".`}function ame(t,n,e){return`Channel "${t}" does not work with "${n}" scale. We are using "${e}" scale instead.`}function ome(t,n){return`FieldDef does not work with "${t}" scale. We are using "${n}" scale instead.`}function KU(t,n,e){return`${e}-scale's "${n}" is dropped as it does not work with ${t} scale.`}function QU(t){return`The step for "${t}" is dropped because the ${t==="width"?"x":"y"} is continuous.`}function sme(t,n,e,o){return`Conflicting ${n.toString()} property "${t.toString()}" (${No(e)} and ${No(o)}). Using ${No(e)}.`}function lme(t,n,e,o){return`Conflicting ${n.toString()} property "${t.toString()}" (${No(e)} and ${No(o)}). Using the union of the two domains.`}function ume(t){return`Setting the scale to be independent for "${t}" means we also have to set the guide (axis or legend) to be independent.`}function cme(t){return`Dropping sort property ${No(t)} as unioned domains only support boolean or op "count", "min", and "max".`}const rP="Domains that should be unioned has conflicting sort properties. Sort will be set to true.",fme="Detected faceted independent scales that union domain of multiple fields from different data sources. We will use the first field. The result view size may be incorrect.",hme="Detected faceted independent scales that union domain of the same fields from different source. We will assume that this is the same field from a different fork of the same data source. However, if this is not the case, the result view size may be incorrect.",dme="Detected faceted independent scales that union domain of multiple fields from the same data source. We will use the first field. The result view size may be incorrect.";function pme(t){return`Cannot stack "${t}" if there is already "${t}2".`}function gme(t){return`Cannot stack non-linear scale (${t}).`}function mme(t){return`Stacking is applied even though the aggregate function is non-summative ("${t}").`}function A2(t,n){return`Invalid ${t}: ${No(n)}.`}function vme(t){return`Dropping day from datetime ${No(t)} as day cannot be combined with other units.`}function yme(t,n){return`${n?"extent ":""}${n&&t?"and ":""}${t?"center ":""}${n&&t?"are ":"is "}not needed when data are aggregated.`}function xme(t,n,e){return`${t} is not usually used with ${n} for ${e}.`}function bme(t,n){return`Continuous axis should not have customized aggregation function ${t}; ${n} already agregates the axis.`}function iP(t){return`1D error band does not support ${t}.`}function eV(t){return`Channel ${t} is required for "binned" bin.`}function _me(t){return`Channel ${t} should not be used with "binned" bin.`}function wme(t){return`Domain for ${t} is required for threshold scale.`}globalThis&&globalThis.__classPrivateFieldSet;globalThis&&globalThis.__classPrivateFieldGet;const tV=TA(kA);let Sm=tV;function kme(t){return Sm=t,Sm}function Tme(){return Sm=tV,Sm}function Kr(...t){Sm.warn(...t)}function Ame(...t){Sm.debug(...t)}function Q0(t){if(t&&Ei(t)){for(const n of DE)if(n in t)return!0}return!1}const nV=["january","february","march","april","may","june","july","august","september","october","november","december"],Mme=nV.map(t=>t.substr(0,3)),rV=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],Sme=rV.map(t=>t.substr(0,3));function Eme(t){if(Qw(t)&&(t=+t),wo(t))return t>4&&Kr(A2("quarter",t)),t-1;throw new Error(A2("quarter",t))}function Cme(t){if(Qw(t)&&(t=+t),wo(t))return t-1;{const n=t.toLowerCase(),e=nV.indexOf(n);if(e!==-1)return e;const o=n.substr(0,3),f=Mme.indexOf(o);if(f!==-1)return f;throw new Error(A2("month",t))}}function Ome(t){if(Qw(t)&&(t=+t),wo(t))return t%7;{const n=t.toLowerCase(),e=rV.indexOf(n);if(e!==-1)return e;const o=n.substr(0,3),f=Sme.indexOf(o);if(f!==-1)return f;throw new Error(A2("day",t))}}function PE(t,n){const e=[];if(n&&t.day!==void 0&&Xr(t).length>1&&(Kr(vme(t)),t=ha(t),delete t.day),t.year!==void 0?e.push(t.year):e.push(2012),t.month!==void 0){const o=n?Cme(t.month):t.month;e.push(o)}else if(t.quarter!==void 0){const o=n?Eme(t.quarter):t.quarter;e.push(wo(o)?o*3:`${o}*3`)}else e.push(0);if(t.date!==void 0)e.push(t.date);else if(t.day!==void 0){const o=n?Ome(t.day):t.day;e.push(wo(o)?o+1:`${o}+1`)}else e.push(1);for(const o of["hours","minutes","seconds","milliseconds"]){const f=t[o];e.push(typeof f>"u"?0:f)}return e}function dy(t){const e=PE(t,!0).join(", ");return t.utc?`utc(${e})`:`datetime(${e})`}function Lme(t){const e=PE(t,!1).join(", ");return t.utc?`utc(${e})`:`datetime(${e})`}function Pme(t){const n=PE(t,!0);return t.utc?+new Date(Date.UTC(...n)):+new Date(...n)}var Dme=globalThis&&globalThis.__rest||function(t,n){var e={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&n.indexOf(o)<0&&(e[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var f=0,o=Object.getOwnPropertySymbols(t);faV(t,n))}function aV(t,n){const e=t.indexOf(n);return!(e<0||e>0&&n==="seconds"&&t.charAt(e-1)==="i"||t.length>e+3&&n==="day"&&t.charAt(e+3)==="o"||e>0&&n==="year"&&t.charAt(e-1)==="f")}function Fme(t,n,{end:e}={end:!1}){const o=bE(n),f=IE(t)?"utc":"";function r(c){return c==="quarter"?`(${f}quarter(${o})-1)`:`${f}${c}(${o})`}let a;const u={};for(const c of DE)aV(t,c)&&(u[c]=r(c),a=c);return e&&(u[a]+="+1"),Lme(u)}function oV(t){if(!t)return;const n=zE(t);return`timeUnitSpecifier(${No(n)}, ${No(Rme)})`}function Nme(t,n,e){if(!t)return;const o=oV(t);return`${e||IE(t)?"utc":"time"}Format(${n}, ${o})`}function Gl(t){if(!t)return;let n;return bi(t)?n={unit:t}:Ei(t)&&(n=Object.assign(Object.assign({},t),t.unit?{unit:t.unit}:{})),IE(n.unit)&&(n.utc=!0,n.unit=zme(n.unit)),n}function Bme(t){const n=Gl(t),{utc:e}=n,o=Dme(n,["utc"]);return o.unit?(e?"utc":"")+Xr(o).map(f=>Xo(`${f==="unit"?"":`_${f}_`}${o[f]}`)).join(""):(e?"utc":"")+"timeunit"+Xr(o).map(f=>Xo(`_${f}_${o[f]}`)).join("")}function jme(t){return t?.param}function RE(t){return!!t?.field&&t.equal!==void 0}function FE(t){return!!t?.field&&t.lt!==void 0}function NE(t){return!!t?.field&&t.lte!==void 0}function BE(t){return!!t?.field&&t.gt!==void 0}function jE(t){return!!t?.field&&t.gte!==void 0}function UE(t){if(t?.field){if(Ir(t.range)&&t.range.length===2)return!0;if(Vi(t.range))return!0}return!1}function VE(t){return!!t?.field&&(Ir(t.oneOf)||Ir(t.in))}function Ume(t){return!!t?.field&&t.valid!==void 0}function sV(t){return VE(t)||RE(t)||UE(t)||FE(t)||BE(t)||NE(t)||jE(t)}function Pf(t,n){return y3(t,{timeUnit:n,wrapTime:!0})}function Vme(t,n){return t.map(e=>Pf(e,n))}function lV(t,n=!0){var e;const{field:o}=t,f=(e=Gl(t.timeUnit))===null||e===void 0?void 0:e.unit,r=f?`time(${Fme(f,o)})`:hi(t,{expr:"datum"});if(RE(t))return`${r}===${Pf(t.equal,f)}`;if(FE(t)){const a=t.lt;return`${r}<${Pf(a,f)}`}else if(BE(t)){const a=t.gt;return`${r}>${Pf(a,f)}`}else if(NE(t)){const a=t.lte;return`${r}<=${Pf(a,f)}`}else if(jE(t)){const a=t.gte;return`${r}>=${Pf(a,f)}`}else{if(VE(t))return`indexof([${Vme(t.oneOf,f).join(",")}], ${r}) !== -1`;if(Ume(t))return qE(r,t.valid);if(UE(t)){const{range:a}=t,u=Vi(a)?{signal:`${a.signal}[0]`}:a[0],c=Vi(a)?{signal:`${a.signal}[1]`}:a[1];if(u!==null&&c!==null&&n)return"inrange("+r+", ["+Pf(u,f)+", "+Pf(c,f)+"])";const i=[];return u!==null&&i.push(`${r} >= ${Pf(u,f)}`),c!==null&&i.push(`${r} <= ${Pf(c,f)}`),i.length>0?i.join(" && "):"true"}}throw new Error(`Invalid field predicate: ${No(t)}`)}function qE(t,n=!0){return n?`isValid(${t}) && isFinite(+${t})`:`!isValid(${t}) || !isFinite(+${t})`}function qme(t){var n;return sV(t)&&t.timeUnit?Object.assign(Object.assign({},t),{timeUnit:(n=Gl(t.timeUnit))===null||n===void 0?void 0:n.unit}):t}const ax={quantitative:"quantitative",ordinal:"ordinal",temporal:"temporal",nominal:"nominal",geojson:"geojson"};function Hme(t){return t==="quantitative"||t==="temporal"}function uV(t){return t==="ordinal"||t==="nominal"}const z0=ax.quantitative,HE=ax.ordinal,Em=ax.temporal,$E=ax.nominal,n1=ax.geojson;function $me(t){if(t)switch(t=t.toLowerCase(),t){case"q":case z0:return"quantitative";case"t":case Em:return"temporal";case"o":case HE:return"ordinal";case"n":case $E:return"nominal";case n1:return"geojson"}}var Gme=globalThis&&globalThis.__rest||function(t,n){var e={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&n.indexOf(o)<0&&(e[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var f=0,o=Object.getOwnPropertySymbols(t);f{switch(n.fieldTitle){case"plain":return t.field;case"functional":return F1e(t);default:return R1e(t,n)}};let zV=IV;function RV(t){zV=t}function N1e(){RV(IV)}function am(t,n,{allowDisabling:e,includeDefault:o=!0}){var f,r;const a=(f=t8(t))===null||f===void 0?void 0:f.title;if(!ti(t))return a??t.title;const u=t,c=o?n8(u,n):void 0;return e?Rs(a,u.title,c):(r=a??u.title)!==null&&r!==void 0?r:c}function t8(t){if(Lm(t)&&t.axis)return t.axis;if(PV(t)&&t.legend)return t.legend;if(QE(t)&&t.header)return t.header}function n8(t,n){return zV(t,n)}function C2(t){var n;if(DV(t)){const{format:e,formatType:o}=t;return{format:e,formatType:o}}else{const e=(n=t8(t))!==null&&n!==void 0?n:{},{format:o,formatType:f}=e;return{format:o,formatType:f}}}function B1e(t,n){var e;switch(n){case"latitude":case"longitude":return"quantitative";case"row":case"column":case"facet":case"shape":case"strokeDash":return"nominal";case"order":return"ordinal"}if(e8(t)&&Ir(t.sort))return"ordinal";const{aggregate:o,bin:f,timeUnit:r}=t;if(r)return"temporal";if(f||o&&!_p(o)&&!Xh(o))return"quantitative";if(eg(t)&&((e=t.scale)===null||e===void 0?void 0:e.type))switch(jT[t.scale.type]){case"numeric":case"discretizing":return"quantitative";case"time":return"temporal"}return"nominal"}function th(t){if(ti(t))return t;if(m3(t))return t.condition}function Ws(t){if(la(t))return t;if(lx(t))return t.condition}function FV(t,n,e,o={}){if(bi(t)||wo(t)||fp(t)){const f=bi(t)?"string":wo(t)?"number":"boolean";return Kr(jge(n,f,t)),{value:t}}return la(t)?O2(t,n,e,o):lx(t)?Object.assign(Object.assign({},t),{condition:O2(t.condition,n,e,o)}):t}function O2(t,n,e,o){if(DV(t)){const{format:f,formatType:r}=t,a=qT(t,["format","formatType"]);if(F0(r)&&!e.customFormatTypes)return Kr(nP(n)),O2(a,n,e,o)}else{const f=Lm(t)?"axis":PV(t)?"legend":QE(t)?"header":null;if(f&&t[f]){const r=t[f],{format:a,formatType:u}=r,c=qT(r,["format","formatType"]);if(F0(u)&&!e.customFormatTypes)return Kr(nP(n)),O2(Object.assign(Object.assign({},t),{[f]:c}),n,e,o)}}return ti(t)?r8(t,n,o):j1e(t)}function j1e(t){let n=t.type;if(n)return t;const{datum:e}=t;return n=wo(e)?"quantitative":bi(e)?"nominal":Q0(e)?"temporal":void 0,Object.assign(Object.assign({},t),{type:n})}function r8(t,n,{compositeMark:e=!1}={}){const{aggregate:o,timeUnit:f,bin:r,field:a}=t,u=Object.assign({},t);if(!e&&o&&!EE(o)&&!_p(o)&&!Xh(o)&&(Kr(Vge(o)),delete u.aggregate),f&&(u.timeUnit=Gl(f)),a&&(u.field=`${a}`),Bo(r)&&(u.bin=v3(r,n)),xl(r)&&!sl(n)&&Kr(_me(n)),wc(u)){const{type:c}=u,i=$me(c);c!==i&&(u.type=i),c!=="quantitative"&&BU(o)&&(Kr(Uge(c,o)),u.type="quantitative")}else if(!PU(n)){const c=B1e(u,n);u.type=c}if(wc(u)){const{compatible:c,warning:i}=U1e(u,n)||{};c===!1&&Kr(i)}if(e8(u)&&bi(u.sort)){const{sort:c}=u;if(lP(c))return Object.assign(Object.assign({},u),{sort:{encoding:c}});const i=c.substr(1);if(c.charAt(0)==="-"&&lP(i))return Object.assign(Object.assign({},u),{sort:{encoding:i,order:"descending"}})}if(QE(u)){const{header:c}=u;if(c){const{orient:i}=c,s=qT(c,["orient"]);if(i)return Object.assign(Object.assign({},u),{header:Object.assign(Object.assign({},s),{labelOrient:c.labelOrient||i,titleOrient:c.titleOrient||i})})}}return u}function v3(t,n){return fp(t)?{maxbins:WL(n)}:t==="binned"?{binned:!0}:!t.maxbins&&!t.step?Object.assign(Object.assign({},t),{maxbins:WL(n)}):t}const Bg={compatible:!0};function U1e(t,n){const e=t.type;if(e==="geojson"&&n!=="shape")return{compatible:!1,warning:`Channel ${n} should not be used with a geojson data.`};switch(n){case Vh:case qh:case e3:return E2(t)?Bg:{compatible:!1,warning:Wge(n)};case cs:case ol:case gp:case e1:case zu:case hh:case dh:case tx:case rx:case t3:case D0:case n3:case r3:case Z0:case Tc:case xf:case i3:return Bg;case fh:case _c:case ch:case bf:return e!==z0?{compatible:!1,warning:`Channel ${n} should be used with a quantitative field only, not ${t.type} field.`}:Bg;case rd:case mp:case vp:case yp:case nd:case td:case ed:case yf:case uh:return e==="nominal"&&!t.sort?{compatible:!1,warning:`Channel ${n} should not be used with an unsorted discrete field.`}:Bg;case Ru:case xp:return!E2(t)&&!I1e(t)?{compatible:!1,warning:Yge(n)}:Bg;case nx:return t.type==="nominal"&&!("sort"in t)?{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}:Bg}}function Pm(t){const{formatType:n}=C2(t);return n==="time"||!n&&V1e(t)}function V1e(t){return t&&(t.type==="temporal"||ti(t)&&!!t.timeUnit)}function y3(t,{timeUnit:n,type:e,wrapTime:o,undefinedIfExprNotRequired:f}){var r;const a=n&&((r=Gl(n))===null||r===void 0?void 0:r.unit);let u=a||e==="temporal",c;return ix(t)?c=t.expr:Vi(t)?c=t.signal:Q0(t)?(u=!0,c=dy(t)):(bi(t)||wo(t))&&u&&(c=`datetime(${No(t)})`,Ime(a)&&(wo(t)&&t<1e4||bi(t)&&isNaN(Date.parse(t)))&&(c=dy({[a]:t}))),c?o&&u?`time(${c})`:c:f?void 0:No(t)}function NV(t,n){const{type:e}=t;return n.map(o=>{const f=y3(o,{timeUnit:ti(t)?t.timeUnit:void 0,type:e,undefinedIfExprNotRequired:!0});return f!==void 0?{signal:f}:o})}function ux(t,n){return Bo(t.bin)?bp(n)&&["ordinal","nominal"].includes(t.type):(console.warn("Only call this method for binned field defs."),!1)}const cP={labelAlign:{part:"labels",vgProp:"align"},labelBaseline:{part:"labels",vgProp:"baseline"},labelColor:{part:"labels",vgProp:"fill"},labelFont:{part:"labels",vgProp:"font"},labelFontSize:{part:"labels",vgProp:"fontSize"},labelFontStyle:{part:"labels",vgProp:"fontStyle"},labelFontWeight:{part:"labels",vgProp:"fontWeight"},labelOpacity:{part:"labels",vgProp:"opacity"},labelOffset:null,labelPadding:null,gridColor:{part:"grid",vgProp:"stroke"},gridDash:{part:"grid",vgProp:"strokeDash"},gridDashOffset:{part:"grid",vgProp:"strokeDashOffset"},gridOpacity:{part:"grid",vgProp:"opacity"},gridWidth:{part:"grid",vgProp:"strokeWidth"},tickColor:{part:"ticks",vgProp:"stroke"},tickDash:{part:"ticks",vgProp:"strokeDash"},tickDashOffset:{part:"ticks",vgProp:"strokeDashOffset"},tickOpacity:{part:"ticks",vgProp:"opacity"},tickSize:null,tickWidth:{part:"ticks",vgProp:"strokeWidth"}};function cx(t){return t?.condition}const BV=["domain","grid","labels","ticks","title"],q1e={grid:"grid",gridCap:"grid",gridColor:"grid",gridDash:"grid",gridDashOffset:"grid",gridOpacity:"grid",gridScale:"grid",gridWidth:"grid",orient:"main",bandPosition:"both",aria:"main",description:"main",domain:"main",domainCap:"main",domainColor:"main",domainDash:"main",domainDashOffset:"main",domainOpacity:"main",domainWidth:"main",format:"main",formatType:"main",labelAlign:"main",labelAngle:"main",labelBaseline:"main",labelBound:"main",labelColor:"main",labelFlush:"main",labelFlushOffset:"main",labelFont:"main",labelFontSize:"main",labelFontStyle:"main",labelFontWeight:"main",labelLimit:"main",labelLineHeight:"main",labelOffset:"main",labelOpacity:"main",labelOverlap:"main",labelPadding:"main",labels:"main",labelSeparation:"main",maxExtent:"main",minExtent:"main",offset:"both",position:"main",tickCap:"main",tickColor:"main",tickDash:"main",tickDashOffset:"main",tickMinStep:"both",tickOffset:"both",tickOpacity:"main",tickRound:"both",ticks:"main",tickSize:"main",tickWidth:"both",title:"main",titleAlign:"main",titleAnchor:"main",titleAngle:"main",titleBaseline:"main",titleColor:"main",titleFont:"main",titleFontSize:"main",titleFontStyle:"main",titleFontWeight:"main",titleLimit:"main",titleLineHeight:"main",titleOpacity:"main",titlePadding:"main",titleX:"main",titleY:"main",encode:"both",scale:"both",tickBand:"both",tickCount:"both",tickExtra:"both",translate:"both",values:"both",zindex:"both"},jV={orient:1,aria:1,bandPosition:1,description:1,domain:1,domainCap:1,domainColor:1,domainDash:1,domainDashOffset:1,domainOpacity:1,domainWidth:1,format:1,formatType:1,grid:1,gridCap:1,gridColor:1,gridDash:1,gridDashOffset:1,gridOpacity:1,gridWidth:1,labelAlign:1,labelAngle:1,labelBaseline:1,labelBound:1,labelColor:1,labelFlush:1,labelFlushOffset:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelLineHeight:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labels:1,labelSeparation:1,maxExtent:1,minExtent:1,offset:1,position:1,tickBand:1,tickCap:1,tickColor:1,tickCount:1,tickDash:1,tickDashOffset:1,tickExtra:1,tickMinStep:1,tickOffset:1,tickOpacity:1,tickRound:1,ticks:1,tickSize:1,tickWidth:1,title:1,titleAlign:1,titleAnchor:1,titleAngle:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleLineHeight:1,titleOpacity:1,titlePadding:1,titleX:1,titleY:1,translate:1,values:1,zindex:1},H1e=Object.assign(Object.assign({},jV),{style:1,labelExpr:1,encoding:1});function fP(t){return!!H1e[t]}const $1e={axis:1,axisBand:1,axisBottom:1,axisDiscrete:1,axisLeft:1,axisPoint:1,axisQuantitative:1,axisRight:1,axisTemporal:1,axisTop:1,axisX:1,axisXBand:1,axisXDiscrete:1,axisXPoint:1,axisXQuantitative:1,axisXTemporal:1,axisY:1,axisYBand:1,axisYDiscrete:1,axisYPoint:1,axisYQuantitative:1,axisYTemporal:1},UV=Xr($1e);function id(t){return"mark"in t}class x3{constructor(n,e){this.name=n,this.run=e}hasMatchingType(n){return id(n)?_1e(n.mark)===this.name:!1}}var G1e=globalThis&&globalThis.__rest||function(t,n){var e={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&n.indexOf(o)<0&&(e[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var f=0,o=Object.getOwnPropertySymbols(t);f!!o.field):ti(e)||m3(e):!1}function VV(t,n){const e=t&&t[n];return e?Ir(e)?L0(e,o=>!!o.field):ti(e)||mh(e)||lx(e):!1}function $T(t,n){if(sl(n)){const e=t[n];if((ti(e)||mh(e))&&uV(e.type)){const o=DU(n);return VV(t,o)}}return!1}function i8(t){return L0($0e,n=>{if(y0(t,n)){const e=t[n];if(Ir(e))return L0(e,o=>!!o.aggregate);{const o=th(e);return o&&!!o.aggregate}}return!1})}function qV(t,n){const e=[],o=[],f=[],r=[],a={};return a8(t,(u,c)=>{if(ti(u)){const{field:i,aggregate:s,bin:l,timeUnit:d}=u,h=G1e(u,["field","aggregate","bin","timeUnit"]);if(s||d||l){const m=t8(u),g=m?.title;let p=hi(u,{forAs:!0});const v=Object.assign(Object.assign(Object.assign({},g?[]:{title:am(u,n,{allowDisabling:!0})}),h),{field:p});if(s){let y;if(_p(s)?(y="argmax",p=hi({op:"argmax",field:s.argmax},{forAs:!0}),v.field=`${p}.${i}`):Xh(s)?(y="argmin",p=hi({op:"argmin",field:s.argmin},{forAs:!0}),v.field=`${p}.${i}`):s!=="boxplot"&&s!=="errorbar"&&s!=="errorband"&&(y=s),y){const x={op:y,as:p};i&&(x.field=i),r.push(x)}}else if(e.push(p),wc(u)&&Bo(l)){if(o.push({bin:l,field:i,as:p}),e.push(hi(u,{binSuffix:"end"})),ux(u,c)&&e.push(hi(u,{binSuffix:"range"})),sl(c)){const y={field:`${p}_end`};a[`${c}2`]=y}v.bin="binned",PU(c)||(v.type=z0)}else if(d){f.push({timeUnit:d,field:i,as:p});const y=wc(u)&&u.type!==Em&&"time";y&&(c===tx||c===D0?v.formatType=y:tge(c)?v.legend=Object.assign({formatType:y},v.legend):sl(c)&&(v.axis=Object.assign({formatType:y},v.axis)))}a[c]=v}else e.push(i),a[c]=t[c]}else a[c]=t[c]}),{bins:o,timeUnits:f,aggregate:r,groupby:e,encoding:a}}function W1e(t,n,e){const o=rge(n,e);if(o){if(o==="binned"){const f=t[n===yf?cs:ol];return!!(ti(f)&&ti(t[n])&&xl(f.bin))}}else return!1;return!0}function Y1e(t,n,e,o){const f={};for(const r of Xr(t))LU(r)||Kr(Gge(r));for(let r of J0e){if(!t[r])continue;const a=t[r];if(t1(r)){const u=IU(r),c=f[u];if(ti(c)){if(Hme(c.type)&&ti(a)){Kr(Nge(u));continue}}else r=u,Kr(Bge(u))}if(r==="angle"&&n==="arc"&&!t.theta&&(Kr(Fge),r=Tc),!W1e(t,r,n)){Kr(l3(r,n));continue}if(r===nd&&n==="line"){const u=th(t[r]);if(u?.aggregate){Kr(Hge);continue}}if(r===zu&&(e?"fill"in t:"stroke"in t)){Kr(JU("encoding",{fill:"fill"in t,stroke:"stroke"in t}));continue}if(r===rx||r===nx&&!Ir(a)&&!pf(a)||r===D0&&Ir(a))a&&(f[r]=ki(a).reduce((u,c)=>(ti(c)?u.push(r8(c,r)):Kr(BT(c,r)),u),[]));else{if(r===D0&&a===null)f[r]=null;else if(!ti(a)&&!mh(a)&&!pf(a)&&!g3(a)&&!Vi(a)){Kr(BT(a,r));continue}f[r]=FV(a,r,o)}}return f}function b3(t,n){const e={};for(const o of Xr(t)){const f=FV(t[o],o,n,{compositeMark:!0});e[o]=f}return e}function X1e(t){const n=[];for(const e of Xr(t))if(y0(t,e)){const o=t[e],f=ki(o);for(const r of f)ti(r)?n.push(r):m3(r)&&n.push(r.condition)}return n}function a8(t,n,e){if(!!t)for(const o of Xr(t)){const f=t[o];if(Ir(f))for(const r of f)n.call(e,r,o);else n.call(e,f,o)}}function Z1e(t,n,e,o){return t?Xr(t).reduce((f,r)=>{const a=t[r];return Ir(a)?a.reduce((u,c)=>n.call(o,u,c,r),f):n.call(o,f,a,r)},e):e}function HV(t,n){return Xr(n).reduce((e,o)=>{switch(o){case cs:case ol:case n3:case i3:case r3:case yf:case uh:case gp:case e1:case Tc:case td:case xf:case ed:case ch:case fh:case bf:case _c:case tx:case Ru:case Z0:case D0:return e;case nx:if(t==="line"||t==="trail")return e;case rx:case t3:{const f=n[o];if(Ir(f)||ti(f))for(const r of ki(f))r.aggregate||e.push(hi(r,{}));return e}case nd:if(t==="trail")return e;case zu:case hh:case dh:case rd:case mp:case vp:case xp:case yp:{const f=th(n[o]);return f&&!f.aggregate&&e.push(hi(f,{})),e}}},[])}var $V=globalThis&&globalThis.__rest||function(t,n){var e={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&n.indexOf(o)<0&&(e[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var f=0,o=Object.getOwnPropertySymbols(t);f{const c=o?` of ${o8(n)}`:"";return{field:a+n.field,type:n.type,title:Vi(u)?{signal:`${u}"${escape(c)}"`}:u+c}}),r=X1e(e).map(P1e);return{tooltip:[...f,...Vf(r,Ba)]}}function o8(t){const{title:n,field:e}=t;return Rs(n,e)}function s8(t,n,e,o,f){const{scale:r,axis:a}=e;return({partName:u,mark:c,positionPrefix:i,endPositionPrefix:s=void 0,extraEncoding:l={}})=>{const d=o8(e);return GV(t,u,f,{mark:c,encoding:Object.assign(Object.assign(Object.assign({[n]:Object.assign(Object.assign(Object.assign({field:`${i}_${e.field}`,type:e.type},d!==void 0?{title:d}:{}),r!==void 0?{scale:r}:{}),a!==void 0?{axis:a}:{})},bi(s)?{[`${n}2`]:{field:`${s}_${e.field}`}}:{}),o),l)})}}function GV(t,n,e,o){const{clip:f,color:r,opacity:a}=t,u=t.type;return t[n]||t[n]===void 0&&e[n]?[Object.assign(Object.assign({},o),{mark:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},e[n]),f?{clip:f}:{}),r?{color:r}:{}),a?{opacity:a}:{}),eh(o.mark)?o.mark:{type:o.mark}),{style:`${u}-${String(n)}`}),fp(t[n])?{}:t[n])})]:[]}function WV(t,n,e){const{encoding:o}=t,f=n==="vertical"?"y":"x",r=o[f],a=o[`${f}2`],u=o[`${f}Error`],c=o[`${f}Error2`];return{continuousAxisChannelDef:Tb(r,e),continuousAxisChannelDef2:Tb(a,e),continuousAxisChannelDefError:Tb(u,e),continuousAxisChannelDefError2:Tb(c,e),continuousAxis:f}}function Tb(t,n){if(t?.aggregate){const{aggregate:e}=t,o=$V(t,["aggregate"]);return e!==n&&Kr(bme(e,n)),o}else return t}function YV(t,n){const{mark:e,encoding:o}=t,{x:f,y:r}=o;if(eh(e)&&e.orient)return e.orient;if(qf(f)){if(qf(r)){const a=ti(f)&&f.aggregate,u=ti(r)&&r.aggregate;if(!a&&u===n)return"vertical";if(!u&&a===n)return"horizontal";if(a===n&&u===n)throw new Error("Both x and y cannot have aggregate");return Pm(r)&&!Pm(f)?"horizontal":"vertical"}return"horizontal"}else{if(qf(r))return"vertical";throw new Error(`Need a valid continuous axis for ${n}s`)}}var u_=globalThis&&globalThis.__rest||function(t,n){var e={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&n.indexOf(o)<0&&(e[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var f=0,o=Object.getOwnPropertySymbols(t);fs8(i,y,v,ue,n.boxplot),D=E(S),O=E(k),R=E(Object.assign(Object.assign({},S),A?{size:A}:{})),z=GT([{fieldPrefix:h==="min-max"?"upper_whisker_":"max_",titlePrefix:"Max"},{fieldPrefix:"upper_box_",titlePrefix:"Q3"},{fieldPrefix:"mid_box_",titlePrefix:"Median"},{fieldPrefix:"lower_box_",titlePrefix:"Q1"},{fieldPrefix:h==="min-max"?"lower_whisker_":"min_",titlePrefix:"Min"}],v,k),L={type:"tick",color:"black",opacity:1,orient:b,invalid:d,aria:!1},P=h==="min-max"?z:GT([{fieldPrefix:"upper_whisker_",titlePrefix:"Upper Whisker"},{fieldPrefix:"lower_whisker_",titlePrefix:"Lower Whisker"}],v,k),N=[...D({partName:"rule",mark:{type:"rule",invalid:d,aria:!1},positionPrefix:"lower_whisker",endPositionPrefix:"lower_box",extraEncoding:P}),...D({partName:"rule",mark:{type:"rule",invalid:d,aria:!1},positionPrefix:"upper_box",endPositionPrefix:"upper_whisker",extraEncoding:P}),...D({partName:"ticks",mark:L,positionPrefix:"lower_whisker",extraEncoding:P}),...D({partName:"ticks",mark:L,positionPrefix:"upper_whisker",extraEncoding:P})],B=[...h!=="tukey"?N:[],...O({partName:"box",mark:Object.assign(Object.assign({type:"bar"},l?{size:l}:{}),{orient:T,invalid:d,ariaRoleDescription:"box"}),positionPrefix:"lower_box",endPositionPrefix:"upper_box",extraEncoding:z}),...R({partName:"median",mark:Object.assign(Object.assign(Object.assign({type:"tick",invalid:d},Ei(n.boxplot.median)&&n.boxplot.median.color?{color:n.boxplot.median.color}:{}),l?{size:l}:{}),{orient:b,aria:!1}),positionPrefix:"mid_box",extraEncoding:z})];if(h==="min-max")return Object.assign(Object.assign({},c),{transform:((o=c.transform)!==null&&o!==void 0?o:[]).concat(p),layer:B});const G=`datum["lower_box_${v.field}"]`,W=`datum["upper_box_${v.field}"]`,K=`(${W} - ${G})`,te=`${G} - ${s} * ${K}`,Y=`${W} + ${s} * ${K}`,Z=`datum["${v.field}"]`,re={joinaggregate:JV(v.field),groupby:x},U={transform:[{filter:`(${te} <= ${Z}) && (${Z} <= ${Y})`},{aggregate:[{op:"min",field:v.field,as:`lower_whisker_${v.field}`},{op:"max",field:v.field,as:`upper_whisker_${v.field}`},{op:"min",field:`lower_box_${v.field}`,as:`lower_box_${v.field}`},{op:"max",field:`upper_box_${v.field}`,as:`upper_box_${v.field}`},...w],groupby:x}],layer:N},q=u_(S,["tooltip"]),{scale:$,axis:ne}=v,H=o8(v),Q=Eu(ne,["title"]),ee=GV(i,"outliers",n.boxplot,{transform:[{filter:`(${Z} < ${te}) || (${Z} > ${Y})`}],mark:"point",encoding:Object.assign(Object.assign(Object.assign({[y]:Object.assign(Object.assign(Object.assign({field:v.field,type:v.type},H!==void 0?{title:H}:{}),$!==void 0?{scale:$}:{}),_o(Q)?{}:{axis:Q})},q),M?{color:M}:{}),_?{tooltip:_}:{})})[0];let ie;const ae=[...m,...g,re];return ee?ie={transform:ae,layer:[ee,U]}:(ie=U,ie.transform.unshift(...ae)),Object.assign(Object.assign({},c),{layer:[ie,{transform:p,layer:B}]})}function JV(t){return[{op:"q1",field:t,as:`lower_box_${t}`},{op:"q3",field:t,as:`upper_box_${t}`}]}function eve(t,n,e){const o=YV(t,L2),{continuousAxisChannelDef:f,continuousAxis:r}=WV(t,o,L2),a=f.field,u=XV(n),c=[...JV(a),{op:"median",field:a,as:`mid_box_${a}`},{op:"min",field:a,as:(u==="min-max"?"lower_whisker_":"min_")+a},{op:"max",field:a,as:(u==="min-max"?"upper_whisker_":"max_")+a}],i=u==="min-max"||u==="tukey"?[]:[{calculate:`datum["upper_box_${a}"] - datum["lower_box_${a}"]`,as:`iqr_${a}`},{calculate:`min(datum["upper_box_${a}"] + datum["iqr_${a}"] * ${n}, datum["max_${a}"])`,as:`upper_whisker_${a}`},{calculate:`max(datum["lower_box_${a}"] - datum["iqr_${a}"] * ${n}, datum["min_${a}"])`,as:`lower_whisker_${a}`}],s=t.encoding,l=r;s[l];const d=u_(s,[typeof l=="symbol"?l:l+""]),{customTooltipWithoutAggregatedField:h,filteredEncoding:m}=J1e(d),{bins:g,timeUnits:p,aggregate:v,groupby:y,encoding:x}=qV(m,e),w=o==="vertical"?"horizontal":"vertical",k=o,b=[...g,...p,{aggregate:[...v,...c],groupby:y},...i];return{bins:g,timeUnits:p,transform:b,groupby:y,aggregate:v,continuousAxisChannelDef:f,continuousAxis:r,encodingWithoutContinuousAxis:x,ticksOrient:w,boxOrient:k,customTooltipWithoutAggregatedField:h}}var hP=globalThis&&globalThis.__rest||function(t,n){var e={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&n.indexOf(o)<0&&(e[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var f=0,o=Object.getOwnPropertySymbols(t);f1?{layer:m}:Object.assign({},m[0]))}function rve(t,n){const{encoding:e}=t;if(ive(e))return{orient:YV(t,n),inputType:"raw"};const o=ave(e),f=ove(e),r=e.x,a=e.y;if(o){if(f)throw new Error(`${n} cannot be both type aggregated-upper-lower and aggregated-error`);const u=e.x2,c=e.y2;if(la(u)&&la(c))throw new Error(`${n} cannot have both x2 and y2`);if(la(u)){if(qf(r))return{orient:"horizontal",inputType:"aggregated-upper-lower"};throw new Error(`Both x and x2 have to be quantitative in ${n}`)}else if(la(c)){if(qf(a))return{orient:"vertical",inputType:"aggregated-upper-lower"};throw new Error(`Both y and y2 have to be quantitative in ${n}`)}throw new Error("No ranged axis")}else{const u=e.xError,c=e.xError2,i=e.yError,s=e.yError2;if(la(c)&&!la(u))throw new Error(`${n} cannot have xError2 without xError`);if(la(s)&&!la(i))throw new Error(`${n} cannot have yError2 without yError`);if(la(u)&&la(i))throw new Error(`${n} cannot have both xError and yError with both are quantiative`);if(la(u)){if(qf(r))return{orient:"horizontal",inputType:"aggregated-error"};throw new Error("All x, xError, and xError2 (if exist) have to be quantitative")}else if(la(i)){if(qf(a))return{orient:"vertical",inputType:"aggregated-error"};throw new Error("All y, yError, and yError2 (if exist) have to be quantitative")}throw new Error("No ranged axis")}}function ive(t){return(la(t.x)||la(t.y))&&!la(t.x2)&&!la(t.y2)&&!la(t.xError)&&!la(t.xError2)&&!la(t.yError)&&!la(t.yError2)}function ave(t){return la(t.x2)||la(t.y2)}function ove(t){return la(t.xError)||la(t.xError2)||la(t.yError)||la(t.yError2)}function QV(t,n,e){var o;const{mark:f,encoding:r,params:a,projection:u}=t,c=hP(t,["mark","encoding","params","projection"]),i=eh(f)?f:{type:f};a&&Kr(XU(n));const{orient:s,inputType:l}=rve(t,n),{continuousAxisChannelDef:d,continuousAxisChannelDef2:h,continuousAxisChannelDefError:m,continuousAxisChannelDefError2:g,continuousAxis:p}=WV(t,s,n),{errorBarSpecificAggregate:v,postAggregateCalculates:y,tooltipSummary:x,tooltipTitleWithFieldName:w}=sve(i,d,h,m,g,l,n,e),k=r,b=p;k[b];const T=p==="x"?"x2":"y2";k[T];const _=p==="x"?"xError":"yError";k[_];const M=p==="x"?"xError2":"yError2";k[M];const A=hP(k,[typeof b=="symbol"?b:b+"",typeof T=="symbol"?T:T+"",typeof _=="symbol"?_:_+"",typeof M=="symbol"?M:M+""]),{bins:S,timeUnits:E,aggregate:D,groupby:O,encoding:R}=qV(A,e),z=[...D,...v],L=l!=="raw"?[]:O,P=GT(x,d,R,w);return{transform:[...(o=c.transform)!==null&&o!==void 0?o:[],...S,...E,...z.length===0?[]:[{aggregate:z,groupby:L}],...y],groupby:L,continuousAxisChannelDef:d,continuousAxis:p,encodingWithoutContinuousAxis:R,ticksOrient:s==="vertical"?"horizontal":"vertical",markDef:i,outerSpec:c,tooltipEncoding:P}}function sve(t,n,e,o,f,r,a,u){let c=[],i=[];const s=n.field;let l,d=!1;if(r==="raw"){const h=t.center?t.center:t.extent?t.extent==="iqr"?"median":"mean":u.errorbar.center,m=t.extent?t.extent:h==="mean"?"stderr":"iqr";if(h==="median"!=(m==="iqr")&&Kr(xme(h,m,a)),m==="stderr"||m==="stdev")c=[{op:m,field:s,as:`extent_${s}`},{op:h,field:s,as:`center_${s}`}],i=[{calculate:`datum["center_${s}"] + datum["extent_${s}"]`,as:`upper_${s}`},{calculate:`datum["center_${s}"] - datum["extent_${s}"]`,as:`lower_${s}`}],l=[{fieldPrefix:"center_",titlePrefix:Qy(h)},{fieldPrefix:"upper_",titlePrefix:dP(h,m,"+")},{fieldPrefix:"lower_",titlePrefix:dP(h,m,"-")}],d=!0;else{let g,p,v;m==="ci"?(g="mean",p="ci0",v="ci1"):(g="median",p="q1",v="q3"),c=[{op:p,field:s,as:`lower_${s}`},{op:v,field:s,as:`upper_${s}`},{op:g,field:s,as:`center_${s}`}],l=[{fieldPrefix:"upper_",titlePrefix:am({field:s,aggregate:v,type:"quantitative"},u,{allowDisabling:!1})},{fieldPrefix:"lower_",titlePrefix:am({field:s,aggregate:p,type:"quantitative"},u,{allowDisabling:!1})},{fieldPrefix:"center_",titlePrefix:am({field:s,aggregate:g,type:"quantitative"},u,{allowDisabling:!1})}]}}else{(t.center||t.extent)&&Kr(yme(t.center,t.extent)),r==="aggregated-upper-lower"?(l=[],i=[{calculate:`datum["${e.field}"]`,as:`upper_${s}`},{calculate:`datum["${s}"]`,as:`lower_${s}`}]):r==="aggregated-error"&&(l=[{fieldPrefix:"",titlePrefix:s}],i=[{calculate:`datum["${s}"] + datum["${o.field}"]`,as:`upper_${s}`}],f?i.push({calculate:`datum["${s}"] + datum["${f.field}"]`,as:`lower_${s}`}):i.push({calculate:`datum["${s}"] - datum["${o.field}"]`,as:`lower_${s}`}));for(const h of i)l.push({fieldPrefix:h.as.substring(0,6),titlePrefix:P0(P0(h.calculate,'datum["',""),'"]',"")})}return{postAggregateCalculates:i,errorBarSpecificAggregate:c,tooltipSummary:l,tooltipTitleWithFieldName:d}}function dP(t,n,e){return`${Qy(t)} ${e} ${n}`}const u8="errorband",lve=["band","borders"],uve=new x3(u8,eq);function eq(t,{config:n}){t=Object.assign(Object.assign({},t),{encoding:b3(t.encoding,n)});const{transform:e,continuousAxisChannelDef:o,continuousAxis:f,encodingWithoutContinuousAxis:r,markDef:a,outerSpec:u,tooltipEncoding:c}=QV(t,u8,n),i=a,s=s8(i,f,o,r,n.errorband),l=t.encoding.x!==void 0&&t.encoding.y!==void 0;let d={type:l?"area":"rect"},h={type:l?"line":"rule"};const m=Object.assign(Object.assign({},i.interpolate?{interpolate:i.interpolate}:{}),i.tension&&i.interpolate?{tension:i.tension}:{});return l?(d=Object.assign(Object.assign(Object.assign({},d),m),{ariaRoleDescription:"errorband"}),h=Object.assign(Object.assign(Object.assign({},h),m),{aria:!1})):i.interpolate?Kr(iP("interpolate")):i.tension&&Kr(iP("tension")),Object.assign(Object.assign({},u),{transform:e,layer:[...s({partName:"band",mark:d,positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:c}),...s({partName:"borders",mark:h,positionPrefix:"lower",extraEncoding:c}),...s({partName:"borders",mark:h,positionPrefix:"upper",extraEncoding:c})]})}const tq={};function c8(t,n,e){const o=new x3(t,n);tq[t]={normalizer:o,parts:e}}function cve(){return Xr(tq)}c8(L2,ZV,K1e);c8(l8,KV,tve);c8(u8,eq,lve);const fve=["gradientHorizontalMaxLength","gradientHorizontalMinLength","gradientVerticalMaxLength","gradientVerticalMinLength","unselectedOpacity"],nq={titleAlign:"align",titleAnchor:"anchor",titleAngle:"angle",titleBaseline:"baseline",titleColor:"color",titleFont:"font",titleFontSize:"fontSize",titleFontStyle:"fontStyle",titleFontWeight:"fontWeight",titleLimit:"limit",titleLineHeight:"lineHeight",titleOrient:"orient",titlePadding:"offset"},rq={labelAlign:"align",labelAnchor:"anchor",labelAngle:"angle",labelBaseline:"baseline",labelColor:"color",labelFont:"font",labelFontSize:"fontSize",labelFontStyle:"fontStyle",labelFontWeight:"fontWeight",labelLimit:"limit",labelLineHeight:"lineHeight",labelOrient:"orient",labelPadding:"offset"},hve=Xr(nq),dve=Xr(rq),pve={header:1,headerRow:1,headerColumn:1,headerFacet:1},iq=Xr(pve),aq=["size","shape","fill","stroke","strokeDash","strokeWidth","opacity"],gve={gradientHorizontalMaxLength:200,gradientHorizontalMinLength:100,gradientVerticalMaxLength:200,gradientVerticalMinLength:64,unselectedOpacity:.35},mve={aria:1,clipHeight:1,columnPadding:1,columns:1,cornerRadius:1,description:1,direction:1,fillColor:1,format:1,formatType:1,gradientLength:1,gradientOpacity:1,gradientStrokeColor:1,gradientStrokeWidth:1,gradientThickness:1,gridAlign:1,labelAlign:1,labelBaseline:1,labelColor:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labelSeparation:1,legendX:1,legendY:1,offset:1,orient:1,padding:1,rowPadding:1,strokeColor:1,symbolDash:1,symbolDashOffset:1,symbolFillColor:1,symbolLimit:1,symbolOffset:1,symbolOpacity:1,symbolSize:1,symbolStrokeColor:1,symbolStrokeWidth:1,symbolType:1,tickCount:1,tickMinStep:1,title:1,titleAlign:1,titleAnchor:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleLineHeight:1,titleOpacity:1,titleOrient:1,titlePadding:1,type:1,values:1,zindex:1},nh="_vgsid_",vve={point:{on:"click",fields:[nh],toggle:"event.shiftKey",resolve:"global",clear:"dblclick"},interval:{on:"[mousedown, window:mouseup] > window:mousemove!",encodings:["x","y"],translate:"[mousedown, window:mouseup] > window:mousemove!",zoom:"wheel!",mark:{fill:"#333",fillOpacity:.125,stroke:"white"},resolve:"global",clear:"dblclick"}};function f8(t){return t==="legend"||!!t?.legend}function O4(t){return f8(t)&&Ei(t)}function h8(t){return!!t?.select}var yve=globalThis&&globalThis.__rest||function(t,n){var e={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&n.indexOf(o)<0&&(e[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var f=0,o=Object.getOwnPropertySymbols(t);fthis.mapLayerOrUnit(o,e))})}mapHConcat(n,e){return Object.assign(Object.assign({},n),{hconcat:n.hconcat.map(o=>this.map(o,e))})}mapVConcat(n,e){return Object.assign(Object.assign({},n),{vconcat:n.vconcat.map(o=>this.map(o,e))})}mapConcat(n,e){const{concat:o}=n,f=Bve(n,["concat"]);return Object.assign(Object.assign({},f),{concat:o.map(r=>this.map(r,e))})}mapFacet(n,e){return Object.assign(Object.assign({},n),{spec:this.map(n.spec,e)})}mapRepeat(n,e){return Object.assign(Object.assign({},n),{spec:this.map(n.spec,e)})}}const jve={zero:1,center:1,normalize:1};function Uve(t){return t in jve}const Vve=new Set([mV,c3,u3,M2,h3,WE,YE,f3,vV,GE]),qve=new Set([c3,u3,mV]);function jg(t){return ti(t)&&Om(t)==="quantitative"&&!t.bin}function yP(t,n){var e,o;const f=n==="x"?"y":"radius",r=t[n],a=t[f];if(ti(r)&&ti(a))if(jg(r)&&jg(a)){if(r.stack)return n;if(a.stack)return f;const u=ti(r)&&!!r.aggregate,c=ti(a)&&!!a.aggregate;if(u!==c)return u?n:f;{const i=(e=r.scale)===null||e===void 0?void 0:e.type,s=(o=a.scale)===null||o===void 0?void 0:o.type;if(i&&i!=="linear")return f;if(s&&s!=="linear")return n}}else{if(jg(r))return n;if(jg(a))return f}else{if(jg(r))return n;if(jg(a))return f}}function Hve(t){switch(t){case"x":return"y";case"y":return"x";case"theta":return"radius";case"radius":return"theta"}}function fq(t,n){var e,o;const f=eh(t)?t.type:t;if(!Vve.has(f))return null;const r=yP(n,"x")||yP(n,"theta");if(!r)return null;const a=n[r],u=ti(a)?hi(a,{}):void 0,c=Hve(r),i=[],s=new Set;if(n[c]){const h=n[c],m=ti(h)?hi(h,{}):void 0;m&&m!==u&&(i.push(c),s.add(m));const g=c==="x"?"xOffset":"yOffset",p=n[g],v=ti(p)?hi(p,{}):void 0;v&&v!==u&&(i.push(g),s.add(v))}const l=K0e.reduce((h,m)=>{if(m!=="tooltip"&&y0(n,m)){const g=n[m];for(const p of ki(g)){const v=th(p);if(v.aggregate)continue;const y=hi(v,{});(!y||!s.has(y))&&h.push({channel:m,fieldDef:v})}}return h},[]);let d;return a.stack!==void 0?fp(a.stack)?d=a.stack?"zero":null:d=a.stack:qve.has(f)&&(d="zero"),!d||!Uve(d)||i8(n)&&l.length===0?null:((e=a?.scale)===null||e===void 0?void 0:e.type)&&((o=a?.scale)===null||o===void 0?void 0:o.type)!==Cu.LINEAR?(Kr(gme(a.scale.type)),null):la(n[ph(r)])?(a.stack!==void 0&&Kr(pme(r)),null):(ti(a)&&a.aggregate&&!cge.has(a.aggregate)&&Kr(mme(a.aggregate)),{groupbyChannels:i,groupbyFields:s,fieldChannel:r,impute:a.impute===null?!1:kp(f),stackBy:l,offset:d})}var hq=globalThis&&globalThis.__rest||function(t,n){var e={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&n.indexOf(o)<0&&(e[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var f=0,o=Object.getOwnPropertySymbols(t);f1?n:n.type}function Gve(t){for(const n of["line","area","rule","trail"])t[n]&&(t=Object.assign(Object.assign({},t),{[n]:Eu(t[n],["point","line"])}));return t}function L4(t,n={},e){return t.point==="transparent"?{opacity:0}:t.point?Ei(t.point)?t.point:{}:t.point!==void 0?null:n.point||e.shape?Ei(n.point)?n.point:{}:void 0}function xP(t,n={}){return t.line?t.line===!0?{}:t.line:t.line!==void 0?null:n.line?n.line===!0?{}:n.line:void 0}class Wve{constructor(){this.name="path-overlay"}hasMatchingType(n,e){if(id(n)){const{mark:o,encoding:f}=n,r=eh(o)?o:{type:o};switch(r.type){case"line":case"rule":case"trail":return!!L4(r,e[r.type],f);case"area":return!!L4(r,e[r.type],f)||!!xP(r,e[r.type])}}return!1}run(n,e,o){const{config:f}=e,{params:r,projection:a,mark:u,encoding:c}=n,i=hq(n,["params","projection","mark","encoding"]),s=b3(c,f),l=eh(u)?u:{type:u},d=L4(l,f[l.type],s),h=l.type==="area"&&xP(l,f[l.type]),m=[Object.assign(Object.assign({},r?{params:r}:{}),{mark:$ve(Object.assign(Object.assign({},l.type==="area"&&l.opacity===void 0&&l.fillOpacity===void 0?{opacity:.7}:{}),l)),encoding:Eu(s,["shape"])})],g=fq(l,s);let p=s;if(g){const{fieldChannel:v,offset:y}=g;p=Object.assign(Object.assign({},s),{[v]:Object.assign(Object.assign({},s[v]),y?{stack:y}:{})})}return p=Eu(p,["y2","x2"]),h&&m.push(Object.assign(Object.assign({},a?{projection:a}:{}),{mark:Object.assign(Object.assign({type:"line"},Am(l,["clip","interpolate","tension","tooltip"])),h),encoding:p})),d&&m.push(Object.assign(Object.assign({},a?{projection:a}:{}),{mark:Object.assign(Object.assign({type:"point",opacity:1,filled:!0},Am(l,["clip","tooltip"])),d),encoding:p})),o(Object.assign(Object.assign({},i),{layer:m}),Object.assign(Object.assign({},e),{config:Gve(f)}))}}var Yve=globalThis&&globalThis.__rest||function(t,n){var e={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&n.indexOf(o)<0&&(e[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var f=0,o=Object.getOwnPropertySymbols(t);f_P(r,n)).filter(r=>r);else{const r=_P(f,n);r!==void 0&&(e[o]=r)}}return e}class Zve{constructor(){this.name="RuleForRangedLine"}hasMatchingType(n){if(id(n)){const{encoding:e,mark:o}=n;if(o==="line"||eh(o)&&o.type==="line")for(const f of X0e){const r=J0(f),a=e[r];if(e[f]&&(ti(a)&&!xl(a.bin)||mh(a)))return!0}}return!1}run(n,e,o){const{encoding:f,mark:r}=n;return Kr(Jge(!!f.x2,!!f.y2)),o(Object.assign(Object.assign({},n),{mark:Ei(r)?Object.assign(Object.assign({},r),{type:"rule"}):"rule"}),e)}}var vd=globalThis&&globalThis.__rest||function(t,n){var e={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&n.indexOf(o)<0&&(e[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var f=0,o=Object.getOwnPropertySymbols(t);f{const d=Object.assign(Object.assign({},i),{layer:l}),h=`${(f.name||"")+s}child__layer_${Xo(l)}`,m=this.mapLayerOrUnit(f,Object.assign(Object.assign({},e),{repeater:d,repeaterPrefix:h}));return m.name=h,m})})}mapNonLayerRepeat(n,e){var o;const{repeat:f,spec:r,data:a}=n,u=vd(n,["repeat","spec","data"]);!Ir(f)&&n.columns&&(n=Eu(n,["columns"]),Kr(eP("repeat")));const c=[],{repeater:i={},repeaterPrefix:s=""}=e,l=!Ir(f)&&f.row||[i?i.row:null],d=!Ir(f)&&f.column||[i?i.column:null],h=Ir(f)&&f||[i?i.repeat:null];for(const g of h)for(const p of l)for(const v of d){const y={repeat:g,row:p,column:v,layer:i.layer},x=(r.name||"")+s+"child__"+(Ir(f)?`${Xo(g)}`:(f.row?`row_${Xo(p)}`:"")+(f.column?`column_${Xo(v)}`:"")),w=this.map(r,Object.assign(Object.assign({},e),{repeater:y,repeaterPrefix:x}));w.name=x,c.push(Eu(w,["data"]))}const m=Ir(f)?n.columns:f.column?f.column.length:1;return Object.assign(Object.assign({data:(o=r.data)!==null&&o!==void 0?o:a,align:"all"},u),{columns:m,concat:c})}mapFacet(n,e){const{facet:o}=n;return sx(o)&&n.columns&&(n=Eu(n,["columns"]),Kr(eP("facet"))),super.mapFacet(n,e)}mapUnitWithParentEncodingOrProjection(n,e){const{encoding:o,projection:f}=n,{parentEncoding:r,parentProjection:a,config:u}=e,c=kP({parentProjection:a,projection:f}),i=wP({parentEncoding:r,encoding:P4(o,e.repeater)});return this.mapUnit(Object.assign(Object.assign(Object.assign({},n),c?{projection:c}:{}),i?{encoding:i}:{}),{config:u})}mapFacetedUnit(n,e){const o=n.encoding,{row:f,column:r,facet:a}=o,u=vd(o,["row","column","facet"]),{mark:c,width:i,projection:s,height:l,view:d,params:h,encoding:m}=n,g=vd(n,["mark","width","projection","height","view","params","encoding"]),{facetMapping:p,layout:v}=this.getFacetMappingAndLayout({row:f,column:r,facet:a},e),y=P4(u,e.repeater);return this.mapFacet(Object.assign(Object.assign(Object.assign({},g),v),{facet:p,spec:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},i?{width:i}:{}),l?{height:l}:{}),d?{view:d}:{}),s?{projection:s}:{}),{mark:c,encoding:y}),h?{params:h}:{})}),e)}getFacetMappingAndLayout(n,e){var o;const{row:f,column:r,facet:a}=n;if(f||r){a&&Kr(Xge([...f?[Vh]:[],...r?[qh]:[]]));const u={},c={};for(const i of[Vh,qh]){const s=n[i];if(s){const l=vd(s,["align","center","spacing","columns"]);u[i]=l;for(const d of["align","center","spacing"])s[d]!==void 0&&((o=c[d])!==null&&o!==void 0||(c[d]={}),c[d][i]=s[d])}}return{facetMapping:u,layout:c}}else{const{align:u,center:c,spacing:i,columns:s}=a,l=vd(a,["align","center","spacing","columns"]);return{facetMapping:Xve(l,e.repeater),layout:Object.assign(Object.assign(Object.assign(Object.assign({},u?{align:u}:{}),c?{center:c}:{}),i?{spacing:i}:{}),s?{columns:s}:{})}}}mapLayer(n,e){var{parentEncoding:o,parentProjection:f}=e,r=vd(e,["parentEncoding","parentProjection"]);const{encoding:a,projection:u}=n,c=vd(n,["encoding","projection"]),i=Object.assign(Object.assign({},r),{parentEncoding:wP({parentEncoding:o,encoding:a,layer:!0}),parentProjection:kP({parentProjection:f,projection:u})});return super.mapLayer(c,i)}}function wP({parentEncoding:t,encoding:n={},layer:e}){let o={};if(t){const f=new Set([...Xr(t),...Xr(n)]);for(const r of f){const a=n[r],u=t[r];if(la(a)){const c=Object.assign(Object.assign({},u),a);o[r]=c}else lx(a)?o[r]=Object.assign(Object.assign({},a),{condition:Object.assign(Object.assign({},u),a.condition)}):a||a===null?o[r]=a:(e||pf(u)||Vi(u)||la(u)||Ir(u))&&(o[r]=u)}}else o=n;return!o||_o(o)?void 0:o}function kP(t){const{parentProjection:n,projection:e}=t;return n&&e&&Kr(Rge({parentProjection:n,projection:e})),e??n}function m8(t){return"filter"in t}function Kve(t){return t?.stop!==void 0}function gq(t){return"lookup"in t}function Qve(t){return"data"in t}function eye(t){return"param"in t}function tye(t){return"pivot"in t}function nye(t){return"density"in t}function rye(t){return"quantile"in t}function iye(t){return"regression"in t}function aye(t){return"loess"in t}function oye(t){return"sample"in t}function sye(t){return"window"in t}function lye(t){return"joinaggregate"in t}function uye(t){return"flatten"in t}function cye(t){return"calculate"in t}function mq(t){return"bin"in t}function fye(t){return"impute"in t}function hye(t){return"timeUnit"in t}function dye(t){return"aggregate"in t}function pye(t){return"stack"in t}function gye(t){return"fold"in t}function mye(t){return t.map(n=>m8(n)?{filter:rm(n.filter,qme)}:n)}var Hd=globalThis&&globalThis.__rest||function(t,n){var e={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&n.indexOf(o)<0&&(e[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var f=0,o=Object.getOwnPropertySymbols(t);f{var c;const i=u,{init:s,bind:l,empty:d}=i,h=Hd(i,["init","bind","empty"]);h.type==="single"?(h.type="point",h.toggle=!1):h.type==="multi"&&(h.type="point"),e.emptySelections[a]=d!=="none";for(const m of ql((c=e.selectionPredicates[a])!==null&&c!==void 0?c:{}))m.empty=d!=="none";return{name:a,value:s,select:h,bind:l}})}):n}}function TP(t,n){const{transform:e}=t,o=Hd(t,["transform"]);if(e){const f=e.map(r=>{if(m8(r))return{filter:XT(r,n)};if(mq(r)&&K0(r.bin))return Object.assign(Object.assign({},r),{bin:yq(r.bin)});if(gq(r)){const a=r.from,{selection:u}=a,c=Hd(a,["selection"]);return u?Object.assign(Object.assign({},r),{from:Object.assign({param:u},c)}):r}return r});return Object.assign(Object.assign({},o),{transform:f})}return t}function vq(t,n){var e,o;const f=ha(t);if(ti(f)&&K0(f.bin)&&(f.bin=yq(f.bin)),eg(f)&&((o=(e=f.scale)===null||e===void 0?void 0:e.domain)===null||o===void 0?void 0:o.selection)){const r=f.scale.domain,{selection:a}=r,u=Hd(r,["selection"]);f.scale.domain=Object.assign(Object.assign({},u),a?{param:a}:{})}if(g3(f))if(Ir(f.condition))f.condition=f.condition.map(r=>{const{selection:a,param:u,test:c}=r,i=Hd(r,["selection","param","test"]);return u?r:Object.assign(Object.assign({},i),{test:XT(r,n)})});else{const r=vq(f.condition,n),{selection:a,param:u,test:c}=r,i=Hd(r,["selection","param","test"]);f.condition=u?f.condition:Object.assign(Object.assign({},i),{test:XT(f.condition,n)})}return f}function yq(t){const n=t.extent;if(n?.selection){const{selection:e}=n,o=Hd(n,["selection"]);return Object.assign(Object.assign({},t),{extent:Object.assign(Object.assign({},o),{param:e})})}return t}function XT(t,n){const e=o=>rm(o,f=>{var r,a,u;const c=(r=n.emptySelections[f])!==null&&r!==void 0?r:!0,i={param:f,empty:c};return(a=(u=n.selectionPredicates)[f])!==null&&a!==void 0||(u[f]=[]),n.selectionPredicates[f].push(i),i});return t.selection?e(t.selection):rm(t.test||t.filter,o=>o.selection?e(o.selection):o)}class ZT extends g8{map(n,e){var o;const f=(o=e.selections)!==null&&o!==void 0?o:[];if(n.params&&!id(n)){const r=[];for(const a of n.params)h8(a)?f.push(a):r.push(a);n.params=r}return e.selections=f,super.map(n,xq(n,e))}mapUnit(n,e){var o;const f=e.selections;if(!f||!f.length)return n;const r=((o=e.path)!==null&&o!==void 0?o:[]).concat(n.name),a=[];for(const u of f)if(!u.views||!u.views.length)a.push(u);else for(const c of u.views)(bi(c)&&(c===n.name||r.indexOf(c)>=0)||Ir(c)&&c.map(i=>r.indexOf(i)).every((i,s,l)=>i!==-1&&(s===0||i>l[s-1])))&&a.push(u);return a.length&&(n.params=a),n}}for(const t of["mapFacet","mapRepeat","mapHConcat","mapVConcat","mapLayer"]){const n=ZT.prototype[t];ZT.prototype[t]=function(e,o){return n.call(this,e,xq(e,o))}}function xq(t,n){var e;return t.name?Object.assign(Object.assign({},n),{path:((e=n.path)!==null&&e!==void 0?e:[]).concat(t.name)}):n}function bq(t,n){n===void 0&&(n=cq(t.config));const e=_ye(t,n),{width:o,height:f}=t,r=wye(e,{width:o,height:f,autosize:t.autosize},n);return Object.assign(Object.assign({},e),r?{autosize:r}:{})}const yye=new Jve,xye=new vye,bye=new ZT;function _ye(t,n={}){const e={config:n};return bye.map(yye.map(xye.map(t,e),e),e)}function AP(t){return bi(t)?{type:t}:t??{}}function wye(t,n,e){let{width:o,height:f}=n;const r=id(t)||w3(t),a={};r?o=="container"&&f=="container"?(a.type="fit",a.contains="padding"):o=="container"?(a.type="fit-x",a.contains="padding"):f=="container"&&(a.type="fit-y",a.contains="padding"):(o=="container"&&(Kr(ZL("width")),o=void 0),f=="container"&&(Kr(ZL("height")),f=void 0));const u=Object.assign(Object.assign(Object.assign({type:"pad"},a),e?AP(e.autosize):{}),AP(t.autosize));if(u.type==="fit"&&!r&&(Kr(bge),u.type="pad"),o=="container"&&!(u.type=="fit"||u.type=="fit-x")&&Kr(JL("width")),f=="container"&&!(u.type=="fit"||u.type=="fit-y")&&Kr(JL("height")),!Uf(u,{type:"pad"}))return u}function kye(t){return t==="fit"||t==="fit-x"||t==="fit-y"}function Tye(t){return t?`fit-${a3(t)}`:"fit"}const Aye=["background","padding"];function MP(t,n){const e={};for(const o of Aye)t&&t[o]!==void 0&&(e[o]=Xu(t[o]));return n&&(e.params=t.params),e}class ad{constructor(n={},e={}){this.explicit=n,this.implicit=e}clone(){return new ad(ha(this.explicit),ha(this.implicit))}combine(){return Object.assign(Object.assign({},this.explicit),this.implicit)}get(n){return Rs(this.explicit[n],this.implicit[n])}getWithExplicit(n){return this.explicit[n]!==void 0?{explicit:!0,value:this.explicit[n]}:this.implicit[n]!==void 0?{explicit:!1,value:this.implicit[n]}:{explicit:!1,value:void 0}}setWithExplicit(n,{value:e,explicit:o}){e!==void 0&&this.set(n,e,o)}set(n,e,o){return delete this[o?"implicit":"explicit"][n],this[o?"explicit":"implicit"][n]=e,this}copyKeyFromSplit(n,{explicit:e,implicit:o}){e[n]!==void 0?this.set(n,e[n],!0):o[n]!==void 0&&this.set(n,o[n],!1)}copyKeyFromObject(n,e){e[n]!==void 0&&this.set(n,e[n],!0)}copyAll(n){for(const e of Xr(n.combine())){const o=n.getWithExplicit(e);this.setWithExplicit(e,o)}}}function If(t){return{explicit:!0,value:t}}function Gu(t){return{explicit:!1,value:t}}function _q(t){return(n,e,o,f)=>{const r=t(n.value,e.value);return r>0?n:r<0?e:k3(n,e,o,f)}}function k3(t,n,e,o){return t.explicit&&n.explicit&&Kr(sme(e,o,t.value,n.value)),t}function ap(t,n,e,o,f=k3){return t===void 0||t.value===void 0?n:t.explicit&&!n.explicit?t:n.explicit&&!t.explicit?n:Uf(t.value,n.value)?t:f(t,n,e,o)}class Mye extends ad{constructor(n={},e={},o=!1){super(n,e),this.explicit=n,this.implicit=e,this.parseNothing=o}clone(){const n=super.clone();return n.parseNothing=this.parseNothing,n}}function Dm(t){return"url"in t}function py(t){return"values"in t}function wq(t){return"name"in t&&!Dm(t)&&!py(t)&&!$d(t)}function $d(t){return t&&(kq(t)||Tq(t)||v8(t))}function kq(t){return"sequence"in t}function Tq(t){return"sphere"in t}function v8(t){return"graticule"in t}var Fo;(function(t){t[t.Raw=0]="Raw",t[t.Main=1]="Main",t[t.Row=2]="Row",t[t.Column=3]="Column",t[t.Lookup=4]="Lookup"})(Fo||(Fo={}));var Sye=globalThis&&globalThis.__rest||function(t,n){var e={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&n.indexOf(o)<0&&(e[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var f=0,o=Object.getOwnPropertySymbols(t);fN0(f,n,e));return n?`[${o.join(", ")}]`:o}else if(Q0(t))return e(n?dy(t):Pme(t));return n?e(No(t)):t}function Eye(t,n){var e;for(const o of ql((e=t.component.selection)!==null&&e!==void 0?e:{})){const f=o.name;let r=`${f}${lp}, ${o.resolve==="global"?"true":`{unit: ${Im(t)}}`}`;for(const a of A3)!a.defined(o)||(a.signals&&(n=a.signals(t,o,n)),a.modifyExpr&&(r=a.modifyExpr(t,o,r)));n.push({name:f+sxe,on:[{events:{signal:o.name+lp},update:`modify(${oi(o.name+B0)}, ${r})`}]})}return y8(n)}function Cye(t,n){if(t.component.selection&&Xr(t.component.selection).length){const e=oi(t.getName("cell"));n.unshift({name:"facet",value:{},on:[{events:pp("mousemove","scope"),update:`isTuple(facet) ? facet : group(${e}).datum`}]})}return y8(n)}function Oye(t,n){var e;let o=!1;for(const f of ql((e=t.component.selection)!==null&&e!==void 0?e:{})){const r=f.name,a=oi(r+B0);if(n.filter(c=>c.name===r).length===0){const c=f.resolve==="global"?"union":f.resolve,i=f.type==="point"?", true, true)":")";n.push({name:f.name,update:`${jq}(${a}, ${oi(c)}${i}`})}o=!0;for(const c of A3)c.defined(f)&&c.topLevelSignals&&(n=c.topLevelSignals(t,f,n))}return o&&n.filter(r=>r.name==="unit").length===0&&n.unshift({name:"unit",value:{},on:[{events:"mousemove",update:"isTuple(group()) ? group() : unit"}]}),y8(n)}function Lye(t,n){var e;const o=[...n],f=Im(t,{escape:!1});for(const r of ql((e=t.component.selection)!==null&&e!==void 0?e:{})){const a={name:r.name+B0};if(r.project.hasSelectionId&&(a.transform=[{type:"collect",sort:{field:nh}}]),r.init){const c=r.project.items.map(i=>Sye(i,["signals"]));a.values=r.project.hasSelectionId?r.init.map(i=>({unit:f,[nh]:N0(i,!1)[0]})):r.init.map(i=>({unit:f,fields:c,values:N0(i,!1)}))}o.filter(c=>c.name===r.name+B0).length||o.push(a)}return o}function Aq(t,n){var e;for(const o of ql((e=t.component.selection)!==null&&e!==void 0?e:{}))for(const f of A3)f.defined(o)&&f.marks&&(n=f.marks(t,o,n));return n}function Pye(t,n){for(const e of t.children)Is(e)&&(n=Aq(e,n));return n}function Dye(t,n,e,o){const f=$q(t,n.param,n);return{signal:rc(e.get("type"))&&Ir(o)&&o[0]>o[1]?`isValid(${f}) && reverse(${f})`:f}}function y8(t){return t.map(n=>(n.on&&!n.on.length&&delete n.on,n))}class To{constructor(n,e){this.debugName=e,this._children=[],this._parent=null,n&&(this.parent=n)}clone(){throw new Error("Cannot clone node")}get parent(){return this._parent}set parent(n){this._parent=n,n&&n.addChild(this)}get children(){return this._children}numChildren(){return this._children.length}addChild(n,e){if(this._children.includes(n)){Kr(Dge);return}e!==void 0?this._children.splice(e,0,n):this._children.push(n)}removeChild(n){const e=this._children.indexOf(n);return this._children.splice(e,1),e}remove(){let n=this._parent.removeChild(this);for(const e of this._children)e._parent=this._parent,this._parent.addChild(e,n++)}insertAsParentOf(n){const e=n.parent;e.removeChild(this),this.parent=e,n.parent=this}swapWithParent(){const n=this._parent,e=n.parent;for(const f of this._children)f.parent=n;this._children=[],n.removeChild(this);const o=n.parent.removeChild(n);this._parent=e,e.addChild(this,o),n.parent=this}}class hu extends To{constructor(n,e,o,f){super(n,e),this.type=o,this.refCounts=f,this._source=this._name=e,this.refCounts&&!(this._name in this.refCounts)&&(this.refCounts[this._name]=0)}clone(){const n=new this.constructor;return n.debugName=`clone_${this.debugName}`,n._source=this._source,n._name=`clone_${this._name}`,n.type=this.type,n.refCounts=this.refCounts,n.refCounts[n._name]=0,n}dependentFields(){return new Set}producedFields(){return new Set}hash(){return this._hash===void 0&&(this._hash=`Output ${AU()}`),this._hash}getSource(){return this.refCounts[this._name]++,this._source}isRequired(){return!!this.refCounts[this._name]}setSource(n){this._source=n}}var SP=globalThis&&globalThis.__rest||function(t,n){var e={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&n.indexOf(o)<0&&(e[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var f=0,o=Object.getOwnPropertySymbols(t);f{const{field:a,timeUnit:u}=r;if(u){const c=hi(r,{forAs:!0});f[Ba({as:c,field:a,timeUnit:u})]={as:c,field:a,timeUnit:u}}return f},{});return _o(o)?null:new Yf(n,o)}static makeFromTransform(n,e){const o=Object.assign({},e),{timeUnit:f}=o,r=SP(o,["timeUnit"]),a=Gl(f),u=Object.assign(Object.assign({},r),{timeUnit:a});return new Yf(n,{[Ba(u)]:u})}merge(n){this.formula=Object.assign({},this.formula);for(const e in n.formula)this.formula[e]||(this.formula[e]=n.formula[e]);for(const e of n.children)n.removeChild(e),e.parent=this;n.remove()}removeFormulas(n){const e={};for(const[o,f]of rp(this.formula))n.has(f.as)||(e[o]=f);this.formula=e}producedFields(){return new Set(ql(this.formula).map(n=>n.as))}dependentFields(){return new Set(ql(this.formula).map(n=>n.field))}hash(){return`TimeUnit ${Ba(this.formula)}`}assemble(){const n=[];for(const e of ql(this.formula)){const{field:o,as:f,timeUnit:r}=e,a=Gl(r),{unit:u,utc:c}=a,i=SP(a,["unit","utc"]);n.push(Object.assign(Object.assign(Object.assign(Object.assign({field:bc(o),type:"timeunit"},u?{units:zE(u)}:{}),c?{timezone:"utc"}:{}),i),{as:[f,`${f}_end`]}))}return n}}var Iye=globalThis&&globalThis.__rest||function(t,n){var e={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&n.indexOf(o)<0&&(e[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var f=0,o=Object.getOwnPropertySymbols(t);f!0,parse:(t,n,e)=>{var o;const f=n.name,r=(o=n.project)!==null&&o!==void 0?o:n.project=new zye,a={},u={},c=new Set,i=(g,p)=>{const v=p==="visual"?g.channel:g.field;let y=Xo(`${f}_${v}`);for(let x=1;c.has(y);x++)y=Xo(`${f}_${v}_${x}`);return c.add(y),{[p]:y}},s=n.type,l=t.config.selection[s],d=e.value!==void 0?ki(e.value):null;let{fields:h,encodings:m}=Ei(e.select)?e.select:{};if(!h&&!m&&d){for(const g of d)if(!!Ei(g))for(const p of Xr(g))Y0e(p)?(m||(m=[])).push(p):s==="interval"?(Kr(Cge),m=l.encodings):(h||(h=[])).push(p)}!h&&!m&&(m=l.encodings,"fields"in l&&(h=l.fields));for(const g of m??[]){const p=t.fieldDef(g);if(p){let v=p.field;if(p.aggregate){Kr(_ge(g,p.aggregate));continue}else if(!v){Kr(QL(g));continue}if(p.timeUnit){v=t.vgField(g);const y={timeUnit:p.timeUnit,as:v,field:p.field};u[Ba(y)]=y}if(!a[v]){let y="E";if(s==="interval"){const w=t.getScaleComponent(g).get("type");rc(w)&&(y="R")}else p.bin&&(y="R-RE");const x={field:v,channel:g,type:y};x.signals=Object.assign(Object.assign({},i(x,"data")),i(x,"visual")),r.items.push(a[v]=x),r.hasField[v]=r.hasChannel[g]=a[v],r.hasSelectionId=r.hasSelectionId||v===nh}}else Kr(QL(g))}for(const g of h??[]){if(r.hasField[g])continue;const p={type:"E",field:g};p.signals=Object.assign({},i(p,"data")),r.items.push(p),r.hasField[g]=p,r.hasSelectionId=r.hasSelectionId||g===nh}d&&(n.init=d.map(g=>r.items.map(p=>Ei(g)?g[p.channel]!==void 0?g[p.channel]:g[p.field]:g))),_o(u)||(r.timeUnit=new Yf(null,u))},signals:(t,n,e)=>{const o=n.name+fx;return e.filter(r=>r.name===o).length>0||n.project.hasSelectionId?e:e.concat({name:o,value:n.project.items.map(r=>{const a=Iye(r,["signals","hasLegend"]);return a.field=bc(a.field),a})})}},op={defined:t=>t.type==="interval"&&t.resolve==="global"&&t.bind&&t.bind==="scales",parse:(t,n)=>{const e=n.scales=[];for(const o of n.project.items){const f=o.channel;if(!bp(f))continue;const r=t.getScaleComponent(f),a=r?r.get("type"):void 0;if(!r||!rc(a)){Kr(Tge);continue}r.set("selectionExtent",{param:n.name,field:o.field},!0),e.push(o)}},topLevelSignals:(t,n,e)=>{const o=n.scales.filter(a=>e.filter(u=>u.name===a.signals.data).length===0);if(!t.parent||KT(t)||o.length===0)return e;const f=e.filter(a=>a.name===n.name)[0];let r=f.update;if(r.indexOf(jq)>=0)f.update=`{${o.map(a=>`${oi(bc(a.field))}: ${a.signals.data}`).join(", ")}}`;else{for(const a of o){const u=`${oi(bc(a.field))}: ${a.signals.data}`;r.includes(u)||(r=`${r.substring(0,r.length-1)}, ${u}}`)}f.update=r}return e.concat(o.map(a=>({name:a.signals.data})))},signals:(t,n,e)=>{if(t.parent&&!KT(t))for(const o of n.scales){const f=e.filter(r=>r.name===o.signals.data)[0];f.push="outer",delete f.value,delete f.update}return e}};function JT(t,n){return`domain(${oi(t.scaleName(n))})`}function KT(t){var n;return t.parent&&s1(t.parent)&&((n=!t.parent.parent)!==null&&n!==void 0?n:KT(t.parent.parent))}var Fye=globalThis&&globalThis.__rest||function(t,n){var e={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&n.indexOf(o)<0&&(e[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var f=0,o=Object.getOwnPropertySymbols(t);ft.type==="interval",signals:(t,n,e)=>{const o=n.name,f=o+fx,r=op.defined(n),a=n.init?n.init[0]:null,u=[],c=[];if(n.translate&&!r){const s=`!event.item || event.item.mark.name !== ${oi(o+om)}`;Mq(n,(l,d)=>{var h,m;const g=ki((h=(m=d.between[0]).filter)!==null&&h!==void 0?h:m.filter=[]);return g.includes(s)||g.push(s),l})}n.project.items.forEach((s,l)=>{const d=s.channel;if(d!==cs&&d!==ol){Kr("Interval selections only support x and y encoding channels.");return}const h=a?a[l]:null,m=Bye(t,n,s,h),g=s.signals.data,p=s.signals.visual,v=oi(t.scaleName(d)),y=t.getScaleComponent(d).get("type"),x=rc(y)?"+":"";e.push(...m),u.push(g),c.push({scaleName:t.scaleName(d),expr:`(!isArray(${g}) || (${x}invert(${v}, ${p})[0] === ${x}${g}[0] && ${x}invert(${v}, ${p})[1] === ${x}${g}[1]))`})}),!r&&c.length&&e.push({name:o+QT,value:{},on:[{events:c.map(s=>({scale:s.scaleName})),update:`${c.map(s=>s.expr).join(" && ")} ? ${o+QT} : {}`}]});const i=`unit: ${Im(t)}, fields: ${f}, values`;return e.concat(Object.assign(Object.assign({name:o+lp},a?{init:`{${i}: ${N0(a)}}`}:{}),u.length?{on:[{events:[{signal:u.join(" || ")}],update:`${u.join(" && ")} ? {${i}: [${u}]} : null`}]}:{}))},marks:(t,n,e)=>{const o=n.name,{x:f,y:r}=n.project.hasChannel,a=f?.signals.visual,u=r?.signals.visual,c=`data(${oi(n.name+B0)})`;if(op.defined(n)||!f&&!r)return e;const i={x:f!==void 0?{signal:`${a}[0]`}:{value:0},y:r!==void 0?{signal:`${u}[0]`}:{value:0},x2:f!==void 0?{signal:`${a}[1]`}:{field:{group:"width"}},y2:r!==void 0?{signal:`${u}[1]`}:{field:{group:"height"}}};if(n.resolve==="global")for(const p of Xr(i))i[p]=[Object.assign({test:`${c}.length && ${c}[0].unit === ${Im(t)}`},i[p]),{value:0}];const s=n.mark,{fill:l,fillOpacity:d,cursor:h}=s,m=Fye(s,["fill","fillOpacity","cursor"]),g=Xr(m).reduce((p,v)=>(p[v]=[{test:[f!==void 0&&`${a}[0] !== ${a}[1]`,r!==void 0&&`${u}[0] !== ${u}[1]`].filter(y=>y).join(" && "),value:m[v]},{value:null}],p),{});return[{name:`${o+om}_bg`,type:"rect",clip:!0,encode:{enter:{fill:{value:l},fillOpacity:{value:d}},update:i}},...e,{name:o+om,type:"rect",clip:!0,encode:{enter:Object.assign(Object.assign({},h?{cursor:{value:h}}:{}),{fill:{value:"transparent"}}),update:Object.assign(Object.assign({},i),g)}}]}};function Bye(t,n,e,o){const f=e.channel,r=e.signals.visual,a=e.signals.data,u=op.defined(n),c=oi(t.scaleName(f)),i=t.getScaleComponent(f),s=i?i.get("type"):void 0,l=g=>`scale(${c}, ${g})`,d=t.getSizeSignalRef(f===cs?"width":"height").signal,h=`${f}(unit)`,m=Mq(n,(g,p)=>[...g,{events:p.between[0],update:`[${h}, ${h}]`},{events:p,update:`[${r}[0], clamp(${h}, 0, ${d})]`}]);return m.push({events:{signal:n.name+QT},update:rc(s)?`[${l(`${a}[0]`)}, ${l(`${a}[1]`)}]`:"[0, 0]"}),u?[{name:a,on:[]}]:[Object.assign(Object.assign({name:r},o?{init:N0(o,!0,l)}:{value:[]}),{on:m}),Object.assign(Object.assign({name:a},o?{init:N0(o)}:{}),{on:[{events:{signal:r},update:`${r}[0] === ${r}[1] ? null : invert(${c}, ${r})`}]})]}function Mq(t,n){return t.events.reduce((e,o)=>o.between?n(e,o):(Kr(`${o} is not an ordered event stream for interval selections.`),e),[])}const jye={defined:t=>t.type==="point",signals:(t,n,e)=>{var o;const f=n.name,r=f+fx,a=n.project,u="(item().isVoronoi ? datum.datum : datum)",c=ql((o=t.component.selection)!==null&&o!==void 0?o:{}).reduce((d,h)=>h.type==="interval"?d.concat(h.name+om):d,[]).map(d=>`indexof(item().mark.name, '${d}') < 0`).join(" && "),i=`datum && item().mark.marktype !== 'group' && indexof(item().mark.role, 'legend') < 0${c?` && ${c}`:""}`;let s=`unit: ${Im(t)}, `;if(n.project.hasSelectionId)s+=`${nh}: ${u}[${oi(nh)}]`;else{const d=a.items.map(h=>{const m=t.fieldDef(h.channel);return m?.bin?`[${u}[${oi(t.vgField(h.channel,{}))}], ${u}[${oi(t.vgField(h.channel,{binSuffix:"end"}))}]]`:`${u}[${oi(h.field)}]`}).join(", ");s+=`fields: ${r}, values: [${d}]`}const l=n.events;return e.concat([{name:f+lp,on:l?[{events:l,update:`${i} ? {${s}} : null`,force:!0}]:[]}])}};function r1(t,n,e,o){const f=g3(n)&&n.condition,r=o(n);if(f){const u=ki(f).map(c=>{const i=o(c);if(C1e(c)){const{param:s,empty:l}=c,d=Hq(t,{param:s,empty:l});return Object.assign({test:d},i)}else{const s=R2(t,c.test);return Object.assign({test:s},i)}});return{[e]:[...u,...r!==void 0?[r]:[]]}}else return r!==void 0?{[e]:r}:{}}function x8(t,n="text"){const e=t.encoding[n];return r1(t,e,n,o=>T3(o,t.config))}function T3(t,n,e="datum"){if(t){if(pf(t))return Ho(t.value);if(la(t)){const{format:o,formatType:f}=C2(t);return KE({fieldOrDatumDef:t,format:o,formatType:f,expr:e,config:n})}}}function Sq(t,n={}){const{encoding:e,markDef:o,config:f,stack:r}=t,a=e.tooltip;if(Ir(a))return{tooltip:EP({tooltip:a},r,f,n)};{const u=n.reactiveGeom?"datum.datum":"datum";return r1(t,a,"tooltip",c=>{const i=T3(c,f,u);if(i)return i;if(c===null)return;let s=oo("tooltip",o,f);if(s===!0&&(s={content:"encoding"}),bi(s))return{value:s};if(Ei(s))return Vi(s)?s:s.content==="encoding"?EP(e,r,f,n):{signal:u}})}}function Eq(t,n,e,{reactiveGeom:o}={}){const f={},r=o?"datum.datum":"datum",a=[];function u(i,s){const l=J0(s),d=wc(i)?i:Object.assign(Object.assign({},i),{type:t[l].type}),h=d.title||n8(d,e),m=ki(h).join(", ");let g;if(sl(s)){const p=s==="x"?"x2":"y2",v=th(t[p]);if(xl(d.bin)&&v){const y=hi(d,{expr:r}),x=hi(v,{expr:r}),{format:w,formatType:k}=C2(d);g=ox(y,x,w,k,e),f[p]=!0}}if((sl(s)||s===Tc||s===xf)&&n&&n.fieldChannel===s&&n.offset==="normalize"){const{format:p,formatType:v}=C2(d);g=KE({fieldOrDatumDef:d,format:p,formatType:v,expr:r,config:e,normalizeStack:!0}).signal}g??(g=T3(d,e,r).signal),a.push({channel:s,key:m,value:g})}a8(t,(i,s)=>{ti(i)?u(i,s):m3(i)&&u(i.condition,s)});const c={};for(const{channel:i,key:s,value:l}of a)!f[i]&&!c[s]&&(c[s]=l);return c}function EP(t,n,e,{reactiveGeom:o}={}){const f=Eq(t,n,e,{reactiveGeom:o}),r=rp(f).map(([a,u])=>`"${a}": ${u}`);return r.length>0?{signal:`{${r.join(", ")}}`}:void 0}function Uye(t){const{markDef:n,config:e}=t,o=oo("aria",n,e);return o===!1?{}:Object.assign(Object.assign(Object.assign({},o?{aria:o}:{}),Vye(t)),qye(t))}function Vye(t){const{mark:n,markDef:e,config:o}=t;if(o.aria===!1)return{};const f=oo("ariaRoleDescription",e,o);return f!=null?{ariaRoleDescription:{value:f}}:n in vge?{}:{ariaRoleDescription:{value:n}}}function qye(t){const{encoding:n,markDef:e,config:o,stack:f}=t,r=n.description;if(r)return r1(t,r,"description",c=>T3(c,t.config));const a=oo("description",e,o);if(a!=null)return{description:Ho(a)};if(o.aria===!1)return{};const u=Eq(n,f,o);if(!_o(u))return{description:{signal:rp(u).map(([c,i],s)=>`"${s>0?"; ":""}${c}: " + (${i})`).join(" + ")}}}function nl(t,n,e={}){const{markDef:o,encoding:f,config:r}=n,{vgChannel:a}=e;let{defaultRef:u,defaultValue:c}=e;u===void 0&&(c??(c=oo(t,o,r,{vgChannel:a,ignoreVgConfig:!0})),c!==void 0&&(u=Ho(c)));const i=f[t];return r1(n,i,a??t,s=>JE({channel:t,channelDef:s,markDef:o,config:r,scaleName:n.scaleName(t),scale:n.getScaleComponent(t),stack:null,defaultRef:u}))}function Cq(t,n={filled:void 0}){var e,o,f,r;const{markDef:a,encoding:u,config:c}=t,{type:i}=a,s=(e=n.filled)!==null&&e!==void 0?e:oo("filled",a,c),l=Fa(["bar","point","circle","square","geoshape"],i)?"transparent":void 0,d=(f=(o=oo(s===!0?"color":void 0,a,c,{vgChannel:"fill"}))!==null&&o!==void 0?o:c.mark[s===!0&&"color"])!==null&&f!==void 0?f:l,h=(r=oo(s===!1?"color":void 0,a,c,{vgChannel:"stroke"}))!==null&&r!==void 0?r:c.mark[s===!1&&"color"],m=s?"fill":"stroke",g=Object.assign(Object.assign({},d?{fill:Ho(d)}:{}),h?{stroke:Ho(h)}:{});return a.color&&(s?a.fill:a.stroke)&&Kr(JU("property",{fill:"fill"in a,stroke:"stroke"in a})),Object.assign(Object.assign(Object.assign(Object.assign({},g),nl("color",t,{vgChannel:m,defaultValue:s?d:h})),nl("fill",t,{defaultValue:u.fill?d:void 0})),nl("stroke",t,{defaultValue:u.stroke?h:void 0}))}function Hye(t){const{encoding:n,mark:e}=t,o=n.order;return!kp(e)&&pf(o)?r1(t,o,"zindex",f=>Ho(f.value)):{}}function gy({channel:t,markDef:n,encoding:e={},model:o,bandPosition:f}){const r=`${t}Offset`,a=n[r],u=e[r];if((r==="xOffset"||r==="yOffset")&&u){const i=JE({channel:r,channelDef:u,markDef:n,config:o?.config,scaleName:o.scaleName(r),scale:o.getScaleComponent(r),stack:null,defaultRef:Ho(a),bandPosition:f});return{offsetType:"encoding",offset:i}}const c=n[r];return c?{offsetType:"visual",offset:c}:{}}function Fl(t,n,{defaultPos:e,vgChannel:o}){const{encoding:f,markDef:r,config:a,stack:u}=n,c=f[t],i=f[ph(t)],s=n.scaleName(t),l=n.getScaleComponent(t),{offset:d,offsetType:h}=gy({channel:t,markDef:r,encoding:f,model:n,bandPosition:.5}),m=b8({model:n,defaultPos:e,channel:t,scaleName:s,scale:l}),g=!c&&sl(t)&&(f.latitude||f.longitude)?{field:n.getName(t)}:$ye({channel:t,channelDef:c,channel2Def:i,markDef:r,config:a,scaleName:s,scale:l,stack:u,offset:d,defaultRef:m,bandPosition:h==="encoding"?0:void 0});return g?{[o||t]:g}:void 0}function $ye(t){const{channel:n,channelDef:e,scaleName:o,stack:f,offset:r,markDef:a}=t;if(la(e)&&f&&n===f.fieldChannel){if(ti(e)){let u=e.bandPosition;if(u===void 0&&a.type==="text"&&(n==="radius"||n==="theta")&&(u=.5),u!==void 0)return S2({scaleName:o,fieldOrDatumDef:e,startSuffix:"start",bandPosition:u,offset:r})}return v0(e,o,{suffix:"end"},{offset:r})}return XE(t)}function b8({model:t,defaultPos:n,channel:e,scaleName:o,scale:f}){const{markDef:r,config:a}=t;return()=>{const u=J0(e),c=ip(e),i=oo(e,r,a,{vgChannel:c});if(i!==void 0)return Bv(e,i);switch(n){case"zeroOrMin":case"zeroOrMax":if(o){const s=f.get("type");if(!Fa([Cu.LOG,Cu.TIME,Cu.UTC],s)){if(f.domainDefinitelyIncludesZero())return{scale:o,value:0}}}if(n==="zeroOrMin")return u==="y"?{field:{group:"height"}}:{value:0};switch(u){case"radius":return{signal:`min(${t.width.signal},${t.height.signal})/2`};case"theta":return{signal:"2*PI"};case"x":return{field:{group:"width"}};case"y":return{value:0}}break;case"mid":{const s=t[Fu(e)];return Object.assign(Object.assign({},s),{mult:.5})}}}}const Gye={left:"x",center:"xc",right:"x2"},Wye={top:"y",middle:"yc",bottom:"y2"};function Oq(t,n,e,o="middle"){if(t==="radius"||t==="theta")return ip(t);const f=t==="x"?"align":"baseline",r=oo(f,n,e);let a;return Vi(r)?(Kr(Zge(f)),a=void 0):a=r,t==="x"?Gye[a||(o==="top"?"left":"center")]:Wye[a||o]}function I2(t,n,{defaultPos:e,defaultPos2:o,range:f}){return f?Lq(t,n,{defaultPos:e,defaultPos2:o}):Fl(t,n,{defaultPos:e})}function Lq(t,n,{defaultPos:e,defaultPos2:o}){const{markDef:f,config:r}=n,a=ph(t),u=Fu(t),c=Yye(n,o,a),i=c[u]?Oq(t,f,r):ip(t);return Object.assign(Object.assign({},Fl(t,n,{defaultPos:e,vgChannel:i})),c)}function Yye(t,n,e){const{encoding:o,mark:f,markDef:r,stack:a,config:u}=t,c=J0(e),i=Fu(e),s=ip(e),l=o[c],d=t.scaleName(c),h=t.getScaleComponent(c),{offset:m}=e in o||e in r?gy({channel:e,markDef:r,encoding:o,model:t}):gy({channel:c,markDef:r,encoding:o,model:t});if(!l&&(e==="x2"||e==="y2")&&(o.latitude||o.longitude)){const p=Fu(e),v=t.markDef[p];return v!=null?{[p]:{value:v}}:{[s]:{field:t.getName(e)}}}const g=Xye({channel:e,channelDef:l,channel2Def:o[e],markDef:r,config:u,scaleName:d,scale:h,stack:a,offset:m,defaultRef:void 0});return g!==void 0?{[s]:g}:Ab(e,r)||Ab(e,{[e]:T2(e,r,u.style),[i]:T2(i,r,u.style)})||Ab(e,u[f])||Ab(e,u.mark)||{[s]:b8({model:t,defaultPos:n,channel:e,scaleName:d,scale:h})()}}function Xye({channel:t,channelDef:n,channel2Def:e,markDef:o,config:f,scaleName:r,scale:a,stack:u,offset:c,defaultRef:i}){return la(n)&&u&&t.charAt(0)===u.fieldChannel.charAt(0)?v0(n,r,{suffix:"start"},{offset:c}):XE({channel:t,channelDef:e,scaleName:r,scale:a,stack:u,markDef:o,config:f,offset:c,defaultRef:i})}function Ab(t,n){const e=Fu(t),o=ip(t);if(n[o]!==void 0)return{[o]:Bv(t,n[o])};if(n[t]!==void 0)return{[o]:Bv(t,n[t])};if(n[e]){const f=n[e];if(R0(f))Kr(qge(e));else return{[e]:Bv(t,f)}}}function sp(t,n){var e,o;const{config:f,encoding:r,markDef:a}=t,u=a.type,c=ph(n),i=Fu(n),s=r[n],l=r[c],d=t.getScaleComponent(n),h=d?d.get("type"):void 0,m=a.orient,g=(o=(e=r[i])!==null&&e!==void 0?e:r.size)!==null&&o!==void 0?o:oo("size",a,f,{vgChannel:i}),p=u==="bar"&&(n==="x"?m==="vertical":m==="horizontal");return ti(s)&&(Bo(s.bin)||xl(s.bin)||s.timeUnit&&!l)&&!(g&&!R0(g))&&!ll(h)?Kye({fieldDef:s,fieldDef2:l,channel:n,model:t}):(la(s)&&ll(h)||p)&&!l?Jye(s,n,t):Lq(n,t,{defaultPos:"zeroOrMax",defaultPos2:"zeroOrMin"})}function Zye(t,n,e,o,f){if(R0(f))if(e){const a=e.get("type");if(a==="band"){let u=`bandwidth('${n}')`;return f.band!==1&&(u=`${f.band} * ${u}`),{signal:`max(0.25, ${u})`}}else f.band!==1&&(Kr(eme(a)),f=void 0)}else return{mult:f.band,field:{group:t}};else{if(Vi(f))return f;if(f)return{value:f}}if(e){const a=e.get("range");if(wp(a)&&wo(a.step))return{value:a.step-2}}return{value:P2(o.view,t)-2}}function Jye(t,n,e){const{markDef:o,encoding:f,config:r,stack:a}=e,u=o.orient,c=e.scaleName(n),i=e.getScaleComponent(n),s=Fu(n),l=ph(n),d=Z0e(n),h=e.scaleName(d),m=u==="horizontal"&&n==="y"||u==="vertical"&&n==="x";let g;(f.size||o.size)&&(m?g=nl("size",e,{vgChannel:s,defaultRef:Ho(o.size)}):Kr(ime(o.type)));const p=!!g,v=OV({channel:n,fieldDef:t,markDef:o,config:r,scaleType:i?.get("type"),useVlSizeChannel:m});g=g||{[s]:Zye(s,h||c,i,r,v)};const y=i?.get("type")==="band"&&R0(v)&&!p?"top":"middle",x=Oq(n,o,r,y),w=x==="xc"||x==="yc",{offset:k,offsetType:b}=gy({channel:n,markDef:o,encoding:f,model:e,bandPosition:w?.5:0}),T=XE({channel:n,channelDef:t,markDef:o,config:r,scaleName:c,scale:i,stack:a,offset:k,defaultRef:b8({model:e,defaultPos:"mid",channel:n,scaleName:c,scale:i}),bandPosition:w?b==="encoding"?0:.5:Vi(v)?{signal:`(1-${v})/2`}:R0(v)?(1-v.band)/2:0});if(s)return Object.assign({[x]:T},g);{const _=ip(l),M=g[s],A=k?Object.assign(Object.assign({},M),{offset:k}):M;return{[x]:T,[_]:Ir(T)?[T[0],Object.assign(Object.assign({},T[1]),{offset:A})]:Object.assign(Object.assign({},T),{offset:A})}}}function K1(t,n,e,o,f){if(CU(t))return 0;const r=t==="x"||t==="y2"?-n/2:n/2;if(Vi(e)||Vi(f)||Vi(o)){const a=Hh(e),u=Hh(f),c=Hh(o),i=c?`${c} + `:"",s=a?`(${a} ? -1 : 1) * `:"",l=u?`(${u} + ${r})`:r;return{signal:i+s+l}}else return f=f||0,o+(e?-f-r:+f+r)}function Kye({fieldDef:t,fieldDef2:n,channel:e,model:o}){var f,r,a;const{config:u,markDef:c,encoding:i}=o,s=o.getScaleComponent(e),l=o.scaleName(e),d=s?s.get("type"):void 0,h=s.get("reverse"),m=OV({channel:e,fieldDef:t,markDef:c,config:u,scaleType:d}),g=(f=o.component.axes[e])===null||f===void 0?void 0:f[0],p=(r=g?.get("translate"))!==null&&r!==void 0?r:.5,v=sl(e)&&(a=oo("binSpacing",c,u))!==null&&a!==void 0?a:0,y=ph(e),x=ip(e),w=ip(y),{offset:k}=gy({channel:e,markDef:c,encoding:i,model:o,bandPosition:0}),b=Vi(m)?{signal:`(1-${m.signal})/2`}:R0(m)?(1-m.band)/2:.5;if(Bo(t.bin)||t.timeUnit)return{[w]:CP({fieldDef:t,scaleName:l,bandPosition:b,offset:K1(y,v,h,p,k)}),[x]:CP({fieldDef:t,scaleName:l,bandPosition:Vi(b)?{signal:`1-${b.signal}`}:1-b,offset:K1(e,v,h,p,k)})};if(xl(t.bin)){const T=v0(t,l,{},{offset:K1(y,v,h,p,k)});if(ti(n))return{[w]:T,[x]:v0(n,l,{},{offset:K1(e,v,h,p,k)})};if(K0(t.bin)&&t.bin.step)return{[w]:T,[x]:{signal:`scale("${l}", ${hi(t,{expr:"datum"})} + ${t.bin.step})`,offset:K1(e,v,h,p,k)}}}Kr(eV(y))}function CP({fieldDef:t,scaleName:n,bandPosition:e,offset:o}){return S2({scaleName:n,fieldOrDatumDef:t,bandPosition:e,offset:o})}const Qye=new Set(["aria","width","height"]);function Ac(t,n){const{fill:e=void 0,stroke:o=void 0}=n.color==="include"?Cq(t):{};return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},exe(t.markDef,n)),OP(t,"fill",e)),OP(t,"stroke",o)),nl("opacity",t)),nl("fillOpacity",t)),nl("strokeOpacity",t)),nl("strokeWidth",t)),nl("strokeDash",t)),Hye(t)),Sq(t)),x8(t,"href")),Uye(t))}function OP(t,n,e){const{config:o,mark:f,markDef:r}=t;if(oo("invalid",r,o)==="hide"&&e&&!kp(f)){const u=txe(t,{invalid:!0,channels:o3});if(u)return{[n]:[{test:u,value:null},...ki(e)]}}return e?{[n]:e}:{}}function exe(t,n){return mge.reduce((e,o)=>(!Qye.has(o)&&t[o]!==void 0&&n[o]!=="ignore"&&(e[o]=Ho(t[o])),e),{})}function txe(t,{invalid:n=!1,channels:e}){const o=e.reduce((r,a)=>{const u=t.getScaleComponent(a);if(u){const c=u.get("type"),i=t.vgField(a,{expr:"datum"});i&&rc(c)&&(r[i]=!0)}return r},{}),f=Xr(o);if(f.length>0){const r=n?"||":"&&";return f.map(a=>ZE(a,n)).join(` ${r} `)}}function _8(t){const{config:n,markDef:e}=t;if(oo("invalid",e,n)){const f=nxe(t,{channels:gh});if(f)return{defined:{signal:f}}}return{}}function nxe(t,{invalid:n=!1,channels:e}){const o=e.reduce((r,a)=>{var u;const c=t.getScaleComponent(a);if(c){const i=c.get("type"),s=t.vgField(a,{expr:"datum",binSuffix:!((u=t.stack)===null||u===void 0)&&u.impute?"mid":void 0});s&&rc(i)&&(r[s]=!0)}return r},{}),f=Xr(o);if(f.length>0){const r=n?"||":"&&";return f.map(a=>ZE(a,n)).join(` ${r} `)}}function LP(t,n){if(n!==void 0)return{[t]:Ho(n)}}const D4="voronoi",Pq={defined:t=>t.type==="point"&&t.nearest,parse:(t,n)=>{if(n.events)for(const e of n.events)e.markname=t.getName(D4)},marks:(t,n,e)=>{const{x:o,y:f}=n.project.hasChannel,r=t.mark;if(kp(r))return Kr(wge(r)),e;const a={name:t.getName(D4),type:"path",interactive:!0,from:{data:t.getName("marks")},encode:{update:Object.assign({fill:{value:"transparent"},strokeWidth:{value:.35},stroke:{value:"transparent"},isVoronoi:{value:!0}},Sq(t,{reactiveGeom:!0}))},transform:[{type:"voronoi",x:{expr:o||!f?"datum.datum.x || 0":"0"},y:{expr:f||!o?"datum.datum.y || 0":"0"},size:[t.getSizeSignalRef("width"),t.getSizeSignalRef("height")]}]};let u=0,c=!1;return e.forEach((i,s)=>{var l;const d=(l=i.name)!==null&&l!==void 0?l:"";d===t.component.mark[0].name?u=s:d.indexOf(D4)>=0&&(c=!0)}),c||e.splice(u+1,0,a),e}},Dq={defined:t=>t.type==="point"&&t.resolve==="global"&&t.bind&&t.bind!=="scales"&&!f8(t.bind),parse:(t,n,e)=>Uq(n,e),topLevelSignals:(t,n,e)=>{const o=n.name,f=n.project,r=n.bind,a=n.init&&n.init[0],u=Pq.defined(n)?"(item().isVoronoi ? datum.datum : datum)":"datum";return f.items.forEach((c,i)=>{var s,l;const d=Xo(`${o}_${c.field}`);e.filter(m=>m.name===d).length||e.unshift(Object.assign(Object.assign({name:d},a?{init:N0(a[i])}:{value:null}),{on:n.events?[{events:n.events,update:`datum && item().mark.marktype !== 'group' ? ${u}[${oi(c.field)}] : null`}]:[],bind:(l=(s=r[c.field])!==null&&s!==void 0?s:r[c.channel])!==null&&l!==void 0?l:r}))}),e},signals:(t,n,e)=>{const o=n.name,f=n.project,r=e.filter(i=>i.name===o+lp)[0],a=o+fx,u=f.items.map(i=>Xo(`${o}_${i.field}`)),c=u.map(i=>`${i} !== null`).join(" && ");return u.length&&(r.update=`${c} ? {fields: ${a}, values: [${u.join(", ")}]} : null`),delete r.value,delete r.on,e}},z2="_toggle",Iq={defined:t=>t.type==="point"&&!!t.toggle,signals:(t,n,e)=>e.concat({name:n.name+z2,value:!1,on:[{events:n.events,update:n.toggle}]}),modifyExpr:(t,n)=>{const e=n.name+lp,o=n.name+z2;return`${o} ? null : ${e}, `+(n.resolve==="global"?`${o} ? null : true, `:`${o} ? null : {unit: ${Im(t)}}, `)+`${o} ? ${e} : null`}},rxe={defined:t=>t.clear!==void 0&&t.clear!==!1,parse:(t,n)=>{n.clear&&(n.clear=bi(n.clear)?pp(n.clear,"view"):n.clear)},topLevelSignals:(t,n,e)=>{if(Dq.defined(n))for(const o of n.project.items){const f=e.findIndex(r=>r.name===Xo(`${n.name}_${o.field}`));f!==-1&&e[f].on.push({events:n.clear,update:"null"})}return e},signals:(t,n,e)=>{function o(f,r){f!==-1&&e[f].on&&e[f].on.push({events:n.clear,update:r})}if(n.type==="interval")for(const f of n.project.items){const r=e.findIndex(a=>a.name===f.signals.visual);if(o(r,"[0, 0]"),r===-1){const a=e.findIndex(u=>u.name===f.signals.data);o(a,"null")}}else{let f=e.findIndex(r=>r.name===n.name+lp);o(f,"null"),Iq.defined(n)&&(f=e.findIndex(r=>r.name===n.name+z2),o(f,"false"))}return e}},zq={defined:t=>{const n=t.resolve==="global"&&t.bind&&f8(t.bind),e=t.project.items.length===1&&t.project.items[0].field!==nh;return n&&!e&&Kr(Age),n&&e},parse:(t,n,e)=>{var o;const f=ha(e);if(f.select=bi(f.select)?{type:f.select,toggle:n.toggle}:Object.assign(Object.assign({},f.select),{toggle:n.toggle}),Uq(n,f),Ei(e.select)&&(e.select.on||e.select.clear)){const u='event.item && indexof(event.item.mark.role, "legend") < 0';for(const c of n.events)c.filter=ki((o=c.filter)!==null&&o!==void 0?o:[]),c.filter.includes(u)||c.filter.push(u)}const r=O4(n.bind)?n.bind.legend:"click",a=bi(r)?pp(r,"view"):ki(r);n.bind={legend:{merge:a}}},topLevelSignals:(t,n,e)=>{const o=n.name,f=O4(n.bind)&&n.bind.legend,r=a=>u=>{const c=ha(u);return c.markname=a,c};for(const a of n.project.items){if(!a.hasLegend)continue;const u=`${Xo(a.field)}_legend`,c=`${o}_${u}`;if(e.filter(s=>s.name===c).length===0){const s=f.merge.map(r(`${u}_symbols`)).concat(f.merge.map(r(`${u}_labels`))).concat(f.merge.map(r(`${u}_entries`)));e.unshift(Object.assign(Object.assign({name:c},n.init?{}:{value:null}),{on:[{events:s,update:"datum.value || item().items[0].items[0].datum.value",force:!0},{events:f.merge,update:`!event.item || !datum ? null : ${c}`,force:!0}]}))}}return e},signals:(t,n,e)=>{const o=n.name,f=n.project,r=e.find(d=>d.name===o+lp),a=o+fx,u=f.items.filter(d=>d.hasLegend).map(d=>Xo(`${o}_${Xo(d.field)}_legend`)),i=`${u.map(d=>`${d} !== null`).join(" && ")} ? {fields: ${a}, values: [${u.join(", ")}]} : null`;n.events&&u.length>0?r.on.push({events:u.map(d=>({signal:d})),update:i}):u.length>0&&(r.update=i,delete r.value,delete r.on);const s=e.find(d=>d.name===o+z2),l=O4(n.bind)&&n.bind.legend;return s&&(n.events?s.on.push(Object.assign(Object.assign({},s.on[0]),{events:l})):s.on[0].events=l),e}};function ixe(t,n,e){var o,f,r,a;const u=(o=t.fieldDef(n))===null||o===void 0?void 0:o.field;for(const c of ql((f=t.component.selection)!==null&&f!==void 0?f:{})){const i=(r=c.project.hasField[u])!==null&&r!==void 0?r:c.project.hasChannel[n];if(i&&zq.defined(c)){const s=(a=e.get("selections"))!==null&&a!==void 0?a:[];s.push(c.name),e.set("selections",s,!1),i.hasLegend=!0}}}const Rq="_translate_anchor",Fq="_translate_delta",axe={defined:t=>t.type==="interval"&&t.translate,signals:(t,n,e)=>{const o=n.name,f=op.defined(n),r=o+Rq,{x:a,y:u}=n.project.hasChannel;let c=pp(n.translate,"scope");return f||(c=c.map(i=>(i.between[0].markname=o+om,i))),e.push({name:r,value:{},on:[{events:c.map(i=>i.between[0]),update:"{x: x(unit), y: y(unit)"+(a!==void 0?`, extent_x: ${f?JT(t,cs):`slice(${a.signals.visual})`}`:"")+(u!==void 0?`, extent_y: ${f?JT(t,ol):`slice(${u.signals.visual})`}`:"")+"}"}]},{name:o+Fq,value:{},on:[{events:c,update:`{x: ${r}.x - x(unit), y: ${r}.y - y(unit)}`}]}),a!==void 0&&PP(t,n,a,"width",e),u!==void 0&&PP(t,n,u,"height",e),e}};function PP(t,n,e,o,f){var r,a;const u=n.name,c=u+Rq,i=u+Fq,s=e.channel,l=op.defined(n),d=f.filter(T=>T.name===e.signals[l?"data":"visual"])[0],h=t.getSizeSignalRef(o).signal,m=t.getScaleComponent(s),g=m.get("type"),p=m.get("reverse"),v=l?s===cs?p?"":"-":p?"-":"":"",y=`${c}.extent_${s}`,x=`${v}${i}.${s} / ${l?`${h}`:`span(${y})`}`,w=l?g==="log"?"panLog":g==="symlog"?"panSymlog":g==="pow"?"panPow":"panLinear":"panLinear",k=l?g==="pow"?`, ${(r=m.get("exponent"))!==null&&r!==void 0?r:1}`:g==="symlog"?`, ${(a=m.get("constant"))!==null&&a!==void 0?a:1}`:"":"",b=`${w}(${y}, ${x}${k})`;d.on.push({events:{signal:i},update:l?b:`clampRange(${b}, 0, ${h})`})}const Nq="_zoom_anchor",Bq="_zoom_delta",oxe={defined:t=>t.type==="interval"&&t.zoom,signals:(t,n,e)=>{const o=n.name,f=op.defined(n),r=o+Bq,{x:a,y:u}=n.project.hasChannel,c=oi(t.scaleName(cs)),i=oi(t.scaleName(ol));let s=pp(n.zoom,"scope");return f||(s=s.map(l=>(l.markname=o+om,l))),e.push({name:o+Nq,on:[{events:s,update:f?"{"+[c?`x: invert(${c}, x(unit))`:"",i?`y: invert(${i}, y(unit))`:""].filter(l=>!!l).join(", ")+"}":"{x: x(unit), y: y(unit)}"}]},{name:r,on:[{events:s,force:!0,update:"pow(1.001, event.deltaY * pow(16, event.deltaMode))"}]}),a!==void 0&&DP(t,n,a,"width",e),u!==void 0&&DP(t,n,u,"height",e),e}};function DP(t,n,e,o,f){var r,a;const u=n.name,c=e.channel,i=op.defined(n),s=f.filter(w=>w.name===e.signals[i?"data":"visual"])[0],l=t.getSizeSignalRef(o).signal,d=t.getScaleComponent(c),h=d.get("type"),m=i?JT(t,c):s.name,g=u+Bq,p=`${u}${Nq}.${c}`,v=i?h==="log"?"zoomLog":h==="symlog"?"zoomSymlog":h==="pow"?"zoomPow":"zoomLinear":"zoomLinear",y=i?h==="pow"?`, ${(r=d.get("exponent"))!==null&&r!==void 0?r:1}`:h==="symlog"?`, ${(a=d.get("constant"))!==null&&a!==void 0?a:1}`:"":"",x=`${v}(${m}, ${p}, ${g}${y})`;s.on.push({events:{signal:g},update:i?x:`clampRange(${x}, 0, ${l})`})}const B0="_store",lp="_tuple",sxe="_modify",jq="vlSelectionResolve",A3=[jye,Nye,Rye,Iq,Dq,op,zq,rxe,axe,oxe,Pq];function lxe(t){let n=t.parent;for(;n&&!lf(n);)n=n.parent;return n}function Im(t,{escape:n}={escape:!0}){let e=n?oi(t.name):t.name;const o=lxe(t);if(o){const{facet:f}=o;for(const r of dc)f[r]&&(e+=` + '__facet_${r}_' + (facet[${oi(o.vgField(r))}])`)}return e}function w8(t){var n;return ql((n=t.component.selection)!==null&&n!==void 0?n:{}).reduce((e,o)=>e||o.project.hasSelectionId,!1)}function Uq(t,n){(bi(n.select)||!n.select.on)&&delete t.events,(bi(n.select)||!n.select.clear)&&delete t.clear,(bi(n.select)||!n.select.toggle)&&delete t.toggle}function eA(t){const n=[];return t.type==="Identifier"?[t.name]:t.type==="Literal"?[t.value]:(t.type==="MemberExpression"&&(n.push(...eA(t.object)),n.push(...eA(t.property))),n)}function Vq(t){return t.object.type==="MemberExpression"?Vq(t.object):t.object.name==="datum"}function qq(t){const n=BS(t),e=new Set;return n.visit(o=>{o.type==="MemberExpression"&&Vq(o)&&e.add(eA(o).slice(1).join("."))}),e}class i1 extends To{constructor(n,e,o){super(n),this.model=e,this.filter=o,this.expr=R2(this.model,this.filter,this),this._dependentFields=qq(this.expr)}clone(){return new i1(null,this.model,ha(this.filter))}dependentFields(){return this._dependentFields}producedFields(){return new Set}assemble(){return{type:"filter",expr:this.expr}}hash(){return`Filter ${this.expr}`}}function uxe(t,n){var e;const o={},f=t.config.selection;if(!n||!n.length)return o;for(const r of n){const a=Xo(r.name),u=r.select,c=bi(u)?u:u.type,i=Ei(u)?ha(u):{type:c},s=f[c];for(const d in s)d==="fields"||d==="encodings"||(d==="mark"&&(i[d]=Object.assign(Object.assign({},s[d]),i[d])),(i[d]===void 0||i[d]===!0)&&(i[d]=(e=s[d])!==null&&e!==void 0?e:i[d]));const l=o[a]=Object.assign(Object.assign({},i),{name:a,type:c,init:r.value,bind:r.bind,events:bi(i.on)?pp(i.on,"scope"):ki(ha(i.on))});for(const d of A3)d.defined(l)&&d.parse&&d.parse(t,l,r)}return o}function Hq(t,n,e,o="datum"){const f=bi(n)?n:n.param,r=Xo(f),a=oi(r+B0);let u;try{u=t.getSelectionComponent(r,f)}catch{return`!!${r}`}if(u.project.timeUnit){const d=e??t.component.data.raw,h=u.project.timeUnit.clone();d.parent?h.insertAsParentOf(d):d.parent=h}const c=u.project.hasSelectionId?"vlSelectionIdTest(":"vlSelectionTest(",i=u.resolve==="global"?")":`, ${oi(u.resolve)})`,s=`${c}${a}, ${o}${i}`,l=`length(data(${a}))`;return n.empty===!1?`${l} && ${s}`:`!${l} || ${s}`}function $q(t,n,e){const o=Xo(n),f=e.encoding;let r=e.field,a;try{a=t.getSelectionComponent(o,n)}catch{return o}if(!f&&!r)r=a.project.items[0].field,a.project.items.length>1&&Kr(`A "field" or "encoding" must be specified when using a selection as a scale domain. Using "field": ${oi(r)}.`);else if(f&&!r){const u=a.project.items.filter(c=>c.channel===f);!u.length||u.length>1?(r=a.project.items[0].field,Kr((u.length?"Multiple ":"No ")+`matching ${oi(f)} encoding found for selection ${oi(e.param)}. Using "field": ${oi(r)}.`)):r=u[0].field}return`${a.name}[${oi(bc(r))}]`}function cxe(t,n){var e;for(const[o,f]of rp((e=t.component.selection)!==null&&e!==void 0?e:{})){const r=t.getName(`lookup_${o}`);t.component.data.outputNodes[r]=f.materialized=new hu(new i1(n,t,{param:o}),r,Fo.Lookup,t.component.data.outputNodeRefCounts)}}function R2(t,n,e){return Nv(n,o=>bi(o)?o:jme(o)?Hq(t,o,e):lV(o))}var Mb=globalThis&&globalThis.__rest||function(t,n){var e={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&n.indexOf(o)<0&&(e[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var f=0,o=Object.getOwnPropertySymbols(t);fn8(e,n)).join(", "):t}function I4(t,n,e,o){var f,r,a,u,c;(f=t.encode)!==null&&f!==void 0||(t.encode={}),(r=(u=t.encode)[n])!==null&&r!==void 0||(u[n]={}),(a=(c=t.encode[n]).update)!==null&&a!==void 0||(c.update={}),t.encode[n].update[e]=o}function Tv(t,n,e,o={header:!1}){var f,r;const a=t.combine(),{disable:u,orient:c,scale:i,labelExpr:s,title:l,zindex:d}=a,h=Mb(a,["disable","orient","scale","labelExpr","title","zindex"]);if(!u){for(const m in h){const g=q1e[m],p=h[m];if(g&&g!==n&&g!=="both")delete h[m];else if(cx(p)){const{condition:v}=p,y=Mb(p,["condition"]),x=ki(v),w=cP[m];if(w){const{vgProp:k,part:b}=w,T=[...x.map(_=>{const{test:M}=_,A=Mb(_,["test"]);return Object.assign({test:R2(null,M)},A)}),y];I4(h,b,k,T),delete h[m]}else if(w===null){const k={signal:x.map(b=>{const{test:T}=b,_=Mb(b,["test"]);return`${R2(null,T)} ? ${XL(_)} : `}).join("")+XL(y)};h[m]=k}}else if(Vi(p)){const v=cP[m];if(v){const{vgProp:y,part:x}=v;I4(h,x,y,p),delete h[m]}}Fa(["labelAlign","labelBaseline"],m)&&h[m]===null&&delete h[m]}if(n==="grid"){if(!h.grid)return;if(h.encode){const{grid:m}=h.encode;h.encode=Object.assign({},m?{grid:m}:{}),_o(h.encode)&&delete h.encode}return Object.assign(Object.assign({scale:i,orient:c},h),{domain:!1,labels:!1,aria:!1,maxExtent:0,minExtent:0,ticks:!1,zindex:Rs(d,0)})}else{if(!o.header&&t.mainExtracted)return;if(s!==void 0){let g=s;((r=(f=h.encode)===null||f===void 0?void 0:f.labels)===null||r===void 0?void 0:r.update)&&Vi(h.encode.labels.update.text)&&(g=P0(s,"datum.label",h.encode.labels.update.text.signal)),I4(h,"labels","text",{signal:g})}if(h.labelAlign===null&&delete h.labelAlign,h.encode){for(const g of BV)t.hasAxisPart(g)||delete h.encode[g];_o(h.encode)&&delete h.encode}const m=fxe(l,e);return Object.assign(Object.assign(Object.assign(Object.assign({scale:i,orient:c,grid:!1},m?{title:m}:{}),h),e.aria===!1?{aria:!1}:{}),{zindex:Rs(d,0)})}}}function Gq(t){const{axes:n}=t.component,e=[];for(const o of gh)if(n[o]){for(const f of n[o])if(!f.get("disable")&&!f.get("gridScale")){const r=o==="x"?"height":"width",a=t.getSizeSignalRef(r).signal;r!==a&&e.push({name:r,update:a})}}return e}function hxe(t,n){const{x:e=[],y:o=[]}=t;return[...e.map(f=>Tv(f,"grid",n)),...o.map(f=>Tv(f,"grid",n)),...e.map(f=>Tv(f,"main",n)),...o.map(f=>Tv(f,"main",n))].filter(f=>f)}function IP(t,n,e,o){return Object.assign.apply(null,[{},...t.map(f=>{if(f==="axisOrient"){const r=e==="x"?"bottom":"left",a=n[e==="x"?"axisBottom":"axisLeft"]||{},u=n[e==="x"?"axisTop":"axisRight"]||{},c=new Set([...Xr(a),...Xr(u)]),i={};for(const s of c.values())i[s]={signal:`${o.signal} === "${r}" ? ${Hh(a[s])} : ${Hh(u[s])}`};return i}return n[f]})])}function dxe(t,n,e,o){const f=n==="band"?["axisDiscrete","axisBand"]:n==="point"?["axisDiscrete","axisPoint"]:hV(n)?["axisQuantitative"]:n==="time"||n==="utc"?["axisTemporal"]:[],r=t==="x"?"axisX":"axisY",a=Vi(e)?"axisOrient":`axis${Qy(e)}`,u=[...f,...f.map(i=>r+i.substr(4))],c=["axis",a,r];return{vlOnlyAxisConfig:IP(u,o,t,e),vgAxisConfig:IP(c,o,t,e),axisConfigStyle:pxe([...c,...u],o)}}function pxe(t,n){var e;const o=[{}];for(const f of t){let r=(e=n[f])===null||e===void 0?void 0:e.style;if(r){r=ki(r);for(const a of r)o.push(n.style[a])}}return Object.assign.apply(null,o)}function tA(t,n,e,o={}){var f;const r=HU(t,e,n);if(r!==void 0)return{configFrom:"style",configValue:r};for(const a of["vlOnlyAxisConfig","vgAxisConfig","axisConfigStyle"])if(((f=o[a])===null||f===void 0?void 0:f[t])!==void 0)return{configFrom:a,configValue:o[a][t]};return{}}const zP={scale:({model:t,channel:n})=>t.scaleName(n),format:({fieldOrDatumDef:t,config:n,axis:e})=>{const{format:o,formatType:f}=e;return TV(t,t.type,o,f,n,!0)},formatType:({axis:t,fieldOrDatumDef:n,scaleType:e})=>{const{formatType:o}=t;return AV(o,n,e)},grid:({fieldOrDatumDef:t,axis:n,scaleType:e})=>{var o;return(o=n.grid)!==null&&o!==void 0?o:gxe(e,t)},gridScale:({model:t,channel:n})=>mxe(t,n),labelAlign:({axis:t,labelAngle:n,orient:e,channel:o})=>t.labelAlign||Yq(n,e,o),labelAngle:({labelAngle:t})=>t,labelBaseline:({axis:t,labelAngle:n,orient:e,channel:o})=>t.labelBaseline||Wq(n,e,o),labelFlush:({axis:t,fieldOrDatumDef:n,channel:e})=>{var o;return(o=t.labelFlush)!==null&&o!==void 0?o:yxe(n.type,e)},labelOverlap:({axis:t,fieldOrDatumDef:n,scaleType:e})=>{var o;return(o=t.labelOverlap)!==null&&o!==void 0?o:xxe(n.type,e,ti(n)&&!!n.timeUnit,ti(n)?n.sort:void 0)},orient:({orient:t})=>t,tickCount:({channel:t,model:n,axis:e,fieldOrDatumDef:o,scaleType:f})=>{var r;const a=t==="x"?"width":t==="y"?"height":void 0,u=a?n.getSizeSignalRef(a):void 0;return(r=e.tickCount)!==null&&r!==void 0?r:_xe({fieldOrDatumDef:o,scaleType:f,size:u,values:e.values})},title:({axis:t,model:n,channel:e})=>{if(t.title!==void 0)return t.title;const o=Xq(n,e);if(o!==void 0)return o;const f=n.typedFieldDef(e),r=e==="x"?"x2":"y2",a=n.fieldDef(r);return GU(f?[uP(f)]:[],ti(a)?[uP(a)]:[])},values:({axis:t,fieldOrDatumDef:n})=>wxe(t,n),zindex:({axis:t,fieldOrDatumDef:n,mark:e})=>{var o;return(o=t.zindex)!==null&&o!==void 0?o:kxe(e,n)}};function gxe(t,n){return!ll(t)&&ti(n)&&!Bo(n?.bin)&&!xl(n?.bin)}function mxe(t,n){const e=n==="x"?"y":"x";if(t.getScaleComponent(e))return t.scaleName(e)}function vxe(t,n,e,o,f){const r=n?.labelAngle;if(r!==void 0)return Vi(r)?r:hy(r);{const{configValue:a}=tA("labelAngle",o,n?.style,f);return a!==void 0?hy(a):e===cs&&Fa([$E,HE],t.type)&&!(ti(t)&&t.timeUnit)?270:void 0}}function nA(t){return`(((${t.signal} % 360) + 360) % 360)`}function Wq(t,n,e,o){if(t!==void 0)if(e==="x"){if(Vi(t)){const f=nA(t),r=Vi(n)?`(${n.signal} === "top")`:n==="top";return{signal:`(45 < ${f} && ${f} < 135) || (225 < ${f} && ${f} < 315) ? "middle" :(${f} <= 45 || 315 <= ${f}) === ${r} ? "bottom" : "top"`}}if(45{if(!!eg(o)&&EV(o.sort)){const{field:r,timeUnit:a}=o,u=o.sort,c=u.map((i,s)=>`${lV({field:r,timeUnit:a,equal:i})} ? ${s} : `).join("")+u.length;n=new zm(n,{calculate:c,as:Rm(o,f,{forAs:!0})})}}),n}producedFields(){return new Set([this.transform.as])}dependentFields(){return this._dependentFields}assemble(){return{type:"formula",expr:this.transform.calculate,as:this.transform.as}}hash(){return`Calculate ${Ba(this.transform)}`}}function Rm(t,n,e){return hi(t,Object.assign({prefix:n,suffix:"sort_index"},e??{}))}function M3(t,n){return Fa(["top","bottom"],n)?"column":Fa(["left","right"],n)||t==="row"?"row":"column"}function Fm(t,n,e,o){const f=o==="row"?e.headerRow:o==="column"?e.headerColumn:e.headerFacet;return Rs((n||{})[t],f[t],e.header[t])}function S3(t,n,e,o){const f={};for(const r of t){const a=Fm(r,n||{},e,o);a!==void 0&&(f[r]=a)}return f}const k8=["row","column"],T8=["header","footer"];function Txe(t,n){const e=t.component.layoutHeaders[n].title,o=t.config?t.config:void 0,f=t.component.layoutHeaders[n].facetFieldDef?t.component.layoutHeaders[n].facetFieldDef:void 0,{titleAnchor:r,titleAngle:a,titleOrient:u}=S3(["titleAnchor","titleAngle","titleOrient"],f.header,o,n),c=M3(n,u),i=hy(a);return{name:`${n}-title`,type:"group",role:`${c}-title`,title:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({text:e},n==="row"?{orient:"left"}:{}),{style:"guide-title"}),Jq(i,c)),Zq(c,i,r)),Kq(o,f,n,hve,nq))}}function Zq(t,n,e="middle"){switch(e){case"start":return{align:"left"};case"end":return{align:"right"}}const o=Yq(n,t==="row"?"left":"top",t==="row"?"y":"x");return o?{align:o}:{}}function Jq(t,n){const e=Wq(t,n==="row"?"left":"top",n==="row"?"y":"x",!0);return e?{baseline:e}:{}}function Axe(t,n){const e=t.component.layoutHeaders[n],o=[];for(const f of T8)if(e[f])for(const r of e[f]){const a=Sxe(t,n,f,e,r);a!=null&&o.push(a)}return o}function Mxe(t,n){var e;const{sort:o}=t;return Wf(o)?{field:hi(o,{expr:"datum"}),order:(e=o.order)!==null&&e!==void 0?e:"ascending"}:Ir(o)?{field:Rm(t,n,{expr:"datum"}),order:"ascending"}:{field:hi(t,{expr:"datum"}),order:o??"ascending"}}function rA(t,n,e){const{format:o,formatType:f,labelAngle:r,labelAnchor:a,labelOrient:u,labelExpr:c}=S3(["format","formatType","labelAngle","labelAnchor","labelOrient","labelExpr"],t.header,e,n),i=KE({fieldOrDatumDef:t,format:o,formatType:f,expr:"parent",config:e}).signal,s=M3(n,u);return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({text:{signal:c?P0(P0(c,"datum.label",i),"datum.value",hi(t,{expr:"parent"})):i}},n==="row"?{orient:"left"}:{}),{style:"guide-label",frame:"group"}),Jq(r,s)),Zq(s,r,a)),Kq(e,t,n,dve,rq))}function Sxe(t,n,e,o,f){if(f){let r=null;const{facetFieldDef:a}=o,u=t.config?t.config:void 0;if(a&&f.labels){const{labelOrient:l}=S3(["labelOrient"],a.header,u,n);(n==="row"&&!Fa(["top","bottom"],l)||n==="column"&&!Fa(["left","right"],l))&&(r=rA(a,n,u))}const c=lf(t)&&!sx(t.facet),i=f.axes,s=i?.length>0;if(r||s){const l=n==="row"?"height":"width";return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:t.getName(`${n}_${e}`),type:"group",role:`${n}-${e}`},o.facetFieldDef?{from:{data:t.getName(`${n}_domain`)},sort:Mxe(a,n)}:{}),s&&c?{from:{data:t.getName(`facet_domain_${n}`)}}:{}),r?{title:r}:{}),f.sizeSignal?{encode:{update:{[l]:f.sizeSignal}}}:{}),s?{axes:i}:{})}}return null}const Exe={column:{start:0,end:1},row:{start:1,end:0}};function Cxe(t,n){return Exe[n][t]}function Oxe(t,n){const e={};for(const o of dc){const f=t[o];if(f?.facetFieldDef){const{titleAnchor:r,titleOrient:a}=S3(["titleAnchor","titleOrient"],f.facetFieldDef.header,n,o),u=M3(o,a),c=Cxe(r,u);c!==void 0&&(e[u]=c)}}return _o(e)?void 0:e}function Kq(t,n,e,o,f){const r={};for(const a of o){if(!f[a])continue;const u=Fm(a,n?.header,t,e);u!==void 0&&(r[f[a]]=u)}return r}function A8(t){return[...Sb(t,"width"),...Sb(t,"height"),...Sb(t,"childWidth"),...Sb(t,"childHeight")]}function Sb(t,n){const e=n==="width"?"x":"y",o=t.component.layoutSize.get(n);if(!o||o==="merged")return[];const f=t.getSizeSignalRef(n).signal;if(o==="step"){const r=t.getScaleComponent(e);if(r){const a=r.get("type"),u=r.get("range");if(ll(a)&&wp(u)){const c=t.scaleName(e);return lf(t.parent)&&t.parent.component.resolve.scale[e]==="independent"?[RP(c,u)]:[RP(c,u),{name:f,update:Qq(c,r,`domain('${c}').length`)}]}}throw new Error("layout size is step although width/height is not step.")}else if(o=="container"){const r=f.endsWith("width"),a=r?"containerSize()[0]":"containerSize()[1]",u=WT(t.config.view,r?"width":"height"),c=`isFinite(${a}) ? ${a} : ${u}`;return[{name:f,init:c,on:[{update:c,events:"window:resize"}]}]}else return[{name:f,value:o}]}function RP(t,n){const e=`${t}_step`;return Vi(n.step)?{name:e,update:n.step.signal}:{name:e,value:n.step}}function Qq(t,n,e){const o=n.get("type"),f=n.get("padding"),r=Rs(n.get("paddingOuter"),f);let a=n.get("paddingInner");return a=o==="band"?a!==void 0?a:f:1,`bandspace(${e}, ${Hh(a)}, ${Hh(r)}) * ${t}_step`}function eH(t){return t==="childWidth"?"width":t==="childHeight"?"height":t}function tH(t,n){return Xr(t).reduce((e,o)=>{const f=t[o];return Object.assign(Object.assign({},e),r1(n,f,o,r=>Ho(r.value)))},{})}function nH(t,n){if(lf(n))return t==="theta"?"independent":"shared";if(s1(n))return"shared";if(P8(n))return sl(t)||t==="theta"||t==="radius"?"independent":"shared";throw new Error("invalid model type for resolve")}function M8(t,n){const e=t.scale[n],o=sl(n)?"axis":"legend";return e==="independent"?(t[o][n]==="shared"&&Kr(ume(n)),"independent"):t[o][n]||"shared"}const Lxe=Object.assign(Object.assign({},mve),{disable:1,labelExpr:1,selections:1,opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,strokeDash:1,encode:1}),rH=Xr(Lxe);class Pxe extends ad{}const FP={symbols:Dxe,gradient:Ixe,labels:zxe,entries:Rxe};function Dxe(t,{fieldOrDatumDef:n,model:e,channel:o,legendCmpt:f,legendType:r}){var a,u,c,i,s,l,d,h;if(r!=="symbol")return;const{markDef:m,encoding:g,config:p,mark:v}=e,y=m.filled&&v!=="trail";let x=Object.assign(Object.assign({},xge({},e,h1e)),Cq(e,{filled:y}));const w=(a=f.get("symbolOpacity"))!==null&&a!==void 0?a:p.legend.symbolOpacity,k=(u=f.get("symbolFillColor"))!==null&&u!==void 0?u:p.legend.symbolFillColor,b=(c=f.get("symbolStrokeColor"))!==null&&c!==void 0?c:p.legend.symbolStrokeColor,T=w===void 0?(i=iH(g.opacity))!==null&&i!==void 0?i:m.opacity:void 0;if(x.fill){if(o==="fill"||y&&o===zu)delete x.fill;else if(x.fill.field)k?delete x.fill:(x.fill=Ho((s=p.legend.symbolBaseFillColor)!==null&&s!==void 0?s:"black"),x.fillOpacity=Ho(T??1));else if(Ir(x.fill)){const _=(h=(d=iA((l=g.fill)!==null&&l!==void 0?l:g.color))!==null&&d!==void 0?d:m.fill)!==null&&h!==void 0?h:y&&m.color;_&&(x.fill=Ho(_))}}if(x.stroke){if(o==="stroke"||!y&&o===zu)delete x.stroke;else if(x.stroke.field||b)delete x.stroke;else if(Ir(x.stroke)){const _=Rs(iA(g.stroke||g.color),m.stroke,y?m.color:void 0);_&&(x.stroke={value:_})}}if(o!==rd){const _=ti(n)&&oH(e,f,n);_?x.opacity=[Object.assign({test:_},Ho(T??1)),Ho(p.legend.unselectedOpacity)]:T&&(x.opacity=Ho(T))}return x=Object.assign(Object.assign({},x),t),_o(x)?void 0:x}function Ixe(t,{model:n,legendType:e,legendCmpt:o}){var f;if(e!=="gradient")return;const{config:r,markDef:a,encoding:u}=n;let c={};const s=((f=o.get("gradientOpacity"))!==null&&f!==void 0?f:r.legend.gradientOpacity)===void 0?iH(u.opacity)||a.opacity:void 0;return s&&(c.opacity=Ho(s)),c=Object.assign(Object.assign({},c),t),_o(c)?void 0:c}function zxe(t,{fieldOrDatumDef:n,model:e,channel:o,legendCmpt:f}){const r=e.legend(o)||{},a=e.config,u=ti(n)?oH(e,f,n):void 0,c=u?[{test:u,value:1},{value:a.legend.unselectedOpacity}]:void 0,{format:i,formatType:s}=r;let l;F0(s)?l=rf({fieldOrDatumDef:n,field:"datum.value",format:i,formatType:s,config:a}):i===void 0&&s===void 0&&a.customFormatTypes&&(n.type==="quantitative"&&a.numberFormatType?l=rf({fieldOrDatumDef:n,field:"datum.value",format:a.numberFormat,formatType:a.numberFormatType,config:a}):n.type==="temporal"&&a.timeFormatType&&ti(n)&&n.timeUnit===void 0&&(l=rf({fieldOrDatumDef:n,field:"datum.value",format:a.timeFormat,formatType:a.timeFormatType,config:a})));const d=Object.assign(Object.assign(Object.assign({},c?{opacity:c}:{}),l?{text:l}:{}),t);return _o(d)?void 0:d}function Rxe(t,{legendCmpt:n}){const e=n.get("selections");return e?.length?Object.assign(Object.assign({},t),{fill:{value:"transparent"}}):t}function iH(t){return aH(t,(n,e)=>Math.max(n,e.value))}function iA(t){return aH(t,(n,e)=>Rs(n,e.value))}function aH(t,n){if(L1e(t))return ki(t.condition).reduce(n,t.value);if(pf(t))return t.value}function oH(t,n,e){const o=n.get("selections");if(!o?.length)return;const f=oi(e.field);return o.map(r=>`(!length(data(${oi(Xo(r)+B0)})) || (${r}[${f}] && indexof(${r}[${f}], datum.value) >= 0))`).join(" || ")}const NP={direction:({direction:t})=>t,format:({fieldOrDatumDef:t,legend:n,config:e})=>{const{format:o,formatType:f}=n;return TV(t,t.type,o,f,e,!1)},formatType:({legend:t,fieldOrDatumDef:n,scaleType:e})=>{const{formatType:o}=t;return AV(o,n,e)},gradientLength:t=>{var n,e;const{legend:o,legendConfig:f}=t;return(e=(n=o.gradientLength)!==null&&n!==void 0?n:f.gradientLength)!==null&&e!==void 0?e:qxe(t)},labelOverlap:({legend:t,legendConfig:n,scaleType:e})=>{var o,f;return(f=(o=t.labelOverlap)!==null&&o!==void 0?o:n.labelOverlap)!==null&&f!==void 0?f:Hxe(e)},symbolType:({legend:t,markDef:n,channel:e,encoding:o})=>{var f;return(f=t.symbolType)!==null&&f!==void 0?f:Nxe(n.type,e,o.shape,n.shape)},title:({fieldOrDatumDef:t,config:n})=>am(t,n,{allowDisabling:!0}),type:({legendType:t,scaleType:n,channel:e})=>{if(im(e)&&nf(n)){if(t==="gradient")return}else if(t==="symbol")return;return t},values:({fieldOrDatumDef:t,legend:n})=>Fxe(n,t)};function Fxe(t,n){const e=t.values;if(Ir(e))return NV(n,e);if(Vi(e))return e}function Nxe(t,n,e,o){var f;if(n!=="shape"){const r=(f=iA(e))!==null&&f!==void 0?f:o;if(r)return r}switch(t){case"bar":case"rect":case"image":case"square":return"square";case"line":case"trail":case"rule":return"stroke";case"arc":case"point":case"circle":case"tick":case"geoshape":case"area":case"text":return"circle"}}function Bxe(t){const{legend:n}=t;return Rs(n.type,jxe(t))}function jxe({channel:t,timeUnit:n,scaleType:e}){if(im(t)){if(Fa(["quarter","month","day"],n))return"symbol";if(nf(e))return"gradient"}return"symbol"}function Uxe({legendConfig:t,legendType:n,orient:e,legend:o}){var f,r;return(r=(f=o.direction)!==null&&f!==void 0?f:t[n?"gradientDirection":"symbolDirection"])!==null&&r!==void 0?r:Vxe(e,n)}function Vxe(t,n){switch(t){case"top":case"bottom":return"horizontal";case"left":case"right":case"none":case void 0:return;default:return n==="gradient"?"horizontal":void 0}}function qxe({legendConfig:t,model:n,direction:e,orient:o,scaleType:f}){const{gradientHorizontalMaxLength:r,gradientHorizontalMinLength:a,gradientVerticalMaxLength:u,gradientVerticalMinLength:c}=t;if(nf(f))return e==="horizontal"?o==="top"||o==="bottom"?BP(n,"width",a,r):a:BP(n,"height",c,u)}function BP(t,n,e,o){return{signal:`clamp(${t.getSizeSignalRef(n).signal}, ${e}, ${o})`}}function Hxe(t){if(Fa(["quantile","threshold","log","symlog"],t))return"greedy"}function sH(t){const n=Is(t)?$xe(t):Xxe(t);return t.component.legends=n,n}function $xe(t){const{encoding:n}=t,e={};for(const o of[zu,...aq]){const f=Ws(n[o]);!f||!t.getScaleComponent(o)||o===Ru&&ti(f)&&f.type===n1||(e[o]=Yxe(t,o))}return e}function Gxe(t,n){const e=t.scaleName(n);if(t.mark==="trail"){if(n==="color")return{stroke:e};if(n==="size")return{strokeWidth:e}}return n==="color"?t.markDef.filled?{fill:e}:{stroke:e}:{[n]:e}}function Wxe(t,n,e,o){switch(n){case"disable":return e!==void 0;case"values":return!!e?.values;case"title":if(n==="title"&&t===o?.title)return!0}return t===(e||{})[n]}function Yxe(t,n){var e,o,f;let r=t.legend(n);const{markDef:a,encoding:u,config:c}=t,i=c.legend,s=new Pxe({},Gxe(t,n));ixe(t,n,s);const l=r!==void 0?!r:i.disable;if(s.set("disable",l,r!==void 0),l)return s;r=r||{};const d=t.getScaleComponent(n).get("type"),h=Ws(u[n]),m=ti(h)?(e=Gl(h.timeUnit))===null||e===void 0?void 0:e.unit:void 0,g=r.orient||c.legend.orient||"right",p=Bxe({legend:r,channel:n,timeUnit:m,scaleType:d}),v=Uxe({legend:r,legendType:p,orient:g,legendConfig:i}),y={legend:r,channel:n,model:t,markDef:a,encoding:u,fieldOrDatumDef:h,legendConfig:i,config:c,scaleType:d,orient:g,legendType:p,direction:v};for(const T of rH){if(p==="gradient"&&T.startsWith("symbol")||p==="symbol"&&T.startsWith("gradient"))continue;const _=T in NP?NP[T](y):r[T];if(_!==void 0){const M=Wxe(_,T,r,t.fieldDef(n));(M||c.legend[T]===void 0)&&s.set(T,_,M)}}const x=(o=r?.encoding)!==null&&o!==void 0?o:{},w=s.get("selections"),k={},b={fieldOrDatumDef:h,model:t,channel:n,legendCmpt:s,legendType:p};for(const T of["labels","legend","title","symbols","gradient","entries"]){const _=tH((f=x[T])!==null&&f!==void 0?f:{},t),M=T in FP?FP[T](_,b):_;M!==void 0&&!_o(M)&&(k[T]=Object.assign(Object.assign(Object.assign({},w?.length&&ti(h)?{name:`${Xo(h.field)}_legend_${T}`}:{}),w?.length?{interactive:!!w}:{}),{update:M}))}return _o(k)||s.set("encode",k,!!r?.encoding),s}function Xxe(t){const{legends:n,resolve:e}=t.component;for(const o of t.children){sH(o);for(const f of Xr(o.component.legends))e.legend[f]=M8(t.component.resolve,f),e.legend[f]==="shared"&&(n[f]=lH(n[f],o.component.legends[f]),n[f]||(e.legend[f]="independent",delete n[f]))}for(const o of Xr(n))for(const f of t.children)!f.component.legends[o]||e.legend[o]==="shared"&&delete f.component.legends[o];return n}function lH(t,n){var e,o,f,r;if(!t)return n.clone();const a=t.getWithExplicit("orient"),u=n.getWithExplicit("orient");if(a.explicit&&u.explicit&&a.value!==u.value)return;let c=!1;for(const i of rH){const s=ap(t.getWithExplicit(i),n.getWithExplicit(i),i,"legend",(l,d)=>{switch(i){case"symbolType":return Zxe(l,d);case"title":return YU(l,d);case"type":return c=!0,Gu("symbol")}return k3(l,d,i,"legend")});t.setWithExplicit(i,s)}return c&&(!((o=(e=t.implicit)===null||e===void 0?void 0:e.encode)===null||o===void 0)&&o.gradient&&k2(t.implicit,["encode","gradient"]),!((r=(f=t.explicit)===null||f===void 0?void 0:f.encode)===null||r===void 0)&&r.gradient&&k2(t.explicit,["encode","gradient"])),t}function Zxe(t,n){return n.value==="circle"?n:t}var Jxe=globalThis&&globalThis.__rest||function(t,n){var e={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&n.indexOf(o)<0&&(e[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var f=0,o=Object.getOwnPropertySymbols(t);fQxe(f,t.config)).filter(f=>f!==void 0)}function Qxe(t,n){var e,o,f;const r=t.combine(),{disable:a,labelExpr:u,selections:c}=r,i=Jxe(r,["disable","labelExpr","selections"]);if(!a){if(n.aria===!1&&i.aria==null&&(i.aria=!1),!((e=i.encode)===null||e===void 0)&&e.symbols){const s=i.encode.symbols.update;s.fill&&s.fill.value!=="transparent"&&!s.stroke&&!i.stroke&&(s.stroke={value:"transparent"});for(const l of aq)i[l]&&delete s[l]}if(i.title||delete i.title,u!==void 0){let s=u;((f=(o=i.encode)===null||o===void 0?void 0:o.labels)===null||f===void 0?void 0:f.update)&&Vi(i.encode.labels.update.text)&&(s=P0(u,"datum.label",i.encode.labels.update.text.signal)),Kxe(i,"labels","text",{signal:s})}return i}}function ebe(t){return s1(t)||P8(t)?tbe(t):cH(t)}function tbe(t){return t.children.reduce((n,e)=>n.concat(e.assembleProjections()),cH(t))}function cH(t){const n=t.component.projection;if(!n||n.merged)return[];const e=n.combine(),{name:o}=e;if(n.data){const f={signal:`[${n.size.map(a=>a.signal).join(", ")}]`},r=n.data.reduce((a,u)=>{const c=Vi(u)?u.signal:`data('${t.lookupDataSource(u)}')`;return Fa(a,c)||a.push(c),a},[]);if(r.length<=0)throw new Error("Projection's fit didn't find any data sources");return[Object.assign({name:o,size:f,fit:{signal:r.length>1?`[${r.join(", ")}]`:r[0]}},e)]}else return[Object.assign(Object.assign({name:o},{translate:{signal:"[width / 2, height / 2]"}}),e)]}const nbe=["type","clipAngle","clipExtent","center","rotate","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];class fH extends ad{constructor(n,e,o,f){super(Object.assign({},e),{name:n}),this.specifiedProjection=e,this.size=o,this.data=f,this.merged=!1}get isFit(){return!!this.data}}function hH(t){t.component.projection=Is(t)?rbe(t):obe(t)}function rbe(t){var n;if(t.hasProjection){const e=Tu(t.specifiedProjection),o=!(e&&(e.scale!=null||e.translate!=null)),f=o?[t.getSizeSignalRef("width"),t.getSizeSignalRef("height")]:void 0,r=o?ibe(t):void 0,a=new fH(t.projectionName(!0),Object.assign(Object.assign({},(n=Tu(t.config.projection))!==null&&n!==void 0?n:{}),e??{}),f,r);return a.get("type")||a.set("type","equalEarth",!1),a}}function ibe(t){const n=[],{encoding:e}=t;for(const o of[[fh,ch],[_c,bf]])(Ws(e[o[0]])||Ws(e[o[1]]))&&n.push({signal:t.getName(`geojson_${n.length}`)});return t.channelHasField(Ru)&&t.typedFieldDef(Ru).type===n1&&n.push({signal:t.getName(`geojson_${n.length}`)}),n.length===0&&n.push(t.requestDataName(Fo.Main)),n}function abe(t,n){const e=vE(nbe,f=>!!(!qi(t.explicit,f)&&!qi(n.explicit,f)||qi(t.explicit,f)&&qi(n.explicit,f)&&Uf(t.get(f),n.get(f))));if(Uf(t.size,n.size)){if(e)return t;if(Uf(t.explicit,{}))return n;if(Uf(n.explicit,{}))return t}return null}function obe(t){if(t.children.length===0)return;let n;for(const o of t.children)hH(o);const e=vE(t.children,o=>{const f=o.component.projection;if(f)if(n){const r=abe(n,f);return r&&(n=r),!!r}else return n=f,!0;else return!0});if(n&&e){const o=t.projectionName(!0),f=new fH(o,n.specifiedProjection,n.size,ha(n.data));for(const r of t.children){const a=r.component.projection;a&&(a.isFit&&f.data.push(...r.component.projection.data),r.renameProjection(a.get("name"),o),a.merged=!0)}return f}}var sbe=globalThis&&globalThis.__rest||function(t,n){var e={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&n.indexOf(o)<0&&(e[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var f=0,o=Object.getOwnPropertySymbols(t);f{if(wc(r)&&Bo(r.bin)){const{key:u,binComponent:c}=jP(r,r.bin,e);f[u]=Object.assign(Object.assign(Object.assign({},c),f[u]),lbe(e,r,a,e.config))}return f},{});return _o(o)?null:new Xf(n,o)}static makeFromTransform(n,e,o){const{key:f,binComponent:r}=jP(e,e.bin,o);return new Xf(n,{[f]:r})}merge(n,e){for(const o of Xr(n.bins))o in this.bins?(e(n.bins[o].signal,this.bins[o].signal),this.bins[o].as=Vf([...this.bins[o].as,...n.bins[o].as],Ba)):this.bins[o]=n.bins[o];for(const o of n.children)n.removeChild(o),o.parent=this;n.remove()}producedFields(){return new Set(ql(this.bins).map(n=>n.as).flat(2))}dependentFields(){return new Set(ql(this.bins).map(n=>n.field))}hash(){return`Bin ${Ba(this.bins)}`}assemble(){return ql(this.bins).flatMap(n=>{const e=[],[o,...f]=n.as,r=n.bin,{extent:a}=r,u=sbe(r,["extent"]),c=Object.assign(Object.assign(Object.assign({type:"bin",field:bc(n.field),as:o,signal:n.signal},s3(a)?{extent:null}:{extent:a}),n.span?{span:{signal:`span(${n.span})`}}:{}),u);!a&&n.extentSignal&&(e.push({type:"extent",field:bc(n.field),signal:n.extentSignal}),c.extent={signal:n.extentSignal}),e.push(c);for(const i of f)for(let s=0;s<2;s++)e.push({type:"formula",expr:hi({field:o[s]},{expr:"datum"}),as:i[s]});return n.formula&&e.push({type:"formula",expr:n.formula,as:n.formulaAs}),e})}}function fbe(t,n,e,o){var f;const r=Is(o)?o.encoding[ph(n)]:void 0;if(wc(e)&&Is(o)&&LV(e,r,o.markDef,o.config))t.add(hi(e,{})),t.add(hi(e,{suffix:"end"})),e.bin&&ux(e,n)&&t.add(hi(e,{binSuffix:"range"}));else if(q0e(n)){const a=V0e(n);t.add(o.getName(a))}else t.add(hi(e));return eg(e)&&e1e((f=e.scale)===null||f===void 0?void 0:f.range)&&t.add(e.scale.range.field),t}function hbe(t,n){var e;for(const o of Xr(n)){const f=n[o];for(const r of Xr(f))o in t?t[o][r]=new Set([...(e=t[o][r])!==null&&e!==void 0?e:[],...f[r]]):t[o]={[r]:f[r]}}}class sf extends To{constructor(n,e,o){super(n),this.dimensions=e,this.measures=o}clone(){return new sf(null,new Set(this.dimensions),ha(this.measures))}get groupBy(){return this.dimensions}static makeFromEncoding(n,e){let o=!1;e.forEachFieldDef(a=>{a.aggregate&&(o=!0)});const f={},r=new Set;return!o||(e.forEachFieldDef((a,u)=>{var c,i,s,l;const{aggregate:d,field:h}=a;if(d)if(d==="count")(c=f["*"])!==null&&c!==void 0||(f["*"]={}),f["*"].count=new Set([hi(a,{forAs:!0})]);else{if(Xh(d)||_p(d)){const m=Xh(d)?"argmin":"argmax",g=d[m];(i=f[g])!==null&&i!==void 0||(f[g]={}),f[g][m]=new Set([hi({op:m,field:g},{forAs:!0})])}else(s=f[h])!==null&&s!==void 0||(f[h]={}),f[h][d]=new Set([hi(a,{forAs:!0})]);bp(u)&&e.scaleDomain(u)==="unaggregated"&&((l=f[h])!==null&&l!==void 0||(f[h]={}),f[h].min=new Set([hi({field:h,aggregate:"min"},{forAs:!0})]),f[h].max=new Set([hi({field:h,aggregate:"max"},{forAs:!0})]))}else fbe(r,u,a,e)}),r.size+Xr(f).length===0)?null:new sf(n,r,f)}static makeFromTransform(n,e){var o,f,r;const a=new Set,u={};for(const c of e.aggregate){const{op:i,field:s,as:l}=c;i&&(i==="count"?((o=u["*"])!==null&&o!==void 0||(u["*"]={}),u["*"].count=new Set([l||hi(c,{forAs:!0})])):((f=u[s])!==null&&f!==void 0||(u[s]={}),u[s][i]=new Set([l||hi(c,{forAs:!0})])))}for(const c of(r=e.groupby)!==null&&r!==void 0?r:[])a.add(c);return a.size+Xr(u).length===0?null:new sf(n,a,u)}merge(n){return wU(this.dimensions,n.dimensions)?(hbe(this.measures,n.measures),!0):(Ame("different dimensions, cannot merge"),!1)}addDimensions(n){n.forEach(this.dimensions.add,this.dimensions)}dependentFields(){return new Set([...this.dimensions,...Xr(this.measures)])}producedFields(){const n=new Set;for(const e of Xr(this.measures))for(const o of Xr(this.measures[e])){const f=this.measures[e][o];f.size===0?n.add(`${o}_${e}`):f.forEach(n.add,n)}return n}hash(){return`Aggregate ${Ba({dimensions:this.dimensions,measures:this.measures})}`}assemble(){const n=[],e=[],o=[];for(const r of Xr(this.measures))for(const a of Xr(this.measures[r]))for(const u of this.measures[r][a])o.push(u),n.push(a),e.push(r==="*"?null:bc(r));return{type:"aggregate",groupby:[...this.dimensions].map(bc),ops:n,fields:e,as:o}}}class a1 extends To{constructor(n,e,o,f){super(n),this.model=e,this.name=o,this.data=f;for(const r of dc){const a=e.facet[r];if(a){const{bin:u,sort:c}=a;this[r]=Object.assign({name:e.getName(`${r}_domain`),fields:[hi(a),...Bo(u)?[hi(a,{binSuffix:"end"})]:[]]},Wf(c)?{sortField:c}:Ir(c)?{sortIndexField:Rm(a,r)}:{})}}this.childModel=e.child}hash(){let n="Facet";for(const e of dc)this[e]&&(n+=` ${e.charAt(0)}:${Ba(this[e])}`);return n}get fields(){var n;const e=[];for(const o of dc)!((n=this[o])===null||n===void 0)&&n.fields&&e.push(...this[o].fields);return e}dependentFields(){const n=new Set(this.fields);for(const e of dc)this[e]&&(this[e].sortField&&n.add(this[e].sortField.field),this[e].sortIndexField&&n.add(this[e].sortIndexField));return n}producedFields(){return new Set}getSource(){return this.name}getChildIndependentFieldsWithStep(){const n={};for(const e of gh){const o=this.childModel.component.scales[e];if(o&&!o.merged){const f=o.get("type"),r=o.get("range");if(ll(f)&&wp(r)){const a=E3(this.childModel,e),u=L8(a);u?n[e]=u:Kr(LE(e))}}}return n}assembleRowColumnHeaderData(n,e,o){const f={row:"y",column:"x",facet:void 0}[n],r=[],a=[],u=[];f&&o&&o[f]&&(e?(r.push(`distinct_${o[f]}`),a.push("max")):(r.push(o[f]),a.push("distinct")),u.push(`distinct_${o[f]}`));const{sortField:c,sortIndexField:i}=this[n];if(c){const{op:s=d3,field:l}=c;r.push(l),a.push(s),u.push(hi(c,{forAs:!0}))}else i&&(r.push(i),a.push("max"),u.push(i));return{name:this[n].name,source:e??this.data,transform:[Object.assign({type:"aggregate",groupby:this[n].fields},r.length?{fields:r,ops:a,as:u}:{})]}}assembleFacetHeaderData(n){var e,o;const{columns:f}=this.model.layout,{layoutHeaders:r}=this.model.component,a=[],u={};for(const s of k8){for(const l of T8){const d=(e=r[s]&&r[s][l])!==null&&e!==void 0?e:[];for(const h of d)if(((o=h.axes)===null||o===void 0?void 0:o.length)>0){u[s]=!0;break}}if(u[s]){const l=`length(data("${this.facet.name}"))`,d=s==="row"?f?{signal:`ceil(${l} / ${f})`}:1:f?{signal:`min(${l}, ${f})`}:{signal:l};a.push({name:`${this.facet.name}_${s}`,transform:[{type:"sequence",start:0,stop:d}]})}}const{row:c,column:i}=u;return(c||i)&&a.unshift(this.assembleRowColumnHeaderData("facet",null,n)),a}assemble(){var n,e;const o=[];let f=null;const r=this.getChildIndependentFieldsWithStep(),{column:a,row:u,facet:c}=this;if(a&&u&&(r.x||r.y)){f=`cross_${this.column.name}_${this.row.name}`;const i=[].concat((n=r.x)!==null&&n!==void 0?n:[],(e=r.y)!==null&&e!==void 0?e:[]),s=i.map(()=>"distinct");o.push({name:f,source:this.data,transform:[{type:"aggregate",groupby:this.fields,fields:i,ops:s}]})}for(const i of[qh,Vh])this[i]&&o.push(this.assembleRowColumnHeaderData(i,f,r));if(c){const i=this.assembleFacetHeaderData(r);i&&o.push(...i)}return o}}function UP(t){return t.startsWith("'")&&t.endsWith("'")||t.startsWith('"')&&t.endsWith('"')?t.slice(1,-1):t}function dbe(t,n){const e=bE(t);if(n==="number")return`toNumber(${e})`;if(n==="boolean")return`toBoolean(${e})`;if(n==="string")return`toString(${e})`;if(n==="date")return`toDate(${e})`;if(n==="flatten")return e;if(n.startsWith("date:")){const o=UP(n.slice(5,n.length));return`timeParse(${e},'${o}')`}else if(n.startsWith("utc:")){const o=UP(n.slice(4,n.length));return`utcParse(${e},'${o}')`}else return Kr(Pge(n)),null}function pbe(t){const n={};return l_(t.filter,e=>{var o;if(sV(e)){let f=null;RE(e)?f=Xu(e.equal):NE(e)?f=Xu(e.lte):FE(e)?f=Xu(e.lt):BE(e)?f=Xu(e.gt):jE(e)?f=Xu(e.gte):UE(e)?f=e.range[0]:VE(e)&&(f=((o=e.oneOf)!==null&&o!==void 0?o:e.in)[0]),f&&(Q0(f)?n[e.field]="date":wo(f)?n[e.field]="number":bi(f)&&(n[e.field]="string")),e.timeUnit&&(n[e.field]="date")}}),n}function gbe(t){const n={};function e(o){Pm(o)?n[o.field]="date":o.type==="quantitative"&&uge(o.aggregate)?n[o.field]="number":Mm(o.field)>1?o.field in n||(n[o.field]="flatten"):eg(o)&&Wf(o.sort)&&Mm(o.sort.field)>1&&(o.sort.field in n||(n[o.sort.field]="flatten"))}if((Is(t)||lf(t))&&t.forEachFieldDef((o,f)=>{if(wc(o))e(o);else{const r=J0(f),a=t.fieldDef(r);e(Object.assign(Object.assign({},o),{type:a.type}))}}),Is(t)){const{mark:o,markDef:f,encoding:r}=t;if(kp(o)&&!t.encoding.order){const a=f.orient==="horizontal"?"y":"x",u=r[a];ti(u)&&u.type==="quantitative"&&!(u.field in n)&&(n[u.field]="number")}}return n}function mbe(t){const n={};if(Is(t)&&t.component.selection)for(const e of Xr(t.component.selection)){const o=t.component.selection[e];for(const f of o.project.items)!f.channel&&Mm(f.field)>1&&(n[f.field]="flatten")}return n}class Nl extends To{constructor(n,e){super(n),this._parse=e}clone(){return new Nl(null,ha(this._parse))}hash(){return`Parse ${Ba(this._parse)}`}static makeExplicit(n,e,o){var f;let r={};const a=e.data;return!$d(a)&&((f=a?.format)===null||f===void 0?void 0:f.parse)&&(r=a.format.parse),this.makeWithAncestors(n,r,{},o)}static makeWithAncestors(n,e,o,f){for(const u of Xr(o)){const c=f.getWithExplicit(u);c.value!==void 0&&(c.explicit||c.value===o[u]||c.value==="derived"||o[u]==="flatten"?delete o[u]:Kr(tP(u,o[u],c.value)))}for(const u of Xr(e)){const c=f.get(u);c!==void 0&&(c===e[u]?delete e[u]:Kr(tP(u,e[u],c)))}const r=new ad(e,o);f.copyAll(r);const a={};for(const u of Xr(r.combine())){const c=r.get(u);c!==null&&(a[u]=c)}return Xr(a).length===0||f.parseNothing?null:new Nl(n,a)}get parse(){return this._parse}merge(n){this._parse=Object.assign(Object.assign({},this._parse),n.parse),n.remove()}assembleFormatParse(){const n={};for(const e of Xr(this._parse)){const o=this._parse[e];Mm(e)===1&&(n[e]=o)}return n}producedFields(){return new Set(Xr(this._parse))}dependentFields(){return new Set(Xr(this._parse))}assembleTransforms(n=!1){return Xr(this._parse).filter(e=>n?Mm(e)>1:!0).map(e=>{const o=dbe(e,this._parse[e]);return o?{type:"formula",expr:o,as:_E(e)}:null}).filter(e=>e!==null)}}class up extends To{clone(){return new up(null)}constructor(n){super(n)}dependentFields(){return new Set}producedFields(){return new Set([nh])}hash(){return"Identifier"}assemble(){return{type:"identifier",as:nh}}}class hx extends To{constructor(n,e){super(n),this.params=e}clone(){return new hx(null,this.params)}dependentFields(){return new Set}producedFields(){}hash(){return`Graticule ${Ba(this.params)}`}assemble(){return Object.assign({type:"graticule"},this.params===!0?{}:this.params)}}class dx extends To{constructor(n,e){super(n),this.params=e}clone(){return new dx(null,this.params)}dependentFields(){return new Set}producedFields(){var n;return new Set([(n=this.params.as)!==null&&n!==void 0?n:"data"])}hash(){return`Hash ${Ba(this.params)}`}assemble(){return Object.assign({type:"sequence"},this.params)}}class j0 extends To{constructor(n){super(null),n??(n={name:"source"});let e;if($d(n)||(e=n.format?Object.assign({},Eu(n.format,["parse"])):{}),py(n))this._data={values:n.values};else if(Dm(n)){if(this._data={url:n.url},!e.type){let o=/(?:\.([^.]+))?$/.exec(n.url)[1];Fa(["json","csv","tsv","dsv","topojson"],o)||(o="json"),e.type=o}}else Tq(n)?this._data={values:[{type:"Sphere"}]}:(wq(n)||$d(n))&&(this._data={});this._generator=$d(n),n.name&&(this._name=n.name),e&&!_o(e)&&(this._data.format=e)}dependentFields(){return new Set}producedFields(){}get data(){return this._data}hasName(){return!!this._name}get isGenerator(){return this._generator}get dataName(){return this._name}set dataName(n){this._name=n}set parent(n){throw new Error("Source nodes have to be roots.")}remove(){throw new Error("Source nodes are roots and cannot be removed.")}hash(){throw new Error("Cannot hash sources")}assemble(){return Object.assign(Object.assign({name:this._name},this._data),{transform:[]})}}var VP=globalThis&&globalThis.__classPrivateFieldSet||function(t,n,e,o,f){if(o==="m")throw new TypeError("Private method is not writable");if(o==="a"&&!f)throw new TypeError("Private accessor was defined without a setter");if(typeof n=="function"?t!==n||!f:!n.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return o==="a"?f.call(t,e):f?f.value=e:n.set(t,e),e},vbe=globalThis&&globalThis.__classPrivateFieldGet||function(t,n,e,o){if(e==="a"&&!o)throw new TypeError("Private accessor was defined without a getter");if(typeof n=="function"?t!==n||!o:!n.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e==="m"?o:e==="a"?o.call(t):o?o.value:n.get(t)},Av;function E8(t){return t instanceof j0||t instanceof hx||t instanceof dx}class C8{constructor(){Av.set(this,void 0),VP(this,Av,!1,"f")}setModified(){VP(this,Av,!0,"f")}get modifiedFlag(){return vbe(this,Av,"f")}}Av=new WeakMap;class tg extends C8{getNodeDepths(n,e,o){o.set(n,e);for(const f of n.children)this.getNodeDepths(f,e+1,o);return o}optimize(n){const o=[...this.getNodeDepths(n,0,new Map).entries()].sort((f,r)=>r[1]-f[1]);for(const f of o)this.run(f[0]);return this.modifiedFlag}}class O8 extends C8{optimize(n){this.run(n);for(const e of n.children)this.optimize(e);return this.modifiedFlag}}class ybe extends O8{mergeNodes(n,e){const o=e.shift();for(const f of e)n.removeChild(f),f.parent=o,f.remove()}run(n){const e=n.children.map(f=>f.hash()),o={};for(let f=0;f1&&(this.setModified(),this.mergeNodes(n,o[f]))}}class xbe extends O8{constructor(n){super(),this.requiresSelectionId=n&&w8(n)}run(n){n instanceof up&&(this.requiresSelectionId&&(E8(n.parent)||n.parent instanceof sf||n.parent instanceof Nl)||(this.setModified(),n.remove()))}}class bbe extends C8{optimize(n){return this.run(n,new Set),this.modifiedFlag}run(n,e){let o=new Set;n instanceof Yf&&(o=n.producedFields(),yE(o,e)&&(this.setModified(),n.removeFormulas(e),n.producedFields.length===0&&n.remove()));for(const f of n.children)this.run(f,new Set([...e,...o]))}}class _be extends O8{constructor(){super()}run(n){n instanceof hu&&!n.isRequired()&&(this.setModified(),n.remove())}}class wbe extends tg{run(n){if(!E8(n)&&!(n.numChildren()>1)){for(const e of n.children)if(e instanceof Nl)if(n instanceof Nl)this.setModified(),n.merge(e);else{if(xE(n.producedFields(),e.dependentFields()))continue;this.setModified(),e.swapWithParent()}}}}class kbe extends tg{run(n){const e=[...n.children],o=n.children.filter(f=>f instanceof Nl);if(n.numChildren()>1&&o.length>=1){const f={},r=new Set;for(const a of o){const u=a.parse;for(const c of Xr(u))c in f?f[c]!==u[c]&&r.add(c):f[c]=u[c]}for(const a of r)delete f[a];if(!_o(f)){this.setModified();const a=new Nl(n,f);for(const u of e){if(u instanceof Nl)for(const c of Xr(f))delete u.parse[c];n.removeChild(u),u.parent=a,u instanceof Nl&&Xr(u.parse).length===0&&u.remove()}}}}}class Tbe extends tg{run(n){n instanceof hu||n.numChildren()>0||n instanceof a1||n instanceof j0||(this.setModified(),n.remove())}}class Abe extends tg{run(n){const e=n.children.filter(f=>f instanceof Yf),o=e.pop();for(const f of e)this.setModified(),o.merge(f)}}class Mbe extends tg{run(n){const e=n.children.filter(f=>f instanceof sf),o={};for(const f of e){const r=Ba(f.groupBy);r in o||(o[r]=[]),o[r].push(f)}for(const f of Xr(o)){const r=o[f];if(r.length>1){const a=r.pop();for(const u of r)a.merge(u)&&(n.removeChild(u),u.parent=a,u.remove(),this.setModified())}}}}class Sbe extends tg{constructor(n){super(),this.model=n}run(n){const e=!(E8(n)||n instanceof i1||n instanceof Nl||n instanceof up),o=[],f=[];for(const r of n.children)r instanceof Xf&&(e&&!xE(n.producedFields(),r.dependentFields())?o.push(r):f.push(r));if(o.length>0){const r=o.pop();for(const a of o)r.merge(a,this.model.renameSignal.bind(this.model));this.setModified(),n instanceof Xf?n.merge(r,this.model.renameSignal.bind(this.model)):r.swapWithParent()}if(f.length>1){const r=f.pop();for(const a of f)r.merge(a,this.model.renameSignal.bind(this.model));this.setModified()}}}class Ebe extends tg{run(n){const e=[...n.children];if(!L0(e,a=>a instanceof hu)||n.numChildren()<=1)return;const f=[];let r;for(const a of e)if(a instanceof hu){let u=a;for(;u.numChildren()===1;){const[c]=u.children;if(c instanceof hu)u=c;else break}f.push(...u.children),r?(n.removeChild(a),a.parent=r.parent,r.parent.removeChild(r),r.parent=u,this.setModified()):r=u}else f.push(a);if(f.length){this.setModified();for(const a of f)a.parent.removeChild(a),a.parent=r}}}class ng extends To{constructor(n,e){super(n),this.transform=e}clone(){return new ng(null,ha(this.transform))}addDimensions(n){this.transform.groupby=Vf(this.transform.groupby.concat(n),e=>e)}dependentFields(){const n=new Set;return this.transform.groupby&&this.transform.groupby.forEach(n.add,n),this.transform.joinaggregate.map(e=>e.field).filter(e=>e!==void 0).forEach(n.add,n),n}producedFields(){return new Set(this.transform.joinaggregate.map(this.getDefaultName))}getDefaultName(n){var e;return(e=n.as)!==null&&e!==void 0?e:hi(n)}hash(){return`JoinAggregateTransform ${Ba(this.transform)}`}assemble(){const n=[],e=[],o=[];for(const r of this.transform.joinaggregate)e.push(r.op),o.push(this.getDefaultName(r)),n.push(r.field===void 0?null:r.field);const f=this.transform.groupby;return Object.assign({type:"joinaggregate",as:o,ops:e,fields:n},f!==void 0?{groupby:f}:{})}}function Cbe(t){return t.stack.stackBy.reduce((n,e)=>{const o=e.fieldDef,f=hi(o);return f&&n.push(f),n},[])}function Obe(t){return Ir(t)&&t.every(n=>bi(n))&&t.length>1}class $h extends To{constructor(n,e){super(n),this._stack=e}clone(){return new $h(null,ha(this._stack))}static makeFromTransform(n,e){const{stack:o,groupby:f,as:r,offset:a="zero"}=e,u=[],c=[];if(e.sort!==void 0)for(const l of e.sort)u.push(l.field),c.push(Rs(l.order,"ascending"));const i={field:u,order:c};let s;return Obe(r)?s=r:bi(r)?s=[r,`${r}_end`]:s=[`${e.stack}_start`,`${e.stack}_end`],new $h(n,{dimensionFieldDefs:[],stackField:o,groupby:f,offset:a,sort:i,facetby:[],as:s})}static makeFromEncoding(n,e){const o=e.stack,{encoding:f}=e;if(!o)return null;const{groupbyChannels:r,fieldChannel:a,offset:u,impute:c}=o,i=r.map(h=>{const m=f[h];return th(m)}).filter(h=>!!h),s=Cbe(e),l=e.encoding.order;let d;return Ir(l)||ti(l)?d=$U(l):d=s.reduce((h,m)=>(h.field.push(m),h.order.push(a==="y"?"descending":"ascending"),h),{field:[],order:[]}),new $h(n,{dimensionFieldDefs:i,stackField:e.vgField(a),facetby:[],stackby:s,sort:d,offset:u,impute:c,as:[e.vgField(a,{suffix:"start",forAs:!0}),e.vgField(a,{suffix:"end",forAs:!0})]})}get stack(){return this._stack}addDimensions(n){this._stack.facetby.push(...n)}dependentFields(){const n=new Set;return n.add(this._stack.stackField),this.getGroupbyFields().forEach(n.add,n),this._stack.facetby.forEach(n.add,n),this._stack.sort.field.forEach(n.add,n),n}producedFields(){return new Set(this._stack.as)}hash(){return`Stack ${Ba(this._stack)}`}getGroupbyFields(){const{dimensionFieldDefs:n,impute:e,groupby:o}=this._stack;return n.length>0?n.map(f=>f.bin?e?[hi(f,{binSuffix:"mid"})]:[hi(f,{}),hi(f,{binSuffix:"end"})]:[hi(f)]).flat():o??[]}assemble(){const n=[],{facetby:e,dimensionFieldDefs:o,stackField:f,stackby:r,sort:a,offset:u,impute:c,as:i}=this._stack;if(c)for(const s of o){const{bandPosition:l=.5,bin:d}=s;if(d){const h=hi(s,{expr:"datum"}),m=hi(s,{expr:"datum",binSuffix:"end"});n.push({type:"formula",expr:`${l}*${h}+${1-l}*${m}`,as:hi(s,{binSuffix:"mid",forAs:!0})})}n.push({type:"impute",field:f,groupby:[...r,...e],key:hi(s,{binSuffix:"mid"}),method:"value",value:0})}return n.push({type:"stack",groupby:[...this.getGroupbyFields(),...e],field:f,sort:a,as:i,offset:u}),n}}class o1 extends To{constructor(n,e){super(n),this.transform=e}clone(){return new o1(null,ha(this.transform))}addDimensions(n){this.transform.groupby=Vf(this.transform.groupby.concat(n),e=>e)}dependentFields(){var n,e;const o=new Set;return((n=this.transform.groupby)!==null&&n!==void 0?n:[]).forEach(o.add,o),((e=this.transform.sort)!==null&&e!==void 0?e:[]).forEach(f=>o.add(f.field)),this.transform.window.map(f=>f.field).filter(f=>f!==void 0).forEach(o.add,o),o}producedFields(){return new Set(this.transform.window.map(this.getDefaultName))}getDefaultName(n){var e;return(e=n.as)!==null&&e!==void 0?e:hi(n)}hash(){return`WindowTransform ${Ba(this.transform)}`}assemble(){var n;const e=[],o=[],f=[],r=[];for(const d of this.transform.window)o.push(d.op),f.push(this.getDefaultName(d)),r.push(d.param===void 0?null:d.param),e.push(d.field===void 0?null:d.field);const a=this.transform.frame,u=this.transform.groupby;if(a&&a[0]===null&&a[1]===null&&o.every(d=>EE(d)))return Object.assign({type:"joinaggregate",as:f,ops:o,fields:e},u!==void 0?{groupby:u}:{});const c=[],i=[];if(this.transform.sort!==void 0)for(const d of this.transform.sort)c.push(d.field),i.push((n=d.order)!==null&&n!==void 0?n:"ascending");const s={field:c,order:i},l=this.transform.ignorePeers;return Object.assign(Object.assign(Object.assign({type:"window",params:r,as:f,ops:o,fields:e,sort:s},l!==void 0?{ignorePeers:l}:{}),u!==void 0?{groupby:u}:{}),a!==void 0?{frame:a}:{})}}function Lbe(t){function n(e){if(!(e instanceof a1)){const o=e.clone();if(o instanceof hu){const f=oA+o.getSource();o.setSource(f),t.model.component.data.outputNodes[f]=o}else(o instanceof sf||o instanceof $h||o instanceof o1||o instanceof ng)&&o.addDimensions(t.fields);for(const f of e.children.flatMap(n))f.parent=o;return[o]}return e.children.flatMap(n)}return n}function aA(t){if(t instanceof a1)if(t.numChildren()===1&&!(t.children[0]instanceof hu)){const n=t.children[0];(n instanceof sf||n instanceof $h||n instanceof o1||n instanceof ng)&&n.addDimensions(t.fields),n.swapWithParent(),aA(t)}else{const n=t.model.component.data.main;pH(n);const e=Lbe(t),o=t.children.map(e).flat();for(const f of o)f.parent=n}else t.children.map(aA)}function pH(t){if(t instanceof hu&&t.type===Fo.Main&&t.numChildren()===1){const n=t.children[0];n instanceof a1||(n.swapWithParent(),pH(t))}}const oA="scale_",Eb=5;function sA(t){for(const n of t){for(const e of n.children)if(e.parent!==n)return!1;if(!sA(n.children))return!1}return!0}function Uc(t,n){let e=!1;for(const o of n)e=t.optimize(o)||e;return e}function qP(t,n,e){let o=t.sources,f=!1;return f=Uc(new _be,o)||f,f=Uc(new xbe(n),o)||f,o=o.filter(r=>r.numChildren()>0),f=Uc(new Tbe,o)||f,o=o.filter(r=>r.numChildren()>0),e||(f=Uc(new wbe,o)||f,f=Uc(new Sbe(n),o)||f,f=Uc(new bbe,o)||f,f=Uc(new kbe,o)||f,f=Uc(new Mbe,o)||f,f=Uc(new Abe,o)||f,f=Uc(new ybe,o)||f,f=Uc(new Ebe,o)||f),t.sources=o,f}function Pbe(t,n){sA(t.sources);let e=0,o=0;for(let f=0;fn(e))}}var Dbe=globalThis&&globalThis.__rest||function(t,n){var e={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&n.indexOf(o)<0&&(e[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var f=0,o=Object.getOwnPropertySymbols(t);f({signal:`{data: ${y3(o,{timeUnit:e,type:n})}}`}))}function z4(t,n,e){var o;const f=(o=Gl(e))===null||o===void 0?void 0:o.unit;return n==="temporal"||f?Nbe(t,n,f):[t]}function bd(t,n,e,o){const{encoding:f}=e,r=Ws(f[o]),{type:a}=r,u=r.timeUnit;if(Qme(n)){const l=bd(t,void 0,e,o),d=z4(n.unionWith,a,u);return If([...d,...l.value])}else{if(Vi(n))return If([n]);if(n&&n!=="unaggregated"&&!pV(n))return If(z4(n,a,u))}const c=e.stack;if(c&&o===c.fieldChannel){if(c.offset==="normalize")return Gu([[0,1]]);const l=e.requestDataName(Fo.Main);return Gu([{data:l,field:e.vgField(o,{suffix:"start"})},{data:l,field:e.vgField(o,{suffix:"end"})}])}const i=bp(o)&&ti(r)?jbe(e,o,t):void 0;if(mh(r)){const l=z4([r.datum],a,u);return Gu(l)}const s=r;if(n==="unaggregated"){const l=e.requestDataName(Fo.Main),{field:d}=r;return Gu([{data:l,field:hi({field:d,aggregate:"min"})},{data:l,field:hi({field:d,aggregate:"max"})}])}else if(Bo(s.bin)){if(ll(t))return Gu(t==="bin-ordinal"?[]:[{data:fy(i)?e.requestDataName(Fo.Main):e.requestDataName(Fo.Raw),field:e.vgField(o,ux(s,o)?{binSuffix:"range"}:{}),sort:i===!0||!Ei(i)?{field:e.vgField(o,{}),op:"min"}:i}]);{const{bin:l}=s;if(Bo(l)){const d=S8(e,s.field,l);return Gu([new Ou(()=>{const h=e.getSignalName(d);return`[${h}.start, ${h}.stop]`})])}else return Gu([{data:e.requestDataName(Fo.Main),field:e.vgField(o,{})}])}}else if(s.timeUnit&&Fa(["time","utc"],t)&&LV(s,Is(e)?e.encoding[ph(o)]:void 0,e.markDef,e.config)){const l=e.requestDataName(Fo.Main);return Gu([{data:l,field:e.vgField(o)},{data:l,field:e.vgField(o,{suffix:"end"})}])}else return Gu(i?[{data:fy(i)?e.requestDataName(Fo.Main):e.requestDataName(Fo.Raw),field:e.vgField(o),sort:i}]:[{data:e.requestDataName(Fo.Main),field:e.vgField(o)}])}function R4(t,n){const{op:e,field:o,order:f}=t;return Object.assign(Object.assign({op:e??(n?"sum":d3)},o?{field:bc(o)}:{}),f?{order:f}:{})}function Bbe(t,n){var e;const o=t.component.scales[n],f=t.specifiedScales[n].domain,r=(e=t.fieldDef(n))===null||e===void 0?void 0:e.bin,a=pV(f)&&f,u=K0(r)&&s3(r.extent)&&r.extent;(a||u)&&o.set("selectionExtent",a??u,!0)}function jbe(t,n,e){if(!ll(e))return;const o=t.fieldDef(n),f=o.sort;if(EV(f))return{op:"min",field:Rm(o,n),order:"ascending"};const{stack:r}=t,a=r?new Set([...r.groupbyFields,...r.stackBy.map(u=>u.fieldDef.field)]):void 0;if(Wf(f)){const u=r&&!a.has(f.field);return R4(f,u)}else if(SV(f)){const{encoding:u,order:c}=f,i=t.fieldDef(u),{aggregate:s,field:l}=i,d=r&&!a.has(l);if(Xh(s)||_p(s))return R4({field:hi(i),order:c},d);if(EE(s)||!s)return R4({op:s,field:l,order:c},d)}else{if(f==="descending")return{op:"min",field:t.vgField(n),order:"descending"};if(Fa(["ascending",void 0],f))return!0}}function HP(t,n){const{aggregate:e,type:o}=t;return e?bi(e)&&!fge.has(e)?{valid:!1,reason:nme(e)}:o==="quantitative"&&n==="log"?{valid:!1,reason:rme(t)}:{valid:!0}:{valid:!1,reason:tme(t)}}function lA(t,n,e,o){return t.explicit&&n.explicit&&Kr(lme(e,o,t.value,n.value)),{explicit:t.explicit,value:[...t.value,...n.value]}}function Ube(t){const n=Vf(t.map(a=>Nh(a)?Dbe(a,["sort"]):a),Ba),e=Vf(t.map(a=>{if(Nh(a)){const u=a.sort;return u!==void 0&&!fy(u)&&("op"in u&&u.op==="count"&&delete u.field,u.order==="ascending"&&delete u.order),u}}).filter(a=>a!==void 0),Ba);if(n.length===0)return;if(n.length===1){const a=t[0];if(Nh(a)&&e.length>0){let u=e[0];if(e.length>1)Kr(rP),u=!0;else if(Ei(u)&&"field"in u){const c=u.field;a.field===c&&(u=u.order?{order:u.order}:!0)}return Object.assign(Object.assign({},a),{sort:u})}return a}const o=Vf(e.map(a=>fy(a)||!("op"in a)||bi(a.op)&&a.op in sge?a:(Kr(cme(a)),!0)),Ba);let f;o.length===1?f=o[0]:o.length>1&&(Kr(rP),f=!0);const r=Vf(t.map(a=>Nh(a)?a.data:null),a=>a);return r.length===1&&r[0]!==null?Object.assign({data:r[0],fields:n.map(u=>u.field)},f?{sort:f}:{}):Object.assign({fields:n},f?{sort:f}:{})}function L8(t){if(Nh(t)&&bi(t.field))return t.field;if(dge(t)){let n;for(const e of t.fields)if(Nh(e)&&bi(e.field)){if(!n)n=e.field;else if(n!==e.field)return Kr(fme),n}return Kr(hme),n}else if(pge(t)){Kr(dme);const n=t.fields[0];return bi(n)?n:void 0}}function E3(t,n){const o=t.component.scales[n].get("domains").map(f=>(Nh(f)&&(f.data=t.lookupDataSource(f.data)),f));return Ube(o)}var Vbe=globalThis&&globalThis.__rest||function(t,n){var e={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&n.indexOf(o)<0&&(e[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var f=0,o=Object.getOwnPropertySymbols(t);fn.concat(mH(e)),$P(t)):$P(t)}function $P(t){return Xr(t.component.scales).reduce((n,e)=>{const o=t.component.scales[e];if(o.merged)return n;const f=o.combine(),{name:r,type:a,selectionExtent:u,domains:c,range:i,reverse:s}=f,l=Vbe(f,["name","type","selectionExtent","domains","range","reverse"]),d=qbe(f.range,r,e,t),h=E3(t,e),m=u?Dye(t,u,o,h):null;return n.push(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:r,type:a},h?{domain:h}:{}),m?{domainRaw:m}:{}),{range:d}),s!==void 0?{reverse:s}:{}),l)),n},[])}function qbe(t,n,e,o){if(sl(e)){if(wp(t))return{step:{signal:`${n}_step`}}}else if(Ei(t)&&Nh(t))return Object.assign(Object.assign({},t),{data:o.lookupDataSource(t.data)});return t}class vH extends ad{constructor(n,e){super({},{name:n}),this.merged=!1,this.setWithExplicit("type",e)}domainDefinitelyIncludesZero(){return this.get("zero")!==!1?!0:L0(this.get("domains"),n=>Ir(n)&&n.length===2&&n[0]<=0&&n[1]>=0)}}const Hbe=["range","scheme"];function $be(t){const n=t.component.scales;for(const e of o3){const o=n[e];if(!o)continue;const f=Gbe(e,t);o.setWithExplicit("range",f)}}function GP(t,n){const e=t.fieldDef(n);if(e?.bin){const{bin:o,field:f}=e,r=Fu(n),a=t.getName(r);if(Ei(o)&&o.binned&&o.step!==void 0)return new Ou(()=>{const u=t.scaleName(n),c=`(domain("${u}")[1] - domain("${u}")[0]) / ${o.step}`;return`${t.getSignalName(a)} / (${c})`});if(Bo(o)){const u=S8(t,f,o);return new Ou(()=>{const c=t.getSignalName(u),i=`(${c}.stop - ${c}.start) / ${c}.step`;return`${t.getSignalName(a)} / (${i})`})}}}function Gbe(t,n){const e=n.specifiedScales[t],{size:o}=n,r=n.getScaleComponent(t).get("type");for(const l of Hbe)if(e[l]!==void 0){const d=UT(r,l),h=gV(t,l);if(!d)Kr(KU(r,l,t));else if(h)Kr(h);else switch(l){case"range":{const m=e.range;if(Ir(m)){if(sl(t))return If(m.map(g=>{if(g==="width"||g==="height"){const p=n.getName(g),v=n.getSignalName.bind(n);return Ou.fromName(v,p)}return g}))}else if(Ei(m))return If({data:n.requestDataName(Fo.Main),field:m.field,sort:{op:"min",field:n.vgField(t)}});return If(m)}case"scheme":return If(Wbe(e[l]))}}const a=t===cs||t==="xOffset"?"width":"height",u=o[a];if(rh(u)){if(sl(t))if(ll(r)){const l=yH(u,n,t);if(l)return If({step:l})}else Kr(QU(a));else if(t1(t)){const l=t===gp?"x":"y";if(n.getScaleComponent(l).get("type")==="band"){const m=xH(u,r);if(m)return If(m)}}}const{rangeMin:c,rangeMax:i}=e,s=Ybe(t,n);return(c!==void 0||i!==void 0)&&UT(r,"rangeMin")&&Ir(s)&&s.length===2?If([c??s[0],i??s[1]]):Gu(s)}function Wbe(t){return Kme(t)?Object.assign({scheme:t.name},Eu(t,["name"])):{scheme:t}}function Ybe(t,n){const{size:e,config:o,mark:f,encoding:r}=n,a=n.getSignalName.bind(n),{type:u}=Ws(r[t]),i=n.getScaleComponent(t).get("type"),{domain:s,domainMid:l}=n.specifiedScales[t];switch(t){case cs:case ol:{if(Fa(["point","band"],i)){const m=bH(t,e,o.view);if(rh(m))return{step:yH(m,n,t)}}const d=Fu(t),h=n.getName(d);return t===ol&&rc(i)?[Ou.fromName(a,h),0]:[0,Ou.fromName(a,h)]}case gp:case e1:return Xbe(t,n,i);case nd:{const d=n.component.scales[t].get("zero"),h=_H(f,d,o),m=Kbe(f,e,n,o);return Cm(i)?Jbe(h,m,Zbe(i,o,s,t)):[h,m]}case Tc:return[0,Math.PI*2];case Z0:return[0,360];case xf:return[0,new Ou(()=>{const d=n.getSignalName("width"),h=n.getSignalName("height");return`min(${d},${h})/2`})];case yp:return[o.scale.minStrokeWidth,o.scale.maxStrokeWidth];case xp:return[[1,0],[4,2],[2,1],[1,1],[1,2,4,2]];case Ru:return"symbol";case zu:case hh:case dh:return i==="ordinal"?u==="nominal"?"category":"ordinal":l!==void 0?"diverging":f==="rect"||f==="geoshape"?"heatmap":"ramp";case rd:case mp:case vp:return[o.scale.minOpacity,o.scale.maxOpacity]}}function yH(t,n,e){var o,f,r,a,u;const{encoding:c}=n,i=n.getScaleComponent(e),s=DU(e),l=c[s];if(sq({step:t,offsetIsDiscrete:la(l)&&uV(l.type)})==="offset"&&VV(c,s)){const h=n.getScaleComponent(s);let g=`domain('${n.scaleName(s)}').length`;if(h.get("type")==="band"){const v=(f=(o=h.get("paddingInner"))!==null&&o!==void 0?o:h.get("padding"))!==null&&f!==void 0?f:0,y=(a=(r=h.get("paddingOuter"))!==null&&r!==void 0?r:h.get("padding"))!==null&&a!==void 0?a:0;g=`bandspace(${g}, ${v}, ${y})`}const p=(u=i.get("paddingInner"))!==null&&u!==void 0?u:i.get("padding");return{signal:`${t.step} * ${g} / (1-${yge(p)})`}}else return t.step}function xH(t,n){if(sq({step:t,offsetIsDiscrete:ll(n)})==="offset")return{step:t.step}}function Xbe(t,n,e){const o=t===gp?"x":"y",r=n.getScaleComponent(o).get("type"),a=n.scaleName(o);if(r==="band"){const u=bH(o,n.size,n.config.view);if(rh(u)){const c=xH(u,e);if(c)return c}return[0,{signal:`bandwidth('${a}')`}]}else return bU(`Cannot use ${t} scale if ${o} scale is not discrete.`)}function bH(t,n,e){const o=t===cs?"width":"height",f=n[o];return f||D2(e,o)}function Zbe(t,n,e,o){switch(t){case"quantile":return n.scale.quantileCount;case"quantize":return n.scale.quantizeCount;case"threshold":return e!==void 0&&Ir(e)?e.length+1:(Kr(wme(o)),3)}}function Jbe(t,n,e){const o=()=>{const f=Hh(n),r=Hh(t),a=`(${f} - ${r}) / (${e} - 1)`;return`sequence(${r}, ${f} + ${a}, ${a})`};return Vi(n)?new Ou(o):{signal:o()}}function _H(t,n,e){if(n)return Vi(n)?{signal:`${n.signal} ? 0 : ${_H(t,!1,e)}`}:0;switch(t){case"bar":case"tick":return e.scale.minBandSize;case"line":case"trail":case"rule":return e.scale.minStrokeWidth;case"text":return e.scale.minFontSize;case"point":case"square":case"circle":return e.scale.minSize}throw new Error(l3("size",t))}const WP=.95;function Kbe(t,n,e,o){const f={x:GP(e,"x"),y:GP(e,"y")};switch(t){case"bar":case"tick":{if(o.scale.maxBandSize!==void 0)return o.scale.maxBandSize;const r=YP(n,f,o.view);return wo(r)?r-1:new Ou(()=>`${r.signal} - 1`)}case"line":case"trail":case"rule":return o.scale.maxStrokeWidth;case"text":return o.scale.maxFontSize;case"point":case"square":case"circle":{if(o.scale.maxSize)return o.scale.maxSize;const r=YP(n,f,o.view);return wo(r)?Math.pow(WP*r,2):new Ou(()=>`pow(${WP} * ${r.signal}, 2)`)}}throw new Error(l3("size",t))}function YP(t,n,e){const o=rh(t.width)?t.width.step:P2(e,"width"),f=rh(t.height)?t.height.step:P2(e,"height");return n.x||n.y?new Ou(()=>`min(${[n.x?n.x.signal:o,n.y?n.y.signal:f].join(", ")})`):Math.min(o,f)}function wH(t,n){Is(t)?Qbe(t,n):TH(t,n)}function Qbe(t,n){const e=t.component.scales,{config:o,encoding:f,markDef:r,specifiedScales:a}=t;for(const u of Xr(e)){const c=a[u],i=e[u],s=t.getScaleComponent(u),l=Ws(f[u]),d=c[n],h=s.get("type"),m=s.get("padding"),g=s.get("paddingInner"),p=UT(h,n),v=gV(u,n);if(d!==void 0&&(p?v&&Kr(v):Kr(KU(h,n,u))),p&&v===void 0)if(d!==void 0){const y=l.timeUnit,x=l.type;switch(n){case"domainMax":case"domainMin":Q0(c[n])||x==="temporal"||y?i.set(n,{signal:y3(c[n],{type:x,timeUnit:y})},!0):i.set(n,c[n],!0);break;default:i.copyKeyFromObject(n,c)}}else{const y=n in XP?XP[n]({model:t,channel:u,fieldOrDatumDef:l,scaleType:h,scalePadding:m,scalePaddingInner:g,domain:c.domain,domainMin:c.domainMin,domainMax:c.domainMax,markDef:r,config:o,hasNestedOffsetScale:$T(f,u),hasSecondaryRangeChannel:!!f[ph(u)]}):o.scale[n];y!==void 0&&i.set(n,y,!1)}}}const XP={bins:({model:t,fieldOrDatumDef:n})=>ti(n)?e_e(t,n):void 0,interpolate:({channel:t,fieldOrDatumDef:n})=>t_e(t,n.type),nice:({scaleType:t,channel:n,domain:e,domainMin:o,domainMax:f,fieldOrDatumDef:r})=>n_e(t,n,e,o,f,r),padding:({channel:t,scaleType:n,fieldOrDatumDef:e,markDef:o,config:f})=>r_e(t,n,f.scale,e,o,f.bar),paddingInner:({scalePadding:t,channel:n,markDef:e,scaleType:o,config:f,hasNestedOffsetScale:r})=>i_e(t,n,e.type,o,f.scale,r),paddingOuter:({scalePadding:t,channel:n,scaleType:e,scalePaddingInner:o,config:f,hasNestedOffsetScale:r})=>a_e(t,n,e,o,f.scale,r),reverse:({fieldOrDatumDef:t,scaleType:n,channel:e,config:o})=>{const f=ti(t)?t.sort:void 0;return o_e(n,f,e,o.scale)},zero:({channel:t,fieldOrDatumDef:n,domain:e,markDef:o,scaleType:f,config:r,hasSecondaryRangeChannel:a})=>s_e(t,n,e,o,f,r.scale,a)};function kH(t){Is(t)?$be(t):TH(t,"range")}function TH(t,n){const e=t.component.scales;for(const o of t.children)n==="range"?kH(o):wH(o,n);for(const o of Xr(e)){let f;for(const r of t.children){const a=r.component.scales[o];if(a){const u=a.getWithExplicit(n);f=ap(f,u,n,"scale",_q((c,i)=>{switch(n){case"range":return c.step&&i.step?c.step-i.step:0}return 0}))}}e[o].setWithExplicit(n,f)}}function e_e(t,n){const e=n.bin;if(Bo(e)){const o=S8(t,n.field,e);return new Ou(()=>t.getSignalName(o))}else if(xl(e)&&K0(e)&&e.step!==void 0)return{step:e.step}}function t_e(t,n){if(Fa([zu,hh,dh],t)&&n!=="nominal")return"hcl"}function n_e(t,n,e,o,f,r){var a;if(!(((a=th(r))===null||a===void 0?void 0:a.bin)||Ir(e)||f!=null||o!=null||Fa([Cu.TIME,Cu.UTC],t)))return sl(n)?!0:void 0}function r_e(t,n,e,o,f,r){if(sl(t)){if(nf(n)){if(e.continuousPadding!==void 0)return e.continuousPadding;const{type:a,orient:u}=f;if(a==="bar"&&!(ti(o)&&(o.bin||o.timeUnit))&&(u==="vertical"&&t==="x"||u==="horizontal"&&t==="y"))return r.continuousBandSize}if(n===Cu.POINT)return e.pointPadding}}function i_e(t,n,e,o,f,r=!1){if(t===void 0){if(sl(n)){const{bandPaddingInner:a,barBandPaddingInner:u,rectBandPaddingInner:c,bandWithNestedOffsetPaddingInner:i}=f;return r?i:Rs(a,e==="bar"?u:c)}else if(t1(n)&&o===Cu.BAND)return f.offsetBandPaddingInner}}function a_e(t,n,e,o,f,r=!1){if(t===void 0){if(sl(n)){const{bandPaddingOuter:a,bandWithNestedOffsetPaddingOuter:u}=f;if(r)return u;if(e===Cu.BAND)return Rs(a,Vi(o)?{signal:`${o.signal}/2`}:o/2)}else if(t1(n)){if(e===Cu.POINT)return .5;if(e===Cu.BAND)return f.offsetBandPaddingOuter}}}function o_e(t,n,e,o){if(e==="x"&&o.xReverse!==void 0)return rc(t)&&n==="descending"?Vi(o.xReverse)?{signal:`!${o.xReverse.signal}`}:!o.xReverse:o.xReverse;if(rc(t)&&n==="descending")return!0}function s_e(t,n,e,o,f,r,a){if(!!e&&e!=="unaggregated"&&rc(f)){if(Ir(e)){const c=e[0],i=e[e.length-1];if(c<=0&&i>=0)return!0}return!1}if(t==="size"&&n.type==="quantitative"&&!Cm(f))return!0;if(!(ti(n)&&n.bin)&&Fa([...gh,...Q0e],t)){const{orient:c,type:i}=o;return Fa(["bar","area","line","trail"],i)&&(c==="horizontal"&&t==="y"||c==="vertical"&&t==="x")?!1:Fa(["bar","area"],i)&&!a?!0:r?.zero}return!1}function l_e(t,n,e,o,f=!1){const r=u_e(n,e,o,f),{type:a}=t;return bp(n)?a!==void 0?a1e(n,a)?ti(e)&&!i1e(a,e.type)?(Kr(ome(a,r)),r):a:(Kr(ame(n,a,r)),r):r:null}function u_e(t,n,e,o){var f;switch(n.type){case"nominal":case"ordinal":{if(im(t)||E4(t)==="discrete")return t==="shape"&&n.type==="ordinal"&&Kr(C4(t,"ordinal")),"ordinal";if(sl(t)||t1(t)){if(Fa(["rect","bar","image","rule"],e.type)||o)return"band"}else if(e.type==="arc"&&t in SE)return"band";const r=e[Fu(t)];return R0(r)||Lm(n)&&((f=n.axis)===null||f===void 0?void 0:f.tickBand)?"band":"point"}case"temporal":return im(t)?"time":E4(t)==="discrete"?(Kr(C4(t,"temporal")),"ordinal"):ti(n)&&n.timeUnit&&Gl(n.timeUnit).utc?"utc":"time";case"quantitative":return im(t)?ti(n)&&Bo(n.bin)?"bin-ordinal":"linear":E4(t)==="discrete"?(Kr(C4(t,"quantitative")),"ordinal"):"linear";case"geojson":return}throw new Error(ZU(n.type))}function c_e(t,{ignoreRange:n}={}){AH(t),gH(t);for(const e of r1e)wH(t,e);n||kH(t)}function AH(t){Is(t)?t.component.scales=f_e(t):t.component.scales=d_e(t)}function f_e(t){const{encoding:n,mark:e,markDef:o}=t,f={};for(const r of o3){const a=Ws(n[r]);if(a&&e===yV&&r===Ru&&a.type===n1)continue;let u=a&&a.scale;if(t1(r)){const c=IU(r);if(!$T(n,c)){u&&Kr($ge(r));continue}}if(a&&u!==null&&u!==!1){u??(u={});const c=$T(n,r),i=l_e(u,r,a,o,c);f[r]=new vH(t.scaleName(`${r}`,!0),{value:i,explicit:u.type===i})}}return f}const h_e=_q((t,n)=>aP(t)-aP(n));function d_e(t){var n,e;const o=t.component.scales={},f={},r=t.component.resolve;for(const a of t.children){AH(a);for(const u of Xr(a.component.scales))if((n=(e=r.scale)[u])!==null&&n!==void 0||(e[u]=nH(u,t)),r.scale[u]==="shared"){const c=f[u],i=a.component.scales[u].getWithExplicit("type");c?Wme(c.value,i.value)?f[u]=ap(c,i,"type","scale",h_e):(r.scale[u]="independent",delete f[u]):f[u]=i}}for(const a of Xr(f)){const u=t.scaleName(a,!0),c=f[a];o[a]=new vH(u,c);for(const i of t.children){const s=i.component.scales[a];s&&(i.renameScale(s.get("name"),u),s.merged=!0)}}return o}var F4=globalThis&&globalThis.__rest||function(t,n){var e={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&n.indexOf(o)<0&&(e[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var f=0,o=Object.getOwnPropertySymbols(t);f{var l,d,h;return!((l=s.from)===null||l===void 0)&&l.data&&(s.from.data=this.lookupDataSource(s.from.data)),!((h=(d=s.from)===null||d===void 0?void 0:d.facet)===null||h===void 0)&&h.data&&(s.from.facet.data=this.lookupDataSource(s.from.facet.data)),s},this.parent=o,this.config=r,this.view=Tu(u),this.name=(c=n.name)!==null&&c!==void 0?c:f,this.title=Ad(n.title)?{text:n.title}:n.title?Tu(n.title):void 0,this.scaleNameMap=o?o.scaleNameMap:new N4,this.projectionNameMap=o?o.projectionNameMap:new N4,this.signalNameMap=o?o.signalNameMap:new N4,this.data=n.data,this.description=n.description,this.transforms=mye((i=n.transform)!==null&&i!==void 0?i:[]),this.layout=e==="layer"||e==="unit"?{}:wve(n,e,r),this.component={data:{sources:o?o.component.data.sources:[],outputNodes:o?o.component.data.outputNodes:{},outputNodeRefCounts:o?o.component.data.outputNodeRefCounts:{},isFaceted:p3(n)||o?.component.data.isFaceted&&n.data===void 0},layoutSize:new ad,layoutHeaders:{row:{},column:{},facet:{}},mark:null,resolve:Object.assign({scale:{},axis:{},legend:{}},a?ha(a):{}),selection:null,scales:null,projection:null,axes:{},legends:{}}}get width(){return this.getSizeSignalRef("width")}get height(){return this.getSizeSignalRef("height")}parse(){this.parseScale(),this.parseLayoutSize(),this.renameTopLevelLayoutSizeSignal(),this.parseSelections(),this.parseProjection(),this.parseData(),this.parseAxesAndHeaders(),this.parseLegends(),this.parseMarkGroup()}parseScale(){c_e(this)}parseProjection(){hH(this)}renameTopLevelLayoutSizeSignal(){this.getName("width")!=="width"&&this.renameSignal(this.getName("width"),"width"),this.getName("height")!=="height"&&this.renameSignal(this.getName("height"),"height")}parseLegends(){sH(this)}assembleEncodeFromView(n){const e=F4(n,["style"]),o={};for(const f of Xr(e)){const r=e[f];r!==void 0&&(o[f]=Ho(r))}return o}assembleGroupEncodeEntry(n){let e={};return this.view&&(e=this.assembleEncodeFromView(this.view)),!n&&(this.description&&(e.description=Ho(this.description)),this.type==="unit"||this.type==="layer")?Object.assign({width:this.getSizeSignalRef("width"),height:this.getSizeSignalRef("height")},e??{}):_o(e)?void 0:e}assembleLayout(){if(!this.layout)return;const n=this.layout,{spacing:e}=n,o=F4(n,["spacing"]),{component:f,config:r}=this,a=Oxe(f.layoutHeaders,r);return Object.assign(Object.assign(Object.assign({padding:e},this.assembleDefaultLayout()),o),a?{titleBand:a}:{})}assembleDefaultLayout(){return{}}assembleHeaderMarks(){const{layoutHeaders:n}=this.component;let e=[];for(const o of dc)n[o].title&&e.push(Txe(this,o));for(const o of k8)e=e.concat(Axe(this,o));return e}assembleAxes(){return hxe(this.component.axes,this.config)}assembleLegends(){return uH(this)}assembleProjections(){return ebe(this)}assembleTitle(){var n,e,o;const f=(n=this.title)!==null&&n!==void 0?n:{},{encoding:r}=f,a=F4(f,["encoding"]),u=Object.assign(Object.assign(Object.assign({},UU(this.config.title).nonMarkTitleProperties),a),r?{encode:{update:r}}:{});if(u.text)return Fa(["unit","layer"],this.type)?Fa(["middle",void 0],u.anchor)&&((e=u.frame)!==null&&e!==void 0||(u.frame="group")):(o=u.anchor)!==null&&o!==void 0||(u.anchor="start"),_o(u)?void 0:u}assembleGroup(n=[]){const e={};n=n.concat(this.assembleSignals()),n.length>0&&(e.signals=n);const o=this.assembleLayout();o&&(e.layout=o),e.marks=[].concat(this.assembleHeaderMarks(),this.assembleMarks());const f=!this.parent||lf(this.parent)?mH(this):[];f.length>0&&(e.scales=f);const r=this.assembleAxes();r.length>0&&(e.axes=r);const a=this.assembleLegends();return a.length>0&&(e.legends=a),e}getName(n){return Xo((this.name?`${this.name}_`:"")+n)}getDataName(n){return this.getName(Fo[n].toLowerCase())}requestDataName(n){const e=this.getDataName(n),o=this.component.data.outputNodeRefCounts;return o[e]=(o[e]||0)+1,e}getSizeSignalRef(n){if(lf(this.parent)){const e=eH(n),o=a3(e),f=this.component.scales[o];if(f&&!f.merged){const r=f.get("type"),a=f.get("range");if(ll(r)&&wp(a)){const u=f.get("name"),c=E3(this,o),i=L8(c);if(i){const s=hi({aggregate:"distinct",field:i},{expr:"datum"});return{signal:Qq(u,f,s)}}else return Kr(LE(o)),null}}}return{signal:this.signalNameMap.get(this.getName(n))}}lookupDataSource(n){const e=this.component.data.outputNodes[n];return e?e.getSource():n}getSignalName(n){return this.signalNameMap.get(n)}renameSignal(n,e){this.signalNameMap.rename(n,e)}renameScale(n,e){this.scaleNameMap.rename(n,e)}renameProjection(n,e){this.projectionNameMap.rename(n,e)}scaleName(n,e){if(e)return this.getName(n);if(LU(n)&&bp(n)&&this.component.scales[n]||this.scaleNameMap.has(this.getName(n)))return this.scaleNameMap.get(this.getName(n))}projectionName(n){if(n)return this.getName("projection");if(this.component.projection&&!this.component.projection.merged||this.projectionNameMap.has(this.getName("projection")))return this.projectionNameMap.get(this.getName("projection"))}getScaleComponent(n){if(!this.component.scales)throw new Error("getScaleComponent cannot be called before parseScale(). Make sure you have called parseScale or use parseUnitModelWithScale().");const e=this.component.scales[n];return e&&!e.merged?e:this.parent?this.parent.getScaleComponent(n):void 0}getSelectionComponent(n,e){let o=this.component.selection[n];if(!o&&this.parent&&(o=this.parent.getSelectionComponent(n,e)),!o)throw new Error(kge(e));return o}hasAxisOrientSignalRef(){var n,e;return((n=this.component.axes.x)===null||n===void 0?void 0:n.some(o=>o.hasOrientSignalRef()))||((e=this.component.axes.y)===null||e===void 0?void 0:e.some(o=>o.hasOrientSignalRef()))}}class MH extends D8{vgField(n,e={}){const o=this.fieldDef(n);if(!!o)return hi(o,e)}reduceFieldDef(n,e){return Z1e(this.getMapping(),(o,f,r)=>{const a=th(f);return a?n(o,a,r):o},e)}forEachFieldDef(n,e){a8(this.getMapping(),(o,f)=>{const r=th(o);r&&n(r,f)},e)}}var p_e=globalThis&&globalThis.__rest||function(t,n){var e={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&n.indexOf(o)<0&&(e[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var f=0,o=Object.getOwnPropertySymbols(t);f{const l=bp(s)&&e.getScaleComponent(s);if(l){const d=l.get("type");rc(d)&&i.aggregate!=="count"&&!kp(f)&&(c[i.field]=i)}return c},{});return Xr(u).length?new my(n,u):null}dependentFields(){return new Set(Xr(this.filter))}producedFields(){return new Set}hash(){return`FilterInvalid ${Ba(this.filter)}`}assemble(){const n=Xr(this.filter).reduce((e,o)=>{const f=this.filter[o],r=hi(f,{expr:"datum"});return f!==null&&(f.type==="temporal"?e.push(`(isDate(${r}) || (isValid(${r}) && isFinite(+${r})))`):f.type==="quantitative"&&(e.push(`isValid(${r})`),e.push(`isFinite(+${r})`))),e},[]);return n.length>0?{type:"filter",expr:n.join(" && ")}:null}}class O3 extends To{constructor(n,e){super(n),this.transform=e,this.transform=ha(e);const{flatten:o,as:f=[]}=this.transform;this.transform.as=o.map((r,a)=>{var u;return(u=f[a])!==null&&u!==void 0?u:r})}clone(){return new O3(this.parent,ha(this.transform))}dependentFields(){return new Set(this.transform.flatten)}producedFields(){return new Set(this.transform.as)}hash(){return`FlattenTransform ${Ba(this.transform)}`}assemble(){const{flatten:n,as:e}=this.transform;return{type:"flatten",fields:n,as:e}}}class L3 extends To{constructor(n,e){var o,f,r;super(n),this.transform=e,this.transform=ha(e);const a=(o=this.transform.as)!==null&&o!==void 0?o:[void 0,void 0];this.transform.as=[(f=a[0])!==null&&f!==void 0?f:"key",(r=a[1])!==null&&r!==void 0?r:"value"]}clone(){return new L3(null,ha(this.transform))}dependentFields(){return new Set(this.transform.fold)}producedFields(){return new Set(this.transform.as)}hash(){return`FoldTransform ${Ba(this.transform)}`}assemble(){const{fold:n,as:e}=this.transform;return{type:"fold",fields:n,as:e}}}class sm extends To{constructor(n,e,o,f){super(n),this.fields=e,this.geojson=o,this.signal=f}clone(){return new sm(null,ha(this.fields),this.geojson,this.signal)}static parseAll(n,e){if(e.component.projection&&!e.component.projection.isFit)return n;let o=0;for(const f of[[fh,ch],[_c,bf]]){const r=f.map(a=>{const u=Ws(e.encoding[a]);return ti(u)?u.field:mh(u)?{expr:`${u.datum}`}:pf(u)?{expr:`${u.value}`}:void 0});(r[0]||r[1])&&(n=new sm(n,r,null,e.getName(`geojson_${o++}`)))}if(e.channelHasField(Ru)){const f=e.typedFieldDef(Ru);f.type===n1&&(n=new sm(n,null,f.field,e.getName(`geojson_${o++}`)))}return n}dependentFields(){var n;const e=((n=this.fields)!==null&&n!==void 0?n:[]).filter(bi);return new Set([...this.geojson?[this.geojson]:[],...e])}producedFields(){return new Set}hash(){return`GeoJSON ${this.geojson} ${this.signal} ${Ba(this.fields)}`}assemble(){return[...this.geojson?[{type:"filter",expr:`isValid(datum["${this.geojson}"])`}]:[],Object.assign(Object.assign(Object.assign({type:"geojson"},this.fields?{fields:this.fields}:{}),this.geojson?{geojson:this.geojson}:{}),{signal:this.signal})]}}class vy extends To{constructor(n,e,o,f){super(n),this.projection=e,this.fields=o,this.as=f}clone(){return new vy(null,this.projection,ha(this.fields),ha(this.as))}static parseAll(n,e){if(!e.projectionName())return n;for(const o of[[fh,ch],[_c,bf]]){const f=o.map(a=>{const u=Ws(e.encoding[a]);return ti(u)?u.field:mh(u)?{expr:`${u.datum}`}:pf(u)?{expr:`${u.value}`}:void 0}),r=o[0]===_c?"2":"";(f[0]||f[1])&&(n=new vy(n,e.projectionName(),f,[e.getName(`x${r}`),e.getName(`y${r}`)]))}return n}dependentFields(){return new Set(this.fields.filter(bi))}producedFields(){return new Set(this.as)}hash(){return`Geopoint ${this.projection} ${Ba(this.fields)} ${Ba(this.as)}`}assemble(){return{type:"geopoint",projection:this.projection,fields:this.fields,as:this.as}}}class x0 extends To{constructor(n,e){super(n),this.transform=e}clone(){return new x0(null,ha(this.transform))}dependentFields(){var n;return new Set([this.transform.impute,this.transform.key,...(n=this.transform.groupby)!==null&&n!==void 0?n:[]])}producedFields(){return new Set([this.transform.impute])}processSequence(n){const{start:e=0,stop:o,step:f}=n;return{signal:`sequence(${[e,o,...f?[f]:[]].join(",")})`}}static makeFromTransform(n,e){return new x0(n,e)}static makeFromEncoding(n,e){const o=e.encoding,f=o.x,r=o.y;if(ti(f)&&ti(r)){const a=f.impute?f:r.impute?r:void 0;if(a===void 0)return;const u=f.impute?r:r.impute?f:void 0,{method:c,value:i,frame:s,keyvals:l}=a.impute,d=HV(e.mark,o);return new x0(n,Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({impute:a.field,key:u.field},c?{method:c}:{}),i!==void 0?{value:i}:{}),s?{frame:s}:{}),l!==void 0?{keyvals:l}:{}),d.length?{groupby:d}:{}))}return null}hash(){return`Impute ${Ba(this.transform)}`}assemble(){const{impute:n,key:e,keyvals:o,method:f,groupby:r,value:a,frame:u=[null,null]}=this.transform,c=Object.assign(Object.assign(Object.assign(Object.assign({type:"impute",field:n,key:e},o?{keyvals:Kve(o)?this.processSequence(o):o}:{}),{method:"value"}),r?{groupby:r}:{}),{value:!f||f==="value"?a:null});if(f&&f!=="value"){const i=Object.assign({type:"window",as:[`imputed_${n}_value`],ops:[f],fields:[n],frame:u,ignorePeers:!1},r?{groupby:r}:{}),s={type:"formula",expr:`datum.${n} === null ? datum.imputed_${n}_value : datum.${n}`,as:n};return[c,i,s]}else return[c]}}var g_e=globalThis&&globalThis.__rest||function(t,n){var e={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&n.indexOf(o)<0&&(e[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var f=0,o=Object.getOwnPropertySymbols(t);fo)}producedFields(){}dependentFields(){var n;return new Set([this.transform.pivot,this.transform.value,...(n=this.transform.groupby)!==null&&n!==void 0?n:[]])}hash(){return`PivotTransform ${Ba(this.transform)}`}assemble(){const{pivot:n,value:e,groupby:o,limit:f,op:r}=this.transform;return Object.assign(Object.assign(Object.assign({type:"pivot",field:n,value:e},f!==void 0?{limit:f}:{}),r!==void 0?{op:r}:{}),o!==void 0?{groupby:o}:{})}}class R3 extends To{constructor(n,e){super(n),this.transform=e}clone(){return new R3(null,ha(this.transform))}dependentFields(){return new Set}producedFields(){return new Set}hash(){return`SampleTransform ${Ba(this.transform)}`}assemble(){return{type:"sample",size:this.transform.sample}}}function SH(t){let n=0;function e(o,f){var r;if(o instanceof j0&&!o.isGenerator&&!Dm(o.data)&&(t.push(f),f={name:null,source:f.name,transform:[]}),o instanceof Nl&&(o.parent instanceof j0&&!f.source?(f.format=Object.assign(Object.assign({},(r=f.format)!==null&&r!==void 0?r:{}),{parse:o.assembleFormatParse()}),f.transform.push(...o.assembleTransforms(!0))):f.transform.push(...o.assembleTransforms())),o instanceof a1){f.name||(f.name=`data_${n++}`),!f.source||f.transform.length>0?(t.push(f),o.data=f.name):o.data=f.source,t.push(...o.assemble());return}switch((o instanceof hx||o instanceof dx||o instanceof my||o instanceof i1||o instanceof zm||o instanceof vy||o instanceof sf||o instanceof yy||o instanceof o1||o instanceof ng||o instanceof L3||o instanceof O3||o instanceof C3||o instanceof P3||o instanceof D3||o instanceof I3||o instanceof up||o instanceof R3||o instanceof z3)&&f.transform.push(o.assemble()),(o instanceof Xf||o instanceof Yf||o instanceof x0||o instanceof $h||o instanceof sm)&&f.transform.push(...o.assemble()),o instanceof hu&&(f.source&&f.transform.length===0?o.setSource(f.source):o.parent instanceof hu?o.setSource(f.name):(f.name||(f.name=`data_${n++}`),o.setSource(f.name),o.numChildren()===1&&(t.push(f),f={name:null,source:f.name,transform:[]}))),o.numChildren()){case 0:o instanceof hu&&(!f.source||f.transform.length>0)&&t.push(f);break;case 1:e(o.children[0],f);break;default:{f.name||(f.name=`data_${n++}`);let a=f.name;!f.source||f.transform.length>0?t.push(f):a=f.source;for(const u of o.children)e(u,{name:null,source:a,transform:[]});break}}}return e}function y_e(t){const n=[],e=SH(n);for(const o of t.children)e(o,{source:t.name,name:null,transform:[]});return n}function x_e(t,n){var e,o;const f=[],r=SH(f);let a=0;for(const c of t.sources){c.hasName()||(c.dataName=`source_${a++}`);const i=c.assemble();r(c,i)}for(const c of f)c.transform.length===0&&delete c.transform;let u=0;for(const[c,i]of f.entries())((e=i.transform)!==null&&e!==void 0?e:[]).length===0&&!i.source&&f.splice(u++,0,f.splice(c,1)[0]);for(const c of f)for(const i of(o=c.transform)!==null&&o!==void 0?o:[])i.type==="lookup"&&(i.from=t.outputNodes[i.from].getSource());for(const c of f)c.name in n&&(c.values=n[c.name]);return f}function b_e(t){return t==="top"||t==="left"||Vi(t)?"header":"footer"}function __e(t){for(const n of dc)w_e(t,n);ZP(t,"x"),ZP(t,"y")}function w_e(t,n){var e;const{facet:o,config:f,child:r,component:a}=t;if(t.channelHasField(n)){const u=o[n],c=Fm("title",null,f,n);let i=am(u,f,{allowDisabling:!0,includeDefault:c===void 0||!!c});r.component.layoutHeaders[n].title&&(i=Ir(i)?i.join(", "):i,i+=` / ${r.component.layoutHeaders[n].title}`,r.component.layoutHeaders[n].title=null);const s=Fm("labelOrient",u.header,f,n),l=u.header!==null?Rs((e=u.header)===null||e===void 0?void 0:e.labels,f.header.labels,!0):!1,d=Fa(["bottom","right"],s)?"footer":"header";a.layoutHeaders[n]={title:u.header!==null?i:null,facetFieldDef:u,[d]:n==="facet"?[]:[EH(t,n,l)]}}}function EH(t,n,e){const o=n==="row"?"height":"width";return{labels:e,sizeSignal:t.child.component.layoutSize.get(o)?t.child.getSizeSignalRef(o):void 0,axes:[]}}function ZP(t,n){var e;const{child:o}=t;if(o.component.axes[n]){const{layoutHeaders:f,resolve:r}=t.component;if(r.axis[n]=M8(r,n),r.axis[n]==="shared"){const a=n==="x"?"column":"row",u=f[a];for(const c of o.component.axes[n]){const i=b_e(c.get("orient"));(e=u[i])!==null&&e!==void 0||(u[i]=[EH(t,a,!1)]);const s=Tv(c,"main",t.config,{header:!0});s&&u[i][0].axes.push(s),c.mainExtracted=!0}}}}function k_e(t){I8(t),F2(t,"width"),F2(t,"height")}function T_e(t){I8(t);const n=t.layout.columns===1?"width":"childWidth",e=t.layout.columns===void 0?"height":"childHeight";F2(t,n),F2(t,e)}function I8(t){for(const n of t.children)n.parseLayoutSize()}function F2(t,n){var e;const o=eH(n),f=a3(o),r=t.component.resolve,a=t.component.layoutSize;let u;for(const c of t.children){const i=c.component.layoutSize.getWithExplicit(o),s=(e=r.scale[f])!==null&&e!==void 0?e:nH(f,t);if(s==="independent"&&i.value==="step"){u=void 0;break}if(u){if(s==="independent"&&u.value!==i.value){u=void 0;break}u=ap(u,i,o,"")}else u=i}if(u){for(const c of t.children)t.renameSignal(c.getName(o),t.getName(n)),c.component.layoutSize.set(o,"merged",!1);a.setWithExplicit(n,u)}else a.setWithExplicit(n,{explicit:!1,value:void 0})}function A_e(t){const{size:n,component:e}=t;for(const o of gh){const f=Fu(o);if(n[f]){const r=n[f];e.layoutSize.set(f,rh(r)?"step":r,!0)}else{const r=M_e(t,f);e.layoutSize.set(f,r,!1)}}}function M_e(t,n){const e=n==="width"?"x":"y",o=t.config,f=t.getScaleComponent(e);if(f){const r=f.get("type"),a=f.get("range");if(ll(r)){const u=D2(o.view,n);return wp(a)||rh(u)?"step":u}else return WT(o.view,n)}else{if(t.hasProjection||t.mark==="arc")return WT(o.view,n);{const r=D2(o.view,n);return rh(r)?r.step:r}}}function uA(t,n,e){return hi(n,Object.assign({suffix:`by_${hi(t)}`},e??{}))}class jv extends MH{constructor(n,e,o,f){super(n,"facet",e,o,f,n.resolve),this.child=B8(n.spec,this,this.getName("child"),void 0,f),this.children=[this.child],this.facet=this.initFacet(n.facet)}initFacet(n){if(!sx(n))return{facet:this.initFacetFieldDef(n,"facet")};const e=Xr(n),o={};for(const f of e){if(![Vh,qh].includes(f)){Kr(l3(f,"facet"));break}const r=n[f];if(r.field===void 0){Kr(BT(r,f));break}o[f]=this.initFacetFieldDef(r,f)}return o}initFacetFieldDef(n,e){const o=r8(n,e);return o.header?o.header=Tu(o.header):o.header===null&&(o.header=null),o}channelHasField(n){return!!this.facet[n]}fieldDef(n){return this.facet[n]}parseData(){this.component.data=F3(this),this.child.parseData()}parseLayoutSize(){I8(this)}parseSelections(){this.child.parseSelections(),this.component.selection=this.child.component.selection}parseMarkGroup(){this.child.parseMarkGroup()}parseAxesAndHeaders(){this.child.parseAxesAndHeaders(),__e(this)}assembleSelectionTopLevelSignals(n){return this.child.assembleSelectionTopLevelSignals(n)}assembleSignals(){return this.child.assembleSignals(),[]}assembleSelectionData(n){return this.child.assembleSelectionData(n)}getHeaderLayoutMixins(){var n,e,o;const f={};for(const r of dc)for(const a of T8){const u=this.component.layoutHeaders[r],c=u[a],{facetFieldDef:i}=u;if(i){const s=Fm("titleOrient",i.header,this.config,r);if(["right","bottom"].includes(s)){const l=M3(r,s);(n=f.titleAnchor)!==null&&n!==void 0||(f.titleAnchor={}),f.titleAnchor[l]="end"}}if(c?.[0]){const s=r==="row"?"height":"width",l=a==="header"?"headerBand":"footerBand";r!=="facet"&&!this.child.component.layoutSize.get(s)&&((e=f[l])!==null&&e!==void 0||(f[l]={}),f[l][r]=.5),u.title&&((o=f.offset)!==null&&o!==void 0||(f.offset={}),f.offset[r==="row"?"rowTitle":"columnTitle"]=10)}}return f}assembleDefaultLayout(){const{column:n,row:e}=this.facet,o=n?this.columnDistinctSignal():e?1:void 0;let f="all";return(!e&&this.component.resolve.scale.x==="independent"||!n&&this.component.resolve.scale.y==="independent")&&(f="none"),Object.assign(Object.assign(Object.assign({},this.getHeaderLayoutMixins()),o?{columns:o}:{}),{bounds:"full",align:f})}assembleLayoutSignals(){return this.child.assembleLayoutSignals()}columnDistinctSignal(){if(!(this.parent&&this.parent instanceof jv))return{signal:`length(data('${this.getName("column_domain")}'))`}}assembleGroupStyle(){}assembleGroup(n){return this.parent&&this.parent instanceof jv?Object.assign(Object.assign({},this.channelHasField("column")?{encode:{update:{columns:{field:hi(this.facet.column,{prefix:"distinct"})}}}}:{}),super.assembleGroup(n)):super.assembleGroup(n)}getCardinalityAggregateForChild(){const n=[],e=[],o=[];if(this.child instanceof jv){if(this.child.channelHasField("column")){const f=hi(this.child.facet.column);n.push(f),e.push("distinct"),o.push(`distinct_${f}`)}}else for(const f of gh){const r=this.child.component.scales[f];if(r&&!r.merged){const a=r.get("type"),u=r.get("range");if(ll(a)&&wp(u)){const c=E3(this.child,f),i=L8(c);i?(n.push(i),e.push("distinct"),o.push(`distinct_${i}`)):Kr(LE(f))}}}return{fields:n,ops:e,as:o}}assembleFacet(){const{name:n,data:e}=this.component.data.facetRoot,{row:o,column:f}=this.facet,{fields:r,ops:a,as:u}=this.getCardinalityAggregateForChild(),c=[];for(const s of dc){const l=this.facet[s];if(l){c.push(hi(l));const{bin:d,sort:h}=l;if(Bo(d)&&c.push(hi(l,{binSuffix:"end"})),Wf(h)){const{field:m,op:g=d3}=h,p=uA(l,h);o&&f?(r.push(p),a.push("max"),u.push(p)):(r.push(m),a.push(g),u.push(p))}else if(Ir(h)){const m=Rm(l,s);r.push(m),a.push("max"),u.push(m)}}}const i=!!o&&!!f;return Object.assign({name:n,data:e,groupby:c},i||r.length>0?{aggregate:Object.assign(Object.assign({},i?{cross:i}:{}),r.length?{fields:r,ops:a,as:u}:{})}:{})}facetSortFields(n){const{facet:e}=this,o=e[n];return o?Wf(o.sort)?[uA(o,o.sort,{expr:"datum"})]:Ir(o.sort)?[Rm(o,n,{expr:"datum"})]:[hi(o,{expr:"datum"})]:[]}facetSortOrder(n){const{facet:e}=this,o=e[n];if(o){const{sort:f}=o;return[(Wf(f)?f.order:!Ir(f)&&f)||"ascending"]}return[]}assembleLabelTitle(){var n;const{facet:e,config:o}=this;if(e.facet)return rA(e.facet,"facet",o);const f={row:["top","bottom"],column:["left","right"]};for(const r of k8)if(e[r]){const a=Fm("labelOrient",(n=e[r])===null||n===void 0?void 0:n.header,o,r);if(f[r].includes(a))return rA(e[r],r,o)}}assembleMarks(){const{child:n}=this,e=this.component.data.facetRoot,o=y_e(e),f=n.assembleGroupEncodeEntry(!1),r=this.assembleLabelTitle()||n.assembleTitle(),a=n.assembleGroupStyle();return[Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:this.getName("cell"),type:"group"},r?{title:r}:{}),a?{style:a}:{}),{from:{facet:this.assembleFacet()},sort:{field:dc.map(c=>this.facetSortFields(c)).flat(),order:dc.map(c=>this.facetSortOrder(c)).flat()}}),o.length>0?{data:o}:{}),f?{encode:{update:f}}:{}),n.assembleGroup(Cye(this,[])))]}getMapping(){return this.facet}}function S_e(t,n){const{row:e,column:o}=n;if(e&&o){let f=null;for(const r of[e,o])if(Wf(r.sort)){const{field:a,op:u=d3}=r.sort;t=f=new ng(t,{joinaggregate:[{op:u,field:a,as:uA(r,r.sort,{forAs:!0})}],groupby:[hi(r)]})}return f}return null}function CH(t,n){var e,o,f,r;for(const a of n){const u=a.data;if(t.name&&a.hasName()&&t.name!==a.dataName)continue;const c=(e=t.format)===null||e===void 0?void 0:e.mesh,i=(o=u.format)===null||o===void 0?void 0:o.feature;if(c&&i)continue;const s=(f=t.format)===null||f===void 0?void 0:f.feature;if((s||i)&&s!==i)continue;const l=(r=u.format)===null||r===void 0?void 0:r.mesh;if(!((c||l)&&c!==l)){if(py(t)&&py(u)){if(Uf(t.values,u.values))return a}else if(Dm(t)&&Dm(u)){if(t.url===u.url)return a}else if(wq(t)&&t.name===a.dataName)return a}}return null}function E_e(t,n){if(t.data||!t.parent){if(t.data===null){const o=new j0({values:[]});return n.push(o),o}const e=CH(t.data,n);if(e)return $d(t.data)||(e.data.format=_U({},t.data.format,e.data.format)),!e.hasName()&&t.data.name&&(e.dataName=t.data.name),e;{const o=new j0(t.data);return n.push(o),o}}else return t.parent.component.data.facetRoot?t.parent.component.data.facetRoot:t.parent.component.data.main}function C_e(t,n,e){var o,f;let r=0;for(const a of n.transforms){let u,c;if(cye(a))c=t=new zm(t,a),u="derived";else if(m8(a)){const i=pbe(a);c=t=(o=Nl.makeWithAncestors(t,{},i,e))!==null&&o!==void 0?o:t,t=new i1(t,n,a.filter)}else if(mq(a))c=t=Xf.makeFromTransform(t,a,n),u="number";else if(hye(a))u="date",e.getWithExplicit(a.field).value===void 0&&(t=new Nl(t,{[a.field]:u}),e.set(a.field,u,!1)),c=t=Yf.makeFromTransform(t,a);else if(dye(a))c=t=sf.makeFromTransform(t,a),u="number",w8(n)&&(t=new up(t));else if(gq(a))c=t=yy.make(t,n,a,r++),u="derived";else if(sye(a))c=t=new o1(t,a),u="number";else if(lye(a))c=t=new ng(t,a),u="number";else if(pye(a))c=t=$h.makeFromTransform(t,a),u="derived";else if(gye(a))c=t=new L3(t,a),u="derived";else if(uye(a))c=t=new O3(t,a),u="derived";else if(tye(a))c=t=new z3(t,a),u="derived";else if(oye(a))t=new R3(t,a);else if(fye(a))c=t=x0.makeFromTransform(t,a),u="derived";else if(nye(a))c=t=new C3(t,a),u="derived";else if(rye(a))c=t=new D3(t,a),u="derived";else if(iye(a))c=t=new I3(t,a),u="derived";else if(aye(a))c=t=new P3(t,a),u="derived";else{Kr(Ige(a));continue}if(c&&u!==void 0)for(const i of(f=c.producedFields())!==null&&f!==void 0?f:[])e.set(i,u,!1)}return t}function F3(t){var n,e,o,f,r,a,u,c,i,s;let l=E_e(t,t.component.data.sources);const{outputNodes:d,outputNodeRefCounts:h}=t.component.data,m=t.data,p=!(m&&($d(m)||Dm(m)||py(m)))&&t.parent?t.parent.component.data.ancestorParse.clone():new Mye;$d(m)?(kq(m)?l=new dx(l,m.sequence):v8(m)&&(l=new hx(l,m.graticule)),p.parseNothing=!0):((n=m?.format)===null||n===void 0?void 0:n.parse)===null&&(p.parseNothing=!0),l=(e=Nl.makeExplicit(l,t,p))!==null&&e!==void 0?e:l,l=new up(l);const v=t.parent&&s1(t.parent);(Is(t)||lf(t))&&v&&(l=(o=Xf.makeFromEncoding(l,t))!==null&&o!==void 0?o:l),t.transforms.length>0&&(l=C_e(l,t,p));const y=mbe(t),x=gbe(t);l=(f=Nl.makeWithAncestors(l,{},Object.assign(Object.assign({},y),x),p))!==null&&f!==void 0?f:l,Is(t)&&(l=sm.parseAll(l,t),l=vy.parseAll(l,t)),(Is(t)||lf(t))&&(v||(l=(r=Xf.makeFromEncoding(l,t))!==null&&r!==void 0?r:l),l=(a=Yf.makeFromEncoding(l,t))!==null&&a!==void 0?a:l,l=zm.parseAllForSortIndex(l,t));const w=t.getDataName(Fo.Raw),k=new hu(l,w,Fo.Raw,h);if(d[w]=k,l=k,Is(t)){const M=sf.makeFromEncoding(l,t);M&&(l=M,w8(t)&&(l=new up(l))),l=(u=x0.makeFromEncoding(l,t))!==null&&u!==void 0?u:l,l=(c=$h.makeFromEncoding(l,t))!==null&&c!==void 0?c:l}Is(t)&&(l=(i=my.make(l,t))!==null&&i!==void 0?i:l);const b=t.getDataName(Fo.Main),T=new hu(l,b,Fo.Main,h);d[b]=T,l=T,Is(t)&&cxe(t,T);let _=null;if(lf(t)){const M=t.getName("facet");l=(s=S_e(l,t.facet))!==null&&s!==void 0?s:l,_=new a1(l,t,M,T.getSource()),d[M]=_}return Object.assign(Object.assign({},t.component.data),{outputNodes:d,outputNodeRefCounts:h,raw:k,main:T,facetRoot:_,ancestorParse:p})}class O_e extends D8{constructor(n,e,o,f){var r,a,u,c;super(n,"concat",e,o,f,n.resolve),(((a=(r=n.resolve)===null||r===void 0?void 0:r.axis)===null||a===void 0?void 0:a.x)==="shared"||((c=(u=n.resolve)===null||u===void 0?void 0:u.axis)===null||c===void 0?void 0:c.y)==="shared")&&Kr(Lge),this.children=this.getChildren(n).map((i,s)=>B8(i,this,this.getName(`concat_${s}`),void 0,f))}parseData(){this.component.data=F3(this);for(const n of this.children)n.parseData()}parseSelections(){this.component.selection={};for(const n of this.children){n.parseSelections();for(const e of Xr(n.component.selection))this.component.selection[e]=n.component.selection[e]}}parseMarkGroup(){for(const n of this.children)n.parseMarkGroup()}parseAxesAndHeaders(){for(const n of this.children)n.parseAxesAndHeaders()}getChildren(n){return _3(n)?n.vconcat:p8(n)?n.hconcat:n.concat}parseLayoutSize(){T_e(this)}parseAxisGroup(){return null}assembleSelectionTopLevelSignals(n){return this.children.reduce((e,o)=>o.assembleSelectionTopLevelSignals(e),n)}assembleSignals(){return this.children.forEach(n=>n.assembleSignals()),[]}assembleLayoutSignals(){const n=A8(this);for(const e of this.children)n.push(...e.assembleLayoutSignals());return n}assembleSelectionData(n){return this.children.reduce((e,o)=>o.assembleSelectionData(e),n)}assembleMarks(){return this.children.map(n=>{const e=n.assembleTitle(),o=n.assembleGroupStyle(),f=n.assembleGroupEncodeEntry(!1);return Object.assign(Object.assign(Object.assign(Object.assign({type:"group",name:n.getName("group")},e?{title:e}:{}),o?{style:o}:{}),f?{encode:{update:f}}:{}),n.assembleGroup())})}assembleGroupStyle(){}assembleDefaultLayout(){const n=this.layout.columns;return Object.assign(Object.assign({},n!=null?{columns:n}:{}),{bounds:"full",align:"each"})}}function L_e(t){return t===!1||t===null}const P_e=Object.assign(Object.assign({disable:1,gridScale:1,scale:1},jV),{labelExpr:1,encode:1}),OH=Xr(P_e);class z8 extends ad{constructor(n={},e={},o=!1){super(),this.explicit=n,this.implicit=e,this.mainExtracted=o}clone(){return new z8(ha(this.explicit),ha(this.implicit),this.mainExtracted)}hasAxisPart(n){return n==="axis"?!0:n==="grid"||n==="title"?!!this.get(n):!L_e(this.get(n))}hasOrientSignalRef(){return Vi(this.explicit.orient)}}function D_e(t,n,e){var o;const{encoding:f,config:r}=t,a=(o=Ws(f[n]))!==null&&o!==void 0?o:Ws(f[ph(n)]),u=t.axis(n)||{},{format:c,formatType:i}=u;if(F0(i))return Object.assign({text:rf({fieldOrDatumDef:a,field:"datum.value",format:c,formatType:i,config:r})},e);if(c===void 0&&i===void 0&&r.customFormatTypes){if(Om(a)==="quantitative"){if(Lm(a)&&a.stack==="normalize"&&r.normalizedNumberFormatType)return Object.assign({text:rf({fieldOrDatumDef:a,field:"datum.value",format:r.normalizedNumberFormat,formatType:r.normalizedNumberFormatType,config:r})},e);if(r.numberFormatType)return Object.assign({text:rf({fieldOrDatumDef:a,field:"datum.value",format:r.numberFormat,formatType:r.numberFormatType,config:r})},e)}if(Om(a)==="temporal"&&r.timeFormatType&&ti(a)&&!a.timeUnit)return Object.assign({text:rf({fieldOrDatumDef:a,field:"datum.value",format:r.timeFormat,formatType:r.timeFormatType,config:r})},e)}return e}function I_e(t){return gh.reduce((n,e)=>(t.component.scales[e]&&(n[e]=[U_e(e,t)]),n),{})}const z_e={bottom:"top",top:"bottom",left:"right",right:"left"};function R_e(t){var n;const{axes:e,resolve:o}=t.component,f={top:0,bottom:0,right:0,left:0};for(const r of t.children){r.parseAxesAndHeaders();for(const a of Xr(r.component.axes))o.axis[a]=M8(t.component.resolve,a),o.axis[a]==="shared"&&(e[a]=F_e(e[a],r.component.axes[a]),e[a]||(o.axis[a]="independent",delete e[a]))}for(const r of gh){for(const a of t.children)if(!!a.component.axes[r]){if(o.axis[r]==="independent"){e[r]=((n=e[r])!==null&&n!==void 0?n:[]).concat(a.component.axes[r]);for(const u of a.component.axes[r]){const{value:c,explicit:i}=u.getWithExplicit("orient");if(!Vi(c)){if(f[c]>0&&!i){const s=z_e[c];f[c]>f[s]&&u.set("orient",s,!1)}f[c]++}}}delete a.component.axes[r]}if(o.axis[r]==="independent"&&e[r]&&e[r].length>1)for(const a of e[r])!!a.get("grid")&&!a.explicit.grid&&(a.implicit.grid=!1)}}function F_e(t,n){if(t){if(t.length!==n.length)return;const e=t.length;for(let o=0;oe.clone());return t}function N_e(t,n){for(const e of OH){const o=ap(t.getWithExplicit(e),n.getWithExplicit(e),e,"axis",(f,r)=>{switch(e){case"title":return YU(f,r);case"gridScale":return{explicit:f.explicit,value:Rs(f.value,r.value)}}return k3(f,r,e,"axis")});t.setWithExplicit(e,o)}return t}function B_e(t,n,e,o,f){if(n==="disable")return e!==void 0;switch(e=e||{},n){case"titleAngle":case"labelAngle":return t===(Vi(e.labelAngle)?e.labelAngle:hy(e.labelAngle));case"values":return!!e.values;case"encode":return!!e.encoding||!!e.labelAngle;case"title":if(t===Xq(o,f))return!0}return t===e[n]}const j_e=new Set(["grid","translate","format","formatType","orient","labelExpr","tickCount","position","tickMinStep"]);function U_e(t,n){var e,o,f;let r=n.axis(t);const a=new z8,u=Ws(n.encoding[t]),{mark:c,config:i}=n,s=r?.orient||((e=i[t==="x"?"axisX":"axisY"])===null||e===void 0?void 0:e.orient)||((o=i.axis)===null||o===void 0?void 0:o.orient)||bxe(t),l=n.getScaleComponent(t).get("type"),d=dxe(t,l,s,n.config),h=r!==void 0?!r:tA("disable",i.style,r?.style,d).configValue;if(a.set("disable",h,r!==void 0),h)return a;r=r||{};const m=vxe(u,r,t,i.style,d),g={fieldOrDatumDef:u,axis:r,channel:t,model:n,scaleType:l,orient:s,labelAngle:m,mark:c,config:i};for(const y of OH){const x=y in zP?zP[y](g):fP(y)?r[y]:void 0,w=x!==void 0,k=B_e(x,y,r,n,t);if(w&&k)a.set(y,x,k);else{const{configValue:b=void 0,configFrom:T=void 0}=fP(y)&&y!=="values"?tA(y,i.style,r.style,d):{},_=b!==void 0;w&&!_?a.set(y,x,k):(T!=="vgAxisConfig"||j_e.has(y)&&_||cx(b)||Vi(b))&&a.set(y,b,!1)}}const p=(f=r.encoding)!==null&&f!==void 0?f:{},v=BV.reduce((y,x)=>{var w;if(!a.hasAxisPart(x))return y;const k=tH((w=p[x])!==null&&w!==void 0?w:{},n),b=x==="labels"?D_e(n,t,k):k;return b!==void 0&&!_o(b)&&(y[x]={update:b}),y},{});return _o(v)||a.set("encode",v,!!r.encoding||r.labelAngle!==void 0),a}function V_e({encoding:t,size:n}){for(const e of gh){const o=Fu(e);rh(n[o])&&qf(t[e])&&(delete n[o],Kr(QU(o)))}return n}function q_e(t,n,e){const o=Tu(t),f=oo("orient",o,e);if(o.orient=W_e(o.type,n,f),f!==void 0&&f!==o.orient&&Kr(Kge(o.orient,f)),o.type==="bar"&&o.orient){const u=oo("cornerRadiusEnd",o,e);if(u!==void 0){const c=o.orient==="horizontal"&&n.x2||o.orient==="vertical"&&n.y2?["cornerRadius"]:v1e[o.orient];for(const i of c)o[i]=u;o.cornerRadiusEnd!==void 0&&delete o.cornerRadiusEnd}}return oo("opacity",o,e)===void 0&&(o.opacity=$_e(o.type,n)),oo("cursor",o,e)===void 0&&(o.cursor=H_e(o,n,e)),o}function H_e(t,n,e){return n.href||t.href||oo("href",t,e)?"pointer":t.cursor}function $_e(t,n){if(Fa([h3,GE,WE,YE],t)&&!i8(n))return .7}function G_e(t,n,{graticule:e}){if(e)return!1;const o=I0("filled",t,n),f=t.type;return Rs(o,f!==h3&&f!==f3&&f!==M2)}function W_e(t,n,e){switch(t){case h3:case WE:case YE:case vV:case s1e:case o1e:return}const{x:o,y:f,x2:r,y2:a}=n;switch(t){case c3:if(ti(o)&&(xl(o.bin)||ti(f)&&f.aggregate&&!o.aggregate))return"vertical";if(ti(f)&&(xl(f.bin)||ti(o)&&o.aggregate&&!f.aggregate))return"horizontal";if(a||r){if(e)return e;if(!r)return(ti(o)&&o.type===z0&&!Bo(o.bin)||HT(o))&&ti(f)&&xl(f.bin)?"horizontal":"vertical";if(!a)return(ti(f)&&f.type===z0&&!Bo(f.bin)||HT(f))&&ti(o)&&xl(o.bin)?"vertical":"horizontal"}case M2:if(r&&!(ti(o)&&xl(o.bin))&&a&&!(ti(f)&&xl(f.bin)))return;case u3:if(a)return ti(f)&&xl(f.bin)?"horizontal":"vertical";if(r)return ti(o)&&xl(o.bin)?"vertical":"horizontal";if(t===M2){if(o&&!f)return"vertical";if(f&&!o)return"horizontal"}case f3:case GE:{const u=qf(o),c=qf(f);if(e)return e;if(u&&!c)return t!=="tick"?"horizontal":"vertical";if(!u&&c)return t!=="tick"?"vertical":"horizontal";if(u&&c){const i=o,s=f,l=i.type===Em,d=s.type===Em;return l&&!d?t!=="tick"?"vertical":"horizontal":!l&&d?t!=="tick"?"horizontal":"vertical":!i.aggregate&&s.aggregate?t!=="tick"?"vertical":"horizontal":i.aggregate&&!s.aggregate&&t!=="tick"?"horizontal":"vertical"}else return}}return"vertical"}const Y_e={vgMark:"arc",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Ac(t,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})),Fl("x",t,{defaultPos:"mid"})),Fl("y",t,{defaultPos:"mid"})),sp(t,"radius")),sp(t,"theta"))},X_e={vgMark:"area",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign({},Ac(t,{align:"ignore",baseline:"ignore",color:"include",orient:"include",size:"ignore",theta:"ignore"})),I2("x",t,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:t.markDef.orient==="horizontal"})),I2("y",t,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:t.markDef.orient==="vertical"})),_8(t))},Z_e={vgMark:"rect",encodeEntry:t=>Object.assign(Object.assign(Object.assign({},Ac(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),sp(t,"x")),sp(t,"y"))},J_e={vgMark:"shape",encodeEntry:t=>Object.assign({},Ac(t,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})),postEncodingTransform:t=>{const{encoding:n}=t,e=n.shape;return[Object.assign({type:"geoshape",projection:t.projectionName()},e&&ti(e)&&e.type===n1?{field:hi(e,{expr:"datum"})}:{})]}},K_e={vgMark:"image",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign({},Ac(t,{align:"ignore",baseline:"ignore",color:"ignore",orient:"ignore",size:"ignore",theta:"ignore"})),sp(t,"x")),sp(t,"y")),x8(t,"url"))},Q_e={vgMark:"line",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Ac(t,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})),Fl("x",t,{defaultPos:"mid"})),Fl("y",t,{defaultPos:"mid"})),nl("size",t,{vgChannel:"strokeWidth"})),_8(t))},e2e={vgMark:"trail",encodeEntry:t=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Ac(t,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"})),Fl("x",t,{defaultPos:"mid"})),Fl("y",t,{defaultPos:"mid"})),nl("size",t)),_8(t))};function R8(t,n){const{config:e}=t;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Ac(t,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"})),Fl("x",t,{defaultPos:"mid"})),Fl("y",t,{defaultPos:"mid"})),nl("size",t)),nl("angle",t)),t2e(t,e,n))}function t2e(t,n,e){return e?{shape:{value:e}}:nl("shape",t)}const n2e={vgMark:"symbol",encodeEntry:t=>R8(t)},r2e={vgMark:"symbol",encodeEntry:t=>R8(t,"circle")},i2e={vgMark:"symbol",encodeEntry:t=>R8(t,"square")},a2e={vgMark:"rect",encodeEntry:t=>Object.assign(Object.assign(Object.assign({},Ac(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),sp(t,"x")),sp(t,"y"))},o2e={vgMark:"rule",encodeEntry:t=>{const{markDef:n}=t,e=n.orient;return!t.encoding.x&&!t.encoding.y&&!t.encoding.latitude&&!t.encoding.longitude?{}:Object.assign(Object.assign(Object.assign(Object.assign({},Ac(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),I2("x",t,{defaultPos:e==="horizontal"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:e!=="vertical"})),I2("y",t,{defaultPos:e==="vertical"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:e!=="horizontal"})),nl("size",t,{vgChannel:"strokeWidth"}))}},s2e={vgMark:"text",encodeEntry:t=>{const{config:n,encoding:e}=t;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Ac(t,{align:"include",baseline:"include",color:"include",size:"ignore",orient:"ignore",theta:"include"})),Fl("x",t,{defaultPos:"mid"})),Fl("y",t,{defaultPos:"mid"})),x8(t)),nl("size",t,{vgChannel:"fontSize"})),nl("angle",t)),LP("align",l2e(t.markDef,e,n))),LP("baseline",u2e(t.markDef,e,n))),Fl("radius",t,{defaultPos:null})),Fl("theta",t,{defaultPos:null}))}};function l2e(t,n,e){if(oo("align",t,e)===void 0)return"center"}function u2e(t,n,e){if(oo("baseline",t,e)===void 0)return"middle"}const c2e={vgMark:"rect",encodeEntry:t=>{const{config:n,markDef:e}=t,o=e.orient,f=o==="horizontal"?"width":"height",r=o==="horizontal"?"height":"width";return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Ac(t,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"})),Fl("x",t,{defaultPos:"mid",vgChannel:"xc"})),Fl("y",t,{defaultPos:"mid",vgChannel:"yc"})),nl("size",t,{defaultValue:f2e(t),vgChannel:f})),{[r]:Ho(oo("thickness",e,n))})}};function f2e(t){var n;const{config:e,markDef:o}=t,{orient:f}=o,r=f==="horizontal"?"width":"height",a=t.getScaleComponent(f==="horizontal"?"x":"y"),u=(n=oo("size",o,e,{vgChannel:r}))!==null&&n!==void 0?n:e.tick.bandSize;if(u!==void 0)return u;{const c=a?a.get("range"):void 0;return c&&wp(c)&&wo(c.step)?c.step*3/4:P2(e.view,r)*3/4}}const Cb={arc:Y_e,area:X_e,bar:Z_e,circle:r2e,geoshape:J_e,image:K_e,line:Q_e,point:n2e,rect:a2e,rule:o2e,square:i2e,text:s2e,tick:c2e,trail:e2e};function h2e(t){if(Fa([f3,u3,l1e],t.mark)){const n=HV(t.mark,t.encoding);if(n.length>0)return d2e(t,n)}else if(t.mark===c3){const n=NT.some(e=>oo(e,t.markDef,t.config));if(t.stack&&!t.fieldDef("size")&&n)return p2e(t)}return F8(t)}const JP="faceted_path_";function d2e(t,n){return[{name:t.getName("pathgroup"),type:"group",from:{facet:{name:JP+t.requestDataName(Fo.Main),data:t.requestDataName(Fo.Main),groupby:n}},encode:{update:{width:{field:{group:"width"}},height:{field:{group:"height"}}}},marks:F8(t,{fromPrefix:JP})}]}const KP="stack_group_";function p2e(t){var n;const[e]=F8(t,{fromPrefix:KP}),o=t.scaleName(t.stack.fieldChannel),f=(s={})=>t.vgField(t.stack.fieldChannel,s),r=(s,l)=>{const d=[f({prefix:"min",suffix:"start",expr:l}),f({prefix:"max",suffix:"start",expr:l}),f({prefix:"min",suffix:"end",expr:l}),f({prefix:"max",suffix:"end",expr:l})];return`${s}(${d.map(h=>`scale('${o}',${h})`).join(",")})`};let a,u;t.stack.fieldChannel==="x"?(a=Object.assign(Object.assign({},Am(e.encode.update,["y","yc","y2","height",...NT])),{x:{signal:r("min","datum")},x2:{signal:r("max","datum")},clip:{value:!0}}),u={x:{field:{group:"x"},mult:-1},height:{field:{group:"height"}}},e.encode.update=Object.assign(Object.assign({},Eu(e.encode.update,["y","yc","y2"])),{height:{field:{group:"height"}}})):(a=Object.assign(Object.assign({},Am(e.encode.update,["x","xc","x2","width"])),{y:{signal:r("min","datum")},y2:{signal:r("max","datum")},clip:{value:!0}}),u={y:{field:{group:"y"},mult:-1},width:{field:{group:"width"}}},e.encode.update=Object.assign(Object.assign({},Eu(e.encode.update,["x","xc","x2"])),{width:{field:{group:"width"}}}));for(const s of NT){const l=I0(s,t.markDef,t.config);e.encode.update[s]?(a[s]=e.encode.update[s],delete e.encode.update[s]):l&&(a[s]=Ho(l)),l&&(e.encode.update[s]={value:0})}const c=[];if(((n=t.stack.groupbyChannels)===null||n===void 0?void 0:n.length)>0)for(const s of t.stack.groupbyChannels){const l=t.fieldDef(s),d=hi(l);d&&c.push(d),(l?.bin||l?.timeUnit)&&c.push(hi(l,{binSuffix:"end"}))}return a=["stroke","strokeWidth","strokeJoin","strokeCap","strokeDash","strokeDashOffset","strokeMiterLimit","strokeOpacity"].reduce((s,l)=>{if(e.encode.update[l])return Object.assign(Object.assign({},s),{[l]:e.encode.update[l]});{const d=I0(l,t.markDef,t.config);return d!==void 0?Object.assign(Object.assign({},s),{[l]:Ho(d)}):s}},a),a.stroke&&(a.strokeForeground={value:!0},a.strokeOffset={value:0}),[{type:"group",from:{facet:{data:t.requestDataName(Fo.Main),name:KP+t.requestDataName(Fo.Main),groupby:c,aggregate:{fields:[f({suffix:"start"}),f({suffix:"start"}),f({suffix:"end"}),f({suffix:"end"})],ops:["min","max","min","max"]}}},encode:{update:a},marks:[{type:"group",encode:{update:u},marks:[e]}]}]}function g2e(t){var n;const{encoding:e,stack:o,mark:f,markDef:r,config:a}=t,u=e.order;if(!(!Ir(u)&&pf(u)&&RT(u.value)||!u&&RT(oo("order",r,a)))){if((Ir(u)||ti(u))&&!o)return $U(u,{expr:"datum"});if(kp(f)){const c=r.orient==="horizontal"?"y":"x",i=e[c];if(ti(i)){const s=i.sort;if(Ir(s))return{field:hi(i,{prefix:c,suffix:"sort_index",expr:"datum"})};if(Wf(s))return{field:hi({aggregate:i8(t.encoding)?s.op:void 0,field:s.field},{expr:"datum"})};if(SV(s)){const l=t.fieldDef(s.encoding);return{field:hi(l,{expr:"datum"}),order:s.order}}else return s===null?void 0:{field:hi(i,{binSuffix:!((n=t.stack)===null||n===void 0)&&n.impute?"mid":void 0,expr:"datum"})}}return}}}function F8(t,n={fromPrefix:""}){const{mark:e,markDef:o,encoding:f,config:r}=t,a=Rs(o.clip,m2e(t),v2e(t)),u=qU(o),c=f.key,i=g2e(t),s=y2e(t),l=oo("aria",o,r),d=Cb[e].postEncodingTransform?Cb[e].postEncodingTransform(t):null;return[Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:t.getName("marks"),type:Cb[e].vgMark},a?{clip:!0}:{}),u?{style:u}:{}),c?{key:c.field}:{}),i?{sort:i}:{}),s||{}),l===!1?{aria:l}:{}),{from:{data:n.fromPrefix+t.requestDataName(Fo.Main)},encode:{update:Cb[e].encodeEntry(t)}}),d?{transform:d}:{})]}function m2e(t){const n=t.getScaleComponent("x"),e=t.getScaleComponent("y");return n?.get("selectionExtent")||e?.get("selectionExtent")?!0:void 0}function v2e(t){const n=t.component.projection;return n&&!n.isFit?!0:void 0}function y2e(t){if(!t.component.selection)return null;const n=Xr(t.component.selection).length;let e=n,o=t.parent;for(;o&&e===0;)e=Xr(o.component.selection).length,o=o.parent;return e?{interactive:n>0||!!t.encoding.tooltip}:null}class LH extends MH{constructor(n,e,o,f={},r){var a;super(n,"unit",e,o,r,void 0,pP(n)?n.view:void 0),this.specifiedScales={},this.specifiedAxes={},this.specifiedLegends={},this.specifiedProjection={},this.selection=[],this.children=[];const u=eh(n.mark)?Object.assign({},n.mark):{type:n.mark},c=u.type;u.filled===void 0&&(u.filled=G_e(u,r,{graticule:n.data&&v8(n.data)}));const i=this.encoding=Y1e(n.encoding||{},c,u.filled,r);this.markDef=q_e(u,i,r),this.size=V_e({encoding:i,size:pP(n)?Object.assign(Object.assign(Object.assign({},f),n.width?{width:n.width}:{}),n.height?{height:n.height}:{}):f}),this.stack=fq(c,i),this.specifiedScales=this.initScales(c,i),this.specifiedAxes=this.initAxes(i),this.specifiedLegends=this.initLegends(i),this.specifiedProjection=n.projection,this.selection=((a=n.params)!==null&&a!==void 0?a:[]).filter(s=>h8(s))}get hasProjection(){const{encoding:n}=this,e=this.mark===yV,o=n&&H0e.some(f=>la(n[f]));return e||o}scaleDomain(n){const e=this.specifiedScales[n];return e?e.domain:void 0}axis(n){return this.specifiedAxes[n]}legend(n){return this.specifiedLegends[n]}initScales(n,e){return o3.reduce((o,f)=>{var r;const a=Ws(e[f]);return a&&(o[f]=this.initScale((r=a.scale)!==null&&r!==void 0?r:{})),o},{})}initScale(n){const{domain:e,range:o}=n,f=Tu(n);return Ir(e)&&(f.domain=e.map(Xu)),Ir(o)&&(f.range=o.map(Xu)),f}initAxes(n){return gh.reduce((e,o)=>{const f=n[o];if(la(f)||o===cs&&la(n.x2)||o===ol&&la(n.y2)){const r=la(f)?f.axis:void 0;e[o]=r&&this.initAxis(Object.assign({},r))}return e},{})}initAxis(n){const e=Xr(n),o={};for(const f of e){const r=n[f];o[f]=cx(r)?VU(r):Xu(r)}return o}initLegends(n){return ege.reduce((e,o)=>{const f=Ws(n[o]);if(f&&nge(o)){const r=f.legend;e[o]=r&&Tu(r)}return e},{})}parseData(){this.component.data=F3(this)}parseLayoutSize(){A_e(this)}parseSelections(){this.component.selection=uxe(this,this.selection)}parseMarkGroup(){this.component.mark=h2e(this)}parseAxesAndHeaders(){this.component.axes=I_e(this)}assembleSelectionTopLevelSignals(n){return Oye(this,n)}assembleSignals(){return[...Gq(this),...Eye(this,[])]}assembleSelectionData(n){return Lye(this,n)}assembleLayout(){return null}assembleLayoutSignals(){return A8(this)}assembleMarks(){var n;let e=(n=this.component.mark)!==null&&n!==void 0?n:[];return(!this.parent||!s1(this.parent))&&(e=Aq(this,e)),e.map(this.correctDataNames)}assembleGroupStyle(){const{style:n}=this.view||{};if(n!==void 0)return n;if(this.encoding.x||this.encoding.y)return"cell"}getMapping(){return this.encoding}get mark(){return this.markDef.type}channelHasField(n){return y0(this.encoding,n)}fieldDef(n){const e=this.encoding[n];return th(e)}typedFieldDef(n){const e=this.fieldDef(n);return wc(e)?e:null}}class N8 extends D8{constructor(n,e,o,f,r){super(n,"layer",e,o,r,n.resolve,n.view);const a=Object.assign(Object.assign(Object.assign({},f),n.width?{width:n.width}:{}),n.height?{height:n.height}:{});this.children=n.layer.map((u,c)=>{if(w3(u))return new N8(u,this,this.getName(`layer_${c}`),a,r);if(id(u))return new LH(u,this,this.getName(`layer_${c}`),a,r);throw new Error(OE(u))})}parseData(){this.component.data=F3(this);for(const n of this.children)n.parseData()}parseLayoutSize(){k_e(this)}parseSelections(){this.component.selection={};for(const n of this.children){n.parseSelections();for(const e of Xr(n.component.selection))this.component.selection[e]=n.component.selection[e]}}parseMarkGroup(){for(const n of this.children)n.parseMarkGroup()}parseAxesAndHeaders(){R_e(this)}assembleSelectionTopLevelSignals(n){return this.children.reduce((e,o)=>o.assembleSelectionTopLevelSignals(e),n)}assembleSignals(){return this.children.reduce((n,e)=>n.concat(e.assembleSignals()),Gq(this))}assembleLayoutSignals(){return this.children.reduce((n,e)=>n.concat(e.assembleLayoutSignals()),A8(this))}assembleSelectionData(n){return this.children.reduce((e,o)=>o.assembleSelectionData(e),n)}assembleGroupStyle(){const n=new Set;for(const o of this.children)for(const f of ki(o.assembleGroupStyle()))n.add(f);const e=Array.from(n);return e.length>1?e:e.length===1?e[0]:void 0}assembleTitle(){let n=super.assembleTitle();if(n)return n;for(const e of this.children)if(n=e.assembleTitle(),n)return n}assembleLayout(){return null}assembleMarks(){return Pye(this,this.children.flatMap(n=>n.assembleMarks()))}assembleLegends(){return this.children.reduce((n,e)=>n.concat(e.assembleLegends()),uH(this))}}function B8(t,n,e,o,f){if(p3(t))return new jv(t,n,e,f);if(w3(t))return new N8(t,n,e,o,f);if(id(t))return new LH(t,n,e,o,f);if(xve(t))return new O_e(t,n,e,f);throw new Error(OE(t))}var x2e=globalThis&&globalThis.__rest||function(t,n){var e={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&n.indexOf(o)<0&&(e[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var f=0,o=Object.getOwnPropertySymbols(t);f(h.name==="width"||h.name==="height")&&h.value!==void 0?(n[h.name]=+h.value,!1):!0);const{params:l}=n,d=x2e(n,["params"]);return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({$schema:"https://vega.github.io/schema/vega/v5.json"},t.description?{description:t.description}:{}),d),u?{title:u}:{}),c?{style:c}:{}),i?{encode:{update:i}}:{}),{data:r}),a.length>0?{projections:a}:{}),t.assembleGroup([...s,...t.assembleSelectionTopLevelSignals([]),...oq(l)])),f?{config:f}:{}),o?{usermeta:o}:{})}const k2e=z0e.version;var T2e=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",version:k2e,compile:b2e,normalize:bq,deepEqual:Uf,duplicate:ha,never:bU,pick:Am,omit:Eu,stringify:No,hash:Ba,isNullOrFalse:RT,contains:Fa,some:L0,every:vE,mergeDeep:_U,unique:Vf,isEqual:N0e,setEqual:wU,hasIntersection:yE,prefixGenerator:FT,fieldIntersection:xE,isEmpty:_o,keys:Xr,vals:ql,entries:rp,isBoolean:fy,varName:Xo,logicalExpr:Nv,deleteNestedProperty:k2,titleCase:Qy,accessPathWithDatum:bE,flatAccessWithDatum:kU,replacePathInField:bc,replaceAll:P0,removePathFromField:_E,accessPathDepth:Mm,getFirstDefined:Rs,uniqueId:AU,resetIdCounter:j0e,internalField:MU,isInternalField:SU,normalizeAngle:hy,isNumeric:Qw});function PH(t){const[n,e]=/schema\/([\w-]+)\/([\w\.\-]+)\.json$/g.exec(t).slice(1,3);return{library:n,version:e}}var A2e="vega-themes",M2e="2.10.0",S2e="Themes for stylized Vega and Vega-Lite visualizations.",E2e=["vega","vega-lite","themes","style"],C2e="BSD-3-Clause",O2e={name:"UW Interactive Data Lab",url:"https://idl.cs.washington.edu"},L2e=[{name:"Emily Gu",url:"https://github.com/emilygu"},{name:"Arvind Satyanarayan",url:"http://arvindsatya.com"},{name:"Jeffrey Heer",url:"https://idl.cs.washington.edu"},{name:"Dominik Moritz",url:"https://www.domoritz.de"}],P2e="build/vega-themes.js",D2e="build/vega-themes.module.js",I2e="build/vega-themes.min.js",z2e="build/vega-themes.min.js",R2e="build/vega-themes.module.d.ts",F2e={type:"git",url:"https://github.com/vega/vega-themes.git"},N2e=["src","build"],B2e={prebuild:"yarn clean",build:"rollup -c",clean:"rimraf build && rimraf examples/build","copy:data":"rsync -r node_modules/vega-datasets/data/* examples/data","copy:build":"rsync -r build/* examples/build","deploy:gh":"yarn build && mkdir -p examples/build && rsync -r build/* examples/build && gh-pages -d examples",preversion:"yarn lint",serve:"browser-sync start -s -f build examples --serveStatic examples",start:"yarn build && concurrently --kill-others -n Server,Rollup 'yarn serve' 'rollup -c -w'",prepare:"beemo create-config",eslintbase:"beemo eslint .",format:"yarn eslintbase --fix",lint:"yarn eslintbase",release:"auto shipit"},j2e={"@auto-it/conventional-commits":"^10.32.2","@auto-it/first-time-contributor":"^10.32.2","@rollup/plugin-json":"^4.1.0","@rollup/plugin-node-resolve":"^13.0.6","rollup-plugin-ts":"^1.4.7",auto:"^10.32.2","browser-sync":"^2.27.7",concurrently:"^6.4.0","gh-pages":"^3.2.3",rollup:"^2.60.0","rollup-plugin-bundle-size":"^1.0.3","rollup-plugin-terser":"^7.0.2",typescript:"^4.4.4",vega:"^5.19.1","vega-lite":"^5.0.0","vega-lite-dev-config":"^0.20.0"},U2e={vega:"*","vega-lite":"*"},V2e={name:A2e,version:M2e,description:S2e,keywords:E2e,license:C2e,author:O2e,contributors:L2e,main:P2e,module:D2e,unpkg:I2e,jsdelivr:z2e,types:R2e,repository:F2e,files:N2e,scripts:B2e,devDependencies:j2e,peerDependencies:U2e};const Ug="#fff",q2e="#888",H2e={background:"#333",title:{color:Ug,subtitleColor:Ug},style:{"guide-label":{fill:Ug},"guide-title":{fill:Ug}},axis:{domainColor:Ug,gridColor:q2e,tickColor:Ug}},Vp="#4572a7",$2e={background:"#fff",arc:{fill:Vp},area:{fill:Vp},line:{stroke:Vp,strokeWidth:2},path:{stroke:Vp},rect:{fill:Vp},shape:{stroke:Vp},symbol:{fill:Vp,strokeWidth:1.5,size:50},axis:{bandPosition:.5,grid:!0,gridColor:"#000000",gridOpacity:1,gridWidth:.5,labelPadding:10,tickSize:5,tickWidth:.5},axisBand:{grid:!1,tickExtra:!0},legend:{labelBaseline:"middle",labelFontSize:11,symbolSize:50,symbolType:"square"},range:{category:["#4572a7","#aa4643","#8aa453","#71598e","#4598ae","#d98445","#94aace","#d09393","#b9cc98","#a99cbc"]}},qp="#30a2da",B4="#cbcbcb",G2e="#999",W2e="#333",QP="#f0f0f0",eD="#333",Y2e={arc:{fill:qp},area:{fill:qp},axis:{domainColor:B4,grid:!0,gridColor:B4,gridWidth:1,labelColor:G2e,labelFontSize:10,titleColor:W2e,tickColor:B4,tickSize:10,titleFontSize:14,titlePadding:10,labelPadding:4},axisBand:{grid:!1},background:QP,group:{fill:QP},legend:{labelColor:eD,labelFontSize:11,padding:1,symbolSize:30,symbolType:"square",titleColor:eD,titleFontSize:14,titlePadding:10},line:{stroke:qp,strokeWidth:2},path:{stroke:qp,strokeWidth:.5},rect:{fill:qp},range:{category:["#30a2da","#fc4f30","#e5ae38","#6d904f","#8b8b8b","#b96db8","#ff9e27","#56cc60","#52d2ca","#52689e","#545454","#9fe4f8"],diverging:["#cc0020","#e77866","#f6e7e1","#d6e8ed","#91bfd9","#1d78b5"],heatmap:["#d6e8ed","#cee0e5","#91bfd9","#549cc6","#1d78b5"]},point:{filled:!0,shape:"circle"},shape:{stroke:qp},bar:{binSpacing:2,fill:qp,stroke:null},title:{anchor:"start",fontSize:24,fontWeight:600,offset:20}},Hp="#000",X2e={group:{fill:"#e5e5e5"},arc:{fill:Hp},area:{fill:Hp},line:{stroke:Hp},path:{stroke:Hp},rect:{fill:Hp},shape:{stroke:Hp},symbol:{fill:Hp,size:40},axis:{domain:!1,grid:!0,gridColor:"#FFFFFF",gridOpacity:1,labelColor:"#7F7F7F",labelPadding:4,tickColor:"#7F7F7F",tickSize:5.67,titleFontSize:16,titleFontWeight:"normal"},legend:{labelBaseline:"middle",labelFontSize:11,symbolSize:40},range:{category:["#000000","#7F7F7F","#1A1A1A","#999999","#333333","#B0B0B0","#4D4D4D","#C9C9C9","#666666","#DCDCDC"]}},Z2e=22,J2e="normal",tD="Benton Gothic, sans-serif",nD=11.5,K2e="normal",$p="#82c6df",j4="Benton Gothic Bold, sans-serif",rD="normal",iD=13,Q1={"category-6":["#ec8431","#829eb1","#c89d29","#3580b1","#adc839","#ab7fb4"],"fire-7":["#fbf2c7","#f9e39c","#f8d36e","#f4bb6a","#e68a4f","#d15a40","#ab4232"],"fireandice-6":["#e68a4f","#f4bb6a","#f9e39c","#dadfe2","#a6b7c6","#849eae"],"ice-7":["#edefee","#dadfe2","#c4ccd2","#a6b7c6","#849eae","#607785","#47525d"]},Q2e={background:"#ffffff",title:{anchor:"start",color:"#000000",font:j4,fontSize:Z2e,fontWeight:J2e},arc:{fill:$p},area:{fill:$p},line:{stroke:$p,strokeWidth:2},path:{stroke:$p},rect:{fill:$p},shape:{stroke:$p},symbol:{fill:$p,size:30},axis:{labelFont:tD,labelFontSize:nD,labelFontWeight:K2e,titleFont:j4,titleFontSize:iD,titleFontWeight:rD},axisX:{labelAngle:0,labelPadding:4,tickSize:3},axisY:{labelBaseline:"middle",maxExtent:45,minExtent:45,tickSize:2,titleAlign:"left",titleAngle:0,titleX:-45,titleY:-11},legend:{labelFont:tD,labelFontSize:nD,symbolType:"square",titleFont:j4,titleFontSize:iD,titleFontWeight:rD},range:{category:Q1["category-6"],diverging:Q1["fireandice-6"],heatmap:Q1["fire-7"],ordinal:Q1["fire-7"],ramp:Q1["fire-7"]}},Gp="#ab5787",Ob="#979797",ewe={background:"#f9f9f9",arc:{fill:Gp},area:{fill:Gp},line:{stroke:Gp},path:{stroke:Gp},rect:{fill:Gp},shape:{stroke:Gp},symbol:{fill:Gp,size:30},axis:{domainColor:Ob,domainWidth:.5,gridWidth:.2,labelColor:Ob,tickColor:Ob,tickWidth:.2,titleColor:Ob},axisBand:{grid:!1},axisX:{grid:!0,tickSize:10},axisY:{domain:!1,grid:!0,tickSize:0},legend:{labelFontSize:11,padding:1,symbolSize:30,symbolType:"square"},range:{category:["#ab5787","#51b2e5","#703c5c","#168dd9","#d190b6","#00609f","#d365ba","#154866","#666666","#c4c4c4"]}},Wp="#3e5c69",twe={background:"#fff",arc:{fill:Wp},area:{fill:Wp},line:{stroke:Wp},path:{stroke:Wp},rect:{fill:Wp},shape:{stroke:Wp},symbol:{fill:Wp},axis:{domainWidth:.5,grid:!0,labelPadding:2,tickSize:5,tickWidth:.5,titleFontWeight:"normal"},axisBand:{grid:!1},axisX:{gridWidth:.2},axisY:{gridDash:[3],gridWidth:.4},legend:{labelFontSize:11,padding:1,symbolType:"square"},range:{category:["#3e5c69","#6793a6","#182429","#0570b0","#3690c0","#74a9cf","#a6bddb","#e2ddf2"]}},uc="#1696d2",aD="#000000",nwe="#FFFFFF",Lb="Lato",U4="Lato",rwe="Lato",iwe="#DEDDDD",awe=18,ev={"main-colors":["#1696d2","#d2d2d2","#000000","#fdbf11","#ec008b","#55b748","#5c5859","#db2b27"],"shades-blue":["#CFE8F3","#A2D4EC","#73BFE2","#46ABDB","#1696D2","#12719E","#0A4C6A","#062635"],"shades-gray":["#F5F5F5","#ECECEC","#E3E3E3","#DCDBDB","#D2D2D2","#9D9D9D","#696969","#353535"],"shades-yellow":["#FFF2CF","#FCE39E","#FDD870","#FCCB41","#FDBF11","#E88E2D","#CA5800","#843215"],"shades-magenta":["#F5CBDF","#EB99C2","#E46AA7","#E54096","#EC008B","#AF1F6B","#761548","#351123"],"shades-green":["#DCEDD9","#BCDEB4","#98CF90","#78C26D","#55B748","#408941","#2C5C2D","#1A2E19"],"shades-black":["#D5D5D4","#ADABAC","#848081","#5C5859","#332D2F","#262223","#1A1717","#0E0C0D"],"shades-red":["#F8D5D4","#F1AAA9","#E9807D","#E25552","#DB2B27","#A4201D","#6E1614","#370B0A"],"one-group":["#1696d2","#000000"],"two-groups-cat-1":["#1696d2","#000000"],"two-groups-cat-2":["#1696d2","#fdbf11"],"two-groups-cat-3":["#1696d2","#db2b27"],"two-groups-seq":["#a2d4ec","#1696d2"],"three-groups-cat":["#1696d2","#fdbf11","#000000"],"three-groups-seq":["#a2d4ec","#1696d2","#0a4c6a"],"four-groups-cat-1":["#000000","#d2d2d2","#fdbf11","#1696d2"],"four-groups-cat-2":["#1696d2","#ec0008b","#fdbf11","#5c5859"],"four-groups-seq":["#cfe8f3","#73bf42","#1696d2","#0a4c6a"],"five-groups-cat-1":["#1696d2","#fdbf11","#d2d2d2","#ec008b","#000000"],"five-groups-cat-2":["#1696d2","#0a4c6a","#d2d2d2","#fdbf11","#332d2f"],"five-groups-seq":["#cfe8f3","#73bf42","#1696d2","#0a4c6a","#000000"],"six-groups-cat-1":["#1696d2","#ec008b","#fdbf11","#000000","#d2d2d2","#55b748"],"six-groups-cat-2":["#1696d2","#d2d2d2","#ec008b","#fdbf11","#332d2f","#0a4c6a"],"six-groups-seq":["#cfe8f3","#a2d4ec","#73bfe2","#46abdb","#1696d2","#12719e"],"diverging-colors":["#ca5800","#fdbf11","#fdd870","#fff2cf","#cfe8f3","#73bfe2","#1696d2","#0a4c6a"]},owe={background:nwe,title:{anchor:"start",fontSize:awe,font:Lb},axisX:{domain:!0,domainColor:aD,domainWidth:1,grid:!1,labelFontSize:12,labelFont:U4,labelAngle:0,tickColor:aD,tickSize:5,titleFontSize:12,titlePadding:10,titleFont:Lb},axisY:{domain:!1,domainWidth:1,grid:!0,gridColor:iwe,gridWidth:1,labelFontSize:12,labelFont:U4,labelPadding:8,ticks:!1,titleFontSize:12,titlePadding:10,titleFont:Lb,titleAngle:0,titleY:-10,titleX:18},legend:{labelFontSize:12,labelFont:U4,symbolSize:100,titleFontSize:12,titlePadding:10,titleFont:Lb,orient:"right",offset:10},view:{stroke:"transparent"},range:{category:ev["six-groups-cat-1"],diverging:ev["diverging-colors"],heatmap:ev["diverging-colors"],ordinal:ev["six-groups-seq"],ramp:ev["shades-blue"]},area:{fill:uc},rect:{fill:uc},line:{color:uc,stroke:uc,strokeWidth:5},trail:{color:uc,stroke:uc,strokeWidth:0,size:1},path:{stroke:uc,strokeWidth:.5},point:{filled:!0},text:{font:rwe,color:uc,fontSize:11,align:"center",fontWeight:400,size:11},style:{bar:{fill:uc,stroke:null}},arc:{fill:uc},shape:{stroke:uc},symbol:{fill:uc,size:30}},Yp="#3366CC",oD="#ccc",Pb="Arial, sans-serif",swe={arc:{fill:Yp},area:{fill:Yp},path:{stroke:Yp},rect:{fill:Yp},shape:{stroke:Yp},symbol:{stroke:Yp},circle:{fill:Yp},background:"#fff",padding:{top:10,right:10,bottom:10,left:10},style:{"guide-label":{font:Pb,fontSize:12},"guide-title":{font:Pb,fontSize:12},"group-title":{font:Pb,fontSize:12}},title:{font:Pb,fontSize:14,fontWeight:"bold",dy:-3,anchor:"start"},axis:{gridColor:oD,tickColor:oD,domain:!1,grid:!0},range:{category:["#4285F4","#DB4437","#F4B400","#0F9D58","#AB47BC","#00ACC1","#FF7043","#9E9D24","#5C6BC0","#F06292","#00796B","#C2185B"],heatmap:["#c6dafc","#5e97f6","#2a56c6"]}},j8=t=>t*(1/3+1),sD=j8(9),lD=j8(10),uD=j8(12),tv="Segoe UI",cD="wf_standard-font, helvetica, arial, sans-serif",fD="#252423",nv="#605E5C",hD="transparent",lwe="#C8C6C4",qc="#118DFF",uwe="#12239E",cwe="#E66C37",fwe="#6B007B",hwe="#E044A7",dwe="#744EC2",pwe="#D9B300",gwe="#D64550",DH=qc,IH="#DEEFFF",dD=[IH,DH],mwe=[IH,"#c7e4ff","#b0d9ff","#9aceff","#83c3ff","#6cb9ff","#55aeff","#3fa3ff","#2898ff",DH],vwe={view:{stroke:hD},background:hD,font:tv,header:{titleFont:cD,titleFontSize:uD,titleColor:fD,labelFont:tv,labelFontSize:lD,labelColor:nv},axis:{ticks:!1,grid:!1,domain:!1,labelColor:nv,labelFontSize:sD,titleFont:cD,titleColor:fD,titleFontSize:uD,titleFontWeight:"normal"},axisQuantitative:{tickCount:3,grid:!0,gridColor:lwe,gridDash:[1,5],labelFlush:!1},axisBand:{tickExtra:!0},axisX:{labelPadding:5},axisY:{labelPadding:10},bar:{fill:qc},line:{stroke:qc,strokeWidth:3,strokeCap:"round",strokeJoin:"round"},text:{font:tv,fontSize:sD,fill:nv},arc:{fill:qc},area:{fill:qc,line:!0,opacity:.6},path:{stroke:qc},rect:{fill:qc},point:{fill:qc,filled:!0,size:75},shape:{stroke:qc},symbol:{fill:qc,strokeWidth:1.5,size:50},legend:{titleFont:tv,titleFontWeight:"bold",titleColor:nv,labelFont:tv,labelFontSize:lD,labelColor:nv,symbolType:"circle",symbolSize:75},range:{category:[qc,uwe,cwe,fwe,hwe,dwe,pwe,gwe],diverging:dD,heatmap:dD,ordinal:mwe}},ywe=V2e.version;var xwe=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",dark:H2e,excel:$2e,fivethirtyeight:Y2e,ggplot2:X2e,googlecharts:swe,latimes:Q2e,powerbi:vwe,quartz:ewe,urbaninstitute:owe,version:ywe,vox:twe});/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */function bwe(t,n){var e={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&n.indexOf(o)<0&&(e[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var f=0,o=Object.getOwnPropertySymbols(t);fn(bi(o)?o:pD(o,e))).join(", ")}]`;if(Ei(t)){let o="";const f=t,{title:r,image:a}=f,u=bwe(f,["title","image"]);r&&(o+=`

    ${n(r)}

    `),a&&(o+=``);const c=Object.keys(u);if(c.length>0){o+="";for(const i of c){let s=u[i];s!==void 0&&(Ei(s)&&(s=pD(s,e)),o+=``)}o+="
    ${n(i)}:${n(s)}
    "}return o||"{}"}return n(t)}function wwe(t){const n=[];return function(e,o){if(typeof o!="object"||o===null)return o;const f=n.indexOf(this)+1;return n.length=f,n.length>t?"[Object]":n.indexOf(o)>=0?"[Circular]":(n.push(o),o)}}function pD(t,n){return JSON.stringify(t,wwe(n))}var kwe=`#vg-tooltip-element { + visibility: hidden; + padding: 8px; + position: fixed; + z-index: 1000; + font-family: sans-serif; + font-size: 11px; + border-radius: 3px; + box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1); + /* The default theme is the light theme. */ + background-color: rgba(255, 255, 255, 0.95); + border: 1px solid #d9d9d9; + color: black; +} +#vg-tooltip-element.visible { + visibility: visible; +} +#vg-tooltip-element h2 { + margin-top: 0; + margin-bottom: 10px; + font-size: 13px; +} +#vg-tooltip-element img { + max-width: 200px; + max-height: 200px; +} +#vg-tooltip-element table { + border-spacing: 0; +} +#vg-tooltip-element table tr { + border: none; +} +#vg-tooltip-element table tr td { + overflow: hidden; + text-overflow: ellipsis; + padding-top: 2px; + padding-bottom: 2px; +} +#vg-tooltip-element table tr td.key { + color: #808080; + max-width: 150px; + text-align: right; + padding-right: 4px; +} +#vg-tooltip-element table tr td.value { + display: block; + max-width: 300px; + max-height: 7em; + text-align: left; +} +#vg-tooltip-element.dark-theme { + background-color: rgba(32, 32, 32, 0.9); + border: 1px solid #f5f5f5; + color: white; +} +#vg-tooltip-element.dark-theme td.key { + color: #bfbfbf; +} +`;const zH="vg-tooltip-element",Twe={offsetX:10,offsetY:10,id:zH,styleId:"vega-tooltip-style",theme:"light",disableDefaultStyle:!1,sanitize:Awe,maxDepth:2,formatTooltip:_we};function Awe(t){return String(t).replace(/&/g,"&").replace(/window.innerWidth&&(f=+t.clientX-e-n.width);let r=t.clientY+o;return r+n.height>window.innerHeight&&(r=+t.clientY-o-n.height),{x:f,y:r}}class Ewe{constructor(n){this.options=Object.assign(Object.assign({},Twe),n);const e=this.options.id;if(this.el=null,this.call=this.tooltipHandler.bind(this),!this.options.disableDefaultStyle&&!document.getElementById(this.options.styleId)){const o=document.createElement("style");o.setAttribute("id",this.options.styleId),o.innerHTML=Mwe(e);const f=document.head;f.childNodes.length>0?f.insertBefore(o,f.childNodes[0]):f.appendChild(o)}}tooltipHandler(n,e,o,f){var r;if(this.el=document.getElementById(this.options.id),this.el||(this.el=document.createElement("div"),this.el.setAttribute("id",this.options.id),this.el.classList.add("vg-tooltip"),((r=document.fullscreenElement)!==null&&r!==void 0?r:document.body).appendChild(this.el)),f==null||f===""){this.el.classList.remove("visible",`${this.options.theme}-theme`);return}this.el.innerHTML=this.options.formatTooltip(f,this.options.sanitize,this.options.maxDepth),this.el.classList.add("visible",`${this.options.theme}-theme`);const{x:a,y:u}=Swe(e,this.el.getBoundingClientRect(),this.options.offsetX,this.options.offsetY);this.el.setAttribute("style",`top: ${u}px; left: ${a}px`)}}function Cwe(t,n,e){return n in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}function gD(t,n,e,o,f,r,a){try{var u=t[r](a),c=u.value}catch(i){e(i);return}u.done?n(c):Promise.resolve(c).then(o,f)}function N2(t){return function(){var n=this,e=arguments;return new Promise(function(o,f){var r=t.apply(n,e);function a(c){gD(r,o,f,a,u,"next",c)}function u(c){gD(r,o,f,a,u,"throw",c)}a(void 0)})}}var RH=Object.prototype,s0=RH.hasOwnProperty,jf,U8=typeof Symbol=="function"?Symbol:{},N3=U8.iterator||"@@iterator",Owe=U8.asyncIterator||"@@asyncIterator",B2=U8.toStringTag||"@@toStringTag";function FH(t,n,e,o){var f=n&&n.prototype instanceof cA?n:cA,r=Object.create(f.prototype),a=new fA(o||[]);return r._invoke=zwe(t,e,a),r}function V8(t,n,e){try{return{type:"normal",arg:t.call(n,e)}}catch(o){return{type:"throw",arg:o}}}var mD="suspendedStart",Lwe="suspendedYield",vD="executing",Db="completed",Kc={};function cA(){}function B3(){}function Nm(){}var q8={};q8[N3]=function(){return this};var V4=Object.getPrototypeOf,Ib=V4&&V4(V4(H8([])));Ib&&Ib!==RH&&s0.call(Ib,N3)&&(q8=Ib);var l1=Nm.prototype=cA.prototype=Object.create(q8);B3.prototype=l1.constructor=Nm;Nm.constructor=B3;Nm[B2]=B3.displayName="GeneratorFunction";function NH(t){["next","throw","return"].forEach(function(n){t[n]=function(e){return this._invoke(n,e)}})}function BH(t){var n=typeof t=="function"&&t.constructor;return n?n===B3||(n.displayName||n.name)==="GeneratorFunction":!1}function Pwe(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,Nm):(t.__proto__=Nm,B2 in t||(t[B2]="GeneratorFunction")),t.prototype=Object.create(l1),t}function Dwe(t){return{__await:t}}function j3(t,n){function e(r,a,u,c){var i=V8(t[r],t,a);if(i.type==="throw")c(i.arg);else{var s=i.arg,l=s.value;return l&&typeof l=="object"&&s0.call(l,"__await")?n.resolve(l.__await).then(function(d){e("next",d,u,c)},function(d){e("throw",d,u,c)}):n.resolve(l).then(function(d){s.value=d,u(s)},function(d){return e("throw",d,u,c)})}}var o;function f(r,a){function u(){return new n(function(c,i){e(r,a,c,i)})}return o=o?o.then(u,u):u()}this._invoke=f}NH(j3.prototype);j3.prototype[Owe]=function(){return this};function Iwe(t,n,e,o,f){f===void 0&&(f=Promise);var r=new j3(FH(t,n,e,o),f);return BH(n)?r:r.next().then(function(a){return a.done?a.value:r.next()})}function zwe(t,n,e){var o=mD;return function(r,a){if(o===vD)throw new Error("Generator is already running");if(o===Db){if(r==="throw")throw a;return UH()}for(e.method=r,e.arg=a;;){var u=e.delegate;if(u){var c=jH(u,e);if(c){if(c===Kc)continue;return c}}if(e.method==="next")e.sent=e._sent=e.arg;else if(e.method==="throw"){if(o===mD)throw o=Db,e.arg;e.dispatchException(e.arg)}else e.method==="return"&&e.abrupt("return",e.arg);o=vD;var i=V8(t,n,e);if(i.type==="normal"){if(o=e.done?Db:Lwe,i.arg===Kc)continue;return{value:i.arg,done:e.done}}else i.type==="throw"&&(o=Db,e.method="throw",e.arg=i.arg)}}}function jH(t,n){var e=t.iterator[n.method];if(e===jf){if(n.delegate=null,n.method==="throw"){if(t.iterator.return&&(n.method="return",n.arg=jf,jH(t,n),n.method==="throw"))return Kc;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return Kc}var o=V8(e,t.iterator,n.arg);if(o.type==="throw")return n.method="throw",n.arg=o.arg,n.delegate=null,Kc;var f=o.arg;if(!f)return n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,Kc;if(f.done)n[t.resultName]=f.value,n.next=t.nextLoc,n.method!=="return"&&(n.method="next",n.arg=jf);else return f;return n.delegate=null,Kc}NH(l1);l1[B2]="Generator";l1[N3]=function(){return this};l1.toString=function(){return"[object Generator]"};function Rwe(t){var n={tryLoc:t[0]};1 in t&&(n.catchLoc=t[1]),2 in t&&(n.finallyLoc=t[2],n.afterLoc=t[3]),this.tryEntries.push(n)}function q4(t){var n=t.completion||{};n.type="normal",delete n.arg,t.completion=n}function fA(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(Rwe,this),this.reset(!0)}function Fwe(t){var n=[];for(var e in t)n.push(e);return n.reverse(),function o(){for(;n.length;){var f=n.pop();if(f in t)return o.value=f,o.done=!1,o}return o.done=!0,o}}function H8(t){if(t){var n=t[N3];if(n)return n.call(t);if(typeof t.next=="function")return t;if(!isNaN(t.length)){var e=-1,o=function f(){for(;++e=0;--f){var r=this.tryEntries[f],a=r.completion;if(r.tryLoc==="root")return o("end");if(r.tryLoc<=this.prev){var u=s0.call(r,"catchLoc"),c=s0.call(r,"finallyLoc");if(u&&c){if(this.prev=0;--o){var f=this.tryEntries[o];if(f.tryLoc<=this.prev&&s0.call(f,"finallyLoc")&&this.prev=0;--e){var o=this.tryEntries[e];if(o.finallyLoc===n)return this.complete(o.completion,o.afterLoc),q4(o),Kc}},catch:function(n){for(var e=this.tryEntries.length-1;e>=0;--e){var o=this.tryEntries[e];if(o.tryLoc===n){var f=o.completion;if(f.type==="throw"){var r=f.arg;q4(o)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(n,e,o){return this.delegate={iterator:H8(n),resultName:e,nextLoc:o},this.method==="next"&&(this.arg=jf),Kc}};var Hf={wrap:FH,isGeneratorFunction:BH,AsyncIterator:j3,mark:Pwe,awrap:Dwe,async:Iwe,keys:Fwe,values:H8},Nwe=Za;Za.Node=U0;Za.create=Za;function Za(t){var n=this;if(n instanceof Za||(n=new Za),n.tail=null,n.head=null,n.length=0,t&&typeof t.forEach=="function")t.forEach(function(f){n.push(f)});else if(arguments.length>0)for(var e=0,o=arguments.length;e1)e=n;else if(this.head)o=this.head.next,e=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var f=0;o!==null;f++)e=t(e,o.value,f),o=o.next;return e};Za.prototype.reduceReverse=function(t,n){var e,o=this.tail;if(arguments.length>1)e=n;else if(this.tail)o=this.tail.prev,e=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var f=this.length-1;o!==null;f--)e=t(e,o.value,f),o=o.prev;return e};Za.prototype.toArray=function(){for(var t=new Array(this.length),n=0,e=this.head;e!==null;n++)t[n]=e.value,e=e.next;return t};Za.prototype.toArrayReverse=function(){for(var t=new Array(this.length),n=0,e=this.tail;e!==null;n++)t[n]=e.value,e=e.prev;return t};Za.prototype.slice=function(t,n){n=n||this.length,n<0&&(n+=this.length),t=t||0,t<0&&(t+=this.length);var e=new Za;if(nthis.length&&(n=this.length);for(var o=0,f=this.head;f!==null&&othis.length&&(n=this.length);for(var o=this.length,f=this.tail;f!==null&&o>n;o--)f=f.prev;for(;f!==null&&o>t;o--,f=f.prev)e.push(f.value);return e};Za.prototype.splice=function(t,n){t>this.length&&(t=this.length-1),t<0&&(t=this.length+t);for(var e=0,o=this.head;o!==null&&e1;class qwe{constructor(n){if(typeof n=="number"&&(n={max:n}),n||(n={}),n.max&&(typeof n.max!="number"||n.max<0))throw new TypeError("max must be a non-negative number");this[r0]=n.max||1/0;var e=n.length||H4;if(this[Vg]=typeof e!="function"?H4:e,this[Uv]=n.stale||!1,n.maxAge&&typeof n.maxAge!="number")throw new TypeError("maxAge must be a number");this[l0]=n.maxAge||0,this[Ch]=n.dispose,this[yD]=n.noDisposeOnSet||!1,this[VH]=n.updateAgeOnGet||!1,this.reset()}set max(n){if(typeof n!="number"||n<0)throw new TypeError("max must be a non-negative number");this[r0]=n||1/0,rv(this)}get max(){return this[r0]}set allowStale(n){this[Uv]=!!n}get allowStale(){return this[Uv]}set maxAge(n){if(typeof n!="number")throw new TypeError("maxAge must be a non-negative number");this[l0]=n,rv(this)}get maxAge(){return this[l0]}set lengthCalculator(n){typeof n!="function"&&(n=H4),n!==this[Vg]&&(this[Vg]=n,this[Ph]=0,this[tl].forEach(e=>{e.length=this[Vg](e.value,e.key),this[Ph]+=e.length})),rv(this)}get lengthCalculator(){return this[Vg]}get length(){return this[Ph]}get itemCount(){return this[tl].length}rforEach(n,e){e=e||this;for(var o=this[tl].tail;o!==null;){var f=o.prev;xD(this,n,o,e),o=f}}forEach(n,e){e=e||this;for(var o=this[tl].head;o!==null;){var f=o.next;xD(this,n,o,e),o=f}}keys(){return this[tl].toArray().map(n=>n.key)}values(){return this[tl].toArray().map(n=>n.value)}reset(){this[Ch]&&this[tl]&&this[tl].length&&this[tl].forEach(n=>this[Ch](n.key,n.value)),this[Hc]=new Map,this[tl]=new Vwe,this[Ph]=0}dump(){return this[tl].map(n=>j2(this,n)?!1:{k:n.key,v:n.value,e:n.now+(n.maxAge||0)}).toArray().filter(n=>n)}dumpLru(){return this[tl]}set(n,e,o){if(o=o||this[l0],o&&typeof o!="number")throw new TypeError("maxAge must be a number");var f=o?Date.now():0,r=this[Vg](e,n);if(this[Hc].has(n)){if(r>this[r0])return lm(this,this[Hc].get(n)),!1;var a=this[Hc].get(n),u=a.value;return this[Ch]&&(this[yD]||this[Ch](n,u.value)),u.now=f,u.maxAge=o,u.value=e,this[Ph]+=r-u.length,u.length=r,this.get(n),rv(this),!0}var c=new Hwe(n,e,r,f,o);return c.length>this[r0]?(this[Ch]&&this[Ch](n,e),!1):(this[Ph]+=c.length,this[tl].unshift(c),this[Hc].set(n,this[tl].head),rv(this),!0)}has(n){if(!this[Hc].has(n))return!1;var e=this[Hc].get(n).value;return!j2(this,e)}get(n){return $4(this,n,!0)}peek(n){return $4(this,n,!1)}pop(){var n=this[tl].tail;return n?(lm(this,n),n.value):null}del(n){lm(this,this[Hc].get(n))}load(n){this.reset();for(var e=Date.now(),o=n.length-1;o>=0;o--){var f=n[o],r=f.e||0;if(r===0)this.set(f.k,f.v);else{var a=r-e;a>0&&this.set(f.k,f.v,a)}}}prune(){this[Hc].forEach((n,e)=>$4(this,e,!1))}}var $4=(t,n,e)=>{var o=t[Hc].get(n);if(o){var f=o.value;if(j2(t,f)){if(lm(t,o),!t[Uv])return}else e&&(t[VH]&&(o.value.now=Date.now()),t[tl].unshiftNode(o));return f.value}},j2=(t,n)=>{if(!n||!n.maxAge&&!t[l0])return!1;var e=Date.now()-n.now;return n.maxAge?e>n.maxAge:t[l0]&&e>t[l0]},rv=t=>{if(t[Ph]>t[r0])for(var n=t[tl].tail;t[Ph]>t[r0]&&n!==null;){var e=n.prev;lm(t,n),n=e}},lm=(t,n)=>{if(n){var e=n.value;t[Ch]&&t[Ch](e.key,e.value),t[Ph]-=e.length,t[Hc].delete(e.key),t[tl].removeNode(n)}};class Hwe{constructor(n,e,o,f,r){this.key=n,this.value=e,this.length=o,this.now=f,this.maxAge=r||0}}var xD=(t,n,e,o)=>{var f=e.value;j2(t,f)&&(lm(t,e),t[Uv]||(f=void 0)),f&&n.call(o,f.value,f.key,t)},$we=qwe,Gwe=["includePrerelease","loose","rtl"],Wwe=t=>t?typeof t!="object"?{loose:!0}:Gwe.filter(n=>t[n]).reduce((n,e)=>(n[e]=!0,n),{}):{},$8=Wwe,Qc={exports:{}},Ywe="2.0.0",Xwe=256,Zwe=Number.MAX_SAFE_INTEGER||9007199254740991,Jwe=16,G8={SEMVER_SPEC_VERSION:Ywe,MAX_LENGTH:Xwe,MAX_SAFE_INTEGER:Zwe,MAX_SAFE_COMPONENT_LENGTH:Jwe},Kwe=typeof process=="object"&&process.env&&{}.NODE_DEBUG&&/\bsemver\b/i.test({}.NODE_DEBUG)?function(){for(var t=arguments.length,n=new Array(t),e=0;e{},U3=Kwe;(function(t,n){var e=G8.MAX_SAFE_COMPONENT_LENGTH,o=U3;n=t.exports={};var f=n.re=[],r=n.src=[],a=n.t={},u=0,c=(i,s,l)=>{var d=u++;o(i,d,s),a[i]=d,r[d]=s,f[d]=new RegExp(s,l?"g":void 0)};c("NUMERICIDENTIFIER","0|[1-9]\\d*"),c("NUMERICIDENTIFIERLOOSE","[0-9]+"),c("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),c("MAINVERSION","(".concat(r[a.NUMERICIDENTIFIER],")\\.")+"(".concat(r[a.NUMERICIDENTIFIER],")\\.")+"(".concat(r[a.NUMERICIDENTIFIER],")")),c("MAINVERSIONLOOSE","(".concat(r[a.NUMERICIDENTIFIERLOOSE],")\\.")+"(".concat(r[a.NUMERICIDENTIFIERLOOSE],")\\.")+"(".concat(r[a.NUMERICIDENTIFIERLOOSE],")")),c("PRERELEASEIDENTIFIER","(?:".concat(r[a.NUMERICIDENTIFIER],"|").concat(r[a.NONNUMERICIDENTIFIER],")")),c("PRERELEASEIDENTIFIERLOOSE","(?:".concat(r[a.NUMERICIDENTIFIERLOOSE],"|").concat(r[a.NONNUMERICIDENTIFIER],")")),c("PRERELEASE","(?:-(".concat(r[a.PRERELEASEIDENTIFIER],"(?:\\.").concat(r[a.PRERELEASEIDENTIFIER],")*))")),c("PRERELEASELOOSE","(?:-?(".concat(r[a.PRERELEASEIDENTIFIERLOOSE],"(?:\\.").concat(r[a.PRERELEASEIDENTIFIERLOOSE],")*))")),c("BUILDIDENTIFIER","[0-9A-Za-z-]+"),c("BUILD","(?:\\+(".concat(r[a.BUILDIDENTIFIER],"(?:\\.").concat(r[a.BUILDIDENTIFIER],")*))")),c("FULLPLAIN","v?".concat(r[a.MAINVERSION]).concat(r[a.PRERELEASE],"?").concat(r[a.BUILD],"?")),c("FULL","^".concat(r[a.FULLPLAIN],"$")),c("LOOSEPLAIN","[v=\\s]*".concat(r[a.MAINVERSIONLOOSE]).concat(r[a.PRERELEASELOOSE],"?").concat(r[a.BUILD],"?")),c("LOOSE","^".concat(r[a.LOOSEPLAIN],"$")),c("GTLT","((?:<|>)?=?)"),c("XRANGEIDENTIFIERLOOSE","".concat(r[a.NUMERICIDENTIFIERLOOSE],"|x|X|\\*")),c("XRANGEIDENTIFIER","".concat(r[a.NUMERICIDENTIFIER],"|x|X|\\*")),c("XRANGEPLAIN","[v=\\s]*(".concat(r[a.XRANGEIDENTIFIER],")")+"(?:\\.(".concat(r[a.XRANGEIDENTIFIER],")")+"(?:\\.(".concat(r[a.XRANGEIDENTIFIER],")")+"(?:".concat(r[a.PRERELEASE],")?").concat(r[a.BUILD],"?")+")?)?"),c("XRANGEPLAINLOOSE","[v=\\s]*(".concat(r[a.XRANGEIDENTIFIERLOOSE],")")+"(?:\\.(".concat(r[a.XRANGEIDENTIFIERLOOSE],")")+"(?:\\.(".concat(r[a.XRANGEIDENTIFIERLOOSE],")")+"(?:".concat(r[a.PRERELEASELOOSE],")?").concat(r[a.BUILD],"?")+")?)?"),c("XRANGE","^".concat(r[a.GTLT],"\\s*").concat(r[a.XRANGEPLAIN],"$")),c("XRANGELOOSE","^".concat(r[a.GTLT],"\\s*").concat(r[a.XRANGEPLAINLOOSE],"$")),c("COERCE","".concat("(^|[^\\d])(\\d{1,").concat(e,"})")+"(?:\\.(\\d{1,".concat(e,"}))?")+"(?:\\.(\\d{1,".concat(e,"}))?")+"(?:$|[^\\d])"),c("COERCERTL",r[a.COERCE],!0),c("LONETILDE","(?:~>?)"),c("TILDETRIM","(\\s*)".concat(r[a.LONETILDE],"\\s+"),!0),n.tildeTrimReplace="$1~",c("TILDE","^".concat(r[a.LONETILDE]).concat(r[a.XRANGEPLAIN],"$")),c("TILDELOOSE","^".concat(r[a.LONETILDE]).concat(r[a.XRANGEPLAINLOOSE],"$")),c("LONECARET","(?:\\^)"),c("CARETTRIM","(\\s*)".concat(r[a.LONECARET],"\\s+"),!0),n.caretTrimReplace="$1^",c("CARET","^".concat(r[a.LONECARET]).concat(r[a.XRANGEPLAIN],"$")),c("CARETLOOSE","^".concat(r[a.LONECARET]).concat(r[a.XRANGEPLAINLOOSE],"$")),c("COMPARATORLOOSE","^".concat(r[a.GTLT],"\\s*(").concat(r[a.LOOSEPLAIN],")$|^$")),c("COMPARATOR","^".concat(r[a.GTLT],"\\s*(").concat(r[a.FULLPLAIN],")$|^$")),c("COMPARATORTRIM","(\\s*)".concat(r[a.GTLT],"\\s*(").concat(r[a.LOOSEPLAIN],"|").concat(r[a.XRANGEPLAIN],")"),!0),n.comparatorTrimReplace="$1$2$3",c("HYPHENRANGE","^\\s*(".concat(r[a.XRANGEPLAIN],")")+"\\s+-\\s+"+"(".concat(r[a.XRANGEPLAIN],")")+"\\s*$"),c("HYPHENRANGELOOSE","^\\s*(".concat(r[a.XRANGEPLAINLOOSE],")")+"\\s+-\\s+"+"(".concat(r[a.XRANGEPLAINLOOSE],")")+"\\s*$"),c("STAR","(<|>)?=?\\s*\\*"),c("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),c("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(Qc,Qc.exports);var bD=/^[0-9]+$/,qH=(t,n)=>{var e=bD.test(t),o=bD.test(n);return e&&o&&(t=+t,n=+n),t===n?0:e&&!o?-1:o&&!e?1:tqH(n,t),e3e={compareIdentifiers:qH,rcompareIdentifiers:Qwe},zb=U3,_D=G8.MAX_LENGTH,Rb=G8.MAX_SAFE_INTEGER,wD=Qc.exports.re,kD=Qc.exports.t,t3e=$8,qg=e3e.compareIdentifiers;class $c{constructor(n,e){if(e=t3e(e),n instanceof $c){if(n.loose===!!e.loose&&n.includePrerelease===!!e.includePrerelease)return n;n=n.version}else if(typeof n!="string")throw new TypeError("Invalid Version: ".concat(n));if(n.length>_D)throw new TypeError("version is longer than ".concat(_D," characters"));zb("SemVer",n,e),this.options=e,this.loose=!!e.loose,this.includePrerelease=!!e.includePrerelease;var o=n.trim().match(e.loose?wD[kD.LOOSE]:wD[kD.FULL]);if(!o)throw new TypeError("Invalid Version: ".concat(n));if(this.raw=n,this.major=+o[1],this.minor=+o[2],this.patch=+o[3],this.major>Rb||this.major<0)throw new TypeError("Invalid major version");if(this.minor>Rb||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>Rb||this.patch<0)throw new TypeError("Invalid patch version");o[4]?this.prerelease=o[4].split(".").map(f=>{if(/^[0-9]+$/.test(f)){var r=+f;if(r>=0&&r=0;)typeof this.prerelease[o]=="number"&&(this.prerelease[o]++,o=-2);o===-1&&this.prerelease.push(0)}e&&(qg(this.prerelease[0],e)===0?isNaN(this.prerelease[1])&&(this.prerelease=[e,0]):this.prerelease=[e,0]);break;default:throw new Error("invalid increment argument: ".concat(n))}return this.format(),this.raw=this.version,this}}var W8=$c,TD=W8,n3e=(t,n,e)=>new TD(t,e).compare(new TD(n,e)),u1=n3e,r3e=u1,i3e=(t,n,e)=>r3e(t,n,e)===0,a3e=i3e,o3e=u1,s3e=(t,n,e)=>o3e(t,n,e)!==0,l3e=s3e,u3e=u1,c3e=(t,n,e)=>u3e(t,n,e)>0,f3e=c3e,h3e=u1,d3e=(t,n,e)=>h3e(t,n,e)>=0,p3e=d3e,g3e=u1,m3e=(t,n,e)=>g3e(t,n,e)<0,v3e=m3e,y3e=u1,x3e=(t,n,e)=>y3e(t,n,e)<=0,b3e=x3e,_3e=a3e,w3e=l3e,k3e=f3e,T3e=p3e,A3e=v3e,M3e=b3e,S3e=(t,n,e,o)=>{switch(n){case"===":return typeof t=="object"&&(t=t.version),typeof e=="object"&&(e=e.version),t===e;case"!==":return typeof t=="object"&&(t=t.version),typeof e=="object"&&(e=e.version),t!==e;case"":case"=":case"==":return _3e(t,e,o);case"!=":return w3e(t,e,o);case">":return k3e(t,e,o);case">=":return T3e(t,e,o);case"<":return A3e(t,e,o);case"<=":return M3e(t,e,o);default:throw new TypeError("Invalid operator: ".concat(n))}},E3e=S3e,G4,AD;function C3e(){if(AD)return G4;AD=1;var t=Symbol("SemVer ANY");class n{static get ANY(){return t}constructor(s,l){if(l=e(l),s instanceof n){if(s.loose===!!l.loose)return s;s=s.value}a("comparator",s,l),this.options=l,this.loose=!!l.loose,this.parse(s),this.semver===t?this.value="":this.value=this.operator+this.semver.version,a("comp",this)}parse(s){var l=this.options.loose?o[f.COMPARATORLOOSE]:o[f.COMPARATOR],d=s.match(l);if(!d)throw new TypeError("Invalid comparator: ".concat(s));this.operator=d[1]!==void 0?d[1]:"",this.operator==="="&&(this.operator=""),d[2]?this.semver=new u(d[2],this.options.loose):this.semver=t}toString(){return this.value}test(s){if(a("Comparator.test",s,this.options.loose),this.semver===t||s===t)return!0;if(typeof s=="string")try{s=new u(s,this.options)}catch{return!1}return r(s,this.operator,this.semver,this.options)}intersects(s,l){if(!(s instanceof n))throw new TypeError("a Comparator is required");if((!l||typeof l!="object")&&(l={loose:!!l,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new c(s.value,l).test(this.value);if(s.operator==="")return s.value===""?!0:new c(this.value,l).test(s.semver);var d=(this.operator===">="||this.operator===">")&&(s.operator===">="||s.operator===">"),h=(this.operator==="<="||this.operator==="<")&&(s.operator==="<="||s.operator==="<"),m=this.semver.version===s.semver.version,g=(this.operator===">="||this.operator==="<=")&&(s.operator===">="||s.operator==="<="),p=r(this.semver,"<",s.semver,l)&&(this.operator===">="||this.operator===">")&&(s.operator==="<="||s.operator==="<"),v=r(this.semver,">",s.semver,l)&&(this.operator==="<="||this.operator==="<")&&(s.operator===">="||s.operator===">");return d||h||m&&g||p||v}}G4=n;var e=$8,o=Qc.exports.re,f=Qc.exports.t,r=E3e,a=U3,u=W8,c=HH();return G4}function MD(t,n){var e=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=O3e(t))||n&&t&&typeof t.length=="number"){e&&(t=e);var o=0,f=function(){};return{s:f,n:function(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function(i){throw i},f}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var r=!0,a=!1,u;return{s:function(){e=e.call(t)},n:function(){var i=e.next();return r=i.done,i},e:function(i){a=!0,u=i},f:function(){try{!r&&e.return!=null&&e.return()}finally{if(a)throw u}}}}function O3e(t,n){if(!!t){if(typeof t=="string")return SD(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return SD(t,n)}}function SD(t,n){(n==null||n>t.length)&&(n=t.length);for(var e=0,o=new Array(n);ethis.parseRange(P.trim())).filter(P=>P.length),!this.set.length)throw new TypeError("Invalid SemVer Range: ".concat(E));if(this.set.length>1){var O=this.set[0];if(this.set=this.set.filter(P=>!d(P[0])),this.set.length===0)this.set=[O];else if(this.set.length>1){var R=MD(this.set),z;try{for(R.s();!(z=R.n()).done;){var L=z.value;if(L.length===1&&h(L[0])){this.set=[L];break}}}catch(P){R.e(P)}finally{R.f()}}}this.format()}format(){return this.range=this.set.map(E=>E.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(E){E=E.trim();var D=Object.keys(this.options).join(","),O="parseRange:".concat(D,":").concat(E),R=e.get(O);if(R)return R;var z=this.options.loose,L=z?u[c.HYPHENRANGELOOSE]:u[c.HYPHENRANGE];E=E.replace(L,M(this.options.includePrerelease)),r("hyphen replace",E),E=E.replace(u[c.COMPARATORTRIM],i),r("comparator trim",E),E=E.replace(u[c.TILDETRIM],s),E=E.replace(u[c.CARETTRIM],l),E=E.split(/\s+/).join(" ");var P=E.split(" ").map(Y=>g(Y,this.options)).join(" ").split(/\s+/).map(Y=>_(Y,this.options));z&&(P=P.filter(Y=>(r("loose invalid filter",Y,this.options),!!Y.match(u[c.COMPARATORLOOSE])))),r("range list",P);var N=new Map,B=P.map(Y=>new f(Y,this.options)),G=MD(B),W;try{for(G.s();!(W=G.n()).done;){var K=W.value;if(d(K))return[K];N.set(K.value,K)}}catch(Y){G.e(Y)}finally{G.f()}N.size>1&&N.has("")&&N.delete("");var te=[...N.values()];return e.set(O,te),te}intersects(E,D){if(!(E instanceof t))throw new TypeError("a Range is required");return this.set.some(O=>m(O,D)&&E.set.some(R=>m(R,D)&&O.every(z=>R.every(L=>z.intersects(L,D)))))}test(E){if(!E)return!1;if(typeof E=="string")try{E=new a(E,this.options)}catch{return!1}for(var D=0;DS.value==="<0.0.0-0",h=S=>S.value==="",m=(S,E)=>{for(var D=!0,O=S.slice(),R=O.pop();D&&O.length;)D=O.every(z=>R.intersects(z,E)),R=O.pop();return D},g=(S,E)=>(r("comp",S,E),S=x(S,E),r("caret",S),S=v(S,E),r("tildes",S),S=k(S,E),r("xrange",S),S=T(S,E),r("stars",S),S),p=S=>!S||S.toLowerCase()==="x"||S==="*",v=(S,E)=>S.trim().split(/\s+/).map(D=>y(D,E)).join(" "),y=(S,E)=>{var D=E.loose?u[c.TILDELOOSE]:u[c.TILDE];return S.replace(D,(O,R,z,L,P)=>{r("tilde",S,O,R,z,L,P);var N;return p(R)?N="":p(z)?N=">=".concat(R,".0.0 <").concat(+R+1,".0.0-0"):p(L)?N=">=".concat(R,".").concat(z,".0 <").concat(R,".").concat(+z+1,".0-0"):P?(r("replaceTilde pr",P),N=">=".concat(R,".").concat(z,".").concat(L,"-").concat(P," <").concat(R,".").concat(+z+1,".0-0")):N=">=".concat(R,".").concat(z,".").concat(L," <").concat(R,".").concat(+z+1,".0-0"),r("tilde return",N),N})},x=(S,E)=>S.trim().split(/\s+/).map(D=>w(D,E)).join(" "),w=(S,E)=>{r("caret",S,E);var D=E.loose?u[c.CARETLOOSE]:u[c.CARET],O=E.includePrerelease?"-0":"";return S.replace(D,(R,z,L,P,N)=>{r("caret",S,R,z,L,P,N);var B;return p(z)?B="":p(L)?B=">=".concat(z,".0.0").concat(O," <").concat(+z+1,".0.0-0"):p(P)?z==="0"?B=">=".concat(z,".").concat(L,".0").concat(O," <").concat(z,".").concat(+L+1,".0-0"):B=">=".concat(z,".").concat(L,".0").concat(O," <").concat(+z+1,".0.0-0"):N?(r("replaceCaret pr",N),z==="0"?L==="0"?B=">=".concat(z,".").concat(L,".").concat(P,"-").concat(N," <").concat(z,".").concat(L,".").concat(+P+1,"-0"):B=">=".concat(z,".").concat(L,".").concat(P,"-").concat(N," <").concat(z,".").concat(+L+1,".0-0"):B=">=".concat(z,".").concat(L,".").concat(P,"-").concat(N," <").concat(+z+1,".0.0-0")):(r("no pr"),z==="0"?L==="0"?B=">=".concat(z,".").concat(L,".").concat(P).concat(O," <").concat(z,".").concat(L,".").concat(+P+1,"-0"):B=">=".concat(z,".").concat(L,".").concat(P).concat(O," <").concat(z,".").concat(+L+1,".0-0"):B=">=".concat(z,".").concat(L,".").concat(P," <").concat(+z+1,".0.0-0")),r("caret return",B),B})},k=(S,E)=>(r("replaceXRanges",S,E),S.split(/\s+/).map(D=>b(D,E)).join(" ")),b=(S,E)=>{S=S.trim();var D=E.loose?u[c.XRANGELOOSE]:u[c.XRANGE];return S.replace(D,(O,R,z,L,P,N)=>{r("xRange",S,O,R,z,L,P,N);var B=p(z),G=B||p(L),W=G||p(P),K=W;return R==="="&&K&&(R=""),N=E.includePrerelease?"-0":"",B?R===">"||R==="<"?O="<0.0.0-0":O="*":R&&K?(G&&(L=0),P=0,R===">"?(R=">=",G?(z=+z+1,L=0,P=0):(L=+L+1,P=0)):R==="<="&&(R="<",G?z=+z+1:L=+L+1),R==="<"&&(N="-0"),O="".concat(R+z,".").concat(L,".").concat(P).concat(N)):G?O=">=".concat(z,".0.0").concat(N," <").concat(+z+1,".0.0-0"):W&&(O=">=".concat(z,".").concat(L,".0").concat(N," <").concat(z,".").concat(+L+1,".0-0")),r("xRange return",O),O})},T=(S,E)=>(r("replaceStars",S,E),S.trim().replace(u[c.STAR],"")),_=(S,E)=>(r("replaceGTE0",S,E),S.trim().replace(u[E.includePrerelease?c.GTE0PRE:c.GTE0],"")),M=S=>(E,D,O,R,z,L,P,N,B,G,W,K,te)=>(p(O)?D="":p(R)?D=">=".concat(O,".0.0").concat(S?"-0":""):p(z)?D=">=".concat(O,".").concat(R,".0").concat(S?"-0":""):L?D=">=".concat(D):D=">=".concat(D).concat(S?"-0":""),p(B)?N="":p(G)?N="<".concat(+B+1,".0.0-0"):p(W)?N="<".concat(B,".").concat(+G+1,".0-0"):K?N="<=".concat(B,".").concat(G,".").concat(W,"-").concat(K):S?N="<".concat(B,".").concat(G,".").concat(+W+1,"-0"):N="<=".concat(N),"".concat(D," ").concat(N).trim()),A=(S,E,D)=>{for(var O=0;O0){var z=S[R].semver;if(z.major===E.major&&z.minor===E.minor&&z.patch===E.patch)return!0}return!1}return!0};return W4}var L3e=HH(),P3e=(t,n,e)=>{try{n=new L3e(n,e)}catch{return!1}return n.test(t)},$H=P3e;function D3e(t,n,e){var o=t.open(n),f=1e4,r=250,a=new URL(n),u=a.origin,c=~~(f/r);function i(l){l.source===o&&(c=0,t.removeEventListener("message",i,!1))}t.addEventListener("message",i,!1);function s(){c<=0||(o.postMessage(e,u),setTimeout(s,r),c-=1)}setTimeout(s,r)}var I3e=`.vega-embed { + position: relative; + display: inline-block; + box-sizing: border-box; +} +.vega-embed.has-actions { + padding-right: 38px; +} +.vega-embed details:not([open]) > :not(summary) { + display: none !important; +} +.vega-embed summary { + list-style: none; + position: absolute; + top: 0; + right: 0; + padding: 6px; + z-index: 1000; + background: white; + box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1); + color: #1b1e23; + border: 1px solid #aaa; + border-radius: 999px; + opacity: 0.2; + transition: opacity 0.4s ease-in; + cursor: pointer; + line-height: 0px; +} +.vega-embed summary::-webkit-details-marker { + display: none; +} +.vega-embed summary:active { + box-shadow: #aaa 0px 0px 0px 1px inset; +} +.vega-embed summary svg { + width: 14px; + height: 14px; +} +.vega-embed details[open] summary { + opacity: 0.7; +} +.vega-embed:hover summary, .vega-embed:focus-within summary { + opacity: 1 !important; + transition: opacity 0.2s ease; +} +.vega-embed .vega-actions { + position: absolute; + z-index: 1001; + top: 35px; + right: -9px; + display: flex; + flex-direction: column; + padding-bottom: 8px; + padding-top: 8px; + border-radius: 4px; + box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.2); + border: 1px solid #d9d9d9; + background: white; + animation-duration: 0.15s; + animation-name: scale-in; + animation-timing-function: cubic-bezier(0.2, 0, 0.13, 1.5); + text-align: left; +} +.vega-embed .vega-actions a { + padding: 8px 16px; + font-family: sans-serif; + font-size: 14px; + font-weight: 600; + white-space: nowrap; + color: #434a56; + text-decoration: none; +} +.vega-embed .vega-actions a:hover, .vega-embed .vega-actions a:focus { + background-color: #f7f7f9; + color: black; +} +.vega-embed .vega-actions::before, .vega-embed .vega-actions::after { + content: ""; + display: inline-block; + position: absolute; +} +.vega-embed .vega-actions::before { + left: auto; + right: 14px; + top: -16px; + border: 8px solid rgba(0, 0, 0, 0); + border-bottom-color: #d9d9d9; +} +.vega-embed .vega-actions::after { + left: auto; + right: 15px; + top: -14px; + border: 7px solid rgba(0, 0, 0, 0); + border-bottom-color: #fff; +} +.vega-embed .chart-wrapper.fit-x { + width: 100%; +} +.vega-embed .chart-wrapper.fit-y { + height: 100%; +} + +.vega-embed-wrapper { + max-width: 100%; + overflow: auto; + padding-right: 14px; +} + +@keyframes scale-in { + from { + opacity: 0; + transform: scale(0.6); + } + to { + opacity: 1; + transform: scale(1); + } +} +`;String.prototype.startsWith||(String.prototype.startsWith=function(t,n){return this.substr(!n||n<0?0:+n,t.length)===t});function GH(t){for(var n=arguments.length,e=new Array(n>1?n-1:0),o=1;o=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function(i){throw i},f}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var r=!0,a=!1,u;return{s:function(){e=e.call(t)},n:function(){var i=e.next();return r=i.done,i},e:function(i){a=!0,u=i},f:function(){try{!r&&e.return!=null&&e.return()}finally{if(a)throw u}}}}function F3e(t,n){if(!!t){if(typeof t=="string")return CD(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return CD(t,n)}}function CD(t,n){(n==null||n>t.length)&&(n=t.length);for(var e=0,o=new Array(n);et,"vega-lite":(t,n)=>xy.compile(t,{config:n}).spec},U3e=` + + + + +`,V3e="chart-wrapper";function q3e(t){return typeof t=="function"}function LD(t,n,e,o){var f="".concat(n,'
    '),r="
    ".concat(e,""),a=window.open("");a.document.write(f+t+r),a.document.title="".concat(Mv[o]," JSON Source")}function H3e(t,n){if(t.$schema){var e=PH(t.$schema);if(n&&n!==e.library){var o;console.warn("The given visualization spec is written in ".concat(Mv[e.library],", but mode argument sets ").concat((o=Mv[n])!==null&&o!==void 0?o:n,"."))}var f=e.library;return $H(U2[f],"^".concat(e.version.slice(1)))||console.warn("The input spec uses ".concat(Mv[f]," ").concat(e.version,", but the current version of ").concat(Mv[f]," is v").concat(U2[f],".")),f}return"mark"in t||"encoding"in t||"layer"in t||"hconcat"in t||"vconcat"in t||"facet"in t||"repeat"in t?"vega-lite":"marks"in t||"signals"in t||"scales"in t||"axes"in t?"vega":n??"vega"}function $3e(t){return!!(t&&"load"in t)}function PD(t){return $3e(t)?t:Gc.loader(t)}function G3e(t){var n,e,o=(n=(e=t.usermeta)===null||e===void 0?void 0:e.embedOptions)!==null&&n!==void 0?n:{};return bi(o.defaultStyle)&&(o.defaultStyle=!1),o}function W3e(t,n){return hA.apply(this,arguments)}function hA(){return hA=N2(Hf.mark(function t(n,e){var o,f,r,a,u,c,i,s,l,d,h,m=arguments;return Hf.wrap(function(p){for(;;)switch(p.prev=p.next){case 0:if(r=m.length>2&&m[2]!==void 0?m[2]:{},!bi(e)){p.next=10;break}return u=PD(r.loader),p.t0=JSON,p.next=6,u.load(e);case 6:p.t1=p.sent,a=p.t0.parse.call(p.t0,p.t1),p.next=11;break;case 10:a=e;case 11:return c=G3e(a),i=c.loader,(!u||i)&&(u=PD((s=r.loader)!==null&&s!==void 0?s:i)),p.next=16,DD(c,u);case 16:return l=p.sent,p.next=19,DD(r,u);case 19:return d=p.sent,h=Gd(Gd({},GH(d,l)),{},{config:Vm((o=d.config)!==null&&o!==void 0?o:{},(f=l.config)!==null&&f!==void 0?f:{})}),p.next=23,X3e(n,a,h,u);case 23:return p.abrupt("return",p.sent);case 24:case"end":return p.stop()}},t)})),hA.apply(this,arguments)}function DD(t,n){return dA.apply(this,arguments)}function dA(){return dA=N2(Hf.mark(function t(n,e){var o,f,r;return Hf.wrap(function(u){for(;;)switch(u.prev=u.next){case 0:if(!bi(n.config)){u.next=8;break}return u.t1=JSON,u.next=4,e.load(n.config);case 4:u.t2=u.sent,u.t0=u.t1.parse.call(u.t1,u.t2),u.next=9;break;case 8:u.t0=(o=n.config)!==null&&o!==void 0?o:{};case 9:if(f=u.t0,!bi(n.patch)){u.next=18;break}return u.t4=JSON,u.next=14,e.load(n.patch);case 14:u.t5=u.sent,u.t3=u.t4.parse.call(u.t4,u.t5),u.next=19;break;case 18:u.t3=n.patch;case 19:return r=u.t3,u.abrupt("return",Gd(Gd(Gd({},n),r?{patch:r}:{}),f?{config:f}:{}));case 21:case"end":return u.stop()}},t)})),dA.apply(this,arguments)}function Y3e(t){var n,e=t.getRootNode?t.getRootNode():document;return e instanceof ShadowRoot?{root:e,rootContainer:e}:{root:document,rootContainer:(n=document.head)!==null&&n!==void 0?n:document.body}}function X3e(t,n){return pA.apply(this,arguments)}function pA(){return pA=N2(Hf.mark(function t(n,e){var o,f,r,a,u,c,i,s,l,d,h,m,g,p,v,y,x,w,k,b,T,_,M,A,S,E,D,O,R,z,L,P,N,B,G,W,K,te,Y,Z,re,U,q,$,ne,H,Q,ee,ie,ae,ue,le=arguments;return Hf.wrap(function(fe){for(;;)switch(fe.prev=fe.next){case 0:if(ue=function(){te&&document.removeEventListener("click",te),P.finalize()},s=le.length>2&&le[2]!==void 0?le[2]:{},l=le.length>3?le[3]:void 0,d=s.theme?Vm(xwe[s.theme],(o=s.config)!==null&&o!==void 0?o:{}):s.config,h=fp(s.actions)?s.actions:GH({},N3e,(f=s.actions)!==null&&f!==void 0?f:{}),m=Gd(Gd({},B3e),s.i18n),g=(r=s.renderer)!==null&&r!==void 0?r:"canvas",p=(a=s.logLevel)!==null&&a!==void 0?a:Gc.Warn,v=(u=s.downloadFileName)!==null&&u!==void 0?u:"visualization",y=typeof n=="string"?document.querySelector(n):n,y){fe.next=12;break}throw new Error("".concat(n," does not exist"));case 12:if(s.defaultStyle!==!1&&(x="vega-embed-style",w=Y3e(y),k=w.root,b=w.rootContainer,k.getElementById(x)||(T=document.createElement("style"),T.id=x,T.innerHTML=s.defaultStyle===void 0||s.defaultStyle===!0?I3e.toString():s.defaultStyle,b.appendChild(T))),_=H3e(e,s.mode),M=j3e[_](e,d),_==="vega-lite"&&M.$schema&&(A=PH(M.$schema),$H(U2.vega,"^".concat(A.version.slice(1)))||console.warn("The compiled spec uses Vega ".concat(A.version,", but current version is v").concat(U2.vega,"."))),y.classList.add("vega-embed"),h&&y.classList.add("has-actions"),y.innerHTML="",S=y,h&&(E=document.createElement("div"),E.classList.add(V3e),y.appendChild(E),S=E),D=s.patch,D&&(M=D instanceof Function?D(M):Y2(M,D,!0,!1).newDocument),s.formatLocale&&Gc.formatLocale(s.formatLocale),s.timeFormatLocale&&Gc.timeFormatLocale(s.timeFormatLocale),s.expressionFunctions)for(O in s.expressionFunctions)R=s.expressionFunctions[O],"fn"in R?Gc.expressionFunction(O,R.fn,R.visitor):R instanceof Function&&Gc.expressionFunction(O,R);return z=s.ast,L=Gc.parse(M,_==="vega-lite"?{}:d,{ast:z}),P=new(s.viewClass||Gc.View)(L,Gd({loader:l,logLevel:p,renderer:g},z?{expr:(c=(i=Gc.expressionInterpreter)!==null&&i!==void 0?i:s.expr)!==null&&c!==void 0?c:h0e}:{})),P.addSignalListener("autosize",(me,_e)=>{var we=_e.type;we=="fit-x"?(S.classList.add("fit-x"),S.classList.remove("fit-y")):we=="fit-y"?(S.classList.remove("fit-x"),S.classList.add("fit-y")):we=="fit"?S.classList.add("fit-x","fit-y"):S.classList.remove("fit-x","fit-y")}),s.tooltip!==!1&&(N=q3e(s.tooltip)?s.tooltip:new Ewe(s.tooltip===!0?{}:s.tooltip).call,P.tooltip(N)),B=s.hover,B===void 0&&(B=_==="vega"),B&&(G=typeof B=="boolean"?{}:B,W=G.hoverSet,K=G.updateSet,P.hover(W,K)),s&&(s.width!=null&&P.width(s.width),s.height!=null&&P.height(s.height),s.padding!=null&&P.padding(s.padding)),fe.next=37,P.initialize(S,s.bind).runAsync();case 37:if(h!==!1){if(Y=y,s.defaultStyle!==!1&&(Z=document.createElement("details"),Z.title=m.CLICK_TO_VIEW_ACTIONS,y.append(Z),Y=Z,re=document.createElement("summary"),re.innerHTML=U3e,Z.append(re),te=me=>{Z.contains(me.target)||Z.removeAttribute("open")},document.addEventListener("click",te)),U=document.createElement("div"),Y.append(U),U.classList.add("vega-actions"),h===!0||h.export!==!1){q=R3e(["svg","png"]);try{for(ne=function(){var _e=$.value;if(h===!0||h.export===!0||h.export[_e]){var we=m["".concat(_e.toUpperCase(),"_ACTION")],Te=document.createElement("a");Te.text=we,Te.href="#",Te.target="_blank",Te.download="".concat(v,".").concat(_e),Te.addEventListener("mousedown",function(){var Oe=N2(Hf.mark(function de(ye){var Me;return Hf.wrap(function(Ee){for(;;)switch(Ee.prev=Ee.next){case 0:return ye.preventDefault(),Ee.next=3,P.toImageURL(_e,s.scaleFactor);case 3:Me=Ee.sent,this.href=Me;case 5:case"end":return Ee.stop()}},de,this)}));return function(de){return Oe.apply(this,arguments)}}()),U.append(Te)}},q.s();!($=q.n()).done;)ne()}catch(me){q.e(me)}finally{q.f()}}(h===!0||h.source!==!1)&&(H=document.createElement("a"),H.text=m.SOURCE_ACTION,H.href="#",H.addEventListener("click",function(me){var _e,we;LD(S5(e),(_e=s.sourceHeader)!==null&&_e!==void 0?_e:"",(we=s.sourceFooter)!==null&&we!==void 0?we:"",_),me.preventDefault()}),U.append(H)),_==="vega-lite"&&(h===!0||h.compiled!==!1)&&(Q=document.createElement("a"),Q.text=m.COMPILED_ACTION,Q.href="#",Q.addEventListener("click",function(me){var _e,we;LD(S5(M),(_e=s.sourceHeader)!==null&&_e!==void 0?_e:"",(we=s.sourceFooter)!==null&&we!==void 0?we:"","vega"),me.preventDefault()}),U.append(Q)),(h===!0||h.editor!==!1)&&(ie=(ee=s.editorUrl)!==null&&ee!==void 0?ee:"https://vega.github.io/editor/",ae=document.createElement("a"),ae.text=m.EDITOR_ACTION,ae.href="#",ae.addEventListener("click",function(me){D3e(window,ie,{config:d,mode:_,renderer:g,spec:S5(e)}),me.preventDefault()}),U.append(ae))}return fe.abrupt("return",{view:P,spec:e,vgSpec:M,finalize:ue,embedOptions:s});case 39:case"end":return fe.stop()}},t)})),pA.apply(this,arguments)}const Z3e=new Set(["width","height"]);function J3e(t,n){for(const[e,o]of Object.entries(n))o&&(!!o&&{}.toString.call(o)==="[object Function]"?o(t.data(e)):t.change(e,Gc.changeset().remove(()=>!0).insert(o)))}function Nb(t={},n={},e=new Set){const o=Object.keys(t),f=Object.keys(n);return t===n||o.length===f.length&&o.filter(r=>!e.has(r)).every(r=>t[r]===n[r])}function ID(t,n){const e=Object.keys(n);for(const o of e)try{t.removeSignalListener(o,n[o])}catch(f){console.warn("Cannot remove invalid signal listener.",f)}return e.length>0}function X4(t,n){const e=Object.keys(n);for(const o of e)try{t.addSignalListener(o,n[o])}catch(f){console.warn("Cannot add invalid signal listener.",f)}return e.length>0}function K3e(t){return new Set(t.flatMap(n=>Object.keys(n)))}function Q3e(t,n){if(t===n)return!1;const e={width:!1,height:!1,isExpensive:!1},o="width"in t||"width"in n,f="height"in t||"height"in n;return o&&(!("width"in t)||!("width"in n)||t.width!==n.width)&&("width"in t&&typeof t.width=="number"?e.width=t.width:e.isExpensive=!0),f&&(!("height"in t)||!("height"in n)||t.height!==n.height)&&("height"in t&&typeof t.height=="number"?e.height=t.height:e.isExpensive=!0),[...K3e([t,n])].filter(a=>a!=="width"&&a!=="height").some(a=>!(a in t)||!(a in n)||!xU(t[a],n[a]))&&(e.isExpensive=!0),e.width!==!1||e.height!==!1||e.isExpensive?e:!1}function zD(t,n){const{width:e,height:o}=n;return typeof e<"u"&&typeof o<"u"?{...t,width:e,height:o}:typeof e<"u"?{...t,width:e}:typeof o<"u"?{...t,height:o}:t}function e5e(t){let n;return{c(){n=Gh("div")},m(e,o){uf(e,n,o),t[11](n)},p:cu,i:cu,o:cu,d(e){e&&cf(n),t[11](null)}}}function t5e(t,n,e){let{options:o}=n,{spec:f}=n,{view:r}=n,{signalListeners:a={}}=n,{data:u={}}=n;const c=TG();let i,s={},l={},d={},h={},m;FD(()=>{p()});async function g(){p();try{e(6,i=await W3e(m,f,o)),e(1,r=i.view),X4(r,a)&&r.runAsync(),y(r)}catch(k){v(k)}}function p(){i&&(i.finalize(),e(6,i=void 0),e(1,r=void 0))}function v(k){c("onError",{error:k}),console.warn(k)}function y(k){x(),c("onNewView",{view:k})}async function x(){u&&Object.keys(u).length>0&&i!==void 0&&(e(1,r=i.view),J3e(r,u),await r.resize().runAsync())}function w(k){gA[k?"unshift":"push"](()=>{m=k,e(0,m)})}return t.$$set=k=>{"options"in k&&e(2,o=k.options),"spec"in k&&e(3,f=k.spec),"view"in k&&e(1,r=k.view),"signalListeners"in k&&e(4,a=k.signalListeners),"data"in k&&e(5,u=k.data)},t.$$.update=()=>{if(t.$$.dirty&1056&&(Nb(u,h)||x(),e(10,h=u)),t.$$.dirty&991&&m!==void 0){if(!Nb(o,s,Z3e))g();else{const k=Q3e(zD(f,o),zD(d,s)),b=a,T=l;if(k){if(k.isExpensive)g();else if(i!==void 0){const _=!Nb(b,T);e(1,r=i.view),k.width!==!1&&r.width(k.width),k.height!==!1&&r.height(k.height),_&&(T&&ID(r,T),b&&X4(r,b)),r.runAsync()}}else!Nb(b,T)&&i!==void 0&&(e(1,r=i.view),T&&ID(r,T),b&&X4(r,b),r.runAsync())}e(7,s=o),e(8,l=a),e(9,d=f)}},[m,r,o,f,a,u,i,s,l,d,h,w]}class n5e extends by{constructor(n){super(),_y(this,n,t5e,e5e,wy,{options:2,spec:3,view:1,signalListeners:4,data:5})}}function r5e(t){let n,e,o;function f(a){t[6](a)}let r={spec:t[1],data:t[2],signalListeners:t[3],options:t[4]};return t[0]!==void 0&&(r.view=t[0]),n=new n5e({props:r}),gA.push(()=>AG(n,"view",f)),n.$on("onNewView",t[7]),n.$on("onError",t[8]),{c(){u0(n.$$.fragment)},m(a,u){c0(n,a,u),o=!0},p(a,[u]){const c={};u&2&&(c.spec=a[1]),u&4&&(c.data=a[2]),u&8&&(c.signalListeners=a[3]),u&16&&(c.options=a[4]),!e&&u&1&&(e=!0,c.view=a[0],MG(()=>e=!1)),n.$set(c)},i(a){o||(Bh(n.$$.fragment,a),o=!0)},o(a){jh(n.$$.fragment,a),o=!1},d(a){f0(n,a)}}}const i5e="vega";function a5e(t,n,e){let o,{spec:f}=n,{options:r={}}=n,{data:a={}}=n,{signalListeners:u={}}=n,{view:c=void 0}=n;function i(d){c=d,e(0,c)}function s(d){Z4.call(this,t,d)}function l(d){Z4.call(this,t,d)}return t.$$set=d=>{"spec"in d&&e(1,f=d.spec),"options"in d&&e(5,r=d.options),"data"in d&&e(2,a=d.data),"signalListeners"in d&&e(3,u=d.signalListeners),"view"in d&&e(0,c=d.view)},t.$$.update=()=>{t.$$.dirty&32&&e(4,o={...r,mode:i5e})},[c,f,a,u,o,r,i,s,l]}class o5e extends by{constructor(n){super(),_y(this,n,a5e,r5e,wy,{spec:1,options:5,data:2,signalListeners:3,view:0})}}function s5e(t){return{axis:{labelFont:"sans-serif",labelColor:t?Cf.slate["200"]:Cf.gray[900],titleFont:"sans-serif",titleColor:t?Cf.slate["200"]:Cf.gray[900],tickColor:"#aaa",gridColor:"#aaa",titleFontWeight:"normal",labelFontWeight:"normal"},legend:{labelColor:t?Cf.slate["200"]:Cf.gray[900],labelFont:"sans-serif",titleColor:t?Cf.slate["200"]:Cf.gray[900],titleFont:"sans-serif",titleFontWeight:"normal",labelFontWeight:"normal"},title:{color:t?Cf.slate["200"]:Cf.gray[900],font:"sans-serif",fontWeight:"normal"}}}function l5e(t){let n,e,o,f;return o=new VD({}),{c(){n=Gh("div"),e=Gh("div"),u0(o.$$.fragment),Aa(e,"class","h-5 dark:text-white opacity-50"),Aa(n,"class","h-full min-h-[15rem] flex justify-center items-center")},m(r,a){uf(r,n,a),zf(n,e),c0(o,e,null),f=!0},p:cu,i(r){f||(Bh(o.$$.fragment,r),f=!0)},o(r){jh(o.$$.fragment,r),f=!1},d(r){r&&cf(n),f0(o)}}}function u5e(t){let n,e,o;return{c(){n=Gh("div"),e=Gh("img"),Aa(e,"class","w-full max-h-[30rem] object-contain"),bC(e.src,o=t[0].plot)||Aa(e,"src",o),Aa(n,"class","output-image w-full flex justify-center items-center relative")},m(f,r){uf(f,n,r),zf(n,e)},p(f,r){r&1&&!bC(e.src,o=f[0].plot)&&Aa(e,"src",o)},i:cu,o:cu,d(f){f&&cf(n)}}}function c5e(t){let n,e,o,f;e=new o5e({props:{spec:t[2]}});let r=t[1]&&RD(t);return{c(){n=Gh("div"),u0(e.$$.fragment),o=J4(),r&&r.c(),Aa(n,"class","flex flex-col justify-center items-center w-full h-full")},m(a,u){uf(a,n,u),c0(e,n,null),zf(n,o),r&&r.m(n,null),f=!0},p(a,u){const c={};u&4&&(c.spec=a[2]),e.$set(c),a[1]?r?r.p(a,u):(r=RD(a),r.c(),r.m(n,null)):r&&(r.d(1),r=null)},i(a){f||(Bh(e.$$.fragment,a),f=!0)},o(a){jh(e.$$.fragment,a),f=!1},d(a){a&&cf(n),f0(e),r&&r.d()}}}function f5e(t){let n;return{c(){n=Gh("div"),Aa(n,"id","bokehDiv")},m(e,o){uf(e,n,o)},p:cu,i:cu,o:cu,d(e){e&&cf(n)}}}function h5e(t){let n;return{c(){n=Gh("div")},m(e,o){uf(e,n,o),t[8](n)},p:cu,i:cu,o:cu,d(e){e&&cf(n),t[8](null)}}}function RD(t){let n,e;return{c(){n=Gh("div"),e=LG(t[1]),Aa(n,"class","flex justify-center text-xs w-full h-full text-black dark:text-slate-200 ")},m(o,f){uf(o,n,f),zf(n,e)},p(o,f){f&2&&PG(e,o[1])},d(o){o&&cf(n)}}}function d5e(t){let n,e,o,f;const r=[h5e,f5e,c5e,u5e,l5e],a=[];function u(c,i){return c[0]&&c[0].type=="plotly"?0:c[0]&&c[0].type=="bokeh"?1:c[0]&&c[0].type=="altair"?2:c[0]&&c[0].type=="matplotlib"?3:4}return n=u(t),e=a[n]=r[n](t),{c(){e.c(),o=SG()},m(c,i){a[n].m(c,i),uf(c,o,i),f=!0},p(c,[i]){let s=n;n=u(c),n===s?a[n].p(c,i):(EG(),jh(a[s],1,1,()=>{a[s]=null}),CG(),e=a[n],e?e.p(c,i):(e=a[n]=r[n](c),e.c()),Bh(e,1),e.m(o.parentNode,o))},i(c){f||(Bh(e),f=!0)},o(c){jh(e),f=!1},d(c){a[n].d(c),c&&cf(o)}}}const p5e="https://cdn.bokeh.org/bokeh/release/bokeh-2.4.2.min.js";function g5e(t,n,e){let o,{value:f}=n,{target:r}=n,a=null,{colors:u=[]}=n,{theme:c}=n,{caption:i}=n;function s(M){let A=u[M%u.length];return A&&A in M5?M5[A]?.primary:A||M5[BG(M)].primary}let l,d;const h=["https://cdn.pydata.org/bokeh/release/bokeh-widgets-2.4.2.min.js","https://cdn.pydata.org/bokeh/release/bokeh-tables-2.4.2.min.js","https://cdn.pydata.org/bokeh/release/bokeh-gl-2.4.2.min.js","https://cdn.pydata.org/bokeh/release/bokeh-api-2.4.2.min.js"];function m(){return h.map((M,A)=>{const S=document.createElement("script");return S.onload=()=>k(A+1),S.src=M,document.head.appendChild(S),S})}function g(){const M=document.createElement("script");return M.onload=T,M.src=p5e,document.head.appendChild(M),M}function p(){if(!d){d=document.getElementById("plotly.js-style-global");const M=d.cloneNode();r.appendChild(M);for(const A of d.sheet.cssRules)M.sheet.insertRule(A.cssText)}}const v=g();let y=[];const x=[],w=Array(5).fill(0).map((M,A)=>b(A)),k=M=>{f&&f.type=="bokeh"&&x[M]()};function b(M){return new Promise((A,S)=>{x[M]=A})}function T(){k(0),y=m()}Promise.all(w).then(()=>{let M=JSON.parse(f.plot);window.Bokeh.embed.embed_item(M,"bokehDiv")}),OG(()=>{if(f&&f.type=="plotly"){p();let M=JSON.parse(f.plot);M.layout.title?M.layout.margin={autoexpand:!0}:M.layout.margin={l:0,r:0,b:0,t:0},dW.react(l,M)}else if(f&&f.type=="bokeh"){document.getElementById("bokehDiv").innerHTML="";let M=JSON.parse(f.plot);window.Bokeh.embed.embed_item(M,"bokehDiv")}}),FD(()=>{v in document.children&&(document.removeChild(v),y.forEach(M=>document.removeChild(M)))});function _(M){gA[M?"unshift":"push"](()=>{l=M,e(3,l)})}return t.$$set=M=>{"value"in M&&e(0,f=M.value),"target"in M&&e(4,r=M.target),"colors"in M&&e(5,u=M.colors),"theme"in M&&e(6,c=M.theme),"caption"in M&&e(1,i=M.caption)},t.$$.update=()=>{if(t.$$.dirty&64&&e(7,o=c=="dark"),t.$$.dirty&133&&f&&f.type=="altair"){e(2,a=JSON.parse(f.plot));const M=s5e(o);switch(e(2,a.config=M,a),f.chart||""){case"scatter":a.encoding.color&&a.encoding.color.type=="nominal"?e(2,a.encoding.color.scale.range=a.encoding.color.scale.range.map((A,S)=>s(S)),a):a.encoding.color&&a.encoding.color.type=="quantitative"&&(e(2,a.encoding.color.scale.range=["#eff6ff","#1e3a8a"],a),e(2,a.encoding.color.scale.range.interpolate="hsl",a));break}}},[f,i,a,l,r,u,c,o,_]}class m5e extends by{constructor(n){super(),_y(this,n,g5e,d5e,wy,{value:0,target:4,colors:5,theme:6,caption:1})}}function v5e(t){let n,e,o,f,r,a;n=new fW({props:{show_label:t[5],label:t[4]||"Plot",Icon:VD}});const u=[t[3]];let c={};for(let i=0;i{"value"in m&&e(0,o=m.value),"elem_id"in m&&e(1,f=m.elem_id),"visible"in m&&e(2,r=m.visible),"loading_status"in m&&e(3,a=m.loading_status),"label"in m&&e(4,u=m.label),"show_label"in m&&e(5,c=m.show_label),"target"in m&&e(6,i=m.target),"style"in m&&e(7,s=m.style),"theme"in m&&e(8,l=m.theme),"caption"in m&&e(9,d=m.caption)},[o,f,r,a,u,c,i,s,l,d,h]}class b5e extends by{constructor(n){super(),_y(this,n,x5e,y5e,wy,{value:0,elem_id:1,visible:2,loading_status:3,label:4,show_label:5,target:6,style:7,theme:8,caption:9})}}var S5e=b5e;const E5e=["static"];export{S5e as Component,E5e as modes}; +//# sourceMappingURL=index.6a107eaa.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.6a107eaa.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.6a107eaa.js.map new file mode 100644 index 0000000000000000000000000000000000000000..1fd16f13d42fd6174a8a784d686160cd8c9179ca --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.6a107eaa.js.map @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9a99a51f829fcacb45dfe59317a5e994f0fccc74dfbbb05340e1216469a51ef +size 11506549 diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.6b15cb73.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.6b15cb73.js new file mode 100644 index 0000000000000000000000000000000000000000..879aac1de49c7064516d34013c10bce16ff7c1a3 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.6b15cb73.js @@ -0,0 +1,4 @@ +const VERSION_RE = new RegExp("3.14.0/", "g");function import_fix(mod, base) {const url = new URL(mod, base); return import(`https://gradio.s3-us-west-2.amazonaws.com/3.14.0/${url.pathname?.startsWith('/') ? url.pathname.substring(1).replace(VERSION_RE, "") : url.pathname.replace(VERSION_RE, "")}`);}import{S as me,i as ce,s as be,w as Pe,b as c,f as y,g as E,x as j,n as S,e as P,d as A,l as R,y as de,z as Ve,t as C,h as N,A as re,B as ue,a as z,C as ul,c as q,m as G,j as F,k as T,o as Z,D as ge,E as he,F as He,G as Ml,H as Fl,I as Me,J as Il,_ as Ue,K as X,L as ol,M as Re,N as Tl,O as _l,P as Bl,Q as Dl,X as Ll,R as Ul,T as Cl,U as Nl,V as Ol}from"./index.cb50929e.js";import{U as Kl}from"./Upload.5e38559f.js";import{M as jl}from"./ModifyUpload.e869f7e2.js";import{B as dl}from"./BlockLabel.4b1193ac.js";import{n as zl}from"./utils.27234e1d.js";function Ql(l){let e,i,n,a;return{c(){e=Pe("svg"),i=Pe("path"),n=Pe("circle"),a=Pe("circle"),c(i,"d","M9 18V5l12-2v13"),c(n,"cx","6"),c(n,"cy","18"),c(n,"r","3"),c(a,"cx","18"),c(a,"cy","16"),c(a,"r","3"),c(e,"xmlns","http://www.w3.org/2000/svg"),c(e,"width","100%"),c(e,"height","100%"),c(e,"viewBox","0 0 24 24"),c(e,"fill","none"),c(e,"stroke","currentColor"),c(e,"stroke-width","1.5"),c(e,"stroke-linecap","round"),c(e,"stroke-linejoin","round"),c(e,"class","feather feather-music")},m(f,t){y(f,e,t),E(e,i),E(e,n),E(e,a)},p:j,i:j,o:j,d(f){f&&S(e)}}}class Be extends me{constructor(e){super(),ce(this,e,null,Ql,be,{})}}function Ce(l,e,i){const n=l.slice();return n[27]=e[i],n[29]=i,n}function Ne(l){let e,i,n,a,f=(l[6]==="label"||l[7]==="label")&&Oe(l);return{c(){e=P("span"),f&&f.c(),c(e,"class","pip first"),c(e,"style",i=l[14]+": 0%;"),A(e,"selected",l[17](l[0])),A(e,"in-range",l[16](l[0]))},m(t,u){y(t,e,u),f&&f.m(e,null),n||(a=[R(e,"click",function(){de(l[20](l[0]))&&l[20](l[0]).apply(this,arguments)}),R(e,"touchend",Ve(function(){de(l[20](l[0]))&&l[20](l[0]).apply(this,arguments)}))],n=!0)},p(t,u){l=t,l[6]==="label"||l[7]==="label"?f?f.p(l,u):(f=Oe(l),f.c(),f.m(e,null)):f&&(f.d(1),f=null),u&16384&&i!==(i=l[14]+": 0%;")&&c(e,"style",i),u&131073&&A(e,"selected",l[17](l[0])),u&65537&&A(e,"in-range",l[16](l[0]))},d(t){t&&S(e),f&&f.d(),n=!1,re(a)}}}function Oe(l){let e,i=l[12](l[0],0,0)+"",n,a=l[10]&&Ke(l),f=l[11]&&je(l);return{c(){e=P("span"),a&&a.c(),n=C(i),f&&f.c(),c(e,"class","pipVal")},m(t,u){y(t,e,u),a&&a.m(e,null),E(e,n),f&&f.m(e,null)},p(t,u){t[10]?a?a.p(t,u):(a=Ke(t),a.c(),a.m(e,n)):a&&(a.d(1),a=null),u&4097&&i!==(i=t[12](t[0],0,0)+"")&&N(n,i),t[11]?f?f.p(t,u):(f=je(t),f.c(),f.m(e,null)):f&&(f.d(1),f=null)},d(t){t&&S(e),a&&a.d(),f&&f.d()}}}function Ke(l){let e,i;return{c(){e=P("span"),i=C(l[10]),c(e,"class","pipVal-prefix")},m(n,a){y(n,e,a),E(e,i)},p(n,a){a&1024&&N(i,n[10])},d(n){n&&S(e)}}}function je(l){let e,i;return{c(){e=P("span"),i=C(l[11]),c(e,"class","pipVal-suffix")},m(n,a){y(n,e,a),E(e,i)},p(n,a){a&2048&&N(i,n[11])},d(n){n&&S(e)}}}function ze(l){let e,i=Array(l[19]+1),n=[];for(let a=0;ad}=e,{focus:U=void 0}=e,{orientationStart:Y=void 0}=e,{percentOf:ee=void 0}=e,{moveHandle:W=void 0}=e;function ae(d){W(void 0,d)}return l.$$set=d=>{"range"in d&&i(21,_=d.range),"min"in d&&i(0,g=d.min),"max"in d&&i(1,o=d.max),"step"in d&&i(22,s=d.step),"values"in d&&i(23,m=d.values),"vertical"in d&&i(2,k=d.vertical),"reversed"in d&&i(3,p=d.reversed),"hoverable"in d&&i(4,h=d.hoverable),"disabled"in d&&i(5,V=d.disabled),"pipstep"in d&&i(24,w=d.pipstep),"all"in d&&i(6,I=d.all),"first"in d&&i(7,Q=d.first),"last"in d&&i(8,D=d.last),"rest"in d&&i(9,O=d.rest),"prefix"in d&&i(10,B=d.prefix),"suffix"in d&&i(11,J=d.suffix),"formatter"in d&&i(12,$=d.formatter),"focus"in d&&i(13,U=d.focus),"orientationStart"in d&&i(14,Y=d.orientationStart),"percentOf"in d&&i(15,ee=d.percentOf),"moveHandle"in d&&i(25,W=d.moveHandle)},l.$$.update=()=>{l.$$.dirty&20971527&&i(26,n=w||((o-g)/s>=(k?50:100)?(o-g)/(k?10:20):1)),l.$$.dirty&71303171&&i(19,a=parseInt((o-g)/(s*n),10)),l.$$.dirty&71303169&&i(18,f=function(d){return g+d*s*n}),l.$$.dirty&8388608&&i(17,t=function(d){return m.some(se=>se===d)}),l.$$.dirty&10485760&&i(16,u=function(d){if(_==="min")return m[0]>d;if(_==="max")return m[0]d})},[g,o,k,p,h,V,I,Q,D,O,B,J,$,U,Y,ee,u,t,f,a,ae,_,s,m,w,W,n]}class ql extends me{constructor(e){super(),ce(this,e,Xl,Yl,be,{range:21,min:0,max:1,step:22,values:23,vertical:2,reversed:3,hoverable:4,disabled:5,pipstep:24,all:6,first:7,last:8,rest:9,prefix:10,suffix:11,formatter:12,focus:13,orientationStart:14,percentOf:15,moveHandle:25})}}function $e(l,e,i){const n=l.slice();return n[63]=e[i],n[65]=i,n}function el(l){let e,i=l[21](l[63],l[65],l[23](l[63]))+"",n,a=l[18]&&ll(l),f=l[19]&&nl(l);return{c(){e=P("span"),a&&a.c(),n=C(i),f&&f.c(),c(e,"class","rangeFloat")},m(t,u){y(t,e,u),a&&a.m(e,null),E(e,n),f&&f.m(e,null)},p(t,u){t[18]?a?a.p(t,u):(a=ll(t),a.c(),a.m(e,n)):a&&(a.d(1),a=null),u[0]&10485761&&i!==(i=t[21](t[63],t[65],t[23](t[63]))+"")&&N(n,i),t[19]?f?f.p(t,u):(f=nl(t),f.c(),f.m(e,null)):f&&(f.d(1),f=null)},d(t){t&&S(e),a&&a.d(),f&&f.d()}}}function ll(l){let e,i;return{c(){e=P("span"),i=C(l[18]),c(e,"class","rangeFloat-prefix")},m(n,a){y(n,e,a),E(e,i)},p(n,a){a[0]&262144&&N(i,n[18])},d(n){n&&S(e)}}}function nl(l){let e,i;return{c(){e=P("span"),i=C(l[19]),c(e,"class","rangeFloat-suffix")},m(n,a){y(n,e,a),E(e,i)},p(n,a){a[0]&524288&&N(i,n[19])},d(n){n&&S(e)}}}function il(l){let e,i,n,a,f,t,u,_,g,o,s,m,k,p=l[7]&&el(l);return{c(){e=P("span"),i=P("span"),n=z(),p&&p.c(),c(i,"class","rangeNub"),c(e,"role","slider"),c(e,"class","rangeHandle"),c(e,"data-handle",a=l[65]),c(e,"style",f=l[28]+": "+l[29][l[65]]+"%; z-index: "+(l[26]===l[65]?3:2)+";"),c(e,"aria-valuemin",t=l[2]===!0&&l[65]===1?l[0][0]:l[3]),c(e,"aria-valuemax",u=l[2]===!0&&l[65]===0?l[0][1]:l[4]),c(e,"aria-valuenow",_=l[63]),c(e,"aria-valuetext",g=""+(l[18]+l[21](l[63],l[65],l[23](l[63]))+l[19])),c(e,"aria-orientation",o=l[6]?"vertical":"horizontal"),c(e,"aria-disabled",l[10]),c(e,"disabled",l[10]),c(e,"tabindex",s=l[10]?-1:0),A(e,"active",l[24]&&l[26]===l[65]),A(e,"press",l[25]&&l[26]===l[65])},m(h,V){y(h,e,V),E(e,i),E(e,n),p&&p.m(e,null),m||(k=[R(e,"blur",l[33]),R(e,"focus",l[34]),R(e,"keydown",l[35])],m=!0)},p(h,V){h[7]?p?p.p(h,V):(p=el(h),p.c(),p.m(e,null)):p&&(p.d(1),p=null),V[0]&872415232&&f!==(f=h[28]+": "+h[29][h[65]]+"%; z-index: "+(h[26]===h[65]?3:2)+";")&&c(e,"style",f),V[0]&13&&t!==(t=h[2]===!0&&h[65]===1?h[0][0]:h[3])&&c(e,"aria-valuemin",t),V[0]&21&&u!==(u=h[2]===!0&&h[65]===0?h[0][1]:h[4])&&c(e,"aria-valuemax",u),V[0]&1&&_!==(_=h[63])&&c(e,"aria-valuenow",_),V[0]&11272193&&g!==(g=""+(h[18]+h[21](h[63],h[65],h[23](h[63]))+h[19]))&&c(e,"aria-valuetext",g),V[0]&64&&o!==(o=h[6]?"vertical":"horizontal")&&c(e,"aria-orientation",o),V[0]&1024&&c(e,"aria-disabled",h[10]),V[0]&1024&&c(e,"disabled",h[10]),V[0]&1024&&s!==(s=h[10]?-1:0)&&c(e,"tabindex",s),V[0]&83886080&&A(e,"active",h[24]&&h[26]===h[65]),V[0]&100663296&&A(e,"press",h[25]&&h[26]===h[65])},d(h){h&&S(e),p&&p.d(),m=!1,re(k)}}}function al(l){let e,i;return{c(){e=P("span"),c(e,"class","rangeBar"),c(e,"style",i=l[28]+": "+l[31](l[29])+"%; "+l[27]+": "+l[32](l[29])+"%;")},m(n,a){y(n,e,a)},p(n,a){a[0]&939524096&&i!==(i=n[28]+": "+n[31](n[29])+"%; "+n[27]+": "+n[32](n[29])+"%;")&&c(e,"style",i)},d(n){n&&S(e)}}}function fl(l){let e,i;return e=new ql({props:{values:l[0],min:l[3],max:l[4],step:l[5],range:l[2],vertical:l[6],reversed:l[8],orientationStart:l[28],hoverable:l[9],disabled:l[10],all:l[13],first:l[14],last:l[15],rest:l[16],pipstep:l[12],prefix:l[18],suffix:l[19],formatter:l[20],focus:l[24],percentOf:l[23],moveHandle:l[30]}}),{c(){q(e.$$.fragment)},m(n,a){G(e,n,a),i=!0},p(n,a){const f={};a[0]&1&&(f.values=n[0]),a[0]&8&&(f.min=n[3]),a[0]&16&&(f.max=n[4]),a[0]&32&&(f.step=n[5]),a[0]&4&&(f.range=n[2]),a[0]&64&&(f.vertical=n[6]),a[0]&256&&(f.reversed=n[8]),a[0]&268435456&&(f.orientationStart=n[28]),a[0]&512&&(f.hoverable=n[9]),a[0]&1024&&(f.disabled=n[10]),a[0]&8192&&(f.all=n[13]),a[0]&16384&&(f.first=n[14]),a[0]&32768&&(f.last=n[15]),a[0]&65536&&(f.rest=n[16]),a[0]&4096&&(f.pipstep=n[12]),a[0]&262144&&(f.prefix=n[18]),a[0]&524288&&(f.suffix=n[19]),a[0]&1048576&&(f.formatter=n[20]),a[0]&16777216&&(f.focus=n[24]),a[0]&8388608&&(f.percentOf=n[23]),e.$set(f)},i(n){i||(F(e.$$.fragment,n),i=!0)},o(n){T(e.$$.fragment,n),i=!1},d(n){Z(e,n)}}}function Gl(l){let e,i,n,a,f,t,u=l[0],_=[];for(let s=0;s{o=null}),he()),(!a||m[0]&131072)&&c(e,"id",s[17]),m[0]&4&&A(e,"range",s[2]),m[0]&1024&&A(e,"disabled",s[10]),m[0]&512&&A(e,"hoverable",s[9]),m[0]&64&&A(e,"vertical",s[6]),m[0]&256&&A(e,"reversed",s[8]),m[0]&16777216&&A(e,"focus",s[24]),m[0]&4&&A(e,"min",s[2]==="min"),m[0]&4&&A(e,"max",s[2]==="max"),m[0]&2048&&A(e,"pips",s[11]),m[0]&122880&&A(e,"pip-labels",s[13]==="label"||s[14]==="label"||s[15]==="label"||s[16]==="label")},i(s){a||(F(o),a=!0)},o(s){T(o),a=!1},d(s){s&&S(e),ul(_,s),g&&g.d(),o&&o.d(),l[49](null),f=!1,re(t)}}}function tl(l){if(!l)return-1;for(var e=0;l=l.previousElementSibling;)e++;return e}function Te(l){return l.type.includes("touch")?l.touches[0]:l}function Zl(l,e,i){let n,a,f,t,u,_,g=j,o=()=>(g(),g=Fl(ne,r=>i(29,_=r)),ne);l.$$.on_destroy.push(()=>g());let{slider:s}=e,{range:m=!1}=e,{pushy:k=!1}=e,{min:p=0}=e,{max:h=100}=e,{step:V=1}=e,{values:w=[(h+p)/2]}=e,{vertical:I=!1}=e,{float:Q=!1}=e,{reversed:D=!1}=e,{hoverable:O=!0}=e,{disabled:B=!1}=e,{pips:J=!1}=e,{pipstep:$=void 0}=e,{all:U=void 0}=e,{first:Y=void 0}=e,{last:ee=void 0}=e,{rest:W=void 0}=e,{id:ae=void 0}=e,{prefix:d=""}=e,{suffix:se=""}=e,{formatter:ke=(r,v,M)=>r}=e,{handleFormatter:Ee=ke}=e,{precision:x=2}=e,{springValues:pe={stiffness:.15,damping:.4}}=e;const we=He();let ve=0,le=!1,fe=!1,te=!1,Ae=!1,b=w.length-1,L,K,ne;function Fe(r){const v=s.querySelectorAll(".handle"),M=Array.prototype.includes.call(v,r),H=Array.prototype.some.call(v,ie=>ie.contains(r));return M||H}function Ie(r){return m==="min"||m==="max"?r.slice(0,1):m?r.slice(0,2):r}function oe(){return s.getBoundingClientRect()}function ye(r){const v=oe();let M=0,H=0,ie=0;I?(M=r.clientY-v.top,H=M/v.height*100,H=D?H:100-H):(M=r.clientX-v.left,H=M/v.width*100,H=D?100-H:H),ie=(h-p)/100*H+p;let Le;return m===!0&&w[0]===w[1]?ie>w[1]?1:0:(Le=w.indexOf([...w].sort((Rl,Hl)=>Math.abs(ie-Rl)-Math.abs(ie-Hl))[0]),Le)}function Se(r){const v=oe();let M=0,H=0,ie=0;I?(M=r.clientY-v.top,H=M/v.height*100,H=D?H:100-H):(M=r.clientX-v.left,H=M/v.width*100,H=D?100-H:H),ie=(h-p)/100*H+p,_e(b,ie)}function _e(r,v){return v=f(v),typeof r>"u"&&(r=b),m&&(r===0&&v>w[1]?k?i(0,w[1]=v,w):v=w[1]:r===1&&vf(r))})}function De(){!B&&we("stop",{activeHandle:b,startValue:L,value:w[b],values:w.map(r=>f(r))})}function El(){!B&&we("change",{activeHandle:b,startValue:L,previousValue:typeof K>"u"?L:K,value:w[b],values:w.map(r=>f(r))})}function Pl(r){Me[r?"unshift":"push"](()=>{s=r,i(1,s)})}return l.$$set=r=>{"slider"in r&&i(1,s=r.slider),"range"in r&&i(2,m=r.range),"pushy"in r&&i(43,k=r.pushy),"min"in r&&i(3,p=r.min),"max"in r&&i(4,h=r.max),"step"in r&&i(5,V=r.step),"values"in r&&i(0,w=r.values),"vertical"in r&&i(6,I=r.vertical),"float"in r&&i(7,Q=r.float),"reversed"in r&&i(8,D=r.reversed),"hoverable"in r&&i(9,O=r.hoverable),"disabled"in r&&i(10,B=r.disabled),"pips"in r&&i(11,J=r.pips),"pipstep"in r&&i(12,$=r.pipstep),"all"in r&&i(13,U=r.all),"first"in r&&i(14,Y=r.first),"last"in r&&i(15,ee=r.last),"rest"in r&&i(16,W=r.rest),"id"in r&&i(17,ae=r.id),"prefix"in r&&i(18,d=r.prefix),"suffix"in r&&i(19,se=r.suffix),"formatter"in r&&i(20,ke=r.formatter),"handleFormatter"in r&&i(21,Ee=r.handleFormatter),"precision"in r&&i(44,x=r.precision),"springValues"in r&&i(45,pe=r.springValues)},l.$$.update=()=>{l.$$.dirty[0]&24&&i(48,a=function(r){return r<=p?p:r>=h?h:r}),l.$$.dirty[0]&56|l.$$.dirty[1]&139264&&i(47,f=function(r){if(r<=p)return p;if(r>=h)return h;let v=(r-p)%V,M=r-v;return Math.abs(v)*2>=V&&(M+=v>0?V:-V),M=a(M),parseFloat(M.toFixed(x))}),l.$$.dirty[0]&24|l.$$.dirty[1]&8192&&i(23,n=function(r){let v=(r-p)/(h-p)*100;return isNaN(v)||v<=0?0:v>=100?100:parseFloat(v.toFixed(x))}),l.$$.dirty[0]&12582937|l.$$.dirty[1]&114688&&(Array.isArray(w)||(i(0,w=[(h+p)/2]),console.error("'values' prop should be an Array (https://github.com/simeydotme/svelte-range-slider-pips#slider-props)")),i(0,w=Ie(w.map(r=>f(r)))),ve!==w.length?o(i(22,ne=Ml(w.map(r=>n(r)),pe))):ne.set(w.map(r=>n(r))),i(46,ve=w.length)),l.$$.dirty[0]&320&&i(28,t=I?D?"top":"bottom":D?"right":"left"),l.$$.dirty[0]&320&&i(27,u=I?D?"bottom":"top":D?"left":"right")},[w,s,m,p,h,V,I,Q,D,O,B,J,$,U,Y,ee,W,ae,d,se,ke,Ee,ne,n,le,te,b,u,t,_,_e,ml,cl,bl,gl,hl,kl,pl,wl,vl,Al,yl,Sl,k,x,pe,ve,f,a,Pl]}class Jl extends me{constructor(e){super(),ce(this,e,Zl,Gl,be,{slider:1,range:2,pushy:43,min:3,max:4,step:5,values:0,vertical:6,float:7,reversed:8,hoverable:9,disabled:10,pips:11,pipstep:12,all:13,first:14,last:15,rest:16,id:17,prefix:18,suffix:19,formatter:20,handleFormatter:21,precision:44,springValues:45},null,[-1,-1,-1])}}function Wl(l){let e,i,n,a,f,t,u,_,g;e=new jl({props:{editable:!0,absolute:!1}}),e.$on("clear",l[15]),e.$on("edit",l[28]);let o=l[10]==="edit"&&l[11]?.duration&&sl(l);return{c(){q(e.$$.fragment),i=z(),n=P("audio"),f=z(),o&&o.c(),t=ue(),c(n,"class","w-full h-14 p-2"),n.controls=!0,c(n,"preload","metadata"),Re(n.src,a=l[1].data)||c(n,"src",a)},m(s,m){G(e,s,m),y(s,i,m),y(s,n,m),l[29](n),y(s,f,m),o&&o.m(s,m),y(s,t,m),u=!0,_||(g=[Tl(l[16].call(null,n)),R(n,"play",l[24]),R(n,"pause",l[25]),R(n,"ended",l[26])],_=!0)},p(s,m){(!u||m[0]&2&&!Re(n.src,a=s[1].data))&&c(n,"src",a),s[10]==="edit"&&s[11]?.duration?o?(o.p(s,m),m[0]&3072&&F(o,1)):(o=sl(s),o.c(),F(o,1),o.m(t.parentNode,t)):o&&(ge(),T(o,1,1,()=>{o=null}),he())},i(s){u||(F(e.$$.fragment,s),F(o),u=!0)},o(s){T(e.$$.fragment,s),T(o),u=!1},d(s){Z(e,s),s&&S(i),s&&S(n),l[29](null),s&&S(f),o&&o.d(s),s&&S(t),_=!1,re(g)}}}function xl(l){let e,i,n,a;const f=[en,$l],t=[];function u(_,g){return _[4]==="microphone"?0:_[4]==="upload"?1:-1}return~(e=u(l))&&(i=t[e]=f[e](l)),{c(){i&&i.c(),n=ue()},m(_,g){~e&&t[e].m(_,g),y(_,n,g),a=!0},p(_,g){let o=e;e=u(_),e===o?~e&&t[e].p(_,g):(i&&(ge(),T(t[o],1,1,()=>{t[o]=null}),he()),~e?(i=t[e],i?i.p(_,g):(i=t[e]=f[e](_),i.c()),F(i,1),i.m(n.parentNode,n)):i=null)},i(_){a||(F(i),a=!0)},o(_){T(i),a=!1},d(_){~e&&t[e].d(_),_&&S(n)}}}function sl(l){let e,i,n;function a(t){l[30](t)}let f={range:!0,min:0,max:100,step:1};return l[12]!==void 0&&(f.values=l[12]),e=new Jl({props:f}),Me.push(()=>_l(e,"values",a)),e.$on("change",l[17]),{c(){q(e.$$.fragment)},m(t,u){G(e,t,u),n=!0},p(t,u){const _={};!i&&u[0]&4096&&(i=!0,_.values=t[12],ol(()=>i=!1)),e.$set(_)},i(t){n||(F(e.$$.fragment,t),n=!0)},o(t){T(e.$$.fragment,t),n=!1},d(t){Z(e,t)}}}function $l(l){let e,i,n;function a(t){l[27](t)}let f={filetype:"audio/*",$$slots:{default:[ln]},$$scope:{ctx:l}};return l[0]!==void 0&&(f.dragging=l[0]),e=new Kl({props:f}),Me.push(()=>_l(e,"dragging",a)),e.$on("load",l[18]),{c(){q(e.$$.fragment)},m(t,u){G(e,t,u),n=!0},p(t,u){const _={};u[0]&448|u[1]&512&&(_.$$scope={dirty:u,ctx:t}),!i&&u[0]&1&&(i=!0,_.dragging=t[0],ol(()=>i=!1)),e.$set(_)},i(t){n||(F(e.$$.fragment,t),n=!0)},o(t){T(e.$$.fragment,t),n=!1},d(t){Z(e,t)}}}function en(l){let e;function i(f,t){return f[9]?an:nn}let n=i(l),a=n(l);return{c(){e=P("div"),a.c(),c(e,"class","mt-6 p-2")},m(f,t){y(f,e,t),a.m(e,null)},p(f,t){n===(n=i(f))&&a?a.p(f,t):(a.d(1),a=n(f),a&&(a.c(),a.m(e,null)))},i:j,o:j,d(f){f&&S(e),a.d()}}}function ln(l){let e,i,n,a,f,t,u,_,g;return{c(){e=P("div"),i=C(l[6]),n=z(),a=P("span"),f=C("- "),t=C(l[7]),u=C(" -"),_=z(),g=C(l[8]),c(a,"class","text-gray-300"),c(e,"class","flex flex-col")},m(o,s){y(o,e,s),E(e,i),E(e,n),E(e,a),E(a,f),E(a,t),E(a,u),E(e,_),E(e,g)},p(o,s){s[0]&64&&N(i,o[6]),s[0]&128&&N(t,o[7]),s[0]&256&&N(g,o[8])},d(o){o&&S(e)}}}function nn(l){let e,i,n;return{c(){e=P("button"),e.innerHTML=` +
    Record from microphone
    `,c(e,"class","gr-button text-gray-800")},m(a,f){y(a,e,f),i||(n=R(e,"click",l[13]),i=!0)},p:j,d(a){a&&S(e),i=!1,n()}}}function an(l){let e,i,n;return{c(){e=P("button"),e.innerHTML=` + +
    Stop recording
    `,c(e,"class","gr-button !bg-red-500/10")},m(a,f){y(a,e,f),i||(n=R(e,"click",l[14]),i=!0)},p:j,d(a){a&&S(e),i=!1,n()}}}function fn(l){let e,i,n,a,f,t;e=new dl({props:{show_label:l[3],Icon:Be,label:l[2]||"Audio"}});const u=[xl,Wl],_=[];function g(o,s){return o[1]===null||o[5]?0:1}return n=g(l),a=_[n]=u[n](l),{c(){q(e.$$.fragment),i=z(),a.c(),f=ue()},m(o,s){G(e,o,s),y(o,i,s),_[n].m(o,s),y(o,f,s),t=!0},p(o,s){const m={};s[0]&8&&(m.show_label=o[3]),s[0]&4&&(m.label=o[2]||"Audio"),e.$set(m);let k=n;n=g(o),n===k?_[n].p(o,s):(ge(),T(_[k],1,1,()=>{_[k]=null}),he(),a=_[n],a?a.p(o,s):(a=_[n]=u[n](o),a.c()),F(a,1),a.m(f.parentNode,f))},i(o){t||(F(e.$$.fragment,o),F(a),t=!0)},o(o){T(e.$$.fragment,o),T(a),t=!1},d(o){Z(e,o),o&&S(i),_[n].d(o),o&&S(f)}}}const tn=500,rl=44;function sn(l){return new Promise((e,i)=>{let n=new FileReader;n.onerror=i,n.onload=()=>e(n.result),n.readAsDataURL(l)})}function rn(l,e,i){let{value:n=null}=e,{label:a}=e,{show_label:f}=e,{name:t}=e,{source:u}=e,{pending:_=!1}=e,{streaming:g=!1}=e,{drop_text:o="Drop an audio file"}=e,{or_text:s="or"}=e,{upload_text:m="click to upload"}=e,k=!1,p,h="",V,w=[],I=!1,Q,D=!1,O=[0,100],B=[],J;function $(){J=[Ue(()=>import_fix("./module.2849491a.js", import.meta.url),["assets/module.2849491a.js","assets/module.e2741a44.js"]),Ue(()=>import_fix("./module.d8037460.js", import.meta.url),["assets/module.d8037460.js","assets/module.e2741a44.js"])]}g&&$();const U=He(),Y=async(b,L)=>{let K=new Blob(b,{type:"audio/wav"});i(1,n={data:await sn(K),name:t}),U(L,n)};async function ee(){let b;try{b=await navigator.mediaDevices.getUserMedia({audio:!0})}catch(L){if(L instanceof DOMException&&L.name=="NotAllowedError"){U("error","Please allow access to the microphone for recording.");return}else throw L}if(b!=null){if(g){const[{MediaRecorder:L,register:K},{connect:ne}]=await Promise.all(J);await K(await ne()),p=new L(b,{mimeType:"audio/wav"});async function Fe(Ie){let oe=await Ie.data.arrayBuffer(),ye=new Uint8Array(oe);if(V||(i(21,V=new Uint8Array(oe.slice(0,rl))),ye=new Uint8Array(oe.slice(rl))),_)w.push(ye);else{let Se=[V].concat(w,[ye]);Y(Se,"stream"),i(22,w=[])}}p.addEventListener("dataavailable",Fe)}else p=new MediaRecorder(b),p.addEventListener("dataavailable",L=>{B.push(L.data)}),p.addEventListener("stop",async()=>{i(9,k=!1),await Y(B,"change"),B=[]});D=!0}}async function W(){i(9,k=!0),D||await ee(),i(21,V=void 0),g?p.start(tn):p.start()}Il(()=>{p&&p.state!=="inactive"&&p.stop()});const ae=async()=>{p.stop(),g&&(i(9,k=!1),_&&i(23,I=!0))};function d(){U("change"),U("clear"),i(10,h=""),i(1,n=null)}function se(b){function L(){const K=O[0]/100*b.duration,ne=O[1]/100*b.duration;b.currentTimene&&(b.currentTime=K,b.pause())}return b.addEventListener("timeupdate",L),{destroy:()=>b.removeEventListener("timeupdate",L)}}function ke({detail:{values:b}}){!n||(U("change",{data:n.data,name:t,crop_min:b[0],crop_max:b[1]}),U("edit"))}function Ee({detail:b}){i(1,n=b),U("change",{data:b.data,name:b.name}),U("upload",b)}let{dragging:x=!1}=e;function pe(b){X.call(this,l,b)}function we(b){X.call(this,l,b)}function ve(b){X.call(this,l,b)}function le(b){x=b,i(0,x)}const fe=()=>i(10,h="edit");function te(b){Me[b?"unshift":"push"](()=>{Q=b,i(11,Q)})}function Ae(b){O=b,i(12,O)}return l.$$set=b=>{"value"in b&&i(1,n=b.value),"label"in b&&i(2,a=b.label),"show_label"in b&&i(3,f=b.show_label),"name"in b&&i(19,t=b.name),"source"in b&&i(4,u=b.source),"pending"in b&&i(20,_=b.pending),"streaming"in b&&i(5,g=b.streaming),"drop_text"in b&&i(6,o=b.drop_text),"or_text"in b&&i(7,s=b.or_text),"upload_text"in b&&i(8,m=b.upload_text),"dragging"in b&&i(0,x=b.dragging)},l.$$.update=()=>{if(l.$$.dirty[0]&15728640&&I&&_===!1&&(i(23,I=!1),V&&w)){let b=[V].concat(w);i(22,w=[]),Y(b,"stream")}l.$$.dirty[0]&1&&U("drag",x)},[x,n,a,f,u,g,o,s,m,k,h,Q,O,W,ae,d,se,ke,Ee,t,_,V,w,I,pe,we,ve,le,fe,te,Ae]}class un extends me{constructor(e){super(),ce(this,e,rn,fn,be,{value:1,label:2,show_label:3,name:19,source:4,pending:20,streaming:5,drop_text:6,or_text:7,upload_text:8,dragging:0},null,[-1,-1])}}function on(l){let e,i,n,a;return{c(){e=P("audio"),c(e,"class","w-full h-14 p-2 mt-7"),e.controls=!0,c(e,"preload","metadata"),Re(e.src,i=l[0].data)||c(e,"src",i)},m(f,t){y(f,e,t),n||(a=[R(e,"play",l[4]),R(e,"pause",l[5]),R(e,"ended",l[6])],n=!0)},p(f,t){t&1&&!Re(e.src,i=f[0].data)&&c(e,"src",i)},i:j,o:j,d(f){f&&S(e),n=!1,re(a)}}}function _n(l){let e,i,n,a;return n=new Be({}),{c(){e=P("div"),i=P("div"),q(n.$$.fragment),c(i,"class","h-5 dark:text-white opacity-50"),c(e,"class","h-full min-h-[8rem] flex justify-center items-center")},m(f,t){y(f,e,t),E(e,i),G(n,i,null),a=!0},p:j,i(f){a||(F(n.$$.fragment,f),a=!0)},o(f){T(n.$$.fragment,f),a=!1},d(f){f&&S(e),Z(n)}}}function dn(l){let e,i,n,a,f,t;e=new dl({props:{show_label:l[2],Icon:Be,label:l[1]||"Audio"}});const u=[_n,on],_=[];function g(o,s){return o[0]===null?0:1}return n=g(l),a=_[n]=u[n](l),{c(){q(e.$$.fragment),i=z(),a.c(),f=ue()},m(o,s){G(e,o,s),y(o,i,s),_[n].m(o,s),y(o,f,s),t=!0},p(o,[s]){const m={};s&4&&(m.show_label=o[2]),s&2&&(m.label=o[1]||"Audio"),e.$set(m);let k=n;n=g(o),n===k?_[n].p(o,s):(ge(),T(_[k],1,1,()=>{_[k]=null}),he(),a=_[n],a?a.p(o,s):(a=_[n]=u[n](o),a.c()),F(a,1),a.m(f.parentNode,f))},i(o){t||(F(e.$$.fragment,o),F(a),t=!0)},o(o){T(e.$$.fragment,o),T(a),t=!1},d(o){Z(e,o),o&&S(i),_[n].d(o),o&&S(f)}}}function mn(l,e,i){let{value:n=null}=e,{label:a}=e,{name:f}=e,{show_label:t}=e;const u=He();function _(s){X.call(this,l,s)}function g(s){X.call(this,l,s)}function o(s){X.call(this,l,s)}return l.$$set=s=>{"value"in s&&i(0,n=s.value),"label"in s&&i(1,a=s.label),"name"in s&&i(3,f=s.name),"show_label"in s&&i(2,t=s.show_label)},l.$$.update=()=>{l.$$.dirty&9&&n&&u("change",{name:f,data:n?.data})},[n,a,t,f,_,g,o]}class cn extends me{constructor(e){super(),ce(this,e,mn,dn,be,{value:0,label:1,name:3,show_label:2})}}function bn(l){let e,i;return e=new cn({props:{show_label:l[8],value:l[11],name:l[11]?.name||"audio_file",label:l[7]}}),{c(){q(e.$$.fragment)},m(n,a){G(e,n,a),i=!0},p(n,a){const f={};a&256&&(f.show_label=n[8]),a&2048&&(f.value=n[11]),a&2048&&(f.name=n[11]?.name||"audio_file"),a&128&&(f.label=n[7]),e.$set(f)},i(n){i||(F(e.$$.fragment,n),i=!0)},o(n){T(e.$$.fragment,n),i=!1},d(n){Z(e,n)}}}function gn(l){let e,i;return e=new un({props:{label:l[7],show_label:l[8],value:l[11],name:l[5],source:l[6],pending:l[9],streaming:l[10],drop_text:l[13]("interface.drop_audio"),or_text:l[13]("or"),upload_text:l[13]("interface.click_to_upload")}}),e.$on("change",l[18]),e.$on("stream",l[19]),e.$on("drag",l[20]),e.$on("edit",l[21]),e.$on("play",l[22]),e.$on("pause",l[23]),e.$on("ended",l[24]),e.$on("upload",l[25]),e.$on("error",l[26]),{c(){q(e.$$.fragment)},m(n,a){G(e,n,a),i=!0},p(n,a){const f={};a&128&&(f.label=n[7]),a&256&&(f.show_label=n[8]),a&2048&&(f.value=n[11]),a&32&&(f.name=n[5]),a&64&&(f.source=n[6]),a&512&&(f.pending=n[9]),a&1024&&(f.streaming=n[10]),a&8192&&(f.drop_text=n[13]("interface.drop_audio")),a&8192&&(f.or_text=n[13]("or")),a&8192&&(f.upload_text=n[13]("interface.click_to_upload")),e.$set(f)},i(n){i||(F(e.$$.fragment,n),i=!0)},o(n){T(e.$$.fragment,n),i=!1},d(n){Z(e,n)}}}function hn(l){let e,i,n,a,f,t;const u=[l[1]];let _={};for(let m=0;m{o[h]=null}),he(),a=o[n],a?a.p(m,k):(a=o[n]=g[n](m),a.c()),F(a,1),a.m(f.parentNode,f))},i(m){t||(F(e.$$.fragment,m),F(a),t=!0)},o(m){T(e.$$.fragment,m),T(a),t=!1},d(m){Z(e,m),m&&S(i),o[n].d(m),m&&S(f)}}}function kn(l){let e,i;return e=new Bl({props:{variant:l[4]==="dynamic"&&l[0]===null&&l[6]==="upload"?"dashed":"solid",color:l[12]?"green":"grey",padding:!1,elem_id:l[2],visible:l[3],$$slots:{default:[hn]},$$scope:{ctx:l}}}),{c(){q(e.$$.fragment)},m(n,a){G(e,n,a),i=!0},p(n,[a]){const f={};a&81&&(f.variant=n[4]==="dynamic"&&n[0]===null&&n[6]==="upload"?"dashed":"solid"),a&4096&&(f.color=n[12]?"green":"grey"),a&4&&(f.elem_id=n[2]),a&8&&(f.visible=n[3]),a&134234099&&(f.$$scope={dirty:a,ctx:n}),e.$set(f)},i(n){i||(F(e.$$.fragment,n),i=!0)},o(n){T(e.$$.fragment,n),i=!1},d(n){Z(e,n)}}}function pn(l,e,i){let n;Dl(l,Ll,d=>i(13,n=d));let{style:a={}}=e;const f=He();let{elem_id:t=""}=e,{visible:u=!0}=e,{mode:_}=e,{value:g=null}=e,{name:o}=e,{source:s}=e,{label:m}=e,{root:k}=e,{show_label:p}=e,{pending:h}=e,{streaming:V}=e,{root_url:w}=e,{loading_status:I}=e,Q,D;const O=({detail:d})=>{i(0,g=d),f("change",g)},B=({detail:d})=>{i(0,g=d),f("stream",g)},J=({detail:d})=>i(12,D=d);function $(d){X.call(this,l,d)}function U(d){X.call(this,l,d)}function Y(d){X.call(this,l,d)}function ee(d){X.call(this,l,d)}function W(d){X.call(this,l,d)}const ae=({detail:d})=>{i(1,I=I||{}),i(1,I.status="error",I),i(1,I.message=d,I)};return l.$$set=d=>{"style"in d&&i(15,a=d.style),"elem_id"in d&&i(2,t=d.elem_id),"visible"in d&&i(3,u=d.visible),"mode"in d&&i(4,_=d.mode),"value"in d&&i(0,g=d.value),"name"in d&&i(5,o=d.name),"source"in d&&i(6,s=d.source),"label"in d&&i(7,m=d.label),"root"in d&&i(16,k=d.root),"show_label"in d&&i(8,p=d.show_label),"pending"in d&&i(9,h=d.pending),"streaming"in d&&i(10,V=d.streaming),"root_url"in d&&i(17,w=d.root_url),"loading_status"in d&&i(1,I=d.loading_status)},l.$$.update=()=>{l.$$.dirty&196609&&i(11,Q=zl(g,w??k))},[g,I,t,u,_,o,s,m,p,h,V,Q,D,n,f,a,k,w,O,B,J,$,U,Y,ee,W,ae]}class wn extends me{constructor(e){super(),ce(this,e,pn,kn,be,{style:15,elem_id:2,visible:3,mode:4,value:0,name:5,source:6,label:7,root:16,show_label:8,pending:9,streaming:10,root_url:17,loading_status:1})}}var En=wn;const Pn=["static","dynamic"],Rn=()=>({type:"{ name: string; data: string }",description:"audio data as base64 string",example_data:{name:"audio.wav",data:"data:audio/wav;base64,UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA="}});export{En as Component,Rn as document,Pn as modes}; diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.6b15cb73.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.6b15cb73.js.map new file mode 100644 index 0000000000000000000000000000000000000000..105a801e1cfae71f34bf183501d349a75103acb4 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.6b15cb73.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.6b15cb73.js","sources":["../../../../ui/packages/icons/src/Music.svelte","../../../../ui/node_modules/.pnpm/svelte-range-slider-pips@2.0.2/node_modules/svelte-range-slider-pips/src/RangePips.svelte","../../../../ui/node_modules/.pnpm/svelte-range-slider-pips@2.0.2/node_modules/svelte-range-slider-pips/src/RangeSlider.svelte","../../../../ui/packages/audio/src/Audio.svelte","../../../../ui/packages/audio/src/StaticAudio.svelte","../../../../ui/packages/app/src/components/Audio/Audio.svelte","../../../../ui/packages/app/src/components/Audio/index.ts"],"sourcesContent":["\n","\n\n\n\n
    \n {#if ( all && first !== false ) || first }\n \n {#if all === 'label' || first === 'label'}\n \n {#if prefix}{prefix}{/if}{formatter(min,0,0)}{#if suffix}{suffix}{/if}\n \n {/if}\n \n {/if}\n\n {#if ( all && rest !== false ) || rest}\n {#each Array(pipCount + 1) as _, i}\n {#if pipVal(i) !== min && pipVal(i) !== max}\n \n {#if all === 'label' || rest === 'label'}\n \n {#if prefix}{prefix}{/if}{formatter(pipVal(i),i,percentOf(pipVal(i)))}{#if suffix}{suffix}{/if}\n \n {/if}\n \n {/if}\n {/each}\n {/if}\n\n {#if ( all && last !== false ) || last}\n \n {#if all === 'label' || last === 'label'}\n \n {#if prefix}{prefix}{/if}{formatter(max,pipCount,100)}{#if suffix}{suffix}{/if}\n \n {/if}\n \n {/if}\n \n
    \n","\n\n\n\n\n {#each values as value, index}\n \n \n {#if float}\n \n {#if prefix}{prefix}{/if}{handleFormatter(value,index,percentOf(value))}{#if suffix}{suffix}{/if}\n \n {/if}\n \n {/each}\n {#if range}\n \n {/if}\n {#if pips}\n \n {/if}\n\n\n\n","\n\n\n\n\n{#if value === null || streaming}\n\t{#if source === \"microphone\"}\n\t\t
    \n\t\t\t{#if recording}\n\t\t\t\t\n\t\t\t{:else}\n\t\t\t\t\n\t\t\t{/if}\n\t\t
    \n\t{:else if source === \"upload\"}\n\t\t\n\t\t\t
    \n\t\t\t\t{drop_text}\n\t\t\t\t- {or_text} -\n\t\t\t\t{upload_text}\n\t\t\t
    \n\t\t
    \n\t{/if}\n{:else}\n\t (mode = \"edit\")}\n\t\teditable\n\t\tabsolute={false}\n\t/>\n\n\t\n\n\t{#if mode === \"edit\" && player?.duration}\n\t\t\n\t{/if}\n{/if}\n","\n\n\n\n\n{#if value === null}\n\t
    \n\t\t\n\t\t
    \n\t
    \n{:else}\n\t\n{/if}\n","\n\n\n\t\n\n\t{#if mode === \"dynamic\"}\n\t\t {\n\t\t\t\tvalue = detail;\n\t\t\t\tdispatch(\"change\", value);\n\t\t\t}}\n\t\t\ton:stream={({ detail }) => {\n\t\t\t\tvalue = detail;\n\t\t\t\tdispatch(\"stream\", value);\n\t\t\t}}\n\t\t\ton:drag={({ detail }) => (dragging = detail)}\n\t\t\t{name}\n\t\t\t{source}\n\t\t\t{pending}\n\t\t\t{streaming}\n\t\t\ton:edit\n\t\t\ton:play\n\t\t\ton:pause\n\t\t\ton:ended\n\t\t\ton:upload\n\t\t\ton:error={({ detail }) => {\n\t\t\t\tloading_status = loading_status || {};\n\t\t\t\tloading_status.status = \"error\";\n\t\t\t\tloading_status.message = detail;\n\t\t\t}}\n\t\t\tdrop_text={$_(\"interface.drop_audio\")}\n\t\t\tor_text={$_(\"or\")}\n\t\t\tupload_text={$_(\"interface.click_to_upload\")}\n\t\t/>\n\t{:else}\n\t\t\n\t{/if}\n\n","export { default as Component } from \"./Audio.svelte\";\nexport const modes = [\"static\", \"dynamic\"];\n\nexport const document = () => ({\n\ttype: \"{ name: string; data: string }\",\n\tdescription: \"audio data as base64 string\",\n\texample_data: {\n\t\tname: \"audio.wav\",\n\t\tdata: \"data:audio/wav;base64,UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA=\"\n\t}\n});\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.712d6db6.css b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.712d6db6.css new file mode 100644 index 0000000000000000000000000000000000000000..95c42cec798028dfb22a8042718ab313251a5faf --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.712d6db6.css @@ -0,0 +1 @@ +.rangeSlider{--pip:var(--range-pip, lightslategray);--pip-text:var(--range-pip-text, var(--pip));--pip-active:var(--range-pip-active, darkslategrey);--pip-active-text:var(--range-pip-active-text, var(--pip-active));--pip-hover:var(--range-pip-hover, darkslategrey);--pip-hover-text:var(--range-pip-hover-text, var(--pip-hover));--pip-in-range:var(--range-pip-in-range, var(--pip-active));--pip-in-range-text:var(--range-pip-in-range-text, var(--pip-active-text))}.rangePips{position:absolute;height:1em;left:0;right:0;bottom:-1em}.rangePips.vertical{height:auto;width:1em;inset:0 auto 0 100%}.rangePips .pip{height:.4em;position:absolute;top:.25em;width:1px;white-space:nowrap}.rangePips.vertical .pip{height:1px;width:.4em;left:.25em;top:auto;bottom:auto}.rangePips .pipVal{position:absolute;top:.4em;transform:translate(-50%,25%)}.rangePips.vertical .pipVal{position:absolute;top:0;left:.4em;transform:translate(25%,-50%)}.rangePips .pip{transition:all .15s ease}.rangePips .pipVal{transition:all .15s ease,font-weight 0s linear}.rangePips .pip{color:#789;color:var(--pip-text);background-color:#789;background-color:var(--pip)}.rangePips .pip.selected{color:#2f4f4f;color:var(--pip-active-text);background-color:#2f4f4f;background-color:var(--pip-active)}.rangePips.hoverable:not(.disabled) .pip:hover{color:#2f4f4f;color:var(--pip-hover-text);background-color:#2f4f4f;background-color:var(--pip-hover)}.rangePips .pip.in-range{color:#2f4f4f;color:var(--pip-in-range-text);background-color:#2f4f4f;background-color:var(--pip-in-range)}.rangePips .pip.selected{height:.75em}.rangePips.vertical .pip.selected{height:1px;width:.75em}.rangePips .pip.selected .pipVal{font-weight:700;top:.75em}.rangePips.vertical .pip.selected .pipVal{top:0;left:.75em}.rangePips.hoverable:not(.disabled) .pip:not(.selected):hover{transition:none}.rangePips.hoverable:not(.disabled) .pip:not(.selected):hover .pipVal{transition:none;font-weight:700}.rangeSlider{--slider:var(--range-slider, #d7dada);--handle-inactive:var(--range-handle-inactive, #99a2a2);--handle:var(--range-handle, #838de7);--handle-focus:var(--range-handle-focus, #4a40d4);--handle-border:var(--range-handle-border, var(--handle));--range-inactive:var(--range-range-inactive, var(--handle-inactive));--range:var(--range-range, var(--handle-focus));--float-inactive:var(--range-float-inactive, var(--handle-inactive));--float:var(--range-float, var(--handle-focus));--float-text:var(--range-float-text, white);position:relative;border-radius:100px;height:.5em;margin:1em;transition:opacity .2s ease;user-select:none}.rangeSlider *{user-select:none}.rangeSlider.pips{margin-bottom:1.8em}.rangeSlider.pip-labels{margin-bottom:2.8em}.rangeSlider.vertical{display:inline-block;border-radius:100px;width:.5em;min-height:200px}.rangeSlider.vertical.pips{margin-right:1.8em;margin-bottom:1em}.rangeSlider.vertical.pip-labels{margin-right:2.8em;margin-bottom:1em}.rangeSlider .rangeHandle{position:absolute;display:block;height:1.4em;width:1.4em;top:.25em;bottom:auto;transform:translateY(-50%) translate(-50%);z-index:2}.rangeSlider.reversed .rangeHandle{transform:translateY(-50%) translate(50%)}.rangeSlider.vertical .rangeHandle{left:.25em;top:auto;transform:translateY(50%) translate(-50%)}.rangeSlider.vertical.reversed .rangeHandle{transform:translateY(-50%) translate(-50%)}.rangeSlider .rangeNub,.rangeSlider .rangeHandle:before{position:absolute;left:0;top:0;display:block;border-radius:10em;height:100%;width:100%;transition:box-shadow .2s ease}.rangeSlider .rangeHandle:before{content:"";inset:1px;height:auto;width:auto;box-shadow:0 0 0 0 var(--handle-border);opacity:0}.rangeSlider.hoverable:not(.disabled) .rangeHandle:hover:before{box-shadow:0 0 0 8px var(--handle-border);opacity:.2}.rangeSlider.hoverable:not(.disabled) .rangeHandle.press:before,.rangeSlider.hoverable:not(.disabled) .rangeHandle.press:hover:before{box-shadow:0 0 0 12px var(--handle-border);opacity:.4}.rangeSlider.range:not(.min):not(.max) .rangeNub{border-radius:10em 10em 10em 1.6em}.rangeSlider.range .rangeHandle:nth-of-type(1) .rangeNub{transform:rotate(-135deg)}.rangeSlider.range .rangeHandle:nth-of-type(2) .rangeNub{transform:rotate(45deg)}.rangeSlider.range.reversed .rangeHandle:nth-of-type(1) .rangeNub{transform:rotate(45deg)}.rangeSlider.range.reversed .rangeHandle:nth-of-type(2) .rangeNub{transform:rotate(-135deg)}.rangeSlider.range.vertical .rangeHandle:nth-of-type(1) .rangeNub{transform:rotate(135deg)}.rangeSlider.range.vertical .rangeHandle:nth-of-type(2) .rangeNub{transform:rotate(-45deg)}.rangeSlider.range.vertical.reversed .rangeHandle:nth-of-type(1) .rangeNub{transform:rotate(-45deg)}.rangeSlider.range.vertical.reversed .rangeHandle:nth-of-type(2) .rangeNub{transform:rotate(135deg)}.rangeSlider .rangeFloat{display:block;position:absolute;left:50%;top:-.5em;transform:translate(-50%,-100%);text-align:center;opacity:0;pointer-events:none;white-space:nowrap;transition:all .2s ease;font-size:.9em;padding:.2em .4em;border-radius:.2em}.rangeSlider .rangeHandle.active .rangeFloat,.rangeSlider.hoverable .rangeHandle:hover .rangeFloat{opacity:1;top:-.2em;transform:translate(-50%,-100%)}.rangeSlider .rangeBar{position:absolute;display:block;transition:background .2s ease;border-radius:1em;height:.5em;top:0;user-select:none;z-index:1}.rangeSlider.vertical .rangeBar{width:.5em;height:auto}.rangeSlider{background-color:#d7dada;background-color:var(--slider)}.rangeSlider .rangeBar{background-color:#99a2a2;background-color:var(--range-inactive)}.rangeSlider.focus .rangeBar{background-color:#838de7;background-color:var(--range)}.rangeSlider .rangeNub{background-color:#99a2a2;background-color:var(--handle-inactive)}.rangeSlider.focus .rangeNub{background-color:#838de7;background-color:var(--handle)}.rangeSlider .rangeHandle.active .rangeNub{background-color:#4a40d4;background-color:var(--handle-focus)}.rangeSlider .rangeFloat{color:#fff;color:var(--float-text);background-color:#99a2a2;background-color:var(--float-inactive)}.rangeSlider.focus .rangeFloat{background-color:#4a40d4;background-color:var(--float)}.rangeSlider.disabled{opacity:.5}.rangeSlider.disabled .rangeNub{background-color:#d7dada;background-color:var(--slider)} diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.71efdad8.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.71efdad8.js new file mode 100644 index 0000000000000000000000000000000000000000..763d9163ed294453f9db38766df598ac81249171 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.71efdad8.js @@ -0,0 +1,2 @@ +import{S as f,i as r,s as d,p as m,e as c,b as _,d as u,f as v,u as g,q as b,r as h,j as p,k as G,n as q}from"./index.cb50929e.js";function C(n){let s,l;const o=n[3].default,t=m(o,n,n[2],null);return{c(){s=c("div"),t&&t.c(),_(s,"id",n[0]),_(s,"class","svelte-10ogue4"),u(s,"hidden",!n[1])},m(e,i){v(e,s,i),t&&t.m(s,null),l=!0},p(e,[i]){t&&t.p&&(!l||i&4)&&g(t,o,e,e[2],l?h(o,e[2],i,null):b(e[2]),null),(!l||i&1)&&_(s,"id",e[0]),i&2&&u(s,"hidden",!e[1])},i(e){l||(p(t,e),l=!0)},o(e){G(t,e),l=!1},d(e){e&&q(s),t&&t.d(e)}}}function S(n,s,l){let{$$slots:o={},$$scope:t}=s,{elem_id:e=""}=s,{visible:i=!0}=s;return n.$$set=a=>{"elem_id"in a&&l(0,e=a.elem_id),"visible"in a&&l(1,i=a.visible),"$$scope"in a&&l(2,t=a.$$scope)},[e,i,t,o]}class j extends f{constructor(s){super(),r(this,s,S,C,d,{elem_id:0,visible:1})}}var w=j;const y=["static"];export{w as Component,y as modes}; +//# sourceMappingURL=index.71efdad8.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.71efdad8.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.71efdad8.js.map new file mode 100644 index 0000000000000000000000000000000000000000..0d7ce87ae57cc59938fddd16e7b0f08de4e59adc --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.71efdad8.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.71efdad8.js","sources":["../../../../ui/packages/app/src/components/Group/Group.svelte","../../../../ui/packages/app/src/components/Group/index.ts"],"sourcesContent":["\n\n
    \n\t\n
    \n\n\n","export { default as Component } from \"./Group.svelte\";\nexport const modes = [\"static\"];\n"],"names":[],"mappings":"yOAOS,kDAAwB,cAAjC,4HAAS,yBAAwB,0HAJrB,UAAkB,OAClB,UAAmB,iOCHlB,GAAQ,CAAC,QAAQ"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.72f44ebf.css b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.72f44ebf.css new file mode 100644 index 0000000000000000000000000000000000000000..a8e10d6bda88dc19be39927585e164648344d37f --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.72f44ebf.css @@ -0,0 +1 @@ +.chat-message.svelte-1kgfmmo img{border-radius:13px;max-width:30vw} diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.77022d0b.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.77022d0b.js new file mode 100644 index 0000000000000000000000000000000000000000..dddb0396baa2ca3aa9940da53352b537aad4b105 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.77022d0b.js @@ -0,0 +1,2 @@ +import{S as E,i as F,s as I,a7 as K,e as h,c as T,a as A,b as g,f as w,g as v,m as B,a8 as S,l as j,am as D,j as C,k as M,n as k,o as R,A as L,F as O,t as P,h as U,P as V,R as z,T as G,I as H,O as J,U as N,V as Q,L as W,K as X}from"./index.cb50929e.js";function Y(e){let l;return{c(){l=P(e[5])},m(a,n){w(a,l,n)},p(a,n){n&32&&U(l,a[5])},d(a){a&&k(l)}}}function Z(e){let l,a,n,_,b,m,r,f,o,t,d;return _=new K({props:{show_label:e[6],$$slots:{default:[Y]},$$scope:{ctx:e}}}),{c(){l=h("div"),a=h("div"),n=h("label"),T(_.$$.fragment),b=A(),m=h("input"),r=A(),f=h("input"),g(n,"for",e[7]),g(m,"type","number"),g(m,"class","gr-box gr-input gr-text-input text-center h-6"),g(m,"min",e[1]),g(m,"max",e[2]),g(m,"step",e[3]),m.disabled=e[4],g(a,"class","flex justify-between"),g(l,"class","w-full flex flex-col "),g(f,"type","range"),g(f,"id",e[7]),g(f,"name","cowbell"),g(f,"class","w-full disabled:cursor-not-allowed"),g(f,"min",e[1]),g(f,"max",e[2]),g(f,"step",e[3]),f.disabled=e[4]},m(s,u){w(s,l,u),v(l,a),v(a,n),B(_,n,null),v(a,b),v(a,m),S(m,e[0]),w(s,r,u),w(s,f,u),S(f,e[0]),o=!0,t||(d=[j(m,"input",e[10]),j(m,"blur",e[8]),j(f,"change",e[11]),j(f,"input",e[11])],t=!0)},p(s,[u]){const c={};u&64&&(c.show_label=s[6]),u&8224&&(c.$$scope={dirty:u,ctx:s}),_.$set(c),(!o||u&2)&&g(m,"min",s[1]),(!o||u&4)&&g(m,"max",s[2]),(!o||u&8)&&g(m,"step",s[3]),(!o||u&16)&&(m.disabled=s[4]),u&1&&D(m.value)!==s[0]&&S(m,s[0]),(!o||u&2)&&g(f,"min",s[1]),(!o||u&4)&&g(f,"max",s[2]),(!o||u&8)&&g(f,"step",s[3]),(!o||u&16)&&(f.disabled=s[4]),u&1&&S(f,s[0])},i(s){o||(C(_.$$.fragment,s),o=!0)},o(s){M(_.$$.fragment,s),o=!1},d(s){s&&k(l),R(_),s&&k(r),s&&k(f),t=!1,L(d)}}}let y=0;function p(e,l,a){let{value:n=0}=l,{style:_={}}=l,{minimum:b=0}=l,{maximum:m=100}=l,{step:r=1}=l,{disabled:f=!1}=l,{label:o}=l,{show_label:t}=l;const d=`range_id_${y++}`,s=O(),u=()=>a(0,n=Math.min(Math.max(n,b),m));function c(){n=D(this.value),a(0,n)}function q(){n=D(this.value),a(0,n)}return e.$$set=i=>{"value"in i&&a(0,n=i.value),"style"in i&&a(9,_=i.style),"minimum"in i&&a(1,b=i.minimum),"maximum"in i&&a(2,m=i.maximum),"step"in i&&a(3,r=i.step),"disabled"in i&&a(4,f=i.disabled),"label"in i&&a(5,o=i.label),"show_label"in i&&a(6,t=i.show_label)},e.$$.update=()=>{e.$$.dirty&1&&s("change",n)},[n,b,m,r,f,o,t,d,u,_,c,q]}class x extends E{constructor(l){super(),F(this,l,p,Z,I,{value:0,style:9,minimum:1,maximum:2,step:3,disabled:4,label:5,show_label:6})}}function $(e){let l,a,n,_,b;const m=[e[10]];let r={};for(let t=0;tJ(n,"value",f)),n.$on("change",e[12]),{c(){T(l.$$.fragment),a=A(),T(n.$$.fragment)},m(t,d){B(l,t,d),w(t,a,d),B(n,t,d),b=!0},p(t,d){const s=d&1024?N(m,[Q(t[10])]):{};l.$set(s);const u={};d&8&&(u.label=t[3]),d&512&&(u.show_label=t[9]),d&32&&(u.minimum=t[5]),d&64&&(u.maximum=t[6]),d&128&&(u.step=t[7]),d&16&&(u.style=t[4]),d&256&&(u.disabled=t[8]==="static"),!_&&d&1&&(_=!0,u.value=t[0],W(()=>_=!1)),n.$set(u)},i(t){b||(C(l.$$.fragment,t),C(n.$$.fragment,t),b=!0)},o(t){M(l.$$.fragment,t),M(n.$$.fragment,t),b=!1},d(t){R(l,t),t&&k(a),R(n,t)}}}function ee(e){let l,a;return l=new V({props:{visible:e[2],elem_id:e[1],disable:typeof e[4].container=="boolean"&&!e[4].container,$$slots:{default:[$]},$$scope:{ctx:e}}}),{c(){T(l.$$.fragment)},m(n,_){B(l,n,_),a=!0},p(n,[_]){const b={};_&4&&(b.visible=n[2]),_&2&&(b.elem_id=n[1]),_&16&&(b.disable=typeof n[4].container=="boolean"&&!n[4].container),_&10233&&(b.$$scope={dirty:_,ctx:n}),l.$set(b)},i(n){a||(C(l.$$.fragment,n),a=!0)},o(n){M(l.$$.fragment,n),a=!1},d(n){R(l,n)}}}function le(e,l,a){let{elem_id:n=""}=l,{visible:_=!0}=l,{value:b=0}=l,{label:m="Slider"}=l,{style:r={}}=l,{minimum:f}=l,{maximum:o}=l,{step:t}=l,{mode:d}=l,{show_label:s}=l,{loading_status:u}=l;function c(i){b=i,a(0,b)}function q(i){X.call(this,e,i)}return e.$$set=i=>{"elem_id"in i&&a(1,n=i.elem_id),"visible"in i&&a(2,_=i.visible),"value"in i&&a(0,b=i.value),"label"in i&&a(3,m=i.label),"style"in i&&a(4,r=i.style),"minimum"in i&&a(5,f=i.minimum),"maximum"in i&&a(6,o=i.maximum),"step"in i&&a(7,t=i.step),"mode"in i&&a(8,d=i.mode),"show_label"in i&&a(9,s=i.show_label),"loading_status"in i&&a(10,u=i.loading_status)},[b,n,_,m,r,f,o,t,d,s,u,c,q]}class ae extends E{constructor(l){super(),F(this,l,le,ee,I,{elem_id:1,visible:2,value:0,label:3,style:4,minimum:5,maximum:6,step:7,mode:8,show_label:9,loading_status:10})}}var ie=ae;const te=["static","dynamic"],se=e=>({type:"number",description:"selected value",example_data:e.value??e.minimum});export{ie as Component,se as document,te as modes}; +//# sourceMappingURL=index.77022d0b.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.77022d0b.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.77022d0b.js.map new file mode 100644 index 0000000000000000000000000000000000000000..961100ac1b75f5bfb1e8ebe6750f0352662ebda3 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.77022d0b.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.77022d0b.js","sources":["../../../../ui/packages/form/src/Range.svelte","../../../../ui/packages/app/src/components/Slider/Slider.svelte","../../../../ui/packages/app/src/components/Slider/index.ts"],"sourcesContent":["\n\n\n\n
    \n\t
    \n\t\t\n\t\t\n\t
    \n
    \n\n\n","\n\n\n\t\n\n\t\n\n","export { default as Component } from \"./Slider.svelte\";\nexport const modes = [\"static\", \"dynamic\"];\n\nexport const document = (config: Record) => ({\n\ttype: \"number\",\n\tdescription: \"selected value\",\n\texample_data: config.value ?? config.minimum\n});\n"],"names":[],"mappings":"gSA6B6B,yCAAA,uPADf,kGAON,gBACA,qOAcF,gBACA,+CAzBN,SACC,OACC,0BAGA,0BAaF,6DAPY,sKAFJ,2BACA,uHAcF,2BACA,kMAlDD,GAAM,wBASC,QAAgB,MAChB,eACA,UAAkB,MAClB,UAAkB,QAClB,OAAe,MACf,WAAoB,OACpB,YACA,qBAEL,eAAiB,MACjB,EAAW,IAGX,UAAe,EAAQ,KAAK,IAAI,KAAK,IAAI,EAAO,CAAO,EAAG,CAAO,oXADpE,EAAS,SAAU,CAAK,yMCIR,4LAUR,OAAS,sOAVD,2LAUR,OAAS,wRAZJ,MAAM,WAAc,YAAc,KAAM,uLAAxC,MAAM,WAAc,YAAc,KAAM,iKAjB7C,UAAkB,OAClB,UAAmB,OACnB,QAAgB,MAChB,QAAgB,aAChB,eACA,cACA,cACA,WACA,WACA,iBAEA,opBCjBC,IAAQ,CAAC,SAAU,SAAS,EAE5B,GAAW,AAAC,KACxB,KAAM,SACN,YAAa,iBACb,aAAc,EAAO,OAAS,EAAO,OACtC"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.7a93f874.css b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.7a93f874.css new file mode 100644 index 0000000000000000000000000000000000000000..09a78b61537bec9361f7de86d0c04138bd97418c --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.7a93f874.css @@ -0,0 +1 @@ +.hl.svelte-o4yfdm+.hl.svelte-o4yfdm{margin-left:.25rem}.textspan.svelte-o4yfdm:last-child>.label.svelte-o4yfdm{margin-right:0} diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.7e510d8e.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.7e510d8e.js new file mode 100644 index 0000000000000000000000000000000000000000..7758d515088f407ef62fb3e7229d83ac0f83f278 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.7e510d8e.js @@ -0,0 +1,2 @@ +import{S as H,i as O,s as Q,w as E,b as f,f as y,g as h,x as z,n as B,e as P,a as I,t as A,c as T,M as se,ae as he,d as ue,Y as fe,m as V,l as C,z as ce,W as pe,D as Z,k,E as x,j as w,h as J,o as j,A as ke,as as we,at as ve,aa as ye,K as U,I as de,B as $,F as me,O as Be,L as Ne,P as Te,Q as Ve,X as je,R as Me,T as Ce,U as Pe,V as Ue}from"./index.cb50929e.js";import{n as ze}from"./utils.27234e1d.js";import{U as Fe}from"./Upload.5e38559f.js";import{M as Xe}from"./ModifyUpload.e869f7e2.js";import{B as ge}from"./BlockLabel.4b1193ac.js";import{U as Se,W as qe}from"./Webcam.1069ca6e.js";function De(n){let e,l;return{c(){e=E("svg"),l=E("path"),f(l,"d","M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"),f(e,"xmlns","http://www.w3.org/2000/svg"),f(e,"width","100%"),f(e,"height","100%"),f(e,"viewBox","0 0 24 24"),f(e,"fill","none"),f(e,"stroke","currentColor"),f(e,"stroke-width","1.5"),f(e,"stroke-linecap","round"),f(e,"stroke-linejoin","round")},m(t,r){y(t,e,r),h(e,l)},p:z,i:z,o:z,d(t){t&&B(e)}}}class Ie extends H{constructor(e){super(),O(this,e,null,De,Q,{})}}function Re(n){let e,l,t;return{c(){e=E("svg"),l=E("rect"),t=E("rect"),f(l,"x","6"),f(l,"y","4"),f(l,"width","4"),f(l,"height","16"),f(t,"x","14"),f(t,"y","4"),f(t,"width","4"),f(t,"height","16"),f(e,"xmlns","http://www.w3.org/2000/svg"),f(e,"width","100%"),f(e,"height","100%"),f(e,"viewBox","0 0 24 24"),f(e,"fill","none"),f(e,"stroke","currentColor"),f(e,"stroke-width","1.5"),f(e,"stroke-linecap","round"),f(e,"stroke-linejoin","round")},m(r,o){y(r,e,o),h(e,l),h(e,t)},p:z,i:z,o:z,d(r){r&&B(e)}}}class We extends H{constructor(e){super(),O(this,e,null,Re,Q,{})}}function Ae(n){let e,l;return{c(){e=E("svg"),l=E("polygon"),f(l,"points","5 3 19 12 5 21 5 3"),f(e,"xmlns","http://www.w3.org/2000/svg"),f(e,"width","100%"),f(e,"height","100%"),f(e,"viewBox","0 0 24 24"),f(e,"fill","none"),f(e,"stroke","currentColor"),f(e,"stroke-width","1.5"),f(e,"stroke-linecap","round"),f(e,"stroke-linejoin","round")},m(t,r){y(t,e,r),h(e,l)},p:z,i:z,o:z,d(t){t&&B(e)}}}class Ee extends H{constructor(e){super(),O(this,e,null,Ae,Q,{})}}function Ke(n){let e,l,t;return{c(){e=E("svg"),l=E("polygon"),t=E("rect"),f(l,"points","23 7 16 12 23 17 23 7"),f(t,"x","1"),f(t,"y","5"),f(t,"width","15"),f(t,"height","14"),f(t,"rx","2"),f(t,"ry","2"),f(e,"xmlns","http://www.w3.org/2000/svg"),f(e,"width","100%"),f(e,"height","100%"),f(e,"viewBox","0 0 24 24"),f(e,"fill","none"),f(e,"stroke","currentColor"),f(e,"stroke-width","1.5"),f(e,"stroke-linecap","round"),f(e,"stroke-linejoin","round"),f(e,"class","feather feather-video")},m(r,o){y(r,e,o),h(e,l),h(e,t)},p:z,i:z,o:z,d(r){r&&B(e)}}}class ne extends H{constructor(e){super(),O(this,e,null,Ke,Q,{})}}const _e=n=>{let e=["B","KB","MB","GB","PB"],l=0;for(;n>1024;)n/=1024,l++;let t=e[l];return n.toFixed(1)+" "+t},Le=()=>!0;const{isNaN:Ge}=we;function He(n){let e,l;return e=new We({}),{c(){T(e.$$.fragment)},m(t,r){V(e,t,r),l=!0},i(t){l||(w(e.$$.fragment,t),l=!0)},o(t){k(e.$$.fragment,t),l=!1},d(t){j(e,t)}}}function Oe(n){let e,l;return e=new Ee({}),{c(){T(e.$$.fragment)},m(t,r){V(e,t,r),l=!0},i(t){l||(w(e.$$.fragment,t),l=!0)},o(t){k(e.$$.fragment,t),l=!1},d(t){j(e,t)}}}function Qe(n){let e,l;return e=new Se({}),{c(){T(e.$$.fragment)},m(t,r){V(e,t,r),l=!0},i(t){l||(w(e.$$.fragment,t),l=!0)},o(t){k(e.$$.fragment,t),l=!1},d(t){j(e,t)}}}function Ye(n){let e,l,t,r,o=!1,s,m=!0,a,_,i,u,c,b,M,N,S=ee(n[2])+"",R,L,W=ee(n[3])+"",K,g,F,G,p,X,d,q,te,re;function oe(){cancelAnimationFrame(s),l.paused||(s=ve(oe),o=!0),n[14].call(l)}const ie=[Qe,Oe,He],Y=[];function ae(v,D){return v[2]===v[3]?0:v[4]?1:2}return c=ae(n),b=Y[c]=ie[c](n),d=new Ie({}),{c(){e=P("div"),l=P("video"),t=P("track"),a=I(),_=P("div"),i=P("div"),u=P("span"),b.c(),M=I(),N=P("span"),R=A(S),L=A(" / "),K=A(W),g=I(),F=P("progress"),p=I(),X=P("div"),T(d.$$.fragment),f(t,"kind","captions"),se(l.src,r=n[0])||f(l,"src",r),f(l,"preload","auto"),f(l,"class","w-full h-full object-contain bg-black svelte-1cgkd5k"),n[3]===void 0&&he(()=>n[15].call(l)),ue(l,"mirror",n[1]),f(u,"class","w-6 cursor-pointer text-white flex justify-center svelte-1cgkd5k"),f(N,"class","font-mono shrink-0 text-xs mx-3 text-white svelte-1cgkd5k"),F.value=G=n[2]/n[3]||0,f(F,"class","rounded h-2 w-full mx-3 svelte-1cgkd5k"),f(X,"class","w-6 cursor-pointer text-white"),f(i,"class","flex w-full justify-space h-full items-center px-1.5 "),f(_,"class","wrap absolute bottom-0 transition duration-500 m-1.5 bg-slate-800 px-1 py-2.5 rounded-md svelte-1cgkd5k"),fe(_,"opacity",n[3]&&n[6]?1:0)},m(v,D){y(v,e,D),h(e,l),h(l,t),n[17](l),h(e,a),h(e,_),h(_,i),h(i,u),Y[c].m(u,null),h(i,M),h(i,N),h(N,R),h(N,L),h(N,K),h(i,g),h(i,F),h(i,p),h(i,X),V(d,X,null),q=!0,te||(re=[C(l,"mousemove",n[7]),C(l,"click",n[9]),C(l,"play",n[11]),C(l,"pause",n[12]),C(l,"ended",n[13]),C(l,"timeupdate",oe),C(l,"durationchange",n[15]),C(l,"play",n[16]),C(l,"pause",n[16]),C(u,"click",n[9]),C(F,"mousemove",n[8]),C(F,"touchmove",ce(n[8])),C(F,"click",pe(ce(n[10]))),C(X,"click",n[18]),C(_,"mousemove",n[7])],te=!0)},p(v,[D]){(!q||D&1&&!se(l.src,r=v[0]))&&f(l,"src",r),!o&&D&4&&!Ge(v[2])&&(l.currentTime=v[2]),o=!1,D&16&&m!==(m=v[4])&&l[m?"pause":"play"](),D&2&&ue(l,"mirror",v[1]);let le=c;c=ae(v),c!==le&&(Z(),k(Y[le],1,1,()=>{Y[le]=null}),x(),b=Y[c],b||(b=Y[c]=ie[c](v),b.c()),w(b,1),b.m(u,null)),(!q||D&4)&&S!==(S=ee(v[2])+"")&&J(R,S),(!q||D&8)&&W!==(W=ee(v[3])+"")&&J(K,W),(!q||D&12&&G!==(G=v[2]/v[3]||0))&&(F.value=G),(!q||D&72)&&fe(_,"opacity",v[3]&&v[6]?1:0)},i(v){q||(w(b),w(d.$$.fragment,v),q=!0)},o(v){k(b),k(d.$$.fragment,v),q=!1},d(v){v&&B(e),n[17](null),Y[c].d(),j(d),te=!1,ke(re)}}}function ee(n){if(isNaN(n)||!isFinite(n))return"...";const e=Math.floor(n/60);let l=Math.floor(n%60);return n<10&&(l=`0${l}`),`${e}:${l}`}function Je(n,e,l){let{src:t}=e,{mirror:r}=e,o=0,s,m=!0,a,_=!0,i;function u(){clearTimeout(i),i=setTimeout(()=>l(6,_=!1),2500),l(6,_=!0)}function c(p){if(!s)return;if(p.type==="click"){M(p);return}if(p.type!=="touchmove"&&!(p.buttons&1))return;const X=p.type==="touchmove"?p.touches[0].clientX:p.clientX,{left:d,right:q}=p.currentTarget.getBoundingClientRect();l(2,o=s*(X-d)/(q-d))}function b(){m?a.play():a.pause()}function M(p){const{left:X,right:d}=p.currentTarget.getBoundingClientRect();l(2,o=s*(p.clientX-X)/(d-X))}async function N(){await ye(),l(5,a.currentTime=9999,a),setTimeout(async()=>{l(5,a.currentTime=0,a)},50)}function S(p){U.call(this,n,p)}function R(p){U.call(this,n,p)}function L(p){U.call(this,n,p)}function W(){o=this.currentTime,l(2,o)}function K(){s=this.duration,l(3,s)}function g(){m=this.paused,l(4,m)}function F(p){de[p?"unshift":"push"](()=>{a=p,l(5,a)})}const G=()=>a.requestFullscreen();return n.$$set=p=>{"src"in p&&l(0,t=p.src),"mirror"in p&&l(1,r=p.mirror)},n.$$.update=()=>{n.$$.dirty&1&&t&&N()},[t,r,o,s,m,a,_,u,c,b,M,S,R,L,W,K,g,F,G]}class be extends H{constructor(e){super(),O(this,e,Je,Ye,Q,{src:0,mirror:1})}}function Ze(n){let e,l,t,r,o,s,m;e=new Xe({}),e.$on("clear",n[11]);const a=[et,$e],_=[];function i(u,c){return t==null&&(t=!!Le()),t?0:u[0].size?1:-1}return~(r=i(n))&&(o=_[r]=a[r](n)),{c(){T(e.$$.fragment),l=I(),o&&o.c(),s=$()},m(u,c){V(e,u,c),y(u,l,c),~r&&_[r].m(u,c),y(u,s,c),m=!0},p(u,c){let b=r;r=i(u),r===b?~r&&_[r].p(u,c):(o&&(Z(),k(_[b],1,1,()=>{_[b]=null}),x()),~r?(o=_[r],o?o.p(u,c):(o=_[r]=a[r](u),o.c()),w(o,1),o.m(s.parentNode,s)):o=null)},i(u){m||(w(e.$$.fragment,u),w(o),m=!0)},o(u){k(e.$$.fragment,u),k(o),m=!1},d(u){j(e,u),u&&B(l),~r&&_[r].d(u),u&&B(s)}}}function xe(n){let e,l,t,r;const o=[lt,tt],s=[];function m(a,_){return a[1]==="upload"?0:a[1]==="webcam"?1:-1}return~(e=m(n))&&(l=s[e]=o[e](n)),{c(){l&&l.c(),t=$()},m(a,_){~e&&s[e].m(a,_),y(a,t,_),r=!0},p(a,_){let i=e;e=m(a),e===i?~e&&s[e].p(a,_):(l&&(Z(),k(s[i],1,1,()=>{s[i]=null}),x()),~e?(l=s[e],l?l.p(a,_):(l=s[e]=o[e](a),l.c()),w(l,1),l.m(t.parentNode,t)):l=null)},i(a){r||(w(l),r=!0)},o(a){k(l),r=!1},d(a){~e&&s[e].d(a),a&&B(t)}}}function $e(n){let e,l=n[0].name+"",t,r,o,s=_e(n[0].size)+"",m;return{c(){e=P("div"),t=A(l),r=I(),o=P("div"),m=A(s),f(e,"class","file-name text-4xl p-6 break-all"),f(o,"class","file-size text-2xl p-2")},m(a,_){y(a,e,_),h(e,t),y(a,r,_),y(a,o,_),h(o,m)},p(a,_){_&1&&l!==(l=a[0].name+"")&&J(t,l),_&1&&s!==(s=_e(a[0].size)+"")&&J(m,s)},i:z,o:z,d(a){a&&B(e),a&&B(r),a&&B(o)}}}function et(n){let e,l;return e=new be({props:{src:n[0].data,mirror:n[4]&&n[1]==="webcam"}}),e.$on("play",n[15]),e.$on("pause",n[16]),e.$on("ended",n[17]),{c(){T(e.$$.fragment)},m(t,r){V(e,t,r),l=!0},p(t,r){const o={};r&1&&(o.src=t[0].data),r&18&&(o.mirror=t[4]&&t[1]==="webcam"),e.$set(o)},i(t){l||(w(e.$$.fragment,t),l=!0)},o(t){k(e.$$.fragment,t),l=!1},d(t){j(e,t)}}}function tt(n){let e,l;return e=new qe({props:{mirror_webcam:n[4],mode:"video"}}),e.$on("error",n[13]),e.$on("capture",n[14]),{c(){T(e.$$.fragment)},m(t,r){V(e,t,r),l=!0},p(t,r){const o={};r&16&&(o.mirror_webcam=t[4]),e.$set(o)},i(t){l||(w(e.$$.fragment,t),l=!0)},o(t){k(e.$$.fragment,t),l=!1},d(t){j(e,t)}}}function lt(n){let e,l,t;function r(s){n[12](s)}let o={filetype:"video/mp4,video/x-m4v,video/*",$$slots:{default:[nt]},$$scope:{ctx:n}};return n[8]!==void 0&&(o.dragging=n[8]),e=new Fe({props:o}),de.push(()=>Be(e,"dragging",r)),e.$on("load",n[10]),{c(){T(e.$$.fragment)},m(s,m){V(e,s,m),t=!0},p(s,m){const a={};m&262368&&(a.$$scope={dirty:m,ctx:s}),!l&&m&256&&(l=!0,a.dragging=s[8],Ne(()=>l=!1)),e.$set(a)},i(s){t||(w(e.$$.fragment,s),t=!0)},o(s){k(e.$$.fragment,s),t=!1},d(s){j(e,s)}}}function nt(n){let e,l,t,r,o,s,m,a,_;return{c(){e=P("div"),l=A(n[5]),t=I(),r=P("span"),o=A("- "),s=A(n[6]),m=A(" -"),a=I(),_=A(n[7]),f(r,"class","text-gray-300"),f(e,"class","flex flex-col")},m(i,u){y(i,e,u),h(e,l),h(e,t),h(e,r),h(r,o),h(r,s),h(r,m),h(e,a),h(e,_)},p(i,u){u&32&&J(l,i[5]),u&64&&J(s,i[6]),u&128&&J(_,i[7])},d(i){i&&B(e)}}}function rt(n){let e,l,t,r,o,s;e=new ge({props:{show_label:n[3],Icon:ne,label:n[2]||"Video"}});const m=[xe,Ze],a=[];function _(i,u){return i[0]===null?0:1}return t=_(n),r=a[t]=m[t](n),{c(){T(e.$$.fragment),l=I(),r.c(),o=$()},m(i,u){V(e,i,u),y(i,l,u),a[t].m(i,u),y(i,o,u),s=!0},p(i,[u]){const c={};u&8&&(c.show_label=i[3]),u&4&&(c.label=i[2]||"Video"),e.$set(c);let b=t;t=_(i),t===b?a[t].p(i,u):(Z(),k(a[b],1,1,()=>{a[b]=null}),x(),r=a[t],r?r.p(i,u):(r=a[t]=m[t](i),r.c()),w(r,1),r.m(o.parentNode,o))},i(i){s||(w(e.$$.fragment,i),w(r),s=!0)},o(i){k(e.$$.fragment,i),k(r),s=!1},d(i){j(e,i),i&&B(l),a[t].d(i),i&&B(o)}}}function ot(n,e,l){let{value:t=null}=e,{source:r}=e,{label:o=void 0}=e,{show_label:s}=e,{mirror_webcam:m}=e,{drop_text:a="Drop a video file"}=e,{or_text:_="or"}=e,{upload_text:i="click to upload"}=e;const u=me();function c({detail:g}){u("change",g),u("upload",g),l(0,t=g)}function b({detail:g}){l(0,t=null),u("change",g),u("clear")}let M=!1;function N(g){M=g,l(8,M)}function S(g){U.call(this,n,g)}const R=({detail:g})=>u("change",g);function L(g){U.call(this,n,g)}function W(g){U.call(this,n,g)}function K(g){U.call(this,n,g)}return n.$$set=g=>{"value"in g&&l(0,t=g.value),"source"in g&&l(1,r=g.source),"label"in g&&l(2,o=g.label),"show_label"in g&&l(3,s=g.show_label),"mirror_webcam"in g&&l(4,m=g.mirror_webcam),"drop_text"in g&&l(5,a=g.drop_text),"or_text"in g&&l(6,_=g.or_text),"upload_text"in g&&l(7,i=g.upload_text)},n.$$.update=()=>{n.$$.dirty&256&&u("drag",M)},[t,r,o,s,m,a,_,i,M,u,c,b,N,S,R,L,W,K]}class it extends H{constructor(e){super(),O(this,e,ot,rt,Q,{value:0,source:1,label:2,show_label:3,mirror_webcam:4,drop_text:5,or_text:6,upload_text:7})}}function at(n){let e,l;return e=new be({props:{src:n[0].data,mirror:!1}}),e.$on("play",n[3]),e.$on("pause",n[4]),e.$on("ended",n[5]),{c(){T(e.$$.fragment)},m(t,r){V(e,t,r),l=!0},p(t,r){const o={};r&1&&(o.src=t[0].data),e.$set(o)},i(t){l||(w(e.$$.fragment,t),l=!0)},o(t){k(e.$$.fragment,t),l=!1},d(t){j(e,t)}}}function st(n){let e,l,t,r;return t=new ne({}),{c(){e=P("div"),l=P("div"),T(t.$$.fragment),f(l,"class","h-5 dark:text-white opacity-50"),f(e,"class","h-full min-h-[15rem] flex justify-center items-center")},m(o,s){y(o,e,s),h(e,l),V(t,l,null),r=!0},p:z,i(o){r||(w(t.$$.fragment,o),r=!0)},o(o){k(t.$$.fragment,o),r=!1},d(o){o&&B(e),j(t)}}}function ut(n){let e,l,t,r,o,s;e=new ge({props:{show_label:n[2],Icon:ne,label:n[1]||"Video"}});const m=[st,at],a=[];function _(i,u){return i[0]===null?0:1}return t=_(n),r=a[t]=m[t](n),{c(){T(e.$$.fragment),l=I(),r.c(),o=$()},m(i,u){V(e,i,u),y(i,l,u),a[t].m(i,u),y(i,o,u),s=!0},p(i,[u]){const c={};u&4&&(c.show_label=i[2]),u&2&&(c.label=i[1]||"Video"),e.$set(c);let b=t;t=_(i),t===b?a[t].p(i,u):(Z(),k(a[b],1,1,()=>{a[b]=null}),x(),r=a[t],r?r.p(i,u):(r=a[t]=m[t](i),r.c()),w(r,1),r.m(o.parentNode,o))},i(i){s||(w(e.$$.fragment,i),w(r),s=!0)},o(i){k(e.$$.fragment,i),k(r),s=!1},d(i){j(e,i),i&&B(l),a[t].d(i),i&&B(o)}}}function ft(n,e,l){let{value:t=null}=e,{label:r=void 0}=e,{show_label:o}=e;const s=me();function m(i){U.call(this,n,i)}function a(i){U.call(this,n,i)}function _(i){U.call(this,n,i)}return n.$$set=i=>{"value"in i&&l(0,t=i.value),"label"in i&&l(1,r=i.label),"show_label"in i&&l(2,o=i.show_label)},n.$$.update=()=>{n.$$.dirty&1&&t&&s("change",t)},[t,r,o,m,a,_]}class ct extends H{constructor(e){super(),O(this,e,ft,ut,Q,{value:0,label:1,show_label:2})}}function _t(n){let e,l;return e=new it({props:{value:n[10],label:n[4],show_label:n[6],source:n[5],drop_text:n[12]("interface.drop_video"),or_text:n[12]("or"),upload_text:n[12]("interface.click_to_upload"),mirror_webcam:n[8]}}),e.$on("change",n[15]),e.$on("drag",n[16]),e.$on("error",n[17]),e.$on("change",n[18]),e.$on("clear",n[19]),e.$on("play",n[20]),e.$on("pause",n[21]),e.$on("upload",n[22]),{c(){T(e.$$.fragment)},m(t,r){V(e,t,r),l=!0},p(t,r){const o={};r&1024&&(o.value=t[10]),r&16&&(o.label=t[4]),r&64&&(o.show_label=t[6]),r&32&&(o.source=t[5]),r&4096&&(o.drop_text=t[12]("interface.drop_video")),r&4096&&(o.or_text=t[12]("or")),r&4096&&(o.upload_text=t[12]("interface.click_to_upload")),r&256&&(o.mirror_webcam=t[8]),e.$set(o)},i(t){l||(w(e.$$.fragment,t),l=!0)},o(t){k(e.$$.fragment,t),l=!1},d(t){j(e,t)}}}function dt(n){let e,l;return e=new ct({props:{value:n[10],label:n[4],show_label:n[6]}}),{c(){T(e.$$.fragment)},m(t,r){V(e,t,r),l=!0},p(t,r){const o={};r&1024&&(o.value=t[10]),r&16&&(o.label=t[4]),r&64&&(o.show_label=t[6]),e.$set(o)},i(t){l||(w(e.$$.fragment,t),l=!0)},o(t){k(e.$$.fragment,t),l=!1},d(t){j(e,t)}}}function mt(n){let e,l,t,r,o,s;const m=[n[1]];let a={};for(let c=0;c{i[N]=null}),x(),r=i[t],r?r.p(c,b):(r=i[t]=_[t](c),r.c()),w(r,1),r.m(o.parentNode,o))},i(c){s||(w(e.$$.fragment,c),w(r),s=!0)},o(c){k(e.$$.fragment,c),k(r),s=!1},d(c){j(e,c),c&&B(l),i[t].d(c),c&&B(o)}}}function gt(n){let e,l;return e=new Te({props:{visible:n[3],variant:n[9]==="dynamic"&&n[0]===null&&n[5]==="upload"?"dashed":"solid",color:n[11]?"green":"grey",padding:!1,elem_id:n[2],style:{height:n[7].height,width:n[7].width},$$slots:{default:[mt]},$$scope:{ctx:n}}}),{c(){T(e.$$.fragment)},m(t,r){V(e,t,r),l=!0},p(t,[r]){const o={};r&8&&(o.visible=t[3]),r&545&&(o.variant=t[9]==="dynamic"&&t[0]===null&&t[5]==="upload"?"dashed":"solid"),r&2048&&(o.color=t[11]?"green":"grey"),r&4&&(o.elem_id=t[2]),r&128&&(o.style={height:t[7].height,width:t[7].width}),r&8396659&&(o.$$scope={dirty:r,ctx:t}),e.$set(o)},i(t){l||(w(e.$$.fragment,t),l=!0)},o(t){k(e.$$.fragment,t),l=!1},d(t){j(e,t)}}}function bt(n,e,l){let t;Ve(n,je,d=>l(12,t=d));let{elem_id:r=""}=e,{visible:o=!0}=e,{value:s=null}=e,{label:m}=e,{source:a}=e,{root:_}=e,{root_url:i}=e,{show_label:u}=e,{loading_status:c}=e,{style:b={}}=e,{mirror_webcam:M}=e,{mode:N}=e,S,R=!1;const L=({detail:d})=>l(0,s=d),W=({detail:d})=>l(11,R=d),K=({detail:d})=>{l(1,c=c||{}),l(1,c.status="error",c),l(1,c.message=d,c)};function g(d){U.call(this,n,d)}function F(d){U.call(this,n,d)}function G(d){U.call(this,n,d)}function p(d){U.call(this,n,d)}function X(d){U.call(this,n,d)}return n.$$set=d=>{"elem_id"in d&&l(2,r=d.elem_id),"visible"in d&&l(3,o=d.visible),"value"in d&&l(0,s=d.value),"label"in d&&l(4,m=d.label),"source"in d&&l(5,a=d.source),"root"in d&&l(13,_=d.root),"root_url"in d&&l(14,i=d.root_url),"show_label"in d&&l(6,u=d.show_label),"loading_status"in d&&l(1,c=d.loading_status),"style"in d&&l(7,b=d.style),"mirror_webcam"in d&&l(8,M=d.mirror_webcam),"mode"in d&&l(9,N=d.mode)},n.$$.update=()=>{n.$$.dirty&24577&&l(10,S=ze(s,i??_))},[s,c,r,o,m,a,u,b,M,N,S,R,t,_,i,L,W,K,g,F,G,p,X]}class ht extends H{constructor(e){super(),O(this,e,bt,gt,Q,{elem_id:2,visible:3,value:0,label:4,source:5,root:13,root_url:14,show_label:6,loading_status:1,style:7,mirror_webcam:8,mode:9})}}var Nt=ht;const Tt=["static","dynamic"],Vt=n=>({type:"{ name: string; data: string }",description:"file name and base64 data of video file"});export{Nt as Component,Vt as document,Tt as modes}; +//# sourceMappingURL=index.7e510d8e.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.7e510d8e.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.7e510d8e.js.map new file mode 100644 index 0000000000000000000000000000000000000000..daf0a47d7bcd82a81d8442ea665e8a08de5880e2 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.7e510d8e.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.7e510d8e.js","sources":["../../../../ui/packages/icons/src/Maximise.svelte","../../../../ui/packages/icons/src/Pause.svelte","../../../../ui/packages/icons/src/Play.svelte","../../../../ui/packages/icons/src/Video.svelte","../../../../ui/packages/video/src/utils.ts","../../../../ui/packages/video/src/Player.svelte","../../../../ui/packages/video/src/Video.svelte","../../../../ui/packages/video/src/StaticVideo.svelte","../../../../ui/packages/app/src/components/Video/Video.svelte","../../../../ui/packages/app/src/components/Video/index.ts"],"sourcesContent":["\n","\n","\n","\n","export const prettyBytes = (bytes: number): string => {\n\tlet units = [\"B\", \"KB\", \"MB\", \"GB\", \"PB\"];\n\tlet i = 0;\n\twhile (bytes > 1024) {\n\t\tbytes /= 1024;\n\t\ti++;\n\t}\n\tlet unit = units[i];\n\treturn bytes.toFixed(1) + \" \" + unit;\n};\n\nexport const playable = (): boolean => {\n\t// let video_element = document.createElement(\"video\");\n\t// let mime_type = mime.lookup(filename);\n\t// return video_element.canPlayType(mime_type) != \"\";\n\treturn true; // FIX BEFORE COMMIT - mime import causing issues\n};\n","\n\n
    \n\t\n\t\t\n\t\n\n\t\n\t\t
    \n\t\t\t\n\t\t\t\t{#if time === duration}\n\t\t\t\t\t\n\t\t\t\t{:else if paused}\n\t\t\t\t\t\n\t\t\t\t{:else}\n\t\t\t\t\t\n\t\t\t\t{/if}\n\t\t\t\n\n\t\t\t{format(time)} / {format(duration)}\n\t\t\t\n\n\t\t\t video.requestFullscreen()}\n\t\t\t>\n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t\n\n\n\n","\n\n\n{#if value === null}\n\t{#if source === \"upload\"}\n\t\t\n\t\t\t
    \n\t\t\t\t{drop_text}\n\t\t\t\t- {or_text} -\n\t\t\t\t{upload_text}\n\t\t\t
    \n\t\t\n\t{:else if source === \"webcam\"}\n\t\t dispatch(\"change\", detail)}\n\t\t/>\n\t{/if}\n{:else}\n\t\n\t{#if playable()}\n\t\t\n\t\t\n\t{:else if value.size}\n\t\t
    {value.name}
    \n\t\t
    \n\t\t\t{prettyBytes(value.size)}\n\t\t
    \n\t{/if}\n{/if}\n","\n\n\n{#if value === null}\n\t
    \n\t\t
    \n\t
    \n{:else}\n\t\n\t\n{/if}\n","\n\n\n\t\n\n\t{#if mode === \"static\"}\n\t\t\n\t{:else}\n\t\t (value = detail)}\n\t\t\ton:drag={({ detail }) => (dragging = detail)}\n\t\t\ton:error={({ detail }) => {\n\t\t\t\tloading_status = loading_status || {};\n\t\t\t\tloading_status.status = \"error\";\n\t\t\t\tloading_status.message = detail;\n\t\t\t}}\n\t\t\t{label}\n\t\t\t{show_label}\n\t\t\t{source}\n\t\t\tdrop_text={$_(\"interface.drop_video\")}\n\t\t\tor_text={$_(\"or\")}\n\t\t\tupload_text={$_(\"interface.click_to_upload\")}\n\t\t\t{mirror_webcam}\n\t\t\ton:change\n\t\t\ton:clear\n\t\t\ton:play\n\t\t\ton:pause\n\t\t\ton:upload\n\t\t/>\n\t{/if}\n\n","export { default as Component } from \"./Video.svelte\";\nexport const modes = [\"static\", \"dynamic\"];\n\nexport const document = (config: Record) => ({\n\ttype: \"{ name: string; data: string }\",\n\tdescription: \"file name and base64 data of video file\"\n});\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.803c5e11.css b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.803c5e11.css new file mode 100644 index 0000000000000000000000000000000000000000..bca8fc3e5366c4dbbeef359caafacb668d901e99 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.803c5e11.css @@ -0,0 +1 @@ +div.svelte-10ogue4>*:not(.absolute){border-radius:0!important}div.svelte-10ogue4>*:first-child{border-top-left-radius:.5rem!important;border-top-right-radius:.5rem!important}div.svelte-10ogue4>*:last-child{border-bottom-left-radius:.5rem!important;border-bottom-right-radius:.5rem!important}div.svelte-10ogue4>*+*:not(.absolute){border-top-width:0px!important} diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.81d892fa.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.81d892fa.js new file mode 100644 index 0000000000000000000000000000000000000000..0cd0288ba331491590ed0ff7690707c6f8f0a87e --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.81d892fa.js @@ -0,0 +1,2 @@ +import{S as q,i as E,s as F,a7 as O,e as C,t as I,f as k,g as S,h as K,n as D,c as h,a as L,b as P,ae as R,m,af as T,l as U,j as g,k as w,o as v,C as V,F as z,ag as A,P as G,R as H,T as J,I as M,O as N,U as Q,V as W,L as X,K as Y}from"./index.cb50929e.js";function j(a,l,t){const n=a.slice();return n[7]=l[t],n}function Z(a){let l;return{c(){l=I(a[1])},m(t,n){k(t,l,n)},p(t,n){n&2&&K(l,t[1])},d(t){t&&D(l)}}}function B(a){let l,t=a[7]+"",n,s;return{c(){l=C("option"),n=I(t),l.__value=s=a[7],l.value=l.__value},m(i,_){k(i,l,_),S(l,n)},p(i,_){_&4&&t!==(t=i[7]+"")&&K(n,t),_&4&&s!==(s=i[7])&&(l.__value=s,l.value=l.__value)},d(i){i&&D(l)}}}function y(a){let l,t,n,s,i,_,d;t=new O({props:{show_label:a[4],$$slots:{default:[Z]},$$scope:{ctx:a}}});let r=a[2],u=[];for(let e=0;ea[5].call(s))},m(e,c){k(e,l,c),m(t,l,null),S(l,n),S(l,s);for(let b=0;b{"label"in e&&t(1,n=e.label),"value"in e&&t(0,s=e.value),"choices"in e&&t(2,i=e.choices),"disabled"in e&&t(3,_=e.disabled),"show_label"in e&&t(4,d=e.show_label)},a.$$.update=()=>{a.$$.dirty&1&&r("change",s)},[s,n,i,_,d,u]}class x extends q{constructor(l){super(),E(this,l,p,y,F,{label:1,value:0,choices:2,disabled:3,show_label:4})}}function $(a){let l,t,n,s,i;const _=[a[7]];let d={};for(let e=0;e<_.length;e+=1)d=H(d,_[e]);l=new J({props:d});function r(e){a[9](e)}let u={choices:a[4],label:a[1],show_label:a[5],disabled:a[8]==="static"};return a[0]!==void 0&&(u.value=a[0]),n=new x({props:u}),M.push(()=>N(n,"value",r)),n.$on("change",a[10]),{c(){h(l.$$.fragment),t=L(),h(n.$$.fragment)},m(e,c){m(l,e,c),k(e,t,c),m(n,e,c),i=!0},p(e,c){const b=c&128?Q(_,[W(e[7])]):{};l.$set(b);const f={};c&16&&(f.choices=e[4]),c&2&&(f.label=e[1]),c&32&&(f.show_label=e[5]),c&256&&(f.disabled=e[8]==="static"),!s&&c&1&&(s=!0,f.value=e[0],X(()=>s=!1)),n.$set(f)},i(e){i||(g(l.$$.fragment,e),g(n.$$.fragment,e),i=!0)},o(e){w(l.$$.fragment,e),w(n.$$.fragment,e),i=!1},d(e){v(l,e),e&&D(t),v(n,e)}}}function ee(a){let l,t;return l=new G({props:{visible:a[3],elem_id:a[2],disable:typeof a[6].container=="boolean"&&!a[6].container,$$slots:{default:[$]},$$scope:{ctx:a}}}),{c(){h(l.$$.fragment)},m(n,s){m(l,n,s),t=!0},p(n,[s]){const i={};s&8&&(i.visible=n[3]),s&4&&(i.elem_id=n[2]),s&64&&(i.disable=typeof n[6].container=="boolean"&&!n[6].container),s&2483&&(i.$$scope={dirty:s,ctx:n}),l.$set(i)},i(n){t||(g(l.$$.fragment,n),t=!0)},o(n){w(l.$$.fragment,n),t=!1},d(n){v(l,n)}}}function le(a,l,t){let{label:n="Dropdown"}=l,{elem_id:s=""}=l,{visible:i=!0}=l,{value:_=""}=l,{choices:d}=l,{show_label:r}=l,{style:u={}}=l,{loading_status:e}=l,{mode:c}=l;function b(o){_=o,t(0,_)}function f(o){Y.call(this,a,o)}return a.$$set=o=>{"label"in o&&t(1,n=o.label),"elem_id"in o&&t(2,s=o.elem_id),"visible"in o&&t(3,i=o.visible),"value"in o&&t(0,_=o.value),"choices"in o&&t(4,d=o.choices),"show_label"in o&&t(5,r=o.show_label),"style"in o&&t(6,u=o.style),"loading_status"in o&&t(7,e=o.loading_status),"mode"in o&&t(8,c=o.mode)},[_,n,s,i,d,r,u,e,c,b,f]}class te extends q{constructor(l){super(),E(this,l,le,ee,F,{label:1,elem_id:2,visible:3,value:0,choices:4,show_label:5,style:6,loading_status:7,mode:8})}}var ne=te;const se=["static","dynamic"],ie=a=>({type:"string",description:"selected choice",example_data:a.choices.length?a.choices[0]:""});export{ne as Component,ie as document,se as modes}; +//# sourceMappingURL=index.81d892fa.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.81d892fa.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.81d892fa.js.map new file mode 100644 index 0000000000000000000000000000000000000000..10136e838eb51aa064c16e1d0bc1daa1ab6223e1 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.81d892fa.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.81d892fa.js","sources":["../../../../ui/packages/form/src/Dropdown.svelte","../../../../ui/packages/app/src/components/Dropdown/Dropdown.svelte","../../../../ui/packages/app/src/components/Dropdown/index.ts"],"sourcesContent":["\n\n\n","\n\n\n\t\n\n\t\n\n","export { default as Component } from \"./Dropdown.svelte\";\nexport const modes = [\"static\", \"dynamic\"];\n\nexport const document = (config: Record) => ({\n\ttype: \"string\",\n\tdescription: \"selected choice\",\n\texample_data: config.choices.length ? config.choices[0] : \"\"\n});\n"],"names":[],"mappings":"0VAgB2B,wCAAA,4CAOf,wDAAA,+BAAT,oCAAS,6BAAA,sKADH,0BAAL,4PAPJ,4BAEC,uMAKQ,uBAAL,6HAAA,+KAlBQ,YACA,QAA4B,WAC5B,cACA,WAAoB,OACpB,qBAEL,GAAW,4PAEd,EAAS,SAAU,CAAK,oKCYR,wJAQR,OAAS,qOARD,wHAQR,OAAS,wRAVJ,MAAM,WAAc,YAAc,KAAM,uLAAxC,MAAM,WAAc,YAAc,KAAM,gKAf7C,QAAgB,eAChB,UAAkB,OAClB,UAAmB,OACnB,QAAgB,OAChB,cACA,iBACA,eACA,qBAEA,yjBCfC,IAAQ,CAAC,SAAU,SAAS,EAE5B,GAAW,AAAC,KACxB,KAAM,SACN,YAAa,kBACb,aAAc,EAAO,QAAQ,OAAS,EAAO,QAAQ,GAAK,EAC3D"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.833592ca.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.833592ca.js new file mode 100644 index 0000000000000000000000000000000000000000..3c1ade9149c43a0d2654468ac89132bbdbb78934 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.833592ca.js @@ -0,0 +1,2 @@ +import{S as L,i as M,s as w,e as S,b as c,d as _,f as g,x as H,n as d,F as j,P as C,c as h,m as b,j as v,k,o as T,R as q,T as B,a as D,U as E,V as F,K}from"./index.cb50929e.js";function P(n){let e;return{c(){e=S("div"),c(e,"class","output-html"),c(e,"id",n[0]),_(e,"min-h-[6rem]",n[3]),_(e,"!hidden",!n[2])},m(s,i){g(s,e,i),e.innerHTML=n[1]},p(s,[i]){i&2&&(e.innerHTML=s[1]),i&1&&c(e,"id",s[0]),i&8&&_(e,"min-h-[6rem]",s[3]),i&4&&_(e,"!hidden",!s[2])},i:H,o:H,d(s){s&&d(e)}}}function R(n,e,s){let{elem_id:i=""}=e,{value:a}=e,{visible:l=!0}=e,{min_height:f=!1}=e;const r=j();return n.$$set=t=>{"elem_id"in t&&s(0,i=t.elem_id),"value"in t&&s(1,a=t.value),"visible"in t&&s(2,l=t.visible),"min_height"in t&&s(3,f=t.min_height)},n.$$.update=()=>{n.$$.dirty&2&&r("change")},[i,a,l,f]}class U extends L{constructor(e){super(),M(this,e,R,P,w,{elem_id:0,value:1,visible:2,min_height:3})}}function V(n){let e,s,i,a,l;const f=[n[3],{variant:"center"}];let r={};for(let t=0;t{"label"in u&&s(4,i=u.label),"elem_id"in u&&s(0,a=u.elem_id),"visible"in u&&s(1,l=u.visible),"value"in u&&s(2,f=u.value),"loading_status"in u&&s(3,r=u.loading_status)},n.$$.update=()=>{n.$$.dirty&16&&t("change")},[a,l,f,r,i,m]}class G extends L{constructor(e){super(),M(this,e,A,z,w,{label:4,elem_id:0,visible:1,value:2,loading_status:3})}}var J=G;const N=["static"],O=n=>({type:"string",description:"HTML output"});export{J as Component,O as document,N as modes}; +//# sourceMappingURL=index.833592ca.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.833592ca.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.833592ca.js.map new file mode 100644 index 0000000000000000000000000000000000000000..5bb84e6d5d804a1b1e1ca8ced18405bab4c0baee --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.833592ca.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.833592ca.js","sources":["../../../../ui/packages/html/src/HTML.svelte","../../../../ui/packages/app/src/components/HTML/HTML.svelte","../../../../ui/packages/app/src/components/HTML/index.ts"],"sourcesContent":["\n\n\n\t{@html value}\n\n","\n\n\n\t\n\t\n\t\t\n\t\n\n","export { default as Component } from \"./HTML.svelte\";\nexport const modes = [\"static\"];\n\nexport const document = (config: Record) => ({\n\ttype: \"string\",\n\tdescription: \"HTML output\"\n});\n"],"names":[],"mappings":"+PAgBK,yBAFgB,qBAGJ,cAJjB,qBAMQ,iCAAA,oBAHH,8BAFgB,0BAGJ,oDAdL,UAAkB,OAClB,YACA,UAAmB,OACnB,aAAa,WAElB,GAAW,yLAEP,EAAS,QAAQ,uJCSR,+HAML,MAAkB,MAAgB,SAAW,2KAHxC,MAAgB,SAAW,SAAS,4BAFvD,qDADmB,wDAML,MAAkB,MAAgB,SAAW,4GAHxC,MAAgB,SAAW,SAAS,4NAJpB,4SAXxB,YACA,UAAkB,OAClB,UAAmB,OACnB,QAAgB,OAChB,yBAEL,GAAW,6PAEP,EAAS,QAAQ,+ICdf,GAAQ,CAAC,QAAQ,EAEjB,EAAW,AAAC,KACxB,KAAM,SACN,YAAa,aACd"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.90a8fbf3.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.90a8fbf3.js new file mode 100644 index 0000000000000000000000000000000000000000..4479a852f2c0c89e98166f7d9a51f74c8847cdeb --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.90a8fbf3.js @@ -0,0 +1,4 @@ +import{S as fe,i as ce,s as de,e as E,b as y,d as D,f as C,a8 as ye,l as F,n as H,A as ge,a as j,x as X,K as Ae,I as P,t as _e,h as he,a3 as rt,B as at,g as T,O as x,c as Z,m as G,L as $,j as V,k as Y,o as Q,F as qe,aa as N,w as ve,D as ie,ab as se,ac as ue,E as oe,R as it,T as st,U as ut,V as ot}from"./index.cb50929e.js";import{U as ft}from"./Upload.5e38559f.js";import{d as ct}from"./dsv.7fe76a93.js";var De=Object.prototype.hasOwnProperty;function ee(n,e){var t,l;if(n===e)return!0;if(n&&e&&(t=n.constructor)===e.constructor){if(t===Date)return n.getTime()===e.getTime();if(t===RegExp)return n.toString()===e.toString();if(t===Array){if((l=n.length)===e.length)for(;l--&&ee(n[l],e[l]););return l===-1}if(!t||typeof n=="object"){l=0;for(t in n)if(De.call(n,t)&&++l&&!De.call(e,t)||!(t in e)||!ee(n[t],e[t]))return!1;return Object.keys(e).length===l}}return n!==n&&e!==e}function Le(n){let e,t,l;return{c(){e=E("input"),y(e,"class","absolute outline-none inset-2 bg-transparent border-0 translate-x-px flex-1 "),y(e,"tabindex","-1"),D(e,"translate-x-px",!n[3]),D(e,"font-bold",n[3])},m(a,i){C(a,e,i),ye(e,n[0]),n[8](e),t||(l=[F(e,"input",n[7]),F(e,"keydown",n[6]),F(e,"blur",ht)],t=!0)},p(a,i){i&1&&e.value!==a[0]&&ye(e,a[0]),i&8&&D(e,"translate-x-px",!a[3]),i&8&&D(e,"font-bold",a[3])},d(a){a&&H(e),n[8](null),t=!1,ge(l)}}}function dt(n){let e;return{c(){e=_e(n[0])},m(t,l){C(t,e,l)},p(t,l){l&1&&he(e,t[0])},d(t){t&&H(e)}}}function gt(n){let e,t;return{c(){e=new rt(!1),t=at(),e.a=t},m(l,a){e.m(n[0],l,a),C(l,t,a)},p(l,a){a&1&&e.p(l[0])},d(l){l&&H(t),l&&e.d()}}}function _t(n){let e,t,l,a,i=n[2]&&Le(n);function _(s,g){return s[4]==="markdown"||s[4]==="html"?gt:dt}let h=_(n),o=h(n);return{c(){i&&i.c(),e=j(),t=E("span"),o.c(),y(t,"tabindex","-1"),y(t,"role","button"),y(t,"class","p-2 outline-none border-0 flex-1"),D(t,"opacity-0",n[2]),D(t,"pointer-events-none",n[2])},m(s,g){i&&i.m(s,g),C(s,e,g),C(s,t,g),o.m(t,null),l||(a=F(t,"dblclick",n[5]),l=!0)},p(s,[g]){s[2]?i?i.p(s,g):(i=Le(s),i.c(),i.m(e.parentNode,e)):i&&(i.d(1),i=null),h===(h=_(s))&&o?o.p(s,g):(o.d(1),o=h(s),o&&(o.c(),o.m(t,null))),g&4&&D(t,"opacity-0",s[2]),g&4&&D(t,"pointer-events-none",s[2])},i:X,o:X,d(s){i&&i.d(s),s&&H(e),s&&H(t),o.d(),l=!1,a()}}}const ht=({currentTarget:n})=>n.setAttribute("tabindex","-1");function bt(n,e,t){let{edit:l}=e,{value:a=""}=e,{el:i}=e,{header:_=!1}=e,{datatype:h="str"}=e;function o(c){Ae.call(this,n,c)}function s(c){Ae.call(this,n,c)}function g(){a=this.value,t(0,a)}function w(c){P[c?"unshift":"push"](()=>{i=c,t(1,i)})}return n.$$set=c=>{"edit"in c&&t(2,l=c.edit),"value"in c&&t(0,a=c.value),"el"in c&&t(1,i=c.el),"header"in c&&t(3,_=c.header),"datatype"in c&&t(4,h=c.datatype)},[a,i,l,_,h,o,s,g,w]}class ze extends fe{constructor(e){super(),ce(this,e,bt,_t,de,{edit:2,value:0,el:1,header:3,datatype:4})}}function Me(n,e,t){const l=n.slice();return l[52]=e[t],l[54]=t,l}function Te(n,e,t){const l=n.slice();return l[55]=e[t].value,l[56]=e[t].id,l[57]=e,l[58]=t,l}function Ee(n,e,t){const l=n.slice();return l[55]=e[t].value,l[56]=e[t].id,l[59]=e,l[54]=t,l}function Be(n){let e,t;return{c(){e=E("p"),t=_e(n[1]),y(e,"class","text-gray-600 text-[0.855rem] mb-2 block dark:text-gray-200 relative z-40")},m(l,a){C(l,e,a),T(e,t)},p(l,a){a[0]&2&&he(t,l[1])},d(l){l&&H(e)}}}function Re(n){let e,t;return{c(){e=E("caption"),t=_e(n[1]),y(e,"class","sr-only")},m(l,a){C(l,e,a),T(e,t)},p(l,a){a[0]&2&&he(t,l[1])},d(l){l&&H(e)}}}function Ce(n,e){let t,l,a,i,_,h,o,s,g,w,c,b=e[56],f,v,O;function u(S){e[30](S,e[56])}function p(){return e[31](e[56])}let M={value:e[55],edit:e[13]===e[56],header:!0};e[10][e[56]].input!==void 0&&(M.el=e[10][e[56]].input),a=new ze({props:M}),P.push(()=>x(a,"el",u)),a.$on("keydown",e[21]),a.$on("dblclick",p);function m(){return e[32](e[54])}const R=()=>e[33](t,b),z=()=>e[33](null,b);return{key:n,first:null,c(){t=E("th"),l=E("div"),Z(a.$$.fragment),_=j(),h=E("div"),o=ve("svg"),s=ve("path"),w=j(),y(s,"d","M4.49999 0L8.3971 6.75H0.602875L4.49999 0Z"),y(o,"width","1em"),y(o,"height","1em"),y(o,"class","fill-current text-[10px]"),y(o,"viewBox","0 0 9 7"),y(o,"fill","none"),y(o,"xmlns","http://www.w3.org/2000/svg"),y(h,"class",g="flex flex-none items-center justify-center p-2 cursor-pointer leading-snug transform transition-all "+(e[12]!==e[54]?"text-gray-200 hover:text-gray-500":"text-orange-500")+" "+(e[12]===e[54]&&e[11]==="des"?"-scale-y-[1]":"")),D(h,"text-gray-200",e[12]!==e[54]),y(l,"class","min-h-[2.3rem] flex outline-none"),y(t,"class","p-0 relative focus-within:ring-1 ring-orange-500 ring-inset outline-none"),y(t,"aria-sort",c=e[15](e[55],e[12],e[11])),D(t,"bg-orange-50",e[13]===e[56]),D(t,"dark:bg-transparent",e[13]===e[56]),D(t,"rounded-tl-lg",e[54]===0),D(t,"rounded-tr-lg",e[54]===e[8].length-1),this.first=t},m(S,B){C(S,t,B),T(t,l),G(a,l,null),T(l,_),T(l,h),T(h,o),T(o,s),T(t,w),R(),f=!0,v||(O=F(h,"click",m),v=!0)},p(S,B){e=S;const I={};B[0]&256&&(I.value=e[55]),B[0]&8448&&(I.edit=e[13]===e[56]),!i&&B[0]&1280&&(i=!0,I.el=e[10][e[56]].input,$(()=>i=!1)),a.$set(I),(!f||B[0]&6400&&g!==(g="flex flex-none items-center justify-center p-2 cursor-pointer leading-snug transform transition-all "+(e[12]!==e[54]?"text-gray-200 hover:text-gray-500":"text-orange-500")+" "+(e[12]===e[54]&&e[11]==="des"?"-scale-y-[1]":"")))&&y(h,"class",g),B[0]&6400&&D(h,"text-gray-200",e[12]!==e[54]),(!f||B[0]&6400&&c!==(c=e[15](e[55],e[12],e[11])))&&y(t,"aria-sort",c),b!==e[56]&&(z(),b=e[56],R()),B[0]&8448&&D(t,"bg-orange-50",e[13]===e[56]),B[0]&8448&&D(t,"dark:bg-transparent",e[13]===e[56]),B[0]&256&&D(t,"rounded-tl-lg",e[54]===0),B[0]&256&&D(t,"rounded-tr-lg",e[54]===e[8].length-1)},i(S){f||(V(a.$$.fragment,S),f=!0)},o(S){Y(a.$$.fragment,S),f=!1},d(S){S&&H(t),Q(a),z(),v=!1,O()}}}function He(n,e){let t,l,a,i,_,h=e[56],o,s,g;function w(m){e[34](m,e[55],e[57],e[58])}function c(m){e[35](m,e[56])}let b={edit:e[6]===e[56],datatype:Array.isArray(e[0])?e[0][e[58]]:e[0]};e[55]!==void 0&&(b.value=e[55]),e[10][e[56]].input!==void 0&&(b.el=e[10][e[56]].input),a=new ze({props:b}),P.push(()=>x(a,"value",w)),P.push(()=>x(a,"el",c));const f=()=>e[36](t,h),v=()=>e[36](null,h);function O(){return e[37](e[56])}function u(){return e[38](e[56])}function p(){return e[39](e[56])}function M(...m){return e[40](e[54],e[58],e[56],...m)}return{key:n,first:null,c(){t=E("td"),l=E("div"),Z(a.$$.fragment),y(l,"class","min-h-[2.3rem] h-full outline-none flex items-center"),D(l,"border-transparent",e[7]!==e[56]),y(t,"tabindex","0"),y(t,"class","outline-none focus-within:ring-1 ring-orange-500 ring-inset focus-within:bg-orange-50 dark:focus-within:bg-gray-800 group-last:first:rounded-bl-lg group-last:last:rounded-br-lg relative"),this.first=t},m(m,R){C(m,t,R),T(t,l),G(a,l,null),f(),o=!0,s||(g=[F(t,"touchstart",O,{passive:!0}),F(t,"click",u),F(t,"dblclick",p),F(t,"keydown",M)],s=!0)},p(m,R){e=m;const z={};R[0]&576&&(z.edit=e[6]===e[56]),R[0]&513&&(z.datatype=Array.isArray(e[0])?e[0][e[58]]:e[0]),!i&&R[0]&512&&(i=!0,z.value=e[55],$(()=>i=!1)),!_&&R[0]&1536&&(_=!0,z.el=e[10][e[56]].input,$(()=>_=!1)),a.$set(z),R[0]&640&&D(l,"border-transparent",e[7]!==e[56]),h!==e[56]&&(v(),h=e[56],f())},i(m){o||(V(a.$$.fragment,m),o=!0)},o(m){Y(a.$$.fragment,m),o=!1},d(m){m&&H(t),Q(a),v(),s=!1,ge(g)}}}function Oe(n,e){let t,l=[],a=new Map,i,_,h=e[52];const o=s=>s[56];for(let s=0;su[56];for(let u=0;uu[52];for(let u=0;u
    \n","\n\n\n\n
    \n\t{#if label && label.length !== 0}\n\t\t\n\t\t\t{label}\n\t\t

    \n\t{/if}\n\t\n\t\t blob_to_string(data_uri_to_blob(e.detail.data))}\n\t\t\tbind:dragging\n\t\t>\n\t\t\t\n\t\t\t\t{#if label && label.length !== 0}\n\t\t\t\t\t{label}\n\t\t\t\t{/if}\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{#each _headers as { value, id }, i (id)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t edit_header(id)}\n\t\t\t\t\t\t\t\t\t\theader\n\t\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t\t handle_sort(i)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{#each data as row, i (row)}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#each row as { value, id }, j (id)}\n\t\t\t\t\t\t\t\t start_edit(id)}\n\t\t\t\t\t\t\t\t\ton:click={() => handle_cell_click(id)}\n\t\t\t\t\t\t\t\t\ton:dblclick={() => start_edit(id)}\n\t\t\t\t\t\t\t\t\ton:keydown={(e) => handle_keydown(e, i, j, id)}\n\t\t\t\t\t\t\t\t\tclass=\" outline-none focus-within:ring-1 ring-orange-500 ring-inset focus-within:bg-orange-50 dark:focus-within:bg-gray-800 group-last:first:rounded-bl-lg group-last:last:rounded-br-lg relative\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\t{#if editable}\n\t\t
    \n\t\t\t{#if row_count[1] === \"dynamic\"}\n\t\t\t\t
    \n\t{/if}\n\n","\n\n
    \n\t\n\t handle_change(detail)}\n\t\teditable={mode === \"dynamic\"}\n\t\t{wrap}\n\t\t{datatype}\n\t/>\n
    \n","export { default as Component } from \"./DataFrame.svelte\";\nexport const modes = [\"static\", \"dynamic\"];\n\nexport const document = (config: Record) => ({\n\ttype: \" { data: Array>; headers: Array }\",\n\tdescription: \"hex color code\",\n\texample_data: config.value ?? \"#000000\"\n});\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.944f73b6.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.944f73b6.js new file mode 100644 index 0000000000000000000000000000000000000000..397800e9dfa4092b630809a9642e39627de2be31 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.944f73b6.js @@ -0,0 +1,2 @@ +import{S as j,i as q,s as y,e as g,a as B,t as F,b as d,d as S,f as D,g as m,l as I,h as K,x as T,n as E,F as L,P as O,c as h,m as k,j as v,k as C,o as w,R as P,T as R,I as U,O as V,U as z,V as A,L as G,K as H}from"./index.cb50929e.js";function J(s){let e,t,a,i,c,r,f;return{c(){e=g("label"),t=g("input"),a=B(),i=g("span"),c=F(s[2]),t.disabled=s[1],t.checked=s[0],d(t,"type","checkbox"),d(t,"name","test"),d(t,"class","gr-check-radio gr-checkbox"),d(i,"class","ml-2"),d(e,"class","flex items-center text-gray-700 text-sm space-x-2 rounded-lg cursor-pointer dark:bg-transparent "),S(e,"!cursor-not-allowed",s[1])},m(u,l){D(u,e,l),m(e,t),m(e,a),m(e,i),m(i,c),r||(f=I(t,"change",s[4]),r=!0)},p(u,[l]){l&2&&(t.disabled=u[1]),l&1&&(t.checked=u[0]),l&4&&K(c,u[2]),l&2&&S(e,"!cursor-not-allowed",u[1])},i:T,o:T,d(u){u&&E(e),r=!1,f()}}}function M(s,e,t){let{value:a}=e,{disabled:i=!1}=e,{label:c}=e;const r=L();function f(l){t(0,a=l.currentTarget.checked),r("change",a)}const u=l=>f(l);return s.$$set=l=>{"value"in l&&t(0,a=l.value),"disabled"in l&&t(1,i=l.disabled),"label"in l&&t(2,c=l.label)},[a,i,c,f,u]}class N extends j{constructor(e){super(),q(this,e,M,J,y,{value:0,disabled:1,label:2})}}function Q(s){let e,t,a,i,c;const r=[s[6]];let f={};for(let n=0;nV(a,"value",u)),a.$on("change",s[8]),{c(){h(e.$$.fragment),t=B(),h(a.$$.fragment)},m(n,b){k(e,n,b),D(n,t,b),k(a,n,b),c=!0},p(n,b){const o=b&64?z(r,[A(n[6])]):{};e.$set(o);const _={};b&8&&(_.label=n[3]),b&16&&(_.disabled=n[4]==="static"),!i&&b&1&&(i=!0,_.value=n[0],G(()=>i=!1)),a.$set(_)},i(n){c||(v(e.$$.fragment,n),v(a.$$.fragment,n),c=!0)},o(n){C(e.$$.fragment,n),C(a.$$.fragment,n),c=!1},d(n){w(e,n),n&&E(t),w(a,n)}}}function W(s){let e,t;return e=new O({props:{visible:s[2],elem_id:s[1],disable:typeof s[5].container=="boolean"&&!s[5].container,$$slots:{default:[Q]},$$scope:{ctx:s}}}),{c(){h(e.$$.fragment)},m(a,i){k(e,a,i),t=!0},p(a,[i]){const c={};i&4&&(c.visible=a[2]),i&2&&(c.elem_id=a[1]),i&32&&(c.disable=typeof a[5].container=="boolean"&&!a[5].container),i&601&&(c.$$scope={dirty:i,ctx:a}),e.$set(c)},i(a){t||(v(e.$$.fragment,a),t=!0)},o(a){C(e.$$.fragment,a),t=!1},d(a){w(e,a)}}}function X(s,e,t){let{elem_id:a=""}=e,{visible:i=!0}=e,{value:c=!1}=e,{label:r="Checkbox"}=e,{mode:f}=e,{style:u={}}=e,{loading_status:l}=e;function n(o){c=o,t(0,c)}function b(o){H.call(this,s,o)}return s.$$set=o=>{"elem_id"in o&&t(1,a=o.elem_id),"visible"in o&&t(2,i=o.visible),"value"in o&&t(0,c=o.value),"label"in o&&t(3,r=o.label),"mode"in o&&t(4,f=o.mode),"style"in o&&t(5,u=o.style),"loading_status"in o&&t(6,l=o.loading_status)},[c,a,i,r,f,u,l,n,b]}class Y extends j{constructor(e){super(),q(this,e,X,W,y,{elem_id:1,visible:2,value:0,label:3,mode:4,style:5,loading_status:6})}}var p=Y;const x=["static","dynamic"],$=s=>({type:"boolean",description:"checked status",example_data:s.value??!0});export{p as Component,$ as document,x as modes}; +//# sourceMappingURL=index.944f73b6.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.944f73b6.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.944f73b6.js.map new file mode 100644 index 0000000000000000000000000000000000000000..82071195e4bfc58269479981892d377e17262202 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.944f73b6.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.944f73b6.js","sources":["../../../../ui/packages/form/src/Checkbox.svelte","../../../../ui/packages/app/src/components/Checkbox/Checkbox.svelte","../../../../ui/packages/app/src/components/Checkbox/index.ts"],"sourcesContent":["\n\n\n\n\t handle_change(evt)}\n\t\t{disabled}\n\t\tchecked={value}\n\t\ttype=\"checkbox\"\n\t\tname=\"test\"\n\t\tclass=\"gr-check-radio gr-checkbox\"\n\t/>\n\t{label}\n","\n\n\n\t\n\n\t\n\n","export { default as Component } from \"./Checkbox.svelte\";\nexport const modes = [\"static\", \"dynamic\"];\n\nexport const document = (config: Record) => ({\n\ttype: \"boolean\",\n\tdescription: \"checked status\",\n\texample_data: config.value ?? true\n});\n"],"names":[],"mappings":"uUAiCqB,gCALV,uPANiB,cAD5B,SAIC,cAQA,8FALU,eAKU,qCAXO,6DAnBhB,YACA,WAAoB,OACpB,gBAGL,GAAW,eAGhB,OAIA,EAAQ,EAAI,cAAc,OAAO,EACjC,EAAS,SAAU,CAAK,UAUZ,GAAQ,EAAc,CAAG,wPCLnB,2HAE8B,OAAS,mOAFvC,sEAE8B,OAAS,uRAJ1C,MAAM,WAAc,YAAc,KAAM,uLAAxC,MAAM,WAAc,YAAc,KAAM,8JAZ7C,UAAkB,OAClB,UAAmB,OACnB,QAAiB,OACjB,QAAgB,eAChB,WACA,eACA,6dCZC,GAAQ,CAAC,SAAU,SAAS,EAE5B,EAAW,AAAC,KACxB,KAAM,UACN,YAAa,iBACb,aAAc,EAAO,OAAS,EAC/B"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.952bdf04.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.952bdf04.js new file mode 100644 index 0000000000000000000000000000000000000000..7cd6c0bba0f6dc76c920d6acd651f4ff12c5c610 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.952bdf04.js @@ -0,0 +1,2 @@ +import{S as m,i as b,s as g,I as p,O as h,c as v,m as T,L as k,j as u,k as f,o as q,F as C,p as S,u as j,q as w,r as D,K as E}from"./index.cb50929e.js";import{T as F}from"./Tabs.561d21bd.js";import"./Column.6844546c.js";function I(s){let e;const i=s[3].default,t=S(i,s,s[6],null);return{c(){t&&t.c()},m(n,_){t&&t.m(n,_),e=!0},p(n,_){t&&t.p&&(!e||_&64)&&j(t,i,n,n[6],e?D(i,n[6],_,null):w(n[6]),null)},i(n){e||(u(t,n),e=!0)},o(n){f(t,n),e=!1},d(n){t&&t.d(n)}}}function K(s){let e,i,t;function n(a){s[4](a)}let _={visible:s[1],elem_id:s[2],$$slots:{default:[I]},$$scope:{ctx:s}};return s[0]!==void 0&&(_.selected=s[0]),e=new F({props:_}),p.push(()=>h(e,"selected",n)),e.$on("change",s[5]),{c(){v(e.$$.fragment)},m(a,c){T(e,a,c),t=!0},p(a,[c]){const o={};c&2&&(o.visible=a[1]),c&4&&(o.elem_id=a[2]),c&64&&(o.$$scope={dirty:c,ctx:a}),!i&&c&1&&(i=!0,o.selected=a[0],k(()=>i=!1)),e.$set(o)},i(a){t||(u(e.$$.fragment,a),t=!0)},o(a){f(e.$$.fragment,a),t=!1},d(a){q(e,a)}}}function L(s,e,i){let{$$slots:t={},$$scope:n}=e;const _=C();let{visible:a=!0}=e,{elem_id:c=""}=e,{selected:o}=e;function r(l){o=l,i(0,o)}function d(l){E.call(this,s,l)}return s.$$set=l=>{"visible"in l&&i(1,a=l.visible),"elem_id"in l&&i(2,c=l.elem_id),"selected"in l&&i(0,o=l.selected),"$$scope"in l&&i(6,n=l.$$scope)},s.$$.update=()=>{s.$$.dirty&1&&_("prop_change",{selected:o})},[o,a,c,t,r,d,n]}class O extends m{constructor(e){super(),b(this,e,L,K,g,{visible:1,elem_id:2,selected:0})}}var G=O;const H=["static"];export{G as Component,H as modes}; +//# sourceMappingURL=index.952bdf04.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.952bdf04.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.952bdf04.js.map new file mode 100644 index 0000000000000000000000000000000000000000..be6de250582bd12f98518e03d507dfbab767d193 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.952bdf04.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.952bdf04.js","sources":["../../../../ui/packages/app/src/components/Tabs/Tabs.svelte","../../../../ui/packages/app/src/components/Tabs/index.ts"],"sourcesContent":["\n\n\n\t\n\n","export { default as Component } from \"./Tabs.svelte\";\nexport const modes = [\"static\"];\n"],"names":[],"mappings":"w/BAIO,GAAW,QAEN,UAAmB,OACnB,UAAkB,OAClB,2PAER,EAAS,eAAiB,sICTjB,GAAQ,CAAC,QAAQ"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.9bbde3c9.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.9bbde3c9.js new file mode 100644 index 0000000000000000000000000000000000000000..240ebaa2c3f96b8e914b4b503ecc9968d1e5deac --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.9bbde3c9.js @@ -0,0 +1,2 @@ +import{S as B,i as M,s as L,w as T,b as _,f as g,g as p,x as v,n as b,e as k,a as w,a3 as V,C as z,F as A,a4 as D,a5 as E,I,a6 as j,P as q,c as y,m as C,j as h,k as d,o as H,R as F,T as K,U as N,V as O,D as P,E as Y,K as Z}from"./index.cb50929e.js";import{B as G}from"./BlockLabel.4b1193ac.js";function J(n){let e,s,t;return{c(){e=T("svg"),s=T("path"),t=T("path"),_(s,"fill","currentColor"),_(s,"d","M17.74 30L16 29l4-7h6a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h9v2H6a4 4 0 0 1-4-4V8a4 4 0 0 1 4-4h20a4 4 0 0 1 4 4v12a4 4 0 0 1-4 4h-4.84Z"),_(t,"fill","currentColor"),_(t,"d","M8 10h16v2H8zm0 6h10v2H8z"),_(e,"xmlns","http://www.w3.org/2000/svg"),_(e,"xmlns:xlink","http://www.w3.org/1999/xlink"),_(e,"aria-hidden","true"),_(e,"role","img"),_(e,"class","iconify iconify--carbon"),_(e,"width","100%"),_(e,"height","100%"),_(e,"preserveAspectRatio","xMidYMid meet"),_(e,"viewBox","0 0 32 32")},m(a,l){g(a,e,l),p(e,s),p(e,t)},p:v,i:v,o:v,d(a){a&&b(e)}}}class Q extends B{constructor(e){super(),M(this,e,null,J,L,{})}}function R(n,e,s){const t=n.slice();return t[9]=e[s],t}function S(n){let e,s=n[9][0]+"",t,a,l,f,r=n[9][1]+"",c,o;return{c(){e=k("div"),a=w(),l=k("div"),f=new V(!1),c=w(),_(e,"data-testid","user"),_(e,"class","px-3 py-2 rounded-[22px] rounded-br-none text-white text-sm chat-message svelte-1kgfmmo"),_(e,"style",t="background-color:"+n[2][0]),f.a=c,_(l,"data-testid","bot"),_(l,"class","px-3 py-2 rounded-[22px] rounded-bl-none place-self-start text-white text-sm chat-message svelte-1kgfmmo"),_(l,"style",o="background-color:"+n[2][1])},m(u,m){g(u,e,m),e.innerHTML=s,g(u,a,m),g(u,l,m),f.m(r,l),p(l,c)},p(u,m){m&1&&s!==(s=u[9][0]+"")&&(e.innerHTML=s),m&4&&t!==(t="background-color:"+u[2][0])&&_(e,"style",t),m&1&&r!==(r=u[9][1]+"")&&f.p(r),m&4&&o!==(o="background-color:"+u[2][1])&&_(l,"style",o)},d(u){u&&b(e),u&&b(a),u&&b(l)}}}function W(n){let e,s,t=n[0],a=[];for(let l=0;l{r=f&&f.offsetHeight+f.scrollTop>f.scrollHeight-20}),E(()=>{r&&f.scrollTo(0,f.scrollHeight)});function o(i){return i in j?j[i].primary:i}function u(){return l.color_map?[o(l.color_map[0]),o(l.color_map[1])]:["#fb923c","#9ca3af"]}function m(i){I[i?"unshift":"push"](()=>{f=i,s(1,f)})}return n.$$set=i=>{"value"in i&&s(0,a=i.value),"style"in i&&s(3,l=i.style)},n.$$.update=()=>{n.$$.dirty&1&&a&&c("change")},s(2,t=u()),[a,f,t,l,m]}class x extends B{constructor(e){super(),M(this,e,X,W,L,{value:0,style:3})}}function U(n){let e,s;return e=new G({props:{show_label:n[5],Icon:Q,label:n[4]||"Chatbot",disable:typeof n[0].container=="boolean"&&!n[0].container}}),{c(){y(e.$$.fragment)},m(t,a){C(e,t,a),s=!0},p(t,a){const l={};a&32&&(l.show_label=t[5]),a&16&&(l.label=t[4]||"Chatbot"),a&1&&(l.disable=typeof t[0].container=="boolean"&&!t[0].container),e.$set(l)},i(t){s||(h(e.$$.fragment,t),s=!0)},o(t){d(e.$$.fragment,t),s=!1},d(t){H(e,t)}}}function $(n){let e,s,t,a,l;const f=[n[6]];let r={};for(let o=0;o{c=null}),Y());const i={};u&1&&(i.style=o[0]),u&8&&(i.value=o[3]),a.$set(i)},i(o){l||(h(e.$$.fragment,o),h(c),h(a.$$.fragment,o),l=!0)},o(o){d(e.$$.fragment,o),d(c),d(a.$$.fragment,o),l=!1},d(o){H(e,o),o&&b(s),c&&c.d(o),o&&b(t),H(a,o)}}}function ee(n){let e,s;return e=new q({props:{padding:!1,elem_id:n[1],visible:n[2],$$slots:{default:[$]},$$scope:{ctx:n}}}),{c(){y(e.$$.fragment)},m(t,a){C(e,t,a),s=!0},p(t,[a]){const l={};a&2&&(l.elem_id=t[1]),a&4&&(l.visible=t[2]),a&633&&(l.$$scope={dirty:a,ctx:t}),e.$set(l)},i(t){s||(h(e.$$.fragment,t),s=!0)},o(t){d(e.$$.fragment,t),s=!1},d(t){H(e,t)}}}function te(n,e,s){let{elem_id:t=""}=e,{visible:a=!0}=e,{value:l=[]}=e,{style:f={}}=e,{label:r}=e,{show_label:c=!0}=e,{color_map:o={}}=e,{loading_status:u}=e;function m(i){Z.call(this,n,i)}return n.$$set=i=>{"elem_id"in i&&s(1,t=i.elem_id),"visible"in i&&s(2,a=i.visible),"value"in i&&s(3,l=i.value),"style"in i&&s(0,f=i.style),"label"in i&&s(4,r=i.label),"show_label"in i&&s(5,c=i.show_label),"color_map"in i&&s(7,o=i.color_map),"loading_status"in i&&s(6,u=i.loading_status)},n.$$.update=()=>{n.$$.dirty&129&&!f.color_map&&Object.keys(o).length&&s(0,f.color_map=o,f)},[f,t,a,l,r,c,u,o,m]}class le extends B{constructor(e){super(),M(this,e,te,ee,L,{elem_id:1,visible:2,value:3,style:0,label:4,show_label:5,color_map:7,loading_status:6})}}var ne=le;const oe=["static"],ie=n=>({type:"Array<[string, string]>",description:"Represents list of message pairs of chat message.",example_data:n.value??[["Hi","Hello"],["1 + 1","2"]]});export{ne as Component,ie as document,oe as modes}; +//# sourceMappingURL=index.9bbde3c9.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.9bbde3c9.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.9bbde3c9.js.map new file mode 100644 index 0000000000000000000000000000000000000000..bc4679d1689b58d6a8618b7a1cc72586346c1851 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.9bbde3c9.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.9bbde3c9.js","sources":["../../../../ui/packages/icons/src/Chat.svelte","../../../../ui/packages/chatbot/src/ChatBot.svelte","../../../../ui/packages/app/src/components/Chatbot/Chatbot.svelte","../../../../ui/packages/app/src/components/Chatbot/index.ts"],"sourcesContent":["\n","\n\n
    \n\t
    \n\t\t{#each value as message}\n\t\t\t\n\t\t\t\t{@html message[0]}\n\t\t\t
    \n\t\t\t\n\t\t\t\t{@html message[1]}\n\t\t\t
    \n\t\t{/each}\n\t\n\n\n\n","\n\n\n\t\n\t{#if show_label}\n\t\t\n\t{/if}\n\t\n\n","export { default as Component } from \"./Chatbot.svelte\";\nexport const modes = [\"static\"];\n\nexport const document = (config: Record) => ({\n\ttype: \"Array<[string, string]>\",\n\tdescription: \"Represents list of message pairs of chat message.\",\n\texample_data: config.value ?? [\n\t\t[\"Hi\", \"Hello\"],\n\t\t[\"1 + 1\", \"2\"]\n\t]\n});\n"],"names":[],"mappings":"05BAAA,SAUE,OAGC,gLCsCQ,KAAQ,gBAOR,KAAQ,kNATR,oBAAsB,KAAQ,yKAO9B,oBAAsB,KAAQ,YAVtC,gCAOA,6CAFQ,KAAQ,oCAFR,oBAAsB,KAAQ,gCAS9B,KAAQ,2BAFR,oBAAsB,KAAQ,4EAXhC,0BAAL,wMAFJ,SACC,8EACQ,uBAAL,6HAAA,2EAxCQ,YACA,cAEP,EACA,OAEE,GAAW,IAEjB,OACC,EACC,GAAO,EAAI,aAAe,EAAI,UAAY,EAAI,aAAe,KAG/D,OACK,GAAY,EAAI,SAAS,EAAG,EAAI,YAAY,eAO9B,SACd,KAAK,GACD,EAAO,GAA0B,QAEjC,qBAKH,GAAM,WAGF,EAAU,EAAM,UAAU,IAAK,EAAU,EAAM,UAAU,MAFzD,UAAW,SAAS,2CAOkB,wHArB7C,GAAS,EAAS,QAAQ,OAE1B,EAAU,+JCIL,QACC,MAAS,wBACA,MAAM,WAAc,YAAc,KAAM,qHADjD,MAAS,iCACA,MAAM,WAAc,YAAc,KAAM,0IANvC,gFACd,qOADc,qBACd,gYAFU,uUAfJ,UAAkB,OAClB,UAAmB,OACnB,eACA,eACA,YACA,aAAsB,OACtB,mBAMA,qXAJH,EAAM,WAAa,OAAO,KAAK,CAAS,EAAE,YACjD,EAAM,UAAY,8LChBP,IAAQ,CAAC,QAAQ,EAEjB,GAAW,AAAC,KACxB,KAAM,0BACN,YAAa,oDACb,aAAc,EAAO,OAAS,CAC7B,CAAC,KAAM,OAAO,EACd,CAAC,QAAS,GAAG,EAEf"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.9d73943a.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.9d73943a.js new file mode 100644 index 0000000000000000000000000000000000000000..07b2b612ae63487ff03bc38e3a642ff5edbdb628 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.9d73943a.js @@ -0,0 +1,2 @@ +import{S as g,i as $,s as b,e as h,t as y,b as v,f as C,g as k,h as z,n as w,p as I,a as A,d as _,u as S,q,r as j,j as f,k as c,a2 as D,Q as E,J,c as L,m as O,o as Q}from"./index.cb50929e.js";import{a as R}from"./CarouselItem.svelte_svelte_type_style_lang.248bb157.js";function p(n){let t,l;return{c(){t=h("div"),l=y(n[0]),v(t,"class","absolute left-0 top-0 py-1 px-2 rounded-br-lg shadow-sm text-xs text-gray-500 flex items-center pointer-events-none bg-white z-20 dark:bg-gray-800")},m(s,e){C(s,t,e),k(t,l)},p(s,e){e&1&&z(l,s[0])},d(s){s&&w(t)}}}function U(n){let t,l,s,e=n[0]&&p(n);const a=n[5].default,r=I(a,n,n[4],null);return{c(){t=h("div"),e&&e.c(),l=A(),r&&r.c(),v(t,"class","carousel-item hidden component min-h-[200px] border rounded-lg overflow-hidden relative svelte-89gglt"),_(t,"!block",n[1]===n[3])},m(o,i){C(o,t,i),e&&e.m(t,null),k(t,l),r&&r.m(t,null),s=!0},p(o,[i]){o[0]?e?e.p(o,i):(e=p(o),e.c(),e.m(t,l)):e&&(e.d(1),e=null),r&&r.p&&(!s||i&16)&&S(r,a,o,o[4],s?j(a,o[4],i,null):q(o[4]),null),i&10&&_(t,"!block",o[1]===o[3])},i(o){s||(f(r,o),s=!0)},o(o){c(r,o),s=!1},d(o){o&&w(t),e&&e.d(),r&&r.d(o)}}}function B(n,t,l){let s,{$$slots:e={},$$scope:a}=t,{label:r=void 0}=t;const{register:o,unregister:i,current:m}=D(R);E(n,m,u=>l(1,s=u));let d=o();return J(()=>i(d)),n.$$set=u=>{"label"in u&&l(0,r=u.label),"$$scope"in u&&l(4,a=u.$$scope)},[r,s,m,d,a,e]}class F extends g{constructor(t){super(),$(this,t,B,U,b,{label:0})}}function G(n){let t;const l=n[0].default,s=I(l,n,n[1],null);return{c(){s&&s.c()},m(e,a){s&&s.m(e,a),t=!0},p(e,a){s&&s.p&&(!t||a&2)&&S(s,l,e,e[1],t?j(l,e[1],a,null):q(e[1]),null)},i(e){t||(f(s,e),t=!0)},o(e){c(s,e),t=!1},d(e){s&&s.d(e)}}}function H(n){let t,l;return t=new F({props:{$$slots:{default:[G]},$$scope:{ctx:n}}}),{c(){L(t.$$.fragment)},m(s,e){O(t,s,e),l=!0},p(s,[e]){const a={};e&2&&(a.$$scope={dirty:e,ctx:s}),t.$set(a)},i(s){l||(f(t.$$.fragment,s),l=!0)},o(s){c(t.$$.fragment,s),l=!1},d(s){Q(t,s)}}}function K(n,t,l){let{$$slots:s={},$$scope:e}=t;return n.$$set=a=>{"$$scope"in a&&l(1,e=a.$$scope)},[s,e]}class M extends g{constructor(t){super(),$(this,t,K,H,b,{})}}var T=M;const V=["static"];export{T as Component,V as modes}; +//# sourceMappingURL=index.9d73943a.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.9d73943a.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.9d73943a.js.map new file mode 100644 index 0000000000000000000000000000000000000000..bea7b1d7478bcaf67e81faa970f9bff781376b47 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.9d73943a.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.9d73943a.js","sources":["../../../../ui/packages/carousel/src/CarouselItem.svelte","../../../../ui/packages/app/src/components/CarouselItem/index.ts"],"sourcesContent":["\n\n
    API Page guide. To hide the API documentation button and this page, set + show_api=False + in the + Blocks.launch() method.`,y(o,"class","italic text-orange-500"),Wt(d.src,l=dl)||y(d,"src",l),y(d,"alt",""),y(d,"class","w-3 dark:invert"),y(s,"class","absolute right-6 top-5 md:top-6"),y(n,"class","text-lg mb-4 font-semibold"),y(e,"class","p-6")},m(f,_){A(f,e,_),b(e,n),b(n,r),b(n,o),b(o,a),b(n,i),b(n,s),b(s,d),b(e,c),b(e,p),g||(u=Z(s,"click",t[18]),g=!0)},p(f,_){_[0]&1&&tt(a,f[0])},i:Y,o:Y,d(f){f&&S(e),g=!1,u()}}}function dc(t){let e,n,r,o,a,i,s,d,l,c,p,g,u,f,_,v,P,T=t[10]>1&&cc(t),m=t[2],h=[];for(let w=0;wU(h[w],1,1,()=>{h[w]=null});return{c(){e=E("div"),n=E("h2"),r=E("img"),a=L(` + API documentation for\xA0 + `),i=E("div"),s=L(t[0]),d=M(),l=E("button"),c=E("img"),g=M(),T&&T.c(),u=M(),f=E("div");for(let w=0;w1&&T.p(w,x),x[0]&6655){m=w[2];let k;for(k=0;k
    + Input Payload`,m=M(),h=E("div"),C=L("{"),w=E("br"),x=L(` + \xA0\xA0"data": [`),k=E("br"),J=M();for(let j=0;j
    + Response Object`,St=M(),Nt=E("div"),et=E("div"),Pe=L("{"),Oe=E("br"),Le=L(` + \xA0\xA0"data": [`),Re=E("br"),Ne=M();for(let j=0;j + Code snippets`,ln=M(),it=E("div");for(let j=0;j<2;j+=1)Pt[j].c();Me=M(),nt=E("code"),ft&&ft.c(),jt=M(),y(r,"class","bg-orange-100 px-1 rounded text-sm border border-orange-200 mr-2 font-semibold text-orange-600 dark:bg-orange-400 dark:text-orange-900 dark:border-orange-600"),y(n,"class","text-lg font-bold mb-1.5"),y(c,"class","underline"),y(v,"class","gr-button ml-2 !py-0"),y(d,"class","text-sm md:text-base mb-6 text-gray-500"),y(T,"class","font-bold mt-6 mb-3 flex items-center"),y(h,"class","block bg-white border dark:bg-gray-800 p-4 font-mono text-sm rounded-lg"),y(G,"class","gr-button gr-button-lg gr-button-primary w-full mt-4"),y(Vt,"class","font-bold mt-6 mb-3 flex items-center"),y(W,"class","text-gray-400"),y(et,"class",ht=t[5]?"hidden":""),y(Nt,"class","bg-white border dark:bg-gray-800 p-4 font-mono text-sm rounded-lg flex flex-col"),y(Xt,"class","font-bold mt-8 mb-3 flex items-center"),y(it,"class","flex space-x-2 items-center mb-3"),y(nt,"class","bg-white border dark:bg-gray-800 p-4 font-mono text-sm rounded-lg flex flex-col overflow-x-auto"),y(e,"class","bg-gradient-to-b dark:from-orange-200/5 from-orange-200/20 via-transparent to-transparent p-6 rounded")},m(j,at){A(j,e,at),b(e,n),b(n,r),b(n,o),b(n,i),b(e,s),b(e,d),b(d,l),b(d,c),b(c,p),b(c,g),b(c,f),b(d,_),b(d,v),It.m(v,null),b(e,P),b(e,T),b(e,m),b(e,h),b(h,C),b(h,w),b(h,x),b(h,k),b(h,J);for(let N=0;N{rt=null}),Rt()),at[0]&8){sn=[["python",wr],["javascript",hr]];let N;for(N=0;N<2;N+=1){const Dt=xr(t,sn,N);Pt[N]?Pt[N].p(Dt,at):(Pt[N]=Or(Dt),Pt[N].c(),Pt[N].m(it,null))}for(;N<2;N+=1)Pt[N].d(1)}ee===(ee=Jn(t))&&ft?ft.p(t,at):(ft&&ft.d(1),ft=ee&&ee(t),ft&&(ft.c(),ft.m(nt,null)))},i(j){lt||(z(rt),lt=!0)},o(j){U(rt),lt=!1},d(j){j&&S(e),It.d(),oe(gt,j),oe(ut,j),rt&&rt.d(),oe(Pt,j),ft&&ft.d(),_t=!1,wt(st)}}}function pc(t){let e;return{c(){e=L("copy")},m(n,r){A(n,e,r)},d(n){n&&S(e)}}}function gc(t){let e;return{c(){e=L("copied!")},m(n,r){A(n,e,r)},d(n){n&&S(e)}}}function Ar(t){let e;return{c(){e=E("span"),e.textContent="ERROR",y(e,"class","text-red-600")},m(n,r){A(n,e,r)},d(n){n&&S(e)}}}function Tr(t){let e,n,r,o,a,i,s=t[1][t[30]].documentation?.type+"",d,l,c,p,g,u=t[1][t[30]].documentation?.description+"",f,_,v=Mr(t[1][t[30]].props.label)+"",P,T,m,h=t[1][t[30]].props.name+"",C,w,x,k,J,O;function ot(){t[15].call(n,t[21],t[24])}let B=t[8][t[21]][t[24]]&&Ar();return{c(){e=L("\xA0\xA0\xA0\xA0"),n=E("input"),r=M(),B&&B.c(),o=M(),a=E("span"),i=L(": "),d=L(s),l=L(","),c=M(),p=E("span"),g=L("// represents "),f=L(u),_=L(` of + `),P=L(v),T=M(),m=E("span"),C=L(h),w=L(" component"),x=M(),k=E("br"),y(n,"class","bg-gray-100 dark:bg-gray-600 border-none w-40 px-1 py-0.5 my-0.5 text-sm rounded ring-1 ring-gray-300 dark:ring-gray-500"),y(n,"type","text"),y(a,"class","text-gray-500"),y(m,"class","capitalize"),y(p,"class","text-gray-400")},m(R,G){A(R,e,G),A(R,n,G),Et(n,t[6][t[21]][t[24]]),A(R,r,G),B&&B.m(R,G),A(R,o,G),A(R,a,G),b(a,i),b(a,d),b(a,l),A(R,c,G),A(R,p,G),b(p,g),b(p,f),b(p,_),b(p,P),b(p,T),b(p,m),b(m,C),b(p,w),A(R,x,G),A(R,k,G),J||(O=Z(n,"input",ot),J=!0)},p(R,G){t=R,G[0]&64&&n.value!==t[6][t[21]][t[24]]&&Et(n,t[6][t[21]][t[24]]),t[8][t[21]][t[24]]?B||(B=Ar(),B.c(),B.m(o.parentNode,o)):B&&(B.d(1),B=null),G[0]&6&&s!==(s=t[1][t[30]].documentation?.type+"")&&tt(d,s),G[0]&6&&u!==(u=t[1][t[30]].documentation?.description+"")&&tt(f,u),G[0]&6&&v!==(v=Mr(t[1][t[30]].props.label)+"")&&tt(P,v),G[0]&6&&h!==(h=t[1][t[30]].props.name+"")&&tt(C,h)},d(R){R&&S(e),R&&S(n),R&&S(r),B&&B.d(R),R&&S(o),R&&S(a),R&&S(c),R&&S(p),R&&S(x),R&&S(k),J=!1,O()}}}function Cr(t){let e,n,r,o;function a(){t[16].call(e,t[21],t[24])}return{c(){e=E("input"),n=L(" :"),e.disabled=!0,y(e,"class","bg-gray-100 dark:bg-gray-600 border-none w-40 px-1 py-0.5 my-0.5 text-sm rounded ring-1 ring-gray-300 dark:ring-gray-500"),y(e,"type","text")},m(i,s){A(i,e,s),Et(e,t[7][t[21]][t[24]]),A(i,n,s),r||(o=Z(e,"input",a),r=!0)},p(i,s){t=i,s[0]&128&&e.value!==t[7][t[21]][t[24]]&&Et(e,t[7][t[21]][t[24]])},d(i){i&&S(e),i&&S(n),r=!1,o()}}}function Ir(t){let e,n,r,o=t[1][t[30]].documentation?.type+"",a,i,s,d,l,c=t[1][t[30]].documentation?.description+"",p,g,u=zr(t[1][t[30]].props.label)+"",f,_,v,P=t[1][t[30]].props.name+"",T,m,h,C,w=t[7][t[21]][t[24]]!==void 0&&Cr(t);return{c(){e=L("\xA0\xA0\xA0\xA0"),w&&w.c(),n=M(),r=E("span"),a=L(o),i=L(","),s=M(),d=E("span"),l=L("// represents "),p=L(c),g=L(` of + `),f=L(u),_=M(),v=E("span"),T=L(P),m=L(" component"),h=M(),C=E("br"),y(r,"class","text-gray-500"),y(v,"class","capitalize"),y(d,"class","text-gray-400")},m(x,k){A(x,e,k),w&&w.m(x,k),A(x,n,k),A(x,r,k),b(r,a),b(r,i),A(x,s,k),A(x,d,k),b(d,l),b(d,p),b(d,g),b(d,f),b(d,_),b(d,v),b(v,T),b(d,m),A(x,h,k),A(x,C,k)},p(x,k){x[7][x[21]][x[24]]!==void 0?w?w.p(x,k):(w=Cr(x),w.c(),w.m(n.parentNode,n)):w&&(w.d(1),w=null),k[0]&6&&o!==(o=x[1][x[30]].documentation?.type+"")&&tt(a,o),k[0]&6&&c!==(c=x[1][x[30]].documentation?.description+"")&&tt(p,c),k[0]&6&&u!==(u=zr(x[1][x[30]].props.label)+"")&&tt(f,u),k[0]&6&&P!==(P=x[1][x[30]].props.name+"")&&tt(T,P)},d(x){x&&S(e),w&&w.d(x),x&&S(n),x&&S(r),x&&S(s),x&&S(d),x&&S(h),x&&S(C)}}}function Pr(t){let e,n,r;return n=new ll({props:{margin:!1}}),{c(){e=E("div"),bt(n.$$.fragment),y(e,"class","self-center justify-self-center")},m(o,a){A(o,e,a),ct(n,e,null),r=!0},i(o){r||(z(n.$$.fragment,o),r=!0)},o(o){U(n.$$.fragment,o),r=!1},d(o){o&&S(e),pt(n)}}}function Or(t){let e,n,r,o,a=t[26]+"",i,s,d,l,c;function p(){return t[17](t[26])}return{c(){e=E("li"),n=E("img"),o=M(),i=L(a),s=M(),Wt(n.src,r=t[27])||y(n,"src",r),y(n,"class","mr-1.5 w-3"),y(n,"alt",""),y(e,"class",d="flex items-center border rounded-lg px-1.5 py-1 leading-none select-none text-smd capitalize "+(t[3]===t[26]?"border-gray-400 text-gray-800 dark:bg-gray-700":"text-gray-400 cursor-pointer hover:text-gray-700 dark:hover:text-gray-200 hover:shadow-sm"))},m(g,u){A(g,e,u),b(e,n),b(e,o),b(e,i),b(e,s),l||(c=Z(e,"click",p),l=!0)},p(g,u){t=g,u[0]&8&&d!==(d="flex items-center border rounded-lg px-1.5 py-1 leading-none select-none text-smd capitalize "+(t[3]===t[26]?"border-gray-400 text-gray-800 dark:bg-gray-700":"text-gray-400 cursor-pointer hover:text-gray-700 dark:hover:text-gray-200 hover:shadow-sm"))&&y(e,"class",d)},d(g){g&&S(e),l=!1,c()}}}function uc(t){let e;return{c(){e=E("pre"),e.textContent="Hello World",y(e,"class","break-words whitespace-pre-wrap")},m(n,r){A(n,e,r)},p:Y,d(n){n&&S(e)}}}function fc(t){let e,n,r=t[0]+"run/"+t[19].api_name,o,a,i,s=t[6][t[21]],d=[];for(let l=0;l r.json()) +.then( + r => { + let data = r.data; + } +)`)},m(l,c){A(l,e,c),b(e,n),b(e,o),b(e,a);for(let p=0;p{r=null}),Rt())},i(o){n||(z(r),n=!0)},o(o){U(r),n=!1},d(o){r&&r.d(o),o&&S(e)}}}function bc(t){let e,n,r,o;const a=[dc,sc],i=[];function s(d,l){return d[10]?0:1}return e=s(t),n=i[e]=a[e](t),{c(){n.c(),r=vt()},m(d,l){i[e].m(d,l),A(d,r,l),o=!0},p(d,l){n.p(d,l)},i(d){o||(z(n),o=!0)},o(d){U(n),o=!1},d(d){i[e].d(d),d&&S(r)}}}const Mr=t=>t?"'"+t+"'":"the",zr=t=>t?"'"+t+"'":"the";function wc(t,e,n){const r=Gn();Un(()=>(document.body.style.overflow="hidden",()=>{document.body.style.overflow="auto"}));let{instance_map:o}=e,{dependencies:a}=e,{root:i}=e;i===""&&(i=location.protocol+"//"+location.host+location.pathname),i.endsWith("/")||(i+="/");let s="python",d=-1,l=!1,c=a.map(w=>w.inputs.map(x=>{let k=o[x].documentation?.example_data;return k===void 0?k="":typeof k=="object"&&(k=JSON.stringify(k)),k})),p=a.map(w=>new Array(w.outputs.length)),g=a.map(w=>new Array(w.inputs.length).fill(!1)),u=a.filter(w=>w.api_name).length;const f=async w=>{n(5,l=!0);let x=a[w],k=0;try{var J=c[w].map((B,R)=>{k=R;let G=o[x.inputs[R]];return B=_(B,G.documentation?.type),n(8,g[w][k]=!1,g),B})}catch{n(8,g[w][k]=!0,g),n(5,l=!1);return}let[O,ot]=await il(`${i}run/${x.api_name}`,{data:J});n(5,l=!1),ot==200?n(7,p[w]=O.data.map((B,R)=>{let G=o[x.outputs[R]];return console.log(G.documentation?.type,B,_(B,G.documentation?.type,"js")),_(B,G.documentation?.type,"js")}),p):n(8,g[w]=new Array(g[w].length).fill(!0),g)},_=(w,x,k=null)=>x===void 0?k==="py"?"None":null:x==="string"?k===null?w:'"'+w+'"':x==="number"?k===null?parseFloat(w):w:x==="boolean"?k==="py"?w==="true"?"True":"False":k==="js"?w:w==="true":k===null?w===""?null:JSON.parse(w):typeof w=="string"?w===""?k==="py"?"None":"null":w:JSON.stringify(w),v=()=>r("close"),P=(w,x)=>{navigator.clipboard.writeText(i+"run/"+w.api_name),n(4,d=x),setTimeout(()=>{n(4,d=-1)},500)};function T(w,x){c[w][x]=this.value,n(6,c)}function m(w,x){p[w][x]=this.value,n(7,p)}const h=w=>n(3,s=w),C=()=>r("close");return t.$$set=w=>{"instance_map"in w&&n(1,o=w.instance_map),"dependencies"in w&&n(2,a=w.dependencies),"root"in w&&n(0,i=w.root)},[i,o,a,s,d,l,c,p,g,r,u,f,_,v,P,T,m,h,C]}class hc extends Ct{constructor(e){super(),Tt(this,e,wc,bc,xt,{instance_map:1,dependencies:2,root:0},null,[-1,-1])}}var _c="https://gradio.s3-us-west-2.amazonaws.com/3.14.0/assets/logo.0a070fcf.svg";function jr(t){return document.title=t[2],{c:Y,m:Y,d:Y}}function Fr(t){let e,n;return{c(){e=E("script"),e.async=!0,e.defer=!0,Wt(e.src,n="https://www.googletagmanager.com/gtag/js?id=UA-156449732-1")||y(e,"src",n)},m(r,o){A(r,e,o)},d(r){r&&S(e)}}}function Dr(t){let e,n;return e=new ol({props:{has_modes:t[9].has_modes,component:t[9].component,id:t[9].id,props:t[9].props,children:t[9].children,dynamic_ids:t[15],instance_map:t[11],root:t[0],target:t[4],theme:t[8]}}),e.$on("mount",t[16]),e.$on("destroy",t[25]),{c(){bt(e.$$.fragment)},m(r,o){ct(e,r,o),n=!0},p(r,o){const a={};o[0]&512&&(a.has_modes=r[9].has_modes),o[0]&512&&(a.component=r[9].component),o[0]&512&&(a.id=r[9].id),o[0]&512&&(a.props=r[9].props),o[0]&512&&(a.children=r[9].children),o[0]&2048&&(a.instance_map=r[11]),o[0]&1&&(a.root=r[0]),o[0]&16&&(a.target=r[4]),o[0]&256&&(a.theme=r[8]),e.$set(a)},i(r){n||(z(e.$$.fragment,r),n=!0)},o(r){U(e.$$.fragment,r),n=!1},d(r){pt(e,r)}}}function Ur(t){let e,n,r,o,a,i,s,d;return{c(){e=E("button"),n=L("Use via API "),r=E("img"),a=M(),i=E("div"),i.textContent="\xB7",Wt(r.src,o=sl)||y(r,"src",o),y(r,"alt",""),y(r,"class","w-2.5 md:w-3 mx-1"),y(e,"class","flex items-center hover:text-gray-500")},m(l,c){A(l,e,c),b(e,n),b(e,r),A(l,a,c),A(l,i,c),s||(d=Z(e,"click",t[26]),s=!0)},p:Y,d(l){l&&S(e),l&&S(a),l&&S(i),s=!1,d()}}}function Gr(t){let e,n,r,o,a,i,s,d;return a=new hc({props:{instance_map:t[11],dependencies:t[1],root:t[0]}}),a.$on("close",t[28]),{c(){e=E("div"),n=E("div"),r=M(),o=E("div"),bt(a.$$.fragment),y(n,"class","flex-1 backdrop-blur-sm"),y(o,"class","md:w-[950px] 2xl:w-[1150px] bg-white md:rounded-l-xl shadow-2xl overflow-hidden overflow-y-auto"),y(e,"class","h-screen w-screen fixed z-50 bg-black/50 flex top-0")},m(l,c){A(l,e,c),b(e,n),b(e,r),b(e,o),ct(a,o,null),i=!0,s||(d=Z(n,"click",t[27]),s=!0)},p(l,c){const p={};c[0]&2048&&(p.instance_map=l[11]),c[0]&2&&(p.dependencies=l[1]),c[0]&1&&(p.root=l[0]),a.$set(p)},i(l){i||(z(a.$$.fragment,l),i=!0)},o(l){U(a.$$.fragment,l),i=!1},d(l){l&&S(e),pt(a),s=!1,d()}}}function yc(t){let e,n,r,o,a,i,s,d,l,c,p,g,u,f,_,v=t[6]&&jr(t),P=t[3]&&Fr(),T=t[12]&&Dr(t),m=t[5]&&Ur(t),h=t[10]&&t[12]&&Gr(t);return{c(){v&&v.c(),e=vt(),P&&P.c(),n=vt(),r=M(),o=E("div"),a=E("div"),T&&T.c(),i=M(),s=E("footer"),m&&m.c(),d=M(),l=E("a"),c=L(`Built with Gradio + `),p=E("img"),u=M(),h&&h.c(),f=vt(),y(a,"class","mx-auto container px-4 py-6 dark:bg-gray-950"),V(a,"flex-grow",t[7]),y(p,"class","w-2.5 md:w-3 mx-1"),Wt(p.src,g=_c)||y(p,"src",g),y(p,"alt","logo"),y(l,"href","https://gradio.app"),y(l,"class","flex items-center hover:text-gray-500"),y(l,"target","_blank"),y(l,"rel","noreferrer"),y(s,"class","flex justify-center pb-6 text-gray-400 space-x-2 text-sm md:text-base"),y(o,"class","w-full flex flex-col"),V(o,"min-h-screen",t[7])},m(C,w){v&&v.m(document.head,null),b(document.head,e),P&&P.m(document.head,null),b(document.head,n),A(C,r,w),A(C,o,w),b(o,a),T&&T.m(a,null),b(o,i),b(o,s),m&&m.m(s,null),b(s,d),b(s,l),b(l,c),b(l,p),A(C,u,w),h&&h.m(C,w),A(C,f,w),_=!0},p(C,w){C[6]?v||(v=jr(C),v.c(),v.m(e.parentNode,e)):v&&(v.d(1),v=null),C[3]?P||(P=Fr(),P.c(),P.m(n.parentNode,n)):P&&(P.d(1),P=null),C[12]?T?(T.p(C,w),w[0]&4096&&z(T,1)):(T=Dr(C),T.c(),z(T,1),T.m(a,null)):T&&(Lt(),U(T,1,1,()=>{T=null}),Rt()),w[0]&128&&V(a,"flex-grow",C[7]),C[5]?m?m.p(C,w):(m=Ur(C),m.c(),m.m(s,d)):m&&(m.d(1),m=null),w[0]&128&&V(o,"min-h-screen",C[7]),C[10]&&C[12]?h?(h.p(C,w),w[0]&5120&&z(h,1)):(h=Gr(C),h.c(),z(h,1),h.m(f.parentNode,f)):h&&(Lt(),U(h,1,1,()=>{h=null}),Rt())},i(C){_||(z(T),z(h),_=!0)},o(C){U(T),U(h),_=!1},d(C){v&&v.d(C),S(e),P&&P.d(C),S(n),C&&S(r),C&&S(o),T&&T.d(),m&&m.d(),C&&S(u),h&&h.d(C),C&&S(f)}}}function Vr(t,e,n){let r=0;for(;;){const o=n[r];if(o===void 0)break;let a=0;for(;;){const i=o[e][a];if(i===void 0)break;if(i===t)return!0;a++}r++}return!1}function vc(t){return Array.isArray(t)&&t.length===0||t===""||t===0||!t}function xc(t,e,n){let r;tc();let{root:o}=e,{fn:a}=e,{components:i}=e,{layout:s}=e,{dependencies:d}=e,{enable_queue:l}=e,{title:c="Gradio"}=e,{analytics_enabled:p=!1}=e,{target:g}=e,{id:u=0}=e,{autoscroll:f=!1}=e,{show_api:_=!0}=e,{control_page_title:v=!1}=e,{app_mode:P}=e,{theme:T}=e,m=sd();He(t,m,I=>n(24,r=I));let h={id:s.id,type:"column",props:{},has_modes:!1,instance:{},component:{}};i.push(h);const C=Object.getPrototypeOf(async function(){}).constructor;d.forEach(I=>{if(I.js)try{I.frontend_fn=new C("__fn_args",`let result = await (${I.js})(...__fn_args); + return ${I.outputs.length} === 1 ? [result] : result;`)}catch(F){console.error("Could not parse custom js method."),console.error(F)}});let x=new URLSearchParams(window.location.search).get("view")==="api";const k=I=>{n(10,x=I);let F=new URLSearchParams(window.location.search);I?F.set("view","api"):F.delete("view"),history.replaceState(null,"","?"+F.toString())},J=i.reduce((I,{id:F,props:Q})=>{const W=Vr(F,"inputs",d),At=Vr(F,"outputs",d);return!W&&!At&&vc(Q?.value)&&I.add(F),W&&I.add(F),I},new Set);let O=i.reduce((I,F)=>(I[F.id]=F,I),{});function ot(I){return new Promise(async(F,Q)=>{try{const W=await ld[I]();F({name:I,component:W})}catch(W){console.error("failed to load: "+I),console.error(W),Q(W)}})}const B=new Set,R=new Map;async function G(I){let F=O[I.id];const Q=(await R.get(F.type)).component;F.component=Q.Component,Q.document&&(F.documentation=Q.document(F.props)),Q.modes&&Q.modes.length>1&&(F.has_modes=!0),I.children&&(F.children=I.children.map(W=>O[W.id]),await Promise.all(I.children.map(W=>G(W))))}i.forEach(async I=>{const F=ot(I.type);B.add(F),R.set(I.type,F)});let ge=!1;Promise.all(Array.from(B)).then(()=>{G(s).then(async()=>{n(12,ge=!0),await ke(),window.__gradio_loader__[u].$set({status:"complete"})}).catch(I=>{console.error(I),window.__gradio_loader__[u].$set({status:"error"})})});function Vt(I,F,Q){I?.props||(I.props={}),I.props[F]=Q,n(9,h)}let St=[];async function Nt(){await ke();for(var I=g.getElementsByTagName("a"),F=0;F{const Me=Q.map(nt=>[nt,O[nt]]);if(Q.length===0&&!St[it]?.includes(-1)&&W==="load"&&Mt.every(nt=>O?.[nt].instance)&&At.every(nt=>O?.[nt].instance)){let jt=function(lt){lt.data.forEach((_t,st)=>{if(typeof _t=="object"&&_t!==null&&_t.__type__==="update"){for(const[Ft,zt]of Object.entries(_t))Ft!=="__type__"&&n(11,O[Mt[st]].props[Ft]=zt,O);n(9,h)}else n(11,O[Mt[st]].props.value=_t,O)})};const nt=a({action:"predict",backend_fn:ue,frontend_fn:fe,payload:{fn_index:it,data:At.map(lt=>O[lt].props.value)},queue:ht===null?l:ht,queue_callback:jt,loading_status:m,cancels:Xt});(ht===null?l:ht)||nt.then(jt),St[it]=[-1]}Me.filter(nt=>!!nt&&!!nt[1]).forEach(([nt,{instance:jt}])=>{if(St[it]?.includes(nt)||!jt)return;jt?.$on(W,()=>{if(m.get_status_for_fn(it)==="pending")return;const _t=a({action:"predict",backend_fn:ue,frontend_fn:fe,payload:{fn_index:it,data:At.map(st=>O[st].props.value)},output_data:Mt.map(st=>O[st].props.value),queue:ht===null?l:ht,queue_callback:lt,loading_status:m,cancels:Xt});(ht===null?l:ht)||_t.then(lt)});function lt(_t){_t.data.forEach((st,Ft)=>{if(typeof st=="object"&&st!==null&&st.__type__==="update"){for(const[zt,It]of Object.entries(st))zt!=="__type__"&&n(11,O[Mt[Ft]].props[zt]=It,O);n(9,h)}else n(11,O[Mt[Ft]].props.value=st,O)})}St[it]||(St[it]=[]),St[it].push(nt)})})}function et(I){St=St.map(F=>F.filter(Q=>Q!==I))}d.forEach((I,F)=>{m.register(F,I.inputs,I.outputs)});function Pe(I){for(const Q in I){let W=I[Q],At=d[W.fn_index];W.scroll_to_output=At.scroll_to_output,W.visible=At.show_progress,Vt(O[Q],"loading_status",W)}const F=m.get_inputs_to_update();for(const[Q,W]of F)Vt(O[Q],"pending",W==="pending")}const Oe=({detail:I})=>et(I),Le=()=>{k(!x)},Re=()=>{k(!1)},Ne=()=>{k(!1)};return t.$$set=I=>{"root"in I&&n(0,o=I.root),"fn"in I&&n(18,a=I.fn),"components"in I&&n(19,i=I.components),"layout"in I&&n(20,s=I.layout),"dependencies"in I&&n(1,d=I.dependencies),"enable_queue"in I&&n(21,l=I.enable_queue),"title"in I&&n(2,c=I.title),"analytics_enabled"in I&&n(3,p=I.analytics_enabled),"target"in I&&n(4,g=I.target),"id"in I&&n(22,u=I.id),"autoscroll"in I&&n(23,f=I.autoscroll),"show_api"in I&&n(5,_=I.show_api),"control_page_title"in I&&n(6,v=I.control_page_title),"app_mode"in I&&n(7,P=I.app_mode),"theme"in I&&n(8,T=I.theme)},t.$$.update=()=>{t.$$.dirty[0]&8388608&&Ro.update(I=>({...I,autoscroll:f})),t.$$.dirty[0]&16777216&&Pe(r)},[o,d,c,p,g,_,v,P,T,h,x,O,ge,m,k,J,Nt,et,a,i,s,l,u,f,r,Oe,Le,Re,Ne]}class kc extends Ct{constructor(e){super(),Tt(this,e,xc,yc,xt,{root:0,fn:18,components:19,layout:20,dependencies:1,enable_queue:21,title:2,analytics_enabled:3,target:4,id:22,autoscroll:23,show_api:5,control_page_title:6,app_mode:7,theme:8},null,[-1,-1])}}function Ec(t){let e,n;const r=t[1].default,o=Mn(r,t,t[0],null);return{c(){e=E("div"),o&&o.c(),y(e,"class","gr-form overflow-hidden flex border-solid border bg-gray-200 dark:bg-gray-700 gap-px rounded-lg flex-wrap"),Bt(e,"flex-direction","inherit")},m(a,i){A(a,e,i),o&&o.m(e,null),n=!0},p(a,[i]){o&&o.p&&(!n||i&1)&&jn(o,r,a,a[0],n?zn(r,a[0],i,null):Fn(a[0]),null)},i(a){n||(z(o,a),n=!0)},o(a){U(o,a),n=!1},d(a){a&&S(e),o&&o.d(a)}}}function Sc(t,e,n){let{$$slots:r={},$$scope:o}=e;return t.$$set=a=>{"$$scope"in a&&n(0,o=a.$$scope)},[o,r]}class Ac extends Ct{constructor(e){super(),Tt(this,e,Sc,Ec,xt,{})}}var an={},Ie={},Yn={exports:{}},K=String,cl=function(){return{isColorSupported:!1,reset:K,bold:K,dim:K,italic:K,underline:K,inverse:K,hidden:K,strikethrough:K,black:K,red:K,green:K,yellow:K,blue:K,magenta:K,cyan:K,white:K,gray:K,bgBlack:K,bgRed:K,bgGreen:K,bgYellow:K,bgBlue:K,bgMagenta:K,bgCyan:K,bgWhite:K}};Yn.exports=cl();Yn.exports.createColors=cl;Object.defineProperty(Ie,"__esModule",{value:!0});Ie.dim=Cc;Ie.default=void 0;var qt=Tc(Yn.exports);function Tc(t){return t&&t.__esModule?t:{default:t}}let Xr=new Set;function bn(t,e,n){typeof process<"u"&&{}.JEST_WORKER_ID||n&&Xr.has(n)||(n&&Xr.add(n),console.warn(""),e.forEach(r=>console.warn(t,"-",r)))}function Cc(t){return qt.default.dim(t)}var Ic={info(t,e){bn(qt.default.bold(qt.default.cyan("info")),...Array.isArray(t)?[t]:[e,t])},warn(t,e){bn(qt.default.bold(qt.default.yellow("warn")),...Array.isArray(t)?[t]:[e,t])},risk(t,e){bn(qt.default.bold(qt.default.magenta("risk")),...Array.isArray(t)?[t]:[e,t])}};Ie.default=Ic;Object.defineProperty(an,"__esModule",{value:!0});an.default=void 0;var Pc=Oc(Ie);function Oc(t){return t&&t.__esModule?t:{default:t}}function we({version:t,from:e,to:n}){Pc.default.warn(`${e}-color-renamed`,[`As of Tailwind CSS ${t}, \`${e}\` has been renamed to \`${n}\`.`,"Update your configuration file to silence this warning."])}var Lc={inherit:"inherit",current:"currentColor",transparent:"transparent",black:"#000",white:"#fff",slate:{50:"#f8fafc",100:"#f1f5f9",200:"#e2e8f0",300:"#cbd5e1",400:"#94a3b8",500:"#64748b",600:"#475569",700:"#334155",800:"#1e293b",900:"#0f172a"},gray:{50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827"},zinc:{50:"#fafafa",100:"#f4f4f5",200:"#e4e4e7",300:"#d4d4d8",400:"#a1a1aa",500:"#71717a",600:"#52525b",700:"#3f3f46",800:"#27272a",900:"#18181b"},neutral:{50:"#fafafa",100:"#f5f5f5",200:"#e5e5e5",300:"#d4d4d4",400:"#a3a3a3",500:"#737373",600:"#525252",700:"#404040",800:"#262626",900:"#171717"},stone:{50:"#fafaf9",100:"#f5f5f4",200:"#e7e5e4",300:"#d6d3d1",400:"#a8a29e",500:"#78716c",600:"#57534e",700:"#44403c",800:"#292524",900:"#1c1917"},red:{50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d"},orange:{50:"#fff7ed",100:"#ffedd5",200:"#fed7aa",300:"#fdba74",400:"#fb923c",500:"#f97316",600:"#ea580c",700:"#c2410c",800:"#9a3412",900:"#7c2d12"},amber:{50:"#fffbeb",100:"#fef3c7",200:"#fde68a",300:"#fcd34d",400:"#fbbf24",500:"#f59e0b",600:"#d97706",700:"#b45309",800:"#92400e",900:"#78350f"},yellow:{50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12"},lime:{50:"#f7fee7",100:"#ecfccb",200:"#d9f99d",300:"#bef264",400:"#a3e635",500:"#84cc16",600:"#65a30d",700:"#4d7c0f",800:"#3f6212",900:"#365314"},green:{50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d"},emerald:{50:"#ecfdf5",100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b"},teal:{50:"#f0fdfa",100:"#ccfbf1",200:"#99f6e4",300:"#5eead4",400:"#2dd4bf",500:"#14b8a6",600:"#0d9488",700:"#0f766e",800:"#115e59",900:"#134e4a"},cyan:{50:"#ecfeff",100:"#cffafe",200:"#a5f3fc",300:"#67e8f9",400:"#22d3ee",500:"#06b6d4",600:"#0891b2",700:"#0e7490",800:"#155e75",900:"#164e63"},sky:{50:"#f0f9ff",100:"#e0f2fe",200:"#bae6fd",300:"#7dd3fc",400:"#38bdf8",500:"#0ea5e9",600:"#0284c7",700:"#0369a1",800:"#075985",900:"#0c4a6e"},blue:{50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a"},indigo:{50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81"},violet:{50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95"},purple:{50:"#faf5ff",100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7e22ce",800:"#6b21a8",900:"#581c87"},fuchsia:{50:"#fdf4ff",100:"#fae8ff",200:"#f5d0fe",300:"#f0abfc",400:"#e879f9",500:"#d946ef",600:"#c026d3",700:"#a21caf",800:"#86198f",900:"#701a75"},pink:{50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843"},rose:{50:"#fff1f2",100:"#ffe4e6",200:"#fecdd3",300:"#fda4af",400:"#fb7185",500:"#f43f5e",600:"#e11d48",700:"#be123c",800:"#9f1239",900:"#881337"},get lightBlue(){return we({version:"v2.2",from:"lightBlue",to:"sky"}),this.sky},get warmGray(){return we({version:"v3.0",from:"warmGray",to:"stone"}),this.stone},get trueGray(){return we({version:"v3.0",from:"trueGray",to:"neutral"}),this.neutral},get coolGray(){return we({version:"v3.0",from:"coolGray",to:"gray"}),this.gray},get blueGray(){return we({version:"v3.0",from:"blueGray",to:"slate"}),this.slate}};an.default=Lc;let wn=an;var qr=(wn.__esModule?wn:{default:wn}).default;const R0=["red","green","blue","yellow","purple","teal","orange","cyan","lime","pink"],Rc=[{color:"red",primary:600,secondary:100},{color:"green",primary:600,secondary:100},{color:"blue",primary:600,secondary:100},{color:"yellow",primary:500,secondary:100},{color:"purple",primary:600,secondary:100},{color:"teal",primary:600,secondary:100},{color:"orange",primary:600,secondary:100},{color:"cyan",primary:600,secondary:100},{color:"lime",primary:500,secondary:100},{color:"pink",primary:600,secondary:100}],N0=Rc.reduce((t,{color:e,primary:n,secondary:r})=>({...t,[e]:{primary:qr[e][n],secondary:qr[e][r]}}),{}),Nc=(t,e)=>pl[e](t[e]);function Br(t,e){const n=e.reduce((r,o)=>(t[o]===void 0||!pl[o]?r[o]=" ":r[o]=` ${Nc(t,o)} `,r),{});return n.classes=` ${Object.values(n).join(" ").replace(/\s+/g," ").trim()} `,n}const pl={container(t){return t?"":"!p-0 !m-0 !border-0 !shadow-none !overflow-visible !bg-transparent"},label_container(t){return t?"":"!border-0 !shadow-none !overflow-visible !bg-transparent"},grid(t){let e=["","sm:","md:","lg:","xl:","2xl:"],n=Array.isArray(t)?t:[t];return[0,0,0,0,0,0].map((r,o)=>`${e[o]}grid-cols-${n?.[o]||n?.[n?.length-1]}`).join(" ")},height(t){return t==="auto"?"auto":""},full_width(t){return t?"w-full grow":"grow-0"},equal_height(t){return t?"items-stretch":"unequal-height"},visible(t){return t?"":"!hidden"},item_container(t){return t?"":"!border-none"}},M0=(t,e="")=>{let n=[],r={};if(e==="")r=t;else for(const o in t)if(o.startsWith(e+"_")){const a=o.substring(o.indexOf("_")+1);r[a]=t[o]}if(r.hasOwnProperty("margin")){Array.isArray(r.margin)||(r.margin=r.margin?[!0,!0,!0,!0]:[!1,!1,!1,!1]);let o=["t","r","b","l"];r.margin.forEach((a,i)=>{a||n.push(`!m${o[i]}-0`)})}if(r.hasOwnProperty("border")){Array.isArray(r.border)||(r.border=r.border?[!0,!0,!0,!0]:[!1,!1,!1,!1]);let o=["t","r","b","l"];r.border.forEach((a,i)=>{a||n.push(`!border-${o[i]}-0`)})}switch(r.rounded){case!0:n.push("!rounded-lg");break;case!1:n.push("!rounded-none");break}switch(r.full_width){case!0:n.push("w-full");break;case!1:n.push("!grow-0");break}switch(r.text_color){case"red":n.push("!text-red-500","dark:text-red-100");break;case"yellow":n.push("!text-yellow-500","dark:text-yellow-100");break;case"green":n.push("!text-green-500","dark:text-green-100");break;case"blue":n.push("!text-blue-500","dark:text-blue-100");break;case"purple":n.push("!text-purple-500","dark:text-purple-100");break;case"black":n.push("!text-gray-700","dark:text-gray-50");break}switch(r.bg_color){case"red":n.push("!bg-red-100 !from-red-100 !to-red-200 !border-red-300","dark:!bg-red-700 dark:!from-red-700 dark:!to-red-800 dark:!border-red-900");break;case"yellow":n.push("!bg-yellow-100 !from-yellow-100 !to-yellow-200 !border-yellow-300","dark:!bg-yellow-700 dark:!from-yellow-700 dark:!to-yellow-800 dark:!border-yellow-900");break;case"green":n.push("!bg-green-100 !from-green-100 !to-green-200 !border-green-300","dark:!bg-green-700 dark:!from-green-700 dark:!to-green-800 dark:!border-green-900 !text-gray-800");break;case"blue":n.push("!bg-blue-100 !from-blue-100 !to-blue-200 !border-blue-300","dark:!bg-blue-700 dark:!from-blue-700 dark:!to-blue-800 dark:!border-blue-900");break;case"purple":n.push("!bg-purple-100 !from-purple-100 !to-purple-200 !border-purple-300","dark:!bg-purple-700 dark:!from-purple-700 dark:!to-purple-800 dark:!border-purple-900");break;case"black":n.push("!bg-gray-100 !from-gray-100 !to-gray-200 !border-gray-300","dark:!bg-gray-700 dark:!from-gray-700 dark:!to-gray-800 dark:!border-gray-900");case"pink":n.push("!bg-pink-100 !from-pink-100 !to-pink-200 !border-pink-300","dark:!bg-pink-700 dark:!from-pink-700 dark:!to-pink-800 dark:!border-pink-900 !text-gray-800");break}return" "+n.join(" ")};function hn(t){let e,n,r,o;const a=t[15].default,i=Mn(a,t,t[14],null);let s=[{"data-testid":t[4]},{id:t[0]},{class:n="gr-block gr-box relative w-full overflow-hidden "+t[8][t[1]]+" "+t[8][t[2]]+" "+t[7]},{style:r=t[6]||null}],d={};for(let l=0;l{"style"in m&&n(10,s=m.style),"elem_id"in m&&n(0,d=m.elem_id),"variant"in m&&n(1,l=m.variant),"color"in m&&n(2,c=m.color),"padding"in m&&n(3,p=m.padding),"type"in m&&n(11,g=m.type),"test_id"in m&&n(4,u=m.test_id),"disable"in m&&n(12,f=m.disable),"explicit_call"in m&&n(13,_=m.explicit_call),"visible"in m&&n(5,v=m.visible),"$$scope"in m&&n(14,i=m.$$scope)},t.$$.update=()=>{t.$$.dirty&13312&&n(7,{classes:r}=_?Br(s,[]):f?Br({container:!1},["container"]):{classes:""},r),t.$$.dirty&1024&&n(6,o=(typeof s.height=="number"?`height: ${s.height}px; `:"")+(typeof s.width=="number"?`width: ${s.width}px;`:""))},[d,l,c,p,u,v,o,r,P,T,s,g,f,_,i,a]}class jc extends Ct{constructor(e){super(),Tt(this,e,zc,Mc,xt,{style:10,elem_id:0,variant:1,color:2,padding:3,type:11,test_id:4,disable:12,explicit_call:13,visible:5})}}function Fc(t){let e,n;const r=t[2].default,o=Mn(r,t,t[1],null);return{c(){e=E("span"),o&&o.c(),y(e,"class","text-gray-500 text-[0.855rem] mb-2 block dark:text-gray-200 relative z-40"),V(e,"sr-only",!t[0]),V(e,"h-0",!t[0]),V(e,"!m-0",!t[0])},m(a,i){A(a,e,i),o&&o.m(e,null),n=!0},p(a,[i]){o&&o.p&&(!n||i&2)&&jn(o,r,a,a[1],n?zn(r,a[1],i,null):Fn(a[1]),null),i&1&&V(e,"sr-only",!a[0]),i&1&&V(e,"h-0",!a[0]),i&1&&V(e,"!m-0",!a[0])},i(a){n||(z(o,a),n=!0)},o(a){U(o,a),n=!1},d(a){a&&S(e),o&&o.d(a)}}}function Dc(t,e,n){let{$$slots:r={},$$scope:o}=e,{show_label:a=!0}=e;return t.$$set=i=>{"show_label"in i&&n(0,a=i.show_label),"$$scope"in i&&n(1,o=i.$$scope)},[a,o,r]}class Uc extends Ct{constructor(e){super(),Tt(this,e,Dc,Fc,xt,{show_label:0})}}function Gc(t){let e;return{c(){e=L(t[3])},m(n,r){A(n,e,r)},p(n,r){r&8&&tt(e,n[3])},d(n){n&&S(e)}}}function Vc(t){let e,n,r,o;return{c(){e=E("textarea"),y(e,"data-testid","textbox"),y(e,"class","scroll-hide block gr-box gr-input w-full gr-text-input"),y(e,"placeholder",t[2]),y(e,"rows",t[1]),e.disabled=t[4]},m(a,i){A(a,e,i),Et(e,t[0]),t[19](e),r||(o=[vl(n=t[11].call(null,e,t[0])),Z(e,"input",t[18]),Z(e,"keypress",t[10]),Z(e,"blur",t[9])],r=!0)},p(a,i){i&4&&y(e,"placeholder",a[2]),i&2&&y(e,"rows",a[1]),i&16&&(e.disabled=a[4]),n&&Zt(n.update)&&i&1&&n.update.call(null,a[0]),i&1&&Et(e,a[0])},d(a){a&&S(e),t[19](null),r=!1,wt(o)}}}function Xc(t){let e;function n(a,i){if(a[7]==="text")return Hc;if(a[7]==="password")return Bc;if(a[7]==="email")return qc}let r=n(t),o=r&&r(t);return{c(){o&&o.c(),e=vt()},m(a,i){o&&o.m(a,i),A(a,e,i)},p(a,i){r===(r=n(a))&&o?o.p(a,i):(o&&o.d(1),o=r&&r(a),o&&(o.c(),o.m(e.parentNode,e)))},d(a){o&&o.d(a),a&&S(e)}}}function qc(t){let e,n,r;return{c(){e=E("input"),y(e,"data-testid","textbox"),y(e,"type","email"),y(e,"class","scroll-hide block gr-box gr-input w-full gr-text-input"),y(e,"placeholder",t[2]),e.disabled=t[4],y(e,"autocomplete","email")},m(o,a){A(o,e,a),Et(e,t[0]),t[17](e),n||(r=[Z(e,"input",t[16]),Z(e,"keypress",t[10]),Z(e,"blur",t[9])],n=!0)},p(o,a){a&4&&y(e,"placeholder",o[2]),a&16&&(e.disabled=o[4]),a&1&&e.value!==o[0]&&Et(e,o[0])},d(o){o&&S(e),t[17](null),n=!1,wt(r)}}}function Bc(t){let e,n,r;return{c(){e=E("input"),y(e,"data-testid","password"),y(e,"type","password"),y(e,"class","scroll-hide block gr-box gr-input w-full gr-text-input"),y(e,"placeholder",t[2]),e.disabled=t[4],y(e,"autocomplete","")},m(o,a){A(o,e,a),Et(e,t[0]),t[15](e),n||(r=[Z(e,"input",t[14]),Z(e,"keypress",t[10]),Z(e,"blur",t[9])],n=!0)},p(o,a){a&4&&y(e,"placeholder",o[2]),a&16&&(e.disabled=o[4]),a&1&&e.value!==o[0]&&Et(e,o[0])},d(o){o&&S(e),t[15](null),n=!1,wt(r)}}}function Hc(t){let e,n,r;return{c(){e=E("input"),y(e,"data-testid","textbox"),y(e,"type","text"),y(e,"class","scroll-hide block gr-box gr-input w-full gr-text-input"),y(e,"placeholder",t[2]),e.disabled=t[4]},m(o,a){A(o,e,a),Et(e,t[0]),t[13](e),n||(r=[Z(e,"input",t[12]),Z(e,"keypress",t[10]),Z(e,"blur",t[9])],n=!0)},p(o,a){a&4&&y(e,"placeholder",o[2]),a&16&&(e.disabled=o[4]),a&1&&e.value!==o[0]&&Et(e,o[0])},d(o){o&&S(e),t[13](null),n=!1,wt(r)}}}function Wc(t){let e,n,r,o;n=new Uc({props:{show_label:t[5],$$slots:{default:[Gc]},$$scope:{ctx:t}}});function a(d,l){return d[1]===1&&d[6]===1?Xc:Vc}let i=a(t),s=i(t);return{c(){e=E("label"),bt(n.$$.fragment),r=M(),s.c(),y(e,"class","block w-full")},m(d,l){A(d,e,l),ct(n,e,null),b(e,r),s.m(e,null),o=!0},p(d,[l]){const c={};l&32&&(c.show_label=d[5]),l&8388616&&(c.$$scope={dirty:l,ctx:d}),n.$set(c),i===(i=a(d))&&s?s.p(d,l):(s.d(1),s=i(d),s&&(s.c(),s.m(e,null)))},i(d){o||(z(n.$$.fragment,d),o=!0)},o(d){U(n.$$.fragment,d),o=!1},d(d){d&&S(e),pt(n),s.d()}}}function Yc(t,e,n){let{value:r=""}=e,{lines:o=1}=e,{placeholder:a="Type here..."}=e,{label:i}=e,{disabled:s=!1}=e,{show_label:d=!0}=e,{max_lines:l}=e,{type:c="text"}=e,p;const g=Gn();function u(O){g("change",O)}function f(O){g("blur")}async function _(O){await ke(),(O.key==="Enter"&&O.shiftKey&&o>1||O.key==="Enter"&&!O.shiftKey&&o===1&&l>=1)&&(O.preventDefault(),g("submit"))}async function v(O){if(await ke(),o===l)return;let ot=l===!1?!1:l===void 0?21*11:21*(l+1),B=21*(o+1);const R=O.target;R.style.height="1px";let G;ot&&R.scrollHeight>ot?G=ot:R.scrollHeightO.removeEventListener("input",v)}}function T(){r=this.value,n(0,r)}function m(O){yt[O?"unshift":"push"](()=>{p=O,n(8,p)})}function h(){r=this.value,n(0,r)}function C(O){yt[O?"unshift":"push"](()=>{p=O,n(8,p)})}function w(){r=this.value,n(0,r)}function x(O){yt[O?"unshift":"push"](()=>{p=O,n(8,p)})}function k(){r=this.value,n(0,r)}function J(O){yt[O?"unshift":"push"](()=>{p=O,n(8,p)})}return t.$$set=O=>{"value"in O&&n(0,r=O.value),"lines"in O&&n(1,o=O.lines),"placeholder"in O&&n(2,a=O.placeholder),"label"in O&&n(3,i=O.label),"disabled"in O&&n(4,s=O.disabled),"show_label"in O&&n(5,d=O.show_label),"max_lines"in O&&n(6,l=O.max_lines),"type"in O&&n(7,c=O.type)},t.$$.update=()=>{t.$$.dirty&323&&p&&o!==l&&v({target:p}),t.$$.dirty&1&&u(r)},[r,o,a,i,s,d,l,c,p,f,_,P,T,m,h,C,w,x,k,J]}class Zc extends Ct{constructor(e){super(),Tt(this,e,Yc,Wc,xt,{value:0,lines:1,placeholder:2,label:3,disabled:4,show_label:5,max_lines:6,type:7})}}function Jc(t,{delay:e=0,duration:n=400,easing:r=$e}={}){const o=+getComputedStyle(t).opacity;return{delay:e,duration:n,easing:r,css:a=>`opacity: ${a*o}`}}function Qc(t){let e,n,r,o=t[9]&&Hr(t);return{c(){e=E("span"),e.textContent="Error",n=M(),o&&o.c(),r=vt(),y(e,"class","error svelte-1w9161c")},m(a,i){A(a,e,i),A(a,n,i),o&&o.m(a,i),A(a,r,i)},p(a,i){a[9]?o?(o.p(a,i),i&512&&z(o,1)):(o=Hr(a),o.c(),z(o,1),o.m(r.parentNode,r)):o&&(o.d(1),o=null)},i(a){z(o)},o:Y,d(a){a&&S(e),a&&S(n),o&&o.d(a),a&&S(r)}}}function Kc(t){let e,n,r,o,a,i,s,d,l=t[7]==="default"&&Wr(t);function c(_,v){if(_[1]!==null&&_[2]!==void 0&&_[1]>=0)return t0;if(_[1]===0)return $c}let p=c(t),g=p&&p(t),u=t[4]&&Yr(t);a=new ll({props:{margin:t[7]==="default"}});let f=!t[4]&&Zr();return{c(){l&&l.c(),e=M(),n=E("div"),g&&g.c(),r=M(),u&&u.c(),o=M(),bt(a.$$.fragment),i=M(),f&&f.c(),s=vt(),y(n,"class","dark:text-gray-400 svelte-1w9161c"),V(n,"meta-text-center",t[7]==="center"),V(n,"meta-text",t[7]==="default")},m(_,v){l&&l.m(_,v),A(_,e,v),A(_,n,v),g&&g.m(n,null),b(n,r),u&&u.m(n,null),A(_,o,v),ct(a,_,v),A(_,i,v),f&&f.m(_,v),A(_,s,v),d=!0},p(_,v){_[7]==="default"?l?l.p(_,v):(l=Wr(_),l.c(),l.m(e.parentNode,e)):l&&(l.d(1),l=null),p===(p=c(_))&&g?g.p(_,v):(g&&g.d(1),g=p&&p(_),g&&(g.c(),g.m(n,r))),_[4]?u?u.p(_,v):(u=Yr(_),u.c(),u.m(n,null)):u&&(u.d(1),u=null),v&128&&V(n,"meta-text-center",_[7]==="center"),v&128&&V(n,"meta-text",_[7]==="default");const P={};v&128&&(P.margin=_[7]==="default"),a.$set(P),_[4]?f&&(f.d(1),f=null):f||(f=Zr(),f.c(),f.m(s.parentNode,s))},i(_){d||(z(a.$$.fragment,_),d=!0)},o(_){U(a.$$.fragment,_),d=!1},d(_){l&&l.d(_),_&&S(e),_&&S(n),g&&g.d(),u&&u.d(),_&&S(o),pt(a,_),_&&S(i),f&&f.d(_),_&&S(s)}}}function Hr(t){let e,n,r,o,a,i,s,d,l,c,p,g,u;return{c(){e=E("div"),n=E("div"),r=M(),o=E("div"),a=E("div"),i=L(`Error + `),s=E("button"),s.textContent="\xD7",d=M(),l=E("div"),c=L(t[6]),y(n,"class","absolute left-0 md:left-auto border-black right-0 top-0 h-96 md:w-1/2 bg-gradient-to-b md:bg-gradient-to-bl from-red-500/5 via-transparent to-transparent"),y(s,"class","ml-auto text-gray-900 text-2xl pr-1"),y(a,"class","flex items-center bg-gradient-to-r from-red-500/10 to-red-200/10 px-3 py-1 text-lg font-bold text-red-500"),y(l,"class","px-3 py-3 text-base font-mono"),y(o,"class","absolute bg-white top-7 left-4 right-4 md:right-8 md:left-auto rounded-xl border border-gray-100 dark:border-gray-800 overflow-hidden shadow-2xl shadow-red-500/10 md:w-96 pointer-events-auto"),y(e,"class","fixed inset-0 z-[100]")},m(f,_){A(f,e,_),b(e,n),b(e,r),b(e,o),b(o,a),b(a,i),b(a,s),b(o,d),b(o,l),b(l,c),g||(u=[Z(s,"click",t[13]),Z(o,"click",El(t[20]))],g=!0)},p(f,_){_&64&&tt(c,f[6])},i(f){p||Yt(()=>{p=Nl(o,Jc,{duration:100}),p.start()})},o:Y,d(f){f&&S(e),g=!1,wt(u)}}}function Wr(t){let e,n=`scaleX(${t[12]||0})`;return{c(){e=E("div"),y(e,"class","progress-bar svelte-1w9161c"),Bt(e,"transform",n,!1)},m(r,o){A(r,e,o)},p(r,o){o&4096&&n!==(n=`scaleX(${r[12]||0})`)&&Bt(e,"transform",n,!1)},d(r){r&&S(e)}}}function $c(t){let e;return{c(){e=L("processing |")},m(n,r){A(n,e,r)},p:Y,d(n){n&&S(e)}}}function t0(t){let e,n=t[1]+1+"",r,o,a,i;return{c(){e=L("queue: "),r=L(n),o=L("/"),a=L(t[2]),i=L(" |")},m(s,d){A(s,e,d),A(s,r,d),A(s,o,d),A(s,a,d),A(s,i,d)},p(s,d){d&2&&n!==(n=s[1]+1+"")&&tt(r,n),d&4&&tt(a,s[2])},d(s){s&&S(e),s&&S(r),s&&S(o),s&&S(a),s&&S(i)}}}function Yr(t){let e,n=t[0]?`/${t[10]}`:"",r;return{c(){e=L(t[11]),r=L(n)},m(o,a){A(o,e,a),A(o,r,a)},p(o,a){a&2048&&tt(e,o[11]),a&1025&&n!==(n=o[0]?`/${o[10]}`:"")&&tt(r,n)},d(o){o&&S(e),o&&S(r)}}}function Zr(t){let e;return{c(){e=E("p"),e.textContent="Loading...",y(e,"class","timer svelte-1w9161c")},m(n,r){A(n,e,r)},d(n){n&&S(e)}}}function e0(t){let e,n,r,o;const a=[Kc,Qc],i=[];function s(d,l){return d[3]==="pending"?0:d[3]==="error"?1:-1}return~(n=s(t))&&(r=i[n]=a[n](t)),{c(){e=E("div"),r&&r.c(),y(e,"class","wrap svelte-1w9161c"),V(e,"inset-0",t[7]==="default"),V(e,"inset-x-0",t[7]==="center"),V(e,"top-0",t[7]==="center"),V(e,"opacity-0",!t[3]||t[3]==="complete"),V(e,"cover-bg",t[7]==="default"&&(t[3]==="pending"||t[3]==="error")),V(e,"generating",t[3]==="generating"),V(e,"!hidden",!t[5])},m(d,l){A(d,e,l),~n&&i[n].m(e,null),t[21](e),o=!0},p(d,[l]){let c=n;n=s(d),n===c?~n&&i[n].p(d,l):(r&&(Lt(),U(i[c],1,1,()=>{i[c]=null}),Rt()),~n?(r=i[n],r?r.p(d,l):(r=i[n]=a[n](d),r.c()),z(r,1),r.m(e,null)):r=null),l&128&&V(e,"inset-0",d[7]==="default"),l&128&&V(e,"inset-x-0",d[7]==="center"),l&128&&V(e,"top-0",d[7]==="center"),l&8&&V(e,"opacity-0",!d[3]||d[3]==="complete"),l&136&&V(e,"cover-bg",d[7]==="default"&&(d[3]==="pending"||d[3]==="error")),l&8&&V(e,"generating",d[3]==="generating"),l&32&&V(e,"!hidden",!d[5])},i(d){o||(z(r),o=!0)},o(d){U(r),o=!1},d(d){d&&S(e),~n&&i[n].d(),t[21](null)}}}let Ue=[],_n=!1;async function n0(t,e=!0){if(!(window.__gradio_mode__==="website"||window.__gradio_mode__!=="app"&&e!==!0)){if(Ue.push(t),!_n)_n=!0;else return;await ke(),requestAnimationFrame(()=>{let n=[0,0];for(let r=0;rn(19,a=R));let{eta:i=null}=e,{queue:s=!1}=e,{queue_position:d}=e,{queue_size:l}=e,{status:c}=e,{scroll_to_output:p=!1}=e,{timer:g=!0}=e,{visible:u=!0}=e,{message:f=null}=e,{variant:_="default"}=e,v,P=!1,T=0,m=0,h=null,C=!1;const w=()=>{n(16,T=performance.now()),n(17,m=0),P=!0,x()};function x(){requestAnimationFrame(()=>{n(17,m=(performance.now()-T)/1e3),P&&x()})}const k=()=>{n(17,m=0),P&&(P=!1)};Pl(()=>{P&&k()});let J=null;const O=()=>{n(9,C=!1)};function ot(R){ae.call(this,t,R)}function B(R){yt[R?"unshift":"push"](()=>{v=R,n(8,v)})}return t.$$set=R=>{"eta"in R&&n(0,i=R.eta),"queue"in R&&n(14,s=R.queue),"queue_position"in R&&n(1,d=R.queue_position),"queue_size"in R&&n(2,l=R.queue_size),"status"in R&&n(3,c=R.status),"scroll_to_output"in R&&n(15,p=R.scroll_to_output),"timer"in R&&n(4,g=R.timer),"visible"in R&&n(5,u=R.visible),"message"in R&&n(6,f=R.message),"variant"in R&&n(7,_=R.variant)},t.$$.update=()=>{t.$$.dirty&344065&&(i===null?n(0,i=h):s&&n(0,i=(performance.now()-T)/1e3+i),i!=null&&(n(10,J=i.toFixed(1)),n(18,h=i))),t.$$.dirty&131073&&n(12,r=i===null||i<=0||!m?null:Math.min(m/i,1)),t.$$.dirty&8&&(c==="pending"?w():k()),t.$$.dirty&557320&&v&&p&&(c==="pending"||c==="complete")&&n0(v,a.autoscroll),t.$$.dirty&72&&(O(),c==="error"&&f&&n(9,C=!0)),t.$$.dirty&131072&&n(11,o=m.toFixed(1))},[i,d,l,c,g,u,f,_,v,C,J,o,r,O,s,p,T,m,h,a,ot,B]}class Zn extends Ct{constructor(e){super(),Tt(this,e,r0,e0,xt,{eta:0,queue:14,queue_position:1,queue_size:2,status:3,scroll_to_output:15,timer:4,visible:5,message:6,variant:7})}}function Jr(t){let e,n;const r=[t[10]];let o={};for(let a=0;aEe(n,"value",i)),n.$on("change",t[13]),n.$on("submit",t[14]),n.$on("blur",t[15]),{c(){a&&a.c(),e=M(),bt(n.$$.fragment)},m(d,l){a&&a.m(d,l),A(d,e,l),ct(n,d,l),o=!0},p(d,l){d[10]?a?(a.p(d,l),l&1024&&z(a,1)):(a=Jr(d),a.c(),z(a,1),a.m(e.parentNode,e)):a&&(Lt(),U(a,1,1,()=>{a=null}),Rt());const c={};l&2&&(c.label=d[1]),l&64&&(c.show_label=d[6]),l&16&&(c.lines=d[4]),l&256&&(c.type=d[8]),l&2192&&(c.max_lines=!d[7]&&d[11]==="static"?d[4]+1:d[7]),l&32&&(c.placeholder=d[5]),l&2048&&(c.disabled=d[11]==="static"),!r&&l&1&&(r=!0,c.value=d[0],Qe(()=>r=!1)),n.$set(c)},i(d){o||(z(a),z(n.$$.fragment,d),o=!0)},o(d){U(a),U(n.$$.fragment,d),o=!1},d(d){a&&a.d(d),d&&S(e),pt(n,d)}}}function a0(t){let e,n;return e=new jc({props:{visible:t[3],elem_id:t[2],disable:typeof t[9].container=="boolean"&&!t[9].container,$$slots:{default:[o0]},$$scope:{ctx:t}}}),{c(){bt(e.$$.fragment)},m(r,o){ct(e,r,o),n=!0},p(r,[o]){const a={};o&8&&(a.visible=r[3]),o&4&&(a.elem_id=r[2]),o&512&&(a.disable=typeof r[9].container=="boolean"&&!r[9].container),o&69107&&(a.$$scope={dirty:o,ctx:r}),e.$set(a)},i(r){n||(z(e.$$.fragment,r),n=!0)},o(r){U(e.$$.fragment,r),n=!1},d(r){pt(e,r)}}}function i0(t,e,n){let{label:r="Textbox"}=e,{elem_id:o=""}=e,{visible:a=!0}=e,{value:i=""}=e,{lines:s}=e,{placeholder:d=""}=e,{show_label:l}=e,{max_lines:c}=e,{type:p="text"}=e,{style:g={}}=e,{loading_status:u=void 0}=e,{mode:f}=e;function _(m){i=m,n(0,i)}function v(m){ae.call(this,t,m)}function P(m){ae.call(this,t,m)}function T(m){ae.call(this,t,m)}return t.$$set=m=>{"label"in m&&n(1,r=m.label),"elem_id"in m&&n(2,o=m.elem_id),"visible"in m&&n(3,a=m.visible),"value"in m&&n(0,i=m.value),"lines"in m&&n(4,s=m.lines),"placeholder"in m&&n(5,d=m.placeholder),"show_label"in m&&n(6,l=m.show_label),"max_lines"in m&&n(7,c=m.max_lines),"type"in m&&n(8,p=m.type),"style"in m&&n(9,g=m.style),"loading_status"in m&&n(10,u=m.loading_status),"mode"in m&&n(11,f=m.mode)},[i,r,o,a,s,d,l,c,p,g,u,f,_,v,P,T]}class Qr extends Ct{constructor(e){super(),Tt(this,e,i0,a0,xt,{label:1,elem_id:2,visible:3,value:0,lines:4,placeholder:5,show_label:6,max_lines:7,type:8,style:9,loading_status:10,mode:11})}get label(){return this.$$.ctx[1]}set label(e){this.$$set({label:e}),mt()}get elem_id(){return this.$$.ctx[2]}set elem_id(e){this.$$set({elem_id:e}),mt()}get visible(){return this.$$.ctx[3]}set visible(e){this.$$set({visible:e}),mt()}get value(){return this.$$.ctx[0]}set value(e){this.$$set({value:e}),mt()}get lines(){return this.$$.ctx[4]}set lines(e){this.$$set({lines:e}),mt()}get placeholder(){return this.$$.ctx[5]}set placeholder(e){this.$$set({placeholder:e}),mt()}get show_label(){return this.$$.ctx[6]}set show_label(e){this.$$set({show_label:e}),mt()}get max_lines(){return this.$$.ctx[7]}set max_lines(e){this.$$set({max_lines:e}),mt()}get type(){return this.$$.ctx[8]}set type(e){this.$$set({type:e}),mt()}get style(){return this.$$.ctx[9]}set style(e){this.$$set({style:e}),mt()}get loading_status(){return this.$$.ctx[10]}set loading_status(e){this.$$set({loading_status:e}),mt()}get mode(){return this.$$.ctx[11]}set mode(e){this.$$set({mode:e}),mt()}}function Kr(t){let e,n;return{c(){e=E("p"),n=L(t[0]),y(e,"class","my-4")},m(r,o){A(r,e,o),b(e,n)},p(r,o){o&1&&tt(n,r[0])},d(r){r&&S(e)}}}function $r(t){let e;return{c(){e=E("p"),e.textContent="Incorrect Credentials",y(e,"class","my-4 text-red-600 font-semibold")},m(n,r){A(n,e,r)},d(n){n&&S(e)}}}function l0(t){let e,n,r,o,a,i;function s(p){t[8](p)}let d={label:"username",lines:1,show_label:!0,max_lines:1,mode:"dynamic"};t[2]!==void 0&&(d.value=t[2]),e=new Qr({props:d}),yt.push(()=>Ee(e,"value",s)),e.$on("submit",t[5]);function l(p){t[9](p)}let c={label:"password",lines:1,show_label:!0,max_lines:1,mode:"dynamic",type:"password"};return t[3]!==void 0&&(c.value=t[3]),o=new Qr({props:c}),yt.push(()=>Ee(o,"value",l)),o.$on("submit",t[5]),{c(){bt(e.$$.fragment),r=M(),bt(o.$$.fragment)},m(p,g){ct(e,p,g),A(p,r,g),ct(o,p,g),i=!0},p(p,g){const u={};!n&&g&4&&(n=!0,u.value=p[2],Qe(()=>n=!1)),e.$set(u);const f={};!a&&g&8&&(a=!0,f.value=p[3],Qe(()=>a=!1)),o.$set(f)},i(p){i||(z(e.$$.fragment,p),z(o.$$.fragment,p),i=!0)},o(p){U(e.$$.fragment,p),U(o.$$.fragment,p),i=!1},d(p){pt(e,p),p&&S(r),pt(o,p)}}}function s0(t){let e,n,r,o,a,i,s,d,l,c,p,g,u=t[0]&&Kr(t),f=t[4]&&$r();return s=new Ac({props:{$$slots:{default:[l0]},$$scope:{ctx:t}}}),{c(){e=E("div"),n=E("div"),r=E("h2"),r.textContent="Login",o=M(),u&&u.c(),a=M(),f&&f.c(),i=M(),bt(s.$$.fragment),d=M(),l=E("button"),l.textContent="Login",y(r,"class","text-2xl font-semibold mb-6"),y(l,"class","gr-button gr-button-lg gr-button-primary w-full mt-4"),y(n,"class","gr-panel !p-8"),y(e,"class","dark:bg-gray-950 w-full flex flex-col items-center justify-center"),V(e,"min-h-screen",t[1])},m(_,v){A(_,e,v),b(e,n),b(n,r),b(n,o),u&&u.m(n,null),b(n,a),f&&f.m(n,null),b(n,i),ct(s,n,null),b(n,d),b(n,l),c=!0,p||(g=Z(l,"click",t[5]),p=!0)},p(_,[v]){_[0]?u?u.p(_,v):(u=Kr(_),u.c(),u.m(n,a)):u&&(u.d(1),u=null),_[4]?f||(f=$r(),f.c(),f.m(n,i)):f&&(f.d(1),f=null);const P={};v&1036&&(P.$$scope={dirty:v,ctx:_}),s.$set(P),v&2&&V(e,"min-h-screen",_[1])},i(_){c||(z(s.$$.fragment,_),c=!0)},o(_){U(s.$$.fragment,_),c=!1},d(_){_&&S(e),u&&u.d(),f&&f.d(),pt(s),p=!1,g()}}}function d0(t,e,n){let{root:r}=e,{id:o}=e,{auth_message:a}=e,{app_mode:i}=e;window.__gradio_loader__[o].$set({status:"complete"});let s="",d="",l=!1;const c=async()=>{const u=new FormData;u.append("username",s),u.append("password",d),(await fetch(r+"login",{method:"POST",body:u})).status===400?(n(4,l=!0),n(2,s=""),n(3,d="")):location.reload()};function p(u){s=u,n(2,s)}function g(u){d=u,n(3,d)}return t.$$set=u=>{"root"in u&&n(6,r=u.root),"id"in u&&n(7,o=u.id),"auth_message"in u&&n(0,a=u.auth_message),"app_mode"in u&&n(1,i=u.app_mode)},[a,i,s,d,l,c,r,o,p,g]}class c0 extends Ct{constructor(e){super(),Tt(this,e,d0,s0,xt,{root:6,id:7,auth_message:0,app_mode:1})}}let p0=-1;window.__gradio_loader__=[];const g0="https://gradio.s3-us-west-2.amazonaws.com/3.14.0/assets/index.51ec63c2.css",u0=["https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600&display=swap","https://fonts.googleapis.com/css?family=IBM Plex Mono"];let yn=null,Ln=window.__gradio_mode__==="app";async function gl(t){const e=await(await fetch(t+"app_id")).text();yn===null?yn=e:yn!=e&&location.reload(),setTimeout(()=>gl(t),250)}async function f0(t){let e=await(await fetch(t+"config")).json();return e.root=t,e}async function m0(t){return location.origin==="http://localhost:3000"?await(await fetch("config")).json():t?(t.endsWith("/")||(t+="/"),await f0(t)):window.gradio_config}function b0(t,e){if(e){let n=document.createElement("style");n.innerHTML=e,t.appendChild(n)}}function ul(t,e){const n=document.createElement("link");return n.rel="stylesheet",n.href=t,e.appendChild(n),new Promise((r,o)=>{n.addEventListener("load",()=>r()),n.addEventListener("error",()=>o(new Error(`Unable to preload CSS for ${t}`)))})}async function fl(t,e){let n;try{let[r]=await Promise.all([m0(e),ul(g0,t)]);n=r}catch(r){return console.error(r),null}return b0(t,n.css),window.__is_colab__=n.is_colab,n.root===void 0&&(n.root=""),n.dev_mode&&gl(n.root),n.target=t,n}function ml(t,e,n,r,o,a=!1){if(t.detail==="Not authenticated"||t.auth_required)new c0({target:n,props:{auth_message:t.auth_message,root:t.root,id:r,app_mode:Ln}});else{let i=Math.random().toString(36).substring(2);t.fn=ac(i,t.root+"run/",t.is_space,a),new kc({target:n,props:{...t,target:n,id:r,autoscroll:o,app_mode:Ln}})}e&&e.append(n)}function w0(){u0.map(e=>ul(e,document.head));class t extends HTMLElement{constructor(){super(),this._id=++p0,this.root=this.attachShadow({mode:"open"}),window.scoped_css_attach=n=>{this.root.append(n)},this.wrapper=document.createElement("div"),this.wrapper.classList.add("gradio-container"),this.wrapper.style.position="relative",this.wrapper.style.width="100%",this.wrapper.style.minHeight="100vh",this.theme="light",window.__gradio_loader__[this._id]=new Zn({target:this.wrapper,props:{status:"pending",timer:!1,queue_position:null,queue_size:null}}),this.root.append(this.wrapper),window.__gradio_mode__!=="website"&&(this.theme=bl(this.wrapper))}async connectedCallback(){const n=new CustomEvent("domchange",{bubbles:!0,cancelable:!1,composed:!0});var r=new MutationObserver(g=>{this.dispatchEvent(n)});r.observe(this.root,{childList:!0});const o=this.getAttribute("host"),a=this.getAttribute("space"),i=o?`https://${o}`:a?(await(await fetch(`https://huggingface.co/api/spaces/${a}/host`)).json()).host:this.getAttribute("src"),s=this.getAttribute("control_page_title"),d=this.getAttribute("initial_height"),c=this.getAttribute("autoscroll")==="true";this.wrapper.style.minHeight=d||"300px";const p=await fl(this.root,i);p===null?this.wrapper.remove():ml({...p,theme:this.theme,control_page_title:!!(s&&s==="true")},this.root,this.wrapper,this._id,c,!!a)}}customElements.define("gradio-app",t)}async function h0(){const t=document.querySelector("#root");t.classList.add("gradio-container"),window.__gradio_mode__!=="website"&&bl(t),window.__gradio_loader__[0]=new Zn({target:t,props:{status:"pending",timer:!1,queue_position:null,queue_size:null}});const e=await fl(t,null);ml({...e,control_page_title:!0},!1,t,0)}function bl(t){let e=new URL(window.location.toString()),n="light";const r=e.searchParams.get("__theme");return r!==null?r==="dark"?n=Rn(t):r==="system"&&(n=to(t)):e.searchParams.get("__dark-theme")==="true"?n=Rn(t):n=to(t),n}function to(t){const e=n();window?.matchMedia("(prefers-color-scheme: dark)")?.addEventListener("change",n);function n(){let r="light";return(window?.matchMedia?.("(prefers-color-scheme: dark)").matches??null)&&(r=Rn(t)),r}return e}function Rn(t){return t.classList.add("dark"),Ln&&(document.body.style.backgroundColor="rgb(11, 15, 25)"),"dark"}window.location!==window.parent.location?(window.scoped_css_attach=t=>{document.head.append(t)},h0()):w0();export{Ol as $,wt as A,vt as B,oe as C,Lt as D,Rt as E,Gn as F,br as G,Nn as H,yt as I,Pl as J,ae as K,Qe as L,Wt as M,vl as N,Ee as O,jc as P,He as Q,tn as R,Ct as S,Zn as T,qn as U,co as V,El as W,L0 as X,Bt as Y,Br as Z,D as _,M as a,_0 as a0,Qt as a1,Ll as a2,S0 as a3,A0 as a4,T0 as a5,N0 as a6,Uc as a7,Et as a8,mt as a9,ke as aa,zl as ab,Ml as ac,Un as ad,Yt as ae,x0 as af,k0 as ag,Ac as ah,E0 as ai,R0 as aj,I0 as ak,Jc as al,v0 as am,Nl as an,C0 as ao,qr as ap,O0 as aq,Qr as ar,P0 as as,Dn as at,y as b,bt as c,V as d,E as e,A as f,b as g,tt as h,Tt as i,z as j,U as k,Z as l,ct as m,S as n,pt as o,Mn as p,Fn as q,zn as r,xt as s,L as t,jn as u,M0 as v,kt as w,Y as x,Zt as y,y0 as z}; diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.cb50929e.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.cb50929e.js.map new file mode 100644 index 0000000000000000000000000000000000000000..b8637282db65015089a371553f3a104ef9f72385 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.cb50929e.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.cb50929e.js","sources":["../../../../ui/packages/app/vite/modulepreload-polyfill","../../../../ui/node_modules/.pnpm/svelte@3.49.0/node_modules/svelte/internal/index.mjs","../../../../ui/node_modules/.pnpm/svelte@3.49.0/node_modules/svelte/store/index.mjs","../../../../ui/node_modules/.pnpm/deepmerge@4.2.2/node_modules/deepmerge/dist/cjs.js","../../../../ui/node_modules/.pnpm/tslib@2.3.1/node_modules/tslib/tslib.es6.js","../../../../ui/node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.0.18/node_modules/@formatjs/icu-messageformat-parser/lib/error.js","../../../../ui/node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.0.18/node_modules/@formatjs/icu-messageformat-parser/lib/types.js","../../../../ui/node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.0.18/node_modules/@formatjs/icu-messageformat-parser/lib/regex.generated.js","../../../../ui/node_modules/.pnpm/@formatjs+icu-skeleton-parser@1.3.5/node_modules/@formatjs/icu-skeleton-parser/lib/date-time.js","../../../../ui/node_modules/.pnpm/@formatjs+icu-skeleton-parser@1.3.5/node_modules/@formatjs/icu-skeleton-parser/lib/regex.generated.js","../../../../ui/node_modules/.pnpm/@formatjs+icu-skeleton-parser@1.3.5/node_modules/@formatjs/icu-skeleton-parser/lib/number.js","../../../../ui/node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.0.18/node_modules/@formatjs/icu-messageformat-parser/lib/parser.js","../../../../ui/node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.0.18/node_modules/@formatjs/icu-messageformat-parser/lib/index.js","../../../../ui/node_modules/.pnpm/@formatjs+fast-memoize@1.2.1/node_modules/@formatjs/fast-memoize/lib/index.js","../../../../ui/node_modules/.pnpm/intl-messageformat@9.11.4/node_modules/intl-messageformat/lib/src/error.js","../../../../ui/node_modules/.pnpm/intl-messageformat@9.11.4/node_modules/intl-messageformat/lib/src/formatters.js","../../../../ui/node_modules/.pnpm/intl-messageformat@9.11.4/node_modules/intl-messageformat/lib/src/core.js","../../../../ui/node_modules/.pnpm/intl-messageformat@9.11.4/node_modules/intl-messageformat/lib/index.js","../../../../ui/node_modules/.pnpm/svelte-i18n@3.3.13_svelte@3.49.0/node_modules/svelte-i18n/dist/runtime.esm.js","../../../../ui/packages/app/src/components/directory.ts","../../../../ui/packages/app/src/stores.ts","../../../../ui/packages/app/src/i18n.ts","../../../../ui/packages/app/src/Render.svelte","../../../../ui/packages/app/src/api.ts","../../../../ui/node_modules/.pnpm/svelte@3.49.0/node_modules/svelte/motion/index.mjs","../../../../ui/packages/app/src/components/StatusTracker/Loader.svelte","../../../../../../../../../static/img/api-logo.svg","../../../../../../../../../static/img/clear.svg","../../../../../../../../../static/img/python.svg","../../../../../../../../../static/img/javascript.svg","../../../../ui/packages/app/src/ApiDocs.svelte","../../../../ui/packages/app/src/images/logo.svg","../../../../ui/packages/app/src/Blocks.svelte","../../../../ui/packages/app/src/components/Form/Form.svelte","../../../../ui/node_modules/.pnpm/picocolors@1.0.0/node_modules/picocolors/picocolors.browser.js","../../../../ui/node_modules/.pnpm/tailwindcss@3.1.6/node_modules/tailwindcss/lib/util/log.js","../../../../ui/node_modules/.pnpm/tailwindcss@3.1.6/node_modules/tailwindcss/lib/public/colors.js","../../../../ui/node_modules/.pnpm/tailwindcss@3.1.6/node_modules/tailwindcss/colors.js","../../../../ui/packages/theme/src/colors.ts","../../../../ui/packages/utils/src/styles.ts","../../../../ui/packages/atoms/src/Block.svelte","../../../../ui/packages/atoms/src/BlockTitle.svelte","../../../../ui/packages/form/src/Textbox.svelte","../../../../ui/node_modules/.pnpm/svelte@3.49.0/node_modules/svelte/transition/index.mjs","../../../../ui/packages/app/src/components/StatusTracker/StatusTracker.svelte","../../../../ui/packages/app/src/components/Textbox/Textbox.svelte","../../../../ui/packages/app/src/Login.svelte","../../../../ui/packages/app/src/main.ts"],"sourcesContent":["const p = function polyfill() {\n const relList = document.createElement('link').relList;\n if (relList && relList.supports && relList.supports('modulepreload')) {\n return;\n }\n for (const link of document.querySelectorAll('link[rel=\"modulepreload\"]')) {\n processPreload(link);\n }\n new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.type !== 'childList') {\n continue;\n }\n for (const node of mutation.addedNodes) {\n if (node.tagName === 'LINK' && node.rel === 'modulepreload')\n processPreload(node);\n }\n }\n }).observe(document, { childList: true, subtree: true });\n function getFetchOpts(script) {\n const fetchOpts = {};\n if (script.integrity)\n fetchOpts.integrity = script.integrity;\n if (script.referrerpolicy)\n fetchOpts.referrerPolicy = script.referrerpolicy;\n if (script.crossorigin === 'use-credentials')\n fetchOpts.credentials = 'include';\n else if (script.crossorigin === 'anonymous')\n fetchOpts.credentials = 'omit';\n else\n fetchOpts.credentials = 'same-origin';\n return fetchOpts;\n }\n function processPreload(link) {\n if (link.ep)\n // ep marker = processed\n return;\n link.ep = true;\n // prepopulate the load record\n const fetchOpts = getFetchOpts(link);\n fetch(link.href, fetchOpts);\n }\n};__VITE_IS_MODERN__&&p();","function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n const dirty = [];\n const length = $$scope.ctx.length / 32;\n for (let i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n return dirty;\n }\n return -1;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n is_hydrating = true;\n}\nfunction end_hydrating() {\n is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n // Return first index of value larger than input value in the range [low, high)\n while (low < high) {\n const mid = low + ((high - low) >> 1);\n if (key(mid) <= value) {\n low = mid + 1;\n }\n else {\n high = mid;\n }\n }\n return low;\n}\nfunction init_hydrate(target) {\n if (target.hydrate_init)\n return;\n target.hydrate_init = true;\n // We know that all children have claim_order values since the unclaimed have been detached if target is not \n let children = target.childNodes;\n // If target is , there may be children without claim_order\n if (target.nodeName === 'HEAD') {\n const myChildren = [];\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.claim_order !== undefined) {\n myChildren.push(node);\n }\n }\n children = myChildren;\n }\n /*\n * Reorder claimed children optimally.\n * We can reorder claimed children optimally by finding the longest subsequence of\n * nodes that are already claimed in order and only moving the rest. The longest\n * subsequence subsequence of nodes that are claimed in order can be found by\n * computing the longest increasing subsequence of .claim_order values.\n *\n * This algorithm is optimal in generating the least amount of reorder operations\n * possible.\n *\n * Proof:\n * We know that, given a set of reordering operations, the nodes that do not move\n * always form an increasing subsequence, since they do not move among each other\n * meaning that they must be already ordered among each other. Thus, the maximal\n * set of nodes that do not move form a longest increasing subsequence.\n */\n // Compute longest increasing subsequence\n // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n const m = new Int32Array(children.length + 1);\n // Predecessor indices + 1\n const p = new Int32Array(children.length);\n m[0] = -1;\n let longest = 0;\n for (let i = 0; i < children.length; i++) {\n const current = children[i].claim_order;\n // Find the largest subsequence length such that it ends in a value less than our current value\n // upper_bound returns first greater value, so we subtract one\n // with fast path for when we are on the current longest subsequence\n const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n p[i] = m[seqLen] + 1;\n const newLen = seqLen + 1;\n // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n m[newLen] = i;\n longest = Math.max(newLen, longest);\n }\n // The longest increasing subsequence of nodes (initially reversed)\n const lis = [];\n // The rest of the nodes, nodes that will be moved\n const toMove = [];\n let last = children.length - 1;\n for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n lis.push(children[cur - 1]);\n for (; last >= cur; last--) {\n toMove.push(children[last]);\n }\n last--;\n }\n for (; last >= 0; last--) {\n toMove.push(children[last]);\n }\n lis.reverse();\n // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n toMove.sort((a, b) => a.claim_order - b.claim_order);\n // Finally, we move the nodes\n for (let i = 0, j = 0; i < toMove.length; i++) {\n while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n j++;\n }\n const anchor = j < lis.length ? lis[j] : null;\n target.insertBefore(toMove[i], anchor);\n }\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n const append_styles_to = get_root_for_style(target);\n if (!append_styles_to.getElementById(style_sheet_id)) {\n const style = element('style');\n style.id = style_sheet_id;\n style.textContent = styles;\n append_stylesheet(append_styles_to, style);\n }\n}\nfunction get_root_for_style(node) {\n if (!node)\n return document;\n const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n if (root && root.host) {\n return root;\n }\n return node.ownerDocument;\n}\nfunction append_empty_stylesheet(node) {\n const style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element.sheet;\n}\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n}\nfunction append_hydration(target, node) {\n if (is_hydrating) {\n init_hydrate(target);\n if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentElement !== target))) {\n target.actual_end_child = target.firstChild;\n }\n // Skip nodes of undefined ordering\n while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n target.actual_end_child = target.actual_end_child.nextSibling;\n }\n if (node !== target.actual_end_child) {\n // We only insert if the ordering of this node should be modified or the parent node is not target\n if (node.claim_order !== undefined || node.parentNode !== target) {\n target.insertBefore(node, target.actual_end_child);\n }\n }\n else {\n target.actual_end_child = node.nextSibling;\n }\n }\n else if (node.parentNode !== target || node.nextSibling !== null) {\n target.appendChild(node);\n }\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n if (is_hydrating && !anchor) {\n append_hydration(target, node);\n }\n else if (node.parentNode !== target || node.nextSibling != anchor) {\n target.insertBefore(node, anchor || null);\n }\n}\nfunction detach(node) {\n node.parentNode.removeChild(node);\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction trusted(fn) {\n return function (event) {\n // @ts-ignore\n if (event.isTrusted)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n if (nodes.claim_info === undefined) {\n nodes.claim_info = { last_index: 0, total_claimed: 0 };\n }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n init_claim_info(nodes);\n const resultNode = (() => {\n // We first try to find an element after the previous one\n for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n return node;\n }\n }\n // Otherwise, we try to find one before\n // We iterate in reverse so that we don't go too far back\n for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n else if (replacement === undefined) {\n // Since we spliced before the last_index, we decrease it\n nodes.claim_info.last_index--;\n }\n return node;\n }\n }\n // If we can't find any matching node, we create a new one\n return createNode();\n })();\n resultNode.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n return resultNode;\n}\nfunction claim_element_base(nodes, name, attributes, create_element) {\n return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n const remove = [];\n for (let j = 0; j < node.attributes.length; j++) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n remove.forEach(v => node.removeAttribute(v));\n return undefined;\n }, () => create_element(name));\n}\nfunction claim_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, element);\n}\nfunction claim_svg_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, svg_element);\n}\nfunction claim_text(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n const dataStr = '' + data;\n if (node.data.startsWith(dataStr)) {\n if (node.data.length !== dataStr.length) {\n return node.splitText(dataStr.length);\n }\n }\n else {\n node.data = dataStr;\n }\n }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n );\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n for (let i = start; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n return i;\n }\n }\n return nodes.length;\n}\nfunction claim_html_tag(nodes, is_svg) {\n // find html opening tag\n const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n if (start_index === end_index) {\n return new HtmlTagHydration(undefined, is_svg);\n }\n init_claim_info(nodes);\n const html_tag_nodes = nodes.splice(start_index, end_index - start_index + 1);\n detach(html_tag_nodes[0]);\n detach(html_tag_nodes[html_tag_nodes.length - 1]);\n const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n for (const n of claimed_nodes) {\n n.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n }\n return new HtmlTagHydration(claimed_nodes, is_svg);\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n if (value === null) {\n node.style.removeProperty(key);\n }\n else {\n node.style.setProperty(key, value, important ? 'important' : '');\n }\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n select.selectedIndex = -1; // no option should be selected\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, cancelable, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nclass HtmlTag {\n constructor(is_svg = false) {\n this.is_svg = false;\n this.is_svg = is_svg;\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n if (this.is_svg)\n this.e = svg_element(target.nodeName);\n else\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes, is_svg = false) {\n super(is_svg);\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\n\n// we need to store the information for multiple documents because a Svelte application could also contain iframes\n// https://github.com/sveltejs/svelte/issues/3624\nconst managed_styles = new Map();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_style_information(doc, node) {\n const info = { stylesheet: append_empty_stylesheet(node), rules: {} };\n managed_styles.set(doc, info);\n return info;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node);\n if (!rules[name]) {\n rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n managed_styles.forEach(info => {\n const { stylesheet } = info;\n let i = stylesheet.cssRules.length;\n while (i--)\n stylesheet.deleteRule(i);\n info.rules = {};\n });\n managed_styles.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail, { cancelable = false } = {}) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail, { cancelable });\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n return !event.defaultPrevented;\n }\n return true;\n };\n}\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n return context;\n}\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\n// flush() calls callbacks in this order:\n// 1. All beforeUpdate callbacks, in order: parents before children\n// 2. All bind:this callbacks, in reverse order: children before parents.\n// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT\n// for afterUpdates called during the initial onMount, which are called in\n// reverse order: children before parents.\n// Since callbacks might update component values, which could trigger another\n// call to flush(), the following steps guard against this:\n// 1. During beforeUpdate, any updated components will be added to the\n// dirty_components array and will cause a reentrant call to flush(). Because\n// the flush index is kept outside the function, the reentrant call will pick\n// up where the earlier call left off and go through all dirty components. The\n// current_component value is saved and restored so that the reentrant call will\n// not interfere with the \"parent\" flush() call.\n// 2. bind:this callbacks cannot trigger new flush() calls.\n// 3. During afterUpdate, any updated components will NOT have their afterUpdate\n// callback called a second time; the seen_callbacks set, outside the flush()\n// function, guarantees this behavior.\nconst seen_callbacks = new Set();\nlet flushidx = 0; // Do *not* move this inside the flush() function\nfunction flush() {\n const saved_component = current_component;\n do {\n // first, call beforeUpdate functions\n // and update components\n while (flushidx < dirty_components.length) {\n const component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n seen_callbacks.clear();\n set_current_component(saved_component);\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n else if (callback) {\n callback();\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'ismap',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\nconst void_element_names = /^(?:area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/;\nfunction is_void(name) {\n return void_element_names.test(name) || name.toLowerCase() === '!doctype';\n}\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, attrs_to_add) {\n const attributes = Object.assign({}, ...args);\n if (attrs_to_add) {\n const classes_to_add = attrs_to_add.classes;\n const styles_to_add = attrs_to_add.styles;\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n if (styles_to_add) {\n if (attributes.style == null) {\n attributes.style = style_object_to_string(styles_to_add);\n }\n else {\n attributes.style = style_object_to_string(merge_ssr_styles(attributes.style, styles_to_add));\n }\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nfunction merge_ssr_styles(style_attribute, style_directive) {\n const style_object = {};\n for (const individual_style of style_attribute.split(';')) {\n const colon_index = individual_style.indexOf(':');\n const name = individual_style.slice(0, colon_index).trim();\n const value = individual_style.slice(colon_index + 1).trim();\n if (!name)\n continue;\n style_object[name] = value;\n }\n for (const name in style_directive) {\n const value = style_directive[name];\n if (value) {\n style_object[name] = value;\n }\n else {\n delete style_object[name];\n }\n }\n return style_object;\n}\nconst ATTR_REGEX = /[&\"]/g;\nconst CONTENT_REGEX = /[&<]/g;\n/**\n * Note: this method is performance sensitive and has been optimized\n * https://github.com/sveltejs/svelte/pull/5701\n */\nfunction escape(value, is_attr = false) {\n const str = String(value);\n const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX;\n pattern.lastIndex = 0;\n let escaped = '';\n let last = 0;\n while (pattern.test(str)) {\n const i = pattern.lastIndex - 1;\n const ch = str[i];\n escaped += str.substring(last, i) + (ch === '&' ? '&' : (ch === '\"' ? '"' : '<'));\n last = i + 1;\n }\n return escaped + str.substring(last);\n}\nfunction escape_attribute_value(value) {\n // keep booleans, null, and undefined for the sake of `spread`\n const should_escape = typeof value === 'string' || (value && typeof value === 'object');\n return should_escape ? escape(value, true) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n const assignment = (boolean && value === true) ? '' : `=\"${escape(value, true)}\"`;\n return ` ${name}${assignment}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\nfunction style_object_to_string(style_object) {\n return Object.keys(style_object)\n .filter(key => style_object[key])\n .map(key => `${key}: ${style_object[key]};`)\n .join(' ');\n}\nfunction add_styles(style_object) {\n const styles = style_object_to_string(style_object);\n return styles ? ` style=\"${styles}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, on_mount, on_destroy, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = on_mount.map(run).filter(is_function);\n if (on_destroy) {\n on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: null,\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.49.0' }, detail), { bubbles: true }));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\nfunction validate_dynamic_element(tag) {\n const is_string = typeof tag === 'string';\n if (tag && !is_string) {\n throw new Error(' expects \"this\" attribute to be a string.');\n }\n}\nfunction validate_void_dynamic_element(tag) {\n if (tag && is_void(tag)) {\n throw new Error(` is self-closing and cannot have content.`);\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * \n * \n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_styles, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, is_void, listen, listen_dev, loop, loop_guard, merge_ssr_styles, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_dynamic_element, validate_each_argument, validate_each_keys, validate_slots, validate_store, validate_void_dynamic_element, xlink_attr };\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","export var ErrorKind;\n(function (ErrorKind) {\n /** Argument is unclosed (e.g. `{0`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_CLOSING_BRACE\"] = 1] = \"EXPECT_ARGUMENT_CLOSING_BRACE\";\n /** Argument is empty (e.g. `{}`). */\n ErrorKind[ErrorKind[\"EMPTY_ARGUMENT\"] = 2] = \"EMPTY_ARGUMENT\";\n /** Argument is malformed (e.g. `{foo!}``) */\n ErrorKind[ErrorKind[\"MALFORMED_ARGUMENT\"] = 3] = \"MALFORMED_ARGUMENT\";\n /** Expect an argument type (e.g. `{foo,}`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_TYPE\"] = 4] = \"EXPECT_ARGUMENT_TYPE\";\n /** Unsupported argument type (e.g. `{foo,foo}`) */\n ErrorKind[ErrorKind[\"INVALID_ARGUMENT_TYPE\"] = 5] = \"INVALID_ARGUMENT_TYPE\";\n /** Expect an argument style (e.g. `{foo, number, }`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_STYLE\"] = 6] = \"EXPECT_ARGUMENT_STYLE\";\n /** The number skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_NUMBER_SKELETON\"] = 7] = \"INVALID_NUMBER_SKELETON\";\n /** The date time skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_DATE_TIME_SKELETON\"] = 8] = \"INVALID_DATE_TIME_SKELETON\";\n /** Exepct a number skeleton following the `::` (e.g. `{foo, number, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_NUMBER_SKELETON\"] = 9] = \"EXPECT_NUMBER_SKELETON\";\n /** Exepct a date time skeleton following the `::` (e.g. `{foo, date, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_DATE_TIME_SKELETON\"] = 10] = \"EXPECT_DATE_TIME_SKELETON\";\n /** Unmatched apostrophes in the argument style (e.g. `{foo, number, 'test`) */\n ErrorKind[ErrorKind[\"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\"] = 11] = \"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\";\n /** Missing select argument options (e.g. `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_OPTIONS\"] = 12] = \"EXPECT_SELECT_ARGUMENT_OPTIONS\";\n /** Expecting an offset value in `plural` or `selectordinal` argument (e.g `{foo, plural, offset}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 13] = \"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Offset value in `plural` or `selectordinal` is invalid (e.g. `{foo, plural, offset: x}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 14] = \"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Expecting a selector in `select` argument (e.g `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR\"] = 15] = \"EXPECT_SELECT_ARGUMENT_SELECTOR\";\n /** Expecting a selector in `plural` or `selectordinal` argument (e.g `{foo, plural}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR\"] = 16] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR\";\n /** Expecting a message fragment after the `select` selector (e.g. `{foo, select, apple}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\"] = 17] = \"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\";\n /**\n * Expecting a message fragment after the `plural` or `selectordinal` selector\n * (e.g. `{foo, plural, one}`)\n */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\"] = 18] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\";\n /** Selector in `plural` or `selectordinal` is malformed (e.g. `{foo, plural, =x {#}}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_SELECTOR\"] = 19] = \"INVALID_PLURAL_ARGUMENT_SELECTOR\";\n /**\n * Duplicate selectors in `plural` or `selectordinal` argument.\n * (e.g. {foo, plural, one {#} one {#}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\"] = 20] = \"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\";\n /** Duplicate selectors in `select` argument.\n * (e.g. {foo, select, apple {apple} apple {apple}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_SELECT_ARGUMENT_SELECTOR\"] = 21] = \"DUPLICATE_SELECT_ARGUMENT_SELECTOR\";\n /** Plural or select argument option must have `other` clause. */\n ErrorKind[ErrorKind[\"MISSING_OTHER_CLAUSE\"] = 22] = \"MISSING_OTHER_CLAUSE\";\n /** The tag is malformed. (e.g. `foo) */\n ErrorKind[ErrorKind[\"INVALID_TAG\"] = 23] = \"INVALID_TAG\";\n /** The tag name is invalid. (e.g. `<123>foo`) */\n ErrorKind[ErrorKind[\"INVALID_TAG_NAME\"] = 25] = \"INVALID_TAG_NAME\";\n /** The closing tag does not match the opening tag. (e.g. `foo`) */\n ErrorKind[ErrorKind[\"UNMATCHED_CLOSING_TAG\"] = 26] = \"UNMATCHED_CLOSING_TAG\";\n /** The opening tag has unmatched closing tag. (e.g. `foo`) */\n ErrorKind[ErrorKind[\"UNCLOSED_TAG\"] = 27] = \"UNCLOSED_TAG\";\n})(ErrorKind || (ErrorKind = {}));\n","export var TYPE;\n(function (TYPE) {\n /**\n * Raw text\n */\n TYPE[TYPE[\"literal\"] = 0] = \"literal\";\n /**\n * Variable w/o any format, e.g `var` in `this is a {var}`\n */\n TYPE[TYPE[\"argument\"] = 1] = \"argument\";\n /**\n * Variable w/ number format\n */\n TYPE[TYPE[\"number\"] = 2] = \"number\";\n /**\n * Variable w/ date format\n */\n TYPE[TYPE[\"date\"] = 3] = \"date\";\n /**\n * Variable w/ time format\n */\n TYPE[TYPE[\"time\"] = 4] = \"time\";\n /**\n * Variable w/ select format\n */\n TYPE[TYPE[\"select\"] = 5] = \"select\";\n /**\n * Variable w/ plural format\n */\n TYPE[TYPE[\"plural\"] = 6] = \"plural\";\n /**\n * Only possible within plural argument.\n * This is the `#` symbol that will be substituted with the count.\n */\n TYPE[TYPE[\"pound\"] = 7] = \"pound\";\n /**\n * XML-like tag\n */\n TYPE[TYPE[\"tag\"] = 8] = \"tag\";\n})(TYPE || (TYPE = {}));\nexport var SKELETON_TYPE;\n(function (SKELETON_TYPE) {\n SKELETON_TYPE[SKELETON_TYPE[\"number\"] = 0] = \"number\";\n SKELETON_TYPE[SKELETON_TYPE[\"dateTime\"] = 1] = \"dateTime\";\n})(SKELETON_TYPE || (SKELETON_TYPE = {}));\n/**\n * Type Guards\n */\nexport function isLiteralElement(el) {\n return el.type === TYPE.literal;\n}\nexport function isArgumentElement(el) {\n return el.type === TYPE.argument;\n}\nexport function isNumberElement(el) {\n return el.type === TYPE.number;\n}\nexport function isDateElement(el) {\n return el.type === TYPE.date;\n}\nexport function isTimeElement(el) {\n return el.type === TYPE.time;\n}\nexport function isSelectElement(el) {\n return el.type === TYPE.select;\n}\nexport function isPluralElement(el) {\n return el.type === TYPE.plural;\n}\nexport function isPoundElement(el) {\n return el.type === TYPE.pound;\n}\nexport function isTagElement(el) {\n return el.type === TYPE.tag;\n}\nexport function isNumberSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.number);\n}\nexport function isDateTimeSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.dateTime);\n}\nexport function createLiteralElement(value) {\n return {\n type: TYPE.literal,\n value: value,\n };\n}\nexport function createNumberElement(value, style) {\n return {\n type: TYPE.number,\n value: value,\n style: style,\n };\n}\n","// @generated from regex-gen.ts\nexport var SPACE_SEPARATOR_REGEX = /[ \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/;\n","/**\n * https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js\n * with some tweaks\n */\nvar DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;\n/**\n * Parse Date time skeleton into Intl.DateTimeFormatOptions\n * Ref: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * @public\n * @param skeleton skeleton string\n */\nexport function parseDateTimeSkeleton(skeleton) {\n var result = {};\n skeleton.replace(DATE_TIME_REGEX, function (match) {\n var len = match.length;\n switch (match[0]) {\n // Era\n case 'G':\n result.era = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n // Year\n case 'y':\n result.year = len === 2 ? '2-digit' : 'numeric';\n break;\n case 'Y':\n case 'u':\n case 'U':\n case 'r':\n throw new RangeError('`Y/u/U/r` (year) patterns are not supported, use `y` instead');\n // Quarter\n case 'q':\n case 'Q':\n throw new RangeError('`q/Q` (quarter) patterns are not supported');\n // Month\n case 'M':\n case 'L':\n result.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][len - 1];\n break;\n // Week\n case 'w':\n case 'W':\n throw new RangeError('`w/W` (week) patterns are not supported');\n case 'd':\n result.day = ['numeric', '2-digit'][len - 1];\n break;\n case 'D':\n case 'F':\n case 'g':\n throw new RangeError('`D/F/g` (day) patterns are not supported, use `d` instead');\n // Weekday\n case 'E':\n result.weekday = len === 4 ? 'short' : len === 5 ? 'narrow' : 'short';\n break;\n case 'e':\n if (len < 4) {\n throw new RangeError('`e..eee` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n case 'c':\n if (len < 4) {\n throw new RangeError('`c..ccc` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n // Period\n case 'a': // AM, PM\n result.hour12 = true;\n break;\n case 'b': // am, pm, noon, midnight\n case 'B': // flexible day periods\n throw new RangeError('`b/B` (period) patterns are not supported, use `a` instead');\n // Hour\n case 'h':\n result.hourCycle = 'h12';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'H':\n result.hourCycle = 'h23';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'K':\n result.hourCycle = 'h11';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'k':\n result.hourCycle = 'h24';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'j':\n case 'J':\n case 'C':\n throw new RangeError('`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead');\n // Minute\n case 'm':\n result.minute = ['numeric', '2-digit'][len - 1];\n break;\n // Second\n case 's':\n result.second = ['numeric', '2-digit'][len - 1];\n break;\n case 'S':\n case 'A':\n throw new RangeError('`S/A` (second) patterns are not supported, use `s` instead');\n // Zone\n case 'z': // 1..3, 4: specific non-location format\n result.timeZoneName = len < 4 ? 'short' : 'long';\n break;\n case 'Z': // 1..3, 4, 5: The ISO8601 varios formats\n case 'O': // 1, 4: miliseconds in day short, long\n case 'v': // 1, 4: generic non-location format\n case 'V': // 1, 2, 3, 4: time zone ID or city\n case 'X': // 1, 2, 3, 4: The ISO8601 varios formats\n case 'x': // 1, 2, 3, 4: The ISO8601 varios formats\n throw new RangeError('`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead');\n }\n return '';\n });\n return result;\n}\n","// @generated from regex-gen.ts\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/i;\n","import { __assign } from \"tslib\";\nimport { WHITE_SPACE_REGEX } from './regex.generated';\nexport function parseNumberSkeletonFromString(skeleton) {\n if (skeleton.length === 0) {\n throw new Error('Number skeleton cannot be empty');\n }\n // Parse the skeleton\n var stringTokens = skeleton\n .split(WHITE_SPACE_REGEX)\n .filter(function (x) { return x.length > 0; });\n var tokens = [];\n for (var _i = 0, stringTokens_1 = stringTokens; _i < stringTokens_1.length; _i++) {\n var stringToken = stringTokens_1[_i];\n var stemAndOptions = stringToken.split('/');\n if (stemAndOptions.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n var stem = stemAndOptions[0], options = stemAndOptions.slice(1);\n for (var _a = 0, options_1 = options; _a < options_1.length; _a++) {\n var option = options_1[_a];\n if (option.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n }\n tokens.push({ stem: stem, options: options });\n }\n return tokens;\n}\nfunction icuUnitToEcma(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\*)?|(#+)|(0+)(#+))$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?[rs]?$/g;\nvar INTEGER_WIDTH_REGEX = /(\\*)(0+)|(#+)(0+)|(0+)/g;\nvar CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;\nfunction parseSignificantPrecision(str) {\n var result = {};\n if (str[str.length - 1] === 'r') {\n result.roundingPriority = 'morePrecision';\n }\n else if (str[str.length - 1] === 's') {\n result.roundingPriority = 'lessPrecision';\n }\n str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n // @@@ case\n if (typeof g2 !== 'string') {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits = g1.length;\n }\n // @@@+ case\n else if (g2 === '+') {\n result.minimumSignificantDigits = g1.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumSignificantDigits = g1.length;\n }\n // .@@## or .@@@ case\n else {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n return result;\n}\nfunction parseSign(str) {\n switch (str) {\n case 'sign-auto':\n return {\n signDisplay: 'auto',\n };\n case 'sign-accounting':\n case '()':\n return {\n currencySign: 'accounting',\n };\n case 'sign-always':\n case '+!':\n return {\n signDisplay: 'always',\n };\n case 'sign-accounting-always':\n case '()!':\n return {\n signDisplay: 'always',\n currencySign: 'accounting',\n };\n case 'sign-except-zero':\n case '+?':\n return {\n signDisplay: 'exceptZero',\n };\n case 'sign-accounting-except-zero':\n case '()?':\n return {\n signDisplay: 'exceptZero',\n currencySign: 'accounting',\n };\n case 'sign-never':\n case '+_':\n return {\n signDisplay: 'never',\n };\n }\n}\nfunction parseConciseScientificAndEngineeringStem(stem) {\n // Engineering\n var result;\n if (stem[0] === 'E' && stem[1] === 'E') {\n result = {\n notation: 'engineering',\n };\n stem = stem.slice(2);\n }\n else if (stem[0] === 'E') {\n result = {\n notation: 'scientific',\n };\n stem = stem.slice(1);\n }\n if (result) {\n var signDisplay = stem.slice(0, 2);\n if (signDisplay === '+!') {\n result.signDisplay = 'always';\n stem = stem.slice(2);\n }\n else if (signDisplay === '+?') {\n result.signDisplay = 'exceptZero';\n stem = stem.slice(2);\n }\n if (!CONCISE_INTEGER_WIDTH_REGEX.test(stem)) {\n throw new Error('Malformed concise eng/scientific notation');\n }\n result.minimumIntegerDigits = stem.length;\n }\n return result;\n}\nfunction parseNotationOptions(opt) {\n var result = {};\n var signOpts = parseSign(opt);\n if (signOpts) {\n return signOpts;\n }\n return result;\n}\n/**\n * https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#skeleton-stems-and-options\n */\nexport function parseNumberSkeleton(tokens) {\n var result = {};\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n switch (token.stem) {\n case 'percent':\n case '%':\n result.style = 'percent';\n continue;\n case '%x100':\n result.style = 'percent';\n result.scale = 100;\n continue;\n case 'currency':\n result.style = 'currency';\n result.currency = token.options[0];\n continue;\n case 'group-off':\n case ',_':\n result.useGrouping = false;\n continue;\n case 'precision-integer':\n case '.':\n result.maximumFractionDigits = 0;\n continue;\n case 'measure-unit':\n case 'unit':\n result.style = 'unit';\n result.unit = icuUnitToEcma(token.options[0]);\n continue;\n case 'compact-short':\n case 'K':\n result.notation = 'compact';\n result.compactDisplay = 'short';\n continue;\n case 'compact-long':\n case 'KK':\n result.notation = 'compact';\n result.compactDisplay = 'long';\n continue;\n case 'scientific':\n result = __assign(__assign(__assign({}, result), { notation: 'scientific' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'engineering':\n result = __assign(__assign(__assign({}, result), { notation: 'engineering' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'notation-simple':\n result.notation = 'standard';\n continue;\n // https://github.com/unicode-org/icu/blob/master/icu4c/source/i18n/unicode/unumberformatter.h\n case 'unit-width-narrow':\n result.currencyDisplay = 'narrowSymbol';\n result.unitDisplay = 'narrow';\n continue;\n case 'unit-width-short':\n result.currencyDisplay = 'code';\n result.unitDisplay = 'short';\n continue;\n case 'unit-width-full-name':\n result.currencyDisplay = 'name';\n result.unitDisplay = 'long';\n continue;\n case 'unit-width-iso-code':\n result.currencyDisplay = 'symbol';\n continue;\n case 'scale':\n result.scale = parseFloat(token.options[0]);\n continue;\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n case 'integer-width':\n if (token.options.length > 1) {\n throw new RangeError('integer-width stems only accept a single optional option');\n }\n token.options[0].replace(INTEGER_WIDTH_REGEX, function (_, g1, g2, g3, g4, g5) {\n if (g1) {\n result.minimumIntegerDigits = g2.length;\n }\n else if (g3 && g4) {\n throw new Error('We currently do not support maximum integer digits');\n }\n else if (g5) {\n throw new Error('We currently do not support exact integer digits');\n }\n return '';\n });\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n if (CONCISE_INTEGER_WIDTH_REGEX.test(token.stem)) {\n result.minimumIntegerDigits = token.stem.length;\n continue;\n }\n if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n // Precision\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#fraction-precision\n // precision-integer case\n if (token.options.length > 1) {\n throw new RangeError('Fraction-precision stems only accept a single optional option');\n }\n token.stem.replace(FRACTION_PRECISION_REGEX, function (_, g1, g2, g3, g4, g5) {\n // .000* case (before ICU67 it was .000+)\n if (g2 === '*') {\n result.minimumFractionDigits = g1.length;\n }\n // .### case\n else if (g3 && g3[0] === '#') {\n result.maximumFractionDigits = g3.length;\n }\n // .00## case\n else if (g4 && g5) {\n result.minimumFractionDigits = g4.length;\n result.maximumFractionDigits = g4.length + g5.length;\n }\n else {\n result.minimumFractionDigits = g1.length;\n result.maximumFractionDigits = g1.length;\n }\n return '';\n });\n var opt = token.options[0];\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#trailing-zero-display\n if (opt === 'w') {\n result = __assign(__assign({}, result), { trailingZeroDisplay: 'stripIfInteger' });\n }\n else if (opt) {\n result = __assign(__assign({}, result), parseSignificantPrecision(opt));\n }\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#significant-digits-precision\n if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.stem));\n continue;\n }\n var signOpts = parseSign(token.stem);\n if (signOpts) {\n result = __assign(__assign({}, result), signOpts);\n }\n var conciseScientificAndEngineeringOpts = parseConciseScientificAndEngineeringStem(token.stem);\n if (conciseScientificAndEngineeringOpts) {\n result = __assign(__assign({}, result), conciseScientificAndEngineeringOpts);\n }\n }\n return result;\n}\n","var _a;\nimport { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { SKELETON_TYPE, TYPE, } from './types';\nimport { SPACE_SEPARATOR_REGEX } from './regex.generated';\nimport { parseNumberSkeleton, parseNumberSkeletonFromString, parseDateTimeSkeleton, } from '@formatjs/icu-skeleton-parser';\nvar SPACE_SEPARATOR_START_REGEX = new RegExp(\"^\".concat(SPACE_SEPARATOR_REGEX.source, \"*\"));\nvar SPACE_SEPARATOR_END_REGEX = new RegExp(\"\".concat(SPACE_SEPARATOR_REGEX.source, \"*$\"));\nfunction createLocation(start, end) {\n return { start: start, end: end };\n}\n// #region Ponyfills\n// Consolidate these variables up top for easier toggling during debugging\nvar hasNativeStartsWith = !!String.prototype.startsWith;\nvar hasNativeFromCodePoint = !!String.fromCodePoint;\nvar hasNativeFromEntries = !!Object.fromEntries;\nvar hasNativeCodePointAt = !!String.prototype.codePointAt;\nvar hasTrimStart = !!String.prototype.trimStart;\nvar hasTrimEnd = !!String.prototype.trimEnd;\nvar hasNativeIsSafeInteger = !!Number.isSafeInteger;\nvar isSafeInteger = hasNativeIsSafeInteger\n ? Number.isSafeInteger\n : function (n) {\n return (typeof n === 'number' &&\n isFinite(n) &&\n Math.floor(n) === n &&\n Math.abs(n) <= 0x1fffffffffffff);\n };\n// IE11 does not support y and u.\nvar REGEX_SUPPORTS_U_AND_Y = true;\ntry {\n var re = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n /**\n * legacy Edge or Xbox One browser\n * Unicode flag support: supported\n * Pattern_Syntax support: not supported\n * See https://github.com/formatjs/formatjs/issues/2822\n */\n REGEX_SUPPORTS_U_AND_Y = ((_a = re.exec('a')) === null || _a === void 0 ? void 0 : _a[0]) === 'a';\n}\ncatch (_) {\n REGEX_SUPPORTS_U_AND_Y = false;\n}\nvar startsWith = hasNativeStartsWith\n ? // Native\n function startsWith(s, search, position) {\n return s.startsWith(search, position);\n }\n : // For IE11\n function startsWith(s, search, position) {\n return s.slice(position, position + search.length) === search;\n };\nvar fromCodePoint = hasNativeFromCodePoint\n ? String.fromCodePoint\n : // IE11\n function fromCodePoint() {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n var elements = '';\n var length = codePoints.length;\n var i = 0;\n var code;\n while (length > i) {\n code = codePoints[i++];\n if (code > 0x10ffff)\n throw RangeError(code + ' is not a valid code point');\n elements +=\n code < 0x10000\n ? String.fromCharCode(code)\n : String.fromCharCode(((code -= 0x10000) >> 10) + 0xd800, (code % 0x400) + 0xdc00);\n }\n return elements;\n };\nvar fromEntries = \n// native\nhasNativeFromEntries\n ? Object.fromEntries\n : // Ponyfill\n function fromEntries(entries) {\n var obj = {};\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var _a = entries_1[_i], k = _a[0], v = _a[1];\n obj[k] = v;\n }\n return obj;\n };\nvar codePointAt = hasNativeCodePointAt\n ? // Native\n function codePointAt(s, index) {\n return s.codePointAt(index);\n }\n : // IE 11\n function codePointAt(s, index) {\n var size = s.length;\n if (index < 0 || index >= size) {\n return undefined;\n }\n var first = s.charCodeAt(index);\n var second;\n return first < 0xd800 ||\n first > 0xdbff ||\n index + 1 === size ||\n (second = s.charCodeAt(index + 1)) < 0xdc00 ||\n second > 0xdfff\n ? first\n : ((first - 0xd800) << 10) + (second - 0xdc00) + 0x10000;\n };\nvar trimStart = hasTrimStart\n ? // Native\n function trimStart(s) {\n return s.trimStart();\n }\n : // Ponyfill\n function trimStart(s) {\n return s.replace(SPACE_SEPARATOR_START_REGEX, '');\n };\nvar trimEnd = hasTrimEnd\n ? // Native\n function trimEnd(s) {\n return s.trimEnd();\n }\n : // Ponyfill\n function trimEnd(s) {\n return s.replace(SPACE_SEPARATOR_END_REGEX, '');\n };\n// Prevent minifier to translate new RegExp to literal form that might cause syntax error on IE11.\nfunction RE(s, flag) {\n return new RegExp(s, flag);\n}\n// #endregion\nvar matchIdentifierAtIndex;\nif (REGEX_SUPPORTS_U_AND_Y) {\n // Native\n var IDENTIFIER_PREFIX_RE_1 = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var _a;\n IDENTIFIER_PREFIX_RE_1.lastIndex = index;\n var match = IDENTIFIER_PREFIX_RE_1.exec(s);\n return (_a = match[1]) !== null && _a !== void 0 ? _a : '';\n };\n}\nelse {\n // IE11\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var match = [];\n while (true) {\n var c = codePointAt(s, index);\n if (c === undefined || _isWhiteSpace(c) || _isPatternSyntax(c)) {\n break;\n }\n match.push(c);\n index += c >= 0x10000 ? 2 : 1;\n }\n return fromCodePoint.apply(void 0, match);\n };\n}\nvar Parser = /** @class */ (function () {\n function Parser(message, options) {\n if (options === void 0) { options = {}; }\n this.message = message;\n this.position = { offset: 0, line: 1, column: 1 };\n this.ignoreTag = !!options.ignoreTag;\n this.requiresOtherClause = !!options.requiresOtherClause;\n this.shouldParseSkeletons = !!options.shouldParseSkeletons;\n }\n Parser.prototype.parse = function () {\n if (this.offset() !== 0) {\n throw Error('parser can only be used once');\n }\n return this.parseMessage(0, '', false);\n };\n Parser.prototype.parseMessage = function (nestingLevel, parentArgType, expectingCloseTag) {\n var elements = [];\n while (!this.isEOF()) {\n var char = this.char();\n if (char === 123 /* `{` */) {\n var result = this.parseArgument(nestingLevel, expectingCloseTag);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else if (char === 125 /* `}` */ && nestingLevel > 0) {\n break;\n }\n else if (char === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) {\n var position = this.clonePosition();\n this.bump();\n elements.push({\n type: TYPE.pound,\n location: createLocation(position, this.clonePosition()),\n });\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n this.peek() === 47 // char code for '/'\n ) {\n if (expectingCloseTag) {\n break;\n }\n else {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(this.clonePosition(), this.clonePosition()));\n }\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n _isAlpha(this.peek() || 0)) {\n var result = this.parseTag(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else {\n var result = this.parseLiteral(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n }\n return { val: elements, err: null };\n };\n /**\n * A tag name must start with an ASCII lower/upper case letter. The grammar is based on the\n * [custom element name][] except that a dash is NOT always mandatory and uppercase letters\n * are accepted:\n *\n * ```\n * tag ::= \"<\" tagName (whitespace)* \"/>\" | \"<\" tagName (whitespace)* \">\" message \"\"\n * tagName ::= [a-z] (PENChar)*\n * PENChar ::=\n * \"-\" | \".\" | [0-9] | \"_\" | [a-z] | [A-Z] | #xB7 | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x37D] |\n * [#x37F-#x1FFF] | [#x200C-#x200D] | [#x203F-#x2040] | [#x2070-#x218F] | [#x2C00-#x2FEF] |\n * [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n * ```\n *\n * [custom element name]: https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n * NOTE: We're a bit more lax here since HTML technically does not allow uppercase HTML element but we do\n * since other tag-based engines like React allow it\n */\n Parser.prototype.parseTag = function (nestingLevel, parentArgType) {\n var startPosition = this.clonePosition();\n this.bump(); // `<`\n var tagName = this.parseTagName();\n this.bumpSpace();\n if (this.bumpIf('/>')) {\n // Self closing tag\n return {\n val: {\n type: TYPE.literal,\n value: \"<\".concat(tagName, \"/>\"),\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else if (this.bumpIf('>')) {\n var childrenResult = this.parseMessage(nestingLevel + 1, parentArgType, true);\n if (childrenResult.err) {\n return childrenResult;\n }\n var children = childrenResult.val;\n // Expecting a close tag\n var endTagStartPosition = this.clonePosition();\n if (this.bumpIf('')) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n return {\n val: {\n type: TYPE.tag,\n value: tagName,\n children: children,\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else {\n return this.error(ErrorKind.UNCLOSED_TAG, createLocation(startPosition, this.clonePosition()));\n }\n }\n else {\n return this.error(ErrorKind.INVALID_TAG, createLocation(startPosition, this.clonePosition()));\n }\n };\n /**\n * This method assumes that the caller has peeked ahead for the first tag character.\n */\n Parser.prototype.parseTagName = function () {\n var startOffset = this.offset();\n this.bump(); // the first tag name character\n while (!this.isEOF() && _isPotentialElementNameChar(this.char())) {\n this.bump();\n }\n return this.message.slice(startOffset, this.offset());\n };\n Parser.prototype.parseLiteral = function (nestingLevel, parentArgType) {\n var start = this.clonePosition();\n var value = '';\n while (true) {\n var parseQuoteResult = this.tryParseQuote(parentArgType);\n if (parseQuoteResult) {\n value += parseQuoteResult;\n continue;\n }\n var parseUnquotedResult = this.tryParseUnquoted(nestingLevel, parentArgType);\n if (parseUnquotedResult) {\n value += parseUnquotedResult;\n continue;\n }\n var parseLeftAngleResult = this.tryParseLeftAngleBracket();\n if (parseLeftAngleResult) {\n value += parseLeftAngleResult;\n continue;\n }\n break;\n }\n var location = createLocation(start, this.clonePosition());\n return {\n val: { type: TYPE.literal, value: value, location: location },\n err: null,\n };\n };\n Parser.prototype.tryParseLeftAngleBracket = function () {\n if (!this.isEOF() &&\n this.char() === 60 /* `<` */ &&\n (this.ignoreTag ||\n // If at the opening tag or closing tag position, bail.\n !_isAlphaOrSlash(this.peek() || 0))) {\n this.bump(); // `<`\n return '<';\n }\n return null;\n };\n /**\n * Starting with ICU 4.8, an ASCII apostrophe only starts quoted text if it immediately precedes\n * a character that requires quoting (that is, \"only where needed\"), and works the same in\n * nested messages as on the top level of the pattern. The new behavior is otherwise compatible.\n */\n Parser.prototype.tryParseQuote = function (parentArgType) {\n if (this.isEOF() || this.char() !== 39 /* `'` */) {\n return null;\n }\n // Parse escaped char following the apostrophe, or early return if there is no escaped char.\n // Check if is valid escaped character\n switch (this.peek()) {\n case 39 /* `'` */:\n // double quote, should return as a single quote.\n this.bump();\n this.bump();\n return \"'\";\n // '{', '<', '>', '}'\n case 123:\n case 60:\n case 62:\n case 125:\n break;\n case 35: // '#'\n if (parentArgType === 'plural' || parentArgType === 'selectordinal') {\n break;\n }\n return null;\n default:\n return null;\n }\n this.bump(); // apostrophe\n var codePoints = [this.char()]; // escaped char\n this.bump();\n // read chars until the optional closing apostrophe is found\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch === 39 /* `'` */) {\n if (this.peek() === 39 /* `'` */) {\n codePoints.push(39);\n // Bump one more time because we need to skip 2 characters.\n this.bump();\n }\n else {\n // Optional closing apostrophe.\n this.bump();\n break;\n }\n }\n else {\n codePoints.push(ch);\n }\n this.bump();\n }\n return fromCodePoint.apply(void 0, codePoints);\n };\n Parser.prototype.tryParseUnquoted = function (nestingLevel, parentArgType) {\n if (this.isEOF()) {\n return null;\n }\n var ch = this.char();\n if (ch === 60 /* `<` */ ||\n ch === 123 /* `{` */ ||\n (ch === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) ||\n (ch === 125 /* `}` */ && nestingLevel > 0)) {\n return null;\n }\n else {\n this.bump();\n return fromCodePoint(ch);\n }\n };\n Parser.prototype.parseArgument = function (nestingLevel, expectingCloseTag) {\n var openingBracePosition = this.clonePosition();\n this.bump(); // `{`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n if (this.char() === 125 /* `}` */) {\n this.bump();\n return this.error(ErrorKind.EMPTY_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n // argument name\n var value = this.parseIdentifierIfPossible().value;\n if (!value) {\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n switch (this.char()) {\n // Simple argument: `{name}`\n case 125 /* `}` */: {\n this.bump(); // `}`\n return {\n val: {\n type: TYPE.argument,\n // value does not include the opening and closing braces.\n value: value,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n err: null,\n };\n }\n // Argument with options: `{name, format, ...}`\n case 44 /* `,` */: {\n this.bump(); // `,`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n return this.parseArgumentOptions(nestingLevel, expectingCloseTag, value, openingBracePosition);\n }\n default:\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n };\n /**\n * Advance the parser until the end of the identifier, if it is currently on\n * an identifier character. Return an empty string otherwise.\n */\n Parser.prototype.parseIdentifierIfPossible = function () {\n var startingPosition = this.clonePosition();\n var startOffset = this.offset();\n var value = matchIdentifierAtIndex(this.message, startOffset);\n var endOffset = startOffset + value.length;\n this.bumpTo(endOffset);\n var endPosition = this.clonePosition();\n var location = createLocation(startingPosition, endPosition);\n return { value: value, location: location };\n };\n Parser.prototype.parseArgumentOptions = function (nestingLevel, expectingCloseTag, value, openingBracePosition) {\n var _a;\n // Parse this range:\n // {name, type, style}\n // ^---^\n var typeStartPosition = this.clonePosition();\n var argType = this.parseIdentifierIfPossible().value;\n var typeEndPosition = this.clonePosition();\n switch (argType) {\n case '':\n // Expecting a style string number, date, time, plural, selectordinal, or select.\n return this.error(ErrorKind.EXPECT_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n case 'number':\n case 'date':\n case 'time': {\n // Parse this range:\n // {name, number, style}\n // ^-------^\n this.bumpSpace();\n var styleAndLocation = null;\n if (this.bumpIf(',')) {\n this.bumpSpace();\n var styleStartPosition = this.clonePosition();\n var result = this.parseSimpleArgStyleIfPossible();\n if (result.err) {\n return result;\n }\n var style = trimEnd(result.val);\n if (style.length === 0) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_STYLE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var styleLocation = createLocation(styleStartPosition, this.clonePosition());\n styleAndLocation = { style: style, styleLocation: styleLocation };\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_1 = createLocation(openingBracePosition, this.clonePosition());\n // Extract style or skeleton\n if (styleAndLocation && startsWith(styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style, '::', 0)) {\n // Skeleton starts with `::`.\n var skeleton = trimStart(styleAndLocation.style.slice(2));\n if (argType === 'number') {\n var result = this.parseNumberSkeletonFromString(skeleton, styleAndLocation.styleLocation);\n if (result.err) {\n return result;\n }\n return {\n val: { type: TYPE.number, value: value, location: location_1, style: result.val },\n err: null,\n };\n }\n else {\n if (skeleton.length === 0) {\n return this.error(ErrorKind.EXPECT_DATE_TIME_SKELETON, location_1);\n }\n var style = {\n type: SKELETON_TYPE.dateTime,\n pattern: skeleton,\n location: styleAndLocation.styleLocation,\n parsedOptions: this.shouldParseSkeletons\n ? parseDateTimeSkeleton(skeleton)\n : {},\n };\n var type = argType === 'date' ? TYPE.date : TYPE.time;\n return {\n val: { type: type, value: value, location: location_1, style: style },\n err: null,\n };\n }\n }\n // Regular style or no style.\n return {\n val: {\n type: argType === 'number'\n ? TYPE.number\n : argType === 'date'\n ? TYPE.date\n : TYPE.time,\n value: value,\n location: location_1,\n style: (_a = styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style) !== null && _a !== void 0 ? _a : null,\n },\n err: null,\n };\n }\n case 'plural':\n case 'selectordinal':\n case 'select': {\n // Parse this range:\n // {name, plural, options}\n // ^---------^\n var typeEndPosition_1 = this.clonePosition();\n this.bumpSpace();\n if (!this.bumpIf(',')) {\n return this.error(ErrorKind.EXPECT_SELECT_ARGUMENT_OPTIONS, createLocation(typeEndPosition_1, __assign({}, typeEndPosition_1)));\n }\n this.bumpSpace();\n // Parse offset:\n // {name, plural, offset:1, options}\n // ^-----^\n //\n // or the first option:\n //\n // {name, plural, one {...} other {...}}\n // ^--^\n var identifierAndLocation = this.parseIdentifierIfPossible();\n var pluralOffset = 0;\n if (argType !== 'select' && identifierAndLocation.value === 'offset') {\n if (!this.bumpIf(':')) {\n return this.error(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n this.bumpSpace();\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, ErrorKind.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);\n if (result.err) {\n return result;\n }\n // Parse another identifier for option parsing\n this.bumpSpace();\n identifierAndLocation = this.parseIdentifierIfPossible();\n pluralOffset = result.val;\n }\n var optionsResult = this.tryParsePluralOrSelectOptions(nestingLevel, argType, expectingCloseTag, identifierAndLocation);\n if (optionsResult.err) {\n return optionsResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_2 = createLocation(openingBracePosition, this.clonePosition());\n if (argType === 'select') {\n return {\n val: {\n type: TYPE.select,\n value: value,\n options: fromEntries(optionsResult.val),\n location: location_2,\n },\n err: null,\n };\n }\n else {\n return {\n val: {\n type: TYPE.plural,\n value: value,\n options: fromEntries(optionsResult.val),\n offset: pluralOffset,\n pluralType: argType === 'plural' ? 'cardinal' : 'ordinal',\n location: location_2,\n },\n err: null,\n };\n }\n }\n default:\n return this.error(ErrorKind.INVALID_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n }\n };\n Parser.prototype.tryParseArgumentClose = function (openingBracePosition) {\n // Parse: {value, number, ::currency/GBP }\n //\n if (this.isEOF() || this.char() !== 125 /* `}` */) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bump(); // `}`\n return { val: true, err: null };\n };\n /**\n * See: https://github.com/unicode-org/icu/blob/af7ed1f6d2298013dc303628438ec4abe1f16479/icu4c/source/common/messagepattern.cpp#L659\n */\n Parser.prototype.parseSimpleArgStyleIfPossible = function () {\n var nestedBraces = 0;\n var startPosition = this.clonePosition();\n while (!this.isEOF()) {\n var ch = this.char();\n switch (ch) {\n case 39 /* `'` */: {\n // Treat apostrophe as quoting but include it in the style part.\n // Find the end of the quoted literal text.\n this.bump();\n var apostrophePosition = this.clonePosition();\n if (!this.bumpUntil(\"'\")) {\n return this.error(ErrorKind.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE, createLocation(apostrophePosition, this.clonePosition()));\n }\n this.bump();\n break;\n }\n case 123 /* `{` */: {\n nestedBraces += 1;\n this.bump();\n break;\n }\n case 125 /* `}` */: {\n if (nestedBraces > 0) {\n nestedBraces -= 1;\n }\n else {\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n }\n break;\n }\n default:\n this.bump();\n break;\n }\n }\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n };\n Parser.prototype.parseNumberSkeletonFromString = function (skeleton, location) {\n var tokens = [];\n try {\n tokens = parseNumberSkeletonFromString(skeleton);\n }\n catch (e) {\n return this.error(ErrorKind.INVALID_NUMBER_SKELETON, location);\n }\n return {\n val: {\n type: SKELETON_TYPE.number,\n tokens: tokens,\n location: location,\n parsedOptions: this.shouldParseSkeletons\n ? parseNumberSkeleton(tokens)\n : {},\n },\n err: null,\n };\n };\n /**\n * @param nesting_level The current nesting level of messages.\n * This can be positive when parsing message fragment in select or plural argument options.\n * @param parent_arg_type The parent argument's type.\n * @param parsed_first_identifier If provided, this is the first identifier-like selector of\n * the argument. It is a by-product of a previous parsing attempt.\n * @param expecting_close_tag If true, this message is directly or indirectly nested inside\n * between a pair of opening and closing tags. The nested message will not parse beyond\n * the closing tag boundary.\n */\n Parser.prototype.tryParsePluralOrSelectOptions = function (nestingLevel, parentArgType, expectCloseTag, parsedFirstIdentifier) {\n var _a;\n var hasOtherClause = false;\n var options = [];\n var parsedSelectors = new Set();\n var selector = parsedFirstIdentifier.value, selectorLocation = parsedFirstIdentifier.location;\n // Parse:\n // one {one apple}\n // ^--^\n while (true) {\n if (selector.length === 0) {\n var startPosition = this.clonePosition();\n if (parentArgType !== 'select' && this.bumpIf('=')) {\n // Try parse `={number}` selector\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, ErrorKind.INVALID_PLURAL_ARGUMENT_SELECTOR);\n if (result.err) {\n return result;\n }\n selectorLocation = createLocation(startPosition, this.clonePosition());\n selector = this.message.slice(startPosition.offset, this.offset());\n }\n else {\n break;\n }\n }\n // Duplicate selector clauses\n if (parsedSelectors.has(selector)) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.DUPLICATE_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.DUPLICATE_PLURAL_ARGUMENT_SELECTOR, selectorLocation);\n }\n if (selector === 'other') {\n hasOtherClause = true;\n }\n // Parse:\n // one {one apple}\n // ^----------^\n this.bumpSpace();\n var openingBracePosition = this.clonePosition();\n if (!this.bumpIf('{')) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var fragmentResult = this.parseMessage(nestingLevel + 1, parentArgType, expectCloseTag);\n if (fragmentResult.err) {\n return fragmentResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n options.push([\n selector,\n {\n value: fragmentResult.val,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n ]);\n // Keep track of the existing selectors\n parsedSelectors.add(selector);\n // Prep next selector clause.\n this.bumpSpace();\n (_a = this.parseIdentifierIfPossible(), selector = _a.value, selectorLocation = _a.location);\n }\n if (options.length === 0) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, createLocation(this.clonePosition(), this.clonePosition()));\n }\n if (this.requiresOtherClause && !hasOtherClause) {\n return this.error(ErrorKind.MISSING_OTHER_CLAUSE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n return { val: options, err: null };\n };\n Parser.prototype.tryParseDecimalInteger = function (expectNumberError, invalidNumberError) {\n var sign = 1;\n var startingPosition = this.clonePosition();\n if (this.bumpIf('+')) {\n }\n else if (this.bumpIf('-')) {\n sign = -1;\n }\n var hasDigits = false;\n var decimal = 0;\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch >= 48 /* `0` */ && ch <= 57 /* `9` */) {\n hasDigits = true;\n decimal = decimal * 10 + (ch - 48);\n this.bump();\n }\n else {\n break;\n }\n }\n var location = createLocation(startingPosition, this.clonePosition());\n if (!hasDigits) {\n return this.error(expectNumberError, location);\n }\n decimal *= sign;\n if (!isSafeInteger(decimal)) {\n return this.error(invalidNumberError, location);\n }\n return { val: decimal, err: null };\n };\n Parser.prototype.offset = function () {\n return this.position.offset;\n };\n Parser.prototype.isEOF = function () {\n return this.offset() === this.message.length;\n };\n Parser.prototype.clonePosition = function () {\n // This is much faster than `Object.assign` or spread.\n return {\n offset: this.position.offset,\n line: this.position.line,\n column: this.position.column,\n };\n };\n /**\n * Return the code point at the current position of the parser.\n * Throws if the index is out of bound.\n */\n Parser.prototype.char = function () {\n var offset = this.position.offset;\n if (offset >= this.message.length) {\n throw Error('out of bound');\n }\n var code = codePointAt(this.message, offset);\n if (code === undefined) {\n throw Error(\"Offset \".concat(offset, \" is at invalid UTF-16 code unit boundary\"));\n }\n return code;\n };\n Parser.prototype.error = function (kind, location) {\n return {\n val: null,\n err: {\n kind: kind,\n message: this.message,\n location: location,\n },\n };\n };\n /** Bump the parser to the next UTF-16 code unit. */\n Parser.prototype.bump = function () {\n if (this.isEOF()) {\n return;\n }\n var code = this.char();\n if (code === 10 /* '\\n' */) {\n this.position.line += 1;\n this.position.column = 1;\n this.position.offset += 1;\n }\n else {\n this.position.column += 1;\n // 0 ~ 0x10000 -> unicode BMP, otherwise skip the surrogate pair.\n this.position.offset += code < 0x10000 ? 1 : 2;\n }\n };\n /**\n * If the substring starting at the current position of the parser has\n * the given prefix, then bump the parser to the character immediately\n * following the prefix and return true. Otherwise, don't bump the parser\n * and return false.\n */\n Parser.prototype.bumpIf = function (prefix) {\n if (startsWith(this.message, prefix, this.offset())) {\n for (var i = 0; i < prefix.length; i++) {\n this.bump();\n }\n return true;\n }\n return false;\n };\n /**\n * Bump the parser until the pattern character is found and return `true`.\n * Otherwise bump to the end of the file and return `false`.\n */\n Parser.prototype.bumpUntil = function (pattern) {\n var currentOffset = this.offset();\n var index = this.message.indexOf(pattern, currentOffset);\n if (index >= 0) {\n this.bumpTo(index);\n return true;\n }\n else {\n this.bumpTo(this.message.length);\n return false;\n }\n };\n /**\n * Bump the parser to the target offset.\n * If target offset is beyond the end of the input, bump the parser to the end of the input.\n */\n Parser.prototype.bumpTo = function (targetOffset) {\n if (this.offset() > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" must be greater than or equal to the current offset \").concat(this.offset()));\n }\n targetOffset = Math.min(targetOffset, this.message.length);\n while (true) {\n var offset = this.offset();\n if (offset === targetOffset) {\n break;\n }\n if (offset > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" is at invalid UTF-16 code unit boundary\"));\n }\n this.bump();\n if (this.isEOF()) {\n break;\n }\n }\n };\n /** advance the parser through all whitespace to the next non-whitespace code unit. */\n Parser.prototype.bumpSpace = function () {\n while (!this.isEOF() && _isWhiteSpace(this.char())) {\n this.bump();\n }\n };\n /**\n * Peek at the *next* Unicode codepoint in the input without advancing the parser.\n * If the input has been exhausted, then this returns null.\n */\n Parser.prototype.peek = function () {\n if (this.isEOF()) {\n return null;\n }\n var code = this.char();\n var offset = this.offset();\n var nextCode = this.message.charCodeAt(offset + (code >= 0x10000 ? 2 : 1));\n return nextCode !== null && nextCode !== void 0 ? nextCode : null;\n };\n return Parser;\n}());\nexport { Parser };\n/**\n * This check if codepoint is alphabet (lower & uppercase)\n * @param codepoint\n * @returns\n */\nfunction _isAlpha(codepoint) {\n return ((codepoint >= 97 && codepoint <= 122) ||\n (codepoint >= 65 && codepoint <= 90));\n}\nfunction _isAlphaOrSlash(codepoint) {\n return _isAlpha(codepoint) || codepoint === 47; /* '/' */\n}\n/** See `parseTag` function docs. */\nfunction _isPotentialElementNameChar(c) {\n return (c === 45 /* '-' */ ||\n c === 46 /* '.' */ ||\n (c >= 48 && c <= 57) /* 0..9 */ ||\n c === 95 /* '_' */ ||\n (c >= 97 && c <= 122) /** a..z */ ||\n (c >= 65 && c <= 90) /* A..Z */ ||\n c == 0xb7 ||\n (c >= 0xc0 && c <= 0xd6) ||\n (c >= 0xd8 && c <= 0xf6) ||\n (c >= 0xf8 && c <= 0x37d) ||\n (c >= 0x37f && c <= 0x1fff) ||\n (c >= 0x200c && c <= 0x200d) ||\n (c >= 0x203f && c <= 0x2040) ||\n (c >= 0x2070 && c <= 0x218f) ||\n (c >= 0x2c00 && c <= 0x2fef) ||\n (c >= 0x3001 && c <= 0xd7ff) ||\n (c >= 0xf900 && c <= 0xfdcf) ||\n (c >= 0xfdf0 && c <= 0xfffd) ||\n (c >= 0x10000 && c <= 0xeffff));\n}\n/**\n * Code point equivalent of regex `\\p{White_Space}`.\n * From: https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isWhiteSpace(c) {\n return ((c >= 0x0009 && c <= 0x000d) ||\n c === 0x0020 ||\n c === 0x0085 ||\n (c >= 0x200e && c <= 0x200f) ||\n c === 0x2028 ||\n c === 0x2029);\n}\n/**\n * Code point equivalent of regex `\\p{Pattern_Syntax}`.\n * See https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isPatternSyntax(c) {\n return ((c >= 0x0021 && c <= 0x0023) ||\n c === 0x0024 ||\n (c >= 0x0025 && c <= 0x0027) ||\n c === 0x0028 ||\n c === 0x0029 ||\n c === 0x002a ||\n c === 0x002b ||\n c === 0x002c ||\n c === 0x002d ||\n (c >= 0x002e && c <= 0x002f) ||\n (c >= 0x003a && c <= 0x003b) ||\n (c >= 0x003c && c <= 0x003e) ||\n (c >= 0x003f && c <= 0x0040) ||\n c === 0x005b ||\n c === 0x005c ||\n c === 0x005d ||\n c === 0x005e ||\n c === 0x0060 ||\n c === 0x007b ||\n c === 0x007c ||\n c === 0x007d ||\n c === 0x007e ||\n c === 0x00a1 ||\n (c >= 0x00a2 && c <= 0x00a5) ||\n c === 0x00a6 ||\n c === 0x00a7 ||\n c === 0x00a9 ||\n c === 0x00ab ||\n c === 0x00ac ||\n c === 0x00ae ||\n c === 0x00b0 ||\n c === 0x00b1 ||\n c === 0x00b6 ||\n c === 0x00bb ||\n c === 0x00bf ||\n c === 0x00d7 ||\n c === 0x00f7 ||\n (c >= 0x2010 && c <= 0x2015) ||\n (c >= 0x2016 && c <= 0x2017) ||\n c === 0x2018 ||\n c === 0x2019 ||\n c === 0x201a ||\n (c >= 0x201b && c <= 0x201c) ||\n c === 0x201d ||\n c === 0x201e ||\n c === 0x201f ||\n (c >= 0x2020 && c <= 0x2027) ||\n (c >= 0x2030 && c <= 0x2038) ||\n c === 0x2039 ||\n c === 0x203a ||\n (c >= 0x203b && c <= 0x203e) ||\n (c >= 0x2041 && c <= 0x2043) ||\n c === 0x2044 ||\n c === 0x2045 ||\n c === 0x2046 ||\n (c >= 0x2047 && c <= 0x2051) ||\n c === 0x2052 ||\n c === 0x2053 ||\n (c >= 0x2055 && c <= 0x205e) ||\n (c >= 0x2190 && c <= 0x2194) ||\n (c >= 0x2195 && c <= 0x2199) ||\n (c >= 0x219a && c <= 0x219b) ||\n (c >= 0x219c && c <= 0x219f) ||\n c === 0x21a0 ||\n (c >= 0x21a1 && c <= 0x21a2) ||\n c === 0x21a3 ||\n (c >= 0x21a4 && c <= 0x21a5) ||\n c === 0x21a6 ||\n (c >= 0x21a7 && c <= 0x21ad) ||\n c === 0x21ae ||\n (c >= 0x21af && c <= 0x21cd) ||\n (c >= 0x21ce && c <= 0x21cf) ||\n (c >= 0x21d0 && c <= 0x21d1) ||\n c === 0x21d2 ||\n c === 0x21d3 ||\n c === 0x21d4 ||\n (c >= 0x21d5 && c <= 0x21f3) ||\n (c >= 0x21f4 && c <= 0x22ff) ||\n (c >= 0x2300 && c <= 0x2307) ||\n c === 0x2308 ||\n c === 0x2309 ||\n c === 0x230a ||\n c === 0x230b ||\n (c >= 0x230c && c <= 0x231f) ||\n (c >= 0x2320 && c <= 0x2321) ||\n (c >= 0x2322 && c <= 0x2328) ||\n c === 0x2329 ||\n c === 0x232a ||\n (c >= 0x232b && c <= 0x237b) ||\n c === 0x237c ||\n (c >= 0x237d && c <= 0x239a) ||\n (c >= 0x239b && c <= 0x23b3) ||\n (c >= 0x23b4 && c <= 0x23db) ||\n (c >= 0x23dc && c <= 0x23e1) ||\n (c >= 0x23e2 && c <= 0x2426) ||\n (c >= 0x2427 && c <= 0x243f) ||\n (c >= 0x2440 && c <= 0x244a) ||\n (c >= 0x244b && c <= 0x245f) ||\n (c >= 0x2500 && c <= 0x25b6) ||\n c === 0x25b7 ||\n (c >= 0x25b8 && c <= 0x25c0) ||\n c === 0x25c1 ||\n (c >= 0x25c2 && c <= 0x25f7) ||\n (c >= 0x25f8 && c <= 0x25ff) ||\n (c >= 0x2600 && c <= 0x266e) ||\n c === 0x266f ||\n (c >= 0x2670 && c <= 0x2767) ||\n c === 0x2768 ||\n c === 0x2769 ||\n c === 0x276a ||\n c === 0x276b ||\n c === 0x276c ||\n c === 0x276d ||\n c === 0x276e ||\n c === 0x276f ||\n c === 0x2770 ||\n c === 0x2771 ||\n c === 0x2772 ||\n c === 0x2773 ||\n c === 0x2774 ||\n c === 0x2775 ||\n (c >= 0x2794 && c <= 0x27bf) ||\n (c >= 0x27c0 && c <= 0x27c4) ||\n c === 0x27c5 ||\n c === 0x27c6 ||\n (c >= 0x27c7 && c <= 0x27e5) ||\n c === 0x27e6 ||\n c === 0x27e7 ||\n c === 0x27e8 ||\n c === 0x27e9 ||\n c === 0x27ea ||\n c === 0x27eb ||\n c === 0x27ec ||\n c === 0x27ed ||\n c === 0x27ee ||\n c === 0x27ef ||\n (c >= 0x27f0 && c <= 0x27ff) ||\n (c >= 0x2800 && c <= 0x28ff) ||\n (c >= 0x2900 && c <= 0x2982) ||\n c === 0x2983 ||\n c === 0x2984 ||\n c === 0x2985 ||\n c === 0x2986 ||\n c === 0x2987 ||\n c === 0x2988 ||\n c === 0x2989 ||\n c === 0x298a ||\n c === 0x298b ||\n c === 0x298c ||\n c === 0x298d ||\n c === 0x298e ||\n c === 0x298f ||\n c === 0x2990 ||\n c === 0x2991 ||\n c === 0x2992 ||\n c === 0x2993 ||\n c === 0x2994 ||\n c === 0x2995 ||\n c === 0x2996 ||\n c === 0x2997 ||\n c === 0x2998 ||\n (c >= 0x2999 && c <= 0x29d7) ||\n c === 0x29d8 ||\n c === 0x29d9 ||\n c === 0x29da ||\n c === 0x29db ||\n (c >= 0x29dc && c <= 0x29fb) ||\n c === 0x29fc ||\n c === 0x29fd ||\n (c >= 0x29fe && c <= 0x2aff) ||\n (c >= 0x2b00 && c <= 0x2b2f) ||\n (c >= 0x2b30 && c <= 0x2b44) ||\n (c >= 0x2b45 && c <= 0x2b46) ||\n (c >= 0x2b47 && c <= 0x2b4c) ||\n (c >= 0x2b4d && c <= 0x2b73) ||\n (c >= 0x2b74 && c <= 0x2b75) ||\n (c >= 0x2b76 && c <= 0x2b95) ||\n c === 0x2b96 ||\n (c >= 0x2b97 && c <= 0x2bff) ||\n (c >= 0x2e00 && c <= 0x2e01) ||\n c === 0x2e02 ||\n c === 0x2e03 ||\n c === 0x2e04 ||\n c === 0x2e05 ||\n (c >= 0x2e06 && c <= 0x2e08) ||\n c === 0x2e09 ||\n c === 0x2e0a ||\n c === 0x2e0b ||\n c === 0x2e0c ||\n c === 0x2e0d ||\n (c >= 0x2e0e && c <= 0x2e16) ||\n c === 0x2e17 ||\n (c >= 0x2e18 && c <= 0x2e19) ||\n c === 0x2e1a ||\n c === 0x2e1b ||\n c === 0x2e1c ||\n c === 0x2e1d ||\n (c >= 0x2e1e && c <= 0x2e1f) ||\n c === 0x2e20 ||\n c === 0x2e21 ||\n c === 0x2e22 ||\n c === 0x2e23 ||\n c === 0x2e24 ||\n c === 0x2e25 ||\n c === 0x2e26 ||\n c === 0x2e27 ||\n c === 0x2e28 ||\n c === 0x2e29 ||\n (c >= 0x2e2a && c <= 0x2e2e) ||\n c === 0x2e2f ||\n (c >= 0x2e30 && c <= 0x2e39) ||\n (c >= 0x2e3a && c <= 0x2e3b) ||\n (c >= 0x2e3c && c <= 0x2e3f) ||\n c === 0x2e40 ||\n c === 0x2e41 ||\n c === 0x2e42 ||\n (c >= 0x2e43 && c <= 0x2e4f) ||\n (c >= 0x2e50 && c <= 0x2e51) ||\n c === 0x2e52 ||\n (c >= 0x2e53 && c <= 0x2e7f) ||\n (c >= 0x3001 && c <= 0x3003) ||\n c === 0x3008 ||\n c === 0x3009 ||\n c === 0x300a ||\n c === 0x300b ||\n c === 0x300c ||\n c === 0x300d ||\n c === 0x300e ||\n c === 0x300f ||\n c === 0x3010 ||\n c === 0x3011 ||\n (c >= 0x3012 && c <= 0x3013) ||\n c === 0x3014 ||\n c === 0x3015 ||\n c === 0x3016 ||\n c === 0x3017 ||\n c === 0x3018 ||\n c === 0x3019 ||\n c === 0x301a ||\n c === 0x301b ||\n c === 0x301c ||\n c === 0x301d ||\n (c >= 0x301e && c <= 0x301f) ||\n c === 0x3020 ||\n c === 0x3030 ||\n c === 0xfd3e ||\n c === 0xfd3f ||\n (c >= 0xfe45 && c <= 0xfe46));\n}\n","import { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { Parser } from './parser';\nimport { isDateElement, isDateTimeSkeleton, isNumberElement, isNumberSkeleton, isPluralElement, isSelectElement, isTagElement, isTimeElement, } from './types';\nfunction pruneLocation(els) {\n els.forEach(function (el) {\n delete el.location;\n if (isSelectElement(el) || isPluralElement(el)) {\n for (var k in el.options) {\n delete el.options[k].location;\n pruneLocation(el.options[k].value);\n }\n }\n else if (isNumberElement(el) && isNumberSkeleton(el.style)) {\n delete el.style.location;\n }\n else if ((isDateElement(el) || isTimeElement(el)) &&\n isDateTimeSkeleton(el.style)) {\n delete el.style.location;\n }\n else if (isTagElement(el)) {\n pruneLocation(el.children);\n }\n });\n}\nexport function parse(message, opts) {\n if (opts === void 0) { opts = {}; }\n opts = __assign({ shouldParseSkeletons: true, requiresOtherClause: true }, opts);\n var result = new Parser(message, opts).parse();\n if (result.err) {\n var error = SyntaxError(ErrorKind[result.err.kind]);\n // @ts-expect-error Assign to error object\n error.location = result.err.location;\n // @ts-expect-error Assign to error object\n error.originalMessage = result.err.message;\n throw error;\n }\n if (!(opts === null || opts === void 0 ? void 0 : opts.captureLocation)) {\n pruneLocation(result.val);\n }\n return result.val;\n}\nexport * from './types';\n","//\n// Main\n//\nexport default function memoize(fn, options) {\n var cache = options && options.cache ? options.cache : cacheDefault;\n var serializer = options && options.serializer ? options.serializer : serializerDefault;\n var strategy = options && options.strategy ? options.strategy : strategyDefault;\n return strategy(fn, {\n cache: cache,\n serializer: serializer,\n });\n}\n//\n// Strategy\n//\nfunction isPrimitive(value) {\n return (value == null || typeof value === 'number' || typeof value === 'boolean'); // || typeof value === \"string\" 'unsafe' primitive for our needs\n}\nfunction monadic(fn, cache, serializer, arg) {\n var cacheKey = isPrimitive(arg) ? arg : serializer(arg);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.call(this, arg);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction variadic(fn, cache, serializer) {\n var args = Array.prototype.slice.call(arguments, 3);\n var cacheKey = serializer(args);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.apply(this, args);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction assemble(fn, context, strategy, cache, serialize) {\n return strategy.bind(context, fn, cache, serialize);\n}\nfunction strategyDefault(fn, options) {\n var strategy = fn.length === 1 ? monadic : variadic;\n return assemble(fn, this, strategy, options.cache.create(), options.serializer);\n}\nfunction strategyVariadic(fn, options) {\n return assemble(fn, this, variadic, options.cache.create(), options.serializer);\n}\nfunction strategyMonadic(fn, options) {\n return assemble(fn, this, monadic, options.cache.create(), options.serializer);\n}\n//\n// Serializer\n//\nvar serializerDefault = function () {\n return JSON.stringify(arguments);\n};\n//\n// Cache\n//\nfunction ObjectWithoutPrototypeCache() {\n this.cache = Object.create(null);\n}\nObjectWithoutPrototypeCache.prototype.get = function (key) {\n return this.cache[key];\n};\nObjectWithoutPrototypeCache.prototype.set = function (key, value) {\n this.cache[key] = value;\n};\nvar cacheDefault = {\n create: function create() {\n // @ts-ignore\n return new ObjectWithoutPrototypeCache();\n },\n};\nexport var strategies = {\n variadic: strategyVariadic,\n monadic: strategyMonadic,\n};\n","import { __extends } from \"tslib\";\nexport var ErrorCode;\n(function (ErrorCode) {\n // When we have a placeholder but no value to format\n ErrorCode[\"MISSING_VALUE\"] = \"MISSING_VALUE\";\n // When value supplied is invalid\n ErrorCode[\"INVALID_VALUE\"] = \"INVALID_VALUE\";\n // When we need specific Intl API but it's not available\n ErrorCode[\"MISSING_INTL_API\"] = \"MISSING_INTL_API\";\n})(ErrorCode || (ErrorCode = {}));\nvar FormatError = /** @class */ (function (_super) {\n __extends(FormatError, _super);\n function FormatError(msg, code, originalMessage) {\n var _this = _super.call(this, msg) || this;\n _this.code = code;\n _this.originalMessage = originalMessage;\n return _this;\n }\n FormatError.prototype.toString = function () {\n return \"[formatjs Error: \".concat(this.code, \"] \").concat(this.message);\n };\n return FormatError;\n}(Error));\nexport { FormatError };\nvar InvalidValueError = /** @class */ (function (_super) {\n __extends(InvalidValueError, _super);\n function InvalidValueError(variableId, value, options, originalMessage) {\n return _super.call(this, \"Invalid values for \\\"\".concat(variableId, \"\\\": \\\"\").concat(value, \"\\\". Options are \\\"\").concat(Object.keys(options).join('\", \"'), \"\\\"\"), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueError;\n}(FormatError));\nexport { InvalidValueError };\nvar InvalidValueTypeError = /** @class */ (function (_super) {\n __extends(InvalidValueTypeError, _super);\n function InvalidValueTypeError(value, type, originalMessage) {\n return _super.call(this, \"Value for \\\"\".concat(value, \"\\\" must be of type \").concat(type), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueTypeError;\n}(FormatError));\nexport { InvalidValueTypeError };\nvar MissingValueError = /** @class */ (function (_super) {\n __extends(MissingValueError, _super);\n function MissingValueError(variableId, originalMessage) {\n return _super.call(this, \"The intl string context variable \\\"\".concat(variableId, \"\\\" was not provided to the string \\\"\").concat(originalMessage, \"\\\"\"), ErrorCode.MISSING_VALUE, originalMessage) || this;\n }\n return MissingValueError;\n}(FormatError));\nexport { MissingValueError };\n","import { isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTimeElement, isTagElement, } from '@formatjs/icu-messageformat-parser';\nimport { MissingValueError, InvalidValueError, ErrorCode, FormatError, InvalidValueTypeError, } from './error';\nexport var PART_TYPE;\n(function (PART_TYPE) {\n PART_TYPE[PART_TYPE[\"literal\"] = 0] = \"literal\";\n PART_TYPE[PART_TYPE[\"object\"] = 1] = \"object\";\n})(PART_TYPE || (PART_TYPE = {}));\nfunction mergeLiteral(parts) {\n if (parts.length < 2) {\n return parts;\n }\n return parts.reduce(function (all, part) {\n var lastPart = all[all.length - 1];\n if (!lastPart ||\n lastPart.type !== PART_TYPE.literal ||\n part.type !== PART_TYPE.literal) {\n all.push(part);\n }\n else {\n lastPart.value += part.value;\n }\n return all;\n }, []);\n}\nexport function isFormatXMLElementFn(el) {\n return typeof el === 'function';\n}\n// TODO(skeleton): add skeleton support\nexport function formatToParts(els, locales, formatters, formats, values, currentPluralValue, \n// For debugging\noriginalMessage) {\n // Hot path for straight simple msg translations\n if (els.length === 1 && isLiteralElement(els[0])) {\n return [\n {\n type: PART_TYPE.literal,\n value: els[0].value,\n },\n ];\n }\n var result = [];\n for (var _i = 0, els_1 = els; _i < els_1.length; _i++) {\n var el = els_1[_i];\n // Exit early for string parts.\n if (isLiteralElement(el)) {\n result.push({\n type: PART_TYPE.literal,\n value: el.value,\n });\n continue;\n }\n // TODO: should this part be literal type?\n // Replace `#` in plural rules with the actual numeric value.\n if (isPoundElement(el)) {\n if (typeof currentPluralValue === 'number') {\n result.push({\n type: PART_TYPE.literal,\n value: formatters.getNumberFormat(locales).format(currentPluralValue),\n });\n }\n continue;\n }\n var varName = el.value;\n // Enforce that all required values are provided by the caller.\n if (!(values && varName in values)) {\n throw new MissingValueError(varName, originalMessage);\n }\n var value = values[varName];\n if (isArgumentElement(el)) {\n if (!value || typeof value === 'string' || typeof value === 'number') {\n value =\n typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '';\n }\n result.push({\n type: typeof value === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: value,\n });\n continue;\n }\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (isDateElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.date[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTimeElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.time[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isNumberElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.number[el.style]\n : isNumberSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n if (style && style.scale) {\n value =\n value *\n (style.scale || 1);\n }\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getNumberFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTagElement(el)) {\n var children = el.children, value_1 = el.value;\n var formatFn = values[value_1];\n if (!isFormatXMLElementFn(formatFn)) {\n throw new InvalidValueTypeError(value_1, 'function', originalMessage);\n }\n var parts = formatToParts(children, locales, formatters, formats, values, currentPluralValue);\n var chunks = formatFn(parts.map(function (p) { return p.value; }));\n if (!Array.isArray(chunks)) {\n chunks = [chunks];\n }\n result.push.apply(result, chunks.map(function (c) {\n return {\n type: typeof c === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: c,\n };\n }));\n }\n if (isSelectElement(el)) {\n var opt = el.options[value] || el.options.other;\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values));\n continue;\n }\n if (isPluralElement(el)) {\n var opt = el.options[\"=\".concat(value)];\n if (!opt) {\n if (!Intl.PluralRules) {\n throw new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API, originalMessage);\n }\n var rule = formatters\n .getPluralRules(locales, { type: el.pluralType })\n .select(value - (el.offset || 0));\n opt = el.options[rule] || el.options.other;\n }\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0)));\n continue;\n }\n }\n return mergeLiteral(result);\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { __assign, __spreadArray } from \"tslib\";\nimport { parse } from '@formatjs/icu-messageformat-parser';\nimport memoize, { strategies } from '@formatjs/fast-memoize';\nimport { formatToParts, PART_TYPE, } from './formatters';\n// -- MessageFormat --------------------------------------------------------\nfunction mergeConfig(c1, c2) {\n if (!c2) {\n return c1;\n }\n return __assign(__assign(__assign({}, (c1 || {})), (c2 || {})), Object.keys(c1).reduce(function (all, k) {\n all[k] = __assign(__assign({}, c1[k]), (c2[k] || {}));\n return all;\n }, {}));\n}\nfunction mergeConfigs(defaultConfig, configs) {\n if (!configs) {\n return defaultConfig;\n }\n return Object.keys(defaultConfig).reduce(function (all, k) {\n all[k] = mergeConfig(defaultConfig[k], configs[k]);\n return all;\n }, __assign({}, defaultConfig));\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\nfunction createDefaultFormatters(cache) {\n if (cache === void 0) { cache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n }; }\n return {\n getNumberFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n }),\n getDateTimeFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n }),\n };\n}\nvar IntlMessageFormat = /** @class */ (function () {\n function IntlMessageFormat(message, locales, overrideFormats, opts) {\n var _this = this;\n if (locales === void 0) { locales = IntlMessageFormat.defaultLocale; }\n this.formatterCache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n };\n this.format = function (values) {\n var parts = _this.formatToParts(values);\n // Hot path for straight simple msg translations\n if (parts.length === 1) {\n return parts[0].value;\n }\n var result = parts.reduce(function (all, part) {\n if (!all.length ||\n part.type !== PART_TYPE.literal ||\n typeof all[all.length - 1] !== 'string') {\n all.push(part.value);\n }\n else {\n all[all.length - 1] += part.value;\n }\n return all;\n }, []);\n if (result.length <= 1) {\n return result[0] || '';\n }\n return result;\n };\n this.formatToParts = function (values) {\n return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n };\n this.resolvedOptions = function () { return ({\n locale: Intl.NumberFormat.supportedLocalesOf(_this.locales)[0],\n }); };\n this.getAst = function () { return _this.ast; };\n if (typeof message === 'string') {\n this.message = message;\n if (!IntlMessageFormat.__parse) {\n throw new TypeError('IntlMessageFormat.__parse must be set to process `message` of type `string`');\n }\n // Parse string messages into an AST.\n this.ast = IntlMessageFormat.__parse(message, {\n ignoreTag: opts === null || opts === void 0 ? void 0 : opts.ignoreTag,\n });\n }\n else {\n this.ast = message;\n }\n if (!Array.isArray(this.ast)) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n this.formats = mergeConfigs(IntlMessageFormat.formats, overrideFormats);\n // Defined first because it's used to build the format pattern.\n this.locales = locales;\n this.formatters =\n (opts && opts.formatters) || createDefaultFormatters(this.formatterCache);\n }\n Object.defineProperty(IntlMessageFormat, \"defaultLocale\", {\n get: function () {\n if (!IntlMessageFormat.memoizedDefaultLocale) {\n IntlMessageFormat.memoizedDefaultLocale =\n new Intl.NumberFormat().resolvedOptions().locale;\n }\n return IntlMessageFormat.memoizedDefaultLocale;\n },\n enumerable: false,\n configurable: true\n });\n IntlMessageFormat.memoizedDefaultLocale = null;\n IntlMessageFormat.__parse = parse;\n // Default format options used as the prototype of the `formats` provided to the\n // constructor. These are used when constructing the internal Intl.NumberFormat\n // and Intl.DateTimeFormat instances.\n IntlMessageFormat.formats = {\n number: {\n integer: {\n maximumFractionDigits: 0,\n },\n currency: {\n style: 'currency',\n },\n percent: {\n style: 'percent',\n },\n },\n date: {\n short: {\n month: 'numeric',\n day: 'numeric',\n year: '2-digit',\n },\n medium: {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n },\n long: {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n full: {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n },\n time: {\n short: {\n hour: 'numeric',\n minute: 'numeric',\n },\n medium: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n },\n long: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n full: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n },\n };\n return IntlMessageFormat;\n}());\nexport { IntlMessageFormat };\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { IntlMessageFormat } from './src/core';\nexport * from './src/formatters';\nexport * from './src/core';\nexport * from './src/error';\nexport default IntlMessageFormat;\n","import{writable as e,derived as n}from\"svelte/store\";import t from\"deepmerge\";import o from\"intl-messageformat\";const r={},i=(e,n,t)=>t?(n in r||(r[n]={}),e in r[n]||(r[n][e]=t),t):t,l=(e,n)=>{if(null==n)return;if(n in r&&e in r[n])return r[n][e];const t=E(n);for(let o=0;o0){const n=t.slice(e,t.length).join(\".\");if(n in o){o=o[n];break}}o=o[t[e]]}else o=void 0;return o}(function(e){return a[e]||null}(e),n)}function m(e,...n){delete r[e],s.update((o=>(o[e]=t.all([o[e]||{},...n]),o)))}const f=n([s],(([e])=>Object.keys(e)));s.subscribe((e=>a=e));const d={};function g(e){return d[e]}function w(e){return null!=e&&E(e).some((e=>{var n;return null===(n=g(e))||void 0===n?void 0:n.size}))}function h(e,n){return Promise.all(n.map((n=>(function(e,n){d[e].delete(n),0===d[e].size&&delete d[e]}(e,n),n().then((e=>e.default||e)))))).then((n=>m(e,...n)))}const p={};function b(e){if(!w(e))return e in p?p[e]:Promise.resolve();const n=function(e){return E(e).map((e=>{const n=g(e);return[e,n?[...n]:[]]})).filter((([,e])=>e.length>0))}(e);return p[e]=Promise.all(n.map((([e,n])=>h(e,n)))).then((()=>{if(w(e))return b(e);delete p[e]})),p[e]}function y(e,n){g(e)||function(e){d[e]=new Set}(e);const t=g(e);g(e).has(n)||(u(e)||s.update((n=>(n[e]={},n))),t.add(n))}\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */function v(e,n){var t={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&n.indexOf(o)<0&&(t[o]=e[o]);if(null!=e&&\"function\"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);rt.slice(0,n+1).join(\"-\"))).reverse()}function E(e,n=j().fallbackLocale){const t=x(e);return n?[...new Set([...t,...x(n)])]:t}function D(){return null!=L?L:void 0}T.subscribe((e=>{L=null!=e?e:void 0,\"undefined\"!=typeof window&&null!=e&&document.documentElement.setAttribute(\"lang\",e)}));const M=Object.assign(Object.assign({},T),{set:e=>{if(e&&function(e){if(null==e)return;const n=E(e);for(let e=0;ek.set(!0)),n):k.set(!0),b(e).then((()=>{T.set(e)})).finally((()=>{clearTimeout(t),k.set(!1)}))}return T.set(e)}}),P=(e,n)=>{const t=e.split(\"&\").find((e=>0===e.indexOf(`${n}=`)));return t?t.split(\"=\").pop():null},S=(e,n)=>{const t=n.exec(e);return t&&t[1]||null},N=e=>\"undefined\"==typeof window?null:S(window.location.hostname,e),A=e=>\"undefined\"==typeof window?null:S(window.location.pathname,e),I=()=>\"undefined\"==typeof window?null:window.navigator.language||window.navigator.languages[0],F=e=>\"undefined\"==typeof window?null:P(window.location.search.substr(1),e),z=e=>\"undefined\"==typeof window?null:P(window.location.hash.substr(1),e),Z=e=>{const n=Object.create(null);return t=>{const o=JSON.stringify(t);return o in n?n[o]:n[o]=e(t)}},C=(e,n)=>{const{formats:t}=j();if(e in t&&n in t[e])return t[e][n];throw new Error(`[svelte-i18n] Unknown \"${n}\" ${e} format.`)},G=Z((e=>{var{locale:n,format:t}=e,o=v(e,[\"locale\",\"format\"]);if(null==n)throw new Error('[svelte-i18n] A \"locale\" must be set to format numbers');return t&&(o=C(\"number\",t)),new Intl.NumberFormat(n,o)})),J=Z((e=>{var{locale:n,format:t}=e,o=v(e,[\"locale\",\"format\"]);if(null==n)throw new Error('[svelte-i18n] A \"locale\" must be set to format dates');return t?o=C(\"date\",t):0===Object.keys(o).length&&(o=C(\"date\",\"short\")),new Intl.DateTimeFormat(n,o)})),U=Z((e=>{var{locale:n,format:t}=e,o=v(e,[\"locale\",\"format\"]);if(null==n)throw new Error('[svelte-i18n] A \"locale\" must be set to format time values');return t?o=C(\"time\",t):0===Object.keys(o).length&&(o=C(\"time\",\"short\")),new Intl.DateTimeFormat(n,o)})),_=(e={})=>{var{locale:n=D()}=e,t=v(e,[\"locale\"]);return G(Object.assign({locale:n},t))},q=(e={})=>{var{locale:n=D()}=e,t=v(e,[\"locale\"]);return J(Object.assign({locale:n},t))},B=(e={})=>{var{locale:n=D()}=e,t=v(e,[\"locale\"]);return U(Object.assign({locale:n},t))},H=Z(((e,n=D())=>new o(e,n,j().formats,{ignoreTag:j().ignoreTag}))),K=(e,n={})=>{let t=n;\"object\"==typeof e&&(t=e,e=t.id);const{values:o,locale:r=D(),default:i}=t;if(null==r)throw new Error(\"[svelte-i18n] Cannot format a message without first setting the initial locale.\");let a=l(e,r);if(a){if(\"string\"!=typeof a)return console.warn(`[svelte-i18n] Message with id \"${e}\" must be of type \"string\", found: \"${typeof a}\". Gettin its value through the \"$format\" method is deprecated; use the \"json\" method instead.`),a}else j().warnOnMissingMessages&&console.warn(`[svelte-i18n] The message \"${e}\" was not found in \"${E(r).join('\", \"')}\".${w(D())?\"\\n\\nNote: there are at least one loader still registered to this locale that wasn't executed.\":\"\"}`),a=null!=i?i:e;if(!o)return a;let s=a;try{s=H(a,r).format(o)}catch(n){console.warn(`[svelte-i18n] Message \"${e}\" has syntax error:`,n.message)}return s},Q=(e,n)=>B(n).format(e),R=(e,n)=>q(n).format(e),V=(e,n)=>_(n).format(e),W=(e,n=D())=>l(e,n),X=n([M,s],(()=>K)),Y=n([M],(()=>Q)),ee=n([M],(()=>R)),ne=n([M],(()=>V)),te=n([M,s],(()=>W));function oe(e){return e}function re(e){return b(e||D()||j().initialLocale)}export{X as _,m as addMessages,ee as date,oe as defineMessages,s as dictionary,X as format,q as getDateFormatter,z as getLocaleFromHash,N as getLocaleFromHostname,I as getLocaleFromNavigator,A as getLocaleFromPathname,F as getLocaleFromQueryString,H as getMessageFormatter,_ as getNumberFormatter,B as getTimeFormatter,$ as init,k as isLoading,te as json,M as locale,f as locales,ne as number,y as register,X as t,Y as time,re as waitLocale};\n","export const component_map = {\n\taccordion: () => import(\"./Accordion\"),\n\taudio: () => import(\"./Audio\"),\n\tbox: () => import(\"./Box\"),\n\tbutton: () => import(\"./Button\"),\n\tcarousel: () => import(\"./Carousel\"),\n\tcarouselitem: () => import(\"./CarouselItem\"),\n\tchatbot: () => import(\"./Chatbot\"),\n\tcheckbox: () => import(\"./Checkbox\"),\n\tcheckboxgroup: () => import(\"./CheckboxGroup\"),\n\tcolorpicker: () => import(\"./ColorPicker\"),\n\tcolumn: () => import(\"./Column\"),\n\tdataframe: () => import(\"./DataFrame\"),\n\tdataset: () => import(\"./Dataset\"),\n\tdropdown: () => import(\"./Dropdown\"),\n\tfile: () => import(\"./File\"),\n\tform: () => import(\"./Form\"),\n\tgallery: () => import(\"./Gallery\"),\n\tgroup: () => import(\"./Group\"),\n\thighlightedtext: () => import(\"./HighlightedText\"),\n\thtml: () => import(\"./HTML\"),\n\timage: () => import(\"./Image\"),\n\tinterpretation: () => import(\"./Interpretation\"),\n\tjson: () => import(\"./Json\"),\n\tlabel: () => import(\"./Label\"),\n\tmarkdown: () => import(\"./Markdown\"),\n\tmodel3d: () => import(\"./Model3D\"),\n\tnumber: () => import(\"./Number\"),\n\tplot: () => import(\"./Plot\"),\n\tradio: () => import(\"./Radio\"),\n\trow: () => import(\"./Row\"),\n\tslider: () => import(\"./Slider\"),\n\tstate: () => import(\"./State\"),\n\tstatustracker: () => import(\"./StatusTracker\"),\n\ttabs: () => import(\"./Tabs\"),\n\ttabitem: () => import(\"./TabItem\"),\n\ttextbox: () => import(\"./Textbox\"),\n\ttimeseries: () => import(\"./TimeSeries\"),\n\tuploadbutton: () => import(\"./UploadButton\"),\n\tvideo: () => import(\"./Video\")\n};\n","import { writable } from \"svelte/store\";\n\nexport interface LoadingStatus {\n\teta: number | null;\n\tstatus: \"pending\" | \"error\" | \"complete\" | \"generating\";\n\tqueue: boolean;\n\tqueue_position: number | null;\n\tqueue_size: number | null;\n\tfn_index: number;\n\tmessage?: string | null;\n\tscroll_to_output?: boolean;\n\tvisible?: boolean;\n}\n\nexport type LoadingStatusCollection = Record;\n\nexport function create_loading_status_store() {\n\tconst store = writable({});\n\n\tconst fn_inputs: Array> = [];\n\tconst fn_outputs: Array> = [];\n\tconst pending_outputs = new Map();\n\tconst pending_inputs = new Map();\n\n\tconst inputs_to_update = new Map();\n\tconst fn_status: Array = [];\n\n\tfunction update(\n\t\tfn_index: LoadingStatus[\"fn_index\"],\n\t\tstatus: LoadingStatus[\"status\"],\n\t\tqueue: LoadingStatus[\"queue\"],\n\t\tsize: LoadingStatus[\"queue_size\"],\n\t\tposition: LoadingStatus[\"queue_position\"],\n\t\teta: LoadingStatus[\"eta\"],\n\t\tmessage: LoadingStatus[\"message\"]\n\t) {\n\t\tconst outputs = fn_outputs[fn_index];\n\t\tconst inputs = fn_inputs[fn_index];\n\t\tconst last_status = fn_status[fn_index];\n\n\t\tconst outputs_to_update = outputs.map((id) => {\n\t\t\tlet new_status: LoadingStatus[\"status\"];\n\n\t\t\tconst pending_count = pending_outputs.get(id) || 0;\n\n\t\t\t// from (pending -> error) | complete - decrement pending count\n\t\t\tif (last_status === \"pending\" && status !== \"pending\") {\n\t\t\t\tlet new_count = pending_count - 1;\n\n\t\t\t\tpending_outputs.set(id, new_count < 0 ? 0 : new_count);\n\n\t\t\t\tnew_status = new_count > 0 ? \"pending\" : status;\n\n\t\t\t\t// from pending -> pending - do nothing\n\t\t\t} else if (last_status === \"pending\" && status === \"pending\") {\n\t\t\t\tnew_status = \"pending\";\n\n\t\t\t\t// (error | complete) -> pending - - increment pending count\n\t\t\t} else if (last_status !== \"pending\" && status === \"pending\") {\n\t\t\t\tnew_status = \"pending\";\n\t\t\t\tpending_outputs.set(id, pending_count + 1);\n\t\t\t} else {\n\t\t\t\tnew_status = status;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tid,\n\t\t\t\tqueue_position: position,\n\t\t\t\tqueue_size: size,\n\t\t\t\teta: eta,\n\t\t\t\tstatus: new_status,\n\t\t\t\tmessage: message\n\t\t\t};\n\t\t});\n\n\t\tinputs.map((id) => {\n\t\t\tconst pending_count = pending_inputs.get(id) || 0;\n\n\t\t\t// from (pending -> error) | complete - decrement pending count\n\t\t\tif (last_status === \"pending\" && status !== \"pending\") {\n\t\t\t\tlet new_count = pending_count - 1;\n\t\t\t\tpending_inputs.set(id, new_count < 0 ? 0 : new_count);\n\t\t\t\tinputs_to_update.set(id, status);\n\t\t\t} else if (last_status !== \"pending\" && status === \"pending\") {\n\t\t\t\tpending_inputs.set(id, pending_count + 1);\n\t\t\t\tinputs_to_update.set(id, status);\n\t\t\t} else {\n\t\t\t\tinputs_to_update.delete(id);\n\t\t\t}\n\t\t});\n\n\t\tstore.update((outputs) => {\n\t\t\toutputs_to_update.forEach(\n\t\t\t\t({ id, queue_position, queue_size, eta, status, message }) => {\n\t\t\t\t\toutputs[id] = {\n\t\t\t\t\t\tqueue: queue,\n\t\t\t\t\t\tqueue_size: queue_size,\n\t\t\t\t\t\tqueue_position: queue_position,\n\t\t\t\t\t\teta: eta,\n\t\t\t\t\t\tmessage,\n\t\t\t\t\t\tstatus,\n\t\t\t\t\t\tfn_index\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t);\n\n\t\t\treturn outputs;\n\t\t});\n\n\t\tfn_status[fn_index] = status;\n\t}\n\n\tfunction register(\n\t\tindex: number,\n\t\tinputs: Array,\n\t\toutputs: Array\n\t) {\n\t\tfn_inputs[index] = inputs;\n\t\tfn_outputs[index] = outputs;\n\t}\n\n\treturn {\n\t\tupdate,\n\t\tregister,\n\t\tsubscribe: store.subscribe,\n\t\tget_status_for_fn(i: number) {\n\t\t\treturn fn_status[i];\n\t\t},\n\t\tget_inputs_to_update() {\n\t\t\treturn inputs_to_update;\n\t\t}\n\t};\n}\n\nexport type LoadingStatusType = ReturnType;\nexport const app_state = writable({ autoscroll: false });\n","/// \n\nimport { addMessages, init, getLocaleFromNavigator } from \"svelte-i18n\";\n\nconst langs = import.meta.globEager(\"./lang/*.json\");\n\nexport function process_langs() {\n\tlet _langs: Record<\n\t\tstring,\n\t\t{\n\t\t\t[key: string]: any;\n\t\t}\n\t> = {};\n\n\tfor (const lang in langs) {\n\t\tconst code = (lang.split(\"/\").pop() as string).split(\".\").shift() as string;\n\t\t_langs[code] = langs[lang].default;\n\t}\n\n\treturn _langs;\n}\n\nconst processed_langs = process_langs();\n\nfor (const lang in processed_langs) {\n\taddMessages(lang, processed_langs[lang]);\n}\n\nexport function setupi18n() {\n\tinit({\n\t\tfallbackLocale: \"en\",\n\t\tinitialLocale: getLocaleFromNavigator()\n\t});\n}\n","\n\n\n\t{#if children && children.length}\n\t\t{#each children as { component, id: each_id, props, children: _children, has_modes } (each_id)}\n\t\t\t\n\t\t{/each}\n\t{/if}\n\n","import { get } from \"svelte/store\";\nimport type { LoadingStatusType } from \"./stores\";\n\ntype StatusResponse =\n\t| {\n\t\t\tstatus: \"COMPLETE\";\n\t\t\tdata: {\n\t\t\t\tduration: number;\n\t\t\t\taverage_duration: number;\n\t\t\t\tdata: Array;\n\t\t\t};\n\t }\n\t| {\n\t\t\tstatus: \"QUEUED\";\n\t\t\tdata: number;\n\t }\n\t| {\n\t\t\tstatus: \"PENDING\";\n\t\t\tdata: null;\n\t }\n\t| {\n\t\t\tstatus: \"FAILED\";\n\t\t\tdata: Record;\n\t };\n\ninterface Payload {\n\tdata: Array;\n\tfn_index: number;\n\tsession_hash?: string;\n}\n\ndeclare let BUILD_MODE: string;\ndeclare let BACKEND_URL: string;\n\ninterface PostResponse {\n\terror?: string;\n\t[x: string]: any;\n}\nconst QUEUE_FULL_MSG = \"This application is too busy. Keep trying!\";\nconst BROKEN_CONNECTION_MSG = \"Connection errored out.\";\n\nexport async function post_data(\n\turl: string,\n\tbody: unknown\n): Promise<[PostResponse, number]> {\n\ttry {\n\t\tvar response = await fetch(url, {\n\t\t\tmethod: \"POST\",\n\t\t\tbody: JSON.stringify(body),\n\t\t\theaders: { \"Content-Type\": \"application/json\" }\n\t\t});\n\t} catch (e) {\n\t\treturn [{ error: BROKEN_CONNECTION_MSG }, 500];\n\t}\n\tconst output: PostResponse = await response.json();\n\treturn [output, response.status];\n}\ninterface UpdateOutput {\n\t__type__: string;\n\t[key: string]: unknown;\n}\n\ntype Output = {\n\tdata: Array;\n\tduration?: number;\n\taverage_duration?: number;\n};\n\nconst ws_map = new Map();\nexport const fn =\n\t(\n\t\tsession_hash: string,\n\t\tapi_endpoint: string,\n\t\tis_space: boolean,\n\t\tis_embed: boolean\n\t) =>\n\tasync ({\n\t\taction,\n\t\tpayload,\n\t\tqueue,\n\t\tbackend_fn,\n\t\tfrontend_fn,\n\t\toutput_data,\n\t\tqueue_callback,\n\t\tloading_status,\n\t\tcancels\n\t}: {\n\t\taction: string;\n\t\tpayload: Payload;\n\t\tqueue: boolean;\n\t\tbackend_fn: boolean;\n\t\tfrontend_fn: Function | undefined;\n\t\toutput_data?: Output[\"data\"];\n\t\tqueue_callback: Function;\n\t\tloading_status: LoadingStatusType;\n\t\tcancels: Array;\n\t}): Promise => {\n\t\tconst fn_index = payload.fn_index;\n\n\t\tpayload.session_hash = session_hash;\n\t\tif (frontend_fn !== undefined) {\n\t\t\tpayload.data = await frontend_fn(payload.data.concat(output_data));\n\t\t}\n\t\tif (backend_fn == false) {\n\t\t\treturn payload;\n\t\t}\n\n\t\tif (queue && [\"predict\", \"interpret\"].includes(action)) {\n\t\t\tloading_status.update(\n\t\t\t\tfn_index as number,\n\t\t\t\t\"pending\",\n\t\t\t\tqueue,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\n\t\t\tfunction send_message(fn: number, data: any) {\n\t\t\t\tws_map.get(fn)?.send(JSON.stringify(data));\n\t\t\t}\n\n\t\t\tlet WS_ENDPOINT = \"\";\n\n\t\t\tif (is_embed) {\n\t\t\t\tWS_ENDPOINT = `wss://${new URL(api_endpoint).host}/queue/join`;\n\t\t\t} else {\n\t\t\t\tvar ws_endpoint =\n\t\t\t\t\tapi_endpoint === \"run/\" ? location.href : api_endpoint;\n\t\t\t\tvar ws_protocol = ws_endpoint.startsWith(\"https\") ? \"wss:\" : \"ws:\";\n\t\t\t\tvar ws_path = location.pathname === \"/\" ? \"/\" : location.pathname;\n\t\t\t\tvar ws_host =\n\t\t\t\t\tBUILD_MODE === \"dev\" || location.origin === \"http://localhost:3000\"\n\t\t\t\t\t\t? BACKEND_URL.replace(\"http://\", \"\").slice(0, -1)\n\t\t\t\t\t\t: location.host;\n\t\t\t\tWS_ENDPOINT = `${ws_protocol}//${ws_host}${ws_path}queue/join`;\n\t\t\t}\n\n\t\t\tvar websocket = new WebSocket(WS_ENDPOINT);\n\t\t\tws_map.set(fn_index, websocket);\n\n\t\t\twebsocket.onclose = (evt) => {\n\t\t\t\tif (!evt.wasClean) {\n\t\t\t\t\tloading_status.update(\n\t\t\t\t\t\tfn_index,\n\t\t\t\t\t\t\"error\",\n\t\t\t\t\t\tqueue,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tnull,\n\t\t\t\t\t\tBROKEN_CONNECTION_MSG\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\twebsocket.onmessage = async function (event) {\n\t\t\t\tconst data = JSON.parse(event.data);\n\n\t\t\t\tswitch (data.msg) {\n\t\t\t\t\tcase \"send_data\":\n\t\t\t\t\t\tsend_message(fn_index, payload);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"send_hash\":\n\t\t\t\t\t\tws_map.get(fn_index)?.send(\n\t\t\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\t\t\tsession_hash: session_hash,\n\t\t\t\t\t\t\t\tfn_index: fn_index\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"queue_full\":\n\t\t\t\t\t\tloading_status.update(\n\t\t\t\t\t\t\tfn_index,\n\t\t\t\t\t\t\t\"error\",\n\t\t\t\t\t\t\tqueue,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tQUEUE_FULL_MSG\n\t\t\t\t\t\t);\n\t\t\t\t\t\twebsocket.close();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase \"estimation\":\n\t\t\t\t\t\tloading_status.update(\n\t\t\t\t\t\t\tfn_index,\n\t\t\t\t\t\t\tget(loading_status)[data.fn_index]?.status || \"pending\",\n\t\t\t\t\t\t\tqueue,\n\t\t\t\t\t\t\tdata.queue_size,\n\t\t\t\t\t\t\tdata.rank,\n\t\t\t\t\t\t\tdata.rank_eta,\n\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"process_generating\":\n\t\t\t\t\t\tloading_status.update(\n\t\t\t\t\t\t\tfn_index,\n\t\t\t\t\t\t\tdata.success ? \"generating\" : \"error\",\n\t\t\t\t\t\t\tqueue,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tdata.output.average_duration,\n\t\t\t\t\t\t\t!data.success ? data.output.error : null\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (data.success) {\n\t\t\t\t\t\t\tqueue_callback(data.output);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"process_completed\":\n\t\t\t\t\t\tloading_status.update(\n\t\t\t\t\t\t\tfn_index,\n\t\t\t\t\t\t\tdata.success ? \"complete\" : \"error\",\n\t\t\t\t\t\t\tqueue,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tdata.output.average_duration,\n\t\t\t\t\t\t\t!data.success ? data.output.error : null\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (data.success) {\n\t\t\t\t\t\t\tqueue_callback(data.output);\n\t\t\t\t\t\t}\n\t\t\t\t\t\twebsocket.close();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase \"process_starts\":\n\t\t\t\t\t\tloading_status.update(\n\t\t\t\t\t\t\tfn_index,\n\t\t\t\t\t\t\t\"pending\",\n\t\t\t\t\t\t\tqueue,\n\t\t\t\t\t\t\tdata.rank,\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t};\n\t\t} else {\n\t\t\tloading_status.update(\n\t\t\t\tfn_index as number,\n\t\t\t\t\"pending\",\n\t\t\t\tqueue,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\n\t\t\tvar [output, status_code] = await post_data(api_endpoint + action + \"/\", {\n\t\t\t\t...payload,\n\t\t\t\tsession_hash\n\t\t\t});\n\t\t\tif (status_code == 200) {\n\t\t\t\tloading_status.update(\n\t\t\t\t\tfn_index,\n\t\t\t\t\t\"complete\",\n\t\t\t\t\tqueue,\n\t\t\t\t\tnull,\n\t\t\t\t\tnull,\n\t\t\t\t\toutput.average_duration as number,\n\t\t\t\t\tnull\n\t\t\t\t);\n\t\t\t\t// Cancelled jobs are set to complete\n\t\t\t\tif (cancels.length > 0) {\n\t\t\t\t\tcancels.forEach((fn_index) => {\n\t\t\t\t\t\tloading_status.update(\n\t\t\t\t\t\t\tfn_index,\n\t\t\t\t\t\t\t\"complete\",\n\t\t\t\t\t\t\tqueue,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t);\n\t\t\t\t\t\tws_map.get(fn_index)?.close();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tloading_status.update(\n\t\t\t\t\tfn_index,\n\t\t\t\t\t\"error\",\n\t\t\t\t\tqueue,\n\t\t\t\t\tnull,\n\t\t\t\t\tnull,\n\t\t\t\t\tnull,\n\t\t\t\t\toutput.error\n\t\t\t\t);\n\t\t\t\tthrow output.error || \"API Error\";\n\t\t\t}\n\t\t\treturn output;\n\t\t}\n\t};\n","import { writable } from '../store/index.mjs';\nimport { now, loop, assign } from '../internal/index.mjs';\nimport { linear } from '../easing/index.mjs';\n\nfunction is_date(obj) {\n return Object.prototype.toString.call(obj) === '[object Date]';\n}\n\nfunction tick_spring(ctx, last_value, current_value, target_value) {\n if (typeof current_value === 'number' || is_date(current_value)) {\n // @ts-ignore\n const delta = target_value - current_value;\n // @ts-ignore\n const velocity = (current_value - last_value) / (ctx.dt || 1 / 60); // guard div by 0\n const spring = ctx.opts.stiffness * delta;\n const damper = ctx.opts.damping * velocity;\n const acceleration = (spring - damper) * ctx.inv_mass;\n const d = (velocity + acceleration) * ctx.dt;\n if (Math.abs(d) < ctx.opts.precision && Math.abs(delta) < ctx.opts.precision) {\n return target_value; // settled\n }\n else {\n ctx.settled = false; // signal loop to keep ticking\n // @ts-ignore\n return is_date(current_value) ?\n new Date(current_value.getTime() + d) : current_value + d;\n }\n }\n else if (Array.isArray(current_value)) {\n // @ts-ignore\n return current_value.map((_, i) => tick_spring(ctx, last_value[i], current_value[i], target_value[i]));\n }\n else if (typeof current_value === 'object') {\n const next_value = {};\n for (const k in current_value) {\n // @ts-ignore\n next_value[k] = tick_spring(ctx, last_value[k], current_value[k], target_value[k]);\n }\n // @ts-ignore\n return next_value;\n }\n else {\n throw new Error(`Cannot spring ${typeof current_value} values`);\n }\n}\nfunction spring(value, opts = {}) {\n const store = writable(value);\n const { stiffness = 0.15, damping = 0.8, precision = 0.01 } = opts;\n let last_time;\n let task;\n let current_token;\n let last_value = value;\n let target_value = value;\n let inv_mass = 1;\n let inv_mass_recovery_rate = 0;\n let cancel_task = false;\n function set(new_value, opts = {}) {\n target_value = new_value;\n const token = current_token = {};\n if (value == null || opts.hard || (spring.stiffness >= 1 && spring.damping >= 1)) {\n cancel_task = true; // cancel any running animation\n last_time = now();\n last_value = new_value;\n store.set(value = target_value);\n return Promise.resolve();\n }\n else if (opts.soft) {\n const rate = opts.soft === true ? .5 : +opts.soft;\n inv_mass_recovery_rate = 1 / (rate * 60);\n inv_mass = 0; // infinite mass, unaffected by spring forces\n }\n if (!task) {\n last_time = now();\n cancel_task = false;\n task = loop(now => {\n if (cancel_task) {\n cancel_task = false;\n task = null;\n return false;\n }\n inv_mass = Math.min(inv_mass + inv_mass_recovery_rate, 1);\n const ctx = {\n inv_mass,\n opts: spring,\n settled: true,\n dt: (now - last_time) * 60 / 1000\n };\n const next_value = tick_spring(ctx, last_value, value, target_value);\n last_time = now;\n last_value = value;\n store.set(value = next_value);\n if (ctx.settled) {\n task = null;\n }\n return !ctx.settled;\n });\n }\n return new Promise(fulfil => {\n task.promise.then(() => {\n if (token === current_token)\n fulfil();\n });\n });\n }\n const spring = {\n set,\n update: (fn, opts) => set(fn(target_value, value), opts),\n subscribe: store.subscribe,\n stiffness,\n damping,\n precision\n };\n return spring;\n}\n\nfunction get_interpolator(a, b) {\n if (a === b || a !== a)\n return () => a;\n const type = typeof a;\n if (type !== typeof b || Array.isArray(a) !== Array.isArray(b)) {\n throw new Error('Cannot interpolate values of different type');\n }\n if (Array.isArray(a)) {\n const arr = b.map((bi, i) => {\n return get_interpolator(a[i], bi);\n });\n return t => arr.map(fn => fn(t));\n }\n if (type === 'object') {\n if (!a || !b)\n throw new Error('Object cannot be null');\n if (is_date(a) && is_date(b)) {\n a = a.getTime();\n b = b.getTime();\n const delta = b - a;\n return t => new Date(a + t * delta);\n }\n const keys = Object.keys(b);\n const interpolators = {};\n keys.forEach(key => {\n interpolators[key] = get_interpolator(a[key], b[key]);\n });\n return t => {\n const result = {};\n keys.forEach(key => {\n result[key] = interpolators[key](t);\n });\n return result;\n };\n }\n if (type === 'number') {\n const delta = b - a;\n return t => a + t * delta;\n }\n throw new Error(`Cannot interpolate ${type} values`);\n}\nfunction tweened(value, defaults = {}) {\n const store = writable(value);\n let task;\n let target_value = value;\n function set(new_value, opts) {\n if (value == null) {\n store.set(value = new_value);\n return Promise.resolve();\n }\n target_value = new_value;\n let previous_task = task;\n let started = false;\n let { delay = 0, duration = 400, easing = linear, interpolate = get_interpolator } = assign(assign({}, defaults), opts);\n if (duration === 0) {\n if (previous_task) {\n previous_task.abort();\n previous_task = null;\n }\n store.set(value = target_value);\n return Promise.resolve();\n }\n const start = now() + delay;\n let fn;\n task = loop(now => {\n if (now < start)\n return true;\n if (!started) {\n fn = interpolate(value, new_value);\n if (typeof duration === 'function')\n duration = duration(value, new_value);\n started = true;\n }\n if (previous_task) {\n previous_task.abort();\n previous_task = null;\n }\n const elapsed = now - start;\n if (elapsed > duration) {\n store.set(value = new_value);\n return false;\n }\n // @ts-ignore\n store.set(value = fn(easing(elapsed / duration)));\n return true;\n });\n return task.promise;\n }\n return {\n set,\n update: (fn, opts) => set(fn(target_value, value), opts),\n subscribe: store.subscribe\n };\n}\n\nexport { spring, tweened };\n","\n\n
    \n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n
    \n","export default \"https://gradio.s3-us-west-2.amazonaws.com/3.14.0/static/img/api-logo.svg\"","export default \"https://gradio.s3-us-west-2.amazonaws.com/3.14.0/static/img/clear.svg\"","export default \"https://gradio.s3-us-west-2.amazonaws.com/3.14.0/static/img/python.svg\"","export default \"https://gradio.s3-us-west-2.amazonaws.com/3.14.0/static/img/javascript.svg\"","\n\n{#if active_api_count}\n\t\n\t\t

    \n\t\t\t\"\"\n\t\t\tAPI documentation for \n\t\t\t
    \n\t\t\t\t{root}\n\t\t\t
    \n\t\t\t dispatch(\"close\")}\n\t\t\t\t>\"\"\n\t\t

    \n\t\t{#if active_api_count > 1}\n\t\t\t
    \n\t\t\t\t{active_api_count} API endpoints:\n\t\t\t
    \n\t\t{/if}\n\t\n\t
    \n\t\t{#each dependencies as dependency, dependency_index}\n\t\t\t{#if dependency.api_name}\n\t\t\t\t\n\t\t\t\t\t

    \n\t\t\t\t\t\tPOST\n\t\t\t\t\t\t/run/{dependency.api_name}\n\t\t\t\t\t

    \n\t\t\t\t\t
    \n\t\t\t\t\t\tEndpoint: {root}run/{dependency.api_name}\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tnavigator.clipboard.writeText(\n\t\t\t\t\t\t\t\t\troot + \"run/\" + dependency.api_name\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tjust_copied = dependency_index;\n\t\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\t\tjust_copied = -1;\n\t\t\t\t\t\t\t\t}, 500);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{#if just_copied === dependency_index}copied!{:else}copy{/if}\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t

    \n\t\t\t\t\t\tInput Payload\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{
    \n\t\t\t\t\t\t  \"data\": [
    \n\t\t\t\t\t\t{#each dependency.inputs as component_id, component_index}\n\t\t\t\t\t\t\t    \n\t\t\t\t\t\t\t{#if dependency_failures[dependency_index][component_index]}\n\t\t\t\t\t\t\t\tERROR\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t: {instance_map[component_id].documentation?.type},\n\t\t\t\t\t\t\t// represents {instance_map[component_id].documentation\n\t\t\t\t\t\t\t\t\t?.description} of\n\t\t\t\t\t\t\t\t{((label) => {\n\t\t\t\t\t\t\t\t\treturn label ? \"'\" + label + \"'\" : \"the\";\n\t\t\t\t\t\t\t\t})(instance_map[component_id].props.label)}\n\n\t\t\t\t\t\t\t\t{instance_map[component_id].props.name} component\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t  ]
    \n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tTry It Out\n\t\t\t\t\t

    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tResponse Object\n\t\t\t\t\t

    \n\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{
    \n\t\t\t\t\t\t\t  \"data\": [
    \n\t\t\t\t\t\t\t{#each dependency.outputs as component_id, component_index}\n\t\t\t\t\t\t\t\t    {#if dependency_outputs[dependency_index][component_index] !== undefined}\n\t\t\t\t\t\t\t\t\t :\n\t\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{instance_map[component_id].documentation?.type},\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t// represents {instance_map[component_id].documentation\n\t\t\t\t\t\t\t\t\t\t?.description} of\n\t\t\t\t\t\t\t\t\t{((label) => {\n\t\t\t\t\t\t\t\t\t\treturn label ? \"'\" + label + \"'\" : \"the\";\n\t\t\t\t\t\t\t\t\t})(instance_map[component_id].props.label)}\n\n\t\t\t\t\t\t\t\t\t{instance_map[component_id].props.name} component\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{/each}\n\t\t\t\t\t\t\t    ],
    \n\t\t\t\t\t\t\t    \"duration\": (float)\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t// number of seconds to run function call
    \n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if isRunning}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\n\t\t\t\t\t

    \n\t\t\t\t\t\t\n\t\t\t\t\t\tCode snippets\n\t\t\t\t\t

    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{#each [[\"python\", python], [\"javascript\", javascript]] as [language, img]}\n\t\t\t\t\t\t\t (current_language = language)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t\t{language}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{#if current_language === \"python\"}\n\t\t\t\t\t\t\t
    import requests\n\nresponse = requests.post(\"{root + \"run/\" + dependency.api_name}\", json={\n  \"data\": [{#each dependency_inputs[dependency_index] as component_value, component_index}    {represent_value(\n\t\t\t\t\t\t\t\t\t\tcomponent_value,\n\t\t\t\t\t\t\t\t\t\tinstance_map[\n\t\t\t\t\t\t\t\t\t\t\tdependencies[dependency_index].inputs[component_index]\n\t\t\t\t\t\t\t\t\t\t].documentation?.type,\n\t\t\t\t\t\t\t\t\t\t\"py\"\n\t\t\t\t\t\t\t\t\t)},{/each}\n]}).json()\n\ndata = response[\"data\"]
    \n\t\t\t\t\t\t{:else if current_language === \"javascript\"}\n\t\t\t\t\t\t\t
    fetch(\"{root + \"run/\" + dependency.api_name}\", {\n  method: \"POST\",\n  headers: { \"Content-Type\": \"application/json\" },\n  body: JSON.stringify({\n    data: [{#each dependency_inputs[dependency_index] as component_value, component_index}      {represent_value(\n\t\t\t\t\t\t\t\t\t\tcomponent_value,\n\t\t\t\t\t\t\t\t\t\tinstance_map[\n\t\t\t\t\t\t\t\t\t\t\tdependencies[dependency_index].inputs[component_index]\n\t\t\t\t\t\t\t\t\t\t].documentation?.type,\n\t\t\t\t\t\t\t\t\t\t\"js\"\n\t\t\t\t\t\t\t\t\t)},{/each}\n\t]\n  })})\n.then(r => r.json())\n.then(\n  r => {\n    let data = r.data;\n  }\n)
    \n\t\t\t\t\t\t{:else if current_language === \"gradio client\"}\n\t\t\t\t\t\t\t
    Hello World
    \n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t{/if}\n\t\t{/each}\n\t\n{:else}\n\t
    \n\t\t

    \n\t\t\tNo named API Routes found for\n\t\t\t\n\t\t\t\t{root}\n\t\t\t\n\t\t\t dispatch(\"close\")}\n\t\t\t>\n\t\t\t\t\"\"\n\t\t\t\n\t\t

    \n\t\t
    \n\t\t\tTo expose an API endpoint of your app in this page, set the \n\t\t\t\tapi_name\n\t\t\t\n\t\t\tparameter of the event listener.
    For more information, visit the\n\t\t\tAPI Page guide. To hide the API documentation button and this page, set\n\t\t\t\n\t\t\t\tshow_api=False\n\t\t\t\n\t\t\tin the\n\t\t\t\n\t\t\t\tBlocks.launch() method.\n\t\t
    \n\t
    \n{/if}\n","export default \"__VITE_ASSET__0a070fcf__\"","\n\n\n\t{#if control_page_title}\n\t\t{title}\n\t{/if}\n\t{#if analytics_enabled}\n\t\t\n\t{/if}\n\n\n
    \n\t\n\t\t{#if ready}\n\t\t\t handle_destroy(detail)}\n\t\t\t/>\n\t\t{/if}\n\t
    \n\t\n\t\t{#if show_api}\n\t\t\t {\n\t\t\t\t\tset_api_docs_visible(!api_docs_visible);\n\t\t\t\t}}\n\t\t\t\tclass=\"flex items-center hover:text-gray-500\"\n\t\t\t>\n\t\t\t\tUse via API \"\"\n\t\t\t\n\t\t\t
    ·
    \n\t\t{/if}\n\t\t\n\t\t\tBuilt with Gradio\n\t\t\t\"logo\"\n\t\t\n\t\n\n\n{#if api_docs_visible && ready}\n\t
    \n\t\t {\n\t\t\t\tset_api_docs_visible(false);\n\t\t\t}}\n\t\t/>\n\t\t\n\t\t\t {\n\t\t\t\t\tset_api_docs_visible(false);\n\t\t\t\t}}\n\t\t\t\t{instance_map}\n\t\t\t\t{dependencies}\n\t\t\t\t{root}\n\t\t\t/>\n\t\t
    \n\t\n{/if}\n","\n\t\n\n","var x=String;\nvar create=function() {return {isColorSupported:false,reset:x,bold:x,dim:x,italic:x,underline:x,inverse:x,hidden:x,strikethrough:x,black:x,red:x,green:x,yellow:x,blue:x,magenta:x,cyan:x,white:x,gray:x,bgBlack:x,bgRed:x,bgGreen:x,bgYellow:x,bgBlue:x,bgMagenta:x,bgCyan:x,bgWhite:x}};\nmodule.exports=create();\nmodule.exports.createColors = create;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.dim = dim;\nexports.default = void 0;\nvar _picocolors = _interopRequireDefault(require(\"picocolors\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nlet alreadyShown = new Set();\nfunction log(type, messages, key) {\n if (typeof process !== \"undefined\" && process.env.JEST_WORKER_ID) return;\n if (key && alreadyShown.has(key)) return;\n if (key) alreadyShown.add(key);\n console.warn(\"\");\n messages.forEach((message)=>console.warn(type, \"-\", message));\n}\nfunction dim(input) {\n return _picocolors.default.dim(input);\n}\nvar _default = {\n info (key, messages) {\n log(_picocolors.default.bold(_picocolors.default.cyan(\"info\")), ...Array.isArray(key) ? [\n key\n ] : [\n messages,\n key\n ]);\n },\n warn (key, messages) {\n log(_picocolors.default.bold(_picocolors.default.yellow(\"warn\")), ...Array.isArray(key) ? [\n key\n ] : [\n messages,\n key\n ]);\n },\n risk (key, messages) {\n log(_picocolors.default.bold(_picocolors.default.magenta(\"risk\")), ...Array.isArray(key) ? [\n key\n ] : [\n messages,\n key\n ]);\n }\n};\nexports.default = _default;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _log = _interopRequireDefault(require(\"../util/log\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction warn({ version , from , to }) {\n _log.default.warn(`${from}-color-renamed`, [\n `As of Tailwind CSS ${version}, \\`${from}\\` has been renamed to \\`${to}\\`.`,\n \"Update your configuration file to silence this warning.\", \n ]);\n}\nvar _default = {\n inherit: \"inherit\",\n current: \"currentColor\",\n transparent: \"transparent\",\n black: \"#000\",\n white: \"#fff\",\n slate: {\n 50: \"#f8fafc\",\n 100: \"#f1f5f9\",\n 200: \"#e2e8f0\",\n 300: \"#cbd5e1\",\n 400: \"#94a3b8\",\n 500: \"#64748b\",\n 600: \"#475569\",\n 700: \"#334155\",\n 800: \"#1e293b\",\n 900: \"#0f172a\"\n },\n gray: {\n 50: \"#f9fafb\",\n 100: \"#f3f4f6\",\n 200: \"#e5e7eb\",\n 300: \"#d1d5db\",\n 400: \"#9ca3af\",\n 500: \"#6b7280\",\n 600: \"#4b5563\",\n 700: \"#374151\",\n 800: \"#1f2937\",\n 900: \"#111827\"\n },\n zinc: {\n 50: \"#fafafa\",\n 100: \"#f4f4f5\",\n 200: \"#e4e4e7\",\n 300: \"#d4d4d8\",\n 400: \"#a1a1aa\",\n 500: \"#71717a\",\n 600: \"#52525b\",\n 700: \"#3f3f46\",\n 800: \"#27272a\",\n 900: \"#18181b\"\n },\n neutral: {\n 50: \"#fafafa\",\n 100: \"#f5f5f5\",\n 200: \"#e5e5e5\",\n 300: \"#d4d4d4\",\n 400: \"#a3a3a3\",\n 500: \"#737373\",\n 600: \"#525252\",\n 700: \"#404040\",\n 800: \"#262626\",\n 900: \"#171717\"\n },\n stone: {\n 50: \"#fafaf9\",\n 100: \"#f5f5f4\",\n 200: \"#e7e5e4\",\n 300: \"#d6d3d1\",\n 400: \"#a8a29e\",\n 500: \"#78716c\",\n 600: \"#57534e\",\n 700: \"#44403c\",\n 800: \"#292524\",\n 900: \"#1c1917\"\n },\n red: {\n 50: \"#fef2f2\",\n 100: \"#fee2e2\",\n 200: \"#fecaca\",\n 300: \"#fca5a5\",\n 400: \"#f87171\",\n 500: \"#ef4444\",\n 600: \"#dc2626\",\n 700: \"#b91c1c\",\n 800: \"#991b1b\",\n 900: \"#7f1d1d\"\n },\n orange: {\n 50: \"#fff7ed\",\n 100: \"#ffedd5\",\n 200: \"#fed7aa\",\n 300: \"#fdba74\",\n 400: \"#fb923c\",\n 500: \"#f97316\",\n 600: \"#ea580c\",\n 700: \"#c2410c\",\n 800: \"#9a3412\",\n 900: \"#7c2d12\"\n },\n amber: {\n 50: \"#fffbeb\",\n 100: \"#fef3c7\",\n 200: \"#fde68a\",\n 300: \"#fcd34d\",\n 400: \"#fbbf24\",\n 500: \"#f59e0b\",\n 600: \"#d97706\",\n 700: \"#b45309\",\n 800: \"#92400e\",\n 900: \"#78350f\"\n },\n yellow: {\n 50: \"#fefce8\",\n 100: \"#fef9c3\",\n 200: \"#fef08a\",\n 300: \"#fde047\",\n 400: \"#facc15\",\n 500: \"#eab308\",\n 600: \"#ca8a04\",\n 700: \"#a16207\",\n 800: \"#854d0e\",\n 900: \"#713f12\"\n },\n lime: {\n 50: \"#f7fee7\",\n 100: \"#ecfccb\",\n 200: \"#d9f99d\",\n 300: \"#bef264\",\n 400: \"#a3e635\",\n 500: \"#84cc16\",\n 600: \"#65a30d\",\n 700: \"#4d7c0f\",\n 800: \"#3f6212\",\n 900: \"#365314\"\n },\n green: {\n 50: \"#f0fdf4\",\n 100: \"#dcfce7\",\n 200: \"#bbf7d0\",\n 300: \"#86efac\",\n 400: \"#4ade80\",\n 500: \"#22c55e\",\n 600: \"#16a34a\",\n 700: \"#15803d\",\n 800: \"#166534\",\n 900: \"#14532d\"\n },\n emerald: {\n 50: \"#ecfdf5\",\n 100: \"#d1fae5\",\n 200: \"#a7f3d0\",\n 300: \"#6ee7b7\",\n 400: \"#34d399\",\n 500: \"#10b981\",\n 600: \"#059669\",\n 700: \"#047857\",\n 800: \"#065f46\",\n 900: \"#064e3b\"\n },\n teal: {\n 50: \"#f0fdfa\",\n 100: \"#ccfbf1\",\n 200: \"#99f6e4\",\n 300: \"#5eead4\",\n 400: \"#2dd4bf\",\n 500: \"#14b8a6\",\n 600: \"#0d9488\",\n 700: \"#0f766e\",\n 800: \"#115e59\",\n 900: \"#134e4a\"\n },\n cyan: {\n 50: \"#ecfeff\",\n 100: \"#cffafe\",\n 200: \"#a5f3fc\",\n 300: \"#67e8f9\",\n 400: \"#22d3ee\",\n 500: \"#06b6d4\",\n 600: \"#0891b2\",\n 700: \"#0e7490\",\n 800: \"#155e75\",\n 900: \"#164e63\"\n },\n sky: {\n 50: \"#f0f9ff\",\n 100: \"#e0f2fe\",\n 200: \"#bae6fd\",\n 300: \"#7dd3fc\",\n 400: \"#38bdf8\",\n 500: \"#0ea5e9\",\n 600: \"#0284c7\",\n 700: \"#0369a1\",\n 800: \"#075985\",\n 900: \"#0c4a6e\"\n },\n blue: {\n 50: \"#eff6ff\",\n 100: \"#dbeafe\",\n 200: \"#bfdbfe\",\n 300: \"#93c5fd\",\n 400: \"#60a5fa\",\n 500: \"#3b82f6\",\n 600: \"#2563eb\",\n 700: \"#1d4ed8\",\n 800: \"#1e40af\",\n 900: \"#1e3a8a\"\n },\n indigo: {\n 50: \"#eef2ff\",\n 100: \"#e0e7ff\",\n 200: \"#c7d2fe\",\n 300: \"#a5b4fc\",\n 400: \"#818cf8\",\n 500: \"#6366f1\",\n 600: \"#4f46e5\",\n 700: \"#4338ca\",\n 800: \"#3730a3\",\n 900: \"#312e81\"\n },\n violet: {\n 50: \"#f5f3ff\",\n 100: \"#ede9fe\",\n 200: \"#ddd6fe\",\n 300: \"#c4b5fd\",\n 400: \"#a78bfa\",\n 500: \"#8b5cf6\",\n 600: \"#7c3aed\",\n 700: \"#6d28d9\",\n 800: \"#5b21b6\",\n 900: \"#4c1d95\"\n },\n purple: {\n 50: \"#faf5ff\",\n 100: \"#f3e8ff\",\n 200: \"#e9d5ff\",\n 300: \"#d8b4fe\",\n 400: \"#c084fc\",\n 500: \"#a855f7\",\n 600: \"#9333ea\",\n 700: \"#7e22ce\",\n 800: \"#6b21a8\",\n 900: \"#581c87\"\n },\n fuchsia: {\n 50: \"#fdf4ff\",\n 100: \"#fae8ff\",\n 200: \"#f5d0fe\",\n 300: \"#f0abfc\",\n 400: \"#e879f9\",\n 500: \"#d946ef\",\n 600: \"#c026d3\",\n 700: \"#a21caf\",\n 800: \"#86198f\",\n 900: \"#701a75\"\n },\n pink: {\n 50: \"#fdf2f8\",\n 100: \"#fce7f3\",\n 200: \"#fbcfe8\",\n 300: \"#f9a8d4\",\n 400: \"#f472b6\",\n 500: \"#ec4899\",\n 600: \"#db2777\",\n 700: \"#be185d\",\n 800: \"#9d174d\",\n 900: \"#831843\"\n },\n rose: {\n 50: \"#fff1f2\",\n 100: \"#ffe4e6\",\n 200: \"#fecdd3\",\n 300: \"#fda4af\",\n 400: \"#fb7185\",\n 500: \"#f43f5e\",\n 600: \"#e11d48\",\n 700: \"#be123c\",\n 800: \"#9f1239\",\n 900: \"#881337\"\n },\n get lightBlue () {\n warn({\n version: \"v2.2\",\n from: \"lightBlue\",\n to: \"sky\"\n });\n return this.sky;\n },\n get warmGray () {\n warn({\n version: \"v3.0\",\n from: \"warmGray\",\n to: \"stone\"\n });\n return this.stone;\n },\n get trueGray () {\n warn({\n version: \"v3.0\",\n from: \"trueGray\",\n to: \"neutral\"\n });\n return this.neutral;\n },\n get coolGray () {\n warn({\n version: \"v3.0\",\n from: \"coolGray\",\n to: \"gray\"\n });\n return this.gray;\n },\n get blueGray () {\n warn({\n version: \"v3.0\",\n from: \"blueGray\",\n to: \"slate\"\n });\n return this.slate;\n }\n};\nexports.default = _default;\n","let colors = require('./lib/public/colors')\nmodule.exports = (colors.__esModule ? colors : { default: colors }).default\n","import tw_colors from \"tailwindcss/colors\";\n\nexport const ordered_colors = [\n\t\"red\",\n\t\"green\",\n\t\"blue\",\n\t\"yellow\",\n\t\"purple\",\n\t\"teal\",\n\t\"orange\",\n\t\"cyan\",\n\t\"lime\",\n\t\"pink\"\n] as const;\ninterface ColorPair {\n\tprimary: string;\n\tsecondary: string;\n}\n\ninterface Colors {\n\tred: ColorPair;\n\tgreen: ColorPair;\n\tblue: ColorPair;\n\tyellow: ColorPair;\n\tpurple: ColorPair;\n\tteal: ColorPair;\n\torange: ColorPair;\n\tcyan: ColorPair;\n\tlime: ColorPair;\n\tpink: ColorPair;\n}\n\n// https://play.tailwindcss.com/ZubQYya0aN\nexport const color_values = [\n\t{ color: \"red\", primary: 600, secondary: 100 },\n\t{ color: \"green\", primary: 600, secondary: 100 },\n\t{ color: \"blue\", primary: 600, secondary: 100 },\n\t{ color: \"yellow\", primary: 500, secondary: 100 },\n\t{ color: \"purple\", primary: 600, secondary: 100 },\n\t{ color: \"teal\", primary: 600, secondary: 100 },\n\t{ color: \"orange\", primary: 600, secondary: 100 },\n\t{ color: \"cyan\", primary: 600, secondary: 100 },\n\t{ color: \"lime\", primary: 500, secondary: 100 },\n\t{ color: \"pink\", primary: 600, secondary: 100 }\n] as const;\n\nexport const colors = color_values.reduce(\n\t(acc, { color, primary, secondary }) => ({\n\t\t...acc,\n\t\t[color]: {\n\t\t\tprimary: tw_colors[color][primary],\n\t\t\tsecondary: tw_colors[color][secondary]\n\t\t}\n\t}),\n\t{} as Colors\n);\n","export interface Styles {\n\tcontainer?: boolean;\n\tgrid?: number | Array;\n\theight?: \"auto\" | string | number;\n\twidth?: \"auto\" | string | number;\n\tfull_width?: boolean;\n\tequal_height?: boolean;\n\tvisible?: boolean;\n\titem_container?: boolean;\n\tcolor_map?: Record;\n\tlabel_container?: boolean;\n\tgap?: boolean;\n}\n\ntype PartialRecord = {\n\t[P in K]?: T;\n};\n\ntype ProcessedStyles = PartialRecord & {\n\tclasses: string;\n};\n\nconst get_style = (styles: Styles, key: T) => {\n\treturn style_handlers[key](styles[key]!);\n};\n\nexport function get_styles(\n\tstyles: Styles,\n\tallowed_styles: Array\n): ProcessedStyles {\n\tconst processed_styles = allowed_styles.reduce((acc, next) => {\n\t\tif (styles[next] === undefined || !style_handlers[next]) acc[next] = \" \";\n\t\telse {\n\t\t\tacc[next] = ` ${get_style(styles, next)} `;\n\t\t}\n\t\treturn acc;\n\t}, {} as ProcessedStyles);\n\n\tprocessed_styles.classes = ` ${Object.values(processed_styles)\n\t\t.join(\" \")\n\t\t.replace(/\\s+/g, \" \")\n\t\t.trim()} `;\n\n\treturn processed_styles;\n}\n\ntype StyleHandlers = {\n\t[K in keyof Styles]: (style: Exclude) => string;\n};\n\nconst style_handlers: StyleHandlers = {\n\tcontainer(container_visible) {\n\t\treturn container_visible\n\t\t\t? \"\"\n\t\t\t: `!p-0 !m-0 !border-0 !shadow-none !overflow-visible !bg-transparent`;\n\t},\n\tlabel_container(visible) {\n\t\treturn visible\n\t\t\t? \"\"\n\t\t\t: `!border-0 !shadow-none !overflow-visible !bg-transparent`;\n\t},\n\tgrid(grid) {\n\t\tlet grid_map = [\"\", \"sm:\", \"md:\", \"lg:\", \"xl:\", \"2xl:\"];\n\t\tlet _grid = Array.isArray(grid) ? grid : [grid];\n\n\t\treturn [0, 0, 0, 0, 0, 0]\n\t\t\t.map(\n\t\t\t\t(_, i) =>\n\t\t\t\t\t`${grid_map[i]}grid-cols-${_grid?.[i] || _grid?.[_grid?.length - 1]}`\n\t\t\t)\n\t\t\t.join(\" \");\n\t},\n\theight(height) {\n\t\treturn height === \"auto\" ? \"auto\" : \"\";\n\t},\n\tfull_width(full_width) {\n\t\treturn full_width ? \"w-full grow\" : \"grow-0\";\n\t},\n\tequal_height(equal_height) {\n\t\treturn equal_height ? \"items-stretch\" : \"unequal-height\";\n\t},\n\tvisible(visible) {\n\t\treturn visible ? \"\" : \"!hidden\";\n\t},\n\titem_container(visible) {\n\t\treturn visible ? \"\" : \"!border-none\";\n\t}\n} as const;\n\nexport const create_classes = (\n\tstyles: Record,\n\tprefix: string = \"\"\n): string => {\n\tlet classes: Array = [];\n\tlet target_styles: Record = {};\n\tif (prefix === \"\") {\n\t\ttarget_styles = styles;\n\t} else {\n\t\tfor (const prop in styles) {\n\t\t\tif (prop.startsWith(prefix + \"_\")) {\n\t\t\t\tconst propname = prop.substring(prop.indexOf(\"_\") + 1);\n\t\t\t\ttarget_styles[propname] = styles[prop];\n\t\t\t}\n\t\t}\n\t}\n\n\tif (target_styles.hasOwnProperty(\"margin\")) {\n\t\tif (!Array.isArray(target_styles.margin)) {\n\t\t\ttarget_styles.margin = !!target_styles.margin\n\t\t\t\t? [true, true, true, true]\n\t\t\t\t: [false, false, false, false];\n\t\t}\n\n\t\tlet margin_map = [\"t\", \"r\", \"b\", \"l\"];\n\n\t\t(target_styles.margin as boolean[]).forEach((margin, i) => {\n\t\t\tif (!margin) {\n\t\t\t\tclasses.push(`!m${margin_map[i]}-0`);\n\t\t\t}\n\t\t});\n\t}\n\n\tif (target_styles.hasOwnProperty(\"border\")) {\n\t\tif (!Array.isArray(target_styles.border)) {\n\t\t\ttarget_styles.border = !!target_styles.border\n\t\t\t\t? [true, true, true, true]\n\t\t\t\t: [false, false, false, false];\n\t\t}\n\n\t\tlet border_map = [\"t\", \"r\", \"b\", \"l\"];\n\n\t\t(target_styles.border as boolean[]).forEach((border, i) => {\n\t\t\tif (!border) {\n\t\t\t\tclasses.push(`!border-${border_map[i]}-0`);\n\t\t\t}\n\t\t});\n\t}\n\n\tswitch (target_styles.rounded) {\n\t\tcase true:\n\t\t\tclasses.push(\"!rounded-lg\");\n\t\t\tbreak;\n\t\tcase false:\n\t\t\tclasses.push(\"!rounded-none\");\n\t\t\tbreak;\n\t}\n\n\tswitch (target_styles.full_width) {\n\t\tcase true:\n\t\t\tclasses.push(\"w-full\");\n\t\t\tbreak;\n\t\tcase false:\n\t\t\tclasses.push(\"!grow-0\");\n\t\t\tbreak;\n\t}\n\n\tswitch (target_styles.text_color) {\n\t\tcase \"red\":\n\t\t\tclasses.push(\"!text-red-500\", \"dark:text-red-100\");\n\t\t\tbreak;\n\t\tcase \"yellow\":\n\t\t\tclasses.push(\"!text-yellow-500\", \"dark:text-yellow-100\");\n\t\t\tbreak;\n\t\tcase \"green\":\n\t\t\tclasses.push(\"!text-green-500\", \"dark:text-green-100\");\n\t\t\tbreak;\n\t\tcase \"blue\":\n\t\t\tclasses.push(\"!text-blue-500\", \"dark:text-blue-100\");\n\t\t\tbreak;\n\t\tcase \"purple\":\n\t\t\tclasses.push(\"!text-purple-500\", \"dark:text-purple-100\");\n\t\t\tbreak;\n\t\tcase \"black\":\n\t\t\tclasses.push(\"!text-gray-700\", \"dark:text-gray-50\");\n\t\t\tbreak;\n\t}\n\tswitch (target_styles.bg_color) {\n\t\tcase \"red\":\n\t\t\tclasses.push(\n\t\t\t\t\"!bg-red-100 !from-red-100 !to-red-200 !border-red-300\",\n\t\t\t\t\"dark:!bg-red-700 dark:!from-red-700 dark:!to-red-800 dark:!border-red-900\"\n\t\t\t);\n\t\t\tbreak;\n\t\tcase \"yellow\":\n\t\t\tclasses.push(\n\t\t\t\t\"!bg-yellow-100 !from-yellow-100 !to-yellow-200 !border-yellow-300\",\n\t\t\t\t\"dark:!bg-yellow-700 dark:!from-yellow-700 dark:!to-yellow-800 dark:!border-yellow-900\"\n\t\t\t);\n\t\t\tbreak;\n\t\tcase \"green\":\n\t\t\tclasses.push(\n\t\t\t\t\"!bg-green-100 !from-green-100 !to-green-200 !border-green-300\",\n\t\t\t\t\"dark:!bg-green-700 dark:!from-green-700 dark:!to-green-800 dark:!border-green-900 !text-gray-800\"\n\t\t\t);\n\t\t\tbreak;\n\t\tcase \"blue\":\n\t\t\tclasses.push(\n\t\t\t\t\"!bg-blue-100 !from-blue-100 !to-blue-200 !border-blue-300\",\n\t\t\t\t\"dark:!bg-blue-700 dark:!from-blue-700 dark:!to-blue-800 dark:!border-blue-900\"\n\t\t\t);\n\t\t\tbreak;\n\t\tcase \"purple\":\n\t\t\tclasses.push(\n\t\t\t\t\"!bg-purple-100 !from-purple-100 !to-purple-200 !border-purple-300\",\n\t\t\t\t\"dark:!bg-purple-700 dark:!from-purple-700 dark:!to-purple-800 dark:!border-purple-900\"\n\t\t\t);\n\t\t\tbreak;\n\t\tcase \"black\":\n\t\t\tclasses.push(\n\t\t\t\t\"!bg-gray-100 !from-gray-100 !to-gray-200 !border-gray-300\",\n\t\t\t\t\"dark:!bg-gray-700 dark:!from-gray-700 dark:!to-gray-800 dark:!border-gray-900\"\n\t\t\t);\n\t\tcase \"pink\":\n\t\t\tclasses.push(\n\t\t\t\t\"!bg-pink-100 !from-pink-100 !to-pink-200 !border-pink-300\",\n\t\t\t\t\"dark:!bg-pink-700 dark:!from-pink-700 dark:!to-pink-800 dark:!border-pink-900 !text-gray-800\"\n\t\t\t);\n\t\t\tbreak;\n\t}\n\treturn \" \" + classes.join(\" \");\n};\n","\n\n\n\t\n
    \n","\n\n\n\t\n\n","\n\n\n\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\n\n\n\n\n\t{#if status === \"pending\"}\n\t\t{#if variant === \"default\"}\n\t\t\t
    \n\t\t{/if}\n\t\t\n\t\t\t{#if queue_position !== null && queue_size !== undefined && queue_position >= 0}\n\t\t\t\tqueue: {queue_position + 1}/{queue_size} |\n\t\t\t{:else if queue_position === 0}\n\t\t\t\tprocessing |\n\t\t\t{/if}\n\n\t\t\t{#if timer}\n\t\t\t\t{formatted_timer}{eta ? `/${formatted_eta}` : \"\"}\n\t\t\t{/if}\n\t\t
    \n\n\t\t\n\n\t\t{#if !timer}\n\t\t\t

    Loading...

    \n\t\t{/if}\n\t{:else if status === \"error\"}\n\t\tError\n\t\t{#if message_visible}\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tError\n\t\t\t\t\t\t×\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{message}\n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t\n\t\t{/if}\n\t{/if}\n\n\n\n","\n\n\n\n\n\t{#if loading_status}\n\t\t\n\t{/if}\n\n\t\n\n","\n\n\n\t
    \n\t\t

    Login

    \n\t\t{#if auth_message}\n\t\t\t

    {auth_message}

    \n\t\t{/if}\n\t\t{#if incorrect_credentials}\n\t\t\t

    Incorrect Credentials

    \n\t\t{/if}\n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\n\n\t\tLogin\n\t
    \n\n","import Blocks from \"./Blocks.svelte\";\nimport Login from \"./Login.svelte\";\nimport { Component as Loader } from \"./components/StatusTracker\";\nimport { fn } from \"./api\";\n\nimport type { ComponentMeta, Dependency, LayoutNode } from \"./components/types\";\n\nimport * as t from \"@gradio/theme\";\n\nlet id = -1;\nwindow.__gradio_loader__ = [];\n\ndeclare let BACKEND_URL: string;\ndeclare let BUILD_MODE: string;\n\nconst ENTRY_CSS = \"__ENTRY_CSS__\";\nconst FONTS = \"__FONTS_CSS__\";\n\ninterface Config {\n\tauth_required: boolean | undefined;\n\tauth_message: string;\n\tcomponents: ComponentMeta[];\n\tcss: string | null;\n\tdependencies: Dependency[];\n\tdev_mode: boolean;\n\tenable_queue: boolean;\n\tfn: ReturnType;\n\tlayout: LayoutNode;\n\tmode: \"blocks\" | \"interface\";\n\troot: string;\n\ttarget: HTMLElement;\n\ttheme: string;\n\ttitle: string;\n\tversion: string;\n\tis_space: boolean;\n\tis_colab: boolean;\n\tshow_api: boolean;\n}\n\nlet app_id: string | null = null;\nlet app_mode = window.__gradio_mode__ === \"app\";\n\nasync function reload_check(root: string) {\n\tconst result = await (await fetch(root + \"app_id\")).text();\n\n\tif (app_id === null) {\n\t\tapp_id = result;\n\t} else if (app_id != result) {\n\t\tlocation.reload();\n\t}\n\n\tsetTimeout(() => reload_check(root), 250);\n}\n\nasync function get_source_config(source: string): Promise {\n\tlet config = await (await fetch(source + \"config\")).json();\n\tconfig.root = source;\n\treturn config;\n}\n\nasync function get_config(source: string | null) {\n\tif (BUILD_MODE === \"dev\" || location.origin === \"http://localhost:3000\") {\n\t\tlet config = await fetch(BACKEND_URL + \"config\");\n\t\tconst result = await config.json();\n\t\treturn result;\n\t} else if (source) {\n\t\tif (!source.endsWith(\"/\")) {\n\t\t\tsource += \"/\";\n\t\t}\n\t\tconst config = await get_source_config(source);\n\t\treturn config;\n\t} else {\n\t\treturn window.gradio_config;\n\t}\n}\n\nfunction mount_custom_css(\n\ttarget: ShadowRoot | HTMLElement,\n\tcss_string?: string\n) {\n\tif (css_string) {\n\t\tlet style = document.createElement(\"style\");\n\t\tstyle.innerHTML = css_string;\n\t\ttarget.appendChild(style);\n\t}\n}\n\nfunction mount_css(\n\turl: string,\n\ttarget: ShadowRoot | HTMLElement\n): Promise {\n\tif (BUILD_MODE === \"dev\") Promise.resolve();\n\n\tconst link = document.createElement(\"link\");\n\tlink.rel = \"stylesheet\";\n\tlink.href = url;\n\t// @ts-ignore\n\ttarget.appendChild(link);\n\n\treturn new Promise((res, rej) => {\n\t\tlink.addEventListener(\"load\", () => res());\n\t\tlink.addEventListener(\"error\", () =>\n\t\t\trej(new Error(`Unable to preload CSS for ${url}`))\n\t\t);\n\t});\n}\n\nasync function handle_config(\n\ttarget: HTMLElement | ShadowRoot,\n\tsource: string | null\n) {\n\tlet config;\n\n\ttry {\n\t\tlet [_config] = await Promise.all([\n\t\t\tget_config(source),\n\t\t\tBUILD_MODE === \"dev\" ? Promise.resolve : mount_css(ENTRY_CSS, target)\n\t\t]);\n\t\tconfig = _config;\n\t} catch (e) {\n\t\tconsole.error(e);\n\t\treturn null;\n\t}\n\n\tmount_custom_css(target, config.css);\n\twindow.__is_colab__ = config.is_colab;\n\n\tif (config.root === undefined) {\n\t\tconfig.root = BACKEND_URL;\n\t}\n\tif (config.dev_mode) {\n\t\treload_check(config.root);\n\t}\n\n\tconfig.target = target;\n\n\treturn config;\n}\n\nfunction mount_app(\n\tconfig: Config,\n\ttarget: HTMLElement | ShadowRoot | false,\n\twrapper: HTMLDivElement,\n\tid: number,\n\tautoscroll?: boolean,\n\tis_embed = false\n) {\n\t//@ts-ignore\n\tif (config.detail === \"Not authenticated\" || config.auth_required) {\n\t\tnew Login({\n\t\t\ttarget: wrapper,\n\t\t\t//@ts-ignore\n\t\t\tprops: {\n\t\t\t\tauth_message: config.auth_message,\n\t\t\t\troot: config.root,\n\t\t\t\tid,\n\t\t\t\tapp_mode\n\t\t\t}\n\t\t});\n\t} else {\n\t\tlet session_hash = Math.random().toString(36).substring(2);\n\t\tconfig.fn = fn(\n\t\t\tsession_hash,\n\t\t\tconfig.root + \"run/\",\n\t\t\tconfig.is_space,\n\t\t\tis_embed\n\t\t);\n\n\t\tnew Blocks({\n\t\t\ttarget: wrapper,\n\t\t\t//@ts-ignore\n\t\t\tprops: {\n\t\t\t\t...config,\n\t\t\t\ttarget: wrapper,\n\t\t\t\tid,\n\t\t\t\tautoscroll: autoscroll,\n\t\t\t\tapp_mode\n\t\t\t}\n\t\t});\n\t}\n\n\tif (target) {\n\t\ttarget.append(wrapper);\n\t}\n}\n\nfunction create_custom_element() {\n\t//@ts-ignore\n\tFONTS.map((f) => mount_css(f, document.head));\n\n\tclass GradioApp extends HTMLElement {\n\t\troot: ShadowRoot;\n\t\twrapper: HTMLDivElement;\n\t\t_id: number;\n\t\ttheme: string;\n\n\t\tconstructor() {\n\t\t\tsuper();\n\n\t\t\tthis._id = ++id;\n\n\t\t\tthis.root = this.attachShadow({ mode: \"open\" });\n\n\t\t\twindow.scoped_css_attach = (link) => {\n\t\t\t\tthis.root.append(link);\n\t\t\t};\n\n\t\t\tthis.wrapper = document.createElement(\"div\");\n\t\t\tthis.wrapper.classList.add(\"gradio-container\");\n\n\t\t\tthis.wrapper.style.position = \"relative\";\n\t\t\tthis.wrapper.style.width = \"100%\";\n\t\t\tthis.wrapper.style.minHeight = \"100vh\";\n\t\t\tthis.theme = \"light\";\n\n\t\t\twindow.__gradio_loader__[this._id] = new Loader({\n\t\t\t\ttarget: this.wrapper,\n\t\t\t\tprops: {\n\t\t\t\t\tstatus: \"pending\",\n\t\t\t\t\ttimer: false,\n\t\t\t\t\tqueue_position: null,\n\t\t\t\t\tqueue_size: null\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.root.append(this.wrapper);\n\t\t\tif (window.__gradio_mode__ !== \"website\") {\n\t\t\t\tthis.theme = handle_darkmode(this.wrapper);\n\t\t\t}\n\t\t}\n\n\t\tasync connectedCallback() {\n\t\t\tconst event = new CustomEvent(\"domchange\", {\n\t\t\t\tbubbles: true,\n\t\t\t\tcancelable: false,\n\t\t\t\tcomposed: true\n\t\t\t});\n\n\t\t\tvar observer = new MutationObserver((mutations) => {\n\t\t\t\tthis.dispatchEvent(event);\n\t\t\t});\n\n\t\t\tobserver.observe(this.root, { childList: true });\n\n\t\t\tconst host = this.getAttribute(\"host\");\n\t\t\tconst space = this.getAttribute(\"space\");\n\n\t\t\tconst source = host\n\t\t\t\t? `https://${host}`\n\t\t\t\t: space\n\t\t\t\t? (\n\t\t\t\t\t\tawait (\n\t\t\t\t\t\t\tawait fetch(`https://huggingface.co/api/spaces/${space}/host`)\n\t\t\t\t\t\t).json()\n\t\t\t\t ).host\n\t\t\t\t: this.getAttribute(\"src\");\n\n\t\t\tconst control_page_title = this.getAttribute(\"control_page_title\");\n\t\t\tconst initial_height = this.getAttribute(\"initial_height\");\n\t\t\tlet autoscroll = this.getAttribute(\"autoscroll\");\n\n\t\t\tconst _autoscroll = autoscroll === \"true\" ? true : false;\n\n\t\t\tthis.wrapper.style.minHeight = initial_height || \"300px\";\n\n\t\t\tconst config = await handle_config(this.root, source);\n\t\t\tif (config === null) {\n\t\t\t\tthis.wrapper.remove();\n\t\t\t} else {\n\t\t\t\tmount_app(\n\t\t\t\t\t{\n\t\t\t\t\t\t...config,\n\t\t\t\t\t\ttheme: this.theme,\n\t\t\t\t\t\tcontrol_page_title:\n\t\t\t\t\t\t\tcontrol_page_title && control_page_title === \"true\" ? true : false\n\t\t\t\t\t},\n\t\t\t\t\tthis.root,\n\t\t\t\t\tthis.wrapper,\n\t\t\t\t\tthis._id,\n\t\t\t\t\t_autoscroll,\n\t\t\t\t\t!!space\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tcustomElements.define(\"gradio-app\", GradioApp);\n}\n\nasync function unscoped_mount() {\n\tconst target = document.querySelector(\"#root\")! as HTMLDivElement;\n\ttarget.classList.add(\"gradio-container\");\n\tif (window.__gradio_mode__ !== \"website\") {\n\t\thandle_darkmode(target);\n\t}\n\n\twindow.__gradio_loader__[0] = new Loader({\n\t\ttarget: target,\n\t\tprops: {\n\t\t\tstatus: \"pending\",\n\t\t\ttimer: false,\n\t\t\tqueue_position: null,\n\t\t\tqueue_size: null\n\t\t}\n\t});\n\n\tconst config = await handle_config(target, null);\n\tmount_app({ ...config, control_page_title: true }, false, target, 0);\n}\n\nfunction handle_darkmode(target: HTMLDivElement): string {\n\tlet url = new URL(window.location.toString());\n\tlet theme = \"light\";\n\n\tconst color_mode: \"light\" | \"dark\" | \"system\" | null = url.searchParams.get(\n\t\t\"__theme\"\n\t) as \"light\" | \"dark\" | \"system\" | null;\n\n\tif (color_mode !== null) {\n\t\tif (color_mode === \"dark\") {\n\t\t\ttheme = darkmode(target);\n\t\t} else if (color_mode === \"system\") {\n\t\t\ttheme = use_system_theme(target);\n\t\t}\n\t\t// light is default, so we don't need to do anything else\n\t} else if (url.searchParams.get(\"__dark-theme\") === \"true\") {\n\t\ttheme = darkmode(target);\n\t} else {\n\t\ttheme = use_system_theme(target);\n\t}\n\treturn theme;\n}\n\nfunction use_system_theme(target: HTMLDivElement): string {\n\tconst theme = update_scheme();\n\twindow\n\t\t?.matchMedia(\"(prefers-color-scheme: dark)\")\n\t\t?.addEventListener(\"change\", update_scheme);\n\n\tfunction update_scheme() {\n\t\tlet theme = \"light\";\n\t\tconst is_dark =\n\t\t\twindow?.matchMedia?.(\"(prefers-color-scheme: dark)\").matches ?? null;\n\n\t\tif (is_dark) {\n\t\t\ttheme = darkmode(target);\n\t\t}\n\t\treturn theme;\n\t}\n\treturn theme;\n}\n\nfunction darkmode(target: HTMLDivElement): string {\n\ttarget.classList.add(\"dark\");\n\tif (app_mode) {\n\t\tdocument.body.style.backgroundColor = \"rgb(11, 15, 25)\"; // bg-gray-950 for scrolling outside the body\n\t}\n\treturn \"dark\";\n}\n\n// dev mode or if inside an iframe\nif (BUILD_MODE === \"dev\" || window.location !== window.parent.location) {\n\twindow.scoped_css_attach = (link) => {\n\t\tdocument.head.append(link);\n\t};\n\tunscoped_mount();\n} else {\n\tcreate_custom_element();\n}\n"],"names":["p","e","t","n","x","getLocaleFromNavigator","get","picocolors_browserModule","log_1","_interopRequireDefault","require$$0","_default","colors","tw_colors","linear","Loader"],"mappings":"AAAA,KAAMA,IAAI,UAAoB,CAC1B,KAAM,GAAU,SAAS,cAAc,MAAM,EAAE,QAC/C,GAAI,GAAW,EAAQ,UAAY,EAAQ,SAAS,eAAe,EAC/D,OAEJ,SAAW,KAAQ,UAAS,iBAAiB,2BAA2B,EACpE,EAAe,CAAI,EAEvB,GAAI,kBAAiB,AAAC,GAAc,CAChC,SAAW,KAAY,GACnB,GAAI,EAAS,OAAS,YAGtB,SAAW,KAAQ,GAAS,WACxB,AAAI,EAAK,UAAY,QAAU,EAAK,MAAQ,iBACxC,EAAe,CAAI,EAGlC,EAAE,QAAQ,SAAU,CAAE,UAAW,GAAM,QAAS,GAAM,EACvD,WAAsB,EAAQ,CAC1B,KAAM,GAAY,GAClB,MAAI,GAAO,WACP,GAAU,UAAY,EAAO,WAC7B,EAAO,gBACP,GAAU,eAAiB,EAAO,gBACtC,AAAI,EAAO,cAAgB,kBACvB,EAAU,YAAc,UACvB,AAAI,EAAO,cAAgB,YAC5B,EAAU,YAAc,OAExB,EAAU,YAAc,cACrB,EAEX,WAAwB,EAAM,CAC1B,GAAI,EAAK,GAEL,OACJ,EAAK,GAAK,GAEV,KAAM,GAAY,EAAa,CAAI,EACnC,MAAM,EAAK,KAAM,CAAS,EAElC,EAAE,AAAoBA,KC1CtB,YAAgB,EAChB,KAAM,IAAW,GAAK,EACtB,YAAgB,EAAK,EAAK,CAEtB,SAAW,KAAK,GACZ,EAAI,GAAK,EAAI,GACjB,MAAO,EACX,CASA,YAAa,EAAI,CACb,MAAO,IACX,CACA,aAAwB,CACpB,MAAO,QAAO,OAAO,IAAI,CAC7B,CACA,YAAiB,EAAK,CAClB,EAAI,QAAQ,EAAG,CACnB,CACA,YAAqB,EAAO,CACxB,MAAO,OAAO,IAAU,UAC5B,CACA,YAAwB,EAAG,EAAG,CAC1B,MAAO,IAAK,EAAI,GAAK,EAAI,IAAM,GAAO,GAAK,MAAO,IAAM,UAAa,MAAO,IAAM,UACtF,CACA,GAAI,IACJ,YAAuB,EAAa,EAAK,CACrC,MAAK,KACD,IAAuB,SAAS,cAAc,GAAG,GAErD,GAAqB,KAAO,EACrB,IAAgB,GAAqB,IAChD,CAIA,YAAkB,EAAK,CACnB,MAAO,QAAO,KAAK,CAAG,EAAE,SAAW,CACvC,CAMA,YAAmB,KAAU,EAAW,CACpC,GAAI,GAAS,KACT,MAAO,GAEX,KAAM,GAAQ,EAAM,UAAU,GAAG,CAAS,EAC1C,MAAO,GAAM,YAAc,IAAM,EAAM,cAAgB,CAC3D,CACA,YAAyB,EAAO,CAC5B,GAAI,GACJ,UAAU,EAAO,GAAK,EAAQ,CAAC,IACxB,CACX,CACA,YAA6B,EAAW,EAAO,EAAU,CACrD,EAAU,GAAG,WAAW,KAAK,GAAU,EAAO,CAAQ,CAAC,CAC3D,CACA,YAAqB,EAAY,EAAK,EAAS,EAAI,CAC/C,GAAI,EAAY,CACZ,KAAM,GAAW,GAAiB,EAAY,EAAK,EAAS,CAAE,EAC9D,MAAO,GAAW,GAAG,CAAQ,EAErC,CACA,YAA0B,EAAY,EAAK,EAAS,EAAI,CACpD,MAAO,GAAW,IAAM,EAClB,GAAO,EAAQ,IAAI,QAAS,EAAW,GAAG,EAAG,CAAG,CAAC,CAAC,EAClD,EAAQ,GAClB,CACA,YAA0B,EAAY,EAAS,EAAO,EAAI,CACtD,GAAI,EAAW,IAAM,EAAI,CACrB,KAAM,GAAO,EAAW,GAAG,EAAG,CAAK,CAAC,EACpC,GAAI,EAAQ,QAAU,OAClB,MAAO,GAEX,GAAI,MAAO,IAAS,SAAU,CAC1B,KAAM,GAAS,GACT,EAAM,KAAK,IAAI,EAAQ,MAAM,OAAQ,EAAK,MAAM,EACtD,OAAS,GAAI,EAAG,EAAI,EAAK,GAAK,EAC1B,EAAO,GAAK,EAAQ,MAAM,GAAK,EAAK,GAExC,MAAO,GAEX,MAAO,GAAQ,MAAQ,EAE3B,MAAO,GAAQ,KACnB,CACA,YAA0B,EAAM,EAAiB,EAAK,EAAS,EAAc,EAAqB,CAC9F,GAAI,EAAc,CACd,KAAM,GAAe,GAAiB,EAAiB,EAAK,EAAS,CAAmB,EACxF,EAAK,EAAE,EAAc,CAAY,EAEzC,CAKA,YAAkC,EAAS,CACvC,GAAI,EAAQ,IAAI,OAAS,GAAI,CACzB,KAAM,GAAQ,GACR,EAAS,EAAQ,IAAI,OAAS,GACpC,OAAS,GAAI,EAAG,EAAI,EAAQ,IACxB,EAAM,GAAK,GAEf,MAAO,GAEX,MAAO,EACX,CAmCA,YAAyB,EAAO,EAAK,EAAO,CACxC,SAAM,IAAI,CAAK,EACR,CACX,CAEA,YAA0B,EAAe,CACrC,MAAO,IAAiB,GAAY,EAAc,OAAO,EAAI,EAAc,QAAU,CACzF,CAEA,KAAM,IAAY,MAAO,QAAW,IACpC,GAAI,IAAM,GACJ,IAAM,OAAO,YAAY,MACzB,IAAM,KAAK,MACb,GAAM,GAAY,GAAM,sBAAsB,CAAE,EAAI,EASxD,KAAM,IAAQ,GAAI,KAClB,YAAmB,EAAK,CACpB,GAAM,QAAQ,GAAQ,CAClB,AAAK,EAAK,EAAE,CAAG,GACX,IAAM,OAAO,CAAI,EACjB,EAAK,KAEZ,EACG,GAAM,OAAS,GACf,GAAI,EAAS,CACrB,CAWA,YAAc,EAAU,CACpB,GAAI,GACJ,MAAI,IAAM,OAAS,GACf,GAAI,EAAS,EACV,CACH,QAAS,GAAI,SAAQ,GAAW,CAC5B,GAAM,IAAI,EAAO,CAAE,EAAG,EAAU,EAAG,EAAS,EAC/C,EACD,OAAQ,CACJ,GAAM,OAAO,CAAI,GAG7B,CAuGA,WAAgB,EAAQ,EAAM,CAC1B,EAAO,YAAY,CAAI,CAC3B,CAUA,YAA4B,EAAM,CAC9B,GAAI,CAAC,EACD,MAAO,UACX,KAAM,GAAO,EAAK,YAAc,EAAK,cAAgB,EAAK,cAC1D,MAAI,IAAQ,EAAK,KACN,EAEJ,EAAK,aAChB,CACA,YAAiC,EAAM,CACnC,KAAM,GAAgB,EAAQ,OAAO,EACrC,UAAkB,GAAmB,CAAI,EAAG,CAAa,EAClD,EAAc,KACzB,CACA,YAA2B,EAAM,EAAO,CACpC,EAAO,EAAK,MAAQ,EAAM,CAAK,CACnC,CAyBA,WAAgB,EAAQ,EAAM,EAAQ,CAClC,EAAO,aAAa,EAAM,GAAU,IAAI,CAC5C,CASA,WAAgB,EAAM,CAClB,EAAK,WAAW,YAAY,CAAI,CACpC,CACA,YAAsB,EAAY,EAAW,CACzC,OAAS,GAAI,EAAG,EAAI,EAAW,OAAQ,GAAK,EACxC,AAAI,EAAW,IACX,EAAW,GAAG,EAAE,CAAS,CAErC,CACA,WAAiB,EAAM,CACnB,MAAO,UAAS,cAAc,CAAI,CACtC,CAgBA,YAAqB,EAAM,CACvB,MAAO,UAAS,gBAAgB,6BAA8B,CAAI,CACtE,CACA,WAAc,EAAM,CAChB,MAAO,UAAS,eAAe,CAAI,CACvC,CACA,YAAiB,CACb,MAAO,GAAK,GAAG,CACnB,CACA,aAAiB,CACb,MAAO,GAAK,EAAE,CAClB,CACA,WAAgB,EAAM,EAAO,EAAS,EAAS,CAC3C,SAAK,iBAAiB,EAAO,EAAS,CAAO,EACtC,IAAM,EAAK,oBAAoB,EAAO,EAAS,CAAO,CACjE,CACA,YAAyB,EAAI,CACzB,MAAO,UAAU,EAAO,CACpB,SAAM,iBAEC,EAAG,KAAK,KAAM,CAAK,EAElC,CACA,YAA0B,EAAI,CAC1B,MAAO,UAAU,EAAO,CACpB,SAAM,kBAEC,EAAG,KAAK,KAAM,CAAK,EAElC,CAeA,WAAc,EAAM,EAAW,EAAO,CAClC,AAAI,GAAS,KACT,EAAK,gBAAgB,CAAS,EACzB,EAAK,aAAa,CAAS,IAAM,GACtC,EAAK,aAAa,EAAW,CAAK,CAC1C,CACA,YAAwB,EAAM,EAAY,CAEtC,KAAM,GAAc,OAAO,0BAA0B,EAAK,SAAS,EACnE,SAAW,KAAO,GACd,AAAI,EAAW,IAAQ,KACnB,EAAK,gBAAgB,CAAG,EAEvB,AAAI,IAAQ,QACb,EAAK,MAAM,QAAU,EAAW,GAE/B,AAAI,IAAQ,UACb,EAAK,MAAQ,EAAK,GAAO,EAAW,GAEnC,AAAI,EAAY,IAAQ,EAAY,GAAK,IAC1C,EAAK,GAAO,EAAW,GAGvB,EAAK,EAAM,EAAK,EAAW,EAAI,CAG3C,CA4BA,YAAmB,EAAO,CACtB,MAAO,KAAU,GAAK,KAAO,CAAC,CAClC,CAQA,YAAkB,EAAS,CACvB,MAAO,OAAM,KAAK,EAAQ,UAAU,CACxC,CAuHA,YAAkB,EAAM,EAAM,CAC1B,EAAO,GAAK,EACR,EAAK,YAAc,GACnB,GAAK,KAAO,EACpB,CACA,YAAyB,EAAO,EAAO,CACnC,EAAM,MAAQ,GAAgB,EAClC,CASA,YAAmB,EAAM,EAAK,EAAO,EAAW,CAC5C,AAAI,IAAU,KACV,EAAK,MAAM,eAAe,CAAG,EAG7B,EAAK,MAAM,YAAY,EAAK,EAAO,EAAY,YAAc,EAAE,CAEvE,CACA,YAAuB,EAAQ,EAAO,CAClC,OAAS,GAAI,EAAG,EAAI,EAAO,QAAQ,OAAQ,GAAK,EAAG,CAC/C,KAAM,GAAS,EAAO,QAAQ,GAC9B,GAAI,EAAO,UAAY,EAAO,CAC1B,EAAO,SAAW,GAClB,QAGR,EAAO,cAAgB,EAC3B,CAOA,YAAsB,EAAQ,CAC1B,KAAM,GAAkB,EAAO,cAAc,UAAU,GAAK,EAAO,QAAQ,GAC3E,MAAO,IAAmB,EAAgB,OAC9C,CAMA,GAAI,IACJ,aAA0B,CACtB,GAAI,KAAgB,OAAW,CAC3B,GAAc,GACd,GAAI,CACA,AAAI,MAAO,QAAW,KAAe,OAAO,QACnC,OAAO,OAAO,cAG3B,CACI,GAAc,IAGtB,MAAO,GACX,CACA,YAA6B,EAAM,EAAI,CAEnC,AAAI,AADmB,iBAAiB,CAAI,EACzB,WAAa,UAC5B,GAAK,MAAM,SAAW,YAE1B,KAAM,GAAS,EAAQ,QAAQ,EAC/B,EAAO,aAAa,QAAS,6JACoD,EACjF,EAAO,aAAa,cAAe,MAAM,EACzC,EAAO,SAAW,GAClB,KAAM,GAAc,KACpB,GAAI,GACJ,MAAI,GACA,GAAO,IAAM,kFACb,EAAc,EAAO,OAAQ,UAAW,AAAC,GAAU,CAC/C,AAAI,EAAM,SAAW,EAAO,eACxB,IACP,GAGD,GAAO,IAAM,cACb,EAAO,OAAS,IAAM,CAClB,EAAc,EAAO,EAAO,cAAe,SAAU,CAAE,IAG/D,EAAO,EAAM,CAAM,EACZ,IAAM,CACT,AAAI,IAGK,GAAe,EAAO,gBAC3B,IAEJ,EAAO,CAAM,EAErB,CACA,WAAsB,EAAS,EAAM,EAAQ,CACzC,EAAQ,UAAU,EAAS,MAAQ,UAAU,CAAI,CACrD,CACA,YAAsB,EAAM,EAAQ,CAAE,UAAU,GAAO,aAAa,IAAU,GAAI,CAC9E,KAAM,GAAI,SAAS,YAAY,aAAa,EAC5C,SAAE,gBAAgB,EAAM,EAAS,EAAY,CAAM,EAC5C,CACX,CAIA,MAAM,EAAQ,CACV,YAAY,EAAS,GAAO,CACxB,KAAK,OAAS,GACd,KAAK,OAAS,EACd,KAAK,EAAI,KAAK,EAAI,KAEtB,EAAE,EAAM,CACJ,KAAK,EAAE,CAAI,EAEf,EAAE,EAAM,EAAQ,EAAS,KAAM,CAC3B,AAAK,KAAK,GACN,CAAI,KAAK,OACL,KAAK,EAAI,GAAY,EAAO,QAAQ,EAEpC,KAAK,EAAI,EAAQ,EAAO,QAAQ,EACpC,KAAK,EAAI,EACT,KAAK,EAAE,CAAI,GAEf,KAAK,EAAE,CAAM,EAEjB,EAAE,EAAM,CACJ,KAAK,EAAE,UAAY,EACnB,KAAK,EAAI,MAAM,KAAK,KAAK,EAAE,UAAU,EAEzC,EAAE,EAAQ,CACN,OAAS,GAAI,EAAG,EAAI,KAAK,EAAE,OAAQ,GAAK,EACpC,EAAO,KAAK,EAAG,KAAK,EAAE,GAAI,CAAM,EAGxC,EAAE,EAAM,CACJ,KAAK,IACL,KAAK,EAAE,CAAI,EACX,KAAK,EAAE,KAAK,CAAC,EAEjB,GAAI,CACA,KAAK,EAAE,QAAQ,CAAM,EAE7B,CAsCA,KAAM,IAAiB,GAAI,KAC3B,GAAI,IAAS,EAEb,YAAc,EAAK,CACf,GAAI,GAAO,KACP,EAAI,EAAI,OACZ,KAAO,KACH,EAAS,IAAQ,GAAK,EAAQ,EAAI,WAAW,CAAC,EAClD,MAAO,KAAS,CACpB,CACA,YAAkC,EAAK,EAAM,CACzC,KAAM,GAAO,CAAE,WAAY,GAAwB,CAAI,EAAG,MAAO,IACjE,UAAe,IAAI,EAAK,CAAI,EACrB,CACX,CACA,YAAqB,EAAM,EAAG,EAAG,EAAU,EAAO,EAAM,EAAI,EAAM,EAAG,CACjE,KAAM,GAAO,OAAS,EACtB,GAAI,GAAY;AAAA,EAChB,OAAS,GAAI,EAAG,GAAK,EAAG,GAAK,EAAM,CAC/B,KAAM,GAAI,EAAK,GAAI,GAAK,EAAK,CAAC,EAC9B,GAAa,EAAI,IAAM,KAAK,EAAG,EAAG,EAAI,CAAC;AAAA,EAE3C,KAAM,GAAO,EAAY,SAAS,EAAG,EAAG,EAAI,CAAC;AAAA,GACvC,EAAO,YAAY,GAAK,CAAI,KAAK,IACjC,EAAM,GAAmB,CAAI,EAC7B,CAAE,aAAY,SAAU,GAAe,IAAI,CAAG,GAAK,GAAyB,EAAK,CAAI,EAC3F,AAAK,EAAM,IACP,GAAM,GAAQ,GACd,EAAW,WAAW,cAAc,KAAQ,IAAQ,EAAW,SAAS,MAAM,GAElF,KAAM,GAAY,EAAK,MAAM,WAAa,GAC1C,SAAK,MAAM,UAAY,GAAG,EAAY,GAAG,MAAgB,KAAK,KAAQ,cAAqB,aAC3F,IAAU,EACH,CACX,CACA,YAAqB,EAAM,EAAM,CAC7B,KAAM,GAAY,GAAK,MAAM,WAAa,IAAI,MAAM,IAAI,EAClD,EAAO,EAAS,OAAO,EACvB,GAAQ,EAAK,QAAQ,CAAI,EAAI,EAC7B,GAAQ,EAAK,QAAQ,UAAU,IAAM,IAErC,EAAU,EAAS,OAAS,EAAK,OACvC,AAAI,GACA,GAAK,MAAM,UAAY,EAAK,KAAK,IAAI,EACrC,IAAU,EACL,IACD,KAEZ,CACA,aAAuB,CACnB,GAAI,IAAM,CACN,AAAI,IAEJ,IAAe,QAAQ,GAAQ,CAC3B,KAAM,CAAE,cAAe,EACvB,GAAI,GAAI,EAAW,SAAS,OAC5B,KAAO,KACH,EAAW,WAAW,CAAC,EAC3B,EAAK,MAAQ,GAChB,EACD,GAAe,SAClB,CACL,CAuEA,GAAI,IACJ,YAA+B,EAAW,CACtC,GAAoB,CACxB,CACA,aAAiC,CAC7B,GAAI,CAAC,GACD,KAAM,IAAI,OAAM,kDAAkD,EACtE,MAAO,GACX,CACA,YAAsB,EAAI,CACtB,KAAwB,GAAG,cAAc,KAAK,CAAE,CACpD,CACA,YAAiB,EAAI,CACjB,KAAwB,GAAG,SAAS,KAAK,CAAE,CAC/C,CACA,YAAqB,EAAI,CACrB,KAAwB,GAAG,aAAa,KAAK,CAAE,CACnD,CACA,YAAmB,EAAI,CACnB,KAAwB,GAAG,WAAW,KAAK,CAAE,CACjD,CACA,aAAiC,CAC7B,KAAM,GAAY,KAClB,MAAO,CAAC,EAAM,EAAQ,CAAE,aAAa,IAAU,KAAO,CAClD,KAAM,GAAY,EAAU,GAAG,UAAU,GACzC,GAAI,EAAW,CAGX,KAAM,GAAQ,GAAa,EAAM,EAAQ,CAAE,aAAY,EACvD,SAAU,QAAQ,QAAQ,GAAM,CAC5B,EAAG,KAAK,EAAW,CAAK,EAC3B,EACM,CAAC,EAAM,iBAElB,MAAO,GAEf,CACA,YAAoB,EAAK,EAAS,CAC9B,YAAwB,GAAG,QAAQ,IAAI,EAAK,CAAO,EAC5C,CACX,CACA,YAAoB,EAAK,CACrB,MAAO,MAAwB,GAAG,QAAQ,IAAI,CAAG,CACrD,CAUA,YAAgB,EAAW,EAAO,CAC9B,KAAM,GAAY,EAAU,GAAG,UAAU,EAAM,MAC/C,AAAI,GAEA,EAAU,QAAQ,QAAQ,GAAM,EAAG,KAAK,KAAM,CAAK,CAAC,CAE5D,CAEA,KAAM,IAAmB,GAEnB,GAAoB,GACpB,GAAmB,GACnB,GAAkB,GAClB,GAAmB,QAAQ,UACjC,GAAI,IAAmB,GACvB,aAA2B,CACvB,AAAK,IACD,IAAmB,GACnB,GAAiB,KAAK,EAAK,EAEnC,CACA,aAAgB,CACZ,YACO,EACX,CACA,YAA6B,EAAI,CAC7B,GAAiB,KAAK,CAAE,CAC5B,CACA,YAA4B,EAAI,CAC5B,GAAgB,KAAK,CAAE,CAC3B,CAmBA,KAAM,IAAiB,GAAI,KAC3B,GAAI,IAAW,EACf,aAAiB,CACb,KAAM,GAAkB,GACxB,EAAG,CAGC,KAAO,GAAW,GAAiB,QAAQ,CACvC,KAAM,GAAY,GAAiB,IACnC,KACA,GAAsB,CAAS,EAC/B,GAAO,EAAU,EAAE,EAKvB,IAHA,GAAsB,IAAI,EAC1B,GAAiB,OAAS,EAC1B,GAAW,EACJ,GAAkB,QACrB,GAAkB,QAItB,OAAS,GAAI,EAAG,EAAI,GAAiB,OAAQ,GAAK,EAAG,CACjD,KAAM,GAAW,GAAiB,GAClC,AAAK,GAAe,IAAI,CAAQ,GAE5B,IAAe,IAAI,CAAQ,EAC3B,KAGR,GAAiB,OAAS,QACrB,GAAiB,QAC1B,KAAO,GAAgB,QACnB,GAAgB,QAEpB,GAAmB,GACnB,GAAe,QACf,GAAsB,CAAe,CACzC,CACA,YAAgB,EAAI,CAChB,GAAI,EAAG,WAAa,KAAM,CACtB,EAAG,SACH,GAAQ,EAAG,aAAa,EACxB,KAAM,GAAQ,EAAG,MACjB,EAAG,MAAQ,CAAC,EAAE,EACd,EAAG,UAAY,EAAG,SAAS,EAAE,EAAG,IAAK,CAAK,EAC1C,EAAG,aAAa,QAAQ,EAAmB,EAEnD,CAEA,GAAI,IACJ,aAAgB,CACZ,MAAK,KACD,IAAU,QAAQ,UAClB,GAAQ,KAAK,IAAM,CACf,GAAU,KACb,GAEE,EACX,CACA,YAAkB,EAAM,EAAW,EAAM,CACrC,EAAK,cAAc,GAAa,GAAG,EAAY,QAAU,UAAU,GAAM,CAAC,CAC9E,CACA,KAAM,IAAW,GAAI,KACrB,GAAI,IACJ,aAAwB,CACpB,GAAS,CACL,EAAG,EACH,EAAG,GACH,EAAG,GAEX,CACA,aAAwB,CACpB,AAAK,GAAO,GACR,GAAQ,GAAO,CAAC,EAEpB,GAAS,GAAO,CACpB,CACA,WAAuB,EAAO,EAAO,CACjC,AAAI,GAAS,EAAM,GACf,IAAS,OAAO,CAAK,EACrB,EAAM,EAAE,CAAK,EAErB,CACA,WAAwB,EAAO,EAAO,EAAQ,EAAU,CACpD,GAAI,GAAS,EAAM,EAAG,CAClB,GAAI,GAAS,IAAI,CAAK,EAClB,OACJ,GAAS,IAAI,CAAK,EAClB,GAAO,EAAE,KAAK,IAAM,CAChB,GAAS,OAAO,CAAK,EACjB,GACI,IACA,EAAM,EAAE,CAAC,EACb,KAEP,EACD,EAAM,EAAE,CAAK,MAEZ,AAAI,IACL,GAER,CACA,KAAM,IAAkB,CAAE,SAAU,GACpC,YAA8B,EAAM,EAAI,EAAQ,CAC5C,GAAI,GAAS,EAAG,EAAM,CAAM,EACxB,EAAU,GACV,EACA,EACA,EAAM,EACV,YAAmB,CACf,AAAI,GACA,GAAY,EAAM,CAAc,EAExC,YAAc,CACV,KAAM,CAAE,QAAQ,EAAG,WAAW,IAAK,SAAS,GAAU,OAAO,EAAM,OAAQ,GAAU,GACrF,AAAI,GACA,GAAiB,GAAY,EAAM,EAAG,EAAG,EAAU,EAAO,EAAQ,EAAK,GAAK,GAChF,EAAK,EAAG,CAAC,EACT,KAAM,GAAa,KAAQ,EACrB,EAAW,EAAa,EAC9B,AAAI,GACA,EAAK,QACT,EAAU,GACV,GAAoB,IAAM,GAAS,EAAM,GAAM,OAAO,CAAC,EACvD,EAAO,GAAK,GAAO,CACf,GAAI,EAAS,CACT,GAAI,GAAO,EACP,SAAK,EAAG,CAAC,EACT,GAAS,EAAM,GAAM,KAAK,EAC1B,IACO,EAAU,GAErB,GAAI,GAAO,EAAY,CACnB,KAAM,GAAI,EAAQ,GAAM,GAAc,CAAQ,EAC9C,EAAK,EAAG,EAAI,CAAC,GAGrB,MAAO,GACV,EAEL,GAAI,GAAU,GACd,MAAO,CACH,OAAQ,CACJ,AAAI,GAEJ,GAAU,GACV,GAAY,CAAI,EAChB,AAAI,GAAY,CAAM,EAClB,GAAS,IACT,KAAO,KAAK,CAAE,GAGd,MAGR,YAAa,CACT,EAAU,IAEd,KAAM,CACF,AAAI,GACA,KACA,EAAU,KAI1B,CACA,YAA+B,EAAM,EAAI,EAAQ,CAC7C,GAAI,GAAS,EAAG,EAAM,CAAM,EACxB,EAAU,GACV,EACJ,KAAM,GAAQ,GACd,EAAM,GAAK,EACX,YAAc,CACV,KAAM,CAAE,QAAQ,EAAG,WAAW,IAAK,SAAS,GAAU,OAAO,EAAM,OAAQ,GAAU,GACrF,AAAI,GACA,GAAiB,GAAY,EAAM,EAAG,EAAG,EAAU,EAAO,EAAQ,CAAG,GACzE,KAAM,GAAa,KAAQ,EACrB,EAAW,EAAa,EAC9B,GAAoB,IAAM,GAAS,EAAM,GAAO,OAAO,CAAC,EACxD,GAAK,GAAO,CACR,GAAI,EAAS,CACT,GAAI,GAAO,EACP,SAAK,EAAG,CAAC,EACT,GAAS,EAAM,GAAO,KAAK,EACtB,EAAE,EAAM,GAGT,GAAQ,EAAM,CAAC,EAEZ,GAEX,GAAI,GAAO,EAAY,CACnB,KAAM,GAAI,EAAQ,GAAM,GAAc,CAAQ,EAC9C,EAAK,EAAI,EAAG,CAAC,GAGrB,MAAO,GACV,EAEL,MAAI,IAAY,CAAM,EAClB,KAAO,KAAK,IAAM,CAEd,EAAS,IACT,IACH,EAGD,IAEG,CACH,IAAI,EAAO,CACP,AAAI,GAAS,EAAO,MAChB,EAAO,KAAK,EAAG,CAAC,EAEhB,GACI,IACA,GAAY,EAAM,CAAc,EACpC,EAAU,KAI1B,CACA,YAAyC,EAAM,EAAI,EAAQ,EAAO,CAC9D,GAAI,GAAS,EAAG,EAAM,CAAM,EACxB,EAAI,EAAQ,EAAI,EAChB,EAAkB,KAClB,EAAkB,KAClB,EAAiB,KACrB,YAA2B,CACvB,AAAI,GACA,GAAY,EAAM,CAAc,EAExC,WAAc,EAAS,EAAU,CAC7B,KAAM,GAAK,EAAQ,EAAI,EACvB,UAAY,KAAK,IAAI,CAAC,EACf,CACH,EACA,EAAG,EAAQ,EACX,IACA,WACA,MAAO,EAAQ,MACf,IAAK,EAAQ,MAAQ,EACrB,MAAO,EAAQ,OAGvB,WAAY,EAAG,CACX,KAAM,CAAE,QAAQ,EAAG,WAAW,IAAK,SAAS,GAAU,OAAO,EAAM,OAAQ,GAAU,GAC/E,EAAU,CACZ,MAAO,KAAQ,EACf,KAEJ,AAAK,GAED,GAAQ,MAAQ,GAChB,GAAO,GAAK,GAEhB,AAAI,GAAmB,EACnB,EAAkB,EAKd,IACA,KACA,EAAiB,GAAY,EAAM,EAAG,EAAG,EAAU,EAAO,EAAQ,CAAG,GAErE,GACA,EAAK,EAAG,CAAC,EACb,EAAkB,EAAK,EAAS,CAAQ,EACxC,GAAoB,IAAM,GAAS,EAAM,EAAG,OAAO,CAAC,EACpD,GAAK,GAAO,CAUR,GATI,GAAmB,EAAM,EAAgB,OACzC,GAAkB,EAAK,EAAiB,CAAQ,EAChD,EAAkB,KAClB,GAAS,EAAM,EAAgB,EAAG,OAAO,EACrC,GACA,KACA,EAAiB,GAAY,EAAM,EAAG,EAAgB,EAAG,EAAgB,SAAU,EAAG,EAAQ,EAAO,GAAG,IAG5G,GACA,GAAI,GAAO,EAAgB,IACvB,EAAK,EAAI,EAAgB,EAAG,EAAI,CAAC,EACjC,GAAS,EAAM,EAAgB,EAAG,KAAK,EAClC,GAED,CAAI,EAAgB,EAEhB,IAIK,EAAE,EAAgB,MAAM,GACzB,GAAQ,EAAgB,MAAM,CAAC,GAG3C,EAAkB,aAEb,GAAO,EAAgB,MAAO,CACnC,KAAM,GAAI,EAAM,EAAgB,MAChC,EAAI,EAAgB,EAAI,EAAgB,EAAI,EAAO,EAAI,EAAgB,QAAQ,EAC/E,EAAK,EAAG,EAAI,CAAC,GAGrB,MAAO,CAAC,CAAE,IAAmB,GAChC,GAGT,MAAO,CACH,IAAI,EAAG,CACH,AAAI,GAAY,CAAM,EAClB,KAAO,KAAK,IAAM,CAEd,EAAS,IACT,EAAG,CAAC,EACP,EAGD,EAAG,CAAC,GAGZ,KAAM,CACF,IACA,EAAkB,EAAkB,MAGhD,CAoFK,KAAC,IAAW,MAAO,QAAW,IAC7B,OACA,MAAO,YAAe,IAClB,WACA,OAEV,YAAuB,EAAO,EAAQ,CAClC,EAAM,EAAE,CAAC,EACT,EAAO,OAAO,EAAM,GAAG,CAC3B,CACA,YAAiC,EAAO,EAAQ,CAC5C,EAAe,EAAO,EAAG,EAAG,IAAM,CAC9B,EAAO,OAAO,EAAM,GAAG,EAC1B,CACL,CASA,YAA2B,EAAY,EAAO,EAAS,EAAS,EAAK,EAAM,EAAQ,EAAM,EAAS,EAAmB,EAAM,EAAa,CACpI,GAAI,GAAI,EAAW,OACf,EAAI,EAAK,OACT,EAAI,EACR,KAAM,GAAc,GACpB,KAAO,KACH,EAAY,EAAW,GAAG,KAAO,EACrC,KAAM,GAAa,GACb,EAAa,GAAI,KACjB,EAAS,GAAI,KAEnB,IADA,EAAI,EACG,KAAK,CACR,KAAM,GAAY,EAAY,EAAK,EAAM,CAAC,EACpC,EAAM,EAAQ,CAAS,EAC7B,GAAI,GAAQ,EAAO,IAAI,CAAG,EAC1B,AAAK,EAII,GACL,EAAM,EAAE,EAAW,CAAK,EAJxB,GAAQ,EAAkB,EAAK,CAAS,EACxC,EAAM,KAKV,EAAW,IAAI,EAAK,EAAW,GAAK,CAAK,EACrC,IAAO,IACP,EAAO,IAAI,EAAK,KAAK,IAAI,EAAI,EAAY,EAAI,CAAC,EAEtD,KAAM,GAAY,GAAI,KAChB,EAAW,GAAI,KACrB,WAAgB,EAAO,CACnB,EAAc,EAAO,CAAC,EACtB,EAAM,EAAE,EAAM,CAAI,EAClB,EAAO,IAAI,EAAM,IAAK,CAAK,EAC3B,EAAO,EAAM,MACb,IAEJ,KAAO,GAAK,GAAG,CACX,KAAM,GAAY,EAAW,EAAI,GAC3B,EAAY,EAAW,EAAI,GAC3B,EAAU,EAAU,IACpB,EAAU,EAAU,IAC1B,AAAI,IAAc,EAEd,GAAO,EAAU,MACjB,IACA,KAEC,AAAK,EAAW,IAAI,CAAO,EAK3B,AAAI,CAAC,EAAO,IAAI,CAAO,GAAK,EAAU,IAAI,CAAO,EAClD,EAAO,CAAS,EAEf,AAAI,EAAS,IAAI,CAAO,EACzB,IAEC,AAAI,EAAO,IAAI,CAAO,EAAI,EAAO,IAAI,CAAO,EAC7C,GAAS,IAAI,CAAO,EACpB,EAAO,CAAS,GAGhB,GAAU,IAAI,CAAO,EACrB,KAfA,GAAQ,EAAW,CAAM,EACzB,KAiBR,KAAO,KAAK,CACR,KAAM,GAAY,EAAW,GAC7B,AAAK,EAAW,IAAI,EAAU,GAAG,GAC7B,EAAQ,EAAW,CAAM,EAEjC,KAAO,GACH,EAAO,EAAW,EAAI,EAAE,EAC5B,MAAO,EACX,CAYA,YAA2B,EAAQ,EAAS,CACxC,KAAM,GAAS,GACT,EAAc,GACd,EAAgB,CAAE,QAAS,GACjC,GAAI,GAAI,EAAO,OACf,KAAO,KAAK,CACR,KAAM,GAAI,EAAO,GACX,EAAI,EAAQ,GAClB,GAAI,EAAG,CACH,SAAW,KAAO,GACd,AAAM,IAAO,IACT,GAAY,GAAO,GAE3B,SAAW,KAAO,GACd,AAAK,EAAc,IACf,GAAO,GAAO,EAAE,GAChB,EAAc,GAAO,GAG7B,EAAO,GAAK,MAGZ,UAAW,KAAO,GACd,EAAc,GAAO,EAIjC,SAAW,KAAO,GACd,AAAM,IAAO,IACT,GAAO,GAAO,QAEtB,MAAO,EACX,CACA,YAA2B,EAAc,CACrC,MAAO,OAAO,IAAiB,UAAY,IAAiB,KAAO,EAAe,EACtF,CAiNA,YAAc,EAAW,EAAM,EAAU,CACrC,KAAM,GAAQ,EAAU,GAAG,MAAM,GACjC,AAAI,IAAU,QACV,GAAU,GAAG,MAAM,GAAS,EAC5B,EAAS,EAAU,GAAG,IAAI,EAAM,EAExC,CACA,YAA0B,EAAO,CAC7B,GAAS,EAAM,GACnB,CAIA,YAAyB,EAAW,EAAQ,EAAQ,EAAe,CAC/D,KAAM,CAAE,WAAU,WAAU,aAAY,gBAAiB,EAAU,GACnE,GAAY,EAAS,EAAE,EAAQ,CAAM,EAChC,GAED,GAAoB,IAAM,CACtB,KAAM,GAAiB,EAAS,IAAI,EAAG,EAAE,OAAO,EAAW,EAC3D,AAAI,EACA,EAAW,KAAK,GAAG,CAAc,EAKjC,GAAQ,CAAc,EAE1B,EAAU,GAAG,SAAW,GAC3B,EAEL,EAAa,QAAQ,EAAmB,CAC5C,CACA,YAA2B,EAAW,EAAW,CAC7C,KAAM,GAAK,EAAU,GACrB,AAAI,EAAG,WAAa,MAChB,IAAQ,EAAG,UAAU,EACrB,EAAG,UAAY,EAAG,SAAS,EAAE,CAAS,EAGtC,EAAG,WAAa,EAAG,SAAW,KAC9B,EAAG,IAAM,GAEjB,CACA,YAAoB,EAAW,EAAG,CAC9B,AAAI,EAAU,GAAG,MAAM,KAAO,IAC1B,IAAiB,KAAK,CAAS,EAC/B,KACA,EAAU,GAAG,MAAM,KAAK,CAAC,GAE7B,EAAU,GAAG,MAAO,EAAI,GAAM,IAAO,GAAM,EAAI,EACnD,CACA,YAAc,EAAW,EAAS,EAAU,EAAiB,EAAW,EAAO,EAAe,EAAQ,CAAC,EAAE,EAAG,CACxG,KAAM,GAAmB,GACzB,GAAsB,CAAS,EAC/B,KAAM,GAAK,EAAU,GAAK,CACtB,SAAU,KACV,IAAK,KAEL,QACA,OAAQ,EACR,YACA,MAAO,KAEP,SAAU,GACV,WAAY,GACZ,cAAe,GACf,cAAe,GACf,aAAc,GACd,QAAS,GAAI,KAAI,EAAQ,SAAY,GAAmB,EAAiB,GAAG,QAAU,GAAG,EAEzF,UAAW,KACX,QACA,WAAY,GACZ,KAAM,EAAQ,QAAU,EAAiB,GAAG,MAEhD,GAAiB,EAAc,EAAG,IAAI,EACtC,GAAI,GAAQ,GAkBZ,GAjBA,EAAG,IAAM,EACH,EAAS,EAAW,EAAQ,OAAS,GAAI,CAAC,EAAG,KAAQ,IAAS,CAC5D,KAAM,GAAQ,EAAK,OAAS,EAAK,GAAK,EACtC,MAAI,GAAG,KAAO,EAAU,EAAG,IAAI,GAAI,EAAG,IAAI,GAAK,CAAK,GAC5C,EAAC,EAAG,YAAc,EAAG,MAAM,IAC3B,EAAG,MAAM,GAAG,CAAK,EACjB,GACA,GAAW,EAAW,CAAC,GAExB,EACV,EACC,GACN,EAAG,SACH,EAAQ,GACR,GAAQ,EAAG,aAAa,EAExB,EAAG,SAAW,EAAkB,EAAgB,EAAG,GAAG,EAAI,GACtD,EAAQ,OAAQ,CAChB,GAAI,EAAQ,QAAS,CAEjB,KAAM,GAAQ,GAAS,EAAQ,MAAM,EAErC,EAAG,UAAY,EAAG,SAAS,EAAE,CAAK,EAClC,EAAM,QAAQ,CAAM,MAIpB,GAAG,UAAY,EAAG,SAAS,IAE/B,AAAI,EAAQ,OACR,EAAc,EAAU,GAAG,QAAQ,EACvC,GAAgB,EAAW,EAAQ,OAAQ,EAAQ,OAAQ,EAAQ,aAAa,EAEhF,KAEJ,GAAsB,CAAgB,CAC1C,CAiDA,MAAM,EAAgB,CAClB,UAAW,CACP,GAAkB,KAAM,CAAC,EACzB,KAAK,SAAW,EAEpB,IAAI,EAAM,EAAU,CAChB,KAAM,GAAa,KAAK,GAAG,UAAU,IAAU,MAAK,GAAG,UAAU,GAAQ,IACzE,SAAU,KAAK,CAAQ,EAChB,IAAM,CACT,KAAM,GAAQ,EAAU,QAAQ,CAAQ,EACxC,AAAI,IAAU,IACV,EAAU,OAAO,EAAO,CAAC,GAGrC,KAAK,EAAS,CACV,AAAI,KAAK,OAAS,CAAC,GAAS,CAAO,GAC/B,MAAK,GAAG,WAAa,GACrB,KAAK,MAAM,CAAO,EAClB,KAAK,GAAG,WAAa,IAGjC,CCx8DA,KAAM,IAAmB,GAMzB,YAAkB,EAAO,EAAO,CAC5B,MAAO,CACH,UAAW,GAAS,EAAO,CAAK,EAAE,UAE1C,CAMA,YAAkB,EAAO,EAAQ,EAAM,CACnC,GAAI,GACJ,KAAM,GAAc,GAAI,KACxB,WAAa,EAAW,CACpB,GAAI,GAAe,EAAO,CAAS,GAC/B,GAAQ,EACJ,GAAM,CACN,KAAM,GAAY,CAAC,GAAiB,OACpC,SAAW,KAAc,GACrB,EAAW,KACX,GAAiB,KAAK,EAAY,CAAK,EAE3C,GAAI,EAAW,CACX,OAAS,GAAI,EAAG,EAAI,GAAiB,OAAQ,GAAK,EAC9C,GAAiB,GAAG,GAAG,GAAiB,EAAI,EAAE,EAElD,GAAiB,OAAS,IAK1C,WAAgB,EAAI,CAChB,EAAI,EAAG,CAAK,CAAC,EAEjB,WAAmB,EAAK,EAAa,EAAM,CACvC,KAAM,GAAa,CAAC,EAAK,CAAU,EACnC,SAAY,IAAI,CAAU,EACtB,EAAY,OAAS,GACrB,GAAO,EAAM,CAAG,GAAK,GAEzB,EAAI,CAAK,EACF,IAAM,CACT,EAAY,OAAO,CAAU,EACzB,EAAY,OAAS,GACrB,KACA,EAAO,OAInB,MAAO,CAAE,MAAK,SAAQ,YAC1B,CACA,YAAiB,EAAQ,EAAI,EAAe,CACxC,KAAM,GAAS,CAAC,MAAM,QAAQ,CAAM,EAC9B,EAAe,EACf,CAAC,CAAM,EACP,EACA,EAAO,EAAG,OAAS,EACzB,MAAO,IAAS,EAAe,AAAC,GAAQ,CACpC,GAAI,GAAS,GACb,KAAM,GAAS,GACf,GAAI,GAAU,EACV,EAAU,EACd,KAAM,GAAO,IAAM,CACf,GAAI,EACA,OAEJ,IACA,KAAM,GAAS,EAAG,EAAS,EAAO,GAAK,EAAQ,CAAG,EAClD,AAAI,EACA,EAAI,CAAM,EAGV,EAAU,GAAY,CAAM,EAAI,EAAS,GAG3C,EAAgB,EAAa,IAAI,CAAC,EAAO,IAAM,GAAU,EAAO,AAAC,GAAU,CAC7E,EAAO,GAAK,EACZ,GAAW,CAAE,IAAK,GACd,GACA,KAEL,IAAM,CACL,GAAY,GAAK,EACpB,CAAC,EACF,SAAS,GACT,IACO,UAAgB,CACnB,GAAQ,CAAa,EACrB,KAEP,CACL,CClGA,GAAI,IAAoB,SAA2B,EAAO,CACzD,MAAO,IAAgB,CAAK,GACxB,CAAC,GAAU,CAAK,CACrB,EAEA,YAAyB,EAAO,CAC/B,MAAO,CAAC,CAAC,GAAS,MAAO,IAAU,QACpC,CAEA,YAAmB,EAAO,CACzB,GAAI,GAAc,OAAO,UAAU,SAAS,KAAK,CAAK,EAEtD,MAAO,KAAgB,mBACnB,IAAgB,iBAChB,GAAe,CAAK,CACzB,CAGA,GAAI,IAAe,MAAO,SAAW,YAAc,OAAO,IACtD,GAAqB,GAAe,OAAO,IAAI,eAAe,EAAI,MAEtE,YAAwB,EAAO,CAC9B,MAAO,GAAM,WAAa,EAC3B,CAEA,YAAqB,EAAK,CACzB,MAAO,OAAM,QAAQ,CAAG,EAAI,GAAK,EAClC,CAEA,YAAuC,EAAO,EAAS,CACtD,MAAQ,GAAQ,QAAU,IAAS,EAAQ,kBAAkB,CAAK,EAC/D,GAAU,GAAY,CAAK,EAAG,EAAO,CAAO,EAC5C,CACJ,CAEA,YAA2B,EAAQ,EAAQ,EAAS,CACnD,MAAO,GAAO,OAAO,CAAM,EAAE,IAAI,SAAS,EAAS,CAClD,MAAO,IAA8B,EAAS,CAAO,EACrD,CACF,CAEA,YAA0B,EAAK,EAAS,CACvC,GAAI,CAAC,EAAQ,YACZ,MAAO,IAER,GAAI,GAAc,EAAQ,YAAY,CAAG,EACzC,MAAO,OAAO,IAAgB,WAAa,EAAc,EAC1D,CAEA,YAAyC,EAAQ,CAChD,MAAO,QAAO,sBACX,OAAO,sBAAsB,CAAM,EAAE,OAAO,SAAS,EAAQ,CAC9D,MAAO,GAAO,qBAAqB,CAAM,EACzC,EACC,EACJ,CAEA,YAAiB,EAAQ,CACxB,MAAO,QAAO,KAAK,CAAM,EAAE,OAAO,GAAgC,CAAM,CAAC,CAC1E,CAEA,YAA4B,EAAQ,EAAU,CAC7C,GAAI,CACH,MAAO,KAAY,QAClB,CACD,MAAO,GAET,CAGA,YAA0B,EAAQ,EAAK,CACtC,MAAO,IAAmB,EAAQ,CAAG,GACjC,CAAE,QAAO,eAAe,KAAK,EAAQ,CAAG,GACvC,OAAO,qBAAqB,KAAK,EAAQ,CAAG,EAClD,CAEA,YAAqB,EAAQ,EAAQ,EAAS,CAC7C,GAAI,GAAc,GAClB,MAAI,GAAQ,kBAAkB,CAAM,GACnC,GAAQ,CAAM,EAAE,QAAQ,SAAS,EAAK,CACrC,EAAY,GAAO,GAA8B,EAAO,GAAM,CAAO,EACrE,EAEF,GAAQ,CAAM,EAAE,QAAQ,SAAS,EAAK,CACrC,AAAI,GAAiB,EAAQ,CAAG,GAIhC,CAAI,GAAmB,EAAQ,CAAG,GAAK,EAAQ,kBAAkB,EAAO,EAAI,EAC3E,EAAY,GAAO,GAAiB,EAAK,CAAO,EAAE,EAAO,GAAM,EAAO,GAAM,CAAO,EAEnF,EAAY,GAAO,GAA8B,EAAO,GAAM,CAAO,GAEtE,EACM,CACR,CAEA,YAAmB,EAAQ,EAAQ,EAAS,CAC3C,EAAU,GAAW,GACrB,EAAQ,WAAa,EAAQ,YAAc,GAC3C,EAAQ,kBAAoB,EAAQ,mBAAqB,GAGzD,EAAQ,8BAAgC,GAExC,GAAI,GAAgB,MAAM,QAAQ,CAAM,EACpC,EAAgB,MAAM,QAAQ,CAAM,EACpC,EAA4B,IAAkB,EAElD,MAAK,GAEM,EACH,EAAQ,WAAW,EAAQ,EAAQ,CAAO,EAE1C,GAAY,EAAQ,EAAQ,CAAO,EAJnC,GAA8B,EAAQ,CAAO,CAMtD,CAEA,GAAU,IAAM,SAAsB,EAAO,EAAS,CACrD,GAAI,CAAC,MAAM,QAAQ,CAAK,EACvB,KAAM,IAAI,OAAM,mCAAmC,EAGpD,MAAO,GAAM,OAAO,SAAS,EAAM,EAAM,CACxC,MAAO,IAAU,EAAM,EAAM,CAAO,GAClC,EAAE,CACN,EAEA,GAAI,IAAc,GAElB,GAAiB,GCpIjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gFAgBA,GAAI,IAAgB,SAAS,EAAG,EAAG,CAC/B,UAAgB,OAAO,gBAClB,CAAE,UAAW,aAAgB,QAAS,SAAU,EAAG,EAAG,CAAE,EAAE,UAAY,IACvE,SAAU,EAAG,EAAG,CAAE,OAAS,KAAK,GAAG,AAAI,OAAO,UAAU,eAAe,KAAK,EAAG,CAAC,GAAG,GAAE,GAAK,EAAE,KACzF,GAAc,EAAG,CAAC,CAC7B,EAEO,YAAmB,EAAG,EAAG,CAC5B,GAAI,MAAO,IAAM,YAAc,IAAM,KACjC,KAAM,IAAI,WAAU,uBAAyB,OAAO,CAAC,EAAI,+BAA+B,EAC5F,GAAc,EAAG,CAAC,EAClB,YAAc,CAAE,KAAK,YAAc,EACnC,EAAE,UAAY,IAAM,KAAO,OAAO,OAAO,CAAC,EAAK,GAAG,UAAY,EAAE,UAAW,GAAI,GACnF,CAEO,GAAI,GAAW,UAAW,CAC7B,SAAW,OAAO,QAAU,SAAkB,EAAG,CAC7C,OAAS,GAAG,EAAI,EAAG,EAAI,UAAU,OAAQ,EAAI,EAAG,IAAK,CACjD,EAAI,UAAU,GACd,OAAS,KAAK,GAAG,AAAI,OAAO,UAAU,eAAe,KAAK,EAAG,CAAC,GAAG,GAAE,GAAK,EAAE,IAE9E,MAAO,IAEJ,EAAS,MAAM,KAAM,SAAS,CACzC,EA4HO,YAAuB,EAAI,EAAM,EAAM,CAC1C,GAAI,GAAQ,UAAU,SAAW,EAAG,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,EAAI,EAAI,EAAG,IAC5E,AAAI,IAAM,CAAE,KAAK,MACR,IAAI,GAAK,MAAM,UAAU,MAAM,KAAK,EAAM,EAAG,CAAC,GACnD,EAAG,GAAK,EAAK,IAGrB,MAAO,GAAG,OAAO,GAAM,MAAM,UAAU,MAAM,KAAK,CAAI,CAAC,CAC3D,CC5KO,GAAI,GACX,AAAC,UAAU,EAAW,CAElB,EAAU,EAAU,8BAAmC,GAAK,gCAE5D,EAAU,EAAU,eAAoB,GAAK,iBAE7C,EAAU,EAAU,mBAAwB,GAAK,qBAEjD,EAAU,EAAU,qBAA0B,GAAK,uBAEnD,EAAU,EAAU,sBAA2B,GAAK,wBAEpD,EAAU,EAAU,sBAA2B,GAAK,wBAEpD,EAAU,EAAU,wBAA6B,GAAK,0BAEtD,EAAU,EAAU,2BAAgC,GAAK,6BAEzD,EAAU,EAAU,uBAA4B,GAAK,yBAErD,EAAU,EAAU,0BAA+B,IAAM,4BAEzD,EAAU,EAAU,iCAAsC,IAAM,mCAEhE,EAAU,EAAU,+BAAoC,IAAM,iCAE9D,EAAU,EAAU,oCAAyC,IAAM,sCAEnE,EAAU,EAAU,qCAA0C,IAAM,uCAEpE,EAAU,EAAU,gCAAqC,IAAM,kCAE/D,EAAU,EAAU,gCAAqC,IAAM,kCAE/D,EAAU,EAAU,yCAA8C,IAAM,2CAKxE,EAAU,EAAU,yCAA8C,IAAM,2CAExE,EAAU,EAAU,iCAAsC,IAAM,mCAKhE,EAAU,EAAU,mCAAwC,IAAM,qCAIlE,EAAU,EAAU,mCAAwC,IAAM,qCAElE,EAAU,EAAU,qBAA0B,IAAM,uBAEpD,EAAU,EAAU,YAAiB,IAAM,cAE3C,EAAU,EAAU,iBAAsB,IAAM,mBAEhD,EAAU,EAAU,sBAA2B,IAAM,wBAErD,EAAU,EAAU,aAAkB,IAAM,cAChD,GAAG,GAAc,GAAY,GAAG,EC9DzB,GAAI,GACX,AAAC,UAAU,EAAM,CAIb,EAAK,EAAK,QAAa,GAAK,UAI5B,EAAK,EAAK,SAAc,GAAK,WAI7B,EAAK,EAAK,OAAY,GAAK,SAI3B,EAAK,EAAK,KAAU,GAAK,OAIzB,EAAK,EAAK,KAAU,GAAK,OAIzB,EAAK,EAAK,OAAY,GAAK,SAI3B,EAAK,EAAK,OAAY,GAAK,SAK3B,EAAK,EAAK,MAAW,GAAK,QAI1B,EAAK,EAAK,IAAS,GAAK,KAC5B,GAAG,GAAS,GAAO,GAAG,EACf,GAAI,IACX,AAAC,UAAU,EAAe,CACtB,EAAc,EAAc,OAAY,GAAK,SAC7C,EAAc,EAAc,SAAc,GAAK,UACnD,GAAG,IAAkB,IAAgB,GAAG,EAIjC,YAA0B,EAAI,CACjC,MAAO,GAAG,OAAS,EAAK,OAC5B,CACO,YAA2B,EAAI,CAClC,MAAO,GAAG,OAAS,EAAK,QAC5B,CACO,YAAyB,EAAI,CAChC,MAAO,GAAG,OAAS,EAAK,MAC5B,CACO,YAAuB,EAAI,CAC9B,MAAO,GAAG,OAAS,EAAK,IAC5B,CACO,YAAuB,EAAI,CAC9B,MAAO,GAAG,OAAS,EAAK,IAC5B,CACO,YAAyB,EAAI,CAChC,MAAO,GAAG,OAAS,EAAK,MAC5B,CACO,YAAyB,EAAI,CAChC,MAAO,GAAG,OAAS,EAAK,MAC5B,CACO,YAAwB,EAAI,CAC/B,MAAO,GAAG,OAAS,EAAK,KAC5B,CACO,YAAsB,EAAI,CAC7B,MAAO,GAAG,OAAS,EAAK,GAC5B,CACO,YAA0B,EAAI,CACjC,MAAO,CAAC,CAAE,IAAM,MAAO,IAAO,UAAY,EAAG,OAAS,GAAc,OACxE,CACO,YAA4B,EAAI,CACnC,MAAO,CAAC,CAAE,IAAM,MAAO,IAAO,UAAY,EAAG,OAAS,GAAc,SACxE,CC/EO,GAAI,IAAwB,+CCI/B,GAAkB,4KAOf,YAA+B,EAAU,CAC5C,GAAI,GAAS,GACb,SAAS,QAAQ,GAAiB,SAAU,EAAO,CAC/C,GAAI,GAAM,EAAM,OAChB,OAAQ,EAAM,QAEL,IACD,EAAO,IAAM,IAAQ,EAAI,OAAS,IAAQ,EAAI,SAAW,QACzD,UAEC,IACD,EAAO,KAAO,IAAQ,EAAI,UAAY,UACtC,UACC,QACA,QACA,QACA,IACD,KAAM,IAAI,YAAW,8DAA8D,MAElF,QACA,IACD,KAAM,IAAI,YAAW,4CAA4C,MAEhE,QACA,IACD,EAAO,MAAQ,CAAC,UAAW,UAAW,QAAS,OAAQ,QAAQ,EAAE,EAAM,GACvE,UAEC,QACA,IACD,KAAM,IAAI,YAAW,yCAAyC,MAC7D,IACD,EAAO,IAAM,CAAC,UAAW,SAAS,EAAE,EAAM,GAC1C,UACC,QACA,QACA,IACD,KAAM,IAAI,YAAW,2DAA2D,MAE/E,IACD,EAAO,QAAU,IAAQ,EAAI,QAAU,IAAQ,EAAI,SAAW,QAC9D,UACC,IACD,GAAI,EAAM,EACN,KAAM,IAAI,YAAW,+CAA+C,EAExE,EAAO,QAAU,CAAC,QAAS,OAAQ,SAAU,OAAO,EAAE,EAAM,GAC5D,UACC,IACD,GAAI,EAAM,EACN,KAAM,IAAI,YAAW,+CAA+C,EAExE,EAAO,QAAU,CAAC,QAAS,OAAQ,SAAU,OAAO,EAAE,EAAM,GAC5D,UAEC,IACD,EAAO,OAAS,GAChB,UACC,QACA,IACD,KAAM,IAAI,YAAW,4DAA4D,MAEhF,IACD,EAAO,UAAY,MACnB,EAAO,KAAO,CAAC,UAAW,SAAS,EAAE,EAAM,GAC3C,UACC,IACD,EAAO,UAAY,MACnB,EAAO,KAAO,CAAC,UAAW,SAAS,EAAE,EAAM,GAC3C,UACC,IACD,EAAO,UAAY,MACnB,EAAO,KAAO,CAAC,UAAW,SAAS,EAAE,EAAM,GAC3C,UACC,IACD,EAAO,UAAY,MACnB,EAAO,KAAO,CAAC,UAAW,SAAS,EAAE,EAAM,GAC3C,UACC,QACA,QACA,IACD,KAAM,IAAI,YAAW,kEAAkE,MAEtF,IACD,EAAO,OAAS,CAAC,UAAW,SAAS,EAAE,EAAM,GAC7C,UAEC,IACD,EAAO,OAAS,CAAC,UAAW,SAAS,EAAE,EAAM,GAC7C,UACC,QACA,IACD,KAAM,IAAI,YAAW,4DAA4D,MAEhF,IACD,EAAO,aAAe,EAAM,EAAI,QAAU,OAC1C,UACC,QACA,QACA,QACA,QACA,QACA,IACD,KAAM,IAAI,YAAW,sEAAsE,EAEnG,MAAO,GACV,EACM,CACX,CCvHO,GAAI,IAAoB,wCCCxB,YAAuC,EAAU,CACpD,GAAI,EAAS,SAAW,EACpB,KAAM,IAAI,OAAM,iCAAiC,EAOrD,OAJI,GAAe,EACd,MAAM,EAAiB,EACvB,OAAO,SAAU,EAAG,CAAE,MAAO,GAAE,OAAS,EAAI,EAC7C,EAAS,GACJ,EAAK,EAAG,EAAiB,EAAc,EAAK,EAAe,OAAQ,IAAM,CAC9E,GAAI,GAAc,EAAe,GAC7B,EAAiB,EAAY,MAAM,GAAG,EAC1C,GAAI,EAAe,SAAW,EAC1B,KAAM,IAAI,OAAM,yBAAyB,EAG7C,OADI,GAAO,EAAe,GAAI,EAAU,EAAe,MAAM,CAAC,EACrD,EAAK,EAAG,EAAY,EAAS,EAAK,EAAU,OAAQ,IAAM,CAC/D,GAAI,GAAS,EAAU,GACvB,GAAI,EAAO,SAAW,EAClB,KAAM,IAAI,OAAM,yBAAyB,EAGjD,EAAO,KAAK,CAAE,KAAM,EAAM,QAAS,EAAS,EAEhD,MAAO,EACX,CACA,YAAuB,EAAM,CACzB,MAAO,GAAK,QAAQ,UAAW,EAAE,CACrC,CACA,GAAI,IAA2B,mCAC3B,GAA8B,wBAC9B,GAAsB,0BACtB,GAA8B,SAClC,YAAmC,EAAK,CACpC,GAAI,GAAS,GACb,MAAI,GAAI,EAAI,OAAS,KAAO,IACxB,EAAO,iBAAmB,gBAErB,EAAI,EAAI,OAAS,KAAO,KAC7B,GAAO,iBAAmB,iBAE9B,EAAI,QAAQ,GAA6B,SAAU,EAAG,EAAI,EAAI,CAE1D,MAAI,OAAO,IAAO,SACd,GAAO,yBAA2B,EAAG,OACrC,EAAO,yBAA2B,EAAG,QAGpC,AAAI,IAAO,IACZ,EAAO,yBAA2B,EAAG,OAGpC,AAAI,EAAG,KAAO,IACf,EAAO,yBAA2B,EAAG,OAIrC,GAAO,yBAA2B,EAAG,OACrC,EAAO,yBACH,EAAG,OAAU,OAAO,IAAO,SAAW,EAAG,OAAS,IAEnD,GACV,EACM,CACX,CACA,YAAmB,EAAK,CACpB,OAAQ,OACC,YACD,MAAO,CACH,YAAa,YAEhB,sBACA,KACD,MAAO,CACH,aAAc,kBAEjB,kBACA,KACD,MAAO,CACH,YAAa,cAEhB,6BACA,MACD,MAAO,CACH,YAAa,SACb,aAAc,kBAEjB,uBACA,KACD,MAAO,CACH,YAAa,kBAEhB,kCACA,MACD,MAAO,CACH,YAAa,aACb,aAAc,kBAEjB,iBACA,KACD,MAAO,CACH,YAAa,SAG7B,CACA,YAAkD,EAAM,CAEpD,GAAI,GAaJ,GAZA,AAAI,EAAK,KAAO,KAAO,EAAK,KAAO,IAC/B,GAAS,CACL,SAAU,eAEd,EAAO,EAAK,MAAM,CAAC,GAEd,EAAK,KAAO,KACjB,GAAS,CACL,SAAU,cAEd,EAAO,EAAK,MAAM,CAAC,GAEnB,EAAQ,CACR,GAAI,GAAc,EAAK,MAAM,EAAG,CAAC,EASjC,GARA,AAAI,IAAgB,KAChB,GAAO,YAAc,SACrB,EAAO,EAAK,MAAM,CAAC,GAEd,IAAgB,MACrB,GAAO,YAAc,aACrB,EAAO,EAAK,MAAM,CAAC,GAEnB,CAAC,GAA4B,KAAK,CAAI,EACtC,KAAM,IAAI,OAAM,2CAA2C,EAE/D,EAAO,qBAAuB,EAAK,OAEvC,MAAO,EACX,CACA,YAA8B,EAAK,CAC/B,GAAI,GAAS,GACT,EAAW,GAAU,CAAG,EAC5B,MAAI,IAGG,CACX,CAIO,YAA6B,EAAQ,CAExC,OADI,GAAS,GACJ,EAAK,EAAG,EAAW,EAAQ,EAAK,EAAS,OAAQ,IAAM,CAC5D,GAAI,GAAQ,EAAS,GACrB,OAAQ,EAAM,UACL,cACA,IACD,EAAO,MAAQ,UACf,aACC,QACD,EAAO,MAAQ,UACf,EAAO,MAAQ,IACf,aACC,WACD,EAAO,MAAQ,WACf,EAAO,SAAW,EAAM,QAAQ,GAChC,aACC,gBACA,KACD,EAAO,YAAc,GACrB,aACC,wBACA,IACD,EAAO,sBAAwB,EAC/B,aACC,mBACA,OACD,EAAO,MAAQ,OACf,EAAO,KAAO,GAAc,EAAM,QAAQ,EAAE,EAC5C,aACC,oBACA,IACD,EAAO,SAAW,UAClB,EAAO,eAAiB,QACxB,aACC,mBACA,KACD,EAAO,SAAW,UAClB,EAAO,eAAiB,OACxB,aACC,aACD,EAAS,EAAS,EAAS,EAAS,GAAI,CAAM,EAAG,CAAE,SAAU,aAAc,EAAG,EAAM,QAAQ,OAAO,SAAU,EAAK,EAAK,CAAE,MAAQ,GAAS,EAAS,GAAI,CAAG,EAAG,GAAqB,CAAG,CAAC,GAAO,EAAE,CAAC,EAChM,aACC,cACD,EAAS,EAAS,EAAS,EAAS,GAAI,CAAM,EAAG,CAAE,SAAU,cAAe,EAAG,EAAM,QAAQ,OAAO,SAAU,EAAK,EAAK,CAAE,MAAQ,GAAS,EAAS,GAAI,CAAG,EAAG,GAAqB,CAAG,CAAC,GAAO,EAAE,CAAC,EACjM,aACC,kBACD,EAAO,SAAW,WAClB,aAEC,oBACD,EAAO,gBAAkB,eACzB,EAAO,YAAc,SACrB,aACC,mBACD,EAAO,gBAAkB,OACzB,EAAO,YAAc,QACrB,aACC,uBACD,EAAO,gBAAkB,OACzB,EAAO,YAAc,OACrB,aACC,sBACD,EAAO,gBAAkB,SACzB,aACC,QACD,EAAO,MAAQ,WAAW,EAAM,QAAQ,EAAE,EAC1C,aAEC,gBACD,GAAI,EAAM,QAAQ,OAAS,EACvB,KAAM,IAAI,YAAW,0DAA0D,EAEnF,EAAM,QAAQ,GAAG,QAAQ,GAAqB,SAAU,EAAG,EAAI,EAAI,EAAI,EAAI,EAAI,CAC3E,GAAI,EACA,EAAO,qBAAuB,EAAG,WAEhC,IAAI,GAAM,EACX,KAAM,IAAI,OAAM,oDAAoD,EAEnE,GAAI,EACL,KAAM,IAAI,OAAM,kDAAkD,EAEtE,MAAO,GACV,EACD,SAGR,GAAI,GAA4B,KAAK,EAAM,IAAI,EAAG,CAC9C,EAAO,qBAAuB,EAAM,KAAK,OACzC,SAEJ,GAAI,GAAyB,KAAK,EAAM,IAAI,EAAG,CAI3C,GAAI,EAAM,QAAQ,OAAS,EACvB,KAAM,IAAI,YAAW,+DAA+D,EAExF,EAAM,KAAK,QAAQ,GAA0B,SAAU,EAAG,EAAI,EAAI,EAAI,EAAI,EAAI,CAE1E,MAAI,KAAO,IACP,EAAO,sBAAwB,EAAG,OAGjC,AAAI,GAAM,EAAG,KAAO,IACrB,EAAO,sBAAwB,EAAG,OAGjC,AAAI,GAAM,EACX,GAAO,sBAAwB,EAAG,OAClC,EAAO,sBAAwB,EAAG,OAAS,EAAG,QAG9C,GAAO,sBAAwB,EAAG,OAClC,EAAO,sBAAwB,EAAG,QAE/B,GACV,EACD,GAAI,GAAM,EAAM,QAAQ,GAExB,AAAI,IAAQ,IACR,EAAS,EAAS,EAAS,GAAI,CAAM,EAAG,CAAE,oBAAqB,iBAAkB,EAE5E,GACL,GAAS,EAAS,EAAS,GAAI,CAAM,EAAG,GAA0B,CAAG,CAAC,GAE1E,SAGJ,GAAI,GAA4B,KAAK,EAAM,IAAI,EAAG,CAC9C,EAAS,EAAS,EAAS,GAAI,CAAM,EAAG,GAA0B,EAAM,IAAI,CAAC,EAC7E,SAEJ,GAAI,GAAW,GAAU,EAAM,IAAI,EACnC,AAAI,GACA,GAAS,EAAS,EAAS,GAAI,CAAM,EAAG,CAAQ,GAEpD,GAAI,GAAsC,GAAyC,EAAM,IAAI,EAC7F,AAAI,GACA,GAAS,EAAS,EAAS,GAAI,CAAM,EAAG,CAAmC,GAGnF,MAAO,EACX,CCtSA,GAAI,IAMA,GAA8B,GAAI,QAAO,IAAI,OAAO,GAAsB,OAAQ,GAAG,CAAC,EACtF,GAA4B,GAAI,QAAO,GAAG,OAAO,GAAsB,OAAQ,IAAI,CAAC,EACxF,WAAwB,EAAO,EAAK,CAChC,MAAO,CAAE,MAAO,EAAO,IAAK,EAChC,CAGA,GAAI,IAAsB,CAAC,CAAC,OAAO,UAAU,WACzC,GAAyB,CAAC,CAAC,OAAO,cAClC,GAAuB,CAAC,CAAC,OAAO,YAChC,GAAuB,CAAC,CAAC,OAAO,UAAU,YAC1C,GAAe,CAAC,CAAC,OAAO,UAAU,UAClC,GAAa,CAAC,CAAC,OAAO,UAAU,QAChC,GAAyB,CAAC,CAAC,OAAO,cAClC,GAAgB,GACd,OAAO,cACP,SAAU,EAAG,CACX,MAAQ,OAAO,IAAM,UACjB,SAAS,CAAC,GACV,KAAK,MAAM,CAAC,IAAM,GAClB,KAAK,IAAI,CAAC,GAAK,kBAGvB,GAAyB,GAC7B,GAAI,CACA,GAAI,IAAK,GAAG,4CAA6C,IAAI,EAO7D,GAA2B,KAAK,GAAG,KAAK,GAAG,KAAO,MAAQ,KAAO,OAAS,OAAS,GAAG,MAAQ,GAClG,MACA,CACI,GAAyB,EAC7B,CACA,GAAI,IAAa,GAET,SAAoB,EAAG,EAAQ,EAAU,CACrC,MAAO,GAAE,WAAW,EAAQ,CAAQ,GAGxC,SAAoB,EAAG,EAAQ,EAAU,CACrC,MAAO,GAAE,MAAM,EAAU,EAAW,EAAO,MAAM,IAAM,GAE/D,GAAgB,GACd,OAAO,cAEL,UAAyB,CAErB,OADI,GAAa,GACR,EAAK,EAAG,EAAK,UAAU,OAAQ,IACpC,EAAW,GAAM,UAAU,GAM/B,OAJI,GAAW,GACX,EAAS,EAAW,OACpB,EAAI,EACJ,EACG,EAAS,GAAG,CAEf,GADA,EAAO,EAAW,KACd,EAAO,QACP,KAAM,YAAW,EAAO,4BAA4B,EACxD,GACI,EAAO,MACD,OAAO,aAAa,CAAI,EACxB,OAAO,aAAe,KAAQ,QAAY,IAAM,MAAS,EAAO,KAAS,KAAM,EAE7F,MAAO,IAEf,GAEJ,GACM,OAAO,YAEL,SAAqB,EAAS,CAE1B,OADI,GAAM,GACD,EAAK,EAAG,EAAY,EAAS,EAAK,EAAU,OAAQ,IAAM,CAC/D,GAAI,GAAK,EAAU,GAAK,EAAI,EAAG,GAAI,EAAI,EAAG,GAC1C,EAAI,GAAK,EAEb,MAAO,IAEf,GAAc,GAEV,SAAqB,EAAG,EAAO,CAC3B,MAAO,GAAE,YAAY,CAAK,GAG9B,SAAqB,EAAG,EAAO,CAC3B,GAAI,GAAO,EAAE,OACb,GAAI,IAAQ,GAAK,GAAS,GAG1B,IAAI,GAAQ,EAAE,WAAW,CAAK,EAC1B,EACJ,MAAO,GAAQ,OACX,EAAQ,OACR,EAAQ,IAAM,GACb,GAAS,EAAE,WAAW,EAAQ,CAAC,GAAK,OACrC,EAAS,MACP,EACE,GAAQ,OAAW,IAAO,GAAS,OAAU,QAE7D,GAAY,GAER,SAAmB,EAAG,CAClB,MAAO,GAAE,aAGb,SAAmB,EAAG,CAClB,MAAO,GAAE,QAAQ,GAA6B,EAAE,GAExD,GAAU,GAEN,SAAiB,EAAG,CAChB,MAAO,GAAE,WAGb,SAAiB,EAAG,CAChB,MAAO,GAAE,QAAQ,GAA2B,EAAE,GAG1D,YAAY,EAAG,EAAM,CACjB,MAAO,IAAI,QAAO,EAAG,CAAI,CAC7B,CAEA,GAAI,IACJ,GAAI,GAAwB,CAExB,GAAI,IAAyB,GAAG,4CAA6C,IAAI,EACjF,GAAyB,SAAgC,EAAG,EAAO,CAC/D,GAAI,GACJ,GAAuB,UAAY,EACnC,GAAI,GAAQ,GAAuB,KAAK,CAAC,EACzC,MAAQ,GAAK,EAAM,MAAQ,MAAQ,IAAO,OAAS,EAAK,GAEhE,KAGI,IAAyB,SAAgC,EAAG,EAAO,CAE/D,OADI,GAAQ,KACC,CACT,GAAI,GAAI,GAAY,EAAG,CAAK,EAC5B,GAAI,IAAM,QAAa,GAAc,CAAC,GAAK,GAAiB,CAAC,EACzD,MAEJ,EAAM,KAAK,CAAC,EACZ,GAAS,GAAK,MAAU,EAAI,EAEhC,MAAO,IAAc,MAAM,OAAQ,CAAK,GAGhD,GAAI,IAAwB,UAAY,CACpC,WAAgB,EAAS,EAAS,CAC9B,AAAI,IAAY,QAAU,GAAU,IACpC,KAAK,QAAU,EACf,KAAK,SAAW,CAAE,OAAQ,EAAG,KAAM,EAAG,OAAQ,GAC9C,KAAK,UAAY,CAAC,CAAC,EAAQ,UAC3B,KAAK,oBAAsB,CAAC,CAAC,EAAQ,oBACrC,KAAK,qBAAuB,CAAC,CAAC,EAAQ,qBAE1C,SAAO,UAAU,MAAQ,UAAY,CACjC,GAAI,KAAK,WAAa,EAClB,KAAM,OAAM,8BAA8B,EAE9C,MAAO,MAAK,aAAa,EAAG,GAAI,EAAK,GAEzC,EAAO,UAAU,aAAe,SAAU,EAAc,EAAe,EAAmB,CAEtF,OADI,GAAW,GACR,CAAC,KAAK,SAAS,CAClB,GAAI,GAAO,KAAK,OAChB,GAAI,IAAS,IAAe,CACxB,GAAI,GAAS,KAAK,cAAc,EAAc,CAAiB,EAC/D,GAAI,EAAO,IACP,MAAO,GAEX,EAAS,KAAK,EAAO,GAAG,MAEvB,IAAI,IAAS,KAAiB,EAAe,EAC9C,MAEC,GAAI,IAAS,IACb,KAAkB,UAAY,IAAkB,iBAAkB,CACnE,GAAI,GAAW,KAAK,gBACpB,KAAK,OACL,EAAS,KAAK,CACV,KAAM,EAAK,MACX,SAAU,EAAe,EAAU,KAAK,eAAe,EAC1D,UAEI,IAAS,IACd,CAAC,KAAK,WACN,KAAK,SAAW,GAClB,CACE,GAAI,EACA,MAGA,MAAO,MAAK,MAAM,EAAU,sBAAuB,EAAe,KAAK,gBAAiB,KAAK,eAAe,CAAC,UAG5G,IAAS,IACd,CAAC,KAAK,WACN,GAAS,KAAK,QAAU,CAAC,EAAG,CAC5B,GAAI,GAAS,KAAK,SAAS,EAAc,CAAa,EACtD,GAAI,EAAO,IACP,MAAO,GAEX,EAAS,KAAK,EAAO,GAAG,MAEvB,CACD,GAAI,GAAS,KAAK,aAAa,EAAc,CAAa,EAC1D,GAAI,EAAO,IACP,MAAO,GAEX,EAAS,KAAK,EAAO,GAAG,IAGhC,MAAO,CAAE,IAAK,EAAU,IAAK,OAoBjC,EAAO,UAAU,SAAW,SAAU,EAAc,EAAe,CAC/D,GAAI,GAAgB,KAAK,gBACzB,KAAK,OACL,GAAI,GAAU,KAAK,eAEnB,GADA,KAAK,YACD,KAAK,OAAO,IAAI,EAEhB,MAAO,CACH,IAAK,CACD,KAAM,EAAK,QACX,MAAO,IAAI,OAAO,EAAS,IAAI,EAC/B,SAAU,EAAe,EAAe,KAAK,eAAe,GAEhE,IAAK,MAGR,GAAI,KAAK,OAAO,GAAG,EAAG,CACvB,GAAI,GAAiB,KAAK,aAAa,EAAe,EAAG,EAAe,EAAI,EAC5E,GAAI,EAAe,IACf,MAAO,GAEX,GAAI,GAAW,EAAe,IAE1B,EAAsB,KAAK,gBAC/B,GAAI,KAAK,OAAO,IAAI,EAAG,CACnB,GAAI,KAAK,SAAW,CAAC,GAAS,KAAK,MAAM,EACrC,MAAO,MAAK,MAAM,EAAU,YAAa,EAAe,EAAqB,KAAK,eAAe,CAAC,EAEtG,GAAI,GAA8B,KAAK,gBACnC,EAAiB,KAAK,eAC1B,MAAI,KAAY,EACL,KAAK,MAAM,EAAU,sBAAuB,EAAe,EAA6B,KAAK,eAAe,CAAC,EAExH,MAAK,YACD,AAAC,KAAK,OAAO,GAAG,EAGb,CACH,IAAK,CACD,KAAM,EAAK,IACX,MAAO,EACP,SAAU,EACV,SAAU,EAAe,EAAe,KAAK,eAAe,GAEhE,IAAK,MATE,KAAK,MAAM,EAAU,YAAa,EAAe,EAAqB,KAAK,eAAe,CAAC,OAatG,OAAO,MAAK,MAAM,EAAU,aAAc,EAAe,EAAe,KAAK,eAAe,CAAC,MAIjG,OAAO,MAAK,MAAM,EAAU,YAAa,EAAe,EAAe,KAAK,eAAe,CAAC,GAMpG,EAAO,UAAU,aAAe,UAAY,CACxC,GAAI,GAAc,KAAK,SAEvB,IADA,KAAK,OACE,CAAC,KAAK,SAAW,GAA4B,KAAK,MAAM,GAC3D,KAAK,OAET,MAAO,MAAK,QAAQ,MAAM,EAAa,KAAK,QAAQ,GAExD,EAAO,UAAU,aAAe,SAAU,EAAc,EAAe,CAGnE,OAFI,GAAQ,KAAK,gBACb,EAAQ,KACC,CACT,GAAI,GAAmB,KAAK,cAAc,CAAa,EACvD,GAAI,EAAkB,CAClB,GAAS,EACT,SAEJ,GAAI,GAAsB,KAAK,iBAAiB,EAAc,CAAa,EAC3E,GAAI,EAAqB,CACrB,GAAS,EACT,SAEJ,GAAI,GAAuB,KAAK,2BAChC,GAAI,EAAsB,CACtB,GAAS,EACT,SAEJ,MAEJ,GAAI,GAAW,EAAe,EAAO,KAAK,eAAe,EACzD,MAAO,CACH,IAAK,CAAE,KAAM,EAAK,QAAS,MAAO,EAAO,SAAU,GACnD,IAAK,OAGb,EAAO,UAAU,yBAA2B,UAAY,CACpD,MAAI,CAAC,KAAK,SACN,KAAK,SAAW,IACf,MAAK,WAEF,CAAC,GAAgB,KAAK,QAAU,CAAC,GACrC,MAAK,OACE,KAEJ,MAOX,EAAO,UAAU,cAAgB,SAAU,EAAe,CACtD,GAAI,KAAK,SAAW,KAAK,SAAW,GAChC,MAAO,MAIX,OAAQ,KAAK,YACJ,IAED,YAAK,OACL,KAAK,OACE,QAEN,SACA,QACA,QACA,KACD,UACC,IACD,GAAI,IAAkB,UAAY,IAAkB,gBAChD,MAEJ,MAAO,cAEP,MAAO,MAEf,KAAK,OACL,GAAI,GAAa,CAAC,KAAK,MAAM,EAG7B,IAFA,KAAK,OAEE,CAAC,KAAK,SAAS,CAClB,GAAI,GAAK,KAAK,OACd,GAAI,IAAO,GACP,GAAI,KAAK,SAAW,GAChB,EAAW,KAAK,EAAE,EAElB,KAAK,WAEJ,CAED,KAAK,OACL,UAIJ,GAAW,KAAK,CAAE,EAEtB,KAAK,OAET,MAAO,IAAc,MAAM,OAAQ,CAAU,GAEjD,EAAO,UAAU,iBAAmB,SAAU,EAAc,EAAe,CACvE,GAAI,KAAK,QACL,MAAO,MAEX,GAAI,GAAK,KAAK,OACd,MAAI,KAAO,IACP,IAAO,KACN,IAAO,IACH,KAAkB,UAAY,IAAkB,kBACpD,IAAO,KAAiB,EAAe,EACjC,KAGP,MAAK,OACE,GAAc,CAAE,IAG/B,EAAO,UAAU,cAAgB,SAAU,EAAc,EAAmB,CACxE,GAAI,GAAuB,KAAK,gBAGhC,GAFA,KAAK,OACL,KAAK,YACD,KAAK,QACL,MAAO,MAAK,MAAM,EAAU,8BAA+B,EAAe,EAAsB,KAAK,eAAe,CAAC,EAEzH,GAAI,KAAK,SAAW,IAChB,YAAK,OACE,KAAK,MAAM,EAAU,eAAgB,EAAe,EAAsB,KAAK,eAAe,CAAC,EAG1G,GAAI,GAAQ,KAAK,4BAA4B,MAC7C,GAAI,CAAC,EACD,MAAO,MAAK,MAAM,EAAU,mBAAoB,EAAe,EAAsB,KAAK,eAAe,CAAC,EAG9G,GADA,KAAK,YACD,KAAK,QACL,MAAO,MAAK,MAAM,EAAU,8BAA+B,EAAe,EAAsB,KAAK,eAAe,CAAC,EAEzH,OAAQ,KAAK,YAEJ,KACD,YAAK,OACE,CACH,IAAK,CACD,KAAM,EAAK,SAEX,MAAO,EACP,SAAU,EAAe,EAAsB,KAAK,eAAe,GAEvE,IAAK,UAIR,IAGD,MAFA,MAAK,OACL,KAAK,YACD,KAAK,QACE,KAAK,MAAM,EAAU,8BAA+B,EAAe,EAAsB,KAAK,eAAe,CAAC,EAElH,KAAK,qBAAqB,EAAc,EAAmB,EAAO,CAAoB,UAG7F,MAAO,MAAK,MAAM,EAAU,mBAAoB,EAAe,EAAsB,KAAK,eAAe,CAAC,IAOtH,EAAO,UAAU,0BAA4B,UAAY,CACrD,GAAI,GAAmB,KAAK,gBACxB,EAAc,KAAK,SACnB,EAAQ,GAAuB,KAAK,QAAS,CAAW,EACxD,EAAY,EAAc,EAAM,OACpC,KAAK,OAAO,CAAS,EACrB,GAAI,GAAc,KAAK,gBACnB,EAAW,EAAe,EAAkB,CAAW,EAC3D,MAAO,CAAE,MAAO,EAAO,SAAU,IAErC,EAAO,UAAU,qBAAuB,SAAU,EAAc,EAAmB,EAAO,EAAsB,CAC5G,GAAI,GAIA,EAAoB,KAAK,gBACzB,EAAU,KAAK,4BAA4B,MAC3C,EAAkB,KAAK,gBAC3B,OAAQ,OACC,GAED,MAAO,MAAK,MAAM,EAAU,qBAAsB,EAAe,EAAmB,CAAe,CAAC,MACnG,aACA,WACA,OAAQ,CAIT,KAAK,YACL,GAAI,GAAmB,KACvB,GAAI,KAAK,OAAO,GAAG,EAAG,CAClB,KAAK,YACL,GAAI,GAAqB,KAAK,gBAC1B,EAAS,KAAK,gCAClB,GAAI,EAAO,IACP,MAAO,GAEX,GAAI,GAAQ,GAAQ,EAAO,GAAG,EAC9B,GAAI,EAAM,SAAW,EACjB,MAAO,MAAK,MAAM,EAAU,sBAAuB,EAAe,KAAK,gBAAiB,KAAK,eAAe,CAAC,EAEjH,GAAI,GAAgB,EAAe,EAAoB,KAAK,eAAe,EAC3E,EAAmB,CAAE,MAAO,EAAO,cAAe,GAEtD,GAAI,GAAiB,KAAK,sBAAsB,CAAoB,EACpE,GAAI,EAAe,IACf,MAAO,GAEX,GAAI,GAAa,EAAe,EAAsB,KAAK,eAAe,EAE1E,GAAI,GAAoB,GAA+E,GAAiB,MAAO,KAAM,CAAC,EAAG,CAErI,GAAI,GAAW,GAAU,EAAiB,MAAM,MAAM,CAAC,CAAC,EACxD,GAAI,IAAY,SAAU,CACtB,GAAI,GAAS,KAAK,8BAA8B,EAAU,EAAiB,aAAa,EACxF,MAAI,GAAO,IACA,EAEJ,CACH,IAAK,CAAE,KAAM,EAAK,OAAQ,MAAO,EAAO,SAAU,EAAY,MAAO,EAAO,KAC5E,IAAK,UAGR,CACD,GAAI,EAAS,SAAW,EACpB,MAAO,MAAK,MAAM,EAAU,0BAA2B,CAAU,EAErE,GAAI,GAAQ,CACR,KAAM,GAAc,SACpB,QAAS,EACT,SAAU,EAAiB,cAC3B,cAAe,KAAK,qBACd,GAAsB,CAAQ,EAC9B,IAEN,EAAO,IAAY,OAAS,EAAK,KAAO,EAAK,KACjD,MAAO,CACH,IAAK,CAAE,KAAM,EAAM,MAAO,EAAO,SAAU,EAAY,MAAO,GAC9D,IAAK,OAKjB,MAAO,CACH,IAAK,CACD,KAAM,IAAY,SACZ,EAAK,OACL,IAAY,OACR,EAAK,KACL,EAAK,KACf,MAAO,EACP,SAAU,EACV,MAAQ,GAAyE,GAAiB,SAAW,MAAQ,IAAO,OAAS,EAAK,MAE9I,IAAK,UAGR,aACA,oBACA,SAAU,CAIX,GAAI,GAAoB,KAAK,gBAE7B,GADA,KAAK,YACD,CAAC,KAAK,OAAO,GAAG,EAChB,MAAO,MAAK,MAAM,EAAU,+BAAgC,EAAe,EAAmB,EAAS,GAAI,CAAiB,CAAC,CAAC,EAElI,KAAK,YASL,GAAI,GAAwB,KAAK,4BAC7B,EAAe,EACnB,GAAI,IAAY,UAAY,EAAsB,QAAU,SAAU,CAClE,GAAI,CAAC,KAAK,OAAO,GAAG,EAChB,MAAO,MAAK,MAAM,EAAU,oCAAqC,EAAe,KAAK,gBAAiB,KAAK,eAAe,CAAC,EAE/H,KAAK,YACL,GAAI,GAAS,KAAK,uBAAuB,EAAU,oCAAqC,EAAU,oCAAoC,EACtI,GAAI,EAAO,IACP,MAAO,GAGX,KAAK,YACL,EAAwB,KAAK,4BAC7B,EAAe,EAAO,IAE1B,GAAI,GAAgB,KAAK,8BAA8B,EAAc,EAAS,EAAmB,CAAqB,EACtH,GAAI,EAAc,IACd,MAAO,GAEX,GAAI,GAAiB,KAAK,sBAAsB,CAAoB,EACpE,GAAI,EAAe,IACf,MAAO,GAEX,GAAI,GAAa,EAAe,EAAsB,KAAK,eAAe,EAC1E,MAAI,KAAY,SACL,CACH,IAAK,CACD,KAAM,EAAK,OACX,MAAO,EACP,QAAS,GAAY,EAAc,GAAG,EACtC,SAAU,GAEd,IAAK,MAIF,CACH,IAAK,CACD,KAAM,EAAK,OACX,MAAO,EACP,QAAS,GAAY,EAAc,GAAG,EACtC,OAAQ,EACR,WAAY,IAAY,SAAW,WAAa,UAChD,SAAU,GAEd,IAAK,cAKb,MAAO,MAAK,MAAM,EAAU,sBAAuB,EAAe,EAAmB,CAAe,CAAC,IAGjH,EAAO,UAAU,sBAAwB,SAAU,EAAsB,CAGrE,MAAI,MAAK,SAAW,KAAK,SAAW,IACzB,KAAK,MAAM,EAAU,8BAA+B,EAAe,EAAsB,KAAK,eAAe,CAAC,EAEzH,MAAK,OACE,CAAE,IAAK,GAAM,IAAK,QAK7B,EAAO,UAAU,8BAAgC,UAAY,CAGzD,OAFI,GAAe,EACf,EAAgB,KAAK,gBAClB,CAAC,KAAK,SAAS,CAClB,GAAI,GAAK,KAAK,OACd,OAAQ,OACC,IAAc,CAGf,KAAK,OACL,GAAI,GAAqB,KAAK,gBAC9B,GAAI,CAAC,KAAK,UAAU,GAAG,EACnB,MAAO,MAAK,MAAM,EAAU,iCAAkC,EAAe,EAAoB,KAAK,eAAe,CAAC,EAE1H,KAAK,OACL,UAEC,KAAe,CAChB,GAAgB,EAChB,KAAK,OACL,UAEC,KAAe,CAChB,GAAI,EAAe,EACf,GAAgB,MAGhB,OAAO,CACH,IAAK,KAAK,QAAQ,MAAM,EAAc,OAAQ,KAAK,QAAQ,EAC3D,IAAK,MAGb,cAGA,KAAK,OACL,OAGZ,MAAO,CACH,IAAK,KAAK,QAAQ,MAAM,EAAc,OAAQ,KAAK,QAAQ,EAC3D,IAAK,OAGb,EAAO,UAAU,8BAAgC,SAAU,EAAU,EAAU,CAC3E,GAAI,GAAS,GACb,GAAI,CACA,EAAS,GAA8B,CAAQ,OAEnD,CACI,MAAO,MAAK,MAAM,EAAU,wBAAyB,CAAQ,EAEjE,MAAO,CACH,IAAK,CACD,KAAM,GAAc,OACpB,OAAQ,EACR,SAAU,EACV,cAAe,KAAK,qBACd,GAAoB,CAAM,EAC1B,IAEV,IAAK,OAab,EAAO,UAAU,8BAAgC,SAAU,EAAc,EAAe,EAAgB,EAAuB,CAS3H,OARI,GACA,EAAiB,GACjB,EAAU,GACV,EAAkB,GAAI,KACtB,EAAW,EAAsB,MAAO,EAAmB,EAAsB,WAIxE,CACT,GAAI,EAAS,SAAW,EAAG,CACvB,GAAI,GAAgB,KAAK,gBACzB,GAAI,IAAkB,UAAY,KAAK,OAAO,GAAG,EAAG,CAEhD,GAAI,GAAS,KAAK,uBAAuB,EAAU,gCAAiC,EAAU,gCAAgC,EAC9H,GAAI,EAAO,IACP,MAAO,GAEX,EAAmB,EAAe,EAAe,KAAK,eAAe,EACrE,EAAW,KAAK,QAAQ,MAAM,EAAc,OAAQ,KAAK,QAAQ,MAGjE,OAIR,GAAI,EAAgB,IAAI,CAAQ,EAC5B,MAAO,MAAK,MAAM,IAAkB,SAC9B,EAAU,mCACV,EAAU,mCAAoC,CAAgB,EAExE,AAAI,IAAa,SACb,GAAiB,IAKrB,KAAK,YACL,GAAI,GAAuB,KAAK,gBAChC,GAAI,CAAC,KAAK,OAAO,GAAG,EAChB,MAAO,MAAK,MAAM,IAAkB,SAC9B,EAAU,yCACV,EAAU,yCAA0C,EAAe,KAAK,gBAAiB,KAAK,eAAe,CAAC,EAExH,GAAI,GAAiB,KAAK,aAAa,EAAe,EAAG,EAAe,CAAc,EACtF,GAAI,EAAe,IACf,MAAO,GAEX,GAAI,GAAiB,KAAK,sBAAsB,CAAoB,EACpE,GAAI,EAAe,IACf,MAAO,GAEX,EAAQ,KAAK,CACT,EACA,CACI,MAAO,EAAe,IACtB,SAAU,EAAe,EAAsB,KAAK,eAAe,GAE1E,EAED,EAAgB,IAAI,CAAQ,EAE5B,KAAK,YACJ,EAAK,KAAK,4BAA6B,EAAW,EAAG,MAAO,EAAmB,EAAG,SAEvF,MAAI,GAAQ,SAAW,EACZ,KAAK,MAAM,IAAkB,SAC9B,EAAU,gCACV,EAAU,gCAAiC,EAAe,KAAK,gBAAiB,KAAK,eAAe,CAAC,EAE3G,KAAK,qBAAuB,CAAC,EACtB,KAAK,MAAM,EAAU,qBAAsB,EAAe,KAAK,gBAAiB,KAAK,eAAe,CAAC,EAEzG,CAAE,IAAK,EAAS,IAAK,OAEhC,EAAO,UAAU,uBAAyB,SAAU,EAAmB,EAAoB,CACvF,GAAI,GAAO,EACP,EAAmB,KAAK,gBAC5B,AAAI,KAAK,OAAO,GAAG,GAEV,KAAK,OAAO,GAAG,GACpB,GAAO,IAIX,OAFI,GAAY,GACZ,EAAU,EACP,CAAC,KAAK,SAAS,CAClB,GAAI,GAAK,KAAK,OACd,GAAI,GAAM,IAAgB,GAAM,GAC5B,EAAY,GACZ,EAAU,EAAU,GAAM,GAAK,IAC/B,KAAK,WAGL,OAGR,GAAI,GAAW,EAAe,EAAkB,KAAK,eAAe,EACpE,MAAK,GAGL,IAAW,EACP,AAAC,GAAc,CAAO,EAGnB,CAAE,IAAK,EAAS,IAAK,MAFjB,KAAK,MAAM,EAAoB,CAAQ,GAJvC,KAAK,MAAM,EAAmB,CAAQ,GAQrD,EAAO,UAAU,OAAS,UAAY,CAClC,MAAO,MAAK,SAAS,QAEzB,EAAO,UAAU,MAAQ,UAAY,CACjC,MAAO,MAAK,WAAa,KAAK,QAAQ,QAE1C,EAAO,UAAU,cAAgB,UAAY,CAEzC,MAAO,CACH,OAAQ,KAAK,SAAS,OACtB,KAAM,KAAK,SAAS,KACpB,OAAQ,KAAK,SAAS,SAO9B,EAAO,UAAU,KAAO,UAAY,CAChC,GAAI,GAAS,KAAK,SAAS,OAC3B,GAAI,GAAU,KAAK,QAAQ,OACvB,KAAM,OAAM,cAAc,EAE9B,GAAI,GAAO,GAAY,KAAK,QAAS,CAAM,EAC3C,GAAI,IAAS,OACT,KAAM,OAAM,UAAU,OAAO,EAAQ,0CAA0C,CAAC,EAEpF,MAAO,IAEX,EAAO,UAAU,MAAQ,SAAU,EAAM,EAAU,CAC/C,MAAO,CACH,IAAK,KACL,IAAK,CACD,KAAM,EACN,QAAS,KAAK,QACd,SAAU,KAKtB,EAAO,UAAU,KAAO,UAAY,CAChC,GAAI,MAAK,QAGT,IAAI,GAAO,KAAK,OAChB,AAAI,IAAS,GACT,MAAK,SAAS,MAAQ,EACtB,KAAK,SAAS,OAAS,EACvB,KAAK,SAAS,QAAU,GAGxB,MAAK,SAAS,QAAU,EAExB,KAAK,SAAS,QAAU,EAAO,MAAU,EAAI,KASrD,EAAO,UAAU,OAAS,SAAU,EAAQ,CACxC,GAAI,GAAW,KAAK,QAAS,EAAQ,KAAK,QAAQ,EAAG,CACjD,OAAS,GAAI,EAAG,EAAI,EAAO,OAAQ,IAC/B,KAAK,OAET,MAAO,GAEX,MAAO,IAMX,EAAO,UAAU,UAAY,SAAU,EAAS,CAC5C,GAAI,GAAgB,KAAK,SACrB,EAAQ,KAAK,QAAQ,QAAQ,EAAS,CAAa,EACvD,MAAI,IAAS,EACT,MAAK,OAAO,CAAK,EACV,IAGP,MAAK,OAAO,KAAK,QAAQ,MAAM,EACxB,KAOf,EAAO,UAAU,OAAS,SAAU,EAAc,CAC9C,GAAI,KAAK,SAAW,EAChB,KAAM,OAAM,gBAAgB,OAAO,EAAc,uDAAuD,EAAE,OAAO,KAAK,QAAQ,CAAC,EAGnI,IADA,EAAe,KAAK,IAAI,EAAc,KAAK,QAAQ,MAAM,IAC5C,CACT,GAAI,GAAS,KAAK,SAClB,GAAI,IAAW,EACX,MAEJ,GAAI,EAAS,EACT,KAAM,OAAM,gBAAgB,OAAO,EAAc,0CAA0C,CAAC,EAGhG,GADA,KAAK,OACD,KAAK,QACL,QAKZ,EAAO,UAAU,UAAY,UAAY,CACrC,KAAO,CAAC,KAAK,SAAW,GAAc,KAAK,MAAM,GAC7C,KAAK,QAOb,EAAO,UAAU,KAAO,UAAY,CAChC,GAAI,KAAK,QACL,MAAO,MAEX,GAAI,GAAO,KAAK,OACZ,EAAS,KAAK,SACd,EAAW,KAAK,QAAQ,WAAW,EAAU,IAAQ,MAAU,EAAI,EAAE,EACzE,MAAO,IAAsD,MAE1D,CACX,IAOA,YAAkB,EAAW,CACzB,MAAS,IAAa,IAAM,GAAa,KACpC,GAAa,IAAM,GAAa,EACzC,CACA,YAAyB,EAAW,CAChC,MAAO,IAAS,CAAS,GAAK,IAAc,EAChD,CAEA,YAAqC,EAAG,CACpC,MAAQ,KAAM,IACV,IAAM,IACL,GAAK,IAAM,GAAK,IACjB,IAAM,IACL,GAAK,IAAM,GAAK,KAChB,GAAK,IAAM,GAAK,IACjB,GAAK,KACJ,GAAK,KAAQ,GAAK,KAClB,GAAK,KAAQ,GAAK,KAClB,GAAK,KAAQ,GAAK,KAClB,GAAK,KAAS,GAAK,MACnB,GAAK,MAAU,GAAK,MACpB,GAAK,MAAU,GAAK,MACpB,GAAK,MAAU,GAAK,MACpB,GAAK,OAAU,GAAK,OACpB,GAAK,OAAU,GAAK,OACpB,GAAK,OAAU,GAAK,OACpB,GAAK,OAAU,GAAK,OACpB,GAAK,OAAW,GAAK,MAC9B,CAKA,YAAuB,EAAG,CACtB,MAAS,IAAK,GAAU,GAAK,IACzB,IAAM,IACN,IAAM,KACL,GAAK,MAAU,GAAK,MACrB,IAAM,MACN,IAAM,IACd,CAKA,YAA0B,EAAG,CACzB,MAAS,IAAK,IAAU,GAAK,IACzB,IAAM,IACL,GAAK,IAAU,GAAK,IACrB,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACL,GAAK,IAAU,GAAK,IACpB,GAAK,IAAU,GAAK,IACpB,GAAK,IAAU,GAAK,IACpB,GAAK,IAAU,GAAK,IACrB,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,KACN,IAAM,KACN,IAAM,KACN,IAAM,KACN,IAAM,KACL,GAAK,KAAU,GAAK,KACrB,IAAM,KACN,IAAM,KACN,IAAM,KACN,IAAM,KACN,IAAM,KACN,IAAM,KACN,IAAM,KACN,IAAM,KACN,IAAM,KACN,IAAM,KACN,IAAM,KACN,IAAM,KACN,IAAM,KACL,GAAK,MAAU,GAAK,MACpB,GAAK,MAAU,GAAK,MACrB,IAAM,MACN,IAAM,MACN,IAAM,MACL,GAAK,MAAU,GAAK,MACrB,IAAM,MACN,IAAM,MACN,IAAM,MACL,GAAK,MAAU,GAAK,MACpB,GAAK,MAAU,GAAK,MACrB,IAAM,MACN,IAAM,MACL,GAAK,MAAU,GAAK,MACpB,GAAK,MAAU,GAAK,MACrB,IAAM,MACN,IAAM,MACN,IAAM,MACL,GAAK,MAAU,GAAK,MACrB,IAAM,MACN,IAAM,MACL,GAAK,MAAU,GAAK,MACpB,GAAK,MAAU,GAAK,MACpB,GAAK,MAAU,GAAK,MACpB,GAAK,MAAU,GAAK,MACpB,GAAK,MAAU,GAAK,MACrB,IAAM,MACL,GAAK,MAAU,GAAK,MACrB,IAAM,MACL,GAAK,MAAU,GAAK,MACrB,IAAM,MACL,GAAK,MAAU,GAAK,MACrB,IAAM,MACL,GAAK,MAAU,GAAK,MACpB,GAAK,MAAU,GAAK,MACpB,GAAK,MAAU,GAAK,MACrB,IAAM,MACN,IAAM,MACN,IAAM,MACL,GAAK,MAAU,GAAK,MACpB,GAAK,MAAU,GAAK,MACpB,GAAK,MAAU,GAAK,MACrB,IAAM,MACN,IAAM,MACN,IAAM,MACN,IAAM,MACL,GAAK,MAAU,GAAK,MACpB,GAAK,MAAU,GAAK,MACpB,GAAK,MAAU,GAAK,KACrB,IAAM,MACN,IAAM,MACL,GAAK,MAAU,GAAK,MACrB,IAAM,MACL,GAAK,MAAU,GAAK,MACpB,GAAK,MAAU,GAAK,MACpB,GAAK,MAAU,GAAK,MACpB,GAAK,MAAU,GAAK,MACpB,GAAK,MAAU,GAAK,MACpB,GAAK,MAAU,GAAK,MACpB,GAAK,MAAU,GAAK,MACpB,GAAK,MAAU,GAAK,MACpB,GAAK,MAAU,GAAK,MACrB,IAAM,MACL,GAAK,MAAU,GAAK,MACrB,IAAM,MACL,GAAK,MAAU,GAAK,MACpB,GAAK,MAAU,GAAK,MACpB,GAAK,MAAU,GAAK,MACrB,IAAM,MACL,GAAK,MAAU,GAAK,OACrB,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACL,GAAK,OAAU,GAAK,OACpB,GAAK,OAAU,GAAK,OACrB,IAAM,OACN,IAAM,OACL,GAAK,OAAU,GAAK,OACrB,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACL,GAAK,OAAU,GAAK,OACpB,GAAK,OAAU,GAAK,OACpB,GAAK,OAAU,GAAK,OACrB,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACL,GAAK,OAAU,GAAK,OACrB,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACL,GAAK,OAAU,GAAK,OACrB,IAAM,OACN,IAAM,OACL,GAAK,OAAU,GAAK,OACpB,GAAK,OAAU,GAAK,OACpB,GAAK,OAAU,GAAK,OACpB,GAAK,OAAU,GAAK,OACpB,GAAK,OAAU,GAAK,OACpB,GAAK,OAAU,GAAK,OACpB,GAAK,OAAU,GAAK,OACpB,GAAK,OAAU,GAAK,OACrB,IAAM,OACL,GAAK,OAAU,GAAK,OACpB,GAAK,OAAU,GAAK,OACrB,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACL,GAAK,OAAU,GAAK,OACrB,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACL,GAAK,OAAU,GAAK,OACrB,IAAM,OACL,GAAK,OAAU,GAAK,OACrB,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACL,GAAK,OAAU,GAAK,OACrB,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACL,GAAK,OAAU,GAAK,OACrB,IAAM,OACL,GAAK,OAAU,GAAK,OACpB,GAAK,OAAU,GAAK,OACpB,GAAK,OAAU,GAAK,OACrB,IAAM,OACN,IAAM,OACN,IAAM,OACL,GAAK,OAAU,GAAK,OACpB,GAAK,OAAU,GAAK,OACrB,IAAM,OACL,GAAK,OAAU,GAAK,OACpB,GAAK,OAAU,GAAK,OACrB,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACL,GAAK,OAAU,GAAK,OACrB,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACL,GAAK,OAAU,GAAK,OACrB,IAAM,OACN,IAAM,OACN,IAAM,OACN,IAAM,OACL,GAAK,OAAU,GAAK,KAC7B,CC9uCA,YAAuB,EAAK,CACxB,EAAI,QAAQ,SAAU,EAAI,CAEtB,GADA,MAAO,GAAG,SACN,GAAgB,CAAE,GAAK,GAAgB,CAAE,EACzC,OAAS,KAAK,GAAG,QACb,MAAO,GAAG,QAAQ,GAAG,SACrB,GAAc,EAAG,QAAQ,GAAG,KAAK,MAGpC,AAAI,IAAgB,CAAE,GAAK,GAAiB,EAAG,KAAK,GAG/C,IAAc,CAAE,GAAK,GAAc,CAAE,IAC3C,GAAmB,EAAG,KAAK,EAH3B,MAAO,GAAG,MAAM,SAMX,GAAa,CAAE,GACpB,GAAc,EAAG,QAAQ,EAEhC,CACL,CACO,YAAe,EAAS,EAAM,CACjC,AAAI,IAAS,QAAU,GAAO,IAC9B,EAAO,EAAS,CAAE,qBAAsB,GAAM,oBAAqB,IAAQ,CAAI,EAC/E,GAAI,GAAS,GAAI,IAAO,EAAS,CAAI,EAAE,QACvC,GAAI,EAAO,IAAK,CACZ,GAAI,GAAQ,YAAY,EAAU,EAAO,IAAI,KAAK,EAElD,QAAM,SAAW,EAAO,IAAI,SAE5B,EAAM,gBAAkB,EAAO,IAAI,QAC7B,EAEV,MAAkD,IAAK,iBACnD,GAAc,EAAO,GAAG,EAErB,EAAO,GAClB,CCtCe,YAAiB,EAAI,EAAS,CACzC,GAAI,GAAQ,GAAW,EAAQ,MAAQ,EAAQ,MAAQ,GACnD,EAAa,GAAW,EAAQ,WAAa,EAAQ,WAAa,GAClE,EAAW,GAAW,EAAQ,SAAW,EAAQ,SAAW,GAChE,MAAO,GAAS,EAAI,CAChB,MAAO,EACP,WAAY,EACf,CACL,CAIA,YAAqB,EAAO,CACxB,MAAQ,IAAS,MAAQ,MAAO,IAAU,UAAY,MAAO,IAAU,SAC3E,CACA,YAAiB,EAAI,EAAO,EAAY,EAAK,CACzC,GAAI,GAAW,GAAY,CAAG,EAAI,EAAM,EAAW,CAAG,EAClD,EAAgB,EAAM,IAAI,CAAQ,EACtC,MAAI,OAAO,GAAkB,KACzB,GAAgB,EAAG,KAAK,KAAM,CAAG,EACjC,EAAM,IAAI,EAAU,CAAa,GAE9B,CACX,CACA,YAAkB,EAAI,EAAO,EAAY,CACrC,GAAI,GAAO,MAAM,UAAU,MAAM,KAAK,UAAW,CAAC,EAC9C,EAAW,EAAW,CAAI,EAC1B,EAAgB,EAAM,IAAI,CAAQ,EACtC,MAAI,OAAO,GAAkB,KACzB,GAAgB,EAAG,MAAM,KAAM,CAAI,EACnC,EAAM,IAAI,EAAU,CAAa,GAE9B,CACX,CACA,YAAkB,EAAI,EAAS,EAAU,EAAO,EAAW,CACvD,MAAO,GAAS,KAAK,EAAS,EAAI,EAAO,CAAS,CACtD,CACA,YAAyB,EAAI,EAAS,CAClC,GAAI,GAAW,EAAG,SAAW,EAAI,GAAU,GAC3C,MAAO,IAAS,EAAI,KAAM,EAAU,EAAQ,MAAM,SAAU,EAAQ,UAAU,CAClF,CACA,YAA0B,EAAI,EAAS,CACnC,MAAO,IAAS,EAAI,KAAM,GAAU,EAAQ,MAAM,SAAU,EAAQ,UAAU,CAClF,CACA,YAAyB,EAAI,EAAS,CAClC,MAAO,IAAS,EAAI,KAAM,GAAS,EAAQ,MAAM,SAAU,EAAQ,UAAU,CACjF,CAIA,GAAI,IAAoB,UAAY,CAChC,MAAO,MAAK,UAAU,SAAS,CACnC,EAIA,aAAuC,CACnC,KAAK,MAAQ,OAAO,OAAO,IAAI,CACnC,CACA,GAA4B,UAAU,IAAM,SAAU,EAAK,CACvD,MAAO,MAAK,MAAM,EACtB,EACA,GAA4B,UAAU,IAAM,SAAU,EAAK,EAAO,CAC9D,KAAK,MAAM,GAAO,CACtB,EACA,GAAI,IAAe,CACf,OAAQ,UAAkB,CAEtB,MAAO,IAAI,IAEnB,EACW,GAAa,CACpB,SAAU,GACV,QAAS,EACb,EC5EW,GACX,AAAC,UAAU,EAAW,CAElB,EAAU,cAAmB,gBAE7B,EAAU,cAAmB,gBAE7B,EAAU,iBAAsB,kBACpC,GAAG,IAAc,IAAY,GAAG,EAChC,GAAI,IAA6B,SAAU,EAAQ,CAC/C,GAAU,EAAa,CAAM,EAC7B,WAAqB,EAAK,EAAM,EAAiB,CAC7C,GAAI,GAAQ,EAAO,KAAK,KAAM,CAAG,GAAK,KACtC,SAAM,KAAO,EACb,EAAM,gBAAkB,EACjB,EAEX,SAAY,UAAU,SAAW,UAAY,CACzC,MAAO,oBAAoB,OAAO,KAAK,KAAM,IAAI,EAAE,OAAO,KAAK,OAAO,GAEnE,CACX,EAAE,KAAK,EAEH,GAAmC,SAAU,EAAQ,CACrD,GAAU,EAAmB,CAAM,EACnC,WAA2B,EAAY,EAAO,EAAS,EAAiB,CACpE,MAAO,GAAO,KAAK,KAAM,uBAAwB,OAAO,EAAY,MAAQ,EAAE,OAAO,EAAO,kBAAoB,EAAE,OAAO,OAAO,KAAK,CAAO,EAAE,KAAK,MAAM,EAAG,GAAI,EAAG,GAAU,cAAe,CAAe,GAAK,KAEpN,MAAO,EACX,EAAE,EAAW,EAET,GAAuC,SAAU,EAAQ,CACzD,GAAU,EAAuB,CAAM,EACvC,WAA+B,EAAO,EAAM,EAAiB,CACzD,MAAO,GAAO,KAAK,KAAM,cAAe,OAAO,EAAO,oBAAqB,EAAE,OAAO,CAAI,EAAG,GAAU,cAAe,CAAe,GAAK,KAE5I,MAAO,EACX,EAAE,EAAW,EAET,GAAmC,SAAU,EAAQ,CACrD,GAAU,EAAmB,CAAM,EACnC,WAA2B,EAAY,EAAiB,CACpD,MAAO,GAAO,KAAK,KAAM,qCAAsC,OAAO,EAAY,oCAAsC,EAAE,OAAO,EAAiB,GAAI,EAAG,GAAU,cAAe,CAAe,GAAK,KAE1M,MAAO,EACX,EAAE,EAAW,EC5CF,GACX,AAAC,UAAU,EAAW,CAClB,EAAU,EAAU,QAAa,GAAK,UACtC,EAAU,EAAU,OAAY,GAAK,QACzC,GAAG,IAAc,IAAY,GAAG,EAChC,YAAsB,EAAO,CACzB,MAAI,GAAM,OAAS,EACR,EAEJ,EAAM,OAAO,SAAU,EAAK,EAAM,CACrC,GAAI,GAAW,EAAI,EAAI,OAAS,GAChC,MAAI,CAAC,GACD,EAAS,OAAS,GAAU,SAC5B,EAAK,OAAS,GAAU,QACxB,EAAI,KAAK,CAAI,EAGb,EAAS,OAAS,EAAK,MAEpB,GACR,EAAE,CACT,CACO,YAA8B,EAAI,CACrC,MAAO,OAAO,IAAO,UACzB,CAEO,YAAuB,EAAK,EAAS,EAAY,EAAS,EAAQ,EAEzE,EAAiB,CAEb,GAAI,EAAI,SAAW,GAAK,GAAiB,EAAI,EAAE,EAC3C,MAAO,CACH,CACI,KAAM,GAAU,QAChB,MAAO,EAAI,GAAG,QAK1B,OADI,GAAS,GACJ,EAAK,EAAG,EAAQ,EAAK,EAAK,EAAM,OAAQ,IAAM,CACnD,GAAI,GAAK,EAAM,GAEf,GAAI,GAAiB,CAAE,EAAG,CACtB,EAAO,KAAK,CACR,KAAM,GAAU,QAChB,MAAO,EAAG,MACb,EACD,SAIJ,GAAI,GAAe,CAAE,EAAG,CACpB,AAAI,MAAO,IAAuB,UAC9B,EAAO,KAAK,CACR,KAAM,GAAU,QAChB,MAAO,EAAW,gBAAgB,CAAO,EAAE,OAAO,CAAkB,EACvE,EAEL,SAEJ,GAAI,GAAU,EAAG,MAEjB,GAAI,CAAE,IAAU,IAAW,IACvB,KAAM,IAAI,IAAkB,EAAS,CAAe,EAExD,GAAI,GAAQ,EAAO,GACnB,GAAI,GAAkB,CAAE,EAAG,CACvB,AAAI,EAAC,GAAS,MAAO,IAAU,UAAY,MAAO,IAAU,WACxD,GACI,MAAO,IAAU,UAAY,MAAO,IAAU,SACxC,OAAO,CAAK,EACZ,IAEd,EAAO,KAAK,CACR,KAAM,MAAO,IAAU,SAAW,GAAU,QAAU,GAAU,OAChE,MAAO,EACV,EACD,SAKJ,GAAI,GAAc,CAAE,EAAG,CACnB,GAAI,GAAQ,MAAO,GAAG,OAAU,SAC1B,EAAQ,KAAK,EAAG,OAChB,GAAmB,EAAG,KAAK,EACvB,EAAG,MAAM,cACT,OACV,EAAO,KAAK,CACR,KAAM,GAAU,QAChB,MAAO,EACF,kBAAkB,EAAS,CAAK,EAChC,OAAO,CAAK,EACpB,EACD,SAEJ,GAAI,GAAc,CAAE,EAAG,CACnB,GAAI,GAAQ,MAAO,GAAG,OAAU,SAC1B,EAAQ,KAAK,EAAG,OAChB,GAAmB,EAAG,KAAK,EACvB,EAAG,MAAM,cACT,OACV,EAAO,KAAK,CACR,KAAM,GAAU,QAChB,MAAO,EACF,kBAAkB,EAAS,CAAK,EAChC,OAAO,CAAK,EACpB,EACD,SAEJ,GAAI,GAAgB,CAAE,EAAG,CACrB,GAAI,GAAQ,MAAO,GAAG,OAAU,SAC1B,EAAQ,OAAO,EAAG,OAClB,GAAiB,EAAG,KAAK,EACrB,EAAG,MAAM,cACT,OACV,AAAI,GAAS,EAAM,OACf,GACI,EACK,GAAM,OAAS,IAE5B,EAAO,KAAK,CACR,KAAM,GAAU,QAChB,MAAO,EACF,gBAAgB,EAAS,CAAK,EAC9B,OAAO,CAAK,EACpB,EACD,SAEJ,GAAI,GAAa,CAAE,EAAG,CAClB,GAAI,GAAW,EAAG,SAAU,EAAU,EAAG,MACrC,EAAW,EAAO,GACtB,GAAI,CAAC,GAAqB,CAAQ,EAC9B,KAAM,IAAI,IAAsB,EAAS,WAAY,CAAe,EAExE,GAAI,GAAQ,GAAc,EAAU,EAAS,EAAY,EAAS,EAAQ,CAAkB,EACxF,EAAS,EAAS,EAAM,IAAI,SAAU,EAAG,CAAE,MAAO,GAAE,MAAQ,CAAC,EACjE,AAAK,MAAM,QAAQ,CAAM,GACrB,GAAS,CAAC,CAAM,GAEpB,EAAO,KAAK,MAAM,EAAQ,EAAO,IAAI,SAAU,EAAG,CAC9C,MAAO,CACH,KAAM,MAAO,IAAM,SAAW,GAAU,QAAU,GAAU,OAC5D,MAAO,GAEd,CAAC,EAEN,GAAI,GAAgB,CAAE,EAAG,CACrB,GAAI,GAAM,EAAG,QAAQ,IAAU,EAAG,QAAQ,MAC1C,GAAI,CAAC,EACD,KAAM,IAAI,IAAkB,EAAG,MAAO,EAAO,OAAO,KAAK,EAAG,OAAO,EAAG,CAAe,EAEzF,EAAO,KAAK,MAAM,EAAQ,GAAc,EAAI,MAAO,EAAS,EAAY,EAAS,CAAM,CAAC,EACxF,SAEJ,GAAI,GAAgB,CAAE,EAAG,CACrB,GAAI,GAAM,EAAG,QAAQ,IAAI,OAAO,CAAK,GACrC,GAAI,CAAC,EAAK,CACN,GAAI,CAAC,KAAK,YACN,KAAM,IAAI,IAAY;AAAA;AAAA,EAAqH,GAAU,iBAAkB,CAAe,EAE1L,GAAI,GAAO,EACN,eAAe,EAAS,CAAE,KAAM,EAAG,WAAY,EAC/C,OAAO,EAAS,GAAG,QAAU,EAAE,EACpC,EAAM,EAAG,QAAQ,IAAS,EAAG,QAAQ,MAEzC,GAAI,CAAC,EACD,KAAM,IAAI,IAAkB,EAAG,MAAO,EAAO,OAAO,KAAK,EAAG,OAAO,EAAG,CAAe,EAEzF,EAAO,KAAK,MAAM,EAAQ,GAAc,EAAI,MAAO,EAAS,EAAY,EAAS,EAAQ,EAAS,GAAG,QAAU,EAAE,CAAC,EAClH,UAGR,MAAO,IAAa,CAAM,CAC9B,CCtKA,YAAqB,EAAI,EAAI,CACzB,MAAK,GAGE,EAAS,EAAS,EAAS,GAAK,GAAM,IAAO,GAAM,IAAM,OAAO,KAAK,CAAE,EAAE,OAAO,SAAU,EAAK,EAAG,CACrG,SAAI,GAAK,EAAS,EAAS,GAAI,EAAG,EAAE,EAAI,EAAG,IAAM,IAC1C,GACR,EAAE,CAAC,EALK,CAMf,CACA,YAAsB,EAAe,EAAS,CAC1C,MAAK,GAGE,OAAO,KAAK,CAAa,EAAE,OAAO,SAAU,EAAK,EAAG,CACvD,SAAI,GAAK,GAAY,EAAc,GAAI,EAAQ,EAAE,EAC1C,GACR,EAAS,GAAI,CAAa,CAAC,EALnB,CAMf,CACA,YAAgC,EAAO,CACnC,MAAO,CACH,OAAQ,UAAY,CAChB,MAAO,CACH,IAAK,SAAU,EAAK,CAChB,MAAO,GAAM,IAEjB,IAAK,SAAU,EAAK,EAAO,CACvB,EAAM,GAAO,KAKjC,CACA,YAAiC,EAAO,CACpC,MAAI,KAAU,QAAU,GAAQ,CAC5B,OAAQ,GACR,SAAU,GACV,YAAa,KAEV,CACH,gBAAiB,GAAQ,UAAY,CAGjC,OAFI,GACA,EAAO,GACF,EAAK,EAAG,EAAK,UAAU,OAAQ,IACpC,EAAK,GAAM,UAAU,GAEzB,MAAO,IAAM,IAAK,KAAK,cAAc,KAAK,MAAM,EAAI,GAAc,CAAC,MAAM,EAAG,EAAM,EAAK,CAAC,IACzF,CACC,MAAO,GAAuB,EAAM,MAAM,EAC1C,SAAU,GAAW,SACxB,EACD,kBAAmB,GAAQ,UAAY,CAGnC,OAFI,GACA,EAAO,GACF,EAAK,EAAG,EAAK,UAAU,OAAQ,IACpC,EAAK,GAAM,UAAU,GAEzB,MAAO,IAAM,IAAK,KAAK,gBAAgB,KAAK,MAAM,EAAI,GAAc,CAAC,MAAM,EAAG,EAAM,EAAK,CAAC,IAC3F,CACC,MAAO,GAAuB,EAAM,QAAQ,EAC5C,SAAU,GAAW,SACxB,EACD,eAAgB,GAAQ,UAAY,CAGhC,OAFI,GACA,EAAO,GACF,EAAK,EAAG,EAAK,UAAU,OAAQ,IACpC,EAAK,GAAM,UAAU,GAEzB,MAAO,IAAM,IAAK,KAAK,aAAa,KAAK,MAAM,EAAI,GAAc,CAAC,MAAM,EAAG,EAAM,EAAK,CAAC,IACxF,CACC,MAAO,GAAuB,EAAM,WAAW,EAC/C,SAAU,GAAW,SACxB,EAET,CACA,GAAI,IAAmC,UAAY,CAC/C,WAA2B,EAAS,EAAS,EAAiB,EAAM,CAChE,GAAI,GAAQ,KAoCZ,GAnCI,IAAY,QAAU,GAAU,EAAkB,eACtD,KAAK,eAAiB,CAClB,OAAQ,GACR,SAAU,GACV,YAAa,IAEjB,KAAK,OAAS,SAAU,EAAQ,CAC5B,GAAI,GAAQ,EAAM,cAAc,CAAM,EAEtC,GAAI,EAAM,SAAW,EACjB,MAAO,GAAM,GAAG,MAEpB,GAAI,GAAS,EAAM,OAAO,SAAU,EAAK,EAAM,CAC3C,MAAI,CAAC,EAAI,QACL,EAAK,OAAS,GAAU,SACxB,MAAO,GAAI,EAAI,OAAS,IAAO,SAC/B,EAAI,KAAK,EAAK,KAAK,EAGnB,EAAI,EAAI,OAAS,IAAM,EAAK,MAEzB,GACR,EAAE,EACL,MAAI,GAAO,QAAU,EACV,EAAO,IAAM,GAEjB,GAEX,KAAK,cAAgB,SAAU,EAAQ,CACnC,MAAO,IAAc,EAAM,IAAK,EAAM,QAAS,EAAM,WAAY,EAAM,QAAS,EAAQ,OAAW,EAAM,OAAO,GAEpH,KAAK,gBAAkB,UAAY,CAAE,MAAQ,CACzC,OAAQ,KAAK,aAAa,mBAAmB,EAAM,OAAO,EAAE,KAEhE,KAAK,OAAS,UAAY,CAAE,MAAO,GAAM,KACrC,MAAO,IAAY,SAAU,CAE7B,GADA,KAAK,QAAU,EACX,CAAC,EAAkB,QACnB,KAAM,IAAI,WAAU,6EAA6E,EAGrG,KAAK,IAAM,EAAkB,QAAQ,EAAS,CAC1C,UAAuD,GAAK,UAC/D,MAGD,MAAK,IAAM,EAEf,GAAI,CAAC,MAAM,QAAQ,KAAK,GAAG,EACvB,KAAM,IAAI,WAAU,gDAAgD,EAIxE,KAAK,QAAU,GAAa,EAAkB,QAAS,CAAe,EAEtE,KAAK,QAAU,EACf,KAAK,WACA,GAAQ,EAAK,YAAe,GAAwB,KAAK,cAAc,EAEhF,cAAO,eAAe,EAAmB,gBAAiB,CACtD,IAAK,UAAY,CACb,MAAK,GAAkB,uBACnB,GAAkB,sBACd,GAAI,MAAK,eAAe,kBAAkB,QAE3C,EAAkB,uBAE7B,WAAY,GACZ,aAAc,GACjB,EACD,EAAkB,sBAAwB,KAC1C,EAAkB,QAAU,GAI5B,EAAkB,QAAU,CACxB,OAAQ,CACJ,QAAS,CACL,sBAAuB,GAE3B,SAAU,CACN,MAAO,YAEX,QAAS,CACL,MAAO,YAGf,KAAM,CACF,MAAO,CACH,MAAO,UACP,IAAK,UACL,KAAM,WAEV,OAAQ,CACJ,MAAO,QACP,IAAK,UACL,KAAM,WAEV,KAAM,CACF,MAAO,OACP,IAAK,UACL,KAAM,WAEV,KAAM,CACF,QAAS,OACT,MAAO,OACP,IAAK,UACL,KAAM,YAGd,KAAM,CACF,MAAO,CACH,KAAM,UACN,OAAQ,WAEZ,OAAQ,CACJ,KAAM,UACN,OAAQ,UACR,OAAQ,WAEZ,KAAM,CACF,KAAM,UACN,OAAQ,UACR,OAAQ,UACR,aAAc,SAElB,KAAM,CACF,KAAM,UACN,OAAQ,UACR,OAAQ,UACR,aAAc,WAInB,CACX,OCrNe,GCTiG,KAAM,IAAE,GAAG,GAAE,CAAC,EAAE,EAAE,IAAI,GAAG,KAAK,KAAI,IAAE,GAAG,IAAI,IAAK,IAAE,IAAK,IAAE,GAAG,GAAG,GAAG,GAAK,GAAE,CAAC,EAAE,IAAI,CAAC,GAAG,AAAM,GAAN,KAAQ,OAAO,GAAG,IAAK,KAAG,IAAK,IAAE,GAAG,MAAO,IAAE,GAAG,GAAG,KAAM,GAAE,GAAE,CAAC,EAAE,OAAQ,GAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,KAAM,GAAE,GAAE,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,MAAO,IAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAI,IAAE,KAAM,IAAEC,GAAE,EAAE,EAAE,YAAW,EAAE,CAAC,MAAO,KAAK,GAAC,CAAC,YAAW,EAAE,EAAE,CAAC,MAAI,IAAE,CAAC,EAAqB,SAAS,EAAE,EAAE,CAAC,GAAG,AAAM,GAAN,KAAQ,OAAO,GAAG,IAAK,GAAE,MAAO,GAAE,GAAG,KAAM,GAAE,EAAE,MAAM,GAAG,EAAE,GAAI,GAAE,EAAE,OAAQ,GAAE,EAAE,EAAE,EAAE,OAAO,IAAI,GAAG,AAAU,MAAO,IAAjB,SAAmB,CAAC,GAAG,EAAE,EAAE,CAAC,KAAM,GAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,GAAG,EAAE,GAAG,IAAK,GAAE,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,KAAM,GAAE,OAAO,MAAO,EAAC,EAAE,SAAS,EAAE,CAAC,MAAO,IAAE,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,EAA7R,IAA8R,CAAC,YAAW,KAAK,EAAE,CAAC,MAAO,IAAE,GAAG,GAAE,OAAQ,GAAI,GAAE,GAAGC,GAAE,IAAI,CAAC,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE,GAAI,CAASC,GAAE,CAAC,EAAC,EAAG,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,GAAI,GAAE,UAAW,GAAG,GAAE,GAAI,KAAM,IAAE,GAAG,YAAW,EAAE,CAAC,MAAO,IAAE,EAAE,CAAC,YAAW,EAAE,CAAC,MAAO,AAAM,IAAN,MAAS,GAAE,CAAC,EAAE,KAAM,GAAG,CAAC,GAAI,GAAE,MAAO,AAAQ,GAAE,GAAE,CAAC,KAAb,MAAiB,AAAS,IAAT,OAAW,OAAO,EAAE,IAAI,EAAG,CAAC,YAAW,EAAE,EAAE,CAAC,MAAO,SAAQ,IAAI,EAAE,IAAK,GAAI,UAAS,EAAE,EAAE,CAAC,GAAE,GAAG,OAAO,CAAC,EAAE,AAAI,GAAE,GAAG,OAAT,GAAe,MAAO,IAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,KAAM,GAAG,EAAE,SAAS,IAAM,EAAE,KAAM,GAAG,GAAE,EAAE,GAAG,CAAC,EAAG,CAAC,KAAM,IAAE,GAAG,YAAW,EAAE,CAAC,GAAG,CAAC,GAAE,CAAC,EAAE,MAAO,KAAK,IAAE,GAAE,GAAG,QAAQ,UAAU,KAAM,GAAE,SAAS,EAAE,CAAC,MAAO,IAAE,CAAC,EAAE,IAAK,GAAG,CAAC,KAAM,GAAE,GAAE,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAI,OAAQ,CAAC,EAAE,KAAK,EAAE,OAAO,EAAG,EAAE,CAAC,EAAE,MAAO,IAAE,GAAG,QAAQ,IAAI,EAAE,IAAK,CAAC,CAAC,EAAE,KAAK,GAAE,EAAE,CAAC,EAAG,EAAE,KAAM,IAAI,CAAC,GAAG,GAAE,CAAC,EAAE,MAAO,IAAE,CAAC,EAAE,MAAO,IAAE,EAAE,GAAI,GAAE,EAAE,CAC34C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gFAagF,YAAW,EAAE,EAAE,CAAC,GAAI,GAAE,GAAG,OAAQ,KAAK,GAAE,OAAO,UAAU,eAAe,KAAK,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAI,GAAE,GAAG,EAAE,IAAI,GAAG,AAAM,GAAN,MAAS,AAAY,MAAO,QAAO,uBAA1B,WAAgD,CAAC,GAAI,GAAE,EAAE,IAAI,EAAE,OAAO,sBAAsB,CAAC,EAAE,EAAE,EAAE,OAAO,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,OAAO,UAAU,qBAAqB,KAAK,EAAE,EAAE,EAAE,GAAI,GAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,MAAO,EAAC,CAAC,KAAM,IAAE,CAAC,eAAe,KAAK,aAAa,IAAI,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,YAAY,EAAE,YAAY,CAAC,SAAS,aAAa,EAAE,YAAY,CAAC,SAAS,UAAU,eAAe,MAAM,EAAE,aAAa,CAAC,SAAS,UAAU,eAAe,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,UAAU,IAAI,UAAU,KAAK,SAAS,EAAE,OAAO,CAAC,MAAM,QAAQ,IAAI,UAAU,KAAK,SAAS,EAAE,KAAK,CAAC,MAAM,OAAO,IAAI,UAAU,KAAK,SAAS,EAAE,KAAK,CAAC,QAAQ,OAAO,MAAM,OAAO,IAAI,UAAU,KAAK,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,UAAU,OAAO,SAAS,EAAE,OAAO,CAAC,KAAK,UAAU,OAAO,UAAU,OAAO,SAAS,EAAE,KAAK,CAAC,KAAK,UAAU,OAAO,UAAU,OAAO,UAAU,aAAa,OAAO,EAAE,KAAK,CAAC,KAAK,UAAU,OAAO,UAAU,OAAO,UAAU,aAAa,OAAO,CAAC,CAAC,EAAE,sBAAsB,GAAG,UAAU,EAAE,EAAE,aAAY,CAAC,MAAO,GAAC,CAAC,YAAW,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,EAAE,GAAE,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,eAAe,EAAE,eAAe,MAAO,QAAO,OAAO,GAAE,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,GAAI,WAAW,IAAG,OAAO,OAAO,GAAE,QAAQ,OAAO,EAAE,MAAM,EAAE,QAAS,IAAG,OAAO,OAAO,GAAE,QAAQ,KAAK,EAAE,IAAI,EAAE,QAAS,IAAG,OAAO,OAAO,GAAE,QAAQ,KAAK,EAAE,IAAI,GAAG,GAAE,IAAI,CAAC,CAAC,CAAC,KAAM,IAAEF,GAAE,EAAE,EAAE,GAAI,IAAE,KAAM,IAAEA,GAAE,IAAI,EAAE,YAAW,EAAE,CAAC,MAAO,GAAE,MAAM,GAAG,EAAE,IAAK,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,KAAK,GAAG,GAAI,SAAS,CAAC,YAAW,EAAE,EAAE,KAAI,eAAe,CAAC,KAAM,GAAEG,GAAE,CAAC,EAAE,MAAO,GAAE,CAAC,GAAG,GAAI,KAAI,CAAC,GAAG,EAAE,GAAGA,GAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAY,CAAC,MAAa,KAAI,MAAM,CAAC,GAAE,UAAW,GAAG,CAAC,GAAQ,GAAI,OAAO,AAAa,MAAO,QAApB,KAA4B,AAAM,GAAN,MAAS,SAAS,gBAAgB,aAAa,OAAO,CAAC,CAAC,GAAS,KAAC,IAAE,OAAO,OAAO,OAAO,OAAO,GAAG,EAAC,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,SAAS,EAAE,CAAC,GAAG,AAAM,GAAN,KAAQ,OAAO,KAAM,GAAE,GAAE,CAAC,EAAE,OAAQ,GAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,KAAM,GAAE,EAAE,GAAG,GAAG,GAAE,CAAC,EAAE,MAAO,EAAC,CAAC,EAAE,CAAC,GAAG,GAAE,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,GAAG,KAAI,GAAI,GAAE,MAAM,AAAa,OAAO,QAApB,KAA4B,AAAM,MAAN,MAAW,EAAE,EAAE,OAAO,WAAY,IAAI,GAAE,IAAI,EAAE,EAAG,CAAC,EAAE,GAAE,IAAI,EAAE,EAAE,GAAE,CAAC,EAAE,KAAM,IAAI,CAAC,GAAE,IAAI,CAAC,CAAC,GAAI,QAAS,IAAI,CAAC,aAAa,CAAC,EAAE,GAAE,IAAI,EAAE,CAAC,EAAG,CAAC,MAAO,IAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAA6R,GAAE,IAAI,AAAa,MAAO,QAApB,IAA2B,KAAK,OAAO,UAAU,UAAU,OAAO,UAAU,UAAU,GAAuJ,GAAE,GAAG,CAAC,KAAM,GAAE,OAAO,OAAO,IAAI,EAAE,MAAO,IAAG,CAAC,KAAM,GAAE,KAAK,UAAU,CAAC,EAAE,MAAO,KAAK,GAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAI,GAAG,IAAK,IAAG,IAAK,GAAE,GAAG,MAAO,GAAE,GAAG,GAAG,KAAM,IAAI,OAAM,0BAA0B,MAAM,WAAW,CAAC,EAAE,GAAE,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,EAAE,EAAE,GAAE,EAAE,CAAC,SAAS,QAAQ,CAAC,EAAE,GAAG,AAAM,GAAN,KAAQ,KAAM,IAAI,OAAM,wDAAwD,EAAE,MAAO,IAAI,GAAE,GAAE,SAAS,CAAC,GAAG,GAAI,MAAK,aAAa,EAAE,CAAC,CAAC,GAAI,GAAE,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,EAAE,EAAE,GAAE,EAAE,CAAC,SAAS,QAAQ,CAAC,EAAE,GAAG,AAAM,GAAN,KAAQ,KAAM,IAAI,OAAM,sDAAsD,EAAE,MAAO,GAAE,EAAE,GAAE,OAAO,CAAC,EAAE,AAAI,OAAO,KAAK,CAAC,EAAE,SAAnB,GAA4B,GAAE,GAAE,OAAO,OAAO,GAAG,GAAI,MAAK,eAAe,EAAE,CAAC,CAAC,GAAI,GAAE,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,EAAE,EAAE,GAAE,EAAE,CAAC,SAAS,QAAQ,CAAC,EAAE,GAAG,AAAM,GAAN,KAAQ,KAAM,IAAI,OAAM,4DAA4D,EAAE,MAAO,GAAE,EAAE,GAAE,OAAO,CAAC,EAAE,AAAI,OAAO,KAAK,CAAC,EAAE,SAAnB,GAA4B,GAAE,GAAE,OAAO,OAAO,GAAG,GAAI,MAAK,eAAe,EAAE,CAAC,CAAC,GAAI,GAAE,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,MAAK,EAAE,EAAE,GAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAO,IAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAE,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,MAAK,EAAE,EAAE,GAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAO,IAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAE,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,MAAK,EAAE,EAAE,GAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAO,IAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAE,GAAG,CAAC,EAAE,EAAE,OAAM,GAAI,IAAE,EAAE,EAAE,KAAI,QAAQ,CAAC,UAAU,KAAI,SAAS,CAAC,GAAI,GAAE,CAAC,EAAE,EAAE,KAAK,CAAC,GAAI,GAAE,EAAE,AAAU,MAAO,IAAjB,UAAqB,GAAE,EAAE,EAAE,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAI,QAAQ,GAAG,EAAE,GAAG,AAAM,GAAN,KAAQ,KAAM,IAAI,OAAM,iFAAiF,EAAE,GAAI,GAAE,GAAE,EAAE,CAAC,EAAE,GAAG,GAAG,GAAG,AAAU,MAAO,IAAjB,SAAmB,MAAO,SAAQ,KAAK,kCAAkC,wCAAwC,MAAO,kGAAiG,EAAE,MAAO,MAAI,uBAAuB,QAAQ,KAAK,8BAA8B,wBAAwB,GAAE,CAAC,EAAE,KAAK,MAAM,MAAM,GAAE,IAAG,EAAE;AAAA;AAAA,2FAAgG,IAAI,EAAE,EAAQ,GAAI,EAAE,GAAG,CAAC,EAAE,MAAO,GAAE,GAAI,GAAE,EAAE,GAAG,CAAC,EAAE,GAAE,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,EAAN,CAAS,QAAQ,KAAK,0BAA0B,uBAAuB,EAAE,OAAO,CAAC,CAAC,MAAO,EAAC,EAAE,GAAE,CAAC,EAAE,IAAI,GAAE,CAAC,EAAE,OAAO,CAAC,EAAE,GAAE,CAAC,EAAE,IAAI,GAAE,CAAC,EAAE,OAAO,CAAC,EAAE,GAAE,CAAC,EAAE,IAAI,GAAE,CAAC,EAAE,OAAO,CAAC,EAAE,GAAE,CAAC,EAAE,EAAE,OAAM,GAAE,EAAE,CAAC,EAAE,GAAED,GAAE,CAAC,GAAE,EAAC,EAAG,IAAI,IAAMA,GAAE,CAAC,EAAC,EAAG,IAAI,IAAOA,GAAE,CAAC,EAAC,EAAG,IAAI,IAAOA,GAAE,CAAC,EAAC,EAAG,IAAI,IAAOA,GAAE,CAAC,GAAE,EAAC,EAAG,IAAI,6lBCd77J,GAAgB,CAC5B,UAAW,IAAM,wDACjB,MAAO,IAAM,wDACb,IAAK,IAAM,wDACX,OAAQ,IAAM,wDACd,SAAU,IAAM,wDAChB,aAAc,IAAM,wDACpB,QAAS,IAAM,wDACf,SAAU,IAAM,wDAChB,cAAe,IAAM,wDACrB,YAAa,IAAM,wDACnB,OAAQ,IAAM,wDACd,UAAW,IAAM,wDACjB,QAAS,IAAM,wDACf,SAAU,IAAM,wDAChB,KAAM,IAAM,wDACZ,KAAM,IAAM,wDACZ,QAAS,IAAM,wDACf,MAAO,IAAM,wDACb,gBAAiB,IAAM,wDACvB,KAAM,IAAM,wDACZ,MAAO,IAAM,wDACb,eAAgB,IAAM,wDACtB,KAAM,IAAM,wDACZ,MAAO,IAAM,wDACb,SAAU,IAAM,wDAChB,QAAS,IAAM,wDACf,OAAQ,IAAM,wDACd,KAAM,IAAM,wDACZ,MAAO,IAAM,wDACb,IAAK,IAAM,wDACX,OAAQ,IAAM,wDACd,MAAO,IAAM,wDACb,cAAe,IAAM,wDACrB,KAAM,IAAM,wDACZ,QAAS,IAAM,wDACf,QAAS,IAAM,wDACf,WAAY,IAAM,wDAClB,aAAc,IAAM,wDACpB,MAAO,IAAM,uDACd,eCxB8C,MACvC,GAAQ,GAAkC,EAAE,EAE5C,EAAkC,GAClC,EAAmC,GACnC,KAAsB,KACtB,KAAqB,KAErB,KAAuB,KACvB,EAA4C,cAGjD,EACA,EACA,EACA,EACA,EACA,EACA,EACC,MACK,GAAU,EAAW,GACrB,EAAS,EAAU,GACnB,EAAc,EAAU,GAExB,EAAoB,EAAQ,IAAI,AAAC,GAAO,IACzC,QAEE,GAAgB,EAAgB,IAAI,CAAE,GAAK,KAG7C,IAAgB,WAAa,IAAW,UAAW,IAClD,GAAY,EAAgB,IAEhB,IAAI,EAAI,EAAY,EAAI,EAAI,CAAS,IAExC,EAAY,EAAI,UAAY,MAG/B,KAAgB,WAAa,IAAW,YACrC,UAGH,IAAgB,WAAa,IAAW,aACrC,YACG,IAAI,EAAI,EAAgB,CAAC,KAE5B,QAGP,CACN,KACA,eAAgB,EAChB,WAAY,EACZ,MACA,OAAQ,EACR,WAED,IAEM,IAAI,AAAC,GAAO,MACZ,GAAgB,EAAe,IAAI,CAAE,GAAK,KAG5C,IAAgB,WAAa,IAAW,UAAW,IAClD,GAAY,EAAgB,IACjB,IAAI,EAAI,EAAY,EAAI,EAAI,CAAS,IACnC,IAAI,EAAI,CAAM,MACrB,KAAgB,WAAa,IAAW,aACnC,IAAI,EAAI,EAAgB,CAAC,IACvB,IAAI,EAAI,CAAM,KAEd,OAAO,CAAE,EAE3B,IAEK,OAAO,AAAC,MACK,QACjB,CAAC,CAAE,KAAI,iBAAgB,aAAY,MAAK,SAAQ,aAAc,GACrD,GAAM,CACb,QACA,aACA,iBACA,IAAK,EACL,UACA,SACA,YAGH,EAEO,EACP,IAES,GAAY,aAItB,EACA,EACA,EACC,GACS,GAAS,IACR,GAAS,QAGd,CACN,SACA,WACA,UAAW,EAAM,UACjB,kBAAkB,EAAW,OACrB,GAAU,IAElB,sBAAuB,OACf,IAGV,MAGa,IAAY,GAAS,CAAE,WAAY,GAAO,yynBCnIvD,KAAM,IAAQ,gdAEkB,IAC3B,GAKA,YAEO,KAAQ,IAAO,MACnB,GAAQ,EAAK,MAAM,GAAG,EAAE,MAAiB,MAAM,GAAG,EAAE,UACnD,GAAQ,GAAM,GAAM,cAGrB,EACR,CAEA,KAAM,IAAkB,KAExB,SAAW,KAAQ,OACN,EAAM,GAAgB,EAAK,eAGZ,IACtB,CACJ,eAAgB,KAChB,cAAeE,KACf,CACF,iLC8BS,gBAA+E,sBAApF,iMAAK,yFAAL,gNAII,sDAIM,4QAJN,0FAIM,4MATR,MAAY,KAAS,mFAArB,MAAY,KAAS,4NAPhB,WAAa,OAAS,KAAM,sBAAyB,sBAG3D,4DANE,iHAEM,MAAa,MAAI,MAAM,yBAAvB,KAAa,MAAI,MAAM,oGAEnB,yHADN,WAAa,OAAS,KAAM,sBAAyB,oCAG3D,kHAJQ,KAAa,MAAI,MAAM,2BAF7B,+IAIU,gOApDL,WACA,gBACA,mBAEA,SACA,YAEA,eACA,kBACA,gBACA,SAAwB,SACxB,aACA,gBAEL,GAAW,KAEb,IACE,EAAc,cAAgB,GACjC,EAAc,KAAO,SACX,EAAc,cAAgB,IAE/B,EAAY,IAAI,CAAE,EAD3B,EAAc,KAAO,UAIrB,EAAc,KAAO,UAIxB,OACC,GAAS,QAAS,CAAE,MAEP,EAAS,UAAW,CAAE,IAOpC,GAAW,YAAa,CAAM,aAEF,YAChB,KAAK,GAAE,WACjB,EAAa,GAAI,MAAM,GAAK,EAAE,OAAO,gHAO5B,EAAa,GAAI,iDAChB,EAAa,GAAI,MAAM,UAAvB,GAAa,GAAI,MAAM,waAhBhC,EACF,GACA,EAAS,OAAQ,GAAM,EAAa,EAAE,IAAI,OAAS,eAAe,uNCFpE,KAAM,IAAiB,6CACjB,GAAwB,4CAG7B,EACA,EACkC,IAC9B,IACC,GAAW,KAAM,OAAM,EAAK,CAC/B,OAAQ,OACR,KAAM,KAAK,UAAU,CAAI,EACzB,QAAS,CAAE,eAAgB,oBAC3B,cAEM,CAAC,CAAE,MAAO,IAAyB,GAAG,QAGvC,CADsB,KAAM,GAAS,OAC5B,EAAS,MAAM,CAChC,CAYA,KAAM,OAAa,KACN,GACZ,CACC,EACA,EACA,EACA,IAED,MAAO,CACN,SACA,UACA,QACA,aACA,cACA,cACA,iBACA,iBACA,aAWuB,MACjB,GAAW,EAAQ,cAEjB,aAAe,EACnB,IAAgB,WACX,KAAO,KAAM,GAAY,EAAQ,KAAK,OAAO,CAAW,CAAC,GAE9D,GAAc,SACV,MAGJ,GAAS,CAAC,UAAW,WAAW,EAAE,SAAS,CAAM,EAAG,IAW9C,GAAT,SAAsB,EAAY,EAAW,IACrC,IAAI,CAAE,GAAG,KAAK,KAAK,UAAU,CAAI,CAAC,KAX3B,OACd,EACA,UACA,EACA,KACA,KACA,KACA,IACD,KAMI,GAAc,MAEd,IACW,SAAS,GAAI,KAAI,CAAY,EAAE,sBACvC,IACF,GACH,IAAiB,OAAS,SAAS,KAAO,EACvC,EAAc,EAAY,WAAW,OAAO,EAAI,OAAS,MACzD,EAAU,SAAS,WAAa,IAAM,IAAM,SAAS,SACrD,EACqB,SAAS,SAAW,wBACzC,GAAY,QAAQ,UAAW,EAAE,EAAE,MAAM,EAAG,EAAE,EAC9C,SAAS,OACC,GAAG,MAAgB,IAAU,iBAGxC,GAAY,GAAI,WAAU,CAAW,KAClC,IAAI,EAAU,CAAS,IAEpB,QAAU,AAAC,GAAQ,CACvB,EAAI,YACO,OACd,EACA,QACA,EACA,KACA,KACA,KACA,EACD,KAIQ,UAAY,eAAgB,EAAO,MACtC,GAAO,KAAK,MAAM,EAAM,IAAI,SAE1B,EAAK,SACP,cACS,EAAU,CAAO,YAE1B,eACG,IAAI,CAAQ,GAAG,KACrB,KAAK,UAAU,CACd,eACA,WACA,CACF,YAEI,eACW,OACd,EACA,QACA,EACA,KACA,KACA,KACA,EACD,IACU,mBAEN,eACW,OACd,EACAC,GAAI,CAAc,EAAE,EAAK,WAAW,QAAU,UAC9C,EACA,EAAK,WACL,EAAK,KACL,EAAK,SACL,IACD,YAEI,uBACW,OACd,EACA,EAAK,QAAU,aAAe,QAC9B,EACA,KACA,KACA,EAAK,OAAO,iBACZ,AAAC,EAAK,QAA8B,KAApB,EAAK,OAAO,KAC7B,EACI,EAAK,WACO,EAAK,MAAM,YAGvB,sBACW,OACd,EACA,EAAK,QAAU,WAAa,QAC5B,EACA,KACA,KACA,EAAK,OAAO,iBACZ,AAAC,EAAK,QAA8B,KAApB,EAAK,OAAO,KAC7B,EACI,EAAK,WACO,EAAK,MAAM,IAEjB,mBAEN,mBACW,OACd,EACA,UACA,EACA,EAAK,KACL,EACA,KACA,IACD,cAIG,GACS,OACd,EACA,UACA,EACA,KACA,KACA,KACA,IACD,KAEI,CAAC,EAAQ,GAAe,KAAM,IAAU,EAAe,EAAS,IAAK,IACrE,EACH,eACA,KACG,GAAe,MACH,OACd,EACA,WACA,EACA,KACA,KACA,EAAO,iBACP,IACD,EAEI,EAAQ,OAAS,KACZ,QAAQ,AAAC,GAAa,GACd,OACd,EACA,WACA,EACA,KACA,KACA,KACA,IACD,KACO,IAAI,CAAQ,GAAG,QACtB,eAGa,OACd,EACA,QACA,EACA,KACA,KACA,KACA,EAAO,KACR,EACM,EAAO,OAAS,kBAEhB,GAET,EC7RD,YAAiB,EAAK,CAClB,MAAO,QAAO,UAAU,SAAS,KAAK,CAAG,IAAM,eACnD,CAEA,YAAqB,EAAK,EAAY,EAAe,EAAc,CAC/D,GAAI,MAAO,IAAkB,UAAY,GAAQ,CAAa,EAAG,CAE7D,KAAM,GAAQ,EAAe,EAEvB,EAAY,GAAgB,GAAe,GAAI,IAAM,EAAI,IACzD,EAAS,EAAI,KAAK,UAAY,EAC9B,EAAS,EAAI,KAAK,QAAU,EAC5B,EAAgB,GAAS,GAAU,EAAI,SACvC,EAAK,GAAW,GAAgB,EAAI,GAC1C,MAAI,MAAK,IAAI,CAAC,EAAI,EAAI,KAAK,WAAa,KAAK,IAAI,CAAK,EAAI,EAAI,KAAK,UACxD,EAGP,GAAI,QAAU,GAEP,GAAQ,CAAa,EACxB,GAAI,MAAK,EAAc,UAAY,CAAC,EAAI,EAAgB,OAG/D,IAAI,MAAM,QAAQ,CAAa,EAEhC,MAAO,GAAc,IAAI,CAAC,EAAG,IAAM,GAAY,EAAK,EAAW,GAAI,EAAc,GAAI,EAAa,EAAE,CAAC,EAEpG,GAAI,MAAO,IAAkB,SAAU,CACxC,KAAM,GAAa,GACnB,SAAW,KAAK,GAEZ,EAAW,GAAK,GAAY,EAAK,EAAW,GAAI,EAAc,GAAI,EAAa,EAAE,EAGrF,MAAO,OAGP,MAAM,IAAI,OAAM,iBAAiB,MAAO,WAAsB,EAEtE,CACA,YAAgB,EAAO,EAAO,GAAI,CAC9B,KAAM,GAAQ,GAAS,CAAK,EACtB,CAAE,YAAY,IAAM,UAAU,GAAK,YAAY,KAAS,EAC9D,GAAI,GACA,EACA,EACA,EAAa,EACb,EAAe,EACf,EAAW,EACX,EAAyB,EACzB,EAAc,GAClB,WAAa,EAAW,EAAO,GAAI,CAC/B,EAAe,EACf,KAAM,GAAQ,EAAgB,GAC9B,GAAI,GAAS,MAAQ,EAAK,MAAS,EAAO,WAAa,GAAK,EAAO,SAAW,EAC1E,SAAc,GACd,EAAY,KACZ,EAAa,EACb,EAAM,IAAI,EAAQ,CAAY,EACvB,QAAQ,UAEd,GAAI,EAAK,KAAM,CAChB,KAAM,GAAO,EAAK,OAAS,GAAO,GAAK,CAAC,EAAK,KAC7C,EAAyB,EAAK,GAAO,IACrC,EAAW,EAEf,MAAK,IACD,GAAY,KACZ,EAAc,GACd,EAAO,GAAK,GAAO,CACf,GAAI,EACA,SAAc,GACd,EAAO,KACA,GAEX,EAAW,KAAK,IAAI,EAAW,EAAwB,CAAC,EACxD,KAAM,GAAM,CACR,WACA,KAAM,EACN,QAAS,GACT,GAAK,GAAM,GAAa,GAAK,KAE3B,EAAa,GAAY,EAAK,EAAY,EAAO,CAAY,EACnE,SAAY,EACZ,EAAa,EACb,EAAM,IAAI,EAAQ,CAAU,EACxB,EAAI,SACJ,GAAO,MAEJ,CAAC,EAAI,QACf,GAEE,GAAI,SAAQ,GAAU,CACzB,EAAK,QAAQ,KAAK,IAAM,CACpB,AAAI,IAAU,GACV,IACP,EACJ,EAEL,KAAM,GAAS,CACX,MACA,OAAQ,CAAC,EAAI,IAAS,EAAI,EAAG,EAAc,CAAK,EAAG,CAAI,EACvD,UAAW,EAAM,UACjB,YACA,UACA,aAEJ,MAAO,EACX,0qBC9DkC,KAAK,UAAQ,KAAK,geAoBlB,KAAQ,UAAQ,KAAQ,2MA7B3B,cAA/B,SACC,OAQC,OACC,OAKA,OAIA,OAKA,OAKD,OACC,OAKA,OAIA,OAKA,oDAnC+B,KAAK,UAAQ,KAAK,6CAoBlB,KAAQ,UAAQ,KAAQ,0BA7B3B,0DAtCnB,SAAkB,WAEvB,GAAM,IAAQ,EAAG,CAAC,4BAClB,GAAS,IAAQ,EAAG,CAAC,0BAEvB,0BAGQ,cAAe,UACnB,SAAQ,KAAK,EAAI,KAAK,IAAK,GAAG,GAAI,EAAO,cAAe,UAExD,SAAQ,KAAK,EAAI,UAAW,GAAG,GAAI,EAAO,KAAK,QAAS,UAExD,SAAQ,KAAK,EAAI,UAAW,CAAC,GAAI,EAAO,KAAK,MAAO,UAEpD,SAAQ,KAAK,EAAI,KAAK,IAAK,CAAC,GAAI,EAAO,UAAW,CAAC,KAEzD,8BAKK,KACD,GAAY,4BAIX,SAAQ,KAAK,EAAI,KAAK,IAAK,CAAC,GAAI,EAAO,UAAW,CAAC,KAEzD,IAGD,cACC,SACc,EAAa,uICtC7B,OAAe,8ECAA,2ECAA,4ECAA,qkBCoXyB;AAAA,IAErC,kBACE;;;;;+KAMS,EAAK,iLAVlB,SACC,cAEC,qBAGA,OAIC,cAGF,2DATG,8FA7NE,MAAmB,WAOjB,0BAAL,qHAlB6D;AAAA;AAAA,IAE9D,iBACE,qHAHQ,EAAQ,iHAQN,EAAK,4RAZnB,SAGC,OACC,cAEA,qBAGA,OAGE,sCASJ,sHAdI,MAQE,MAAmB,yBAOjB,uBAAL,wHAAA,+DAAA,mNALC,+BADF,0DAgBS,MAAW,4BAIJ,MAAW,uJAclB,QAAgB,iFAkBf,MAAW,8BAAhB,wCAmDM,MAAW,+BAAhB,wCAkCE,gBAgBI,SAAU,EAAM,GAAI,aAAc,EAAU,wEAgBhD,OAAqB,sBAgBhB,OAAqB,0BAsBrB,OAAqB,yHAhM/B;AAAA,YACK,8BAE8C,YACzC,kBACP,UAAK,MAAI;0CA6Bb,GACO,gBAAK;AAAA,wBACU,6DA2Bf;AAAA,gBACO,iBAAK;AAAA,QAEnB;2DAmBuC,GAC/B,kBAAK;AAAA,yBACU,+DA2Bf;AAAA,0BACoB,gBAAK;AAAA;AAAA,QAE/B,wFAEM;AAAA,SAEP;yuBApCY,KAAY,SAAW,EAAE,ubA5FvC,UAGC,OACC,4BAMD,cACW,mCAGV,2BAeD,cAUA,cAGO,cACe,kEA4BR,sBAGd,eAKA,gBAUA,QAGC,kBACO,kBACe,wEA4BK,gBAE1B,QAEC,qDASH,gBASA,sDAcA,6EAnFW,MAAI,KAAK,KAAM,uDAnEnB,MAAW,2CAId,6BAAU,MAAW,kGAgCjB,MAAW,0BAAhB,0IAAA,wBAmDM,MAAW,2BAAhB,2IAAA,mCAHS,KAAY,SAAW,uBAqC9B,uHAgBI,SAAU,EAAM,GAAI,aAAc,EAAU,+XAvHA,MAAI,uEAAlB,SAAO,yIA2B5C,0DAGG,KAAa,OAAc,eAAe,oBAG7B,KAAa,OAAc,eACxC,wBAGA,KAAa,OAAc,MAAM,KAAK,aAGtC,KAAa,OAAc,MAAM,kEAdhC,KAAoB,OAAkB,4BARa,kBAChC,oDAUG,IACxB,aAAgD,GAAC,wBAGlD,gBAAc,aACA;AAAA,SACf,sCAMC,YACF,kRAvBwB,cAGX,KAAkB,OAC7B,sCAMF,uCAGA,4CAOC,8BAID,oEArBa,KAAkB,OAC7B,aADW,KAAkB,OAC7B,QAGG,KAAoB,OAAkB,+EAIvC,KAAa,OAAc,eAAe,iCAG7B,KAAa,OAAc,eACxC,2CAGA,KAAa,OAAc,MAAM,KAAK,8BAGtC,KAAa,OAAc,MAAM,mNAsCjC,IACH,mLARC,cAIa,KAAmB,OAC9B,4EADW,KAAmB,OAC9B,aADW,KAAmB,OAC9B,oEAKD,KAAa,OAAc,eAAe,oBAG3B,KAAa,OAAc,eACxC,wBAGA,KAAa,OAAc,MAAM,KAAK,aAGtC,KAAa,OAAc,MAAM,kBArBR,KAAmB,OAAkB,SAAqB,6BAD9B,kBACjC,wCAWyB,GACjD,wBAEE,gBAAc,aACA;AAAA,UACf,sCAMC,YACF,4IAbA,gCAGA,4CAOC,8BAID,iBAxB6B,KAAmB,OAAkB,SAAqB,wFAWrF,KAAa,OAAc,eAAe,iCAG3B,KAAa,OAAc,eACxC,2CAGA,KAAa,OAAc,MAAM,KAAK,8BAGtC,KAAa,OAAc,MAAM,oJAcrB,+FADjB,+IAwBE,kHADS,2KALX,QAAqB,MACjB,iDACA,sGAJJ,SAOC,kLALD,QAAqB,MACjB,iDACA,qQAkDJ,sDAtBa,KAAO,OAAS,MAAW,iBAI7B,KAAkB,4BAAvB,yDAJD,SAAO,aAAqC;AAAA;AAAA;AAAA;AAAA,YAI7C,2CAQO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQjB,UApBM,0GAAa,KAAO,OAAS,MAAW,gCAI7B,KAAkB,yBAAvB,4HAAA,yDAlBc,KAAO,OAAS,MAAW,iBACpC,KAAkB,4BAAvB,yDAHD;AAAA;AAAA,2BAEc,aAAqC;AAAA,YACpD,2CAQO;AAAA;AAAA;AAAA,wBAGK,UAdhB,0GAEoB,KAAO,OAAS,MAAW,gCACpC,KAAkB,yBAAvB,4HAAA,yDAmBF,MACD,MACA,KACC,KAAa,OAAkB,OAAO,QACrC,eAAe,KACjB,IAAG,kCALT,QAAM,aAMC,GAAC,UAR8E,4DAE/E,MACD,MACA,KACC,KAAa,OAAkB,OAAO,QACrC,eAAe,KACjB,IAAG,gFAtBI,MACP,MACA,KACC,KAAa,OAAkB,OAAO,QACrC,eAAe,KACjB,IAAG,kCALD,MAAI,aAML,GAAC,UAR8E,4DAEzE,MACP,MACA,KACC,KAAa,OAAkB,OAAO,QACrC,eAAe,KACjB,IAAG,gFA7KL,MAAW,qFAAX,MAAW,0PAxBd,qLAsFM,GACK,EAAQ,IAAM,EAAQ,IAAM,SAkDhC,GACK,EAAQ,IAAM,EAAQ,IAAM,8BA1QtC,GAAW,KAEjB,OACC,UAAS,KAAK,MAAM,SAAW,cAE9B,SAAS,KAAK,MAAM,SAAW,cAItB,mBAGA,mBACA,UAEP,IAAS,IACZ,GAAO,SAAS,SAAW,KAAO,SAAS,KAAO,SAAS,UAEvD,EAAK,SAAS,GAAG,GACrB,IAAQ,QAGL,GAAmB,SACnB,KACA,EAAY,GAEZ,EAAoB,EAAa,IAAK,GACzC,EAAW,OAAO,IAAK,OAClB,GAAe,EAAa,GAAK,eAAe,mBAChD,KAAiB,OACpB,EAAe,SACE,IAAiB,UAClC,GAAe,KAAK,UAAU,CAAY,GAEpC,KAGL,EAA8B,EAAa,IAC7C,MAAmB,OAAM,EAAW,QAAQ,MAAM,GAEhD,EAAmC,EAAa,IAAK,MACpD,OAAM,EAAW,OAAO,MAAM,EAAE,KAAK,EAAK,GAE3C,EAAmB,EAAa,OAAQ,GAAM,EAAE,QAAQ,EAAE,YAExD,QAAa,SAClB,EAAY,EAAI,KACZ,GAAa,EAAa,GAC1B,EAA4B,SAE3B,GAAS,EAAkB,GAAO,KAAK,EAAW,KACrD,EAA4B,KACxB,GAAY,EAAa,EAAW,OAAO,IAC/C,SAAY,EAAgB,EAAW,EAAU,eAAe,IAAI,MACpE,EAAoB,GAAO,GAA6B,MACjD,cAGR,EAAoB,GAAO,GAA6B,UACxD,EAAY,EAAK,aAGb,EAAU,SAAqB,OAChC,QAAW,EAAW,YAExB,KAAM,QAGR,EAAY,EAAK,EACb,IAAe,QAClB,EAAmB,GAAS,EAAS,KAAK,KACxC,EAAiB,QACb,GAAY,EAAa,EAAW,QAAQ,IAChD,eAAQ,IACP,EAAU,eAAe,KACzB,EACA,EAAgB,EAAY,EAAU,eAAe,KAAM,IAAI,GAEzD,EACN,EACA,EAAU,eAAe,KACzB,IAAI,WAKP,EAAoB,MAAa,OAChC,EAAoB,GAAO,MAAM,EAChC,KAAK,EAAI,MAIP,GACL,EACA,EACA,EAA2B,OAEvB,IAAS,OACL,IAAS,KAAO,OAAS,KAE7B,IAAS,SACL,IAAS,KAAO,EAAQ,IAAM,EAAQ,IACnC,IAAS,SACZ,IAAS,KAAO,WAAW,CAAK,EAAI,EACjC,IAAS,UACf,IAAS,KACL,IAAU,OAAS,OAAS,QACzB,IAAS,KACZ,EAEA,IAAU,OAId,IAAS,KACL,IAAU,GAAK,KAAO,KAAK,MAAM,CAAK,QAC5B,IAAU,SACvB,IAAU,GACN,IAAS,KAAO,OAAS,OAE1B,EAEA,KAAK,UAAU,CAAK,QAkBX,EAAS,OAAO,YA8B5B,UAAU,UAAU,UACnB,EAAO,OAAS,EAAW,QAAA,MAE5B,EAAc,CAAgB,EAC9B,oBACC,IAAgB,GACd,sBAyBS,EAAkB,GAC7B,qCAoDa,EAAmB,GAC9B,oCAiDc,EAAmB,CAAQ,QAiEhC,EAAS,OAAO,gSC3XpC,OAAe,iHC4YL,wLAGR,kFAca,KAAS,oBACT,KAAS,aAChB,KAAS,SACN,KAAS,eACN,KAAS,gGAMT,sHAVC,KAAS,kCACT,KAAS,2BAChB,KAAS,uBACN,KAAS,6BACN,KAAS,+QAoBpB,cACa,8DAAU,EAAQ,4HAN/B,gBAMa,gBAEb,sfAeF,SACC,cAMA,8TAnEI,cAGA,aAaC,eAoBA,cAuBF,OAAoB,6IAPvB;AAAA,IAEC,+GAxCgB,kDAwCoB,EAAI,mTA3CW,mHAAtD,SACC,6BAqBA,6BAcC,cAOC,kDAtDG,+DAGA,8DAaC,uIAFY,MAsBZ,yFAzB+C,MAgDjD,OAAoB,kRA7WvB,EACA,EACA,MAEI,GAAY,eAET,GAAM,EAAK,MACb,IAAQ,gBAER,GAAiB,eAEd,GAAW,EAAI,GAAM,MACvB,IAAa,gBACb,IAAa,QAAW,GAC5B,IAGD,UAGM,eAiBsB,SAE3B,OAAM,QAAQ,CAAK,GAAK,EAAM,SAAW,GAC1C,IAAU,IACV,IAAU,IACT,2BA1GH,SAEW,WACA,SACA,iBACA,aACA,mBAEA,mBACA,QAAgB,aAChB,oBAA6B,OAC7B,aACA,KAAa,MACb,aAAsB,OACtB,WAAoB,OACpB,qBAAqB,OACrB,eACA,WAEP,EAAiB,6BAIjB,IACH,GAAI,EAAO,GACX,KAAM,SACN,SACA,UAAW,GACX,YACA,cAGD,EAAW,KAAK,CAAQ,OAElB,GAAgB,OAAO,mCAAqC,YAClE,EAAa,QAAS,OACjB,EAAE,OAEJ,EAAE,eAAkB,GACnB,mCACuB,EAAE;AAAA,cAChB,EAAE,QAAQ,2CAEZ,GACR,QAAQ,MAAM,mCAAmC,EACjD,QAAQ,MAAM,CAAC,QAMd,GAAmB,GADN,iBAAgB,OAAO,SAAS,MAAM,EACzB,IAAI,MAAM,IAAM,WACxC,GAAwB,SAC7B,EAAmB,CAAO,KACtB,MAAa,iBAAgB,OAAO,SAAS,MAAM,EACnD,EACH,EAAO,IAAI,OAAQ,KAAK,EAExB,EAAO,OAAO,MAAM,EAErB,QAAQ,aAAa,KAAM,GAAI,IAAM,EAAO,aA2BvC,EAA2B,EAAW,QAC1C,GAAO,KAAI,iBACL,GAAW,GAAO,EAAI,SAAU,CAAY,EAC5C,GAAY,GAAO,EAAI,UAAW,CAAY,SAE/C,IAAa,IAAa,GAAqB,GAAO,KAAK,GAC/D,EAAI,IAAI,CAAE,EACP,GAAU,EAAI,IAAI,CAAE,EAEjB,MAEJ,SAYD,GAAe,EAAW,QAAQ,EAAK,IAC1C,GAAI,EAAK,IAAM,EACR,mBAUP,aAKW,eAAe,EAAK,cAEvB,QAAU,IAAc,KAC9B,GACC,OACA,UAAW,UAEJ,GACR,QAAQ,MAAM,mBAAqB,CAAI,EACvC,QAAQ,MAAM,CAAC,EACf,EAAI,CAAC,UAKF,MAAoB,KAGpB,KAAqB,sBAKA,MACtB,GAAW,EAAa,EAAK,SAC3B,SAAoB,GAAe,IAAI,EAAS,IAAI,GAAI,UAC9D,EAAS,UAAY,EAAW,UAC5B,EAAW,UACd,GAAS,cAAgB,EAAW,SAAS,EAAS,KAAK,GAExD,EAAW,OAAS,EAAW,MAAM,OAAS,GACjD,GAAS,UAAY,IAGlB,EAAK,UACR,GAAS,SAAW,EAAK,SAAS,IAAK,GAAM,EAAa,EAAE,UACtD,SAAQ,IAAI,EAAK,SAAS,IAAK,GAAM,EAAY,CAAC,KAI1D,EAAW,aAAe,UACnB,GAAK,GAAe,EAAE,IAAI,EAChC,EAAc,IAAI,CAAE,EACpB,EAAe,IAAI,EAAE,KAAM,CAAE,OAG1B,IAAQ,GACZ,QAAQ,IAAI,MAAM,KAAK,CAAa,GAAG,UACtC,EAAY,CAAM,EAChB,oBACA,GAAQ,EAAI,OAEN,MACN,OAAO,kBAAkB,GAAI,MAAO,OAAQ,eAE5C,MAAO,IACP,QAAQ,MAAM,CAAC,EACf,OAAO,kBAAkB,GAAI,MAAO,OAAQ,0BAIJ,EAAQ,EAAc,GAC3D,GAAK,OACT,GAAI,UAEL,EAAI,MAAM,GAAQ,YAIf,gCAGG,aAEF,GAAI,EAAO,qBAAqB,GAAG,EAE9B,EAAI,EAAG,EAAI,EAAE,OAAQ,IAEzB,AADY,EAAE,GAAG,aAAa,QAAQ,IAC1B,UAAU,EAAE,GAAG,aAAa,SAAU,QAAQ,EAG/D,EAAa,UAGV,UACA,UACA,UACA,WACA,SACA,cACA,eACA,cACG,IAEJ,WAEM,IAA8C,EAAQ,IAAK,KAChE,GACA,EAAa,SAKb,EAAQ,SAAW,IAClB,GAAqB,KAAI,WAAW,GACrC,IAAY,QAEZ,GAAQ,MAAO,IAAM,IAAe,IAAG,QAAQ,GAC/C,GAAO,MAAO,IAAM,IAAe,IAAG,QAAQ,MAgBrC,aAAc,IACtB,GAAO,KAAK,SAAS,GAAY,eAExB,KAAU,UACjB,KAAU,MACV,GAAM,WAAa,oBAEP,GAAY,KAAiB,QAAO,QAC/C,EAAK,EAED,KAAe,iBAGlB,EAAa,GAAQ,KAAI,MAAM,IAAc,uBAK/C,EAAa,GAAQ,KAAI,MAAM,MAAQ,cAhCpC,IAAM,GACX,OAAQ,UACR,cACA,eACA,SACC,SAAU,GACV,KAAM,GAAO,IAAK,IAAO,EAAa,IAAI,MAAM,KAAK,GAEtD,MAAO,KAAU,KAAO,EAAe,GACvC,eAAgB,GACA,iBAChB,aA0BK,MAAU,KAAO,EAAe,KACrC,GAAI,KAAK,EAAa,EAGvB,GAAqB,OAAQ,EAG9B,GACE,OAAQ,MAAQ,MAAO,GAAE,IACzB,UAAU,IAAM,oBACZ,GAAqB,KAAI,SAAS,EAAE,IAAM,UAC9C,IAAU,IAAI,UACT,EAAe,kBAAkB,EAAC,IAAM,sBAKtC,IAAM,GACX,OAAQ,UACR,cACA,eACA,SACC,SAAU,GACV,KAAM,GAAO,IAAK,IAAO,EAAa,IAAI,MAAM,KAAK,GAEtD,YAAa,GAAQ,IAAK,IAAO,EAAa,IAAI,MAAM,KAAK,EAC7D,MAAO,KAAU,KAAO,EAAe,GACvC,eAAgB,GACA,iBAChB,aAGK,MAAU,KAAO,EAAe,KACrC,GAAI,KAAK,EAAa,gBAID,IACtB,GAAO,KAAK,SAAS,GAAY,eAExB,KAAU,UACjB,KAAU,MACV,GAAM,WAAa,oBAEP,GAAY,KAAiB,QAAO,QAC/C,EAAK,EAED,KAAe,iBAGlB,EAAa,GAAQ,KAAI,MAAM,IAAc,uBAK/C,EAAa,GAAQ,KAAI,MAAM,MAAQ,QAKrC,GAAqB,KAAI,IAAqB,QACnD,GAAqB,IAAG,KAAK,EAAE,kBAMZ,GACvB,GAAuB,GAAqB,IAAK,GACzC,EAAI,OAAQ,GAAQ,IAAQ,CAAE,GAMvC,EAAa,SAAS,EAAG,KACxB,EAAe,SAAS,EAAG,EAAE,OAAQ,EAAE,OAAO,gBAG3B,YACR,KAAM,OACZ,GAAiB,EAAS,GAC1B,GAAa,EAAa,EAAe,UAC7C,EAAe,iBAAmB,GAAW,iBAC7C,EAAe,QAAU,GAAW,cAEpC,GAAS,EAAa,GAAK,iBAAkB,CAAc,OAEtD,GAAmB,EAAe,iCAC5B,EAAI,IAAmB,GAClC,GAAS,EAAa,GAAK,UAAW,IAAmB,SAAS,aAmClD,YAAa,GAAe,CAAM,UAUhD,GAAsB,CAAgB,WAyBvC,EAAqB,EAAK,WAQzB,EAAqB,EAAK,6kBAra3B,GAAU,OAAQ,QAAY,EAAG,wCAsUjC,GAAW,CAAe,skBCpX9B,4XCAI,EAAE,OACF,GAAO,UAAW,CAAC,MAAO,CAAC,iBAAiB,GAAM,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,EACxRC,WAAe,6BACe,GCF9B,OAAO,eAAeC,GAAS,aAAc,CACzC,MAAO,EACX,CAAC,SACa,cACI,OAClB,GAAI,IAAcC,GAAuBC,UAAqB,EAC9D,YAAgC,EAAK,CACjC,MAAO,IAAO,EAAI,WAAa,EAAM,CACjC,QAAS,EAEjB,CACA,GAAI,IAAe,GAAI,KACvB,YAAa,EAAM,EAAU,EAAK,CAC9B,AAAI,MAAO,SAAY,QAA2B,gBAC9C,GAAO,GAAa,IAAI,CAAG,GAC3B,IAAK,GAAa,IAAI,CAAG,EAC7B,QAAQ,KAAK,EAAE,EACf,EAAS,QAAQ,AAAC,GAAU,QAAQ,KAAK,EAAM,IAAK,CAAO,CAAC,EAChE,CACA,YAAa,EAAO,CAChB,MAAO,IAAY,QAAQ,IAAI,CAAK,CACxC,CACA,GAAIC,IAAW,CACX,KAAM,EAAK,EAAU,CACjB,GAAI,GAAY,QAAQ,KAAK,GAAY,QAAQ,KAAK,MAAM,CAAC,EAAG,GAAG,MAAM,QAAQ,CAAG,EAAI,CACpF,GACA,CACA,EACA,EACH,GAEL,KAAM,EAAK,EAAU,CACjB,GAAI,GAAY,QAAQ,KAAK,GAAY,QAAQ,OAAO,MAAM,CAAC,EAAG,GAAG,MAAM,QAAQ,CAAG,EAAI,CACtF,GACA,CACA,EACA,EACH,GAEL,KAAM,EAAK,EAAU,CACjB,GAAI,GAAY,QAAQ,KAAK,GAAY,QAAQ,QAAQ,MAAM,CAAC,EAAG,GAAG,MAAM,QAAQ,CAAG,EAAI,CACvF,GACA,CACA,EACA,EACH,EAET,aACkBA,GChDlB,OAAO,eAAeC,GAAS,aAAc,CACzC,MAAO,EACX,CAAC,aACiB,OAClB,GAAI,IAAO,GAAuBF,EAAsB,EACxD,YAAgC,EAAK,CACjC,MAAO,IAAO,EAAI,WAAa,EAAM,CACjC,QAAS,EAEjB,CACA,YAAc,CAAE,UAAU,OAAO,MAAO,CACpC,GAAK,QAAQ,KAAK,GAAG,kBAAsB,CACvC,sBAAsB,QAAc,6BAAgC,OACpE,0DACH,CACL,CACA,GAAI,IAAW,CACX,QAAS,UACT,QAAS,eACT,YAAa,cACb,MAAO,OACP,MAAO,OACP,MAAO,CACH,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAET,KAAM,CACF,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAET,KAAM,CACF,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAET,QAAS,CACL,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAET,MAAO,CACH,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAET,IAAK,CACD,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAET,OAAQ,CACJ,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAET,MAAO,CACH,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAET,OAAQ,CACJ,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAET,KAAM,CACF,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAET,MAAO,CACH,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAET,QAAS,CACL,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAET,KAAM,CACF,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAET,KAAM,CACF,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAET,IAAK,CACD,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAET,KAAM,CACF,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAET,OAAQ,CACJ,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAET,OAAQ,CACJ,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAET,OAAQ,CACJ,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAET,QAAS,CACL,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAET,KAAM,CACF,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WAET,KAAM,CACF,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,cAEL,YAAa,CACb,UAAK,CACD,QAAS,OACT,KAAM,YACN,GAAI,MACP,EACM,KAAK,QAEZ,WAAY,CACZ,UAAK,CACD,QAAS,OACT,KAAM,WACN,GAAI,QACP,EACM,KAAK,UAEZ,WAAY,CACZ,UAAK,CACD,QAAS,OACT,KAAM,WACN,GAAI,UACP,EACM,KAAK,YAEZ,WAAY,CACZ,UAAK,CACD,QAAS,OACT,KAAM,WACN,GAAI,OACP,EACM,KAAK,SAEZ,WAAY,CACZ,UAAK,CACD,QAAS,OACT,KAAM,WACN,GAAI,QACP,EACM,KAAK,MAEpB,aACkB,GCxUlB,GAAIE,IAASF,MACb,IAAkBE,IAAO,WAAaA,GAAS,CAAE,QAASA,KAAU,aCCvD,IAAiB,CAC7B,MACA,QACA,OACA,SACA,SACA,OACA,SACA,OACA,OACA,MACD,EAoBa,GAAe,CAC3B,CAAE,MAAO,MAAO,QAAS,IAAK,UAAW,KACzC,CAAE,MAAO,QAAS,QAAS,IAAK,UAAW,KAC3C,CAAE,MAAO,OAAQ,QAAS,IAAK,UAAW,KAC1C,CAAE,MAAO,SAAU,QAAS,IAAK,UAAW,KAC5C,CAAE,MAAO,SAAU,QAAS,IAAK,UAAW,KAC5C,CAAE,MAAO,OAAQ,QAAS,IAAK,UAAW,KAC1C,CAAE,MAAO,SAAU,QAAS,IAAK,UAAW,KAC5C,CAAE,MAAO,OAAQ,QAAS,IAAK,UAAW,KAC1C,CAAE,MAAO,OAAQ,QAAS,IAAK,UAAW,KAC1C,CAAE,MAAO,OAAQ,QAAS,IAAK,UAAW,IAC3C,EAEa,GAAS,GAAa,OAClC,CAAC,EAAK,CAAE,QAAO,UAAS,oBACpB,GACF,GAAQ,CACR,QAASC,GAAU,GAAO,GAC1B,UAAWA,GAAU,GAAO,GAE9B,GACA,EACD,ECjCM,GAAY,CAAyB,EAAgB,IACnD,GAAe,GAAK,EAAO,EAAK,cAIvC,EACA,EACkB,MACZ,GAAmB,EAAe,OAAO,CAAC,EAAK,KAChD,EAAO,KAAU,QAAa,CAAC,GAAe,KAAW,GAAQ,MAEhE,GAAQ,IAAI,GAAU,EAAQ,CAAI,KAEhC,GACL,EAAqB,WAEP,QAAU,IAAI,OAAO,OAAO,CAAgB,EAC3D,KAAK,GAAG,EACR,QAAQ,OAAQ,GAAG,EACnB,UAEK,CACR,CAMA,KAAM,IAAgC,CACrC,UAAU,EAAmB,OACrB,GACJ,GACA,sEAEJ,gBAAgB,EAAS,OACjB,GACJ,GACA,4DAEJ,KAAK,EAAM,IACN,GAAW,CAAC,GAAI,MAAO,MAAO,MAAO,MAAO,MAAM,EAClD,EAAQ,MAAM,QAAQ,CAAI,EAAI,EAAO,CAAC,CAAI,QAEvC,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACtB,IACA,CAAC,EAAG,IACH,GAAG,EAAS,eAAe,IAAQ,IAAM,IAAQ,GAAO,OAAS,IACnE,EACC,KAAK,GAAG,GAEX,OAAO,EAAQ,OACP,KAAW,OAAS,OAAS,IAErC,WAAW,EAAY,OACf,GAAa,cAAgB,UAErC,aAAa,EAAc,OACnB,GAAe,gBAAkB,kBAEzC,QAAQ,EAAS,OACT,GAAU,GAAK,WAEvB,eAAe,EAAS,OAChB,GAAU,GAAK,eAExB,EAEa,GAAiB,CAC7B,EACA,EAAiB,KACL,IACR,GAAyB,GACzB,EAAqC,MACrC,IAAW,KACE,gBAEL,KAAQ,MACd,EAAK,WAAW,EAAS,GAAG,EAAG,MAC5B,GAAW,EAAK,UAAU,EAAK,QAAQ,GAAG,EAAI,CAAC,IACvC,GAAY,EAAO,MAKhC,EAAc,eAAe,QAAQ,EAAG,CACtC,MAAM,QAAQ,EAAc,MAAM,MACxB,OAAS,AAAE,EAAc,OACpC,CAAC,GAAM,GAAM,GAAM,EAAI,EACvB,CAAC,GAAO,GAAO,GAAO,EAAK,MAG3B,GAAa,CAAC,IAAK,IAAK,IAAK,GAAG,EAEnC,EAAc,OAAqB,QAAQ,CAAC,EAAQ,IAAM,CACrD,KACI,KAAK,KAAK,EAAW,MAAM,EAEpC,KAGE,EAAc,eAAe,QAAQ,EAAG,CACtC,MAAM,QAAQ,EAAc,MAAM,MACxB,OAAS,AAAE,EAAc,OACpC,CAAC,GAAM,GAAM,GAAM,EAAI,EACvB,CAAC,GAAO,GAAO,GAAO,EAAK,MAG3B,GAAa,CAAC,IAAK,IAAK,IAAK,GAAG,EAEnC,EAAc,OAAqB,QAAQ,CAAC,EAAQ,IAAM,CACrD,KACI,KAAK,WAAW,EAAW,MAAM,EAE1C,SAGM,EAAc,aAChB,KACI,KAAK,aAAa,YAEtB,KACI,KAAK,eAAe,eAItB,EAAc,gBAChB,KACI,KAAK,QAAQ,YAEjB,KACI,KAAK,SAAS,eAIhB,EAAc,gBAChB,QACI,KAAK,gBAAiB,mBAAmB,YAE7C,WACI,KAAK,mBAAoB,sBAAsB,YAEnD,UACI,KAAK,kBAAmB,qBAAqB,YAEjD,SACI,KAAK,iBAAkB,oBAAoB,YAE/C,WACI,KAAK,mBAAoB,sBAAsB,YAEnD,UACI,KAAK,iBAAkB,mBAAmB,eAG5C,EAAc,cAChB,QACI,KACP,wDACA,2EACD,YAEI,WACI,KACP,oEACA,uFACD,YAEI,UACI,KACP,gEACA,mGACD,YAEI,SACI,KACP,4DACA,+EACD,YAEI,WACI,KACP,oEACA,uFACD,YAEI,UACI,KACP,4DACA,+EACD,MACI,SACI,KACP,4DACA,8FACD,cAGK,IAAM,EAAQ,KAAK,GAAG,CAC9B,8FChLc,UACT,kEAEoD,KACvD,UACG,KAAO,UAAS,eAEb,MAAc,oEARf,qCAGS,OAAY,EAAK,kBAIf,cARlB,wJAEc,qBACT,4EAEoD,KACvD,UACG,KAAO,UAAS,oCAEb,MAAc,mCALN,OAAY,EAAK,kBAIf,8FAPX,WAAA,mFAAA,YAAA,mHAAA,2HArCK,eACA,UAAkB,OAClB,UAAuC,YACvC,QAA0B,WAC1B,UAAmB,OACnB,OAA8B,aAC9B,UAA8B,WAC9B,UAAmB,OACnB,gBAAyB,OACzB,UAAU,WAEf,IACL,OAAQ,uCACR,MAAO,sBACP,KAAM,kBACN,MAAO,mBACP,KAAM,gBAGH,GAAM,IAAS,WAAa,WAAa,MAE9B,UAA0B,WAAW,0ZAI9C,WAAY,EACf,GAAW,MACX,EACA,IAAa,UAAW,KAAU,WAAW,IAC3C,QAAS,4BACX,EACF,OACQ,GAAM,QAAW,oBAAsB,EAAM,aAAe,WAC5D,GAAM,OAAU,mBAAqB,EAAM,WAAa,yZCjCjD,iBACJ,kBACC,cAJd,+HAEiB,sBACJ,uBACC,2HAPF,aAAsB,2NC4FP,yCAAA,kNAkDlB,8BAPP,2DAEuB,yCAOT,kBACJ,kEAHH,uEALgB,qGA1ClB,OAAS,oBAYJ,OAAS,wBAaT,OAAS,mcAClB,sEAQc,kBACJ,oYAtBV,sEAQc,kBACJ,wWArBV,sEAQc,kBACJ,6QAXP,QAAU,GAAK,OAAc,oHAHnC,kUAxFY,QAAgB,OAChB,QAAgB,MAChB,cAAsB,mBACtB,YACA,WAAW,OACX,aAAsB,OACtB,gBACA,OAAsC,UAE7C,OAKE,GAAW,gBAMM,GACtB,EAAS,SAAU,CAAG,aAGF,GACpB,EAAS,MAAM,mBAGe,QACxB,MACF,GAAE,MAAQ,SAAW,EAAE,UAAY,EAAQ,GAI9C,EAAE,MAAQ,UACT,EAAE,UACH,IAAU,GACV,GAAa,IAEb,GAAE,iBACF,EAAS,QAAQ,oBAKlB,WAEM,MACF,IAAU,YAEV,IACH,IAAc,GACX,GACA,IAAc,OACd,GAAK,GACL,GAAM,GAAY,GAClB,EAAM,GAAM,GAAQ,QAElB,GAAS,EAAM,OACrB,EAAO,MAAM,OAAS,SAElB,GACA,IAAO,EAAO,aAAe,GAChC,EAAgB,GACN,EAAO,aAAe,EAChC,EAAgB,EAEhB,EAAgB,EAAO,aAGxB,EAAO,MAAM,UAAY,iBAGA,EAAyB,OAC9C,IAAU,GACd,GAAG,MAAM,UAAY,SACrB,EAAG,iBAAiB,QAAS,CAAM,IAE9B,GAAM,QACX,UAAS,OAAQ,KAGhB,YAAe,EAAG,oBAAoB,QAAS,CAAM,8EAgBzC,wFAYA,wFAaA,wFAcD,oUA9HH,GAAM,IAAU,GAAa,GAAS,OAAQ,kBACrD,EAAc,CAAK,gMC0BvB,YAAc,EAAM,CAAE,QAAQ,EAAG,WAAW,IAAK,SAASC,IAAW,GAAI,CACrE,KAAM,GAAI,CAAC,iBAAiB,CAAI,EAAE,QAClC,MAAO,CACH,QACA,WACA,SACA,IAAK,GAAK,YAAY,EAAI,IAElC,4BCmIO,2HADL,+CACK,4LA1BA,OAAY,oCAQX,OAAmB,MAAQ,OAAe,QAAa,MAAkB,eAEpE,OAAmB,mCAIxB,oCAKU,OAAY,oBAEtB,8LAhBmB,OAAY,QAAQ,kBAC3B,OAAY,SAAS,+BAHvC,4GAHK,OAAY,+IAcX,6FATmB,OAAY,QAAQ,yBAC3B,OAAY,SAAS,8BAavB,OAAY,qBAEtB,2UAiBH;AAAA,OAEC,0DAMC,moBAnBJ,SACC,cAGA,OAKC,cAIC,cAKD,iCAJY,wDAKV,kCAZS,SAAU,kFAjC4B,OAAY,qGAA/D,0CAAmD,OAAY,kFASjC,cAE9B,8DAHS,KAAiB,4BADqD,SACvE,aAAoB,GAAC,MAAC,UAAW,IACzC,2EADS,KAAiB,yBAAI,6EAMX,SAAU,QAAkB,oBAA7C,6DAAA,sBAAiB,SAAU,QAAkB,qJAO/C,+FAvBG,QAAW,YAyBN,OAAW,yHAnCN,OAAY,SAAS,kBACnB,OAAY,QAAQ,cACxB,OAAY,QAAQ,mBACf,MAAU,OAAW,UAAU,iBACjC,OAAY,WAC1B,QAAW,WAAa,OAAW,2BACnB,OAAW,YAAY,iBACzB,cATjB,mOAEgB,OAAY,SAAS,yBACnB,OAAY,QAAQ,qBACxB,OAAY,QAAQ,wBACf,MAAU,OAAW,UAAU,wBACjC,OAAY,WAC1B,QAAW,WAAa,OAAW,gCACnB,OAAW,YAAY,uBACzB,uFAnJZ,OAEA,GAAS,qBAGZ,EACA,EAAyB,OAGxB,SAAO,kBAAoB,WAC1B,OAAO,kBAAoB,OAAS,IAAW,QAKjD,GAAM,KAAK,CAAE,GACR,GAAQ,GAAS,oBAGhB,MAEN,8BACK,IAAO,EAAG,CAAC,SAEN,GAAI,EAAG,EAAI,GAAM,OAAQ,UAG3B,GAAM,AAFI,GAAM,GAEF,wBAChB,KAAM,GAAK,EAAI,IAAM,OAAO,SAAW,EAAI,KAC9C,GAAI,GAAK,EAAI,IAAM,OAAO,QAC1B,EAAI,GAAK,GAIX,OAAO,UAAW,IAAK,EAAI,GAAK,GAAI,SAAU,WAE9C,GAAS,GACT,gEAUS,MAAqB,SACrB,QAAiB,OACjB,qBACA,iBACA,aACA,mBAA4B,OAC5B,QAAiB,OACjB,UAAmB,OACnB,UAAyB,SACzB,UAAgC,aAEvC,EAEA,EAAkB,GAClB,EAAc,EACd,EAAa,EACb,EAAyB,KACzB,EAA2B,QAOzB,aACL,EAAc,YAAY,YAC1B,EAAa,CAAC,EACd,EAAS,GACT,kBAKA,gCACC,EAAc,aAAY,MAAQ,GAAe,GAAI,EACjD,GAAQ,WAIR,aACL,EAAa,CAAC,EAET,GACL,GAAS,KAGV,QACK,GAAQ,SAgBT,GAA+B,UAa7B,YACL,EAAkB,EAAK,8EAwBb,4ZApCN,IAAQ,SACX,EAAM,CAAO,EACH,OACV,EAAO,aAAY,MAAQ,GAAe,IAAO,CAAG,EAEjD,GAAO,YACV,EAAgB,EAAI,QAAQ,CAAC,QAC7B,EAAU,CAAG,4BArDZ,EACF,IAAQ,MAAQ,GAAO,IAAM,EAC1B,KACA,KAAK,IAAI,EAAa,EAAK,CAAC,kBA6B3B,IAAW,UACd,IAEA,wBAIC,GACF,GACC,KAAW,WAAa,IAAW,aACpC,GAAiB,EAAI,EAAW,UAAU,iBAsB1C,KACI,IAAW,SAAW,OACzB,EAAkB,EAAI,2BAGrB,EAAkB,EAAW,QAAQ,CAAC,qQC3GrB,kKAAA,oIADf,sGAUQ,MAAa,QAAS,SAAW,KAAQ,EAAI,+BAK/C,QAAS,0PAff,2OAUQ,MAAa,QAAS,SAAW,KAAQ,EAAI,qDAK/C,QAAS,kQAjBJ,MAAM,WAAc,YAAc,KAAM,2LAAxC,MAAM,WAAc,YAAc,KAAM,kKApB7C,QAAgB,cAChB,UAAkB,OAClB,UAAmB,OACnB,QAAgB,OAChB,YACA,cAAsB,OACtB,iBACA,gBACA,OAAsC,WAEtC,eAEA,iBAA4C,WAE5C,ovDCgBQ,kCAAjB,kCAAiB,4JAGjB,4GAKQ,aACK,aACD,kBAGC,wBAAA,sEADD,0DAKJ,aACK,aACD,wCAIC,yBAAA,sEADD,yIATC,+DAUA,iNAxBT,cAGA,wdAPc,cAFrB,SAIC,OACC,8EA6BA,8BAEW,sBA9BN,4DAGA,oIAPc,+IA/BT,WACA,SACA,mBACA,cAEX,OAAO,kBAAkB,GAAI,MAAO,OAAQ,gBACxC,GAAW,GACX,EAAW,GACX,EAAwB,QAEtB,kBACC,MAAe,UACrB,EAAS,OAAO,WAAY,CAAQ,EACpC,EAAS,OAAO,WAAY,CAAQ,EAMhC,MAJiB,OAAM,EAAO,SACjC,OAAQ,OACR,KAAM,KAEM,SAAW,SACvB,EAAwB,EAAI,MAC5B,EAAW,EAAE,MACb,EAAW,EAAE,GAEb,SAAS,wBAyBI,yBAUA,yRCrDhB,GAAI,IAAK,GACT,OAAO,kBAAoB,GAK3B,KAAM,IAAY,gBACZ,GAAQ,gBAuBd,GAAI,IAAwB,KACxB,GAAW,OAAO,kBAAoB,MAE1C,kBAA4B,EAAc,MACnC,GAAS,WAAa,OAAM,EAAO,QAAQ,GAAG,OAEhD,KAAW,QACL,EACC,IAAU,YACX,oBAGC,IAAM,GAAa,CAAI,EAAG,GAAG,CACzC,CAEA,kBAAiC,EAAiC,IAC7D,GAAS,WAAa,OAAM,EAAS,QAAQ,GAAG,gBAC7C,KAAO,EACP,CACR,CAEA,kBAA0B,EAAuB,OACpB,UAAS,SAAW,wBAEhC,KAAM,AADR,MAAM,OAAM,QAAsB,GACnB,OAElB,EACL,GAAO,SAAS,GAAG,OACb,KAEI,KAAM,IAAkB,CAAM,GAGtC,OAAO,aAEhB,CAEA,YACC,EACA,EACC,IACG,EAAY,IACX,GAAQ,SAAS,cAAc,OAAO,IACpC,UAAY,IACX,YAAY,CAAK,EAE1B,CAEA,YACC,EACA,EACgB,MAGV,GAAO,SAAS,cAAc,MAAM,WACrC,IAAM,eACN,KAAO,IAEL,YAAY,CAAI,EAEhB,GAAI,SAAQ,CAAC,EAAK,IAAQ,GAC3B,iBAAiB,OAAQ,IAAM,GAAK,IACpC,iBAAiB,QAAS,IAC9B,EAAI,GAAI,OAAM,6BAA6B,GAAK,CAAC,CAClD,EACA,CACF,CAEA,kBACC,EACA,EACC,IACG,MAEA,IACC,CAAC,GAAW,KAAM,SAAQ,IAAI,CACjC,GAAW,CAAM,EACwB,GAAU,GAAW,CAAM,EACpE,IACQ,QACD,kBACA,MAAM,CAAC,EACR,eAGS,EAAQ,EAAO,GAAG,SAC5B,aAAe,EAAO,SAEzB,EAAO,OAAS,WACZ,KAAO,IAEX,EAAO,aACG,EAAO,IAAI,IAGlB,OAAS,EAET,CACR,CAEA,YACC,EACA,EACA,EACA,EACA,EACA,EAAW,GACV,IAEG,EAAO,SAAW,qBAAuB,EAAO,iBAC/C,IAAM,CACT,OAAQ,EAER,MAAO,CACN,aAAc,EAAO,aACrB,KAAM,EAAO,KACb,KACA,aAED,MACK,IACF,GAAe,KAAK,SAAS,SAAS,EAAE,EAAE,UAAU,CAAC,IAClD,GAAK,GACX,EACA,EAAO,KAAO,OACd,EAAO,SACP,CACD,KAEI,IAAO,CACV,OAAQ,EAER,MAAO,IACH,EACH,OAAQ,EACR,KACA,aACA,aAED,EAGE,KACI,OAAO,CAAO,CAEvB,CAEA,aAAiC,IAE1B,IAAI,AAAC,GAAM,GAAU,EAAG,SAAS,IAAI,CAAC,QAEtC,SAAkB,YAAY,CAMnC,aAAc,cAGR,IAAM,EAAE,QAER,KAAO,KAAK,aAAa,CAAE,KAAM,OAAQ,SAEvC,kBAAoB,AAAC,GAAS,MAC/B,KAAK,OAAO,CAAI,QAGjB,QAAU,SAAS,cAAc,KAAK,OACtC,QAAQ,UAAU,IAAI,kBAAkB,OAExC,QAAQ,MAAM,SAAW,gBACzB,QAAQ,MAAM,MAAQ,YACtB,QAAQ,MAAM,UAAY,aAC1B,MAAQ,eAEN,kBAAkB,KAAK,KAAO,GAAIC,IAAO,CAC/C,OAAQ,KAAK,QACb,MAAO,CACN,OAAQ,UACR,MAAO,GACP,eAAgB,KAChB,WAAY,MAEb,OAEI,KAAK,OAAO,KAAK,OAAO,EACzB,OAAO,kBAAoB,iBACzB,MAAQ,GAAgB,KAAK,OAAO,QAIrC,oBAAoB,MACnB,GAAQ,GAAI,aAAY,YAAa,CAC1C,QAAS,GACT,WAAY,GACZ,SAAU,GACV,KAEG,GAAW,GAAI,kBAAiB,AAAC,GAAc,MAC7C,cAAc,CAAK,EACxB,IAEQ,QAAQ,KAAK,KAAM,CAAE,UAAW,GAAM,OAEzC,GAAO,KAAK,aAAa,MAAM,EAC/B,EAAQ,KAAK,aAAa,OAAO,EAEjC,EAAS,EACZ,WAAW,IACX,cAGO,OAAM,qCAAqC,QAAY,GAC5D,QACA,KACF,KAAK,aAAa,KAAK,EAEpB,EAAqB,KAAK,aAAa,oBAAoB,EAC3D,EAAiB,KAAK,aAAa,gBAAgB,EAGnD,EAAc,AAFH,KAAK,aAAa,YAAY,IAEZ,YAE9B,QAAQ,MAAM,UAAY,GAAkB,aAE3C,GAAS,KAAM,IAAc,KAAK,KAAM,CAAM,EAChD,IAAW,UACT,QAAQ,YAGZ,IACI,EACH,MAAO,KAAK,MACZ,mBACC,MAAsB,IAAuB,SAE/C,KAAK,KACL,KAAK,QACL,KAAK,IACL,EACA,CAAC,CAAC,CACH,kBAKY,OAAO,aAAc,CAAS,CAC9C,CAEA,mBAAgC,MACzB,GAAS,SAAS,cAAc,OAAO,IACtC,UAAU,IAAI,kBAAkB,EACnC,OAAO,kBAAoB,cACd,CAAM,SAGhB,kBAAkB,GAAK,GAAIA,IAAO,CACxC,SACA,MAAO,CACN,OAAQ,UACR,MAAO,GACP,eAAgB,KAChB,WAAY,MAEb,OAEK,GAAS,KAAM,IAAc,EAAQ,IAAI,KACrC,IAAK,EAAQ,mBAAoB,IAAQ,GAAO,EAAQ,CAAC,CACpE,CAEA,YAAyB,EAAgC,IACpD,GAAM,GAAI,KAAI,OAAO,SAAS,UAAU,EACxC,EAAQ,aAEN,GAAiD,EAAI,aAAa,IACvE,SACD,QAEI,KAAe,KACd,IAAe,SACV,GAAS,CAAM,EACb,IAAe,aACjB,GAAiB,CAAM,GAGtB,EAAI,aAAa,IAAI,cAAc,IAAM,SAC3C,GAAS,CAAM,IAEf,GAAiB,CAAM,EAEzB,CACR,CAEA,YAA0B,EAAgC,MACnD,GAAQ,YAEX,WAAW,8BAA8B,GACzC,iBAAiB,SAAU,CAAa,cAElB,IACpB,GAAQ,cAIR,AAFH,SAAQ,aAAa,8BAA8B,EAAE,SAAW,UAGxD,GAAS,CAAM,GAEjB,QAED,EACR,CAEA,YAAkB,EAAgC,UAC1C,UAAU,IAAI,MAAM,EACvB,cACM,KAAK,MAAM,gBAAkB,mBAEhC,MACR,CAGA,AAA4B,OAAO,WAAa,OAAO,OAAO,iBACtD,kBAAoB,AAAC,GAAS,UAC3B,KAAK,OAAO,CAAI"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.cfba6851.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.cfba6851.js new file mode 100644 index 0000000000000000000000000000000000000000..6557820ac4ca580a3b3466c2a1dae8ad2b11f9c0 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.cfba6851.js @@ -0,0 +1,2 @@ +import{S as g,i as h,s as C,e as D,c as k,b as _,Y as b,f as E,m as T,j as m,k as c,n as F,o as p,F as I,a2 as K,Q as M,ad as Q,aa as Y,p as S,u as q,q as w,r as j,K as z}from"./index.cb50929e.js";import{a as G}from"./Tabs.561d21bd.js";import{C as H}from"./Column.6844546c.js";function J(a){let n;const s=a[5].default,t=S(s,a,a[6],null);return{c(){t&&t.c()},m(e,l){t&&t.m(e,l),n=!0},p(e,l){t&&t.p&&(!n||l&64)&&q(t,s,e,e[6],n?j(s,e[6],l,null):w(e[6]),null)},i(e){n||(m(t,e),n=!0)},o(e){c(t,e),n=!1},d(e){t&&t.d(e)}}}function L(a){let n,s,t;return s=new H({props:{$$slots:{default:[J]},$$scope:{ctx:a}}}),{c(){n=D("div"),k(s.$$.fragment),_(n,"id",a[0]),_(n,"class","tabitem p-2 border-2 border-t-0 border-gray-200 relative flex"),b(n,"display",a[2]===a[1]?"block":"none",!1)},m(e,l){E(e,n,l),T(s,n,null),t=!0},p(e,[l]){const f={};l&64&&(f.$$scope={dirty:l,ctx:e}),s.$set(f),(!t||l&1)&&_(n,"id",e[0]),l&6&&b(n,"display",e[2]===e[1]?"block":"none",!1)},i(e){t||(m(s.$$.fragment,e),t=!0)},o(e){c(s.$$.fragment,e),t=!1},d(e){e&&F(n),p(s)}}}function N(a,n,s){let t,{$$slots:e={},$$scope:l}=n,{elem_id:f=""}=n,{name:r}=n,{id:u={}}=n;const i=I(),{register_tab:A,unregister_tab:B,selected_tab:d}=K(G);return M(a,d,o=>s(2,t=o)),A({name:r,id:u}),Q(()=>()=>B({name:r,id:u})),a.$$set=o=>{"elem_id"in o&&s(0,f=o.elem_id),"name"in o&&s(4,r=o.name),"id"in o&&s(1,u=o.id),"$$scope"in o&&s(6,l=o.$$scope)},a.$$.update=()=>{a.$$.dirty&6&&t===u&&Y().then(()=>i("select"))},[f,u,t,d,r,e,l]}class O extends g{constructor(n){super(),h(this,n,N,L,C,{elem_id:0,name:4,id:1})}}function P(a){let n;const s=a[3].default,t=S(s,a,a[5],null);return{c(){t&&t.c()},m(e,l){t&&t.m(e,l),n=!0},p(e,l){t&&t.p&&(!n||l&32)&&q(t,s,e,e[5],n?j(s,e[5],l,null):w(e[5]),null)},i(e){n||(m(t,e),n=!0)},o(e){c(t,e),n=!1},d(e){t&&t.d(e)}}}function R(a){let n,s;return n=new O({props:{elem_id:a[0],name:a[1],id:a[2],$$slots:{default:[P]},$$scope:{ctx:a}}}),n.$on("select",a[4]),{c(){k(n.$$.fragment)},m(t,e){T(n,t,e),s=!0},p(t,[e]){const l={};e&1&&(l.elem_id=t[0]),e&2&&(l.name=t[1]),e&4&&(l.id=t[2]),e&32&&(l.$$scope={dirty:e,ctx:t}),n.$set(l)},i(t){s||(m(n.$$.fragment,t),s=!0)},o(t){c(n.$$.fragment,t),s=!1},d(t){p(n,t)}}}function U(a,n,s){let{$$slots:t={},$$scope:e}=n,{elem_id:l=""}=n,{label:f}=n,{id:r}=n;function u(i){z.call(this,a,i)}return a.$$set=i=>{"elem_id"in i&&s(0,l=i.elem_id),"label"in i&&s(1,f=i.label),"id"in i&&s(2,r=i.id),"$$scope"in i&&s(5,e=i.$$scope)},[l,f,r,t,u,e]}class V extends g{constructor(n){super(),h(this,n,U,R,C,{elem_id:0,label:1,id:2})}}var v=V;const y=["static"];export{v as Component,y as modes}; +//# sourceMappingURL=index.cfba6851.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.cfba6851.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.cfba6851.js.map new file mode 100644 index 0000000000000000000000000000000000000000..454a25571ddc16af1dbea8a8ffba922bb563afdb --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.cfba6851.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.cfba6851.js","sources":["../../../../ui/packages/tabs/src/TabItem.svelte","../../../../ui/packages/app/src/components/TabItem/Tabs.svelte","../../../../ui/packages/app/src/components/TabItem/index.ts"],"sourcesContent":["\n\n\n\t\n\t\t\n\t\n\n","\n\n\n\t\n\n","export { default as Component } from \"./Tabs.svelte\";\nexport const modes = [\"static\"];\n"],"names":[],"mappings":"qoBAuBK,iGAEW,OAAkB,KAAK,QAAU,mBAHjD,+GACK,yBAEW,OAAkB,KAAK,QAAU,qJApBrC,UAAkB,OAClB,WACA,gBAEL,GAAW,KAET,eAAc,iBAAgB,gBAAiB,EAAW,CAAI,4BAEtE,GAAe,OAAM,OAErB,UACc,GAAiB,OAAM,oKAGlC,IAAkB,GAAM,IAAO,SAAW,EAAS,QAAQ,mZCXtC,+KAAA,oMALb,UAAkB,OAClB,YACA,2RCJC,GAAQ,CAAC,QAAQ"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.d924a556.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.d924a556.js new file mode 100644 index 0000000000000000000000000000000000000000..fae4f655a00c4756a169c8f271ffece9420f4465 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.d924a556.js @@ -0,0 +1,2 @@ +import{S as pe,i as ke,s as ve,ae as te,P as we,c as M,m as N,l as T,j as y,k as B,o as S,Z as ye,R as je,T as ze,a as D,B as Ae,f as C,U as Be,V as Ce,D as E,E as H,n as G,aa as Ge,I as F,e as w,b as h,M as L,Y as J,d as A,g as j,t as ne,h as ie,C as oe,A as De,ai as Ie,x as U}from"./index.cb50929e.js";import{B as Re}from"./BlockLabel.4b1193ac.js";import{M as Le}from"./ModifyUpload.e869f7e2.js";import{n as K}from"./utils.27234e1d.js";import{I as Y}from"./Image.46cd55d4.js";function O(t,e,l){const i=t.slice();return i[30]=e[l][0],i[31]=e[l][1],i[33]=l,i}function Q(t,e,l){const i=t.slice();return i[30]=e[l],i[34]=e,i[33]=l,i}function W(t){let e,l;return e=new Re({props:{show_label:t[1],Icon:Y,label:t[2]||"Gallery",disable:typeof t[6].container=="boolean"&&!t[6].container}}),{c(){M(e.$$.fragment)},m(i,o){N(e,i,o),l=!0},p(i,o){const n={};o[0]&2&&(n.show_label=i[1]),o[0]&4&&(n.label=i[2]||"Gallery"),o[0]&64&&(n.disable=typeof i[6].container=="boolean"&&!i[6].container),e.$set(n)},i(i){l||(y(e.$$.fragment,i),l=!0)},o(i){B(e.$$.fragment,i),l=!1},d(i){S(e,i)}}}function Me(t){let e,l,i,o,n,r,a=t[7]!==null&&X(t);const p=[Te,Se],m=[];function g(f,c){return f[10].length===0?0:1}return i=g(t),o=m[i]=p[i](t),{c(){a&&a.c(),e=D(),l=w("div"),o.c(),h(l,"class","overflow-y-auto h-full p-2"),te(()=>t[27].call(l)),A(l,"min-h-[350px]",t[6].height!=="auto"),A(l,"max-h-[55vh]",t[6].height!=="auto"),A(l,"xl:min-h-[450px]",t[6].height!=="auto")},m(f,c){a&&a.m(f,c),C(f,e,c),C(f,l,c),m[i].m(l,null),n=Ie(l,t[27].bind(l)),r=!0},p(f,c){f[7]!==null?a?(a.p(f,c),c[0]&128&&y(a,1)):(a=X(f),a.c(),y(a,1),a.m(e.parentNode,e)):a&&(E(),B(a,1,1,()=>{a=null}),H());let z=i;i=g(f),i===z?m[i].p(f,c):(E(),B(m[z],1,1,()=>{m[z]=null}),H(),o=m[i],o?o.p(f,c):(o=m[i]=p[i](f),o.c()),y(o,1),o.m(l,null)),c[0]&64&&A(l,"min-h-[350px]",f[6].height!=="auto"),c[0]&64&&A(l,"max-h-[55vh]",f[6].height!=="auto"),c[0]&64&&A(l,"xl:min-h-[450px]",f[6].height!=="auto")},i(f){r||(y(a),y(o),r=!0)},o(f){B(a),B(o),r=!1},d(f){a&&a.d(f),f&&G(e),f&&G(l),m[i].d(),n()}}}function Ne(t){let e,l,i,o;return i=new Y({}),{c(){e=w("div"),l=w("div"),M(i.$$.fragment),h(l,"class","h-5 dark:text-white opacity-50"),h(e,"class","h-full min-h-[15rem] flex justify-center items-center")},m(n,r){C(n,e,r),j(e,l),N(i,l,null),o=!0},p:U,i(n){o||(y(i.$$.fragment,n),o=!0)},o(n){B(i.$$.fragment,n),o=!1},d(n){n&&G(e),S(i)}}}function X(t){let e,l,i,o,n,r,a,p,m,g,f,c,z;l=new Le({}),l.$on("clear",t[21]);let s=t[10][t[7]][1]&&$(t),b=t[10],k=[];for(let u=0;ut[23](e,p),c=()=>t[23](null,p);function z(){return t[24](t[33])}return{c(){e=w("button"),l=w("img"),r=D(),h(l,"class","h-full w-full overflow-hidden object-contain"),L(l.src,i=t[30][0].data)||h(l,"src",i),h(l,"title",o=t[30][1]||null),h(l,"alt",n=t[30][1]||null),h(e,"class",a="gallery-item !flex-none !h-9 !w-9 transition-all duration-75 "+(t[7]===t[33]?"!ring-2 !ring-orange-500 hover:!ring-orange-500":"scale-90 transform")+" svelte-1g9btlg")},m(s,b){C(s,e,b),j(e,l),j(e,r),f(),m||(g=T(e,"click",z),m=!0)},p(s,b){t=s,b[0]&1024&&!L(l.src,i=t[30][0].data)&&h(l,"src",i),b[0]&1024&&o!==(o=t[30][1]||null)&&h(l,"title",o),b[0]&1024&&n!==(n=t[30][1]||null)&&h(l,"alt",n),b[0]&128&&a!==(a="gallery-item !flex-none !h-9 !w-9 transition-all duration-75 "+(t[7]===t[33]?"!ring-2 !ring-orange-500 hover:!ring-orange-500":"scale-90 transform")+" svelte-1g9btlg")&&h(e,"class",a),p!==t[33]&&(c(),p=t[33],f())},d(s){s&&G(e),c(),m=!1,g()}}}function Se(t){let e,l,i=t[10],o=[];for(let n=0;n{g=null}),H());let u=o;o=z(s),o===u?c[o].p(s,b):(E(),B(c[u],1,1,()=>{c[u]=null}),H(),n=c[o],n?n.p(s,b):(n=c[o]=f[o](s),n.c()),y(n,1),n.m(r.parentNode,r))},i(s){a||(y(e.$$.fragment,s),y(g),y(n),a=!0)},o(s){B(e.$$.fragment,s),B(g),B(n),a=!1},d(s){S(e,s),s&&G(l),g&&g.d(s),s&&G(i),c[o].d(s),s&&G(r)}}}function Ee(t){let e,l,i,o;return te(t[20]),e=new we({props:{visible:t[4],variant:"solid",color:"grey",padding:!1,elem_id:t[3],disable:typeof t[6].container=="boolean"&&!t[6].container,$$slots:{default:[qe]},$$scope:{ctx:t}}}),{c(){M(e.$$.fragment)},m(n,r){N(e,n,r),l=!0,i||(o=T(window,"resize",t[20]),i=!0)},p(n,r){const a={};r[0]&16&&(a.visible=n[4]),r[0]&8&&(a.elem_id=n[3]),r[0]&64&&(a.disable=typeof n[6].container=="boolean"&&!n[6].container),r[0]&64999|r[1]&16&&(a.$$scope={dirty:r,ctx:n}),e.$set(a)},i(n){l||(y(e.$$.fragment,n),l=!0)},o(n){B(e.$$.fragment,n),l=!1},d(n){S(e,n),i=!1,o()}}}function He(t,e,l){let i,o,n,r,a,{loading_status:p}=e,{show_label:m}=e,{label:g}=e,{root:f}=e,{root_url:c}=e,{elem_id:z=""}=e,{visible:s=!0}=e,{value:b=null}=e,{style:k={}}=e,u=null,d=null;function v(_){switch(_.code){case"Escape":_.preventDefault(),l(7,d=null);break;case"ArrowLeft":_.preventDefault(),l(7,d=o);break;case"ArrowRight":_.preventDefault(),l(7,d=n);break}}let I=[],R;async function ae(_){if(typeof _!="number")return;await Ge(),I[_].focus();const{left:P,width:he}=R.getBoundingClientRect(),{left:be,width:de}=I[_].getBoundingClientRect(),Z=be-P+de/2-he/2+R.scrollLeft;R.scrollTo({left:Z<0?0:Z,behavior:"smooth"})}let q=0,V=0;function se(){l(9,V=window.innerHeight)}const re=()=>l(7,d=null),fe=()=>l(7,d=n);function ue(_,P){F[_?"unshift":"push"](()=>{I[P]=_,l(11,I)})}const _e=_=>l(7,d=_);function ce(_){F[_?"unshift":"push"](()=>{R=_,l(12,R)})}const me=_=>l(7,d=r?_:d);function ge(){q=this.clientHeight,l(8,q)}return t.$$set=_=>{"loading_status"in _&&l(0,p=_.loading_status),"show_label"in _&&l(1,m=_.show_label),"label"in _&&l(2,g=_.label),"root"in _&&l(17,f=_.root),"root_url"in _&&l(18,c=_.root_url),"elem_id"in _&&l(3,z=_.elem_id),"visible"in _&&l(4,s=_.visible),"value"in _&&l(5,b=_.value),"style"in _&&l(6,k=_.style)},t.$$.update=()=>{t.$$.dirty[0]&393248&&l(10,i=b===null?null:b.map(_=>Array.isArray(_)?[K(_[0],c??f),_[1]]:[K(_,c??f),null])),t.$$.dirty[0]&524320&&u!==b&&(l(7,d=null),l(19,u=b)),t.$$.dirty[0]&1152&&(o=((d??0)+(i?.length??0)-1)%(i?.length??0)),t.$$.dirty[0]&1152&&l(15,n=((d??0)+1)%(i?.length??0)),t.$$.dirty[0]&128&&ae(d),t.$$.dirty[0]&768&&l(14,r=V>=q),t.$$.dirty[0]&64&&l(13,{classes:a}=ye(k,["grid"]),a)},[p,m,g,z,s,b,k,d,q,V,i,I,R,a,r,n,v,f,c,u,se,re,fe,ue,_e,ce,me,ge]}class Ue extends pe{constructor(e){super(),ke(this,e,He,Ee,ve,{loading_status:0,show_label:1,label:2,root:17,root_url:18,elem_id:3,visible:4,value:5,style:6},null,[-1,-1])}}var Ke=Ue;const Oe=["static"],Qe=t=>({type:"Array<{ name: string } | [{ name: string }, string]>",description:"list of objects with filename and optional caption"});export{Ke as Component,Qe as document,Oe as modes}; +//# sourceMappingURL=index.d924a556.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.d924a556.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.d924a556.js.map new file mode 100644 index 0000000000000000000000000000000000000000..9d8ed9940f791c6b0f39d511c74ef49bcb05c82f --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.d924a556.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d924a556.js","sources":["../../../../ui/packages/app/src/components/Gallery/Gallery.svelte","../../../../ui/packages/app/src/components/Gallery/index.ts"],"sourcesContent":["\n\n\n\n\n\t\n\t{#if show_label}\n\t\t\n\t{/if}\n\t{#if value === null || _value === null}\n\t\t
    \n\t\t\t
    \n\t\t
    \n\t{:else}\n\t\t{#if selected_image !== null}\n\t\t\t\n\t\t\t\t (selected_image = null)} />\n\n\t\t\t\t (selected_image = next)}\n\t\t\t\t\tclass=\"w-full object-contain h-[calc(100%-50px)\"\n\t\t\t\t\tsrc={_value[selected_image][0].data}\n\t\t\t\t\talt={_value[selected_image][1] || \"\"}\n\t\t\t\t\ttitle={_value[selected_image][1] || null}\n\t\t\t\t\tstyle=\"height: calc(100% - {_value[selected_image][1]\n\t\t\t\t\t\t? '80px'\n\t\t\t\t\t\t: '60px'})\"\n\t\t\t\t/>\n\t\t\t\t{#if _value[selected_image][1]}\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{_value[selected_image][1]}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t{/if}\n\t\t\t\t\n\t\t\t\t\t{#each _value as image, i}\n\t\t\t\t\t\t (selected_image = i)}\n\t\t\t\t\t\t\tclass=\"gallery-item !flex-none !h-9 !w-9 transition-all duration-75 {selected_image ===\n\t\t\t\t\t\t\ti\n\t\t\t\t\t\t\t\t? '!ring-2 !ring-orange-500 hover:!ring-orange-500'\n\t\t\t\t\t\t\t\t: 'scale-90 transform'}\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t\t\n\t\t\t{#if _value.length === 0}\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t{:else}\n\t\t\t\t
    \n\t\t\t\t\t{#each _value as [image, caption], i}\n\t\t\t\t\t\t (selected_image = can_zoom ? i : selected_image)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{#if caption}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{caption}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t{/if}\n\t\t\n\t{/if}\n\n\n\n","export { default as Component } from \"./Gallery.svelte\";\nexport const modes = [\"static\"];\n\nexport const document = (config: Record) => ({\n\ttype: \"Array<{ name: string } | [{ name: string }, string]>\",\n\tdescription: \"list of objects with filename and optional caption\"\n});\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.de220284.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.de220284.js new file mode 100644 index 0000000000000000000000000000000000000000..1fb4a58063cb20c74d1adfcba3b85bf2bc361560 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.de220284.js @@ -0,0 +1,2 @@ +import{S as L,i as q,s as G,c as N,a as B,B as S,m as C,f as k,D as O,k as D,E as Q,j as U,o as I,n as h,e as A,b,g as m,x as K,t as y,h as E,C as W,F as ne,aa as fe,I as Y,O as Z,L as x,P as oe,Q as ae,X as _e,R as se,T as re,U as ue,V as ce,K as T}from"./index.cb50929e.js";import{B as $}from"./BlockLabel.4b1193ac.js";import{F as R}from"./File.febd4e12.js";import{U as ee}from"./Upload.5e38559f.js";import{M as de}from"./ModifyUpload.e869f7e2.js";import{n as be}from"./utils.27234e1d.js";const me=o=>{let e=["B","KB","MB","GB","PB"],i=0;for(;o>1024;)o/=1024,i++;let l=e[i];return o.toFixed(1)+" "+l},j=o=>{var e;return e=o.orig_name||o.name,e.length>30?`${e.substr(0,30)}...`:e},M=o=>o.data,P=o=>{var e=0;if(Array.isArray(o))for(var i of o)i.size!==void 0&&(e+=i.size);else e=o.size||0;return me(e)};function V(o,e,i){const l=o.slice();return l[3]=e[i],l}function ge(o){let e,i,l,t;return l=new R({}),{c(){e=A("div"),i=A("div"),N(l.$$.fragment),b(i,"class","h-5 dark:text-white opacity-50"),b(e,"class","h-full min-h-[15rem] flex justify-center items-center")},m(a,f){k(a,e,f),m(e,i),C(l,i,null),t=!0},p:K,i(a){t||(U(l.$$.fragment,a),t=!0)},o(a){D(l.$$.fragment,a),t=!1},d(a){a&&h(e),I(l)}}}function we(o){let e,i;function l(f,s){return s&1&&(i=null),i==null&&(i=!!Array.isArray(f[0])),i?ke:ve}let t=l(o,-1),a=t(o);return{c(){e=A("div"),a.c(),b(e,"class","file-preview overflow-y-scroll w-full max-h-60 flex flex-col justify-between mt-7 mb-7 dark:text-slate-200")},m(f,s){k(f,e,s),a.m(e,null)},p(f,s){t===(t=l(f,s))&&a?a.p(f,s):(a.d(1),a=t(f),a&&(a.c(),a.m(e,null)))},i:K,o:K,d(f){f&&h(e),a.d()}}}function ve(o){let e,i,l=j(o[0])+"",t,a,f,s=P(o[0])+"",r,u,n,_,c,d,z;return{c(){e=A("div"),i=A("div"),t=y(l),a=B(),f=A("div"),r=y(s),u=B(),n=A("div"),_=A("a"),c=y("Download"),b(i,"class","file-name w-5/12 p-2"),b(f,"class","file-size w-3/12 p-2"),b(_,"href",d=M(o[0])),b(_,"target",window.__is_colab__?"_blank":null),b(_,"download",z=window.__is_colab__?null:j(o[0])),b(_,"class","text-indigo-600 hover:underline dark:text-indigo-300"),b(n,"class","file-size w-3/12 p-2 hover:underline"),b(e,"class","flex flex-row")},m(g,p){k(g,e,p),m(e,i),m(i,t),m(e,a),m(e,f),m(f,r),m(e,u),m(e,n),m(n,_),m(_,c)},p(g,p){p&1&&l!==(l=j(g[0])+"")&&E(t,l),p&1&&s!==(s=P(g[0])+"")&&E(r,s),p&1&&d!==(d=M(g[0]))&&b(_,"href",d),p&1&&z!==(z=window.__is_colab__?null:j(g[0]))&&b(_,"download",z)},d(g){g&&h(e)}}}function ke(o){let e,i=o[0],l=[];for(let t=0;t{r[d]=null}),Q(),t=r[l],t?t.p(n,_):(t=r[l]=s[l](n),t.c()),U(t,1),t.m(a.parentNode,a))},i(n){f||(U(e.$$.fragment,n),U(t),f=!0)},o(n){D(e.$$.fragment,n),D(t),f=!1},d(n){I(e,n),n&&h(i),r[l].d(n),n&&h(a)}}}function pe(o,e,i){let{value:l}=e,{label:t}=e,{show_label:a}=e;return o.$$set=f=>{"value"in f&&i(0,l=f.value),"label"in f&&i(1,t=f.label),"show_label"in f&&i(2,a=f.show_label)},[l,t,a]}class Ae extends L{constructor(e){super(),q(this,e,pe,he,G,{value:0,label:1,show_label:2})}}function H(o,e,i){const l=o.slice();return l[15]=e[i],l}function ze(o){let e,i,l,t,a;i=new de({props:{absolute:!0}}),i.$on("clear",o[10]);function f(u,n){return n&1&&(t=null),t==null&&(t=!!Array.isArray(u[0])),t?je:Be}let s=f(o,-1),r=s(o);return{c(){e=A("div"),N(i.$$.fragment),l=B(),r.c(),b(e,"class","file-preview overflow-y-scroll w-full max-h-60 flex flex-col justify-between mt-7 mb-7 dark:text-slate-200")},m(u,n){k(u,e,n),C(i,e,null),m(e,l),r.m(e,null),a=!0},p(u,n){s===(s=f(u,n))&&r?r.p(u,n):(r.d(1),r=s(u),r&&(r.c(),r.m(e,null)))},i(u){a||(U(i.$$.fragment,u),a=!0)},o(u){D(i.$$.fragment,u),a=!1},d(u){u&&h(e),I(i),r.d()}}}function ye(o){let e,i,l;function t(f){o[13](f)}let a={filetype:o[8],file_count:o[6],$$slots:{default:[De]},$$scope:{ctx:o}};return o[7]!==void 0&&(a.dragging=o[7]),e=new ee({props:a}),Y.push(()=>Z(e,"dragging",t)),e.$on("load",o[9]),{c(){N(e.$$.fragment)},m(f,s){C(e,f,s),l=!0},p(f,s){const r={};s&256&&(r.filetype=f[8]),s&64&&(r.file_count=f[6]),s&262158&&(r.$$scope={dirty:s,ctx:f}),!i&&s&128&&(i=!0,r.dragging=f[7],x(()=>i=!1)),e.$set(r)},i(f){l||(U(e.$$.fragment,f),l=!0)},o(f){D(e.$$.fragment,f),l=!1},d(f){I(e,f)}}}function Fe(o){let e,i,l;function t(f){o[12](f)}let a={filetype:o[8],$$slots:{default:[Ue]},$$scope:{ctx:o}};return o[7]!==void 0&&(a.dragging=o[7]),e=new ee({props:a}),Y.push(()=>Z(e,"dragging",t)),e.$on("load",o[9]),{c(){N(e.$$.fragment)},m(f,s){C(e,f,s),l=!0},p(f,s){const r={};s&256&&(r.filetype=f[8]),s&262158&&(r.$$scope={dirty:s,ctx:f}),!i&&s&128&&(i=!0,r.dragging=f[7],x(()=>i=!1)),e.$set(r)},i(f){l||(U(e.$$.fragment,f),l=!0)},o(f){D(e.$$.fragment,f),l=!1},d(f){I(e,f)}}}function Be(o){let e,i,l=j(o[0])+"",t,a,f,s=P(o[0])+"",r,u,n,_,c,d,z;return{c(){e=A("div"),i=A("div"),t=y(l),a=B(),f=A("div"),r=y(s),u=B(),n=A("div"),_=A("a"),c=y("Download"),b(i,"class","file-name p-2"),b(f,"class","file-size p-2"),b(_,"href",d=M(o[0])),b(_,"download",z=j(o[0])),b(_,"class","text-indigo-600 hover:underline dark:text-indigo-300"),b(n,"class","file-size p-2 hover:underline"),b(e,"class","flex flex-row")},m(g,p){k(g,e,p),m(e,i),m(i,t),m(e,a),m(e,f),m(f,r),m(e,u),m(e,n),m(n,_),m(_,c)},p(g,p){p&1&&l!==(l=j(g[0])+"")&&E(t,l),p&1&&s!==(s=P(g[0])+"")&&E(r,s),p&1&&d!==(d=M(g[0]))&&b(_,"href",d),p&1&&z!==(z=j(g[0]))&&b(_,"download",z)},d(g){g&&h(e)}}}function je(o){let e,i=o[0],l=[];for(let t=0;t{r[d]=null}),Q(),t=r[l],t?t.p(n,_):(t=r[l]=s[l](n),t.c()),U(t,1),t.m(a.parentNode,a))},i(n){f||(U(e.$$.fragment,n),U(t),f=!0)},o(n){D(e.$$.fragment,n),D(t),f=!1},d(n){I(e,n),n&&h(i),r[l].d(n),n&&h(a)}}}function Ne(o,e,i){let{value:l}=e,{drop_text:t="Drop a file"}=e,{or_text:a="or"}=e,{upload_text:f="click to upload"}=e,{label:s=""}=e,{show_label:r}=e,{file_count:u}=e,{file_types:n=["file"]}=e;async function _({detail:w}){i(0,l=w),await fe(),d("change",l),d("upload",w)}function c({detail:w}){i(0,l=null),d("change",l),d("clear")}const d=ne();let z="";try{n.forEach(w=>i(8,z+=w+"/*, "))}catch(w){if(w instanceof TypeError)d("error","Please set file_types to a list.");else throw w}let g=!1;function p(w){g=w,i(7,g)}function F(w){g=w,i(7,g)}return o.$$set=w=>{"value"in w&&i(0,l=w.value),"drop_text"in w&&i(1,t=w.drop_text),"or_text"in w&&i(2,a=w.or_text),"upload_text"in w&&i(3,f=w.upload_text),"label"in w&&i(4,s=w.label),"show_label"in w&&i(5,r=w.show_label),"file_count"in w&&i(6,u=w.file_count),"file_types"in w&&i(11,n=w.file_types)},o.$$.update=()=>{o.$$.dirty&128&&d("drag",g)},[l,t,a,f,s,r,u,g,z,_,c,n,p,F]}class Ce extends L{constructor(e){super(),q(this,e,Ne,Ee,G,{value:0,drop_text:1,or_text:2,upload_text:3,label:4,show_label:5,file_count:6,file_types:11})}}function Ie(o){let e,i;return e=new Ae({props:{value:o[9],label:o[4],show_label:o[5]}}),{c(){N(e.$$.fragment)},m(l,t){C(e,l,t),i=!0},p(l,t){const a={};t&512&&(a.value=l[9]),t&16&&(a.label=l[4]),t&32&&(a.show_label=l[5]),e.$set(a)},i(l){i||(U(e.$$.fragment,l),i=!0)},o(l){D(e.$$.fragment,l),i=!1},d(l){I(e,l)}}}function Me(o){let e,i;return e=new Ce({props:{label:o[4],show_label:o[5],value:o[9],file_count:o[6],file_types:o[7],drop_text:o[11]("interface.drop_file"),or_text:o[11]("or"),upload_text:o[11]("interface.click_to_upload")}}),e.$on("change",o[14]),e.$on("drag",o[15]),e.$on("change",o[16]),e.$on("clear",o[17]),e.$on("upload",o[18]),{c(){N(e.$$.fragment)},m(l,t){C(e,l,t),i=!0},p(l,t){const a={};t&16&&(a.label=l[4]),t&32&&(a.show_label=l[5]),t&512&&(a.value=l[9]),t&64&&(a.file_count=l[6]),t&128&&(a.file_types=l[7]),t&2048&&(a.drop_text=l[11]("interface.drop_file")),t&2048&&(a.or_text=l[11]("or")),t&2048&&(a.upload_text=l[11]("interface.click_to_upload")),e.$set(a)},i(l){i||(U(e.$$.fragment,l),i=!0)},o(l){D(e.$$.fragment,l),i=!1},d(l){I(e,l)}}}function Pe(o){let e,i,l,t,a,f;const s=[o[8]];let r={};for(let c=0;c{n[g]=null}),Q(),t=n[l],t?t.p(c,d):(t=n[l]=u[l](c),t.c()),U(t,1),t.m(a.parentNode,a))},i(c){f||(U(e.$$.fragment,c),U(t),f=!0)},o(c){D(e.$$.fragment,c),D(t),f=!1},d(c){I(e,c),c&&h(i),n[l].d(c),c&&h(a)}}}function Se(o){let e,i;return e=new oe({props:{visible:o[2],variant:o[3]==="dynamic"&&o[0]===null?"dashed":"solid",color:o[10]?"green":"grey",padding:!1,elem_id:o[1],$$slots:{default:[Pe]},$$scope:{ctx:o}}}),{c(){N(e.$$.fragment)},m(l,t){C(e,l,t),i=!0},p(l,[t]){const a={};t&4&&(a.visible=l[2]),t&9&&(a.variant=l[3]==="dynamic"&&l[0]===null?"dashed":"solid"),t&1024&&(a.color=l[10]?"green":"grey"),t&2&&(a.elem_id=l[1]),t&528377&&(a.$$scope={dirty:t,ctx:l}),e.$set(a)},i(l){i||(U(e.$$.fragment,l),i=!0)},o(l){D(e.$$.fragment,l),i=!1},d(l){I(e,l)}}}function Te(o,e,i){let l;ae(o,_e,v=>i(11,l=v));let{elem_id:t=""}=e,{visible:a=!0}=e,{value:f=null}=e,{mode:s}=e,{root:r}=e,{label:u}=e,{show_label:n}=e,{file_count:_}=e,{file_types:c=["file"]}=e,{root_url:d}=e,{loading_status:z}=e,g,p=!1;const F=({detail:v})=>i(0,f=v),w=({detail:v})=>i(10,p=v);function le(v){T.call(this,o,v)}function te(v){T.call(this,o,v)}function ie(v){T.call(this,o,v)}return o.$$set=v=>{"elem_id"in v&&i(1,t=v.elem_id),"visible"in v&&i(2,a=v.visible),"value"in v&&i(0,f=v.value),"mode"in v&&i(3,s=v.mode),"root"in v&&i(12,r=v.root),"label"in v&&i(4,u=v.label),"show_label"in v&&i(5,n=v.show_label),"file_count"in v&&i(6,_=v.file_count),"file_types"in v&&i(7,c=v.file_types),"root_url"in v&&i(13,d=v.root_url),"loading_status"in v&&i(8,z=v.loading_status)},o.$$.update=()=>{o.$$.dirty&12289&&i(9,g=be(f,d??r))},[f,t,a,s,u,n,_,c,z,g,p,l,r,d,F,w,le,te,ie]}class Ke extends L{constructor(e){super(),q(this,e,Te,Se,G,{elem_id:1,visible:2,value:0,mode:3,root:12,label:4,show_label:5,file_count:6,file_types:7,root_url:13,loading_status:8})}}var Ve=Ke;const Xe=["static","dynamic"],He=o=>({type:"{ name: string; data: string }",description:"file name and base64 data as an object",example_data:{name:"zip.zip",data:"data:@file/octet-stream;base64,UEsFBgAAAAAAAAAAAAAAAAAAAAAAAA=="}});export{Ve as Component,He as document,Xe as modes}; +//# sourceMappingURL=index.de220284.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.de220284.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.de220284.js.map new file mode 100644 index 0000000000000000000000000000000000000000..2f7f7406075609975f0640deff684629e75a5b27 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.de220284.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.de220284.js","sources":["../../../../ui/packages/file/src/utils.ts","../../../../ui/packages/file/src/File.svelte","../../../../ui/packages/file/src/FileUpload.svelte","../../../../ui/packages/app/src/components/File/File.svelte","../../../../ui/packages/app/src/components/File/index.ts"],"sourcesContent":["import type { FileData } from \"@gradio/upload\";\n\nexport const prettyBytes = (bytes: number): string => {\n\tlet units = [\"B\", \"KB\", \"MB\", \"GB\", \"PB\"];\n\tlet i = 0;\n\twhile (bytes > 1024) {\n\t\tbytes /= 1024;\n\t\ti++;\n\t}\n\tlet unit = units[i];\n\treturn bytes.toFixed(1) + \" \" + unit;\n};\n\nexport const display_file_name = (value: FileData): string => {\n\tvar str: string;\n\tstr = value.orig_name || value.name;\n\tif (str.length > 30) {\n\t\treturn `${str.substr(0, 30)}...`;\n\t} else return str;\n};\n\nexport const download_files = (value: FileData): string => {\n\treturn value.data;\n};\n\nexport const display_file_size = (\n\tvalue: FileData | Array\n): string => {\n\tvar total_size = 0;\n\tif (Array.isArray(value)) {\n\t\tfor (var file of value) {\n\t\t\tif (file.size !== undefined) total_size += file.size;\n\t\t}\n\t} else {\n\t\ttotal_size = value.size || 0;\n\t}\n\treturn prettyBytes(total_size);\n};\n","\n\n\n\n{#if value}\n\t\n\t\t{#if Array.isArray(value)}\n\t\t\t{#each value as file}\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{display_file_name(file)}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{display_file_size(file)}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tDownload\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t{/each}\n\t\t{:else}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{display_file_name(value)}\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{display_file_size(value)}\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\tDownload\n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t\n{:else}\n\t
    \n\t\t
    \n\t
    \n{/if}\n","\n\n\n\n{#if value === null && file_count === \"single\"}\n\t\n\t\t{drop_text}\n\t\t
    - {or_text} -
    \n\t\t{upload_text}\n\t
    \n{:else if value === null}\n\t\n\t\t{drop_text}\n\t\t
    - {or_text} -
    \n\t\t{upload_text}\n\t\n{:else}\n\t\n\t\t\n\t\t{#if Array.isArray(value)}\n\t\t\t{#each value as file}\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{display_file_name(file)}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{display_file_size(file)}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tDownload\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t{/each}\n\t\t{:else}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{display_file_name(value)}\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{display_file_size(value)}\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\tDownload\n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t\n{/if}\n","\n\n\n\t\n\n\t{#if mode === \"dynamic\"}\n\t\t (value = detail)}\n\t\t\ton:drag={({ detail }) => (dragging = detail)}\n\t\t\ton:change\n\t\t\ton:clear\n\t\t\ton:upload\n\t\t\tdrop_text={$_(\"interface.drop_file\")}\n\t\t\tor_text={$_(\"or\")}\n\t\t\tupload_text={$_(\"interface.click_to_upload\")}\n\t\t/>\n\t{:else}\n\t\t\n\t{/if}\n\n","export { default as Component } from \"./File.svelte\";\nexport const modes = [\"static\", \"dynamic\"];\n\nexport const document = (config: Record) => ({\n\ttype: \"{ name: string; data: string }\",\n\tdescription: \"file name and base64 data as an object\",\n\texample_data: {\n\t\tname: \"zip.zip\",\n\t\tdata: \"data:@file/octet-stream;base64,UEsFBgAAAAAAAAAAAAAAAAAAAAAAAA==\"\n\t}\n});\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.e11ce6a7.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.e11ce6a7.js new file mode 100644 index 0000000000000000000000000000000000000000..f0a3bd903551868682bd28361c8a72a9f35b342d --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.e11ce6a7.js @@ -0,0 +1,2 @@ +import{S as s,i as o,s as a}from"./index.cb50929e.js";class n extends s{constructor(e){super(),o(this,e,null,null,a,{})}}var i=n;const l=["static"],r=t=>({type:"Any",description:"stored state value",example_data:""});export{i as Component,r as document,l as modes}; +//# sourceMappingURL=index.e11ce6a7.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.e11ce6a7.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.e11ce6a7.js.map new file mode 100644 index 0000000000000000000000000000000000000000..9fc8a26e303fe142868a001f094382916a2f0978 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.e11ce6a7.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.e11ce6a7.js","sources":["../../../../ui/packages/app/src/components/State/index.ts"],"sourcesContent":["export { default as Component } from \"./State.svelte\";\nexport const modes = [\"static\"];\n\nexport const document = (config: Record) => ({\n\ttype: \"Any\",\n\tdescription: \"stored state value\",\n\texample_data: \"\"\n});\n"],"names":[],"mappings":"sIACa,GAAQ,CAAC,QAAQ,EAEjB,EAAW,AAAC,KACxB,KAAM,MACN,YAAa,qBACb,aAAc,EACf"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.ed52d6e3.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.ed52d6e3.js new file mode 100644 index 0000000000000000000000000000000000000000..4614cf769d77fa29bba00e469830a1a7981cf011 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.ed52d6e3.js @@ -0,0 +1,2 @@ +import{S as q,i as D,s as E,a7 as I,e as S,c as h,a as F,b as y,f as C,m,g as T,a8 as j,l as K,j as g,k,n as P,o as v,F as L,t as O,h as R,a9 as d,P as U,R as V,T as z,I as A,O as G,U as H,V as J,L as M,K as B}from"./index.cb50929e.js";function N(s){let e;return{c(){e=O(s[1])},m(l,t){C(l,e,t)},p(l,t){t&2&&R(e,l[1])},d(l){l&&P(e)}}}function Q(s){let e,l,t,n,u,c,_;return l=new I({props:{show_label:s[3],$$slots:{default:[N]},$$scope:{ctx:s}}}),{c(){e=S("label"),h(l.$$.fragment),t=F(),n=S("input"),y(n,"type","color"),y(n,"class","gr-box-unrounded"),n.disabled=s[2],y(e,"class","block")},m(r,f){C(r,e,f),m(l,e,null),T(e,t),T(e,n),j(n,s[0]),u=!0,c||(_=K(n,"input",s[5]),c=!0)},p(r,[f]){const a={};f&8&&(a.show_label=r[3]),f&258&&(a.$$scope={dirty:f,ctx:r}),l.$set(a),(!u||f&4)&&(n.disabled=r[2]),f&1&&j(n,r[0])},i(r){u||(g(l.$$.fragment,r),u=!0)},o(r){k(l.$$.fragment,r),u=!1},d(r){r&&P(e),v(l),c=!1,_()}}}function W(s,e,l){let{value:t="#000000"}=e,{style:n={}}=e,{label:u}=e,{disabled:c=!1}=e,{show_label:_=!0}=e;const r=L();function f(i){r("change",i)}function a(){t=this.value,l(0,t)}return s.$$set=i=>{"value"in i&&l(0,t=i.value),"style"in i&&l(4,n=i.style),"label"in i&&l(1,u=i.label),"disabled"in i&&l(2,c=i.disabled),"show_label"in i&&l(3,_=i.show_label)},s.$$.update=()=>{s.$$.dirty&1,s.$$.dirty&1&&f(t)},[t,u,c,_,n,a]}class X extends q{constructor(e){super(),D(this,e,W,Q,E,{value:0,style:4,label:1,disabled:2,show_label:3})}}function Y(s){let e,l,t,n,u;const c=[s[6]];let _={};for(let a=0;aG(t,"value",r)),t.$on("change",s[9]),t.$on("submit",s[10]),{c(){h(e.$$.fragment),l=F(),h(t.$$.fragment)},m(a,i){m(e,a,i),C(a,l,i),m(t,a,i),u=!0},p(a,i){const w=i&64?H(c,[J(a[6])]):{};e.$set(w);const b={};i&32&&(b.style=a[5]),i&2&&(b.label=a[1]),i&16&&(b.show_label=a[4]),i&128&&(b.disabled=a[7]==="static"),!n&&i&1&&(n=!0,b.value=a[0],M(()=>n=!1)),t.$set(b)},i(a){u||(g(e.$$.fragment,a),g(t.$$.fragment,a),u=!0)},o(a){k(e.$$.fragment,a),k(t.$$.fragment,a),u=!1},d(a){v(e,a),a&&P(l),v(t,a)}}}function Z(s){let e,l;return e=new U({props:{visible:s[3],elem_id:s[2],disable:typeof s[5].container=="boolean"&&!s[5].container,$$slots:{default:[Y]},$$scope:{ctx:s}}}),{c(){h(e.$$.fragment)},m(t,n){m(e,t,n),l=!0},p(t,[n]){const u={};n&8&&(u.visible=t[3]),n&4&&(u.elem_id=t[2]),n&32&&(u.disable=typeof t[5].container=="boolean"&&!t[5].container),n&2291&&(u.$$scope={dirty:n,ctx:t}),e.$set(u)},i(t){l||(g(e.$$.fragment,t),l=!0)},o(t){k(e.$$.fragment,t),l=!1},d(t){v(e,t)}}}function p(s,e,l){let{label:t="ColorPicker"}=e,{elem_id:n=""}=e,{visible:u=!0}=e,{value:c}=e,{show_label:_}=e,{style:r={}}=e,{loading_status:f}=e,{mode:a}=e;function i(o){c=o,l(0,c)}function w(o){B.call(this,s,o)}function b(o){B.call(this,s,o)}return s.$$set=o=>{"label"in o&&l(1,t=o.label),"elem_id"in o&&l(2,n=o.elem_id),"visible"in o&&l(3,u=o.visible),"value"in o&&l(0,c=o.value),"show_label"in o&&l(4,_=o.show_label),"style"in o&&l(5,r=o.style),"loading_status"in o&&l(6,f=o.loading_status),"mode"in o&&l(7,a=o.mode)},[c,t,n,u,_,r,f,a,i,w,b]}class x extends q{constructor(e){super(),D(this,e,p,Z,E,{label:1,elem_id:2,visible:3,value:0,show_label:4,style:5,loading_status:6,mode:7})}get label(){return this.$$.ctx[1]}set label(e){this.$$set({label:e}),d()}get elem_id(){return this.$$.ctx[2]}set elem_id(e){this.$$set({elem_id:e}),d()}get visible(){return this.$$.ctx[3]}set visible(e){this.$$set({visible:e}),d()}get value(){return this.$$.ctx[0]}set value(e){this.$$set({value:e}),d()}get show_label(){return this.$$.ctx[4]}set show_label(e){this.$$set({show_label:e}),d()}get style(){return this.$$.ctx[5]}set style(e){this.$$set({style:e}),d()}get loading_status(){return this.$$.ctx[6]}set loading_status(e){this.$$set({loading_status:e}),d()}get mode(){return this.$$.ctx[7]}set mode(e){this.$$set({mode:e}),d()}}var ee=x;const te=["static","dynamic"],le=s=>({type:"string",description:"hex color code",example_data:s.value??"#000000"});export{ee as Component,le as document,te as modes}; +//# sourceMappingURL=index.ed52d6e3.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.ed52d6e3.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.ed52d6e3.js.map new file mode 100644 index 0000000000000000000000000000000000000000..1e915df3cb0265ec1012cb9cb02949fd1e72a498 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.ed52d6e3.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.ed52d6e3.js","sources":["../../../../ui/packages/form/src/ColorPicker.svelte","../../../../ui/packages/app/src/components/ColorPicker/ColorPicker.svelte","../../../../ui/packages/app/src/components/ColorPicker/index.ts"],"sourcesContent":["\n\n\n\n","\n\n\n\n\n\t\n\n\t\n\n","export { default as Component } from \"./ColorPicker.svelte\";\nexport const modes = [\"static\", \"dynamic\"];\n\nexport const document = (config: Record) => ({\n\ttype: \"string\",\n\tdescription: \"hex color code\",\n\texample_data: config.value ?? \"#000000\"\n});\n"],"names":[],"mappings":"+QA2B2B,wCAAA,6RAD3B,4BAEC,gTAtBW,QAAgB,cAChB,eACA,YACA,WAAW,OACX,aAAsB,WAK3B,GAAW,eAKM,GACtB,EAAS,SAAU,CAAG,+PARpB,EAAc,CAAK,kKCcH,sJASR,OAAS,yPATD,sHASR,OAAS,uRAXJ,MAAM,WAAc,YAAc,KAAM,uLAAxC,MAAM,WAAc,YAAc,KAAM,+JAhB7C,QAAgB,kBAChB,UAAkB,OAClB,UAAmB,OACnB,YACA,iBAEA,eAEA,qBAEA,qqCClBC,IAAQ,CAAC,SAAU,SAAS,EAE5B,GAAW,AAAC,KACxB,KAAM,SACN,YAAa,iBACb,aAAc,EAAO,OAAS,SAC/B"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.f1a22a9e.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.f1a22a9e.js new file mode 100644 index 0000000000000000000000000000000000000000..84548f58573125313184c71b4ed7d10d0549c6b2 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.f1a22a9e.js @@ -0,0 +1,2 @@ +import{S as f,i as _,s as c,P as m,c as d,m as b,j as r,k as u,o as p,p as g,u as v,q as $,r as k}from"./index.cb50929e.js";function h(o){let s;const l=o[2].default,e=g(l,o,o[3],null);return{c(){e&&e.c()},m(t,n){e&&e.m(t,n),s=!0},p(t,n){e&&e.p&&(!s||n&8)&&v(e,l,t,t[3],s?k(l,t[3],n,null):$(t[3]),null)},i(t){s||(r(e,t),s=!0)},o(t){u(e,t),s=!1},d(t){e&&e.d(t)}}}function B(o){let s,l;return s=new m({props:{elem_id:o[0],visible:o[1],explicit_call:!0,$$slots:{default:[h]},$$scope:{ctx:o}}}),{c(){d(s.$$.fragment)},m(e,t){b(s,e,t),l=!0},p(e,[t]){const n={};t&1&&(n.elem_id=e[0]),t&2&&(n.visible=e[1]),t&8&&(n.$$scope={dirty:t,ctx:e}),s.$set(n)},i(e){l||(r(s.$$.fragment,e),l=!0)},o(e){u(s.$$.fragment,e),l=!1},d(e){p(s,e)}}}function q(o,s,l){let{$$slots:e={},$$scope:t}=s,{elem_id:n}=s,{visible:a=!0}=s;return o.$$set=i=>{"elem_id"in i&&l(0,n=i.elem_id),"visible"in i&&l(1,a=i.visible),"$$scope"in i&&l(3,t=i.$$scope)},[n,a,e,t]}class C extends f{constructor(s){super(),_(this,s,q,B,c,{elem_id:0,visible:1})}}var j=C;const w=["static"];export{j as Component,w as modes}; +//# sourceMappingURL=index.f1a22a9e.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.f1a22a9e.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.f1a22a9e.js.map new file mode 100644 index 0000000000000000000000000000000000000000..7ae4aa1c02dd54321ede08b8e6807916bb914e36 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.f1a22a9e.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.f1a22a9e.js","sources":["../../../../ui/packages/app/src/components/Box/Box.svelte","../../../../ui/packages/app/src/components/Box/index.ts"],"sourcesContent":["\n\n\n\t\n\n","export { default as Component } from \"./Box.svelte\";\nexport const modes = [\"static\"];\n"],"names":[],"mappings":"mwBAEY,cACA,UAAmB,iOCFlB,GAAQ,CAAC,QAAQ"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.f20cf91a.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.f20cf91a.js new file mode 100644 index 0000000000000000000000000000000000000000..5a7f0b3b53abd370d86ff75e4f31cb846d599eb4 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.f20cf91a.js @@ -0,0 +1,13264 @@ +import{S as al,i as sl,s as cl,c as Mi,a as qr,B as ll,m as Ii,f as bn,D as ul,k as wn,E as hl,j as Fn,o as Di,n as yn,ad as Cf,a5 as Rf,I as dl,e as hr,b as Lo,g as ol,x as Do,F as Cv,aa as Pf,O as Rv,L as Ov,t as Io,h as rl,P as Mv,Q as Iv,X as Dv,R as Lv,T as Nv,U as wv,V as Fv,K as xf}from"./index.cb50929e.js";import{n as Bv}from"./utils.27234e1d.js";import{B as Of}from"./BlockLabel.4b1193ac.js";import{F as fl}from"./File.febd4e12.js";import{c as Qr}from"./_commonjsHelpers.88e99c8f.js";import{U as Uv}from"./Upload.5e38559f.js";import{M as Vv}from"./ModifyUpload.e869f7e2.js";import{E as _b}from"./Model3D.ed795b4f.js";var zn={exports:{}};(function(ft,Ze){(function(Ie,y){ft.exports=y()})(typeof self<"u"?self:typeof Qr<"u"?Qr:Qr,function(){return function(Ie){var y={};function f(U){if(y[U])return y[U].exports;var _=y[U]={i:U,l:!1,exports:{}};return Ie[U].call(_.exports,_,_.exports,f),_.l=!0,_.exports}return f.m=Ie,f.c=y,f.d=function(U,_,R){f.o(U,_)||Object.defineProperty(U,_,{enumerable:!0,get:R})},f.r=function(U){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(U,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(U,"__esModule",{value:!0})},f.t=function(U,_){if(1&_&&(U=f(U)),8&_||4&_&&typeof U=="object"&&U&&U.__esModule)return U;var R=Object.create(null);if(f.r(R),Object.defineProperty(R,"default",{enumerable:!0,value:U}),2&_&&typeof U!="string")for(var u in U)f.d(R,u,function(M){return U[M]}.bind(null,u));return R},f.n=function(U){var _=U&&U.__esModule?function(){return U.default}:function(){return U};return f.d(_,"a",_),_},f.o=function(U,_){return Object.prototype.hasOwnProperty.call(U,_)},f.p="",f(f.s=169)}([function(Ie,y,f){f.d(y,"d",function(){return C}),f.d(y,"e",function(){return P}),f.d(y,"f",function(){return m}),f.d(y,"b",function(){return c}),f.d(y,"a",function(){return T}),f.d(y,"c",function(){return S});var U=f(14),_=f(28),R=f(44),u=f(11),M=f(74),C=function(){function g(l,h){l===void 0&&(l=0),h===void 0&&(h=0),this.x=l,this.y=h}return g.prototype.toString=function(){return"{X: "+this.x+" Y: "+this.y+"}"},g.prototype.getClassName=function(){return"Vector2"},g.prototype.getHashCode=function(){var l=0|this.x;return l=397*l^(0|this.y)},g.prototype.toArray=function(l,h){return h===void 0&&(h=0),l[h]=this.x,l[h+1]=this.y,this},g.prototype.fromArray=function(l,h){return h===void 0&&(h=0),g.FromArrayToRef(l,h,this),this},g.prototype.asArray=function(){var l=new Array;return this.toArray(l,0),l},g.prototype.copyFrom=function(l){return this.x=l.x,this.y=l.y,this},g.prototype.copyFromFloats=function(l,h){return this.x=l,this.y=h,this},g.prototype.set=function(l,h){return this.copyFromFloats(l,h)},g.prototype.add=function(l){return new g(this.x+l.x,this.y+l.y)},g.prototype.addToRef=function(l,h){return h.x=this.x+l.x,h.y=this.y+l.y,this},g.prototype.addInPlace=function(l){return this.x+=l.x,this.y+=l.y,this},g.prototype.addVector3=function(l){return new g(this.x+l.x,this.y+l.y)},g.prototype.subtract=function(l){return new g(this.x-l.x,this.y-l.y)},g.prototype.subtractToRef=function(l,h){return h.x=this.x-l.x,h.y=this.y-l.y,this},g.prototype.subtractInPlace=function(l){return this.x-=l.x,this.y-=l.y,this},g.prototype.multiplyInPlace=function(l){return this.x*=l.x,this.y*=l.y,this},g.prototype.multiply=function(l){return new g(this.x*l.x,this.y*l.y)},g.prototype.multiplyToRef=function(l,h){return h.x=this.x*l.x,h.y=this.y*l.y,this},g.prototype.multiplyByFloats=function(l,h){return new g(this.x*l,this.y*h)},g.prototype.divide=function(l){return new g(this.x/l.x,this.y/l.y)},g.prototype.divideToRef=function(l,h){return h.x=this.x/l.x,h.y=this.y/l.y,this},g.prototype.divideInPlace=function(l){return this.divideToRef(l,this)},g.prototype.negate=function(){return new g(-this.x,-this.y)},g.prototype.negateInPlace=function(){return this.x*=-1,this.y*=-1,this},g.prototype.negateToRef=function(l){return l.copyFromFloats(-1*this.x,-1*this.y)},g.prototype.scaleInPlace=function(l){return this.x*=l,this.y*=l,this},g.prototype.scale=function(l){var h=new g(0,0);return this.scaleToRef(l,h),h},g.prototype.scaleToRef=function(l,h){return h.x=this.x*l,h.y=this.y*l,this},g.prototype.scaleAndAddToRef=function(l,h){return h.x+=this.x*l,h.y+=this.y*l,this},g.prototype.equals=function(l){return l&&this.x===l.x&&this.y===l.y},g.prototype.equalsWithEpsilon=function(l,h){return h===void 0&&(h=_.a),l&&U.a.WithinEpsilon(this.x,l.x,h)&&U.a.WithinEpsilon(this.y,l.y,h)},g.prototype.floor=function(){return new g(Math.floor(this.x),Math.floor(this.y))},g.prototype.fract=function(){return new g(this.x-Math.floor(this.x),this.y-Math.floor(this.y))},g.prototype.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},g.prototype.lengthSquared=function(){return this.x*this.x+this.y*this.y},g.prototype.normalize=function(){var l=this.length();return l===0||(this.x/=l,this.y/=l),this},g.prototype.clone=function(){return new g(this.x,this.y)},g.Zero=function(){return new g(0,0)},g.One=function(){return new g(1,1)},g.FromArray=function(l,h){return h===void 0&&(h=0),new g(l[h],l[h+1])},g.FromArrayToRef=function(l,h,v){v.x=l[h],v.y=l[h+1]},g.CatmullRom=function(l,h,v,E,D){var w=D*D,N=D*w;return new g(.5*(2*h.x+(-l.x+v.x)*D+(2*l.x-5*h.x+4*v.x-E.x)*w+(-l.x+3*h.x-3*v.x+E.x)*N),.5*(2*h.y+(-l.y+v.y)*D+(2*l.y-5*h.y+4*v.y-E.y)*w+(-l.y+3*h.y-3*v.y+E.y)*N))},g.Clamp=function(l,h,v){var E=l.x;E=(E=E>v.x?v.x:E)v.y?v.y:D)h.x?l.x:h.x,l.y>h.y?l.y:h.y)},g.Transform=function(l,h){var v=g.Zero();return g.TransformToRef(l,h,v),v},g.TransformToRef=function(l,h,v){var E=h.m,D=l.x*E[0]+l.y*E[4]+E[12],w=l.x*E[1]+l.y*E[5]+E[13];v.x=D,v.y=w},g.PointInTriangle=function(l,h,v,E){var D=.5*(-v.y*E.x+h.y*(-v.x+E.x)+h.x*(v.y-E.y)+v.x*E.y),w=D<0?-1:1,N=(h.y*E.x-h.x*E.y+(E.y-h.y)*l.x+(h.x-E.x)*l.y)*w,I=(h.x*v.y-h.y*v.x+(h.y-v.y)*l.x+(v.x-h.x)*l.y)*w;return N>0&&I>0&&N+I<2*D*w},g.Distance=function(l,h){return Math.sqrt(g.DistanceSquared(l,h))},g.DistanceSquared=function(l,h){var v=l.x-h.x,E=l.y-h.y;return v*v+E*E},g.Center=function(l,h){var v=l.add(h);return v.scaleInPlace(.5),v},g.DistanceOfPointFromSegment=function(l,h,v){var E=g.DistanceSquared(h,v);if(E===0)return g.Distance(l,h);var D=v.subtract(h),w=Math.max(0,Math.min(1,g.Dot(l.subtract(h),D)/E)),N=h.add(D.multiplyByFloats(w,w));return g.Distance(l,N)},g}(),P=function(){function g(l,h,v){l===void 0&&(l=0),h===void 0&&(h=0),v===void 0&&(v=0),this._isDirty=!0,this._x=l,this._y=h,this._z=v}return Object.defineProperty(g.prototype,"x",{get:function(){return this._x},set:function(l){this._x=l,this._isDirty=!0},enumerable:!1,configurable:!0}),Object.defineProperty(g.prototype,"y",{get:function(){return this._y},set:function(l){this._y=l,this._isDirty=!0},enumerable:!1,configurable:!0}),Object.defineProperty(g.prototype,"z",{get:function(){return this._z},set:function(l){this._z=l,this._isDirty=!0},enumerable:!1,configurable:!0}),g.prototype.toString=function(){return"{X: "+this._x+" Y:"+this._y+" Z:"+this._z+"}"},g.prototype.getClassName=function(){return"Vector3"},g.prototype.getHashCode=function(){var l=0|this._x;return l=397*(l=397*l^(0|this._y))^(0|this._z)},g.prototype.asArray=function(){var l=[];return this.toArray(l,0),l},g.prototype.toArray=function(l,h){return h===void 0&&(h=0),l[h]=this._x,l[h+1]=this._y,l[h+2]=this._z,this},g.prototype.fromArray=function(l,h){return h===void 0&&(h=0),g.FromArrayToRef(l,h,this),this},g.prototype.toQuaternion=function(){return c.RotationYawPitchRoll(this._y,this._x,this._z)},g.prototype.addInPlace=function(l){return this.addInPlaceFromFloats(l._x,l._y,l._z)},g.prototype.addInPlaceFromFloats=function(l,h,v){return this.x+=l,this.y+=h,this.z+=v,this},g.prototype.add=function(l){return new g(this._x+l._x,this._y+l._y,this._z+l._z)},g.prototype.addToRef=function(l,h){return h.copyFromFloats(this._x+l._x,this._y+l._y,this._z+l._z)},g.prototype.subtractInPlace=function(l){return this.x-=l._x,this.y-=l._y,this.z-=l._z,this},g.prototype.subtract=function(l){return new g(this._x-l._x,this._y-l._y,this._z-l._z)},g.prototype.subtractToRef=function(l,h){return this.subtractFromFloatsToRef(l._x,l._y,l._z,h)},g.prototype.subtractFromFloats=function(l,h,v){return new g(this._x-l,this._y-h,this._z-v)},g.prototype.subtractFromFloatsToRef=function(l,h,v,E){return E.copyFromFloats(this._x-l,this._y-h,this._z-v)},g.prototype.negate=function(){return new g(-this._x,-this._y,-this._z)},g.prototype.negateInPlace=function(){return this.x*=-1,this.y*=-1,this.z*=-1,this},g.prototype.negateToRef=function(l){return l.copyFromFloats(-1*this._x,-1*this._y,-1*this._z)},g.prototype.scaleInPlace=function(l){return this.x*=l,this.y*=l,this.z*=l,this},g.prototype.scale=function(l){return new g(this._x*l,this._y*l,this._z*l)},g.prototype.scaleToRef=function(l,h){return h.copyFromFloats(this._x*l,this._y*l,this._z*l)},g.prototype.scaleAndAddToRef=function(l,h){return h.addInPlaceFromFloats(this._x*l,this._y*l,this._z*l)},g.prototype.projectOnPlane=function(l,h){var v=g.Zero();return this.projectOnPlaneToRef(l,h,v),v},g.prototype.projectOnPlaneToRef=function(l,h,v){var E=l.normal,D=l.d,w=A.Vector3[0];this.subtractToRef(h,w),w.normalize();var N=g.Dot(w,E),I=-(g.Dot(h,E)+D)/N,V=w.scaleInPlace(I);h.addToRef(V,v)},g.prototype.equals=function(l){return l&&this._x===l._x&&this._y===l._y&&this._z===l._z},g.prototype.equalsWithEpsilon=function(l,h){return h===void 0&&(h=_.a),l&&U.a.WithinEpsilon(this._x,l._x,h)&&U.a.WithinEpsilon(this._y,l._y,h)&&U.a.WithinEpsilon(this._z,l._z,h)},g.prototype.equalsToFloats=function(l,h,v){return this._x===l&&this._y===h&&this._z===v},g.prototype.multiplyInPlace=function(l){return this.x*=l._x,this.y*=l._y,this.z*=l._z,this},g.prototype.multiply=function(l){return this.multiplyByFloats(l._x,l._y,l._z)},g.prototype.multiplyToRef=function(l,h){return h.copyFromFloats(this._x*l._x,this._y*l._y,this._z*l._z)},g.prototype.multiplyByFloats=function(l,h,v){return new g(this._x*l,this._y*h,this._z*v)},g.prototype.divide=function(l){return new g(this._x/l._x,this._y/l._y,this._z/l._z)},g.prototype.divideToRef=function(l,h){return h.copyFromFloats(this._x/l._x,this._y/l._y,this._z/l._z)},g.prototype.divideInPlace=function(l){return this.divideToRef(l,this)},g.prototype.minimizeInPlace=function(l){return this.minimizeInPlaceFromFloats(l._x,l._y,l._z)},g.prototype.maximizeInPlace=function(l){return this.maximizeInPlaceFromFloats(l._x,l._y,l._z)},g.prototype.minimizeInPlaceFromFloats=function(l,h,v){return lthis._x&&(this.x=l),h>this._y&&(this.y=h),v>this._z&&(this.z=v),this},g.prototype.isNonUniformWithinEpsilon=function(l){var h=Math.abs(this._x),v=Math.abs(this._y);if(!U.a.WithinEpsilon(h,v,l))return!0;var E=Math.abs(this._z);return!U.a.WithinEpsilon(h,E,l)||!U.a.WithinEpsilon(v,E,l)},Object.defineProperty(g.prototype,"isNonUniform",{get:function(){var l=Math.abs(this._x);return l!==Math.abs(this._y)||l!==Math.abs(this._z)},enumerable:!1,configurable:!0}),g.prototype.floor=function(){return new g(Math.floor(this._x),Math.floor(this._y),Math.floor(this._z))},g.prototype.fract=function(){return new g(this._x-Math.floor(this._x),this._y-Math.floor(this._y),this._z-Math.floor(this._z))},g.prototype.length=function(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z)},g.prototype.lengthSquared=function(){return this._x*this._x+this._y*this._y+this._z*this._z},g.prototype.normalize=function(){return this.normalizeFromLength(this.length())},g.prototype.reorderInPlace=function(l){var h=this;return(l=l.toLowerCase())==="xyz"||(A.Vector3[0].copyFrom(this),["x","y","z"].forEach(function(v,E){h[v]=A.Vector3[0][l[E]]})),this},g.prototype.rotateByQuaternionToRef=function(l,h){return l.toRotationMatrix(A.Matrix[0]),g.TransformCoordinatesToRef(this,A.Matrix[0],h),h},g.prototype.rotateByQuaternionAroundPointToRef=function(l,h,v){return this.subtractToRef(h,A.Vector3[0]),A.Vector3[0].rotateByQuaternionToRef(l,A.Vector3[0]),h.addToRef(A.Vector3[0],v),v},g.prototype.cross=function(l){return g.Cross(this,l)},g.prototype.normalizeFromLength=function(l){return l===0||l===1?this:this.scaleInPlace(1/l)},g.prototype.normalizeToNew=function(){var l=new g(0,0,0);return this.normalizeToRef(l),l},g.prototype.normalizeToRef=function(l){var h=this.length();return h===0||h===1?l.copyFromFloats(this._x,this._y,this._z):this.scaleToRef(1/h,l)},g.prototype.clone=function(){return new g(this._x,this._y,this._z)},g.prototype.copyFrom=function(l){return this.copyFromFloats(l._x,l._y,l._z)},g.prototype.copyFromFloats=function(l,h,v){return this.x=l,this.y=h,this.z=v,this},g.prototype.set=function(l,h,v){return this.copyFromFloats(l,h,v)},g.prototype.setAll=function(l){return this.x=this.y=this.z=l,this},g.GetClipFactor=function(l,h,v,E){var D=g.Dot(l,v)-E;return D/(D-(g.Dot(h,v)-E))},g.GetAngleBetweenVectors=function(l,h,v){var E=l.normalizeToRef(A.Vector3[1]),D=h.normalizeToRef(A.Vector3[2]),w=g.Dot(E,D),N=A.Vector3[3];return g.CrossToRef(E,D,N),g.Dot(N,v)>0?Math.acos(w):-Math.acos(w)},g.FromArray=function(l,h){return h===void 0&&(h=0),new g(l[h],l[h+1],l[h+2])},g.FromFloatArray=function(l,h){return g.FromArray(l,h)},g.FromArrayToRef=function(l,h,v){v.x=l[h],v.y=l[h+1],v.z=l[h+2]},g.FromFloatArrayToRef=function(l,h,v){return g.FromArrayToRef(l,h,v)},g.FromFloatsToRef=function(l,h,v,E){E.copyFromFloats(l,h,v)},g.Zero=function(){return new g(0,0,0)},g.One=function(){return new g(1,1,1)},g.Up=function(){return new g(0,1,0)},Object.defineProperty(g,"UpReadOnly",{get:function(){return g._UpReadOnly},enumerable:!1,configurable:!0}),Object.defineProperty(g,"ZeroReadOnly",{get:function(){return g._ZeroReadOnly},enumerable:!1,configurable:!0}),g.Down=function(){return new g(0,-1,0)},g.Forward=function(l){return l===void 0&&(l=!1),new g(0,0,l?-1:1)},g.Backward=function(l){return l===void 0&&(l=!1),new g(0,0,l?1:-1)},g.Right=function(){return new g(1,0,0)},g.Left=function(){return new g(-1,0,0)},g.TransformCoordinates=function(l,h){var v=g.Zero();return g.TransformCoordinatesToRef(l,h,v),v},g.TransformCoordinatesToRef=function(l,h,v){g.TransformCoordinatesFromFloatsToRef(l._x,l._y,l._z,h,v)},g.TransformCoordinatesFromFloatsToRef=function(l,h,v,E,D){var w=E.m,N=l*w[0]+h*w[4]+v*w[8]+w[12],I=l*w[1]+h*w[5]+v*w[9]+w[13],V=l*w[2]+h*w[6]+v*w[10]+w[14],X=1/(l*w[3]+h*w[7]+v*w[11]+w[15]);D.x=N*X,D.y=I*X,D.z=V*X},g.TransformNormal=function(l,h){var v=g.Zero();return g.TransformNormalToRef(l,h,v),v},g.TransformNormalToRef=function(l,h,v){this.TransformNormalFromFloatsToRef(l._x,l._y,l._z,h,v)},g.TransformNormalFromFloatsToRef=function(l,h,v,E,D){var w=E.m;D.x=l*w[0]+h*w[4]+v*w[8],D.y=l*w[1]+h*w[5]+v*w[9],D.z=l*w[2]+h*w[6]+v*w[10]},g.CatmullRom=function(l,h,v,E,D){var w=D*D,N=D*w;return new g(.5*(2*h._x+(-l._x+v._x)*D+(2*l._x-5*h._x+4*v._x-E._x)*w+(-l._x+3*h._x-3*v._x+E._x)*N),.5*(2*h._y+(-l._y+v._y)*D+(2*l._y-5*h._y+4*v._y-E._y)*w+(-l._y+3*h._y-3*v._y+E._y)*N),.5*(2*h._z+(-l._z+v._z)*D+(2*l._z-5*h._z+4*v._z-E._z)*w+(-l._z+3*h._z-3*v._z+E._z)*N))},g.Clamp=function(l,h,v){var E=new g;return g.ClampToRef(l,h,v,E),E},g.ClampToRef=function(l,h,v,E){var D=l._x;D=(D=D>v._x?v._x:D)v._y?v._y:w)v._z?v._z:N)this.x&&(this.x=l.x),l.y>this.y&&(this.y=l.y),l.z>this.z&&(this.z=l.z),l.w>this.w&&(this.w=l.w),this},g.prototype.floor=function(){return new g(Math.floor(this.x),Math.floor(this.y),Math.floor(this.z),Math.floor(this.w))},g.prototype.fract=function(){return new g(this.x-Math.floor(this.x),this.y-Math.floor(this.y),this.z-Math.floor(this.z),this.w-Math.floor(this.w))},g.prototype.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},g.prototype.lengthSquared=function(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w},g.prototype.normalize=function(){var l=this.length();return l===0?this:this.scaleInPlace(1/l)},g.prototype.toVector3=function(){return new P(this.x,this.y,this.z)},g.prototype.clone=function(){return new g(this.x,this.y,this.z,this.w)},g.prototype.copyFrom=function(l){return this.x=l.x,this.y=l.y,this.z=l.z,this.w=l.w,this},g.prototype.copyFromFloats=function(l,h,v,E){return this.x=l,this.y=h,this.z=v,this.w=E,this},g.prototype.set=function(l,h,v,E){return this.copyFromFloats(l,h,v,E)},g.prototype.setAll=function(l){return this.x=this.y=this.z=this.w=l,this},g.FromArray=function(l,h){return h||(h=0),new g(l[h],l[h+1],l[h+2],l[h+3])},g.FromArrayToRef=function(l,h,v){v.x=l[h],v.y=l[h+1],v.z=l[h+2],v.w=l[h+3]},g.FromFloatArrayToRef=function(l,h,v){g.FromArrayToRef(l,h,v)},g.FromFloatsToRef=function(l,h,v,E,D){D.x=l,D.y=h,D.z=v,D.w=E},g.Zero=function(){return new g(0,0,0,0)},g.One=function(){return new g(1,1,1,1)},g.Normalize=function(l){var h=g.Zero();return g.NormalizeToRef(l,h),h},g.NormalizeToRef=function(l,h){h.copyFrom(l),h.normalize()},g.Minimize=function(l,h){var v=l.clone();return v.minimizeInPlace(h),v},g.Maximize=function(l,h){var v=l.clone();return v.maximizeInPlace(h),v},g.Distance=function(l,h){return Math.sqrt(g.DistanceSquared(l,h))},g.DistanceSquared=function(l,h){var v=l.x-h.x,E=l.y-h.y,D=l.z-h.z,w=l.w-h.w;return v*v+E*E+D*D+w*w},g.Center=function(l,h){var v=l.add(h);return v.scaleInPlace(.5),v},g.TransformNormal=function(l,h){var v=g.Zero();return g.TransformNormalToRef(l,h,v),v},g.TransformNormalToRef=function(l,h,v){var E=h.m,D=l.x*E[0]+l.y*E[4]+l.z*E[8],w=l.x*E[1]+l.y*E[5]+l.z*E[9],N=l.x*E[2]+l.y*E[6]+l.z*E[10];v.x=D,v.y=w,v.z=N,v.w=l.w},g.TransformNormalFromFloatsToRef=function(l,h,v,E,D,w){var N=D.m;w.x=l*N[0]+h*N[4]+v*N[8],w.y=l*N[1]+h*N[5]+v*N[9],w.z=l*N[2]+h*N[6]+v*N[10],w.w=E},g.FromVector3=function(l,h){return h===void 0&&(h=0),new g(l._x,l._y,l._z,h)},g}(),c=function(){function g(l,h,v,E){l===void 0&&(l=0),h===void 0&&(h=0),v===void 0&&(v=0),E===void 0&&(E=1),this._isDirty=!0,this._x=l,this._y=h,this._z=v,this._w=E}return Object.defineProperty(g.prototype,"x",{get:function(){return this._x},set:function(l){this._x=l,this._isDirty=!0},enumerable:!1,configurable:!0}),Object.defineProperty(g.prototype,"y",{get:function(){return this._y},set:function(l){this._y=l,this._isDirty=!0},enumerable:!1,configurable:!0}),Object.defineProperty(g.prototype,"z",{get:function(){return this._z},set:function(l){this._z=l,this._isDirty=!0},enumerable:!1,configurable:!0}),Object.defineProperty(g.prototype,"w",{get:function(){return this._w},set:function(l){this._w=l,this._isDirty=!0},enumerable:!1,configurable:!0}),g.prototype.toString=function(){return"{X: "+this._x+" Y:"+this._y+" Z:"+this._z+" W:"+this._w+"}"},g.prototype.getClassName=function(){return"Quaternion"},g.prototype.getHashCode=function(){var l=0|this._x;return l=397*(l=397*(l=397*l^(0|this._y))^(0|this._z))^(0|this._w)},g.prototype.asArray=function(){return[this._x,this._y,this._z,this._w]},g.prototype.equals=function(l){return l&&this._x===l._x&&this._y===l._y&&this._z===l._z&&this._w===l._w},g.prototype.equalsWithEpsilon=function(l,h){return h===void 0&&(h=_.a),l&&U.a.WithinEpsilon(this._x,l._x,h)&&U.a.WithinEpsilon(this._y,l._y,h)&&U.a.WithinEpsilon(this._z,l._z,h)&&U.a.WithinEpsilon(this._w,l._w,h)},g.prototype.clone=function(){return new g(this._x,this._y,this._z,this._w)},g.prototype.copyFrom=function(l){return this.x=l._x,this.y=l._y,this.z=l._z,this.w=l._w,this},g.prototype.copyFromFloats=function(l,h,v,E){return this.x=l,this.y=h,this.z=v,this.w=E,this},g.prototype.set=function(l,h,v,E){return this.copyFromFloats(l,h,v,E)},g.prototype.add=function(l){return new g(this._x+l._x,this._y+l._y,this._z+l._z,this._w+l._w)},g.prototype.addInPlace=function(l){return this._x+=l._x,this._y+=l._y,this._z+=l._z,this._w+=l._w,this},g.prototype.subtract=function(l){return new g(this._x-l._x,this._y-l._y,this._z-l._z,this._w-l._w)},g.prototype.scale=function(l){return new g(this._x*l,this._y*l,this._z*l,this._w*l)},g.prototype.scaleToRef=function(l,h){return h.x=this._x*l,h.y=this._y*l,h.z=this._z*l,h.w=this._w*l,this},g.prototype.scaleInPlace=function(l){return this.x*=l,this.y*=l,this.z*=l,this.w*=l,this},g.prototype.scaleAndAddToRef=function(l,h){return h.x+=this._x*l,h.y+=this._y*l,h.z+=this._z*l,h.w+=this._w*l,this},g.prototype.multiply=function(l){var h=new g(0,0,0,1);return this.multiplyToRef(l,h),h},g.prototype.multiplyToRef=function(l,h){var v=this._x*l._w+this._y*l._z-this._z*l._y+this._w*l._x,E=-this._x*l._z+this._y*l._w+this._z*l._x+this._w*l._y,D=this._x*l._y-this._y*l._x+this._z*l._w+this._w*l._z,w=-this._x*l._x-this._y*l._y-this._z*l._z+this._w*l._w;return h.copyFromFloats(v,E,D,w),this},g.prototype.multiplyInPlace=function(l){return this.multiplyToRef(l,this),this},g.prototype.conjugateToRef=function(l){return l.copyFromFloats(-this._x,-this._y,-this._z,this._w),this},g.prototype.conjugateInPlace=function(){return this.x*=-1,this.y*=-1,this.z*=-1,this},g.prototype.conjugate=function(){return new g(-this._x,-this._y,-this._z,this._w)},g.prototype.length=function(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)},g.prototype.normalize=function(){var l=this.length();if(l===0)return this;var h=1/l;return this.x*=h,this.y*=h,this.z*=h,this.w*=h,this},g.prototype.toEulerAngles=function(l){var h=P.Zero();return this.toEulerAnglesToRef(h),h},g.prototype.toEulerAnglesToRef=function(l){var h=this._z,v=this._x,E=this._y,D=this._w,w=D*D,N=h*h,I=v*v,V=E*E,X=E*h-v*D;return X<-.4999999?(l.y=2*Math.atan2(E,D),l.x=Math.PI/2,l.z=0):X>.4999999?(l.y=2*Math.atan2(E,D),l.x=-Math.PI/2,l.z=0):(l.z=Math.atan2(2*(v*E+h*D),-N-I+V+w),l.x=Math.asin(-2*(h*E-v*D)),l.y=Math.atan2(2*(h*v+E*D),N-I-V+w)),this},g.prototype.toRotationMatrix=function(l){return T.FromQuaternionToRef(this,l),this},g.prototype.fromRotationMatrix=function(l){return g.FromRotationMatrixToRef(l,this),this},g.FromRotationMatrix=function(l){var h=new g;return g.FromRotationMatrixToRef(l,h),h},g.FromRotationMatrixToRef=function(l,h){var v,E=l.m,D=E[0],w=E[4],N=E[8],I=E[1],V=E[5],X=E[9],j=E[2],ne=E[6],te=E[10],de=D+V+te;de>0?(v=.5/Math.sqrt(de+1),h.w=.25/v,h.x=(ne-X)*v,h.y=(N-j)*v,h.z=(I-w)*v):D>V&&D>te?(v=2*Math.sqrt(1+D-V-te),h.w=(ne-X)/v,h.x=.25*v,h.y=(w+I)/v,h.z=(N+j)/v):V>te?(v=2*Math.sqrt(1+V-D-te),h.w=(N-j)/v,h.x=(w+I)/v,h.y=.25*v,h.z=(X+ne)/v):(v=2*Math.sqrt(1+te-D-V),h.w=(I-w)/v,h.x=(N+j)/v,h.y=(X+ne)/v,h.z=.25*v)},g.Dot=function(l,h){return l._x*h._x+l._y*h._y+l._z*h._z+l._w*h._w},g.AreClose=function(l,h){return g.Dot(l,h)>=0},g.Zero=function(){return new g(0,0,0,0)},g.Inverse=function(l){return new g(-l._x,-l._y,-l._z,l._w)},g.InverseToRef=function(l,h){return h.set(-l._x,-l._y,-l._z,l._w),h},g.Identity=function(){return new g(0,0,0,1)},g.IsIdentity=function(l){return l&&l._x===0&&l._y===0&&l._z===0&&l._w===1},g.RotationAxis=function(l,h){return g.RotationAxisToRef(l,h,new g)},g.RotationAxisToRef=function(l,h,v){var E=Math.sin(h/2);return l.normalize(),v.w=Math.cos(h/2),v.x=l._x*E,v.y=l._y*E,v.z=l._z*E,v},g.FromArray=function(l,h){return h||(h=0),new g(l[h],l[h+1],l[h+2],l[h+3])},g.FromArrayToRef=function(l,h,v){v.x=l[h],v.y=l[h+1],v.z=l[h+2],v.w=l[h+3]},g.FromEulerAngles=function(l,h,v){var E=new g;return g.RotationYawPitchRollToRef(h,l,v,E),E},g.FromEulerAnglesToRef=function(l,h,v,E){return g.RotationYawPitchRollToRef(h,l,v,E),E},g.FromEulerVector=function(l){var h=new g;return g.RotationYawPitchRollToRef(l._y,l._x,l._z,h),h},g.FromEulerVectorToRef=function(l,h){return g.RotationYawPitchRollToRef(l._y,l._x,l._z,h),h},g.RotationYawPitchRoll=function(l,h,v){var E=new g;return g.RotationYawPitchRollToRef(l,h,v,E),E},g.RotationYawPitchRollToRef=function(l,h,v,E){var D=.5*v,w=.5*h,N=.5*l,I=Math.sin(D),V=Math.cos(D),X=Math.sin(w),j=Math.cos(w),ne=Math.sin(N),te=Math.cos(N);E.x=te*X*V+ne*j*I,E.y=ne*j*V-te*X*I,E.z=te*j*I-ne*X*V,E.w=te*j*V+ne*X*I},g.RotationAlphaBetaGamma=function(l,h,v){var E=new g;return g.RotationAlphaBetaGammaToRef(l,h,v,E),E},g.RotationAlphaBetaGammaToRef=function(l,h,v,E){var D=.5*(v+l),w=.5*(v-l),N=.5*h;E.x=Math.cos(w)*Math.sin(N),E.y=Math.sin(w)*Math.sin(N),E.z=Math.sin(D)*Math.cos(N),E.w=Math.cos(D)*Math.cos(N)},g.RotationQuaternionFromAxis=function(l,h,v){var E=new g(0,0,0,0);return g.RotationQuaternionFromAxisToRef(l,h,v,E),E},g.RotationQuaternionFromAxisToRef=function(l,h,v,E){var D=A.Matrix[0];T.FromXYZAxesToRef(l.normalize(),h.normalize(),v.normalize(),D),g.FromRotationMatrixToRef(D,E)},g.Slerp=function(l,h,v){var E=g.Identity();return g.SlerpToRef(l,h,v,E),E},g.SlerpToRef=function(l,h,v,E){var D,w,N=l._x*h._x+l._y*h._y+l._z*h._z+l._w*h._w,I=!1;if(N<0&&(I=!0,N=-N),N>.999999)w=1-v,D=I?-v:v;else{var V=Math.acos(N),X=1/Math.sin(V);w=Math.sin((1-v)*V)*X,D=I?-Math.sin(v*V)*X:Math.sin(v*V)*X}E.x=w*l._x+D*h._x,E.y=w*l._y+D*h._y,E.z=w*l._z+D*h._z,E.w=w*l._w+D*h._w},g.Hermite=function(l,h,v,E,D){var w=D*D,N=D*w,I=2*N-3*w+1,V=-2*N+3*w,X=N-2*w+D,j=N-w;return new g(l._x*I+v._x*V+h._x*X+E._x*j,l._y*I+v._y*V+h._y*X+E._y*j,l._z*I+v._z*V+h._z*X+E._z*j,l._w*I+v._w*V+h._w*X+E._w*j)},g}(),T=function(){function g(){this._isIdentity=!1,this._isIdentityDirty=!0,this._isIdentity3x2=!0,this._isIdentity3x2Dirty=!0,this.updateFlag=-1,M.a.MatrixTrackPrecisionChange&&M.a.MatrixTrackedMatrices.push(this),this._m=new M.a.MatrixCurrentType(16),this._updateIdentityStatus(!1)}return Object.defineProperty(g,"Use64Bits",{get:function(){return M.a.MatrixUse64Bits},enumerable:!1,configurable:!0}),Object.defineProperty(g.prototype,"m",{get:function(){return this._m},enumerable:!1,configurable:!0}),g.prototype._markAsUpdated=function(){this.updateFlag=g._updateFlagSeed++,this._isIdentity=!1,this._isIdentity3x2=!1,this._isIdentityDirty=!0,this._isIdentity3x2Dirty=!0},g.prototype._updateIdentityStatus=function(l,h,v,E){h===void 0&&(h=!1),v===void 0&&(v=!1),E===void 0&&(E=!0),this.updateFlag=g._updateFlagSeed++,this._isIdentity=l,this._isIdentity3x2=l||v,this._isIdentityDirty=!this._isIdentity&&h,this._isIdentity3x2Dirty=!this._isIdentity3x2&&E},g.prototype.isIdentity=function(){if(this._isIdentityDirty){this._isIdentityDirty=!1;var l=this._m;this._isIdentity=l[0]===1&&l[1]===0&&l[2]===0&&l[3]===0&&l[4]===0&&l[5]===1&&l[6]===0&&l[7]===0&&l[8]===0&&l[9]===0&&l[10]===1&&l[11]===0&&l[12]===0&&l[13]===0&&l[14]===0&&l[15]===1}return this._isIdentity},g.prototype.isIdentityAs3x2=function(){return this._isIdentity3x2Dirty&&(this._isIdentity3x2Dirty=!1,this._m[0]!==1||this._m[5]!==1||this._m[15]!==1||this._m[1]!==0||this._m[2]!==0||this._m[3]!==0||this._m[4]!==0||this._m[6]!==0||this._m[7]!==0||this._m[8]!==0||this._m[9]!==0||this._m[10]!==0||this._m[11]!==0||this._m[12]!==0||this._m[13]!==0||this._m[14]!==0?this._isIdentity3x2=!1:this._isIdentity3x2=!0),this._isIdentity3x2},g.prototype.determinant=function(){if(this._isIdentity===!0)return 1;var l=this._m,h=l[0],v=l[1],E=l[2],D=l[3],w=l[4],N=l[5],I=l[6],V=l[7],X=l[8],j=l[9],ne=l[10],te=l[11],de=l[12],pe=l[13],ae=l[14],ee=l[15],K=ne*ee-ae*te,$=j*ee-pe*te,L=j*ae-pe*ne,G=X*ee-de*te,Q=X*ae-ne*de,oe=X*pe-de*j;return h*+(N*K-I*$+V*L)+v*-(w*K-I*G+V*Q)+E*+(w*$-N*G+V*oe)+D*-(w*L-N*Q+I*oe)},g.prototype.toArray=function(){return this._m},g.prototype.asArray=function(){return this._m},g.prototype.invert=function(){return this.invertToRef(this),this},g.prototype.reset=function(){return g.FromValuesToRef(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,this),this._updateIdentityStatus(!1),this},g.prototype.add=function(l){var h=new g;return this.addToRef(l,h),h},g.prototype.addToRef=function(l,h){for(var v=this._m,E=h._m,D=l.m,w=0;w<16;w++)E[w]=v[w]+D[w];return h._markAsUpdated(),this},g.prototype.addToSelf=function(l){for(var h=this._m,v=l.m,E=0;E<16;E++)h[E]+=v[E];return this._markAsUpdated(),this},g.prototype.invertToRef=function(l){if(this._isIdentity===!0)return g.IdentityToRef(l),this;var h=this._m,v=h[0],E=h[1],D=h[2],w=h[3],N=h[4],I=h[5],V=h[6],X=h[7],j=h[8],ne=h[9],te=h[10],de=h[11],pe=h[12],ae=h[13],ee=h[14],K=h[15],$=te*K-ee*de,L=ne*K-ae*de,G=ne*ee-ae*te,Q=j*K-pe*de,oe=j*ee-te*pe,re=j*ae-pe*ne,Y=+(I*$-V*L+X*G),k=-(N*$-V*Q+X*oe),H=+(N*L-I*Q+X*re),Z=-(N*G-I*oe+V*re),W=v*Y+E*k+D*H+w*Z;if(W===0)return l.copyFrom(this),this;var q=1/W,he=V*K-ee*X,ge=I*K-ae*X,me=I*ee-ae*V,_e=N*K-pe*X,be=N*ee-pe*V,Pe=N*ae-pe*I,ye=V*de-te*X,Be=I*de-ne*X,ke=I*te-ne*V,We=N*de-j*X,je=N*te-j*V,He=N*ne-j*I,Qe=-(E*$-D*L+w*G),Ge=+(v*$-D*Q+w*oe),nt=-(v*L-E*Q+w*re),$e=+(v*G-E*oe+D*re),ct=+(E*he-D*ge+w*me),st=-(v*he-D*_e+w*be),mt=+(v*ge-E*_e+w*Pe),St=-(v*me-E*be+D*Pe),wt=-(E*ye-D*Be+w*ke),It=+(v*ye-D*We+w*je),Pt=-(v*Be-E*We+w*He),Ot=+(v*ke-E*je+D*He);return g.FromValuesToRef(Y*q,Qe*q,ct*q,wt*q,k*q,Ge*q,st*q,It*q,H*q,nt*q,mt*q,Pt*q,Z*q,$e*q,St*q,Ot*q,l),this},g.prototype.addAtIndex=function(l,h){return this._m[l]+=h,this._markAsUpdated(),this},g.prototype.multiplyAtIndex=function(l,h){return this._m[l]*=h,this._markAsUpdated(),this},g.prototype.setTranslationFromFloats=function(l,h,v){return this._m[12]=l,this._m[13]=h,this._m[14]=v,this._markAsUpdated(),this},g.prototype.addTranslationFromFloats=function(l,h,v){return this._m[12]+=l,this._m[13]+=h,this._m[14]+=v,this._markAsUpdated(),this},g.prototype.setTranslation=function(l){return this.setTranslationFromFloats(l._x,l._y,l._z)},g.prototype.getTranslation=function(){return new P(this._m[12],this._m[13],this._m[14])},g.prototype.getTranslationToRef=function(l){return l.x=this._m[12],l.y=this._m[13],l.z=this._m[14],this},g.prototype.removeRotationAndScaling=function(){var l=this.m;return g.FromValuesToRef(1,0,0,0,0,1,0,0,0,0,1,0,l[12],l[13],l[14],l[15],this),this._updateIdentityStatus(l[12]===0&&l[13]===0&&l[14]===0&&l[15]===1),this},g.prototype.multiply=function(l){var h=new g;return this.multiplyToRef(l,h),h},g.prototype.copyFrom=function(l){l.copyToArray(this._m);var h=l;return this._updateIdentityStatus(h._isIdentity,h._isIdentityDirty,h._isIdentity3x2,h._isIdentity3x2Dirty),this},g.prototype.copyToArray=function(l,h){h===void 0&&(h=0);var v=this._m;return l[h]=v[0],l[h+1]=v[1],l[h+2]=v[2],l[h+3]=v[3],l[h+4]=v[4],l[h+5]=v[5],l[h+6]=v[6],l[h+7]=v[7],l[h+8]=v[8],l[h+9]=v[9],l[h+10]=v[10],l[h+11]=v[11],l[h+12]=v[12],l[h+13]=v[13],l[h+14]=v[14],l[h+15]=v[15],this},g.prototype.multiplyToRef=function(l,h){return this._isIdentity?(h.copyFrom(l),this):l._isIdentity?(h.copyFrom(this),this):(this.multiplyToArray(l,h._m,0),h._markAsUpdated(),this)},g.prototype.multiplyToArray=function(l,h,v){var E=this._m,D=l.m,w=E[0],N=E[1],I=E[2],V=E[3],X=E[4],j=E[5],ne=E[6],te=E[7],de=E[8],pe=E[9],ae=E[10],ee=E[11],K=E[12],$=E[13],L=E[14],G=E[15],Q=D[0],oe=D[1],re=D[2],Y=D[3],k=D[4],H=D[5],Z=D[6],W=D[7],q=D[8],he=D[9],ge=D[10],me=D[11],_e=D[12],be=D[13],Pe=D[14],ye=D[15];return h[v]=w*Q+N*k+I*q+V*_e,h[v+1]=w*oe+N*H+I*he+V*be,h[v+2]=w*re+N*Z+I*ge+V*Pe,h[v+3]=w*Y+N*W+I*me+V*ye,h[v+4]=X*Q+j*k+ne*q+te*_e,h[v+5]=X*oe+j*H+ne*he+te*be,h[v+6]=X*re+j*Z+ne*ge+te*Pe,h[v+7]=X*Y+j*W+ne*me+te*ye,h[v+8]=de*Q+pe*k+ae*q+ee*_e,h[v+9]=de*oe+pe*H+ae*he+ee*be,h[v+10]=de*re+pe*Z+ae*ge+ee*Pe,h[v+11]=de*Y+pe*W+ae*me+ee*ye,h[v+12]=K*Q+$*k+L*q+G*_e,h[v+13]=K*oe+$*H+L*he+G*be,h[v+14]=K*re+$*Z+L*ge+G*Pe,h[v+15]=K*Y+$*W+L*me+G*ye,this},g.prototype.equals=function(l){var h=l;if(!h)return!1;if((this._isIdentity||h._isIdentity)&&!this._isIdentityDirty&&!h._isIdentityDirty)return this._isIdentity&&h._isIdentity;var v=this.m,E=h.m;return v[0]===E[0]&&v[1]===E[1]&&v[2]===E[2]&&v[3]===E[3]&&v[4]===E[4]&&v[5]===E[5]&&v[6]===E[6]&&v[7]===E[7]&&v[8]===E[8]&&v[9]===E[9]&&v[10]===E[10]&&v[11]===E[11]&&v[12]===E[12]&&v[13]===E[13]&&v[14]===E[14]&&v[15]===E[15]},g.prototype.clone=function(){var l=new g;return l.copyFrom(this),l},g.prototype.getClassName=function(){return"Matrix"},g.prototype.getHashCode=function(){for(var l=0|this._m[0],h=1;h<16;h++)l=397*l^(0|this._m[h]);return l},g.prototype.decompose=function(l,h,v){if(this._isIdentity)return v&&v.setAll(0),l&&l.setAll(1),h&&h.copyFromFloats(0,0,0,1),!0;var E=this._m;if(v&&v.copyFromFloats(E[12],E[13],E[14]),(l=l||A.Vector3[0]).x=Math.sqrt(E[0]*E[0]+E[1]*E[1]+E[2]*E[2]),l.y=Math.sqrt(E[4]*E[4]+E[5]*E[5]+E[6]*E[6]),l.z=Math.sqrt(E[8]*E[8]+E[9]*E[9]+E[10]*E[10]),this.determinant()<=0&&(l.y*=-1),l._x===0||l._y===0||l._z===0)return h&&h.copyFromFloats(0,0,0,1),!1;if(h){var D=1/l._x,w=1/l._y,N=1/l._z;g.FromValuesToRef(E[0]*D,E[1]*D,E[2]*D,0,E[4]*w,E[5]*w,E[6]*w,0,E[8]*N,E[9]*N,E[10]*N,0,0,0,0,1,A.Matrix[0]),c.FromRotationMatrixToRef(A.Matrix[0],h)}return!0},g.prototype.getRow=function(l){if(l<0||l>3)return null;var h=4*l;return new m(this._m[h+0],this._m[h+1],this._m[h+2],this._m[h+3])},g.prototype.setRow=function(l,h){return this.setRowFromFloats(l,h.x,h.y,h.z,h.w)},g.prototype.transpose=function(){return g.Transpose(this)},g.prototype.transposeToRef=function(l){return g.TransposeToRef(this,l),this},g.prototype.setRowFromFloats=function(l,h,v,E,D){if(l<0||l>3)return this;var w=4*l;return this._m[w+0]=h,this._m[w+1]=v,this._m[w+2]=E,this._m[w+3]=D,this._markAsUpdated(),this},g.prototype.scale=function(l){var h=new g;return this.scaleToRef(l,h),h},g.prototype.scaleToRef=function(l,h){for(var v=0;v<16;v++)h._m[v]=this._m[v]*l;return h._markAsUpdated(),this},g.prototype.scaleAndAddToRef=function(l,h){for(var v=0;v<16;v++)h._m[v]+=this._m[v]*l;return h._markAsUpdated(),this},g.prototype.toNormalMatrix=function(l){var h=A.Matrix[0];this.invertToRef(h),h.transposeToRef(l);var v=l._m;g.FromValuesToRef(v[0],v[1],v[2],0,v[4],v[5],v[6],0,v[8],v[9],v[10],0,0,0,0,1,l)},g.prototype.getRotationMatrix=function(){var l=new g;return this.getRotationMatrixToRef(l),l},g.prototype.getRotationMatrixToRef=function(l){var h=A.Vector3[0];if(!this.decompose(h))return g.IdentityToRef(l),this;var v=this._m,E=1/h._x,D=1/h._y,w=1/h._z;return g.FromValuesToRef(v[0]*E,v[1]*E,v[2]*E,0,v[4]*D,v[5]*D,v[6]*D,0,v[8]*w,v[9]*w,v[10]*w,0,0,0,0,1,l),this},g.prototype.toggleModelMatrixHandInPlace=function(){var l=this._m;l[2]*=-1,l[6]*=-1,l[8]*=-1,l[9]*=-1,l[14]*=-1,this._markAsUpdated()},g.prototype.toggleProjectionMatrixHandInPlace=function(){var l=this._m;l[8]*=-1,l[9]*=-1,l[10]*=-1,l[11]*=-1,this._markAsUpdated()},g.FromArray=function(l,h){h===void 0&&(h=0);var v=new g;return g.FromArrayToRef(l,h,v),v},g.FromArrayToRef=function(l,h,v){for(var E=0;E<16;E++)v._m[E]=l[E+h];v._markAsUpdated()},g.FromFloat32ArrayToRefScaled=function(l,h,v,E){for(var D=0;D<16;D++)E._m[D]=l[D+h]*v;E._markAsUpdated()},Object.defineProperty(g,"IdentityReadOnly",{get:function(){return g._identityReadOnly},enumerable:!1,configurable:!0}),g.FromValuesToRef=function(l,h,v,E,D,w,N,I,V,X,j,ne,te,de,pe,ae,ee){var K=ee._m;K[0]=l,K[1]=h,K[2]=v,K[3]=E,K[4]=D,K[5]=w,K[6]=N,K[7]=I,K[8]=V,K[9]=X,K[10]=j,K[11]=ne,K[12]=te,K[13]=de,K[14]=pe,K[15]=ae,ee._markAsUpdated()},g.FromValues=function(l,h,v,E,D,w,N,I,V,X,j,ne,te,de,pe,ae){var ee=new g,K=ee._m;return K[0]=l,K[1]=h,K[2]=v,K[3]=E,K[4]=D,K[5]=w,K[6]=N,K[7]=I,K[8]=V,K[9]=X,K[10]=j,K[11]=ne,K[12]=te,K[13]=de,K[14]=pe,K[15]=ae,ee._markAsUpdated(),ee},g.Compose=function(l,h,v){var E=new g;return g.ComposeToRef(l,h,v,E),E},g.ComposeToRef=function(l,h,v,E){var D=E._m,w=h._x,N=h._y,I=h._z,V=h._w,X=w+w,j=N+N,ne=I+I,te=w*X,de=w*j,pe=w*ne,ae=N*j,ee=N*ne,K=I*ne,$=V*X,L=V*j,G=V*ne,Q=l._x,oe=l._y,re=l._z;D[0]=(1-(ae+K))*Q,D[1]=(de+G)*Q,D[2]=(pe-L)*Q,D[3]=0,D[4]=(de-G)*oe,D[5]=(1-(te+K))*oe,D[6]=(ee+$)*oe,D[7]=0,D[8]=(pe+L)*re,D[9]=(ee-$)*re,D[10]=(1-(te+ae))*re,D[11]=0,D[12]=v._x,D[13]=v._y,D[14]=v._z,D[15]=1,E._markAsUpdated()},g.Identity=function(){var l=g.FromValues(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1);return l._updateIdentityStatus(!0),l},g.IdentityToRef=function(l){g.FromValuesToRef(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,l),l._updateIdentityStatus(!0)},g.Zero=function(){var l=g.FromValues(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);return l._updateIdentityStatus(!1),l},g.RotationX=function(l){var h=new g;return g.RotationXToRef(l,h),h},g.Invert=function(l){var h=new g;return l.invertToRef(h),h},g.RotationXToRef=function(l,h){var v=Math.sin(l),E=Math.cos(l);g.FromValuesToRef(1,0,0,0,0,E,v,0,0,-v,E,0,0,0,0,1,h),h._updateIdentityStatus(E===1&&v===0)},g.RotationY=function(l){var h=new g;return g.RotationYToRef(l,h),h},g.RotationYToRef=function(l,h){var v=Math.sin(l),E=Math.cos(l);g.FromValuesToRef(E,0,-v,0,0,1,0,0,v,0,E,0,0,0,0,1,h),h._updateIdentityStatus(E===1&&v===0)},g.RotationZ=function(l){var h=new g;return g.RotationZToRef(l,h),h},g.RotationZToRef=function(l,h){var v=Math.sin(l),E=Math.cos(l);g.FromValuesToRef(E,v,0,0,-v,E,0,0,0,0,1,0,0,0,0,1,h),h._updateIdentityStatus(E===1&&v===0)},g.RotationAxis=function(l,h){var v=new g;return g.RotationAxisToRef(l,h,v),v},g.RotationAxisToRef=function(l,h,v){var E=Math.sin(-h),D=Math.cos(-h),w=1-D;l.normalize();var N=v._m;N[0]=l._x*l._x*w+D,N[1]=l._x*l._y*w-l._z*E,N[2]=l._x*l._z*w+l._y*E,N[3]=0,N[4]=l._y*l._x*w+l._z*E,N[5]=l._y*l._y*w+D,N[6]=l._y*l._z*w-l._x*E,N[7]=0,N[8]=l._z*l._x*w-l._y*E,N[9]=l._z*l._y*w+l._x*E,N[10]=l._z*l._z*w+D,N[11]=0,N[12]=0,N[13]=0,N[14]=0,N[15]=1,v._markAsUpdated()},g.RotationAlignToRef=function(l,h,v){var E=P.Cross(h,l),D=P.Dot(h,l),w=1/(1+D),N=v._m;N[0]=E._x*E._x*w+D,N[1]=E._y*E._x*w-E._z,N[2]=E._z*E._x*w+E._y,N[3]=0,N[4]=E._x*E._y*w+E._z,N[5]=E._y*E._y*w+D,N[6]=E._z*E._y*w-E._x,N[7]=0,N[8]=E._x*E._z*w-E._y,N[9]=E._y*E._z*w+E._x,N[10]=E._z*E._z*w+D,N[11]=0,N[12]=0,N[13]=0,N[14]=0,N[15]=1,v._markAsUpdated()},g.RotationYawPitchRoll=function(l,h,v){var E=new g;return g.RotationYawPitchRollToRef(l,h,v,E),E},g.RotationYawPitchRollToRef=function(l,h,v,E){c.RotationYawPitchRollToRef(l,h,v,A.Quaternion[0]),A.Quaternion[0].toRotationMatrix(E)},g.Scaling=function(l,h,v){var E=new g;return g.ScalingToRef(l,h,v,E),E},g.ScalingToRef=function(l,h,v,E){g.FromValuesToRef(l,0,0,0,0,h,0,0,0,0,v,0,0,0,0,1,E),E._updateIdentityStatus(l===1&&h===1&&v===1)},g.Translation=function(l,h,v){var E=new g;return g.TranslationToRef(l,h,v,E),E},g.TranslationToRef=function(l,h,v,E){g.FromValuesToRef(1,0,0,0,0,1,0,0,0,0,1,0,l,h,v,1,E),E._updateIdentityStatus(l===0&&h===0&&v===0)},g.Lerp=function(l,h,v){var E=new g;return g.LerpToRef(l,h,v,E),E},g.LerpToRef=function(l,h,v,E){for(var D=E._m,w=l.m,N=h.m,I=0;I<16;I++)D[I]=w[I]*(1-v)+N[I]*v;E._markAsUpdated()},g.DecomposeLerp=function(l,h,v){var E=new g;return g.DecomposeLerpToRef(l,h,v,E),E},g.DecomposeLerpToRef=function(l,h,v,E){var D=A.Vector3[0],w=A.Quaternion[0],N=A.Vector3[1];l.decompose(D,w,N);var I=A.Vector3[2],V=A.Quaternion[1],X=A.Vector3[3];h.decompose(I,V,X);var j=A.Vector3[4];P.LerpToRef(D,I,v,j);var ne=A.Quaternion[2];c.SlerpToRef(w,V,v,ne);var te=A.Vector3[5];P.LerpToRef(N,X,v,te),g.ComposeToRef(j,ne,te,E)},g.LookAtLH=function(l,h,v){var E=new g;return g.LookAtLHToRef(l,h,v,E),E},g.LookAtLHToRef=function(l,h,v,E){var D=A.Vector3[0],w=A.Vector3[1],N=A.Vector3[2];h.subtractToRef(l,N),N.normalize(),P.CrossToRef(v,N,D);var I=D.lengthSquared();I===0?D.x=1:D.normalizeFromLength(Math.sqrt(I)),P.CrossToRef(N,D,w),w.normalize();var V=-P.Dot(D,l),X=-P.Dot(w,l),j=-P.Dot(N,l);g.FromValuesToRef(D._x,w._x,N._x,0,D._y,w._y,N._y,0,D._z,w._z,N._z,0,V,X,j,1,E)},g.LookAtRH=function(l,h,v){var E=new g;return g.LookAtRHToRef(l,h,v,E),E},g.LookAtRHToRef=function(l,h,v,E){var D=A.Vector3[0],w=A.Vector3[1],N=A.Vector3[2];l.subtractToRef(h,N),N.normalize(),P.CrossToRef(v,N,D);var I=D.lengthSquared();I===0?D.x=1:D.normalizeFromLength(Math.sqrt(I)),P.CrossToRef(N,D,w),w.normalize();var V=-P.Dot(D,l),X=-P.Dot(w,l),j=-P.Dot(N,l);g.FromValuesToRef(D._x,w._x,N._x,0,D._y,w._y,N._y,0,D._z,w._z,N._z,0,V,X,j,1,E)},g.OrthoLH=function(l,h,v,E){var D=new g;return g.OrthoLHToRef(l,h,v,E,D),D},g.OrthoLHToRef=function(l,h,v,E,D){var w=2/l,N=2/h,I=2/(E-v),V=-(E+v)/(E-v);g.FromValuesToRef(w,0,0,0,0,N,0,0,0,0,I,0,0,0,V,1,D),D._updateIdentityStatus(w===1&&N===1&&I===1&&V===0)},g.OrthoOffCenterLH=function(l,h,v,E,D,w){var N=new g;return g.OrthoOffCenterLHToRef(l,h,v,E,D,w,N),N},g.OrthoOffCenterLHToRef=function(l,h,v,E,D,w,N){var I=2/(h-l),V=2/(E-v),X=2/(w-D),j=-(w+D)/(w-D),ne=(l+h)/(l-h),te=(E+v)/(v-E);g.FromValuesToRef(I,0,0,0,0,V,0,0,0,0,X,0,ne,te,j,1,N),N._markAsUpdated()},g.OrthoOffCenterRH=function(l,h,v,E,D,w){var N=new g;return g.OrthoOffCenterRHToRef(l,h,v,E,D,w,N),N},g.OrthoOffCenterRHToRef=function(l,h,v,E,D,w,N){g.OrthoOffCenterLHToRef(l,h,v,E,D,w,N),N._m[10]*=-1},g.PerspectiveLH=function(l,h,v,E){var D=new g,w=2*v/l,N=2*v/h,I=(E+v)/(E-v),V=-2*E*v/(E-v);return g.FromValuesToRef(w,0,0,0,0,N,0,0,0,0,I,1,0,0,V,0,D),D._updateIdentityStatus(!1),D},g.PerspectiveFovLH=function(l,h,v,E){var D=new g;return g.PerspectiveFovLHToRef(l,h,v,E,D),D},g.PerspectiveFovLHToRef=function(l,h,v,E,D,w){w===void 0&&(w=!0);var N=v,I=E,V=1/Math.tan(.5*l),X=w?V/h:V,j=w?V:V*h,ne=(I+N)/(I-N),te=-2*I*N/(I-N);g.FromValuesToRef(X,0,0,0,0,j,0,0,0,0,ne,1,0,0,te,0,D),D._updateIdentityStatus(!1)},g.PerspectiveFovReverseLHToRef=function(l,h,v,E,D,w){w===void 0&&(w=!0);var N=1/Math.tan(.5*l),I=w?N/h:N,V=w?N:N*h;g.FromValuesToRef(I,0,0,0,0,V,0,0,0,0,-v,1,0,0,1,0,D),D._updateIdentityStatus(!1)},g.PerspectiveFovRH=function(l,h,v,E){var D=new g;return g.PerspectiveFovRHToRef(l,h,v,E,D),D},g.PerspectiveFovRHToRef=function(l,h,v,E,D,w){w===void 0&&(w=!0);var N=v,I=E,V=1/Math.tan(.5*l),X=w?V/h:V,j=w?V:V*h,ne=-(I+N)/(I-N),te=-2*I*N/(I-N);g.FromValuesToRef(X,0,0,0,0,j,0,0,0,0,ne,-1,0,0,te,0,D),D._updateIdentityStatus(!1)},g.PerspectiveFovReverseRHToRef=function(l,h,v,E,D,w){w===void 0&&(w=!0);var N=1/Math.tan(.5*l),I=w?N/h:N,V=w?N:N*h;g.FromValuesToRef(I,0,0,0,0,V,0,0,0,0,-v,-1,0,0,-1,0,D),D._updateIdentityStatus(!1)},g.PerspectiveFovWebVRToRef=function(l,h,v,E,D){D===void 0&&(D=!1);var w=D?-1:1,N=Math.tan(l.upDegrees*Math.PI/180),I=Math.tan(l.downDegrees*Math.PI/180),V=Math.tan(l.leftDegrees*Math.PI/180),X=Math.tan(l.rightDegrees*Math.PI/180),j=2/(V+X),ne=2/(N+I),te=E._m;te[0]=j,te[1]=te[2]=te[3]=te[4]=0,te[5]=ne,te[6]=te[7]=0,te[8]=(V-X)*j*.5,te[9]=-(N-I)*ne*.5,te[10]=-v/(h-v),te[11]=1*w,te[12]=te[13]=te[15]=0,te[14]=-2*v*h/(v-h),E._markAsUpdated()},g.GetFinalMatrix=function(l,h,v,E,D,w){var N=l.width,I=l.height,V=l.x,X=l.y,j=g.FromValues(N/2,0,0,0,0,-I/2,0,0,0,0,w-D,0,V+N/2,I/2+X,D,1),ne=A.Matrix[0];return h.multiplyToRef(v,ne),ne.multiplyToRef(E,ne),ne.multiply(j)},g.GetAsMatrix2x2=function(l){var h=l.m,v=[h[0],h[1],h[4],h[5]];return M.a.MatrixUse64Bits?v:new Float32Array(v)},g.GetAsMatrix3x3=function(l){var h=l.m,v=[h[0],h[1],h[2],h[4],h[5],h[6],h[8],h[9],h[10]];return M.a.MatrixUse64Bits?v:new Float32Array(v)},g.Transpose=function(l){var h=new g;return g.TransposeToRef(l,h),h},g.TransposeToRef=function(l,h){var v=h._m,E=l.m;v[0]=E[0],v[1]=E[4],v[2]=E[8],v[3]=E[12],v[4]=E[1],v[5]=E[5],v[6]=E[9],v[7]=E[13],v[8]=E[2],v[9]=E[6],v[10]=E[10],v[11]=E[14],v[12]=E[3],v[13]=E[7],v[14]=E[11],v[15]=E[15],h._updateIdentityStatus(l._isIdentity,l._isIdentityDirty)},g.Reflection=function(l){var h=new g;return g.ReflectionToRef(l,h),h},g.ReflectionToRef=function(l,h){l.normalize();var v=l.normal.x,E=l.normal.y,D=l.normal.z,w=-2*v,N=-2*E,I=-2*D;g.FromValuesToRef(w*v+1,N*v,I*v,0,w*E,N*E+1,I*E,0,w*D,N*D,I*D+1,0,w*l.d,N*l.d,I*l.d,1,h)},g.FromXYZAxesToRef=function(l,h,v,E){g.FromValuesToRef(l._x,l._y,l._z,0,h._x,h._y,h._z,0,v._x,v._y,v._z,0,0,0,0,1,E)},g.FromQuaternionToRef=function(l,h){var v=l._x*l._x,E=l._y*l._y,D=l._z*l._z,w=l._x*l._y,N=l._z*l._w,I=l._z*l._x,V=l._y*l._w,X=l._y*l._z,j=l._x*l._w;h._m[0]=1-2*(E+D),h._m[1]=2*(w+N),h._m[2]=2*(I-V),h._m[3]=0,h._m[4]=2*(w-N),h._m[5]=1-2*(D+v),h._m[6]=2*(X+j),h._m[7]=0,h._m[8]=2*(I+V),h._m[9]=2*(X-j),h._m[10]=1-2*(E+v),h._m[11]=0,h._m[12]=0,h._m[13]=0,h._m[14]=0,h._m[15]=1,h._markAsUpdated()},g._updateFlagSeed=0,g._identityReadOnly=g.Identity(),g}(),A=function(){function g(){}return g.Vector3=R.a.BuildArray(6,P.Zero),g.Matrix=R.a.BuildArray(2,T.Identity),g.Quaternion=R.a.BuildArray(3,c.Zero),g}(),S=function(){function g(){}return g.Vector2=R.a.BuildArray(3,C.Zero),g.Vector3=R.a.BuildArray(13,P.Zero),g.Vector4=R.a.BuildArray(3,m.Zero),g.Quaternion=R.a.BuildArray(2,c.Zero),g.Matrix=R.a.BuildArray(8,T.Identity),g}();u.a.RegisteredTypes["BABYLON.Vector2"]=C,u.a.RegisteredTypes["BABYLON.Vector3"]=P,u.a.RegisteredTypes["BABYLON.Vector4"]=m,u.a.RegisteredTypes["BABYLON.Matrix"]=T},function(Ie,y,f){f.d(y,"d",function(){return _}),f.d(y,"a",function(){return R}),f.d(y,"c",function(){return u}),f.d(y,"b",function(){return M}),f.d(y,"e",function(){return C}),f.d(y,"f",function(){return P});/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */var U=function(m,c){return(U=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(T,A){T.__proto__=A}||function(T,A){for(var S in A)Object.prototype.hasOwnProperty.call(A,S)&&(T[S]=A[S])})(m,c)};function _(m,c){if(typeof c!="function"&&c!==null)throw new TypeError("Class extends value "+String(c)+" is not a constructor or null");function T(){this.constructor=m}U(m,c),m.prototype=c===null?Object.create(c):(T.prototype=c.prototype,new T)}var R=function(){return(R=Object.assign||function(m){for(var c,T=1,A=arguments.length;T=0;h--)(S=m[h])&&(l=(g<3?S(l):g>3?S(c,T,l):S(c,T))||l);return g>3&&l&&Object.defineProperty(c,T,l),l}function M(m,c,T,A){return new(T||(T=Promise))(function(S,g){function l(E){try{v(A.next(E))}catch(D){g(D)}}function h(E){try{v(A.throw(E))}catch(D){g(D)}}function v(E){var D;E.done?S(E.value):(D=E.value,D instanceof T?D:new T(function(w){w(D)})).then(l,h)}v((A=A.apply(m,c||[])).next())})}function C(m,c){var T,A,S,g,l={label:0,sent:function(){if(1&S[0])throw S[1];return S[1]},trys:[],ops:[]};return g={next:h(0),throw:h(1),return:h(2)},typeof Symbol=="function"&&(g[Symbol.iterator]=function(){return this}),g;function h(v){return function(E){return function(D){if(T)throw new TypeError("Generator is already executing.");for(;l;)try{if(T=1,A&&(S=2&D[0]?A.return:D[0]?A.throw||((S=A.return)&&S.call(A),0):A.next)&&!(S=S.call(A,D[1])).done)return S;switch(A=0,S&&(D=[2&D[0],S.value]),D[0]){case 0:case 1:S=D;break;case 4:return l.label++,{value:D[1],done:!1};case 5:l.label++,A=D[1],D=[0];continue;case 7:D=l.ops.pop(),l.trys.pop();continue;default:if(S=l.trys,!((S=S.length>0&&S[S.length-1])||D[0]!==6&&D[0]!==2)){l=0;continue}if(D[0]===3&&(!S||D[1]>S[0]&&D[1]=2?"WEBGL2":"WEBGL1"};this._loadShader(N,"Vertex","",function(de){w._rawVertexSourceCode=de,w._loadShader(I,"Fragment","Pixel",function(pe){w._rawFragmentSourceCode=pe,M.a.Process(de,te,function(ae){V&&(ae=V("vertex",ae)),te.isFragment=!0,M.a.Process(pe,te,function(ee){V&&(ee=V("fragment",ee)),w._useFinalCode(ae,ee,m)},w._engine)},w._engine)})})}return Object.defineProperty(P.prototype,"onBindObservable",{get:function(){return this._onBindObservable||(this._onBindObservable=new U.c),this._onBindObservable},enumerable:!1,configurable:!0}),P.prototype._useFinalCode=function(m,c,T){if(T){var A=T.vertexElement||T.vertex||T.spectorName||T,S=T.fragmentElement||T.fragment||T.spectorName||T;this._vertexSourceCode="#define SHADER_NAME vertex:"+A+` +`+m,this._fragmentSourceCode="#define SHADER_NAME fragment:"+S+` +`+c}else this._vertexSourceCode=m,this._fragmentSourceCode=c;this._prepareEffect()},Object.defineProperty(P.prototype,"key",{get:function(){return this._key},enumerable:!1,configurable:!0}),P.prototype.isReady=function(){try{return this._isReadyInternal()}catch{return!1}},P.prototype._isReadyInternal=function(){return!!this._isReady||!!this._pipelineContext&&this._pipelineContext.isReady},P.prototype.getEngine=function(){return this._engine},P.prototype.getPipelineContext=function(){return this._pipelineContext},P.prototype.getAttributesNames=function(){return this._attributesNames},P.prototype.getAttributeLocation=function(m){return this._attributes[m]},P.prototype.getAttributeLocationByName=function(m){return this._attributeLocationByName[m]},P.prototype.getAttributesCount=function(){return this._attributes.length},P.prototype.getUniformIndex=function(m){return this._uniformsNames.indexOf(m)},P.prototype.getUniform=function(m){return this._uniforms[m]},P.prototype.getSamplers=function(){return this._samplerList},P.prototype.getUniformNames=function(){return this._uniformsNames},P.prototype.getUniformBuffersNames=function(){return this._uniformBuffersNamesList},P.prototype.getIndexParameters=function(){return this._indexParameters},P.prototype.getCompilationError=function(){return this._compilationError},P.prototype.allFallbacksProcessed=function(){return this._allFallbacksProcessed},P.prototype.executeWhenCompiled=function(m){var c=this;this.isReady()?m(this):(this.onCompileObservable.add(function(T){m(T)}),this._pipelineContext&&!this._pipelineContext.isAsync||setTimeout(function(){c._checkIsReady(null)},16))},P.prototype._checkIsReady=function(m){var c=this;try{if(this._isReadyInternal())return}catch(T){return void this._processCompilationErrors(T,m)}setTimeout(function(){c._checkIsReady(m)},16)},P.prototype._loadShader=function(m,c,T,A){var S;if(typeof HTMLElement<"u"&&m instanceof HTMLElement)return void A(R.a.GetDOMTextContent(m));m.substr(0,7)!=="source:"?m.substr(0,7)!=="base64:"?P.ShadersStore[m+c+"Shader"]?A(P.ShadersStore[m+c+"Shader"]):T&&P.ShadersStore[m+T+"Shader"]?A(P.ShadersStore[m+T+"Shader"]):(S=m[0]==="."||m[0]==="/"||m.indexOf("http")>-1?m:P.ShadersRepository+m,this._engine._loadFile(S+"."+c.toLowerCase()+".fx",A)):A(window.atob(m.substr(7))):A(m.substr(7))},Object.defineProperty(P.prototype,"vertexSourceCode",{get:function(){return this._vertexSourceCodeOverride&&this._fragmentSourceCodeOverride?this._vertexSourceCodeOverride:this._vertexSourceCode},enumerable:!1,configurable:!0}),Object.defineProperty(P.prototype,"fragmentSourceCode",{get:function(){return this._vertexSourceCodeOverride&&this._fragmentSourceCodeOverride?this._fragmentSourceCodeOverride:this._fragmentSourceCode},enumerable:!1,configurable:!0}),Object.defineProperty(P.prototype,"rawVertexSourceCode",{get:function(){return this._rawVertexSourceCode},enumerable:!1,configurable:!0}),Object.defineProperty(P.prototype,"rawFragmentSourceCode",{get:function(){return this._rawFragmentSourceCode},enumerable:!1,configurable:!0}),P.prototype._rebuildProgram=function(m,c,T,A){var S=this;this._isReady=!1,this._vertexSourceCodeOverride=m,this._fragmentSourceCodeOverride=c,this.onError=function(g,l){A&&A(l)},this.onCompiled=function(){var g=S.getEngine().scenes;if(g)for(var l=0;l=l&&(S="Offending line ["+l+"] in "+(T?"fragment":"vertex")+" code: "+h[l-1])}}return[m,S]},P.prototype._processCompilationErrors=function(m,c){var T,A,S,g,l;c===void 0&&(c=null),this._compilationError=m.message;var h=this._attributesNames,v=this._fallbacks;if(u.a.Error("Unable to compile effect:"),u.a.Error("Uniforms: "+this._uniformsNames.map(function(N){return" "+N})),u.a.Error("Attributes: "+h.map(function(N){return" "+N})),u.a.Error(`Defines:\r +`+this.defines),P.LogShaderCodeOnCompilationError){var E=null,D=null,w=null;!((S=this._pipelineContext)===null||S===void 0)&&S._getVertexShaderCode()&&(w=(T=this._getShaderCodeAndErrorLine(this._pipelineContext._getVertexShaderCode(),this._compilationError,!1))[0],E=T[1],w&&(u.a.Error("Vertex code:"),u.a.Error(w))),!((g=this._pipelineContext)===null||g===void 0)&&g._getFragmentShaderCode()&&(w=(A=this._getShaderCodeAndErrorLine((l=this._pipelineContext)===null||l===void 0?void 0:l._getFragmentShaderCode(),this._compilationError,!0))[0],D=A[1],w&&(u.a.Error("Fragment code:"),u.a.Error(w))),E&&u.a.Error(E),D&&u.a.Error(D)}u.a.Error("Error: "+this._compilationError),c&&(this._pipelineContext=c,this._isReady=!0,this.onError&&this.onError(this,this._compilationError),this.onErrorObservable.notifyObservers(this)),v?(this._pipelineContext=null,v.hasMoreFallbacks?(this._allFallbacksProcessed=!1,u.a.Error("Trying next fallback."),this.defines=v.reduce(this.defines,this),this._prepareEffect()):(this._allFallbacksProcessed=!0,this.onError&&this.onError(this,this._compilationError),this.onErrorObservable.notifyObservers(this),this.onErrorObservable.clear(),this._fallbacks&&this._fallbacks.unBindMesh())):this._allFallbacksProcessed=!0},Object.defineProperty(P.prototype,"isSupported",{get:function(){return this._compilationError===""},enumerable:!1,configurable:!0}),P.prototype._bindTexture=function(m,c){this._engine._bindTexture(this._samplers[m],c)},P.prototype.setTexture=function(m,c){this._engine.setTexture(this._samplers[m],this._uniforms[m],c)},P.prototype.setDepthStencilTexture=function(m,c){this._engine.setDepthStencilTexture(this._samplers[m],this._uniforms[m],c)},P.prototype.setTextureArray=function(m,c){var T=m+"Ex";if(this._samplerList.indexOf(T+"0")===-1){for(var A=this._samplerList.indexOf(m),S=1;S0},M.prototype.clear=function(){this._observers=new Array,this._onObserverAdded=null},M.prototype.clone=function(){var C=new M;return C._observers=this._observers.slice(0),C},M.prototype.hasSpecificMask=function(C){C===void 0&&(C=-1);for(var P=0,m=this._observers;P0},enumerable:!1,configurable:!0}),Object.defineProperty(L.prototype,"hasThinInstances",{get:function(){var G;return((G=this._thinInstanceDataStorage.instancesCount)!==null&&G!==void 0?G:0)>0},enumerable:!1,configurable:!0}),Object.defineProperty(L.prototype,"morphTargetManager",{get:function(){return this._internalMeshDataInfo._morphTargetManager},set:function(G){this._internalMeshDataInfo._morphTargetManager!==G&&(this._internalMeshDataInfo._morphTargetManager=G,this._syncGeometryWithMorphTargetManager())},enumerable:!1,configurable:!0}),Object.defineProperty(L.prototype,"source",{get:function(){return this._internalMeshDataInfo._source},enumerable:!1,configurable:!0}),Object.defineProperty(L.prototype,"cloneMeshMap",{get:function(){return this._internalMeshDataInfo.meshMap},enumerable:!1,configurable:!0}),Object.defineProperty(L.prototype,"isUnIndexed",{get:function(){return this._unIndexed},set:function(G){this._unIndexed!==G&&(this._unIndexed=G,this._markSubMeshesAsAttributesDirty())},enumerable:!1,configurable:!0}),Object.defineProperty(L.prototype,"worldMatrixInstancedBuffer",{get:function(){return this._instanceDataStorage.instancesData},enumerable:!1,configurable:!0}),Object.defineProperty(L.prototype,"manualUpdateOfWorldMatrixInstancedBuffer",{get:function(){return this._instanceDataStorage.manualUpdate},set:function(G){this._instanceDataStorage.manualUpdate=G},enumerable:!1,configurable:!0}),L.prototype.instantiateHierarchy=function(G,Q,oe){G===void 0&&(G=null);var re=!(this.getTotalVertices()>0)||Q&&Q.doNotInstantiate?this.clone("Clone of "+(this.name||this.id),G||this.parent,!0):this.createInstance("instance of "+(this.name||this.id));re&&(re.parent=G||this.parent,re.position=this.position.clone(),re.scaling=this.scaling.clone(),this.rotationQuaternion?re.rotationQuaternion=this.rotationQuaternion.clone():re.rotation=this.rotation.clone(),oe&&oe(this,re));for(var Y=0,k=this.getChildTransformNodes(!0);Y0},enumerable:!1,configurable:!0}),L.prototype.getLODLevels=function(){return this._internalMeshDataInfo._LODLevels},L.prototype._sortLODLevels=function(){this._internalMeshDataInfo._LODLevels.sort(function(G,Q){return G.distanceQ.distance?-1:0})},L.prototype.addLODLevel=function(G,Q){if(Q&&Q._masterMesh)return N.a.Warn("You cannot use a mesh as LOD level twice"),this;var oe=new j.a(G,Q);return this._internalMeshDataInfo._LODLevels.push(oe),Q&&(Q._masterMesh=this),this._sortLODLevels(),this},L.prototype.getLODLevelAtDistance=function(G){for(var Q=this._internalMeshDataInfo,oe=0;oeY)return this.onLODLevelSelection&&this.onLODLevelSelection(Y,this,this),this;for(var k=0;k0||this.hasThinInstances);this.computeWorldMatrix();var ge=this.material||q.defaultMaterial;if(ge){if(ge._storeEffectOnSubMeshes)for(var me=0,_e=this.subMeshes;me<_e.length;me++){var be=(je=_e[me]).getMaterial();if(be){if(be._storeEffectOnSubMeshes){if(!be.isReadyForSubMesh(this,je,he))return!1}else if(!be.isReady(this,he))return!1}}else if(!ge.isReady(this,he))return!1}for(var Pe=0,ye=this.lightSources;Pe0){var oe=this.getIndices();if(!oe)return null;var re=oe.length,Y=!1;if(G)Y=!0;else for(var k=0,H=this.subMeshes;kre){Y=!0;break}if(Z.verticesStart+Z.verticesCount>Q){Y=!0;break}}if(!Y)return this.subMeshes[0]}return this.releaseSubMeshes(),new g.a(0,0,Q,0,this.getTotalIndices(),this)},L.prototype.subdivide=function(G){if(!(G<1)){for(var Q=this.getTotalIndices(),oe=Q/G|0,re=0;oe%3!=0;)oe++;this.releaseSubMeshes();for(var Y=0;Y=Q);Y++)g.a.CreateFromIndices(0,re,Y===G-1?Q-re:oe,this),re+=oe;this.synchronizeInstances()}},L.prototype.setVerticesData=function(G,Q,oe,re){if(oe===void 0&&(oe=!1),this._geometry)this._geometry.setVerticesData(G,Q,oe,re);else{var Y=new T.a;Y.set(Q,G);var k=this.getScene();new A.a(A.a.RandomId(),k,Y,oe,this)}return this},L.prototype.removeVerticesData=function(G){this._geometry&&this._geometry.removeVerticesData(G)},L.prototype.markVerticesDataAsUpdatable=function(G,Q){Q===void 0&&(Q=!0);var oe=this.getVertexBuffer(G);oe&&oe.isUpdatable()!==Q&&this.setVerticesData(G,this.getVerticesData(G),Q)},L.prototype.setVerticesBuffer=function(G){return this._geometry||(this._geometry=A.a.CreateGeometryForMesh(this)),this._geometry.setVerticesBuffer(G),this},L.prototype.updateVerticesData=function(G,Q,oe,re){return this._geometry?(re?(this.makeGeometryUnique(),this.updateVerticesData(G,Q,oe,!1)):this._geometry.updateVerticesData(G,Q,oe),this):this},L.prototype.updateMeshPositions=function(G,Q){Q===void 0&&(Q=!0);var oe=this.getVerticesData(c.b.PositionKind);if(!oe)return this;if(G(oe),this.updateVerticesData(c.b.PositionKind,oe,!1,!1),Q){var re=this.getIndices(),Y=this.getVerticesData(c.b.NormalKind);if(!Y)return this;T.a.ComputeNormals(oe,re,Y),this.updateVerticesData(c.b.NormalKind,Y,!1,!1)}return this},L.prototype.makeGeometryUnique=function(){if(!this._geometry)return this;if(this._geometry.meshes.length===1)return this;var G=this._geometry,Q=this._geometry.copy(A.a.RandomId());return G.releaseForMesh(this,!0),Q.applyToMesh(this),this},L.prototype.setIndices=function(G,Q,oe){if(Q===void 0&&(Q=null),oe===void 0&&(oe=!1),this._geometry)this._geometry.setIndices(G,Q,oe);else{var re=new T.a;re.indices=G;var Y=this.getScene();new A.a(A.a.RandomId(),Y,re,oe,this)}return this},L.prototype.updateIndices=function(G,Q,oe){return oe===void 0&&(oe=!1),this._geometry?(this._geometry.updateIndices(G,Q,oe),this):this},L.prototype.toLeftHanded=function(){return this._geometry?(this._geometry.toLeftHanded(),this):this},L.prototype._bind=function(G,Q,oe){if(!this._geometry)return this;var re,Y=this.getScene().getEngine();if(this._unIndexed)re=null;else switch(oe){case h.a.PointFillMode:re=null;break;case h.a.WireFrameFillMode:re=G._getLinesIndexBuffer(this.getIndices(),Y);break;default:case h.a.TriangleFillMode:re=this._geometry.getIndexBuffer()}return this._geometry._bind(Q,re),this},L.prototype._draw=function(G,Q,oe){if(!this._geometry||!this._geometry.getVertexBuffers()||!this._unIndexed&&!this._geometry.getIndexBuffer())return this;this._internalMeshDataInfo._onBeforeDrawObservable&&this._internalMeshDataInfo._onBeforeDrawObservable.notifyObservers(this);var re=this.getScene().getEngine();return this._unIndexed||Q==h.a.PointFillMode?re.drawArraysType(Q,G.verticesStart,G.verticesCount,oe):Q==h.a.WireFrameFillMode?re.drawElementsType(Q,0,G._linesIndexCount,oe):re.drawElementsType(Q,G.indexStart,G.indexCount,oe),this},L.prototype.registerBeforeRender=function(G){return this.onBeforeRenderObservable.add(G),this},L.prototype.unregisterBeforeRender=function(G){return this.onBeforeRenderObservable.removeCallback(G),this},L.prototype.registerAfterRender=function(G){return this.onAfterRenderObservable.add(G),this},L.prototype.unregisterAfterRender=function(G){return this.onAfterRenderObservable.removeCallback(G),this},L.prototype._getInstancesRenderList=function(G,Q){if(Q===void 0&&(Q=!1),this._instanceDataStorage.isFrozen&&this._instanceDataStorage.previousBatch)return this._instanceDataStorage.previousBatch;var oe=this.getScene(),re=oe._isInIntermediateRendering(),Y=re?this._internalAbstractMeshDataInfo._onlyForInstancesIntermediate:this._internalAbstractMeshDataInfo._onlyForInstances,k=this._instanceDataStorage.batchCache;if(k.mustReturn=!1,k.renderSelf[G]=Q||!Y&&this.isEnabled()&&this.isVisible,k.visibleInstances[G]=null,this._instanceDataStorage.visibleInstances&&!Q){var H=this._instanceDataStorage.visibleInstances,Z=oe.getRenderId(),W=re?H.intermediateDefaultRenderId:H.defaultRenderId;k.visibleInstances[G]=H[Z],!k.visibleInstances[G]&&W&&(k.visibleInstances[G]=H[W])}return k.hardwareInstancedRendering[G]=!Q&&this._instanceDataStorage.hardwareInstancedRendering&&k.visibleInstances[G]!==null&&k.visibleInstances[G]!==void 0,this._instanceDataStorage.previousBatch=k,k},L.prototype._renderWithInstances=function(G,Q,oe,re,Y){var k=oe.visibleInstances[G._id];if(!k)return this;for(var H=this._instanceDataStorage,Z=H.instancesBufferSize,W=H.instancesBuffer,q=16*(k.length+1)*4;H.instancesBufferSizehe&&re++,be!==0&&me++,ge+=be,he=be}if(W[me]++,me>k&&(k=me),ge===0)Y++;else{var Pe=1/ge,ye=0;for(_e=0;_e.001&&H++}}var Be=this.skeleton.bones.length,ke=this.getVerticesData(c.b.MatricesIndicesKind),We=this.getVerticesData(c.b.MatricesIndicesExtraKind),je=0;for(q=0;q=Be||He<0)&&je++}return{skinned:!0,valid:Y===0&&H===0&&je===0,report:"Number of Weights = "+oe/4+` +Maximum influences = `+k+` +Missing Weights = `+Y+` +Not Sorted = `+re+` +Not Normalized = `+H+` +WeightCounts = [`+W+`] +Number of bones = `+Be+` +Bad Bone Indices = `+je}},L.prototype._checkDelayState=function(){var G=this.getScene();return this._geometry?this._geometry.load(G):this.delayLoadState===D.a.DELAYLOADSTATE_NOTLOADED&&(this.delayLoadState=D.a.DELAYLOADSTATE_LOADING,this._queueLoad(G)),this},L.prototype._queueLoad=function(G){var Q=this;G._addPendingData(this);var oe=this.delayLoadingFile.indexOf(".babylonbinarymeshdata")!==-1;return R.b.LoadFile(this.delayLoadingFile,function(re){re instanceof ArrayBuffer?Q._delayLoadingFunction(re,Q):Q._delayLoadingFunction(JSON.parse(re),Q),Q.instances.forEach(function(Y){Y.refreshBoundingInfo(),Y._syncSubMeshes()}),Q.delayLoadState=D.a.DELAYLOADSTATE_LOADED,G._removePendingData(Q)},function(){},G.offlineProvider,oe),this},L.prototype.isInFrustum=function(G){return this.delayLoadState!==D.a.DELAYLOADSTATE_LOADING&&!!$.prototype.isInFrustum.call(this,G)&&(this._checkDelayState(),!0)},L.prototype.setMaterialByID=function(G){var Q,oe=this.getScene().materials;for(Q=oe.length-1;Q>-1;Q--)if(oe[Q].id===G)return this.material=oe[Q],this;var re=this.getScene().multiMaterials;for(Q=re.length-1;Q>-1;Q--)if(re[Q].id===G)return this.material=re[Q],this;return this},L.prototype.getAnimatables=function(){var G=new Array;return this.material&&G.push(this.material),this.skeleton&&G.push(this.skeleton),G},L.prototype.bakeTransformIntoVertices=function(G){if(!this.isVerticesDataPresent(c.b.PositionKind))return this;var Q=this.subMeshes.splice(0);this._resetPointsArrayCache();var oe,re=this.getVerticesData(c.b.PositionKind),Y=new Array;for(oe=0;oe1)for(var oe=0,re=Q.meshes.slice(0);oe-1&&(re.morphTargetManager=Q.getMorphTargetManagerById(G.morphTargetManagerId)),G.skeletonId!==void 0&&G.skeletonId!==null&&(re.skeleton=Q.getLastSkeletonByID(G.skeletonId),G.numBoneInfluencers&&(re.numBoneInfluencers=G.numBoneInfluencers)),G.animations){for(var Y=0;Y4,he=q?this.getVerticesData(c.b.MatricesIndicesExtraKind):null,ge=q?this.getVerticesData(c.b.MatricesWeightsExtraKind):null,me=G.getTransformMatrices(this),_e=C.e.Zero(),be=new C.a,Pe=new C.a,ye=0,Be=0;Be0&&(C.a.FromFloat32ArrayToRefScaled(me,Math.floor(16*H[ye+W]),ke,Pe),be.addToSelf(Pe));if(q)for(W=0;W<4;W++)(ke=ge[ye+W])>0&&(C.a.FromFloat32ArrayToRefScaled(me,Math.floor(16*he[ye+W]),ke,Pe),be.addToSelf(Pe));C.e.TransformCoordinatesFromFloatsToRef(oe._sourcePositions[Be],oe._sourcePositions[Be+1],oe._sourcePositions[Be+2],be,_e),_e.toArray(Y,Be),Q&&(C.e.TransformNormalFromFloatsToRef(oe._sourceNormals[Be],oe._sourceNormals[Be+1],oe._sourceNormals[Be+2],be,_e),_e.toArray(k,Be)),be.reset()}return this.updateVerticesData(c.b.PositionKind,Y),Q&&this.updateVerticesData(c.b.NormalKind,k),this},L.MinMax=function(G){var Q=null,oe=null;return G.forEach(function(re){var Y=re.getBoundingInfo().boundingBox;Q&&oe?(Q.minimizeInPlace(Y.minimumWorld),oe.maximizeInPlace(Y.maximumWorld)):(Q=Y.minimumWorld,oe=Y.maximumWorld)}),Q&&oe?{min:Q,max:oe}:{min:C.e.Zero(),max:C.e.Zero()}},L.Center=function(G){var Q=G instanceof Array?L.MinMax(G):G;return C.e.Center(Q.min,Q.max)},L.MergeMeshes=function(G,Q,oe,re,Y,k){var H;if(Q===void 0&&(Q=!0),!oe){var Z=0;for(H=0;H=65536)return N.a.Warn("Cannot merge meshes because resulting mesh will have more than 65536 vertices. Please use allow32BitsIndices = true to use 32 bits indices"),null}if(k){var W,q,he=null;Y=!1}var ge,me=new Array,_e=new Array,be=null,Pe=new Array,ye=null;for(H=0;H
    ";_._AddLogEntry(M)},_._WarnDisabled=function(R){},_._WarnEnabled=function(R){var u=_._FormatMessage(R);console.warn("BJS - "+u);var M="
    "+u+"

    ";_._AddLogEntry(M)},_._ErrorDisabled=function(R){},_._ErrorEnabled=function(R){_.errorsCount++;var u=_._FormatMessage(R);console.error("BJS - "+u);var M="
    "+u+"

    ";_._AddLogEntry(M)},Object.defineProperty(_,"LogCache",{get:function(){return _._LogCache},enumerable:!1,configurable:!0}),_.ClearLogCache=function(){_._LogCache="",_.errorsCount=0},Object.defineProperty(_,"LogLevels",{set:function(R){(R&_.MessageLogLevel)===_.MessageLogLevel?_.Log=_._LogEnabled:_.Log=_._LogDisabled,(R&_.WarningLogLevel)===_.WarningLogLevel?_.Warn=_._WarnEnabled:_.Warn=_._WarnDisabled,(R&_.ErrorLogLevel)===_.ErrorLogLevel?_.Error=_._ErrorEnabled:_.Error=_._ErrorDisabled},enumerable:!1,configurable:!0}),_.NoneLogLevel=0,_.MessageLogLevel=1,_.WarningLogLevel=2,_.ErrorLogLevel=4,_.AllLogLevel=7,_._LogCache="",_.errorsCount=0,_.Log=_._LogEnabled,_.Warn=_._WarnEnabled,_.Error=_._ErrorEnabled,_}()},function(Ie,y,f){f.d(y,"a",function(){return M}),f.d(y,"b",function(){return C}),f.d(y,"c",function(){return P});var U=f(14),_=f(28),R=f(44),u=f(11),M=function(){function m(c,T,A){c===void 0&&(c=0),T===void 0&&(T=0),A===void 0&&(A=0),this.r=c,this.g=T,this.b=A}return m.prototype.toString=function(){return"{R: "+this.r+" G:"+this.g+" B:"+this.b+"}"},m.prototype.getClassName=function(){return"Color3"},m.prototype.getHashCode=function(){var c=255*this.r|0;return c=397*(c=397*c^(255*this.g|0))^(255*this.b|0)},m.prototype.toArray=function(c,T){return T===void 0&&(T=0),c[T]=this.r,c[T+1]=this.g,c[T+2]=this.b,this},m.prototype.fromArray=function(c,T){return T===void 0&&(T=0),m.FromArrayToRef(c,T,this),this},m.prototype.toColor4=function(c){return c===void 0&&(c=1),new C(this.r,this.g,this.b,c)},m.prototype.asArray=function(){var c=new Array;return this.toArray(c,0),c},m.prototype.toLuminance=function(){return .3*this.r+.59*this.g+.11*this.b},m.prototype.multiply=function(c){return new m(this.r*c.r,this.g*c.g,this.b*c.b)},m.prototype.multiplyToRef=function(c,T){return T.r=this.r*c.r,T.g=this.g*c.g,T.b=this.b*c.b,this},m.prototype.equals=function(c){return c&&this.r===c.r&&this.g===c.g&&this.b===c.b},m.prototype.equalsFloats=function(c,T,A){return this.r===c&&this.g===T&&this.b===A},m.prototype.scale=function(c){return new m(this.r*c,this.g*c,this.b*c)},m.prototype.scaleToRef=function(c,T){return T.r=this.r*c,T.g=this.g*c,T.b=this.b*c,this},m.prototype.scaleAndAddToRef=function(c,T){return T.r+=this.r*c,T.g+=this.g*c,T.b+=this.b*c,this},m.prototype.clampToRef=function(c,T,A){return c===void 0&&(c=0),T===void 0&&(T=1),A.r=U.a.Clamp(this.r,c,T),A.g=U.a.Clamp(this.g,c,T),A.b=U.a.Clamp(this.b,c,T),this},m.prototype.add=function(c){return new m(this.r+c.r,this.g+c.g,this.b+c.b)},m.prototype.addToRef=function(c,T){return T.r=this.r+c.r,T.g=this.g+c.g,T.b=this.b+c.b,this},m.prototype.subtract=function(c){return new m(this.r-c.r,this.g-c.g,this.b-c.b)},m.prototype.subtractToRef=function(c,T){return T.r=this.r-c.r,T.g=this.g-c.g,T.b=this.b-c.b,this},m.prototype.clone=function(){return new m(this.r,this.g,this.b)},m.prototype.copyFrom=function(c){return this.r=c.r,this.g=c.g,this.b=c.b,this},m.prototype.copyFromFloats=function(c,T,A){return this.r=c,this.g=T,this.b=A,this},m.prototype.set=function(c,T,A){return this.copyFromFloats(c,T,A)},m.prototype.toHexString=function(){var c=255*this.r|0,T=255*this.g|0,A=255*this.b|0;return"#"+U.a.ToHex(c)+U.a.ToHex(T)+U.a.ToHex(A)},m.prototype.toLinearSpace=function(){var c=new m;return this.toLinearSpaceToRef(c),c},m.prototype.toHSV=function(){var c=new m;return this.toHSVToRef(c),c},m.prototype.toHSVToRef=function(c){var T=this.r,A=this.g,S=this.b,g=Math.max(T,A,S),l=Math.min(T,A,S),h=0,v=0,E=g,D=g-l;g!==0&&(v=D/g),g!=l&&(g==T?(h=(A-S)/D,A=0&&l<=1?(v=g,E=h):l>=1&&l<=2?(v=h,E=g):l>=2&&l<=3?(E=g,D=h):l>=3&&l<=4?(E=h,D=g):l>=4&&l<=5?(v=h,D=g):l>=5&&l<=6&&(v=g,D=h);var w=A-g;S.set(v+w,E+w,D+w)},m.FromHexString=function(c){if(c.substring(0,1)!=="#"||c.length!==7)return new m(0,0,0);var T=parseInt(c.substring(1,3),16),A=parseInt(c.substring(3,5),16),S=parseInt(c.substring(5,7),16);return m.FromInts(T,A,S)},m.FromArray=function(c,T){return T===void 0&&(T=0),new m(c[T],c[T+1],c[T+2])},m.FromArrayToRef=function(c,T,A){T===void 0&&(T=0),A.r=c[T],A.g=c[T+1],A.b=c[T+2]},m.FromInts=function(c,T,A){return new m(c/255,T/255,A/255)},m.Lerp=function(c,T,A){var S=new m(0,0,0);return m.LerpToRef(c,T,A,S),S},m.LerpToRef=function(c,T,A,S){S.r=c.r+(T.r-c.r)*A,S.g=c.g+(T.g-c.g)*A,S.b=c.b+(T.b-c.b)*A},m.Red=function(){return new m(1,0,0)},m.Green=function(){return new m(0,1,0)},m.Blue=function(){return new m(0,0,1)},m.Black=function(){return new m(0,0,0)},Object.defineProperty(m,"BlackReadOnly",{get:function(){return m._BlackReadOnly},enumerable:!1,configurable:!0}),m.White=function(){return new m(1,1,1)},m.Purple=function(){return new m(.5,0,.5)},m.Magenta=function(){return new m(1,0,1)},m.Yellow=function(){return new m(1,1,0)},m.Gray=function(){return new m(.5,.5,.5)},m.Teal=function(){return new m(0,1,1)},m.Random=function(){return new m(Math.random(),Math.random(),Math.random())},m._BlackReadOnly=m.Black(),m}(),C=function(){function m(c,T,A,S){c===void 0&&(c=0),T===void 0&&(T=0),A===void 0&&(A=0),S===void 0&&(S=1),this.r=c,this.g=T,this.b=A,this.a=S}return m.prototype.addInPlace=function(c){return this.r+=c.r,this.g+=c.g,this.b+=c.b,this.a+=c.a,this},m.prototype.asArray=function(){var c=new Array;return this.toArray(c,0),c},m.prototype.toArray=function(c,T){return T===void 0&&(T=0),c[T]=this.r,c[T+1]=this.g,c[T+2]=this.b,c[T+3]=this.a,this},m.prototype.fromArray=function(c,T){return T===void 0&&(T=0),m.FromArrayToRef(c,T,this),this},m.prototype.equals=function(c){return c&&this.r===c.r&&this.g===c.g&&this.b===c.b&&this.a===c.a},m.prototype.add=function(c){return new m(this.r+c.r,this.g+c.g,this.b+c.b,this.a+c.a)},m.prototype.subtract=function(c){return new m(this.r-c.r,this.g-c.g,this.b-c.b,this.a-c.a)},m.prototype.subtractToRef=function(c,T){return T.r=this.r-c.r,T.g=this.g-c.g,T.b=this.b-c.b,T.a=this.a-c.a,this},m.prototype.scale=function(c){return new m(this.r*c,this.g*c,this.b*c,this.a*c)},m.prototype.scaleToRef=function(c,T){return T.r=this.r*c,T.g=this.g*c,T.b=this.b*c,T.a=this.a*c,this},m.prototype.scaleAndAddToRef=function(c,T){return T.r+=this.r*c,T.g+=this.g*c,T.b+=this.b*c,T.a+=this.a*c,this},m.prototype.clampToRef=function(c,T,A){return c===void 0&&(c=0),T===void 0&&(T=1),A.r=U.a.Clamp(this.r,c,T),A.g=U.a.Clamp(this.g,c,T),A.b=U.a.Clamp(this.b,c,T),A.a=U.a.Clamp(this.a,c,T),this},m.prototype.multiply=function(c){return new m(this.r*c.r,this.g*c.g,this.b*c.b,this.a*c.a)},m.prototype.multiplyToRef=function(c,T){return T.r=this.r*c.r,T.g=this.g*c.g,T.b=this.b*c.b,T.a=this.a*c.a,T},m.prototype.toString=function(){return"{R: "+this.r+" G:"+this.g+" B:"+this.b+" A:"+this.a+"}"},m.prototype.getClassName=function(){return"Color4"},m.prototype.getHashCode=function(){var c=255*this.r|0;return c=397*(c=397*(c=397*c^(255*this.g|0))^(255*this.b|0))^(255*this.a|0)},m.prototype.clone=function(){return new m(this.r,this.g,this.b,this.a)},m.prototype.copyFrom=function(c){return this.r=c.r,this.g=c.g,this.b=c.b,this.a=c.a,this},m.prototype.copyFromFloats=function(c,T,A,S){return this.r=c,this.g=T,this.b=A,this.a=S,this},m.prototype.set=function(c,T,A,S){return this.copyFromFloats(c,T,A,S)},m.prototype.toHexString=function(c){c===void 0&&(c=!1);var T=255*this.r|0,A=255*this.g|0,S=255*this.b|0;if(c)return"#"+U.a.ToHex(T)+U.a.ToHex(A)+U.a.ToHex(S);var g=255*this.a|0;return"#"+U.a.ToHex(T)+U.a.ToHex(A)+U.a.ToHex(S)+U.a.ToHex(g)},m.prototype.toLinearSpace=function(){var c=new m;return this.toLinearSpaceToRef(c),c},m.prototype.toLinearSpaceToRef=function(c){return c.r=Math.pow(this.r,_.c),c.g=Math.pow(this.g,_.c),c.b=Math.pow(this.b,_.c),c.a=this.a,this},m.prototype.toGammaSpace=function(){var c=new m;return this.toGammaSpaceToRef(c),c},m.prototype.toGammaSpaceToRef=function(c){return c.r=Math.pow(this.r,_.b),c.g=Math.pow(this.g,_.b),c.b=Math.pow(this.b,_.b),c.a=this.a,this},m.FromHexString=function(c){if(c.substring(0,1)!=="#"||c.length!==9)return new m(0,0,0,0);var T=parseInt(c.substring(1,3),16),A=parseInt(c.substring(3,5),16),S=parseInt(c.substring(5,7),16),g=parseInt(c.substring(7,9),16);return m.FromInts(T,A,S,g)},m.Lerp=function(c,T,A){var S=new m(0,0,0,0);return m.LerpToRef(c,T,A,S),S},m.LerpToRef=function(c,T,A,S){S.r=c.r+(T.r-c.r)*A,S.g=c.g+(T.g-c.g)*A,S.b=c.b+(T.b-c.b)*A,S.a=c.a+(T.a-c.a)*A},m.FromColor3=function(c,T){return T===void 0&&(T=1),new m(c.r,c.g,c.b,T)},m.FromArray=function(c,T){return T===void 0&&(T=0),new m(c[T],c[T+1],c[T+2],c[T+3])},m.FromArrayToRef=function(c,T,A){T===void 0&&(T=0),A.r=c[T],A.g=c[T+1],A.b=c[T+2],A.a=c[T+3]},m.FromInts=function(c,T,A,S){return new m(c/255,T/255,A/255,S/255)},m.CheckColors4=function(c,T){if(c.length===3*T){for(var A=[],S=0;S0?E.name:w+E.name,(S.a.StartsWith(E.url,"data:")||v.UseSerializedUrlIfAny&&E.url)&&(ae=E.url),X=new v(ae,D,!j,E.invertY,void 0,I)}return X},E,D);return V},v.CreateFromBase64String=function(E,D,w,N,I,V,X,j,ne){return V===void 0&&(V=v.TRILINEAR_SAMPLINGMODE),X===void 0&&(X=null),j===void 0&&(j=null),ne===void 0&&(ne=C.a.TEXTUREFORMAT_RGBA),new v("data:"+D,w,N,I,V,X,j,E,!1,ne)},v.LoadFromDataString=function(E,D,w,N,I,V,X,j,ne,te){return N===void 0&&(N=!1),I===void 0&&(I=!1),V===void 0&&(V=!0),X===void 0&&(X=v.TRILINEAR_SAMPLINGMODE),j===void 0&&(j=null),ne===void 0&&(ne=null),te===void 0&&(te=C.a.TEXTUREFORMAT_RGBA),E.substr(0,5)!=="data:"&&(E="data:"+E),new v(E,w,I,V,X,j,ne,D,N,te)},v.SerializeBuffers=!0,v.ForceSerializeBuffers=!1,v._CubeTextureParser=function(E,D,w){throw m.a.WarnImport("CubeTexture")},v._CreateMirror=function(E,D,w,N){throw m.a.WarnImport("MirrorTexture")},v._CreateRenderTargetTexture=function(E,D,w,N){throw m.a.WarnImport("RenderTargetTexture")},v.NEAREST_SAMPLINGMODE=C.a.TEXTURE_NEAREST_SAMPLINGMODE,v.NEAREST_NEAREST_MIPLINEAR=C.a.TEXTURE_NEAREST_NEAREST_MIPLINEAR,v.BILINEAR_SAMPLINGMODE=C.a.TEXTURE_BILINEAR_SAMPLINGMODE,v.LINEAR_LINEAR_MIPNEAREST=C.a.TEXTURE_LINEAR_LINEAR_MIPNEAREST,v.TRILINEAR_SAMPLINGMODE=C.a.TEXTURE_TRILINEAR_SAMPLINGMODE,v.LINEAR_LINEAR_MIPLINEAR=C.a.TEXTURE_LINEAR_LINEAR_MIPLINEAR,v.NEAREST_NEAREST_MIPNEAREST=C.a.TEXTURE_NEAREST_NEAREST_MIPNEAREST,v.NEAREST_LINEAR_MIPNEAREST=C.a.TEXTURE_NEAREST_LINEAR_MIPNEAREST,v.NEAREST_LINEAR_MIPLINEAR=C.a.TEXTURE_NEAREST_LINEAR_MIPLINEAR,v.NEAREST_LINEAR=C.a.TEXTURE_NEAREST_LINEAR,v.NEAREST_NEAREST=C.a.TEXTURE_NEAREST_NEAREST,v.LINEAR_NEAREST_MIPNEAREST=C.a.TEXTURE_LINEAR_NEAREST_MIPNEAREST,v.LINEAR_NEAREST_MIPLINEAR=C.a.TEXTURE_LINEAR_NEAREST_MIPLINEAR,v.LINEAR_LINEAR=C.a.TEXTURE_LINEAR_LINEAR,v.LINEAR_NEAREST=C.a.TEXTURE_LINEAR_NEAREST,v.EXPLICIT_MODE=C.a.TEXTURE_EXPLICIT_MODE,v.SPHERICAL_MODE=C.a.TEXTURE_SPHERICAL_MODE,v.PLANAR_MODE=C.a.TEXTURE_PLANAR_MODE,v.CUBIC_MODE=C.a.TEXTURE_CUBIC_MODE,v.PROJECTION_MODE=C.a.TEXTURE_PROJECTION_MODE,v.SKYBOX_MODE=C.a.TEXTURE_SKYBOX_MODE,v.INVCUBIC_MODE=C.a.TEXTURE_INVCUBIC_MODE,v.EQUIRECTANGULAR_MODE=C.a.TEXTURE_EQUIRECTANGULAR_MODE,v.FIXED_EQUIRECTANGULAR_MODE=C.a.TEXTURE_FIXED_EQUIRECTANGULAR_MODE,v.FIXED_EQUIRECTANGULAR_MIRRORED_MODE=C.a.TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE,v.CLAMP_ADDRESSMODE=C.a.TEXTURE_CLAMP_ADDRESSMODE,v.WRAP_ADDRESSMODE=C.a.TEXTURE_WRAP_ADDRESSMODE,v.MIRROR_ADDRESSMODE=C.a.TEXTURE_MIRROR_ADDRESSMODE,v.UseSerializedUrlIfAny=!1,Object(U.c)([Object(_.c)()],v.prototype,"url",void 0),Object(U.c)([Object(_.c)()],v.prototype,"uOffset",void 0),Object(U.c)([Object(_.c)()],v.prototype,"vOffset",void 0),Object(U.c)([Object(_.c)()],v.prototype,"uScale",void 0),Object(U.c)([Object(_.c)()],v.prototype,"vScale",void 0),Object(U.c)([Object(_.c)()],v.prototype,"uAng",void 0),Object(U.c)([Object(_.c)()],v.prototype,"vAng",void 0),Object(U.c)([Object(_.c)()],v.prototype,"wAng",void 0),Object(U.c)([Object(_.c)()],v.prototype,"uRotationCenter",void 0),Object(U.c)([Object(_.c)()],v.prototype,"vRotationCenter",void 0),Object(U.c)([Object(_.c)()],v.prototype,"wRotationCenter",void 0),Object(U.c)([Object(_.c)()],v.prototype,"homogeneousRotationInUVTransform",void 0),Object(U.c)([Object(_.c)()],v.prototype,"isBlocking",null),v}(M.a);P.a.RegisteredTypes["BABYLON.Texture"]=l,_.a._TextureParser=l.Parse},function(Ie,y,f){f.d(y,"a",function(){return U});var U=function(){function _(){}return _.GetClass=function(R){return this.RegisteredTypes&&this.RegisteredTypes[R]?this.RegisteredTypes[R]:null},_.RegisteredTypes={},_}()},function(Ie,y,f){f.d(y,"b",function(){return l}),f.d(y,"c",function(){return h}),f.d(y,"a",function(){return v});var U=f(6),_=f(38),R=f(8),u=f(41),M=f(57),C=f(21),P=f(49),m=f(22),c=f(56),T=f(145),A=f(104),S=f(122),g=f(120),l=function(){function E(){}return Object.defineProperty(E,"BaseUrl",{get:function(){return c.a.BaseUrl},set:function(D){c.a.BaseUrl=D},enumerable:!1,configurable:!0}),Object.defineProperty(E,"DefaultRetryStrategy",{get:function(){return c.a.DefaultRetryStrategy},set:function(D){c.a.DefaultRetryStrategy=D},enumerable:!1,configurable:!0}),Object.defineProperty(E,"CorsBehavior",{get:function(){return c.a.CorsBehavior},set:function(D){c.a.CorsBehavior=D},enumerable:!1,configurable:!0}),Object.defineProperty(E,"UseFallbackTexture",{get:function(){return m.a.UseFallbackTexture},set:function(D){m.a.UseFallbackTexture=D},enumerable:!1,configurable:!0}),Object.defineProperty(E,"RegisteredExternalClasses",{get:function(){return S.a.RegisteredExternalClasses},set:function(D){S.a.RegisteredExternalClasses=D},enumerable:!1,configurable:!0}),Object.defineProperty(E,"fallbackTexture",{get:function(){return m.a.FallbackTexture},set:function(D){m.a.FallbackTexture=D},enumerable:!1,configurable:!0}),E.FetchToRef=function(D,w,N,I,V,X){var j=4*((Math.abs(D)*N%N|0)+(Math.abs(w)*I%I|0)*N);X.r=V[j]/255,X.g=V[j+1]/255,X.b=V[j+2]/255,X.a=V[j+3]/255},E.Mix=function(D,w,N){return D*(1-N)+w*N},E.Instantiate=function(D){return S.a.Instantiate(D)},E.Slice=function(D,w,N){return D.slice?D.slice(w,N):Array.prototype.slice.call(D,w,N)},E.SliceToArray=function(D,w,N){return Array.isArray(D)?D.slice(w,N):Array.prototype.slice.call(D,w,N)},E.SetImmediate=function(D){A.a.SetImmediate(D)},E.IsExponentOfTwo=function(D){var w=1;do w*=2;while(w=D)break;if(N(te),V&&V()){j.breakLoop();break}}j.executeNext()},X)},I)},E}();m.a.FallbackTexture="data:image/jpg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QBmRXhpZgAATU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAAExAAIAAAAQAAAATgAAAAAAAABgAAAAAQAAAGAAAAABcGFpbnQubmV0IDQuMC41AP/bAEMABAIDAwMCBAMDAwQEBAQFCQYFBQUFCwgIBgkNCw0NDQsMDA4QFBEODxMPDAwSGBITFRYXFxcOERkbGRYaFBYXFv/bAEMBBAQEBQUFCgYGChYPDA8WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFv/AABEIAQABAAMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APH6KKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FCiiigD6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++gooooA+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gUKKKKAPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76CiiigD5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BQooooA+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/voKKKKAPl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FCiiigD6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++gooooA+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gUKKKKAPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76CiiigD5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BQooooA+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/voKKKKAPl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FCiiigD6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++gooooA+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gUKKKKAPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76P//Z",T.a.Apply()},function(Ie,y,f){f.d(y,"a",function(){return S});var U=f(1),_=f(6),R=f(38),u=f(22),M=f(21),C=f(26),P=f(2),m=f(146),c=f(55),T=f(88),A=f(8),S=(f(123),f(129),f(124),function(g){function l(h,v,E,D){D===void 0&&(D=!1);var w=g.call(this,h,v,E,D)||this;if(w.enableOfflineSupport=!1,w.disableManifestCheck=!1,w.scenes=new Array,w.onNewSceneAddedObservable=new _.c,w.postProcesses=new Array,w.isPointerLock=!1,w.onResizeObservable=new _.c,w.onCanvasBlurObservable=new _.c,w.onCanvasFocusObservable=new _.c,w.onCanvasPointerOutObservable=new _.c,w.onBeginFrameObservable=new _.c,w.customAnimationFrameRequester=null,w.onEndFrameObservable=new _.c,w.onBeforeShaderCompilationObservable=new _.c,w.onAfterShaderCompilationObservable=new _.c,w._deterministicLockstep=!1,w._lockstepMaxSteps=4,w._timeStep=1/60,w._fps=60,w._deltaTime=0,w._drawCalls=new c.a,w.canvasTabIndex=1,w.disablePerformanceMonitorInBackground=!1,w._performanceMonitor=new m.a,l.Instances.push(w),!h)return w;if(E=w._creationOptions,h.getContext){var N=h;if(w._onCanvasFocus=function(){w.onCanvasFocusObservable.notifyObservers(w)},w._onCanvasBlur=function(){w.onCanvasBlurObservable.notifyObservers(w)},N.addEventListener("focus",w._onCanvasFocus),N.addEventListener("blur",w._onCanvasBlur),w._onBlur=function(){w.disablePerformanceMonitorInBackground&&w._performanceMonitor.disable(),w._windowIsBackground=!0},w._onFocus=function(){w.disablePerformanceMonitorInBackground&&w._performanceMonitor.enable(),w._windowIsBackground=!1},w._onCanvasPointerOut=function(X){w.onCanvasPointerOutObservable.notifyObservers(X)},N.addEventListener("pointerout",w._onCanvasPointerOut),R.a.IsWindowObjectExist()){var I=w.getHostWindow();I.addEventListener("blur",w._onBlur),I.addEventListener("focus",w._onFocus);var V=document;w._onFullscreenChange=function(){V.fullscreen!==void 0?w.isFullscreen=V.fullscreen:V.mozFullScreen!==void 0?w.isFullscreen=V.mozFullScreen:V.webkitIsFullScreen!==void 0?w.isFullscreen=V.webkitIsFullScreen:V.msIsFullScreen!==void 0&&(w.isFullscreen=V.msIsFullScreen),w.isFullscreen&&w._pointerLockRequested&&N&&l._RequestPointerlock(N)},document.addEventListener("fullscreenchange",w._onFullscreenChange,!1),document.addEventListener("mozfullscreenchange",w._onFullscreenChange,!1),document.addEventListener("webkitfullscreenchange",w._onFullscreenChange,!1),document.addEventListener("msfullscreenchange",w._onFullscreenChange,!1),w._onPointerLockChange=function(){w.isPointerLock=V.mozPointerLockElement===N||V.webkitPointerLockElement===N||V.msPointerLockElement===N||V.pointerLockElement===N},document.addEventListener("pointerlockchange",w._onPointerLockChange,!1),document.addEventListener("mspointerlockchange",w._onPointerLockChange,!1),document.addEventListener("mozpointerlockchange",w._onPointerLockChange,!1),document.addEventListener("webkitpointerlockchange",w._onPointerLockChange,!1),!l.audioEngine&&E.audioEngine&&l.AudioEngineFactory&&(l.audioEngine=l.AudioEngineFactory(w.getRenderingCanvas()))}w._connectVREvents(),w.enableOfflineSupport=l.OfflineProviderFactory!==void 0,E.doNotHandleTouchAction||w._disableTouchAction(),w._deterministicLockstep=!!E.deterministicLockstep,w._lockstepMaxSteps=E.lockstepMaxSteps||0,w._timeStep=E.timeStep||1/60}return w._prepareVRComponent(),E.autoEnableWebVR&&w.initWebVR(),w}return Object(U.d)(l,g),Object.defineProperty(l,"NpmPackage",{get:function(){return C.a.NpmPackage},enumerable:!1,configurable:!0}),Object.defineProperty(l,"Version",{get:function(){return C.a.Version},enumerable:!1,configurable:!0}),Object.defineProperty(l,"Instances",{get:function(){return u.a.Instances},enumerable:!1,configurable:!0}),Object.defineProperty(l,"LastCreatedEngine",{get:function(){return u.a.LastCreatedEngine},enumerable:!1,configurable:!0}),Object.defineProperty(l,"LastCreatedScene",{get:function(){return u.a.LastCreatedScene},enumerable:!1,configurable:!0}),l.MarkAllMaterialsAsDirty=function(h,v){for(var E=0;E0?this.customAnimationFrameRequester?(this.customAnimationFrameRequester.requestID=this._queueNewFrame(this.customAnimationFrameRequester.renderFunction||this._boundRenderFunction,this.customAnimationFrameRequester),this._frameHandler=this.customAnimationFrameRequester.requestID):this.isVRPresenting()?this._requestVRFrame():this._frameHandler=this._queueNewFrame(this._boundRenderFunction,this.getHostWindow()):this._renderingQueueLaunched=!1},l.prototype._renderViews=function(){return!1},l.prototype.switchFullscreen=function(h){this.isFullscreen?this.exitFullscreen():this.enterFullscreen(h)},l.prototype.enterFullscreen=function(h){this.isFullscreen||(this._pointerLockRequested=h,this._renderingCanvas&&l._RequestFullscreen(this._renderingCanvas))},l.prototype.exitFullscreen=function(){this.isFullscreen&&l._ExitFullscreen()},l.prototype.enterPointerlock=function(){this._renderingCanvas&&l._RequestPointerlock(this._renderingCanvas)},l.prototype.exitPointerlock=function(){l._ExitPointerlock()},l.prototype.beginFrame=function(){this._measureFps(),this.onBeginFrameObservable.notifyObservers(this),g.prototype.beginFrame.call(this)},l.prototype.endFrame=function(){g.prototype.endFrame.call(this),this._submitVRFrame(),this.onEndFrameObservable.notifyObservers(this)},l.prototype.resize=function(){this.isVRPresenting()||g.prototype.resize.call(this)},l.prototype.setSize=function(h,v){if(!this._renderingCanvas||!g.prototype.setSize.call(this,h,v))return!1;if(this.scenes){for(var E=0;E1&&w){var I=this.createTransformFeedback();this.bindTransformFeedback(I),this.setTranformFeedbackVaryings(N,w),h.transformFeedback=I}return D.linkProgram(N),this.webGLVersion>1&&w&&this.bindTransformFeedback(null),h.context=D,h.vertexShader=v,h.fragmentShader=E,h.isParallelCompiled||this._finalizePipelineContext(h),N},l.prototype._releaseTexture=function(h){g.prototype._releaseTexture.call(this,h),this.scenes.forEach(function(v){v.postProcesses.forEach(function(E){E._outputTexture==h&&(E._outputTexture=null)}),v.cameras.forEach(function(E){E._postProcesses.forEach(function(D){D&&D._outputTexture==h&&(D._outputTexture=null)})})})},l.prototype._rescaleTexture=function(h,v,E,D,w){var N=this;this._gl.texParameteri(this._gl.TEXTURE_2D,this._gl.TEXTURE_MAG_FILTER,this._gl.LINEAR),this._gl.texParameteri(this._gl.TEXTURE_2D,this._gl.TEXTURE_MIN_FILTER,this._gl.LINEAR),this._gl.texParameteri(this._gl.TEXTURE_2D,this._gl.TEXTURE_WRAP_S,this._gl.CLAMP_TO_EDGE),this._gl.texParameteri(this._gl.TEXTURE_2D,this._gl.TEXTURE_WRAP_T,this._gl.CLAMP_TO_EDGE);var I=this.createRenderTargetTexture({width:v.width,height:v.height},{generateMipMaps:!1,type:P.a.TEXTURETYPE_UNSIGNED_INT,samplingMode:P.a.TEXTURE_BILINEAR_SAMPLINGMODE,generateDepthBuffer:!1,generateStencilBuffer:!1});!this._rescalePostProcess&&l._RescalePostProcessFactory&&(this._rescalePostProcess=l._RescalePostProcessFactory(this)),this._rescalePostProcess.getEffect().executeWhenCompiled(function(){N._rescalePostProcess.onApply=function(X){X._bindTexture("textureSampler",h)};var V=E;V||(V=N.scenes[N.scenes.length-1]),V.postProcessManager.directRender([N._rescalePostProcess],I,!0),N._bindTextureDirectly(N._gl.TEXTURE_2D,v,!0),N._gl.copyTexImage2D(N._gl.TEXTURE_2D,0,D,0,0,v.width,v.height,0),N.unBindFramebuffer(I),N._releaseTexture(I),w&&w()})},l.prototype.getFps=function(){return this._fps},l.prototype.getDeltaTime=function(){return this._deltaTime},l.prototype._measureFps=function(){this._performanceMonitor.sampleFrame(),this._fps=this._performanceMonitor.averageFPS,this._deltaTime=this._performanceMonitor.instantaneousFrameTime||0},l.prototype._uploadImageToTexture=function(h,v,E,D){E===void 0&&(E=0),D===void 0&&(D=0);var w=this._gl,N=this._getWebGLTextureType(h.type),I=this._getInternalFormat(h.format),V=this._getRGBABufferInternalSizedFormat(h.type,I),X=h.isCube?w.TEXTURE_CUBE_MAP:w.TEXTURE_2D;this._bindTextureDirectly(X,h,!0),this._unpackFlipY(h.invertY);var j=w.TEXTURE_2D;h.isCube&&(j=w.TEXTURE_CUBE_MAP_POSITIVE_X+E),w.texImage2D(j,D,V,I,N,v),this._bindTextureDirectly(X,null,!0)},l.prototype.updateRenderTargetTextureSampleCount=function(h,v){if(this.webGLVersion<2||!h)return 1;if(h.samples===v)return v;var E=this._gl;if(v=Math.min(v,this.getCaps().maxMSAASamples),h._depthStencilBuffer&&(E.deleteRenderbuffer(h._depthStencilBuffer),h._depthStencilBuffer=null),h._MSAAFramebuffer&&(E.deleteFramebuffer(h._MSAAFramebuffer),h._MSAAFramebuffer=null),h._MSAARenderBuffer&&(E.deleteRenderbuffer(h._MSAARenderBuffer),h._MSAARenderBuffer=null),v>1&&E.renderbufferStorageMultisample){var D=E.createFramebuffer();if(!D)throw new Error("Unable to create multi sampled framebuffer");h._MSAAFramebuffer=D,this._bindUnboundFramebuffer(h._MSAAFramebuffer);var w=E.createRenderbuffer();if(!w)throw new Error("Unable to create multi sampled framebuffer");E.bindRenderbuffer(E.RENDERBUFFER,w),E.renderbufferStorageMultisample(E.RENDERBUFFER,v,this._getRGBAMultiSampleBufferFormat(h.type),h.width,h.height),E.framebufferRenderbuffer(E.FRAMEBUFFER,E.COLOR_ATTACHMENT0,E.RENDERBUFFER,w),h._MSAARenderBuffer=w}else this._bindUnboundFramebuffer(h._framebuffer);return h.samples=v,h._depthStencilBuffer=this._setupFramebufferDepthAttachments(h._generateStencilBuffer,h._generateDepthBuffer,h.width,h.height,v),this._bindUnboundFramebuffer(null),v},l.prototype.updateTextureComparisonFunction=function(h,v){if(this.webGLVersion!==1){var E=this._gl;h.isCube?(this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,h,!0),v===0?(E.texParameteri(E.TEXTURE_CUBE_MAP,E.TEXTURE_COMPARE_FUNC,P.a.LEQUAL),E.texParameteri(E.TEXTURE_CUBE_MAP,E.TEXTURE_COMPARE_MODE,E.NONE)):(E.texParameteri(E.TEXTURE_CUBE_MAP,E.TEXTURE_COMPARE_FUNC,v),E.texParameteri(E.TEXTURE_CUBE_MAP,E.TEXTURE_COMPARE_MODE,E.COMPARE_REF_TO_TEXTURE)),this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,null)):(this._bindTextureDirectly(this._gl.TEXTURE_2D,h,!0),v===0?(E.texParameteri(E.TEXTURE_2D,E.TEXTURE_COMPARE_FUNC,P.a.LEQUAL),E.texParameteri(E.TEXTURE_2D,E.TEXTURE_COMPARE_MODE,E.NONE)):(E.texParameteri(E.TEXTURE_2D,E.TEXTURE_COMPARE_FUNC,v),E.texParameteri(E.TEXTURE_2D,E.TEXTURE_COMPARE_MODE,E.COMPARE_REF_TO_TEXTURE)),this._bindTextureDirectly(this._gl.TEXTURE_2D,null)),h._comparisonFunction=v}else A.a.Error("WebGL 1 does not support texture comparison.")},l.prototype.createInstancesBuffer=function(h){var v=this._gl.createBuffer();if(!v)throw new Error("Unable to create instance buffer");var E=new T.a(v);return E.capacity=h,this.bindArrayBuffer(E),this._gl.bufferData(this._gl.ARRAY_BUFFER,h,this._gl.DYNAMIC_DRAW),E},l.prototype.deleteInstancesBuffer=function(h){this._gl.deleteBuffer(h)},l.prototype._clientWaitAsync=function(h,v,E){v===void 0&&(v=0),E===void 0&&(E=10);var D=this._gl;return new Promise(function(w,N){var I=function(){var V=D.clientWaitSync(h,v,0);V!=D.WAIT_FAILED?V!=D.TIMEOUT_EXPIRED?w():setTimeout(I,E):N()};I()})},l.prototype._readPixelsAsync=function(h,v,E,D,w,N,I){if(this._webGLVersion<2)throw new Error("_readPixelsAsync only work on WebGL2+");var V=this._gl,X=V.createBuffer();V.bindBuffer(V.PIXEL_PACK_BUFFER,X),V.bufferData(V.PIXEL_PACK_BUFFER,I.byteLength,V.STREAM_READ),V.readPixels(h,v,E,D,w,N,0),V.bindBuffer(V.PIXEL_PACK_BUFFER,null);var j=V.fenceSync(V.SYNC_GPU_COMMANDS_COMPLETE,0);return j?(V.flush(),this._clientWaitAsync(j,0,10).then(function(){return V.deleteSync(j),V.bindBuffer(V.PIXEL_PACK_BUFFER,X),V.getBufferSubData(V.PIXEL_PACK_BUFFER,0,I),V.bindBuffer(V.PIXEL_PACK_BUFFER,null),V.deleteBuffer(X),I})):null},l.prototype.dispose=function(){for(this.hideLoadingUI(),this.onNewSceneAddedObservable.clear();this.postProcesses.length;)this.postProcesses[0].dispose();for(this._rescalePostProcess&&this._rescalePostProcess.dispose();this.scenes.length;)this.scenes[0].dispose();l.Instances.length===1&&l.audioEngine&&l.audioEngine.dispose(),this.disableVR(),R.a.IsWindowObjectExist()&&(window.removeEventListener("blur",this._onBlur),window.removeEventListener("focus",this._onFocus),this._renderingCanvas&&(this._renderingCanvas.removeEventListener("focus",this._onCanvasFocus),this._renderingCanvas.removeEventListener("blur",this._onCanvasBlur),this._renderingCanvas.removeEventListener("pointerout",this._onCanvasPointerOut)),R.a.IsDocumentAvailable()&&(document.removeEventListener("fullscreenchange",this._onFullscreenChange),document.removeEventListener("mozfullscreenchange",this._onFullscreenChange),document.removeEventListener("webkitfullscreenchange",this._onFullscreenChange),document.removeEventListener("msfullscreenchange",this._onFullscreenChange),document.removeEventListener("pointerlockchange",this._onPointerLockChange),document.removeEventListener("mspointerlockchange",this._onPointerLockChange),document.removeEventListener("mozpointerlockchange",this._onPointerLockChange),document.removeEventListener("webkitpointerlockchange",this._onPointerLockChange))),g.prototype.dispose.call(this);var h=l.Instances.indexOf(this);h>=0&&l.Instances.splice(h,1),this.onResizeObservable.clear(),this.onCanvasBlurObservable.clear(),this.onCanvasFocusObservable.clear(),this.onCanvasPointerOutObservable.clear(),this.onBeginFrameObservable.clear(),this.onEndFrameObservable.clear()},l.prototype._disableTouchAction=function(){this._renderingCanvas&&this._renderingCanvas.setAttribute&&(this._renderingCanvas.setAttribute("touch-action","none"),this._renderingCanvas.style.touchAction="none",this._renderingCanvas.style.msTouchAction="none")},l.prototype.displayLoadingUI=function(){if(R.a.IsWindowObjectExist()){var h=this.loadingScreen;h&&h.displayLoadingUI()}},l.prototype.hideLoadingUI=function(){if(R.a.IsWindowObjectExist()){var h=this._loadingScreen;h&&h.hideLoadingUI()}},Object.defineProperty(l.prototype,"loadingScreen",{get:function(){return!this._loadingScreen&&this._renderingCanvas&&(this._loadingScreen=l.DefaultLoadingScreenFactory(this._renderingCanvas)),this._loadingScreen},set:function(h){this._loadingScreen=h},enumerable:!1,configurable:!0}),Object.defineProperty(l.prototype,"loadingUIText",{set:function(h){this.loadingScreen.loadingUIText=h},enumerable:!1,configurable:!0}),Object.defineProperty(l.prototype,"loadingUIBackgroundColor",{set:function(h){this.loadingScreen.loadingUIBackgroundColor=h},enumerable:!1,configurable:!0}),l._RequestPointerlock=function(h){h.requestPointerLock=h.requestPointerLock||h.msRequestPointerLock||h.mozRequestPointerLock||h.webkitRequestPointerLock,h.requestPointerLock&&h.requestPointerLock()},l._ExitPointerlock=function(){var h=document;document.exitPointerLock=document.exitPointerLock||h.msExitPointerLock||h.mozExitPointerLock||h.webkitExitPointerLock,document.exitPointerLock&&document.exitPointerLock()},l._RequestFullscreen=function(h){var v=h.requestFullscreen||h.msRequestFullscreen||h.webkitRequestFullscreen||h.mozRequestFullScreen;v&&v.call(h)},l._ExitFullscreen=function(){var h=document;document.exitFullscreen?document.exitFullscreen():h.mozCancelFullScreen?h.mozCancelFullScreen():h.webkitCancelFullScreen?h.webkitCancelFullScreen():h.msCancelFullScreen&&h.msCancelFullScreen()},l.ALPHA_DISABLE=P.a.ALPHA_DISABLE,l.ALPHA_ADD=P.a.ALPHA_ADD,l.ALPHA_COMBINE=P.a.ALPHA_COMBINE,l.ALPHA_SUBTRACT=P.a.ALPHA_SUBTRACT,l.ALPHA_MULTIPLY=P.a.ALPHA_MULTIPLY,l.ALPHA_MAXIMIZED=P.a.ALPHA_MAXIMIZED,l.ALPHA_ONEONE=P.a.ALPHA_ONEONE,l.ALPHA_PREMULTIPLIED=P.a.ALPHA_PREMULTIPLIED,l.ALPHA_PREMULTIPLIED_PORTERDUFF=P.a.ALPHA_PREMULTIPLIED_PORTERDUFF,l.ALPHA_INTERPOLATE=P.a.ALPHA_INTERPOLATE,l.ALPHA_SCREENMODE=P.a.ALPHA_SCREENMODE,l.DELAYLOADSTATE_NONE=P.a.DELAYLOADSTATE_NONE,l.DELAYLOADSTATE_LOADED=P.a.DELAYLOADSTATE_LOADED,l.DELAYLOADSTATE_LOADING=P.a.DELAYLOADSTATE_LOADING,l.DELAYLOADSTATE_NOTLOADED=P.a.DELAYLOADSTATE_NOTLOADED,l.NEVER=P.a.NEVER,l.ALWAYS=P.a.ALWAYS,l.LESS=P.a.LESS,l.EQUAL=P.a.EQUAL,l.LEQUAL=P.a.LEQUAL,l.GREATER=P.a.GREATER,l.GEQUAL=P.a.GEQUAL,l.NOTEQUAL=P.a.NOTEQUAL,l.KEEP=P.a.KEEP,l.REPLACE=P.a.REPLACE,l.INCR=P.a.INCR,l.DECR=P.a.DECR,l.INVERT=P.a.INVERT,l.INCR_WRAP=P.a.INCR_WRAP,l.DECR_WRAP=P.a.DECR_WRAP,l.TEXTURE_CLAMP_ADDRESSMODE=P.a.TEXTURE_CLAMP_ADDRESSMODE,l.TEXTURE_WRAP_ADDRESSMODE=P.a.TEXTURE_WRAP_ADDRESSMODE,l.TEXTURE_MIRROR_ADDRESSMODE=P.a.TEXTURE_MIRROR_ADDRESSMODE,l.TEXTUREFORMAT_ALPHA=P.a.TEXTUREFORMAT_ALPHA,l.TEXTUREFORMAT_LUMINANCE=P.a.TEXTUREFORMAT_LUMINANCE,l.TEXTUREFORMAT_LUMINANCE_ALPHA=P.a.TEXTUREFORMAT_LUMINANCE_ALPHA,l.TEXTUREFORMAT_RGB=P.a.TEXTUREFORMAT_RGB,l.TEXTUREFORMAT_RGBA=P.a.TEXTUREFORMAT_RGBA,l.TEXTUREFORMAT_RED=P.a.TEXTUREFORMAT_RED,l.TEXTUREFORMAT_R=P.a.TEXTUREFORMAT_R,l.TEXTUREFORMAT_RG=P.a.TEXTUREFORMAT_RG,l.TEXTUREFORMAT_RED_INTEGER=P.a.TEXTUREFORMAT_RED_INTEGER,l.TEXTUREFORMAT_R_INTEGER=P.a.TEXTUREFORMAT_R_INTEGER,l.TEXTUREFORMAT_RG_INTEGER=P.a.TEXTUREFORMAT_RG_INTEGER,l.TEXTUREFORMAT_RGB_INTEGER=P.a.TEXTUREFORMAT_RGB_INTEGER,l.TEXTUREFORMAT_RGBA_INTEGER=P.a.TEXTUREFORMAT_RGBA_INTEGER,l.TEXTURETYPE_UNSIGNED_BYTE=P.a.TEXTURETYPE_UNSIGNED_BYTE,l.TEXTURETYPE_UNSIGNED_INT=P.a.TEXTURETYPE_UNSIGNED_INT,l.TEXTURETYPE_FLOAT=P.a.TEXTURETYPE_FLOAT,l.TEXTURETYPE_HALF_FLOAT=P.a.TEXTURETYPE_HALF_FLOAT,l.TEXTURETYPE_BYTE=P.a.TEXTURETYPE_BYTE,l.TEXTURETYPE_SHORT=P.a.TEXTURETYPE_SHORT,l.TEXTURETYPE_UNSIGNED_SHORT=P.a.TEXTURETYPE_UNSIGNED_SHORT,l.TEXTURETYPE_INT=P.a.TEXTURETYPE_INT,l.TEXTURETYPE_UNSIGNED_INTEGER=P.a.TEXTURETYPE_UNSIGNED_INTEGER,l.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4=P.a.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4,l.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1=P.a.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1,l.TEXTURETYPE_UNSIGNED_SHORT_5_6_5=P.a.TEXTURETYPE_UNSIGNED_SHORT_5_6_5,l.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV=P.a.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV,l.TEXTURETYPE_UNSIGNED_INT_24_8=P.a.TEXTURETYPE_UNSIGNED_INT_24_8,l.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV=P.a.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV,l.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV=P.a.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV,l.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV=P.a.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV,l.TEXTURE_NEAREST_SAMPLINGMODE=P.a.TEXTURE_NEAREST_SAMPLINGMODE,l.TEXTURE_BILINEAR_SAMPLINGMODE=P.a.TEXTURE_BILINEAR_SAMPLINGMODE,l.TEXTURE_TRILINEAR_SAMPLINGMODE=P.a.TEXTURE_TRILINEAR_SAMPLINGMODE,l.TEXTURE_NEAREST_NEAREST_MIPLINEAR=P.a.TEXTURE_NEAREST_NEAREST_MIPLINEAR,l.TEXTURE_LINEAR_LINEAR_MIPNEAREST=P.a.TEXTURE_LINEAR_LINEAR_MIPNEAREST,l.TEXTURE_LINEAR_LINEAR_MIPLINEAR=P.a.TEXTURE_LINEAR_LINEAR_MIPLINEAR,l.TEXTURE_NEAREST_NEAREST_MIPNEAREST=P.a.TEXTURE_NEAREST_NEAREST_MIPNEAREST,l.TEXTURE_NEAREST_LINEAR_MIPNEAREST=P.a.TEXTURE_NEAREST_LINEAR_MIPNEAREST,l.TEXTURE_NEAREST_LINEAR_MIPLINEAR=P.a.TEXTURE_NEAREST_LINEAR_MIPLINEAR,l.TEXTURE_NEAREST_LINEAR=P.a.TEXTURE_NEAREST_LINEAR,l.TEXTURE_NEAREST_NEAREST=P.a.TEXTURE_NEAREST_NEAREST,l.TEXTURE_LINEAR_NEAREST_MIPNEAREST=P.a.TEXTURE_LINEAR_NEAREST_MIPNEAREST,l.TEXTURE_LINEAR_NEAREST_MIPLINEAR=P.a.TEXTURE_LINEAR_NEAREST_MIPLINEAR,l.TEXTURE_LINEAR_LINEAR=P.a.TEXTURE_LINEAR_LINEAR,l.TEXTURE_LINEAR_NEAREST=P.a.TEXTURE_LINEAR_NEAREST,l.TEXTURE_EXPLICIT_MODE=P.a.TEXTURE_EXPLICIT_MODE,l.TEXTURE_SPHERICAL_MODE=P.a.TEXTURE_SPHERICAL_MODE,l.TEXTURE_PLANAR_MODE=P.a.TEXTURE_PLANAR_MODE,l.TEXTURE_CUBIC_MODE=P.a.TEXTURE_CUBIC_MODE,l.TEXTURE_PROJECTION_MODE=P.a.TEXTURE_PROJECTION_MODE,l.TEXTURE_SKYBOX_MODE=P.a.TEXTURE_SKYBOX_MODE,l.TEXTURE_INVCUBIC_MODE=P.a.TEXTURE_INVCUBIC_MODE,l.TEXTURE_EQUIRECTANGULAR_MODE=P.a.TEXTURE_EQUIRECTANGULAR_MODE,l.TEXTURE_FIXED_EQUIRECTANGULAR_MODE=P.a.TEXTURE_FIXED_EQUIRECTANGULAR_MODE,l.TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE=P.a.TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE,l.SCALEMODE_FLOOR=P.a.SCALEMODE_FLOOR,l.SCALEMODE_NEAREST=P.a.SCALEMODE_NEAREST,l.SCALEMODE_CEILING=P.a.SCALEMODE_CEILING,l._RescalePostProcessFactory=null,l}(C.a))},function(Ie,y,f){f.d(y,"a",function(){return U});var U=function(){function _(){}return _.WithinEpsilon=function(R,u,M){M===void 0&&(M=1401298e-51);var C=R-u;return-M<=C&&C<=M},_.ToHex=function(R){var u=R.toString(16);return R<=15?("0"+u).toUpperCase():u.toUpperCase()},_.Sign=function(R){return(R=+R)==0||isNaN(R)?R:R>0?1:-1},_.Clamp=function(R,u,M){return u===void 0&&(u=0),M===void 0&&(M=1),Math.min(M,Math.max(u,R))},_.Log2=function(R){return Math.log(R)*Math.LOG2E},_.Repeat=function(R,u){return R-Math.floor(R/u)*u},_.Normalize=function(R,u,M){return(R-u)/(M-u)},_.Denormalize=function(R,u,M){return R*(M-u)+u},_.DeltaAngle=function(R,u){var M=_.Repeat(u-R,360);return M>180&&(M-=360),M},_.PingPong=function(R,u){var M=_.Repeat(R,2*u);return u-Math.abs(M-u)},_.SmoothStep=function(R,u,M){var C=_.Clamp(M);return u*(C=-2*C*C*C+3*C*C)+R*(1-C)},_.MoveTowards=function(R,u,M){return Math.abs(u-R)<=M?u:R+_.Sign(u-R)*M},_.MoveTowardsAngle=function(R,u,M){var C=_.DeltaAngle(R,u),P=0;return-M180&&(C-=360),R+C*_.Clamp(M)},_.InverseLerp=function(R,u,M){return R!=u?_.Clamp((M-R)/(u-R)):0},_.Hermite=function(R,u,M,C,P){var m=P*P,c=P*m;return R*(2*c-3*m+1)+M*(-2*c+3*m)+u*(c-2*m+P)+C*(c-m)},_.RandomRange=function(R,u){return R===u?R:Math.random()*(u-R)+R},_.RangeToPercent=function(R,u,M){return(R-u)/(M-u)},_.PercentToRange=function(R,u,M){return(M-u)*R+u},_.NormalizeRadians=function(R){return R-=_.TwoPi*Math.floor((R+Math.PI)/_.TwoPi)},_.TwoPi=2*Math.PI,_}()},function(Ie,y,f){f.d(y,"a",function(){return c});var U=f(8),_=f(20),R=f(22),u=f(4),M=f(48),C=f(2),P=f(9),m=f(119),c=function(){function T(){}return T.BindEyePosition=function(A,S,g){if(g===void 0&&(g="vEyePosition"),S._forcedViewPosition)A.setVector3(g,S._forcedViewPosition);else{var l=S.activeCamera.globalPosition;l||(l=S.activeCamera.devicePosition),A.setVector3(g,S._mirroredCameraPosition?S._mirroredCameraPosition:l)}},T.PrepareDefinesForMergedUV=function(A,S,g){S._needUVs=!0,S[g]=!0,A.getTextureMatrix().isIdentityAs3x2()?(S[g+"DIRECTUV"]=A.coordinatesIndex+1,A.coordinatesIndex===0?S.MAINUV1=!0:S.MAINUV2=!0):S[g+"DIRECTUV"]=0},T.BindTextureMatrix=function(A,S,g){var l=A.getTextureMatrix();S.updateMatrix(g+"Matrix",l)},T.GetFogState=function(A,S){return S.fogEnabled&&A.applyFog&&S.fogMode!==_.a.FOGMODE_NONE},T.PrepareDefinesForMisc=function(A,S,g,l,h,v,E){E._areMiscDirty&&(E.LOGARITHMICDEPTH=g,E.POINTSIZE=l,E.FOG=h&&this.GetFogState(A,S),E.NONUNIFORMSCALING=A.nonUniformScaling,E.ALPHATEST=v)},T.PrepareDefinesForFrameBoundValues=function(A,S,g,l,h,v){h===void 0&&(h=null),v===void 0&&(v=!1);var E,D,w,N,I,V,X=!1;E=h??(A.clipPlane!==void 0&&A.clipPlane!==null),D=h??(A.clipPlane2!==void 0&&A.clipPlane2!==null),w=h??(A.clipPlane3!==void 0&&A.clipPlane3!==null),N=h??(A.clipPlane4!==void 0&&A.clipPlane4!==null),I=h??(A.clipPlane5!==void 0&&A.clipPlane5!==null),V=h??(A.clipPlane6!==void 0&&A.clipPlane6!==null),g.CLIPPLANE!==E&&(g.CLIPPLANE=E,X=!0),g.CLIPPLANE2!==D&&(g.CLIPPLANE2=D,X=!0),g.CLIPPLANE3!==w&&(g.CLIPPLANE3=w,X=!0),g.CLIPPLANE4!==N&&(g.CLIPPLANE4=N,X=!0),g.CLIPPLANE5!==I&&(g.CLIPPLANE5=I,X=!0),g.CLIPPLANE6!==V&&(g.CLIPPLANE6=V,X=!0),g.DEPTHPREPASS!==!S.getColorWrite()&&(g.DEPTHPREPASS=!g.DEPTHPREPASS,X=!0),g.INSTANCES!==l&&(g.INSTANCES=l,X=!0),g.THIN_INSTANCES!==v&&(g.THIN_INSTANCES=v,X=!0),X&&g.markAsUnprocessed()},T.PrepareDefinesForBones=function(A,S){if(A.useBones&&A.computeBonesUsingShaders&&A.skeleton){S.NUM_BONE_INFLUENCERS=A.numBoneInfluencers;var g=S.BONETEXTURE!==void 0;if(A.skeleton.isUsingTextureForMatrices&&g)S.BONETEXTURE=!0;else{S.BonesPerMesh=A.skeleton.bones.length+1,S.BONETEXTURE=!g&&void 0;var l=A.getScene().prePassRenderer;if(l&&l.enabled){var h=l.excludedSkinnedMesh.indexOf(A)===-1;S.BONES_VELOCITY_ENABLED=h}}}else S.NUM_BONE_INFLUENCERS=0,S.BonesPerMesh=0},T.PrepareDefinesForMorphTargets=function(A,S){var g=A.morphTargetManager;g?(S.MORPHTARGETS_UV=g.supportsUVs&&S.UV1,S.MORPHTARGETS_TANGENT=g.supportsTangents&&S.TANGENT,S.MORPHTARGETS_NORMAL=g.supportsNormals&&S.NORMAL,S.MORPHTARGETS=g.numInfluencers>0,S.NUM_MORPH_INFLUENCERS=g.numInfluencers):(S.MORPHTARGETS_UV=!1,S.MORPHTARGETS_TANGENT=!1,S.MORPHTARGETS_NORMAL=!1,S.MORPHTARGETS=!1,S.NUM_MORPH_INFLUENCERS=0)},T.PrepareDefinesForAttributes=function(A,S,g,l,h,v){if(h===void 0&&(h=!1),v===void 0&&(v=!0),!S._areAttributesDirty&&S._needNormals===S._normals&&S._needUVs===S._uvs)return!1;if(S._normals=S._needNormals,S._uvs=S._needUVs,S.NORMAL=S._needNormals&&A.isVerticesDataPresent(u.b.NormalKind),S._needNormals&&A.isVerticesDataPresent(u.b.TangentKind)&&(S.TANGENT=!0),S._needUVs?(S.UV1=A.isVerticesDataPresent(u.b.UVKind),S.UV2=A.isVerticesDataPresent(u.b.UV2Kind)):(S.UV1=!1,S.UV2=!1),g){var E=A.useVertexColors&&A.isVerticesDataPresent(u.b.ColorKind);S.VERTEXCOLOR=E,S.VERTEXALPHA=A.hasVertexAlpha&&E&&v}return l&&this.PrepareDefinesForBones(A,S),h&&this.PrepareDefinesForMorphTargets(A,S),!0},T.PrepareDefinesForMultiview=function(A,S){if(A.activeCamera){var g=S.MULTIVIEW;S.MULTIVIEW=A.activeCamera.outputRenderTarget!==null&&A.activeCamera.outputRenderTarget.getViewCount()>1,S.MULTIVIEW!=g&&S.markAsUnprocessed()}},T.PrepareDefinesForPrePass=function(A,S,g){var l=S.PREPASS;if(S._arePrePassDirty){var h=[{type:C.a.PREPASS_POSITION_TEXTURE_TYPE,define:"PREPASS_POSITION",index:"PREPASS_POSITION_INDEX"},{type:C.a.PREPASS_VELOCITY_TEXTURE_TYPE,define:"PREPASS_VELOCITY",index:"PREPASS_VELOCITY_INDEX"},{type:C.a.PREPASS_REFLECTIVITY_TEXTURE_TYPE,define:"PREPASS_REFLECTIVITY",index:"PREPASS_REFLECTIVITY_INDEX"},{type:C.a.PREPASS_IRRADIANCE_TEXTURE_TYPE,define:"PREPASS_IRRADIANCE",index:"PREPASS_IRRADIANCE_INDEX"},{type:C.a.PREPASS_ALBEDO_TEXTURE_TYPE,define:"PREPASS_ALBEDO",index:"PREPASS_ALBEDO_INDEX"},{type:C.a.PREPASS_DEPTHNORMAL_TEXTURE_TYPE,define:"PREPASS_DEPTHNORMAL",index:"PREPASS_DEPTHNORMAL_INDEX"}];if(A.prePassRenderer&&A.prePassRenderer.enabled&&g){S.PREPASS=!0,S.SCENE_MRT_COUNT=A.prePassRenderer.mrtCount;for(var v=0;v0&&(E.shadowEnabled=!0,D.prepareDefines(h,l))}}g.lightmapMode!=M.a.LIGHTMAP_DEFAULT?(E.lightmapMode=!0,h["LIGHTMAPEXCLUDED"+l]=!0,h["LIGHTMAPNOSPECULAR"+l]=g.lightmapMode==M.a.LIGHTMAP_SHADOWSONLY):(h["LIGHTMAPEXCLUDED"+l]=!1,h["LIGHTMAPNOSPECULAR"+l]=!1)},T.PrepareDefinesForLights=function(A,S,g,l,h,v){if(h===void 0&&(h=4),v===void 0&&(v=!1),!g._areLightsDirty)return g._needNormals;var E=0,D={needNormals:!1,needRebuild:!1,lightmapMode:!1,shadowEnabled:!1,specularEnabled:!1};if(A.lightsEnabled&&!v)for(var w=0,N=S.lightSources;w0&&(h=l+v,S.addFallback(h,"LIGHT"+v)),A.SHADOWS||(A["SHADOW"+v]&&S.addFallback(l,"SHADOW"+v),A["SHADOWPCF"+v]&&S.addFallback(l,"SHADOWPCF"+v),A["SHADOWPCSS"+v]&&S.addFallback(l,"SHADOWPCSS"+v),A["SHADOWPOISSON"+v]&&S.addFallback(l,"SHADOWPOISSON"+v),A["SHADOWESM"+v]&&S.addFallback(l,"SHADOWESM"+v),A["SHADOWCLOSEESM"+v]&&S.addFallback(l,"SHADOWCLOSEESM"+v));return h++},T.PrepareAttributesForMorphTargetsInfluencers=function(A,S,g){this._TmpMorphInfluencers.NUM_MORPH_INFLUENCERS=g,this.PrepareAttributesForMorphTargets(A,S,this._TmpMorphInfluencers)},T.PrepareAttributesForMorphTargets=function(A,S,g){var l=g.NUM_MORPH_INFLUENCERS;if(l>0&&R.a.LastCreatedEngine)for(var h=R.a.LastCreatedEngine.getCaps().maxVertexAttribs,v=S.morphTargetManager,E=v&&v.supportsNormals&&g.NORMAL,D=v&&v.supportsTangents&&g.TANGENT,w=v&&v.supportsUVs&&g.UV1,N=0;Nh&&U.a.Error("Cannot add more vertex attributes for mesh "+S.name)},T.PrepareAttributesForBones=function(A,S,g,l){g.NUM_BONE_INFLUENCERS>0&&(l.addCPUSkinningFallback(0,S),A.push(u.b.MatricesIndicesKind),A.push(u.b.MatricesWeightsKind),g.NUM_BONE_INFLUENCERS>4&&(A.push(u.b.MatricesIndicesExtraKind),A.push(u.b.MatricesWeightsExtraKind)))},T.PrepareAttributesForInstances=function(A,S){(S.INSTANCES||S.THIN_INSTANCES)&&this.PushAttributesForInstances(A)},T.PushAttributesForInstances=function(A){A.push("world0"),A.push("world1"),A.push("world2"),A.push("world3")},T.BindLightProperties=function(A,S,g){A.transferToEffect(S,g+"")},T.BindLight=function(A,S,g,l,h,v){v===void 0&&(v=!1),A._bindLight(S,g,l,h,v)},T.BindLights=function(A,S,g,l,h,v){h===void 0&&(h=4),v===void 0&&(v=!1);for(var E=Math.min(S.lightSources.length,h),D=0;D-1){var h=l.getTransformMatrixTexture(A);S.setTexture("boneSampler",h),S.setFloat("boneTextureWidth",4*(l.bones.length+1))}else{var v=l.getTransformMatrices(A);v&&(S.setMatrices("mBones",v),g&&A.getScene().prePassRenderer&&A.getScene().prePassRenderer.getIndex(C.a.PREPASS_VELOCITY_TEXTURE_TYPE)&&(g.previousBones[A.uniqueId]&&S.setMatrices("mPreviousBones",g.previousBones[A.uniqueId]),T._CopyBonesTransformationMatrices(v,g.previousBones[A.uniqueId])))}}},T._CopyBonesTransformationMatrices=function(A,S){return S.set(A),S},T.BindMorphTargetParameters=function(A,S){var g=A.morphTargetManager;A&&g&&S.setFloatArray("morphTargetInfluences",g.influences)},T.BindLogDepth=function(A,S,g){A.LOGARITHMICDEPTH&&S.setFloat("logarithmicDepthConstant",2/(Math.log(g.activeCamera.maxZ+1)/Math.LN2))},T.BindClipPlane=function(A,S){m.a.BindClipPlane(A,S)},T._TmpMorphInfluencers={NUM_MORPH_INFLUENCERS:0},T._tempFogColor=P.a.Black(),T}()},function(Ie,y,f){f.d(y,"a",function(){return C});var U=f(0),_=f(4),R=f(21),u=f(9),M=f(8),C=function(){function P(){}return P.prototype.set=function(m,c){switch(m.length||M.a.Warn("Setting vertex data kind '"+c+"' with an empty array"),c){case _.b.PositionKind:this.positions=m;break;case _.b.NormalKind:this.normals=m;break;case _.b.TangentKind:this.tangents=m;break;case _.b.UVKind:this.uvs=m;break;case _.b.UV2Kind:this.uvs2=m;break;case _.b.UV3Kind:this.uvs3=m;break;case _.b.UV4Kind:this.uvs4=m;break;case _.b.UV5Kind:this.uvs5=m;break;case _.b.UV6Kind:this.uvs6=m;break;case _.b.ColorKind:this.colors=m;break;case _.b.MatricesIndicesKind:this.matricesIndices=m;break;case _.b.MatricesWeightsKind:this.matricesWeights=m;break;case _.b.MatricesIndicesExtraKind:this.matricesIndicesExtra=m;break;case _.b.MatricesWeightsExtraKind:this.matricesWeightsExtra=m}},P.prototype.applyToMesh=function(m,c){return this._applyTo(m,c),this},P.prototype.applyToGeometry=function(m,c){return this._applyTo(m,c),this},P.prototype.updateMesh=function(m){return this._update(m),this},P.prototype.updateGeometry=function(m){return this._update(m),this},P.prototype._applyTo=function(m,c){return c===void 0&&(c=!1),this.positions&&m.setVerticesData(_.b.PositionKind,this.positions,c),this.normals&&m.setVerticesData(_.b.NormalKind,this.normals,c),this.tangents&&m.setVerticesData(_.b.TangentKind,this.tangents,c),this.uvs&&m.setVerticesData(_.b.UVKind,this.uvs,c),this.uvs2&&m.setVerticesData(_.b.UV2Kind,this.uvs2,c),this.uvs3&&m.setVerticesData(_.b.UV3Kind,this.uvs3,c),this.uvs4&&m.setVerticesData(_.b.UV4Kind,this.uvs4,c),this.uvs5&&m.setVerticesData(_.b.UV5Kind,this.uvs5,c),this.uvs6&&m.setVerticesData(_.b.UV6Kind,this.uvs6,c),this.colors&&m.setVerticesData(_.b.ColorKind,this.colors,c),this.matricesIndices&&m.setVerticesData(_.b.MatricesIndicesKind,this.matricesIndices,c),this.matricesWeights&&m.setVerticesData(_.b.MatricesWeightsKind,this.matricesWeights,c),this.matricesIndicesExtra&&m.setVerticesData(_.b.MatricesIndicesExtraKind,this.matricesIndicesExtra,c),this.matricesWeightsExtra&&m.setVerticesData(_.b.MatricesWeightsExtraKind,this.matricesWeightsExtra,c),this.indices?m.setIndices(this.indices,null,c):m.setIndices([],null),this},P.prototype._update=function(m,c,T){return this.positions&&m.updateVerticesData(_.b.PositionKind,this.positions,c,T),this.normals&&m.updateVerticesData(_.b.NormalKind,this.normals,c,T),this.tangents&&m.updateVerticesData(_.b.TangentKind,this.tangents,c,T),this.uvs&&m.updateVerticesData(_.b.UVKind,this.uvs,c,T),this.uvs2&&m.updateVerticesData(_.b.UV2Kind,this.uvs2,c,T),this.uvs3&&m.updateVerticesData(_.b.UV3Kind,this.uvs3,c,T),this.uvs4&&m.updateVerticesData(_.b.UV4Kind,this.uvs4,c,T),this.uvs5&&m.updateVerticesData(_.b.UV5Kind,this.uvs5,c,T),this.uvs6&&m.updateVerticesData(_.b.UV6Kind,this.uvs6,c,T),this.colors&&m.updateVerticesData(_.b.ColorKind,this.colors,c,T),this.matricesIndices&&m.updateVerticesData(_.b.MatricesIndicesKind,this.matricesIndices,c,T),this.matricesWeights&&m.updateVerticesData(_.b.MatricesWeightsKind,this.matricesWeights,c,T),this.matricesIndicesExtra&&m.updateVerticesData(_.b.MatricesIndicesExtraKind,this.matricesIndicesExtra,c,T),this.matricesWeightsExtra&&m.updateVerticesData(_.b.MatricesWeightsExtraKind,this.matricesWeightsExtra,c,T),this.indices&&m.setIndices(this.indices,null),this},P.prototype.transform=function(m){var c,T=m.determinant()<0,A=U.e.Zero();if(this.positions){var S=U.e.Zero();for(c=0;cA.bbSize.y?A.bbSize.x:A.bbSize.y;ct=ct>A.bbSize.z?ct:A.bbSize.z,H=A.subDiv.X*re/A.bbSize.x,Z=A.subDiv.Y*re/A.bbSize.y,W=A.subDiv.Z*re/A.bbSize.z,q=A.subDiv.max*A.subDiv.max,A.facetPartitioning.length=0}for(S=0;Sre.LongPressDelay&&!H._isPointerSwiping()&&(H._startingPointerTime=0,W.processTrigger(I.a.ACTION_OnLongPressTrigger,E.a.CreateNew(_e.pickedMesh,k)))},re.LongPressDelay)}}else for(var q=0,he=Z._pointerDownStage;qre.DragMovementThreshold||Math.abs(this._startingPointerPosition.y-this._pointerY)>re.DragMovementThreshold},re.prototype.simulatePointerUp=function(Y,k,H){var Z=new PointerEvent("pointerup",k),W=new ae;H?W.doubleClick=!0:W.singleClick=!0,this._checkPrePointerObservable(Y,Z,te.a.POINTERUP)||this._processPointerUp(Y,Z,W)},re.prototype._processPointerUp=function(Y,k,H){var Z=this._scene;if(Y&&Y&&Y.pickedMesh){if(this._pickedUpMesh=Y.pickedMesh,this._pickedDownMesh===this._pickedUpMesh&&(Z.onPointerPick&&Z.onPointerPick(k,Y),H.singleClick&&!H.ignore&&Z.onPointerObservable.hasObservers())){var W=te.a.POINTERPICK,q=new te.b(W,k,Y);this._setRayOnPointerInfo(q),Z.onPointerObservable.notifyObservers(q,W)}var he=Y.pickedMesh._getActionManagerForTrigger();if(he&&!H.ignore){he.processTrigger(I.a.ACTION_OnPickUpTrigger,E.a.CreateNew(Y.pickedMesh,k)),!H.hasSwiped&&H.singleClick&&he.processTrigger(I.a.ACTION_OnPickTrigger,E.a.CreateNew(Y.pickedMesh,k));var ge=Y.pickedMesh._getActionManagerForTrigger(I.a.ACTION_OnDoublePickTrigger);H.doubleClick&&ge&&ge.processTrigger(I.a.ACTION_OnDoublePickTrigger,E.a.CreateNew(Y.pickedMesh,k))}}else if(!H.ignore)for(var me=0,_e=Z._pointerUpStage;me<_e.length;me++)Y=_e[me].action(this._unTranslatedPointerX,this._unTranslatedPointerY,Y,k);if(this._pickedDownMesh&&this._pickedDownMesh!==this._pickedUpMesh){var be=this._pickedDownMesh._getActionManagerForTrigger(I.a.ACTION_OnPickOutTrigger);be&&be.processTrigger(I.a.ACTION_OnPickOutTrigger,E.a.CreateNew(this._pickedDownMesh,k))}var Pe=0;Z.onPointerObservable.hasObservers()&&(!H.ignore&&!H.hasSwiped&&(H.singleClick&&Z.onPointerObservable.hasSpecificMask(te.a.POINTERTAP)?Pe=te.a.POINTERTAP:H.doubleClick&&Z.onPointerObservable.hasSpecificMask(te.a.POINTERDOUBLETAP)&&(Pe=te.a.POINTERDOUBLETAP),Pe)&&(q=new te.b(Pe,k,Y),this._setRayOnPointerInfo(q),Z.onPointerObservable.notifyObservers(q,Pe)),H.ignore||(Pe=te.a.POINTERUP,q=new te.b(Pe,k,Y),this._setRayOnPointerInfo(q),Z.onPointerObservable.notifyObservers(q,Pe))),Z.onPointerUp&&!H.ignore&&Z.onPointerUp(k,Y,Pe)},re.prototype.isPointerCaptured=function(Y){return Y===void 0&&(Y=0),this._pointerCaptures[Y]},re.prototype.attachControl=function(Y,k,H,Z){var W=this;Y===void 0&&(Y=!0),k===void 0&&(k=!0),H===void 0&&(H=!0),Z===void 0&&(Z=null);var q=this._scene;if(Z||(Z=q.getEngine().getInputElement()),Z){this._alreadyAttached&&this.detachControl(),this._alreadyAttachedTo=Z;var he=q.getEngine();this._initActionManager=function(be,Pe){if(!W._meshPickProceed){var ye=q.pick(W._unTranslatedPointerX,W._unTranslatedPointerY,q.pointerDownPredicate,!1,q.cameraToUseForPointers);W._currentPickResult=ye,ye&&(be=ye.hit&&ye.pickedMesh?ye.pickedMesh._getActionManagerForTrigger():null),W._meshPickProceed=!0}return be},this._delayedSimpleClick=function(be,Pe,ye){(Date.now()-W._previousStartingPointerTime>re.DoubleClickDelay&&!W._doubleClickOccured||be!==W._previousButtonPressed)&&(W._doubleClickOccured=!1,Pe.singleClick=!0,Pe.ignore=!1,ye(Pe,W._currentPickResult))},this._initClickEvent=function(be,Pe,ye,Be){var ke=new ae;W._currentPickResult=null;var We=null,je=be.hasSpecificMask(te.a.POINTERPICK)||Pe.hasSpecificMask(te.a.POINTERPICK)||be.hasSpecificMask(te.a.POINTERTAP)||Pe.hasSpecificMask(te.a.POINTERTAP)||be.hasSpecificMask(te.a.POINTERDOUBLETAP)||Pe.hasSpecificMask(te.a.POINTERDOUBLETAP);!je&&de.a&&(We=W._initActionManager(We,ke))&&(je=We.hasPickTriggers);var He=!1;if(je){var Qe=ye.button;if(ke.hasSwiped=W._isPointerSwiping(),!ke.hasSwiped){var Ge=!re.ExclusiveDoubleClickMode;Ge||(Ge=!be.hasSpecificMask(te.a.POINTERDOUBLETAP)&&!Pe.hasSpecificMask(te.a.POINTERDOUBLETAP))&&!de.a.HasSpecificTrigger(I.a.ACTION_OnDoublePickTrigger)&&(We=W._initActionManager(We,ke))&&(Ge=!We.hasSpecificTrigger(I.a.ACTION_OnDoublePickTrigger)),Ge?(Date.now()-W._previousStartingPointerTime>re.DoubleClickDelay||Qe!==W._previousButtonPressed)&&(ke.singleClick=!0,Be(ke,W._currentPickResult),He=!0):(W._previousDelayedSimpleClickTimeout=W._delayedSimpleClickTimeout,W._delayedSimpleClickTimeout=window.setTimeout(W._delayedSimpleClick.bind(W,Qe,ke,Be),re.DoubleClickDelay));var nt=be.hasSpecificMask(te.a.POINTERDOUBLETAP)||Pe.hasSpecificMask(te.a.POINTERDOUBLETAP);!nt&&de.a.HasSpecificTrigger(I.a.ACTION_OnDoublePickTrigger)&&(We=W._initActionManager(We,ke))&&(nt=We.hasSpecificTrigger(I.a.ACTION_OnDoublePickTrigger)),nt&&(Qe===W._previousButtonPressed&&Date.now()-W._previousStartingPointerTime0){for(var k=0,H=this._transientComponents;k0)return!1;for(k=0;k0,q=0,he=this._isReadyForMeshStage;q0){for(var ge=0,me=this.activeCameras;ge0},enumerable:!1,configurable:!0}),Y.prototype.executeWhenReady=function(k){var H=this;this.onReadyObservable.add(k),this._executeWhenReadyTimeoutId===-1&&(this._executeWhenReadyTimeoutId=setTimeout(function(){H._checkIsReady()},150))},Y.prototype.whenReadyAsync=function(){var k=this;return new Promise(function(H){k.executeWhenReady(function(){H()})})},Y.prototype._checkIsReady=function(){var k=this;return this._registerTransientComponents(),this.isReady()?(this.onReadyObservable.notifyObservers(this),this.onReadyObservable.clear(),void(this._executeWhenReadyTimeoutId=-1)):this._isDisposed?(this.onReadyObservable.clear(),void(this._executeWhenReadyTimeoutId=-1)):void(this._executeWhenReadyTimeoutId=setTimeout(function(){k._checkIsReady()},150))},Object.defineProperty(Y.prototype,"animatables",{get:function(){return this._activeAnimatables},enumerable:!1,configurable:!0}),Y.prototype.resetLastAnimationTimeFrame=function(){this._animationTimeLast=R.a.Now},Y.prototype.getViewMatrix=function(){return this._viewMatrix},Y.prototype.getProjectionMatrix=function(){return this._projectionMatrix},Y.prototype.getTransformMatrix=function(){return this._transformMatrix},Y.prototype.setTransformMatrix=function(k,H,Z,W){this._viewUpdateFlag===k.updateFlag&&this._projectionUpdateFlag===H.updateFlag||(this._viewUpdateFlag=k.updateFlag,this._projectionUpdateFlag=H.updateFlag,this._viewMatrix=k,this._projectionMatrix=H,this._viewMatrix.multiplyToRef(this._projectionMatrix,this._transformMatrix),this._frustumPlanes?L.a.GetPlanesToRef(this._transformMatrix,this._frustumPlanes):this._frustumPlanes=L.a.GetPlanes(this._transformMatrix),this._multiviewSceneUbo&&this._multiviewSceneUbo.useUbo?this._updateMultiviewUbo(Z,W):this._sceneUbo.useUbo&&(this._sceneUbo.updateMatrix("viewProjection",this._transformMatrix),this._sceneUbo.updateMatrix("view",this._viewMatrix),this._sceneUbo.update()))},Y.prototype.getSceneUniformBuffer=function(){return this._multiviewSceneUbo?this._multiviewSceneUbo:this._sceneUbo},Y.prototype.getUniqueId=function(){return G.a.UniqueId},Y.prototype.addMesh=function(k,H){var Z=this;H===void 0&&(H=!1),this._blockEntityCollection||(this.meshes.push(k),k._resyncLightSources(),k.parent||k._addToSceneRootNodes(),this.onNewMeshAddedObservable.notifyObservers(k),H&&k.getChildMeshes().forEach(function(W){Z.addMesh(W)}))},Y.prototype.removeMesh=function(k,H){var Z=this;H===void 0&&(H=!1);var W=this.meshes.indexOf(k);return W!==-1&&(this.meshes[W]=this.meshes[this.meshes.length-1],this.meshes.pop(),k.parent||k._removeFromSceneRootNodes()),this.onMeshRemovedObservable.notifyObservers(k),H&&k.getChildMeshes().forEach(function(q){Z.removeMesh(q)}),W},Y.prototype.addTransformNode=function(k){this._blockEntityCollection||(k._indexInSceneTransformNodesArray=this.transformNodes.length,this.transformNodes.push(k),k.parent||k._addToSceneRootNodes(),this.onNewTransformNodeAddedObservable.notifyObservers(k))},Y.prototype.removeTransformNode=function(k){var H=k._indexInSceneTransformNodesArray;if(H!==-1){if(H!==this.transformNodes.length-1){var Z=this.transformNodes[this.transformNodes.length-1];this.transformNodes[H]=Z,Z._indexInSceneTransformNodesArray=H}k._indexInSceneTransformNodesArray=-1,this.transformNodes.pop(),k.parent||k._removeFromSceneRootNodes()}return this.onTransformNodeRemovedObservable.notifyObservers(k),H},Y.prototype.removeSkeleton=function(k){var H=this.skeletons.indexOf(k);return H!==-1&&(this.skeletons.splice(H,1),this.onSkeletonRemovedObservable.notifyObservers(k)),H},Y.prototype.removeMorphTargetManager=function(k){var H=this.morphTargetManagers.indexOf(k);return H!==-1&&this.morphTargetManagers.splice(H,1),H},Y.prototype.removeLight=function(k){var H=this.lights.indexOf(k);if(H!==-1){for(var Z=0,W=this.meshes;Z0?this.activeCamera=this.cameras[0]:this.activeCamera=null),this.onCameraRemovedObservable.notifyObservers(k),H},Y.prototype.removeParticleSystem=function(k){var H=this.particleSystems.indexOf(k);return H!==-1&&this.particleSystems.splice(H,1),H},Y.prototype.removeAnimation=function(k){var H=this.animations.indexOf(k);return H!==-1&&this.animations.splice(H,1),H},Y.prototype.stopAnimation=function(k,H,Z){},Y.prototype.removeAnimationGroup=function(k){var H=this.animationGroups.indexOf(k);return H!==-1&&this.animationGroups.splice(H,1),H},Y.prototype.removeMultiMaterial=function(k){var H=this.multiMaterials.indexOf(k);return H!==-1&&this.multiMaterials.splice(H,1),this.onMultiMaterialRemovedObservable.notifyObservers(k),H},Y.prototype.removeMaterial=function(k){var H=k._indexInSceneMaterialArray;if(H!==-1&&H=0;H--)if(this.materials[H].id===k)return this.materials[H];return null},Y.prototype.getMaterialByName=function(k){for(var H=0;H=0;H--)if(this.meshes[H].id===k)return this.meshes[H];return null},Y.prototype.getLastEntryByID=function(k){var H;for(H=this.meshes.length-1;H>=0;H--)if(this.meshes[H].id===k)return this.meshes[H];for(H=this.transformNodes.length-1;H>=0;H--)if(this.transformNodes[H].id===k)return this.transformNodes[H];for(H=this.cameras.length-1;H>=0;H--)if(this.cameras[H].id===k)return this.cameras[H];for(H=this.lights.length-1;H>=0;H--)if(this.lights[H].id===k)return this.lights[H];return null},Y.prototype.getNodeByID=function(k){var H=this.getMeshByID(k);if(H)return H;var Z=this.getTransformNodeByID(k);if(Z)return Z;var W=this.getLightByID(k);if(W)return W;var q=this.getCameraByID(k);if(q)return q;var he=this.getBoneByID(k);return he||null},Y.prototype.getNodeByName=function(k){var H=this.getMeshByName(k);if(H)return H;var Z=this.getTransformNodeByName(k);if(Z)return Z;var W=this.getLightByName(k);if(W)return W;var q=this.getCameraByName(k);if(q)return q;var he=this.getBoneByName(k);return he||null},Y.prototype.getMeshByName=function(k){for(var H=0;H=0;H--)if(this.skeletons[H].id===k)return this.skeletons[H];return null},Y.prototype.getSkeletonByUniqueId=function(k){for(var H=0;H0&&(me.layerMask&this.activeCamera.layerMask)!=0&&(this._skipFrustumClipping||me.alwaysSelectAsActiveMesh||me.isInFrustum(this._frustumPlanes)))){this._activeMeshes.push(me),this.activeCamera._activeMeshes.push(me),_e!==me&&_e._activate(this._renderId,!1);for(var be=0,Pe=this._preActiveMeshStage;be0)for(var Z=this.getActiveSubMeshCandidates(H),W=Z.length,q=0;q1)this.activeCamera.outputRenderTarget._bindFrameBuffer();else{var k=this.activeCamera.outputRenderTarget.getInternalTexture();k?this.getEngine().bindFramebuffer(k):X.a.Error("Camera contains invalid customDefaultRenderTarget")}else this.getEngine().restoreDefaultFramebuffer()},Y.prototype._renderForCamera=function(k,H){if(!k||!k._skipRendering){var Z=this._engine;if(this._activeCamera=k,!this.activeCamera)throw new Error("Active camera not set");Z.setViewport(this.activeCamera.viewport),this.resetCachedMaterial(),this._renderId++,this.getEngine().getCaps().multiview&&k.outputRenderTarget&&k.outputRenderTarget.getViewCount()>1?this.setTransformMatrix(k._rigCameras[0].getViewMatrix(),k._rigCameras[0].getProjectionMatrix(),k._rigCameras[1].getViewMatrix(),k._rigCameras[1].getProjectionMatrix()):this.updateTransformMatrix(),this.onBeforeCameraRenderObservable.notifyObservers(this.activeCamera),this._evaluateActiveMeshes();for(var W=0;W0&&this._renderTargets.concatWithNoDuplicate(k.customRenderTargets),H&&H.customRenderTargets&&H.customRenderTargets.length>0&&this._renderTargets.concatWithNoDuplicate(H.customRenderTargets);for(var he=0,ge=this._gatherActiveCameraRenderTargetsStage;he0){_.b.StartPerformanceCounter("Render targets",this._renderTargets.length>0);for(var _e=0;_e0),this._renderId++}for(var ye=0,Be=this._cameraDrawRenderTargetStage;ye1&&this.getEngine().getCaps().multiview)return this._renderForCamera(k),void this.onAfterRenderCameraObservable.notifyObservers(k);if(k._useMultiviewToSingleView)this._renderMultiviewToSingleView(k);else for(var H=0;H-1&&(W.trigger===I.a.ACTION_OnIntersectionExitTrigger&&W._executeCurrent(E.a.CreateNew(H,void 0,he)),H.actionManager.hasSpecificTrigger(I.a.ACTION_OnIntersectionExitTrigger,function(_e){var be=_e instanceof T.a?_e:_e.mesh;return he===be})&&W.trigger!==I.a.ACTION_OnIntersectionExitTrigger||H._intersectionsInProgress.splice(me,1))}}}},Y.prototype._advancePhysicsEngineStep=function(k){},Y.prototype._animate=function(){},Y.prototype.animate=function(){if(this._engine.isDeterministicLockStep()){var k=Math.max(Y.MinDeltaTime,Math.min(this._engine.getDeltaTime(),Y.MaxDeltaTime))+this._timeAccumulator,H=this._engine.getTimeStep(),Z=1e3/H/1e3,W=0,q=this._engine.getLockstepMaxSteps(),he=Math.floor(k/H);for(he=Math.min(he,q);k>0&&W0)for(var q=0;q0),this._intermediateRendering=!0;for(var be=0;be0),this._intermediateRendering=!1,this._renderId++}this.activeCamera=_e,this._activeCamera&&this._activeCamera.cameraRigMode!==A.a.RIG_MODE_CUSTOM&&!this.prePass&&this._bindFrameBuffer(),this.onAfterRenderTargetsRenderObservable.notifyObservers(this);for(var ye=0,Be=this._beforeClearStage;ye0)for(q=0;q0&&this._engine.clear(null,!1,!0,!0),this._processSubCameras(this.activeCameras[q]);else{if(!this.activeCamera)throw new Error("No camera defined");this._processSubCameras(this.activeCamera)}this._checkIntersections();for(var je=0,He=this._afterRenderStage;je-1&&this._engine.scenes.splice(q,1),this._engine.wipeCaches(!0),this._isDisposed=!0},Object.defineProperty(Y.prototype,"isDisposed",{get:function(){return this._isDisposed},enumerable:!1,configurable:!0}),Y.prototype.clearCachedVertexData=function(){for(var k=0;k-1?(m.a.Error("You're trying to reuse a post process not defined as reusable."),0):(E==null||E<0?this._postProcesses.push(v):this._postProcesses[E]===null?this._postProcesses[E]=v:this._postProcesses.splice(E,0,v),this._cascadePostProcessesToRigCams(),this._scene.prePassRenderer&&this._scene.prePassRenderer.markAsDirty(),this._postProcesses.indexOf(v))},h.prototype.detachPostProcess=function(v){var E=this._postProcesses.indexOf(v);E!==-1&&(this._postProcesses[E]=null),this._scene.prePassRenderer&&this._scene.prePassRenderer.markAsDirty(),this._cascadePostProcessesToRigCams()},h.prototype.getWorldMatrix=function(){return this._isSynchronizedViewMatrix()||this.getViewMatrix(),this._worldMatrix},h.prototype._getViewMatrix=function(){return C.a.Identity()},h.prototype.getViewMatrix=function(v){return!v&&this._isSynchronizedViewMatrix()||(this.updateCache(),this._computedViewMatrix=this._getViewMatrix(),this._currentRenderId=this.getScene().getRenderId(),this._childUpdateId++,this._refreshFrustumPlanes=!0,this._cameraRigParams&&this._cameraRigParams.vrPreViewMatrix&&this._computedViewMatrix.multiplyToRef(this._cameraRigParams.vrPreViewMatrix,this._computedViewMatrix),this.parent&&this.parent.onViewMatrixChangedObservable&&this.parent.onViewMatrixChangedObservable.notifyObservers(this.parent),this.onViewMatrixChangedObservable.notifyObservers(this),this._computedViewMatrix.invertToRef(this._worldMatrix)),this._computedViewMatrix},h.prototype.freezeProjectionMatrix=function(v){this._doNotComputeProjectionMatrix=!0,v!==void 0&&(this._projectionMatrix=v)},h.prototype.unfreezeProjectionMatrix=function(){this._doNotComputeProjectionMatrix=!1},h.prototype.getProjectionMatrix=function(v){var E,D,w,N,I,V,X,j;if(this._doNotComputeProjectionMatrix||!v&&this._isSynchronizedProjectionMatrix())return this._projectionMatrix;this._cache.mode=this.mode,this._cache.minZ=this.minZ,this._cache.maxZ=this.maxZ,this._refreshFrustumPlanes=!0;var ne=this.getEngine(),te=this.getScene();if(this.mode===h.PERSPECTIVE_CAMERA){this._cache.fov=this.fov,this._cache.fovMode=this.fovMode,this._cache.aspectRatio=ne.getAspectRatio(this),this.minZ<=0&&(this.minZ=.1);var de=ne.useReverseDepthBuffer;(te.useRightHandedSystem?de?C.a.PerspectiveFovReverseRHToRef:C.a.PerspectiveFovRHToRef:de?C.a.PerspectiveFovReverseLHToRef:C.a.PerspectiveFovLHToRef)(this.fov,ne.getAspectRatio(this),this.minZ,this.maxZ,this._projectionMatrix,this.fovMode===h.FOVMODE_VERTICAL_FIXED)}else{var pe=ne.getRenderWidth()/2,ae=ne.getRenderHeight()/2;te.useRightHandedSystem?C.a.OrthoOffCenterRHToRef((E=this.orthoLeft)!==null&&E!==void 0?E:-pe,(D=this.orthoRight)!==null&&D!==void 0?D:pe,(w=this.orthoBottom)!==null&&w!==void 0?w:-ae,(N=this.orthoTop)!==null&&N!==void 0?N:ae,this.minZ,this.maxZ,this._projectionMatrix):C.a.OrthoOffCenterLHToRef((I=this.orthoLeft)!==null&&I!==void 0?I:-pe,(V=this.orthoRight)!==null&&V!==void 0?V:pe,(X=this.orthoBottom)!==null&&X!==void 0?X:-ae,(j=this.orthoTop)!==null&&j!==void 0?j:ae,this.minZ,this.maxZ,this._projectionMatrix),this._cache.orthoLeft=this.orthoLeft,this._cache.orthoRight=this.orthoRight,this._cache.orthoBottom=this.orthoBottom,this._cache.orthoTop=this.orthoTop,this._cache.renderWidth=ne.getRenderWidth(),this._cache.renderHeight=ne.getRenderHeight()}return this.onProjectionMatrixChangedObservable.notifyObservers(this),this._projectionMatrix},h.prototype.getTransformationMatrix=function(){return this._computedViewMatrix.multiplyToRef(this._projectionMatrix,this._transformMatrix),this._transformMatrix},h.prototype._updateFrustumPlanes=function(){this._refreshFrustumPlanes&&(this.getTransformationMatrix(),this._frustumPlanes?S.a.GetPlanesToRef(this._transformMatrix,this._frustumPlanes):this._frustumPlanes=S.a.GetPlanes(this._transformMatrix),this._refreshFrustumPlanes=!1)},h.prototype.isInFrustum=function(v,E){if(E===void 0&&(E=!1),this._updateFrustumPlanes(),E&&this.rigCameras.length>0){var D=!1;return this.rigCameras.forEach(function(w){w._updateFrustumPlanes(),D=D||v.isInFrustum(w._frustumPlanes)}),D}return v.isInFrustum(this._frustumPlanes)},h.prototype.isCompletelyInFrustum=function(v){return this._updateFrustumPlanes(),v.isCompletelyInFrustum(this._frustumPlanes)},h.prototype.getForwardRay=function(v,E,D){throw T.a.WarnImport("Ray")},h.prototype.getForwardRayToRef=function(v,E,D,w){throw T.a.WarnImport("Ray")},h.prototype.dispose=function(v,E){for(E===void 0&&(E=!1),this.onViewMatrixChangedObservable.clear(),this.onProjectionMatrixChangedObservable.clear(),this.onAfterCheckInputsObservable.clear(),this.onRestoreStateObservable.clear(),this.inputs&&this.inputs.clear(),this.getScene().stopAnimation(this),this.getScene().removeCamera(this);this._rigCameras.length>0;){var D=this._rigCameras.pop();D&&D.dispose()}if(this._rigPostProcess)this._rigPostProcess.dispose(this),this._rigPostProcess=null,this._postProcesses=[];else if(this.cameraRigMode!==h.RIG_MODE_NONE)this._rigPostProcess=null,this._postProcesses=[];else for(var w=this._postProcesses.length;--w>=0;){var N=this._postProcesses[w];N&&N.dispose(this)}for(w=this.customRenderTargets.length;--w>=0;)this.customRenderTargets[w].dispose();this.customRenderTargets=[],this._activeMeshes.dispose(),l.prototype.dispose.call(this,v,E)},Object.defineProperty(h.prototype,"isLeftCamera",{get:function(){return this._isLeftCamera},enumerable:!1,configurable:!0}),Object.defineProperty(h.prototype,"isRightCamera",{get:function(){return this._isRightCamera},enumerable:!1,configurable:!0}),Object.defineProperty(h.prototype,"leftCamera",{get:function(){return this._rigCameras.length<1?null:this._rigCameras[0]},enumerable:!1,configurable:!0}),Object.defineProperty(h.prototype,"rightCamera",{get:function(){return this._rigCameras.length<2?null:this._rigCameras[1]},enumerable:!1,configurable:!0}),h.prototype.getLeftTarget=function(){return this._rigCameras.length<1?null:this._rigCameras[0].getTarget()},h.prototype.getRightTarget=function(){return this._rigCameras.length<2?null:this._rigCameras[1].getTarget()},h.prototype.setCameraRigMode=function(v,E){if(this.cameraRigMode!==v){for(;this._rigCameras.length>0;){var D=this._rigCameras.pop();D&&D.dispose()}if(this.cameraRigMode=v,this._cameraRigParams={},this._cameraRigParams.interaxialDistance=E.interaxialDistance||.0637,this._cameraRigParams.stereoHalfAngle=u.b.ToRadians(this._cameraRigParams.interaxialDistance/.0637),this.cameraRigMode!==h.RIG_MODE_NONE){var w=this.createRigCamera(this.name+"_L",0);w&&(w._isLeftCamera=!0);var N=this.createRigCamera(this.name+"_R",1);N&&(N._isRightCamera=!0),w&&N&&(this._rigCameras.push(w),this._rigCameras.push(N))}switch(this.cameraRigMode){case h.RIG_MODE_STEREOSCOPIC_ANAGLYPH:h._setStereoscopicAnaglyphRigMode(this);break;case h.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:case h.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED:case h.RIG_MODE_STEREOSCOPIC_OVERUNDER:case h.RIG_MODE_STEREOSCOPIC_INTERLACED:h._setStereoscopicRigMode(this);break;case h.RIG_MODE_VR:h._setVRRigMode(this,E);break;case h.RIG_MODE_WEBVR:h._setWebVRRigMode(this,E)}this._cascadePostProcessesToRigCams(),this.update()}},h._setStereoscopicRigMode=function(v){throw"Import Cameras/RigModes/stereoscopicRigMode before using stereoscopic rig mode"},h._setStereoscopicAnaglyphRigMode=function(v){throw"Import Cameras/RigModes/stereoscopicAnaglyphRigMode before using stereoscopic anaglyph rig mode"},h._setVRRigMode=function(v,E){throw"Import Cameras/RigModes/vrRigMode before using VR rig mode"},h._setWebVRRigMode=function(v,E){throw"Import Cameras/RigModes/WebVRRigMode before using Web VR rig mode"},h.prototype._getVRProjectionMatrix=function(){return C.a.PerspectiveFovLHToRef(this._cameraRigParams.vrMetrics.aspectRatioFov,this._cameraRigParams.vrMetrics.aspectRatio,this.minZ,this.maxZ,this._cameraRigParams.vrWorkMatrix),this._cameraRigParams.vrWorkMatrix.multiplyToRef(this._cameraRigParams.vrHMatrix,this._projectionMatrix),this._projectionMatrix},h.prototype._updateCameraRotationMatrix=function(){},h.prototype._updateWebVRCameraRotationMatrix=function(){},h.prototype._getWebVRProjectionMatrix=function(){return C.a.Identity()},h.prototype._getWebVRViewMatrix=function(){return C.a.Identity()},h.prototype.setCameraRigParameter=function(v,E){this._cameraRigParams||(this._cameraRigParams={}),this._cameraRigParams[v]=E,v==="interaxialDistance"&&(this._cameraRigParams.stereoHalfAngle=u.b.ToRadians(E/.0637))},h.prototype.createRigCamera=function(v,E){return null},h.prototype._updateRigCameras=function(){for(var v=0;v=1)&&(this.needAlphaBlending()||g.visibility<1||g.hasVertexAlpha)},S.prototype.needAlphaTesting=function(){return!!this._forceAlphaTest},S.prototype._shouldTurnAlphaTestOn=function(g){return!this.needAlphaBlendingForMesh(g)&&this.needAlphaTesting()},S.prototype.getAlphaTestTexture=function(){return null},S.prototype.markDirty=function(){for(var g=0,l=this.getScene().meshes;g1&&be.renderbufferStorageMultisample?be.renderbufferStorageMultisample(be.RENDERBUFFER,he,me,W,q):be.renderbufferStorage(be.RENDERBUFFER,ge,W,q),be.framebufferRenderbuffer(be.FRAMEBUFFER,_e,be.RENDERBUFFER,Pe),be.bindRenderbuffer(be.RENDERBUFFER,null),Pe},this._boundUniforms={};var te=null;if(I){if(X=X||{},E.a.SetMatrixPrecision(!!X.useHighPrecisionMatrix),I.getContext){if(te=I,this._renderingCanvas=te,V!=null&&(X.antialias=V),X.deterministicLockstep===void 0&&(X.deterministicLockstep=!1),X.lockstepMaxSteps===void 0&&(X.lockstepMaxSteps=4),X.timeStep===void 0&&(X.timeStep=1/60),X.preserveDrawingBuffer===void 0&&(X.preserveDrawingBuffer=!1),X.audioEngine===void 0&&(X.audioEngine=!0),X.stencil===void 0&&(X.stencil=!0),X.premultipliedAlpha===!1&&(this.premultipliedAlpha=!1),X.xrCompatible===void 0&&(X.xrCompatible=!0),this._doNotHandleContextLost=!!X.doNotHandleContextLost,navigator&&navigator.userAgent){var de=navigator.userAgent;this.hostInformation.isMobile=de.indexOf("Mobile")!==-1;for(var pe=0,ae=N.ExceptionList;pe0&&parseInt(Q[Q.length-1])>=G)continue}for(var oe=0,re=$;oe1?this._shaderProcessor=new g.a:this._shaderProcessor=new S,this._badOS=/iPad/i.test(navigator.userAgent)||/iPhone/i.test(navigator.userAgent),this._badDesktopOS=/^((?!chrome|android).)*safari/i.test(navigator.userAgent),this._creationOptions=X,console.log("Babylon.js v"+N.Version+" - "+this.description)}}return Object.defineProperty(N,"NpmPackage",{get:function(){return"babylonjs@4.2.2"},enumerable:!1,configurable:!0}),Object.defineProperty(N,"Version",{get:function(){return"4.2.2"},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"description",{get:function(){var I="WebGL"+this.webGLVersion;return this._caps.parallelShaderCompile&&(I+=" - Parallel shader compilation"),I},enumerable:!1,configurable:!0}),Object.defineProperty(N,"ShadersRepository",{get:function(){return _.a.ShadersRepository},set:function(I){_.a.ShadersRepository=I},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"supportsUniformBuffers",{get:function(){return this.webGLVersion>1&&!this.disableUniformBuffers},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"_shouldUseHighPrecisionShader",{get:function(){return!(!this._caps.highPrecisionShaderSupported||!this._highPrecisionShadersAllowed)},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"needPOTTextures",{get:function(){return this._webGLVersion<2||this.forcePOTTextures},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"doNotHandleContextLost",{get:function(){return this._doNotHandleContextLost},set:function(I){this._doNotHandleContextLost=I},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"_supportsHardwareTextureRescaling",{get:function(){return!1},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"framebufferDimensionsObject",{set:function(I){this._framebufferDimensionsObject=I},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"currentViewport",{get:function(){return this._cachedViewport},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"emptyTexture",{get:function(){return this._emptyTexture||(this._emptyTexture=this.createRawTexture(new Uint8Array(4),1,1,m.a.TEXTUREFORMAT_RGBA,!1,!1,m.a.TEXTURE_NEAREST_SAMPLINGMODE)),this._emptyTexture},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"emptyTexture3D",{get:function(){return this._emptyTexture3D||(this._emptyTexture3D=this.createRawTexture3D(new Uint8Array(4),1,1,1,m.a.TEXTUREFORMAT_RGBA,!1,!1,m.a.TEXTURE_NEAREST_SAMPLINGMODE)),this._emptyTexture3D},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"emptyTexture2DArray",{get:function(){return this._emptyTexture2DArray||(this._emptyTexture2DArray=this.createRawTexture2DArray(new Uint8Array(4),1,1,1,m.a.TEXTUREFORMAT_RGBA,!1,!1,m.a.TEXTURE_NEAREST_SAMPLINGMODE)),this._emptyTexture2DArray},enumerable:!1,configurable:!0}),Object.defineProperty(N.prototype,"emptyCubeTexture",{get:function(){if(!this._emptyCubeTexture){var I=new Uint8Array(4),V=[I,I,I,I,I,I];this._emptyCubeTexture=this.createRawCubeTexture(V,1,m.a.TEXTUREFORMAT_RGBA,m.a.TEXTURETYPE_UNSIGNED_INT,!1,!1,m.a.TEXTURE_NEAREST_SAMPLINGMODE)}return this._emptyCubeTexture},enumerable:!1,configurable:!0}),N.prototype._rebuildInternalTextures=function(){for(var I=0,V=this._internalTexturesCache.slice();I1?this._gl.getParameter(this._gl.MAX_SAMPLES):1,maxCubemapTextureSize:this._gl.getParameter(this._gl.MAX_CUBE_MAP_TEXTURE_SIZE),maxRenderTextureSize:this._gl.getParameter(this._gl.MAX_RENDERBUFFER_SIZE),maxVertexAttribs:this._gl.getParameter(this._gl.MAX_VERTEX_ATTRIBS),maxVaryingVectors:this._gl.getParameter(this._gl.MAX_VARYING_VECTORS),maxFragmentUniformVectors:this._gl.getParameter(this._gl.MAX_FRAGMENT_UNIFORM_VECTORS),maxVertexUniformVectors:this._gl.getParameter(this._gl.MAX_VERTEX_UNIFORM_VECTORS),parallelShaderCompile:this._gl.getExtension("KHR_parallel_shader_compile"),standardDerivatives:this._webGLVersion>1||this._gl.getExtension("OES_standard_derivatives")!==null,maxAnisotropy:1,astc:this._gl.getExtension("WEBGL_compressed_texture_astc")||this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_astc"),bptc:this._gl.getExtension("EXT_texture_compression_bptc")||this._gl.getExtension("WEBKIT_EXT_texture_compression_bptc"),s3tc:this._gl.getExtension("WEBGL_compressed_texture_s3tc")||this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc"),pvrtc:this._gl.getExtension("WEBGL_compressed_texture_pvrtc")||this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),etc1:this._gl.getExtension("WEBGL_compressed_texture_etc1")||this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_etc1"),etc2:this._gl.getExtension("WEBGL_compressed_texture_etc")||this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_etc")||this._gl.getExtension("WEBGL_compressed_texture_es3_0"),textureAnisotropicFilterExtension:this._gl.getExtension("EXT_texture_filter_anisotropic")||this._gl.getExtension("WEBKIT_EXT_texture_filter_anisotropic")||this._gl.getExtension("MOZ_EXT_texture_filter_anisotropic"),uintIndices:this._webGLVersion>1||this._gl.getExtension("OES_element_index_uint")!==null,fragmentDepthSupported:this._webGLVersion>1||this._gl.getExtension("EXT_frag_depth")!==null,highPrecisionShaderSupported:!1,timerQuery:this._gl.getExtension("EXT_disjoint_timer_query_webgl2")||this._gl.getExtension("EXT_disjoint_timer_query"),canUseTimestampForTimerQuery:!1,drawBuffersExtension:!1,maxMSAASamples:1,colorBufferFloat:this._webGLVersion>1&&this._gl.getExtension("EXT_color_buffer_float"),textureFloat:!!(this._webGLVersion>1||this._gl.getExtension("OES_texture_float")),textureHalfFloat:!!(this._webGLVersion>1||this._gl.getExtension("OES_texture_half_float")),textureHalfFloatRender:!1,textureFloatLinearFiltering:!1,textureFloatRender:!1,textureHalfFloatLinearFiltering:!1,vertexArrayObject:!1,instancedArrays:!1,textureLOD:!!(this._webGLVersion>1||this._gl.getExtension("EXT_shader_texture_lod")),blendMinMax:!1,multiview:this._gl.getExtension("OVR_multiview2"),oculusMultiview:this._gl.getExtension("OCULUS_multiview"),depthTextureExtension:!1},this._glVersion=this._gl.getParameter(this._gl.VERSION);var I=this._gl.getExtension("WEBGL_debug_renderer_info");if(I!=null&&(this._glRenderer=this._gl.getParameter(I.UNMASKED_RENDERER_WEBGL),this._glVendor=this._gl.getParameter(I.UNMASKED_VENDOR_WEBGL)),this._glVendor||(this._glVendor="Unknown vendor"),this._glRenderer||(this._glRenderer="Unknown renderer"),this._gl.HALF_FLOAT_OES!==36193&&(this._gl.HALF_FLOAT_OES=36193),this._gl.RGBA16F!==34842&&(this._gl.RGBA16F=34842),this._gl.RGBA32F!==34836&&(this._gl.RGBA32F=34836),this._gl.DEPTH24_STENCIL8!==35056&&(this._gl.DEPTH24_STENCIL8=35056),this._caps.timerQuery&&(this._webGLVersion===1&&(this._gl.getQuery=this._caps.timerQuery.getQueryEXT.bind(this._caps.timerQuery)),this._caps.canUseTimestampForTimerQuery=this._gl.getQuery(this._caps.timerQuery.TIMESTAMP_EXT,this._caps.timerQuery.QUERY_COUNTER_BITS_EXT)>0),this._caps.maxAnisotropy=this._caps.textureAnisotropicFilterExtension?this._gl.getParameter(this._caps.textureAnisotropicFilterExtension.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0,this._caps.textureFloatLinearFiltering=!(!this._caps.textureFloat||!this._gl.getExtension("OES_texture_float_linear")),this._caps.textureFloatRender=!(!this._caps.textureFloat||!this._canRenderToFloatFramebuffer()),this._caps.textureHalfFloatLinearFiltering=!!(this._webGLVersion>1||this._caps.textureHalfFloat&&this._gl.getExtension("OES_texture_half_float_linear")),this._webGLVersion>1&&this._gl.HALF_FLOAT_OES!==5131&&(this._gl.HALF_FLOAT_OES=5131),this._caps.textureHalfFloatRender=this._caps.textureHalfFloat&&this._canRenderToHalfFloatFramebuffer(),this._webGLVersion>1)this._caps.drawBuffersExtension=!0,this._caps.maxMSAASamples=this._gl.getParameter(this._gl.MAX_SAMPLES);else{var V=this._gl.getExtension("WEBGL_draw_buffers");if(V!==null){this._caps.drawBuffersExtension=!0,this._gl.drawBuffers=V.drawBuffersWEBGL.bind(V),this._gl.DRAW_FRAMEBUFFER=this._gl.FRAMEBUFFER;for(var X=0;X<16;X++)this._gl["COLOR_ATTACHMENT"+X+"_WEBGL"]=V["COLOR_ATTACHMENT"+X+"_WEBGL"]}}if(this._webGLVersion>1)this._caps.depthTextureExtension=!0;else{var j=this._gl.getExtension("WEBGL_depth_texture");j!=null&&(this._caps.depthTextureExtension=!0,this._gl.UNSIGNED_INT_24_8=j.UNSIGNED_INT_24_8_WEBGL)}if(this.disableVertexArrayObjects)this._caps.vertexArrayObject=!1;else if(this._webGLVersion>1)this._caps.vertexArrayObject=!0;else{var ne=this._gl.getExtension("OES_vertex_array_object");ne!=null&&(this._caps.vertexArrayObject=!0,this._gl.createVertexArray=ne.createVertexArrayOES.bind(ne),this._gl.bindVertexArray=ne.bindVertexArrayOES.bind(ne),this._gl.deleteVertexArray=ne.deleteVertexArrayOES.bind(ne))}if(this._webGLVersion>1)this._caps.instancedArrays=!0;else{var te=this._gl.getExtension("ANGLE_instanced_arrays");te!=null?(this._caps.instancedArrays=!0,this._gl.drawArraysInstanced=te.drawArraysInstancedANGLE.bind(te),this._gl.drawElementsInstanced=te.drawElementsInstancedANGLE.bind(te),this._gl.vertexAttribDivisor=te.vertexAttribDivisorANGLE.bind(te)):this._caps.instancedArrays=!1}if(this._gl.getShaderPrecisionFormat){var de=this._gl.getShaderPrecisionFormat(this._gl.VERTEX_SHADER,this._gl.HIGH_FLOAT),pe=this._gl.getShaderPrecisionFormat(this._gl.FRAGMENT_SHADER,this._gl.HIGH_FLOAT);de&&pe&&(this._caps.highPrecisionShaderSupported=de.precision!==0&&pe.precision!==0)}if(this._webGLVersion>1)this._caps.blendMinMax=!0;else{var ae=this._gl.getExtension("EXT_blend_minmax");ae!=null&&(this._caps.blendMinMax=!0,this._gl.MAX=ae.MAX_EXT,this._gl.MIN=ae.MIN_EXT)}this._depthCullingState.depthTest=!0,this._depthCullingState.depthFunc=this._gl.LEQUAL,this._depthCullingState.depthMask=!0,this._maxSimultaneousTextures=this._caps.maxCombinedTexturesImageUnits;for(var ee=0;ee=0&&this._activeRenderLoops.splice(V,1)}else this._activeRenderLoops=[]},N.prototype._renderLoop=function(){if(!this._contextWasLost){var I=!0;if(!this.renderEvenInBackground&&this._windowIsBackground&&(I=!1),I){this.beginFrame();for(var V=0;V0?this._frameHandler=this._queueNewFrame(this._boundRenderFunction,this.getHostWindow()):this._renderingQueueLaunched=!1},N.prototype.getRenderingCanvas=function(){return this._renderingCanvas},N.prototype.getHostWindow=function(){return A.a.IsWindowObjectExist()?this._renderingCanvas&&this._renderingCanvas.ownerDocument&&this._renderingCanvas.ownerDocument.defaultView?this._renderingCanvas.ownerDocument.defaultView:window:null},N.prototype.getRenderWidth=function(I){return I===void 0&&(I=!1),!I&&this._currentRenderTarget?this._currentRenderTarget.width:this._framebufferDimensionsObject?this._framebufferDimensionsObject.framebufferWidth:this._gl.drawingBufferWidth},N.prototype.getRenderHeight=function(I){return I===void 0&&(I=!1),!I&&this._currentRenderTarget?this._currentRenderTarget.height:this._framebufferDimensionsObject?this._framebufferDimensionsObject.framebufferHeight:this._gl.drawingBufferHeight},N.prototype._queueNewFrame=function(I,V){return N.QueueNewFrame(I,V)},N.prototype.runRenderLoop=function(I){this._activeRenderLoops.indexOf(I)===-1&&(this._activeRenderLoops.push(I),this._renderingQueueLaunched||(this._renderingQueueLaunched=!0,this._boundRenderFunction=this._renderLoop.bind(this),this._frameHandler=this._queueNewFrame(this._boundRenderFunction,this.getHostWindow())))},N.prototype.clear=function(I,V,X,j){j===void 0&&(j=!1),this.applyStates();var ne=0;V&&I&&(this._gl.clearColor(I.r,I.g,I.b,I.a!==void 0?I.a:1),ne|=this._gl.COLOR_BUFFER_BIT),X&&(this.useReverseDepthBuffer?(this._depthCullingState.depthFunc=this._gl.GREATER,this._gl.clearDepth(0)):this._gl.clearDepth(1),ne|=this._gl.DEPTH_BUFFER_BIT),j&&(this._gl.clearStencil(0),ne|=this._gl.STENCIL_BUFFER_BIT),this._gl.clear(ne)},N.prototype._viewport=function(I,V,X,j){I===this._viewportCached.x&&V===this._viewportCached.y&&X===this._viewportCached.z&&j===this._viewportCached.w||(this._viewportCached.x=I,this._viewportCached.y=V,this._viewportCached.z=X,this._viewportCached.w=j,this._gl.viewport(I,V,X,j))},N.prototype.setViewport=function(I,V,X){var j=V||this.getRenderWidth(),ne=X||this.getRenderHeight(),te=I.x||0,de=I.y||0;this._cachedViewport=I,this._viewport(te*j,de*ne,j*I.width,ne*I.height)},N.prototype.beginFrame=function(){},N.prototype.endFrame=function(){this._badOS&&this.flushFramebuffer()},N.prototype.resize=function(){var I,V;A.a.IsWindowObjectExist()?(I=this._renderingCanvas?this._renderingCanvas.clientWidth||this._renderingCanvas.width:window.innerWidth,V=this._renderingCanvas?this._renderingCanvas.clientHeight||this._renderingCanvas.height:window.innerHeight):(I=this._renderingCanvas?this._renderingCanvas.width:100,V=this._renderingCanvas?this._renderingCanvas.height:100),this.setSize(I/this._hardwareScalingLevel,V/this._hardwareScalingLevel)},N.prototype.setSize=function(I,V){return!!this._renderingCanvas&&(I|=0,V|=0,(this._renderingCanvas.width!==I||this._renderingCanvas.height!==V)&&(this._renderingCanvas.width=I,this._renderingCanvas.height=V,!0))},N.prototype.bindFramebuffer=function(I,V,X,j,ne,te,de){V===void 0&&(V=0),te===void 0&&(te=0),de===void 0&&(de=0),this._currentRenderTarget&&this.unBindFramebuffer(this._currentRenderTarget),this._currentRenderTarget=I,this._bindUnboundFramebuffer(I._MSAAFramebuffer?I._MSAAFramebuffer:I._framebuffer);var pe=this._gl;I.is2DArray?pe.framebufferTextureLayer(pe.FRAMEBUFFER,pe.COLOR_ATTACHMENT0,I._webGLTexture,te,de):I.isCube&&pe.framebufferTexture2D(pe.FRAMEBUFFER,pe.COLOR_ATTACHMENT0,pe.TEXTURE_CUBE_MAP_POSITIVE_X+V,I._webGLTexture,te);var ae=I._depthStencilTexture;if(ae){var ee=ae._generateStencilBuffer?pe.DEPTH_STENCIL_ATTACHMENT:pe.DEPTH_ATTACHMENT;I.is2DArray?pe.framebufferTextureLayer(pe.FRAMEBUFFER,ee,ae._webGLTexture,te,de):I.isCube?pe.framebufferTexture2D(pe.FRAMEBUFFER,ee,pe.TEXTURE_CUBE_MAP_POSITIVE_X+V,ae._webGLTexture,te):pe.framebufferTexture2D(pe.FRAMEBUFFER,ee,pe.TEXTURE_2D,ae._webGLTexture,te)}this._cachedViewport&&!ne?this.setViewport(this._cachedViewport,X,j):(X||(X=I.width,te&&(X/=Math.pow(2,te))),j||(j=I.height,te&&(j/=Math.pow(2,te))),this._viewport(0,0,X,j)),this.wipeCaches()},N.prototype._bindUnboundFramebuffer=function(I){this._currentFramebuffer!==I&&(this._gl.bindFramebuffer(this._gl.FRAMEBUFFER,I),this._currentFramebuffer=I)},N.prototype.unBindFramebuffer=function(I,V,X){V===void 0&&(V=!1),this._currentRenderTarget=null;var j=this._gl;if(I._MSAAFramebuffer){if(I._textureArray)return void this.unBindMultiColorAttachmentFramebuffer(I._textureArray,V,X);j.bindFramebuffer(j.READ_FRAMEBUFFER,I._MSAAFramebuffer),j.bindFramebuffer(j.DRAW_FRAMEBUFFER,I._framebuffer),j.blitFramebuffer(0,0,I.width,I.height,0,0,I.width,I.height,j.COLOR_BUFFER_BIT,j.NEAREST)}!I.generateMipMaps||V||I.isCube||(this._bindTextureDirectly(j.TEXTURE_2D,I,!0),j.generateMipmap(j.TEXTURE_2D),this._bindTextureDirectly(j.TEXTURE_2D,null)),X&&(I._MSAAFramebuffer&&this._bindUnboundFramebuffer(I._framebuffer),X()),this._bindUnboundFramebuffer(null)},N.prototype.flushFramebuffer=function(){this._gl.flush()},N.prototype.restoreDefaultFramebuffer=function(){this._currentRenderTarget?this.unBindFramebuffer(this._currentRenderTarget):this._bindUnboundFramebuffer(null),this._cachedViewport&&this.setViewport(this._cachedViewport),this.wipeCaches()},N.prototype._resetVertexBufferBinding=function(){this.bindArrayBuffer(null),this._cachedVertexBuffers=null},N.prototype.createVertexBuffer=function(I){return this._createVertexBuffer(I,this._gl.STATIC_DRAW)},N.prototype._createVertexBuffer=function(I,V){var X=this._gl.createBuffer();if(!X)throw new Error("Unable to create vertex buffer");var j=new l.a(X);return this.bindArrayBuffer(j),I instanceof Array?this._gl.bufferData(this._gl.ARRAY_BUFFER,new Float32Array(I),this._gl.STATIC_DRAW):this._gl.bufferData(this._gl.ARRAY_BUFFER,I,this._gl.STATIC_DRAW),this._resetVertexBufferBinding(),j.references=1,j},N.prototype.createDynamicVertexBuffer=function(I){return this._createVertexBuffer(I,this._gl.DYNAMIC_DRAW)},N.prototype._resetIndexBufferBinding=function(){this.bindIndexBuffer(null),this._cachedIndexBuffer=null},N.prototype.createIndexBuffer=function(I,V){var X=this._gl.createBuffer(),j=new l.a(X);if(!X)throw new Error("Unable to create index buffer");this.bindIndexBuffer(j);var ne=this._normalizeIndexData(I);return this._gl.bufferData(this._gl.ELEMENT_ARRAY_BUFFER,ne,V?this._gl.DYNAMIC_DRAW:this._gl.STATIC_DRAW),this._resetIndexBufferBinding(),j.references=1,j.is32Bits=ne.BYTES_PER_ELEMENT===4,j},N.prototype._normalizeIndexData=function(I){if(I instanceof Uint16Array)return I;if(this._caps.uintIndices){if(I instanceof Uint32Array)return I;for(var V=0;V=65535)return new Uint32Array(I);return new Uint16Array(I)}return new Uint16Array(I)},N.prototype.bindArrayBuffer=function(I){this._vaoRecordInProgress||this._unbindVertexArrayObject(),this.bindBuffer(I,this._gl.ARRAY_BUFFER)},N.prototype.bindUniformBlock=function(I,V,X){var j=I.program,ne=this._gl.getUniformBlockIndex(j,V);this._gl.uniformBlockBinding(j,ne,X)},N.prototype.bindIndexBuffer=function(I){this._vaoRecordInProgress||this._unbindVertexArrayObject(),this.bindBuffer(I,this._gl.ELEMENT_ARRAY_BUFFER)},N.prototype.bindBuffer=function(I,V){(this._vaoRecordInProgress||this._currentBoundBuffer[V]!==I)&&(this._gl.bindBuffer(V,I?I.underlyingResource:null),this._currentBoundBuffer[V]=I)},N.prototype.updateArrayBuffer=function(I){this._gl.bufferSubData(this._gl.ARRAY_BUFFER,0,I)},N.prototype._vertexAttribPointer=function(I,V,X,j,ne,te,de){var pe=this._currentBufferPointers[V];if(pe){var ae=!1;pe.active?(pe.buffer!==I&&(pe.buffer=I,ae=!0),pe.size!==X&&(pe.size=X,ae=!0),pe.type!==j&&(pe.type=j,ae=!0),pe.normalized!==ne&&(pe.normalized=ne,ae=!0),pe.stride!==te&&(pe.stride=te,ae=!0),pe.offset!==de&&(pe.offset=de,ae=!0)):(ae=!0,pe.active=!0,pe.index=V,pe.size=X,pe.type=j,pe.normalized=ne,pe.stride=te,pe.offset=de,pe.buffer=I),(ae||this._vaoRecordInProgress)&&(this.bindArrayBuffer(I),this._gl.vertexAttribPointer(V,X,j,ne,te,de))}},N.prototype._bindIndexBufferWithCache=function(I){I!=null&&this._cachedIndexBuffer!==I&&(this._cachedIndexBuffer=I,this.bindIndexBuffer(I),this._uintIndicesCurrentlySet=I.is32Bits)},N.prototype._bindVertexBuffersAttributes=function(I,V){var X=V.getAttributesNames();this._vaoRecordInProgress||this._unbindVertexArrayObject(),this.unbindAllAttributes();for(var j=0;j=0){var te=I[X[j]];if(!te)continue;this._gl.enableVertexAttribArray(ne),this._vaoRecordInProgress||(this._vertexAttribArraysEnabled[ne]=!0);var de=te.getBuffer();de&&(this._vertexAttribPointer(de,ne,te.getSize(),te.type,te.normalized,te.byteStride,te.byteOffset),te.getIsInstanced()&&(this._gl.vertexAttribDivisor(ne,te.getInstanceDivisor()),this._vaoRecordInProgress||(this._currentInstanceLocations.push(ne),this._currentInstanceBuffers.push(de))))}}},N.prototype.recordVertexArrayObject=function(I,V,X){var j=this._gl.createVertexArray();return this._vaoRecordInProgress=!0,this._gl.bindVertexArray(j),this._mustWipeVertexAttributes=!0,this._bindVertexBuffersAttributes(I,X),this.bindIndexBuffer(V),this._vaoRecordInProgress=!1,this._gl.bindVertexArray(null),j},N.prototype.bindVertexArrayObject=function(I,V){this._cachedVertexArrayObject!==I&&(this._cachedVertexArrayObject=I,this._gl.bindVertexArray(I),this._cachedVertexBuffers=null,this._cachedIndexBuffer=null,this._uintIndicesCurrentlySet=V!=null&&V.is32Bits,this._mustWipeVertexAttributes=!0)},N.prototype.bindBuffersDirectly=function(I,V,X,j,ne){if(this._cachedVertexBuffers!==I||this._cachedEffectForVertexBuffers!==ne){this._cachedVertexBuffers=I,this._cachedEffectForVertexBuffers=ne;var te=ne.getAttributesCount();this._unbindVertexArrayObject(),this.unbindAllAttributes();for(var de=0,pe=0;pe=0&&(this._gl.enableVertexAttribArray(ae),this._vertexAttribArraysEnabled[ae]=!0,this._vertexAttribPointer(I,ae,X[pe],this._gl.FLOAT,!1,j,de)),de+=4*X[pe]}}this._bindIndexBufferWithCache(V)},N.prototype._unbindVertexArrayObject=function(){this._cachedVertexArrayObject&&(this._cachedVertexArrayObject=null,this._gl.bindVertexArray(null))},N.prototype.bindBuffers=function(I,V,X){this._cachedVertexBuffers===I&&this._cachedEffectForVertexBuffers===X||(this._cachedVertexBuffers=I,this._cachedEffectForVertexBuffers=X,this._bindVertexBuffersAttributes(I,X)),this._bindIndexBufferWithCache(V)},N.prototype.unbindInstanceAttributes=function(){for(var I,V=0,X=this._currentInstanceLocations.length;V1?`#version 300 es +#define WEBGL2 +`:"",pe=this._compileShader(V,"vertex",j,de),ae=this._compileShader(X,"fragment",j,de);return this._createShaderProgram(I,pe,ae,ne,te)},N.prototype.createPipelineContext=function(){var I=new h.a;return I.engine=this,this._caps.parallelShaderCompile&&(I.isParallelCompiled=!0),I},N.prototype._createShaderProgram=function(I,V,X,j,ne){var te=j.createProgram();if(I.program=te,!te)throw new Error("Unable to create program");return j.attachShader(te,V),j.attachShader(te,X),j.linkProgram(te),I.context=j,I.vertexShader=V,I.fragmentShader=X,I.isParallelCompiled||this._finalizePipelineContext(I),te},N.prototype._finalizePipelineContext=function(I){var V=I.context,X=I.vertexShader,j=I.fragmentShader,ne=I.program;if(!V.getProgramParameter(ne,V.LINK_STATUS)){var te,de;if(!this._gl.getShaderParameter(X,this._gl.COMPILE_STATUS)&&(te=this._gl.getShaderInfoLog(X)))throw I.vertexCompilationError=te,new Error("VERTEX SHADER "+te);if(!this._gl.getShaderParameter(j,this._gl.COMPILE_STATUS)&&(te=this._gl.getShaderInfoLog(j)))throw I.fragmentCompilationError=te,new Error("FRAGMENT SHADER "+te);if(de=V.getProgramInfoLog(ne))throw I.programLinkError=de,new Error(de)}if(this.validateShaderPrograms&&(V.validateProgram(ne),!V.getProgramParameter(ne,V.VALIDATE_STATUS)&&(de=V.getProgramInfoLog(ne))))throw I.programValidationError=de,new Error(de);V.deleteShader(X),V.deleteShader(j),I.vertexShader=void 0,I.fragmentShader=void 0,I.onCompiled&&(I.onCompiled(),I.onCompiled=void 0)},N.prototype._preparePipelineContext=function(I,V,X,j,ne,te,de){var pe=I;pe.program=j?this.createRawShaderProgram(pe,V,X,void 0,de):this.createShaderProgram(pe,V,X,te,void 0,de),pe.program.__SPECTOR_rebuildProgram=ne},N.prototype._isRenderingStateCompiled=function(I){var V=I;return!!this._gl.getProgramParameter(V.program,this._caps.parallelShaderCompile.COMPLETION_STATUS_KHR)&&(this._finalizePipelineContext(V),!0)},N.prototype._executeWhenRenderingStateIsCompiled=function(I,V){var X=I;if(X.isParallelCompiled){var j=X.onCompiled;X.onCompiled=j?function(){j(),V()}:V}else V()},N.prototype.getUniforms=function(I,V){for(var X=new Array,j=I,ne=0;ne-1?I.substring(H).toLowerCase():""),W=null;Z.indexOf("?")>-1&&(Z=Z.split("?")[0]);for(var q=0,he=N._TextureLoaders;qGe||ye.height>Ge||!G._supportsHardwareTextureRescaling)return G._prepareWorkingCanvas(),!(!G._workingCanvas||!G._workingContext)&&(G._workingCanvas.width=Be,G._workingCanvas.height=ke,G._workingContext.drawImage(ye,0,0,ye.width,ye.height,0,0,Be,ke),je.texImage2D(je.TEXTURE_2D,0,Qe,Qe,je.UNSIGNED_BYTE,G._workingCanvas),Y.width=Be,Y.height=ke,!1);var nt=new c.a(G,c.b.Temp);return G._bindTextureDirectly(je.TEXTURE_2D,nt,!0),je.texImage2D(je.TEXTURE_2D,0,Qe,Qe,je.UNSIGNED_BYTE,ye),G._rescaleTexture(nt,Y,j,Qe,function(){G._releaseTexture(nt),G._bindTextureDirectly(je.TEXTURE_2D,Y,!0),We()}),!0},ne)};!Q||re?pe&&(pe.decoding||pe.close)?Pe(pe):N._FileToolsLoadImage(I,Pe,_e,j?j.offlineProvider:null,$):typeof pe=="string"||pe instanceof ArrayBuffer||ArrayBuffer.isView(pe)||pe instanceof Blob?N._FileToolsLoadImage(pe,Pe,_e,j?j.offlineProvider:null,$):pe&&Pe(pe)}return Y},N._FileToolsLoadImage=function(I,V,X,j,ne){throw R.a.WarnImport("FileTools")},N.prototype._rescaleTexture=function(I,V,X,j,ne){},N.prototype.createRawTexture=function(I,V,X,j,ne,te,de,pe,ae){throw ae===void 0&&(ae=m.a.TEXTURETYPE_UNSIGNED_INT),R.a.WarnImport("Engine.RawTexture")},N.prototype.createRawCubeTexture=function(I,V,X,j,ne,te,de,pe){throw R.a.WarnImport("Engine.RawTexture")},N.prototype.createRawTexture3D=function(I,V,X,j,ne,te,de,pe,ae,ee){throw ee===void 0&&(ee=m.a.TEXTURETYPE_UNSIGNED_INT),R.a.WarnImport("Engine.RawTexture")},N.prototype.createRawTexture2DArray=function(I,V,X,j,ne,te,de,pe,ae,ee){throw ee===void 0&&(ee=m.a.TEXTURETYPE_UNSIGNED_INT),R.a.WarnImport("Engine.RawTexture")},N.prototype._unpackFlipY=function(I){this._unpackFlipYCached!==I&&(this._gl.pixelStorei(this._gl.UNPACK_FLIP_Y_WEBGL,I?1:0),this.enableUnpackFlipYCached&&(this._unpackFlipYCached=I))},N.prototype._getUnpackAlignement=function(){return this._gl.getParameter(this._gl.UNPACK_ALIGNMENT)},N.prototype._getTextureTarget=function(I){return I.isCube?this._gl.TEXTURE_CUBE_MAP:I.is3D?this._gl.TEXTURE_3D:I.is2DArray||I.isMultiview?this._gl.TEXTURE_2D_ARRAY:this._gl.TEXTURE_2D},N.prototype.updateTextureSamplingMode=function(I,V,X){X===void 0&&(X=!1);var j=this._getTextureTarget(V),ne=this._getSamplingParameters(I,V.generateMipMaps||X);this._setTextureParameterInteger(j,this._gl.TEXTURE_MAG_FILTER,ne.mag,V),this._setTextureParameterInteger(j,this._gl.TEXTURE_MIN_FILTER,ne.min),X&&(V.generateMipMaps=!0,this._gl.generateMipmap(j)),this._bindTextureDirectly(j,null),V.samplingMode=I},N.prototype.updateTextureWrappingMode=function(I,V,X,j){X===void 0&&(X=null),j===void 0&&(j=null);var ne=this._getTextureTarget(I);V!==null&&(this._setTextureParameterInteger(ne,this._gl.TEXTURE_WRAP_S,this._getTextureWrapMode(V),I),I._cachedWrapU=V),X!==null&&(this._setTextureParameterInteger(ne,this._gl.TEXTURE_WRAP_T,this._getTextureWrapMode(X),I),I._cachedWrapV=X),(I.is2DArray||I.is3D)&&j!==null&&(this._setTextureParameterInteger(ne,this._gl.TEXTURE_WRAP_R,this._getTextureWrapMode(j),I),I._cachedWrapR=j),this._bindTextureDirectly(ne,null)},N.prototype._setupDepthStencilTexture=function(I,V,X,j,ne){var te=V.width||V,de=V.height||V,pe=V.layers||0;I.baseWidth=te,I.baseHeight=de,I.width=te,I.height=de,I.is2DArray=pe>0,I.depth=pe,I.isReady=!0,I.samples=1,I.generateMipMaps=!1,I._generateDepthBuffer=!0,I._generateStencilBuffer=X,I.samplingMode=j?m.a.TEXTURE_BILINEAR_SAMPLINGMODE:m.a.TEXTURE_NEAREST_SAMPLINGMODE,I.type=m.a.TEXTURETYPE_UNSIGNED_INT,I._comparisonFunction=ne;var ae=this._gl,ee=this._getTextureTarget(I),K=this._getSamplingParameters(I.samplingMode,!1);ae.texParameteri(ee,ae.TEXTURE_MAG_FILTER,K.mag),ae.texParameteri(ee,ae.TEXTURE_MIN_FILTER,K.min),ae.texParameteri(ee,ae.TEXTURE_WRAP_S,ae.CLAMP_TO_EDGE),ae.texParameteri(ee,ae.TEXTURE_WRAP_T,ae.CLAMP_TO_EDGE),ne===0?(ae.texParameteri(ee,ae.TEXTURE_COMPARE_FUNC,m.a.LEQUAL),ae.texParameteri(ee,ae.TEXTURE_COMPARE_MODE,ae.NONE)):(ae.texParameteri(ee,ae.TEXTURE_COMPARE_FUNC,ne),ae.texParameteri(ee,ae.TEXTURE_COMPARE_MODE,ae.COMPARE_REF_TO_TEXTURE))},N.prototype._uploadCompressedDataToTextureDirectly=function(I,V,X,j,ne,te,de){te===void 0&&(te=0),de===void 0&&(de=0);var pe=this._gl,ae=pe.TEXTURE_2D;I.isCube&&(ae=pe.TEXTURE_CUBE_MAP_POSITIVE_X+te),this._gl.compressedTexImage2D(ae,de,V,X,j,0,ne)},N.prototype._uploadDataToTextureDirectly=function(I,V,X,j,ne,te){X===void 0&&(X=0),j===void 0&&(j=0),te===void 0&&(te=!1);var de=this._gl,pe=this._getWebGLTextureType(I.type),ae=this._getInternalFormat(I.format),ee=ne===void 0?this._getRGBABufferInternalSizedFormat(I.type,I.format):this._getInternalFormat(ne);this._unpackFlipY(I.invertY);var K=de.TEXTURE_2D;I.isCube&&(K=de.TEXTURE_CUBE_MAP_POSITIVE_X+X);var $=Math.round(Math.log(I.width)*Math.LOG2E),L=Math.round(Math.log(I.height)*Math.LOG2E),G=te?I.width:Math.pow(2,Math.max($-j,0)),Q=te?I.height:Math.pow(2,Math.max(L-j,0));de.texImage2D(K,j,ee,G,Q,0,ae,pe,V)},N.prototype.updateTextureData=function(I,V,X,j,ne,te,de,pe){de===void 0&&(de=0),pe===void 0&&(pe=0);var ae=this._gl,ee=this._getWebGLTextureType(I.type),K=this._getInternalFormat(I.format);this._unpackFlipY(I.invertY);var $=ae.TEXTURE_2D;I.isCube&&($=ae.TEXTURE_CUBE_MAP_POSITIVE_X+de),ae.texSubImage2D($,pe,X,j,ne,te,K,ee,V)},N.prototype._uploadArrayBufferViewToTexture=function(I,V,X,j){X===void 0&&(X=0),j===void 0&&(j=0);var ne=this._gl,te=I.isCube?ne.TEXTURE_CUBE_MAP:ne.TEXTURE_2D;this._bindTextureDirectly(te,I,!0),this._uploadDataToTextureDirectly(I,V,X,j),this._bindTextureDirectly(te,null,!0)},N.prototype._prepareWebGLTextureContinuation=function(I,V,X,j,ne){var te=this._gl;if(te){var de=this._getSamplingParameters(ne,!X);te.texParameteri(te.TEXTURE_2D,te.TEXTURE_MAG_FILTER,de.mag),te.texParameteri(te.TEXTURE_2D,te.TEXTURE_MIN_FILTER,de.min),X||j||te.generateMipmap(te.TEXTURE_2D),this._bindTextureDirectly(te.TEXTURE_2D,null),V&&V._removePendingData(I),I.onLoadedObservable.notifyObservers(I),I.onLoadedObservable.clear()}},N.prototype._prepareWebGLTexture=function(I,V,X,j,ne,te,de,pe,ae){var ee=this;ae===void 0&&(ae=m.a.TEXTURE_TRILINEAR_SAMPLINGMODE);var K=this.getCaps().maxTextureSize,$=Math.min(K,this.needPOTTextures?N.GetExponentOfTwo(X,K):X),L=Math.min(K,this.needPOTTextures?N.GetExponentOfTwo(j,K):j),G=this._gl;G&&(I._webGLTexture?(this._bindTextureDirectly(G.TEXTURE_2D,I,!0),this._unpackFlipY(ne===void 0||!!ne),I.baseWidth=X,I.baseHeight=j,I.width=$,I.height=L,I.isReady=!0,pe($,L,function(){ee._prepareWebGLTextureContinuation(I,V,te,de,ae)})||this._prepareWebGLTextureContinuation(I,V,te,de,ae)):V&&V._removePendingData(I))},N.prototype._setupFramebufferDepthAttachments=function(I,V,X,j,ne){ne===void 0&&(ne=1);var te=this._gl;if(I&&V)return this._getDepthStencilBuffer(X,j,ne,te.DEPTH_STENCIL,te.DEPTH24_STENCIL8,te.DEPTH_STENCIL_ATTACHMENT);if(V){var de=te.DEPTH_COMPONENT16;return this._webGLVersion>1&&(de=te.DEPTH_COMPONENT32F),this._getDepthStencilBuffer(X,j,ne,de,de,te.DEPTH_ATTACHMENT)}return I?this._getDepthStencilBuffer(X,j,ne,te.STENCIL_INDEX8,te.STENCIL_INDEX8,te.STENCIL_ATTACHMENT):null},N.prototype._releaseFramebufferObjects=function(I){var V=this._gl;I._framebuffer&&(V.deleteFramebuffer(I._framebuffer),I._framebuffer=null),I._depthStencilBuffer&&(V.deleteRenderbuffer(I._depthStencilBuffer),I._depthStencilBuffer=null),I._MSAAFramebuffer&&(V.deleteFramebuffer(I._MSAAFramebuffer),I._MSAAFramebuffer=null),I._MSAARenderBuffer&&(V.deleteRenderbuffer(I._MSAARenderBuffer),I._MSAARenderBuffer=null)},N.prototype._releaseTexture=function(I){this._releaseFramebufferObjects(I),this._deleteTexture(I._webGLTexture),this.unbindAllTextures();var V=this._internalTexturesCache.indexOf(I);V!==-1&&this._internalTexturesCache.splice(V,1),I._lodTextureHigh&&I._lodTextureHigh.dispose(),I._lodTextureMid&&I._lodTextureMid.dispose(),I._lodTextureLow&&I._lodTextureLow.dispose(),I._irradianceTexture&&I._irradianceTexture.dispose()},N.prototype._deleteTexture=function(I){this._gl.deleteTexture(I)},N.prototype._setProgram=function(I){this._currentProgram!==I&&(this._gl.useProgram(I),this._currentProgram=I)},N.prototype.bindSamplers=function(I){var V=I.getPipelineContext();this._setProgram(V.program);for(var X=I.getSamplers(),j=0;j-1;return X&&te&&(this._activeChannel=V._associatedChannel),this._boundTexturesCache[this._activeChannel]!==V||j?(this._activateCurrentTexture(),V&&V.isMultiview?this._gl.bindTexture(I,V?V._colorTextureArray:null):this._gl.bindTexture(I,V?V._webGLTexture:null),this._boundTexturesCache[this._activeChannel]=V,V&&(V._associatedChannel=this._activeChannel)):X&&(ne=!0,this._activateCurrentTexture()),te&&!X&&this._bindSamplerUniformToChannel(V._associatedChannel,this._activeChannel),ne},N.prototype._bindTexture=function(I,V){if(I!==void 0){V&&(V._associatedChannel=I),this._activeChannel=I;var X=V?this._getTextureTarget(V):this._gl.TEXTURE_2D;this._bindTextureDirectly(X,V)}},N.prototype.unbindAllTextures=function(){for(var I=0;I1&&(this._bindTextureDirectly(this._gl.TEXTURE_3D,null),this._bindTextureDirectly(this._gl.TEXTURE_2D_ARRAY,null))},N.prototype.setTexture=function(I,V,X){I!==void 0&&(V&&(this._boundUniforms[I]=V),this._setTexture(I,X))},N.prototype._bindSamplerUniformToChannel=function(I,V){var X=this._boundUniforms[I];X&&X._currentState!==V&&(this._gl.uniform1i(X,V),X._currentState=V)},N.prototype._getTextureWrapMode=function(I){switch(I){case m.a.TEXTURE_WRAP_ADDRESSMODE:return this._gl.REPEAT;case m.a.TEXTURE_CLAMP_ADDRESSMODE:return this._gl.CLAMP_TO_EDGE;case m.a.TEXTURE_MIRROR_ADDRESSMODE:return this._gl.MIRRORED_REPEAT}return this._gl.REPEAT},N.prototype._setTexture=function(I,V,X,j){if(X===void 0&&(X=!1),j===void 0&&(j=!1),!V)return this._boundTexturesCache[I]!=null&&(this._activeChannel=I,this._bindTextureDirectly(this._gl.TEXTURE_2D,null),this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,null),this.webGLVersion>1&&(this._bindTextureDirectly(this._gl.TEXTURE_3D,null),this._bindTextureDirectly(this._gl.TEXTURE_2D_ARRAY,null))),!1;if(V.video)this._activeChannel=I,V.update();else if(V.delayLoadState===m.a.DELAYLOADSTATE_NOTLOADED)return V.delayLoad(),!1;var ne;ne=j?V.depthStencilTexture:V.isReady()?V.getInternalTexture():V.isCube?this.emptyCubeTexture:V.is3D?this.emptyTexture3D:V.is2DArray?this.emptyTexture2DArray:this.emptyTexture,!X&&ne&&(ne._associatedChannel=I);var te=!0;this._boundTexturesCache[I]===ne&&(X||this._bindSamplerUniformToChannel(ne._associatedChannel,I),te=!1),this._activeChannel=I;var de=this._getTextureTarget(ne);if(te&&this._bindTextureDirectly(de,ne,X),ne&&!ne.isMultiview){if(ne.isCube&&ne._cachedCoordinatesMode!==V.coordinatesMode){ne._cachedCoordinatesMode=V.coordinatesMode;var pe=V.coordinatesMode!==m.a.TEXTURE_CUBIC_MODE&&V.coordinatesMode!==m.a.TEXTURE_SKYBOX_MODE?m.a.TEXTURE_WRAP_ADDRESSMODE:m.a.TEXTURE_CLAMP_ADDRESSMODE;V.wrapU=pe,V.wrapV=pe}ne._cachedWrapU!==V.wrapU&&(ne._cachedWrapU=V.wrapU,this._setTextureParameterInteger(de,this._gl.TEXTURE_WRAP_S,this._getTextureWrapMode(V.wrapU),ne)),ne._cachedWrapV!==V.wrapV&&(ne._cachedWrapV=V.wrapV,this._setTextureParameterInteger(de,this._gl.TEXTURE_WRAP_T,this._getTextureWrapMode(V.wrapV),ne)),ne.is3D&&ne._cachedWrapR!==V.wrapR&&(ne._cachedWrapR=V.wrapR,this._setTextureParameterInteger(de,this._gl.TEXTURE_WRAP_R,this._getTextureWrapMode(V.wrapR),ne)),this._setAnisotropicLevel(de,ne,V.anisotropicFilteringLevel)}return!0},N.prototype.setTextureArray=function(I,V,X){if(I!==void 0&&V){this._textureUnits&&this._textureUnits.length===X.length||(this._textureUnits=new Int32Array(X.length));for(var j=0;j=this._caps.maxVertexAttribs||!this._vertexAttribArraysEnabled[I]||this.disableAttributeByIndex(I)}},N.prototype.releaseEffects=function(){for(var I in this._compiledEffects){var V=this._compiledEffects[I].getPipelineContext();this._deletePipelineContext(V)}this._compiledEffects={}},N.prototype.dispose=function(){this.stopRenderLoop(),this.onBeforeTextureInitObservable&&this.onBeforeTextureInitObservable.clear(),this._emptyTexture&&(this._releaseTexture(this._emptyTexture),this._emptyTexture=null),this._emptyCubeTexture&&(this._releaseTexture(this._emptyCubeTexture),this._emptyCubeTexture=null),this._dummyFramebuffer&&this._gl.deleteFramebuffer(this._dummyFramebuffer),this.releaseEffects(),this.unbindAllAttributes(),this._boundUniforms=[],A.a.IsWindowObjectExist()&&this._renderingCanvas&&(this._doNotHandleContextLost||(this._renderingCanvas.removeEventListener("webglcontextlost",this._onContextLost),this._renderingCanvas.removeEventListener("webglcontextrestored",this._onContextRestored))),this._workingCanvas=null,this._workingContext=null,this._currentBufferPointers=[],this._renderingCanvas=null,this._currentProgram=null,this._boundRenderFunction=null,_.a.ResetCache();for(var I=0,V=this._activeRequests;I1?this._caps.colorBufferFloat:this._canRenderToFramebuffer(m.a.TEXTURETYPE_FLOAT)},N.prototype._canRenderToHalfFloatFramebuffer=function(){return this._webGLVersion>1?this._caps.colorBufferFloat:this._canRenderToFramebuffer(m.a.TEXTURETYPE_HALF_FLOAT)},N.prototype._canRenderToFramebuffer=function(I){for(var V=this._gl;V.getError()!==V.NO_ERROR;);var X=!0,j=V.createTexture();V.bindTexture(V.TEXTURE_2D,j),V.texImage2D(V.TEXTURE_2D,0,this._getRGBABufferInternalSizedFormat(I),1,1,0,V.RGBA,this._getWebGLTextureType(I),null),V.texParameteri(V.TEXTURE_2D,V.TEXTURE_MIN_FILTER,V.NEAREST),V.texParameteri(V.TEXTURE_2D,V.TEXTURE_MAG_FILTER,V.NEAREST);var ne=V.createFramebuffer();V.bindFramebuffer(V.FRAMEBUFFER,ne),V.framebufferTexture2D(V.FRAMEBUFFER,V.COLOR_ATTACHMENT0,V.TEXTURE_2D,j,0);var te=V.checkFramebufferStatus(V.FRAMEBUFFER);if((X=(X=X&&te===V.FRAMEBUFFER_COMPLETE)&&V.getError()===V.NO_ERROR)&&(V.clear(V.COLOR_BUFFER_BIT),X=X&&V.getError()===V.NO_ERROR),X){V.bindFramebuffer(V.FRAMEBUFFER,null);var de=V.RGBA,pe=V.UNSIGNED_BYTE,ae=new Uint8Array(4);V.readPixels(0,0,1,1,de,pe,ae),X=X&&V.getError()===V.NO_ERROR}for(V.deleteTexture(j),V.deleteFramebuffer(ne),V.bindFramebuffer(V.FRAMEBUFFER,null);!X&&V.getError()!==V.NO_ERROR;);return X},N.prototype._getWebGLTextureType=function(I){if(this._webGLVersion===1){switch(I){case m.a.TEXTURETYPE_FLOAT:return this._gl.FLOAT;case m.a.TEXTURETYPE_HALF_FLOAT:return this._gl.HALF_FLOAT_OES;case m.a.TEXTURETYPE_UNSIGNED_BYTE:return this._gl.UNSIGNED_BYTE;case m.a.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4:return this._gl.UNSIGNED_SHORT_4_4_4_4;case m.a.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1:return this._gl.UNSIGNED_SHORT_5_5_5_1;case m.a.TEXTURETYPE_UNSIGNED_SHORT_5_6_5:return this._gl.UNSIGNED_SHORT_5_6_5}return this._gl.UNSIGNED_BYTE}switch(I){case m.a.TEXTURETYPE_BYTE:return this._gl.BYTE;case m.a.TEXTURETYPE_UNSIGNED_BYTE:return this._gl.UNSIGNED_BYTE;case m.a.TEXTURETYPE_SHORT:return this._gl.SHORT;case m.a.TEXTURETYPE_UNSIGNED_SHORT:return this._gl.UNSIGNED_SHORT;case m.a.TEXTURETYPE_INT:return this._gl.INT;case m.a.TEXTURETYPE_UNSIGNED_INTEGER:return this._gl.UNSIGNED_INT;case m.a.TEXTURETYPE_FLOAT:return this._gl.FLOAT;case m.a.TEXTURETYPE_HALF_FLOAT:return this._gl.HALF_FLOAT;case m.a.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4:return this._gl.UNSIGNED_SHORT_4_4_4_4;case m.a.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1:return this._gl.UNSIGNED_SHORT_5_5_5_1;case m.a.TEXTURETYPE_UNSIGNED_SHORT_5_6_5:return this._gl.UNSIGNED_SHORT_5_6_5;case m.a.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV:return this._gl.UNSIGNED_INT_2_10_10_10_REV;case m.a.TEXTURETYPE_UNSIGNED_INT_24_8:return this._gl.UNSIGNED_INT_24_8;case m.a.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV:return this._gl.UNSIGNED_INT_10F_11F_11F_REV;case m.a.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV:return this._gl.UNSIGNED_INT_5_9_9_9_REV;case m.a.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV:return this._gl.FLOAT_32_UNSIGNED_INT_24_8_REV}return this._gl.UNSIGNED_BYTE},N.prototype._getInternalFormat=function(I){var V=this._gl.RGBA;switch(I){case m.a.TEXTUREFORMAT_ALPHA:V=this._gl.ALPHA;break;case m.a.TEXTUREFORMAT_LUMINANCE:V=this._gl.LUMINANCE;break;case m.a.TEXTUREFORMAT_LUMINANCE_ALPHA:V=this._gl.LUMINANCE_ALPHA;break;case m.a.TEXTUREFORMAT_RED:V=this._gl.RED;break;case m.a.TEXTUREFORMAT_RG:V=this._gl.RG;break;case m.a.TEXTUREFORMAT_RGB:V=this._gl.RGB;break;case m.a.TEXTUREFORMAT_RGBA:V=this._gl.RGBA}if(this._webGLVersion>1)switch(I){case m.a.TEXTUREFORMAT_RED_INTEGER:V=this._gl.RED_INTEGER;break;case m.a.TEXTUREFORMAT_RG_INTEGER:V=this._gl.RG_INTEGER;break;case m.a.TEXTUREFORMAT_RGB_INTEGER:V=this._gl.RGB_INTEGER;break;case m.a.TEXTUREFORMAT_RGBA_INTEGER:V=this._gl.RGBA_INTEGER}return V},N.prototype._getRGBABufferInternalSizedFormat=function(I,V){if(this._webGLVersion===1){if(V!==void 0)switch(V){case m.a.TEXTUREFORMAT_ALPHA:return this._gl.ALPHA;case m.a.TEXTUREFORMAT_LUMINANCE:return this._gl.LUMINANCE;case m.a.TEXTUREFORMAT_LUMINANCE_ALPHA:return this._gl.LUMINANCE_ALPHA;case m.a.TEXTUREFORMAT_RGB:return this._gl.RGB}return this._gl.RGBA}switch(I){case m.a.TEXTURETYPE_BYTE:switch(V){case m.a.TEXTUREFORMAT_RED:return this._gl.R8_SNORM;case m.a.TEXTUREFORMAT_RG:return this._gl.RG8_SNORM;case m.a.TEXTUREFORMAT_RGB:return this._gl.RGB8_SNORM;case m.a.TEXTUREFORMAT_RED_INTEGER:return this._gl.R8I;case m.a.TEXTUREFORMAT_RG_INTEGER:return this._gl.RG8I;case m.a.TEXTUREFORMAT_RGB_INTEGER:return this._gl.RGB8I;case m.a.TEXTUREFORMAT_RGBA_INTEGER:return this._gl.RGBA8I;default:return this._gl.RGBA8_SNORM}case m.a.TEXTURETYPE_UNSIGNED_BYTE:switch(V){case m.a.TEXTUREFORMAT_RED:return this._gl.R8;case m.a.TEXTUREFORMAT_RG:return this._gl.RG8;case m.a.TEXTUREFORMAT_RGB:return this._gl.RGB8;case m.a.TEXTUREFORMAT_RGBA:return this._gl.RGBA8;case m.a.TEXTUREFORMAT_RED_INTEGER:return this._gl.R8UI;case m.a.TEXTUREFORMAT_RG_INTEGER:return this._gl.RG8UI;case m.a.TEXTUREFORMAT_RGB_INTEGER:return this._gl.RGB8UI;case m.a.TEXTUREFORMAT_RGBA_INTEGER:return this._gl.RGBA8UI;case m.a.TEXTUREFORMAT_ALPHA:return this._gl.ALPHA;case m.a.TEXTUREFORMAT_LUMINANCE:return this._gl.LUMINANCE;case m.a.TEXTUREFORMAT_LUMINANCE_ALPHA:return this._gl.LUMINANCE_ALPHA;default:return this._gl.RGBA8}case m.a.TEXTURETYPE_SHORT:switch(V){case m.a.TEXTUREFORMAT_RED_INTEGER:return this._gl.R16I;case m.a.TEXTUREFORMAT_RG_INTEGER:return this._gl.RG16I;case m.a.TEXTUREFORMAT_RGB_INTEGER:return this._gl.RGB16I;case m.a.TEXTUREFORMAT_RGBA_INTEGER:default:return this._gl.RGBA16I}case m.a.TEXTURETYPE_UNSIGNED_SHORT:switch(V){case m.a.TEXTUREFORMAT_RED_INTEGER:return this._gl.R16UI;case m.a.TEXTUREFORMAT_RG_INTEGER:return this._gl.RG16UI;case m.a.TEXTUREFORMAT_RGB_INTEGER:return this._gl.RGB16UI;case m.a.TEXTUREFORMAT_RGBA_INTEGER:default:return this._gl.RGBA16UI}case m.a.TEXTURETYPE_INT:switch(V){case m.a.TEXTUREFORMAT_RED_INTEGER:return this._gl.R32I;case m.a.TEXTUREFORMAT_RG_INTEGER:return this._gl.RG32I;case m.a.TEXTUREFORMAT_RGB_INTEGER:return this._gl.RGB32I;case m.a.TEXTUREFORMAT_RGBA_INTEGER:default:return this._gl.RGBA32I}case m.a.TEXTURETYPE_UNSIGNED_INTEGER:switch(V){case m.a.TEXTUREFORMAT_RED_INTEGER:return this._gl.R32UI;case m.a.TEXTUREFORMAT_RG_INTEGER:return this._gl.RG32UI;case m.a.TEXTUREFORMAT_RGB_INTEGER:return this._gl.RGB32UI;case m.a.TEXTUREFORMAT_RGBA_INTEGER:default:return this._gl.RGBA32UI}case m.a.TEXTURETYPE_FLOAT:switch(V){case m.a.TEXTUREFORMAT_RED:return this._gl.R32F;case m.a.TEXTUREFORMAT_RG:return this._gl.RG32F;case m.a.TEXTUREFORMAT_RGB:return this._gl.RGB32F;case m.a.TEXTUREFORMAT_RGBA:default:return this._gl.RGBA32F}case m.a.TEXTURETYPE_HALF_FLOAT:switch(V){case m.a.TEXTUREFORMAT_RED:return this._gl.R16F;case m.a.TEXTUREFORMAT_RG:return this._gl.RG16F;case m.a.TEXTUREFORMAT_RGB:return this._gl.RGB16F;case m.a.TEXTUREFORMAT_RGBA:default:return this._gl.RGBA16F}case m.a.TEXTURETYPE_UNSIGNED_SHORT_5_6_5:return this._gl.RGB565;case m.a.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV:return this._gl.R11F_G11F_B10F;case m.a.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV:return this._gl.RGB9_E5;case m.a.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4:return this._gl.RGBA4;case m.a.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1:return this._gl.RGB5_A1;case m.a.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV:switch(V){case m.a.TEXTUREFORMAT_RGBA:return this._gl.RGB10_A2;case m.a.TEXTUREFORMAT_RGBA_INTEGER:return this._gl.RGB10_A2UI;default:return this._gl.RGB10_A2}}return this._gl.RGBA8},N.prototype._getRGBAMultiSampleBufferFormat=function(I){return I===m.a.TEXTURETYPE_FLOAT?this._gl.RGBA32F:I===m.a.TEXTURETYPE_HALF_FLOAT?this._gl.RGBA16F:this._gl.RGBA8},N.prototype._loadFile=function(I,V,X,j,ne,te){var de=this,pe=N._FileToolsLoadFile(I,V,X,j,ne,te);return this._activeRequests.push(pe),pe.onCompleteObservable.add(function(ae){de._activeRequests.splice(de._activeRequests.indexOf(ae),1)}),pe},N._FileToolsLoadFile=function(I,V,X,j,ne,te){throw R.a.WarnImport("FileTools")},N.prototype.readPixels=function(I,V,X,j,ne){ne===void 0&&(ne=!0);var te=ne?4:3,de=ne?this._gl.RGBA:this._gl.RGB,pe=new Uint8Array(j*X*te);return this._gl.readPixels(I,V,X,j,de,this._gl.UNSIGNED_BYTE,pe),pe},Object.defineProperty(N,"IsSupported",{get:function(){return this.isSupported()},enumerable:!1,configurable:!0}),N.isSupported=function(){if(this._HasMajorPerformanceCaveat!==null)return!this._HasMajorPerformanceCaveat;if(this._IsSupported===null)try{var I=v.a.CreateCanvas(1,1),V=I.getContext("webgl")||I.getContext("experimental-webgl");this._IsSupported=V!=null&&!!window.WebGLRenderingContext}catch{this._IsSupported=!1}return this._IsSupported},Object.defineProperty(N,"HasMajorPerformanceCaveat",{get:function(){if(this._HasMajorPerformanceCaveat===null)try{var I=v.a.CreateCanvas(1,1),V=I.getContext("webgl",{failIfMajorPerformanceCaveat:!0})||I.getContext("experimental-webgl",{failIfMajorPerformanceCaveat:!0});this._HasMajorPerformanceCaveat=!V}catch{this._HasMajorPerformanceCaveat=!1}return this._HasMajorPerformanceCaveat},enumerable:!1,configurable:!0}),N.CeilingPOT=function(I){return I--,I|=I>>1,I|=I>>2,I|=I>>4,I|=I>>8,I|=I>>16,++I},N.FloorPOT=function(I){return I|=I>>1,I|=I>>2,I|=I>>4,I|=I>>8,(I|=I>>16)-(I>>1)},N.NearestPOT=function(I){var V=N.CeilingPOT(I),X=N.FloorPOT(I);return V-I>I-X?X:V},N.GetExponentOfTwo=function(I,V,X){var j;switch(X===void 0&&(X=m.a.SCALEMODE_NEAREST),X){case m.a.SCALEMODE_FLOOR:j=N.FloorPOT(I);break;case m.a.SCALEMODE_NEAREST:j=N.NearestPOT(I);break;case m.a.SCALEMODE_CEILING:default:j=N.CeilingPOT(I)}return Math.min(j,V)},N.QueueNewFrame=function(I,V){return A.a.IsWindowObjectExist()?(V||(V=window),V.requestPostAnimationFrame?V.requestPostAnimationFrame(I):V.requestAnimationFrame?V.requestAnimationFrame(I):V.msRequestAnimationFrame?V.msRequestAnimationFrame(I):V.webkitRequestAnimationFrame?V.webkitRequestAnimationFrame(I):V.mozRequestAnimationFrame?V.mozRequestAnimationFrame(I):V.oRequestAnimationFrame?V.oRequestAnimationFrame(I):window.setTimeout(I,16)):typeof requestAnimationFrame<"u"?requestAnimationFrame(I):setTimeout(I,16)},N.prototype.getHostDocument=function(){return this._renderingCanvas&&this._renderingCanvas.ownerDocument?this._renderingCanvas.ownerDocument:document},N.ExceptionList=[{key:"Chrome/63.0",capture:"63\\.0\\.3239\\.(\\d+)",captureConstraint:108,targets:["uniformBuffer"]},{key:"Firefox/58",capture:null,captureConstraint:null,targets:["uniformBuffer"]},{key:"Firefox/59",capture:null,captureConstraint:null,targets:["uniformBuffer"]},{key:"Chrome/72.+?Mobile",capture:null,captureConstraint:null,targets:["vao"]},{key:"Chrome/73.+?Mobile",capture:null,captureConstraint:null,targets:["vao"]},{key:"Chrome/74.+?Mobile",capture:null,captureConstraint:null,targets:["vao"]},{key:"Mac OS.+Chrome/71",capture:null,captureConstraint:null,targets:["vao"]},{key:"Mac OS.+Chrome/72",capture:null,captureConstraint:null,targets:["vao"]}],N._TextureLoaders=[],N.CollisionsEpsilon=.001,N._IsSupported=null,N._HasMajorPerformanceCaveat=null,N}()},function(Ie,y,f){f.d(y,"b",function(){return U}),f.d(y,"a",function(){return C});var U,_=f(6),R=f(102),u=f(2),M=f(21);(function(P){P[P.Unknown=0]="Unknown",P[P.Url=1]="Url",P[P.Temp=2]="Temp",P[P.Raw=3]="Raw",P[P.Dynamic=4]="Dynamic",P[P.RenderTarget=5]="RenderTarget",P[P.MultiRenderTarget=6]="MultiRenderTarget",P[P.Cube=7]="Cube",P[P.CubeRaw=8]="CubeRaw",P[P.CubePrefiltered=9]="CubePrefiltered",P[P.Raw3D=10]="Raw3D",P[P.Raw2DArray=11]="Raw2DArray",P[P.Depth=12]="Depth",P[P.CubeRawRGBD=13]="CubeRawRGBD"})(U||(U={}));var C=function(){function P(m,c,T){T===void 0&&(T=!1),this.isReady=!1,this.isCube=!1,this.is3D=!1,this.is2DArray=!1,this.isMultiview=!1,this.url="",this.samplingMode=-1,this.generateMipMaps=!1,this.samples=0,this.type=-1,this.format=-1,this.onLoadedObservable=new _.c,this.width=0,this.height=0,this.depth=0,this.baseWidth=0,this.baseHeight=0,this.baseDepth=0,this.invertY=!1,this._invertVScale=!1,this._associatedChannel=-1,this._source=U.Unknown,this._buffer=null,this._bufferView=null,this._bufferViewArray=null,this._bufferViewArrayArray=null,this._size=0,this._extension="",this._files=null,this._workingCanvas=null,this._workingContext=null,this._framebuffer=null,this._depthStencilBuffer=null,this._MSAAFramebuffer=null,this._MSAARenderBuffer=null,this._attachments=null,this._textureArray=null,this._cachedCoordinatesMode=null,this._cachedWrapU=null,this._cachedWrapV=null,this._cachedWrapR=null,this._cachedAnisotropicFilteringLevel=null,this._isDisabled=!1,this._compression=null,this._generateStencilBuffer=!1,this._generateDepthBuffer=!1,this._comparisonFunction=0,this._sphericalPolynomial=null,this._lodGenerationScale=0,this._lodGenerationOffset=0,this._colorTextureArray=null,this._depthStencilTextureArray=null,this._lodTextureHigh=null,this._lodTextureMid=null,this._lodTextureLow=null,this._isRGBD=!1,this._linearSpecularLOD=!1,this._irradianceTexture=null,this._webGLTexture=null,this._references=1,this._gammaSpace=null,this._engine=m,this._source=c,T||(this._webGLTexture=m._createTexture())}return P.prototype.getEngine=function(){return this._engine},Object.defineProperty(P.prototype,"source",{get:function(){return this._source},enumerable:!1,configurable:!0}),P.prototype.incrementReferences=function(){this._references++},P.prototype.updateSize=function(m,c,T){T===void 0&&(T=1),this.width=m,this.height=c,this.depth=T,this.baseWidth=m,this.baseHeight=c,this.baseDepth=T,this._size=m*c*T},P.prototype._rebuild=function(){var m,c,T=this;switch(this.isReady=!1,this._cachedCoordinatesMode=null,this._cachedWrapU=null,this._cachedWrapV=null,this._cachedAnisotropicFilteringLevel=null,this.source){case U.Temp:return;case U.Url:return void(c=this._engine.createTexture((m=this._originalUrl)!==null&&m!==void 0?m:this.url,!this.generateMipMaps,this.invertY,null,this.samplingMode,function(){c._swapAndDie(T),T.isReady=!0},null,this._buffer,void 0,this.format));case U.Raw:return(c=this._engine.createRawTexture(this._bufferView,this.baseWidth,this.baseHeight,this.format,this.generateMipMaps,this.invertY,this.samplingMode,this._compression))._swapAndDie(this),void(this.isReady=!0);case U.Raw3D:return(c=this._engine.createRawTexture3D(this._bufferView,this.baseWidth,this.baseHeight,this.baseDepth,this.format,this.generateMipMaps,this.invertY,this.samplingMode,this._compression))._swapAndDie(this),void(this.isReady=!0);case U.Raw2DArray:return(c=this._engine.createRawTexture2DArray(this._bufferView,this.baseWidth,this.baseHeight,this.baseDepth,this.format,this.generateMipMaps,this.invertY,this.samplingMode,this._compression))._swapAndDie(this),void(this.isReady=!0);case U.Dynamic:return(c=this._engine.createDynamicTexture(this.baseWidth,this.baseHeight,this.generateMipMaps,this.samplingMode))._swapAndDie(this),void this._engine.updateDynamicTexture(this,this._engine.getRenderingCanvas(),this.invertY,void 0,void 0,!0);case U.RenderTarget:var A=new R.a;if(A.generateDepthBuffer=this._generateDepthBuffer,A.generateMipMaps=this.generateMipMaps,A.generateStencilBuffer=this._generateStencilBuffer,A.samplingMode=this.samplingMode,A.type=this.type,this.isCube)c=this._engine.createRenderTargetCubeTexture(this.width,A);else{var S={width:this.width,height:this.height,layers:this.is2DArray?this.depth:void 0};c=this._engine.createRenderTargetTexture(S,A)}return c._swapAndDie(this),void(this.isReady=!0);case U.Depth:var g={bilinearFiltering:this.samplingMode!==u.a.TEXTURE_BILINEAR_SAMPLINGMODE,comparisonFunction:this._comparisonFunction,generateStencil:this._generateStencilBuffer,isCube:this.isCube},l={width:this.width,height:this.height,layers:this.is2DArray?this.depth:void 0};return(c=this._engine.createDepthStencilTexture(l,g))._swapAndDie(this),void(this.isReady=!0);case U.Cube:return void(c=this._engine.createCubeTexture(this.url,null,this._files,!this.generateMipMaps,function(){c._swapAndDie(T),T.isReady=!0},null,this.format,this._extension));case U.CubeRaw:return(c=this._engine.createRawCubeTexture(this._bufferViewArray,this.width,this.format,this.type,this.generateMipMaps,this.invertY,this.samplingMode,this._compression))._swapAndDie(this),void(this.isReady=!0);case U.CubeRawRGBD:return c=this._engine.createRawCubeTexture(null,this.width,this.format,this.type,this.generateMipMaps,this.invertY,this.samplingMode,this._compression),void P._UpdateRGBDAsync(c,this._bufferViewArrayArray,this._sphericalPolynomial,this._lodGenerationScale,this._lodGenerationOffset).then(function(){c._swapAndDie(T),T.isReady=!0});case U.CubePrefiltered:return void((c=this._engine.createPrefilteredCubeTexture(this.url,null,this._lodGenerationScale,this._lodGenerationOffset,function(h){h&&h._swapAndDie(T),T.isReady=!0},null,this.format,this._extension))._sphericalPolynomial=this._sphericalPolynomial)}},P.prototype._swapAndDie=function(m){m._webGLTexture=this._webGLTexture,m._isRGBD=this._isRGBD,this._framebuffer&&(m._framebuffer=this._framebuffer),this._depthStencilBuffer&&(m._depthStencilBuffer=this._depthStencilBuffer),m._depthStencilTexture=this._depthStencilTexture,this._lodTextureHigh&&(m._lodTextureHigh&&m._lodTextureHigh.dispose(),m._lodTextureHigh=this._lodTextureHigh),this._lodTextureMid&&(m._lodTextureMid&&m._lodTextureMid.dispose(),m._lodTextureMid=this._lodTextureMid),this._lodTextureLow&&(m._lodTextureLow&&m._lodTextureLow.dispose(),m._lodTextureLow=this._lodTextureLow),this._irradianceTexture&&(m._irradianceTexture&&m._irradianceTexture.dispose(),m._irradianceTexture=this._irradianceTexture);var c,T=this._engine.getLoadedTexturesCache();(c=T.indexOf(this))!==-1&&T.splice(c,1),(c=T.indexOf(m))===-1&&T.push(m)},P.prototype.dispose=function(){this._webGLTexture&&(this._references--,this._references===0&&(this._engine._releaseTexture(this),this._webGLTexture=null))},P._UpdateRGBDAsync=function(m,c,T,A,S){throw M.a.WarnImport("environmentTextureTools")},P}()},function(Ie,y,f){f.d(y,"b",function(){return U}),f.d(y,"c",function(){return _}),f.d(y,"a",function(){return R});var U=1/2.2,_=2.2,R=.001},function(Ie,y,f){f.d(y,"a",function(){return P});var U=f(1),_=f(0),R=f(3),u=f(6),M=f(22),C=f(21),P=function(){function m(c,T){T===void 0&&(T=null),this.state="",this.metadata=null,this.reservedDataStore=null,this._doNotSerialize=!1,this._isDisposed=!1,this.animations=new Array,this._ranges={},this.onReady=null,this._isEnabled=!0,this._isParentEnabled=!0,this._isReady=!0,this._currentRenderId=-1,this._parentUpdateId=-1,this._childUpdateId=-1,this._waitingParentId=null,this._cache={},this._parentNode=null,this._children=null,this._worldMatrix=_.a.Identity(),this._worldMatrixDeterminant=0,this._worldMatrixDeterminantIsDirty=!0,this._sceneRootNodesIndex=-1,this._animationPropertiesOverride=null,this._isNode=!0,this.onDisposeObservable=new u.c,this._onDisposeObserver=null,this._behaviors=new Array,this.name=c,this.id=c,this._scene=T||M.a.LastCreatedScene,this.uniqueId=this._scene.getUniqueId(),this._initCache()}return m.AddNodeConstructor=function(c,T){this._NodeConstructors[c]=T},m.Construct=function(c,T,A,S){var g=this._NodeConstructors[c];return g?g(T,A,S):null},Object.defineProperty(m.prototype,"doNotSerialize",{get:function(){return!!this._doNotSerialize||!!this._parentNode&&this._parentNode.doNotSerialize},set:function(c){this._doNotSerialize=c},enumerable:!1,configurable:!0}),m.prototype.isDisposed=function(){return this._isDisposed},Object.defineProperty(m.prototype,"parent",{get:function(){return this._parentNode},set:function(c){if(this._parentNode!==c){var T=this._parentNode;if(this._parentNode&&this._parentNode._children!==void 0&&this._parentNode._children!==null){var A=this._parentNode._children.indexOf(this);A!==-1&&this._parentNode._children.splice(A,1),c||this._isDisposed||this._addToSceneRootNodes()}this._parentNode=c,this._parentNode&&(this._parentNode._children!==void 0&&this._parentNode._children!==null||(this._parentNode._children=new Array),this._parentNode._children.push(this),T||this._removeFromSceneRootNodes()),this._syncParentEnabledState()}},enumerable:!1,configurable:!0}),m.prototype._addToSceneRootNodes=function(){this._sceneRootNodesIndex===-1&&(this._sceneRootNodesIndex=this._scene.rootNodes.length,this._scene.rootNodes.push(this))},m.prototype._removeFromSceneRootNodes=function(){if(this._sceneRootNodesIndex!==-1){var c=this._scene.rootNodes,T=c.length-1;c[this._sceneRootNodesIndex]=c[T],c[this._sceneRootNodesIndex]._sceneRootNodesIndex=this._sceneRootNodesIndex,this._scene.rootNodes.pop(),this._sceneRootNodesIndex=-1}},Object.defineProperty(m.prototype,"animationPropertiesOverride",{get:function(){return this._animationPropertiesOverride?this._animationPropertiesOverride:this._scene.animationPropertiesOverride},set:function(c){this._animationPropertiesOverride=c},enumerable:!1,configurable:!0}),m.prototype.getClassName=function(){return"Node"},Object.defineProperty(m.prototype,"onDispose",{set:function(c){this._onDisposeObserver&&this.onDisposeObservable.remove(this._onDisposeObserver),this._onDisposeObserver=this.onDisposeObservable.add(c)},enumerable:!1,configurable:!0}),m.prototype.getScene=function(){return this._scene},m.prototype.getEngine=function(){return this._scene.getEngine()},m.prototype.addBehavior=function(c,T){var A=this;return T===void 0&&(T=!1),this._behaviors.indexOf(c)!==-1||(c.init(),this._scene.isLoading&&!T?this._scene.onDataLoadedObservable.addOnce(function(){c.attach(A)}):c.attach(this),this._behaviors.push(c)),this},m.prototype.removeBehavior=function(c){var T=this._behaviors.indexOf(c);return T===-1||(this._behaviors[T].detach(),this._behaviors.splice(T,1)),this},Object.defineProperty(m.prototype,"behaviors",{get:function(){return this._behaviors},enumerable:!1,configurable:!0}),m.prototype.getBehaviorByName=function(c){for(var T=0,A=this._behaviors;T +#if defined(BUMP) || !defined(NORMAL) +#extension GL_OES_standard_derivatives : enable +#endif +#include[SCENE_MRT_COUNT] +#define CUSTOM_FRAGMENT_BEGIN +#ifdef LOGARITHMICDEPTH +#extension GL_EXT_frag_depth : enable +#endif + +#define RECIPROCAL_PI2 0.15915494 +uniform vec3 vEyePosition; +uniform vec3 vAmbientColor; + +varying vec3 vPositionW; +#ifdef NORMAL +varying vec3 vNormalW; +#endif +#ifdef VERTEXCOLOR +varying vec4 vColor; +#endif +#ifdef MAINUV1 +varying vec2 vMainUV1; +#endif +#ifdef MAINUV2 +varying vec2 vMainUV2; +#endif + +#include + +#include<__decl__lightFragment>[0..maxSimultaneousLights] +#include +#include + +#ifdef DIFFUSE +#if DIFFUSEDIRECTUV == 1 +#define vDiffuseUV vMainUV1 +#elif DIFFUSEDIRECTUV == 2 +#define vDiffuseUV vMainUV2 +#else +varying vec2 vDiffuseUV; +#endif +uniform sampler2D diffuseSampler; +#endif +#ifdef AMBIENT +#if AMBIENTDIRECTUV == 1 +#define vAmbientUV vMainUV1 +#elif AMBIENTDIRECTUV == 2 +#define vAmbientUV vMainUV2 +#else +varying vec2 vAmbientUV; +#endif +uniform sampler2D ambientSampler; +#endif +#ifdef OPACITY +#if OPACITYDIRECTUV == 1 +#define vOpacityUV vMainUV1 +#elif OPACITYDIRECTUV == 2 +#define vOpacityUV vMainUV2 +#else +varying vec2 vOpacityUV; +#endif +uniform sampler2D opacitySampler; +#endif +#ifdef EMISSIVE +#if EMISSIVEDIRECTUV == 1 +#define vEmissiveUV vMainUV1 +#elif EMISSIVEDIRECTUV == 2 +#define vEmissiveUV vMainUV2 +#else +varying vec2 vEmissiveUV; +#endif +uniform sampler2D emissiveSampler; +#endif +#ifdef LIGHTMAP +#if LIGHTMAPDIRECTUV == 1 +#define vLightmapUV vMainUV1 +#elif LIGHTMAPDIRECTUV == 2 +#define vLightmapUV vMainUV2 +#else +varying vec2 vLightmapUV; +#endif +uniform sampler2D lightmapSampler; +#endif +#ifdef REFRACTION +#ifdef REFRACTIONMAP_3D +uniform samplerCube refractionCubeSampler; +#else +uniform sampler2D refraction2DSampler; +#endif +#endif +#if defined(SPECULAR) && defined(SPECULARTERM) +#if SPECULARDIRECTUV == 1 +#define vSpecularUV vMainUV1 +#elif SPECULARDIRECTUV == 2 +#define vSpecularUV vMainUV2 +#else +varying vec2 vSpecularUV; +#endif +uniform sampler2D specularSampler; +#endif +#ifdef ALPHATEST +uniform float alphaCutOff; +#endif + +#include + +#ifdef REFLECTION +#ifdef REFLECTIONMAP_3D +uniform samplerCube reflectionCubeSampler; +#else +uniform sampler2D reflection2DSampler; +#endif +#ifdef REFLECTIONMAP_SKYBOX +varying vec3 vPositionUVW; +#else +#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED) +varying vec3 vDirectionW; +#endif +#endif +#include +#endif +#include +#include +#include +#include +#include +#include +#include +#define CUSTOM_FRAGMENT_DEFINITIONS +void main(void) { +#define CUSTOM_FRAGMENT_MAIN_BEGIN +#include +vec3 viewDirectionW=normalize(vEyePosition-vPositionW); + +vec4 baseColor=vec4(1.,1.,1.,1.); +vec3 diffuseColor=vDiffuseColor.rgb; + +float alpha=vDiffuseColor.a; + +#ifdef NORMAL +vec3 normalW=normalize(vNormalW); +#else +vec3 normalW=normalize(-cross(dFdx(vPositionW),dFdy(vPositionW))); +#endif +#include +#ifdef TWOSIDEDLIGHTING +normalW=gl_FrontFacing ? normalW : -normalW; +#endif +#ifdef DIFFUSE +baseColor=texture2D(diffuseSampler,vDiffuseUV+uvOffset); +#if defined(ALPHATEST) && !defined(ALPHATEST_AFTERALLALPHACOMPUTATIONS) +if (baseColor.a +#ifdef VERTEXCOLOR +baseColor.rgb*=vColor.rgb; +#endif +#ifdef DETAIL +baseColor.rgb=baseColor.rgb*2.0*mix(0.5,detailColor.r,vDetailInfos.y); +#endif +#define CUSTOM_FRAGMENT_UPDATE_DIFFUSE + +vec3 baseAmbientColor=vec3(1.,1.,1.); +#ifdef AMBIENT +baseAmbientColor=texture2D(ambientSampler,vAmbientUV+uvOffset).rgb*vAmbientInfos.y; +#endif +#define CUSTOM_FRAGMENT_BEFORE_LIGHTS + +#ifdef SPECULARTERM +float glossiness=vSpecularColor.a; +vec3 specularColor=vSpecularColor.rgb; +#ifdef SPECULAR +vec4 specularMapColor=texture2D(specularSampler,vSpecularUV+uvOffset); +specularColor=specularMapColor.rgb; +#ifdef GLOSSINESS +glossiness=glossiness*specularMapColor.a; +#endif +#endif +#else +float glossiness=0.; +#endif + +vec3 diffuseBase=vec3(0.,0.,0.); +lightingInfo info; +#ifdef SPECULARTERM +vec3 specularBase=vec3(0.,0.,0.); +#endif +float shadow=1.; +#ifdef LIGHTMAP +vec4 lightmapColor=texture2D(lightmapSampler,vLightmapUV+uvOffset); +#ifdef RGBDLIGHTMAP +lightmapColor.rgb=fromRGBD(lightmapColor); +#endif +lightmapColor.rgb*=vLightmapInfos.y; +#endif +#include[0..maxSimultaneousLights] + +vec4 refractionColor=vec4(0.,0.,0.,1.); +#ifdef REFRACTION +vec3 refractionVector=normalize(refract(-viewDirectionW,normalW,vRefractionInfos.y)); +#ifdef REFRACTIONMAP_3D +refractionVector.y=refractionVector.y*vRefractionInfos.w; +if (dot(refractionVector,viewDirectionW)<1.0) { +refractionColor=textureCube(refractionCubeSampler,refractionVector); +} +#else +vec3 vRefractionUVW=vec3(refractionMatrix*(view*vec4(vPositionW+refractionVector*vRefractionInfos.z,1.0))); +vec2 refractionCoords=vRefractionUVW.xy/vRefractionUVW.z; +refractionCoords.y=1.0-refractionCoords.y; +refractionColor=texture2D(refraction2DSampler,refractionCoords); +#endif +#ifdef RGBDREFRACTION +refractionColor.rgb=fromRGBD(refractionColor); +#endif +#ifdef IS_REFRACTION_LINEAR +refractionColor.rgb=toGammaSpace(refractionColor.rgb); +#endif +refractionColor.rgb*=vRefractionInfos.x; +#endif + +vec4 reflectionColor=vec4(0.,0.,0.,1.); +#ifdef REFLECTION +vec3 vReflectionUVW=computeReflectionCoords(vec4(vPositionW,1.0),normalW); +#ifdef REFLECTIONMAP_3D +#ifdef ROUGHNESS +float bias=vReflectionInfos.y; +#ifdef SPECULARTERM +#ifdef SPECULAR +#ifdef GLOSSINESS +bias*=(1.0-specularMapColor.a); +#endif +#endif +#endif +reflectionColor=textureCube(reflectionCubeSampler,vReflectionUVW,bias); +#else +reflectionColor=textureCube(reflectionCubeSampler,vReflectionUVW); +#endif +#else +vec2 coords=vReflectionUVW.xy; +#ifdef REFLECTIONMAP_PROJECTION +coords/=vReflectionUVW.z; +#endif +coords.y=1.0-coords.y; +reflectionColor=texture2D(reflection2DSampler,coords); +#endif +#ifdef RGBDREFLECTION +reflectionColor.rgb=fromRGBD(reflectionColor); +#endif +#ifdef IS_REFLECTION_LINEAR +reflectionColor.rgb=toGammaSpace(reflectionColor.rgb); +#endif +reflectionColor.rgb*=vReflectionInfos.x; +#ifdef REFLECTIONFRESNEL +float reflectionFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,reflectionRightColor.a,reflectionLeftColor.a); +#ifdef REFLECTIONFRESNELFROMSPECULAR +#ifdef SPECULARTERM +reflectionColor.rgb*=specularColor.rgb*(1.0-reflectionFresnelTerm)+reflectionFresnelTerm*reflectionRightColor.rgb; +#else +reflectionColor.rgb*=reflectionLeftColor.rgb*(1.0-reflectionFresnelTerm)+reflectionFresnelTerm*reflectionRightColor.rgb; +#endif +#else +reflectionColor.rgb*=reflectionLeftColor.rgb*(1.0-reflectionFresnelTerm)+reflectionFresnelTerm*reflectionRightColor.rgb; +#endif +#endif +#endif +#ifdef REFRACTIONFRESNEL +float refractionFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,refractionRightColor.a,refractionLeftColor.a); +refractionColor.rgb*=refractionLeftColor.rgb*(1.0-refractionFresnelTerm)+refractionFresnelTerm*refractionRightColor.rgb; +#endif +#ifdef OPACITY +vec4 opacityMap=texture2D(opacitySampler,vOpacityUV+uvOffset); +#ifdef OPACITYRGB +opacityMap.rgb=opacityMap.rgb*vec3(0.3,0.59,0.11); +alpha*=(opacityMap.x+opacityMap.y+opacityMap.z)* vOpacityInfos.y; +#else +alpha*=opacityMap.a*vOpacityInfos.y; +#endif +#endif +#ifdef VERTEXALPHA +alpha*=vColor.a; +#endif +#ifdef OPACITYFRESNEL +float opacityFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,opacityParts.z,opacityParts.w); +alpha+=opacityParts.x*(1.0-opacityFresnelTerm)+opacityFresnelTerm*opacityParts.y; +#endif +#ifdef ALPHATEST +#ifdef ALPHATEST_AFTERALLALPHACOMPUTATIONS +if (alpha +#include + + +#ifdef IMAGEPROCESSINGPOSTPROCESS +color.rgb=toLinearSpace(color.rgb); +#else +#ifdef IMAGEPROCESSING +color.rgb=toLinearSpace(color.rgb); +color=applyImageProcessing(color); +#endif +#endif +color.a*=visibility; +#ifdef PREMULTIPLYALPHA + +color.rgb*=color.a; +#endif +#define CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR +#ifdef PREPASS +gl_FragData[0]=color; +#ifdef PREPASS_POSITION +gl_FragData[PREPASS_POSITION_INDEX]=vec4(vPositionW,1.0); +#endif +#ifdef PREPASS_VELOCITY +vec2 a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5; +vec2 b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5; +vec2 velocity=abs(a-b); +velocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5; +gl_FragData[PREPASS_VELOCITY_INDEX]=vec4(velocity,0.0,1.0); +#endif +#ifdef PREPASS_IRRADIANCE +gl_FragData[PREPASS_IRRADIANCE_INDEX]=vec4(0.0,0.0,0.0,1.0); +#endif +#ifdef PREPASS_DEPTHNORMAL +gl_FragData[PREPASS_DEPTHNORMAL_INDEX]=vec4(vViewPos.z,(view*vec4(normalW,0.0)).rgb); +#endif +#ifdef PREPASS_ALBEDO +gl_FragData[PREPASS_ALBEDO_INDEX]=vec4(0.0,0.0,0.0,1.0); +#endif +#ifdef PREPASS_REFLECTIVITY +#if defined(SPECULAR) +gl_FragData[PREPASS_REFLECTIVITY_INDEX]=specularMapColor; +#else +gl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(0.0,0.0,0.0,1.0); +#endif +#endif +#endif +#if !defined(PREPASS) || defined(WEBGL2) +gl_FragColor=color; +#endif +} +`;E.a.ShadersStore.defaultPixelShader=N;var I=` +uniform mat4 viewProjection; +uniform mat4 view; +#ifdef DIFFUSE +uniform mat4 diffuseMatrix; +uniform vec2 vDiffuseInfos; +#endif +#ifdef AMBIENT +uniform mat4 ambientMatrix; +uniform vec2 vAmbientInfos; +#endif +#ifdef OPACITY +uniform mat4 opacityMatrix; +uniform vec2 vOpacityInfos; +#endif +#ifdef EMISSIVE +uniform vec2 vEmissiveInfos; +uniform mat4 emissiveMatrix; +#endif +#ifdef LIGHTMAP +uniform vec2 vLightmapInfos; +uniform mat4 lightmapMatrix; +#endif +#if defined(SPECULAR) && defined(SPECULARTERM) +uniform vec2 vSpecularInfos; +uniform mat4 specularMatrix; +#endif +#ifdef BUMP +uniform vec3 vBumpInfos; +uniform mat4 bumpMatrix; +#endif +#ifdef REFLECTION +uniform mat4 reflectionMatrix; +#endif +#ifdef POINTSIZE +uniform float pointSize; +#endif +`;E.a.IncludesShadersStore.defaultVertexDeclaration=I,f(78),f(79),f(163),f(164),f(117),f(137),f(93),f(94),f(100),f(80),f(81),f(165),f(156),f(111),f(157),f(138),E.a.IncludesShadersStore.pointCloudVertex=`#ifdef POINTSIZE +gl_PointSize=pointSize; +#endif`,f(158);var V=`#include<__decl__defaultVertex> + +#define CUSTOM_VERTEX_BEGIN +attribute vec3 position; +#ifdef NORMAL +attribute vec3 normal; +#endif +#ifdef TANGENT +attribute vec4 tangent; +#endif +#ifdef UV1 +attribute vec2 uv; +#endif +#ifdef UV2 +attribute vec2 uv2; +#endif +#ifdef VERTEXCOLOR +attribute vec4 color; +#endif +#include +#include + +#include +#include +#ifdef MAINUV1 +varying vec2 vMainUV1; +#endif +#ifdef MAINUV2 +varying vec2 vMainUV2; +#endif +#if defined(DIFFUSE) && DIFFUSEDIRECTUV == 0 +varying vec2 vDiffuseUV; +#endif +#if defined(DETAIL) && DETAILDIRECTUV == 0 +varying vec2 vDetailUV; +#endif +#if defined(AMBIENT) && AMBIENTDIRECTUV == 0 +varying vec2 vAmbientUV; +#endif +#if defined(OPACITY) && OPACITYDIRECTUV == 0 +varying vec2 vOpacityUV; +#endif +#if defined(EMISSIVE) && EMISSIVEDIRECTUV == 0 +varying vec2 vEmissiveUV; +#endif +#if defined(LIGHTMAP) && LIGHTMAPDIRECTUV == 0 +varying vec2 vLightmapUV; +#endif +#if defined(SPECULAR) && defined(SPECULARTERM) && SPECULARDIRECTUV == 0 +varying vec2 vSpecularUV; +#endif +#if defined(BUMP) && BUMPDIRECTUV == 0 +varying vec2 vBumpUV; +#endif + +varying vec3 vPositionW; +#ifdef NORMAL +varying vec3 vNormalW; +#endif +#ifdef VERTEXCOLOR +varying vec4 vColor; +#endif +#include +#include +#include +#include<__decl__lightFragment>[0..maxSimultaneousLights] +#include +#include[0..maxSimultaneousMorphTargets] +#ifdef REFLECTIONMAP_SKYBOX +varying vec3 vPositionUVW; +#endif +#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED) +varying vec3 vDirectionW; +#endif +#include +#define CUSTOM_VERTEX_DEFINITIONS +void main(void) { +#define CUSTOM_VERTEX_MAIN_BEGIN +vec3 positionUpdated=position; +#ifdef NORMAL +vec3 normalUpdated=normal; +#endif +#ifdef TANGENT +vec4 tangentUpdated=tangent; +#endif +#ifdef UV1 +vec2 uvUpdated=uv; +#endif +#include[0..maxSimultaneousMorphTargets] +#ifdef REFLECTIONMAP_SKYBOX +vPositionUVW=positionUpdated; +#endif +#define CUSTOM_VERTEX_UPDATE_POSITION +#define CUSTOM_VERTEX_UPDATE_NORMAL +#include +#if defined(PREPASS) && defined(PREPASS_VELOCITY) && !defined(BONES_VELOCITY_ENABLED) + +vCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0); +vPreviousPosition=previousViewProjection*previousWorld*vec4(positionUpdated,1.0); +#endif +#include +vec4 worldPos=finalWorld*vec4(positionUpdated,1.0); +#ifdef NORMAL +mat3 normalWorld=mat3(finalWorld); +#if defined(INSTANCES) && defined(THIN_INSTANCES) +vNormalW=normalUpdated/vec3(dot(normalWorld[0],normalWorld[0]),dot(normalWorld[1],normalWorld[1]),dot(normalWorld[2],normalWorld[2])); +vNormalW=normalize(normalWorld*vNormalW); +#else +#ifdef NONUNIFORMSCALING +normalWorld=transposeMat3(inverseMat3(normalWorld)); +#endif +vNormalW=normalize(normalWorld*normalUpdated); +#endif +#endif +#define CUSTOM_VERTEX_UPDATE_WORLDPOS +#ifdef MULTIVIEW +if (gl_ViewID_OVR == 0u) { +gl_Position=viewProjection*worldPos; +} else { +gl_Position=viewProjectionR*worldPos; +} +#else +gl_Position=viewProjection*worldPos; +#endif +vPositionW=vec3(worldPos); +#include +#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED) +vDirectionW=normalize(vec3(finalWorld*vec4(positionUpdated,0.0))); +#endif + +#ifndef UV1 +vec2 uvUpdated=vec2(0.,0.); +#endif +#ifndef UV2 +vec2 uv2=vec2(0.,0.); +#endif +#ifdef MAINUV1 +vMainUV1=uvUpdated; +#endif +#ifdef MAINUV2 +vMainUV2=uv2; +#endif +#if defined(DIFFUSE) && DIFFUSEDIRECTUV == 0 +if (vDiffuseInfos.x == 0.) +{ +vDiffuseUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0)); +} +else +{ +vDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0)); +} +#endif +#if defined(DETAIL) && DETAILDIRECTUV == 0 +if (vDetailInfos.x == 0.) +{ +vDetailUV=vec2(detailMatrix*vec4(uvUpdated,1.0,0.0)); +} +else +{ +vDetailUV=vec2(detailMatrix*vec4(uv2,1.0,0.0)); +} +#endif +#if defined(AMBIENT) && AMBIENTDIRECTUV == 0 +if (vAmbientInfos.x == 0.) +{ +vAmbientUV=vec2(ambientMatrix*vec4(uvUpdated,1.0,0.0)); +} +else +{ +vAmbientUV=vec2(ambientMatrix*vec4(uv2,1.0,0.0)); +} +#endif +#if defined(OPACITY) && OPACITYDIRECTUV == 0 +if (vOpacityInfos.x == 0.) +{ +vOpacityUV=vec2(opacityMatrix*vec4(uvUpdated,1.0,0.0)); +} +else +{ +vOpacityUV=vec2(opacityMatrix*vec4(uv2,1.0,0.0)); +} +#endif +#if defined(EMISSIVE) && EMISSIVEDIRECTUV == 0 +if (vEmissiveInfos.x == 0.) +{ +vEmissiveUV=vec2(emissiveMatrix*vec4(uvUpdated,1.0,0.0)); +} +else +{ +vEmissiveUV=vec2(emissiveMatrix*vec4(uv2,1.0,0.0)); +} +#endif +#if defined(LIGHTMAP) && LIGHTMAPDIRECTUV == 0 +if (vLightmapInfos.x == 0.) +{ +vLightmapUV=vec2(lightmapMatrix*vec4(uvUpdated,1.0,0.0)); +} +else +{ +vLightmapUV=vec2(lightmapMatrix*vec4(uv2,1.0,0.0)); +} +#endif +#if defined(SPECULAR) && defined(SPECULARTERM) && SPECULARDIRECTUV == 0 +if (vSpecularInfos.x == 0.) +{ +vSpecularUV=vec2(specularMatrix*vec4(uvUpdated,1.0,0.0)); +} +else +{ +vSpecularUV=vec2(specularMatrix*vec4(uv2,1.0,0.0)); +} +#endif +#if defined(BUMP) && BUMPDIRECTUV == 0 +if (vBumpInfos.x == 0.) +{ +vBumpUV=vec2(bumpMatrix*vec4(uvUpdated,1.0,0.0)); +} +else +{ +vBumpUV=vec2(bumpMatrix*vec4(uv2,1.0,0.0)); +} +#endif +#include +#include +#include +#include[0..maxSimultaneousLights] +#ifdef VERTEXCOLOR + +vColor=color; +#endif +#include +#include +#define CUSTOM_VERTEX_MAIN_END +} +`;E.a.ShadersStore.defaultVertexShader=V;var X=f(2),j=f(67),ne=f(92),te={effect:null,subMesh:null},de=function(ae){function ee(){var K=ae.call(this)||this;return K.MAINUV1=!1,K.MAINUV2=!1,K.DIFFUSE=!1,K.DIFFUSEDIRECTUV=0,K.DETAIL=!1,K.DETAILDIRECTUV=0,K.DETAIL_NORMALBLENDMETHOD=0,K.AMBIENT=!1,K.AMBIENTDIRECTUV=0,K.OPACITY=!1,K.OPACITYDIRECTUV=0,K.OPACITYRGB=!1,K.REFLECTION=!1,K.EMISSIVE=!1,K.EMISSIVEDIRECTUV=0,K.SPECULAR=!1,K.SPECULARDIRECTUV=0,K.BUMP=!1,K.BUMPDIRECTUV=0,K.PARALLAX=!1,K.PARALLAXOCCLUSION=!1,K.SPECULAROVERALPHA=!1,K.CLIPPLANE=!1,K.CLIPPLANE2=!1,K.CLIPPLANE3=!1,K.CLIPPLANE4=!1,K.CLIPPLANE5=!1,K.CLIPPLANE6=!1,K.ALPHATEST=!1,K.DEPTHPREPASS=!1,K.ALPHAFROMDIFFUSE=!1,K.POINTSIZE=!1,K.FOG=!1,K.SPECULARTERM=!1,K.DIFFUSEFRESNEL=!1,K.OPACITYFRESNEL=!1,K.REFLECTIONFRESNEL=!1,K.REFRACTIONFRESNEL=!1,K.EMISSIVEFRESNEL=!1,K.FRESNEL=!1,K.NORMAL=!1,K.UV1=!1,K.UV2=!1,K.VERTEXCOLOR=!1,K.VERTEXALPHA=!1,K.NUM_BONE_INFLUENCERS=0,K.BonesPerMesh=0,K.BONETEXTURE=!1,K.BONES_VELOCITY_ENABLED=!1,K.INSTANCES=!1,K.THIN_INSTANCES=!1,K.GLOSSINESS=!1,K.ROUGHNESS=!1,K.EMISSIVEASILLUMINATION=!1,K.LINKEMISSIVEWITHDIFFUSE=!1,K.REFLECTIONFRESNELFROMSPECULAR=!1,K.LIGHTMAP=!1,K.LIGHTMAPDIRECTUV=0,K.OBJECTSPACE_NORMALMAP=!1,K.USELIGHTMAPASSHADOWMAP=!1,K.REFLECTIONMAP_3D=!1,K.REFLECTIONMAP_SPHERICAL=!1,K.REFLECTIONMAP_PLANAR=!1,K.REFLECTIONMAP_CUBIC=!1,K.USE_LOCAL_REFLECTIONMAP_CUBIC=!1,K.REFLECTIONMAP_PROJECTION=!1,K.REFLECTIONMAP_SKYBOX=!1,K.REFLECTIONMAP_EXPLICIT=!1,K.REFLECTIONMAP_EQUIRECTANGULAR=!1,K.REFLECTIONMAP_EQUIRECTANGULAR_FIXED=!1,K.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED=!1,K.INVERTCUBICMAP=!1,K.LOGARITHMICDEPTH=!1,K.REFRACTION=!1,K.REFRACTIONMAP_3D=!1,K.REFLECTIONOVERALPHA=!1,K.TWOSIDEDLIGHTING=!1,K.SHADOWFLOAT=!1,K.MORPHTARGETS=!1,K.MORPHTARGETS_NORMAL=!1,K.MORPHTARGETS_TANGENT=!1,K.MORPHTARGETS_UV=!1,K.NUM_MORPH_INFLUENCERS=0,K.NONUNIFORMSCALING=!1,K.PREMULTIPLYALPHA=!1,K.ALPHATEST_AFTERALLALPHACOMPUTATIONS=!1,K.ALPHABLEND=!0,K.PREPASS=!1,K.PREPASS_IRRADIANCE=!1,K.PREPASS_IRRADIANCE_INDEX=-1,K.PREPASS_ALBEDO=!1,K.PREPASS_ALBEDO_INDEX=-1,K.PREPASS_DEPTHNORMAL=!1,K.PREPASS_DEPTHNORMAL_INDEX=-1,K.PREPASS_POSITION=!1,K.PREPASS_POSITION_INDEX=-1,K.PREPASS_VELOCITY=!1,K.PREPASS_VELOCITY_INDEX=-1,K.PREPASS_REFLECTIVITY=!1,K.PREPASS_REFLECTIVITY_INDEX=-1,K.SCENE_MRT_COUNT=0,K.RGBDLIGHTMAP=!1,K.RGBDREFLECTION=!1,K.RGBDREFRACTION=!1,K.IMAGEPROCESSING=!1,K.VIGNETTE=!1,K.VIGNETTEBLENDMODEMULTIPLY=!1,K.VIGNETTEBLENDMODEOPAQUE=!1,K.TONEMAPPING=!1,K.TONEMAPPING_ACES=!1,K.CONTRAST=!1,K.COLORCURVES=!1,K.COLORGRADING=!1,K.COLORGRADING3D=!1,K.SAMPLER3DGREENDEPTH=!1,K.SAMPLER3DBGRMAP=!1,K.IMAGEPROCESSINGPOSTPROCESS=!1,K.MULTIVIEW=!1,K.IS_REFLECTION_LINEAR=!1,K.IS_REFRACTION_LINEAR=!1,K.EXPOSURE=!1,K.rebuild(),K}return Object(U.d)(ee,ae),ee.prototype.setReflectionMode=function(K){for(var $=0,L=["REFLECTIONMAP_CUBIC","REFLECTIONMAP_EXPLICIT","REFLECTIONMAP_PLANAR","REFLECTIONMAP_PROJECTION","REFLECTIONMAP_PROJECTION","REFLECTIONMAP_SKYBOX","REFLECTIONMAP_SPHERICAL","REFLECTIONMAP_EQUIRECTANGULAR","REFLECTIONMAP_EQUIRECTANGULAR_FIXED","REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED"];$0,Q.REFLECTIONOVERALPHA=this._useReflectionOverAlpha,Q.INVERTCUBICMAP=this._reflectionTexture.coordinatesMode===l.a.INVCUBIC_MODE,Q.REFLECTIONMAP_3D=this._reflectionTexture.isCube,Q.RGBDREFLECTION=this._reflectionTexture.isRGBD,this._reflectionTexture.coordinatesMode){case l.a.EXPLICIT_MODE:Q.setReflectionMode("REFLECTIONMAP_EXPLICIT");break;case l.a.PLANAR_MODE:Q.setReflectionMode("REFLECTIONMAP_PLANAR");break;case l.a.PROJECTION_MODE:Q.setReflectionMode("REFLECTIONMAP_PROJECTION");break;case l.a.SKYBOX_MODE:Q.setReflectionMode("REFLECTIONMAP_SKYBOX");break;case l.a.SPHERICAL_MODE:Q.setReflectionMode("REFLECTIONMAP_SPHERICAL");break;case l.a.EQUIRECTANGULAR_MODE:Q.setReflectionMode("REFLECTIONMAP_EQUIRECTANGULAR");break;case l.a.FIXED_EQUIRECTANGULAR_MODE:Q.setReflectionMode("REFLECTIONMAP_EQUIRECTANGULAR_FIXED");break;case l.a.FIXED_EQUIRECTANGULAR_MIRRORED_MODE:Q.setReflectionMode("REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED");break;case l.a.CUBIC_MODE:case l.a.INVCUBIC_MODE:default:Q.setReflectionMode("REFLECTIONMAP_CUBIC")}Q.USE_LOCAL_REFLECTIONMAP_CUBIC=!!this._reflectionTexture.boundingBoxSize}else Q.REFLECTION=!1;if(this._emissiveTexture&&ee.EmissiveTextureEnabled){if(!this._emissiveTexture.isReadyOrNotBlocking())return!1;g.a.PrepareDefinesForMergedUV(this._emissiveTexture,Q,"EMISSIVE")}else Q.EMISSIVE=!1;if(this._lightmapTexture&&ee.LightmapTextureEnabled){if(!this._lightmapTexture.isReadyOrNotBlocking())return!1;g.a.PrepareDefinesForMergedUV(this._lightmapTexture,Q,"LIGHTMAP"),Q.USELIGHTMAPASSHADOWMAP=this._useLightmapAsShadowmap,Q.RGBDLIGHTMAP=this._lightmapTexture.isRGBD}else Q.LIGHTMAP=!1;if(this._specularTexture&&ee.SpecularTextureEnabled){if(!this._specularTexture.isReadyOrNotBlocking())return!1;g.a.PrepareDefinesForMergedUV(this._specularTexture,Q,"SPECULAR"),Q.GLOSSINESS=this._useGlossinessFromSpecularMapAlpha}else Q.SPECULAR=!1;if(G.getEngine().getCaps().standardDerivatives&&this._bumpTexture&&ee.BumpTextureEnabled){if(!this._bumpTexture.isReady())return!1;g.a.PrepareDefinesForMergedUV(this._bumpTexture,Q,"BUMP"),Q.PARALLAX=this._useParallax,Q.PARALLAXOCCLUSION=this._useParallaxOcclusion,Q.OBJECTSPACE_NORMALMAP=this._useObjectSpaceNormalMap}else Q.BUMP=!1;if(this._refractionTexture&&ee.RefractionTextureEnabled){if(!this._refractionTexture.isReadyOrNotBlocking())return!1;Q._needUVs=!0,Q.REFRACTION=!0,Q.REFRACTIONMAP_3D=this._refractionTexture.isCube,Q.RGBDREFRACTION=this._refractionTexture.isRGBD}else Q.REFRACTION=!1;Q.TWOSIDEDLIGHTING=!this._backFaceCulling&&this._twoSidedLighting}else Q.DIFFUSE=!1,Q.AMBIENT=!1,Q.OPACITY=!1,Q.REFLECTION=!1,Q.EMISSIVE=!1,Q.LIGHTMAP=!1,Q.BUMP=!1,Q.REFRACTION=!1;Q.ALPHAFROMDIFFUSE=this._shouldUseAlphaFromDiffuseTexture(),Q.EMISSIVEASILLUMINATION=this._useEmissiveAsIllumination,Q.LINKEMISSIVEWITHDIFFUSE=this._linkEmissiveWithDiffuse,Q.SPECULAROVERALPHA=this._useSpecularOverAlpha,Q.PREMULTIPLYALPHA=this.alphaMode===X.a.ALPHA_PREMULTIPLIED||this.alphaMode===X.a.ALPHA_PREMULTIPLIED_PORTERDUFF,Q.ALPHATEST_AFTERALLALPHACOMPUTATIONS=this.transparencyMode!==null,Q.ALPHABLEND=this.transparencyMode===null||this.needAlphaBlendingForMesh(K)}if(!this.detailMap.isReadyForSubMesh(Q,G))return!1;if(Q._areImageProcessingDirty&&this._imageProcessingConfiguration){if(!this._imageProcessingConfiguration.isReady())return!1;this._imageProcessingConfiguration.prepareDefines(Q),Q.IS_REFLECTION_LINEAR=this.reflectionTexture!=null&&!this.reflectionTexture.gammaSpace,Q.IS_REFRACTION_LINEAR=this.refractionTexture!=null&&!this.refractionTexture.gammaSpace}if(Q._areFresnelDirty&&(ee.FresnelEnabled?(this._diffuseFresnelParameters||this._opacityFresnelParameters||this._emissiveFresnelParameters||this._refractionFresnelParameters||this._reflectionFresnelParameters)&&(Q.DIFFUSEFRESNEL=this._diffuseFresnelParameters&&this._diffuseFresnelParameters.isEnabled,Q.OPACITYFRESNEL=this._opacityFresnelParameters&&this._opacityFresnelParameters.isEnabled,Q.REFLECTIONFRESNEL=this._reflectionFresnelParameters&&this._reflectionFresnelParameters.isEnabled,Q.REFLECTIONFRESNELFROMSPECULAR=this._useReflectionFresnelFromSpecular,Q.REFRACTIONFRESNEL=this._refractionFresnelParameters&&this._refractionFresnelParameters.isEnabled,Q.EMISSIVEFRESNEL=this._emissiveFresnelParameters&&this._emissiveFresnelParameters.isEnabled,Q._needNormals=!0,Q.FRESNEL=!0):Q.FRESNEL=!1),g.a.PrepareDefinesForMisc(K,G,this._useLogarithmicDepth,this.pointsCloud,this.fogEnabled,this._shouldTurnAlphaTestOn(K)||this._forceAlphaTest,Q),g.a.PrepareDefinesForAttributes(K,Q,!0,!0,!0),g.a.PrepareDefinesForFrameBoundValues(G,oe,Q,L,null,$.getRenderingMesh().hasThinInstances),this.detailMap.prepareDefines(Q,G),Q.isDirty){var re=Q._areLightsDisposed;Q.markAsProcessed();var Y=new j.a;Q.REFLECTION&&Y.addFallback(0,"REFLECTION"),Q.SPECULAR&&Y.addFallback(0,"SPECULAR"),Q.BUMP&&Y.addFallback(0,"BUMP"),Q.PARALLAX&&Y.addFallback(1,"PARALLAX"),Q.PARALLAXOCCLUSION&&Y.addFallback(0,"PARALLAXOCCLUSION"),Q.SPECULAROVERALPHA&&Y.addFallback(0,"SPECULAROVERALPHA"),Q.FOG&&Y.addFallback(1,"FOG"),Q.POINTSIZE&&Y.addFallback(0,"POINTSIZE"),Q.LOGARITHMICDEPTH&&Y.addFallback(0,"LOGARITHMICDEPTH"),g.a.HandleFallbacksForShadows(Q,Y,this._maxSimultaneousLights),Q.SPECULARTERM&&Y.addFallback(0,"SPECULARTERM"),Q.DIFFUSEFRESNEL&&Y.addFallback(1,"DIFFUSEFRESNEL"),Q.OPACITYFRESNEL&&Y.addFallback(2,"OPACITYFRESNEL"),Q.REFLECTIONFRESNEL&&Y.addFallback(3,"REFLECTIONFRESNEL"),Q.EMISSIVEFRESNEL&&Y.addFallback(4,"EMISSIVEFRESNEL"),Q.FRESNEL&&Y.addFallback(4,"FRESNEL"),Q.MULTIVIEW&&Y.addFallback(0,"MULTIVIEW");var k=[P.b.PositionKind];Q.NORMAL&&k.push(P.b.NormalKind),Q.UV1&&k.push(P.b.UVKind),Q.UV2&&k.push(P.b.UV2Kind),Q.VERTEXCOLOR&&k.push(P.b.ColorKind),g.a.PrepareAttributesForBones(k,K,Q,Y),g.a.PrepareAttributesForInstances(k,Q),g.a.PrepareAttributesForMorphTargets(k,K,Q);var H="default",Z=["world","view","viewProjection","vEyePosition","vLightsType","vAmbientColor","vDiffuseColor","vSpecularColor","vEmissiveColor","visibility","vFogInfos","vFogColor","pointSize","vDiffuseInfos","vAmbientInfos","vOpacityInfos","vReflectionInfos","vEmissiveInfos","vSpecularInfos","vBumpInfos","vLightmapInfos","vRefractionInfos","mBones","vClipPlane","vClipPlane2","vClipPlane3","vClipPlane4","vClipPlane5","vClipPlane6","diffuseMatrix","ambientMatrix","opacityMatrix","reflectionMatrix","emissiveMatrix","specularMatrix","bumpMatrix","normalMatrix","lightmapMatrix","refractionMatrix","diffuseLeftColor","diffuseRightColor","opacityParts","reflectionLeftColor","reflectionRightColor","emissiveLeftColor","emissiveRightColor","refractionLeftColor","refractionRightColor","vReflectionPosition","vReflectionSize","logarithmicDepthConstant","vTangentSpaceParams","alphaCutOff","boneTextureWidth"],W=["diffuseSampler","ambientSampler","opacitySampler","reflectionCubeSampler","reflection2DSampler","emissiveSampler","specularSampler","bumpSampler","lightmapSampler","refractionCubeSampler","refraction2DSampler","boneSampler"],q=["Material","Scene"];ne.a.AddUniforms(Z),ne.a.AddSamplers(W),m.a.AddUniforms(Z),m.a.AddSamplers(Z),c.a&&(c.a.PrepareUniforms(Z,Q),c.a.PrepareSamplers(W,Q)),g.a.PrepareUniformsAndSamplersList({uniformsNames:Z,uniformBuffersNames:q,samplers:W,defines:Q,maxSimultaneousLights:this._maxSimultaneousLights});var he={};this.customShaderNameResolve&&(H=this.customShaderNameResolve(H,Z,q,W,Q,k,he));var ge=Q.toString(),me=$.effect,_e=G.getEngine().createEffect(H,{attributes:k,uniformsNames:Z,uniformBuffersNames:q,samplers:W,defines:ge,fallbacks:Y,onCompiled:this.onCompiled,onError:this.onError,indexParameters:{maxSimultaneousLights:this._maxSimultaneousLights,maxSimultaneousMorphTargets:Q.NUM_MORPH_INFLUENCERS},processFinalCode:he.processFinalCode,multiTarget:Q.PREPASS},oe);if(_e)if(this._onEffectCreatedObservable&&(te.effect=_e,te.subMesh=$,this._onEffectCreatedObservable.notifyObservers(te)),this.allowShaderHotSwapping&&me&&!_e.isReady()){if(_e=me,this._rebuildInParallel=!0,Q.markAsUnprocessed(),re)return Q._areLightsDisposed=!0,!1}else this._rebuildInParallel=!1,G.resetCachedMaterial(),$.setEffect(_e,Q),this.buildUniformLayout()}return!(!$.effect||!$.effect.isReady())&&(Q._renderId=G.getRenderId(),$.effect._wasPreviouslyReady=!0,!0)},ee.prototype.buildUniformLayout=function(){var K=this._uniformBuffer;K.addUniform("diffuseLeftColor",4),K.addUniform("diffuseRightColor",4),K.addUniform("opacityParts",4),K.addUniform("reflectionLeftColor",4),K.addUniform("reflectionRightColor",4),K.addUniform("refractionLeftColor",4),K.addUniform("refractionRightColor",4),K.addUniform("emissiveLeftColor",4),K.addUniform("emissiveRightColor",4),K.addUniform("vDiffuseInfos",2),K.addUniform("vAmbientInfos",2),K.addUniform("vOpacityInfos",2),K.addUniform("vReflectionInfos",2),K.addUniform("vReflectionPosition",3),K.addUniform("vReflectionSize",3),K.addUniform("vEmissiveInfos",2),K.addUniform("vLightmapInfos",2),K.addUniform("vSpecularInfos",2),K.addUniform("vBumpInfos",3),K.addUniform("diffuseMatrix",16),K.addUniform("ambientMatrix",16),K.addUniform("opacityMatrix",16),K.addUniform("reflectionMatrix",16),K.addUniform("emissiveMatrix",16),K.addUniform("lightmapMatrix",16),K.addUniform("specularMatrix",16),K.addUniform("bumpMatrix",16),K.addUniform("vTangentSpaceParams",2),K.addUniform("pointSize",1),K.addUniform("refractionMatrix",16),K.addUniform("vRefractionInfos",4),K.addUniform("vSpecularColor",4),K.addUniform("vEmissiveColor",3),K.addUniform("visibility",1),K.addUniform("vDiffuseColor",4),ne.a.PrepareUniformBuffer(K),K.create()},ee.prototype.unbind=function(){if(this._activeEffect){var K=!1;this._reflectionTexture&&this._reflectionTexture.isRenderTarget&&(this._activeEffect.setTexture("reflection2DSampler",null),K=!0),this._refractionTexture&&this._refractionTexture.isRenderTarget&&(this._activeEffect.setTexture("refraction2DSampler",null),K=!0),K&&this._markAllSubMeshesAsTexturesDirty()}ae.prototype.unbind.call(this)},ee.prototype.bindForSubMesh=function(K,$,L){var G=this.getScene(),Q=L._materialDefines;if(Q){var oe=L.effect;if(oe){this._activeEffect=oe,Q.INSTANCES&&!Q.THIN_INSTANCES||this.bindOnlyWorldMatrix(K),this.prePassConfiguration.bindForSubMesh(this._activeEffect,G,$,K,this.isFrozen),Q.OBJECTSPACE_NORMALMAP&&(K.toNormalMatrix(this._normalMatrix),this.bindOnlyNormalMatrix(this._normalMatrix));var re=this._mustRebind(G,oe,$.visibility);g.a.BindBonesParameters($,oe);var Y=this._uniformBuffer;if(re){if(Y.bindToEffect(oe,"Material"),this.bindViewProjection(oe),!Y.useUbo||!this.isFrozen||!Y.isSync){if(ee.FresnelEnabled&&Q.FRESNEL&&(this.diffuseFresnelParameters&&this.diffuseFresnelParameters.isEnabled&&(Y.updateColor4("diffuseLeftColor",this.diffuseFresnelParameters.leftColor,this.diffuseFresnelParameters.power),Y.updateColor4("diffuseRightColor",this.diffuseFresnelParameters.rightColor,this.diffuseFresnelParameters.bias)),this.opacityFresnelParameters&&this.opacityFresnelParameters.isEnabled&&Y.updateColor4("opacityParts",new C.a(this.opacityFresnelParameters.leftColor.toLuminance(),this.opacityFresnelParameters.rightColor.toLuminance(),this.opacityFresnelParameters.bias),this.opacityFresnelParameters.power),this.reflectionFresnelParameters&&this.reflectionFresnelParameters.isEnabled&&(Y.updateColor4("reflectionLeftColor",this.reflectionFresnelParameters.leftColor,this.reflectionFresnelParameters.power),Y.updateColor4("reflectionRightColor",this.reflectionFresnelParameters.rightColor,this.reflectionFresnelParameters.bias)),this.refractionFresnelParameters&&this.refractionFresnelParameters.isEnabled&&(Y.updateColor4("refractionLeftColor",this.refractionFresnelParameters.leftColor,this.refractionFresnelParameters.power),Y.updateColor4("refractionRightColor",this.refractionFresnelParameters.rightColor,this.refractionFresnelParameters.bias)),this.emissiveFresnelParameters&&this.emissiveFresnelParameters.isEnabled&&(Y.updateColor4("emissiveLeftColor",this.emissiveFresnelParameters.leftColor,this.emissiveFresnelParameters.power),Y.updateColor4("emissiveRightColor",this.emissiveFresnelParameters.rightColor,this.emissiveFresnelParameters.bias))),G.texturesEnabled){if(this._diffuseTexture&&ee.DiffuseTextureEnabled&&(Y.updateFloat2("vDiffuseInfos",this._diffuseTexture.coordinatesIndex,this._diffuseTexture.level),g.a.BindTextureMatrix(this._diffuseTexture,Y,"diffuse")),this._ambientTexture&&ee.AmbientTextureEnabled&&(Y.updateFloat2("vAmbientInfos",this._ambientTexture.coordinatesIndex,this._ambientTexture.level),g.a.BindTextureMatrix(this._ambientTexture,Y,"ambient")),this._opacityTexture&&ee.OpacityTextureEnabled&&(Y.updateFloat2("vOpacityInfos",this._opacityTexture.coordinatesIndex,this._opacityTexture.level),g.a.BindTextureMatrix(this._opacityTexture,Y,"opacity")),this._hasAlphaChannel()&&oe.setFloat("alphaCutOff",this.alphaCutOff),this._reflectionTexture&&ee.ReflectionTextureEnabled&&(Y.updateFloat2("vReflectionInfos",this._reflectionTexture.level,this.roughness),Y.updateMatrix("reflectionMatrix",this._reflectionTexture.getReflectionTextureMatrix()),this._reflectionTexture.boundingBoxSize)){var k=this._reflectionTexture;Y.updateVector3("vReflectionPosition",k.boundingBoxPosition),Y.updateVector3("vReflectionSize",k.boundingBoxSize)}if(this._emissiveTexture&&ee.EmissiveTextureEnabled&&(Y.updateFloat2("vEmissiveInfos",this._emissiveTexture.coordinatesIndex,this._emissiveTexture.level),g.a.BindTextureMatrix(this._emissiveTexture,Y,"emissive")),this._lightmapTexture&&ee.LightmapTextureEnabled&&(Y.updateFloat2("vLightmapInfos",this._lightmapTexture.coordinatesIndex,this._lightmapTexture.level),g.a.BindTextureMatrix(this._lightmapTexture,Y,"lightmap")),this._specularTexture&&ee.SpecularTextureEnabled&&(Y.updateFloat2("vSpecularInfos",this._specularTexture.coordinatesIndex,this._specularTexture.level),g.a.BindTextureMatrix(this._specularTexture,Y,"specular")),this._bumpTexture&&G.getEngine().getCaps().standardDerivatives&&ee.BumpTextureEnabled&&(Y.updateFloat3("vBumpInfos",this._bumpTexture.coordinatesIndex,1/this._bumpTexture.level,this.parallaxScaleBias),g.a.BindTextureMatrix(this._bumpTexture,Y,"bump"),G._mirroredCameraPosition?Y.updateFloat2("vTangentSpaceParams",this._invertNormalMapX?1:-1,this._invertNormalMapY?1:-1):Y.updateFloat2("vTangentSpaceParams",this._invertNormalMapX?-1:1,this._invertNormalMapY?-1:1)),this._refractionTexture&&ee.RefractionTextureEnabled){var H=1;this._refractionTexture.isCube||(Y.updateMatrix("refractionMatrix",this._refractionTexture.getReflectionTextureMatrix()),this._refractionTexture.depth&&(H=this._refractionTexture.depth)),Y.updateFloat4("vRefractionInfos",this._refractionTexture.level,this.indexOfRefraction,H,this.invertRefractionY?-1:1)}}this.pointsCloud&&Y.updateFloat("pointSize",this.pointSize),Q.SPECULARTERM&&Y.updateColor4("vSpecularColor",this.specularColor,this.specularPower),Y.updateColor3("vEmissiveColor",ee.EmissiveTextureEnabled?this.emissiveColor:C.a.BlackReadOnly),Y.updateColor4("vDiffuseColor",this.diffuseColor,this.alpha)}Y.updateFloat("visibility",$.visibility),G.texturesEnabled&&(this._diffuseTexture&&ee.DiffuseTextureEnabled&&oe.setTexture("diffuseSampler",this._diffuseTexture),this._ambientTexture&&ee.AmbientTextureEnabled&&oe.setTexture("ambientSampler",this._ambientTexture),this._opacityTexture&&ee.OpacityTextureEnabled&&oe.setTexture("opacitySampler",this._opacityTexture),this._reflectionTexture&&ee.ReflectionTextureEnabled&&(this._reflectionTexture.isCube?oe.setTexture("reflectionCubeSampler",this._reflectionTexture):oe.setTexture("reflection2DSampler",this._reflectionTexture)),this._emissiveTexture&&ee.EmissiveTextureEnabled&&oe.setTexture("emissiveSampler",this._emissiveTexture),this._lightmapTexture&&ee.LightmapTextureEnabled&&oe.setTexture("lightmapSampler",this._lightmapTexture),this._specularTexture&&ee.SpecularTextureEnabled&&oe.setTexture("specularSampler",this._specularTexture),this._bumpTexture&&G.getEngine().getCaps().standardDerivatives&&ee.BumpTextureEnabled&&oe.setTexture("bumpSampler",this._bumpTexture),this._refractionTexture&&ee.RefractionTextureEnabled)&&(H=1,this._refractionTexture.isCube?oe.setTexture("refractionCubeSampler",this._refractionTexture):oe.setTexture("refraction2DSampler",this._refractionTexture)),this.detailMap.bindForSubMesh(Y,G,this.isFrozen),g.a.BindClipPlane(oe,G),G.ambientColor.multiplyToRef(this.ambientColor,this._globalAmbientColor),g.a.BindEyePosition(oe,G),oe.setColor3("vAmbientColor",this._globalAmbientColor)}!re&&this.isFrozen||(G.lightsEnabled&&!this._disableLighting&&g.a.BindLights(G,$,oe,Q,this._maxSimultaneousLights,this._rebuildInParallel),(G.fogEnabled&&$.applyFog&&G.fogMode!==u.a.FOGMODE_NONE||this._reflectionTexture||this._refractionTexture)&&this.bindView(oe),g.a.BindFogParameters(G,$,oe),Q.NUM_MORPH_INFLUENCERS&&g.a.BindMorphTargetParameters($,oe),this.useLogarithmicDepth&&g.a.BindLogDepth(Q,oe,G),this._imageProcessingConfiguration&&!this._imageProcessingConfiguration.applyByPostProcess&&this._imageProcessingConfiguration.bind(this._activeEffect)),Y.update(),this._afterBind($,this._activeEffect)}}},ee.prototype.getAnimatables=function(){var K=[];return this._diffuseTexture&&this._diffuseTexture.animations&&this._diffuseTexture.animations.length>0&&K.push(this._diffuseTexture),this._ambientTexture&&this._ambientTexture.animations&&this._ambientTexture.animations.length>0&&K.push(this._ambientTexture),this._opacityTexture&&this._opacityTexture.animations&&this._opacityTexture.animations.length>0&&K.push(this._opacityTexture),this._reflectionTexture&&this._reflectionTexture.animations&&this._reflectionTexture.animations.length>0&&K.push(this._reflectionTexture),this._emissiveTexture&&this._emissiveTexture.animations&&this._emissiveTexture.animations.length>0&&K.push(this._emissiveTexture),this._specularTexture&&this._specularTexture.animations&&this._specularTexture.animations.length>0&&K.push(this._specularTexture),this._bumpTexture&&this._bumpTexture.animations&&this._bumpTexture.animations.length>0&&K.push(this._bumpTexture),this._lightmapTexture&&this._lightmapTexture.animations&&this._lightmapTexture.animations.length>0&&K.push(this._lightmapTexture),this._refractionTexture&&this._refractionTexture.animations&&this._refractionTexture.animations.length>0&&K.push(this._refractionTexture),this.detailMap.getAnimatables(K),K},ee.prototype.getActiveTextures=function(){var K=ae.prototype.getActiveTextures.call(this);return this._diffuseTexture&&K.push(this._diffuseTexture),this._ambientTexture&&K.push(this._ambientTexture),this._opacityTexture&&K.push(this._opacityTexture),this._reflectionTexture&&K.push(this._reflectionTexture),this._emissiveTexture&&K.push(this._emissiveTexture),this._specularTexture&&K.push(this._specularTexture),this._bumpTexture&&K.push(this._bumpTexture),this._lightmapTexture&&K.push(this._lightmapTexture),this._refractionTexture&&K.push(this._refractionTexture),this.detailMap.getActiveTextures(K),K},ee.prototype.hasTexture=function(K){return!!ae.prototype.hasTexture.call(this,K)||this._diffuseTexture===K||this._ambientTexture===K||this._opacityTexture===K||this._reflectionTexture===K||this._emissiveTexture===K||this._specularTexture===K||this._bumpTexture===K||this._lightmapTexture===K||this._refractionTexture===K||this.detailMap.hasTexture(K)},ee.prototype.dispose=function(K,$){var L,G,Q,oe,re,Y,k,H,Z;$&&((L=this._diffuseTexture)===null||L===void 0||L.dispose(),(G=this._ambientTexture)===null||G===void 0||G.dispose(),(Q=this._opacityTexture)===null||Q===void 0||Q.dispose(),(oe=this._reflectionTexture)===null||oe===void 0||oe.dispose(),(re=this._emissiveTexture)===null||re===void 0||re.dispose(),(Y=this._specularTexture)===null||Y===void 0||Y.dispose(),(k=this._bumpTexture)===null||k===void 0||k.dispose(),(H=this._lightmapTexture)===null||H===void 0||H.dispose(),(Z=this._refractionTexture)===null||Z===void 0||Z.dispose()),this.detailMap.dispose($),this._imageProcessingConfiguration&&this._imageProcessingObserver&&this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),ae.prototype.dispose.call(this,K,$)},ee.prototype.clone=function(K){var $=this,L=_.a.Clone(function(){return new ee(K,$.getScene())},this);return L.name=K,L.id=K,L},ee.prototype.serialize=function(){return _.a.Serialize(this)},ee.Parse=function(K,$,L){return _.a.Parse(function(){return new ee(K.name,$)},K,$,L)},Object.defineProperty(ee,"DiffuseTextureEnabled",{get:function(){return v.a.DiffuseTextureEnabled},set:function(K){v.a.DiffuseTextureEnabled=K},enumerable:!1,configurable:!0}),Object.defineProperty(ee,"DetailTextureEnabled",{get:function(){return v.a.DetailTextureEnabled},set:function(K){v.a.DetailTextureEnabled=K},enumerable:!1,configurable:!0}),Object.defineProperty(ee,"AmbientTextureEnabled",{get:function(){return v.a.AmbientTextureEnabled},set:function(K){v.a.AmbientTextureEnabled=K},enumerable:!1,configurable:!0}),Object.defineProperty(ee,"OpacityTextureEnabled",{get:function(){return v.a.OpacityTextureEnabled},set:function(K){v.a.OpacityTextureEnabled=K},enumerable:!1,configurable:!0}),Object.defineProperty(ee,"ReflectionTextureEnabled",{get:function(){return v.a.ReflectionTextureEnabled},set:function(K){v.a.ReflectionTextureEnabled=K},enumerable:!1,configurable:!0}),Object.defineProperty(ee,"EmissiveTextureEnabled",{get:function(){return v.a.EmissiveTextureEnabled},set:function(K){v.a.EmissiveTextureEnabled=K},enumerable:!1,configurable:!0}),Object.defineProperty(ee,"SpecularTextureEnabled",{get:function(){return v.a.SpecularTextureEnabled},set:function(K){v.a.SpecularTextureEnabled=K},enumerable:!1,configurable:!0}),Object.defineProperty(ee,"BumpTextureEnabled",{get:function(){return v.a.BumpTextureEnabled},set:function(K){v.a.BumpTextureEnabled=K},enumerable:!1,configurable:!0}),Object.defineProperty(ee,"LightmapTextureEnabled",{get:function(){return v.a.LightmapTextureEnabled},set:function(K){v.a.LightmapTextureEnabled=K},enumerable:!1,configurable:!0}),Object.defineProperty(ee,"RefractionTextureEnabled",{get:function(){return v.a.RefractionTextureEnabled},set:function(K){v.a.RefractionTextureEnabled=K},enumerable:!1,configurable:!0}),Object.defineProperty(ee,"ColorGradingTextureEnabled",{get:function(){return v.a.ColorGradingTextureEnabled},set:function(K){v.a.ColorGradingTextureEnabled=K},enumerable:!1,configurable:!0}),Object.defineProperty(ee,"FresnelEnabled",{get:function(){return v.a.FresnelEnabled},set:function(K){v.a.FresnelEnabled=K},enumerable:!1,configurable:!0}),Object(U.c)([Object(_.m)("diffuseTexture")],ee.prototype,"_diffuseTexture",void 0),Object(U.c)([Object(_.b)("_markAllSubMeshesAsTexturesAndMiscDirty")],ee.prototype,"diffuseTexture",void 0),Object(U.c)([Object(_.m)("ambientTexture")],ee.prototype,"_ambientTexture",void 0),Object(U.c)([Object(_.b)("_markAllSubMeshesAsTexturesDirty")],ee.prototype,"ambientTexture",void 0),Object(U.c)([Object(_.m)("opacityTexture")],ee.prototype,"_opacityTexture",void 0),Object(U.c)([Object(_.b)("_markAllSubMeshesAsTexturesAndMiscDirty")],ee.prototype,"opacityTexture",void 0),Object(U.c)([Object(_.m)("reflectionTexture")],ee.prototype,"_reflectionTexture",void 0),Object(U.c)([Object(_.b)("_markAllSubMeshesAsTexturesDirty")],ee.prototype,"reflectionTexture",void 0),Object(U.c)([Object(_.m)("emissiveTexture")],ee.prototype,"_emissiveTexture",void 0),Object(U.c)([Object(_.b)("_markAllSubMeshesAsTexturesDirty")],ee.prototype,"emissiveTexture",void 0),Object(U.c)([Object(_.m)("specularTexture")],ee.prototype,"_specularTexture",void 0),Object(U.c)([Object(_.b)("_markAllSubMeshesAsTexturesDirty")],ee.prototype,"specularTexture",void 0),Object(U.c)([Object(_.m)("bumpTexture")],ee.prototype,"_bumpTexture",void 0),Object(U.c)([Object(_.b)("_markAllSubMeshesAsTexturesDirty")],ee.prototype,"bumpTexture",void 0),Object(U.c)([Object(_.m)("lightmapTexture")],ee.prototype,"_lightmapTexture",void 0),Object(U.c)([Object(_.b)("_markAllSubMeshesAsTexturesDirty")],ee.prototype,"lightmapTexture",void 0),Object(U.c)([Object(_.m)("refractionTexture")],ee.prototype,"_refractionTexture",void 0),Object(U.c)([Object(_.b)("_markAllSubMeshesAsTexturesDirty")],ee.prototype,"refractionTexture",void 0),Object(U.c)([Object(_.e)("ambient")],ee.prototype,"ambientColor",void 0),Object(U.c)([Object(_.e)("diffuse")],ee.prototype,"diffuseColor",void 0),Object(U.c)([Object(_.e)("specular")],ee.prototype,"specularColor",void 0),Object(U.c)([Object(_.e)("emissive")],ee.prototype,"emissiveColor",void 0),Object(U.c)([Object(_.c)()],ee.prototype,"specularPower",void 0),Object(U.c)([Object(_.c)("useAlphaFromDiffuseTexture")],ee.prototype,"_useAlphaFromDiffuseTexture",void 0),Object(U.c)([Object(_.b)("_markAllSubMeshesAsTexturesAndMiscDirty")],ee.prototype,"useAlphaFromDiffuseTexture",void 0),Object(U.c)([Object(_.c)("useEmissiveAsIllumination")],ee.prototype,"_useEmissiveAsIllumination",void 0),Object(U.c)([Object(_.b)("_markAllSubMeshesAsTexturesDirty")],ee.prototype,"useEmissiveAsIllumination",void 0),Object(U.c)([Object(_.c)("linkEmissiveWithDiffuse")],ee.prototype,"_linkEmissiveWithDiffuse",void 0),Object(U.c)([Object(_.b)("_markAllSubMeshesAsTexturesDirty")],ee.prototype,"linkEmissiveWithDiffuse",void 0),Object(U.c)([Object(_.c)("useSpecularOverAlpha")],ee.prototype,"_useSpecularOverAlpha",void 0),Object(U.c)([Object(_.b)("_markAllSubMeshesAsTexturesDirty")],ee.prototype,"useSpecularOverAlpha",void 0),Object(U.c)([Object(_.c)("useReflectionOverAlpha")],ee.prototype,"_useReflectionOverAlpha",void 0),Object(U.c)([Object(_.b)("_markAllSubMeshesAsTexturesDirty")],ee.prototype,"useReflectionOverAlpha",void 0),Object(U.c)([Object(_.c)("disableLighting")],ee.prototype,"_disableLighting",void 0),Object(U.c)([Object(_.b)("_markAllSubMeshesAsLightsDirty")],ee.prototype,"disableLighting",void 0),Object(U.c)([Object(_.c)("useObjectSpaceNormalMap")],ee.prototype,"_useObjectSpaceNormalMap",void 0),Object(U.c)([Object(_.b)("_markAllSubMeshesAsTexturesDirty")],ee.prototype,"useObjectSpaceNormalMap",void 0),Object(U.c)([Object(_.c)("useParallax")],ee.prototype,"_useParallax",void 0),Object(U.c)([Object(_.b)("_markAllSubMeshesAsTexturesDirty")],ee.prototype,"useParallax",void 0),Object(U.c)([Object(_.c)("useParallaxOcclusion")],ee.prototype,"_useParallaxOcclusion",void 0),Object(U.c)([Object(_.b)("_markAllSubMeshesAsTexturesDirty")],ee.prototype,"useParallaxOcclusion",void 0),Object(U.c)([Object(_.c)()],ee.prototype,"parallaxScaleBias",void 0),Object(U.c)([Object(_.c)("roughness")],ee.prototype,"_roughness",void 0),Object(U.c)([Object(_.b)("_markAllSubMeshesAsTexturesDirty")],ee.prototype,"roughness",void 0),Object(U.c)([Object(_.c)()],ee.prototype,"indexOfRefraction",void 0),Object(U.c)([Object(_.c)()],ee.prototype,"invertRefractionY",void 0),Object(U.c)([Object(_.c)()],ee.prototype,"alphaCutOff",void 0),Object(U.c)([Object(_.c)("useLightmapAsShadowmap")],ee.prototype,"_useLightmapAsShadowmap",void 0),Object(U.c)([Object(_.b)("_markAllSubMeshesAsTexturesDirty")],ee.prototype,"useLightmapAsShadowmap",void 0),Object(U.c)([Object(_.h)("diffuseFresnelParameters")],ee.prototype,"_diffuseFresnelParameters",void 0),Object(U.c)([Object(_.b)("_markAllSubMeshesAsFresnelDirty")],ee.prototype,"diffuseFresnelParameters",void 0),Object(U.c)([Object(_.h)("opacityFresnelParameters")],ee.prototype,"_opacityFresnelParameters",void 0),Object(U.c)([Object(_.b)("_markAllSubMeshesAsFresnelAndMiscDirty")],ee.prototype,"opacityFresnelParameters",void 0),Object(U.c)([Object(_.h)("reflectionFresnelParameters")],ee.prototype,"_reflectionFresnelParameters",void 0),Object(U.c)([Object(_.b)("_markAllSubMeshesAsFresnelDirty")],ee.prototype,"reflectionFresnelParameters",void 0),Object(U.c)([Object(_.h)("refractionFresnelParameters")],ee.prototype,"_refractionFresnelParameters",void 0),Object(U.c)([Object(_.b)("_markAllSubMeshesAsFresnelDirty")],ee.prototype,"refractionFresnelParameters",void 0),Object(U.c)([Object(_.h)("emissiveFresnelParameters")],ee.prototype,"_emissiveFresnelParameters",void 0),Object(U.c)([Object(_.b)("_markAllSubMeshesAsFresnelDirty")],ee.prototype,"emissiveFresnelParameters",void 0),Object(U.c)([Object(_.c)("useReflectionFresnelFromSpecular")],ee.prototype,"_useReflectionFresnelFromSpecular",void 0),Object(U.c)([Object(_.b)("_markAllSubMeshesAsFresnelDirty")],ee.prototype,"useReflectionFresnelFromSpecular",void 0),Object(U.c)([Object(_.c)("useGlossinessFromSpecularMapAlpha")],ee.prototype,"_useGlossinessFromSpecularMapAlpha",void 0),Object(U.c)([Object(_.b)("_markAllSubMeshesAsTexturesDirty")],ee.prototype,"useGlossinessFromSpecularMapAlpha",void 0),Object(U.c)([Object(_.c)("maxSimultaneousLights")],ee.prototype,"_maxSimultaneousLights",void 0),Object(U.c)([Object(_.b)("_markAllSubMeshesAsLightsDirty")],ee.prototype,"maxSimultaneousLights",void 0),Object(U.c)([Object(_.c)("invertNormalMapX")],ee.prototype,"_invertNormalMapX",void 0),Object(U.c)([Object(_.b)("_markAllSubMeshesAsTexturesDirty")],ee.prototype,"invertNormalMapX",void 0),Object(U.c)([Object(_.c)("invertNormalMapY")],ee.prototype,"_invertNormalMapY",void 0),Object(U.c)([Object(_.b)("_markAllSubMeshesAsTexturesDirty")],ee.prototype,"invertNormalMapY",void 0),Object(U.c)([Object(_.c)("twoSidedLighting")],ee.prototype,"_twoSidedLighting",void 0),Object(U.c)([Object(_.b)("_markAllSubMeshesAsTexturesDirty")],ee.prototype,"twoSidedLighting",void 0),Object(U.c)([Object(_.c)()],ee.prototype,"useLogarithmicDepth",null),ee}(S.a);h.a.RegisteredTypes["BABYLON.StandardMaterial"]=pe,u.a.DefaultMaterialFactory=function(ae){return new pe("default material",ae)}},function(Ie,y,f){f.d(y,"a",function(){return I});var U=f(1),_=f(12),R=f(6),u=f(0),M=f(13),C=f(4),P=f(16),m=f(46),c=f(54),T=f(43),A=f(2),S=f(147),g=f(21),l=f(101),h=f(9),v=f(28),E=f(23),D=f(11),w=function(){this.facetNb=0,this.partitioningSubdivisions=10,this.partitioningBBoxRatio=1.01,this.facetDataEnabled=!1,this.facetParameters={},this.bbSize=u.e.Zero(),this.subDiv={max:1,X:1,Y:1,Z:1},this.facetDepthSort=!1,this.facetDepthSortEnabled=!1},N=function(){this._hasVertexAlpha=!1,this._useVertexColors=!0,this._numBoneInfluencers=4,this._applyFog=!0,this._receiveShadows=!1,this._facetData=new w,this._visibility=1,this._skeleton=null,this._layerMask=268435455,this._computeBonesUsingShaders=!0,this._isActive=!1,this._onlyForInstances=!1,this._isActiveIntermediate=!1,this._onlyForInstancesIntermediate=!1,this._actAsRegularMesh=!1,this._currentLOD=null,this._currentLODIsUpToDate=!1},I=function(V){function X(j,ne){ne===void 0&&(ne=null);var te=V.call(this,j,ne,!1)||this;return te._internalAbstractMeshDataInfo=new N,te.cullingStrategy=X.CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY,te.onCollideObservable=new R.c,te.onCollisionPositionChangeObservable=new R.c,te.onMaterialChangedObservable=new R.c,te.definedFacingForward=!0,te._occlusionQuery=null,te._renderingGroup=null,te.alphaIndex=Number.MAX_VALUE,te.isVisible=!0,te.isPickable=!0,te.showSubMeshesBoundingBox=!1,te.isBlocker=!1,te.enablePointerMoveEvents=!1,te._renderingGroupId=0,te._material=null,te.outlineColor=h.a.Red(),te.outlineWidth=.02,te.overlayColor=h.a.Red(),te.overlayAlpha=.5,te.useOctreeForRenderingSelection=!0,te.useOctreeForPicking=!0,te.useOctreeForCollisions=!0,te.alwaysSelectAsActiveMesh=!1,te.doNotSyncBoundingInfo=!1,te.actionManager=null,te._meshCollisionData=new S.a,te.ellipsoid=new u.e(.5,1,.5),te.ellipsoidOffset=new u.e(0,0,0),te.edgesWidth=1,te.edgesColor=new h.b(1,0,0,1),te._edgesRenderer=null,te._masterMesh=null,te._boundingInfo=null,te._renderId=0,te._intersectionsInProgress=new Array,te._unIndexed=!1,te._lightSources=new Array,te._waitingData={lods:null,actions:null,freezeWorldMatrix:null},te._bonesTransformMatrices=null,te._transformMatrixTexture=null,te.onRebuildObservable=new R.c,te._onCollisionPositionChange=function(de,pe,ae){ae===void 0&&(ae=null),pe.subtractToRef(te._meshCollisionData._oldPositionForCollisions,te._meshCollisionData._diffPositionForCollisions),te._meshCollisionData._diffPositionForCollisions.length()>M.a.CollisionsEpsilon&&te.position.addInPlace(te._meshCollisionData._diffPositionForCollisions),ae&&te.onCollideObservable.notifyObservers(ae),te.onCollisionPositionChangeObservable.notifyObservers(te.position)},te.getScene().addMesh(te),te._resyncLightSources(),te}return Object(U.d)(X,V),Object.defineProperty(X,"BILLBOARDMODE_NONE",{get:function(){return m.a.BILLBOARDMODE_NONE},enumerable:!1,configurable:!0}),Object.defineProperty(X,"BILLBOARDMODE_X",{get:function(){return m.a.BILLBOARDMODE_X},enumerable:!1,configurable:!0}),Object.defineProperty(X,"BILLBOARDMODE_Y",{get:function(){return m.a.BILLBOARDMODE_Y},enumerable:!1,configurable:!0}),Object.defineProperty(X,"BILLBOARDMODE_Z",{get:function(){return m.a.BILLBOARDMODE_Z},enumerable:!1,configurable:!0}),Object.defineProperty(X,"BILLBOARDMODE_ALL",{get:function(){return m.a.BILLBOARDMODE_ALL},enumerable:!1,configurable:!0}),Object.defineProperty(X,"BILLBOARDMODE_USE_POSITION",{get:function(){return m.a.BILLBOARDMODE_USE_POSITION},enumerable:!1,configurable:!0}),Object.defineProperty(X.prototype,"facetNb",{get:function(){return this._internalAbstractMeshDataInfo._facetData.facetNb},enumerable:!1,configurable:!0}),Object.defineProperty(X.prototype,"partitioningSubdivisions",{get:function(){return this._internalAbstractMeshDataInfo._facetData.partitioningSubdivisions},set:function(j){this._internalAbstractMeshDataInfo._facetData.partitioningSubdivisions=j},enumerable:!1,configurable:!0}),Object.defineProperty(X.prototype,"partitioningBBoxRatio",{get:function(){return this._internalAbstractMeshDataInfo._facetData.partitioningBBoxRatio},set:function(j){this._internalAbstractMeshDataInfo._facetData.partitioningBBoxRatio=j},enumerable:!1,configurable:!0}),Object.defineProperty(X.prototype,"mustDepthSortFacets",{get:function(){return this._internalAbstractMeshDataInfo._facetData.facetDepthSort},set:function(j){this._internalAbstractMeshDataInfo._facetData.facetDepthSort=j},enumerable:!1,configurable:!0}),Object.defineProperty(X.prototype,"facetDepthSortFrom",{get:function(){return this._internalAbstractMeshDataInfo._facetData.facetDepthSortFrom},set:function(j){this._internalAbstractMeshDataInfo._facetData.facetDepthSortFrom=j},enumerable:!1,configurable:!0}),Object.defineProperty(X.prototype,"isFacetDataEnabled",{get:function(){return this._internalAbstractMeshDataInfo._facetData.facetDataEnabled},enumerable:!1,configurable:!0}),X.prototype._updateNonUniformScalingState=function(j){return!!V.prototype._updateNonUniformScalingState.call(this,j)&&(this._markSubMeshesAsMiscDirty(),!0)},Object.defineProperty(X.prototype,"onCollide",{set:function(j){this._meshCollisionData._onCollideObserver&&this.onCollideObservable.remove(this._meshCollisionData._onCollideObserver),this._meshCollisionData._onCollideObserver=this.onCollideObservable.add(j)},enumerable:!1,configurable:!0}),Object.defineProperty(X.prototype,"onCollisionPositionChange",{set:function(j){this._meshCollisionData._onCollisionPositionChangeObserver&&this.onCollisionPositionChangeObservable.remove(this._meshCollisionData._onCollisionPositionChangeObserver),this._meshCollisionData._onCollisionPositionChangeObserver=this.onCollisionPositionChangeObservable.add(j)},enumerable:!1,configurable:!0}),Object.defineProperty(X.prototype,"visibility",{get:function(){return this._internalAbstractMeshDataInfo._visibility},set:function(j){this._internalAbstractMeshDataInfo._visibility!==j&&(this._internalAbstractMeshDataInfo._visibility=j,this._markSubMeshesAsMiscDirty())},enumerable:!1,configurable:!0}),Object.defineProperty(X.prototype,"renderingGroupId",{get:function(){return this._renderingGroupId},set:function(j){this._renderingGroupId=j},enumerable:!1,configurable:!0}),Object.defineProperty(X.prototype,"material",{get:function(){return this._material},set:function(j){this._material!==j&&(this._material&&this._material.meshMap&&(this._material.meshMap[this.uniqueId]=void 0),this._material=j,j&&j.meshMap&&(j.meshMap[this.uniqueId]=this),this.onMaterialChangedObservable.hasObservers()&&this.onMaterialChangedObservable.notifyObservers(this),this.subMeshes&&this._unBindEffect())},enumerable:!1,configurable:!0}),Object.defineProperty(X.prototype,"receiveShadows",{get:function(){return this._internalAbstractMeshDataInfo._receiveShadows},set:function(j){this._internalAbstractMeshDataInfo._receiveShadows!==j&&(this._internalAbstractMeshDataInfo._receiveShadows=j,this._markSubMeshesAsLightDirty())},enumerable:!1,configurable:!0}),Object.defineProperty(X.prototype,"hasVertexAlpha",{get:function(){return this._internalAbstractMeshDataInfo._hasVertexAlpha},set:function(j){this._internalAbstractMeshDataInfo._hasVertexAlpha!==j&&(this._internalAbstractMeshDataInfo._hasVertexAlpha=j,this._markSubMeshesAsAttributesDirty(),this._markSubMeshesAsMiscDirty())},enumerable:!1,configurable:!0}),Object.defineProperty(X.prototype,"useVertexColors",{get:function(){return this._internalAbstractMeshDataInfo._useVertexColors},set:function(j){this._internalAbstractMeshDataInfo._useVertexColors!==j&&(this._internalAbstractMeshDataInfo._useVertexColors=j,this._markSubMeshesAsAttributesDirty())},enumerable:!1,configurable:!0}),Object.defineProperty(X.prototype,"computeBonesUsingShaders",{get:function(){return this._internalAbstractMeshDataInfo._computeBonesUsingShaders},set:function(j){this._internalAbstractMeshDataInfo._computeBonesUsingShaders!==j&&(this._internalAbstractMeshDataInfo._computeBonesUsingShaders=j,this._markSubMeshesAsAttributesDirty())},enumerable:!1,configurable:!0}),Object.defineProperty(X.prototype,"numBoneInfluencers",{get:function(){return this._internalAbstractMeshDataInfo._numBoneInfluencers},set:function(j){this._internalAbstractMeshDataInfo._numBoneInfluencers!==j&&(this._internalAbstractMeshDataInfo._numBoneInfluencers=j,this._markSubMeshesAsAttributesDirty())},enumerable:!1,configurable:!0}),Object.defineProperty(X.prototype,"applyFog",{get:function(){return this._internalAbstractMeshDataInfo._applyFog},set:function(j){this._internalAbstractMeshDataInfo._applyFog!==j&&(this._internalAbstractMeshDataInfo._applyFog=j,this._markSubMeshesAsMiscDirty())},enumerable:!1,configurable:!0}),Object.defineProperty(X.prototype,"layerMask",{get:function(){return this._internalAbstractMeshDataInfo._layerMask},set:function(j){j!==this._internalAbstractMeshDataInfo._layerMask&&(this._internalAbstractMeshDataInfo._layerMask=j,this._resyncLightSources())},enumerable:!1,configurable:!0}),Object.defineProperty(X.prototype,"collisionMask",{get:function(){return this._meshCollisionData._collisionMask},set:function(j){this._meshCollisionData._collisionMask=isNaN(j)?-1:j},enumerable:!1,configurable:!0}),Object.defineProperty(X.prototype,"collisionResponse",{get:function(){return this._meshCollisionData._collisionResponse},set:function(j){this._meshCollisionData._collisionResponse=j},enumerable:!1,configurable:!0}),Object.defineProperty(X.prototype,"collisionGroup",{get:function(){return this._meshCollisionData._collisionGroup},set:function(j){this._meshCollisionData._collisionGroup=isNaN(j)?-1:j},enumerable:!1,configurable:!0}),Object.defineProperty(X.prototype,"surroundingMeshes",{get:function(){return this._meshCollisionData._surroundingMeshes},set:function(j){this._meshCollisionData._surroundingMeshes=j},enumerable:!1,configurable:!0}),Object.defineProperty(X.prototype,"lightSources",{get:function(){return this._lightSources},enumerable:!1,configurable:!0}),Object.defineProperty(X.prototype,"_positions",{get:function(){return null},enumerable:!1,configurable:!0}),Object.defineProperty(X.prototype,"skeleton",{get:function(){return this._internalAbstractMeshDataInfo._skeleton},set:function(j){var ne=this._internalAbstractMeshDataInfo._skeleton;ne&&ne.needInitialSkinMatrix&&ne._unregisterMeshWithPoseMatrix(this),j&&j.needInitialSkinMatrix&&j._registerMeshWithPoseMatrix(this),this._internalAbstractMeshDataInfo._skeleton=j,this._internalAbstractMeshDataInfo._skeleton||(this._bonesTransformMatrices=null),this._markSubMeshesAsAttributesDirty()},enumerable:!1,configurable:!0}),X.prototype.getClassName=function(){return"AbstractMesh"},X.prototype.toString=function(j){var ne="Name: "+this.name+", isInstance: "+(this.getClassName()!=="InstancedMesh"?"YES":"NO");ne+=", # of submeshes: "+(this.subMeshes?this.subMeshes.length:0);var te=this._internalAbstractMeshDataInfo._skeleton;return te&&(ne+=", skeleton: "+te.name),j&&(ne+=", billboard mode: "+["NONE","X","Y",null,"Z",null,null,"ALL"][this.billboardMode],ne+=", freeze wrld mat: "+(this._isWorldMatrixFrozen||this._waitingData.freezeWorldMatrix?"YES":"NO")),ne},X.prototype._getEffectiveParent=function(){return this._masterMesh&&this.billboardMode!==m.a.BILLBOARDMODE_NONE?this._masterMesh:V.prototype._getEffectiveParent.call(this)},X.prototype._getActionManagerForTrigger=function(j,ne){if(ne===void 0&&(ne=!0),this.actionManager&&(ne||this.actionManager.isRecursive)){if(!j)return this.actionManager;if(this.actionManager.hasSpecificTrigger(j))return this.actionManager}return this.parent?this.parent._getActionManagerForTrigger(j,!1):null},X.prototype._rebuild=function(){if(this.onRebuildObservable.notifyObservers(this),this._occlusionQuery&&(this._occlusionQuery=null),this.subMeshes)for(var j=0,ne=this.subMeshes;j4,ae=pe?this.getVerticesData(C.b.MatricesIndicesExtraKind):null,ee=pe?this.getVerticesData(C.b.MatricesWeightsExtraKind):null;this.skeleton.prepare();for(var K=this.skeleton.getTransformMatrices(this),$=u.c.Vector3[0],L=u.c.Matrix[0],G=u.c.Matrix[1],Q=0,oe=0;oe0&&(u.a.FromFloat32ArrayToRefScaled(K,Math.floor(16*te[Q+re]),Y,G),L.addToSelf(G));if(pe)for(re=0;re<4;re++)(Y=ee[Q+re])>0&&(u.a.FromFloat32ArrayToRefScaled(K,Math.floor(16*ae[Q+re]),Y,G),L.addToSelf(G));u.e.TransformCoordinatesFromFloatsToRef(ne[oe],ne[oe+1],ne[oe+2],L,$),$.toArray(ne,oe),this._positions&&this._positions[oe/3].copyFrom($)}}}return ne},X.prototype._updateBoundingInfo=function(){var j=this._effectiveMesh;return this._boundingInfo?this._boundingInfo.update(j.worldMatrixFromCache):this._boundingInfo=new T.a(this.absolutePosition,this.absolutePosition,j.worldMatrixFromCache),this._updateSubMeshesBoundingInfo(j.worldMatrixFromCache),this},X.prototype._updateSubMeshesBoundingInfo=function(j){if(!this.subMeshes)return this;for(var ne=this.subMeshes.length,te=0;te1||!de.IsGlobal)&&de.updateBoundingInfo(j)}return this},X.prototype._afterComputeWorldMatrix=function(){this.doNotSyncBoundingInfo||this._updateBoundingInfo()},Object.defineProperty(X.prototype,"_effectiveMesh",{get:function(){return this.skeleton&&this.skeleton.overrideMesh||this},enumerable:!1,configurable:!0}),X.prototype.isInFrustum=function(j){return this._boundingInfo!==null&&this._boundingInfo.isInFrustum(j,this.cullingStrategy)},X.prototype.isCompletelyInFrustum=function(j){return this._boundingInfo!==null&&this._boundingInfo.isCompletelyInFrustum(j)},X.prototype.intersectsMesh=function(j,ne,te){if(ne===void 0&&(ne=!1),!this._boundingInfo||!j._boundingInfo)return!1;if(this._boundingInfo.intersects(j._boundingInfo,ne))return!0;if(te){for(var de=0,pe=this.getChildMeshes();de1&&!ae._checkCollision(j)||this._collideForSubMesh(ae,ne,j)}return this},X.prototype._checkCollision=function(j){if(!this._boundingInfo||!this._boundingInfo._checkCollision(j))return this;var ne=u.c.Matrix[0],te=u.c.Matrix[1];return u.a.ScalingToRef(1/j._radius.x,1/j._radius.y,1/j._radius.z,ne),this.worldMatrixFromCache.multiplyToRef(ne,te),this._processCollisionsForSubMeshes(j,te),this},X.prototype._generatePointsArray=function(){return!1},X.prototype.intersects=function(j,ne,te,de,pe,ae){var ee;de===void 0&&(de=!1),ae===void 0&&(ae=!1);var K=new c.a,$=this.getClassName()==="InstancedLinesMesh"||this.getClassName()==="LinesMesh"?this.intersectionThreshold:0,L=this._boundingInfo;if(!this.subMeshes||!L||!(ae||j.intersectsSphere(L.boundingSphere,$)&&j.intersectsBox(L.boundingBox,$)))return K;if(de)return K.hit=!ae,K.pickedMesh=ae?null:this,K.distance=ae?0:u.e.Distance(j.origin,L.boundingSphere.center),K.subMeshId=0,K;if(!this._generatePointsArray())return K;for(var G=null,Q=this._scene.getIntersectingSubMeshCandidates(this,j),oe=Q.length,re=!1,Y=0;Y1)||H.canIntersects(j)){var Z=H.intersects(j,this._positions,this.getIndices(),ne,te);if(Z&&(ne||!G||Z.distance65535){ae=!0;break}j.depthSortedIndices=ae?new Uint32Array(te):new Uint16Array(te)}if(j.facetDepthSortFunction=function(re,Y){return Y.sqDistance-re.sqDistance},!j.facetDepthSortFrom){var K=this.getScene().activeCamera;j.facetDepthSortFrom=K?K.position:u.e.Zero()}j.depthSortedFacets=[];for(var $=0;$v.a?pe.maximum.x-pe.minimum.x:v.a,j.bbSize.y=pe.maximum.y-pe.minimum.y>v.a?pe.maximum.y-pe.minimum.y:v.a,j.bbSize.z=pe.maximum.z-pe.minimum.z>v.a?pe.maximum.z-pe.minimum.z:v.a;var G=j.bbSize.x>j.bbSize.y?j.bbSize.x:j.bbSize.y;if(G=G>j.bbSize.z?G:j.bbSize.z,j.subDiv.max=j.partitioningSubdivisions,j.subDiv.X=Math.floor(j.subDiv.max*j.bbSize.x/G),j.subDiv.Y=Math.floor(j.subDiv.max*j.bbSize.y/G),j.subDiv.Z=Math.floor(j.subDiv.max*j.bbSize.z/G),j.subDiv.X=j.subDiv.X<1?1:j.subDiv.X,j.subDiv.Y=j.subDiv.Y<1?1:j.subDiv.Y,j.subDiv.Z=j.subDiv.Z<1?1:j.subDiv.Z,j.facetParameters.facetNormals=this.getFacetLocalNormals(),j.facetParameters.facetPositions=this.getFacetLocalPositions(),j.facetParameters.facetPartitioning=this.getFacetLocalPartitioning(),j.facetParameters.bInfo=pe,j.facetParameters.bbSize=j.bbSize,j.facetParameters.subDiv=j.subDiv,j.facetParameters.ratio=this.partitioningBBoxRatio,j.facetParameters.depthSort=j.facetDepthSort,j.facetDepthSort&&j.facetDepthSortEnabled&&(this.computeWorldMatrix(!0),this._worldMatrix.invertToRef(j.invertedMatrix),u.e.TransformCoordinatesToRef(j.facetDepthSortFrom,j.invertedMatrix,j.facetDepthSortOrigin),j.facetParameters.distanceTo=j.facetDepthSortOrigin),j.facetParameters.depthSortedFacets=j.depthSortedFacets,P.a.ComputeNormals(ne,te,de,j.facetParameters),j.facetDepthSort&&j.facetDepthSortEnabled){j.depthSortedFacets.sort(j.facetDepthSortFunction);var Q=j.depthSortedIndices.length/3|0;for($=0;$pe.subDiv.max||ee<0||ee>pe.subDiv.max||K<0||K>pe.subDiv.max?null:pe.facetPartitioning[ae+pe.subDiv.max*ee+pe.subDiv.max*pe.subDiv.max*K]},X.prototype.getClosestFacetAtCoordinates=function(j,ne,te,de,pe,ae){pe===void 0&&(pe=!1),ae===void 0&&(ae=!0);var ee=this.getWorldMatrix(),K=u.c.Matrix[5];ee.invertToRef(K);var $=u.c.Vector3[8];u.e.TransformCoordinatesFromFloatsToRef(j,ne,te,K,$);var L=this.getClosestFacetAtLocalCoordinates($.x,$.y,$.z,de,pe,ae);return de&&u.e.TransformCoordinatesFromFloatsToRef(de.x,de.y,de.z,ee,de),L},X.prototype.getClosestFacetAtLocalCoordinates=function(j,ne,te,de,pe,ae){pe===void 0&&(pe=!1),ae===void 0&&(ae=!0);var ee=null,K=0,$=0,L=0,G=0,Q=0,oe=0,re=0,Y=0,k=this.getFacetLocalPositions(),H=this.getFacetLocalNormals(),Z=this.getFacetsAtLocalCoordinates(j,ne,te);if(!Z)return null;for(var W,q,he,ge=Number.MAX_VALUE,me=ge,_e=0;_e=0||pe&&!ae&&G<=0)&&(G=q.x*he.x+q.y*he.y+q.z*he.z,Q=-(q.x*j+q.y*ne+q.z*te-G)/(q.x*q.x+q.y*q.y+q.z*q.z),(me=(K=(oe=j+q.x*Q)-j)*K+($=(re=ne+q.y*Q)-ne)*$+(L=(Y=te+q.z*Q)-te)*L)100&&(this.soft=!0),this._physicsEngine=this._scene.getPhysicsEngine(),this._physicsEngine?(this.object.rotationQuaternion||(this.object.rotation?this.object.rotationQuaternion=R.b.RotationYawPitchRoll(this.object.rotation.y,this.object.rotation.x,this.object.rotation.z):this.object.rotationQuaternion=new R.b),this._options.mass=S.mass===void 0?0:S.mass,this._options.friction=S.friction===void 0?.2:S.friction,this._options.restitution=S.restitution===void 0?.2:S.restitution,this.soft&&(this._options.mass=this._options.mass>0?this._options.mass:1,this._options.pressure=S.pressure===void 0?200:S.pressure,this._options.stiffness=S.stiffness===void 0?1:S.stiffness,this._options.velocityIterations=S.velocityIterations===void 0?20:S.velocityIterations,this._options.positionIterations=S.positionIterations===void 0?20:S.positionIterations,this._options.fixedPoints=S.fixedPoints===void 0?0:S.fixedPoints,this._options.margin=S.margin===void 0?0:S.margin,this._options.damping=S.damping===void 0?0:S.damping,this._options.path=S.path===void 0?null:S.path,this._options.shape=S.shape===void 0?null:S.shape),this._joints=[],!this.object.parent||this._options.ignoreParent?this._init():this.object.parent.physicsImpostor&&U.a.Warn("You must affect impostors to children before affecting impostor to parent.")):U.a.Error("Physics not enabled. Please use scene.enablePhysics(...) before creating impostors."))):U.a.Error("No object was provided. A physics object is obligatory")}return Object.defineProperty(c.prototype,"isDisposed",{get:function(){return this._isDisposed},enumerable:!1,configurable:!0}),Object.defineProperty(c.prototype,"mass",{get:function(){return this._physicsEngine?this._physicsEngine.getPhysicsPlugin().getBodyMass(this):0},set:function(T){this.setMass(T)},enumerable:!1,configurable:!0}),Object.defineProperty(c.prototype,"friction",{get:function(){return this._physicsEngine?this._physicsEngine.getPhysicsPlugin().getBodyFriction(this):0},set:function(T){this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().setBodyFriction(this,T)},enumerable:!1,configurable:!0}),Object.defineProperty(c.prototype,"restitution",{get:function(){return this._physicsEngine?this._physicsEngine.getPhysicsPlugin().getBodyRestitution(this):0},set:function(T){this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().setBodyRestitution(this,T)},enumerable:!1,configurable:!0}),Object.defineProperty(c.prototype,"pressure",{get:function(){if(!this._physicsEngine)return 0;var T=this._physicsEngine.getPhysicsPlugin();return T.setBodyPressure?T.getBodyPressure(this):0},set:function(T){if(this._physicsEngine){var A=this._physicsEngine.getPhysicsPlugin();A.setBodyPressure&&A.setBodyPressure(this,T)}},enumerable:!1,configurable:!0}),Object.defineProperty(c.prototype,"stiffness",{get:function(){if(!this._physicsEngine)return 0;var T=this._physicsEngine.getPhysicsPlugin();return T.getBodyStiffness?T.getBodyStiffness(this):0},set:function(T){if(this._physicsEngine){var A=this._physicsEngine.getPhysicsPlugin();A.setBodyStiffness&&A.setBodyStiffness(this,T)}},enumerable:!1,configurable:!0}),Object.defineProperty(c.prototype,"velocityIterations",{get:function(){if(!this._physicsEngine)return 0;var T=this._physicsEngine.getPhysicsPlugin();return T.getBodyVelocityIterations?T.getBodyVelocityIterations(this):0},set:function(T){if(this._physicsEngine){var A=this._physicsEngine.getPhysicsPlugin();A.setBodyVelocityIterations&&A.setBodyVelocityIterations(this,T)}},enumerable:!1,configurable:!0}),Object.defineProperty(c.prototype,"positionIterations",{get:function(){if(!this._physicsEngine)return 0;var T=this._physicsEngine.getPhysicsPlugin();return T.getBodyPositionIterations?T.getBodyPositionIterations(this):0},set:function(T){if(this._physicsEngine){var A=this._physicsEngine.getPhysicsPlugin();A.setBodyPositionIterations&&A.setBodyPositionIterations(this,T)}},enumerable:!1,configurable:!0}),c.prototype._init=function(){this._physicsEngine&&(this._physicsEngine.removeImpostor(this),this.physicsBody=null,this._parent=this._parent||this._getPhysicsParent(),this._isDisposed||this.parent&&!this._options.ignoreParent||this._physicsEngine.addImpostor(this))},c.prototype._getPhysicsParent=function(){return this.object.parent instanceof u.a?this.object.parent.physicsImpostor:null},c.prototype.isBodyInitRequired=function(){return this._bodyUpdateRequired||!this._physicsBody&&!this._parent},c.prototype.setScalingUpdated=function(){this.forceUpdate()},c.prototype.forceUpdate=function(){this._init(),this.parent&&!this._options.ignoreParent&&this.parent.forceUpdate()},Object.defineProperty(c.prototype,"physicsBody",{get:function(){return this._parent&&!this._options.ignoreParent?this._parent.physicsBody:this._physicsBody},set:function(T){this._physicsBody&&this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().removePhysicsBody(this),this._physicsBody=T,this.resetUpdateFlags()},enumerable:!1,configurable:!0}),Object.defineProperty(c.prototype,"parent",{get:function(){return!this._options.ignoreParent&&this._parent?this._parent:null},set:function(T){this._parent=T},enumerable:!1,configurable:!0}),c.prototype.resetUpdateFlags=function(){this._bodyUpdateRequired=!1},c.prototype.getObjectExtendSize=function(){if(this.object.getBoundingInfo){var T=this.object.rotationQuaternion,A=this.object.scaling.clone();this.object.rotationQuaternion=c.IDENTITY_QUATERNION;var S=this.object.computeWorldMatrix&&this.object.computeWorldMatrix(!0);S&&S.decompose(A,void 0,void 0);var g=this.object.getBoundingInfo().boundingBox.extendSize.scale(2).multiplyInPlace(A);return this.object.rotationQuaternion=T,this.object.computeWorldMatrix&&this.object.computeWorldMatrix(!0),g}return c.DEFAULT_OBJECT_SIZE},c.prototype.getObjectCenter=function(){return this.object.getBoundingInfo?this.object.getBoundingInfo().boundingBox.centerWorld:this.object.position},c.prototype.getParam=function(T){return this._options[T]},c.prototype.setParam=function(T,A){this._options[T]=A,this._bodyUpdateRequired=!0},c.prototype.setMass=function(T){this.getParam("mass")!==T&&this.setParam("mass",T),this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().setBodyMass(this,T)},c.prototype.getLinearVelocity=function(){return this._physicsEngine?this._physicsEngine.getPhysicsPlugin().getLinearVelocity(this):R.e.Zero()},c.prototype.setLinearVelocity=function(T){this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().setLinearVelocity(this,T)},c.prototype.getAngularVelocity=function(){return this._physicsEngine?this._physicsEngine.getPhysicsPlugin().getAngularVelocity(this):R.e.Zero()},c.prototype.setAngularVelocity=function(T){this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().setAngularVelocity(this,T)},c.prototype.executeNativeFunction=function(T){this._physicsEngine&&T(this._physicsEngine.getPhysicsPlugin().world,this.physicsBody)},c.prototype.registerBeforePhysicsStep=function(T){this._onBeforePhysicsStepCallbacks.push(T)},c.prototype.unregisterBeforePhysicsStep=function(T){var A=this._onBeforePhysicsStepCallbacks.indexOf(T);A>-1?this._onBeforePhysicsStepCallbacks.splice(A,1):U.a.Warn("Function to remove was not found")},c.prototype.registerAfterPhysicsStep=function(T){this._onAfterPhysicsStepCallbacks.push(T)},c.prototype.unregisterAfterPhysicsStep=function(T){var A=this._onAfterPhysicsStepCallbacks.indexOf(T);A>-1?this._onAfterPhysicsStepCallbacks.splice(A,1):U.a.Warn("Function to remove was not found")},c.prototype.registerOnPhysicsCollide=function(T,A){var S=T instanceof Array?T:[T];this._onPhysicsCollideCallbacks.push({callback:A,otherImpostors:S})},c.prototype.unregisterOnPhysicsCollide=function(T,A){var S=T instanceof Array?T:[T],g=-1;this._onPhysicsCollideCallbacks.some(function(l,h){if(l.callback===A&&l.otherImpostors.length===S.length){var v=l.otherImpostors.every(function(E){return S.indexOf(E)>-1});return v&&(g=h),v}return!1})?this._onPhysicsCollideCallbacks.splice(g,1):U.a.Warn("Function to remove was not found")},c.prototype.getParentsRotation=function(){var T=this.object.parent;for(this._tmpQuat.copyFromFloats(0,0,0,1);T;)T.rotationQuaternion?this._tmpQuat2.copyFrom(T.rotationQuaternion):R.b.RotationYawPitchRollToRef(T.rotation.y,T.rotation.x,T.rotation.z,this._tmpQuat2),this._tmpQuat.multiplyToRef(this._tmpQuat2,this._tmpQuat),T=T.parent;return this._tmpQuat},c.prototype.applyForce=function(T,A){return this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().applyForce(this,T,A),this},c.prototype.applyImpulse=function(T,A){return this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().applyImpulse(this,T,A),this},c.prototype.createJoint=function(T,A,S){var g=new C.e(A,S);return this.addJoint(T,g),this},c.prototype.addJoint=function(T,A){return this._joints.push({otherImpostor:T,joint:A}),this._physicsEngine&&this._physicsEngine.addJoint(this,T,A),this},c.prototype.addAnchor=function(T,A,S,g,l){if(!this._physicsEngine)return this;var h=this._physicsEngine.getPhysicsPlugin();return h.appendAnchor?(this._physicsEngine&&h.appendAnchor(this,T,A,S,g,l),this):this},c.prototype.addHook=function(T,A,S,g){if(!this._physicsEngine)return this;var l=this._physicsEngine.getPhysicsPlugin();return l.appendAnchor?(this._physicsEngine&&l.appendHook(this,T,A,S,g),this):this},c.prototype.sleep=function(){return this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().sleepBody(this),this},c.prototype.wakeUp=function(){return this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().wakeUpBody(this),this},c.prototype.clone=function(T){return T?new c(T,this.type,this._options,this._scene):null},c.prototype.dispose=function(){var T=this;this._physicsEngine&&(this._joints.forEach(function(A){T._physicsEngine&&T._physicsEngine.removeJoint(T,A.otherImpostor,A.joint)}),this._physicsEngine.removeImpostor(this),this.parent&&this.parent.forceUpdate(),this._isDisposed=!0)},c.prototype.setDeltaPosition=function(T){this._deltaPosition.copyFrom(T)},c.prototype.setDeltaRotation=function(T){this._deltaRotation||(this._deltaRotation=new R.b),this._deltaRotation.copyFrom(T),this._deltaRotationConjugated=this._deltaRotation.conjugate()},c.prototype.getBoxSizeToRef=function(T){return this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().getBoxSizeToRef(this,T),this},c.prototype.getRadius=function(){return this._physicsEngine?this._physicsEngine.getPhysicsPlugin().getRadius(this):0},c.prototype.syncBoneWithImpostor=function(T,A,S,g,l){var h=c._tmpVecs[0],v=this.object;if(v.rotationQuaternion)if(l){var E=c._tmpQuat;v.rotationQuaternion.multiplyToRef(l,E),T.setRotationQuaternion(E,P.c.WORLD,A)}else T.setRotationQuaternion(v.rotationQuaternion,P.c.WORLD,A);h.x=0,h.y=0,h.z=0,S&&(h.x=S.x,h.y=S.y,h.z=S.z,T.getDirectionToRef(h,A,h),g==null&&(g=S.length()),h.x*=g,h.y*=g,h.z*=g),T.getParent()?(h.addInPlace(v.getAbsolutePosition()),T.setAbsolutePosition(h,A)):(A.setAbsolutePosition(v.getAbsolutePosition()),A.position.x-=h.x,A.position.y-=h.y,A.position.z-=h.z)},c.prototype.syncImpostorWithBone=function(T,A,S,g,l,h){var v=this.object;if(v.rotationQuaternion)if(l){var E=c._tmpQuat;T.getRotationQuaternionToRef(P.c.WORLD,A,E),E.multiplyToRef(l,v.rotationQuaternion)}else T.getRotationQuaternionToRef(P.c.WORLD,A,v.rotationQuaternion);var D=c._tmpVecs[0],w=c._tmpVecs[1];h||((h=c._tmpVecs[2]).x=0,h.y=1,h.z=0),T.getDirectionToRef(h,A,w),T.getAbsolutePositionToRef(A,D),g==null&&S&&(g=S.length()),g!=null&&(D.x+=w.x*g,D.y+=w.y*g,D.z+=w.z*g),v.setAbsolutePosition(D)},c.DEFAULT_OBJECT_SIZE=new R.e(1,1,1),c.IDENTITY_QUATERNION=R.b.Identity(),c._tmpVecs=_.a.BuildArray(3,R.e.Zero),c._tmpQuat=R.b.Identity(),c.NoImpostor=0,c.SphereImpostor=1,c.BoxImpostor=2,c.PlaneImpostor=3,c.MeshImpostor=4,c.CapsuleImpostor=6,c.CylinderImpostor=7,c.ParticleImpostor=8,c.HeightmapImpostor=9,c.ConvexHullImpostor=10,c.CustomImpostor=100,c.RopeImpostor=101,c.ClothImpostor=102,c.SoftbodyImpostor=103,c}()},function(Ie,y,f){f.d(y,"a",function(){return _}),f.d(y,"b",function(){return R});var U=f(1),_=function(){function u(M){this.length=0,this.data=new Array(M),this._id=u._GlobalId++}return u.prototype.push=function(M){this.data[this.length++]=M,this.length>this.data.length&&(this.data.length*=2)},u.prototype.forEach=function(M){for(var C=0;Cthis.data.length&&(this.data.length=2*(this.length+M.length));for(var C=0;C=this.length?-1:C},u.prototype.contains=function(M){return this.indexOf(M)!==-1},u._GlobalId=0,u}(),R=function(u){function M(){var C=u!==null&&u.apply(this,arguments)||this;return C._duplicateId=0,C}return Object(U.d)(M,u),M.prototype.push=function(C){u.prototype.push.call(this,C),C.__smartArrayFlags||(C.__smartArrayFlags={}),C.__smartArrayFlags[this._id]=this._duplicateId},M.prototype.pushNoDuplicate=function(C){return(!C.__smartArrayFlags||C.__smartArrayFlags[this._id]!==this._duplicateId)&&(this.push(C),!0)},M.prototype.reset=function(){u.prototype.reset.call(this),this._duplicateId++},M.prototype.concatWithNoDuplicate=function(C){if(C.length!==0){this.length+C.length>this.data.length&&(this.data.length=2*(this.length+C.length));for(var P=0;P>2,m=(3&u)<<4|(M=g>4,c=(15&M)<<2|(C=g>6,T=63&C,isNaN(M)?c=T=64:isNaN(C)&&(T=64),S+=A.charAt(P)+A.charAt(m)+A.charAt(c)+A.charAt(T);return S},_.PadNumber=function(R,u){for(var M=String(R);M.length0)):!S._pointerCaptures[D.pointerId]&&v.distance>E.distance&&(S.mainSceneTrackerPredicate&&S.mainSceneTrackerPredicate(E.pickedMesh)?(S._notifyObservers(g,E,D),g.skipOnPointerObservable=!0):S._lastPointerEvents[D.pointerId]&&(S.onPointerOutObservable.notifyObservers(D.pointerId),delete S._lastPointerEvents[D.pointerId])),g.type===R.a.POINTERUP&&S._pointerCaptures[D.pointerId]&&(S._pointerCaptures[D.pointerId]=!1))}}}}),this._originalPointerObserver&&T.onPrePointerObservable.makeObserverTopPriority(this._originalPointerObserver)),this.utilityLayerScene.autoClear=!1,this._afterRenderObserver=this.originalScene.onAfterCameraRenderObservable.add(function(g){S.shouldRender&&g==S.getRenderCamera()&&S.render()}),this._sceneDisposeObserver=this.originalScene.onDisposeObservable.add(function(){S.dispose()}),this._updateCamera()}return c.prototype.getRenderCamera=function(T){if(this._renderCamera)return this._renderCamera;var A=void 0;return A=this.originalScene.activeCameras&&this.originalScene.activeCameras.length>1?this.originalScene.activeCameras[this.originalScene.activeCameras.length-1]:this.originalScene.activeCamera,T&&A&&A.isRigCamera?A.rigParent:A},c.prototype.setRenderCamera=function(T){this._renderCamera=T},c.prototype._getSharedGizmoLight=function(){return this._sharedGizmoLight||(this._sharedGizmoLight=new M.a("shared gizmo light",new C.e(0,1,0),this.utilityLayerScene),this._sharedGizmoLight.intensity=2,this._sharedGizmoLight.groundColor=P.a.Gray()),this._sharedGizmoLight},Object.defineProperty(c,"DefaultUtilityLayer",{get:function(){return c._DefaultUtilityLayer==null&&(c._DefaultUtilityLayer=new c(u.a.LastCreatedScene),c._DefaultUtilityLayer.originalScene.onDisposeObservable.addOnce(function(){c._DefaultUtilityLayer=null})),c._DefaultUtilityLayer},enumerable:!1,configurable:!0}),Object.defineProperty(c,"DefaultKeepDepthUtilityLayer",{get:function(){return c._DefaultKeepDepthUtilityLayer==null&&(c._DefaultKeepDepthUtilityLayer=new c(u.a.LastCreatedScene),c._DefaultKeepDepthUtilityLayer.utilityLayerScene.autoClearDepthAndStencil=!1,c._DefaultKeepDepthUtilityLayer.originalScene.onDisposeObservable.addOnce(function(){c._DefaultKeepDepthUtilityLayer=null})),c._DefaultKeepDepthUtilityLayer},enumerable:!1,configurable:!0}),c.prototype._notifyObservers=function(T,A,S){T.skipOnPointerObservable||(this.utilityLayerScene.onPointerObservable.notifyObservers(new R.b(T.type,T.event,A),T.type),this._lastPointerEvents[S.pointerId]=!0)},c.prototype.render=function(){if(this._updateCamera(),this.utilityLayerScene.activeCamera){var T=this.utilityLayerScene.activeCamera.getScene(),A=this.utilityLayerScene.activeCamera;A._scene=this.utilityLayerScene,A.leftCamera&&(A.leftCamera._scene=this.utilityLayerScene),A.rightCamera&&(A.rightCamera._scene=this.utilityLayerScene),this.utilityLayerScene.render(!1),A._scene=T,A.leftCamera&&(A.leftCamera._scene=T),A.rightCamera&&(A.rightCamera._scene=T)}},c.prototype.dispose=function(){this.onPointerOutObservable.clear(),this._afterRenderObserver&&this.originalScene.onAfterCameraRenderObservable.remove(this._afterRenderObserver),this._sceneDisposeObserver&&this.originalScene.onDisposeObservable.remove(this._sceneDisposeObserver),this._originalPointerObserver&&this.originalScene.onPrePointerObservable.remove(this._originalPointerObserver),this.utilityLayerScene.dispose()},c.prototype._updateCamera=function(){this.utilityLayerScene.cameraToUseForPointers=this.getRenderCamera(),this.utilityLayerScene.activeCamera=this.getRenderCamera()},c._DefaultUtilityLayer=null,c._DefaultKeepDepthUtilityLayer=null,c}()},function(Ie,y,f){f.d(y,"a",function(){return _});var U=f(139),_=function(){function R(){}return R.EnableFor=function(u){u._tags=u._tags||{},u.hasTags=function(){return R.HasTags(u)},u.addTags=function(M){return R.AddTagsTo(u,M)},u.removeTags=function(M){return R.RemoveTagsFrom(u,M)},u.matchesTagsQuery=function(M){return R.MatchesQuery(u,M)}},R.DisableFor=function(u){delete u._tags,delete u.hasTags,delete u.addTags,delete u.removeTags,delete u.matchesTagsQuery},R.HasTags=function(u){if(!u._tags)return!1;var M=u._tags;for(var C in M)if(M.hasOwnProperty(C))return!0;return!1},R.GetTags=function(u,M){if(M===void 0&&(M=!0),!u._tags)return null;if(M){var C=[];for(var P in u._tags)u._tags.hasOwnProperty(P)&&u._tags[P]===!0&&C.push(P);return C.join(" ")}return u._tags},R.AddTagsTo=function(u,M){M&&typeof M=="string"&&M.split(" ").forEach(function(C,P,m){R._AddTagTo(u,C)})},R._AddTagTo=function(u,M){(M=M.trim())!==""&&M!=="true"&&M!=="false"&&(M.match(/[\s]/)||M.match(/^([!]|([|]|[&]){2})/)||(R.EnableFor(u),u._tags[M]=!0))},R.RemoveTagsFrom=function(u,M){if(R.HasTags(u)){var C=M.split(" ");for(var P in C)R._RemoveTagFrom(u,C[P])}},R._RemoveTagFrom=function(u,M){delete u._tags[M]},R.MatchesQuery=function(u,M){return M===void 0||(M===""?R.HasTags(u):U.a.Eval(M,function(C){return R.HasTags(u)&&u._tags[C]}))},R}()},function(Ie,y,f){f.d(y,"a",function(){return U});var U=function(){function _(){}return _.IsWindowObjectExist=function(){return typeof window<"u"},_.IsNavigatorAvailable=function(){return typeof navigator<"u"},_.IsDocumentAvailable=function(){return typeof document<"u"},_.GetDOMTextContent=function(R){for(var u="",M=R.firstChild;M;)M.nodeType===3&&(u+=M.textContent),M=M.nextSibling;return u},_}()},function(Ie,y,f){f.d(y,"a",function(){return P});var U=f(44),_=f(0),R=f(54),u=f(114),M=f(20),C=f(24),P=function(){function m(c,T,A){A===void 0&&(A=Number.MAX_VALUE),this.origin=c,this.direction=T,this.length=A}return m.prototype.intersectsBoxMinMax=function(c,T,A){A===void 0&&(A=0);var S,g,l,h,v=m._TmpVector3[0].copyFromFloats(c.x-A,c.y-A,c.z-A),E=m._TmpVector3[1].copyFromFloats(T.x+A,T.y+A,T.z+A),D=0,w=Number.MAX_VALUE;if(Math.abs(this.direction.x)<1e-7){if(this.origin.xE.x)return!1}else if(S=1/this.direction.x,g=(v.x-this.origin.x)*S,(l=(E.x-this.origin.x)*S)===-1/0&&(l=1/0),g>l&&(h=g,g=l,l=h),(D=Math.max(g,D))>(w=Math.min(l,w)))return!1;if(Math.abs(this.direction.y)<1e-7){if(this.origin.yE.y)return!1}else if(S=1/this.direction.y,g=(v.y-this.origin.y)*S,(l=(E.y-this.origin.y)*S)===-1/0&&(l=1/0),g>l&&(h=g,g=l,l=h),(D=Math.max(g,D))>(w=Math.min(l,w)))return!1;if(Math.abs(this.direction.z)<1e-7){if(this.origin.zE.z)return!1}else if(S=1/this.direction.z,g=(v.z-this.origin.z)*S,(l=(E.z-this.origin.z)*S)===-1/0&&(l=1/0),g>l&&(h=g,g=l,l=h),(D=Math.max(g,D))>(w=Math.min(l,w)))return!1;return!0},m.prototype.intersectsBox=function(c,T){return T===void 0&&(T=0),this.intersectsBoxMinMax(c.minimum,c.maximum,T)},m.prototype.intersectsSphere=function(c,T){T===void 0&&(T=0);var A=c.center.x-this.origin.x,S=c.center.y-this.origin.y,g=c.center.z-this.origin.z,l=A*A+S*S+g*g,h=c.radius+T,v=h*h;if(l<=v)return!0;var E=A*this.direction.x+S*this.direction.y+g*this.direction.z;return!(E<0)&&l-E*E<=v},m.prototype.intersectsTriangle=function(c,T,A){var S=m._TmpVector3[0],g=m._TmpVector3[1],l=m._TmpVector3[2],h=m._TmpVector3[3],v=m._TmpVector3[4];T.subtractToRef(c,S),A.subtractToRef(c,g),_.e.CrossToRef(this.direction,g,l);var E=_.e.Dot(S,l);if(E===0)return null;var D=1/E;this.origin.subtractToRef(c,h);var w=_.e.Dot(h,l)*D;if(w<0||w>1)return null;_.e.CrossToRef(h,S,v);var N=_.e.Dot(this.direction,v)*D;if(N<0||w+N>1)return null;var I=_.e.Dot(g,v)*D;return I>this.length?null:new u.a(1-w-N,w,I)},m.prototype.intersectsPlane=function(c){var T,A=_.e.Dot(c.normal,this.direction);if(Math.abs(A)<999999997475243e-21)return null;var S=_.e.Dot(c.normal,this.origin);return(T=(-c.d-S)/A)<0?T<-999999997475243e-21?null:0:T},m.prototype.intersectsAxis=function(c,T){switch(T===void 0&&(T=0),c){case"y":return(A=(this.origin.y-T)/this.direction.y)>0?null:new _.e(this.origin.x+this.direction.x*-A,T,this.origin.z+this.direction.z*-A);case"x":return(A=(this.origin.x-T)/this.direction.x)>0?null:new _.e(T,this.origin.y+this.direction.y*-A,this.origin.z+this.direction.z*-A);case"z":var A;return(A=(this.origin.z-T)/this.direction.z)>0?null:new _.e(this.origin.x+this.direction.x*-A,this.origin.y+this.direction.y*-A,T);default:return null}},m.prototype.intersectsMesh=function(c,T){var A=_.c.Matrix[0];return c.getWorldMatrix().invertToRef(A),this._tmpRay?m.TransformToRef(this,A,this._tmpRay):this._tmpRay=m.Transform(this,A),c.intersects(this._tmpRay,T)},m.prototype.intersectsMeshes=function(c,T,A){A?A.length=0:A=[];for(var S=0;ST.distance?1:0},m.prototype.intersectionSegment=function(c,T,A){var S=this.origin,g=_.c.Vector3[0],l=_.c.Vector3[1],h=_.c.Vector3[2],v=_.c.Vector3[3];T.subtractToRef(c,g),this.direction.scaleToRef(m.rayl,h),S.addToRef(h,l),c.subtractToRef(S,v);var E,D,w,N,I=_.e.Dot(g,g),V=_.e.Dot(g,h),X=_.e.Dot(h,h),j=_.e.Dot(g,v),ne=_.e.Dot(h,v),te=I*X-V*V,de=te,pe=te;tede&&(D=de,N=ne+V,pe=X)),N<0?(N=0,-j<0?D=0:-j>I?D=de:(D=-j,de=I)):N>pe&&(N=pe,-j+V<0?D=0:-j+V>I?D=de:(D=-j+V,de=I)),E=Math.abs(D)0&&w<=this.length&&K.lengthSquared()=m.distance?null:E:null},M.a.prototype._internalPick=function(m,c,T,A,S){if(!R.a)return null;for(var g=null,l=0;l0&&(m.push(g-1),m.push(g)),g++}var D=new R.a;return D.indices=m,D.positions=c,A&&(D.colors=S),D},R.a.CreateDashedLines=function(P){var m,c,T=P.dashSize||3,A=P.gapSize||1,S=P.dashNb||200,g=P.points,l=new Array,h=new Array,v=U.e.Zero(),E=0,D=0,w=0,N=0,I=0;for(I=0;I0)if(typeof g[0]=="object")for(var h=0;hP.max||P.min>C.max)},T=function(){function A(S,g,l){this._isLocked=!1,this.boundingBox=new u.a(S,g,l),this.boundingSphere=new M.a(S,g,l)}return A.prototype.reConstruct=function(S,g,l){this.boundingBox.reConstruct(S,g,l),this.boundingSphere.reConstruct(S,g,l)},Object.defineProperty(A.prototype,"minimum",{get:function(){return this.boundingBox.minimum},enumerable:!1,configurable:!0}),Object.defineProperty(A.prototype,"maximum",{get:function(){return this.boundingBox.maximum},enumerable:!1,configurable:!0}),Object.defineProperty(A.prototype,"isLocked",{get:function(){return this._isLocked},set:function(S){this._isLocked=S},enumerable:!1,configurable:!0}),A.prototype.update=function(S){this._isLocked||(this.boundingBox._update(S),this.boundingSphere._update(S))},A.prototype.centerOn=function(S,g){var l=A.TmpVector3[0].copyFrom(S).subtractInPlace(g),h=A.TmpVector3[1].copyFrom(S).addInPlace(g);return this.boundingBox.reConstruct(l,h,this.boundingBox.getWorldMatrix()),this.boundingSphere.reConstruct(l,h,this.boundingBox.getWorldMatrix()),this},A.prototype.scale=function(S){return this.boundingBox.scale(S),this.boundingSphere.scale(S),this},A.prototype.isInFrustum=function(S,g){return g===void 0&&(g=R.a.MESHES_CULLINGSTRATEGY_STANDARD),!(g!==R.a.MESHES_CULLINGSTRATEGY_OPTIMISTIC_INCLUSION&&g!==R.a.MESHES_CULLINGSTRATEGY_OPTIMISTIC_INCLUSION_THEN_BSPHERE_ONLY||!this.boundingSphere.isCenterInFrustum(S))||!!this.boundingSphere.isInFrustum(S)&&(!(g!==R.a.MESHES_CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY&&g!==R.a.MESHES_CULLINGSTRATEGY_OPTIMISTIC_INCLUSION_THEN_BSPHERE_ONLY)||this.boundingBox.isInFrustum(S))},Object.defineProperty(A.prototype,"diagonalLength",{get:function(){var S=this.boundingBox;return S.maximumWorld.subtractToRef(S.minimumWorld,A.TmpVector3[0]).length()},enumerable:!1,configurable:!0}),A.prototype.isCompletelyInFrustum=function(S){return this.boundingBox.isCompletelyInFrustum(S)},A.prototype._checkCollision=function(S){return S._canDoCollision(this.boundingSphere.centerWorld,this.boundingSphere.radiusWorld,this.boundingBox.minimumWorld,this.boundingBox.maximumWorld)},A.prototype.intersectsPoint=function(S){return!!this.boundingSphere.centerWorld&&!!this.boundingSphere.intersectsPoint(S)&&!!this.boundingBox.intersectsPoint(S)},A.prototype.intersects=function(S,g){if(!M.a.Intersects(this.boundingSphere,S.boundingSphere)||!u.a.Intersects(this.boundingBox,S.boundingBox))return!1;if(!g)return!0;var l=this.boundingBox,h=S.boundingBox;return!!c(l.directions[0],l,h)&&!!c(l.directions[1],l,h)&&!!c(l.directions[2],l,h)&&!!c(h.directions[0],l,h)&&!!c(h.directions[1],l,h)&&!!c(h.directions[2],l,h)&&!!c(_.e.Cross(l.directions[0],h.directions[0]),l,h)&&!!c(_.e.Cross(l.directions[0],h.directions[1]),l,h)&&!!c(_.e.Cross(l.directions[0],h.directions[2]),l,h)&&!!c(_.e.Cross(l.directions[1],h.directions[0]),l,h)&&!!c(_.e.Cross(l.directions[1],h.directions[1]),l,h)&&!!c(_.e.Cross(l.directions[1],h.directions[2]),l,h)&&!!c(_.e.Cross(l.directions[2],h.directions[0]),l,h)&&!!c(_.e.Cross(l.directions[2],h.directions[1]),l,h)&&!!c(_.e.Cross(l.directions[2],h.directions[2]),l,h)},A.TmpVector3=U.a.BuildArray(2,_.e.Zero),A}()},function(Ie,y,f){f.d(y,"a",function(){return U});var U=function(){function _(){}return _.BuildArray=function(R,u){for(var M=[],C=0;C1)?1:M.arc||1,A=M.slice&&M.slice<=0?1:M.slice||1,S=M.sideOrientation===0?0:M.sideOrientation||R.a.DEFAULTSIDE,g=!!M.dedupTopBottomIndices,l=new U.e(P/2,m/2,c/2),h=2+C,v=2*h,E=[],D=[],w=[],N=[],I=0;I<=h;I++){for(var V=I/h,X=V*Math.PI*A,j=0;j<=v;j++){var ne=j/v,te=ne*Math.PI*2*T,de=U.a.RotationZ(-X),pe=U.a.RotationY(te),ae=U.e.TransformCoordinates(U.e.Up(),de),ee=U.e.TransformCoordinates(ae,pe),K=ee.multiply(l),$=ee.divide(l).normalize();D.push(K.x,K.y,K.z),w.push($.x,$.y,$.z),N.push(ne,V)}if(I>0)for(var L=D.length/3,G=L-2*(v+1);G+v+21&&(E.push(G),E.push(G+1),E.push(G+v+1)),(I0&&this.includedOnlyMeshes.indexOf(A)===-1)&&!(this.excludedMeshes&&this.excludedMeshes.length>0&&this.excludedMeshes.indexOf(A)!==-1)&&(this.includeOnlyWithLayerMask===0||(this.includeOnlyWithLayerMask&A.layerMask)!=0)&&!(this.excludeWithLayerMask!==0&&this.excludeWithLayerMask&A.layerMask)},T.CompareLightsPriority=function(A,S){return A.shadowEnabled!==S.shadowEnabled?(S.shadowEnabled?1:0)-(A.shadowEnabled?1:0):S.renderPriority-A.renderPriority},T.prototype.dispose=function(A,S){S===void 0&&(S=!1),this._shadowGenerator&&(this._shadowGenerator.dispose(),this._shadowGenerator=null),this.getScene().stopAnimation(this);for(var g=0,l=this.getScene().meshes;g0&&(A.excludedMeshesIds=[],this.excludedMeshes.forEach(function(S){A.excludedMeshesIds.push(S.id)})),this.includedOnlyMeshes.length>0&&(A.includedOnlyMeshesIds=[],this.includedOnlyMeshes.forEach(function(S){A.includedOnlyMeshesIds.push(S.id)})),_.a.AppendSerializedAnimations(this,A),A.ranges=this.serializeAnimationRanges(),A},T.GetConstructorFromName=function(A,S,g){var l=M.a.Construct("Light_Type_"+A,S,g);return l||null},T.Parse=function(A,S){var g=T.GetConstructorFromName(A.type,A.name,S);if(!g)return null;var l=_.a.Parse(g,A,S);if(A.excludedMeshesIds&&(l._excludedMeshesIds=A.excludedMeshesIds),A.includedOnlyMeshesIds&&(l._includedOnlyMeshesIds=A.includedOnlyMeshesIds),A.parentId&&(l._waitingParentId=A.parentId),A.falloffType!==void 0&&(l.falloffType=A.falloffType),A.lightmapMode!==void 0&&(l.lightmapMode=A.lightmapMode),A.animations){for(var h=0;h=0&&this._scene.textures.splice(S,1),this._scene.onTextureRemovedObservable.notifyObservers(this),this._scene=null}this.onDisposeObservable.notifyObservers(this),this.onDisposeObservable.clear(),T.prototype.dispose.call(this)},A.prototype.serialize=function(){if(!this.name)return null;var S=_.a.Serialize(this);return _.a.AppendSerializedAnimations(this,S),S},A.WhenAllReady=function(S,g){var l=S.length;if(l!==0)for(var h=0;h1)?1:m.arc||1,w=m.sideOrientation===0?0:m.sideOrientation||u.a.DEFAULTSIDE,N=m.faceUV||new Array(3),I=m.faceColors,V=2+(1+(D!==1&&v?2:0))*(h?l:1);for(S=0;S1e3&&(this._lastSecAverage=this._lastSecAccumulated/this._lastSecValueCount,this._lastSecTime=u,this._lastSecAccumulated=0,this._lastSecValueCount=0)},R.Enabled=!0,R}()},function(Ie,y,f){f.d(y,"b",function(){return A}),f.d(y,"d",function(){return S}),f.d(y,"c",function(){return g}),f.d(y,"a",function(){return l});var U=f(1),_=f(49),R=f(38),u=f(6),M=f(83),C=f(140),P=function(h){function v(){return h!==null&&h.apply(this,arguments)||this}return Object(U.d)(v,h),v._setPrototypeOf=Object.setPrototypeOf||function(E,D){return E.__proto__=D,E},v}(Error),m=f(34),c=f(26),T=f(128),A=function(h){function v(E,D){var w=h.call(this,E)||this;return w.name="LoadFileError",P._setPrototypeOf(w,v.prototype),D instanceof _.a?w.request=D:w.file=D,w}return Object(U.d)(v,h),v}(P),S=function(h){function v(E,D){var w=h.call(this,E)||this;return w.request=D,w.name="RequestFileError",P._setPrototypeOf(w,v.prototype),w}return Object(U.d)(v,h),v}(P),g=function(h){function v(E,D){var w=h.call(this,E)||this;return w.file=D,w.name="ReadFileError",P._setPrototypeOf(w,v.prototype),w}return Object(U.d)(v,h),v}(P),l=function(){function h(){}return h._CleanUrl=function(v){return v=v.replace(/#/gm,"%23")},h.SetCorsBehavior=function(v,E){if((!v||v.indexOf("data:")!==0)&&h.CorsBehavior)if(typeof h.CorsBehavior=="string"||this.CorsBehavior instanceof String)E.crossOrigin=h.CorsBehavior;else{var D=h.CorsBehavior(v);D&&(E.crossOrigin=D)}},h.LoadImage=function(v,E,D,w,N){var I;N===void 0&&(N="");var V=!1;if(v instanceof ArrayBuffer||ArrayBuffer.isView(v)?typeof Blob<"u"?(I=URL.createObjectURL(new Blob([v],{type:N})),V=!0):I="data:"+N+";base64,"+m.a.EncodeArrayBufferToBase64(v):v instanceof Blob?(I=URL.createObjectURL(v),V=!0):(I=h._CleanUrl(v),I=h.PreprocessUrl(v)),typeof Image>"u")return h.LoadFile(I,function(ae){createImageBitmap(new Blob([ae],{type:N})).then(function(ee){E(ee),V&&URL.revokeObjectURL(I)}).catch(function(ee){D&&D("Error while trying to load image: "+v,ee)})},void 0,w||void 0,!0,function(ae,ee){D&&D("Error while trying to load image: "+v,ee)}),null;var X=new Image;h.SetCorsBehavior(I,X);var j=function(){X.removeEventListener("load",j),X.removeEventListener("error",ne),E(X),V&&X.src&&URL.revokeObjectURL(X.src)},ne=function(ae){if(X.removeEventListener("load",j),X.removeEventListener("error",ne),D){var ee=v.toString();D("Error while trying to load image: "+(ee.length<32?ee:ee.slice(0,32)+"..."),ae)}V&&X.src&&URL.revokeObjectURL(X.src)};X.addEventListener("load",j),X.addEventListener("error",ne);var te=function(){X.src=I};if(I.substr(0,5)!=="data:"&&w&&w.enableTexturesOffline)w.open(function(){w&&w.loadImage(I,X)},te);else{if(I.indexOf("file:")!==-1){var de=decodeURIComponent(I.substring(5).toLowerCase());if(M.a.FilesToLoad[de]){try{var pe;try{pe=URL.createObjectURL(M.a.FilesToLoad[de])}catch{pe=URL.createObjectURL(M.a.FilesToLoad[de])}X.src=pe,V=!0}catch{X.src=""}return X}}te()}return X},h.ReadFile=function(v,E,D,w,N){var I=new FileReader,V={onCompleteObservable:new u.c,abort:function(){return I.abort()}};return I.onloadend=function(X){return V.onCompleteObservable.notifyObservers(V)},N&&(I.onerror=function(X){N(new g("Unable to read "+v.name,v))}),I.onload=function(X){E(X.target.result)},D&&(I.onprogress=D),w?I.readAsArrayBuffer(v):I.readAsText(v),V},h.LoadFile=function(v,E,D,w,N,I){if(v.indexOf("file:")!==-1){var V=decodeURIComponent(v.substring(5).toLowerCase());V.indexOf("./")===0&&(V=V.substring(2));var X=M.a.FilesToLoad[V];if(X)return h.ReadFile(X,E,D,N,I?function(j){return I(void 0,new A(j.message,j.file))}:void 0)}return h.RequestFile(v,function(j,ne){E(j,ne?ne.responseURL:void 0)},D,w,N,I?function(j){I(j.request,new A(j.message,j.request))}:void 0)},h.RequestFile=function(v,E,D,w,N,I,V){v=h._CleanUrl(v),v=h.PreprocessUrl(v);var X=h.BaseUrl+v,j=!1,ne={onCompleteObservable:new u.c,abort:function(){return j=!0}},te=function(){var pe=new _.a,ae=null;ne.abort=function(){j=!0,pe.readyState!==(XMLHttpRequest.DONE||4)&&pe.abort(),ae!==null&&(clearTimeout(ae),ae=null)};var ee=function(K){pe.open("GET",X),V&&V(pe),N&&(pe.responseType="arraybuffer"),D&&pe.addEventListener("progress",D);var $=function(){pe.removeEventListener("loadend",$),ne.onCompleteObservable.notifyObservers(ne),ne.onCompleteObservable.clear()};pe.addEventListener("loadend",$);var L=function(){if(!j&&pe.readyState===(XMLHttpRequest.DONE||4)){if(pe.removeEventListener("readystatechange",L),pe.status>=200&&pe.status<300||pe.status===0&&(!R.a.IsWindowObjectExist()||h.IsFileURL()))return void E(N?pe.response:pe.responseText,pe);var G=h.DefaultRetryStrategy;if(G){var Q=G(X,pe,K);if(Q!==-1)return pe.removeEventListener("loadend",$),pe=new _.a,void(ae=setTimeout(function(){return ee(K+1)},Q))}var oe=new S("Error status: "+pe.status+" "+pe.statusText+" - Unable to load "+X,pe);I&&I(oe)}};pe.addEventListener("readystatechange",L),pe.send()};ee(0)};if(w&&w.enableSceneOffline){var de=function(pe){pe&&pe.status>400?I&&I(pe):te()};w.open(function(){w&&w.loadFile(h.BaseUrl+v,function(pe){j||E(pe),ne.onCompleteObservable.notifyObservers(ne)},D?function(pe){j||D(pe)}:void 0,de,N)},de)}else te();return ne},h.IsFileURL=function(){return typeof location<"u"&&location.protocol==="file:"},h.DefaultRetryStrategy=C.a.ExponentialBackoff(),h.BaseUrl="",h.CorsBehavior="anonymous",h.PreprocessUrl=function(v){return v},h}();c.a._FileToolsLoadImage=l.LoadImage.bind(l),c.a._FileToolsLoadFile=l.LoadFile.bind(l),T.a._FileToolsLoadFile=l.LoadFile.bind(l)},function(Ie,y,f){f.d(y,"a",function(){return _});var U=f(38),_=function(){function R(){}return Object.defineProperty(R,"Now",{get:function(){return U.a.IsWindowObjectExist()&&window.performance&&window.performance.now?window.performance.now():Date.now()},enumerable:!1,configurable:!0}),R}()},function(Ie,y,f){f.d(y,"a",function(){return U});var U=function(){function _(R,u,M,C){this.x=R,this.y=u,this.width=M,this.height=C}return _.prototype.toGlobal=function(R,u){return new _(this.x*R,this.y*u,this.width*R,this.height*u)},_.prototype.toGlobalToRef=function(R,u,M){return M.x=this.x*R,M.y=this.y*u,M.width=this.width*R,M.height=this.height*u,this},_.prototype.clone=function(){return new _(this.x,this.y,this.width,this.height)},_}()},function(Ie,y,f){var U="helperFunctions",_=`const float PI=3.1415926535897932384626433832795; +const float HALF_MIN=5.96046448e-08; +const float LinearEncodePowerApprox=2.2; +const float GammaEncodePowerApprox=1.0/LinearEncodePowerApprox; +const vec3 LuminanceEncodeApprox=vec3(0.2126,0.7152,0.0722); +const float Epsilon=0.0000001; +#define saturate(x) clamp(x,0.0,1.0) +#define absEps(x) abs(x)+Epsilon +#define maxEps(x) max(x,Epsilon) +#define saturateEps(x) clamp(x,Epsilon,1.0) +mat3 transposeMat3(mat3 inMatrix) { +vec3 i0=inMatrix[0]; +vec3 i1=inMatrix[1]; +vec3 i2=inMatrix[2]; +mat3 outMatrix=mat3( +vec3(i0.x,i1.x,i2.x), +vec3(i0.y,i1.y,i2.y), +vec3(i0.z,i1.z,i2.z) +); +return outMatrix; +} + +mat3 inverseMat3(mat3 inMatrix) { +float a00=inMatrix[0][0],a01=inMatrix[0][1],a02=inMatrix[0][2]; +float a10=inMatrix[1][0],a11=inMatrix[1][1],a12=inMatrix[1][2]; +float a20=inMatrix[2][0],a21=inMatrix[2][1],a22=inMatrix[2][2]; +float b01=a22*a11-a12*a21; +float b11=-a22*a10+a12*a20; +float b21=a21*a10-a11*a20; +float det=a00*b01+a01*b11+a02*b21; +return mat3(b01,(-a22*a01+a02*a21),(a12*a01-a02*a11), +b11,(a22*a00-a02*a20),(-a12*a00+a02*a10), +b21,(-a21*a00+a01*a20),(a11*a00-a01*a10))/det; +} +float toLinearSpace(float color) +{ +return pow(color,LinearEncodePowerApprox); +} +vec3 toLinearSpace(vec3 color) +{ +return pow(color,vec3(LinearEncodePowerApprox)); +} +vec4 toLinearSpace(vec4 color) +{ +return vec4(pow(color.rgb,vec3(LinearEncodePowerApprox)),color.a); +} +vec3 toGammaSpace(vec3 color) +{ +return pow(color,vec3(GammaEncodePowerApprox)); +} +vec4 toGammaSpace(vec4 color) +{ +return vec4(pow(color.rgb,vec3(GammaEncodePowerApprox)),color.a); +} +float toGammaSpace(float color) +{ +return pow(color,GammaEncodePowerApprox); +} +float square(float value) +{ +return value*value; +} +float pow5(float value) { +float sq=value*value; +return sq*sq*value; +} +float getLuminance(vec3 color) +{ +return clamp(dot(color,LuminanceEncodeApprox),0.,1.); +} + +float getRand(vec2 seed) { +return fract(sin(dot(seed.xy ,vec2(12.9898,78.233)))*43758.5453); +} +float dither(vec2 seed,float varianceAmount) { +float rand=getRand(seed); +float dither=mix(-varianceAmount/255.0,varianceAmount/255.0,rand); +return dither; +} + +const float rgbdMaxRange=255.0; +vec4 toRGBD(vec3 color) { +float maxRGB=maxEps(max(color.r,max(color.g,color.b))); +float D=max(rgbdMaxRange/maxRGB,1.); +D=clamp(floor(D)/255.0,0.,1.); + +vec3 rgb=color.rgb*D; + +rgb=toGammaSpace(rgb); +return vec4(rgb,D); +} +vec3 fromRGBD(vec4 rgbd) { + +rgbd.rgb=toLinearSpace(rgbd.rgb); + +return rgbd.rgb/rgbd.a; +} +`;f(5).a.IncludesShadersStore[U]=_},function(Ie,y,f){f.d(y,"a",function(){return _});var U=f(0),_=function(){function R(){}return R._RemoveAndStorePivotPoint=function(u){u&&R._PivotCached===0&&(u.getPivotPointToRef(R._OldPivotPoint),R._PivotPostMultiplyPivotMatrix=u._postMultiplyPivotMatrix,R._OldPivotPoint.equalsToFloats(0,0,0)||(u.setPivotMatrix(U.a.IdentityReadOnly),R._OldPivotPoint.subtractToRef(u.getPivotPoint(),R._PivotTranslation),R._PivotTmpVector.copyFromFloats(1,1,1),R._PivotTmpVector.subtractInPlace(u.scaling),R._PivotTmpVector.multiplyInPlace(R._PivotTranslation),u.position.addInPlace(R._PivotTmpVector))),R._PivotCached++},R._RestorePivotPoint=function(u){u&&!R._OldPivotPoint.equalsToFloats(0,0,0)&&R._PivotCached===1&&(u.setPivotPoint(R._OldPivotPoint),u._postMultiplyPivotMatrix=R._PivotPostMultiplyPivotMatrix,R._PivotTmpVector.copyFromFloats(1,1,1),R._PivotTmpVector.subtractInPlace(u.scaling),R._PivotTmpVector.multiplyInPlace(R._PivotTranslation),u.position.subtractInPlace(R._PivotTmpVector)),this._PivotCached--},R._PivotCached=0,R._OldPivotPoint=new U.e,R._PivotTranslation=new U.e,R._PivotTmpVector=new U.e,R._PivotPostMultiplyPivotMatrix=!1,R}()},function(Ie,y,f){f.d(y,"a",function(){return C});var U=f(4),_=f(114),R=f(43),u=f(2),M=f(101),C=function(){function P(m,c,T,A,S,g,l,h,v){h===void 0&&(h=!0),v===void 0&&(v=!0),this.materialIndex=m,this.verticesStart=c,this.verticesCount=T,this.indexStart=A,this.indexCount=S,this._materialDefines=null,this._materialEffect=null,this._effectOverride=null,this._linesIndexCount=0,this._linesIndexBuffer=null,this._lastColliderWorldVertices=null,this._lastColliderTransformMatrix=null,this._renderId=0,this._alphaIndex=0,this._distanceToCamera=0,this._currentMaterial=null,this._mesh=g,this._renderingMesh=l||g,v&&g.subMeshes.push(this),this._trianglePlanes=[],this._id=g.subMeshes.length-1,h&&(this.refreshBoundingInfo(),g.computeWorldMatrix(!0))}return Object.defineProperty(P.prototype,"materialDefines",{get:function(){return this._materialDefines},set:function(m){this._materialDefines=m},enumerable:!1,configurable:!0}),Object.defineProperty(P.prototype,"effect",{get:function(){var m;return(m=this._effectOverride)!==null&&m!==void 0?m:this._materialEffect},enumerable:!1,configurable:!0}),P.prototype.setEffect=function(m,c){c===void 0&&(c=null),this._materialEffect!==m?(this._materialDefines=c,this._materialEffect=m):m||(this._materialDefines=null)},P.AddToMesh=function(m,c,T,A,S,g,l,h){return h===void 0&&(h=!0),new P(m,c,T,A,S,g,l,h)},Object.defineProperty(P.prototype,"IsGlobal",{get:function(){return this.verticesStart===0&&this.verticesCount===this._mesh.getTotalVertices()},enumerable:!1,configurable:!0}),P.prototype.getBoundingInfo=function(){return this.IsGlobal?this._mesh.getBoundingInfo():this._boundingInfo},P.prototype.setBoundingInfo=function(m){return this._boundingInfo=m,this},P.prototype.getMesh=function(){return this._mesh},P.prototype.getRenderingMesh=function(){return this._renderingMesh},P.prototype.getReplacementMesh=function(){return this._mesh._internalAbstractMeshDataInfo._actAsRegularMesh?this._mesh:null},P.prototype.getEffectiveMesh=function(){var m=this._mesh._internalAbstractMeshDataInfo._actAsRegularMesh?this._mesh:null;return m||this._renderingMesh},P.prototype.getMaterial=function(){var m=this._renderingMesh.material;if(m==null)return this._mesh.getScene().defaultMaterial;if(this._IsMultiMaterial(m)){var c=m.getSubMaterial(this.materialIndex);return this._currentMaterial!==c&&(this._currentMaterial=c,this._materialDefines=null),c}return m},P.prototype._IsMultiMaterial=function(m){return m.getSubMaterial!==void 0},P.prototype.refreshBoundingInfo=function(m){if(m===void 0&&(m=null),this._lastColliderWorldVertices=null,this.IsGlobal||!this._renderingMesh||!this._renderingMesh.geometry)return this;if(m||(m=this._renderingMesh.getVerticesData(U.b.PositionKind)),!m)return this._boundingInfo=this._mesh.getBoundingInfo(),this;var c,T=this._renderingMesh.getIndices();if(this.indexStart===0&&this.indexCount===T.length){var A=this._renderingMesh.getBoundingInfo();c={minimum:A.minimum.clone(),maximum:A.maximum.clone()}}else c=Object(M.b)(m,T,this.indexStart,this.indexCount,this._renderingMesh.geometry.boundingBias);return this._boundingInfo?this._boundingInfo.reConstruct(c.minimum,c.maximum):this._boundingInfo=new R.a(c.minimum,c.maximum),this},P.prototype._checkCollision=function(m){return this.getBoundingInfo()._checkCollision(m)},P.prototype.updateBoundingInfo=function(m){var c=this.getBoundingInfo();return c||(this.refreshBoundingInfo(),c=this.getBoundingInfo()),c&&c.update(m),this},P.prototype.isInFrustum=function(m){var c=this.getBoundingInfo();return!!c&&c.isInFrustum(m,this._mesh.cullingStrategy)},P.prototype.isCompletelyInFrustum=function(m){var c=this.getBoundingInfo();return!!c&&c.isCompletelyInFrustum(m)},P.prototype.render=function(m){return this._renderingMesh.render(this,m,this._mesh._internalAbstractMeshDataInfo._actAsRegularMesh?this._mesh:void 0),this},P.prototype._getLinesIndexBuffer=function(m,c){if(!this._linesIndexBuffer){for(var T=[],A=this.indexStart;Al&&(l=E)}return new P(m,g,l-g+1,c,T,A,S)},P}()},function(Ie,y,f){f.d(y,"a",function(){return C});var U=f(1),_=f(8),R=f(10),u=f(2),M=(f(126),f(70)),C=function(P){function m(c,T,A,S,g,l,h){A===void 0&&(A=null),g===void 0&&(g=u.a.TEXTURE_TRILINEAR_SAMPLINGMODE),l===void 0&&(l=u.a.TEXTUREFORMAT_RGBA);var v=P.call(this,null,A,!S,h,g,void 0,void 0,void 0,void 0,l)||this;v.name=c,v.wrapU=R.a.CLAMP_ADDRESSMODE,v.wrapV=R.a.CLAMP_ADDRESSMODE,v._generateMipMaps=S;var E=v._getEngine();if(!E)return v;T.getContext?(v._canvas=T,v._texture=E.createDynamicTexture(T.width,T.height,S,g)):(v._canvas=M.a.CreateCanvas(1,1),T.width||T.width===0?v._texture=E.createDynamicTexture(T.width,T.height,S,g):v._texture=E.createDynamicTexture(T,T,S,g));var D=v.getSize();return v._canvas.width=D.width,v._canvas.height=D.height,v._context=v._canvas.getContext("2d"),v}return Object(U.d)(m,P),m.prototype.getClassName=function(){return"DynamicTexture"},Object.defineProperty(m.prototype,"canRescale",{get:function(){return!0},enumerable:!1,configurable:!0}),m.prototype._recreate=function(c){this._canvas.width=c.width,this._canvas.height=c.height,this.releaseInternalTexture(),this._texture=this._getEngine().createDynamicTexture(c.width,c.height,this._generateMipMaps,this.samplingMode)},m.prototype.scale=function(c){var T=this.getSize();T.width*=c,T.height*=c,this._recreate(T)},m.prototype.scaleTo=function(c,T){var A=this.getSize();A.width=c,A.height=T,this._recreate(A)},m.prototype.getContext=function(){return this._context},m.prototype.clear=function(){var c=this.getSize();this._context.fillRect(0,0,c.width,c.height)},m.prototype.update=function(c,T){T===void 0&&(T=!1),this._getEngine().updateDynamicTexture(this._texture,this._canvas,c===void 0||c,T,this._format||void 0)},m.prototype.drawText=function(c,T,A,S,g,l,h,v){v===void 0&&(v=!0);var E=this.getSize();if(l&&(this._context.fillStyle=l,this._context.fillRect(0,0,E.width,E.height)),this._context.font=S,T==null){var D=this._context.measureText(c);T=(E.width-D.width)/2}if(A==null){var w=parseInt(S.replace(/\D/g,""));A=E.height/2+w/3.65}this._context.fillStyle=g||"",this._context.fillText(c,T,A),v&&this.update(h)},m.prototype.clone=function(){var c=this.getScene();if(!c)return this;var T=this.getSize(),A=new m(this.name,T,c,this._generateMipMaps);return A.hasAlpha=this.hasAlpha,A.level=this.level,A.wrapU=this.wrapU,A.wrapV=this.wrapV,A},m.prototype.serialize=function(){var c=this.getScene();c&&!c.isReady()&&_.a.Warn("The scene must be ready before serializing the dynamic texture");var T=P.prototype.serialize.call(this);return this._IsCanvasElement(this._canvas)&&(T.base64String=this._canvas.toDataURL()),T.invertY=this._invertY,T.samplingMode=this.samplingMode,T},m.prototype._IsCanvasElement=function(c){return c.toDataURL!==void 0},m.prototype._rebuild=function(){this.update()},m}(R.a)},function(Ie,y,f){f.d(y,"a",function(){return M});var U=f(0),_=f(9),R=f(7),u=f(16);u.a.CreateBox=function(C){var P,m=[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],c=[0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,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],T=[],A=C.width||C.size||1,S=C.height||C.size||1,g=C.depth||C.size||1,l=C.wrap||!1,h=C.topBaseAt===void 0?1:C.topBaseAt,v=C.bottomBaseAt===void 0?0:C.bottomBaseAt,E=[2,0,3,1][h=(h+4)%4],D=[2,0,1,3][v=(v+4)%4],w=[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];if(l){m=[2,3,0,2,0,1,4,5,6,4,6,7,9,10,11,9,11,8,12,14,15,12,13,14],w=[-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];for(var N=[[1,1,1],[-1,1,1],[-1,1,-1],[1,1,-1]],I=[[-1,-1,1],[1,-1,1],[1,-1,-1],[-1,-1,-1]],V=[17,18,19,16],X=[22,23,20,21];E>0;)N.unshift(N.pop()),V.unshift(V.pop()),E--;for(;D>0;)I.unshift(I.pop()),X.unshift(X.pop()),D--;N=N.flat(),I=I.flat(),w=w.concat(N).concat(I),m.push(V[0],V[2],V[3],V[0],V[1],V[2]),m.push(X[0],X[2],X[3],X[0],X[1],X[2])}var j=[A/2,S/2,g/2];P=w.reduce(function(G,Q,oe){return G.concat(Q*j[oe%3])},[]);for(var ne=C.sideOrientation===0?0:C.sideOrientation||u.a.DEFAULTSIDE,te=C.faceUV||new Array(6),de=C.faceColors,pe=[],ae=0;ae<6;ae++)te[ae]===void 0&&(te[ae]=new U.f(0,0,1,1)),de&&de[ae]===void 0&&(de[ae]=new _.b(1,1,1,1));for(var ee=0;ee<6;ee++)if(T.push(te[ee].z,te[ee].w),T.push(te[ee].x,te[ee].w),T.push(te[ee].x,te[ee].y),T.push(te[ee].z,te[ee].y),de)for(var K=0;K<4;K++)pe.push(de[ee].r,de[ee].g,de[ee].b,de[ee].a);u.a._ComputeSides(ne,P,m,c,T,C.frontUVs,C.backUVs);var $=new u.a;if($.indices=m,$.positions=P,$.normals=c,$.uvs=T,de){var L=ne===u.a.DOUBLESIDE?pe.concat(pe):pe;$.colors=L}return $},R.a.CreateBox=function(C,P,m,c,T){m===void 0&&(m=null);var A={size:P,sideOrientation:T,updatable:c};return M.CreateBox(C,A,m)};var M=function(){function C(){}return C.CreateBox=function(P,m,c){c===void 0&&(c=null);var T=new R.a(P,c);return m.sideOrientation=R.a._GetDefaultSideOrientation(m.sideOrientation),T._originalBuilderSideOrientation=m.sideOrientation,u.a.CreateBox(m).applyToMesh(T,m.updatable),T},C}()},function(Ie,y,f){f.d(y,"a",function(){return _});var U=f(0),_=function(){function R(u,M,C,P){this.normal=new U.e(u,M,C),this.d=P}return R.prototype.asArray=function(){return[this.normal.x,this.normal.y,this.normal.z,this.d]},R.prototype.clone=function(){return new R(this.normal.x,this.normal.y,this.normal.z,this.d)},R.prototype.getClassName=function(){return"Plane"},R.prototype.getHashCode=function(){var u=this.normal.getHashCode();return u=397*u^(0|this.d)},R.prototype.normalize=function(){var u=Math.sqrt(this.normal.x*this.normal.x+this.normal.y*this.normal.y+this.normal.z*this.normal.z),M=0;return u!==0&&(M=1/u),this.normal.x*=M,this.normal.y*=M,this.normal.z*=M,this.d*=M,this},R.prototype.transform=function(u){var M=R._TmpMatrix;u.invertToRef(M);var C=M.m,P=this.normal.x,m=this.normal.y,c=this.normal.z,T=this.d;return new R(P*C[0]+m*C[1]+c*C[2]+T*C[3],P*C[4]+m*C[5]+c*C[6]+T*C[7],P*C[8]+m*C[9]+c*C[10]+T*C[11],P*C[12]+m*C[13]+c*C[14]+T*C[15])},R.prototype.dotCoordinate=function(u){return this.normal.x*u.x+this.normal.y*u.y+this.normal.z*u.z+this.d},R.prototype.copyFromPoints=function(u,M,C){var P,m=M.x-u.x,c=M.y-u.y,T=M.z-u.z,A=C.x-u.x,S=C.y-u.y,g=C.z-u.z,l=c*g-T*S,h=T*A-m*g,v=m*S-c*A,E=Math.sqrt(l*l+h*h+v*v);return P=E!==0?1/E:0,this.normal.x=l*P,this.normal.y=h*P,this.normal.z=v*P,this.d=-(this.normal.x*u.x+this.normal.y*u.y+this.normal.z*u.z),this},R.prototype.isFrontFacingTo=function(u,M){return U.e.Dot(this.normal,u)<=M},R.prototype.signedDistanceTo=function(u){return U.e.Dot(u,this.normal)+this.d},R.FromArray=function(u){return new R(u[0],u[1],u[2],u[3])},R.FromPoints=function(u,M,C){var P=new R(0,0,0,0);return P.copyFromPoints(u,M,C),P},R.FromPositionAndNormal=function(u,M){var C=new R(0,0,0,0);return M.normalize(),C.normal=M,C.d=-(M.x*u.x+M.y*u.y+M.z*u.z),C},R.SignedDistanceToPlaneFromPositionAndNormal=function(u,M,C){var P=-(M.x*u.x+M.y*u.y+M.z*u.z);return U.e.Dot(C,M)+P},R._TmpMatrix=U.a.Identity(),R}()},function(Ie,y,f){f.d(y,"a",function(){return m});var U=f(7),_=f(20),R=f(6),u=f(0),M=f(18),C=f(39),P=f(60),m=(f(84),function(){function c(T){this._useAlternatePickedPointAboveMaxDragAngleDragSpeed=-1.1,this.maxDragAngle=0,this._useAlternatePickedPointAboveMaxDragAngle=!1,this.currentDraggingPointerID=-1,this.dragging=!1,this.dragDeltaRatio=.2,this.updateDragPlane=!0,this._debugMode=!1,this._moving=!1,this.onDragObservable=new R.c,this.onDragStartObservable=new R.c,this.onDragEndObservable=new R.c,this.moveAttached=!0,this.enabled=!0,this.startAndReleaseDragOnPointerEvents=!0,this.detachCameraControls=!0,this.useObjectOrientationForDragging=!0,this.validateDrag=function(S){return!0},this._tmpVector=new u.e(0,0,0),this._alternatePickedPoint=new u.e(0,0,0),this._worldDragAxis=new u.e(0,0,0),this._targetPosition=new u.e(0,0,0),this._attachedToElement=!1,this._startDragRay=new C.a(new u.e,new u.e),this._lastPointerRay={},this._dragDelta=new u.e,this._pointA=new u.e(0,0,0),this._pointC=new u.e(0,0,0),this._localAxis=new u.e(0,0,0),this._lookAt=new u.e(0,0,0),this._options=T||{};var A=0;if(this._options.dragAxis&&A++,this._options.dragPlaneNormal&&A++,A>1)throw"Multiple drag modes specified in dragBehavior options. Only one expected"}return Object.defineProperty(c.prototype,"options",{get:function(){return this._options},set:function(T){this._options=T},enumerable:!1,configurable:!0}),Object.defineProperty(c.prototype,"name",{get:function(){return"PointerDrag"},enumerable:!1,configurable:!0}),c.prototype.init=function(){},c.prototype.attach=function(T,A){var S=this;this._scene=T.getScene(),this.attachedNode=T,c._planeScene||(this._debugMode?c._planeScene=this._scene:(c._planeScene=new _.a(this._scene.getEngine(),{virtual:!0}),c._planeScene.detachControl(),this._scene.onDisposeObservable.addOnce(function(){c._planeScene.dispose(),c._planeScene=null}))),this._dragPlane=U.a.CreatePlane("pointerDragPlane",this._debugMode?1:1e4,c._planeScene,!1,U.a.DOUBLESIDE),this.lastDragPosition=new u.e(0,0,0);var g=A||function(l){return S.attachedNode==l||l.isDescendantOf(S.attachedNode)};this._pointerObserver=this._scene.onPointerObservable.add(function(l,h){if(S.enabled){if(l.type==M.a.POINTERDOWN)S.startAndReleaseDragOnPointerEvents&&!S.dragging&&l.pickInfo&&l.pickInfo.hit&&l.pickInfo.pickedMesh&&l.pickInfo.pickedPoint&&l.pickInfo.ray&&g(l.pickInfo.pickedMesh)&&S._startDrag(l.event.pointerId,l.pickInfo.ray,l.pickInfo.pickedPoint);else if(l.type==M.a.POINTERUP)S.startAndReleaseDragOnPointerEvents&&S.currentDraggingPointerID==l.event.pointerId&&S.releaseDrag();else if(l.type==M.a.POINTERMOVE){var v=l.event.pointerId;if(S.currentDraggingPointerID===c._AnyMouseID&&v!==c._AnyMouseID){var E=l.event;(E.pointerType==="mouse"||!S._scene.getEngine().hostInformation.isMobile&&E instanceof MouseEvent)&&(S._lastPointerRay[S.currentDraggingPointerID]&&(S._lastPointerRay[v]=S._lastPointerRay[S.currentDraggingPointerID],delete S._lastPointerRay[S.currentDraggingPointerID]),S.currentDraggingPointerID=v)}S._lastPointerRay[v]||(S._lastPointerRay[v]=new C.a(new u.e,new u.e)),l.pickInfo&&l.pickInfo.ray&&(S._lastPointerRay[v].origin.copyFrom(l.pickInfo.ray.origin),S._lastPointerRay[v].direction.copyFrom(l.pickInfo.ray.direction),S.currentDraggingPointerID==v&&S.dragging&&S._moveDrag(l.pickInfo.ray))}}}),this._beforeRenderObserver=this._scene.onBeforeRenderObservable.add(function(){S._moving&&S.moveAttached&&(P.a._RemoveAndStorePivotPoint(S.attachedNode),S._targetPosition.subtractToRef(S.attachedNode.absolutePosition,S._tmpVector),S._tmpVector.scaleInPlace(S.dragDeltaRatio),S.attachedNode.getAbsolutePosition().addToRef(S._tmpVector,S._tmpVector),S.validateDrag(S._tmpVector)&&S.attachedNode.setAbsolutePosition(S._tmpVector),P.a._RestorePivotPoint(S.attachedNode))})},c.prototype.releaseDrag=function(){if(this.dragging&&(this.dragging=!1,this.onDragEndObservable.notifyObservers({dragPlanePoint:this.lastDragPosition,pointerId:this.currentDraggingPointerID})),this.currentDraggingPointerID=-1,this._moving=!1,this.detachCameraControls&&this._attachedToElement&&this._scene.activeCamera&&!this._scene.activeCamera.leftCamera){if(this._scene.activeCamera.getClassName()==="ArcRotateCamera"){var T=this._scene.activeCamera;T.attachControl(!T.inputs||T.inputs.noPreventDefault,T._useCtrlForPanning,T._panningMouseButton)}else this._scene.activeCamera.attachControl(!this._scene.activeCamera.inputs||this._scene.activeCamera.inputs.noPreventDefault);this._attachedToElement=!1}},c.prototype.startDrag=function(T,A,S){T===void 0&&(T=c._AnyMouseID),this._startDrag(T,A,S);var g=this._lastPointerRay[T];T===c._AnyMouseID&&(g=this._lastPointerRay[Object.keys(this._lastPointerRay)[0]]),g&&this._moveDrag(g)},c.prototype._startDrag=function(T,A,S){if(this._scene.activeCamera&&!this.dragging&&this.attachedNode){P.a._RemoveAndStorePivotPoint(this.attachedNode),A?(this._startDragRay.direction.copyFrom(A.direction),this._startDragRay.origin.copyFrom(A.origin)):(this._startDragRay.origin.copyFrom(this._scene.activeCamera.position),this.attachedNode.getWorldMatrix().getTranslationToRef(this._tmpVector),this._tmpVector.subtractToRef(this._scene.activeCamera.position,this._startDragRay.direction)),this._updateDragPlanePosition(this._startDragRay,S||this._tmpVector);var g=this._pickWithRayOnDragPlane(this._startDragRay);g&&(this.dragging=!0,this.currentDraggingPointerID=T,this.lastDragPosition.copyFrom(g),this.onDragStartObservable.notifyObservers({dragPlanePoint:g,pointerId:this.currentDraggingPointerID}),this._targetPosition.copyFrom(this.attachedNode.absolutePosition),this.detachCameraControls&&this._scene.activeCamera&&this._scene.activeCamera.inputs&&!this._scene.activeCamera.leftCamera&&(this._scene.activeCamera.inputs.attachedToElement?(this._scene.activeCamera.detachControl(),this._attachedToElement=!0):this._attachedToElement=!1)),P.a._RestorePivotPoint(this.attachedNode)}},c.prototype._moveDrag=function(T){this._moving=!0;var A=this._pickWithRayOnDragPlane(T);if(A){this.updateDragPlane&&this._updateDragPlanePosition(T,A);var S=0;this._options.dragAxis?(this.useObjectOrientationForDragging?u.e.TransformCoordinatesToRef(this._options.dragAxis,this.attachedNode.getWorldMatrix().getRotationMatrix(),this._worldDragAxis):this._worldDragAxis.copyFrom(this._options.dragAxis),A.subtractToRef(this.lastDragPosition,this._tmpVector),S=u.e.Dot(this._tmpVector,this._worldDragAxis),this._worldDragAxis.scaleToRef(S,this._dragDelta)):(S=this._dragDelta.length(),A.subtractToRef(this.lastDragPosition,this._dragDelta)),this._targetPosition.addInPlace(this._dragDelta),this.onDragObservable.notifyObservers({dragDistance:S,delta:this._dragDelta,dragPlanePoint:A,dragPlaneNormal:this._dragPlane.forward,pointerId:this.currentDraggingPointerID}),this.lastDragPosition.copyFrom(A)}},c.prototype._pickWithRayOnDragPlane=function(T){var A=this;if(!T)return null;var S=Math.acos(u.e.Dot(this._dragPlane.forward,T.direction));if(S>Math.PI/2&&(S=Math.PI-S),this.maxDragAngle>0&&S>this.maxDragAngle){if(this._useAlternatePickedPointAboveMaxDragAngle){this._tmpVector.copyFrom(T.direction),this.attachedNode.absolutePosition.subtractToRef(T.origin,this._alternatePickedPoint),this._alternatePickedPoint.normalize(),this._alternatePickedPoint.scaleInPlace(this._useAlternatePickedPointAboveMaxDragAngleDragSpeed*u.e.Dot(this._alternatePickedPoint,this._tmpVector)),this._tmpVector.addInPlace(this._alternatePickedPoint);var g=u.e.Dot(this._dragPlane.forward,this._tmpVector);return this._dragPlane.forward.scaleToRef(-g,this._alternatePickedPoint),this._alternatePickedPoint.addInPlace(this._tmpVector),this._alternatePickedPoint.addInPlace(this.attachedNode.absolutePosition),this._alternatePickedPoint}return null}var l=c._planeScene.pickWithRay(T,function(h){return h==A._dragPlane});return l&&l.hit&&l.pickedMesh&&l.pickedPoint?l.pickedPoint:null},c.prototype._updateDragPlanePosition=function(T,A){this._pointA.copyFrom(A),this._options.dragAxis?(this.useObjectOrientationForDragging?u.e.TransformCoordinatesToRef(this._options.dragAxis,this.attachedNode.getWorldMatrix().getRotationMatrix(),this._localAxis):this._localAxis.copyFrom(this._options.dragAxis),T.origin.subtractToRef(this._pointA,this._pointC),this._pointC.normalize(),Math.abs(u.e.Dot(this._localAxis,this._pointC))>.999?Math.abs(u.e.Dot(u.e.UpReadOnly,this._pointC))>.999?this._lookAt.copyFrom(u.e.Right()):this._lookAt.copyFrom(u.e.UpReadOnly):(u.e.CrossToRef(this._localAxis,this._pointC,this._lookAt),u.e.CrossToRef(this._localAxis,this._lookAt,this._lookAt),this._lookAt.normalize()),this._dragPlane.position.copyFrom(this._pointA),this._pointA.addToRef(this._lookAt,this._lookAt),this._dragPlane.lookAt(this._lookAt)):this._options.dragPlaneNormal?(this.useObjectOrientationForDragging?u.e.TransformCoordinatesToRef(this._options.dragPlaneNormal,this.attachedNode.getWorldMatrix().getRotationMatrix(),this._localAxis):this._localAxis.copyFrom(this._options.dragPlaneNormal),this._dragPlane.position.copyFrom(this._pointA),this._pointA.addToRef(this._localAxis,this._lookAt),this._dragPlane.lookAt(this._lookAt)):(this._dragPlane.position.copyFrom(this._pointA),this._dragPlane.lookAt(T.origin)),this._dragPlane.position.copyFrom(this.attachedNode.absolutePosition),this._dragPlane.computeWorldMatrix(!0)},c.prototype.detach=function(){this._pointerObserver&&this._scene.onPointerObservable.remove(this._pointerObserver),this._beforeRenderObserver&&this._scene.onBeforeRenderObservable.remove(this._beforeRenderObserver),this.releaseDrag()},c._AnyMouseID=-2,c}())},function(Ie,y,f){f.d(y,"a",function(){return _}),f.d(y,"b",function(){return R}),f.d(y,"c",function(){return u});var U=f(1),_=function(){function M(){}return M.KEYDOWN=1,M.KEYUP=2,M}(),R=function(M,C){this.type=M,this.event=C},u=function(M){function C(P,m){var c=M.call(this,P,m)||this;return c.type=P,c.event=m,c.skipOnPointerObservable=!1,c}return Object(U.d)(C,M),C}(R)},function(Ie,y,f){f.d(y,"a",function(){return U});var U=function(){function _(){this._defines={},this._currentRank=32,this._maxRank=-1,this._mesh=null}return _.prototype.unBindMesh=function(){this._mesh=null},_.prototype.addFallback=function(R,u){this._defines[R]||(Rthis._maxRank&&(this._maxRank=R),this._defines[R]=new Array),this._defines[R].push(u)},_.prototype.addCPUSkinningFallback=function(R,u){this._mesh=u,Rthis._maxRank&&(this._maxRank=R)},Object.defineProperty(_.prototype,"hasMoreFallbacks",{get:function(){return this._currentRank<=this._maxRank},enumerable:!1,configurable:!0}),_.prototype.reduce=function(R,u){if(this._mesh&&this._mesh.computeBonesUsingShaders&&this._mesh.numBoneInfluencers>0){this._mesh.computeBonesUsingShaders=!1,R=R.replace("#define NUM_BONE_INFLUENCERS "+this._mesh.numBoneInfluencers,"#define NUM_BONE_INFLUENCERS 0"),u._bonesComputationForcedToCPU=!0;for(var M=this._mesh.getScene(),C=0;C0&&(P.computeBonesUsingShaders=!1)}}else{var T=this._defines[this._currentRank];if(T)for(C=0;C=this.subMaterials.length?this.getScene().defaultMaterial:this.subMaterials[m]},P.prototype.getActiveTextures=function(){var m;return(m=C.prototype.getActiveTextures.call(this)).concat.apply(m,this.subMaterials.map(function(c){return c?c.getActiveTextures():[]}))},P.prototype.hasTexture=function(m){var c;if(C.prototype.hasTexture.call(this,m))return!0;for(var T=0;T=0&&A.multiMaterials.splice(S,1),C.prototype.dispose.call(this,m,c)}},P.ParseMultiMaterial=function(m,c){var T=new P(m.name,c);T.id=m.id,R.a&&R.a.AddTagsTo(T,m.tags);for(var A=0;A"u")return new OffscreenCanvas(R,u);var M=document.createElement("canvas");return M.width=R,M.height=u,M},_}()},function(Ie,y,f){f.d(y,"a",function(){return S});var U=f(0),_=f(9),R=f(16),u=f(4),M=f(61),C=f(69),P=f(43),m=f(2),c=f(12),T=f(37),A=f(101),S=function(){function g(l,h,v,E,D){E===void 0&&(E=!1),D===void 0&&(D=null),this.delayLoadState=m.a.DELAYLOADSTATE_NONE,this._totalVertices=0,this._isDisposed=!1,this._indexBufferIsUpdatable=!1,this._positionsCache=[],this.useBoundingInfoFromGeometry=!1,this.id=l,this.uniqueId=h.getUniqueId(),this._engine=h.getEngine(),this._meshes=[],this._scene=h,this._vertexBuffers={},this._indices=[],this._updatable=E,v?this.setAllVerticesData(v,E):(this._totalVertices=0,this._indices=[]),this._engine.getCaps().vertexArrayObject&&(this._vertexArrayObjects={}),D&&(this.applyToMesh(D),D.computeWorldMatrix(!0))}return Object.defineProperty(g.prototype,"boundingBias",{get:function(){return this._boundingBias},set:function(l){this._boundingBias?this._boundingBias.copyFrom(l):this._boundingBias=l.clone(),this._updateBoundingInfo(!0,null)},enumerable:!1,configurable:!0}),g.CreateGeometryForMesh=function(l){var h=new g(g.RandomId(),l.getScene());return h.applyToMesh(l),h},Object.defineProperty(g.prototype,"meshes",{get:function(){return this._meshes},enumerable:!1,configurable:!0}),Object.defineProperty(g.prototype,"extend",{get:function(){return this._extend},enumerable:!1,configurable:!0}),g.prototype.getScene=function(){return this._scene},g.prototype.getEngine=function(){return this._engine},g.prototype.isReady=function(){return this.delayLoadState===m.a.DELAYLOADSTATE_LOADED||this.delayLoadState===m.a.DELAYLOADSTATE_NONE},Object.defineProperty(g.prototype,"doNotSerialize",{get:function(){for(var l=0;l0&&(this._indexBuffer=this._engine.createIndexBuffer(this._indices)),this._indexBuffer&&(this._indexBuffer.references=h),l._syncGeometryWithMorphTargetManager(),l.synchronizeInstances()},g.prototype.notifyUpdate=function(l){this.onGeometryUpdated&&this.onGeometryUpdated(this,l);for(var h=0,v=this._meshes;h0){for(var h=0;h0){for(h=0;h0){for(h=0;h0){var N=new Float32Array(l,w.positionsAttrDesc.offset,w.positionsAttrDesc.count);h.setVerticesData(u.b.PositionKind,N,!1)}if(w.normalsAttrDesc&&w.normalsAttrDesc.count>0){var I=new Float32Array(l,w.normalsAttrDesc.offset,w.normalsAttrDesc.count);h.setVerticesData(u.b.NormalKind,I,!1)}if(w.tangetsAttrDesc&&w.tangetsAttrDesc.count>0){var V=new Float32Array(l,w.tangetsAttrDesc.offset,w.tangetsAttrDesc.count);h.setVerticesData(u.b.TangentKind,V,!1)}if(w.uvsAttrDesc&&w.uvsAttrDesc.count>0){var X=new Float32Array(l,w.uvsAttrDesc.offset,w.uvsAttrDesc.count);h.setVerticesData(u.b.UVKind,X,!1)}if(w.uvs2AttrDesc&&w.uvs2AttrDesc.count>0){var j=new Float32Array(l,w.uvs2AttrDesc.offset,w.uvs2AttrDesc.count);h.setVerticesData(u.b.UV2Kind,j,!1)}if(w.uvs3AttrDesc&&w.uvs3AttrDesc.count>0){var ne=new Float32Array(l,w.uvs3AttrDesc.offset,w.uvs3AttrDesc.count);h.setVerticesData(u.b.UV3Kind,ne,!1)}if(w.uvs4AttrDesc&&w.uvs4AttrDesc.count>0){var te=new Float32Array(l,w.uvs4AttrDesc.offset,w.uvs4AttrDesc.count);h.setVerticesData(u.b.UV4Kind,te,!1)}if(w.uvs5AttrDesc&&w.uvs5AttrDesc.count>0){var de=new Float32Array(l,w.uvs5AttrDesc.offset,w.uvs5AttrDesc.count);h.setVerticesData(u.b.UV5Kind,de,!1)}if(w.uvs6AttrDesc&&w.uvs6AttrDesc.count>0){var pe=new Float32Array(l,w.uvs6AttrDesc.offset,w.uvs6AttrDesc.count);h.setVerticesData(u.b.UV6Kind,pe,!1)}if(w.colorsAttrDesc&&w.colorsAttrDesc.count>0){var ae=new Float32Array(l,w.colorsAttrDesc.offset,w.colorsAttrDesc.count);h.setVerticesData(u.b.ColorKind,ae,!1,w.colorsAttrDesc.stride)}if(w.matricesIndicesAttrDesc&&w.matricesIndicesAttrDesc.count>0){for(var ee=new Int32Array(l,w.matricesIndicesAttrDesc.offset,w.matricesIndicesAttrDesc.count),K=[],$=0;$>8),K.push((16711680&L)>>16),K.push(L>>24&255)}h.setVerticesData(u.b.MatricesIndicesKind,K,!1)}if(w.matricesIndicesExtraAttrDesc&&w.matricesIndicesExtraAttrDesc.count>0){for(ee=new Int32Array(l,w.matricesIndicesExtraAttrDesc.offset,w.matricesIndicesExtraAttrDesc.count),K=[],$=0;$>8),K.push((16711680&L)>>16),K.push(L>>24&255);h.setVerticesData(u.b.MatricesIndicesExtraKind,K,!1)}if(w.matricesWeightsAttrDesc&&w.matricesWeightsAttrDesc.count>0){var G=new Float32Array(l,w.matricesWeightsAttrDesc.offset,w.matricesWeightsAttrDesc.count);h.setVerticesData(u.b.MatricesWeightsKind,G,!1)}if(w.indicesAttrDesc&&w.indicesAttrDesc.count>0){var Q=new Int32Array(l,w.indicesAttrDesc.offset,w.indicesAttrDesc.count);h.setIndices(Q,null)}if(w.subMeshesAttrDesc&&w.subMeshesAttrDesc.count>0){var oe=new Int32Array(l,w.subMeshesAttrDesc.offset,5*w.subMeshesAttrDesc.count);for(h.subMeshes=[],$=0;$>8),K.push((16711680&W)>>16),K.push(W>>24&255)}h.setVerticesData(u.b.MatricesIndicesKind,K,l.matricesIndices._updatable)}if(l.matricesIndicesExtra)if(l.matricesIndicesExtra._isExpanded)delete l.matricesIndices._isExpanded,h.setVerticesData(u.b.MatricesIndicesExtraKind,l.matricesIndicesExtra,l.matricesIndicesExtra._updatable);else{for(K=[],$=0;$>8),K.push((16711680&W)>>16),K.push(W>>24&255);h.setVerticesData(u.b.MatricesIndicesExtraKind,K,l.matricesIndicesExtra._updatable)}l.matricesWeights&&(g._CleanMatricesWeights(l,h),h.setVerticesData(u.b.MatricesWeightsKind,l.matricesWeights,l.matricesWeights._updatable)),l.matricesWeightsExtra&&h.setVerticesData(u.b.MatricesWeightsExtraKind,l.matricesWeightsExtra,l.matricesWeights._updatable),h.setIndices(l.indices,null)}if(l.subMeshes){h.subMeshes=[];for(var q=0;q-1){var E=h.getScene().getLastSkeletonByID(l.skeletonId);if(E){v=E.bones.length;for(var D=h.getVerticesData(u.b.MatricesIndicesKind),w=h.getVerticesData(u.b.MatricesIndicesExtraKind),N=l.matricesWeights,I=l.matricesWeightsExtra,V=l.numBoneInfluencer,X=N.length,j=0;jV-1)&&(te=V-1),ne>.001){var ae=1/ne;for(de=0;de<4;de++)N[j+de]*=ae;if(I)for(de=0;de<4;de++)I[j+de]*=ae}else te>=4?(I[j+te-4]=1-ne,w[j+te-4]=v):(N[j+te]=1-ne,D[j+te]=v)}h.setVerticesData(u.b.MatricesIndicesKind,D),l.matricesWeightsExtra&&h.setVerticesData(u.b.MatricesIndicesExtraKind,w)}}}},g.Parse=function(l,h,v){if(h.getGeometryByID(l.id))return null;var E=new g(l.id,h,void 0,l.updatable);return T.a&&T.a.AddTagsTo(E,l.tags),l.delayLoadingFile?(E.delayLoadState=m.a.DELAYLOADSTATE_NOTLOADED,E.delayLoadingFile=v+l.delayLoadingFile,E._boundingInfo=new P.a(U.e.FromArray(l.boundingBoxMinimum),U.e.FromArray(l.boundingBoxMaximum)),E._delayInfo=[],l.hasUVs&&E._delayInfo.push(u.b.UVKind),l.hasUVs2&&E._delayInfo.push(u.b.UV2Kind),l.hasUVs3&&E._delayInfo.push(u.b.UV3Kind),l.hasUVs4&&E._delayInfo.push(u.b.UV4Kind),l.hasUVs5&&E._delayInfo.push(u.b.UV5Kind),l.hasUVs6&&E._delayInfo.push(u.b.UV6Kind),l.hasColors&&E._delayInfo.push(u.b.ColorKind),l.hasMatricesIndices&&E._delayInfo.push(u.b.MatricesIndicesKind),l.hasMatricesWeights&&E._delayInfo.push(u.b.MatricesWeightsKind),E._delayLoadingFunction=R.a.ImportVertexData):R.a.ImportVertexData(l,E),h.pushGeometry(E,!0),E},g}()},function(Ie,y,f){f.d(y,"e",function(){return U}),f.d(y,"c",function(){return M}),f.d(y,"a",function(){return C}),f.d(y,"b",function(){return P}),f.d(y,"f",function(){return m}),f.d(y,"g",function(){return c}),f.d(y,"d",function(){return T});var U,_=f(14),R=f(0),u=f(28);(function(A){A[A.CW=0]="CW",A[A.CCW=1]="CCW"})(U||(U={}));var M=function(){function A(){}return A.Interpolate=function(S,g,l,h,v){for(var E=1-3*h+3*g,D=3*h-6*g,w=3*g,N=S,I=0;I<5;I++){var V=N*N;N-=(E*(V*N)+D*V+w*N-S)*(1/(3*E*V+2*D*N+w)),N=Math.min(1,Math.max(0,N))}return 3*Math.pow(1-N,2)*N*l+3*(1-N)*Math.pow(N,2)*v+Math.pow(N,3)},A}(),C=function(){function A(S){this._radians=S,this._radians<0&&(this._radians+=2*Math.PI)}return A.prototype.degrees=function(){return 180*this._radians/Math.PI},A.prototype.radians=function(){return this._radians},A.BetweenTwoPoints=function(S,g){var l=g.subtract(S);return new A(Math.atan2(l.y,l.x))},A.FromRadians=function(S){return new A(S)},A.FromDegrees=function(S){return new A(S*Math.PI/180)},A}(),P=function(A,S,g){this.startPoint=A,this.midPoint=S,this.endPoint=g;var l=Math.pow(S.x,2)+Math.pow(S.y,2),h=(Math.pow(A.x,2)+Math.pow(A.y,2)-l)/2,v=(l-Math.pow(g.x,2)-Math.pow(g.y,2))/2,E=(A.x-S.x)*(S.y-g.y)-(S.x-g.x)*(A.y-S.y);this.centerPoint=new R.d((h*(S.y-g.y)-v*(A.y-S.y))/E,((A.x-S.x)*v-(S.x-g.x)*h)/E),this.radius=this.centerPoint.subtract(this.startPoint).length(),this.startAngle=C.BetweenTwoPoints(this.centerPoint,this.startPoint);var D=this.startAngle.degrees(),w=C.BetweenTwoPoints(this.centerPoint,this.midPoint).degrees(),N=C.BetweenTwoPoints(this.centerPoint,this.endPoint).degrees();w-D>180&&(w-=360),w-D<-180&&(w+=360),N-w>180&&(N-=360),N-w<-180&&(N+=360),this.orientation=w-D<0?U.CW:U.CCW,this.angle=C.FromDegrees(this.orientation===U.CW?D-N:N-D)},m=function(){function A(S,g){this._points=new Array,this._length=0,this.closed=!1,this._points.push(new R.d(S,g))}return A.prototype.addLineTo=function(S,g){if(this.closed)return this;var l=new R.d(S,g),h=this._points[this._points.length-1];return this._points.push(l),this._length+=l.subtract(h).length(),this},A.prototype.addArcTo=function(S,g,l,h,v){if(v===void 0&&(v=36),this.closed)return this;var E=this._points[this._points.length-1],D=new R.d(S,g),w=new R.d(l,h),N=new P(E,D,w),I=N.angle.radians()/v;N.orientation===U.CW&&(I*=-1);for(var V=N.startAngle.radians()+I,X=0;X1)return R.d.Zero();for(var g=S*this.length(),l=0,h=0;h=l&&g<=w){var N=D.normalize(),I=g-l;return new R.d(E.x+N.x*I,E.y+N.y*I)}l=w}return R.d.Zero()},A.StartingAt=function(S,g){return new A(S,g)},A}(),c=function(){function A(S,g,l,h){g===void 0&&(g=null),h===void 0&&(h=!1),this.path=S,this._curve=new Array,this._distances=new Array,this._tangents=new Array,this._normals=new Array,this._binormals=new Array,this._pointAtData={id:0,point:R.e.Zero(),previousPointArrayIndex:0,position:0,subPosition:0,interpolateReady:!1,interpolationMatrix:R.a.Identity()};for(var v=0;vg){var l=S;S=g,g=l}var h=this.getCurve(),v=this.getPointAt(S),E=this.getPreviousPointIndexAt(S),D=this.getPointAt(g),w=this.getPreviousPointIndexAt(g)+1,N=[];return S!==0&&(E++,N.push(v)),N.push.apply(N,h.slice(E,w)),g===1&&S!==1||N.push(D),new A(N,this.getNormalAt(S),this._raw,this._alignTangentsWithPath)},A.prototype.update=function(S,g,l){g===void 0&&(g=null),l===void 0&&(l=!1);for(var h=0;hg+1;)g++,l=this._curve[S].subtract(this._curve[S-g]);return l},A.prototype._normalVector=function(S,g){var l,h,v=S.length();return v===0&&(v=1),g==null?(h=_.a.WithinEpsilon(Math.abs(S.y)/v,1,u.a)?_.a.WithinEpsilon(Math.abs(S.x)/v,1,u.a)?_.a.WithinEpsilon(Math.abs(S.z)/v,1,u.a)?R.e.Zero():new R.e(0,0,1):new R.e(1,0,0):new R.e(0,-1,0),l=R.e.Cross(S,h)):(l=R.e.Cross(S,g),R.e.CrossToRef(l,S,l)),l.normalize(),l},A.prototype._updatePointAtData=function(S,g){if(g===void 0&&(g=!1),this._pointAtData.id===S)return this._pointAtData.interpolateReady||this._updateInterpolationMatrix(),this._pointAtData;this._pointAtData.id=S;var l=this.getPoints();if(S<=0)return this._setPointAtData(0,0,l[0],0,g);if(S>=1)return this._setPointAtData(1,1,l[l.length-1],l.length-1,g);for(var h,v=l[0],E=0,D=S*this.length(),w=1;wD){var I=(E-D)/N,V=v.subtract(h),X=h.add(V.scaleInPlace(I));return this._setPointAtData(S,1-I,X,w-1,g)}v=h}return this._pointAtData},A.prototype._setPointAtData=function(S,g,l,h,v){return this._pointAtData.point=l,this._pointAtData.position=S,this._pointAtData.subPosition=g,this._pointAtData.previousPointArrayIndex=h,this._pointAtData.interpolateReady=v,v&&this._updateInterpolationMatrix(),this._pointAtData},A.prototype._updateInterpolationMatrix=function(){this._pointAtData.interpolationMatrix=R.a.Identity();var S=this._pointAtData.previousPointArrayIndex;if(S!==this._tangents.length-1){var g=S+1,l=this._tangents[S].clone(),h=this._normals[S].clone(),v=this._binormals[S].clone(),E=this._tangents[g].clone(),D=this._normals[g].clone(),w=this._binormals[g].clone(),N=R.b.RotationQuaternionFromAxis(h,v,l),I=R.b.RotationQuaternionFromAxis(D,w,E);R.b.Slerp(N,I,this._pointAtData.subPosition).toRotationMatrix(this._pointAtData.interpolationMatrix)}},A}(),T=function(){function A(S){this._length=0,this._points=S,this._length=this._computeLength(S)}return A.CreateQuadraticBezier=function(S,g,l,h){h=h>2?h:3;for(var v=new Array,E=function(w,N,I,V){return(1-w)*(1-w)*N+2*w*(1-w)*I+w*w*V},D=0;D<=h;D++)v.push(new R.e(E(D/h,S.x,g.x,l.x),E(D/h,S.y,g.y,l.y),E(D/h,S.z,g.z,l.z)));return new A(v)},A.CreateCubicBezier=function(S,g,l,h,v){v=v>3?v:4;for(var E=new Array,D=function(N,I,V,X,j){return(1-N)*(1-N)*(1-N)*I+3*N*(1-N)*(1-N)*V+3*N*N*(1-N)*X+N*N*N*j},w=0;w<=v;w++)E.push(new R.e(D(w/v,S.x,g.x,l.x,h.x),D(w/v,S.y,g.y,l.y,h.y),D(w/v,S.z,g.z,l.z,h.z)));return new A(E)},A.CreateHermiteSpline=function(S,g,l,h,v){for(var E=new Array,D=1/v,w=0;w<=v;w++)E.push(R.e.Hermite(S,g,l,h,w*D));return new A(E)},A.CreateCatmullRomSpline=function(S,g,l){var h=new Array,v=1/g,E=0;if(l){for(var D=S.length,w=0;w1&&(this._multiview=!0,X.push("#define MULTIVIEW"),this._options.uniforms.indexOf("viewProjection")!==-1&&this._options.uniforms.push("viewProjectionR")===-1&&this._options.uniforms.push("viewProjectionR"));for(var te=0;te4&&(j.push(u.b.MatricesIndicesExtraKind),j.push(u.b.MatricesWeightsExtraKind));var pe=E.skeleton;de=E.numBoneInfluencers,X.push("#define NUM_BONE_INFLUENCERS "+de),ne.addCPUSkinningFallback(0,E),pe.isUsingTextureForMatrices?(X.push("#define BONETEXTURE"),this._options.uniforms.indexOf("boneTextureWidth")===-1&&this._options.uniforms.push("boneTextureWidth"),this._options.samplers.indexOf("boneSampler")===-1&&this._options.samplers.push("boneSampler")):(X.push("#define BonesPerMesh "+(pe.bones.length+1)),this._options.uniforms.indexOf("mBones")===-1&&this._options.uniforms.push("mBones"))}else X.push("#define NUM_BONE_INFLUENCERS 0");for(var ae in this._textures)if(!this._textures[ae].isReady())return!1;E&&this._shouldTurnAlphaTestOn(E)&&X.push("#define ALPHATEST");var ee=this._shaderPath,K=this._options.uniforms,$=this._options.uniformBuffers,L=this._options.samplers;this.customShaderNameResolve&&(K=K.slice(),$=$.slice(),L=L.slice(),ee=this.customShaderNameResolve(ee,K,$,L,X,j));var G=this._effect,Q=X.join(` +`);return this._cachedDefines!==Q&&(this._cachedDefines=Q,this._effect=V.createEffect(ee,{attributes:j,uniformsNames:K,uniformBuffersNames:$,samplers:L,defines:Q,fallbacks:ne,onCompiled:this.onCompiled,onError:this.onError,indexParameters:{maxSimultaneousMorphTargets:de}},V),this._onEffectCreatedObservable&&(g.effect=this._effect,this._onEffectCreatedObservable.notifyObservers(g))),(N=!(!((w=this._effect)===null||w===void 0)&&w.isReady()))!==null&&N!==void 0&&!N&&(G!==this._effect&&I.resetCachedMaterial(),this._renderId=I.getRenderId(),this._effect._wasPreviouslyReady=!0,!0)},v.prototype.bindOnlyWorldMatrix=function(E,D){var w=this.getScene(),N=D??this._effect;N&&(this._options.uniforms.indexOf("world")!==-1&&N.setMatrix("world",E),this._options.uniforms.indexOf("worldView")!==-1&&(E.multiplyToRef(w.getViewMatrix(),this._cachedWorldViewMatrix),N.setMatrix("worldView",this._cachedWorldViewMatrix)),this._options.uniforms.indexOf("worldViewProjection")!==-1&&(E.multiplyToRef(w.getTransformMatrix(),this._cachedWorldViewProjectionMatrix),N.setMatrix("worldViewProjection",this._cachedWorldViewProjectionMatrix)))},v.prototype.bindForSubMesh=function(E,D,w){this.bind(E,D,w._effectOverride)},v.prototype.bind=function(E,D,w){this.bindOnlyWorldMatrix(E,w);var N=w??this._effect;if(N&&this.getScene().getCachedMaterial()!==this){var I;for(I in this._options.uniforms.indexOf("view")!==-1&&N.setMatrix("view",this.getScene().getViewMatrix()),this._options.uniforms.indexOf("projection")!==-1&&N.setMatrix("projection",this.getScene().getProjectionMatrix()),this._options.uniforms.indexOf("viewProjection")!==-1&&(N.setMatrix("viewProjection",this.getScene().getTransformMatrix()),this._multiview&&N.setMatrix("viewProjectionR",this.getScene()._transformMatrixR)),this.getScene().activeCamera&&this._options.uniforms.indexOf("cameraPosition")!==-1&&N.setVector3("cameraPosition",this.getScene().activeCamera.globalPosition),C.a.BindBonesParameters(D,N),this._textures)N.setTexture(I,this._textures[I]);for(I in this._textureArrays)N.setTextureArray(I,this._textureArrays[I]);for(I in this._ints)N.setInt(I,this._ints[I]);for(I in this._floats)N.setFloat(I,this._floats[I]);for(I in this._floatsArrays)N.setArray(I,this._floatsArrays[I]);for(I in this._colors3)N.setColor3(I,this._colors3[I]);for(I in this._colors3Arrays)N.setArray3(I,this._colors3Arrays[I]);for(I in this._colors4){var V=this._colors4[I];N.setFloat4(I,V.r,V.g,V.b,V.a)}for(I in this._colors4Arrays)N.setArray4(I,this._colors4Arrays[I]);for(I in this._vectors2)N.setVector2(I,this._vectors2[I]);for(I in this._vectors3)N.setVector3(I,this._vectors3[I]);for(I in this._vectors4)N.setVector4(I,this._vectors4[I]);for(I in this._matrices)N.setMatrix(I,this._matrices[I]);for(I in this._matrixArrays)N.setMatrices(I,this._matrixArrays[I]);for(I in this._matrices3x3)N.setMatrix3x3(I,this._matrices3x3[I]);for(I in this._matrices2x2)N.setMatrix2x2(I,this._matrices2x2[I]);for(I in this._vectors2Arrays)N.setArray2(I,this._vectors2Arrays[I]);for(I in this._vectors3Arrays)N.setArray3(I,this._vectors3Arrays[I]);for(I in this._vectors4Arrays)N.setArray4(I,this._vectors4Arrays[I])}var X=this._effect;this._effect=N,this._afterBind(D),this._effect=X},v.prototype._afterBind=function(E){h.prototype._afterBind.call(this,E),this.getScene()._cachedEffect=this._effect},v.prototype.getActiveTextures=function(){var E=h.prototype.getActiveTextures.call(this);for(var D in this._textures)E.push(this._textures[D]);for(var D in this._textureArrays)for(var w=this._textureArrays[D],N=0;NI.snapDistance){var ee=Math.floor(Math.abs(j)/I.snapDistance);j%=I.snapDistance,ae.delta.normalizeToRef(ne),ne.scaleInPlace(I.snapDistance*ee),I.attachedNode.getWorldMatrix().addTranslationFromFloats(ne.x,ne.y,ne.z),I.attachedNode.updateCache(),te.snapDistance=I.snapDistance*ee,I.onSnapObservable.notifyObservers(te)}I._matrixChanged()}}),I.dragBehavior.onDragStartObservable.add(function(){I._dragging=!0}),I.dragBehavior.onDragEndObservable.add(function(){I._dragging=!1});var de=E._getSharedGizmoLight();de.includedOnlyMeshes=de.includedOnlyMeshes.concat(I._rootMesh.getChildMeshes(!1));var pe={gizmoMeshes:V.getChildMeshes(),colliderMeshes:X.getChildMeshes(),material:I._coloredMaterial,hoverMaterial:I._hoverMaterial,disableMaterial:I._disableMaterial,active:!1};return(N=I._parent)===null||N===void 0||N.addToAxisCache(X,pe),I._pointerObserver=E.utilityLayerScene.onPointerObservable.add(function(ae){var ee;if(!I._customMeshSet&&(I._isHovered=pe.colliderMeshes.indexOf((ee=ae?.pickInfo)===null||ee===void 0?void 0:ee.pickedMesh)!=-1,!I._parent)){var K=I._isHovered||I._dragging?I._hoverMaterial:I._coloredMaterial;pe.gizmoMeshes.forEach(function($){$.material=K,$.color&&($.color=K.diffuseColor)})}}),I}return Object(U.d)(l,g),l._CreateArrow=function(h,v,E,D){E===void 0&&(E=1),D===void 0&&(D=!1);var w=new u.a("arrow",h),N=C.a.CreateCylinder("cylinder",{diameterTop:0,height:.075,diameterBottom:.0375*(1+(E-1)/4),tessellation:96},h),I=C.a.CreateCylinder("cylinder",{diameterTop:.005*E,height:.275,diameterBottom:.005*E,tessellation:96},h);return N.parent=w,N.material=v,N.rotation.x=Math.PI/2,N.position.z+=.3,I.parent=w,I.material=v,I.position.z+=.1375,I.rotation.x=Math.PI/2,D&&(I.visibility=0,N.visibility=0),w},l._CreateArrowInstance=function(h,v){for(var E=new u.a("arrow",h),D=0,w=v.getChildMeshes();D0 +#ifdef BONETEXTURE +uniform sampler2D boneSampler; +uniform float boneTextureWidth; +#else +uniform mat4 mBones[BonesPerMesh]; +#ifdef BONES_VELOCITY_ENABLED +uniform mat4 mPreviousBones[BonesPerMesh]; +#endif +#endif +attribute vec4 matricesIndices; +attribute vec4 matricesWeights; +#if NUM_BONE_INFLUENCERS>4 +attribute vec4 matricesIndicesExtra; +attribute vec4 matricesWeightsExtra; +#endif +#ifdef BONETEXTURE +#define inline +mat4 readMatrixFromRawSampler(sampler2D smp,float index) +{ +float offset=index*4.0; +float dx=1.0/boneTextureWidth; +vec4 m0=texture2D(smp,vec2(dx*(offset+0.5),0.)); +vec4 m1=texture2D(smp,vec2(dx*(offset+1.5),0.)); +vec4 m2=texture2D(smp,vec2(dx*(offset+2.5),0.)); +vec4 m3=texture2D(smp,vec2(dx*(offset+3.5),0.)); +return mat4(m0,m1,m2,m3); +} +#endif +#endif`;f(5).a.IncludesShadersStore[U]=_},function(Ie,y,f){var U="instancesDeclaration",_=`#ifdef INSTANCES +attribute vec4 world0; +attribute vec4 world1; +attribute vec4 world2; +attribute vec4 world3; +#ifdef THIN_INSTANCES +uniform mat4 world; +#endif +#else +uniform mat4 world; +#endif`;f(5).a.IncludesShadersStore[U]=_},function(Ie,y,f){var U="instancesVertex",_=`#ifdef INSTANCES +mat4 finalWorld=mat4(world0,world1,world2,world3); +#ifdef THIN_INSTANCES +finalWorld=world*finalWorld; +#endif +#else +mat4 finalWorld=world; +#endif`;f(5).a.IncludesShadersStore[U]=_},function(Ie,y,f){var U=`#if NUM_BONE_INFLUENCERS>0 +mat4 influence; +#ifdef BONETEXTURE +influence=readMatrixFromRawSampler(boneSampler,matricesIndices[0])*matricesWeights[0]; +#if NUM_BONE_INFLUENCERS>1 +influence+=readMatrixFromRawSampler(boneSampler,matricesIndices[1])*matricesWeights[1]; +#endif +#if NUM_BONE_INFLUENCERS>2 +influence+=readMatrixFromRawSampler(boneSampler,matricesIndices[2])*matricesWeights[2]; +#endif +#if NUM_BONE_INFLUENCERS>3 +influence+=readMatrixFromRawSampler(boneSampler,matricesIndices[3])*matricesWeights[3]; +#endif +#if NUM_BONE_INFLUENCERS>4 +influence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[0])*matricesWeightsExtra[0]; +#endif +#if NUM_BONE_INFLUENCERS>5 +influence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[1])*matricesWeightsExtra[1]; +#endif +#if NUM_BONE_INFLUENCERS>6 +influence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[2])*matricesWeightsExtra[2]; +#endif +#if NUM_BONE_INFLUENCERS>7 +influence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[3])*matricesWeightsExtra[3]; +#endif +#else +influence=mBones[int(matricesIndices[0])]*matricesWeights[0]; +#if NUM_BONE_INFLUENCERS>1 +influence+=mBones[int(matricesIndices[1])]*matricesWeights[1]; +#endif +#if NUM_BONE_INFLUENCERS>2 +influence+=mBones[int(matricesIndices[2])]*matricesWeights[2]; +#endif +#if NUM_BONE_INFLUENCERS>3 +influence+=mBones[int(matricesIndices[3])]*matricesWeights[3]; +#endif +#if NUM_BONE_INFLUENCERS>4 +influence+=mBones[int(matricesIndicesExtra[0])]*matricesWeightsExtra[0]; +#endif +#if NUM_BONE_INFLUENCERS>5 +influence+=mBones[int(matricesIndicesExtra[1])]*matricesWeightsExtra[1]; +#endif +#if NUM_BONE_INFLUENCERS>6 +influence+=mBones[int(matricesIndicesExtra[2])]*matricesWeightsExtra[2]; +#endif +#if NUM_BONE_INFLUENCERS>7 +influence+=mBones[int(matricesIndicesExtra[3])]*matricesWeightsExtra[3]; +#endif +#endif +finalWorld=finalWorld*influence; +#endif`;f(5).a.IncludesShadersStore.bonesVertex=U},function(Ie,y,f){f.d(y,"a",function(){return C});var U=f(0),_=f(7),R=f(4),u=f(16),M=f(43);u.a.CreateRibbon=function(P){var m=P.pathArray,c=P.closeArray||!1,T=P.closePath||!1,A=P.invertUV||!1,S=Math.floor(m[0].length/2),g=P.offset||S;g=g>S?S:Math.floor(g);var l,h,v,E,D=P.sideOrientation===0?0:P.sideOrientation||u.a.DEFAULTSIDE,w=P.uvs,N=P.colors,I=[],V=[],X=[],j=[],ne=[],te=[],de=[],pe=[],ae=[],ee=[];if(m.length<2){var K=[],$=[];for(v=0;v0&&(Q=L[E].subtract(L[E-1]).length()+de[h],ne[h].push(Q),de[h]=Q),E++;T&&(E--,I.push(L[0].x,L[0].y,L[0].z),Q=L[E].subtract(L[0]).length()+de[h],ne[h].push(Q),de[h]=Q),ae[h]=G+k,ee[h]=Y,Y+=G+k}var H,Z,W=null,q=null;for(v=0;v=U.a.ACTION_OnPickTrigger&&M<=U.a.ACTION_OnPickUpTrigger)return!0}return!1},enumerable:!1,configurable:!0}),R.HasSpecificTrigger=function(u){for(var M in R.Triggers)if(R.Triggers.hasOwnProperty(M)&&parseInt(M)===u)return!0;return!1},R.Triggers={},R}()},function(Ie,y,f){f.d(y,"a",function(){return C});var U=f(1),_=f(25),R=f(3),u=f(19),M=f(15),C=function(){function P(m){this._texture=null,this.diffuseBlendLevel=1,this.roughnessBlendLevel=1,this.bumpLevel=1,this._normalBlendMethod=_.a.MATERIAL_NORMALBLENDMETHOD_WHITEOUT,this._isEnabled=!1,this.isEnabled=!1,this._internalMarkAllSubMeshesAsTexturesDirty=m}return P.prototype._markAllSubMeshesAsTexturesDirty=function(){this._internalMarkAllSubMeshesAsTexturesDirty()},P.prototype.isReadyForSubMesh=function(m,c){var T=c.getEngine();return!(m._areTexturesDirty&&c.texturesEnabled&&T.getCaps().standardDerivatives&&this._texture&&u.a.DetailTextureEnabled&&!this._texture.isReady())},P.prototype.prepareDefines=function(m,c){if(this._isEnabled){m.DETAIL_NORMALBLENDMETHOD=this._normalBlendMethod;var T=c.getEngine();m._areTexturesDirty&&(T.getCaps().standardDerivatives&&this._texture&&u.a.DetailTextureEnabled&&this._isEnabled?(M.a.PrepareDefinesForMergedUV(this._texture,m,"DETAIL"),m.DETAIL_NORMALBLENDMETHOD=this._normalBlendMethod):m.DETAIL=!1)}else m.DETAIL=!1},P.prototype.bindForSubMesh=function(m,c,T){this._isEnabled&&(m.useUbo&&T&&m.isSync||this._texture&&u.a.DetailTextureEnabled&&(m.updateFloat4("vDetailInfos",this._texture.coordinatesIndex,this.diffuseBlendLevel,this.bumpLevel,this.roughnessBlendLevel),M.a.BindTextureMatrix(this._texture,m,"detail")),c.texturesEnabled&&this._texture&&u.a.DetailTextureEnabled&&m.setTexture("detailSampler",this._texture))},P.prototype.hasTexture=function(m){return this._texture===m},P.prototype.getActiveTextures=function(m){this._texture&&m.push(this._texture)},P.prototype.getAnimatables=function(m){this._texture&&this._texture.animations&&this._texture.animations.length>0&&m.push(this._texture)},P.prototype.dispose=function(m){var c;m&&((c=this._texture)===null||c===void 0||c.dispose())},P.prototype.getClassName=function(){return"DetailMap"},P.AddUniforms=function(m){m.push("vDetailInfos")},P.AddSamplers=function(m){m.push("detailSampler")},P.PrepareUniformBuffer=function(m){m.addUniform("vDetailInfos",4),m.addUniform("detailMatrix",16)},P.prototype.copyTo=function(m){R.a.Clone(function(){return m},this)},P.prototype.serialize=function(){return R.a.Serialize(this)},P.prototype.parse=function(m,c,T){var A=this;R.a.Parse(function(){return A},m,c,T)},Object(U.c)([Object(R.m)("detailTexture"),Object(R.b)("_markAllSubMeshesAsTexturesDirty")],P.prototype,"texture",void 0),Object(U.c)([Object(R.c)()],P.prototype,"diffuseBlendLevel",void 0),Object(U.c)([Object(R.c)()],P.prototype,"roughnessBlendLevel",void 0),Object(U.c)([Object(R.c)()],P.prototype,"bumpLevel",void 0),Object(U.c)([Object(R.c)(),Object(R.b)("_markAllSubMeshesAsTexturesDirty")],P.prototype,"normalBlendMethod",void 0),Object(U.c)([Object(R.c)(),Object(R.b)("_markAllSubMeshesAsTexturesDirty")],P.prototype,"isEnabled",void 0),P}()},function(Ie,y,f){var U="morphTargetsVertexGlobalDeclaration",_=`#ifdef MORPHTARGETS +uniform float morphTargetInfluences[NUM_MORPH_INFLUENCERS]; +#endif`;f(5).a.IncludesShadersStore[U]=_},function(Ie,y,f){var U="morphTargetsVertexDeclaration",_=`#ifdef MORPHTARGETS +attribute vec3 position{X}; +#ifdef MORPHTARGETS_NORMAL +attribute vec3 normal{X}; +#endif +#ifdef MORPHTARGETS_TANGENT +attribute vec3 tangent{X}; +#endif +#ifdef MORPHTARGETS_UV +attribute vec2 uv_{X}; +#endif +#endif`;f(5).a.IncludesShadersStore[U]=_},function(Ie,y,f){f.d(y,"a",function(){return u});var U=f(25),_=f(4),R=f(2),u=function(){function M(C){this._vertexBuffers={},this._scene=C}return M.prototype._prepareBuffers=function(){if(!this._vertexBuffers[_.b.PositionKind]){var C=[];C.push(1,1),C.push(-1,1),C.push(-1,-1),C.push(1,-1),this._vertexBuffers[_.b.PositionKind]=new _.b(this._scene.getEngine(),C,_.b.PositionKind,!1,!1,2),this._buildIndexBuffer()}},M.prototype._buildIndexBuffer=function(){var C=[];C.push(0),C.push(1),C.push(2),C.push(0),C.push(2),C.push(3),this._indexBuffer=this._scene.getEngine().createIndexBuffer(C)},M.prototype._rebuild=function(){var C=this._vertexBuffers[_.b.PositionKind];C&&(C._rebuild(),this._buildIndexBuffer())},M.prototype._prepareFrame=function(C,P){C===void 0&&(C=null),P===void 0&&(P=null);var m=this._scene.activeCamera;return!!m&&!(!(P=P||m._postProcesses.filter(function(c){return c!=null}))||P.length===0||!this._scene.postProcessesEnabled)&&(P[0].activate(m,C,P!=null),!0)},M.prototype.directRender=function(C,P,m,c,T,A){P===void 0&&(P=null),m===void 0&&(m=!1),c===void 0&&(c=0),T===void 0&&(T=0),A===void 0&&(A=!1);for(var S=this._scene.getEngine(),g=0;g3?0:v,E);var ae=R.a.CreateRibbon(P,{pathArray:te,closeArray:l,closePath:h,updatable:w,sideOrientation:N,invertUV:V,frontUVs:X||void 0,backUVs:j||void 0},D);return ae._creationDataStorage.pathArray=te,ae._creationDataStorage.path3D=ne,ae._creationDataStorage.cap=v,ae},C}()},function(Ie,y,f){f.d(y,"b",function(){return c}),f.d(y,"a",function(){return T});var U=f(1),_=f(9),R=f(4),u=f(7),M=f(151),C=f(25),P=f(73),m=f(15),c=(f(166),f(167),function(A){function S(g,l,h,v,E,D,w){l===void 0&&(l=null),h===void 0&&(h=null),v===void 0&&(v=null);var N=A.call(this,g,l,h,v,E)||this;N.useVertexColor=D,N.useVertexAlpha=w,N.color=new _.a(1,1,1),N.alpha=1,v&&(N.color=v.color.clone(),N.alpha=v.alpha,N.useVertexColor=v.useVertexColor,N.useVertexAlpha=v.useVertexAlpha),N.intersectionThreshold=.1;var I={attributes:[R.b.PositionKind,"world0","world1","world2","world3"],uniforms:["vClipPlane","vClipPlane2","vClipPlane3","vClipPlane4","vClipPlane5","vClipPlane6","world","viewProjection"],needAlphaBlending:!0,defines:[]};return w===!1&&(I.needAlphaBlending=!1),D?(I.defines.push("#define VERTEXCOLOR"),I.attributes.push(R.b.ColorKind)):(I.uniforms.push("color"),N.color4=new _.b),N._colorShader=new P.a("colorShader",N.getScene(),"color",I),N}return Object(U.d)(S,A),S.prototype._addClipPlaneDefine=function(g){var l="#define "+g;this._colorShader.options.defines.indexOf(l)===-1&&this._colorShader.options.defines.push(l)},S.prototype._removeClipPlaneDefine=function(g){var l="#define "+g,h=this._colorShader.options.defines.indexOf(l);h!==-1&&this._colorShader.options.defines.splice(h,1)},S.prototype.isReady=function(){var g=this.getScene();return g.clipPlane?this._addClipPlaneDefine("CLIPPLANE"):this._removeClipPlaneDefine("CLIPPLANE"),g.clipPlane2?this._addClipPlaneDefine("CLIPPLANE2"):this._removeClipPlaneDefine("CLIPPLANE2"),g.clipPlane3?this._addClipPlaneDefine("CLIPPLANE3"):this._removeClipPlaneDefine("CLIPPLANE3"),g.clipPlane4?this._addClipPlaneDefine("CLIPPLANE4"):this._removeClipPlaneDefine("CLIPPLANE4"),g.clipPlane5?this._addClipPlaneDefine("CLIPPLANE5"):this._removeClipPlaneDefine("CLIPPLANE5"),g.clipPlane6?this._addClipPlaneDefine("CLIPPLANE6"):this._removeClipPlaneDefine("CLIPPLANE6"),!!this._colorShader.isReady(this)&&A.prototype.isReady.call(this)},S.prototype.getClassName=function(){return"LinesMesh"},Object.defineProperty(S.prototype,"material",{get:function(){return this._colorShader},set:function(g){},enumerable:!1,configurable:!0}),Object.defineProperty(S.prototype,"checkCollisions",{get:function(){return!1},enumerable:!1,configurable:!0}),S.prototype._bind=function(g,l,h){if(!this._geometry)return this;var v=this._colorShader.getEffect(),E=this.isUnIndexed?null:this._geometry.getIndexBuffer();if(this._geometry._bind(v,E),!this.useVertexColor){var D=this.color,w=D.r,N=D.g,I=D.b;this.color4.set(w,N,I,this.alpha),this._colorShader.setColor4("color",this.color4)}return m.a.BindClipPlane(v,this.getScene()),this},S.prototype._draw=function(g,l,h){if(!this._geometry||!this._geometry.getVertexBuffers()||!this._unIndexed&&!this._geometry.getIndexBuffer())return this;var v=this.getScene().getEngine();return this._unIndexed?v.drawArraysType(C.a.LineListDrawMode,g.verticesStart,g.verticesCount,h):v.drawElementsType(C.a.LineListDrawMode,g.indexStart,g.indexCount,h),this},S.prototype.dispose=function(g){this._colorShader.dispose(!1,!1,!0),A.prototype.dispose.call(this,g)},S.prototype.clone=function(g,l,h){return l===void 0&&(l=null),new S(g,this.getScene(),l,this,h)},S.prototype.createInstance=function(g){return new T(g,this)},S}(u.a)),T=function(A){function S(g,l){var h=A.call(this,g,l)||this;return h.intersectionThreshold=l.intersectionThreshold,h}return Object(U.d)(S,A),S.prototype.getClassName=function(){return"InstancedLinesMesh"},S}(M.a)},function(Ie,y,f){f.r(y),f.d(y,"AxesViewer",function(){return C}),f.d(y,"BoneAxesViewer",function(){return c}),f.d(y,"DebugLayerTab",function(){return U}),f.d(y,"DebugLayer",function(){return l}),f.d(y,"PhysicsViewer",function(){return V}),f.d(y,"RayHelper",function(){return j}),f.d(y,"SkeletonViewer",function(){return K});var U,_=f(0),R=f(30),u=f(75),M=f(9),C=function(){function $(L,G,Q,oe,re,Y){if(G===void 0&&(G=1),Q===void 0&&(Q=2),this._scaleLinesFactor=4,this._instanced=!1,this.scene=null,this.scaleLines=1,this.scaleLines=G,!oe){var k=new R.a("",L);k.disableLighting=!0,k.emissiveColor=M.a.Red().scale(.5),oe=u.a._CreateArrow(L,k)}if(!re){var H=new R.a("",L);H.disableLighting=!0,H.emissiveColor=M.a.Green().scale(.5),re=u.a._CreateArrow(L,H)}if(!Y){var Z=new R.a("",L);Z.disableLighting=!0,Z.emissiveColor=M.a.Blue().scale(.5),Y=u.a._CreateArrow(L,Z)}this._xAxis=oe,this._xAxis.scaling.setAll(this.scaleLines*this._scaleLinesFactor),this._yAxis=re,this._yAxis.scaling.setAll(this.scaleLines*this._scaleLinesFactor),this._zAxis=Y,this._zAxis.scaling.setAll(this.scaleLines*this._scaleLinesFactor),Q!=null&&($._SetRenderingGroupId(this._xAxis,Q),$._SetRenderingGroupId(this._yAxis,Q),$._SetRenderingGroupId(this._zAxis,Q)),this.scene=L,this.update(new _.e,_.e.Right(),_.e.Up(),_.e.Forward())}return Object.defineProperty($.prototype,"xAxis",{get:function(){return this._xAxis},enumerable:!1,configurable:!0}),Object.defineProperty($.prototype,"yAxis",{get:function(){return this._yAxis},enumerable:!1,configurable:!0}),Object.defineProperty($.prototype,"zAxis",{get:function(){return this._zAxis},enumerable:!1,configurable:!0}),$.prototype.update=function(L,G,Q,oe){this._xAxis.position.copyFrom(L),this._xAxis.setDirection(G),this._xAxis.scaling.setAll(this.scaleLines*this._scaleLinesFactor),this._yAxis.position.copyFrom(L),this._yAxis.setDirection(Q),this._yAxis.scaling.setAll(this.scaleLines*this._scaleLinesFactor),this._zAxis.position.copyFrom(L),this._zAxis.setDirection(oe),this._zAxis.scaling.setAll(this.scaleLines*this._scaleLinesFactor)},$.prototype.createInstance=function(){var L=u.a._CreateArrowInstance(this.scene,this._xAxis),G=u.a._CreateArrowInstance(this.scene,this._yAxis),Q=u.a._CreateArrowInstance(this.scene,this._zAxis),oe=new $(this.scene,this.scaleLines,null,L,G,Q);return oe._instanced=!0,oe},$.prototype.dispose=function(){this._xAxis&&this._xAxis.dispose(!1,!this._instanced),this._yAxis&&this._yAxis.dispose(!1,!this._instanced),this._zAxis&&this._zAxis.dispose(!1,!this._instanced),this.scene=null},$._SetRenderingGroupId=function(L,G){L.getChildMeshes().forEach(function(Q){Q.renderingGroupId=G})},$}(),P=f(1),m=f(23),c=function($){function L(G,Q,oe,re){re===void 0&&(re=1);var Y=$.call(this,G,re)||this;return Y.pos=_.e.Zero(),Y.xaxis=_.e.Zero(),Y.yaxis=_.e.Zero(),Y.zaxis=_.e.Zero(),Y.mesh=oe,Y.bone=Q,Y}return Object(P.d)(L,$),L.prototype.update=function(){if(this.mesh&&this.bone){var G=this.bone;G._markAsDirtyAndCompose(),G.getAbsolutePositionToRef(this.mesh,this.pos),G.getDirectionToRef(m.a.X,this.mesh,this.xaxis),G.getDirectionToRef(m.a.Y,this.mesh,this.yaxis),G.getDirectionToRef(m.a.Z,this.mesh,this.zaxis),$.prototype.update.call(this,this.pos,this.xaxis,this.yaxis,this.zaxis)}},L.prototype.dispose=function(){this.mesh&&(this.mesh=null,this.bone=null,$.prototype.dispose.call(this))},L}(C),T=f(12),A=f(6),S=f(20),g=f(13);Object.defineProperty(S.a.prototype,"debugLayer",{get:function(){return this._debugLayer||(this._debugLayer=new l(this)),this._debugLayer},enumerable:!0,configurable:!0}),function($){$[$.Properties=0]="Properties",$[$.Debug=1]="Debug",$[$.Statistics=2]="Statistics",$[$.Tools=3]="Tools",$[$.Settings=4]="Settings"}(U||(U={}));var l=function(){function $(L){var G=this;this.BJSINSPECTOR=this._getGlobalInspector(),this._scene=L,this._scene.onDisposeObservable.add(function(){G._scene._debugLayer&&G._scene._debugLayer.hide()})}return Object.defineProperty($.prototype,"onPropertyChangedObservable",{get:function(){return this.BJSINSPECTOR&&this.BJSINSPECTOR.Inspector?this.BJSINSPECTOR.Inspector.OnPropertyChangedObservable:(this._onPropertyChangedObservable||(this._onPropertyChangedObservable=new A.c),this._onPropertyChangedObservable)},enumerable:!1,configurable:!0}),$.prototype._createInspector=function(L){if(!this.isVisible()){if(this._onPropertyChangedObservable){for(var G=0,Q=this._onPropertyChangedObservable.observers;G-1&&this._debugMeshMeshes.splice(Y,1),this._numMeshes--,this._numMeshes>0?(this._meshes[oe]=this._meshes[this._numMeshes],this._impostors[oe]=this._impostors[this._numMeshes],this._meshes[this._numMeshes]=null,this._impostors[this._numMeshes]=null):(this._meshes[0]=null,this._impostors[0]=null),G=!0;break}G&&this._numMeshes===0&&this._scene.unregisterBeforeRender(this._renderFunction)}},$.prototype._getDebugMaterial=function(L){return this._debugMaterial||(this._debugMaterial=new R.a("",L),this._debugMaterial.wireframe=!0,this._debugMaterial.emissiveColor=M.a.White(),this._debugMaterial.disableLighting=!0),this._debugMaterial},$.prototype._getDebugBoxMesh=function(L){return this._debugBoxMesh||(this._debugBoxMesh=v.a.CreateBox("physicsBodyBoxViewMesh",{size:1},L),this._debugBoxMesh.rotationQuaternion=_.b.Identity(),this._debugBoxMesh.material=this._getDebugMaterial(L),this._debugBoxMesh.setEnabled(!1)),this._debugBoxMesh.createInstance("physicsBodyBoxViewInstance")},$.prototype._getDebugSphereMesh=function(L){return this._debugSphereMesh||(this._debugSphereMesh=E.a.CreateSphere("physicsBodySphereViewMesh",{diameter:1},L),this._debugSphereMesh.rotationQuaternion=_.b.Identity(),this._debugSphereMesh.material=this._getDebugMaterial(L),this._debugSphereMesh.setEnabled(!1)),this._debugSphereMesh.createInstance("physicsBodyBoxViewInstance")},$.prototype._getDebugCylinderMesh=function(L){return this._debugCylinderMesh||(this._debugCylinderMesh=I.a.CreateCylinder("physicsBodyCylinderViewMesh",{diameterTop:1,diameterBottom:1,height:1},L),this._debugCylinderMesh.rotationQuaternion=_.b.Identity(),this._debugCylinderMesh.material=this._getDebugMaterial(L),this._debugCylinderMesh.setEnabled(!1)),this._debugCylinderMesh.createInstance("physicsBodyBoxViewInstance")},$.prototype._getDebugMeshMesh=function(L,G){var Q=new h.a(L.name,G,null,L);return Q.position=_.e.Zero(),Q.setParent(L),Q.material=this._getDebugMaterial(G),this._debugMeshMeshes.push(Q),Q},$.prototype._getDebugMesh=function(L,G){var Q=this;if(!this._utilityLayer||G&&G.parent&&G.parent.physicsImpostor)return null;var oe=null,re=this._utilityLayer.utilityLayerScene;switch(L.type){case w.a.BoxImpostor:oe=this._getDebugBoxMesh(re),L.getBoxSizeToRef(oe.scaling);break;case w.a.SphereImpostor:oe=this._getDebugSphereMesh(re);var Y=L.getRadius();oe.scaling.x=2*Y,oe.scaling.y=2*Y,oe.scaling.z=2*Y;break;case w.a.MeshImpostor:G&&(oe=this._getDebugMeshMesh(G,re));break;case w.a.NoImpostor:G&&G.getChildMeshes().filter(function(H){return H.physicsImpostor?1:0}).forEach(function(H){Q._getDebugBoxMesh(re).parent=H});break;case w.a.CylinderImpostor:oe=this._getDebugCylinderMesh(re);var k=L.object.getBoundingInfo();oe.scaling.x=k.boundingBox.maximum.x-k.boundingBox.minimum.x,oe.scaling.y=k.boundingBox.maximum.y-k.boundingBox.minimum.y,oe.scaling.z=k.boundingBox.maximum.z-k.boundingBox.minimum.z}return oe},$.prototype.dispose=function(){for(var L=this._numMeshes,G=0;G$.DISPLAY_SPHERE_AND_SPURS&&(Ge=$.DISPLAY_LINES),this.displayMode=Ge,this.update(),this._bindObs()}return $.CreateBoneWeightShader=function(L,G){var Q,oe,re,Y,k,H,Z=L.skeleton,W=(Q=L.colorBase)!==null&&Q!==void 0?Q:M.a.Black(),q=(oe=L.colorZero)!==null&&oe!==void 0?oe:M.a.Blue(),he=(re=L.colorQuarter)!==null&&re!==void 0?re:M.a.Green(),ge=(Y=L.colorHalf)!==null&&Y!==void 0?Y:M.a.Yellow(),me=(k=L.colorFull)!==null&&k!==void 0?k:M.a.Red(),_e=(H=L.targetBoneIndex)!==null&&H!==void 0?H:0;ae.a.ShadersStore["boneWeights:"+Z.name+"VertexShader"]=`precision highp float; + + attribute vec3 position; + attribute vec2 uv; + + uniform mat4 view; + uniform mat4 projection; + uniform mat4 worldViewProjection; + + #include + #if NUM_BONE_INFLUENCERS == 0 + attribute vec4 matricesIndices; + attribute vec4 matricesWeights; + #endif + + #include + + varying vec3 vColor; + + uniform vec3 colorBase; + uniform vec3 colorZero; + uniform vec3 colorQuarter; + uniform vec3 colorHalf; + uniform vec3 colorFull; + + uniform float targetBoneIndex; + + void main() { + vec3 positionUpdated = position; + + #include + #include + + vec4 worldPos = finalWorld * vec4(positionUpdated, 1.0); + + vec3 color = colorBase; + float totalWeight = 0.; + if(matricesIndices[0] == targetBoneIndex && matricesWeights[0] > 0.){ + totalWeight += matricesWeights[0]; + } + if(matricesIndices[1] == targetBoneIndex && matricesWeights[1] > 0.){ + totalWeight += matricesWeights[1]; + } + if(matricesIndices[2] == targetBoneIndex && matricesWeights[2] > 0.){ + totalWeight += matricesWeights[2]; + } + if(matricesIndices[3] == targetBoneIndex && matricesWeights[3] > 0.){ + totalWeight += matricesWeights[3]; + } + + color = mix(color, colorZero, smoothstep(0., 0.25, totalWeight)); + color = mix(color, colorQuarter, smoothstep(0.25, 0.5, totalWeight)); + color = mix(color, colorHalf, smoothstep(0.5, 0.75, totalWeight)); + color = mix(color, colorFull, smoothstep(0.75, 1.0, totalWeight)); + vColor = color; + + gl_Position = projection * view * worldPos; + }`,ae.a.ShadersStore["boneWeights:"+Z.name+"FragmentShader"]=` + precision highp float; + varying vec3 vPosition; + + varying vec3 vColor; + + void main() { + vec4 color = vec4(vColor, 1.0); + gl_FragColor = color; + } + `;var be=new te.a("boneWeight:"+Z.name,G,{vertex:"boneWeights:"+Z.name,fragment:"boneWeights:"+Z.name},{attributes:["position","normal","matricesIndices","matricesWeights"],uniforms:["world","worldView","worldViewProjection","view","projection","viewProjection","colorBase","colorZero","colorQuarter","colorHalf","colorFull","targetBoneIndex"]});return be.setColor3("colorBase",W),be.setColor3("colorZero",q),be.setColor3("colorQuarter",he),be.setColor3("colorHalf",ge),be.setColor3("colorFull",me),be.setFloat("targetBoneIndex",_e),be.getClassName=function(){return"BoneWeightShader"},be.transparencyMode=ne.a.MATERIAL_OPAQUE,be},$.CreateSkeletonMapShader=function(L,G){var Q,oe=L.skeleton,re=(Q=L.colorMap)!==null&&Q!==void 0?Q:[{color:new M.a(1,.38,.18),location:0},{color:new M.a(.59,.18,1),location:.2},{color:new M.a(.59,1,.18),location:.4},{color:new M.a(1,.87,.17),location:.6},{color:new M.a(1,.17,.42),location:.8},{color:new M.a(.17,.68,1),location:1}],Y=oe.bones.length+1,k=$._CreateBoneMapColorBuffer(Y,re,G),H=new te.a("boneWeights:"+oe.name,G,{vertexSource:`precision highp float; + + attribute vec3 position; + attribute vec2 uv; + + uniform mat4 view; + uniform mat4 projection; + uniform mat4 worldViewProjection; + uniform float colorMap[`+4*oe.bones.length+`]; + + #include + #if NUM_BONE_INFLUENCERS == 0 + attribute vec4 matricesIndices; + attribute vec4 matricesWeights; + #endif + #include + + varying vec3 vColor; + + void main() { + vec3 positionUpdated = position; + + #include + #include + + vec3 color = vec3(0.); + bool first = true; + + for (int i = 0; i < 4; i++) { + int boneIdx = int(matricesIndices[i]); + float boneWgt = matricesWeights[i]; + + vec3 c = vec3(colorMap[boneIdx * 4 + 0], colorMap[boneIdx * 4 + 1], colorMap[boneIdx * 4 + 2]); + + if (boneWgt > 0.) { + if (first) { + first = false; + color = c; + } else { + color = mix(color, c, boneWgt); + } + } + } + + vColor = color; + + vec4 worldPos = finalWorld * vec4(positionUpdated, 1.0); + + gl_Position = projection * view * worldPos; + }`,fragmentSource:` + precision highp float; + varying vec3 vColor; + + void main() { + vec4 color = vec4( vColor, 1.0 ); + gl_FragColor = color; + } + `},{attributes:["position","normal","matricesIndices","matricesWeights"],uniforms:["world","worldView","worldViewProjection","view","projection","viewProjection","colorMap"]});return H.setFloats("colorMap",k),H.getClassName=function(){return"SkeletonMapShader"},H.transparencyMode=ne.a.MATERIAL_OPAQUE,H},$._CreateBoneMapColorBuffer=function(L,G,Q){var oe=new de.a("temp",{width:L,height:1},Q,!1),re=oe.getContext(),Y=re.createLinearGradient(0,0,L,0);G.forEach(function(W){Y.addColorStop(W.location,W.color.toHexString())}),re.fillStyle=Y,re.fillRect(0,0,L,1),oe.update();for(var k=[],H=re.getImageData(0,0,L,1).data,Z=0;Z$.DISPLAY_SPHERE_AND_SPURS&&(L=$.DISPLAY_LINES),this.options.displayMode=L},enumerable:!1,configurable:!0}),$.prototype._bindObs=function(){var L=this;switch(this.displayMode){case $.DISPLAY_LINES:this._obs=this.scene.onBeforeRenderObservable.add(function(){L._displayLinesUpdate()})}},$.prototype.update=function(){switch(this.displayMode){case $.DISPLAY_LINES:this._displayLinesUpdate();break;case $.DISPLAY_SPHERES:this._buildSpheresAndSpurs(!0);break;case $.DISPLAY_SPHERE_AND_SPURS:this._buildSpheresAndSpurs(!1)}this._buildLocalAxes()},Object.defineProperty($.prototype,"isEnabled",{get:function(){return this._isEnabled},set:function(L){this.isEnabled!==L&&(this._isEnabled=L,this.debugMesh&&this.debugMesh.setEnabled(L),L&&!this._obs?this._bindObs():!L&&this._obs&&(this.scene.onBeforeRenderObservable.remove(this._obs),this._obs=null))},enumerable:!1,configurable:!0}),$.prototype._getBonePosition=function(L,G,Q,oe,re,Y){oe===void 0&&(oe=0),re===void 0&&(re=0),Y===void 0&&(Y=0);var k=_.c.Matrix[0],H=G.getParent();if(k.copyFrom(G.getLocalMatrix()),oe!==0||re!==0||Y!==0){var Z=_.c.Matrix[1];_.a.IdentityToRef(Z),Z.setTranslationFromFloats(oe,re,Y),Z.multiplyToRef(k,k)}H&&k.multiplyToRef(H.getAbsoluteTransform(),k),k.multiplyToRef(Q,k),L.x=k.m[12],L.y=k.m[13],L.z=k.m[14]},$.prototype._getLinesForBonesWithLength=function(L,G){for(var Q=L.length,oe=this.mesh._effectiveMesh.position,re=0,Y=0;Y=0;Y--){var k=L[Y],H=k.getParent();if(H&&(this._boneIndices.has(k.getIndex())||this.options.useAllBones)){var Z=this._debugLines[Q];Z||(Z=[_.e.Zero(),_.e.Zero()],this._debugLines[Q]=Z),k.getAbsolutePositionToRef(oe,Z[0]),H.getAbsolutePositionToRef(oe,Z[1]),Z[0].subtractInPlace(re),Z[1].subtractInPlace(re),Q++}}},$.prototype._revert=function(L){this.options.pauseAnimations&&(this.scene.animationsEnabled=L,this.utilityLayer.utilityLayerScene.animationsEnabled=L)},$.prototype._getAbsoluteBindPoseToRef=function(L,G){L!==null&&L._index!==-1?(this._getAbsoluteBindPoseToRef(L.getParent(),G),L.getBindPose().multiplyToRef(G,G)):G.copyFrom(_.a.Identity())},$.prototype._buildSpheresAndSpurs=function(L){var G,Q;L===void 0&&(L=!0),this._debugMesh&&(this._debugMesh.dispose(),this._debugMesh=null,this.ready=!1),this._ready=!1;var oe=(G=this.utilityLayer)===null||G===void 0?void 0:G.utilityLayerScene,re=this.skeleton.bones,Y=[],k=[],H=this.scene.animationsEnabled;try{this.options.pauseAnimations&&(this.scene.animationsEnabled=!1,oe.animationsEnabled=!1),this.options.returnToRest&&this.skeleton.returnToRest(),this.autoUpdateBonesMatrices&&this.skeleton.computeAbsoluteTransforms();for(var Z=Number.NEGATIVE_INFINITY,W=this.options.displayOptions||{},q=function(He){var Qe=re[He];if(Qe._index===-1||!he._boneIndices.has(Qe.getIndex())&&!he.options.useAllBones)return"continue";var Ge=new _.a;he._getAbsoluteBindPoseToRef(Qe,Ge);var nt=new _.e;Ge.decompose(void 0,void 0,nt),Qe.children.forEach(function(It,Pt){var Ot=new _.a;It.getBindPose().multiplyToRef(Ge,Ot);var on=new _.e;Ot.decompose(void 0,void 0,on);var Zt=_.e.Distance(nt,on);if(Zt>Z&&(Z=Zt),!L){for(var tn=on.clone().subtract(nt.clone()),De=tn.length(),Pn=tn.normalize().scale(De),nn=W.midStep||.165,xn=W.midStepFactor||.215,Ue=Pn.scale(nn),Cn=ee.a.ExtrudeShapeCustom("skeletonViewer",{shape:[new _.e(1,-1,0),new _.e(1,1,0),new _.e(-1,1,0),new _.e(-1,-1,0),new _.e(1,-1,0)],path:[_.e.Zero(),Ue,Pn],scaleFunction:function(No){switch(No){case 0:case 2:return 0;case 1:return De*xn}return 0},sideOrientation:h.a.DEFAULTSIDE,updatable:!1},oe),dr=Cn.getTotalVertices(),Xe=[],An=[],ei=0;ei9?An.push(It.getIndex(),0,0,0):An.push(Qe.getIndex(),0,0,0);Cn.position=nt.clone(),Cn.setVerticesData(pe.b.MatricesWeightsKind,Xe,!1),Cn.setVerticesData(pe.b.MatricesIndicesKind,An,!1),Cn.convertToFlatShadedMesh(),k.push(Cn)}});for(var $e=W.sphereBaseSize||.2,ct=E.a.CreateSphere("skeletonViewer",{segments:6,diameter:$e,updatable:!0},oe),st=ct.getTotalVertices(),mt=[],St=[],wt=0;wth-c)&&!(g-vv-T)&&!(l-EE-A)},M.prototype.intersectsSphere=function(C){return M.IntersectsSphere(this.minimumWorld,this.maximumWorld,C.centerWorld,C.radiusWorld)},M.prototype.intersectsMinMax=function(C,P){var m=this.minimumWorld,c=this.maximumWorld,T=m.x,A=m.y,S=m.z,g=c.x,l=c.y,h=c.z,v=C.x,E=C.y,D=C.z,w=P.x,N=P.y,I=P.z;return!(gw)&&!(lN)&&!(hI)},M.Intersects=function(C,P){return C.intersectsMinMax(P.minimumWorld,P.maximumWorld)},M.IntersectsSphere=function(C,P,m,c){var T=M.TmpVector3[0];return _.e.ClampToRef(m,C,P,T),_.e.DistanceSquared(m,T)<=c*c},M.IsCompletelyInFrustum=function(C,P){for(var m=0;m<6;++m)for(var c=P[m],T=0;T<8;++T)if(c.dotCoordinate(C[T])<0)return!1;return!0},M.IsInFrustum=function(C,P){for(var m=0;m<6;++m){for(var c=!0,T=P[m],A=0;A<8;++A)if(T.dotCoordinate(C[A])>=0){c=!1;break}if(c)return!1}return!0},M.TmpVector3=U.a.BuildArray(3,_.e.Zero),M}()},function(Ie,y,f){f.d(y,"a",function(){return _});var U=f(38),_=function(){function R(){}return R.SetImmediate=function(u){U.a.IsWindowObjectExist()&&window.setImmediate?window.setImmediate(u):setTimeout(u,1)},R}()},function(Ie,y,f){f.d(y,"a",function(){return R});var U=f(0),_=f(2),R=function(){function u(){this.previousWorldMatrices={},this.previousBones={}}return u.AddUniforms=function(M){M.push("previousWorld","previousViewProjection")},u.AddSamplers=function(M){},u.prototype.bindForSubMesh=function(M,C,P,m,c){C.prePassRenderer&&C.prePassRenderer.enabled&&C.prePassRenderer.getIndex(_.a.PREPASS_VELOCITY_TEXTURE_TYPE)!==-1&&(this.previousWorldMatrices[P.uniqueId]||(this.previousWorldMatrices[P.uniqueId]=U.a.Identity()),this.previousViewProjection||(this.previousViewProjection=C.getTransformMatrix()),M.setMatrix("previousWorld",this.previousWorldMatrices[P.uniqueId]),M.setMatrix("previousViewProjection",this.previousViewProjection),this.previousWorldMatrices[P.uniqueId]=m.clone(),this.previousViewProjection=C.getTransformMatrix().clone())},u}()},function(Ie,y,f){var U="lightFragmentDeclaration",_=`#ifdef LIGHT{X} +uniform vec4 vLightData{X}; +uniform vec4 vLightDiffuse{X}; +#ifdef SPECULARTERM +uniform vec4 vLightSpecular{X}; +#else +vec4 vLightSpecular{X}=vec4(0.); +#endif +#ifdef SHADOW{X} +#ifdef SHADOWCSM{X} +uniform mat4 lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}]; +uniform float viewFrustumZ{X}[SHADOWCSMNUM_CASCADES{X}]; +uniform float frustumLengths{X}[SHADOWCSMNUM_CASCADES{X}]; +uniform float cascadeBlendFactor{X}; +varying vec4 vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}]; +varying float vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}]; +varying vec4 vPositionFromCamera{X}; +#if defined(SHADOWPCSS{X}) +uniform highp sampler2DArrayShadow shadowSampler{X}; +uniform highp sampler2DArray depthSampler{X}; +uniform vec2 lightSizeUVCorrection{X}[SHADOWCSMNUM_CASCADES{X}]; +uniform float depthCorrection{X}[SHADOWCSMNUM_CASCADES{X}]; +uniform float penumbraDarkness{X}; +#elif defined(SHADOWPCF{X}) +uniform highp sampler2DArrayShadow shadowSampler{X}; +#else +uniform highp sampler2DArray shadowSampler{X}; +#endif +#ifdef SHADOWCSMDEBUG{X} +const vec3 vCascadeColorsMultiplier{X}[8]=vec3[8] +( +vec3 ( 1.5,0.0,0.0 ), +vec3 ( 0.0,1.5,0.0 ), +vec3 ( 0.0,0.0,5.5 ), +vec3 ( 1.5,0.0,5.5 ), +vec3 ( 1.5,1.5,0.0 ), +vec3 ( 1.0,1.0,1.0 ), +vec3 ( 0.0,1.0,5.5 ), +vec3 ( 0.5,3.5,0.75 ) +); +vec3 shadowDebug{X}; +#endif +#ifdef SHADOWCSMUSESHADOWMAXZ{X} +int index{X}=-1; +#else +int index{X}=SHADOWCSMNUM_CASCADES{X}-1; +#endif +float diff{X}=0.; +#elif defined(SHADOWCUBE{X}) +uniform samplerCube shadowSampler{X}; +#else +varying vec4 vPositionFromLight{X}; +varying float vDepthMetric{X}; +#if defined(SHADOWPCSS{X}) +uniform highp sampler2DShadow shadowSampler{X}; +uniform highp sampler2D depthSampler{X}; +#elif defined(SHADOWPCF{X}) +uniform highp sampler2DShadow shadowSampler{X}; +#else +uniform sampler2D shadowSampler{X}; +#endif +uniform mat4 lightMatrix{X}; +#endif +uniform vec4 shadowsInfo{X}; +uniform vec2 depthValues{X}; +#endif +#ifdef SPOTLIGHT{X} +uniform vec4 vLightDirection{X}; +uniform vec4 vLightFalloff{X}; +#elif defined(POINTLIGHT{X}) +uniform vec4 vLightFalloff{X}; +#elif defined(HEMILIGHT{X}) +uniform vec3 vLightGround{X}; +#endif +#ifdef PROJECTEDLIGHTTEXTURE{X} +uniform mat4 textureProjectionMatrix{X}; +uniform sampler2D projectionLightSampler{X}; +#endif +#endif`;f(5).a.IncludesShadersStore[U]=_},function(Ie,y,f){var U="lightUboDeclaration",_=`#ifdef LIGHT{X} +uniform Light{X} +{ +vec4 vLightData; +vec4 vLightDiffuse; +vec4 vLightSpecular; +#ifdef SPOTLIGHT{X} +vec4 vLightDirection; +vec4 vLightFalloff; +#elif defined(POINTLIGHT{X}) +vec4 vLightFalloff; +#elif defined(HEMILIGHT{X}) +vec3 vLightGround; +#endif +vec4 shadowsInfo; +vec2 depthValues; +} light{X}; +#ifdef PROJECTEDLIGHTTEXTURE{X} +uniform mat4 textureProjectionMatrix{X}; +uniform sampler2D projectionLightSampler{X}; +#endif +#ifdef SHADOW{X} +#ifdef SHADOWCSM{X} +uniform mat4 lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}]; +uniform float viewFrustumZ{X}[SHADOWCSMNUM_CASCADES{X}]; +uniform float frustumLengths{X}[SHADOWCSMNUM_CASCADES{X}]; +uniform float cascadeBlendFactor{X}; +varying vec4 vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}]; +varying float vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}]; +varying vec4 vPositionFromCamera{X}; +#if defined(SHADOWPCSS{X}) +uniform highp sampler2DArrayShadow shadowSampler{X}; +uniform highp sampler2DArray depthSampler{X}; +uniform vec2 lightSizeUVCorrection{X}[SHADOWCSMNUM_CASCADES{X}]; +uniform float depthCorrection{X}[SHADOWCSMNUM_CASCADES{X}]; +uniform float penumbraDarkness{X}; +#elif defined(SHADOWPCF{X}) +uniform highp sampler2DArrayShadow shadowSampler{X}; +#else +uniform highp sampler2DArray shadowSampler{X}; +#endif +#ifdef SHADOWCSMDEBUG{X} +const vec3 vCascadeColorsMultiplier{X}[8]=vec3[8] +( +vec3 ( 1.5,0.0,0.0 ), +vec3 ( 0.0,1.5,0.0 ), +vec3 ( 0.0,0.0,5.5 ), +vec3 ( 1.5,0.0,5.5 ), +vec3 ( 1.5,1.5,0.0 ), +vec3 ( 1.0,1.0,1.0 ), +vec3 ( 0.0,1.0,5.5 ), +vec3 ( 0.5,3.5,0.75 ) +); +vec3 shadowDebug{X}; +#endif +#ifdef SHADOWCSMUSESHADOWMAXZ{X} +int index{X}=-1; +#else +int index{X}=SHADOWCSMNUM_CASCADES{X}-1; +#endif +float diff{X}=0.; +#elif defined(SHADOWCUBE{X}) +uniform samplerCube shadowSampler{X}; +#else +varying vec4 vPositionFromLight{X}; +varying float vDepthMetric{X}; +#if defined(SHADOWPCSS{X}) +uniform highp sampler2DShadow shadowSampler{X}; +uniform highp sampler2D depthSampler{X}; +#elif defined(SHADOWPCF{X}) +uniform highp sampler2DShadow shadowSampler{X}; +#else +uniform sampler2D shadowSampler{X}; +#endif +uniform mat4 lightMatrix{X}; +#endif +#endif +#endif`;f(5).a.IncludesShadersStore[U]=_},function(Ie,y,f){var U="imageProcessingDeclaration",_=`#ifdef EXPOSURE +uniform float exposureLinear; +#endif +#ifdef CONTRAST +uniform float contrast; +#endif +#ifdef VIGNETTE +uniform vec2 vInverseScreenSize; +uniform vec4 vignetteSettings1; +uniform vec4 vignetteSettings2; +#endif +#ifdef COLORCURVES +uniform vec4 vCameraColorCurveNegative; +uniform vec4 vCameraColorCurveNeutral; +uniform vec4 vCameraColorCurvePositive; +#endif +#ifdef COLORGRADING +#ifdef COLORGRADING3D +uniform highp sampler3D txColorTransform; +#else +uniform sampler2D txColorTransform; +#endif +uniform vec4 colorTransformSettings; +#endif`;f(5).a.IncludesShadersStore[U]=_},function(Ie,y,f){var U="imageProcessingFunctions",_=`#if defined(COLORGRADING) && !defined(COLORGRADING3D) + +#define inline +vec3 sampleTexture3D(sampler2D colorTransform,vec3 color,vec2 sampler3dSetting) +{ +float sliceSize=2.0*sampler3dSetting.x; +#ifdef SAMPLER3DGREENDEPTH +float sliceContinuous=(color.g-sampler3dSetting.x)*sampler3dSetting.y; +#else +float sliceContinuous=(color.b-sampler3dSetting.x)*sampler3dSetting.y; +#endif +float sliceInteger=floor(sliceContinuous); + + +float sliceFraction=sliceContinuous-sliceInteger; +#ifdef SAMPLER3DGREENDEPTH +vec2 sliceUV=color.rb; +#else +vec2 sliceUV=color.rg; +#endif +sliceUV.x*=sliceSize; +sliceUV.x+=sliceInteger*sliceSize; +sliceUV=saturate(sliceUV); +vec4 slice0Color=texture2D(colorTransform,sliceUV); +sliceUV.x+=sliceSize; +sliceUV=saturate(sliceUV); +vec4 slice1Color=texture2D(colorTransform,sliceUV); +vec3 result=mix(slice0Color.rgb,slice1Color.rgb,sliceFraction); +#ifdef SAMPLER3DBGRMAP +color.rgb=result.rgb; +#else +color.rgb=result.bgr; +#endif +return color; +} +#endif +#ifdef TONEMAPPING_ACES + + + + + +const mat3 ACESInputMat=mat3( +vec3(0.59719,0.07600,0.02840), +vec3(0.35458,0.90834,0.13383), +vec3(0.04823,0.01566,0.83777) +); + +const mat3 ACESOutputMat=mat3( +vec3( 1.60475,-0.10208,-0.00327), +vec3(-0.53108,1.10813,-0.07276), +vec3(-0.07367,-0.00605,1.07602) +); +vec3 RRTAndODTFit(vec3 v) +{ +vec3 a=v*(v+0.0245786)-0.000090537; +vec3 b=v*(0.983729*v+0.4329510)+0.238081; +return a/b; +} +vec3 ACESFitted(vec3 color) +{ +color=ACESInputMat*color; + +color=RRTAndODTFit(color); +color=ACESOutputMat*color; + +color=saturate(color); +return color; +} +#endif +vec4 applyImageProcessing(vec4 result) { +#ifdef EXPOSURE +result.rgb*=exposureLinear; +#endif +#ifdef VIGNETTE + +vec2 viewportXY=gl_FragCoord.xy*vInverseScreenSize; +viewportXY=viewportXY*2.0-1.0; +vec3 vignetteXY1=vec3(viewportXY*vignetteSettings1.xy+vignetteSettings1.zw,1.0); +float vignetteTerm=dot(vignetteXY1,vignetteXY1); +float vignette=pow(vignetteTerm,vignetteSettings2.w); + +vec3 vignetteColor=vignetteSettings2.rgb; +#ifdef VIGNETTEBLENDMODEMULTIPLY +vec3 vignetteColorMultiplier=mix(vignetteColor,vec3(1,1,1),vignette); +result.rgb*=vignetteColorMultiplier; +#endif +#ifdef VIGNETTEBLENDMODEOPAQUE +result.rgb=mix(vignetteColor,result.rgb,vignette); +#endif +#endif +#ifdef TONEMAPPING +#ifdef TONEMAPPING_ACES +result.rgb=ACESFitted(result.rgb); +#else +const float tonemappingCalibration=1.590579; +result.rgb=1.0-exp2(-tonemappingCalibration*result.rgb); +#endif +#endif + +result.rgb=toGammaSpace(result.rgb); +result.rgb=saturate(result.rgb); +#ifdef CONTRAST + +vec3 resultHighContrast=result.rgb*result.rgb*(3.0-2.0*result.rgb); +if (contrast<1.0) { + +result.rgb=mix(vec3(0.5,0.5,0.5),result.rgb,contrast); +} else { + +result.rgb=mix(result.rgb,resultHighContrast,contrast-1.0); +} +#endif + +#ifdef COLORGRADING +vec3 colorTransformInput=result.rgb*colorTransformSettings.xxx+colorTransformSettings.yyy; +#ifdef COLORGRADING3D +vec3 colorTransformOutput=texture(txColorTransform,colorTransformInput).rgb; +#else +vec3 colorTransformOutput=sampleTexture3D(txColorTransform,colorTransformInput,colorTransformSettings.yz).rgb; +#endif +result.rgb=mix(result.rgb,colorTransformOutput,colorTransformSettings.www); +#endif +#ifdef COLORCURVES + +float luma=getLuminance(result.rgb); +vec2 curveMix=clamp(vec2(luma*3.0-1.5,luma*-3.0+1.5),vec2(0.0),vec2(1.0)); +vec4 colorCurve=vCameraColorCurveNeutral+curveMix.x*vCameraColorCurvePositive-curveMix.y*vCameraColorCurveNegative; +result.rgb*=colorCurve.rgb; +result.rgb=mix(vec3(luma),result.rgb,colorCurve.a); +#endif +return result; +}`;f(5).a.IncludesShadersStore[U]=_},function(Ie,y,f){var U="clipPlaneFragment",_=`#ifdef CLIPPLANE +if (fClipDistance>0.0) +{ +discard; +} +#endif +#ifdef CLIPPLANE2 +if (fClipDistance2>0.0) +{ +discard; +} +#endif +#ifdef CLIPPLANE3 +if (fClipDistance3>0.0) +{ +discard; +} +#endif +#ifdef CLIPPLANE4 +if (fClipDistance4>0.0) +{ +discard; +} +#endif +#ifdef CLIPPLANE5 +if (fClipDistance5>0.0) +{ +discard; +} +#endif +#ifdef CLIPPLANE6 +if (fClipDistance6>0.0) +{ +discard; +} +#endif`;f(5).a.IncludesShadersStore[U]=_},function(Ie,y,f){var U="clipPlaneVertex",_=`#ifdef CLIPPLANE +fClipDistance=dot(worldPos,vClipPlane); +#endif +#ifdef CLIPPLANE2 +fClipDistance2=dot(worldPos,vClipPlane2); +#endif +#ifdef CLIPPLANE3 +fClipDistance3=dot(worldPos,vClipPlane3); +#endif +#ifdef CLIPPLANE4 +fClipDistance4=dot(worldPos,vClipPlane4); +#endif +#ifdef CLIPPLANE5 +fClipDistance5=dot(worldPos,vClipPlane5); +#endif +#ifdef CLIPPLANE6 +fClipDistance6=dot(worldPos,vClipPlane6); +#endif`;f(5).a.IncludesShadersStore[U]=_},function(Ie,y,f){f.d(y,"a",function(){return U});var U=function(){function _(){this._count=0,this._data={}}return _.prototype.copyFrom=function(R){var u=this;this.clear(),R.forEach(function(M,C){return u.add(M,C)})},_.prototype.get=function(R){var u=this._data[R];if(u!==void 0)return u},_.prototype.getOrAddWithFactory=function(R,u){var M=this.get(R);return M!==void 0||(M=u(R))&&this.add(R,M),M},_.prototype.getOrAdd=function(R,u){var M=this.get(R);return M!==void 0?M:(this.add(R,u),u)},_.prototype.contains=function(R){return this._data[R]!==void 0},_.prototype.add=function(R,u){return this._data[R]===void 0&&(this._data[R]=u,++this._count,!0)},_.prototype.set=function(R,u){return this._data[R]!==void 0&&(this._data[R]=u,!0)},_.prototype.getAndRemove=function(R){var u=this.get(R);return u!==void 0?(delete this._data[R],--this._count,u):null},_.prototype.remove=function(R){return!!this.contains(R)&&(delete this._data[R],--this._count,!0)},_.prototype.clear=function(){this._data={},this._count=0},Object.defineProperty(_.prototype,"count",{get:function(){return this._count},enumerable:!1,configurable:!0}),_.prototype.forEach=function(R){for(var u in this._data)R(u,this._data[u])},_.prototype.first=function(R){for(var u in this._data){var M=R(u,this._data[u]);if(M)return M}return null},_}()},function(Ie,y,f){f.d(y,"a",function(){return R});var U=f(44),_=f(0),R=function(){function u(M,C,P){this.center=_.e.Zero(),this.centerWorld=_.e.Zero(),this.minimum=_.e.Zero(),this.maximum=_.e.Zero(),this.reConstruct(M,C,P)}return u.prototype.reConstruct=function(M,C,P){this.minimum.copyFrom(M),this.maximum.copyFrom(C);var m=_.e.Distance(M,C);C.addToRef(M,this.center).scaleInPlace(.5),this.radius=.5*m,this._update(P||_.a.IdentityReadOnly)},u.prototype.scale=function(M){var C=this.radius*M,P=u.TmpVector3,m=P[0].setAll(C),c=this.center.subtractToRef(m,P[1]),T=this.center.addToRef(m,P[2]);return this.reConstruct(c,T,this._worldMatrix),this},u.prototype.getWorldMatrix=function(){return this._worldMatrix},u.prototype._update=function(M){if(M.isIdentity())this.centerWorld.copyFrom(this.center),this.radiusWorld=this.radius;else{_.e.TransformCoordinatesToRef(this.center,M,this.centerWorld);var C=u.TmpVector3[0];_.e.TransformNormalFromFloatsToRef(1,1,1,M,C),this.radiusWorld=Math.max(Math.abs(C.x),Math.abs(C.y),Math.abs(C.z))*this.radius}},u.prototype.isInFrustum=function(M){for(var C=this.centerWorld,P=this.radiusWorld,m=0;m<6;m++)if(M[m].dotCoordinate(C)<=-P)return!1;return!0},u.prototype.isCenterInFrustum=function(M){for(var C=this.centerWorld,P=0;P<6;P++)if(M[P].dotCoordinate(C)<0)return!1;return!0},u.prototype.intersectsPoint=function(M){var C=_.e.DistanceSquared(this.centerWorld,M);return!(this.radiusWorld*this.radiusWorld=C&&u===0?R instanceof Array?this._gl.bufferSubData(this._gl.ARRAY_BUFFER,u,new Float32Array(R)):this._gl.bufferSubData(this._gl.ARRAY_BUFFER,u,R):R instanceof Array?this._gl.bufferSubData(this._gl.ARRAY_BUFFER,0,new Float32Array(R).subarray(u,u+M)):(R=R instanceof ArrayBuffer?new Uint8Array(R,u,M):new Uint8Array(R.buffer,R.byteOffset+u,M),this._gl.bufferSubData(this._gl.ARRAY_BUFFER,0,R)),this._resetVertexBufferBinding()}},function(Ie,y,f){var U="fogFragmentDeclaration",_=`#ifdef FOG +#define FOGMODE_NONE 0. +#define FOGMODE_EXP 1. +#define FOGMODE_EXP2 2. +#define FOGMODE_LINEAR 3. +#define E 2.71828 +uniform vec4 vFogInfos; +uniform vec3 vFogColor; +varying vec3 vFogDistance; +float CalcFogFactor() +{ +float fogCoeff=1.0; +float fogStart=vFogInfos.y; +float fogEnd=vFogInfos.z; +float fogDensity=vFogInfos.w; +float fogDistance=length(vFogDistance); +if (FOGMODE_LINEAR == vFogInfos.x) +{ +fogCoeff=(fogEnd-fogDistance)/(fogEnd-fogStart); +} +else if (FOGMODE_EXP == vFogInfos.x) +{ +fogCoeff=1.0/pow(E,fogDistance*fogDensity); +} +else if (FOGMODE_EXP2 == vFogInfos.x) +{ +fogCoeff=1.0/pow(E,fogDistance*fogDistance*fogDensity*fogDensity); +} +return clamp(fogCoeff,0.0,1.0); +} +#endif`;f(5).a.IncludesShadersStore[U]=_},function(Ie,y,f){var U=f(26),_=f(27);U.a.prototype.createDynamicTexture=function(R,u,M,C){var P=new _.a(this,_.b.Dynamic);return P.baseWidth=R,P.baseHeight=u,M&&(R=this.needPOTTextures?U.a.GetExponentOfTwo(R,this._caps.maxTextureSize):R,u=this.needPOTTextures?U.a.GetExponentOfTwo(u,this._caps.maxTextureSize):u),P.width=R,P.height=u,P.isReady=!1,P.generateMipMaps=M,P.samplingMode=C,this.updateTextureSamplingMode(C,P),this._internalTexturesCache.push(P),P},U.a.prototype.updateDynamicTexture=function(R,u,M,C,P,m){if(C===void 0&&(C=!1),m===void 0&&(m=!1),R){var c=this._gl,T=c.TEXTURE_2D,A=this._bindTextureDirectly(T,R,!0,m);this._unpackFlipY(M===void 0?R.invertY:M),C&&c.pixelStorei(c.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1);var S=this._getWebGLTextureType(R.type),g=this._getInternalFormat(P||R.format),l=this._getRGBABufferInternalSizedFormat(R.type,g);c.texImage2D(T,0,l,g,S,u),R.generateMipMaps&&c.generateMipmap(T),A||this._bindTextureDirectly(T,null),C&&c.pixelStorei(c.UNPACK_PREMULTIPLY_ALPHA_WEBGL,0),R.isReady=!0}}},function(Ie,y,f){f.r(y),f.d(y,"AbstractScene",function(){return U.a}),f.d(y,"AbstractActionManager",function(){return _.a}),f.d(y,"Action",function(){return P}),f.d(y,"ActionEvent",function(){return m.a}),f.d(y,"ActionManager",function(){return pe}),f.d(y,"Condition",function(){return T}),f.d(y,"ValueCondition",function(){return A}),f.d(y,"PredicateCondition",function(){return S}),f.d(y,"StateCondition",function(){return g}),f.d(y,"SwitchBooleanAction",function(){return v}),f.d(y,"SetStateAction",function(){return E}),f.d(y,"SetValueAction",function(){return D}),f.d(y,"IncrementValueAction",function(){return w}),f.d(y,"PlayAnimationAction",function(){return N}),f.d(y,"StopAnimationAction",function(){return I}),f.d(y,"DoNothingAction",function(){return V}),f.d(y,"CombineAction",function(){return X}),f.d(y,"ExecuteCodeAction",function(){return j}),f.d(y,"SetParentAction",function(){return ne}),f.d(y,"PlaySoundAction",function(){return ae}),f.d(y,"StopSoundAction",function(){return ee}),f.d(y,"InterpolateValueAction",function(){return H}),f.d(y,"Animatable",function(){return ke}),f.d(y,"_IAnimationState",function(){return Y}),f.d(y,"Animation",function(){return k}),f.d(y,"TargetedAnimation",function(){return We}),f.d(y,"AnimationGroup",function(){return je}),f.d(y,"AnimationPropertiesOverride",function(){return He}),f.d(y,"EasingFunction",function(){return Ge}),f.d(y,"CircleEase",function(){return nt}),f.d(y,"BackEase",function(){return $e}),f.d(y,"BounceEase",function(){return ct}),f.d(y,"CubicEase",function(){return st}),f.d(y,"ElasticEase",function(){return mt}),f.d(y,"ExponentialEase",function(){return St}),f.d(y,"PowerEase",function(){return wt}),f.d(y,"QuadraticEase",function(){return It}),f.d(y,"QuarticEase",function(){return Pt}),f.d(y,"QuinticEase",function(){return Ot}),f.d(y,"SineEase",function(){return on}),f.d(y,"BezierCurveEase",function(){return Zt}),f.d(y,"RuntimeAnimation",function(){return me}),f.d(y,"AnimationEvent",function(){return tn}),f.d(y,"AnimationKeyInterpolation",function(){return K}),f.d(y,"AnimationRange",function(){return G}),f.d(y,"KeepAssets",function(){return Pn}),f.d(y,"InstantiatedEntries",function(){return nn}),f.d(y,"AssetContainer",function(){return xn}),f.d(y,"Analyser",function(){return Cn}),f.d(y,"AudioEngine",function(){return dr}),f.d(y,"AudioSceneComponent",function(){return ti}),f.d(y,"Sound",function(){return ei}),f.d(y,"SoundTrack",function(){return No}),f.d(y,"WeightedSound",function(){return Mf}),f.d(y,"AutoRotationBehavior",function(){return _l}),f.d(y,"BouncingBehavior",function(){return ml}),f.d(y,"FramingBehavior",function(){return gl}),f.d(y,"AttachToBoxBehavior",function(){return If}),f.d(y,"FadeInOutBehavior",function(){return Df}),f.d(y,"MultiPointerScaleBehavior",function(){return Lf}),f.d(y,"PointerDragBehavior",function(){return vi.a}),f.d(y,"SixDofDragBehavior",function(){return vl}),f.d(y,"Bone",function(){return Be}),f.d(y,"BoneIKController",function(){return Nf}),f.d(y,"BoneLookController",function(){return wf}),f.d(y,"Skeleton",function(){return wo}),f.d(y,"ArcRotateCameraGamepadInput",function(){return ja}),f.d(y,"ArcRotateCameraKeyboardMoveInput",function(){return Ha}),f.d(y,"ArcRotateCameraMouseWheelInput",function(){return Wa}),f.d(y,"ArcRotateCameraPointersInput",function(){return Xa}),f.d(y,"ArcRotateCameraVRDeviceOrientationInput",function(){return Ya}),f.d(y,"FlyCameraKeyboardInput",function(){return Ka}),f.d(y,"FlyCameraMouseInput",function(){return Qa}),f.d(y,"FollowCameraKeyboardMoveInput",function(){return qa}),f.d(y,"FollowCameraMouseWheelInput",function(){return Za}),f.d(y,"FollowCameraPointersInput",function(){return Ja}),f.d(y,"FreeCameraDeviceOrientationInput",function(){return is}),f.d(y,"FreeCameraGamepadInput",function(){return rs}),f.d(y,"FreeCameraKeyboardMoveInput",function(){return $a}),f.d(y,"FreeCameraMouseInput",function(){return es}),f.d(y,"FreeCameraMouseWheelInput",function(){return ts}),f.d(y,"FreeCameraTouchInput",function(){return ns}),f.d(y,"FreeCameraVirtualJoystickInput",function(){return as}),f.d(y,"CameraInputTypes",function(){return un}),f.d(y,"CameraInputsManager",function(){return Zr}),f.d(y,"Camera",function(){return gt.a}),f.d(y,"TargetCamera",function(){return Li}),f.d(y,"FreeCamera",function(){return Yn}),f.d(y,"FreeCameraInputsManager",function(){return Jr}),f.d(y,"TouchCamera",function(){return ss}),f.d(y,"ArcRotateCamera",function(){return Zi}),f.d(y,"ArcRotateCameraInputsManager",function(){return Fo}),f.d(y,"DeviceOrientationCamera",function(){return Bo}),f.d(y,"FlyCamera",function(){return Uf}),f.d(y,"FlyCameraInputsManager",function(){return Pl}),f.d(y,"FollowCamera",function(){return Cl}),f.d(y,"ArcFollowCamera",function(){return Rl}),f.d(y,"FollowCameraInputsManager",function(){return xl}),f.d(y,"GamepadCamera",function(){return Uo}),f.d(y,"AnaglyphArcRotateCamera",function(){return Nl}),f.d(y,"AnaglyphFreeCamera",function(){return wl}),f.d(y,"AnaglyphGamepadCamera",function(){return Fl}),f.d(y,"AnaglyphUniversalCamera",function(){return Bl}),f.d(y,"StereoscopicArcRotateCamera",function(){return Ul}),f.d(y,"StereoscopicFreeCamera",function(){return Vl}),f.d(y,"StereoscopicGamepadCamera",function(){return kl}),f.d(y,"StereoscopicUniversalCamera",function(){return Gl}),f.d(y,"UniversalCamera",function(){return _r}),f.d(y,"VirtualJoysticksCamera",function(){return zl}),f.d(y,"VRCameraMetrics",function(){return mr}),f.d(y,"VRDeviceOrientationArcRotateCamera",function(){return Xl}),f.d(y,"VRDeviceOrientationFreeCamera",function(){return Vo}),f.d(y,"VRDeviceOrientationGamepadCamera",function(){return Yl}),f.d(y,"OnAfterEnteringVRObservableEvent",function(){return Kf}),f.d(y,"VRExperienceHelper",function(){return Zl}),f.d(y,"WebVRFreeCamera",function(){return Go}),f.d(y,"Collider",function(){return Jl}),f.d(y,"DefaultCollisionCoordinator",function(){return $l}),f.d(y,"PickingInfo",function(){return tr.a}),f.d(y,"IntersectionInfo",function(){return Qf.a}),f.d(y,"_MeshCollisionData",function(){return qf.a}),f.d(y,"BoundingBox",function(){return ms.a}),f.d(y,"BoundingInfo",function(){return Ui.a}),f.d(y,"BoundingSphere",function(){return eu.a}),f.d(y,"Octree",function(){return eo}),f.d(y,"OctreeBlock",function(){return tu}),f.d(y,"OctreeSceneComponent",function(){return Ts}),f.d(y,"Ray",function(){return dn.a}),f.d(y,"AxesViewer",function(){return nr.AxesViewer}),f.d(y,"BoneAxesViewer",function(){return nr.BoneAxesViewer}),f.d(y,"DebugLayerTab",function(){return nr.DebugLayerTab}),f.d(y,"DebugLayer",function(){return nr.DebugLayer}),f.d(y,"PhysicsViewer",function(){return nr.PhysicsViewer}),f.d(y,"RayHelper",function(){return nr.RayHelper}),f.d(y,"SkeletonViewer",function(){return nr.SkeletonViewer}),f.d(y,"DeviceInputSystem",function(){return nu}),f.d(y,"DeviceType",function(){return Kt}),f.d(y,"PointerInput",function(){return gs}),f.d(y,"DualShockInput",function(){return vs}),f.d(y,"XboxInput",function(){return bs}),f.d(y,"SwitchInput",function(){return ys}),f.d(y,"DeviceSource",function(){return iu}),f.d(y,"DeviceSourceManager",function(){return Zf}),f.d(y,"Constants",function(){return h.a}),f.d(y,"ThinEngine",function(){return Bt.a}),f.d(y,"Engine",function(){return Ue.a}),f.d(y,"EngineStore",function(){return te.a}),f.d(y,"NullEngineOptions",function(){return ru.b}),f.d(y,"NullEngine",function(){return ru.a}),f.d(y,"_OcclusionDataStorage",function(){return au}),f.d(y,"_forceTransformFeedbackToBundle",function(){return Jf}),f.d(y,"EngineView",function(){return $f}),f.d(y,"WebGLPipelineContext",function(){return tp.a}),f.d(y,"WebGL2ShaderProcessor",function(){return su.a}),f.d(y,"NativeEngine",function(){return ap}),f.d(y,"ShaderCodeInliner",function(){return Ss}),f.d(y,"PerformanceConfigurator",function(){return sp.a}),f.d(y,"KeyboardEventTypes",function(){return qi.a}),f.d(y,"KeyboardInfo",function(){return qi.b}),f.d(y,"KeyboardInfoPre",function(){return qi.c}),f.d(y,"PointerEventTypes",function(){return Tt.a}),f.d(y,"PointerInfoBase",function(){return Tt.c}),f.d(y,"PointerInfoPre",function(){return Tt.d}),f.d(y,"PointerInfo",function(){return Tt.b}),f.d(y,"ClipboardEventTypes",function(){return Wo}),f.d(y,"ClipboardInfo",function(){return cp}),f.d(y,"DaydreamController",function(){return Ps}),f.d(y,"GearVRController",function(){return xs}),f.d(y,"GenericController",function(){return Xo}),f.d(y,"OculusTouchController",function(){return Cs}),f.d(y,"PoseEnabledControllerType",function(){return ii}),f.d(y,"PoseEnabledControllerHelper",function(){return Ni}),f.d(y,"PoseEnabledController",function(){return pr}),f.d(y,"ViveController",function(){return hu}),f.d(y,"WebVRController",function(){return Fi}),f.d(y,"WindowsMotionController",function(){return Yo}),f.d(y,"XRWindowsMotionController",function(){return up}),f.d(y,"StickValues",function(){return Ff}),f.d(y,"Gamepad",function(){return hn}),f.d(y,"GenericPad",function(){return El}),f.d(y,"GamepadManager",function(){return Il}),f.d(y,"GamepadSystemSceneComponent",function(){return Dl}),f.d(y,"Xbox360Button",function(){return Rn}),f.d(y,"Xbox360Dpad",function(){return Ji}),f.d(y,"Xbox360Pad",function(){return Ol}),f.d(y,"DualShockButton",function(){return Hn}),f.d(y,"DualShockDpad",function(){return $i}),f.d(y,"DualShockPad",function(){return Ml}),f.d(y,"AxisDragGizmo",function(){return Ko.a}),f.d(y,"AxisScaleGizmo",function(){return io}),f.d(y,"BoundingBoxGizmo",function(){return du}),f.d(y,"Gizmo",function(){return Bn.a}),f.d(y,"GizmoManager",function(){return hp}),f.d(y,"PlaneRotationGizmo",function(){return Qo}),f.d(y,"PositionGizmo",function(){return pu}),f.d(y,"RotationGizmo",function(){return fu}),f.d(y,"ScaleGizmo",function(){return _u}),f.d(y,"LightGizmo",function(){return dp}),f.d(y,"CameraGizmo",function(){return pp}),f.d(y,"PlaneDragGizmo",function(){return qo}),f.d(y,"EnvironmentHelper",function(){return Ls}),f.d(y,"PhotoDome",function(){return xp}),f.d(y,"_forceSceneHelpersToBundle",function(){return g_}),f.d(y,"VideoDome",function(){return v_}),f.d(y,"EngineInstrumentation",function(){return b_}),f.d(y,"SceneInstrumentation",function(){return y_}),f.d(y,"_TimeToken",function(){return ou}),f.d(y,"EffectLayer",function(){return ho}),f.d(y,"EffectLayerSceneComponent",function(){return Du}),f.d(y,"GlowLayer",function(){return oa}),f.d(y,"HighlightLayer",function(){return Gs}),f.d(y,"Layer",function(){return R_}),f.d(y,"LayerSceneComponent",function(){return Nu}),f.d(y,"LensFlare",function(){return wu}),f.d(y,"LensFlareSystem",function(){return zs}),f.d(y,"LensFlareSystemSceneComponent",function(){return Fu}),f.d(y,"Light",function(){return Pi.a}),f.d(y,"ShadowLight",function(){return Zo}),f.d(y,"ShadowGenerator",function(){return kn}),f.d(y,"CascadedShadowGenerator",function(){return js}),f.d(y,"ShadowGeneratorSceneComponent",function(){return ju}),f.d(y,"DirectionalLight",function(){return Os}),f.d(y,"HemisphericLight",function(){return ko.a}),f.d(y,"PointLight",function(){return Hs}),f.d(y,"SpotLight",function(){return Ms}),f.d(y,"DefaultLoadingScreen",function(){return Hu}),f.d(y,"_BabylonLoaderRegistered",function(){return Y_}),f.d(y,"BabylonFileLoaderConfiguration",function(){return ua}),f.d(y,"SceneLoaderAnimationGroupLoadingMode",function(){return Si}),f.d(y,"SceneLoader",function(){return Ut}),f.d(y,"SceneLoaderFlags",function(){return Ai.a}),f.d(y,"BackgroundMaterial",function(){return oo}),f.d(y,"ColorCurves",function(){return Q_.a}),f.d(y,"EffectFallbacks",function(){return Sr.a}),f.d(y,"Effect",function(){return ze.a}),f.d(y,"FresnelParameters",function(){return nh}),f.d(y,"ImageProcessingConfigurationDefines",function(){return vn.b}),f.d(y,"ImageProcessingConfiguration",function(){return vn.a}),f.d(y,"Material",function(){return Ht.a}),f.d(y,"MaterialDefines",function(){return $o.a}),f.d(y,"ThinMaterialHelper",function(){return ih.a}),f.d(y,"MaterialHelper",function(){return et.a}),f.d(y,"MultiMaterial",function(){return ir.a}),f.d(y,"PBRMaterialDefines",function(){return ws}),f.d(y,"PBRBaseMaterial",function(){return pn}),f.d(y,"PBRBaseSimpleMaterial",function(){return Qs}),f.d(y,"PBRMaterial",function(){return co}),f.d(y,"PBRMetallicRoughnessMaterial",function(){return rh}),f.d(y,"PBRSpecularGlossinessMaterial",function(){return oh}),f.d(y,"PushMaterial",function(){return ea.a}),f.d(y,"ShaderMaterial",function(){return ha.a}),f.d(y,"StandardMaterialDefines",function(){return Ft.b}),f.d(y,"StandardMaterial",function(){return Ft.a}),f.d(y,"BaseTexture",function(){return Wn.a}),f.d(y,"ColorGradingTexture",function(){return ah}),f.d(y,"CubeTexture",function(){return oi}),f.d(y,"DynamicTexture",function(){return bi.a}),f.d(y,"EquiRectangularCubeTexture",function(){return sh}),f.d(y,"HDRFiltering",function(){return Ku}),f.d(y,"HDRCubeTexture",function(){return sa}),f.d(y,"HtmlElementTexture",function(){return q_}),f.d(y,"InternalTextureSource",function(){return Ct.b}),f.d(y,"InternalTexture",function(){return Ct.a}),f.d(y,"_DDSTextureLoader",function(){return yu}),f.d(y,"_ENVTextureLoader",function(){return Tu}),f.d(y,"_KTXTextureLoader",function(){return Eu}),f.d(y,"_TGATextureLoader",function(){return ch}),f.d(y,"_BasisTextureLoader",function(){return lh}),f.d(y,"MirrorTexture",function(){return Ds}),f.d(y,"MultiRenderTarget",function(){return qs}),f.d(y,"TexturePacker",function(){return $_}),f.d(y,"TexturePackerFrame",function(){return Zs}),f.d(y,"CustomProceduralTexture",function(){return tm}),f.d(y,"NoiseProceduralTexture",function(){return hh}),f.d(y,"ProceduralTexture",function(){return _o}),f.d(y,"ProceduralTextureSceneComponent",function(){return uh}),f.d(y,"RawCubeTexture",function(){return im}),f.d(y,"RawTexture",function(){return ni}),f.d(y,"RawTexture2DArray",function(){return rm}),f.d(y,"RawTexture3D",function(){return om}),f.d(y,"RefractionTexture",function(){return am}),f.d(y,"RenderTargetTexture",function(){return sn}),f.d(y,"Texture",function(){return we.a}),f.d(y,"VideoTexture",function(){return Iu}),f.d(y,"UniformBuffer",function(){return jl.a}),f.d(y,"MaterialFlags",function(){return ut.a}),f.d(y,"NodeMaterialBlockTargets",function(){return Ce}),f.d(y,"NodeMaterialBlockConnectionPointTypes",function(){return le}),f.d(y,"NodeMaterialBlockConnectionPointMode",function(){return gn}),f.d(y,"NodeMaterialSystemValues",function(){return bt}),f.d(y,"NodeMaterialModes",function(){return Mn}),f.d(y,"NodeMaterialConnectionPointCompatibilityStates",function(){return ci}),f.d(y,"NodeMaterialConnectionPointDirection",function(){return Tn}),f.d(y,"NodeMaterialConnectionPoint",function(){return fa}),f.d(y,"NodeMaterialBlock",function(){return pt}),f.d(y,"NodeMaterialDefines",function(){return bo}),f.d(y,"NodeMaterial",function(){return va}),f.d(y,"VertexOutputBlock",function(){return mo}),f.d(y,"BonesBlock",function(){return mh}),f.d(y,"InstancesBlock",function(){return gh}),f.d(y,"MorphTargetsBlock",function(){return vh}),f.d(y,"LightInformationBlock",function(){return bh}),f.d(y,"FragmentOutputBlock",function(){return Lr}),f.d(y,"ImageProcessingBlock",function(){return yh}),f.d(y,"PerturbNormalBlock",function(){return Th}),f.d(y,"DiscardBlock",function(){return Eh}),f.d(y,"FrontFacingBlock",function(){return Sh}),f.d(y,"DerivativeBlock",function(){return Ah}),f.d(y,"FragCoordBlock",function(){return Ph}),f.d(y,"ScreenSizeBlock",function(){return xh}),f.d(y,"FogBlock",function(){return Ch}),f.d(y,"LightBlock",function(){return Rh}),f.d(y,"TextureBlock",function(){return Oh}),f.d(y,"ReflectionTextureBlock",function(){return Mh}),f.d(y,"CurrentScreenBlock",function(){return $s}),f.d(y,"InputBlock",function(){return At}),f.d(y,"AnimatedInputBlockTypes",function(){return zi}),f.d(y,"MultiplyBlock",function(){return _a}),f.d(y,"AddBlock",function(){return Ih}),f.d(y,"ScaleBlock",function(){return Dh}),f.d(y,"ClampBlock",function(){return Lh}),f.d(y,"CrossBlock",function(){return Nh}),f.d(y,"DotBlock",function(){return wh}),f.d(y,"TransformBlock",function(){return pa}),f.d(y,"RemapBlock",function(){return ic}),f.d(y,"NormalizeBlock",function(){return Fh}),f.d(y,"TrigonometryBlockOperations",function(){return rn}),f.d(y,"TrigonometryBlock",function(){return uc}),f.d(y,"ColorMergerBlock",function(){return Bh}),f.d(y,"VectorMergerBlock",function(){return go}),f.d(y,"ColorSplitterBlock",function(){return lc}),f.d(y,"VectorSplitterBlock",function(){return Uh}),f.d(y,"LerpBlock",function(){return Vh}),f.d(y,"DivideBlock",function(){return kh}),f.d(y,"SubtractBlock",function(){return Gh}),f.d(y,"StepBlock",function(){return zh}),f.d(y,"OneMinusBlock",function(){return fc}),f.d(y,"ViewDirectionBlock",function(){return pc}),f.d(y,"FresnelBlock",function(){return jh}),f.d(y,"MaxBlock",function(){return Hh}),f.d(y,"MinBlock",function(){return Wh}),f.d(y,"DistanceBlock",function(){return Xh}),f.d(y,"LengthBlock",function(){return Yh}),f.d(y,"NegateBlock",function(){return Kh}),f.d(y,"PowBlock",function(){return Qh}),f.d(y,"RandomNumberBlock",function(){return qh}),f.d(y,"ArcTan2Block",function(){return Zh}),f.d(y,"SmoothStepBlock",function(){return Jh}),f.d(y,"ReciprocalBlock",function(){return $h}),f.d(y,"ReplaceColorBlock",function(){return ed}),f.d(y,"PosterizeBlock",function(){return td}),f.d(y,"WaveBlockKind",function(){return rr}),f.d(y,"WaveBlock",function(){return nd}),f.d(y,"GradientBlockColorStep",function(){return ba}),f.d(y,"GradientBlock",function(){return id}),f.d(y,"NLerpBlock",function(){return rd}),f.d(y,"WorleyNoise3DBlock",function(){return od}),f.d(y,"SimplexPerlin3DBlock",function(){return ad}),f.d(y,"NormalBlendBlock",function(){return sd}),f.d(y,"Rotate2dBlock",function(){return cd}),f.d(y,"ReflectBlock",function(){return ld}),f.d(y,"RefractBlock",function(){return ud}),f.d(y,"DesaturateBlock",function(){return hd}),f.d(y,"PBRMetallicRoughnessBlock",function(){return dd}),f.d(y,"SheenBlock",function(){return _c}),f.d(y,"AnisotropyBlock",function(){return mc}),f.d(y,"ReflectionBlock",function(){return gc}),f.d(y,"ClearCoatBlock",function(){return ya}),f.d(y,"RefractionBlock",function(){return vc}),f.d(y,"SubSurfaceBlock",function(){return Ta}),f.d(y,"ParticleTextureBlock",function(){return ec}),f.d(y,"ParticleRampGradientBlock",function(){return tc}),f.d(y,"ParticleBlendMultiplyBlock",function(){return nc}),f.d(y,"ModBlock",function(){return fd}),f.d(y,"NodeMaterialOptimizer",function(){return hm}),f.d(y,"PropertyTypeForEdition",function(){return Lt}),f.d(y,"editableInPropertyPage",function(){return Vt}),f.d(y,"EffectRenderer",function(){return Xu}),f.d(y,"EffectWrapper",function(){return Yu}),f.d(y,"ShadowDepthWrapper",function(){return pm}),f.d(y,"Scalar",function(){return $.a}),f.d(y,"extractMinAndMaxIndexed",function(){return pd.b}),f.d(y,"extractMinAndMax",function(){return pd.a}),f.d(y,"Space",function(){return ye.c}),f.d(y,"Axis",function(){return ye.a}),f.d(y,"Coordinate",function(){return ye.b}),f.d(y,"Color3",function(){return M.a}),f.d(y,"Color4",function(){return M.b}),f.d(y,"TmpColors",function(){return M.c}),f.d(y,"ToGammaSpace",function(){return Gt.b}),f.d(y,"ToLinearSpace",function(){return Gt.c}),f.d(y,"Epsilon",function(){return Gt.a}),f.d(y,"Frustum",function(){return Wl.a}),f.d(y,"Orientation",function(){return Qe.e}),f.d(y,"BezierCurve",function(){return Qe.c}),f.d(y,"Angle",function(){return Qe.a}),f.d(y,"Arc2",function(){return Qe.b}),f.d(y,"Path2",function(){return Qe.f}),f.d(y,"Path3D",function(){return Qe.g}),f.d(y,"Curve3",function(){return Qe.d}),f.d(y,"Plane",function(){return vr.a}),f.d(y,"Size",function(){return oe.a}),f.d(y,"Vector2",function(){return u.d}),f.d(y,"Vector3",function(){return u.e}),f.d(y,"Vector4",function(){return u.f}),f.d(y,"Quaternion",function(){return u.b}),f.d(y,"Matrix",function(){return u.a}),f.d(y,"TmpVectors",function(){return u.c}),f.d(y,"PositionNormalVertex",function(){return Is}),f.d(y,"PositionNormalTextureVertex",function(){return fp}),f.d(y,"Viewport",function(){return Kn.a}),f.d(y,"SphericalHarmonics",function(){return Es}),f.d(y,"SphericalPolynomial",function(){return no}),f.d(y,"AbstractMesh",function(){return Dt.a}),f.d(y,"Buffer",function(){return Oe.a}),f.d(y,"VertexBuffer",function(){return Oe.b}),f.d(y,"DracoCompression",function(){return mm}),f.d(y,"CSG",function(){return bm}),f.d(y,"Geometry",function(){return Ws.a}),f.d(y,"GroundMesh",function(){return jo}),f.d(y,"TrailMesh",function(){return ym}),f.d(y,"InstancedMesh",function(){return Tm.a}),f.d(y,"LinesMesh",function(){return To.b}),f.d(y,"InstancedLinesMesh",function(){return To.a}),f.d(y,"_CreationDataStorage",function(){return De.b}),f.d(y,"_InstancesBatch",function(){return De.c}),f.d(y,"Mesh",function(){return De.a}),f.d(y,"VertexData",function(){return dt.a}),f.d(y,"MeshBuilder",function(){return Am}),f.d(y,"SimplificationSettings",function(){return Pm}),f.d(y,"SimplificationQueue",function(){return yd}),f.d(y,"SimplificationType",function(){return Ao}),f.d(y,"QuadraticErrorSimplification",function(){return Ed}),f.d(y,"SimplicationQueueSceneComponent",function(){return Sd}),f.d(y,"Polygon",function(){return Sm}),f.d(y,"PolygonMeshBuilder",function(){return vd}),f.d(y,"SubMesh",function(){return yo.a}),f.d(y,"MeshLODLevel",function(){return Om.a}),f.d(y,"TransformNode",function(){return Er.a}),f.d(y,"BoxBuilder",function(){return Tr.a}),f.d(y,"TiledBoxBuilder",function(){return gd}),f.d(y,"DiscBuilder",function(){return Ea}),f.d(y,"RibbonBuilder",function(){return Eo.a}),f.d(y,"SphereBuilder",function(){return Un.a}),f.d(y,"HemisphereBuilder",function(){return Jo}),f.d(y,"CylinderBuilder",function(){return fi.a}),f.d(y,"TorusBuilder",function(){return gr}),f.d(y,"TorusKnotBuilder",function(){return Tc}),f.d(y,"LinesBuilder",function(){return cn.a}),f.d(y,"PolygonBuilder",function(){return So}),f.d(y,"ShapeBuilder",function(){return la.a}),f.d(y,"LatheBuilder",function(){return Sc}),f.d(y,"PlaneBuilder",function(){return Rs.a}),f.d(y,"TiledPlaneBuilder",function(){return bd}),f.d(y,"GroundBuilder",function(){return Bi}),f.d(y,"TubeBuilder",function(){return Ac}),f.d(y,"PolyhedronBuilder",function(){return ro}),f.d(y,"IcoSphereBuilder",function(){return Pc}),f.d(y,"DecalBuilder",function(){return xc}),f.d(y,"CapsuleBuilder",function(){return Cc}),f.d(y,"DataBuffer",function(){return cu.a}),f.d(y,"WebGLDataBuffer",function(){return Mm.a}),f.d(y,"MorphTarget",function(){return Qu}),f.d(y,"MorphTargetManager",function(){return ca}),f.d(y,"RecastJSPlugin",function(){return Im}),f.d(y,"RecastJSCrowd",function(){return Ad}),f.d(y,"Node",function(){return Q.a}),f.d(y,"Database",function(){return Pd}),f.d(y,"BaseParticleSystem",function(){return vo}),f.d(y,"BoxParticleEmitter",function(){return Nr}),f.d(y,"ConeParticleEmitter",function(){return rc}),f.d(y,"CylinderParticleEmitter",function(){return ma}),f.d(y,"CylinderDirectedParticleEmitter",function(){return oc}),f.d(y,"HemisphericParticleEmitter",function(){return ac}),f.d(y,"PointParticleEmitter",function(){return sc}),f.d(y,"SphereParticleEmitter",function(){return ga}),f.d(y,"SphereDirectedParticleEmitter",function(){return cc}),f.d(y,"CustomParticleEmitter",function(){return wr}),f.d(y,"MeshParticleEmitter",function(){return ph}),f.d(y,"GPUParticleSystem",function(){return or}),f.d(y,"Particle",function(){return Cd}),f.d(y,"ParticleHelper",function(){return Vm}),f.d(y,"ParticleSystem",function(){return ln}),f.d(y,"ParticleSystemSet",function(){return Sa}),f.d(y,"SolidParticle",function(){return Mc}),f.d(y,"ModelShape",function(){return Ic}),f.d(y,"DepthSortedParticle",function(){return Rd}),f.d(y,"SolidParticleVertex",function(){return Od}),f.d(y,"SolidParticleSystem",function(){return km}),f.d(y,"CloudPoint",function(){return Md}),f.d(y,"PointsGroup",function(){return Aa}),f.d(y,"PointColor",function(){return En}),f.d(y,"PointsCloudSystem",function(){return Gm}),f.d(y,"SubEmitterType",function(){return Fr}),f.d(y,"SubEmitter",function(){return Po}),f.d(y,"PhysicsEngine",function(){return Ir}),f.d(y,"PhysicsEngineSceneComponent",function(){return Id}),f.d(y,"PhysicsHelper",function(){return zm}),f.d(y,"PhysicsRadialExplosionEventOptions",function(){return Ur}),f.d(y,"PhysicsUpdraftEventOptions",function(){return Dc}),f.d(y,"PhysicsVortexEventOptions",function(){return Lc}),f.d(y,"PhysicsRadialImpulseFalloff",function(){return xo}),f.d(y,"PhysicsUpdraftMode",function(){return Br}),f.d(y,"PhysicsImpostor",function(){return xt.a}),f.d(y,"PhysicsJoint",function(){return en.e}),f.d(y,"DistanceJoint",function(){return en.a}),f.d(y,"MotorEnabledJoint",function(){return en.d}),f.d(y,"HingeJoint",function(){return en.c}),f.d(y,"Hinge2Joint",function(){return en.b}),f.d(y,"CannonJSPlugin",function(){return Ks}),f.d(y,"AmmoJSPlugin",function(){return Zu}),f.d(y,"OimoJSPlugin",function(){return qu}),f.d(y,"AnaglyphPostProcess",function(){return ls}),f.d(y,"BlackAndWhitePostProcess",function(){return Ld}),f.d(y,"BloomEffect",function(){return Fc}),f.d(y,"BloomMergePostProcess",function(){return wc}),f.d(y,"BlurPostProcess",function(){return _n}),f.d(y,"ChromaticAberrationPostProcess",function(){return Bc}),f.d(y,"CircleOfConfusionPostProcess",function(){return Uc}),f.d(y,"ColorCorrectionPostProcess",function(){return Nd}),f.d(y,"ConvolutionPostProcess",function(){return wd}),f.d(y,"DepthOfFieldBlurPostProcess",function(){return Pa}),f.d(y,"DepthOfFieldEffectBlurLevel",function(){return ar}),f.d(y,"DepthOfFieldEffect",function(){return Vc}),f.d(y,"DepthOfFieldMergePostProcessOptions",function(){return eg}),f.d(y,"DepthOfFieldMergePostProcess",function(){return Fd}),f.d(y,"DisplayPassPostProcess",function(){return Bd}),f.d(y,"ExtractHighlightsPostProcess",function(){return Nc}),f.d(y,"FilterPostProcess",function(){return Ud}),f.d(y,"FxaaPostProcess",function(){return Co}),f.d(y,"GrainPostProcess",function(){return kc}),f.d(y,"HighlightsPostProcess",function(){return sg}),f.d(y,"ImageProcessingPostProcess",function(){return zo}),f.d(y,"MotionBlurPostProcess",function(){return Gc}),f.d(y,"PassPostProcess",function(){return wi}),f.d(y,"PassCubePostProcess",function(){return zf}),f.d(y,"PostProcess",function(){return _t}),f.d(y,"PostProcessManager",function(){return hs.a}),f.d(y,"RefractionPostProcess",function(){return kd}),f.d(y,"DefaultRenderingPipeline",function(){return jd}),f.d(y,"LensRenderingPipeline",function(){return mg}),f.d(y,"SSAO2RenderingPipeline",function(){return Hd}),f.d(y,"SSAORenderingPipeline",function(){return Tg}),f.d(y,"StandardRenderingPipeline",function(){return Wd}),f.d(y,"PostProcessRenderEffect",function(){return Rt}),f.d(y,"PostProcessRenderPipeline",function(){return Vr}),f.d(y,"PostProcessRenderPipelineManager",function(){return Gd}),f.d(y,"PostProcessRenderPipelineManagerSceneComponent",function(){return zd}),f.d(y,"SharpenPostProcess",function(){return zc}),f.d(y,"StereoscopicInterlacePostProcessI",function(){return xg}),f.d(y,"StereoscopicInterlacePostProcess",function(){return Cg}),f.d(y,"TonemappingOperator",function(){return sr}),f.d(y,"TonemapPostProcess",function(){return Og}),f.d(y,"VolumetricLightScatteringPostProcess",function(){return Xd}),f.d(y,"VRDistortionCorrectionPostProcess",function(){return us}),f.d(y,"VRMultiviewToSingleviewPostProcess",function(){return ds}),f.d(y,"ScreenSpaceReflectionPostProcess",function(){return jc}),f.d(y,"ScreenSpaceCurvaturePostProcess",function(){return Yd}),f.d(y,"ReflectionProbe",function(){return Ju}),f.d(y,"BoundingBoxRenderer",function(){return Kd}),f.d(y,"DepthRenderer",function(){return aa}),f.d(y,"DepthRendererSceneComponent",function(){return Qd}),f.d(y,"EdgesRenderer",function(){return Hc}),f.d(y,"LineEdgesRenderer",function(){return qd}),f.d(y,"GeometryBufferRenderer",function(){return li}),f.d(y,"GeometryBufferRendererSceneComponent",function(){return Vd}),f.d(y,"PrePassRenderer",function(){return Wc}),f.d(y,"PrePassRendererSceneComponent",function(){return Zd}),f.d(y,"SubSurfaceSceneComponent",function(){return $d}),f.d(y,"OutlineRenderer",function(){return ef}),f.d(y,"RenderingGroup",function(){return zg.a}),f.d(y,"RenderingGroupInfo",function(){return $r.a}),f.d(y,"RenderingManager",function(){return $r.b}),f.d(y,"UtilityLayerRenderer",function(){return On.a}),f.d(y,"Scene",function(){return _e.a}),f.d(y,"SceneComponentConstants",function(){return at.a}),f.d(y,"Stage",function(){return at.b}),f.d(y,"Sprite",function(){return tf}),f.d(y,"SpriteManager",function(){return rf}),f.d(y,"SpriteMap",function(){return Kg}),f.d(y,"SpritePackedManager",function(){return Qg}),f.d(y,"SpriteSceneComponent",function(){return nf}),f.d(y,"AlphaState",function(){return qg.a}),f.d(y,"DepthCullingState",function(){return Zg.a}),f.d(y,"StencilState",function(){return Jg.a}),f.d(y,"AndOrNotEvaluator",function(){return $g.a}),f.d(y,"AssetTaskState",function(){return _i}),f.d(y,"AbstractAssetTask",function(){return mi}),f.d(y,"AssetsProgressEvent",function(){return of}),f.d(y,"ContainerAssetTask",function(){return af}),f.d(y,"MeshAssetTask",function(){return sf}),f.d(y,"TextFileAssetTask",function(){return cf}),f.d(y,"BinaryFileAssetTask",function(){return lf}),f.d(y,"ImageAssetTask",function(){return uf}),f.d(y,"TextureAssetTask",function(){return hf}),f.d(y,"CubeTextureAssetTask",function(){return df}),f.d(y,"HDRCubeTextureAssetTask",function(){return ff}),f.d(y,"EquiRectangularCubeTextureAssetTask",function(){return pf}),f.d(y,"AssetsManager",function(){return ev}),f.d(y,"BasisTranscodeConfiguration",function(){return Z_}),f.d(y,"BasisTools",function(){return po}),f.d(y,"DDSTools",function(){return ki}),f.d(y,"expandToProperty",function(){return L.b}),f.d(y,"serialize",function(){return L.c}),f.d(y,"serializeAsTexture",function(){return L.m}),f.d(y,"serializeAsColor3",function(){return L.e}),f.d(y,"serializeAsFresnelParameters",function(){return L.h}),f.d(y,"serializeAsVector2",function(){return L.n}),f.d(y,"serializeAsVector3",function(){return L.o}),f.d(y,"serializeAsMeshReference",function(){return L.k}),f.d(y,"serializeAsColorCurves",function(){return L.g}),f.d(y,"serializeAsColor4",function(){return L.f}),f.d(y,"serializeAsImageProcessingConfiguration",function(){return L.i}),f.d(y,"serializeAsQuaternion",function(){return L.l}),f.d(y,"serializeAsMatrix",function(){return L.j}),f.d(y,"serializeAsCameraReference",function(){return L.d}),f.d(y,"SerializationHelper",function(){return L.a}),f.d(y,"Deferred",function(){return tv}),f.d(y,"EnvironmentTextureTools",function(){return Ei}),f.d(y,"MeshExploder",function(){return nv}),f.d(y,"FilesInput",function(){return iv}),f.d(y,"CubeMapToSphericalPolynomialTools",function(){return Ho}),f.d(y,"HDRTools",function(){return Wu}),f.d(y,"PanoramaToCubeMapTools",function(){return Xs}),f.d(y,"KhronosTextureContainer",function(){return ra}),f.d(y,"EventState",function(){return R.a}),f.d(y,"Observer",function(){return R.d}),f.d(y,"MultiObserver",function(){return R.b}),f.d(y,"Observable",function(){return R.c}),f.d(y,"PerformanceMonitor",function(){return _f.a}),f.d(y,"RollingAverage",function(){return _f.b}),f.d(y,"PromisePolyfill",function(){return rv.a}),f.d(y,"SceneOptimization",function(){return gi}),f.d(y,"TextureOptimization",function(){return xa}),f.d(y,"HardwareScalingOptimization",function(){return Yc}),f.d(y,"ShadowsOptimization",function(){return Ca}),f.d(y,"PostProcessesOptimization",function(){return Ra}),f.d(y,"LensFlaresOptimization",function(){return Oa}),f.d(y,"CustomOptimization",function(){return mf}),f.d(y,"ParticlesOptimization",function(){return Ma}),f.d(y,"RenderTargetsOptimization",function(){return Kc}),f.d(y,"MergeMeshesOptimization",function(){return Ia}),f.d(y,"SceneOptimizerOptions",function(){return Qc}),f.d(y,"SceneOptimizer",function(){return ov}),f.d(y,"SceneSerializer",function(){return Zc}),f.d(y,"SmartArray",function(){return di.a}),f.d(y,"SmartArrayNoDuplicate",function(){return di.b}),f.d(y,"StringDictionary",function(){return Al.a}),f.d(y,"Tags",function(){return av.a}),f.d(y,"TextureTools",function(){return sv}),f.d(y,"TGATools",function(){return da}),f.d(y,"Tools",function(){return Xe.b}),f.d(y,"className",function(){return Xe.c}),f.d(y,"AsyncLoop",function(){return Xe.a}),f.d(y,"VideoRecorder",function(){return cv}),f.d(y,"JoystickAxis",function(){return an}),f.d(y,"VirtualJoystick",function(){return os}),f.d(y,"WorkerPool",function(){return Bs}),f.d(y,"Logger",function(){return l.a}),f.d(y,"_TypeStore",function(){return C.a}),f.d(y,"FilesInputStore",function(){return As.a}),f.d(y,"DeepCopier",function(){return de.a}),f.d(y,"PivotTools",function(){return jn.a}),f.d(y,"PrecisionDate",function(){return be.a}),f.d(y,"ScreenshotTools",function(){return Ro}),f.d(y,"WebRequest",function(){return re.a}),f.d(y,"InspectableType",function(){return Xc}),f.d(y,"BRDFTextureTools",function(){return ta}),f.d(y,"RGBDTextureTools",function(){return mu}),f.d(y,"ColorGradient",function(){return Rc}),f.d(y,"Color3Gradient",function(){return xd}),f.d(y,"FactorGradient",function(){return Oc}),f.d(y,"GradientHelper",function(){return In}),f.d(y,"PerfCounter",function(){return Xn.a}),f.d(y,"RetryStrategy",function(){return lv.a}),f.d(y,"CanvasGenerator",function(){return fs.a}),f.d(y,"LoadFileError",function(){return to.b}),f.d(y,"RequestFileError",function(){return to.d}),f.d(y,"ReadFileError",function(){return to.c}),f.d(y,"FileTools",function(){return to.a}),f.d(y,"StringTools",function(){return Qn.a}),f.d(y,"DataReader",function(){return uv}),f.d(y,"MinMaxReducer",function(){return Vu}),f.d(y,"DepthReducer",function(){return ku}),f.d(y,"DataStorage",function(){return hv}),f.d(y,"SceneRecorder",function(){return dv}),f.d(y,"KhronosTextureContainer2",function(){return Us}),f.d(y,"Trajectory",function(){return fv}),f.d(y,"TrajectoryClassifier",function(){return pv}),f.d(y,"TimerState",function(){return Gi}),f.d(y,"setAndStartTimer",function(){return ks}),f.d(y,"AdvancedTimer",function(){return __}),f.d(y,"CopyTools",function(){return _v.a}),f.d(y,"WebXRCamera",function(){return Su}),f.d(y,"WebXREnterExitUIButton",function(){return Ru}),f.d(y,"WebXREnterExitUIOptions",function(){return p_}),f.d(y,"WebXREnterExitUI",function(){return Ou}),f.d(y,"WebXRExperienceHelper",function(){return Au}),f.d(y,"WebXRInput",function(){return Cu}),f.d(y,"WebXRInputSource",function(){return xu}),f.d(y,"WebXRManagedOutputCanvasOptions",function(){return ps}),f.d(y,"WebXRManagedOutputCanvas",function(){return Kl}),f.d(y,"WebXRState",function(){return fn}),f.d(y,"WebXRTrackingState",function(){return er}),f.d(y,"WebXRSessionManager",function(){return _s}),f.d(y,"WebXRDefaultExperienceOptions",function(){return m_}),f.d(y,"WebXRDefaultExperience",function(){return Mu}),f.d(y,"WebXRFeatureName",function(){return ai}),f.d(y,"WebXRFeaturesManager",function(){return qn}),f.d(y,"WebXRAbstractFeature",function(){return si}),f.d(y,"WebXRHitTestLegacy",function(){return La}),f.d(y,"WebXRAnchorSystem",function(){return Na}),f.d(y,"WebXRPlaneDetector",function(){return wa}),f.d(y,"WebXRBackgroundRemover",function(){return Fa}),f.d(y,"WebXRMotionControllerTeleportation",function(){return uo}),f.d(y,"WebXRControllerPointerSelection",function(){return lo}),f.d(y,"IWebXRControllerPhysicsOptions",function(){return vv}),f.d(y,"WebXRControllerPhysics",function(){return Ba}),f.d(y,"WebXRHitTest",function(){return Ua}),f.d(y,"WebXRFeaturePointSystem",function(){return Va}),f.d(y,"WebXRHand",function(){return yf}),f.d(y,"WebXRHandTracking",function(){return ka}),f.d(y,"WebXRAbstractMotionController",function(){return Rr}),f.d(y,"WebXRControllerComponent",function(){return Cr}),f.d(y,"WebXRGenericTriggerMotionController",function(){return Vs}),f.d(y,"WebXRMicrosoftMixedRealityController",function(){return Tf}),f.d(y,"WebXRMotionControllerManager",function(){return Vn}),f.d(y,"WebXROculusTouchMotionController",function(){return $c}),f.d(y,"WebXRHTCViveMotionController",function(){return Ef}),f.d(y,"WebXRProfiledMotionController",function(){return Pu});var U=f(35),_=f(91),R=f(6),u=f(0),M=f(9),C=f(11),P=function(){function r(t,e){this.triggerOptions=t,this.onBeforeExecuteObservable=new R.c,t.parameter?(this.trigger=t.trigger,this._triggerParameter=t.parameter):t.trigger?this.trigger=t.trigger:this.trigger=t,this._nextActiveAction=this,this._condition=e}return r.prototype._prepare=function(){},r.prototype.getTriggerParameter=function(){return this._triggerParameter},r.prototype._executeCurrent=function(t){if(this._nextActiveAction._condition){var e=this._nextActiveAction._condition,n=this._actionManager.getScene().getRenderId();if(e._evaluationId===n){if(!e._currentResult)return}else{if(e._evaluationId=n,!e.isValid())return void(e._currentResult=!1);e._currentResult=!0}}this.onBeforeExecuteObservable.notifyObservers(this),this._nextActiveAction.execute(t),this.skipToNextActiveAction()},r.prototype.execute=function(t){},r.prototype.skipToNextActiveAction=function(){this._nextActiveAction._child?(this._nextActiveAction._child._actionManager||(this._nextActiveAction._child._actionManager=this._actionManager),this._nextActiveAction=this._nextActiveAction._child):this._nextActiveAction=this},r.prototype.then=function(t){return this._child=t,t._actionManager=this._actionManager,t._prepare(),t},r.prototype._getProperty=function(t){return this._actionManager._getProperty(t)},r.prototype._getEffectiveTarget=function(t,e){return this._actionManager._getEffectiveTarget(t,e)},r.prototype.serialize=function(t){},r.prototype._serialize=function(t,e){var n={type:1,children:[],name:t.name,properties:t.properties||[]};if(this._child&&this._child.serialize(n),this._condition){var i=this._condition.serialize();return i.children.push(n),e&&e.children.push(i),i}return e&&e.children.push(n),n},r._SerializeValueAsString=function(t){return typeof t=="number"?t.toString():typeof t=="boolean"?t?"true":"false":t instanceof u.d?t.x+", "+t.y:t instanceof u.e?t.x+", "+t.y+", "+t.z:t instanceof M.a?t.r+", "+t.g+", "+t.b:t instanceof M.b?t.r+", "+t.g+", "+t.b+", "+t.a:t},r._GetTargetProperty=function(t){return{name:"target",targetType:t._isMesh?"MeshProperties":t._isLight?"LightProperties":t._isCamera?"CameraProperties":"SceneProperties",value:t._isScene?"Scene":t.name}},r}();C.a.RegisteredTypes["BABYLON.Action"]=P;var m=f(47),c=f(1),T=function(){function r(t){this._actionManager=t}return r.prototype.isValid=function(){return!0},r.prototype._getProperty=function(t){return this._actionManager._getProperty(t)},r.prototype._getEffectiveTarget=function(t,e){return this._actionManager._getEffectiveTarget(t,e)},r.prototype.serialize=function(){},r.prototype._serialize=function(t){return{type:2,children:[],name:t.name,properties:t.properties}},r}(),A=function(r){function t(e,n,i,o,a){a===void 0&&(a=t.IsEqual);var s=r.call(this,e)||this;return s.propertyPath=i,s.value=o,s.operator=a,s._target=n,s._effectiveTarget=s._getEffectiveTarget(n,s.propertyPath),s._property=s._getProperty(s.propertyPath),s}return Object(c.d)(t,r),Object.defineProperty(t,"IsEqual",{get:function(){return t._IsEqual},enumerable:!1,configurable:!0}),Object.defineProperty(t,"IsDifferent",{get:function(){return t._IsDifferent},enumerable:!1,configurable:!0}),Object.defineProperty(t,"IsGreater",{get:function(){return t._IsGreater},enumerable:!1,configurable:!0}),Object.defineProperty(t,"IsLesser",{get:function(){return t._IsLesser},enumerable:!1,configurable:!0}),t.prototype.isValid=function(){switch(this.operator){case t.IsGreater:return this._effectiveTarget[this._property]>this.value;case t.IsLesser:return this._effectiveTarget[this._property]-1&&this._scene.actionManagers.splice(e,1)},t.prototype.getScene=function(){return this._scene},t.prototype.hasSpecificTriggers=function(e){for(var n=0;n-1)return!0}return!1},t.prototype.hasSpecificTriggers2=function(e,n){for(var i=0;i=t.OnPickTrigger&&n.trigger<=t.OnPointerOutTrigger)return!0}return!1},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"hasPickTriggers",{get:function(){for(var e=0;e=t.OnPickTrigger&&n.trigger<=t.OnPickUpTrigger)return!0}return!1},enumerable:!1,configurable:!0}),t.prototype.registerAction=function(e){return e.trigger===t.OnEveryFrameTrigger&&this.getScene().actionManager!==this?(l.a.Warn("OnEveryFrameTrigger can only be used with scene.actionManager"),null):(this.actions.push(e),t.Triggers[e.trigger]?t.Triggers[e.trigger]++:t.Triggers[e.trigger]=1,e._actionManager=this,e._prepare(),e)},t.prototype.unregisterAction=function(e){var n=this.actions.indexOf(e);return n!==-1&&(this.actions.splice(n,1),t.Triggers[e.trigger]-=1,t.Triggers[e.trigger]===0&&delete t.Triggers[e.trigger],e._actionManager=null,!0)},t.prototype.processTrigger=function(e,n){for(var i=0;i0;if(F.type===2?ce.push(o):ce.push(z),ve){for(var Te=new Array,Re=0;Re0){var x=b.properties[0].value,O=b.properties[0].targetType===null?x:i.getMeshByName(x);O._meshId&&(O.mesh=i.getMeshByID(O._meshId)),p={trigger:t[b.name],parameter:O}}else p=t[b.name];for(var B=0;B=0?e:0;var s=0,d=a._keys[0],p=a._keys.length-1,b=a._keys[p],x={referenceValue:d.value,referencePosition:u.c.Vector3[0],referenceQuaternion:u.c.Quaternion[0],referenceScaling:u.c.Vector3[1],keyPosition:u.c.Vector3[2],keyQuaternion:u.c.Quaternion[1],keyScaling:u.c.Vector3[3]},O=!1,B=d.frame,F=b.frame;if(n){var z=a.getRange(n);z&&(B=z.from,F=z.to)}var J=d.frame===B,ie=b.frame===F;if(a._keys.length===1){var se=a._getKeyValue(a._keys[0]);x.referenceValue=se.clone?se.clone():se,O=!0}else e<=d.frame?(se=a._getKeyValue(d.value),x.referenceValue=se.clone?se.clone():se,O=!0):e>=b.frame&&(se=a._getKeyValue(b.value),x.referenceValue=se.clone?se.clone():se,O=!0);for(var ce=0;!O||!J||!ie&&ce=ue.frame&&e<=fe.frame){if(se=void 0,e===ue.frame)se=a._getKeyValue(ue.value);else if(e===fe.frame)se=a._getKeyValue(fe.value);else{var ve={key:ce,repeatCount:0,loopMode:this.ANIMATIONLOOPMODE_CONSTANT};se=a._interpolate(e,ve)}x.referenceValue=se.clone?se.clone():se,O=!0}if(!J&&B>=ue.frame&&B<=fe.frame){if(B===ue.frame)s=ce;else if(B===fe.frame)s=ce+1;else{ve={key:ce,repeatCount:0,loopMode:this.ANIMATIONLOOPMODE_CONSTANT};var Te={frame:B,value:(se=a._interpolate(B,ve)).clone?se.clone():se};a._keys.splice(ce+1,0,Te),s=ce+1}J=!0}!ie&&F>=ue.frame&&F<=fe.frame&&(F===ue.frame?p=ce:F===fe.frame?p=ce+1:(ve={key:ce,repeatCount:0,loopMode:this.ANIMATIONLOOPMODE_CONSTANT},Te={frame:F,value:(se=a._interpolate(F,ve)).clone?se.clone():se},a._keys.splice(ce+1,0,Te),p=ce+1),ie=!0),ce++}for(a.dataType===r.ANIMATIONTYPE_QUATERNION?x.referenceValue.normalize().conjugateInPlace():a.dataType===r.ANIMATIONTYPE_MATRIX&&(x.referenceValue.decompose(x.referenceScaling,x.referenceQuaternion,x.referencePosition),x.referenceQuaternion.normalize().conjugateInPlace()),ce=s;ce<=p;ce++)if(Te=a._keys[ce],!ce||a.dataType===r.ANIMATIONTYPE_FLOAT||Te.value!==d.value)switch(a.dataType){case r.ANIMATIONTYPE_MATRIX:Te.value.decompose(x.keyScaling,x.keyQuaternion,x.keyPosition),x.keyPosition.subtractInPlace(x.referencePosition),x.keyScaling.divideInPlace(x.referenceScaling),x.referenceQuaternion.multiplyToRef(x.keyQuaternion,x.keyQuaternion),u.a.ComposeToRef(x.keyScaling,x.keyQuaternion,x.keyPosition,Te.value);break;case r.ANIMATIONTYPE_QUATERNION:x.referenceValue.multiplyToRef(Te.value,Te.value);break;case r.ANIMATIONTYPE_VECTOR2:case r.ANIMATIONTYPE_VECTOR3:case r.ANIMATIONTYPE_COLOR3:case r.ANIMATIONTYPE_COLOR4:Te.value.subtractToRef(x.referenceValue,Te.value);break;case r.ANIMATIONTYPE_SIZE:Te.value.width-=x.referenceValue.width,Te.value.height-=x.referenceValue.height;break;default:Te.value-=x.referenceValue}return a},r.TransitionTo=function(t,e,n,i,o,a,s,d){if(d===void 0&&(d=null),s<=0)return n[t]=e,d&&d(),null;var p=o*(s/1e3);a.setKeys([{frame:0,value:n[t].clone?n[t].clone():n[t]},{frame:p,value:e}]),n.animations||(n.animations=[]),n.animations.push(a);var b=i.beginAnimation(n,0,p,!1);return b.onAnimationEnd=d,b},Object.defineProperty(r.prototype,"runtimeAnimations",{get:function(){return this._runtimeAnimations},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"hasRunningRuntimeAnimations",{get:function(){for(var t=0,e=this._runtimeAnimations;t=0;a--)this._keys[a].frame>=i&&this._keys[a].frame<=o&&this._keys.splice(a,1);this._ranges[t]=null}},r.prototype.getRange=function(t){return this._ranges[t]},r.prototype.getKeys=function(){return this._keys},r.prototype.getHighestFrame=function(){for(var t=0,e=0,n=this._keys.length;e0)return e.highLimitValue.clone?e.highLimitValue.clone():e.highLimitValue;var n=this._keys;if(n.length===1)return this._getKeyValue(n[0].value);var i=e.key;if(n[i].frame>=t)for(;i-1>=0&&n[i].frame>=t;)i--;for(var o=i;o=t){e.key=o;var s=n[o],d=this._getKeyValue(s.value);if(s.interpolation===K.STEP)return d;var p=this._getKeyValue(a.value),b=s.outTangent!==void 0&&a.inTangent!==void 0,x=a.frame-s.frame,O=(t-s.frame)/x,B=this.getEasingFunction();switch(B!=null&&(O=B.ease(O)),this.dataType){case r.ANIMATIONTYPE_FLOAT:var F=b?this.floatInterpolateFunctionWithTangents(d,s.outTangent*x,p,a.inTangent*x,O):this.floatInterpolateFunction(d,p,O);switch(e.loopMode){case r.ANIMATIONLOOPMODE_CYCLE:case r.ANIMATIONLOOPMODE_CONSTANT:return F;case r.ANIMATIONLOOPMODE_RELATIVE:return e.offsetValue*e.repeatCount+F}break;case r.ANIMATIONTYPE_QUATERNION:var z=b?this.quaternionInterpolateFunctionWithTangents(d,s.outTangent.scale(x),p,a.inTangent.scale(x),O):this.quaternionInterpolateFunction(d,p,O);switch(e.loopMode){case r.ANIMATIONLOOPMODE_CYCLE:case r.ANIMATIONLOOPMODE_CONSTANT:return z;case r.ANIMATIONLOOPMODE_RELATIVE:return z.addInPlace(e.offsetValue.scale(e.repeatCount))}return z;case r.ANIMATIONTYPE_VECTOR3:var J=b?this.vector3InterpolateFunctionWithTangents(d,s.outTangent.scale(x),p,a.inTangent.scale(x),O):this.vector3InterpolateFunction(d,p,O);switch(e.loopMode){case r.ANIMATIONLOOPMODE_CYCLE:case r.ANIMATIONLOOPMODE_CONSTANT:return J;case r.ANIMATIONLOOPMODE_RELATIVE:return J.add(e.offsetValue.scale(e.repeatCount))}case r.ANIMATIONTYPE_VECTOR2:var ie=b?this.vector2InterpolateFunctionWithTangents(d,s.outTangent.scale(x),p,a.inTangent.scale(x),O):this.vector2InterpolateFunction(d,p,O);switch(e.loopMode){case r.ANIMATIONLOOPMODE_CYCLE:case r.ANIMATIONLOOPMODE_CONSTANT:return ie;case r.ANIMATIONLOOPMODE_RELATIVE:return ie.add(e.offsetValue.scale(e.repeatCount))}case r.ANIMATIONTYPE_SIZE:switch(e.loopMode){case r.ANIMATIONLOOPMODE_CYCLE:case r.ANIMATIONLOOPMODE_CONSTANT:return this.sizeInterpolateFunction(d,p,O);case r.ANIMATIONLOOPMODE_RELATIVE:return this.sizeInterpolateFunction(d,p,O).add(e.offsetValue.scale(e.repeatCount))}case r.ANIMATIONTYPE_COLOR3:switch(e.loopMode){case r.ANIMATIONLOOPMODE_CYCLE:case r.ANIMATIONLOOPMODE_CONSTANT:return this.color3InterpolateFunction(d,p,O);case r.ANIMATIONLOOPMODE_RELATIVE:return this.color3InterpolateFunction(d,p,O).add(e.offsetValue.scale(e.repeatCount))}case r.ANIMATIONTYPE_COLOR4:switch(e.loopMode){case r.ANIMATIONLOOPMODE_CYCLE:case r.ANIMATIONLOOPMODE_CONSTANT:return this.color4InterpolateFunction(d,p,O);case r.ANIMATIONLOOPMODE_RELATIVE:return this.color4InterpolateFunction(d,p,O).add(e.offsetValue.scale(e.repeatCount))}case r.ANIMATIONTYPE_MATRIX:switch(e.loopMode){case r.ANIMATIONLOOPMODE_CYCLE:case r.ANIMATIONLOOPMODE_CONSTANT:if(r.AllowMatricesInterpolation)return this.matrixInterpolateFunction(d,p,O,e.workValue);case r.ANIMATIONLOOPMODE_RELATIVE:return d}}break}}return this._getKeyValue(n[n.length-1].value)},r.prototype.matrixInterpolateFunction=function(t,e,n,i){return r.AllowMatrixDecomposeForInterpolation?i?(u.a.DecomposeLerpToRef(t,e,n,i),i):u.a.DecomposeLerp(t,e,n):i?(u.a.LerpToRef(t,e,n,i),i):u.a.Lerp(t,e,n)},r.prototype.clone=function(){var t=new r(this.name,this.targetPropertyPath.join("."),this.framePerSecond,this.dataType,this.loopMode);if(t.enableBlending=this.enableBlending,t.blendingSpeed=this.blendingSpeed,this._keys&&t.setKeys(this._keys),this._ranges)for(var e in t._ranges={},this._ranges){var n=this._ranges[e];n&&(t._ranges[e]=n.clone())}return t},r.prototype.setKeys=function(t){this._keys=t.slice(0)},r.prototype.serialize=function(){var t={};t.name=this.name,t.property=this.targetProperty,t.framePerSecond=this.framePerSecond,t.dataType=this.dataType,t.loopBehavior=this.loopMode,t.enableBlending=this.enableBlending,t.blendingSpeed=this.blendingSpeed;var e=this.dataType;t.keys=[];for(var n=this.getKeys(),i=0;i=1&&(s=p.values[1]),p.values.length>=2&&(d=p.values[2]);break;case r.ANIMATIONTYPE_QUATERNION:if(e=u.b.FromArray(p.values),p.values.length>=8){var b=u.b.FromArray(p.values.slice(4,8));b.equals(u.b.Zero())||(s=b)}if(p.values.length>=12){var x=u.b.FromArray(p.values.slice(8,12));x.equals(u.b.Zero())||(d=x)}break;case r.ANIMATIONTYPE_MATRIX:e=u.a.FromArray(p.values);break;case r.ANIMATIONTYPE_COLOR3:e=M.a.FromArray(p.values);break;case r.ANIMATIONTYPE_COLOR4:e=M.b.FromArray(p.values);break;case r.ANIMATIONTYPE_VECTOR3:default:e=u.e.FromArray(p.values)}var O={};O.frame=p.frame,O.value=e,s!=null&&(O.inTangent=s),d!=null&&(O.outTangent=d),a.push(O)}if(i.setKeys(a),t.ranges)for(n=0;n0&&x.forEach(function(O){o._events.push(O._clone())}),this._enableBlending=t&&t.animationPropertiesOverride?t.animationPropertiesOverride.enableBlending:this._animation.enableBlending}return Object.defineProperty(r.prototype,"currentFrame",{get:function(){return this._currentFrame},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"weight",{get:function(){return this._weight},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"currentValue",{get:function(){return this._currentValue},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"targetPath",{get:function(){return this._targetPath},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"target",{get:function(){return this._currentActiveTarget},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"isAdditive",{get:function(){return this._host&&this._host.isAdditive},enumerable:!1,configurable:!0}),r.prototype._preparePath=function(t,e){e===void 0&&(e=0);var n=this._animation.targetPropertyPath;if(n.length>1){for(var i=t[n[0]],o=1;o-1&&this._animation.runtimeAnimations.splice(t,1)},r.prototype.setValue=function(t,e){if(this._targetIsArray)for(var n=0;ne[e.length-1].frame&&(t=e[e.length-1].frame);var n=this._events;if(n.length)for(var i=0;ithis._maxFrame)&&(e=this._minFrame),(nthis._maxFrame)&&(n=this._maxFrame);var b,x,O=n-e,B=t*(s.framePerSecond*o)/1e3+this._ratioOffset,F=0;if(this._previousDelay=t,this._previousRatio=B,!i&&n>=e&&B>=O)p=!1,F=s._getKeyValue(this._maxValue);else if(!i&&e>=n&&B<=O)p=!1,F=s._getKeyValue(this._minValue);else if(this._animationState.loopMode!==k.ANIMATIONLOOPMODE_CYCLE){var z=n.toString()+e.toString();if(!this._offsetsCache[z]){this._animationState.repeatCount=0,this._animationState.loopMode=k.ANIMATIONLOOPMODE_CYCLE;var J=s._interpolate(e,this._animationState),ie=s._interpolate(n,this._animationState);switch(this._animationState.loopMode=this._getCorrectLoopMode(),s.dataType){case k.ANIMATIONTYPE_FLOAT:this._offsetsCache[z]=ie-J;break;case k.ANIMATIONTYPE_QUATERNION:this._offsetsCache[z]=ie.subtract(J);break;case k.ANIMATIONTYPE_VECTOR3:this._offsetsCache[z]=ie.subtract(J);case k.ANIMATIONTYPE_VECTOR2:this._offsetsCache[z]=ie.subtract(J);case k.ANIMATIONTYPE_SIZE:this._offsetsCache[z]=ie.subtract(J);case k.ANIMATIONTYPE_COLOR3:this._offsetsCache[z]=ie.subtract(J)}this._highLimitsCache[z]=ie}F=this._highLimitsCache[z],b=this._offsetsCache[z]}if(b===void 0)switch(s.dataType){case k.ANIMATIONTYPE_FLOAT:b=0;break;case k.ANIMATIONTYPE_QUATERNION:b=Z;break;case k.ANIMATIONTYPE_VECTOR3:b=W;break;case k.ANIMATIONTYPE_VECTOR2:b=q;break;case k.ANIMATIONTYPE_SIZE:b=he;break;case k.ANIMATIONTYPE_COLOR3:b=ge}if(this._host&&this._host.syncRoot){var se=this._host.syncRoot;x=e+(n-e)*((se.masterFrame-se.fromFrame)/(se.toFrame-se.fromFrame))}else x=p&&O!==0?e+B%O:n;var ce=this._events;if((O>0&&this.currentFrame>x||O<0&&this.currentFrame>0,this._animationState.highLimitValue=F,this._animationState.offsetValue=b;var fe=s._interpolate(x,this._animationState);if(this.setValue(fe,a),ce.length){for(ue=0;ue0&&x>=ce[ue].frame&&ce[ue].frame>=e||O<0&&x<=ce[ue].frame&&ce[ue].frame<=e){var ve=ce[ue];ve.isDone||(ve.onlyOnce&&(ce.splice(ue,1),ue--),ve.isDone=!0,ve.action(x))}}return p||(this._stopped=!0),p},r}(),_e=f(20),be=f(57),Pe=f(44),ye=f(23),Be=function(r){function t(e,n,i,o,a,s,d){i===void 0&&(i=null),o===void 0&&(o=null),a===void 0&&(a=null),s===void 0&&(s=null),d===void 0&&(d=null);var p=r.call(this,e,n.getScene())||this;return p.name=e,p.children=new Array,p.animations=new Array,p._index=null,p._absoluteTransform=new u.a,p._invertedAbsoluteTransform=new u.a,p._scalingDeterminant=1,p._worldTransform=new u.a,p._needToDecompose=!0,p._needToCompose=!1,p._linkedTransformNode=null,p._waitingTransformNodeId=null,p._skeleton=n,p._localMatrix=o?o.clone():u.a.Identity(),p._restPose=a||p._localMatrix.clone(),p._bindPose=p._localMatrix.clone(),p._baseMatrix=s||p._localMatrix.clone(),p._index=d,n.bones.push(p),p.setParent(i,!1),(s||o)&&p._updateDifferenceMatrix(),p}return Object(c.d)(t,r),Object.defineProperty(t.prototype,"_matrix",{get:function(){return this._compose(),this._localMatrix},set:function(e){this._localMatrix.copyFrom(e),this._needToDecompose=!0},enumerable:!1,configurable:!0}),t.prototype.getClassName=function(){return"Bone"},t.prototype.getSkeleton=function(){return this._skeleton},t.prototype.getParent=function(){return this._parent},t.prototype.getChildren=function(){return this.children},t.prototype.getIndex=function(){return this._index===null?this.getSkeleton().bones.indexOf(this):this._index},t.prototype.setParent=function(e,n){if(n===void 0&&(n=!0),this._parent!==e){if(this._parent){var i=this._parent.children.indexOf(this);i!==-1&&this._parent.children.splice(i,1)}this._parent=e,this._parent&&this._parent.children.push(this),n&&this._updateDifferenceMatrix(),this.markAsDirty()}},t.prototype.getLocalMatrix=function(){return this._compose(),this._localMatrix},t.prototype.getBaseMatrix=function(){return this._baseMatrix},t.prototype.getRestPose=function(){return this._restPose},t.prototype.setRestPose=function(e){this._restPose.copyFrom(e)},t.prototype.getBindPose=function(){return this._bindPose},t.prototype.setBindPose=function(e){this._bindPose.copyFrom(e)},t.prototype.getWorldMatrix=function(){return this._worldTransform},t.prototype.returnToRest=function(){this._skeleton._numBonesWithLinkedTransformNode>0?this.updateMatrix(this._restPose,!1,!1):this.updateMatrix(this._restPose,!1,!0)},t.prototype.getInvertedAbsoluteTransform=function(){return this._invertedAbsoluteTransform},t.prototype.getAbsoluteTransform=function(){return this._absoluteTransform},t.prototype.linkTransformNode=function(e){this._linkedTransformNode&&this._skeleton._numBonesWithLinkedTransformNode--,this._linkedTransformNode=e,this._linkedTransformNode&&this._skeleton._numBonesWithLinkedTransformNode++},t.prototype.getTransformNode=function(){return this._linkedTransformNode},Object.defineProperty(t.prototype,"position",{get:function(){return this._decompose(),this._localPosition},set:function(e){this._decompose(),this._localPosition.copyFrom(e),this._markAsDirtyAndCompose()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"rotation",{get:function(){return this.getRotation()},set:function(e){this.setRotation(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"rotationQuaternion",{get:function(){return this._decompose(),this._localRotation},set:function(e){this.setRotationQuaternion(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"scaling",{get:function(){return this.getScale()},set:function(e){this.setScale(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"animationPropertiesOverride",{get:function(){return this._skeleton.animationPropertiesOverride},enumerable:!1,configurable:!0}),t.prototype._decompose=function(){this._needToDecompose&&(this._needToDecompose=!1,this._localScaling||(this._localScaling=u.e.Zero(),this._localRotation=u.b.Zero(),this._localPosition=u.e.Zero()),this._localMatrix.decompose(this._localScaling,this._localRotation,this._localPosition))},t.prototype._compose=function(){this._needToCompose&&(this._localScaling?(this._needToCompose=!1,u.a.ComposeToRef(this._localScaling,this._localRotation,this._localPosition,this._localMatrix)):this._needToCompose=!1)},t.prototype.updateMatrix=function(e,n,i){n===void 0&&(n=!0),i===void 0&&(i=!0),this._baseMatrix.copyFrom(e),n&&this._updateDifferenceMatrix(),i?(this._needToCompose=!1,this._localMatrix.copyFrom(e),this._markAsDirtyAndDecompose()):this.markAsDirty()},t.prototype._updateDifferenceMatrix=function(e,n){if(n===void 0&&(n=!0),e||(e=this._baseMatrix),this._parent?e.multiplyToRef(this._parent._absoluteTransform,this._absoluteTransform):this._absoluteTransform.copyFrom(e),this._absoluteTransform.invertToRef(this._invertedAbsoluteTransform),n)for(var i=0;i-1&&(this._scene._activeAnimatables.splice(e,1),this._scene._activeAnimatables.push(this))}return this},r.prototype.getAnimations=function(){return this._runtimeAnimations},r.prototype.appendAnimations=function(t,e){for(var n=this,i=0;i-1){for(var i=(a=this._runtimeAnimations).length-1;i>=0;i--){var o=a[i];t&&o.animation.name!=t||e&&!e(o.target)||(o.dispose(),a.splice(i,1))}a.length==0&&(this._scene._activeAnimatables.splice(n,1),this._raiseOnAnimationEnd())}}else if((i=this._scene._activeAnimatables.indexOf(this))>-1){this._scene._activeAnimatables.splice(i,1);var a=this._runtimeAnimations;for(i=0;i0)return;this._animationTimeLast=r}this.deltaTime=this.useConstantAnimationDeltaTime?16:(r-this._animationTimeLast)*this.animationTimeScale,this._animationTimeLast=r;var t=this._activeAnimatables;if(t.length!==0){this._animationTime+=this.deltaTime;for(var e=this._animationTime,n=0;ne&&i>0&&(i*=-1),s&&this.stopAnimation(r,void 0,d),a||(a=new ke(this,r,t,e,n,i,o,void 0,p,b));var x=!d||d(r);if(r.animations&&x&&a.appendAnimations(r,r.animations),r.getAnimatables)for(var O=r.getAnimatables(),B=0;Bn&&o>0&&(o*=-1),new ke(this,r,e,n,i,o,a,t,s,d)},_e.a.prototype.beginDirectHierarchyAnimation=function(r,t,e,n,i,o,a,s,d,p){p===void 0&&(p=!1);var b=r.getDescendants(t),x=[];x.push(this.beginDirectAnimation(r,e,n,i,o,a,s,d,p));for(var O=0,B=b;O0)i.copyFrom(n);else if(r.animations.length===1){if(u.b.SlerpToRef(n,e.currentValue,Math.min(1,r.totalWeight),i),r.totalAdditiveWeight===0)return i}else if(r.animations.length>1){var o=1,a=void 0,s=void 0;if(r.totalWeight<1){var d=1-r.totalWeight;s=[],(a=[]).push(n),s.push(d)}else{if(r.animations.length===2&&(u.b.SlerpToRef(r.animations[0].currentValue,r.animations[1].currentValue,r.animations[1].weight/r.totalWeight,t),r.totalAdditiveWeight===0))return t;a=[],s=[],o=r.totalWeight}for(var p=0;p=p&&a.frame<=b&&(n?(d=a.value.clone(),z?(s=d.getTranslation(),d.setTranslation(s.scaleInPlace(J))):ie&&i?(s=d.getTranslation(),d.setTranslation(s.multiplyInPlace(i))):d=a.value):d=a.value,se.push({frame:a.frame+e,value:d}));return this.animations[0].createRange(t,p+e,b+e),!0};var We=function(){function r(){}return r.prototype.getClassName=function(){return"TargetedAnimation"},r.prototype.serialize=function(){var t={};return t.animation=this.animation.serialize(),t.targetId=this.target.id,t},r}(),je=function(){function r(t,e){e===void 0&&(e=null),this.name=t,this._targetedAnimations=new Array,this._animatables=new Array,this._from=Number.MAX_VALUE,this._to=-Number.MAX_VALUE,this._speedRatio=1,this._loopAnimation=!1,this._isAdditive=!1,this.onAnimationEndObservable=new R.c,this.onAnimationLoopObservable=new R.c,this.onAnimationGroupLoopObservable=new R.c,this.onAnimationGroupEndObservable=new R.c,this.onAnimationGroupPauseObservable=new R.c,this.onAnimationGroupPlayObservable=new R.c,this._scene=e||te.a.LastCreatedScene,this.uniqueId=this._scene.getUniqueId(),this._scene.addAnimationGroup(this)}return Object.defineProperty(r.prototype,"from",{get:function(){return this._from},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"to",{get:function(){return this._to},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"isStarted",{get:function(){return this._isStarted},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"isPlaying",{get:function(){return this._isStarted&&!this._isPaused},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"speedRatio",{get:function(){return this._speedRatio},set:function(t){if(this._speedRatio!==t){this._speedRatio=t;for(var e=0;ei[0].frame&&(this._from=i[0].frame),this._tot){var s={frame:t,value:o.value,inTangent:o.inTangent,outTangent:o.outTangent,interpolation:o.interpolation};i.splice(0,0,s)}a.framei&&this._speedRatio>0&&(this._speedRatio=-e);return this._isStarted=!0,this._isPaused=!1,this.onAnimationGroupPlayObservable.notifyObservers(this),this},r.prototype.pause=function(){if(!this._isStarted)return this;this._isPaused=!0;for(var t=0;t-1&&this._scene.animationGroups.splice(t,1),this.onAnimationEndObservable.clear(),this.onAnimationGroupEndObservable.clear(),this.onAnimationGroupPauseObservable.clear(),this.onAnimationGroupPlayObservable.clear(),this.onAnimationLoopObservable.clear(),this.onAnimationGroupLoopObservable.clear()},r.prototype._checkAnimationGroupEnded=function(t){var e=this._animatables.indexOf(t);e>-1&&this._animatables.splice(e,1),this._animatables.length===0&&(this._isStarted=!1,this.onAnimationGroupEndObservable.notifyObservers(this))},r.prototype.clone=function(t,e){for(var n=new r(t||this.name,this._scene),i=0,o=this._targetedAnimations;i=.5?.5*(1-this.easeInCore(2*(1-t)))+.5:.5*this.easeInCore(2*t)},r.EASINGMODE_EASEIN=0,r.EASINGMODE_EASEOUT=1,r.EASINGMODE_EASEINOUT=2,r}(),nt=function(r){function t(){return r!==null&&r.apply(this,arguments)||this}return Object(c.d)(t,r),t.prototype.easeInCore=function(e){return e=Math.max(0,Math.min(1,e)),1-Math.sqrt(1-e*e)},t}(Ge),$e=function(r){function t(e){e===void 0&&(e=1);var n=r.call(this)||this;return n.amplitude=e,n}return Object(c.d)(t,r),t.prototype.easeInCore=function(e){var n=Math.max(0,this.amplitude);return Math.pow(e,3)-e*n*Math.sin(3.141592653589793*e)},t}(Ge),ct=function(r){function t(e,n){e===void 0&&(e=3),n===void 0&&(n=2);var i=r.call(this)||this;return i.bounces=e,i.bounciness=n,i}return Object(c.d)(t,r),t.prototype.easeInCore=function(e){var n=Math.max(0,this.bounces),i=this.bounciness;i<=1&&(i=1.001);var o=Math.pow(i,n),a=1-i,s=(1-o)/a+.5*o,d=e*s,p=Math.log(-d*(1-i)+1)/Math.log(i),b=Math.floor(p),x=b+1,O=(1-Math.pow(i,b))/(a*s),B=.5*(O+(1-Math.pow(i,x))/(a*s)),F=e-B,z=B-O;return-Math.pow(1/i,n-b)/(z*z)*(F-z)*(F+z)},t}(Ge),st=function(r){function t(){return r!==null&&r.apply(this,arguments)||this}return Object(c.d)(t,r),t.prototype.easeInCore=function(e){return e*e*e},t}(Ge),mt=function(r){function t(e,n){e===void 0&&(e=3),n===void 0&&(n=3);var i=r.call(this)||this;return i.oscillations=e,i.springiness=n,i}return Object(c.d)(t,r),t.prototype.easeInCore=function(e){var n=Math.max(0,this.oscillations),i=Math.max(0,this.springiness);return(i==0?e:(Math.exp(i*e)-1)/(Math.exp(i)-1))*Math.sin((6.283185307179586*n+1.5707963267948966)*e)},t}(Ge),St=function(r){function t(e){e===void 0&&(e=2);var n=r.call(this)||this;return n.exponent=e,n}return Object(c.d)(t,r),t.prototype.easeInCore=function(e){return this.exponent<=0?e:(Math.exp(this.exponent*e)-1)/(Math.exp(this.exponent)-1)},t}(Ge),wt=function(r){function t(e){e===void 0&&(e=2);var n=r.call(this)||this;return n.power=e,n}return Object(c.d)(t,r),t.prototype.easeInCore=function(e){var n=Math.max(0,this.power);return Math.pow(e,n)},t}(Ge),It=function(r){function t(){return r!==null&&r.apply(this,arguments)||this}return Object(c.d)(t,r),t.prototype.easeInCore=function(e){return e*e},t}(Ge),Pt=function(r){function t(){return r!==null&&r.apply(this,arguments)||this}return Object(c.d)(t,r),t.prototype.easeInCore=function(e){return e*e*e*e},t}(Ge),Ot=function(r){function t(){return r!==null&&r.apply(this,arguments)||this}return Object(c.d)(t,r),t.prototype.easeInCore=function(e){return e*e*e*e*e},t}(Ge),on=function(r){function t(){return r!==null&&r.apply(this,arguments)||this}return Object(c.d)(t,r),t.prototype.easeInCore=function(e){return 1-Math.sin(1.5707963267948966*(1-e))},t}(Ge),Zt=function(r){function t(e,n,i,o){e===void 0&&(e=0),n===void 0&&(n=0),i===void 0&&(i=1),o===void 0&&(o=1);var a=r.call(this)||this;return a.x1=e,a.y1=n,a.x2=i,a.y2=o,a}return Object(c.d)(t,r),t.prototype.easeInCore=function(e){return Qe.c.Interpolate(e,this.x1,this.y1,this.x2,this.y2)},t}(Ge),tn=function(){function r(t,e,n){this.frame=t,this.action=e,this.onlyOnce=n,this.isDone=!1}return r.prototype._clone=function(){return new r(this.frame,this.action,this.onlyOnce)},r}(),De=f(7),Pn=function(r){function t(){return r!==null&&r.apply(this,arguments)||this}return Object(c.d)(t,r),t}(U.a),nn=function(){this.rootNodes=[],this.skeletons=[],this.animationGroups=[]},xn=function(r){function t(e){var n=r.call(this)||this;return n._wasAddedToScene=!1,n.scene=e,n.sounds=[],n.effectLayers=[],n.layers=[],n.lensFlareSystems=[],n.proceduralTextures=[],n.reflectionProbes=[],e.onDisposeObservable.add(function(){n._wasAddedToScene||n.dispose()}),n}return Object(c.d)(t,r),t.prototype.instantiateModelsToScene=function(e,n){var i=this;n===void 0&&(n=!1);var o={},a={},s=new nn,d=[],p=[],b={doNotInstantiate:!0},x=function(O,B){if(o[O.uniqueId]=B.uniqueId,a[B.uniqueId]=B,e&&(B.name=e(O.name)),B instanceof De.a){var F=B;if(F.morphTargetManager){var z=O.morphTargetManager;F.morphTargetManager=z.clone();for(var J=0;J-1&&d.animations.splice(J,1)}},b=0,x=s.animations;b0&&(B=!0,this._soundLoaded(e));break;case"String":O.push(e);case"Array":O.length===0&&(O=e);for(var F=0;F0&&(this._htmlAudioElement.currentTime=0)):this._streamingSource.disconnect(),this.isPlaying=!1;else if(Ue.a.audioEngine.audioContext&&this._soundSource){var n=t?Ue.a.audioEngine.audioContext.currentTime+t:Ue.a.audioEngine.audioContext.currentTime;this._soundSource.stop(n),this._soundSource.onended=function(){e.isPlaying=!1},this.isPaused||(this._startOffset=0)}}},r.prototype.pause=function(){this.isPlaying&&(this.isPaused=!0,this._streaming?this._htmlAudioElement?this._htmlAudioElement.pause():this._streamingSource.disconnect():Ue.a.audioEngine.audioContext&&(this.stop(0),this._startOffset+=Ue.a.audioEngine.audioContext.currentTime-this._startTime))},r.prototype.setVolume=function(t,e){Ue.a.audioEngine.canUseWebAudio&&this._soundGain&&(e&&Ue.a.audioEngine.audioContext?(this._soundGain.gain.cancelScheduledValues(Ue.a.audioEngine.audioContext.currentTime),this._soundGain.gain.setValueAtTime(this._soundGain.gain.value,Ue.a.audioEngine.audioContext.currentTime),this._soundGain.gain.linearRampToValueAtTime(t,Ue.a.audioEngine.audioContext.currentTime+e)):this._soundGain.gain.value=t),this._volume=t},r.prototype.setPlaybackRate=function(t){this._playbackRate=t,this.isPlaying&&(this._streaming&&this._htmlAudioElement?this._htmlAudioElement.playbackRate=this._playbackRate:this._soundSource&&(this._soundSource.playbackRate.value=this._playbackRate))},r.prototype.getVolume=function(){return this._volume},r.prototype.attachToMesh=function(t){var e=this;this._connectedTransformNode&&this._registerFunc&&(this._connectedTransformNode.unregisterAfterWorldMatrixUpdate(this._registerFunc),this._registerFunc=null),this._connectedTransformNode=t,this.spatialSound||(this.spatialSound=!0,this._createSpatialParameters(),this.isPlaying&&this.loop&&(this.stop(),this.play(0,this._offset,this._length))),this._onRegisterAfterWorldMatrixUpdate(this._connectedTransformNode),this._registerFunc=function(n){return e._onRegisterAfterWorldMatrixUpdate(n)},this._connectedTransformNode.registerAfterWorldMatrixUpdate(this._registerFunc)},r.prototype.detachFromMesh=function(){this._connectedTransformNode&&this._registerFunc&&(this._connectedTransformNode.unregisterAfterWorldMatrixUpdate(this._registerFunc),this._registerFunc=null,this._connectedTransformNode=null)},r.prototype._onRegisterAfterWorldMatrixUpdate=function(t){if(this._positionInEmitterSpace)t.worldMatrixFromCache.invertToRef(u.c.Matrix[0]),this.setPosition(u.c.Matrix[0].getTranslation());else if(t.getBoundingInfo){var e=t.getBoundingInfo();this.setPosition(e.boundingSphere.centerWorld)}else this.setPosition(t.absolutePosition);Ue.a.audioEngine.canUseWebAudio&&this._isDirectional&&this.isPlaying&&this._updateDirection()},r.prototype.clone=function(){var t=this;if(this._streaming)return null;var e=function(){t._isReadyToPlay?(i._audioBuffer=t.getAudioBuffer(),i._isReadyToPlay=!0,i.autoplay&&i.play(0,t._offset,t._length)):window.setTimeout(e,300)},n={autoplay:this.autoplay,loop:this.loop,volume:this._volume,spatialSound:this.spatialSound,maxDistance:this.maxDistance,useCustomAttenuation:this.useCustomAttenuation,rolloffFactor:this.rolloffFactor,refDistance:this.refDistance,distanceModel:this.distanceModel},i=new r(this.name+"_cloned",new ArrayBuffer(0),this._scene,null,n);return this.useCustomAttenuation&&i.setAttenuationFunction(this._customAttenuationFunction),i.setPosition(this._position),i.setPlaybackRate(this._playbackRate),e(),i},r.prototype.getAudioBuffer=function(){return this._audioBuffer},r.prototype.getSoundSource=function(){return this._soundSource},r.prototype.getSoundGain=function(){return this._soundGain},r.prototype.serialize=function(){var t={name:this.name,url:this.name,autoplay:this.autoplay,loop:this.loop,volume:this._volume,spatialSound:this.spatialSound,maxDistance:this.maxDistance,rolloffFactor:this.rolloffFactor,refDistance:this.refDistance,distanceModel:this.distanceModel,playbackRate:this._playbackRate,panningModel:this._panningModel,soundTrackId:this.soundTrackId,metadata:this.metadata};return this.spatialSound&&(this._connectedTransformNode&&(t.connectedMeshId=this._connectedTransformNode.id),t.position=this._position.asArray(),t.refDistance=this.refDistance,t.distanceModel=this.distanceModel,t.isDirectional=this._isDirectional,t.localDirectionToMesh=this._localDirection.asArray(),t.coneInnerAngle=this._coneInnerAngle,t.coneOuterAngle=this._coneOuterAngle,t.coneOuterGain=this._coneOuterGain),t},r.Parse=function(t,e,n,i){var o,a=t.name;o=t.url?n+t.url:n+a;var s,d={autoplay:t.autoplay,loop:t.loop,volume:t.volume,spatialSound:t.spatialSound,maxDistance:t.maxDistance,rolloffFactor:t.rolloffFactor,refDistance:t.refDistance,distanceModel:t.distanceModel,playbackRate:t.playbackRate};if(i){var p=function(){i._isReadyToPlay?(s._audioBuffer=i.getAudioBuffer(),s._isReadyToPlay=!0,s.autoplay&&s.play(0,s._offset,s._length)):window.setTimeout(p,300)};s=new r(a,new ArrayBuffer(0),e,null,d),p()}else s=new r(a,o,e,function(){e._removePendingData(s)},d),e._addPendingData(s);if(t.position){var b=u.e.FromArray(t.position);s.setPosition(b)}if(t.isDirectional&&(s.setDirectionalCone(t.coneInnerAngle||360,t.coneOuterAngle||360,t.coneOuterGain||0),t.localDirectionToMesh)){var x=u.e.FromArray(t.localDirectionToMesh);s.setLocalDirectionToMesh(x)}if(t.connectedMeshId){var O=e.getMeshByID(t.connectedMeshId);O&&s.attachToMesh(O)}return t.metadata&&(s.metadata=t.metadata),s},r._SceneComponentInitialization=function(t){throw An.a.WarnImport("AudioSceneComponent")},r}(),No=function(){function r(t,e){e===void 0&&(e={}),this.id=-1,this._isInitialized=!1,this._scene=t,this.soundCollection=new Array,this._options=e,!this._options.mainTrack&&this._scene.soundTracks&&(this._scene.soundTracks.push(this),this.id=this._scene.soundTracks.length-1)}return r.prototype._initializeSoundTrackAudioGraph=function(){Ue.a.audioEngine.canUseWebAudio&&Ue.a.audioEngine.audioContext&&(this._outputAudioNode=Ue.a.audioEngine.audioContext.createGain(),this._outputAudioNode.connect(Ue.a.audioEngine.masterGain),this._options&&this._options.volume&&(this._outputAudioNode.gain.value=this._options.volume),this._isInitialized=!0)},r.prototype.dispose=function(){if(Ue.a.audioEngine&&Ue.a.audioEngine.canUseWebAudio){for(this._connectedAnalyser&&this._connectedAnalyser.stopDebugCanvas();this.soundCollection.length;)this.soundCollection[0].dispose();this._outputAudioNode&&this._outputAudioNode.disconnect(),this._outputAudioNode=null}},r.prototype.addSound=function(t){this._isInitialized||this._initializeSoundTrackAudioGraph(),Ue.a.audioEngine.canUseWebAudio&&this._outputAudioNode&&t.connectToSoundTrackAudioNode(this._outputAudioNode),t.soundTrackId&&(t.soundTrackId===-1?this._scene.mainSoundTrack.removeSound(t):this._scene.soundTracks&&this._scene.soundTracks[t.soundTrackId].removeSound(t)),this.soundCollection.push(t),t.soundTrackId=this.id},r.prototype.removeSound=function(t){var e=this.soundCollection.indexOf(t);e!==-1&&this.soundCollection.splice(e,1)},r.prototype.setVolume=function(t){Ue.a.audioEngine.canUseWebAudio&&this._outputAudioNode&&(this._outputAudioNode.gain.value=t)},r.prototype.switchPanningModelToHRTF=function(){if(Ue.a.audioEngine.canUseWebAudio)for(var t=0;t0?e.activeCameras[0]:e.activeCamera){this._cachedCameraPosition.equals(o.globalPosition)||(this._cachedCameraPosition.copyFrom(o.globalPosition),n.audioContext.listener.setPosition(o.globalPosition.x,o.globalPosition.y,o.globalPosition.z)),o.rigCameras&&o.rigCameras.length>0&&(o=o.rigCameras[0]);var a=u.a.Invert(o.getViewMatrix()),s=u.e.TransformNormal(e.useRightHandedSystem?r._CameraDirectionRH:r._CameraDirectionLH,a);s.normalize(),isNaN(s.x)||isNaN(s.y)||isNaN(s.z)||this._cachedCameraDirection.equals(s)||(this._cachedCameraDirection.copyFrom(s),n.audioContext.listener.setOrientation(s.x,s.y,s.z,0,1,0))}else n.audioContext.listener.setPosition(0,0,0)}var d;for(d=0;d0?1/o:0,p=0;p0},enumerable:!1,configurable:!0}),r.prototype.init=function(){},r.prototype.attach=function(t){var e=this;this._attachedCamera=t;var n=this._attachedCamera.getScene();this._onPrePointerObservableObserver=n.onPrePointerObservable.add(function(i){i.type!==Tt.a.POINTERDOWN?i.type===Tt.a.POINTERUP&&(e._isPointerDown=!1):e._isPointerDown=!0}),this._onAfterCheckInputsObserver=t.onAfterCheckInputsObservable.add(function(){var i=be.a.Now,o=0;e._lastFrameTime!=null&&(o=i-e._lastFrameTime),e._lastFrameTime=i,e._applyUserInteraction();var a=i-e._lastInteractionTime-e._idleRotationWaitTime,s=Math.max(Math.min(a/e._idleRotationSpinupTime,1),0);e._cameraRotationSpeed=e._idleRotationSpeed*s,e._attachedCamera&&(e._attachedCamera.alpha-=e._cameraRotationSpeed*(o/1e3))})},r.prototype.detach=function(){if(this._attachedCamera){var t=this._attachedCamera.getScene();this._onPrePointerObservableObserver&&t.onPrePointerObservable.remove(this._onPrePointerObservableObserver),this._attachedCamera.onAfterCheckInputsObservable.remove(this._onAfterCheckInputsObserver),this._attachedCamera=null}},r.prototype._userIsZooming=function(){return!!this._attachedCamera&&this._attachedCamera.inertialRadiusOffset!==0},r.prototype._shouldAnimationStopForInteraction=function(){if(!this._attachedCamera)return!1;var t=!1;return this._lastFrameRadius===this._attachedCamera.radius&&this._attachedCamera.inertialRadiusOffset!==0&&(t=!0),this._lastFrameRadius=this._attachedCamera.radius,this._zoomStopsAnimation?t:this._userIsZooming()},r.prototype._applyUserInteraction=function(){this._userIsMoving()&&!this._shouldAnimationStopForInteraction()&&(this._lastInteractionTime=be.a.Now)},r.prototype._userIsMoving=function(){return!!this._attachedCamera&&(this._attachedCamera.inertialAlphaOffset!==0||this._attachedCamera.inertialBetaOffset!==0||this._attachedCamera.inertialRadiusOffset!==0||this._attachedCamera.inertialPanningX!==0||this._attachedCamera.inertialPanningY!==0||this._isPointerDown)},r}(),ml=function(){function r(){this.transitionDuration=450,this.lowerRadiusTransitionRange=2,this.upperRadiusTransitionRange=-2,this._autoTransitionRange=!1,this._radiusIsAnimating=!1,this._radiusBounceTransition=null,this._animatables=new Array}return Object.defineProperty(r.prototype,"name",{get:function(){return"Bouncing"},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"autoTransitionRange",{get:function(){return this._autoTransitionRange},set:function(t){var e=this;if(this._autoTransitionRange!==t){this._autoTransitionRange=t;var n=this._attachedCamera;n&&(t?this._onMeshTargetChangedObserver=n.onMeshTargetChangedObservable.add(function(i){if(i){i.computeWorldMatrix(!0);var o=i.getBoundingInfo().diagonalLength;e.lowerRadiusTransitionRange=.05*o,e.upperRadiusTransitionRange=.05*o}}):this._onMeshTargetChangedObserver&&n.onMeshTargetChangedObservable.remove(this._onMeshTargetChangedObserver))}},enumerable:!1,configurable:!0}),r.prototype.init=function(){},r.prototype.attach=function(t){var e=this;this._attachedCamera=t,this._onAfterCheckInputsObserver=t.onAfterCheckInputsObservable.add(function(){e._attachedCamera&&(e._isRadiusAtLimit(e._attachedCamera.lowerRadiusLimit)&&e._applyBoundRadiusAnimation(e.lowerRadiusTransitionRange),e._isRadiusAtLimit(e._attachedCamera.upperRadiusLimit)&&e._applyBoundRadiusAnimation(e.upperRadiusTransitionRange))})},r.prototype.detach=function(){this._attachedCamera&&(this._onAfterCheckInputsObserver&&this._attachedCamera.onAfterCheckInputsObservable.remove(this._onAfterCheckInputsObserver),this._onMeshTargetChangedObserver&&this._attachedCamera.onMeshTargetChangedObservable.remove(this._onMeshTargetChangedObserver),this._attachedCamera=null)},r.prototype._isRadiusAtLimit=function(t){return!!this._attachedCamera&&this._attachedCamera.radius===t&&!this._radiusIsAnimating},r.prototype._applyBoundRadiusAnimation=function(t){var e=this;if(this._attachedCamera){this._radiusBounceTransition||(r.EasingFunction.setEasingMode(r.EasingMode),this._radiusBounceTransition=k.CreateAnimation("radius",k.ANIMATIONTYPE_FLOAT,60,r.EasingFunction)),this._cachedWheelPrecision=this._attachedCamera.wheelPrecision,this._attachedCamera.wheelPrecision=1/0,this._attachedCamera.inertialRadiusOffset=0,this.stopAllAnimations(),this._radiusIsAnimating=!0;var n=k.TransitionTo("radius",this._attachedCamera.radius+t,this._attachedCamera,this._attachedCamera.getScene(),60,this._radiusBounceTransition,this.transitionDuration,function(){return e._clearAnimationLocks()});n&&this._animatables.push(n)}},r.prototype._clearAnimationLocks=function(){this._radiusIsAnimating=!1,this._attachedCamera&&(this._attachedCamera.wheelPrecision=this._cachedWheelPrecision)},r.prototype.stopAllAnimations=function(){for(this._attachedCamera&&(this._attachedCamera.animations=[]);this._animatables.length;)this._animatables[0].onAnimationEnd=null,this._animatables[0].stop(),this._animatables.shift()},r.EasingFunction=new $e(.3),r.EasingMode=Ge.EASINGMODE_EASEOUT,r}(),gl=function(){function r(){this._mode=r.FitFrustumSidesMode,this._radiusScale=1,this._positionScale=.5,this._defaultElevation=.3,this._elevationReturnTime=1500,this._elevationReturnWaitTime=1e3,this._zoomStopsAnimation=!1,this._framingTime=1500,this.autoCorrectCameraLimitsAndSensibility=!0,this._isPointerDown=!1,this._lastInteractionTime=-1/0,this._animatables=new Array,this._betaIsAnimating=!1}return Object.defineProperty(r.prototype,"name",{get:function(){return"Framing"},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"mode",{get:function(){return this._mode},set:function(t){this._mode=t},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"radiusScale",{get:function(){return this._radiusScale},set:function(t){this._radiusScale=t},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"positionScale",{get:function(){return this._positionScale},set:function(t){this._positionScale=t},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"defaultElevation",{get:function(){return this._defaultElevation},set:function(t){this._defaultElevation=t},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"elevationReturnTime",{get:function(){return this._elevationReturnTime},set:function(t){this._elevationReturnTime=t},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"elevationReturnWaitTime",{get:function(){return this._elevationReturnWaitTime},set:function(t){this._elevationReturnWaitTime=t},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"zoomStopsAnimation",{get:function(){return this._zoomStopsAnimation},set:function(t){this._zoomStopsAnimation=t},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"framingTime",{get:function(){return this._framingTime},set:function(t){this._framingTime=t},enumerable:!1,configurable:!0}),r.prototype.init=function(){},r.prototype.attach=function(t){var e=this;this._attachedCamera=t;var n=this._attachedCamera.getScene();r.EasingFunction.setEasingMode(r.EasingMode),this._onPrePointerObservableObserver=n.onPrePointerObservable.add(function(i){i.type!==Tt.a.POINTERDOWN?i.type===Tt.a.POINTERUP&&(e._isPointerDown=!1):e._isPointerDown=!0}),this._onMeshTargetChangedObserver=t.onMeshTargetChangedObservable.add(function(i){i&&e.zoomOnMesh(i)}),this._onAfterCheckInputsObserver=t.onAfterCheckInputsObservable.add(function(){e._applyUserInteraction(),e._maintainCameraAboveGround()})},r.prototype.detach=function(){if(this._attachedCamera){var t=this._attachedCamera.getScene();this._onPrePointerObservableObserver&&t.onPrePointerObservable.remove(this._onPrePointerObservableObserver),this._onAfterCheckInputsObserver&&this._attachedCamera.onAfterCheckInputsObservable.remove(this._onAfterCheckInputsObserver),this._onMeshTargetChangedObserver&&this._attachedCamera.onMeshTargetChangedObservable.remove(this._onMeshTargetChangedObserver),this._attachedCamera=null}},r.prototype.zoomOnMesh=function(t,e,n){e===void 0&&(e=!1),n===void 0&&(n=null),t.computeWorldMatrix(!0);var i=t.getBoundingInfo().boundingBox;this.zoomOnBoundingInfo(i.minimumWorld,i.maximumWorld,e,n)},r.prototype.zoomOnMeshHierarchy=function(t,e,n){e===void 0&&(e=!1),n===void 0&&(n=null),t.computeWorldMatrix(!0);var i=t.getHierarchyBoundingVectors(!0);this.zoomOnBoundingInfo(i.min,i.max,e,n)},r.prototype.zoomOnMeshesHierarchy=function(t,e,n){e===void 0&&(e=!1),n===void 0&&(n=null);for(var i=new u.e(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),o=new u.e(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE),a=0;ap.upperRadiusLimit?p.upperRadiusLimit:d),d):0},r.prototype._maintainCameraAboveGround=function(){var t=this;if(!(this._elevationReturnTime<0)){var e=be.a.Now-this._lastInteractionTime,n=.5*Math.PI-this._defaultElevation,i=.5*Math.PI;if(this._attachedCamera&&!this._betaIsAnimating&&this._attachedCamera.beta>i&&e>=this._elevationReturnWaitTime){this._betaIsAnimating=!0,this.stopAllAnimations(),this._betaTransition||(this._betaTransition=k.CreateAnimation("beta",k.ANIMATIONTYPE_FLOAT,60,r.EasingFunction));var o=k.TransitionTo("beta",n,this._attachedCamera,this._attachedCamera.getScene(),60,this._betaTransition,this._elevationReturnTime,function(){t._clearAnimationLocks(),t.stopAllAnimations()});o&&this._animatables.push(o)}}},r.prototype._getFrustumSlope=function(){var t=this._attachedCamera;if(!t)return u.d.Zero();var e=t.getScene().getEngine().getAspectRatio(t),n=Math.tan(t.fov/2),i=n*e;return new u.d(i,n)},r.prototype._clearAnimationLocks=function(){this._betaIsAnimating=!1},r.prototype._applyUserInteraction=function(){this.isUserIsMoving&&(this._lastInteractionTime=be.a.Now,this.stopAllAnimations(),this._clearAnimationLocks())},r.prototype.stopAllAnimations=function(){for(this._attachedCamera&&(this._attachedCamera.animations=[]);this._animatables.length;)this._animatables[0]&&(this._animatables[0].onAnimationEnd=null,this._animatables[0].stop()),this._animatables.shift()},Object.defineProperty(r.prototype,"isUserIsMoving",{get:function(){return!!this._attachedCamera&&(this._attachedCamera.inertialAlphaOffset!==0||this._attachedCamera.inertialBetaOffset!==0||this._attachedCamera.inertialRadiusOffset!==0||this._attachedCamera.inertialPanningX!==0||this._attachedCamera.inertialPanningY!==0||this._isPointerDown)},enumerable:!1,configurable:!0}),r.EasingFunction=new St,r.EasingMode=Ge.EASINGMODE_EASEINOUT,r.IgnoreBoundsSizeMode=0,r.FitFrustumSidesMode=1,r}(),fr=function(r,t,e,n){t===void 0&&(t=new u.e),e===void 0&&(e=0),n===void 0&&(n=!1),this.direction=r,this.rotatedDirection=t,this.diff=e,this.ignore=n},If=function(){function r(t){this.ui=t,this.name="AttachToBoxBehavior",this.distanceAwayFromFace=.15,this.distanceAwayFromBottomOfFace=.15,this._faceVectors=[new fr(u.e.Up()),new fr(u.e.Down()),new fr(u.e.Left()),new fr(u.e.Right()),new fr(u.e.Forward()),new fr(u.e.Forward().scaleInPlace(-1))],this._tmpMatrix=new u.a,this._tmpVector=new u.e,this._zeroVector=u.e.Zero(),this._lookAtTmpMatrix=new u.a}return r.prototype.init=function(){},r.prototype._closestFace=function(t){var e=this;return this._faceVectors.forEach(function(n){e._target.rotationQuaternion||(e._target.rotationQuaternion=u.b.RotationYawPitchRoll(e._target.rotation.y,e._target.rotation.x,e._target.rotation.z)),e._target.rotationQuaternion.toRotationMatrix(e._tmpMatrix),u.e.TransformCoordinatesToRef(n.direction,e._tmpMatrix,n.rotatedDirection),n.diff=u.e.GetAngleBetweenVectors(n.rotatedDirection,t,u.e.Cross(n.rotatedDirection,t))}),this._faceVectors.reduce(function(n,i){return n.ignore?i:i.ignore||n.diff1)return t._setAllVisibility(t._ownerNode,1),void(t._hoverValue=t.fadeInTime+t.delay);if(t._ownerNode.visibility<0&&(t._setAllVisibility(t._ownerNode,0),t._hoverValue<0))return void(t._hoverValue=0);setTimeout(t._update,t._millisecondsPerFrame)}}}return Object.defineProperty(r.prototype,"name",{get:function(){return"FadeInOut"},enumerable:!1,configurable:!0}),r.prototype.init=function(){},r.prototype.attach=function(t){this._ownerNode=t,this._setAllVisibility(this._ownerNode,0)},r.prototype.detach=function(){this._ownerNode=null},r.prototype.fadeIn=function(t){this._hovered=t,this._update()},r.prototype._setAllVisibility=function(t,e){var n=this;t.visibility=e,t.getChildMeshes().forEach(function(i){n._setAllVisibility(i,e)})},r}(),vi=f(65),Lf=function(){function r(){this._startDistance=0,this._initialScale=new u.e(0,0,0),this._targetScale=new u.e(0,0,0),this._sceneRenderObserver=null,this._dragBehaviorA=new vi.a({}),this._dragBehaviorA.moveAttached=!1,this._dragBehaviorB=new vi.a({}),this._dragBehaviorB.moveAttached=!1}return Object.defineProperty(r.prototype,"name",{get:function(){return"MultiPointerScale"},enumerable:!1,configurable:!0}),r.prototype.init=function(){},r.prototype._getCurrentDistance=function(){return this._dragBehaviorA.lastDragPosition.subtract(this._dragBehaviorB.lastDragPosition).length()},r.prototype.attach=function(t){var e=this;this._ownerNode=t,this._dragBehaviorA.onDragStartObservable.add(function(n){e._dragBehaviorA.dragging&&e._dragBehaviorB.dragging&&(e._dragBehaviorA.currentDraggingPointerID==e._dragBehaviorB.currentDraggingPointerID?e._dragBehaviorA.releaseDrag():(e._initialScale.copyFrom(t.scaling),e._startDistance=e._getCurrentDistance()))}),this._dragBehaviorB.onDragStartObservable.add(function(n){e._dragBehaviorA.dragging&&e._dragBehaviorB.dragging&&(e._dragBehaviorA.currentDraggingPointerID==e._dragBehaviorB.currentDraggingPointerID?e._dragBehaviorB.releaseDrag():(e._initialScale.copyFrom(t.scaling),e._startDistance=e._getCurrentDistance()))}),[this._dragBehaviorA,this._dragBehaviorB].forEach(function(n){n.onDragObservable.add(function(){if(e._dragBehaviorA.dragging&&e._dragBehaviorB.dragging){var i=e._getCurrentDistance()/e._startDistance;e._initialScale.scaleToRef(i,e._targetScale)}})}),t.addBehavior(this._dragBehaviorA),t.addBehavior(this._dragBehaviorB),this._sceneRenderObserver=t.getScene().onBeforeRenderObservable.add(function(){if(e._dragBehaviorA.dragging&&e._dragBehaviorB.dragging){var n=e._targetScale.subtract(t.scaling).scaleInPlace(.1);n.length()>.01&&t.scaling.addInPlace(n)}})},r.prototype.detach=function(){var t=this;this._ownerNode.getScene().onBeforeRenderObservable.remove(this._sceneRenderObserver),[this._dragBehaviorA,this._dragBehaviorB].forEach(function(e){e.onDragStartObservable.clear(),e.onDragObservable.clear(),t._ownerNode.removeBehavior(e)})},r}(),Dt=f(31),gt=f(24),jn=f(60),vl=function(){function r(){this._sceneRenderObserver=null,this._targetPosition=new u.e(0,0,0),this._moving=!1,this._startingOrientation=new u.b,this._attachedToElement=!1,this.zDragFactor=3,this.rotateDraggedObject=!0,this.dragging=!1,this.dragDeltaRatio=.2,this.currentDraggingPointerID=-1,this.detachCameraControls=!0,this.onDragStartObservable=new R.c,this.onDragObservable=new R.c,this.onDragEndObservable=new R.c}return Object.defineProperty(r.prototype,"name",{get:function(){return"SixDofDrag"},enumerable:!1,configurable:!0}),r.prototype.init=function(){},Object.defineProperty(r.prototype,"_pointerCamera",{get:function(){return this._scene.cameraToUseForPointers?this._scene.cameraToUseForPointers:this._scene.activeCamera},enumerable:!1,configurable:!0}),r.prototype.attach=function(t){var e=this;this._ownerNode=t,this._scene=this._ownerNode.getScene(),r._virtualScene||(r._virtualScene=new _e.a(this._scene.getEngine(),{virtual:!0}),r._virtualScene.detachControl(),this._scene.getEngine().scenes.pop());var n=null,i=new u.e(0,0,0);this._virtualOriginMesh=new Dt.a("",r._virtualScene),this._virtualOriginMesh.rotationQuaternion=new u.b,this._virtualDragMesh=new Dt.a("",r._virtualScene),this._virtualDragMesh.rotationQuaternion=new u.b,this._pointerObserver=this._scene.onPointerObservable.add(function(a,s){if(a.type==Tt.a.POINTERDOWN){if(!e.dragging&&a.pickInfo&&a.pickInfo.hit&&a.pickInfo.pickedMesh&&a.pickInfo.ray&&(O=a.pickInfo.pickedMesh,e._ownerNode==O||O.isDescendantOf(e._ownerNode))){e._pointerCamera&&e._pointerCamera.cameraRigMode==gt.a.RIG_MODE_NONE&&a.pickInfo.ray.origin.copyFrom(e._pointerCamera.globalPosition),n=e._ownerNode,jn.a._RemoveAndStorePivotPoint(n),i.copyFrom(a.pickInfo.ray.origin),e._virtualOriginMesh.position.copyFrom(a.pickInfo.ray.origin),e._virtualOriginMesh.lookAt(a.pickInfo.ray.origin.add(a.pickInfo.ray.direction)),e._virtualOriginMesh.removeChild(e._virtualDragMesh),n.computeWorldMatrix(),e._virtualDragMesh.position.copyFrom(n.absolutePosition),n.rotationQuaternion||(n.rotationQuaternion=u.b.RotationYawPitchRoll(n.rotation.y,n.rotation.x,n.rotation.z));var d=n.parent;n.setParent(null),e._virtualDragMesh.rotationQuaternion.copyFrom(n.rotationQuaternion),n.setParent(d),e._virtualOriginMesh.addChild(e._virtualDragMesh),e._targetPosition.copyFrom(e._virtualDragMesh.absolutePosition),e.dragging=!0,e.currentDraggingPointerID=a.event.pointerId,e.detachCameraControls&&e._pointerCamera&&!e._pointerCamera.leftCamera&&(e._pointerCamera.inputs.attachedToElement?(e._pointerCamera.detachControl(),e._attachedToElement=!0):e._attachedToElement=!1),jn.a._RestorePivotPoint(n),e.onDragStartObservable.notifyObservers({})}}else if(a.type==Tt.a.POINTERUP||a.type==Tt.a.POINTERDOUBLETAP)e.currentDraggingPointerID==a.event.pointerId&&(e.dragging=!1,e._moving=!1,e.currentDraggingPointerID=-1,n=null,e._virtualOriginMesh.removeChild(e._virtualDragMesh),e.detachCameraControls&&e._attachedToElement&&e._pointerCamera&&!e._pointerCamera.leftCamera&&(e._pointerCamera.attachControl(!0),e._attachedToElement=!1),e.onDragEndObservable.notifyObservers({}));else if(a.type==Tt.a.POINTERMOVE&&e.currentDraggingPointerID==a.event.pointerId&&e.dragging&&a.pickInfo&&a.pickInfo.ray&&n){var p=e.zDragFactor;e._pointerCamera&&e._pointerCamera.cameraRigMode==gt.a.RIG_MODE_NONE&&(a.pickInfo.ray.origin.copyFrom(e._pointerCamera.globalPosition),p=0);var b=a.pickInfo.ray.origin.subtract(i);i.copyFrom(a.pickInfo.ray.origin);var x=-u.e.Dot(b,a.pickInfo.ray.direction);e._virtualOriginMesh.addChild(e._virtualDragMesh),e._virtualDragMesh.position.z-=e._virtualDragMesh.position.z<1?x*e.zDragFactor:x*p*e._virtualDragMesh.position.z,e._virtualDragMesh.position.z<0&&(e._virtualDragMesh.position.z=0),e._virtualOriginMesh.position.copyFrom(a.pickInfo.ray.origin),e._virtualOriginMesh.lookAt(a.pickInfo.ray.origin.add(a.pickInfo.ray.direction)),e._virtualOriginMesh.removeChild(e._virtualDragMesh),e._targetPosition.copyFrom(e._virtualDragMesh.absolutePosition),n.parent&&u.e.TransformCoordinatesToRef(e._targetPosition,u.a.Invert(n.parent.getWorldMatrix()),e._targetPosition),e._moving||e._startingOrientation.copyFrom(e._virtualDragMesh.rotationQuaternion),e._moving=!0}var O});var o=new u.b;this._sceneRenderObserver=t.getScene().onBeforeRenderObservable.add(function(){if(e.dragging&&e._moving&&n){if(jn.a._RemoveAndStorePivotPoint(n),n.position.addInPlace(e._targetPosition.subtract(n.position).scale(e.dragDeltaRatio)),e.rotateDraggedObject){o.copyFrom(e._startingOrientation),o.x=-o.x,o.y=-o.y,o.z=-o.z,e._virtualDragMesh.rotationQuaternion.multiplyToRef(o,o),u.b.RotationYawPitchRollToRef(o.toEulerAngles("xyz").y,0,0,o),o.multiplyToRef(e._startingOrientation,o);var a=n.parent;(!a||a.scaling&&!a.scaling.isNonUniformWithinEpsilon(.001))&&(n.setParent(null),u.b.SlerpToRef(n.rotationQuaternion,o,e.dragDeltaRatio,n.rotationQuaternion),n.setParent(a))}jn.a._RestorePivotPoint(n),e.onDragObservable.notifyObservers()}})},r.prototype.detach=function(){this._scene&&(this.detachCameraControls&&this._attachedToElement&&this._pointerCamera&&!this._pointerCamera.leftCamera&&(this._pointerCamera.attachControl(!0),this._attachedToElement=!1),this._scene.onPointerObservable.remove(this._pointerObserver)),this._ownerNode&&this._ownerNode.getScene().onBeforeRenderObservable.remove(this._sceneRenderObserver),this._virtualOriginMesh&&this._virtualOriginMesh.dispose(),this._virtualDragMesh&&this._virtualDragMesh.dispose(),this.onDragEndObservable.clear(),this.onDragObservable.clear(),this.onDragStartObservable.clear()},r}(),Nf=function(){function r(t,e,n){if(this.targetPosition=u.e.Zero(),this.poleTargetPosition=u.e.Zero(),this.poleTargetLocalOffset=u.e.Zero(),this.poleAngle=0,this.slerpAmount=1,this._bone1Quat=u.b.Identity(),this._bone1Mat=u.a.Identity(),this._bone2Ang=Math.PI,this._maxAngle=Math.PI,this._rightHandedSystem=!1,this._bendAxis=u.e.Right(),this._slerping=!1,this._adjustRoll=0,this._bone2=e,this._bone1=e.getParent(),this._bone1){this.mesh=t;var i=e.getPosition();if(e.getAbsoluteTransform().determinant()>0&&(this._rightHandedSystem=!0,this._bendAxis.x=0,this._bendAxis.y=0,this._bendAxis.z=-1,i.x>i.y&&i.x>i.z&&(this._adjustRoll=.5*Math.PI,this._bendAxis.z=1)),this._bone1.length){var o=this._bone1.getScale(),a=this._bone2.getScale();this._bone1Length=this._bone1.length*o.y*this.mesh.scaling.y,this._bone2Length=this._bone2.length*a.y*this.mesh.scaling.y}else if(this._bone1.children[0]){t.computeWorldMatrix(!0);var s=this._bone2.children[0].getAbsolutePosition(t),d=this._bone2.getAbsolutePosition(t),p=this._bone1.getAbsolutePosition(t);this._bone1Length=u.e.Distance(s,d),this._bone2Length=u.e.Distance(d,p)}this._bone1.getRotationMatrixToRef(ye.c.WORLD,t,this._bone1Mat),this.maxAngle=Math.PI,n&&(n.targetMesh&&(this.targetMesh=n.targetMesh,this.targetMesh.computeWorldMatrix(!0)),n.poleTargetMesh?(this.poleTargetMesh=n.poleTargetMesh,this.poleTargetMesh.computeWorldMatrix(!0)):n.poleTargetBone?this.poleTargetBone=n.poleTargetBone:this._bone1.getParent()&&(this.poleTargetBone=this._bone1.getParent()),n.poleTargetLocalOffset&&this.poleTargetLocalOffset.copyFrom(n.poleTargetLocalOffset),n.poleAngle&&(this.poleAngle=n.poleAngle),n.bendAxis&&this._bendAxis.copyFrom(n.bendAxis),n.maxAngle&&(this.maxAngle=n.maxAngle),n.slerpAmount&&(this.slerpAmount=n.slerpAmount))}}return Object.defineProperty(r.prototype,"maxAngle",{get:function(){return this._maxAngle},set:function(t){this._setMaxAngle(t)},enumerable:!1,configurable:!0}),r.prototype._setMaxAngle=function(t){t<0&&(t=0),(t>Math.PI||t==null)&&(t=Math.PI),this._maxAngle=t;var e=this._bone1Length,n=this._bone2Length;this._maxReach=Math.sqrt(e*e+n*n-2*e*n*Math.cos(t))},r.prototype.update=function(){var t=this._bone1;if(t){var e=this.targetPosition,n=this.poleTargetPosition,i=r._tmpMats[0],o=r._tmpMats[1];this.targetMesh&&e.copyFrom(this.targetMesh.getAbsolutePosition()),this.poleTargetBone?this.poleTargetBone.getAbsolutePositionFromLocalToRef(this.poleTargetLocalOffset,this.mesh,n):this.poleTargetMesh&&u.e.TransformCoordinatesToRef(this.poleTargetLocalOffset,this.poleTargetMesh.getWorldMatrix(),n);var a=r._tmpVecs[0],s=r._tmpVecs[1],d=r._tmpVecs[2],p=r._tmpVecs[3],b=r._tmpVecs[4],x=r._tmpQuat;t.getAbsolutePositionToRef(this.mesh,a),n.subtractToRef(a,b),b.x==0&&b.y==0&&b.z==0?b.y=1:b.normalize(),e.subtractToRef(a,p),p.normalize(),u.e.CrossToRef(p,b,s),s.normalize(),u.e.CrossToRef(p,s,d),d.normalize(),u.a.FromXYZAxesToRef(d,p,s,i);var O=this._bone1Length,B=this._bone2Length,F=u.e.Distance(a,e);this._maxReach>0&&(F=Math.min(this._maxReach,F));var z=(B*B+F*F-O*O)/(2*B*F),J=(F*F+O*O-B*B)/(2*F*O);z>1&&(z=1),J>1&&(J=1),z<-1&&(z=-1),J<-1&&(J=-1);var ie=Math.acos(z),se=Math.acos(J),ce=-ie-se;if(this._rightHandedSystem)u.a.RotationYawPitchRollToRef(0,0,this._adjustRoll,o),o.multiplyToRef(i,i),u.a.RotationAxisToRef(this._bendAxis,se,o),o.multiplyToRef(i,i);else{var ue=r._tmpVecs[5];ue.copyFrom(this._bendAxis),ue.x*=-1,u.a.RotationAxisToRef(ue,-se,o),o.multiplyToRef(i,i)}this.poleAngle&&(u.a.RotationAxisToRef(p,this.poleAngle,o),i.multiplyToRef(o,i)),this._bone1&&(this.slerpAmount<1?(this._slerping||u.b.FromRotationMatrixToRef(this._bone1Mat,this._bone1Quat),u.b.FromRotationMatrixToRef(i,x),u.b.SlerpToRef(this._bone1Quat,x,this.slerpAmount,this._bone1Quat),ce=this._bone2Ang*(1-this.slerpAmount)+ce*this.slerpAmount,this._bone1.setRotationQuaternion(this._bone1Quat,ye.c.WORLD,this.mesh),this._slerping=!0):(this._bone1.setRotationMatrix(i,ye.c.WORLD,this.mesh),this._bone1Mat.copyFrom(i),this._slerping=!1)),this._bone2.setAxisAngle(this._bendAxis,ce,ye.c.LOCAL),this._bone2Ang=ce}},r._tmpVecs=[u.e.Zero(),u.e.Zero(),u.e.Zero(),u.e.Zero(),u.e.Zero(),u.e.Zero()],r._tmpQuat=u.b.Identity(),r._tmpMats=[u.a.Identity(),u.a.Identity()],r}(),wf=function(){function r(t,e,n,i){if(this.upAxis=u.e.Up(),this.upAxisSpace=ye.c.LOCAL,this.adjustYaw=0,this.adjustPitch=0,this.adjustRoll=0,this.slerpAmount=1,this._boneQuat=u.b.Identity(),this._slerping=!1,this._firstFrameSkipped=!1,this._fowardAxis=u.e.Forward(),this.mesh=t,this.bone=e,this.target=n,i&&(i.adjustYaw&&(this.adjustYaw=i.adjustYaw),i.adjustPitch&&(this.adjustPitch=i.adjustPitch),i.adjustRoll&&(this.adjustRoll=i.adjustRoll),i.maxYaw!=null?this.maxYaw=i.maxYaw:this.maxYaw=Math.PI,i.minYaw!=null?this.minYaw=i.minYaw:this.minYaw=-Math.PI,i.maxPitch!=null?this.maxPitch=i.maxPitch:this.maxPitch=Math.PI,i.minPitch!=null?this.minPitch=i.minPitch:this.minPitch=-Math.PI,i.slerpAmount!=null&&(this.slerpAmount=i.slerpAmount),i.upAxis!=null&&(this.upAxis=i.upAxis),i.upAxisSpace!=null&&(this.upAxisSpace=i.upAxisSpace),i.yawAxis!=null||i.pitchAxis!=null)){var o=ye.a.Y,a=ye.a.X;i.yawAxis!=null&&(o=i.yawAxis.clone()).normalize(),i.pitchAxis!=null&&(a=i.pitchAxis.clone()).normalize();var s=u.e.Cross(a,o);this._transformYawPitch=u.a.Identity(),u.a.FromXYZAxesToRef(a,o,s,this._transformYawPitch),this._transformYawPitchInv=this._transformYawPitch.clone(),this._transformYawPitch.invert()}e.getParent()||this.upAxisSpace!=ye.c.BONE||(this.upAxisSpace=ye.c.LOCAL)}return Object.defineProperty(r.prototype,"minYaw",{get:function(){return this._minYaw},set:function(t){this._minYaw=t,this._minYawSin=Math.sin(t),this._minYawCos=Math.cos(t),this._maxYaw!=null&&(this._midYawConstraint=.5*this._getAngleDiff(this._minYaw,this._maxYaw)+this._minYaw,this._yawRange=this._maxYaw-this._minYaw)},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"maxYaw",{get:function(){return this._maxYaw},set:function(t){this._maxYaw=t,this._maxYawSin=Math.sin(t),this._maxYawCos=Math.cos(t),this._minYaw!=null&&(this._midYawConstraint=.5*this._getAngleDiff(this._minYaw,this._maxYaw)+this._minYaw,this._yawRange=this._maxYaw-this._minYaw)},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"minPitch",{get:function(){return this._minPitch},set:function(t){this._minPitch=t,this._minPitchTan=Math.tan(t)},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"maxPitch",{get:function(){return this._maxPitch},set:function(t){this._maxPitch=t,this._maxPitchTan=Math.tan(t)},enumerable:!1,configurable:!0}),r.prototype.update=function(){if(this.slerpAmount<1&&!this._firstFrameSkipped)this._firstFrameSkipped=!0;else{var t=this.bone,e=r._tmpVecs[0];t.getAbsolutePositionToRef(this.mesh,e);var n=this.target,i=r._tmpMats[0],o=r._tmpMats[1],a=this.mesh,s=t.getParent(),d=r._tmpVecs[1];d.copyFrom(this.upAxis),this.upAxisSpace==ye.c.BONE&&s?(this._transformYawPitch&&u.e.TransformCoordinatesToRef(d,this._transformYawPitchInv,d),s.getDirectionToRef(d,this.mesh,d)):this.upAxisSpace==ye.c.LOCAL&&(a.getDirectionToRef(d,d),a.scaling.x==1&&a.scaling.y==1&&a.scaling.z==1||d.normalize());var p=!1,b=!1;if(this._maxYaw==Math.PI&&this._minYaw==-Math.PI||(p=!0),this._maxPitch==Math.PI&&this._minPitch==-Math.PI||(b=!0),p||b){var x=r._tmpMats[2],O=r._tmpMats[3];if(this.upAxisSpace==ye.c.BONE&&d.y==1&&s)s.getRotationMatrixToRef(ye.c.WORLD,this.mesh,x);else if(this.upAxisSpace!=ye.c.LOCAL||d.y!=1||s){(F=r._tmpVecs[2]).copyFrom(this._fowardAxis),this._transformYawPitch&&u.e.TransformCoordinatesToRef(F,this._transformYawPitchInv,F),s?s.getDirectionToRef(F,this.mesh,F):a.getDirectionToRef(F,F);var B=u.e.Cross(d,F);B.normalize();var F=u.e.Cross(B,d);u.a.FromXYZAxesToRef(B,d,F,x)}else x.copyFrom(a.getWorldMatrix());x.invertToRef(O);var z=null;if(b){var J=r._tmpVecs[3];n.subtractToRef(e,J),u.e.TransformCoordinatesToRef(J,O,J),z=Math.sqrt(J.x*J.x+J.z*J.z);var ie=Math.atan2(J.y,z),se=ie;ie>this._maxPitch?(J.y=this._maxPitchTan*z,se=this._maxPitch):iethis._maxYaw||ceMath.PI?this._isAngleBetween(ce,this._maxYaw,this._midYawConstraint)?(J.z=this._maxYawCos*z,J.x=this._maxYawSin*z,ue=this._maxYaw):this._isAngleBetween(ce,this._midYawConstraint,this._minYaw)&&(J.z=this._minYawCos*z,J.x=this._minYawSin*z,ue=this._minYaw):ce>this._maxYaw?(J.z=this._maxYawCos*z,J.x=this._maxYawSin*z,ue=this._maxYaw):ceMath.PI){var fe=r._tmpVecs[8];fe.copyFrom(ye.a.Z),this._transformYawPitch&&u.e.TransformCoordinatesToRef(fe,this._transformYawPitchInv,fe);var ve=r._tmpMats[4];this._boneQuat.toRotationMatrix(ve),this.mesh.getWorldMatrix().multiplyToRef(ve,ve),u.e.TransformCoordinatesToRef(fe,ve,fe),u.e.TransformCoordinatesToRef(fe,O,fe);var Te=Math.atan2(fe.x,fe.z);if(this._getAngleBetween(Te,ce)>this._getAngleBetween(Te,this._midYawConstraint)){z==null&&(z=Math.sqrt(J.x*J.x+J.z*J.z));var Re=this._getAngleBetween(Te,this._maxYaw);this._getAngleBetween(Te,this._minYaw)Math.PI?n-=2*Math.PI:n<-Math.PI&&(n+=2*Math.PI),n},r.prototype._getAngleBetween=function(t,e){var n=0;return(n=(t=(t%=2*Math.PI)<0?t+2*Math.PI:t)<(e=(e%=2*Math.PI)<0?e+2*Math.PI:e)?e-t:t-e)>Math.PI&&(n=2*Math.PI-n),n},r.prototype._isAngleBetween=function(t,e,n){if(t=(t%=2*Math.PI)<0?t+2*Math.PI:t,(e=(e%=2*Math.PI)<0?e+2*Math.PI:e)<(n=(n%=2*Math.PI)<0?n+2*Math.PI:n)){if(t>e&&tn&&t>Re,Ee=0;Ee<6;Ee++){var Se=Te[Re][Ee];ve&&(Se=bl(Se,Ae,Ae,i)),B.texImage2D(Ee,Re,fe,Ae,Ae,0,ue,ce,Se)}O._bindTextureDirectly(B.TEXTURE_CUBE_MAP,null)}else O.updateRawCubeTexture(F,se,n,i,x);F.isReady=!0,t?._removePendingData(F),d&&d()}})(z)},void 0,t?.offlineProvider,!0,function(z,J){t?._removePendingData(F),p&&z&&p(z.status+" "+z.statusText,J)}),F},Bt.a.prototype.createRawTexture2DArray=yl(!1),Bt.a.prototype.createRawTexture3D=yl(!0),Bt.a.prototype.updateRawTexture2DArray=Tl(!1),Bt.a.prototype.updateRawTexture3D=Tl(!0);var ni=function(r){function t(e,n,i,o,a,s,d,p,b){s===void 0&&(s=!0),d===void 0&&(d=!1),p===void 0&&(p=h.a.TEXTURE_TRILINEAR_SAMPLINGMODE),b===void 0&&(b=h.a.TEXTURETYPE_UNSIGNED_INT);var x=r.call(this,null,a,!s,d)||this;return x.format=o,x._engine&&(x._texture=x._engine.createRawTexture(e,n,i,o,s,d,p,null,b),x.wrapU=we.a.CLAMP_ADDRESSMODE,x.wrapV=we.a.CLAMP_ADDRESSMODE),x}return Object(c.d)(t,r),t.prototype.update=function(e){this._getEngine().updateRawTexture(this._texture,e,this._texture.format,this._texture.invertY,null,this._texture.type)},t.CreateLuminanceTexture=function(e,n,i,o,a,s,d){return a===void 0&&(a=!0),s===void 0&&(s=!1),d===void 0&&(d=h.a.TEXTURE_TRILINEAR_SAMPLINGMODE),new t(e,n,i,h.a.TEXTUREFORMAT_LUMINANCE,o,a,s,d)},t.CreateLuminanceAlphaTexture=function(e,n,i,o,a,s,d){return a===void 0&&(a=!0),s===void 0&&(s=!1),d===void 0&&(d=h.a.TEXTURE_TRILINEAR_SAMPLINGMODE),new t(e,n,i,h.a.TEXTUREFORMAT_LUMINANCE_ALPHA,o,a,s,d)},t.CreateAlphaTexture=function(e,n,i,o,a,s,d){return a===void 0&&(a=!0),s===void 0&&(s=!1),d===void 0&&(d=h.a.TEXTURE_TRILINEAR_SAMPLINGMODE),new t(e,n,i,h.a.TEXTUREFORMAT_ALPHA,o,a,s,d)},t.CreateRGBTexture=function(e,n,i,o,a,s,d,p){return a===void 0&&(a=!0),s===void 0&&(s=!1),d===void 0&&(d=h.a.TEXTURE_TRILINEAR_SAMPLINGMODE),p===void 0&&(p=h.a.TEXTURETYPE_UNSIGNED_INT),new t(e,n,i,h.a.TEXTUREFORMAT_RGB,o,a,s,d,p)},t.CreateRGBATexture=function(e,n,i,o,a,s,d,p){return a===void 0&&(a=!0),s===void 0&&(s=!1),d===void 0&&(d=h.a.TEXTURE_TRILINEAR_SAMPLINGMODE),p===void 0&&(p=h.a.TEXTURETYPE_UNSIGNED_INT),new t(e,n,i,h.a.TEXTUREFORMAT_RGBA,o,a,s,d,p)},t.CreateRTexture=function(e,n,i,o,a,s,d,p){return a===void 0&&(a=!0),s===void 0&&(s=!1),d===void 0&&(d=we.a.TRILINEAR_SAMPLINGMODE),p===void 0&&(p=h.a.TEXTURETYPE_FLOAT),new t(e,n,i,h.a.TEXTUREFORMAT_R,o,a,s,d,p)},t}(we.a),wo=function(){function r(t,e,n){this.name=t,this.id=e,this.bones=new Array,this.needInitialSkinMatrix=!1,this.overrideMesh=null,this._isDirty=!0,this._meshesWithPoseMatrix=new Array,this._identity=u.a.Identity(),this._ranges={},this._lastAbsoluteTransformsUpdateId=-1,this._canUseTextureForBones=!1,this._uniqueId=0,this._numBonesWithLinkedTransformNode=0,this._hasWaitingData=null,this._waitingOverrideMeshId=null,this.doNotSerialize=!1,this._useTextureToStoreBoneMatrices=!0,this._animationPropertiesOverride=null,this.onBeforeComputeObservable=new R.c,this.bones=[],this._scene=n||te.a.LastCreatedScene,this._uniqueId=this._scene.getUniqueId(),this._scene.addSkeleton(this),this._isDirty=!0;var i=this._scene.getEngine().getCaps();this._canUseTextureForBones=i.textureFloat&&i.maxVertexTextureImageUnits>0}return Object.defineProperty(r.prototype,"useTextureToStoreBoneMatrices",{get:function(){return this._useTextureToStoreBoneMatrices},set:function(t){this._useTextureToStoreBoneMatrices=t,this._markAsDirty()},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"animationPropertiesOverride",{get:function(){return this._animationPropertiesOverride?this._animationPropertiesOverride:this._scene.animationPropertiesOverride},set:function(t){this._animationPropertiesOverride=t},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"isUsingTextureForMatrices",{get:function(){return this.useTextureToStoreBoneMatrices&&this._canUseTextureForBones},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"uniqueId",{get:function(){return this._uniqueId},enumerable:!1,configurable:!0}),r.prototype.getClassName=function(){return"Skeleton"},r.prototype.getChildren=function(){return this.bones.filter(function(t){return!t.getParent()})},r.prototype.getTransformMatrices=function(t){return this.needInitialSkinMatrix&&t._bonesTransformMatrices?t._bonesTransformMatrices:(this._transformMatrices||this.prepare(),this._transformMatrices)},r.prototype.getTransformMatrixTexture=function(t){return this.needInitialSkinMatrix&&t._transformMatrixTexture?t._transformMatrixTexture:this._transformMatrixTexture},r.prototype.getScene=function(){return this._scene},r.prototype.toString=function(t){var e="Name: "+this.name+", nBones: "+this.bones.length;if(e+=", nAnimationRanges: "+(this._ranges?Object.keys(this._ranges).length:"none"),t){e+=", Ranges: {";var n=!0;for(var i in this._ranges)n&&(e+=", ",n=!1),e+=i;e+="}"}return e},r.prototype.getBoneIndexByName=function(t){for(var e=0,n=this.bones.length;e-1&&this._meshesWithPoseMatrix.splice(e,1)},r.prototype._computeTransformMatrices=function(t,e){this.onBeforeComputeObservable.notifyObservers(this);for(var n=0;n0)for(var t=0,e=this.bones;t0&&(s.animation=o.animations[0].serialize()),n.ranges=[],this._ranges){var p=this._ranges[d];if(p){var b={};b.name=d,b.from=p.from,b.to=p.to,n.ranges.push(b)}}}return n},r.Parse=function(t,e){var n,i=new r(t.name,t.id,e);for(t.dimensionsAtRest&&(i.dimensionsAtRest=u.e.FromArray(t.dimensionsAtRest)),i.needInitialSkinMatrix=t.needInitialSkinMatrix,t.overrideMeshId&&(i._hasWaitingData=!0,i._waitingOverrideMeshId=t.overrideMeshId),n=0;n-1&&(s=i.bones[o.parentBoneIndex]);var d=o.rest?u.a.FromArray(o.rest):null,p=new Be(o.name,i,s,u.a.FromArray(o.matrix),d,null,a);o.id!==void 0&&o.id!==null&&(p.id=o.id),o.length&&(p.length=o.length),o.metadata&&(p.metadata=o.metadata),o.animation&&p.animations.push(k.Parse(o.animation)),o.linkedTransformNodeId!==void 0&&o.linkedTransformNodeId!==null&&(i._hasWaitingData=!0,p._waitingTransformNodeId=o.linkedTransformNodeId)}if(t.ranges)for(n=0;n0&&(t=this._meshesWithPoseMatrix[0].getPoseMatrix()),t},r.prototype.sortBones=function(){for(var t=new Array,e=new Array(this.bones.length),n=0;n=2&&(this._leftStick={x:this.browserGamepad.axes[this._leftStickAxisX],y:this.browserGamepad.axes[this._leftStickAxisY]}),this.browserGamepad.axes.length>=4&&(this._rightStick={x:this.browserGamepad.axes[this._rightStickAxisX],y:this.browserGamepad.axes[this._rightStickAxisY]})}return Object.defineProperty(r.prototype,"isConnected",{get:function(){return this._isConnected},enumerable:!1,configurable:!0}),r.prototype.onleftstickchanged=function(t){this._onleftstickchanged=t},r.prototype.onrightstickchanged=function(t){this._onrightstickchanged=t},Object.defineProperty(r.prototype,"leftStick",{get:function(){return this._leftStick},set:function(t){!this._onleftstickchanged||this._leftStick.x===t.x&&this._leftStick.y===t.y||this._onleftstickchanged(t),this._leftStick=t},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"rightStick",{get:function(){return this._rightStick},set:function(t){!this._onrightstickchanged||this._rightStick.x===t.x&&this._rightStick.y===t.y||this._onrightstickchanged(t),this._rightStick=t},enumerable:!1,configurable:!0}),r.prototype.update=function(){this._leftStick&&(this.leftStick={x:this.browserGamepad.axes[this._leftStickAxisX],y:this.browserGamepad.axes[this._leftStickAxisY]},this._invertLeftStickY&&(this.leftStick.y*=-1)),this._rightStick&&(this.rightStick={x:this.browserGamepad.axes[this._rightStickAxisX],y:this.browserGamepad.axes[this._rightStickAxisY]})},r.prototype.dispose=function(){},r.GAMEPAD=0,r.GENERIC=1,r.XBOX=2,r.POSE_ENABLED=3,r.DUALSHOCK=4,r}(),El=function(r){function t(e,n,i){var o=r.call(this,e,n,i)||this;return o.onButtonDownObservable=new R.c,o.onButtonUpObservable=new R.c,o.type=hn.GENERIC,o._buttons=new Array(i.buttons.length),o}return Object(c.d)(t,r),t.prototype.onbuttondown=function(e){this._onbuttondown=e},t.prototype.onbuttonup=function(e){this._onbuttonup=e},t.prototype._setButtonValue=function(e,n,i){return e!==n&&(e===1&&(this._onbuttondown&&this._onbuttondown(i),this.onButtonDownObservable.notifyObservers(i)),e===0&&(this._onbuttonup&&this._onbuttonup(i),this.onButtonUpObservable.notifyObservers(i))),e},t.prototype.update=function(){r.prototype.update.call(this);for(var e=0;e.005&&(t.inertialAlphaOffset+=n)}if(e.y!=0){var i=e.y/this.gamepadRotationSensibility*this._yAxisScale;i!=0&&Math.abs(i)>.005&&(t.inertialBetaOffset+=i)}}var o=this.gamepad.leftStick;if(o&&o.y!=0){var a=o.y/this.gamepadMoveSensibility;a!=0&&Math.abs(a)>.005&&(this.camera.inertialRadiusOffset-=a)}}},r.prototype.getClassName=function(){return"ArcRotateCameraGamepadInput"},r.prototype.getSimpleName=function(){return"gamepad"},Object(c.c)([Object(L.c)()],r.prototype,"gamepadRotationSensibility",void 0),Object(c.c)([Object(L.c)()],r.prototype,"gamepadMoveSensibility",void 0),r}();un.ArcRotateCameraGamepadInput=ja;var qi=f(66),Ha=function(){function r(){this.keysUp=[38],this.keysDown=[40],this.keysLeft=[37],this.keysRight=[39],this.keysReset=[220],this.panningSensibility=50,this.zoomingSensibility=25,this.useAltToZoom=!0,this.angularSpeed=.01,this._keys=new Array}return r.prototype.attachControl=function(t){var e=this;t=Xe.b.BackCompatCameraNoPreventDefault(arguments),this._onCanvasBlurObserver||(this._scene=this.camera.getScene(),this._engine=this._scene.getEngine(),this._onCanvasBlurObserver=this._engine.onCanvasBlurObservable.add(function(){e._keys=[]}),this._onKeyboardObserver=this._scene.onKeyboardObservable.add(function(n){var i,o=n.event;o.metaKey||(n.type===qi.a.KEYDOWN?(e._ctrlPressed=o.ctrlKey,e._altPressed=o.altKey,(e.keysUp.indexOf(o.keyCode)!==-1||e.keysDown.indexOf(o.keyCode)!==-1||e.keysLeft.indexOf(o.keyCode)!==-1||e.keysRight.indexOf(o.keyCode)!==-1||e.keysReset.indexOf(o.keyCode)!==-1)&&((i=e._keys.indexOf(o.keyCode))===-1&&e._keys.push(o.keyCode),o.preventDefault&&(t||o.preventDefault()))):e.keysUp.indexOf(o.keyCode)===-1&&e.keysDown.indexOf(o.keyCode)===-1&&e.keysLeft.indexOf(o.keyCode)===-1&&e.keysRight.indexOf(o.keyCode)===-1&&e.keysReset.indexOf(o.keyCode)===-1||((i=e._keys.indexOf(o.keyCode))>=0&&e._keys.splice(i,1),o.preventDefault&&(t||o.preventDefault())))}))},r.prototype.detachControl=function(t){this._scene&&(this._onKeyboardObserver&&this._scene.onKeyboardObservable.remove(this._onKeyboardObserver),this._onCanvasBlurObserver&&this._engine.onCanvasBlurObservable.remove(this._onCanvasBlurObserver),this._onKeyboardObserver=null,this._onCanvasBlurObserver=null),this._keys=[]},r.prototype.checkInputs=function(){if(this._onKeyboardObserver)for(var t=this.camera,e=0;e0?n/(1+this.wheelDeltaPercentage):n*(1+this.wheelDeltaPercentage)},r.prototype.attachControl=function(t){var e=this;t=Xe.b.BackCompatCameraNoPreventDefault(arguments),this._wheel=function(n,i){if(n.type===Tt.a.POINTERWHEEL){var o=n.event,a=0,s=o,d=0;if(d=s.wheelDelta?s.wheelDelta:60*-(o.deltaY||o.detail),e.wheelDeltaPercentage){if((a=e.computeDeltaFromMouseWheelLegacyEvent(d,e.camera.radius))>0){for(var p=e.camera.radius,b=e.camera.inertialRadiusOffset+a,x=0;x<20&&Math.abs(b)>.001;x++)p-=b,b*=e.camera.inertia;p=$.a.Clamp(p,0,Number.MAX_VALUE),a=e.computeDeltaFromMouseWheelLegacyEvent(d,p)}}else a=d/(40*e.wheelPrecision);a&&(e.camera.inertialRadiusOffset+=a),o.preventDefault&&(t||o.preventDefault())}},this._observer=this.camera.getScene().onPointerObservable.add(this._wheel,Tt.a.POINTERWHEEL)},r.prototype.detachControl=function(t){this._observer&&(this.camera.getScene().onPointerObservable.remove(this._observer),this._observer=null,this._wheel=null)},r.prototype.getClassName=function(){return"ArcRotateCameraMouseWheelInput"},r.prototype.getSimpleName=function(){return"mousewheel"},Object(c.c)([Object(L.c)()],r.prototype,"wheelPrecision",void 0),Object(c.c)([Object(L.c)()],r.prototype,"wheelDeltaPercentage",void 0),r}();un.ArcRotateCameraMouseWheelInput=Wa;var Sl=function(){function r(){this.buttons=[0,1,2]}return r.prototype.attachControl=function(t){var e=this;t=Xe.b.BackCompatCameraNoPreventDefault(arguments);var n=this.camera.getEngine(),i=n.getInputElement(),o=0,a=null;this.pointA=null,this.pointB=null,this._altKey=!1,this._ctrlKey=!1,this._metaKey=!1,this._shiftKey=!1,this._buttonsPressed=0,this._pointerInput=function(d,p){var b=d.event,x=b.pointerType==="touch";if(!n.isInVRExclusivePointerMode&&(d.type===Tt.a.POINTERMOVE||e.buttons.indexOf(b.button)!==-1)){var O=b.srcElement||b.target;if(e._altKey=b.altKey,e._ctrlKey=b.ctrlKey,e._metaKey=b.metaKey,e._shiftKey=b.shiftKey,e._buttonsPressed=b.buttons,n.isPointerLock){var B=b.movementX||b.mozMovementX||b.webkitMovementX||b.msMovementX||0,F=b.movementY||b.mozMovementY||b.webkitMovementY||b.msMovementY||0;e.onTouch(null,B,F),e.pointA=null,e.pointB=null}else if(d.type===Tt.a.POINTERDOWN&&O){try{O.setPointerCapture(b.pointerId)}catch{}e.pointA===null?e.pointA={x:b.clientX,y:b.clientY,pointerId:b.pointerId,type:b.pointerType}:e.pointB===null&&(e.pointB={x:b.clientX,y:b.clientY,pointerId:b.pointerId,type:b.pointerType}),e.onButtonDown(b),t||(b.preventDefault(),i&&i.focus())}else if(d.type===Tt.a.POINTERDOUBLETAP)e.onDoubleTap(b.pointerType);else if(d.type===Tt.a.POINTERUP&&O){try{O.releasePointerCapture(b.pointerId)}catch{}x||(e.pointB=null),n._badOS?e.pointA=e.pointB=null:e.pointB&&e.pointA&&e.pointA.pointerId==b.pointerId?(e.pointA=e.pointB,e.pointB=null):e.pointA&&e.pointB&&e.pointB.pointerId==b.pointerId?e.pointB=null:e.pointA=e.pointB=null,(o!==0||a)&&(e.onMultiTouch(e.pointA,e.pointB,o,0,a,null),o=0,a=null),e.onButtonUp(b),t||b.preventDefault()}else if(d.type===Tt.a.POINTERMOVE){if(t||b.preventDefault(),e.pointA&&e.pointB===null)B=b.clientX-e.pointA.x,F=b.clientY-e.pointA.y,e.onTouch(e.pointA,B,F),e.pointA.x=b.clientX,e.pointA.y=b.clientY;else if(e.pointA&&e.pointB){var z=e.pointA.pointerId===b.pointerId?e.pointA:e.pointB;z.x=b.clientX,z.y=b.clientY;var J=e.pointA.x-e.pointB.x,ie=e.pointA.y-e.pointB.y,se=J*J+ie*ie,ce={x:(e.pointA.x+e.pointB.x)/2,y:(e.pointA.y+e.pointB.y)/2,pointerId:b.pointerId,type:d.type};e.onMultiTouch(e.pointA,e.pointB,o,se,a,ce),a=ce,o=se}}}},this._observer=this.camera.getScene().onPointerObservable.add(this._pointerInput,Tt.a.POINTERDOWN|Tt.a.POINTERUP|Tt.a.POINTERMOVE),this._onLostFocus=function(){e.pointA=e.pointB=null,o=0,a=null,e.onLostFocus()},i&&i.addEventListener("contextmenu",this.onContextMenu.bind(this),!1);var s=this.camera.getScene().getEngine().getHostWindow();s&&Xe.b.RegisterTopRootEvents(s,[{name:"blur",handler:this._onLostFocus}])},r.prototype.detachControl=function(t){if(this._onLostFocus){var e=this.camera.getScene().getEngine().getHostWindow();e&&Xe.b.UnregisterTopRootEvents(e,[{name:"blur",handler:this._onLostFocus}])}if(this._observer){if(this.camera.getScene().onPointerObservable.remove(this._observer),this._observer=null,this.onContextMenu){var n=this.camera.getScene().getEngine().getInputElement();n&&n.removeEventListener("contextmenu",this.onContextMenu)}this._onLostFocus=null}this._altKey=!1,this._ctrlKey=!1,this._metaKey=!1,this._shiftKey=!1,this._buttonsPressed=0},r.prototype.getClassName=function(){return"BaseCameraPointersInput"},r.prototype.getSimpleName=function(){return"pointers"},r.prototype.onDoubleTap=function(t){},r.prototype.onTouch=function(t,e,n){},r.prototype.onMultiTouch=function(t,e,n,i,o,a){},r.prototype.onContextMenu=function(t){t.preventDefault()},r.prototype.onButtonDown=function(t){},r.prototype.onButtonUp=function(t){},r.prototype.onLostFocus=function(){},Object(c.c)([Object(L.c)()],r.prototype,"buttons",void 0),r}(),Xa=function(r){function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.buttons=[0,1,2],e.angularSensibilityX=1e3,e.angularSensibilityY=1e3,e.pinchPrecision=12,e.pinchDeltaPercentage=0,e.useNaturalPinchZoom=!1,e.panningSensibility=1e3,e.multiTouchPanning=!0,e.multiTouchPanAndZoom=!0,e.pinchInwards=!0,e._isPanClick=!1,e._twoFingerActivityCount=0,e._isPinching=!1,e}return Object(c.d)(t,r),t.prototype.getClassName=function(){return"ArcRotateCameraPointersInput"},t.prototype.onTouch=function(e,n,i){this.panningSensibility!==0&&(this._ctrlKey&&this.camera._useCtrlForPanning||this._isPanClick)?(this.camera.inertialPanningX+=-n/this.panningSensibility,this.camera.inertialPanningY+=i/this.panningSensibility):(this.camera.inertialAlphaOffset-=n/this.angularSensibilityX,this.camera.inertialBetaOffset-=i/this.angularSensibilityY)},t.prototype.onDoubleTap=function(e){this.camera.useInputToRestoreState&&this.camera.restoreState()},t.prototype.onMultiTouch=function(e,n,i,o,a,s){if(!(i===0&&a===null||o===0&&s===null)){var d=this.pinchInwards?1:-1;if(this.multiTouchPanAndZoom){if(this.useNaturalPinchZoom?this.camera.radius=this.camera.radius*Math.sqrt(i)/Math.sqrt(o):this.pinchDeltaPercentage?this.camera.inertialRadiusOffset+=.001*(o-i)*this.camera.radius*this.pinchDeltaPercentage:this.camera.inertialRadiusOffset+=(o-i)/(this.pinchPrecision*d*(this.angularSensibilityX+this.angularSensibilityY)/2),this.panningSensibility!==0&&a&&s){var p=s.x-a.x,b=s.y-a.y;this.camera.inertialPanningX+=-p/this.panningSensibility,this.camera.inertialPanningY+=b/this.panningSensibility}}else{this._twoFingerActivityCount++;var x=Math.sqrt(i),O=Math.sqrt(o);this._isPinching||this._twoFingerActivityCount<20&&Math.abs(O-x)>this.camera.pinchToPanMaxDistance?(this.pinchDeltaPercentage?this.camera.inertialRadiusOffset+=.001*(o-i)*this.camera.radius*this.pinchDeltaPercentage:this.camera.inertialRadiusOffset+=(o-i)/(this.pinchPrecision*d*(this.angularSensibilityX+this.angularSensibilityY)/2),this._isPinching=!0):this.panningSensibility!==0&&this.multiTouchPanning&&s&&a&&(p=s.x-a.x,b=s.y-a.y,this.camera.inertialPanningX+=-p/this.panningSensibility,this.camera.inertialPanningY+=b/this.panningSensibility)}}},t.prototype.onButtonDown=function(e){this._isPanClick=e.button===this.camera._panningMouseButton},t.prototype.onButtonUp=function(e){this._twoFingerActivityCount=0,this._isPinching=!1},t.prototype.onLostFocus=function(){this._isPanClick=!1,this._twoFingerActivityCount=0,this._isPinching=!1},Object(c.c)([Object(L.c)()],t.prototype,"buttons",void 0),Object(c.c)([Object(L.c)()],t.prototype,"angularSensibilityX",void 0),Object(c.c)([Object(L.c)()],t.prototype,"angularSensibilityY",void 0),Object(c.c)([Object(L.c)()],t.prototype,"pinchPrecision",void 0),Object(c.c)([Object(L.c)()],t.prototype,"pinchDeltaPercentage",void 0),Object(c.c)([Object(L.c)()],t.prototype,"useNaturalPinchZoom",void 0),Object(c.c)([Object(L.c)()],t.prototype,"panningSensibility",void 0),Object(c.c)([Object(L.c)()],t.prototype,"multiTouchPanning",void 0),Object(c.c)([Object(L.c)()],t.prototype,"multiTouchPanAndZoom",void 0),t}(Sl);un.ArcRotateCameraPointersInput=Xa;var Fo=function(r){function t(e){return r.call(this,e)||this}return Object(c.d)(t,r),t.prototype.addMouseWheel=function(){return this.add(new Wa),this},t.prototype.addPointers=function(){return this.add(new Xa),this},t.prototype.addKeyboard=function(){return this.add(new Ha),this},t}(Zr);Fo.prototype.addVRDeviceOrientation=function(){return this.add(new Ya),this};var Ya=function(){function r(){this.alphaCorrection=1,this.gammaCorrection=1,this._alpha=0,this._gamma=0,this._dirty=!1,this._deviceOrientationHandler=this._onOrientationEvent.bind(this)}return r.prototype.attachControl=function(t){var e=this;t=Xe.b.BackCompatCameraNoPreventDefault(arguments),this.camera.attachControl(t);var n=this.camera.getScene().getEngine().getHostWindow();n&&(typeof DeviceOrientationEvent<"u"&&typeof DeviceOrientationEvent.requestPermission=="function"?DeviceOrientationEvent.requestPermission().then(function(i){i==="granted"?n.addEventListener("deviceorientation",e._deviceOrientationHandler):Xe.b.Warn("Permission not granted.")}).catch(function(i){Xe.b.Error(i)}):n.addEventListener("deviceorientation",this._deviceOrientationHandler))},r.prototype._onOrientationEvent=function(t){t.alpha!==null&&(this._alpha=(0|+t.alpha)*this.alphaCorrection),t.gamma!==null&&(this._gamma=(0|+t.gamma)*this.gammaCorrection),this._dirty=!0},r.prototype.checkInputs=function(){this._dirty&&(this._dirty=!1,this._gamma<0&&(this._gamma=180+this._gamma),this.camera.alpha=-this._alpha/180*Math.PI%Math.PI*2,this.camera.beta=this._gamma/180*Math.PI)},r.prototype.detachControl=function(t){window.removeEventListener("deviceorientation",this._deviceOrientationHandler)},r.prototype.getClassName=function(){return"ArcRotateCameraVRDeviceOrientationInput"},r.prototype.getSimpleName=function(){return"VRDeviceOrientation"},r}();un.ArcRotateCameraVRDeviceOrientationInput=Ya;var Ka=function(){function r(){this.keysForward=[87],this.keysBackward=[83],this.keysUp=[69],this.keysDown=[81],this.keysRight=[68],this.keysLeft=[65],this._keys=new Array}return r.prototype.attachControl=function(t){var e=this;t=Xe.b.BackCompatCameraNoPreventDefault(arguments),this._onCanvasBlurObserver||(this._scene=this.camera.getScene(),this._engine=this._scene.getEngine(),this._onCanvasBlurObserver=this._engine.onCanvasBlurObservable.add(function(){e._keys=[]}),this._onKeyboardObserver=this._scene.onKeyboardObservable.add(function(n){var i,o=n.event;n.type===qi.a.KEYDOWN?e.keysForward.indexOf(o.keyCode)===-1&&e.keysBackward.indexOf(o.keyCode)===-1&&e.keysUp.indexOf(o.keyCode)===-1&&e.keysDown.indexOf(o.keyCode)===-1&&e.keysLeft.indexOf(o.keyCode)===-1&&e.keysRight.indexOf(o.keyCode)===-1||((i=e._keys.indexOf(o.keyCode))===-1&&e._keys.push(o.keyCode),t||o.preventDefault()):e.keysForward.indexOf(o.keyCode)===-1&&e.keysBackward.indexOf(o.keyCode)===-1&&e.keysUp.indexOf(o.keyCode)===-1&&e.keysDown.indexOf(o.keyCode)===-1&&e.keysLeft.indexOf(o.keyCode)===-1&&e.keysRight.indexOf(o.keyCode)===-1||((i=e._keys.indexOf(o.keyCode))>=0&&e._keys.splice(i,1),t||o.preventDefault())}))},r.prototype.detachControl=function(t){this._scene&&(this._onKeyboardObserver&&this._scene.onKeyboardObservable.remove(this._onKeyboardObserver),this._onCanvasBlurObserver&&this._engine.onCanvasBlurObservable.remove(this._onCanvasBlurObserver),this._onKeyboardObserver=null,this._onCanvasBlurObserver=null),this._keys=[]},r.prototype.getClassName=function(){return"FlyCameraKeyboardInput"},r.prototype._onLostFocus=function(t){this._keys=[]},r.prototype.getSimpleName=function(){return"keyboard"},r.prototype.checkInputs=function(){if(this._onKeyboardObserver)for(var t=this.camera,e=0;e=0&&e._keys.splice(i,1),o.preventDefault&&(t||o.preventDefault())))}))},r.prototype.detachControl=function(t){this._scene&&(this._onKeyboardObserver&&this._scene.onKeyboardObservable.remove(this._onKeyboardObserver),this._onCanvasBlurObserver&&this._engine.onCanvasBlurObservable.remove(this._onCanvasBlurObserver),this._onKeyboardObserver=null,this._onCanvasBlurObserver=null),this._keys=[]},r.prototype.checkInputs=function(){var t=this;this._onKeyboardObserver&&this._keys.forEach(function(e){t.keysHeightOffsetIncr.indexOf(e)!==-1&&t._modifierHeightOffset()?t.camera.heightOffset+=t.heightSensibility:t.keysHeightOffsetDecr.indexOf(e)!==-1&&t._modifierHeightOffset()?t.camera.heightOffset-=t.heightSensibility:t.keysRotationOffsetIncr.indexOf(e)!==-1&&t._modifierRotationOffset()?(t.camera.rotationOffset+=t.rotationSensibility,t.camera.rotationOffset%=360):t.keysRotationOffsetDecr.indexOf(e)!==-1&&t._modifierRotationOffset()?(t.camera.rotationOffset-=t.rotationSensibility,t.camera.rotationOffset%=360):t.keysRadiusIncr.indexOf(e)!==-1&&t._modifierRadius()?t.camera.radius+=t.radiusSensibility:t.keysRadiusDecr.indexOf(e)!==-1&&t._modifierRadius()&&(t.camera.radius-=t.radiusSensibility)})},r.prototype.getClassName=function(){return"FollowCameraKeyboardMoveInput"},r.prototype.getSimpleName=function(){return"keyboard"},r.prototype._modifierHeightOffset=function(){return this.keysHeightOffsetModifierAlt===this._altPressed&&this.keysHeightOffsetModifierCtrl===this._ctrlPressed&&this.keysHeightOffsetModifierShift===this._shiftPressed},r.prototype._modifierRotationOffset=function(){return this.keysRotationOffsetModifierAlt===this._altPressed&&this.keysRotationOffsetModifierCtrl===this._ctrlPressed&&this.keysRotationOffsetModifierShift===this._shiftPressed},r.prototype._modifierRadius=function(){return this.keysRadiusModifierAlt===this._altPressed&&this.keysRadiusModifierCtrl===this._ctrlPressed&&this.keysRadiusModifierShift===this._shiftPressed},Object(c.c)([Object(L.c)()],r.prototype,"keysHeightOffsetIncr",void 0),Object(c.c)([Object(L.c)()],r.prototype,"keysHeightOffsetDecr",void 0),Object(c.c)([Object(L.c)()],r.prototype,"keysHeightOffsetModifierAlt",void 0),Object(c.c)([Object(L.c)()],r.prototype,"keysHeightOffsetModifierCtrl",void 0),Object(c.c)([Object(L.c)()],r.prototype,"keysHeightOffsetModifierShift",void 0),Object(c.c)([Object(L.c)()],r.prototype,"keysRotationOffsetIncr",void 0),Object(c.c)([Object(L.c)()],r.prototype,"keysRotationOffsetDecr",void 0),Object(c.c)([Object(L.c)()],r.prototype,"keysRotationOffsetModifierAlt",void 0),Object(c.c)([Object(L.c)()],r.prototype,"keysRotationOffsetModifierCtrl",void 0),Object(c.c)([Object(L.c)()],r.prototype,"keysRotationOffsetModifierShift",void 0),Object(c.c)([Object(L.c)()],r.prototype,"keysRadiusIncr",void 0),Object(c.c)([Object(L.c)()],r.prototype,"keysRadiusDecr",void 0),Object(c.c)([Object(L.c)()],r.prototype,"keysRadiusModifierAlt",void 0),Object(c.c)([Object(L.c)()],r.prototype,"keysRadiusModifierCtrl",void 0),Object(c.c)([Object(L.c)()],r.prototype,"keysRadiusModifierShift",void 0),Object(c.c)([Object(L.c)()],r.prototype,"heightSensibility",void 0),Object(c.c)([Object(L.c)()],r.prototype,"rotationSensibility",void 0),Object(c.c)([Object(L.c)()],r.prototype,"radiusSensibility",void 0),r}();un.FollowCameraKeyboardMoveInput=qa;var Za=function(){function r(){this.axisControlRadius=!0,this.axisControlHeight=!1,this.axisControlRotation=!1,this.wheelPrecision=3,this.wheelDeltaPercentage=0}return r.prototype.attachControl=function(t){var e=this;t=Xe.b.BackCompatCameraNoPreventDefault(arguments),this._wheel=function(n,i){if(n.type===Tt.a.POINTERWHEEL){var o=n.event,a=0,s=Math.max(-1,Math.min(1,o.deltaY||o.wheelDelta||-o.detail));e.wheelDeltaPercentage?(console.assert(e.axisControlRadius+e.axisControlHeight+e.axisControlRotation<=1,"wheelDeltaPercentage only usable when mouse wheel controlls ONE axis. Currently enabled: axisControlRadius: "+e.axisControlRadius+", axisControlHeightOffset: "+e.axisControlHeight+", axisControlRotationOffset: "+e.axisControlRotation),e.axisControlRadius?a=.01*s*e.wheelDeltaPercentage*e.camera.radius:e.axisControlHeight?a=.01*s*e.wheelDeltaPercentage*e.camera.heightOffset:e.axisControlRotation&&(a=.01*s*e.wheelDeltaPercentage*e.camera.rotationOffset)):a=s*e.wheelPrecision,a&&(e.axisControlRadius?e.camera.radius+=a:e.axisControlHeight?e.camera.heightOffset-=a:e.axisControlRotation&&(e.camera.rotationOffset-=a)),o.preventDefault&&(t||o.preventDefault())}},this._observer=this.camera.getScene().onPointerObservable.add(this._wheel,Tt.a.POINTERWHEEL)},r.prototype.detachControl=function(t){this._observer&&(this.camera.getScene().onPointerObservable.remove(this._observer),this._observer=null,this._wheel=null)},r.prototype.getClassName=function(){return"ArcRotateCameraMouseWheelInput"},r.prototype.getSimpleName=function(){return"mousewheel"},Object(c.c)([Object(L.c)()],r.prototype,"axisControlRadius",void 0),Object(c.c)([Object(L.c)()],r.prototype,"axisControlHeight",void 0),Object(c.c)([Object(L.c)()],r.prototype,"axisControlRotation",void 0),Object(c.c)([Object(L.c)()],r.prototype,"wheelPrecision",void 0),Object(c.c)([Object(L.c)()],r.prototype,"wheelDeltaPercentage",void 0),r}();un.FollowCameraMouseWheelInput=Za;var Ja=function(r){function t(){var e=r!==null&&r.apply(this,arguments)||this;return e.angularSensibilityX=1,e.angularSensibilityY=1,e.pinchPrecision=1e4,e.pinchDeltaPercentage=0,e.axisXControlRadius=!1,e.axisXControlHeight=!1,e.axisXControlRotation=!0,e.axisYControlRadius=!1,e.axisYControlHeight=!0,e.axisYControlRotation=!1,e.axisPinchControlRadius=!0,e.axisPinchControlHeight=!1,e.axisPinchControlRotation=!1,e.warningEnable=!0,e._warningCounter=0,e}return Object(c.d)(t,r),t.prototype.getClassName=function(){return"FollowCameraPointersInput"},t.prototype.onTouch=function(e,n,i){this._warning(),this.axisXControlRotation?this.camera.rotationOffset+=n/this.angularSensibilityX:this.axisYControlRotation&&(this.camera.rotationOffset+=i/this.angularSensibilityX),this.axisXControlHeight?this.camera.heightOffset+=n/this.angularSensibilityY:this.axisYControlHeight&&(this.camera.heightOffset+=i/this.angularSensibilityY),this.axisXControlRadius?this.camera.radius-=n/this.angularSensibilityY:this.axisYControlRadius&&(this.camera.radius-=i/this.angularSensibilityY)},t.prototype.onMultiTouch=function(e,n,i,o,a,s){if(!(i===0&&a===null||o===0&&s===null)){var d=(o-i)/(this.pinchPrecision*(this.angularSensibilityX+this.angularSensibilityY)/2);this.pinchDeltaPercentage?(d*=.01*this.pinchDeltaPercentage,this.axisPinchControlRotation&&(this.camera.rotationOffset+=d*this.camera.rotationOffset),this.axisPinchControlHeight&&(this.camera.heightOffset+=d*this.camera.heightOffset),this.axisPinchControlRadius&&(this.camera.radius-=d*this.camera.radius)):(this.axisPinchControlRotation&&(this.camera.rotationOffset+=d),this.axisPinchControlHeight&&(this.camera.heightOffset+=d),this.axisPinchControlRadius&&(this.camera.radius-=d))}},t.prototype._warning=function(){if(this.warningEnable&&this._warningCounter++%100==0){var e="It probably only makes sense to control ONE camera property with each pointer axis. Set 'warningEnable = false' if you are sure. Currently enabled: ";console.assert(this.axisXControlRotation+this.axisXControlHeight+this.axisXControlRadius<=1,e+"axisXControlRotation: "+this.axisXControlRotation+", axisXControlHeight: "+this.axisXControlHeight+", axisXControlRadius: "+this.axisXControlRadius),console.assert(this.axisYControlRotation+this.axisYControlHeight+this.axisYControlRadius<=1,e+"axisYControlRotation: "+this.axisYControlRotation+", axisYControlHeight: "+this.axisYControlHeight+", axisYControlRadius: "+this.axisYControlRadius),console.assert(this.axisPinchControlRotation+this.axisPinchControlHeight+this.axisPinchControlRadius<=1,e+"axisPinchControlRotation: "+this.axisPinchControlRotation+", axisPinchControlHeight: "+this.axisPinchControlHeight+", axisPinchControlRadius: "+this.axisPinchControlRadius)}},Object(c.c)([Object(L.c)()],t.prototype,"angularSensibilityX",void 0),Object(c.c)([Object(L.c)()],t.prototype,"angularSensibilityY",void 0),Object(c.c)([Object(L.c)()],t.prototype,"pinchPrecision",void 0),Object(c.c)([Object(L.c)()],t.prototype,"pinchDeltaPercentage",void 0),Object(c.c)([Object(L.c)()],t.prototype,"axisXControlRadius",void 0),Object(c.c)([Object(L.c)()],t.prototype,"axisXControlHeight",void 0),Object(c.c)([Object(L.c)()],t.prototype,"axisXControlRotation",void 0),Object(c.c)([Object(L.c)()],t.prototype,"axisYControlRadius",void 0),Object(c.c)([Object(L.c)()],t.prototype,"axisYControlHeight",void 0),Object(c.c)([Object(L.c)()],t.prototype,"axisYControlRotation",void 0),Object(c.c)([Object(L.c)()],t.prototype,"axisPinchControlRadius",void 0),Object(c.c)([Object(L.c)()],t.prototype,"axisPinchControlHeight",void 0),Object(c.c)([Object(L.c)()],t.prototype,"axisPinchControlRotation",void 0),t}(Sl);un.FollowCameraPointersInput=Ja;var $a=function(){function r(){this.keysUp=[38],this.keysUpward=[33],this.keysDown=[40],this.keysDownward=[34],this.keysLeft=[37],this.keysRight=[39],this._keys=new Array}return r.prototype.attachControl=function(t){var e=this;t=Xe.b.BackCompatCameraNoPreventDefault(arguments),this._onCanvasBlurObserver||(this._scene=this.camera.getScene(),this._engine=this._scene.getEngine(),this._onCanvasBlurObserver=this._engine.onCanvasBlurObservable.add(function(){e._keys=[]}),this._onKeyboardObserver=this._scene.onKeyboardObservable.add(function(n){var i,o=n.event;o.metaKey||(n.type===qi.a.KEYDOWN?e.keysUp.indexOf(o.keyCode)===-1&&e.keysDown.indexOf(o.keyCode)===-1&&e.keysLeft.indexOf(o.keyCode)===-1&&e.keysRight.indexOf(o.keyCode)===-1&&e.keysUpward.indexOf(o.keyCode)===-1&&e.keysDownward.indexOf(o.keyCode)===-1||((i=e._keys.indexOf(o.keyCode))===-1&&e._keys.push(o.keyCode),t||o.preventDefault()):e.keysUp.indexOf(o.keyCode)===-1&&e.keysDown.indexOf(o.keyCode)===-1&&e.keysLeft.indexOf(o.keyCode)===-1&&e.keysRight.indexOf(o.keyCode)===-1&&e.keysUpward.indexOf(o.keyCode)===-1&&e.keysDownward.indexOf(o.keyCode)===-1||((i=e._keys.indexOf(o.keyCode))>=0&&e._keys.splice(i,1),t||o.preventDefault()))}))},r.prototype.detachControl=function(t){this._scene&&(this._onKeyboardObserver&&this._scene.onKeyboardObservable.remove(this._onKeyboardObserver),this._onCanvasBlurObserver&&this._engine.onCanvasBlurObservable.remove(this._onCanvasBlurObserver),this._onKeyboardObserver=null,this._onCanvasBlurObserver=null),this._keys=[]},r.prototype.checkInputs=function(){if(this._onKeyboardObserver)for(var t=this.camera,e=0;e1)t.cameraRotation.x=-this._offsetY/this.touchAngularSensibility;else{var e=t._computeLocalCameraSpeed(),n=new u.e(0,0,e*this._offsetY/this.touchMoveSensibility);u.a.RotationYawPitchRollToRef(t.rotation.y,t.rotation.x,0,t._cameraRotationMatrix),t.cameraDirection.addInPlace(u.e.TransformCoordinates(n,t._cameraRotationMatrix))}}},r.prototype.getClassName=function(){return"FreeCameraTouchInput"},r.prototype.getSimpleName=function(){return"touch"},Object(c.c)([Object(L.c)()],r.prototype,"touchAngularSensibility",void 0),Object(c.c)([Object(L.c)()],r.prototype,"touchMoveSensibility",void 0),r}();un.FreeCameraTouchInput=ns;var Jr=function(r){function t(e){var n=r.call(this,e)||this;return n._mouseInput=null,n._mouseWheelInput=null,n}return Object(c.d)(t,r),t.prototype.addKeyboard=function(){return this.add(new $a),this},t.prototype.addMouse=function(e){return e===void 0&&(e=!0),this._mouseInput||(this._mouseInput=new es(e),this.add(this._mouseInput)),this},t.prototype.removeMouse=function(){return this._mouseInput&&this.remove(this._mouseInput),this},t.prototype.addMouseWheel=function(){return this._mouseWheelInput||(this._mouseWheelInput=new ts,this.add(this._mouseWheelInput)),this},t.prototype.removeMouseWheel=function(){return this._mouseWheelInput&&this.remove(this._mouseWheelInput),this},t.prototype.addTouch=function(){return this.add(new ns),this},t.prototype.clear=function(){r.prototype.clear.call(this),this._mouseInput=null},t}(Zr);Jr.prototype.addDeviceOrientation=function(){return this._deviceOrientationInput||(this._deviceOrientationInput=new is,this.add(this._deviceOrientationInput)),this};var is=function(){function r(){var t=this;this._screenOrientationAngle=0,this._screenQuaternion=new u.b,this._alpha=0,this._beta=0,this._gamma=0,this._onDeviceOrientationChangedObservable=new R.c,this._orientationChanged=function(){t._screenOrientationAngle=window.orientation!==void 0?+window.orientation:window.screen.orientation&&window.screen.orientation.angle?window.screen.orientation.angle:0,t._screenOrientationAngle=-Xe.b.ToRadians(t._screenOrientationAngle/2),t._screenQuaternion.copyFromFloats(0,Math.sin(t._screenOrientationAngle),0,Math.cos(t._screenOrientationAngle))},this._deviceOrientation=function(e){t._alpha=e.alpha!==null?e.alpha:0,t._beta=e.beta!==null?e.beta:0,t._gamma=e.gamma!==null?e.gamma:0,e.alpha!==null&&t._onDeviceOrientationChangedObservable.notifyObservers()},this._constantTranform=new u.b(-Math.sqrt(.5),0,0,Math.sqrt(.5)),this._orientationChanged()}return r.WaitForOrientationChangeAsync=function(t){return new Promise(function(e,n){var i=!1,o=function(){window.removeEventListener("deviceorientation",o),i=!0,e()};t&&setTimeout(function(){i||(window.removeEventListener("deviceorientation",o),n("WaitForOrientationChangeAsync timed out"))},t),typeof DeviceOrientationEvent<"u"&&typeof DeviceOrientationEvent.requestPermission=="function"?DeviceOrientationEvent.requestPermission().then(function(a){a=="granted"?window.addEventListener("deviceorientation",o):Xe.b.Warn("Permission not granted.")}).catch(function(a){Xe.b.Error(a)}):window.addEventListener("deviceorientation",o)})},Object.defineProperty(r.prototype,"camera",{get:function(){return this._camera},set:function(t){var e=this;this._camera=t,this._camera==null||this._camera.rotationQuaternion||(this._camera.rotationQuaternion=new u.b),this._camera&&this._camera.onDisposeObservable.add(function(){e._onDeviceOrientationChangedObservable.clear()})},enumerable:!1,configurable:!0}),r.prototype.attachControl=function(){var t=this,e=this.camera.getScene().getEngine().getHostWindow();if(e){var n=function(){e.addEventListener("orientationchange",t._orientationChanged),e.addEventListener("deviceorientation",t._deviceOrientation),t._orientationChanged()};typeof DeviceOrientationEvent<"u"&&typeof DeviceOrientationEvent.requestPermission=="function"?DeviceOrientationEvent.requestPermission().then(function(i){i==="granted"?n():Xe.b.Warn("Permission not granted.")}).catch(function(i){Xe.b.Error(i)}):n()}},r.prototype.detachControl=function(t){window.removeEventListener("orientationchange",this._orientationChanged),window.removeEventListener("deviceorientation",this._deviceOrientation),this._alpha=0},r.prototype.checkInputs=function(){this._alpha&&(u.b.RotationYawPitchRollToRef(Xe.b.ToRadians(this._alpha),Xe.b.ToRadians(this._beta),-Xe.b.ToRadians(this._gamma),this.camera.rotationQuaternion),this._camera.rotationQuaternion.multiplyInPlace(this._screenQuaternion),this._camera.rotationQuaternion.multiplyInPlace(this._constantTranform),this._camera.rotationQuaternion.z*=-1,this._camera.rotationQuaternion.w*=-1)},r.prototype.getClassName=function(){return"FreeCameraDeviceOrientationInput"},r.prototype.getSimpleName=function(){return"deviceOrientation"},r}();un.FreeCameraDeviceOrientationInput=is;var rs=function(){function r(){this.gamepadAngularSensibility=200,this.gamepadMoveSensibility=40,this._yAxisScale=1,this._cameraTransform=u.a.Identity(),this._deltaTransform=u.e.Zero(),this._vector3=u.e.Zero(),this._vector2=u.d.Zero()}return Object.defineProperty(r.prototype,"invertYAxis",{get:function(){return this._yAxisScale!==1},set:function(t){this._yAxisScale=t?-1:1},enumerable:!1,configurable:!0}),r.prototype.attachControl=function(){var t=this,e=this.camera.getScene().gamepadManager;this._onGamepadConnectedObserver=e.onGamepadConnectedObservable.add(function(n){n.type!==hn.POSE_ENABLED&&(t.gamepad&&n.type!==hn.XBOX||(t.gamepad=n))}),this._onGamepadDisconnectedObserver=e.onGamepadDisconnectedObservable.add(function(n){t.gamepad===n&&(t.gamepad=null)}),this.gamepad=e.getGamepadByType(hn.XBOX),!this.gamepad&&e.gamepads.length&&(this.gamepad=e.gamepads[0])},r.prototype.detachControl=function(t){this.camera.getScene().gamepadManager.onGamepadConnectedObservable.remove(this._onGamepadConnectedObserver),this.camera.getScene().gamepadManager.onGamepadDisconnectedObservable.remove(this._onGamepadDisconnectedObserver),this.gamepad=null},r.prototype.checkInputs=function(){if(this.gamepad&&this.gamepad.leftStick){var t=this.camera,e=this.gamepad.leftStick,n=e.x/this.gamepadMoveSensibility,i=e.y/this.gamepadMoveSensibility;e.x=Math.abs(n)>.005?0+n:0,e.y=Math.abs(i)>.005?0+i:0;var o=this.gamepad.rightStick;if(o){var a=o.x/this.gamepadAngularSensibility,s=o.y/this.gamepadAngularSensibility*this._yAxisScale;o.x=Math.abs(a)>.001?0+a:0,o.y=Math.abs(s)>.001?0+s:0}else o={x:0,y:0};t.rotationQuaternion?t.rotationQuaternion.toRotationMatrix(this._cameraTransform):u.a.RotationYawPitchRollToRef(t.rotation.y,t.rotation.x,0,this._cameraTransform);var d=50*t._computeLocalCameraSpeed();this._vector3.copyFromFloats(e.x*d,0,-e.y*d),u.e.TransformCoordinatesToRef(this._vector3,this._cameraTransform,this._deltaTransform),t.cameraDirection.addInPlace(this._deltaTransform),this._vector2.copyFromFloats(o.y,o.x),t.cameraRotation.addInPlace(this._vector2)}},r.prototype.getClassName=function(){return"FreeCameraGamepadInput"},r.prototype.getSimpleName=function(){return"gamepad"},Object(c.c)([Object(L.c)()],r.prototype,"gamepadAngularSensibility",void 0),Object(c.c)([Object(L.c)()],r.prototype,"gamepadMoveSensibility",void 0),r}();un.FreeCameraGamepadInput=rs;var an,Al=f(112);(function(r){r[r.X=0]="X",r[r.Y=1]="Y",r[r.Z=2]="Z"})(an||(an={}));var os=function(){function r(t,e){var n=this,i=Object(c.a)(Object(c.a)({},r._GetDefaultOptions()),e);if(this._leftJoystick=!!t,r._globalJoystickIndex++,this._axisTargetedByLeftAndRight=an.X,this._axisTargetedByUpAndDown=an.Y,this.reverseLeftRight=!1,this.reverseUpDown=!1,this._touches=new Al.a,this.deltaPosition=u.e.Zero(),this._joystickSensibility=25,this._inversedSensibility=1/(this._joystickSensibility/1e3),this._onResize=function(a){r.vjCanvasWidth=window.innerWidth,r.vjCanvasHeight=window.innerHeight,r.Canvas&&(r.Canvas.width=r.vjCanvasWidth,r.Canvas.height=r.vjCanvasHeight),r.halfWidth=r.vjCanvasWidth/2},!r.Canvas){window.addEventListener("resize",this._onResize,!1),r.Canvas=document.createElement("canvas"),r.vjCanvasWidth=window.innerWidth,r.vjCanvasHeight=window.innerHeight,r.Canvas.width=window.innerWidth,r.Canvas.height=window.innerHeight,r.Canvas.style.width="100%",r.Canvas.style.height="100%",r.Canvas.style.position="absolute",r.Canvas.style.backgroundColor="transparent",r.Canvas.style.top="0px",r.Canvas.style.left="0px",r.Canvas.style.zIndex="5",r.Canvas.style.msTouchAction="none",r.Canvas.style.touchAction="none",r.Canvas.setAttribute("touch-action","none");var o=r.Canvas.getContext("2d");if(!o)throw new Error("Unable to create canvas for virtual joystick");r.vjCanvasContext=o,r.vjCanvasContext.strokeStyle="#ffffff",r.vjCanvasContext.lineWidth=2,document.body.appendChild(r.Canvas)}r.halfWidth=r.Canvas.width/2,this.pressed=!1,this.limitToContainer=i.limitToContainer,this._joystickColor=i.color,this.containerSize=i.containerSize,this.puckSize=i.puckSize,i.position&&this.setPosition(i.position.x,i.position.y),i.puckImage&&this.setPuckImage(i.puckImage),i.containerImage&&this.setContainerImage(i.containerImage),i.alwaysVisible&&r._alwaysVisibleSticks++,this.alwaysVisible=i.alwaysVisible,this._joystickPointerID=-1,this._joystickPointerPos=new u.d(0,0),this._joystickPreviousPointerPos=new u.d(0,0),this._joystickPointerStartPos=new u.d(0,0),this._deltaJoystickVector=new u.d(0,0),this._onPointerDownHandlerRef=function(a){n._onPointerDown(a)},this._onPointerMoveHandlerRef=function(a){n._onPointerMove(a)},this._onPointerUpHandlerRef=function(a){n._onPointerUp(a)},r.Canvas.addEventListener("pointerdown",this._onPointerDownHandlerRef,!1),r.Canvas.addEventListener("pointermove",this._onPointerMoveHandlerRef,!1),r.Canvas.addEventListener("pointerup",this._onPointerUpHandlerRef,!1),r.Canvas.addEventListener("pointerout",this._onPointerUpHandlerRef,!1),r.Canvas.addEventListener("contextmenu",function(a){a.preventDefault()},!1),requestAnimationFrame(function(){n._drawVirtualJoystick()})}return r._GetDefaultOptions=function(){return{puckSize:40,containerSize:60,color:"cyan",puckImage:void 0,containerImage:void 0,position:void 0,alwaysVisible:!1,limitToContainer:!1}},r.prototype.setJoystickSensibility=function(t){this._joystickSensibility=t,this._inversedSensibility=1/(this._joystickSensibility/1e3)},r.prototype._onPointerDown=function(t){t.preventDefault(),(this._leftJoystick===!0?t.clientXr.halfWidth)&&this._joystickPointerID<0?(this._joystickPointerID=t.pointerId,this._joystickPosition?(this._joystickPointerStartPos=this._joystickPosition.clone(),this._joystickPointerPos=this._joystickPosition.clone(),this._joystickPreviousPointerPos=this._joystickPosition.clone(),this._onPointerMove(t)):(this._joystickPointerStartPos.x=t.clientX,this._joystickPointerStartPos.y=t.clientY,this._joystickPointerPos=this._joystickPointerStartPos.clone(),this._joystickPreviousPointerPos=this._joystickPointerStartPos.clone()),this._deltaJoystickVector.x=0,this._deltaJoystickVector.y=0,this.pressed=!0,this._touches.add(t.pointerId.toString(),t)):r._globalJoystickIndex<2&&this._action&&(this._action(),this._touches.add(t.pointerId.toString(),{x:t.clientX,y:t.clientY,prevX:t.clientX,prevY:t.clientY}))},r.prototype._onPointerMove=function(t){if(this._joystickPointerID==t.pointerId){if(this.limitToContainer){var e=new u.d(t.clientX-this._joystickPointerStartPos.x,t.clientY-this._joystickPointerStartPos.y),n=e.length();n>this.containerSize&&e.scaleInPlace(this.containerSize/n),this._joystickPointerPos.x=this._joystickPointerStartPos.x+e.x,this._joystickPointerPos.y=this._joystickPointerStartPos.y+e.y}else this._joystickPointerPos.x=t.clientX,this._joystickPointerPos.y=t.clientY;this._deltaJoystickVector=this._joystickPointerPos.clone(),this._deltaJoystickVector=this._deltaJoystickVector.subtract(this._joystickPointerStartPos),0=0?this.rotation.y=-Math.atan(n.z/n.x)+Math.PI/2:this.rotation.y=-Math.atan(n.z/n.x)-Math.PI/2,this.rotation.z=0,isNaN(this.rotation.x)&&(this.rotation.x=0),isNaN(this.rotation.y)&&(this.rotation.y=0),isNaN(this.rotation.z)&&(this.rotation.z=0),this.rotationQuaternion&&u.b.RotationYawPitchRollToRef(this.rotation.y,this.rotation.x,this.rotation.z,this.rotationQuaternion)},Object.defineProperty(t.prototype,"target",{get:function(){return this.getTarget()},set:function(e){this.setTarget(e)},enumerable:!1,configurable:!0}),t.prototype.getTarget=function(){return this._currentTarget},t.prototype._decideIfNeedsToMove=function(){return Math.abs(this.cameraDirection.x)>0||Math.abs(this.cameraDirection.y)>0||Math.abs(this.cameraDirection.z)>0},t.prototype._updatePosition=function(){if(this.parent)return this.parent.getWorldMatrix().invertToRef(u.c.Matrix[0]),u.e.TransformNormalToRef(this.cameraDirection,u.c.Matrix[0],u.c.Vector3[0]),void this.position.addInPlace(u.c.Vector3[0]);this.position.addInPlace(this.cameraDirection)},t.prototype._checkInputs=function(){var e=this.invertRotation?-this.inverseRotationSpeed:1,n=this._decideIfNeedsToMove(),i=Math.abs(this.cameraRotation.x)>0||Math.abs(this.cameraRotation.y)>0;n&&this._updatePosition(),i&&(this.rotationQuaternion&&this.rotationQuaternion.toEulerAnglesToRef(this.rotation),this.rotation.x+=this.cameraRotation.x*e,this.rotation.y+=this.cameraRotation.y*e,!this.noRotationConstraint&&(this.rotation.x>1.570796&&(this.rotation.x=1.570796),this.rotation.x<-1.570796&&(this.rotation.x=-1.570796)),this.rotationQuaternion&&this.rotation.lengthSquared()&&u.b.RotationYawPitchRollToRef(this.rotation.y,this.rotation.x,this.rotation.z,this.rotationQuaternion)),n&&(Math.abs(this.cameraDirection.x)Ue.a.CollisionsEpsilon&&(a.position.addInPlace(a._diffPosition),a.onCollide&&p&&a.onCollide(p))},a.inputs=new Jr(a),a.inputs.addKeyboard().addMouse(),a}return Object(c.d)(t,r),Object.defineProperty(t.prototype,"angularSensibility",{get:function(){var e=this.inputs.attached.mouse;return e?e.angularSensibility:0},set:function(e){var n=this.inputs.attached.mouse;n&&(n.angularSensibility=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"keysUp",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysUp:[]},set:function(e){var n=this.inputs.attached.keyboard;n&&(n.keysUp=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"keysUpward",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysUpward:[]},set:function(e){var n=this.inputs.attached.keyboard;n&&(n.keysUpward=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"keysDown",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysDown:[]},set:function(e){var n=this.inputs.attached.keyboard;n&&(n.keysDown=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"keysDownward",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysDownward:[]},set:function(e){var n=this.inputs.attached.keyboard;n&&(n.keysDownward=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"keysLeft",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysLeft:[]},set:function(e){var n=this.inputs.attached.keyboard;n&&(n.keysLeft=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"keysRight",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysRight:[]},set:function(e){var n=this.inputs.attached.keyboard;n&&(n.keysRight=e)},enumerable:!1,configurable:!0}),t.prototype.attachControl=function(e,n){n=Xe.b.BackCompatCameraNoPreventDefault(arguments),this.inputs.attachElement(n)},t.prototype.detachControl=function(e){this.inputs.detachElement(),this.cameraDirection=new u.e(0,0,0),this.cameraRotation=new u.d(0,0)},Object.defineProperty(t.prototype,"collisionMask",{get:function(){return this._collisionMask},set:function(e){this._collisionMask=isNaN(e)?-1:e},enumerable:!1,configurable:!0}),t.prototype._collideWithWorld=function(e){(this.parent?u.e.TransformCoordinates(this.position,this.parent.getWorldMatrix()):this.position).subtractFromFloatsToRef(0,this.ellipsoid.y,0,this._oldPosition),this._oldPosition.addInPlace(this.ellipsoidOffset);var n=this.getScene().collisionCoordinator;this._collider||(this._collider=n.createCollider()),this._collider._radius=this.ellipsoid,this._collider.collisionMask=this._collisionMask;var i=e;this.applyGravity&&(i=e.add(this.getScene().gravity)),n.getNewPosition(this._oldPosition,i,this._collider,3,null,this._onCollisionPositionChange,this.uniqueId)},t.prototype._checkInputs=function(){this._localDirection||(this._localDirection=u.e.Zero(),this._transformedDirection=u.e.Zero()),this.inputs.checkInputs(),r.prototype._checkInputs.call(this)},t.prototype._decideIfNeedsToMove=function(){return this._needMoveForGravity||Math.abs(this.cameraDirection.x)>0||Math.abs(this.cameraDirection.y)>0||Math.abs(this.cameraDirection.z)>0},t.prototype._updatePosition=function(){this.checkCollisions&&this.getScene().collisionsEnabled?this._collideWithWorld(this.cameraDirection):r.prototype._updatePosition.call(this)},t.prototype.dispose=function(){this.inputs.clear(),r.prototype.dispose.call(this)},t.prototype.getClassName=function(){return"FreeCamera"},Object(c.c)([Object(L.o)()],t.prototype,"ellipsoid",void 0),Object(c.c)([Object(L.o)()],t.prototype,"ellipsoidOffset",void 0),Object(c.c)([Object(L.c)()],t.prototype,"checkCollisions",void 0),Object(c.c)([Object(L.c)()],t.prototype,"applyGravity",void 0),t}(Li);Q.a.AddNodeConstructor("TouchCamera",function(r,t){return function(){return new ss(r,u.e.Zero(),t)}});var ss=function(r){function t(e,n,i){var o=r.call(this,e,n,i)||this;return o.inputs.addTouch(),o._setupInputs(),o}return Object(c.d)(t,r),Object.defineProperty(t.prototype,"touchAngularSensibility",{get:function(){var e=this.inputs.attached.touch;return e?e.touchAngularSensibility:0},set:function(e){var n=this.inputs.attached.touch;n&&(n.touchAngularSensibility=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"touchMoveSensibility",{get:function(){var e=this.inputs.attached.touch;return e?e.touchMoveSensibility:0},set:function(e){var n=this.inputs.attached.touch;n&&(n.touchMoveSensibility=e)},enumerable:!1,configurable:!0}),t.prototype.getClassName=function(){return"TouchCamera"},t.prototype._setupInputs=function(){var e=this.inputs.attached.touch,n=this.inputs.attached.mouse;n?n.touchEnabled=!1:e.allowMouse=!0},t}(Yn);Q.a.AddNodeConstructor("ArcRotateCamera",function(r,t){return function(){return new Zi(r,0,0,1,u.e.Zero(),t)}});var Zi=function(r){function t(e,n,i,o,a,s,d){d===void 0&&(d=!0);var p=r.call(this,e,u.e.Zero(),s,d)||this;return p.inertialAlphaOffset=0,p.inertialBetaOffset=0,p.inertialRadiusOffset=0,p.lowerAlphaLimit=null,p.upperAlphaLimit=null,p.lowerBetaLimit=.01,p.upperBetaLimit=Math.PI-.01,p.lowerRadiusLimit=null,p.upperRadiusLimit=null,p.inertialPanningX=0,p.inertialPanningY=0,p.pinchToPanMaxDistance=20,p.panningDistanceLimit=null,p.panningOriginTarget=u.e.Zero(),p.panningInertia=.9,p.zoomOnFactor=1,p.targetScreenOffset=u.d.Zero(),p.allowUpsideDown=!0,p.useInputToRestoreState=!0,p._viewMatrix=new u.a,p.panningAxis=new u.e(1,1,0),p.onMeshTargetChangedObservable=new R.c,p.checkCollisions=!1,p.collisionRadius=new u.e(.5,.5,.5),p._previousPosition=u.e.Zero(),p._collisionVelocity=u.e.Zero(),p._newPosition=u.e.Zero(),p._computationVector=u.e.Zero(),p._onCollisionPositionChange=function(b,x,O){O===void 0&&(O=null),O?(p.setPosition(x),p.onCollide&&p.onCollide(O)):p._previousPosition.copyFrom(p._position);var B=Math.cos(p.alpha),F=Math.sin(p.alpha),z=Math.cos(p.beta),J=Math.sin(p.beta);J===0&&(J=1e-4);var ie=p._getTargetPosition();p._computationVector.copyFromFloats(p.radius*B*J,p.radius*z,p.radius*F*J),ie.addToRef(p._computationVector,p._newPosition),p._position.copyFrom(p._newPosition);var se=p.upVector;p.allowUpsideDown&&p.beta<0&&(se=(se=se.clone()).negate()),p._computeViewMatrix(p._position,ie,se),p._viewMatrix.addAtIndex(12,p.targetScreenOffset.x),p._viewMatrix.addAtIndex(13,p.targetScreenOffset.y),p._collisionTriggered=!1},p._target=u.e.Zero(),a&&p.setTarget(a),p.alpha=n,p.beta=i,p.radius=o,p.getViewMatrix(),p.inputs=new Fo(p),p.inputs.addKeyboard().addMouseWheel().addPointers(),p}return Object(c.d)(t,r),Object.defineProperty(t.prototype,"target",{get:function(){return this._target},set:function(e){this.setTarget(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"position",{get:function(){return this._position},set:function(e){this.setPosition(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"upVector",{get:function(){return this._upVector},set:function(e){this._upToYMatrix||(this._YToUpMatrix=new u.a,this._upToYMatrix=new u.a,this._upVector=u.e.Zero()),e.normalize(),this._upVector.copyFrom(e),this.setMatUp()},enumerable:!1,configurable:!0}),t.prototype.setMatUp=function(){u.a.RotationAlignToRef(u.e.UpReadOnly,this._upVector,this._YToUpMatrix),u.a.RotationAlignToRef(this._upVector,u.e.UpReadOnly,this._upToYMatrix)},Object.defineProperty(t.prototype,"angularSensibilityX",{get:function(){var e=this.inputs.attached.pointers;return e?e.angularSensibilityX:0},set:function(e){var n=this.inputs.attached.pointers;n&&(n.angularSensibilityX=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"angularSensibilityY",{get:function(){var e=this.inputs.attached.pointers;return e?e.angularSensibilityY:0},set:function(e){var n=this.inputs.attached.pointers;n&&(n.angularSensibilityY=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"pinchPrecision",{get:function(){var e=this.inputs.attached.pointers;return e?e.pinchPrecision:0},set:function(e){var n=this.inputs.attached.pointers;n&&(n.pinchPrecision=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"pinchDeltaPercentage",{get:function(){var e=this.inputs.attached.pointers;return e?e.pinchDeltaPercentage:0},set:function(e){var n=this.inputs.attached.pointers;n&&(n.pinchDeltaPercentage=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"useNaturalPinchZoom",{get:function(){var e=this.inputs.attached.pointers;return!!e&&e.useNaturalPinchZoom},set:function(e){var n=this.inputs.attached.pointers;n&&(n.useNaturalPinchZoom=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"panningSensibility",{get:function(){var e=this.inputs.attached.pointers;return e?e.panningSensibility:0},set:function(e){var n=this.inputs.attached.pointers;n&&(n.panningSensibility=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"keysUp",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysUp:[]},set:function(e){var n=this.inputs.attached.keyboard;n&&(n.keysUp=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"keysDown",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysDown:[]},set:function(e){var n=this.inputs.attached.keyboard;n&&(n.keysDown=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"keysLeft",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysLeft:[]},set:function(e){var n=this.inputs.attached.keyboard;n&&(n.keysLeft=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"keysRight",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysRight:[]},set:function(e){var n=this.inputs.attached.keyboard;n&&(n.keysRight=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"wheelPrecision",{get:function(){var e=this.inputs.attached.mousewheel;return e?e.wheelPrecision:0},set:function(e){var n=this.inputs.attached.mousewheel;n&&(n.wheelPrecision=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"wheelDeltaPercentage",{get:function(){var e=this.inputs.attached.mousewheel;return e?e.wheelDeltaPercentage:0},set:function(e){var n=this.inputs.attached.mousewheel;n&&(n.wheelDeltaPercentage=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"bouncingBehavior",{get:function(){return this._bouncingBehavior},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"useBouncingBehavior",{get:function(){return this._bouncingBehavior!=null},set:function(e){e!==this.useBouncingBehavior&&(e?(this._bouncingBehavior=new ml,this.addBehavior(this._bouncingBehavior)):this._bouncingBehavior&&(this.removeBehavior(this._bouncingBehavior),this._bouncingBehavior=null))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"framingBehavior",{get:function(){return this._framingBehavior},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"useFramingBehavior",{get:function(){return this._framingBehavior!=null},set:function(e){e!==this.useFramingBehavior&&(e?(this._framingBehavior=new gl,this.addBehavior(this._framingBehavior)):this._framingBehavior&&(this.removeBehavior(this._framingBehavior),this._framingBehavior=null))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"autoRotationBehavior",{get:function(){return this._autoRotationBehavior},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"useAutoRotationBehavior",{get:function(){return this._autoRotationBehavior!=null},set:function(e){e!==this.useAutoRotationBehavior&&(e?(this._autoRotationBehavior=new _l,this.addBehavior(this._autoRotationBehavior)):this._autoRotationBehavior&&(this.removeBehavior(this._autoRotationBehavior),this._autoRotationBehavior=null))},enumerable:!1,configurable:!0}),t.prototype._initCache=function(){r.prototype._initCache.call(this),this._cache._target=new u.e(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),this._cache.alpha=void 0,this._cache.beta=void 0,this._cache.radius=void 0,this._cache.targetScreenOffset=u.d.Zero()},t.prototype._updateCache=function(e){e||r.prototype._updateCache.call(this),this._cache._target.copyFrom(this._getTargetPosition()),this._cache.alpha=this.alpha,this._cache.beta=this.beta,this._cache.radius=this.radius,this._cache.targetScreenOffset.copyFrom(this.targetScreenOffset)},t.prototype._getTargetPosition=function(){if(this._targetHost&&this._targetHost.getAbsolutePosition){var e=this._targetHost.absolutePosition;this._targetBoundingCenter?e.addToRef(this._targetBoundingCenter,this._target):this._target.copyFrom(e)}var n=this._getLockedTargetPosition();return n||this._target},t.prototype.storeState=function(){return this._storedAlpha=this.alpha,this._storedBeta=this.beta,this._storedRadius=this.radius,this._storedTarget=this._getTargetPosition().clone(),this._storedTargetScreenOffset=this.targetScreenOffset.clone(),r.prototype.storeState.call(this)},t.prototype._restoreStateValues=function(){return!!r.prototype._restoreStateValues.call(this)&&(this.setTarget(this._storedTarget.clone()),this.alpha=this._storedAlpha,this.beta=this._storedBeta,this.radius=this._storedRadius,this.targetScreenOffset=this._storedTargetScreenOffset.clone(),this.inertialAlphaOffset=0,this.inertialBetaOffset=0,this.inertialRadiusOffset=0,this.inertialPanningX=0,this.inertialPanningY=0,!0)},t.prototype._isSynchronizedViewMatrix=function(){return!!r.prototype._isSynchronizedViewMatrix.call(this)&&this._cache._target.equals(this._getTargetPosition())&&this._cache.alpha===this.alpha&&this._cache.beta===this.beta&&this._cache.radius===this.radius&&this._cache.targetScreenOffset.equals(this.targetScreenOffset)},t.prototype.attachControl=function(e,n,i,o){var a=this;i===void 0&&(i=!0),o===void 0&&(o=2),n=Xe.b.BackCompatCameraNoPreventDefault(arguments),this._useCtrlForPanning=i,this._panningMouseButton=o,typeof arguments[0]=="boolean"&&(arguments.length>1&&(this._useCtrlForPanning=arguments[1]),arguments.length>2&&(this._panningMouseButton=arguments[2])),this.inputs.attachElement(n),this._reset=function(){a.inertialAlphaOffset=0,a.inertialBetaOffset=0,a.inertialRadiusOffset=0,a.inertialPanningX=0,a.inertialPanningY=0}},t.prototype.detachControl=function(e){this.inputs.detachElement(),this._reset&&this._reset()},t.prototype._checkInputs=function(){if(!this._collisionTriggered){if(this.inputs.checkInputs(),this.inertialAlphaOffset!==0||this.inertialBetaOffset!==0||this.inertialRadiusOffset!==0){var e=this.inertialAlphaOffset;this.beta<=0&&(e*=-1),this.getScene().useRightHandedSystem&&(e*=-1),this.parent&&this.parent._getWorldMatrixDeterminant()<0&&(e*=-1),this.alpha+=e,this.beta+=this.inertialBetaOffset,this.radius-=this.inertialRadiusOffset,this.inertialAlphaOffset*=this.inertia,this.inertialBetaOffset*=this.inertia,this.inertialRadiusOffset*=this.inertia,Math.abs(this.inertialAlphaOffset)Math.PI&&(this.beta=this.beta-2*Math.PI):this.betathis.upperBetaLimit&&(this.beta=this.upperBetaLimit),this.lowerAlphaLimit!==null&&this.alphathis.upperAlphaLimit&&(this.alpha=this.upperAlphaLimit),this.lowerRadiusLimit!==null&&this.radiusthis.upperRadiusLimit&&(this.radius=this.upperRadiusLimit,this.inertialRadiusOffset=0)},t.prototype.rebuildAnglesAndRadius=function(){this._position.subtractToRef(this._getTargetPosition(),this._computationVector),this._upVector.x===0&&this._upVector.y===1&&this._upVector.z===0||u.e.TransformCoordinatesToRef(this._computationVector,this._upToYMatrix,this._computationVector),this.radius=this._computationVector.length(),this.radius===0&&(this.radius=1e-4);var e=this.alpha;this._computationVector.x===0&&this._computationVector.z===0?this.alpha=Math.PI/2:this.alpha=Math.acos(this._computationVector.x/Math.sqrt(Math.pow(this._computationVector.x,2)+Math.pow(this._computationVector.z,2))),this._computationVector.z<0&&(this.alpha=2*Math.PI-this.alpha);var n=Math.round((e-this.alpha)/(2*Math.PI));this.alpha+=2*n*Math.PI,this.beta=Math.acos(this._computationVector.y/this.radius),this._checkLimits()},t.prototype.setPosition=function(e){this._position.equals(e)||(this._position.copyFrom(e),this.rebuildAnglesAndRadius())},t.prototype.setTarget=function(e,n,i){if(n===void 0&&(n=!1),i===void 0&&(i=!1),e.getBoundingInfo)this._targetBoundingCenter=n?e.getBoundingInfo().boundingBox.centerWorld.clone():null,e.computeWorldMatrix(),this._targetHost=e,this._target=this._getTargetPosition(),this.onMeshTargetChangedObservable.notifyObservers(this._targetHost);else{var o=e,a=this._getTargetPosition();if(a&&!i&&a.equals(o))return;this._targetHost=null,this._target=o,this._targetBoundingCenter=null,this.onMeshTargetChangedObservable.notifyObservers(null)}this.rebuildAnglesAndRadius()},t.prototype._getViewMatrix=function(){var e=Math.cos(this.alpha),n=Math.sin(this.alpha),i=Math.cos(this.beta),o=Math.sin(this.beta);o===0&&(o=1e-4),this.radius===0&&(this.radius=1e-4);var a=this._getTargetPosition();if(this._computationVector.copyFromFloats(this.radius*e*o,this.radius*i,this.radius*n*o),this._upVector.x===0&&this._upVector.y===1&&this._upVector.z===0||u.e.TransformCoordinatesToRef(this._computationVector,this._YToUpMatrix,this._computationVector),a.addToRef(this._computationVector,this._newPosition),this.getScene().collisionsEnabled&&this.checkCollisions){var s=this.getScene().collisionCoordinator;this._collider||(this._collider=s.createCollider()),this._collider._radius=this.collisionRadius,this._newPosition.subtractToRef(this._position,this._collisionVelocity),this._collisionTriggered=!0,s.getNewPosition(this._position,this._collisionVelocity,this._collider,3,null,this._onCollisionPositionChange,this.uniqueId)}else{this._position.copyFrom(this._newPosition);var d=this.upVector;this.allowUpsideDown&&o<0&&(d=d.negate()),this._computeViewMatrix(this._position,a,d),this._viewMatrix.addAtIndex(12,this.targetScreenOffset.x),this._viewMatrix.addAtIndex(13,this.targetScreenOffset.y)}return this._currentTarget=a,this._viewMatrix},t.prototype.zoomOn=function(e,n){n===void 0&&(n=!1),e=e||this.getScene().meshes;var i=De.a.MinMax(e),o=u.e.Distance(i.min,i.max);this.radius=o*this.zoomOnFactor,this.focusOn({min:i.min,max:i.max,distance:o},n)},t.prototype.focusOn=function(e,n){var i,o;if(n===void 0&&(n=!1),e.min===void 0){var a=e||this.getScene().meshes;i=De.a.MinMax(a),o=u.e.Distance(i.min,i.max)}else i=e,o=e.distance;this._target=De.a.Center(i),n||(this.maxZ=2*o)},t.prototype.createRigCamera=function(e,n){var i=0;switch(this.cameraRigMode){case gt.a.RIG_MODE_STEREOSCOPIC_ANAGLYPH:case gt.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:case gt.a.RIG_MODE_STEREOSCOPIC_OVERUNDER:case gt.a.RIG_MODE_STEREOSCOPIC_INTERLACED:case gt.a.RIG_MODE_VR:i=this._cameraRigParams.stereoHalfAngle*(n===0?1:-1);break;case gt.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED:i=this._cameraRigParams.stereoHalfAngle*(n===0?-1:1)}var o=new t(e,this.alpha+i,this.beta,this.radius,this._target,this.getScene());return o._cameraRigParams={},o.isRigCamera=!0,o.rigParent=this,o.upVector=this.upVector,o},t.prototype._updateRigCameras=function(){var e=this._rigCameras[0],n=this._rigCameras[1];switch(e.beta=n.beta=this.beta,this.cameraRigMode){case gt.a.RIG_MODE_STEREOSCOPIC_ANAGLYPH:case gt.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:case gt.a.RIG_MODE_STEREOSCOPIC_OVERUNDER:case gt.a.RIG_MODE_STEREOSCOPIC_INTERLACED:case gt.a.RIG_MODE_VR:e.alpha=this.alpha-this._cameraRigParams.stereoHalfAngle,n.alpha=this.alpha+this._cameraRigParams.stereoHalfAngle;break;case gt.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED:e.alpha=this.alpha+this._cameraRigParams.stereoHalfAngle,n.alpha=this.alpha-this._cameraRigParams.stereoHalfAngle}r.prototype._updateRigCameras.call(this)},t.prototype.dispose=function(){this.inputs.clear(),r.prototype.dispose.call(this)},t.prototype.getClassName=function(){return"ArcRotateCamera"},Object(c.c)([Object(L.c)()],t.prototype,"alpha",void 0),Object(c.c)([Object(L.c)()],t.prototype,"beta",void 0),Object(c.c)([Object(L.c)()],t.prototype,"radius",void 0),Object(c.c)([Object(L.o)("target")],t.prototype,"_target",void 0),Object(c.c)([Object(L.c)()],t.prototype,"inertialAlphaOffset",void 0),Object(c.c)([Object(L.c)()],t.prototype,"inertialBetaOffset",void 0),Object(c.c)([Object(L.c)()],t.prototype,"inertialRadiusOffset",void 0),Object(c.c)([Object(L.c)()],t.prototype,"lowerAlphaLimit",void 0),Object(c.c)([Object(L.c)()],t.prototype,"upperAlphaLimit",void 0),Object(c.c)([Object(L.c)()],t.prototype,"lowerBetaLimit",void 0),Object(c.c)([Object(L.c)()],t.prototype,"upperBetaLimit",void 0),Object(c.c)([Object(L.c)()],t.prototype,"lowerRadiusLimit",void 0),Object(c.c)([Object(L.c)()],t.prototype,"upperRadiusLimit",void 0),Object(c.c)([Object(L.c)()],t.prototype,"inertialPanningX",void 0),Object(c.c)([Object(L.c)()],t.prototype,"inertialPanningY",void 0),Object(c.c)([Object(L.c)()],t.prototype,"pinchToPanMaxDistance",void 0),Object(c.c)([Object(L.c)()],t.prototype,"panningDistanceLimit",void 0),Object(c.c)([Object(L.o)()],t.prototype,"panningOriginTarget",void 0),Object(c.c)([Object(L.c)()],t.prototype,"panningInertia",void 0),Object(c.c)([Object(L.c)()],t.prototype,"zoomOnFactor",void 0),Object(c.c)([Object(L.c)()],t.prototype,"targetScreenOffset",void 0),Object(c.c)([Object(L.c)()],t.prototype,"allowUpsideDown",void 0),Object(c.c)([Object(L.c)()],t.prototype,"useInputToRestoreState",void 0),t}(Li);Q.a.AddNodeConstructor("DeviceOrientationCamera",function(r,t){return function(){return new Bo(r,u.e.Zero(),t)}});var Bo=function(r){function t(e,n,i){var o=r.call(this,e,n,i)||this;return o._tmpDragQuaternion=new u.b,o._disablePointerInputWhenUsingDeviceOrientation=!0,o._dragFactor=0,o._quaternionCache=new u.b,o.inputs.addDeviceOrientation(),o.inputs._deviceOrientationInput&&o.inputs._deviceOrientationInput._onDeviceOrientationChangedObservable.addOnce(function(){o._disablePointerInputWhenUsingDeviceOrientation&&o.inputs._mouseInput&&(o.inputs._mouseInput._allowCameraRotation=!1,o.inputs._mouseInput.onPointerMovedObservable.add(function(a){o._dragFactor!=0&&(o._initialQuaternion||(o._initialQuaternion=new u.b),u.b.FromEulerAnglesToRef(0,a.offsetX*o._dragFactor,0,o._tmpDragQuaternion),o._initialQuaternion.multiplyToRef(o._tmpDragQuaternion,o._initialQuaternion))}))}),o}return Object(c.d)(t,r),Object.defineProperty(t.prototype,"disablePointerInputWhenUsingDeviceOrientation",{get:function(){return this._disablePointerInputWhenUsingDeviceOrientation},set:function(e){this._disablePointerInputWhenUsingDeviceOrientation=e},enumerable:!1,configurable:!0}),t.prototype.enableHorizontalDragging=function(e){e===void 0&&(e=1/300),this._dragFactor=e},t.prototype.getClassName=function(){return"DeviceOrientationCamera"},t.prototype._checkInputs=function(){r.prototype._checkInputs.call(this),this._quaternionCache.copyFrom(this.rotationQuaternion),this._initialQuaternion&&this._initialQuaternion.multiplyToRef(this.rotationQuaternion,this.rotationQuaternion)},t.prototype.resetToCurrentRotation=function(e){var n=this;e===void 0&&(e=ye.a.Y),this.rotationQuaternion&&(this._initialQuaternion||(this._initialQuaternion=new u.b),this._initialQuaternion.copyFrom(this._quaternionCache||this.rotationQuaternion),["x","y","z"].forEach(function(i){e[i]?n._initialQuaternion[i]*=-1:n._initialQuaternion[i]=0}),this._initialQuaternion.normalize(),this._initialQuaternion.multiplyToRef(this.rotationQuaternion,this.rotationQuaternion))},t}(Yn),Pl=function(r){function t(e){return r.call(this,e)||this}return Object(c.d)(t,r),t.prototype.addKeyboard=function(){return this.add(new Ka),this},t.prototype.addMouse=function(e){return e===void 0&&(e=!0),this.add(new Qa(e)),this},t}(Zr),Uf=function(r){function t(e,n,i,o){o===void 0&&(o=!0);var a=r.call(this,e,n,i,o)||this;return a.ellipsoid=new u.e(1,1,1),a.ellipsoidOffset=new u.e(0,0,0),a.checkCollisions=!1,a.applyGravity=!1,a.cameraDirection=u.e.Zero(),a._trackRoll=0,a.rollCorrect=100,a.bankedTurn=!1,a.bankedTurnLimit=Math.PI/2,a.bankedTurnMultiplier=1,a._needMoveForGravity=!1,a._oldPosition=u.e.Zero(),a._diffPosition=u.e.Zero(),a._newPosition=u.e.Zero(),a._collisionMask=-1,a._onCollisionPositionChange=function(s,d,p){p===void 0&&(p=null);var b;b=d,a._newPosition.copyFrom(b),a._newPosition.subtractToRef(a._oldPosition,a._diffPosition),a._diffPosition.length()>Ue.a.CollisionsEpsilon&&(a.position.addInPlace(a._diffPosition),a.onCollide&&p&&a.onCollide(p))},a.inputs=new Pl(a),a.inputs.addKeyboard().addMouse(),a}return Object(c.d)(t,r),Object.defineProperty(t.prototype,"angularSensibility",{get:function(){var e=this.inputs.attached.mouse;return e?e.angularSensibility:0},set:function(e){var n=this.inputs.attached.mouse;n&&(n.angularSensibility=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"keysForward",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysForward:[]},set:function(e){var n=this.inputs.attached.keyboard;n&&(n.keysForward=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"keysBackward",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysBackward:[]},set:function(e){var n=this.inputs.attached.keyboard;n&&(n.keysBackward=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"keysUp",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysUp:[]},set:function(e){var n=this.inputs.attached.keyboard;n&&(n.keysUp=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"keysDown",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysDown:[]},set:function(e){var n=this.inputs.attached.keyboard;n&&(n.keysDown=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"keysLeft",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysLeft:[]},set:function(e){var n=this.inputs.attached.keyboard;n&&(n.keysLeft=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"keysRight",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysRight:[]},set:function(e){var n=this.inputs.attached.keyboard;n&&(n.keysRight=e)},enumerable:!1,configurable:!0}),t.prototype.attachControl=function(e,n){n=Xe.b.BackCompatCameraNoPreventDefault(arguments),this.inputs.attachElement(n)},t.prototype.detachControl=function(){this.inputs.detachElement(),this.cameraDirection=new u.e(0,0,0)},Object.defineProperty(t.prototype,"collisionMask",{get:function(){return this._collisionMask},set:function(e){this._collisionMask=isNaN(e)?-1:e},enumerable:!1,configurable:!0}),t.prototype._collideWithWorld=function(e){(this.parent?u.e.TransformCoordinates(this.position,this.parent.getWorldMatrix()):this.position).subtractFromFloatsToRef(0,this.ellipsoid.y,0,this._oldPosition),this._oldPosition.addInPlace(this.ellipsoidOffset);var n=this.getScene().collisionCoordinator;this._collider||(this._collider=n.createCollider()),this._collider._radius=this.ellipsoid,this._collider.collisionMask=this._collisionMask;var i=e;this.applyGravity&&(i=e.add(this.getScene().gravity)),n.getNewPosition(this._oldPosition,i,this._collider,3,null,this._onCollisionPositionChange,this.uniqueId)},t.prototype._checkInputs=function(){this._localDirection||(this._localDirection=u.e.Zero(),this._transformedDirection=u.e.Zero()),this.inputs.checkInputs(),r.prototype._checkInputs.call(this)},t.prototype._decideIfNeedsToMove=function(){return this._needMoveForGravity||Math.abs(this.cameraDirection.x)>0||Math.abs(this.cameraDirection.y)>0||Math.abs(this.cameraDirection.z)>0},t.prototype._updatePosition=function(){this.checkCollisions&&this.getScene().collisionsEnabled?this._collideWithWorld(this.cameraDirection):r.prototype._updatePosition.call(this)},t.prototype.restoreRoll=function(e){var n=this._trackRoll,i=n-this.rotation.z;Math.abs(i)>=.001&&(this.rotation.z+=i/e,Math.abs(n-this.rotation.z)<=.001&&(this.rotation.z=n))},t.prototype.dispose=function(){this.inputs.clear(),r.prototype.dispose.call(this)},t.prototype.getClassName=function(){return"FlyCamera"},Object(c.c)([Object(L.o)()],t.prototype,"ellipsoid",void 0),Object(c.c)([Object(L.o)()],t.prototype,"ellipsoidOffset",void 0),Object(c.c)([Object(L.c)()],t.prototype,"checkCollisions",void 0),Object(c.c)([Object(L.c)()],t.prototype,"applyGravity",void 0),t}(Li),xl=function(r){function t(e){return r.call(this,e)||this}return Object(c.d)(t,r),t.prototype.addKeyboard=function(){return this.add(new qa),this},t.prototype.addMouseWheel=function(){return this.add(new Za),this},t.prototype.addPointers=function(){return this.add(new Ja),this},t.prototype.addVRDeviceOrientation=function(){return console.warn("DeviceOrientation support not yet implemented for FollowCamera."),this},t}(Zr);Q.a.AddNodeConstructor("FollowCamera",function(r,t){return function(){return new Cl(r,u.e.Zero(),t)}}),Q.a.AddNodeConstructor("ArcFollowCamera",function(r,t){return function(){return new Rl(r,0,0,1,null,t)}});var ii,Cl=function(r){function t(e,n,i,o){o===void 0&&(o=null);var a=r.call(this,e,n,i)||this;return a.radius=12,a.lowerRadiusLimit=null,a.upperRadiusLimit=null,a.rotationOffset=0,a.lowerRotationOffsetLimit=null,a.upperRotationOffsetLimit=null,a.heightOffset=4,a.lowerHeightOffsetLimit=null,a.upperHeightOffsetLimit=null,a.cameraAcceleration=.05,a.maxCameraSpeed=20,a.lockedTarget=o,a.inputs=new xl(a),a.inputs.addKeyboard().addMouseWheel().addPointers(),a}return Object(c.d)(t,r),t.prototype._follow=function(e){if(e){var n;if(e.rotationQuaternion){var i=new u.a;e.rotationQuaternion.toRotationMatrix(i),n=Math.atan2(i.m[8],i.m[10])}else n=e.rotation.y;var o=Xe.b.ToRadians(this.rotationOffset)+n,a=e.getAbsolutePosition(),s=a.x+Math.sin(o)*this.radius,d=a.z+Math.cos(o)*this.radius,p=s-this.position.x,b=a.y+this.heightOffset-this.position.y,x=d-this.position.z,O=p*this.cameraAcceleration*2,B=b*this.cameraAcceleration,F=x*this.cameraAcceleration*2;(O>this.maxCameraSpeed||O<-this.maxCameraSpeed)&&(O=O<1?-this.maxCameraSpeed:this.maxCameraSpeed),(B>this.maxCameraSpeed||B<-this.maxCameraSpeed)&&(B=B<1?-this.maxCameraSpeed:this.maxCameraSpeed),(F>this.maxCameraSpeed||F<-this.maxCameraSpeed)&&(F=F<1?-this.maxCameraSpeed:this.maxCameraSpeed),this.position=new u.e(this.position.x+O,this.position.y+B,this.position.z+F),this.setTarget(a)}},t.prototype.attachControl=function(e,n){n=Xe.b.BackCompatCameraNoPreventDefault(arguments),this.inputs.attachElement(n),this._reset=function(){}},t.prototype.detachControl=function(e){this.inputs.detachElement(),this._reset&&this._reset()},t.prototype._checkInputs=function(){this.inputs.checkInputs(),this._checkLimits(),r.prototype._checkInputs.call(this),this.lockedTarget&&this._follow(this.lockedTarget)},t.prototype._checkLimits=function(){this.lowerRadiusLimit!==null&&this.radiusthis.upperRadiusLimit&&(this.radius=this.upperRadiusLimit),this.lowerHeightOffsetLimit!==null&&this.heightOffsetthis.upperHeightOffsetLimit&&(this.heightOffset=this.upperHeightOffsetLimit),this.lowerRotationOffsetLimit!==null&&this.rotationOffsetthis.upperRotationOffsetLimit&&(this.rotationOffset=this.upperRotationOffsetLimit)},t.prototype.getClassName=function(){return"FollowCamera"},Object(c.c)([Object(L.c)()],t.prototype,"radius",void 0),Object(c.c)([Object(L.c)()],t.prototype,"lowerRadiusLimit",void 0),Object(c.c)([Object(L.c)()],t.prototype,"upperRadiusLimit",void 0),Object(c.c)([Object(L.c)()],t.prototype,"rotationOffset",void 0),Object(c.c)([Object(L.c)()],t.prototype,"lowerRotationOffsetLimit",void 0),Object(c.c)([Object(L.c)()],t.prototype,"upperRotationOffsetLimit",void 0),Object(c.c)([Object(L.c)()],t.prototype,"heightOffset",void 0),Object(c.c)([Object(L.c)()],t.prototype,"lowerHeightOffsetLimit",void 0),Object(c.c)([Object(L.c)()],t.prototype,"upperHeightOffsetLimit",void 0),Object(c.c)([Object(L.c)()],t.prototype,"cameraAcceleration",void 0),Object(c.c)([Object(L.c)()],t.prototype,"maxCameraSpeed",void 0),Object(c.c)([Object(L.k)("lockedTargetId")],t.prototype,"lockedTarget",void 0),t}(Li),Rl=function(r){function t(e,n,i,o,a,s){var d=r.call(this,e,u.e.Zero(),s)||this;return d.alpha=n,d.beta=i,d.radius=o,d._cartesianCoordinates=u.e.Zero(),d._meshTarget=a,d._follow(),d}return Object(c.d)(t,r),t.prototype._follow=function(){if(this._meshTarget){this._cartesianCoordinates.x=this.radius*Math.cos(this.alpha)*Math.cos(this.beta),this._cartesianCoordinates.y=this.radius*Math.sin(this.beta),this._cartesianCoordinates.z=this.radius*Math.sin(this.alpha)*Math.cos(this.beta);var e=this._meshTarget.getAbsolutePosition();this.position=e.add(this._cartesianCoordinates),this.setTarget(e)}},t.prototype._checkInputs=function(){r.prototype._checkInputs.call(this),this._follow()},t.prototype.getClassName=function(){return"ArcFollowCamera"},t}(Li),cs=f(38),dn=f(39);(function(r){r[r.VIVE=0]="VIVE",r[r.OCULUS=1]="OCULUS",r[r.WINDOWS=2]="WINDOWS",r[r.GEAR_VR=3]="GEAR_VR",r[r.DAYDREAM=4]="DAYDREAM",r[r.GENERIC=5]="GENERIC"})(ii||(ii={}));var Rn,Ji,Ni=function(){function r(){}return r.InitiateController=function(t){for(var e=0,n=this._ControllerFactories;ethis._maxRotationDistFromHeadset){var o=i-(i<0?-this._maxRotationDistFromHeadset:this._maxRotationDistFromHeadset);this._draggedRoomRotation+=o;var a=Math.sin(-o),s=Math.cos(-o);this._calculatedPosition.x=this._calculatedPosition.x*s-this._calculatedPosition.z*a,this._calculatedPosition.z=this._calculatedPosition.x*a+this._calculatedPosition.z*s}}u.e.TransformCoordinatesToRef(this._calculatedPosition,this._deviceToWorld,this.devicePosition),this._deviceToWorld.getRotationMatrixToRef(this._workingMatrix),u.b.FromRotationMatrixToRef(this._workingMatrix,this.deviceRotationQuaternion),this.deviceRotationQuaternion.multiplyInPlace(this._calculatedRotation),this._mesh&&(this._mesh.position.copyFrom(this.devicePosition),this._mesh.rotationQuaternion&&this._mesh.rotationQuaternion.copyFrom(this.deviceRotationQuaternion))}},t.prototype.updateFromDevice=function(e){if(!this.isXR&&e){this.rawPose=e,e.position&&(this._deviceRoomPosition.copyFromFloats(e.position[0],e.position[1],-e.position[2]),this._mesh&&this._mesh.getScene().useRightHandedSystem&&(this._deviceRoomPosition.z*=-1),this._trackPosition&&this._deviceRoomPosition.scaleToRef(this.deviceScaleFactor,this._calculatedPosition),this._calculatedPosition.addInPlace(this.position));var n=this.rawPose;e.orientation&&n.orientation&&n.orientation.length===4&&(this._deviceRoomRotationQuaternion.copyFromFloats(n.orientation[0],n.orientation[1],-n.orientation[2],-n.orientation[3]),this._mesh&&(this._mesh.getScene().useRightHandedSystem?(this._deviceRoomRotationQuaternion.z*=-1,this._deviceRoomRotationQuaternion.w*=-1):this._deviceRoomRotationQuaternion.multiplyToRef(this._leftHandSystemQuaternion,this._deviceRoomRotationQuaternion)),this._deviceRoomRotationQuaternion.multiplyToRef(this.rotationQuaternion,this._calculatedRotation))}},t.prototype.attachToMesh=function(e){if(this._mesh&&(this._mesh.parent=null),this._mesh=e,this._poseControlledCamera&&(this._mesh.parent=this._poseControlledCamera),this._mesh.rotationQuaternion||(this._mesh.rotationQuaternion=new u.b),!this.isXR&&(this._updatePoseAndMesh(),this._pointingPoseNode)){for(var n=[],i=this._pointingPoseNode;i.parent;)n.push(i.parent),i=i.parent;n.reverse().forEach(function(o){o.computeWorldMatrix(!0)})}this._meshAttachedObservable.notifyObservers(e)},t.prototype.attachToPoseControlledCamera=function(e){this._poseControlledCamera=e,this._mesh&&(this._mesh.parent=this._poseControlledCamera)},t.prototype.dispose=function(){this._mesh&&this._mesh.dispose(),this._mesh=null,r.prototype.dispose.call(this)},Object.defineProperty(t.prototype,"mesh",{get:function(){return this._mesh},enumerable:!1,configurable:!0}),t.prototype.getForwardRay=function(e){if(e===void 0&&(e=100),!this.mesh)return new dn.a(u.e.Zero(),new u.e(0,0,1),e);var n=this._pointingPoseNode?this._pointingPoseNode.getWorldMatrix():this.mesh.getWorldMatrix(),i=n.getTranslation(),o=new u.e(0,0,-1),a=u.e.TransformNormal(o,n),s=u.e.Normalize(a);return new dn.a(i,s,e)},t.POINTING_POSE="POINTING_POSE",t}(hn);(function(r){r[r.A=0]="A",r[r.B=1]="B",r[r.X=2]="X",r[r.Y=3]="Y",r[r.LB=4]="LB",r[r.RB=5]="RB",r[r.Back=8]="Back",r[r.Start=9]="Start",r[r.LeftStick=10]="LeftStick",r[r.RightStick=11]="RightStick"})(Rn||(Rn={})),function(r){r[r.Up=12]="Up",r[r.Down=13]="Down",r[r.Left=14]="Left",r[r.Right=15]="Right"}(Ji||(Ji={}));var Hn,$i,Ol=function(r){function t(e,n,i,o){o===void 0&&(o=!1);var a=r.call(this,e,n,i,0,1,2,3)||this;return a._leftTrigger=0,a._rightTrigger=0,a.onButtonDownObservable=new R.c,a.onButtonUpObservable=new R.c,a.onPadDownObservable=new R.c,a.onPadUpObservable=new R.c,a._buttonA=0,a._buttonB=0,a._buttonX=0,a._buttonY=0,a._buttonBack=0,a._buttonStart=0,a._buttonLB=0,a._buttonRB=0,a._buttonLeftStick=0,a._buttonRightStick=0,a._dPadUp=0,a._dPadDown=0,a._dPadLeft=0,a._dPadRight=0,a._isXboxOnePad=!1,a.type=hn.XBOX,a._isXboxOnePad=o,a}return Object(c.d)(t,r),t.prototype.onlefttriggerchanged=function(e){this._onlefttriggerchanged=e},t.prototype.onrighttriggerchanged=function(e){this._onrighttriggerchanged=e},Object.defineProperty(t.prototype,"leftTrigger",{get:function(){return this._leftTrigger},set:function(e){this._onlefttriggerchanged&&this._leftTrigger!==e&&this._onlefttriggerchanged(e),this._leftTrigger=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"rightTrigger",{get:function(){return this._rightTrigger},set:function(e){this._onrighttriggerchanged&&this._rightTrigger!==e&&this._onrighttriggerchanged(e),this._rightTrigger=e},enumerable:!1,configurable:!0}),t.prototype.onbuttondown=function(e){this._onbuttondown=e},t.prototype.onbuttonup=function(e){this._onbuttonup=e},t.prototype.ondpaddown=function(e){this._ondpaddown=e},t.prototype.ondpadup=function(e){this._ondpadup=e},t.prototype._setButtonValue=function(e,n,i){return e!==n&&(e===1&&(this._onbuttondown&&this._onbuttondown(i),this.onButtonDownObservable.notifyObservers(i)),e===0&&(this._onbuttonup&&this._onbuttonup(i),this.onButtonUpObservable.notifyObservers(i))),e},t.prototype._setDPadValue=function(e,n,i){return e!==n&&(e===1&&(this._ondpaddown&&this._ondpaddown(i),this.onPadDownObservable.notifyObservers(i)),e===0&&(this._ondpadup&&this._ondpadup(i),this.onPadUpObservable.notifyObservers(i))),e},Object.defineProperty(t.prototype,"buttonA",{get:function(){return this._buttonA},set:function(e){this._buttonA=this._setButtonValue(e,this._buttonA,Rn.A)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"buttonB",{get:function(){return this._buttonB},set:function(e){this._buttonB=this._setButtonValue(e,this._buttonB,Rn.B)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"buttonX",{get:function(){return this._buttonX},set:function(e){this._buttonX=this._setButtonValue(e,this._buttonX,Rn.X)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"buttonY",{get:function(){return this._buttonY},set:function(e){this._buttonY=this._setButtonValue(e,this._buttonY,Rn.Y)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"buttonStart",{get:function(){return this._buttonStart},set:function(e){this._buttonStart=this._setButtonValue(e,this._buttonStart,Rn.Start)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"buttonBack",{get:function(){return this._buttonBack},set:function(e){this._buttonBack=this._setButtonValue(e,this._buttonBack,Rn.Back)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"buttonLB",{get:function(){return this._buttonLB},set:function(e){this._buttonLB=this._setButtonValue(e,this._buttonLB,Rn.LB)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"buttonRB",{get:function(){return this._buttonRB},set:function(e){this._buttonRB=this._setButtonValue(e,this._buttonRB,Rn.RB)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"buttonLeftStick",{get:function(){return this._buttonLeftStick},set:function(e){this._buttonLeftStick=this._setButtonValue(e,this._buttonLeftStick,Rn.LeftStick)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"buttonRightStick",{get:function(){return this._buttonRightStick},set:function(e){this._buttonRightStick=this._setButtonValue(e,this._buttonRightStick,Rn.RightStick)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"dPadUp",{get:function(){return this._dPadUp},set:function(e){this._dPadUp=this._setDPadValue(e,this._dPadUp,Ji.Up)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"dPadDown",{get:function(){return this._dPadDown},set:function(e){this._dPadDown=this._setDPadValue(e,this._dPadDown,Ji.Down)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"dPadLeft",{get:function(){return this._dPadLeft},set:function(e){this._dPadLeft=this._setDPadValue(e,this._dPadLeft,Ji.Left)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"dPadRight",{get:function(){return this._dPadRight},set:function(e){this._dPadRight=this._setDPadValue(e,this._dPadRight,Ji.Right)},enumerable:!1,configurable:!0}),t.prototype.update=function(){r.prototype.update.call(this),this._isXboxOnePad,this.buttonA=this.browserGamepad.buttons[0].value,this.buttonB=this.browserGamepad.buttons[1].value,this.buttonX=this.browserGamepad.buttons[2].value,this.buttonY=this.browserGamepad.buttons[3].value,this.buttonLB=this.browserGamepad.buttons[4].value,this.buttonRB=this.browserGamepad.buttons[5].value,this.leftTrigger=this.browserGamepad.buttons[6].value,this.rightTrigger=this.browserGamepad.buttons[7].value,this.buttonBack=this.browserGamepad.buttons[8].value,this.buttonStart=this.browserGamepad.buttons[9].value,this.buttonLeftStick=this.browserGamepad.buttons[10].value,this.buttonRightStick=this.browserGamepad.buttons[11].value,this.dPadUp=this.browserGamepad.buttons[12].value,this.dPadDown=this.browserGamepad.buttons[13].value,this.dPadLeft=this.browserGamepad.buttons[14].value,this.dPadRight=this.browserGamepad.buttons[15].value},t.prototype.dispose=function(){r.prototype.dispose.call(this),this.onButtonDownObservable.clear(),this.onButtonUpObservable.clear(),this.onPadDownObservable.clear(),this.onPadUpObservable.clear()},t}(hn);(function(r){r[r.Cross=0]="Cross",r[r.Circle=1]="Circle",r[r.Square=2]="Square",r[r.Triangle=3]="Triangle",r[r.L1=4]="L1",r[r.R1=5]="R1",r[r.Share=8]="Share",r[r.Options=9]="Options",r[r.LeftStick=10]="LeftStick",r[r.RightStick=11]="RightStick"})(Hn||(Hn={})),function(r){r[r.Up=12]="Up",r[r.Down=13]="Down",r[r.Left=14]="Left",r[r.Right=15]="Right"}($i||($i={}));var Ml=function(r){function t(e,n,i){var o=r.call(this,e.replace("STANDARD GAMEPAD","SONY PLAYSTATION DUALSHOCK"),n,i,0,1,2,3)||this;return o._leftTrigger=0,o._rightTrigger=0,o.onButtonDownObservable=new R.c,o.onButtonUpObservable=new R.c,o.onPadDownObservable=new R.c,o.onPadUpObservable=new R.c,o._buttonCross=0,o._buttonCircle=0,o._buttonSquare=0,o._buttonTriangle=0,o._buttonShare=0,o._buttonOptions=0,o._buttonL1=0,o._buttonR1=0,o._buttonLeftStick=0,o._buttonRightStick=0,o._dPadUp=0,o._dPadDown=0,o._dPadLeft=0,o._dPadRight=0,o.type=hn.DUALSHOCK,o}return Object(c.d)(t,r),t.prototype.onlefttriggerchanged=function(e){this._onlefttriggerchanged=e},t.prototype.onrighttriggerchanged=function(e){this._onrighttriggerchanged=e},Object.defineProperty(t.prototype,"leftTrigger",{get:function(){return this._leftTrigger},set:function(e){this._onlefttriggerchanged&&this._leftTrigger!==e&&this._onlefttriggerchanged(e),this._leftTrigger=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"rightTrigger",{get:function(){return this._rightTrigger},set:function(e){this._onrighttriggerchanged&&this._rightTrigger!==e&&this._onrighttriggerchanged(e),this._rightTrigger=e},enumerable:!1,configurable:!0}),t.prototype.onbuttondown=function(e){this._onbuttondown=e},t.prototype.onbuttonup=function(e){this._onbuttonup=e},t.prototype.ondpaddown=function(e){this._ondpaddown=e},t.prototype.ondpadup=function(e){this._ondpadup=e},t.prototype._setButtonValue=function(e,n,i){return e!==n&&(e===1&&(this._onbuttondown&&this._onbuttondown(i),this.onButtonDownObservable.notifyObservers(i)),e===0&&(this._onbuttonup&&this._onbuttonup(i),this.onButtonUpObservable.notifyObservers(i))),e},t.prototype._setDPadValue=function(e,n,i){return e!==n&&(e===1&&(this._ondpaddown&&this._ondpaddown(i),this.onPadDownObservable.notifyObservers(i)),e===0&&(this._ondpadup&&this._ondpadup(i),this.onPadUpObservable.notifyObservers(i))),e},Object.defineProperty(t.prototype,"buttonCross",{get:function(){return this._buttonCross},set:function(e){this._buttonCross=this._setButtonValue(e,this._buttonCross,Hn.Cross)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"buttonCircle",{get:function(){return this._buttonCircle},set:function(e){this._buttonCircle=this._setButtonValue(e,this._buttonCircle,Hn.Circle)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"buttonSquare",{get:function(){return this._buttonSquare},set:function(e){this._buttonSquare=this._setButtonValue(e,this._buttonSquare,Hn.Square)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"buttonTriangle",{get:function(){return this._buttonTriangle},set:function(e){this._buttonTriangle=this._setButtonValue(e,this._buttonTriangle,Hn.Triangle)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"buttonOptions",{get:function(){return this._buttonOptions},set:function(e){this._buttonOptions=this._setButtonValue(e,this._buttonOptions,Hn.Options)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"buttonShare",{get:function(){return this._buttonShare},set:function(e){this._buttonShare=this._setButtonValue(e,this._buttonShare,Hn.Share)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"buttonL1",{get:function(){return this._buttonL1},set:function(e){this._buttonL1=this._setButtonValue(e,this._buttonL1,Hn.L1)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"buttonR1",{get:function(){return this._buttonR1},set:function(e){this._buttonR1=this._setButtonValue(e,this._buttonR1,Hn.R1)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"buttonLeftStick",{get:function(){return this._buttonLeftStick},set:function(e){this._buttonLeftStick=this._setButtonValue(e,this._buttonLeftStick,Hn.LeftStick)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"buttonRightStick",{get:function(){return this._buttonRightStick},set:function(e){this._buttonRightStick=this._setButtonValue(e,this._buttonRightStick,Hn.RightStick)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"dPadUp",{get:function(){return this._dPadUp},set:function(e){this._dPadUp=this._setDPadValue(e,this._dPadUp,$i.Up)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"dPadDown",{get:function(){return this._dPadDown},set:function(e){this._dPadDown=this._setDPadValue(e,this._dPadDown,$i.Down)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"dPadLeft",{get:function(){return this._dPadLeft},set:function(e){this._dPadLeft=this._setDPadValue(e,this._dPadLeft,$i.Left)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"dPadRight",{get:function(){return this._dPadRight},set:function(e){this._dPadRight=this._setDPadValue(e,this._dPadRight,$i.Right)},enumerable:!1,configurable:!0}),t.prototype.update=function(){r.prototype.update.call(this),this.buttonCross=this.browserGamepad.buttons[0].value,this.buttonCircle=this.browserGamepad.buttons[1].value,this.buttonSquare=this.browserGamepad.buttons[2].value,this.buttonTriangle=this.browserGamepad.buttons[3].value,this.buttonL1=this.browserGamepad.buttons[4].value,this.buttonR1=this.browserGamepad.buttons[5].value,this.leftTrigger=this.browserGamepad.buttons[6].value,this.rightTrigger=this.browserGamepad.buttons[7].value,this.buttonShare=this.browserGamepad.buttons[8].value,this.buttonOptions=this.browserGamepad.buttons[9].value,this.buttonLeftStick=this.browserGamepad.buttons[10].value,this.buttonRightStick=this.browserGamepad.buttons[11].value,this.dPadUp=this.browserGamepad.buttons[12].value,this.dPadDown=this.browserGamepad.buttons[13].value,this.dPadLeft=this.browserGamepad.buttons[14].value,this.dPadRight=this.browserGamepad.buttons[15].value},t.prototype.dispose=function(){r.prototype.dispose.call(this),this.onButtonDownObservable.clear(),this.onButtonUpObservable.clear(),this.onPadDownObservable.clear(),this.onPadUpObservable.clear()},t}(hn),Il=function(){function r(t){var e=this;if(this._scene=t,this._babylonGamepads=[],this._oneGamepadConnected=!1,this._isMonitoring=!1,this.onGamepadDisconnectedObservable=new R.c,cs.a.IsWindowObjectExist()?(this._gamepadEventSupported="GamepadEvent"in window,this._gamepadSupport=navigator.getGamepads||navigator.webkitGetGamepads||navigator.msGetGamepads||navigator.webkitGamepads):this._gamepadEventSupported=!1,this.onGamepadConnectedObservable=new R.c(function(i){for(var o in e._babylonGamepads){var a=e._babylonGamepads[o];a&&a._isConnected&&e.onGamepadConnectedObservable.notifyObserver(i,a)}}),this._onGamepadConnectedEvent=function(i){var o,a=i.gamepad;a.index in e._babylonGamepads&&e._babylonGamepads[a.index].isConnected||(e._babylonGamepads[a.index]?((o=e._babylonGamepads[a.index]).browserGamepad=a,o._isConnected=!0):o=e._addNewGamepad(a),e.onGamepadConnectedObservable.notifyObservers(o),e._startMonitoringGamepads())},this._onGamepadDisconnectedEvent=function(i){var o=i.gamepad;for(var a in e._babylonGamepads)if(e._babylonGamepads[a].index===o.index){var s=e._babylonGamepads[a];s._isConnected=!1,e.onGamepadDisconnectedObservable.notifyObservers(s),s.dispose&&s.dispose();break}},this._gamepadSupport)if(this._updateGamepadObjects(),this._babylonGamepads.length&&this._startMonitoringGamepads(),this._gamepadEventSupported){var n=this._scene?this._scene.getEngine().getHostWindow():window;n&&(n.addEventListener("gamepadconnected",this._onGamepadConnectedEvent,!1),n.addEventListener("gamepaddisconnected",this._onGamepadDisconnectedEvent,!1))}else this._startMonitoringGamepads()}return Object.defineProperty(r.prototype,"gamepads",{get:function(){return this._babylonGamepads},enumerable:!1,configurable:!0}),r.prototype.getGamepadByType=function(t){t===void 0&&(t=hn.XBOX);for(var e=0,n=this._babylonGamepads;e1&&(p=a.generateStencil?e.DEPTH24_STENCIL8:e.DEPTH_COMPONENT24),o.is2DArray?e.texImage3D(i,0,p,o.width,o.height,n,0,d,s,null):e.texImage2D(i,0,p,o.width,o.height,0,d,s,null),this._bindTextureDirectly(i,null),o};var _t=function(){function r(t,e,n,i,o,a,s,d,p,b,x,O,B,F,z){s===void 0&&(s=h.a.TEXTURE_NEAREST_SAMPLINGMODE),b===void 0&&(b=null),x===void 0&&(x=h.a.TEXTURETYPE_UNSIGNED_INT),O===void 0&&(O="postprocess"),F===void 0&&(F=!1),z===void 0&&(z=h.a.TEXTUREFORMAT_RGBA),this.width=-1,this.height=-1,this.nodeMaterialSource=null,this._outputTexture=null,this.autoClear=!0,this.alphaMode=h.a.ALPHA_DISABLE,this.animations=new Array,this.enablePixelPerfectMode=!1,this.forceFullscreenViewport=!0,this.scaleMode=h.a.SCALEMODE_FLOOR,this.alwaysForcePOT=!1,this._samples=1,this.adaptScaleToCurrentViewport=!1,this._reusable=!1,this._textures=new di.a(2),this._currentRenderTextureInd=0,this._scaleRatio=new u.d(1,1),this._texelSize=u.d.Zero(),this.onActivateObservable=new R.c,this.onSizeChangedObservable=new R.c,this.onApplyObservable=new R.c,this.onBeforeRenderObservable=new R.c,this.onAfterRenderObservable=new R.c,this.name=t,a!=null?(this._camera=a,this._scene=a.getScene(),a.attachPostProcess(this),this._engine=this._scene.getEngine(),this._scene.postProcesses.push(this),this.uniqueId=this._scene.getUniqueId()):d&&(this._engine=d,this._engine.postProcesses.push(this)),this._options=o,this.renderTargetSamplingMode=s||h.a.TEXTURE_NEAREST_SAMPLINGMODE,this._reusable=p||!1,this._textureType=x,this._textureFormat=z,this._samplers=i||[],this._samplers.push("textureSampler"),this._fragmentUrl=e,this._vertexUrl=O,this._parameters=n||[],this._parameters.push("scale"),this._indexParameters=B,F||this.updateEffect(b)}return Object.defineProperty(r.prototype,"samples",{get:function(){return this._samples},set:function(t){var e=this;this._samples=Math.min(t,this._engine.getCaps().maxMSAASamples),this._textures.forEach(function(n){n.samples!==e._samples&&e._engine.updateRenderTargetTextureSampleCount(n,e._samples)})},enumerable:!1,configurable:!0}),r.prototype.getEffectName=function(){return this._fragmentUrl},Object.defineProperty(r.prototype,"onActivate",{set:function(t){this._onActivateObserver&&this.onActivateObservable.remove(this._onActivateObserver),t&&(this._onActivateObserver=this.onActivateObservable.add(t))},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"onSizeChanged",{set:function(t){this._onSizeChangedObserver&&this.onSizeChangedObservable.remove(this._onSizeChangedObserver),this._onSizeChangedObserver=this.onSizeChangedObservable.add(t)},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"onApply",{set:function(t){this._onApplyObserver&&this.onApplyObservable.remove(this._onApplyObserver),this._onApplyObserver=this.onApplyObservable.add(t)},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"onBeforeRender",{set:function(t){this._onBeforeRenderObserver&&this.onBeforeRenderObservable.remove(this._onBeforeRenderObserver),this._onBeforeRenderObserver=this.onBeforeRenderObservable.add(t)},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"onAfterRender",{set:function(t){this._onAfterRenderObserver&&this.onAfterRenderObservable.remove(this._onAfterRenderObserver),this._onAfterRenderObserver=this.onAfterRenderObservable.add(t)},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"inputTexture",{get:function(){return this._textures.data[this._currentRenderTextureInd]},set:function(t){this._forcedOutputTexture=t},enumerable:!1,configurable:!0}),r.prototype.restoreDefaultInputTexture=function(){this._forcedOutputTexture=null},r.prototype.getCamera=function(){return this._camera},Object.defineProperty(r.prototype,"texelSize",{get:function(){return this._shareOutputWithPostProcess?this._shareOutputWithPostProcess.texelSize:(this._forcedOutputTexture&&this._texelSize.copyFromFloats(1/this._forcedOutputTexture.width,1/this._forcedOutputTexture.height),this._texelSize)},enumerable:!1,configurable:!0}),r.prototype.getClassName=function(){return"PostProcess"},r.prototype.getEngine=function(){return this._engine},r.prototype.getEffect=function(){return this._effect},r.prototype.shareOutputWith=function(t){return this._disposeTextures(),this._shareOutputWithPostProcess=t,this},r.prototype.useOwnOutput=function(){this._textures.length==0&&(this._textures=new di.a(2)),this._shareOutputWithPostProcess=null},r.prototype.updateEffect=function(t,e,n,i,o,a,s,d){t===void 0&&(t=null),e===void 0&&(e=null),n===void 0&&(n=null),this._effect=this._engine.createEffect({vertex:s??this._vertexUrl,fragment:d??this._fragmentUrl},["position"],e||this._parameters,n||this._samplers,t!==null?t:"",void 0,o,a,i||this._indexParameters)},r.prototype.isReusable=function(){return this._reusable},r.prototype.markTextureDirty=function(){this.width=-1},r.prototype.activate=function(t,e,n){var i=this;e===void 0&&(e=null);var o=(t=t||this._camera).getScene(),a=o.getEngine(),s=a.getCaps().maxTextureSize,d=(e?e.width:this._engine.getRenderWidth(!0))*this._options|0,p=(e?e.height:this._engine.getRenderHeight(!0))*this._options|0,b=t.parent;!b||b.leftCamera!=t&&b.rightCamera!=t||(d/=2);var x,O=this._options.width||d,B=this._options.height||p,F=this.renderTargetSamplingMode!==h.a.TEXTURE_NEAREST_LINEAR&&this.renderTargetSamplingMode!==h.a.TEXTURE_NEAREST_NEAREST&&this.renderTargetSamplingMode!==h.a.TEXTURE_LINEAR_LINEAR;if(!this._shareOutputWithPostProcess&&!this._forcedOutputTexture){if(this.adaptScaleToCurrentViewport){var z=a.currentViewport;z&&(O*=z.width,B*=z.height)}if((F||this.alwaysForcePOT)&&(this._options.width||(O=a.needPOTTextures?Ue.a.GetExponentOfTwo(O,s,this.scaleMode):O),this._options.height||(B=a.needPOTTextures?Ue.a.GetExponentOfTwo(B,s,this.scaleMode):B)),this.width!==O||this.height!==B){if(this._textures.length>0){for(var J=0;J0)for(var t=0;t0){var n=this._camera._getFirstPostProcess();n&&n.markTextureDirty()}this.onActivateObservable.clear(),this.onAfterRenderObservable.clear(),this.onApplyObservable.clear(),this.onBeforeRenderObservable.clear(),this.onSizeChangedObservable.clear()}},r.prototype.serialize=function(){var t=L.a.Serialize(this);return t.customType="BABYLON."+this.getClassName(),t.cameraId=this.getCamera().id,t.reusable=this._reusable,t.options=this._options,t.textureType=this._textureType,t},r.Parse=function(t,e,n){var i=C.a.GetClass(t.customType);if(!i||!i._Parse)return null;var o=e.getCameraByID(t.cameraId);return o?i._Parse(t,o,e,n):null},Object(c.c)([Object(L.c)()],r.prototype,"uniqueId",void 0),Object(c.c)([Object(L.c)()],r.prototype,"name",void 0),Object(c.c)([Object(L.c)()],r.prototype,"width",void 0),Object(c.c)([Object(L.c)()],r.prototype,"height",void 0),Object(c.c)([Object(L.c)()],r.prototype,"renderTargetSamplingMode",void 0),Object(c.c)([Object(L.f)()],r.prototype,"clearColor",void 0),Object(c.c)([Object(L.c)()],r.prototype,"autoClear",void 0),Object(c.c)([Object(L.c)()],r.prototype,"alphaMode",void 0),Object(c.c)([Object(L.c)()],r.prototype,"alphaConstants",void 0),Object(c.c)([Object(L.c)()],r.prototype,"enablePixelPerfectMode",void 0),Object(c.c)([Object(L.c)()],r.prototype,"forceFullscreenViewport",void 0),Object(c.c)([Object(L.c)()],r.prototype,"scaleMode",void 0),Object(c.c)([Object(L.c)()],r.prototype,"alwaysForcePOT",void 0),Object(c.c)([Object(L.c)("samples")],r.prototype,"_samples",void 0),Object(c.c)([Object(L.c)()],r.prototype,"adaptScaleToCurrentViewport",void 0),r}();C.a.RegisteredTypes["BABYLON.PostProcess"]=_t;var kf=` +varying vec2 vUV; +uniform sampler2D textureSampler; +void main(void) +{ +gl_FragColor=texture2D(textureSampler,vUV); +}`;ze.a.ShadersStore.passPixelShader=kf;var Gf=` +varying vec2 vUV; +uniform samplerCube textureSampler; +void main(void) +{ +vec2 uv=vUV*2.0-1.0; +#ifdef POSITIVEX +gl_FragColor=textureCube(textureSampler,vec3(1.001,uv.y,uv.x)); +#endif +#ifdef NEGATIVEX +gl_FragColor=textureCube(textureSampler,vec3(-1.001,uv.y,uv.x)); +#endif +#ifdef POSITIVEY +gl_FragColor=textureCube(textureSampler,vec3(uv.y,1.001,uv.x)); +#endif +#ifdef NEGATIVEY +gl_FragColor=textureCube(textureSampler,vec3(uv.y,-1.001,uv.x)); +#endif +#ifdef POSITIVEZ +gl_FragColor=textureCube(textureSampler,vec3(uv,1.001)); +#endif +#ifdef NEGATIVEZ +gl_FragColor=textureCube(textureSampler,vec3(uv,-1.001)); +#endif +}`;ze.a.ShadersStore.passCubePixelShader=Gf;var wi=function(r){function t(e,n,i,o,a,s,d,p){return i===void 0&&(i=null),d===void 0&&(d=h.a.TEXTURETYPE_UNSIGNED_INT),p===void 0&&(p=!1),r.call(this,e,"pass",null,null,n,i,o,a,s,void 0,d,void 0,null,p)||this}return Object(c.d)(t,r),t.prototype.getClassName=function(){return"PassPostProcess"},t._Parse=function(e,n,i,o){return L.a.Parse(function(){return new t(e.name,e.options,n,e.renderTargetSamplingMode,i.getEngine(),e.reusable)},e,i,o)},t}(_t);C.a.RegisteredTypes["BABYLON.PassPostProcess"]=wi;var zf=function(r){function t(e,n,i,o,a,s,d,p){i===void 0&&(i=null),d===void 0&&(d=h.a.TEXTURETYPE_UNSIGNED_INT),p===void 0&&(p=!1);var b=r.call(this,e,"passCube",null,null,n,i,o,a,s,"#define POSITIVEX",d,void 0,null,p)||this;return b._face=0,b}return Object(c.d)(t,r),Object.defineProperty(t.prototype,"face",{get:function(){return this._face},set:function(e){if(!(e<0||e>5))switch(this._face=e,this._face){case 0:this.updateEffect("#define POSITIVEX");break;case 1:this.updateEffect("#define NEGATIVEX");break;case 2:this.updateEffect("#define POSITIVEY");break;case 3:this.updateEffect("#define NEGATIVEY");break;case 4:this.updateEffect("#define POSITIVEZ");break;case 5:this.updateEffect("#define NEGATIVEZ")}},enumerable:!1,configurable:!0}),t.prototype.getClassName=function(){return"PassCubePostProcess"},t._Parse=function(e,n,i,o){return L.a.Parse(function(){return new t(e.name,e.options,n,e.renderTargetSamplingMode,i.getEngine(),e.reusable)},e,i,o)},t}(_t);Ue.a._RescalePostProcessFactory=function(r){return new wi("rescale",1,null,h.a.TEXTURE_BILINEAR_SAMPLINGMODE,r,!1,h.a.TEXTURETYPE_UNSIGNED_INT)};var jf=` +varying vec2 vUV; +uniform sampler2D textureSampler; +uniform sampler2D leftSampler; +void main(void) +{ +vec4 leftFrag=texture2D(leftSampler,vUV); +leftFrag=vec4(1.0,leftFrag.g,leftFrag.b,1.0); +vec4 rightFrag=texture2D(textureSampler,vUV); +rightFrag=vec4(rightFrag.r,1.0,1.0,1.0); +gl_FragColor=vec4(rightFrag.rgb*leftFrag.rgb,1.0); +}`;ze.a.ShadersStore.anaglyphPixelShader=jf;var ls=function(r){function t(e,n,i,o,a,s){var d=r.call(this,e,"anaglyph",null,["leftSampler"],n,i[1],o,a,s)||this;return d._passedProcess=i[0]._rigPostProcess,d.onApplyObservable.add(function(p){p.setTextureFromPostProcess("leftSampler",d._passedProcess)}),d}return Object(c.d)(t,r),t.prototype.getClassName=function(){return"AnaglyphPostProcess"},t}(_t);C.a.RegisteredTypes["BABYLON.AnaglyphPostProcess"]=ls,gt.a._setStereoscopicAnaglyphRigMode=function(r){r._rigCameras[0]._rigPostProcess=new wi(r.name+"_passthru",1,r._rigCameras[0]),r._rigCameras[1]._rigPostProcess=new ls(r.name+"_anaglyph",1,r._rigCameras)},Q.a.AddNodeConstructor("AnaglyphArcRotateCamera",function(r,t,e){return function(){return new Nl(r,0,0,1,u.e.Zero(),e.interaxial_distance,t)}});var Nl=function(r){function t(e,n,i,o,a,s,d){var p=r.call(this,e,n,i,o,a,d)||this;return p.interaxialDistance=s,p.setCameraRigMode(gt.a.RIG_MODE_STEREOSCOPIC_ANAGLYPH,{interaxialDistance:s}),p}return Object(c.d)(t,r),t.prototype.getClassName=function(){return"AnaglyphArcRotateCamera"},t}(Zi);Q.a.AddNodeConstructor("AnaglyphFreeCamera",function(r,t,e){return function(){return new wl(r,u.e.Zero(),e.interaxial_distance,t)}});var wl=function(r){function t(e,n,i,o){var a=r.call(this,e,n,o)||this;return a.interaxialDistance=i,a.setCameraRigMode(gt.a.RIG_MODE_STEREOSCOPIC_ANAGLYPH,{interaxialDistance:i}),a}return Object(c.d)(t,r),t.prototype.getClassName=function(){return"AnaglyphFreeCamera"},t}(Yn);Q.a.AddNodeConstructor("AnaglyphGamepadCamera",function(r,t,e){return function(){return new Fl(r,u.e.Zero(),e.interaxial_distance,t)}});var Fl=function(r){function t(e,n,i,o){var a=r.call(this,e,n,o)||this;return a.interaxialDistance=i,a.setCameraRigMode(gt.a.RIG_MODE_STEREOSCOPIC_ANAGLYPH,{interaxialDistance:i}),a}return Object(c.d)(t,r),t.prototype.getClassName=function(){return"AnaglyphGamepadCamera"},t}(Uo);Q.a.AddNodeConstructor("AnaglyphUniversalCamera",function(r,t,e){return function(){return new Bl(r,u.e.Zero(),e.interaxial_distance,t)}});var Bl=function(r){function t(e,n,i,o){var a=r.call(this,e,n,o)||this;return a.interaxialDistance=i,a.setCameraRigMode(gt.a.RIG_MODE_STEREOSCOPIC_ANAGLYPH,{interaxialDistance:i}),a}return Object(c.d)(t,r),t.prototype.getClassName=function(){return"AnaglyphUniversalCamera"},t}(_r),Kn=f(58);gt.a._setStereoscopicRigMode=function(r){var t=r.cameraRigMode===gt.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL||r.cameraRigMode===gt.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED,e=r.cameraRigMode===gt.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED;r._rigCameras[e?1:0].viewport=new Kn.a(0,0,t?.5:1,t?1:.5),r._rigCameras[e?0:1].viewport=new Kn.a(t?.5:0,t?0:.5,t?.5:1,t?1:.5)},Q.a.AddNodeConstructor("StereoscopicArcRotateCamera",function(r,t,e){return function(){return new Ul(r,0,0,1,u.e.Zero(),e.interaxial_distance,e.isStereoscopicSideBySide,t)}});var Ul=function(r){function t(e,n,i,o,a,s,d,p){var b=r.call(this,e,n,i,o,a,p)||this;return b.interaxialDistance=s,b.isStereoscopicSideBySide=d,b.setCameraRigMode(d?gt.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:gt.a.RIG_MODE_STEREOSCOPIC_OVERUNDER,{interaxialDistance:s}),b}return Object(c.d)(t,r),t.prototype.getClassName=function(){return"StereoscopicArcRotateCamera"},t}(Zi);Q.a.AddNodeConstructor("StereoscopicFreeCamera",function(r,t,e){return function(){return new Vl(r,u.e.Zero(),e.interaxial_distance,e.isStereoscopicSideBySide,t)}});var Vl=function(r){function t(e,n,i,o,a){var s=r.call(this,e,n,a)||this;return s.interaxialDistance=i,s.isStereoscopicSideBySide=o,s.setCameraRigMode(o?gt.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:gt.a.RIG_MODE_STEREOSCOPIC_OVERUNDER,{interaxialDistance:i}),s}return Object(c.d)(t,r),t.prototype.getClassName=function(){return"StereoscopicFreeCamera"},t}(Yn);Q.a.AddNodeConstructor("StereoscopicGamepadCamera",function(r,t,e){return function(){return new kl(r,u.e.Zero(),e.interaxial_distance,e.isStereoscopicSideBySide,t)}});var kl=function(r){function t(e,n,i,o,a){var s=r.call(this,e,n,a)||this;return s.interaxialDistance=i,s.isStereoscopicSideBySide=o,s.setCameraRigMode(o?gt.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:gt.a.RIG_MODE_STEREOSCOPIC_OVERUNDER,{interaxialDistance:i}),s}return Object(c.d)(t,r),t.prototype.getClassName=function(){return"StereoscopicGamepadCamera"},t}(Uo);Q.a.AddNodeConstructor("StereoscopicFreeCamera",function(r,t,e){return function(){return new Gl(r,u.e.Zero(),e.interaxial_distance,e.isStereoscopicSideBySide,t)}});var Gl=function(r){function t(e,n,i,o,a){var s=r.call(this,e,n,a)||this;return s.interaxialDistance=i,s.isStereoscopicSideBySide=o,s.setCameraRigMode(o?gt.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:gt.a.RIG_MODE_STEREOSCOPIC_OVERUNDER,{interaxialDistance:i}),s}return Object(c.d)(t,r),t.prototype.getClassName=function(){return"StereoscopicUniversalCamera"},t}(_r);Q.a.AddNodeConstructor("VirtualJoysticksCamera",function(r,t){return function(){return new zl(r,u.e.Zero(),t)}});var zl=function(r){function t(e,n,i){var o=r.call(this,e,n,i)||this;return o.inputs.addVirtualJoystick(),o}return Object(c.d)(t,r),t.prototype.getClassName=function(){return"VirtualJoysticksCamera"},t}(Yn),mr=function(){function r(){this.compensateDistortion=!0,this.multiviewEnabled=!1}return Object.defineProperty(r.prototype,"aspectRatio",{get:function(){return this.hResolution/(2*this.vResolution)},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"aspectRatioFov",{get:function(){return 2*Math.atan(this.postProcessScaleFactor*this.vScreenSize/(2*this.eyeToScreenDistance))},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"leftHMatrix",{get:function(){var t=4*(this.hScreenSize/4-this.lensSeparationDistance/2)/this.hScreenSize;return u.a.Translation(t,0,0)},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"rightHMatrix",{get:function(){var t=4*(this.hScreenSize/4-this.lensSeparationDistance/2)/this.hScreenSize;return u.a.Translation(-t,0,0)},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"leftPreViewMatrix",{get:function(){return u.a.Translation(.5*this.interpupillaryDistance,0,0)},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"rightPreViewMatrix",{get:function(){return u.a.Translation(-.5*this.interpupillaryDistance,0,0)},enumerable:!1,configurable:!0}),r.GetDefault=function(){var t=new r;return t.hResolution=1280,t.vResolution=800,t.hScreenSize=.149759993,t.vScreenSize=.0935999975,t.vScreenCenter=.0467999987,t.eyeToScreenDistance=.0410000011,t.lensSeparationDistance=.063500002,t.interpupillaryDistance=.064000003,t.distortionK=[1,.219999999,.239999995,0],t.chromaAbCorrection=[.995999992,-.00400000019,1.01400006,0],t.postProcessScaleFactor=1.714605507808412,t.lensCenterOffset=.151976421,t},r}(),Hf=` +varying vec2 vUV; +uniform sampler2D textureSampler; +uniform vec2 LensCenter; +uniform vec2 Scale; +uniform vec2 ScaleIn; +uniform vec4 HmdWarpParam; +vec2 HmdWarp(vec2 in01) { +vec2 theta=(in01-LensCenter)*ScaleIn; +float rSq=theta.x*theta.x+theta.y*theta.y; +vec2 rvector=theta*(HmdWarpParam.x+HmdWarpParam.y*rSq+HmdWarpParam.z*rSq*rSq+HmdWarpParam.w*rSq*rSq*rSq); +return LensCenter+Scale*rvector; +} +void main(void) +{ +vec2 tc=HmdWarp(vUV); +if (tc.x <0.0 || tc.x>1.0 || tc.y<0.0 || tc.y>1.0) +gl_FragColor=vec4(0.0,0.0,0.0,0.0); +else{ +gl_FragColor=texture2D(textureSampler,tc); +} +}`;ze.a.ShadersStore.vrDistortionCorrectionPixelShader=Hf;var us=function(r){function t(e,n,i,o){var a=r.call(this,e,"vrDistortionCorrection",["LensCenter","Scale","ScaleIn","HmdWarpParam"],null,o.postProcessScaleFactor,n,we.a.BILINEAR_SAMPLINGMODE)||this;return a._isRightEye=i,a._distortionFactors=o.distortionK,a._postProcessScaleFactor=o.postProcessScaleFactor,a._lensCenterOffset=o.lensCenterOffset,a.adaptScaleToCurrentViewport=!0,a.onSizeChangedObservable.add(function(){a._scaleIn=new u.d(2,2/a.aspectRatio),a._scaleFactor=new u.d(1/a._postProcessScaleFactor*.5,1/a._postProcessScaleFactor*.5*a.aspectRatio),a._lensCenter=new u.d(a._isRightEye?.5-.5*a._lensCenterOffset:.5+.5*a._lensCenterOffset,.5)}),a.onApplyObservable.add(function(s){s.setFloat2("LensCenter",a._lensCenter.x,a._lensCenter.y),s.setFloat2("Scale",a._scaleFactor.x,a._scaleFactor.y),s.setFloat2("ScaleIn",a._scaleIn.x,a._scaleIn.y),s.setFloat4("HmdWarpParam",a._distortionFactors[0],a._distortionFactors[1],a._distortionFactors[2],a._distortionFactors[3])}),a}return Object(c.d)(t,r),t.prototype.getClassName=function(){return"VRDistortionCorrectionPostProcess"},t}(_t),Wf=`precision mediump sampler2DArray; +varying vec2 vUV; +uniform sampler2DArray multiviewSampler; +uniform int imageIndex; +void main(void) +{ +gl_FragColor=texture(multiviewSampler,vec3(vUV,imageIndex)); +}`;ze.a.ShadersStore.vrMultiviewToSingleviewPixelShader=Wf;var jl=f(85),hs=f(95),$r=f(96);Bt.a.prototype.createRenderTargetCubeTexture=function(r,t){var e=Object(c.a)({generateMipMaps:!0,generateDepthBuffer:!0,generateStencilBuffer:!1,type:h.a.TEXTURETYPE_UNSIGNED_INT,samplingMode:h.a.TEXTURE_TRILINEAR_SAMPLINGMODE,format:h.a.TEXTUREFORMAT_RGBA},t);e.generateStencilBuffer=e.generateDepthBuffer&&e.generateStencilBuffer,(e.type!==h.a.TEXTURETYPE_FLOAT||this._caps.textureFloatLinearFiltering)&&(e.type!==h.a.TEXTURETYPE_HALF_FLOAT||this._caps.textureHalfFloatLinearFiltering)||(e.samplingMode=h.a.TEXTURE_NEAREST_SAMPLINGMODE);var n=this._gl,i=new Ct.a(this,Ct.b.RenderTarget);this._bindTextureDirectly(n.TEXTURE_CUBE_MAP,i,!0);var o=this._getSamplingParameters(e.samplingMode,e.generateMipMaps);e.type!==h.a.TEXTURETYPE_FLOAT||this._caps.textureFloat||(e.type=h.a.TEXTURETYPE_UNSIGNED_INT,l.a.Warn("Float textures are not supported. Cube render target forced to TEXTURETYPE_UNESIGNED_BYTE type")),n.texParameteri(n.TEXTURE_CUBE_MAP,n.TEXTURE_MAG_FILTER,o.mag),n.texParameteri(n.TEXTURE_CUBE_MAP,n.TEXTURE_MIN_FILTER,o.min),n.texParameteri(n.TEXTURE_CUBE_MAP,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(n.TEXTURE_CUBE_MAP,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE);for(var a=0;a<6;a++)n.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+a,0,this._getRGBABufferInternalSizedFormat(e.type,e.format),r,r,0,this._getInternalFormat(e.format),this._getWebGLTextureType(e.type),null);var s=n.createFramebuffer();return this._bindUnboundFramebuffer(s),i._depthStencilBuffer=this._setupFramebufferDepthAttachments(e.generateStencilBuffer,e.generateDepthBuffer,r,r),e.generateMipMaps&&n.generateMipmap(n.TEXTURE_CUBE_MAP),this._bindTextureDirectly(n.TEXTURE_CUBE_MAP,null),this._bindUnboundFramebuffer(null),i._framebuffer=s,i.width=r,i.height=r,i.isReady=!0,i.isCube=!0,i.samples=1,i.generateMipMaps=e.generateMipMaps,i.samplingMode=e.samplingMode,i.type=e.type,i.format=e.format,i._generateDepthBuffer=e.generateDepthBuffer,i._generateStencilBuffer=e.generateStencilBuffer,this._internalTexturesCache.push(i),i};var sn=function(r){function t(e,n,i,o,a,s,d,p,b,x,O,B,F){a===void 0&&(a=!0),s===void 0&&(s=h.a.TEXTURETYPE_UNSIGNED_INT),d===void 0&&(d=!1),p===void 0&&(p=we.a.TRILINEAR_SAMPLINGMODE),b===void 0&&(b=!0),x===void 0&&(x=!1),O===void 0&&(O=!1),B===void 0&&(B=h.a.TEXTUREFORMAT_RGBA),F===void 0&&(F=!1);var z=r.call(this,null,i,!o)||this;return z.renderParticles=!0,z.renderSprites=!1,z.ignoreCameraViewport=!1,z.onBeforeBindObservable=new R.c,z.onAfterUnbindObservable=new R.c,z.onBeforeRenderObservable=new R.c,z.onAfterRenderObservable=new R.c,z.onClearObservable=new R.c,z.onResizeObservable=new R.c,z._currentRefreshId=-1,z._refreshRate=1,z._samples=1,z.boundingBoxPosition=u.e.Zero(),(i=z.getScene())&&(z._coordinatesMode=we.a.PROJECTION_MODE,z.renderList=new Array,z.name=e,z.isRenderTarget=!0,z._initialSizeParameter=n,z._processSizeParameter(n),z._resizeObserver=z.getScene().getEngine().onResizeObservable.add(function(){}),z._generateMipMaps=!!o,z._doNotChangeAspectRatio=a,z._renderingManager=new $r.b(i),z._renderingManager._useSceneAutoClearSetup=!0,O||(z._renderTargetOptions={generateMipMaps:o,type:s,format:B,samplingMode:p,generateDepthBuffer:b,generateStencilBuffer:x},p===we.a.NEAREST_SAMPLINGMODE&&(z.wrapU=we.a.CLAMP_ADDRESSMODE,z.wrapV=we.a.CLAMP_ADDRESSMODE),F||(d?(z._texture=i.getEngine().createRenderTargetCubeTexture(z.getRenderSize(),z._renderTargetOptions),z.coordinatesMode=we.a.INVCUBIC_MODE,z._textureMatrix=u.a.Identity()):z._texture=i.getEngine().createRenderTargetTexture(z._size,z._renderTargetOptions)))),z}return Object(c.d)(t,r),Object.defineProperty(t.prototype,"renderList",{get:function(){return this._renderList},set:function(e){this._renderList=e,this._renderList&&this._hookArray(this._renderList)},enumerable:!1,configurable:!0}),t.prototype._hookArray=function(e){var n=this,i=e.push;e.push=function(){for(var a=[],s=0;s0&&(this._postProcesses[0].autoClear=!1))}},t.prototype._shouldRender=function(){return this._currentRefreshId===-1||this.refreshRate===this._currentRefreshId?(this._currentRefreshId=1,!0):(this._currentRefreshId++,!1)},t.prototype.getRenderSize=function(){return this.getRenderWidth()},t.prototype.getRenderWidth=function(){return this._size.width?this._size.width:this._size},t.prototype.getRenderHeight=function(){return this._size.width?this._size.height:this._size},t.prototype.getRenderLayers=function(){var e=this._size.layers;return e||0},Object.defineProperty(t.prototype,"canRescale",{get:function(){return!0},enumerable:!1,configurable:!0}),t.prototype.scale=function(e){var n=Math.max(1,this.getRenderSize()*e);this.resize(n)},t.prototype.getReflectionTextureMatrix=function(){return this.isCube?this._textureMatrix:r.prototype.getReflectionTextureMatrix.call(this)},t.prototype.resize=function(e){var n=this.isCube;this.releaseInternalTexture();var i=this.getScene();i&&(this._processSizeParameter(e),this._texture=n?i.getEngine().createRenderTargetCubeTexture(this.getRenderSize(),this._renderTargetOptions):i.getEngine().createRenderTargetTexture(this._size,this._renderTargetOptions),this.onResizeObservable.hasObservers()&&this.onResizeObservable.notifyObservers(this))},t.prototype.render=function(e,n){if(e===void 0&&(e=!1),n===void 0&&(n=!1),p=this.getScene()){var i,o=p.getEngine();if(this.useCameraPostProcesses!==void 0&&(e=this.useCameraPostProcesses),this._waitingRenderList){this.renderList=[];for(var a=0;a1||this.activeCamera&&this.activeCamera!==p.activeCamera)&&p.setTransformMatrix(p.activeCamera.getViewMatrix(),p.activeCamera.getProjectionMatrix(!0)),o.setViewport(p.activeCamera.viewport)),p.resetCachedMaterial()}},t.prototype._bestReflectionRenderTargetDimension=function(e,n){var i=e*n,o=Ue.a.NearestPOT(i+16384/(128+i));return Math.min(Ue.a.FloorPOT(e),o)},t.prototype._prepareRenderingManager=function(e,n,i,o){var a=this.getScene();if(a){this._renderingManager.reset();for(var s=a.getRenderId(),d=0;d=0&&this._renderingManager.dispatchParticles(z)}}},t.prototype._bindFrameBuffer=function(e,n){e===void 0&&(e=0),n===void 0&&(n=0);var i=this.getScene();if(i){var o=i.getEngine();this._texture&&o.bindFramebuffer(this._texture,this.isCube?e:void 0,void 0,void 0,this.ignoreCameraViewport,0,n)}},t.prototype.unbindFrameBuffer=function(e,n){var i=this;this._texture&&e.unBindFramebuffer(this._texture,this.isCube,function(){i.onAfterRenderObservable.notifyObservers(n)})},t.prototype.renderToTarget=function(e,n,i,o,a){o===void 0&&(o=0),a===void 0&&(a=null);var s=this.getScene();if(s){var d=s.getEngine();if(this._texture){this._postProcessManager?this._postProcessManager._prepareFrame(this._texture,this._postProcesses):n&&s.postProcessManager._prepareFrame(this._texture)||this._bindFrameBuffer(e,o),this.is2DArray?this.onBeforeRenderObservable.notifyObservers(o):this.onBeforeRenderObservable.notifyObservers(e);var p=null,b=this.renderList?this.renderList:s.getActiveMeshes().data,x=this.renderList?this.renderList.length:s.getActiveMeshes().length;this.getCustomRenderList&&(p=this.getCustomRenderList(this.is2DArray?o:e,b,x)),p?this._prepareRenderingManager(p,p.length,a,!1):(this._defaultRenderListPrepared||(this._prepareRenderingManager(b,x,a,!this.renderList),this._defaultRenderListPrepared=!0),p=b),this.onClearObservable.hasObservers()?this.onClearObservable.notifyObservers(d):d.clear(this.clearColor||s.clearColor,!0,!0,!0),this._doNotChangeAspectRatio||s.updateTransformMatrix(!0);for(var O=0,B=s._beforeRenderTargetDrawStage;O=0&&e.customRenderTargets.splice(n,1);for(var i=0,o=e.cameras;i=0&&a.customRenderTargets.splice(n,1)}this.depthStencilTexture&&this.getScene().getEngine()._releaseTexture(this.depthStencilTexture),r.prototype.dispose.call(this)}},t.prototype._rebuild=function(){this.refreshRate===t.REFRESHRATE_RENDER_ONCE&&(this.refreshRate=t.REFRESHRATE_RENDER_ONCE),this._postProcessManager&&this._postProcessManager._rebuild()},t.prototype.freeRenderingGroups=function(){this._renderingManager&&this._renderingManager.freeRenderingGroups()},t.prototype.getViewCount=function(){return 1},t.REFRESHRATE_RENDER_ONCE=0,t.REFRESHRATE_RENDER_ONEVERYFRAME=1,t.REFRESHRATE_RENDER_ONEVERYTWOFRAMES=2,t}(we.a);we.a._CreateRenderTargetTexture=function(r,t,e,n){return new sn(r,t,e,n)};var Hl=function(r){function t(e,n){n===void 0&&(n=512);var i=r.call(this,"multiview rtt",n,e,!1,!0,Ct.b.Unknown,!1,void 0,!1,!1,!0,void 0,!0)||this,o=e.getEngine().createMultiviewRenderTargetTexture(i.getRenderWidth(),i.getRenderHeight());return o.isMultiview=!0,o.format=h.a.TEXTUREFORMAT_RGBA,i._texture=o,i.samples=i._getEngine().getCaps().maxSamples||i.samples,i}return Object(c.d)(t,r),t.prototype._bindFrameBuffer=function(e){this._texture&&this.getScene().getEngine().bindMultiviewFramebuffer(this._texture)},t.prototype.getViewCount=function(){return 2},t}(sn),Wl=f(90);Ue.a.prototype.createMultiviewRenderTargetTexture=function(r,t){var e=this._gl;if(!this.getCaps().multiview)throw"Multiview is not supported";var n=new Ct.a(this,Ct.b.Unknown,!0);return n.width=r,n.height=t,n._framebuffer=e.createFramebuffer(),n._colorTextureArray=e.createTexture(),e.bindTexture(e.TEXTURE_2D_ARRAY,n._colorTextureArray),e.texStorage3D(e.TEXTURE_2D_ARRAY,1,e.RGBA8,r,t,2),n._depthStencilTextureArray=e.createTexture(),e.bindTexture(e.TEXTURE_2D_ARRAY,n._depthStencilTextureArray),e.texStorage3D(e.TEXTURE_2D_ARRAY,1,e.DEPTH32F_STENCIL8,r,t,2),n.isReady=!0,n},Ue.a.prototype.bindMultiviewFramebuffer=function(r){var t=this._gl,e=this.getCaps().oculusMultiview||this.getCaps().multiview;if(this.bindFramebuffer(r,void 0,void 0,void 0,!0),t.bindFramebuffer(t.DRAW_FRAMEBUFFER,r._framebuffer),!r._colorTextureArray||!r._depthStencilTextureArray)throw"Invalid multiview frame buffer";this.getCaps().oculusMultiview?(e.framebufferTextureMultisampleMultiviewOVR(t.DRAW_FRAMEBUFFER,t.COLOR_ATTACHMENT0,r._colorTextureArray,0,r.samples,0,2),e.framebufferTextureMultisampleMultiviewOVR(t.DRAW_FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,r._depthStencilTextureArray,0,r.samples,0,2)):(e.framebufferTextureMultiviewOVR(t.DRAW_FRAMEBUFFER,t.COLOR_ATTACHMENT0,r._colorTextureArray,0,0,2),e.framebufferTextureMultiviewOVR(t.DRAW_FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,r._depthStencilTextureArray,0,0,2))},gt.a.prototype._useMultiviewToSingleView=!1,gt.a.prototype._multiviewTexture=null,gt.a.prototype._resizeOrCreateMultiviewTexture=function(r,t){this._multiviewTexture?this._multiviewTexture.getRenderWidth()==r&&this._multiviewTexture.getRenderHeight()==t||(this._multiviewTexture.dispose(),this._multiviewTexture=new Hl(this.getScene(),{width:r,height:t})):this._multiviewTexture=new Hl(this.getScene(),{width:r,height:t})},_e.a.prototype._transformMatrixR=u.a.Zero(),_e.a.prototype._multiviewSceneUbo=null,_e.a.prototype._createMultiviewUbo=function(){this._multiviewSceneUbo=new jl.a(this.getEngine(),void 0,!0),this._multiviewSceneUbo.addUniform("viewProjection",16),this._multiviewSceneUbo.addUniform("viewProjectionR",16),this._multiviewSceneUbo.addUniform("view",16)},_e.a.prototype._updateMultiviewUbo=function(r,t){r&&t&&r.multiplyToRef(t,this._transformMatrixR),r&&t&&(r.multiplyToRef(t,u.c.Matrix[0]),Wl.a.GetRightPlaneToRef(u.c.Matrix[0],this._frustumPlanes[3])),this._multiviewSceneUbo&&(this._multiviewSceneUbo.updateMatrix("viewProjection",this.getTransformMatrix()),this._multiviewSceneUbo.updateMatrix("viewProjectionR",this._transformMatrixR),this._multiviewSceneUbo.updateMatrix("view",this._viewMatrix),this._multiviewSceneUbo.update())},_e.a.prototype._renderMultiviewToSingleView=function(r){r._resizeOrCreateMultiviewTexture(r._rigPostProcess&&r._rigPostProcess&&r._rigPostProcess.width>0?r._rigPostProcess.width:this.getEngine().getRenderWidth(!0),r._rigPostProcess&&r._rigPostProcess&&r._rigPostProcess.height>0?r._rigPostProcess.height:this.getEngine().getRenderHeight(!0)),this._multiviewSceneUbo||this._createMultiviewUbo(),r.outputRenderTarget=r._multiviewTexture,this._renderForCamera(r),r.outputRenderTarget=null;for(var t=0;t=2&&e.onControllersAttachedObservable.notifyObservers(e.controllers)}}})},t}(Yn),Fi=function(r){function t(e){var n=r.call(this,e)||this;return n.onTriggerStateChangedObservable=new R.c,n.onMainButtonStateChangedObservable=new R.c,n.onSecondaryButtonStateChangedObservable=new R.c,n.onPadStateChangedObservable=new R.c,n.onPadValuesChangedObservable=new R.c,n.pad={x:0,y:0},n._changes={pressChanged:!1,touchChanged:!1,valueChanged:!1,changed:!1},n._buttons=new Array(e.buttons.length),n.hand=e.hand,n}return Object(c.d)(t,r),t.prototype.onButtonStateChange=function(e){this._onButtonStateChange=e},Object.defineProperty(t.prototype,"defaultModel",{get:function(){return this._defaultModel},enumerable:!1,configurable:!0}),t.prototype.update=function(){r.prototype.update.call(this);for(var e=0;e +#include +#include +void main(void) +{ +vec4 result=texture2D(textureSampler,vUV); +#ifdef IMAGEPROCESSING +#ifndef FROMLINEARSPACE + +result.rgb=toLinearSpace(result.rgb); +#endif +result=applyImageProcessing(result); +#else + +#ifdef FROMLINEARSPACE +result=applyImageProcessing(result); +#endif +#endif +gl_FragColor=result; +}`);ze.a.ShadersStore.imageProcessingPixelShader=Xf;var zo=function(r){function t(e,n,i,o,a,s,d,p){i===void 0&&(i=null),d===void 0&&(d=h.a.TEXTURETYPE_UNSIGNED_INT);var b=r.call(this,e,"imageProcessing",[],[],n,i,o,a,s,null,d,"postprocess",null,!0)||this;return b._fromLinearSpace=!0,b._defines={IMAGEPROCESSING:!1,VIGNETTE:!1,VIGNETTEBLENDMODEMULTIPLY:!1,VIGNETTEBLENDMODEOPAQUE:!1,TONEMAPPING:!1,TONEMAPPING_ACES:!1,CONTRAST:!1,COLORCURVES:!1,COLORGRADING:!1,COLORGRADING3D:!1,FROMLINEARSPACE:!1,SAMPLER3DGREENDEPTH:!1,SAMPLER3DBGRMAP:!1,IMAGEPROCESSINGPOSTPROCESS:!1,EXPOSURE:!1},p?(p.applyByPostProcess=!0,b._attachImageProcessingConfiguration(p,!0),b.fromLinearSpace=!1):(b._attachImageProcessingConfiguration(null,!0),b.imageProcessingConfiguration.applyByPostProcess=!0),b.onApply=function(x){b.imageProcessingConfiguration.bind(x,b.aspectRatio)},b}return Object(c.d)(t,r),Object.defineProperty(t.prototype,"imageProcessingConfiguration",{get:function(){return this._imageProcessingConfiguration},set:function(e){e.applyByPostProcess=!0,this._attachImageProcessingConfiguration(e)},enumerable:!1,configurable:!0}),t.prototype._attachImageProcessingConfiguration=function(e,n){var i=this;if(n===void 0&&(n=!1),e!==this._imageProcessingConfiguration){if(this._imageProcessingConfiguration&&this._imageProcessingObserver&&this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),e)this._imageProcessingConfiguration=e;else{var o=null,a=this.getEngine(),s=this.getCamera();if(s)o=s.getScene();else if(a&&a.scenes){var d=a.scenes;o=d[d.length-1]}else o=te.a.LastCreatedScene;this._imageProcessingConfiguration=o?o.imageProcessingConfiguration:new vn.a}this._imageProcessingConfiguration&&(this._imageProcessingObserver=this._imageProcessingConfiguration.onUpdateParameters.add(function(){i._updateParameters()})),n||this._updateParameters()}},Object.defineProperty(t.prototype,"isSupported",{get:function(){var e=this.getEffect();return!e||e.isSupported},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"colorCurves",{get:function(){return this.imageProcessingConfiguration.colorCurves},set:function(e){this.imageProcessingConfiguration.colorCurves=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"colorCurvesEnabled",{get:function(){return this.imageProcessingConfiguration.colorCurvesEnabled},set:function(e){this.imageProcessingConfiguration.colorCurvesEnabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"colorGradingTexture",{get:function(){return this.imageProcessingConfiguration.colorGradingTexture},set:function(e){this.imageProcessingConfiguration.colorGradingTexture=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"colorGradingEnabled",{get:function(){return this.imageProcessingConfiguration.colorGradingEnabled},set:function(e){this.imageProcessingConfiguration.colorGradingEnabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"exposure",{get:function(){return this.imageProcessingConfiguration.exposure},set:function(e){this.imageProcessingConfiguration.exposure=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"toneMappingEnabled",{get:function(){return this._imageProcessingConfiguration.toneMappingEnabled},set:function(e){this._imageProcessingConfiguration.toneMappingEnabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"toneMappingType",{get:function(){return this._imageProcessingConfiguration.toneMappingType},set:function(e){this._imageProcessingConfiguration.toneMappingType=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"contrast",{get:function(){return this.imageProcessingConfiguration.contrast},set:function(e){this.imageProcessingConfiguration.contrast=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"vignetteStretch",{get:function(){return this.imageProcessingConfiguration.vignetteStretch},set:function(e){this.imageProcessingConfiguration.vignetteStretch=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"vignetteCentreX",{get:function(){return this.imageProcessingConfiguration.vignetteCentreX},set:function(e){this.imageProcessingConfiguration.vignetteCentreX=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"vignetteCentreY",{get:function(){return this.imageProcessingConfiguration.vignetteCentreY},set:function(e){this.imageProcessingConfiguration.vignetteCentreY=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"vignetteWeight",{get:function(){return this.imageProcessingConfiguration.vignetteWeight},set:function(e){this.imageProcessingConfiguration.vignetteWeight=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"vignetteColor",{get:function(){return this.imageProcessingConfiguration.vignetteColor},set:function(e){this.imageProcessingConfiguration.vignetteColor=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"vignetteCameraFov",{get:function(){return this.imageProcessingConfiguration.vignetteCameraFov},set:function(e){this.imageProcessingConfiguration.vignetteCameraFov=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"vignetteBlendMode",{get:function(){return this.imageProcessingConfiguration.vignetteBlendMode},set:function(e){this.imageProcessingConfiguration.vignetteBlendMode=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"vignetteEnabled",{get:function(){return this.imageProcessingConfiguration.vignetteEnabled},set:function(e){this.imageProcessingConfiguration.vignetteEnabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"fromLinearSpace",{get:function(){return this._fromLinearSpace},set:function(e){this._fromLinearSpace!==e&&(this._fromLinearSpace=e,this._updateParameters())},enumerable:!1,configurable:!0}),t.prototype.getClassName=function(){return"ImageProcessingPostProcess"},t.prototype._updateParameters=function(){this._defines.FROMLINEARSPACE=this._fromLinearSpace,this.imageProcessingConfiguration.prepareDefines(this._defines,!0);var e="";for(var n in this._defines)this._defines[n]&&(e+="#define "+n+`;\r +`);var i=["textureSampler"],o=["scale"];vn.a&&(vn.a.PrepareSamplers(i,this._defines),vn.a.PrepareUniforms(o,this._defines)),this.updateEffect(e,o,i)},t.prototype.dispose=function(e){r.prototype.dispose.call(this,e),this._imageProcessingConfiguration&&this._imageProcessingObserver&&this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),this._imageProcessingConfiguration&&(this.imageProcessingConfiguration.applyByPostProcess=!1)},Object(c.c)([Object(L.c)()],t.prototype,"_fromLinearSpace",void 0),t}(_t),dt=f(16),Oe=f(4);De.a._GroundMeshParser=function(r,t){return jo.Parse(r,t)};var jo=function(r){function t(e,n){var i=r.call(this,e,n)||this;return i.generateOctree=!1,i}return Object(c.d)(t,r),t.prototype.getClassName=function(){return"GroundMesh"},Object.defineProperty(t.prototype,"subdivisions",{get:function(){return Math.min(this._subdivisionsX,this._subdivisionsY)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"subdivisionsX",{get:function(){return this._subdivisionsX},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"subdivisionsY",{get:function(){return this._subdivisionsY},enumerable:!1,configurable:!0}),t.prototype.optimize=function(e,n){n===void 0&&(n=32),this._subdivisionsX=e,this._subdivisionsY=e,this.subdivide(e),this.createOrUpdateSubmeshesOctree&&this.createOrUpdateSubmeshesOctree(n)},t.prototype.getHeightAtCoordinates=function(e,n){var i=this.getWorldMatrix(),o=u.c.Matrix[5];i.invertToRef(o);var a=u.c.Vector3[8];if(u.e.TransformCoordinatesFromFloatsToRef(e,0,n,o,a),e=a.x,n=a.z,ethis._maxX||nthis._maxZ)return this.position.y;this._heightQuads&&this._heightQuads.length!=0||(this._initHeightQuads(),this._computeHeightQuads());var s=this._getFacetAt(e,n),d=-(s.x*e+s.z*n+s.w)/s.y;return u.e.TransformCoordinatesFromFloatsToRef(0,d,0,i,a),a.y},t.prototype.getNormalAtCoordinates=function(e,n){var i=new u.e(0,1,0);return this.getNormalAtCoordinatesToRef(e,n,i),i},t.prototype.getNormalAtCoordinatesToRef=function(e,n,i){var o=this.getWorldMatrix(),a=u.c.Matrix[5];o.invertToRef(a);var s=u.c.Vector3[8];if(u.e.TransformCoordinatesFromFloatsToRef(e,0,n,a,s),e=s.x,n=s.z,ethis._maxX||nthis._maxZ)return this;this._heightQuads&&this._heightQuads.length!=0||(this._initHeightQuads(),this._computeHeightQuads());var d=this._getFacetAt(e,n);return u.e.TransformNormalFromFloatsToRef(d.x,d.y,d.z,o,i),this},t.prototype.updateCoordinateHeights=function(){return this._heightQuads&&this._heightQuads.length!=0||this._initHeightQuads(),this._computeHeightQuads(),this},t.prototype._getFacetAt=function(e,n){var i=Math.floor((e+this._maxX)*this._subdivisionsX/this._width),o=Math.floor(-(n+this._maxZ)*this._subdivisionsY/this._height+this._subdivisionsY),a=this._heightQuads[o*this._subdivisionsX+i];return nr.maxHeight){p=!0;var b=r.maxHeight;r.maxHeight=r.minHeight,r.minHeight=b}for(t=0;t<=r.subdivisions;t++)for(e=0;e<=r.subdivisions;e++){var x=new u.e(e*r.width/r.subdivisions-r.width/2,0,(r.subdivisions-t)*r.height/r.subdivisions-r.height/2),O=4*(((x.x+r.width/2)/r.width*(r.bufferWidth-1)|0)+((1-(x.z+r.height/2)/r.height)*(r.bufferHeight-1)|0)*r.bufferWidth),B=r.buffer[O]/255,F=r.buffer[O+1]/255,z=r.buffer[O+2]/255,J=r.buffer[O+3]/255;p&&(B=1-B,F=1-F,z=1-z);var ie=B*s.r+F*s.g+z*s.b;x.y=J>=d?r.minHeight+(r.maxHeight-r.minHeight)*ie:r.minHeight-Gt.a,i.push(x.x,x.y,x.z),o.push(0,0,0),a.push(e/r.subdivisions,1-t/r.subdivisions)}for(t=0;t=r.minHeight,Te=i[3*ce+1]>=r.minHeight,Re=i[3*ue+1]>=r.minHeight;ve&&Te&&Re&&(n.push(se),n.push(ce),n.push(ue)),i[3*fe+1]>=r.minHeight&&ve&&Re&&(n.push(fe),n.push(se),n.push(ue))}dt.a.ComputeNormals(i,n,o);var Ae=new dt.a;return Ae.indices=n,Ae.positions=i,Ae.normals=o,Ae.uvs=a,Ae},De.a.CreateGround=function(r,t,e,n,i,o){var a={width:t,height:e,subdivisions:n,updatable:o};return Bi.CreateGround(r,a,i)},De.a.CreateTiledGround=function(r,t,e,n,i,o,a,s,d){var p={xmin:t,zmin:e,xmax:n,zmax:i,subdivisions:o,precision:a,updatable:d};return Bi.CreateTiledGround(r,p,s)},De.a.CreateGroundFromHeightMap=function(r,t,e,n,i,o,a,s,d,p,b){var x={width:e,height:n,subdivisions:i,minHeight:o,maxHeight:a,updatable:d,onReady:p,alphaFilter:b};return Bi.CreateGroundFromHeightMap(r,t,x,s)};var Bi=function(){function r(){}return r.CreateGround=function(t,e,n){var i=new jo(t,n);return i._setReady(!1),i._subdivisionsX=e.subdivisionsX||e.subdivisions||1,i._subdivisionsY=e.subdivisionsY||e.subdivisions||1,i._width=e.width||1,i._height=e.height||1,i._maxX=i._width/2,i._maxZ=i._height/2,i._minX=-i._maxX,i._minZ=-i._maxZ,dt.a.CreateGround(e).applyToMesh(i,e.updatable),i._setReady(!0),i},r.CreateTiledGround=function(t,e,n){n===void 0&&(n=null);var i=new De.a(t,n);return dt.a.CreateTiledGround(e).applyToMesh(i,e.updatable),i},r.CreateGroundFromHeightMap=function(t,e,n,i){i===void 0&&(i=null);var o=n.width||10,a=n.height||10,s=n.subdivisions||1,d=n.minHeight||0,p=n.maxHeight||1,b=n.colorFilter||new M.a(.3,.59,.11),x=n.alphaFilter||0,O=n.updatable,B=n.onReady;i=i||te.a.LastCreatedScene;var F=new jo(t,i);return F._subdivisionsX=s,F._subdivisionsY=s,F._width=o,F._height=a,F._maxX=F._width/2,F._maxZ=F._height/2,F._minX=-F._maxX,F._minZ=-F._maxZ,F._setReady(!1),Xe.b.LoadImage(e,function(z){var J=z.width,ie=z.height,se=fs.a.CreateCanvas(J,ie).getContext("2d");if(!se)throw new Error("Unable to get 2d context for CreateGroundFromHeightMap");if(!i.isDisposed){se.drawImage(z,0,0);var ce=se.getImageData(0,0,J,ie).data;dt.a.CreateGroundFromHeightMap({width:o,height:a,subdivisions:s,minHeight:d,maxHeight:p,colorFilter:b,buffer:ce,bufferWidth:J,bufferHeight:ie,alphaFilter:x}).applyToMesh(F,O),B&&B(F),F._setReady(!0)}},function(){},i.offlineProvider),F},r}();dt.a.CreateTorus=function(r){for(var t=[],e=[],n=[],i=[],o=r.diameter||1,a=r.thickness||.5,s=r.tessellation||16,d=r.sideOrientation===0?0:r.sideOrientation||dt.a.DEFAULTSIDE,p=s+1,b=0;b<=s;b++)for(var x=b/s,O=b*Math.PI*2/s-Math.PI/2,B=u.a.Translation(o/2,0,0).multiply(u.a.RotationY(O)),F=0;F<=s;F++){var z=1-F/s,J=F*Math.PI*2/s+Math.PI,ie=Math.cos(J),se=Math.sin(J),ce=new u.e(ie,se,0),ue=ce.scale(a/2),fe=new u.d(x,z);ue=u.e.TransformCoordinates(ue,B),ce=u.e.TransformNormal(ce,B),e.push(ue.x,ue.y,ue.z),n.push(ce.x,ce.y,ce.z),i.push(fe.x,fe.y);var ve=(b+1)%p,Te=(F+1)%p;t.push(b*p+F),t.push(b*p+Te),t.push(ve*p+F),t.push(b*p+Te),t.push(ve*p+Te),t.push(ve*p+F)}dt.a._ComputeSides(d,e,t,n,i,r.frontUVs,r.backUVs);var Re=new dt.a;return Re.indices=t,Re.positions=e,Re.normals=n,Re.uvs=i,Re},De.a.CreateTorus=function(r,t,e,n,i,o,a){var s={diameter:t,thickness:e,tessellation:n,sideOrientation:a,updatable:o};return gr.CreateTorus(r,s,i)};var fn,er,gr=function(){function r(){}return r.CreateTorus=function(t,e,n){var i=new De.a(t,n);return e.sideOrientation=De.a._GetDefaultSideOrientation(e.sideOrientation),i._originalBuilderSideOrientation=e.sideOrientation,dt.a.CreateTorus(e).applyToMesh(i,e.updatable),i},r}(),fi=f(53),ps=function(){function r(){}return r.GetDefaults=function(t){var e=new r;return e.canvasOptions={antialias:!0,depth:!0,stencil:!t||t.isStencilEnable,alpha:!0,multiview:!1,framebufferScaleFactor:1},e.newCanvasCssStyle="position:absolute; bottom:0px;right:0px;z-index:10;width:90%;height:100%;background-color: #000000;",e},r}(),Kl=function(){function r(t,e){var n=this;if(e===void 0&&(e=ps.GetDefaults()),this._options=e,this._canvas=null,this.xrLayer=null,this.onXRLayerInitObservable=new R.c,this._engine=t.scene.getEngine(),e.canvasElement)this._setManagedOutputCanvas(e.canvasElement);else{var i=document.createElement("canvas");i.style.cssText=this._options.newCanvasCssStyle||"position:absolute; bottom:0px;right:0px;",this._setManagedOutputCanvas(i)}t.onXRSessionInit.add(function(){n._addCanvas()}),t.onXRSessionEnded.add(function(){n._removeCanvas()})}return r.prototype.dispose=function(){this._removeCanvas(),this._setManagedOutputCanvas(null)},r.prototype.initializeXRLayerAsync=function(t){var e=this,n=function(){var i=new XRWebGLLayer(t,e.canvasContext,e._options.canvasOptions);return e.onXRLayerInitObservable.notifyObservers(i),i};return this.canvasContext.makeXRCompatible?this.canvasContext.makeXRCompatible().then(function(){return e.xrLayer=n(),e.xrLayer}):(this.xrLayer=n(),Promise.resolve(this.xrLayer))},r.prototype._addCanvas=function(){var t=this;this._canvas&&this._canvas!==this._engine.getRenderingCanvas()&&document.body.appendChild(this._canvas),this.xrLayer?this._setCanvasSize(!0):this.onXRLayerInitObservable.addOnce(function(e){t._setCanvasSize(!0,e)})},r.prototype._removeCanvas=function(){this._canvas&&document.body.contains(this._canvas)&&this._canvas!==this._engine.getRenderingCanvas()&&document.body.removeChild(this._canvas),this._setCanvasSize(!1)},r.prototype._setCanvasSize=function(t,e){t===void 0&&(t=!0),e===void 0&&(e=this.xrLayer),this._canvas&&(t?e&&(this._canvas!==this._engine.getRenderingCanvas()?(this._canvas.style.width=e.framebufferWidth+"px",this._canvas.style.height=e.framebufferHeight+"px"):this._engine.setSize(e.framebufferWidth,e.framebufferHeight)):this._originalCanvasSize&&(this._canvas!==this._engine.getRenderingCanvas()?(this._canvas.style.width=this._originalCanvasSize.width+"px",this._canvas.style.height=this._originalCanvasSize.height+"px"):this._engine.setSize(this._originalCanvasSize.width,this._originalCanvasSize.height)))},r.prototype._setManagedOutputCanvas=function(t){this._removeCanvas(),t?(this._originalCanvasSize={width:t.offsetWidth,height:t.offsetHeight},this._canvas=t,this.canvasContext=this._canvas.getContext("webgl2"),this.canvasContext||(this.canvasContext=this._canvas.getContext("webgl"))):(this._canvas=null,this.canvasContext=null)},r}(),_s=function(){function r(t){this.scene=t,this._sessionEnded=!1,this.baseLayer=null,this.currentTimestamp=-1,this.defaultHeightCompensation=1.7,this.onXRFrameObservable=new R.c,this.onXRReferenceSpaceChanged=new R.c,this.onXRSessionEnded=new R.c,this.onXRSessionInit=new R.c}return Object.defineProperty(r.prototype,"referenceSpace",{get:function(){return this._referenceSpace},set:function(t){this._referenceSpace=t,this.onXRReferenceSpaceChanged.notifyObservers(this._referenceSpace)},enumerable:!1,configurable:!0}),r.prototype.dispose=function(){this._sessionEnded||this.exitXRAsync(),this.onXRFrameObservable.clear(),this.onXRSessionEnded.clear(),this.onXRReferenceSpaceChanged.clear(),this.onXRSessionInit.clear()},r.prototype.exitXRAsync=function(){return this.session&&!this._sessionEnded?(this._sessionEnded=!0,this.session.end().catch(function(t){l.a.Warn("Could not end XR session.")})):Promise.resolve()},r.prototype.getRenderTargetTextureForEye=function(t){return this._rttProvider.getRenderTargetForEye(t)},r.prototype.getWebXRRenderTarget=function(t){var e=this.scene.getEngine();return this._xrNavigator.xr.native?this._xrNavigator.xr.getWebXRRenderTarget(e):((t=t||ps.GetDefaults(e)).canvasElement=e.getRenderingCanvas()||void 0,new Kl(this,t))},r.prototype.initializeAsync=function(){return this._xrNavigator=navigator,this._xrNavigator.xr?Promise.resolve():Promise.reject("WebXR not available")},r.prototype.initializeSessionAsync=function(t,e){var n=this;return t===void 0&&(t="immersive-vr"),e===void 0&&(e={}),this._xrNavigator.xr.requestSession(t,e).then(function(i){return n.session=i,n.onXRSessionInit.notifyObservers(i),n._sessionEnded=!1,n.session.addEventListener("end",function(){var o=n.scene.getEngine();n._sessionEnded=!0,n._rttProvider=null,o.framebufferDimensionsObject=null,o.restoreDefaultFramebuffer(),o.customAnimationFrameRequester=null,n.onXRSessionEnded.notifyObservers(null),o._renderLoop()},{once:!0}),n.session})},r.prototype.isSessionSupportedAsync=function(t){return r.IsSessionSupportedAsync(t)},r.prototype.resetReferenceSpace=function(){this.referenceSpace=this.baseReferenceSpace},r.prototype.runXRRenderLoop=function(){var t=this,e=this.scene.getEngine();if(e.customAnimationFrameRequester={requestAnimationFrame:this.session.requestAnimationFrame.bind(this.session),renderFunction:function(i,o){t._sessionEnded||(t.currentFrame=o,t.currentTimestamp=i,o&&(e.framebufferDimensionsObject=t.baseLayer,t.onXRFrameObservable.notifyObservers(o),e._renderLoop(),e.framebufferDimensionsObject=null))}},this._xrNavigator.xr.native)this._rttProvider=this._xrNavigator.xr.getNativeRenderTargetProvider(this.session,this._createRenderTargetTexture.bind(this));else{var n=this._createRenderTargetTexture(this.baseLayer.framebufferWidth,this.baseLayer.framebufferHeight,this.baseLayer.framebuffer);this._rttProvider={getRenderTargetForEye:function(){return n}},e.framebufferDimensionsObject=this.baseLayer}typeof window<"u"&&window.cancelAnimationFrame&&window.cancelAnimationFrame(e._frameHandler),e._renderLoop()},r.prototype.setReferenceSpaceTypeAsync=function(t){var e=this;return t===void 0&&(t="local-floor"),this.session.requestReferenceSpace(t).then(function(n){return n},function(n){return l.a.Error("XR.requestReferenceSpace failed for the following reason: "),l.a.Error(n),l.a.Log('Defaulting to universally-supported "viewer" reference space type.'),e.session.requestReferenceSpace("viewer").then(function(i){var o=new XRRigidTransform({x:0,y:-e.defaultHeightCompensation,z:0});return i.getOffsetReferenceSpace(o)},function(i){throw l.a.Error(i),'XR initialization failed: required "viewer" reference space type not supported.'})}).then(function(n){return e.session.requestReferenceSpace("viewer").then(function(i){return e.viewerReferenceSpace=i,n})}).then(function(n){return e.referenceSpace=e.baseReferenceSpace=n,e.referenceSpace})},r.prototype.updateRenderStateAsync=function(t){return t.baseLayer&&(this.baseLayer=t.baseLayer),this.session.updateRenderState(t)},r.IsSessionSupportedAsync=function(t){if(!navigator.xr)return Promise.resolve(!1);var e=navigator.xr.isSessionSupported||navigator.xr.supportsSession;return e?e.call(navigator.xr,t).then(function(n){var i=n===void 0||n;return Promise.resolve(i)}).catch(function(n){return l.a.Warn(n),Promise.resolve(!1)}):Promise.resolve(!1)},r.prototype._createRenderTargetTexture=function(t,e,n){n===void 0&&(n=null);var i=new Ct.a(this.scene.getEngine(),Ct.b.Unknown,!0);i.width=t,i.height=e,i._framebuffer=n;var o=new sn("XR renderTargetTexture",{width:t,height:e},this.scene,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,!0);return o._texture=i,o},r}();(function(r){r[r.ENTERING_XR=0]="ENTERING_XR",r[r.EXITING_XR=1]="EXITING_XR",r[r.IN_XR=2]="IN_XR",r[r.NOT_IN_XR=3]="NOT_IN_XR"})(fn||(fn={})),function(r){r[r.NOT_TRACKING=0]="NOT_TRACKING",r[r.TRACKING_LOST=1]="TRACKING_LOST",r[r.TRACKING=2]="TRACKING"}(er||(er={}));var ri,Ql=function(){function r(t,e){if(e===void 0&&(e=null),this.scene=t,this._pointerDownOnMeshAsked=!1,this._isActionableMesh=!1,this._teleportationRequestInitiated=!1,this._teleportationBackRequestInitiated=!1,this._rotationRightAsked=!1,this._rotationLeftAsked=!1,this._dpadPressed=!0,this._activePointer=!1,this._id=r._idCounter++,e)this._gazeTracker=e.clone("gazeTracker");else{this._gazeTracker=De.a.CreateTorus("gazeTracker",.0035,.0025,20,t,!1),this._gazeTracker.bakeCurrentTransformIntoVertices(),this._gazeTracker.isPickable=!1,this._gazeTracker.isVisible=!1;var n=new Ft.a("targetMat",t);n.specularColor=M.a.Black(),n.emissiveColor=new M.a(.7,.7,.7),n.backFaceCulling=!1,this._gazeTracker.material=n}}return r.prototype._getForwardRay=function(t){return new dn.a(u.e.Zero(),new u.e(0,0,t))},r.prototype._selectionPointerDown=function(){this._pointerDownOnMeshAsked=!0,this._currentHit&&this.scene.simulatePointerDown(this._currentHit,{pointerId:this._id})},r.prototype._selectionPointerUp=function(){this._currentHit&&this.scene.simulatePointerUp(this._currentHit,{pointerId:this._id}),this._pointerDownOnMeshAsked=!1},r.prototype._activatePointer=function(){this._activePointer=!0},r.prototype._deactivatePointer=function(){this._activePointer=!1},r.prototype._updatePointerDistance=function(t){},r.prototype.dispose=function(){this._interactionsEnabled=!1,this._teleportationEnabled=!1,this._gazeTracker&&this._gazeTracker.dispose()},r._idCounter=0,r}(),Yf=function(r){function t(e,n,i){var o=r.call(this,n,i)||this;o.webVRController=e,o._laserPointer=De.a.CreateCylinder("laserPointer",1,.004,2e-4,20,1,n,!1);var a=new Ft.a("laserPointerMat",n);if(a.emissiveColor=new M.a(.7,.7,.7),a.alpha=.6,o._laserPointer.material=a,o._laserPointer.rotation.x=Math.PI/2,o._laserPointer.position.z=-.5,o._laserPointer.isVisible=!1,o._laserPointer.isPickable=!1,!e.mesh){var s=new De.a("preloadControllerMesh",n),d=new De.a(pr.POINTING_POSE,n);d.rotation.x=-.7,s.addChild(d),e.attachToMesh(s)}return o._setLaserPointerParent(e.mesh),o._meshAttachedObserver=e._meshAttachedObservable.add(function(p){o._setLaserPointerParent(p)}),o}return Object(c.d)(t,r),t.prototype._getForwardRay=function(e){return this.webVRController.getForwardRay(e)},t.prototype._activatePointer=function(){r.prototype._activatePointer.call(this),this._laserPointer.isVisible=!0},t.prototype._deactivatePointer=function(){r.prototype._deactivatePointer.call(this),this._laserPointer.isVisible=!1},t.prototype._setLaserPointerColor=function(e){this._laserPointer.material.emissiveColor=e},t.prototype._setLaserPointerLightingDisabled=function(e){this._laserPointer.material.disableLighting=e},t.prototype._setLaserPointerParent=function(e){var n=function(s){s.isPickable=!1,s.getChildMeshes().forEach(function(d){n(d)})};n(e);var i=e.getChildren(void 0,!1),o=e;this.webVRController._pointingPoseNode=null;for(var a=0;a=0){o=i[a],this.webVRController._pointingPoseNode=o;break}this._laserPointer.parent=o},t.prototype._updatePointerDistance=function(e){e===void 0&&(e=100),this._laserPointer.scaling.y=e,this._laserPointer.position.z=-e/2},t.prototype.dispose=function(){r.prototype.dispose.call(this),this._laserPointer.dispose(),this._meshAttachedObserver&&this.webVRController._meshAttachedObservable.remove(this._meshAttachedObserver)},t}(Ql),ql=function(r){function t(e,n){var i=r.call(this,n)||this;return i.getCamera=e,i}return Object(c.d)(t,r),t.prototype._getForwardRay=function(e){var n=this.getCamera();return n?n.getForwardRay(e):new dn.a(u.e.Zero(),u.e.Forward())},t}(Ql),Kf=function(){},Zl=function(){function r(t,e){var n=this;if(e===void 0&&(e={}),this.webVROptions=e,this._webVRsupported=!1,this._webVRready=!1,this._webVRrequesting=!1,this._webVRpresenting=!1,this._fullscreenVRpresenting=!1,this.enableGazeEvenWhenNoPointerLock=!1,this.exitVROnDoubleTap=!0,this.onEnteringVRObservable=new R.c,this.onAfterEnteringVRObservable=new R.c,this.onExitingVRObservable=new R.c,this.onControllerMeshLoadedObservable=new R.c,this._useCustomVRButton=!1,this._teleportationRequested=!1,this._teleportActive=!1,this._floorMeshesCollection=[],this._teleportationMode=r.TELEPORTATIONMODE_CONSTANTTIME,this._teleportationTime=122,this._teleportationSpeed=20,this._rotationAllowed=!0,this._teleportBackwardsVector=new u.e(0,-1,-1),this._isDefaultTeleportationTarget=!0,this._teleportationFillColor="#444444",this._teleportationBorderColor="#FFFFFF",this._rotationAngle=0,this._haloCenter=new u.e(0,0,0),this._padSensibilityUp=.65,this._padSensibilityDown=.35,this._leftController=null,this._rightController=null,this._gazeColor=new M.a(.7,.7,.7),this._laserColor=new M.a(.7,.7,.7),this._pickedLaserColor=new M.a(.2,.2,1),this._pickedGazeColor=new M.a(0,0,1),this.onNewMeshSelected=new R.c,this.onMeshSelectedWithController=new R.c,this.onNewMeshPicked=new R.c,this.onBeforeCameraTeleport=new R.c,this.onAfterCameraTeleport=new R.c,this.onSelectedMeshUnselected=new R.c,this.teleportationEnabled=!0,this._teleportationInitialized=!1,this._interactionsEnabled=!1,this._interactionsRequested=!1,this._displayGaze=!0,this._displayLaserPointer=!0,this.updateGazeTrackerScale=!0,this.updateGazeTrackerColor=!0,this.updateControllerLaserColor=!0,this.requestPointerLockOnFullScreen=!0,this.xrTestDone=!1,this._onResize=function(){n.moveButtonToBottomRight(),n._fullscreenVRpresenting&&n._webVRready&&n.exitVR()},this._onFullscreenChange=function(){var o=document;o.fullscreen!==void 0?n._fullscreenVRpresenting=document.fullscreen:o.mozFullScreen!==void 0?n._fullscreenVRpresenting=o.mozFullScreen:o.webkitIsFullScreen!==void 0?n._fullscreenVRpresenting=o.webkitIsFullScreen:o.msIsFullScreen!==void 0?n._fullscreenVRpresenting=o.msIsFullScreen:document.msFullscreenElement!==void 0&&(n._fullscreenVRpresenting=document.msFullscreenElement),!n._fullscreenVRpresenting&&n._inputElement&&(n.exitVR(),!n._useCustomVRButton&&n._btnVR&&(n._btnVR.style.top=n._inputElement.offsetTop+n._inputElement.offsetHeight-70+"px",n._btnVR.style.left=n._inputElement.offsetLeft+n._inputElement.offsetWidth-100+"px",n.updateButtonVisibility()))},this._cachedAngularSensibility={angularSensibilityX:null,angularSensibilityY:null,angularSensibility:null},this.beforeRender=function(){n._leftController&&n._leftController._activePointer&&n._castRayAndSelectObject(n._leftController),n._rightController&&n._rightController._activePointer&&n._castRayAndSelectObject(n._rightController),n._noControllerIsActive&&(n._scene.getEngine().isPointerLock||n.enableGazeEvenWhenNoPointerLock)?n._castRayAndSelectObject(n._cameraGazer):n._cameraGazer._gazeTracker.isVisible=!1},this._onNewGamepadConnected=function(o){if(o.type!==hn.POSE_ENABLED)o.leftStick&&o.onleftstickchanged(function(d){n._teleportationInitialized&&n.teleportationEnabled&&(!n._leftController&&!n._rightController||n._leftController&&!n._leftController._activePointer&&n._rightController&&!n._rightController._activePointer)&&(n._checkTeleportWithRay(d,n._cameraGazer),n._checkTeleportBackwards(d,n._cameraGazer))}),o.rightStick&&o.onrightstickchanged(function(d){n._teleportationInitialized&&n._checkRotate(d,n._cameraGazer)}),o.type===hn.XBOX&&(o.onbuttondown(function(d){n._interactionsEnabled&&d===Rn.A&&n._cameraGazer._selectionPointerDown()}),o.onbuttonup(function(d){n._interactionsEnabled&&d===Rn.A&&n._cameraGazer._selectionPointerUp()}));else{var a=o,s=new Yf(a,n._scene,n._cameraGazer._gazeTracker);a.hand==="right"||n._leftController&&n._leftController.webVRController!=a?n._rightController=s:n._leftController=s,n._tryEnableInteractionOnController(s)}},this._tryEnableInteractionOnController=function(o){n._interactionsRequested&&!o._interactionsEnabled&&n._enableInteractionOnController(o),n._teleportationRequested&&!o._teleportationEnabled&&n._enableTeleportationOnController(o)},this._onNewGamepadDisconnected=function(o){o instanceof Fi&&(o.hand==="left"&&n._leftController!=null&&(n._leftController.dispose(),n._leftController=null),o.hand==="right"&&n._rightController!=null&&(n._rightController.dispose(),n._rightController=null))},this._workingVector=u.e.Zero(),this._workingQuaternion=u.b.Identity(),this._workingMatrix=u.a.Identity(),this._scene=t,this._inputElement=t.getEngine().getInputElement(),"getVRDisplays"in navigator||(e.useXR=!0),e.createFallbackVRDeviceOrientationFreeCamera===void 0&&(e.createFallbackVRDeviceOrientationFreeCamera=!0),e.createDeviceOrientationCamera===void 0&&(e.createDeviceOrientationCamera=!0),e.laserToggle===void 0&&(e.laserToggle=!0),e.defaultHeight===void 0&&(e.defaultHeight=1.7),e.useCustomVRButton&&(this._useCustomVRButton=!0,e.customVRButton&&(this._btnVR=e.customVRButton)),e.rayLength&&(this._rayLength=e.rayLength),this._defaultHeight=e.defaultHeight,e.positionScale&&(this._rayLength*=e.positionScale,this._defaultHeight*=e.positionScale),this._hasEnteredVR=!1,this._scene.activeCamera?this._position=this._scene.activeCamera.position.clone():this._position=new u.e(0,this._defaultHeight,0),e.createDeviceOrientationCamera||!this._scene.activeCamera){if(this._deviceOrientationCamera=new Bo("deviceOrientationVRHelper",this._position.clone(),t),this._scene.activeCamera&&(this._deviceOrientationCamera.minZ=this._scene.activeCamera.minZ,this._deviceOrientationCamera.maxZ=this._scene.activeCamera.maxZ,this._scene.activeCamera instanceof Li&&this._scene.activeCamera.rotation)){var i=this._scene.activeCamera;i.rotationQuaternion?this._deviceOrientationCamera.rotationQuaternion.copyFrom(i.rotationQuaternion):this._deviceOrientationCamera.rotationQuaternion.copyFrom(u.b.RotationYawPitchRoll(i.rotation.y,i.rotation.x,i.rotation.z)),this._deviceOrientationCamera.rotation=i.rotation.clone()}this._scene.activeCamera=this._deviceOrientationCamera,this._inputElement&&this._scene.activeCamera.attachControl()}else this._existingCamera=this._scene.activeCamera;this.webVROptions.useXR&&navigator.xr?_s.IsSessionSupportedAsync("immersive-vr").then(function(o){o?(l.a.Log("Using WebXR. It is recommended to use the WebXRDefaultExperience directly"),t.createDefaultXRExperienceAsync({floorMeshes:e.floorMeshes||[]}).then(function(a){n.xr=a,n.xrTestDone=!0,n._cameraGazer=new ql(function(){return n.xr.baseExperience.camera},t),n.xr.baseExperience.onStateChangedObservable.add(function(s){switch(s){case fn.ENTERING_XR:n.onEnteringVRObservable.notifyObservers(n),n._interactionsEnabled||n.xr.pointerSelection.detach(),n.xr.pointerSelection.displayLaserPointer=n._displayLaserPointer;break;case fn.EXITING_XR:n.onExitingVRObservable.notifyObservers(n),n._scene.getEngine().resize();break;case fn.IN_XR:n._hasEnteredVR=!0;break;case fn.NOT_IN_XR:n._hasEnteredVR=!1}})})):n.completeVRInit(t,e)}):this.completeVRInit(t,e)}return Object.defineProperty(r.prototype,"onEnteringVR",{get:function(){return this.onEnteringVRObservable},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"onExitingVR",{get:function(){return this.onExitingVRObservable},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"onControllerMeshLoaded",{get:function(){return this.onControllerMeshLoadedObservable},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"teleportationTarget",{get:function(){return this._teleportationTarget},set:function(t){t&&(t.name="teleportationTarget",this._isDefaultTeleportationTarget=!1,this._teleportationTarget=t)},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"gazeTrackerMesh",{get:function(){return this._cameraGazer._gazeTracker},set:function(t){t&&(this._cameraGazer._gazeTracker&&this._cameraGazer._gazeTracker.dispose(),this._leftController&&this._leftController._gazeTracker&&this._leftController._gazeTracker.dispose(),this._rightController&&this._rightController._gazeTracker&&this._rightController._gazeTracker.dispose(),this._cameraGazer._gazeTracker=t,this._cameraGazer._gazeTracker.bakeCurrentTransformIntoVertices(),this._cameraGazer._gazeTracker.isPickable=!1,this._cameraGazer._gazeTracker.isVisible=!1,this._cameraGazer._gazeTracker.name="gazeTracker",this._leftController&&(this._leftController._gazeTracker=this._cameraGazer._gazeTracker.clone("gazeTracker")),this._rightController&&(this._rightController._gazeTracker=this._cameraGazer._gazeTracker.clone("gazeTracker")))},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"leftControllerGazeTrackerMesh",{get:function(){return this._leftController?this._leftController._gazeTracker:null},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"rightControllerGazeTrackerMesh",{get:function(){return this._rightController?this._rightController._gazeTracker:null},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"displayGaze",{get:function(){return this._displayGaze},set:function(t){this._displayGaze=t,t||(this._cameraGazer._gazeTracker.isVisible=!1,this._leftController&&(this._leftController._gazeTracker.isVisible=!1),this._rightController&&(this._rightController._gazeTracker.isVisible=!1))},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"displayLaserPointer",{get:function(){return this._displayLaserPointer},set:function(t){this._displayLaserPointer=t,t?(this._rightController&&this._rightController._activatePointer(),this._leftController&&this._leftController._activatePointer()):(this._rightController&&(this._rightController._deactivatePointer(),this._rightController._gazeTracker.isVisible=!1),this._leftController&&(this._leftController._deactivatePointer(),this._leftController._gazeTracker.isVisible=!1))},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"deviceOrientationCamera",{get:function(){return this._deviceOrientationCamera},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"currentVRCamera",{get:function(){return this._webVRready?this._webVRCamera:this._scene.activeCamera},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"webVRCamera",{get:function(){return this._webVRCamera},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"vrDeviceOrientationCamera",{get:function(){return this._vrDeviceOrientationCamera},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"vrButton",{get:function(){return this._btnVR},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"_teleportationRequestInitiated",{get:function(){return this._cameraGazer._teleportationRequestInitiated||this._leftController!==null&&this._leftController._teleportationRequestInitiated||this._rightController!==null&&this._rightController._teleportationRequestInitiated},enumerable:!1,configurable:!0}),r.prototype.completeVRInit=function(t,e){var n=this;if(this.xrTestDone=!0,e.createFallbackVRDeviceOrientationFreeCamera&&(e.useMultiview&&(e.vrDeviceOrientationCameraMetrics||(e.vrDeviceOrientationCameraMetrics=mr.GetDefault()),e.vrDeviceOrientationCameraMetrics.multiviewEnabled=!0),this._vrDeviceOrientationCamera=new Vo("VRDeviceOrientationVRHelper",this._position,this._scene,!0,e.vrDeviceOrientationCameraMetrics),this._vrDeviceOrientationCamera.angularSensibility=Number.MAX_VALUE),this._webVRCamera=new Go("WebVRHelper",this._position,this._scene,e),this._webVRCamera.useStandingMatrix(),this._cameraGazer=new ql(function(){return n.currentVRCamera},t),!this._useCustomVRButton){this._btnVR=document.createElement("BUTTON"),this._btnVR.className="babylonVRicon",this._btnVR.id="babylonVRiconbtn",this._btnVR.title="Click to switch to VR";var i=".babylonVRicon { position: absolute; right: 20px; height: 50px; width: 80px; background-color: rgba(51,51,51,0.7); background-image: url("+(window.SVGSVGElement?"data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%222048%22%20height%3D%221152%22%20viewBox%3D%220%200%202048%201152%22%20version%3D%221.1%22%3E%3Cpath%20transform%3D%22rotate%28180%201024%2C576.0000000000001%29%22%20d%3D%22m1109%2C896q17%2C0%2030%2C-12t13%2C-30t-12.5%2C-30.5t-30.5%2C-12.5l-170%2C0q-18%2C0%20-30.5%2C12.5t-12.5%2C30.5t13%2C30t30%2C12l170%2C0zm-85%2C256q59%2C0%20132.5%2C-1.5t154.5%2C-5.5t164.5%2C-11.5t163%2C-20t150%2C-30t124.5%2C-41.5q23%2C-11%2042%2C-24t38%2C-30q27%2C-25%2041%2C-61.5t14%2C-72.5l0%2C-257q0%2C-123%20-47%2C-232t-128%2C-190t-190%2C-128t-232%2C-47l-81%2C0q-37%2C0%20-68.5%2C14t-60.5%2C34.5t-55.5%2C45t-53%2C45t-53%2C34.5t-55.5%2C14t-55.5%2C-14t-53%2C-34.5t-53%2C-45t-55.5%2C-45t-60.5%2C-34.5t-68.5%2C-14l-81%2C0q-123%2C0%20-232%2C47t-190%2C128t-128%2C190t-47%2C232l0%2C257q0%2C68%2038%2C115t97%2C73q54%2C24%20124.5%2C41.5t150%2C30t163%2C20t164.5%2C11.5t154.5%2C5.5t132.5%2C1.5zm939%2C-298q0%2C39%20-24.5%2C67t-58.5%2C42q-54%2C23%20-122%2C39.5t-143.5%2C28t-155.5%2C19t-157%2C11t-148.5%2C5t-129.5%2C1.5q-59%2C0%20-130%2C-1.5t-148%2C-5t-157%2C-11t-155.5%2C-19t-143.5%2C-28t-122%2C-39.5q-34%2C-14%20-58.5%2C-42t-24.5%2C-67l0%2C-257q0%2C-106%2040.5%2C-199t110%2C-162.5t162.5%2C-109.5t199%2C-40l81%2C0q27%2C0%2052%2C14t50%2C34.5t51%2C44.5t55.5%2C44.5t63.5%2C34.5t74%2C14t74%2C-14t63.5%2C-34.5t55.5%2C-44.5t51%2C-44.5t50%2C-34.5t52%2C-14l14%2C0q37%2C0%2070%2C0.5t64.5%2C4.5t63.5%2C12t68%2C23q71%2C30%20128.5%2C78.5t98.5%2C110t63.5%2C133.5t22.5%2C149l0%2C257z%22%20fill%3D%22white%22%20/%3E%3C/svg%3E%0A":"https://cdn.babylonjs.com/Assets/vrButton.png")+"); background-size: 80%; background-repeat:no-repeat; background-position: center; border: none; outline: none; transition: transform 0.125s ease-out } .babylonVRicon:hover { transform: scale(1.05) } .babylonVRicon:active {background-color: rgba(51,51,51,1) } .babylonVRicon:focus {background-color: rgba(51,51,51,1) }";i+=".babylonVRicon.vrdisplaypresenting { display: none; }";var o=document.createElement("style");o.appendChild(document.createTextNode(i)),document.getElementsByTagName("head")[0].appendChild(o),this.moveButtonToBottomRight()}this._btnVR&&this._btnVR.addEventListener("click",function(){n.isInVRMode?n._scene.getEngine().disableVR():n.enterVR()});var a=this._scene.getEngine().getHostWindow();a&&(a.addEventListener("resize",this._onResize),document.addEventListener("fullscreenchange",this._onFullscreenChange,!1),document.addEventListener("mozfullscreenchange",this._onFullscreenChange,!1),document.addEventListener("webkitfullscreenchange",this._onFullscreenChange,!1),document.addEventListener("msfullscreenchange",this._onFullscreenChange,!1),document.onmsfullscreenchange=this._onFullscreenChange,e.createFallbackVRDeviceOrientationFreeCamera?this.displayVRButton():this._scene.getEngine().onVRDisplayChangedObservable.add(function(s){s.vrDisplay&&n.displayVRButton()}),this._onKeyDown=function(s){s.keyCode===27&&n.isInVRMode&&n.exitVR()},document.addEventListener("keydown",this._onKeyDown),this._scene.onPrePointerObservable.add(function(){n._hasEnteredVR&&n.exitVROnDoubleTap&&(n.exitVR(),n._fullscreenVRpresenting&&n._scene.getEngine().exitFullscreen())},Tt.a.POINTERDOUBLETAP,!1),this._onVRDisplayChanged=function(s){return n.onVRDisplayChanged(s)},this._onVrDisplayPresentChange=function(){return n.onVrDisplayPresentChange()},this._onVRRequestPresentStart=function(){n._webVRrequesting=!0,n.updateButtonVisibility()},this._onVRRequestPresentComplete=function(){n._webVRrequesting=!1,n.updateButtonVisibility()},t.getEngine().onVRDisplayChangedObservable.add(this._onVRDisplayChanged),t.getEngine().onVRRequestPresentStart.add(this._onVRRequestPresentStart),t.getEngine().onVRRequestPresentComplete.add(this._onVRRequestPresentComplete),a.addEventListener("vrdisplaypresentchange",this._onVrDisplayPresentChange),t.onDisposeObservable.add(function(){n.dispose()}),this._webVRCamera.onControllerMeshLoadedObservable.add(function(s){return n._onDefaultMeshLoaded(s)}),this._scene.gamepadManager.onGamepadConnectedObservable.add(this._onNewGamepadConnected),this._scene.gamepadManager.onGamepadDisconnectedObservable.add(this._onNewGamepadDisconnected),this.updateButtonVisibility(),this._circleEase=new nt,this._circleEase.setEasingMode(Ge.EASINGMODE_EASEINOUT),this._teleportationEasing=this._circleEase,t.onPointerObservable.add(function(s){n._interactionsEnabled&&t.activeCamera===n.vrDeviceOrientationCamera&&s.event.pointerType==="mouse"&&(s.type===Tt.a.POINTERDOWN?n._cameraGazer._selectionPointerDown():s.type===Tt.a.POINTERUP&&n._cameraGazer._selectionPointerUp())}),this.webVROptions.floorMeshes&&this.enableTeleportation({floorMeshes:this.webVROptions.floorMeshes}))},r.prototype._onDefaultMeshLoaded=function(t){this._leftController&&this._leftController.webVRController==t&&t.mesh&&this._leftController._setLaserPointerParent(t.mesh),this._rightController&&this._rightController.webVRController==t&&t.mesh&&this._rightController._setLaserPointerParent(t.mesh);try{this.onControllerMeshLoadedObservable.notifyObservers(t)}catch(e){l.a.Warn("Error in your custom logic onControllerMeshLoaded: "+e)}},Object.defineProperty(r.prototype,"isInVRMode",{get:function(){return this.xr&&this.webVROptions.useXR&&this.xr.baseExperience.state===fn.IN_XR||this._webVRpresenting||this._fullscreenVRpresenting},enumerable:!1,configurable:!0}),r.prototype.onVrDisplayPresentChange=function(){var t=this._scene.getEngine().getVRDevice();if(t){var e=this._webVRpresenting;this._webVRpresenting=t.isPresenting,e&&!this._webVRpresenting&&this.exitVR()}else l.a.Warn("Detected VRDisplayPresentChange on an unknown VRDisplay. Did you can enterVR on the vrExperienceHelper?");this.updateButtonVisibility()},r.prototype.onVRDisplayChanged=function(t){this._webVRsupported=t.vrSupported,this._webVRready=!!t.vrDisplay,this._webVRpresenting=t.vrDisplay&&t.vrDisplay.isPresenting,this.updateButtonVisibility()},r.prototype.moveButtonToBottomRight=function(){if(this._inputElement&&!this._useCustomVRButton&&this._btnVR){var t=this._inputElement.getBoundingClientRect();this._btnVR.style.top=t.top+t.height-70+"px",this._btnVR.style.left=t.left+t.width-100+"px"}},r.prototype.displayVRButton=function(){this._useCustomVRButton||this._btnVRDisplayed||!this._btnVR||(document.body.appendChild(this._btnVR),this._btnVRDisplayed=!0)},r.prototype.updateButtonVisibility=function(){this._btnVR&&!this._useCustomVRButton&&(this._btnVR.className="babylonVRicon",this.isInVRMode?this._btnVR.className+=" vrdisplaypresenting":(this._webVRready&&(this._btnVR.className+=" vrdisplayready"),this._webVRsupported&&(this._btnVR.className+=" vrdisplaysupported"),this._webVRrequesting&&(this._btnVR.className+=" vrdisplayrequesting")))},r.prototype.enterVR=function(){var t=this;if(this.xr)this.xr.baseExperience.enterXRAsync("immersive-vr","local-floor",this.xr.renderTarget);else{if(this.onEnteringVRObservable)try{this.onEnteringVRObservable.notifyObservers(this)}catch(o){l.a.Warn("Error in your custom logic onEnteringVR: "+o)}if(this._scene.activeCamera){if(this._position=this._scene.activeCamera.position.clone(),this.vrDeviceOrientationCamera&&(this.vrDeviceOrientationCamera.rotation=u.b.FromRotationMatrix(this._scene.activeCamera.getWorldMatrix().getRotationMatrix()).toEulerAngles(),this.vrDeviceOrientationCamera.angularSensibility=2e3),this.webVRCamera){var e=this.webVRCamera.deviceRotationQuaternion.toEulerAngles().y,n=u.b.FromRotationMatrix(this._scene.activeCamera.getWorldMatrix().getRotationMatrix()).toEulerAngles().y-e,i=this.webVRCamera.rotationQuaternion.toEulerAngles().y;this.webVRCamera.rotationQuaternion=u.b.FromEulerAngles(0,i+n,0)}this._existingCamera=this._scene.activeCamera,this._existingCamera.angularSensibilityX&&(this._cachedAngularSensibility.angularSensibilityX=this._existingCamera.angularSensibilityX,this._existingCamera.angularSensibilityX=Number.MAX_VALUE),this._existingCamera.angularSensibilityY&&(this._cachedAngularSensibility.angularSensibilityY=this._existingCamera.angularSensibilityY,this._existingCamera.angularSensibilityY=Number.MAX_VALUE),this._existingCamera.angularSensibility&&(this._cachedAngularSensibility.angularSensibility=this._existingCamera.angularSensibility,this._existingCamera.angularSensibility=Number.MAX_VALUE)}this._webVRrequesting||(this._webVRready?this._webVRpresenting||(this._scene.getEngine().onVRRequestPresentComplete.addOnce(function(o){t.onAfterEnteringVRObservable.notifyObservers({success:o})}),this._webVRCamera.position=this._position,this._scene.activeCamera=this._webVRCamera):this._vrDeviceOrientationCamera&&(this._vrDeviceOrientationCamera.position=this._position,this._scene.activeCamera&&(this._vrDeviceOrientationCamera.minZ=this._scene.activeCamera.minZ),this._scene.activeCamera=this._vrDeviceOrientationCamera,this._scene.getEngine().enterFullscreen(this.requestPointerLockOnFullScreen),this.updateButtonVisibility(),this._vrDeviceOrientationCamera.onViewMatrixChangedObservable.addOnce(function(){t.onAfterEnteringVRObservable.notifyObservers({success:!0})})),this._scene.activeCamera&&this._inputElement&&this._scene.activeCamera.attachControl(),this._interactionsEnabled&&this._scene.registerBeforeRender(this.beforeRender),this._displayLaserPointer&&[this._leftController,this._rightController].forEach(function(o){o&&o._activatePointer()}),this._hasEnteredVR=!0)}},r.prototype.exitVR=function(){if(this.xr)this.xr.baseExperience.exitXRAsync();else if(this._hasEnteredVR){if(this.onExitingVRObservable)try{this.onExitingVRObservable.notifyObservers(this)}catch(e){l.a.Warn("Error in your custom logic onExitingVR: "+e)}this._webVRpresenting&&this._scene.getEngine().disableVR(),this._scene.activeCamera&&(this._position=this._scene.activeCamera.position.clone()),this.vrDeviceOrientationCamera&&(this.vrDeviceOrientationCamera.angularSensibility=Number.MAX_VALUE),this._deviceOrientationCamera?(this._deviceOrientationCamera.position=this._position,this._scene.activeCamera=this._deviceOrientationCamera,this._cachedAngularSensibility.angularSensibilityX&&(this._deviceOrientationCamera.angularSensibilityX=this._cachedAngularSensibility.angularSensibilityX,this._cachedAngularSensibility.angularSensibilityX=null),this._cachedAngularSensibility.angularSensibilityY&&(this._deviceOrientationCamera.angularSensibilityY=this._cachedAngularSensibility.angularSensibilityY,this._cachedAngularSensibility.angularSensibilityY=null),this._cachedAngularSensibility.angularSensibility&&(this._deviceOrientationCamera.angularSensibility=this._cachedAngularSensibility.angularSensibility,this._cachedAngularSensibility.angularSensibility=null)):this._existingCamera&&(this._existingCamera.position=this._position,this._scene.activeCamera=this._existingCamera,this._inputElement&&this._scene.activeCamera.attachControl(),this._cachedAngularSensibility.angularSensibilityX&&(this._existingCamera.angularSensibilityX=this._cachedAngularSensibility.angularSensibilityX,this._cachedAngularSensibility.angularSensibilityX=null),this._cachedAngularSensibility.angularSensibilityY&&(this._existingCamera.angularSensibilityY=this._cachedAngularSensibility.angularSensibilityY,this._cachedAngularSensibility.angularSensibilityY=null),this._cachedAngularSensibility.angularSensibility&&(this._existingCamera.angularSensibility=this._cachedAngularSensibility.angularSensibility,this._cachedAngularSensibility.angularSensibility=null)),this.updateButtonVisibility(),this._interactionsEnabled&&(this._scene.unregisterBeforeRender(this.beforeRender),this._cameraGazer._gazeTracker.isVisible=!1,this._leftController&&(this._leftController._gazeTracker.isVisible=!1),this._rightController&&(this._rightController._gazeTracker.isVisible=!1)),this._scene.getEngine().resize(),[this._leftController,this._rightController].forEach(function(e){e&&e._deactivatePointer()}),this._hasEnteredVR=!1;var t=this._scene.getEngine();t._onVrDisplayPresentChange&&t._onVrDisplayPresentChange()}},Object.defineProperty(r.prototype,"position",{get:function(){return this._position},set:function(t){this._position=t,this._scene.activeCamera&&(this._scene.activeCamera.position=t)},enumerable:!1,configurable:!0}),r.prototype.enableInteractions=function(){var t=this;if(!this._interactionsEnabled){if(this._interactionsRequested=!0,this.xr)return void(this.xr.baseExperience.state===fn.IN_XR&&this.xr.pointerSelection.attach());this._leftController&&this._enableInteractionOnController(this._leftController),this._rightController&&this._enableInteractionOnController(this._rightController),this.raySelectionPredicate=function(e){return e.isVisible&&(e.isPickable||e.name===t._floorMeshName)},this.meshSelectionPredicate=function(){return!0},this._raySelectionPredicate=function(e){return!!(t._isTeleportationFloor(e)||e.name.indexOf("gazeTracker")===-1&&e.name.indexOf("teleportationTarget")===-1&&e.name.indexOf("torusTeleportation")===-1)&&t.raySelectionPredicate(e)},this._interactionsEnabled=!0}},Object.defineProperty(r.prototype,"_noControllerIsActive",{get:function(){return!(this._leftController&&this._leftController._activePointer||this._rightController&&this._rightController._activePointer)},enumerable:!1,configurable:!0}),r.prototype._isTeleportationFloor=function(t){for(var e=0;e-1||this._floorMeshesCollection.push(t))},r.prototype.removeFloorMesh=function(t){if(this._floorMeshesCollection){var e=this._floorMeshesCollection.indexOf(t);e!==-1&&this._floorMeshesCollection.splice(e,1)}},r.prototype.enableTeleportation=function(t){var e=this;if(t===void 0&&(t={}),!this._teleportationInitialized){if(this._teleportationRequested=!0,this.enableInteractions(),this.webVROptions.useXR&&(t.floorMeshes||t.floorMeshName)){var n=t.floorMeshes||[];if(!n.length){var i=this._scene.getMeshByName(t.floorMeshName);i&&n.push(i)}if(this.xr)return n.forEach(function(s){e.xr.teleportation.addFloorMesh(s)}),void(this.xr.teleportation.attached||this.xr.teleportation.attach());if(!this.xrTestDone){var o=function(){e.xrTestDone&&(e._scene.unregisterBeforeRender(o),e.xr?e.xr.teleportation.attached||e.xr.teleportation.attach():e.enableTeleportation(t))};return void this._scene.registerBeforeRender(o)}}t.floorMeshName&&(this._floorMeshName=t.floorMeshName),t.floorMeshes&&(this._floorMeshesCollection=t.floorMeshes),t.teleportationMode&&(this._teleportationMode=t.teleportationMode),t.teleportationTime&&t.teleportationTime>0&&(this._teleportationTime=t.teleportationTime),t.teleportationSpeed&&t.teleportationSpeed>0&&(this._teleportationSpeed=t.teleportationSpeed),t.easingFunction!==void 0&&(this._teleportationEasing=t.easingFunction),this._leftController!=null&&this._enableTeleportationOnController(this._leftController),this._rightController!=null&&this._enableTeleportationOnController(this._rightController);var a=new vn.a;a.vignetteColor=new M.b(0,0,0,0),a.vignetteEnabled=!0,this._postProcessMove=new zo("postProcessMove",1,this._webVRCamera,void 0,void 0,void 0,void 0,a),this._webVRCamera.detachPostProcess(this._postProcessMove),this._teleportationInitialized=!0,this._isDefaultTeleportationTarget&&(this._createTeleportationCircles(),this._teleportationTarget.scaling.scaleInPlace(this._webVRCamera.deviceScaleFactor))}},r.prototype._enableInteractionOnController=function(t){var e=this;t.webVRController.mesh&&(t._interactionsEnabled=!0,this.isInVRMode&&this._displayLaserPointer&&t._activatePointer(),this.webVROptions.laserToggle&&t.webVRController.onMainButtonStateChangedObservable.add(function(n){e._displayLaserPointer&&n.value===1&&(t._activePointer?t._deactivatePointer():t._activatePointer(),e.displayGaze&&(t._gazeTracker.isVisible=t._activePointer))}),t.webVRController.onTriggerStateChangedObservable.add(function(n){var i=t;e._noControllerIsActive&&(i=e._cameraGazer),i._pointerDownOnMeshAsked?n.valuee._padSensibilityUp&&i._selectionPointerDown()}))},r.prototype._checkTeleportWithRay=function(t,e){this._teleportationRequestInitiated&&!e._teleportationRequestInitiated||(e._teleportationRequestInitiated?Math.sqrt(t.y*t.y+t.x*t.x)-this._padSensibilityDown&&(e._rotationLeftAsked=!1):t.x<-this._padSensibilityUp&&e._dpadPressed&&(e._rotationLeftAsked=!0,this._rotationAllowed&&this._rotateCamera(!1)),e._rotationRightAsked?t.xthis._padSensibilityUp&&e._dpadPressed&&(e._rotationRightAsked=!0,this._rotationAllowed&&this._rotateCamera(!0)))},r.prototype._checkTeleportBackwards=function(t,e){if(!e._teleportationRequestInitiated)if(t.y>this._padSensibilityUp&&e._dpadPressed){if(!e._teleportationBackRequestInitiated){if(!this.currentVRCamera)return;var n=u.b.FromRotationMatrix(this.currentVRCamera.getWorldMatrix().getRotationMatrix()),i=this.currentVRCamera.position;this.currentVRCamera.devicePosition&&this.currentVRCamera.deviceRotationQuaternion&&(n=this.currentVRCamera.deviceRotationQuaternion,i=this.currentVRCamera.devicePosition),n.toEulerAnglesToRef(this._workingVector),this._workingVector.z=0,this._workingVector.x=0,u.b.RotationYawPitchRollToRef(this._workingVector.y,this._workingVector.x,this._workingVector.z,this._workingQuaternion),this._workingQuaternion.toRotationMatrix(this._workingMatrix),u.e.TransformCoordinatesToRef(this._teleportBackwardsVector,this._workingMatrix,this._workingVector);var o=new dn.a(i,this._workingVector),a=this._scene.pickWithRay(o,this._raySelectionPredicate);a&&a.pickedPoint&&a.pickedMesh&&this._isTeleportationFloor(a.pickedMesh)&&a.distance<5&&this.teleportCamera(a.pickedPoint),e._teleportationBackRequestInitiated=!0}}else e._teleportationBackRequestInitiated=!1},r.prototype._enableTeleportationOnController=function(t){var e=this;t.webVRController.mesh&&(t._interactionsEnabled||this._enableInteractionOnController(t),t._interactionsEnabled=!0,t._teleportationEnabled=!0,t.webVRController.controllerType===ii.VIVE&&(t._dpadPressed=!1,t.webVRController.onPadStateChangedObservable.add(function(n){t._dpadPressed=n.pressed,t._dpadPressed||(t._rotationLeftAsked=!1,t._rotationRightAsked=!1,t._teleportationBackRequestInitiated=!1)})),t.webVRController.onPadValuesChangedObservable.add(function(n){e.teleportationEnabled&&(e._checkTeleportBackwards(n,t),e._checkTeleportWithRay(n,t)),e._checkRotate(n,t)}))},r.prototype._createTeleportationCircles=function(){this._teleportationTarget=De.a.CreateGround("teleportationTarget",2,2,2,this._scene),this._teleportationTarget.isPickable=!1;var t=new bi.a("DynamicTexture",512,this._scene,!0);t.hasAlpha=!0;var e=t.getContext();e.beginPath(),e.arc(256,256,200,0,2*Math.PI,!1),e.fillStyle=this._teleportationFillColor,e.fill(),e.lineWidth=10,e.strokeStyle=this._teleportationBorderColor,e.stroke(),e.closePath(),t.update();var n=new Ft.a("TextPlaneMaterial",this._scene);n.diffuseTexture=t,this._teleportationTarget.material=n;var i=De.a.CreateTorus("torusTeleportation",.75,.1,25,this._scene,!1);i.isPickable=!1,i.parent=this._teleportationTarget;var o=new k("animationInnerCircle","position.y",30,k.ANIMATIONTYPE_FLOAT,k.ANIMATIONLOOPMODE_CYCLE),a=[];a.push({frame:0,value:0}),a.push({frame:30,value:.4}),a.push({frame:60,value:0}),o.setKeys(a);var s=new on;s.setEasingMode(Ge.EASINGMODE_EASEINOUT),o.setEasingFunction(s),i.animations=[],i.animations.push(o),this._scene.beginAnimation(i,0,60,!0),this._hideTeleportationTarget()},r.prototype._displayTeleportationTarget=function(){this._teleportActive=!0,this._teleportationInitialized&&(this._teleportationTarget.isVisible=!0,this._isDefaultTeleportationTarget&&(this._teleportationTarget.getChildren()[0].isVisible=!0))},r.prototype._hideTeleportationTarget=function(){this._teleportActive=!1,this._teleportationInitialized&&(this._teleportationTarget.isVisible=!1,this._isDefaultTeleportationTarget&&(this._teleportationTarget.getChildren()[0].isVisible=!1))},r.prototype._rotateCamera=function(t){var e=this;if(this.currentVRCamera instanceof Yn){t?this._rotationAngle++:this._rotationAngle--,this.currentVRCamera.animations=[];var n=u.b.FromRotationMatrix(u.a.RotationY(Math.PI/4*this._rotationAngle)),i=new k("animationRotation","rotationQuaternion",90,k.ANIMATIONTYPE_QUATERNION,k.ANIMATIONLOOPMODE_CONSTANT),o=[];o.push({frame:0,value:this.currentVRCamera.rotationQuaternion}),o.push({frame:6,value:n}),i.setKeys(o),i.setEasingFunction(this._circleEase),this.currentVRCamera.animations.push(i),this._postProcessMove.animations=[];var a=new k("animationPP","vignetteWeight",90,k.ANIMATIONTYPE_FLOAT,k.ANIMATIONLOOPMODE_CONSTANT),s=[];s.push({frame:0,value:0}),s.push({frame:3,value:4}),s.push({frame:6,value:0}),a.setKeys(s),a.setEasingFunction(this._circleEase),this._postProcessMove.animations.push(a);var d=new k("animationPP2","vignetteStretch",90,k.ANIMATIONTYPE_FLOAT,k.ANIMATIONLOOPMODE_CONSTANT),p=[];p.push({frame:0,value:0}),p.push({frame:3,value:10}),p.push({frame:6,value:0}),d.setKeys(p),d.setEasingFunction(this._circleEase),this._postProcessMove.animations.push(d),this._postProcessMove.imageProcessingConfiguration.vignetteWeight=0,this._postProcessMove.imageProcessingConfiguration.vignetteStretch=0,this._postProcessMove.samples=4,this._webVRCamera.attachPostProcess(this._postProcessMove),this._scene.beginAnimation(this._postProcessMove,0,6,!1,1,function(){e._webVRCamera.detachPostProcess(e._postProcessMove)}),this._scene.beginAnimation(this.currentVRCamera,0,6,!1,1)}},r.prototype._moveTeleportationSelectorTo=function(t,e,n){if(t.pickedPoint){e._teleportationRequestInitiated&&(this._displayTeleportationTarget(),this._haloCenter.copyFrom(t.pickedPoint),this._teleportationTarget.position.copyFrom(t.pickedPoint));var i=this._convertNormalToDirectionOfRay(t.getNormal(!0,!1),n);if(i){var o=u.e.Cross(ye.a.Y,i),a=u.e.Cross(i,o);u.e.RotationFromAxisToRef(a,i,o,this._teleportationTarget.rotation)}this._teleportationTarget.position.y+=.1}},r.prototype.teleportCamera=function(t){var e=this;if(this.currentVRCamera instanceof Yn){this.webVRCamera.leftCamera?(this._workingVector.copyFrom(this.webVRCamera.leftCamera.globalPosition),this._workingVector.subtractInPlace(this.webVRCamera.position),t.subtractToRef(this._workingVector,this._workingVector)):this._workingVector.copyFrom(t),this.isInVRMode?this._workingVector.y+=this.webVRCamera.deviceDistanceToRoomGround()*this._webVRCamera.deviceScaleFactor:this._workingVector.y+=this._defaultHeight,this.onBeforeCameraTeleport.notifyObservers(this._workingVector);var n,i;if(this._teleportationMode==r.TELEPORTATIONMODE_CONSTANTSPEED){i=90;var o=u.e.Distance(this.currentVRCamera.position,this._workingVector);n=this._teleportationSpeed/o}else i=Math.round(90*this._teleportationTime/1e3),n=1;this.currentVRCamera.animations=[];var a=new k("animationCameraTeleportation","position",90,k.ANIMATIONTYPE_VECTOR3,k.ANIMATIONLOOPMODE_CONSTANT),s=[{frame:0,value:this.currentVRCamera.position},{frame:i,value:this._workingVector}];a.setKeys(s),a.setEasingFunction(this._teleportationEasing),this.currentVRCamera.animations.push(a),this._postProcessMove.animations=[];var d=Math.round(i/2),p=new k("animationPP","vignetteWeight",90,k.ANIMATIONTYPE_FLOAT,k.ANIMATIONLOOPMODE_CONSTANT),b=[];b.push({frame:0,value:0}),b.push({frame:d,value:8}),b.push({frame:i,value:0}),p.setKeys(b),this._postProcessMove.animations.push(p);var x=new k("animationPP2","vignetteStretch",90,k.ANIMATIONTYPE_FLOAT,k.ANIMATIONLOOPMODE_CONSTANT),O=[];O.push({frame:0,value:0}),O.push({frame:d,value:10}),O.push({frame:i,value:0}),x.setKeys(O),this._postProcessMove.animations.push(x),this._postProcessMove.imageProcessingConfiguration.vignetteWeight=0,this._postProcessMove.imageProcessingConfiguration.vignetteStretch=0,this._webVRCamera.attachPostProcess(this._postProcessMove),this._scene.beginAnimation(this._postProcessMove,0,i,!1,n,function(){e._webVRCamera.detachPostProcess(e._postProcessMove)}),this._scene.beginAnimation(this.currentVRCamera,0,i,!1,n,function(){e.onAfterCameraTeleport.notifyObservers(e._workingVector)}),this._hideTeleportationTarget()}},r.prototype._convertNormalToDirectionOfRay=function(t,e){return t&&Math.acos(u.e.Dot(t,e.direction))s){var d=s;s=a,a=d}return a>0&&a0&&s=0))},r.prototype._canDoCollision=function(t,e,n,i){var o=u.e.Distance(this._basePointWorld,t),a=Math.max(this._radius.x,this._radius.y,this._radius.z);return!(o>this._velocityWorldLength+a+e)&&!!function(s,d,p,b){return!(s.x>p.x+b)&&!(p.x-b>d.x)&&!(s.y>p.y+b)&&!(p.y-b>d.y)&&!(s.z>p.z+b)&&!(p.z-b>d.z)}(n,i,this._basePointWorld,this._velocityWorldLength+a)},r.prototype._testTriangle=function(t,e,n,i,o,a,s){var d,p=!1;e||(e=[]),e[t]||(e[t]=new vr.a(0,0,0,0),e[t].copyFromPoints(n,i,o));var b=e[t];if(a||b.isFrontFacingTo(this._normalizedVelocity,0)){var x=b.signedDistanceTo(this._basePoint),O=u.e.Dot(b.normal,this._velocity);if(O==0){if(Math.abs(x)>=1)return;p=!0,d=0}else{var B=(1-x)/O;if((d=(-1-x)/O)>B){var F=B;B=d,d=F}if(d>1||B<0)return;d<0&&(d=0),d>1&&(d=1)}this._collisionPoint.copyFromFloats(0,0,0);var z=!1,J=1;if(p||(this._basePoint.subtractToRef(b.normal,this._planeIntersectionPoint),this._velocity.scaleToRef(d,this._tempVector),this._planeIntersectionPoint.addInPlace(this._tempVector),this._checkPointInTriangle(this._planeIntersectionPoint,n,i,o,b.normal)&&(z=!0,J=d,this._collisionPoint.copyFrom(this._planeIntersectionPoint))),!z){var ie=this._velocity.lengthSquared(),se=ie;this._basePoint.subtractToRef(n,this._tempVector);var ce=2*u.e.Dot(this._velocity,this._tempVector),ue=this._tempVector.lengthSquared()-1,fe=br(se,ce,ue,J);fe.found&&(J=fe.root,z=!0,this._collisionPoint.copyFrom(n)),this._basePoint.subtractToRef(i,this._tempVector),ce=2*u.e.Dot(this._velocity,this._tempVector),ue=this._tempVector.lengthSquared()-1,(fe=br(se,ce,ue,J)).found&&(J=fe.root,z=!0,this._collisionPoint.copyFrom(i)),this._basePoint.subtractToRef(o,this._tempVector),ce=2*u.e.Dot(this._velocity,this._tempVector),ue=this._tempVector.lengthSquared()-1,(fe=br(se,ce,ue,J)).found&&(J=fe.root,z=!0,this._collisionPoint.copyFrom(o)),i.subtractToRef(n,this._edge),n.subtractToRef(this._basePoint,this._baseToVertex);var ve=this._edge.lengthSquared(),Te=u.e.Dot(this._edge,this._velocity),Re=u.e.Dot(this._edge,this._baseToVertex);if(se=ve*-ie+Te*Te,ce=ve*(2*u.e.Dot(this._velocity,this._baseToVertex))-2*Te*Re,ue=ve*(1-this._baseToVertex.lengthSquared())+Re*Re,(fe=br(se,ce,ue,J)).found){var Ae=(Te*fe.root-Re)/ve;Ae>=0&&Ae<=1&&(J=fe.root,z=!0,this._edge.scaleInPlace(Ae),n.addToRef(this._edge,this._collisionPoint))}o.subtractToRef(i,this._edge),i.subtractToRef(this._basePoint,this._baseToVertex),ve=this._edge.lengthSquared(),Te=u.e.Dot(this._edge,this._velocity),Re=u.e.Dot(this._edge,this._baseToVertex),se=ve*-ie+Te*Te,ce=ve*(2*u.e.Dot(this._velocity,this._baseToVertex))-2*Te*Re,ue=ve*(1-this._baseToVertex.lengthSquared())+Re*Re,(fe=br(se,ce,ue,J)).found&&(Ae=(Te*fe.root-Re)/ve)>=0&&Ae<=1&&(J=fe.root,z=!0,this._edge.scaleInPlace(Ae),i.addToRef(this._edge,this._collisionPoint)),n.subtractToRef(o,this._edge),o.subtractToRef(this._basePoint,this._baseToVertex),ve=this._edge.lengthSquared(),Te=u.e.Dot(this._edge,this._velocity),Re=u.e.Dot(this._edge,this._baseToVertex),se=ve*-ie+Te*Te,ce=ve*(2*u.e.Dot(this._velocity,this._baseToVertex))-2*Te*Re,ue=ve*(1-this._baseToVertex.lengthSquared())+Re*Re,(fe=br(se,ce,ue,J)).found&&(Ae=(Te*fe.root-Re)/ve)>=0&&Ae<=1&&(J=fe.root,z=!0,this._edge.scaleInPlace(Ae),o.addToRef(this._edge,this._collisionPoint))}if(z){var Ee=J*this._velocity.length();(!this.collisionFound||Ee=i)o.copyFrom(t);else{var d=a?a.collisionMask:n.collisionMask;n._initialize(t,e,s);for(var p=a&&a.surroundingMeshes||this._scene.meshes,b=0;bthis.capacity&&this._depth-1&&this.entries.splice(n,1)}},r.prototype.addEntries=function(t){for(var e=0;e=i.buttons.length?o[n]=i.axes[n-i.buttons.length].valueOf():o[n]=i.buttons[n].value}},r.prototype._getGamepadDeviceType=function(t){return t.indexOf("054c")!==-1?Kt.DualShock:t.indexOf("Xbox One")!==-1||t.search("Xbox 360")!==-1||t.search("xinput")!==-1?Kt.Xbox:t.indexOf("057e")!==-1?Kt.Switch:Kt.Generic},r._MAX_KEYCODES=255,r._MAX_POINTER_INPUTS=7,r}(),iu=function(){function r(t,e,n){n===void 0&&(n=0),this.deviceType=e,this.deviceSlot=n,this.onInputChangedObservable=new R.c,this._deviceInputSystem=t}return r.prototype.getInput=function(t){return this._deviceInputSystem.pollInput(this.deviceType,this.deviceSlot,t)},r}(),Zf=function(){function r(t){var e=this;this.onDeviceConnectedObservable=new R.c(function(i){e.getDevices().forEach(function(o){e.onDeviceConnectedObservable.notifyObserver(i,o)})}),this.onDeviceDisconnectedObservable=new R.c;var n=Object.keys(Kt).length/2;this._devices=new Array(n),this._firstDevice=new Array(n),this._deviceInputSystem=nu.Create(t),this._deviceInputSystem.onDeviceConnected=function(i,o){e._addDevice(i,o),e.onDeviceConnectedObservable.notifyObservers(e.getDeviceSource(i,o))},this._deviceInputSystem.onDeviceDisconnected=function(i,o){var a=e.getDeviceSource(i,o);e._removeDevice(i,o),e.onDeviceDisconnectedObservable.notifyObservers(a)},this._deviceInputSystem.onInputChanged||(this._deviceInputSystem.onInputChanged=function(i,o,a,s,d){var p;(p=e.getDeviceSource(i,o))===null||p===void 0||p.onInputChangedObservable.notifyObservers({inputIndex:a,previousState:s,currentState:d})})}return r.prototype.getDeviceSource=function(t,e){if(e===void 0){if(this._firstDevice[t]===void 0)return null;e=this._firstDevice[t]}return this._devices[t]&&this._devices[t][e]!==void 0?this._devices[t][e]:null},r.prototype.getDeviceSources=function(t){return this._devices[t].filter(function(e){return!!e})},r.prototype.getDevices=function(){var t=new Array;return this._devices.forEach(function(e){t.push.apply(t,e)}),t},r.prototype.dispose=function(){this.onDeviceConnectedObservable.clear(),this.onDeviceDisconnectedObservable.clear(),this._deviceInputSystem.dispose()},r.prototype._addDevice=function(t,e){this._devices[t]||(this._devices[t]=new Array),this._devices[t][e]||(this._devices[t][e]=new iu(this._deviceInputSystem,t,e),this._updateFirstDevices(t))},r.prototype._removeDevice=function(t,e){delete this._devices[t][e],this._updateFirstDevices(t)},r.prototype._updateFirstDevices=function(t){switch(t){case Kt.Keyboard:case Kt.Mouse:this._firstDevice[t]=0;break;case Kt.Touch:case Kt.DualShock:case Kt.Xbox:case Kt.Switch:case Kt.Generic:var e=this._devices[t];delete this._firstDevice[t];for(var n=0;nr.occlusionRetryCount))return!1;r.isOcclusionQueryInProgress=!1,r.occlusionInternalRetryCounter=0,r.isOccluded=r.occlusionType!==Dt.a.OCCLUSION_TYPE_OPTIMISTIC&&r.isOccluded}var n=this.getScene();if(n.getBoundingBoxRenderer){var i=n.getBoundingBoxRenderer();this._occlusionQuery||(this._occlusionQuery=t.createQuery()),t.beginOcclusionQuery(r.occlusionQueryAlgorithmType,this._occlusionQuery),i.renderOcclusionBoundingBox(this),t.endOcclusionQuery(r.occlusionQueryAlgorithmType),this._occlusionDataStorage.isOcclusionQueryInProgress=!0}return r.isOccluded};var Jf=!0;Ue.a.prototype.createTransformFeedback=function(){return this._gl.createTransformFeedback()},Ue.a.prototype.deleteTransformFeedback=function(r){this._gl.deleteTransformFeedback(r)},Ue.a.prototype.bindTransformFeedback=function(r){this._gl.bindTransformFeedback(this._gl.TRANSFORM_FEEDBACK,r)},Ue.a.prototype.beginTransformFeedback=function(r){r===void 0&&(r=!0),this._gl.beginTransformFeedback(r?this._gl.POINTS:this._gl.TRIANGLES)},Ue.a.prototype.endTransformFeedback=function(){this._gl.endTransformFeedback()},Ue.a.prototype.setTranformFeedbackVaryings=function(r,t){this._gl.transformFeedbackVaryings(r,t,this._gl.INTERLEAVED_ATTRIBS)},Ue.a.prototype.bindTransformFeedbackBuffer=function(r){this._gl.bindBufferBase(this._gl.TRANSFORM_FEEDBACK_BUFFER,0,r?r.underlyingResource:null)},f(126),Bt.a.prototype.updateVideoTexture=function(r,t,e){if(r&&!r._isDisabled){var n=this._bindTextureDirectly(this._gl.TEXTURE_2D,r,!0);this._unpackFlipY(!e);try{if(this._videoTextureSupported===void 0&&(this._gl.getError(),this._gl.texImage2D(this._gl.TEXTURE_2D,0,this._gl.RGBA,this._gl.RGBA,this._gl.UNSIGNED_BYTE,t),this._gl.getError()!==0?this._videoTextureSupported=!1:this._videoTextureSupported=!0),this._videoTextureSupported)this._gl.texImage2D(this._gl.TEXTURE_2D,0,this._gl.RGBA,this._gl.RGBA,this._gl.UNSIGNED_BYTE,t);else{if(!r._workingCanvas){r._workingCanvas=fs.a.CreateCanvas(r.width,r.height);var i=r._workingCanvas.getContext("2d");if(!i)throw new Error("Unable to get 2d context");r._workingContext=i,r._workingCanvas.width=r.width,r._workingCanvas.height=r.height}r._workingContext.clearRect(0,0,r.width,r.height),r._workingContext.drawImage(t,0,0,t.videoWidth,t.videoHeight,0,0,r.width,r.height),this._gl.texImage2D(this._gl.TEXTURE_2D,0,this._gl.RGBA,this._gl.RGBA,this._gl.UNSIGNED_BYTE,r._workingCanvas)}r.generateMipMaps&&this._gl.generateMipmap(this._gl.TEXTURE_2D),n||this._bindTextureDirectly(this._gl.TEXTURE_2D,null),r.isReady=!0}catch{r._isDisabled=!0}}},Bt.a.prototype.restoreSingleAttachment=function(){var r=this._gl;this.bindAttachments([r.BACK])},Bt.a.prototype.buildTextureLayout=function(r){for(var t=this._gl,e=[],n=0;n1?"COLOR_ATTACHMENT"+a:"COLOR_ATTACHMENT"+a+"_WEBGL"],n.readBuffer(i[a]),n.drawBuffers(i),n.blitFramebuffer(0,0,s.width,s.height,0,0,s.width,s.height,n.COLOR_BUFFER_BIT,n.NEAREST)}for(a=0;a1?"COLOR_ATTACHMENT"+a:"COLOR_ATTACHMENT"+a+"_WEBGL"];n.drawBuffers(i)}for(a=0;a1?"COLOR_ATTACHMENT"+se:"COLOR_ATTACHMENT"+se+"_WEBGL"];z.push(ve),J.push(Te),x.activeTexture(x["TEXTURE"+se]),x.bindTexture(x.TEXTURE_2D,ve._webGLTexture),x.texParameteri(x.TEXTURE_2D,x.TEXTURE_MAG_FILTER,fe.mag),x.texParameteri(x.TEXTURE_2D,x.TEXTURE_MIN_FILTER,fe.min),x.texParameteri(x.TEXTURE_2D,x.TEXTURE_WRAP_S,x.CLAMP_TO_EDGE),x.texParameteri(x.TEXTURE_2D,x.TEXTURE_WRAP_T,x.CLAMP_TO_EDGE),x.texImage2D(x.TEXTURE_2D,0,this._getRGBABufferInternalSizedFormat(ue),B,F,0,x.RGBA,this._getWebGLTextureType(ue),null),x.framebufferTexture2D(x.DRAW_FRAMEBUFFER,Te,x.TEXTURE_2D,ve._webGLTexture,0),e&&this._gl.generateMipmap(this._gl.TEXTURE_2D),this._bindTextureDirectly(x.TEXTURE_2D,null),ve._framebuffer=O,ve._depthStencilBuffer=ie,ve.baseWidth=B,ve.baseHeight=F,ve.width=B,ve.height=F,ve.isReady=!0,ve.samples=1,ve.generateMipMaps=e,ve.samplingMode=ce,ve.type=ue,ve._generateDepthBuffer=n,ve._generateStencilBuffer=i,ve._attachments=J,ve._textureArray=z,this._internalTexturesCache.push(ve)}if(o&&this._caps.depthTextureExtension){var Re=new Ct.a(this,Ct.b.MultiRenderTarget);x.activeTexture(x.TEXTURE0),x.bindTexture(x.TEXTURE_2D,Re._webGLTexture),x.texParameteri(x.TEXTURE_2D,x.TEXTURE_MAG_FILTER,x.NEAREST),x.texParameteri(x.TEXTURE_2D,x.TEXTURE_MIN_FILTER,x.NEAREST),x.texParameteri(x.TEXTURE_2D,x.TEXTURE_WRAP_S,x.CLAMP_TO_EDGE),x.texParameteri(x.TEXTURE_2D,x.TEXTURE_WRAP_T,x.CLAMP_TO_EDGE),x.texImage2D(x.TEXTURE_2D,0,this.webGLVersion<2?x.DEPTH_COMPONENT:x.DEPTH_COMPONENT16,B,F,0,x.DEPTH_COMPONENT,x.UNSIGNED_SHORT,null),x.framebufferTexture2D(x.FRAMEBUFFER,x.DEPTH_ATTACHMENT,x.TEXTURE_2D,Re._webGLTexture,0),Re._framebuffer=O,Re.baseWidth=B,Re.baseHeight=F,Re.width=B,Re.height=F,Re.isReady=!0,Re.samples=1,Re.generateMipMaps=e,Re.samplingMode=x.NEAREST,Re._generateDepthBuffer=n,Re._generateStencilBuffer=i,z.push(Re),this._internalTexturesCache.push(Re)}return x.drawBuffers(J),this._bindUnboundFramebuffer(null),this.resetTextureCache(),z},Bt.a.prototype.updateMultipleRenderTargetTextureSampleCount=function(r,t){if(this.webGLVersion<2||!r)return 1;if(r[0].samples===t)return t;var e=r[0]._attachments.length;if(e===0)return 1;var n=this._gl;t=Math.min(t,this.getCaps().maxMSAASamples),r[0]._depthStencilBuffer&&(n.deleteRenderbuffer(r[0]._depthStencilBuffer),r[0]._depthStencilBuffer=null),r[0]._MSAAFramebuffer&&(n.deleteFramebuffer(r[0]._MSAAFramebuffer),r[0]._MSAAFramebuffer=null);for(var i=0;i1&&n.renderbufferStorageMultisample){var o=n.createFramebuffer();if(!o)throw new Error("Unable to create multi sampled framebuffer");this._bindUnboundFramebuffer(o);var a=this._setupFramebufferDepthAttachments(r[0]._generateStencilBuffer,r[0]._generateDepthBuffer,r[0].width,r[0].height,t),s=[];for(i=0;i1?"COLOR_ATTACHMENT"+i:"COLOR_ATTACHMENT"+i+"_WEBGL"],b=n.createRenderbuffer();if(!b)throw new Error("Unable to create multi sampled framebuffer");n.bindRenderbuffer(n.RENDERBUFFER,b),n.renderbufferStorageMultisample(n.RENDERBUFFER,t,this._getRGBAMultiSampleBufferFormat(d.type),d.width,d.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,p,n.RENDERBUFFER,b),d._MSAAFramebuffer=o,d._MSAARenderBuffer=b,d.samples=t,d._depthStencilBuffer=a,n.bindRenderbuffer(n.RENDERBUFFER,null),s.push(p)}n.drawBuffers(s)}else this._bindUnboundFramebuffer(r[0]._framebuffer);return this._bindUnboundFramebuffer(null),t};var to=f(56);Bt.a.prototype._createDepthStencilCubeTexture=function(r,t){var e=new Ct.a(this,Ct.b.Unknown);if(e.isCube=!0,this.webGLVersion===1)return l.a.Error("Depth cube texture is not supported by WebGL 1."),e;var n=Object(c.a)({bilinearFiltering:!1,comparisonFunction:0,generateStencil:!1},t),i=this._gl;this._bindTextureDirectly(i.TEXTURE_CUBE_MAP,e,!0),this._setupDepthStencilTexture(e,r,n.generateStencil,n.bilinearFiltering,n.comparisonFunction);for(var o=0;o<6;o++)n.generateStencil?i.texImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+o,0,i.DEPTH24_STENCIL8,r,r,0,i.DEPTH_STENCIL,i.UNSIGNED_INT_24_8,null):i.texImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+o,0,i.DEPTH_COMPONENT24,r,r,0,i.DEPTH_COMPONENT,i.UNSIGNED_INT,null);return this._bindTextureDirectly(i.TEXTURE_CUBE_MAP,null),e},Bt.a.prototype._partialLoadFile=function(r,t,e,n,i){i===void 0&&(i=null),this._loadFile(r,function(o){e[t]=o,e._internalCount++,e._internalCount===6&&n(e)},void 0,void 0,!0,function(o,a){i&&o&&i(o.status+" "+o.statusText,a)})},Bt.a.prototype._cascadeLoadFiles=function(r,t,e,n){n===void 0&&(n=null);var i=[];i._internalCount=0;for(var o=0;o<6;o++)this._partialLoadFile(e[o],o,i,t,n)},Bt.a.prototype._cascadeLoadImgs=function(r,t,e,n,i){n===void 0&&(n=null);var o=[];o._internalCount=0;for(var a=0;a<6;a++)this._partialLoadImg(e[a],a,o,r,t,n,i)},Bt.a.prototype._partialLoadImg=function(r,t,e,n,i,o,a){var s;o===void 0&&(o=null),s=to.a.LoadImage(r,function(){s&&(e[t]=s,e._internalCount++,n&&n._removePendingData(s)),e._internalCount===6&&i(e)},function(d,p){n&&n._removePendingData(s),o&&o(d,p)},n?n.offlineProvider:null,a),n&&s&&n._addPendingData(s)},Bt.a.prototype._setCubeMapTextureParams=function(r,t){var e=this._gl;e.texParameteri(e.TEXTURE_CUBE_MAP,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_CUBE_MAP,e.TEXTURE_MIN_FILTER,t?e.LINEAR_MIPMAP_LINEAR:e.LINEAR),e.texParameteri(e.TEXTURE_CUBE_MAP,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_CUBE_MAP,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),r.samplingMode=t?h.a.TEXTURE_TRILINEAR_SAMPLINGMODE:h.a.TEXTURE_LINEAR_LINEAR,this._bindTextureDirectly(e.TEXTURE_CUBE_MAP,null)},Bt.a.prototype.createCubeTexture=function(r,t,e,n,i,o,a,s,d,p,b,x,O){var B=this;i===void 0&&(i=null),o===void 0&&(o=null),s===void 0&&(s=null),d===void 0&&(d=!1),p===void 0&&(p=0),b===void 0&&(b=0),x===void 0&&(x=null);var F=this._gl,z=x||new Ct.a(this,Ct.b.Cube);z.isCube=!0,z.url=r,z.generateMipMaps=!n,z._lodGenerationScale=p,z._lodGenerationOffset=b,this._doNotHandleContextLost||(z._extension=s,z._files=e);var J=r;this._transformTextureUrl&&!x&&(r=this._transformTextureUrl(r));for(var ie=r.lastIndexOf("."),se=s||(ie>-1?r.substring(ie).toLowerCase():""),ce=null,ue=0,fe=Bt.a._TextureLoaders;ue-1?r.substring(e,r.length):"";return(t>-1?r.substring(0,t):r)+this._textureFormatInUse+n}Object.defineProperty(Ue.a.prototype,"texturesSupported",{get:function(){var r=new Array;return this._caps.astc&&r.push("-astc.ktx"),this._caps.s3tc&&r.push("-dxt.ktx"),this._caps.pvrtc&&r.push("-pvrtc.ktx"),this._caps.etc2&&r.push("-etc2.ktx"),this._caps.etc1&&r.push("-etc1.ktx"),r},enumerable:!0,configurable:!0}),Object.defineProperty(Ue.a.prototype,"textureFormatInUse",{get:function(){return this._textureFormatInUse||null},enumerable:!0,configurable:!0}),Ue.a.prototype.setCompressedTextureExclusions=function(r){this._excludedCompressedTextures=r},Ue.a.prototype.setTextureFormatToUse=function(r){for(var t=this.texturesSupported,e=0,n=t.length;e +void main(void) +{ +gl_FragColor=toRGBD(texture2D(textureSampler,vUV).rgb); +}`;ze.a.ShadersStore.rgbdEncodePixelShader=ip;var rp=` +varying vec2 vUV; +uniform sampler2D textureSampler; +#include +void main(void) +{ +gl_FragColor=vec4(fromRGBD(texture2D(textureSampler,vUV)),1.0); +}`;ze.a.ShadersStore.rgbdDecodePixelShader=rp;var Ei=function(){function r(){}return r.GetEnvInfo=function(t){for(var e=new DataView(t.buffer,t.byteOffset,t.byteLength),n=0,i=0;i"u")Ye=createImageBitmap(Me).then(function(it){return n._OnImageReadyAsync(it,o,a,d,Fe,xe,Ee,s,b,p,t)});else{var tt=new Image;tt.src=Fe,Ye=new Promise(function(it,lt){tt.onload=function(){n._OnImageReadyAsync(tt,o,a,d,Fe,xe,Ee,s,b,p,t).then(function(){return it()}).catch(function(Ke){lt(Ke)})},tt.onerror=function(Ke){lt(Ke)}})}ue.push(Ye)},Le=0;Le<6;Le++)Se(Le)};for(F=0;F=0&&F.push(J.substring(ie+1))}a!=="void"&&F.push("return"),this._functionDescr.push({name:s,type:a,parameters:F,body:O,callIndex:0}),t=x+1;var se=e>0?this._sourceCode.substring(0,e):"",ce=x+1=0},r.prototype._extractBetweenMarkers=function(t,e,n,i){for(var o=i,a=0,s="";o0?this._sourceCode.substring(0,b):"",fe=O+1"u"&&(window.URL={createObjectURL:function(){},revokeObjectURL:function(){}}),typeof Blob>"u"&&(window.Blob=function(){}),e._shaderProcessor=new su.a,e}return Object(c.d)(t,r),t.prototype.getHardwareScalingLevel=function(){return 1},t.prototype.dispose=function(){r.prototype.dispose.call(this),this._boundBuffersVertexArray&&this._native.deleteVertexArray(this._boundBuffersVertexArray),this._native.dispose()},t.prototype._queueNewFrame=function(e,n){return n.requestAnimationFrame&&n!==window?n.requestAnimationFrame(e):this._native.requestAnimationFrame(e),0},t.prototype._bindUnboundFramebuffer=function(e){this._currentFramebuffer!==e&&(this._currentFramebuffer&&this._native.unbindFramebuffer(this._currentFramebuffer),e&&this._native.bindFramebuffer(e),this._currentFramebuffer=e)},t.prototype.getHostDocument=function(){return null},t.prototype.clear=function(e,n,i,o){o===void 0&&(o=!1);var a=0;n&&e&&(this._native.clearColor(e.r,e.g,e.b,e.a!==void 0?e.a:1),a|=this._native.CLEAR_FLAG_COLOR),i&&(this._native.clearDepth(1),a|=this._native.CLEAR_FLAG_DEPTH),o&&(this._native.clearStencil(0),a|=this._native.CLEAR_FLAG_STENCIL),this._native.clear(a)},t.prototype.createIndexBuffer=function(e,n){var i=this._normalizeIndexData(e),o=new lu;if(o.references=1,o.is32Bits=i.BYTES_PER_ELEMENT===4,i.length){if(o.nativeIndexBuffer=this._native.createIndexBuffer(i,n!=null&&n),o.nativeVertexBuffer===this.INVALID_HANDLE)throw new Error("Could not create a native index buffer.")}else o.nativeVertexBuffer=this.INVALID_HANDLE;return o},t.prototype.createVertexBuffer=function(e,n){var i=new lu;if(i.references=1,i.nativeVertexBuffer=this._native.createVertexBuffer(ArrayBuffer.isView(e)?e:new Float32Array(e),n!=null&&n),i.nativeVertexBuffer===this.INVALID_HANDLE)throw new Error("Could not create a native vertex buffer.");return i},t.prototype._recordVertexArrayObject=function(e,n,i,o){i&&this._native.recordIndexBuffer(e,i.nativeIndexBuffer);for(var a=o.getAttributesNames(),s=0;s=0){var p=n[a[s]];if(p){var b=p.getBuffer();b&&this._native.recordVertexBuffer(e,b.nativeVertexBuffer,d,p.byteOffset,p.byteStride,p.getSize(),this._getNativeAttribType(p.type),p.normalized)}}}},t.prototype.bindBuffers=function(e,n,i){this._boundBuffersVertexArray&&this._native.deleteVertexArray(this._boundBuffersVertexArray),this._boundBuffersVertexArray=this._native.createVertexArray(),this._recordVertexArrayObject(this._boundBuffersVertexArray,e,n,i),this._native.bindVertexArray(this._boundBuffersVertexArray)},t.prototype.recordVertexArrayObject=function(e,n,i){var o=this._native.createVertexArray();return this._recordVertexArrayObject(o,e,n,i),o},t.prototype.bindVertexArrayObject=function(e){this._native.bindVertexArray(e)},t.prototype.releaseVertexArrayObject=function(e){this._native.deleteVertexArray(e)},t.prototype.getAttributes=function(e,n){var i=e;return this._native.getAttributes(i.nativeProgram,n)},t.prototype.drawElementsType=function(e,n,i,o){this._drawCalls.addCount(1,!1),this._native.drawIndexed(e,n,i)},t.prototype.drawArraysType=function(e,n,i,o){this._drawCalls.addCount(1,!1),this._native.draw(e,n,i)},t.prototype.createPipelineContext=function(){return new op},t.prototype._preparePipelineContext=function(e,n,i,o,a,s,d){var p=e;p.nativeProgram=o?this.createRawShaderProgram(e,n,i,void 0,d):this.createShaderProgram(e,n,i,s,void 0,d)},t.prototype._isRenderingStateCompiled=function(e){return!0},t.prototype._executeWhenRenderingStateIsCompiled=function(e,n){n()},t.prototype.createRawShaderProgram=function(e,n,i,o,a){throw new Error("Not Supported")},t.prototype.createShaderProgram=function(e,n,i,o,a,s){this.onBeforeShaderCompilationObservable.notifyObservers(this);var d=new Ss(n);d.processCode(),n=d.code;var p=new Ss(i);p.processCode(),i=p.code,n=Bt.a._ConcatenateShader(n,o),i=Bt.a._ConcatenateShader(i,o);var b=this._native.createProgram(n,i);return this.onAfterShaderCompilationObservable.notifyObservers(this),b},t.prototype._setProgram=function(e){this._currentProgram!==e&&(this._native.setProgram(e),this._currentProgram=e)},t.prototype._releaseEffect=function(e){},t.prototype._deletePipelineContext=function(e){},t.prototype.getUniforms=function(e,n){var i=e;return this._native.getUniforms(i.nativeProgram,n)},t.prototype.bindUniformBlock=function(e,n,i){throw new Error("Not Implemented")},t.prototype.bindSamplers=function(e){var n=e.getPipelineContext();this._setProgram(n.nativeProgram);for(var i=e.getSamplers(),o=0;o-1?e.substring(ue).toLowerCase():""),ve=null,Te=0,Re=Ue.a._TextureLoaders;Te-1?e.substring(J).toLowerCase():""))===".env"){if(i&&i.length===6)throw new Error("Multi-file loading not allowed on env files.");this._loadFile(e,function(se){return function(ce){var ue=Ei.GetEnvInfo(ce);if(z.width=ue.width,z.height=ue.width,Ei.UploadEnvSpherical(z,ue),ue.version!==1)throw new Error('Unsupported babylon environment map version "'+ue.version+'"');var fe=ue.specular;if(!fe)throw new Error("Nothing else parsed so far");z._lodGenerationScale=fe.lodGenerationScale;var ve=Ei.CreateImageDataArrayBufferViews(ce,ue);z.format=h.a.TEXTUREFORMAT_RGBA,z.type=h.a.TEXTURETYPE_UNSIGNED_INT,z.generateMipMaps=!0,z.getEngine().updateTextureSamplingMode(we.a.TRILINEAR_SAMPLINGMODE,z),z._isRGBD=!0,z.invertY=!0,F._native.loadCubeTextureWithMips(z._webGLTexture,ve,function(){z.isReady=!0,a&&a()},function(){throw new Error("Could not load a native cube texture.")})}(new Uint8Array(se))},void 0,void 0,!0,function(se,ce){s&&se&&s(se.status+" "+se.statusText,ce)})}else{if(!i||i.length!==6)throw new Error("Cannot load cubemap because 6 files were not defined");var ie=[i[0],i[3],i[1],i[4],i[2],i[5]];Promise.all(ie.map(function(se){return Xe.b.LoadFileAsync(se).then(function(ce){return new Uint8Array(ce)})})).then(function(se){return new Promise(function(ce,ue){F._native.loadCubeTexture(z._webGLTexture,se,!o,ce,ue)})}).then(function(){z.isReady=!0,a&&a()},function(se){s&&s("Failed to load cubemap: "+se.message,se)})}return this._internalTexturesCache.push(z),z},t.prototype.createRenderTargetTexture=function(e,n){var i=new Ll.a;n!==void 0&&typeof n=="object"?(i.generateMipMaps=n.generateMipMaps,i.generateDepthBuffer=n.generateDepthBuffer===void 0||n.generateDepthBuffer,i.generateStencilBuffer=i.generateDepthBuffer&&n.generateStencilBuffer,i.type=n.type===void 0?h.a.TEXTURETYPE_UNSIGNED_INT:n.type,i.samplingMode=n.samplingMode===void 0?h.a.TEXTURE_TRILINEAR_SAMPLINGMODE:n.samplingMode,i.format=n.format===void 0?h.a.TEXTUREFORMAT_RGBA:n.format):(i.generateMipMaps=n,i.generateDepthBuffer=!0,i.generateStencilBuffer=!1,i.type=h.a.TEXTURETYPE_UNSIGNED_INT,i.samplingMode=h.a.TEXTURE_TRILINEAR_SAMPLINGMODE,i.format=h.a.TEXTUREFORMAT_RGBA),(i.type!==h.a.TEXTURETYPE_FLOAT||this._caps.textureFloatLinearFiltering)&&(i.type!==h.a.TEXTURETYPE_HALF_FLOAT||this._caps.textureHalfFloatLinearFiltering)||(i.samplingMode=h.a.TEXTURE_NEAREST_SAMPLINGMODE);var o=new uu(this,Ct.b.RenderTarget),a=e.width||e,s=e.height||e;i.type!==h.a.TEXTURETYPE_FLOAT||this._caps.textureFloat||(i.type=h.a.TEXTURETYPE_UNSIGNED_INT,l.a.Warn("Float textures are not supported. Render target forced to TEXTURETYPE_UNSIGNED_BYTE type"));var d=this._native.createFramebuffer(o._webGLTexture,a,s,this._getNativeTextureFormat(i.format,i.type),i.samplingMode,!!i.generateStencilBuffer,i.generateDepthBuffer,!!i.generateMipMaps);return o._framebuffer=d,o.baseWidth=a,o.baseHeight=s,o.width=a,o.height=s,o.isReady=!0,o.samples=1,o.generateMipMaps=!!i.generateMipMaps,o.samplingMode=i.samplingMode,o.type=i.type,o.format=i.format,o._generateDepthBuffer=i.generateDepthBuffer,o._generateStencilBuffer=!!i.generateStencilBuffer,this._internalTexturesCache.push(o),o},t.prototype.updateTextureSamplingMode=function(e,n){if(n._webGLTexture){var i=this._getNativeSamplingMode(e);this._native.setTextureSampling(n._webGLTexture,i)}n.samplingMode=e},t.prototype.bindFramebuffer=function(e,n,i,o,a){if(n)throw new Error("Cuboid frame buffers are not yet supported in NativeEngine.");if(i||o)throw new Error("Required width/height for frame buffers not yet supported in NativeEngine.");e._depthStencilTexture?this._bindUnboundFramebuffer(e._depthStencilTexture._framebuffer):this._bindUnboundFramebuffer(e._framebuffer)},t.prototype.unBindFramebuffer=function(e,n,i){n===void 0&&(n=!1),n&&l.a.Warn("Disabling mipmap generation not yet supported in NativeEngine. Ignoring."),i&&i(),this._bindUnboundFramebuffer(null)},t.prototype.createDynamicVertexBuffer=function(e){return this.createVertexBuffer(e,!0)},t.prototype.updateDynamicIndexBuffer=function(e,n,i){i===void 0&&(i=0);var o=e,a=this._normalizeIndexData(n);o.is32Bits=a.BYTES_PER_ELEMENT===4,this._native.updateDynamicIndexBuffer(o.nativeIndexBuffer,a,i)},t.prototype.updateDynamicVertexBuffer=function(e,n,i,o){var a=e,s=ArrayBuffer.isView(n)?n:new Float32Array(n);this._native.updateDynamicVertexBuffer(a.nativeVertexBuffer,s,i??0,o??s.byteLength)},t.prototype._setTexture=function(e,n,i,o){o===void 0&&(o=!1);var a,s=this._boundUniforms[e];if(!s)return!1;if(!n)return this._boundTexturesCache[e]!=null&&(this._activeChannel=e,this._native.setTexture(s,null)),!1;if(n.video)this._activeChannel=e,n.update();else if(n.delayLoadState===h.a.DELAYLOADSTATE_NOTLOADED)return n.delayLoad(),!1;return a=o?n.depthStencilTexture:n.isReady()?n.getInternalTexture():n.isCube?this.emptyCubeTexture:n.is3D?this.emptyTexture3D:n.is2DArray?this.emptyTexture2DArray:this.emptyTexture,this._activeChannel=e,!(!a||!a._webGLTexture)&&(this._native.setTextureWrapMode(a._webGLTexture,this._getAddressMode(n.wrapU),this._getAddressMode(n.wrapV),this._getAddressMode(n.wrapR)),this._updateAnisotropicLevel(n),this._native.setTexture(s,a._webGLTexture),!0)},t.prototype._updateAnisotropicLevel=function(e){var n=e.getInternalTexture(),i=e.anisotropicFilteringLevel;n&&n._webGLTexture&&n._cachedAnisotropicFilteringLevel!==i&&(this._native.setTextureAnisotropicLevel(n._webGLTexture,i),n._cachedAnisotropicFilteringLevel=i)},t.prototype._getAddressMode=function(e){switch(e){case h.a.TEXTURE_WRAP_ADDRESSMODE:return this._native.ADDRESS_MODE_WRAP;case h.a.TEXTURE_CLAMP_ADDRESSMODE:return this._native.ADDRESS_MODE_CLAMP;case h.a.TEXTURE_MIRROR_ADDRESSMODE:return this._native.ADDRESS_MODE_MIRROR;default:throw new Error("Unexpected wrap mode: "+e+".")}},t.prototype._bindTexture=function(e,n){var i=this._boundUniforms[e];i&&this._native.setTexture(i,n._webGLTexture)},t.prototype._deleteBuffer=function(e){e.nativeIndexBuffer&&(this._native.deleteIndexBuffer(e.nativeIndexBuffer),delete e.nativeIndexBuffer),e.nativeVertexBuffer&&(this._native.deleteVertexBuffer(e.nativeVertexBuffer),delete e.nativeVertexBuffer)},t.prototype.releaseEffects=function(){},t.prototype._uploadCompressedDataToTextureDirectly=function(e,n,i,o,a,s,d){throw new Error("_uploadCompressedDataToTextureDirectly not implemented.")},t.prototype._uploadDataToTextureDirectly=function(e,n,i,o){throw new Error("_uploadDataToTextureDirectly not implemented.")},t.prototype._uploadArrayBufferViewToTexture=function(e,n,i,o){throw new Error("_uploadArrayBufferViewToTexture not implemented.")},t.prototype._uploadImageToTexture=function(e,n,i,o){throw new Error("_uploadArrayBufferViewToTexture not implemented.")},t.prototype._getNativeSamplingMode=function(e){switch(e){case h.a.TEXTURE_NEAREST_NEAREST:return this._native.TEXTURE_NEAREST_NEAREST;case h.a.TEXTURE_LINEAR_LINEAR:return this._native.TEXTURE_LINEAR_LINEAR;case h.a.TEXTURE_LINEAR_LINEAR_MIPLINEAR:return this._native.TEXTURE_LINEAR_LINEAR_MIPLINEAR;case h.a.TEXTURE_NEAREST_NEAREST_MIPNEAREST:return this._native.TEXTURE_NEAREST_NEAREST_MIPNEAREST;case h.a.TEXTURE_NEAREST_LINEAR_MIPNEAREST:return this._native.TEXTURE_NEAREST_LINEAR_MIPNEAREST;case h.a.TEXTURE_NEAREST_LINEAR_MIPLINEAR:return this._native.TEXTURE_NEAREST_LINEAR_MIPLINEAR;case h.a.TEXTURE_NEAREST_LINEAR:return this._native.TEXTURE_NEAREST_LINEAR;case h.a.TEXTURE_NEAREST_NEAREST_MIPLINEAR:return this._native.TEXTURE_NEAREST_NEAREST_MIPLINEAR;case h.a.TEXTURE_LINEAR_NEAREST_MIPNEAREST:return this._native.TEXTURE_LINEAR_NEAREST_MIPNEAREST;case h.a.TEXTURE_LINEAR_NEAREST_MIPLINEAR:return this._native.TEXTURE_LINEAR_NEAREST_MIPLINEAR;case h.a.TEXTURE_LINEAR_LINEAR_MIPNEAREST:return this._native.TEXTURE_LINEAR_LINEAR_MIPNEAREST;case h.a.TEXTURE_LINEAR_NEAREST:return this._native.TEXTURE_LINEAR_NEAREST;default:throw new Error("Unsupported sampling mode: "+e+".")}},t.prototype._getNativeTextureFormat=function(e,n){if(e==h.a.TEXTUREFORMAT_RGBA&&n==h.a.TEXTURETYPE_UNSIGNED_INT)return this._native.TEXTURE_FORMAT_RGBA8;if(e==h.a.TEXTUREFORMAT_RGBA&&n==h.a.TEXTURETYPE_FLOAT)return this._native.TEXTURE_FORMAT_RGBA32F;throw new Error("Unsupported texture format or type: format "+e+", type "+n+".")},t.prototype._getNativeAlphaMode=function(e){switch(e){case h.a.ALPHA_DISABLE:return this._native.ALPHA_DISABLE;case h.a.ALPHA_ADD:return this._native.ALPHA_ADD;case h.a.ALPHA_COMBINE:return this._native.ALPHA_COMBINE;case h.a.ALPHA_SUBTRACT:return this._native.ALPHA_SUBTRACT;case h.a.ALPHA_MULTIPLY:return this._native.ALPHA_MULTIPLY;case h.a.ALPHA_MAXIMIZED:return this._native.ALPHA_MAXIMIZED;case h.a.ALPHA_ONEONE:return this._native.ALPHA_ONEONE;case h.a.ALPHA_PREMULTIPLIED:return this._native.ALPHA_PREMULTIPLIED;case h.a.ALPHA_PREMULTIPLIED_PORTERDUFF:return this._native.ALPHA_PREMULTIPLIED_PORTERDUFF;case h.a.ALPHA_INTERPOLATE:return this._native.ALPHA_INTERPOLATE;case h.a.ALPHA_SCREENMODE:return this._native.ALPHA_SCREENMODE;default:throw new Error("Unsupported alpha mode: "+e+".")}},t.prototype._getNativeAttribType=function(e){switch(e){case Oe.b.UNSIGNED_BYTE:return this._native.ATTRIB_TYPE_UINT8;case Oe.b.SHORT:return this._native.ATTRIB_TYPE_INT16;case Oe.b.FLOAT:return this._native.ATTRIB_TYPE_FLOAT;default:throw new Error("Unsupported attribute type: "+e+".")}},t}(Ue.a),sp=f(74),Wo=function(){function r(){}return r.COPY=1,r.CUT=2,r.PASTE=3,r}(),cp=function(){function r(t,e){this.type=t,this.event=e}return r.GetTypeFromCharacter=function(t){switch(t){case 67:return Wo.COPY;case 86:return Wo.PASTE;case 88:return Wo.CUT;default:return-1}},r}(),As=f(83),Ai=f(69);(function(r){r[r.Clean=0]="Clean",r[r.Stop=1]="Stop",r[r.Sync=2]="Sync",r[r.NoSync=3]="NoSync"})(Si||(Si={}));var Ut=function(){function r(){}return Object.defineProperty(r,"ForceFullSceneLoadingForIncremental",{get:function(){return Ai.a.ForceFullSceneLoadingForIncremental},set:function(t){Ai.a.ForceFullSceneLoadingForIncremental=t},enumerable:!1,configurable:!0}),Object.defineProperty(r,"ShowLoadingScreen",{get:function(){return Ai.a.ShowLoadingScreen},set:function(t){Ai.a.ShowLoadingScreen=t},enumerable:!1,configurable:!0}),Object.defineProperty(r,"loggingLevel",{get:function(){return Ai.a.loggingLevel},set:function(t){Ai.a.loggingLevel=t},enumerable:!1,configurable:!0}),Object.defineProperty(r,"CleanBoneMatrixWeights",{get:function(){return Ai.a.CleanBoneMatrixWeights},set:function(t){Ai.a.CleanBoneMatrixWeights=t},enumerable:!1,configurable:!0}),r.GetDefaultPlugin=function(){return r._registeredPlugins[".babylon"]},r._GetPluginForExtension=function(t){var e=r._registeredPlugins[t];return e||(l.a.Warn("Unable to find a plugin to load "+t+" files. Trying to use .babylon default plugin. To load from a specific filetype (eg. gltf) see: https://doc.babylonjs.com/how_to/load_from_any_file_type"),r.GetDefaultPlugin())},r._GetPluginForDirectLoad=function(t){for(var e in r._registeredPlugins){var n=r._registeredPlugins[e].plugin;if(n.canDirectLoad&&n.canDirectLoad(t))return r._registeredPlugins[e]}return r.GetDefaultPlugin()},r._GetPluginForFilename=function(t){var e=t.indexOf("?");e!==-1&&(t=t.substring(0,e));var n=t.lastIndexOf("."),i=t.substring(n,t.length).toLowerCase();return r._GetPluginForExtension(i)},r._GetDirectLoad=function(t){return t.substr(0,5)==="data:"?t.substr(5):null},r._LoadData=function(t,e,n,i,o,a,s){var d,p=r._GetDirectLoad(t.name),b=s?r._GetPluginForExtension(s):p?r._GetPluginForDirectLoad(t.name):r._GetPluginForFilename(t.name);if(!(d=b.plugin.createPlugin!==void 0?b.plugin.createPlugin():b.plugin))throw"The loader plugin corresponding to the file type you are trying to load has not been found. If using es6, please import the plugin you wish to use before.";if(r.OnPluginActivatedObservable.notifyObservers(d),p){if(d.directLoad){var x=d.directLoad(e,p);x.then?x.then(function(Ae){n(d,Ae)}).catch(function(Ae){o("Error in directLoad of _loadData: "+Ae,Ae)}):n(d,x)}else n(d,p);return d}var O=b.isBinary,B=function(Ae,Ee){e.isDisposed?o("Scene has been disposed"):n(d,Ae,Ee)},F=null,z=!1,J=d.onDisposeObservable;J&&J.add(function(){z=!0,F&&(F.abort(),F=null),a()});var ie=function(){if(!z){var Ae=function(Se,Le){B(Se,Le?Le.responseURL:void 0)},Ee=function(Se){o(Se.message,Se)};F=d.requestFile?d.requestFile(e,t.url,Ae,i,O,Ee):e._requestFile(t.url,Ae,i,!0,O,Ee)}},se=t.file||As.a.FilesToLoad[t.name.toLowerCase()];if(t.rootUrl.indexOf("file:")===-1||t.rootUrl.indexOf("file:")!==-1&&!se){var ce=e.getEngine(),ue=ce.enableOfflineSupport;if(ue){for(var fe=!1,ve=0,Te=e.disableOfflineSupportExceptionRules;veF.snapDistance?(Fe=Math.floor(Math.abs(Re)/F.snapDistance),Re<0&&(Fe*=-1),Re%=F.snapDistance,Ae.scaleToRef(F.snapDistance*Fe,Ae),Me=!0):Ae.scaleInPlace(0)),u.a.ScalingToRef(1+Ae.x,1+Ae.y,1+Ae.z,F._tmpMatrix2),F._tmpMatrix2.multiplyToRef(F.attachedNode.getWorldMatrix(),F._tmpMatrix),F._tmpMatrix.decompose(F._tmpVector),Math.abs(F._tmpVector.x)<1e5&&Math.abs(F._tmpVector.y)<1e5&&Math.abs(F._tmpVector.z)<1e5&&F.attachedNode.getWorldMatrix().copyFrom(F._tmpMatrix),Me&&(Ee.snapDistance=F.snapDistance*Fe,F.onSnapObservable.notifyObservers(Ee)),F._matrixChanged()}}),F.dragBehavior.onDragStartObservable.add(function(){F._dragging=!0}),F.dragBehavior.onDragObservable.add(function(xe){return ve(xe.dragDistance)}),F.dragBehavior.onDragEndObservable.add(Te),(p=(d=(s=o?.uniformScaleGizmo)===null||s===void 0?void 0:s.dragBehavior)===null||d===void 0?void 0:d.onDragObservable)===null||p===void 0||p.add(function(xe){return ve(xe.delta.y)}),(O=(x=(b=o?.uniformScaleGizmo)===null||b===void 0?void 0:b.dragBehavior)===null||x===void 0?void 0:x.onDragEndObservable)===null||O===void 0||O.add(Te);var Se={gizmoMeshes:[J,ie],colliderMeshes:[se.arrowMesh,se.arrowTail],material:F._coloredMaterial,hoverMaterial:F._hoverMaterial,disableMaterial:F._disableMaterial,active:!1};(B=F._parent)===null||B===void 0||B.addToAxisCache(F._gizmoMesh,Se),F._pointerObserver=i.utilityLayerScene.onPointerObservable.add(function(xe){var Ne;if(!F._customMeshSet&&(F._isHovered=Se.colliderMeshes.indexOf((Ne=xe?.pickInfo)===null||Ne===void 0?void 0:Ne.pickedMesh)!=-1,!F._parent)){var Me=F._isHovered||F._dragging?F._hoverMaterial:F._coloredMaterial;Se.gizmoMeshes.forEach(function(Fe){Fe.material=Me,Fe.color&&(Fe.color=Me.diffuseColor)})}});var Le=i._getSharedGizmoLight();return Le.includedOnlyMeshes=Le.includedOnlyMeshes.concat(F._rootMesh.getChildMeshes()),F}return Object(c.d)(t,r),t.prototype._createGizmoMesh=function(e,n,i){i===void 0&&(i=!1);var o=Tr.a.CreateBox("yPosMesh",{size:.4*(1+(n-1)/4)},this.gizmoLayer.utilityLayerScene),a=fi.a.CreateCylinder("cylinder",{diameterTop:.005*n,height:.275,diameterBottom:.005*n,tessellation:96},this.gizmoLayer.utilityLayerScene);return o.scaling.scaleInPlace(.1),o.material=this._coloredMaterial,o.rotation.x=Math.PI/2,o.position.z+=.3,a.material=this._coloredMaterial,a.position.z+=.1375,a.rotation.x=Math.PI/2,i&&(o.visibility=0,a.visibility=0),e.addChild(o),e.addChild(a),{arrowMesh:o,arrowTail:a}},t.prototype._attachedNodeChanged=function(e){this.dragBehavior&&(this.dragBehavior.enabled=!!e)},Object.defineProperty(t.prototype,"isEnabled",{get:function(){return this._isEnabled},set:function(e){this._isEnabled=e,e?this._parent&&(this.attachedMesh=this._parent.attachedMesh,this.attachedNode=this._parent.attachedNode):(this.attachedMesh=null,this.attachedNode=null)},enumerable:!1,configurable:!0}),t.prototype.dispose=function(){this.onSnapObservable.clear(),this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver),this.dragBehavior.detach(),this._gizmoMesh&&this._gizmoMesh.dispose(),[this._coloredMaterial,this._hoverMaterial,this._disableMaterial].forEach(function(e){e&&e.dispose()}),r.prototype.dispose.call(this)},t.prototype.setCustomMesh=function(e,n){var i=this;n===void 0&&(n=!1),r.prototype.setCustomMesh.call(this,e),n&&(this._rootMesh.getChildMeshes().forEach(function(o){o.material=i._coloredMaterial,o.color&&(o.color=i._coloredMaterial.diffuseColor)}),this._customMeshSet=!1)},t}(Bn.a),Un=f(45),cn=f(40),du=function(r){function t(e,n){e===void 0&&(e=M.a.Gray()),n===void 0&&(n=On.a.DefaultKeepDepthUtilityLayer);var i=r.call(this,n)||this;i._boundingDimensions=new u.e(1,1,1),i._renderObserver=null,i._pointerObserver=null,i._scaleDragSpeed=.2,i._tmpQuaternion=new u.b,i._tmpVector=new u.e(0,0,0),i._tmpRotationMatrix=new u.a,i.ignoreChildren=!1,i.includeChildPredicate=null,i.rotationSphereSize=.1,i.scaleBoxSize=.1,i.fixedDragMeshScreenSize=!1,i.fixedDragMeshBoundsSize=!1,i.fixedDragMeshScreenSizeDistanceFactor=10,i.onDragStartObservable=new R.c,i.onScaleBoxDragObservable=new R.c,i.onScaleBoxDragEndObservable=new R.c,i.onRotationSphereDragObservable=new R.c,i.onRotationSphereDragEndObservable=new R.c,i.scalePivot=null,i._existingMeshScale=new u.e,i._dragMesh=null,i.pointerDragBehavior=new vi.a,i.updateScale=!1,i._anchorMesh=new Dt.a("anchor",n.utilityLayerScene),i.coloredMaterial=new Ft.a("",n.utilityLayerScene),i.coloredMaterial.disableLighting=!0,i.hoverColoredMaterial=new Ft.a("",n.utilityLayerScene),i.hoverColoredMaterial.disableLighting=!0,i._lineBoundingBox=new Dt.a("",n.utilityLayerScene),i._lineBoundingBox.rotationQuaternion=new u.b;var o=[];o.push(cn.a.CreateLines("lines",{points:[new u.e(0,0,0),new u.e(i._boundingDimensions.x,0,0)]},n.utilityLayerScene)),o.push(cn.a.CreateLines("lines",{points:[new u.e(0,0,0),new u.e(0,i._boundingDimensions.y,0)]},n.utilityLayerScene)),o.push(cn.a.CreateLines("lines",{points:[new u.e(0,0,0),new u.e(0,0,i._boundingDimensions.z)]},n.utilityLayerScene)),o.push(cn.a.CreateLines("lines",{points:[new u.e(i._boundingDimensions.x,0,0),new u.e(i._boundingDimensions.x,i._boundingDimensions.y,0)]},n.utilityLayerScene)),o.push(cn.a.CreateLines("lines",{points:[new u.e(i._boundingDimensions.x,0,0),new u.e(i._boundingDimensions.x,0,i._boundingDimensions.z)]},n.utilityLayerScene)),o.push(cn.a.CreateLines("lines",{points:[new u.e(0,i._boundingDimensions.y,0),new u.e(i._boundingDimensions.x,i._boundingDimensions.y,0)]},n.utilityLayerScene)),o.push(cn.a.CreateLines("lines",{points:[new u.e(0,i._boundingDimensions.y,0),new u.e(0,i._boundingDimensions.y,i._boundingDimensions.z)]},n.utilityLayerScene)),o.push(cn.a.CreateLines("lines",{points:[new u.e(0,0,i._boundingDimensions.z),new u.e(i._boundingDimensions.x,0,i._boundingDimensions.z)]},n.utilityLayerScene)),o.push(cn.a.CreateLines("lines",{points:[new u.e(0,0,i._boundingDimensions.z),new u.e(0,i._boundingDimensions.y,i._boundingDimensions.z)]},n.utilityLayerScene)),o.push(cn.a.CreateLines("lines",{points:[new u.e(i._boundingDimensions.x,i._boundingDimensions.y,i._boundingDimensions.z),new u.e(0,i._boundingDimensions.y,i._boundingDimensions.z)]},n.utilityLayerScene)),o.push(cn.a.CreateLines("lines",{points:[new u.e(i._boundingDimensions.x,i._boundingDimensions.y,i._boundingDimensions.z),new u.e(i._boundingDimensions.x,0,i._boundingDimensions.z)]},n.utilityLayerScene)),o.push(cn.a.CreateLines("lines",{points:[new u.e(i._boundingDimensions.x,i._boundingDimensions.y,i._boundingDimensions.z),new u.e(i._boundingDimensions.x,i._boundingDimensions.y,0)]},n.utilityLayerScene)),o.forEach(function(J){J.color=e,J.position.addInPlace(new u.e(-i._boundingDimensions.x/2,-i._boundingDimensions.y/2,-i._boundingDimensions.z/2)),J.isPickable=!1,i._lineBoundingBox.addChild(J)}),i._rootMesh.addChild(i._lineBoundingBox),i.setColor(e),i._rotateSpheresParent=new Dt.a("",n.utilityLayerScene),i._rotateSpheresParent.rotationQuaternion=new u.b;for(var a=function(J){var ie=Un.a.CreateSphere("",{diameter:1},n.utilityLayerScene);ie.rotationQuaternion=new u.b,ie.material=s.coloredMaterial,(x=new vi.a({})).moveAttached=!1,x.updateDragPlane=!1,ie.addBehavior(x);var se=new u.e(1,0,0),ce=0;x.onDragStartObservable.add(function(){se.copyFrom(ie.forward),ce=0}),x.onDragObservable.add(function(ue){if(i.onRotationSphereDragObservable.notifyObservers({}),i.attachedMesh){var fe=i.attachedMesh.parent;if(fe&&fe.scaling&&fe.scaling.isNonUniformWithinEpsilon(.001))return void l.a.Warn("BoundingBoxGizmo controls are not supported on child meshes with non-uniform parent scaling");jn.a._RemoveAndStorePivotPoint(i.attachedMesh);var ve=se,Te=ue.dragPlaneNormal.scale(u.e.Dot(ue.dragPlaneNormal,ve)),Re=ve.subtract(Te).normalizeToNew(),Ae=u.e.Dot(Re,ue.delta)<0?Math.abs(ue.delta.length()):-Math.abs(ue.delta.length());Ae=Ae/i._boundingDimensions.length()*i._anchorMesh.scaling.length(),i.attachedMesh.rotationQuaternion||(i.attachedMesh.rotationQuaternion=u.b.RotationYawPitchRoll(i.attachedMesh.rotation.y,i.attachedMesh.rotation.x,i.attachedMesh.rotation.z)),i._anchorMesh.rotationQuaternion||(i._anchorMesh.rotationQuaternion=u.b.RotationYawPitchRoll(i._anchorMesh.rotation.y,i._anchorMesh.rotation.x,i._anchorMesh.rotation.z)),ce+=Ae,Math.abs(ce)<=2*Math.PI&&(J>=8?u.b.RotationYawPitchRollToRef(0,0,Ae,i._tmpQuaternion):J>=4?u.b.RotationYawPitchRollToRef(Ae,0,0,i._tmpQuaternion):u.b.RotationYawPitchRollToRef(0,Ae,0,i._tmpQuaternion),i._anchorMesh.addChild(i.attachedMesh),i._anchorMesh.rotationQuaternion.multiplyToRef(i._tmpQuaternion,i._anchorMesh.rotationQuaternion),i._anchorMesh.removeChild(i.attachedMesh),i.attachedMesh.setParent(fe)),i.updateBoundingBox(),jn.a._RestorePivotPoint(i.attachedMesh)}i._updateDummy()}),x.onDragStartObservable.add(function(){i.onDragStartObservable.notifyObservers({}),i._selectNode(ie)}),x.onDragEndObservable.add(function(){i.onRotationSphereDragEndObservable.notifyObservers({}),i._selectNode(null),i._updateDummy()}),s._rotateSpheresParent.addChild(ie)},s=this,d=0;d<12;d++)a(d);i._rootMesh.addChild(i._rotateSpheresParent),i._scaleBoxesParent=new Dt.a("",n.utilityLayerScene),i._scaleBoxesParent.rotationQuaternion=new u.b;for(var p=0;p<3;p++)for(var b=0;b<3;b++)for(var x,O=function(){var J=(p===1?1:0)+(b===1?1:0)+(F===1?1:0);if(J===1||J===3)return"continue";var ie=Tr.a.CreateBox("",{size:1},n.utilityLayerScene);ie.material=B.coloredMaterial,ie.metadata=J===2;var se=new u.e(p-1,b-1,F-1).normalize();(x=new vi.a({dragAxis:se})).updateDragPlane=!1,x.moveAttached=!1,ie.addBehavior(x),x.onDragObservable.add(function(ce){if(i.onScaleBoxDragObservable.notifyObservers({}),i.attachedMesh){var ue=i.attachedMesh.parent;if(ue&&ue.scaling&&ue.scaling.isNonUniformWithinEpsilon(.001))return void l.a.Warn("BoundingBoxGizmo controls are not supported on child meshes with non-uniform parent scaling");jn.a._RemoveAndStorePivotPoint(i.attachedMesh);var fe=ce.dragDistance/i._boundingDimensions.length()*i._anchorMesh.scaling.length(),ve=new u.e(fe,fe,fe);J===2&&(ve.x*=Math.abs(se.x),ve.y*=Math.abs(se.y),ve.z*=Math.abs(se.z)),ve.scaleInPlace(i._scaleDragSpeed),i.updateBoundingBox(),i.scalePivot?(i.attachedMesh.getWorldMatrix().getRotationMatrixToRef(i._tmpRotationMatrix),i._boundingDimensions.scaleToRef(.5,i._tmpVector),u.e.TransformCoordinatesToRef(i._tmpVector,i._tmpRotationMatrix,i._tmpVector),i._anchorMesh.position.subtractInPlace(i._tmpVector),i._boundingDimensions.multiplyToRef(i.scalePivot,i._tmpVector),u.e.TransformCoordinatesToRef(i._tmpVector,i._tmpRotationMatrix,i._tmpVector),i._anchorMesh.position.addInPlace(i._tmpVector)):(ie.absolutePosition.subtractToRef(i._anchorMesh.position,i._tmpVector),i._anchorMesh.position.subtractInPlace(i._tmpVector)),i._anchorMesh.addChild(i.attachedMesh),i._anchorMesh.scaling.addInPlace(ve),(i._anchorMesh.scaling.x<0||i._anchorMesh.scaling.y<0||i._anchorMesh.scaling.z<0)&&i._anchorMesh.scaling.subtractInPlace(ve),i._anchorMesh.removeChild(i.attachedMesh),i.attachedMesh.setParent(ue),jn.a._RestorePivotPoint(i.attachedMesh)}i._updateDummy()}),x.onDragStartObservable.add(function(){i.onDragStartObservable.notifyObservers({}),i._selectNode(ie)}),x.onDragEndObservable.add(function(){i.onScaleBoxDragEndObservable.notifyObservers({}),i._selectNode(null),i._updateDummy()}),B._scaleBoxesParent.addChild(ie)},B=this,F=0;F<3;F++)O();i._rootMesh.addChild(i._scaleBoxesParent);var z=new Array;return i._pointerObserver=n.utilityLayerScene.onPointerObservable.add(function(J){z[J.event.pointerId]?J.pickInfo&&J.pickInfo.pickedMesh!=z[J.event.pointerId]&&(z[J.event.pointerId].material=i.coloredMaterial,delete z[J.event.pointerId]):i._rotateSpheresParent.getChildMeshes().concat(i._scaleBoxesParent.getChildMeshes()).forEach(function(ie){J.pickInfo&&J.pickInfo.pickedMesh==ie&&(z[J.event.pointerId]=ie,ie.material=i.hoverColoredMaterial)})}),i._renderObserver=i.gizmoLayer.originalScene.onBeforeRenderObservable.add(function(){i.attachedMesh&&!i._existingMeshScale.equals(i.attachedMesh.scaling)?i.updateBoundingBox():(i.fixedDragMeshScreenSize||i.fixedDragMeshBoundsSize)&&(i._updateRotationSpheres(),i._updateScaleBoxes()),i._dragMesh&&i.attachedMesh&&i.pointerDragBehavior.dragging&&(i._lineBoundingBox.position.rotateByQuaternionToRef(i._rootMesh.rotationQuaternion,i._tmpVector),i.attachedMesh.setAbsolutePosition(i._dragMesh.position.add(i._tmpVector.scale(-1))))}),i.updateBoundingBox(),i}return Object(c.d)(t,r),t.prototype.setColor=function(e){this.coloredMaterial.emissiveColor=e,this.hoverColoredMaterial.emissiveColor=e.clone().add(new M.a(.3,.3,.3)),this._lineBoundingBox.getChildren().forEach(function(n){n.color&&(n.color=e)})},t.prototype._attachedNodeChanged=function(e){var n=this;if(e){jn.a._RemoveAndStorePivotPoint(e);var i=e.parent;this._anchorMesh.addChild(e),this._anchorMesh.removeChild(e),e.setParent(i),jn.a._RestorePivotPoint(e),this.updateBoundingBox(),e.getChildMeshes(!1).forEach(function(o){o.markAsDirty("scaling")}),this.gizmoLayer.utilityLayerScene.onAfterRenderObservable.addOnce(function(){n._updateDummy()})}},t.prototype._selectNode=function(e){this._rotateSpheresParent.getChildMeshes().concat(this._scaleBoxesParent.getChildMeshes()).forEach(function(n){n.isVisible=!e||n==e})},t.prototype.updateBoundingBox=function(){if(this.attachedMesh){jn.a._RemoveAndStorePivotPoint(this.attachedMesh);var e=this.attachedMesh.parent;this.attachedMesh.setParent(null);var n=null;this.attachedMesh.skeleton&&(n=this.attachedMesh.skeleton.overrideMesh,this.attachedMesh.skeleton.overrideMesh=null),this._update(),this.attachedMesh.rotationQuaternion||(this.attachedMesh.rotationQuaternion=u.b.RotationYawPitchRoll(this.attachedMesh.rotation.y,this.attachedMesh.rotation.x,this.attachedMesh.rotation.z)),this._anchorMesh.rotationQuaternion||(this._anchorMesh.rotationQuaternion=u.b.RotationYawPitchRoll(this._anchorMesh.rotation.y,this._anchorMesh.rotation.x,this._anchorMesh.rotation.z)),this._anchorMesh.rotationQuaternion.copyFrom(this.attachedMesh.rotationQuaternion),this._tmpQuaternion.copyFrom(this.attachedMesh.rotationQuaternion),this._tmpVector.copyFrom(this.attachedMesh.position),this.attachedMesh.rotationQuaternion.set(0,0,0,1),this.attachedMesh.position.set(0,0,0);var i=this.attachedMesh.getHierarchyBoundingVectors(!this.ignoreChildren,this.includeChildPredicate);i.max.subtractToRef(i.min,this._boundingDimensions),this._lineBoundingBox.scaling.copyFrom(this._boundingDimensions),this._lineBoundingBox.position.set((i.max.x+i.min.x)/2,(i.max.y+i.min.y)/2,(i.max.z+i.min.z)/2),this._rotateSpheresParent.position.copyFrom(this._lineBoundingBox.position),this._scaleBoxesParent.position.copyFrom(this._lineBoundingBox.position),this._lineBoundingBox.computeWorldMatrix(),this._anchorMesh.position.copyFrom(this._lineBoundingBox.absolutePosition),this.attachedMesh.rotationQuaternion.copyFrom(this._tmpQuaternion),this.attachedMesh.position.copyFrom(this._tmpVector),this.attachedMesh.setParent(e),this.attachedMesh.skeleton&&(this.attachedMesh.skeleton.overrideMesh=n)}this._updateRotationSpheres(),this._updateScaleBoxes(),this.attachedMesh&&(this._existingMeshScale.copyFrom(this.attachedMesh.scaling),jn.a._RestorePivotPoint(this.attachedMesh))},t.prototype._updateRotationSpheres=function(){for(var e=this._rotateSpheresParent.getChildMeshes(),n=0;n<3;n++)for(var i=0;i<2;i++)for(var o=0;o<2;o++){var a=4*n+2*i+o;if(n==0&&(e[a].position.set(this._boundingDimensions.x/2,this._boundingDimensions.y*i,this._boundingDimensions.z*o),e[a].position.addInPlace(new u.e(-this._boundingDimensions.x/2,-this._boundingDimensions.y/2,-this._boundingDimensions.z/2)),e[a].lookAt(u.e.Cross(e[a].position.normalizeToNew(),u.e.Right()).normalizeToNew().add(e[a].position))),n==1&&(e[a].position.set(this._boundingDimensions.x*i,this._boundingDimensions.y/2,this._boundingDimensions.z*o),e[a].position.addInPlace(new u.e(-this._boundingDimensions.x/2,-this._boundingDimensions.y/2,-this._boundingDimensions.z/2)),e[a].lookAt(u.e.Cross(e[a].position.normalizeToNew(),u.e.Up()).normalizeToNew().add(e[a].position))),n==2&&(e[a].position.set(this._boundingDimensions.x*i,this._boundingDimensions.y*o,this._boundingDimensions.z/2),e[a].position.addInPlace(new u.e(-this._boundingDimensions.x/2,-this._boundingDimensions.y/2,-this._boundingDimensions.z/2)),e[a].lookAt(u.e.Cross(e[a].position.normalizeToNew(),u.e.Forward()).normalizeToNew().add(e[a].position))),this.fixedDragMeshScreenSize&&this.gizmoLayer.utilityLayerScene.activeCamera){e[a].absolutePosition.subtractToRef(this.gizmoLayer.utilityLayerScene.activeCamera.position,this._tmpVector);var s=this.rotationSphereSize*this._tmpVector.length()/this.fixedDragMeshScreenSizeDistanceFactor;e[a].scaling.set(s,s,s)}else this.fixedDragMeshBoundsSize?e[a].scaling.set(this.rotationSphereSize*this._boundingDimensions.x,this.rotationSphereSize*this._boundingDimensions.y,this.rotationSphereSize*this._boundingDimensions.z):e[a].scaling.set(this.rotationSphereSize,this.rotationSphereSize,this.rotationSphereSize)}},t.prototype._updateScaleBoxes=function(){for(var e=this._scaleBoxesParent.getChildMeshes(),n=0,i=0;i<3;i++)for(var o=0;o<3;o++)for(var a=0;a<3;a++){var s=(i===1?1:0)+(o===1?1:0)+(a===1?1:0);if(s!==1&&s!==3){if(e[n])if(e[n].position.set(this._boundingDimensions.x*(i/2),this._boundingDimensions.y*(o/2),this._boundingDimensions.z*(a/2)),e[n].position.addInPlace(new u.e(-this._boundingDimensions.x/2,-this._boundingDimensions.y/2,-this._boundingDimensions.z/2)),this.fixedDragMeshScreenSize&&this.gizmoLayer.utilityLayerScene.activeCamera){e[n].absolutePosition.subtractToRef(this.gizmoLayer.utilityLayerScene.activeCamera.position,this._tmpVector);var d=this.scaleBoxSize*this._tmpVector.length()/this.fixedDragMeshScreenSizeDistanceFactor;e[n].scaling.set(d,d,d)}else this.fixedDragMeshBoundsSize?e[n].scaling.set(this.scaleBoxSize*this._boundingDimensions.x,this.scaleBoxSize*this._boundingDimensions.y,this.scaleBoxSize*this._boundingDimensions.z):e[n].scaling.set(this.scaleBoxSize,this.scaleBoxSize,this.scaleBoxSize);n++}}},t.prototype.setEnabledRotationAxis=function(e){this._rotateSpheresParent.getChildMeshes().forEach(function(n,i){i<4?n.setEnabled(e.indexOf("x")!=-1):i<8?n.setEnabled(e.indexOf("y")!=-1):n.setEnabled(e.indexOf("z")!=-1)})},t.prototype.setEnabledScaling=function(e,n){n===void 0&&(n=!1),this._scaleBoxesParent.getChildMeshes().forEach(function(i,o){var a=e;n&&i.metadata===!0&&(a=!1),i.setEnabled(a)})},t.prototype._updateDummy=function(){this._dragMesh&&(this._dragMesh.position.copyFrom(this._lineBoundingBox.getAbsolutePosition()),this._dragMesh.scaling.copyFrom(this._lineBoundingBox.scaling),this._dragMesh.rotationQuaternion.copyFrom(this._rootMesh.rotationQuaternion))},t.prototype.enableDragBehavior=function(){this._dragMesh=De.a.CreateBox("dummy",1,this.gizmoLayer.utilityLayerScene),this._dragMesh.visibility=0,this._dragMesh.rotationQuaternion=new u.b,this.pointerDragBehavior.useObjectOrientationForDragging=!1,this._dragMesh.addBehavior(this.pointerDragBehavior)},t.prototype.dispose=function(){this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver),this.gizmoLayer.originalScene.onBeforeRenderObservable.remove(this._renderObserver),this._lineBoundingBox.dispose(),this._rotateSpheresParent.dispose(),this._scaleBoxesParent.dispose(),this._dragMesh&&this._dragMesh.dispose(),r.prototype.dispose.call(this)},t.MakeNotPickableAndWrapInBoundingBox=function(e){var n=function(d){d.isPickable=!1,d.getChildMeshes().forEach(function(p){n(p)})};n(e),e.rotationQuaternion||(e.rotationQuaternion=u.b.RotationYawPitchRoll(e.rotation.y,e.rotation.x,e.rotation.z));var i=e.position.clone(),o=e.rotationQuaternion.clone();e.rotationQuaternion.set(0,0,0,1),e.position.set(0,0,0);var a=Tr.a.CreateBox("box",{size:1},e.getScene()),s=e.getHierarchyBoundingVectors();return s.max.subtractToRef(s.min,a.scaling),a.scaling.y===0&&(a.scaling.y=Gt.a),a.scaling.x===0&&(a.scaling.x=Gt.a),a.scaling.z===0&&(a.scaling.z=Gt.a),a.position.set((s.max.x+s.min.x)/2,(s.max.y+s.min.y)/2,(s.max.z+s.min.z)/2),e.addChild(a),e.rotationQuaternion.copyFrom(o),e.position.copyFrom(i),e.removeChild(a),a.addChild(e),a.visibility=0,a},t.prototype.setCustomMesh=function(e){l.a.Error("Custom meshes are not supported on this gizmo")},t}(Bn.a),Qo=function(r){function t(e,n,i,o,a,s,d){var p;n===void 0&&(n=M.a.Gray()),i===void 0&&(i=On.a.DefaultUtilityLayer),o===void 0&&(o=32),a===void 0&&(a=null),d===void 0&&(d=1);var b=r.call(this,i)||this;b._pointerObserver=null,b.snapDistance=0,b.onSnapObservable=new R.c,b._isEnabled=!0,b._parent=null,b._dragging=!1,b._parent=a,b._coloredMaterial=new Ft.a("",i.utilityLayerScene),b._coloredMaterial.diffuseColor=n,b._coloredMaterial.specularColor=n.subtract(new M.a(.1,.1,.1)),b._hoverMaterial=new Ft.a("",i.utilityLayerScene),b._hoverMaterial.diffuseColor=M.a.Yellow(),b._disableMaterial=new Ft.a("",i.utilityLayerScene),b._disableMaterial.diffuseColor=M.a.Gray(),b._disableMaterial.alpha=.4,b._gizmoMesh=new De.a("",i.utilityLayerScene);var x=b._createGizmoMesh(b._gizmoMesh,d,o),O=x.rotationMesh,B=x.collider,F=[];b._rotationCircle=b.setupRotationCircle(F,b._gizmoMesh),b._gizmoMesh.lookAt(b._rootMesh.position.add(e)),b._rootMesh.addChild(b._gizmoMesh),b._gizmoMesh.scaling.scaleInPlace(1/3),b.dragBehavior=new vi.a({dragPlaneNormal:e}),b.dragBehavior.moveAttached=!1,b.dragBehavior.maxDragAngle=9*Math.PI/20,b.dragBehavior._useAlternatePickedPointAboveMaxDragAngle=!0,b._rootMesh.addBehavior(b.dragBehavior);var z=0,J=new u.e,ie=new u.e,se=new u.a,ce=new u.e,ue=new u.e;b.dragBehavior.onDragStartObservable.add(function(Se){if(b.attachedNode){J.copyFrom(Se.dragPlanePoint);var Le=new u.e(0,0,1),xe=b._rotationCircle.getDirection(Le);xe.normalize(),b._gizmoMesh.removeChild(b._rotationCircle),J.copyFrom(Se.dragPlanePoint),ie=Se.dragPlanePoint;var Ne=b._rotationCircle.getAbsolutePosition().clone(),Me=b._rotationCircle.getAbsolutePosition().clone().addInPlace(xe),Fe=Se.dragPlanePoint,Ye=u.e.GetAngleBetweenVectors(Me.subtract(Ne),Fe.subtract(Ne),b._rotationCircle.up);b._rotationCircle.addRotation(0,Ye,0),b._dragging=!0}}),b.dragBehavior.onDragEndObservable.add(function(){z=0,b.updateRotationCircle(b._rotationCircle,F,z,ie),b._gizmoMesh.addChild(b._rotationCircle),b._dragging=!1});var fe={snapDistance:0},ve=0,Te=new u.a,Re=new u.b;b.dragBehavior.onDragObservable.add(function(Se){if(b.attachedNode){var Le=new u.e(1,1,1),xe=new u.b(0,0,0,1),Ne=new u.e(0,0,0);b.attachedNode.getWorldMatrix().decompose(Le,xe,Ne);var Me=Se.dragPlanePoint.subtract(Ne).normalize(),Fe=J.subtract(Ne).normalize(),Ye=u.e.Cross(Me,Fe),tt=u.e.Dot(Me,Fe),it=Math.atan2(Ye.length(),tt);ce.copyFrom(e),ue.copyFrom(e),b.updateGizmoRotationToMatchAttachedMesh&&(xe.toRotationMatrix(se),ue=u.e.TransformCoordinates(ce,se));var lt=!1;if(i.utilityLayerScene.activeCamera){var Ke=i.utilityLayerScene.activeCamera.position.subtract(Ne);u.e.Dot(Ke,ue)>0&&(ce.scaleInPlace(-1),ue.scaleInPlace(-1),lt=!0)}u.e.Dot(ue,Ye)>0&&(it=-it);var ot=!1;if(b.snapDistance!=0)if(ve+=it,Math.abs(ve)>b.snapDistance){var rt=Math.floor(Math.abs(ve)/b.snapDistance);ve<0&&(rt*=-1),ve%=b.snapDistance,it=b.snapDistance*rt,ot=!0}else it=0;z+=lt?-it:it,b.updateRotationCircle(b._rotationCircle,F,z,ie);var qe=Math.sin(it/2);if(Re.set(ce.x*qe,ce.y*qe,ce.z*qe,Math.cos(it/2)),Te.determinant()>0){var ht=new u.e;Re.toEulerAnglesToRef(ht),u.b.RotationYawPitchRollToRef(ht.y,-ht.x,-ht.z,Re)}b.updateGizmoRotationToMatchAttachedMesh?xe.multiplyToRef(Re,xe):Re.multiplyToRef(xe,xe),b.attachedNode.getWorldMatrix().copyFrom(u.a.Compose(Le,xe,Ne)),J.copyFrom(Se.dragPlanePoint),ot&&(fe.snapDistance=it,b.onSnapObservable.notifyObservers(fe)),b._matrixChanged()}});var Ae=i._getSharedGizmoLight();Ae.includedOnlyMeshes=Ae.includedOnlyMeshes.concat(b._rootMesh.getChildMeshes(!1));var Ee={colliderMeshes:[B],gizmoMeshes:[O],material:b._coloredMaterial,hoverMaterial:b._hoverMaterial,disableMaterial:b._disableMaterial,active:!1};return(p=b._parent)===null||p===void 0||p.addToAxisCache(b._gizmoMesh,Ee),b._pointerObserver=i.utilityLayerScene.onPointerObservable.add(function(Se){var Le;if(!b._customMeshSet&&(b._isHovered=Ee.colliderMeshes.indexOf((Le=Se?.pickInfo)===null||Le===void 0?void 0:Le.pickedMesh)!=-1,!b._parent)){var xe=b._isHovered||b._dragging?b._hoverMaterial:b._coloredMaterial;Ee.gizmoMeshes.forEach(function(Ne){Ne.material=xe,Ne.color&&(Ne.color=xe.diffuseColor)})}}),b}return Object(c.d)(t,r),t.prototype._createGizmoMesh=function(e,n,i){var o=De.a.CreateTorus("ignore",.6,.03*n,i,this.gizmoLayer.utilityLayerScene);o.visibility=0;var a=De.a.CreateTorus("",.6,.005*n,i,this.gizmoLayer.utilityLayerScene);return a.material=this._coloredMaterial,a.rotation.x=Math.PI/2,o.rotation.x=Math.PI/2,e.addChild(a),e.addChild(o),{rotationMesh:a,collider:o}},t.prototype._attachedNodeChanged=function(e){this.dragBehavior&&(this.dragBehavior.enabled=!!e)},t.prototype.setupRotationCircle=function(e,n){for(var i=t._CircleConstants.pi2/t._CircleConstants.tessellation,o=-Math.PI/2;o0?p:-1*p,x=n>0?a:-1*a;s[d].set(t._CircleConstants.radius*Math.sin(b)*Math.cos(x),0,t._CircleConstants.radius*Math.cos(b)*Math.cos(x))}else s[d].set(0,0,0);d++}o++}},t.prototype.updateRotationCircle=function(e,n,i,o){this.updateRotationPath(n,i),De.a.CreateRibbon("rotationCircle",n,!1,!1,0,this.gizmoLayer.utilityLayerScene,void 0,void 0,e.geometry?e:void 0)},Object.defineProperty(t.prototype,"isEnabled",{get:function(){return this._isEnabled},set:function(e){this._isEnabled=e,e?this._parent&&(this.attachedMesh=this._parent.attachedMesh):this.attachedMesh=null},enumerable:!1,configurable:!0}),t.prototype.dispose=function(){this.onSnapObservable.clear(),this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver),this.dragBehavior.detach(),this._gizmoMesh&&this._gizmoMesh.dispose(),this._rotationCircle&&this._rotationCircle.dispose(),[this._coloredMaterial,this._hoverMaterial,this._disableMaterial].forEach(function(e){e&&e.dispose()}),r.prototype.dispose.call(this)},t._CircleConstants={radius:.3,pi2:2*Math.PI,tessellation:70,rotationCircleRange:4},t}(Bn.a),fu=function(r){function t(e,n,i,o,a){e===void 0&&(e=On.a.DefaultUtilityLayer),n===void 0&&(n=32),i===void 0&&(i=!1),o===void 0&&(o=1);var s=r.call(this,e)||this;return s.onDragStartObservable=new R.c,s.onDragEndObservable=new R.c,s._observables=[],s._gizmoAxisCache=new Map,s.xGizmo=new Qo(new u.e(1,0,0),M.a.Red().scale(.5),e,n,s,i,o),s.yGizmo=new Qo(new u.e(0,1,0),M.a.Green().scale(.5),e,n,s,i,o),s.zGizmo=new Qo(new u.e(0,0,1),M.a.Blue().scale(.5),e,n,s,i,o),[s.xGizmo,s.yGizmo,s.zGizmo].forEach(function(d){d.dragBehavior.onDragStartObservable.add(function(){s.onDragStartObservable.notifyObservers({})}),d.dragBehavior.onDragEndObservable.add(function(){s.onDragEndObservable.notifyObservers({})})}),s.attachedMesh=null,s.attachedNode=null,a?a.addToAxisCache(s._gizmoAxisCache):Bn.a.GizmoAxisPointerObserver(e,s._gizmoAxisCache),s}return Object(c.d)(t,r),Object.defineProperty(t.prototype,"attachedMesh",{get:function(){return this._meshAttached},set:function(e){this._meshAttached=e,this._nodeAttached=e,this._checkBillboardTransform(),[this.xGizmo,this.yGizmo,this.zGizmo].forEach(function(n){n.isEnabled?n.attachedMesh=e:n.attachedMesh=null})},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"attachedNode",{get:function(){return this._nodeAttached},set:function(e){this._meshAttached=null,this._nodeAttached=e,this._checkBillboardTransform(),[this.xGizmo,this.yGizmo,this.zGizmo].forEach(function(n){n.isEnabled?n.attachedNode=e:n.attachedNode=null})},enumerable:!1,configurable:!0}),t.prototype._checkBillboardTransform=function(){this._nodeAttached&&this._nodeAttached.billboardMode&&console.log("Rotation Gizmo will not work with transforms in billboard mode.")},Object.defineProperty(t.prototype,"isHovered",{get:function(){var e=!1;return[this.xGizmo,this.yGizmo,this.zGizmo].forEach(function(n){e=e||n.isHovered}),e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"updateGizmoRotationToMatchAttachedMesh",{get:function(){return this.xGizmo.updateGizmoRotationToMatchAttachedMesh},set:function(e){this.xGizmo&&(this.xGizmo.updateGizmoRotationToMatchAttachedMesh=e,this.yGizmo.updateGizmoRotationToMatchAttachedMesh=e,this.zGizmo.updateGizmoRotationToMatchAttachedMesh=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"snapDistance",{get:function(){return this.xGizmo.snapDistance},set:function(e){this.xGizmo&&(this.xGizmo.snapDistance=e,this.yGizmo.snapDistance=e,this.zGizmo.snapDistance=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"scaleRatio",{get:function(){return this.xGizmo.scaleRatio},set:function(e){this.xGizmo&&(this.xGizmo.scaleRatio=e,this.yGizmo.scaleRatio=e,this.zGizmo.scaleRatio=e)},enumerable:!1,configurable:!0}),t.prototype.addToAxisCache=function(e,n){this._gizmoAxisCache.set(e,n)},t.prototype.dispose=function(){var e=this;this.xGizmo.dispose(),this.yGizmo.dispose(),this.zGizmo.dispose(),this.onDragStartObservable.clear(),this.onDragEndObservable.clear(),this._observables.forEach(function(n){e.gizmoLayer.utilityLayerScene.onPointerObservable.remove(n)})},t.prototype.setCustomMesh=function(e){l.a.Error("Custom meshes are not supported on this gizmo, please set the custom meshes on the gizmos contained within this one (gizmo.xGizmo, gizmo.yGizmo, gizmo.zGizmo)")},t}(Bn.a),Er=f(46),Rs=f(84),qo=function(r){function t(e,n,i,o){var a;n===void 0&&(n=M.a.Gray()),i===void 0&&(i=On.a.DefaultUtilityLayer),o===void 0&&(o=null);var s=r.call(this,i)||this;s._pointerObserver=null,s.snapDistance=0,s.onSnapObservable=new R.c,s._isEnabled=!1,s._parent=null,s._dragging=!1,s._parent=o,s._coloredMaterial=new Ft.a("",i.utilityLayerScene),s._coloredMaterial.diffuseColor=n,s._coloredMaterial.specularColor=n.subtract(new M.a(.1,.1,.1)),s._hoverMaterial=new Ft.a("",i.utilityLayerScene),s._hoverMaterial.diffuseColor=M.a.Yellow(),s._disableMaterial=new Ft.a("",i.utilityLayerScene),s._disableMaterial.diffuseColor=M.a.Gray(),s._disableMaterial.alpha=.4,s._gizmoMesh=t._CreatePlane(i.utilityLayerScene,s._coloredMaterial),s._gizmoMesh.lookAt(s._rootMesh.position.add(e)),s._gizmoMesh.scaling.scaleInPlace(1/3),s._gizmoMesh.parent=s._rootMesh;var d=0,p=new u.e,b={snapDistance:0};s.dragBehavior=new vi.a({dragPlaneNormal:e}),s.dragBehavior.moveAttached=!1,s._rootMesh.addBehavior(s.dragBehavior),s.dragBehavior.onDragObservable.add(function(B){if(s.attachedNode){if(s.snapDistance==0)s.attachedNode.getWorldMatrix().addTranslationFromFloats(B.delta.x,B.delta.y,B.delta.z);else if(d+=B.dragDistance,Math.abs(d)>s.snapDistance){var F=Math.floor(Math.abs(d)/s.snapDistance);d%=s.snapDistance,B.delta.normalizeToRef(p),p.scaleInPlace(s.snapDistance*F),s.attachedNode.getWorldMatrix().addTranslationFromFloats(p.x,p.y,p.z),b.snapDistance=s.snapDistance*F,s.onSnapObservable.notifyObservers(b)}s._matrixChanged()}}),s.dragBehavior.onDragStartObservable.add(function(){s._dragging=!0}),s.dragBehavior.onDragEndObservable.add(function(){s._dragging=!1});var x=i._getSharedGizmoLight();x.includedOnlyMeshes=x.includedOnlyMeshes.concat(s._rootMesh.getChildMeshes(!1));var O={gizmoMeshes:s._gizmoMesh.getChildMeshes(),colliderMeshes:s._gizmoMesh.getChildMeshes(),material:s._coloredMaterial,hoverMaterial:s._hoverMaterial,disableMaterial:s._disableMaterial,active:!1};return(a=s._parent)===null||a===void 0||a.addToAxisCache(s._gizmoMesh,O),s._pointerObserver=i.utilityLayerScene.onPointerObservable.add(function(B){var F;if(!s._customMeshSet&&(s._isHovered=O.colliderMeshes.indexOf((F=B?.pickInfo)===null||F===void 0?void 0:F.pickedMesh)!=-1,!s._parent)){var z=s._isHovered||s._dragging?s._hoverMaterial:s._coloredMaterial;O.gizmoMeshes.forEach(function(J){J.material=z})}}),s}return Object(c.d)(t,r),t._CreatePlane=function(e,n){var i=new Er.a("plane",e),o=Rs.a.CreatePlane("dragPlane",{width:.1375,height:.1375,sideOrientation:2},e);return o.material=n,o.parent=i,i},t.prototype._attachedNodeChanged=function(e){this.dragBehavior&&(this.dragBehavior.enabled=!!e)},Object.defineProperty(t.prototype,"isEnabled",{get:function(){return this._isEnabled},set:function(e){this._isEnabled=e,e?this._parent&&(this.attachedNode=this._parent.attachedNode):this.attachedNode=null},enumerable:!1,configurable:!0}),t.prototype.dispose=function(){this.onSnapObservable.clear(),this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver),this.dragBehavior.detach(),r.prototype.dispose.call(this),this._gizmoMesh&&this._gizmoMesh.dispose(),[this._coloredMaterial,this._hoverMaterial,this._disableMaterial].forEach(function(e){e&&e.dispose()})},t}(Bn.a),pu=function(r){function t(e,n,i){e===void 0&&(e=On.a.DefaultUtilityLayer),n===void 0&&(n=1);var o=r.call(this,e)||this;return o._meshAttached=null,o._nodeAttached=null,o._observables=[],o._gizmoAxisCache=new Map,o.onDragStartObservable=new R.c,o.onDragEndObservable=new R.c,o._planarGizmoEnabled=!1,o.xGizmo=new Ko.a(new u.e(1,0,0),M.a.Red().scale(.5),e,o,n),o.yGizmo=new Ko.a(new u.e(0,1,0),M.a.Green().scale(.5),e,o,n),o.zGizmo=new Ko.a(new u.e(0,0,1),M.a.Blue().scale(.5),e,o,n),o.xPlaneGizmo=new qo(new u.e(1,0,0),M.a.Red().scale(.5),o.gizmoLayer,o),o.yPlaneGizmo=new qo(new u.e(0,1,0),M.a.Green().scale(.5),o.gizmoLayer,o),o.zPlaneGizmo=new qo(new u.e(0,0,1),M.a.Blue().scale(.5),o.gizmoLayer,o),[o.xGizmo,o.yGizmo,o.zGizmo,o.xPlaneGizmo,o.yPlaneGizmo,o.zPlaneGizmo].forEach(function(a){a.dragBehavior.onDragStartObservable.add(function(){o.onDragStartObservable.notifyObservers({})}),a.dragBehavior.onDragEndObservable.add(function(){o.onDragEndObservable.notifyObservers({})})}),o.attachedMesh=null,i?i.addToAxisCache(o._gizmoAxisCache):Bn.a.GizmoAxisPointerObserver(e,o._gizmoAxisCache),o}return Object(c.d)(t,r),Object.defineProperty(t.prototype,"attachedMesh",{get:function(){return this._meshAttached},set:function(e){this._meshAttached=e,this._nodeAttached=e,[this.xGizmo,this.yGizmo,this.zGizmo,this.xPlaneGizmo,this.yPlaneGizmo,this.zPlaneGizmo].forEach(function(n){n.isEnabled?n.attachedMesh=e:n.attachedMesh=null})},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"attachedNode",{get:function(){return this._nodeAttached},set:function(e){this._meshAttached=null,this._nodeAttached=null,[this.xGizmo,this.yGizmo,this.zGizmo,this.xPlaneGizmo,this.yPlaneGizmo,this.zPlaneGizmo].forEach(function(n){n.isEnabled?n.attachedNode=e:n.attachedNode=null})},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"isHovered",{get:function(){var e=!1;return[this.xGizmo,this.yGizmo,this.zGizmo,this.xPlaneGizmo,this.yPlaneGizmo,this.zPlaneGizmo].forEach(function(n){e=e||n.isHovered}),e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"planarGizmoEnabled",{get:function(){return this._planarGizmoEnabled},set:function(e){var n=this;this._planarGizmoEnabled=e,[this.xPlaneGizmo,this.yPlaneGizmo,this.zPlaneGizmo].forEach(function(i){i&&(i.isEnabled=e,e&&(i.attachedMesh?i.attachedMesh=n.attachedMesh:i.attachedNode=n.attachedNode))},this)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"updateGizmoRotationToMatchAttachedMesh",{get:function(){return this._updateGizmoRotationToMatchAttachedMesh},set:function(e){this._updateGizmoRotationToMatchAttachedMesh=e,[this.xGizmo,this.yGizmo,this.zGizmo,this.xPlaneGizmo,this.yPlaneGizmo,this.zPlaneGizmo].forEach(function(n){n&&(n.updateGizmoRotationToMatchAttachedMesh=e)})},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"snapDistance",{get:function(){return this._snapDistance},set:function(e){this._snapDistance=e,[this.xGizmo,this.yGizmo,this.zGizmo,this.xPlaneGizmo,this.yPlaneGizmo,this.zPlaneGizmo].forEach(function(n){n&&(n.snapDistance=e)})},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"scaleRatio",{get:function(){return this._scaleRatio},set:function(e){this._scaleRatio=e,[this.xGizmo,this.yGizmo,this.zGizmo,this.xPlaneGizmo,this.yPlaneGizmo,this.zPlaneGizmo].forEach(function(n){n&&(n.scaleRatio=e)})},enumerable:!1,configurable:!0}),t.prototype.addToAxisCache=function(e,n){this._gizmoAxisCache.set(e,n)},t.prototype.dispose=function(){var e=this;[this.xGizmo,this.yGizmo,this.zGizmo,this.xPlaneGizmo,this.yPlaneGizmo,this.zPlaneGizmo].forEach(function(n){n&&n.dispose()}),this._observables.forEach(function(n){e.gizmoLayer.utilityLayerScene.onPointerObservable.remove(n)}),this.onDragStartObservable.clear(),this.onDragEndObservable.clear()},t.prototype.setCustomMesh=function(e){l.a.Error("Custom meshes are not supported on this gizmo, please set the custom meshes on the gizmos contained within this one (gizmo.xGizmo, gizmo.yGizmo, gizmo.zGizmo,gizmo.xPlaneGizmo, gizmo.yPlaneGizmo, gizmo.zPlaneGizmo)")},t}(Bn.a);dt.a.CreatePolyhedron=function(r){var t=[];t[0]={vertex:[[0,0,1.732051],[1.632993,0,-.5773503],[-.8164966,1.414214,-.5773503],[-.8164966,-1.414214,-.5773503]],face:[[0,1,2],[0,2,3],[0,3,1],[1,3,2]]},t[1]={vertex:[[0,0,1.414214],[1.414214,0,0],[0,1.414214,0],[-1.414214,0,0],[0,-1.414214,0],[0,0,-1.414214]],face:[[0,1,2],[0,2,3],[0,3,4],[0,4,1],[1,4,5],[1,5,2],[2,5,3],[3,5,4]]},t[2]={vertex:[[0,0,1.070466],[.7136442,0,.7978784],[-.3568221,.618034,.7978784],[-.3568221,-.618034,.7978784],[.7978784,.618034,.3568221],[.7978784,-.618034,.3568221],[-.9341724,.381966,.3568221],[.1362939,1,.3568221],[.1362939,-1,.3568221],[-.9341724,-.381966,.3568221],[.9341724,.381966,-.3568221],[.9341724,-.381966,-.3568221],[-.7978784,.618034,-.3568221],[-.1362939,1,-.3568221],[-.1362939,-1,-.3568221],[-.7978784,-.618034,-.3568221],[.3568221,.618034,-.7978784],[.3568221,-.618034,-.7978784],[-.7136442,0,-.7978784],[0,0,-1.070466]],face:[[0,1,4,7,2],[0,2,6,9,3],[0,3,8,5,1],[1,5,11,10,4],[2,7,13,12,6],[3,9,15,14,8],[4,10,16,13,7],[5,8,14,17,11],[6,12,18,15,9],[10,11,17,19,16],[12,13,16,19,18],[14,15,18,19,17]]},t[3]={vertex:[[0,0,1.175571],[1.051462,0,.5257311],[.3249197,1,.5257311],[-.8506508,.618034,.5257311],[-.8506508,-.618034,.5257311],[.3249197,-1,.5257311],[.8506508,.618034,-.5257311],[.8506508,-.618034,-.5257311],[-.3249197,1,-.5257311],[-1.051462,0,-.5257311],[-.3249197,-1,-.5257311],[0,0,-1.175571]],face:[[0,1,2],[0,2,3],[0,3,4],[0,4,5],[0,5,1],[1,5,7],[1,7,6],[1,6,2],[2,6,8],[2,8,3],[3,8,9],[3,9,4],[4,9,10],[4,10,5],[5,10,7],[6,7,11],[6,11,8],[7,10,11],[8,11,9],[9,11,10]]},t[4]={vertex:[[0,0,1.070722],[.7148135,0,.7971752],[-.104682,.7071068,.7971752],[-.6841528,.2071068,.7971752],[-.104682,-.7071068,.7971752],[.6101315,.7071068,.5236279],[1.04156,.2071068,.1367736],[.6101315,-.7071068,.5236279],[-.3574067,1,.1367736],[-.7888348,-.5,.5236279],[-.9368776,.5,.1367736],[-.3574067,-1,.1367736],[.3574067,1,-.1367736],[.9368776,-.5,-.1367736],[.7888348,.5,-.5236279],[.3574067,-1,-.1367736],[-.6101315,.7071068,-.5236279],[-1.04156,-.2071068,-.1367736],[-.6101315,-.7071068,-.5236279],[.104682,.7071068,-.7971752],[.6841528,-.2071068,-.7971752],[.104682,-.7071068,-.7971752],[-.7148135,0,-.7971752],[0,0,-1.070722]],face:[[0,2,3],[1,6,5],[4,9,11],[7,15,13],[8,16,10],[12,14,19],[17,22,18],[20,21,23],[0,1,5,2],[0,3,9,4],[0,4,7,1],[1,7,13,6],[2,5,12,8],[2,8,10,3],[3,10,17,9],[4,11,15,7],[5,6,14,12],[6,13,20,14],[8,12,19,16],[9,17,18,11],[10,16,22,17],[11,18,21,15],[13,15,21,20],[14,20,23,19],[16,19,23,22],[18,22,23,21]]},t[5]={vertex:[[0,0,1.322876],[1.309307,0,.1889822],[-.9819805,.8660254,.1889822],[.1636634,-1.299038,.1889822],[.3273268,.8660254,-.9449112],[-.8183171,-.4330127,-.9449112]],face:[[0,3,1],[2,4,5],[0,1,4,2],[0,2,5,3],[1,3,5,4]]},t[6]={vertex:[[0,0,1.159953],[1.013464,0,.5642542],[-.3501431,.9510565,.5642542],[-.7715208,-.6571639,.5642542],[.6633206,.9510565,-.03144481],[.8682979,-.6571639,-.3996071],[-1.121664,.2938926,-.03144481],[-.2348831,-1.063314,-.3996071],[.5181548,.2938926,-.9953061],[-.5850262,-.112257,-.9953061]],face:[[0,1,4,2],[0,2,6,3],[1,5,8,4],[3,6,9,7],[5,7,9,8],[0,3,7,5,1],[2,4,8,9,6]]},t[7]={vertex:[[0,0,1.118034],[.8944272,0,.6708204],[-.2236068,.8660254,.6708204],[-.7826238,-.4330127,.6708204],[.6708204,.8660254,.2236068],[1.006231,-.4330127,-.2236068],[-1.006231,.4330127,.2236068],[-.6708204,-.8660254,-.2236068],[.7826238,.4330127,-.6708204],[.2236068,-.8660254,-.6708204],[-.8944272,0,-.6708204],[0,0,-1.118034]],face:[[0,1,4,2],[0,2,6,3],[1,5,8,4],[3,6,10,7],[5,9,11,8],[7,10,11,9],[0,3,7,9,5,1],[2,4,8,11,10,6]]},t[8]={vertex:[[-.729665,.670121,.319155],[-.655235,-.29213,-.754096],[-.093922,-.607123,.537818],[.702196,.595691,.485187],[.776626,-.36656,-.588064]],face:[[1,4,2],[0,1,2],[3,0,2],[4,3,2],[4,1,0,3]]},t[9]={vertex:[[-.868849,-.100041,.61257],[-.329458,.976099,.28078],[-.26629,-.013796,-.477654],[-.13392,-1.034115,.229829],[.738834,.707117,-.307018],[.859683,-.535264,-.338508]],face:[[3,0,2],[5,3,2],[4,5,2],[1,4,2],[0,1,2],[0,3,5,4,1]]},t[10]={vertex:[[-.610389,.243975,.531213],[-.187812,-.48795,-.664016],[-.187812,.9759,-.664016],[.187812,-.9759,.664016],[.798201,.243975,.132803]],face:[[1,3,0],[3,4,0],[3,1,4],[0,2,1],[0,4,2],[2,4,1]]},t[11]={vertex:[[-1.028778,.392027,-.048786],[-.640503,-.646161,.621837],[-.125162,-.395663,-.540059],[.004683,.888447,-.651988],[.125161,.395663,.540059],[.632925,-.791376,.433102],[1.031672,.157063,-.354165]],face:[[3,2,0],[2,1,0],[2,5,1],[0,4,3],[0,1,4],[4,1,5],[2,3,6],[3,4,6],[5,2,6],[4,5,6]]},t[12]={vertex:[[-.669867,.334933,-.529576],[-.669867,.334933,.529577],[-.4043,1.212901,0],[-.334933,-.669867,-.529576],[-.334933,-.669867,.529577],[.334933,.669867,-.529576],[.334933,.669867,.529577],[.4043,-1.212901,0],[.669867,-.334933,-.529576],[.669867,-.334933,.529577]],face:[[8,9,7],[6,5,2],[3,8,7],[5,0,2],[4,3,7],[0,1,2],[9,4,7],[1,6,2],[9,8,5,6],[8,3,0,5],[3,4,1,0],[4,9,6,1]]},t[13]={vertex:[[-.931836,.219976,-.264632],[-.636706,.318353,.692816],[-.613483,-.735083,-.264632],[-.326545,.979634,0],[-.318353,-.636706,.692816],[-.159176,.477529,-.856368],[.159176,-.477529,-.856368],[.318353,.636706,.692816],[.326545,-.979634,0],[.613482,.735082,-.264632],[.636706,-.318353,.692816],[.931835,-.219977,-.264632]],face:[[11,10,8],[7,9,3],[6,11,8],[9,5,3],[2,6,8],[5,0,3],[4,2,8],[0,1,3],[10,4,8],[1,7,3],[10,11,9,7],[11,6,5,9],[6,2,0,5],[2,4,1,0],[4,10,7,1]]},t[14]={vertex:[[-.93465,.300459,-.271185],[-.838689,-.260219,-.516017],[-.711319,.717591,.128359],[-.710334,-.156922,.080946],[-.599799,.556003,-.725148],[-.503838,-.004675,-.969981],[-.487004,.26021,.48049],[-.460089,-.750282,-.512622],[-.376468,.973135,-.325605],[-.331735,-.646985,.084342],[-.254001,.831847,.530001],[-.125239,-.494738,-.966586],[.029622,.027949,.730817],[.056536,-.982543,-.262295],[.08085,1.087391,.076037],[.125583,-.532729,.485984],[.262625,.599586,.780328],[.391387,-.726999,-.716259],[.513854,-.868287,.139347],[.597475,.85513,.326364],[.641224,.109523,.783723],[.737185,-.451155,.538891],[.848705,-.612742,-.314616],[.976075,.365067,.32976],[1.072036,-.19561,.084927]],face:[[15,18,21],[12,20,16],[6,10,2],[3,0,1],[9,7,13],[2,8,4,0],[0,4,5,1],[1,5,11,7],[7,11,17,13],[13,17,22,18],[18,22,24,21],[21,24,23,20],[20,23,19,16],[16,19,14,10],[10,14,8,2],[15,9,13,18],[12,15,21,20],[6,12,16,10],[3,6,2,0],[9,3,1,7],[9,15,12,6,3],[22,17,11,5,4,8,14,19,23,24]]};var e,n,i,o,a,s,d=r.type&&(r.type<0||r.type>=t.length)?0:r.type||0,p=r.size,b=r.sizeX||p||1,x=r.sizeY||p||1,O=r.sizeZ||p||1,B=r.custom||t[d],F=B.face.length,z=r.faceUV||new Array(F),J=r.faceColors,ie=r.flat===void 0||r.flat,se=r.sideOrientation===0?0:r.sideOrientation||dt.a.DEFAULTSIDE,ce=new Array,ue=new Array,fe=new Array,ve=new Array,Te=new Array,Re=0,Ae=0,Ee=new Array,Se=0,Le=0;if(ie)for(Le=0;Le0&&t.forEach(function(n,i){e._gizmoAxisCache.set(i,n)})},r.prototype.dispose=function(){var t=this;for(var e in this._pointerObservers.forEach(function(i){t.scene.onPointerObservable.remove(i)}),this.gizmos){var n=this.gizmos[e];n&&n.dispose()}this._defaultKeepDepthUtilityLayer.dispose(),this._defaultUtilityLayer.dispose(),this.boundingBoxDragBehavior.detach(),this.onAttachedToMeshObservable.clear()},r}(),Pi=f(48),Zo=function(r){function t(){var e=r!==null&&r.apply(this,arguments)||this;return e._needProjectionMatrixCompute=!0,e}return Object(c.d)(t,r),t.prototype._setPosition=function(e){this._position=e},Object.defineProperty(t.prototype,"position",{get:function(){return this._position},set:function(e){this._setPosition(e)},enumerable:!1,configurable:!0}),t.prototype._setDirection=function(e){this._direction=e},Object.defineProperty(t.prototype,"direction",{get:function(){return this._direction},set:function(e){this._setDirection(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"shadowMinZ",{get:function(){return this._shadowMinZ},set:function(e){this._shadowMinZ=e,this.forceProjectionMatrixCompute()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"shadowMaxZ",{get:function(){return this._shadowMaxZ},set:function(e){this._shadowMaxZ=e,this.forceProjectionMatrixCompute()},enumerable:!1,configurable:!0}),t.prototype.computeTransformedInformation=function(){return!(!this.parent||!this.parent.getWorldMatrix)&&(this.transformedPosition||(this.transformedPosition=u.e.Zero()),u.e.TransformCoordinatesToRef(this.position,this.parent.getWorldMatrix(),this.transformedPosition),this.direction&&(this.transformedDirection||(this.transformedDirection=u.e.Zero()),u.e.TransformNormalToRef(this.direction,this.parent.getWorldMatrix(),this.transformedDirection)),!0)},t.prototype.getDepthScale=function(){return 50},t.prototype.getShadowDirection=function(e){return this.transformedDirection?this.transformedDirection:this.direction},t.prototype.getAbsolutePosition=function(){return this.transformedPosition?this.transformedPosition:this.position},t.prototype.setDirectionToTarget=function(e){return this.direction=u.e.Normalize(e.subtract(this.position)),this.direction},t.prototype.getRotation=function(){this.direction.normalize();var e=u.e.Cross(this.direction,ye.a.Y),n=u.e.Cross(e,this.direction);return u.e.RotationFromAxis(e,n,this.direction)},t.prototype.needCube=function(){return!1},t.prototype.needProjectionMatrixCompute=function(){return this._needProjectionMatrixCompute},t.prototype.forceProjectionMatrixCompute=function(){this._needProjectionMatrixCompute=!0},t.prototype._initCache=function(){r.prototype._initCache.call(this),this._cache.position=u.e.Zero()},t.prototype._isSynchronized=function(){return!!this._cache.position.equals(this.position)},t.prototype.computeWorldMatrix=function(e){return!e&&this.isSynchronized()?(this._currentRenderId=this.getScene().getRenderId(),this._worldMatrix):(this._updateCache(),this._cache.position.copyFrom(this.position),this._worldMatrix||(this._worldMatrix=u.a.Identity()),u.a.TranslationToRef(this.position.x,this.position.y,this.position.z,this._worldMatrix),this.parent&&this.parent.getWorldMatrix&&(this._worldMatrix.multiplyToRef(this.parent.getWorldMatrix(),this._worldMatrix),this._markSyncedWithParent()),this._worldMatrixDeterminantIsDirty=!0,this._worldMatrix)},t.prototype.getDepthMinZ=function(e){return this.shadowMinZ!==void 0?this.shadowMinZ:e.minZ},t.prototype.getDepthMaxZ=function(e){return this.shadowMaxZ!==void 0?this.shadowMaxZ:e.maxZ},t.prototype.setShadowProjectionMatrix=function(e,n,i){return this.customProjectionMatrixBuilder?this.customProjectionMatrixBuilder(n,i,e):this._setDefaultShadowProjectionMatrix(e,n,i),this},Object(c.c)([Object(L.o)()],t.prototype,"position",null),Object(c.c)([Object(L.o)()],t.prototype,"direction",null),Object(c.c)([Object(L.c)()],t.prototype,"shadowMinZ",null),Object(c.c)([Object(L.c)()],t.prototype,"shadowMaxZ",null),t}(Pi.a);Q.a.AddNodeConstructor("Light_Type_1",function(r,t){return function(){return new Os(r,u.e.Zero(),t)}});var Os=function(r){function t(e,n,i){var o=r.call(this,e,i)||this;return o._shadowFrustumSize=0,o._shadowOrthoScale=.1,o.autoUpdateExtends=!0,o.autoCalcShadowZBounds=!1,o._orthoLeft=Number.MAX_VALUE,o._orthoRight=Number.MIN_VALUE,o._orthoTop=Number.MIN_VALUE,o._orthoBottom=Number.MAX_VALUE,o.position=n.scale(-1),o.direction=n,o}return Object(c.d)(t,r),Object.defineProperty(t.prototype,"shadowFrustumSize",{get:function(){return this._shadowFrustumSize},set:function(e){this._shadowFrustumSize=e,this.forceProjectionMatrixCompute()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"shadowOrthoScale",{get:function(){return this._shadowOrthoScale},set:function(e){this._shadowOrthoScale=e,this.forceProjectionMatrixCompute()},enumerable:!1,configurable:!0}),t.prototype.getClassName=function(){return"DirectionalLight"},t.prototype.getTypeID=function(){return Pi.a.LIGHTTYPEID_DIRECTIONALLIGHT},t.prototype._setDefaultShadowProjectionMatrix=function(e,n,i){this.shadowFrustumSize>0?this._setDefaultFixedFrustumShadowProjectionMatrix(e):this._setDefaultAutoExtendShadowProjectionMatrix(e,n,i)},t.prototype._setDefaultFixedFrustumShadowProjectionMatrix=function(e){var n=this.getScene().activeCamera;n&&u.a.OrthoLHToRef(this.shadowFrustumSize,this.shadowFrustumSize,this.shadowMinZ!==void 0?this.shadowMinZ:n.minZ,this.shadowMaxZ!==void 0?this.shadowMaxZ:n.maxZ,e)},t.prototype._setDefaultAutoExtendShadowProjectionMatrix=function(e,n,i){var o=this.getScene().activeCamera;if(o){if(this.autoUpdateExtends||this._orthoLeft===Number.MAX_VALUE){var a=u.e.Zero();this._orthoLeft=Number.MAX_VALUE,this._orthoRight=Number.MIN_VALUE,this._orthoTop=Number.MIN_VALUE,this._orthoBottom=Number.MAX_VALUE;for(var s=Number.MAX_VALUE,d=Number.MIN_VALUE,p=0;pthis._orthoRight&&(this._orthoRight=a.x),a.y>this._orthoTop&&(this._orthoTop=a.y),this.autoCalcShadowZBounds&&(a.zd&&(d=a.z))}this.autoCalcShadowZBounds&&(this._shadowMinZ=s,this._shadowMaxZ=d)}var B=this._orthoRight-this._orthoLeft,F=this._orthoTop-this._orthoBottom;u.a.OrthoOffCenterLHToRef(this._orthoLeft-B*this.shadowOrthoScale,this._orthoRight+B*this.shadowOrthoScale,this._orthoBottom-F*this.shadowOrthoScale,this._orthoTop+F*this.shadowOrthoScale,this.shadowMinZ!==void 0?this.shadowMinZ:o.minZ,this.shadowMaxZ!==void 0?this.shadowMaxZ:o.maxZ,e)}},t.prototype._buildUniformLayout=function(){this._uniformBuffer.addUniform("vLightData",4),this._uniformBuffer.addUniform("vLightDiffuse",4),this._uniformBuffer.addUniform("vLightSpecular",4),this._uniformBuffer.addUniform("shadowsInfo",3),this._uniformBuffer.addUniform("depthValues",2),this._uniformBuffer.create()},t.prototype.transferToEffect=function(e,n){return this.computeTransformedInformation()?(this._uniformBuffer.updateFloat4("vLightData",this.transformedDirection.x,this.transformedDirection.y,this.transformedDirection.z,1,n),this):(this._uniformBuffer.updateFloat4("vLightData",this.direction.x,this.direction.y,this.direction.z,1,n),this)},t.prototype.transferToNodeMaterialEffect=function(e,n){return this.computeTransformedInformation()?(e.setFloat3(n,this.transformedDirection.x,this.transformedDirection.y,this.transformedDirection.z),this):(e.setFloat3(n,this.direction.x,this.direction.y,this.direction.z),this)},t.prototype.getDepthMinZ=function(e){return 1},t.prototype.getDepthMaxZ=function(e){return 1},t.prototype.prepareLightSpecificDefines=function(e,n){e["DIRLIGHT"+n]=!0},Object(c.c)([Object(L.c)()],t.prototype,"shadowFrustumSize",null),Object(c.c)([Object(L.c)()],t.prototype,"shadowOrthoScale",null),Object(c.c)([Object(L.c)()],t.prototype,"autoUpdateExtends",void 0),Object(c.c)([Object(L.c)()],t.prototype,"autoCalcShadowZBounds",void 0),t}(Zo);De.a.CreateHemisphere=function(r,t,e,n){var i={segments:t,diameter:e};return Jo.CreateHemisphere(r,i,n)};var Jo=function(){function r(){}return r.CreateHemisphere=function(t,e,n){e.diameter||(e.diameter=1),e.segments||(e.segments=16);var i=Un.a.CreateSphere("",{slice:.5,diameter:e.diameter,segments:e.segments},n),o=De.a.CreateDisc("",e.diameter/2,3*e.segments+(4-e.segments),n);o.rotation.x=-Math.PI/2,o.parent=i;var a=De.a.MergeMeshes([o,i],!0);return a.name=t,a},r}();Q.a.AddNodeConstructor("Light_Type_2",function(r,t){return function(){return new Ms(r,u.e.Zero(),u.e.Zero(),0,0,t)}});var Ms=function(r){function t(e,n,i,o,a,s){var d=r.call(this,e,s)||this;return d._innerAngle=0,d._projectionTextureMatrix=u.a.Zero(),d._projectionTextureLightNear=1e-6,d._projectionTextureLightFar=1e3,d._projectionTextureUpDirection=u.e.Up(),d._projectionTextureViewLightDirty=!0,d._projectionTextureProjectionLightDirty=!0,d._projectionTextureDirty=!0,d._projectionTextureViewTargetVector=u.e.Zero(),d._projectionTextureViewLightMatrix=u.a.Zero(),d._projectionTextureProjectionLightMatrix=u.a.Zero(),d._projectionTextureScalingMatrix=u.a.FromValues(.5,0,0,0,0,.5,0,0,0,0,.5,0,.5,.5,.5,1),d.position=n,d.direction=i,d.angle=o,d.exponent=a,d}return Object(c.d)(t,r),Object.defineProperty(t.prototype,"angle",{get:function(){return this._angle},set:function(e){this._angle=e,this._cosHalfAngle=Math.cos(.5*e),this._projectionTextureProjectionLightDirty=!0,this.forceProjectionMatrixCompute(),this._computeAngleValues()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"innerAngle",{get:function(){return this._innerAngle},set:function(e){this._innerAngle=e,this._computeAngleValues()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"shadowAngleScale",{get:function(){return this._shadowAngleScale},set:function(e){this._shadowAngleScale=e,this.forceProjectionMatrixCompute()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"projectionTextureMatrix",{get:function(){return this._projectionTextureMatrix},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"projectionTextureLightNear",{get:function(){return this._projectionTextureLightNear},set:function(e){this._projectionTextureLightNear=e,this._projectionTextureProjectionLightDirty=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"projectionTextureLightFar",{get:function(){return this._projectionTextureLightFar},set:function(e){this._projectionTextureLightFar=e,this._projectionTextureProjectionLightDirty=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"projectionTextureUpDirection",{get:function(){return this._projectionTextureUpDirection},set:function(e){this._projectionTextureUpDirection=e,this._projectionTextureProjectionLightDirty=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"projectionTexture",{get:function(){return this._projectionTexture},set:function(e){var n=this;this._projectionTexture!==e&&(this._projectionTexture=e,this._projectionTextureDirty=!0,this._projectionTexture&&!this._projectionTexture.isReady()&&(t._IsProceduralTexture(this._projectionTexture)?this._projectionTexture.getEffect().executeWhenCompiled(function(){n._markMeshesAsLightDirty()}):t._IsTexture(this._projectionTexture)&&this._projectionTexture.onLoadObservable.addOnce(function(){n._markMeshesAsLightDirty()})))},enumerable:!1,configurable:!0}),t._IsProceduralTexture=function(e){return e.onGeneratedObservable!==void 0},t._IsTexture=function(e){return e.onLoadObservable!==void 0},t.prototype.getClassName=function(){return"SpotLight"},t.prototype.getTypeID=function(){return Pi.a.LIGHTTYPEID_SPOTLIGHT},t.prototype._setDirection=function(e){r.prototype._setDirection.call(this,e),this._projectionTextureViewLightDirty=!0},t.prototype._setPosition=function(e){r.prototype._setPosition.call(this,e),this._projectionTextureViewLightDirty=!0},t.prototype._setDefaultShadowProjectionMatrix=function(e,n,i){var o=this.getScene().activeCamera;if(o){this._shadowAngleScale=this._shadowAngleScale||1;var a=this._shadowAngleScale*this._angle;u.a.PerspectiveFovLHToRef(a,1,this.getDepthMinZ(o),this.getDepthMaxZ(o),e)}},t.prototype._computeProjectionTextureViewLightMatrix=function(){this._projectionTextureViewLightDirty=!1,this._projectionTextureDirty=!0,this.position.addToRef(this.direction,this._projectionTextureViewTargetVector),u.a.LookAtLHToRef(this.position,this._projectionTextureViewTargetVector,this._projectionTextureUpDirection,this._projectionTextureViewLightMatrix)},t.prototype._computeProjectionTextureProjectionLightMatrix=function(){this._projectionTextureProjectionLightDirty=!1,this._projectionTextureDirty=!0;var e=this.projectionTextureLightFar,n=this.projectionTextureLightNear,i=e/(e-n),o=-i*n,a=1/Math.tan(this._angle/2);u.a.FromValuesToRef(a/1,0,0,0,0,a,0,0,0,0,i,1,0,0,o,0,this._projectionTextureProjectionLightMatrix)},t.prototype._computeProjectionTextureMatrix=function(){if(this._projectionTextureDirty=!1,this._projectionTextureViewLightMatrix.multiplyToRef(this._projectionTextureProjectionLightMatrix,this._projectionTextureMatrix),this._projectionTexture instanceof we.a){var e=this._projectionTexture.uScale/2,n=this._projectionTexture.vScale/2;u.a.FromValuesToRef(e,0,0,0,0,n,0,0,0,0,.5,0,.5,.5,.5,1,this._projectionTextureScalingMatrix)}this._projectionTextureMatrix.multiplyToRef(this._projectionTextureScalingMatrix,this._projectionTextureMatrix)},t.prototype._buildUniformLayout=function(){this._uniformBuffer.addUniform("vLightData",4),this._uniformBuffer.addUniform("vLightDiffuse",4),this._uniformBuffer.addUniform("vLightSpecular",4),this._uniformBuffer.addUniform("vLightDirection",3),this._uniformBuffer.addUniform("vLightFalloff",4),this._uniformBuffer.addUniform("shadowsInfo",3),this._uniformBuffer.addUniform("depthValues",2),this._uniformBuffer.create()},t.prototype._computeAngleValues=function(){this._lightAngleScale=1/Math.max(.001,Math.cos(.5*this._innerAngle)-this._cosHalfAngle),this._lightAngleOffset=-this._cosHalfAngle*this._lightAngleScale},t.prototype.transferTexturesToEffect=function(e,n){return this.projectionTexture&&this.projectionTexture.isReady()&&(this._projectionTextureViewLightDirty&&this._computeProjectionTextureViewLightMatrix(),this._projectionTextureProjectionLightDirty&&this._computeProjectionTextureProjectionLightMatrix(),this._projectionTextureDirty&&this._computeProjectionTextureMatrix(),e.setMatrix("textureProjectionMatrix"+n,this._projectionTextureMatrix),e.setTexture("projectionLightSampler"+n,this.projectionTexture)),this},t.prototype.transferToEffect=function(e,n){var i;return this.computeTransformedInformation()?(this._uniformBuffer.updateFloat4("vLightData",this.transformedPosition.x,this.transformedPosition.y,this.transformedPosition.z,this.exponent,n),i=u.e.Normalize(this.transformedDirection)):(this._uniformBuffer.updateFloat4("vLightData",this.position.x,this.position.y,this.position.z,this.exponent,n),i=u.e.Normalize(this.direction)),this._uniformBuffer.updateFloat4("vLightDirection",i.x,i.y,i.z,this._cosHalfAngle,n),this._uniformBuffer.updateFloat4("vLightFalloff",this.range,this._inverseSquaredRange,this._lightAngleScale,this._lightAngleOffset,n),this},t.prototype.transferToNodeMaterialEffect=function(e,n){var i;return i=this.computeTransformedInformation()?u.e.Normalize(this.transformedDirection):u.e.Normalize(this.direction),this.getScene().useRightHandedSystem?e.setFloat3(n,-i.x,-i.y,-i.z):e.setFloat3(n,i.x,i.y,i.z),this},t.prototype.dispose=function(){r.prototype.dispose.call(this),this._projectionTexture&&this._projectionTexture.dispose()},t.prototype.prepareLightSpecificDefines=function(e,n){e["SPOTLIGHT"+n]=!0,e["PROJECTEDLIGHTTEXTURE"+n]=!(!this.projectionTexture||!this.projectionTexture.isReady())},Object(c.c)([Object(L.c)()],t.prototype,"angle",null),Object(c.c)([Object(L.c)()],t.prototype,"innerAngle",null),Object(c.c)([Object(L.c)()],t.prototype,"shadowAngleScale",null),Object(c.c)([Object(L.c)()],t.prototype,"exponent",void 0),Object(c.c)([Object(L.c)()],t.prototype,"projectionTextureLightNear",null),Object(c.c)([Object(L.c)()],t.prototype,"projectionTextureLightFar",null),Object(c.c)([Object(L.c)()],t.prototype,"projectionTextureUpDirection",null),Object(c.c)([Object(L.m)("projectedLightTexture")],t.prototype,"_projectionTexture",void 0),t}(Zo),dp=function(r){function t(e){e===void 0&&(e=On.a.DefaultUtilityLayer);var n=r.call(this,e)||this;return n._cachedPosition=new u.e,n._cachedForward=new u.e(0,0,1),n._pointerObserver=null,n.onClickedObservable=new R.c,n._light=null,n.attachedMesh=new Dt.a("",n.gizmoLayer.utilityLayerScene),n._attachedMeshParent=new Er.a("parent",n.gizmoLayer.utilityLayerScene),n.attachedMesh.parent=n._attachedMeshParent,n._material=new Ft.a("light",n.gizmoLayer.utilityLayerScene),n._material.diffuseColor=new M.a(.5,.5,.5),n._material.specularColor=new M.a(.1,.1,.1),n._pointerObserver=e.utilityLayerScene.onPointerObservable.add(function(i){n._light&&(n._isHovered=!(!i.pickInfo||n._rootMesh.getChildMeshes().indexOf(i.pickInfo.pickedMesh)==-1),n._isHovered&&i.event.button===0&&n.onClickedObservable.notifyObservers(n._light))},Tt.a.POINTERDOWN),n}return Object(c.d)(t,r),Object.defineProperty(t.prototype,"light",{get:function(){return this._light},set:function(e){var n=this;if(this._light=e,e){this._lightMesh&&this._lightMesh.dispose(),e instanceof ko.a?this._lightMesh=t._CreateHemisphericLightMesh(this.gizmoLayer.utilityLayerScene):this._lightMesh=e instanceof Os?t._CreateDirectionalLightMesh(this.gizmoLayer.utilityLayerScene):e instanceof Ms?t._CreateSpotLightMesh(this.gizmoLayer.utilityLayerScene):t._CreatePointLightMesh(this.gizmoLayer.utilityLayerScene),this._lightMesh.getChildMeshes(!1).forEach(function(o){o.material=n._material}),this._lightMesh.parent=this._rootMesh;var i=this.gizmoLayer._getSharedGizmoLight();i.includedOnlyMeshes=i.includedOnlyMeshes.concat(this._lightMesh.getChildMeshes(!1)),this._lightMesh.rotationQuaternion=new u.b,this.attachedMesh.reservedDataStore||(this.attachedMesh.reservedDataStore={}),this.attachedMesh.reservedDataStore.lightGizmo=this,e.parent&&this._attachedMeshParent.freezeWorldMatrix(e.parent.getWorldMatrix()),e.position&&(this.attachedMesh.position.copyFrom(e.position),this.attachedMesh.computeWorldMatrix(!0),this._cachedPosition.copyFrom(this.attachedMesh.position)),e.direction&&(this.attachedMesh.setDirection(e.direction),this.attachedMesh.computeWorldMatrix(!0),this._cachedForward.copyFrom(this.attachedMesh.forward)),this._update()}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"material",{get:function(){return this._material},enumerable:!1,configurable:!0}),t.prototype._update=function(){r.prototype._update.call(this),this._light&&(this._light.parent&&this._attachedMeshParent.freezeWorldMatrix(this._light.parent.getWorldMatrix()),this._light.position&&(this.attachedMesh.position.equals(this._cachedPosition)?(this.attachedMesh.position.copyFrom(this._light.position),this.attachedMesh.computeWorldMatrix(!0),this._cachedPosition.copyFrom(this.attachedMesh.position)):(this._light.position.copyFrom(this.attachedMesh.position),this._cachedPosition.copyFrom(this.attachedMesh.position))),this._light.direction&&(u.e.DistanceSquared(this.attachedMesh.forward,this._cachedForward)>1e-4?(this._light.direction.copyFrom(this.attachedMesh.forward),this._cachedForward.copyFrom(this.attachedMesh.forward)):u.e.DistanceSquared(this.attachedMesh.forward,this._light.direction)>1e-4&&(this.attachedMesh.setDirection(this._light.direction),this.attachedMesh.computeWorldMatrix(!0),this._cachedForward.copyFrom(this.attachedMesh.forward))))},t.prototype.dispose=function(){this.onClickedObservable.clear(),this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver),this._material.dispose(),r.prototype.dispose.call(this),this._attachedMeshParent.dispose()},t._CreateHemisphericLightMesh=function(e){var n=new De.a("hemisphereLight",e),i=Jo.CreateHemisphere(n.name,{segments:10,diameter:1},e);i.position.z=-.15,i.rotation.x=Math.PI/2,i.parent=n;var o=this._CreateLightLines(3,e);return o.parent=n,o.position.z,n.scaling.scaleInPlace(t._Scale),n.rotation.x=Math.PI/2,n},t._CreatePointLightMesh=function(e){var n=new De.a("pointLight",e),i=Un.a.CreateSphere(n.name,{segments:10,diameter:1},e);return i.rotation.x=Math.PI/2,i.parent=n,this._CreateLightLines(5,e).parent=n,n.scaling.scaleInPlace(t._Scale),n.rotation.x=Math.PI/2,n},t._CreateSpotLightMesh=function(e){var n=new De.a("spotLight",e);Un.a.CreateSphere(n.name,{segments:10,diameter:1},e).parent=n;var i=Jo.CreateHemisphere(n.name,{segments:10,diameter:2},e);return i.parent=n,i.rotation.x=-Math.PI/2,this._CreateLightLines(2,e).parent=n,n.scaling.scaleInPlace(t._Scale),n.rotation.x=Math.PI/2,n},t._CreateDirectionalLightMesh=function(e){var n=new De.a("directionalLight",e),i=new De.a(n.name,e);i.parent=n,Un.a.CreateSphere(n.name,{diameter:1.2,segments:10},e).parent=i;var o=De.a.CreateCylinder(n.name,6,.3,.3,6,1,e);o.parent=i,(a=o.clone(n.name)).scaling.y=.5,a.position.x+=1.25,(s=o.clone(n.name)).scaling.y=.5,s.position.x+=-1.25;var a,s,d=De.a.CreateCylinder(n.name,1,0,.6,6,1,e);return d.position.y+=3,d.parent=i,(a=d.clone(n.name)).position.y=1.5,a.position.x+=1.25,(s=d.clone(n.name)).position.y=1.5,s.position.x+=-1.25,i.scaling.scaleInPlace(t._Scale),i.rotation.z=Math.PI/2,i.rotation.y=Math.PI/2,n},t._Scale=.007,t._CreateLightLines=function(e,n){var i=new De.a("root",n);i.rotation.x=Math.PI/2;var o=new De.a("linePivot",n);o.parent=i;var a=De.a.CreateCylinder("line",2,.2,.3,6,1,n);if(a.position.y=a.scaling.y/2+1.2,a.parent=o,e<2)return o;for(var s=0;s<4;s++)(d=o.clone("lineParentClone")).rotation.z=Math.PI/4,d.rotation.y=Math.PI/2+Math.PI/2*s,d.getChildMeshes()[0].scaling.y=.5,d.getChildMeshes()[0].scaling.x=d.getChildMeshes()[0].scaling.z=.8,d.getChildMeshes()[0].position.y=d.getChildMeshes()[0].scaling.y/2+1.2;if(e<3)return i;for(s=0;s<4;s++)(d=o.clone("linePivotClone")).rotation.z=Math.PI/2,d.rotation.y=Math.PI/2*s;if(e<4)return i;for(s=0;s<4;s++){var d;(d=o.clone("linePivotClone")).rotation.z=Math.PI+Math.PI/4,d.rotation.y=Math.PI/2+Math.PI/2*s,d.getChildMeshes()[0].scaling.y=.5,d.getChildMeshes()[0].scaling.x=d.getChildMeshes()[0].scaling.z=.8,d.getChildMeshes()[0].position.y=d.getChildMeshes()[0].scaling.y/2+1.2}return e<5||((d=o.clone("linePivotClone")).rotation.z=Math.PI),i},t}(Bn.a),Is=function(){function r(t,e){t===void 0&&(t=u.e.Zero()),e===void 0&&(e=u.e.Up()),this.position=t,this.normal=e}return r.prototype.clone=function(){return new r(this.position.clone(),this.normal.clone())},r}(),fp=function(){function r(t,e,n){t===void 0&&(t=u.e.Zero()),e===void 0&&(e=u.e.Up()),n===void 0&&(n=u.d.Zero()),this.position=t,this.normal=e,this.uv=n}return r.prototype.clone=function(){return new r(this.position.clone(),this.normal.clone(),this.uv.clone())},r}(),pp=function(r){function t(e){e===void 0&&(e=On.a.DefaultUtilityLayer);var n=r.call(this,e)||this;return n._pointerObserver=null,n.onClickedObservable=new R.c,n._camera=null,n._invProjection=new u.a,n._material=new Ft.a("cameraGizmoMaterial",n.gizmoLayer.utilityLayerScene),n._material.diffuseColor=new M.a(.5,.5,.5),n._material.specularColor=new M.a(.1,.1,.1),n._pointerObserver=e.utilityLayerScene.onPointerObservable.add(function(i){n._camera&&(n._isHovered=!(!i.pickInfo||n._rootMesh.getChildMeshes().indexOf(i.pickInfo.pickedMesh)==-1),n._isHovered&&i.event.button===0&&n.onClickedObservable.notifyObservers(n._camera))},Tt.a.POINTERDOWN),n}return Object(c.d)(t,r),Object.defineProperty(t.prototype,"displayFrustum",{get:function(){return this._cameraLinesMesh.isEnabled()},set:function(e){this._cameraLinesMesh.setEnabled(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"camera",{get:function(){return this._camera},set:function(e){var n=this;if(this._camera=e,this.attachedNode=e,e){this._cameraMesh&&this._cameraMesh.dispose(),this._cameraLinesMesh&&this._cameraLinesMesh.dispose(),this._cameraMesh=t._CreateCameraMesh(this.gizmoLayer.utilityLayerScene),this._cameraLinesMesh=t._CreateCameraFrustum(this.gizmoLayer.utilityLayerScene),this._cameraMesh.getChildMeshes(!1).forEach(function(o){o.material=n._material}),this._cameraMesh.parent=this._rootMesh,this._cameraLinesMesh.parent=this._rootMesh,this.gizmoLayer.utilityLayerScene.activeCamera&&this.gizmoLayer.utilityLayerScene.activeCamera.maxZ<1.5*e.maxZ&&(this.gizmoLayer.utilityLayerScene.activeCamera.maxZ=1.5*e.maxZ),this.attachedNode.reservedDataStore||(this.attachedNode.reservedDataStore={}),this.attachedNode.reservedDataStore.cameraGizmo=this;var i=this.gizmoLayer._getSharedGizmoLight();i.includedOnlyMeshes=i.includedOnlyMeshes.concat(this._cameraMesh.getChildMeshes(!1)),this._update()}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"material",{get:function(){return this._material},enumerable:!1,configurable:!0}),t.prototype._update=function(){r.prototype._update.call(this),this._camera&&(this._camera.getProjectionMatrix().invertToRef(this._invProjection),this._cameraLinesMesh.setPivotMatrix(this._invProjection,!1),this._cameraLinesMesh.scaling.x=1/this._rootMesh.scaling.x,this._cameraLinesMesh.scaling.y=1/this._rootMesh.scaling.y,this._cameraLinesMesh.scaling.z=1/this._rootMesh.scaling.z,this._cameraMesh.parent=null,this._cameraMesh.rotation.y=.5*Math.PI*(this._camera.getScene().useRightHandedSystem?1:-1),this._cameraMesh.parent=this._rootMesh)},t.prototype.dispose=function(){this.onClickedObservable.clear(),this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver),this._cameraMesh&&this._cameraMesh.dispose(),this._cameraLinesMesh&&this._cameraLinesMesh.dispose(),this._material.dispose(),r.prototype.dispose.call(this)},t._CreateCameraMesh=function(e){var n=new De.a("rootCameraGizmo",e),i=new De.a(n.name,e);i.parent=n,Tr.a.CreateBox(n.name,{width:1,height:.8,depth:.5},e).parent=i;var o=fi.a.CreateCylinder(n.name,{height:.5,diameterTop:.8,diameterBottom:.8},e);o.parent=i,o.position.y=.3,o.position.x=-.6,o.rotation.x=.5*Math.PI;var a=fi.a.CreateCylinder(n.name,{height:.5,diameterTop:.6,diameterBottom:.6},e);a.parent=i,a.position.y=.5,a.position.x=.4,a.rotation.x=.5*Math.PI;var s=fi.a.CreateCylinder(n.name,{height:.5,diameterTop:.5,diameterBottom:.5},e);return s.parent=i,s.position.y=0,s.position.x=.6,s.rotation.z=.5*Math.PI,n.scaling.scaleInPlace(t._Scale),i.position.x=-.9,n},t._CreateCameraFrustum=function(e){var n=new De.a("rootCameraGizmo",e),i=new De.a(n.name,e);i.parent=n;for(var o=0;o<4;o+=2)for(var a=0;a<4;a+=2){var s;(s=cn.a.CreateLines("lines",{points:[new u.e(-1+a,-1+o,-1),new u.e(-1+a,-1+o,1)]},e)).parent=i,s.alwaysSelectAsActiveMesh=!0,s.isPickable=!1,(s=cn.a.CreateLines("lines",{points:[new u.e(-1,-1+a,-1+o),new u.e(1,-1+a,-1+o)]},e)).parent=i,s.alwaysSelectAsActiveMesh=!0,s.isPickable=!1,(s=cn.a.CreateLines("lines",{points:[new u.e(-1+a,-1,-1+o),new u.e(-1+a,1,-1+o)]},e)).parent=i,s.alwaysSelectAsActiveMesh=!0,s.isPickable=!1}return n},t._Scale=.05,t}(Bn.a);ze.a.IncludesShadersStore.kernelBlurVaryingDeclaration="varying vec2 sampleCoord{X};";var _p=`vec4 pack(float depth) +{ +const vec4 bit_shift=vec4(255.0*255.0*255.0,255.0*255.0,255.0,1.0); +const vec4 bit_mask=vec4(0.0,1.0/255.0,1.0/255.0,1.0/255.0); +vec4 res=fract(depth*bit_shift); +res-=res.xxyz*bit_mask; +return res; +} +float unpack(vec4 color) +{ +const vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0); +return dot(color,bit_shift); +}`;ze.a.IncludesShadersStore.packingFunctions=_p;var mp=`#ifdef DOF +factor=sampleCoC(sampleCoord{X}); +computedWeight=KERNEL_WEIGHT{X}*factor; +sumOfWeights+=computedWeight; +#else +computedWeight=KERNEL_WEIGHT{X}; +#endif +#ifdef PACKEDFLOAT +blend+=unpack(texture2D(textureSampler,sampleCoord{X}))*computedWeight; +#else +blend+=texture2D(textureSampler,sampleCoord{X})*computedWeight; +#endif`;ze.a.IncludesShadersStore.kernelBlurFragment=mp;var gp=`#ifdef DOF +factor=sampleCoC(sampleCenter+delta*KERNEL_DEP_OFFSET{X}); +computedWeight=KERNEL_DEP_WEIGHT{X}*factor; +sumOfWeights+=computedWeight; +#else +computedWeight=KERNEL_DEP_WEIGHT{X}; +#endif +#ifdef PACKEDFLOAT +blend+=unpack(texture2D(textureSampler,sampleCenter+delta*KERNEL_DEP_OFFSET{X}))*computedWeight; +#else +blend+=texture2D(textureSampler,sampleCenter+delta*KERNEL_DEP_OFFSET{X})*computedWeight; +#endif`;ze.a.IncludesShadersStore.kernelBlurFragment2=gp;var vp=` +uniform sampler2D textureSampler; +uniform vec2 delta; + +varying vec2 sampleCenter; +#ifdef DOF +uniform sampler2D circleOfConfusionSampler; +uniform vec2 cameraMinMaxZ; +float sampleDistance(const in vec2 offset) { +float depth=texture2D(circleOfConfusionSampler,offset).g; +return cameraMinMaxZ.x+(cameraMinMaxZ.y-cameraMinMaxZ.x)*depth; +} +float sampleCoC(const in vec2 offset) { +float coc=texture2D(circleOfConfusionSampler,offset).r; +return coc; +} +#endif +#include[0..varyingCount] +#ifdef PACKEDFLOAT +#include +#endif +void main(void) +{ +float computedWeight=0.0; +#ifdef PACKEDFLOAT +float blend=0.; +#else +vec4 blend=vec4(0.); +#endif +#ifdef DOF +float sumOfWeights=CENTER_WEIGHT; +float factor=0.0; + +#ifdef PACKEDFLOAT +blend+=unpack(texture2D(textureSampler,sampleCenter))*CENTER_WEIGHT; +#else +blend+=texture2D(textureSampler,sampleCenter)*CENTER_WEIGHT; +#endif +#endif +#include[0..varyingCount] +#include[0..depCount] +#ifdef PACKEDFLOAT +gl_FragColor=pack(blend); +#else +gl_FragColor=blend; +#endif +#ifdef DOF +gl_FragColor/=sumOfWeights; +#endif +}`;ze.a.ShadersStore.kernelBlurPixelShader=vp,ze.a.IncludesShadersStore.kernelBlurVertex="sampleCoord{X}=sampleCenter+delta*KERNEL_OFFSET{X};";var bp=` +attribute vec2 position; + +uniform vec2 delta; + +varying vec2 sampleCenter; +#include[0..varyingCount] +const vec2 madd=vec2(0.5,0.5); +void main(void) { +sampleCenter=(position*madd+madd); +#include[0..varyingCount] +gl_Position=vec4(position,0.0,1.0); +}`;ze.a.ShadersStore.kernelBlurVertexShader=bp;var _n=function(r){function t(e,n,i,o,a,s,d,p,b,x,O){s===void 0&&(s=we.a.BILINEAR_SAMPLINGMODE),b===void 0&&(b=h.a.TEXTURETYPE_UNSIGNED_INT),x===void 0&&(x=""),O===void 0&&(O=!1);var B=r.call(this,e,"kernelBlur",["delta","direction","cameraMinMaxZ"],["circleOfConfusionSampler"],o,a,s,d,p,null,b,"kernelBlur",{varyingCount:0,depCount:0},!0)||this;return B.blockCompilation=O,B._packedFloat=!1,B._staticDefines="",B._staticDefines=x,B.direction=n,B.onApplyObservable.add(function(F){B._outputTexture?F.setFloat2("delta",1/B._outputTexture.width*B.direction.x,1/B._outputTexture.height*B.direction.y):F.setFloat2("delta",1/B.width*B.direction.x,1/B.height*B.direction.y)}),B.kernel=i,B}return Object(c.d)(t,r),Object.defineProperty(t.prototype,"kernel",{get:function(){return this._idealKernel},set:function(e){this._idealKernel!==e&&(e=Math.max(e,1),this._idealKernel=e,this._kernel=this._nearestBestKernel(e),this.blockCompilation||this._updateParameters())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"packedFloat",{get:function(){return this._packedFloat},set:function(e){this._packedFloat!==e&&(this._packedFloat=e,this.blockCompilation||this._updateParameters())},enumerable:!1,configurable:!0}),t.prototype.getClassName=function(){return"BlurPostProcess"},t.prototype.updateEffect=function(e,n,i,o,a,s){this._updateParameters(a,s)},t.prototype._updateParameters=function(e,n){for(var i=this._kernel,o=(i-1)/2,a=[],s=[],d=0,p=0;p0)return Math.max(a,3)}return Math.max(n,3)},t.prototype._gaussianWeight=function(e){var n=-e*e/.2222222222222222;return 1/(Math.sqrt(2*Math.PI)*(1/3))*Math.exp(n)},t.prototype._glslFloat=function(e,n){return n===void 0&&(n=8),e.toFixed(n).replace(/0+$/,"")},t._Parse=function(e,n,i,o){return L.a.Parse(function(){return new t(e.name,e.direction,e.kernel,e.options,n,e.renderTargetSamplingMode,i.getEngine(),e.reusable,e.textureType,void 0,!1)},e,i,o)},Object(c.c)([Object(L.c)("kernel")],t.prototype,"_kernel",void 0),Object(c.c)([Object(L.c)("packedFloat")],t.prototype,"_packedFloat",void 0),Object(c.c)([Object(L.n)()],t.prototype,"direction",void 0),t}(_t);C.a.RegisteredTypes["BABYLON.BlurPostProcess"]=_n;var Ds=function(r){function t(e,n,i,o,a,s,d){a===void 0&&(a=h.a.TEXTURETYPE_UNSIGNED_INT),s===void 0&&(s=we.a.BILINEAR_SAMPLINGMODE),d===void 0&&(d=!0);var p=r.call(this,e,n,i,o,!0,a,!1,s,d)||this;return p.scene=i,p.mirrorPlane=new vr.a(0,1,0,1),p._transformMatrix=u.a.Zero(),p._mirrorMatrix=u.a.Zero(),p._adaptiveBlurKernel=0,p._blurKernelX=0,p._blurKernelY=0,p._blurRatio=1,p.ignoreCameraViewport=!0,p._updateGammaSpace(),p._imageProcessingConfigChangeObserver=i.imageProcessingConfiguration.onUpdateParameters.add(function(){p._updateGammaSpace}),p.onBeforeRenderObservable.add(function(){u.a.ReflectionToRef(p.mirrorPlane,p._mirrorMatrix),p._savedViewMatrix=i.getViewMatrix(),p._mirrorMatrix.multiplyToRef(p._savedViewMatrix,p._transformMatrix),i.setTransformMatrix(p._transformMatrix,i.getProjectionMatrix()),i.clipPlane=p.mirrorPlane,i.getEngine().cullBackFaces=!1,i._mirroredCameraPosition=u.e.TransformCoordinates(i.activeCamera.globalPosition,p._mirrorMatrix)}),p.onAfterRenderObservable.add(function(){i.setTransformMatrix(p._savedViewMatrix,i.getProjectionMatrix()),i.getEngine().cullBackFaces=!0,i._mirroredCameraPosition=null,i.clipPlane=null}),p}return Object(c.d)(t,r),Object.defineProperty(t.prototype,"blurRatio",{get:function(){return this._blurRatio},set:function(e){this._blurRatio!==e&&(this._blurRatio=e,this._preparePostProcesses())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"adaptiveBlurKernel",{set:function(e){this._adaptiveBlurKernel=e,this._autoComputeBlurKernel()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"blurKernel",{set:function(e){this.blurKernelX=e,this.blurKernelY=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"blurKernelX",{get:function(){return this._blurKernelX},set:function(e){this._blurKernelX!==e&&(this._blurKernelX=e,this._preparePostProcesses())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"blurKernelY",{get:function(){return this._blurKernelY},set:function(e){this._blurKernelY!==e&&(this._blurKernelY=e,this._preparePostProcesses())},enumerable:!1,configurable:!0}),t.prototype._autoComputeBlurKernel=function(){var e=this.getScene().getEngine(),n=this.getRenderWidth()/e.getRenderWidth(),i=this.getRenderHeight()/e.getRenderHeight();this.blurKernelX=this._adaptiveBlurKernel*n,this.blurKernelY=this._adaptiveBlurKernel*i},t.prototype._onRatioRescale=function(){this._sizeRatio&&(this.resize(this._initialSizeParameter),this._adaptiveBlurKernel||this._preparePostProcesses()),this._adaptiveBlurKernel&&this._autoComputeBlurKernel()},t.prototype._updateGammaSpace=function(){this.gammaSpace=!this.scene.imageProcessingConfiguration.isEnabled||!this.scene.imageProcessingConfiguration.applyByPostProcess},t.prototype._preparePostProcesses=function(){if(this.clearPostProcesses(!0),this._blurKernelX&&this._blurKernelY){var e=this.getScene().getEngine(),n=e.getCaps().textureFloatRender?h.a.TEXTURETYPE_FLOAT:h.a.TEXTURETYPE_HALF_FLOAT;this._blurX=new _n("horizontal blur",new u.d(1,0),this._blurKernelX,this._blurRatio,null,we.a.BILINEAR_SAMPLINGMODE,e,!1,n),this._blurX.autoClear=!1,this._blurRatio===1&&this.samples<2&&this._texture?this._blurX.inputTexture=this._texture:this._blurX.alwaysForcePOT=!0,this._blurY=new _n("vertical blur",new u.d(0,1),this._blurKernelY,this._blurRatio,null,we.a.BILINEAR_SAMPLINGMODE,e,!1,n),this._blurY.autoClear=!1,this._blurY.alwaysForcePOT=this._blurRatio!==1,this.addPostProcess(this._blurX),this.addPostProcess(this._blurY)}else this._blurY&&(this.removePostProcess(this._blurY),this._blurY.dispose(),this._blurY=null),this._blurX&&(this.removePostProcess(this._blurX),this._blurX.dispose(),this._blurX=null)},t.prototype.clone=function(){var e=this.getScene();if(!e)return this;var n=this.getSize(),i=new t(this.name,n.width,e,this._renderTargetOptions.generateMipMaps,this._renderTargetOptions.type,this._renderTargetOptions.samplingMode,this._renderTargetOptions.generateDepthBuffer);return i.hasAlpha=this.hasAlpha,i.level=this.level,i.mirrorPlane=this.mirrorPlane.clone(),this.renderList&&(i.renderList=this.renderList.slice(0)),i},t.prototype.serialize=function(){if(!this.name)return null;var e=r.prototype.serialize.call(this);return e.mirrorPlane=this.mirrorPlane.asArray(),e},t.prototype.dispose=function(){r.prototype.dispose.call(this),this.scene.imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingConfigChangeObserver)},t}(sn);we.a._CreateMirror=function(r,t,e,n){return new Ds(r,t,e,n)};var Qn=f(34),oi=function(r){function t(e,n,i,o,a,s,d,p,b,x,O,B,F,z){var J;i===void 0&&(i=null),o===void 0&&(o=!1),a===void 0&&(a=null),s===void 0&&(s=null),d===void 0&&(d=null),p===void 0&&(p=h.a.TEXTUREFORMAT_RGBA),b===void 0&&(b=!1),x===void 0&&(x=null),O===void 0&&(O=!1),B===void 0&&(B=.8),F===void 0&&(F=0);var ie=r.call(this,n)||this;if(ie.onLoadObservable=new R.c,ie.boundingBoxPosition=u.e.Zero(),ie._rotationY=0,ie._files=null,ie._forcedExtension=null,ie._extensions=null,ie.name=e,ie.url=e,ie._noMipmap=o,ie.hasAlpha=!1,ie._format=p,ie.isCube=!0,ie._textureMatrix=u.a.Identity(),ie._createPolynomials=O,ie.coordinatesMode=we.a.CUBIC_MODE,ie._extensions=i,ie._files=a,ie._forcedExtension=x,ie._loaderOptions=z,!e&&!a)return ie;var se=e.lastIndexOf("."),ce=x||(se>-1?e.substring(se).toLowerCase():""),ue=ce===".dds",fe=ce===".env";if(fe?(ie.gammaSpace=!1,ie._prefiltered=!1,ie.anisotropicFilteringLevel=1):(ie._prefiltered=b,b&&(ie.gammaSpace=!1,ie.anisotropicFilteringLevel=1)),ie._texture=ie._getFromCache(e,o),!a&&(fe||ue||i||(i=["_px.jpg","_py.jpg","_pz.jpg","_nx.jpg","_ny.jpg","_nz.jpg"]),a=[],i))for(var ve=0;ve +#define RECIPROCAL_PI2 0.15915494 + +uniform vec3 vEyePosition; + +varying vec3 vPositionW; +#ifdef MAINUV1 +varying vec2 vMainUV1; +#endif +#ifdef MAINUV2 +varying vec2 vMainUV2; +#endif +#ifdef NORMAL +varying vec3 vNormalW; +#endif +#ifdef DIFFUSE +#if DIFFUSEDIRECTUV == 1 +#define vDiffuseUV vMainUV1 +#elif DIFFUSEDIRECTUV == 2 +#define vDiffuseUV vMainUV2 +#else +varying vec2 vDiffuseUV; +#endif +uniform sampler2D diffuseSampler; +#endif + +#ifdef REFLECTION +#ifdef REFLECTIONMAP_3D +#define sampleReflection(s,c) textureCube(s,c) +uniform samplerCube reflectionSampler; +#ifdef TEXTURELODSUPPORT +#define sampleReflectionLod(s,c,l) textureCubeLodEXT(s,c,l) +#else +uniform samplerCube reflectionSamplerLow; +uniform samplerCube reflectionSamplerHigh; +#endif +#else +#define sampleReflection(s,c) texture2D(s,c) +uniform sampler2D reflectionSampler; +#ifdef TEXTURELODSUPPORT +#define sampleReflectionLod(s,c,l) texture2DLodEXT(s,c,l) +#else +uniform samplerCube reflectionSamplerLow; +uniform samplerCube reflectionSamplerHigh; +#endif +#endif +#ifdef REFLECTIONMAP_SKYBOX +varying vec3 vPositionUVW; +#else +#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED) +varying vec3 vDirectionW; +#endif +#endif +#include +#endif + +#ifndef FROMLINEARSPACE +#define FROMLINEARSPACE; +#endif + +#ifndef SHADOWONLY +#define SHADOWONLY; +#endif +#include + +#include<__decl__lightFragment>[0..maxSimultaneousLights] +#include +#include +#include +#include +#include + +#include +#ifdef REFLECTIONFRESNEL +#define FRESNEL_MAXIMUM_ON_ROUGH 0.25 +vec3 fresnelSchlickEnvironmentGGX(float VdotN,vec3 reflectance0,vec3 reflectance90,float smoothness) +{ + +float weight=mix(FRESNEL_MAXIMUM_ON_ROUGH,1.0,smoothness); +return reflectance0+weight*(reflectance90-reflectance0)*pow5(saturate(1.0-VdotN)); +} +#endif +void main(void) { +#include +vec3 viewDirectionW=normalize(vEyePosition-vPositionW); + +#ifdef NORMAL +vec3 normalW=normalize(vNormalW); +#else +vec3 normalW=vec3(0.0,1.0,0.0); +#endif + +float shadow=1.; +float globalShadow=0.; +float shadowLightCount=0.; +#include[0..maxSimultaneousLights] +#ifdef SHADOWINUSE +globalShadow/=shadowLightCount; +#else +globalShadow=1.0; +#endif +#ifndef BACKMAT_SHADOWONLY + +vec4 reflectionColor=vec4(1.,1.,1.,1.); +#ifdef REFLECTION +vec3 reflectionVector=computeReflectionCoords(vec4(vPositionW,1.0),normalW); +#ifdef REFLECTIONMAP_OPPOSITEZ +reflectionVector.z*=-1.0; +#endif + +#ifdef REFLECTIONMAP_3D +vec3 reflectionCoords=reflectionVector; +#else +vec2 reflectionCoords=reflectionVector.xy; +#ifdef REFLECTIONMAP_PROJECTION +reflectionCoords/=reflectionVector.z; +#endif +reflectionCoords.y=1.0-reflectionCoords.y; +#endif +#ifdef REFLECTIONBLUR +float reflectionLOD=vReflectionInfos.y; +#ifdef TEXTURELODSUPPORT + +reflectionLOD=reflectionLOD*log2(vReflectionMicrosurfaceInfos.x)*vReflectionMicrosurfaceInfos.y+vReflectionMicrosurfaceInfos.z; +reflectionColor=sampleReflectionLod(reflectionSampler,reflectionCoords,reflectionLOD); +#else +float lodReflectionNormalized=saturate(reflectionLOD); +float lodReflectionNormalizedDoubled=lodReflectionNormalized*2.0; +vec4 reflectionSpecularMid=sampleReflection(reflectionSampler,reflectionCoords); +if(lodReflectionNormalizedDoubled<1.0){ +reflectionColor=mix( +sampleReflection(reflectionSamplerHigh,reflectionCoords), +reflectionSpecularMid, +lodReflectionNormalizedDoubled +); +} else { +reflectionColor=mix( +reflectionSpecularMid, +sampleReflection(reflectionSamplerLow,reflectionCoords), +lodReflectionNormalizedDoubled-1.0 +); +} +#endif +#else +vec4 reflectionSample=sampleReflection(reflectionSampler,reflectionCoords); +reflectionColor=reflectionSample; +#endif +#ifdef RGBDREFLECTION +reflectionColor.rgb=fromRGBD(reflectionColor); +#endif +#ifdef GAMMAREFLECTION +reflectionColor.rgb=toLinearSpace(reflectionColor.rgb); +#endif +#ifdef REFLECTIONBGR +reflectionColor.rgb=reflectionColor.bgr; +#endif + +reflectionColor.rgb*=vReflectionInfos.x; +#endif + +vec3 diffuseColor=vec3(1.,1.,1.); +float finalAlpha=alpha; +#ifdef DIFFUSE +vec4 diffuseMap=texture2D(diffuseSampler,vDiffuseUV); +#ifdef GAMMADIFFUSE +diffuseMap.rgb=toLinearSpace(diffuseMap.rgb); +#endif + +diffuseMap.rgb*=vDiffuseInfos.y; +#ifdef DIFFUSEHASALPHA +finalAlpha*=diffuseMap.a; +#endif +diffuseColor=diffuseMap.rgb; +#endif + +#ifdef REFLECTIONFRESNEL +vec3 colorBase=diffuseColor; +#else +vec3 colorBase=reflectionColor.rgb*diffuseColor; +#endif +colorBase=max(colorBase,0.0); + +#ifdef USERGBCOLOR +vec3 finalColor=colorBase; +#else +#ifdef USEHIGHLIGHTANDSHADOWCOLORS +vec3 mainColor=mix(vPrimaryColorShadow.rgb,vPrimaryColor.rgb,colorBase); +#else +vec3 mainColor=vPrimaryColor.rgb; +#endif +vec3 finalColor=colorBase*mainColor; +#endif + +#ifdef REFLECTIONFRESNEL +vec3 reflectionAmount=vReflectionControl.xxx; +vec3 reflectionReflectance0=vReflectionControl.yyy; +vec3 reflectionReflectance90=vReflectionControl.zzz; +float VdotN=dot(normalize(vEyePosition),normalW); +vec3 planarReflectionFresnel=fresnelSchlickEnvironmentGGX(saturate(VdotN),reflectionReflectance0,reflectionReflectance90,1.0); +reflectionAmount*=planarReflectionFresnel; +#ifdef REFLECTIONFALLOFF +float reflectionDistanceFalloff=1.0-saturate(length(vPositionW.xyz-vBackgroundCenter)*vReflectionControl.w); +reflectionDistanceFalloff*=reflectionDistanceFalloff; +reflectionAmount*=reflectionDistanceFalloff; +#endif +finalColor=mix(finalColor,reflectionColor.rgb,saturate(reflectionAmount)); +#endif +#ifdef OPACITYFRESNEL +float viewAngleToFloor=dot(normalW,normalize(vEyePosition-vBackgroundCenter)); + +const float startAngle=0.1; +float fadeFactor=saturate(viewAngleToFloor/startAngle); +finalAlpha*=fadeFactor*fadeFactor; +#endif + +#ifdef SHADOWINUSE +finalColor=mix(finalColor*shadowLevel,finalColor,globalShadow); +#endif + +vec4 color=vec4(finalColor,finalAlpha); +#else +vec4 color=vec4(vPrimaryColor.rgb,(1.0-clamp(globalShadow,0.,1.))*alpha); +#endif +#include +#ifdef IMAGEPROCESSINGPOSTPROCESS + + +color.rgb=clamp(color.rgb,0.,30.0); +#else + +color=applyImageProcessing(color); +#endif +#ifdef PREMULTIPLYALPHA + +color.rgb*=color.a; +#endif +#ifdef NOISE +color.rgb+=dither(vPositionW.xy,0.5); +color=max(color,0.0); +#endif +gl_FragColor=color; +} +`;ze.a.ShadersStore.backgroundPixelShader=Ep;var Sp=`uniform mat4 view; +uniform mat4 viewProjection; +uniform float shadowLevel; +#ifdef DIFFUSE +uniform mat4 diffuseMatrix; +uniform vec2 vDiffuseInfos; +#endif +#ifdef REFLECTION +uniform vec2 vReflectionInfos; +uniform mat4 reflectionMatrix; +uniform vec3 vReflectionMicrosurfaceInfos; +uniform float fFovMultiplier; +#endif +#ifdef POINTSIZE +uniform float pointSize; +#endif`;ze.a.IncludesShadersStore.backgroundVertexDeclaration=Sp,f(78),f(79),f(117),f(137),f(80),f(81),f(111),f(157),f(138);var Ap=`precision highp float; +#include<__decl__backgroundVertex> +#include + +attribute vec3 position; +#ifdef NORMAL +attribute vec3 normal; +#endif +#include + +#include + +varying vec3 vPositionW; +#ifdef NORMAL +varying vec3 vNormalW; +#endif +#ifdef UV1 +attribute vec2 uv; +#endif +#ifdef UV2 +attribute vec2 uv2; +#endif +#ifdef MAINUV1 +varying vec2 vMainUV1; +#endif +#ifdef MAINUV2 +varying vec2 vMainUV2; +#endif +#if defined(DIFFUSE) && DIFFUSEDIRECTUV == 0 +varying vec2 vDiffuseUV; +#endif +#include +#include +#include<__decl__lightFragment>[0..maxSimultaneousLights] +#ifdef REFLECTIONMAP_SKYBOX +varying vec3 vPositionUVW; +#endif +#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED) +varying vec3 vDirectionW; +#endif +void main(void) { +#ifdef REFLECTIONMAP_SKYBOX +vPositionUVW=position; +#endif +#include +#include +#ifdef MULTIVIEW +if (gl_ViewID_OVR == 0u) { +gl_Position=viewProjection*finalWorld*vec4(position,1.0); +} else { +gl_Position=viewProjectionR*finalWorld*vec4(position,1.0); +} +#else +gl_Position=viewProjection*finalWorld*vec4(position,1.0); +#endif +vec4 worldPos=finalWorld*vec4(position,1.0); +vPositionW=vec3(worldPos); +#ifdef NORMAL +mat3 normalWorld=mat3(finalWorld); +#ifdef NONUNIFORMSCALING +normalWorld=transposeMat3(inverseMat3(normalWorld)); +#endif +vNormalW=normalize(normalWorld*normal); +#endif +#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED) +vDirectionW=normalize(vec3(finalWorld*vec4(position,0.0))); +#ifdef EQUIRECTANGULAR_RELFECTION_FOV +mat3 screenToWorld=inverseMat3(mat3(finalWorld*viewProjection)); +vec3 segment=mix(vDirectionW,screenToWorld*vec3(0.0,0.0,1.0),abs(fFovMultiplier-1.0)); +if (fFovMultiplier<=1.0) { +vDirectionW=normalize(segment); +} else { +vDirectionW=normalize(vDirectionW+(vDirectionW-segment)); +} +#endif +#endif +#ifndef UV1 +vec2 uv=vec2(0.,0.); +#endif +#ifndef UV2 +vec2 uv2=vec2(0.,0.); +#endif +#ifdef MAINUV1 +vMainUV1=uv; +#endif +#ifdef MAINUV2 +vMainUV2=uv2; +#endif +#if defined(DIFFUSE) && DIFFUSEDIRECTUV == 0 +if (vDiffuseInfos.x == 0.) +{ +vDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0)); +} +else +{ +vDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0)); +} +#endif + +#include + +#include + +#include[0..maxSimultaneousLights] + +#ifdef VERTEXCOLOR +vColor=color; +#endif + +#ifdef POINTSIZE +gl_PointSize=pointSize; +#endif +} +`;ze.a.ShadersStore.backgroundVertexShader=Ap;var Sr=f(67),Pp=function(r){function t(){var e=r.call(this)||this;return e.DIFFUSE=!1,e.DIFFUSEDIRECTUV=0,e.GAMMADIFFUSE=!1,e.DIFFUSEHASALPHA=!1,e.OPACITYFRESNEL=!1,e.REFLECTIONBLUR=!1,e.REFLECTIONFRESNEL=!1,e.REFLECTIONFALLOFF=!1,e.TEXTURELODSUPPORT=!1,e.PREMULTIPLYALPHA=!1,e.USERGBCOLOR=!1,e.USEHIGHLIGHTANDSHADOWCOLORS=!1,e.BACKMAT_SHADOWONLY=!1,e.NOISE=!1,e.REFLECTIONBGR=!1,e.IMAGEPROCESSING=!1,e.VIGNETTE=!1,e.VIGNETTEBLENDMODEMULTIPLY=!1,e.VIGNETTEBLENDMODEOPAQUE=!1,e.TONEMAPPING=!1,e.TONEMAPPING_ACES=!1,e.CONTRAST=!1,e.COLORCURVES=!1,e.COLORGRADING=!1,e.COLORGRADING3D=!1,e.SAMPLER3DGREENDEPTH=!1,e.SAMPLER3DBGRMAP=!1,e.IMAGEPROCESSINGPOSTPROCESS=!1,e.EXPOSURE=!1,e.MULTIVIEW=!1,e.REFLECTION=!1,e.REFLECTIONMAP_3D=!1,e.REFLECTIONMAP_SPHERICAL=!1,e.REFLECTIONMAP_PLANAR=!1,e.REFLECTIONMAP_CUBIC=!1,e.REFLECTIONMAP_PROJECTION=!1,e.REFLECTIONMAP_SKYBOX=!1,e.REFLECTIONMAP_EXPLICIT=!1,e.REFLECTIONMAP_EQUIRECTANGULAR=!1,e.REFLECTIONMAP_EQUIRECTANGULAR_FIXED=!1,e.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED=!1,e.INVERTCUBICMAP=!1,e.REFLECTIONMAP_OPPOSITEZ=!1,e.LODINREFLECTIONALPHA=!1,e.GAMMAREFLECTION=!1,e.RGBDREFLECTION=!1,e.EQUIRECTANGULAR_RELFECTION_FOV=!1,e.MAINUV1=!1,e.MAINUV2=!1,e.UV1=!1,e.UV2=!1,e.CLIPPLANE=!1,e.CLIPPLANE2=!1,e.CLIPPLANE3=!1,e.CLIPPLANE4=!1,e.CLIPPLANE5=!1,e.CLIPPLANE6=!1,e.POINTSIZE=!1,e.FOG=!1,e.NORMAL=!1,e.NUM_BONE_INFLUENCERS=0,e.BonesPerMesh=0,e.INSTANCES=!1,e.SHADOWFLOAT=!1,e.rebuild(),e}return Object(c.d)(t,r),t}($o.a),oo=function(r){function t(e,n){var i=r.call(this,e,n)||this;return i.primaryColor=M.a.White(),i._primaryColorShadowLevel=0,i._primaryColorHighlightLevel=0,i.reflectionTexture=null,i.reflectionBlur=0,i.diffuseTexture=null,i._shadowLights=null,i.shadowLights=null,i.shadowLevel=0,i.sceneCenter=u.e.Zero(),i.opacityFresnel=!0,i.reflectionFresnel=!1,i.reflectionFalloffDistance=0,i.reflectionAmount=1,i.reflectionReflectance0=.05,i.reflectionReflectance90=.5,i.useRGBColor=!0,i.enableNoise=!1,i._fovMultiplier=1,i.useEquirectangularFOV=!1,i._maxSimultaneousLights=4,i.maxSimultaneousLights=4,i._shadowOnly=!1,i.shadowOnly=!1,i._imageProcessingObserver=null,i.switchToBGR=!1,i._renderTargets=new di.a(16),i._reflectionControls=u.f.Zero(),i._white=M.a.White(),i._primaryShadowColor=M.a.Black(),i._primaryHighlightColor=M.a.Black(),i._attachImageProcessingConfiguration(null),i.getRenderTargetTextures=function(){return i._renderTargets.reset(),i._diffuseTexture&&i._diffuseTexture.isRenderTarget&&i._renderTargets.push(i._diffuseTexture),i._reflectionTexture&&i._reflectionTexture.isRenderTarget&&i._renderTargets.push(i._reflectionTexture),i._renderTargets},i}return Object(c.d)(t,r),Object.defineProperty(t.prototype,"_perceptualColor",{get:function(){return this.__perceptualColor},set:function(e){this.__perceptualColor=e,this._computePrimaryColorFromPerceptualColor(),this._markAllSubMeshesAsLightsDirty()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"primaryColorShadowLevel",{get:function(){return this._primaryColorShadowLevel},set:function(e){this._primaryColorShadowLevel=e,this._computePrimaryColors(),this._markAllSubMeshesAsLightsDirty()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"primaryColorHighlightLevel",{get:function(){return this._primaryColorHighlightLevel},set:function(e){this._primaryColorHighlightLevel=e,this._computePrimaryColors(),this._markAllSubMeshesAsLightsDirty()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"reflectionStandardFresnelWeight",{set:function(e){var n=e;n<.5?(n*=2,this.reflectionReflectance0=t.StandardReflectance0*n,this.reflectionReflectance90=t.StandardReflectance90*n):(n=2*n-1,this.reflectionReflectance0=t.StandardReflectance0+(1-t.StandardReflectance0)*n,this.reflectionReflectance90=t.StandardReflectance90+(1-t.StandardReflectance90)*n)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"fovMultiplier",{get:function(){return this._fovMultiplier},set:function(e){isNaN(e)&&(e=1),this._fovMultiplier=Math.max(0,Math.min(2,e))},enumerable:!1,configurable:!0}),t.prototype._attachImageProcessingConfiguration=function(e){var n=this;e!==this._imageProcessingConfiguration&&(this._imageProcessingConfiguration&&this._imageProcessingObserver&&this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),this._imageProcessingConfiguration=e||this.getScene().imageProcessingConfiguration,this._imageProcessingConfiguration&&(this._imageProcessingObserver=this._imageProcessingConfiguration.onUpdateParameters.add(function(){n._computePrimaryColorFromPerceptualColor(),n._markAllSubMeshesAsImageProcessingDirty()})))},Object.defineProperty(t.prototype,"imageProcessingConfiguration",{get:function(){return this._imageProcessingConfiguration},set:function(e){this._attachImageProcessingConfiguration(e),this._markAllSubMeshesAsTexturesDirty()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"cameraColorCurvesEnabled",{get:function(){return this.imageProcessingConfiguration.colorCurvesEnabled},set:function(e){this.imageProcessingConfiguration.colorCurvesEnabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"cameraColorGradingEnabled",{get:function(){return this.imageProcessingConfiguration.colorGradingEnabled},set:function(e){this.imageProcessingConfiguration.colorGradingEnabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"cameraToneMappingEnabled",{get:function(){return this._imageProcessingConfiguration.toneMappingEnabled},set:function(e){this._imageProcessingConfiguration.toneMappingEnabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"cameraExposure",{get:function(){return this._imageProcessingConfiguration.exposure},set:function(e){this._imageProcessingConfiguration.exposure=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"cameraContrast",{get:function(){return this._imageProcessingConfiguration.contrast},set:function(e){this._imageProcessingConfiguration.contrast=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"cameraColorGradingTexture",{get:function(){return this._imageProcessingConfiguration.colorGradingTexture},set:function(e){this.imageProcessingConfiguration.colorGradingTexture=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"cameraColorCurves",{get:function(){return this.imageProcessingConfiguration.colorCurves},set:function(e){this.imageProcessingConfiguration.colorCurves=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"hasRenderTargetTextures",{get:function(){return!(!this._diffuseTexture||!this._diffuseTexture.isRenderTarget)||!(!this._reflectionTexture||!this._reflectionTexture.isRenderTarget)},enumerable:!1,configurable:!0}),t.prototype.needAlphaTesting=function(){return!0},t.prototype.needAlphaBlending=function(){return this.alpha<1||this._diffuseTexture!=null&&this._diffuseTexture.hasAlpha||this._shadowOnly},t.prototype.isReadyForSubMesh=function(e,n,i){var o=this;if(i===void 0&&(i=!1),n.effect&&this.isFrozen&&n.effect._wasPreviouslyReady)return!0;n._materialDefines||(n._materialDefines=new Pp);var a=this.getScene(),s=n._materialDefines;if(this._isReadyForSubMesh(n))return!0;var d=a.getEngine();if(et.a.PrepareDefinesForLights(a,e,s,!1,this._maxSimultaneousLights),s._needNormals=!0,et.a.PrepareDefinesForMultiview(a,s),s._areTexturesDirty){if(s._needUVs=!1,a.texturesEnabled){if(a.getEngine().getCaps().textureLOD&&(s.TEXTURELODSUPPORT=!0),this._diffuseTexture&&ut.a.DiffuseTextureEnabled){if(!this._diffuseTexture.isReadyOrNotBlocking())return!1;et.a.PrepareDefinesForMergedUV(this._diffuseTexture,s,"DIFFUSE"),s.DIFFUSEHASALPHA=this._diffuseTexture.hasAlpha,s.GAMMADIFFUSE=this._diffuseTexture.gammaSpace,s.OPACITYFRESNEL=this._opacityFresnel}else s.DIFFUSE=!1,s.DIFFUSEHASALPHA=!1,s.GAMMADIFFUSE=!1,s.OPACITYFRESNEL=!1;var p=this._reflectionTexture;if(p&&ut.a.ReflectionTextureEnabled){if(!p.isReadyOrNotBlocking())return!1;switch(s.REFLECTION=!0,s.GAMMAREFLECTION=p.gammaSpace,s.RGBDREFLECTION=p.isRGBD,s.REFLECTIONBLUR=this._reflectionBlur>0,s.REFLECTIONMAP_OPPOSITEZ=this.getScene().useRightHandedSystem?!p.invertZ:p.invertZ,s.LODINREFLECTIONALPHA=p.lodLevelInAlpha,s.EQUIRECTANGULAR_RELFECTION_FOV=this.useEquirectangularFOV,s.REFLECTIONBGR=this.switchToBGR,p.coordinatesMode===we.a.INVCUBIC_MODE&&(s.INVERTCUBICMAP=!0),s.REFLECTIONMAP_3D=p.isCube,p.coordinatesMode){case we.a.EXPLICIT_MODE:s.REFLECTIONMAP_EXPLICIT=!0;break;case we.a.PLANAR_MODE:s.REFLECTIONMAP_PLANAR=!0;break;case we.a.PROJECTION_MODE:s.REFLECTIONMAP_PROJECTION=!0;break;case we.a.SKYBOX_MODE:s.REFLECTIONMAP_SKYBOX=!0;break;case we.a.SPHERICAL_MODE:s.REFLECTIONMAP_SPHERICAL=!0;break;case we.a.EQUIRECTANGULAR_MODE:s.REFLECTIONMAP_EQUIRECTANGULAR=!0;break;case we.a.FIXED_EQUIRECTANGULAR_MODE:s.REFLECTIONMAP_EQUIRECTANGULAR_FIXED=!0;break;case we.a.FIXED_EQUIRECTANGULAR_MIRRORED_MODE:s.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED=!0;break;case we.a.CUBIC_MODE:case we.a.INVCUBIC_MODE:default:s.REFLECTIONMAP_CUBIC=!0}this.reflectionFresnel?(s.REFLECTIONFRESNEL=!0,s.REFLECTIONFALLOFF=this.reflectionFalloffDistance>0,this._reflectionControls.x=this.reflectionAmount,this._reflectionControls.y=this.reflectionReflectance0,this._reflectionControls.z=this.reflectionReflectance90,this._reflectionControls.w=1/this.reflectionFalloffDistance):(s.REFLECTIONFRESNEL=!1,s.REFLECTIONFALLOFF=!1)}else s.REFLECTION=!1,s.REFLECTIONFRESNEL=!1,s.REFLECTIONFALLOFF=!1,s.REFLECTIONBLUR=!1,s.REFLECTIONMAP_3D=!1,s.REFLECTIONMAP_SPHERICAL=!1,s.REFLECTIONMAP_PLANAR=!1,s.REFLECTIONMAP_CUBIC=!1,s.REFLECTIONMAP_PROJECTION=!1,s.REFLECTIONMAP_SKYBOX=!1,s.REFLECTIONMAP_EXPLICIT=!1,s.REFLECTIONMAP_EQUIRECTANGULAR=!1,s.REFLECTIONMAP_EQUIRECTANGULAR_FIXED=!1,s.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED=!1,s.INVERTCUBICMAP=!1,s.REFLECTIONMAP_OPPOSITEZ=!1,s.LODINREFLECTIONALPHA=!1,s.GAMMAREFLECTION=!1,s.RGBDREFLECTION=!1}s.PREMULTIPLYALPHA=this.alphaMode===h.a.ALPHA_PREMULTIPLIED||this.alphaMode===h.a.ALPHA_PREMULTIPLIED_PORTERDUFF,s.USERGBCOLOR=this._useRGBColor,s.NOISE=this._enableNoise}if(s._areLightsDirty&&(s.USEHIGHLIGHTANDSHADOWCOLORS=!this._useRGBColor&&(this._primaryColorShadowLevel!==0||this._primaryColorHighlightLevel!==0),s.BACKMAT_SHADOWONLY=this._shadowOnly),s._areImageProcessingDirty&&this._imageProcessingConfiguration){if(!this._imageProcessingConfiguration.isReady())return!1;this._imageProcessingConfiguration.prepareDefines(s)}if(et.a.PrepareDefinesForMisc(e,a,!1,this.pointsCloud,this.fogEnabled,this._shouldTurnAlphaTestOn(e),s),et.a.PrepareDefinesForFrameBoundValues(a,d,s,i,null,n.getRenderingMesh().hasThinInstances),et.a.PrepareDefinesForAttributes(e,s,!1,!0,!1)&&e&&(a.getEngine().getCaps().standardDerivatives||e.isVerticesDataPresent(Oe.b.NormalKind)||(e.createNormals(!0),l.a.Warn("BackgroundMaterial: Normals have been created for the mesh: "+e.name))),s.isDirty){s.markAsProcessed(),a.resetCachedMaterial();var b=new Sr.a;s.FOG&&b.addFallback(0,"FOG"),s.POINTSIZE&&b.addFallback(1,"POINTSIZE"),s.MULTIVIEW&&b.addFallback(0,"MULTIVIEW"),et.a.HandleFallbacksForShadows(s,b,this._maxSimultaneousLights);var x=[Oe.b.PositionKind];s.NORMAL&&x.push(Oe.b.NormalKind),s.UV1&&x.push(Oe.b.UVKind),s.UV2&&x.push(Oe.b.UV2Kind),et.a.PrepareAttributesForBones(x,e,s,b),et.a.PrepareAttributesForInstances(x,s);var O=["world","view","viewProjection","vEyePosition","vLightsType","vFogInfos","vFogColor","pointSize","vClipPlane","vClipPlane2","vClipPlane3","vClipPlane4","vClipPlane5","vClipPlane6","mBones","vPrimaryColor","vPrimaryColorShadow","vReflectionInfos","reflectionMatrix","vReflectionMicrosurfaceInfos","fFovMultiplier","shadowLevel","alpha","vBackgroundCenter","vReflectionControl","vDiffuseInfos","diffuseMatrix"],B=["diffuseSampler","reflectionSampler","reflectionSamplerLow","reflectionSamplerHigh"],F=["Material","Scene"];vn.a&&(vn.a.PrepareUniforms(O,s),vn.a.PrepareSamplers(B,s)),et.a.PrepareUniformsAndSamplersList({uniformsNames:O,uniformBuffersNames:F,samplers:B,defines:s,maxSimultaneousLights:this._maxSimultaneousLights});var z=s.toString();n.setEffect(a.getEngine().createEffect("background",{attributes:x,uniformsNames:O,uniformBuffersNames:F,samplers:B,defines:z,fallbacks:b,onCompiled:function(J){o.onCompiled&&o.onCompiled(J),o.bindSceneUniformBuffer(J,a.getSceneUniformBuffer())},onError:this.onError,indexParameters:{maxSimultaneousLights:this._maxSimultaneousLights}},d),s),this.buildUniformLayout()}return!(!n.effect||!n.effect.isReady())&&(s._renderId=a.getRenderId(),n.effect._wasPreviouslyReady=!0,!0)},t.prototype._computePrimaryColorFromPerceptualColor=function(){this.__perceptualColor&&(this._primaryColor.copyFrom(this.__perceptualColor),this._primaryColor.toLinearSpaceToRef(this._primaryColor),this._imageProcessingConfiguration&&this._primaryColor.scaleToRef(1/this._imageProcessingConfiguration.exposure,this._primaryColor),this._computePrimaryColors())},t.prototype._computePrimaryColors=function(){this._primaryColorShadowLevel===0&&this._primaryColorHighlightLevel===0||(this._primaryColor.scaleToRef(this._primaryColorShadowLevel,this._primaryShadowColor),this._primaryColor.subtractToRef(this._primaryShadowColor,this._primaryShadowColor),this._white.subtractToRef(this._primaryColor,this._primaryHighlightColor),this._primaryHighlightColor.scaleToRef(this._primaryColorHighlightLevel,this._primaryHighlightColor),this._primaryColor.addToRef(this._primaryHighlightColor,this._primaryHighlightColor))},t.prototype.buildUniformLayout=function(){this._uniformBuffer.addUniform("vPrimaryColor",4),this._uniformBuffer.addUniform("vPrimaryColorShadow",4),this._uniformBuffer.addUniform("vDiffuseInfos",2),this._uniformBuffer.addUniform("vReflectionInfos",2),this._uniformBuffer.addUniform("diffuseMatrix",16),this._uniformBuffer.addUniform("reflectionMatrix",16),this._uniformBuffer.addUniform("vReflectionMicrosurfaceInfos",3),this._uniformBuffer.addUniform("fFovMultiplier",1),this._uniformBuffer.addUniform("pointSize",1),this._uniformBuffer.addUniform("shadowLevel",1),this._uniformBuffer.addUniform("alpha",1),this._uniformBuffer.addUniform("vBackgroundCenter",3),this._uniformBuffer.addUniform("vReflectionControl",4),this._uniformBuffer.create()},t.prototype.unbind=function(){this._diffuseTexture&&this._diffuseTexture.isRenderTarget&&this._uniformBuffer.setTexture("diffuseSampler",null),this._reflectionTexture&&this._reflectionTexture.isRenderTarget&&this._uniformBuffer.setTexture("reflectionSampler",null),r.prototype.unbind.call(this)},t.prototype.bindOnlyWorldMatrix=function(e){this._activeEffect.setMatrix("world",e)},t.prototype.bindForSubMesh=function(e,n,i){var o=this.getScene(),a=i._materialDefines;if(a){var s=i.effect;if(s){this._activeEffect=s,this.bindOnlyWorldMatrix(e),et.a.BindBonesParameters(n,this._activeEffect);var d=this._mustRebind(o,s,n.visibility);if(d){this._uniformBuffer.bindToEffect(s,"Material"),this.bindViewProjection(s);var p=this._reflectionTexture;this._uniformBuffer.useUbo&&this.isFrozen&&this._uniformBuffer.isSync||(o.texturesEnabled&&(this._diffuseTexture&&ut.a.DiffuseTextureEnabled&&(this._uniformBuffer.updateFloat2("vDiffuseInfos",this._diffuseTexture.coordinatesIndex,this._diffuseTexture.level),et.a.BindTextureMatrix(this._diffuseTexture,this._uniformBuffer,"diffuse")),p&&ut.a.ReflectionTextureEnabled&&(this._uniformBuffer.updateMatrix("reflectionMatrix",p.getReflectionTextureMatrix()),this._uniformBuffer.updateFloat2("vReflectionInfos",p.level,this._reflectionBlur),this._uniformBuffer.updateFloat3("vReflectionMicrosurfaceInfos",p.getSize().width,p.lodGenerationScale,p.lodGenerationOffset))),this.shadowLevel>0&&this._uniformBuffer.updateFloat("shadowLevel",this.shadowLevel),this._uniformBuffer.updateFloat("alpha",this.alpha),this.pointsCloud&&this._uniformBuffer.updateFloat("pointSize",this.pointSize),a.USEHIGHLIGHTANDSHADOWCOLORS?(this._uniformBuffer.updateColor4("vPrimaryColor",this._primaryHighlightColor,1),this._uniformBuffer.updateColor4("vPrimaryColorShadow",this._primaryShadowColor,1)):this._uniformBuffer.updateColor4("vPrimaryColor",this._primaryColor,1)),this._uniformBuffer.updateFloat("fFovMultiplier",this._fovMultiplier),o.texturesEnabled&&(this._diffuseTexture&&ut.a.DiffuseTextureEnabled&&this._uniformBuffer.setTexture("diffuseSampler",this._diffuseTexture),p&&ut.a.ReflectionTextureEnabled&&(a.REFLECTIONBLUR&&a.TEXTURELODSUPPORT?this._uniformBuffer.setTexture("reflectionSampler",p):a.REFLECTIONBLUR?(this._uniformBuffer.setTexture("reflectionSampler",p._lodTextureMid||p),this._uniformBuffer.setTexture("reflectionSamplerLow",p._lodTextureLow||p),this._uniformBuffer.setTexture("reflectionSamplerHigh",p._lodTextureHigh||p)):this._uniformBuffer.setTexture("reflectionSampler",p),a.REFLECTIONFRESNEL&&(this._uniformBuffer.updateFloat3("vBackgroundCenter",this.sceneCenter.x,this.sceneCenter.y,this.sceneCenter.z),this._uniformBuffer.updateFloat4("vReflectionControl",this._reflectionControls.x,this._reflectionControls.y,this._reflectionControls.z,this._reflectionControls.w)))),et.a.BindClipPlane(this._activeEffect,o),et.a.BindEyePosition(s,o)}!d&&this.isFrozen||(o.lightsEnabled&&et.a.BindLights(o,n,this._activeEffect,a,this._maxSimultaneousLights,!1),this.bindView(s),et.a.BindFogParameters(o,n,this._activeEffect,!0),this._imageProcessingConfiguration&&this._imageProcessingConfiguration.bind(this._activeEffect)),this._uniformBuffer.update(),this._afterBind(n,this._activeEffect)}}},t.prototype.hasTexture=function(e){return!!r.prototype.hasTexture.call(this,e)||this._reflectionTexture===e||this._diffuseTexture===e},t.prototype.dispose=function(e,n){e===void 0&&(e=!1),n===void 0&&(n=!1),n&&(this.diffuseTexture&&this.diffuseTexture.dispose(),this.reflectionTexture&&this.reflectionTexture.dispose()),this._renderTargets.dispose(),this._imageProcessingConfiguration&&this._imageProcessingObserver&&this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),r.prototype.dispose.call(this,e)},t.prototype.clone=function(e){var n=this;return L.a.Clone(function(){return new t(e,n.getScene())},this)},t.prototype.serialize=function(){var e=L.a.Serialize(this);return e.customType="BABYLON.BackgroundMaterial",e},t.prototype.getClassName=function(){return"BackgroundMaterial"},t.Parse=function(e,n,i){return L.a.Parse(function(){return new t(e.name,n)},e,n,i)},t.StandardReflectance0=.05,t.StandardReflectance90=.5,Object(c.c)([Object(L.e)()],t.prototype,"_primaryColor",void 0),Object(c.c)([Object(L.b)("_markAllSubMeshesAsLightsDirty")],t.prototype,"primaryColor",void 0),Object(c.c)([Object(L.e)()],t.prototype,"__perceptualColor",void 0),Object(c.c)([Object(L.c)()],t.prototype,"_primaryColorShadowLevel",void 0),Object(c.c)([Object(L.c)()],t.prototype,"_primaryColorHighlightLevel",void 0),Object(c.c)([Object(L.b)("_markAllSubMeshesAsLightsDirty")],t.prototype,"primaryColorHighlightLevel",null),Object(c.c)([Object(L.m)()],t.prototype,"_reflectionTexture",void 0),Object(c.c)([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"reflectionTexture",void 0),Object(c.c)([Object(L.c)()],t.prototype,"_reflectionBlur",void 0),Object(c.c)([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"reflectionBlur",void 0),Object(c.c)([Object(L.m)()],t.prototype,"_diffuseTexture",void 0),Object(c.c)([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"diffuseTexture",void 0),Object(c.c)([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"shadowLights",void 0),Object(c.c)([Object(L.c)()],t.prototype,"_shadowLevel",void 0),Object(c.c)([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"shadowLevel",void 0),Object(c.c)([Object(L.o)()],t.prototype,"_sceneCenter",void 0),Object(c.c)([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"sceneCenter",void 0),Object(c.c)([Object(L.c)()],t.prototype,"_opacityFresnel",void 0),Object(c.c)([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"opacityFresnel",void 0),Object(c.c)([Object(L.c)()],t.prototype,"_reflectionFresnel",void 0),Object(c.c)([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"reflectionFresnel",void 0),Object(c.c)([Object(L.c)()],t.prototype,"_reflectionFalloffDistance",void 0),Object(c.c)([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"reflectionFalloffDistance",void 0),Object(c.c)([Object(L.c)()],t.prototype,"_reflectionAmount",void 0),Object(c.c)([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"reflectionAmount",void 0),Object(c.c)([Object(L.c)()],t.prototype,"_reflectionReflectance0",void 0),Object(c.c)([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"reflectionReflectance0",void 0),Object(c.c)([Object(L.c)()],t.prototype,"_reflectionReflectance90",void 0),Object(c.c)([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"reflectionReflectance90",void 0),Object(c.c)([Object(L.c)()],t.prototype,"_useRGBColor",void 0),Object(c.c)([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useRGBColor",void 0),Object(c.c)([Object(L.c)()],t.prototype,"_enableNoise",void 0),Object(c.c)([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"enableNoise",void 0),Object(c.c)([Object(L.c)()],t.prototype,"_maxSimultaneousLights",void 0),Object(c.c)([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"maxSimultaneousLights",void 0),Object(c.c)([Object(L.c)()],t.prototype,"_shadowOnly",void 0),Object(c.c)([Object(L.b)("_markAllSubMeshesAsLightsDirty")],t.prototype,"shadowOnly",void 0),Object(c.c)([Object(L.i)()],t.prototype,"_imageProcessingConfiguration",void 0),t}(ea.a);C.a.RegisteredTypes["BABYLON.BackgroundMaterial"]=oo;var Ls=function(){function r(t,e){var n=this;this._errorHandler=function(i,o){n.onErrorObservable.notifyObservers({message:i,exception:o})},this._options=Object(c.a)(Object(c.a)({},r._getDefaultOptions()),t),this._scene=e,this.onErrorObservable=new R.c,this._setupBackground(),this._setupImageProcessing()}return r._getDefaultOptions=function(){return{createGround:!0,groundSize:15,groundTexture:this._groundTextureCDNUrl,groundColor:new M.a(.2,.2,.3).toLinearSpace().scale(3),groundOpacity:.9,enableGroundShadow:!0,groundShadowLevel:.5,enableGroundMirror:!1,groundMirrorSizeRatio:.3,groundMirrorBlurKernel:64,groundMirrorAmount:1,groundMirrorFresnelWeight:1,groundMirrorFallOffDistance:0,groundMirrorTextureType:h.a.TEXTURETYPE_UNSIGNED_INT,groundYBias:1e-5,createSkybox:!0,skyboxSize:20,skyboxTexture:this._skyboxTextureCDNUrl,skyboxColor:new M.a(.2,.2,.3).toLinearSpace().scale(3),backgroundYRotation:0,sizeAuto:!0,rootPosition:u.e.Zero(),setupImageProcessing:!0,environmentTexture:this._environmentTextureCDNUrl,cameraExposure:.8,cameraContrast:1.2,toneMappingEnabled:!0}},Object.defineProperty(r.prototype,"rootMesh",{get:function(){return this._rootMesh},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"skybox",{get:function(){return this._skybox},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"skyboxTexture",{get:function(){return this._skyboxTexture},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"skyboxMaterial",{get:function(){return this._skyboxMaterial},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"ground",{get:function(){return this._ground},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"groundTexture",{get:function(){return this._groundTexture},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"groundMirror",{get:function(){return this._groundMirror},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"groundMirrorRenderList",{get:function(){return this._groundMirror?this._groundMirror.renderList:null},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"groundMaterial",{get:function(){return this._groundMaterial},enumerable:!1,configurable:!0}),r.prototype.updateOptions=function(t){var e=Object(c.a)(Object(c.a)({},this._options),t);this._ground&&!e.createGround&&(this._ground.dispose(),this._ground=null),this._groundMaterial&&!e.createGround&&(this._groundMaterial.dispose(),this._groundMaterial=null),this._groundTexture&&this._options.groundTexture!=e.groundTexture&&(this._groundTexture.dispose(),this._groundTexture=null),this._skybox&&!e.createSkybox&&(this._skybox.dispose(),this._skybox=null),this._skyboxMaterial&&!e.createSkybox&&(this._skyboxMaterial.dispose(),this._skyboxMaterial=null),this._skyboxTexture&&this._options.skyboxTexture!=e.skyboxTexture&&(this._skyboxTexture.dispose(),this._skyboxTexture=null),this._groundMirror&&!e.enableGroundMirror&&(this._groundMirror.dispose(),this._groundMirror=null),this._scene.environmentTexture&&this._options.environmentTexture!=e.environmentTexture&&this._scene.environmentTexture.dispose(),this._options=e,this._setupBackground(),this._setupImageProcessing()},r.prototype.setMainColor=function(t){this.groundMaterial&&(this.groundMaterial.primaryColor=t),this.skyboxMaterial&&(this.skyboxMaterial.primaryColor=t),this.groundMirror&&(this.groundMirror.clearColor=new M.b(t.r,t.g,t.b,1))},r.prototype._setupImageProcessing=function(){this._options.setupImageProcessing&&(this._scene.imageProcessingConfiguration.contrast=this._options.cameraContrast,this._scene.imageProcessingConfiguration.exposure=this._options.cameraExposure,this._scene.imageProcessingConfiguration.toneMappingEnabled=this._options.toneMappingEnabled,this._setupEnvironmentTexture())},r.prototype._setupEnvironmentTexture=function(){if(!this._scene.environmentTexture)if(this._options.environmentTexture instanceof Wn.a)this._scene.environmentTexture=this._options.environmentTexture;else{var t=oi.CreateFromPrefilteredData(this._options.environmentTexture,this._scene);this._scene.environmentTexture=t}},r.prototype._setupBackground=function(){this._rootMesh||(this._rootMesh=new De.a("BackgroundHelper",this._scene)),this._rootMesh.rotation.y=this._options.backgroundYRotation;var t=this._getSceneSize();this._options.createGround&&(this._setupGround(t),this._setupGroundMaterial(),this._setupGroundDiffuseTexture(),this._options.enableGroundMirror&&this._setupGroundMirrorTexture(t),this._setupMirrorInGroundMaterial()),this._options.createSkybox&&(this._setupSkybox(t),this._setupSkyboxMaterial(),this._setupSkyboxReflectionTexture()),this._rootMesh.position.x=t.rootPosition.x,this._rootMesh.position.z=t.rootPosition.z,this._rootMesh.position.y=t.rootPosition.y},r.prototype._getSceneSize=function(){var t=this,e=this._options.groundSize,n=this._options.skyboxSize,i=this._options.rootPosition;if(!this._scene.meshes||this._scene.meshes.length===1)return{groundSize:e,skyboxSize:n,rootPosition:i};var o=this._scene.getWorldExtends(function(d){return d!==t._ground&&d!==t._rootMesh&&d!==t._skybox}),a=o.max.subtract(o.min);if(this._options.sizeAuto){this._scene.activeCamera instanceof Zi&&this._scene.activeCamera.upperRadiusLimit&&(n=e=2*this._scene.activeCamera.upperRadiusLimit);var s=a.length();s>e&&(n=e=2*s),e*=1.1,n*=1.5,(i=o.min.add(a.scale(.5))).y=o.min.y-this._options.groundYBias}return{groundSize:e,skyboxSize:n,rootPosition:i}},r.prototype._setupGround=function(t){var e=this;this._ground&&!this._ground.isDisposed()||(this._ground=De.a.CreatePlane("BackgroundPlane",t.groundSize,this._scene),this._ground.rotation.x=Math.PI/2,this._ground.parent=this._rootMesh,this._ground.onDisposeObservable.add(function(){e._ground=null})),this._ground.receiveShadows=this._options.enableGroundShadow},r.prototype._setupGroundMaterial=function(){this._groundMaterial||(this._groundMaterial=new oo("BackgroundPlaneMaterial",this._scene)),this._groundMaterial.alpha=this._options.groundOpacity,this._groundMaterial.alphaMode=h.a.ALPHA_PREMULTIPLIED_PORTERDUFF,this._groundMaterial.shadowLevel=this._options.groundShadowLevel,this._groundMaterial.primaryColor=this._options.groundColor,this._groundMaterial.useRGBColor=!1,this._groundMaterial.enableNoise=!0,this._ground&&(this._ground.material=this._groundMaterial)},r.prototype._setupGroundDiffuseTexture=function(){this._groundMaterial&&(this._groundTexture||(this._options.groundTexture instanceof Wn.a?this._groundMaterial.diffuseTexture=this._options.groundTexture:(this._groundTexture=new we.a(this._options.groundTexture,this._scene,void 0,void 0,void 0,void 0,this._errorHandler),this._groundTexture.gammaSpace=!1,this._groundTexture.hasAlpha=!0,this._groundMaterial.diffuseTexture=this._groundTexture)))},r.prototype._setupGroundMirrorTexture=function(t){var e=we.a.CLAMP_ADDRESSMODE;if(!this._groundMirror&&(this._groundMirror=new Ds("BackgroundPlaneMirrorTexture",{ratio:this._options.groundMirrorSizeRatio},this._scene,!1,this._options.groundMirrorTextureType,we.a.BILINEAR_SAMPLINGMODE,!0),this._groundMirror.mirrorPlane=new vr.a(0,-1,0,t.rootPosition.y),this._groundMirror.anisotropicFilteringLevel=1,this._groundMirror.wrapU=e,this._groundMirror.wrapV=e,this._groundMirror.gammaSpace=!1,this._groundMirror.renderList))for(var n=0;n0&&t.push(this._texture),this._textureRoughness&&this._textureRoughness.animations&&this._textureRoughness.animations.length>0&&t.push(this._textureRoughness),this._bumpTexture&&this._bumpTexture.animations&&this._bumpTexture.animations.length>0&&t.push(this._bumpTexture),this._tintTexture&&this._tintTexture.animations&&this._tintTexture.animations.length>0&&t.push(this._tintTexture)},r.prototype.dispose=function(t){var e,n,i,o;t&&((e=this._texture)===null||e===void 0||e.dispose(),(n=this._textureRoughness)===null||n===void 0||n.dispose(),(i=this._bumpTexture)===null||i===void 0||i.dispose(),(o=this._tintTexture)===null||o===void 0||o.dispose())},r.prototype.getClassName=function(){return"PBRClearCoatConfiguration"},r.AddFallbacks=function(t,e,n){return t.CLEARCOAT_BUMP&&e.addFallback(n++,"CLEARCOAT_BUMP"),t.CLEARCOAT_TINT&&e.addFallback(n++,"CLEARCOAT_TINT"),t.CLEARCOAT&&e.addFallback(n++,"CLEARCOAT"),n},r.AddUniforms=function(t){t.push("vClearCoatTangentSpaceParams","vClearCoatParams","vClearCoatRefractionParams","vClearCoatTintParams","clearCoatColorAtDistance","clearCoatMatrix","clearCoatRoughnessMatrix","clearCoatBumpMatrix","clearCoatTintMatrix","vClearCoatInfos","vClearCoatBumpInfos","vClearCoatTintInfos")},r.AddSamplers=function(t){t.push("clearCoatSampler","clearCoatRoughnessSampler","clearCoatBumpSampler","clearCoatTintSampler")},r.PrepareUniformBuffer=function(t){t.addUniform("vClearCoatParams",2),t.addUniform("vClearCoatRefractionParams",4),t.addUniform("vClearCoatInfos",4),t.addUniform("clearCoatMatrix",16),t.addUniform("clearCoatRoughnessMatrix",16),t.addUniform("vClearCoatBumpInfos",2),t.addUniform("vClearCoatTangentSpaceParams",2),t.addUniform("clearCoatBumpMatrix",16),t.addUniform("vClearCoatTintParams",4),t.addUniform("clearCoatColorAtDistance",1),t.addUniform("vClearCoatTintInfos",2),t.addUniform("clearCoatTintMatrix",16)},r.prototype.copyTo=function(t){L.a.Clone(function(){return t},this)},r.prototype.serialize=function(){return L.a.Serialize(this)},r.prototype.parse=function(t,e,n){var i=this;L.a.Parse(function(){return i},t,e,n)},r._DefaultIndexOfRefraction=1.5,Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],r.prototype,"isEnabled",void 0),Object(c.c)([Object(L.c)()],r.prototype,"intensity",void 0),Object(c.c)([Object(L.c)()],r.prototype,"roughness",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],r.prototype,"indexOfRefraction",void 0),Object(c.c)([Object(L.m)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],r.prototype,"texture",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],r.prototype,"useRoughnessFromMainTexture",void 0),Object(c.c)([Object(L.m)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],r.prototype,"textureRoughness",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],r.prototype,"remapF0OnInterfaceChange",void 0),Object(c.c)([Object(L.m)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],r.prototype,"bumpTexture",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],r.prototype,"isTintEnabled",void 0),Object(c.c)([Object(L.e)()],r.prototype,"tintColor",void 0),Object(c.c)([Object(L.c)()],r.prototype,"tintColorAtDistance",void 0),Object(c.c)([Object(L.c)()],r.prototype,"tintThickness",void 0),Object(c.c)([Object(L.m)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],r.prototype,"tintTexture",void 0),r}(),Pr=function(){function r(t){this._isEnabled=!1,this.isEnabled=!1,this.intensity=1,this.direction=new u.d(1,0),this._texture=null,this.texture=null,this._internalMarkAllSubMeshesAsTexturesDirty=t}return r.prototype._markAllSubMeshesAsTexturesDirty=function(){this._internalMarkAllSubMeshesAsTexturesDirty()},r.prototype.isReadyForSubMesh=function(t,e){return!(t._areTexturesDirty&&e.texturesEnabled&&this._texture&&ut.a.AnisotropicTextureEnabled&&!this._texture.isReadyOrNotBlocking())},r.prototype.prepareDefines=function(t,e,n){this._isEnabled?(t.ANISOTROPIC=this._isEnabled,this._isEnabled&&!e.isVerticesDataPresent(Oe.b.TangentKind)&&(t._needUVs=!0,t.MAINUV1=!0),t._areTexturesDirty&&n.texturesEnabled&&(this._texture&&ut.a.AnisotropicTextureEnabled?et.a.PrepareDefinesForMergedUV(this._texture,t,"ANISOTROPIC_TEXTURE"):t.ANISOTROPIC_TEXTURE=!1)):(t.ANISOTROPIC=!1,t.ANISOTROPIC_TEXTURE=!1)},r.prototype.bindForSubMesh=function(t,e,n){t.useUbo&&n&&t.isSync||(this._texture&&ut.a.AnisotropicTextureEnabled&&(t.updateFloat2("vAnisotropyInfos",this._texture.coordinatesIndex,this._texture.level),et.a.BindTextureMatrix(this._texture,t,"anisotropy")),t.updateFloat3("vAnisotropy",this.direction.x,this.direction.y,this.intensity)),e.texturesEnabled&&this._texture&&ut.a.AnisotropicTextureEnabled&&t.setTexture("anisotropySampler",this._texture)},r.prototype.hasTexture=function(t){return this._texture===t},r.prototype.getActiveTextures=function(t){this._texture&&t.push(this._texture)},r.prototype.getAnimatables=function(t){this._texture&&this._texture.animations&&this._texture.animations.length>0&&t.push(this._texture)},r.prototype.dispose=function(t){t&&this._texture&&this._texture.dispose()},r.prototype.getClassName=function(){return"PBRAnisotropicConfiguration"},r.AddFallbacks=function(t,e,n){return t.ANISOTROPIC&&e.addFallback(n++,"ANISOTROPIC"),n},r.AddUniforms=function(t){t.push("vAnisotropy","vAnisotropyInfos","anisotropyMatrix")},r.PrepareUniformBuffer=function(t){t.addUniform("vAnisotropy",3),t.addUniform("vAnisotropyInfos",2),t.addUniform("anisotropyMatrix",16)},r.AddSamplers=function(t){t.push("anisotropySampler")},r.prototype.copyTo=function(t){L.a.Clone(function(){return t},this)},r.prototype.serialize=function(){return L.a.Serialize(this)},r.prototype.parse=function(t,e,n){var i=this;L.a.Parse(function(){return i},t,e,n)},Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],r.prototype,"isEnabled",void 0),Object(c.c)([Object(L.c)()],r.prototype,"intensity",void 0),Object(c.c)([Object(L.n)()],r.prototype,"direction",void 0),Object(c.c)([Object(L.m)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],r.prototype,"texture",void 0),r}(),Cp=function(){function r(t){this._useEnergyConservation=r.DEFAULT_USE_ENERGY_CONSERVATION,this.useEnergyConservation=r.DEFAULT_USE_ENERGY_CONSERVATION,this._useSmithVisibilityHeightCorrelated=r.DEFAULT_USE_SMITH_VISIBILITY_HEIGHT_CORRELATED,this.useSmithVisibilityHeightCorrelated=r.DEFAULT_USE_SMITH_VISIBILITY_HEIGHT_CORRELATED,this._useSphericalHarmonics=r.DEFAULT_USE_SPHERICAL_HARMONICS,this.useSphericalHarmonics=r.DEFAULT_USE_SPHERICAL_HARMONICS,this._useSpecularGlossinessInputEnergyConservation=r.DEFAULT_USE_SPECULAR_GLOSSINESS_INPUT_ENERGY_CONSERVATION,this.useSpecularGlossinessInputEnergyConservation=r.DEFAULT_USE_SPECULAR_GLOSSINESS_INPUT_ENERGY_CONSERVATION,this._internalMarkAllSubMeshesAsMiscDirty=t}return r.prototype._markAllSubMeshesAsMiscDirty=function(){this._internalMarkAllSubMeshesAsMiscDirty()},r.prototype.prepareDefines=function(t){t.BRDF_V_HEIGHT_CORRELATED=this._useSmithVisibilityHeightCorrelated,t.MS_BRDF_ENERGY_CONSERVATION=this._useEnergyConservation&&this._useSmithVisibilityHeightCorrelated,t.SPHERICAL_HARMONICS=this._useSphericalHarmonics,t.SPECULAR_GLOSSINESS_ENERGY_CONSERVATION=this._useSpecularGlossinessInputEnergyConservation},r.prototype.getClassName=function(){return"PBRBRDFConfiguration"},r.prototype.copyTo=function(t){L.a.Clone(function(){return t},this)},r.prototype.serialize=function(){return L.a.Serialize(this)},r.prototype.parse=function(t,e,n){var i=this;L.a.Parse(function(){return i},t,e,n)},r.DEFAULT_USE_ENERGY_CONSERVATION=!0,r.DEFAULT_USE_SMITH_VISIBILITY_HEIGHT_CORRELATED=!0,r.DEFAULT_USE_SPHERICAL_HARMONICS=!0,r.DEFAULT_USE_SPECULAR_GLOSSINESS_INPUT_ENERGY_CONSERVATION=!0,Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsMiscDirty")],r.prototype,"useEnergyConservation",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsMiscDirty")],r.prototype,"useSmithVisibilityHeightCorrelated",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsMiscDirty")],r.prototype,"useSphericalHarmonics",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsMiscDirty")],r.prototype,"useSpecularGlossinessInputEnergyConservation",void 0),r}(),ao=function(){function r(t){this._isEnabled=!1,this.isEnabled=!1,this._linkSheenWithAlbedo=!1,this.linkSheenWithAlbedo=!1,this.intensity=1,this.color=M.a.White(),this._texture=null,this.texture=null,this._useRoughnessFromMainTexture=!0,this.useRoughnessFromMainTexture=!0,this._roughness=null,this.roughness=null,this._textureRoughness=null,this.textureRoughness=null,this._albedoScaling=!1,this.albedoScaling=!1,this._internalMarkAllSubMeshesAsTexturesDirty=t}return r.prototype._markAllSubMeshesAsTexturesDirty=function(){this._internalMarkAllSubMeshesAsTexturesDirty()},r.prototype.isReadyForSubMesh=function(t,e){return!(t._areTexturesDirty&&e.texturesEnabled&&(this._texture&&ut.a.SheenTextureEnabled&&!this._texture.isReadyOrNotBlocking()||this._textureRoughness&&ut.a.SheenTextureEnabled&&!this._textureRoughness.isReadyOrNotBlocking()))},r.prototype.prepareDefines=function(t,e){var n;this._isEnabled?(t.SHEEN=this._isEnabled,t.SHEEN_LINKWITHALBEDO=this._linkSheenWithAlbedo,t.SHEEN_ROUGHNESS=this._roughness!==null,t.SHEEN_ALBEDOSCALING=this._albedoScaling,t.SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE=this._useRoughnessFromMainTexture,t.SHEEN_TEXTURE_ROUGHNESS_IDENTICAL=this._texture!==null&&this._texture._texture===((n=this._textureRoughness)===null||n===void 0?void 0:n._texture)&&this._texture.checkTransformsAreIdentical(this._textureRoughness),t._areTexturesDirty&&e.texturesEnabled&&(this._texture&&ut.a.SheenTextureEnabled?et.a.PrepareDefinesForMergedUV(this._texture,t,"SHEEN_TEXTURE"):t.SHEEN_TEXTURE=!1,this._textureRoughness&&ut.a.SheenTextureEnabled?et.a.PrepareDefinesForMergedUV(this._textureRoughness,t,"SHEEN_TEXTURE_ROUGHNESS"):t.SHEEN_TEXTURE_ROUGHNESS=!1)):(t.SHEEN=!1,t.SHEEN_TEXTURE=!1,t.SHEEN_TEXTURE_ROUGHNESS=!1,t.SHEEN_LINKWITHALBEDO=!1,t.SHEEN_ROUGHNESS=!1,t.SHEEN_ALBEDOSCALING=!1,t.SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE=!1,t.SHEEN_TEXTURE_ROUGHNESS_IDENTICAL=!1)},r.prototype.bindForSubMesh=function(t,e,n,i){var o,a,s,d,p,b,x,O,B=i._materialDefines,F=B.SHEEN_TEXTURE_ROUGHNESS_IDENTICAL;t.useUbo&&n&&t.isSync||(F&&ut.a.SheenTextureEnabled?(t.updateFloat4("vSheenInfos",this._texture.coordinatesIndex,this._texture.level,-1,-1),et.a.BindTextureMatrix(this._texture,t,"sheen")):(this._texture||this._textureRoughness)&&ut.a.SheenTextureEnabled&&(t.updateFloat4("vSheenInfos",(a=(o=this._texture)===null||o===void 0?void 0:o.coordinatesIndex)!==null&&a!==void 0?a:0,(d=(s=this._texture)===null||s===void 0?void 0:s.level)!==null&&d!==void 0?d:0,(b=(p=this._textureRoughness)===null||p===void 0?void 0:p.coordinatesIndex)!==null&&b!==void 0?b:0,(O=(x=this._textureRoughness)===null||x===void 0?void 0:x.level)!==null&&O!==void 0?O:0),this._texture&&et.a.BindTextureMatrix(this._texture,t,"sheen"),!this._textureRoughness||F||B.SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE||et.a.BindTextureMatrix(this._textureRoughness,t,"sheenRoughness")),t.updateFloat4("vSheenColor",this.color.r,this.color.g,this.color.b,this.intensity),this._roughness!==null&&t.updateFloat("vSheenRoughness",this._roughness)),e.texturesEnabled&&(this._texture&&ut.a.SheenTextureEnabled&&t.setTexture("sheenSampler",this._texture),this._textureRoughness&&!F&&!B.SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE&&ut.a.SheenTextureEnabled&&t.setTexture("sheenRoughnessSampler",this._textureRoughness))},r.prototype.hasTexture=function(t){return this._texture===t||this._textureRoughness===t},r.prototype.getActiveTextures=function(t){this._texture&&t.push(this._texture),this._textureRoughness&&t.push(this._textureRoughness)},r.prototype.getAnimatables=function(t){this._texture&&this._texture.animations&&this._texture.animations.length>0&&t.push(this._texture),this._textureRoughness&&this._textureRoughness.animations&&this._textureRoughness.animations.length>0&&t.push(this._textureRoughness)},r.prototype.dispose=function(t){var e,n;t&&((e=this._texture)===null||e===void 0||e.dispose(),(n=this._textureRoughness)===null||n===void 0||n.dispose())},r.prototype.getClassName=function(){return"PBRSheenConfiguration"},r.AddFallbacks=function(t,e,n){return t.SHEEN&&e.addFallback(n++,"SHEEN"),n},r.AddUniforms=function(t){t.push("vSheenColor","vSheenRoughness","vSheenInfos","sheenMatrix","sheenRoughnessMatrix")},r.PrepareUniformBuffer=function(t){t.addUniform("vSheenColor",4),t.addUniform("vSheenRoughness",1),t.addUniform("vSheenInfos",4),t.addUniform("sheenMatrix",16),t.addUniform("sheenRoughnessMatrix",16)},r.AddSamplers=function(t){t.push("sheenSampler"),t.push("sheenRoughnessSampler")},r.prototype.copyTo=function(t){L.a.Clone(function(){return t},this)},r.prototype.serialize=function(){return L.a.Serialize(this)},r.prototype.parse=function(t,e,n){var i=this;L.a.Parse(function(){return i},t,e,n)},Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],r.prototype,"isEnabled",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],r.prototype,"linkSheenWithAlbedo",void 0),Object(c.c)([Object(L.c)()],r.prototype,"intensity",void 0),Object(c.c)([Object(L.e)()],r.prototype,"color",void 0),Object(c.c)([Object(L.m)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],r.prototype,"texture",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],r.prototype,"useRoughnessFromMainTexture",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],r.prototype,"roughness",void 0),Object(c.c)([Object(L.m)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],r.prototype,"textureRoughness",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],r.prototype,"albedoScaling",void 0),r}(),so=function(){function r(t,e,n){this._isRefractionEnabled=!1,this.isRefractionEnabled=!1,this._isTranslucencyEnabled=!1,this.isTranslucencyEnabled=!1,this._isScatteringEnabled=!1,this.isScatteringEnabled=!1,this._scatteringDiffusionProfileIndex=0,this.refractionIntensity=1,this.translucencyIntensity=1,this.useAlbedoToTintRefraction=!1,this._thicknessTexture=null,this.thicknessTexture=null,this._refractionTexture=null,this.refractionTexture=null,this._indexOfRefraction=1.5,this.indexOfRefraction=1.5,this._volumeIndexOfRefraction=-1,this._invertRefractionY=!1,this.invertRefractionY=!1,this._linkRefractionWithTransparency=!1,this.linkRefractionWithTransparency=!1,this.minimumThickness=0,this.maximumThickness=1,this.tintColor=M.a.White(),this.tintColorAtDistance=1,this.diffusionDistance=M.a.White(),this._useMaskFromThicknessTexture=!1,this.useMaskFromThicknessTexture=!1,this._useMaskFromThicknessTextureGltf=!1,this.useMaskFromThicknessTextureGltf=!1,this._internalMarkAllSubMeshesAsTexturesDirty=t,this._internalMarkScenePrePassDirty=e,this._scene=n}return Object.defineProperty(r.prototype,"scatteringDiffusionProfile",{get:function(){return this._scene.subSurfaceConfiguration?this._scene.subSurfaceConfiguration.ssDiffusionProfileColors[this._scatteringDiffusionProfileIndex]:null},set:function(t){this._scene.enableSubSurfaceForPrePass()&&t&&(this._scatteringDiffusionProfileIndex=this._scene.subSurfaceConfiguration.addDiffusionProfile(t))},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"volumeIndexOfRefraction",{get:function(){return this._volumeIndexOfRefraction>=1?this._volumeIndexOfRefraction:this._indexOfRefraction},set:function(t){this._volumeIndexOfRefraction=t>=1?t:-1},enumerable:!1,configurable:!0}),r.prototype._markAllSubMeshesAsTexturesDirty=function(){this._internalMarkAllSubMeshesAsTexturesDirty()},r.prototype._markScenePrePassDirty=function(){this._internalMarkAllSubMeshesAsTexturesDirty(),this._internalMarkScenePrePassDirty()},r.prototype.isReadyForSubMesh=function(t,e){if(t._areTexturesDirty&&e.texturesEnabled){if(this._thicknessTexture&&ut.a.ThicknessTextureEnabled&&!this._thicknessTexture.isReadyOrNotBlocking())return!1;var n=this._getRefractionTexture(e);if(n&&ut.a.RefractionTextureEnabled&&!n.isReadyOrNotBlocking())return!1}return!0},r.prototype.prepareDefines=function(t,e){if(t._areTexturesDirty&&(t.SUBSURFACE=!1,t.SS_TRANSLUCENCY=this._isTranslucencyEnabled,t.SS_SCATTERING=this._isScatteringEnabled,t.SS_THICKNESSANDMASK_TEXTURE=!1,t.SS_MASK_FROM_THICKNESS_TEXTURE=!1,t.SS_MASK_FROM_THICKNESS_TEXTURE_GLTF=!1,t.SS_REFRACTION=!1,t.SS_REFRACTIONMAP_3D=!1,t.SS_GAMMAREFRACTION=!1,t.SS_RGBDREFRACTION=!1,t.SS_LINEARSPECULARREFRACTION=!1,t.SS_REFRACTIONMAP_OPPOSITEZ=!1,t.SS_LODINREFRACTIONALPHA=!1,t.SS_LINKREFRACTIONTOTRANSPARENCY=!1,t.SS_ALBEDOFORREFRACTIONTINT=!1,(this._isRefractionEnabled||this._isTranslucencyEnabled||this._isScatteringEnabled)&&(t.SUBSURFACE=!0,t._areTexturesDirty&&e.texturesEnabled&&this._thicknessTexture&&ut.a.ThicknessTextureEnabled&&et.a.PrepareDefinesForMergedUV(this._thicknessTexture,t,"SS_THICKNESSANDMASK_TEXTURE"),t.SS_MASK_FROM_THICKNESS_TEXTURE=this._useMaskFromThicknessTexture,t.SS_MASK_FROM_THICKNESS_TEXTURE_GLTF=this._useMaskFromThicknessTextureGltf),this._isRefractionEnabled&&e.texturesEnabled)){var n=this._getRefractionTexture(e);n&&ut.a.RefractionTextureEnabled&&(t.SS_REFRACTION=!0,t.SS_REFRACTIONMAP_3D=n.isCube,t.SS_GAMMAREFRACTION=n.gammaSpace,t.SS_RGBDREFRACTION=n.isRGBD,t.SS_LINEARSPECULARREFRACTION=n.linearSpecularLOD,t.SS_REFRACTIONMAP_OPPOSITEZ=n.invertZ,t.SS_LODINREFRACTIONALPHA=n.lodLevelInAlpha,t.SS_LINKREFRACTIONTOTRANSPARENCY=this._linkRefractionWithTransparency,t.SS_ALBEDOFORREFRACTIONTINT=this.useAlbedoToTintRefraction)}},r.prototype.bindForSubMesh=function(t,e,n,i,o,a){var s=this._getRefractionTexture(e);if(!t.useUbo||!i||!t.isSync){if(this._thicknessTexture&&ut.a.ThicknessTextureEnabled&&(t.updateFloat2("vThicknessInfos",this._thicknessTexture.coordinatesIndex,this._thicknessTexture.level),et.a.BindTextureMatrix(this._thicknessTexture,t,"thickness")),t.updateFloat2("vThicknessParam",this.minimumThickness,this.maximumThickness-this.minimumThickness),s&&ut.a.RefractionTextureEnabled){t.updateMatrix("refractionMatrix",s.getReflectionTextureMatrix());var d=1;s.isCube||s.depth&&(d=s.depth);var p=s.getSize().width,b=this.volumeIndexOfRefraction;t.updateFloat4("vRefractionInfos",s.level,1/b,d,this._invertRefractionY?-1:1),t.updateFloat3("vRefractionMicrosurfaceInfos",p,s.lodGenerationScale,s.lodGenerationOffset),a&&t.updateFloat2("vRefractionFilteringInfo",p,$.a.Log2(p))}this.isScatteringEnabled&&t.updateFloat("scatteringDiffusionProfile",this._scatteringDiffusionProfileIndex),t.updateColor3("vDiffusionDistance",this.diffusionDistance),t.updateFloat4("vTintColor",this.tintColor.r,this.tintColor.g,this.tintColor.b,this.tintColorAtDistance),t.updateFloat3("vSubSurfaceIntensity",this.refractionIntensity,this.translucencyIntensity,0)}e.texturesEnabled&&(this._thicknessTexture&&ut.a.ThicknessTextureEnabled&&t.setTexture("thicknessSampler",this._thicknessTexture),s&&ut.a.RefractionTextureEnabled&&(o?t.setTexture("refractionSampler",s):(t.setTexture("refractionSampler",s._lodTextureMid||s),t.setTexture("refractionSamplerLow",s._lodTextureLow||s),t.setTexture("refractionSamplerHigh",s._lodTextureHigh||s))))},r.prototype.unbind=function(t){return!(!this._refractionTexture||!this._refractionTexture.isRenderTarget)&&(t.setTexture("refractionSampler",null),!0)},r.prototype._getRefractionTexture=function(t){return this._refractionTexture?this._refractionTexture:this._isRefractionEnabled?t.environmentTexture:null},Object.defineProperty(r.prototype,"disableAlphaBlending",{get:function(){return this.isRefractionEnabled&&this._linkRefractionWithTransparency},enumerable:!1,configurable:!0}),r.prototype.fillRenderTargetTextures=function(t){ut.a.RefractionTextureEnabled&&this._refractionTexture&&this._refractionTexture.isRenderTarget&&t.push(this._refractionTexture)},r.prototype.hasTexture=function(t){return this._thicknessTexture===t||this._refractionTexture===t},r.prototype.hasRenderTargetTextures=function(){return!!(ut.a.RefractionTextureEnabled&&this._refractionTexture&&this._refractionTexture.isRenderTarget)},r.prototype.getActiveTextures=function(t){this._thicknessTexture&&t.push(this._thicknessTexture),this._refractionTexture&&t.push(this._refractionTexture)},r.prototype.getAnimatables=function(t){this._thicknessTexture&&this._thicknessTexture.animations&&this._thicknessTexture.animations.length>0&&t.push(this._thicknessTexture),this._refractionTexture&&this._refractionTexture.animations&&this._refractionTexture.animations.length>0&&t.push(this._refractionTexture)},r.prototype.dispose=function(t){t&&(this._thicknessTexture&&this._thicknessTexture.dispose(),this._refractionTexture&&this._refractionTexture.dispose())},r.prototype.getClassName=function(){return"PBRSubSurfaceConfiguration"},r.AddFallbacks=function(t,e,n){return t.SS_SCATTERING&&e.addFallback(n++,"SS_SCATTERING"),t.SS_TRANSLUCENCY&&e.addFallback(n++,"SS_TRANSLUCENCY"),n},r.AddUniforms=function(t){t.push("vDiffusionDistance","vTintColor","vSubSurfaceIntensity","vRefractionMicrosurfaceInfos","vRefractionFilteringInfo","vRefractionInfos","vThicknessInfos","vThicknessParam","refractionMatrix","thicknessMatrix","scatteringDiffusionProfile")},r.AddSamplers=function(t){t.push("thicknessSampler","refractionSampler","refractionSamplerLow","refractionSamplerHigh")},r.PrepareUniformBuffer=function(t){t.addUniform("vRefractionMicrosurfaceInfos",3),t.addUniform("vRefractionFilteringInfo",2),t.addUniform("vRefractionInfos",4),t.addUniform("refractionMatrix",16),t.addUniform("vThicknessInfos",2),t.addUniform("thicknessMatrix",16),t.addUniform("vThicknessParam",2),t.addUniform("vDiffusionDistance",3),t.addUniform("vTintColor",4),t.addUniform("vSubSurfaceIntensity",3),t.addUniform("scatteringDiffusionProfile",1)},r.prototype.copyTo=function(t){L.a.Clone(function(){return t},this)},r.prototype.serialize=function(){return L.a.Serialize(this)},r.prototype.parse=function(t,e,n){var i=this;L.a.Parse(function(){return i},t,e,n)},Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],r.prototype,"isRefractionEnabled",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],r.prototype,"isTranslucencyEnabled",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markScenePrePassDirty")],r.prototype,"isScatteringEnabled",void 0),Object(c.c)([Object(L.c)()],r.prototype,"_scatteringDiffusionProfileIndex",void 0),Object(c.c)([Object(L.c)()],r.prototype,"refractionIntensity",void 0),Object(c.c)([Object(L.c)()],r.prototype,"translucencyIntensity",void 0),Object(c.c)([Object(L.c)()],r.prototype,"useAlbedoToTintRefraction",void 0),Object(c.c)([Object(L.m)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],r.prototype,"thicknessTexture",void 0),Object(c.c)([Object(L.m)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],r.prototype,"refractionTexture",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],r.prototype,"indexOfRefraction",void 0),Object(c.c)([Object(L.c)()],r.prototype,"_volumeIndexOfRefraction",void 0),Object(c.c)([Object(L.b)("_markAllSubMeshesAsTexturesDirty")],r.prototype,"volumeIndexOfRefraction",null),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],r.prototype,"invertRefractionY",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],r.prototype,"linkRefractionWithTransparency",void 0),Object(c.c)([Object(L.c)()],r.prototype,"minimumThickness",void 0),Object(c.c)([Object(L.c)()],r.prototype,"maximumThickness",void 0),Object(c.c)([Object(L.e)()],r.prototype,"tintColor",void 0),Object(c.c)([Object(L.c)()],r.prototype,"tintColorAtDistance",void 0),Object(c.c)([Object(L.e)()],r.prototype,"diffusionDistance",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],r.prototype,"useMaskFromThicknessTexture",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],r.prototype,"useMaskFromThicknessTextureGltf",void 0),r}(),Ns=f(105),Ht=f(25),Rp=(f(160),`uniform vec3 vReflectionColor; +uniform vec4 vAlbedoColor; + +uniform vec4 vLightingIntensity; +uniform vec4 vReflectivityColor; +uniform vec4 vMetallicReflectanceFactors; +uniform vec3 vEmissiveColor; +uniform float visibility; + +#ifdef ALBEDO +uniform vec2 vAlbedoInfos; +#endif +#ifdef AMBIENT +uniform vec4 vAmbientInfos; +#endif +#ifdef BUMP +uniform vec3 vBumpInfos; +uniform vec2 vTangentSpaceParams; +#endif +#ifdef OPACITY +uniform vec2 vOpacityInfos; +#endif +#ifdef EMISSIVE +uniform vec2 vEmissiveInfos; +#endif +#ifdef LIGHTMAP +uniform vec2 vLightmapInfos; +#endif +#ifdef REFLECTIVITY +uniform vec3 vReflectivityInfos; +#endif +#ifdef MICROSURFACEMAP +uniform vec2 vMicroSurfaceSamplerInfos; +#endif + +#if defined(REFLECTIONMAP_SPHERICAL) || defined(REFLECTIONMAP_PROJECTION) || defined(SS_REFRACTION) +uniform mat4 view; +#endif + +#ifdef REFLECTION +uniform vec2 vReflectionInfos; +#ifdef REALTIME_FILTERING +uniform vec2 vReflectionFilteringInfo; +#endif +uniform mat4 reflectionMatrix; +uniform vec3 vReflectionMicrosurfaceInfos; +#if defined(USE_LOCAL_REFLECTIONMAP_CUBIC) && defined(REFLECTIONMAP_CUBIC) +uniform vec3 vReflectionPosition; +uniform vec3 vReflectionSize; +#endif +#endif + +#ifdef CLEARCOAT +uniform vec2 vClearCoatParams; +uniform vec4 vClearCoatRefractionParams; +#if defined(CLEARCOAT_TEXTURE) || defined(CLEARCOAT_TEXTURE_ROUGHNESS) +uniform vec4 vClearCoatInfos; +#endif +#ifdef CLEARCOAT_TEXTURE +uniform mat4 clearCoatMatrix; +#endif +#ifdef CLEARCOAT_TEXTURE_ROUGHNESS +uniform mat4 clearCoatRoughnessMatrix; +#endif +#ifdef CLEARCOAT_BUMP +uniform vec2 vClearCoatBumpInfos; +uniform vec2 vClearCoatTangentSpaceParams; +uniform mat4 clearCoatBumpMatrix; +#endif +#ifdef CLEARCOAT_TINT +uniform vec4 vClearCoatTintParams; +uniform float clearCoatColorAtDistance; +#ifdef CLEARCOAT_TINT_TEXTURE +uniform vec2 vClearCoatTintInfos; +uniform mat4 clearCoatTintMatrix; +#endif +#endif +#endif + +#ifdef ANISOTROPIC +uniform vec3 vAnisotropy; +#ifdef ANISOTROPIC_TEXTURE +uniform vec2 vAnisotropyInfos; +uniform mat4 anisotropyMatrix; +#endif +#endif + +#ifdef SHEEN +uniform vec4 vSheenColor; +#ifdef SHEEN_ROUGHNESS +uniform float vSheenRoughness; +#endif +#if defined(SHEEN_TEXTURE) || defined(SHEEN_TEXTURE_ROUGHNESS) +uniform vec4 vSheenInfos; +#endif +#ifdef SHEEN_TEXTURE +uniform mat4 sheenMatrix; +#endif +#ifdef SHEEN_TEXTURE_ROUGHNESS +uniform mat4 sheenRoughnessMatrix; +#endif +#endif + +#ifdef SUBSURFACE +#ifdef SS_REFRACTION +uniform vec3 vRefractionMicrosurfaceInfos; +uniform vec4 vRefractionInfos; +uniform mat4 refractionMatrix; +#ifdef REALTIME_FILTERING +uniform vec2 vRefractionFilteringInfo; +#endif +#endif +#ifdef SS_THICKNESSANDMASK_TEXTURE +uniform vec2 vThicknessInfos; +uniform mat4 thicknessMatrix; +#endif +uniform vec2 vThicknessParam; +uniform vec3 vDiffusionDistance; +uniform vec4 vTintColor; +uniform vec3 vSubSurfaceIntensity; +#endif +#ifdef PREPASS +#ifdef PREPASS_IRRADIANCE +uniform float scatteringDiffusionProfile; +#endif +#endif`);ze.a.IncludesShadersStore.pbrFragmentDeclaration=Rp;var Op=`layout(std140,column_major) uniform; +uniform Material +{ +uniform vec2 vAlbedoInfos; +uniform vec4 vAmbientInfos; +uniform vec2 vOpacityInfos; +uniform vec2 vEmissiveInfos; +uniform vec2 vLightmapInfos; +uniform vec3 vReflectivityInfos; +uniform vec2 vMicroSurfaceSamplerInfos; +uniform vec2 vReflectionInfos; +uniform vec2 vReflectionFilteringInfo; +uniform vec3 vReflectionPosition; +uniform vec3 vReflectionSize; +uniform vec3 vBumpInfos; +uniform mat4 albedoMatrix; +uniform mat4 ambientMatrix; +uniform mat4 opacityMatrix; +uniform mat4 emissiveMatrix; +uniform mat4 lightmapMatrix; +uniform mat4 reflectivityMatrix; +uniform mat4 microSurfaceSamplerMatrix; +uniform mat4 bumpMatrix; +uniform vec2 vTangentSpaceParams; +uniform mat4 reflectionMatrix; +uniform vec3 vReflectionColor; +uniform vec4 vAlbedoColor; +uniform vec4 vLightingIntensity; +uniform vec3 vReflectionMicrosurfaceInfos; +uniform float pointSize; +uniform vec4 vReflectivityColor; +uniform vec3 vEmissiveColor; +uniform float visibility; +uniform vec4 vMetallicReflectanceFactors; +uniform vec2 vMetallicReflectanceInfos; +uniform mat4 metallicReflectanceMatrix; +uniform vec2 vClearCoatParams; +uniform vec4 vClearCoatRefractionParams; +uniform vec4 vClearCoatInfos; +uniform mat4 clearCoatMatrix; +uniform mat4 clearCoatRoughnessMatrix; +uniform vec2 vClearCoatBumpInfos; +uniform vec2 vClearCoatTangentSpaceParams; +uniform mat4 clearCoatBumpMatrix; +uniform vec4 vClearCoatTintParams; +uniform float clearCoatColorAtDistance; +uniform vec2 vClearCoatTintInfos; +uniform mat4 clearCoatTintMatrix; +uniform vec3 vAnisotropy; +uniform vec2 vAnisotropyInfos; +uniform mat4 anisotropyMatrix; +uniform vec4 vSheenColor; +uniform float vSheenRoughness; +uniform vec4 vSheenInfos; +uniform mat4 sheenMatrix; +uniform mat4 sheenRoughnessMatrix; +uniform vec3 vRefractionMicrosurfaceInfos; +uniform vec2 vRefractionFilteringInfo; +uniform vec4 vRefractionInfos; +uniform mat4 refractionMatrix; +uniform vec2 vThicknessInfos; +uniform mat4 thicknessMatrix; +uniform vec2 vThicknessParam; +uniform vec3 vDiffusionDistance; +uniform vec4 vTintColor; +uniform vec3 vSubSurfaceIntensity; +uniform float scatteringDiffusionProfile; +uniform vec4 vDetailInfos; +uniform mat4 detailMatrix; +}; +uniform Scene { +mat4 viewProjection; +#ifdef MULTIVIEW +mat4 viewProjectionR; +#endif +mat4 view; +};`;ze.a.IncludesShadersStore.pbrUboDeclaration=Op;var Mp=`uniform vec4 vEyePosition; +uniform vec3 vAmbientColor; +uniform vec4 vCameraInfos; + +varying vec3 vPositionW; +#if DEBUGMODE>0 +uniform vec2 vDebugMode; +varying vec4 vClipSpacePosition; +#endif +#ifdef MAINUV1 +varying vec2 vMainUV1; +#endif +#ifdef MAINUV2 +varying vec2 vMainUV2; +#endif +#ifdef NORMAL +varying vec3 vNormalW; +#if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX) +varying vec3 vEnvironmentIrradiance; +#endif +#endif +#ifdef VERTEXCOLOR +varying vec4 vColor; +#endif`;ze.a.IncludesShadersStore.pbrFragmentExtraDeclaration=Mp;var Ip=`#ifdef ALBEDO +#if ALBEDODIRECTUV == 1 +#define vAlbedoUV vMainUV1 +#elif ALBEDODIRECTUV == 2 +#define vAlbedoUV vMainUV2 +#else +varying vec2 vAlbedoUV; +#endif +uniform sampler2D albedoSampler; +#endif +#ifdef AMBIENT +#if AMBIENTDIRECTUV == 1 +#define vAmbientUV vMainUV1 +#elif AMBIENTDIRECTUV == 2 +#define vAmbientUV vMainUV2 +#else +varying vec2 vAmbientUV; +#endif +uniform sampler2D ambientSampler; +#endif +#ifdef OPACITY +#if OPACITYDIRECTUV == 1 +#define vOpacityUV vMainUV1 +#elif OPACITYDIRECTUV == 2 +#define vOpacityUV vMainUV2 +#else +varying vec2 vOpacityUV; +#endif +uniform sampler2D opacitySampler; +#endif +#ifdef EMISSIVE +#if EMISSIVEDIRECTUV == 1 +#define vEmissiveUV vMainUV1 +#elif EMISSIVEDIRECTUV == 2 +#define vEmissiveUV vMainUV2 +#else +varying vec2 vEmissiveUV; +#endif +uniform sampler2D emissiveSampler; +#endif +#ifdef LIGHTMAP +#if LIGHTMAPDIRECTUV == 1 +#define vLightmapUV vMainUV1 +#elif LIGHTMAPDIRECTUV == 2 +#define vLightmapUV vMainUV2 +#else +varying vec2 vLightmapUV; +#endif +uniform sampler2D lightmapSampler; +#endif +#ifdef REFLECTIVITY +#if REFLECTIVITYDIRECTUV == 1 +#define vReflectivityUV vMainUV1 +#elif REFLECTIVITYDIRECTUV == 2 +#define vReflectivityUV vMainUV2 +#else +varying vec2 vReflectivityUV; +#endif +uniform sampler2D reflectivitySampler; +#endif +#ifdef MICROSURFACEMAP +#if MICROSURFACEMAPDIRECTUV == 1 +#define vMicroSurfaceSamplerUV vMainUV1 +#elif MICROSURFACEMAPDIRECTUV == 2 +#define vMicroSurfaceSamplerUV vMainUV2 +#else +varying vec2 vMicroSurfaceSamplerUV; +#endif +uniform sampler2D microSurfaceSampler; +#endif +#ifdef METALLIC_REFLECTANCE +#if METALLIC_REFLECTANCEDIRECTUV == 1 +#define vMetallicReflectanceUV vMainUV1 +#elif METALLIC_REFLECTANCEDIRECTUV == 2 +#define vMetallicReflectanceUV vMainUV2 +#else +varying vec2 vMetallicReflectanceUV; +#endif +uniform sampler2D metallicReflectanceSampler; +#endif +#ifdef CLEARCOAT +#if defined(CLEARCOAT_TEXTURE) +#if CLEARCOAT_TEXTUREDIRECTUV == 1 +#define vClearCoatUV vMainUV1 +#elif CLEARCOAT_TEXTUREDIRECTUV == 2 +#define vClearCoatUV vMainUV2 +#else +varying vec2 vClearCoatUV; +#endif +#endif +#if defined(CLEARCOAT_TEXTURE_ROUGHNESS) +#if CLEARCOAT_TEXTURE_ROUGHNESSDIRECTUV == 1 +#define vClearCoatRoughnessUV vMainUV1 +#elif CLEARCOAT_TEXTURE_ROUGHNESSDIRECTUV == 2 +#define vClearCoatRoughnessUV vMainUV2 +#else +varying vec2 vClearCoatRoughnessUV; +#endif +#endif +#ifdef CLEARCOAT_TEXTURE +uniform sampler2D clearCoatSampler; +#endif +#if defined(CLEARCOAT_TEXTURE_ROUGHNESS) && !defined(CLEARCOAT_TEXTURE_ROUGHNESS_IDENTICAL) +uniform sampler2D clearCoatRoughnessSampler; +#endif +#ifdef CLEARCOAT_BUMP +#if CLEARCOAT_BUMPDIRECTUV == 1 +#define vClearCoatBumpUV vMainUV1 +#elif CLEARCOAT_BUMPDIRECTUV == 2 +#define vClearCoatBumpUV vMainUV2 +#else +varying vec2 vClearCoatBumpUV; +#endif +uniform sampler2D clearCoatBumpSampler; +#endif +#ifdef CLEARCOAT_TINT_TEXTURE +#if CLEARCOAT_TINT_TEXTUREDIRECTUV == 1 +#define vClearCoatTintUV vMainUV1 +#elif CLEARCOAT_TINT_TEXTUREDIRECTUV == 2 +#define vClearCoatTintUV vMainUV2 +#else +varying vec2 vClearCoatTintUV; +#endif +uniform sampler2D clearCoatTintSampler; +#endif +#endif +#ifdef SHEEN +#ifdef SHEEN_TEXTURE +#if SHEEN_TEXTUREDIRECTUV == 1 +#define vSheenUV vMainUV1 +#elif SHEEN_TEXTUREDIRECTUV == 2 +#define vSheenUV vMainUV2 +#else +varying vec2 vSheenUV; +#endif +#endif +#ifdef SHEEN_TEXTURE_ROUGHNESS +#if SHEEN_TEXTURE_ROUGHNESSDIRECTUV == 1 +#define vSheenRoughnessUV vMainUV1 +#elif SHEEN_TEXTURE_ROUGHNESSDIRECTUV == 2 +#define vSheenRoughnessUV vMainUV2 +#else +varying vec2 vSheenRoughnessUV; +#endif +#endif +#ifdef SHEEN_TEXTURE +uniform sampler2D sheenSampler; +#endif +#if defined(SHEEN_ROUGHNESS) && defined(SHEEN_TEXTURE_ROUGHNESS) && !defined(SHEEN_TEXTURE_ROUGHNESS_IDENTICAL) +uniform sampler2D sheenRoughnessSampler; +#endif +#endif +#ifdef ANISOTROPIC +#ifdef ANISOTROPIC_TEXTURE +#if ANISOTROPIC_TEXTUREDIRECTUV == 1 +#define vAnisotropyUV vMainUV1 +#elif ANISOTROPIC_TEXTUREDIRECTUV == 2 +#define vAnisotropyUV vMainUV2 +#else +varying vec2 vAnisotropyUV; +#endif +uniform sampler2D anisotropySampler; +#endif +#endif + +#ifdef REFLECTION +#ifdef REFLECTIONMAP_3D +#define sampleReflection(s,c) textureCube(s,c) +uniform samplerCube reflectionSampler; +#ifdef LODBASEDMICROSFURACE +#define sampleReflectionLod(s,c,l) textureCubeLodEXT(s,c,l) +#else +uniform samplerCube reflectionSamplerLow; +uniform samplerCube reflectionSamplerHigh; +#endif +#ifdef USEIRRADIANCEMAP +uniform samplerCube irradianceSampler; +#endif +#else +#define sampleReflection(s,c) texture2D(s,c) +uniform sampler2D reflectionSampler; +#ifdef LODBASEDMICROSFURACE +#define sampleReflectionLod(s,c,l) texture2DLodEXT(s,c,l) +#else +uniform sampler2D reflectionSamplerLow; +uniform sampler2D reflectionSamplerHigh; +#endif +#ifdef USEIRRADIANCEMAP +uniform sampler2D irradianceSampler; +#endif +#endif +#ifdef REFLECTIONMAP_SKYBOX +varying vec3 vPositionUVW; +#else +#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED) +varying vec3 vDirectionW; +#endif +#endif +#endif +#ifdef ENVIRONMENTBRDF +uniform sampler2D environmentBrdfSampler; +#endif + +#ifdef SUBSURFACE +#ifdef SS_REFRACTION +#ifdef SS_REFRACTIONMAP_3D +#define sampleRefraction(s,c) textureCube(s,c) +uniform samplerCube refractionSampler; +#ifdef LODBASEDMICROSFURACE +#define sampleRefractionLod(s,c,l) textureCubeLodEXT(s,c,l) +#else +uniform samplerCube refractionSamplerLow; +uniform samplerCube refractionSamplerHigh; +#endif +#else +#define sampleRefraction(s,c) texture2D(s,c) +uniform sampler2D refractionSampler; +#ifdef LODBASEDMICROSFURACE +#define sampleRefractionLod(s,c,l) texture2DLodEXT(s,c,l) +#else +uniform sampler2D refractionSamplerLow; +uniform sampler2D refractionSamplerHigh; +#endif +#endif +#endif +#ifdef SS_THICKNESSANDMASK_TEXTURE +#if SS_THICKNESSANDMASK_TEXTUREDIRECTUV == 1 +#define vThicknessUV vMainUV1 +#elif SS_THICKNESSANDMASK_TEXTUREDIRECTUV == 2 +#define vThicknessUV vMainUV2 +#else +varying vec2 vThicknessUV; +#endif +uniform sampler2D thicknessSampler; +#endif +#endif`;ze.a.IncludesShadersStore.pbrFragmentSamplersDeclaration=Ip,f(116),ze.a.IncludesShadersStore.subSurfaceScatteringFunctions=`bool testLightingForSSS(float diffusionProfile) +{ +return diffusionProfile<1.; +}`;var Dp=` + + + + + + + + + + + + + + + + + + + + + + + + + + + + +vec3 hemisphereCosSample(vec2 u) { + +float phi=2.*PI*u.x; +float cosTheta2=1.-u.y; +float cosTheta=sqrt(cosTheta2); +float sinTheta=sqrt(1.-cosTheta2); +return vec3(sinTheta*cos(phi),sinTheta*sin(phi),cosTheta); +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +vec3 hemisphereImportanceSampleDggx(vec2 u,float a) { + +float phi=2.*PI*u.x; + +float cosTheta2=(1.-u.y)/(1.+(a+1.)*((a-1.)*u.y)); +float cosTheta=sqrt(cosTheta2); +float sinTheta=sqrt(1.-cosTheta2); +return vec3(sinTheta*cos(phi),sinTheta*sin(phi),cosTheta); +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +vec3 hemisphereImportanceSampleDCharlie(vec2 u,float a) { + +float phi=2.*PI*u.x; +float sinTheta=pow(u.y,a/(2.*a+1.)); +float cosTheta=sqrt(1.-sinTheta*sinTheta); +return vec3(sinTheta*cos(phi),sinTheta*sin(phi),cosTheta); +}`;ze.a.IncludesShadersStore.importanceSampling=Dp;var Lp=` +#define RECIPROCAL_PI2 0.15915494 +#define RECIPROCAL_PI 0.31830988618 + +#define MINIMUMVARIANCE 0.0005 +float convertRoughnessToAverageSlope(float roughness) +{ + +return square(roughness)+MINIMUMVARIANCE; +} +float fresnelGrazingReflectance(float reflectance0) { + + +float reflectance90=saturate(reflectance0*25.0); +return reflectance90; +} +vec2 getAARoughnessFactors(vec3 normalVector) { +#ifdef SPECULARAA +vec3 nDfdx=dFdx(normalVector.xyz); +vec3 nDfdy=dFdy(normalVector.xyz); +float slopeSquare=max(dot(nDfdx,nDfdx),dot(nDfdy,nDfdy)); + +float geometricRoughnessFactor=pow(saturate(slopeSquare),0.333); + +float geometricAlphaGFactor=sqrt(slopeSquare); + +geometricAlphaGFactor*=0.75; +return vec2(geometricRoughnessFactor,geometricAlphaGFactor); +#else +return vec2(0.); +#endif +} +#ifdef ANISOTROPIC + + +vec2 getAnisotropicRoughness(float alphaG,float anisotropy) { +float alphaT=max(alphaG*(1.0+anisotropy),MINIMUMVARIANCE); +float alphaB=max(alphaG*(1.0-anisotropy),MINIMUMVARIANCE); +return vec2(alphaT,alphaB); +} + + +vec3 getAnisotropicBentNormals(const vec3 T,const vec3 B,const vec3 N,const vec3 V,float anisotropy) { +vec3 anisotropicFrameDirection=anisotropy>=0.0 ? B : T; +vec3 anisotropicFrameTangent=cross(normalize(anisotropicFrameDirection),V); +vec3 anisotropicFrameNormal=cross(anisotropicFrameTangent,anisotropicFrameDirection); +vec3 anisotropicNormal=normalize(mix(N,anisotropicFrameNormal,abs(anisotropy))); +return anisotropicNormal; + +} +#endif +#if defined(CLEARCOAT) || defined(SS_REFRACTION) + + + +vec3 cocaLambert(vec3 alpha,float distance) { +return exp(-alpha*distance); +} + +vec3 cocaLambert(float NdotVRefract,float NdotLRefract,vec3 alpha,float thickness) { +return cocaLambert(alpha,(thickness*((NdotLRefract+NdotVRefract)/(NdotLRefract*NdotVRefract)))); +} + +vec3 computeColorAtDistanceInMedia(vec3 color,float distance) { +return -log(color)/distance; +} +vec3 computeClearCoatAbsorption(float NdotVRefract,float NdotLRefract,vec3 clearCoatColor,float clearCoatThickness,float clearCoatIntensity) { +vec3 clearCoatAbsorption=mix(vec3(1.0), +cocaLambert(NdotVRefract,NdotLRefract,clearCoatColor,clearCoatThickness), +clearCoatIntensity); +return clearCoatAbsorption; +} +#endif + + + + +#ifdef MICROSURFACEAUTOMATIC +float computeDefaultMicroSurface(float microSurface,vec3 reflectivityColor) +{ +const float kReflectivityNoAlphaWorkflow_SmoothnessMax=0.95; +float reflectivityLuminance=getLuminance(reflectivityColor); +float reflectivityLuma=sqrt(reflectivityLuminance); +microSurface=reflectivityLuma*kReflectivityNoAlphaWorkflow_SmoothnessMax; +return microSurface; +} +#endif`;ze.a.IncludesShadersStore.pbrHelperFunctions=Lp;var Np=`#ifdef USESPHERICALFROMREFLECTIONMAP +#ifdef SPHERICAL_HARMONICS +uniform vec3 vSphericalL00; +uniform vec3 vSphericalL1_1; +uniform vec3 vSphericalL10; +uniform vec3 vSphericalL11; +uniform vec3 vSphericalL2_2; +uniform vec3 vSphericalL2_1; +uniform vec3 vSphericalL20; +uniform vec3 vSphericalL21; +uniform vec3 vSphericalL22; + + + + + + + +vec3 computeEnvironmentIrradiance(vec3 normal) { +return vSphericalL00 ++vSphericalL1_1*(normal.y) ++vSphericalL10*(normal.z) ++vSphericalL11*(normal.x) ++vSphericalL2_2*(normal.y*normal.x) ++vSphericalL2_1*(normal.y*normal.z) ++vSphericalL20*((3.0*normal.z*normal.z)-1.0) ++vSphericalL21*(normal.z*normal.x) ++vSphericalL22*(normal.x*normal.x-(normal.y*normal.y)); +} +#else +uniform vec3 vSphericalX; +uniform vec3 vSphericalY; +uniform vec3 vSphericalZ; +uniform vec3 vSphericalXX_ZZ; +uniform vec3 vSphericalYY_ZZ; +uniform vec3 vSphericalZZ; +uniform vec3 vSphericalXY; +uniform vec3 vSphericalYZ; +uniform vec3 vSphericalZX; + +vec3 computeEnvironmentIrradiance(vec3 normal) { + + + + + + + + + +float Nx=normal.x; +float Ny=normal.y; +float Nz=normal.z; +vec3 C1=vSphericalZZ.rgb; +vec3 Cx=vSphericalX.rgb; +vec3 Cy=vSphericalY.rgb; +vec3 Cz=vSphericalZ.rgb; +vec3 Cxx_zz=vSphericalXX_ZZ.rgb; +vec3 Cyy_zz=vSphericalYY_ZZ.rgb; +vec3 Cxy=vSphericalXY.rgb; +vec3 Cyz=vSphericalYZ.rgb; +vec3 Czx=vSphericalZX.rgb; +vec3 a1=Cyy_zz*Ny+Cy; +vec3 a2=Cyz*Nz+a1; +vec3 b1=Czx*Nz+Cx; +vec3 b2=Cxy*Ny+b1; +vec3 b3=Cxx_zz*Nx+b2; +vec3 t1=Cz*Nz+C1; +vec3 t2=a2*Ny+t1; +vec3 t3=b3*Nx+t2; +return t3; +} +#endif +#endif`;ze.a.IncludesShadersStore.harmonicsFunctions=Np;var wp=` +struct preLightingInfo +{ + +vec3 lightOffset; +float lightDistanceSquared; +float lightDistance; + +float attenuation; + +vec3 L; +vec3 H; +float NdotV; +float NdotLUnclamped; +float NdotL; +float VdotH; +float roughness; +}; +preLightingInfo computePointAndSpotPreLightingInfo(vec4 lightData,vec3 V,vec3 N) { +preLightingInfo result; + +result.lightOffset=lightData.xyz-vPositionW; +result.lightDistanceSquared=dot(result.lightOffset,result.lightOffset); + +result.lightDistance=sqrt(result.lightDistanceSquared); + +result.L=normalize(result.lightOffset); +result.H=normalize(V+result.L); +result.VdotH=saturate(dot(V,result.H)); +result.NdotLUnclamped=dot(N,result.L); +result.NdotL=saturateEps(result.NdotLUnclamped); +return result; +} +preLightingInfo computeDirectionalPreLightingInfo(vec4 lightData,vec3 V,vec3 N) { +preLightingInfo result; + +result.lightDistance=length(-lightData.xyz); + +result.L=normalize(-lightData.xyz); +result.H=normalize(V+result.L); +result.VdotH=saturate(dot(V,result.H)); +result.NdotLUnclamped=dot(N,result.L); +result.NdotL=saturateEps(result.NdotLUnclamped); +return result; +} +preLightingInfo computeHemisphericPreLightingInfo(vec4 lightData,vec3 V,vec3 N) { +preLightingInfo result; + + +result.NdotL=dot(N,lightData.xyz)*0.5+0.5; +result.NdotL=saturateEps(result.NdotL); +result.NdotLUnclamped=result.NdotL; +#ifdef SPECULARTERM +result.L=normalize(lightData.xyz); +result.H=normalize(V+result.L); +result.VdotH=saturate(dot(V,result.H)); +#endif +return result; +}`;ze.a.IncludesShadersStore.pbrDirectLightingSetupFunctions=wp;var Fp=`float computeDistanceLightFalloff_Standard(vec3 lightOffset,float range) +{ +return max(0.,1.0-length(lightOffset)/range); +} +float computeDistanceLightFalloff_Physical(float lightDistanceSquared) +{ +return 1.0/maxEps(lightDistanceSquared); +} +float computeDistanceLightFalloff_GLTF(float lightDistanceSquared,float inverseSquaredRange) +{ +float lightDistanceFalloff=1.0/maxEps(lightDistanceSquared); +float factor=lightDistanceSquared*inverseSquaredRange; +float attenuation=saturate(1.0-factor*factor); +attenuation*=attenuation; + +lightDistanceFalloff*=attenuation; +return lightDistanceFalloff; +} +float computeDistanceLightFalloff(vec3 lightOffset,float lightDistanceSquared,float range,float inverseSquaredRange) +{ +#ifdef USEPHYSICALLIGHTFALLOFF +return computeDistanceLightFalloff_Physical(lightDistanceSquared); +#elif defined(USEGLTFLIGHTFALLOFF) +return computeDistanceLightFalloff_GLTF(lightDistanceSquared,inverseSquaredRange); +#else +return computeDistanceLightFalloff_Standard(lightOffset,range); +#endif +} +float computeDirectionalLightFalloff_Standard(vec3 lightDirection,vec3 directionToLightCenterW,float cosHalfAngle,float exponent) +{ +float falloff=0.0; +float cosAngle=maxEps(dot(-lightDirection,directionToLightCenterW)); +if (cosAngle>=cosHalfAngle) +{ +falloff=max(0.,pow(cosAngle,exponent)); +} +return falloff; +} +float computeDirectionalLightFalloff_Physical(vec3 lightDirection,vec3 directionToLightCenterW,float cosHalfAngle) +{ +const float kMinusLog2ConeAngleIntensityRatio=6.64385618977; + + + + + +float concentrationKappa=kMinusLog2ConeAngleIntensityRatio/(1.0-cosHalfAngle); + + +vec4 lightDirectionSpreadSG=vec4(-lightDirection*concentrationKappa,-concentrationKappa); +float falloff=exp2(dot(vec4(directionToLightCenterW,1.0),lightDirectionSpreadSG)); +return falloff; +} +float computeDirectionalLightFalloff_GLTF(vec3 lightDirection,vec3 directionToLightCenterW,float lightAngleScale,float lightAngleOffset) +{ + + + +float cd=dot(-lightDirection,directionToLightCenterW); +float falloff=saturate(cd*lightAngleScale+lightAngleOffset); + +falloff*=falloff; +return falloff; +} +float computeDirectionalLightFalloff(vec3 lightDirection,vec3 directionToLightCenterW,float cosHalfAngle,float exponent,float lightAngleScale,float lightAngleOffset) +{ +#ifdef USEPHYSICALLIGHTFALLOFF +return computeDirectionalLightFalloff_Physical(lightDirection,directionToLightCenterW,cosHalfAngle); +#elif defined(USEGLTFLIGHTFALLOFF) +return computeDirectionalLightFalloff_GLTF(lightDirection,directionToLightCenterW,lightAngleScale,lightAngleOffset); +#else +return computeDirectionalLightFalloff_Standard(lightDirection,directionToLightCenterW,cosHalfAngle,exponent); +#endif +}`;ze.a.IncludesShadersStore.pbrDirectLightingFalloffFunctions=Fp;var Bp=` +#define FRESNEL_MAXIMUM_ON_ROUGH 0.25 + + + + +#ifdef MS_BRDF_ENERGY_CONSERVATION + + +vec3 getEnergyConservationFactor(const vec3 specularEnvironmentR0,const vec3 environmentBrdf) { +return 1.0+specularEnvironmentR0*(1.0/environmentBrdf.y-1.0); +} +#endif +#ifdef ENVIRONMENTBRDF +vec3 getBRDFLookup(float NdotV,float perceptualRoughness) { + +vec2 UV=vec2(NdotV,perceptualRoughness); + +vec4 brdfLookup=texture2D(environmentBrdfSampler,UV); +#ifdef ENVIRONMENTBRDF_RGBD +brdfLookup.rgb=fromRGBD(brdfLookup.rgba); +#endif +return brdfLookup.rgb; +} +vec3 getReflectanceFromBRDFLookup(const vec3 specularEnvironmentR0,const vec3 specularEnvironmentR90,const vec3 environmentBrdf) { +#ifdef BRDF_V_HEIGHT_CORRELATED +vec3 reflectance=(specularEnvironmentR90-specularEnvironmentR0)*environmentBrdf.x+specularEnvironmentR0*environmentBrdf.y; + +#else +vec3 reflectance=specularEnvironmentR0*environmentBrdf.x+specularEnvironmentR90*environmentBrdf.y; +#endif +return reflectance; +} +vec3 getReflectanceFromBRDFLookup(const vec3 specularEnvironmentR0,const vec3 environmentBrdf) { +#ifdef BRDF_V_HEIGHT_CORRELATED +vec3 reflectance=mix(environmentBrdf.xxx,environmentBrdf.yyy,specularEnvironmentR0); +#else +vec3 reflectance=specularEnvironmentR0*environmentBrdf.x+environmentBrdf.y; +#endif +return reflectance; +} +#endif + +#if !defined(ENVIRONMENTBRDF) || defined(REFLECTIONMAP_SKYBOX) || defined(ALPHAFRESNEL) +vec3 getReflectanceFromAnalyticalBRDFLookup_Jones(float VdotN,vec3 reflectance0,vec3 reflectance90,float smoothness) +{ + +float weight=mix(FRESNEL_MAXIMUM_ON_ROUGH,1.0,smoothness); +return reflectance0+weight*(reflectance90-reflectance0)*pow5(saturate(1.0-VdotN)); +} +#endif +#if defined(SHEEN) && defined(ENVIRONMENTBRDF) + +vec3 getSheenReflectanceFromBRDFLookup(const vec3 reflectance0,const vec3 environmentBrdf) { +vec3 sheenEnvironmentReflectance=reflectance0*environmentBrdf.b; +return sheenEnvironmentReflectance; +} +#endif + + + + + + + + + + + + + + + + + + + + + + + + +vec3 fresnelSchlickGGX(float VdotH,vec3 reflectance0,vec3 reflectance90) +{ +return reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH); +} +float fresnelSchlickGGX(float VdotH,float reflectance0,float reflectance90) +{ +return reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH); +} +#ifdef CLEARCOAT + + + + + +vec3 getR0RemappedForClearCoat(vec3 f0) { +#ifdef CLEARCOAT_DEFAULTIOR +#ifdef MOBILE +return saturate(f0*(f0*0.526868+0.529324)-0.0482256); +#else +return saturate(f0*(f0*(0.941892-0.263008*f0)+0.346479)-0.0285998); +#endif +#else +vec3 s=sqrt(f0); +vec3 t=(vClearCoatRefractionParams.z+vClearCoatRefractionParams.w*s)/(vClearCoatRefractionParams.w+vClearCoatRefractionParams.z*s); +return t*t; +#endif +} +#endif + + + + + + +float normalDistributionFunction_TrowbridgeReitzGGX(float NdotH,float alphaG) +{ + + + +float a2=square(alphaG); +float d=NdotH*NdotH*(a2-1.0)+1.0; +return a2/(PI*d*d); +} +#ifdef SHEEN + + +float normalDistributionFunction_CharlieSheen(float NdotH,float alphaG) +{ +float invR=1./alphaG; +float cos2h=NdotH*NdotH; +float sin2h=1.-cos2h; +return (2.+invR)*pow(sin2h,invR*.5)/(2.*PI); +} +#endif +#ifdef ANISOTROPIC + + +float normalDistributionFunction_BurleyGGX_Anisotropic(float NdotH,float TdotH,float BdotH,const vec2 alphaTB) { +float a2=alphaTB.x*alphaTB.y; +vec3 v=vec3(alphaTB.y*TdotH,alphaTB.x*BdotH,a2*NdotH); +float v2=dot(v,v); +float w2=a2/v2; +return a2*w2*w2*RECIPROCAL_PI; +} +#endif + + + + +#ifdef BRDF_V_HEIGHT_CORRELATED + + + +float smithVisibility_GGXCorrelated(float NdotL,float NdotV,float alphaG) { +#ifdef MOBILE + +float GGXV=NdotL*(NdotV*(1.0-alphaG)+alphaG); +float GGXL=NdotV*(NdotL*(1.0-alphaG)+alphaG); +return 0.5/(GGXV+GGXL); +#else +float a2=alphaG*alphaG; +float GGXV=NdotL*sqrt(NdotV*(NdotV-a2*NdotV)+a2); +float GGXL=NdotV*sqrt(NdotL*(NdotL-a2*NdotL)+a2); +return 0.5/(GGXV+GGXL); +#endif +} +#else + + + + + + + + + + + + + + + +float smithVisibilityG1_TrowbridgeReitzGGXFast(float dot,float alphaG) +{ +#ifdef MOBILE + +return 1.0/(dot+alphaG+(1.0-alphaG)*dot )); +#else +float alphaSquared=alphaG*alphaG; +return 1.0/(dot+sqrt(alphaSquared+(1.0-alphaSquared)*dot*dot)); +#endif +} +float smithVisibility_TrowbridgeReitzGGXFast(float NdotL,float NdotV,float alphaG) +{ +float visibility=smithVisibilityG1_TrowbridgeReitzGGXFast(NdotL,alphaG)*smithVisibilityG1_TrowbridgeReitzGGXFast(NdotV,alphaG); + +return visibility; +} +#endif +#ifdef ANISOTROPIC + + +float smithVisibility_GGXCorrelated_Anisotropic(float NdotL,float NdotV,float TdotV,float BdotV,float TdotL,float BdotL,const vec2 alphaTB) { +float lambdaV=NdotL*length(vec3(alphaTB.x*TdotV,alphaTB.y*BdotV,NdotV)); +float lambdaL=NdotV*length(vec3(alphaTB.x*TdotL,alphaTB.y*BdotL,NdotL)); +float v=0.5/(lambdaV+lambdaL); +return v; +} +#endif +#ifdef CLEARCOAT +float visibility_Kelemen(float VdotH) { + + + +return 0.25/(VdotH*VdotH); +} +#endif +#ifdef SHEEN + + + +float visibility_Ashikhmin(float NdotL,float NdotV) +{ +return 1./(4.*(NdotL+NdotV-NdotL*NdotV)); +} + +#endif + + + + + + + +float diffuseBRDF_Burley(float NdotL,float NdotV,float VdotH,float roughness) { + + +float diffuseFresnelNV=pow5(saturateEps(1.0-NdotL)); +float diffuseFresnelNL=pow5(saturateEps(1.0-NdotV)); +float diffuseFresnel90=0.5+2.0*VdotH*VdotH*roughness; +float fresnel = +(1.0+(diffuseFresnel90-1.0)*diffuseFresnelNL) * +(1.0+(diffuseFresnel90-1.0)*diffuseFresnelNV); +return fresnel/PI; +} +#ifdef SS_TRANSLUCENCY + + +vec3 transmittanceBRDF_Burley(const vec3 tintColor,const vec3 diffusionDistance,float thickness) { +vec3 S=1./maxEps(diffusionDistance); +vec3 temp=exp((-0.333333333*thickness)*S); +return tintColor.rgb*0.25*(temp*temp*temp+3.0*temp); +} + + +float computeWrappedDiffuseNdotL(float NdotL,float w) { +float t=1.0+w; +float invt2=1.0/square(t); +return saturate((NdotL+w)*invt2); +} +#endif +`;ze.a.IncludesShadersStore.pbrBRDFFunctions=Bp;var Up=`#ifdef NUM_SAMPLES +#if NUM_SAMPLES>0 +#ifdef WEBGL2 + + +float radicalInverse_VdC(uint bits) +{ +bits=(bits << 16u) | (bits >> 16u); +bits=((bits & 0x55555555u) << 1u) | ((bits & 0xAAAAAAAAu) >> 1u); +bits=((bits & 0x33333333u) << 2u) | ((bits & 0xCCCCCCCCu) >> 2u); +bits=((bits & 0x0F0F0F0Fu) << 4u) | ((bits & 0xF0F0F0F0u) >> 4u); +bits=((bits & 0x00FF00FFu) << 8u) | ((bits & 0xFF00FF00u) >> 8u); +return float(bits)*2.3283064365386963e-10; +} +vec2 hammersley(uint i,uint N) +{ +return vec2(float(i)/float(N),radicalInverse_VdC(i)); +} +#else +float vanDerCorpus(int n,int base) +{ +float invBase=1.0/float(base); +float denom=1.0; +float result=0.0; +for(int i=0; i<32; ++i) +{ +if(n>0) +{ +denom=mod(float(n),2.0); +result+=denom*invBase; +invBase=invBase/2.0; +n=int(float(n)/2.0); +} +} +return result; +} +vec2 hammersley(int i,int N) +{ +return vec2(float(i)/float(N),vanDerCorpus(i,2)); +} +#endif +float log4(float x) { +return log2(x)/2.; +} +const float NUM_SAMPLES_FLOAT=float(NUM_SAMPLES); +const float NUM_SAMPLES_FLOAT_INVERSED=1./NUM_SAMPLES_FLOAT; +const float K=4.; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +#define inline +vec3 irradiance(samplerCube inputTexture,vec3 inputN,vec2 filteringInfo) +{ +vec3 n=normalize(inputN); +vec3 result=vec3(0.0); +vec3 tangent=abs(n.z)<0.999 ? vec3(0.,0.,1.) : vec3(1.,0.,0.); +tangent=normalize(cross(tangent,n)); +vec3 bitangent=cross(n,tangent); +mat3 tbn=mat3(tangent,bitangent,n); +float maxLevel=filteringInfo.y; +float dim0=filteringInfo.x; +float omegaP=(4.*PI)/(6.*dim0*dim0); +#ifdef WEBGL2 +for(uint i=0u; i0.) { +float pdf_inversed=PI/NoL; +float omegaS=NUM_SAMPLES_FLOAT_INVERSED*pdf_inversed; +float l=log4(omegaS)-log4(omegaP)+log4(K); +float mipLevel=clamp(l,0.0,maxLevel); +vec3 c=textureCubeLodEXT(inputTexture,tbn*Ls,mipLevel).rgb; +#ifdef GAMMA_INPUT +c=toLinearSpace(c); +#endif +result+=c; +} +} +result=result*NUM_SAMPLES_FLOAT_INVERSED; +return result; +} +#define inline +vec3 radiance(float alphaG,samplerCube inputTexture,vec3 inputN,vec2 filteringInfo) +{ +vec3 n=normalize(inputN); +if (alphaG == 0.) { +vec3 c=textureCube(inputTexture,n).rgb; +#ifdef GAMMA_INPUT +c=toLinearSpace(c); +#endif +return c; +} +vec3 result=vec3(0.); +vec3 tangent=abs(n.z)<0.999 ? vec3(0.,0.,1.) : vec3(1.,0.,0.); +tangent=normalize(cross(tangent,n)); +vec3 bitangent=cross(n,tangent); +mat3 tbn=mat3(tangent,bitangent,n); +float maxLevel=filteringInfo.y; +float dim0=filteringInfo.x; +float omegaP=(4.*PI)/(6.*dim0*dim0); +float weight=0.; +#ifdef WEBGL2 +for(uint i=0u; i0.) { +float pdf_inversed=4./normalDistributionFunction_TrowbridgeReitzGGX(NoH,alphaG); +float omegaS=NUM_SAMPLES_FLOAT_INVERSED*pdf_inversed; +float l=log4(omegaS)-log4(omegaP)+log4(K); +float mipLevel=clamp(float(l),0.0,maxLevel); +weight+=NoL; +vec3 c=textureCubeLodEXT(inputTexture,tbn*L,mipLevel).rgb; +#ifdef GAMMA_INPUT +c=toLinearSpace(c); +#endif +result+=c*NoL; +} +} +result=result/weight; +return result; +} +#endif +#endif`;ze.a.IncludesShadersStore.hdrFilteringFunctions=Up;var Vp=`#define CLEARCOATREFLECTANCE90 1.0 + +struct lightingInfo +{ +vec3 diffuse; +#ifdef SPECULARTERM +vec3 specular; +#endif +#ifdef CLEARCOAT + + +vec4 clearCoat; +#endif +#ifdef SHEEN +vec3 sheen; +#endif +}; + +float adjustRoughnessFromLightProperties(float roughness,float lightRadius,float lightDistance) { +#if defined(USEPHYSICALLIGHTFALLOFF) || defined(USEGLTFLIGHTFALLOFF) + +float lightRoughness=lightRadius/lightDistance; + +float totalRoughness=saturate(lightRoughness+roughness); +return totalRoughness; +#else +return roughness; +#endif +} +vec3 computeHemisphericDiffuseLighting(preLightingInfo info,vec3 lightColor,vec3 groundColor) { +return mix(groundColor,lightColor,info.NdotL); +} +vec3 computeDiffuseLighting(preLightingInfo info,vec3 lightColor) { +float diffuseTerm=diffuseBRDF_Burley(info.NdotL,info.NdotV,info.VdotH,info.roughness); +return diffuseTerm*info.attenuation*info.NdotL*lightColor; +} +#define inline +vec3 computeProjectionTextureDiffuseLighting(sampler2D projectionLightSampler,mat4 textureProjectionMatrix){ +vec4 strq=textureProjectionMatrix*vec4(vPositionW,1.0); +strq/=strq.w; +vec3 textureColor=texture2D(projectionLightSampler,strq.xy).rgb; +return toLinearSpace(textureColor); +} +#ifdef SS_TRANSLUCENCY +vec3 computeDiffuseAndTransmittedLighting(preLightingInfo info,vec3 lightColor,vec3 transmittance) { +float NdotL=absEps(info.NdotLUnclamped); + +float wrapNdotL=computeWrappedDiffuseNdotL(NdotL,0.02); + +float trAdapt=step(0.,info.NdotLUnclamped); +vec3 transmittanceNdotL=mix(transmittance*wrapNdotL,vec3(wrapNdotL),trAdapt); +float diffuseTerm=diffuseBRDF_Burley(NdotL,info.NdotV,info.VdotH,info.roughness); +return diffuseTerm*transmittanceNdotL*info.attenuation*lightColor; +} +#endif +#ifdef SPECULARTERM +vec3 computeSpecularLighting(preLightingInfo info,vec3 N,vec3 reflectance0,vec3 reflectance90,float geometricRoughnessFactor,vec3 lightColor) { +float NdotH=saturateEps(dot(N,info.H)); +float roughness=max(info.roughness,geometricRoughnessFactor); +float alphaG=convertRoughnessToAverageSlope(roughness); +vec3 fresnel=fresnelSchlickGGX(info.VdotH,reflectance0,reflectance90); +float distribution=normalDistributionFunction_TrowbridgeReitzGGX(NdotH,alphaG); +#ifdef BRDF_V_HEIGHT_CORRELATED +float smithVisibility=smithVisibility_GGXCorrelated(info.NdotL,info.NdotV,alphaG); +#else +float smithVisibility=smithVisibility_TrowbridgeReitzGGXFast(info.NdotL,info.NdotV,alphaG); +#endif +vec3 specTerm=fresnel*distribution*smithVisibility; +return specTerm*info.attenuation*info.NdotL*lightColor; +} +#endif +#ifdef ANISOTROPIC +vec3 computeAnisotropicSpecularLighting(preLightingInfo info,vec3 V,vec3 N,vec3 T,vec3 B,float anisotropy,vec3 reflectance0,vec3 reflectance90,float geometricRoughnessFactor,vec3 lightColor) { +float NdotH=saturateEps(dot(N,info.H)); +float TdotH=dot(T,info.H); +float BdotH=dot(B,info.H); +float TdotV=dot(T,V); +float BdotV=dot(B,V); +float TdotL=dot(T,info.L); +float BdotL=dot(B,info.L); +float alphaG=convertRoughnessToAverageSlope(info.roughness); +vec2 alphaTB=getAnisotropicRoughness(alphaG,anisotropy); +alphaTB=max(alphaTB,square(geometricRoughnessFactor)); +vec3 fresnel=fresnelSchlickGGX(info.VdotH,reflectance0,reflectance90); +float distribution=normalDistributionFunction_BurleyGGX_Anisotropic(NdotH,TdotH,BdotH,alphaTB); +float smithVisibility=smithVisibility_GGXCorrelated_Anisotropic(info.NdotL,info.NdotV,TdotV,BdotV,TdotL,BdotL,alphaTB); +vec3 specTerm=fresnel*distribution*smithVisibility; +return specTerm*info.attenuation*info.NdotL*lightColor; +} +#endif +#ifdef CLEARCOAT +vec4 computeClearCoatLighting(preLightingInfo info,vec3 Ncc,float geometricRoughnessFactor,float clearCoatIntensity,vec3 lightColor) { +float NccdotL=saturateEps(dot(Ncc,info.L)); +float NccdotH=saturateEps(dot(Ncc,info.H)); +float clearCoatRoughness=max(info.roughness,geometricRoughnessFactor); +float alphaG=convertRoughnessToAverageSlope(clearCoatRoughness); +float fresnel=fresnelSchlickGGX(info.VdotH,vClearCoatRefractionParams.x,CLEARCOATREFLECTANCE90); +fresnel*=clearCoatIntensity; +float distribution=normalDistributionFunction_TrowbridgeReitzGGX(NccdotH,alphaG); +float kelemenVisibility=visibility_Kelemen(info.VdotH); +float clearCoatTerm=fresnel*distribution*kelemenVisibility; +return vec4( +clearCoatTerm*info.attenuation*NccdotL*lightColor, +1.0-fresnel +); +} +vec3 computeClearCoatLightingAbsorption(float NdotVRefract,vec3 L,vec3 Ncc,vec3 clearCoatColor,float clearCoatThickness,float clearCoatIntensity) { +vec3 LRefract=-refract(L,Ncc,vClearCoatRefractionParams.y); +float NdotLRefract=saturateEps(dot(Ncc,LRefract)); +vec3 absorption=computeClearCoatAbsorption(NdotVRefract,NdotLRefract,clearCoatColor,clearCoatThickness,clearCoatIntensity); +return absorption; +} +#endif +#ifdef SHEEN +vec3 computeSheenLighting(preLightingInfo info,vec3 N,vec3 reflectance0,vec3 reflectance90,float geometricRoughnessFactor,vec3 lightColor) { +float NdotH=saturateEps(dot(N,info.H)); +float roughness=max(info.roughness,geometricRoughnessFactor); +float alphaG=convertRoughnessToAverageSlope(roughness); + + +float fresnel=1.; +float distribution=normalDistributionFunction_CharlieSheen(NdotH,alphaG); + +float visibility=visibility_Ashikhmin(info.NdotL,info.NdotV); + +float sheenTerm=fresnel*distribution*visibility; +return sheenTerm*info.attenuation*info.NdotL*lightColor; +} +#endif +`;ze.a.IncludesShadersStore.pbrDirectLightingFunctions=Vp;var kp=`#if defined(REFLECTION) || defined(SS_REFRACTION) +float getLodFromAlphaG(float cubeMapDimensionPixels,float microsurfaceAverageSlope) { +float microsurfaceAverageSlopeTexels=cubeMapDimensionPixels*microsurfaceAverageSlope; +float lod=log2(microsurfaceAverageSlopeTexels); +return lod; +} +float getLinearLodFromRoughness(float cubeMapDimensionPixels,float roughness) { +float lod=log2(cubeMapDimensionPixels)*roughness; +return lod; +} +#endif +#if defined(ENVIRONMENTBRDF) && defined(RADIANCEOCCLUSION) +float environmentRadianceOcclusion(float ambientOcclusion,float NdotVUnclamped) { + + +float temp=NdotVUnclamped+ambientOcclusion; +return saturate(square(temp)-1.0+ambientOcclusion); +} +#endif +#if defined(ENVIRONMENTBRDF) && defined(HORIZONOCCLUSION) +float environmentHorizonOcclusion(vec3 view,vec3 normal,vec3 geometricNormal) { + +vec3 reflection=reflect(view,normal); +float temp=saturate(1.0+1.1*dot(reflection,geometricNormal)); +return square(temp); +} +#endif + + + + +#if defined(LODINREFLECTIONALPHA) || defined(SS_LODINREFRACTIONALPHA) + + +#define UNPACK_LOD(x) (1.0-x)*255.0 +float getLodFromAlphaG(float cubeMapDimensionPixels,float alphaG,float NdotV) { +float microsurfaceAverageSlope=alphaG; + + + + + + +microsurfaceAverageSlope*=sqrt(abs(NdotV)); +return getLodFromAlphaG(cubeMapDimensionPixels,microsurfaceAverageSlope); +} +#endif`;ze.a.IncludesShadersStore.pbrIBLFunctions=kp,f(132),f(133);var Gp=`struct albedoOpacityOutParams +{ +vec3 surfaceAlbedo; +float alpha; +}; +#define pbr_inline +void albedoOpacityBlock( +const in vec4 vAlbedoColor, +#ifdef ALBEDO +const in vec4 albedoTexture, +const in vec2 albedoInfos, +#endif +#ifdef OPACITY +const in vec4 opacityMap, +const in vec2 vOpacityInfos, +#endif +#ifdef DETAIL +const in vec4 detailColor, +const in vec4 vDetailInfos, +#endif +out albedoOpacityOutParams outParams +) +{ + +vec3 surfaceAlbedo=vAlbedoColor.rgb; +float alpha=vAlbedoColor.a; +#ifdef ALBEDO +#if defined(ALPHAFROMALBEDO) || defined(ALPHATEST) +alpha*=albedoTexture.a; +#endif +#ifdef GAMMAALBEDO +surfaceAlbedo*=toLinearSpace(albedoTexture.rgb); +#else +surfaceAlbedo*=albedoTexture.rgb; +#endif +surfaceAlbedo*=albedoInfos.y; +#endif +#ifdef VERTEXCOLOR +surfaceAlbedo*=vColor.rgb; +#endif +#ifdef DETAIL +float detailAlbedo=2.0*mix(0.5,detailColor.r,vDetailInfos.y); +surfaceAlbedo.rgb=surfaceAlbedo.rgb*detailAlbedo*detailAlbedo; +#endif +#define CUSTOM_FRAGMENT_UPDATE_ALBEDO + +#ifdef OPACITY +#ifdef OPACITYRGB +alpha=getLuminance(opacityMap.rgb); +#else +alpha*=opacityMap.a; +#endif +alpha*=vOpacityInfos.y; +#endif +#ifdef VERTEXALPHA +alpha*=vColor.a; +#endif +#if !defined(SS_LINKREFRACTIONTOTRANSPARENCY) && !defined(ALPHAFRESNEL) +#ifdef ALPHATEST +if (alpha0 +vec4 surfaceMetallicColorMap; +vec4 surfaceReflectivityColorMap; +vec2 metallicRoughness; +vec3 metallicF0; +#endif +}; +#define pbr_inline +void reflectivityBlock( +const in vec4 vReflectivityColor, +#ifdef METALLICWORKFLOW +const in vec3 surfaceAlbedo, +const in vec4 metallicReflectanceFactors, +#endif +#ifdef REFLECTIVITY +const in vec3 reflectivityInfos, +const in vec4 surfaceMetallicOrReflectivityColorMap, +#endif +#if defined(METALLICWORKFLOW) && defined(REFLECTIVITY) && defined(AOSTOREINMETALMAPRED) +const in vec3 ambientOcclusionColorIn, +#endif +#ifdef MICROSURFACEMAP +const in vec4 microSurfaceTexel, +#endif +#ifdef DETAIL +const in vec4 detailColor, +const in vec4 vDetailInfos, +#endif +out reflectivityOutParams outParams +) +{ +float microSurface=vReflectivityColor.a; +vec3 surfaceReflectivityColor=vReflectivityColor.rgb; +#ifdef METALLICWORKFLOW +vec2 metallicRoughness=surfaceReflectivityColor.rg; +#ifdef REFLECTIVITY +#if DEBUGMODE>0 +outParams.surfaceMetallicColorMap=surfaceMetallicOrReflectivityColorMap; +#endif +#ifdef AOSTOREINMETALMAPRED +vec3 aoStoreInMetalMap=vec3(surfaceMetallicOrReflectivityColorMap.r,surfaceMetallicOrReflectivityColorMap.r,surfaceMetallicOrReflectivityColorMap.r); +outParams.ambientOcclusionColor=mix(ambientOcclusionColorIn,aoStoreInMetalMap,reflectivityInfos.z); +#endif +#ifdef METALLNESSSTOREINMETALMAPBLUE +metallicRoughness.r*=surfaceMetallicOrReflectivityColorMap.b; +#else +metallicRoughness.r*=surfaceMetallicOrReflectivityColorMap.r; +#endif +#ifdef ROUGHNESSSTOREINMETALMAPALPHA +metallicRoughness.g*=surfaceMetallicOrReflectivityColorMap.a; +#else +#ifdef ROUGHNESSSTOREINMETALMAPGREEN +metallicRoughness.g*=surfaceMetallicOrReflectivityColorMap.g; +#endif +#endif +#endif +#ifdef DETAIL +float detailRoughness=mix(0.5,detailColor.b,vDetailInfos.w); +float loLerp=mix(0.,metallicRoughness.g,detailRoughness*2.); +float hiLerp=mix(metallicRoughness.g,1.,(detailRoughness-0.5)*2.); +metallicRoughness.g=mix(loLerp,hiLerp,step(detailRoughness,0.5)); +#endif +#ifdef MICROSURFACEMAP +metallicRoughness.g*=microSurfaceTexel.r; +#endif +#if DEBUGMODE>0 +outParams.metallicRoughness=metallicRoughness; +#endif +#define CUSTOM_FRAGMENT_UPDATE_METALLICROUGHNESS + +microSurface=1.0-metallicRoughness.g; + +vec3 baseColor=surfaceAlbedo; +#ifdef FROSTBITE_REFLECTANCE + + + + + + +outParams.surfaceAlbedo=baseColor.rgb*(1.0-metallicRoughness.r); + +surfaceReflectivityColor=mix(0.16*reflectance*reflectance,baseColor,metallicRoughness.r); +#else +vec3 metallicF0=metallicReflectanceFactors.rgb; +#if DEBUGMODE>0 +outParams.metallicF0=metallicF0; +#endif + +outParams.surfaceAlbedo=mix(baseColor.rgb*(1.0-metallicF0),vec3(0.,0.,0.),metallicRoughness.r); + +surfaceReflectivityColor=mix(metallicF0,baseColor,metallicRoughness.r); +#endif +#else +#ifdef REFLECTIVITY +surfaceReflectivityColor*=surfaceMetallicOrReflectivityColorMap.rgb; +#if DEBUGMODE>0 +outParams.surfaceReflectivityColorMap=surfaceMetallicOrReflectivityColorMap; +#endif +#ifdef MICROSURFACEFROMREFLECTIVITYMAP +microSurface*=surfaceMetallicOrReflectivityColorMap.a; +microSurface*=reflectivityInfos.z; +#else +#ifdef MICROSURFACEAUTOMATIC +microSurface*=computeDefaultMicroSurface(microSurface,surfaceReflectivityColor); +#endif +#ifdef MICROSURFACEMAP +microSurface*=microSurfaceTexel.r; +#endif +#define CUSTOM_FRAGMENT_UPDATE_MICROSURFACE +#endif +#endif +#endif + +microSurface=saturate(microSurface); + +float roughness=1.-microSurface; +outParams.microSurface=microSurface; +outParams.roughness=roughness; +outParams.surfaceReflectivityColor=surfaceReflectivityColor; +} +`;ze.a.IncludesShadersStore.pbrBlockReflectivity=zp;var jp=`struct ambientOcclusionOutParams +{ +vec3 ambientOcclusionColor; +#if DEBUGMODE>0 +vec3 ambientOcclusionColorMap; +#endif +}; +#define pbr_inline +void ambientOcclusionBlock( +#ifdef AMBIENT +const in vec3 ambientOcclusionColorMap_, +const in vec4 vAmbientInfos, +#endif +out ambientOcclusionOutParams outParams +) +{ +vec3 ambientOcclusionColor=vec3(1.,1.,1.); +#ifdef AMBIENT +vec3 ambientOcclusionColorMap=ambientOcclusionColorMap_*vAmbientInfos.y; +#ifdef AMBIENTINGRAYSCALE +ambientOcclusionColorMap=vec3(ambientOcclusionColorMap.r,ambientOcclusionColorMap.r,ambientOcclusionColorMap.r); +#endif +ambientOcclusionColor=mix(ambientOcclusionColor,ambientOcclusionColorMap,vAmbientInfos.z); +#if DEBUGMODE>0 +outParams.ambientOcclusionColorMap=ambientOcclusionColorMap; +#endif +#endif +outParams.ambientOcclusionColor=ambientOcclusionColor; +} +`;ze.a.IncludesShadersStore.pbrBlockAmbientOcclusion=jp;var Hp=`#ifdef ALPHAFRESNEL +#if defined(ALPHATEST) || defined(ALPHABLEND) +struct alphaFresnelOutParams +{ +float alpha; +}; +#define pbr_inline +void alphaFresnelBlock( +const in vec3 normalW, +const in vec3 viewDirectionW, +const in float alpha, +const in float microSurface, +out alphaFresnelOutParams outParams +) +{ + + + +float opacityPerceptual=alpha; +#ifdef LINEARALPHAFRESNEL +float opacity0=opacityPerceptual; +#else +float opacity0=opacityPerceptual*opacityPerceptual; +#endif +float opacity90=fresnelGrazingReflectance(opacity0); +vec3 normalForward=faceforward(normalW,-viewDirectionW,normalW); + +outParams.alpha=getReflectanceFromAnalyticalBRDFLookup_Jones(saturate(dot(viewDirectionW,normalForward)),vec3(opacity0),vec3(opacity90),sqrt(microSurface)).x; +#ifdef ALPHATEST +if (outParams.alpha0 +vec3 anisotropyMapData; +#endif +}; +#define pbr_inline +void anisotropicBlock( +const in vec3 vAnisotropy, +#ifdef ANISOTROPIC_TEXTURE +const in vec3 anisotropyMapData, +#endif +const in mat3 TBN, +const in vec3 normalW, +const in vec3 viewDirectionW, +out anisotropicOutParams outParams +) +{ +float anisotropy=vAnisotropy.b; +vec3 anisotropyDirection=vec3(vAnisotropy.xy,0.); +#ifdef ANISOTROPIC_TEXTURE +anisotropy*=anisotropyMapData.b; +anisotropyDirection.rg*=anisotropyMapData.rg*2.0-1.0; +#if DEBUGMODE>0 +outParams.anisotropyMapData=anisotropyMapData; +#endif +#endif +mat3 anisoTBN=mat3(normalize(TBN[0]),normalize(TBN[1]),normalize(TBN[2])); +vec3 anisotropicTangent=normalize(anisoTBN*anisotropyDirection); +vec3 anisotropicBitangent=normalize(cross(anisoTBN[2],anisotropicTangent)); +outParams.anisotropy=anisotropy; +outParams.anisotropicTangent=anisotropicTangent; +outParams.anisotropicBitangent=anisotropicBitangent; +outParams.anisotropicNormal=getAnisotropicBentNormals(anisotropicTangent,anisotropicBitangent,normalW,viewDirectionW,anisotropy); +} +#endif +`;ze.a.IncludesShadersStore.pbrBlockAnisotropic=Wp;var Xp=`#ifdef REFLECTION +struct reflectionOutParams +{ +vec4 environmentRadiance; +vec3 environmentIrradiance; +#ifdef REFLECTIONMAP_3D +vec3 reflectionCoords; +#else +vec2 reflectionCoords; +#endif +#ifdef SS_TRANSLUCENCY +#ifdef USESPHERICALFROMREFLECTIONMAP +#if !defined(NORMAL) || !defined(USESPHERICALINVERTEX) +vec3 irradianceVector; +#endif +#endif +#endif +}; +#define pbr_inline +void createReflectionCoords( +const in vec3 vPositionW, +const in vec3 normalW, +#ifdef ANISOTROPIC +const in anisotropicOutParams anisotropicOut, +#endif +#ifdef REFLECTIONMAP_3D +out vec3 reflectionCoords +#else +out vec2 reflectionCoords +#endif +) +{ +#ifdef ANISOTROPIC +vec3 reflectionVector=computeReflectionCoords(vec4(vPositionW,1.0),anisotropicOut.anisotropicNormal); +#else +vec3 reflectionVector=computeReflectionCoords(vec4(vPositionW,1.0),normalW); +#endif +#ifdef REFLECTIONMAP_OPPOSITEZ +reflectionVector.z*=-1.0; +#endif + +#ifdef REFLECTIONMAP_3D +reflectionCoords=reflectionVector; +#else +reflectionCoords=reflectionVector.xy; +#ifdef REFLECTIONMAP_PROJECTION +reflectionCoords/=reflectionVector.z; +#endif +reflectionCoords.y=1.0-reflectionCoords.y; +#endif +} +#define pbr_inline +#define inline +void sampleReflectionTexture( +const in float alphaG, +const in vec3 vReflectionMicrosurfaceInfos, +const in vec2 vReflectionInfos, +const in vec3 vReflectionColor, +#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX) +const in float NdotVUnclamped, +#endif +#ifdef LINEARSPECULARREFLECTION +const in float roughness, +#endif +#ifdef REFLECTIONMAP_3D +const in samplerCube reflectionSampler, +const vec3 reflectionCoords, +#else +const in sampler2D reflectionSampler, +const vec2 reflectionCoords, +#endif +#ifndef LODBASEDMICROSFURACE +#ifdef REFLECTIONMAP_3D +const in samplerCube reflectionSamplerLow, +const in samplerCube reflectionSamplerHigh, +#else +const in sampler2D reflectionSamplerLow, +const in sampler2D reflectionSamplerHigh, +#endif +#endif +#ifdef REALTIME_FILTERING +const in vec2 vReflectionFilteringInfo, +#endif +out vec4 environmentRadiance +) +{ + +#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX) +float reflectionLOD=getLodFromAlphaG(vReflectionMicrosurfaceInfos.x,alphaG,NdotVUnclamped); +#elif defined(LINEARSPECULARREFLECTION) +float reflectionLOD=getLinearLodFromRoughness(vReflectionMicrosurfaceInfos.x,roughness); +#else +float reflectionLOD=getLodFromAlphaG(vReflectionMicrosurfaceInfos.x,alphaG); +#endif +#ifdef LODBASEDMICROSFURACE + +reflectionLOD=reflectionLOD*vReflectionMicrosurfaceInfos.y+vReflectionMicrosurfaceInfos.z; +#ifdef LODINREFLECTIONALPHA + + + + + + + + + +float automaticReflectionLOD=UNPACK_LOD(sampleReflection(reflectionSampler,reflectionCoords).a); +float requestedReflectionLOD=max(automaticReflectionLOD,reflectionLOD); +#else +float requestedReflectionLOD=reflectionLOD; +#endif +#ifdef REALTIME_FILTERING +environmentRadiance=vec4(radiance(alphaG,reflectionSampler,reflectionCoords,vReflectionFilteringInfo),1.0); +#else +environmentRadiance=sampleReflectionLod(reflectionSampler,reflectionCoords,reflectionLOD); +#endif +#else +float lodReflectionNormalized=saturate(reflectionLOD/log2(vReflectionMicrosurfaceInfos.x)); +float lodReflectionNormalizedDoubled=lodReflectionNormalized*2.0; +vec4 environmentMid=sampleReflection(reflectionSampler,reflectionCoords); +if (lodReflectionNormalizedDoubled<1.0){ +environmentRadiance=mix( +sampleReflection(reflectionSamplerHigh,reflectionCoords), +environmentMid, +lodReflectionNormalizedDoubled +); +} else { +environmentRadiance=mix( +environmentMid, +sampleReflection(reflectionSamplerLow,reflectionCoords), +lodReflectionNormalizedDoubled-1.0 +); +} +#endif +#ifdef RGBDREFLECTION +environmentRadiance.rgb=fromRGBD(environmentRadiance); +#endif +#ifdef GAMMAREFLECTION +environmentRadiance.rgb=toLinearSpace(environmentRadiance.rgb); +#endif + +environmentRadiance.rgb*=vReflectionInfos.x; +environmentRadiance.rgb*=vReflectionColor.rgb; +} +#define pbr_inline +#define inline +void reflectionBlock( +const in vec3 vPositionW, +const in vec3 normalW, +const in float alphaG, +const in vec3 vReflectionMicrosurfaceInfos, +const in vec2 vReflectionInfos, +const in vec3 vReflectionColor, +#ifdef ANISOTROPIC +const in anisotropicOutParams anisotropicOut, +#endif +#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX) +const in float NdotVUnclamped, +#endif +#ifdef LINEARSPECULARREFLECTION +const in float roughness, +#endif +#ifdef REFLECTIONMAP_3D +const in samplerCube reflectionSampler, +#else +const in sampler2D reflectionSampler, +#endif +#if defined(NORMAL) && defined(USESPHERICALINVERTEX) +const in vec3 vEnvironmentIrradiance, +#endif +#ifdef USESPHERICALFROMREFLECTIONMAP +#if !defined(NORMAL) || !defined(USESPHERICALINVERTEX) +const in mat4 reflectionMatrix, +#endif +#endif +#ifdef USEIRRADIANCEMAP +#ifdef REFLECTIONMAP_3D +const in samplerCube irradianceSampler, +#else +const in sampler2D irradianceSampler, +#endif +#endif +#ifndef LODBASEDMICROSFURACE +#ifdef REFLECTIONMAP_3D +const in samplerCube reflectionSamplerLow, +const in samplerCube reflectionSamplerHigh, +#else +const in sampler2D reflectionSamplerLow, +const in sampler2D reflectionSamplerHigh, +#endif +#endif +#ifdef REALTIME_FILTERING +const in vec2 vReflectionFilteringInfo, +#endif +out reflectionOutParams outParams +) +{ + +vec4 environmentRadiance=vec4(0.,0.,0.,0.); +#ifdef REFLECTIONMAP_3D +vec3 reflectionCoords=vec3(0.); +#else +vec2 reflectionCoords=vec2(0.); +#endif +createReflectionCoords( +vPositionW, +normalW, +#ifdef ANISOTROPIC +anisotropicOut, +#endif +reflectionCoords +); +sampleReflectionTexture( +alphaG, +vReflectionMicrosurfaceInfos, +vReflectionInfos, +vReflectionColor, +#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX) +NdotVUnclamped, +#endif +#ifdef LINEARSPECULARREFLECTION +roughness, +#endif +#ifdef REFLECTIONMAP_3D +reflectionSampler, +reflectionCoords, +#else +reflectionSampler, +reflectionCoords, +#endif +#ifndef LODBASEDMICROSFURACE +reflectionSamplerLow, +reflectionSamplerHigh, +#endif +#ifdef REALTIME_FILTERING +vReflectionFilteringInfo, +#endif +environmentRadiance +); + +vec3 environmentIrradiance=vec3(0.,0.,0.); +#ifdef USESPHERICALFROMREFLECTIONMAP +#if defined(NORMAL) && defined(USESPHERICALINVERTEX) +environmentIrradiance=vEnvironmentIrradiance; +#else +#ifdef ANISOTROPIC +vec3 irradianceVector=vec3(reflectionMatrix*vec4(anisotropicOut.anisotropicNormal,0)).xyz; +#else +vec3 irradianceVector=vec3(reflectionMatrix*vec4(normalW,0)).xyz; +#endif +#ifdef REFLECTIONMAP_OPPOSITEZ +irradianceVector.z*=-1.0; +#endif +#ifdef INVERTCUBICMAP +irradianceVector.y*=-1.0; +#endif +#if defined(REALTIME_FILTERING) +environmentIrradiance=irradiance(reflectionSampler,irradianceVector,vReflectionFilteringInfo); +#else +environmentIrradiance=computeEnvironmentIrradiance(irradianceVector); +#endif +#ifdef SS_TRANSLUCENCY +outParams.irradianceVector=irradianceVector; +#endif +#endif +#elif defined(USEIRRADIANCEMAP) +vec4 environmentIrradiance4=sampleReflection(irradianceSampler,reflectionCoords); +environmentIrradiance=environmentIrradiance4.rgb; +#ifdef RGBDREFLECTION +environmentIrradiance.rgb=fromRGBD(environmentIrradiance4); +#endif +#ifdef GAMMAREFLECTION +environmentIrradiance.rgb=toLinearSpace(environmentIrradiance.rgb); +#endif +#endif +environmentIrradiance*=vReflectionColor.rgb; +outParams.environmentRadiance=environmentRadiance; +outParams.environmentIrradiance=environmentIrradiance; +outParams.reflectionCoords=reflectionCoords; +} +#endif +`;ze.a.IncludesShadersStore.pbrBlockReflection=Xp;var Yp=`#ifdef SHEEN +struct sheenOutParams +{ +float sheenIntensity; +vec3 sheenColor; +float sheenRoughness; +#ifdef SHEEN_LINKWITHALBEDO +vec3 surfaceAlbedo; +#endif +#if defined(ENVIRONMENTBRDF) && defined(SHEEN_ALBEDOSCALING) +float sheenAlbedoScaling; +#endif +#if defined(REFLECTION) && defined(ENVIRONMENTBRDF) +vec3 finalSheenRadianceScaled; +#endif +#if DEBUGMODE>0 +vec4 sheenMapData; +vec3 sheenEnvironmentReflectance; +#endif +}; +#define pbr_inline +#define inline +void sheenBlock( +const in vec4 vSheenColor, +#ifdef SHEEN_ROUGHNESS +const in float vSheenRoughness, +#if defined(SHEEN_TEXTURE_ROUGHNESS) && !defined(SHEEN_TEXTURE_ROUGHNESS_IDENTICAL) && !defined(SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE) +const in vec4 sheenMapRoughnessData, +#endif +#endif +const in float roughness, +#ifdef SHEEN_TEXTURE +const in vec4 sheenMapData, +#endif +const in float reflectance, +#ifdef SHEEN_LINKWITHALBEDO +const in vec3 baseColor, +const in vec3 surfaceAlbedo, +#endif +#ifdef ENVIRONMENTBRDF +const in float NdotV, +const in vec3 environmentBrdf, +#endif +#if defined(REFLECTION) && defined(ENVIRONMENTBRDF) +const in vec2 AARoughnessFactors, +const in vec3 vReflectionMicrosurfaceInfos, +const in vec2 vReflectionInfos, +const in vec3 vReflectionColor, +const in vec4 vLightingIntensity, +#ifdef REFLECTIONMAP_3D +const in samplerCube reflectionSampler, +const in vec3 reflectionCoords, +#else +const in sampler2D reflectionSampler, +const in vec2 reflectionCoords, +#endif +const in float NdotVUnclamped, +#ifndef LODBASEDMICROSFURACE +#ifdef REFLECTIONMAP_3D +const in samplerCube reflectionSamplerLow, +const in samplerCube reflectionSamplerHigh, +#else +const in sampler2D reflectionSamplerLow, +const in sampler2D reflectionSamplerHigh, +#endif +#endif +#ifdef REALTIME_FILTERING +const in vec2 vReflectionFilteringInfo, +#endif +#if !defined(REFLECTIONMAP_SKYBOX) && defined(RADIANCEOCCLUSION) +const in float seo, +#endif +#if !defined(REFLECTIONMAP_SKYBOX) && defined(HORIZONOCCLUSION) && defined(BUMP) && defined(REFLECTIONMAP_3D) +const in float eho, +#endif +#endif +out sheenOutParams outParams +) +{ +float sheenIntensity=vSheenColor.a; +#ifdef SHEEN_TEXTURE +#if DEBUGMODE>0 +outParams.sheenMapData=sheenMapData; +#endif +#endif +#ifdef SHEEN_LINKWITHALBEDO +float sheenFactor=pow5(1.0-sheenIntensity); +vec3 sheenColor=baseColor.rgb*(1.0-sheenFactor); +float sheenRoughness=sheenIntensity; +outParams.surfaceAlbedo=surfaceAlbedo*sheenFactor; +#ifdef SHEEN_TEXTURE +sheenIntensity*=sheenMapData.a; +#endif +#else +vec3 sheenColor=vSheenColor.rgb; +#ifdef SHEEN_TEXTURE +sheenColor.rgb*=sheenMapData.rgb; +#endif +#ifdef SHEEN_ROUGHNESS +float sheenRoughness=vSheenRoughness; +#ifdef SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE +#if defined(SHEEN_TEXTURE) +sheenRoughness*=sheenMapData.a; +#endif +#elif defined(SHEEN_TEXTURE_ROUGHNESS) +#ifdef SHEEN_TEXTURE_ROUGHNESS_IDENTICAL +sheenRoughness*=sheenMapData.a; +#else +sheenRoughness*=sheenMapRoughnessData.a; +#endif +#endif +#else +float sheenRoughness=roughness; +#ifdef SHEEN_TEXTURE +sheenIntensity*=sheenMapData.a; +#endif +#endif + +#if !defined(SHEEN_ALBEDOSCALING) +sheenIntensity*=(1.-reflectance); +#endif + +sheenColor*=sheenIntensity; +#endif + +#ifdef ENVIRONMENTBRDF + +#ifdef SHEEN_ROUGHNESS +vec3 environmentSheenBrdf=getBRDFLookup(NdotV,sheenRoughness); +#else +vec3 environmentSheenBrdf=environmentBrdf; +#endif + +#endif +#if defined(REFLECTION) && defined(ENVIRONMENTBRDF) +float sheenAlphaG=convertRoughnessToAverageSlope(sheenRoughness); +#ifdef SPECULARAA + +sheenAlphaG+=AARoughnessFactors.y; +#endif +vec4 environmentSheenRadiance=vec4(0.,0.,0.,0.); +sampleReflectionTexture( +sheenAlphaG, +vReflectionMicrosurfaceInfos, +vReflectionInfos, +vReflectionColor, +#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX) +NdotVUnclamped, +#endif +#ifdef LINEARSPECULARREFLECTION +sheenRoughness, +#endif +reflectionSampler, +reflectionCoords, +#ifndef LODBASEDMICROSFURACE +reflectionSamplerLow, +reflectionSamplerHigh, +#endif +#ifdef REALTIME_FILTERING +vReflectionFilteringInfo, +#endif +environmentSheenRadiance +); +vec3 sheenEnvironmentReflectance=getSheenReflectanceFromBRDFLookup(sheenColor,environmentSheenBrdf); +#if !defined(REFLECTIONMAP_SKYBOX) && defined(RADIANCEOCCLUSION) +sheenEnvironmentReflectance*=seo; +#endif +#if !defined(REFLECTIONMAP_SKYBOX) && defined(HORIZONOCCLUSION) && defined(BUMP) && defined(REFLECTIONMAP_3D) +sheenEnvironmentReflectance*=eho; +#endif +#if DEBUGMODE>0 +outParams.sheenEnvironmentReflectance=sheenEnvironmentReflectance; +#endif +outParams.finalSheenRadianceScaled= +environmentSheenRadiance.rgb * +sheenEnvironmentReflectance * +vLightingIntensity.z; + + + + + +#endif +#if defined(ENVIRONMENTBRDF) && defined(SHEEN_ALBEDOSCALING) + + + +outParams.sheenAlbedoScaling=1.0-sheenIntensity*max(max(sheenColor.r,sheenColor.g),sheenColor.b)*environmentSheenBrdf.b; +#endif + +outParams.sheenIntensity=sheenIntensity; +outParams.sheenColor=sheenColor; +outParams.sheenRoughness=sheenRoughness; +} +#endif +`;ze.a.IncludesShadersStore.pbrBlockSheen=Yp;var Kp=`struct clearcoatOutParams +{ +vec3 specularEnvironmentR0; +float conservationFactor; +vec3 clearCoatNormalW; +vec2 clearCoatAARoughnessFactors; +float clearCoatIntensity; +float clearCoatRoughness; +#ifdef REFLECTION +vec3 finalClearCoatRadianceScaled; +#endif +#ifdef CLEARCOAT_TINT +vec3 absorption; +float clearCoatNdotVRefract; +vec3 clearCoatColor; +float clearCoatThickness; +#endif +#if defined(ENVIRONMENTBRDF) && defined(MS_BRDF_ENERGY_CONSERVATION) +vec3 energyConservationFactorClearCoat; +#endif +#if DEBUGMODE>0 +mat3 TBNClearCoat; +vec2 clearCoatMapData; +vec4 clearCoatTintMapData; +vec4 environmentClearCoatRadiance; +float clearCoatNdotV; +vec3 clearCoatEnvironmentReflectance; +#endif +}; +#ifdef CLEARCOAT +#define pbr_inline +#define inline +void clearcoatBlock( +const in vec3 vPositionW, +const in vec3 geometricNormalW, +const in vec3 viewDirectionW, +const in vec2 vClearCoatParams, +#if defined(CLEARCOAT_TEXTURE_ROUGHNESS) && !defined(CLEARCOAT_TEXTURE_ROUGHNESS_IDENTICAL) && !defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE) +const in vec4 clearCoatMapRoughnessData, +#endif +const in vec3 specularEnvironmentR0, +#ifdef CLEARCOAT_TEXTURE +const in vec2 clearCoatMapData, +#endif +#ifdef CLEARCOAT_TINT +const in vec4 vClearCoatTintParams, +const in float clearCoatColorAtDistance, +const in vec4 vClearCoatRefractionParams, +#ifdef CLEARCOAT_TINT_TEXTURE +const in vec4 clearCoatTintMapData, +#endif +#endif +#ifdef CLEARCOAT_BUMP +const in vec2 vClearCoatBumpInfos, +const in vec4 clearCoatBumpMapData, +const in vec2 vClearCoatBumpUV, +#if defined(TANGENT) && defined(NORMAL) +const in mat3 vTBN, +#else +const in vec2 vClearCoatTangentSpaceParams, +#endif +#ifdef OBJECTSPACE_NORMALMAP +const in mat4 normalMatrix, +#endif +#endif +#if defined(FORCENORMALFORWARD) && defined(NORMAL) +const in vec3 faceNormal, +#endif +#ifdef REFLECTION +const in vec3 vReflectionMicrosurfaceInfos, +const in vec2 vReflectionInfos, +const in vec3 vReflectionColor, +const in vec4 vLightingIntensity, +#ifdef REFLECTIONMAP_3D +const in samplerCube reflectionSampler, +#else +const in sampler2D reflectionSampler, +#endif +#ifndef LODBASEDMICROSFURACE +#ifdef REFLECTIONMAP_3D +const in samplerCube reflectionSamplerLow, +const in samplerCube reflectionSamplerHigh, +#else +const in sampler2D reflectionSamplerLow, +const in sampler2D reflectionSamplerHigh, +#endif +#endif +#ifdef REALTIME_FILTERING +const in vec2 vReflectionFilteringInfo, +#endif +#endif +#if defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX) +#ifdef RADIANCEOCCLUSION +const in float ambientMonochrome, +#endif +#endif +out clearcoatOutParams outParams +) +{ + +float clearCoatIntensity=vClearCoatParams.x; +float clearCoatRoughness=vClearCoatParams.y; +#ifdef CLEARCOAT_TEXTURE +clearCoatIntensity*=clearCoatMapData.x; +#ifdef CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE +clearCoatRoughness*=clearCoatMapData.y; +#endif +#if DEBUGMODE>0 +outParams.clearCoatMapData=clearCoatMapData; +#endif +#endif +#if defined(CLEARCOAT_TEXTURE_ROUGHNESS) && !defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE) +#ifdef CLEARCOAT_TEXTURE_ROUGHNESS_IDENTICAL +clearCoatRoughness*=clearCoatMapData.y; +#else +clearCoatRoughness*=clearCoatMapRoughnessData.y; +#endif +#endif +outParams.clearCoatIntensity=clearCoatIntensity; +outParams.clearCoatRoughness=clearCoatRoughness; +#ifdef CLEARCOAT_TINT +vec3 clearCoatColor=vClearCoatTintParams.rgb; +float clearCoatThickness=vClearCoatTintParams.a; +#ifdef CLEARCOAT_TINT_TEXTURE +clearCoatColor*=clearCoatTintMapData.rgb; +clearCoatThickness*=clearCoatTintMapData.a; +#if DEBUGMODE>0 +outParams.clearCoatTintMapData=clearCoatTintMapData; +#endif +#endif +outParams.clearCoatColor=computeColorAtDistanceInMedia(clearCoatColor,clearCoatColorAtDistance); +outParams.clearCoatThickness=clearCoatThickness; +#endif + + + + +#ifdef CLEARCOAT_REMAP_F0 +vec3 specularEnvironmentR0Updated=getR0RemappedForClearCoat(specularEnvironmentR0); +#else +vec3 specularEnvironmentR0Updated=specularEnvironmentR0; +#endif +outParams.specularEnvironmentR0=mix(specularEnvironmentR0,specularEnvironmentR0Updated,clearCoatIntensity); + +vec3 clearCoatNormalW=geometricNormalW; +#ifdef CLEARCOAT_BUMP +#ifdef NORMALXYSCALE +float clearCoatNormalScale=1.0; +#else +float clearCoatNormalScale=vClearCoatBumpInfos.y; +#endif +#if defined(TANGENT) && defined(NORMAL) +mat3 TBNClearCoat=vTBN; +#else +mat3 TBNClearCoat=cotangent_frame(clearCoatNormalW*clearCoatNormalScale,vPositionW,vClearCoatBumpUV,vClearCoatTangentSpaceParams); +#endif +#if DEBUGMODE>0 +outParams.TBNClearCoat=TBNClearCoat; +#endif +#ifdef OBJECTSPACE_NORMALMAP +clearCoatNormalW=normalize(clearCoatBumpMapData.xyz*2.0-1.0); +clearCoatNormalW=normalize(mat3(normalMatrix)*clearCoatNormalW); +#else +clearCoatNormalW=perturbNormal(TBNClearCoat,clearCoatBumpMapData.xyz,vClearCoatBumpInfos.y); +#endif +#endif +#if defined(FORCENORMALFORWARD) && defined(NORMAL) +clearCoatNormalW*=sign(dot(clearCoatNormalW,faceNormal)); +#endif +#if defined(TWOSIDEDLIGHTING) && defined(NORMAL) +clearCoatNormalW=gl_FrontFacing ? clearCoatNormalW : -clearCoatNormalW; +#endif +outParams.clearCoatNormalW=clearCoatNormalW; + +outParams.clearCoatAARoughnessFactors=getAARoughnessFactors(clearCoatNormalW.xyz); + +float clearCoatNdotVUnclamped=dot(clearCoatNormalW,viewDirectionW); + +float clearCoatNdotV=absEps(clearCoatNdotVUnclamped); +#if DEBUGMODE>0 +outParams.clearCoatNdotV=clearCoatNdotV; +#endif +#ifdef CLEARCOAT_TINT + +vec3 clearCoatVRefract=-refract(vPositionW,clearCoatNormalW,vClearCoatRefractionParams.y); + +outParams.clearCoatNdotVRefract=absEps(dot(clearCoatNormalW,clearCoatVRefract)); +#endif +#if defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX) + +vec3 environmentClearCoatBrdf=getBRDFLookup(clearCoatNdotV,clearCoatRoughness); +#endif + +#if defined(REFLECTION) +float clearCoatAlphaG=convertRoughnessToAverageSlope(clearCoatRoughness); +#ifdef SPECULARAA + +clearCoatAlphaG+=outParams.clearCoatAARoughnessFactors.y; +#endif +vec4 environmentClearCoatRadiance=vec4(0.,0.,0.,0.); +vec3 clearCoatReflectionVector=computeReflectionCoords(vec4(vPositionW,1.0),clearCoatNormalW); +#ifdef REFLECTIONMAP_OPPOSITEZ +clearCoatReflectionVector.z*=-1.0; +#endif + +#ifdef REFLECTIONMAP_3D +vec3 clearCoatReflectionCoords=clearCoatReflectionVector; +#else +vec2 clearCoatReflectionCoords=clearCoatReflectionVector.xy; +#ifdef REFLECTIONMAP_PROJECTION +clearCoatReflectionCoords/=clearCoatReflectionVector.z; +#endif +clearCoatReflectionCoords.y=1.0-clearCoatReflectionCoords.y; +#endif +sampleReflectionTexture( +clearCoatAlphaG, +vReflectionMicrosurfaceInfos, +vReflectionInfos, +vReflectionColor, +#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX) +clearCoatNdotVUnclamped, +#endif +#ifdef LINEARSPECULARREFLECTION +clearCoatRoughness, +#endif +reflectionSampler, +clearCoatReflectionCoords, +#ifndef LODBASEDMICROSFURACE +reflectionSamplerLow, +reflectionSamplerHigh, +#endif +#ifdef REALTIME_FILTERING +vReflectionFilteringInfo, +#endif +environmentClearCoatRadiance +); +#if DEBUGMODE>0 +outParams.environmentClearCoatRadiance=environmentClearCoatRadiance; +#endif + +#if defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX) +vec3 clearCoatEnvironmentReflectance=getReflectanceFromBRDFLookup(vec3(vClearCoatRefractionParams.x),environmentClearCoatBrdf); +#ifdef RADIANCEOCCLUSION +float clearCoatSeo=environmentRadianceOcclusion(ambientMonochrome,clearCoatNdotVUnclamped); +clearCoatEnvironmentReflectance*=clearCoatSeo; +#endif +#ifdef HORIZONOCCLUSION +#ifdef BUMP +#ifdef REFLECTIONMAP_3D +float clearCoatEho=environmentHorizonOcclusion(-viewDirectionW,clearCoatNormalW,geometricNormalW); +clearCoatEnvironmentReflectance*=clearCoatEho; +#endif +#endif +#endif +#else + +vec3 clearCoatEnvironmentReflectance=getReflectanceFromAnalyticalBRDFLookup_Jones(clearCoatNdotV,vec3(1.),vec3(1.),sqrt(1.-clearCoatRoughness)); +#endif +clearCoatEnvironmentReflectance*=clearCoatIntensity; +#if DEBUGMODE>0 +outParams.clearCoatEnvironmentReflectance=clearCoatEnvironmentReflectance; +#endif +outParams.finalClearCoatRadianceScaled= +environmentClearCoatRadiance.rgb * +clearCoatEnvironmentReflectance * +vLightingIntensity.z; +#endif +#if defined(CLEARCOAT_TINT) + +outParams.absorption=computeClearCoatAbsorption(outParams.clearCoatNdotVRefract,outParams.clearCoatNdotVRefract,outParams.clearCoatColor,clearCoatThickness,clearCoatIntensity); +#endif + +float fresnelIBLClearCoat=fresnelSchlickGGX(clearCoatNdotV,vClearCoatRefractionParams.x,CLEARCOATREFLECTANCE90); +fresnelIBLClearCoat*=clearCoatIntensity; +outParams.conservationFactor=(1.-fresnelIBLClearCoat); +#if defined(ENVIRONMENTBRDF) && defined(MS_BRDF_ENERGY_CONSERVATION) +outParams.energyConservationFactorClearCoat=getEnergyConservationFactor(outParams.specularEnvironmentR0,environmentClearCoatBrdf); +#endif +} +#endif +`;ze.a.IncludesShadersStore.pbrBlockClearcoat=Kp;var Qp=`struct subSurfaceOutParams +{ +vec3 specularEnvironmentReflectance; +#ifdef SS_REFRACTION +vec3 finalRefraction; +vec3 surfaceAlbedo; +#ifdef SS_LINKREFRACTIONTOTRANSPARENCY +float alpha; +#endif +#ifdef REFLECTION +float refractionFactorForIrradiance; +#endif +#endif +#ifdef SS_TRANSLUCENCY +vec3 transmittance; +float translucencyIntensity; +#ifdef REFLECTION +vec3 refractionIrradiance; +#endif +#endif +#if DEBUGMODE>0 +vec4 thicknessMap; +vec4 environmentRefraction; +vec3 refractionTransmittance; +#endif +}; +#ifdef SUBSURFACE +#define pbr_inline +#define inline +void subSurfaceBlock( +const in vec3 vSubSurfaceIntensity, +const in vec2 vThicknessParam, +const in vec4 vTintColor, +const in vec3 normalW, +const in vec3 specularEnvironmentReflectance, +#ifdef SS_THICKNESSANDMASK_TEXTURE +const in vec4 thicknessMap, +#endif +#ifdef REFLECTION +#ifdef SS_TRANSLUCENCY +const in mat4 reflectionMatrix, +#ifdef USESPHERICALFROMREFLECTIONMAP +#if !defined(NORMAL) || !defined(USESPHERICALINVERTEX) +const in vec3 irradianceVector_, +#endif +#if defined(REALTIME_FILTERING) +const in samplerCube reflectionSampler, +const in vec2 vReflectionFilteringInfo, +#endif +#endif +#ifdef USEIRRADIANCEMAP +#ifdef REFLECTIONMAP_3D +const in samplerCube irradianceSampler, +#else +const in sampler2D irradianceSampler, +#endif +#endif +#endif +#endif +#ifdef SS_REFRACTION +const in vec3 vPositionW, +const in vec3 viewDirectionW, +const in mat4 view, +const in vec3 surfaceAlbedo, +const in vec4 vRefractionInfos, +const in mat4 refractionMatrix, +const in vec3 vRefractionMicrosurfaceInfos, +const in vec4 vLightingIntensity, +#ifdef SS_LINKREFRACTIONTOTRANSPARENCY +const in float alpha, +#endif +#ifdef SS_LODINREFRACTIONALPHA +const in float NdotVUnclamped, +#endif +#ifdef SS_LINEARSPECULARREFRACTION +const in float roughness, +#else +const in float alphaG, +#endif +#ifdef SS_REFRACTIONMAP_3D +const in samplerCube refractionSampler, +#ifndef LODBASEDMICROSFURACE +const in samplerCube refractionSamplerLow, +const in samplerCube refractionSamplerHigh, +#endif +#else +const in sampler2D refractionSampler, +#ifndef LODBASEDMICROSFURACE +const in sampler2D refractionSamplerLow, +const in sampler2D refractionSamplerHigh, +#endif +#endif +#ifdef ANISOTROPIC +const in anisotropicOutParams anisotropicOut, +#endif +#ifdef REALTIME_FILTERING +const in vec2 vRefractionFilteringInfo, +#endif +#endif +#ifdef SS_TRANSLUCENCY +const in vec3 vDiffusionDistance, +#endif +out subSurfaceOutParams outParams +) +{ +outParams.specularEnvironmentReflectance=specularEnvironmentReflectance; + + + +#ifdef SS_REFRACTION +float refractionIntensity=vSubSurfaceIntensity.x; +#ifdef SS_LINKREFRACTIONTOTRANSPARENCY +refractionIntensity*=(1.0-alpha); + +outParams.alpha=1.0; +#endif +#endif +#ifdef SS_TRANSLUCENCY +float translucencyIntensity=vSubSurfaceIntensity.y; +#endif +#ifdef SS_THICKNESSANDMASK_TEXTURE +float thickness=thicknessMap.r*vThicknessParam.y+vThicknessParam.x; +#if DEBUGMODE>0 +outParams.thicknessMap=thicknessMap; +#endif +#ifdef SS_MASK_FROM_THICKNESS_TEXTURE +#ifdef SS_REFRACTION +refractionIntensity*=thicknessMap.g; +#endif +#ifdef SS_TRANSLUCENCY +translucencyIntensity*=thicknessMap.b; +#endif +#elif defined(SS_MASK_FROM_THICKNESS_TEXTURE_GLTF) +#ifdef SS_REFRACTION +refractionIntensity*=thicknessMap.r; +#elif defined(SS_TRANSLUCENCY) +translucencyIntensity*=thicknessMap.r; +#endif +thickness=thicknessMap.g*vThicknessParam.y+vThicknessParam.x; +#endif +#else +float thickness=vThicknessParam.y; +#endif + + + +#ifdef SS_TRANSLUCENCY +thickness=maxEps(thickness); +vec3 transmittance=transmittanceBRDF_Burley(vTintColor.rgb,vDiffusionDistance,thickness); +transmittance*=translucencyIntensity; +outParams.transmittance=transmittance; +outParams.translucencyIntensity=translucencyIntensity; +#endif + + + +#ifdef SS_REFRACTION +vec4 environmentRefraction=vec4(0.,0.,0.,0.); +#ifdef ANISOTROPIC +vec3 refractionVector=refract(-viewDirectionW,anisotropicOut.anisotropicNormal,vRefractionInfos.y); +#else +vec3 refractionVector=refract(-viewDirectionW,normalW,vRefractionInfos.y); +#endif +#ifdef SS_REFRACTIONMAP_OPPOSITEZ +refractionVector.z*=-1.0; +#endif + +#ifdef SS_REFRACTIONMAP_3D +refractionVector.y=refractionVector.y*vRefractionInfos.w; +vec3 refractionCoords=refractionVector; +refractionCoords=vec3(refractionMatrix*vec4(refractionCoords,0)); +#else +vec3 vRefractionUVW=vec3(refractionMatrix*(view*vec4(vPositionW+refractionVector*vRefractionInfos.z,1.0))); +vec2 refractionCoords=vRefractionUVW.xy/vRefractionUVW.z; +refractionCoords.y=1.0-refractionCoords.y; +#endif +#ifdef SS_LODINREFRACTIONALPHA +float refractionLOD=getLodFromAlphaG(vRefractionMicrosurfaceInfos.x,alphaG,NdotVUnclamped); +#elif defined(SS_LINEARSPECULARREFRACTION) +float refractionLOD=getLinearLodFromRoughness(vRefractionMicrosurfaceInfos.x,roughness); +#else +float refractionLOD=getLodFromAlphaG(vRefractionMicrosurfaceInfos.x,alphaG); +#endif +#ifdef LODBASEDMICROSFURACE + +refractionLOD=refractionLOD*vRefractionMicrosurfaceInfos.y+vRefractionMicrosurfaceInfos.z; +#ifdef SS_LODINREFRACTIONALPHA + + + + + + + + + +float automaticRefractionLOD=UNPACK_LOD(sampleRefraction(refractionSampler,refractionCoords).a); +float requestedRefractionLOD=max(automaticRefractionLOD,refractionLOD); +#else +float requestedRefractionLOD=refractionLOD; +#endif +#ifdef REALTIME_FILTERING +environmentRefraction=vec4(radiance(alphaG,refractionSampler,refractionCoords,vRefractionFilteringInfo),1.0); +#else +environmentRefraction=sampleRefractionLod(refractionSampler,refractionCoords,requestedRefractionLOD); +#endif +#else +float lodRefractionNormalized=saturate(refractionLOD/log2(vRefractionMicrosurfaceInfos.x)); +float lodRefractionNormalizedDoubled=lodRefractionNormalized*2.0; +vec4 environmentRefractionMid=sampleRefraction(refractionSampler,refractionCoords); +if (lodRefractionNormalizedDoubled<1.0){ +environmentRefraction=mix( +sampleRefraction(refractionSamplerHigh,refractionCoords), +environmentRefractionMid, +lodRefractionNormalizedDoubled +); +} else { +environmentRefraction=mix( +environmentRefractionMid, +sampleRefraction(refractionSamplerLow,refractionCoords), +lodRefractionNormalizedDoubled-1.0 +); +} +#endif +#ifdef SS_RGBDREFRACTION +environmentRefraction.rgb=fromRGBD(environmentRefraction); +#endif +#ifdef SS_GAMMAREFRACTION +environmentRefraction.rgb=toLinearSpace(environmentRefraction.rgb); +#endif + +environmentRefraction.rgb*=vRefractionInfos.x; +#endif + + + +#ifdef SS_REFRACTION +vec3 refractionTransmittance=vec3(refractionIntensity); +#ifdef SS_THICKNESSANDMASK_TEXTURE +vec3 volumeAlbedo=computeColorAtDistanceInMedia(vTintColor.rgb,vTintColor.w); + + + + + +refractionTransmittance*=cocaLambert(volumeAlbedo,thickness); +#elif defined(SS_LINKREFRACTIONTOTRANSPARENCY) + +float maxChannel=max(max(surfaceAlbedo.r,surfaceAlbedo.g),surfaceAlbedo.b); +vec3 volumeAlbedo=saturate(maxChannel*surfaceAlbedo); + +environmentRefraction.rgb*=volumeAlbedo; +#else + +vec3 volumeAlbedo=computeColorAtDistanceInMedia(vTintColor.rgb,vTintColor.w); +refractionTransmittance*=cocaLambert(volumeAlbedo,vThicknessParam.y); +#endif +#ifdef SS_ALBEDOFORREFRACTIONTINT + +environmentRefraction.rgb*=surfaceAlbedo.rgb; +#endif + +outParams.surfaceAlbedo=surfaceAlbedo*(1.-refractionIntensity); +#ifdef REFLECTION + +outParams.refractionFactorForIrradiance=(1.-refractionIntensity); + +#endif + +vec3 bounceSpecularEnvironmentReflectance=(2.0*specularEnvironmentReflectance)/(1.0+specularEnvironmentReflectance); +outParams.specularEnvironmentReflectance=mix(bounceSpecularEnvironmentReflectance,specularEnvironmentReflectance,refractionIntensity); + +refractionTransmittance*=1.0-outParams.specularEnvironmentReflectance; +#if DEBUGMODE>0 +outParams.refractionTransmittance=refractionTransmittance; +#endif +outParams.finalRefraction=environmentRefraction.rgb*refractionTransmittance*vLightingIntensity.z; +#if DEBUGMODE>0 +outParams.environmentRefraction=environmentRefraction; +#endif +#endif + + + +#if defined(REFLECTION) && defined(SS_TRANSLUCENCY) +#if defined(NORMAL) && defined(USESPHERICALINVERTEX) || !defined(USESPHERICALFROMREFLECTIONMAP) +vec3 irradianceVector=vec3(reflectionMatrix*vec4(normalW,0)).xyz; +#ifdef REFLECTIONMAP_OPPOSITEZ +irradianceVector.z*=-1.0; +#endif +#ifdef INVERTCUBICMAP +irradianceVector.y*=-1.0; +#endif +#else +vec3 irradianceVector=irradianceVector_; +#endif +#if defined(USESPHERICALFROMREFLECTIONMAP) +#if defined(REALTIME_FILTERING) +vec3 refractionIrradiance=irradiance(reflectionSampler,-irradianceVector,vReflectionFilteringInfo); +#else +vec3 refractionIrradiance=computeEnvironmentIrradiance(-irradianceVector); +#endif +#elif defined(USEIRRADIANCEMAP) +#ifdef REFLECTIONMAP_3D +vec3 irradianceCoords=irradianceVector; +#else +vec2 irradianceCoords=irradianceVector.xy; +#ifdef REFLECTIONMAP_PROJECTION +irradianceCoords/=irradianceVector.z; +#endif +irradianceCoords.y=1.0-irradianceCoords.y; +#endif +vec4 refractionIrradiance=sampleReflection(irradianceSampler,-irradianceCoords); +#ifdef RGBDREFLECTION +refractionIrradiance.rgb=fromRGBD(refractionIrradiance); +#endif +#ifdef GAMMAREFLECTION +refractionIrradiance.rgb=toLinearSpace(refractionIrradiance.rgb); +#endif +#else +vec4 refractionIrradiance=vec4(0.); +#endif +refractionIrradiance.rgb*=transmittance; +outParams.refractionIrradiance=refractionIrradiance.rgb; +#endif +} +#endif +`;ze.a.IncludesShadersStore.pbrBlockSubSurface=Qp;var qp=`vec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW); +#ifdef NORMAL +vec3 normalW=normalize(vNormalW); +#else +vec3 normalW=normalize(cross(dFdx(vPositionW),dFdy(vPositionW)))*vEyePosition.w; +#endif +vec3 geometricNormalW=normalW; +#if defined(TWOSIDEDLIGHTING) && defined(NORMAL) +geometricNormalW=gl_FrontFacing ? geometricNormalW : -geometricNormalW; +#endif +`;ze.a.IncludesShadersStore.pbrBlockNormalGeometric=qp,f(134);var Zp=`#if defined(FORCENORMALFORWARD) && defined(NORMAL) +vec3 faceNormal=normalize(cross(dFdx(vPositionW),dFdy(vPositionW)))*vEyePosition.w; +#if defined(TWOSIDEDLIGHTING) +faceNormal=gl_FrontFacing ? faceNormal : -faceNormal; +#endif +normalW*=sign(dot(normalW,faceNormal)); +#endif +#if defined(TWOSIDEDLIGHTING) && defined(NORMAL) +normalW=gl_FrontFacing ? normalW : -normalW; +#endif +`;ze.a.IncludesShadersStore.pbrBlockNormalFinal=Zp,f(162);var Jp=`#ifdef LIGHTMAP +vec4 lightmapColor=texture2D(lightmapSampler,vLightmapUV+uvOffset); +#ifdef RGBDLIGHTMAP +lightmapColor.rgb=fromRGBD(lightmapColor); +#endif +#ifdef GAMMALIGHTMAP +lightmapColor.rgb=toLinearSpace(lightmapColor.rgb); +#endif +lightmapColor.rgb*=vLightmapInfos.y; +#endif +`;ze.a.IncludesShadersStore.pbrBlockLightmapInit=Jp;var $p=`float NdotVUnclamped=dot(normalW,viewDirectionW); + +float NdotV=absEps(NdotVUnclamped); +float alphaG=convertRoughnessToAverageSlope(roughness); +vec2 AARoughnessFactors=getAARoughnessFactors(normalW.xyz); +#ifdef SPECULARAA + +alphaG+=AARoughnessFactors.y; +#endif +#if defined(ENVIRONMENTBRDF) + +vec3 environmentBrdf=getBRDFLookup(NdotV,roughness); +#endif +#if defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX) +#ifdef RADIANCEOCCLUSION +#ifdef AMBIENTINGRAYSCALE +float ambientMonochrome=aoOut.ambientOcclusionColor.r; +#else +float ambientMonochrome=getLuminance(aoOut.ambientOcclusionColor); +#endif +float seo=environmentRadianceOcclusion(ambientMonochrome,NdotVUnclamped); +#endif +#ifdef HORIZONOCCLUSION +#ifdef BUMP +#ifdef REFLECTIONMAP_3D +float eho=environmentHorizonOcclusion(-viewDirectionW,normalW,geometricNormalW); +#endif +#endif +#endif +#endif +`;ze.a.IncludesShadersStore.pbrBlockGeometryInfo=$p;var e_=`float reflectance=max(max(reflectivityOut.surfaceReflectivityColor.r,reflectivityOut.surfaceReflectivityColor.g),reflectivityOut.surfaceReflectivityColor.b); +vec3 specularEnvironmentR0=reflectivityOut.surfaceReflectivityColor.rgb; +#ifdef METALLICWORKFLOW +vec3 specularEnvironmentR90=vec3(metallicReflectanceFactors.a); +#else +vec3 specularEnvironmentR90=vec3(1.0,1.0,1.0); +#endif + +#ifdef ALPHAFRESNEL +float reflectance90=fresnelGrazingReflectance(reflectance); +specularEnvironmentR90=specularEnvironmentR90*reflectance90; +#endif +`;ze.a.IncludesShadersStore.pbrBlockReflectance0=e_;var t_=`#if defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX) +vec3 specularEnvironmentReflectance=getReflectanceFromBRDFLookup(clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,environmentBrdf); +#ifdef RADIANCEOCCLUSION +specularEnvironmentReflectance*=seo; +#endif +#ifdef HORIZONOCCLUSION +#ifdef BUMP +#ifdef REFLECTIONMAP_3D +specularEnvironmentReflectance*=eho; +#endif +#endif +#endif +#else + +vec3 specularEnvironmentReflectance=getReflectanceFromAnalyticalBRDFLookup_Jones(NdotV,clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,sqrt(microSurface)); +#endif +#ifdef CLEARCOAT +specularEnvironmentReflectance*=clearcoatOut.conservationFactor; +#if defined(CLEARCOAT_TINT) +specularEnvironmentReflectance*=clearcoatOut.absorption; +#endif +#endif +`;ze.a.IncludesShadersStore.pbrBlockReflectance=t_;var n_=`vec3 diffuseBase=vec3(0.,0.,0.); +#ifdef SPECULARTERM +vec3 specularBase=vec3(0.,0.,0.); +#endif +#ifdef CLEARCOAT +vec3 clearCoatBase=vec3(0.,0.,0.); +#endif +#ifdef SHEEN +vec3 sheenBase=vec3(0.,0.,0.); +#endif + +preLightingInfo preInfo; +lightingInfo info; +float shadow=1.; +#if defined(CLEARCOAT) && defined(CLEARCOAT_TINT) +vec3 absorption=vec3(0.); +#endif +`;ze.a.IncludesShadersStore.pbrBlockDirectLighting=n_;var i_=` + + + +#if defined(ENVIRONMENTBRDF) +#ifdef MS_BRDF_ENERGY_CONSERVATION +vec3 energyConservationFactor=getEnergyConservationFactor(clearcoatOut.specularEnvironmentR0,environmentBrdf); +#endif +#endif +#ifndef METALLICWORKFLOW +#ifdef SPECULAR_GLOSSINESS_ENERGY_CONSERVATION +surfaceAlbedo.rgb=(1.-reflectance)*surfaceAlbedo.rgb; +#endif +#endif +#if defined(SHEEN) && defined(SHEEN_ALBEDOSCALING) && defined(ENVIRONMENTBRDF) +surfaceAlbedo.rgb=sheenOut.sheenAlbedoScaling*surfaceAlbedo.rgb; +#endif + +#ifdef REFLECTION +vec3 finalIrradiance=reflectionOut.environmentIrradiance; +#if defined(CLEARCOAT) +finalIrradiance*=clearcoatOut.conservationFactor; +#if defined(CLEARCOAT_TINT) +finalIrradiance*=clearcoatOut.absorption; +#endif +#endif +#if defined(SS_REFRACTION) +finalIrradiance*=subSurfaceOut.refractionFactorForIrradiance; +#endif +#if defined(SS_TRANSLUCENCY) +finalIrradiance*=(1.0-subSurfaceOut.translucencyIntensity); +finalIrradiance+=subSurfaceOut.refractionIrradiance; +#endif +finalIrradiance*=surfaceAlbedo.rgb; +finalIrradiance*=vLightingIntensity.z; +finalIrradiance*=aoOut.ambientOcclusionColor; +#endif + +#ifdef SPECULARTERM +vec3 finalSpecular=specularBase; +finalSpecular=max(finalSpecular,0.0); +vec3 finalSpecularScaled=finalSpecular*vLightingIntensity.x*vLightingIntensity.w; +#if defined(ENVIRONMENTBRDF) && defined(MS_BRDF_ENERGY_CONSERVATION) +finalSpecularScaled*=energyConservationFactor; +#endif +#if defined(SHEEN) && defined(ENVIRONMENTBRDF) && defined(SHEEN_ALBEDOSCALING) +finalSpecularScaled*=sheenOut.sheenAlbedoScaling; +#endif +#endif + +#ifdef REFLECTION +vec3 finalRadiance=reflectionOut.environmentRadiance.rgb; +finalRadiance*=subSurfaceOut.specularEnvironmentReflectance; +vec3 finalRadianceScaled=finalRadiance*vLightingIntensity.z; +#if defined(ENVIRONMENTBRDF) && defined(MS_BRDF_ENERGY_CONSERVATION) +finalRadianceScaled*=energyConservationFactor; +#endif +#if defined(SHEEN) && defined(ENVIRONMENTBRDF) && defined(SHEEN_ALBEDOSCALING) +finalRadianceScaled*=sheenOut.sheenAlbedoScaling; +#endif +#endif + +#ifdef SHEEN +vec3 finalSheen=sheenBase*sheenOut.sheenColor; +finalSheen=max(finalSheen,0.0); +vec3 finalSheenScaled=finalSheen*vLightingIntensity.x*vLightingIntensity.w; +#if defined(CLEARCOAT) && defined(REFLECTION) && defined(ENVIRONMENTBRDF) +sheenOut.finalSheenRadianceScaled*=clearcoatOut.conservationFactor; +#if defined(CLEARCOAT_TINT) +sheenOut.finalSheenRadianceScaled*=clearcoatOut.absorption; +#endif +#endif +#endif + +#ifdef CLEARCOAT +vec3 finalClearCoat=clearCoatBase; +finalClearCoat=max(finalClearCoat,0.0); +vec3 finalClearCoatScaled=finalClearCoat*vLightingIntensity.x*vLightingIntensity.w; +#if defined(ENVIRONMENTBRDF) && defined(MS_BRDF_ENERGY_CONSERVATION) +finalClearCoatScaled*=clearcoatOut.energyConservationFactorClearCoat; +#endif +#ifdef SS_REFRACTION +subSurfaceOut.finalRefraction*=clearcoatOut.conservationFactor; +#ifdef CLEARCOAT_TINT +subSurfaceOut.finalRefraction*=clearcoatOut.absorption; +#endif +#endif +#endif + +#ifdef ALPHABLEND +float luminanceOverAlpha=0.0; +#if defined(REFLECTION) && defined(RADIANCEOVERALPHA) +luminanceOverAlpha+=getLuminance(finalRadianceScaled); +#if defined(CLEARCOAT) +luminanceOverAlpha+=getLuminance(clearcoatOut.finalClearCoatRadianceScaled); +#endif +#endif +#if defined(SPECULARTERM) && defined(SPECULAROVERALPHA) +luminanceOverAlpha+=getLuminance(finalSpecularScaled); +#endif +#if defined(CLEARCOAT) && defined(CLEARCOATOVERALPHA) +luminanceOverAlpha+=getLuminance(finalClearCoatScaled); +#endif +#if defined(RADIANCEOVERALPHA) || defined(SPECULAROVERALPHA) || defined(CLEARCOATOVERALPHA) +alpha=saturate(alpha+luminanceOverAlpha*luminanceOverAlpha); +#endif +#endif +`;ze.a.IncludesShadersStore.pbrBlockFinalLitComponents=i_;var r_=` +vec3 finalDiffuse=diffuseBase; +finalDiffuse*=surfaceAlbedo.rgb; +finalDiffuse=max(finalDiffuse,0.0); +finalDiffuse*=vLightingIntensity.x; + +vec3 finalAmbient=vAmbientColor; +finalAmbient*=surfaceAlbedo.rgb; + +vec3 finalEmissive=vEmissiveColor; +#ifdef EMISSIVE +vec3 emissiveColorTex=texture2D(emissiveSampler,vEmissiveUV+uvOffset).rgb; +finalEmissive*=toLinearSpace(emissiveColorTex.rgb); +finalEmissive*=vEmissiveInfos.y; +#endif +finalEmissive*=vLightingIntensity.y; + +#ifdef AMBIENT +vec3 ambientOcclusionForDirectDiffuse=mix(vec3(1.),aoOut.ambientOcclusionColor,vAmbientInfos.w); +#else +vec3 ambientOcclusionForDirectDiffuse=aoOut.ambientOcclusionColor; +#endif +finalAmbient*=aoOut.ambientOcclusionColor; +finalDiffuse*=ambientOcclusionForDirectDiffuse; +`;ze.a.IncludesShadersStore.pbrBlockFinalUnlitComponents=r_;var o_=`vec4 finalColor=vec4( +finalAmbient + +finalDiffuse + +#ifndef UNLIT +#ifdef REFLECTION +finalIrradiance + +#endif +#ifdef SPECULARTERM +finalSpecularScaled + +#endif +#ifdef SHEEN +finalSheenScaled + +#endif +#ifdef CLEARCOAT +finalClearCoatScaled + +#endif +#ifdef REFLECTION +finalRadianceScaled + +#if defined(SHEEN) && defined(ENVIRONMENTBRDF) +sheenOut.finalSheenRadianceScaled + +#endif +#ifdef CLEARCOAT +clearcoatOut.finalClearCoatRadianceScaled + +#endif +#endif +#ifdef SS_REFRACTION +subSurfaceOut.finalRefraction + +#endif +#endif +finalEmissive, +alpha); + +#ifdef LIGHTMAP +#ifndef LIGHTMAPEXCLUDED +#ifdef USELIGHTMAPASSHADOWMAP +finalColor.rgb*=lightmapColor.rgb; +#else +finalColor.rgb+=lightmapColor.rgb; +#endif +#endif +#endif +#define CUSTOM_FRAGMENT_BEFORE_FOG + +finalColor=max(finalColor,0.0); +`;ze.a.IncludesShadersStore.pbrBlockFinalColorComposition=o_,f(155);var a_=`#ifdef IMAGEPROCESSINGPOSTPROCESS + + +finalColor.rgb=clamp(finalColor.rgb,0.,30.0); +#else + +finalColor=applyImageProcessing(finalColor); +#endif +finalColor.a*=visibility; +#ifdef PREMULTIPLYALPHA + +finalColor.rgb*=finalColor.a; +#endif +`;ze.a.IncludesShadersStore.pbrBlockImageProcessing=a_;var s_=`#if DEBUGMODE>0 +if (vClipSpacePosition.x/vClipSpacePosition.w>=vDebugMode.x) { + +#if DEBUGMODE == 1 +gl_FragColor.rgb=vPositionW.rgb; +#define DEBUGMODE_NORMALIZE +#elif DEBUGMODE == 2 && defined(NORMAL) +gl_FragColor.rgb=vNormalW.rgb; +#define DEBUGMODE_NORMALIZE +#elif DEBUGMODE == 3 && defined(BUMP) || DEBUGMODE == 3 && defined(PARALLAX) || DEBUGMODE == 3 && defined(ANISOTROPIC) + +gl_FragColor.rgb=TBN[0]; +#define DEBUGMODE_NORMALIZE +#elif DEBUGMODE == 4 && defined(BUMP) || DEBUGMODE == 4 && defined(PARALLAX) || DEBUGMODE == 4 && defined(ANISOTROPIC) + +gl_FragColor.rgb=TBN[1]; +#define DEBUGMODE_NORMALIZE +#elif DEBUGMODE == 5 + +gl_FragColor.rgb=normalW; +#define DEBUGMODE_NORMALIZE +#elif DEBUGMODE == 6 && defined(MAINUV1) +gl_FragColor.rgb=vec3(vMainUV1,0.0); +#elif DEBUGMODE == 7 && defined(MAINUV2) +gl_FragColor.rgb=vec3(vMainUV2,0.0); +#elif DEBUGMODE == 8 && defined(CLEARCOAT) && defined(CLEARCOAT_BUMP) + +gl_FragColor.rgb=clearcoatOut.TBNClearCoat[0]; +#define DEBUGMODE_NORMALIZE +#elif DEBUGMODE == 9 && defined(CLEARCOAT) && defined(CLEARCOAT_BUMP) + +gl_FragColor.rgb=clearcoatOut.TBNClearCoat[1]; +#define DEBUGMODE_NORMALIZE +#elif DEBUGMODE == 10 && defined(CLEARCOAT) + +gl_FragColor.rgb=clearcoatOut.clearCoatNormalW; +#define DEBUGMODE_NORMALIZE +#elif DEBUGMODE == 11 && defined(ANISOTROPIC) +gl_FragColor.rgb=anisotropicOut.anisotropicNormal; +#define DEBUGMODE_NORMALIZE +#elif DEBUGMODE == 12 && defined(ANISOTROPIC) +gl_FragColor.rgb=anisotropicOut.anisotropicTangent; +#define DEBUGMODE_NORMALIZE +#elif DEBUGMODE == 13 && defined(ANISOTROPIC) +gl_FragColor.rgb=anisotropicOut.anisotropicBitangent; +#define DEBUGMODE_NORMALIZE + +#elif DEBUGMODE == 20 && defined(ALBEDO) +gl_FragColor.rgb=albedoTexture.rgb; +#elif DEBUGMODE == 21 && defined(AMBIENT) +gl_FragColor.rgb=aoOut.ambientOcclusionColorMap.rgb; +#elif DEBUGMODE == 22 && defined(OPACITY) +gl_FragColor.rgb=opacityMap.rgb; +#elif DEBUGMODE == 23 && defined(EMISSIVE) +gl_FragColor.rgb=emissiveColorTex.rgb; +#define DEBUGMODE_GAMMA +#elif DEBUGMODE == 24 && defined(LIGHTMAP) +gl_FragColor.rgb=lightmapColor.rgb; +#define DEBUGMODE_GAMMA +#elif DEBUGMODE == 25 && defined(REFLECTIVITY) && defined(METALLICWORKFLOW) +gl_FragColor.rgb=reflectivityOut.surfaceMetallicColorMap.rgb; +#elif DEBUGMODE == 26 && defined(REFLECTIVITY) && !defined(METALLICWORKFLOW) +gl_FragColor.rgb=reflectivityOut.surfaceReflectivityColorMap.rgb; +#define DEBUGMODE_GAMMA +#elif DEBUGMODE == 27 && defined(CLEARCOAT) && defined(CLEARCOAT_TEXTURE) +gl_FragColor.rgb=vec3(clearcoatOut.clearCoatMapData.rg,0.0); +#elif DEBUGMODE == 28 && defined(CLEARCOAT) && defined(CLEARCOAT_TINT) && defined(CLEARCOAT_TINT_TEXTURE) +gl_FragColor.rgb=clearcoatOut.clearCoatTintMapData.rgb; +#elif DEBUGMODE == 29 && defined(SHEEN) && defined(SHEEN_TEXTURE) +gl_FragColor.rgb=sheenOut.sheenMapData.rgb; +#elif DEBUGMODE == 30 && defined(ANISOTROPIC) && defined(ANISOTROPIC_TEXTURE) +gl_FragColor.rgb=anisotropicOut.anisotropyMapData.rgb; +#elif DEBUGMODE == 31 && defined(SUBSURFACE) && defined(SS_THICKNESSANDMASK_TEXTURE) +gl_FragColor.rgb=subSurfaceOut.thicknessMap.rgb; + +#elif DEBUGMODE == 40 && defined(SS_REFRACTION) + +gl_FragColor.rgb=subSurfaceOut.environmentRefraction.rgb; +#define DEBUGMODE_GAMMA +#elif DEBUGMODE == 41 && defined(REFLECTION) +gl_FragColor.rgb=reflectionOut.environmentRadiance.rgb; +#define DEBUGMODE_GAMMA +#elif DEBUGMODE == 42 && defined(CLEARCOAT) && defined(REFLECTION) +gl_FragColor.rgb=clearcoatOut.environmentClearCoatRadiance.rgb; +#define DEBUGMODE_GAMMA + +#elif DEBUGMODE == 50 +gl_FragColor.rgb=diffuseBase.rgb; +#define DEBUGMODE_GAMMA +#elif DEBUGMODE == 51 && defined(SPECULARTERM) +gl_FragColor.rgb=specularBase.rgb; +#define DEBUGMODE_GAMMA +#elif DEBUGMODE == 52 && defined(CLEARCOAT) +gl_FragColor.rgb=clearCoatBase.rgb; +#define DEBUGMODE_GAMMA +#elif DEBUGMODE == 53 && defined(SHEEN) +gl_FragColor.rgb=sheenBase.rgb; +#define DEBUGMODE_GAMMA +#elif DEBUGMODE == 54 && defined(REFLECTION) +gl_FragColor.rgb=reflectionOut.environmentIrradiance.rgb; +#define DEBUGMODE_GAMMA + +#elif DEBUGMODE == 60 +gl_FragColor.rgb=surfaceAlbedo.rgb; +#define DEBUGMODE_GAMMA +#elif DEBUGMODE == 61 +gl_FragColor.rgb=clearcoatOut.specularEnvironmentR0; +#define DEBUGMODE_GAMMA +#elif DEBUGMODE == 62 && defined(METALLICWORKFLOW) +gl_FragColor.rgb=vec3(reflectivityOut.metallicRoughness.r); +#elif DEBUGMODE == 71 && defined(METALLICWORKFLOW) +gl_FragColor.rgb=reflectivityOut.metallicF0; +#elif DEBUGMODE == 63 +gl_FragColor.rgb=vec3(roughness); +#elif DEBUGMODE == 64 +gl_FragColor.rgb=vec3(alphaG); +#elif DEBUGMODE == 65 +gl_FragColor.rgb=vec3(NdotV); +#elif DEBUGMODE == 66 && defined(CLEARCOAT) && defined(CLEARCOAT_TINT) +gl_FragColor.rgb=clearcoatOut.clearCoatColor.rgb; +#define DEBUGMODE_GAMMA +#elif DEBUGMODE == 67 && defined(CLEARCOAT) +gl_FragColor.rgb=vec3(clearcoatOut.clearCoatRoughness); +#elif DEBUGMODE == 68 && defined(CLEARCOAT) +gl_FragColor.rgb=vec3(clearcoatOut.clearCoatNdotV); +#elif DEBUGMODE == 69 && defined(SUBSURFACE) && defined(SS_TRANSLUCENCY) +gl_FragColor.rgb=subSurfaceOut.transmittance; +#elif DEBUGMODE == 70 && defined(SUBSURFACE) && defined(SS_REFRACTION) +gl_FragColor.rgb=subSurfaceOut.refractionTransmittance; + +#elif DEBUGMODE == 80 && defined(RADIANCEOCCLUSION) +gl_FragColor.rgb=vec3(seo); +#elif DEBUGMODE == 81 && defined(HORIZONOCCLUSION) +gl_FragColor.rgb=vec3(eho); +#elif DEBUGMODE == 82 && defined(MS_BRDF_ENERGY_CONSERVATION) +gl_FragColor.rgb=vec3(energyConservationFactor); +#elif DEBUGMODE == 83 && defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX) +gl_FragColor.rgb=specularEnvironmentReflectance; +#define DEBUGMODE_GAMMA +#elif DEBUGMODE == 84 && defined(CLEARCOAT) && defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX) +gl_FragColor.rgb=clearcoatOut.clearCoatEnvironmentReflectance; +#define DEBUGMODE_GAMMA +#elif DEBUGMODE == 85 && defined(SHEEN) && defined(REFLECTION) +gl_FragColor.rgb=sheenOut.sheenEnvironmentReflectance; +#define DEBUGMODE_GAMMA +#elif DEBUGMODE == 86 && defined(ALPHABLEND) +gl_FragColor.rgb=vec3(luminanceOverAlpha); +#elif DEBUGMODE == 87 +gl_FragColor.rgb=vec3(alpha); +#endif +gl_FragColor.rgb*=vDebugMode.y; +#ifdef DEBUGMODE_NORMALIZE +gl_FragColor.rgb=normalize(gl_FragColor.rgb)*0.5+0.5; +#endif +#ifdef DEBUGMODE_GAMMA +gl_FragColor.rgb=toGammaSpace(gl_FragColor.rgb); +#endif +gl_FragColor.a=1.0; +#ifdef PREPASS +gl_FragData[0]=toLinearSpace(gl_FragColor); +gl_FragData[1]=vec4(0.,0.,0.,0.); +#endif +return; +} +#endif`;ze.a.IncludesShadersStore.pbrDebug=s_;var c_=`#if defined(BUMP) || !defined(NORMAL) || defined(FORCENORMALFORWARD) || defined(SPECULARAA) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC) +#extension GL_OES_standard_derivatives : enable +#endif +#ifdef LODBASEDMICROSFURACE +#extension GL_EXT_shader_texture_lod : enable +#endif +#define CUSTOM_FRAGMENT_BEGIN +#ifdef LOGARITHMICDEPTH +#extension GL_EXT_frag_depth : enable +#endif +#include[SCENE_MRT_COUNT] +precision highp float; + +#ifndef FROMLINEARSPACE +#define FROMLINEARSPACE +#endif + +#include<__decl__pbrFragment> +#include +#include<__decl__lightFragment>[0..maxSimultaneousLights] +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef REFLECTION +#include +#endif +#define CUSTOM_FRAGMENT_DEFINITIONS +#include +#include +#include +#include +#include +#include +#include +#include +#include + +void main(void) { +#define CUSTOM_FRAGMENT_MAIN_BEGIN +#include + +#include +#include +#include + +albedoOpacityOutParams albedoOpacityOut; +#ifdef ALBEDO +vec4 albedoTexture=texture2D(albedoSampler,vAlbedoUV+uvOffset); +#endif +#ifdef OPACITY +vec4 opacityMap=texture2D(opacitySampler,vOpacityUV+uvOffset); +#endif +albedoOpacityBlock( +vAlbedoColor, +#ifdef ALBEDO +albedoTexture, +vAlbedoInfos, +#endif +#ifdef OPACITY +opacityMap, +vOpacityInfos, +#endif +#ifdef DETAIL +detailColor, +vDetailInfos, +#endif +albedoOpacityOut +); +vec3 surfaceAlbedo=albedoOpacityOut.surfaceAlbedo; +float alpha=albedoOpacityOut.alpha; +#define CUSTOM_FRAGMENT_UPDATE_ALPHA +#include +#define CUSTOM_FRAGMENT_BEFORE_LIGHTS + +ambientOcclusionOutParams aoOut; +#ifdef AMBIENT +vec3 ambientOcclusionColorMap=texture2D(ambientSampler,vAmbientUV+uvOffset).rgb; +#endif +ambientOcclusionBlock( +#ifdef AMBIENT +ambientOcclusionColorMap, +vAmbientInfos, +#endif +aoOut +); +#include +#ifdef UNLIT +vec3 diffuseBase=vec3(1.,1.,1.); +#else + +vec3 baseColor=surfaceAlbedo; +reflectivityOutParams reflectivityOut; +#if defined(REFLECTIVITY) +vec4 surfaceMetallicOrReflectivityColorMap=texture2D(reflectivitySampler,vReflectivityUV+uvOffset); +vec4 baseReflectivity=surfaceMetallicOrReflectivityColorMap; +#ifndef METALLICWORKFLOW +surfaceMetallicOrReflectivityColorMap=toLinearSpace(surfaceMetallicOrReflectivityColorMap); +surfaceMetallicOrReflectivityColorMap.rgb*=vReflectivityInfos.y; +#endif +#endif +#if defined(MICROSURFACEMAP) +vec4 microSurfaceTexel=texture2D(microSurfaceSampler,vMicroSurfaceSamplerUV+uvOffset)*vMicroSurfaceSamplerInfos.y; +#endif +#ifdef METALLICWORKFLOW +vec4 metallicReflectanceFactors=vMetallicReflectanceFactors; +#ifdef METALLIC_REFLECTANCE +vec4 metallicReflectanceFactorsMap=texture2D(metallicReflectanceSampler,vMetallicReflectanceUV+uvOffset); +metallicReflectanceFactorsMap=toLinearSpace(metallicReflectanceFactorsMap); +metallicReflectanceFactors*=metallicReflectanceFactorsMap; +#endif +#endif +reflectivityBlock( +vReflectivityColor, +#ifdef METALLICWORKFLOW +surfaceAlbedo, +metallicReflectanceFactors, +#endif +#ifdef REFLECTIVITY +vReflectivityInfos, +surfaceMetallicOrReflectivityColorMap, +#endif +#if defined(METALLICWORKFLOW) && defined(REFLECTIVITY) && defined(AOSTOREINMETALMAPRED) +aoOut.ambientOcclusionColor, +#endif +#ifdef MICROSURFACEMAP +microSurfaceTexel, +#endif +#ifdef DETAIL +detailColor, +vDetailInfos, +#endif +reflectivityOut +); +float microSurface=reflectivityOut.microSurface; +float roughness=reflectivityOut.roughness; +#ifdef METALLICWORKFLOW +surfaceAlbedo=reflectivityOut.surfaceAlbedo; +#endif +#if defined(METALLICWORKFLOW) && defined(REFLECTIVITY) && defined(AOSTOREINMETALMAPRED) +aoOut.ambientOcclusionColor=reflectivityOut.ambientOcclusionColor; +#endif + +#ifdef ALPHAFRESNEL +#if defined(ALPHATEST) || defined(ALPHABLEND) +alphaFresnelOutParams alphaFresnelOut; +alphaFresnelBlock( +normalW, +viewDirectionW, +alpha, +microSurface, +alphaFresnelOut +); +alpha=alphaFresnelOut.alpha; +#endif +#endif + +#include + +#ifdef ANISOTROPIC +anisotropicOutParams anisotropicOut; +#ifdef ANISOTROPIC_TEXTURE +vec3 anisotropyMapData=texture2D(anisotropySampler,vAnisotropyUV+uvOffset).rgb*vAnisotropyInfos.y; +#endif +anisotropicBlock( +vAnisotropy, +#ifdef ANISOTROPIC_TEXTURE +anisotropyMapData, +#endif +TBN, +normalW, +viewDirectionW, +anisotropicOut +); +#endif + +#ifdef REFLECTION +reflectionOutParams reflectionOut; +reflectionBlock( +vPositionW, +normalW, +alphaG, +vReflectionMicrosurfaceInfos, +vReflectionInfos, +vReflectionColor, +#ifdef ANISOTROPIC +anisotropicOut, +#endif +#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX) +NdotVUnclamped, +#endif +#ifdef LINEARSPECULARREFLECTION +roughness, +#endif +reflectionSampler, +#if defined(NORMAL) && defined(USESPHERICALINVERTEX) +vEnvironmentIrradiance, +#endif +#ifdef USESPHERICALFROMREFLECTIONMAP +#if !defined(NORMAL) || !defined(USESPHERICALINVERTEX) +reflectionMatrix, +#endif +#endif +#ifdef USEIRRADIANCEMAP +irradianceSampler, +#endif +#ifndef LODBASEDMICROSFURACE +reflectionSamplerLow, +reflectionSamplerHigh, +#endif +#ifdef REALTIME_FILTERING +vReflectionFilteringInfo, +#endif +reflectionOut +); +#endif + +#include + +#ifdef SHEEN +sheenOutParams sheenOut; +#ifdef SHEEN_TEXTURE +vec4 sheenMapData=toLinearSpace(texture2D(sheenSampler,vSheenUV+uvOffset))*vSheenInfos.y; +#endif +#if defined(SHEEN_ROUGHNESS) && defined(SHEEN_TEXTURE_ROUGHNESS) && !defined(SHEEN_TEXTURE_ROUGHNESS_IDENTICAL) && !defined(SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE) +vec4 sheenMapRoughnessData=texture2D(sheenRoughnessSampler,vSheenRoughnessUV+uvOffset)*vSheenInfos.w; +#endif +sheenBlock( +vSheenColor, +#ifdef SHEEN_ROUGHNESS +vSheenRoughness, +#if defined(SHEEN_TEXTURE_ROUGHNESS) && !defined(SHEEN_TEXTURE_ROUGHNESS_IDENTICAL) && !defined(SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE) +sheenMapRoughnessData, +#endif +#endif +roughness, +#ifdef SHEEN_TEXTURE +sheenMapData, +#endif +reflectance, +#ifdef SHEEN_LINKWITHALBEDO +baseColor, +surfaceAlbedo, +#endif +#ifdef ENVIRONMENTBRDF +NdotV, +environmentBrdf, +#endif +#if defined(REFLECTION) && defined(ENVIRONMENTBRDF) +AARoughnessFactors, +vReflectionMicrosurfaceInfos, +vReflectionInfos, +vReflectionColor, +vLightingIntensity, +reflectionSampler, +reflectionOut.reflectionCoords, +NdotVUnclamped, +#ifndef LODBASEDMICROSFURACE +reflectionSamplerLow, +reflectionSamplerHigh, +#endif +#ifdef REALTIME_FILTERING +vReflectionFilteringInfo, +#endif +#if !defined(REFLECTIONMAP_SKYBOX) && defined(RADIANCEOCCLUSION) +seo, +#endif +#if !defined(REFLECTIONMAP_SKYBOX) && defined(HORIZONOCCLUSION) && defined(BUMP) && defined(REFLECTIONMAP_3D) +eho, +#endif +#endif +sheenOut +); +#ifdef SHEEN_LINKWITHALBEDO +surfaceAlbedo=sheenOut.surfaceAlbedo; +#endif +#endif + +clearcoatOutParams clearcoatOut; +#ifdef CLEARCOAT +#ifdef CLEARCOAT_TEXTURE +vec2 clearCoatMapData=texture2D(clearCoatSampler,vClearCoatUV+uvOffset).rg*vClearCoatInfos.y; +#endif +#if defined(CLEARCOAT_TEXTURE_ROUGHNESS) && !defined(CLEARCOAT_TEXTURE_ROUGHNESS_IDENTICAL) && !defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE) +vec4 clearCoatMapRoughnessData=texture2D(clearCoatRoughnessSampler,vClearCoatRoughnessUV+uvOffset)*vClearCoatInfos.w; +#endif +#if defined(CLEARCOAT_TINT) && defined(CLEARCOAT_TINT_TEXTURE) +vec4 clearCoatTintMapData=toLinearSpace(texture2D(clearCoatTintSampler,vClearCoatTintUV+uvOffset)); +#endif +#ifdef CLEARCOAT_BUMP +vec4 clearCoatBumpMapData=texture2D(clearCoatBumpSampler,vClearCoatBumpUV+uvOffset); +#endif +clearcoatBlock( +vPositionW, +geometricNormalW, +viewDirectionW, +vClearCoatParams, +#if defined(CLEARCOAT_TEXTURE_ROUGHNESS) && !defined(CLEARCOAT_TEXTURE_ROUGHNESS_IDENTICAL) && !defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE) +clearCoatMapRoughnessData, +#endif +specularEnvironmentR0, +#ifdef CLEARCOAT_TEXTURE +clearCoatMapData, +#endif +#ifdef CLEARCOAT_TINT +vClearCoatTintParams, +clearCoatColorAtDistance, +vClearCoatRefractionParams, +#ifdef CLEARCOAT_TINT_TEXTURE +clearCoatTintMapData, +#endif +#endif +#ifdef CLEARCOAT_BUMP +vClearCoatBumpInfos, +clearCoatBumpMapData, +vClearCoatBumpUV, +#if defined(TANGENT) && defined(NORMAL) +vTBN, +#else +vClearCoatTangentSpaceParams, +#endif +#ifdef OBJECTSPACE_NORMALMAP +normalMatrix, +#endif +#endif +#if defined(FORCENORMALFORWARD) && defined(NORMAL) +faceNormal, +#endif +#ifdef REFLECTION +vReflectionMicrosurfaceInfos, +vReflectionInfos, +vReflectionColor, +vLightingIntensity, +reflectionSampler, +#ifndef LODBASEDMICROSFURACE +reflectionSamplerLow, +reflectionSamplerHigh, +#endif +#ifdef REALTIME_FILTERING +vReflectionFilteringInfo, +#endif +#endif +#if defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX) +#ifdef RADIANCEOCCLUSION +ambientMonochrome, +#endif +#endif +clearcoatOut +); +#else +clearcoatOut.specularEnvironmentR0=specularEnvironmentR0; +#endif + +#include + +subSurfaceOutParams subSurfaceOut; +#ifdef SUBSURFACE +#ifdef SS_THICKNESSANDMASK_TEXTURE +vec4 thicknessMap=texture2D(thicknessSampler,vThicknessUV+uvOffset); +#endif +subSurfaceBlock( +vSubSurfaceIntensity, +vThicknessParam, +vTintColor, +normalW, +specularEnvironmentReflectance, +#ifdef SS_THICKNESSANDMASK_TEXTURE +thicknessMap, +#endif +#ifdef REFLECTION +#ifdef SS_TRANSLUCENCY +reflectionMatrix, +#ifdef USESPHERICALFROMREFLECTIONMAP +#if !defined(NORMAL) || !defined(USESPHERICALINVERTEX) +reflectionOut.irradianceVector, +#endif +#if defined(REALTIME_FILTERING) +reflectionSampler, +vReflectionFilteringInfo, +#endif +#endif +#ifdef USEIRRADIANCEMAP +irradianceSampler, +#endif +#endif +#endif +#ifdef SS_REFRACTION +vPositionW, +viewDirectionW, +view, +surfaceAlbedo, +vRefractionInfos, +refractionMatrix, +vRefractionMicrosurfaceInfos, +vLightingIntensity, +#ifdef SS_LINKREFRACTIONTOTRANSPARENCY +alpha, +#endif +#ifdef SS_LODINREFRACTIONALPHA +NdotVUnclamped, +#endif +#ifdef SS_LINEARSPECULARREFRACTION +roughness, +#else +alphaG, +#endif +refractionSampler, +#ifndef LODBASEDMICROSFURACE +refractionSamplerLow, +refractionSamplerHigh, +#endif +#ifdef ANISOTROPIC +anisotropicOut, +#endif +#ifdef REALTIME_FILTERING +vRefractionFilteringInfo, +#endif +#endif +#ifdef SS_TRANSLUCENCY +vDiffusionDistance, +#endif +subSurfaceOut +); +#ifdef SS_REFRACTION +surfaceAlbedo=subSurfaceOut.surfaceAlbedo; +#ifdef SS_LINKREFRACTIONTOTRANSPARENCY +alpha=subSurfaceOut.alpha; +#endif +#endif +#else +subSurfaceOut.specularEnvironmentReflectance=specularEnvironmentReflectance; +#endif + +#include +#include[0..maxSimultaneousLights] + +#include +#endif +#include +#include +#include +#include(color,finalColor) +#include +#define CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR +#ifdef PREPASS +#ifdef PREPASS_POSITION +gl_FragData[PREPASS_POSITION_INDEX]=vec4(vPositionW,1.0); +#endif +#ifdef PREPASS_VELOCITY +vec2 a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5; +vec2 b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5; +vec2 velocity=abs(a-b); +velocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5; +gl_FragData[PREPASS_VELOCITY_INDEX]=vec4(velocity,0.0,1.0); +#endif +#ifdef PREPASS_IRRADIANCE +vec3 irradiance=finalDiffuse; +#ifndef UNLIT +#ifdef REFLECTION +irradiance+=finalIrradiance; +#endif +#endif +vec3 sqAlbedo=sqrt(surfaceAlbedo); +#ifdef SS_SCATTERING +gl_FragData[0]=vec4(finalColor.rgb-irradiance,finalColor.a); +irradiance/=sqAlbedo; +#else +gl_FragData[0]=finalColor; +float scatteringDiffusionProfile=255.; +#endif +gl_FragData[PREPASS_IRRADIANCE_INDEX]=vec4(irradiance,scatteringDiffusionProfile/255.); +#else +gl_FragData[0]=vec4(finalColor.rgb,finalColor.a); +#endif +#ifdef PREPASS_DEPTHNORMAL +gl_FragData[PREPASS_DEPTHNORMAL_INDEX]=vec4(vViewPos.z,(view*vec4(normalW,0.0)).rgb); +#endif +#ifdef PREPASS_ALBEDO +gl_FragData[PREPASS_ALBEDO_INDEX]=vec4(sqAlbedo,1.0); +#endif +#ifdef PREPASS_REFLECTIVITY +#if defined(REFLECTIVITY) +gl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(baseReflectivity.rgb,1.0); +#else +gl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(0.0,0.0,0.0,1.0); +#endif +#endif +#endif +#if !defined(PREPASS) || defined(WEBGL2) +gl_FragColor=finalColor; +#endif +#include +} +`;ze.a.ShadersStore.pbrPixelShader=c_;var l_=`uniform mat4 view; +uniform mat4 viewProjection; +#ifdef ALBEDO +uniform mat4 albedoMatrix; +uniform vec2 vAlbedoInfos; +#endif +#ifdef AMBIENT +uniform mat4 ambientMatrix; +uniform vec4 vAmbientInfos; +#endif +#ifdef OPACITY +uniform mat4 opacityMatrix; +uniform vec2 vOpacityInfos; +#endif +#ifdef EMISSIVE +uniform vec2 vEmissiveInfos; +uniform mat4 emissiveMatrix; +#endif +#ifdef LIGHTMAP +uniform vec2 vLightmapInfos; +uniform mat4 lightmapMatrix; +#endif +#ifdef REFLECTIVITY +uniform vec3 vReflectivityInfos; +uniform mat4 reflectivityMatrix; +#endif +#ifdef METALLIC_REFLECTANCE +uniform vec2 vMetallicReflectanceInfos; +uniform mat4 metallicReflectanceMatrix; +#endif +#ifdef MICROSURFACEMAP +uniform vec2 vMicroSurfaceSamplerInfos; +uniform mat4 microSurfaceSamplerMatrix; +#endif +#ifdef BUMP +uniform vec3 vBumpInfos; +uniform mat4 bumpMatrix; +#endif +#ifdef POINTSIZE +uniform float pointSize; +#endif + +#ifdef REFLECTION +uniform vec2 vReflectionInfos; +uniform mat4 reflectionMatrix; +#endif + +#ifdef CLEARCOAT +#if defined(CLEARCOAT_TEXTURE) || defined(CLEARCOAT_TEXTURE_ROUGHNESS) +uniform vec4 vClearCoatInfos; +#endif +#ifdef CLEARCOAT_TEXTURE +uniform mat4 clearCoatMatrix; +#endif +#ifdef CLEARCOAT_TEXTURE_ROUGHNESS +uniform mat4 clearCoatRoughnessMatrix; +#endif +#ifdef CLEARCOAT_BUMP +uniform vec2 vClearCoatBumpInfos; +uniform mat4 clearCoatBumpMatrix; +#endif +#ifdef CLEARCOAT_TINT_TEXTURE +uniform vec2 vClearCoatTintInfos; +uniform mat4 clearCoatTintMatrix; +#endif +#endif + +#ifdef ANISOTROPIC +#ifdef ANISOTROPIC_TEXTURE +uniform vec2 vAnisotropyInfos; +uniform mat4 anisotropyMatrix; +#endif +#endif + +#ifdef SHEEN +#if defined(SHEEN_TEXTURE) || defined(SHEEN_TEXTURE_ROUGHNESS) +uniform vec4 vSheenInfos; +#endif +#ifdef SHEEN_TEXTURE +uniform mat4 sheenMatrix; +#endif +#ifdef SHEEN_TEXTURE_ROUGHNESS +uniform mat4 sheenRoughnessMatrix; +#endif +#endif + +#ifdef SUBSURFACE +#ifdef SS_REFRACTION +uniform vec4 vRefractionInfos; +uniform mat4 refractionMatrix; +#endif +#ifdef SS_THICKNESSANDMASK_TEXTURE +uniform vec2 vThicknessInfos; +uniform mat4 thicknessMatrix; +#endif +#endif +`;ze.a.IncludesShadersStore.pbrVertexDeclaration=l_,f(163),f(164),f(93),f(94),f(100),f(165),f(156),f(158);var u_=`precision highp float; +#include<__decl__pbrVertex> +#define CUSTOM_VERTEX_BEGIN + +attribute vec3 position; +#ifdef NORMAL +attribute vec3 normal; +#endif +#ifdef TANGENT +attribute vec4 tangent; +#endif +#ifdef UV1 +attribute vec2 uv; +#endif +#ifdef UV2 +attribute vec2 uv2; +#endif +#ifdef MAINUV1 +varying vec2 vMainUV1; +#endif +#ifdef MAINUV2 +varying vec2 vMainUV2; +#endif +#ifdef VERTEXCOLOR +attribute vec4 color; +#endif +#include +#include + +#include +#include +#if defined(ALBEDO) && ALBEDODIRECTUV == 0 +varying vec2 vAlbedoUV; +#endif +#if defined(DETAIL) && DETAILDIRECTUV == 0 +varying vec2 vDetailUV; +#endif +#if defined(AMBIENT) && AMBIENTDIRECTUV == 0 +varying vec2 vAmbientUV; +#endif +#if defined(OPACITY) && OPACITYDIRECTUV == 0 +varying vec2 vOpacityUV; +#endif +#if defined(EMISSIVE) && EMISSIVEDIRECTUV == 0 +varying vec2 vEmissiveUV; +#endif +#if defined(LIGHTMAP) && LIGHTMAPDIRECTUV == 0 +varying vec2 vLightmapUV; +#endif +#if defined(REFLECTIVITY) && REFLECTIVITYDIRECTUV == 0 +varying vec2 vReflectivityUV; +#endif +#if defined(MICROSURFACEMAP) && MICROSURFACEMAPDIRECTUV == 0 +varying vec2 vMicroSurfaceSamplerUV; +#endif +#if defined(METALLIC_REFLECTANCE) && METALLIC_REFLECTANCEDIRECTUV == 0 +varying vec2 vMetallicReflectanceUV; +#endif +#if defined(BUMP) && BUMPDIRECTUV == 0 +varying vec2 vBumpUV; +#endif +#ifdef CLEARCOAT +#if defined(CLEARCOAT_TEXTURE) && CLEARCOAT_TEXTUREDIRECTUV == 0 +varying vec2 vClearCoatUV; +#endif +#if defined(CLEARCOAT_TEXTURE_ROUGHNESS) && CLEARCOAT_TEXTURE_ROUGHNESSDIRECTUV == 0 +varying vec2 vClearCoatRoughnessUV; +#endif +#if defined(CLEARCOAT_BUMP) && CLEARCOAT_BUMPDIRECTUV == 0 +varying vec2 vClearCoatBumpUV; +#endif +#if defined(CLEARCOAT_TINT_TEXTURE) && CLEARCOAT_TINT_TEXTUREDIRECTUV == 0 +varying vec2 vClearCoatTintUV; +#endif +#endif +#ifdef SHEEN +#if defined(SHEEN_TEXTURE) && SHEEN_TEXTUREDIRECTUV == 0 +varying vec2 vSheenUV; +#endif +#if defined(SHEEN_TEXTURE_ROUGHNESS) && SHEEN_TEXTURE_ROUGHNESSDIRECTUV == 0 +varying vec2 vSheenRoughnessUV; +#endif +#endif +#ifdef ANISOTROPIC +#if defined(ANISOTROPIC_TEXTURE) && ANISOTROPIC_TEXTUREDIRECTUV == 0 +varying vec2 vAnisotropyUV; +#endif +#endif +#ifdef SUBSURFACE +#if defined(SS_THICKNESSANDMASK_TEXTURE) && SS_THICKNESSANDMASK_TEXTUREDIRECTUV == 0 +varying vec2 vThicknessUV; +#endif +#endif + +varying vec3 vPositionW; +#if DEBUGMODE>0 +varying vec4 vClipSpacePosition; +#endif +#ifdef NORMAL +varying vec3 vNormalW; +#if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX) +varying vec3 vEnvironmentIrradiance; +#include +#endif +#endif +#ifdef VERTEXCOLOR +varying vec4 vColor; +#endif +#include +#include +#include +#include<__decl__lightFragment>[0..maxSimultaneousLights] +#include +#include[0..maxSimultaneousMorphTargets] +#ifdef REFLECTIONMAP_SKYBOX +varying vec3 vPositionUVW; +#endif +#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED) +varying vec3 vDirectionW; +#endif +#include +#define CUSTOM_VERTEX_DEFINITIONS +void main(void) { +#define CUSTOM_VERTEX_MAIN_BEGIN +vec3 positionUpdated=position; +#ifdef NORMAL +vec3 normalUpdated=normal; +#endif +#ifdef TANGENT +vec4 tangentUpdated=tangent; +#endif +#ifdef UV1 +vec2 uvUpdated=uv; +#endif +#include[0..maxSimultaneousMorphTargets] +#ifdef REFLECTIONMAP_SKYBOX +vPositionUVW=positionUpdated; +#endif +#define CUSTOM_VERTEX_UPDATE_POSITION +#define CUSTOM_VERTEX_UPDATE_NORMAL +#include +#if defined(PREPASS) && defined(PREPASS_VELOCITY) && !defined(BONES_VELOCITY_ENABLED) + +vCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0); +vPreviousPosition=previousViewProjection*previousWorld*vec4(positionUpdated,1.0); +#endif +#include +vec4 worldPos=finalWorld*vec4(positionUpdated,1.0); +vPositionW=vec3(worldPos); +#include +#ifdef NORMAL +mat3 normalWorld=mat3(finalWorld); +#if defined(INSTANCES) && defined(THIN_INSTANCES) +vNormalW=normalUpdated/vec3(dot(normalWorld[0],normalWorld[0]),dot(normalWorld[1],normalWorld[1]),dot(normalWorld[2],normalWorld[2])); +vNormalW=normalize(normalWorld*vNormalW); +#else +#ifdef NONUNIFORMSCALING +normalWorld=transposeMat3(inverseMat3(normalWorld)); +#endif +vNormalW=normalize(normalWorld*normalUpdated); +#endif +#if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX) +vec3 reflectionVector=vec3(reflectionMatrix*vec4(vNormalW,0)).xyz; +#ifdef REFLECTIONMAP_OPPOSITEZ +reflectionVector.z*=-1.0; +#endif +vEnvironmentIrradiance=computeEnvironmentIrradiance(reflectionVector); +#endif +#endif +#define CUSTOM_VERTEX_UPDATE_WORLDPOS +#ifdef MULTIVIEW +if (gl_ViewID_OVR == 0u) { +gl_Position=viewProjection*worldPos; +} else { +gl_Position=viewProjectionR*worldPos; +} +#else +gl_Position=viewProjection*worldPos; +#endif +#if DEBUGMODE>0 +vClipSpacePosition=gl_Position; +#endif +#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED) +vDirectionW=normalize(vec3(finalWorld*vec4(positionUpdated,0.0))); +#endif + +#ifndef UV1 +vec2 uvUpdated=vec2(0.,0.); +#endif +#ifndef UV2 +vec2 uv2=vec2(0.,0.); +#endif +#ifdef MAINUV1 +vMainUV1=uvUpdated; +#endif +#ifdef MAINUV2 +vMainUV2=uv2; +#endif +#if defined(ALBEDO) && ALBEDODIRECTUV == 0 +if (vAlbedoInfos.x == 0.) +{ +vAlbedoUV=vec2(albedoMatrix*vec4(uvUpdated,1.0,0.0)); +} +else +{ +vAlbedoUV=vec2(albedoMatrix*vec4(uv2,1.0,0.0)); +} +#endif +#if defined(DETAIL) && DETAILDIRECTUV == 0 +if (vDetailInfos.x == 0.) +{ +vDetailUV=vec2(detailMatrix*vec4(uvUpdated,1.0,0.0)); +} +else +{ +vDetailUV=vec2(detailMatrix*vec4(uv2,1.0,0.0)); +} +#endif +#if defined(AMBIENT) && AMBIENTDIRECTUV == 0 +if (vAmbientInfos.x == 0.) +{ +vAmbientUV=vec2(ambientMatrix*vec4(uvUpdated,1.0,0.0)); +} +else +{ +vAmbientUV=vec2(ambientMatrix*vec4(uv2,1.0,0.0)); +} +#endif +#if defined(OPACITY) && OPACITYDIRECTUV == 0 +if (vOpacityInfos.x == 0.) +{ +vOpacityUV=vec2(opacityMatrix*vec4(uvUpdated,1.0,0.0)); +} +else +{ +vOpacityUV=vec2(opacityMatrix*vec4(uv2,1.0,0.0)); +} +#endif +#if defined(EMISSIVE) && EMISSIVEDIRECTUV == 0 +if (vEmissiveInfos.x == 0.) +{ +vEmissiveUV=vec2(emissiveMatrix*vec4(uvUpdated,1.0,0.0)); +} +else +{ +vEmissiveUV=vec2(emissiveMatrix*vec4(uv2,1.0,0.0)); +} +#endif +#if defined(LIGHTMAP) && LIGHTMAPDIRECTUV == 0 +if (vLightmapInfos.x == 0.) +{ +vLightmapUV=vec2(lightmapMatrix*vec4(uvUpdated,1.0,0.0)); +} +else +{ +vLightmapUV=vec2(lightmapMatrix*vec4(uv2,1.0,0.0)); +} +#endif +#if defined(REFLECTIVITY) && REFLECTIVITYDIRECTUV == 0 +if (vReflectivityInfos.x == 0.) +{ +vReflectivityUV=vec2(reflectivityMatrix*vec4(uvUpdated,1.0,0.0)); +} +else +{ +vReflectivityUV=vec2(reflectivityMatrix*vec4(uv2,1.0,0.0)); +} +#endif +#if defined(MICROSURFACEMAP) && MICROSURFACEMAPDIRECTUV == 0 +if (vMicroSurfaceSamplerInfos.x == 0.) +{ +vMicroSurfaceSamplerUV=vec2(microSurfaceSamplerMatrix*vec4(uvUpdated,1.0,0.0)); +} +else +{ +vMicroSurfaceSamplerUV=vec2(microSurfaceSamplerMatrix*vec4(uv2,1.0,0.0)); +} +#endif +#if defined(METALLIC_REFLECTANCE) && METALLIC_REFLECTANCEDIRECTUV == 0 +if (vMetallicReflectanceInfos.x == 0.) +{ +vMetallicReflectanceUV=vec2(metallicReflectanceMatrix*vec4(uvUpdated,1.0,0.0)); +} +else +{ +vMetallicReflectanceUV=vec2(metallicReflectanceMatrix*vec4(uv2,1.0,0.0)); +} +#endif +#if defined(BUMP) && BUMPDIRECTUV == 0 +if (vBumpInfos.x == 0.) +{ +vBumpUV=vec2(bumpMatrix*vec4(uvUpdated,1.0,0.0)); +} +else +{ +vBumpUV=vec2(bumpMatrix*vec4(uv2,1.0,0.0)); +} +#endif +#ifdef CLEARCOAT +#if defined(CLEARCOAT_TEXTURE) && CLEARCOAT_TEXTUREDIRECTUV == 0 +if (vClearCoatInfos.x == 0.) +{ +vClearCoatUV=vec2(clearCoatMatrix*vec4(uvUpdated,1.0,0.0)); +} +else +{ +vClearCoatUV=vec2(clearCoatMatrix*vec4(uv2,1.0,0.0)); +} +#endif +#if defined(CLEARCOAT_TEXTURE_ROUGHNESS) && CLEARCOAT_TEXTURE_ROUGHNESSDIRECTUV == 0 +if (vClearCoatInfos.z == 0.) +{ +vClearCoatRoughnessUV=vec2(clearCoatRoughnessMatrix*vec4(uvUpdated,1.0,0.0)); +} +else +{ +vClearCoatRoughnessUV=vec2(clearCoatRoughnessMatrix*vec4(uv2,1.0,0.0)); +} +#endif +#if defined(CLEARCOAT_BUMP) && CLEARCOAT_BUMPDIRECTUV == 0 +if (vClearCoatBumpInfos.x == 0.) +{ +vClearCoatBumpUV=vec2(clearCoatBumpMatrix*vec4(uvUpdated,1.0,0.0)); +} +else +{ +vClearCoatBumpUV=vec2(clearCoatBumpMatrix*vec4(uv2,1.0,0.0)); +} +#endif +#if defined(CLEARCOAT_TINT_TEXTURE) && CLEARCOAT_TINT_TEXTUREDIRECTUV == 0 +if (vClearCoatTintInfos.x == 0.) +{ +vClearCoatTintUV=vec2(clearCoatTintMatrix*vec4(uvUpdated,1.0,0.0)); +} +else +{ +vClearCoatTintUV=vec2(clearCoatTintMatrix*vec4(uv2,1.0,0.0)); +} +#endif +#endif +#ifdef SHEEN +#if defined(SHEEN_TEXTURE) && SHEEN_TEXTUREDIRECTUV == 0 +if (vSheenInfos.x == 0.) +{ +vSheenUV=vec2(sheenMatrix*vec4(uvUpdated,1.0,0.0)); +} +else +{ +vSheenUV=vec2(sheenMatrix*vec4(uv2,1.0,0.0)); +} +#endif +#if defined(SHEEN_TEXTURE_ROUGHNESS) && SHEEN_TEXTURE_ROUGHNESSDIRECTUV == 0 +if (vSheenInfos.z == 0.) +{ +vSheenRoughnessUV=vec2(sheenRoughnessMatrix*vec4(uvUpdated,1.0,0.0)); +} +else +{ +vSheenRoughnessUV=vec2(sheenRoughnessMatrix*vec4(uv2,1.0,0.0)); +} +#endif +#endif +#ifdef ANISOTROPIC +#if defined(ANISOTROPIC_TEXTURE) && ANISOTROPIC_TEXTUREDIRECTUV == 0 +if (vAnisotropyInfos.x == 0.) +{ +vAnisotropyUV=vec2(anisotropyMatrix*vec4(uvUpdated,1.0,0.0)); +} +else +{ +vAnisotropyUV=vec2(anisotropyMatrix*vec4(uv2,1.0,0.0)); +} +#endif +#endif +#ifdef SUBSURFACE +#if defined(SS_THICKNESSANDMASK_TEXTURE) && SS_THICKNESSANDMASK_TEXTUREDIRECTUV == 0 +if (vThicknessInfos.x == 0.) +{ +vThicknessUV=vec2(thicknessMatrix*vec4(uvUpdated,1.0,0.0)); +} +else +{ +vThicknessUV=vec2(thicknessMatrix*vec4(uv2,1.0,0.0)); +} +#endif +#endif + +#include + +#include + +#include + +#include[0..maxSimultaneousLights] + +#ifdef VERTEXCOLOR +vColor=color; +#endif + +#ifdef POINTSIZE +gl_PointSize=pointSize; +#endif + +#include +#define CUSTOM_VERTEX_MAIN_END +}`;ze.a.ShadersStore.pbrVertexShader=u_;var na=f(92),xr={effect:null,subMesh:null},ws=function(r){function t(){var e=r.call(this)||this;return e.PBR=!0,e.NUM_SAMPLES="0",e.REALTIME_FILTERING=!1,e.MAINUV1=!1,e.MAINUV2=!1,e.UV1=!1,e.UV2=!1,e.ALBEDO=!1,e.GAMMAALBEDO=!1,e.ALBEDODIRECTUV=0,e.VERTEXCOLOR=!1,e.DETAIL=!1,e.DETAILDIRECTUV=0,e.DETAIL_NORMALBLENDMETHOD=0,e.AMBIENT=!1,e.AMBIENTDIRECTUV=0,e.AMBIENTINGRAYSCALE=!1,e.OPACITY=!1,e.VERTEXALPHA=!1,e.OPACITYDIRECTUV=0,e.OPACITYRGB=!1,e.ALPHATEST=!1,e.DEPTHPREPASS=!1,e.ALPHABLEND=!1,e.ALPHAFROMALBEDO=!1,e.ALPHATESTVALUE="0.5",e.SPECULAROVERALPHA=!1,e.RADIANCEOVERALPHA=!1,e.ALPHAFRESNEL=!1,e.LINEARALPHAFRESNEL=!1,e.PREMULTIPLYALPHA=!1,e.EMISSIVE=!1,e.EMISSIVEDIRECTUV=0,e.REFLECTIVITY=!1,e.REFLECTIVITYDIRECTUV=0,e.SPECULARTERM=!1,e.MICROSURFACEFROMREFLECTIVITYMAP=!1,e.MICROSURFACEAUTOMATIC=!1,e.LODBASEDMICROSFURACE=!1,e.MICROSURFACEMAP=!1,e.MICROSURFACEMAPDIRECTUV=0,e.METALLICWORKFLOW=!1,e.ROUGHNESSSTOREINMETALMAPALPHA=!1,e.ROUGHNESSSTOREINMETALMAPGREEN=!1,e.METALLNESSSTOREINMETALMAPBLUE=!1,e.AOSTOREINMETALMAPRED=!1,e.METALLIC_REFLECTANCE=!1,e.METALLIC_REFLECTANCEDIRECTUV=0,e.ENVIRONMENTBRDF=!1,e.ENVIRONMENTBRDF_RGBD=!1,e.NORMAL=!1,e.TANGENT=!1,e.BUMP=!1,e.BUMPDIRECTUV=0,e.OBJECTSPACE_NORMALMAP=!1,e.PARALLAX=!1,e.PARALLAXOCCLUSION=!1,e.NORMALXYSCALE=!0,e.LIGHTMAP=!1,e.LIGHTMAPDIRECTUV=0,e.USELIGHTMAPASSHADOWMAP=!1,e.GAMMALIGHTMAP=!1,e.RGBDLIGHTMAP=!1,e.REFLECTION=!1,e.REFLECTIONMAP_3D=!1,e.REFLECTIONMAP_SPHERICAL=!1,e.REFLECTIONMAP_PLANAR=!1,e.REFLECTIONMAP_CUBIC=!1,e.USE_LOCAL_REFLECTIONMAP_CUBIC=!1,e.REFLECTIONMAP_PROJECTION=!1,e.REFLECTIONMAP_SKYBOX=!1,e.REFLECTIONMAP_EXPLICIT=!1,e.REFLECTIONMAP_EQUIRECTANGULAR=!1,e.REFLECTIONMAP_EQUIRECTANGULAR_FIXED=!1,e.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED=!1,e.INVERTCUBICMAP=!1,e.USESPHERICALFROMREFLECTIONMAP=!1,e.USEIRRADIANCEMAP=!1,e.SPHERICAL_HARMONICS=!1,e.USESPHERICALINVERTEX=!1,e.REFLECTIONMAP_OPPOSITEZ=!1,e.LODINREFLECTIONALPHA=!1,e.GAMMAREFLECTION=!1,e.RGBDREFLECTION=!1,e.LINEARSPECULARREFLECTION=!1,e.RADIANCEOCCLUSION=!1,e.HORIZONOCCLUSION=!1,e.INSTANCES=!1,e.THIN_INSTANCES=!1,e.PREPASS=!1,e.PREPASS_IRRADIANCE=!1,e.PREPASS_IRRADIANCE_INDEX=-1,e.PREPASS_ALBEDO=!1,e.PREPASS_ALBEDO_INDEX=-1,e.PREPASS_DEPTHNORMAL=!1,e.PREPASS_DEPTHNORMAL_INDEX=-1,e.PREPASS_POSITION=!1,e.PREPASS_POSITION_INDEX=-1,e.PREPASS_VELOCITY=!1,e.PREPASS_VELOCITY_INDEX=-1,e.PREPASS_REFLECTIVITY=!1,e.PREPASS_REFLECTIVITY_INDEX=-1,e.SCENE_MRT_COUNT=0,e.NUM_BONE_INFLUENCERS=0,e.BonesPerMesh=0,e.BONETEXTURE=!1,e.BONES_VELOCITY_ENABLED=!1,e.NONUNIFORMSCALING=!1,e.MORPHTARGETS=!1,e.MORPHTARGETS_NORMAL=!1,e.MORPHTARGETS_TANGENT=!1,e.MORPHTARGETS_UV=!1,e.NUM_MORPH_INFLUENCERS=0,e.IMAGEPROCESSING=!1,e.VIGNETTE=!1,e.VIGNETTEBLENDMODEMULTIPLY=!1,e.VIGNETTEBLENDMODEOPAQUE=!1,e.TONEMAPPING=!1,e.TONEMAPPING_ACES=!1,e.CONTRAST=!1,e.COLORCURVES=!1,e.COLORGRADING=!1,e.COLORGRADING3D=!1,e.SAMPLER3DGREENDEPTH=!1,e.SAMPLER3DBGRMAP=!1,e.IMAGEPROCESSINGPOSTPROCESS=!1,e.EXPOSURE=!1,e.MULTIVIEW=!1,e.USEPHYSICALLIGHTFALLOFF=!1,e.USEGLTFLIGHTFALLOFF=!1,e.TWOSIDEDLIGHTING=!1,e.SHADOWFLOAT=!1,e.CLIPPLANE=!1,e.CLIPPLANE2=!1,e.CLIPPLANE3=!1,e.CLIPPLANE4=!1,e.CLIPPLANE5=!1,e.CLIPPLANE6=!1,e.POINTSIZE=!1,e.FOG=!1,e.LOGARITHMICDEPTH=!1,e.FORCENORMALFORWARD=!1,e.SPECULARAA=!1,e.CLEARCOAT=!1,e.CLEARCOAT_DEFAULTIOR=!1,e.CLEARCOAT_TEXTURE=!1,e.CLEARCOAT_TEXTURE_ROUGHNESS=!1,e.CLEARCOAT_TEXTUREDIRECTUV=0,e.CLEARCOAT_TEXTURE_ROUGHNESSDIRECTUV=0,e.CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE=!1,e.CLEARCOAT_TEXTURE_ROUGHNESS_IDENTICAL=!1,e.CLEARCOAT_BUMP=!1,e.CLEARCOAT_BUMPDIRECTUV=0,e.CLEARCOAT_REMAP_F0=!0,e.CLEARCOAT_TINT=!1,e.CLEARCOAT_TINT_TEXTURE=!1,e.CLEARCOAT_TINT_TEXTUREDIRECTUV=0,e.ANISOTROPIC=!1,e.ANISOTROPIC_TEXTURE=!1,e.ANISOTROPIC_TEXTUREDIRECTUV=0,e.BRDF_V_HEIGHT_CORRELATED=!1,e.MS_BRDF_ENERGY_CONSERVATION=!1,e.SPECULAR_GLOSSINESS_ENERGY_CONSERVATION=!1,e.SHEEN=!1,e.SHEEN_TEXTURE=!1,e.SHEEN_TEXTURE_ROUGHNESS=!1,e.SHEEN_TEXTUREDIRECTUV=0,e.SHEEN_TEXTURE_ROUGHNESSDIRECTUV=0,e.SHEEN_LINKWITHALBEDO=!1,e.SHEEN_ROUGHNESS=!1,e.SHEEN_ALBEDOSCALING=!1,e.SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE=!1,e.SHEEN_TEXTURE_ROUGHNESS_IDENTICAL=!1,e.SUBSURFACE=!1,e.SS_REFRACTION=!1,e.SS_TRANSLUCENCY=!1,e.SS_SCATTERING=!1,e.SS_THICKNESSANDMASK_TEXTURE=!1,e.SS_THICKNESSANDMASK_TEXTUREDIRECTUV=0,e.SS_REFRACTIONMAP_3D=!1,e.SS_REFRACTIONMAP_OPPOSITEZ=!1,e.SS_LODINREFRACTIONALPHA=!1,e.SS_GAMMAREFRACTION=!1,e.SS_RGBDREFRACTION=!1,e.SS_LINEARSPECULARREFRACTION=!1,e.SS_LINKREFRACTIONTOTRANSPARENCY=!1,e.SS_ALBEDOFORREFRACTIONTINT=!1,e.SS_MASK_FROM_THICKNESS_TEXTURE=!1,e.SS_MASK_FROM_THICKNESS_TEXTURE_GLTF=!1,e.UNLIT=!1,e.DEBUGMODE=0,e.rebuild(),e}return Object(c.d)(t,r),t.prototype.reset=function(){r.prototype.reset.call(this),this.ALPHATESTVALUE="0.5",this.PBR=!0},t}($o.a),pn=function(r){function t(e,n){var i=r.call(this,e,n)||this;return i._directIntensity=1,i._emissiveIntensity=1,i._environmentIntensity=1,i._specularIntensity=1,i._lightingInfos=new u.f(i._directIntensity,i._emissiveIntensity,i._environmentIntensity,i._specularIntensity),i._disableBumpMap=!1,i._albedoTexture=null,i._ambientTexture=null,i._ambientTextureStrength=1,i._ambientTextureImpactOnAnalyticalLights=t.DEFAULT_AO_ON_ANALYTICAL_LIGHTS,i._opacityTexture=null,i._reflectionTexture=null,i._emissiveTexture=null,i._reflectivityTexture=null,i._metallicTexture=null,i._metallic=null,i._roughness=null,i._metallicF0Factor=1,i._metallicReflectanceColor=M.a.White(),i._metallicReflectanceTexture=null,i._microSurfaceTexture=null,i._bumpTexture=null,i._lightmapTexture=null,i._ambientColor=new M.a(0,0,0),i._albedoColor=new M.a(1,1,1),i._reflectivityColor=new M.a(1,1,1),i._reflectionColor=new M.a(1,1,1),i._emissiveColor=new M.a(0,0,0),i._microSurface=.9,i._useLightmapAsShadowmap=!1,i._useHorizonOcclusion=!0,i._useRadianceOcclusion=!0,i._useAlphaFromAlbedoTexture=!1,i._useSpecularOverAlpha=!0,i._useMicroSurfaceFromReflectivityMapAlpha=!1,i._useRoughnessFromMetallicTextureAlpha=!0,i._useRoughnessFromMetallicTextureGreen=!1,i._useMetallnessFromMetallicTextureBlue=!1,i._useAmbientOcclusionFromMetallicTextureRed=!1,i._useAmbientInGrayScale=!1,i._useAutoMicroSurfaceFromReflectivityMap=!1,i._lightFalloff=t.LIGHTFALLOFF_PHYSICAL,i._useRadianceOverAlpha=!0,i._useObjectSpaceNormalMap=!1,i._useParallax=!1,i._useParallaxOcclusion=!1,i._parallaxScaleBias=.05,i._disableLighting=!1,i._maxSimultaneousLights=4,i._invertNormalMapX=!1,i._invertNormalMapY=!1,i._twoSidedLighting=!1,i._alphaCutOff=.4,i._forceAlphaTest=!1,i._useAlphaFresnel=!1,i._useLinearAlphaFresnel=!1,i._environmentBRDFTexture=null,i._forceIrradianceInFragment=!1,i._realTimeFiltering=!1,i._realTimeFilteringQuality=h.a.TEXTURE_FILTERING_QUALITY_LOW,i._forceNormalForward=!1,i._enableSpecularAntiAliasing=!1,i._imageProcessingObserver=null,i._renderTargets=new di.a(16),i._globalAmbientColor=new M.a(0,0,0),i._useLogarithmicDepth=!1,i._unlit=!1,i._debugMode=0,i.debugMode=0,i.debugLimit=-1,i.debugFactor=1,i.clearCoat=new Ar(i._markAllSubMeshesAsTexturesDirty.bind(i)),i.anisotropy=new Pr(i._markAllSubMeshesAsTexturesDirty.bind(i)),i.brdf=new Cp(i._markAllSubMeshesAsMiscDirty.bind(i)),i.sheen=new ao(i._markAllSubMeshesAsTexturesDirty.bind(i)),i.detailMap=new na.a(i._markAllSubMeshesAsTexturesDirty.bind(i)),i._rebuildInParallel=!1,i._attachImageProcessingConfiguration(null),i.getRenderTargetTextures=function(){return i._renderTargets.reset(),ut.a.ReflectionTextureEnabled&&i._reflectionTexture&&i._reflectionTexture.isRenderTarget&&i._renderTargets.push(i._reflectionTexture),i.subSurface.fillRenderTargetTextures(i._renderTargets),i._renderTargets},i._environmentBRDFTexture=ta.GetEnvironmentBRDFTexture(n),i.subSurface=new so(i._markAllSubMeshesAsTexturesDirty.bind(i),i._markScenePrePassDirty.bind(i),n),i.prePassConfiguration=new Ns.a,i}return Object(c.d)(t,r),Object.defineProperty(t.prototype,"realTimeFiltering",{get:function(){return this._realTimeFiltering},set:function(e){this._realTimeFiltering=e,this.markAsDirty(h.a.MATERIAL_TextureDirtyFlag)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"realTimeFilteringQuality",{get:function(){return this._realTimeFilteringQuality},set:function(e){this._realTimeFilteringQuality=e,this.markAsDirty(h.a.MATERIAL_TextureDirtyFlag)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"canRenderToMRT",{get:function(){return!0},enumerable:!1,configurable:!0}),t.prototype._attachImageProcessingConfiguration=function(e){var n=this;e!==this._imageProcessingConfiguration&&(this._imageProcessingConfiguration&&this._imageProcessingObserver&&this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),this._imageProcessingConfiguration=e||this.getScene().imageProcessingConfiguration,this._imageProcessingConfiguration&&(this._imageProcessingObserver=this._imageProcessingConfiguration.onUpdateParameters.add(function(){n._markAllSubMeshesAsImageProcessingDirty()})))},Object.defineProperty(t.prototype,"hasRenderTargetTextures",{get:function(){return!!(ut.a.ReflectionTextureEnabled&&this._reflectionTexture&&this._reflectionTexture.isRenderTarget)||this.subSurface.hasRenderTargetTextures()},enumerable:!1,configurable:!0}),t.prototype.getClassName=function(){return"PBRBaseMaterial"},Object.defineProperty(t.prototype,"useLogarithmicDepth",{get:function(){return this._useLogarithmicDepth},set:function(e){this._useLogarithmicDepth=e&&this.getScene().getEngine().getCaps().fragmentDepthSupported},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"_disableAlphaBlending",{get:function(){return this.subSurface.disableAlphaBlending||this._transparencyMode===t.PBRMATERIAL_OPAQUE||this._transparencyMode===t.PBRMATERIAL_ALPHATEST},enumerable:!1,configurable:!0}),t.prototype.needAlphaBlending=function(){return!this._disableAlphaBlending&&(this.alpha<1||this._opacityTexture!=null||this._shouldUseAlphaFromAlbedoTexture())},t.prototype.needAlphaTesting=function(){return!!this._forceAlphaTest||!this.subSurface.disableAlphaBlending&&this._hasAlphaChannel()&&(this._transparencyMode==null||this._transparencyMode===t.PBRMATERIAL_ALPHATEST)},t.prototype._shouldUseAlphaFromAlbedoTexture=function(){return this._albedoTexture!=null&&this._albedoTexture.hasAlpha&&this._useAlphaFromAlbedoTexture&&this._transparencyMode!==t.PBRMATERIAL_OPAQUE},t.prototype._hasAlphaChannel=function(){return this._albedoTexture!=null&&this._albedoTexture.hasAlpha||this._opacityTexture!=null},t.prototype.getAlphaTestTexture=function(){return this._albedoTexture},t.prototype.isReadyForSubMesh=function(e,n,i){if(n.effect&&this.isFrozen&&n.effect._wasPreviouslyReady)return!0;n._materialDefines||(n._materialDefines=new ws);var o=n._materialDefines;if(this._isReadyForSubMesh(n))return!0;var a=this.getScene(),s=a.getEngine();if(o._areTexturesDirty&&a.texturesEnabled){if(this._albedoTexture&&ut.a.DiffuseTextureEnabled&&!this._albedoTexture.isReadyOrNotBlocking()||this._ambientTexture&&ut.a.AmbientTextureEnabled&&!this._ambientTexture.isReadyOrNotBlocking()||this._opacityTexture&&ut.a.OpacityTextureEnabled&&!this._opacityTexture.isReadyOrNotBlocking())return!1;var d=this._getReflectionTexture();if(d&&ut.a.ReflectionTextureEnabled&&(!d.isReadyOrNotBlocking()||d.irradianceTexture&&!d.irradianceTexture.isReadyOrNotBlocking())||this._lightmapTexture&&ut.a.LightmapTextureEnabled&&!this._lightmapTexture.isReadyOrNotBlocking()||this._emissiveTexture&&ut.a.EmissiveTextureEnabled&&!this._emissiveTexture.isReadyOrNotBlocking())return!1;if(ut.a.SpecularTextureEnabled){if(this._metallicTexture){if(!this._metallicTexture.isReadyOrNotBlocking())return!1}else if(this._reflectivityTexture&&!this._reflectivityTexture.isReadyOrNotBlocking())return!1;if(this._metallicReflectanceTexture&&!this._metallicReflectanceTexture.isReadyOrNotBlocking()||this._microSurfaceTexture&&!this._microSurfaceTexture.isReadyOrNotBlocking())return!1}if(s.getCaps().standardDerivatives&&this._bumpTexture&&ut.a.BumpTextureEnabled&&!this._disableBumpMap&&!this._bumpTexture.isReady()||this._environmentBRDFTexture&&ut.a.ReflectionTextureEnabled&&!this._environmentBRDFTexture.isReady())return!1}if(!(this.subSurface.isReadyForSubMesh(o,a)&&this.clearCoat.isReadyForSubMesh(o,a,s,this._disableBumpMap)&&this.sheen.isReadyForSubMesh(o,a)&&this.anisotropy.isReadyForSubMesh(o,a)&&this.detailMap.isReadyForSubMesh(o,a))||o._areImageProcessingDirty&&this._imageProcessingConfiguration&&!this._imageProcessingConfiguration.isReady())return!1;s.getCaps().standardDerivatives||e.isVerticesDataPresent(Oe.b.NormalKind)||(e.createNormals(!0),l.a.Warn("PBRMaterial: Normals have been created for the mesh: "+e.name));var p=n.effect,b=o._areLightsDisposed,x=this._prepareEffect(e,o,this.onCompiled,this.onError,i,null,n.getRenderingMesh().hasThinInstances);if(x)if(this._onEffectCreatedObservable&&(xr.effect=x,xr.subMesh=n,this._onEffectCreatedObservable.notifyObservers(xr)),this.allowShaderHotSwapping&&p&&!x.isReady()){if(x=p,this._rebuildInParallel=!0,o.markAsUnprocessed(),b)return o._areLightsDisposed=!0,!1}else this._rebuildInParallel=!1,a.resetCachedMaterial(),n.setEffect(x,o),this.buildUniformLayout();return!(!n.effect||!n.effect.isReady())&&(o._renderId=a.getRenderId(),n.effect._wasPreviouslyReady=!0,!0)},t.prototype.isMetallicWorkflow=function(){return!(this._metallic==null&&this._roughness==null&&!this._metallicTexture)},t.prototype._prepareEffect=function(e,n,i,o,a,s,d){if(i===void 0&&(i=null),o===void 0&&(o=null),a===void 0&&(a=null),s===void 0&&(s=null),this._prepareDefines(e,n,a,s,d),!n.isDirty)return null;n.markAsProcessed();var p=this.getScene().getEngine(),b=new Sr.a,x=0;n.USESPHERICALINVERTEX&&b.addFallback(x++,"USESPHERICALINVERTEX"),n.FOG&&b.addFallback(x,"FOG"),n.SPECULARAA&&b.addFallback(x,"SPECULARAA"),n.POINTSIZE&&b.addFallback(x,"POINTSIZE"),n.LOGARITHMICDEPTH&&b.addFallback(x,"LOGARITHMICDEPTH"),n.PARALLAX&&b.addFallback(x,"PARALLAX"),n.PARALLAXOCCLUSION&&b.addFallback(x++,"PARALLAXOCCLUSION"),x=Pr.AddFallbacks(n,b,x),x=Pr.AddFallbacks(n,b,x),x=so.AddFallbacks(n,b,x),x=ao.AddFallbacks(n,b,x),n.ENVIRONMENTBRDF&&b.addFallback(x++,"ENVIRONMENTBRDF"),n.TANGENT&&b.addFallback(x++,"TANGENT"),n.BUMP&&b.addFallback(x++,"BUMP"),x=et.a.HandleFallbacksForShadows(n,b,this._maxSimultaneousLights,x++),n.SPECULARTERM&&b.addFallback(x++,"SPECULARTERM"),n.USESPHERICALFROMREFLECTIONMAP&&b.addFallback(x++,"USESPHERICALFROMREFLECTIONMAP"),n.USEIRRADIANCEMAP&&b.addFallback(x++,"USEIRRADIANCEMAP"),n.LIGHTMAP&&b.addFallback(x++,"LIGHTMAP"),n.NORMAL&&b.addFallback(x++,"NORMAL"),n.AMBIENT&&b.addFallback(x++,"AMBIENT"),n.EMISSIVE&&b.addFallback(x++,"EMISSIVE"),n.VERTEXCOLOR&&b.addFallback(x++,"VERTEXCOLOR"),n.MORPHTARGETS&&b.addFallback(x++,"MORPHTARGETS"),n.MULTIVIEW&&b.addFallback(0,"MULTIVIEW");var O=[Oe.b.PositionKind];n.NORMAL&&O.push(Oe.b.NormalKind),n.TANGENT&&O.push(Oe.b.TangentKind),n.UV1&&O.push(Oe.b.UVKind),n.UV2&&O.push(Oe.b.UV2Kind),n.VERTEXCOLOR&&O.push(Oe.b.ColorKind),et.a.PrepareAttributesForBones(O,e,n,b),et.a.PrepareAttributesForInstances(O,n),et.a.PrepareAttributesForMorphTargets(O,e,n);var B="pbr",F=["world","view","viewProjection","vEyePosition","vLightsType","vAmbientColor","vAlbedoColor","vReflectivityColor","vMetallicReflectanceFactors","vEmissiveColor","visibility","vReflectionColor","vFogInfos","vFogColor","pointSize","vAlbedoInfos","vAmbientInfos","vOpacityInfos","vReflectionInfos","vReflectionPosition","vReflectionSize","vEmissiveInfos","vReflectivityInfos","vReflectionFilteringInfo","vMetallicReflectanceInfos","vMicroSurfaceSamplerInfos","vBumpInfos","vLightmapInfos","mBones","vClipPlane","vClipPlane2","vClipPlane3","vClipPlane4","vClipPlane5","vClipPlane6","albedoMatrix","ambientMatrix","opacityMatrix","reflectionMatrix","emissiveMatrix","reflectivityMatrix","normalMatrix","microSurfaceSamplerMatrix","bumpMatrix","lightmapMatrix","metallicReflectanceMatrix","vLightingIntensity","logarithmicDepthConstant","vSphericalX","vSphericalY","vSphericalZ","vSphericalXX_ZZ","vSphericalYY_ZZ","vSphericalZZ","vSphericalXY","vSphericalYZ","vSphericalZX","vSphericalL00","vSphericalL1_1","vSphericalL10","vSphericalL11","vSphericalL2_2","vSphericalL2_1","vSphericalL20","vSphericalL21","vSphericalL22","vReflectionMicrosurfaceInfos","vTangentSpaceParams","boneTextureWidth","vDebugMode"],z=["albedoSampler","reflectivitySampler","ambientSampler","emissiveSampler","bumpSampler","lightmapSampler","opacitySampler","reflectionSampler","reflectionSamplerLow","reflectionSamplerHigh","irradianceSampler","microSurfaceSampler","environmentBrdfSampler","boneSampler","metallicReflectanceSampler"],J=["Material","Scene"];na.a.AddUniforms(F),na.a.AddSamplers(z),so.AddUniforms(F),so.AddSamplers(z),Ar.AddUniforms(F),Ar.AddSamplers(z),Pr.AddUniforms(F),Pr.AddSamplers(z),ao.AddUniforms(F),ao.AddSamplers(z),Ns.a.AddUniforms(F),Ns.a.AddSamplers(F),vn.a&&(vn.a.PrepareUniforms(F,n),vn.a.PrepareSamplers(z,n)),et.a.PrepareUniformsAndSamplersList({uniformsNames:F,uniformBuffersNames:J,samplers:z,defines:n,maxSimultaneousLights:this._maxSimultaneousLights});var ie={};this.customShaderNameResolve&&(B=this.customShaderNameResolve(B,F,J,z,n,O,ie));var se=n.toString();return p.createEffect(B,{attributes:O,uniformsNames:F,uniformBuffersNames:J,samplers:z,defines:se,fallbacks:b,onCompiled:i,onError:o,indexParameters:{maxSimultaneousLights:this._maxSimultaneousLights,maxSimultaneousMorphTargets:n.NUM_MORPH_INFLUENCERS},processFinalCode:ie.processFinalCode,multiTarget:n.PREPASS},p)},t.prototype._prepareDefines=function(e,n,i,o,a){i===void 0&&(i=null),o===void 0&&(o=null),a===void 0&&(a=!1);var s=this.getScene(),d=s.getEngine();if(et.a.PrepareDefinesForLights(s,e,n,!0,this._maxSimultaneousLights,this._disableLighting),n._needNormals=!0,et.a.PrepareDefinesForMultiview(s,n),et.a.PrepareDefinesForPrePass(s,n,this.canRenderToMRT),n.METALLICWORKFLOW=this.isMetallicWorkflow(),n._areTexturesDirty){if(n._needUVs=!1,s.texturesEnabled){s.getEngine().getCaps().textureLOD&&(n.LODBASEDMICROSFURACE=!0),this._albedoTexture&&ut.a.DiffuseTextureEnabled?(et.a.PrepareDefinesForMergedUV(this._albedoTexture,n,"ALBEDO"),n.GAMMAALBEDO=this._albedoTexture.gammaSpace):n.ALBEDO=!1,this._ambientTexture&&ut.a.AmbientTextureEnabled?(et.a.PrepareDefinesForMergedUV(this._ambientTexture,n,"AMBIENT"),n.AMBIENTINGRAYSCALE=this._useAmbientInGrayScale):n.AMBIENT=!1,this._opacityTexture&&ut.a.OpacityTextureEnabled?(et.a.PrepareDefinesForMergedUV(this._opacityTexture,n,"OPACITY"),n.OPACITYRGB=this._opacityTexture.getAlphaFromRGB):n.OPACITY=!1;var p=this._getReflectionTexture();if(p&&ut.a.ReflectionTextureEnabled){switch(n.REFLECTION=!0,n.GAMMAREFLECTION=p.gammaSpace,n.RGBDREFLECTION=p.isRGBD,n.REFLECTIONMAP_OPPOSITEZ=this.getScene().useRightHandedSystem?!p.invertZ:p.invertZ,n.LODINREFLECTIONALPHA=p.lodLevelInAlpha,n.LINEARSPECULARREFLECTION=p.linearSpecularLOD,this.realTimeFiltering&&this.realTimeFilteringQuality>0?(n.NUM_SAMPLES=""+this.realTimeFilteringQuality,d.webGLVersion>1&&(n.NUM_SAMPLES=n.NUM_SAMPLES+"u"),n.REALTIME_FILTERING=!0):n.REALTIME_FILTERING=!1,p.coordinatesMode===we.a.INVCUBIC_MODE&&(n.INVERTCUBICMAP=!0),n.REFLECTIONMAP_3D=p.isCube,n.REFLECTIONMAP_CUBIC=!1,n.REFLECTIONMAP_EXPLICIT=!1,n.REFLECTIONMAP_PLANAR=!1,n.REFLECTIONMAP_PROJECTION=!1,n.REFLECTIONMAP_SKYBOX=!1,n.REFLECTIONMAP_SPHERICAL=!1,n.REFLECTIONMAP_EQUIRECTANGULAR=!1,n.REFLECTIONMAP_EQUIRECTANGULAR_FIXED=!1,n.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED=!1,p.coordinatesMode){case we.a.EXPLICIT_MODE:n.REFLECTIONMAP_EXPLICIT=!0;break;case we.a.PLANAR_MODE:n.REFLECTIONMAP_PLANAR=!0;break;case we.a.PROJECTION_MODE:n.REFLECTIONMAP_PROJECTION=!0;break;case we.a.SKYBOX_MODE:n.REFLECTIONMAP_SKYBOX=!0;break;case we.a.SPHERICAL_MODE:n.REFLECTIONMAP_SPHERICAL=!0;break;case we.a.EQUIRECTANGULAR_MODE:n.REFLECTIONMAP_EQUIRECTANGULAR=!0;break;case we.a.FIXED_EQUIRECTANGULAR_MODE:n.REFLECTIONMAP_EQUIRECTANGULAR_FIXED=!0;break;case we.a.FIXED_EQUIRECTANGULAR_MIRRORED_MODE:n.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED=!0;break;case we.a.CUBIC_MODE:case we.a.INVCUBIC_MODE:default:n.REFLECTIONMAP_CUBIC=!0,n.USE_LOCAL_REFLECTIONMAP_CUBIC=!!p.boundingBoxSize}p.coordinatesMode!==we.a.SKYBOX_MODE&&(p.irradianceTexture?(n.USEIRRADIANCEMAP=!0,n.USESPHERICALFROMREFLECTIONMAP=!1):p.isCube&&(n.USESPHERICALFROMREFLECTIONMAP=!0,n.USEIRRADIANCEMAP=!1,this._forceIrradianceInFragment||this.realTimeFiltering||s.getEngine().getCaps().maxVaryingVectors<=8?n.USESPHERICALINVERTEX=!1:n.USESPHERICALINVERTEX=!0))}else n.REFLECTION=!1,n.REFLECTIONMAP_3D=!1,n.REFLECTIONMAP_SPHERICAL=!1,n.REFLECTIONMAP_PLANAR=!1,n.REFLECTIONMAP_CUBIC=!1,n.USE_LOCAL_REFLECTIONMAP_CUBIC=!1,n.REFLECTIONMAP_PROJECTION=!1,n.REFLECTIONMAP_SKYBOX=!1,n.REFLECTIONMAP_EXPLICIT=!1,n.REFLECTIONMAP_EQUIRECTANGULAR=!1,n.REFLECTIONMAP_EQUIRECTANGULAR_FIXED=!1,n.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED=!1,n.INVERTCUBICMAP=!1,n.USESPHERICALFROMREFLECTIONMAP=!1,n.USEIRRADIANCEMAP=!1,n.USESPHERICALINVERTEX=!1,n.REFLECTIONMAP_OPPOSITEZ=!1,n.LODINREFLECTIONALPHA=!1,n.GAMMAREFLECTION=!1,n.RGBDREFLECTION=!1,n.LINEARSPECULARREFLECTION=!1;this._lightmapTexture&&ut.a.LightmapTextureEnabled?(et.a.PrepareDefinesForMergedUV(this._lightmapTexture,n,"LIGHTMAP"),n.USELIGHTMAPASSHADOWMAP=this._useLightmapAsShadowmap,n.GAMMALIGHTMAP=this._lightmapTexture.gammaSpace,n.RGBDLIGHTMAP=this._lightmapTexture.isRGBD):n.LIGHTMAP=!1,this._emissiveTexture&&ut.a.EmissiveTextureEnabled?et.a.PrepareDefinesForMergedUV(this._emissiveTexture,n,"EMISSIVE"):n.EMISSIVE=!1,ut.a.SpecularTextureEnabled?(this._metallicTexture?(et.a.PrepareDefinesForMergedUV(this._metallicTexture,n,"REFLECTIVITY"),n.ROUGHNESSSTOREINMETALMAPALPHA=this._useRoughnessFromMetallicTextureAlpha,n.ROUGHNESSSTOREINMETALMAPGREEN=!this._useRoughnessFromMetallicTextureAlpha&&this._useRoughnessFromMetallicTextureGreen,n.METALLNESSSTOREINMETALMAPBLUE=this._useMetallnessFromMetallicTextureBlue,n.AOSTOREINMETALMAPRED=this._useAmbientOcclusionFromMetallicTextureRed):this._reflectivityTexture?(et.a.PrepareDefinesForMergedUV(this._reflectivityTexture,n,"REFLECTIVITY"),n.MICROSURFACEFROMREFLECTIVITYMAP=this._useMicroSurfaceFromReflectivityMapAlpha,n.MICROSURFACEAUTOMATIC=this._useAutoMicroSurfaceFromReflectivityMap):n.REFLECTIVITY=!1,this._metallicReflectanceTexture?et.a.PrepareDefinesForMergedUV(this._metallicReflectanceTexture,n,"METALLIC_REFLECTANCE"):n.METALLIC_REFLECTANCE=!1,this._microSurfaceTexture?et.a.PrepareDefinesForMergedUV(this._microSurfaceTexture,n,"MICROSURFACEMAP"):n.MICROSURFACEMAP=!1):(n.REFLECTIVITY=!1,n.MICROSURFACEMAP=!1),s.getEngine().getCaps().standardDerivatives&&this._bumpTexture&&ut.a.BumpTextureEnabled&&!this._disableBumpMap?(et.a.PrepareDefinesForMergedUV(this._bumpTexture,n,"BUMP"),this._useParallax&&this._albedoTexture&&ut.a.DiffuseTextureEnabled?(n.PARALLAX=!0,n.PARALLAXOCCLUSION=!!this._useParallaxOcclusion):n.PARALLAX=!1,n.OBJECTSPACE_NORMALMAP=this._useObjectSpaceNormalMap):n.BUMP=!1,this._environmentBRDFTexture&&ut.a.ReflectionTextureEnabled?(n.ENVIRONMENTBRDF=!0,n.ENVIRONMENTBRDF_RGBD=this._environmentBRDFTexture.isRGBD):(n.ENVIRONMENTBRDF=!1,n.ENVIRONMENTBRDF_RGBD=!1),this._shouldUseAlphaFromAlbedoTexture()?n.ALPHAFROMALBEDO=!0:n.ALPHAFROMALBEDO=!1}n.SPECULAROVERALPHA=this._useSpecularOverAlpha,this._lightFalloff===t.LIGHTFALLOFF_STANDARD?(n.USEPHYSICALLIGHTFALLOFF=!1,n.USEGLTFLIGHTFALLOFF=!1):this._lightFalloff===t.LIGHTFALLOFF_GLTF?(n.USEPHYSICALLIGHTFALLOFF=!1,n.USEGLTFLIGHTFALLOFF=!0):(n.USEPHYSICALLIGHTFALLOFF=!0,n.USEGLTFLIGHTFALLOFF=!1),n.RADIANCEOVERALPHA=this._useRadianceOverAlpha,!this.backFaceCulling&&this._twoSidedLighting?n.TWOSIDEDLIGHTING=!0:n.TWOSIDEDLIGHTING=!1,n.SPECULARAA=s.getEngine().getCaps().standardDerivatives&&this._enableSpecularAntiAliasing}(n._areTexturesDirty||n._areMiscDirty)&&(n.ALPHATESTVALUE=this._alphaCutOff+(this._alphaCutOff%1==0?".":""),n.PREMULTIPLYALPHA=this.alphaMode===h.a.ALPHA_PREMULTIPLIED||this.alphaMode===h.a.ALPHA_PREMULTIPLIED_PORTERDUFF,n.ALPHABLEND=this.needAlphaBlendingForMesh(e),n.ALPHAFRESNEL=this._useAlphaFresnel||this._useLinearAlphaFresnel,n.LINEARALPHAFRESNEL=this._useLinearAlphaFresnel),n._areImageProcessingDirty&&this._imageProcessingConfiguration&&this._imageProcessingConfiguration.prepareDefines(n),n.FORCENORMALFORWARD=this._forceNormalForward,n.RADIANCEOCCLUSION=this._useRadianceOcclusion,n.HORIZONOCCLUSION=this._useHorizonOcclusion,n._areMiscDirty&&(et.a.PrepareDefinesForMisc(e,s,this._useLogarithmicDepth,this.pointsCloud,this.fogEnabled,this._shouldTurnAlphaTestOn(e)||this._forceAlphaTest,n),n.UNLIT=this._unlit||(this.pointsCloud||this.wireframe)&&!e.isVerticesDataPresent(Oe.b.NormalKind),n.DEBUGMODE=this._debugMode),this.detailMap.prepareDefines(n,s),this.subSurface.prepareDefines(n,s),this.clearCoat.prepareDefines(n,s),this.anisotropy.prepareDefines(n,e,s),this.brdf.prepareDefines(n),this.sheen.prepareDefines(n,s),et.a.PrepareDefinesForFrameBoundValues(s,d,n,!!i,o,a),et.a.PrepareDefinesForAttributes(e,n,!0,!0,!0,this._transparencyMode!==t.PBRMATERIAL_OPAQUE)},t.prototype.forceCompilation=function(e,n,i){var o=this,a=Object(c.a)({clipPlane:!1,useInstances:!1},i),s=new ws,d=this._prepareEffect(e,s,void 0,void 0,a.useInstances,a.clipPlane,e.hasThinInstances);this._onEffectCreatedObservable&&(xr.effect=d,xr.subMesh=null,this._onEffectCreatedObservable.notifyObservers(xr)),d.isReady()?n&&n(this):d.onCompileObservable.add(function(){n&&n(o)})},t.prototype.buildUniformLayout=function(){var e=this._uniformBuffer;e.addUniform("vAlbedoInfos",2),e.addUniform("vAmbientInfos",4),e.addUniform("vOpacityInfos",2),e.addUniform("vEmissiveInfos",2),e.addUniform("vLightmapInfos",2),e.addUniform("vReflectivityInfos",3),e.addUniform("vMicroSurfaceSamplerInfos",2),e.addUniform("vReflectionInfos",2),e.addUniform("vReflectionFilteringInfo",2),e.addUniform("vReflectionPosition",3),e.addUniform("vReflectionSize",3),e.addUniform("vBumpInfos",3),e.addUniform("albedoMatrix",16),e.addUniform("ambientMatrix",16),e.addUniform("opacityMatrix",16),e.addUniform("emissiveMatrix",16),e.addUniform("lightmapMatrix",16),e.addUniform("reflectivityMatrix",16),e.addUniform("microSurfaceSamplerMatrix",16),e.addUniform("bumpMatrix",16),e.addUniform("vTangentSpaceParams",2),e.addUniform("reflectionMatrix",16),e.addUniform("vReflectionColor",3),e.addUniform("vAlbedoColor",4),e.addUniform("vLightingIntensity",4),e.addUniform("vReflectionMicrosurfaceInfos",3),e.addUniform("pointSize",1),e.addUniform("vReflectivityColor",4),e.addUniform("vEmissiveColor",3),e.addUniform("visibility",1),e.addUniform("vMetallicReflectanceFactors",4),e.addUniform("vMetallicReflectanceInfos",2),e.addUniform("metallicReflectanceMatrix",16),Ar.PrepareUniformBuffer(e),Pr.PrepareUniformBuffer(e),ao.PrepareUniformBuffer(e),so.PrepareUniformBuffer(e),na.a.PrepareUniformBuffer(e),e.create()},t.prototype.unbind=function(){if(this._activeEffect){var e=!1;this._reflectionTexture&&this._reflectionTexture.isRenderTarget&&(this._activeEffect.setTexture("reflection2DSampler",null),e=!0),this.subSurface.unbind(this._activeEffect)&&(e=!0),e&&this._markAllSubMeshesAsTexturesDirty()}r.prototype.unbind.call(this)},t.prototype.bindForSubMesh=function(e,n,i){var o=this.getScene(),a=i._materialDefines;if(a){var s=i.effect;if(s){this._activeEffect=s,a.INSTANCES&&!a.THIN_INSTANCES||this.bindOnlyWorldMatrix(e),this.prePassConfiguration.bindForSubMesh(this._activeEffect,o,n,e,this.isFrozen),a.OBJECTSPACE_NORMALMAP&&(e.toNormalMatrix(this._normalMatrix),this.bindOnlyNormalMatrix(this._normalMatrix));var d=this._mustRebind(o,s,n.visibility);et.a.BindBonesParameters(n,this._activeEffect,this.prePassConfiguration);var p=null,b=this._uniformBuffer;if(d){var x=o.getEngine();if(b.bindToEffect(s,"Material"),this.bindViewProjection(s),p=this._getReflectionTexture(),!b.useUbo||!this.isFrozen||!b.isSync){if(o.texturesEnabled){if(this._albedoTexture&&ut.a.DiffuseTextureEnabled&&(b.updateFloat2("vAlbedoInfos",this._albedoTexture.coordinatesIndex,this._albedoTexture.level),et.a.BindTextureMatrix(this._albedoTexture,b,"albedo")),this._ambientTexture&&ut.a.AmbientTextureEnabled&&(b.updateFloat4("vAmbientInfos",this._ambientTexture.coordinatesIndex,this._ambientTexture.level,this._ambientTextureStrength,this._ambientTextureImpactOnAnalyticalLights),et.a.BindTextureMatrix(this._ambientTexture,b,"ambient")),this._opacityTexture&&ut.a.OpacityTextureEnabled&&(b.updateFloat2("vOpacityInfos",this._opacityTexture.coordinatesIndex,this._opacityTexture.level),et.a.BindTextureMatrix(this._opacityTexture,b,"opacity")),p&&ut.a.ReflectionTextureEnabled){if(b.updateMatrix("reflectionMatrix",p.getReflectionTextureMatrix()),b.updateFloat2("vReflectionInfos",p.level,0),p.boundingBoxSize){var O=p;b.updateVector3("vReflectionPosition",O.boundingBoxPosition),b.updateVector3("vReflectionSize",O.boundingBoxSize)}if(this.realTimeFiltering){var B=p.getSize().width;b.updateFloat2("vReflectionFilteringInfo",B,$.a.Log2(B))}if(!a.USEIRRADIANCEMAP){var F=p.sphericalPolynomial;if(a.USESPHERICALFROMREFLECTIONMAP&&F)if(a.SPHERICAL_HARMONICS){var z=F.preScaledHarmonics;this._activeEffect.setVector3("vSphericalL00",z.l00),this._activeEffect.setVector3("vSphericalL1_1",z.l1_1),this._activeEffect.setVector3("vSphericalL10",z.l10),this._activeEffect.setVector3("vSphericalL11",z.l11),this._activeEffect.setVector3("vSphericalL2_2",z.l2_2),this._activeEffect.setVector3("vSphericalL2_1",z.l2_1),this._activeEffect.setVector3("vSphericalL20",z.l20),this._activeEffect.setVector3("vSphericalL21",z.l21),this._activeEffect.setVector3("vSphericalL22",z.l22)}else this._activeEffect.setFloat3("vSphericalX",F.x.x,F.x.y,F.x.z),this._activeEffect.setFloat3("vSphericalY",F.y.x,F.y.y,F.y.z),this._activeEffect.setFloat3("vSphericalZ",F.z.x,F.z.y,F.z.z),this._activeEffect.setFloat3("vSphericalXX_ZZ",F.xx.x-F.zz.x,F.xx.y-F.zz.y,F.xx.z-F.zz.z),this._activeEffect.setFloat3("vSphericalYY_ZZ",F.yy.x-F.zz.x,F.yy.y-F.zz.y,F.yy.z-F.zz.z),this._activeEffect.setFloat3("vSphericalZZ",F.zz.x,F.zz.y,F.zz.z),this._activeEffect.setFloat3("vSphericalXY",F.xy.x,F.xy.y,F.xy.z),this._activeEffect.setFloat3("vSphericalYZ",F.yz.x,F.yz.y,F.yz.z),this._activeEffect.setFloat3("vSphericalZX",F.zx.x,F.zx.y,F.zx.z)}b.updateFloat3("vReflectionMicrosurfaceInfos",p.getSize().width,p.lodGenerationScale,p.lodGenerationOffset)}this._emissiveTexture&&ut.a.EmissiveTextureEnabled&&(b.updateFloat2("vEmissiveInfos",this._emissiveTexture.coordinatesIndex,this._emissiveTexture.level),et.a.BindTextureMatrix(this._emissiveTexture,b,"emissive")),this._lightmapTexture&&ut.a.LightmapTextureEnabled&&(b.updateFloat2("vLightmapInfos",this._lightmapTexture.coordinatesIndex,this._lightmapTexture.level),et.a.BindTextureMatrix(this._lightmapTexture,b,"lightmap")),ut.a.SpecularTextureEnabled&&(this._metallicTexture?(b.updateFloat3("vReflectivityInfos",this._metallicTexture.coordinatesIndex,this._metallicTexture.level,this._ambientTextureStrength),et.a.BindTextureMatrix(this._metallicTexture,b,"reflectivity")):this._reflectivityTexture&&(b.updateFloat3("vReflectivityInfos",this._reflectivityTexture.coordinatesIndex,this._reflectivityTexture.level,1),et.a.BindTextureMatrix(this._reflectivityTexture,b,"reflectivity")),this._metallicReflectanceTexture&&(b.updateFloat2("vMetallicReflectanceInfos",this._metallicReflectanceTexture.coordinatesIndex,this._metallicReflectanceTexture.level),et.a.BindTextureMatrix(this._metallicReflectanceTexture,b,"metallicReflectance")),this._microSurfaceTexture&&(b.updateFloat2("vMicroSurfaceSamplerInfos",this._microSurfaceTexture.coordinatesIndex,this._microSurfaceTexture.level),et.a.BindTextureMatrix(this._microSurfaceTexture,b,"microSurfaceSampler"))),this._bumpTexture&&x.getCaps().standardDerivatives&&ut.a.BumpTextureEnabled&&!this._disableBumpMap&&(b.updateFloat3("vBumpInfos",this._bumpTexture.coordinatesIndex,this._bumpTexture.level,this._parallaxScaleBias),et.a.BindTextureMatrix(this._bumpTexture,b,"bump"),o._mirroredCameraPosition?b.updateFloat2("vTangentSpaceParams",this._invertNormalMapX?1:-1,this._invertNormalMapY?1:-1):b.updateFloat2("vTangentSpaceParams",this._invertNormalMapX?-1:1,this._invertNormalMapY?-1:1))}if(this.pointsCloud&&b.updateFloat("pointSize",this.pointSize),a.METALLICWORKFLOW){M.c.Color3[0].r=this._metallic===void 0||this._metallic===null?1:this._metallic,M.c.Color3[0].g=this._roughness===void 0||this._roughness===null?1:this._roughness,b.updateColor4("vReflectivityColor",M.c.Color3[0],1);var J=this.subSurface.indexOfRefraction,ie=Math.pow((J-1)/(J+1),2);this._metallicReflectanceColor.scaleToRef(ie*this._metallicF0Factor,M.c.Color3[0]);var se=this._metallicF0Factor;b.updateColor4("vMetallicReflectanceFactors",M.c.Color3[0],se)}else b.updateColor4("vReflectivityColor",this._reflectivityColor,this._microSurface);b.updateColor3("vEmissiveColor",ut.a.EmissiveTextureEnabled?this._emissiveColor:M.a.BlackReadOnly),b.updateColor3("vReflectionColor",this._reflectionColor),!a.SS_REFRACTION&&this.subSurface.linkRefractionWithTransparency?b.updateColor4("vAlbedoColor",this._albedoColor,1):b.updateColor4("vAlbedoColor",this._albedoColor,this.alpha),this._lightingInfos.x=this._directIntensity,this._lightingInfos.y=this._emissiveIntensity,this._lightingInfos.z=this._environmentIntensity*o.environmentIntensity,this._lightingInfos.w=this._specularIntensity,b.updateVector4("vLightingIntensity",this._lightingInfos)}b.updateFloat("visibility",n.visibility),o.texturesEnabled&&(this._albedoTexture&&ut.a.DiffuseTextureEnabled&&b.setTexture("albedoSampler",this._albedoTexture),this._ambientTexture&&ut.a.AmbientTextureEnabled&&b.setTexture("ambientSampler",this._ambientTexture),this._opacityTexture&&ut.a.OpacityTextureEnabled&&b.setTexture("opacitySampler",this._opacityTexture),p&&ut.a.ReflectionTextureEnabled&&(a.LODBASEDMICROSFURACE?b.setTexture("reflectionSampler",p):(b.setTexture("reflectionSampler",p._lodTextureMid||p),b.setTexture("reflectionSamplerLow",p._lodTextureLow||p),b.setTexture("reflectionSamplerHigh",p._lodTextureHigh||p)),a.USEIRRADIANCEMAP&&b.setTexture("irradianceSampler",p.irradianceTexture)),a.ENVIRONMENTBRDF&&b.setTexture("environmentBrdfSampler",this._environmentBRDFTexture),this._emissiveTexture&&ut.a.EmissiveTextureEnabled&&b.setTexture("emissiveSampler",this._emissiveTexture),this._lightmapTexture&&ut.a.LightmapTextureEnabled&&b.setTexture("lightmapSampler",this._lightmapTexture),ut.a.SpecularTextureEnabled&&(this._metallicTexture?b.setTexture("reflectivitySampler",this._metallicTexture):this._reflectivityTexture&&b.setTexture("reflectivitySampler",this._reflectivityTexture),this._metallicReflectanceTexture&&b.setTexture("metallicReflectanceSampler",this._metallicReflectanceTexture),this._microSurfaceTexture&&b.setTexture("microSurfaceSampler",this._microSurfaceTexture)),this._bumpTexture&&x.getCaps().standardDerivatives&&ut.a.BumpTextureEnabled&&!this._disableBumpMap&&b.setTexture("bumpSampler",this._bumpTexture)),this.detailMap.bindForSubMesh(b,o,this.isFrozen),this.subSurface.bindForSubMesh(b,o,x,this.isFrozen,a.LODBASEDMICROSFURACE,this.realTimeFiltering),this.clearCoat.bindForSubMesh(b,o,x,this._disableBumpMap,this.isFrozen,this._invertNormalMapX,this._invertNormalMapY,i),this.anisotropy.bindForSubMesh(b,o,this.isFrozen),this.sheen.bindForSubMesh(b,o,this.isFrozen,i),et.a.BindClipPlane(this._activeEffect,o),o.ambientColor.multiplyToRef(this._ambientColor,this._globalAmbientColor);var ce=o._forcedViewPosition?o._forcedViewPosition:o._mirroredCameraPosition?o._mirroredCameraPosition:o.activeCamera.globalPosition,ue=o.useRightHandedSystem===(o._mirroredCameraPosition!=null);s.setFloat4("vEyePosition",ce.x,ce.y,ce.z,ue?-1:1),s.setColor3("vAmbientColor",this._globalAmbientColor),s.setFloat2("vDebugMode",this.debugLimit,this.debugFactor)}!d&&this.isFrozen||(o.lightsEnabled&&!this._disableLighting&&et.a.BindLights(o,n,this._activeEffect,a,this._maxSimultaneousLights,this._rebuildInParallel),(o.fogEnabled&&n.applyFog&&o.fogMode!==_e.a.FOGMODE_NONE||p)&&this.bindView(s),et.a.BindFogParameters(o,n,this._activeEffect,!0),a.NUM_MORPH_INFLUENCERS&&et.a.BindMorphTargetParameters(n,this._activeEffect),this._imageProcessingConfiguration.bind(this._activeEffect),et.a.BindLogDepth(a,this._activeEffect,o)),b.update(),this._afterBind(n,this._activeEffect)}}},t.prototype.getAnimatables=function(){var e=[];return this._albedoTexture&&this._albedoTexture.animations&&this._albedoTexture.animations.length>0&&e.push(this._albedoTexture),this._ambientTexture&&this._ambientTexture.animations&&this._ambientTexture.animations.length>0&&e.push(this._ambientTexture),this._opacityTexture&&this._opacityTexture.animations&&this._opacityTexture.animations.length>0&&e.push(this._opacityTexture),this._reflectionTexture&&this._reflectionTexture.animations&&this._reflectionTexture.animations.length>0&&e.push(this._reflectionTexture),this._emissiveTexture&&this._emissiveTexture.animations&&this._emissiveTexture.animations.length>0&&e.push(this._emissiveTexture),this._metallicTexture&&this._metallicTexture.animations&&this._metallicTexture.animations.length>0?e.push(this._metallicTexture):this._reflectivityTexture&&this._reflectivityTexture.animations&&this._reflectivityTexture.animations.length>0&&e.push(this._reflectivityTexture),this._bumpTexture&&this._bumpTexture.animations&&this._bumpTexture.animations.length>0&&e.push(this._bumpTexture),this._lightmapTexture&&this._lightmapTexture.animations&&this._lightmapTexture.animations.length>0&&e.push(this._lightmapTexture),this.detailMap.getAnimatables(e),this.subSurface.getAnimatables(e),this.clearCoat.getAnimatables(e),this.sheen.getAnimatables(e),this.anisotropy.getAnimatables(e),e},t.prototype._getReflectionTexture=function(){return this._reflectionTexture?this._reflectionTexture:this.getScene().environmentTexture},t.prototype.getActiveTextures=function(){var e=r.prototype.getActiveTextures.call(this);return this._albedoTexture&&e.push(this._albedoTexture),this._ambientTexture&&e.push(this._ambientTexture),this._opacityTexture&&e.push(this._opacityTexture),this._reflectionTexture&&e.push(this._reflectionTexture),this._emissiveTexture&&e.push(this._emissiveTexture),this._reflectivityTexture&&e.push(this._reflectivityTexture),this._metallicTexture&&e.push(this._metallicTexture),this._metallicReflectanceTexture&&e.push(this._metallicReflectanceTexture),this._microSurfaceTexture&&e.push(this._microSurfaceTexture),this._bumpTexture&&e.push(this._bumpTexture),this._lightmapTexture&&e.push(this._lightmapTexture),this.detailMap.getActiveTextures(e),this.subSurface.getActiveTextures(e),this.clearCoat.getActiveTextures(e),this.sheen.getActiveTextures(e),this.anisotropy.getActiveTextures(e),e},t.prototype.hasTexture=function(e){return!!r.prototype.hasTexture.call(this,e)||this._albedoTexture===e||this._ambientTexture===e||this._opacityTexture===e||this._reflectionTexture===e||this._reflectivityTexture===e||this._metallicTexture===e||this._metallicReflectanceTexture===e||this._microSurfaceTexture===e||this._bumpTexture===e||this._lightmapTexture===e||this.detailMap.hasTexture(e)||this.subSurface.hasTexture(e)||this.clearCoat.hasTexture(e)||this.sheen.hasTexture(e)||this.anisotropy.hasTexture(e)},t.prototype.setPrePassRenderer=function(e){if(this.subSurface.isScatteringEnabled){var n=this.getScene().enableSubSurfaceForPrePass();return n&&(n.enabled=!0),!0}return!1},t.prototype.dispose=function(e,n){var i,o,a,s,d,p,b,x,O,B,F;n&&(this._environmentBRDFTexture&&this.getScene().environmentBRDFTexture!==this._environmentBRDFTexture&&this._environmentBRDFTexture.dispose(),(i=this._albedoTexture)===null||i===void 0||i.dispose(),(o=this._ambientTexture)===null||o===void 0||o.dispose(),(a=this._opacityTexture)===null||a===void 0||a.dispose(),(s=this._reflectionTexture)===null||s===void 0||s.dispose(),(d=this._emissiveTexture)===null||d===void 0||d.dispose(),(p=this._metallicTexture)===null||p===void 0||p.dispose(),(b=this._reflectivityTexture)===null||b===void 0||b.dispose(),(x=this._bumpTexture)===null||x===void 0||x.dispose(),(O=this._lightmapTexture)===null||O===void 0||O.dispose(),(B=this._metallicReflectanceTexture)===null||B===void 0||B.dispose(),(F=this._microSurfaceTexture)===null||F===void 0||F.dispose()),this.detailMap.dispose(n),this.subSurface.dispose(n),this.clearCoat.dispose(n),this.sheen.dispose(n),this.anisotropy.dispose(n),this._renderTargets.dispose(),this._imageProcessingConfiguration&&this._imageProcessingObserver&&this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),r.prototype.dispose.call(this,e,n)},t.PBRMATERIAL_OPAQUE=Ht.a.MATERIAL_OPAQUE,t.PBRMATERIAL_ALPHATEST=Ht.a.MATERIAL_ALPHATEST,t.PBRMATERIAL_ALPHABLEND=Ht.a.MATERIAL_ALPHABLEND,t.PBRMATERIAL_ALPHATESTANDBLEND=Ht.a.MATERIAL_ALPHATESTANDBLEND,t.DEFAULT_AO_ON_ANALYTICAL_LIGHTS=0,t.LIGHTFALLOFF_PHYSICAL=0,t.LIGHTFALLOFF_GLTF=1,t.LIGHTFALLOFF_STANDARD=2,Object(c.c)([Object(L.i)()],t.prototype,"_imageProcessingConfiguration",void 0),Object(c.c)([Object(L.b)("_markAllSubMeshesAsMiscDirty")],t.prototype,"debugMode",void 0),Object(c.c)([Object(L.c)()],t.prototype,"useLogarithmicDepth",null),t}(ea.a),co=function(r){function t(e,n){var i=r.call(this,e,n)||this;return i.directIntensity=1,i.emissiveIntensity=1,i.environmentIntensity=1,i.specularIntensity=1,i.disableBumpMap=!1,i.ambientTextureStrength=1,i.ambientTextureImpactOnAnalyticalLights=t.DEFAULT_AO_ON_ANALYTICAL_LIGHTS,i.metallicF0Factor=1,i.metallicReflectanceColor=M.a.White(),i.ambientColor=new M.a(0,0,0),i.albedoColor=new M.a(1,1,1),i.reflectivityColor=new M.a(1,1,1),i.reflectionColor=new M.a(1,1,1),i.emissiveColor=new M.a(0,0,0),i.microSurface=1,i.useLightmapAsShadowmap=!1,i.useAlphaFromAlbedoTexture=!1,i.forceAlphaTest=!1,i.alphaCutOff=.4,i.useSpecularOverAlpha=!0,i.useMicroSurfaceFromReflectivityMapAlpha=!1,i.useRoughnessFromMetallicTextureAlpha=!0,i.useRoughnessFromMetallicTextureGreen=!1,i.useMetallnessFromMetallicTextureBlue=!1,i.useAmbientOcclusionFromMetallicTextureRed=!1,i.useAmbientInGrayScale=!1,i.useAutoMicroSurfaceFromReflectivityMap=!1,i.useRadianceOverAlpha=!0,i.useObjectSpaceNormalMap=!1,i.useParallax=!1,i.useParallaxOcclusion=!1,i.parallaxScaleBias=.05,i.disableLighting=!1,i.forceIrradianceInFragment=!1,i.maxSimultaneousLights=4,i.invertNormalMapX=!1,i.invertNormalMapY=!1,i.twoSidedLighting=!1,i.useAlphaFresnel=!1,i.useLinearAlphaFresnel=!1,i.environmentBRDFTexture=null,i.forceNormalForward=!1,i.enableSpecularAntiAliasing=!1,i.useHorizonOcclusion=!0,i.useRadianceOcclusion=!0,i.unlit=!1,i._environmentBRDFTexture=ta.GetEnvironmentBRDFTexture(n),i}return Object(c.d)(t,r),Object.defineProperty(t.prototype,"refractionTexture",{get:function(){return this.subSurface.refractionTexture},set:function(e){this.subSurface.refractionTexture=e,e?this.subSurface.isRefractionEnabled=!0:this.subSurface.linkRefractionWithTransparency||(this.subSurface.isRefractionEnabled=!1)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"indexOfRefraction",{get:function(){return this.subSurface.indexOfRefraction},set:function(e){this.subSurface.indexOfRefraction=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"invertRefractionY",{get:function(){return this.subSurface.invertRefractionY},set:function(e){this.subSurface.invertRefractionY=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"linkRefractionWithTransparency",{get:function(){return this.subSurface.linkRefractionWithTransparency},set:function(e){this.subSurface.linkRefractionWithTransparency=e,e&&(this.subSurface.isRefractionEnabled=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"usePhysicalLightFalloff",{get:function(){return this._lightFalloff===pn.LIGHTFALLOFF_PHYSICAL},set:function(e){e!==this.usePhysicalLightFalloff&&(this._markAllSubMeshesAsTexturesDirty(),this._lightFalloff=e?pn.LIGHTFALLOFF_PHYSICAL:pn.LIGHTFALLOFF_STANDARD)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"useGLTFLightFalloff",{get:function(){return this._lightFalloff===pn.LIGHTFALLOFF_GLTF},set:function(e){e!==this.useGLTFLightFalloff&&(this._markAllSubMeshesAsTexturesDirty(),this._lightFalloff=e?pn.LIGHTFALLOFF_GLTF:pn.LIGHTFALLOFF_STANDARD)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"imageProcessingConfiguration",{get:function(){return this._imageProcessingConfiguration},set:function(e){this._attachImageProcessingConfiguration(e),this._markAllSubMeshesAsTexturesDirty()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"cameraColorCurvesEnabled",{get:function(){return this.imageProcessingConfiguration.colorCurvesEnabled},set:function(e){this.imageProcessingConfiguration.colorCurvesEnabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"cameraColorGradingEnabled",{get:function(){return this.imageProcessingConfiguration.colorGradingEnabled},set:function(e){this.imageProcessingConfiguration.colorGradingEnabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"cameraToneMappingEnabled",{get:function(){return this._imageProcessingConfiguration.toneMappingEnabled},set:function(e){this._imageProcessingConfiguration.toneMappingEnabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"cameraExposure",{get:function(){return this._imageProcessingConfiguration.exposure},set:function(e){this._imageProcessingConfiguration.exposure=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"cameraContrast",{get:function(){return this._imageProcessingConfiguration.contrast},set:function(e){this._imageProcessingConfiguration.contrast=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"cameraColorGradingTexture",{get:function(){return this._imageProcessingConfiguration.colorGradingTexture},set:function(e){this._imageProcessingConfiguration.colorGradingTexture=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"cameraColorCurves",{get:function(){return this._imageProcessingConfiguration.colorCurves},set:function(e){this._imageProcessingConfiguration.colorCurves=e},enumerable:!1,configurable:!0}),t.prototype.getClassName=function(){return"PBRMaterial"},t.prototype.clone=function(e){var n=this,i=L.a.Clone(function(){return new t(e,n.getScene())},this);return i.id=e,i.name=e,this.clearCoat.copyTo(i.clearCoat),this.anisotropy.copyTo(i.anisotropy),this.brdf.copyTo(i.brdf),this.sheen.copyTo(i.sheen),this.subSurface.copyTo(i.subSurface),i},t.prototype.serialize=function(){var e=L.a.Serialize(this);return e.customType="BABYLON.PBRMaterial",e.clearCoat=this.clearCoat.serialize(),e.anisotropy=this.anisotropy.serialize(),e.brdf=this.brdf.serialize(),e.sheen=this.sheen.serialize(),e.subSurface=this.subSurface.serialize(),e},t.Parse=function(e,n,i){var o=L.a.Parse(function(){return new t(e.name,n)},e,n,i);return e.clearCoat&&o.clearCoat.parse(e.clearCoat,n,i),e.anisotropy&&o.anisotropy.parse(e.anisotropy,n,i),e.brdf&&o.brdf.parse(e.brdf,n,i),e.sheen&&o.sheen.parse(e.sheen,n,i),e.subSurface&&o.subSurface.parse(e.subSurface,n,i),o},t.PBRMATERIAL_OPAQUE=pn.PBRMATERIAL_OPAQUE,t.PBRMATERIAL_ALPHATEST=pn.PBRMATERIAL_ALPHATEST,t.PBRMATERIAL_ALPHABLEND=pn.PBRMATERIAL_ALPHABLEND,t.PBRMATERIAL_ALPHATESTANDBLEND=pn.PBRMATERIAL_ALPHATESTANDBLEND,t.DEFAULT_AO_ON_ANALYTICAL_LIGHTS=pn.DEFAULT_AO_ON_ANALYTICAL_LIGHTS,Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"directIntensity",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"emissiveIntensity",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"environmentIntensity",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"specularIntensity",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"disableBumpMap",void 0),Object(c.c)([Object(L.m)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"albedoTexture",void 0),Object(c.c)([Object(L.m)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"ambientTexture",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"ambientTextureStrength",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"ambientTextureImpactOnAnalyticalLights",void 0),Object(c.c)([Object(L.m)(),Object(L.b)("_markAllSubMeshesAsTexturesAndMiscDirty")],t.prototype,"opacityTexture",void 0),Object(c.c)([Object(L.m)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"reflectionTexture",void 0),Object(c.c)([Object(L.m)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"emissiveTexture",void 0),Object(c.c)([Object(L.m)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"reflectivityTexture",void 0),Object(c.c)([Object(L.m)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"metallicTexture",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"metallic",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"roughness",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"metallicF0Factor",void 0),Object(c.c)([Object(L.e)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"metallicReflectanceColor",void 0),Object(c.c)([Object(L.m)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"metallicReflectanceTexture",void 0),Object(c.c)([Object(L.m)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"microSurfaceTexture",void 0),Object(c.c)([Object(L.m)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"bumpTexture",void 0),Object(c.c)([Object(L.m)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty",null)],t.prototype,"lightmapTexture",void 0),Object(c.c)([Object(L.e)("ambient"),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"ambientColor",void 0),Object(c.c)([Object(L.e)("albedo"),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"albedoColor",void 0),Object(c.c)([Object(L.e)("reflectivity"),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"reflectivityColor",void 0),Object(c.c)([Object(L.e)("reflection"),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"reflectionColor",void 0),Object(c.c)([Object(L.e)("emissive"),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"emissiveColor",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"microSurface",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useLightmapAsShadowmap",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesAndMiscDirty")],t.prototype,"useAlphaFromAlbedoTexture",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesAndMiscDirty")],t.prototype,"forceAlphaTest",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesAndMiscDirty")],t.prototype,"alphaCutOff",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useSpecularOverAlpha",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useMicroSurfaceFromReflectivityMapAlpha",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useRoughnessFromMetallicTextureAlpha",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useRoughnessFromMetallicTextureGreen",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useMetallnessFromMetallicTextureBlue",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useAmbientOcclusionFromMetallicTextureRed",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useAmbientInGrayScale",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useAutoMicroSurfaceFromReflectivityMap",void 0),Object(c.c)([Object(L.c)()],t.prototype,"usePhysicalLightFalloff",null),Object(c.c)([Object(L.c)()],t.prototype,"useGLTFLightFalloff",null),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useRadianceOverAlpha",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useObjectSpaceNormalMap",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useParallax",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useParallaxOcclusion",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"parallaxScaleBias",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsLightsDirty")],t.prototype,"disableLighting",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"forceIrradianceInFragment",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsLightsDirty")],t.prototype,"maxSimultaneousLights",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"invertNormalMapX",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"invertNormalMapY",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"twoSidedLighting",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useAlphaFresnel",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useLinearAlphaFresnel",void 0),Object(c.c)([Object(L.m)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"environmentBRDFTexture",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"forceNormalForward",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"enableSpecularAntiAliasing",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useHorizonOcclusion",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsTexturesDirty")],t.prototype,"useRadianceOcclusion",void 0),Object(c.c)([Object(L.c)(),Object(L.b)("_markAllSubMeshesAsMiscDirty")],t.prototype,"unlit",void 0),t}(pn);C.a.RegisteredTypes["BABYLON.PBRMaterial"]=co;function ia(r){return r.charCodeAt(0)+(r.charCodeAt(1)<<8)+(r.charCodeAt(2)<<16)+(r.charCodeAt(3)<<24)}var gu=ia("DXT1"),vu=ia("DXT3"),bu=ia("DXT5"),Fs=ia("DX10"),ki=function(){function r(){}return r.GetDDSInfo=function(t){var e=new Int32Array(t.buffer,t.byteOffset,31),n=new Int32Array(t.buffer,t.byteOffset,35),i=1;131072&e[2]&&(i=Math.max(1,e[7]));var o=e[21],a=o===Fs?n[32]:0,s=h.a.TEXTURETYPE_UNSIGNED_INT;switch(o){case 113:s=h.a.TEXTURETYPE_HALF_FLOAT;break;case 116:s=h.a.TEXTURETYPE_FLOAT;break;case Fs:if(a===10){s=h.a.TEXTURETYPE_HALF_FLOAT;break}if(a===2){s=h.a.TEXTURETYPE_FLOAT;break}}return{width:e[4],height:e[3],mipmapCount:i,isFourCC:(4&e[20])==4,isRGB:(64&e[20])==64,isLuminance:(131072&e[20])==131072,isCube:(512&e[28])==512,isCompressed:o===gu||o===vu||o===bu,dxgiFormat:a,textureType:s}},r._ToHalfFloat=function(t){r._FloatView||(r._FloatView=new Float32Array(1),r._Int32View=new Int32Array(r._FloatView.buffer)),r._FloatView[0]=t;var e=r._Int32View[0],n=e>>16&32768,i=e>>12&2047,o=e>>23&255;return o<103?n:o>142?(n|=31744,n|=(o==255?0:1)&&8388607&e):o<113?n|=((i|=2048)>>114-o)+(i>>113-o&1):(n|=o-112<<10|i>>1,n+=1&i)},r._FromHalfFloat=function(t){var e=(32768&t)>>15,n=(31744&t)>>10,i=1023&t;return n===0?(e?-1:1)*Math.pow(2,-14)*(i/Math.pow(2,10)):n==31?i?NaN:1/0*(e?-1:1):(e?-1:1)*Math.pow(2,n-15)*(1+i/Math.pow(2,10))},r._GetHalfFloatAsFloatRGBAArrayBuffer=function(t,e,n,i,o,a){for(var s=new Float32Array(i),d=new Uint16Array(o,n),p=0,b=0;b>8)},r._GetRGBArrayBuffer=function(t,e,n,i,o,a,s,d){for(var p=new Uint8Array(i),b=new Uint8Array(o,n),x=0,O=0;O>8&255,Te>>16&255,Te>>24&255)))}var Ee=r._ExtractLongWordOrder(se[23]),Se=r._ExtractLongWordOrder(se[24]),Le=r._ExtractLongWordOrder(se[25]),xe=r._ExtractLongWordOrder(se[26]);Re&&(ue=t._getRGBABufferInternalSizedFormat(i.textureType)),z=1,131072&se[2]&&o!==!1&&(z=Math.max(1,se[7]));for(var Ne=d||0;Ne0?i.sphericalPolynomial=Ho.ConvertCubeMapToSphericalPolynomial({size:se[4],right:p[0],left:p[1],up:p[2],down:p[3],front:p[4],back:p[5],format:h.a.TEXTUREFORMAT_RGBA,type:h.a.TEXTURETYPE_FLOAT,gammaSpace:!1}):i.sphericalPolynomial=void 0}else l.a.Error("Compressed textures are not supported on this platform.");else l.a.Error("Unsupported format, must contain a FourCC, RGB or LUMINANCE code");else l.a.Error("Invalid magic number in DDS header")},r.StoreLODInAlphaChannel=!1,r}();Bt.a.prototype.createPrefilteredCubeTexture=function(r,t,e,n,i,o,a,s,d){var p=this;return i===void 0&&(i=null),o===void 0&&(o=null),s===void 0&&(s=null),d===void 0&&(d=!0),this.createCubeTexture(r,t,null,!1,function(b){if(b){var x=b.texture;if(d?b.info.sphericalPolynomial&&(x._sphericalPolynomial=b.info.sphericalPolynomial):x._sphericalPolynomial=new no,x._source=Ct.b.CubePrefiltered,p.getCaps().textureLOD)i&&i(x);else{var O=p._gl,B=b.width;if(B){for(var F=[],z=0;z<3;z++){var J=1-z/2,ie=n,se=$.a.Log2(B)*e+n,ce=ie+(se-ie)*J,ue=Math.round(Math.min(Math.max(ce,0),se)),fe=new Ct.a(p,Ct.b.Temp);if(fe.type=x.type,fe.format=x.format,fe.width=Math.pow(2,Math.max($.a.Log2(B)-ue,0)),fe.height=fe.width,fe.isCube=!0,p._bindTextureDirectly(O.TEXTURE_CUBE_MAP,fe,!0),fe.samplingMode=h.a.TEXTURE_LINEAR_LINEAR,O.texParameteri(O.TEXTURE_CUBE_MAP,O.TEXTURE_MAG_FILTER,O.LINEAR),O.texParameteri(O.TEXTURE_CUBE_MAP,O.TEXTURE_MIN_FILTER,O.LINEAR),O.texParameteri(O.TEXTURE_CUBE_MAP,O.TEXTURE_WRAP_S,O.CLAMP_TO_EDGE),O.texParameteri(O.TEXTURE_CUBE_MAP,O.TEXTURE_WRAP_T,O.CLAMP_TO_EDGE),b.isDDS){var ve=b.info,Te=b.data;p._unpackFlipY(ve.isCompressed),ki.UploadDDSLevels(p,fe,Te,ve,!0,6,ue)}else l.a.Warn("DDS is the only prefiltered cube map supported so far.");p._bindTextureDirectly(O.TEXTURE_CUBE_MAP,null);var Re=new Wn.a(t);Re.isCube=!0,Re._texture=fe,fe.isReady=!0,F.push(Re)}x._lodTextureHigh=F[2],x._lodTextureMid=F[1],x._lodTextureLow=F[0],i&&i(x)}}}else i&&i(null)},o,a,s,d,e,n)};var yu=function(){function r(){this.supportCascades=!0}return r.prototype.canLoad=function(t){return Qn.a.EndsWith(t,".dds")},r.prototype.loadCubeData=function(t,e,n,i,o){var a,s=e.getEngine(),d=!1;if(Array.isArray(t))for(var p=0;p1)&&e.generateMipMaps,s._unpackFlipY(a.isCompressed),ki.UploadDDSLevels(s,e,b,a,d,6,-1,p),a.isFourCC||a.mipmapCount!==1||s.generateMipMapsForCubemap(e)}else{var x=t;a=ki.GetDDSInfo(x),e.width=a.width,e.height=a.height,n&&(a.sphericalPolynomial=new no),d=(a.isRGB||a.isLuminance||a.mipmapCount>1)&&e.generateMipMaps,s._unpackFlipY(a.isCompressed),ki.UploadDDSLevels(s,e,x,a,d,6),a.isFourCC||a.mipmapCount!==1||s.generateMipMapsForCubemap(e,!1)}s._setCubeMapTextureParams(e,d),e.isReady=!0,e.onLoadedObservable.notifyObservers(e),e.onLoadedObservable.clear(),i&&i({isDDS:!0,width:e.width,info:a,data:t,texture:e})},r.prototype.loadData=function(t,e,n){var i=ki.GetDDSInfo(t),o=(i.isRGB||i.isLuminance||i.mipmapCount>1)&&e.generateMipMaps&&i.width>>i.mipmapCount-1==1;n(i.width,i.height,o,i.isFourCC,function(){ki.UploadDDSLevels(e.getEngine(),e,t,i,o,1)})},r}();Ue.a._TextureLoaders.push(new yu);var Tu=function(){function r(){this.supportCascades=!1}return r.prototype.canLoad=function(t){return Qn.a.EndsWith(t,".env")},r.prototype.loadCubeData=function(t,e,n,i,o){if(!Array.isArray(t)){var a=Ei.GetEnvInfo(t);a?(e.width=a.width,e.height=a.width,Ei.UploadEnvSpherical(e,a),Ei.UploadEnvLevelsAsync(e,t,a).then(function(){e.isReady=!0,e.onLoadedObservable.notifyObservers(e),e.onLoadedObservable.clear(),i&&i()})):o&&o("Can not parse the environment file",null)}},r.prototype.loadData=function(t,e,n){throw".env not supported in 2d."},r}();Ue.a._TextureLoaders.push(new Tu);var ra=function(){function r(t,e,n,i){if(this.data=t,this.isInvalid=!1,!r.IsValid(t))return this.isInvalid=!0,void l.a.Error("texture missing KTX identifier");var o=Uint32Array.BYTES_PER_ELEMENT,a=new DataView(this.data.buffer,this.data.byteOffset+12,13*o),s=a.getUint32(0,!0)===67305985;this.glType=a.getUint32(1*o,s),this.glTypeSize=a.getUint32(2*o,s),this.glFormat=a.getUint32(3*o,s),this.glInternalFormat=a.getUint32(4*o,s),this.glBaseInternalFormat=a.getUint32(5*o,s),this.pixelWidth=a.getUint32(6*o,s),this.pixelHeight=a.getUint32(7*o,s),this.pixelDepth=a.getUint32(8*o,s),this.numberOfArrayElements=a.getUint32(9*o,s),this.numberOfFaces=a.getUint32(10*o,s),this.numberOfMipmapLevels=a.getUint32(11*o,s),this.bytesOfKeyValueData=a.getUint32(12*o,s),this.glType===0?(this.numberOfMipmapLevels=Math.max(1,this.numberOfMipmapLevels),this.pixelHeight!==0&&this.pixelDepth===0?this.numberOfArrayElements===0?this.numberOfFaces===e?this.loadType=r.COMPRESSED_2D:l.a.Error("number of faces expected"+e+", but found "+this.numberOfFaces):l.a.Error("texture arrays not currently supported"):l.a.Error("only 2D textures currently supported")):l.a.Error("only compressed formats currently supported")}return r.prototype.uploadLevels=function(t,e){switch(this.loadType){case r.COMPRESSED_2D:this._upload2DCompressedLevels(t,e);break}},r.prototype._upload2DCompressedLevels=function(t,e){for(var n=r.HEADER_LEN+this.bytesOfKeyValueData,i=this.pixelWidth,o=this.pixelHeight,a=e?this.numberOfMipmapLevels:1,s=0;s=12){var e=new Uint8Array(t.buffer,t.byteOffset,12);if(e[0]===171&&e[1]===75&&e[2]===84&&e[3]===88&&e[4]===32&&e[5]===49&&e[6]===49&&e[7]===187&&e[8]===13&&e[9]===10&&e[10]===26&&e[11]===10)return!0}return!1},r.HEADER_LEN=64,r.COMPRESSED_2D=0,r.COMPRESSED_3D=1,r.TEX_2D=2,r.TEX_3D=3,r}(),Bs=function(){function r(t){this._pendingActions=new Array,this._workerInfos=t.map(function(e){return{worker:e,active:!1}})}return r.prototype.dispose=function(){for(var t=0,e=this._workerInfos;t1,e.isReady=!0,this._engine._bindTextureDirectly(this._engine._gl.TEXTURE_2D,null)},r.IsValid=function(t){if(t.byteLength>=12){var e=new Uint8Array(t.buffer,t.byteOffset,12);if(e[0]===171&&e[1]===75&&e[2]===84&&e[3]===88&&e[4]===32&&e[5]===50&&e[6]===48&&e[7]===187&&e[8]===13&&e[9]===10&&e[10]===26&&e[11]===10)return!0}return!1},r.URLConfig={jsDecoderModule:"https://preview.babylonjs.com/babylon.ktx2Decoder.js",wasmUASTCToASTC:null,wasmUASTCToBC7:null,wasmUASTCToRGBA_UNORM:null,wasmUASTCToRGBA_SRGB:null,jsMSCTranscoder:null,wasmMSCTranscoder:null},r.DefaultNumWorkers=r.GetDefaultNumWorkers(),r}();function h_(){var r;onmessage=function(t){switch(t.data.action){case"init":var e=t.data.urls;importScripts(e.jsDecoderModule),e.wasmUASTCToASTC!==null&&(KTX2DECODER.LiteTranscoder_UASTC_ASTC.WasmModuleURL=e.wasmUASTCToASTC),e.wasmUASTCToBC7!==null&&(KTX2DECODER.LiteTranscoder_UASTC_BC7.WasmModuleURL=e.wasmUASTCToBC7),e.wasmUASTCToRGBA_UNORM!==null&&(KTX2DECODER.LiteTranscoder_UASTC_RGBA_UNORM.WasmModuleURL=e.wasmUASTCToRGBA_UNORM),e.wasmUASTCToRGBA_SRGB!==null&&(KTX2DECODER.LiteTranscoder_UASTC_RGBA_SRGB.WasmModuleURL=e.wasmUASTCToRGBA_SRGB),e.jsMSCTranscoder!==null&&(KTX2DECODER.MSCTranscoder.JSModuleURL=e.jsMSCTranscoder),e.wasmMSCTranscoder!==null&&(KTX2DECODER.MSCTranscoder.WasmModuleURL=e.wasmMSCTranscoder),r=new KTX2DECODER.KTX2Decoder,postMessage({action:"init"});break;case"decode":r.decode(t.data.data,t.data.caps,t.data.options).then(function(n){for(var i=[],o=0;o1&&e.generateMipMaps;a._unpackFlipY(!0),s.uploadLevels(e,e.generateMipMaps),e.width=s.pixelWidth,e.height=s.pixelHeight,a._setCubeMapTextureParams(e,d),e.isReady=!0,e.onLoadedObservable.notifyObservers(e),e.onLoadedObservable.clear(),i&&i()}},r.prototype.loadData=function(t,e,n,i){if(ra.IsValid(t)){e._invertVScale=!e.invertY;var o=new ra(t,1);n(o.pixelWidth,o.pixelHeight,e.generateMipMaps,!0,function(){o.uploadLevels(e,e.generateMipMaps)},o.isInvalid)}else Us.IsValid(t)?new Us(e.getEngine()).uploadAsync(t,e,i).then(function(){n(e.width,e.height,e.generateMipMaps,!0,function(){},!1)},function(a){l.a.Warn("Failed to load KTX2 texture data: "+a.message),n(0,0,!1,!1,function(){},!0)}):(l.a.Error("texture missing KTX identifier"),n(0,0,!1,!1,function(){},!0))},r}();Ue.a._TextureLoaders.unshift(new Eu);var Su=function(r){function t(e,n,i){var o=r.call(this,e,u.e.Zero(),n)||this;return o._xrSessionManager=i,o._firstFrame=!1,o._referenceQuaternion=u.b.Identity(),o._referencedPosition=new u.e,o._xrInvPositionCache=new u.e,o._xrInvQuaternionCache=u.b.Identity(),o._trackingState=er.NOT_TRACKING,o.onBeforeCameraTeleport=new R.c,o.onAfterCameraTeleport=new R.c,o.onTrackingStateChanged=new R.c,o.compensateOnFirstFrame=!0,o._rotate180=new u.b(0,1,0,0),o.minZ=.1,o.rotationQuaternion=new u.b,o.cameraRigMode=gt.a.RIG_MODE_CUSTOM,o.updateUpVectorFromRotation=!0,o._updateNumberOfRigCameras(1),o.freezeProjectionMatrix(),o._xrSessionManager.onXRSessionInit.add(function(){o._referencedPosition.copyFromFloats(0,0,0),o._referenceQuaternion.copyFromFloats(0,0,0,1),o._firstFrame=o.compensateOnFirstFrame}),o._xrSessionManager.onXRFrameObservable.add(function(a){o._firstFrame&&o._updateFromXRSession(),o._updateReferenceSpace(),o._updateFromXRSession()},void 0,!0),o}return Object(c.d)(t,r),Object.defineProperty(t.prototype,"trackingState",{get:function(){return this._trackingState},enumerable:!1,configurable:!0}),t.prototype._setTrackingState=function(e){this._trackingState!==e&&(this._trackingState=e,this.onTrackingStateChanged.notifyObservers(e))},Object.defineProperty(t.prototype,"realWorldHeight",{get:function(){var e=this._xrSessionManager.currentFrame&&this._xrSessionManager.currentFrame.getViewerPose(this._xrSessionManager.baseReferenceSpace);return e&&e.transform?e.transform.position.y:0},enumerable:!1,configurable:!0}),t.prototype._updateForDualEyeDebugging=function(){this._updateNumberOfRigCameras(2),this.rigCameras[0].viewport=new Kn.a(0,0,.5,1),this.rigCameras[0].outputRenderTarget=null,this.rigCameras[1].viewport=new Kn.a(.5,0,.5,1),this.rigCameras[1].outputRenderTarget=null},t.prototype.setTransformationFromNonVRCamera=function(e,n){e===void 0&&(e=this.getScene().activeCamera),n===void 0&&(n=!0),e&&e!==this&&(e.computeWorldMatrix().decompose(void 0,this.rotationQuaternion,this.position),this.position.y=0,u.b.FromEulerAnglesToRef(0,this.rotationQuaternion.toEulerAngles().y,0,this.rotationQuaternion),this._firstFrame=!0,n&&this._xrSessionManager.resetReferenceSpace())},t.prototype.getClassName=function(){return"WebXRCamera"},t.prototype._updateFromXRSession=function(){var e=this,n=this._xrSessionManager.currentFrame&&this._xrSessionManager.currentFrame.getViewerPose(this._xrSessionManager.referenceSpace);if(n){var i=n.emulatedPosition?er.TRACKING_LOST:er.TRACKING;if(this._setTrackingState(i),n.transform){var o=n.transform.position;this._referencedPosition.set(o.x,o.y,o.z);var a=n.transform.orientation;this._referenceQuaternion.set(a.x,a.y,a.z,a.w),this._scene.useRightHandedSystem||(this._referencedPosition.z*=-1,this._referenceQuaternion.z*=-1,this._referenceQuaternion.w*=-1),this._firstFrame?(this._firstFrame=!1,this.position.y+=this._referencedPosition.y,this._referenceQuaternion.copyFromFloats(0,0,0,1)):(this.rotationQuaternion.copyFrom(this._referenceQuaternion),this.position.copyFrom(this._referencedPosition))}this.rigCameras.length!==n.views.length&&this._updateNumberOfRigCameras(n.views.length),n.views.forEach(function(s,d){var p=e.rigCameras[d];p.isLeftCamera||p.isRightCamera||(s.eye==="right"?p._isRightCamera=!0:s.eye==="left"&&(p._isLeftCamera=!0));var b=s.transform.position,x=s.transform.orientation;if(p.position.set(b.x,b.y,b.z),p.rotationQuaternion.set(x.x,x.y,x.z,x.w),e._scene.useRightHandedSystem?p.rotationQuaternion.multiplyInPlace(e._rotate180):(p.position.z*=-1,p.rotationQuaternion.z*=-1,p.rotationQuaternion.w*=-1),u.a.FromFloat32ArrayToRefScaled(s.projectionMatrix,0,1,p._projectionMatrix),e._scene.useRightHandedSystem||p._projectionMatrix.toggleProjectionMatrixHandInPlace(),d===0&&e._projectionMatrix.copyFrom(p._projectionMatrix),e._xrSessionManager.session.renderState.baseLayer){var O=e._xrSessionManager.session.renderState.baseLayer.getViewport(s),B=e._xrSessionManager.session.renderState.baseLayer.framebufferWidth,F=e._xrSessionManager.session.renderState.baseLayer.framebufferHeight;p.viewport.width=O.width/B,p.viewport.height=O.height/F,p.viewport.x=O.x/B,p.viewport.y=O.y/F}p.outputRenderTarget=e._xrSessionManager.getRenderTargetTextureForEye(s.eye)})}else this._setTrackingState(er.NOT_TRACKING)},t.prototype._updateNumberOfRigCameras=function(e){for(e===void 0&&(e=1);this.rigCameras.lengthe;){var i=this.rigCameras.pop();i&&i.dispose()}},t.prototype._updateReferenceSpace=function(){this.position.equals(this._referencedPosition)&&this.rotationQuaternion.equals(this._referenceQuaternion)||(this.position.subtractToRef(this._referencedPosition,this._referencedPosition),this._referenceQuaternion.conjugateInPlace(),this._referenceQuaternion.multiplyToRef(this.rotationQuaternion,this._referenceQuaternion),this._updateReferenceSpaceOffset(this._referencedPosition,this._referenceQuaternion.normalize()))},t.prototype._updateReferenceSpaceOffset=function(e,n,i){if(i===void 0&&(i=!1),this._xrSessionManager.referenceSpace&&this._xrSessionManager.currentFrame){this._xrInvPositionCache.copyFrom(e),n?this._xrInvQuaternionCache.copyFrom(n):this._xrInvQuaternionCache.copyFromFloats(0,0,0,1),this._scene.useRightHandedSystem||(this._xrInvPositionCache.z*=-1,this._xrInvQuaternionCache.z*=-1,this._xrInvQuaternionCache.w*=-1),this._xrInvPositionCache.negateInPlace(),this._xrInvQuaternionCache.conjugateInPlace(),this._xrInvPositionCache.rotateByQuaternionToRef(this._xrInvQuaternionCache,this._xrInvPositionCache),i&&(this._xrInvPositionCache.y=0);var o=new XRRigidTransform({x:this._xrInvPositionCache.x,y:this._xrInvPositionCache.y,z:this._xrInvPositionCache.z},{x:this._xrInvQuaternionCache.x,y:this._xrInvQuaternionCache.y,z:this._xrInvQuaternionCache.z,w:this._xrInvQuaternionCache.w}),a=this._xrSessionManager.referenceSpace.getOffsetReferenceSpace(o),s=this._xrSessionManager.currentFrame&&this._xrSessionManager.currentFrame.getViewerPose(a);if(s){var d=new u.e(s.transform.position.x,s.transform.position.y,s.transform.position.z);this._scene.useRightHandedSystem||(d.z*=-1),this.position.subtractToRef(d,d),this._scene.useRightHandedSystem||(d.z*=-1),d.negateInPlace();var p=new XRRigidTransform({x:d.x,y:d.y,z:d.z});this._xrSessionManager.referenceSpace=a.getOffsetReferenceSpace(p)}}},t}(Yn),ai=function(){function r(){}return r.ANCHOR_SYSTEM="xr-anchor-system",r.BACKGROUND_REMOVER="xr-background-remover",r.HIT_TEST="xr-hit-test",r.PHYSICS_CONTROLLERS="xr-physics-controller",r.PLANE_DETECTION="xr-plane-detection",r.POINTER_SELECTION="xr-controller-pointer-selection",r.TELEPORTATION="xr-controller-teleportation",r.FEATURE_POINTS="xr-feature-points",r.HAND_TRACKING="xr-hand-tracking",r}(),qn=function(){function r(t){var e=this;this._xrSessionManager=t,this._features={},this._xrSessionManager.onXRSessionInit.add(function(){e.getEnabledFeatures().forEach(function(n){var i=e._features[n];!i.enabled||i.featureImplementation.attached||i.featureImplementation.disableAutoAttach||e.attachFeature(n)})}),this._xrSessionManager.onXRSessionEnded.add(function(){e.getEnabledFeatures().forEach(function(n){var i=e._features[n];i.enabled&&i.featureImplementation.attached&&e.detachFeature(n)})})}return r.AddWebXRFeature=function(t,e,n,i){n===void 0&&(n=1),i===void 0&&(i=!1),this._AvailableFeatures[t]=this._AvailableFeatures[t]||{latest:n},n>this._AvailableFeatures[t].latest&&(this._AvailableFeatures[t].latest=n),i&&(this._AvailableFeatures[t].stable=n),this._AvailableFeatures[t][n]=e},r.ConstructFeature=function(t,e,n,i){e===void 0&&(e=1);var o=this._AvailableFeatures[t][e];if(!o)throw new Error("feature not found");return o(n,i)},r.GetAvailableFeatures=function(){return Object.keys(this._AvailableFeatures)},r.GetAvailableVersions=function(t){return Object.keys(this._AvailableFeatures[t])},r.GetLatestVersionOfFeature=function(t){return this._AvailableFeatures[t]&&this._AvailableFeatures[t].latest||-1},r.GetStableVersionOfFeature=function(t){return this._AvailableFeatures[t]&&this._AvailableFeatures[t].stable||-1},r.prototype.attachFeature=function(t){var e=this._features[t];e&&e.enabled&&!e.featureImplementation.attached&&e.featureImplementation.attach()},r.prototype.detachFeature=function(t){var e=this._features[t];e&&e.featureImplementation.attached&&e.featureImplementation.detach()},r.prototype.disableFeature=function(t){var e=typeof t=="string"?t:t.Name,n=this._features[e];return!(!n||!n.enabled)&&(n.enabled=!1,this.detachFeature(e),n.featureImplementation.dispose(),!0)},r.prototype.dispose=function(){var t=this;this.getEnabledFeatures().forEach(function(e){t.disableFeature(e),t._features[e].featureImplementation.dispose()})},r.prototype.enableFeature=function(t,e,n,i,o){var a=this;e===void 0&&(e="latest"),n===void 0&&(n={}),i===void 0&&(i=!0),o===void 0&&(o=!0);var s=typeof t=="string"?t:t.Name,d=0;if(typeof e=="string"){if(!e)throw new Error("Error in provided version - "+s+" ("+e+")");if((d=e==="stable"?r.GetStableVersionOfFeature(s):e==="latest"?r.GetLatestVersionOfFeature(s):+e)===-1||isNaN(d))throw new Error("feature not found - "+s+" ("+e+")")}else d=e;var p=this._features[s],b=r.ConstructFeature(s,d,this._xrSessionManager,n);if(!b)throw new Error("feature not found - "+s);p&&this.disableFeature(s);var x=b();if(x.dependsOn&&!x.dependsOn.every(function(O){return!!a._features[O]}))throw new Error("Dependant features missing. Make sure the following features are enabled - "+x.dependsOn.join(", "));if(x.isCompatible())return this._features[s]={featureImplementation:x,enabled:!0,version:d,required:o},i?this._xrSessionManager.session&&!this._features[s].featureImplementation.attached&&this.attachFeature(s):this._features[s].featureImplementation.disableAutoAttach=!0,this._features[s].featureImplementation;if(o)throw new Error("required feature not compatible");return Xe.b.Warn("Feature "+s+" not compatible with the current environment/browser and was not enabled."),x},r.prototype.getEnabledFeature=function(t){return this._features[t]&&this._features[t].featureImplementation},r.prototype.getEnabledFeatures=function(){return Object.keys(this._features)},r.prototype.extendXRSessionInitObject=function(t){var e=this;return this.getEnabledFeatures().forEach(function(n){var i=e._features[n],o=i.featureImplementation.xrNativeFeatureName;o&&(i.required?(t.requiredFeatures=t.requiredFeatures||[],t.requiredFeatures.indexOf(o)===-1&&t.requiredFeatures.push(o)):(t.optionalFeatures=t.optionalFeatures||[],t.optionalFeatures.indexOf(o)===-1&&t.optionalFeatures.push(o)))}),t},r._AvailableFeatures={},r}(),Au=function(){function r(t){var e=this;this.scene=t,this._nonVRCamera=null,this._originalSceneAutoClear=!0,this._supported=!1,this.onInitialXRPoseSetObservable=new R.c,this.onStateChangedObservable=new R.c,this.state=fn.NOT_IN_XR,this.sessionManager=new _s(t),this.camera=new Su("",t,this.sessionManager),this.featuresManager=new qn(this.sessionManager),t.onDisposeObservable.add(function(){e.exitXRAsync()})}return r.CreateAsync=function(t){var e=new r(t);return e.sessionManager.initializeAsync().then(function(){return e._supported=!0,e}).catch(function(n){throw e._setState(fn.NOT_IN_XR),e.dispose(),n})},r.prototype.dispose=function(){this.camera.dispose(),this.onStateChangedObservable.clear(),this.onInitialXRPoseSetObservable.clear(),this.sessionManager.dispose(),this._nonVRCamera&&(this.scene.activeCamera=this._nonVRCamera)},r.prototype.enterXRAsync=function(t,e,n,i){var o=this;if(n===void 0&&(n=this.sessionManager.getWebXRRenderTarget()),i===void 0&&(i={}),!this._supported)throw"WebXR not supported in this browser or environment";return this._setState(fn.ENTERING_XR),e!=="viewer"&&e!=="local"&&(i.optionalFeatures=i.optionalFeatures||[],i.optionalFeatures.push(e)),this.featuresManager.extendXRSessionInitObject(i),t==="immersive-ar"&&e!=="unbounded"&&l.a.Warn("We recommend using 'unbounded' reference space type when using 'immersive-ar' session mode"),this.sessionManager.initializeSessionAsync(t,i).then(function(){return o.sessionManager.setReferenceSpaceTypeAsync(e)}).then(function(){return n.initializeXRLayerAsync(o.sessionManager.session)}).then(function(){return o.sessionManager.updateRenderStateAsync({depthFar:o.camera.maxZ,depthNear:o.camera.minZ,baseLayer:n.xrLayer})}).then(function(){return o.sessionManager.runXRRenderLoop(),o._originalSceneAutoClear=o.scene.autoClear,o._nonVRCamera=o.scene.activeCamera,o.scene.activeCamera=o.camera,t!=="immersive-ar"?o._nonXRToXRCamera():(o.scene.autoClear=!1,o.camera.compensateOnFirstFrame=!1),o.sessionManager.onXRSessionEnded.addOnce(function(){o.camera.rigCameras.forEach(function(a){a.outputRenderTarget=null}),o.scene.autoClear=o._originalSceneAutoClear,o.scene.activeCamera=o._nonVRCamera,t!=="immersive-ar"&&o.camera.compensateOnFirstFrame&&(o._nonVRCamera.setPosition?o._nonVRCamera.setPosition(o.camera.position):o._nonVRCamera.position.copyFrom(o.camera.position)),o._setState(fn.NOT_IN_XR)}),o.sessionManager.onXRFrameObservable.addOnce(function(){o._setState(fn.IN_XR)}),o.sessionManager}).catch(function(a){throw console.log(a),console.log(a.message),o._setState(fn.NOT_IN_XR),a})},r.prototype.exitXRAsync=function(){return this.state!==fn.IN_XR?Promise.resolve():(this._setState(fn.EXITING_XR),this.sessionManager.exitXRAsync())},r.prototype._nonXRToXRCamera=function(){this.camera.setTransformationFromNonVRCamera(this._nonVRCamera),this.onInitialXRPoseSetObservable.notifyObservers(this.camera)},r.prototype._setState=function(t){this.state!==t&&(this.state=t,this.onStateChangedObservable.notifyObservers(this.state))},r}(),Cr=function(){function r(t,e,n,i){n===void 0&&(n=-1),i===void 0&&(i=[]),this.id=t,this.type=e,this._buttonIndex=n,this._axesIndices=i,this._axes={x:0,y:0},this._changes={},this._currentValue=0,this._hasChanges=!1,this._pressed=!1,this._touched=!1,this.onAxisValueChangedObservable=new R.c,this.onButtonStateChangedObservable=new R.c}return Object.defineProperty(r.prototype,"axes",{get:function(){return this._axes},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"changes",{get:function(){return this._changes},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"hasChanges",{get:function(){return this._hasChanges},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"pressed",{get:function(){return this._pressed},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"touched",{get:function(){return this._touched},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"value",{get:function(){return this._currentValue},enumerable:!1,configurable:!0}),r.prototype.dispose=function(){this.onAxisValueChangedObservable.clear(),this.onButtonStateChangedObservable.clear()},r.prototype.isAxes=function(){return this._axesIndices.length!==0},r.prototype.isButton=function(){return this._buttonIndex!==-1},r.prototype.update=function(t){var e=!1,n=!1;if(this._hasChanges=!1,this._changes={},this.isButton()){var i=t.buttons[this._buttonIndex];if(!i)return;this._currentValue!==i.value&&(this.changes.value={current:i.value,previous:this._currentValue},e=!0,this._currentValue=i.value),this._touched!==i.touched&&(this.changes.touched={current:i.touched,previous:this._touched},e=!0,this._touched=i.touched),this._pressed!==i.pressed&&(this.changes.pressed={current:i.pressed,previous:this._pressed},e=!0,this._pressed=i.pressed)}this.isAxes()&&(this._axes.x!==t.axes[this._axesIndices[0]]&&(this.changes.axes={current:{x:t.axes[this._axesIndices[0]],y:this._axes.y},previous:{x:this._axes.x,y:this._axes.y}},this._axes.x=t.axes[this._axesIndices[0]],n=!0),this._axes.y!==t.axes[this._axesIndices[1]]&&(this.changes.axes?this.changes.axes.current.y=t.axes[this._axesIndices[1]]:this.changes.axes={current:{x:this._axes.x,y:t.axes[this._axesIndices[1]]},previous:{x:this._axes.x,y:this._axes.y}},this._axes.y=t.axes[this._axesIndices[1]],n=!0)),e&&(this._hasChanges=!0,this.onButtonStateChangedObservable.notifyObservers(this)),n&&(this._hasChanges=!0,this.onAxisValueChangedObservable.notifyObservers(this._axes))},r.BUTTON_TYPE="button",r.SQUEEZE_TYPE="squeeze",r.THUMBSTICK_TYPE="thumbstick",r.TOUCHPAD_TYPE="touchpad",r.TRIGGER_TYPE="trigger",r}(),Rr=function(){function r(t,e,n,i,o){var a=this;this.scene=t,this.layout=e,this.gamepadObject=n,this.handedness=i,this._initComponent=function(s){if(s){var d=a.layout.components[s],p=d.type,b=d.gamepadIndices.button,x=[];d.gamepadIndices.xAxis!==void 0&&d.gamepadIndices.yAxis!==void 0&&x.push(d.gamepadIndices.xAxis,d.gamepadIndices.yAxis),a.components[s]=new Cr(s,p,b,x)}},this._modelReady=!1,this.components={},this.disableAnimation=!1,this.onModelLoadedObservable=new R.c,e.components&&Object.keys(e.components).forEach(this._initComponent)}return r.prototype.dispose=function(){var t=this;this.getComponentIds().forEach(function(e){return t.getComponent(e).dispose()}),this.rootMesh&&this.rootMesh.dispose()},r.prototype.getAllComponentsOfType=function(t){var e=this;return this.getComponentIds().map(function(n){return e.components[n]}).filter(function(n){return n.type===t})},r.prototype.getComponent=function(t){return this.components[t]},r.prototype.getComponentIds=function(){return Object.keys(this.components)},r.prototype.getComponentOfType=function(t){return this.getAllComponentsOfType(t)[0]||null},r.prototype.getMainComponent=function(){return this.getComponent(this.layout.selectComponentId)},r.prototype.loadModel=function(){return Object(c.b)(this,void 0,void 0,function(){var t,e,n=this;return Object(c.e)(this,function(i){return t=!this._getModelLoadingConstraints(),e=this._getGenericFilenameAndPath(),t?l.a.Warn("Falling back to generic models"):e=this._getFilenameAndPath(),[2,new Promise(function(o,a){Ut.ImportMesh("",e.path,e.filename,n.scene,function(s){t?n._getGenericParentMesh(s):n._setRootMesh(s),n._processLoadedModel(s),n._modelReady=!0,n.onModelLoadedObservable.notifyObservers(n),o(!0)},null,function(s,d){l.a.Log(d),l.a.Warn("Failed to retrieve controller model of type "+n.profileId+" from the remote server: "+e.path+e.filename),a(d)})})]})})},r.prototype.updateFromXRFrame=function(t){var e=this;this.getComponentIds().forEach(function(n){return e.getComponent(n).update(e.gamepadObject)}),this.updateModel(t)},Object.defineProperty(r.prototype,"handness",{get:function(){return this.handedness},enumerable:!1,configurable:!0}),r.prototype.pulse=function(t,e,n){return n===void 0&&(n=0),this.gamepadObject.hapticActuators&&this.gamepadObject.hapticActuators[n]?this.gamepadObject.hapticActuators[n].pulse(t,e):Promise.resolve(!1)},r.prototype._getChildByName=function(t,e){return t.getChildren(function(n){return n.name===e},!1)[0]},r.prototype._getImmediateChildByName=function(t,e){return t.getChildren(function(n){return n.name==e},!0)[0]},r.prototype._lerpTransform=function(t,e,n){if(t.minMesh&&t.maxMesh&&t.valueMesh&&t.minMesh.rotationQuaternion&&t.maxMesh.rotationQuaternion&&t.valueMesh.rotationQuaternion){var i=n?.5*e+.5:e;u.b.SlerpToRef(t.minMesh.rotationQuaternion,t.maxMesh.rotationQuaternion,i,t.valueMesh.rotationQuaternion),u.e.LerpToRef(t.minMesh.position,t.maxMesh.position,i,t.valueMesh.position)}},r.prototype.updateModel=function(t){this._modelReady&&this._updateModel(t)},r.prototype._getGenericFilenameAndPath=function(){return{filename:"generic.babylon",path:"https://controllers.babylonjs.com/generic/"}},r.prototype._getGenericParentMesh=function(t){var e=this;this.rootMesh=new De.a(this.profileId+" "+this.handedness,this.scene),t.forEach(function(n){n.parent||(n.isPickable=!1,n.setParent(e.rootMesh))}),this.rootMesh.rotationQuaternion=u.b.FromEulerAngles(0,Math.PI,0)},r}(),Vs=function(r){function t(e,n,i){var o=r.call(this,e,d_[i],n,i)||this;return o.profileId=t.ProfileId,o}return Object(c.d)(t,r),t.prototype._getFilenameAndPath=function(){return{filename:"generic.babylon",path:"https://controllers.babylonjs.com/generic/"}},t.prototype._getModelLoadingConstraints=function(){return!0},t.prototype._processLoadedModel=function(e){},t.prototype._setRootMesh=function(e){var n=this;this.rootMesh=new De.a(this.profileId+" "+this.handedness,this.scene),e.forEach(function(i){i.isPickable=!1,i.parent||i.setParent(n.rootMesh)}),this.rootMesh.rotationQuaternion=u.b.FromEulerAngles(0,Math.PI,0)},t.prototype._updateModel=function(){},t.ProfileId="generic-trigger",t}(Rr),d_={left:{selectComponentId:"xr-standard-trigger",components:{"xr-standard-trigger":{type:"trigger",gamepadIndices:{button:0},rootNodeName:"xr_standard_trigger",visualResponses:{}}},gamepadMapping:"xr-standard",rootNodeName:"generic-trigger-left",assetPath:"left.glb"},right:{selectComponentId:"xr-standard-trigger",components:{"xr-standard-trigger":{type:"trigger",gamepadIndices:{button:0},rootNodeName:"xr_standard_trigger",visualResponses:{}}},gamepadMapping:"xr-standard",rootNodeName:"generic-trigger-right",assetPath:"right.glb"},none:{selectComponentId:"xr-standard-trigger",components:{"xr-standard-trigger":{type:"trigger",gamepadIndices:{button:0},rootNodeName:"xr_standard_trigger",visualResponses:{}}},gamepadMapping:"xr-standard",rootNodeName:"generic-trigger-none",assetPath:"none.glb"}},Pu=function(r){function t(e,n,i,o){var a=r.call(this,e,i.layouts[n.handedness||"none"],n.gamepad,n.handedness)||this;return a._repositoryUrl=o,a._buttonMeshMapping={},a._touchDots={},a.profileId=i.profileId,a}return Object(c.d)(t,r),t.prototype.dispose=function(){var e=this;r.prototype.dispose.call(this),Object.keys(this._touchDots).forEach(function(n){e._touchDots[n].dispose()})},t.prototype._getFilenameAndPath=function(){return{filename:this.layout.assetPath,path:this._repositoryUrl+"/profiles/"+this.profileId+"/"}},t.prototype._getModelLoadingConstraints=function(){var e=Ut.IsPluginForExtensionAvailable(".glb");return e||l.a.Warn("glTF / glb loaded was not registered, using generic controller instead"),e},t.prototype._processLoadedModel=function(e){var n=this;this.getComponentIds().forEach(function(i){var o=n.layout.components[i];n._buttonMeshMapping[i]={mainMesh:n._getChildByName(n.rootMesh,o.rootNodeName),states:{}},Object.keys(o.visualResponses).forEach(function(a){var s=o.visualResponses[a];if(s.valueNodeProperty==="transform")n._buttonMeshMapping[i].states[a]={valueMesh:n._getChildByName(n.rootMesh,s.valueNodeName),minMesh:n._getChildByName(n.rootMesh,s.minNodeName),maxMesh:n._getChildByName(n.rootMesh,s.maxNodeName)};else{var d=o.type===Cr.TOUCHPAD_TYPE&&o.touchPointNodeName?o.touchPointNodeName:s.valueNodeName;if(n._buttonMeshMapping[i].states[a]={valueMesh:n._getChildByName(n.rootMesh,d)},o.type===Cr.TOUCHPAD_TYPE&&!n._touchDots[a]){var p=Un.a.CreateSphere(a+"dot",{diameter:.0015,segments:8},n.scene);p.material=new Ft.a(a+"mat",n.scene),p.material.diffuseColor=M.a.Red(),p.parent=n._buttonMeshMapping[i].states[a].valueMesh||null,p.isVisible=!1,n._touchDots[a]=p}}})})},t.prototype._setRootMesh=function(e){var n;this.rootMesh=new De.a(this.profileId+"-"+this.handedness,this.scene),this.rootMesh.isPickable=!1;for(var i=0;io/10&&(d.isVisible=!0),(p+=n._scene.getEngine().getDeltaTime())>=o)n._scene.simulatePointerDown(i.pick,{pointerId:i.id}),b=!0,n._options.disablePointerUpOnTouchOut&&n._scene.simulatePointerUp(i.pick,{pointerId:i.id}),d.isVisible=!1;else{var x=1-p/o;d.scaling.set(x,x,x)}else b=!1,p=0;n._scene.simulatePointerMove(i.pick,{pointerId:i.id}),s=i.pick}}),this._options.renderingGroupId!==void 0&&(d.renderingGroupId=this._options.renderingGroupId),e&&e.onDisposeObservable.addOnce(function(){i.pick&&!n._options.disablePointerUpOnTouchOut&&b&&n._scene.simulatePointerUp(i.pick,{pointerId:i.id}),d.dispose()})},t.prototype._attachScreenRayMode=function(e){var n=this,i=this._controllers[e.uniqueId],o=!1;i.onFrameObserver=this._xrSessionManager.onXRFrameObservable.add(function(){!i.pick||n._options.disablePointerUpOnTouchOut&&o||(o?n._scene.simulatePointerMove(i.pick,{pointerId:i.id}):(n._scene.simulatePointerDown(i.pick,{pointerId:i.id}),o=!0,n._options.disablePointerUpOnTouchOut&&n._scene.simulatePointerUp(i.pick,{pointerId:i.id})))}),e.onDisposeObservable.addOnce(function(){i.pick&&o&&!n._options.disablePointerUpOnTouchOut&&n._scene.simulatePointerUp(i.pick,{pointerId:i.id})})},t.prototype._attachTrackedPointerRayMode=function(e){var n=this,i=this._controllers[e.uniqueId];if(this._options.forceGazeMode)return this._attachGazeMode(e);if(i.onFrameObserver=this._xrSessionManager.onXRFrameObservable.add(function(){i.laserPointer.material.disableLighting=n.disablePointerLighting,i.selectionMesh.material.disableLighting=n.disableSelectionMeshLighting,i.pick&&n._scene.simulatePointerMove(i.pick,{pointerId:i.id})}),e.inputSource.gamepad){var o=function(d){n._options.overrideButtonId&&(i.selectionComponent=d.getComponent(n._options.overrideButtonId)),i.selectionComponent||(i.selectionComponent=d.getMainComponent()),i.onButtonChangedObserver=i.selectionComponent.onButtonStateChangedObservable.add(function(p){if(p.changes.pressed){var b=p.changes.pressed.current;i.pick?(n._options.enablePointerSelectionOnAllControllers||e.uniqueId===n._attachedController)&&(b?(n._scene.simulatePointerDown(i.pick,{pointerId:i.id}),i.selectionMesh.material.emissiveColor=n.selectionMeshPickedColor,i.laserPointer.material.emissiveColor=n.laserPointerPickedColor):(n._scene.simulatePointerUp(i.pick,{pointerId:i.id}),i.selectionMesh.material.emissiveColor=n.selectionMeshDefaultColor,i.laserPointer.material.emissiveColor=n.laserPointerDefaultColor)):!b||n._options.enablePointerSelectionOnAllControllers||n._options.disableSwitchOnClick||(n._attachedController=e.uniqueId)}})};e.motionController?o(e.motionController):e.onMotionControllerInitObservable.add(o)}else{var a=function(d){i.xrController&&d.inputSource===i.xrController.inputSource&&i.pick&&(n._scene.simulatePointerDown(i.pick,{pointerId:i.id}),i.selectionMesh.material.emissiveColor=n.selectionMeshPickedColor,i.laserPointer.material.emissiveColor=n.laserPointerPickedColor)},s=function(d){i.xrController&&d.inputSource===i.xrController.inputSource&&i.pick&&(n._scene.simulatePointerUp(i.pick,{pointerId:i.id}),i.selectionMesh.material.emissiveColor=n.selectionMeshDefaultColor,i.laserPointer.material.emissiveColor=n.laserPointerDefaultColor)};i.eventListeners={selectend:s,selectstart:a},this._xrSessionManager.session.addEventListener("selectstart",a),this._xrSessionManager.session.addEventListener("selectend",s)}},t.prototype._convertNormalToDirectionOfRay=function(e,n){return e&&Math.acos(u.e.Dot(e,n.direction))o},t.prototype._updatePointerDistance=function(e,n){n===void 0&&(n=100),e.scaling.y=n,this._scene.useRightHandedSystem&&(n*=-1),e.position.z=n/2+.05},Object.defineProperty(t.prototype,"lasterPointerDefaultColor",{get:function(){return this.laserPointerDefaultColor},enumerable:!1,configurable:!0}),t._idCounter=200,t.Name=ai.POINTER_SELECTION,t.Version=1,t}(si);qn.AddWebXRFeature(lo.Name,function(r,t){return function(){return new lo(r,t)}},lo.Version,!0);var Gi,Ru=function(){function r(t,e,n){this.element=t,this.sessionMode=e,this.referenceSpaceType=n}return r.prototype.update=function(t){},r}(),p_=function(){},Ou=function(){function r(t,e){var n=this;if(this.scene=t,this.options=e,this._activeButton=null,this._buttons=[],this.activeButtonChangedObservable=new R.c,this.overlay=document.createElement("div"),this.overlay.classList.add("xr-button-overlay"),this.overlay.style.cssText="z-index:11;position: absolute; right: 20px;bottom: 50px;",typeof window<"u"&&window.location&&window.location.protocol==="http:"&&Xe.b.Warn("WebXR can only be served over HTTPS"),e.customButtons)this._buttons=e.customButtons;else{var i=e.sessionMode||"immersive-vr",o=e.referenceSpaceType||"local-floor",a=".babylonVRicon { color: #868686; border-color: #868686; border-style: solid; margin-left: 10px; height: 50px; width: 80px; background-color: rgba(51,51,51,0.7); background-image: url("+(typeof SVGSVGElement>"u"?"https://cdn.babylonjs.com/Assets/vrButton.png":"data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%222048%22%20height%3D%221152%22%20viewBox%3D%220%200%202048%201152%22%20version%3D%221.1%22%3E%3Cpath%20transform%3D%22rotate%28180%201024%2C576.0000000000001%29%22%20d%3D%22m1109%2C896q17%2C0%2030%2C-12t13%2C-30t-12.5%2C-30.5t-30.5%2C-12.5l-170%2C0q-18%2C0%20-30.5%2C12.5t-12.5%2C30.5t13%2C30t30%2C12l170%2C0zm-85%2C256q59%2C0%20132.5%2C-1.5t154.5%2C-5.5t164.5%2C-11.5t163%2C-20t150%2C-30t124.5%2C-41.5q23%2C-11%2042%2C-24t38%2C-30q27%2C-25%2041%2C-61.5t14%2C-72.5l0%2C-257q0%2C-123%20-47%2C-232t-128%2C-190t-190%2C-128t-232%2C-47l-81%2C0q-37%2C0%20-68.5%2C14t-60.5%2C34.5t-55.5%2C45t-53%2C45t-53%2C34.5t-55.5%2C14t-55.5%2C-14t-53%2C-34.5t-53%2C-45t-55.5%2C-45t-60.5%2C-34.5t-68.5%2C-14l-81%2C0q-123%2C0%20-232%2C47t-190%2C128t-128%2C190t-47%2C232l0%2C257q0%2C68%2038%2C115t97%2C73q54%2C24%20124.5%2C41.5t150%2C30t163%2C20t164.5%2C11.5t154.5%2C5.5t132.5%2C1.5zm939%2C-298q0%2C39%20-24.5%2C67t-58.5%2C42q-54%2C23%20-122%2C39.5t-143.5%2C28t-155.5%2C19t-157%2C11t-148.5%2C5t-129.5%2C1.5q-59%2C0%20-130%2C-1.5t-148%2C-5t-157%2C-11t-155.5%2C-19t-143.5%2C-28t-122%2C-39.5q-34%2C-14%20-58.5%2C-42t-24.5%2C-67l0%2C-257q0%2C-106%2040.5%2C-199t110%2C-162.5t162.5%2C-109.5t199%2C-40l81%2C0q27%2C0%2052%2C14t50%2C34.5t51%2C44.5t55.5%2C44.5t63.5%2C34.5t74%2C14t74%2C-14t63.5%2C-34.5t55.5%2C-44.5t51%2C-44.5t50%2C-34.5t52%2C-14l14%2C0q37%2C0%2070%2C0.5t64.5%2C4.5t63.5%2C12t68%2C23q71%2C30%20128.5%2C78.5t98.5%2C110t63.5%2C133.5t22.5%2C149l0%2C257z%22%20fill%3D%22white%22%20/%3E%3C/svg%3E%0A")+"); background-size: 80%; background-repeat:no-repeat; background-position: center; border: none; outline: none; transition: transform 0.125s ease-out } .babylonVRicon:hover { transform: scale(1.05) } .babylonVRicon:active {background-color: rgba(51,51,51,1) } .babylonVRicon:focus {background-color: rgba(51,51,51,1) }";a+='.babylonVRicon.vrdisplaypresenting { background-image: none;} .vrdisplaypresenting::after { content: "EXIT"} .xr-error::after { content: "ERROR"}';var s=document.createElement("style");s.appendChild(document.createTextNode(a)),document.getElementsByTagName("head")[0].appendChild(s);var d=document.createElement("button");d.className="babylonVRicon",d.title=i+" - "+o,this._buttons.push(new Ru(d,i,o)),this._buttons[this._buttons.length-1].update=function(b){this.element.style.display=b===null||b===this?"":"none",d.className="babylonVRicon"+(b===this?" vrdisplaypresenting":"")},this._updateButtons(null)}var p=t.getEngine().getInputElement();p&&p.parentNode&&(p.parentNode.appendChild(this.overlay),t.onDisposeObservable.addOnce(function(){n.dispose()}))}return r.CreateAsync=function(t,e,n){var i=this,o=new r(t,n),a=o._buttons.map(function(s){return e.sessionManager.isSessionSupportedAsync(s.sessionMode)});return e.onStateChangedObservable.add(function(s){s==fn.NOT_IN_XR&&o._updateButtons(null)}),Promise.all(a).then(function(s){return s.forEach(function(d,p){d?(o.overlay.appendChild(o._buttons[p].element),o._buttons[p].element.onclick=function(){return Object(c.b)(i,void 0,void 0,function(){var b,x,O;return Object(c.e)(this,function(B){switch(B.label){case 0:return e.state!=fn.IN_XR?[3,2]:[4,e.exitXRAsync()];case 1:return B.sent(),o._updateButtons(null),[3,6];case 2:if(e.state!=fn.NOT_IN_XR)return[3,6];if(!n.renderTarget)return[3,6];B.label=3;case 3:return B.trys.push([3,5,,6]),[4,e.enterXRAsync(o._buttons[p].sessionMode,o._buttons[p].referenceSpaceType,n.renderTarget,{optionalFeatures:n.optionalFeatures,requiredFeatures:n.requiredFeatures})];case 4:return B.sent(),o._updateButtons(o._buttons[p]),[3,6];case 5:return b=B.sent(),o._updateButtons(null),x=o._buttons[p].element,O=x.title,x.title="Error entering XR session : "+O,x.classList.add("xr-error"),n.onError&&n.onError(b),[3,6];case 6:return[2]}})})}):Xe.b.Warn('Session mode "'+o._buttons[p].sessionMode+'" not supported in browser')}),o})},r.prototype.dispose=function(){var t=this.scene.getEngine().getInputElement();t&&t.parentNode&&t.parentNode.contains(this.overlay)&&t.parentNode.removeChild(this.overlay),this.activeButtonChangedObservable.clear()},r.prototype._updateButtons=function(t){var e=this;this._activeButton=t,this._buttons.forEach(function(n){n.update(e._activeButton)}),this.activeButtonChangedObservable.notifyObservers(this._activeButton)},r}();function ks(r){var t,e=0,n=Date.now();r.observableParameters=(t=r.observableParameters)!==null&&t!==void 0?t:{};var i=r.contextObservable.add(function(o){var a=Date.now(),s={startTime:n,currentTime:a,deltaTime:e=a-n,completeRate:e/r.timeout,payload:o};r.onTick&&r.onTick(s),r.breakCondition&&r.breakCondition()&&(r.contextObservable.remove(i),r.onAborted&&r.onAborted(s)),e>=r.timeout&&(r.contextObservable.remove(i),r.onEnded&&r.onEnded(s))},r.observableParameters.mask,r.observableParameters.insertFirst,r.observableParameters.scope);return i}(function(r){r[r.INIT=0]="INIT",r[r.STARTED=1]="STARTED",r[r.ENDED=2]="ENDED"})(Gi||(Gi={}));var __=function(){function r(t){var e,n,i=this;this.onEachCountObservable=new R.c,this.onTimerAbortedObservable=new R.c,this.onTimerEndedObservable=new R.c,this.onStateChangedObservable=new R.c,this._observer=null,this._breakOnNextTick=!1,this._tick=function(o){var a=Date.now();i._timer=a-i._startTime;var s={startTime:i._startTime,currentTime:a,deltaTime:i._timer,completeRate:i._timer/i._timeToEnd,payload:o},d=i._breakOnNextTick||i._breakCondition(s);d||i._timer>=i._timeToEnd?i._stop(s,d):i.onEachCountObservable.notifyObservers(s)},this._setState(Gi.INIT),this._contextObservable=t.contextObservable,this._observableParameters=(e=t.observableParameters)!==null&&e!==void 0?e:{},this._breakCondition=(n=t.breakCondition)!==null&&n!==void 0?n:function(){return!1},t.onEnded&&this.onTimerEndedObservable.add(t.onEnded),t.onTick&&this.onEachCountObservable.add(t.onTick),t.onAborted&&this.onTimerAbortedObservable.add(t.onAborted)}return Object.defineProperty(r.prototype,"breakCondition",{set:function(t){this._breakCondition=t},enumerable:!1,configurable:!0}),r.prototype.clearObservables=function(){this.onEachCountObservable.clear(),this.onTimerAbortedObservable.clear(),this.onTimerEndedObservable.clear(),this.onStateChangedObservable.clear()},r.prototype.start=function(t){if(t===void 0&&(t=this._timeToEnd),this._state===Gi.STARTED)throw new Error("Timer already started. Please stop it before starting again");this._timeToEnd=t,this._startTime=Date.now(),this._timer=0,this._observer=this._contextObservable.add(this._tick,this._observableParameters.mask,this._observableParameters.insertFirst,this._observableParameters.scope),this._setState(Gi.STARTED)},r.prototype.stop=function(){this._state===Gi.STARTED&&(this._breakOnNextTick=!0)},r.prototype.dispose=function(){this._observer&&this._contextObservable.remove(this._observer),this.clearObservables()},r.prototype._setState=function(t){this._state=t,this.onStateChangedObservable.notifyObservers(this._state)},r.prototype._stop=function(t,e){e===void 0&&(e=!1),this._contextObservable.remove(this._observer),this._setState(Gi.ENDED),e?this.onTimerAbortedObservable.notifyObservers(t):this.onTimerEndedObservable.notifyObservers(t)},r}(),uo=function(r){function t(e,n){var i=r.call(this,e)||this;return i._options=n,i._controllers={},i._snappedToPoint=!1,i._tmpRay=new dn.a(new u.e,new u.e),i._tmpVector=new u.e,i._tmpQuaternion=new u.b,i.backwardsMovementEnabled=!0,i.backwardsTeleportationDistance=.7,i.parabolicCheckRadius=5,i.parabolicRayEnabled=!0,i.straightRayEnabled=!0,i.rotationAngle=Math.PI/8,i._rotationEnabled=!0,i._attachController=function(o){if(!(i._controllers[o.uniqueId]||i._options.forceHandedness&&o.inputSource.handedness!==i._options.forceHandedness)){i._controllers[o.uniqueId]={xrController:o,teleportationState:{forward:!1,backwards:!1,rotating:!1,currentRotation:0,baseRotation:0}};var a=i._controllers[o.uniqueId];if(a.xrController.inputSource.targetRayMode==="tracked-pointer"&&a.xrController.inputSource.gamepad){var s=function(){if(o.motionController){var d=o.motionController.getComponentOfType(Cr.THUMBSTICK_TYPE)||o.motionController.getComponentOfType(Cr.TOUCHPAD_TYPE);if(!d||i._options.useMainComponentOnly){var p=o.motionController.getMainComponent();if(!p)return;a.teleportationComponent=p,a.onButtonChangedObserver=p.onButtonStateChangedObservable.add(function(){p.changes.pressed&&(p.changes.pressed.current?(a.teleportationState.forward=!0,i._currentTeleportationControllerId=a.xrController.uniqueId,a.teleportationState.baseRotation=i._options.xrInput.xrCamera.rotationQuaternion.toEulerAngles().y,a.teleportationState.currentRotation=0,ks({timeout:i._options.timeToTeleport||3e3,contextObservable:i._xrSessionManager.onXRFrameObservable,breakCondition:function(){return!p.pressed},onEnded:function(){i._currentTeleportationControllerId===a.xrController.uniqueId&&a.teleportationState.forward&&i._teleportForward(o.uniqueId)}})):(a.teleportationState.forward=!1,i._currentTeleportationControllerId=""))})}else a.teleportationComponent=d,a.onAxisChangedObserver=d.onAxisValueChangedObservable.add(function(b){if(b.y<=.7&&a.teleportationState.backwards&&(a.teleportationState.backwards=!1),b.y>.7&&!a.teleportationState.forward&&i.backwardsMovementEnabled&&!i.snapPointsOnly&&!a.teleportationState.backwards){a.teleportationState.backwards=!0,i._tmpQuaternion.copyFrom(i._options.xrInput.xrCamera.rotationQuaternion),i._tmpQuaternion.toEulerAnglesToRef(i._tmpVector),i._tmpVector.x=0,i._tmpVector.z=0,u.b.FromEulerVectorToRef(i._tmpVector,i._tmpQuaternion),i._tmpVector.set(0,0,i.backwardsTeleportationDistance*(i._xrSessionManager.scene.useRightHandedSystem?1:-1)),i._tmpVector.rotateByQuaternionToRef(i._tmpQuaternion,i._tmpVector),i._tmpVector.addInPlace(i._options.xrInput.xrCamera.position),i._tmpRay.origin.copyFrom(i._tmpVector),i._tmpRay.length=i._options.xrInput.xrCamera.realWorldHeight+.1,i._tmpRay.direction.set(0,-1,0);var x=i._xrSessionManager.scene.pickWithRay(i._tmpRay,function(B){return i._floorMeshes.indexOf(B)!==-1});x&&x.pickedPoint&&(i._options.xrInput.xrCamera.position.x=x.pickedPoint.x,i._options.xrInput.xrCamera.position.z=x.pickedPoint.z)}if(b.y<-.7&&!i._currentTeleportationControllerId&&!a.teleportationState.rotating&&(a.teleportationState.forward=!0,i._currentTeleportationControllerId=a.xrController.uniqueId,a.teleportationState.baseRotation=i._options.xrInput.xrCamera.rotationQuaternion.toEulerAngles().y),b.x){if(a.teleportationState.forward)i._currentTeleportationControllerId===a.xrController.uniqueId&&(i.rotationEnabled?setTimeout(function(){a.teleportationState.currentRotation=Math.atan2(b.x,b.y*(i._xrSessionManager.scene.useRightHandedSystem?1:-1))}):a.teleportationState.currentRotation=0);else if(!a.teleportationState.rotating&&Math.abs(b.x)>.7){a.teleportationState.rotating=!0;var O=i.rotationAngle*(b.x>0?1:-1)*(i._xrSessionManager.scene.useRightHandedSystem?-1:1);i._options.xrInput.xrCamera.rotationQuaternion.multiplyInPlace(u.b.FromEulerAngles(0,O,0))}}else a.teleportationState.rotating=!1;b.x===0&&b.y===0&&a.teleportationState.forward&&i._teleportForward(o.uniqueId)})}};o.motionController?s():o.onMotionControllerInitObservable.addOnce(function(){s()})}else i._xrSessionManager.scene.onPointerObservable.add(function(d){d.type===Tt.a.POINTERDOWN?(a.teleportationState.forward=!0,i._currentTeleportationControllerId=a.xrController.uniqueId,a.teleportationState.baseRotation=i._options.xrInput.xrCamera.rotationQuaternion.toEulerAngles().y,a.teleportationState.currentRotation=0,ks({timeout:i._options.timeToTeleport||3e3,contextObservable:i._xrSessionManager.onXRFrameObservable,onEnded:function(){i._currentTeleportationControllerId===a.xrController.uniqueId&&a.teleportationState.forward&&i._teleportForward(o.uniqueId)}})):d.type===Tt.a.POINTERUP&&(a.teleportationState.forward=!1,i._currentTeleportationControllerId="")})}},i._options.teleportationTargetMesh||i._createDefaultTargetMesh(),i._floorMeshes=i._options.floorMeshes||[],i._snapToPositions=i._options.snapPositions||[],i._setTargetMeshVisibility(!1),i}return Object(c.d)(t,r),Object.defineProperty(t.prototype,"rotationEnabled",{get:function(){return this._rotationEnabled},set:function(e){if(this._rotationEnabled=e,this._options.teleportationTargetMesh){var n=this._options.teleportationTargetMesh.getChildMeshes(!1,function(i){return i.name==="rotationCone"});n[0]&&n[0].setEnabled(e)}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"teleportationTargetMesh",{get:function(){return this._options.teleportationTargetMesh||null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"snapPointsOnly",{get:function(){return!!this._options.snapPointsOnly},set:function(e){this._options.snapPointsOnly=e},enumerable:!1,configurable:!0}),t.prototype.addFloorMesh=function(e){this._floorMeshes.push(e)},t.prototype.addSnapPoint=function(e){this._snapToPositions.push(e)},t.prototype.attach=function(){var e=this;return!!r.prototype.attach.call(this)&&(this._currentTeleportationControllerId="",this._options.xrInput.controllers.forEach(this._attachController),this._addNewAttachObserver(this._options.xrInput.onControllerAddedObservable,this._attachController),this._addNewAttachObserver(this._options.xrInput.onControllerRemovedObservable,function(n){e._detachController(n.uniqueId)}),!0)},t.prototype.detach=function(){var e=this;return!!r.prototype.detach.call(this)&&(Object.keys(this._controllers).forEach(function(n){e._detachController(n)}),this._setTargetMeshVisibility(!1),this._currentTeleportationControllerId="",this._controllers={},!0)},t.prototype.dispose=function(){r.prototype.dispose.call(this),this._options.teleportationTargetMesh&&this._options.teleportationTargetMesh.dispose(!1,!0)},t.prototype.removeFloorMesh=function(e){var n=this._floorMeshes.indexOf(e);n!==-1&&this._floorMeshes.splice(n,1)},t.prototype.removeFloorMeshByName=function(e){var n=this._xrSessionManager.scene.getMeshByName(e);n&&this.removeFloorMesh(n)},t.prototype.removeSnapPoint=function(e){var n=this._snapToPositions.indexOf(e);if(n===-1){for(var i=0;i=p.video.HAVE_CURRENT_DATA;return!d.poster||d.autoPlay&&b?b&&p._createInternalTexture():(p._texture=p._getEngine().createTexture(d.poster,!1,!p.invertY,i),p._displayingPosterTexture=!0),p}return Object(c.d)(t,r),Object.defineProperty(t.prototype,"onUserActionRequestedObservable",{get:function(){return this._onUserActionRequestedObservable||(this._onUserActionRequestedObservable=new R.c),this._onUserActionRequestedObservable},enumerable:!1,configurable:!0}),t.prototype._getName=function(e){return e instanceof HTMLVideoElement?e.currentSrc:typeof e=="object"?e.toString():e},t.prototype._getVideo=function(e){if(e instanceof HTMLVideoElement)return Xe.b.SetCorsBehavior(e.currentSrc,e),e;var n=document.createElement("video");return typeof e=="string"?(Xe.b.SetCorsBehavior(e,n),n.src=e):(Xe.b.SetCorsBehavior(e[0],n),e.forEach(function(i){var o=document.createElement("source");o.src=i,n.appendChild(o)})),n},t.prototype._rebuild=function(){this.update()},t.prototype.update=function(){this.autoUpdateTexture&&this.updateTexture(!0)},t.prototype.updateTexture=function(e){e&&(this.video.paused&&this._stillImageCaptured||(this._stillImageCaptured=!0,this._updateInternalTexture()))},t.prototype.updateURL=function(e){this.video.src=e,this._currentSrc=e},t.prototype.clone=function(){return new t(this.name,this._currentSrc,this.getScene(),this._generateMipMaps,this.invertY,this.samplingMode,this._settings)},t.prototype.dispose=function(){r.prototype.dispose.call(this),this._currentSrc=null,this._onUserActionRequestedObservable&&(this._onUserActionRequestedObservable.clear(),this._onUserActionRequestedObservable=null),this.video.removeEventListener(this._createInternalTextureOnEvent,this._createInternalTexture),this.video.removeEventListener("paused",this._updateInternalTexture),this.video.removeEventListener("seeked",this._updateInternalTexture),this.video.removeEventListener("emptied",this.reset),this.video.pause()},t.CreateFromStreamAsync=function(e,n){var i=document.createElement("video");return e.getEngine()._badOS&&(document.body.appendChild(i),i.style.transform="scale(0.0001, 0.0001)",i.style.opacity="0",i.style.position="fixed",i.style.bottom="0px",i.style.right="0px"),i.setAttribute("autoplay",""),i.setAttribute("muted","true"),i.setAttribute("playsinline",""),i.muted=!0,i.mozSrcObject!==void 0?i.mozSrcObject=n:typeof i.srcObject=="object"?i.srcObject=n:(window.URL=window.URL||window.webkitURL||window.mozURL||window.msURL,i.src=window.URL&&window.URL.createObjectURL(n)),new Promise(function(o){var a=function(){o(new t("video",i,e,!0,!0)),i.removeEventListener("playing",a)};i.addEventListener("playing",a),i.play()})},t.CreateFromWebCamAsync=function(e,n,i){var o,a=this;return i===void 0&&(i=!1),n&&n.deviceId&&(o={exact:n.deviceId}),navigator.mediaDevices?navigator.mediaDevices.getUserMedia({video:n,audio:i}).then(function(s){return a.CreateFromStreamAsync(e,s)}):(navigator.getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia,navigator.getUserMedia&&navigator.getUserMedia({video:{deviceId:o,width:{min:n&&n.minWidth||256,max:n&&n.maxWidth||640},height:{min:n&&n.minHeight||256,max:n&&n.maxHeight||480}},audio:i},function(s){return a.CreateFromStreamAsync(e,s)},function(s){l.a.Error(s.name)}),Promise.reject("No support for userMedia on this device"))},t.CreateFromWebCam=function(e,n,i,o){o===void 0&&(o=!1),this.CreateFromWebCamAsync(e,i,o).then(function(a){n&&n(a)}).catch(function(a){l.a.Error(a.name)})},t}(we.a),v_=function(r){function t(){return r!==null&&r.apply(this,arguments)||this}return Object(c.d)(t,r),Object.defineProperty(t.prototype,"videoTexture",{get:function(){return this._texture},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"videoMode",{get:function(){return this.textureMode},set:function(e){this.textureMode=e},enumerable:!1,configurable:!0}),t.prototype._initTexture=function(e,n,i){var o=this,a={loop:i.loop,autoPlay:i.autoPlay,autoUpdateTexture:!0,poster:i.poster},s=new Iu((this.name||"videoDome")+"_texture",e,n,i.generateMipMaps,this._useDirectMapping,we.a.TRILINEAR_SAMPLINGMODE,a);return i.clickToPlay&&(n.onPointerUp=function(){o._texture.video.play()}),s},t.MODE_MONOSCOPIC=Vi.MODE_MONOSCOPIC,t.MODE_TOPBOTTOM=Vi.MODE_TOPBOTTOM,t.MODE_SIDEBYSIDE=Vi.MODE_SIDEBYSIDE,t}(Vi),Xn=f(55),b_=function(){function r(t){this.engine=t,this._captureGPUFrameTime=!1,this._gpuFrameTime=new Xn.a,this._captureShaderCompilationTime=!1,this._shaderCompilationTime=new Xn.a,this._onBeginFrameObserver=null,this._onEndFrameObserver=null,this._onBeforeShaderCompilationObserver=null,this._onAfterShaderCompilationObserver=null}return Object.defineProperty(r.prototype,"gpuFrameTimeCounter",{get:function(){return this._gpuFrameTime},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"captureGPUFrameTime",{get:function(){return this._captureGPUFrameTime},set:function(t){var e=this;t!==this._captureGPUFrameTime&&(this._captureGPUFrameTime=t,t?(this._onBeginFrameObserver=this.engine.onBeginFrameObservable.add(function(){e._gpuFrameTimeToken||(e._gpuFrameTimeToken=e.engine.startTimeQuery())}),this._onEndFrameObserver=this.engine.onEndFrameObservable.add(function(){if(e._gpuFrameTimeToken){var n=e.engine.endTimeQuery(e._gpuFrameTimeToken);n>-1&&(e._gpuFrameTimeToken=null,e._gpuFrameTime.fetchNewFrame(),e._gpuFrameTime.addCount(n,!0))}})):(this.engine.onBeginFrameObservable.remove(this._onBeginFrameObserver),this._onBeginFrameObserver=null,this.engine.onEndFrameObservable.remove(this._onEndFrameObserver),this._onEndFrameObserver=null))},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"shaderCompilationTimeCounter",{get:function(){return this._shaderCompilationTime},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"captureShaderCompilationTime",{get:function(){return this._captureShaderCompilationTime},set:function(t){var e=this;t!==this._captureShaderCompilationTime&&(this._captureShaderCompilationTime=t,t?(this._onBeforeShaderCompilationObserver=this.engine.onBeforeShaderCompilationObservable.add(function(){e._shaderCompilationTime.fetchNewFrame(),e._shaderCompilationTime.beginMonitoring()}),this._onAfterShaderCompilationObserver=this.engine.onAfterShaderCompilationObservable.add(function(){e._shaderCompilationTime.endMonitoring()})):(this.engine.onBeforeShaderCompilationObservable.remove(this._onBeforeShaderCompilationObserver),this._onBeforeShaderCompilationObserver=null,this.engine.onAfterShaderCompilationObservable.remove(this._onAfterShaderCompilationObserver),this._onAfterShaderCompilationObserver=null))},enumerable:!1,configurable:!0}),r.prototype.dispose=function(){this.engine.onBeginFrameObservable.remove(this._onBeginFrameObserver),this._onBeginFrameObserver=null,this.engine.onEndFrameObservable.remove(this._onEndFrameObserver),this._onEndFrameObserver=null,this.engine.onBeforeShaderCompilationObservable.remove(this._onBeforeShaderCompilationObserver),this._onBeforeShaderCompilationObserver=null,this.engine.onAfterShaderCompilationObservable.remove(this._onAfterShaderCompilationObserver),this._onAfterShaderCompilationObserver=null,this.engine=null},r}(),y_=function(){function r(t){var e=this;this.scene=t,this._captureActiveMeshesEvaluationTime=!1,this._activeMeshesEvaluationTime=new Xn.a,this._captureRenderTargetsRenderTime=!1,this._renderTargetsRenderTime=new Xn.a,this._captureFrameTime=!1,this._frameTime=new Xn.a,this._captureRenderTime=!1,this._renderTime=new Xn.a,this._captureInterFrameTime=!1,this._interFrameTime=new Xn.a,this._captureParticlesRenderTime=!1,this._particlesRenderTime=new Xn.a,this._captureSpritesRenderTime=!1,this._spritesRenderTime=new Xn.a,this._capturePhysicsTime=!1,this._physicsTime=new Xn.a,this._captureAnimationsTime=!1,this._animationsTime=new Xn.a,this._captureCameraRenderTime=!1,this._cameraRenderTime=new Xn.a,this._onBeforeActiveMeshesEvaluationObserver=null,this._onAfterActiveMeshesEvaluationObserver=null,this._onBeforeRenderTargetsRenderObserver=null,this._onAfterRenderTargetsRenderObserver=null,this._onAfterRenderObserver=null,this._onBeforeDrawPhaseObserver=null,this._onAfterDrawPhaseObserver=null,this._onBeforeAnimationsObserver=null,this._onBeforeParticlesRenderingObserver=null,this._onAfterParticlesRenderingObserver=null,this._onBeforeSpritesRenderingObserver=null,this._onAfterSpritesRenderingObserver=null,this._onBeforePhysicsObserver=null,this._onAfterPhysicsObserver=null,this._onAfterAnimationsObserver=null,this._onBeforeCameraRenderObserver=null,this._onAfterCameraRenderObserver=null,this._onBeforeAnimationsObserver=t.onBeforeAnimationsObservable.add(function(){e._captureActiveMeshesEvaluationTime&&e._activeMeshesEvaluationTime.fetchNewFrame(),e._captureRenderTargetsRenderTime&&e._renderTargetsRenderTime.fetchNewFrame(),e._captureFrameTime&&(Xe.b.StartPerformanceCounter("Scene rendering"),e._frameTime.beginMonitoring()),e._captureInterFrameTime&&e._interFrameTime.endMonitoring(),e._captureParticlesRenderTime&&e._particlesRenderTime.fetchNewFrame(),e._captureSpritesRenderTime&&e._spritesRenderTime.fetchNewFrame(),e._captureAnimationsTime&&e._animationsTime.beginMonitoring(),e.scene.getEngine()._drawCalls.fetchNewFrame()}),this._onAfterRenderObserver=t.onAfterRenderObservable.add(function(){e._captureFrameTime&&(Xe.b.EndPerformanceCounter("Scene rendering"),e._frameTime.endMonitoring()),e._captureRenderTime&&e._renderTime.endMonitoring(!1),e._captureInterFrameTime&&e._interFrameTime.beginMonitoring()})}return Object.defineProperty(r.prototype,"activeMeshesEvaluationTimeCounter",{get:function(){return this._activeMeshesEvaluationTime},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"captureActiveMeshesEvaluationTime",{get:function(){return this._captureActiveMeshesEvaluationTime},set:function(t){var e=this;t!==this._captureActiveMeshesEvaluationTime&&(this._captureActiveMeshesEvaluationTime=t,t?(this._onBeforeActiveMeshesEvaluationObserver=this.scene.onBeforeActiveMeshesEvaluationObservable.add(function(){Xe.b.StartPerformanceCounter("Active meshes evaluation"),e._activeMeshesEvaluationTime.beginMonitoring()}),this._onAfterActiveMeshesEvaluationObserver=this.scene.onAfterActiveMeshesEvaluationObservable.add(function(){Xe.b.EndPerformanceCounter("Active meshes evaluation"),e._activeMeshesEvaluationTime.endMonitoring()})):(this.scene.onBeforeActiveMeshesEvaluationObservable.remove(this._onBeforeActiveMeshesEvaluationObserver),this._onBeforeActiveMeshesEvaluationObserver=null,this.scene.onAfterActiveMeshesEvaluationObservable.remove(this._onAfterActiveMeshesEvaluationObserver),this._onAfterActiveMeshesEvaluationObserver=null))},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"renderTargetsRenderTimeCounter",{get:function(){return this._renderTargetsRenderTime},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"captureRenderTargetsRenderTime",{get:function(){return this._captureRenderTargetsRenderTime},set:function(t){var e=this;t!==this._captureRenderTargetsRenderTime&&(this._captureRenderTargetsRenderTime=t,t?(this._onBeforeRenderTargetsRenderObserver=this.scene.onBeforeRenderTargetsRenderObservable.add(function(){Xe.b.StartPerformanceCounter("Render targets rendering"),e._renderTargetsRenderTime.beginMonitoring()}),this._onAfterRenderTargetsRenderObserver=this.scene.onAfterRenderTargetsRenderObservable.add(function(){Xe.b.EndPerformanceCounter("Render targets rendering"),e._renderTargetsRenderTime.endMonitoring(!1)})):(this.scene.onBeforeRenderTargetsRenderObservable.remove(this._onBeforeRenderTargetsRenderObserver),this._onBeforeRenderTargetsRenderObserver=null,this.scene.onAfterRenderTargetsRenderObservable.remove(this._onAfterRenderTargetsRenderObserver),this._onAfterRenderTargetsRenderObserver=null))},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"particlesRenderTimeCounter",{get:function(){return this._particlesRenderTime},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"captureParticlesRenderTime",{get:function(){return this._captureParticlesRenderTime},set:function(t){var e=this;t!==this._captureParticlesRenderTime&&(this._captureParticlesRenderTime=t,t?(this._onBeforeParticlesRenderingObserver=this.scene.onBeforeParticlesRenderingObservable.add(function(){Xe.b.StartPerformanceCounter("Particles"),e._particlesRenderTime.beginMonitoring()}),this._onAfterParticlesRenderingObserver=this.scene.onAfterParticlesRenderingObservable.add(function(){Xe.b.EndPerformanceCounter("Particles"),e._particlesRenderTime.endMonitoring(!1)})):(this.scene.onBeforeParticlesRenderingObservable.remove(this._onBeforeParticlesRenderingObserver),this._onBeforeParticlesRenderingObserver=null,this.scene.onAfterParticlesRenderingObservable.remove(this._onAfterParticlesRenderingObserver),this._onAfterParticlesRenderingObserver=null))},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"spritesRenderTimeCounter",{get:function(){return this._spritesRenderTime},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"captureSpritesRenderTime",{get:function(){return this._captureSpritesRenderTime},set:function(t){var e=this;t!==this._captureSpritesRenderTime&&(this._captureSpritesRenderTime=t,this.scene.spriteManagers&&(t?(this._onBeforeSpritesRenderingObserver=this.scene.onBeforeSpritesRenderingObservable.add(function(){Xe.b.StartPerformanceCounter("Sprites"),e._spritesRenderTime.beginMonitoring()}),this._onAfterSpritesRenderingObserver=this.scene.onAfterSpritesRenderingObservable.add(function(){Xe.b.EndPerformanceCounter("Sprites"),e._spritesRenderTime.endMonitoring(!1)})):(this.scene.onBeforeSpritesRenderingObservable.remove(this._onBeforeSpritesRenderingObserver),this._onBeforeSpritesRenderingObserver=null,this.scene.onAfterSpritesRenderingObservable.remove(this._onAfterSpritesRenderingObserver),this._onAfterSpritesRenderingObserver=null)))},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"physicsTimeCounter",{get:function(){return this._physicsTime},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"capturePhysicsTime",{get:function(){return this._capturePhysicsTime},set:function(t){var e=this;t!==this._capturePhysicsTime&&this.scene.onBeforePhysicsObservable&&(this._capturePhysicsTime=t,t?(this._onBeforePhysicsObserver=this.scene.onBeforePhysicsObservable.add(function(){Xe.b.StartPerformanceCounter("Physics"),e._physicsTime.beginMonitoring()}),this._onAfterPhysicsObserver=this.scene.onAfterPhysicsObservable.add(function(){Xe.b.EndPerformanceCounter("Physics"),e._physicsTime.endMonitoring()})):(this.scene.onBeforePhysicsObservable.remove(this._onBeforePhysicsObserver),this._onBeforePhysicsObserver=null,this.scene.onAfterPhysicsObservable.remove(this._onAfterPhysicsObserver),this._onAfterPhysicsObserver=null))},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"animationsTimeCounter",{get:function(){return this._animationsTime},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"captureAnimationsTime",{get:function(){return this._captureAnimationsTime},set:function(t){var e=this;t!==this._captureAnimationsTime&&(this._captureAnimationsTime=t,t?this._onAfterAnimationsObserver=this.scene.onAfterAnimationsObservable.add(function(){e._animationsTime.endMonitoring()}):(this.scene.onAfterAnimationsObservable.remove(this._onAfterAnimationsObserver),this._onAfterAnimationsObserver=null))},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"frameTimeCounter",{get:function(){return this._frameTime},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"captureFrameTime",{get:function(){return this._captureFrameTime},set:function(t){this._captureFrameTime=t},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"interFrameTimeCounter",{get:function(){return this._interFrameTime},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"captureInterFrameTime",{get:function(){return this._captureInterFrameTime},set:function(t){this._captureInterFrameTime=t},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"renderTimeCounter",{get:function(){return this._renderTime},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"captureRenderTime",{get:function(){return this._captureRenderTime},set:function(t){var e=this;t!==this._captureRenderTime&&(this._captureRenderTime=t,t?(this._onBeforeDrawPhaseObserver=this.scene.onBeforeDrawPhaseObservable.add(function(){e._renderTime.beginMonitoring(),Xe.b.StartPerformanceCounter("Main render")}),this._onAfterDrawPhaseObserver=this.scene.onAfterDrawPhaseObservable.add(function(){e._renderTime.endMonitoring(!1),Xe.b.EndPerformanceCounter("Main render")})):(this.scene.onBeforeDrawPhaseObservable.remove(this._onBeforeDrawPhaseObserver),this._onBeforeDrawPhaseObserver=null,this.scene.onAfterDrawPhaseObservable.remove(this._onAfterDrawPhaseObserver),this._onAfterDrawPhaseObserver=null))},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"cameraRenderTimeCounter",{get:function(){return this._cameraRenderTime},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"captureCameraRenderTime",{get:function(){return this._captureCameraRenderTime},set:function(t){var e=this;t!==this._captureCameraRenderTime&&(this._captureCameraRenderTime=t,t?(this._onBeforeCameraRenderObserver=this.scene.onBeforeCameraRenderObservable.add(function(n){e._cameraRenderTime.beginMonitoring(),Xe.b.StartPerformanceCounter("Rendering camera "+n.name)}),this._onAfterCameraRenderObserver=this.scene.onAfterCameraRenderObservable.add(function(n){e._cameraRenderTime.endMonitoring(!1),Xe.b.EndPerformanceCounter("Rendering camera "+n.name)})):(this.scene.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver),this._onBeforeCameraRenderObserver=null,this.scene.onAfterCameraRenderObservable.remove(this._onAfterCameraRenderObserver),this._onAfterCameraRenderObserver=null))},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"drawCallsCounter",{get:function(){return this.scene.getEngine()._drawCalls},enumerable:!1,configurable:!0}),r.prototype.dispose=function(){this.scene.onAfterRenderObservable.remove(this._onAfterRenderObserver),this._onAfterRenderObserver=null,this.scene.onBeforeActiveMeshesEvaluationObservable.remove(this._onBeforeActiveMeshesEvaluationObserver),this._onBeforeActiveMeshesEvaluationObserver=null,this.scene.onAfterActiveMeshesEvaluationObservable.remove(this._onAfterActiveMeshesEvaluationObserver),this._onAfterActiveMeshesEvaluationObserver=null,this.scene.onBeforeRenderTargetsRenderObservable.remove(this._onBeforeRenderTargetsRenderObserver),this._onBeforeRenderTargetsRenderObserver=null,this.scene.onAfterRenderTargetsRenderObservable.remove(this._onAfterRenderTargetsRenderObserver),this._onAfterRenderTargetsRenderObserver=null,this.scene.onBeforeAnimationsObservable.remove(this._onBeforeAnimationsObserver),this._onBeforeAnimationsObserver=null,this.scene.onBeforeParticlesRenderingObservable.remove(this._onBeforeParticlesRenderingObserver),this._onBeforeParticlesRenderingObserver=null,this.scene.onAfterParticlesRenderingObservable.remove(this._onAfterParticlesRenderingObserver),this._onAfterParticlesRenderingObserver=null,this._onBeforeSpritesRenderingObserver&&(this.scene.onBeforeSpritesRenderingObservable.remove(this._onBeforeSpritesRenderingObserver),this._onBeforeSpritesRenderingObserver=null),this._onAfterSpritesRenderingObserver&&(this.scene.onAfterSpritesRenderingObservable.remove(this._onAfterSpritesRenderingObserver),this._onAfterSpritesRenderingObserver=null),this.scene.onBeforeDrawPhaseObservable.remove(this._onBeforeDrawPhaseObserver),this._onBeforeDrawPhaseObserver=null,this.scene.onAfterDrawPhaseObservable.remove(this._onAfterDrawPhaseObserver),this._onAfterDrawPhaseObserver=null,this._onBeforePhysicsObserver&&(this.scene.onBeforePhysicsObservable.remove(this._onBeforePhysicsObserver),this._onBeforePhysicsObserver=null),this._onAfterPhysicsObserver&&(this.scene.onAfterPhysicsObservable.remove(this._onAfterPhysicsObserver),this._onAfterPhysicsObserver=null),this.scene.onAfterAnimationsObservable.remove(this._onAfterAnimationsObserver),this._onAfterAnimationsObserver=null,this.scene.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver),this._onBeforeCameraRenderObserver=null,this.scene.onAfterCameraRenderObservable.remove(this._onAfterCameraRenderObserver),this._onAfterCameraRenderObserver=null,this.scene=null},r}(),T_=`#ifdef DIFFUSE +varying vec2 vUVDiffuse; +uniform sampler2D diffuseSampler; +#endif +#ifdef OPACITY +varying vec2 vUVOpacity; +uniform sampler2D opacitySampler; +uniform float opacityIntensity; +#endif +#ifdef EMISSIVE +varying vec2 vUVEmissive; +uniform sampler2D emissiveSampler; +#endif +#ifdef VERTEXALPHA +varying vec4 vColor; +#endif +uniform vec4 glowColor; +void main(void) +{ +vec4 finalColor=glowColor; + +#ifdef DIFFUSE +vec4 albedoTexture=texture2D(diffuseSampler,vUVDiffuse); +#ifdef GLOW + +finalColor.a*=albedoTexture.a; +#endif +#ifdef HIGHLIGHT + +finalColor.a=albedoTexture.a; +#endif +#endif +#ifdef OPACITY +vec4 opacityMap=texture2D(opacitySampler,vUVOpacity); +#ifdef OPACITYRGB +finalColor.a*=getLuminance(opacityMap.rgb); +#else +finalColor.a*=opacityMap.a; +#endif +finalColor.a*=opacityIntensity; +#endif +#ifdef VERTEXALPHA +finalColor.a*=vColor.a; +#endif +#ifdef ALPHATEST +if (finalColor.a +#include +#include[0..maxSimultaneousMorphTargets] + +#include +uniform mat4 viewProjection; +varying vec4 vPosition; +#ifdef UV1 +attribute vec2 uv; +#endif +#ifdef UV2 +attribute vec2 uv2; +#endif +#ifdef DIFFUSE +varying vec2 vUVDiffuse; +uniform mat4 diffuseMatrix; +#endif +#ifdef OPACITY +varying vec2 vUVOpacity; +uniform mat4 opacityMatrix; +#endif +#ifdef EMISSIVE +varying vec2 vUVEmissive; +uniform mat4 emissiveMatrix; +#endif +#ifdef VERTEXALPHA +attribute vec4 color; +varying vec4 vColor; +#endif +void main(void) +{ +vec3 positionUpdated=position; +#ifdef UV1 +vec2 uvUpdated=uv; +#endif +#include[0..maxSimultaneousMorphTargets] +#include +#include +#ifdef CUBEMAP +vPosition=finalWorld*vec4(positionUpdated,1.0); +gl_Position=viewProjection*finalWorld*vec4(position,1.0); +#else +vPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0); +gl_Position=vPosition; +#endif +#ifdef DIFFUSE +#ifdef DIFFUSEUV1 +vUVDiffuse=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0)); +#endif +#ifdef DIFFUSEUV2 +vUVDiffuse=vec2(diffuseMatrix*vec4(uv2,1.0,0.0)); +#endif +#endif +#ifdef OPACITY +#ifdef OPACITYUV1 +vUVOpacity=vec2(opacityMatrix*vec4(uvUpdated,1.0,0.0)); +#endif +#ifdef OPACITYUV2 +vUVOpacity=vec2(opacityMatrix*vec4(uv2,1.0,0.0)); +#endif +#endif +#ifdef EMISSIVE +#ifdef EMISSIVEUV1 +vUVEmissive=vec2(emissiveMatrix*vec4(uvUpdated,1.0,0.0)); +#endif +#ifdef EMISSIVEUV2 +vUVEmissive=vec2(emissiveMatrix*vec4(uv2,1.0,0.0)); +#endif +#endif +#ifdef VERTEXALPHA +vColor=color; +#endif +}`;ze.a.ShadersStore.glowMapGenerationVertexShader=E_;var ho=function(){function r(t,e){this._vertexBuffers={},this._maxSize=0,this._mainTextureDesiredSize={width:0,height:0},this._shouldRender=!0,this._postProcesses=[],this._textures=[],this._emissiveTextureAndColor={texture:null,color:new M.b},this.neutralColor=new M.b,this.isEnabled=!0,this.disableBoundingBoxesFromEffectLayer=!1,this.onDisposeObservable=new R.c,this.onBeforeRenderMainTextureObservable=new R.c,this.onBeforeComposeObservable=new R.c,this.onBeforeRenderMeshToEffect=new R.c,this.onAfterRenderMeshToEffect=new R.c,this.onAfterComposeObservable=new R.c,this.onSizeChangedObservable=new R.c,this.name=t,this._scene=e||te.a.LastCreatedScene,r._SceneComponentInitialization(this._scene),this._engine=this._scene.getEngine(),this._maxSize=this._engine.getCaps().maxTextureSize,this._scene.effectLayers.push(this),this._generateIndexBuffer(),this._generateVertexBuffer()}return Object.defineProperty(r.prototype,"camera",{get:function(){return this._effectLayerOptions.camera},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"renderingGroupId",{get:function(){return this._effectLayerOptions.renderingGroupId},set:function(t){this._effectLayerOptions.renderingGroupId=t},enumerable:!1,configurable:!0}),r.prototype._init=function(t){this._effectLayerOptions=Object(c.a)({mainTextureRatio:.5,alphaBlendingMode:h.a.ALPHA_COMBINE,camera:null,renderingGroupId:-1},t),this._setMainTextureSize(),this._createMainTexture(),this._createTextureAndPostProcesses(),this._mergeEffect=this._createMergeEffect()},r.prototype._generateIndexBuffer=function(){var t=[];t.push(0),t.push(1),t.push(2),t.push(0),t.push(2),t.push(3),this._indexBuffer=this._engine.createIndexBuffer(t)},r.prototype._generateVertexBuffer=function(){var t=[];t.push(1,1),t.push(-1,1),t.push(-1,-1),t.push(1,-1);var e=new Oe.b(this._engine,t,Oe.b.PositionKind,!1,!1,2);this._vertexBuffers[Oe.b.PositionKind]=e},r.prototype._setMainTextureSize=function(){this._effectLayerOptions.mainTextureFixedSize?(this._mainTextureDesiredSize.width=this._effectLayerOptions.mainTextureFixedSize,this._mainTextureDesiredSize.height=this._effectLayerOptions.mainTextureFixedSize):(this._mainTextureDesiredSize.width=this._engine.getRenderWidth()*this._effectLayerOptions.mainTextureRatio,this._mainTextureDesiredSize.height=this._engine.getRenderHeight()*this._effectLayerOptions.mainTextureRatio,this._mainTextureDesiredSize.width=this._engine.needPOTTextures?Ue.a.GetExponentOfTwo(this._mainTextureDesiredSize.width,this._maxSize):this._mainTextureDesiredSize.width,this._mainTextureDesiredSize.height=this._engine.needPOTTextures?Ue.a.GetExponentOfTwo(this._mainTextureDesiredSize.height,this._maxSize):this._mainTextureDesiredSize.height),this._mainTextureDesiredSize.width=Math.floor(this._mainTextureDesiredSize.width),this._mainTextureDesiredSize.height=Math.floor(this._mainTextureDesiredSize.height)},r.prototype._createMainTexture=function(){var t=this;this._mainTexture=new sn("HighlightLayerMainRTT",{width:this._mainTextureDesiredSize.width,height:this._mainTextureDesiredSize.height},this._scene,!1,!0,h.a.TEXTURETYPE_UNSIGNED_INT),this._mainTexture.activeCamera=this._effectLayerOptions.camera,this._mainTexture.wrapU=we.a.CLAMP_ADDRESSMODE,this._mainTexture.wrapV=we.a.CLAMP_ADDRESSMODE,this._mainTexture.anisotropicFilteringLevel=1,this._mainTexture.updateSamplingMode(we.a.BILINEAR_SAMPLINGMODE),this._mainTexture.renderParticles=!1,this._mainTexture.renderList=null,this._mainTexture.ignoreCameraViewport=!0,this._mainTexture.customRenderFunction=function(n,i,o,a){var s;t.onBeforeRenderMainTextureObservable.notifyObservers(t);var d=t._scene.getEngine();if(a.length){for(d.setColorWrite(!1),s=0;s4&&(a.push(Oe.b.MatricesIndicesExtraKind),a.push(Oe.b.MatricesWeightsExtraKind)),o.push("#define NUM_BONE_INFLUENCERS "+s.numBoneInfluencers);var z=s.skeleton;z&&z.isUsingTextureForMatrices?o.push("#define BONETEXTURE"):o.push("#define BonesPerMesh "+(z?z.bones.length+1:0)),s.numBoneInfluencers>0&&F.addCPUSkinningFallback(0,s)}else o.push("#define NUM_BONE_INFLUENCERS 0");var J=s.morphTargetManager,ie=0;J&&J.numInfluencers>0&&(o.push("#define MORPHTARGETS"),ie=J.numInfluencers,o.push("#define NUM_MORPH_INFLUENCERS "+ie),et.a.PrepareAttributesForMorphTargetsInfluencers(a,s,ie)),e&&(o.push("#define INSTANCES"),et.a.PushAttributesForInstances(a),t.getRenderingMesh().hasThinInstances&&o.push("#define THIN_INSTANCES")),this._addCustomEffectDefines(o);var se=o.join(` +`);return this._cachedDefines!==se&&(this._cachedDefines=se,this._effectLayerMapGenerationEffect=this._scene.getEngine().createEffect("glowMapGeneration",a,["world","mBones","viewProjection","glowColor","morphTargetInfluences","boneTextureWidth","diffuseMatrix","emissiveMatrix","opacityMatrix","opacityIntensity"],["diffuseSampler","emissiveSampler","opacitySampler","boneSampler"],se,F,void 0,void 0,{maxSimultaneousMorphTargets:ie})),this._effectLayerMapGenerationEffect.isReady()},r.prototype.render=function(){var t=this._mergeEffect;if(t.isReady()){for(var e=0;e-1&&this._scene.effectLayers.splice(e,1),this.onDisposeObservable.notifyObservers(this),this.onDisposeObservable.clear(),this.onBeforeRenderMainTextureObservable.clear(),this.onBeforeComposeObservable.clear(),this.onBeforeRenderMeshToEffect.clear(),this.onAfterRenderMeshToEffect.clear(),this.onAfterComposeObservable.clear(),this.onSizeChangedObservable.clear()},r.prototype.getClassName=function(){return"EffectLayer"},r.Parse=function(t,e,n){return Xe.b.Instantiate(t.customType).Parse(t,e,n)},r._SceneComponentInitialization=function(t){throw An.a.WarnImport("EffectLayerSceneComponent")},Object(c.c)([Object(L.c)()],r.prototype,"name",void 0),Object(c.c)([Object(L.f)()],r.prototype,"neutralColor",void 0),Object(c.c)([Object(L.c)()],r.prototype,"isEnabled",void 0),Object(c.c)([Object(L.d)()],r.prototype,"camera",null),Object(c.c)([Object(L.c)()],r.prototype,"renderingGroupId",null),Object(c.c)([Object(L.c)()],r.prototype,"disableBoundingBoxesFromEffectLayer",void 0),r}();U.a.AddParser(at.a.NAME_EFFECTLAYER,function(r,t,e,n){if(r.effectLayers){e.effectLayers||(e.effectLayers=new Array);for(var i=0;i0){this._previousStencilState=this._engine.getStencilBuffer();for(var i=0,o=n;i-1)){this._renderEffects=!0,this._needStencil=this._needStencil||a.needStencil();var s=a._mainTexture;s._shouldRender()&&(this.scene.incrementRenderId(),s.render(!1,!1),e=!0)}}this.scene.incrementRenderId()}return e},r.prototype._setStencil=function(){this._needStencil&&this._engine.setStencilBuffer(!0)},r.prototype._setStencilBack=function(){this._needStencil&&this._engine.setStencilBuffer(this._previousStencilState)},r.prototype._draw=function(t){if(this._renderEffects){this._engine.setDepthBuffer(!1);for(var e=this.scene.effectLayers,n=0;n-1},t.prototype.referenceMeshToUseItsOwnMaterial=function(e){this._meshesUsingTheirOwnMaterials.push(e.uniqueId)},t.prototype.unReferenceMeshFromUsingItsOwnMaterial=function(e){for(var n=this._meshesUsingTheirOwnMaterials.indexOf(e.uniqueId);n>=0;)this._meshesUsingTheirOwnMaterials.splice(n,1),n=this._meshesUsingTheirOwnMaterials.indexOf(e.uniqueId)},t.prototype._disposeMesh=function(e){this.removeIncludedOnlyMesh(e),this.removeExcludedMesh(e)},t.prototype.getClassName=function(){return"GlowLayer"},t.prototype.serialize=function(){var e,n=L.a.Serialize(this);if(n.customType="BABYLON.GlowLayer",n.includedMeshes=[],this._includedOnlyMeshes.length)for(e=0;e0&&t.isBackground===e&&t.renderTargetTextures.indexOf(i)>-1&&(t.layerMask&n)!=0},r.prototype._drawRenderTargetBackground=function(t){var e=this;this._draw(function(n){return e._drawRenderTargetPredicate(n,!0,e.scene.activeCamera.layerMask,t)})},r.prototype._drawRenderTargetForeground=function(t){var e=this;this._draw(function(n){return e._drawRenderTargetPredicate(n,!1,e.scene.activeCamera.layerMask,t)})},r.prototype.addFromContainer=function(t){var e=this;t.layers&&t.layers.forEach(function(n){e.scene.layers.push(n)})},r.prototype.removeFromContainer=function(t,e){var n=this;e===void 0&&(e=!1),t.layers&&t.layers.forEach(function(i){var o=n.scene.layers.indexOf(i);o!==-1&&n.scene.layers.splice(o,1),e&&i.dispose()})},r}(),x_=` +varying vec2 vUV; +uniform sampler2D textureSampler; + +uniform vec4 color; + +#include +void main(void) { +vec4 baseColor=texture2D(textureSampler,vUV); +#ifdef LINEAR +baseColor.rgb=toGammaSpace(baseColor.rgb); +#endif +#ifdef ALPHATEST +if (baseColor.a<0.4) +discard; +#endif +gl_FragColor=baseColor*color; +}`;ze.a.ShadersStore.layerPixelShader=x_;var C_=` +attribute vec2 position; + +uniform vec2 scale; +uniform vec2 offset; +uniform mat4 textureMatrix; + +varying vec2 vUV; +const vec2 madd=vec2(0.5,0.5); +void main(void) { +vec2 shiftedPosition=position*scale+offset; +vUV=vec2(textureMatrix*vec4(shiftedPosition*madd+madd,1.0,0.0)); +gl_Position=vec4(shiftedPosition,0.0,1.0); +}`;ze.a.ShadersStore.layerVertexShader=C_;var R_=function(){function r(t,e,n,i,o){this.name=t,this.scale=new u.d(1,1),this.offset=new u.d(0,0),this.alphaBlendingMode=h.a.ALPHA_COMBINE,this.layerMask=268435455,this.renderTargetTextures=[],this.renderOnlyInRenderTargetTextures=!1,this._vertexBuffers={},this.onDisposeObservable=new R.c,this.onBeforeRenderObservable=new R.c,this.onAfterRenderObservable=new R.c,this.texture=e?new we.a(e,n,!0):null,this.isBackground=i===void 0||i,this.color=o===void 0?new M.b(1,1,1,1):o,this._scene=n||te.a.LastCreatedScene;var a=this._scene._getComponent(at.a.NAME_LAYER);a||(a=new Nu(this._scene),this._scene._addComponent(a)),this._scene.layers.push(this);var s=this._scene.getEngine(),d=[];d.push(1,1),d.push(-1,1),d.push(-1,-1),d.push(1,-1);var p=new Oe.b(s,d,Oe.b.PositionKind,!1,!1,2);this._vertexBuffers[Oe.b.PositionKind]=p,this._createIndexBuffer()}return Object.defineProperty(r.prototype,"onDispose",{set:function(t){this._onDisposeObserver&&this.onDisposeObservable.remove(this._onDisposeObserver),this._onDisposeObserver=this.onDisposeObservable.add(t)},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"onBeforeRender",{set:function(t){this._onBeforeRenderObserver&&this.onBeforeRenderObservable.remove(this._onBeforeRenderObserver),this._onBeforeRenderObserver=this.onBeforeRenderObservable.add(t)},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"onAfterRender",{set:function(t){this._onAfterRenderObserver&&this.onAfterRenderObservable.remove(this._onAfterRenderObserver),this._onAfterRenderObserver=this.onAfterRenderObservable.add(t)},enumerable:!1,configurable:!0}),r.prototype._createIndexBuffer=function(){var t=this._scene.getEngine(),e=[];e.push(0),e.push(1),e.push(2),e.push(0),e.push(2),e.push(3),this._indexBuffer=t.createIndexBuffer(e)},r.prototype._rebuild=function(){var t=this._vertexBuffers[Oe.b.PositionKind];t&&t._rebuild(),this._createIndexBuffer()},r.prototype.render=function(){var t=this._scene.getEngine(),e="";this.alphaTest&&(e="#define ALPHATEST"),this.texture&&!this.texture.gammaSpace&&(e+=`\r +#define LINEAR`),this._previousDefines!==e&&(this._previousDefines=e,this._effect=t.createEffect("layer",[Oe.b.PositionKind],["textureMatrix","color","scale","offset"],["textureSampler"],e));var n=this._effect;n&&n.isReady()&&this.texture&&this.texture.isReady()&&(t=this._scene.getEngine(),this.onBeforeRenderObservable.notifyObservers(this),t.enableEffect(n),t.setState(!1),n.setTexture("textureSampler",this.texture),n.setMatrix("textureMatrix",this.texture.getTextureMatrix()),n.setFloat4("color",this.color.r,this.color.g,this.color.b,this.color.a),n.setVector2("offset",this.offset),n.setVector2("scale",this.scale),t.bindBuffers(this._vertexBuffers,this._indexBuffer,n),this.alphaTest?t.drawElementsType(Ht.a.TriangleFillMode,0,6):(t.setAlphaMode(this.alphaBlendingMode),t.drawElementsType(Ht.a.TriangleFillMode,0,6),t.setAlphaMode(h.a.ALPHA_DISABLE)),this.onAfterRenderObservable.notifyObservers(this))},r.prototype.dispose=function(){var t=this._vertexBuffers[Oe.b.PositionKind];t&&(t.dispose(),this._vertexBuffers[Oe.b.PositionKind]=null),this._indexBuffer&&(this._scene.getEngine()._releaseBuffer(this._indexBuffer),this._indexBuffer=null),this.texture&&(this.texture.dispose(),this.texture=null),this.renderTargetTextures=[];var e=this._scene.layers.indexOf(this);this._scene.layers.splice(e,1),this.onDisposeObservable.notifyObservers(this),this.onDisposeObservable.clear(),this.onAfterRenderObservable.clear(),this.onBeforeRenderObservable.clear()},r}(),wu=function(){function r(t,e,n,i,o){this.size=t,this.position=e,this.alphaMode=h.a.ALPHA_ONEONE,this.color=n||new M.a(1,1,1),this.texture=i?new we.a(i,o.getScene(),!0):null,this._system=o,o.lensFlares.push(this)}return r.AddFlare=function(t,e,n,i,o){return new r(t,e,n,i,o)},r.prototype.dispose=function(){this.texture&&this.texture.dispose();var t=this._system.lensFlares.indexOf(this);this._system.lensFlares.splice(t,1)},r}(),O_=` +varying vec2 vUV; +uniform sampler2D textureSampler; + +uniform vec4 color; +void main(void) { +vec4 baseColor=texture2D(textureSampler,vUV); +gl_FragColor=baseColor*color; +}`;ze.a.ShadersStore.lensFlarePixelShader=O_;var M_=` +attribute vec2 position; + +uniform mat4 viewportMatrix; + +varying vec2 vUV; +const vec2 madd=vec2(0.5,0.5); +void main(void) { +vUV=position*madd+madd; +gl_Position=viewportMatrix*vec4(position,0.0,1.0); +}`;ze.a.ShadersStore.lensFlareVertexShader=M_;var zs=function(){function r(t,e,n){this.name=t,this.lensFlares=new Array,this.borderLimit=300,this.viewportBorder=0,this.layerMask=268435455,this._vertexBuffers={},this._isEnabled=!0,this._scene=n||te.a.LastCreatedScene,r._SceneComponentInitialization(this._scene),this._emitter=e,this.id=t,n.lensFlareSystems.push(this),this.meshesSelectionPredicate=function(s){return n.activeCamera&&s.material&&s.isVisible&&s.isEnabled()&&s.isBlocker&&(s.layerMask&n.activeCamera.layerMask)!=0};var i=n.getEngine(),o=[];o.push(1,1),o.push(-1,1),o.push(-1,-1),o.push(1,-1),this._vertexBuffers[Oe.b.PositionKind]=new Oe.b(i,o,Oe.b.PositionKind,!1,!1,2);var a=[];a.push(0),a.push(1),a.push(2),a.push(0),a.push(2),a.push(3),this._indexBuffer=i.createIndexBuffer(a),this._effect=i.createEffect("lensFlare",[Oe.b.PositionKind],["color","viewportMatrix"],["textureSampler"],"")}return Object.defineProperty(r.prototype,"isEnabled",{get:function(){return this._isEnabled},set:function(t){this._isEnabled=t},enumerable:!1,configurable:!0}),r.prototype.getScene=function(){return this._scene},r.prototype.getEmitter=function(){return this._emitter},r.prototype.setEmitter=function(t){this._emitter=t},r.prototype.getEmitterPosition=function(){return this._emitter.getAbsolutePosition?this._emitter.getAbsolutePosition():this._emitter.position},r.prototype.computeEffectivePosition=function(t){var e=this.getEmitterPosition();return e=u.e.Project(e,u.a.Identity(),this._scene.getTransformMatrix(),t),this._positionX=e.x,this._positionY=e.y,e=u.e.TransformCoordinates(this.getEmitterPosition(),this._scene.getViewMatrix()),this.viewportBorder>0&&(t.x-=this.viewportBorder,t.y-=this.viewportBorder,t.width+=2*this.viewportBorder,t.height+=2*this.viewportBorder,e.x+=this.viewportBorder,e.y+=this.viewportBorder,this._positionX+=this.viewportBorder,this._positionY+=this.viewportBorder),e.z>0&&(this._positionX>t.x&&this._positionXt.y&&(this._positionY,t.y,t.height),!0)},r.prototype._isVisible=function(){if(!this._isEnabled||!this._scene.activeCamera)return!1;var t=this.getEmitterPosition().subtract(this._scene.activeCamera.globalPosition),e=t.length();t.normalize();var n=new dn.a(this._scene.activeCamera.globalPosition,t),i=this._scene.pickWithRay(n,this.meshesSelectionPredicate,!0);return!i||!i.hit||i.distance>e},r.prototype.render=function(){if(!this._effect.isReady()||!this._scene.activeCamera)return!1;var t,e,n=this._scene.getEngine(),i=this._scene.activeCamera.viewport.toGlobal(n.getRenderWidth(!0),n.getRenderHeight(!0));if(!this.computeEffectivePosition(i)||!this._isVisible())return!1;var o=(t=this._positionXi.x+i.width-this.borderLimit?this._positionX-i.x-i.width+this.borderLimit:0)>(e=this._positionYi.y+i.height-this.borderLimit?this._positionY-i.y-i.height+this.borderLimit:0)?t:e;(o-=this.viewportBorder)>this.borderLimit&&(o=this.borderLimit);var a=1-$.a.Clamp(o/this.borderLimit,0,1);if(a<0)return!1;a>1&&(a=1),this.viewportBorder>0&&(i.x+=this.viewportBorder,i.y+=this.viewportBorder,i.width-=2*this.viewportBorder,i.height-=2*this.viewportBorder,this._positionX-=this.viewportBorder,this._positionY-=this.viewportBorder);var s=i.x+i.width/2,d=i.y+i.height/2,p=s-this._positionX,b=d-this._positionY;n.enableEffect(this._effect),n.setState(!1),n.setDepthBuffer(!1),n.bindBuffers(this._vertexBuffers,this._indexBuffer,this._effect);for(var x=0;x0);for(var n=0,i=e;n0)}},r}();zs._SceneComponentInitialization=function(r){var t=r._getComponent(at.a.NAME_LENSFLARESYSTEM);t||(t=new Fu(r),r._addComponent(t))};var I_=` + + + + +float bayerDither2(vec2 _P) { +return mod(2.0*_P.y+_P.x+1.0,4.0); +} + + +float bayerDither4(vec2 _P) { +vec2 P1=mod(_P,2.0); +vec2 P2=floor(0.5*mod(_P,4.0)); +return 4.0*bayerDither2(P1)+bayerDither2(P2); +} + +float bayerDither8(vec2 _P) { +vec2 P1=mod(_P,2.0); +vec2 P2=floor(0.5*mod(_P,4.0)); +vec2 P4=floor(0.25*mod(_P,8.0)); +return 4.0*(4.0*bayerDither2(P1)+bayerDither2(P2))+bayerDither2(P4); +} +`;ze.a.IncludesShadersStore.bayerDitherFunctions=I_;var D_=`#if SM_FLOAT == 0 +#include +#endif +#if SM_SOFTTRANSPARENTSHADOW == 1 +#include +uniform float softTransparentShadowSM; +#endif +varying float vDepthMetricSM; +#if SM_USEDISTANCE == 1 +uniform vec3 lightDataSM; +varying vec3 vPositionWSM; +#endif +uniform vec3 biasAndScaleSM; +uniform vec2 depthValuesSM; +#if defined(SM_DEPTHCLAMP) && SM_DEPTHCLAMP == 1 +varying float zSM; +#endif +`;ze.a.IncludesShadersStore.shadowMapFragmentDeclaration=D_;var L_=` float depthSM=vDepthMetricSM; +#if defined(SM_DEPTHCLAMP) && SM_DEPTHCLAMP == 1 +#if SM_USEDISTANCE == 1 +depthSM=clamp(((length(vPositionWSM-lightDataSM)+depthValuesSM.x)/(depthValuesSM.y))+biasAndScaleSM.x,0.0,1.0); +#else +depthSM=clamp(((zSM+depthValuesSM.x)/(depthValuesSM.y))+biasAndScaleSM.x,0.0,1.0); +#endif +gl_FragDepth=depthSM; +#elif SM_USEDISTANCE == 1 +depthSM=(length(vPositionWSM-lightDataSM)+depthValuesSM.x)/(depthValuesSM.y)+biasAndScaleSM.x; +#endif +#if SM_ESM == 1 +depthSM=clamp(exp(-min(87.,biasAndScaleSM.z*depthSM)),0.,1.); +#endif +#if SM_FLOAT == 1 +gl_FragColor=vec4(depthSM,1.0,1.0,1.0); +#else +gl_FragColor=pack(depthSM); +#endif +return;`;ze.a.IncludesShadersStore.shadowMapFragment=L_;var N_=`#include +#ifdef ALPHATEST +varying vec2 vUV; +uniform sampler2D diffuseSampler; +#endif +#include +void main(void) +{ +#include +#ifdef ALPHATEST +float alphaFromAlphaTexture=texture2D(diffuseSampler,vUV).a; +if (alphaFromAlphaTexture<0.4) +discard; +#endif +#if SM_SOFTTRANSPARENTSHADOW == 1 +#ifdef ALPHATEST +if ((bayerDither8(floor(mod(gl_FragCoord.xy,8.0))))/64.0>=softTransparentShadowSM*alphaFromAlphaTexture) discard; +#else +if ((bayerDither8(floor(mod(gl_FragCoord.xy,8.0))))/64.0>=softTransparentShadowSM) discard; +#endif +#endif +#include +}`;ze.a.ShadersStore.shadowMapPixelShader=N_;var w_=`#if SM_NORMALBIAS == 1 +uniform vec3 lightDataSM; +#endif +uniform vec3 biasAndScaleSM; +uniform vec2 depthValuesSM; +varying float vDepthMetricSM; +#if SM_USEDISTANCE == 1 +varying vec3 vPositionWSM; +#endif +#if defined(SM_DEPTHCLAMP) && SM_DEPTHCLAMP == 1 +varying float zSM; +#endif +`;ze.a.IncludesShadersStore.shadowMapVertexDeclaration=w_;var F_=` +#if SM_NORMALBIAS == 1 +#if SM_DIRECTIONINLIGHTDATA == 1 +vec3 worldLightDirSM=normalize(-lightDataSM.xyz); +#else +vec3 directionToLightSM=lightDataSM.xyz-worldPos.xyz; +vec3 worldLightDirSM=normalize(directionToLightSM); +#endif +float ndlSM=dot(vNormalW,worldLightDirSM); +float sinNLSM=sqrt(1.0-ndlSM*ndlSM); +float normalBiasSM=biasAndScaleSM.y*sinNLSM; +worldPos.xyz-=vNormalW*normalBiasSM; +#endif +`;ze.a.IncludesShadersStore.shadowMapVertexNormalBias=F_;var B_=`#if SM_USEDISTANCE == 1 +vPositionWSM=worldPos.xyz; +#endif +#if SM_DEPTHTEXTURE == 1 + +gl_Position.z+=biasAndScaleSM.x*gl_Position.w; +#endif +#if defined(SM_DEPTHCLAMP) && SM_DEPTHCLAMP == 1 +zSM=gl_Position.z; +gl_Position.z=0.0; +#elif SM_USEDISTANCE == 0 + +vDepthMetricSM=((gl_Position.z+depthValuesSM.x)/(depthValuesSM.y))+biasAndScaleSM.x; +#endif +`;ze.a.IncludesShadersStore.shadowMapVertexMetric=B_;var U_=` +attribute vec3 position; +#ifdef NORMAL +attribute vec3 normal; +#endif +#include +#include +#include[0..maxSimultaneousMorphTargets] + +#include +#include +uniform mat4 viewProjection; +#ifdef ALPHATEST +varying vec2 vUV; +uniform mat4 diffuseMatrix; +#ifdef UV1 +attribute vec2 uv; +#endif +#ifdef UV2 +attribute vec2 uv2; +#endif +#endif +#include +#include +void main(void) +{ +vec3 positionUpdated=position; +#ifdef UV1 +vec2 uvUpdated=uv; +#endif +#ifdef NORMAL +vec3 normalUpdated=normal; +#endif +#include[0..maxSimultaneousMorphTargets] +#include +#include +vec4 worldPos=finalWorld*vec4(positionUpdated,1.0); +#ifdef NORMAL +mat3 normWorldSM=mat3(finalWorld); +#if defined(INSTANCES) && defined(THIN_INSTANCES) +vec3 vNormalW=normalUpdated/vec3(dot(normWorldSM[0],normWorldSM[0]),dot(normWorldSM[1],normWorldSM[1]),dot(normWorldSM[2],normWorldSM[2])); +vNormalW=normalize(normWorldSM*vNormalW); +#else +#ifdef NONUNIFORMSCALING +normWorldSM=transposeMat3(inverseMat3(normWorldSM)); +#endif +vec3 vNormalW=normalize(normWorldSM*normalUpdated); +#endif +#endif +#include + +gl_Position=viewProjection*worldPos; +#include +#ifdef ALPHATEST +#ifdef UV1 +vUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0)); +#endif +#ifdef UV2 +vUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0)); +#endif +#endif +#include +}`;ze.a.ShadersStore.shadowMapVertexShader=U_;var V_=` +varying vec2 vUV; +uniform sampler2D textureSampler; + +uniform vec2 screenSize; +void main(void) +{ +vec4 colorDepth=vec4(0.0); +for (int x=-OFFSET; x<=OFFSET; x++) +for (int y=-OFFSET; y<=OFFSET; y++) +colorDepth+=texture2D(textureSampler,vUV+vec2(x,y)/screenSize); +gl_FragColor=(colorDepth/float((OFFSET*2+1)*(OFFSET*2+1))); +}`;ze.a.ShadersStore.depthBoxBlurPixelShader=V_;var k_=`#if SM_SOFTTRANSPARENTSHADOW == 1 +if ((bayerDither8(floor(mod(gl_FragCoord.xy,8.0))))/64.0>=softTransparentShadowSM*alpha) discard; +#endif +`;ze.a.IncludesShadersStore.shadowMapFragmentSoftTransparentShadow=k_;var Bu=new u.a,Uu=new u.a,kn=function(){function r(t,e,n){this.onBeforeShadowMapRenderObservable=new R.c,this.onAfterShadowMapRenderObservable=new R.c,this.onBeforeShadowMapRenderMeshObservable=new R.c,this.onAfterShadowMapRenderMeshObservable=new R.c,this._bias=5e-5,this._normalBias=0,this._blurBoxOffset=1,this._blurScale=2,this._blurKernel=1,this._useKernelBlur=!1,this._filter=r.FILTER_NONE,this._filteringQuality=r.QUALITY_HIGH,this._contactHardeningLightSizeUVRatio=.1,this._darkness=0,this._transparencyShadow=!1,this.enableSoftTransparentShadow=!1,this.frustumEdgeFalloff=0,this.forceBackFacesOnly=!1,this._lightDirection=u.e.Zero(),this._viewMatrix=u.a.Zero(),this._projectionMatrix=u.a.Zero(),this._transformMatrix=u.a.Zero(),this._cachedPosition=new u.e(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),this._cachedDirection=new u.e(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),this._currentFaceIndex=0,this._currentFaceIndexCache=0,this._defaultTextureMatrix=u.a.Identity(),this._mapSize=t,this._light=e,this._scene=e.getScene(),e._shadowGenerator=this,this.id=e.id,r._SceneComponentInitialization(this._scene);var i=this._scene.getEngine().getCaps();n?i.textureFloatRender&&i.textureFloatLinearFiltering?this._textureType=h.a.TEXTURETYPE_FLOAT:i.textureHalfFloatRender&&i.textureHalfFloatLinearFiltering?this._textureType=h.a.TEXTURETYPE_HALF_FLOAT:this._textureType=h.a.TEXTURETYPE_UNSIGNED_INT:i.textureHalfFloatRender&&i.textureHalfFloatLinearFiltering?this._textureType=h.a.TEXTURETYPE_HALF_FLOAT:i.textureFloatRender&&i.textureFloatLinearFiltering?this._textureType=h.a.TEXTURETYPE_FLOAT:this._textureType=h.a.TEXTURETYPE_UNSIGNED_INT,this._initializeGenerator(),this._applyFilterValues()}return Object.defineProperty(r.prototype,"bias",{get:function(){return this._bias},set:function(t){this._bias=t},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"normalBias",{get:function(){return this._normalBias},set:function(t){this._normalBias=t},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"blurBoxOffset",{get:function(){return this._blurBoxOffset},set:function(t){this._blurBoxOffset!==t&&(this._blurBoxOffset=t,this._disposeBlurPostProcesses())},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"blurScale",{get:function(){return this._blurScale},set:function(t){this._blurScale!==t&&(this._blurScale=t,this._disposeBlurPostProcesses())},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"blurKernel",{get:function(){return this._blurKernel},set:function(t){this._blurKernel!==t&&(this._blurKernel=t,this._disposeBlurPostProcesses())},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"useKernelBlur",{get:function(){return this._useKernelBlur},set:function(t){this._useKernelBlur!==t&&(this._useKernelBlur=t,this._disposeBlurPostProcesses())},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"depthScale",{get:function(){return this._depthScale!==void 0?this._depthScale:this._light.getDepthScale()},set:function(t){this._depthScale=t},enumerable:!1,configurable:!0}),r.prototype._validateFilter=function(t){return t},Object.defineProperty(r.prototype,"filter",{get:function(){return this._filter},set:function(t){if(t=this._validateFilter(t),this._light.needCube()){if(t===r.FILTER_BLUREXPONENTIALSHADOWMAP)return void(this.useExponentialShadowMap=!0);if(t===r.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP)return void(this.useCloseExponentialShadowMap=!0);if(t===r.FILTER_PCF||t===r.FILTER_PCSS)return void(this.usePoissonSampling=!0)}t!==r.FILTER_PCF&&t!==r.FILTER_PCSS||this._scene.getEngine().webGLVersion!==1?this._filter!==t&&(this._filter=t,this._disposeBlurPostProcesses(),this._applyFilterValues(),this._light._markMeshesAsLightDirty()):this.usePoissonSampling=!0},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"usePoissonSampling",{get:function(){return this.filter===r.FILTER_POISSONSAMPLING},set:function(t){var e=this._validateFilter(r.FILTER_POISSONSAMPLING);(t||this.filter===r.FILTER_POISSONSAMPLING)&&(this.filter=t?e:r.FILTER_NONE)},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"useExponentialShadowMap",{get:function(){return this.filter===r.FILTER_EXPONENTIALSHADOWMAP},set:function(t){var e=this._validateFilter(r.FILTER_EXPONENTIALSHADOWMAP);(t||this.filter===r.FILTER_EXPONENTIALSHADOWMAP)&&(this.filter=t?e:r.FILTER_NONE)},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"useBlurExponentialShadowMap",{get:function(){return this.filter===r.FILTER_BLUREXPONENTIALSHADOWMAP},set:function(t){var e=this._validateFilter(r.FILTER_BLUREXPONENTIALSHADOWMAP);(t||this.filter===r.FILTER_BLUREXPONENTIALSHADOWMAP)&&(this.filter=t?e:r.FILTER_NONE)},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"useCloseExponentialShadowMap",{get:function(){return this.filter===r.FILTER_CLOSEEXPONENTIALSHADOWMAP},set:function(t){var e=this._validateFilter(r.FILTER_CLOSEEXPONENTIALSHADOWMAP);(t||this.filter===r.FILTER_CLOSEEXPONENTIALSHADOWMAP)&&(this.filter=t?e:r.FILTER_NONE)},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"useBlurCloseExponentialShadowMap",{get:function(){return this.filter===r.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP},set:function(t){var e=this._validateFilter(r.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP);(t||this.filter===r.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP)&&(this.filter=t?e:r.FILTER_NONE)},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"usePercentageCloserFiltering",{get:function(){return this.filter===r.FILTER_PCF},set:function(t){var e=this._validateFilter(r.FILTER_PCF);(t||this.filter===r.FILTER_PCF)&&(this.filter=t?e:r.FILTER_NONE)},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"filteringQuality",{get:function(){return this._filteringQuality},set:function(t){this._filteringQuality!==t&&(this._filteringQuality=t,this._disposeBlurPostProcesses(),this._applyFilterValues(),this._light._markMeshesAsLightDirty())},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"useContactHardeningShadow",{get:function(){return this.filter===r.FILTER_PCSS},set:function(t){var e=this._validateFilter(r.FILTER_PCSS);(t||this.filter===r.FILTER_PCSS)&&(this.filter=t?e:r.FILTER_NONE)},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"contactHardeningLightSizeUVRatio",{get:function(){return this._contactHardeningLightSizeUVRatio},set:function(t){this._contactHardeningLightSizeUVRatio=t},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"darkness",{get:function(){return this._darkness},set:function(t){this.setDarkness(t)},enumerable:!1,configurable:!0}),r.prototype.getDarkness=function(){return this._darkness},r.prototype.setDarkness=function(t){return this._darkness=t>=1?1:t<=0?0:t,this},Object.defineProperty(r.prototype,"transparencyShadow",{get:function(){return this._transparencyShadow},set:function(t){this.setTransparencyShadow(t)},enumerable:!1,configurable:!0}),r.prototype.setTransparencyShadow=function(t){return this._transparencyShadow=t,this},r.prototype.getShadowMap=function(){return this._shadowMap},r.prototype.getShadowMapForRendering=function(){return this._shadowMap2?this._shadowMap2:this._shadowMap},r.prototype.getClassName=function(){return r.CLASSNAME},r.prototype.addShadowCaster=function(t,e){var n;return e===void 0&&(e=!0),this._shadowMap?(this._shadowMap.renderList||(this._shadowMap.renderList=[]),this._shadowMap.renderList.push(t),e&&(n=this._shadowMap.renderList).push.apply(n,t.getChildMeshes()),this):this},r.prototype.removeShadowCaster=function(t,e){if(e===void 0&&(e=!0),!this._shadowMap||!this._shadowMap.renderList)return this;var n=this._shadowMap.renderList.indexOf(t);if(n!==-1&&this._shadowMap.renderList.splice(n,1),e)for(var i=0,o=t.getChildren();i1?(this._shadowMap=new sn(this._light.name+"_shadowMap",this._mapSize,this._scene,!1,!0,this._textureType,this._light.needCube(),void 0,!1,!1),this._shadowMap.createDepthStencilTexture(h.a.LESS,!0)):this._shadowMap=new sn(this._light.name+"_shadowMap",this._mapSize,this._scene,!1,!0,this._textureType,this._light.needCube())},r.prototype._initializeShadowMap=function(){var t=this;if(this._createTargetRenderTexture(),this._shadowMap!==null){this._shadowMap.wrapU=we.a.CLAMP_ADDRESSMODE,this._shadowMap.wrapV=we.a.CLAMP_ADDRESSMODE,this._shadowMap.anisotropicFilteringLevel=1,this._shadowMap.updateSamplingMode(we.a.BILINEAR_SAMPLINGMODE),this._shadowMap.renderParticles=!1,this._shadowMap.ignoreCameraViewport=!0,this._storedUniqueId&&(this._shadowMap.uniqueId=this._storedUniqueId),this._shadowMap.customRenderFunction=this._renderForShadowMap.bind(this),this._shadowMap.customIsReadyFunction=function(a,s){return!0};var e=this._scene.getEngine();this._shadowMap.onBeforeRenderObservable.add(function(a){if(t._currentFaceIndex=a,t._filter===r.FILTER_PCF&&e.setColorWrite(!1),t._scene.getSceneUniformBuffer().useUbo){var s=t._scene.getSceneUniformBuffer();s.updateMatrix("viewProjection",t.getTransformMatrix()),s.updateMatrix("view",t._viewMatrix),s.update()}}),this._shadowMap.onAfterUnbindObservable.add(function(){if(t._scene.getSceneUniformBuffer().useUbo){var a=t._scene.getSceneUniformBuffer();a.updateMatrix("viewProjection",t._scene.getTransformMatrix()),a.updateMatrix("view",t._scene.getViewMatrix()),a.update()}if(t._filter===r.FILTER_PCF&&e.setColorWrite(!0),t.useBlurExponentialShadowMap||t.useBlurCloseExponentialShadowMap){var s=t.getShadowMapForRendering();if(s){var d=s.getInternalTexture();t._scene.postProcessManager.directRender(t._blurPostProcesses,d,!0),e.unBindFramebuffer(d,!0)}}});var n=new M.b(0,0,0,0),i=new M.b(1,1,1,1);this._shadowMap.onClearObservable.add(function(a){t._filter===r.FILTER_PCF?a.clear(i,!1,!0,!1):t.useExponentialShadowMap||t.useBlurExponentialShadowMap?a.clear(n,!0,!0,!1):a.clear(i,!0,!0,!1)}),this._shadowMap.onResizeObservable.add(function(a){t._storedUniqueId=t._shadowMap.uniqueId,t._mapSize=a.getRenderSize(),t._light._markMeshesAsLightDirty(),t.recreateShadowMap()});for(var o=$r.b.MIN_RENDERINGGROUPS;o<$r.b.MAX_RENDERINGGROUPS;o++)this._shadowMap.setRenderingAutoClearDepthStencil(o,!1)}},r.prototype._initializeBlurRTTAndPostProcesses=function(){var t=this,e=this._scene.getEngine(),n=this._mapSize/this.blurScale;this.useKernelBlur&&this.blurScale===1||(this._shadowMap2=new sn(this._light.name+"_shadowMap2",n,this._scene,!1,!0,this._textureType),this._shadowMap2.wrapU=we.a.CLAMP_ADDRESSMODE,this._shadowMap2.wrapV=we.a.CLAMP_ADDRESSMODE,this._shadowMap2.updateSamplingMode(we.a.BILINEAR_SAMPLINGMODE)),this.useKernelBlur?(this._kernelBlurXPostprocess=new _n(this._light.name+"KernelBlurX",new u.d(1,0),this.blurKernel,1,null,we.a.BILINEAR_SAMPLINGMODE,e,!1,this._textureType),this._kernelBlurXPostprocess.width=n,this._kernelBlurXPostprocess.height=n,this._kernelBlurXPostprocess.onApplyObservable.add(function(i){i.setTexture("textureSampler",t._shadowMap)}),this._kernelBlurYPostprocess=new _n(this._light.name+"KernelBlurY",new u.d(0,1),this.blurKernel,1,null,we.a.BILINEAR_SAMPLINGMODE,e,!1,this._textureType),this._kernelBlurXPostprocess.autoClear=!1,this._kernelBlurYPostprocess.autoClear=!1,this._textureType===h.a.TEXTURETYPE_UNSIGNED_INT&&(this._kernelBlurXPostprocess.packedFloat=!0,this._kernelBlurYPostprocess.packedFloat=!0),this._blurPostProcesses=[this._kernelBlurXPostprocess,this._kernelBlurYPostprocess]):(this._boxBlurPostprocess=new _t(this._light.name+"DepthBoxBlur","depthBoxBlur",["screenSize","boxOffset"],[],1,null,we.a.BILINEAR_SAMPLINGMODE,e,!1,"#define OFFSET "+this._blurBoxOffset,this._textureType),this._boxBlurPostprocess.onApplyObservable.add(function(i){i.setFloat2("screenSize",n,n),i.setTexture("textureSampler",t._shadowMap)}),this._boxBlurPostprocess.autoClear=!1,this._blurPostProcesses=[this._boxBlurPostprocess])},r.prototype._renderForShadowMap=function(t,e,n,i){var o,a=this._scene.getEngine(),s=a.getColorWrite();if(i.length){for(a.setColorWrite(!1),o=0;o=s.length)return void(t&&t(n));setTimeout(O,16)}};O()}else t&&t(this)}else t&&t(this)}else t&&t(this)},r.prototype.forceCompilationAsync=function(t){var e=this;return new Promise(function(n){e.forceCompilation(function(){n()},t)})},r.prototype._isReadyCustomDefines=function(t,e,n){},r.prototype._prepareShadowDefines=function(t,e,n,i){n.push("#define SM_FLOAT "+(this._textureType!==h.a.TEXTURETYPE_UNSIGNED_INT?"1":"0")),n.push("#define SM_ESM "+(this.useExponentialShadowMap||this.useBlurExponentialShadowMap?"1":"0")),n.push("#define SM_DEPTHTEXTURE "+(this.usePercentageCloserFiltering||this.useContactHardeningShadow?"1":"0"));var o=t.getMesh();return n.push("#define SM_NORMALBIAS "+(this.normalBias&&o.isVerticesDataPresent(Oe.b.NormalKind)?"1":"0")),n.push("#define SM_DIRECTIONINLIGHTDATA "+(this.getLight().getTypeID()===Pi.a.LIGHTTYPEID_DIRECTIONALLIGHT?"1":"0")),n.push("#define SM_USEDISTANCE "+(this._light.needCube()?"1":"0")),n.push("#define SM_SOFTTRANSPARENTSHADOW "+(this.enableSoftTransparentShadow&&i?"1":"0")),this._isReadyCustomDefines(n,t,e),n},r.prototype.isReady=function(t,e,n){var i=t.getMaterial(),o=i?.shadowDepthWrapper,a=[];if(this._prepareShadowDefines(t,e,a,n),o){if(!o.isReadyForSubMesh(t,a,this,e))return!1}else{var s=[Oe.b.PositionKind],d=t.getMesh();if(this.normalBias&&d.isVerticesDataPresent(Oe.b.NormalKind)&&(s.push(Oe.b.NormalKind),a.push("#define NORMAL"),d.nonUniformScaling&&a.push("#define NONUNIFORMSCALING")),i&&i.needAlphaTesting()){var p=i.getAlphaTestTexture();if(p){if(!p.isReady())return!1;a.push("#define ALPHATEST"),d.isVerticesDataPresent(Oe.b.UVKind)&&(s.push(Oe.b.UVKind),a.push("#define UV1")),d.isVerticesDataPresent(Oe.b.UV2Kind)&&p.coordinatesIndex===1&&(s.push(Oe.b.UV2Kind),a.push("#define UV2"))}}var b=new Sr.a;if(d.useBones&&d.computeBonesUsingShaders&&d.skeleton){s.push(Oe.b.MatricesIndicesKind),s.push(Oe.b.MatricesWeightsKind),d.numBoneInfluencers>4&&(s.push(Oe.b.MatricesIndicesExtraKind),s.push(Oe.b.MatricesWeightsExtraKind));var x=d.skeleton;a.push("#define NUM_BONE_INFLUENCERS "+d.numBoneInfluencers),d.numBoneInfluencers>0&&b.addCPUSkinningFallback(0,d),x.isUsingTextureForMatrices?a.push("#define BONETEXTURE"):a.push("#define BonesPerMesh "+(x.bones.length+1))}else a.push("#define NUM_BONE_INFLUENCERS 0");var O=d.morphTargetManager,B=0;O&&O.numInfluencers>0&&(a.push("#define MORPHTARGETS"),B=O.numInfluencers,a.push("#define NUM_MORPH_INFLUENCERS "+B),et.a.PrepareAttributesForMorphTargetsInfluencers(s,d,B));var F=this._scene;if(F.clipPlane&&a.push("#define CLIPPLANE"),F.clipPlane2&&a.push("#define CLIPPLANE2"),F.clipPlane3&&a.push("#define CLIPPLANE3"),F.clipPlane4&&a.push("#define CLIPPLANE4"),F.clipPlane5&&a.push("#define CLIPPLANE5"),F.clipPlane6&&a.push("#define CLIPPLANE6"),e&&(a.push("#define INSTANCES"),et.a.PushAttributesForInstances(s),t.getRenderingMesh().hasThinInstances&&a.push("#define THIN_INSTANCES")),this.customShaderOptions&&this.customShaderOptions.defines)for(var z=0,J=this.customShaderOptions.defines;z +#endif +void main(void) +{ +#ifdef ALPHATEST +if (texture2D(diffuseSampler,vUV).a<0.4) +discard; +#endif +#ifdef NONLINEARDEPTH +#ifdef PACKED +gl_FragColor=pack(gl_FragCoord.z); +#else +gl_FragColor=vec4(gl_FragCoord.z,0.0,0.0,0.0); +#endif +#else +#ifdef PACKED +gl_FragColor=pack(vDepthMetric); +#else +gl_FragColor=vec4(vDepthMetric,0.0,0.0,1.0); +#endif +#endif +}`;ze.a.ShadersStore.depthPixelShader=G_;var z_=` +attribute vec3 position; +#include +#include +#include[0..maxSimultaneousMorphTargets] + +#include +uniform mat4 viewProjection; +uniform vec2 depthValues; +#if defined(ALPHATEST) || defined(NEED_UV) +varying vec2 vUV; +uniform mat4 diffuseMatrix; +#ifdef UV1 +attribute vec2 uv; +#endif +#ifdef UV2 +attribute vec2 uv2; +#endif +#endif +varying float vDepthMetric; +void main(void) +{ +vec3 positionUpdated=position; +#ifdef UV1 +vec2 uvUpdated=uv; +#endif +#include[0..maxSimultaneousMorphTargets] +#include +#include +gl_Position=viewProjection*finalWorld*vec4(positionUpdated,1.0); +vDepthMetric=((gl_Position.z+depthValues.x)/(depthValues.y)); +#if defined(ALPHATEST) || defined(BASIC_RENDER) +#ifdef UV1 +vUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0)); +#endif +#ifdef UV2 +vUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0)); +#endif +#endif +} +`;ze.a.ShadersStore.depthVertexShader=z_;var aa=function(){function r(t,e,n,i){var o=this;e===void 0&&(e=h.a.TEXTURETYPE_FLOAT),n===void 0&&(n=null),i===void 0&&(i=!1),this.enabled=!0,this.useOnlyInActiveCamera=!1,this._scene=t,this._storeNonLinearDepth=i,this.isPacked=e===h.a.TEXTURETYPE_UNSIGNED_BYTE,this.isPacked?this._clearColor=new M.b(1,1,1,1):this._clearColor=new M.b(1,0,0,1),r._SceneComponentInitialization(this._scene),this._camera=n;var a=t.getEngine(),s=this.isPacked||a.webGLVersion===1?h.a.TEXTUREFORMAT_RGBA:h.a.TEXTUREFORMAT_R;this._depthMap=new sn("depthMap",{width:a.getRenderWidth(),height:a.getRenderHeight()},this._scene,!1,!0,e,!1,void 0,void 0,void 0,void 0,s),this._depthMap.wrapU=we.a.CLAMP_ADDRESSMODE,this._depthMap.wrapV=we.a.CLAMP_ADDRESSMODE,this._depthMap.refreshRate=1,this._depthMap.renderParticles=!1,this._depthMap.renderList=null,this._depthMap.activeCamera=this._camera,this._depthMap.ignoreCameraViewport=!0,this._depthMap.useCameraPostProcesses=!1,this._depthMap.onClearObservable.add(function(p){p.clear(o._clearColor,!0,!0,!0)});var d=function(p){var b=p.getRenderingMesh(),x=p.getEffectiveMesh(),O=o._scene,B=O.getEngine(),F=p.getMaterial();if(x._internalAbstractMeshDataInfo._isActiveIntermediate=!1,F&&p.verticesCount!==0&&p._renderId!==O.getRenderId()){B.setState(F.backFaceCulling,0,!1,O.useRightHandedSystem);var z=b._getInstancesRenderList(p._id,!!p.getReplacementMesh());if(!z.mustReturn){var J=B.getCaps().instancedArrays&&(z.visibleInstances[p._id]!==null&&z.visibleInstances[p._id]!==void 0||b.hasThinInstances),ie=o._camera||O.activeCamera;if(o.isReady(p,J)&&ie){if(p._renderId=O.getRenderId(),B.enableEffect(o._effect),b._bind(p,o._effect,F.fillMode),o._effect.setMatrix("viewProjection",O.getTransformMatrix()),o._effect.setFloat2("depthValues",ie.minZ,ie.minZ+ie.maxZ),F&&F.needAlphaTesting()){var se=F.getAlphaTestTexture();se&&(o._effect.setTexture("diffuseSampler",se),o._effect.setMatrix("diffuseMatrix",se.getTextureMatrix()))}b.useBones&&b.computeBonesUsingShaders&&b.skeleton&&o._effect.setMatrices("mBones",b.skeleton.getTransformMatrices(b)),et.a.BindMorphTargetParameters(b,o._effect),b._processRendering(x,p,o._effect,F.fillMode,z,J,function(ce,ue){return o._effect.setMatrix("world",ue)})}}}};this._depthMap.customRenderFunction=function(p,b,x,O){var B;if(O.length){for(a.setColorWrite(!1),B=0;B4&&(o.push(Oe.b.MatricesIndicesExtraKind),o.push(Oe.b.MatricesWeightsExtraKind)),i.push("#define NUM_BONE_INFLUENCERS "+a.numBoneInfluencers),i.push("#define BonesPerMesh "+(a.skeleton?a.skeleton.bones.length+1:0))):i.push("#define NUM_BONE_INFLUENCERS 0");var s=a.morphTargetManager,d=0;s&&s.numInfluencers>0&&(d=s.numInfluencers,i.push("#define MORPHTARGETS"),i.push("#define NUM_MORPH_INFLUENCERS "+d),et.a.PrepareAttributesForMorphTargetsInfluencers(o,a,d)),e&&(i.push("#define INSTANCES"),et.a.PushAttributesForInstances(o),t.getRenderingMesh().hasThinInstances&&i.push("#define THIN_INSTANCES")),this._storeNonLinearDepth&&i.push("#define NONLINEARDEPTH"),this.isPacked&&i.push("#define PACKED");var p=i.join(` +`);return this._cachedDefines!==p&&(this._cachedDefines=p,this._effect=this._scene.getEngine().createEffect("depth",o,["world","mBones","viewProjection","diffuseMatrix","depthValues","morphTargetInfluences"],["diffuseSampler"],p,void 0,void 0,void 0,{maxSimultaneousMorphTargets:d})),this._effect.isReady()},r.prototype.getDepthMap=function(){return this._depthMap},r.prototype.dispose=function(){this._depthMap.dispose()},r._SceneComponentInitialization=function(t){throw An.a.WarnImport("DepthRendererSceneComponent")},r}(),j_=`attribute vec2 vUV; +uniform sampler2D textureSampler; +#if defined(INITIAL) +uniform sampler2D sourceTexture; +uniform vec2 texSize; +void main(void) +{ +ivec2 coord=ivec2(vUV*(texSize-1.0)); +float f1=texelFetch(sourceTexture,coord,0).r; +float f2=texelFetch(sourceTexture,coord+ivec2(1,0),0).r; +float f3=texelFetch(sourceTexture,coord+ivec2(1,1),0).r; +float f4=texelFetch(sourceTexture,coord+ivec2(0,1),0).r; +float minz=min(min(min(f1,f2),f3),f4); +#ifdef DEPTH_REDUX +float maxz=max(max(max(sign(1.0-f1)*f1,sign(1.0-f2)*f2),sign(1.0-f3)*f3),sign(1.0-f4)*f4); +#else +float maxz=max(max(max(f1,f2),f3),f4); +#endif +glFragColor=vec4(minz,maxz,0.,0.); +} +#elif defined(MAIN) +uniform vec2 texSize; +void main(void) +{ +ivec2 coord=ivec2(vUV*(texSize-1.0)); +vec2 f1=texelFetch(textureSampler,coord,0).rg; +vec2 f2=texelFetch(textureSampler,coord+ivec2(1,0),0).rg; +vec2 f3=texelFetch(textureSampler,coord+ivec2(1,1),0).rg; +vec2 f4=texelFetch(textureSampler,coord+ivec2(0,1),0).rg; +float minz=min(min(min(f1.x,f2.x),f3.x),f4.x); +float maxz=max(max(max(f1.y,f2.y),f3.y),f4.y); +glFragColor=vec4(minz,maxz,0.,0.); +} +#elif defined(ONEBEFORELAST) +uniform ivec2 texSize; +void main(void) +{ +ivec2 coord=ivec2(vUV*vec2(texSize-1)); +vec2 f1=texelFetch(textureSampler,coord % texSize,0).rg; +vec2 f2=texelFetch(textureSampler,(coord+ivec2(1,0)) % texSize,0).rg; +vec2 f3=texelFetch(textureSampler,(coord+ivec2(1,1)) % texSize,0).rg; +vec2 f4=texelFetch(textureSampler,(coord+ivec2(0,1)) % texSize,0).rg; +float minz=min(f1.x,f2.x); +float maxz=max(f1.y,f2.y); +glFragColor=vec4(minz,maxz,0.,0.); +} +#elif defined(LAST) +void main(void) +{ +discard; +glFragColor=vec4(0.); +} +#endif +`;ze.a.ShadersStore.minmaxReduxPixelShader=j_;var Vu=function(){function r(t){this.onAfterReductionPerformed=new R.c,this._forceFullscreenViewport=!0,this._activated=!1,this._camera=t,this._postProcessManager=new hs.a(t.getScene())}return Object.defineProperty(r.prototype,"sourceTexture",{get:function(){return this._sourceTexture},enumerable:!1,configurable:!0}),r.prototype.setSourceTexture=function(t,e,n,i){var o=this;if(n===void 0&&(n=h.a.TEXTURETYPE_HALF_FLOAT),i===void 0&&(i=!0),t!==this._sourceTexture){this.dispose(!1),this._sourceTexture=t,this._reductionSteps=[],this._forceFullscreenViewport=i;var a=this._camera.getScene(),s=new _t("Initial reduction phase","minmaxRedux",["texSize"],["sourceTexture"],1,null,h.a.TEXTURE_NEAREST_NEAREST,a.getEngine(),!1,"#define INITIAL"+(e?` +#define DEPTH_REDUX`:""),n,void 0,void 0,void 0,h.a.TEXTUREFORMAT_RG);s.autoClear=!1,s.forceFullscreenViewport=i;var d=this._sourceTexture.getRenderWidth(),p=this._sourceTexture.getRenderHeight();s.onApply=function(O,B){return function(F){F.setTexture("sourceTexture",o._sourceTexture),F.setFloatArray2("texSize",new Float32Array([O,B]))}}(d,p),this._reductionSteps.push(s);for(var b=1;d>1||p>1;){d=Math.max(Math.round(d/2),1),p=Math.max(Math.round(p/2),1);var x=new _t("Reduction phase "+b,"minmaxRedux",["texSize"],null,{width:d,height:p},null,h.a.TEXTURE_NEAREST_NEAREST,a.getEngine(),!1,"#define "+(d==1&&p==1?"LAST":d==1||p==1?"ONEBEFORELAST":"MAIN"),n,void 0,void 0,void 0,h.a.TEXTUREFORMAT_RG);x.autoClear=!1,x.forceFullscreenViewport=i,x.onApply=function(O,B){return function(F){O==1||B==1?F.setIntArray2("texSize",new Int32Array([O,B])):F.setFloatArray2("texSize",new Float32Array([O,B]))}}(d,p),this._reductionSteps.push(x),b++,d==1&&p==1&&x.onAfterRenderObservable.add(function(O,B,F){var z=new Float32Array(4*O*B),J={min:0,max:0};return function(){a.getEngine()._readTexturePixels(F.inputTexture,O,B,-1,0,z),J.min=z[0],J.max=z[1],o.onAfterReductionPerformed.notifyObservers(J)}}(d,p,x))}}},Object.defineProperty(r.prototype,"refreshRate",{get:function(){return this._sourceTexture?this._sourceTexture.refreshRate:-1},set:function(t){this._sourceTexture&&(this._sourceTexture.refreshRate=t)},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"activated",{get:function(){return this._activated},enumerable:!1,configurable:!0}),r.prototype.activate=function(){var t=this;!this._onAfterUnbindObserver&&this._sourceTexture&&(this._onAfterUnbindObserver=this._sourceTexture.onAfterUnbindObservable.add(function(){t._reductionSteps[0].activate(t._camera),t._postProcessManager.directRender(t._reductionSteps,t._reductionSteps[0].inputTexture,t._forceFullscreenViewport),t._camera.getScene().getEngine().unBindFramebuffer(t._reductionSteps[0].inputTexture,!1)}),this._activated=!0)},r.prototype.deactivate=function(){this._onAfterUnbindObserver&&this._sourceTexture&&(this._sourceTexture.onAfterUnbindObservable.remove(this._onAfterUnbindObserver),this._onAfterUnbindObserver=null,this._activated=!1)},r.prototype.dispose=function(t){if(t===void 0&&(t=!0),t&&this.onAfterReductionPerformed.clear(),this.deactivate(),this._reductionSteps){for(var e=0;en&&(e=0,n=1),e<0&&(e=0),n>1&&(n=1),this._minDistance=e,this._maxDistance=n,this._breaksAreDirty=!0)},Object.defineProperty(t.prototype,"minDistance",{get:function(){return this._minDistance},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"maxDistance",{get:function(){return this._maxDistance},enumerable:!1,configurable:!0}),t.prototype.getClassName=function(){return t.CLASSNAME},t.prototype.getCascadeMinExtents=function(e){return e>=0&&e=0&&ethis._scene.activeCamera.maxZ||(this._shadowMaxZ=e,this._light._markMeshesAsLightDirty(),this._breaksAreDirty=!0):this._shadowMaxZ=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"debug",{get:function(){return this._debug},set:function(e){this._debug=e,this._light._markMeshesAsLightDirty()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"depthClamp",{get:function(){return this._depthClamp},set:function(e){this._depthClamp=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"cascadeBlendPercentage",{get:function(){return this._cascadeBlendPercentage},set:function(e){this._cascadeBlendPercentage=e,this._light._markMeshesAsLightDirty()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"lambda",{get:function(){return this._lambda},set:function(e){var n=Math.min(Math.max(e,0),1);this._lambda!=n&&(this._lambda=n,this._breaksAreDirty=!0)},enumerable:!1,configurable:!0}),t.prototype.getCascadeViewMatrix=function(e){return e>=0&&e=0&&e=0&&e=s&&(a=0,s=1),a==n._minDistance&&s==n._maxDistance||n.setMinMaxDistance(a,s)}),this._depthReducer.setDepthRenderer(this._depthRenderer)),this._depthReducer.activate()}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"autoCalcDepthBoundsRefreshRate",{get:function(){var e,n,i;return(i=(n=(e=this._depthReducer)===null||e===void 0?void 0:e.depthRenderer)===null||n===void 0?void 0:n.getDepthMap().refreshRate)!==null&&i!==void 0?i:-1},set:function(e){var n;!((n=this._depthReducer)===null||n===void 0)&&n.depthRenderer&&(this._depthReducer.depthRenderer.getDepthMap().refreshRate=e)},enumerable:!1,configurable:!0}),t.prototype.splitFrustum=function(){this._breaksAreDirty=!0},t.prototype._splitFrustum=function(){var e=this._scene.activeCamera;if(e){for(var n=e.minZ,i=e.maxZ,o=i-n,a=this._minDistance,s=n+a*o,d=n+(this._shadowMaxZ=n?Math.min((this._shadowMaxZ-n)/(i-n),this._maxDistance):this._maxDistance)*o,p=d-s,b=d/s,x=0;xMath.PI;)o-=2*Math.PI;var s=o/Math.PI,d=a/Math.PI;s=.5*s+.5;var p=Math.round(s*n);p<0?p=0:p>=n&&(p=n-1);var b=Math.round(d*i);b<0?b=0:b>=i&&(b=i-1);var x=i-b-1;return{r:e[x*n*3+3*p+0],g:e[x*n*3+3*p+1],b:e[x*n*3+3*p+2]}},r.FACE_LEFT=[new u.e(-1,-1,-1),new u.e(1,-1,-1),new u.e(-1,1,-1),new u.e(1,1,-1)],r.FACE_RIGHT=[new u.e(1,-1,1),new u.e(-1,-1,1),new u.e(1,1,1),new u.e(-1,1,1)],r.FACE_FRONT=[new u.e(1,-1,-1),new u.e(1,-1,1),new u.e(1,1,-1),new u.e(1,1,1)],r.FACE_BACK=[new u.e(-1,-1,1),new u.e(-1,-1,-1),new u.e(-1,1,1),new u.e(-1,1,-1)],r.FACE_DOWN=[new u.e(1,1,-1),new u.e(1,1,1),new u.e(-1,1,-1),new u.e(-1,1,1)],r.FACE_UP=[new u.e(-1,-1,-1),new u.e(-1,-1,1),new u.e(1,-1,-1),new u.e(1,-1,1)],r}(),Wu=function(){function r(){}return r.Ldexp=function(t,e){return e>1023?t*Math.pow(2,1023)*Math.pow(2,e-1023):e<-1074?t*Math.pow(2,-1074)*Math.pow(2,e+1074):t*Math.pow(2,e)},r.Rgbe2float=function(t,e,n,i,o,a){o>0?(o=this.Ldexp(1,o-136),t[a+0]=e*o,t[a+1]=n*o,t[a+2]=i*o):(t[a+0]=0,t[a+1]=0,t[a+2]=0)},r.readStringLine=function(t,e){for(var n="",i="",o=e;o32767)throw"HDR Bad header format, unsupported size";return{height:e,width:n,dataPosition:s+=i.length+1}},r.GetCubeMapTextureData=function(t,e){var n=new Uint8Array(t),i=this.RGBE_ReadHeader(n),o=this.RGBE_ReadPixels(n,i);return Xs.ConvertPanoramaToCubemap(o,i.width,i.height,e)},r.RGBE_ReadPixels=function(t,e){return this.RGBE_ReadPixels_RLE(t,e)},r.RGBE_ReadPixels_RLE=function(t,e){for(var n,i,o,a,s,d=e.height,p=e.width,b=e.dataPosition,x=0,O=0,B=0,F=new ArrayBuffer(4*p),z=new Uint8Array(F),J=new ArrayBuffer(e.width*e.height*4*3),ie=new Float32Array(J);d>0;){if(n=t[b++],i=t[b++],o=t[b++],a=t[b++],n!=2||i!=2||128&o||e.width<8||e.width>32767)return this.RGBE_ReadPixels_NOT_RLE(t,e);if((o<<8|a)!=p)throw"HDR Bad header format, wrong scan line width";for(x=0,B=0;B<4;B++)for(O=(B+1)*p;x128){if((s=n-128)==0||s>O-x)throw"HDR Bad Format, bad scanline data (run)";for(;s-- >0;)z[x++]=i}else{if((s=n)==0||s>O-x)throw"HDR Bad Format, bad scanline data (non-run)";if(z[x++]=i,--s>0)for(var se=0;se0;){for(s=0;s +#include +#include +#include +uniform float alphaG; +uniform samplerCube inputTexture; +uniform vec2 vFilteringInfo; +uniform float hdrScale; +varying vec3 direction; +void main() { +vec3 color=radiance(alphaG,inputTexture,direction,vFilteringInfo); +gl_FragColor=vec4(color*hdrScale,1.0); +}`;ze.a.ShadersStore.hdrFilteringPixelShader=X_;var Ku=function(){function r(t,e){e===void 0&&(e={}),this._lodGenerationOffset=0,this._lodGenerationScale=.8,this.quality=h.a.TEXTURE_FILTERING_QUALITY_OFFLINE,this.hdrScale=1,this._engine=t,this.hdrScale=e.hdrScale||this.hdrScale,this.quality=e.hdrScale||this.quality}return r.prototype._createRenderTarget=function(t){var e=h.a.TEXTURETYPE_UNSIGNED_BYTE;this._engine.getCaps().textureHalfFloatRender?e=h.a.TEXTURETYPE_HALF_FLOAT:this._engine.getCaps().textureFloatRender&&(e=h.a.TEXTURETYPE_FLOAT);var n=this._engine.createRenderTargetCubeTexture(t,{format:h.a.TEXTUREFORMAT_RGBA,type:e,generateMipMaps:!1,generateDepthBuffer:!1,generateStencilBuffer:!1,samplingMode:h.a.TEXTURE_NEAREST_SAMPLINGMODE});return this._engine.updateTextureWrappingMode(n,h.a.TEXTURE_CLAMP_ADDRESSMODE,h.a.TEXTURE_CLAMP_ADDRESSMODE,h.a.TEXTURE_CLAMP_ADDRESSMODE),this._engine.updateTextureSamplingMode(h.a.TEXTURE_TRILINEAR_SAMPLINGMODE,n,!0),n},r.prototype._prefilterInternal=function(t){var e=t.getSize().width,n=Math.round($.a.Log2(e))+1,i=this._effectWrapper.effect,o=this._createRenderTarget(e);this._effectRenderer.setViewport();var a=t.getInternalTexture();a&&this._engine.updateTextureSamplingMode(h.a.TEXTURE_TRILINEAR_SAMPLINGMODE,a,!0),this._effectRenderer.applyEffectWrapper(this._effectWrapper);var s=[[new u.e(0,0,-1),new u.e(0,-1,0),new u.e(1,0,0)],[new u.e(0,0,1),new u.e(0,-1,0),new u.e(-1,0,0)],[new u.e(1,0,0),new u.e(0,0,1),new u.e(0,1,0)],[new u.e(1,0,0),new u.e(0,0,-1),new u.e(0,-1,0)],[new u.e(1,0,0),new u.e(0,-1,0),new u.e(0,0,1)],[new u.e(-1,0,0),new u.e(0,-1,0),new u.e(0,0,-1)]];i.setFloat("hdrScale",this.hdrScale),i.setFloat2("vFilteringInfo",t.getSize().width,n),i.setTexture("inputTexture",t);for(var d=0;d<6;d++){i.setVector3("up",s[d][0]),i.setVector3("right",s[d][1]),i.setVector3("front",s[d][2]);for(var p=0;p=2&&this._prefilterOnLoad){var i=this._onLoad,o=new Ku(n);this._onLoad=function(){o.prefilter(e,i)}}this._texture=n.createRawCubeTextureFromUrl(this.url,this.getScene(),this._size,h.a.TEXTUREFORMAT_RGB,n.getCaps().textureFloat?h.a.TEXTURETYPE_FLOAT:h.a.TEXTURETYPE_UNSIGNED_INT,this._noMipmap,function(a){e.lodGenerationOffset=0,e.lodGenerationScale=.8;var s=Wu.GetCubeMapTextureData(a,e._size);if(e._generateHarmonics){var d=Ho.ConvertCubeMapToSphericalPolynomial(s);e.sphericalPolynomial=d}for(var p=[],b=null,x=0;x<6;x++){if(!n.getCaps().textureFloat){var O=new ArrayBuffer(e._size*e._size*3);b=new Uint8Array(O)}var B=s[t._facesMapping[x]];if(e.gammaSpace||b){for(var F=0;F255){var ce=255/se;z*=ce,J*=ce,ie*=ce}b[3*F+0]=z,b[3*F+1]=J,b[3*F+2]=ie}}b?p.push(b):p.push(B)}return p},null,this._onLoad,this._onError)},t.prototype.clone=function(){var e=new t(this.url,this.getScene()||this._getEngine(),this._size,this._noMipmap,this._generateHarmonics,this.gammaSpace);return e.level=this.level,e.wrapU=this.wrapU,e.wrapV=this.wrapV,e.coordinatesIndex=this.coordinatesIndex,e.coordinatesMode=this.coordinatesMode,e},t.prototype.delayLoad=function(){this.delayLoadState===h.a.DELAYLOADSTATE_NOTLOADED&&(this.delayLoadState=h.a.DELAYLOADSTATE_LOADED,this._texture=this._getFromCache(this.url,this._noMipmap),this._texture||this.loadTexture())},t.prototype.getReflectionTextureMatrix=function(){return this._textureMatrix},t.prototype.setReflectionTextureMatrix=function(e){var n,i=this;this._textureMatrix=e,e.updateFlag!==this._textureMatrix.updateFlag&&e.isIdentity()!==this._textureMatrix.isIdentity()&&((n=this.getScene())===null||n===void 0||n.markAllMaterialsAsDirty(h.a.MATERIAL_TextureDirtyFlag,function(o){return o.getActiveTextures().indexOf(i)!==-1}))},t.Parse=function(e,n,i){var o=null;return e.name&&!e.isRenderTarget&&((o=new t(i+e.name,n,e.size,e.noMipmap,e.generateHarmonics,e.useInGammaSpace)).name=e.name,o.hasAlpha=e.hasAlpha,o.level=e.level,o.coordinatesMode=e.coordinatesMode,o.isBlocking=e.isBlocking),o&&(e.boundingBoxPosition&&(o.boundingBoxPosition=u.e.FromArray(e.boundingBoxPosition)),e.boundingBoxSize&&(o.boundingBoxSize=u.e.FromArray(e.boundingBoxSize)),e.rotationY&&(o.rotationY=e.rotationY)),o},t.prototype.serialize=function(){if(!this.name)return null;var e={};return e.name=this.name,e.hasAlpha=this.hasAlpha,e.isCube=!0,e.level=this.level,e.size=this._size,e.coordinatesMode=this.coordinatesMode,e.useInGammaSpace=this.gammaSpace,e.generateHarmonics=this._generateHarmonics,e.customType="BABYLON.HDRCubeTexture",e.noMipmap=this._noMipmap,e.isBlocking=this._isBlocking,e.rotationY=this._rotationY,e},t._facesMapping=["right","left","up","down","front","back"],t}(Wn.a);C.a.RegisteredTypes["BABYLON.HDRCubeTexture"]=sa;var Qu=function(){function r(t,e,n){e===void 0&&(e=0),n===void 0&&(n=null),this.name=t,this.animations=new Array,this._positions=null,this._normals=null,this._tangents=null,this._uvs=null,this._uniqueId=0,this.onInfluenceChanged=new R.c,this._onDataLayoutChanged=new R.c,this._animationPropertiesOverride=null,this._scene=n||te.a.LastCreatedScene,this.influence=e,this._scene&&(this._uniqueId=this._scene.getUniqueId())}return Object.defineProperty(r.prototype,"influence",{get:function(){return this._influence},set:function(t){if(this._influence!==t){var e=this._influence;this._influence=t,this.onInfluenceChanged.hasObservers()&&this.onInfluenceChanged.notifyObservers(e===0||t===0)}},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"animationPropertiesOverride",{get:function(){return!this._animationPropertiesOverride&&this._scene?this._scene.animationPropertiesOverride:this._animationPropertiesOverride},set:function(t){this._animationPropertiesOverride=t},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"uniqueId",{get:function(){return this._uniqueId},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"hasPositions",{get:function(){return!!this._positions},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"hasNormals",{get:function(){return!!this._normals},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"hasTangents",{get:function(){return!!this._tangents},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"hasUVs",{get:function(){return!!this._uvs},enumerable:!1,configurable:!0}),r.prototype.setPositions=function(t){var e=this.hasPositions;this._positions=t,e!==this.hasPositions&&this._onDataLayoutChanged.notifyObservers(void 0)},r.prototype.getPositions=function(){return this._positions},r.prototype.setNormals=function(t){var e=this.hasNormals;this._normals=t,e!==this.hasNormals&&this._onDataLayoutChanged.notifyObservers(void 0)},r.prototype.getNormals=function(){return this._normals},r.prototype.setTangents=function(t){var e=this.hasTangents;this._tangents=t,e!==this.hasTangents&&this._onDataLayoutChanged.notifyObservers(void 0)},r.prototype.getTangents=function(){return this._tangents},r.prototype.setUVs=function(t){var e=this.hasUVs;this._uvs=t,e!==this.hasUVs&&this._onDataLayoutChanged.notifyObservers(void 0)},r.prototype.getUVs=function(){return this._uvs},r.prototype.clone=function(){var t=this,e=L.a.Clone(function(){return new r(t.name,t.influence,t._scene)},this);return e._positions=this._positions,e._normals=this._normals,e._tangents=this._tangents,e._uvs=this._uvs,e},r.prototype.serialize=function(){var t={};return t.name=this.name,t.influence=this.influence,t.positions=Array.prototype.slice.call(this.getPositions()),this.id!=null&&(t.id=this.id),this.hasNormals&&(t.normals=Array.prototype.slice.call(this.getNormals())),this.hasTangents&&(t.tangents=Array.prototype.slice.call(this.getTangents())),this.hasUVs&&(t.uvs=Array.prototype.slice.call(this.getUVs())),L.a.AppendSerializedAnimations(this,t),t},r.prototype.getClassName=function(){return"MorphTarget"},r.Parse=function(t){var e=new r(t.name,t.influence);if(e.setPositions(t.positions),t.id!=null&&(e.id=t.id),t.normals&&e.setNormals(t.normals),t.tangents&&e.setTangents(t.tangents),t.uvs&&e.setUVs(t.uvs),t.animations)for(var n=0;n=0&&(this._targets.splice(e,1),t.onInfluenceChanged.remove(this._targetInfluenceChangedObservers.splice(e,1)[0]),t._onDataLayoutChanged.remove(this._targetDataLayoutChangedObservers.splice(e,1)[0]),this._syncActiveTargets(!0))},r.prototype.clone=function(){for(var t=new r(this._scene),e=0,n=this._targets;e-1&&this._impostors.splice(e,1).length&&this.getPhysicsPlugin().removePhysicsBody(t)},r.prototype.addJoint=function(t,e,n){var i={mainImpostor:t,connectedImpostor:e,joint:n};n.physicsPlugin=this._physicsPlugin,this._joints.push(i),this._physicsPlugin.generateJoint(i)},r.prototype.removeJoint=function(t,e,n){var i=this._joints.filter(function(o){return o.connectedImpostor===e&&o.joint===n&&o.mainImpostor===t});i.length&&this._physicsPlugin.removeJoint(i[0])},r.prototype._step=function(t){var e=this;this._impostors.forEach(function(n){n.isBodyInitRequired()&&e._physicsPlugin.generatePhysicsBody(n)}),t>.1?t=.1:t<=0&&(t=1/60),this._physicsPlugin.executeStep(t,this._impostors)},r.prototype.getPhysicsPlugin=function(){return this._physicsPlugin},r.prototype.getImpostors=function(){return this._impostors},r.prototype.getImpostorForPhysicsObject=function(t){for(var e=0;e0&&(this._physicsBodysToRemoveAfterStep.forEach(function(e){t.world.remove(e)}),this._physicsBodysToRemoveAfterStep=[])},r.prototype.applyImpulse=function(t,e,n){var i=new this.BJSCANNON.Vec3(n.x,n.y,n.z),o=new this.BJSCANNON.Vec3(e.x,e.y,e.z);t.physicsBody.applyImpulse(o,i)},r.prototype.applyForce=function(t,e,n){var i=new this.BJSCANNON.Vec3(n.x,n.y,n.z),o=new this.BJSCANNON.Vec3(e.x,e.y,e.z);t.physicsBody.applyForce(o,i)},r.prototype.generatePhysicsBody=function(t){if(this._removeMarkedPhysicsBodiesFromWorld(),t.parent)t.physicsBody&&(this.removePhysicsBody(t),t.forceUpdate());else{if(t.isBodyInitRequired()){var e=this._createShape(t),n=t.physicsBody;n&&this.removePhysicsBody(t);var i=this._addMaterial("mat-"+t.uniqueId,t.getParam("friction"),t.getParam("restitution")),o={mass:t.getParam("mass"),material:i},a=t.getParam("nativeOptions");for(var s in a)a.hasOwnProperty(s)&&(o[s]=a[s]);t.physicsBody=new this.BJSCANNON.Body(o),t.physicsBody.addEventListener("collide",t.onCollide),this.world.addEventListener("preStep",t.beforeStep),this.world.addEventListener("postStep",t.afterStep),t.physicsBody.addShape(e),this.world.add(t.physicsBody),n&&["force","torque","velocity","angularVelocity"].forEach(function(d){var p=n[d];t.physicsBody[d].set(p.x,p.y,p.z)}),this._processChildMeshes(t)}this._updatePhysicsBodyTransformation(t)}},r.prototype._processChildMeshes=function(t){var e=this,n=t.object.getChildMeshes?t.object.getChildMeshes(!0):[],i=t.object.rotationQuaternion;if(n.length){var o=function(a){if(i&&a.rotationQuaternion){var s=a.getPhysicsImpostor();if(s&&s.parent!==t){var d=a.getAbsolutePosition().subtract(a.parent.getAbsolutePosition()),p=a.rotationQuaternion;s.physicsBody&&(e.removePhysicsBody(s),s.physicsBody=null),s.parent=t,s.resetUpdateFlags(),t.physicsBody.addShape(e._createShape(s),new e.BJSCANNON.Vec3(d.x,d.y,d.z),new e.BJSCANNON.Quaternion(p.x,p.y,p.z,p.w)),t.physicsBody.mass+=s.getParam("mass")}i.multiplyInPlace(a.rotationQuaternion),a.getChildMeshes(!0).filter(function(b){return!!b.physicsImpostor}).forEach(o)}};n.filter(function(a){return!!a.physicsImpostor}).forEach(o)}},r.prototype.removePhysicsBody=function(t){t.physicsBody.removeEventListener("collide",t.onCollide),this.world.removeEventListener("preStep",t.beforeStep),this.world.removeEventListener("postStep",t.afterStep),this._physicsBodysToRemoveAfterStep.indexOf(t.physicsBody)===-1&&this._physicsBodysToRemoveAfterStep.push(t.physicsBody)},r.prototype.generateJoint=function(t){var e=t.mainImpostor.physicsBody,n=t.connectedImpostor.physicsBody;if(e&&n){var i,o=t.joint.jointData,a={pivotA:o.mainPivot?new this.BJSCANNON.Vec3().set(o.mainPivot.x,o.mainPivot.y,o.mainPivot.z):null,pivotB:o.connectedPivot?new this.BJSCANNON.Vec3().set(o.connectedPivot.x,o.connectedPivot.y,o.connectedPivot.z):null,axisA:o.mainAxis?new this.BJSCANNON.Vec3().set(o.mainAxis.x,o.mainAxis.y,o.mainAxis.z):null,axisB:o.connectedAxis?new this.BJSCANNON.Vec3().set(o.connectedAxis.x,o.connectedAxis.y,o.connectedAxis.z):null,maxForce:o.nativeParams.maxForce,collideConnected:!!o.collision};switch(t.joint.type){case en.e.HingeJoint:case en.e.Hinge2Joint:i=new this.BJSCANNON.HingeConstraint(e,n,a);break;case en.e.DistanceJoint:i=new this.BJSCANNON.DistanceConstraint(e,n,o.maxDistance||2);break;case en.e.SpringJoint:var s=o;i=new this.BJSCANNON.Spring(e,n,{restLength:s.length,stiffness:s.stiffness,damping:s.damping,localAnchorA:a.pivotA,localAnchorB:a.pivotB});break;case en.e.LockJoint:i=new this.BJSCANNON.LockConstraint(e,n,a);break;case en.e.PointToPointJoint:case en.e.BallAndSocketJoint:default:i=new this.BJSCANNON.PointToPointConstraint(e,a.pivotA,n,a.pivotB,a.maxForce)}i.collideConnected=!!o.collision,t.joint.physicsJoint=i,t.joint.type!==en.e.SpringJoint?this.world.addConstraint(i):(t.joint.jointData.forceApplicationCallback=t.joint.jointData.forceApplicationCallback||function(){i.applyForce()},t.mainImpostor.registerAfterPhysicsStep(t.joint.jointData.forceApplicationCallback))}},r.prototype.removeJoint=function(t){t.joint.type!==en.e.SpringJoint?this.world.removeConstraint(t.joint.physicsJoint):t.mainImpostor.unregisterAfterPhysicsStep(t.joint.jointData.forceApplicationCallback)},r.prototype._addMaterial=function(t,e,n){var i,o;for(i=0;i1e3*n));d++);this.time+=i;for(var p=this.time%n/n,b=t,x=this.bodies,O=0;O!==x.length;O++){var B=x[O];B.type!==e.Body.STATIC&&B.sleepState!==e.Body.SLEEPING?(B.position.vsub(B.previousPosition,b),b.scale(p,b),B.position.vadd(b,B.interpolatedPosition)):(B.interpolatedPosition.set(B.position.x,B.position.y,B.position.z),B.interpolatedQuaternion.set(B.quaternion.x,B.quaternion.y,B.quaternion.z,B.quaternion.w))}}}},r.prototype.raycast=function(t,e){return this._cannonRaycastResult.reset(),this.world.raycastClosest(t,e,{},this._cannonRaycastResult),this._raycastResult.reset(t,e),this._cannonRaycastResult.hasHit&&(this._raycastResult.setHitData({x:this._cannonRaycastResult.hitNormalWorld.x,y:this._cannonRaycastResult.hitNormalWorld.y,z:this._cannonRaycastResult.hitNormalWorld.z},{x:this._cannonRaycastResult.hitPointWorld.x,y:this._cannonRaycastResult.hitPointWorld.y,z:this._cannonRaycastResult.hitPointWorld.z}),this._raycastResult.setHitDistance(this._cannonRaycastResult.distance)),this._raycastResult},r}();Ir.DefaultPluginFactory=function(){return new Ks};var qu=function(){function r(t,e,n){t===void 0&&(t=!0),n===void 0&&(n=OIMO),this._useDeltaForWorldStep=t,this.name="OimoJSPlugin",this._fixedTimeStep=1/60,this._tmpImpostorsArray=[],this._tmpPositionVector=u.e.Zero(),this.BJSOIMO=n,this.world=new this.BJSOIMO.World({iterations:e}),this.world.clear(),this._raycastResult=new Ys}return r.prototype.setGravity=function(t){this.world.gravity.set(t.x,t.y,t.z)},r.prototype.setTimeStep=function(t){this.world.timeStep=t},r.prototype.getTimeStep=function(){return this.world.timeStep},r.prototype.executeStep=function(t,e){var n=this;e.forEach(function(s){s.beforeStep()}),this.world.timeStep=this._useDeltaForWorldStep?t:this._fixedTimeStep,this.world.step(),e.forEach(function(s){s.afterStep(),n._tmpImpostorsArray[s.uniqueId]=s});for(var i=this.world.contacts;i!==null;)if(!i.touching||i.body1.sleeping||i.body2.sleeping){var o=this._tmpImpostorsArray[+i.body1.name],a=this._tmpImpostorsArray[+i.body2.name];o&&a&&(o.onCollide({body:a.physicsBody,point:null}),a.onCollide({body:o.physicsBody,point:null})),i=i.next}else i=i.next},r.prototype.applyImpulse=function(t,e,n){var i=t.physicsBody.mass;t.physicsBody.applyImpulse(n.scale(this.world.invScale),e.scale(this.world.invScale*i))},r.prototype.applyForce=function(t,e,n){l.a.Warn("Oimo doesn't support applying force. Using impule instead."),this.applyImpulse(t,e,n)},r.prototype.generatePhysicsBody=function(t){var e=this;if(t.parent)t.physicsBody&&(this.removePhysicsBody(t),t.forceUpdate());else{if(t.isBodyInitRequired()){var n={name:t.uniqueId,config:[t.getParam("mass")||.001,t.getParam("friction"),t.getParam("restitution")],size:[],type:[],pos:[],posShape:[],rot:[],rotShape:[],move:t.getParam("mass")!==0,density:t.getParam("mass"),friction:t.getParam("friction"),restitution:t.getParam("restitution"),world:this.world},i=[t];(s=t.object).getChildMeshes&&s.getChildMeshes().forEach(function(d){d.physicsImpostor&&i.push(d.physicsImpostor)});var o=function(d){return Math.max(d,Ir.Epsilon)},a=new u.b;i.forEach(function(d){if(d.object.rotationQuaternion){var p=d.object.rotationQuaternion;a.copyFrom(p),d.object.rotationQuaternion.set(0,0,0,1),d.object.computeWorldMatrix(!0);var b=a.toEulerAngles(),x=d.getObjectExtendSize();if(d===t){var O=t.getObjectCenter();t.object.getAbsolutePivotPoint().subtractToRef(O,e._tmpPositionVector),e._tmpPositionVector.divideInPlace(t.object.scaling),n.pos.push(O.x),n.pos.push(O.y),n.pos.push(O.z),n.posShape.push(0,0,0),n.rotShape.push(0,0,0)}else{var B=d.object.position.clone();n.posShape.push(B.x),n.posShape.push(B.y),n.posShape.push(B.z),n.rotShape.push(57.29577951308232*b.x,57.29577951308232*b.y,57.29577951308232*b.z)}switch(d.object.rotationQuaternion.copyFrom(a),d.type){case xt.a.ParticleImpostor:l.a.Warn("No Particle support in OIMO.js. using SphereImpostor instead");case xt.a.SphereImpostor:var F=x.x,z=x.y,J=x.z,ie=Math.max(o(F),o(z),o(J))/2;n.type.push("sphere"),n.size.push(ie),n.size.push(ie),n.size.push(ie);break;case xt.a.CylinderImpostor:var se=o(x.x)/2,ce=o(x.y);n.type.push("cylinder"),n.size.push(se),n.size.push(ce),n.size.push(ce);break;case xt.a.PlaneImpostor:case xt.a.BoxImpostor:default:se=o(x.x),ce=o(x.y);var ue=o(x.z);n.type.push("box"),n.size.push(se),n.size.push(ce),n.size.push(ue)}d.object.rotationQuaternion=p}}),t.physicsBody=this.world.add(n),t.physicsBody.resetQuaternion(a),t.physicsBody.updatePosition(0)}else this._tmpPositionVector.copyFromFloats(0,0,0);var s;t.setDeltaPosition(this._tmpPositionVector)}},r.prototype.removePhysicsBody=function(t){this.world.removeRigidBody(t.physicsBody)},r.prototype.generateJoint=function(t){var e=t.mainImpostor.physicsBody,n=t.connectedImpostor.physicsBody;if(e&&n){var i,o=t.joint.jointData,a=o.nativeParams||{},s={body1:e,body2:n,axe1:a.axe1||(o.mainAxis?o.mainAxis.asArray():null),axe2:a.axe2||(o.connectedAxis?o.connectedAxis.asArray():null),pos1:a.pos1||(o.mainPivot?o.mainPivot.asArray():null),pos2:a.pos2||(o.connectedPivot?o.connectedPivot.asArray():null),min:a.min,max:a.max,collision:a.collision||o.collision,spring:a.spring,world:this.world};switch(t.joint.type){case en.e.BallAndSocketJoint:i="jointBall";break;case en.e.SpringJoint:l.a.Warn("OIMO.js doesn't support Spring Constraint. Simulating using DistanceJoint instead");var d=o;s.min=d.length||s.min,s.max=Math.max(s.min,s.max);case en.e.DistanceJoint:i="jointDistance",s.max=o.maxDistance;break;case en.e.PrismaticJoint:i="jointPrisme";break;case en.e.SliderJoint:i="jointSlide";break;case en.e.WheelJoint:i="jointWheel";break;case en.e.HingeJoint:default:i="jointHinge"}s.type=i,t.joint.physicsJoint=this.world.add(s)}},r.prototype.removeJoint=function(t){try{this.world.removeJoint(t.joint.physicsJoint)}catch(e){l.a.Warn(e)}},r.prototype.isSupported=function(){return this.BJSOIMO!==void 0},r.prototype.setTransformationFromPhysicsBody=function(t){if(!t.physicsBody.sleeping){if(t.physicsBody.shapes.next){for(var e=t.physicsBody.shapes;e.next;)e=e.next;t.object.position.set(e.position.x,e.position.y,e.position.z)}else{var n=t.physicsBody.getPosition();t.object.position.set(n.x,n.y,n.z)}if(t.object.rotationQuaternion){var i=t.physicsBody.getQuaternion();t.object.rotationQuaternion.set(i.x,i.y,i.z,i.w)}}},r.prototype.setPhysicsBodyTransformation=function(t,e,n){var i=t.physicsBody;t.physicsBody.shapes.next||(i.position.set(e.x,e.y,e.z),i.orientation.set(n.x,n.y,n.z,n.w),i.syncShapes(),i.awake())},r.prototype.setLinearVelocity=function(t,e){t.physicsBody.linearVelocity.set(e.x,e.y,e.z)},r.prototype.setAngularVelocity=function(t,e){t.physicsBody.angularVelocity.set(e.x,e.y,e.z)},r.prototype.getLinearVelocity=function(t){var e=t.physicsBody.linearVelocity;return e?new u.e(e.x,e.y,e.z):null},r.prototype.getAngularVelocity=function(t){var e=t.physicsBody.angularVelocity;return e?new u.e(e.x,e.y,e.z):null},r.prototype.setBodyMass=function(t,e){var n=e===0;t.physicsBody.shapes.density=n?1:e,t.physicsBody.setupMass(n?2:1)},r.prototype.getBodyMass=function(t){return t.physicsBody.shapes.density},r.prototype.getBodyFriction=function(t){return t.physicsBody.shapes.friction},r.prototype.setBodyFriction=function(t,e){t.physicsBody.shapes.friction=e},r.prototype.getBodyRestitution=function(t){return t.physicsBody.shapes.restitution},r.prototype.setBodyRestitution=function(t,e){t.physicsBody.shapes.restitution=e},r.prototype.sleepBody=function(t){t.physicsBody.sleep()},r.prototype.wakeUpBody=function(t){t.physicsBody.awake()},r.prototype.updateDistanceJoint=function(t,e,n){t.physicsJoint.limitMotor.upperLimit=e,n!==void 0&&(t.physicsJoint.limitMotor.lowerLimit=n)},r.prototype.setMotor=function(t,e,n,i){n!==void 0?l.a.Warn("OimoJS plugin currently has unexpected behavior when using setMotor with force parameter"):n=1e6,e*=-1;var o=i?t.physicsJoint.rotationalLimitMotor2:t.physicsJoint.rotationalLimitMotor1||t.physicsJoint.rotationalLimitMotor||t.physicsJoint.limitMotor;o&&o.setMotor(e,n)},r.prototype.setLimit=function(t,e,n,i){var o=i?t.physicsJoint.rotationalLimitMotor2:t.physicsJoint.rotationalLimitMotor1||t.physicsJoint.rotationalLimitMotor||t.physicsJoint.limitMotor;o&&o.setLimit(e,n===void 0?-e:n)},r.prototype.syncMeshWithImpostor=function(t,e){var n=e.physicsBody;t.position.x=n.position.x,t.position.y=n.position.y,t.position.z=n.position.z,t.rotationQuaternion&&(t.rotationQuaternion.x=n.orientation.x,t.rotationQuaternion.y=n.orientation.y,t.rotationQuaternion.z=n.orientation.z,t.rotationQuaternion.w=n.orientation.s)},r.prototype.getRadius=function(t){return t.physicsBody.shapes.radius},r.prototype.getBoxSizeToRef=function(t,e){var n=t.physicsBody.shapes;e.x=2*n.halfWidth,e.y=2*n.halfHeight,e.z=2*n.halfDepth},r.prototype.dispose=function(){this.world.clear()},r.prototype.raycast=function(t,e){return l.a.Warn("raycast is not currently supported by the Oimo physics plugin"),this._raycastResult.reset(t,e),this._raycastResult},r}(),la=f(97),Zu=function(){function r(t,e,n){var i=this;t===void 0&&(t=!0),e===void 0&&(e=Ammo),n===void 0&&(n=null),this._useDeltaForWorldStep=t,this.bjsAMMO={},this.name="AmmoJSPlugin",this._timeStep=1/60,this._fixedTimeStep=1/60,this._maxSteps=5,this._tmpQuaternion=new u.b,this._tmpContactCallbackResult=!1,this._tmpContactPoint=new u.e,this._tmpMatrix=new u.a,typeof e=="function"?e(this.bjsAMMO):this.bjsAMMO=e,this.isSupported()?(this._collisionConfiguration=new this.bjsAMMO.btSoftBodyRigidBodyCollisionConfiguration,this._dispatcher=new this.bjsAMMO.btCollisionDispatcher(this._collisionConfiguration),this._overlappingPairCache=n||new this.bjsAMMO.btDbvtBroadphase,this._solver=new this.bjsAMMO.btSequentialImpulseConstraintSolver,this._softBodySolver=new this.bjsAMMO.btDefaultSoftBodySolver,this.world=new this.bjsAMMO.btSoftRigidDynamicsWorld(this._dispatcher,this._overlappingPairCache,this._solver,this._collisionConfiguration,this._softBodySolver),this._tmpAmmoConcreteContactResultCallback=new this.bjsAMMO.ConcreteContactResultCallback,this._tmpAmmoConcreteContactResultCallback.addSingleResult=function(o,a,s,d){var p=(o=i.bjsAMMO.wrapPointer(o,Ammo.btManifoldPoint)).getPositionWorldOnA();i._tmpContactPoint.x=p.x(),i._tmpContactPoint.y=p.y(),i._tmpContactPoint.z=p.z(),i._tmpContactCallbackResult=!0},this._raycastResult=new Ys,this._tmpAmmoTransform=new this.bjsAMMO.btTransform,this._tmpAmmoTransform.setIdentity(),this._tmpAmmoQuaternion=new this.bjsAMMO.btQuaternion(0,0,0,1),this._tmpAmmoVectorA=new this.bjsAMMO.btVector3(0,0,0),this._tmpAmmoVectorB=new this.bjsAMMO.btVector3(0,0,0),this._tmpAmmoVectorC=new this.bjsAMMO.btVector3(0,0,0),this._tmpAmmoVectorD=new this.bjsAMMO.btVector3(0,0,0)):l.a.Error("AmmoJS is not available. Please make sure you included the js file.")}return r.prototype.setGravity=function(t){this._tmpAmmoVectorA.setValue(t.x,t.y,t.z),this.world.setGravity(this._tmpAmmoVectorA),this.world.getWorldInfo().set_m_gravity(this._tmpAmmoVectorA)},r.prototype.setTimeStep=function(t){this._timeStep=t},r.prototype.setFixedTimeStep=function(t){this._fixedTimeStep=t},r.prototype.setMaxSteps=function(t){this._maxSteps=t},r.prototype.getTimeStep=function(){return this._timeStep},r.prototype._isImpostorInContact=function(t){return this._tmpContactCallbackResult=!1,this.world.contactTest(t.physicsBody,this._tmpAmmoConcreteContactResultCallback),this._tmpContactCallbackResult},r.prototype._isImpostorPairInContact=function(t,e){return this._tmpContactCallbackResult=!1,this.world.contactPairTest(t.physicsBody,e.physicsBody,this._tmpAmmoConcreteContactResultCallback),this._tmpContactCallbackResult},r.prototype._stepSimulation=function(t,e,n){if(t===void 0&&(t=1/60),e===void 0&&(e=10),n===void 0&&(n=1/60),e==0)this.world.stepSimulation(t,0);else for(;e>0&&t>0;)t-n0&&this._isImpostorInContact(d))for(var p=0,b=d._onPhysicsCollideCallbacks;p3?3:d;var p=new this.bjsAMMO.btSoftBodyHelpers().CreateRope(this.world.getWorldInfo(),this._tmpAmmoVectorA,this._tmpAmmoVectorB,n-1,d);return p.get_m_cfg().set_collisions(17),p},r.prototype._createCustom=function(t){var e=null;return this.onCreateCustomShape&&(e=this.onCreateCustomShape(t)),e==null&&(e=new this.bjsAMMO.btCompoundShape),e},r.prototype._addHullVerts=function(t,e,n){var i=this,o=0;if(n&&n.getIndices&&n.getWorldMatrix&&n.getChildMeshes){var a=n.getIndices();a||(a=[]);var s=n.getVerticesData(Oe.b.PositionKind);s||(s=[]),n.computeWorldMatrix(!1);for(var d=a.length/3,p=0;p0){if(t.type!=xt.a.NoImpostor){var p=this._createShape(t,!0);p&&(this._tmpAmmoTransform.getOrigin().setValue(0,0,0),this._tmpAmmoQuaternion.setValue(0,0,0,1),this._tmpAmmoTransform.setRotation(this._tmpAmmoQuaternion),i.addChildShape(this._tmpAmmoTransform,p))}return i}this.bjsAMMO.destroy(i),i=null}switch(t.type){case xt.a.SphereImpostor:if($.a.WithinEpsilon(a.x,a.y,1e-4)&&$.a.WithinEpsilon(a.x,a.z,1e-4))i=new this.bjsAMMO.btSphereShape(a.x/2);else{var b=[new this.bjsAMMO.btVector3(0,0,0)];(i=new this.bjsAMMO.btMultiSphereShape(b,[1],1)).setLocalScaling(new this.bjsAMMO.btVector3(a.x/2,a.y/2,a.z/2))}break;case xt.a.CapsuleImpostor:i=new this.bjsAMMO.btCapsuleShape(a.x/2,a.y/2);break;case xt.a.CylinderImpostor:this._tmpAmmoVectorA.setValue(a.x/2,a.y/2,a.z/2),i=new this.bjsAMMO.btCylinderShape(this._tmpAmmoVectorA);break;case xt.a.PlaneImpostor:case xt.a.BoxImpostor:this._tmpAmmoVectorA.setValue(a.x/2,a.y/2,a.z/2),i=new this.bjsAMMO.btBoxShape(this._tmpAmmoVectorA);break;case xt.a.MeshImpostor:if(t.getParam("mass")==0){var x=new this.bjsAMMO.btTriangleMesh;t._pluginData.toDispose.push(x);var O=this._addMeshVerts(x,o,o);i=O==0?new this.bjsAMMO.btCompoundShape:new this.bjsAMMO.btBvhTriangleMeshShape(x);break}case xt.a.ConvexHullImpostor:var B=new this.bjsAMMO.btConvexHullShape;(O=this._addHullVerts(B,o,o))==0?(t._pluginData.toDispose.push(B),i=new this.bjsAMMO.btCompoundShape):i=B;break;case xt.a.NoImpostor:i=new this.bjsAMMO.btSphereShape(a.x/2);break;case xt.a.CustomImpostor:i=this._createCustom(t);break;case xt.a.SoftbodyImpostor:i=this._createSoftbody(t);break;case xt.a.ClothImpostor:i=this._createCloth(t);break;case xt.a.RopeImpostor:i=this._createRope(t);break;default:l.a.Warn("The impostor type is not currently supported by the ammo plugin.")}return i},r.prototype.setTransformationFromPhysicsBody=function(t){t.physicsBody.getMotionState().getWorldTransform(this._tmpAmmoTransform),t.object.position.set(this._tmpAmmoTransform.getOrigin().x(),this._tmpAmmoTransform.getOrigin().y(),this._tmpAmmoTransform.getOrigin().z()),t.object.rotationQuaternion?t.object.rotationQuaternion.set(this._tmpAmmoTransform.getRotation().x(),this._tmpAmmoTransform.getRotation().y(),this._tmpAmmoTransform.getRotation().z(),this._tmpAmmoTransform.getRotation().w()):t.object.rotation&&(this._tmpQuaternion.set(this._tmpAmmoTransform.getRotation().x(),this._tmpAmmoTransform.getRotation().y(),this._tmpAmmoTransform.getRotation().z(),this._tmpAmmoTransform.getRotation().w()),this._tmpQuaternion.toEulerAnglesToRef(t.object.rotation))},r.prototype.setPhysicsBodyTransformation=function(t,e,n){var i=t.physicsBody.getWorldTransform();if(Math.abs(i.getOrigin().x()-e.x)>Gt.a||Math.abs(i.getOrigin().y()-e.y)>Gt.a||Math.abs(i.getOrigin().z()-e.z)>Gt.a||Math.abs(i.getRotation().x()-n.x)>Gt.a||Math.abs(i.getRotation().y()-n.y)>Gt.a||Math.abs(i.getRotation().z()-n.z)>Gt.a||Math.abs(i.getRotation().w()-n.w)>Gt.a)if(this._tmpAmmoVectorA.setValue(e.x,e.y,e.z),i.setOrigin(this._tmpAmmoVectorA),this._tmpAmmoQuaternion.setValue(n.x,n.y,n.z,n.w),i.setRotation(this._tmpAmmoQuaternion),t.physicsBody.setWorldTransform(i),t.mass==0){var o=t.physicsBody.getMotionState();o&&o.setWorldTransform(i)}else t.physicsBody.activate()},r.prototype.isSupported=function(){return this.bjsAMMO!==void 0},r.prototype.setLinearVelocity=function(t,e){this._tmpAmmoVectorA.setValue(e.x,e.y,e.z),t.soft?t.physicsBody.linearVelocity(this._tmpAmmoVectorA):t.physicsBody.setLinearVelocity(this._tmpAmmoVectorA)},r.prototype.setAngularVelocity=function(t,e){this._tmpAmmoVectorA.setValue(e.x,e.y,e.z),t.soft?t.physicsBody.angularVelocity(this._tmpAmmoVectorA):t.physicsBody.setAngularVelocity(this._tmpAmmoVectorA)},r.prototype.getLinearVelocity=function(t){if(t.soft)var e=t.physicsBody.linearVelocity();else e=t.physicsBody.getLinearVelocity();if(!e)return null;var n=new u.e(e.x(),e.y(),e.z());return this.bjsAMMO.destroy(e),n},r.prototype.getAngularVelocity=function(t){if(t.soft)var e=t.physicsBody.angularVelocity();else e=t.physicsBody.getAngularVelocity();if(!e)return null;var n=new u.e(e.x(),e.y(),e.z());return this.bjsAMMO.destroy(e),n},r.prototype.setBodyMass=function(t,e){t.soft?t.physicsBody.setTotalMass(e,!1):t.physicsBody.setMassProps(e),t._pluginData.mass=e},r.prototype.getBodyMass=function(t){return t._pluginData.mass||0},r.prototype.getBodyFriction=function(t){return t._pluginData.friction||0},r.prototype.setBodyFriction=function(t,e){t.soft?t.physicsBody.get_m_cfg().set_kDF(e):t.physicsBody.setFriction(e),t._pluginData.friction=e},r.prototype.getBodyRestitution=function(t){return t._pluginData.restitution||0},r.prototype.setBodyRestitution=function(t,e){t.physicsBody.setRestitution(e),t._pluginData.restitution=e},r.prototype.getBodyPressure=function(t){return t.soft?t._pluginData.pressure||0:(l.a.Warn("Pressure is not a property of a rigid body"),0)},r.prototype.setBodyPressure=function(t,e){t.soft?t.type===xt.a.SoftbodyImpostor?(t.physicsBody.get_m_cfg().set_kPR(e),t._pluginData.pressure=e):(t.physicsBody.get_m_cfg().set_kPR(0),t._pluginData.pressure=0):l.a.Warn("Pressure can only be applied to a softbody")},r.prototype.getBodyStiffness=function(t){return t.soft?t._pluginData.stiffness||0:(l.a.Warn("Stiffness is not a property of a rigid body"),0)},r.prototype.setBodyStiffness=function(t,e){t.soft?(e=(e=e<0?0:e)>1?1:e,t.physicsBody.get_m_materials().at(0).set_m_kLST(e),t._pluginData.stiffness=e):l.a.Warn("Stiffness cannot be applied to a rigid body")},r.prototype.getBodyVelocityIterations=function(t){return t.soft?t._pluginData.velocityIterations||0:(l.a.Warn("Velocity iterations is not a property of a rigid body"),0)},r.prototype.setBodyVelocityIterations=function(t,e){t.soft?(e=e<0?0:e,t.physicsBody.get_m_cfg().set_viterations(e),t._pluginData.velocityIterations=e):l.a.Warn("Velocity iterations cannot be applied to a rigid body")},r.prototype.getBodyPositionIterations=function(t){return t.soft?t._pluginData.positionIterations||0:(l.a.Warn("Position iterations is not a property of a rigid body"),0)},r.prototype.setBodyPositionIterations=function(t,e){t.soft?(e=e<0?0:e,t.physicsBody.get_m_cfg().set_piterations(e),t._pluginData.positionIterations=e):l.a.Warn("Position iterations cannot be applied to a rigid body")},r.prototype.appendAnchor=function(t,e,n,i,o,a){o===void 0&&(o=1),a===void 0&&(a=!1);var s=t.segments,d=Math.round((s-1)*n)+s*(s-1-Math.round((s-1)*i));t.physicsBody.appendAnchor(d,e.physicsBody,a,o)},r.prototype.appendHook=function(t,e,n,i,o){i===void 0&&(i=1),o===void 0&&(o=!1);var a=Math.round(t.segments*n);t.physicsBody.appendAnchor(a,e.physicsBody,o,i)},r.prototype.sleepBody=function(t){l.a.Warn("sleepBody is not currently supported by the Ammo physics plugin")},r.prototype.wakeUpBody=function(t){t.physicsBody.activate()},r.prototype.updateDistanceJoint=function(t,e,n){l.a.Warn("updateDistanceJoint is not currently supported by the Ammo physics plugin")},r.prototype.setMotor=function(t,e,n,i){t.physicsJoint.enableAngularMotor(!0,e,n)},r.prototype.setLimit=function(t,e,n){l.a.Warn("setLimit is not currently supported by the Ammo physics plugin")},r.prototype.syncMeshWithImpostor=function(t,e){e.physicsBody.getMotionState().getWorldTransform(this._tmpAmmoTransform),t.position.x=this._tmpAmmoTransform.getOrigin().x(),t.position.y=this._tmpAmmoTransform.getOrigin().y(),t.position.z=this._tmpAmmoTransform.getOrigin().z(),t.rotationQuaternion&&(t.rotationQuaternion.x=this._tmpAmmoTransform.getRotation().x(),t.rotationQuaternion.y=this._tmpAmmoTransform.getRotation().y(),t.rotationQuaternion.z=this._tmpAmmoTransform.getRotation().z(),t.rotationQuaternion.w=this._tmpAmmoTransform.getRotation().w())},r.prototype.getRadius=function(t){return t.getObjectExtendSize().x/2},r.prototype.getBoxSizeToRef=function(t,e){var n=t.getObjectExtendSize();e.x=n.x,e.y=n.y,e.z=n.z},r.prototype.dispose=function(){this.bjsAMMO.destroy(this.world),this.bjsAMMO.destroy(this._solver),this.bjsAMMO.destroy(this._overlappingPairCache),this.bjsAMMO.destroy(this._dispatcher),this.bjsAMMO.destroy(this._collisionConfiguration),this.bjsAMMO.destroy(this._tmpAmmoVectorA),this.bjsAMMO.destroy(this._tmpAmmoVectorB),this.bjsAMMO.destroy(this._tmpAmmoVectorC),this.bjsAMMO.destroy(this._tmpAmmoTransform),this.bjsAMMO.destroy(this._tmpAmmoQuaternion),this.bjsAMMO.destroy(this._tmpAmmoConcreteContactResultCallback),this.world=null},r.prototype.raycast=function(t,e){this._tmpAmmoVectorRCA=new this.bjsAMMO.btVector3(t.x,t.y,t.z),this._tmpAmmoVectorRCB=new this.bjsAMMO.btVector3(e.x,e.y,e.z);var n=new this.bjsAMMO.ClosestRayResultCallback(this._tmpAmmoVectorRCA,this._tmpAmmoVectorRCB);return this.world.rayTest(this._tmpAmmoVectorRCA,this._tmpAmmoVectorRCB,n),this._raycastResult.reset(t,e),n.hasHit()&&(this._raycastResult.setHitData({x:n.get_m_hitNormalWorld().x(),y:n.get_m_hitNormalWorld().y(),z:n.get_m_hitNormalWorld().z()},{x:n.get_m_hitPointWorld().x(),y:n.get_m_hitPointWorld().y(),z:n.get_m_hitPointWorld().z()}),this._raycastResult.calculateHitDistance()),this.bjsAMMO.destroy(n),this.bjsAMMO.destroy(this._tmpAmmoVectorRCA),this.bjsAMMO.destroy(this._tmpAmmoVectorRCB),this._raycastResult},r.DISABLE_COLLISION_FLAG=4,r.KINEMATIC_FLAG=2,r.DISABLE_DEACTIVATION_FLAG=4,r}();U.a.prototype.removeReflectionProbe=function(r){if(!this.reflectionProbes)return-1;var t=this.reflectionProbes.indexOf(r);return t!==-1&&this.reflectionProbes.splice(t,1),t},U.a.prototype.addReflectionProbe=function(r){this.reflectionProbes||(this.reflectionProbes=[]),this.reflectionProbes.push(r)};var Ju=function(){function r(t,e,n,i,o){var a=this;i===void 0&&(i=!0),o===void 0&&(o=!1),this.name=t,this._viewMatrix=u.a.Identity(),this._target=u.e.Zero(),this._add=u.e.Zero(),this._invertYAxis=!1,this.position=u.e.Zero(),this._scene=n,this._scene.reflectionProbes||(this._scene.reflectionProbes=new Array),this._scene.reflectionProbes.push(this);var s=h.a.TEXTURETYPE_UNSIGNED_BYTE;if(o){var d=this._scene.getEngine().getCaps();d.textureHalfFloatRender?s=h.a.TEXTURETYPE_HALF_FLOAT:d.textureFloatRender&&(s=h.a.TEXTURETYPE_FLOAT)}this._renderTargetTexture=new sn(t,e,n,i,!0,s,!0),this._renderTargetTexture.onBeforeRenderObservable.add(function(p){switch(p){case 0:a._add.copyFromFloats(1,0,0);break;case 1:a._add.copyFromFloats(-1,0,0);break;case 2:a._add.copyFromFloats(0,a._invertYAxis?1:-1,0);break;case 3:a._add.copyFromFloats(0,a._invertYAxis?-1:1,0);break;case 4:a._add.copyFromFloats(0,0,1);break;case 5:a._add.copyFromFloats(0,0,-1)}a._attachedMesh&&a.position.copyFrom(a._attachedMesh.getAbsolutePosition()),a.position.addToRef(a._add,a._target),u.a.LookAtLHToRef(a.position,a._target,u.e.Up(),a._viewMatrix),n.activeCamera&&(a._projectionMatrix=u.a.PerspectiveFovLH(Math.PI/2,1,n.activeCamera.minZ,n.activeCamera.maxZ),n.setTransformMatrix(a._viewMatrix,a._projectionMatrix)),n._forcedViewPosition=a.position}),this._renderTargetTexture.onAfterUnbindObservable.add(function(){n._forcedViewPosition=null,n.updateTransformMatrix(!0)})}return Object.defineProperty(r.prototype,"samples",{get:function(){return this._renderTargetTexture.samples},set:function(t){this._renderTargetTexture.samples=t},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"refreshRate",{get:function(){return this._renderTargetTexture.refreshRate},set:function(t){this._renderTargetTexture.refreshRate=t},enumerable:!1,configurable:!0}),r.prototype.getScene=function(){return this._scene},Object.defineProperty(r.prototype,"cubeTexture",{get:function(){return this._renderTargetTexture},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"renderList",{get:function(){return this._renderTargetTexture.renderList},enumerable:!1,configurable:!0}),r.prototype.attachToMesh=function(t){this._attachedMesh=t},r.prototype.setRenderingAutoClearDepthStencil=function(t,e){this._renderTargetTexture.setRenderingAutoClearDepthStencil(t,e)},r.prototype.dispose=function(){var t=this._scene.reflectionProbes.indexOf(this);t!==-1&&this._scene.reflectionProbes.splice(t,1),this._renderTargetTexture&&(this._renderTargetTexture.dispose(),this._renderTargetTexture=null)},r.prototype.toString=function(t){var e="Name: "+this.name;return t&&(e+=", position: "+this.position.toString(),this._attachedMesh&&(e+=", attached mesh: "+this._attachedMesh.name)),e},r.prototype.getClassName=function(){return"ReflectionProbe"},r.prototype.serialize=function(){var t=L.a.Serialize(this,this._renderTargetTexture.serialize());return t.isReflectionProbe=!0,t},r.Parse=function(t,e,n){var i=null;if(e.reflectionProbes)for(var o=0;o0){var n=t._waitingData.lods.ids,i=e.isEnabled(!1);if(t._waitingData.lods.distances){var o=t._waitingData.lods.distances;if(o.length>=n.length){var a=o.length>n.length?o[o.length-1]:0;e.setEnabled(!1);for(var s=0;s0&&e.addLODLevel(a,null),i===!0&&e.setEnabled(!0)}else Xe.b.Warn("Invalid level of detail distances for "+t.name)}}t._waitingData.lods=null}},th=function(r,t,e,n,i){i===void 0&&(i=!1);var o=new xn(r),a="importScene has failed JSON parse";try{var s=JSON.parse(t);a="";var d,p,b=Ut.loggingLevel===Ut.DETAILED_LOGGING;if(s.environmentTexture!==void 0&&s.environmentTexture!==null){var x=s.isPBR===void 0||s.isPBR;if(s.environmentTextureType&&s.environmentTextureType==="BABYLON.HDRCubeTexture"){var O=s.environmentTextureSize?s.environmentTextureSize:128,B=new sa((s.environmentTexture.match(/https?:\/\//g)?"":e)+s.environmentTexture,r,O,!0,!x);s.environmentTextureRotationY&&(B.rotationY=s.environmentTextureRotationY),r.environmentTexture=B}else if(Qn.a.EndsWith(s.environmentTexture,".env")){var F=new oi((s.environmentTexture.match(/https?:\/\//g)?"":e)+s.environmentTexture,r);s.environmentTextureRotationY&&(F.rotationY=s.environmentTextureRotationY),r.environmentTexture=F}else{var z=oi.CreateFromPrefilteredData((s.environmentTexture.match(/https?:\/\//g)?"":e)+s.environmentTexture,r);s.environmentTextureRotationY&&(z.rotationY=s.environmentTextureRotationY),r.environmentTexture=z}if(s.createDefaultSkybox===!0){var J=r.activeCamera!==void 0&&r.activeCamera!==null?(r.activeCamera.maxZ-r.activeCamera.minZ)/2:1e3,ie=s.skyboxBlurLevel||0;r.createDefaultSkybox(r.environmentTexture,x,J,ie)}o.environmentTexture=r.environmentTexture}if(s.environmentIntensity!==void 0&&s.environmentIntensity!==null&&(r.environmentIntensity=s.environmentIntensity),s.lights!==void 0&&s.lights!==null)for(d=0,p=s.lights.length;d0){for(var $t=0;$t0){for(var Gn=0;Gn-1&&p.skeletons!==void 0&&p.skeletons!==null&&!(z.indexOf(ie.skeletonId)>-1))for(var Le=0,xe=p.skeletons.length;Le1,this.wrapU=h.a.TEXTURE_CLAMP_ADDRESSMODE,this.wrapV=h.a.TEXTURE_CLAMP_ADDRESSMODE,this.wrapR=h.a.TEXTURE_CLAMP_ADDRESSMODE,this.anisotropicFilteringLevel=1;var o=function(s){if(typeof s=="string"){for(var d,p=null,b=null,x=s.split(` +`),O=0,B=0,F=0,z=0,J=0,ie=0;ie0&&(ie+1)%4==0)p[ie]=255;else{var Te=b[ie];p[ie]=Te/J*255}e.is3D?(e.updateSize(O,O,O),i.updateRawTexture3D(e,p,h.a.TEXTUREFORMAT_RGBA,!1)):(e.updateSize(O*O,O),i.updateRawTexture(e,p,h.a.TEXTUREFORMAT_RGBA,!1)),e.isReady=!0,n._triggerOnLoad()}},a=this.getScene();return a?a._loadFile(this.url,o):i._loadFile(this.url,o),this._texture},t.prototype.loadTexture=function(){this.url&&this.url.toLocaleLowerCase().indexOf(".3dl")==this.url.length-4&&this.load3dlTexture()},t.prototype.clone=function(){var e=new t(this.url,this.getScene()||this._getEngine());return e.level=this.level,e},t.prototype.delayLoad=function(){this.delayLoadState===h.a.DELAYLOADSTATE_NOTLOADED&&(this.delayLoadState=h.a.DELAYLOADSTATE_LOADED,this._texture=this._getFromCache(this.url,!0),this._texture||this.loadTexture())},t.Parse=function(e,n){var i=null;return e.name&&!e.isRenderTarget&&((i=new t(e.name,n)).name=e.name,i.level=e.level),i},t.prototype.serialize=function(){if(!this.name)return null;var e={};return e.name=this.name,e.level=this.level,e.customType="BABYLON.ColorGradingTexture",e},t._noneEmptyLineRegex=/\S+/,t}(Wn.a);C.a.RegisteredTypes["BABYLON.ColorGradingTexture"]=ah;var sh=function(r){function t(e,n,i,o,a,s,d){o===void 0&&(o=!1),a===void 0&&(a=!0),s===void 0&&(s=null),d===void 0&&(d=null);var p=r.call(this,n)||this;if(p._onLoad=null,p._onError=null,!e)throw new Error("Image url is not set");return p._coordinatesMode=we.a.CUBIC_MODE,p.name=e,p.url=e,p._size=i,p._noMipmap=o,p.gammaSpace=a,p._onLoad=s,p._onError=d,p.hasAlpha=!1,p.isCube=!0,p._texture=p._getFromCache(e,p._noMipmap),p._texture?s&&(p._texture.isReady?Xe.b.SetImmediate(function(){return s()}):p._texture.onLoadedObservable.add(s)):n.useDelayedTextureLoading?p.delayLoadState=h.a.DELAYLOADSTATE_NOTLOADED:p.loadImage(p.loadTexture.bind(p),p._onError),p}return Object(c.d)(t,r),t.prototype.loadImage=function(e,n){var i=this,o=document.createElement("canvas"),a=new Image;a.addEventListener("load",function(){i._width=a.width,i._height=a.height,o.width=i._width,o.height=i._height;var s=o.getContext("2d");s.drawImage(a,0,0);var d=s.getImageData(0,0,a.width,a.height);i._buffer=d.data.buffer,o.remove(),e()}),a.addEventListener("error",function(s){n&&n(i.getClassName()+" could not be loaded",s)}),a.src=this.url},t.prototype.loadTexture=function(){var e=this,n=this.getScene();n&&(this._texture=n.getEngine().createRawCubeTextureFromUrl(this.url,n,this._size,h.a.TEXTUREFORMAT_RGB,n.getEngine().getCaps().textureFloat?h.a.TEXTURETYPE_FLOAT:h.a.TEXTURETYPE_UNSIGNED_INTEGER,this._noMipmap,function(){for(var i=e.getFloat32ArrayFromArrayBuffer(e._buffer),o=Xs.ConvertPanoramaToCubemap(i,e._width,e._height,e._size),a=[],s=0;s<6;s++){var d=o[t._FacesMapping[s]];a.push(d)}return a},null,this._onLoad,this._onError))},t.prototype.getFloat32ArrayFromArrayBuffer=function(e){for(var n=new DataView(e),i=new Float32Array(3*e.byteLength/4),o=0,a=0;ae.length)l.a.Error("Unable to load TGA file - Not enough data");else{n+=i.id_length;var o,a=!1,s=!1,d=!1;switch(i.image_type){case r._TYPE_RLE_INDEXED:a=!0;case r._TYPE_INDEXED:s=!0;break;case r._TYPE_RLE_RGB:a=!0;case r._TYPE_RGB:break;case r._TYPE_RLE_GREY:a=!0;case r._TYPE_GREY:d=!0}var p,b,x,O,B,F,z,J=i.pixel_size>>3,ie=i.width*i.height*J;if(s&&(p=e.subarray(n,n+=i.colormap_length*(i.colormap_size>>3))),a){var se,ce,ue;o=new Uint8Array(ie);for(var fe=0,ve=new Uint8Array(J);n>r._ORIGIN_SHIFT){default:case r._ORIGIN_UL:b=0,O=1,z=i.width,x=0,B=1,F=i.height;break;case r._ORIGIN_BL:b=0,O=1,z=i.width,x=i.height-1,B=-1,F=-1;break;case r._ORIGIN_UR:b=i.width-1,O=-1,z=-1,x=0,B=1,F=i.height;break;case r._ORIGIN_BR:b=i.width-1,O=-1,z=-1,x=i.height-1,B=-1,F=-1}var Te=r["_getImageData"+(d?"Grey":"")+i.pixel_size+"bits"](i,p,o,x,B,F,b,O,z);t.getEngine()._uploadDataToTextureDirectly(t,Te)}}},r._getImageData8bits=function(t,e,n,i,o,a,s,d,p){var b,x,O,B=n,F=e,z=t.width,J=t.height,ie=0,se=new Uint8Array(z*J*4);for(O=i;O!==a;O+=o)for(x=s;x!==p;x+=d,ie++)b=B[ie],se[4*(x+z*O)+3]=255,se[4*(x+z*O)+2]=F[3*b+0],se[4*(x+z*O)+1]=F[3*b+1],se[4*(x+z*O)+0]=F[3*b+2];return se},r._getImageData16bits=function(t,e,n,i,o,a,s,d,p){var b,x,O,B=n,F=t.width,z=t.height,J=0,ie=new Uint8Array(F*z*4);for(O=i;O!==a;O+=o)for(x=s;x!==p;x+=d,J+=2){var se=255*((31744&(b=B[J+0]+(B[J+1]<<8)))>>10)/31|0,ce=255*((992&b)>>5)/31|0,ue=255*(31&b)/31|0;ie[4*(x+F*O)+0]=se,ie[4*(x+F*O)+1]=ce,ie[4*(x+F*O)+2]=ue,ie[4*(x+F*O)+3]=32768&b?0:255}return ie},r._getImageData24bits=function(t,e,n,i,o,a,s,d,p){var b,x,O=n,B=t.width,F=t.height,z=0,J=new Uint8Array(B*F*4);for(x=i;x!==a;x+=o)for(b=s;b!==p;b+=d,z+=3)J[4*(b+B*x)+3]=255,J[4*(b+B*x)+2]=O[z+0],J[4*(b+B*x)+1]=O[z+1],J[4*(b+B*x)+0]=O[z+2];return J},r._getImageData32bits=function(t,e,n,i,o,a,s,d,p){var b,x,O=n,B=t.width,F=t.height,z=0,J=new Uint8Array(B*F*4);for(x=i;x!==a;x+=o)for(b=s;b!==p;b+=d,z+=4)J[4*(b+B*x)+2]=O[z+0],J[4*(b+B*x)+1]=O[z+1],J[4*(b+B*x)+0]=O[z+2],J[4*(b+B*x)+3]=O[z+3];return J},r._getImageDataGrey8bits=function(t,e,n,i,o,a,s,d,p){var b,x,O,B=n,F=t.width,z=t.height,J=0,ie=new Uint8Array(F*z*4);for(O=i;O!==a;O+=o)for(x=s;x!==p;x+=d,J++)b=B[J],ie[4*(x+F*O)+0]=b,ie[4*(x+F*O)+1]=b,ie[4*(x+F*O)+2]=b,ie[4*(x+F*O)+3]=255;return ie},r._getImageDataGrey16bits=function(t,e,n,i,o,a,s,d,p){var b,x,O=n,B=t.width,F=t.height,z=0,J=new Uint8Array(B*F*4);for(x=i;x!==a;x+=o)for(b=s;b!==p;b+=d,z+=2)J[4*(b+B*x)+0]=O[z+0],J[4*(b+B*x)+1]=O[z+0],J[4*(b+B*x)+2]=O[z+0],J[4*(b+B*x)+3]=O[z+1];return J},r._TYPE_INDEXED=1,r._TYPE_RGB=2,r._TYPE_GREY=3,r._TYPE_RLE_INDEXED=9,r._TYPE_RLE_RGB=10,r._TYPE_RLE_GREY=11,r._ORIGIN_MASK=48,r._ORIGIN_SHIFT=4,r._ORIGIN_BL=0,r._ORIGIN_BR=1,r._ORIGIN_UL=2,r._ORIGIN_UR=3,r}(),ch=function(){function r(){this.supportCascades=!1}return r.prototype.canLoad=function(t){return Qn.a.EndsWith(t,".tga")},r.prototype.loadCubeData=function(t,e,n,i,o){throw".env not supported in Cube."},r.prototype.loadData=function(t,e,n){var i=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),o=da.GetTGAHeader(i);n(o.width,o.height,e.generateMipMaps,!1,function(){da.UploadContent(e,i)})},r}();Ue.a._TextureLoaders.push(new ch);var fo,Z_=function(){};(function(r){r[r.cTFETC1=0]="cTFETC1",r[r.cTFBC1=1]="cTFBC1",r[r.cTFBC4=2]="cTFBC4",r[r.cTFPVRTC1_4_OPAQUE_ONLY=3]="cTFPVRTC1_4_OPAQUE_ONLY",r[r.cTFBC7_M6_OPAQUE_ONLY=4]="cTFBC7_M6_OPAQUE_ONLY",r[r.cTFETC2=5]="cTFETC2",r[r.cTFBC3=6]="cTFBC3",r[r.cTFBC5=7]="cTFBC5"})(fo||(fo={}));var po=function(){function r(){}return r.GetInternalFormatFromBasisFormat=function(t){if(t===fo.cTFETC1)return 36196;if(t===fo.cTFBC1)return 33776;if(t===fo.cTFBC3)return 33779;throw"The chosen Basis transcoder format is not currently supported"},r._CreateWorkerAsync=function(){var t=this;return this._WorkerPromise||(this._WorkerPromise=new Promise(function(e){t._Worker?e(t._Worker):Xe.b.LoadFileAsync(r.WasmModuleURL).then(function(n){var i=URL.createObjectURL(new Blob(["("+J_+")()"],{type:"application/javascript"}));t._Worker=new Worker(i);var o=function(a){a.data.action==="init"&&(t._Worker.removeEventListener("message",o),e(t._Worker))};t._Worker.addEventListener("message",o),t._Worker.postMessage({action:"init",url:r.JSModuleURL,wasmBinary:n})})})),this._WorkerPromise},r.TranscodeAsync=function(t,e){var n=this,i=t instanceof ArrayBuffer?new Uint8Array(t):t;return new Promise(function(o,a){n._CreateWorkerAsync().then(function(){var s=n._actionId++,d=function(b){b.data.action==="transcode"&&b.data.id===s&&(n._Worker.removeEventListener("message",d),b.data.success?o(b.data):a("Transcode is not supported on this device"))};n._Worker.addEventListener("message",d);var p=new Uint8Array(i.byteLength);p.set(new Uint8Array(i.buffer,i.byteOffset,i.byteLength)),n._Worker.postMessage({action:"transcode",id:s,imageData:p,config:e,ignoreSupportedFormats:n._IgnoreSupportedFormats},[p.buffer])})})},r.LoadTextureFromTranscodeResult=function(t,e){for(var n,i=t.getEngine(),o=function(){if(n=e.fileInfo.images[a].levels[0],t._invertVScale=t.invertY,e.format===-1)if(t.type=h.a.TEXTURETYPE_UNSIGNED_SHORT_5_6_5,t.format=h.a.TEXTUREFORMAT_RGB,i.webGLVersion<2&&($.a.Log2(n.width)%1!=0||$.a.Log2(n.height)%1!=0)){var s=new Ct.a(i,Ct.b.Temp);t._invertVScale=t.invertY,s.type=h.a.TEXTURETYPE_UNSIGNED_SHORT_5_6_5,s.format=h.a.TEXTUREFORMAT_RGB,s.width=n.width+3&-4,s.height=n.height+3&-4,i._bindTextureDirectly(i._gl.TEXTURE_2D,s,!0),i._uploadDataToTextureDirectly(s,n.transcodedPixels,a,0,h.a.TEXTUREFORMAT_RGB,!0),i._rescaleTexture(s,t,i.scenes[0],i._getInternalFormat(h.a.TEXTUREFORMAT_RGB),function(){i._releaseTexture(s),i._bindTextureDirectly(i._gl.TEXTURE_2D,t,!0)})}else t._invertVScale=!t.invertY,t.width=n.width+3&-4,t.height=n.height+3&-4,i._uploadDataToTextureDirectly(t,n.transcodedPixels,a,0,h.a.TEXTUREFORMAT_RGB,!0);else t.width=n.width,t.height=n.height,e.fileInfo.images[a].levels.forEach(function(d,p){i._uploadCompressedDataToTextureDirectly(t,r.GetInternalFormatFromBasisFormat(e.format),d.width,d.height,d.transcodedPixels,a,p)}),i.webGLVersion<2&&($.a.Log2(t.width)%1!=0||$.a.Log2(t.height)%1!=0)&&(Xe.b.Warn("Loaded .basis texture width and height are not a power of two. Texture wrapping will be set to Texture.CLAMP_ADDRESSMODE as other modes are not supported with non power of two dimensions in webGL 1."),t._cachedWrapU=we.a.CLAMP_ADDRESSMODE,t._cachedWrapV=we.a.CLAMP_ADDRESSMODE)},a=0;a>2&3],se[Ee++]=ie[Ae>>4&3],se[Ee++]=ie[Ae>>6&3]}}return se}(O,0,a.getImageWidth(s,d)+3&-4,a.getImageHeight(s,d)+3&-4)),O):null}onmessage=function(a){if(a.data.action==="init")i||(Module={wasmBinary:a.data.wasmBinary},importScripts(a.data.url),i=new Promise(function(fe){Module.onRuntimeInitialized=function(){Module.initializeBasis(),fe()}})),i.then(function(){postMessage({action:"init"})});else if(a.data.action==="transcode"){var s=a.data.config,d=a.data.imageData,p=new Module.BasisFile(d),b=function(fe){for(var ve=fe.getHasAlpha(),Te=fe.getNumImages(),Re=[],Ae=0;Ae1&&e.generateMipMaps;po.LoadTextureFromTranscodeResult(e,d),e.getEngine()._setCubeMapTextureParams(e,p),e.isReady=!0,e.onLoadedObservable.notifyObservers(e),e.onLoadedObservable.clear(),i&&i()}).catch(function(d){Xe.b.Warn("Failed to transcode Basis file, transcoding may not be supported on this device"),e.isReady=!0})}},r.prototype.loadData=function(t,e,n){var i=e.getEngine().getCaps(),o={supportedCompressionFormats:{etc1:!!i.etc1,s3tc:!!i.s3tc,pvrtc:!!i.pvrtc,etc2:!!i.etc2}};po.TranscodeAsync(t,o).then(function(a){var s=a.fileInfo.images[0].levels[0],d=a.fileInfo.images[0].levels.length>1&&e.generateMipMaps;n(s.width,s.height,d,a.format!==-1,function(){po.LoadTextureFromTranscodeResult(e,a)})}).catch(function(a){Xe.b.Warn("Failed to transcode Basis file, transcoding may not be supported on this device"),n(0,0,!1,!1,function(){})})},r}();Ue.a._TextureLoaders.push(new lh);var qs=function(r){function t(e,n,i,o,a){var s=this,d=!(!a||!a.generateMipMaps)&&a.generateMipMaps,p=!(!a||!a.generateDepthTexture)&&a.generateDepthTexture,b=!a||a.doNotChangeAspectRatio===void 0||a.doNotChangeAspectRatio;if((s=r.call(this,e,n,o,d,b)||this).isSupported){var x=[],O=[];s._initTypes(i,x,O,a);var B=!a||a.generateDepthBuffer===void 0||a.generateDepthBuffer,F=!(!a||a.generateStencilBuffer===void 0)&&a.generateStencilBuffer;return s._size=n,s._multiRenderTargetOptions={samplingModes:O,generateMipMaps:d,generateDepthBuffer:B,generateStencilBuffer:F,generateDepthTexture:p,types:x,textureCount:i},s._count=i,s._createInternalTextures(),s._createTextures(),s}s.dispose()}return Object(c.d)(t,r),Object.defineProperty(t.prototype,"isSupported",{get:function(){return this._getEngine().webGLVersion>1||this._getEngine().getCaps().drawBuffersExtension},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"textures",{get:function(){return this._textures},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"count",{get:function(){return this._count},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"depthTexture",{get:function(){return this._textures[this._textures.length-1]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"wrapU",{set:function(e){if(this._textures)for(var n=0;n=0;e--)this._internalTextures[e]!==void 0&&(this._internalTextures[e].dispose(),this._internalTextures.splice(e,1))},t}(sn),Zs=function(r,t,e){this.id=r,this.scale=t,this.offset=e},$_=function(){function r(t,e,n,i){var o,a,s,d,p,b,x,O,B,F,z,J,ie;return this.name=t,this.meshes=e,this.scene=i,this.options=n,this.options.map=(o=this.options.map)!==null&&o!==void 0?o:["ambientTexture","bumpTexture","diffuseTexture","emissiveTexture","lightmapTexture","opacityTexture","reflectionTexture","refractionTexture","specularTexture"],this.options.uvsIn=(a=this.options.uvsIn)!==null&&a!==void 0?a:Oe.b.UVKind,this.options.uvsOut=(s=this.options.uvsOut)!==null&&s!==void 0?s:Oe.b.UVKind,this.options.layout=(d=this.options.layout)!==null&&d!==void 0?d:r.LAYOUT_STRIP,this.options.layout===r.LAYOUT_COLNUM&&(this.options.colnum=(p=this.options.colnum)!==null&&p!==void 0?p:8),this.options.updateInputMeshes=(b=this.options.updateInputMeshes)===null||b===void 0||b,this.options.disposeSources=(x=this.options.disposeSources)===null||x===void 0||x,this._expecting=0,this.options.fillBlanks=(O=this.options.fillBlanks)===null||O===void 0||O,this.options.fillBlanks===!0&&(this.options.customFillColor=(B=this.options.customFillColor)!==null&&B!==void 0?B:"black"),this.options.frameSize=(F=this.options.frameSize)!==null&&F!==void 0?F:256,this.options.paddingRatio=(z=this.options.paddingRatio)!==null&&z!==void 0?z:.0115,this._paddingValue=Math.ceil(this.options.frameSize*this.options.paddingRatio),this._paddingValue%2!=0&&this._paddingValue++,this.options.paddingMode=(J=this.options.paddingMode)!==null&&J!==void 0?J:r.SUBUV_WRAP,this.options.paddingMode===r.SUBUV_COLOR&&(this.options.paddingColor=(ie=this.options.paddingColor)!==null&&ie!==void 0?ie:new M.b(0,0,0,1)),this.sets={},this.frames=[],this}return r.prototype._createFrames=function(t){for(var e=this,n=this._calculateSize(),i=new u.d(1,1).divide(n),o=0,a=this._expecting,s=this.meshes.length,d=Object.keys(this.sets),p=0;p0);for(var t=0;t0)}},r}(),em=` +attribute vec2 position; + +varying vec2 vPosition; +varying vec2 vUV; +const vec2 madd=vec2(0.5,0.5); +void main(void) { +vPosition=position; +vUV=position*madd+madd; +gl_Position=vec4(position,0.0,1.0); +}`;ze.a.ShadersStore.proceduralVertexShader=em;var _o=function(r){function t(e,n,i,o,a,s,d,p){a===void 0&&(a=null),s===void 0&&(s=!0),d===void 0&&(d=!1),p===void 0&&(p=h.a.TEXTURETYPE_UNSIGNED_INT);var b=r.call(this,null,o,!s)||this;b.isEnabled=!0,b.autoClear=!0,b.onGeneratedObservable=new R.c,b.onBeforeGenerationObservable=new R.c,b.nodeMaterialSource=null,b._textures={},b._currentRefreshId=-1,b._frameId=-1,b._refreshRate=1,b._vertexBuffers={},b._uniforms=new Array,b._samplers=new Array,b._floats={},b._ints={},b._floatsArrays={},b._colors3={},b._colors4={},b._vectors2={},b._vectors3={},b._matrices={},b._fallbackTextureUsed=!1,b._cachedDefines="",b._contentUpdateId=-1;var x=(o=b.getScene()||te.a.LastCreatedScene)._getComponent(at.a.NAME_PROCEDURALTEXTURE);x||(x=new uh(o),o._addComponent(x)),o.proceduralTextures.push(b),b._fullEngine=o.getEngine(),b.name=e,b.isRenderTarget=!0,b._size=n,b._generateMipMaps=s,b.setFragment(i),b._fallbackTexture=a,d?(b._texture=b._fullEngine.createRenderTargetCubeTexture(n,{generateMipMaps:s,generateDepthBuffer:!1,generateStencilBuffer:!1,type:p}),b.setFloat("face",0)):b._texture=b._fullEngine.createRenderTargetTexture(n,{generateMipMaps:s,generateDepthBuffer:!1,generateStencilBuffer:!1,type:p});var O=[];return O.push(1,1),O.push(-1,1),O.push(-1,-1),O.push(1,-1),b._vertexBuffers[Oe.b.PositionKind]=new Oe.b(b._fullEngine,O,Oe.b.PositionKind,!1,!1,2),b._createIndexBuffer(),b}return Object(c.d)(t,r),t.prototype.getEffect=function(){return this._effect},t.prototype.getContent=function(){return this._contentData&&this._frameId===this._contentUpdateId||(this._contentData=this.readPixels(0,0,this._contentData),this._contentUpdateId=this._frameId),this._contentData},t.prototype._createIndexBuffer=function(){var e=this._fullEngine,n=[];n.push(0),n.push(1),n.push(2),n.push(0),n.push(2),n.push(3),this._indexBuffer=e.createIndexBuffer(n)},t.prototype._rebuild=function(){var e=this._vertexBuffers[Oe.b.PositionKind];e&&e._rebuild(),this._createIndexBuffer(),this.refreshRate===sn.REFRESHRATE_RENDER_ONCE&&(this.refreshRate=sn.REFRESHRATE_RENDER_ONCE)},t.prototype.reset=function(){this._effect!==void 0&&this._effect.dispose()},t.prototype._getDefines=function(){return""},t.prototype.isReady=function(){var e,n=this,i=this._fullEngine;if(this.nodeMaterialSource)return this._effect.isReady();if(!this._fragment)return!1;if(this._fallbackTextureUsed)return!0;var o=this._getDefines();return!(!this._effect||o!==this._cachedDefines||!this._effect.isReady())||(e=this._fragment.fragmentElement!==void 0?{vertex:"procedural",fragmentElement:this._fragment.fragmentElement}:{vertex:"procedural",fragment:this._fragment},this._cachedDefines=o,this._effect=i.createEffect(e,[Oe.b.PositionKind],this._uniforms,this._samplers,o,void 0,void 0,function(){n.releaseInternalTexture(),n._fallbackTexture&&(n._texture=n._fallbackTexture._texture,n._texture&&n._texture.incrementReferences()),n._fallbackTextureUsed=!0}),this._effect.isReady())},t.prototype.resetRefreshCounter=function(){this._currentRefreshId=-1},t.prototype.setFragment=function(e){this._fragment=e},Object.defineProperty(t.prototype,"refreshRate",{get:function(){return this._refreshRate},set:function(e){this._refreshRate=e,this.resetRefreshCounter()},enumerable:!1,configurable:!0}),t.prototype._shouldRender=function(){return this.isEnabled&&this.isReady()&&this._texture?!this._fallbackTextureUsed&&(this._currentRefreshId===-1||this.refreshRate===this._currentRefreshId?(this._currentRefreshId=1,this._frameId++,!0):(this._currentRefreshId++,!1)):(this._texture&&(this._texture.isReady=!1),!1)},t.prototype.getRenderSize=function(){return this._size},t.prototype.resize=function(e,n){this._fallbackTextureUsed||(this.releaseInternalTexture(),this._texture=this._fullEngine.createRenderTargetTexture(e,n),this._size=e,this._generateMipMaps=n)},t.prototype._checkUniform=function(e){this._uniforms.indexOf(e)===-1&&this._uniforms.push(e)},t.prototype.setTexture=function(e,n){return this._samplers.indexOf(e)===-1&&this._samplers.push(e),this._textures[e]=n,this},t.prototype.setFloat=function(e,n){return this._checkUniform(e),this._floats[e]=n,this},t.prototype.setInt=function(e,n){return this._checkUniform(e),this._ints[e]=n,this},t.prototype.setFloats=function(e,n){return this._checkUniform(e),this._floatsArrays[e]=n,this},t.prototype.setColor3=function(e,n){return this._checkUniform(e),this._colors3[e]=n,this},t.prototype.setColor4=function(e,n){return this._checkUniform(e),this._colors4[e]=n,this},t.prototype.setVector2=function(e,n){return this._checkUniform(e),this._vectors2[e]=n,this},t.prototype.setVector3=function(e,n){return this._checkUniform(e),this._vectors3[e]=n,this},t.prototype.setMatrix=function(e,n){return this._checkUniform(e),this._matrices[e]=n,this},t.prototype.render=function(e){var n=this.getScene();if(n){var i=this._fullEngine;if(i.enableEffect(this._effect),this.onBeforeGenerationObservable.notifyObservers(this),i.setState(!1),!this.nodeMaterialSource){for(var o in this._textures)this._effect.setTexture(o,this._textures[o]);for(o in this._ints)this._effect.setInt(o,this._ints[o]);for(o in this._floats)this._effect.setFloat(o,this._floats[o]);for(o in this._floatsArrays)this._effect.setArray(o,this._floatsArrays[o]);for(o in this._colors3)this._effect.setColor3(o,this._colors3[o]);for(o in this._colors4){var a=this._colors4[o];this._effect.setFloat4(o,a.r,a.g,a.b,a.a)}for(o in this._vectors2)this._effect.setVector2(o,this._vectors2[o]);for(o in this._vectors3)this._effect.setVector3(o,this._vectors3[o]);for(o in this._matrices)this._effect.setMatrix(o,this._matrices[o])}if(this._texture){if(this.isCube)for(var s=0;s<6;s++)i.bindFramebuffer(this._texture,s,void 0,void 0,!0),i.bindBuffers(this._vertexBuffers,this._indexBuffer,this._effect),this._effect.setFloat("face",s),this.autoClear&&i.clear(n.clearColor,!0,!1,!1),i.drawElementsType(Ht.a.TriangleFillMode,0,6),s===5&&i.generateMipMapsForCubemap(this._texture);else i.bindFramebuffer(this._texture,0,void 0,void 0,!0),i.bindBuffers(this._vertexBuffers,this._indexBuffer,this._effect),this.autoClear&&i.clear(n.clearColor,!0,!1,!1),i.drawElementsType(Ht.a.TriangleFillMode,0,6);i.unBindFramebuffer(this._texture,this.isCube),this.onGenerated&&this.onGenerated(),this.onGeneratedObservable.notifyObservers(this)}}},t.prototype.clone=function(){var e=this.getSize(),n=new t(this.name,e.width,this._fragment,this.getScene(),this._fallbackTexture,this._generateMipMaps);return n.hasAlpha=this.hasAlpha,n.level=this.level,n.coordinatesMode=this.coordinatesMode,n},t.prototype.dispose=function(){var e=this.getScene();if(e){var n=e.proceduralTextures.indexOf(this);n>=0&&e.proceduralTextures.splice(n,1);var i=this._vertexBuffers[Oe.b.PositionKind];i&&(i.dispose(),this._vertexBuffers[Oe.b.PositionKind]=null),this._indexBuffer&&this._fullEngine._releaseBuffer(this._indexBuffer)&&(this._indexBuffer=null),this.onGeneratedObservable.clear(),this.onBeforeGenerationObservable.clear(),r.prototype.dispose.call(this)}},Object(c.c)([Object(L.c)()],t.prototype,"isEnabled",void 0),Object(c.c)([Object(L.c)()],t.prototype,"autoClear",void 0),Object(c.c)([Object(L.c)()],t.prototype,"_generateMipMaps",void 0),Object(c.c)([Object(L.c)()],t.prototype,"_size",void 0),Object(c.c)([Object(L.c)()],t.prototype,"refreshRate",null),t}(we.a);C.a.RegisteredTypes["BABYLON.ProceduralTexture"]=_o;var tm=function(r){function t(e,n,i,o,a,s){var d=r.call(this,e,i,null,o,a,s)||this;return d._animate=!0,d._time=0,d._texturePath=n,d._loadJson(n),d.refreshRate=1,d}return Object(c.d)(t,r),t.prototype._loadJson=function(e){var n=this,i=function(){try{n.setFragment(n._texturePath)}catch{l.a.Error("No json or ShaderStore or DOM element found for CustomProceduralTexture")}},o=e+"/config.json",a=new re.a;a.open("GET",o),a.addEventListener("load",function(){if(a.status===200||a.responseText&&a.responseText.length>0)try{n._config=JSON.parse(a.response),n.updateShaderUniforms(),n.updateTextures(),n.setFragment(n._texturePath+"/custom"),n._animate=n._config.animate,n.refreshRate=n._config.refreshrate}catch{i()}else i()},!1),a.addEventListener("error",function(){i()},!1);try{a.send()}catch{l.a.Error("CustomProceduralTexture: Error on XHR send request.")}},t.prototype.isReady=function(){if(!r.prototype.isReady.call(this))return!1;for(var e in this._textures)if(!this._textures[e].isReady())return!1;return!0},t.prototype.render=function(e){var n=this.getScene();this._animate&&n&&(this._time+=.03*n.getAnimationRatio(),this.updateShaderUniforms()),r.prototype.render.call(this,e)},t.prototype.updateTextures=function(){for(var e=0;e0},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"isConnectedInVertexShader",{get:function(){if(this.target===Ce.Vertex)return!0;if(!this.hasEndpoints)return!1;for(var t=0,e=this._endpoints;t=0)&&(e.isExposedOnFrame=!0,e.exposedPortPosition=this.exposedPortPosition),e},r.prototype.dispose=function(){this.onConnectionObservable.clear()},r}(),sm=f(152),pt=function(){function r(t,e,n,i){e===void 0&&(e=Ce.Vertex),n===void 0&&(n=!1),i===void 0&&(i=!1),this._isFinalMerger=!1,this._isInput=!1,this._name="",this._isUnique=!1,this.inputsAreExclusive=!1,this._codeVariableName="",this._inputs=new Array,this._outputs=new Array,this.comments="",this.visibleInInspector=!1,this._target=e,this._isFinalMerger=n,this._isInput=i,this._name=t,this.uniqueId=sm.a.UniqueId}return Object.defineProperty(r.prototype,"name",{get:function(){return this._name},set:function(t){this.validateBlockName(t)&&(this._name=t)},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"isUnique",{get:function(){return this._isUnique},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"isFinalMerger",{get:function(){return this._isFinalMerger},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"isInput",{get:function(){return this._isInput},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"buildId",{get:function(){return this._buildId},set:function(t){this._buildId=t},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"target",{get:function(){return this._target},set:function(t){(this._target&t)==0&&(this._target=t)},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"inputs",{get:function(){return this._inputs},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"outputs",{get:function(){return this._outputs},enumerable:!1,configurable:!0}),r.prototype.getInputByName=function(t){var e=this._inputs.filter(function(n){return n.name===t});return e.length?e[0]:null},r.prototype.getOutputByName=function(t){var e=this._outputs.filter(function(n){return n.name===t});return e.length?e[0]:null},r.prototype.initialize=function(t){},r.prototype.bind=function(t,e,n,i){},r.prototype._declareOutput=function(t,e){return e._getGLType(t.type)+" "+t.associatedVariableName},r.prototype._writeVariable=function(t){return t.connectedPoint?""+t.associatedVariableName:"0."},r.prototype._writeFloat=function(t){var e=t.toString();return e.indexOf(".")===-1&&(e+=".0"),""+e},r.prototype.getClassName=function(){return"NodeMaterialBlock"},r.prototype.registerInput=function(t,e,n,i,o){return n===void 0&&(n=!1),(o=o??new fa(t,this,Tn.Input)).type=e,o.isOptional=n,i&&(o.target=i),this._inputs.push(o),this},r.prototype.registerOutput=function(t,e,n,i){return(i=i??new fa(t,this,Tn.Output)).type=e,n&&(i.target=n),this._outputs.push(i),this},r.prototype.getFirstAvailableInput=function(t){t===void 0&&(t=null);for(var e=0,n=this._inputs;e=this._outputs.length?null:this._outputs[e+1]},r.prototype.connectTo=function(t,e){if(this._outputs.length!==0){for(var n=e&&e.output?this.getOutputByName(e.output):this.getFirstAvailableOutput(t),i=!0;i;){var o=e&&e.input?t.getInputByName(e.input):t.getFirstAvailableInput(n);if(n&&o&&n.canConnectTo(o))n.connectTo(o),i=!1;else{if(!n)throw"Unable to find a compatible match";n=this.getSiblingOutput(n)}}return this}},r.prototype._buildBlock=function(t){},r.prototype.updateUniformsAndSamples=function(t,e,n,i){},r.prototype.provideFallbacks=function(t,e){},r.prototype.initializeDefines=function(t,e,n,i){},r.prototype.prepareDefines=function(t,e,n,i,o){},r.prototype.autoConfigure=function(t){},r.prototype.replaceRepeatableContent=function(t,e,n,i){},r.prototype.isReady=function(t,e,n,i){return!0},r.prototype._linkConnectionTypes=function(t,e,n){n===void 0&&(n=!1),n?this._inputs[e]._acceptedConnectionPointType=this._inputs[t]:this._inputs[t]._linkedConnectionSource=this._inputs[e],this._inputs[e]._linkedConnectionSource=this._inputs[t]},r.prototype._processBuild=function(t,e,n,i){t.build(e,i);var o=e._vertexState!=null,a=t._buildTarget===Ce.Vertex&&t.target!==Ce.VertexAndFragment;if(o&&((t.target&t._buildTarget)==0||(t.target&n.target)==0||this.target!==Ce.VertexAndFragment&&a)&&(!t.isInput&&e.target!==t._buildTarget||t.isInput&&t.isAttribute&&!t._noContextSwitch)){var s=n.connectedPoint;e._vertexState._emitVaryingFromString("v_"+s.associatedVariableName,e._getGLType(s.type))&&(e._vertexState.compilationString+="v_"+s.associatedVariableName+" = "+s.associatedVariableName+`;\r +`),n.associatedVariableName="v_"+s.associatedVariableName,n._enforceAssociatedVariableName=!0}},r.prototype.validateBlockName=function(t){for(var e=0,n=["position","normal","tangent","particle_positionw","uv","uv2","position2d","particle_uv","matricesIndices","matricesWeights","world0","world1","world2","world3","particle_color","particle_texturemask"];e[0.."+n.repeatKey+`]\r +`;var i=ze.a.IncludesShadersStore[t]+`\r +`;if(this.sharedData.emitComments&&(i=e+`\r +`+i),!n)return i;if(n.replaceStrings)for(var o=0;o[0.."+n.repeatKey+`]\r +`:this.functions[o]="#include<"+t+`>\r +`,void(this.sharedData.emitComments&&(this.functions[o]=e+`\r +`+this.functions[o]));if(this.functions[o]=ze.a.IncludesShadersStore[t],this.sharedData.emitComments&&(this.functions[o]=e+`\r +`+this.functions[o]),n.removeIfDef&&(this.functions[o]=this.functions[o].replace(/^\s*?#ifdef.+$/gm,""),this.functions[o]=this.functions[o].replace(/^\s*?#endif.*$/gm,""),this.functions[o]=this.functions[o].replace(/^\s*?#else.*$/gm,""),this.functions[o]=this.functions[o].replace(/^\s*?#elif.*$/gm,"")),n.removeAttributes&&(this.functions[o]=this.functions[o].replace(/^\s*?attribute.+$/gm,"")),n.removeUniforms&&(this.functions[o]=this.functions[o].replace(/^\s*?uniform.+$/gm,"")),n.removeVaryings&&(this.functions[o]=this.functions[o].replace(/^\s*?varying.+$/gm,"")),n.replaceStrings)for(var a=0;a0||this._emitRateGradients&&this._emitRateGradients.length>0||this._lifeTimeGradients&&this._lifeTimeGradients.length>0},r.prototype.getDragGradients=function(){return this._dragGradients},r.prototype.getLimitVelocityGradients=function(){return this._limitVelocityGradients},r.prototype.getColorGradients=function(){return this._colorGradients},r.prototype.getSizeGradients=function(){return this._sizeGradients},r.prototype.getColorRemapGradients=function(){return this._colorRemapGradients},r.prototype.getAlphaRemapGradients=function(){return this._alphaRemapGradients},r.prototype.getLifeTimeGradients=function(){return this._lifeTimeGradients},r.prototype.getAngularSpeedGradients=function(){return this._angularSpeedGradients},r.prototype.getVelocityGradients=function(){return this._velocityGradients},r.prototype.getStartSizeGradients=function(){return this._startSizeGradients},r.prototype.getEmitRateGradients=function(){return this._emitRateGradients},Object.defineProperty(r.prototype,"direction1",{get:function(){return this.particleEmitterType.direction1?this.particleEmitterType.direction1:u.e.Zero()},set:function(t){this.particleEmitterType.direction1&&(this.particleEmitterType.direction1=t)},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"direction2",{get:function(){return this.particleEmitterType.direction2?this.particleEmitterType.direction2:u.e.Zero()},set:function(t){this.particleEmitterType.direction2&&(this.particleEmitterType.direction2=t)},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"minEmitBox",{get:function(){return this.particleEmitterType.minEmitBox?this.particleEmitterType.minEmitBox:u.e.Zero()},set:function(t){this.particleEmitterType.minEmitBox&&(this.particleEmitterType.minEmitBox=t)},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"maxEmitBox",{get:function(){return this.particleEmitterType.maxEmitBox?this.particleEmitterType.maxEmitBox:u.e.Zero()},set:function(t){this.particleEmitterType.maxEmitBox&&(this.particleEmitterType.maxEmitBox=t)},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"isBillboardBased",{get:function(){return this._isBillboardBased},set:function(t){this._isBillboardBased!==t&&(this._isBillboardBased=t,this._reset())},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"imageProcessingConfiguration",{get:function(){return this._imageProcessingConfiguration},set:function(t){this._attachImageProcessingConfiguration(t)},enumerable:!1,configurable:!0}),r.prototype._attachImageProcessingConfiguration=function(t){t!==this._imageProcessingConfiguration&&(!t&&this._scene?this._imageProcessingConfiguration=this._scene.imageProcessingConfiguration:this._imageProcessingConfiguration=t)},r.prototype._reset=function(){},r.prototype._removeGradientAndTexture=function(t,e,n){if(!e)return this;for(var i=0,o=0,a=e;o-1))return this._optimizers.push(e),this},t.prototype.unregisterOptimizer=function(e){var n=this._optimizers.indexOf(e);if(n!==-1)return this._optimizers.splice(n,1),this},t.prototype.addOutputNode=function(e){if(e.target===null)throw"This node is not meant to be an output node. You may want to explicitly set its target value.";return(e.target&Ce.Vertex)!=0&&this._addVertexOutputNode(e),(e.target&Ce.Fragment)!=0&&this._addFragmentOutputNode(e),this},t.prototype.removeOutputNode=function(e){return e.target===null||((e.target&Ce.Vertex)!=0&&this._removeVertexOutputNode(e),(e.target&Ce.Fragment)!=0&&this._removeFragmentOutputNode(e)),this},t.prototype._addVertexOutputNode=function(e){if(this._vertexOutputNodes.indexOf(e)===-1)return e.target=Ce.Vertex,this._vertexOutputNodes.push(e),this},t.prototype._removeVertexOutputNode=function(e){var n=this._vertexOutputNodes.indexOf(e);if(n!==-1)return this._vertexOutputNodes.splice(n,1),this},t.prototype._addFragmentOutputNode=function(e){if(this._fragmentOutputNodes.indexOf(e)===-1)return e.target=Ce.Fragment,this._fragmentOutputNodes.push(e),this},t.prototype._removeFragmentOutputNode=function(e){var n=this._fragmentOutputNodes.indexOf(e);if(n!==-1)return this._fragmentOutputNodes.splice(n,1),this},t.prototype.needAlphaBlending=function(){return!this.ignoreAlpha&&(this.alpha<1||this._sharedData&&this._sharedData.hints.needAlphaBlending)},t.prototype.needAlphaTesting=function(){return this._sharedData&&this._sharedData.hints.needAlphaTesting},t.prototype._initializeBlock=function(e,n,i){if(e.initialize(n),e.autoConfigure(this),e._preparationId=this._buildId,this.attachedBlocks.indexOf(e)===-1){if(e.isUnique){for(var o=e.getClassName(),a=0,s=this.attachedBlocks;a-1&&this.attachedBlocks.splice(n,1),e.isFinalMerger&&this.removeOutputNode(e)},t.prototype.build=function(e){e===void 0&&(e=!1),this._buildWasSuccessful=!1;var n=this.getScene().getEngine(),i=this._mode===Mn.Particle;if(this._vertexOutputNodes.length===0&&!i)throw"You must define at least one vertexOutputNode";if(this._fragmentOutputNodes.length===0)throw"You must define at least one fragmentOutputNode";this._vertexCompilationState=new dh,this._vertexCompilationState.supportUniformBuffers=n.supportsUniformBuffers,this._vertexCompilationState.target=Ce.Vertex,this._fragmentCompilationState=new dh,this._fragmentCompilationState.supportUniformBuffers=n.supportsUniformBuffers,this._fragmentCompilationState.target=Ce.Fragment,this._sharedData=new cm,this._vertexCompilationState.sharedData=this._sharedData,this._fragmentCompilationState.sharedData=this._sharedData,this._sharedData.buildId=this._buildId,this._sharedData.emitComments=this._options.emitComments,this._sharedData.verbose=e,this._sharedData.scene=this.getScene(),this._sharedData.allowEmptyVertexProgram=i;for(var o=[],a=[],s=0,d=this._vertexOutputNodes;s0\r +`,e.compilationString+=this._declareOutput(o,e)+" = "+a.associatedVariableName+" * "+i+`;\r +`,e.compilationString+=`#else\r +`,e.compilationString+=this._declareOutput(o,e)+" = "+a.associatedVariableName+`;\r +`,e.compilationString+=`#endif\r +`,this},t}(pt);C.a.RegisteredTypes["BABYLON.BonesBlock"]=mh;var gh=function(r){function t(e){var n=r.call(this,e,Ce.Vertex)||this;return n.registerInput("world0",le.Vector4),n.registerInput("world1",le.Vector4),n.registerInput("world2",le.Vector4),n.registerInput("world3",le.Vector4),n.registerInput("world",le.Matrix,!0),n.registerOutput("output",le.Matrix),n.registerOutput("instanceID",le.Float),n}return Object(c.d)(t,r),t.prototype.getClassName=function(){return"InstancesBlock"},Object.defineProperty(t.prototype,"world0",{get:function(){return this._inputs[0]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"world1",{get:function(){return this._inputs[1]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"world2",{get:function(){return this._inputs[2]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"world3",{get:function(){return this._inputs[3]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"world",{get:function(){return this._inputs[4]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"output",{get:function(){return this._outputs[0]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"instanceID",{get:function(){return this._outputs[1]},enumerable:!1,configurable:!0}),t.prototype.autoConfigure=function(e){if(!this.world0.connectedPoint){var n=e.getInputBlockByPredicate(function(d){return d.isAttribute&&d.name==="world0"});n||(n=new At("world0")).setAsAttribute("world0"),n.output.connectTo(this.world0)}if(!this.world1.connectedPoint){var i=e.getInputBlockByPredicate(function(d){return d.isAttribute&&d.name==="world1"});i||(i=new At("world1")).setAsAttribute("world1"),i.output.connectTo(this.world1)}if(!this.world2.connectedPoint){var o=e.getInputBlockByPredicate(function(d){return d.isAttribute&&d.name==="world2"});o||(o=new At("world2")).setAsAttribute("world2"),o.output.connectTo(this.world2)}if(!this.world3.connectedPoint){var a=e.getInputBlockByPredicate(function(d){return d.isAttribute&&d.name==="world3"});a||(a=new At("world3")).setAsAttribute("world3"),a.output.connectTo(this.world3)}if(!this.world.connectedPoint){var s=e.getInputBlockByPredicate(function(d){return d.isAttribute&&d.name==="world"});s||(s=new At("world")).setAsSystemValue(bt.World),s.output.connectTo(this.world)}this.world.define="!INSTANCES || THIN_INSTANCES"},t.prototype.prepareDefines=function(e,n,i,o,a){o===void 0&&(o=!1);var s=!1;i.INSTANCES!==o&&(i.setValue("INSTANCES",o),s=!0),a&&i.THIN_INSTANCES!==!!a?.getRenderingMesh().hasThinInstances&&(i.setValue("THIN_INSTANCES",!!a?.getRenderingMesh().hasThinInstances),s=!0),s&&i.markAsUnprocessed()},t.prototype._buildBlock=function(e){r.prototype._buildBlock.call(this,e),e.sharedData.blocksWithDefines.push(this);var n=this._outputs[0],i=this._outputs[1],o=this.world0,a=this.world1,s=this.world2,d=this.world3;return e.compilationString+=`#ifdef INSTANCES\r +`,e.compilationString+=this._declareOutput(n,e)+" = mat4("+o.associatedVariableName+", "+a.associatedVariableName+", "+s.associatedVariableName+", "+d.associatedVariableName+`);\r +`,e.compilationString+=`#ifdef THIN_INSTANCES\r +`,e.compilationString+=n.associatedVariableName+" = "+this.world.associatedVariableName+" * "+n.associatedVariableName+`;\r +`,e.compilationString+=`#endif\r +`,e.compilationString+=this._declareOutput(i,e)+` = float(gl_InstanceID);\r +`,e.compilationString+=`#else\r +`,e.compilationString+=this._declareOutput(n,e)+" = "+this.world.associatedVariableName+`;\r +`,e.compilationString+=this._declareOutput(i,e)+` = 0.0;\r +`,e.compilationString+=`#endif\r +`,this},t}(pt);C.a.RegisteredTypes["BABYLON.InstancesBlock"]=gh;var vh=function(r){function t(e){var n=r.call(this,e,Ce.Vertex)||this;return n.registerInput("position",le.Vector3),n.registerInput("normal",le.Vector3),n.registerInput("tangent",le.Vector3),n.registerInput("uv",le.Vector2),n.registerOutput("positionOutput",le.Vector3),n.registerOutput("normalOutput",le.Vector3),n.registerOutput("tangentOutput",le.Vector3),n.registerOutput("uvOutput",le.Vector2),n}return Object(c.d)(t,r),t.prototype.getClassName=function(){return"MorphTargetsBlock"},Object.defineProperty(t.prototype,"position",{get:function(){return this._inputs[0]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"normal",{get:function(){return this._inputs[1]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"tangent",{get:function(){return this._inputs[2]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"uv",{get:function(){return this._inputs[3]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"positionOutput",{get:function(){return this._outputs[0]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"normalOutput",{get:function(){return this._outputs[1]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"tangentOutput",{get:function(){return this._outputs[2]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"uvOutput",{get:function(){return this._outputs[3]},enumerable:!1,configurable:!0}),t.prototype.initialize=function(e){e._excludeVariableName("morphTargetInfluences")},t.prototype.autoConfigure=function(e){if(!this.position.isConnected){var n=e.getInputBlockByPredicate(function(s){return s.isAttribute&&s.name==="position"});n||(n=new At("position")).setAsAttribute(),n.output.connectTo(this.position)}if(!this.normal.isConnected){var i=e.getInputBlockByPredicate(function(s){return s.isAttribute&&s.name==="normal"});i||(i=new At("normal")).setAsAttribute("normal"),i.output.connectTo(this.normal)}if(!this.tangent.isConnected){var o=e.getInputBlockByPredicate(function(s){return s.isAttribute&&s.name==="tangent"});o||(o=new At("tangent")).setAsAttribute("tangent"),o.output.connectTo(this.tangent)}if(!this.uv.isConnected){var a=e.getInputBlockByPredicate(function(s){return s.isAttribute&&s.name==="uv"});a||(a=new At("uv")).setAsAttribute("uv"),a.output.connectTo(this.uv)}},t.prototype.prepareDefines=function(e,n,i){i._areAttributesDirty&&et.a.PrepareDefinesForMorphTargets(e,i)},t.prototype.bind=function(e,n,i){i&&i.morphTargetManager&&i.morphTargetManager.numInfluencers>0&&et.a.BindMorphTargetParameters(i,e)},t.prototype.replaceRepeatableContent=function(e,n,i,o){for(var a=this.position,s=this.normal,d=this.tangent,p=this.uv,b=this.positionOutput,x=this.normalOutput,O=this.tangentOutput,B=this.uvOutput,F=e,z=o.NUM_MORPH_INFLUENCERS,J=i.morphTargetManager,ie=J&&J.supportsNormals&&o.NORMAL,se=J&&J.supportsTangents&&o.TANGENT,ce=J&&J.supportsUVs&&o.UV1,ue="",fe=0;fe0)for(fe=0;fe=0;et.a.PrepareUniformsAndSamplersForLight(a,e.uniforms,e.samplers,i["PROJECTEDLIGHTTEXTURE"+a],o,s)}},t.prototype.bind=function(e,n,i){if(i){var o=i.getScene();this.light?et.a.BindLight(this.light,this._lightId,o,e,!0):et.a.BindLights(o,i,e,!0,n.maxSimultaneousLights)}},t.prototype._injectVertexCode=function(e){var n=this.worldPosition,i="//"+this.name;this.light?(this._lightId=(e.counters.lightCounter!==void 0?e.counters.lightCounter:-1)+1,e.counters.lightCounter=this._lightId,e._emitFunctionFromInclude(e.supportUniformBuffers?"lightUboDeclaration":"lightFragmentDeclaration",i,{replaceStrings:[{search:/{X}/g,replace:this._lightId.toString()}]},this._lightId.toString())):(e._emitFunctionFromInclude(e.supportUniformBuffers?"lightUboDeclaration":"lightFragmentDeclaration",i,{repeatKey:"maxSimultaneousLights"}),this._lightId=0,e.sharedData.dynamicUniformBlocks.push(this));var o="v_"+n.associatedVariableName;e._emitVaryingFromString(o,"vec4")&&(e.compilationString+=o+" = "+n.associatedVariableName+`;\r +`),this.light?e.compilationString+=e._emitCodeFromInclude("shadowsVertex",i,{replaceStrings:[{search:/{X}/g,replace:this._lightId.toString()},{search:/worldPos/g,replace:n.associatedVariableName}]}):(e.compilationString+="vec4 worldPos = "+n.associatedVariableName+`;\r +`,this.view.isConnected&&(e.compilationString+="mat4 view = "+this.view.associatedVariableName+`;\r +`),e.compilationString+=e._emitCodeFromInclude("shadowsVertex",i,{repeatKey:"maxSimultaneousLights"}))},t.prototype._buildBlock=function(e){if(r.prototype._buildBlock.call(this,e),e.target===Ce.Fragment){e.sharedData.bindableBlocks.push(this),e.sharedData.blocksWithDefines.push(this);var n="//"+this.name,i=this.worldPosition;e._emitFunctionFromInclude("helperFunctions",n),e._emitFunctionFromInclude("lightsFragmentFunctions",n,{replaceStrings:[{search:/vPositionW/g,replace:"v_"+i.associatedVariableName+".xyz"}]}),e._emitFunctionFromInclude("shadowsFragmentFunctions",n,{replaceStrings:[{search:/vPositionW/g,replace:"v_"+i.associatedVariableName+".xyz"}]}),this.light?e._emitFunctionFromInclude(e.supportUniformBuffers?"lightUboDeclaration":"lightFragmentDeclaration",n,{replaceStrings:[{search:/{X}/g,replace:this._lightId.toString()}]},this._lightId.toString()):e._emitFunctionFromInclude(e.supportUniformBuffers?"lightUboDeclaration":"lightFragmentDeclaration",n,{repeatKey:"maxSimultaneousLights"}),this._lightId===0&&(e._registerTempVariable("viewDirectionW")&&(e.compilationString+="vec3 viewDirectionW = normalize("+this.cameraPosition.associatedVariableName+" - v_"+i.associatedVariableName+`.xyz);\r +`),e.compilationString+=`lightingInfo info;\r +`,e.compilationString+=`float shadow = 1.;\r +`,e.compilationString+="float glossiness = "+(this.glossiness.isConnected?this.glossiness.associatedVariableName:"1.0")+" * "+(this.glossPower.isConnected?this.glossPower.associatedVariableName:"1024.0")+`;\r +`,e.compilationString+=`vec3 diffuseBase = vec3(0., 0., 0.);\r +`,e.compilationString+=`vec3 specularBase = vec3(0., 0., 0.);\r +`,e.compilationString+="vec3 normalW = "+this.worldNormal.associatedVariableName+`.xyz;\r +`),this.light?e.compilationString+=e._emitCodeFromInclude("lightFragment",n,{replaceStrings:[{search:/{X}/g,replace:this._lightId.toString()}]}):e.compilationString+=e._emitCodeFromInclude("lightFragment",n,{repeatKey:"maxSimultaneousLights"});var o=this.diffuseOutput,a=this.specularOutput;return e.compilationString+=this._declareOutput(o,e)+" = diffuseBase"+(this.diffuseColor.isConnected?" * "+this.diffuseColor.associatedVariableName:"")+`;\r +`,a.hasEndpoints&&(e.compilationString+=this._declareOutput(a,e)+" = specularBase"+(this.specularColor.isConnected?" * "+this.specularColor.associatedVariableName:"")+`;\r +`),this.shadow.hasEndpoints&&(e.compilationString+=this._declareOutput(this.shadow,e)+` = shadow;\r +`),this}this._injectVertexCode(e)},t.prototype.serialize=function(){var e=r.prototype.serialize.call(this);return this.light&&(e.lightId=this.light.id),e},t.prototype._deserialize=function(e,n,i){r.prototype._deserialize.call(this,e,n,i),e.lightId&&(this.light=n.getLightByID(e.lightId))},t}(pt);C.a.RegisteredTypes["BABYLON.LightBlock"]=Rh;var Oh=function(r){function t(e,n){n===void 0&&(n=!1);var i=r.call(this,e,n?Ce.Fragment:Ce.VertexAndFragment)||this;return i.convertToGammaSpace=!1,i.convertToLinearSpace=!1,i._fragmentOnly=n,i.registerInput("uv",le.Vector2,!1,Ce.VertexAndFragment),i.registerOutput("rgba",le.Color4,Ce.Neutral),i.registerOutput("rgb",le.Color3,Ce.Neutral),i.registerOutput("r",le.Float,Ce.Neutral),i.registerOutput("g",le.Float,Ce.Neutral),i.registerOutput("b",le.Float,Ce.Neutral),i.registerOutput("a",le.Float,Ce.Neutral),i._inputs[0].acceptedConnectionPointTypes.push(le.Vector3),i._inputs[0].acceptedConnectionPointTypes.push(le.Vector4),i._inputs[0]._prioritizeVertex=!n,i}return Object(c.d)(t,r),t.prototype.getClassName=function(){return"TextureBlock"},Object.defineProperty(t.prototype,"uv",{get:function(){return this._inputs[0]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"rgba",{get:function(){return this._outputs[0]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"rgb",{get:function(){return this._outputs[1]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"r",{get:function(){return this._outputs[2]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"g",{get:function(){return this._outputs[3]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"b",{get:function(){return this._outputs[4]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"a",{get:function(){return this._outputs[5]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"target",{get:function(){if(this._fragmentOnly)return Ce.Fragment;if(!this.uv.isConnected||this.uv.sourceBlock.isInput)return Ce.VertexAndFragment;for(var e=this.uv.connectedPoint;e;){if(e.target===Ce.Fragment)return Ce.Fragment;if(e.target===Ce.Vertex)return Ce.VertexAndFragment;if(e.target===Ce.Neutral||e.target===Ce.VertexAndFragment){var n=e.ownerBlock;e=null;for(var i=0,o=n.inputs;i1?i.setValue("NUM_SAMPLES",this.realTimeFilteringQuality+"u",!0):i.setValue("NUM_SAMPLES",""+this.realTimeFilteringQuality,!0),i.setValue("BRDF_V_HEIGHT_CORRELATED",!0),i.setValue("MS_BRDF_ENERGY_CONSERVATION",this.useEnergyConservation,!0),i.setValue("RADIANCEOCCLUSION",this.useRadianceOcclusion,!0),i.setValue("HORIZONOCCLUSION",this.useHorizonOcclusion,!0),i.setValue("UNLIT",this.unlit,!0),i.setValue("FORCENORMALFORWARD",this.forceNormalForward,!0),this._environmentBRDFTexture&&ut.a.ReflectionTextureEnabled?(i.setValue("ENVIRONMENTBRDF",!0),i.setValue("ENVIRONMENTBRDF_RGBD",this._environmentBRDFTexture.isRGBD,!0)):(i.setValue("ENVIRONMENTBRDF",!1),i.setValue("ENVIRONMENTBRDF_RGBD",!1)),i._areLightsDirty){var a=e.getScene();if(this.light){var s={needNormals:!1,needRebuild:!1,lightmapMode:!1,shadowEnabled:!1,specularEnabled:!1};et.a.PrepareDefinesForLight(a,e,this.light,this._lightId,i,!0,s),s.needRebuild&&i.rebuild()}else et.a.PrepareDefinesForLights(a,e,i,!0,n.maxSimultaneousLights),i._needNormals=!0,et.a.PrepareDefinesForMultiview(a,i)}},t.prototype.updateUniformsAndSamples=function(e,n,i,o){for(var a=0;a=0;et.a.PrepareUniformsAndSamplersForLight(a,e.uniforms,e.samplers,i["PROJECTEDLIGHTTEXTURE"+a],o,s)}},t.prototype.bind=function(e,n,i){var o,a;if(i){var s=i.getScene();this.light?et.a.BindLight(this.light,this._lightId,s,e,!0):et.a.BindLights(s,i,e,!0,n.maxSimultaneousLights),e.setTexture(this._environmentBrdfSamplerName,this._environmentBRDFTexture),e.setFloat2("vDebugMode",this.debugLimit,this.debugFactor);var d=this._scene.ambientColor;d&&e.setColor3("ambientFromScene",d);var p=s.useRightHandedSystem===(s._mirroredCameraPosition!=null);e.setFloat(this._invertNormalName,p?-1:1),e.setFloat4("vLightingIntensity",this.directIntensity,1,this.environmentIntensity*this._scene.environmentIntensity,this.specularIntensity);var b=(a=(o=this.indexOfRefraction.connectInputBlock)===null||o===void 0?void 0:o.value)!==null&&a!==void 0?a:1.5,x=Math.pow((b-1)/(b+1),2);this._metallicReflectanceColor.scaleToRef(x*this._metallicF0Factor,M.c.Color3[0]);var O=this._metallicF0Factor;e.setColor4(this._vMetallicReflectanceFactorsName,M.c.Color3[0],O)}},t.prototype._injectVertexCode=function(e){var n,i,o=this.worldPosition,a="//"+this.name;this.light?(this._lightId=(e.counters.lightCounter!==void 0?e.counters.lightCounter:-1)+1,e.counters.lightCounter=this._lightId,e._emitFunctionFromInclude(e.supportUniformBuffers?"lightUboDeclaration":"lightFragmentDeclaration",a,{replaceStrings:[{search:/{X}/g,replace:this._lightId.toString()}]},this._lightId.toString())):(e._emitFunctionFromInclude(e.supportUniformBuffers?"lightUboDeclaration":"lightFragmentDeclaration",a,{repeatKey:"maxSimultaneousLights"}),this._lightId=0,e.sharedData.dynamicUniformBlocks.push(this));var s="v_"+o.associatedVariableName;e._emitVaryingFromString(s,"vec4")&&(e.compilationString+=s+" = "+o.associatedVariableName+`;\r +`);var d=this.reflection.isConnected?(n=this.reflection.connectedPoint)===null||n===void 0?void 0:n.ownerBlock:null;d&&(d.viewConnectionPoint=this.view),e.compilationString+=(i=d?.handleVertexSide(e))!==null&&i!==void 0?i:"",e._emitUniformFromString("vDebugMode","vec2","defined(IGNORE) || DEBUGMODE > 0"),e._emitUniformFromString("ambientFromScene","vec3"),e._emitVaryingFromString("vClipSpacePosition","vec4","defined(IGNORE) || DEBUGMODE > 0")&&(e._injectAtEnd+=`#if DEBUGMODE > 0\r +`,e._injectAtEnd+=`vClipSpacePosition = gl_Position;\r +`,e._injectAtEnd+=`#endif\r +`),this.light?e.compilationString+=e._emitCodeFromInclude("shadowsVertex",a,{replaceStrings:[{search:/{X}/g,replace:this._lightId.toString()},{search:/worldPos/g,replace:o.associatedVariableName}]}):(e.compilationString+="vec4 worldPos = "+o.associatedVariableName+`;\r +`,this.view.isConnected&&(e.compilationString+="mat4 view = "+this.view.associatedVariableName+`;\r +`),e.compilationString+=e._emitCodeFromInclude("shadowsVertex",a,{repeatKey:"maxSimultaneousLights"}))},t.prototype._getAlbedoOpacityCode=function(){var e=`albedoOpacityOutParams albedoOpacityOut;\r +`;return e+=`albedoOpacityBlock( + vec4(`+(this.baseColor.isConnected?this.baseColor.associatedVariableName:"vec3(1.)")+`, 1.), + #ifdef ALBEDO + vec4(1.), + vec2(1., 1.), + #endif + #ifdef OPACITY + vec4(`+(this.opacity.isConnected?this.opacity.associatedVariableName:"1.")+`), + vec2(1., 1.), + #endif + albedoOpacityOut + ); + + vec3 surfaceAlbedo = albedoOpacityOut.surfaceAlbedo; + float alpha = albedoOpacityOut.alpha;\r +`},t.prototype._getAmbientOcclusionCode=function(){var e=`ambientOcclusionOutParams aoOut;\r +`;return e+=`ambientOcclusionBlock( + #ifdef AMBIENT + vec3(`+(this.ambientOcc.isConnected?this.ambientOcc.associatedVariableName:"1.")+`), + vec4(0., 1.0, 1.0, 0.), + #endif + aoOut + );\r +`},t.prototype._getReflectivityCode=function(e){var n=`reflectivityOutParams reflectivityOut;\r +`;return this._vMetallicReflectanceFactorsName=e._getFreeVariableName("vMetallicReflectanceFactors"),e._emitUniformFromString(this._vMetallicReflectanceFactorsName,"vec4"),n+=`vec3 baseColor = surfaceAlbedo; + + reflectivityBlock( + vec4(`+this.metallic.associatedVariableName+", "+this.roughness.associatedVariableName+`, 0., 0.), + #ifdef METALLICWORKFLOW + surfaceAlbedo, + `+this._vMetallicReflectanceFactorsName+`, + #endif + #ifdef REFLECTIVITY + vec3(0., 0., 1.), + vec4(1.), + #endif + #if defined(METALLICWORKFLOW) && defined(REFLECTIVITY) && defined(AOSTOREINMETALMAPRED) + aoOut.ambientOcclusionColor, + #endif + #ifdef MICROSURFACEMAP + microSurfaceTexel, <== not handled! + #endif + reflectivityOut + ); + + float microSurface = reflectivityOut.microSurface; + float roughness = reflectivityOut.roughness; + + #ifdef METALLICWORKFLOW + surfaceAlbedo = reflectivityOut.surfaceAlbedo; + #endif + #if defined(METALLICWORKFLOW) && defined(REFLECTIVITY) && defined(AOSTOREINMETALMAPRED) + aoOut.ambientOcclusionColor = reflectivityOut.ambientOcclusionColor; + #endif\r +`},t.prototype._buildBlock=function(e){var n,i,o,a,s,d,p,b,x,O,B,F,z,J,ie,se,ce,ue,fe,ve,Te,Re,Ae,Ee,Se,Le,xe,Ne,Me,Fe,Ye,tt,it,lt,Ke,ot,rt,qe,ht;r.prototype._buildBlock.call(this,e),this._scene=e.sharedData.scene,this._environmentBRDFTexture||(this._environmentBRDFTexture=ta.GetEnvironmentBRDFTexture(this._scene));var Ve=this.reflection.isConnected?(n=this.reflection.connectedPoint)===null||n===void 0?void 0:n.ownerBlock:null;if(Ve&&(Ve.worldPositionConnectionPoint=this.worldPosition,Ve.cameraPositionConnectionPoint=this.cameraPosition,Ve.worldNormalConnectionPoint=this.worldNormal),e.target!==Ce.Fragment)return this._injectVertexCode(e),this;e.sharedData.bindableBlocks.push(this),e.sharedData.blocksWithDefines.push(this);var Je="//"+this.name,yt="v_"+this.worldPosition.associatedVariableName,Wt=this.perturbedNormal;this._environmentBrdfSamplerName=e._getFreeVariableName("environmentBrdfSampler"),e._emit2DSampler(this._environmentBrdfSamplerName),e.sharedData.hints.needAlphaBlending=e.sharedData.hints.needAlphaBlending||this.useAlphaBlending,e.sharedData.hints.needAlphaTesting=e.sharedData.hints.needAlphaTesting||this.useAlphaTest,e._emitExtension("lod","#extension GL_EXT_shader_texture_lod : enable","defined(LODBASEDMICROSFURACE)"),e._emitExtension("derivatives","#extension GL_OES_standard_derivatives : enable"),this.light?e._emitFunctionFromInclude(e.supportUniformBuffers?"lightUboDeclaration":"lightFragmentDeclaration",Je,{replaceStrings:[{search:/{X}/g,replace:this._lightId.toString()}]},this._lightId.toString()):e._emitFunctionFromInclude(e.supportUniformBuffers?"lightUboDeclaration":"lightFragmentDeclaration",Je,{repeatKey:"maxSimultaneousLights"}),e._emitFunctionFromInclude("helperFunctions",Je),e._emitFunctionFromInclude("importanceSampling",Je),e._emitFunctionFromInclude("pbrHelperFunctions",Je),e._emitFunctionFromInclude("imageProcessingFunctions",Je),e._emitFunctionFromInclude("shadowsFragmentFunctions",Je,{replaceStrings:[{search:/vPositionW/g,replace:yt+".xyz"}]}),e._emitFunctionFromInclude("pbrDirectLightingSetupFunctions",Je,{replaceStrings:[{search:/vPositionW/g,replace:yt+".xyz"}]}),e._emitFunctionFromInclude("pbrDirectLightingFalloffFunctions",Je),e._emitFunctionFromInclude("pbrBRDFFunctions",Je,{replaceStrings:[{search:/REFLECTIONMAP_SKYBOX/g,replace:(i=Ve?._defineSkyboxName)!==null&&i!==void 0?i:"REFLECTIONMAP_SKYBOX"}]}),e._emitFunctionFromInclude("hdrFilteringFunctions",Je),e._emitFunctionFromInclude("pbrDirectLightingFunctions",Je,{replaceStrings:[{search:/vPositionW/g,replace:yt+".xyz"}]}),e._emitFunctionFromInclude("pbrIBLFunctions",Je),e._emitFunctionFromInclude("pbrBlockAlbedoOpacity",Je),e._emitFunctionFromInclude("pbrBlockReflectivity",Je),e._emitFunctionFromInclude("pbrBlockAmbientOcclusion",Je),e._emitFunctionFromInclude("pbrBlockAlphaFresnel",Je),e._emitFunctionFromInclude("pbrBlockAnisotropic",Je),e._emitUniformFromString("vLightingIntensity","vec4"),this._vNormalWName=e._getFreeVariableName("vNormalW"),e.compilationString+="vec4 "+this._vNormalWName+" = normalize("+this.worldNormal.associatedVariableName+`);\r +`,e._registerTempVariable("viewDirectionW")&&(e.compilationString+="vec3 viewDirectionW = normalize("+this.cameraPosition.associatedVariableName+" - "+yt+`.xyz);\r +`),e.compilationString+="vec3 geometricNormalW = "+this._vNormalWName+`.xyz;\r +`,e.compilationString+="vec3 normalW = "+(Wt.isConnected?"normalize("+Wt.associatedVariableName+".xyz)":"geometricNormalW")+`;\r +`,this._invertNormalName=e._getFreeVariableName("invertNormal"),e._emitUniformFromString(this._invertNormalName,"float"),e.compilationString+=e._emitCodeFromInclude("pbrBlockNormalFinal",Je,{replaceStrings:[{search:/vPositionW/g,replace:yt+".xyz"},{search:/vEyePosition.w/g,replace:this._invertNormalName}]}),e.compilationString+=this._getAlbedoOpacityCode(),e.compilationString+=e._emitCodeFromInclude("depthPrePass",Je),e.compilationString+=this._getAmbientOcclusionCode(),e.compilationString+=e._emitCodeFromInclude("pbrBlockLightmapInit",Je),e.compilationString+=`#ifdef UNLIT + vec3 diffuseBase = vec3(1., 1., 1.); + #else\r +`,e.compilationString+=this._getReflectivityCode(e),e.compilationString+=e._emitCodeFromInclude("pbrBlockGeometryInfo",Je,{replaceStrings:[{search:/REFLECTIONMAP_SKYBOX/g,replace:(o=Ve?._defineSkyboxName)!==null&&o!==void 0?o:"REFLECTIONMAP_SKYBOX"},{search:/REFLECTIONMAP_3D/g,replace:(a=Ve?._define3DName)!==null&&a!==void 0?a:"REFLECTIONMAP_3D"}]});var Nt=this.anisotropy.isConnected?(s=this.anisotropy.connectedPoint)===null||s===void 0?void 0:s.ownerBlock:null;Nt&&(Nt.worldPositionConnectionPoint=this.worldPosition,Nt.worldNormalConnectionPoint=this.worldNormal,e.compilationString+=Nt.getCode(e,!this.perturbedNormal.isConnected)),Ve&&Ve.hasTexture&&(e.compilationString+=Ve.getCode(e,Nt?"anisotropicOut.anisotropicNormal":"normalW")),e._emitFunctionFromInclude("pbrBlockReflection",Je,{replaceStrings:[{search:/computeReflectionCoords/g,replace:"computeReflectionCoordsPBR"},{search:/REFLECTIONMAP_3D/g,replace:(d=Ve?._define3DName)!==null&&d!==void 0?d:"REFLECTIONMAP_3D"},{search:/REFLECTIONMAP_OPPOSITEZ/g,replace:(p=Ve?._defineOppositeZ)!==null&&p!==void 0?p:"REFLECTIONMAP_OPPOSITEZ"},{search:/REFLECTIONMAP_PROJECTION/g,replace:(b=Ve?._defineProjectionName)!==null&&b!==void 0?b:"REFLECTIONMAP_PROJECTION"},{search:/REFLECTIONMAP_SKYBOX/g,replace:(x=Ve?._defineSkyboxName)!==null&&x!==void 0?x:"REFLECTIONMAP_SKYBOX"},{search:/LODINREFLECTIONALPHA/g,replace:(O=Ve?._defineLODReflectionAlpha)!==null&&O!==void 0?O:"LODINREFLECTIONALPHA"},{search:/LINEARSPECULARREFLECTION/g,replace:(B=Ve?._defineLinearSpecularReflection)!==null&&B!==void 0?B:"LINEARSPECULARREFLECTION"},{search:/vReflectionFilteringInfo/g,replace:(F=Ve?._vReflectionFilteringInfoName)!==null&&F!==void 0?F:"vReflectionFilteringInfo"}]}),e.compilationString+=e._emitCodeFromInclude("pbrBlockReflectance0",Je,{replaceStrings:[{search:/metallicReflectanceFactors/g,replace:this._vMetallicReflectanceFactorsName}]});var Qt=this.sheen.isConnected?(z=this.sheen.connectedPoint)===null||z===void 0?void 0:z.ownerBlock:null;Qt&&(e.compilationString+=Qt.getCode(Ve)),e._emitFunctionFromInclude("pbrBlockSheen",Je,{replaceStrings:[{search:/REFLECTIONMAP_3D/g,replace:(J=Ve?._define3DName)!==null&&J!==void 0?J:"REFLECTIONMAP_3D"},{search:/REFLECTIONMAP_SKYBOX/g,replace:(ie=Ve?._defineSkyboxName)!==null&&ie!==void 0?ie:"REFLECTIONMAP_SKYBOX"},{search:/LODINREFLECTIONALPHA/g,replace:(se=Ve?._defineLODReflectionAlpha)!==null&&se!==void 0?se:"LODINREFLECTIONALPHA"},{search:/LINEARSPECULARREFLECTION/g,replace:(ce=Ve?._defineLinearSpecularReflection)!==null&&ce!==void 0?ce:"LINEARSPECULARREFLECTION"}]});var vt=this.clearcoat.isConnected?(ue=this.clearcoat.connectedPoint)===null||ue===void 0?void 0:ue.ownerBlock:null,Jt=!this.perturbedNormal.isConnected&&!this.anisotropy.isConnected,Xt=this.perturbedNormal.isConnected&&((fe=this.perturbedNormal.connectedPoint)===null||fe===void 0?void 0:fe.ownerBlock).worldTangent.isConnected,zt=this.anisotropy.isConnected&&((ve=this.anisotropy.connectedPoint)===null||ve===void 0?void 0:ve.ownerBlock).worldTangent.isConnected,Yt=Xt||!this.perturbedNormal.isConnected&&zt;e.compilationString+=ya.GetCode(e,vt,Ve,yt,Jt,Yt,this.worldNormal.associatedVariableName),Jt&&(Yt=(Te=vt?.worldTangent.isConnected)!==null&&Te!==void 0&&Te),e._emitFunctionFromInclude("pbrBlockClearcoat",Je,{replaceStrings:[{search:/computeReflectionCoords/g,replace:"computeReflectionCoordsPBR"},{search:/REFLECTIONMAP_3D/g,replace:(Re=Ve?._define3DName)!==null&&Re!==void 0?Re:"REFLECTIONMAP_3D"},{search:/REFLECTIONMAP_OPPOSITEZ/g,replace:(Ae=Ve?._defineOppositeZ)!==null&&Ae!==void 0?Ae:"REFLECTIONMAP_OPPOSITEZ"},{search:/REFLECTIONMAP_PROJECTION/g,replace:(Ee=Ve?._defineProjectionName)!==null&&Ee!==void 0?Ee:"REFLECTIONMAP_PROJECTION"},{search:/REFLECTIONMAP_SKYBOX/g,replace:(Se=Ve?._defineSkyboxName)!==null&&Se!==void 0?Se:"REFLECTIONMAP_SKYBOX"},{search:/LODINREFLECTIONALPHA/g,replace:(Le=Ve?._defineLODReflectionAlpha)!==null&&Le!==void 0?Le:"LODINREFLECTIONALPHA"},{search:/LINEARSPECULARREFLECTION/g,replace:(xe=Ve?._defineLinearSpecularReflection)!==null&&xe!==void 0?xe:"LINEARSPECULARREFLECTION"},{search:/defined\(TANGENT\)/g,replace:Yt?"defined(TANGENT)":"defined(IGNORE)"}]}),e.compilationString+=e._emitCodeFromInclude("pbrBlockReflectance",Je,{replaceStrings:[{search:/REFLECTIONMAP_SKYBOX/g,replace:(Ne=Ve?._defineSkyboxName)!==null&&Ne!==void 0?Ne:"REFLECTIONMAP_SKYBOX"},{search:/REFLECTIONMAP_3D/g,replace:(Me=Ve?._define3DName)!==null&&Me!==void 0?Me:"REFLECTIONMAP_3D"}]});var Et=this.subsurface.isConnected?(Fe=this.subsurface.connectedPoint)===null||Fe===void 0?void 0:Fe.ownerBlock:null,Mt=this.subsurface.isConnected?(tt=((Ye=this.subsurface.connectedPoint)===null||Ye===void 0?void 0:Ye.ownerBlock).refraction.connectedPoint)===null||tt===void 0?void 0:tt.ownerBlock:null;Mt&&(Mt.viewConnectionPoint=this.view,Mt.indexOfRefractionConnectionPoint=this.indexOfRefraction),e.compilationString+=Ta.GetCode(e,Et,Ve,yt),e._emitFunctionFromInclude("pbrBlockSubSurface",Je,{replaceStrings:[{search:/REFLECTIONMAP_3D/g,replace:(it=Ve?._define3DName)!==null&&it!==void 0?it:"REFLECTIONMAP_3D"},{search:/REFLECTIONMAP_OPPOSITEZ/g,replace:(lt=Ve?._defineOppositeZ)!==null&<!==void 0?lt:"REFLECTIONMAP_OPPOSITEZ"},{search:/REFLECTIONMAP_PROJECTION/g,replace:(Ke=Ve?._defineProjectionName)!==null&&Ke!==void 0?Ke:"REFLECTIONMAP_PROJECTION"},{search:/SS_REFRACTIONMAP_3D/g,replace:(ot=Mt?._define3DName)!==null&&ot!==void 0?ot:"SS_REFRACTIONMAP_3D"},{search:/SS_LODINREFRACTIONALPHA/g,replace:(rt=Mt?._defineLODRefractionAlpha)!==null&&rt!==void 0?rt:"SS_LODINREFRACTIONALPHA"},{search:/SS_LINEARSPECULARREFRACTION/g,replace:(qe=Mt?._defineLinearSpecularRefraction)!==null&&qe!==void 0?qe:"SS_LINEARSPECULARREFRACTION"},{search:/SS_REFRACTIONMAP_OPPOSITEZ/g,replace:(ht=Mt?._defineOppositeZ)!==null&&ht!==void 0?ht:"SS_REFRACTIONMAP_OPPOSITEZ"}]}),e.compilationString+=e._emitCodeFromInclude("pbrBlockDirectLighting",Je),this.light?e.compilationString+=e._emitCodeFromInclude("lightFragment",Je,{replaceStrings:[{search:/{X}/g,replace:this._lightId.toString()}]}):e.compilationString+=e._emitCodeFromInclude("lightFragment",Je,{repeatKey:"maxSimultaneousLights"}),e.compilationString+=e._emitCodeFromInclude("pbrBlockFinalLitComponents",Je),e.compilationString+=`#endif\r +`;var $t=this.ambientColor.isConnected?this.ambientColor.associatedVariableName:"vec3(0., 0., 0.)",Dn=pn.DEFAULT_AO_ON_ANALYTICAL_LIGHTS.toString();Dn.indexOf(".")===-1&&(Dn+="."),e.compilationString+=e._emitCodeFromInclude("pbrBlockFinalUnlitComponents",Je,{replaceStrings:[{search:/vec3 finalEmissive[\s\S]*?finalEmissive\*=vLightingIntensity\.y;/g,replace:""},{search:/vAmbientColor/g,replace:$t+" * ambientFromScene"},{search:/vAmbientInfos\.w/g,replace:Dn}]}),e.compilationString+=e._emitCodeFromInclude("pbrBlockFinalColorComposition",Je,{replaceStrings:[{search:/finalEmissive/g,replace:"vec3(0.)"}]}),e.compilationString+=e._emitCodeFromInclude("pbrBlockImageProcessing",Je,{replaceStrings:[{search:/visibility/g,replace:"1."}]}),e.compilationString+=e._emitCodeFromInclude("pbrDebug",Je,{replaceStrings:[{search:/vNormalW/g,replace:this._vNormalWName},{search:/vPositionW/g,replace:yt},{search:/albedoTexture\.rgb;/g,replace:`vec3(1.);\r +gl_FragColor.rgb = toGammaSpace(gl_FragColor.rgb);\r +`}]});for(var Gn=0,$n=this._outputs;Gn<$n.length;Gn++){var Ln=$n[Gn];if(Ln.hasEndpoints){var qt=um[Ln.name];if(qt){var ui=qt[0],xi=qt[1];xi&&(e.compilationString+="#if "+xi+`\r +`),e.compilationString+=this._declareOutput(Ln,e)+" = "+ui+`;\r +`,xi&&(e.compilationString+=`#else\r +`,e.compilationString+=this._declareOutput(Ln,e)+` = vec3(0.);\r +`,e.compilationString+=`#endif\r +`)}else console.error("There's no remapping for the "+Ln.name+" end point! No code generated")}}return this},t.prototype._dumpPropertiesCode=function(){var e="";return e+=this._codeVariableName+".lightFalloff = "+this.lightFalloff+`;\r +`,e+=this._codeVariableName+".useAlphaTest = "+this.useAlphaTest+`;\r +`,e+=this._codeVariableName+".alphaTestCutoff = "+this.alphaTestCutoff+`;\r +`,e+=this._codeVariableName+".useAlphaBlending = "+this.useAlphaBlending+`;\r +`,e+=this._codeVariableName+".useRadianceOverAlpha = "+this.useRadianceOverAlpha+`;\r +`,e+=this._codeVariableName+".useSpecularOverAlpha = "+this.useSpecularOverAlpha+`;\r +`,e+=this._codeVariableName+".enableSpecularAntiAliasing = "+this.enableSpecularAntiAliasing+`;\r +`,e+=this._codeVariableName+".realTimeFiltering = "+this.realTimeFiltering+`;\r +`,e+=this._codeVariableName+".realTimeFilteringQuality = "+this.realTimeFilteringQuality+`;\r +`,e+=this._codeVariableName+".useEnergyConservation = "+this.useEnergyConservation+`;\r +`,e+=this._codeVariableName+".useRadianceOcclusion = "+this.useRadianceOcclusion+`;\r +`,e+=this._codeVariableName+".useHorizonOcclusion = "+this.useHorizonOcclusion+`;\r +`,e+=this._codeVariableName+".unlit = "+this.unlit+`;\r +`,e+=this._codeVariableName+".forceNormalForward = "+this.forceNormalForward+`;\r +`,e+=this._codeVariableName+".debugMode = "+this.debugMode+`;\r +`,e+=this._codeVariableName+".debugLimit = "+this.debugLimit+`;\r +`,e+=this._codeVariableName+".debugFactor = "+this.debugFactor+`;\r +`},t.prototype.serialize=function(){var e=r.prototype.serialize.call(this);return this.light&&(e.lightId=this.light.id),e.lightFalloff=this.lightFalloff,e.useAlphaTest=this.useAlphaTest,e.alphaTestCutoff=this.alphaTestCutoff,e.useAlphaBlending=this.useAlphaBlending,e.useRadianceOverAlpha=this.useRadianceOverAlpha,e.useSpecularOverAlpha=this.useSpecularOverAlpha,e.enableSpecularAntiAliasing=this.enableSpecularAntiAliasing,e.realTimeFiltering=this.realTimeFiltering,e.realTimeFilteringQuality=this.realTimeFilteringQuality,e.useEnergyConservation=this.useEnergyConservation,e.useRadianceOcclusion=this.useRadianceOcclusion,e.useHorizonOcclusion=this.useHorizonOcclusion,e.unlit=this.unlit,e.forceNormalForward=this.forceNormalForward,e.debugMode=this.debugMode,e.debugLimit=this.debugLimit,e.debugFactor=this.debugFactor,e},t.prototype._deserialize=function(e,n,i){var o,a;r.prototype._deserialize.call(this,e,n,i),e.lightId&&(this.light=n.getLightByID(e.lightId)),this.lightFalloff=(o=e.lightFalloff)!==null&&o!==void 0?o:0,this.useAlphaTest=e.useAlphaTest,this.alphaTestCutoff=e.alphaTestCutoff,this.useAlphaBlending=e.useAlphaBlending,this.useRadianceOverAlpha=e.useRadianceOverAlpha,this.useSpecularOverAlpha=e.useSpecularOverAlpha,this.enableSpecularAntiAliasing=e.enableSpecularAntiAliasing,this.realTimeFiltering=!!e.realTimeFiltering,this.realTimeFilteringQuality=(a=e.realTimeFilteringQuality)!==null&&a!==void 0?a:h.a.TEXTURE_FILTERING_QUALITY_LOW,this.useEnergyConservation=e.useEnergyConservation,this.useRadianceOcclusion=e.useRadianceOcclusion,this.useHorizonOcclusion=e.useHorizonOcclusion,this.unlit=e.unlit,this.forceNormalForward=!!e.forceNormalForward,this.debugMode=e.debugMode,this.debugLimit=e.debugLimit,this.debugFactor=e.debugFactor},Object(c.c)([Vt("Direct lights",Lt.Float,"INTENSITY",{min:0,max:1,notifiers:{update:!0}})],t.prototype,"directIntensity",void 0),Object(c.c)([Vt("Environment lights",Lt.Float,"INTENSITY",{min:0,max:1,notifiers:{update:!0}})],t.prototype,"environmentIntensity",void 0),Object(c.c)([Vt("Specular highlights",Lt.Float,"INTENSITY",{min:0,max:1,notifiers:{update:!0}})],t.prototype,"specularIntensity",void 0),Object(c.c)([Vt("Light falloff",Lt.List,"LIGHTING & COLORS",{notifiers:{update:!0},options:[{label:"Physical",value:pn.LIGHTFALLOFF_PHYSICAL},{label:"GLTF",value:pn.LIGHTFALLOFF_GLTF},{label:"Standard",value:pn.LIGHTFALLOFF_STANDARD}]})],t.prototype,"lightFalloff",void 0),Object(c.c)([Vt("Alpha Testing",Lt.Boolean,"OPACITY")],t.prototype,"useAlphaTest",void 0),Object(c.c)([Vt("Alpha CutOff",Lt.Float,"OPACITY",{min:0,max:1,notifiers:{update:!0}})],t.prototype,"alphaTestCutoff",void 0),Object(c.c)([Vt("Alpha blending",Lt.Boolean,"OPACITY")],t.prototype,"useAlphaBlending",void 0),Object(c.c)([Vt("Radiance over alpha",Lt.Boolean,"RENDERING",{notifiers:{update:!0}})],t.prototype,"useRadianceOverAlpha",void 0),Object(c.c)([Vt("Specular over alpha",Lt.Boolean,"RENDERING",{notifiers:{update:!0}})],t.prototype,"useSpecularOverAlpha",void 0),Object(c.c)([Vt("Specular anti-aliasing",Lt.Boolean,"RENDERING",{notifiers:{update:!0}})],t.prototype,"enableSpecularAntiAliasing",void 0),Object(c.c)([Vt("Realtime filtering",Lt.Boolean,"RENDERING",{notifiers:{update:!0}})],t.prototype,"realTimeFiltering",void 0),Object(c.c)([Vt("Realtime filtering quality",Lt.List,"RENDERING",{notifiers:{update:!0},options:[{label:"Low",value:h.a.TEXTURE_FILTERING_QUALITY_LOW},{label:"Medium",value:h.a.TEXTURE_FILTERING_QUALITY_MEDIUM},{label:"High",value:h.a.TEXTURE_FILTERING_QUALITY_HIGH}]})],t.prototype,"realTimeFilteringQuality",void 0),Object(c.c)([Vt("Energy Conservation",Lt.Boolean,"ADVANCED",{notifiers:{update:!0}})],t.prototype,"useEnergyConservation",void 0),Object(c.c)([Vt("Radiance occlusion",Lt.Boolean,"ADVANCED",{notifiers:{update:!0}})],t.prototype,"useRadianceOcclusion",void 0),Object(c.c)([Vt("Horizon occlusion",Lt.Boolean,"ADVANCED",{notifiers:{update:!0}})],t.prototype,"useHorizonOcclusion",void 0),Object(c.c)([Vt("Unlit",Lt.Boolean,"ADVANCED",{notifiers:{update:!0}})],t.prototype,"unlit",void 0),Object(c.c)([Vt("Force normal forward",Lt.Boolean,"ADVANCED",{notifiers:{update:!0}})],t.prototype,"forceNormalForward",void 0),Object(c.c)([Vt("Debug mode",Lt.List,"DEBUG",{notifiers:{update:!0},options:[{label:"None",value:0},{label:"Normalized position",value:1},{label:"Normals",value:2},{label:"Tangents",value:3},{label:"Bitangents",value:4},{label:"Bump Normals",value:5},{label:"ClearCoat Normals",value:8},{label:"ClearCoat Tangents",value:9},{label:"ClearCoat Bitangents",value:10},{label:"Anisotropic Normals",value:11},{label:"Anisotropic Tangents",value:12},{label:"Anisotropic Bitangents",value:13},{label:"Env Refraction",value:40},{label:"Env Reflection",value:41},{label:"Env Clear Coat",value:42},{label:"Direct Diffuse",value:50},{label:"Direct Specular",value:51},{label:"Direct Clear Coat",value:52},{label:"Direct Sheen",value:53},{label:"Env Irradiance",value:54},{label:"Surface Albedo",value:60},{label:"Reflectance 0",value:61},{label:"Metallic",value:62},{label:"Metallic F0",value:71},{label:"Roughness",value:63},{label:"AlphaG",value:64},{label:"NdotV",value:65},{label:"ClearCoat Color",value:66},{label:"ClearCoat Roughness",value:67},{label:"ClearCoat NdotV",value:68},{label:"Transmittance",value:69},{label:"Refraction Transmittance",value:70},{label:"SEO",value:80},{label:"EHO",value:81},{label:"Energy Factor",value:82},{label:"Specular Reflectance",value:83},{label:"Clear Coat Reflectance",value:84},{label:"Sheen Reflectance",value:85},{label:"Luminance Over Alpha",value:86},{label:"Alpha",value:87}]})],t.prototype,"debugMode",void 0),Object(c.c)([Vt("Split position",Lt.Float,"DEBUG",{min:-1,max:1,notifiers:{update:!0}})],t.prototype,"debugLimit",void 0),Object(c.c)([Vt("Output factor",Lt.Float,"DEBUG",{min:0,max:5,notifiers:{update:!0}})],t.prototype,"debugFactor",void 0),t}(pt);C.a.RegisteredTypes["BABYLON.PBRMetallicRoughnessBlock"]=dd;var fd=function(r){function t(e){var n=r.call(this,e,Ce.Neutral)||this;return n.registerInput("left",le.AutoDetect),n.registerInput("right",le.AutoDetect),n.registerOutput("output",le.BasedOnInput),n._outputs[0]._typeConnectionSource=n._inputs[0],n._linkConnectionTypes(0,1),n}return Object(c.d)(t,r),t.prototype.getClassName=function(){return"ModBlock"},Object.defineProperty(t.prototype,"left",{get:function(){return this._inputs[0]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"right",{get:function(){return this._inputs[1]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"output",{get:function(){return this._outputs[0]},enumerable:!1,configurable:!0}),t.prototype._buildBlock=function(e){r.prototype._buildBlock.call(this,e);var n=this._outputs[0];return e.compilationString+=this._declareOutput(n,e)+" = mod("+this.left.associatedVariableName+", "+this.right.associatedVariableName+`);\r +`,this},t}(pt);C.a.RegisteredTypes["BABYLON.ModBlock"]=fd;var hm=function(){function r(){}return r.prototype.optimize=function(t,e){},r}(),dm=f(120),fm=function(){function r(){this.mm=new Map}return r.prototype.get=function(t,e){var n=this.mm.get(t);if(n!==void 0)return n.get(e)},r.prototype.set=function(t,e,n){var i=this.mm.get(t);i===void 0&&this.mm.set(t,i=new Map),i.set(e,n)},r}(),pm=function(){function r(t,e,n){var i=this;this._baseMaterial=t,this._scene=e,this._options=n,this._subMeshToEffect=new Map,this._subMeshToDepthEffect=new fm,this._meshes=new Map;var o=t.getClassName()==="NodeMaterial"?"u_":"";if(o){this._matriceNames={world:o+"World",view:o+"View",projection:o+"Projection",viewProjection:o+"ViewProjection",worldView:o+"WorldxView",worldViewProjection:o+"WorldxViewxProjection"};for(var a=t.getInputBlocks(),s=0;s("+this._options.remappedVariables.join(",")+")":ze.a.IncludesShadersStore.shadowMapVertexNormalBias,x=this._options&&this._options.remappedVariables?"#include("+this._options.remappedVariables.join(",")+")":ze.a.IncludesShadersStore.shadowMapVertexMetric,O=this._options&&this._options.remappedVariables?"#include("+this._options.remappedVariables.join(",")+")":ze.a.IncludesShadersStore.shadowMapFragmentSoftTransparentShadow,B=ze.a.IncludesShadersStore.shadowMapFragment;d=(d=(d=(d=d.replace(/void\s+?main/g,ze.a.IncludesShadersStore.shadowMapVertexDeclaration+`\r +void main`)).replace(/#define SHADOWDEPTH_NORMALBIAS|#define CUSTOM_VERTEX_UPDATE_WORLDPOS/g,b)).indexOf("#define SHADOWDEPTH_METRIC")!==-1?d.replace(/#define SHADOWDEPTH_METRIC/g,x):d.replace(/}\s*$/g,x+`\r +}`)).replace(/#define SHADER_NAME.*?\n|out vec4 glFragColor;\n/g,"");var F=p.indexOf("#define SHADOWDEPTH_SOFTTRANSPARENTSHADOW")>=0||p.indexOf("#define CUSTOM_FRAGMENT_BEFORE_FOG")>=0,z=p.indexOf("#define SHADOWDEPTH_FRAGMENT")!==-1,J="";F?p=p.replace(/#define SHADOWDEPTH_SOFTTRANSPARENTSHADOW|#define CUSTOM_FRAGMENT_BEFORE_FOG/g,O):J=O+`\r +`,p=p.replace(/void\s+?main/g,ze.a.IncludesShadersStore.shadowMapFragmentDeclaration+`\r +void main`),z?p=p.replace(/#define SHADOWDEPTH_FRAGMENT/g,B):J+=B+`\r +`,J&&(p=p.replace(/}\s*$/g,J+"}")),p=p.replace(/#define SHADER_NAME.*?\n|out vec4 glFragColor;\n/g,"");var ie=o.getUniformNames().slice();return ie.push("biasAndScaleSM","depthValuesSM","lightDataSM","softTransparentShadowSM"),a.depthEffect=this._scene.getEngine().createEffect({vertexSource:d,fragmentSource:p,vertexToken:a.token,fragmentToken:a.token},{attributes:o.getAttributesNames(),uniformsNames:ie,uniformBuffersNames:o.getUniformBuffersNames(),samplers:o.getSamplers(),defines:s+` +`+o.defines.replace("#define SHADOWS","").replace(/#define SHADOW\d/g,""),indexParameters:o.getIndexParameters()},this._scene.getEngine()),a.depthEffect},r}(),pd=f(101);function bc(r,t,e,n,i){var o=new r.DecoderBuffer;o.Init(t,t.byteLength);var a,s,d=new r.Decoder;try{var p=d.GetEncodedGeometryType(o);switch(p){case r.TRIANGULAR_MESH:a=new r.Mesh,s=d.DecodeBufferToMesh(o,a);break;case r.POINT_CLOUD:a=new r.PointCloud,s=d.DecodeBufferToPointCloud(o,a);break;default:throw new Error("Invalid geometry type "+p)}if(!s.ok()||!a.ptr)throw new Error(s.error_msg());if(p===r.TRIANGULAR_MESH){var b=3*a.num_faces(),x=4*b,O=r._malloc(x);try{d.GetTrianglesUInt32Array(a,x,O);var B=new Uint32Array(b);B.set(new Uint32Array(r.HEAPF32.buffer,O,b)),n(B)}finally{r._free(O)}}var F=function(se,ce){var ue=ce.num_components(),fe=a.num_points(),ve=fe*ue,Te=ve*Float32Array.BYTES_PER_ELEMENT,Re=r._malloc(Te);try{d.GetAttributeDataArrayForAllPoints(a,ce,r.DT_FLOAT32,Te,Re);var Ae=new Float32Array(r.HEAPF32.buffer,Re,ve);if(se==="color"&&ue===3){for(var Ee=new Float32Array(4*fe),Se=0,Le=0;Ser.EPSILON?1:0;d|=b,p.push(b)}switch(d){case 0:(u.e.Dot(this.normal,t.plane.normal)>0?e:n).push(t);break;case 1:i.push(t);break;case 2:o.push(t);break;case 3:var x,O=[],B=[];for(a=0;a=3&&(x=new yc(O,t.shared)).plane&&i.push(x),B.length>=3&&(x=new yc(B,t.shared)).plane&&o.push(x)}},r.EPSILON=1e-5,r}(),yc=function(){function r(t,e){this.vertices=t,this.shared=e,this.plane=vm.FromPoints(t[0].pos,t[1].pos,t[2].pos)}return r.prototype.clone=function(){return new r(this.vertices.map(function(t){return t.clone()}),this.shared)},r.prototype.flip=function(){this.vertices.reverse().map(function(t){t.flip()}),this.plane.flip()},r}(),Jn=function(){function r(t){this.plane=null,this.front=null,this.back=null,this.polygons=new Array,t&&this.build(t)}return r.prototype.clone=function(){var t=new r;return t.plane=this.plane&&this.plane.clone(),t.front=this.front&&this.front.clone(),t.back=this.back&&this.back.clone(),t.polygons=this.polygons.map(function(e){return e.clone()}),t},r.prototype.invert=function(){for(var t=0;t1)?1:r.arc||1,d=r.sideOrientation===0?0:r.sideOrientation||dt.a.DEFAULTSIDE;t.push(0,0,0),i.push(.5,.5);for(var p=2*Math.PI*s,b=s===1?p/a:p/(a-1),x=0,O=0;Oe.x&&(e.x=n.x),n.ye.y&&(e.y=n.y)}),{min:t,max:e,width:e.x-t.x,height:e.y-t.y}},r}(),Sm=function(){function r(){}return r.Rectangle=function(t,e,n,i){return[new u.d(t,e),new u.d(n,e),new u.d(n,i),new u.d(t,i)]},r.Circle=function(t,e,n,i){e===void 0&&(e=0),n===void 0&&(n=0),i===void 0&&(i=32);for(var o=new Array,a=0,s=2*Math.PI/i,d=0;d0){var x=o.length/3;this._points.elements.forEach(function(J){i.push(0,-1,0),o.push(J.x,-t,J.y),a.push(1-(J.x-s.min.x)/s.width,1-(J.y-s.min.y)/s.height)});var O=d.length;for(b=0;ba.elements.length-1?a.elements[0]:a.elements[x+1],t.push(B.x,0,B.y),t.push(B.x,-s,B.y),t.push(O.x,0,O.y),t.push(O.x,-s,O.y);var F=new u.e(B.x,0,B.y),z=new u.e(O.x,0,O.y).subtract(F),J=new u.e(0,1,0),ie=u.e.Cross(z,J);ie=ie.normalize(),n.push(b/o.width,0),n.push(b/o.width,1),b+=z.length(),n.push(b/o.width,0),n.push(b/o.width,1),d?(e.push(ie.x,ie.y,ie.z),e.push(ie.x,ie.y,ie.z),e.push(ie.x,ie.y,ie.z),e.push(ie.x,ie.y,ie.z),i.push(p),i.push(p+2),i.push(p+1),i.push(p+1),i.push(p+2),i.push(p+3)):(e.push(-ie.x,-ie.y,-ie.z),e.push(-ie.x,-ie.y,-ie.z),e.push(-ie.x,-ie.y,-ie.z),e.push(-ie.x,-ie.y,-ie.z),i.push(p),i.push(p+1),i.push(p+2),i.push(p+1),i.push(p+3),i.push(p+2)),p+=4}},r}();dt.a.CreatePolygon=function(r,t,e,n,i,o,a){for(var s=e||new Array(3),d=n,p=[],b=a||!1,x=0;x<3;x++)s[x]===void 0&&(s[x]=new u.f(0,0,1,1)),d&&d[x]===void 0&&(d[x]=new M.b(1,1,1,1));var O=r.getVerticesData(Oe.b.PositionKind),B=r.getVerticesData(Oe.b.NormalKind),F=r.getVerticesData(Oe.b.UVKind),z=r.getIndices(),J=O.length/9,ie=0,se=0,ce=0,ue=0,fe=[0];if(b)for(var ve=J;ve1?1:e.arc:1,a=e.closed===void 0||e.closed,s=e.shape,d=e.radius||1,p=e.tessellation||64,b=e.clip||0,x=e.updatable,O=De.a._GetDefaultSideOrientation(e.sideOrientation),B=e.cap||De.a.NO_CAP,F=2*Math.PI,z=new Array,J=e.invertUV||!1,ie=0,se=0,ce=F/p*o,ue=new Array;for(ie=0;ie<=p-b;ie++){for(ue=[],B!=De.a.CAP_START&&B!=De.a.CAP_ALL||(ue.push(new u.e(0,s[0].y,0)),ue.push(new u.e(Math.cos(ie*ce)*s[0].x*d,s[0].y,Math.sin(ie*ce)*s[0].x*d))),se=0;se0||x>0){switch(J=-O,ie=-B,se=O,ce=B,i){case De.a.CENTER:J-=d/=2,se+=d;break;case De.a.LEFT:se+=d,F=-d/2;break;case De.a.RIGHT:J-=d,F=d/2}switch(o){case De.a.CENTER:ie-=x/=2,ce+=x;break;case De.a.BOTTOM:ce+=x,z=-x/2;break;case De.a.TOP:ie-=x,z=x/2}}var ue=[],fe=[],ve=[];ve[0]=[0,0,1,0,1,1,0,1],ve[1]=[0,0,1,0,1,1,0,1],t!==De.a.ROTATE_TILE&&t!==De.a.ROTATE_ROW||(ve[1]=[1,1,0,1,0,0,1,0]),t!==De.a.FLIP_TILE&&t!==De.a.FLIP_ROW||(ve[1]=[1,0,0,0,0,1,1,1]),t!==De.a.FLIP_N_ROTATE_TILE&&t!==De.a.FLIP_N_ROTATE_ROW||(ve[1]=[0,1,1,1,1,0,0,0]);for(var Te=[],Re=[],Ae=[],Ee=0,Se=0;Se0||x>0){var xe,Ne,Me,Fe,Ye=x>0&&(o===De.a.CENTER||o===De.a.TOP),tt=x>0&&(o===De.a.CENTER||o===De.a.BOTTOM),it=d>0&&(i===De.a.CENTER||i===De.a.RIGHT),lt=d>0&&(i===De.a.CENTER||i===De.a.LEFT),Ke=[];if(Ye&&it&&(ue.push(J+F,ie+z,0),ue.push(-O+F,ie+z,0),ue.push(-O+F,ie+x+z,0),ue.push(J+F,ie+x+z,0),Ae.push(Ee,Ee+1,Ee+3,Ee+1,Ee+2,Ee+3),Ee+=4,Ke=[xe=1-d/e,Ne=1-x/n,Me=1,Ne,Me,Fe=1,xe,Fe],t===De.a.ROTATE_ROW&&(Ke=[1-xe,1-Ne,1-Me,1-Ne,1-Me,1-Fe,1-xe,1-Fe]),t===De.a.FLIP_ROW&&(Ke=[1-xe,Ne,1-Me,Ne,1-Me,Fe,1-xe,Fe]),t===De.a.FLIP_N_ROTATE_ROW&&(Ke=[xe,1-Ne,Me,1-Ne,Me,1-Fe,xe,1-Fe]),Te=Te.concat(Ke),Re.push(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),fe.push(0,0,-1,0,0,-1,0,0,-1,0,0,-1)),Ye&<&&(ue.push(O+F,ie+z,0),ue.push(se+F,ie+z,0),ue.push(se+F,ie+x+z,0),ue.push(O+F,ie+x+z,0),Ae.push(Ee,Ee+1,Ee+3,Ee+1,Ee+2,Ee+3),Ee+=4,Ke=[xe=0,Ne=1-x/n,Me=d/e,Ne,Me,Fe=1,xe,Fe],(t===De.a.ROTATE_ROW||t===De.a.ROTATE_TILE&&s%2==0)&&(Ke=[1-xe,1-Ne,1-Me,1-Ne,1-Me,1-Fe,1-xe,1-Fe]),(t===De.a.FLIP_ROW||t===De.a.FLIP_TILE&&s%2==0)&&(Ke=[1-xe,Ne,1-Me,Ne,1-Me,Fe,1-xe,Fe]),(t===De.a.FLIP_N_ROTATE_ROW||t===De.a.FLIP_N_ROTATE_TILE&&s%2==0)&&(Ke=[xe,1-Ne,Me,1-Ne,Me,1-Fe,xe,1-Fe]),Te=Te.concat(Ke),Re.push(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),fe.push(0,0,-1,0,0,-1,0,0,-1,0,0,-1)),tt&&it&&(ue.push(J+F,B+z,0),ue.push(-O+F,B+z,0),ue.push(-O+F,ce+z,0),ue.push(J+F,ce+z,0),Ae.push(Ee,Ee+1,Ee+3,Ee+1,Ee+2,Ee+3),Ee+=4,Ke=[xe=1-d/e,Ne=0,Me=1,Ne,Me,Fe=x/n,xe,Fe],(t===De.a.ROTATE_ROW&&b%2==1||t===De.a.ROTATE_TILE&&b%1==0)&&(Ke=[1-xe,1-Ne,1-Me,1-Ne,1-Me,1-Fe,1-xe,1-Fe]),(t===De.a.FLIP_ROW&&b%2==1||t===De.a.FLIP_TILE&&b%2==0)&&(Ke=[1-xe,Ne,1-Me,Ne,1-Me,Fe,1-xe,Fe]),(t===De.a.FLIP_N_ROTATE_ROW&&b%2==1||t===De.a.FLIP_N_ROTATE_TILE&&b%2==0)&&(Ke=[xe,1-Ne,Me,1-Ne,Me,1-Fe,xe,1-Fe]),Te=Te.concat(Ke),Re.push(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),fe.push(0,0,-1,0,0,-1,0,0,-1,0,0,-1)),tt&<&&(ue.push(O+F,B+z,0),ue.push(se+F,B+z,0),ue.push(se+F,ce+z,0),ue.push(O+F,ce+z,0),Ae.push(Ee,Ee+1,Ee+3,Ee+1,Ee+2,Ee+3),Ee+=4,Ke=[xe=0,Ne=0,Me=d/e,Ne,Me,Fe=x/n,xe,Fe],(t===De.a.ROTATE_ROW&&b%2==1||t===De.a.ROTATE_TILE&&(b+s)%2==1)&&(Ke=[1-xe,1-Ne,1-Me,1-Ne,1-Me,1-Fe,1-xe,1-Fe]),(t===De.a.FLIP_ROW&&b%2==1||t===De.a.FLIP_TILE&&(b+s)%2==1)&&(Ke=[1-xe,Ne,1-Me,Ne,1-Me,Fe,1-xe,Fe]),(t===De.a.FLIP_N_ROTATE_ROW&&b%2==1||t===De.a.FLIP_N_ROTATE_TILE&&(b+s)%2==1)&&(Ke=[xe,1-Ne,Me,1-Ne,Me,1-Fe,xe,1-Fe]),Te=Te.concat(Ke),Re.push(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),fe.push(0,0,-1,0,0,-1,0,0,-1,0,0,-1)),Ye){var ot=[];for(xe=0,Ne=1-x/n,Me=1,Fe=1,ot[0]=[xe,Ne,Me,Ne,Me,Fe,xe,Fe],ot[1]=[xe,Ne,Me,Ne,Me,Fe,xe,Fe],t!==De.a.ROTATE_TILE&&t!==De.a.ROTATE_ROW||(ot[1]=[1-xe,1-Ne,1-Me,1-Ne,1-Me,1-Fe,1-xe,1-Fe]),t!==De.a.FLIP_TILE&&t!==De.a.FLIP_ROW||(ot[1]=[1-xe,Ne,1-Me,Ne,1-Me,Fe,1-xe,Fe]),t!==De.a.FLIP_N_ROTATE_TILE&&t!==De.a.FLIP_N_ROTATE_ROW||(ot[1]=[xe,1-Ne,Me,1-Ne,Me,1-Fe,xe,1-Fe]),Le=0;Le1)?1:e.arc||1;var B,F,z=function(ce,ue,fe,ve,Te,Re,Ae,Ee){for(var Se,Le,xe,Ne,Me=ue.getTangents(),Fe=ue.getNormals(),Ye=ue.getDistances(),tt=2*Math.PI/Te*Ee,it=Re||function(){return ve},lt=u.c.Matrix[0],Ke=Ae===De.a.NO_CAP||Ae===De.a.CAP_END?0:2,ot=0;ot3?0:p,e.arc);var se=Eo.a.CreateRibbon(t,{pathArray:F,closePath:!0,closeArray:!1,updatable:x,sideOrientation:O,invertUV:b,frontUVs:e.frontUVs,backUVs:e.backUVs},n);return se._creationDataStorage.pathArray=F,se._creationDataStorage.path3D=B,se._creationDataStorage.tessellation=s,se._creationDataStorage.cap=p,se._creationDataStorage.arc=e.arc,se._creationDataStorage.radius=a,se},r}();dt.a.CreateIcoSphere=function(r){var t,e=r.sideOrientation||dt.a.DEFAULTSIDE,n=r.radius||1,i=r.flat===void 0||r.flat,o=r.subdivisions||4,a=r.radiusX||n,s=r.radiusY||n,d=r.radiusZ||n,p=(1+Math.sqrt(5))/2,b=[-1,p,-0,1,p,0,-1,-p,0,1,-p,0,0,-1,-p,0,1,-p,0,-1,p,0,1,p,p,0,1,p,0,-1,-p,0,1,-p,0,-1],x=[0,11,5,0,5,1,0,1,7,0,7,10,12,22,23,1,5,20,5,11,4,23,22,13,22,18,6,7,1,8,14,21,4,14,4,2,16,13,6,15,6,19,3,8,9,4,21,5,13,17,23,6,13,22,19,6,18,9,8,1],O=[0,1,2,3,4,5,6,7,8,9,10,11,0,2,3,3,3,4,7,8,9,9,10,11],B=[5,1,3,1,6,4,0,0,5,3,4,2,2,2,4,0,2,0,1,1,6,0,6,2,0,4,3,3,4,4,3,1,4,2,4,4,0,2,1,1,2,2,3,3,1,3,2,4],F=[0,0,0,0,1,0,0,1,1,0,0,0,1,1,0,0,1,1,1,0],z=new Array,J=new Array,ie=new Array,se=new Array,ce=0,ue=new Array(3),fe=new Array(3);for(t=0;t<3;t++)ue[t]=u.e.Zero(),fe[t]=u.d.Zero();for(var ve=0;ve<20;ve++){for(t=0;t<3;t++){var Te=x[3*ve+t];ue[t].copyFromFloats(b[3*O[Te]],b[3*O[Te]+1],b[3*O[Te]+2]),ue[t].normalize().scaleInPlace(n),fe[t].copyFromFloats(B[2*Te]*(138/1024)+60/1024+F[ve]*(-40/1024),B[2*Te+1]*(239/1024)+26/1024+F[ve]*(20/1024))}for(var Re=function(Le,xe,Ne,Me){var Fe,Ye=u.e.Lerp(ue[0],ue[2],xe/o),tt=u.e.Lerp(ue[1],ue[2],xe/o),it=o===xe?ue[2]:u.e.Lerp(Ye,tt,Le/(o-xe));if(it.normalize(),i){var lt=u.e.Lerp(ue[0],ue[2],Me/o),Ke=u.e.Lerp(ue[1],ue[2],Me/o);Fe=u.e.Lerp(lt,Ke,Ne/(o-Me))}else Fe=new u.e(it.x,it.y,it.z);Fe.x/=a,Fe.y/=s,Fe.z/=d,Fe.normalize();var ot=u.d.Lerp(fe[0],fe[2],xe/o),rt=u.d.Lerp(fe[1],fe[2],xe/o),qe=o===xe?fe[2]:u.d.Lerp(ot,rt,Le/(o-xe));J.push(it.x*a,it.y*s,it.z*d),ie.push(Fe.x,Fe.y,Fe.z),se.push(qe.x,qe.y),z.push(ce),ce++},Ae=0;Ae0)?1:0)+((lt=u.e.Dot(xe[tt+1].position,Ne)-Me>0)?1:0)+((Ke=u.e.Dot(xe[tt+2].position,Ne)-Me>0)?1:0)){case 0:Ye.push(xe[tt]),Ye.push(xe[tt+1]),Ye.push(xe[tt+2]);break;case 1:if(it&&(ot=xe[tt+1],rt=xe[tt+2],qe=Fe(xe[tt],ot),ht=Fe(xe[tt],rt)),lt){ot=xe[tt],rt=xe[tt+2],qe=Fe(xe[tt+1],ot),ht=Fe(xe[tt+1],rt),Ye.push(qe),Ye.push(rt.clone()),Ye.push(ot.clone()),Ye.push(rt.clone()),Ye.push(qe.clone()),Ye.push(ht);break}Ke&&(ot=xe[tt],rt=xe[tt+1],qe=Fe(xe[tt+2],ot),ht=Fe(xe[tt+2],rt)),ot&&rt&&qe&&ht&&(Ye.push(ot.clone()),Ye.push(rt.clone()),Ye.push(qe),Ye.push(ht),Ye.push(qe.clone()),Ye.push(rt.clone()));break;case 2:it||(rt=Fe(ot=xe[tt].clone(),xe[tt+1]),qe=Fe(ot,xe[tt+2]),Ye.push(ot),Ye.push(rt),Ye.push(qe)),lt||(rt=Fe(ot=xe[tt+1].clone(),xe[tt+2]),qe=Fe(ot,xe[tt]),Ye.push(ot),Ye.push(rt),Ye.push(qe)),Ke||(rt=Fe(ot=xe[tt+2].clone(),xe[tt]),qe=Fe(ot,xe[tt+1]),Ye.push(ot),Ye.push(rt),Ye.push(qe))}}return Ye},Re=0;ReO||z.deleted||z.isDirty)){for(var J=0;J<3;++J)if(z.error[J]>0,function(b){if(o){var x=b+s.verticesStart,O=u.e.FromArray(o,3*x),B=function(F){if(n){for(var z=0;z0&&this._reconstructedMesh.setVerticesData(Oe.b.NormalKind,s),d.length>0&&this._reconstructedMesh.setVerticesData(Oe.b.UVKind,d),p.length>0&&this._reconstructedMesh.setVerticesData(Oe.b.ColorKind,p);var ue=this._mesh.subMeshes[t];t>0&&(this._reconstructedMesh.subMeshes=[],ie.forEach(function(fe){yo.a.AddToMesh(fe.materialIndex,fe.verticesStart,fe.verticesCount,fe.indexStart,fe.indexCount,fe.getMesh())}),yo.a.AddToMesh(ue.materialIndex,J,B,z,3*o.length,this._reconstructedMesh))},r.prototype.initDecimatedMesh=function(){this._reconstructedMesh=new De.a(this._mesh.name+"Decimated",this._mesh.getScene()),this._reconstructedMesh.material=this._mesh.material,this._reconstructedMesh.parent=this._mesh.parent,this._reconstructedMesh.isVisible=!1,this._reconstructedMesh.renderingGroupId=this._mesh.renderingGroupId},r.prototype.isFlipped=function(t,e,n,i,o){for(var a=0;a.999)return!0;var B=u.e.Cross(x,O).normalize();if(i[a]=!1,u.e.Dot(B,s.normal)<.2)return!0}else i[a]=!0,o.push(s)}}return!1},r.prototype.updateTriangles=function(t,e,n,i){for(var o=i,a=0;a=this._thinInstanceDataStorage.instancesCount)return!1;var n=this._thinInstanceDataStorage.matrixData;return t.copyToArray(n,16*r),this._thinInstanceDataStorage.worldMatrices&&(this._thinInstanceDataStorage.worldMatrices[r]=t),e&&(this.thinInstanceBufferUpdated("matrix"),this.doNotSyncBoundingInfo||this.thinInstanceRefreshBoundingInfo(!1)),!0},De.a.prototype.thinInstanceSetAttributeAt=function(r,t,e,n){return n===void 0&&(n=!0),!(!this._userThinInstanceBuffersStorage||!this._userThinInstanceBuffersStorage.data[r]||t>=this._thinInstanceDataStorage.instancesCount)&&(this._thinInstanceUpdateBufferSize(r,0),this._userThinInstanceBuffersStorage.data[r].set(e,t*this._userThinInstanceBuffersStorage.strides[r]),n&&this.thinInstanceBufferUpdated(r),!0)},Object.defineProperty(De.a.prototype,"thinInstanceCount",{get:function(){return this._thinInstanceDataStorage.instancesCount},set:function(r){var t,e;r<=((e=(t=this._thinInstanceDataStorage.matrixData)===null||t===void 0?void 0:t.length)!==null&&e!==void 0?e:0)/16&&(this._thinInstanceDataStorage.instancesCount=r)},enumerable:!0,configurable:!0}),De.a.prototype.thinInstanceSetBuffer=function(r,t,e,n){var i,o;if(e===void 0&&(e=0),n===void 0&&(n=!1),e=e||16,r==="matrix")if((i=this._thinInstanceDataStorage.matrixBuffer)===null||i===void 0||i.dispose(),this._thinInstanceDataStorage.matrixBuffer=null,this._thinInstanceDataStorage.matrixBufferSize=t?t.length:32*e,this._thinInstanceDataStorage.matrixData=t,this._thinInstanceDataStorage.worldMatrices=null,t!==null){this._thinInstanceDataStorage.instancesCount=t.length/e;var a=new Oe.a(this.getEngine(),t,!n,e,!1,!0);this._thinInstanceDataStorage.matrixBuffer=a,this.setVerticesBuffer(a.createVertexBuffer("world0",0,4)),this.setVerticesBuffer(a.createVertexBuffer("world1",4,4)),this.setVerticesBuffer(a.createVertexBuffer("world2",8,4)),this.setVerticesBuffer(a.createVertexBuffer("world3",12,4)),this.doNotSyncBoundingInfo||this.thinInstanceRefreshBoundingInfo(!1)}else this._thinInstanceDataStorage.instancesCount=0,this.doNotSyncBoundingInfo||this.refreshBoundingInfo(!0);else t===null?!((o=this._userThinInstanceBuffersStorage)===null||o===void 0)&&o.data[r]&&(this.removeVerticesData(r),delete this._userThinInstanceBuffersStorage.data[r],delete this._userThinInstanceBuffersStorage.strides[r],delete this._userThinInstanceBuffersStorage.sizes[r],delete this._userThinInstanceBuffersStorage.vertexBuffers[r]):(this._thinInstanceInitializeUserStorage(),this._userThinInstanceBuffersStorage.data[r]=t,this._userThinInstanceBuffersStorage.strides[r]=e,this._userThinInstanceBuffersStorage.sizes[r]=t.length,this._userThinInstanceBuffersStorage.vertexBuffers[r]=new Oe.b(this.getEngine(),t,r,!n,!1,e,!0),this.setVerticesBuffer(this._userThinInstanceBuffersStorage.vertexBuffers[r]))},De.a.prototype.thinInstanceBufferUpdated=function(r){var t;r==="matrix"?this._thinInstanceDataStorage.matrixBuffer&&this._thinInstanceDataStorage.matrixBuffer.updateDirectly(this._thinInstanceDataStorage.matrixData,0,this._thinInstanceDataStorage.instancesCount):!((t=this._userThinInstanceBuffersStorage)===null||t===void 0)&&t.vertexBuffers[r]&&this._userThinInstanceBuffersStorage.vertexBuffers[r].updateDirectly(this._userThinInstanceBuffersStorage.data[r],0)},De.a.prototype.thinInstancePartialBufferUpdate=function(r,t,e){var n;r==="matrix"?this._thinInstanceDataStorage.matrixBuffer&&this._thinInstanceDataStorage.matrixBuffer.updateDirectly(t,e):!((n=this._userThinInstanceBuffersStorage)===null||n===void 0)&&n.vertexBuffers[r]&&this._userThinInstanceBuffersStorage.vertexBuffers[r].updateDirectly(t,e)},De.a.prototype.thinInstanceGetWorldMatrices=function(){if(!this._thinInstanceDataStorage.matrixData||!this._thinInstanceDataStorage.matrixBuffer)return[];var r=this._thinInstanceDataStorage.matrixData;if(!this._thinInstanceDataStorage.worldMatrices){this._thinInstanceDataStorage.worldMatrices=new Array;for(var t=0;t-1&&(this.agents.splice(e,1),this.transforms.splice(e,1))},r.prototype.getAgents=function(){return this.agents},r.prototype.update=function(t){var e=this.bjsRECASTPlugin.getTimeStep(),n=this.bjsRECASTPlugin.getMaximumSubStepCount();if(e<=Gt.a)this.recastCrowd.update(t);else{var i=t/e;n&&i>n&&(i=n),i<1&&(i=1);for(var o=0;o=400&&o?o(p):e()},!1),p.addEventListener("error",function(){l.a.Error("error on XHR request."),e()},!1),p.send()}else l.a.Error("Error: IndexedDB not supported by your browser or Babylon.js database is not open."),e()},r._ValidateXHRData=function(t,e){e===void 0&&(e=7);try{if(1&e){if(t.responseText&&t.responseText.length>0)return!0;if(e===1)return!1}if(2&e){var n=da.GetTGAHeader(t.response);if(n.width&&n.height&&n.width>0&&n.height>0)return!0;if(e===2)return!1}if(4&e){var i=new Uint8Array(t.response,0,3);return i[0]===68&&i[1]===68&&i[2]===83}}catch{}return!1},r.IsUASupportingBlobStorage=!0,r.IDBStorageEnabled=!1,r._ParseURL=function(t){document.createElement("a").href=t;var e=t.substring(0,t.lastIndexOf("#")),n=t.substring(e.lastIndexOf("/")+1,t.length);return t.substring(0,t.indexOf(n,0))},r._ReturnFullUrlLocation=function(t){return t.indexOf("http:/")===-1&&t.indexOf("https:/")===-1&&typeof window<"u"?r._ParseURL(window.location.href)+t:t},r}(),Rc=function(){function r(t,e,n){this.gradient=t,this.color1=e,this.color2=n}return r.prototype.getColorToRef=function(t){this.color2?M.b.LerpToRef(this.color1,this.color2,Math.random(),t):t.copyFrom(this.color1)},r}(),xd=function(r,t){this.gradient=r,this.color=t},Oc=function(){function r(t,e,n){this.gradient=t,this.factor1=e,this.factor2=n}return r.prototype.getFactor=function(){return this.factor2===void 0||this.factor2===this.factor1?this.factor1:this.factor1+(this.factor2-this.factor1)*Math.random()},r}(),In=function(){function r(){}return r.GetCurrentGradient=function(t,e,n){if(e[0].gradient>t)n(e[0],e[0],1);else{for(var i=0;i=o.gradient&&t<=a.gradient)return void n(o,a,(t-o.gradient)/(a.gradient-o.gradient))}var s=e.length-1;n(e[s],e[s],1)}},r}(),Cd=function(){function r(t){this.particleSystem=t,this.position=u.e.Zero(),this.direction=u.e.Zero(),this.color=new M.b(0,0,0,0),this.colorStep=new M.b(0,0,0,0),this.lifeTime=1,this.age=0,this.size=0,this.scale=new u.d(1,1),this.angle=0,this.angularSpeed=0,this.cellIndex=0,this._attachedSubEmitters=null,this._currentColor1=new M.b(0,0,0,0),this._currentColor2=new M.b(0,0,0,0),this._currentSize1=0,this._currentSize2=0,this._currentAngularSpeed1=0,this._currentAngularSpeed2=0,this._currentVelocity1=0,this._currentVelocity2=0,this._currentLimitVelocity1=0,this._currentLimitVelocity2=0,this._currentDrag1=0,this._currentDrag2=0,this.id=r._Count++,this.particleSystem.isAnimationSheetEnabled&&this.updateCellInfoFromSystem()}return r.prototype.updateCellInfoFromSystem=function(){this.cellIndex=this.particleSystem.startSpriteCellID},r.prototype.updateCellIndex=function(){var t=this.age,e=this.particleSystem.spriteCellChangeSpeed;this.particleSystem.spriteRandomStartCell&&(this._randomCellOffset===void 0&&(this._randomCellOffset=Math.random()*this.lifeTime),e===0?(e=1,t=this._randomCellOffset):t+=this._randomCellOffset);var n=this._initialEndSpriteCellID-this._initialStartSpriteCellID,i=$.a.Clamp(t*e%this.lifeTime/this.lifeTime);this.cellIndex=this._initialStartSpriteCellID+i*n|0},r.prototype._inheritParticleInfoToSubEmitter=function(t){if(t.particleSystem.emitter.position){var e=t.particleSystem.emitter;if(e.position.copyFrom(this.position),t.inheritDirection){var n=u.c.Vector3[0];this.direction.normalizeToRef(n),e.setDirection(n,0,Math.PI/2)}}else t.particleSystem.emitter.copyFrom(this.position);this.direction.scaleToRef(t.inheritedVelocityAmount/2,u.c.Vector3[0]),t.particleSystem._inheritedVelocityOffset.copyFrom(u.c.Vector3[0])},r.prototype._inheritParticleInfoToSubEmitters=function(){var t=this;this._attachedSubEmitters&&this._attachedSubEmitters.length>0&&this._attachedSubEmitters.forEach(function(e){t._inheritParticleInfoToSubEmitter(e)})},r.prototype._reset=function(){this.age=0,this.id=r._Count++,this._currentColorGradient=null,this._currentSizeGradient=null,this._currentAngularSpeedGradient=null,this._currentVelocityGradient=null,this._currentLimitVelocityGradient=null,this._currentDragGradient=null,this.cellIndex=this.particleSystem.startSpriteCellID,this._randomCellOffset=void 0},r.prototype.copyTo=function(t){t.position.copyFrom(this.position),this._initialDirection?t._initialDirection?t._initialDirection.copyFrom(this._initialDirection):t._initialDirection=this._initialDirection.clone():t._initialDirection=null,t.direction.copyFrom(this.direction),this._localPosition&&(t._localPosition?t._localPosition.copyFrom(this._localPosition):t._localPosition=this._localPosition.clone()),t.color.copyFrom(this.color),t.colorStep.copyFrom(this.colorStep),t.lifeTime=this.lifeTime,t.age=this.age,t._randomCellOffset=this._randomCellOffset,t.size=this.size,t.scale.copyFrom(this.scale),t.angle=this.angle,t.angularSpeed=this.angularSpeed,t.particleSystem=this.particleSystem,t.cellIndex=this.cellIndex,t.id=this.id,t._attachedSubEmitters=this._attachedSubEmitters,this._currentColorGradient&&(t._currentColorGradient=this._currentColorGradient,t._currentColor1.copyFrom(this._currentColor1),t._currentColor2.copyFrom(this._currentColor2)),this._currentSizeGradient&&(t._currentSizeGradient=this._currentSizeGradient,t._currentSize1=this._currentSize1,t._currentSize2=this._currentSize2),this._currentAngularSpeedGradient&&(t._currentAngularSpeedGradient=this._currentAngularSpeedGradient,t._currentAngularSpeed1=this._currentAngularSpeed1,t._currentAngularSpeed2=this._currentAngularSpeed2),this._currentVelocityGradient&&(t._currentVelocityGradient=this._currentVelocityGradient,t._currentVelocity1=this._currentVelocity1,t._currentVelocity2=this._currentVelocity2),this._currentLimitVelocityGradient&&(t._currentLimitVelocityGradient=this._currentLimitVelocityGradient,t._currentLimitVelocity1=this._currentLimitVelocity1,t._currentLimitVelocity2=this._currentLimitVelocity2),this._currentDragGradient&&(t._currentDragGradient=this._currentDragGradient,t._currentDrag1=this._currentDrag1,t._currentDrag2=this._currentDrag2),this.particleSystem.isAnimationSheetEnabled&&(t._initialStartSpriteCellID=this._initialStartSpriteCellID,t._initialEndSpriteCellID=this._initialEndSpriteCellID),this.particleSystem.useRampGradients&&(t.remapData&&this.remapData?t.remapData.copyFrom(this.remapData):t.remapData=new u.f(0,0,0,0)),this._randomNoiseCoordinates1&&(t._randomNoiseCoordinates1?(t._randomNoiseCoordinates1.copyFrom(this._randomNoiseCoordinates1),t._randomNoiseCoordinates2.copyFrom(this._randomNoiseCoordinates2)):(t._randomNoiseCoordinates1=this._randomNoiseCoordinates1.clone(),t._randomNoiseCoordinates2=this._randomNoiseCoordinates2.clone()))},r._Count=0,r}();(function(r){r[r.ATTACHED=0]="ATTACHED",r[r.END=1]="END"})(Fr||(Fr={}));var Po=function(){function r(t){if(this.particleSystem=t,this.type=Fr.END,this.inheritDirection=!1,this.inheritedVelocityAmount=0,!t.emitter||!t.emitter.dispose){var e=C.a.GetClass("BABYLON.AbstractMesh");t.emitter=new e("SubemitterSystemEmitter",t.getScene())}t.onDisposeObservable.add(function(){t.emitter&&t.emitter.dispose&&t.emitter.dispose()})}return r.prototype.clone=function(){var t=this.particleSystem.emitter;t?t instanceof u.e?t=t.clone():t.getClassName().indexOf("Mesh")!==-1&&((t=new(C.a.GetClass("BABYLON.Mesh"))("",t.getScene())).isVisible=!1):t=new u.e;var e=new r(this.particleSystem.clone("",t));return e.particleSystem.name+="Clone",e.type=this.type,e.inheritDirection=this.inheritDirection,e.inheritedVelocityAmount=this.inheritedVelocityAmount,e.particleSystem._disposeEmitterOnDispose=!0,e.particleSystem.disposeOnStop=!0,e},r.prototype.serialize=function(){var t={};return t.type=this.type,t.inheritDirection=this.inheritDirection,t.inheritedVelocityAmount=this.inheritedVelocityAmount,t.particleSystem=this.particleSystem.serialize(),t},r._ParseParticleSystem=function(t,e,n){throw An.a.WarnImport("ParseParticle")},r.Parse=function(t,e,n){var i=t.particleSystem,o=new r(r._ParseParticleSystem(i,e,n));return o.type=t.type,o.inheritDirection=t.inheritDirection,o.inheritedVelocityAmount=t.inheritedVelocityAmount,o.particleSystem._isSubEmitter=!0,o},r.prototype.dispose=function(){this.particleSystem.dispose()},r}(),Dm=` +varying vec2 vUV; +varying vec4 vColor; +uniform vec4 textureMask; +uniform sampler2D diffuseSampler; +#include +#include +#include +#include +#ifdef RAMPGRADIENT +varying vec4 remapRanges; +uniform sampler2D rampSampler; +#endif +void main(void) { +#include +vec4 textureColor=texture2D(diffuseSampler,vUV); +vec4 baseColor=(textureColor*textureMask+(vec4(1.,1.,1.,1.)-textureMask))*vColor; +#ifdef RAMPGRADIENT +float alpha=baseColor.a; +float remappedColorIndex=clamp((alpha-remapRanges.x)/remapRanges.y,0.0,1.0); +vec4 rampColor=texture2D(rampSampler,vec2(1.0-remappedColorIndex,0.)); +baseColor.rgb*=rampColor.rgb; + +float finalAlpha=baseColor.a; +baseColor.a=clamp((alpha*rampColor.a-remapRanges.z)/remapRanges.w,0.0,1.0); +#endif +#ifdef BLENDMULTIPLYMODE +float sourceAlpha=vColor.a*textureColor.a; +baseColor.rgb=baseColor.rgb*sourceAlpha+vec3(1.0)*(1.0-sourceAlpha); +#endif + + +#ifdef IMAGEPROCESSINGPOSTPROCESS +baseColor.rgb=toLinearSpace(baseColor.rgb); +#else +#ifdef IMAGEPROCESSING +baseColor.rgb=toLinearSpace(baseColor.rgb); +baseColor=applyImageProcessing(baseColor); +#endif +#endif +gl_FragColor=baseColor; +}`;ze.a.ShadersStore.particlesPixelShader=Dm;var Lm=` +attribute vec3 position; +attribute vec4 color; +attribute float angle; +attribute vec2 size; +#ifdef ANIMATESHEET +attribute float cellIndex; +#endif +#ifndef BILLBOARD +attribute vec3 direction; +#endif +#ifdef BILLBOARDSTRETCHED +attribute vec3 direction; +#endif +#ifdef RAMPGRADIENT +attribute vec4 remapData; +#endif +attribute vec2 offset; + +uniform mat4 view; +uniform mat4 projection; +uniform vec2 translationPivot; +#ifdef ANIMATESHEET +uniform vec3 particlesInfos; +#endif + +varying vec2 vUV; +varying vec4 vColor; +varying vec3 vPositionW; +#ifdef RAMPGRADIENT +varying vec4 remapRanges; +#endif +#if defined(BILLBOARD) && !defined(BILLBOARDY) && !defined(BILLBOARDSTRETCHED) +uniform mat4 invView; +#endif +#include +#ifdef BILLBOARD +uniform vec3 eyePosition; +#endif +vec3 rotate(vec3 yaxis,vec3 rotatedCorner) { +vec3 xaxis=normalize(cross(vec3(0.,1.0,0.),yaxis)); +vec3 zaxis=normalize(cross(yaxis,xaxis)); +vec3 row0=vec3(xaxis.x,xaxis.y,xaxis.z); +vec3 row1=vec3(yaxis.x,yaxis.y,yaxis.z); +vec3 row2=vec3(zaxis.x,zaxis.y,zaxis.z); +mat3 rotMatrix=mat3(row0,row1,row2); +vec3 alignedCorner=rotMatrix*rotatedCorner; +return position+alignedCorner; +} +#ifdef BILLBOARDSTRETCHED +vec3 rotateAlign(vec3 toCamera,vec3 rotatedCorner) { +vec3 normalizedToCamera=normalize(toCamera); +vec3 normalizedCrossDirToCamera=normalize(cross(normalize(direction),normalizedToCamera)); +vec3 crossProduct=normalize(cross(normalizedToCamera,normalizedCrossDirToCamera)); +vec3 row0=vec3(normalizedCrossDirToCamera.x,normalizedCrossDirToCamera.y,normalizedCrossDirToCamera.z); +vec3 row1=vec3(crossProduct.x,crossProduct.y,crossProduct.z); +vec3 row2=vec3(normalizedToCamera.x,normalizedToCamera.y,normalizedToCamera.z); +mat3 rotMatrix=mat3(row0,row1,row2); +vec3 alignedCorner=rotMatrix*rotatedCorner; +return position+alignedCorner; +} +#endif +void main(void) { +vec2 cornerPos; +cornerPos=(vec2(offset.x-0.5,offset.y-0.5)-translationPivot)*size+translationPivot; +#ifdef BILLBOARD + +vec3 rotatedCorner; +#ifdef BILLBOARDY +rotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle); +rotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle); +rotatedCorner.y=0.; +vec3 yaxis=position-eyePosition; +yaxis.y=0.; +vPositionW=rotate(normalize(yaxis),rotatedCorner); +vec3 viewPos=(view*vec4(vPositionW,1.0)).xyz; +#elif defined(BILLBOARDSTRETCHED) +rotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle); +rotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle); +rotatedCorner.z=0.; +vec3 toCamera=position-eyePosition; +vPositionW=rotateAlign(toCamera,rotatedCorner); +vec3 viewPos=(view*vec4(vPositionW,1.0)).xyz; +#else +rotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle); +rotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle); +rotatedCorner.z=0.; +vec3 viewPos=(view*vec4(position,1.0)).xyz+rotatedCorner; +vPositionW=(invView*vec4(viewPos,1)).xyz; +#endif +#ifdef RAMPGRADIENT +remapRanges=remapData; +#endif + +gl_Position=projection*vec4(viewPos,1.0); +#else + +vec3 rotatedCorner; +rotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle); +rotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle); +rotatedCorner.y=0.; +vec3 yaxis=normalize(direction); +vPositionW=rotate(yaxis,rotatedCorner); +gl_Position=projection*view*vec4(vPositionW,1.0); +#endif +vColor=color; +#ifdef ANIMATESHEET +float rowOffset=floor(cellIndex*particlesInfos.z); +float columnOffset=cellIndex-rowOffset/particlesInfos.z; +vec2 uvScale=particlesInfos.xy; +vec2 uvOffset=vec2(offset.x ,1.0-offset.y); +vUV=(uvOffset+vec2(columnOffset,rowOffset))*uvScale; +#else +vUV=offset; +#endif + +#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6) +vec4 worldPos=vec4(vPositionW,1.0); +#endif +#include +}`;ze.a.ShadersStore.particlesVertexShader=Lm;var ln=function(r){function t(e,n,i,o,a,s){o===void 0&&(o=null),a===void 0&&(a=!1),s===void 0&&(s=.01);var d=r.call(this,e)||this;return d._inheritedVelocityOffset=new u.e,d.onDisposeObservable=new R.c,d.onStoppedObservable=new R.c,d._particles=new Array,d._stockParticles=new Array,d._newPartsExcess=0,d._vertexBuffers={},d._scaledColorStep=new M.b(0,0,0,0),d._colorDiff=new M.b(0,0,0,0),d._scaledDirection=u.e.Zero(),d._scaledGravity=u.e.Zero(),d._currentRenderId=-1,d._useInstancing=!1,d._started=!1,d._stopped=!1,d._actualFrame=0,d._currentEmitRate1=0,d._currentEmitRate2=0,d._currentStartSize1=0,d._currentStartSize2=0,d._rawTextureWidth=256,d._useRampGradients=!1,d._disposeEmitterOnDispose=!1,d.isLocal=!1,d._onBeforeDrawParticlesObservable=null,d.recycleParticle=function(p){var b=d._particles.pop();b!==p&&b.copyTo(p),d._stockParticles.push(b)},d._createParticle=function(){var p;if(d._stockParticles.length!==0?(p=d._stockParticles.pop())._reset():p=new Cd(d),d._subEmitters&&d._subEmitters.length>0){var b=d._subEmitters[Math.floor(Math.random()*d._subEmitters.length)];p._attachedSubEmitters=[],b.forEach(function(x){if(x.type===Fr.ATTACHED){var O=x.clone();p._attachedSubEmitters.push(O),O.particleSystem.start()}})}return p},d._emitFromParticle=function(p){if(d._subEmitters&&d._subEmitters.length!==0){var b=Math.floor(Math.random()*d._subEmitters.length);d._subEmitters[b].forEach(function(x){if(x.type===Fr.END){var O=x.clone();p._inheritParticleInfoToSubEmitter(O),O.particleSystem._rootParticleSystem=d,d.activeSubSystems.push(O.particleSystem),O.particleSystem.start()}})}},d._capacity=n,d._epsilon=s,d._isAnimationSheetEnabled=a,i&&i.getClassName()!=="Scene"?(d._engine=i,d.defaultProjectionMatrix=u.a.PerspectiveFovLH(.8,1,.1,100)):(d._scene=i||te.a.LastCreatedScene,d._engine=d._scene.getEngine(),d.uniqueId=d._scene.getUniqueId(),d._scene.particleSystems.push(d)),d._engine.getCaps().vertexArrayObject&&(d._vertexArrayObject=null),d._attachImageProcessingConfiguration(null),d._customEffect={0:o},d._useInstancing=d._engine.getCaps().instancedArrays,d._createIndexBuffer(),d._createVertexBuffers(),d.particleEmitterType=new Nr,d.updateFunction=function(p){var b=null,x=null;d.noiseTexture&&(b=d.noiseTexture.getSize(),x=d.noiseTexture.getContent());for(var O,B=function(){O=p[F];var z=d._scaledUpdateSpeed,J=O.age;if(O.age+=z,O.age>O.lifeTime){var ie=O.age-J;z=(O.lifeTime-J)*z/ie,O.age=O.lifeTime}var se=O.age/O.lifeTime;d._colorGradients&&d._colorGradients.length>0?In.GetCurrentGradient(se,d._colorGradients,function(Ae,Ee,Se){Ae!==O._currentColorGradient&&(O._currentColor1.copyFrom(O._currentColor2),Ee.getColorToRef(O._currentColor2),O._currentColorGradient=Ae),M.b.LerpToRef(O._currentColor1,O._currentColor2,Se,O.color)}):(O.colorStep.scaleToRef(z,d._scaledColorStep),O.color.addInPlace(d._scaledColorStep),O.color.a<0&&(O.color.a=0)),d._angularSpeedGradients&&d._angularSpeedGradients.length>0&&In.GetCurrentGradient(se,d._angularSpeedGradients,function(Ae,Ee,Se){Ae!==O._currentAngularSpeedGradient&&(O._currentAngularSpeed1=O._currentAngularSpeed2,O._currentAngularSpeed2=Ee.getFactor(),O._currentAngularSpeedGradient=Ae),O.angularSpeed=$.a.Lerp(O._currentAngularSpeed1,O._currentAngularSpeed2,Se)}),O.angle+=O.angularSpeed*z;var ce=z;if(d._velocityGradients&&d._velocityGradients.length>0&&In.GetCurrentGradient(se,d._velocityGradients,function(Ae,Ee,Se){Ae!==O._currentVelocityGradient&&(O._currentVelocity1=O._currentVelocity2,O._currentVelocity2=Ee.getFactor(),O._currentVelocityGradient=Ae),ce*=$.a.Lerp(O._currentVelocity1,O._currentVelocity2,Se)}),O.direction.scaleToRef(ce,d._scaledDirection),d._limitVelocityGradients&&d._limitVelocityGradients.length>0&&In.GetCurrentGradient(se,d._limitVelocityGradients,function(Ae,Ee,Se){Ae!==O._currentLimitVelocityGradient&&(O._currentLimitVelocity1=O._currentLimitVelocity2,O._currentLimitVelocity2=Ee.getFactor(),O._currentLimitVelocityGradient=Ae);var Le=$.a.Lerp(O._currentLimitVelocity1,O._currentLimitVelocity2,Se);O.direction.length()>Le&&O.direction.scaleInPlace(d.limitVelocityDamping)}),d._dragGradients&&d._dragGradients.length>0&&In.GetCurrentGradient(se,d._dragGradients,function(Ae,Ee,Se){Ae!==O._currentDragGradient&&(O._currentDrag1=O._currentDrag2,O._currentDrag2=Ee.getFactor(),O._currentDragGradient=Ae);var Le=$.a.Lerp(O._currentDrag1,O._currentDrag2,Se);d._scaledDirection.scaleInPlace(1-Le)}),d.isLocal&&O._localPosition?(O._localPosition.addInPlace(d._scaledDirection),u.e.TransformCoordinatesToRef(O._localPosition,d._emitterWorldMatrix,O.position)):O.position.addInPlace(d._scaledDirection),x&&b&&O._randomNoiseCoordinates1){var ue=d._fetchR(O._randomNoiseCoordinates1.x,O._randomNoiseCoordinates1.y,b.width,b.height,x),fe=d._fetchR(O._randomNoiseCoordinates1.z,O._randomNoiseCoordinates2.x,b.width,b.height,x),ve=d._fetchR(O._randomNoiseCoordinates2.y,O._randomNoiseCoordinates2.z,b.width,b.height,x),Te=u.c.Vector3[0],Re=u.c.Vector3[1];Te.copyFromFloats((2*ue-1)*d.noiseStrength.x,(2*fe-1)*d.noiseStrength.y,(2*ve-1)*d.noiseStrength.z),Te.scaleToRef(z,Re),O.direction.addInPlace(Re)}if(d.gravity.scaleToRef(z,d._scaledGravity),O.direction.addInPlace(d._scaledGravity),d._sizeGradients&&d._sizeGradients.length>0&&In.GetCurrentGradient(se,d._sizeGradients,function(Ae,Ee,Se){Ae!==O._currentSizeGradient&&(O._currentSize1=O._currentSize2,O._currentSize2=Ee.getFactor(),O._currentSizeGradient=Ae),O.size=$.a.Lerp(O._currentSize1,O._currentSize2,Se)}),d._useRampGradients&&(d._colorRemapGradients&&d._colorRemapGradients.length>0&&In.GetCurrentGradient(se,d._colorRemapGradients,function(Ae,Ee,Se){var Le=$.a.Lerp(Ae.factor1,Ee.factor1,Se),xe=$.a.Lerp(Ae.factor2,Ee.factor2,Se);O.remapData.x=Le,O.remapData.y=xe-Le}),d._alphaRemapGradients&&d._alphaRemapGradients.length>0&&In.GetCurrentGradient(se,d._alphaRemapGradients,function(Ae,Ee,Se){var Le=$.a.Lerp(Ae.factor1,Ee.factor1,Se),xe=$.a.Lerp(Ae.factor2,Ee.factor2,Se);O.remapData.z=Le,O.remapData.w=xe-Le})),d._isAnimationSheetEnabled&&O.updateCellIndex(),O._inheritParticleInfoToSubEmitters(),O.age>=O.lifeTime)return d._emitFromParticle(O),O._attachedSubEmitters&&(O._attachedSubEmitters.forEach(function(Ae){Ae.particleSystem.disposeOnStop=!0,Ae.particleSystem.stop()}),O._attachedSubEmitters=null),d.recycleParticle(O),F--,"continue"},F=0;Fd.gradient?1:0})},t.prototype._removeFactorGradient=function(e,n){if(e)for(var i=0,o=0,a=e;on.gradient?1:0}),this._rampGradientsTexture&&(this._rampGradientsTexture.dispose(),this._rampGradientsTexture=null),this._createRampGradientTexture())},t.prototype.addRampGradient=function(e,n){this._rampGradients||(this._rampGradients=[]);var i=new xd(e,n);return this._rampGradients.push(i),this._syncRampGradientTexture(),this},t.prototype.removeRampGradient=function(e){return this._removeGradientAndTexture(e,this._rampGradients,this._rampGradientsTexture),this._rampGradientsTexture=null,this._rampGradients&&this._rampGradients.length>0&&this._createRampGradientTexture(),this},t.prototype.addColorGradient=function(e,n,i){this._colorGradients||(this._colorGradients=[]);var o=new Rc(e,n,i);return this._colorGradients.push(o),this._colorGradients.sort(function(a,s){return a.gradients.gradient?1:0}),this},t.prototype.removeColorGradient=function(e){if(!this._colorGradients)return this;for(var n=0,i=0,o=this._colorGradients;i0&&(this._currentEmitRateGradient=this._emitRateGradients[0],this._currentEmitRate1=this._currentEmitRateGradient.getFactor(),this._currentEmitRate2=this._currentEmitRate1),this._emitRateGradients.length>1&&(this._currentEmitRate2=this._emitRateGradients[1].getFactor())),this._startSizeGradients&&(this._startSizeGradients.length>0&&(this._currentStartSizeGradient=this._startSizeGradients[0],this._currentStartSize1=this._currentStartSizeGradient.getFactor(),this._currentStartSize2=this._currentStartSize1),this._startSizeGradients.length>1&&(this._currentStartSize2=this._startSizeGradients[1].getFactor())),this.preWarmCycles){((n=this.emitter)===null||n===void 0?void 0:n.getClassName().indexOf("Mesh"))!==-1&&this.emitter.computeWorldMatrix(!0);var o=this.noiseTexture;if(o&&o.onGeneratedObservable)o.onGeneratedObservable.addOnce(function(){setTimeout(function(){for(var s=0;s0&&this._scene&&this._scene.beginAnimation(this,this.beginAnimationFrom,this.beginAnimationTo,this.beginAnimationLoop)}},t.prototype.stop=function(e){e===void 0&&(e=!0),this._stopped||(this.onStoppedObservable.notifyObservers(this),this._stopped=!0,e&&this._stopSubEmitters())},t.prototype.reset=function(){this._stockParticles=[],this._particles=[]},t.prototype._appendParticleVertex=function(e,n,i,o){var a=e*this._vertexBufferSize;if(this._vertexData[a++]=n.position.x+this.worldOffset.x,this._vertexData[a++]=n.position.y+this.worldOffset.y,this._vertexData[a++]=n.position.z+this.worldOffset.z,this._vertexData[a++]=n.color.r,this._vertexData[a++]=n.color.g,this._vertexData[a++]=n.color.b,this._vertexData[a++]=n.color.a,this._vertexData[a++]=n.angle,this._vertexData[a++]=n.scale.x*n.size,this._vertexData[a++]=n.scale.y*n.size,this._isAnimationSheetEnabled&&(this._vertexData[a++]=n.cellIndex),this._isBillboardBased)this.billboardMode===t.BILLBOARDMODE_STRETCHED&&(this._vertexData[a++]=n.direction.x,this._vertexData[a++]=n.direction.y,this._vertexData[a++]=n.direction.z);else if(n._initialDirection){var s=n._initialDirection;this.isLocal&&(u.e.TransformNormalToRef(s,this._emitterWorldMatrix,u.c.Vector3[0]),s=u.c.Vector3[0]),s.x===0&&s.z===0&&(s.x=.001),this._vertexData[a++]=s.x,this._vertexData[a++]=s.y,this._vertexData[a++]=s.z}else{var d=n.direction;this.isLocal&&(u.e.TransformNormalToRef(d,this._emitterWorldMatrix,u.c.Vector3[0]),d=u.c.Vector3[0]),d.x===0&&d.z===0&&(d.x=.001),this._vertexData[a++]=d.x,this._vertexData[a++]=d.y,this._vertexData[a++]=d.z}this._useRampGradients&&n.remapData&&(this._vertexData[a++]=n.remapData.x,this._vertexData[a++]=n.remapData.y,this._vertexData[a++]=n.remapData.z,this._vertexData[a++]=n.remapData.w),this._useInstancing||(this._isAnimationSheetEnabled&&(i===0?i=this._epsilon:i===1&&(i=1-this._epsilon),o===0?o=this._epsilon:o===1&&(o=1-this._epsilon)),this._vertexData[a++]=i,this._vertexData[a++]=o)},t.prototype._stopSubEmitters=function(){this.activeSubSystems&&(this.activeSubSystems.forEach(function(e){e.stop(!0)}),this.activeSubSystems=new Array)},t.prototype._removeFromRoot=function(){if(this._rootParticleSystem){var e=this._rootParticleSystem.activeSubSystems.indexOf(this);e!==-1&&this._rootParticleSystem.activeSubSystems.splice(e,1),this._rootParticleSystem=null}},t.prototype._update=function(e){var n,i=this;if(this._alive=this._particles.length>0,this.emitter.position){var o=this.emitter;this._emitterWorldMatrix=o.getWorldMatrix()}else{var a=this.emitter;this._emitterWorldMatrix=u.a.Translation(a.x,a.y,a.z)}this.updateFunction(this._particles);for(var s,d=function(){if(p._particles.length===p._capacity)return"break";if(n=p._createParticle(),p._particles.push(n),p.targetStopDuration&&p._lifeTimeGradients&&p._lifeTimeGradients.length>0){var x=$.a.Clamp(p._actualFrame/p.targetStopDuration);In.GetCurrentGradient(x,p._lifeTimeGradients,function(F,z){var J=F,ie=z,se=J.getFactor(),ce=ie.getFactor(),ue=(x-J.gradient)/(ie.gradient-J.gradient);n.lifeTime=$.a.Lerp(se,ce,ue)})}else n.lifeTime=$.a.RandomRange(p.minLifeTime,p.maxLifeTime);var O=$.a.RandomRange(p.minEmitPower,p.maxEmitPower);if(p.startPositionFunction?p.startPositionFunction(p._emitterWorldMatrix,n.position,n,p.isLocal):p.particleEmitterType.startPositionFunction(p._emitterWorldMatrix,n.position,n,p.isLocal),p.isLocal&&(n._localPosition?n._localPosition.copyFrom(n.position):n._localPosition=n.position.clone(),u.e.TransformCoordinatesToRef(n._localPosition,p._emitterWorldMatrix,n.position)),p.startDirectionFunction?p.startDirectionFunction(p._emitterWorldMatrix,n.direction,n,p.isLocal):p.particleEmitterType.startDirectionFunction(p._emitterWorldMatrix,n.direction,n,p.isLocal),O===0?n._initialDirection?n._initialDirection.copyFrom(n.direction):n._initialDirection=n.direction.clone():n._initialDirection=null,n.direction.scaleInPlace(O),p._sizeGradients&&p._sizeGradients.length!==0?(n._currentSizeGradient=p._sizeGradients[0],n._currentSize1=n._currentSizeGradient.getFactor(),n.size=n._currentSize1,p._sizeGradients.length>1?n._currentSize2=p._sizeGradients[1].getFactor():n._currentSize2=n._currentSize1):n.size=$.a.RandomRange(p.minSize,p.maxSize),n.scale.copyFromFloats($.a.RandomRange(p.minScaleX,p.maxScaleX),$.a.RandomRange(p.minScaleY,p.maxScaleY)),p._startSizeGradients&&p._startSizeGradients[0]&&p.targetStopDuration){var B=p._actualFrame/p.targetStopDuration;In.GetCurrentGradient(B,p._startSizeGradients,function(F,z,J){F!==i._currentStartSizeGradient&&(i._currentStartSize1=i._currentStartSize2,i._currentStartSize2=z.getFactor(),i._currentStartSizeGradient=F);var ie=$.a.Lerp(i._currentStartSize1,i._currentStartSize2,J);n.scale.scaleInPlace(ie)})}p._angularSpeedGradients&&p._angularSpeedGradients.length!==0?(n._currentAngularSpeedGradient=p._angularSpeedGradients[0],n.angularSpeed=n._currentAngularSpeedGradient.getFactor(),n._currentAngularSpeed1=n.angularSpeed,p._angularSpeedGradients.length>1?n._currentAngularSpeed2=p._angularSpeedGradients[1].getFactor():n._currentAngularSpeed2=n._currentAngularSpeed1):n.angularSpeed=$.a.RandomRange(p.minAngularSpeed,p.maxAngularSpeed),n.angle=$.a.RandomRange(p.minInitialRotation,p.maxInitialRotation),p._velocityGradients&&p._velocityGradients.length>0&&(n._currentVelocityGradient=p._velocityGradients[0],n._currentVelocity1=n._currentVelocityGradient.getFactor(),p._velocityGradients.length>1?n._currentVelocity2=p._velocityGradients[1].getFactor():n._currentVelocity2=n._currentVelocity1),p._limitVelocityGradients&&p._limitVelocityGradients.length>0&&(n._currentLimitVelocityGradient=p._limitVelocityGradients[0],n._currentLimitVelocity1=n._currentLimitVelocityGradient.getFactor(),p._limitVelocityGradients.length>1?n._currentLimitVelocity2=p._limitVelocityGradients[1].getFactor():n._currentLimitVelocity2=n._currentLimitVelocity1),p._dragGradients&&p._dragGradients.length>0&&(n._currentDragGradient=p._dragGradients[0],n._currentDrag1=n._currentDragGradient.getFactor(),p._dragGradients.length>1?n._currentDrag2=p._dragGradients[1].getFactor():n._currentDrag2=n._currentDrag1),p._colorGradients&&p._colorGradients.length!==0?(n._currentColorGradient=p._colorGradients[0],n._currentColorGradient.getColorToRef(n.color),n._currentColor1.copyFrom(n.color),p._colorGradients.length>1?p._colorGradients[1].getColorToRef(n._currentColor2):n._currentColor2.copyFrom(n.color)):(s=$.a.RandomRange(0,1),M.b.LerpToRef(p.color1,p.color2,s,n.color),p.colorDead.subtractToRef(n.color,p._colorDiff),p._colorDiff.scaleToRef(1/n.lifeTime,n.colorStep)),p._isAnimationSheetEnabled&&(n._initialStartSpriteCellID=p.startSpriteCellID,n._initialEndSpriteCellID=p.endSpriteCellID),n.direction.addInPlace(p._inheritedVelocityOffset),p._useRampGradients&&(n.remapData=new u.f(0,1,0,1)),p.noiseTexture&&(n._randomNoiseCoordinates1?(n._randomNoiseCoordinates1.copyFromFloats(Math.random(),Math.random(),Math.random()),n._randomNoiseCoordinates2.copyFromFloats(Math.random(),Math.random(),Math.random())):(n._randomNoiseCoordinates1=new u.e(Math.random(),Math.random(),Math.random()),n._randomNoiseCoordinates2=new u.e(Math.random(),Math.random(),Math.random()))),n._inheritParticleInfoToSubEmitters()},p=this,b=0;b-1)o=this.manualEmitCount,this._newPartsExcess=0,this.manualEmitCount=0;else{var a=this.emitRate;if(this._emitRateGradients&&this._emitRateGradients.length>0&&this.targetStopDuration){var s=this._actualFrame/this.targetStopDuration;In.GetCurrentGradient(s,this._emitRateGradients,function(x,O,B){x!==i._currentEmitRateGradient&&(i._currentEmitRate1=i._currentEmitRate2,i._currentEmitRate2=O.getFactor(),i._currentEmitRateGradient=x),a=$.a.Lerp(i._currentEmitRate1,i._currentEmitRate2,B)})}o=a*this._scaledUpdateSpeed>>0,this._newPartsExcess+=a*this._scaledUpdateSpeed-o}if(this._newPartsExcess>1&&(o+=this._newPartsExcess>>0,this._newPartsExcess-=this._newPartsExcess>>0),this._alive=!1,this._stopped?o=0:(this._actualFrame+=this._scaledUpdateSpeed,this.targetStopDuration&&this._actualFrame>=this.targetStopDuration&&this.stop()),this._update(o),this._stopped&&(this._alive||(this._started=!1,this.onAnimationEnd&&this.onAnimationEnd(),this.disposeOnStop&&this._scene&&this._scene._toBeDisposed.push(this))),!e){for(var d=0,p=0;p=0&&(s.invertToRef(u.c.Matrix[0]),o.setMatrix("invView",u.c.Matrix[0])),this._vertexArrayObject!==void 0?(this._vertexArrayObject||(this._vertexArrayObject=this._engine.recordVertexArrayObject(this._vertexBuffers,this._indexBuffer,o)),this._engine.bindVertexArrayObject(this._vertexArrayObject,this._indexBuffer)):a.bindBuffers(this._vertexBuffers,this._indexBuffer,o),this._imageProcessingConfiguration&&!this._imageProcessingConfiguration.applyByPostProcess&&this._imageProcessingConfiguration.bind(o),e){case t.BLENDMODE_ADD:a.setAlphaMode(h.a.ALPHA_ADD);break;case t.BLENDMODE_ONEONE:a.setAlphaMode(h.a.ALPHA_ONEONE);break;case t.BLENDMODE_STANDARD:a.setAlphaMode(h.a.ALPHA_COMBINE);break;case t.BLENDMODE_MULTIPLY:a.setAlphaMode(h.a.ALPHA_MULTIPLY)}return this._onBeforeDrawParticlesObservable&&this._onBeforeDrawParticlesObservable.notifyObservers(o),this._useInstancing?a.drawArraysType(h.a.MATERIAL_TriangleFanDrawMode,0,4,this._particles.length):a.drawElementsType(h.a.MATERIAL_TriangleFillMode,0,6*this._particles.length),this._particles.length},t.prototype.render=function(){if(!this.isReady()||!this._particles.length)return 0;var e=this._engine;e.setState&&(e.setState(!1),this.forceDepthWrite&&e.setDepthWrite(!0));var n=0;return n=this.blendMode===t.BLENDMODE_MULTIPLYADD?this._render(t.BLENDMODE_MULTIPLY)+this._render(t.BLENDMODE_ADD):this._render(this.blendMode),this._engine.unbindInstanceAttributes(),this._engine.setAlphaMode(h.a.ALPHA_DISABLE),n},t.prototype.dispose=function(e){if(e===void 0&&(e=!0),this._vertexBuffer&&(this._vertexBuffer.dispose(),this._vertexBuffer=null),this._spriteBuffer&&(this._spriteBuffer.dispose(),this._spriteBuffer=null),this._indexBuffer&&(this._engine._releaseBuffer(this._indexBuffer),this._indexBuffer=null),this._vertexArrayObject&&(this._engine.releaseVertexArrayObject(this._vertexArrayObject),this._vertexArrayObject=null),e&&this.particleTexture&&(this.particleTexture.dispose(),this.particleTexture=null),e&&this.noiseTexture&&(this.noiseTexture.dispose(),this.noiseTexture=null),this._rampGradientsTexture&&(this._rampGradientsTexture.dispose(),this._rampGradientsTexture=null),this._removeFromRoot(),this._subEmitters&&this._subEmitters.length){for(var n=0;n-1&&this._scene.particleSystems.splice(n,1),this._scene._activeParticleSystems.dispose()),this.onDisposeObservable.notifyObservers(this),this.onDisposeObservable.clear(),this.onStoppedObservable.clear(),this.reset()},t.prototype.clone=function(e,n){var i=Object(c.a)({},this._customEffect),o=null,a=this._engine;if(a.createEffectForParticles&&this.customShader!=null){var s=(o=this.customShader).shaderOptions.defines.length>0?o.shaderOptions.defines.join(` +`):"";i[0]=a.createEffectForParticles(o.shaderPath.fragmentElement,o.shaderOptions.uniforms,o.shaderOptions.samplers,s)}var d=this.serialize(),p=t.Parse(d,this._scene||this._engine,"");return p.name=e,p.customShader=o,p._customEffect=i,n===void 0&&(n=this.emitter),this.noiseTexture&&(p.noiseTexture=this.noiseTexture.clone()),p.emitter=n,this.preventAutoStart||p.start(),p},t.prototype.serialize=function(e){e===void 0&&(e=!1);var n={};if(t._Serialize(n,this,e),n.textureMask=this.textureMask.asArray(),n.customShader=this.customShader,n.preventAutoStart=this.preventAutoStart,this.subEmitters){n.subEmitters=[],this._subEmitters||this._prepareSubEmitterInternalArray();for(var i=0,o=this._subEmitters;i0?p.shaderOptions.defines.join(` +`):"";d=a.createEffectForParticles(p.shaderPath.fragmentElement,p.shaderOptions.uniforms,p.shaderOptions.samplers,b)}var x=new t(s,e.capacity,n,d,e.isAnimationSheetEnabled);if(x.customShader=p,e.id&&(x.id=e.id),e.subEmitters){x.subEmitters=[];for(var O=0,B=e.subEmitters;O=life && stopFactor != 0.) { +vec3 newPosition; +vec3 newDirection; + +vec4 randoms=getRandomVec4(seed.x); + +outLife=lifeTime.x+(lifeTime.y-lifeTime.x)*randoms.r; +outAge=newAge-life; + +outSeed=seed; + +#ifdef SIZEGRADIENTS +outSize.x=texture(sizeGradientSampler,vec2(0,0)).r; +#else +outSize.x=sizeRange.x+(sizeRange.y-sizeRange.x)*randoms.g; +#endif +outSize.y=scaleRange.x+(scaleRange.y-scaleRange.x)*randoms.b; +outSize.z=scaleRange.z+(scaleRange.w-scaleRange.z)*randoms.a; +#ifndef COLORGRADIENTS + +outColor=color1+(color2-color1)*randoms.b; +#endif + +#ifndef ANGULARSPEEDGRADIENTS +outAngle.y=angleRange.x+(angleRange.y-angleRange.x)*randoms.a; +outAngle.x=angleRange.z+(angleRange.w-angleRange.z)*randoms.r; +#else +outAngle=angleRange.z+(angleRange.w-angleRange.z)*randoms.r; +#endif + +#ifdef POINTEMITTER +vec3 randoms2=getRandomVec3(seed.y); +vec3 randoms3=getRandomVec3(seed.z); +newPosition=vec3(0,0,0); +newDirection=direction1+(direction2-direction1)*randoms3; +#elif defined(BOXEMITTER) +vec3 randoms2=getRandomVec3(seed.y); +vec3 randoms3=getRandomVec3(seed.z); +newPosition=minEmitBox+(maxEmitBox-minEmitBox)*randoms2; +newDirection=direction1+(direction2-direction1)*randoms3; +#elif defined(HEMISPHERICEMITTER) +vec3 randoms2=getRandomVec3(seed.y); +vec3 randoms3=getRandomVec3(seed.z); + +float phi=2.0*PI*randoms2.x; +float theta=acos(2.0*randoms2.y-1.0); +float randX=cos(phi)*sin(theta); +float randY=cos(theta); +float randZ=sin(phi)*sin(theta); +newPosition=(radius-(radius*radiusRange*randoms2.z))*vec3(randX,abs(randY),randZ); +newDirection=newPosition+directionRandomizer*randoms3; +#elif defined(SPHEREEMITTER) +vec3 randoms2=getRandomVec3(seed.y); +vec3 randoms3=getRandomVec3(seed.z); + +float phi=2.0*PI*randoms2.x; +float theta=acos(2.0*randoms2.y-1.0); +float randX=cos(phi)*sin(theta); +float randY=cos(theta); +float randZ=sin(phi)*sin(theta); +newPosition=(radius-(radius*radiusRange*randoms2.z))*vec3(randX,randY,randZ); +#ifdef DIRECTEDSPHEREEMITTER +newDirection=direction1+(direction2-direction1)*randoms3; +#else + +newDirection=newPosition+directionRandomizer*randoms3; +#endif +#elif defined(CYLINDEREMITTER) +vec3 randoms2=getRandomVec3(seed.y); +vec3 randoms3=getRandomVec3(seed.z); + +float yPos=(randoms2.x-0.5)*height; +float angle=randoms2.y*PI*2.; +float inverseRadiusRangeSquared=((1.-radiusRange)*(1.-radiusRange)); +float positionRadius=radius*sqrt(inverseRadiusRangeSquared+(randoms2.z*(1.-inverseRadiusRangeSquared))); +float xPos=positionRadius*cos(angle); +float zPos=positionRadius*sin(angle); +newPosition=vec3(xPos,yPos,zPos); +#ifdef DIRECTEDCYLINDEREMITTER +newDirection=direction1+(direction2-direction1)*randoms3; +#else + +angle=angle+((randoms3.x-0.5)*PI); +newDirection=vec3(cos(angle),randoms3.y-0.5,sin(angle)); +newDirection=normalize(newDirection); +#endif +#elif defined(CONEEMITTER) +vec3 randoms2=getRandomVec3(seed.y); +float s=2.0*PI*randoms2.x; +#ifdef CONEEMITTERSPAWNPOINT +float h=0.0001; +#else +float h=randoms2.y*height.y; + +h=1.-h*h; +#endif +float lRadius=radius.x-radius.x*randoms2.z*radius.y; +lRadius=lRadius*h; +float randX=lRadius*sin(s); +float randZ=lRadius*cos(s); +float randY=h*height.x; +newPosition=vec3(randX,randY,randZ); + +if (abs(cos(coneAngle)) == 1.0) { +newDirection=vec3(0.,1.0,0.); +} else { +vec3 randoms3=getRandomVec3(seed.z); +newDirection=normalize(newPosition+directionRandomizer*randoms3); +} +#elif defined(CUSTOMEMITTER) +newPosition=initialPosition; +outInitialPosition=initialPosition; +#else + +newPosition=vec3(0.,0.,0.); + +newDirection=2.0*(getRandomVec3(seed.w)-vec3(0.5,0.5,0.5)); +#endif +float power=emitPower.x+(emitPower.y-emitPower.x)*randoms.a; +#ifdef LOCAL +outPosition=newPosition; +#else +outPosition=(emitterWM*vec4(newPosition,1.)).xyz; +#endif +#ifdef CUSTOMEMITTER +outDirection=direction; +#ifndef BILLBOARD +outInitialDirection=direction; +#endif +#else +#ifdef LOCAL +vec3 initial=newDirection; +#else +vec3 initial=(emitterWM*vec4(newDirection,0.)).xyz; +#endif +outDirection=initial*power; +#ifndef BILLBOARD +outInitialDirection=initial; +#endif +#endif +#ifdef ANIMATESHEET +outCellIndex=cellInfos.x; +#ifdef ANIMATESHEETRANDOMSTART +outCellStartOffset=randoms.a*outLife; +#endif +#endif +#ifdef NOISE +outNoiseCoordinates1=noiseCoordinates1; +outNoiseCoordinates2=noiseCoordinates2; +#endif +} else { +float directionScale=timeDelta; +outAge=newAge; +float ageGradient=newAge/life; +#ifdef VELOCITYGRADIENTS +directionScale*=texture(velocityGradientSampler,vec2(ageGradient,0)).r; +#endif +#ifdef DRAGGRADIENTS +directionScale*=1.0-texture(dragGradientSampler,vec2(ageGradient,0)).r; +#endif +#if defined(CUSTOMEMITTER) +outPosition=position+(direction-position)*ageGradient; +outInitialPosition=initialPosition; +#else +outPosition=position+direction*directionScale; +#endif +outLife=life; +outSeed=seed; +#ifndef COLORGRADIENTS +outColor=color; +#endif +#ifdef SIZEGRADIENTS +outSize.x=texture(sizeGradientSampler,vec2(ageGradient,0)).r; +outSize.yz=size.yz; +#else +outSize=size; +#endif +#ifndef BILLBOARD +outInitialDirection=initialDirection; +#endif +#ifdef CUSTOMEMITTER +outDirection=direction; +#else +vec3 updatedDirection=direction+gravity*timeDelta; +#ifdef LIMITVELOCITYGRADIENTS +float limitVelocity=texture(limitVelocityGradientSampler,vec2(ageGradient,0)).r; +float currentVelocity=length(updatedDirection); +if (currentVelocity>limitVelocity) { +updatedDirection=updatedDirection*limitVelocityDamping; +} +#endif +outDirection=updatedDirection; +#ifdef NOISE +float fetchedR=texture(noiseSampler,vec2(noiseCoordinates1.x,noiseCoordinates1.y)*vec2(0.5)+vec2(0.5)).r; +float fetchedG=texture(noiseSampler,vec2(noiseCoordinates1.z,noiseCoordinates2.x)*vec2(0.5)+vec2(0.5)).r; +float fetchedB=texture(noiseSampler,vec2(noiseCoordinates2.y,noiseCoordinates2.z)*vec2(0.5)+vec2(0.5)).r; +vec3 force=vec3(2.*fetchedR-1.,2.*fetchedG-1.,2.*fetchedB-1.)*noiseStrength; +outDirection=outDirection+force*timeDelta; +outNoiseCoordinates1=noiseCoordinates1; +outNoiseCoordinates2=noiseCoordinates2; +#endif +#endif +#ifdef ANGULARSPEEDGRADIENTS +float angularSpeed=texture(angularSpeedGradientSampler,vec2(ageGradient,0)).r; +outAngle=angle+angularSpeed*timeDelta; +#else +outAngle=vec2(angle.x+angle.y*timeDelta,angle.y); +#endif +#ifdef ANIMATESHEET +float offsetAge=outAge; +float dist=cellInfos.y-cellInfos.x; +#ifdef ANIMATESHEETRANDOMSTART +outCellStartOffset=cellStartOffset; +offsetAge+=cellStartOffset; +#else +float cellStartOffset=0.; +#endif +float ratio=clamp(mod(cellStartOffset+cellInfos.z*offsetAge,life)/life,0.,1.0); +outCellIndex=float(int(cellInfos.x+ratio*dist)); +#endif +} +}`;ze.a.ShadersStore.gpuUpdateParticlesVertexShader=Nm;var wm=`#ifdef CLIPPLANE +in float fClipDistance; +#endif +#ifdef CLIPPLANE2 +in float fClipDistance2; +#endif +#ifdef CLIPPLANE3 +in float fClipDistance3; +#endif +#ifdef CLIPPLANE4 +in float fClipDistance4; +#endif +#ifdef CLIPPLANE5 +in float fClipDistance5; +#endif +#ifdef CLIPPLANE6 +in float fClipDistance6; +#endif`;ze.a.IncludesShadersStore.clipPlaneFragmentDeclaration2=wm;var Fm=`#version 300 es +uniform sampler2D diffuseSampler; +in vec2 vUV; +in vec4 vColor; +out vec4 outFragColor; +#include +#include +#include +#include +void main() { +#include +vec4 textureColor=texture(diffuseSampler,vUV); +outFragColor=textureColor*vColor; +#ifdef BLENDMULTIPLYMODE +float alpha=vColor.a*textureColor.a; +outFragColor.rgb=outFragColor.rgb*alpha+vec3(1.0)*(1.0-alpha); +#endif + + +#ifdef IMAGEPROCESSINGPOSTPROCESS +outFragColor.rgb=toLinearSpace(outFragColor.rgb); +#else +#ifdef IMAGEPROCESSING +outFragColor.rgb=toLinearSpace(outFragColor.rgb); +outFragColor=applyImageProcessing(outFragColor); +#endif +#endif +} +`;ze.a.ShadersStore.gpuRenderParticlesPixelShader=Fm;var Bm=`#ifdef CLIPPLANE +uniform vec4 vClipPlane; +out float fClipDistance; +#endif +#ifdef CLIPPLANE2 +uniform vec4 vClipPlane2; +out float fClipDistance2; +#endif +#ifdef CLIPPLANE3 +uniform vec4 vClipPlane3; +out float fClipDistance3; +#endif +#ifdef CLIPPLANE4 +uniform vec4 vClipPlane4; +out float fClipDistance4; +#endif +#ifdef CLIPPLANE5 +uniform vec4 vClipPlane5; +out float fClipDistance5; +#endif +#ifdef CLIPPLANE6 +uniform vec4 vClipPlane6; +out float fClipDistance6; +#endif`;ze.a.IncludesShadersStore.clipPlaneVertexDeclaration2=Bm;var Um=`#version 300 es +uniform mat4 view; +uniform mat4 projection; +uniform vec2 translationPivot; +uniform vec3 worldOffset; +#ifdef LOCAL +uniform mat4 emitterWM; +#endif + +in vec3 position; +in float age; +in float life; +in vec3 size; +#ifndef BILLBOARD +in vec3 initialDirection; +#endif +#ifdef BILLBOARDSTRETCHED +in vec3 direction; +#endif +in float angle; +#ifdef ANIMATESHEET +in float cellIndex; +#endif +in vec2 offset; +in vec2 uv; +out vec2 vUV; +out vec4 vColor; +out vec3 vPositionW; +#if defined(BILLBOARD) && !defined(BILLBOARDY) && !defined(BILLBOARDSTRETCHED) +uniform mat4 invView; +#endif +#include +#ifdef COLORGRADIENTS +uniform sampler2D colorGradientSampler; +#else +uniform vec4 colorDead; +in vec4 color; +#endif +#ifdef ANIMATESHEET +uniform vec3 sheetInfos; +#endif +#ifdef BILLBOARD +uniform vec3 eyePosition; +#endif +vec3 rotate(vec3 yaxis,vec3 rotatedCorner) { +vec3 xaxis=normalize(cross(vec3(0.,1.0,0.),yaxis)); +vec3 zaxis=normalize(cross(yaxis,xaxis)); +vec3 row0=vec3(xaxis.x,xaxis.y,xaxis.z); +vec3 row1=vec3(yaxis.x,yaxis.y,yaxis.z); +vec3 row2=vec3(zaxis.x,zaxis.y,zaxis.z); +mat3 rotMatrix=mat3(row0,row1,row2); +vec3 alignedCorner=rotMatrix*rotatedCorner; +#ifdef LOCAL +return ((emitterWM*vec4(position,1.0)).xyz+worldOffset)+alignedCorner; +#else +return (position+worldOffset)+alignedCorner; +#endif +} +#ifdef BILLBOARDSTRETCHED +vec3 rotateAlign(vec3 toCamera,vec3 rotatedCorner) { +vec3 normalizedToCamera=normalize(toCamera); +vec3 normalizedCrossDirToCamera=normalize(cross(normalize(direction),normalizedToCamera)); +vec3 crossProduct=normalize(cross(normalizedToCamera,normalizedCrossDirToCamera)); +vec3 row0=vec3(normalizedCrossDirToCamera.x,normalizedCrossDirToCamera.y,normalizedCrossDirToCamera.z); +vec3 row1=vec3(crossProduct.x,crossProduct.y,crossProduct.z); +vec3 row2=vec3(normalizedToCamera.x,normalizedToCamera.y,normalizedToCamera.z); +mat3 rotMatrix=mat3(row0,row1,row2); +vec3 alignedCorner=rotMatrix*rotatedCorner; +#ifdef LOCAL +return ((emitterWM*vec4(position,1.0)).xyz+worldOffset)+alignedCorner; +#else +return (position+worldOffset)+alignedCorner; +#endif +} +#endif +void main() { +#ifdef ANIMATESHEET +float rowOffset=floor(cellIndex/sheetInfos.z); +float columnOffset=cellIndex-rowOffset*sheetInfos.z; +vec2 uvScale=sheetInfos.xy; +vec2 uvOffset=vec2(uv.x ,1.0-uv.y); +vUV=(uvOffset+vec2(columnOffset,rowOffset))*uvScale; +#else +vUV=uv; +#endif +float ratio=age/life; +#ifdef COLORGRADIENTS +vColor=texture(colorGradientSampler,vec2(ratio,0)); +#else +vColor=color*vec4(1.0-ratio)+colorDead*vec4(ratio); +#endif +vec2 cornerPos=(offset-translationPivot)*size.yz*size.x+translationPivot; +#ifdef BILLBOARD +vec4 rotatedCorner; +rotatedCorner.w=0.; +#ifdef BILLBOARDY +rotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle); +rotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle); +rotatedCorner.y=0.; +vec3 yaxis=(position+worldOffset)-eyePosition; +yaxis.y=0.; +vPositionW=rotate(normalize(yaxis),rotatedCorner.xyz); +vec4 viewPosition=(view*vec4(vPositionW,1.0)); +#elif defined(BILLBOARDSTRETCHED) +rotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle); +rotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle); +rotatedCorner.z=0.; +vec3 toCamera=(position+worldOffset)-eyePosition; +vPositionW=rotateAlign(toCamera,rotatedCorner.xyz); +vec4 viewPosition=(view*vec4(vPositionW,1.0)); +#else + +rotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle); +rotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle); +rotatedCorner.z=0.; + +#ifdef LOCAL +vec4 viewPosition=view*vec4(((emitterWM*vec4(position,1.0)).xyz+worldOffset),1.0)+rotatedCorner; +#else +vec4 viewPosition=view*vec4((position+worldOffset),1.0)+rotatedCorner; +#endif +vPositionW=(invView*viewPosition).xyz; +#endif +#else + +vec3 rotatedCorner; +rotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle); +rotatedCorner.y=0.; +rotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle); +vec3 yaxis=normalize(initialDirection); +vPositionW=rotate(yaxis,rotatedCorner); + +vec4 viewPosition=view*vec4(vPositionW,1.0); +#endif +gl_Position=projection*viewPosition; + +#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6) +vec4 worldPos=vec4(vPositionW,1.0); +#endif +#include +}`;ze.a.ShadersStore.gpuRenderParticlesVertexShader=Um;var or=function(r){function t(e,n,i,o,a){o===void 0&&(o=!1),a===void 0&&(a=null);var s=r.call(this,e)||this;s.layerMask=268435455,s._accumulatedCount=0,s._targetIndex=0,s._currentRenderId=-1,s._started=!1,s._stopped=!1,s._timeDelta=0,s._actualFrame=0,s._rawTextureWidth=256,s.onDisposeObservable=new R.c,s.onStoppedObservable=new R.c,s.forceDepthWrite=!1,s._preWarmDone=!1,s.isLocal=!1,s._onBeforeDrawParticlesObservable=null,i&&i.getClassName()!=="Scene"?(s._engine=i,s.defaultProjectionMatrix=u.a.PerspectiveFovLH(.8,1,.1,100)):(s._scene=i||te.a.LastCreatedScene,s._engine=s._scene.getEngine(),s.uniqueId=s._scene.getUniqueId(),s._scene.particleSystems.push(s)),s._customEffect={0:a},s._attachImageProcessingConfiguration(null),n.randomTextureSize||delete n.randomTextureSize;var d=Object(c.a)({capacity:5e4,randomTextureSize:s._engine.getCaps().maxTextureSize},n),p=n;isFinite(p)&&(d.capacity=p),s._capacity=d.capacity,s._activeCount=d.capacity,s._currentActiveCount=0,s._isAnimationSheetEnabled=o,s._updateEffectOptions={attributes:["position","initialPosition","age","life","seed","size","color","direction","initialDirection","angle","cellIndex","cellStartOffset","noiseCoordinates1","noiseCoordinates2"],uniformsNames:["currentCount","timeDelta","emitterWM","lifeTime","color1","color2","sizeRange","scaleRange","gravity","emitPower","direction1","direction2","minEmitBox","maxEmitBox","radius","directionRandomizer","height","coneAngle","stopFactor","angleRange","radiusRange","cellInfos","noiseStrength","limitVelocityDamping"],uniformBuffersNames:[],samplers:["randomSampler","randomSampler2","sizeGradientSampler","angularSpeedGradientSampler","velocityGradientSampler","limitVelocityGradientSampler","noiseSampler","dragGradientSampler"],defines:"",fallbacks:null,onCompiled:null,onError:null,indexParameters:null,maxSimultaneousLights:0,transformFeedbackVaryings:[]},s.particleEmitterType=new Nr;for(var b=Math.min(s._engine.getCaps().maxTextureSize,d.randomTextureSize),x=[],O=0;O1},enumerable:!1,configurable:!0}),t.prototype.getCapacity=function(){return this._capacity},Object.defineProperty(t.prototype,"activeParticleCount",{get:function(){return this._activeCount},set:function(e){this._activeCount=Math.min(e,this._capacity)},enumerable:!1,configurable:!0}),t.prototype.isReady=function(){return this._updateEffect?!!(this.emitter&&this._updateEffect.isReady()&&(!this._imageProcessingConfiguration||this._imageProcessingConfiguration.isReady())&&this._getEffect().isReady()&&this.particleTexture&&this.particleTexture.isReady()):(this._recreateUpdateEffect(),this._recreateRenderEffect(),!1)},t.prototype.isStarted=function(){return this._started},t.prototype.isStopped=function(){return this._stopped},t.prototype.isStopping=function(){return!1},t.prototype.getActiveCount=function(){return this._currentActiveCount},t.prototype.start=function(e){var n=this;if(e===void 0&&(e=this.startDelay),!this.targetStopDuration&&this._hasTargetStopDurationDependantGradient())throw"Particle system started with a targetStopDuration dependant gradient (eg. startSizeGradients) but no targetStopDuration set";e?setTimeout(function(){n.start(0)},e):(this._started=!0,this._stopped=!1,this._preWarmDone=!1,this.beginAnimationOnStart&&this.animations&&this.animations.length>0&&this._scene&&this._scene.beginAnimation(this,this.beginAnimationFrom,this.beginAnimationTo,this.beginAnimationLoop))},t.prototype.stop=function(){this._stopped||(this._stopped=!0)},t.prototype.reset=function(){this._releaseBuffers(),this._releaseVAOs(),this._currentActiveCount=0,this._targetIndex=0},t.prototype.getClassName=function(){return"GPUParticleSystem"},t.prototype.getCustomEffect=function(e){var n;return e===void 0&&(e=0),(n=this._customEffect[e])!==null&&n!==void 0?n:this._customEffect[0]},t.prototype.setCustomEffect=function(e,n){n===void 0&&(n=0),this._customEffect[n]=e},Object.defineProperty(t.prototype,"onBeforeDrawParticlesObservable",{get:function(){return this._onBeforeDrawParticlesObservable||(this._onBeforeDrawParticlesObservable=new R.c),this._onBeforeDrawParticlesObservable},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"vertexShaderName",{get:function(){return"gpuRenderParticles"},enumerable:!1,configurable:!0}),t.prototype._removeGradientAndTexture=function(e,n,i){return r.prototype._removeGradientAndTexture.call(this,e,n,i),this._releaseBuffers(),this},t.prototype.addColorGradient=function(e,n,i){this._colorGradients||(this._colorGradients=[]);var o=new Rc(e,n);return this._colorGradients.push(o),this._refreshColorGradient(!0),this._releaseBuffers(),this},t.prototype._refreshColorGradient=function(e){e===void 0&&(e=!1),this._colorGradients&&(e&&this._colorGradients.sort(function(n,i){return n.gradienti.gradient?1:0}),this._colorGradientsTexture&&(this._colorGradientsTexture.dispose(),this._colorGradientsTexture=null))},t.prototype.forceRefreshGradients=function(){this._refreshColorGradient(),this._refreshFactorGradient(this._sizeGradients,"_sizeGradientsTexture"),this._refreshFactorGradient(this._angularSpeedGradients,"_angularSpeedGradientsTexture"),this._refreshFactorGradient(this._velocityGradients,"_velocityGradientsTexture"),this._refreshFactorGradient(this._limitVelocityGradients,"_limitVelocityGradientsTexture"),this._refreshFactorGradient(this._dragGradients,"_dragGradientsTexture"),this.reset()},t.prototype.removeColorGradient=function(e){return this._removeGradientAndTexture(e,this._colorGradients,this._colorGradientsTexture),this._colorGradientsTexture=null,this},t.prototype._addFactorGradient=function(e,n,i){var o=new Oc(n,i);e.push(o),this._releaseBuffers()},t.prototype.addSizeGradient=function(e,n){return this._sizeGradients||(this._sizeGradients=[]),this._addFactorGradient(this._sizeGradients,e,n),this._refreshFactorGradient(this._sizeGradients,"_sizeGradientsTexture",!0),this._releaseBuffers(),this},t.prototype.removeSizeGradient=function(e){return this._removeGradientAndTexture(e,this._sizeGradients,this._sizeGradientsTexture),this._sizeGradientsTexture=null,this},t.prototype._refreshFactorGradient=function(e,n,i){i===void 0&&(i=!1),e&&(i&&e.sort(function(o,a){return o.gradienta.gradient?1:0}),this[n]&&(this[n].dispose(),this[n]=null))},t.prototype.addAngularSpeedGradient=function(e,n){return this._angularSpeedGradients||(this._angularSpeedGradients=[]),this._addFactorGradient(this._angularSpeedGradients,e,n),this._refreshFactorGradient(this._angularSpeedGradients,"_angularSpeedGradientsTexture",!0),this._releaseBuffers(),this},t.prototype.removeAngularSpeedGradient=function(e){return this._removeGradientAndTexture(e,this._angularSpeedGradients,this._angularSpeedGradientsTexture),this._angularSpeedGradientsTexture=null,this},t.prototype.addVelocityGradient=function(e,n){return this._velocityGradients||(this._velocityGradients=[]),this._addFactorGradient(this._velocityGradients,e,n),this._refreshFactorGradient(this._velocityGradients,"_velocityGradientsTexture",!0),this._releaseBuffers(),this},t.prototype.removeVelocityGradient=function(e){return this._removeGradientAndTexture(e,this._velocityGradients,this._velocityGradientsTexture),this._velocityGradientsTexture=null,this},t.prototype.addLimitVelocityGradient=function(e,n){return this._limitVelocityGradients||(this._limitVelocityGradients=[]),this._addFactorGradient(this._limitVelocityGradients,e,n),this._refreshFactorGradient(this._limitVelocityGradients,"_limitVelocityGradientsTexture",!0),this._releaseBuffers(),this},t.prototype.removeLimitVelocityGradient=function(e){return this._removeGradientAndTexture(e,this._limitVelocityGradients,this._limitVelocityGradientsTexture),this._limitVelocityGradientsTexture=null,this},t.prototype.addDragGradient=function(e,n){return this._dragGradients||(this._dragGradients=[]),this._addFactorGradient(this._dragGradients,e,n),this._refreshFactorGradient(this._dragGradients,"_dragGradientsTexture",!0),this._releaseBuffers(),this},t.prototype.removeDragGradient=function(e){return this._removeGradientAndTexture(e,this._dragGradients,this._dragGradientsTexture),this._dragGradientsTexture=null,this},t.prototype.addEmitRateGradient=function(e,n,i){return this},t.prototype.removeEmitRateGradient=function(e){return this},t.prototype.addStartSizeGradient=function(e,n,i){return this},t.prototype.removeStartSizeGradient=function(e){return this},t.prototype.addColorRemapGradient=function(e,n,i){return this},t.prototype.removeColorRemapGradient=function(){return this},t.prototype.addAlphaRemapGradient=function(e,n,i){return this},t.prototype.removeAlphaRemapGradient=function(){return this},t.prototype.addRampGradient=function(e,n){return this},t.prototype.removeRampGradient=function(){return this},t.prototype.getRampGradients=function(){return null},Object.defineProperty(t.prototype,"useRampGradients",{get:function(){return!1},set:function(e){},enumerable:!1,configurable:!0}),t.prototype.addLifeTimeGradient=function(e,n,i){return this},t.prototype.removeLifeTimeGradient=function(e){return this},t.prototype._reset=function(){this._releaseBuffers()},t.prototype._createUpdateVAO=function(e){var n={};n.position=e.createVertexBuffer("position",0,3);var i=3;this.particleEmitterType instanceof wr&&(n.initialPosition=e.createVertexBuffer("initialPosition",i,3),i+=3),n.age=e.createVertexBuffer("age",i,1),i+=1,n.life=e.createVertexBuffer("life",i,1),i+=1,n.seed=e.createVertexBuffer("seed",i,4),i+=4,n.size=e.createVertexBuffer("size",i,3),i+=3,this._colorGradientsTexture||(n.color=e.createVertexBuffer("color",i,4),i+=4),n.direction=e.createVertexBuffer("direction",i,3),i+=3,this._isBillboardBased||(n.initialDirection=e.createVertexBuffer("initialDirection",i,3),i+=3),this._angularSpeedGradientsTexture?(n.angle=e.createVertexBuffer("angle",i,1),i+=1):(n.angle=e.createVertexBuffer("angle",i,2),i+=2),this._isAnimationSheetEnabled&&(n.cellIndex=e.createVertexBuffer("cellIndex",i,1),i+=1,this.spriteRandomStartCell&&(n.cellStartOffset=e.createVertexBuffer("cellStartOffset",i,1),i+=1)),this.noiseTexture&&(n.noiseCoordinates1=e.createVertexBuffer("noiseCoordinates1",i,3),i+=3,n.noiseCoordinates2=e.createVertexBuffer("noiseCoordinates2",i,3),i+=3);var o=this._engine.recordVertexArrayObject(n,null,this._updateEffect);return this._engine.bindArrayBuffer(null),o},t.prototype._createRenderVAO=function(e,n){var i={};i.position=e.createVertexBuffer("position",0,3,this._attributesStrideSize,!0);var o=3;this.particleEmitterType instanceof wr&&(o+=3),i.age=e.createVertexBuffer("age",o,1,this._attributesStrideSize,!0),o+=1,i.life=e.createVertexBuffer("life",o,1,this._attributesStrideSize,!0),o+=5,i.size=e.createVertexBuffer("size",o,3,this._attributesStrideSize,!0),o+=3,this._colorGradientsTexture||(i.color=e.createVertexBuffer("color",o,4,this._attributesStrideSize,!0),o+=4),this.billboardMode===ln.BILLBOARDMODE_STRETCHED&&(i.direction=e.createVertexBuffer("direction",o,3,this._attributesStrideSize,!0)),o+=3,this._isBillboardBased||(i.initialDirection=e.createVertexBuffer("initialDirection",o,3,this._attributesStrideSize,!0),o+=3),i.angle=e.createVertexBuffer("angle",o,1,this._attributesStrideSize,!0),this._angularSpeedGradientsTexture?o++:o+=2,this._isAnimationSheetEnabled&&(i.cellIndex=e.createVertexBuffer("cellIndex",o,1,this._attributesStrideSize,!0),o+=1,this.spriteRandomStartCell&&(i.cellStartOffset=e.createVertexBuffer("cellStartOffset",o,1,this._attributesStrideSize,!0),o+=1)),this.noiseTexture&&(i.noiseCoordinates1=e.createVertexBuffer("noiseCoordinates1",o,3,this._attributesStrideSize,!0),o+=3,i.noiseCoordinates2=e.createVertexBuffer("noiseCoordinates2",o,3,this._attributesStrideSize,!0),o+=3),i.offset=n.createVertexBuffer("offset",0,2),i.uv=n.createVertexBuffer("uv",2,2);var a=this._engine.recordVertexArrayObject(i,null,this._getEffect());return this._engine.bindArrayBuffer(null),a},t.prototype._initialize=function(e){if(e===void 0&&(e=!1),!this._buffer0||e){var n=this._engine,i=new Array;this._attributesStrideSize=21,this._targetIndex=0,this.particleEmitterType instanceof wr&&(this._attributesStrideSize+=3),this.isBillboardBased||(this._attributesStrideSize+=3),this._colorGradientsTexture&&(this._attributesStrideSize-=4),this._angularSpeedGradientsTexture&&(this._attributesStrideSize-=1),this._isAnimationSheetEnabled&&(this._attributesStrideSize+=1,this.spriteRandomStartCell&&(this._attributesStrideSize+=1)),this.noiseTexture&&(this._attributesStrideSize+=6);for(var o=this.particleEmitterType instanceof wr,a=u.c.Vector3[0],s=0;s=this.targetStopDuration&&this.stop()},t.prototype._createFactorGradientTexture=function(e,n){var i=this[n];if(e&&e.length&&!i){for(var o=new Float32Array(this._rawTextureWidth),a=0;a1){var a=0|this._accumulatedCount;this._accumulatedCount-=a,this._currentActiveCount=Math.min(this._activeCount,this._currentActiveCount+a)}if(!this._currentActiveCount)return 0;this._engine.enableEffect(this._updateEffect);var s,d=this._engine;if(!d.setState)throw new Error("GPU particles cannot work with a full Engine. ThinEngine is not supported");if(this._updateEffect.setFloat("currentCount",this._currentActiveCount),this._updateEffect.setFloat("timeDelta",this._timeDelta),this._updateEffect.setFloat("stopFactor",this._stopped?0:1),this._updateEffect.setTexture("randomSampler",this._randomTexture),this._updateEffect.setTexture("randomSampler2",this._randomTexture2),this._updateEffect.setFloat2("lifeTime",this.minLifeTime,this.maxLifeTime),this._updateEffect.setFloat2("emitPower",this.minEmitPower,this.maxEmitPower),this._colorGradientsTexture||(this._updateEffect.setDirectColor4("color1",this.color1),this._updateEffect.setDirectColor4("color2",this.color2)),this._updateEffect.setFloat2("sizeRange",this.minSize,this.maxSize),this._updateEffect.setFloat4("scaleRange",this.minScaleX,this.maxScaleX,this.minScaleY,this.maxScaleY),this._updateEffect.setFloat4("angleRange",this.minAngularSpeed,this.maxAngularSpeed,this.minInitialRotation,this.maxInitialRotation),this._updateEffect.setVector3("gravity",this.gravity),this._sizeGradientsTexture&&this._updateEffect.setTexture("sizeGradientSampler",this._sizeGradientsTexture),this._angularSpeedGradientsTexture&&this._updateEffect.setTexture("angularSpeedGradientSampler",this._angularSpeedGradientsTexture),this._velocityGradientsTexture&&this._updateEffect.setTexture("velocityGradientSampler",this._velocityGradientsTexture),this._limitVelocityGradientsTexture&&(this._updateEffect.setTexture("limitVelocityGradientSampler",this._limitVelocityGradientsTexture),this._updateEffect.setFloat("limitVelocityDamping",this.limitVelocityDamping)),this._dragGradientsTexture&&this._updateEffect.setTexture("dragGradientSampler",this._dragGradientsTexture),this.particleEmitterType&&this.particleEmitterType.applyToShader(this._updateEffect),this._isAnimationSheetEnabled&&this._updateEffect.setFloat3("cellInfos",this.startSpriteCellID,this.endSpriteCellID,this.spriteCellChangeSpeed),this.noiseTexture&&(this._updateEffect.setTexture("noiseSampler",this.noiseTexture),this._updateEffect.setVector3("noiseStrength",this.noiseStrength)),this.emitter.position)s=this.emitter.getWorldMatrix();else{var p=this.emitter;s=u.a.Translation(p.x,p.y,p.z)}if(this.isLocal||this._updateEffect.setMatrix("emitterWM",s),this._engine.bindVertexArrayObject(this._updateVAO[this._targetIndex],null),d.bindTransformFeedbackBuffer(this._targetBuffer.getBuffer()),d.setRasterizerState(!1),d.beginTransformFeedback(!0),d.drawArraysType(h.a.MATERIAL_PointListDrawMode,0,this._currentActiveCount),d.endTransformFeedback(),d.setRasterizerState(!0),d.bindTransformFeedbackBuffer(null),!e){var b=this._getEffect();this._engine.enableEffect(b);var x=((n=this._scene)===null||n===void 0?void 0:n.getViewMatrix())||u.a.IdentityReadOnly;if(b.setMatrix("view",x),b.setMatrix("projection",(i=this.defaultProjectionMatrix)!==null&&i!==void 0?i:this._scene.getProjectionMatrix()),b.setTexture("diffuseSampler",this.particleTexture),b.setVector2("translationPivot",this.translationPivot),b.setVector3("worldOffset",this.worldOffset),this.isLocal&&b.setMatrix("emitterWM",s),this._colorGradientsTexture?b.setTexture("colorGradientSampler",this._colorGradientsTexture):b.setDirectColor4("colorDead",this.colorDead),this._isAnimationSheetEnabled&&this.particleTexture){var O=this.particleTexture.getBaseSize();b.setFloat3("sheetInfos",this.spriteCellWidth/O.width,this.spriteCellHeight/O.height,O.width/this.spriteCellWidth)}if(this._isBillboardBased&&this._scene){var B=this._scene.activeCamera;b.setVector3("eyePosition",B.globalPosition)}var F=b.defines;if(this._scene&&(this._scene.clipPlane||this._scene.clipPlane2||this._scene.clipPlane3||this._scene.clipPlane4||this._scene.clipPlane5||this._scene.clipPlane6)&&et.a.BindClipPlane(b,this._scene),F.indexOf("#define BILLBOARDMODE_ALL")>=0){var z=x.clone();z.invert(),b.setMatrix("invView",z)}switch(this._imageProcessingConfiguration&&!this._imageProcessingConfiguration.applyByPostProcess&&this._imageProcessingConfiguration.bind(b),this.blendMode){case ln.BLENDMODE_ADD:this._engine.setAlphaMode(h.a.ALPHA_ADD);break;case ln.BLENDMODE_ONEONE:this._engine.setAlphaMode(h.a.ALPHA_ONEONE);break;case ln.BLENDMODE_STANDARD:this._engine.setAlphaMode(h.a.ALPHA_COMBINE);break;case ln.BLENDMODE_MULTIPLY:this._engine.setAlphaMode(h.a.ALPHA_MULTIPLY)}this.forceDepthWrite&&d.setDepthWrite(!0),this._engine.bindVertexArrayObject(this._renderVAO[this._targetIndex],null),this._onBeforeDrawParticlesObservable&&this._onBeforeDrawParticlesObservable.notifyObservers(b),this._engine.drawArraysType(h.a.MATERIAL_TriangleFanDrawMode,0,4,this._currentActiveCount),this._engine.setAlphaMode(h.a.ALPHA_DISABLE)}this._targetIndex++,this._targetIndex===2&&(this._targetIndex=0);var J=this._sourceBuffer;return this._sourceBuffer=this._targetBuffer,this._targetBuffer=J,this._currentActiveCount},t.prototype.rebuild=function(){this._initialize(!0)},t.prototype._releaseBuffers=function(){this._buffer0&&(this._buffer0.dispose(),this._buffer0=null),this._buffer1&&(this._buffer1.dispose(),this._buffer1=null),this._spriteBuffer&&(this._spriteBuffer.dispose(),this._spriteBuffer=null)},t.prototype._releaseVAOs=function(){if(this._updateVAO){for(var e=0;e-1&&this._scene.particleSystems.splice(n,1)}this._releaseBuffers(),this._releaseVAOs(),this._colorGradientsTexture&&(this._colorGradientsTexture.dispose(),this._colorGradientsTexture=null),this._sizeGradientsTexture&&(this._sizeGradientsTexture.dispose(),this._sizeGradientsTexture=null),this._angularSpeedGradientsTexture&&(this._angularSpeedGradientsTexture.dispose(),this._angularSpeedGradientsTexture=null),this._velocityGradientsTexture&&(this._velocityGradientsTexture.dispose(),this._velocityGradientsTexture=null),this._limitVelocityGradientsTexture&&(this._limitVelocityGradientsTexture.dispose(),this._limitVelocityGradientsTexture=null),this._dragGradientsTexture&&(this._dragGradientsTexture.dispose(),this._dragGradientsTexture=null),this._randomTexture&&(this._randomTexture.dispose(),this._randomTexture=null),this._randomTexture2&&(this._randomTexture2.dispose(),this._randomTexture2=null),e&&this.particleTexture&&(this.particleTexture.dispose(),this.particleTexture=null),e&&this.noiseTexture&&(this.noiseTexture.dispose(),this.noiseTexture=null),this.onStoppedObservable.clear(),this.onDisposeObservable.notifyObservers(this),this.onDisposeObservable.clear()},t.prototype.clone=function(e,n){var i=this.serialize(),o=t.Parse(i,this._scene||this._engine,""),a=Object(c.a)({},this._customEffect);return o.name=e,o._customEffect=a,n===void 0&&(n=this.emitter),o.emitter=n,o.noiseTexture=this.noiseTexture,o},t.prototype.serialize=function(e){e===void 0&&(e=!1);var n={};return ln._Serialize(n,this,e),n.activeParticleCount=this.activeParticleCount,n.randomTextureSize=this._randomTextureSize,n},t.Parse=function(e,n,i,o){o===void 0&&(o=!1);var a=new t(e.name,{capacity:e.capacity,randomTextureSize:e.randomTextureSize},n);return e.activeParticleCount&&(a.activeParticleCount=e.activeParticleCount),ln._Parse(e,a,n,i),e.preventAutoStart&&(a.preventAutoStart=e.preventAutoStart),o||a.preventAutoStart||a.start(),a},t}(vo),Sa=function(){function r(){this.systems=new Array}return Object.defineProperty(r.prototype,"emitterNode",{get:function(){return this._emitterNode},enumerable:!1,configurable:!0}),r.prototype.setEmitterAsSphere=function(t,e,n){this._emitterNode&&this._emitterNode.dispose(),this._emitterCreationOptions={kind:"Sphere",options:t,renderingGroupId:e};var i=Un.a.CreateSphere("emitterSphere",{diameter:t.diameter,segments:t.segments},n);i.renderingGroupId=e;var o=new Ft.a("emitterSphereMaterial",n);o.emissiveColor=t.color,i.material=o;for(var a=0,s=this.systems;a0&&n.set(this._uvs32,Oe.b.UVKind),this._colors32.length>0&&n.set(this._colors32,Oe.b.ColorKind),n.applyToMesh(this.mesh,this._updatable),this.mesh.isPickable=this._pickable,this._pickable){for(var i=0,o=0;oB?B:i,n=Math.round(B/i),o=0):n=n>B?B:n;for(var F=[],z=[],J=[],ie=[],se=[],ce=u.e.Zero(),ue=n;OB-(n=ue+Math.floor((1+o)*Math.random()))&&(n=B-O),F.length=0,z.length=0,J.length=0,ie.length=0,se.length=0;for(var fe=0,ve=3*O;ve<3*(O+n);ve++){J.push(fe);var Te=s[ve],Re=3*Te;if(F.push(a[Re],a[Re+1],a[Re+2]),z.push(b[Re],b[Re+1],b[Re+2]),d){var Ae=2*Te;ie.push(d[Ae],d[Ae+1])}if(p){var Ee=4*Te;se.push(p[Ee],p[Ee+1],p[Ee+2],p[Ee+3])}fe++}var Se,Le=this.nbParticles,xe=this._posToShape(F),Ne=this._uvsToShapeUV(ie),Me=Xe.b.Slice(J),Fe=Xe.b.Slice(se),Ye=Xe.b.Slice(z);for(ce.copyFromFloats(0,0,0),Se=0;Se65535&&(this._needs32Bits=!0)}if(this._depthSort||this._multimaterialEnabled){var ot=fe.materialIndex!==null?fe.materialIndex:0;this.depthSortedParticles.push(new Rd(B,e,o.length,ot))}return fe},r.prototype._posToShape=function(t){for(var e=[],n=0;n=this.nbParticles||!this._updatable)return[];var i=this.particles,o=this.nbParticles;if(e=this.nbParticles?this.nbParticles-1:e,this._computeBoundingBox&&(t!=0||e!=this.nbParticles-1)){var tt=this.mesh._boundingInfo;tt&&(se.copyFrom(tt.minimum),ce.copyFrom(tt.maximum))}var it=(Le=this.particles[t]._pos)/3|0;Ne=4*it,Fe=2*it;for(var lt=t;lt<=e;lt++){var Ke=this.particles[lt];this.updateParticle(Ke);var ot=Ke._model._shape,rt=Ke._model._shapeUV,qe=Ke._rotationMatrix,ht=Ke.position,Ve=Ke.rotation,Je=Ke.scaling,yt=Ke._globalPosition;if(this._depthSort&&this._depthSortParticles){var Wt=this.depthSortedParticles[lt];Wt.idx=Ke.idx,Wt.ind=Ke._ind,Wt.indicesLength=Ke._model._indicesLength,Wt.sqDistance=u.e.DistanceSquared(Ke.position,ue)}if(!Ke.alive||Ke._stillInvisible&&!Ke.isVisible)Le+=3*(Ye=ot.length),Ne+=4*Ye,Fe+=2*Ye;else{if(Ke.isVisible){Ke._stillInvisible=!1;var Nt=F[12];if(Ke.pivot.multiplyToRef(Je,Nt),this.billboard&&(Ve.x=0,Ve.y=0),(this._computeParticleRotation||this.billboard)&&Ke.getRotationMatrix(i),Ke.parentId!==null){var Qt=this.getParticleById(Ke.parentId);if(Qt){var vt=Qt._rotationMatrix,Jt=Qt._globalPosition,Xt=ht.x*vt[1]+ht.y*vt[4]+ht.z*vt[7],zt=ht.x*vt[0]+ht.y*vt[3]+ht.z*vt[6],Yt=ht.x*vt[2]+ht.y*vt[5]+ht.z*vt[8];if(yt.x=Jt.x+zt,yt.y=Jt.y+Xt,yt.z=Jt.z+Yt,this._computeParticleRotation||this.billboard){var Et=i.m;qe[0]=Et[0]*vt[0]+Et[1]*vt[3]+Et[2]*vt[6],qe[1]=Et[0]*vt[1]+Et[1]*vt[4]+Et[2]*vt[7],qe[2]=Et[0]*vt[2]+Et[1]*vt[5]+Et[2]*vt[8],qe[3]=Et[4]*vt[0]+Et[5]*vt[3]+Et[6]*vt[6],qe[4]=Et[4]*vt[1]+Et[5]*vt[4]+Et[6]*vt[7],qe[5]=Et[4]*vt[2]+Et[5]*vt[5]+Et[6]*vt[8],qe[6]=Et[8]*vt[0]+Et[9]*vt[3]+Et[10]*vt[6],qe[7]=Et[8]*vt[1]+Et[9]*vt[4]+Et[10]*vt[7],qe[8]=Et[8]*vt[2]+Et[9]*vt[5]+Et[10]*vt[8]}}else Ke.parentId=null}else yt.x=ht.x,yt.y=ht.y,yt.z=ht.z,(this._computeParticleRotation||this.billboard)&&(Et=i.m,qe[0]=Et[0],qe[1]=Et[1],qe[2]=Et[2],qe[3]=Et[4],qe[4]=Et[5],qe[5]=Et[6],qe[6]=Et[8],qe[7]=Et[9],qe[8]=Et[10]);var Mt=F[11];for(Ke.translateFromPivot?Mt.setAll(0):Mt.copyFrom(Nt),Ye=0;Ye0)for(var e=0;e0&&t.set(this._uvs32,Oe.b.UVKind);var e=0;this._colors32.length>0&&(e=1,t.set(this._colors32,Oe.b.ColorKind));var n=new De.a(this.name,this._scene);t.applyToMesh(n,this._updatable),this.mesh=n,this._positions=null,this._uvs=null,this._colors=null,this._updatable||(this.particles.length=0);var i=new Ft.a("point cloud material",this._scene);return i.emissiveColor=new M.a(e,e,e),i.disableLighting=!0,i.pointsCloud=!0,i.pointSize=this._size,n.material=i,new Promise(function(o){return o(n)})},r.prototype._addParticle=function(t,e,n,i){var o=new Md(t,e,n,i,this);return this.particles.push(o),o},r.prototype._randomUnitVector=function(t){t.position=new u.e(Math.random(),Math.random(),Math.random()),t.color=new M.b(1,1,1,1)},r.prototype._getColorIndicesForCoord=function(t,e,n,i){var o=t._groupImageData,a=n*(4*i)+4*e,s=[a,a+1,a+2,a+3],d=s[1],p=s[2],b=s[3],x=o[s[0]],O=o[d],B=o[p],F=o[b];return new M.b(x/255,O/255,B/255,F)},r.prototype._setPointsColorOrUV=function(t,e,n,i,o,a,s){n&&t.updateFacetData();var d=2*t.getBoundingInfo().boundingSphere.radius,p=t.getVerticesData(Oe.b.PositionKind),b=t.getIndices(),x=t.getVerticesData(Oe.b.UVKind),O=t.getVerticesData(Oe.b.ColorKind),B=u.e.Zero();t.computeWorldMatrix();var F=t.getWorldMatrix();if(!F.isIdentity())for(var z=0;z1&&(Ki=1),(Qi=Kr.b+Xr)<0&&(Qi=0),Qi>1&&(Qi=1),M.a.HSVtoRGBToRef(Yr,Ki,Qi,ur),jt.set(ur.r,ur.g,ur.b,1)):jt=qt.set(Math.random(),Math.random(),Math.random(),1),Nn.color=new M.b(jt.x,jt.y,jt.z,jt.w),this._colors.push(jt.x,jt.y,jt.z,jt.w))}},r.prototype._colorFromTexture=function(t,e,n){var i=this;if(t.material===null)return l.a.Warn(t.name+"has no material."),e._groupImageData=null,void this._setPointsColorOrUV(t,e,n,!0,!1);var o=t.material.getActiveTextures();if(o.length===0)return l.a.Warn(t.name+"has no useable texture."),e._groupImageData=null,void this._setPointsColorOrUV(t,e,n,!0,!1);var a=t.clone();a.setEnabled(!1),this._promises.push(new Promise(function(s){Wn.a.WhenAllReady(o,function(){var d=e._textureNb;return d<0&&(d=0),d>o.length-1&&(d=o.length-1),e._groupImageData=o[d].readPixels(),e._groupImgWidth=o[d].getSize().width,e._groupImgHeight=o[d].getSize().height,i._setPointsColorOrUV(a,e,n,!0,!0),a.dispose(),s()})}))},r.prototype._calculateDensity=function(t,e,n){for(var i,o,a,s,d,p,b,x,O,B,F,z,J,ie,se,ce,ue,fe=new Array,ve=u.e.Zero(),Te=u.e.Zero(),Re=u.e.Zero(),Ae=u.e.Zero(),Ee=u.e.Zero(),Se=u.e.Zero(),Le=new Array,xe=0,Ne=n.length/3,Me=0;Me0&&(fe=fe.map(function(lt){return lt+tt})),Me=0;Me3)&&(a=En.Random);var s=t.getVerticesData(Oe.b.PositionKind),d=t.getIndices();this._groups.push(this._groupCounter);var p=new Aa(this._groupCounter,null);switch(p._groupDensity=this._calculateDensity(e,s,d),a===En.Color?p._textureNb=i||0:i=i||new M.b(1,1,1,1),a){case En.Color:this._colorFromTexture(t,p,!1);break;case En.UV:this._setPointsColorOrUV(t,p,!1,!1,!1);break;case En.Random:this._setPointsColorOrUV(t,p,!1);break;case En.Stated:this._setPointsColorOrUV(t,p,!1,void 0,void 0,i,o)}return this.nbParticles+=e,this._groupCounter++,this._groupCounter-1},r.prototype.addVolumePoints=function(t,e,n,i,o){var a=n||En.Random;(isNaN(a)||a<0||a>3)&&(a=En.Random);var s=t.getVerticesData(Oe.b.PositionKind),d=t.getIndices();this._groups.push(this._groupCounter);var p=new Aa(this._groupCounter,null);switch(p._groupDensity=this._calculateDensity(e,s,d),a===En.Color?p._textureNb=i||0:i=i||new M.b(1,1,1,1),a){case En.Color:this._colorFromTexture(t,p,!0);break;case En.UV:this._setPointsColorOrUV(t,p,!0,!1,!1);break;case En.Random:this._setPointsColorOrUV(t,p,!0);break;case En.Stated:this._setPointsColorOrUV(t,p,!0,void 0,void 0,i,o)}return this.nbParticles+=e,this._groupCounter++,this._groupCounter-1},r.prototype.setParticles=function(t,e,n){if(t===void 0&&(t=0),e===void 0&&(e=this.nbParticles-1),n===void 0&&(n=!0),!this._updatable||!this._isReady)return this;this.beforeUpdateParticles(t,e,n);var i=u.c.Matrix[0],o=this.mesh,a=this._colors32,s=this._positions32,d=this._uvs32,p=u.c.Vector3,b=p[5].copyFromFloats(1,0,0),x=p[6].copyFromFloats(0,1,0),O=p[7].copyFromFloats(0,0,1),B=p[8].setAll(Number.MAX_VALUE),F=p[9].setAll(-Number.MAX_VALUE);u.a.IdentityToRef(i);var z=0;if(this.mesh.isFacetDataEnabled&&(this._computeBoundingBox=!0),e=e>=this.nbParticles?this.nbParticles-1:e,this._computeBoundingBox&&(t!=0||e!=this.nbParticles-1)){var J=this.mesh._boundingInfo;J&&(B.copyFrom(J.minimum),F.copyFrom(J.maximum))}z=0;for(var ie=0,se=0,ce=0,ue=t;ue<=e;ue++){var fe=this.particles[ue];ie=3*(z=fe.idx),se=4*z,ce=2*z,this.updateParticle(fe);var ve=fe._rotationMatrix,Te=fe.position,Re=fe._globalPosition;if(this._computeParticleRotation&&fe.getRotationMatrix(i),fe.parentId!==null){var Ae=this.particles[fe.parentId],Ee=Ae._rotationMatrix,Se=Ae._globalPosition,Le=Te.x*Ee[1]+Te.y*Ee[4]+Te.z*Ee[7],xe=Te.x*Ee[0]+Te.y*Ee[3]+Te.z*Ee[6],Ne=Te.x*Ee[2]+Te.y*Ee[5]+Te.z*Ee[8];if(Re.x=Se.x+xe,Re.y=Se.y+Le,Re.z=Se.z+Ne,this._computeParticleRotation){var Me=i.m;ve[0]=Me[0]*Ee[0]+Me[1]*Ee[3]+Me[2]*Ee[6],ve[1]=Me[0]*Ee[1]+Me[1]*Ee[4]+Me[2]*Ee[7],ve[2]=Me[0]*Ee[2]+Me[1]*Ee[5]+Me[2]*Ee[8],ve[3]=Me[4]*Ee[0]+Me[5]*Ee[3]+Me[6]*Ee[6],ve[4]=Me[4]*Ee[1]+Me[5]*Ee[4]+Me[6]*Ee[7],ve[5]=Me[4]*Ee[2]+Me[5]*Ee[5]+Me[6]*Ee[8],ve[6]=Me[8]*Ee[0]+Me[9]*Ee[3]+Me[10]*Ee[6],ve[7]=Me[8]*Ee[1]+Me[9]*Ee[4]+Me[10]*Ee[7],ve[8]=Me[8]*Ee[2]+Me[9]*Ee[5]+Me[10]*Ee[8]}}else Re.x=0,Re.y=0,Re.z=0,this._computeParticleRotation&&(Me=i.m,ve[0]=Me[0],ve[1]=Me[1],ve[2]=Me[2],ve[3]=Me[4],ve[4]=Me[5],ve[5]=Me[6],ve[6]=Me[8],ve[7]=Me[9],ve[8]=Me[10]);var Fe=p[11];fe.translateFromPivot?Fe.setAll(0):Fe.copyFrom(fe.pivot);var Ye=p[0];Ye.copyFrom(fe.position);var tt=Ye.x-fe.pivot.x,it=Ye.y-fe.pivot.y,lt=Ye.z-fe.pivot.z,Ke=tt*ve[0]+it*ve[3]+lt*ve[6],ot=tt*ve[1]+it*ve[4]+lt*ve[7],rt=tt*ve[2]+it*ve[5]+lt*ve[8];Ke+=Fe.x,ot+=Fe.y,rt+=Fe.z;var qe=s[ie]=Re.x+b.x*Ke+x.x*ot+O.x*rt,ht=s[ie+1]=Re.y+b.y*Ke+x.y*ot+O.y*rt,Ve=s[ie+2]=Re.z+b.z*Ke+x.z*ot+O.z*rt;if(this._computeBoundingBox&&(B.minimizeInPlaceFromFloats(qe,ht,Ve),F.maximizeInPlaceFromFloats(qe,ht,Ve)),this._computeParticleColor&&fe.color){var Je=fe.color,yt=this._colors32;yt[se]=Je.r,yt[se+1]=Je.g,yt[se+2]=Je.b,yt[se+3]=Je.a}if(this._computeParticleTexture&&fe.uv){var Wt=fe.uv,Nt=this._uvs32;Nt[ce]=Wt.x,Nt[ce+1]=Wt.y}}return n&&(this._computeParticleColor&&o.updateVerticesData(Oe.b.ColorKind,a,!1,!1),this._computeParticleTexture&&o.updateVerticesData(Oe.b.UVKind,d,!1,!1),o.updateVerticesData(Oe.b.PositionKind,s,!1,!1)),this._computeBoundingBox&&(o._boundingInfo?o._boundingInfo.reConstruct(B,F,o._worldMatrix):o._boundingInfo=new Ui.a(B,F,o._worldMatrix)),this.afterUpdateParticles(t,e,n),this},r.prototype.dispose=function(){this.mesh.dispose(),this.vars=null,this._positions=null,this._indices=null,this._normals=null,this._uvs=null,this._colors=null,this._indices32=null,this._positions32=null,this._uvs32=null,this._colors32=null},r.prototype.refreshVisibleSize=function(){return this._isVisibilityBoxLocked||this.mesh.refreshBoundingInfo(),this},r.prototype.setVisibilityBox=function(t){var e=t/2;this.mesh._boundingInfo=new Ui.a(new u.e(-e,-e,-e),new u.e(e,e,e))},Object.defineProperty(r.prototype,"isAlwaysVisible",{get:function(){return this._alwaysVisible},set:function(t){this._alwaysVisible=t,this.mesh.alwaysSelectAsActiveMesh=t},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"computeParticleRotation",{set:function(t){this._computeParticleRotation=t},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"computeParticleColor",{get:function(){return this._computeParticleColor},set:function(t){this._computeParticleColor=t},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"computeParticleTexture",{get:function(){return this._computeParticleTexture},set:function(t){this._computeParticleTexture=t},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"computeBoundingBox",{get:function(){return this._computeBoundingBox},set:function(t){this._computeBoundingBox=t},enumerable:!1,configurable:!0}),r.prototype.initParticles=function(){},r.prototype.recycleParticle=function(t){return t},r.prototype.updateParticle=function(t){return t},r.prototype.beforeUpdateParticles=function(t,e,n){},r.prototype.afterUpdateParticles=function(t,e,n){},r}();_e.a.prototype.getPhysicsEngine=function(){return this._physicsEngine},_e.a.prototype.enablePhysics=function(r,t){if(r===void 0&&(r=null),this._physicsEngine)return!0;var e=this._getComponent(at.a.NAME_PHYSICSENGINE);e||(e=new Id(this),this._addComponent(e));try{return this._physicsEngine=new Ir(r,t),this._physicsTimeAccumulator=0,!0}catch(n){return l.a.Error(n.message),!1}},_e.a.prototype.disablePhysicsEngine=function(){this._physicsEngine&&(this._physicsEngine.dispose(),this._physicsEngine=null)},_e.a.prototype.isPhysicsEnabled=function(){return this._physicsEngine!==void 0},_e.a.prototype.deleteCompoundImpostor=function(r){var t=r.parts[0].mesh;t.physicsImpostor&&(t.physicsImpostor.dispose(),t.physicsImpostor=null)},_e.a.prototype._advancePhysicsEngineStep=function(r){if(this._physicsEngine){var t=this._physicsEngine.getSubTimeStep();if(t>0)for(this._physicsTimeAccumulator+=r;this._physicsTimeAccumulator>t;)this.onBeforePhysicsObservable.notifyObservers(this),this._physicsEngine._step(t/1e3),this.onAfterPhysicsObservable.notifyObservers(this),this._physicsTimeAccumulator-=t;else this.onBeforePhysicsObservable.notifyObservers(this),this._physicsEngine._step(r/1e3),this.onAfterPhysicsObservable.notifyObservers(this)}},Object.defineProperty(Dt.a.prototype,"physicsImpostor",{get:function(){return this._physicsImpostor},set:function(r){var t=this;this._physicsImpostor!==r&&(this._disposePhysicsObserver&&this.onDisposeObservable.remove(this._disposePhysicsObserver),this._physicsImpostor=r,r&&(this._disposePhysicsObserver=this.onDisposeObservable.add(function(){t.physicsImpostor&&(t.physicsImpostor.dispose(),t.physicsImpostor=null)})))},enumerable:!0,configurable:!0}),Dt.a.prototype.getPhysicsImpostor=function(){return this.physicsImpostor},Dt.a.prototype.applyImpulse=function(r,t){return this.physicsImpostor?(this.physicsImpostor.applyImpulse(r,t),this):this},Dt.a.prototype.setPhysicsLinkWith=function(r,t,e,n){return this.physicsImpostor&&r.physicsImpostor?(this.physicsImpostor.createJoint(r.physicsImpostor,en.e.HingeJoint,{mainPivot:t,connectedPivot:e,nativeParams:n}),this):this};var xo,Br,Id=function(){function r(t){var e=this;this.name=at.a.NAME_PHYSICSENGINE,this.scene=t,this.scene.onBeforePhysicsObservable=new R.c,this.scene.onAfterPhysicsObservable=new R.c,this.scene.getDeterministicFrameTime=function(){return e.scene._physicsEngine?1e3*e.scene._physicsEngine.getTimeStep():1e3/60}}return r.prototype.register=function(){},r.prototype.rebuild=function(){},r.prototype.dispose=function(){this.scene.onBeforePhysicsObservable.clear(),this.scene.onAfterPhysicsObservable.clear(),this.scene._physicsEngine&&this.scene.disablePhysicsEngine()},r}(),zm=function(){function r(t){this._scene=t,this._physicsEngine=this._scene.getPhysicsEngine(),this._physicsEngine||l.a.Warn("Physics engine not enabled. Please enable the physics before you can use the methods.")}return r.prototype.applyRadialExplosionImpulse=function(t,e,n,i){if(!this._physicsEngine)return l.a.Warn("Physics engine not enabled. Please enable the physics before you call this method."),null;var o=this._physicsEngine.getImpostors();if(o.length===0)return null;typeof e=="number"&&((e=new Ur).radius=e,e.strength=n||e.strength,e.falloff=i||e.falloff);var a=new Dd(this._scene,e),s=Array();return o.forEach(function(d){var p=a.getImpostorHitData(d,t);p&&(d.applyImpulse(p.force,p.contactPoint),s.push({impostor:d,hitData:p}))}),a.triggerAffectedImpostorsCallback(s),a.dispose(!1),a},r.prototype.applyRadialExplosionForce=function(t,e,n,i){if(!this._physicsEngine)return l.a.Warn("Physics engine not enabled. Please enable the physics before you call the PhysicsHelper."),null;var o=this._physicsEngine.getImpostors();if(o.length===0)return null;typeof e=="number"&&((e=new Ur).radius=e,e.strength=n||e.strength,e.falloff=i||e.falloff);var a=new Dd(this._scene,e),s=Array();return o.forEach(function(d){var p=a.getImpostorHitData(d,t);p&&(d.applyForce(p.force,p.contactPoint),s.push({impostor:d,hitData:p}))}),a.triggerAffectedImpostorsCallback(s),a.dispose(!1),a},r.prototype.gravitationalField=function(t,e,n,i){if(!this._physicsEngine)return l.a.Warn("Physics engine not enabled. Please enable the physics before you call the PhysicsHelper."),null;if(this._physicsEngine.getImpostors().length===0)return null;typeof e=="number"&&((e=new Ur).radius=e,e.strength=n||e.strength,e.falloff=i||e.falloff);var o=new jm(this,this._scene,t,e);return o.dispose(!1),o},r.prototype.updraft=function(t,e,n,i,o){if(!this._physicsEngine)return l.a.Warn("Physics engine not enabled. Please enable the physics before you call the PhysicsHelper."),null;if(this._physicsEngine.getImpostors().length===0)return null;typeof e=="number"&&((e=new Dc).radius=e,e.strength=n||e.strength,e.height=i||e.height,e.updraftMode=o||e.updraftMode);var a=new Hm(this._scene,t,e);return a.dispose(!1),a},r.prototype.vortex=function(t,e,n,i){if(!this._physicsEngine)return l.a.Warn("Physics engine not enabled. Please enable the physics before you call the PhysicsHelper."),null;if(this._physicsEngine.getImpostors().length===0)return null;typeof e=="number"&&((e=new Lc).radius=e,e.strength=n||e.strength,e.height=i||e.height);var o=new Wm(this._scene,t,e);return o.dispose(!1),o},r}(),Dd=function(){function r(t,e){this._scene=t,this._options=e,this._dataFetched=!1,this._options=Object(c.a)(Object(c.a)({},new Ur),this._options)}return r.prototype.getData=function(){return this._dataFetched=!0,{sphere:this._sphere}},r.prototype.getImpostorHitData=function(t,e){if(t.mass===0||!this._intersectsWithSphere(t,e,this._options.radius)||t.object.getClassName()!=="Mesh"&&t.object.getClassName()!=="InstancedMesh")return null;var n=t.getObjectCenter().subtract(e),i=new dn.a(e,n,this._options.radius).intersectsMesh(t.object).pickedPoint;if(!i)return null;var o=u.e.Distance(e,i);if(o>this._options.radius)return null;var a=this._options.falloff===xo.Constant?this._options.strength:this._options.strength*(1-o/this._options.radius);return{force:n.multiplyByFloats(a,a,a),contactPoint:i,distanceFromOrigin:o}},r.prototype.triggerAffectedImpostorsCallback=function(t){this._options.affectedImpostorsCallback&&this._options.affectedImpostorsCallback(t)},r.prototype.dispose=function(t){var e=this;t===void 0&&(t=!0),t?this._sphere.dispose():setTimeout(function(){e._dataFetched||e._sphere.dispose()},0)},r.prototype._prepareSphere=function(){this._sphere||(this._sphere=Un.a.CreateSphere("radialExplosionEventSphere",this._options.sphere,this._scene),this._sphere.isVisible=!1)},r.prototype._intersectsWithSphere=function(t,e,n){var i=t.object;return this._prepareSphere(),this._sphere.position=e,this._sphere.scaling=new u.e(2*n,2*n,2*n),this._sphere._updateBoundingInfo(),this._sphere.computeWorldMatrix(!0),this._sphere.intersectsMesh(i,!0)},r}(),jm=function(){function r(t,e,n,i){this._physicsHelper=t,this._scene=e,this._origin=n,this._options=i,this._dataFetched=!1,this._options=Object(c.a)(Object(c.a)({},new Ur),this._options),this._tickCallback=this._tick.bind(this),this._options.strength=-1*this._options.strength}return r.prototype.getData=function(){return this._dataFetched=!0,{sphere:this._sphere}},r.prototype.enable=function(){this._tickCallback.call(this),this._scene.registerBeforeRender(this._tickCallback)},r.prototype.disable=function(){this._scene.unregisterBeforeRender(this._tickCallback)},r.prototype.dispose=function(t){var e=this;t===void 0&&(t=!0),t?this._sphere.dispose():setTimeout(function(){e._dataFetched||e._sphere.dispose()},0)},r.prototype._tick=function(){if(this._sphere)this._physicsHelper.applyRadialExplosionForce(this._origin,this._options);else{var t=this._physicsHelper.applyRadialExplosionForce(this._origin,this._options);t&&(this._sphere=t.getData().sphere.clone("radialExplosionEventSphereClone"))}},r}(),Hm=function(){function r(t,e,n){this._scene=t,this._origin=e,this._options=n,this._originTop=u.e.Zero(),this._originDirection=u.e.Zero(),this._cylinderPosition=u.e.Zero(),this._dataFetched=!1,this._physicsEngine=this._scene.getPhysicsEngine(),this._options=Object(c.a)(Object(c.a)({},new Dc),this._options),this._origin.addToRef(new u.e(0,this._options.height/2,0),this._cylinderPosition),this._origin.addToRef(new u.e(0,this._options.height,0),this._originTop),this._options.updraftMode===Br.Perpendicular&&(this._originDirection=this._origin.subtract(this._originTop).normalize()),this._tickCallback=this._tick.bind(this),this._prepareCylinder()}return r.prototype.getData=function(){return this._dataFetched=!0,{cylinder:this._cylinder}},r.prototype.enable=function(){this._tickCallback.call(this),this._scene.registerBeforeRender(this._tickCallback)},r.prototype.disable=function(){this._scene.unregisterBeforeRender(this._tickCallback)},r.prototype.dispose=function(t){var e=this;t===void 0&&(t=!0),this._cylinder&&(t?this._cylinder.dispose():setTimeout(function(){e._dataFetched||e._cylinder.dispose()},0))},r.prototype.getImpostorHitData=function(t){if(t.mass===0||!this._intersectsWithCylinder(t))return null;var e=t.getObjectCenter();if(this._options.updraftMode===Br.Perpendicular)var n=this._originDirection;else n=e.subtract(this._originTop);var i=u.e.Distance(this._origin,e),o=-1*this._options.strength;return{force:n.multiplyByFloats(o,o,o),contactPoint:e,distanceFromOrigin:i}},r.prototype._tick=function(){var t=this;this._physicsEngine.getImpostors().forEach(function(e){var n=t.getImpostorHitData(e);n&&e.applyForce(n.force,n.contactPoint)})},r.prototype._prepareCylinder=function(){this._cylinder||(this._cylinder=fi.a.CreateCylinder("updraftEventCylinder",{height:this._options.height,diameter:2*this._options.radius},this._scene),this._cylinder.isVisible=!1)},r.prototype._intersectsWithCylinder=function(t){var e=t.object;return this._cylinder.position=this._cylinderPosition,this._cylinder.intersectsMesh(e,!0)},r}(),Wm=function(){function r(t,e,n){this._scene=t,this._origin=e,this._options=n,this._originTop=u.e.Zero(),this._cylinderPosition=u.e.Zero(),this._dataFetched=!1,this._physicsEngine=this._scene.getPhysicsEngine(),this._options=Object(c.a)(Object(c.a)({},new Lc),this._options),this._origin.addToRef(new u.e(0,this._options.height/2,0),this._cylinderPosition),this._origin.addToRef(new u.e(0,this._options.height,0),this._originTop),this._tickCallback=this._tick.bind(this),this._prepareCylinder()}return r.prototype.getData=function(){return this._dataFetched=!0,{cylinder:this._cylinder}},r.prototype.enable=function(){this._tickCallback.call(this),this._scene.registerBeforeRender(this._tickCallback)},r.prototype.disable=function(){this._scene.unregisterBeforeRender(this._tickCallback)},r.prototype.dispose=function(t){var e=this;t===void 0&&(t=!0),t?this._cylinder.dispose():setTimeout(function(){e._dataFetched||e._cylinder.dispose()},0)},r.prototype.getImpostorHitData=function(t){if(t.mass===0||!this._intersectsWithCylinder(t)||t.object.getClassName()!=="Mesh"&&t.object.getClassName()!=="InstancedMesh")return null;var e=t.getObjectCenter(),n=new u.e(this._origin.x,e.y,this._origin.z),i=e.subtract(n),o=new dn.a(n,i,this._options.radius).intersectsMesh(t.object),a=o.pickedPoint;if(!a)return null;var s=o.distance/this._options.radius,d=a.normalize();if(s>this._options.centripetalForceThreshold&&(d=d.negate()),s>this._options.centripetalForceThreshold)var p=d.x*this._options.centripetalForceMultiplier,b=d.y*this._options.updraftForceMultiplier,x=d.z*this._options.centripetalForceMultiplier;else{var O=u.e.Cross(n,e).normalize();p=(O.x+d.x)*this._options.centrifugalForceMultiplier,b=this._originTop.y*this._options.updraftForceMultiplier,x=(O.z+d.z)*this._options.centrifugalForceMultiplier}var B=new u.e(p,b,x);return{force:B=B.multiplyByFloats(this._options.strength,this._options.strength,this._options.strength),contactPoint:e,distanceFromOrigin:s}},r.prototype._tick=function(){var t=this;this._physicsEngine.getImpostors().forEach(function(e){var n=t.getImpostorHitData(e);n&&e.applyForce(n.force,n.contactPoint)})},r.prototype._prepareCylinder=function(){this._cylinder||(this._cylinder=fi.a.CreateCylinder("vortexEventCylinder",{height:this._options.height,diameter:2*this._options.radius},this._scene),this._cylinder.isVisible=!1)},r.prototype._intersectsWithCylinder=function(t){var e=t.object;return this._cylinder.position=this._cylinderPosition,this._cylinder.intersectsMesh(e,!0)},r}(),Ur=function(){this.radius=5,this.strength=10,this.falloff=xo.Constant,this.sphere={segments:32,diameter:1}},Dc=function(){this.radius=5,this.strength=10,this.height=10,this.updraftMode=Br.Center},Lc=function(){this.radius=5,this.strength=10,this.height=10,this.centripetalForceThreshold=.7,this.centripetalForceMultiplier=5,this.centrifugalForceMultiplier=.5,this.updraftForceMultiplier=.02};(function(r){r[r.Constant=0]="Constant",r[r.Linear=1]="Linear"})(xo||(xo={})),function(r){r[r.Center=0]="Center",r[r.Perpendicular=1]="Perpendicular"}(Br||(Br={}));var Xm=` +varying vec2 vUV; +uniform sampler2D textureSampler; +uniform float degree; +void main(void) +{ +vec3 color=texture2D(textureSampler,vUV).rgb; +float luminance=dot(color,vec3(0.3,0.59,0.11)); +vec3 blackAndWhite=vec3(luminance,luminance,luminance); +gl_FragColor=vec4(color-((color-blackAndWhite)*degree),1.0); +}`;ze.a.ShadersStore.blackAndWhitePixelShader=Xm;var Ld=function(r){function t(e,n,i,o,a,s){var d=r.call(this,e,"blackAndWhite",["degree"],null,n,i,o,a,s)||this;return d.degree=1,d.onApplyObservable.add(function(p){p.setFloat("degree",d.degree)}),d}return Object(c.d)(t,r),t.prototype.getClassName=function(){return"BlackAndWhitePostProcess"},t._Parse=function(e,n,i,o){return L.a.Parse(function(){return new t(e.name,e.options,n,e.renderTargetSamplingMode,i.getEngine(),e.reusable)},e,i,o)},Object(c.c)([Object(L.c)()],t.prototype,"degree",void 0),t}(_t);C.a.RegisteredTypes["BABYLON.BlackAndWhitePostProcess"]=Ld;var Rt=function(){function r(t,e,n,i){this._name=e,this._singleInstance=i||!0,this._getPostProcesses=n,this._cameras={},this._indicesForCamera={},this._postProcesses={}}return Object.defineProperty(r.prototype,"isSupported",{get:function(){for(var t in this._postProcesses)if(this._postProcesses.hasOwnProperty(t)){for(var e=this._postProcesses[t],n=0;n + +varying vec2 vUV; +uniform sampler2D textureSampler; +uniform float threshold; +uniform float exposure; +void main(void) +{ +gl_FragColor=texture2D(textureSampler,vUV); +float luma=getLuminance(gl_FragColor.rgb*exposure); +gl_FragColor.rgb=step(threshold,luma)*gl_FragColor.rgb; +}`;ze.a.ShadersStore.extractHighlightsPixelShader=Ym;var Nc=function(r){function t(e,n,i,o,a,s,d,p){d===void 0&&(d=h.a.TEXTURETYPE_UNSIGNED_INT),p===void 0&&(p=!1);var b=r.call(this,e,"extractHighlights",["threshold","exposure"],null,n,i,o,a,s,null,d,void 0,null,p)||this;return b.threshold=.9,b._exposure=1,b._inputPostProcess=null,b.onApplyObservable.add(function(x){b._inputPostProcess&&x.setTextureFromPostProcess("textureSampler",b._inputPostProcess),x.setFloat("threshold",Math.pow(b.threshold,Gt.b)),x.setFloat("exposure",b._exposure)}),b}return Object(c.d)(t,r),t.prototype.getClassName=function(){return"ExtractHighlightsPostProcess"},Object(c.c)([Object(L.c)()],t.prototype,"threshold",void 0),t}(_t);C.a.RegisteredTypes["BABYLON.ExtractHighlightsPostProcess"]=Nc;var Km=`uniform sampler2D textureSampler; +uniform sampler2D bloomBlur; +varying vec2 vUV; +uniform float bloomWeight; +void main(void) +{ +gl_FragColor=texture2D(textureSampler,vUV); +vec3 blurred=texture2D(bloomBlur,vUV).rgb; +gl_FragColor.rgb=gl_FragColor.rgb+(blurred.rgb*bloomWeight); +} +`;ze.a.ShadersStore.bloomMergePixelShader=Km;var wc=function(r){function t(e,n,i,o,a,s,d,p,b,x,O){x===void 0&&(x=h.a.TEXTURETYPE_UNSIGNED_INT),O===void 0&&(O=!1);var B=r.call(this,e,"bloomMerge",["bloomWeight"],["circleOfConfusionSampler","blurStep0","blurStep1","blurStep2","bloomBlur"],a,s,d,p,b,null,x,void 0,null,!0)||this;return B.weight=1,B.weight=o,B.onApplyObservable.add(function(F){F.setTextureFromPostProcess("textureSampler",n),F.setTextureFromPostProcessOutput("bloomBlur",i),F.setFloat("bloomWeight",B.weight)}),O||B.updateEffect(),B}return Object(c.d)(t,r),t.prototype.getClassName=function(){return"BloomMergePostProcess"},Object(c.c)([Object(L.c)()],t.prototype,"weight",void 0),t}(_t);C.a.RegisteredTypes["BABYLON.BloomMergePostProcess"]=wc;var Fc=function(r){function t(e,n,i,o,a,s){a===void 0&&(a=0),s===void 0&&(s=!1);var d=r.call(this,e.getEngine(),"bloom",function(){return d._effects},!0)||this;return d.bloomScale=n,d._effects=[],d._downscale=new Nc("highlights",1,null,we.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,a,s),d._blurX=new _n("horizontal blur",new u.d(1,0),10,n,null,we.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,a,void 0,s),d._blurX.alwaysForcePOT=!0,d._blurX.autoClear=!1,d._blurY=new _n("vertical blur",new u.d(0,1),10,n,null,we.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,a,void 0,s),d._blurY.alwaysForcePOT=!0,d._blurY.autoClear=!1,d.kernel=o,d._effects=[d._downscale,d._blurX,d._blurY],d._merge=new wc("bloomMerge",d._downscale,d._blurY,i,n,null,we.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,a,s),d._merge.autoClear=!1,d._effects.push(d._merge),d}return Object(c.d)(t,r),Object.defineProperty(t.prototype,"threshold",{get:function(){return this._downscale.threshold},set:function(e){this._downscale.threshold=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"weight",{get:function(){return this._merge.weight},set:function(e){this._merge.weight=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"kernel",{get:function(){return this._blurX.kernel/this.bloomScale},set:function(e){this._blurX.kernel=e*this.bloomScale,this._blurY.kernel=e*this.bloomScale},enumerable:!1,configurable:!0}),t.prototype.disposeEffects=function(e){for(var n=0;n0 +uniform sampler2D blurStep1; +#endif +#if BLUR_LEVEL>1 +uniform sampler2D blurStep2; +#endif +void main(void) +{ +float coc=texture2D(circleOfConfusionSampler,vUV).r; +#if BLUR_LEVEL == 0 +vec4 original=texture2D(textureSampler,vUV); +vec4 blurred0=texture2D(blurStep0,vUV); +gl_FragColor=mix(original,blurred0,coc); +#endif +#if BLUR_LEVEL == 1 +if(coc<0.5){ +vec4 original=texture2D(textureSampler,vUV); +vec4 blurred1=texture2D(blurStep1,vUV); +gl_FragColor=mix(original,blurred1,coc/0.5); +}else{ +vec4 blurred0=texture2D(blurStep0,vUV); +vec4 blurred1=texture2D(blurStep1,vUV); +gl_FragColor=mix(blurred1,blurred0,(coc-0.5)/0.5); +} +#endif +#if BLUR_LEVEL == 2 +if(coc<0.33){ +vec4 original=texture2D(textureSampler,vUV); +vec4 blurred2=texture2D(blurStep2,vUV); +gl_FragColor=mix(original,blurred2,coc/0.33); +}else if(coc<0.66){ +vec4 blurred1=texture2D(blurStep1,vUV); +vec4 blurred2=texture2D(blurStep2,vUV); +gl_FragColor=mix(blurred2,blurred1,(coc-0.33)/0.33); +}else{ +vec4 blurred0=texture2D(blurStep0,vUV); +vec4 blurred1=texture2D(blurStep1,vUV); +gl_FragColor=mix(blurred1,blurred0,(coc-0.66)/0.34); +} +#endif +} +`;ze.a.ShadersStore.depthOfFieldMergePixelShader=$m;var ar,eg=function(){},Fd=function(r){function t(e,n,i,o,a,s,d,p,b,x,O){x===void 0&&(x=h.a.TEXTURETYPE_UNSIGNED_INT),O===void 0&&(O=!1);var B=r.call(this,e,"depthOfFieldMerge",[],["circleOfConfusionSampler","blurStep0","blurStep1","blurStep2"],a,s,d,p,b,null,x,void 0,null,!0)||this;return B.blurSteps=o,B.onApplyObservable.add(function(F){F.setTextureFromPostProcess("textureSampler",n),F.setTextureFromPostProcessOutput("circleOfConfusionSampler",i),o.forEach(function(z,J){F.setTextureFromPostProcessOutput("blurStep"+(o.length-J-1),z)})}),O||B.updateEffect(),B}return Object(c.d)(t,r),t.prototype.getClassName=function(){return"DepthOfFieldMergePostProcess"},t.prototype.updateEffect=function(e,n,i,o,a,s){e===void 0&&(e=null),n===void 0&&(n=null),i===void 0&&(i=null),e||(e="",e+="#define BLUR_LEVEL "+(this.blurSteps.length-1)+` +`),r.prototype.updateEffect.call(this,e,n,i,o,a,s)},t}(_t);(function(r){r[r.Low=0]="Low",r[r.Medium=1]="Medium",r[r.High=2]="High"})(ar||(ar={}));var Vc=function(r){function t(e,n,i,o,a){i===void 0&&(i=ar.Low),o===void 0&&(o=0),a===void 0&&(a=!1);var s=r.call(this,e.getEngine(),"depth of field",function(){return s._effects},!0)||this;s._effects=[],s._circleOfConfusion=new Uc("circleOfConfusion",n,1,null,we.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,o,a),s._depthOfFieldBlurY=[],s._depthOfFieldBlurX=[];var d=1,p=15;switch(i){case ar.High:d=3,p=51;break;case ar.Medium:d=2,p=31;break;default:p=15,d=1}for(var b=p/Math.pow(2,d-1),x=1,O=0;O=edgeVert; +float subpixA=subpixNSWE*2.0+subpixNWSWNESE; +if (!horzSpan) +{ +lumaN=lumaW; +} +if (!horzSpan) +{ +lumaS=lumaE; +} +if (horzSpan) +{ +lengthSign=texelSize.y; +} +float subpixB=(subpixA*(1.0/12.0))-lumaM; +float gradientN=lumaN-lumaM; +float gradientS=lumaS-lumaM; +float lumaNN=lumaN+lumaM; +float lumaSS=lumaS+lumaM; +bool pairN=abs(gradientN)>=abs(gradientS); +float gradient=max(abs(gradientN),abs(gradientS)); +if (pairN) +{ +lengthSign=-lengthSign; +} +float subpixC=clamp(abs(subpixB)*subpixRcpRange,0.0,1.0); +vec2 posB; +posB.x=posM.x; +posB.y=posM.y; +vec2 offNP; +offNP.x=(!horzSpan) ? 0.0 : texelSize.x; +offNP.y=(horzSpan) ? 0.0 : texelSize.y; +if (!horzSpan) +{ +posB.x+=lengthSign*0.5; +} +if (horzSpan) +{ +posB.y+=lengthSign*0.5; +} +vec2 posN; +posN.x=posB.x-offNP.x*1.5; +posN.y=posB.y-offNP.y*1.5; +vec2 posP; +posP.x=posB.x+offNP.x*1.5; +posP.y=posB.y+offNP.y*1.5; +float subpixD=((-2.0)*subpixC)+3.0; +float lumaEndN=FxaaLuma(texture2D(textureSampler,posN,0.0)); +float subpixE=subpixC*subpixC; +float lumaEndP=FxaaLuma(texture2D(textureSampler,posP,0.0)); +if (!pairN) +{ +lumaNN=lumaSS; +} +float gradientScaled=gradient*1.0/4.0; +float lumaMM=lumaM-lumaNN*0.5; +float subpixF=subpixD*subpixE; +bool lumaMLTZero=lumaMM<0.0; +lumaEndN-=lumaNN*0.5; +lumaEndP-=lumaNN*0.5; +bool doneN=abs(lumaEndN)>=gradientScaled; +bool doneP=abs(lumaEndP)>=gradientScaled; +if (!doneN) +{ +posN.x-=offNP.x*3.0; +} +if (!doneN) +{ +posN.y-=offNP.y*3.0; +} +bool doneNP=(!doneN) || (!doneP); +if (!doneP) +{ +posP.x+=offNP.x*3.0; +} +if (!doneP) +{ +posP.y+=offNP.y*3.0; +} +if (doneNP) +{ +if (!doneN) lumaEndN=FxaaLuma(texture2D(textureSampler,posN.xy,0.0)); +if (!doneP) lumaEndP=FxaaLuma(texture2D(textureSampler,posP.xy,0.0)); +if (!doneN) lumaEndN=lumaEndN-lumaNN*0.5; +if (!doneP) lumaEndP=lumaEndP-lumaNN*0.5; +doneN=abs(lumaEndN)>=gradientScaled; +doneP=abs(lumaEndP)>=gradientScaled; +if (!doneN) posN.x-=offNP.x*12.0; +if (!doneN) posN.y-=offNP.y*12.0; +doneNP=(!doneN) || (!doneP); +if (!doneP) posP.x+=offNP.x*12.0; +if (!doneP) posP.y+=offNP.y*12.0; +} +float dstN=posM.x-posN.x; +float dstP=posP.x-posM.x; +if (!horzSpan) +{ +dstN=posM.y-posN.y; +} +if (!horzSpan) +{ +dstP=posP.y-posM.y; +} +bool goodSpanN=(lumaEndN<0.0) != lumaMLTZero; +float spanLength=(dstP+dstN); +bool goodSpanP=(lumaEndP<0.0) != lumaMLTZero; +float spanLengthRcp=1.0/spanLength; +bool directionN=dstN-1?`#define MALI 1 +`:null},t._Parse=function(e,n,i,o){return L.a.Parse(function(){return new t(e.name,e.options,n,e.renderTargetSamplingMode,i.getEngine(),e.reusable)},e,i,o)},t}(_t);C.a.RegisteredTypes["BABYLON.FxaaPostProcess"]=Co;var og=`#include + +uniform sampler2D textureSampler; + +uniform float intensity; +uniform float animatedSeed; + +varying vec2 vUV; +void main(void) +{ +gl_FragColor=texture2D(textureSampler,vUV); +vec2 seed=vUV*(animatedSeed); +float grain=dither(seed,intensity); + +float lum=getLuminance(gl_FragColor.rgb); +float grainAmount=(cos(-PI+(lum*PI*2.))+1.)/2.; +gl_FragColor.rgb+=grain*grainAmount; +gl_FragColor.rgb=max(gl_FragColor.rgb,0.0); +}`;ze.a.ShadersStore.grainPixelShader=og;var kc=function(r){function t(e,n,i,o,a,s,d,p){d===void 0&&(d=h.a.TEXTURETYPE_UNSIGNED_INT),p===void 0&&(p=!1);var b=r.call(this,e,"grain",["intensity","animatedSeed"],[],n,i,o,a,s,null,d,void 0,null,p)||this;return b.intensity=30,b.animated=!1,b.onApplyObservable.add(function(x){x.setFloat("intensity",b.intensity),x.setFloat("animatedSeed",b.animated?Math.random()+1:1)}),b}return Object(c.d)(t,r),t.prototype.getClassName=function(){return"GrainPostProcess"},t._Parse=function(e,n,i,o){return L.a.Parse(function(){return new t(e.name,e.options,n,e.renderTargetSamplingMode,i.getEngine(),e.reusable)},e,i,o)},Object(c.c)([Object(L.c)()],t.prototype,"intensity",void 0),Object(c.c)([Object(L.c)()],t.prototype,"animated",void 0),t}(_t);C.a.RegisteredTypes["BABYLON.GrainPostProcess"]=kc;var ag=` +varying vec2 vUV; +uniform sampler2D textureSampler; +const vec3 RGBLuminanceCoefficients=vec3(0.2126,0.7152,0.0722); +void main(void) +{ +vec4 tex=texture2D(textureSampler,vUV); +vec3 c=tex.rgb; +float luma=dot(c.rgb,RGBLuminanceCoefficients); + + +gl_FragColor=vec4(pow(c,vec3(25.0-luma*15.0)),tex.a); +}`;ze.a.ShadersStore.highlightsPixelShader=ag;var sg=function(r){function t(e,n,i,o,a,s,d){return d===void 0&&(d=h.a.TEXTURETYPE_UNSIGNED_INT),r.call(this,e,"highlights",null,null,n,i,o,a,s,null,d)||this}return Object(c.d)(t,r),t.prototype.getClassName=function(){return"HighlightsPostProcess"},t}(_t);ze.a.IncludesShadersStore.mrtFragmentDeclaration=`#if __VERSION__>=200 +layout(location=0) out vec4 glFragData[{X}]; +#endif +`;var cg=`#extension GL_EXT_draw_buffers : require +#if defined(BUMP) || !defined(NORMAL) +#extension GL_OES_standard_derivatives : enable +#endif +precision highp float; +precision highp int; +#ifdef BUMP +varying mat4 vWorldView; +varying vec3 vNormalW; +#else +varying vec3 vNormalV; +#endif +varying vec4 vViewPos; +#if defined(POSITION) || defined(BUMP) +varying vec3 vPositionW; +#endif +#ifdef VELOCITY +varying vec4 vCurrentPosition; +varying vec4 vPreviousPosition; +#endif +#ifdef NEED_UV +varying vec2 vUV; +#endif +#ifdef BUMP +uniform vec3 vBumpInfos; +uniform vec2 vTangentSpaceParams; +#endif +#ifdef REFLECTIVITY +varying vec2 vReflectivityUV; +uniform sampler2D reflectivitySampler; +#endif +#ifdef ALPHATEST +uniform sampler2D diffuseSampler; +#endif +#include[RENDER_TARGET_COUNT] +#include +#include +void main() { +#ifdef ALPHATEST +if (texture2D(diffuseSampler,vUV).a<0.4) +discard; +#endif +vec3 normalOutput; +#ifdef BUMP +vec3 normalW=normalize(vNormalW); +#include +normalOutput=normalize(vec3(vWorldView*vec4(normalW,0.0))); +#else +normalOutput=normalize(vNormalV); +#endif +#ifdef PREPASS +#ifdef PREPASS_DEPTHNORMAL +gl_FragData[DEPTHNORMAL_INDEX]=vec4(vViewPos.z/vViewPos.w,normalOutput); +#endif +#else +gl_FragData[0]=vec4(vViewPos.z/vViewPos.w,0.0,0.0,1.0); +gl_FragData[1]=vec4(normalOutput,1.0); +#endif +#ifdef POSITION +gl_FragData[POSITION_INDEX]=vec4(vPositionW,1.0); +#endif +#ifdef VELOCITY +vec2 a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5; +vec2 b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5; +vec2 velocity=abs(a-b); +velocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5; +gl_FragData[VELOCITY_INDEX]=vec4(velocity,0.0,1.0); +#endif +#ifdef REFLECTIVITY +#ifdef HAS_SPECULAR + +vec4 reflectivity=texture2D(reflectivitySampler,vReflectivityUV); +#elif HAS_REFLECTIVITY + +vec4 reflectivity=vec4(texture2D(reflectivitySampler,vReflectivityUV).rgb,1.0); +#else +vec4 reflectivity=vec4(0.0,0.0,0.0,1.0); +#endif +gl_FragData[REFLECTIVITY_INDEX]=reflectivity; +#endif +}`;ze.a.ShadersStore.geometryPixelShader=cg;var lg=`precision highp float; +precision highp int; +#include +#include +#include[0..maxSimultaneousMorphTargets] +#include +attribute vec3 position; +attribute vec3 normal; +#ifdef NEED_UV +varying vec2 vUV; +#ifdef ALPHATEST +uniform mat4 diffuseMatrix; +#endif +#ifdef BUMP +uniform mat4 bumpMatrix; +varying vec2 vBumpUV; +#endif +#ifdef REFLECTIVITY +uniform mat4 reflectivityMatrix; +varying vec2 vReflectivityUV; +#endif +#ifdef UV1 +attribute vec2 uv; +#endif +#ifdef UV2 +attribute vec2 uv2; +#endif +#endif + +uniform mat4 viewProjection; +uniform mat4 view; +#ifdef BUMP +varying mat4 vWorldView; +#endif +#ifdef BUMP +varying vec3 vNormalW; +#else +varying vec3 vNormalV; +#endif +varying vec4 vViewPos; +#if defined(POSITION) || defined(BUMP) +varying vec3 vPositionW; +#endif +#ifdef VELOCITY +uniform mat4 previousWorld; +uniform mat4 previousViewProjection; +#ifdef BONES_VELOCITY_ENABLED +#if NUM_BONE_INFLUENCERS>0 +uniform mat4 mPreviousBones[BonesPerMesh]; +#endif +#endif +varying vec4 vCurrentPosition; +varying vec4 vPreviousPosition; +#endif +void main(void) +{ +vec3 positionUpdated=position; +vec3 normalUpdated=normal; +#ifdef UV1 +vec2 uvUpdated=uv; +#endif +#include[0..maxSimultaneousMorphTargets] +#include +#if defined(VELOCITY) && !defined(BONES_VELOCITY_ENABLED) + +vCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0); +vPreviousPosition=previousViewProjection*previousWorld*vec4(positionUpdated,1.0); +#endif +#include +vec4 pos=vec4(finalWorld*vec4(positionUpdated,1.0)); +#ifdef BUMP +vWorldView=view*finalWorld; +vNormalW=normalUpdated; +#else +vNormalV=normalize(vec3((view*finalWorld)*vec4(normalUpdated,0.0))); +#endif +vViewPos=view*pos; +#if defined(VELOCITY) && defined(BONES_VELOCITY_ENABLED) +vCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0); +#if NUM_BONE_INFLUENCERS>0 +mat4 previousInfluence; +previousInfluence=mPreviousBones[int(matricesIndices[0])]*matricesWeights[0]; +#if NUM_BONE_INFLUENCERS>1 +previousInfluence+=mPreviousBones[int(matricesIndices[1])]*matricesWeights[1]; +#endif +#if NUM_BONE_INFLUENCERS>2 +previousInfluence+=mPreviousBones[int(matricesIndices[2])]*matricesWeights[2]; +#endif +#if NUM_BONE_INFLUENCERS>3 +previousInfluence+=mPreviousBones[int(matricesIndices[3])]*matricesWeights[3]; +#endif +#if NUM_BONE_INFLUENCERS>4 +previousInfluence+=mPreviousBones[int(matricesIndicesExtra[0])]*matricesWeightsExtra[0]; +#endif +#if NUM_BONE_INFLUENCERS>5 +previousInfluence+=mPreviousBones[int(matricesIndicesExtra[1])]*matricesWeightsExtra[1]; +#endif +#if NUM_BONE_INFLUENCERS>6 +previousInfluence+=mPreviousBones[int(matricesIndicesExtra[2])]*matricesWeightsExtra[2]; +#endif +#if NUM_BONE_INFLUENCERS>7 +previousInfluence+=mPreviousBones[int(matricesIndicesExtra[3])]*matricesWeightsExtra[3]; +#endif +vPreviousPosition=previousViewProjection*previousWorld*previousInfluence*vec4(positionUpdated,1.0); +#else +vPreviousPosition=previousViewProjection*previousWorld*vec4(positionUpdated,1.0); +#endif +#endif +#if defined(POSITION) || defined(BUMP) +vPositionW=pos.xyz/pos.w; +#endif +gl_Position=viewProjection*finalWorld*vec4(positionUpdated,1.0); +#ifdef NEED_UV +#ifdef UV1 +#ifdef ALPHATEST +vUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0)); +#else +vUV=uv; +#endif +#ifdef BUMP +vBumpUV=vec2(bumpMatrix*vec4(uvUpdated,1.0,0.0)); +#endif +#ifdef REFLECTIVITY +vReflectivityUV=vec2(reflectivityMatrix*vec4(uvUpdated,1.0,0.0)); +#endif +#endif +#ifdef UV2 +#ifdef ALPHATEST +vUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0)); +#else +vUV=uv2; +#endif +#ifdef BUMP +vBumpUV=vec2(bumpMatrix*vec4(uv2,1.0,0.0)); +#endif +#ifdef REFLECTIVITY +vReflectivityUV=vec2(reflectivityMatrix*vec4(uv2,1.0,0.0)); +#endif +#endif +#endif +#include +} +`;ze.a.ShadersStore.geometryVertexShader=lg;var li=function(){function r(t,e){e===void 0&&(e=1),this._previousTransformationMatrices={},this._previousBonesTransformationMatrices={},this.excludedSkinnedMeshesFromVelocity=[],this.renderTransparentMeshes=!0,this._resizeObserver=null,this._enablePosition=!1,this._enableVelocity=!1,this._enableReflectivity=!1,this._positionIndex=-1,this._velocityIndex=-1,this._reflectivityIndex=-1,this._depthNormalIndex=-1,this._linkedWithPrePass=!1,this._scene=t,this._ratio=e,r._SceneComponentInitialization(this._scene),this._createRenderTargets()}return r.prototype._linkPrePassRenderer=function(t){this._linkedWithPrePass=!0,this._prePassRenderer=t,this._multiRenderTarget&&(this._multiRenderTarget.onClearObservable.clear(),this._multiRenderTarget.onClearObservable.add(function(e){}))},r.prototype._unlinkPrePassRenderer=function(){this._linkedWithPrePass=!1,this._createRenderTargets()},r.prototype._resetLayout=function(){this._enablePosition=!1,this._enableReflectivity=!1,this._enableVelocity=!1,this._attachments=[]},r.prototype._forceTextureType=function(t,e){t===r.POSITION_TEXTURE_TYPE?(this._positionIndex=e,this._enablePosition=!0):t===r.VELOCITY_TEXTURE_TYPE?(this._velocityIndex=e,this._enableVelocity=!0):t===r.REFLECTIVITY_TEXTURE_TYPE?(this._reflectivityIndex=e,this._enableReflectivity=!0):t===r.DEPTHNORMAL_TEXTURE_TYPE&&(this._depthNormalIndex=e)},r.prototype._setAttachments=function(t){this._attachments=t},r.prototype._linkInternalTexture=function(t){this._multiRenderTarget._texture=t},Object.defineProperty(r.prototype,"renderList",{get:function(){return this._multiRenderTarget.renderList},set:function(t){this._multiRenderTarget.renderList=t},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"isSupported",{get:function(){return this._multiRenderTarget.isSupported},enumerable:!1,configurable:!0}),r.prototype.getTextureIndex=function(t){switch(t){case r.POSITION_TEXTURE_TYPE:return this._positionIndex;case r.VELOCITY_TEXTURE_TYPE:return this._velocityIndex;case r.REFLECTIVITY_TEXTURE_TYPE:return this._reflectivityIndex;default:return-1}},Object.defineProperty(r.prototype,"enablePosition",{get:function(){return this._enablePosition},set:function(t){this._enablePosition=t,this._linkedWithPrePass||(this.dispose(),this._createRenderTargets())},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"enableVelocity",{get:function(){return this._enableVelocity},set:function(t){this._enableVelocity=t,t||(this._previousTransformationMatrices={}),this._linkedWithPrePass||(this.dispose(),this._createRenderTargets())},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"enableReflectivity",{get:function(){return this._enableReflectivity},set:function(t){this._enableReflectivity=t,this._linkedWithPrePass||(this.dispose(),this._createRenderTargets())},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"scene",{get:function(){return this._scene},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"ratio",{get:function(){return this._ratio},enumerable:!1,configurable:!0}),r.prototype.isReady=function(t,e){var n=t.getMaterial();if(n&&n.disableDepthWrite)return!1;var i=[],o=[Oe.b.PositionKind,Oe.b.NormalKind],a=t.getMesh();if(n){var s=!1;n.needAlphaTesting()&&(i.push("#define ALPHATEST"),s=!0),n.bumpTexture&&Ft.a.BumpTextureEnabled&&(i.push("#define BUMP"),i.push("#define BUMPDIRECTUV 0"),s=!0),this._enableReflectivity&&(n instanceof Ft.a&&n.specularTexture?(i.push("#define HAS_SPECULAR"),s=!0):n instanceof co&&n.reflectivityTexture&&(i.push("#define HAS_REFLECTIVITY"),s=!0)),s&&(i.push("#define NEED_UV"),a.isVerticesDataPresent(Oe.b.UVKind)&&(o.push(Oe.b.UVKind),i.push("#define UV1")),a.isVerticesDataPresent(Oe.b.UV2Kind)&&(o.push(Oe.b.UV2Kind),i.push("#define UV2")))}this._linkedWithPrePass&&(i.push("#define PREPASS"),this._depthNormalIndex!==-1&&(i.push("#define DEPTHNORMAL_INDEX "+this._depthNormalIndex),i.push("#define PREPASS_DEPTHNORMAL"))),this._enablePosition&&(i.push("#define POSITION"),i.push("#define POSITION_INDEX "+this._positionIndex)),this._enableVelocity&&(i.push("#define VELOCITY"),i.push("#define VELOCITY_INDEX "+this._velocityIndex),this.excludedSkinnedMeshesFromVelocity.indexOf(a)===-1&&i.push("#define BONES_VELOCITY_ENABLED")),this._enableReflectivity&&(i.push("#define REFLECTIVITY"),i.push("#define REFLECTIVITY_INDEX "+this._reflectivityIndex)),a.useBones&&a.computeBonesUsingShaders?(o.push(Oe.b.MatricesIndicesKind),o.push(Oe.b.MatricesWeightsKind),a.numBoneInfluencers>4&&(o.push(Oe.b.MatricesIndicesExtraKind),o.push(Oe.b.MatricesWeightsExtraKind)),i.push("#define NUM_BONE_INFLUENCERS "+a.numBoneInfluencers),i.push("#define BonesPerMesh "+(a.skeleton?a.skeleton.bones.length+1:0))):i.push("#define NUM_BONE_INFLUENCERS 0");var d=a.morphTargetManager,p=0;d&&d.numInfluencers>0&&(p=d.numInfluencers,i.push("#define MORPHTARGETS"),i.push("#define NUM_MORPH_INFLUENCERS "+p),et.a.PrepareAttributesForMorphTargetsInfluencers(o,a,p)),e&&(i.push("#define INSTANCES"),et.a.PushAttributesForInstances(o),t.getRenderingMesh().hasThinInstances&&i.push("#define THIN_INSTANCES")),this._linkedWithPrePass?i.push("#define RENDER_TARGET_COUNT "+this._attachments.length):i.push("#define RENDER_TARGET_COUNT "+this._multiRenderTarget.textures.length);var b=i.join(` +`);return this._cachedDefines!==b&&(this._cachedDefines=b,this._effect=this._scene.getEngine().createEffect("geometry",o,["world","mBones","viewProjection","diffuseMatrix","view","previousWorld","previousViewProjection","mPreviousBones","morphTargetInfluences","bumpMatrix","reflectivityMatrix","vTangentSpaceParams","vBumpInfos"],["diffuseSampler","bumpSampler","reflectivitySampler"],b,void 0,void 0,void 0,{buffersCount:this._multiRenderTarget.textures.length-1,maxSimultaneousMorphTargets:p})),this._effect.isReady()},r.prototype.getGBuffer=function(){return this._multiRenderTarget},Object.defineProperty(r.prototype,"samples",{get:function(){return this._multiRenderTarget.samples},set:function(t){this._multiRenderTarget.samples=t},enumerable:!1,configurable:!0}),r.prototype.dispose=function(){this._resizeObserver&&(this._scene.getEngine().onResizeObservable.remove(this._resizeObserver),this._resizeObserver=null),this.getGBuffer().dispose()},r.prototype._assignRenderTargetIndices=function(){var t=2;return this._enablePosition&&(this._positionIndex=t,t++),this._enableVelocity&&(this._velocityIndex=t,t++),this._enableReflectivity&&(this._reflectivityIndex=t,t++),t},r.prototype._createRenderTargets=function(){var t=this,e=this._scene.getEngine(),n=this._assignRenderTargetIndices();if(this._multiRenderTarget=new qs("gBuffer",{width:e.getRenderWidth()*this._ratio,height:e.getRenderHeight()*this._ratio},n,this._scene,{generateMipMaps:!1,generateDepthTexture:!0,defaultType:h.a.TEXTURETYPE_FLOAT}),this.isSupported){this._multiRenderTarget.wrapU=we.a.CLAMP_ADDRESSMODE,this._multiRenderTarget.wrapV=we.a.CLAMP_ADDRESSMODE,this._multiRenderTarget.refreshRate=1,this._multiRenderTarget.renderParticles=!1,this._multiRenderTarget.renderList=null,this._multiRenderTarget.onClearObservable.add(function(o){o.clear(new M.b(0,0,0,1),!0,!0,!0)}),this._resizeObserver=e.onResizeObservable.add(function(){t._multiRenderTarget&&t._multiRenderTarget.resize({width:e.getRenderWidth()*t._ratio,height:e.getRenderHeight()*t._ratio})});var i=function(o){var a=o.getRenderingMesh(),s=o.getEffectiveMesh(),d=t._scene,p=d.getEngine(),b=o.getMaterial();if(b){if(s._internalAbstractMeshDataInfo._isActiveIntermediate=!1,t._enableVelocity&&!t._previousTransformationMatrices[s.uniqueId]&&(t._previousTransformationMatrices[s.uniqueId]={world:u.a.Identity(),viewProjection:d.getTransformMatrix()},a.skeleton)){var x=a.skeleton.getTransformMatrices(a);t._previousBonesTransformationMatrices[a.uniqueId]=t._copyBonesTransformationMatrices(x,new Float32Array(x.length))}var O=a._getInstancesRenderList(o._id,!!o.getReplacementMesh());if(!O.mustReturn){var B=p.getCaps().instancedArrays&&(O.visibleInstances[o._id]!==null||a.hasThinInstances),F=s.getWorldMatrix();if(t.isReady(o,B)){if(p.enableEffect(t._effect),a._bind(o,t._effect,b.fillMode),t._effect.setMatrix("viewProjection",d.getTransformMatrix()),t._effect.setMatrix("view",d.getViewMatrix()),b){var z,J=s._instanceDataStorage;if(J.isFrozen||!b.backFaceCulling&&b.overrideMaterialSideOrientation===null)z=J.sideOrientation;else{var ie=s._getWorldMatrixDeterminant();(z=b.overrideMaterialSideOrientation)==null&&(z=b.sideOrientation),ie<0&&(z=z===Ht.a.ClockWiseSideOrientation?Ht.a.CounterClockWiseSideOrientation:Ht.a.ClockWiseSideOrientation)}if(b._preBind(t._effect,z),b.needAlphaTesting()){var se=b.getAlphaTestTexture();se&&(t._effect.setTexture("diffuseSampler",se),t._effect.setMatrix("diffuseMatrix",se.getTextureMatrix()))}b.bumpTexture&&d.getEngine().getCaps().standardDerivatives&&Ft.a.BumpTextureEnabled&&(t._effect.setFloat3("vBumpInfos",b.bumpTexture.coordinatesIndex,1/b.bumpTexture.level,b.parallaxScaleBias),t._effect.setMatrix("bumpMatrix",b.bumpTexture.getTextureMatrix()),t._effect.setTexture("bumpSampler",b.bumpTexture),t._effect.setFloat2("vTangentSpaceParams",b.invertNormalMapX?-1:1,b.invertNormalMapY?-1:1)),t._enableReflectivity&&(b instanceof Ft.a&&b.specularTexture?(t._effect.setMatrix("reflectivityMatrix",b.specularTexture.getTextureMatrix()),t._effect.setTexture("reflectivitySampler",b.specularTexture)):b instanceof co&&b.reflectivityTexture&&(t._effect.setMatrix("reflectivityMatrix",b.reflectivityTexture.getTextureMatrix()),t._effect.setTexture("reflectivitySampler",b.reflectivityTexture)))}a.useBones&&a.computeBonesUsingShaders&&a.skeleton&&(t._effect.setMatrices("mBones",a.skeleton.getTransformMatrices(a)),t._enableVelocity&&t._effect.setMatrices("mPreviousBones",t._previousBonesTransformationMatrices[a.uniqueId])),et.a.BindMorphTargetParameters(a,t._effect),t._enableVelocity&&(t._effect.setMatrix("previousWorld",t._previousTransformationMatrices[s.uniqueId].world),t._effect.setMatrix("previousViewProjection",t._previousTransformationMatrices[s.uniqueId].viewProjection)),a._processRendering(s,o,t._effect,b.fillMode,O,B,function(ce,ue){return t._effect.setMatrix("world",ue)})}t._enableVelocity&&(t._previousTransformationMatrices[s.uniqueId].world=F.clone(),t._previousTransformationMatrices[s.uniqueId].viewProjection=t._scene.getTransformMatrix().clone(),a.skeleton&&t._copyBonesTransformationMatrices(a.skeleton.getTransformMatrices(a),t._previousBonesTransformationMatrices[s.uniqueId]))}}};this._multiRenderTarget.customRenderFunction=function(o,a,s,d){var p;if(t._linkedWithPrePass){if(!t._prePassRenderer.enabled)return;t._scene.getEngine().bindAttachments(t._attachments)}if(d.length){for(e.setColorWrite(!1),p=0;p=samplesCount) +break; +vec2 offset=vUV+velocity*(hlim+float(i)); +result+=texture2D(textureSampler,offset); +} +gl_FragColor=result/float(samplesCount); +gl_FragColor.a=1.0; +#else +vec2 texelSize=1.0/screenSize; +float depth=texture2D(depthSampler,vUV).r; +vec4 cpos=vec4(vUV*2.0-1.0,depth,1.0); +cpos=cpos*inverseViewProjection; +vec4 ppos=cpos*prevViewProjection; +ppos.xyz/=ppos.w; +ppos.xy=ppos.xy*0.5+0.5; +vec2 velocity=(ppos.xy-vUV)*motionScale*motionStrength; +float speed=length(velocity/texelSize); +int nSamples=int(clamp(speed,1.0,SAMPLES)); +vec4 result=texture2D(textureSampler,vUV); +for (int i=1; i=nSamples) +break; +vec2 offset1=vUV+velocity*(float(i)/float(nSamples-1)-0.5); +result+=texture2D(textureSampler,offset1); +} +gl_FragColor=result/float(nSamples); +#endif +#else +gl_FragColor=texture2D(textureSampler,vUV); +#endif +} +`;ze.a.ShadersStore.motionBlurPixelShader=hg;var Gc=function(r){function t(e,n,i,o,a,s,d,p,b,x){p===void 0&&(p=h.a.TEXTURETYPE_UNSIGNED_INT),b===void 0&&(b=!1),x===void 0&&(x=!0);var O=r.call(this,e,"motionBlur",["motionStrength","motionScale","screenSize","inverseViewProjection","prevViewProjection"],["velocitySampler"],i,o,a,s,d,`#define GEOMETRY_SUPPORTED +#define SAMPLES 64.0 +#define OBJECT_BASED`,p,void 0,null,b)||this;return O.motionStrength=1,O._motionBlurSamples=32,O._isObjectBased=!0,O._forceGeometryBuffer=!1,O._geometryBufferRenderer=null,O._prePassRenderer=null,O._invViewProjection=null,O._previousViewProjection=null,O._forceGeometryBuffer=x,O._forceGeometryBuffer?(O._geometryBufferRenderer=n.enableGeometryBufferRenderer(),O._geometryBufferRenderer&&(O._geometryBufferRenderer.enableVelocity=!0)):(O._prePassRenderer=n.enablePrePassRenderer(),O._prePassRenderer&&(O._prePassRenderer.markAsDirty(),O._prePassEffectConfiguration=new ug)),O._applyMode(),O}return Object(c.d)(t,r),Object.defineProperty(t.prototype,"motionBlurSamples",{get:function(){return this._motionBlurSamples},set:function(e){this._motionBlurSamples=e,this._updateEffect()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"isObjectBased",{get:function(){return this._isObjectBased},set:function(e){this._isObjectBased!==e&&(this._isObjectBased=e,this._applyMode())},enumerable:!1,configurable:!0}),t.prototype.getClassName=function(){return"MotionBlurPostProcess"},t.prototype.excludeSkinnedMesh=function(e){if(e.skeleton){var n=void 0;if(this._geometryBufferRenderer)n=this._geometryBufferRenderer.excludedSkinnedMeshesFromVelocity;else{if(!this._prePassRenderer)return;n=this._prePassRenderer.excludedSkinnedMesh}n.push(e)}},t.prototype.removeExcludedSkinnedMesh=function(e){if(e.skeleton){var n=void 0;if(this._geometryBufferRenderer)n=this._geometryBufferRenderer.excludedSkinnedMeshesFromVelocity;else{if(!this._prePassRenderer)return;n=this._prePassRenderer.excludedSkinnedMesh}var i=n.indexOf(e);i!==-1&&n.splice(i,1)}},t.prototype.dispose=function(e){this._geometryBufferRenderer&&(this._geometryBufferRenderer._previousTransformationMatrices={},this._geometryBufferRenderer._previousBonesTransformationMatrices={},this._geometryBufferRenderer.excludedSkinnedMeshesFromVelocity=[]),r.prototype.dispose.call(this,e)},t.prototype._applyMode=function(){var e=this;if(!this._geometryBufferRenderer&&!this._prePassRenderer)return l.a.Warn("Multiple Render Target support needed to compute object based motion blur"),this.updateEffect();this._updateEffect(),this._invViewProjection=null,this._previousViewProjection=null,this.isObjectBased?(this._prePassRenderer&&this._prePassEffectConfiguration&&(this._prePassEffectConfiguration.texturesRequired[0]=h.a.PREPASS_VELOCITY_TEXTURE_TYPE),this.onApply=function(n){return e._onApplyObjectBased(n)}):(this._invViewProjection=u.a.Identity(),this._previousViewProjection=u.a.Identity(),this._prePassRenderer&&this._prePassEffectConfiguration&&(this._prePassEffectConfiguration.texturesRequired[0]=h.a.PREPASS_DEPTHNORMAL_TEXTURE_TYPE),this.onApply=function(n){return e._onApplyScreenBased(n)})},t.prototype._onApplyObjectBased=function(e){if(e.setVector2("screenSize",new u.d(this.width,this.height)),e.setFloat("motionScale",this._scene.getAnimationRatio()),e.setFloat("motionStrength",this.motionStrength),this._geometryBufferRenderer){var n=this._geometryBufferRenderer.getTextureIndex(li.VELOCITY_TEXTURE_TYPE);e.setTexture("velocitySampler",this._geometryBufferRenderer.getGBuffer().textures[n])}else this._prePassRenderer&&(n=this._prePassRenderer.getIndex(h.a.PREPASS_VELOCITY_TEXTURE_TYPE),e.setTexture("velocitySampler",this._prePassRenderer.prePassRT.textures[n]))},t.prototype._onApplyScreenBased=function(e){var n=this._scene.getProjectionMatrix().multiply(this._scene.getViewMatrix());if(n.invertToRef(this._invViewProjection),e.setMatrix("inverseViewProjection",this._invViewProjection),e.setMatrix("prevViewProjection",this._previousViewProjection),this._previousViewProjection=n,e.setVector2("screenSize",new u.d(this.width,this.height)),e.setFloat("motionScale",this._scene.getAnimationRatio()),e.setFloat("motionStrength",this.motionStrength),this._geometryBufferRenderer){var i=this._geometryBufferRenderer.getTextureIndex(li.DEPTHNORMAL_TEXTURE_TYPE);e.setTexture("depthSampler",this._geometryBufferRenderer.getGBuffer().textures[i])}else this._prePassRenderer&&(i=this._prePassRenderer.getIndex(h.a.PREPASS_DEPTHNORMAL_TEXTURE_TYPE),e.setTexture("depthSampler",this._prePassRenderer.prePassRT.textures[i]))},t.prototype._updateEffect=function(){if(this._geometryBufferRenderer||this._prePassRenderer){var e=["#define GEOMETRY_SUPPORTED","#define SAMPLES "+this._motionBlurSamples.toFixed(1),this._isObjectBased?"#define OBJECT_BASED":"#define SCREEN_BASED"];this.updateEffect(e.join(` +`))}},t._Parse=function(e,n,i,o){return L.a.Parse(function(){return new t(e.name,i,e.options,n,e.renderTargetSamplingMode,i.getEngine(),e.reusable,e.textureType,!1)},e,i,o)},Object(c.c)([Object(L.c)()],t.prototype,"motionStrength",void 0),Object(c.c)([Object(L.c)()],t.prototype,"motionBlurSamples",null),Object(c.c)([Object(L.c)()],t.prototype,"isObjectBased",null),t}(_t);C.a.RegisteredTypes["BABYLON.MotionBlurPostProcess"]=Gc;var dg=` +varying vec2 vUV; +uniform sampler2D textureSampler; +uniform sampler2D refractionSampler; + +uniform vec3 baseColor; +uniform float depth; +uniform float colorLevel; +void main() { +float ref=1.0-texture2D(refractionSampler,vUV).r; +vec2 uv=vUV-vec2(0.5); +vec2 offset=uv*depth*ref; +vec3 sourceColor=texture2D(textureSampler,vUV-offset).rgb; +gl_FragColor=vec4(sourceColor+sourceColor*ref*colorLevel,1.0); +}`;ze.a.ShadersStore.refractionPixelShader=dg;var kd=function(r){function t(e,n,i,o,a,s,d,p,b,x){var O=r.call(this,e,"refraction",["baseColor","depth","colorLevel"],["refractionSampler"],s,d,p,b,x)||this;return O._ownRefractionTexture=!0,O.color=i,O.depth=o,O.colorLevel=a,O.refractionTextureUrl=n,O.onActivateObservable.add(function(B){O._refTexture=O._refTexture||new we.a(n,B.getScene())}),O.onApplyObservable.add(function(B){B.setColor3("baseColor",O.color),B.setFloat("depth",O.depth),B.setFloat("colorLevel",O.colorLevel),B.setTexture("refractionSampler",O._refTexture)}),O}return Object(c.d)(t,r),Object.defineProperty(t.prototype,"refractionTexture",{get:function(){return this._refTexture},set:function(e){this._refTexture&&this._ownRefractionTexture&&this._refTexture.dispose(),this._refTexture=e,this._ownRefractionTexture=!1},enumerable:!1,configurable:!0}),t.prototype.getClassName=function(){return"RefractionPostProcess"},t.prototype.dispose=function(e){this._refTexture&&this._ownRefractionTexture&&(this._refTexture.dispose(),this._refTexture=null),r.prototype.dispose.call(this,e)},t._Parse=function(e,n,i,o){return L.a.Parse(function(){return new t(e.name,e.refractionTextureUrl,e.color,e.depth,e.colorLevel,e.options,n,e.renderTargetSamplingMode,i.getEngine(),e.reusable)},e,i,o)},Object(c.c)([Object(L.c)()],t.prototype,"color",void 0),Object(c.c)([Object(L.c)()],t.prototype,"depth",void 0),Object(c.c)([Object(L.c)()],t.prototype,"colorLevel",void 0),Object(c.c)([Object(L.c)()],t.prototype,"refractionTextureUrl",void 0),t}(_t);C.a.RegisteredTypes["BABYLON.RefractionPostProcess"]=kd;var fg=` +varying vec2 vUV; +uniform sampler2D textureSampler; +uniform vec2 screenSize; +uniform vec2 sharpnessAmounts; +void main(void) +{ +vec2 onePixel=vec2(1.0,1.0)/screenSize; +vec4 color=texture2D(textureSampler,vUV); +vec4 edgeDetection=texture2D(textureSampler,vUV+onePixel*vec2(0,-1)) + +texture2D(textureSampler,vUV+onePixel*vec2(-1,0)) + +texture2D(textureSampler,vUV+onePixel*vec2(1,0)) + +texture2D(textureSampler,vUV+onePixel*vec2(0,1)) - +color*4.0; +gl_FragColor=max(vec4(color.rgb*sharpnessAmounts.y,color.a)-(sharpnessAmounts.x*vec4(edgeDetection.rgb,0)),0.); +}`;ze.a.ShadersStore.sharpenPixelShader=fg;var zc=function(r){function t(e,n,i,o,a,s,d,p){d===void 0&&(d=h.a.TEXTURETYPE_UNSIGNED_INT),p===void 0&&(p=!1);var b=r.call(this,e,"sharpen",["sharpnessAmounts","screenSize"],null,n,i,o,a,s,null,d,void 0,null,p)||this;return b.colorAmount=1,b.edgeAmount=.3,b.onApply=function(x){x.setFloat2("screenSize",b.width,b.height),x.setFloat2("sharpnessAmounts",b.edgeAmount,b.colorAmount)},b}return Object(c.d)(t,r),t.prototype.getClassName=function(){return"SharpenPostProcess"},t._Parse=function(e,n,i,o){return L.a.Parse(function(){return new t(e.name,e.options,n,e.renderTargetSamplingMode,i.getEngine(),e.textureType,e.reusable)},e,i,o)},Object(c.c)([Object(L.c)()],t.prototype,"colorAmount",void 0),Object(c.c)([Object(L.c)()],t.prototype,"edgeAmount",void 0),t}(_t);C.a.RegisteredTypes["BABYLON.SharpenPostProcess"]=zc;var Vr=function(){function r(t,e){this.engine=t,this._name=e,this._renderEffects={},this._renderEffectsForIsolatedPass=new Array,this._cameras=[]}return Object.defineProperty(r.prototype,"name",{get:function(){return this._name},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"cameras",{get:function(){return this._cameras},enumerable:!1,configurable:!0}),r.prototype.getClassName=function(){return"PostProcessRenderPipeline"},Object.defineProperty(r.prototype,"isSupported",{get:function(){for(var t in this._renderEffects)if(this._renderEffects.hasOwnProperty(t)&&!this._renderEffects[t].isSupported)return!1;return!0},enumerable:!1,configurable:!0}),r.prototype.addEffect=function(t){this._renderEffects[t._name]=t},r.prototype._rebuild=function(){},r.prototype._enableEffect=function(t,e){var n=this._renderEffects[t];n&&n._enable(Xe.b.MakeArray(e||this._cameras))},r.prototype._disableEffect=function(t,e){var n=this._renderEffects[t];n&&n._disable(Xe.b.MakeArray(e||this._cameras))},r.prototype._attachCameras=function(t,e){var n=Xe.b.MakeArray(t||this._cameras);if(n){var i,o=[];for(i=0;i0){var n=this._renderEffects[e[0]].getPostProcesses();n&&(n[0].samples=t)}return!0},r.prototype.setPrePassRenderer=function(t){return!1},r.prototype.dispose=function(){},Object(c.c)([Object(L.c)()],r.prototype,"_name",void 0),r}(),Gd=function(){function r(){this._renderPipelines={}}return Object.defineProperty(r.prototype,"supportedPipelines",{get:function(){var t=[];for(var e in this._renderPipelines)if(this._renderPipelines.hasOwnProperty(e)){var n=this._renderPipelines[e];n.isSupported&&t.push(n)}return t},enumerable:!1,configurable:!0}),r.prototype.addPipeline=function(t){this._renderPipelines[t._name]=t},r.prototype.attachCamerasToRenderPipeline=function(t,e,n){n===void 0&&(n=!1);var i=this._renderPipelines[t];i&&i._attachCameras(e,n)},r.prototype.detachCamerasFromRenderPipeline=function(t,e){var n=this._renderPipelines[t];n&&n._detachCameras(e)},r.prototype.enableEffectInPipeline=function(t,e,n){var i=this._renderPipelines[t];i&&i._enableEffect(e,n)},r.prototype.disableEffectInPipeline=function(t,e,n){var i=this._renderPipelines[t];i&&i._disableEffect(e,n)},r.prototype.update=function(){for(var t in this._renderPipelines)if(this._renderPipelines.hasOwnProperty(t)){var e=this._renderPipelines[t];e.isSupported?e._update():(e.dispose(),delete this._renderPipelines[t])}},r.prototype._rebuild=function(){for(var t in this._renderPipelines)this._renderPipelines.hasOwnProperty(t)&&this._renderPipelines[t]._rebuild()},r.prototype.dispose=function(){for(var t in this._renderPipelines)this._renderPipelines.hasOwnProperty(t)&&this._renderPipelines[t].dispose()},r}();Object.defineProperty(_e.a.prototype,"postProcessRenderPipelineManager",{get:function(){if(!this._postProcessRenderPipelineManager){var r=this._getComponent(at.a.NAME_POSTPROCESSRENDERPIPELINEMANAGER);r||(r=new zd(this),this._addComponent(r)),this._postProcessRenderPipelineManager=new Gd}return this._postProcessRenderPipelineManager},enumerable:!0,configurable:!0});var zd=function(){function r(t){this.name=at.a.NAME_POSTPROCESSRENDERPIPELINEMANAGER,this.scene=t}return r.prototype.register=function(){this.scene._gatherRenderTargetsStage.registerStep(at.a.STEP_GATHERRENDERTARGETS_POSTPROCESSRENDERPIPELINEMANAGER,this,this._gatherRenderTargets)},r.prototype.rebuild=function(){this.scene._postProcessRenderPipelineManager&&this.scene._postProcessRenderPipelineManager._rebuild()},r.prototype.dispose=function(){this.scene._postProcessRenderPipelineManager&&this.scene._postProcessRenderPipelineManager.dispose()},r.prototype._gatherRenderTargets=function(){this.scene._postProcessRenderPipelineManager&&this.scene._postProcessRenderPipelineManager.update()},r}(),jd=function(r){function t(e,n,i,o,a){e===void 0&&(e=""),n===void 0&&(n=!0),i===void 0&&(i=te.a.LastCreatedScene),a===void 0&&(a=!0);var s=r.call(this,i.getEngine(),e)||this;s._camerasToBeAttached=[],s.SharpenPostProcessId="SharpenPostProcessEffect",s.ImageProcessingPostProcessId="ImageProcessingPostProcessEffect",s.FxaaPostProcessId="FxaaPostProcessEffect",s.ChromaticAberrationPostProcessId="ChromaticAberrationPostProcessEffect",s.GrainPostProcessId="GrainPostProcessEffect",s._glowLayer=null,s.animations=[],s._imageProcessingConfigurationObserver=null,s._sharpenEnabled=!1,s._bloomEnabled=!1,s._depthOfFieldEnabled=!1,s._depthOfFieldBlurLevel=ar.Low,s._fxaaEnabled=!1,s._imageProcessingEnabled=!0,s._bloomScale=.5,s._chromaticAberrationEnabled=!1,s._grainEnabled=!1,s._buildAllowed=!0,s.onBuildObservable=new R.c,s._resizeObserver=null,s._hardwareScaleLevel=1,s._bloomKernel=64,s._bloomWeight=.15,s._bloomThreshold=.9,s._samples=1,s._hasCleared=!1,s._prevPostProcess=null,s._prevPrevPostProcess=null,s._depthOfFieldSceneObserver=null,s._cameras=o||i.cameras,s._cameras=s._cameras.slice(),s._camerasToBeAttached=s._cameras.slice(),s._buildAllowed=a,s._scene=i;var d=s._scene.getEngine().getCaps();s._hdr=n&&(d.textureHalfFloatRender||d.textureFloatRender),s._hdr?d.textureHalfFloatRender?s._defaultPipelineTextureType=h.a.TEXTURETYPE_HALF_FLOAT:d.textureFloatRender&&(s._defaultPipelineTextureType=h.a.TEXTURETYPE_FLOAT):s._defaultPipelineTextureType=h.a.TEXTURETYPE_UNSIGNED_INT,i.postProcessRenderPipelineManager.addPipeline(s);var p=s._scene.getEngine();return s.sharpen=new zc("sharpen",1,null,we.a.BILINEAR_SAMPLINGMODE,p,!1,s._defaultPipelineTextureType,!0),s._sharpenEffect=new Rt(p,s.SharpenPostProcessId,function(){return s.sharpen},!0),s.depthOfField=new Vc(s._scene,null,s._depthOfFieldBlurLevel,s._defaultPipelineTextureType,!0),s.bloom=new Fc(s._scene,s._bloomScale,s._bloomWeight,s.bloomKernel,s._defaultPipelineTextureType,!0),s.chromaticAberration=new Bc("ChromaticAberration",p.getRenderWidth(),p.getRenderHeight(),1,null,we.a.BILINEAR_SAMPLINGMODE,p,!1,s._defaultPipelineTextureType,!0),s._chromaticAberrationEffect=new Rt(p,s.ChromaticAberrationPostProcessId,function(){return s.chromaticAberration},!0),s.grain=new kc("Grain",1,null,we.a.BILINEAR_SAMPLINGMODE,p,!1,s._defaultPipelineTextureType,!0),s._grainEffect=new Rt(p,s.GrainPostProcessId,function(){return s.grain},!0),s._resizeObserver=p.onResizeObservable.add(function(){s._hardwareScaleLevel=p.getHardwareScalingLevel(),s.bloomKernel=s.bloomKernel}),s._imageProcessingConfigurationObserver=s._scene.imageProcessingConfiguration.onUpdateParameters.add(function(){s.bloom._downscale._exposure=s._scene.imageProcessingConfiguration.exposure,s.imageProcessingEnabled!==s._scene.imageProcessingConfiguration.isEnabled&&(s._imageProcessingEnabled=s._scene.imageProcessingConfiguration.isEnabled,s._buildPipeline())}),s._buildPipeline(),s}return Object(c.d)(t,r),Object.defineProperty(t.prototype,"scene",{get:function(){return this._scene},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"sharpenEnabled",{get:function(){return this._sharpenEnabled},set:function(e){this._sharpenEnabled!==e&&(this._sharpenEnabled=e,this._buildPipeline())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"bloomKernel",{get:function(){return this._bloomKernel},set:function(e){this._bloomKernel=e,this.bloom.kernel=e/this._hardwareScaleLevel},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"bloomWeight",{get:function(){return this._bloomWeight},set:function(e){this._bloomWeight!==e&&(this.bloom.weight=e,this._bloomWeight=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"bloomThreshold",{get:function(){return this._bloomThreshold},set:function(e){this._bloomThreshold!==e&&(this.bloom.threshold=e,this._bloomThreshold=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"bloomScale",{get:function(){return this._bloomScale},set:function(e){this._bloomScale!==e&&(this._bloomScale=e,this._rebuildBloom(),this._buildPipeline())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"bloomEnabled",{get:function(){return this._bloomEnabled},set:function(e){this._bloomEnabled!==e&&(this._bloomEnabled=e,this._buildPipeline())},enumerable:!1,configurable:!0}),t.prototype._rebuildBloom=function(){var e=this.bloom;this.bloom=new Fc(this._scene,this.bloomScale,this._bloomWeight,this.bloomKernel,this._defaultPipelineTextureType,!1),this.bloom.threshold=e.threshold;for(var n=0;n1){for(var i=0,o=this._cameras;i-1&&(e.depthOfField.depthTexture=d.enableDepthRenderer(d.activeCamera).getDepthMap())})}else{this._scene.onAfterRenderTargetsRenderObservable.remove(this._depthOfFieldSceneObserver);var s=this._scene.enableDepthRenderer(this._cameras[0]);this.depthOfField.depthTexture=s.getDepthMap()}this.depthOfField._isReady()||this.depthOfField._updateEffects(),this.addEffect(this.depthOfField),this._setAutoClearAndTextureSharing(this.depthOfField._effects[0],!0)}else this._scene.onAfterRenderTargetsRenderObservable.remove(this._depthOfFieldSceneObserver);this.bloomEnabled&&(this.bloom._isReady()||this.bloom._updateEffects(),this.addEffect(this.bloom),this._setAutoClearAndTextureSharing(this.bloom._effects[0],!0)),this._imageProcessingEnabled&&(this.imageProcessing=new zo("imageProcessing",1,null,we.a.BILINEAR_SAMPLINGMODE,n,!1,this._defaultPipelineTextureType),this._hdr?(this.addEffect(new Rt(n,this.ImageProcessingPostProcessId,function(){return e.imageProcessing},!0)),this._setAutoClearAndTextureSharing(this.imageProcessing)):this._scene.imageProcessingConfiguration.applyByPostProcess=!1,this.cameras&&this.cameras.length!==0||(this._scene.imageProcessingConfiguration.applyByPostProcess=!1),this.imageProcessing.getEffect()||this.imageProcessing._updateParameters()),this.sharpenEnabled&&(this.sharpen.isReady()||this.sharpen.updateEffect(),this.addEffect(this._sharpenEffect),this._setAutoClearAndTextureSharing(this.sharpen)),this.grainEnabled&&(this.grain.isReady()||this.grain.updateEffect(),this.addEffect(this._grainEffect),this._setAutoClearAndTextureSharing(this.grain)),this.chromaticAberrationEnabled&&(this.chromaticAberration.isReady()||this.chromaticAberration.updateEffect(),this.addEffect(this._chromaticAberrationEffect),this._setAutoClearAndTextureSharing(this.chromaticAberration)),this.fxaaEnabled&&(this.fxaa=new Co("fxaa",1,null,we.a.BILINEAR_SAMPLINGMODE,n,!1,this._defaultPipelineTextureType),this.addEffect(new Rt(n,this.FxaaPostProcessId,function(){return e.fxaa},!0)),this._setAutoClearAndTextureSharing(this.fxaa,!0)),this._cameras!==null&&this._scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(this._name,this._cameras),this._scene.activeCameras&&this._scene.activeCameras.length>1&&(this._scene.autoClear=!0),!this._enableMSAAOnFirstPostProcess(this.samples)&&this.samples>1&&l.a.Warn("MSAA failed to enable, MSAA is only supported in browsers that support webGL >= 2.0"),this.onBuildObservable.notifyObservers(this)}},t.prototype._disposePostProcesses=function(e){e===void 0&&(e=!1);for(var n=0;n1.0) { lum_threshold=0.94+0.01*threshold; } +else { lum_threshold=0.5+0.44*threshold; } +luminance=clamp((luminance-lum_threshold)*(1.0/(1.0-lum_threshold)),0.0,1.0); +highlight*=luminance*gain; +highlight.a=1.0; +return highlight; +} +void main(void) +{ +vec4 original=texture2D(textureSampler,vUV); + +if (gain == -1.0) { +gl_FragColor=vec4(0.0,0.0,0.0,1.0); +return; +} +float w=2.0/screen_width; +float h=2.0/screen_height; +float weight=1.0; + +vec4 blurred=vec4(0.0,0.0,0.0,0.0); +#ifdef PENTAGON +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.84*w,0.43*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.48*w,-1.29*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.61*w,1.51*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.55*w,-0.74*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.71*w,-0.52*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.94*w,1.59*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.40*w,-1.87*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.62*w,1.16*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.09*w,0.25*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.46*w,-1.71*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.08*w,2.42*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.85*w,-1.89*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.89*w,0.16*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.29*w,1.88*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.40*w,-2.81*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.54*w,2.26*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.60*w,-0.61*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.31*w,-1.30*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.83*w,2.53*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.12*w,-2.48*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.60*w,1.11*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.82*w,0.99*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.50*w,-2.81*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.85*w,3.33*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.94*w,-1.92*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.27*w,-0.53*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.95*w,2.48*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.23*w,-3.04*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.17*w,2.05*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.97*w,-0.04*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.25*w,-2.00*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.31*w,3.08*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.94*w,-2.59*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.37*w,0.64*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-3.13*w,1.93*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.03*w,-3.65*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.60*w,3.17*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-3.14*w,-1.19*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.00*w,-1.19*h))); +#else +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.85*w,0.36*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.52*w,-1.14*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.46*w,1.42*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.46*w,-0.83*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.79*w,-0.42*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.11*w,1.62*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.29*w,-2.07*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.69*w,1.39*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.28*w,0.12*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.65*w,-1.69*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.08*w,2.44*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.63*w,-1.90*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.55*w,0.31*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.13*w,1.52*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.56*w,-2.61*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.38*w,2.34*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.64*w,-0.81*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.53*w,-1.21*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.06*w,2.63*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.00*w,-2.69*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.59*w,1.32*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.82*w,0.78*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.57*w,-2.50*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.54*w,2.93*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.39*w,-1.81*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.01*w,-0.28*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.04*w,2.25*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.02*w,-3.05*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.09*w,2.25*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-3.07*w,-0.25*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.44*w,-1.90*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.52*w,3.05*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.68*w,-2.61*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.01*w,0.79*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.76*w,1.46*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.05*w,-2.94*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.21*w,2.88*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.84*w,-1.30*h))); +blurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.98*w,-0.96*h))); +#endif +blurred/=39.0; +gl_FragColor=blurred; + +}`;ze.a.ShadersStore.lensHighlightsPixelShader=pg;var _g=` + + + + +uniform sampler2D textureSampler; +uniform sampler2D highlightsSampler; +uniform sampler2D depthSampler; +uniform sampler2D grainSampler; + +uniform float grain_amount; +uniform bool blur_noise; +uniform float screen_width; +uniform float screen_height; +uniform float distortion; +uniform bool dof_enabled; + +uniform float screen_distance; +uniform float aperture; +uniform float darken; +uniform float edge_blur; +uniform bool highlights; + +uniform float near; +uniform float far; + +varying vec2 vUV; + +#define PI 3.14159265 +#define TWOPI 6.28318530 +#define inverse_focal_length 0.1 + +vec2 centered_screen_pos; +vec2 distorted_coords; +float radius2; +float radius; + +vec2 rand(vec2 co) +{ +float noise1=(fract(sin(dot(co,vec2(12.9898,78.233)))*43758.5453)); +float noise2=(fract(sin(dot(co,vec2(12.9898,78.233)*2.0))*43758.5453)); +return clamp(vec2(noise1,noise2),0.0,1.0); +} + +vec2 getDistortedCoords(vec2 coords) { +if (distortion == 0.0) { return coords; } +vec2 direction=1.0*normalize(centered_screen_pos); +vec2 dist_coords=vec2(0.5,0.5); +dist_coords.x=0.5+direction.x*radius2*1.0; +dist_coords.y=0.5+direction.y*radius2*1.0; +float dist_amount=clamp(distortion*0.23,0.0,1.0); +dist_coords=mix(coords,dist_coords,dist_amount); +return dist_coords; +} + +float sampleScreen(inout vec4 color,const in vec2 offset,const in float weight) { + +vec2 coords=distorted_coords; +float angle=rand(coords*100.0).x*TWOPI; +coords+=vec2(offset.x*cos(angle)-offset.y*sin(angle),offset.x*sin(angle)+offset.y*cos(angle)); +color+=texture2D(textureSampler,coords)*weight; +return weight; +} + +float getBlurLevel(float size) { +return min(3.0,ceil(size/1.0)); +} + +vec4 getBlurColor(float size) { +vec4 col=texture2D(textureSampler,distorted_coords); +if (size == 0.0) { return col; } + + +float blur_level=getBlurLevel(size); +float w=(size/screen_width); +float h=(size/screen_height); +float total_weight=1.0; +vec2 sample_coords; +total_weight+=sampleScreen(col,vec2(-0.50*w,0.24*h),0.93); +total_weight+=sampleScreen(col,vec2(0.30*w,-0.75*h),0.90); +total_weight+=sampleScreen(col,vec2(0.36*w,0.96*h),0.87); +total_weight+=sampleScreen(col,vec2(-1.08*w,-0.55*h),0.85); +total_weight+=sampleScreen(col,vec2(1.33*w,-0.37*h),0.83); +total_weight+=sampleScreen(col,vec2(-0.82*w,1.31*h),0.80); +total_weight+=sampleScreen(col,vec2(-0.31*w,-1.67*h),0.78); +total_weight+=sampleScreen(col,vec2(1.47*w,1.11*h),0.76); +total_weight+=sampleScreen(col,vec2(-1.97*w,0.19*h),0.74); +total_weight+=sampleScreen(col,vec2(1.42*w,-1.57*h),0.72); +if (blur_level>1.0) { +total_weight+=sampleScreen(col,vec2(0.01*w,2.25*h),0.70); +total_weight+=sampleScreen(col,vec2(-1.62*w,-1.74*h),0.67); +total_weight+=sampleScreen(col,vec2(2.49*w,0.20*h),0.65); +total_weight+=sampleScreen(col,vec2(-2.07*w,1.61*h),0.63); +total_weight+=sampleScreen(col,vec2(0.46*w,-2.70*h),0.61); +total_weight+=sampleScreen(col,vec2(1.55*w,2.40*h),0.59); +total_weight+=sampleScreen(col,vec2(-2.88*w,-0.75*h),0.56); +total_weight+=sampleScreen(col,vec2(2.73*w,-1.44*h),0.54); +total_weight+=sampleScreen(col,vec2(-1.08*w,3.02*h),0.52); +total_weight+=sampleScreen(col,vec2(-1.28*w,-3.05*h),0.49); +} +if (blur_level>2.0) { +total_weight+=sampleScreen(col,vec2(3.11*w,1.43*h),0.46); +total_weight+=sampleScreen(col,vec2(-3.36*w,1.08*h),0.44); +total_weight+=sampleScreen(col,vec2(1.80*w,-3.16*h),0.41); +total_weight+=sampleScreen(col,vec2(0.83*w,3.65*h),0.38); +total_weight+=sampleScreen(col,vec2(-3.16*w,-2.19*h),0.34); +total_weight+=sampleScreen(col,vec2(3.92*w,-0.53*h),0.31); +total_weight+=sampleScreen(col,vec2(-2.59*w,3.12*h),0.26); +total_weight+=sampleScreen(col,vec2(-0.20*w,-4.15*h),0.22); +total_weight+=sampleScreen(col,vec2(3.02*w,3.00*h),0.15); +} +col/=total_weight; + +if (darken>0.0) { +col.rgb*=clamp(0.3,1.0,1.05-size*0.5*darken); +} + + + + +return col; +} +void main(void) +{ + +centered_screen_pos=vec2(vUV.x-0.5,vUV.y-0.5); +radius2=centered_screen_pos.x*centered_screen_pos.x+centered_screen_pos.y*centered_screen_pos.y; +radius=sqrt(radius2); +distorted_coords=getDistortedCoords(vUV); +vec2 texels_coords=vec2(vUV.x*screen_width,vUV.y*screen_height); +float depth=texture2D(depthSampler,distorted_coords).r; +float distance=near+(far-near)*depth; +vec4 color=texture2D(textureSampler,vUV); + + +float coc=abs(aperture*(screen_distance*(inverse_focal_length-1.0/distance)-1.0)); + +if (dof_enabled == false || coc<0.07) { coc=0.0; } + +float edge_blur_amount=0.0; +if (edge_blur>0.0) { +edge_blur_amount=clamp((radius*2.0-1.0+0.15*edge_blur)*1.5,0.0,1.0)*1.3; +} + +float blur_amount=max(edge_blur_amount,coc); + +if (blur_amount == 0.0) { +gl_FragColor=texture2D(textureSampler,distorted_coords); +} +else { + +gl_FragColor=getBlurColor(blur_amount*1.7); + +if (highlights) { +gl_FragColor.rgb+=clamp(coc,0.0,1.0)*texture2D(highlightsSampler,distorted_coords).rgb; +} +if (blur_noise) { + +vec2 noise=rand(distorted_coords)*0.01*blur_amount; +vec2 blurred_coord=vec2(distorted_coords.x+noise.x,distorted_coords.y+noise.y); +gl_FragColor=0.04*texture2D(textureSampler,blurred_coord)+0.96*gl_FragColor; +} +} + +if (grain_amount>0.0) { +vec4 grain_color=texture2D(grainSampler,texels_coords*0.003); +gl_FragColor.rgb+=(-0.5+grain_color.rgb)*0.30*grain_amount; +} +} +`;ze.a.ShadersStore.depthOfFieldPixelShader=_g;var mg=function(r){function t(e,n,i,o,a){o===void 0&&(o=1);var s=r.call(this,i.getEngine(),e)||this;return s.LensChromaticAberrationEffect="LensChromaticAberrationEffect",s.HighlightsEnhancingEffect="HighlightsEnhancingEffect",s.LensDepthOfFieldEffect="LensDepthOfFieldEffect",s._pentagonBokehIsEnabled=!1,s._scene=i,s._depthTexture=i.enableDepthRenderer().getDepthMap(),n.grain_texture?s._grainTexture=n.grain_texture:s._createGrainTexture(),s._edgeBlur=n.edge_blur?n.edge_blur:0,s._grainAmount=n.grain_amount?n.grain_amount:0,s._chromaticAberration=n.chromatic_aberration?n.chromatic_aberration:0,s._distortion=n.distortion?n.distortion:0,s._highlightsGain=n.dof_gain!==void 0?n.dof_gain:-1,s._highlightsThreshold=n.dof_threshold?n.dof_threshold:1,s._dofDistance=n.dof_focus_distance!==void 0?n.dof_focus_distance:-1,s._dofAperture=n.dof_aperture?n.dof_aperture:1,s._dofDarken=n.dof_darken?n.dof_darken:0,s._dofPentagon=n.dof_pentagon===void 0||n.dof_pentagon,s._blurNoise=n.blur_noise===void 0||n.blur_noise,s._createChromaticAberrationPostProcess(o),s._createHighlightsPostProcess(o),s._createDepthOfFieldPostProcess(o/4),s.addEffect(new Rt(i.getEngine(),s.LensChromaticAberrationEffect,function(){return s._chromaticAberrationPostProcess},!0)),s.addEffect(new Rt(i.getEngine(),s.HighlightsEnhancingEffect,function(){return s._highlightsPostProcess},!0)),s.addEffect(new Rt(i.getEngine(),s.LensDepthOfFieldEffect,function(){return s._depthOfFieldPostProcess},!0)),s._highlightsGain===-1&&s._disableEffect(s.HighlightsEnhancingEffect,null),i.postProcessRenderPipelineManager.addPipeline(s),a&&i.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(e,a),s}return Object(c.d)(t,r),t.prototype.getClassName=function(){return"LensRenderingPipeline"},Object.defineProperty(t.prototype,"scene",{get:function(){return this._scene},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"edgeBlur",{get:function(){return this._edgeBlur},set:function(e){this.setEdgeBlur(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"grainAmount",{get:function(){return this._grainAmount},set:function(e){this.setGrainAmount(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"chromaticAberration",{get:function(){return this._chromaticAberration},set:function(e){this.setChromaticAberration(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"dofAperture",{get:function(){return this._dofAperture},set:function(e){this.setAperture(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"edgeDistortion",{get:function(){return this._distortion},set:function(e){this.setEdgeDistortion(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"dofDistortion",{get:function(){return this._dofDistance},set:function(e){this.setFocusDistance(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"darkenOutOfFocus",{get:function(){return this._dofDarken},set:function(e){this.setDarkenOutOfFocus(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"blurNoise",{get:function(){return this._blurNoise},set:function(e){this._blurNoise=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"pentagonBokeh",{get:function(){return this._pentagonBokehIsEnabled},set:function(e){e?this.enablePentagonBokeh():this.disablePentagonBokeh()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"highlightsGain",{get:function(){return this._highlightsGain},set:function(e){this.setHighlightsGain(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"highlightsThreshold",{get:function(){return this._highlightsThreshold},set:function(e){this.setHighlightsThreshold(e)},enumerable:!1,configurable:!0}),t.prototype.setEdgeBlur=function(e){this._edgeBlur=e},t.prototype.disableEdgeBlur=function(){this._edgeBlur=0},t.prototype.setGrainAmount=function(e){this._grainAmount=e},t.prototype.disableGrain=function(){this._grainAmount=0},t.prototype.setChromaticAberration=function(e){this._chromaticAberration=e},t.prototype.disableChromaticAberration=function(){this._chromaticAberration=0},t.prototype.setEdgeDistortion=function(e){this._distortion=e},t.prototype.disableEdgeDistortion=function(){this._distortion=0},t.prototype.setFocusDistance=function(e){this._dofDistance=e},t.prototype.disableDepthOfField=function(){this._dofDistance=-1},t.prototype.setAperture=function(e){this._dofAperture=e},t.prototype.setDarkenOutOfFocus=function(e){this._dofDarken=e},t.prototype.enablePentagonBokeh=function(){this._highlightsPostProcess.updateEffect(`#define PENTAGON +`),this._pentagonBokehIsEnabled=!0},t.prototype.disablePentagonBokeh=function(){this._pentagonBokehIsEnabled=!1,this._highlightsPostProcess.updateEffect()},t.prototype.enableNoiseBlur=function(){this._blurNoise=!0},t.prototype.disableNoiseBlur=function(){this._blurNoise=!1},t.prototype.setHighlightsGain=function(e){this._highlightsGain=e},t.prototype.setHighlightsThreshold=function(e){this._highlightsGain===-1&&(this._highlightsGain=1),this._highlightsThreshold=e},t.prototype.disableHighlights=function(){this._highlightsGain=-1},t.prototype.dispose=function(e){e===void 0&&(e=!1),this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name,this._scene.cameras),this._chromaticAberrationPostProcess=null,this._highlightsPostProcess=null,this._depthOfFieldPostProcess=null,this._grainTexture.dispose(),e&&this._scene.disableDepthRenderer()},t.prototype._createChromaticAberrationPostProcess=function(e){var n=this;this._chromaticAberrationPostProcess=new _t("LensChromaticAberration","chromaticAberration",["chromatic_aberration","screen_width","screen_height","direction","radialIntensity","centerPosition"],[],e,null,we.a.TRILINEAR_SAMPLINGMODE,this._scene.getEngine(),!1),this._chromaticAberrationPostProcess.onApply=function(i){i.setFloat("chromatic_aberration",n._chromaticAberration),i.setFloat("screen_width",n._scene.getEngine().getRenderWidth()),i.setFloat("screen_height",n._scene.getEngine().getRenderHeight()),i.setFloat("radialIntensity",1),i.setFloat2("direction",17,17),i.setFloat2("centerPosition",.5,.5)}},t.prototype._createHighlightsPostProcess=function(e){var n=this;this._highlightsPostProcess=new _t("LensHighlights","lensHighlights",["gain","threshold","screen_width","screen_height"],[],e,null,we.a.TRILINEAR_SAMPLINGMODE,this._scene.getEngine(),!1,this._dofPentagon?`#define PENTAGON +`:""),this._highlightsPostProcess.onApply=function(i){i.setFloat("gain",n._highlightsGain),i.setFloat("threshold",n._highlightsThreshold),i.setTextureFromPostProcess("textureSampler",n._chromaticAberrationPostProcess),i.setFloat("screen_width",n._scene.getEngine().getRenderWidth()),i.setFloat("screen_height",n._scene.getEngine().getRenderHeight())}},t.prototype._createDepthOfFieldPostProcess=function(e){var n=this;this._depthOfFieldPostProcess=new _t("LensDepthOfField","depthOfField",["grain_amount","blur_noise","screen_width","screen_height","distortion","dof_enabled","screen_distance","aperture","darken","edge_blur","highlights","near","far"],["depthSampler","grainSampler","highlightsSampler"],e,null,we.a.TRILINEAR_SAMPLINGMODE,this._scene.getEngine(),!1),this._depthOfFieldPostProcess.onApply=function(i){i.setTexture("depthSampler",n._depthTexture),i.setTexture("grainSampler",n._grainTexture),i.setTextureFromPostProcess("textureSampler",n._highlightsPostProcess),i.setTextureFromPostProcess("highlightsSampler",n._depthOfFieldPostProcess),i.setFloat("grain_amount",n._grainAmount),i.setBool("blur_noise",n._blurNoise),i.setFloat("screen_width",n._scene.getEngine().getRenderWidth()),i.setFloat("screen_height",n._scene.getEngine().getRenderHeight()),i.setFloat("distortion",n._distortion),i.setBool("dof_enabled",n._dofDistance!==-1),i.setFloat("screen_distance",1/(.1-1/n._dofDistance)),i.setFloat("aperture",n._dofAperture),i.setFloat("darken",n._dofDarken),i.setFloat("edge_blur",n._edgeBlur),i.setBool("highlights",n._highlightsGain!==-1),n._scene.activeCamera&&(i.setFloat("near",n._scene.activeCamera.minZ),i.setFloat("far",n._scene.activeCamera.maxZ))}},t.prototype._createGrainTexture=function(){this._grainTexture=new bi.a("LensNoiseTexture",512,this._scene,!1,we.a.BILINEAR_SAMPLINGMODE),this._grainTexture.wrapU=we.a.WRAP_ADDRESSMODE,this._grainTexture.wrapV=we.a.WRAP_ADDRESSMODE;for(var e,n,i,o=this._grainTexture.getContext(),a=0;a<512;a++)for(var s=0;s<512;s++)e=Math.floor(255*(n=.42,i=.58,Math.random()*(i-n)+n)),o.fillStyle="rgb("+e+", "+e+", "+e+")",o.fillRect(a,s,1,1);this._grainTexture.update(!1)},t}(Vr),gg=function(){this.enabled=!1,this.name="ssao2",this.texturesRequired=[h.a.PREPASS_DEPTHNORMAL_TEXTURE_TYPE]},vg=` +precision highp float; +uniform sampler2D textureSampler; +uniform float near; +uniform float far; +uniform float radius; +float scales[16]=float[16]( +0.1, +0.11406250000000001, +0.131640625, +0.15625, +0.187890625, +0.2265625, +0.272265625, +0.325, +0.384765625, +0.4515625, +0.525390625, +0.60625, +0.694140625, +0.7890625, +0.891015625, +1.0 +); +varying vec2 vUV; +float perspectiveDepthToViewZ( const in float invClipZ,const in float near,const in float far ) { +return ( near*far )/( ( far-near )*invClipZ-far ); +} +float viewZToPerspectiveDepth( const in float viewZ,const in float near,const in float far ) { +return ( near*far/viewZ+far)/( far-near ); +} +float viewZToOrthographicDepth( const in float viewZ,const in float near,const in float far ) { +return ( viewZ+near )/( near-far ); +} +#ifdef SSAO +uniform sampler2D randomSampler; +#ifndef GEOMETRYBUFFER +uniform sampler2D depthNormalSampler; +#else +uniform sampler2D depthSampler; +uniform sampler2D normalSampler; +#endif +uniform float randTextureTiles; +uniform float samplesFactor; +uniform vec3 sampleSphere[SAMPLES]; +uniform float totalStrength; +uniform float base; +uniform float xViewport; +uniform float yViewport; +uniform float maxZ; +uniform float minZAspect; +uniform vec2 texelSize; +uniform mat4 projection; +void main() +{ +vec3 random=texture2D(randomSampler,vUV*randTextureTiles).rgb; +#ifndef GEOMETRYBUFFER +float depth=texture2D(depthNormalSampler,vUV).r; +#else +float depth=texture2D(depthSampler,vUV).r; +#endif +float depthSign=depth/abs(depth); +depth=depth*depthSign; +#ifndef GEOMETRYBUFFER +vec3 normal=texture2D(depthNormalSampler,vUV).gba; +#else +vec3 normal=texture2D(normalSampler,vUV).rgb; +#endif +float occlusion=0.0; +float correctedRadius=min(radius,minZAspect*depth/near); +vec3 vViewRay=vec3((vUV.x*2.0-1.0)*xViewport,(vUV.y*2.0-1.0)*yViewport,depthSign); +vec3 origin=vViewRay*depth; +vec3 rvec=random*2.0-1.0; +rvec.z=0.0; + +float dotProduct=dot(rvec,normal); +rvec=1.0-abs(dotProduct)>1e-2 ? rvec : vec3(-rvec.y,0.0,rvec.x); +vec3 tangent=normalize(rvec-normal*dot(rvec,normal)); +vec3 bitangent=cross(normal,tangent); +mat3 tbn=mat3(tangent,bitangent,normal); +float difference; +for (int i=0; i1.0 || offset.y>1.0) { +continue; +} + +#ifndef GEOMETRYBUFFER +float sampleDepth=abs(texture2D(depthNormalSampler,offset.xy).r); +#else +float sampleDepth=abs(texture2D(depthSampler,offset.xy).r); +#endif + +difference=depthSign*samplePosition.z-sampleDepth; +float rangeCheck=1.0-smoothstep(correctedRadius*0.5,correctedRadius,difference); +occlusion+=(difference>=0.0 ? 1.0 : 0.0)*rangeCheck; +} +occlusion=occlusion*(1.0-smoothstep(maxZ*0.75,maxZ,depth)); +float ao=1.0-totalStrength*occlusion*samplesFactor; +float result=clamp(ao+base,0.0,1.0); +gl_FragColor=vec4(vec3(result),1.0); +} +#endif +#ifdef BILATERAL_BLUR +uniform sampler2D depthNormalSampler; +uniform float outSize; +uniform float samplerOffsets[SAMPLES]; +vec4 blur9(sampler2D image,vec2 uv,float resolution,vec2 direction) { +vec4 color=vec4(0.0); +vec2 off1=vec2(1.3846153846)*direction; +vec2 off2=vec2(3.2307692308)*direction; +color+=texture2D(image,uv)*0.2270270270; +color+=texture2D(image,uv+(off1/resolution))*0.3162162162; +color+=texture2D(image,uv-(off1/resolution))*0.3162162162; +color+=texture2D(image,uv+(off2/resolution))*0.0702702703; +color+=texture2D(image,uv-(off2/resolution))*0.0702702703; +return color; +} +vec4 blur13(sampler2D image,vec2 uv,float resolution,vec2 direction) { +vec4 color=vec4(0.0); +vec2 off1=vec2(1.411764705882353)*direction; +vec2 off2=vec2(3.2941176470588234)*direction; +vec2 off3=vec2(5.176470588235294)*direction; +color+=texture2D(image,uv)*0.1964825501511404; +color+=texture2D(image,uv+(off1/resolution))*0.2969069646728344; +color+=texture2D(image,uv-(off1/resolution))*0.2969069646728344; +color+=texture2D(image,uv+(off2/resolution))*0.09447039785044732; +color+=texture2D(image,uv-(off2/resolution))*0.09447039785044732; +color+=texture2D(image,uv+(off3/resolution))*0.010381362401148057; +color+=texture2D(image,uv-(off3/resolution))*0.010381362401148057; +return color; +} +vec4 blur13Bilateral(sampler2D image,vec2 uv,float resolution,vec2 direction) { +vec4 color=vec4(0.0); +vec2 off1=vec2(1.411764705882353)*direction; +vec2 off2=vec2(3.2941176470588234)*direction; +vec2 off3=vec2(5.176470588235294)*direction; +float compareDepth=abs(texture2D(depthNormalSampler,uv).r); +float sampleDepth; +float weight; +float weightSum=30.0; +color+=texture2D(image,uv)*30.0; +sampleDepth=abs(texture2D(depthNormalSampler,uv+(off1/resolution)).r); +weight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0); +weightSum+=weight; +color+=texture2D(image,uv+(off1/resolution))*weight; +sampleDepth=abs(texture2D(depthNormalSampler,uv-(off1/resolution)).r); +weight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0); +weightSum+=weight; +color+=texture2D(image,uv-(off1/resolution))*weight; +sampleDepth=abs(texture2D(depthNormalSampler,uv+(off2/resolution)).r); +weight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0); +weightSum+=weight; +color+=texture2D(image,uv+(off2/resolution))*weight; +sampleDepth=abs(texture2D(depthNormalSampler,uv-(off2/resolution)).r); +weight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0); +weightSum+=weight; +color+=texture2D(image,uv-(off2/resolution))*weight; +sampleDepth=abs(texture2D(depthNormalSampler,uv+(off3/resolution)).r); +weight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0); +weightSum+=weight; +color+=texture2D(image,uv+(off3/resolution))*weight; +sampleDepth=abs(texture2D(depthNormalSampler,uv-(off3/resolution)).r); +weight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0); +weightSum+=weight; +color+=texture2D(image,uv-(off3/resolution))*weight; +return color/weightSum; +} +void main() +{ +#if EXPENSIVE +float compareDepth=abs(texture2D(depthNormalSampler,vUV).r); +float texelsize=1.0/outSize; +float result=0.0; +float weightSum=0.0; +for (int i=0; i=2},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"scene",{get:function(){return this._scene},enumerable:!1,configurable:!0}),t.prototype.getClassName=function(){return"SSAO2RenderingPipeline"},t.prototype.dispose=function(e){e===void 0&&(e=!1);for(var n=0;n0?i._ssaoCombinePostProcess.width:i._originalColorPostProcess.width),s.setFloat("near",i._scene.activeCamera.minZ),s.setFloat("far",i._scene.activeCamera.maxZ),s.setFloat("radius",i.radius),i._forceGeometryBuffer?s.setTexture("depthNormalSampler",i._scene.enableGeometryBufferRenderer().getGBuffer().textures[0]):s.setTexture("depthNormalSampler",i._prePassRenderer.prePassRT.textures[i._prePassRenderer.getIndex(h.a.PREPASS_DEPTHNORMAL_TEXTURE_TYPE)]),s.setArray("samplerOffsets",i._samplerOffsets))},this._blurVPostProcess=new _t("BlurV","ssao2",["outSize","samplerOffsets","near","far","radius"],["depthNormalSampler"],n,null,we.a.TRILINEAR_SAMPLINGMODE,this._scene.getEngine(),!1,`#define BILATERAL_BLUR +#define BILATERAL_BLUR_V +#define SAMPLES 16 +#define EXPENSIVE `+(o?"1":"0")+` +`),this._blurVPostProcess.onApply=function(s){i._scene.activeCamera&&(s.setFloat("outSize",i._ssaoCombinePostProcess.height>0?i._ssaoCombinePostProcess.height:i._originalColorPostProcess.height),s.setFloat("near",i._scene.activeCamera.minZ),s.setFloat("far",i._scene.activeCamera.maxZ),s.setFloat("radius",i.radius),i._forceGeometryBuffer?s.setTexture("depthNormalSampler",i._scene.enableGeometryBufferRenderer().getGBuffer().textures[0]):s.setTexture("depthNormalSampler",i._prePassRenderer.prePassRT.textures[i._prePassRenderer.getIndex(h.a.PREPASS_DEPTHNORMAL_TEXTURE_TYPE)]),s.setArray("samplerOffsets",i._samplerOffsets))},this._blurHPostProcess.samples=this.textureSamples,this._blurVPostProcess.samples=this.textureSamples},t.prototype._rebuild=function(){r.prototype._rebuild.call(this)},t.prototype._radicalInverse_VdC=function(e){return this._bits[0]=e,this._bits[0]=(this._bits[0]<<16|this._bits[0]>>16)>>>0,this._bits[0]=(1431655765&this._bits[0])<<1|(2863311530&this._bits[0])>>>1>>>0,this._bits[0]=(858993459&this._bits[0])<<2|(3435973836&this._bits[0])>>>2>>>0,this._bits[0]=(252645135&this._bits[0])<<4|(4042322160&this._bits[0])>>>4>>>0,this._bits[0]=(16711935&this._bits[0])<<8|(4278255360&this._bits[0])>>>8>>>0,23283064365386963e-26*this._bits[0]},t.prototype._hammersley=function(e,n){return[e/n,this._radicalInverse_VdC(e)]},t.prototype._hemisphereSample_uniform=function(e,n){var i=2*n*Math.PI,o=1-(.85*e+.15),a=Math.sqrt(1-o*o);return new u.e(Math.cos(i)*a,Math.sin(i)*a,o)},t.prototype._generateHemisphere=function(){for(var e,n=this.samples,i=[],o=0;o0.0) +hitCoord-=dir; +else +hitCoord+=dir; +info.color+=texture2D(textureSampler,projectedCoord.xy).rgb; +} +projectedCoord=projection*vec4(hitCoord,1.0); +projectedCoord.xy/=projectedCoord.w; +projectedCoord.xy=0.5*projectedCoord.xy+vec2(0.5); + +info.coords=vec4(projectedCoord.xy,sampledDepth,1.0); +info.color+=texture2D(textureSampler,projectedCoord.xy).rgb; +info.color/=float(SMOOTH_STEPS+1); +return info; +} + +ReflectionInfo getReflectionInfo(vec3 dir,vec3 hitCoord) +{ +ReflectionInfo info; +vec4 projectedCoord; +float sampledDepth; +dir*=step; +for(int i=0; i>0)),e.push("#define SMOOTH_STEPS "+(this._smoothSteps>>0)),this.updateEffect(e.join(` +`))},t._Parse=function(e,n,i,o){return L.a.Parse(function(){return new t(e.name,i,e.options,n,e.renderTargetSamplingMode,i.getEngine(),e.textureType,e.reusable)},e,i,o)},Object(c.c)([Object(L.c)()],t.prototype,"threshold",void 0),Object(c.c)([Object(L.c)()],t.prototype,"strength",void 0),Object(c.c)([Object(L.c)()],t.prototype,"reflectionSpecularFalloffExponent",void 0),Object(c.c)([Object(L.c)()],t.prototype,"step",void 0),Object(c.c)([Object(L.c)()],t.prototype,"roughnessFactor",void 0),Object(c.c)([Object(L.c)()],t.prototype,"enableSmoothReflections",null),Object(c.c)([Object(L.c)()],t.prototype,"reflectionSamples",null),Object(c.c)([Object(L.c)()],t.prototype,"smoothSteps",null),t}(_t);C.a.RegisteredTypes["BABYLON.ScreenSpaceReflectionPostProcess"]=jc;var Ag=`uniform sampler2D textureSampler; +varying vec2 vUV; +#if defined(PASS_POST_PROCESS) +void main(void) +{ +vec4 color=texture2D(textureSampler,vUV); +gl_FragColor=color; +} +#endif +#if defined(DOWN_SAMPLE_X4) +uniform vec2 dsOffsets[16]; +void main(void) +{ +vec4 average=vec4(0.0,0.0,0.0,0.0); +average=texture2D(textureSampler,vUV+dsOffsets[0]); +average+=texture2D(textureSampler,vUV+dsOffsets[1]); +average+=texture2D(textureSampler,vUV+dsOffsets[2]); +average+=texture2D(textureSampler,vUV+dsOffsets[3]); +average+=texture2D(textureSampler,vUV+dsOffsets[4]); +average+=texture2D(textureSampler,vUV+dsOffsets[5]); +average+=texture2D(textureSampler,vUV+dsOffsets[6]); +average+=texture2D(textureSampler,vUV+dsOffsets[7]); +average+=texture2D(textureSampler,vUV+dsOffsets[8]); +average+=texture2D(textureSampler,vUV+dsOffsets[9]); +average+=texture2D(textureSampler,vUV+dsOffsets[10]); +average+=texture2D(textureSampler,vUV+dsOffsets[11]); +average+=texture2D(textureSampler,vUV+dsOffsets[12]); +average+=texture2D(textureSampler,vUV+dsOffsets[13]); +average+=texture2D(textureSampler,vUV+dsOffsets[14]); +average+=texture2D(textureSampler,vUV+dsOffsets[15]); +average/=16.0; +gl_FragColor=average; +} +#endif +#if defined(BRIGHT_PASS) +uniform vec2 dsOffsets[4]; +uniform float brightThreshold; +void main(void) +{ +vec4 average=vec4(0.0,0.0,0.0,0.0); +average=texture2D(textureSampler,vUV+vec2(dsOffsets[0].x,dsOffsets[0].y)); +average+=texture2D(textureSampler,vUV+vec2(dsOffsets[1].x,dsOffsets[1].y)); +average+=texture2D(textureSampler,vUV+vec2(dsOffsets[2].x,dsOffsets[2].y)); +average+=texture2D(textureSampler,vUV+vec2(dsOffsets[3].x,dsOffsets[3].y)); +average*=0.25; +float luminance=length(average.rgb); +if (luminanceshadowPixelDepth) +accumFog+=sunColor*computeScattering(dot(rayDirection,sunDirection)); +currentPosition+=stepL; +} +accumFog/=NB_STEPS; +vec3 color=accumFog*scatteringPower; +gl_FragColor=vec4(color*exp(color) ,1.0); +} +#endif +#if defined(VLSMERGE) +uniform sampler2D originalSampler; +void main(void) +{ +gl_FragColor=texture2D(originalSampler,vUV)+texture2D(textureSampler,vUV); +} +#endif +#if defined(LUMINANCE) +uniform vec2 lumOffsets[4]; +void main() +{ +float average=0.0; +vec4 color=vec4(0.0); +float maximum=-1e20; +vec3 weight=vec3(0.299,0.587,0.114); +for (int i=0; i<4; i++) +{ +color=texture2D(textureSampler,vUV+ lumOffsets[i]); + +float GreyValue=dot(color.rgb,vec3(0.33,0.33,0.33)); + +#ifdef WEIGHTED_AVERAGE +float GreyValue=dot(color.rgb,weight); +#endif +#ifdef BRIGHTNESS +float GreyValue=max(color.r,max(color.g,color.b)); +#endif +#ifdef HSL_COMPONENT +float GreyValue=0.5*(max(color.r,max(color.g,color.b))+min(color.r,min(color.g,color.b))); +#endif +#ifdef MAGNITUDE +float GreyValue=length(color.rgb); +#endif +maximum=max(maximum,GreyValue); +average+=(0.25*log(1e-5+GreyValue)); +} +average=exp(average); +gl_FragColor=vec4(average,maximum,0.0,1.0); +} +#endif +#if defined(LUMINANCE_DOWN_SAMPLE) +uniform vec2 dsOffsets[9]; +uniform float halfDestPixelSize; +#ifdef FINAL_DOWN_SAMPLER +#include +#endif +void main() +{ +vec4 color=vec4(0.0); +float average=0.0; +for (int i=0; i<9; i++) +{ +color=texture2D(textureSampler,vUV+vec2(halfDestPixelSize,halfDestPixelSize)+dsOffsets[i]); +average+=color.r; +} +average/=9.0; +#ifdef FINAL_DOWN_SAMPLER +gl_FragColor=pack(average); +#else +gl_FragColor=vec4(average,average,0.0,1.0); +#endif +} +#endif +#if defined(HDR) +uniform sampler2D textureAdderSampler; +uniform float averageLuminance; +void main() +{ +vec4 color=texture2D(textureAdderSampler,vUV); +#ifndef AUTO_EXPOSURE +vec4 adjustedColor=color/averageLuminance; +color=adjustedColor; +color.a=1.0; +#endif +gl_FragColor=color; +} +#endif +#if defined(LENS_FLARE) +#define GHOSTS 3 +uniform sampler2D lensColorSampler; +uniform float strength; +uniform float ghostDispersal; +uniform float haloWidth; +uniform vec2 resolution; +uniform float distortionStrength; +float hash(vec2 p) +{ +float h=dot(p,vec2(127.1,311.7)); +return -1.0+2.0*fract(sin(h)*43758.5453123); +} +float noise(in vec2 p) +{ +vec2 i=floor(p); +vec2 f=fract(p); +vec2 u=f*f*(3.0-2.0*f); +return mix(mix(hash(i+vec2(0.0,0.0)), +hash(i+vec2(1.0,0.0)),u.x), +mix(hash(i+vec2(0.0,1.0)), +hash(i+vec2(1.0,1.0)),u.x),u.y); +} +float fbm(vec2 p) +{ +float f=0.0; +f+=0.5000*noise(p); p*=2.02; +f+=0.2500*noise(p); p*=2.03; +f+=0.1250*noise(p); p*=2.01; +f+=0.0625*noise(p); p*=2.04; +f/=0.9375; +return f; +} +vec3 pattern(vec2 uv) +{ +vec2 p=-1.0+2.0*uv; +float p2=dot(p,p); +float f=fbm(vec2(15.0*p2))/2.0; +float r=0.2+0.6*sin(12.5*length(uv-vec2(0.5))); +float g=0.2+0.6*sin(20.5*length(uv-vec2(0.5))); +float b=0.2+0.6*sin(17.2*length(uv-vec2(0.5))); +return (1.0-f)*vec3(r,g,b); +} +float luminance(vec3 color) +{ +return dot(color.rgb,vec3(0.2126,0.7152,0.0722)); +} +vec4 textureDistorted(sampler2D tex,vec2 texcoord,vec2 direction,vec3 distortion) +{ +return vec4( +texture2D(tex,texcoord+direction*distortion.r).r, +texture2D(tex,texcoord+direction*distortion.g).g, +texture2D(tex,texcoord+direction*distortion.b).b, +1.0 +); +} +void main(void) +{ +vec2 uv=-vUV+vec2(1.0); +vec2 ghostDir=(vec2(0.5)-uv)*ghostDispersal; +vec2 texelSize=1.0/resolution; +vec3 distortion=vec3(-texelSize.x*distortionStrength,0.0,texelSize.x*distortionStrength); +vec4 result=vec4(0.0); +float ghostIndice=1.0; +for (int i=0; i=nSamples) +break; +vec2 offset1=vUV+velocity*(float(i)/float(nSamples-1)-0.5); +result+=texture2D(textureSampler,offset1); +} +gl_FragColor=result/float(nSamples); +} +#endif +`;ze.a.ShadersStore.standardPixelShader=Ag;var Wd=function(r){function t(e,n,i,o,a){o===void 0&&(o=null);var s=r.call(this,n.getEngine(),e)||this;return s.downSampleX4PostProcess=null,s.brightPassPostProcess=null,s.blurHPostProcesses=[],s.blurVPostProcesses=[],s.textureAdderPostProcess=null,s.volumetricLightPostProcess=null,s.volumetricLightSmoothXPostProcess=null,s.volumetricLightSmoothYPostProcess=null,s.volumetricLightMergePostProces=null,s.volumetricLightFinalPostProcess=null,s.luminancePostProcess=null,s.luminanceDownSamplePostProcesses=[],s.hdrPostProcess=null,s.textureAdderFinalPostProcess=null,s.lensFlareFinalPostProcess=null,s.hdrFinalPostProcess=null,s.lensFlarePostProcess=null,s.lensFlareComposePostProcess=null,s.motionBlurPostProcess=null,s.depthOfFieldPostProcess=null,s.fxaaPostProcess=null,s.screenSpaceReflectionPostProcess=null,s.brightThreshold=1,s.blurWidth=512,s.horizontalBlur=!1,s.lensTexture=null,s.volumetricLightCoefficient=.2,s.volumetricLightPower=4,s.volumetricLightBlurScale=64,s.sourceLight=null,s.hdrMinimumLuminance=1,s.hdrDecreaseRate=.5,s.hdrIncreaseRate=.5,s.lensColorTexture=null,s.lensFlareStrength=20,s.lensFlareGhostDispersal=1.4,s.lensFlareHaloWidth=.7,s.lensFlareDistortionStrength=16,s.lensFlareBlurWidth=512,s.lensStarTexture=null,s.lensFlareDirtTexture=null,s.depthOfFieldDistance=10,s.depthOfFieldBlurWidth=64,s.animations=[],s._currentDepthOfFieldSource=null,s._fixedExposure=1,s._currentExposure=1,s._hdrAutoExposure=!1,s._hdrCurrentLuminance=1,s._motionStrength=1,s._isObjectBasedMotionBlur=!1,s._camerasToBeAttached=[],s._bloomEnabled=!1,s._depthOfFieldEnabled=!1,s._vlsEnabled=!1,s._lensFlareEnabled=!1,s._hdrEnabled=!1,s._motionBlurEnabled=!1,s._fxaaEnabled=!1,s._screenSpaceReflectionsEnabled=!1,s._motionBlurSamples=64,s._volumetricLightStepsCount=50,s._samples=1,s._cameras=a||n.cameras,s._cameras=s._cameras.slice(),s._camerasToBeAttached=s._cameras.slice(),s._scene=n,s._basePostProcess=o,s._ratio=i,s._floatTextureType=n.getEngine().getCaps().textureFloatRender?h.a.TEXTURETYPE_FLOAT:h.a.TEXTURETYPE_HALF_FLOAT,n.postProcessRenderPipelineManager.addPipeline(s),s._buildPipeline(),s}return Object(c.d)(t,r),Object.defineProperty(t.prototype,"exposure",{get:function(){return this._fixedExposure},set:function(e){this._fixedExposure=e,this._currentExposure=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"hdrAutoExposure",{get:function(){return this._hdrAutoExposure},set:function(e){if(this._hdrAutoExposure=e,this.hdrPostProcess){var n=["#define HDR"];e&&n.push("#define AUTO_EXPOSURE"),this.hdrPostProcess.updateEffect(n.join(` +`))}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"motionStrength",{get:function(){return this._motionStrength},set:function(e){this._motionStrength=e,this._isObjectBasedMotionBlur&&this.motionBlurPostProcess&&(this.motionBlurPostProcess.motionStrength=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"objectBasedMotionBlur",{get:function(){return this._isObjectBasedMotionBlur},set:function(e){var n=this._isObjectBasedMotionBlur!==e;this._isObjectBasedMotionBlur=e,n&&this._buildPipeline()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"BloomEnabled",{get:function(){return this._bloomEnabled},set:function(e){this._bloomEnabled!==e&&(this._bloomEnabled=e,this._buildPipeline())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"DepthOfFieldEnabled",{get:function(){return this._depthOfFieldEnabled},set:function(e){this._depthOfFieldEnabled!==e&&(this._depthOfFieldEnabled=e,this._buildPipeline())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"LensFlareEnabled",{get:function(){return this._lensFlareEnabled},set:function(e){this._lensFlareEnabled!==e&&(this._lensFlareEnabled=e,this._buildPipeline())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"HDREnabled",{get:function(){return this._hdrEnabled},set:function(e){this._hdrEnabled!==e&&(this._hdrEnabled=e,this._buildPipeline())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"VLSEnabled",{get:function(){return this._vlsEnabled},set:function(e){if(this._vlsEnabled!==e){if(e&&!this._scene.enableGeometryBufferRenderer())return void l.a.Warn("Geometry renderer is not supported, cannot create volumetric lights in Standard Rendering Pipeline");this._vlsEnabled=e,this._buildPipeline()}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"MotionBlurEnabled",{get:function(){return this._motionBlurEnabled},set:function(e){this._motionBlurEnabled!==e&&(this._motionBlurEnabled=e,this._buildPipeline())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"fxaaEnabled",{get:function(){return this._fxaaEnabled},set:function(e){this._fxaaEnabled!==e&&(this._fxaaEnabled=e,this._buildPipeline())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"screenSpaceReflectionsEnabled",{get:function(){return this._screenSpaceReflectionsEnabled},set:function(e){this._screenSpaceReflectionsEnabled!==e&&(this._screenSpaceReflectionsEnabled=e,this._buildPipeline())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"volumetricLightStepsCount",{get:function(){return this._volumetricLightStepsCount},set:function(e){this.volumetricLightPostProcess&&this.volumetricLightPostProcess.updateEffect(`#define VLS +#define NB_STEPS `+e.toFixed(1)),this._volumetricLightStepsCount=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"motionBlurSamples",{get:function(){return this._motionBlurSamples},set:function(e){this.motionBlurPostProcess&&(this._isObjectBasedMotionBlur?this.motionBlurPostProcess.motionBlurSamples=e:this.motionBlurPostProcess.updateEffect(`#define MOTION_BLUR +#define MAX_MOTION_SAMPLES `+e.toFixed(1))),this._motionBlurSamples=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"samples",{get:function(){return this._samples},set:function(e){this._samples!==e&&(this._samples=e,this._buildPipeline())},enumerable:!1,configurable:!0}),t.prototype._buildPipeline=function(){var e=this,n=this._ratio,i=this._scene;this._disposePostProcesses(),this._cameras!==null&&(this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name,this._cameras),this._cameras=this._camerasToBeAttached.slice()),this._reset(),this._screenSpaceReflectionsEnabled&&(this.screenSpaceReflectionPostProcess=new jc("HDRPass",i,n,null,we.a.BILINEAR_SAMPLINGMODE,i.getEngine(),!1,this._floatTextureType),this.screenSpaceReflectionPostProcess.onApplyObservable.add(function(){e._currentDepthOfFieldSource=e.screenSpaceReflectionPostProcess}),this.addEffect(new Rt(i.getEngine(),"HDRScreenSpaceReflections",function(){return e.screenSpaceReflectionPostProcess},!0))),this._basePostProcess?this.originalPostProcess=this._basePostProcess:this.originalPostProcess=new _t("HDRPass","standard",[],[],n,null,we.a.BILINEAR_SAMPLINGMODE,i.getEngine(),!1,"#define PASS_POST_PROCESS",this._floatTextureType),this.originalPostProcess.autoClear=!this.screenSpaceReflectionPostProcess,this.originalPostProcess.onApplyObservable.add(function(){e._currentDepthOfFieldSource=e.originalPostProcess}),this.addEffect(new Rt(i.getEngine(),"HDRPassPostProcess",function(){return e.originalPostProcess},!0)),this._bloomEnabled&&(this._createDownSampleX4PostProcess(i,n/4),this._createBrightPassPostProcess(i,n/4),this._createBlurPostProcesses(i,n/4,1),this._createTextureAdderPostProcess(i,n),this.textureAdderFinalPostProcess=new _t("HDRDepthOfFieldSource","standard",[],[],n,null,we.a.BILINEAR_SAMPLINGMODE,i.getEngine(),!1,"#define PASS_POST_PROCESS",h.a.TEXTURETYPE_UNSIGNED_INT),this.addEffect(new Rt(i.getEngine(),"HDRBaseDepthOfFieldSource",function(){return e.textureAdderFinalPostProcess},!0))),this._vlsEnabled&&(this._createVolumetricLightPostProcess(i,n),this.volumetricLightFinalPostProcess=new _t("HDRVLSFinal","standard",[],[],n,null,we.a.BILINEAR_SAMPLINGMODE,i.getEngine(),!1,"#define PASS_POST_PROCESS",h.a.TEXTURETYPE_UNSIGNED_INT),this.addEffect(new Rt(i.getEngine(),"HDRVLSFinal",function(){return e.volumetricLightFinalPostProcess},!0))),this._lensFlareEnabled&&(this._createLensFlarePostProcess(i,n),this.lensFlareFinalPostProcess=new _t("HDRPostLensFlareDepthOfFieldSource","standard",[],[],n,null,we.a.BILINEAR_SAMPLINGMODE,i.getEngine(),!1,"#define PASS_POST_PROCESS",h.a.TEXTURETYPE_UNSIGNED_INT),this.addEffect(new Rt(i.getEngine(),"HDRPostLensFlareDepthOfFieldSource",function(){return e.lensFlareFinalPostProcess},!0))),this._hdrEnabled&&(this._createLuminancePostProcesses(i,this._floatTextureType),this._createHdrPostProcess(i,n),this.hdrFinalPostProcess=new _t("HDRPostHDReDepthOfFieldSource","standard",[],[],n,null,we.a.BILINEAR_SAMPLINGMODE,i.getEngine(),!1,"#define PASS_POST_PROCESS",h.a.TEXTURETYPE_UNSIGNED_INT),this.addEffect(new Rt(i.getEngine(),"HDRPostHDReDepthOfFieldSource",function(){return e.hdrFinalPostProcess},!0))),this._depthOfFieldEnabled&&(this._createBlurPostProcesses(i,n/2,3,"depthOfFieldBlurWidth"),this._createDepthOfFieldPostProcess(i,n)),this._motionBlurEnabled&&this._createMotionBlurPostProcess(i,n),this._fxaaEnabled&&(this.fxaaPostProcess=new Co("fxaa",1,null,we.a.BILINEAR_SAMPLINGMODE,i.getEngine(),!1,h.a.TEXTURETYPE_UNSIGNED_INT),this.addEffect(new Rt(i.getEngine(),"HDRFxaa",function(){return e.fxaaPostProcess},!0))),this._cameras!==null&&this._scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(this._name,this._cameras),!this._enableMSAAOnFirstPostProcess(this._samples)&&this._samples>1&&l.a.Warn("MSAA failed to enable, MSAA is only supported in browsers that support webGL >= 2.0")},t.prototype._createDownSampleX4PostProcess=function(e,n){var i=this,o=new Array(32);this.downSampleX4PostProcess=new _t("HDRDownSampleX4","standard",["dsOffsets"],[],n,null,we.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,"#define DOWN_SAMPLE_X4",this._floatTextureType),this.downSampleX4PostProcess.onApply=function(a){for(var s=0,d=i.downSampleX4PostProcess.width,p=i.downSampleX4PostProcess.height,b=-2;b<2;b++)for(var x=-2;x<2;x++)o[s]=(b+.5)*(1/d),o[s+1]=(x+.5)*(1/p),s+=2;a.setArray2("dsOffsets",o)},this.addEffect(new Rt(e.getEngine(),"HDRDownSampleX4",function(){return i.downSampleX4PostProcess},!0))},t.prototype._createBrightPassPostProcess=function(e,n){var i=this,o=new Array(8);this.brightPassPostProcess=new _t("HDRBrightPass","standard",["dsOffsets","brightThreshold"],[],n,null,we.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,"#define BRIGHT_PASS",this._floatTextureType),this.brightPassPostProcess.onApply=function(a){var s=1/i.brightPassPostProcess.width,d=1/i.brightPassPostProcess.height;o[0]=-.5*s,o[1]=.5*d,o[2]=.5*s,o[3]=.5*d,o[4]=-.5*s,o[5]=-.5*d,o[6]=.5*s,o[7]=-.5*d,a.setArray2("dsOffsets",o),a.setFloat("brightThreshold",i.brightThreshold)},this.addEffect(new Rt(e.getEngine(),"HDRBrightPass",function(){return i.brightPassPostProcess},!0))},t.prototype._createBlurPostProcesses=function(e,n,i,o){var a=this;o===void 0&&(o="blurWidth");var s=e.getEngine(),d=new _n("HDRBlurH_"+i,new u.d(1,0),this[o],n,null,we.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,this._floatTextureType),p=new _n("HDRBlurV_"+i,new u.d(0,1),this[o],n,null,we.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,this._floatTextureType);d.onActivateObservable.add(function(){var b=d.width/s.getRenderWidth();d.kernel=a[o]*b}),p.onActivateObservable.add(function(){var b=p.height/s.getRenderHeight();p.kernel=a.horizontalBlur?64*b:a[o]*b}),this.addEffect(new Rt(e.getEngine(),"HDRBlurH"+i,function(){return d},!0)),this.addEffect(new Rt(e.getEngine(),"HDRBlurV"+i,function(){return p},!0)),this.blurHPostProcesses.push(d),this.blurVPostProcesses.push(p)},t.prototype._createTextureAdderPostProcess=function(e,n){var i=this;this.textureAdderPostProcess=new _t("HDRTextureAdder","standard",["exposure"],["otherSampler","lensSampler"],n,null,we.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,"#define TEXTURE_ADDER",this._floatTextureType),this.textureAdderPostProcess.onApply=function(o){o.setTextureFromPostProcess("otherSampler",i._vlsEnabled?i._currentDepthOfFieldSource:i.originalPostProcess),o.setTexture("lensSampler",i.lensTexture),o.setFloat("exposure",i._currentExposure),i._currentDepthOfFieldSource=i.textureAdderFinalPostProcess},this.addEffect(new Rt(e.getEngine(),"HDRTextureAdder",function(){return i.textureAdderPostProcess},!0))},t.prototype._createVolumetricLightPostProcess=function(e,n){var i=this,o=e.enableGeometryBufferRenderer();o.enablePosition=!0;var a=o.getGBuffer();this.volumetricLightPostProcess=new _t("HDRVLS","standard",["shadowViewProjection","cameraPosition","sunDirection","sunColor","scatteringCoefficient","scatteringPower","depthValues"],["shadowMapSampler","positionSampler"],n/8,null,we.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,`#define VLS +#define NB_STEPS `+this._volumetricLightStepsCount.toFixed(1));var s=u.d.Zero();this.volumetricLightPostProcess.onApply=function(d){if(i.sourceLight&&i.sourceLight.getShadowGenerator()&&i._scene.activeCamera){var p=i.sourceLight.getShadowGenerator();d.setTexture("shadowMapSampler",p.getShadowMap()),d.setTexture("positionSampler",a.textures[2]),d.setColor3("sunColor",i.sourceLight.diffuse),d.setVector3("sunDirection",i.sourceLight.getShadowDirection()),d.setVector3("cameraPosition",i._scene.activeCamera.globalPosition),d.setMatrix("shadowViewProjection",p.getTransformMatrix()),d.setFloat("scatteringCoefficient",i.volumetricLightCoefficient),d.setFloat("scatteringPower",i.volumetricLightPower),s.x=i.sourceLight.getDepthMinZ(i._scene.activeCamera),s.y=i.sourceLight.getDepthMaxZ(i._scene.activeCamera),d.setVector2("depthValues",s)}},this.addEffect(new Rt(e.getEngine(),"HDRVLS",function(){return i.volumetricLightPostProcess},!0)),this._createBlurPostProcesses(e,n/4,0,"volumetricLightBlurScale"),this.volumetricLightMergePostProces=new _t("HDRVLSMerge","standard",[],["originalSampler"],n,null,we.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,"#define VLSMERGE"),this.volumetricLightMergePostProces.onApply=function(d){d.setTextureFromPostProcess("originalSampler",i._bloomEnabled?i.textureAdderFinalPostProcess:i.originalPostProcess),i._currentDepthOfFieldSource=i.volumetricLightFinalPostProcess},this.addEffect(new Rt(e.getEngine(),"HDRVLSMerge",function(){return i.volumetricLightMergePostProces},!0))},t.prototype._createLuminancePostProcesses=function(e,n){var i=this,o=Math.pow(3,t.LuminanceSteps);this.luminancePostProcess=new _t("HDRLuminance","standard",["lumOffsets"],[],{width:o,height:o},null,we.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,"#define LUMINANCE",n);var a=[];this.luminancePostProcess.onApply=function(x){var O=1/i.luminancePostProcess.width,B=1/i.luminancePostProcess.height;a[0]=-.5*O,a[1]=.5*B,a[2]=.5*O,a[3]=.5*B,a[4]=-.5*O,a[5]=-.5*B,a[6]=.5*O,a[7]=-.5*B,x.setArray2("lumOffsets",a)},this.addEffect(new Rt(e.getEngine(),"HDRLuminance",function(){return i.luminancePostProcess},!0));for(var s=t.LuminanceSteps-1;s>=0;s--){o=Math.pow(3,s);var d=`#define LUMINANCE_DOWN_SAMPLE +`;s===0&&(d+="#define FINAL_DOWN_SAMPLER");var p=new _t("HDRLuminanceDownSample"+s,"standard",["dsOffsets","halfDestPixelSize"],[],{width:o,height:o},null,we.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,d,n);this.luminanceDownSamplePostProcesses.push(p)}var b=this.luminancePostProcess;this.luminanceDownSamplePostProcesses.forEach(function(x,O){var B=new Array(18);x.onApply=function(F){if(b){for(var z=0,J=-1;J<2;J++)for(var ie=-1;ie<2;ie++)B[z]=J/b.width,B[z+1]=ie/b.height,z+=2;F.setArray2("dsOffsets",B),F.setFloat("halfDestPixelSize",.5/b.width),b=O===i.luminanceDownSamplePostProcesses.length-1?i.luminancePostProcess:x}},O===i.luminanceDownSamplePostProcesses.length-1&&(x.onAfterRender=function(){var F=e.getEngine().readPixels(0,0,1,1),z=new u.f(1/16581375,1/65025,1/255,1);i._hdrCurrentLuminance=(F[0]*z.x+F[1]*z.y+F[2]*z.z+F[3]*z.w)/100}),i.addEffect(new Rt(e.getEngine(),"HDRLuminanceDownSample"+O,function(){return x},!0))})},t.prototype._createHdrPostProcess=function(e,n){var i=this,o=["#define HDR"];this._hdrAutoExposure&&o.push("#define AUTO_EXPOSURE"),this.hdrPostProcess=new _t("HDR","standard",["averageLuminance"],["textureAdderSampler"],n,null,we.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,o.join(` +`),h.a.TEXTURETYPE_UNSIGNED_INT);var a=1,s=0,d=0;this.hdrPostProcess.onApply=function(p){if(p.setTextureFromPostProcess("textureAdderSampler",i._currentDepthOfFieldSource),s+=e.getEngine().getDeltaTime(),a<0)a=i._hdrCurrentLuminance;else{var b=(d-s)/1e3;i._hdrCurrentLuminancea-i.hdrIncreaseRate*b?a-=i.hdrIncreaseRate*b:a=i._hdrCurrentLuminance}i.hdrAutoExposure?i._currentExposure=i._fixedExposure/a:(a=$.a.Clamp(a,i.hdrMinimumLuminance,1e20),p.setFloat("averageLuminance",a)),d=s,i._currentDepthOfFieldSource=i.hdrFinalPostProcess},this.addEffect(new Rt(e.getEngine(),"HDR",function(){return i.hdrPostProcess},!0))},t.prototype._createLensFlarePostProcess=function(e,n){var i=this;this.lensFlarePostProcess=new _t("HDRLensFlare","standard",["strength","ghostDispersal","haloWidth","resolution","distortionStrength"],["lensColorSampler"],n/2,null,we.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,"#define LENS_FLARE",h.a.TEXTURETYPE_UNSIGNED_INT),this.addEffect(new Rt(e.getEngine(),"HDRLensFlare",function(){return i.lensFlarePostProcess},!0)),this._createBlurPostProcesses(e,n/4,2,"lensFlareBlurWidth"),this.lensFlareComposePostProcess=new _t("HDRLensFlareCompose","standard",["lensStarMatrix"],["otherSampler","lensDirtSampler","lensStarSampler"],n,null,we.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,"#define LENS_FLARE_COMPOSE",h.a.TEXTURETYPE_UNSIGNED_INT),this.addEffect(new Rt(e.getEngine(),"HDRLensFlareCompose",function(){return i.lensFlareComposePostProcess},!0));var o=new u.d(0,0);this.lensFlarePostProcess.onApply=function(d){d.setTextureFromPostProcess("textureSampler",i._bloomEnabled?i.blurHPostProcesses[0]:i.originalPostProcess),d.setTexture("lensColorSampler",i.lensColorTexture),d.setFloat("strength",i.lensFlareStrength),d.setFloat("ghostDispersal",i.lensFlareGhostDispersal),d.setFloat("haloWidth",i.lensFlareHaloWidth),o.x=i.lensFlarePostProcess.width,o.y=i.lensFlarePostProcess.height,d.setVector2("resolution",o),d.setFloat("distortionStrength",i.lensFlareDistortionStrength)};var a=u.a.FromValues(2,0,-1,0,0,2,-1,0,0,0,1,0,0,0,0,1),s=u.a.FromValues(.5,0,.5,0,0,.5,.5,0,0,0,1,0,0,0,0,1);this.lensFlareComposePostProcess.onApply=function(d){if(i._scene.activeCamera){d.setTextureFromPostProcess("otherSampler",i.lensFlarePostProcess),d.setTexture("lensDirtSampler",i.lensFlareDirtTexture),d.setTexture("lensStarSampler",i.lensStarTexture);var p=i._scene.activeCamera.getViewMatrix().getRow(0),b=i._scene.activeCamera.getViewMatrix().getRow(2),x=u.e.Dot(p.toVector3(),new u.e(1,0,0))+u.e.Dot(b.toVector3(),new u.e(0,0,1));x*=4;var O=u.a.FromValues(.5*Math.cos(x),-Math.sin(x),0,0,Math.sin(x),.5*Math.cos(x),0,0,0,0,1,0,0,0,0,1),B=s.multiply(O).multiply(a);d.setMatrix("lensStarMatrix",B),i._currentDepthOfFieldSource=i.lensFlareFinalPostProcess}}},t.prototype._createDepthOfFieldPostProcess=function(e,n){var i=this;this.depthOfFieldPostProcess=new _t("HDRDepthOfField","standard",["distance"],["otherSampler","depthSampler"],n,null,we.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,"#define DEPTH_OF_FIELD",h.a.TEXTURETYPE_UNSIGNED_INT),this.depthOfFieldPostProcess.onApply=function(o){o.setTextureFromPostProcess("otherSampler",i._currentDepthOfFieldSource),o.setTexture("depthSampler",i._getDepthTexture()),o.setFloat("distance",i.depthOfFieldDistance)},this.addEffect(new Rt(e.getEngine(),"HDRDepthOfField",function(){return i.depthOfFieldPostProcess},!0))},t.prototype._createMotionBlurPostProcess=function(e,n){var i=this;if(this._isObjectBasedMotionBlur){var o=new Gc("HDRMotionBlur",e,n,null,we.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,h.a.TEXTURETYPE_UNSIGNED_INT);o.motionStrength=this.motionStrength,o.motionBlurSamples=this.motionBlurSamples,this.motionBlurPostProcess=o}else{this.motionBlurPostProcess=new _t("HDRMotionBlur","standard",["inverseViewProjection","prevViewProjection","screenSize","motionScale","motionStrength"],["depthSampler"],n,null,we.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,`#define MOTION_BLUR +#define MAX_MOTION_SAMPLES `+this.motionBlurSamples.toFixed(1),h.a.TEXTURETYPE_UNSIGNED_INT);var a=0,s=u.a.Identity(),d=u.a.Identity(),p=u.a.Identity(),b=u.d.Zero();this.motionBlurPostProcess.onApply=function(x){(p=e.getProjectionMatrix().multiply(e.getViewMatrix())).invertToRef(d),x.setMatrix("inverseViewProjection",d),x.setMatrix("prevViewProjection",s),s=p,b.x=i.motionBlurPostProcess.width,b.y=i.motionBlurPostProcess.height,x.setVector2("screenSize",b),a=e.getEngine().getFps()/60,x.setFloat("motionScale",a),x.setFloat("motionStrength",i.motionStrength),x.setTexture("depthSampler",i._getDepthTexture())}}this.addEffect(new Rt(e.getEngine(),"HDRMotionBlur",function(){return i.motionBlurPostProcess},!0))},t.prototype._getDepthTexture=function(){return this._scene.getEngine().getCaps().drawBuffersExtension?this._scene.enableGeometryBufferRenderer().getGBuffer().textures[0]:this._scene.enableDepthRenderer().getDepthMap()},t.prototype._disposePostProcesses=function(){for(var e=0;e0.5; +useCamA=!useCamB; +texCoord1=vec2(useCamB ? (vUV.x-0.5)*2.0 : vUV.x*2.0,vUV.y); +texCoord2=vec2(texCoord1.x+stepSize.x,vUV.y); +#else +#ifdef IS_STEREOSCOPIC_INTERLACED +float rowNum=floor(vUV.y/stepSize.y); +useCamA=mod(rowNum,2.0) == 1.0; +useCamB=mod(rowNum,2.0) == 0.0; +texCoord1=vec2(vUV.x,vUV.y); +texCoord2=vec2(vUV.x,vUV.y); +#else +useCamB=vUV.y>0.5; +useCamA=!useCamB; +texCoord1=vec2(vUV.x,useCamB ? (vUV.y-0.5)*2.0 : vUV.y*2.0); +texCoord2=vec2(vUV.x,texCoord1.y+stepSize.y); +#endif +#endif + +if (useCamB){ +frag1=texture2D(textureSampler,texCoord1).rgb; +frag2=texture2D(textureSampler,texCoord2).rgb; +}else if (useCamA){ +frag1=texture2D(camASampler ,texCoord1).rgb; +frag2=texture2D(camASampler ,texCoord2).rgb; +}else { +discard; +} +gl_FragColor=vec4((frag1+frag2)/TWO,1.0); +} +`;ze.a.ShadersStore.stereoscopicInterlacePixelShader=Pg;var xg=function(r){function t(e,n,i,o,a,s,d){var p=r.call(this,e,"stereoscopicInterlace",["stepSize"],["camASampler"],1,n[1],a,s,d,o?"#define IS_STEREOSCOPIC_INTERLACED 1":i?"#define IS_STEREOSCOPIC_HORIZ 1":void 0)||this;return p._passedProcess=n[0]._rigPostProcess,p._stepSize=new u.d(1/p.width,1/p.height),p.onSizeChangedObservable.add(function(){p._stepSize=new u.d(1/p.width,1/p.height)}),p.onApplyObservable.add(function(b){b.setTextureFromPostProcess("camASampler",p._passedProcess),b.setFloat2("stepSize",p._stepSize.x,p._stepSize.y)}),p}return Object(c.d)(t,r),t.prototype.getClassName=function(){return"StereoscopicInterlacePostProcessI"},t}(_t),Cg=function(r){function t(e,n,i,o,a,s){var d=r.call(this,e,"stereoscopicInterlace",["stepSize"],["camASampler"],1,n[1],o,a,s,i?"#define IS_STEREOSCOPIC_HORIZ 1":void 0)||this;return d._passedProcess=n[0]._rigPostProcess,d._stepSize=new u.d(1/d.width,1/d.height),d.onSizeChangedObservable.add(function(){d._stepSize=new u.d(1/d.width,1/d.height)}),d.onApplyObservable.add(function(p){p.setTextureFromPostProcess("camASampler",d._passedProcess),p.setFloat2("stepSize",d._stepSize.x,d._stepSize.y)}),d}return Object(c.d)(t,r),t.prototype.getClassName=function(){return"StereoscopicInterlacePostProcess"},t}(_t),Rg=` +varying vec2 vUV; +uniform sampler2D textureSampler; + +uniform float _ExposureAdjustment; +#if defined(HABLE_TONEMAPPING) +const float A=0.15; +const float B=0.50; +const float C=0.10; +const float D=0.20; +const float E=0.02; +const float F=0.30; +const float W=11.2; +#endif +float Luminance(vec3 c) +{ +return dot(c,vec3(0.22,0.707,0.071)); +} +void main(void) +{ +vec3 colour=texture2D(textureSampler,vUV).rgb; +#if defined(REINHARD_TONEMAPPING) +float lum=Luminance(colour.rgb); +float lumTm=lum*_ExposureAdjustment; +float scale=lumTm/(1.0+lumTm); +colour*=scale/lum; +#elif defined(HABLE_TONEMAPPING) +colour*=_ExposureAdjustment; +const float ExposureBias=2.0; +vec3 x=ExposureBias*colour; +vec3 curr=((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F; +x=vec3(W,W,W); +vec3 whiteScale=1.0/(((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F); +colour=curr*whiteScale; +#elif defined(OPTIMIZED_HEJIDAWSON_TONEMAPPING) +colour*=_ExposureAdjustment; +vec3 X=max(vec3(0.0,0.0,0.0),colour-0.004); +vec3 retColor=(X*(6.2*X+0.5))/(X*(6.2*X+1.7)+0.06); +colour=retColor*retColor; +#elif defined(PHOTOGRAPHIC_TONEMAPPING) +colour=vec3(1.0,1.0,1.0)-exp2(-_ExposureAdjustment*colour); +#endif +gl_FragColor=vec4(colour.rgb,1.0); +}`;ze.a.ShadersStore.tonemapPixelShader=Rg;var sr;(function(r){r[r.Hable=0]="Hable",r[r.Reinhard=1]="Reinhard",r[r.HejiDawson=2]="HejiDawson",r[r.Photographic=3]="Photographic"})(sr||(sr={}));var Og=function(r){function t(e,n,i,o,a,s,d){a===void 0&&(a=h.a.TEXTURE_BILINEAR_SAMPLINGMODE),d===void 0&&(d=h.a.TEXTURETYPE_UNSIGNED_INT);var p=r.call(this,e,"tonemap",["_ExposureAdjustment"],null,1,o,a,s,!0,null,d)||this;p._operator=n,p.exposureAdjustment=i;var b="#define ";return p._operator===sr.Hable?b+="HABLE_TONEMAPPING":p._operator===sr.Reinhard?b+="REINHARD_TONEMAPPING":p._operator===sr.HejiDawson?b+="OPTIMIZED_HEJIDAWSON_TONEMAPPING":p._operator===sr.Photographic&&(b+="PHOTOGRAPHIC_TONEMAPPING"),p.updateEffect(b),p.onApply=function(x){x.setFloat("_ExposureAdjustment",p.exposureAdjustment)},p}return Object(c.d)(t,r),t.prototype.getClassName=function(){return"TonemapPostProcess"},t}(_t),Mg=`uniform sampler2D textureSampler; +uniform sampler2D lightScatteringSampler; +uniform float decay; +uniform float exposure; +uniform float weight; +uniform float density; +uniform vec2 meshPositionOnScreen; +varying vec2 vUV; +void main(void) { +vec2 tc=vUV; +vec2 deltaTexCoord=(tc-meshPositionOnScreen.xy); +deltaTexCoord*=1.0/float(NUM_SAMPLES)*density; +float illuminationDecay=1.0; +vec4 color=texture2D(lightScatteringSampler,tc)*0.4; +for(int i=0; i +#include +#include[0..maxSimultaneousMorphTargets] + +#include +uniform mat4 viewProjection; +uniform vec2 depthValues; +#if defined(ALPHATEST) || defined(NEED_UV) +varying vec2 vUV; +uniform mat4 diffuseMatrix; +#ifdef UV1 +attribute vec2 uv; +#endif +#ifdef UV2 +attribute vec2 uv2; +#endif +#endif +void main(void) +{ +vec3 positionUpdated=position; +#if (defined(ALPHATEST) || defined(NEED_UV)) && defined(UV1) +vec2 uvUpdated=uv; +#endif +#include[0..maxSimultaneousMorphTargets] +#include +#include +gl_Position=viewProjection*finalWorld*vec4(positionUpdated,1.0); +#if defined(ALPHATEST) || defined(BASIC_RENDER) +#ifdef UV1 +vUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0)); +#endif +#ifdef UV2 +vUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0)); +#endif +#endif +} +`;ze.a.ShadersStore.volumetricLightScatteringPassVertexShader=Ig;var Dg=`#if defined(ALPHATEST) || defined(NEED_UV) +varying vec2 vUV; +#endif +#if defined(ALPHATEST) +uniform sampler2D diffuseSampler; +#endif +void main(void) +{ +#if defined(ALPHATEST) +vec4 diffuseColor=texture2D(diffuseSampler,vUV); +if (diffuseColor.a<0.4) +discard; +#endif +gl_FragColor=vec4(0.0,0.0,0.0,1.0); +} +`;ze.a.ShadersStore.volumetricLightScatteringPassPixelShader=Dg;var Xd=function(r){function t(e,n,i,o,a,s,d,p,b){a===void 0&&(a=100),s===void 0&&(s=we.a.BILINEAR_SAMPLINGMODE);var x=r.call(this,e,"volumetricLightScattering",["decay","exposure","weight","meshPositionOnScreen","density"],["lightScatteringSampler"],n.postProcessRatio||n,i,s,d,p,"#define NUM_SAMPLES "+a)||this;return x._screenCoordinates=u.d.Zero(),x.customMeshPosition=u.e.Zero(),x.useCustomMeshPosition=!1,x.invert=!0,x.excludedMeshes=new Array,x.exposure=.3,x.decay=.96815,x.weight=.58767,x.density=.926,d=(b=i===null?b:i.getScene()).getEngine(),x._viewPort=new Kn.a(0,0,1,1).toGlobal(d.getRenderWidth(),d.getRenderHeight()),x.mesh=o!==null?o:t.CreateDefaultMesh("VolumetricLightScatteringMesh",b),x._createPass(b,n.passRatio||n),x.onActivate=function(O){x.isSupported||x.dispose(O),x.onActivate=null},x.onApplyObservable.add(function(O){x._updateMeshScreenCoordinates(b),O.setTexture("lightScatteringSampler",x._volumetricLightScatteringRTT),O.setFloat("exposure",x.exposure),O.setFloat("decay",x.decay),O.setFloat("weight",x.weight),O.setFloat("density",x.density),O.setVector2("meshPositionOnScreen",x._screenCoordinates)}),x}return Object(c.d)(t,r),Object.defineProperty(t.prototype,"useDiffuseColor",{get:function(){return l.a.Warn("VolumetricLightScatteringPostProcess.useDiffuseColor is no longer used, use the mesh material directly instead"),!1},set:function(e){l.a.Warn("VolumetricLightScatteringPostProcess.useDiffuseColor is no longer used, use the mesh material directly instead")},enumerable:!1,configurable:!0}),t.prototype.getClassName=function(){return"VolumetricLightScatteringPostProcess"},t.prototype._isReady=function(e,n){var i=e.getMesh();if(i===this.mesh&&i.material)return i.material.isReady(i);var o=[],a=[Oe.b.PositionKind],s=e.getMaterial();s&&(s.needAlphaTesting()&&o.push("#define ALPHATEST"),i.isVerticesDataPresent(Oe.b.UVKind)&&(a.push(Oe.b.UVKind),o.push("#define UV1")),i.isVerticesDataPresent(Oe.b.UV2Kind)&&(a.push(Oe.b.UV2Kind),o.push("#define UV2"))),i.useBones&&i.computeBonesUsingShaders?(a.push(Oe.b.MatricesIndicesKind),a.push(Oe.b.MatricesWeightsKind),o.push("#define NUM_BONE_INFLUENCERS "+i.numBoneInfluencers),o.push("#define BonesPerMesh "+(i.skeleton?i.skeleton.bones.length+1:0))):o.push("#define NUM_BONE_INFLUENCERS 0"),n&&(o.push("#define INSTANCES"),et.a.PushAttributesForInstances(a),e.getRenderingMesh().hasThinInstances&&o.push("#define THIN_INSTANCES"));var d=o.join(` +`);return this._cachedDefines!==d&&(this._cachedDefines=d,this._volumetricLightScatteringPass=i.getScene().getEngine().createEffect("volumetricLightScatteringPass",a,["world","mBones","viewProjection","diffuseMatrix"],["diffuseSampler"],d,void 0,void 0,void 0,{maxSimultaneousMorphTargets:i.numBoneInfluencers})),this._volumetricLightScatteringPass.isReady()},t.prototype.setCustomMeshPosition=function(e){this.customMeshPosition=e},t.prototype.getCustomMeshPosition=function(){return this.customMeshPosition},t.prototype.dispose=function(e){var n=e.getScene().customRenderTargets.indexOf(this._volumetricLightScatteringRTT);n!==-1&&e.getScene().customRenderTargets.splice(n,1),this._volumetricLightScatteringRTT.dispose(),r.prototype.dispose.call(this,e)},t.prototype.getPass=function(){return this._volumetricLightScatteringRTT},t.prototype._meshExcluded=function(e){return this.excludedMeshes.length>0&&this.excludedMeshes.indexOf(e)!==-1},t.prototype._createPass=function(e,n){var i=this,o=e.getEngine();this._volumetricLightScatteringRTT=new sn("volumetricLightScatteringMap",{width:o.getRenderWidth()*n,height:o.getRenderHeight()*n},e,!1,!0,h.a.TEXTURETYPE_UNSIGNED_INT),this._volumetricLightScatteringRTT.wrapU=we.a.CLAMP_ADDRESSMODE,this._volumetricLightScatteringRTT.wrapV=we.a.CLAMP_ADDRESSMODE,this._volumetricLightScatteringRTT.renderList=null,this._volumetricLightScatteringRTT.renderParticles=!1,this._volumetricLightScatteringRTT.ignoreCameraViewport=!0;var a=this.getCamera();a?a.customRenderTargets.push(this._volumetricLightScatteringRTT):e.customRenderTargets.push(this._volumetricLightScatteringRTT);var s,d=function(b){var x=b.getRenderingMesh(),O=b.getEffectiveMesh();if(!i._meshExcluded(x)){O._internalAbstractMeshDataInfo._isActiveIntermediate=!1;var B=b.getMaterial();if(B){var F=x.getScene(),z=F.getEngine();z.setState(B.backFaceCulling);var J=x._getInstancesRenderList(b._id,!!b.getReplacementMesh());if(!J.mustReturn){var ie=z.getCaps().instancedArrays&&(J.visibleInstances[b._id]!==null||x.hasThinInstances);if(i._isReady(b,ie)){var se=i._volumetricLightScatteringPass;if(x===i.mesh&&(se=b.effect?b.effect:B.getEffect()),z.enableEffect(se),x._bind(b,se,B.fillMode),x===i.mesh)B.bind(O.getWorldMatrix(),x);else{if(i._volumetricLightScatteringPass.setMatrix("viewProjection",F.getTransformMatrix()),B&&B.needAlphaTesting()){var ce=B.getAlphaTestTexture();i._volumetricLightScatteringPass.setTexture("diffuseSampler",ce),ce&&i._volumetricLightScatteringPass.setMatrix("diffuseMatrix",ce.getTextureMatrix())}x.useBones&&x.computeBonesUsingShaders&&x.skeleton&&i._volumetricLightScatteringPass.setMatrices("mBones",x.skeleton.getTransformMatrices(x))}x._processRendering(O,b,i._volumetricLightScatteringPass,Ht.a.TriangleFillMode,J,ie,function(ue,fe){return se.setMatrix("world",fe)})}}}}},p=new M.b(0,0,0,1);this._volumetricLightScatteringRTT.onBeforeRenderObservable.add(function(){s=e.clearColor,e.clearColor=p}),this._volumetricLightScatteringRTT.onAfterRenderObservable.add(function(){e.clearColor=s}),this._volumetricLightScatteringRTT.customRenderFunction=function(b,x,O,B){var F,z=e.getEngine();if(B.length){for(z.setColorWrite(!1),F=0;Fue._alphaIndex?1:ce._alphaIndexue._distanceToCamera?-1:0}),z.setAlphaMode(h.a.ALPHA_COMBINE),F=0;F1||e.getCaps().drawBuffersExtension)},enumerable:!1,configurable:!0}),t._Parse=function(e,n,i,o){return L.a.Parse(function(){return new t(e.name,i,e.options,n,e.renderTargetSamplingMode,i.getEngine(),e.textureType,e.reusable)},e,i,o)},Object(c.c)([Object(L.c)()],t.prototype,"ridge",void 0),Object(c.c)([Object(L.c)()],t.prototype,"valley",void 0),t}(_t);C.a.RegisteredTypes["BABYLON.ScreenSpaceCurvaturePostProcess"]=Yd,f(166),f(167),Object.defineProperty(_e.a.prototype,"forceShowBoundingBoxes",{get:function(){return this._forceShowBoundingBoxes||!1},set:function(r){this._forceShowBoundingBoxes=r,r&&this.getBoundingBoxRenderer()},enumerable:!0,configurable:!0}),_e.a.prototype.getBoundingBoxRenderer=function(){return this._boundingBoxRenderer||(this._boundingBoxRenderer=new Kd(this)),this._boundingBoxRenderer},Object.defineProperty(Dt.a.prototype,"showBoundingBox",{get:function(){return this._showBoundingBox||!1},set:function(r){this._showBoundingBox=r,r&&this.getScene().getBoundingBoxRenderer()},enumerable:!0,configurable:!0});var Kd=function(){function r(t){this.name=at.a.NAME_BOUNDINGBOXRENDERER,this.frontColor=new M.a(1,1,1),this.backColor=new M.a(.1,.1,.1),this.showBackLines=!0,this.onBeforeBoxRenderingObservable=new R.c,this.onAfterBoxRenderingObservable=new R.c,this.onResourcesReadyObservable=new R.c,this.enabled=!0,this.renderList=new di.a(32),this._vertexBuffers={},this._fillIndexBuffer=null,this._fillIndexData=null,this.scene=t,t._addComponent(this)}return r.prototype.register=function(){this.scene._beforeEvaluateActiveMeshStage.registerStep(at.a.STEP_BEFOREEVALUATEACTIVEMESH_BOUNDINGBOXRENDERER,this,this.reset),this.scene._preActiveMeshStage.registerStep(at.a.STEP_PREACTIVEMESH_BOUNDINGBOXRENDERER,this,this._preActiveMesh),this.scene._evaluateSubMeshStage.registerStep(at.a.STEP_EVALUATESUBMESH_BOUNDINGBOXRENDERER,this,this._evaluateSubMesh),this.scene._afterRenderingGroupDrawStage.registerStep(at.a.STEP_AFTERRENDERINGGROUPDRAW_BOUNDINGBOXRENDERER,this,this.render)},r.prototype._evaluateSubMesh=function(t,e){if(t.showSubMeshesBoundingBox){var n=e.getBoundingInfo();n!=null&&(n.boundingBox._tag=t.renderingGroupId,this.renderList.push(n.boundingBox))}},r.prototype._preActiveMesh=function(t){if(t.showBoundingBox||this.scene.forceShowBoundingBoxes){var e=t.getBoundingInfo();e.boundingBox._tag=t.renderingGroupId,this.renderList.push(e.boundingBox)}},r.prototype._prepareResources=function(){if(!this._colorShader){this._colorShader=new ha.a("colorShader",this.scene,"color",{attributes:[Oe.b.PositionKind],uniforms:["world","viewProjection","color"]}),this._colorShader.reservedDataStore={hidden:!0};var t=this.scene.getEngine(),e=dt.a.CreateBox({size:1});this._vertexBuffers[Oe.b.PositionKind]=new Oe.b(t,e.positions,Oe.b.PositionKind,!1),this._createIndexBuffer(),this._fillIndexData=e.indices,this.onResourcesReadyObservable.notifyObservers(this)}},r.prototype._createIndexBuffer=function(){var t=this.scene.getEngine();this._indexBuffer=t.createIndexBuffer([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,7,1,6,2,5,3,4])},r.prototype.rebuild=function(){var t=this._vertexBuffers[Oe.b.PositionKind];t&&t._rebuild(),this._createIndexBuffer()},r.prototype.reset=function(){this.renderList.reset()},r.prototype.render=function(t){if(this.renderList.length!==0&&this.enabled&&(this._prepareResources(),this._colorShader.isReady())){var e=this.scene.getEngine();e.setDepthWrite(!1),this._colorShader._preBind();for(var n=0;n + +attribute vec3 position; +attribute vec4 normal; + +uniform mat4 viewProjection; +uniform float width; +uniform float aspectRatio; +void main(void) { +#include +mat4 worldViewProjection=viewProjection*finalWorld; +vec4 viewPosition=worldViewProjection*vec4(position,1.0); +vec4 viewPositionNext=worldViewProjection*vec4(normal.xyz,1.0); +vec2 currentScreen=viewPosition.xy/viewPosition.w; +vec2 nextScreen=viewPositionNext.xy/viewPositionNext.w; +currentScreen.x*=aspectRatio; +nextScreen.x*=aspectRatio; +vec2 dir=normalize(nextScreen-currentScreen); +vec2 normalDir=vec2(-dir.y,dir.x); +normalDir*=width/2.0; +normalDir.x/=aspectRatio; +vec4 offset=vec4(normalDir*normal.w,0.0,0.0); +gl_Position=viewPosition+offset; +}`;ze.a.ShadersStore.lineVertexShader=Ng,Dt.a.prototype.disableEdgesRendering=function(){return this._edgesRenderer&&(this._edgesRenderer.dispose(),this._edgesRenderer=null),this},Dt.a.prototype.enableEdgesRendering=function(r,t,e){return r===void 0&&(r=.95),t===void 0&&(t=!1),this.disableEdgesRendering(),this._edgesRenderer=new Hc(this,r,t,!0,e),this},Object.defineProperty(Dt.a.prototype,"edgesRenderer",{get:function(){return this._edgesRenderer},enumerable:!0,configurable:!0}),To.b.prototype.enableEdgesRendering=function(r,t){return r===void 0&&(r=.95),t===void 0&&(t=!1),this.disableEdgesRendering(),this._edgesRenderer=new qd(this,r,t),this},To.a.prototype.enableEdgesRendering=function(r,t){return r===void 0&&(r=.95),t===void 0&&(t=!1),To.b.prototype.enableEdgesRendering.apply(this,arguments),this};var wg=function(){this.edges=new Array,this.edgesConnectedCount=0},Hc=function(){function r(t,e,n,i,o){var a,s=this;e===void 0&&(e=.95),n===void 0&&(n=!1),i===void 0&&(i=!0),this.edgesWidthScalerForOrthographic=1e3,this.edgesWidthScalerForPerspective=50,this._linesPositions=new Array,this._linesNormals=new Array,this._linesIndices=new Array,this._buffers={},this._buffersForInstances={},this._checkVerticesInsteadOfIndices=!1,this.isEnabled=!0,this.customInstances=new di.a(32),this._source=t,this._checkVerticesInsteadOfIndices=n,this._options=o??null,this._epsilon=e,this._prepareRessources(),i&&((a=o?.useAlternateEdgeFinder)===null||a===void 0||a?this._generateEdgesLinesAlternate():this._generateEdgesLines()),this._meshRebuildObserver=this._source.onRebuildObservable.add(function(){s._rebuild()}),this._meshDisposeObserver=this._source.onDisposeObservable.add(function(){s.dispose()})}return Object.defineProperty(r.prototype,"linesPositions",{get:function(){return this._linesPositions},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"linesNormals",{get:function(){return this._linesNormals},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"linesIndices",{get:function(){return this._linesIndices},enumerable:!1,configurable:!0}),r.GetShader=function(t){if(!t._edgeRenderLineShader){var e=new ha.a("lineShader",t,"line",{attributes:["position","normal"],uniforms:["world","viewProjection","color","width","aspectRatio"]});e.disableDepthWrite=!0,e.backFaceCulling=!1,t._edgeRenderLineShader=e}return t._edgeRenderLineShader},r.prototype._prepareRessources=function(){this._lineShader||(this._lineShader=r.GetShader(this._source.getScene()))},r.prototype._rebuild=function(){var t=this._buffers[Oe.b.PositionKind];t&&t._rebuild(),(t=this._buffers[Oe.b.NormalKind])&&t._rebuild();var e=this._source.getScene().getEngine();this._ib=e.createIndexBuffer(this._linesIndices)},r.prototype.dispose=function(){this._source.onRebuildObservable.remove(this._meshRebuildObserver),this._source.onDisposeObservable.remove(this._meshDisposeObserver);var t=this._buffers[Oe.b.PositionKind];t&&(t.dispose(),this._buffers[Oe.b.PositionKind]=null),(t=this._buffers[Oe.b.NormalKind])&&(t.dispose(),this._buffers[Oe.b.NormalKind]=null),this._ib&&this._source.getScene().getEngine()._releaseBuffer(this._ib),this._lineShader.dispose()},r.prototype._processEdgeForAdjacencies=function(t,e,n,i,o){return t===n&&e===i||t===i&&e===n?0:t===i&&e===o||t===o&&e===i?1:t===o&&e===n||t===n&&e===o?2:-1},r.prototype._processEdgeForAdjacenciesWithVertices=function(t,e,n,i,o){var a=1e-10;return t.equalsWithEpsilon(n,a)&&e.equalsWithEpsilon(i,a)||t.equalsWithEpsilon(i,a)&&e.equalsWithEpsilon(n,a)?0:t.equalsWithEpsilon(i,a)&&e.equalsWithEpsilon(o,a)||t.equalsWithEpsilon(o,a)&&e.equalsWithEpsilon(i,a)?1:t.equalsWithEpsilon(o,a)&&e.equalsWithEpsilon(n,a)||t.equalsWithEpsilon(n,a)&&e.equalsWithEpsilon(o,a)?2:-1},r.prototype._checkEdge=function(t,e,n,i,o){var a;e===void 0?a=!0:a=u.e.Dot(n[t],n[e])=0&&Ee.push(Se);for(var Le=0;Le=t[0].length&&t[1].length>=t[2].length?a=1:t[2].length>=t[0].length&&t[2].length>=t[1].length&&(a=2);for(var s=0;s<3;++s)s===a?t[s].sort(function(Ae,Ee){return Ae[1]Ee[1]?1:0}):t[s].sort(function(Ae,Ee){return Ae[1]>Ee[1]?-1:Ae[1]=a+1;--x)o(t[x%3],p,x!==a+2?i[n[e+(x+1)%3]]:-1);var O=p.length;n.push(i[n[e+a]],d[0],p[0]),n.push(i[n[e+(a+1)%3]],p[O-1],d[b-1]);for(var B=b<=O,F=B?b:O,z=B?O:b,J=B?b-1:O-1,ie=B?0:1,se=b+O-2,ce=0,ue=0,fe=B?d:p,ve=B?p:d,Te=0;se-- >0;){ie?n.push(fe[ce],ve[ue]):n.push(ve[ue],fe[ce]);var Re=void 0;(Te+=F)>=z&&ceYe){var Et=Fe;Fe=Ye,Ye=Et}($t=zt[Mt=Fe+"_"+Ye])?$t.done||(u.e.Dot(Yt,$t.normal)0||this._source.hasThinInstances)},r.prototype.render=function(){var t=this._source.getScene();if(this.isReady()&&t.activeCamera){var e=t.getEngine();this._lineShader._preBind(),this._source.edgesColor.a!==1?e.setAlphaMode(h.a.ALPHA_COMBINE):e.setAlphaMode(h.a.ALPHA_DISABLE);var n=this._source.hasInstances&&this.customInstances.length>0,i=n||this._source.hasThinInstances,o=0;if(i)if(this._buffersForInstances.world0=this._source.getVertexBuffer("world0"),this._buffersForInstances.world1=this._source.getVertexBuffer("world1"),this._buffersForInstances.world2=this._source.getVertexBuffer("world2"),this._buffersForInstances.world3=this._source.getVertexBuffer("world3"),n){var a=this._source._instanceDataStorage;if(o=this.customInstances.length,!a.isFrozen){for(var s=0,d=0;d0&&(e.push(!0),n.push(!1));this._multiRenderAttachments=this._engine.buildTextureLayout(t),this._clearAttachments=this._engine.buildTextureLayout(e),this._defaultAttachments=this._engine.buildTextureLayout(n)},r.prototype._createCompositionEffect=function(){this.prePassRT=new qs("sceneprePassRT",{width:this._engine.getRenderWidth(),height:this._engine.getRenderHeight()},this.mrtCount,this._scene,{generateMipMaps:!1,generateDepthTexture:!0,defaultType:h.a.TEXTURETYPE_UNSIGNED_INT,types:this._mrtFormats}),this.prePassRT.samples=1,this._initializeAttachments(),this._useGeometryBufferFallback&&!this._geometryBuffer&&(this.useGeometryBufferFallback=!0),this.imageProcessingPostProcess=new zo("sceneCompositionPass",1,null,void 0,this._engine),this.imageProcessingPostProcess.autoClear=!1},Object.defineProperty(r.prototype,"isSupported",{get:function(){return this._engine.webGLVersion>1||this._scene.getEngine().getCaps().drawBuffersExtension},enumerable:!1,configurable:!0}),r.prototype.bindAttachmentsForEffect=function(t,e){if(this.enabled){if(t._multiTarget)this._engine.bindAttachments(this._multiRenderAttachments);else if(this._engine.bindAttachments(this._defaultAttachments),this._geometryBuffer){var n=e.getMaterial();n&&this.excludedMaterials.indexOf(n)===-1&&this._geometryBuffer.renderList.push(e.getRenderingMesh())}}},r.prototype.restoreAttachments=function(){this.enabled&&this._defaultAttachments&&this._engine.bindAttachments(this._defaultAttachments)},r.prototype._beforeCameraDraw=function(){this._isDirty&&this._update(),this._geometryBuffer&&(this._geometryBuffer.renderList.length=0),this._bindFrameBuffer()},r.prototype._afterCameraDraw=function(){if(this._enabled){var t=this._scene.activeCamera&&this._scene.activeCamera._getFirstPostProcess();t&&this._postProcesses.length&&this._scene.postProcessManager._prepareFrame(),this._scene.postProcessManager.directRender(this._postProcesses,t?t.inputTexture:null)}},r.prototype._checkRTSize=function(){var t=this._engine.getRenderWidth(!0),e=this._engine.getRenderHeight(!0),n=this.prePassRT.getRenderWidth(),i=this.prePassRT.getRenderHeight();n===t&&i===e||(this.prePassRT.resize({width:t,height:e}),this._updateGeometryBufferLayout(),this._bindPostProcessChain())},r.prototype._bindFrameBuffer=function(){if(this._enabled){this._checkRTSize();var t=this.prePassRT.getInternalTexture();t&&this._engine.bindFramebuffer(t)}},r.prototype.clear=function(){this._enabled&&(this._bindFrameBuffer(),this._engine.clear(this._scene.clearColor,this._scene.autoClear||this._scene.forceWireframe||this._scene.forcePointsCloud,this._scene.autoClearDepthAndStencil,this._scene.autoClearDepthAndStencil),this._engine.bindAttachments(this._clearAttachments),this._engine.clear(this._clearColor,!0,!1,!1),this._engine.bindAttachments(this._defaultAttachments))},r.prototype._setState=function(t){this._enabled=t,this._scene.prePass=t,this.imageProcessingPostProcess&&(this.imageProcessingPostProcess.imageProcessingConfiguration.applyByPostProcess=t)},r.prototype._updateGeometryBufferLayout=function(){if(this._geometryBuffer){this._geometryBuffer._resetLayout();for(var t=[],e=0;e +#include +#include +#include +varying vec2 vUV; +uniform vec2 texelSize; +uniform sampler2D textureSampler; +uniform sampler2D irradianceSampler; +uniform sampler2D depthSampler; +uniform sampler2D albedoSampler; +uniform vec2 viewportSize; +uniform float metersPerUnit; +const float LOG2_E=1.4426950408889634; +const float SSS_PIXELS_PER_SAMPLE=4.; +const int _SssSampleBudget=40; +#define rcp(x) 1./x +#define Sq(x) x*x +#define SSS_BILATERAL_FILTER true + + +vec3 EvalBurleyDiffusionProfile(float r,vec3 S) +{ +vec3 exp_13=exp2(((LOG2_E*(-1.0/3.0))*r)*S); +vec3 expSum=exp_13*(1.+exp_13*exp_13); +return (S*rcp(8.*PI))*expSum; +} + + + + + + +vec2 SampleBurleyDiffusionProfile(float u,float rcpS) +{ +u=1.-u; +float g=1.+(4.*u)*(2.*u+sqrt(1.+(4.*u)*u)); +float n=exp2(log2(g)*(-1.0/3.0)); +float p=(g*n)*n; +float c=1.+p+n; +float d=(3./LOG2_E*2.)+(3./LOG2_E)*log2(u); +float x=(3./LOG2_E)*log2(c)-d; + + + + + + +float rcpExp=((c*c)*c)*rcp((4.*u)*((c*c)+(4.*u)*(4.*u))); +float r=x*rcpS; +float rcpPdf=(8.*PI*rcpS)*rcpExp; +return vec2(r,rcpPdf); +} + + +vec3 ComputeBilateralWeight(float xy2,float z,float mmPerUnit,vec3 S,float rcpPdf) +{ +#ifndef SSS_BILATERAL_FILTER +z=0.; +#endif + + + +float r=sqrt(xy2+(z*mmPerUnit)*(z*mmPerUnit)); +float area=rcpPdf; +#if SSS_CLAMP_ARTIFACT +return clamp(EvalBurleyDiffusionProfile(r,S)*area,0.0,1.0); +#else +return EvalBurleyDiffusionProfile(r,S)*area; +#endif +} +void EvaluateSample(int i,int n,vec3 S,float d,vec3 centerPosVS,float mmPerUnit,float pixelsPerMm, +float phase,inout vec3 totalIrradiance,inout vec3 totalWeight) +{ + +float scale=rcp(float(n)); +float offset=rcp(float(n))*0.5; + +float sinPhase,cosPhase; +sinPhase=sin(phase); +cosPhase=cos(phase); +vec2 bdp=SampleBurleyDiffusionProfile(float(i)*scale+offset,d); +float r=bdp.x; +float rcpPdf=bdp.y; +float phi=SampleDiskGolden(i,n).y; +float sinPhi,cosPhi; +sinPhi=sin(phi); +cosPhi=cos(phi); +float sinPsi=cosPhase*sinPhi+sinPhase*cosPhi; +float cosPsi=cosPhase*cosPhi-sinPhase*sinPhi; +vec2 vec=r*vec2(cosPsi,sinPsi); + +vec2 position; +float xy2; +position=vUV+round((pixelsPerMm*r)*vec2(cosPsi,sinPsi))*texelSize; +xy2=r*r; +vec4 textureSample=texture2D(irradianceSampler,position); +float viewZ=texture2D(depthSampler,position).r; +vec3 irradiance=textureSample.rgb; +if (testLightingForSSS(textureSample.a)) +{ + +float relZ=viewZ-centerPosVS.z; +vec3 weight=ComputeBilateralWeight(xy2,relZ,mmPerUnit,S,rcpPdf); +totalIrradiance+=weight*irradiance; +totalWeight+=weight; +} +else +{ + + + + + + +} +} +void main(void) +{ +vec4 irradianceAndDiffusionProfile=texture2D(irradianceSampler,vUV); +vec3 centerIrradiance=irradianceAndDiffusionProfile.rgb; +int diffusionProfileIndex=int(round(irradianceAndDiffusionProfile.a*255.)); +float centerDepth=0.; +vec4 inputColor=texture2D(textureSampler,vUV); +bool passedStencilTest=testLightingForSSS(irradianceAndDiffusionProfile.a); +if (passedStencilTest) +{ +centerDepth=texture2D(depthSampler,vUV).r; +} +if (!passedStencilTest) { +gl_FragColor=inputColor; +return; +} +float distScale=1.; +vec3 S=diffusionS[diffusionProfileIndex]; +float d=diffusionD[diffusionProfileIndex]; +float filterRadius=filterRadii[diffusionProfileIndex]; + +vec2 centerPosNDC=vUV; +vec2 cornerPosNDC=vUV+0.5*texelSize; +vec3 centerPosVS=vec3(centerPosNDC*viewportSize,1.0)*centerDepth; +vec3 cornerPosVS=vec3(cornerPosNDC*viewportSize,1.0)*centerDepth; + +float mmPerUnit=1000.*(metersPerUnit*rcp(distScale)); +float unitsPerMm=rcp(mmPerUnit); + + +float unitsPerPixel=2.*abs(cornerPosVS.x-centerPosVS.x); +float pixelsPerMm=rcp(unitsPerPixel)*unitsPerMm; + +float filterArea=PI*Sq(filterRadius*pixelsPerMm); +int sampleCount=int(filterArea*rcp(SSS_PIXELS_PER_SAMPLE)); +int sampleBudget=_SssSampleBudget; +int texturingMode=0; +vec3 albedo=texture2D(albedoSampler,vUV).rgb; +if (distScale == 0. || sampleCount<1) +{ +#ifdef DEBUG_SSS_SAMPLES +vec3 green=vec3(0.,1.,0.); +gl_FragColor=vec4(green,1.0); +return; +#endif +gl_FragColor=vec4(inputColor.rgb+albedo*centerIrradiance,1.0); +return; +} +#ifdef DEBUG_SSS_SAMPLES +vec3 red=vec3(1.,0.,0.); +vec3 blue=vec3(0.,0.,1.); +gl_FragColor=vec4(mix(blue,red,clamp(float(sampleCount)/float(sampleBudget),0.0,1.0)),1.0); +return; +#endif + +float phase=0.; +int n=min(sampleCount,sampleBudget); + +vec3 centerWeight=vec3(0.); +vec3 totalIrradiance=vec3(0.); +vec3 totalWeight=vec3(0.); +for (int i=0; i=5)return l.a.Error("You already reached the maximum number of diffusion profiles."),0;for(var e=0;e +void main(void) { +#ifdef ALPHATEST +if (texture2D(diffuseSampler,vUV).a<0.4) +discard; +#endif +#include +gl_FragColor=color; +}`;ze.a.ShadersStore.outlinePixelShader=kg;var Gg=` +attribute vec3 position; +attribute vec3 normal; +#include +#include +#include[0..maxSimultaneousMorphTargets] + +uniform float offset; +#include +uniform mat4 viewProjection; +#ifdef ALPHATEST +varying vec2 vUV; +uniform mat4 diffuseMatrix; +#ifdef UV1 +attribute vec2 uv; +#endif +#ifdef UV2 +attribute vec2 uv2; +#endif +#endif +#include +void main(void) +{ +vec3 positionUpdated=position; +vec3 normalUpdated=normal; +#ifdef UV1 +vec2 uvUpdated=uv; +#endif +#include[0..maxSimultaneousMorphTargets] +vec3 offsetPosition=positionUpdated+(normalUpdated*offset); +#include +#include +gl_Position=viewProjection*finalWorld*vec4(offsetPosition,1.0); +#ifdef ALPHATEST +#ifdef UV1 +vUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0)); +#endif +#ifdef UV2 +vUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0)); +#endif +#endif +#include +} +`;ze.a.ShadersStore.outlineVertexShader=Gg,_e.a.prototype.getOutlineRenderer=function(){return this._outlineRenderer||(this._outlineRenderer=new ef(this)),this._outlineRenderer},Object.defineProperty(De.a.prototype,"renderOutline",{get:function(){return this._renderOutline},set:function(r){r&&this.getScene().getOutlineRenderer(),this._renderOutline=r},enumerable:!0,configurable:!0}),Object.defineProperty(De.a.prototype,"renderOverlay",{get:function(){return this._renderOverlay},set:function(r){r&&this.getScene().getOutlineRenderer(),this._renderOverlay=r},enumerable:!0,configurable:!0});var ef=function(){function r(t){this.name=at.a.NAME_OUTLINERENDERER,this.zOffset=1,this.scene=t,this._engine=t.getEngine(),this.scene._addComponent(this)}return r.prototype.register=function(){this.scene._beforeRenderingMeshStage.registerStep(at.a.STEP_BEFORERENDERINGMESH_OUTLINE,this,this._beforeRenderingMesh),this.scene._afterRenderingMeshStage.registerStep(at.a.STEP_AFTERRENDERINGMESH_OUTLINE,this,this._afterRenderingMesh)},r.prototype.rebuild=function(){},r.prototype.dispose=function(){},r.prototype.render=function(t,e,n){var i=this;n===void 0&&(n=!1);var o=this.scene,a=o.getEngine(),s=a.getCaps().instancedArrays&&(e.visibleInstances[t._id]!==null&&e.visibleInstances[t._id]!==void 0||t.getRenderingMesh().hasThinInstances);if(this.isReady(t,s)){var d=t.getMesh(),p=d._internalAbstractMeshDataInfo._actAsRegularMesh?d:null,b=t.getRenderingMesh(),x=p||b,O=t.getMaterial();if(O&&o.activeCamera){if(a.enableEffect(this._effect),O.useLogarithmicDepth&&this._effect.setFloat("logarithmicDepthConstant",2/(Math.log(o.activeCamera.maxZ+1)/Math.LN2)),this._effect.setFloat("offset",n?0:b.outlineWidth),this._effect.setColor4("color",n?b.overlayColor:b.outlineColor,n?b.overlayAlpha:O.alpha),this._effect.setMatrix("viewProjection",o.getTransformMatrix()),this._effect.setMatrix("world",x.getWorldMatrix()),b.useBones&&b.computeBonesUsingShaders&&b.skeleton&&this._effect.setMatrices("mBones",b.skeleton.getTransformMatrices(b)),et.a.BindMorphTargetParameters(b,this._effect),b._bind(t,this._effect,O.fillMode),O&&O.needAlphaTesting()){var B=O.getAlphaTestTexture();B&&(this._effect.setTexture("diffuseSampler",B),this._effect.setMatrix("diffuseMatrix",B.getTextureMatrix()))}a.setZOffset(-this.zOffset),b._processRendering(x,t,this._effect,O.fillMode,e,s,function(F,z){i._effect.setMatrix("world",z)}),a.setZOffset(0)}}},r.prototype.isReady=function(t,e){var n=[],i=[Oe.b.PositionKind,Oe.b.NormalKind],o=t.getMesh(),a=t.getMaterial();a&&(a.needAlphaTesting()&&(n.push("#define ALPHATEST"),o.isVerticesDataPresent(Oe.b.UVKind)&&(i.push(Oe.b.UVKind),n.push("#define UV1")),o.isVerticesDataPresent(Oe.b.UV2Kind)&&(i.push(Oe.b.UV2Kind),n.push("#define UV2"))),a.useLogarithmicDepth&&n.push("#define LOGARITHMICDEPTH")),o.useBones&&o.computeBonesUsingShaders?(i.push(Oe.b.MatricesIndicesKind),i.push(Oe.b.MatricesWeightsKind),o.numBoneInfluencers>4&&(i.push(Oe.b.MatricesIndicesExtraKind),i.push(Oe.b.MatricesWeightsExtraKind)),n.push("#define NUM_BONE_INFLUENCERS "+o.numBoneInfluencers),n.push("#define BonesPerMesh "+(o.skeleton?o.skeleton.bones.length+1:0))):n.push("#define NUM_BONE_INFLUENCERS 0");var s=o.morphTargetManager,d=0;s&&s.numInfluencers>0&&(d=s.numInfluencers,n.push("#define MORPHTARGETS"),n.push("#define NUM_MORPH_INFLUENCERS "+d),et.a.PrepareAttributesForMorphTargetsInfluencers(i,o,d)),e&&(n.push("#define INSTANCES"),et.a.PushAttributesForInstances(i),t.getRenderingMesh().hasThinInstances&&n.push("#define THIN_INSTANCES"));var p=n.join(` +`);return this._cachedDefines!==p&&(this._cachedDefines=p,this._effect=this.scene.getEngine().createEffect("outline",i,["world","mBones","viewProjection","diffuseMatrix","offset","color","logarithmicDepthConstant","morphTargetInfluences"],["diffuseSampler"],p,void 0,void 0,void 0,{maxSimultaneousMorphTargets:d})),this._effect.isReady()},r.prototype._beforeRenderingMesh=function(t,e,n){if(this._savedDepthWrite=this._engine.getDepthWrite(),t.renderOutline){var i=e.getMaterial();i&&i.needAlphaBlendingForMesh(t)&&(this._engine.cacheStencilState(),this._engine.setDepthWrite(!1),this._engine.setColorWrite(!1),this._engine.setStencilBuffer(!0),this._engine.setStencilOperationPass(h.a.REPLACE),this._engine.setStencilFunction(h.a.ALWAYS),this._engine.setStencilMask(r._StencilReference),this._engine.setStencilFunctionReference(r._StencilReference),this.render(e,n,!0),this._engine.setColorWrite(!0),this._engine.setStencilFunction(h.a.NOTEQUAL)),this._engine.setDepthWrite(!1),this.render(e,n),this._engine.setDepthWrite(this._savedDepthWrite),i&&i.needAlphaBlendingForMesh(t)&&this._engine.restoreStencilState()}},r.prototype._afterRenderingMesh=function(t,e,n){if(t.renderOverlay){var i=this._engine.getAlphaMode(),o=this._engine.alphaState.alphaBlend;this._engine.setAlphaMode(h.a.ALPHA_COMBINE),this.render(e,n,!0),this._engine.setAlphaMode(i),this._engine.setDepthWrite(this._savedDepthWrite),this._engine.alphaState.alphaBlend=o}t.renderOutline&&this._savedDepthWrite&&(this._engine.setDepthWrite(!0),this._engine.setColorWrite(!1),this.render(e,n),this._engine.setColorWrite(!0))},r._StencilReference=4,r}(),zg=f(148),tf=function(r){function t(e,n){var i=r.call(this)||this;return i.name=e,i.animations=new Array,i.isPickable=!1,i.useAlphaForPicking=!1,i.onDisposeObservable=new R.c,i._onAnimationEnd=null,i._endAnimation=function(){i._onAnimationEnd&&i._onAnimationEnd(),i.disposeWhenFinishedAnimating&&i.dispose()},i.color=new M.b(1,1,1,1),i.position=u.e.Zero(),i._manager=n,i._manager.sprites.push(i),i.uniqueId=i._manager.scene.getUniqueId(),i}return Object(c.d)(t,r),Object.defineProperty(t.prototype,"size",{get:function(){return this.width},set:function(e){this.width=e,this.height=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"manager",{get:function(){return this._manager},enumerable:!1,configurable:!0}),t.prototype.getClassName=function(){return"Sprite"},Object.defineProperty(t.prototype,"fromIndex",{get:function(){return this._fromIndex},set:function(e){this.playAnimation(e,this._toIndex,this._loopAnimation,this._delay,this._onAnimationEnd)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"toIndex",{get:function(){return this._toIndex},set:function(e){this.playAnimation(this._fromIndex,e,this._loopAnimation,this._delay,this._onAnimationEnd)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"loopAnimation",{get:function(){return this._loopAnimation},set:function(e){this.playAnimation(this._fromIndex,this._toIndex,e,this._delay,this._onAnimationEnd)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"delay",{get:function(){return Math.max(this._delay,1)},set:function(e){this.playAnimation(this._fromIndex,this._toIndex,this._loopAnimation,e,this._onAnimationEnd)},enumerable:!1,configurable:!0}),t.prototype.playAnimation=function(e,n,i,o,a){a===void 0&&(a=null),this._onAnimationEnd=a,r.prototype.playAnimation.call(this,e,n,i,o,this._endAnimation)},t.prototype.dispose=function(){for(var e=0;ethis._delay&&(this._time=this._time%this._delay,this.cellIndex+=this._direction,(this._direction>0&&this.cellIndex>this._toIndex||this._direction<0&&this.cellIndex0?this._fromIndex:this._toIndex:(this.cellIndex=this._toIndex,this._animationStarted=!1,this._onBaseAnimationEnd&&this._onBaseAnimationEnd()))))},r}());_e.a.prototype._internalPickSprites=function(r,t,e,n){if(!tr.a)return null;var i=null;if(!n){if(!this.activeCamera)return null;n=this.activeCamera}if(this.spriteManagers.length>0)for(var o=0;o=i.distance))&&(i=s,e))break}}return i||new tr.a},_e.a.prototype._internalMultiPickSprites=function(r,t,e){if(!tr.a)return null;var n=new Array;if(!e){if(!this.activeCamera)return null;e=this.activeCamera}if(this.spriteManagers.length>0)for(var i=0;i0&&(n=o.pickSprite(t,e,this._spritePredicate,!1,o.cameraToUseForPointers||void 0))&&n.hit&&n.pickedSprite&&n.pickedSprite.actionManager){switch(o._pickedDownSprite=n.pickedSprite,i.button){case 0:n.pickedSprite.actionManager.processTrigger(h.a.ACTION_OnLeftPickTrigger,m.a.CreateNewFromSprite(n.pickedSprite,o,i));break;case 1:n.pickedSprite.actionManager.processTrigger(h.a.ACTION_OnCenterPickTrigger,m.a.CreateNewFromSprite(n.pickedSprite,o,i));break;case 2:n.pickedSprite.actionManager.processTrigger(h.a.ACTION_OnRightPickTrigger,m.a.CreateNewFromSprite(n.pickedSprite,o,i))}n.pickedSprite.actionManager&&n.pickedSprite.actionManager.processTrigger(h.a.ACTION_OnPickDownTrigger,m.a.CreateNewFromSprite(n.pickedSprite,o,i))}return n},r.prototype._pointerUp=function(t,e,n,i){var o=this.scene;if(o.spriteManagers.length>0){var a=o.pickSprite(t,e,this._spritePredicate,!1,o.cameraToUseForPointers||void 0);a&&(a.hit&&a.pickedSprite&&a.pickedSprite.actionManager&&(a.pickedSprite.actionManager.processTrigger(h.a.ACTION_OnPickUpTrigger,m.a.CreateNewFromSprite(a.pickedSprite,o,i)),a.pickedSprite.actionManager&&(this.scene._inputManager._isPointerSwiping()||a.pickedSprite.actionManager.processTrigger(h.a.ACTION_OnPickTrigger,m.a.CreateNewFromSprite(a.pickedSprite,o,i)))),o._pickedDownSprite&&o._pickedDownSprite.actionManager&&o._pickedDownSprite!==a.pickedSprite&&o._pickedDownSprite.actionManager.processTrigger(h.a.ACTION_OnPickOutTrigger,m.a.CreateNewFromSprite(o._pickedDownSprite,o,i)))}return n},r}();ze.a.IncludesShadersStore.imageProcessingCompatibility=`#ifdef IMAGEPROCESSINGPOSTPROCESS +gl_FragColor.rgb=pow(gl_FragColor.rgb,vec3(2.2)); +#endif`;var jg=`uniform bool alphaTest; +varying vec4 vColor; + +varying vec2 vUV; +uniform sampler2D diffuseSampler; + +#include +void main(void) { +vec4 color=texture2D(diffuseSampler,vUV); +if (alphaTest) +{ +if (color.a<0.95) +discard; +} +color*=vColor; +#include +gl_FragColor=color; +#include +}`;ze.a.ShadersStore.spritesPixelShader=jg;var Hg=` +attribute vec4 position; +attribute vec2 options; +attribute vec2 offsets; +attribute vec2 inverts; +attribute vec4 cellInfo; +attribute vec4 color; + +uniform mat4 view; +uniform mat4 projection; + +varying vec2 vUV; +varying vec4 vColor; +#include +void main(void) { +vec3 viewPos=(view*vec4(position.xyz,1.0)).xyz; +vec2 cornerPos; +float angle=position.w; +vec2 size=vec2(options.x,options.y); +vec2 offset=offsets.xy; +cornerPos=vec2(offset.x-0.5,offset.y-0.5)*size; + +vec3 rotatedCorner; +rotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle); +rotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle); +rotatedCorner.z=0.; + +viewPos+=rotatedCorner; +gl_Position=projection*vec4(viewPos,1.0); + +vColor=color; + +vec2 uvOffset=vec2(abs(offset.x-inverts.x),abs(1.0-offset.y-inverts.y)); +vec2 uvPlace=cellInfo.xy; +vec2 uvSize=cellInfo.zw; +vUV.x=uvPlace.x+uvSize.x*uvOffset.x; +vUV.y=uvPlace.y+uvSize.y*uvOffset.y; + +#ifdef FOG +vFogDistance=viewPos; +#endif +}`;ze.a.ShadersStore.spritesVertexShader=Hg;var Wg=function(){function r(t,e,n,i){if(n===void 0&&(n=.01),i===void 0&&(i=null),this.blendMode=h.a.ALPHA_COMBINE,this.autoResetAlpha=!0,this.disableDepthWrite=!1,this.fogEnabled=!0,this._useVAO=!1,this._useInstancing=!1,this._vertexBuffers={},this._capacity=e,this._epsilon=n,this._engine=t,this._useInstancing=t.getCaps().instancedArrays,this._useVAO=t.getCaps().vertexArrayObject&&!t.disableVertexArrayObjects,this._scene=i,!this._useInstancing){for(var o=[],a=0,s=0;s>0;e._xOffset=(e.cellIndex-b*p)*this.cellWidth/o.width,e._yOffset=b*this.cellHeight/o.height,e._xSize=this.cellWidth,e._ySize=this.cellHeight}this._vertexData[d]=e.position.x,this._vertexData[d+1]=e.position.y,this._vertexData[d+2]=e.position.z,this._vertexData[d+3]=e.angle,this._vertexData[d+4]=e.width,this._vertexData[d+5]=e.height,this._useInstancing?d-=2:(this._vertexData[d+6]=n,this._vertexData[d+7]=i),this._vertexData[d+8]=a?e.invertU?0:1:e.invertU?1:0,this._vertexData[d+9]=e.invertV?1:0,this._vertexData[d+10]=e._xOffset,this._vertexData[d+11]=e._yOffset,this._vertexData[d+12]=e._xSize/o.width,this._vertexData[d+13]=e._ySize/o.height,this._vertexData[d+14]=e.color.r,this._vertexData[d+15]=e.color.g,this._vertexData[d+16]=e.color.b,this._vertexData[d+17]=e.color.a},r.prototype.dispose=function(){this._buffer&&(this._buffer.dispose(),this._buffer=null),this._spriteBuffer&&(this._spriteBuffer.dispose(),this._spriteBuffer=null),this._indexBuffer&&(this._engine._releaseBuffer(this._indexBuffer),this._indexBuffer=null),this._vertexArrayObject&&(this._engine.releaseVertexArrayObject(this._vertexArrayObject),this._vertexArrayObject=null),this.texture&&(this.texture.dispose(),this.texture=null)},r}(),rf=function(){function r(t,e,n,i,o,a,s,d,p){var b=this;a===void 0&&(a=.01),s===void 0&&(s=we.a.TRILINEAR_SAMPLINGMODE),d===void 0&&(d=!1),p===void 0&&(p=null),this.name=t,this.sprites=new Array,this.renderingGroupId=0,this.layerMask=268435455,this.isPickable=!1,this.onDisposeObservable=new R.c,this.disableDepthWrite=!1,this._packedAndReady=!1,this._customUpdate=function(O,B){O.cellRef||(O.cellIndex=0);var F=O.cellIndex;typeof F=="number"&&isFinite(F)&&Math.floor(F)===F&&(O.cellRef=b._spriteMap[O.cellIndex]),O._xOffset=b._cellData[O.cellRef].frame.x/B.width,O._yOffset=b._cellData[O.cellRef].frame.y/B.height,O._xSize=b._cellData[O.cellRef].frame.w,O._ySize=b._cellData[O.cellRef].frame.h},o||(o=Ue.a.LastCreatedScene),o._getComponent(at.a.NAME_SPRITE)||o._addComponent(new nf(o)),this._fromPacked=d,this._scene=o;var x=this._scene.getEngine();if(this._spriteRenderer=new Wg(x,n,a,o),i.width&&i.height)this.cellWidth=i.width,this.cellHeight=i.height;else{if(i===void 0)return void(this._spriteRenderer=null);this.cellWidth=i,this.cellHeight=i}this._scene.spriteManagers.push(this),this.uniqueId=this.scene.getUniqueId(),e&&(this.texture=new we.a(e,o,!0,!1,s)),this._fromPacked&&this._makePacked(e,p)}return Object.defineProperty(r.prototype,"onDispose",{set:function(t){this._onDisposeObserver&&this.onDisposeObservable.remove(this._onDisposeObserver),this._onDisposeObserver=this.onDisposeObservable.add(t)},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"children",{get:function(){return this.sprites},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"scene",{get:function(){return this._scene},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"capacity",{get:function(){return this._spriteRenderer.capacity},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"texture",{get:function(){return this._spriteRenderer.texture},set:function(t){t.wrapU=we.a.CLAMP_ADDRESSMODE,t.wrapV=we.a.CLAMP_ADDRESSMODE,this._spriteRenderer.texture=t,this._textureContent=null},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"cellWidth",{get:function(){return this._spriteRenderer.cellWidth},set:function(t){this._spriteRenderer.cellWidth=t},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"cellHeight",{get:function(){return this._spriteRenderer.cellHeight},set:function(t){this._spriteRenderer.cellHeight=t},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"fogEnabled",{get:function(){return this._spriteRenderer.fogEnabled},set:function(t){this._spriteRenderer.fogEnabled=t},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"blendMode",{get:function(){return this._spriteRenderer.blendMode},set:function(t){this._spriteRenderer.blendMode=t},enumerable:!1,configurable:!0}),r.prototype.getClassName=function(){return"SpriteManager"},r.prototype._makePacked=function(t,e){var n=this;if(e!==null)try{var i=void 0;if((i=typeof e=="string"?JSON.parse(e):e).frames.length){for(var o={},a=0;a0);var x=t.substring(0,b-1)+".json",O=new XMLHttpRequest;O.open("GET",x,!0),O.onerror=function(){l.a.Error("JSON ERROR: Unable to load JSON file."),n._fromPacked=!1,n._packedAndReady=!1},O.onload=function(){try{var B=JSON.parse(O.response),F=Reflect.ownKeys(B.frames);n._spriteMap=F,n._packedAndReady=!0,n._cellData=B.frames}catch{throw n._fromPacked=!1,n._packedAndReady=!1,new Error("Invalid JSON format. Please check documentation for format specifications.")}},O.send()}},r.prototype._checkTextureAlpha=function(t,e,n,i,o){if(!t.useAlphaForPicking||!this.texture)return!0;var a=this.texture.getSize();this._textureContent||(this._textureContent=new Uint8Array(a.width*a.height*4),this.texture.readPixels(0,0,this._textureContent));var s=u.c.Vector3[0];s.copyFrom(e.direction),s.normalize(),s.scaleInPlace(n),s.addInPlace(e.origin);var d=(s.x-i.x)/(o.x-i.x)-.5,p=1-(s.y-i.y)/(o.y-i.y)-.5,b=t.angle,x=d*Math.cos(b)-p*Math.sin(b)+.5,O=d*Math.sin(b)+p*Math.cos(b)+.5,B=t._xOffset*a.width+x*t._xSize|0,F=t._yOffset*a.height+O*t._ySize|0;return this._textureContent[4*(B+F*a.width)+3]>.5},r.prototype.intersects=function(t,e,n,i){for(var o=Math.min(this.capacity,this.sprites.length),a=u.e.Zero(),s=u.e.Zero(),d=Number.MAX_VALUE,p=null,b=u.c.Vector3[0],x=u.c.Vector3[1],O=e.getViewMatrix(),B=0;Bz){if(!this._checkTextureAlpha(F,t,z,a,s))continue;if(d=z,p=F,i)break}}}}if(p){var J=new tr.a;O.invertToRef(u.c.Matrix[0]),J.hit=!0,J.pickedSprite=p,J.distance=d;var ie=u.c.Vector3[2];return ie.copyFrom(t.direction),ie.normalize(),ie.scaleInPlace(d),t.origin.addToRef(ie,b),J.pickedPoint=u.e.TransformCoordinates(b,u.c.Matrix[0]),J}return null},r.prototype.multiIntersects=function(t,e,n){for(var i,o=Math.min(this.capacity,this.sprites.length),a=u.e.Zero(),s=u.e.Zero(),d=[],p=u.c.Vector3[0].copyFromFloats(0,0,0),b=u.c.Vector3[1].copyFromFloats(0,0,0),x=e.getViewMatrix(),O=0;O0.) { +mt=mod(time*animationData.z,1.0); +for(float f=0.; fmt){ +frameID=animationData.x; +break; +} +animationData=texture2D(animationMap,vec2((frameID+0.5)/spriteCount,aFrameSteps*f),0.); +} +} + +mat4 frameData=getFrameData(frameID+0.5); +vec2 frameSize=(frameData[0].wz)/spriteMapSize; +vec2 offset=frameData[0].xy*sheetUnits; +vec2 ratio=frameData[2].xy/frameData[0].wz; + +if (frameData[2].z == 1.){ +tileUV.xy=tileUV.yx; +} +if (i == 0){ +color=texture2D(spriteSheet,tileUV*frameSize+offset); +} else { +vec4 nc=texture2D(spriteSheet,tileUV*frameSize+offset); +float alpha=min(color.a+nc.a,1.0); +vec3 mixed=mix(color.xyz,nc.xyz,nc.a); +color=vec4(mixed,alpha); +} +} +color.xyz*=colorMul; +gl_FragColor=color; +}`;ze.a.ShadersStore.spriteMapPixelShader=Xg;var Yg=`precision highp float; + +attribute vec3 position; +attribute vec3 normal; +attribute vec2 uv; + +varying vec3 vPosition; +varying vec2 vUV; +varying vec2 tUV; +varying vec2 stageUnits; +varying vec2 levelUnits; +varying vec2 tileID; + +uniform float time; +uniform mat4 worldViewProjection; +uniform vec2 outputSize; +uniform vec2 stageSize; +uniform vec2 spriteMapSize; +uniform float stageScale; +void main() { +vec4 p=vec4( position,1. ); +vPosition=p.xyz; +vUV=uv; +tUV=uv*stageSize; +gl_Position=worldViewProjection*p; +}`;ze.a.ShadersStore.spriteMapVertexShader=Yg;var _i,Kg=function(){function r(t,e,n,i,o){var a=this;this.name=t,this.sprites=[],this.atlasJSON=e,this.sprites=this.atlasJSON.frames,this.spriteSheet=n,this.options=i,i.stageSize=i.stageSize||new u.d(1,1),i.outputSize=i.outputSize||i.stageSize,i.outputPosition=i.outputPosition||u.e.Zero(),i.outputRotation=i.outputRotation||u.e.Zero(),i.layerCount=i.layerCount||1,i.maxAnimationFrames=i.maxAnimationFrames||0,i.baseTile=i.baseTile||0,i.flipU=i.flipU||!1,i.colorMultiply=i.colorMultiply||new u.e(1,1,1),this._scene=o,this._frameMap=this._createFrameBuffer(),this._tileMaps=new Array;for(var s=0;s0&&(t+=` +\r`),t+=this._tileMaps[e]._texture._bufferView.toString();var n=document.createElement("a");n.href="data:octet/stream;charset=utf-8,"+encodeURI(t),n.target="_blank",n.download=this.name+".tilemaps",n.click(),n.remove()},r.prototype.loadTileMaps=function(t){var e=this,n=new XMLHttpRequest;n.open("GET",t);var i=this.options.layerCount||0;n.onload=function(){for(var o=n.response.split(` +\r`),a=0;a-1&&this._tasks.splice(e,1)},r.prototype._decreaseWaitingTasksCount=function(t){this._waitingTasksCount--;try{this.onProgress&&this.onProgress(this._waitingTasksCount,this._totalTasksCount,t),this.onProgressObservable.notifyObservers(new of(this._waitingTasksCount,this._totalTasksCount,t))}catch(a){l.a.Error("Error running progress callbacks."),console.log(a)}if(this._waitingTasksCount===0){try{var e=this._tasks.slice();this.onFinish&&this.onFinish(e);for(var n=0,i=e;n-1&&this._tasks.splice(o,1)}this.onTasksDoneObservable.notifyObservers(this._tasks)}catch(a){l.a.Error("Error running tasks-done callbacks."),console.log(a)}this._isLoading=!1,this.autoHideLoadingUI&&this._scene.getEngine().hideLoadingUI()}},r.prototype._runTask=function(t){var e=this,n=function(i,o){t._setErrorObject(i,o),e.onTaskError&&e.onTaskError(t),e.onTaskErrorObservable.notifyObservers(t),e._decreaseWaitingTasksCount(t)};t.run(this._scene,function(){try{e.onTaskSuccess&&e.onTaskSuccess(t),e.onTaskSuccessObservable.notifyObservers(t),e._decreaseWaitingTasksCount(t)}catch(i){n("Error executing task success callbacks",i)}},n)},r.prototype.reset=function(){return this._isLoading=!1,this._tasks=new Array,this},r.prototype.load=function(){if(this._isLoading)return this;if(this._isLoading=!0,this._waitingTasksCount=this._tasks.length,this._totalTasksCount=this._tasks.length,this._waitingTasksCount===0)return this._isLoading=!1,this.onFinish&&this.onFinish(this._tasks),this.onTasksDoneObservable.notifyObservers(this._tasks),this;this.useDefaultLoadingScreen&&this._scene.getEngine().displayLoadingUI();for(var t=0;t=0&&this._meshes.splice(n,1),this._centerPosition=this._centerMesh.getAbsolutePosition().clone();for(var i=0;i0&&this._textureLoadingCallback(t)}this._currentScene.render()}},r.prototype.drag=function(t){t.stopPropagation(),t.preventDefault()},r.prototype.drop=function(t){t.stopPropagation(),t.preventDefault(),this.loadFiles(t)},r.prototype._traverseFolder=function(t,e,n,i){var o=this,a=t.createReader(),s=t.fullPath.replace(/^\//,"").replace(/(.+?)\/?$/,"$1/");a.readEntries(function(d){n.count+=d.length;for(var p=0,b=d;p0)){for(var n=new Array,i=[],o=t.dataTransfer?t.dataTransfer.items:null,a=0;a0&&l.a.ClearLogCache(),this._engine.stopRenderLoop()),Ut.ShowLoadingScreen=!1,this._engine.displayLoadingUI(),Ut.LoadAsync("file:",this._sceneFileToLoad,this._engine,function(e){t._progressCallback&&t._progressCallback(e)}).then(function(e){t._currentScene&&t._currentScene.dispose(),t._currentScene=e,t._sceneLoadedCallback&&t._sceneLoadedCallback(t._sceneFileToLoad,t._currentScene),t._currentScene.executeWhenReady(function(){t._engine.hideLoadingUI(),t._engine.runRenderLoop(function(){t.renderFunction()})})}).catch(function(e){t._engine.hideLoadingUI(),t._errorCallback&&t._errorCallback(t._sceneFileToLoad,t._currentScene,e.message)})):l.a.Error("Please provide a valid .babylon file.")},r}(),_f=f(146),rv=f(145),gi=function(){function r(t){t===void 0&&(t=0),this.priority=t}return r.prototype.getDescription=function(){return""},r.prototype.apply=function(t,e){return!0},r}(),xa=function(r){function t(e,n,i){e===void 0&&(e=0),n===void 0&&(n=1024),i===void 0&&(i=.5);var o=r.call(this,e)||this;return o.priority=e,o.maximumSize=n,o.step=i,o}return Object(c.d)(t,r),t.prototype.getDescription=function(){return"Reducing render target texture size to "+this.maximumSize},t.prototype.apply=function(e,n){for(var i=!0,o=0;othis.maximumSize&&(a.scale(this.step),i=!1)}}return i},t}(gi),Yc=function(r){function t(e,n,i){e===void 0&&(e=0),n===void 0&&(n=2),i===void 0&&(i=.25);var o=r.call(this,e)||this;return o.priority=e,o.maximumScale=n,o.step=i,o._currentScale=-1,o._directionOffset=1,o}return Object(c.d)(t,r),t.prototype.getDescription=function(){return"Setting hardware scaling level to "+this._currentScale},t.prototype.apply=function(e,n){return this._currentScale===-1&&(this._currentScale=e.getEngine().getHardwareScalingLevel(),this._currentScale>this.maximumScale&&(this._directionOffset=-1)),this._currentScale+=this._directionOffset*this.step,e.getEngine().setHardwareScalingLevel(this._currentScale),this._directionOffset===1?this._currentScale>=this.maximumScale:this._currentScale<=this.maximumScale},t}(gi),Ca=function(r){function t(){return r!==null&&r.apply(this,arguments)||this}return Object(c.d)(t,r),t.prototype.getDescription=function(){return"Turning shadows on/off"},t.prototype.apply=function(e,n){return e.shadowsEnabled=n.isInImprovementMode,!0},t}(gi),Ra=function(r){function t(){return r!==null&&r.apply(this,arguments)||this}return Object(c.d)(t,r),t.prototype.getDescription=function(){return"Turning post-processes on/off"},t.prototype.apply=function(e,n){return e.postProcessesEnabled=n.isInImprovementMode,!0},t}(gi),Oa=function(r){function t(){return r!==null&&r.apply(this,arguments)||this}return Object(c.d)(t,r),t.prototype.getDescription=function(){return"Turning lens flares on/off"},t.prototype.apply=function(e,n){return e.lensFlaresEnabled=n.isInImprovementMode,!0},t}(gi),mf=function(r){function t(){return r!==null&&r.apply(this,arguments)||this}return Object(c.d)(t,r),t.prototype.getDescription=function(){return this.onGetDescription?this.onGetDescription():"Running user defined callback"},t.prototype.apply=function(e,n){return!this.onApply||this.onApply(e,n)},t}(gi),Ma=function(r){function t(){return r!==null&&r.apply(this,arguments)||this}return Object(c.d)(t,r),t.prototype.getDescription=function(){return"Turning particles on/off"},t.prototype.apply=function(e,n){return e.particlesEnabled=n.isInImprovementMode,!0},t}(gi),Kc=function(r){function t(){return r!==null&&r.apply(this,arguments)||this}return Object(c.d)(t,r),t.prototype.getDescription=function(){return"Turning render targets off"},t.prototype.apply=function(e,n){return e.renderTargetsEnabled=n.isInImprovementMode,!0},t}(gi),Ia=function(r){function t(){var e=r!==null&&r.apply(this,arguments)||this;return e._canBeMerged=function(n){if(!(n instanceof De.a))return!1;var i=n;return!i.isDisposed()&&!(!i.isVisible||!i.isEnabled())&&!(i.instances.length>0)&&!i.skeleton&&!i.hasLODLevels},e}return Object(c.d)(t,r),Object.defineProperty(t,"UpdateSelectionTree",{get:function(){return t._UpdateSelectionTree},set:function(e){t._UpdateSelectionTree=e},enumerable:!1,configurable:!0}),t.prototype.getDescription=function(){return"Merging similar meshes together"},t.prototype.apply=function(e,n,i){for(var o=e.meshes.slice(0),a=o.length,s=0;s=this._targetFrameRate)return this._isRunning=!1,void this.onSuccessObservable.notifyObservers(this);for(var i=!0,o=!0,a=0;a0){o.animationGroups=[];for(var x=0;x0)for(o.reflectionProbes=[],e=0;e0&&setTimeout(function(){n.stopRecording()},1e3*e),this._fileName=t,this._recordedChunks=[],this._resolve=null,this._reject=null,this._canvas.isRecording=!0,this._mediaRecorder.start(this._options.recordChunckSize),new Promise(function(i,o){n._resolve=i,n._reject=o})},r.prototype.dispose=function(){this._canvas=null,this._mediaRecorder=null,this._recordedChunks=[],this._fileName=null,this._resolve=null,this._reject=null},r.prototype._handleDataAvailable=function(t){t.data.size>0&&this._recordedChunks.push(t.data)},r.prototype._handleError=function(t){if(this.stopRecording(),!this._reject)throw new t.error;this._reject(t.error)},r.prototype._handleStop=function(){this.stopRecording();var t=new Blob(this._recordedChunks);this._resolve&&this._resolve(t),window.URL.createObjectURL(t),this._fileName&&Xe.b.Download(t,this._fileName)},r._defaultOptions={mimeType:"video/webm",fps:25,recordChunckSize:3e3},r}(),Ro=function(){function r(){}return r.CreateScreenshot=function(t,e,n,i,o){o===void 0&&(o="image/png");var a=r._getScreenshotSize(t,e,n),s=a.height,d=a.width;if(s&&d){Xe.b._ScreenshotCanvas||(Xe.b._ScreenshotCanvas=document.createElement("canvas")),Xe.b._ScreenshotCanvas.width=d,Xe.b._ScreenshotCanvas.height=s;var p=Xe.b._ScreenshotCanvas.getContext("2d"),b=t.getRenderWidth()/t.getRenderHeight(),x=d,O=x/b;O>s&&(x=(O=s)*b);var B=Math.max(0,d-x)/2,F=Math.max(0,s-O)/2,z=t.getRenderingCanvas();p&&z&&p.drawImage(z,B,F,x,O),Xe.b.EncodeScreenshotCanvasData(i,o)}else l.a.Error("Invalid 'size' parameter !")},r.CreateScreenshotAsync=function(t,e,n,i){return i===void 0&&(i="image/png"),new Promise(function(o,a){r.CreateScreenshot(t,e,n,function(s){s!==void 0?o(s):a(new Error("Data is undefined"))},i)})},r.CreateScreenshotUsingRenderTarget=function(t,e,n,i,o,a,s,d,p,b){o===void 0&&(o="image/png"),a===void 0&&(a=1),s===void 0&&(s=!1),p===void 0&&(p=!1),b===void 0&&(b=!1);var x=r._getScreenshotSize(t,e,n),O=x.height,B=x.width,F={width:B,height:O};if(O&&B){var z=t.getRenderingCanvas();if(z){var J={width:z.width,height:z.height};t.setSize(B,O);var ie=e.getScene(),se=null,ce=ie.activeCameras;(ie.activeCamera!==e||ie.activeCameras&&ie.activeCameras.length)&&(se=ie.activeCamera,ie.activeCamera=e),ie.render();var ue=new sn("screenShot",F,ie,!1,!1,h.a.TEXTURETYPE_UNSIGNED_INT,!1,we.a.NEAREST_SAMPLINGMODE,void 0,b);ue.renderList=null,ue.samples=a,ue.renderSprites=p,ue.onAfterRenderObservable.add(function(){Xe.b.DumpFramebuffer(B,O,t,i,o,d)});var fe=function(){ie.incrementRenderId(),ie.resetCachedMaterial(),ue.render(!0),ue.dispose(),se&&(ie.activeCamera=se),ie.activeCameras=ce,t.setSize(J.width,J.height),e.getProjectionMatrix(!0)};if(s){var ve=new Co("antialiasing",1,ie.activeCamera);ue.addPostProcess(ve),ve.getEffect().isReady()?fe():ve.getEffect().onCompiled=function(){fe()}}else fe()}else l.a.Error("No rendering canvas found !")}else l.a.Error("Invalid 'size' parameter !")},r.CreateScreenshotUsingRenderTargetAsync=function(t,e,n,i,o,a,s,d){return i===void 0&&(i="image/png"),o===void 0&&(o=1),a===void 0&&(a=!1),d===void 0&&(d=!1),new Promise(function(p,b){r.CreateScreenshotUsingRenderTarget(t,e,n,function(x){x!==void 0?p(x):b(new Error("Data is undefined"))},i,o,a,s,d)})},r._getScreenshotSize=function(t,e,n){var i=0,o=0;if(typeof n=="object"){var a=n.precision?Math.abs(n.precision):1;n.width&&n.height?(i=n.height*a,o=n.width*a):n.width&&!n.height?(o=n.width*a,i=Math.round(o/t.getAspectRatio(e))):n.height&&!n.width?(i=n.height*a,o=Math.round(i*t.getAspectRatio(e))):(o=Math.round(t.getRenderWidth()*a),i=Math.round(o/t.getAspectRatio(e)))}else isNaN(n)||(i=n,o=n);return o&&(o=Math.floor(o)),i&&(i=Math.floor(i)),{height:0|i,width:0|o}},r}();Xe.b.CreateScreenshot=Ro.CreateScreenshot,Xe.b.CreateScreenshotAsync=Ro.CreateScreenshotAsync,Xe.b.CreateScreenshotUsingRenderTarget=Ro.CreateScreenshotUsingRenderTarget,Xe.b.CreateScreenshotUsingRenderTargetAsync=Ro.CreateScreenshotUsingRenderTargetAsync,function(r){r[r.Checkbox=0]="Checkbox",r[r.Slider=1]="Slider",r[r.Vector3=2]="Vector3",r[r.Quaternion=3]="Quaternion",r[r.Color3=4]="Color3",r[r.String=5]="String"}(Xc||(Xc={}));var kr,lv=f(140),uv=function(){function r(t){this.byteOffset=0,this.buffer=t}return r.prototype.loadAsync=function(t){var e=this;return this.buffer.readAsync(this.byteOffset,t).then(function(n){e._dataView=new DataView(n.buffer,n.byteOffset,n.byteLength),e._dataByteOffset=0})},r.prototype.readUint32=function(){var t=this._dataView.getUint32(this._dataByteOffset,!0);return this._dataByteOffset+=4,this.byteOffset+=4,t},r.prototype.readUint8Array=function(t){var e=new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+this._dataByteOffset,t);return this._dataByteOffset+=t,this.byteOffset+=t,e},r.prototype.readString=function(t){return Qn.a.Decode(this.readUint8Array(t))},r.prototype.skipBytes=function(t){this._dataByteOffset+=t,this.byteOffset+=t},r}(),hv=function(){function r(){}return r._GetStorage=function(){try{return localStorage.setItem("test",""),localStorage.removeItem("test"),localStorage}catch{var t={};return{getItem:function(n){var i=t[n];return i===void 0?null:i},setItem:function(n,i){t[n]=i}}}},r.ReadString=function(t,e){var n=this._Storage.getItem(t);return n!==null?n:e},r.WriteString=function(t,e){this._Storage.setItem(t,e)},r.ReadBoolean=function(t,e){var n=this._Storage.getItem(t);return n!==null?n==="true":e},r.WriteBoolean=function(t,e){this._Storage.setItem(t,e?"true":"false")},r.ReadNumber=function(t,e){var n=this._Storage.getItem(t);return n!==null?parseFloat(n):e},r.WriteNumber=function(t,e){this._Storage.setItem(t,e.toString())},r._Storage=r._GetStorage(),r}(),dv=function(){function r(){this._trackedScene=null}return r.prototype.track=function(t){this._trackedScene=t,this._savedJSON=Zc.Serialize(t)},r.prototype.getDelta=function(){if(!this._trackedScene)return null;var t=Zc.Serialize(this._trackedScene),e={};for(var n in t)this._compareCollections(n,this._savedJSON[n],t[n],e);return e},r.prototype._compareArray=function(t,e,n,i){if(e.length===0&&n.length===0)return!0;if(e.length&&!isNaN(e[0])||n.length&&!isNaN(n[0])){if(e.length!==n.length)return!1;if(e.length===0)return!0;for(var o=0;on.MAX_SEQUENCE_LENGTH)throw new Error("Sequences longer than "+n.MAX_SEQUENCE_LENGTH+" not supported.");this._alphabet=o,this._characters=i.map(function(s){return a._alphabet.getCharacterIdx(s)})}return n.prototype.serialize=function(){return JSON.stringify(this._characters)},n.Deserialize=function(i,o){var a=new n([],o);return a._characters=JSON.parse(i),a},n.prototype.distance=function(i){return n._distance(this,i)},n._distance=function(i,o){var a=i._alphabet;if(a!==o._alphabet)throw new Error("Cannot Levenshtein compare Sequences built from different alphabets.");var s=i._characters,d=o._characters,p=s.length,b=d.length,x=n._costMatrix;x[0][0]=0;for(var O=0;O.98)&&(u.e.CrossToRef(r._forwardDir,r._inverseFromVec,r._upDir),r._upDir.normalize(),u.a.LookAtLHToRef(t,e,r._upDir,r._lookMatrix),n.subtractToRef(e,r._fromToVec),r._fromToVec.normalize(),u.e.TransformNormalToRef(r._fromToVec,r._lookMatrix,i),!0)},r._tokenizeSegment=function(t,e){r._bestMatch=0,r._score=u.e.Dot(t,e[0]),r._bestScore=r._score;for(var n=1;nr._bestScore&&(r._bestMatch=n,r._bestScore=r._score);return r._bestMatch},r._forwardDir=new u.e,r._inverseFromVec=new u.e,r._upDir=new u.e,r._fromToVec=new u.e,r._lookMatrix=new u.a,r}(),vf=function(){function r(t){this.chars=new Array(t)}return r.Generate=function(t,e,n,i,o){t===void 0&&(t=64),e===void 0&&(e=256),n===void 0&&(n=.1),i===void 0&&(i=.001),o===void 0&&(o=[]);for(var a,s,d=new r(t),p=0;p1e-6&&O.scaleAndAddToRef(1/(O.lengthSquared()*s),x)}),x.scaleInPlace(a),d.chars[z].addInPlace(x),d.chars[z].normalize()};for(p=o.length;p4;o=Math.floor(o/2))i.push(t.resampleAtTargetResolution(o).tokenize(e.chars));return i},r.prototype.distance=function(t){for(var e=0,n=0;n0&&(this._averageDistance=Math.max(this._averageDistance/this._descriptors.length,r.MIN_AVERAGE_DISTANCE))},r.MIN_AVERAGE_DISTANCE=1,r}(),pv=function(){function r(){this._maximumAllowableMatchCost=4,this._nameToDescribedTrajectory=new Map}return r.prototype.serialize=function(){var t={};return t.maximumAllowableMatchCost=this._maximumAllowableMatchCost,t.vector3Alphabet=this._vector3Alphabet.serialize(),t.levenshteinAlphabet=this._levenshteinAlphabet.serialize(),t.nameToDescribedTrajectory=[],this._nameToDescribedTrajectory.forEach(function(e,n){t.nameToDescribedTrajectory.push(n),t.nameToDescribedTrajectory.push(e.serialize())}),JSON.stringify(t)},r.Deserialize=function(t){var e=JSON.parse(t),n=new r;n._maximumAllowableMatchCost=e.maximumAllowableMatchCost,n._vector3Alphabet=vf.Deserialize(e.vector3Alphabet),n._levenshteinAlphabet=kr.Alphabet.Deserialize(e.levenshteinAlphabet);for(var i=0;i0&&this.onFeaturePointsAddedObservable.notifyObservers(a),o.length>0&&this.onFeaturePointsUpdatedObservable.notifyObservers(o)}}},t.prototype._init=function(){this._xrSessionManager.session.trySetFeaturePointCloudEnabled&&this._xrSessionManager.session.trySetFeaturePointCloudEnabled(!0)&&(this._enabled=!0)},t.Name=ai.FEATURE_POINTS,t.Version=1,t}(si);qn.AddWebXRFeature(Va.Name,function(r){return function(){return new Va(r)}},Va.Version);var yf=function(){function r(t,e,n,i,o){this.xrController=t,this.trackedMeshes=e,this._handMesh=n,this._rigMapping=i,this._defaultHandMesh=!1,this._transformNodeMapping=[],this.handPartsDefinition=this.generateHandPartsDefinition(t.inputSource.hand),this._scene=e[0].getScene(),this._handMesh&&this._rigMapping?this._defaultHandMesh=!1:o||this._generateDefaultHandMesh(),this.xrController.motionController&&(this.xrController.motionController.rootMesh?this.xrController.motionController.rootMesh.setEnabled(!1):this.xrController.motionController.onModelLoadedObservable.add(function(a){a.rootMesh&&a.rootMesh.setEnabled(!1)})),this.xrController.onMotionControllerInitObservable.add(function(a){a.onModelLoadedObservable.add(function(s){s.rootMesh&&s.rootMesh.setEnabled(!1)}),a.rootMesh&&a.rootMesh.setEnabled(!1)})}return r.prototype.generateHandPartsDefinition=function(t){var e;return(e={}).wrist=[t.WRIST],e.thumb=[t.THUMB_METACARPAL,t.THUMB_PHALANX_PROXIMAL,t.THUMB_PHALANX_DISTAL,t.THUMB_PHALANX_TIP],e.index=[t.INDEX_METACARPAL,t.INDEX_PHALANX_PROXIMAL,t.INDEX_PHALANX_INTERMEDIATE,t.INDEX_PHALANX_DISTAL,t.INDEX_PHALANX_TIP],e.middle=[t.MIDDLE_METACARPAL,t.MIDDLE_PHALANX_PROXIMAL,t.MIDDLE_PHALANX_INTERMEDIATE,t.MIDDLE_PHALANX_DISTAL,t.MIDDLE_PHALANX_TIP],e.ring=[t.RING_METACARPAL,t.RING_PHALANX_PROXIMAL,t.RING_PHALANX_INTERMEDIATE,t.RING_PHALANX_DISTAL,t.RING_PHALANX_TIP],e.little=[t.LITTLE_METACARPAL,t.LITTLE_PHALANX_PROXIMAL,t.LITTLE_PHALANX_INTERMEDIATE,t.LITTLE_PHALANX_DISTAL,t.LITTLE_PHALANX_TIP],e},r.prototype.updateFromXRFrame=function(t,e,n){var i=this;n===void 0&&(n=2);var o=this.xrController.inputSource.hand;o&&this.trackedMeshes.forEach(function(a,s){var d=o[s];if(d){var p=t.getJointPose(d,e);if(!p||!p.transform)return;var b=p.transform.position,x=p.transform.orientation;a.position.set(b.x,b.y,b.z),a.rotationQuaternion.set(x.x,x.y,x.z,x.w);var O=(p.radius||.008)*n;a.scaling.set(O,O,O),i._handMesh&&i._rigMapping&&i._rigMapping[s]&&(i._transformNodeMapping[s]=i._transformNodeMapping[s]||i._scene.getTransformNodeByName(i._rigMapping[s]),i._transformNodeMapping[s]&&(i._transformNodeMapping[s].position.copyFrom(a.position),i._transformNodeMapping[s].rotationQuaternion.copyFrom(a.rotationQuaternion),a.isVisible=!1)),a.getScene().useRightHandedSystem||(a.position.z*=-1,a.rotationQuaternion.z*=-1,a.rotationQuaternion.w*=-1)}})},r.prototype.getHandPartMeshes=function(t){var e=this;return this.handPartsDefinition[t].map(function(n){return e.trackedMeshes[n]})},r.prototype.dispose=function(){this.trackedMeshes.forEach(function(t){return t.dispose()}),this._defaultHandMesh&&this._handMesh&&this._handMesh.dispose()},r.prototype._generateDefaultHandMesh=function(){return Object(c.b)(this,void 0,void 0,function(){var t,e,n,i,o,a,s,d;return Object(c.e)(this,function(p){switch(p.label){case 0:return p.trys.push([0,3,,4]),t=this.xrController.inputSource.handedness==="right"?"right":"left",e=(t==="right"?"r":"l")+"_hand_"+(this._scene.useRightHandedSystem?"r":"l")+"hs.glb",[4,Ut.ImportMeshAsync("","https://assets.babylonjs.com/meshes/HandMeshes/",e,this._scene)];case 1:return n=p.sent(),i={base:M.a.FromInts(116,63,203),fresnel:M.a.FromInts(149,102,229),fingerColor:M.a.FromInts(177,130,255),tipFresnel:M.a.FromInts(220,200,255)},[4,(o=new va("leftHandShader",this._scene,{emitComments:!1})).loadAsync("https://patrickryanms.github.io/BabylonJStextures/Demos/xrHandMesh/handsShader.json")];case 2:if(p.sent(),o.build(!1),o.needDepthPrePass=!0,o.transparencyMode=Ht.a.MATERIAL_ALPHABLEND,o.alphaMode=Ue.a.ALPHA_COMBINE,(a={base:o.getBlockByName("baseColor"),fresnel:o.getBlockByName("fresnelColor"),fingerColor:o.getBlockByName("fingerColor"),tipFresnel:o.getBlockByName("tipFresnelColor")}).base.value=i.base,a.fresnel.value=i.fresnel,a.fingerColor.value=i.fingerColor,a.tipFresnel.value=i.tipFresnel,n.meshes[1].material=o,this._defaultHandMesh=!0,this._handMesh=n.meshes[0],this._rigMapping=["wrist_","thumb_metacarpal_","thumb_proxPhalanx_","thumb_distPhalanx_","thumb_tip_","index_metacarpal_","index_proxPhalanx_","index_intPhalanx_","index_distPhalanx_","index_tip_","middle_metacarpal_","middle_proxPhalanx_","middle_intPhalanx_","middle_distPhalanx_","middle_tip_","ring_metacarpal_","ring_proxPhalanx_","ring_intPhalanx_","ring_distPhalanx_","ring_tip_","little_metacarpal_","little_proxPhalanx_","little_intPhalanx_","little_distPhalanx_","little_tip_"].map(function(b){return b+(t==="right"?"R":"L")}),!(s=this._scene.getTransformNodeByName(this._rigMapping[0])))throw new Error("could not find the wrist node");return s.parent&&s.parent.rotate(ye.a.Y,Math.PI),[3,4];case 3:return d=p.sent(),Xe.b.Error("error loading hand mesh"),console.log(d),[3,4];case 4:return[2]}})})},r}(),ka=function(r){function t(e,n){var i=r.call(this,e)||this;return i.options=n,i.onHandAddedObservable=new R.c,i.onHandRemovedObservable=new R.c,i._hands={},i._attachHand=function(o){var a,s,d,p,b,x,O,B,F,z;if(o.inputSource.hand&&!i._hands[o.uniqueId]){var J=o.inputSource.hand,ie=[],se=((a=i.options.jointMeshes)===null||a===void 0?void 0:a.sourceMesh)||Un.a.CreateSphere("jointParent",{diameter:1});se.isVisible=!!(!((s=i.options.jointMeshes)===null||s===void 0)&&s.keepOriginalVisible);for(var ce=0;ce1){for(N();w!==-1&&v._OperatorPriority[V()]>=v._OperatorPriority[de];)D.push(X());I(de),j++}else ne+=te;j++}for(N();w!==-1;)V()==="("?X():D.push(X());return D},v._OperatorPriority={")":0,"(":1,"||":2,"&&":3},v._Stack=["","","","","","","","","","","","","","","","","","","",""],v}(),m=function(v){function E(D,w){w===void 0&&(w=!1);var N=v.call(this)||this;return N.define=D,N.not=w,N}return Object(u.d)(E,v),E.prototype.isTrue=function(D){var w=D[this.define]!==void 0;return this.not&&(w=!w),w},E}(P),c=function(v){function E(){return v!==null&&v.apply(this,arguments)||this}return Object(u.d)(E,v),E.prototype.isTrue=function(D){return this.leftOperand.isTrue(D)||this.rightOperand.isTrue(D)},E}(P),T=function(v){function E(){return v!==null&&v.apply(this,arguments)||this}return Object(u.d)(E,v),E.prototype.isTrue=function(D){return this.leftOperand.isTrue(D)&&this.rightOperand.isTrue(D)},E}(P),A=function(v){function E(D,w,N){var I=v.call(this)||this;return I.define=D,I.operand=w,I.testValue=N,I}return Object(u.d)(E,v),E.prototype.isTrue=function(D){var w=D[this.define];w===void 0&&(w=this.define);var N=!1,I=parseInt(w),V=parseInt(this.testValue);switch(this.operand){case">":N=I>V;break;case"<":N=I=":N=I>=V;break;case"==":N=I===V}return N},E}(P),S=f(21),g=/defined\s*?\((.+?)\)/g,l=/defined\s*?\[(.+?)\]/g,h=function(){function v(){}return v.Process=function(E,D,w,N){var I=this;this._ProcessIncludes(E,D,function(V){var X=I._ProcessShaderConversion(V,D,N);w(X)})},v._ProcessPrecision=function(E,D){var w=D.shouldUseHighPrecisionShader;return E.indexOf("precision highp float")===-1?E=w?`precision highp float; +`+E:`precision mediump float; +`+E:w||(E=E.replace("precision highp float","precision mediump float")),E},v._ExtractOperation=function(E){var D=/defined\((.+)\)/.exec(E);if(D&&D.length)return new m(D[1].trim(),E[0]==="!");for(var w="",N=0,I=0,V=["==",">=","<=","<",">"];I-1));I++);if(N===-1)return new m(E);var X=E.substring(0,N).trim(),j=E.substring(N+w.length).trim();return new A(X,w,j)},v._BuildSubExpression=function(E){E=E.replace(g,"defined[$1]");for(var D=[],w=0,N=P.infixToPostfix(E);w=2){var V=D[D.length-1],X=D[D.length-2];D.length-=2;var j=I=="&&"?new T:new c;typeof V=="string"&&(V=V.replace(l,"defined($1)")),typeof X=="string"&&(X=X.replace(l,"defined($1)")),j.leftOperand=typeof X=="string"?this._ExtractOperation(X):X,j.rightOperand=typeof V=="string"?this._ExtractOperation(V):V,D.push(j)}}var ne=D[D.length-1];return typeof ne=="string"&&(ne=ne.replace(l,"defined($1)")),typeof ne=="string"?this._ExtractOperation(ne):ne},v._BuildExpression=function(E,D){var w=new C,N=E.substring(0,D),I=E.substring(D);return I=I.substring(0,(I.indexOf("//")+1||I.length+1)-1).trim(),w.testExpression=N==="#ifdef"?new m(I):N==="#ifndef"?new m(I,!0):this._BuildSubExpression(I),w},v._MoveCursorWithinIf=function(E,D,w){for(var N=E.currentLine;this._MoveCursor(E,w);){var I=(N=E.currentLine).substring(0,5).toLowerCase();if(I==="#else"){var V=new _;return D.children.push(V),void this._MoveCursor(E,V)}if(I==="#elif"){var X=this._BuildExpression(N,5);D.children.push(X),w=X}}},v._MoveCursor=function(E,D){for(;E.canRead;){E.lineIndex++;var w=E.currentLine,N=/(#ifdef)|(#else)|(#elif)|(#endif)|(#ifndef)|(#if)/.exec(w);if(N&&N.length)switch(N[0]){case"#ifdef":var I=new M;D.children.push(I);var V=this._BuildExpression(w,6);I.children.push(V),this._MoveCursorWithinIf(E,I,V);break;case"#else":case"#elif":return!0;case"#endif":return!1;case"#ifndef":I=new M,D.children.push(I),V=this._BuildExpression(w,7),I.children.push(V),this._MoveCursorWithinIf(E,I,V);break;case"#if":I=new M,V=this._BuildExpression(w,3),D.children.push(I),I.children.push(V),this._MoveCursorWithinIf(E,I,V)}else{var X=new _;if(X.line=w,D.children.push(X),w[0]==="#"&&w[1]==="d"){var j=w.replace(";","").split(" ");X.additionalDefineKey=j[1],j.length===3&&(X.additionalDefineValue=j[2])}}}return!1},v._EvaluatePreProcessors=function(E,D,w){var N=new _,I=new R;return I.lineIndex=-1,I.lines=E.split(` +`),this._MoveCursor(I,N),N.process(D,w)},v._PreparePreProcessors=function(E){for(var D={},w=0,N=E.defines;w1?I[1]:""}return D.GL_ES="true",D.__VERSION__=E.version,D[E.platformName]="true",D},v._ProcessShaderConversion=function(E,D,w){var N=this._ProcessPrecision(E,D);if(!D.processor)return N;if(N.indexOf("#version 3")!==-1)return N.replace("#version 300 es","");var I=D.defines,V=this._PreparePreProcessors(D);return D.processor.preProcessor&&(N=D.processor.preProcessor(N,I,D.isFragment)),N=this._EvaluatePreProcessors(N,V,D),D.processor.postProcessor&&(N=D.processor.postProcessor(N,I,D.isFragment,w)),N},v._ProcessIncludes=function(E,D,w){for(var N=this,I=/#include<(.+)>(\((.*)\))*(\[(.*)\])*/g,V=I.exec(E),X=new String(E),j=!1;V!=null;){var ne=V[1];if(ne.indexOf("__decl__")!==-1&&(ne=ne.replace(/__decl__/,""),D.supportsUniformBuffers&&(ne=(ne=ne.replace(/Vertex/,"Ubo")).replace(/Fragment/,"Ubo")),ne+="Declaration"),!D.includesShadersStore[ne]){var te=D.shadersRepository+"ShadersInclude/"+ne+".fx";return void v._FileToolsLoadFile(te,function(Y){D.includesShadersStore[ne]=Y,N._ProcessIncludes(X,D,w)})}var de=D.includesShadersStore[ne];if(V[2])for(var pe=V[3].split(","),ae=0;ae=0,V=I.exec(E)}j?this._ProcessIncludes(X.toString(),D,w):w(X)},v._FileToolsLoadFile=function(E,D,w,N,I,V){throw S.a.WarnImport("FileTools")},v}()},function(Ie,y,f){f(26).a.prototype._readTexturePixels=function(U,_,R,u,M,C){u===void 0&&(u=-1),M===void 0&&(M=0),C===void 0&&(C=null);var P=this._gl;if(!P)throw new Error("Engine does not have gl rendering context.");if(!this._dummyFramebuffer){var m=P.createFramebuffer();if(!m)throw new Error("Unable to create dummy framebuffer");this._dummyFramebuffer=m}P.bindFramebuffer(P.FRAMEBUFFER,this._dummyFramebuffer),u>-1?P.framebufferTexture2D(P.FRAMEBUFFER,P.COLOR_ATTACHMENT0,P.TEXTURE_CUBE_MAP_POSITIVE_X+u,U._webGLTexture,M):P.framebufferTexture2D(P.FRAMEBUFFER,P.COLOR_ATTACHMENT0,P.TEXTURE_2D,U._webGLTexture,M);var c=U.type!==void 0?this._getWebGLTextureType(U.type):P.UNSIGNED_BYTE;switch(c){case P.UNSIGNED_BYTE:C||(C=new Uint8Array(4*_*R)),c=P.UNSIGNED_BYTE;break;default:C||(C=new Float32Array(4*_*R)),c=P.FLOAT}return P.readPixels(0,0,_,R,P.RGBA,c,C),P.bindFramebuffer(P.FRAMEBUFFER,this._currentFramebuffer),C}},function(Ie,y,f){var U="shadowsFragmentFunctions",_=`#ifdef SHADOWS +#ifndef SHADOWFLOAT + +float unpack(vec4 color) +{ +const vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0); +return dot(color,bit_shift); +} +#endif +float computeFallOff(float value,vec2 clipSpace,float frustumEdgeFalloff) +{ +float mask=smoothstep(1.0-frustumEdgeFalloff,1.00000012,clamp(dot(clipSpace,clipSpace),0.,1.)); +return mix(value,1.0,mask); +} +#define inline +float computeShadowCube(vec3 lightPosition,samplerCube shadowSampler,float darkness,vec2 depthValues) +{ +vec3 directionToLight=vPositionW-lightPosition; +float depth=length(directionToLight); +depth=(depth+depthValues.x)/(depthValues.y); +depth=clamp(depth,0.,1.0); +directionToLight=normalize(directionToLight); +directionToLight.y=-directionToLight.y; +#ifndef SHADOWFLOAT +float shadow=unpack(textureCube(shadowSampler,directionToLight)); +#else +float shadow=textureCube(shadowSampler,directionToLight).x; +#endif +return depth>shadow ? darkness : 1.0; +} +#define inline +float computeShadowWithPoissonSamplingCube(vec3 lightPosition,samplerCube shadowSampler,float mapSize,float darkness,vec2 depthValues) +{ +vec3 directionToLight=vPositionW-lightPosition; +float depth=length(directionToLight); +depth=(depth+depthValues.x)/(depthValues.y); +depth=clamp(depth,0.,1.0); +directionToLight=normalize(directionToLight); +directionToLight.y=-directionToLight.y; +float visibility=1.; +vec3 poissonDisk[4]; +poissonDisk[0]=vec3(-1.0,1.0,-1.0); +poissonDisk[1]=vec3(1.0,-1.0,-1.0); +poissonDisk[2]=vec3(-1.0,-1.0,-1.0); +poissonDisk[3]=vec3(1.0,-1.0,1.0); + +#ifndef SHADOWFLOAT +if (unpack(textureCube(shadowSampler,directionToLight+poissonDisk[0]*mapSize))shadow ? computeFallOff(darkness,clipSpace.xy,frustumEdgeFalloff) : 1.; +} +#endif +#define inline +float computeShadow(vec4 vPositionFromLight,float depthMetric,sampler2D shadowSampler,float darkness,float frustumEdgeFalloff) +{ +vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w; +vec2 uv=0.5*clipSpace.xy+vec2(0.5); +if (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0) +{ +return 1.0; +} +else +{ +float shadowPixelDepth=clamp(depthMetric,0.,1.0); +#ifndef SHADOWFLOAT +float shadow=unpack(texture2D(shadowSampler,uv)); +#else +float shadow=texture2D(shadowSampler,uv).x; +#endif +return shadowPixelDepth>shadow ? computeFallOff(darkness,clipSpace.xy,frustumEdgeFalloff) : 1.; +} +} +#define inline +float computeShadowWithPoissonSampling(vec4 vPositionFromLight,float depthMetric,sampler2D shadowSampler,float mapSize,float darkness,float frustumEdgeFalloff) +{ +vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w; +vec2 uv=0.5*clipSpace.xy+vec2(0.5); +if (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0) +{ +return 1.0; +} +else +{ +float shadowPixelDepth=clamp(depthMetric,0.,1.0); +float visibility=1.; +vec2 poissonDisk[4]; +poissonDisk[0]=vec2(-0.94201624,-0.39906216); +poissonDisk[1]=vec2(0.94558609,-0.76890725); +poissonDisk[2]=vec2(-0.094184101,-0.92938870); +poissonDisk[3]=vec2(0.34495938,0.29387760); + +#ifndef SHADOWFLOAT +if (unpack(texture2D(shadowSampler,uv+poissonDisk[0]*mapSize))1.0 || uv.y<0. || uv.y>1.0) +{ +return 1.0; +} +else +{ +float shadowPixelDepth=clamp(depthMetric,0.,1.0); +#ifndef SHADOWFLOAT +float shadowMapSample=unpack(texture2D(shadowSampler,uv)); +#else +float shadowMapSample=texture2D(shadowSampler,uv).x; +#endif +float esm=1.0-clamp(exp(min(87.,depthScale*shadowPixelDepth))*shadowMapSample,0.,1.-darkness); +return computeFallOff(esm,clipSpace.xy,frustumEdgeFalloff); +} +} +#define inline +float computeShadowWithCloseESM(vec4 vPositionFromLight,float depthMetric,sampler2D shadowSampler,float darkness,float depthScale,float frustumEdgeFalloff) +{ +vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w; +vec2 uv=0.5*clipSpace.xy+vec2(0.5); +if (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0) +{ +return 1.0; +} +else +{ +float shadowPixelDepth=clamp(depthMetric,0.,1.0); +#ifndef SHADOWFLOAT +float shadowMapSample=unpack(texture2D(shadowSampler,uv)); +#else +float shadowMapSample=texture2D(shadowSampler,uv).x; +#endif +float esm=clamp(exp(min(87.,-depthScale*(shadowPixelDepth-shadowMapSample))),darkness,1.); +return computeFallOff(esm,clipSpace.xy,frustumEdgeFalloff); +} +} +#ifdef WEBGL2 +#define GREATEST_LESS_THAN_ONE 0.99999994 + +#define inline +float computeShadowWithCSMPCF1(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArrayShadow shadowSampler,float darkness,float frustumEdgeFalloff) +{ +vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w; +vec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5)); +uvDepth.z=clamp(uvDepth.z,0.,GREATEST_LESS_THAN_ONE); +vec4 uvDepthLayer=vec4(uvDepth.x,uvDepth.y,layer,uvDepth.z); +float shadow=texture(shadowSampler,uvDepthLayer); +shadow=mix(darkness,1.,shadow); +return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff); +} + + + +#define inline +float computeShadowWithCSMPCF3(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArrayShadow shadowSampler,vec2 shadowMapSizeAndInverse,float darkness,float frustumEdgeFalloff) +{ +vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w; +vec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5)); +uvDepth.z=clamp(uvDepth.z,0.,GREATEST_LESS_THAN_ONE); +vec2 uv=uvDepth.xy*shadowMapSizeAndInverse.x; +uv+=0.5; +vec2 st=fract(uv); +vec2 base_uv=floor(uv)-0.5; +base_uv*=shadowMapSizeAndInverse.y; + + + + +vec2 uvw0=3.-2.*st; +vec2 uvw1=1.+2.*st; +vec2 u=vec2((2.-st.x)/uvw0.x-1.,st.x/uvw1.x+1.)*shadowMapSizeAndInverse.y; +vec2 v=vec2((2.-st.y)/uvw0.y-1.,st.y/uvw1.y+1.)*shadowMapSizeAndInverse.y; +float shadow=0.; +shadow+=uvw0.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[0]),layer,uvDepth.z)); +shadow+=uvw1.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[0]),layer,uvDepth.z)); +shadow+=uvw0.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[1]),layer,uvDepth.z)); +shadow+=uvw1.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[1]),layer,uvDepth.z)); +shadow=shadow/16.; +shadow=mix(darkness,1.,shadow); +return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff); +} + + + +#define inline +float computeShadowWithCSMPCF5(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArrayShadow shadowSampler,vec2 shadowMapSizeAndInverse,float darkness,float frustumEdgeFalloff) +{ +vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w; +vec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5)); +uvDepth.z=clamp(uvDepth.z,0.,GREATEST_LESS_THAN_ONE); +vec2 uv=uvDepth.xy*shadowMapSizeAndInverse.x; +uv+=0.5; +vec2 st=fract(uv); +vec2 base_uv=floor(uv)-0.5; +base_uv*=shadowMapSizeAndInverse.y; + + +vec2 uvw0=4.-3.*st; +vec2 uvw1=vec2(7.); +vec2 uvw2=1.+3.*st; +vec3 u=vec3((3.-2.*st.x)/uvw0.x-2.,(3.+st.x)/uvw1.x,st.x/uvw2.x+2.)*shadowMapSizeAndInverse.y; +vec3 v=vec3((3.-2.*st.y)/uvw0.y-2.,(3.+st.y)/uvw1.y,st.y/uvw2.y+2.)*shadowMapSizeAndInverse.y; +float shadow=0.; +shadow+=uvw0.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[0]),layer,uvDepth.z)); +shadow+=uvw1.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[0]),layer,uvDepth.z)); +shadow+=uvw2.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[2],v[0]),layer,uvDepth.z)); +shadow+=uvw0.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[1]),layer,uvDepth.z)); +shadow+=uvw1.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[1]),layer,uvDepth.z)); +shadow+=uvw2.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[2],v[1]),layer,uvDepth.z)); +shadow+=uvw0.x*uvw2.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[2]),layer,uvDepth.z)); +shadow+=uvw1.x*uvw2.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[2]),layer,uvDepth.z)); +shadow+=uvw2.x*uvw2.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[2],v[2]),layer,uvDepth.z)); +shadow=shadow/144.; +shadow=mix(darkness,1.,shadow); +return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff); +} + +#define inline +float computeShadowWithPCF1(vec4 vPositionFromLight,float depthMetric,highp sampler2DShadow shadowSampler,float darkness,float frustumEdgeFalloff) +{ +if (depthMetric>1.0 || depthMetric<0.0) { +return 1.0; +} +else +{ +vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w; +vec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5)); +float shadow=texture2D(shadowSampler,uvDepth); +shadow=mix(darkness,1.,shadow); +return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff); +} +} + + + +#define inline +float computeShadowWithPCF3(vec4 vPositionFromLight,float depthMetric,highp sampler2DShadow shadowSampler,vec2 shadowMapSizeAndInverse,float darkness,float frustumEdgeFalloff) +{ +if (depthMetric>1.0 || depthMetric<0.0) { +return 1.0; +} +else +{ +vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w; +vec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5)); +vec2 uv=uvDepth.xy*shadowMapSizeAndInverse.x; +uv+=0.5; +vec2 st=fract(uv); +vec2 base_uv=floor(uv)-0.5; +base_uv*=shadowMapSizeAndInverse.y; + + + + +vec2 uvw0=3.-2.*st; +vec2 uvw1=1.+2.*st; +vec2 u=vec2((2.-st.x)/uvw0.x-1.,st.x/uvw1.x+1.)*shadowMapSizeAndInverse.y; +vec2 v=vec2((2.-st.y)/uvw0.y-1.,st.y/uvw1.y+1.)*shadowMapSizeAndInverse.y; +float shadow=0.; +shadow+=uvw0.x*uvw0.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[0]),uvDepth.z)); +shadow+=uvw1.x*uvw0.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[0]),uvDepth.z)); +shadow+=uvw0.x*uvw1.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[1]),uvDepth.z)); +shadow+=uvw1.x*uvw1.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[1]),uvDepth.z)); +shadow=shadow/16.; +shadow=mix(darkness,1.,shadow); +return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff); +} +} + + + +#define inline +float computeShadowWithPCF5(vec4 vPositionFromLight,float depthMetric,highp sampler2DShadow shadowSampler,vec2 shadowMapSizeAndInverse,float darkness,float frustumEdgeFalloff) +{ +if (depthMetric>1.0 || depthMetric<0.0) { +return 1.0; +} +else +{ +vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w; +vec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5)); +vec2 uv=uvDepth.xy*shadowMapSizeAndInverse.x; +uv+=0.5; +vec2 st=fract(uv); +vec2 base_uv=floor(uv)-0.5; +base_uv*=shadowMapSizeAndInverse.y; + + +vec2 uvw0=4.-3.*st; +vec2 uvw1=vec2(7.); +vec2 uvw2=1.+3.*st; +vec3 u=vec3((3.-2.*st.x)/uvw0.x-2.,(3.+st.x)/uvw1.x,st.x/uvw2.x+2.)*shadowMapSizeAndInverse.y; +vec3 v=vec3((3.-2.*st.y)/uvw0.y-2.,(3.+st.y)/uvw1.y,st.y/uvw2.y+2.)*shadowMapSizeAndInverse.y; +float shadow=0.; +shadow+=uvw0.x*uvw0.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[0]),uvDepth.z)); +shadow+=uvw1.x*uvw0.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[0]),uvDepth.z)); +shadow+=uvw2.x*uvw0.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[2],v[0]),uvDepth.z)); +shadow+=uvw0.x*uvw1.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[1]),uvDepth.z)); +shadow+=uvw1.x*uvw1.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[1]),uvDepth.z)); +shadow+=uvw2.x*uvw1.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[2],v[1]),uvDepth.z)); +shadow+=uvw0.x*uvw2.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[2]),uvDepth.z)); +shadow+=uvw1.x*uvw2.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[2]),uvDepth.z)); +shadow+=uvw2.x*uvw2.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[2],v[2]),uvDepth.z)); +shadow=shadow/144.; +shadow=mix(darkness,1.,shadow); +return computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff); +} +} +const vec3 PoissonSamplers32[64]=vec3[64]( +vec3(0.06407013,0.05409927,0.), +vec3(0.7366577,0.5789394,0.), +vec3(-0.6270542,-0.5320278,0.), +vec3(-0.4096107,0.8411095,0.), +vec3(0.6849564,-0.4990818,0.), +vec3(-0.874181,-0.04579735,0.), +vec3(0.9989998,0.0009880066,0.), +vec3(-0.004920578,-0.9151649,0.), +vec3(0.1805763,0.9747483,0.), +vec3(-0.2138451,0.2635818,0.), +vec3(0.109845,0.3884785,0.), +vec3(0.06876755,-0.3581074,0.), +vec3(0.374073,-0.7661266,0.), +vec3(0.3079132,-0.1216763,0.), +vec3(-0.3794335,-0.8271583,0.), +vec3(-0.203878,-0.07715034,0.), +vec3(0.5912697,0.1469799,0.), +vec3(-0.88069,0.3031784,0.), +vec3(0.5040108,0.8283722,0.), +vec3(-0.5844124,0.5494877,0.), +vec3(0.6017799,-0.1726654,0.), +vec3(-0.5554981,0.1559997,0.), +vec3(-0.3016369,-0.3900928,0.), +vec3(-0.5550632,-0.1723762,0.), +vec3(0.925029,0.2995041,0.), +vec3(-0.2473137,0.5538505,0.), +vec3(0.9183037,-0.2862392,0.), +vec3(0.2469421,0.6718712,0.), +vec3(0.3916397,-0.4328209,0.), +vec3(-0.03576927,-0.6220032,0.), +vec3(-0.04661255,0.7995201,0.), +vec3(0.4402924,0.3640312,0.), +vec3(0.,0.,0.), +vec3(0.,0.,0.), +vec3(0.,0.,0.), +vec3(0.,0.,0.), +vec3(0.,0.,0.), +vec3(0.,0.,0.), +vec3(0.,0.,0.), +vec3(0.,0.,0.), +vec3(0.,0.,0.), +vec3(0.,0.,0.), +vec3(0.,0.,0.), +vec3(0.,0.,0.), +vec3(0.,0.,0.), +vec3(0.,0.,0.), +vec3(0.,0.,0.), +vec3(0.,0.,0.), +vec3(0.,0.,0.), +vec3(0.,0.,0.), +vec3(0.,0.,0.), +vec3(0.,0.,0.), +vec3(0.,0.,0.), +vec3(0.,0.,0.), +vec3(0.,0.,0.), +vec3(0.,0.,0.), +vec3(0.,0.,0.), +vec3(0.,0.,0.), +vec3(0.,0.,0.), +vec3(0.,0.,0.), +vec3(0.,0.,0.), +vec3(0.,0.,0.), +vec3(0.,0.,0.), +vec3(0.,0.,0.) +); +const vec3 PoissonSamplers64[64]=vec3[64]( +vec3(-0.613392,0.617481,0.), +vec3(0.170019,-0.040254,0.), +vec3(-0.299417,0.791925,0.), +vec3(0.645680,0.493210,0.), +vec3(-0.651784,0.717887,0.), +vec3(0.421003,0.027070,0.), +vec3(-0.817194,-0.271096,0.), +vec3(-0.705374,-0.668203,0.), +vec3(0.977050,-0.108615,0.), +vec3(0.063326,0.142369,0.), +vec3(0.203528,0.214331,0.), +vec3(-0.667531,0.326090,0.), +vec3(-0.098422,-0.295755,0.), +vec3(-0.885922,0.215369,0.), +vec3(0.566637,0.605213,0.), +vec3(0.039766,-0.396100,0.), +vec3(0.751946,0.453352,0.), +vec3(0.078707,-0.715323,0.), +vec3(-0.075838,-0.529344,0.), +vec3(0.724479,-0.580798,0.), +vec3(0.222999,-0.215125,0.), +vec3(-0.467574,-0.405438,0.), +vec3(-0.248268,-0.814753,0.), +vec3(0.354411,-0.887570,0.), +vec3(0.175817,0.382366,0.), +vec3(0.487472,-0.063082,0.), +vec3(-0.084078,0.898312,0.), +vec3(0.488876,-0.783441,0.), +vec3(0.470016,0.217933,0.), +vec3(-0.696890,-0.549791,0.), +vec3(-0.149693,0.605762,0.), +vec3(0.034211,0.979980,0.), +vec3(0.503098,-0.308878,0.), +vec3(-0.016205,-0.872921,0.), +vec3(0.385784,-0.393902,0.), +vec3(-0.146886,-0.859249,0.), +vec3(0.643361,0.164098,0.), +vec3(0.634388,-0.049471,0.), +vec3(-0.688894,0.007843,0.), +vec3(0.464034,-0.188818,0.), +vec3(-0.440840,0.137486,0.), +vec3(0.364483,0.511704,0.), +vec3(0.034028,0.325968,0.), +vec3(0.099094,-0.308023,0.), +vec3(0.693960,-0.366253,0.), +vec3(0.678884,-0.204688,0.), +vec3(0.001801,0.780328,0.), +vec3(0.145177,-0.898984,0.), +vec3(0.062655,-0.611866,0.), +vec3(0.315226,-0.604297,0.), +vec3(-0.780145,0.486251,0.), +vec3(-0.371868,0.882138,0.), +vec3(0.200476,0.494430,0.), +vec3(-0.494552,-0.711051,0.), +vec3(0.612476,0.705252,0.), +vec3(-0.578845,-0.768792,0.), +vec3(-0.772454,-0.090976,0.), +vec3(0.504440,0.372295,0.), +vec3(0.155736,0.065157,0.), +vec3(0.391522,0.849605,0.), +vec3(-0.620106,-0.328104,0.), +vec3(0.789239,-0.419965,0.), +vec3(-0.545396,0.538133,0.), +vec3(-0.178564,-0.596057,0.) +); + + + + + +#define inline +float computeShadowWithCSMPCSS(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArray depthSampler,highp sampler2DArrayShadow shadowSampler,float shadowMapSizeInverse,float lightSizeUV,float darkness,float frustumEdgeFalloff,int searchTapCount,int pcfTapCount,vec3[64] poissonSamplers,vec2 lightSizeUVCorrection,float depthCorrection,float penumbraDarkness) +{ +vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w; +vec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5)); +uvDepth.z=clamp(uvDepth.z,0.,GREATEST_LESS_THAN_ONE); +vec4 uvDepthLayer=vec4(uvDepth.x,uvDepth.y,layer,uvDepth.z); +float blockerDepth=0.0; +float sumBlockerDepth=0.0; +float numBlocker=0.0; +for (int i=0; i1.0 || depthMetric<0.0) { +return 1.0; +} +else +{ +vec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w; +vec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5)); +float blockerDepth=0.0; +float sumBlockerDepth=0.0; +float numBlocker=0.0; +for (int i=0; icurrRayHeight) +{ +float delta1=currSampledHeight-currRayHeight; +float delta2=(currRayHeight+stepSize)-lastSampledHeight; +float ratio=delta1/(delta1+delta2); +vCurrOffset=(ratio)* vLastOffset+(1.0-ratio)*vCurrOffset; + +break; +} +else +{ +currRayHeight-=stepSize; +vLastOffset=vCurrOffset; +vCurrOffset+=stepSize*vMaxOffset; +lastSampledHeight=currSampledHeight; +} +} +return vCurrOffset; +} +vec2 parallaxOffset(vec3 viewDir,float heightScale) +{ + +float height=texture2D(bumpSampler,vBumpUV).w; +vec2 texCoordOffset=heightScale*viewDir.xy*height; +return -texCoordOffset; +} +#endif`;f(5).a.IncludesShadersStore[U]=_},function(Ie,y,f){var U=`vec2 uvOffset=vec2(0.0,0.0); +#if defined(BUMP) || defined(PARALLAX) || defined(DETAIL) +#ifdef NORMALXYSCALE +float normalScale=1.0; +#elif defined(BUMP) +float normalScale=vBumpInfos.y; +#else +float normalScale=1.0; +#endif +#if defined(TANGENT) && defined(NORMAL) +mat3 TBN=vTBN; +#elif defined(BUMP) +mat3 TBN=cotangent_frame(normalW*normalScale,vPositionW,vBumpUV); +#else +mat3 TBN=cotangent_frame(normalW*normalScale,vPositionW,vDetailUV,vec2(1.,1.)); +#endif +#elif defined(ANISOTROPIC) +#if defined(TANGENT) && defined(NORMAL) +mat3 TBN=vTBN; +#else +mat3 TBN=cotangent_frame(normalW,vPositionW,vMainUV1,vec2(1.,1.)); +#endif +#endif +#ifdef PARALLAX +mat3 invTBN=transposeMat3(TBN); +#ifdef PARALLAXOCCLUSION +uvOffset=parallaxOcclusion(invTBN*-viewDirectionW,invTBN*normalW,vBumpUV,vBumpInfos.z); +#else +uvOffset=parallaxOffset(invTBN*viewDirectionW,vBumpInfos.z); +#endif +#endif +#ifdef DETAIL +vec4 detailColor=texture2D(detailSampler,vDetailUV+uvOffset); +vec2 detailNormalRG=detailColor.wy*2.0-1.0; +float detailNormalB=sqrt(1.-saturate(dot(detailNormalRG,detailNormalRG))); +vec3 detailNormal=vec3(detailNormalRG,detailNormalB); +#endif +#ifdef BUMP +#ifdef OBJECTSPACE_NORMALMAP +normalW=normalize(texture2D(bumpSampler,vBumpUV).xyz*2.0-1.0); +normalW=normalize(mat3(normalMatrix)*normalW); +#elif !defined(DETAIL) +normalW=perturbNormal(TBN,vBumpUV+uvOffset); +#else +vec3 bumpNormal=texture2D(bumpSampler,vBumpUV+uvOffset).xyz*2.0-1.0; + +#if DETAIL_NORMALBLENDMETHOD == 0 +detailNormal.xy*=vDetailInfos.z; +vec3 blendedNormal=normalize(vec3(bumpNormal.xy+detailNormal.xy,bumpNormal.z*detailNormal.z)); +#elif DETAIL_NORMALBLENDMETHOD == 1 +detailNormal.xy*=vDetailInfos.z; +bumpNormal+=vec3(0.0,0.0,1.0); +detailNormal*=vec3(-1.0,-1.0,1.0); +vec3 blendedNormal=bumpNormal*dot(bumpNormal,detailNormal)/bumpNormal.z-detailNormal; +#endif +normalW=perturbNormalBase(TBN,blendedNormal,vBumpInfos.y); +#endif +#elif defined(DETAIL) +detailNormal.xy*=vDetailInfos.z; +normalW=perturbNormalBase(TBN,detailNormal,vDetailInfos.z); +#endif`;f(5).a.IncludesShadersStore.bumpFragment=U},function(Ie,y,f){var U="lightFragment",_=`#ifdef LIGHT{X} +#if defined(SHADOWONLY) || defined(LIGHTMAP) && defined(LIGHTMAPEXCLUDED{X}) && defined(LIGHTMAPNOSPECULAR{X}) + +#else +#ifdef PBR + +#ifdef SPOTLIGHT{X} +preInfo=computePointAndSpotPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW); +#elif defined(POINTLIGHT{X}) +preInfo=computePointAndSpotPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW); +#elif defined(HEMILIGHT{X}) +preInfo=computeHemisphericPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW); +#elif defined(DIRLIGHT{X}) +preInfo=computeDirectionalPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW); +#endif +preInfo.NdotV=NdotV; + +#ifdef SPOTLIGHT{X} +#ifdef LIGHT_FALLOFF_GLTF{X} +preInfo.attenuation=computeDistanceLightFalloff_GLTF(preInfo.lightDistanceSquared,light{X}.vLightFalloff.y); +preInfo.attenuation*=computeDirectionalLightFalloff_GLTF(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightFalloff.z,light{X}.vLightFalloff.w); +#elif defined(LIGHT_FALLOFF_PHYSICAL{X}) +preInfo.attenuation=computeDistanceLightFalloff_Physical(preInfo.lightDistanceSquared); +preInfo.attenuation*=computeDirectionalLightFalloff_Physical(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w); +#elif defined(LIGHT_FALLOFF_STANDARD{X}) +preInfo.attenuation=computeDistanceLightFalloff_Standard(preInfo.lightOffset,light{X}.vLightFalloff.x); +preInfo.attenuation*=computeDirectionalLightFalloff_Standard(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w,light{X}.vLightData.w); +#else +preInfo.attenuation=computeDistanceLightFalloff(preInfo.lightOffset,preInfo.lightDistanceSquared,light{X}.vLightFalloff.x,light{X}.vLightFalloff.y); +preInfo.attenuation*=computeDirectionalLightFalloff(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w,light{X}.vLightData.w,light{X}.vLightFalloff.z,light{X}.vLightFalloff.w); +#endif +#elif defined(POINTLIGHT{X}) +#ifdef LIGHT_FALLOFF_GLTF{X} +preInfo.attenuation=computeDistanceLightFalloff_GLTF(preInfo.lightDistanceSquared,light{X}.vLightFalloff.y); +#elif defined(LIGHT_FALLOFF_PHYSICAL{X}) +preInfo.attenuation=computeDistanceLightFalloff_Physical(preInfo.lightDistanceSquared); +#elif defined(LIGHT_FALLOFF_STANDARD{X}) +preInfo.attenuation=computeDistanceLightFalloff_Standard(preInfo.lightOffset,light{X}.vLightFalloff.x); +#else +preInfo.attenuation=computeDistanceLightFalloff(preInfo.lightOffset,preInfo.lightDistanceSquared,light{X}.vLightFalloff.x,light{X}.vLightFalloff.y); +#endif +#else +preInfo.attenuation=1.0; +#endif + + +#ifdef HEMILIGHT{X} +preInfo.roughness=roughness; +#else +preInfo.roughness=adjustRoughnessFromLightProperties(roughness,light{X}.vLightSpecular.a,preInfo.lightDistance); +#endif + +#ifdef HEMILIGHT{X} +info.diffuse=computeHemisphericDiffuseLighting(preInfo,light{X}.vLightDiffuse.rgb,light{X}.vLightGround); +#elif defined(SS_TRANSLUCENCY) +info.diffuse=computeDiffuseAndTransmittedLighting(preInfo,light{X}.vLightDiffuse.rgb,subSurfaceOut.transmittance); +#else +info.diffuse=computeDiffuseLighting(preInfo,light{X}.vLightDiffuse.rgb); +#endif + +#ifdef SPECULARTERM +#ifdef ANISOTROPIC +info.specular=computeAnisotropicSpecularLighting(preInfo,viewDirectionW,normalW,anisotropicOut.anisotropicTangent,anisotropicOut.anisotropicBitangent,anisotropicOut.anisotropy,clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,AARoughnessFactors.x,light{X}.vLightDiffuse.rgb); +#else +info.specular=computeSpecularLighting(preInfo,normalW,clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,AARoughnessFactors.x,light{X}.vLightDiffuse.rgb); +#endif +#endif + +#ifdef SHEEN +#ifdef SHEEN_LINKWITHALBEDO + +preInfo.roughness=sheenOut.sheenIntensity; +#else +#ifdef HEMILIGHT{X} +preInfo.roughness=sheenOut.sheenRoughness; +#else +preInfo.roughness=adjustRoughnessFromLightProperties(sheenOut.sheenRoughness,light{X}.vLightSpecular.a,preInfo.lightDistance); +#endif +#endif +info.sheen=computeSheenLighting(preInfo,normalW,sheenOut.sheenColor,specularEnvironmentR90,AARoughnessFactors.x,light{X}.vLightDiffuse.rgb); +#endif + +#ifdef CLEARCOAT + +#ifdef HEMILIGHT{X} +preInfo.roughness=clearcoatOut.clearCoatRoughness; +#else +preInfo.roughness=adjustRoughnessFromLightProperties(clearcoatOut.clearCoatRoughness,light{X}.vLightSpecular.a,preInfo.lightDistance); +#endif +info.clearCoat=computeClearCoatLighting(preInfo,clearcoatOut.clearCoatNormalW,clearcoatOut.clearCoatAARoughnessFactors.x,clearcoatOut.clearCoatIntensity,light{X}.vLightDiffuse.rgb); +#ifdef CLEARCOAT_TINT + +absorption=computeClearCoatLightingAbsorption(clearcoatOut.clearCoatNdotVRefract,preInfo.L,clearcoatOut.clearCoatNormalW,clearcoatOut.clearCoatColor,clearcoatOut.clearCoatThickness,clearcoatOut.clearCoatIntensity); +info.diffuse*=absorption; +#ifdef SPECULARTERM +info.specular*=absorption; +#endif +#endif + +info.diffuse*=info.clearCoat.w; +#ifdef SPECULARTERM +info.specular*=info.clearCoat.w; +#endif +#ifdef SHEEN +info.sheen*=info.clearCoat.w; +#endif +#endif +#else +#ifdef SPOTLIGHT{X} +info=computeSpotLighting(viewDirectionW,normalW,light{X}.vLightData,light{X}.vLightDirection,light{X}.vLightDiffuse.rgb,light{X}.vLightSpecular.rgb,light{X}.vLightDiffuse.a,glossiness); +#elif defined(HEMILIGHT{X}) +info=computeHemisphericLighting(viewDirectionW,normalW,light{X}.vLightData,light{X}.vLightDiffuse.rgb,light{X}.vLightSpecular.rgb,light{X}.vLightGround,glossiness); +#elif defined(POINTLIGHT{X}) || defined(DIRLIGHT{X}) +info=computeLighting(viewDirectionW,normalW,light{X}.vLightData,light{X}.vLightDiffuse.rgb,light{X}.vLightSpecular.rgb,light{X}.vLightDiffuse.a,glossiness); +#endif +#endif +#ifdef PROJECTEDLIGHTTEXTURE{X} +info.diffuse*=computeProjectionTextureDiffuseLighting(projectionLightSampler{X},textureProjectionMatrix{X}); +#endif +#endif +#ifdef SHADOW{X} +#ifdef SHADOWCSM{X} +for (int i=0; i=0.) { +index{X}=i; +break; +} +} +#ifdef SHADOWCSMUSESHADOWMAXZ{X} +if (index{X}>=0) +#endif +{ +#if defined(SHADOWPCF{X}) +#if defined(SHADOWLOWQUALITY{X}) +shadow=computeShadowWithCSMPCF1(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w); +#elif defined(SHADOWMEDIUMQUALITY{X}) +shadow=computeShadowWithCSMPCF3(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowSampler{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w); +#else +shadow=computeShadowWithCSMPCF5(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowSampler{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w); +#endif +#elif defined(SHADOWPCSS{X}) +#if defined(SHADOWLOWQUALITY{X}) +shadow=computeShadowWithCSMPCSS16(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X}); +#elif defined(SHADOWMEDIUMQUALITY{X}) +shadow=computeShadowWithCSMPCSS32(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X}); +#else +shadow=computeShadowWithCSMPCSS64(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X}); +#endif +#else +shadow=computeShadowCSM(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w); +#endif +#ifdef SHADOWCSMDEBUG{X} +shadowDebug{X}=vec3(shadow)*vCascadeColorsMultiplier{X}[index{X}]; +#endif +#ifndef SHADOWCSMNOBLEND{X} +float frustumLength=frustumLengths{X}[index{X}]; +float diffRatio=clamp(diff{X}/frustumLength,0.,1.)*cascadeBlendFactor{X}; +if (index{X}<(SHADOWCSMNUM_CASCADES{X}-1) && diffRatio<1.) +{ +index{X}+=1; +float nextShadow=0.; +#if defined(SHADOWPCF{X}) +#if defined(SHADOWLOWQUALITY{X}) +nextShadow=computeShadowWithCSMPCF1(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w); +#elif defined(SHADOWMEDIUMQUALITY{X}) +nextShadow=computeShadowWithCSMPCF3(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowSampler{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w); +#else +nextShadow=computeShadowWithCSMPCF5(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowSampler{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w); +#endif +#elif defined(SHADOWPCSS{X}) +#if defined(SHADOWLOWQUALITY{X}) +nextShadow=computeShadowWithCSMPCSS16(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X}); +#elif defined(SHADOWMEDIUMQUALITY{X}) +nextShadow=computeShadowWithCSMPCSS32(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X}); +#else +nextShadow=computeShadowWithCSMPCSS64(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X}); +#endif +#else +nextShadow=computeShadowCSM(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w); +#endif +shadow=mix(nextShadow,shadow,diffRatio); +#ifdef SHADOWCSMDEBUG{X} +shadowDebug{X}=mix(vec3(nextShadow)*vCascadeColorsMultiplier{X}[index{X}],shadowDebug{X},diffRatio); +#endif +} +#endif +} +#elif defined(SHADOWCLOSEESM{X}) +#if defined(SHADOWCUBE{X}) +shadow=computeShadowWithCloseESMCube(light{X}.vLightData.xyz,shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.depthValues); +#else +shadow=computeShadowWithCloseESM(vPositionFromLight{X},vDepthMetric{X},shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.shadowsInfo.w); +#endif +#elif defined(SHADOWESM{X}) +#if defined(SHADOWCUBE{X}) +shadow=computeShadowWithESMCube(light{X}.vLightData.xyz,shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.depthValues); +#else +shadow=computeShadowWithESM(vPositionFromLight{X},vDepthMetric{X},shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.shadowsInfo.w); +#endif +#elif defined(SHADOWPOISSON{X}) +#if defined(SHADOWCUBE{X}) +shadow=computeShadowWithPoissonSamplingCube(light{X}.vLightData.xyz,shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.x,light{X}.depthValues); +#else +shadow=computeShadowWithPoissonSampling(vPositionFromLight{X},vDepthMetric{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w); +#endif +#elif defined(SHADOWPCF{X}) +#if defined(SHADOWLOWQUALITY{X}) +shadow=computeShadowWithPCF1(vPositionFromLight{X},vDepthMetric{X},shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w); +#elif defined(SHADOWMEDIUMQUALITY{X}) +shadow=computeShadowWithPCF3(vPositionFromLight{X},vDepthMetric{X},shadowSampler{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w); +#else +shadow=computeShadowWithPCF5(vPositionFromLight{X},vDepthMetric{X},shadowSampler{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w); +#endif +#elif defined(SHADOWPCSS{X}) +#if defined(SHADOWLOWQUALITY{X}) +shadow=computeShadowWithPCSS16(vPositionFromLight{X},vDepthMetric{X},depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w); +#elif defined(SHADOWMEDIUMQUALITY{X}) +shadow=computeShadowWithPCSS32(vPositionFromLight{X},vDepthMetric{X},depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w); +#else +shadow=computeShadowWithPCSS64(vPositionFromLight{X},vDepthMetric{X},depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w); +#endif +#else +#if defined(SHADOWCUBE{X}) +shadow=computeShadowCube(light{X}.vLightData.xyz,shadowSampler{X},light{X}.shadowsInfo.x,light{X}.depthValues); +#else +shadow=computeShadow(vPositionFromLight{X},vDepthMetric{X},shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w); +#endif +#endif +#ifdef SHADOWONLY +#ifndef SHADOWINUSE +#define SHADOWINUSE +#endif +globalShadow+=shadow; +shadowLightCount+=1.0; +#endif +#else +shadow=1.; +#endif +#ifndef SHADOWONLY +#ifdef CUSTOMUSERLIGHTING +diffuseBase+=computeCustomDiffuseLighting(info,diffuseBase,shadow); +#ifdef SPECULARTERM +specularBase+=computeCustomSpecularLighting(info,specularBase,shadow); +#endif +#elif defined(LIGHTMAP) && defined(LIGHTMAPEXCLUDED{X}) +diffuseBase+=lightmapColor.rgb*shadow; +#ifdef SPECULARTERM +#ifndef LIGHTMAPNOSPECULAR{X} +specularBase+=info.specular*shadow*lightmapColor.rgb; +#endif +#endif +#ifdef CLEARCOAT +#ifndef LIGHTMAPNOSPECULAR{X} +clearCoatBase+=info.clearCoat.rgb*shadow*lightmapColor.rgb; +#endif +#endif +#ifdef SHEEN +#ifndef LIGHTMAPNOSPECULAR{X} +sheenBase+=info.sheen.rgb*shadow; +#endif +#endif +#else +#ifdef SHADOWCSMDEBUG{X} +diffuseBase+=info.diffuse*shadowDebug{X}; +#else +diffuseBase+=info.diffuse*shadow; +#endif +#ifdef SPECULARTERM +specularBase+=info.specular*shadow; +#endif +#ifdef CLEARCOAT +clearCoatBase+=info.clearCoat.rgb*shadow; +#endif +#ifdef SHEEN +sheenBase+=info.sheen.rgb*shadow; +#endif +#endif +#endif +#endif`;f(5).a.IncludesShadersStore[U]=_},function(Ie,y,f){var U=`#ifdef FOG +float fog=CalcFogFactor(); +color.rgb=fog*color.rgb+(1.0-fog)*vFogColor; +#endif`;f(5).a.IncludesShadersStore.fogFragment=U},function(Ie,y,f){var U="fogVertexDeclaration",_=`#ifdef FOG +varying vec3 vFogDistance; +#endif`;f(5).a.IncludesShadersStore[U]=_},function(Ie,y,f){var U="shadowsVertex",_=`#ifdef SHADOWS +#if defined(SHADOWCSM{X}) +vPositionFromCamera{X}=view*worldPos; +for (int i=0; i1)for(var T=0;T=R||M.indexOf("file:")!==-1?-1:Math.pow(2,P)*u}},_}()},function(Ie,y,f){f.d(y,"a",function(){return U});var U=function(){function _(){this._isDepthTestDirty=!1,this._isDepthMaskDirty=!1,this._isDepthFuncDirty=!1,this._isCullFaceDirty=!1,this._isCullDirty=!1,this._isZOffsetDirty=!1,this._isFrontFaceDirty=!1,this.reset()}return Object.defineProperty(_.prototype,"isDirty",{get:function(){return this._isDepthFuncDirty||this._isDepthTestDirty||this._isDepthMaskDirty||this._isCullFaceDirty||this._isCullDirty||this._isZOffsetDirty||this._isFrontFaceDirty},enumerable:!1,configurable:!0}),Object.defineProperty(_.prototype,"zOffset",{get:function(){return this._zOffset},set:function(R){this._zOffset!==R&&(this._zOffset=R,this._isZOffsetDirty=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(_.prototype,"cullFace",{get:function(){return this._cullFace},set:function(R){this._cullFace!==R&&(this._cullFace=R,this._isCullFaceDirty=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(_.prototype,"cull",{get:function(){return this._cull},set:function(R){this._cull!==R&&(this._cull=R,this._isCullDirty=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(_.prototype,"depthFunc",{get:function(){return this._depthFunc},set:function(R){this._depthFunc!==R&&(this._depthFunc=R,this._isDepthFuncDirty=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(_.prototype,"depthMask",{get:function(){return this._depthMask},set:function(R){this._depthMask!==R&&(this._depthMask=R,this._isDepthMaskDirty=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(_.prototype,"depthTest",{get:function(){return this._depthTest},set:function(R){this._depthTest!==R&&(this._depthTest=R,this._isDepthTestDirty=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(_.prototype,"frontFace",{get:function(){return this._frontFace},set:function(R){this._frontFace!==R&&(this._frontFace=R,this._isFrontFaceDirty=!0)},enumerable:!1,configurable:!0}),_.prototype.reset=function(){this._depthMask=!0,this._depthTest=!0,this._depthFunc=null,this._cullFace=null,this._cull=null,this._zOffset=0,this._frontFace=null,this._isDepthTestDirty=!0,this._isDepthMaskDirty=!0,this._isDepthFuncDirty=!1,this._isCullFaceDirty=!1,this._isCullDirty=!1,this._isZOffsetDirty=!1,this._isFrontFaceDirty=!1},_.prototype.apply=function(R){this.isDirty&&(this._isCullDirty&&(this.cull?R.enable(R.CULL_FACE):R.disable(R.CULL_FACE),this._isCullDirty=!1),this._isCullFaceDirty&&(R.cullFace(this.cullFace),this._isCullFaceDirty=!1),this._isDepthMaskDirty&&(R.depthMask(this.depthMask),this._isDepthMaskDirty=!1),this._isDepthTestDirty&&(this.depthTest?R.enable(R.DEPTH_TEST):R.disable(R.DEPTH_TEST),this._isDepthTestDirty=!1),this._isDepthFuncDirty&&(R.depthFunc(this.depthFunc),this._isDepthFuncDirty=!1),this._isZOffsetDirty&&(this.zOffset?(R.enable(R.POLYGON_OFFSET_FILL),R.polygonOffset(this.zOffset,0)):R.disable(R.POLYGON_OFFSET_FILL),this._isZOffsetDirty=!1),this._isFrontFaceDirty&&(R.frontFace(this.frontFace),this._isFrontFaceDirty=!1))},_}()},function(Ie,y,f){f.d(y,"a",function(){return _});var U=f(2),_=function(){function R(){this._isStencilTestDirty=!1,this._isStencilMaskDirty=!1,this._isStencilFuncDirty=!1,this._isStencilOpDirty=!1,this.reset()}return Object.defineProperty(R.prototype,"isDirty",{get:function(){return this._isStencilTestDirty||this._isStencilMaskDirty||this._isStencilFuncDirty||this._isStencilOpDirty},enumerable:!1,configurable:!0}),Object.defineProperty(R.prototype,"stencilFunc",{get:function(){return this._stencilFunc},set:function(u){this._stencilFunc!==u&&(this._stencilFunc=u,this._isStencilFuncDirty=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(R.prototype,"stencilFuncRef",{get:function(){return this._stencilFuncRef},set:function(u){this._stencilFuncRef!==u&&(this._stencilFuncRef=u,this._isStencilFuncDirty=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(R.prototype,"stencilFuncMask",{get:function(){return this._stencilFuncMask},set:function(u){this._stencilFuncMask!==u&&(this._stencilFuncMask=u,this._isStencilFuncDirty=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(R.prototype,"stencilOpStencilFail",{get:function(){return this._stencilOpStencilFail},set:function(u){this._stencilOpStencilFail!==u&&(this._stencilOpStencilFail=u,this._isStencilOpDirty=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(R.prototype,"stencilOpDepthFail",{get:function(){return this._stencilOpDepthFail},set:function(u){this._stencilOpDepthFail!==u&&(this._stencilOpDepthFail=u,this._isStencilOpDirty=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(R.prototype,"stencilOpStencilDepthPass",{get:function(){return this._stencilOpStencilDepthPass},set:function(u){this._stencilOpStencilDepthPass!==u&&(this._stencilOpStencilDepthPass=u,this._isStencilOpDirty=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(R.prototype,"stencilMask",{get:function(){return this._stencilMask},set:function(u){this._stencilMask!==u&&(this._stencilMask=u,this._isStencilMaskDirty=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(R.prototype,"stencilTest",{get:function(){return this._stencilTest},set:function(u){this._stencilTest!==u&&(this._stencilTest=u,this._isStencilTestDirty=!0)},enumerable:!1,configurable:!0}),R.prototype.reset=function(){this._stencilTest=!1,this._stencilMask=255,this._stencilFunc=R.ALWAYS,this._stencilFuncRef=1,this._stencilFuncMask=255,this._stencilOpStencilFail=R.KEEP,this._stencilOpDepthFail=R.KEEP,this._stencilOpStencilDepthPass=R.REPLACE,this._isStencilTestDirty=!0,this._isStencilMaskDirty=!0,this._isStencilFuncDirty=!0,this._isStencilOpDirty=!0},R.prototype.apply=function(u){this.isDirty&&(this._isStencilTestDirty&&(this.stencilTest?u.enable(u.STENCIL_TEST):u.disable(u.STENCIL_TEST),this._isStencilTestDirty=!1),this._isStencilMaskDirty&&(u.stencilMask(this.stencilMask),this._isStencilMaskDirty=!1),this._isStencilFuncDirty&&(u.stencilFunc(this.stencilFunc,this.stencilFuncRef,this.stencilFuncMask),this._isStencilFuncDirty=!1),this._isStencilOpDirty&&(u.stencilOp(this.stencilOpStencilFail,this.stencilOpDepthFail,this.stencilOpStencilDepthPass),this._isStencilOpDirty=!1))},R.ALWAYS=U.a.ALWAYS,R.KEEP=U.a.KEEP,R.REPLACE=U.a.REPLACE,R}()},function(Ie,y,f){f.d(y,"a",function(){return U});var U=function(){function _(){this._isAlphaBlendDirty=!1,this._isBlendFunctionParametersDirty=!1,this._isBlendEquationParametersDirty=!1,this._isBlendConstantsDirty=!1,this._alphaBlend=!1,this._blendFunctionParameters=new Array(4),this._blendEquationParameters=new Array(2),this._blendConstants=new Array(4),this.reset()}return Object.defineProperty(_.prototype,"isDirty",{get:function(){return this._isAlphaBlendDirty||this._isBlendFunctionParametersDirty},enumerable:!1,configurable:!0}),Object.defineProperty(_.prototype,"alphaBlend",{get:function(){return this._alphaBlend},set:function(R){this._alphaBlend!==R&&(this._alphaBlend=R,this._isAlphaBlendDirty=!0)},enumerable:!1,configurable:!0}),_.prototype.setAlphaBlendConstants=function(R,u,M,C){this._blendConstants[0]===R&&this._blendConstants[1]===u&&this._blendConstants[2]===M&&this._blendConstants[3]===C||(this._blendConstants[0]=R,this._blendConstants[1]=u,this._blendConstants[2]=M,this._blendConstants[3]=C,this._isBlendConstantsDirty=!0)},_.prototype.setAlphaBlendFunctionParameters=function(R,u,M,C){this._blendFunctionParameters[0]===R&&this._blendFunctionParameters[1]===u&&this._blendFunctionParameters[2]===M&&this._blendFunctionParameters[3]===C||(this._blendFunctionParameters[0]=R,this._blendFunctionParameters[1]=u,this._blendFunctionParameters[2]=M,this._blendFunctionParameters[3]=C,this._isBlendFunctionParametersDirty=!0)},_.prototype.setAlphaEquationParameters=function(R,u){this._blendEquationParameters[0]===R&&this._blendEquationParameters[1]===u||(this._blendEquationParameters[0]=R,this._blendEquationParameters[1]=u,this._isBlendEquationParametersDirty=!0)},_.prototype.reset=function(){this._alphaBlend=!1,this._blendFunctionParameters[0]=null,this._blendFunctionParameters[1]=null,this._blendFunctionParameters[2]=null,this._blendFunctionParameters[3]=null,this._blendEquationParameters[0]=null,this._blendEquationParameters[1]=null,this._blendConstants[0]=null,this._blendConstants[1]=null,this._blendConstants[2]=null,this._blendConstants[3]=null,this._isAlphaBlendDirty=!0,this._isBlendFunctionParametersDirty=!1,this._isBlendEquationParametersDirty=!1,this._isBlendConstantsDirty=!1},_.prototype.apply=function(R){this.isDirty&&(this._isAlphaBlendDirty&&(this._alphaBlend?R.enable(R.BLEND):R.disable(R.BLEND),this._isAlphaBlendDirty=!1),this._isBlendFunctionParametersDirty&&(R.blendFuncSeparate(this._blendFunctionParameters[0],this._blendFunctionParameters[1],this._blendFunctionParameters[2],this._blendFunctionParameters[3]),this._isBlendFunctionParametersDirty=!1),this._isBlendEquationParametersDirty&&(R.blendEquationSeparate(this._blendEquationParameters[0],this._blendEquationParameters[1]),this._isBlendEquationParametersDirty=!1),this._isBlendConstantsDirty&&(R.blendColor(this._blendConstants[0],this._blendConstants[1],this._blendConstants[2],this._blendConstants[3]),this._isBlendConstantsDirty=!1))},_}()},function(Ie,y,f){f.d(y,"a",function(){return U});var U=function(){function _(){this.vertexCompilationError=null,this.fragmentCompilationError=null,this.programLinkError=null,this.programValidationError=null}return Object.defineProperty(_.prototype,"isAsync",{get:function(){return this.isParallelCompiled},enumerable:!1,configurable:!0}),Object.defineProperty(_.prototype,"isReady",{get:function(){return!!this.program&&(!this.isParallelCompiled||this.engine._isRenderingStateCompiled(this))},enumerable:!1,configurable:!0}),_.prototype._handlesSpectorRebuildCallback=function(R){R&&this.program&&R(this.program)},_.prototype._getVertexShaderCode=function(){return this.vertexShader?this.engine._getShaderSource(this.vertexShader):null},_.prototype._getFragmentShaderCode=function(){return this.fragmentShader?this.engine._getShaderSource(this.fragmentShader):null},_}()},function(Ie,y,f){var U;f.d(y,"a",function(){return u}),function(M){M[M.Pending=0]="Pending",M[M.Fulfilled=1]="Fulfilled",M[M.Rejected=2]="Rejected"}(U||(U={}));var _=function(){this.count=0,this.target=0,this.results=[]},R=function(){function M(C){var P=this;if(this._state=U.Pending,this._children=new Array,this._rejectWasConsumed=!1,C)try{C(function(m){P._resolve(m)},function(m){P._reject(m)})}catch(m){this._reject(m)}}return Object.defineProperty(M.prototype,"_result",{get:function(){return this._resultValue},set:function(C){this._resultValue=C,this._parent&&this._parent._result===void 0&&(this._parent._result=C)},enumerable:!1,configurable:!0}),M.prototype.catch=function(C){return this.then(void 0,C)},M.prototype.then=function(C,P){var m=this,c=new M;return c._onFulfilled=C,c._onRejected=P,this._children.push(c),c._parent=this,this._state!==U.Pending&&setTimeout(function(){if(m._state===U.Fulfilled||m._rejectWasConsumed){var T=c._resolve(m._result);if(T!=null)if(T._state!==void 0){var A=T;c._children.push(A),A._parent=c,c=A}else c._result=T}else c._reject(m._reason)}),c},M.prototype._moveChildren=function(C){var P,m=this;if((P=this._children).push.apply(P,C.splice(0,C.length)),this._children.forEach(function(g){g._parent=m}),this._state===U.Fulfilled)for(var c=0,T=this._children;c"u")&&(window.Promise=R)},M}()},function(Ie,y,f){f.d(y,"a",function(){return _}),f.d(y,"b",function(){return R});var U=f(57),_=function(){function u(M){M===void 0&&(M=30),this._enabled=!0,this._rollingFrameTime=new R(M)}return u.prototype.sampleFrame=function(M){if(M===void 0&&(M=U.a.Now),this._enabled){if(this._lastFrameTimeMs!=null){var C=M-this._lastFrameTimeMs;this._rollingFrameTime.add(C)}this._lastFrameTimeMs=M}},Object.defineProperty(u.prototype,"averageFrameTime",{get:function(){return this._rollingFrameTime.average},enumerable:!1,configurable:!0}),Object.defineProperty(u.prototype,"averageFrameTimeVariance",{get:function(){return this._rollingFrameTime.variance},enumerable:!1,configurable:!0}),Object.defineProperty(u.prototype,"instantaneousFrameTime",{get:function(){return this._rollingFrameTime.history(0)},enumerable:!1,configurable:!0}),Object.defineProperty(u.prototype,"averageFPS",{get:function(){return 1e3/this._rollingFrameTime.average},enumerable:!1,configurable:!0}),Object.defineProperty(u.prototype,"instantaneousFPS",{get:function(){var M=this._rollingFrameTime.history(0);return M===0?0:1e3/M},enumerable:!1,configurable:!0}),Object.defineProperty(u.prototype,"isSaturated",{get:function(){return this._rollingFrameTime.isSaturated()},enumerable:!1,configurable:!0}),u.prototype.enable=function(){this._enabled=!0},u.prototype.disable=function(){this._enabled=!1,this._lastFrameTimeMs=null},Object.defineProperty(u.prototype,"isEnabled",{get:function(){return this._enabled},enumerable:!1,configurable:!0}),u.prototype.reset=function(){this._lastFrameTimeMs=null,this._rollingFrameTime.reset()},u}(),R=function(){function u(M){this._samples=new Array(M),this.reset()}return u.prototype.add=function(M){var C;if(this.isSaturated()){var P=this._samples[this._pos];C=P-this.average,this.average-=C/(this._sampleCount-1),this._m2-=C*(P-this.average)}else this._sampleCount++;C=M-this.average,this.average+=C/this._sampleCount,this._m2+=C*(M-this.average),this.variance=this._m2/(this._sampleCount-1),this._samples[this._pos]=M,this._pos++,this._pos%=this._samples.length},u.prototype.history=function(M){if(M>=this._sampleCount||M>=this._samples.length)return 0;var C=this._wrapPosition(this._pos-1);return this._samples[this._wrapPosition(C-M)]},u.prototype.isSaturated=function(){return this._sampleCount>=this._samples.length},u.prototype.reset=function(){this.average=0,this.variance=0,this._sampleCount=0,this._pos=0,this._m2=0},u.prototype._wrapPosition=function(M){var C=this._samples.length;return(M%C+C)%C},u}()},function(Ie,y,f){f.d(y,"a",function(){return _});var U=f(0),_=function(){this._checkCollisions=!1,this._collisionMask=-1,this._collisionGroup=-1,this._surroundingMeshes=null,this._collider=null,this._oldPositionForCollisions=new U.e(0,0,0),this._diffPositionForCollisions=new U.e(0,0,0),this._collisionResponse=!0}},function(Ie,y,f){f.d(y,"a",function(){return u});var U=f(33),_=f(0),R=f(2),u=function(){function M(C,P,m,c,T){m===void 0&&(m=null),c===void 0&&(c=null),T===void 0&&(T=null),this.index=C,this._opaqueSubMeshes=new U.a(256),this._transparentSubMeshes=new U.a(256),this._alphaTestSubMeshes=new U.a(256),this._depthOnlySubMeshes=new U.a(256),this._particleSystems=new U.a(256),this._spriteManagers=new U.a(256),this._edgesRenderers=new U.b(16),this._scene=P,this.opaqueSortCompareFn=m,this.alphaTestSortCompareFn=c,this.transparentSortCompareFn=T}return Object.defineProperty(M.prototype,"opaqueSortCompareFn",{set:function(C){this._opaqueSortCompareFn=C,this._renderOpaque=C?this.renderOpaqueSorted:M.renderUnsorted},enumerable:!1,configurable:!0}),Object.defineProperty(M.prototype,"alphaTestSortCompareFn",{set:function(C){this._alphaTestSortCompareFn=C,this._renderAlphaTest=C?this.renderAlphaTestSorted:M.renderUnsorted},enumerable:!1,configurable:!0}),Object.defineProperty(M.prototype,"transparentSortCompareFn",{set:function(C){this._transparentSortCompareFn=C||M.defaultTransparentSortCompare,this._renderTransparent=this.renderTransparentSorted},enumerable:!1,configurable:!0}),M.prototype.render=function(C,P,m,c){if(C)C(this._opaqueSubMeshes,this._alphaTestSubMeshes,this._transparentSubMeshes,this._depthOnlySubMeshes);else{var T=this._scene.getEngine();this._depthOnlySubMeshes.length!==0&&(T.setColorWrite(!1),this._renderAlphaTest(this._depthOnlySubMeshes),T.setColorWrite(!0)),this._opaqueSubMeshes.length!==0&&this._renderOpaque(this._opaqueSubMeshes),this._alphaTestSubMeshes.length!==0&&this._renderAlphaTest(this._alphaTestSubMeshes);var A=T.getStencilBuffer();if(T.setStencilBuffer(!1),P&&this._renderSprites(),m&&this._renderParticles(c),this.onBeforeTransparentRendering&&this.onBeforeTransparentRendering(),this._transparentSubMeshes.length!==0&&(T.setStencilBuffer(A),this._renderTransparent(this._transparentSubMeshes),T.setAlphaMode(R.a.ALPHA_DISABLE)),T.setStencilBuffer(!1),this._edgesRenderers.length){for(var S=0;SP._alphaIndex?1:C._alphaIndexP._distanceToCamera?-1:0},M.frontToBackSortCompare=function(C,P){return C._distanceToCameraP._distanceToCamera?1:0},M.prototype.prepare=function(){this._opaqueSubMeshes.reset(),this._transparentSubMeshes.reset(),this._alphaTestSubMeshes.reset(),this._depthOnlySubMeshes.reset(),this._particleSystems.reset(),this._spriteManagers.reset(),this._edgesRenderers.reset()},M.prototype.dispose=function(){this._opaqueSubMeshes.dispose(),this._transparentSubMeshes.dispose(),this._alphaTestSubMeshes.dispose(),this._depthOnlySubMeshes.dispose(),this._particleSystems.dispose(),this._spriteManagers.dispose(),this._edgesRenderers.dispose()},M.prototype.dispatch=function(C,P,m){P===void 0&&(P=C.getMesh()),m===void 0&&(m=C.getMaterial()),m!=null&&(m.needAlphaBlendingForMesh(P)?this._transparentSubMeshes.push(C):m.needAlphaTesting()?(m.needDepthPrePass&&this._depthOnlySubMeshes.push(C),this._alphaTestSubMeshes.push(C)):(m.needDepthPrePass&&this._depthOnlySubMeshes.push(C),this._opaqueSubMeshes.push(C)),P._renderingGroup=this,P._edgesRenderer&&P._edgesRenderer.isEnabled&&this._edgesRenderers.pushNoDuplicate(P._edgesRenderer))},M.prototype.dispatchSprites=function(C){this._spriteManagers.push(C)},M.prototype.dispatchParticles=function(C){this._particleSystems.push(C)},M.prototype._renderParticles=function(C){if(this._particleSystems.length!==0){var P=this._scene.activeCamera;this._scene.onBeforeParticlesRenderingObservable.notifyObservers(this._scene);for(var m=0;m=0;){var g=P[A];g<0?g=0:g>1&&(g=1),S[A]=255*g}P=S}var l=document.createElement("canvas");l.width=c,l.height=T;var h=l.getContext("2d");if(!h)return null;var v=h.createImageData(c,T);if(v.data.set(P),h.putImageData(v,0,0),C.invertY){var E=document.createElement("canvas");E.width=c,E.height=T;var D=E.getContext("2d");return D?(D.translate(0,T),D.scale(1,-1),D.drawImage(l,0,0),E.toDataURL("image/png")):null}return l.toDataURL("image/png")},_}()},function(Ie,y,f){f.d(y,"a",function(){return A});var U=f(1),_=f(0),R=f(8),u=f(31),M=f(7),C=f(41),P=f(46),m=f(4),c=f(43),T=f(12);M.a._instancedMeshFactory=function(S,g){var l=new A(S,g);if(g.instancedBuffers)for(var h in l.instancedBuffers={},g.instancedBuffers)l.instancedBuffers[h]=g.instancedBuffers[h];return l};var A=function(S){function g(l,h){var v=S.call(this,l,h.getScene())||this;v._indexInSourceMeshInstanceArray=-1,h.addInstance(v),v._sourceMesh=h,v._unIndexed=h._unIndexed,v.position.copyFrom(h.position),v.rotation.copyFrom(h.rotation),v.scaling.copyFrom(h.scaling),h.rotationQuaternion&&(v.rotationQuaternion=h.rotationQuaternion.clone()),v.animations=T.b.Slice(h.animations);for(var E=0,D=h.getAnimationRanges();E0!=this._getWorldMatrixDeterminant()>0)return this._internalAbstractMeshDataInfo._actAsRegularMesh=!0,!0;if(this._internalAbstractMeshDataInfo._actAsRegularMesh=!1,this._currentLOD._registerInstanceForRenderId(this,l),h){if(!this._currentLOD._internalAbstractMeshDataInfo._isActiveIntermediate)return this._currentLOD._internalAbstractMeshDataInfo._onlyForInstancesIntermediate=!0,!0}else if(!this._currentLOD._internalAbstractMeshDataInfo._isActive)return this._currentLOD._internalAbstractMeshDataInfo._onlyForInstances=!0,!0}return!1},g.prototype._postActivate=function(){this._sourceMesh.edgesShareWithInstances&&this._sourceMesh._edgesRenderer&&this._sourceMesh._edgesRenderer.isEnabled&&this._sourceMesh._renderingGroup?(this._sourceMesh._renderingGroup._edgesRenderers.pushNoDuplicate(this._sourceMesh._edgesRenderer),this._sourceMesh._edgesRenderer.customInstances.push(this.getWorldMatrix())):this._edgesRenderer&&this._edgesRenderer.isEnabled&&this._sourceMesh._renderingGroup&&this._sourceMesh._renderingGroup._edgesRenderers.push(this._edgesRenderer)},g.prototype.getWorldMatrix=function(){if(this._currentLOD&&this._currentLOD.billboardMode!==P.a.BILLBOARDMODE_NONE&&this._currentLOD._masterMesh!==this){var l=this._currentLOD._masterMesh;return this._currentLOD._masterMesh=this,_.c.Vector3[7].copyFrom(this._currentLOD.position),this._currentLOD.position.set(0,0,0),_.c.Matrix[0].copyFrom(this._currentLOD.computeWorldMatrix(!0)),this._currentLOD.position.copyFrom(_.c.Vector3[7]),this._currentLOD._masterMesh=l,_.c.Matrix[0]}return S.prototype.getWorldMatrix.call(this)},Object.defineProperty(g.prototype,"isAnInstance",{get:function(){return!0},enumerable:!1,configurable:!0}),g.prototype.getLOD=function(l){if(!l)return this;var h=this.getBoundingInfo();return this._currentLOD=this.sourceMesh.getLOD(l,h.boundingSphere),this._currentLOD===this.sourceMesh?this.sourceMesh:this._currentLOD},g.prototype._preActivateForIntermediateRendering=function(l){return this.sourceMesh._preActivateForIntermediateRendering(l)},g.prototype._syncSubMeshes=function(){if(this.releaseSubMeshes(),this._sourceMesh.subMeshes)for(var l=0;l=lightDirection.w) +{ +cosAngle=max(0.,pow(cosAngle,lightData.w)); +attenuation*=cosAngle; + +float ndl=max(0.,dot(vNormal,lightVectorW)); +#ifdef NDOTL +result.ndl=ndl; +#endif +result.diffuse=ndl*diffuseColor*attenuation; +#ifdef SPECULARTERM + +vec3 angleW=normalize(viewDirectionW+lightVectorW); +float specComp=max(0.,dot(vNormal,angleW)); +specComp=pow(specComp,max(1.,glossiness)); +result.specular=specComp*specularColor*attenuation; +#endif +return result; +} +result.diffuse=vec3(0.); +#ifdef SPECULARTERM +result.specular=vec3(0.); +#endif +#ifdef NDOTL +result.ndl=0.; +#endif +return result; +} +lightingInfo computeHemisphericLighting(vec3 viewDirectionW,vec3 vNormal,vec4 lightData,vec3 diffuseColor,vec3 specularColor,vec3 groundColor,float glossiness) { +lightingInfo result; + +float ndl=dot(vNormal,lightData.xyz)*0.5+0.5; +#ifdef NDOTL +result.ndl=ndl; +#endif +result.diffuse=mix(groundColor,diffuseColor,ndl); +#ifdef SPECULARTERM + +vec3 angleW=normalize(viewDirectionW+lightData.xyz); +float specComp=max(0.,dot(vNormal,angleW)); +specComp=pow(specComp,max(1.,glossiness)); +result.specular=specComp*specularColor; +#endif +return result; +} +#define inline +vec3 computeProjectionTextureDiffuseLighting(sampler2D projectionLightSampler,mat4 textureProjectionMatrix){ +vec4 strq=textureProjectionMatrix*vec4(vPositionW,1.0); +strq/=strq.w; +vec3 textureColor=texture2D(projectionLightSampler,strq.xy).rgb; +return textureColor; +}`;f(5).a.IncludesShadersStore[U]=_},function(Ie,y,f){var U="logDepthFragment",_=`#ifdef LOGARITHMICDEPTH +gl_FragDepthEXT=log2(vFragmentDepth)*logarithmicDepthConstant*0.5; +#endif`;f(5).a.IncludesShadersStore[U]=_},function(Ie,y,f){var U=`#if defined(BUMP) || defined(PARALLAX) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC) +#if defined(TANGENT) && defined(NORMAL) +vec3 tbnNormal=normalize(normalUpdated); +vec3 tbnTangent=normalize(tangentUpdated.xyz); +vec3 tbnBitangent=cross(tbnNormal,tbnTangent)*tangentUpdated.w; +vTBN=mat3(finalWorld)*mat3(tbnTangent,tbnBitangent,tbnNormal); +#endif +#endif`;f(5).a.IncludesShadersStore.bumpVertex=U},function(Ie,y,f){var U=`#ifdef FOG +vFogDistance=(view*worldPos).xyz; +#endif`;f(5).a.IncludesShadersStore.fogVertex=U},function(Ie,y,f){var U="logDepthVertex",_=`#ifdef LOGARITHMICDEPTH +vFragmentDepth=1.0+gl_Position.w; +gl_Position.z=log2(max(0.000001,vFragmentDepth))*logarithmicDepthConstant; +#endif`;f(5).a.IncludesShadersStore[U]=_},function(Ie,y){var f;f=function(){return this}();try{f=f||new Function("return this")()}catch{typeof window=="object"&&(f=window)}Ie.exports=f},function(Ie,y,f){var U="prePassDeclaration",_=`#ifdef PREPASS +#extension GL_EXT_draw_buffers : require +#ifdef WEBGL2 +layout(location=0) out highp vec4 glFragData[{X}]; +highp vec4 gl_FragColor; +#endif +#ifdef PREPASS_DEPTHNORMAL +varying highp vec3 vViewPos; +#endif +#ifdef PREPASS_VELOCITY +varying highp vec4 vCurrentPosition; +varying highp vec4 vPreviousPosition; +#endif +#endif +`;f(5).a.IncludesShadersStore[U]=_},function(Ie,y,f){var U="fresnelFunction",_=`#ifdef FRESNEL +float computeFresnelTerm(vec3 viewDirection,vec3 worldNormal,float bias,float power) +{ +float fresnelTerm=pow(bias+abs(dot(viewDirection,worldNormal)),power); +return clamp(fresnelTerm,0.,1.); +} +#endif`;f(5).a.IncludesShadersStore[U]=_},function(Ie,y,f){var U=`#ifdef DEPTHPREPASS +gl_FragColor=vec4(0.,0.,0.,1.0); +return; +#endif`;f(5).a.IncludesShadersStore.depthPrePass=U},function(Ie,y,f){var U="prePassVertexDeclaration",_=`#ifdef PREPASS +#ifdef PREPASS_DEPTHNORMAL +varying vec3 vViewPos; +#endif +#ifdef PREPASS_VELOCITY +uniform mat4 previousWorld; +uniform mat4 previousViewProjection; +varying vec4 vCurrentPosition; +varying vec4 vPreviousPosition; +#endif +#endif`;f(5).a.IncludesShadersStore[U]=_},function(Ie,y,f){var U="bumpVertexDeclaration",_=`#if defined(BUMP) || defined(PARALLAX) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC) +#if defined(TANGENT) && defined(NORMAL) +varying mat3 vTBN; +#endif +#endif +`;f(5).a.IncludesShadersStore[U]=_},function(Ie,y,f){var U="prePassVertex",_=`#ifdef PREPASS_DEPTHNORMAL +vViewPos=(view*worldPos).rgb; +#endif +#if defined(PREPASS_VELOCITY) && defined(BONES_VELOCITY_ENABLED) +vCurrentPosition=viewProjection*worldPos; +#if NUM_BONE_INFLUENCERS>0 +mat4 previousInfluence; +previousInfluence=mPreviousBones[int(matricesIndices[0])]*matricesWeights[0]; +#if NUM_BONE_INFLUENCERS>1 +previousInfluence+=mPreviousBones[int(matricesIndices[1])]*matricesWeights[1]; +#endif +#if NUM_BONE_INFLUENCERS>2 +previousInfluence+=mPreviousBones[int(matricesIndices[2])]*matricesWeights[2]; +#endif +#if NUM_BONE_INFLUENCERS>3 +previousInfluence+=mPreviousBones[int(matricesIndices[3])]*matricesWeights[3]; +#endif +#if NUM_BONE_INFLUENCERS>4 +previousInfluence+=mPreviousBones[int(matricesIndicesExtra[0])]*matricesWeightsExtra[0]; +#endif +#if NUM_BONE_INFLUENCERS>5 +previousInfluence+=mPreviousBones[int(matricesIndicesExtra[1])]*matricesWeightsExtra[1]; +#endif +#if NUM_BONE_INFLUENCERS>6 +previousInfluence+=mPreviousBones[int(matricesIndicesExtra[2])]*matricesWeightsExtra[2]; +#endif +#if NUM_BONE_INFLUENCERS>7 +previousInfluence+=mPreviousBones[int(matricesIndicesExtra[3])]*matricesWeightsExtra[3]; +#endif +vPreviousPosition=previousViewProjection*previousWorld*previousInfluence*vec4(positionUpdated,1.0); +#else +vPreviousPosition=previousViewProjection*previousWorld*vec4(positionUpdated,1.0); +#endif +#endif`;f(5).a.IncludesShadersStore[U]=_},function(Ie,y,f){var U=f(5),_=(f(115),f(110),"colorPixelShader"),R=`#ifdef VERTEXCOLOR +varying vec4 vColor; +#else +uniform vec4 color; +#endif +#include +void main(void) { +#include +#ifdef VERTEXCOLOR +gl_FragColor=vColor; +#else +gl_FragColor=color; +#endif +}`;U.a.ShadersStore[_]=R},function(Ie,y,f){var U=f(5),_=(f(78),f(117),f(79),f(80),f(81),f(111),"colorVertexShader"),R=` +attribute vec3 position; +#ifdef VERTEXCOLOR +attribute vec4 color; +#endif +#include +#include + +#include +uniform mat4 viewProjection; +#ifdef MULTIVIEW +uniform mat4 viewProjectionR; +#endif + +#ifdef VERTEXCOLOR +varying vec4 vColor; +#endif +void main(void) { +#include +#include +vec4 worldPos=finalWorld*vec4(position,1.0); +#ifdef MULTIVIEW +if (gl_ViewID_OVR == 0u) { +gl_Position=viewProjection*worldPos; +} else { +gl_Position=viewProjectionR*worldPos; +} +#else +gl_Position=viewProjection*worldPos; +#endif +#include +#ifdef VERTEXCOLOR + +vColor=color; +#endif +}`;U.a.ShadersStore[_]=R},function(Ie,y,f){(function(U){f.d(y,"b",function(){return T}),f.d(y,"a",function(){return A});var _=f(1),R=f(8),u=f(13),M=f(102),C=f(27),P=f(2),m=f(89),c=f(74),T=function(){this.renderWidth=512,this.renderHeight=256,this.textureSize=512,this.deterministicLockstep=!1,this.lockstepMaxSteps=4},A=function(S){function g(l){l===void 0&&(l=new T);var h=S.call(this,null)||this;u.a.Instances.push(h),l.deterministicLockstep===void 0&&(l.deterministicLockstep=!1),l.lockstepMaxSteps===void 0&&(l.lockstepMaxSteps=4),h._options=l,c.a.SetMatrixPrecision(!!l.useHighPrecisionMatrix),h._caps={maxTexturesImageUnits:16,maxVertexTextureImageUnits:16,maxCombinedTexturesImageUnits:32,maxTextureSize:512,maxCubemapTextureSize:512,maxRenderTextureSize:512,maxVertexAttribs:16,maxVaryingVectors:16,maxFragmentUniformVectors:16,maxVertexUniformVectors:16,standardDerivatives:!1,astc:null,pvrtc:null,etc1:null,etc2:null,bptc:null,maxAnisotropy:0,uintIndices:!1,fragmentDepthSupported:!1,highPrecisionShaderSupported:!0,colorBufferFloat:!1,textureFloat:!1,textureFloatLinearFiltering:!1,textureFloatRender:!1,textureHalfFloat:!1,textureHalfFloatLinearFiltering:!1,textureHalfFloatRender:!1,textureLOD:!1,drawBuffersExtension:!1,depthTextureExtension:!1,vertexArrayObject:!1,instancedArrays:!1,canUseTimestampForTimerQuery:!1,maxMSAASamples:1,blendMinMax:!1},R.a.Log("Babylon.js v"+u.a.Version+" - Null engine");var v=typeof self<"u"?self:U!==void 0?U:window;return typeof URL>"u"&&(v.URL={createObjectURL:function(){},revokeObjectURL:function(){}}),typeof Blob>"u"&&(v.Blob=function(){}),h}return Object(_.d)(g,S),g.prototype.isDeterministicLockStep=function(){return this._options.deterministicLockstep},g.prototype.getLockstepMaxSteps=function(){return this._options.lockstepMaxSteps},g.prototype.getHardwareScalingLevel=function(){return 1},g.prototype.createVertexBuffer=function(l){var h=new m.a;return h.references=1,h},g.prototype.createIndexBuffer=function(l){var h=new m.a;return h.references=1,h},g.prototype.clear=function(l,h,v,E){},g.prototype.getRenderWidth=function(l){return l===void 0&&(l=!1),!l&&this._currentRenderTarget?this._currentRenderTarget.width:this._options.renderWidth},g.prototype.getRenderHeight=function(l){return l===void 0&&(l=!1),!l&&this._currentRenderTarget?this._currentRenderTarget.height:this._options.renderHeight},g.prototype.setViewport=function(l,h,v){this._cachedViewport=l},g.prototype.createShaderProgram=function(l,h,v,E,D){return{__SPECTOR_rebuildProgram:null}},g.prototype.getUniforms=function(l,h){return[]},g.prototype.getAttributes=function(l,h){return[]},g.prototype.bindSamplers=function(l){this._currentEffect=null},g.prototype.enableEffect=function(l){this._currentEffect=l,l.onBind&&l.onBind(l),l._onBindObservable&&l._onBindObservable.notifyObservers(l)},g.prototype.setState=function(l,h,v,E){},g.prototype.setIntArray=function(l,h){return!0},g.prototype.setIntArray2=function(l,h){return!0},g.prototype.setIntArray3=function(l,h){return!0},g.prototype.setIntArray4=function(l,h){return!0},g.prototype.setFloatArray=function(l,h){return!0},g.prototype.setFloatArray2=function(l,h){return!0},g.prototype.setFloatArray3=function(l,h){return!0},g.prototype.setFloatArray4=function(l,h){return!0},g.prototype.setArray=function(l,h){return!0},g.prototype.setArray2=function(l,h){return!0},g.prototype.setArray3=function(l,h){return!0},g.prototype.setArray4=function(l,h){return!0},g.prototype.setMatrices=function(l,h){return!0},g.prototype.setMatrix3x3=function(l,h){return!0},g.prototype.setMatrix2x2=function(l,h){return!0},g.prototype.setFloat=function(l,h){return!0},g.prototype.setFloat2=function(l,h,v){return!0},g.prototype.setFloat3=function(l,h,v,E){return!0},g.prototype.setBool=function(l,h){return!0},g.prototype.setFloat4=function(l,h,v,E,D){return!0},g.prototype.setAlphaMode=function(l,h){h===void 0&&(h=!1),this._alphaMode!==l&&(this.alphaState.alphaBlend=l!==P.a.ALPHA_DISABLE,h||this.setDepthWrite(l===P.a.ALPHA_DISABLE),this._alphaMode=l)},g.prototype.bindBuffers=function(l,h,v){},g.prototype.wipeCaches=function(l){this.preventCacheWipeBetweenFrames||(this.resetTextureCache(),this._currentEffect=null,l&&(this._currentProgram=null,this.stencilState.reset(),this.depthCullingState.reset(),this.alphaState.reset()),this._cachedVertexBuffers=null,this._cachedIndexBuffer=null,this._cachedEffectForVertexBuffers=null)},g.prototype.draw=function(l,h,v,E){},g.prototype.drawElementsType=function(l,h,v,E){},g.prototype.drawArraysType=function(l,h,v,E){},g.prototype._createTexture=function(){return{}},g.prototype._releaseTexture=function(l){},g.prototype.createTexture=function(l,h,v,E,D,w,N,I,V,X,j,ne){D===void 0&&(D=P.a.TEXTURE_TRILINEAR_SAMPLINGMODE),w===void 0&&(w=null),X===void 0&&(X=null);var te=new C.a(this,C.b.Url),de=String(l);return te.url=de,te.generateMipMaps=!h,te.samplingMode=D,te.invertY=v,te.baseWidth=this._options.textureSize,te.baseHeight=this._options.textureSize,te.width=this._options.textureSize,te.height=this._options.textureSize,X&&(te.format=X),te.isReady=!0,w&&w(),this._internalTexturesCache.push(te),te},g.prototype.createRenderTargetTexture=function(l,h){var v=new M.a;h!==void 0&&typeof h=="object"?(v.generateMipMaps=h.generateMipMaps,v.generateDepthBuffer=h.generateDepthBuffer===void 0||h.generateDepthBuffer,v.generateStencilBuffer=v.generateDepthBuffer&&h.generateStencilBuffer,v.type=h.type===void 0?P.a.TEXTURETYPE_UNSIGNED_INT:h.type,v.samplingMode=h.samplingMode===void 0?P.a.TEXTURE_TRILINEAR_SAMPLINGMODE:h.samplingMode):(v.generateMipMaps=h,v.generateDepthBuffer=!0,v.generateStencilBuffer=!1,v.type=P.a.TEXTURETYPE_UNSIGNED_INT,v.samplingMode=P.a.TEXTURE_TRILINEAR_SAMPLINGMODE);var E=new C.a(this,C.b.RenderTarget),D=l.width||l,w=l.height||l;return E._depthStencilBuffer={},E._framebuffer={},E.baseWidth=D,E.baseHeight=w,E.width=D,E.height=w,E.isReady=!0,E.samples=1,E.generateMipMaps=!!v.generateMipMaps,E.samplingMode=v.samplingMode,E.type=v.type,E._generateDepthBuffer=v.generateDepthBuffer,E._generateStencilBuffer=!!v.generateStencilBuffer,this._internalTexturesCache.push(E),E},g.prototype.updateTextureSamplingMode=function(l,h){h.samplingMode=l},g.prototype.bindFramebuffer=function(l,h,v,E,D){this._currentRenderTarget&&this.unBindFramebuffer(this._currentRenderTarget),this._currentRenderTarget=l,this._currentFramebuffer=l._MSAAFramebuffer?l._MSAAFramebuffer:l._framebuffer,this._cachedViewport&&!D&&this.setViewport(this._cachedViewport,v,E)},g.prototype.unBindFramebuffer=function(l,h,v){this._currentRenderTarget=null,v&&(l._MSAAFramebuffer&&(this._currentFramebuffer=l._framebuffer),v()),this._currentFramebuffer=null},g.prototype.createDynamicVertexBuffer=function(l){var h=new m.a;return h.references=1,h.capacity=1,h},g.prototype.updateDynamicTexture=function(l,h,v,E,D){},g.prototype.areAllEffectsReady=function(){return!0},g.prototype.getError=function(){return 0},g.prototype._getUnpackAlignement=function(){return 1},g.prototype._unpackFlipY=function(l){},g.prototype.updateDynamicIndexBuffer=function(l,h,v){},g.prototype.updateDynamicVertexBuffer=function(l,h,v,E){},g.prototype._bindTextureDirectly=function(l,h){return this._boundTexturesCache[this._activeChannel]!==h&&(this._boundTexturesCache[this._activeChannel]=h,!0)},g.prototype._bindTexture=function(l,h){l<0||this._bindTextureDirectly(0,h)},g.prototype._deleteBuffer=function(l){},g.prototype.releaseEffects=function(){},g.prototype.displayLoadingUI=function(){},g.prototype.hideLoadingUI=function(){},g.prototype._uploadCompressedDataToTextureDirectly=function(l,h,v,E,D,w,N){},g.prototype._uploadDataToTextureDirectly=function(l,h,v,E){},g.prototype._uploadArrayBufferViewToTexture=function(l,h,v,E){},g.prototype._uploadImageToTexture=function(l,h,v,E){},g}(u.a)}).call(this,f(159))},function(Ie,y,f){f.r(y),function(U){f.d(y,"Debug",function(){return m});var _=f(127),R=f(99);f.d(y,"AbstractScene",function(){return _.AbstractScene}),f.d(y,"AbstractActionManager",function(){return _.AbstractActionManager}),f.d(y,"Action",function(){return _.Action}),f.d(y,"ActionEvent",function(){return _.ActionEvent}),f.d(y,"ActionManager",function(){return _.ActionManager}),f.d(y,"Condition",function(){return _.Condition}),f.d(y,"ValueCondition",function(){return _.ValueCondition}),f.d(y,"PredicateCondition",function(){return _.PredicateCondition}),f.d(y,"StateCondition",function(){return _.StateCondition}),f.d(y,"SwitchBooleanAction",function(){return _.SwitchBooleanAction}),f.d(y,"SetStateAction",function(){return _.SetStateAction}),f.d(y,"SetValueAction",function(){return _.SetValueAction}),f.d(y,"IncrementValueAction",function(){return _.IncrementValueAction}),f.d(y,"PlayAnimationAction",function(){return _.PlayAnimationAction}),f.d(y,"StopAnimationAction",function(){return _.StopAnimationAction}),f.d(y,"DoNothingAction",function(){return _.DoNothingAction}),f.d(y,"CombineAction",function(){return _.CombineAction}),f.d(y,"ExecuteCodeAction",function(){return _.ExecuteCodeAction}),f.d(y,"SetParentAction",function(){return _.SetParentAction}),f.d(y,"PlaySoundAction",function(){return _.PlaySoundAction}),f.d(y,"StopSoundAction",function(){return _.StopSoundAction}),f.d(y,"InterpolateValueAction",function(){return _.InterpolateValueAction}),f.d(y,"Animatable",function(){return _.Animatable}),f.d(y,"_IAnimationState",function(){return _._IAnimationState}),f.d(y,"Animation",function(){return _.Animation}),f.d(y,"TargetedAnimation",function(){return _.TargetedAnimation}),f.d(y,"AnimationGroup",function(){return _.AnimationGroup}),f.d(y,"AnimationPropertiesOverride",function(){return _.AnimationPropertiesOverride}),f.d(y,"EasingFunction",function(){return _.EasingFunction}),f.d(y,"CircleEase",function(){return _.CircleEase}),f.d(y,"BackEase",function(){return _.BackEase}),f.d(y,"BounceEase",function(){return _.BounceEase}),f.d(y,"CubicEase",function(){return _.CubicEase}),f.d(y,"ElasticEase",function(){return _.ElasticEase}),f.d(y,"ExponentialEase",function(){return _.ExponentialEase}),f.d(y,"PowerEase",function(){return _.PowerEase}),f.d(y,"QuadraticEase",function(){return _.QuadraticEase}),f.d(y,"QuarticEase",function(){return _.QuarticEase}),f.d(y,"QuinticEase",function(){return _.QuinticEase}),f.d(y,"SineEase",function(){return _.SineEase}),f.d(y,"BezierCurveEase",function(){return _.BezierCurveEase}),f.d(y,"RuntimeAnimation",function(){return _.RuntimeAnimation}),f.d(y,"AnimationEvent",function(){return _.AnimationEvent}),f.d(y,"AnimationKeyInterpolation",function(){return _.AnimationKeyInterpolation}),f.d(y,"AnimationRange",function(){return _.AnimationRange}),f.d(y,"KeepAssets",function(){return _.KeepAssets}),f.d(y,"InstantiatedEntries",function(){return _.InstantiatedEntries}),f.d(y,"AssetContainer",function(){return _.AssetContainer}),f.d(y,"Analyser",function(){return _.Analyser}),f.d(y,"AudioEngine",function(){return _.AudioEngine}),f.d(y,"AudioSceneComponent",function(){return _.AudioSceneComponent}),f.d(y,"Sound",function(){return _.Sound}),f.d(y,"SoundTrack",function(){return _.SoundTrack}),f.d(y,"WeightedSound",function(){return _.WeightedSound}),f.d(y,"AutoRotationBehavior",function(){return _.AutoRotationBehavior}),f.d(y,"BouncingBehavior",function(){return _.BouncingBehavior}),f.d(y,"FramingBehavior",function(){return _.FramingBehavior}),f.d(y,"AttachToBoxBehavior",function(){return _.AttachToBoxBehavior}),f.d(y,"FadeInOutBehavior",function(){return _.FadeInOutBehavior}),f.d(y,"MultiPointerScaleBehavior",function(){return _.MultiPointerScaleBehavior}),f.d(y,"PointerDragBehavior",function(){return _.PointerDragBehavior}),f.d(y,"SixDofDragBehavior",function(){return _.SixDofDragBehavior}),f.d(y,"Bone",function(){return _.Bone}),f.d(y,"BoneIKController",function(){return _.BoneIKController}),f.d(y,"BoneLookController",function(){return _.BoneLookController}),f.d(y,"Skeleton",function(){return _.Skeleton}),f.d(y,"ArcRotateCameraGamepadInput",function(){return _.ArcRotateCameraGamepadInput}),f.d(y,"ArcRotateCameraKeyboardMoveInput",function(){return _.ArcRotateCameraKeyboardMoveInput}),f.d(y,"ArcRotateCameraMouseWheelInput",function(){return _.ArcRotateCameraMouseWheelInput}),f.d(y,"ArcRotateCameraPointersInput",function(){return _.ArcRotateCameraPointersInput}),f.d(y,"ArcRotateCameraVRDeviceOrientationInput",function(){return _.ArcRotateCameraVRDeviceOrientationInput}),f.d(y,"FlyCameraKeyboardInput",function(){return _.FlyCameraKeyboardInput}),f.d(y,"FlyCameraMouseInput",function(){return _.FlyCameraMouseInput}),f.d(y,"FollowCameraKeyboardMoveInput",function(){return _.FollowCameraKeyboardMoveInput}),f.d(y,"FollowCameraMouseWheelInput",function(){return _.FollowCameraMouseWheelInput}),f.d(y,"FollowCameraPointersInput",function(){return _.FollowCameraPointersInput}),f.d(y,"FreeCameraDeviceOrientationInput",function(){return _.FreeCameraDeviceOrientationInput}),f.d(y,"FreeCameraGamepadInput",function(){return _.FreeCameraGamepadInput}),f.d(y,"FreeCameraKeyboardMoveInput",function(){return _.FreeCameraKeyboardMoveInput}),f.d(y,"FreeCameraMouseInput",function(){return _.FreeCameraMouseInput}),f.d(y,"FreeCameraMouseWheelInput",function(){return _.FreeCameraMouseWheelInput}),f.d(y,"FreeCameraTouchInput",function(){return _.FreeCameraTouchInput}),f.d(y,"FreeCameraVirtualJoystickInput",function(){return _.FreeCameraVirtualJoystickInput}),f.d(y,"CameraInputTypes",function(){return _.CameraInputTypes}),f.d(y,"CameraInputsManager",function(){return _.CameraInputsManager}),f.d(y,"Camera",function(){return _.Camera}),f.d(y,"TargetCamera",function(){return _.TargetCamera}),f.d(y,"FreeCamera",function(){return _.FreeCamera}),f.d(y,"FreeCameraInputsManager",function(){return _.FreeCameraInputsManager}),f.d(y,"TouchCamera",function(){return _.TouchCamera}),f.d(y,"ArcRotateCamera",function(){return _.ArcRotateCamera}),f.d(y,"ArcRotateCameraInputsManager",function(){return _.ArcRotateCameraInputsManager}),f.d(y,"DeviceOrientationCamera",function(){return _.DeviceOrientationCamera}),f.d(y,"FlyCamera",function(){return _.FlyCamera}),f.d(y,"FlyCameraInputsManager",function(){return _.FlyCameraInputsManager}),f.d(y,"FollowCamera",function(){return _.FollowCamera}),f.d(y,"ArcFollowCamera",function(){return _.ArcFollowCamera}),f.d(y,"FollowCameraInputsManager",function(){return _.FollowCameraInputsManager}),f.d(y,"GamepadCamera",function(){return _.GamepadCamera}),f.d(y,"AnaglyphArcRotateCamera",function(){return _.AnaglyphArcRotateCamera}),f.d(y,"AnaglyphFreeCamera",function(){return _.AnaglyphFreeCamera}),f.d(y,"AnaglyphGamepadCamera",function(){return _.AnaglyphGamepadCamera}),f.d(y,"AnaglyphUniversalCamera",function(){return _.AnaglyphUniversalCamera}),f.d(y,"StereoscopicArcRotateCamera",function(){return _.StereoscopicArcRotateCamera}),f.d(y,"StereoscopicFreeCamera",function(){return _.StereoscopicFreeCamera}),f.d(y,"StereoscopicGamepadCamera",function(){return _.StereoscopicGamepadCamera}),f.d(y,"StereoscopicUniversalCamera",function(){return _.StereoscopicUniversalCamera}),f.d(y,"UniversalCamera",function(){return _.UniversalCamera}),f.d(y,"VirtualJoysticksCamera",function(){return _.VirtualJoysticksCamera}),f.d(y,"VRCameraMetrics",function(){return _.VRCameraMetrics}),f.d(y,"VRDeviceOrientationArcRotateCamera",function(){return _.VRDeviceOrientationArcRotateCamera}),f.d(y,"VRDeviceOrientationFreeCamera",function(){return _.VRDeviceOrientationFreeCamera}),f.d(y,"VRDeviceOrientationGamepadCamera",function(){return _.VRDeviceOrientationGamepadCamera}),f.d(y,"OnAfterEnteringVRObservableEvent",function(){return _.OnAfterEnteringVRObservableEvent}),f.d(y,"VRExperienceHelper",function(){return _.VRExperienceHelper}),f.d(y,"WebVRFreeCamera",function(){return _.WebVRFreeCamera}),f.d(y,"Collider",function(){return _.Collider}),f.d(y,"DefaultCollisionCoordinator",function(){return _.DefaultCollisionCoordinator}),f.d(y,"PickingInfo",function(){return _.PickingInfo}),f.d(y,"IntersectionInfo",function(){return _.IntersectionInfo}),f.d(y,"_MeshCollisionData",function(){return _._MeshCollisionData}),f.d(y,"BoundingBox",function(){return _.BoundingBox}),f.d(y,"BoundingInfo",function(){return _.BoundingInfo}),f.d(y,"BoundingSphere",function(){return _.BoundingSphere}),f.d(y,"Octree",function(){return _.Octree}),f.d(y,"OctreeBlock",function(){return _.OctreeBlock}),f.d(y,"OctreeSceneComponent",function(){return _.OctreeSceneComponent}),f.d(y,"Ray",function(){return _.Ray}),f.d(y,"AxesViewer",function(){return _.AxesViewer}),f.d(y,"BoneAxesViewer",function(){return _.BoneAxesViewer}),f.d(y,"DebugLayerTab",function(){return _.DebugLayerTab}),f.d(y,"DebugLayer",function(){return _.DebugLayer}),f.d(y,"PhysicsViewer",function(){return _.PhysicsViewer}),f.d(y,"RayHelper",function(){return _.RayHelper}),f.d(y,"SkeletonViewer",function(){return _.SkeletonViewer}),f.d(y,"DeviceInputSystem",function(){return _.DeviceInputSystem}),f.d(y,"DeviceType",function(){return _.DeviceType}),f.d(y,"PointerInput",function(){return _.PointerInput}),f.d(y,"DualShockInput",function(){return _.DualShockInput}),f.d(y,"XboxInput",function(){return _.XboxInput}),f.d(y,"SwitchInput",function(){return _.SwitchInput}),f.d(y,"DeviceSource",function(){return _.DeviceSource}),f.d(y,"DeviceSourceManager",function(){return _.DeviceSourceManager}),f.d(y,"Constants",function(){return _.Constants}),f.d(y,"ThinEngine",function(){return _.ThinEngine}),f.d(y,"Engine",function(){return _.Engine}),f.d(y,"EngineStore",function(){return _.EngineStore}),f.d(y,"NullEngineOptions",function(){return _.NullEngineOptions}),f.d(y,"NullEngine",function(){return _.NullEngine}),f.d(y,"_OcclusionDataStorage",function(){return _._OcclusionDataStorage}),f.d(y,"_forceTransformFeedbackToBundle",function(){return _._forceTransformFeedbackToBundle}),f.d(y,"EngineView",function(){return _.EngineView}),f.d(y,"WebGLPipelineContext",function(){return _.WebGLPipelineContext}),f.d(y,"WebGL2ShaderProcessor",function(){return _.WebGL2ShaderProcessor}),f.d(y,"NativeEngine",function(){return _.NativeEngine}),f.d(y,"ShaderCodeInliner",function(){return _.ShaderCodeInliner}),f.d(y,"PerformanceConfigurator",function(){return _.PerformanceConfigurator}),f.d(y,"KeyboardEventTypes",function(){return _.KeyboardEventTypes}),f.d(y,"KeyboardInfo",function(){return _.KeyboardInfo}),f.d(y,"KeyboardInfoPre",function(){return _.KeyboardInfoPre}),f.d(y,"PointerEventTypes",function(){return _.PointerEventTypes}),f.d(y,"PointerInfoBase",function(){return _.PointerInfoBase}),f.d(y,"PointerInfoPre",function(){return _.PointerInfoPre}),f.d(y,"PointerInfo",function(){return _.PointerInfo}),f.d(y,"ClipboardEventTypes",function(){return _.ClipboardEventTypes}),f.d(y,"ClipboardInfo",function(){return _.ClipboardInfo}),f.d(y,"DaydreamController",function(){return _.DaydreamController}),f.d(y,"GearVRController",function(){return _.GearVRController}),f.d(y,"GenericController",function(){return _.GenericController}),f.d(y,"OculusTouchController",function(){return _.OculusTouchController}),f.d(y,"PoseEnabledControllerType",function(){return _.PoseEnabledControllerType}),f.d(y,"PoseEnabledControllerHelper",function(){return _.PoseEnabledControllerHelper}),f.d(y,"PoseEnabledController",function(){return _.PoseEnabledController}),f.d(y,"ViveController",function(){return _.ViveController}),f.d(y,"WebVRController",function(){return _.WebVRController}),f.d(y,"WindowsMotionController",function(){return _.WindowsMotionController}),f.d(y,"XRWindowsMotionController",function(){return _.XRWindowsMotionController}),f.d(y,"StickValues",function(){return _.StickValues}),f.d(y,"Gamepad",function(){return _.Gamepad}),f.d(y,"GenericPad",function(){return _.GenericPad}),f.d(y,"GamepadManager",function(){return _.GamepadManager}),f.d(y,"GamepadSystemSceneComponent",function(){return _.GamepadSystemSceneComponent}),f.d(y,"Xbox360Button",function(){return _.Xbox360Button}),f.d(y,"Xbox360Dpad",function(){return _.Xbox360Dpad}),f.d(y,"Xbox360Pad",function(){return _.Xbox360Pad}),f.d(y,"DualShockButton",function(){return _.DualShockButton}),f.d(y,"DualShockDpad",function(){return _.DualShockDpad}),f.d(y,"DualShockPad",function(){return _.DualShockPad}),f.d(y,"AxisDragGizmo",function(){return _.AxisDragGizmo}),f.d(y,"AxisScaleGizmo",function(){return _.AxisScaleGizmo}),f.d(y,"BoundingBoxGizmo",function(){return _.BoundingBoxGizmo}),f.d(y,"Gizmo",function(){return _.Gizmo}),f.d(y,"GizmoManager",function(){return _.GizmoManager}),f.d(y,"PlaneRotationGizmo",function(){return _.PlaneRotationGizmo}),f.d(y,"PositionGizmo",function(){return _.PositionGizmo}),f.d(y,"RotationGizmo",function(){return _.RotationGizmo}),f.d(y,"ScaleGizmo",function(){return _.ScaleGizmo}),f.d(y,"LightGizmo",function(){return _.LightGizmo}),f.d(y,"CameraGizmo",function(){return _.CameraGizmo}),f.d(y,"PlaneDragGizmo",function(){return _.PlaneDragGizmo}),f.d(y,"EnvironmentHelper",function(){return _.EnvironmentHelper}),f.d(y,"PhotoDome",function(){return _.PhotoDome}),f.d(y,"_forceSceneHelpersToBundle",function(){return _._forceSceneHelpersToBundle}),f.d(y,"VideoDome",function(){return _.VideoDome}),f.d(y,"EngineInstrumentation",function(){return _.EngineInstrumentation}),f.d(y,"SceneInstrumentation",function(){return _.SceneInstrumentation}),f.d(y,"_TimeToken",function(){return _._TimeToken}),f.d(y,"EffectLayer",function(){return _.EffectLayer}),f.d(y,"EffectLayerSceneComponent",function(){return _.EffectLayerSceneComponent}),f.d(y,"GlowLayer",function(){return _.GlowLayer}),f.d(y,"HighlightLayer",function(){return _.HighlightLayer}),f.d(y,"Layer",function(){return _.Layer}),f.d(y,"LayerSceneComponent",function(){return _.LayerSceneComponent}),f.d(y,"LensFlare",function(){return _.LensFlare}),f.d(y,"LensFlareSystem",function(){return _.LensFlareSystem}),f.d(y,"LensFlareSystemSceneComponent",function(){return _.LensFlareSystemSceneComponent}),f.d(y,"Light",function(){return _.Light}),f.d(y,"ShadowLight",function(){return _.ShadowLight}),f.d(y,"ShadowGenerator",function(){return _.ShadowGenerator}),f.d(y,"CascadedShadowGenerator",function(){return _.CascadedShadowGenerator}),f.d(y,"ShadowGeneratorSceneComponent",function(){return _.ShadowGeneratorSceneComponent}),f.d(y,"DirectionalLight",function(){return _.DirectionalLight}),f.d(y,"HemisphericLight",function(){return _.HemisphericLight}),f.d(y,"PointLight",function(){return _.PointLight}),f.d(y,"SpotLight",function(){return _.SpotLight}),f.d(y,"DefaultLoadingScreen",function(){return _.DefaultLoadingScreen}),f.d(y,"_BabylonLoaderRegistered",function(){return _._BabylonLoaderRegistered}),f.d(y,"BabylonFileLoaderConfiguration",function(){return _.BabylonFileLoaderConfiguration}),f.d(y,"SceneLoaderAnimationGroupLoadingMode",function(){return _.SceneLoaderAnimationGroupLoadingMode}),f.d(y,"SceneLoader",function(){return _.SceneLoader}),f.d(y,"SceneLoaderFlags",function(){return _.SceneLoaderFlags}),f.d(y,"BackgroundMaterial",function(){return _.BackgroundMaterial}),f.d(y,"ColorCurves",function(){return _.ColorCurves}),f.d(y,"EffectFallbacks",function(){return _.EffectFallbacks}),f.d(y,"Effect",function(){return _.Effect}),f.d(y,"FresnelParameters",function(){return _.FresnelParameters}),f.d(y,"ImageProcessingConfigurationDefines",function(){return _.ImageProcessingConfigurationDefines}),f.d(y,"ImageProcessingConfiguration",function(){return _.ImageProcessingConfiguration}),f.d(y,"Material",function(){return _.Material}),f.d(y,"MaterialDefines",function(){return _.MaterialDefines}),f.d(y,"ThinMaterialHelper",function(){return _.ThinMaterialHelper}),f.d(y,"MaterialHelper",function(){return _.MaterialHelper}),f.d(y,"MultiMaterial",function(){return _.MultiMaterial}),f.d(y,"PBRMaterialDefines",function(){return _.PBRMaterialDefines}),f.d(y,"PBRBaseMaterial",function(){return _.PBRBaseMaterial}),f.d(y,"PBRBaseSimpleMaterial",function(){return _.PBRBaseSimpleMaterial}),f.d(y,"PBRMaterial",function(){return _.PBRMaterial}),f.d(y,"PBRMetallicRoughnessMaterial",function(){return _.PBRMetallicRoughnessMaterial}),f.d(y,"PBRSpecularGlossinessMaterial",function(){return _.PBRSpecularGlossinessMaterial}),f.d(y,"PushMaterial",function(){return _.PushMaterial}),f.d(y,"ShaderMaterial",function(){return _.ShaderMaterial}),f.d(y,"StandardMaterialDefines",function(){return _.StandardMaterialDefines}),f.d(y,"StandardMaterial",function(){return _.StandardMaterial}),f.d(y,"BaseTexture",function(){return _.BaseTexture}),f.d(y,"ColorGradingTexture",function(){return _.ColorGradingTexture}),f.d(y,"CubeTexture",function(){return _.CubeTexture}),f.d(y,"DynamicTexture",function(){return _.DynamicTexture}),f.d(y,"EquiRectangularCubeTexture",function(){return _.EquiRectangularCubeTexture}),f.d(y,"HDRFiltering",function(){return _.HDRFiltering}),f.d(y,"HDRCubeTexture",function(){return _.HDRCubeTexture}),f.d(y,"HtmlElementTexture",function(){return _.HtmlElementTexture}),f.d(y,"InternalTextureSource",function(){return _.InternalTextureSource}),f.d(y,"InternalTexture",function(){return _.InternalTexture}),f.d(y,"_DDSTextureLoader",function(){return _._DDSTextureLoader}),f.d(y,"_ENVTextureLoader",function(){return _._ENVTextureLoader}),f.d(y,"_KTXTextureLoader",function(){return _._KTXTextureLoader}),f.d(y,"_TGATextureLoader",function(){return _._TGATextureLoader}),f.d(y,"_BasisTextureLoader",function(){return _._BasisTextureLoader}),f.d(y,"MirrorTexture",function(){return _.MirrorTexture}),f.d(y,"MultiRenderTarget",function(){return _.MultiRenderTarget}),f.d(y,"TexturePacker",function(){return _.TexturePacker}),f.d(y,"TexturePackerFrame",function(){return _.TexturePackerFrame}),f.d(y,"CustomProceduralTexture",function(){return _.CustomProceduralTexture}),f.d(y,"NoiseProceduralTexture",function(){return _.NoiseProceduralTexture}),f.d(y,"ProceduralTexture",function(){return _.ProceduralTexture}),f.d(y,"ProceduralTextureSceneComponent",function(){return _.ProceduralTextureSceneComponent}),f.d(y,"RawCubeTexture",function(){return _.RawCubeTexture}),f.d(y,"RawTexture",function(){return _.RawTexture}),f.d(y,"RawTexture2DArray",function(){return _.RawTexture2DArray}),f.d(y,"RawTexture3D",function(){return _.RawTexture3D}),f.d(y,"RefractionTexture",function(){return _.RefractionTexture}),f.d(y,"RenderTargetTexture",function(){return _.RenderTargetTexture}),f.d(y,"Texture",function(){return _.Texture}),f.d(y,"VideoTexture",function(){return _.VideoTexture}),f.d(y,"UniformBuffer",function(){return _.UniformBuffer}),f.d(y,"MaterialFlags",function(){return _.MaterialFlags}),f.d(y,"NodeMaterialBlockTargets",function(){return _.NodeMaterialBlockTargets}),f.d(y,"NodeMaterialBlockConnectionPointTypes",function(){return _.NodeMaterialBlockConnectionPointTypes}),f.d(y,"NodeMaterialBlockConnectionPointMode",function(){return _.NodeMaterialBlockConnectionPointMode}),f.d(y,"NodeMaterialSystemValues",function(){return _.NodeMaterialSystemValues}),f.d(y,"NodeMaterialModes",function(){return _.NodeMaterialModes}),f.d(y,"NodeMaterialConnectionPointCompatibilityStates",function(){return _.NodeMaterialConnectionPointCompatibilityStates}),f.d(y,"NodeMaterialConnectionPointDirection",function(){return _.NodeMaterialConnectionPointDirection}),f.d(y,"NodeMaterialConnectionPoint",function(){return _.NodeMaterialConnectionPoint}),f.d(y,"NodeMaterialBlock",function(){return _.NodeMaterialBlock}),f.d(y,"NodeMaterialDefines",function(){return _.NodeMaterialDefines}),f.d(y,"NodeMaterial",function(){return _.NodeMaterial}),f.d(y,"VertexOutputBlock",function(){return _.VertexOutputBlock}),f.d(y,"BonesBlock",function(){return _.BonesBlock}),f.d(y,"InstancesBlock",function(){return _.InstancesBlock}),f.d(y,"MorphTargetsBlock",function(){return _.MorphTargetsBlock}),f.d(y,"LightInformationBlock",function(){return _.LightInformationBlock}),f.d(y,"FragmentOutputBlock",function(){return _.FragmentOutputBlock}),f.d(y,"ImageProcessingBlock",function(){return _.ImageProcessingBlock}),f.d(y,"PerturbNormalBlock",function(){return _.PerturbNormalBlock}),f.d(y,"DiscardBlock",function(){return _.DiscardBlock}),f.d(y,"FrontFacingBlock",function(){return _.FrontFacingBlock}),f.d(y,"DerivativeBlock",function(){return _.DerivativeBlock}),f.d(y,"FragCoordBlock",function(){return _.FragCoordBlock}),f.d(y,"ScreenSizeBlock",function(){return _.ScreenSizeBlock}),f.d(y,"FogBlock",function(){return _.FogBlock}),f.d(y,"LightBlock",function(){return _.LightBlock}),f.d(y,"TextureBlock",function(){return _.TextureBlock}),f.d(y,"ReflectionTextureBlock",function(){return _.ReflectionTextureBlock}),f.d(y,"CurrentScreenBlock",function(){return _.CurrentScreenBlock}),f.d(y,"InputBlock",function(){return _.InputBlock}),f.d(y,"AnimatedInputBlockTypes",function(){return _.AnimatedInputBlockTypes}),f.d(y,"MultiplyBlock",function(){return _.MultiplyBlock}),f.d(y,"AddBlock",function(){return _.AddBlock}),f.d(y,"ScaleBlock",function(){return _.ScaleBlock}),f.d(y,"ClampBlock",function(){return _.ClampBlock}),f.d(y,"CrossBlock",function(){return _.CrossBlock}),f.d(y,"DotBlock",function(){return _.DotBlock}),f.d(y,"TransformBlock",function(){return _.TransformBlock}),f.d(y,"RemapBlock",function(){return _.RemapBlock}),f.d(y,"NormalizeBlock",function(){return _.NormalizeBlock}),f.d(y,"TrigonometryBlockOperations",function(){return _.TrigonometryBlockOperations}),f.d(y,"TrigonometryBlock",function(){return _.TrigonometryBlock}),f.d(y,"ColorMergerBlock",function(){return _.ColorMergerBlock}),f.d(y,"VectorMergerBlock",function(){return _.VectorMergerBlock}),f.d(y,"ColorSplitterBlock",function(){return _.ColorSplitterBlock}),f.d(y,"VectorSplitterBlock",function(){return _.VectorSplitterBlock}),f.d(y,"LerpBlock",function(){return _.LerpBlock}),f.d(y,"DivideBlock",function(){return _.DivideBlock}),f.d(y,"SubtractBlock",function(){return _.SubtractBlock}),f.d(y,"StepBlock",function(){return _.StepBlock}),f.d(y,"OneMinusBlock",function(){return _.OneMinusBlock}),f.d(y,"ViewDirectionBlock",function(){return _.ViewDirectionBlock}),f.d(y,"FresnelBlock",function(){return _.FresnelBlock}),f.d(y,"MaxBlock",function(){return _.MaxBlock}),f.d(y,"MinBlock",function(){return _.MinBlock}),f.d(y,"DistanceBlock",function(){return _.DistanceBlock}),f.d(y,"LengthBlock",function(){return _.LengthBlock}),f.d(y,"NegateBlock",function(){return _.NegateBlock}),f.d(y,"PowBlock",function(){return _.PowBlock}),f.d(y,"RandomNumberBlock",function(){return _.RandomNumberBlock}),f.d(y,"ArcTan2Block",function(){return _.ArcTan2Block}),f.d(y,"SmoothStepBlock",function(){return _.SmoothStepBlock}),f.d(y,"ReciprocalBlock",function(){return _.ReciprocalBlock}),f.d(y,"ReplaceColorBlock",function(){return _.ReplaceColorBlock}),f.d(y,"PosterizeBlock",function(){return _.PosterizeBlock}),f.d(y,"WaveBlockKind",function(){return _.WaveBlockKind}),f.d(y,"WaveBlock",function(){return _.WaveBlock}),f.d(y,"GradientBlockColorStep",function(){return _.GradientBlockColorStep}),f.d(y,"GradientBlock",function(){return _.GradientBlock}),f.d(y,"NLerpBlock",function(){return _.NLerpBlock}),f.d(y,"WorleyNoise3DBlock",function(){return _.WorleyNoise3DBlock}),f.d(y,"SimplexPerlin3DBlock",function(){return _.SimplexPerlin3DBlock}),f.d(y,"NormalBlendBlock",function(){return _.NormalBlendBlock}),f.d(y,"Rotate2dBlock",function(){return _.Rotate2dBlock}),f.d(y,"ReflectBlock",function(){return _.ReflectBlock}),f.d(y,"RefractBlock",function(){return _.RefractBlock}),f.d(y,"DesaturateBlock",function(){return _.DesaturateBlock}),f.d(y,"PBRMetallicRoughnessBlock",function(){return _.PBRMetallicRoughnessBlock}),f.d(y,"SheenBlock",function(){return _.SheenBlock}),f.d(y,"AnisotropyBlock",function(){return _.AnisotropyBlock}),f.d(y,"ReflectionBlock",function(){return _.ReflectionBlock}),f.d(y,"ClearCoatBlock",function(){return _.ClearCoatBlock}),f.d(y,"RefractionBlock",function(){return _.RefractionBlock}),f.d(y,"SubSurfaceBlock",function(){return _.SubSurfaceBlock}),f.d(y,"ParticleTextureBlock",function(){return _.ParticleTextureBlock}),f.d(y,"ParticleRampGradientBlock",function(){return _.ParticleRampGradientBlock}),f.d(y,"ParticleBlendMultiplyBlock",function(){return _.ParticleBlendMultiplyBlock}),f.d(y,"ModBlock",function(){return _.ModBlock}),f.d(y,"NodeMaterialOptimizer",function(){return _.NodeMaterialOptimizer}),f.d(y,"PropertyTypeForEdition",function(){return _.PropertyTypeForEdition}),f.d(y,"editableInPropertyPage",function(){return _.editableInPropertyPage}),f.d(y,"EffectRenderer",function(){return _.EffectRenderer}),f.d(y,"EffectWrapper",function(){return _.EffectWrapper}),f.d(y,"ShadowDepthWrapper",function(){return _.ShadowDepthWrapper}),f.d(y,"Scalar",function(){return _.Scalar}),f.d(y,"extractMinAndMaxIndexed",function(){return _.extractMinAndMaxIndexed}),f.d(y,"extractMinAndMax",function(){return _.extractMinAndMax}),f.d(y,"Space",function(){return _.Space}),f.d(y,"Axis",function(){return _.Axis}),f.d(y,"Coordinate",function(){return _.Coordinate}),f.d(y,"Color3",function(){return _.Color3}),f.d(y,"Color4",function(){return _.Color4}),f.d(y,"TmpColors",function(){return _.TmpColors}),f.d(y,"ToGammaSpace",function(){return _.ToGammaSpace}),f.d(y,"ToLinearSpace",function(){return _.ToLinearSpace}),f.d(y,"Epsilon",function(){return _.Epsilon}),f.d(y,"Frustum",function(){return _.Frustum}),f.d(y,"Orientation",function(){return _.Orientation}),f.d(y,"BezierCurve",function(){return _.BezierCurve}),f.d(y,"Angle",function(){return _.Angle}),f.d(y,"Arc2",function(){return _.Arc2}),f.d(y,"Path2",function(){return _.Path2}),f.d(y,"Path3D",function(){return _.Path3D}),f.d(y,"Curve3",function(){return _.Curve3}),f.d(y,"Plane",function(){return _.Plane}),f.d(y,"Size",function(){return _.Size}),f.d(y,"Vector2",function(){return _.Vector2}),f.d(y,"Vector3",function(){return _.Vector3}),f.d(y,"Vector4",function(){return _.Vector4}),f.d(y,"Quaternion",function(){return _.Quaternion}),f.d(y,"Matrix",function(){return _.Matrix}),f.d(y,"TmpVectors",function(){return _.TmpVectors}),f.d(y,"PositionNormalVertex",function(){return _.PositionNormalVertex}),f.d(y,"PositionNormalTextureVertex",function(){return _.PositionNormalTextureVertex}),f.d(y,"Viewport",function(){return _.Viewport}),f.d(y,"SphericalHarmonics",function(){return _.SphericalHarmonics}),f.d(y,"SphericalPolynomial",function(){return _.SphericalPolynomial}),f.d(y,"AbstractMesh",function(){return _.AbstractMesh}),f.d(y,"Buffer",function(){return _.Buffer}),f.d(y,"VertexBuffer",function(){return _.VertexBuffer}),f.d(y,"DracoCompression",function(){return _.DracoCompression}),f.d(y,"CSG",function(){return _.CSG}),f.d(y,"Geometry",function(){return _.Geometry}),f.d(y,"GroundMesh",function(){return _.GroundMesh}),f.d(y,"TrailMesh",function(){return _.TrailMesh}),f.d(y,"InstancedMesh",function(){return _.InstancedMesh}),f.d(y,"LinesMesh",function(){return _.LinesMesh}),f.d(y,"InstancedLinesMesh",function(){return _.InstancedLinesMesh}),f.d(y,"_CreationDataStorage",function(){return _._CreationDataStorage}),f.d(y,"_InstancesBatch",function(){return _._InstancesBatch}),f.d(y,"Mesh",function(){return _.Mesh}),f.d(y,"VertexData",function(){return _.VertexData}),f.d(y,"MeshBuilder",function(){return _.MeshBuilder}),f.d(y,"SimplificationSettings",function(){return _.SimplificationSettings}),f.d(y,"SimplificationQueue",function(){return _.SimplificationQueue}),f.d(y,"SimplificationType",function(){return _.SimplificationType}),f.d(y,"QuadraticErrorSimplification",function(){return _.QuadraticErrorSimplification}),f.d(y,"SimplicationQueueSceneComponent",function(){return _.SimplicationQueueSceneComponent}),f.d(y,"Polygon",function(){return _.Polygon}),f.d(y,"PolygonMeshBuilder",function(){return _.PolygonMeshBuilder}),f.d(y,"SubMesh",function(){return _.SubMesh}),f.d(y,"MeshLODLevel",function(){return _.MeshLODLevel}),f.d(y,"TransformNode",function(){return _.TransformNode}),f.d(y,"BoxBuilder",function(){return _.BoxBuilder}),f.d(y,"TiledBoxBuilder",function(){return _.TiledBoxBuilder}),f.d(y,"DiscBuilder",function(){return _.DiscBuilder}),f.d(y,"RibbonBuilder",function(){return _.RibbonBuilder}),f.d(y,"SphereBuilder",function(){return _.SphereBuilder}),f.d(y,"HemisphereBuilder",function(){return _.HemisphereBuilder}),f.d(y,"CylinderBuilder",function(){return _.CylinderBuilder}),f.d(y,"TorusBuilder",function(){return _.TorusBuilder}),f.d(y,"TorusKnotBuilder",function(){return _.TorusKnotBuilder}),f.d(y,"LinesBuilder",function(){return _.LinesBuilder}),f.d(y,"PolygonBuilder",function(){return _.PolygonBuilder}),f.d(y,"ShapeBuilder",function(){return _.ShapeBuilder}),f.d(y,"LatheBuilder",function(){return _.LatheBuilder}),f.d(y,"PlaneBuilder",function(){return _.PlaneBuilder}),f.d(y,"TiledPlaneBuilder",function(){return _.TiledPlaneBuilder}),f.d(y,"GroundBuilder",function(){return _.GroundBuilder}),f.d(y,"TubeBuilder",function(){return _.TubeBuilder}),f.d(y,"PolyhedronBuilder",function(){return _.PolyhedronBuilder}),f.d(y,"IcoSphereBuilder",function(){return _.IcoSphereBuilder}),f.d(y,"DecalBuilder",function(){return _.DecalBuilder}),f.d(y,"CapsuleBuilder",function(){return _.CapsuleBuilder}),f.d(y,"DataBuffer",function(){return _.DataBuffer}),f.d(y,"WebGLDataBuffer",function(){return _.WebGLDataBuffer}),f.d(y,"MorphTarget",function(){return _.MorphTarget}),f.d(y,"MorphTargetManager",function(){return _.MorphTargetManager}),f.d(y,"RecastJSPlugin",function(){return _.RecastJSPlugin}),f.d(y,"RecastJSCrowd",function(){return _.RecastJSCrowd}),f.d(y,"Node",function(){return _.Node}),f.d(y,"Database",function(){return _.Database}),f.d(y,"BaseParticleSystem",function(){return _.BaseParticleSystem}),f.d(y,"BoxParticleEmitter",function(){return _.BoxParticleEmitter}),f.d(y,"ConeParticleEmitter",function(){return _.ConeParticleEmitter}),f.d(y,"CylinderParticleEmitter",function(){return _.CylinderParticleEmitter}),f.d(y,"CylinderDirectedParticleEmitter",function(){return _.CylinderDirectedParticleEmitter}),f.d(y,"HemisphericParticleEmitter",function(){return _.HemisphericParticleEmitter}),f.d(y,"PointParticleEmitter",function(){return _.PointParticleEmitter}),f.d(y,"SphereParticleEmitter",function(){return _.SphereParticleEmitter}),f.d(y,"SphereDirectedParticleEmitter",function(){return _.SphereDirectedParticleEmitter}),f.d(y,"CustomParticleEmitter",function(){return _.CustomParticleEmitter}),f.d(y,"MeshParticleEmitter",function(){return _.MeshParticleEmitter}),f.d(y,"GPUParticleSystem",function(){return _.GPUParticleSystem}),f.d(y,"Particle",function(){return _.Particle}),f.d(y,"ParticleHelper",function(){return _.ParticleHelper}),f.d(y,"ParticleSystem",function(){return _.ParticleSystem}),f.d(y,"ParticleSystemSet",function(){return _.ParticleSystemSet}),f.d(y,"SolidParticle",function(){return _.SolidParticle}),f.d(y,"ModelShape",function(){return _.ModelShape}),f.d(y,"DepthSortedParticle",function(){return _.DepthSortedParticle}),f.d(y,"SolidParticleVertex",function(){return _.SolidParticleVertex}),f.d(y,"SolidParticleSystem",function(){return _.SolidParticleSystem}),f.d(y,"CloudPoint",function(){return _.CloudPoint}),f.d(y,"PointsGroup",function(){return _.PointsGroup}),f.d(y,"PointColor",function(){return _.PointColor}),f.d(y,"PointsCloudSystem",function(){return _.PointsCloudSystem}),f.d(y,"SubEmitterType",function(){return _.SubEmitterType}),f.d(y,"SubEmitter",function(){return _.SubEmitter}),f.d(y,"PhysicsEngine",function(){return _.PhysicsEngine}),f.d(y,"PhysicsEngineSceneComponent",function(){return _.PhysicsEngineSceneComponent}),f.d(y,"PhysicsHelper",function(){return _.PhysicsHelper}),f.d(y,"PhysicsRadialExplosionEventOptions",function(){return _.PhysicsRadialExplosionEventOptions}),f.d(y,"PhysicsUpdraftEventOptions",function(){return _.PhysicsUpdraftEventOptions}),f.d(y,"PhysicsVortexEventOptions",function(){return _.PhysicsVortexEventOptions}),f.d(y,"PhysicsRadialImpulseFalloff",function(){return _.PhysicsRadialImpulseFalloff}),f.d(y,"PhysicsUpdraftMode",function(){return _.PhysicsUpdraftMode}),f.d(y,"PhysicsImpostor",function(){return _.PhysicsImpostor}),f.d(y,"PhysicsJoint",function(){return _.PhysicsJoint}),f.d(y,"DistanceJoint",function(){return _.DistanceJoint}),f.d(y,"MotorEnabledJoint",function(){return _.MotorEnabledJoint}),f.d(y,"HingeJoint",function(){return _.HingeJoint}),f.d(y,"Hinge2Joint",function(){return _.Hinge2Joint}),f.d(y,"CannonJSPlugin",function(){return _.CannonJSPlugin}),f.d(y,"AmmoJSPlugin",function(){return _.AmmoJSPlugin}),f.d(y,"OimoJSPlugin",function(){return _.OimoJSPlugin}),f.d(y,"AnaglyphPostProcess",function(){return _.AnaglyphPostProcess}),f.d(y,"BlackAndWhitePostProcess",function(){return _.BlackAndWhitePostProcess}),f.d(y,"BloomEffect",function(){return _.BloomEffect}),f.d(y,"BloomMergePostProcess",function(){return _.BloomMergePostProcess}),f.d(y,"BlurPostProcess",function(){return _.BlurPostProcess}),f.d(y,"ChromaticAberrationPostProcess",function(){return _.ChromaticAberrationPostProcess}),f.d(y,"CircleOfConfusionPostProcess",function(){return _.CircleOfConfusionPostProcess}),f.d(y,"ColorCorrectionPostProcess",function(){return _.ColorCorrectionPostProcess}),f.d(y,"ConvolutionPostProcess",function(){return _.ConvolutionPostProcess}),f.d(y,"DepthOfFieldBlurPostProcess",function(){return _.DepthOfFieldBlurPostProcess}),f.d(y,"DepthOfFieldEffectBlurLevel",function(){return _.DepthOfFieldEffectBlurLevel}),f.d(y,"DepthOfFieldEffect",function(){return _.DepthOfFieldEffect}),f.d(y,"DepthOfFieldMergePostProcessOptions",function(){return _.DepthOfFieldMergePostProcessOptions}),f.d(y,"DepthOfFieldMergePostProcess",function(){return _.DepthOfFieldMergePostProcess}),f.d(y,"DisplayPassPostProcess",function(){return _.DisplayPassPostProcess}),f.d(y,"ExtractHighlightsPostProcess",function(){return _.ExtractHighlightsPostProcess}),f.d(y,"FilterPostProcess",function(){return _.FilterPostProcess}),f.d(y,"FxaaPostProcess",function(){return _.FxaaPostProcess}),f.d(y,"GrainPostProcess",function(){return _.GrainPostProcess}),f.d(y,"HighlightsPostProcess",function(){return _.HighlightsPostProcess}),f.d(y,"ImageProcessingPostProcess",function(){return _.ImageProcessingPostProcess}),f.d(y,"MotionBlurPostProcess",function(){return _.MotionBlurPostProcess}),f.d(y,"PassPostProcess",function(){return _.PassPostProcess}),f.d(y,"PassCubePostProcess",function(){return _.PassCubePostProcess}),f.d(y,"PostProcess",function(){return _.PostProcess}),f.d(y,"PostProcessManager",function(){return _.PostProcessManager}),f.d(y,"RefractionPostProcess",function(){return _.RefractionPostProcess}),f.d(y,"DefaultRenderingPipeline",function(){return _.DefaultRenderingPipeline}),f.d(y,"LensRenderingPipeline",function(){return _.LensRenderingPipeline}),f.d(y,"SSAO2RenderingPipeline",function(){return _.SSAO2RenderingPipeline}),f.d(y,"SSAORenderingPipeline",function(){return _.SSAORenderingPipeline}),f.d(y,"StandardRenderingPipeline",function(){return _.StandardRenderingPipeline}),f.d(y,"PostProcessRenderEffect",function(){return _.PostProcessRenderEffect}),f.d(y,"PostProcessRenderPipeline",function(){return _.PostProcessRenderPipeline}),f.d(y,"PostProcessRenderPipelineManager",function(){return _.PostProcessRenderPipelineManager}),f.d(y,"PostProcessRenderPipelineManagerSceneComponent",function(){return _.PostProcessRenderPipelineManagerSceneComponent}),f.d(y,"SharpenPostProcess",function(){return _.SharpenPostProcess}),f.d(y,"StereoscopicInterlacePostProcessI",function(){return _.StereoscopicInterlacePostProcessI}),f.d(y,"StereoscopicInterlacePostProcess",function(){return _.StereoscopicInterlacePostProcess}),f.d(y,"TonemappingOperator",function(){return _.TonemappingOperator}),f.d(y,"TonemapPostProcess",function(){return _.TonemapPostProcess}),f.d(y,"VolumetricLightScatteringPostProcess",function(){return _.VolumetricLightScatteringPostProcess}),f.d(y,"VRDistortionCorrectionPostProcess",function(){return _.VRDistortionCorrectionPostProcess}),f.d(y,"VRMultiviewToSingleviewPostProcess",function(){return _.VRMultiviewToSingleviewPostProcess}),f.d(y,"ScreenSpaceReflectionPostProcess",function(){return _.ScreenSpaceReflectionPostProcess}),f.d(y,"ScreenSpaceCurvaturePostProcess",function(){return _.ScreenSpaceCurvaturePostProcess}),f.d(y,"ReflectionProbe",function(){return _.ReflectionProbe}),f.d(y,"BoundingBoxRenderer",function(){return _.BoundingBoxRenderer}),f.d(y,"DepthRenderer",function(){return _.DepthRenderer}),f.d(y,"DepthRendererSceneComponent",function(){return _.DepthRendererSceneComponent}),f.d(y,"EdgesRenderer",function(){return _.EdgesRenderer}),f.d(y,"LineEdgesRenderer",function(){return _.LineEdgesRenderer}),f.d(y,"GeometryBufferRenderer",function(){return _.GeometryBufferRenderer}),f.d(y,"GeometryBufferRendererSceneComponent",function(){return _.GeometryBufferRendererSceneComponent}),f.d(y,"PrePassRenderer",function(){return _.PrePassRenderer}),f.d(y,"PrePassRendererSceneComponent",function(){return _.PrePassRendererSceneComponent}),f.d(y,"SubSurfaceSceneComponent",function(){return _.SubSurfaceSceneComponent}),f.d(y,"OutlineRenderer",function(){return _.OutlineRenderer}),f.d(y,"RenderingGroup",function(){return _.RenderingGroup}),f.d(y,"RenderingGroupInfo",function(){return _.RenderingGroupInfo}),f.d(y,"RenderingManager",function(){return _.RenderingManager}),f.d(y,"UtilityLayerRenderer",function(){return _.UtilityLayerRenderer}),f.d(y,"Scene",function(){return _.Scene}),f.d(y,"SceneComponentConstants",function(){return _.SceneComponentConstants}),f.d(y,"Stage",function(){return _.Stage}),f.d(y,"Sprite",function(){return _.Sprite}),f.d(y,"SpriteManager",function(){return _.SpriteManager}),f.d(y,"SpriteMap",function(){return _.SpriteMap}),f.d(y,"SpritePackedManager",function(){return _.SpritePackedManager}),f.d(y,"SpriteSceneComponent",function(){return _.SpriteSceneComponent}),f.d(y,"AlphaState",function(){return _.AlphaState}),f.d(y,"DepthCullingState",function(){return _.DepthCullingState}),f.d(y,"StencilState",function(){return _.StencilState}),f.d(y,"AndOrNotEvaluator",function(){return _.AndOrNotEvaluator}),f.d(y,"AssetTaskState",function(){return _.AssetTaskState}),f.d(y,"AbstractAssetTask",function(){return _.AbstractAssetTask}),f.d(y,"AssetsProgressEvent",function(){return _.AssetsProgressEvent}),f.d(y,"ContainerAssetTask",function(){return _.ContainerAssetTask}),f.d(y,"MeshAssetTask",function(){return _.MeshAssetTask}),f.d(y,"TextFileAssetTask",function(){return _.TextFileAssetTask}),f.d(y,"BinaryFileAssetTask",function(){return _.BinaryFileAssetTask}),f.d(y,"ImageAssetTask",function(){return _.ImageAssetTask}),f.d(y,"TextureAssetTask",function(){return _.TextureAssetTask}),f.d(y,"CubeTextureAssetTask",function(){return _.CubeTextureAssetTask}),f.d(y,"HDRCubeTextureAssetTask",function(){return _.HDRCubeTextureAssetTask}),f.d(y,"EquiRectangularCubeTextureAssetTask",function(){return _.EquiRectangularCubeTextureAssetTask}),f.d(y,"AssetsManager",function(){return _.AssetsManager}),f.d(y,"BasisTranscodeConfiguration",function(){return _.BasisTranscodeConfiguration}),f.d(y,"BasisTools",function(){return _.BasisTools}),f.d(y,"DDSTools",function(){return _.DDSTools}),f.d(y,"expandToProperty",function(){return _.expandToProperty}),f.d(y,"serialize",function(){return _.serialize}),f.d(y,"serializeAsTexture",function(){return _.serializeAsTexture}),f.d(y,"serializeAsColor3",function(){return _.serializeAsColor3}),f.d(y,"serializeAsFresnelParameters",function(){return _.serializeAsFresnelParameters}),f.d(y,"serializeAsVector2",function(){return _.serializeAsVector2}),f.d(y,"serializeAsVector3",function(){return _.serializeAsVector3}),f.d(y,"serializeAsMeshReference",function(){return _.serializeAsMeshReference}),f.d(y,"serializeAsColorCurves",function(){return _.serializeAsColorCurves}),f.d(y,"serializeAsColor4",function(){return _.serializeAsColor4}),f.d(y,"serializeAsImageProcessingConfiguration",function(){return _.serializeAsImageProcessingConfiguration}),f.d(y,"serializeAsQuaternion",function(){return _.serializeAsQuaternion}),f.d(y,"serializeAsMatrix",function(){return _.serializeAsMatrix}),f.d(y,"serializeAsCameraReference",function(){return _.serializeAsCameraReference}),f.d(y,"SerializationHelper",function(){return _.SerializationHelper}),f.d(y,"Deferred",function(){return _.Deferred}),f.d(y,"EnvironmentTextureTools",function(){return _.EnvironmentTextureTools}),f.d(y,"MeshExploder",function(){return _.MeshExploder}),f.d(y,"FilesInput",function(){return _.FilesInput}),f.d(y,"CubeMapToSphericalPolynomialTools",function(){return _.CubeMapToSphericalPolynomialTools}),f.d(y,"HDRTools",function(){return _.HDRTools}),f.d(y,"PanoramaToCubeMapTools",function(){return _.PanoramaToCubeMapTools}),f.d(y,"KhronosTextureContainer",function(){return _.KhronosTextureContainer}),f.d(y,"EventState",function(){return _.EventState}),f.d(y,"Observer",function(){return _.Observer}),f.d(y,"MultiObserver",function(){return _.MultiObserver}),f.d(y,"Observable",function(){return _.Observable}),f.d(y,"PerformanceMonitor",function(){return _.PerformanceMonitor}),f.d(y,"RollingAverage",function(){return _.RollingAverage}),f.d(y,"PromisePolyfill",function(){return _.PromisePolyfill}),f.d(y,"SceneOptimization",function(){return _.SceneOptimization}),f.d(y,"TextureOptimization",function(){return _.TextureOptimization}),f.d(y,"HardwareScalingOptimization",function(){return _.HardwareScalingOptimization}),f.d(y,"ShadowsOptimization",function(){return _.ShadowsOptimization}),f.d(y,"PostProcessesOptimization",function(){return _.PostProcessesOptimization}),f.d(y,"LensFlaresOptimization",function(){return _.LensFlaresOptimization}),f.d(y,"CustomOptimization",function(){return _.CustomOptimization}),f.d(y,"ParticlesOptimization",function(){return _.ParticlesOptimization}),f.d(y,"RenderTargetsOptimization",function(){return _.RenderTargetsOptimization}),f.d(y,"MergeMeshesOptimization",function(){return _.MergeMeshesOptimization}),f.d(y,"SceneOptimizerOptions",function(){return _.SceneOptimizerOptions}),f.d(y,"SceneOptimizer",function(){return _.SceneOptimizer}),f.d(y,"SceneSerializer",function(){return _.SceneSerializer}),f.d(y,"SmartArray",function(){return _.SmartArray}),f.d(y,"SmartArrayNoDuplicate",function(){return _.SmartArrayNoDuplicate}),f.d(y,"StringDictionary",function(){return _.StringDictionary}),f.d(y,"Tags",function(){return _.Tags}),f.d(y,"TextureTools",function(){return _.TextureTools}),f.d(y,"TGATools",function(){return _.TGATools}),f.d(y,"Tools",function(){return _.Tools}),f.d(y,"className",function(){return _.className}),f.d(y,"AsyncLoop",function(){return _.AsyncLoop}),f.d(y,"VideoRecorder",function(){return _.VideoRecorder}),f.d(y,"JoystickAxis",function(){return _.JoystickAxis}),f.d(y,"VirtualJoystick",function(){return _.VirtualJoystick}),f.d(y,"WorkerPool",function(){return _.WorkerPool}),f.d(y,"Logger",function(){return _.Logger}),f.d(y,"_TypeStore",function(){return _._TypeStore}),f.d(y,"FilesInputStore",function(){return _.FilesInputStore}),f.d(y,"DeepCopier",function(){return _.DeepCopier}),f.d(y,"PivotTools",function(){return _.PivotTools}),f.d(y,"PrecisionDate",function(){return _.PrecisionDate}),f.d(y,"ScreenshotTools",function(){return _.ScreenshotTools}),f.d(y,"WebRequest",function(){return _.WebRequest}),f.d(y,"InspectableType",function(){return _.InspectableType}),f.d(y,"BRDFTextureTools",function(){return _.BRDFTextureTools}),f.d(y,"RGBDTextureTools",function(){return _.RGBDTextureTools}),f.d(y,"ColorGradient",function(){return _.ColorGradient}),f.d(y,"Color3Gradient",function(){return _.Color3Gradient}),f.d(y,"FactorGradient",function(){return _.FactorGradient}),f.d(y,"GradientHelper",function(){return _.GradientHelper}),f.d(y,"PerfCounter",function(){return _.PerfCounter}),f.d(y,"RetryStrategy",function(){return _.RetryStrategy}),f.d(y,"CanvasGenerator",function(){return _.CanvasGenerator}),f.d(y,"LoadFileError",function(){return _.LoadFileError}),f.d(y,"RequestFileError",function(){return _.RequestFileError}),f.d(y,"ReadFileError",function(){return _.ReadFileError}),f.d(y,"FileTools",function(){return _.FileTools}),f.d(y,"StringTools",function(){return _.StringTools}),f.d(y,"DataReader",function(){return _.DataReader}),f.d(y,"MinMaxReducer",function(){return _.MinMaxReducer}),f.d(y,"DepthReducer",function(){return _.DepthReducer}),f.d(y,"DataStorage",function(){return _.DataStorage}),f.d(y,"SceneRecorder",function(){return _.SceneRecorder}),f.d(y,"KhronosTextureContainer2",function(){return _.KhronosTextureContainer2}),f.d(y,"Trajectory",function(){return _.Trajectory}),f.d(y,"TrajectoryClassifier",function(){return _.TrajectoryClassifier}),f.d(y,"TimerState",function(){return _.TimerState}),f.d(y,"setAndStartTimer",function(){return _.setAndStartTimer}),f.d(y,"AdvancedTimer",function(){return _.AdvancedTimer}),f.d(y,"CopyTools",function(){return _.CopyTools}),f.d(y,"WebXRCamera",function(){return _.WebXRCamera}),f.d(y,"WebXREnterExitUIButton",function(){return _.WebXREnterExitUIButton}),f.d(y,"WebXREnterExitUIOptions",function(){return _.WebXREnterExitUIOptions}),f.d(y,"WebXREnterExitUI",function(){return _.WebXREnterExitUI}),f.d(y,"WebXRExperienceHelper",function(){return _.WebXRExperienceHelper}),f.d(y,"WebXRInput",function(){return _.WebXRInput}),f.d(y,"WebXRInputSource",function(){return _.WebXRInputSource}),f.d(y,"WebXRManagedOutputCanvasOptions",function(){return _.WebXRManagedOutputCanvasOptions}),f.d(y,"WebXRManagedOutputCanvas",function(){return _.WebXRManagedOutputCanvas}),f.d(y,"WebXRState",function(){return _.WebXRState}),f.d(y,"WebXRTrackingState",function(){return _.WebXRTrackingState}),f.d(y,"WebXRSessionManager",function(){return _.WebXRSessionManager}),f.d(y,"WebXRDefaultExperienceOptions",function(){return _.WebXRDefaultExperienceOptions}),f.d(y,"WebXRDefaultExperience",function(){return _.WebXRDefaultExperience}),f.d(y,"WebXRFeatureName",function(){return _.WebXRFeatureName}),f.d(y,"WebXRFeaturesManager",function(){return _.WebXRFeaturesManager}),f.d(y,"WebXRAbstractFeature",function(){return _.WebXRAbstractFeature}),f.d(y,"WebXRHitTestLegacy",function(){return _.WebXRHitTestLegacy}),f.d(y,"WebXRAnchorSystem",function(){return _.WebXRAnchorSystem}),f.d(y,"WebXRPlaneDetector",function(){return _.WebXRPlaneDetector}),f.d(y,"WebXRBackgroundRemover",function(){return _.WebXRBackgroundRemover}),f.d(y,"WebXRMotionControllerTeleportation",function(){return _.WebXRMotionControllerTeleportation}),f.d(y,"WebXRControllerPointerSelection",function(){return _.WebXRControllerPointerSelection}),f.d(y,"IWebXRControllerPhysicsOptions",function(){return _.IWebXRControllerPhysicsOptions}),f.d(y,"WebXRControllerPhysics",function(){return _.WebXRControllerPhysics}),f.d(y,"WebXRHitTest",function(){return _.WebXRHitTest}),f.d(y,"WebXRFeaturePointSystem",function(){return _.WebXRFeaturePointSystem}),f.d(y,"WebXRHand",function(){return _.WebXRHand}),f.d(y,"WebXRHandTracking",function(){return _.WebXRHandTracking}),f.d(y,"WebXRAbstractMotionController",function(){return _.WebXRAbstractMotionController}),f.d(y,"WebXRControllerComponent",function(){return _.WebXRControllerComponent}),f.d(y,"WebXRGenericTriggerMotionController",function(){return _.WebXRGenericTriggerMotionController}),f.d(y,"WebXRMicrosoftMixedRealityController",function(){return _.WebXRMicrosoftMixedRealityController}),f.d(y,"WebXRMotionControllerManager",function(){return _.WebXRMotionControllerManager}),f.d(y,"WebXROculusTouchMotionController",function(){return _.WebXROculusTouchMotionController}),f.d(y,"WebXRHTCViveMotionController",function(){return _.WebXRHTCViveMotionController}),f.d(y,"WebXRProfiledMotionController",function(){return _.WebXRProfiledMotionController});var u=U!==void 0?U:typeof window<"u"?window:void 0;if(u!==void 0){u.BABYLON=M,u.BABYLON=u.BABYLON||{};var M=u.BABYLON;M.Debug=M.Debug||{};var C=[];for(var P in R)M.Debug[P]=R[P],C.push(P);for(var P in _)M[P]=_[P]}var m={AxesViewer:R.AxesViewer,BoneAxesViewer:R.BoneAxesViewer,PhysicsViewer:R.PhysicsViewer,SkeletonViewer:R.SkeletonViewer}}.call(this,f(159))}])})})(zn);var pl={exports:{}};(function(ft,Ze){(function(Ie,y){ft.exports=y(zn.exports)})(typeof self<"u"?self:typeof Qr<"u"?Qr:Qr,function(Ie){return function(y){var f={};function U(_){if(f[_])return f[_].exports;var R=f[_]={i:_,l:!1,exports:{}};return y[_].call(R.exports,R,R.exports,U),R.l=!0,R.exports}return U.m=y,U.c=f,U.d=function(_,R,u){U.o(_,R)||Object.defineProperty(_,R,{enumerable:!0,get:u})},U.r=function(_){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(_,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(_,"__esModule",{value:!0})},U.t=function(_,R){if(1&R&&(_=U(_)),8&R||4&R&&typeof _=="object"&&_&&_.__esModule)return _;var u=Object.create(null);if(U.r(u),Object.defineProperty(u,"default",{enumerable:!0,value:_}),2&R&&typeof _!="string")for(var M in _)U.d(u,M,function(C){return _[C]}.bind(null,M));return u},U.n=function(_){var R=_&&_.__esModule?function(){return _.default}:function(){return _};return U.d(R,"a",R),R},U.o=function(_,R){return Object.prototype.hasOwnProperty.call(_,R)},U.p="",U(U.s=20)}([function(y,f){y.exports=Ie},function(y,f,U){U.d(f,"a",function(){return u}),U.d(f,"b",function(){return M});var _=U(0),R=U(2),u=function(){function C(){}return C.Get=function(P,m,c){if(!m||c==null||!m[c])throw new Error(P+": Failed to find index ("+c+")");return m[c]},C.Assign=function(P){if(P)for(var m=0;m "+R.GLTFLoaderState[R.GLTFLoaderState.READY],A=R.GLTFLoaderState[R.GLTFLoaderState.LOADING]+" => "+R.GLTFLoaderState[R.GLTFLoaderState.COMPLETE];c._parent._startPerformanceCounter(T),c._parent._startPerformanceCounter(A),c._setState(R.GLTFLoaderState.LOADING),c._extensionsOnLoading();var S=new Array,g=c._babylonScene.blockMaterialDirtyMechanism;if(c._babylonScene.blockMaterialDirtyMechanism=!0,P)S.push(c.loadSceneAsync("/nodes",{nodes:P,index:-1}));else if(c._gltf.scene!=null||c._gltf.scenes&&c._gltf.scenes[0]){var l=u.Get("/scene",c._gltf.scenes,c._gltf.scene||0);S.push(c.loadSceneAsync("/scenes/"+l.index,l))}if(c.parent.loadAllMaterials&&c._gltf.materials)for(var h=0;hP.bin.byteLength)&&_.Logger.Warn("Binary buffer length ("+c.byteLength+") from JSON does not match chunk length ("+P.bin.byteLength+")"),this._bin=P.bin}else _.Logger.Warn("Unexpected BIN chunk")}},C.prototype._setupData=function(){if(u.Assign(this._gltf.accessors),u.Assign(this._gltf.animations),u.Assign(this._gltf.buffers),u.Assign(this._gltf.bufferViews),u.Assign(this._gltf.cameras),u.Assign(this._gltf.images),u.Assign(this._gltf.materials),u.Assign(this._gltf.meshes),u.Assign(this._gltf.nodes),u.Assign(this._gltf.samplers),u.Assign(this._gltf.scenes),u.Assign(this._gltf.skins),u.Assign(this._gltf.textures),this._gltf.nodes){for(var P={},m=0,c=this._gltf.nodes;m=2)throw new Error(P+"/texCoord: Invalid value ("+m.texCoord+")");var S=u.Get(P+"/index",this._gltf.textures,m.index);S._textureInfo=m;var g=this._loadTextureAsync("/textures/"+m.index,S,function(l){l.coordinatesIndex=m.texCoord||0,C.AddPointerMetadata(l,P),T._parent.onTextureLoadedObservable.notifyObservers(l),c(l)});return this.logClose(),g},C.prototype._loadTextureAsync=function(P,m,c){c===void 0&&(c=function(){});var T=this._extensionsLoadTextureAsync(P,m,c);if(T)return T;this.logOpen(P+" "+(m.name||""));var A=m.sampler==null?C.DefaultSampler:u.Get(P+"/sampler",this._gltf.samplers,m.sampler),S=u.Get(P+"/source",this._gltf.images,m.source),g=this._createTextureAsync(P,A,S,c);return this.logClose(),g},C.prototype._createTextureAsync=function(P,m,c,T,A){var S=this;T===void 0&&(T=function(){});var g=this._loadSampler("/samplers/"+m.index,m),l=new Array,h=new _.Deferred;this._babylonScene._blockEntityCollection=this._forAssetContainer;var v=new _.Texture(null,this._babylonScene,g.noMipMaps,!1,g.samplingMode,function(){S._disposed||h.resolve()},function(E,D){S._disposed||h.reject(new Error(P+": "+(D&&D.message?D.message:E||"Failed to load texture")))},void 0,void 0,void 0,c.mimeType,A);return this._babylonScene._blockEntityCollection=!1,l.push(h.promise),l.push(this.loadImageAsync("/images/"+c.index,c).then(function(E){var D=c.uri||S._fileName+"#image"+c.index,w="data:"+S._uniqueRootUrl+D;v.updateURL(w,E)})),v.wrapU=g.wrapU,v.wrapV=g.wrapV,T(v),Promise.all(l).then(function(){return v})},C.prototype._loadSampler=function(P,m){return m._data||(m._data={noMipMaps:m.minFilter===9728||m.minFilter===9729,samplingMode:C._GetTextureSamplingMode(P,m),wrapU:C._GetTextureWrapMode(P+"/wrapS",m.wrapS),wrapV:C._GetTextureWrapMode(P+"/wrapT",m.wrapT)}),m._data},C.prototype.loadImageAsync=function(P,m){if(!m._data){if(this.logOpen(P+" "+(m.name||"")),m.uri)m._data=this.loadUriAsync(P+"/uri",m,m.uri);else{var c=u.Get(P+"/bufferView",this._gltf.bufferViews,m.bufferView);m._data=this.loadBufferViewAsync("/bufferViews/"+c.index,c)}this.logClose()}return m._data},C.prototype.loadUriAsync=function(P,m,c){var T=this,A=this._extensionsLoadUriAsync(P,m,c);if(A)return A;if(!C._ValidateUri(c))throw new Error(P+": '"+c+"' is invalid");if(_.Tools.IsBase64(c)){var S=new Uint8Array(_.Tools.DecodeBase64(c));return this.log("Decoded "+c.substr(0,64)+"... ("+S.length+" bytes)"),Promise.resolve(S)}return this.log("Loading "+c),this._parent.preprocessUrlAsync(this._rootUrl+c).then(function(g){return new Promise(function(l,h){T._parent._loadFile(g,T._babylonScene,function(v){T._disposed||(T.log("Loaded "+c+" ("+v.byteLength+" bytes)"),l(new Uint8Array(v)))},!0,function(v){h(new _.LoadFileError(P+": Failed to load '"+c+"'"+(v?": "+v.status+" "+v.statusText:""),v))})})})},C.AddPointerMetadata=function(P,m){var c=P.metadata=P.metadata||{},T=c.gltf=c.gltf||{};(T.pointers=T.pointers||[]).push(m)},C._GetTextureWrapMode=function(P,m){switch(m=m??10497){case 33071:return _.Texture.CLAMP_ADDRESSMODE;case 33648:return _.Texture.MIRROR_ADDRESSMODE;case 10497:return _.Texture.WRAP_ADDRESSMODE;default:return _.Logger.Warn(P+": Invalid value ("+m+")"),_.Texture.WRAP_ADDRESSMODE}},C._GetTextureSamplingMode=function(P,m){var c=m.magFilter==null?9729:m.magFilter,T=m.minFilter==null?9987:m.minFilter;if(c===9729)switch(T){case 9728:return _.Texture.LINEAR_NEAREST;case 9729:return _.Texture.LINEAR_LINEAR;case 9984:return _.Texture.LINEAR_NEAREST_MIPNEAREST;case 9985:return _.Texture.LINEAR_LINEAR_MIPNEAREST;case 9986:return _.Texture.LINEAR_NEAREST_MIPLINEAR;case 9987:return _.Texture.LINEAR_LINEAR_MIPLINEAR;default:return _.Logger.Warn(P+"/minFilter: Invalid value ("+T+")"),_.Texture.LINEAR_LINEAR_MIPLINEAR}else switch(c!==9728&&_.Logger.Warn(P+"/magFilter: Invalid value ("+c+")"),T){case 9728:return _.Texture.NEAREST_NEAREST;case 9729:return _.Texture.NEAREST_LINEAR;case 9984:return _.Texture.NEAREST_NEAREST_MIPNEAREST;case 9985:return _.Texture.NEAREST_LINEAR_MIPNEAREST;case 9986:return _.Texture.NEAREST_NEAREST_MIPLINEAR;case 9987:return _.Texture.NEAREST_LINEAR_MIPLINEAR;default:return _.Logger.Warn(P+"/minFilter: Invalid value ("+T+")"),_.Texture.NEAREST_NEAREST_MIPNEAREST}},C._GetTypedArrayConstructor=function(P,m){switch(m){case 5120:return Int8Array;case 5121:return Uint8Array;case 5122:return Int16Array;case 5123:return Uint16Array;case 5125:return Uint32Array;case 5126:return Float32Array;default:throw new Error(P+": Invalid component type "+m)}},C._GetTypedArray=function(P,m,c,T,A){var S=c.buffer;T=c.byteOffset+(T||0);var g=C._GetTypedArrayConstructor(P+"/componentType",m);try{return new g(S,T,A)}catch(l){throw new Error(P+": "+l)}},C._GetNumComponents=function(P,m){switch(m){case"SCALAR":return 1;case"VEC2":return 2;case"VEC3":return 3;case"VEC4":case"MAT2":return 4;case"MAT3":return 9;case"MAT4":return 16}throw new Error(P+": Invalid type ("+m+")")},C._ValidateUri=function(P){return _.Tools.IsBase64(P)||P.indexOf("..")===-1},C._GetDrawMode=function(P,m){switch(m==null&&(m=4),m){case 0:return _.Material.PointListDrawMode;case 1:return _.Material.LineListDrawMode;case 2:return _.Material.LineLoopDrawMode;case 3:return _.Material.LineStripDrawMode;case 4:return _.Material.TriangleFillMode;case 5:return _.Material.TriangleStripDrawMode;case 6:return _.Material.TriangleFanDrawMode}throw new Error(P+": Invalid mesh primitive mode ("+m+")")},C.prototype._compileMaterialsAsync=function(){var P=this;this._parent._startPerformanceCounter("Compile materials");var m=new Array;if(this._gltf.materials)for(var c=0,T=this._gltf.materials;c-1&&h.materials.splice(N,1),(N=v.indexOf(w))>-1&&v.splice(N,1)})});var E=[];l.onTextureLoadedObservable.add(function(w){E.push(w),w.onDisposeObservable.addOnce(function(){var N=h.textures.indexOf(w);N>-1&&h.textures.splice(N,1),(N=E.indexOf(w))>-1&&E.splice(N,1)})});var D=[];return l.onCameraLoadedObservable.add(function(w){D.push(w)}),l._loader.importMeshAsync(null,c,!0,T,A,S,g).then(function(w){return Array.prototype.push.apply(h.geometries,w.geometries),Array.prototype.push.apply(h.meshes,w.meshes),Array.prototype.push.apply(h.particleSystems,w.particleSystems),Array.prototype.push.apply(h.skeletons,w.skeletons),Array.prototype.push.apply(h.animationGroups,w.animationGroups),Array.prototype.push.apply(h.materials,v),Array.prototype.push.apply(h.textures,E),Array.prototype.push.apply(h.lights,w.lights),Array.prototype.push.apply(h.transformNodes,w.transformNodes),Array.prototype.push.apply(h.cameras,D),h})})},m.prototype.canDirectLoad=function(c){return c.indexOf("asset")!==-1&&c.indexOf("version")!==-1||M.StringTools.StartsWith(c,"data:base64,"+m.magicBase64Encoded)||M.StringTools.StartsWith(c,"data:application/octet-stream;base64,"+m.magicBase64Encoded)||M.StringTools.StartsWith(c,"data:model/gltf-binary;base64,"+m.magicBase64Encoded)},m.prototype.directLoad=function(c,T){if(M.StringTools.StartsWith(T,"base64,"+m.magicBase64Encoded)||M.StringTools.StartsWith(T,"application/octet-stream;base64,"+m.magicBase64Encoded)||M.StringTools.StartsWith(T,"model/gltf-binary;base64,"+m.magicBase64Encoded)){var A=M.Tools.DecodeBase64(T);return this._validate(c,A),this._unpackBinaryAsync(new M.DataReader({readAsync:function(S,g){return Promise.resolve(new Uint8Array(A,S,g))},byteLength:A.byteLength}))}return this._validate(c,T),Promise.resolve({json:this._parseJson(T)})},m.prototype.createPlugin=function(){return new m},Object.defineProperty(m.prototype,"loaderState",{get:function(){return this._loader?this._loader.state:null},enumerable:!1,configurable:!0}),m.prototype.whenCompleteAsync=function(){var c=this;return new Promise(function(T,A){c.onCompleteObservable.addOnce(function(){T()}),c.onErrorObservable.addOnce(function(S){A(S)})})},m.prototype._loadFile=function(c,T,A,S,g){var l=this,h=T._loadFile(c,A,function(v){l._onProgress(v,h)},void 0,S,g);return h.onCompleteObservable.add(function(v){l._requests.splice(l._requests.indexOf(v),1)}),this._requests.push(h),h},m.prototype._requestFile=function(c,T,A,S,g,l){var h=this,v=T._requestFile(c,A,function(E){h._onProgress(E,v)},void 0,S,g,l);return v.onCompleteObservable.add(function(E){h._requests.splice(h._requests.indexOf(E),1)}),this._requests.push(v),v},m.prototype._onProgress=function(c,T){if(this._progressCallback){T._lengthComputable=c.lengthComputable,T._loaded=c.loaded,T._total=c.total;for(var A=!0,S=0,g=0,l=0,h=this._requests;l0)throw new Error("Incompatible minimum version: "+T.minVersion)}var g={1:m._CreateGLTF1Loader,2:m._CreateGLTF2Loader}[A.major];if(!g)throw new Error("Unsupported version: "+T.version);return g(this)},m.prototype._parseJson=function(c){this._startPerformanceCounter("Parse JSON"),this._log("JSON length: "+c.length);var T=JSON.parse(c);return this._endPerformanceCounter("Parse JSON"),T},m.prototype._unpackBinaryAsync=function(c){var T=this;return this._startPerformanceCounter("Unpack Binary"),c.loadAsync(20).then(function(){var A=c.readUint32();if(A!==1179937895)throw new Error("Unexpected magic: "+A);var S=c.readUint32();T.loggingEnabled&&T._log("Binary version: "+S);var g,l=c.readUint32();if(c.buffer.byteLength!==0&&l!==c.buffer.byteLength)throw new Error("Length in header does not match actual data length: "+l+" != "+c.buffer.byteLength);switch(S){case 1:g=T._unpackBinaryV1Async(c,l);break;case 2:g=T._unpackBinaryV2Async(c,l);break;default:throw new Error("Unsupported version: "+S)}return T._endPerformanceCounter("Unpack Binary"),g})},m.prototype._unpackBinaryV1Async=function(c,T){var A=c.readUint32(),S=c.readUint32();if(S!==0)throw new Error("Unexpected content format: "+S);var g=T-c.byteOffset,l={json:this._parseJson(c.readString(A)),bin:null};if(g!==0){var h=c.byteOffset;l.bin={readAsync:function(v,E){return c.buffer.readAsync(h+v,E)},byteLength:g}}return Promise.resolve(l)},m.prototype._unpackBinaryV2Async=function(c,T){var A=this,S=1313821514,g=5130562,l=c.readUint32();if(c.readUint32()!==S)throw new Error("First chunk format is not JSON");return c.byteOffset+l===T?c.loadAsync(l).then(function(){return{json:A._parseJson(c.readString(l)),bin:null}}):c.loadAsync(l+8).then(function(){var h={json:A._parseJson(c.readString(l)),bin:null},v=function(){var E=c.readUint32();switch(c.readUint32()){case S:throw new Error("Unexpected JSON chunk");case g:var D=c.byteOffset;h.bin={readAsync:function(w,N){return c.buffer.readAsync(D+w,N)},byteLength:E},c.skipBytes(E);break;default:c.skipBytes(E)}return c.byteOffset!==T?c.loadAsync(8).then(v):Promise.resolve(h)};return v()})},m._parseVersion=function(c){if(c==="1.0"||c==="1.0.1")return{major:1,minor:0};var T=(c+"").match(/^(\d+)\.(\d+)/);return T?{major:parseInt(T[1]),minor:parseInt(T[2])}:null},m._compareVersion=function(c,T){return c.major>T.major?1:c.majorT.minor?1:c.minor=0&&re.renderTargetTextures.splice(G,1)}if(this._opaqueRenderTarget&&(K=this._scene.customRenderTargets.indexOf(this._opaqueRenderTarget),this._opaqueRenderTarget.dispose()),this._opaqueRenderTarget=new _.RenderTargetTexture("opaqueSceneTexture",this._options.renderSize,this._scene,!0),this._opaqueRenderTarget.renderList=this._opaqueMeshesCache,this._opaqueRenderTarget.gammaSpace=!0,this._opaqueRenderTarget.lodGenerationScale=1,this._opaqueRenderTarget.lodGenerationOffset=-4,K>=0?this._scene.customRenderTargets.splice(K,0,this._opaqueRenderTarget):(K=this._scene.customRenderTargets.length,this._scene.customRenderTargets.push(this._opaqueRenderTarget)),this._scene.layers&&this._opaqueRenderTarget)for(var Q=0,oe=this._scene.layers;Q=0;Q--)if(G.push(R.a.Get(ee+"/ids/"+L[Q],$,L[Q])),G.length===this.maxLODsToLoad)return G;return G.push(K),G},ae.prototype._disposeTransformNode=function(ee){var K=this,$=new Array,L=ee.material;L&&$.push(L);for(var G=0,Q=ee.getChildMeshes();G0){var $=ee.metadata=ee.metadata||{};($.gltf=$.gltf||{}).extras=K.extras}},ae.prototype.dispose=function(){this._loader=null},ae.prototype.loadNodeAsync=function(ee,K,$){var L=this;return this._loader.loadNodeAsync(ee,K,function(G){L._assignExtras(G,K),$(G)})},ae.prototype.loadCameraAsync=function(ee,K,$){var L=this;return this._loader.loadCameraAsync(ee,K,function(G){L._assignExtras(G,K),$(G)})},ae.prototype.createMaterial=function(ee,K,$){var L=this._loader.createMaterial(ee,K,$);return this._assignExtras(L,K),L},ae}();R.b.RegisterExtension("ExtrasAsMetadata",function(ae){return new pe(ae)})},function(y,f,U){U.r(f),U.d(f,"GLTFBinaryExtension",function(){return H}),U.d(f,"GLTFLoaderBase",function(){return re}),U.d(f,"GLTFLoader",function(){return Y}),U.d(f,"GLTFLoaderExtension",function(){return k}),U.d(f,"EComponentType",function(){return _}),U.d(f,"EShaderType",function(){return R}),U.d(f,"EParameterType",function(){return u}),U.d(f,"ETextureWrapMode",function(){return M}),U.d(f,"ETextureFilterType",function(){return C}),U.d(f,"ETextureFormat",function(){return P}),U.d(f,"ECullingType",function(){return m}),U.d(f,"EBlendingFunction",function(){return c}),U.d(f,"GLTFUtils",function(){return g}),U.d(f,"GLTFMaterialsCommonExtension",function(){return Z});var _,R,u,M,C,P,m,c,T=U(4);(function(W){W[W.BYTE=5120]="BYTE",W[W.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",W[W.SHORT=5122]="SHORT",W[W.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",W[W.FLOAT=5126]="FLOAT"})(_||(_={})),function(W){W[W.FRAGMENT=35632]="FRAGMENT",W[W.VERTEX=35633]="VERTEX"}(R||(R={})),function(W){W[W.BYTE=5120]="BYTE",W[W.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",W[W.SHORT=5122]="SHORT",W[W.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",W[W.INT=5124]="INT",W[W.UNSIGNED_INT=5125]="UNSIGNED_INT",W[W.FLOAT=5126]="FLOAT",W[W.FLOAT_VEC2=35664]="FLOAT_VEC2",W[W.FLOAT_VEC3=35665]="FLOAT_VEC3",W[W.FLOAT_VEC4=35666]="FLOAT_VEC4",W[W.INT_VEC2=35667]="INT_VEC2",W[W.INT_VEC3=35668]="INT_VEC3",W[W.INT_VEC4=35669]="INT_VEC4",W[W.BOOL=35670]="BOOL",W[W.BOOL_VEC2=35671]="BOOL_VEC2",W[W.BOOL_VEC3=35672]="BOOL_VEC3",W[W.BOOL_VEC4=35673]="BOOL_VEC4",W[W.FLOAT_MAT2=35674]="FLOAT_MAT2",W[W.FLOAT_MAT3=35675]="FLOAT_MAT3",W[W.FLOAT_MAT4=35676]="FLOAT_MAT4",W[W.SAMPLER_2D=35678]="SAMPLER_2D"}(u||(u={})),function(W){W[W.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",W[W.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",W[W.REPEAT=10497]="REPEAT"}(M||(M={})),function(W){W[W.NEAREST=9728]="NEAREST",W[W.LINEAR=9728]="LINEAR",W[W.NEAREST_MIPMAP_NEAREST=9984]="NEAREST_MIPMAP_NEAREST",W[W.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",W[W.NEAREST_MIPMAP_LINEAR=9986]="NEAREST_MIPMAP_LINEAR",W[W.LINEAR_MIPMAP_LINEAR=9987]="LINEAR_MIPMAP_LINEAR"}(C||(C={})),function(W){W[W.ALPHA=6406]="ALPHA",W[W.RGB=6407]="RGB",W[W.RGBA=6408]="RGBA",W[W.LUMINANCE=6409]="LUMINANCE",W[W.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA"}(P||(P={})),function(W){W[W.FRONT=1028]="FRONT",W[W.BACK=1029]="BACK",W[W.FRONT_AND_BACK=1032]="FRONT_AND_BACK"}(m||(m={})),function(W){W[W.ZERO=0]="ZERO",W[W.ONE=1]="ONE",W[W.SRC_COLOR=768]="SRC_COLOR",W[W.ONE_MINUS_SRC_COLOR=769]="ONE_MINUS_SRC_COLOR",W[W.DST_COLOR=774]="DST_COLOR",W[W.ONE_MINUS_DST_COLOR=775]="ONE_MINUS_DST_COLOR",W[W.SRC_ALPHA=770]="SRC_ALPHA",W[W.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",W[W.DST_ALPHA=772]="DST_ALPHA",W[W.ONE_MINUS_DST_ALPHA=773]="ONE_MINUS_DST_ALPHA",W[W.CONSTANT_COLOR=32769]="CONSTANT_COLOR",W[W.ONE_MINUS_CONSTANT_COLOR=32770]="ONE_MINUS_CONSTANT_COLOR",W[W.CONSTANT_ALPHA=32771]="CONSTANT_ALPHA",W[W.ONE_MINUS_CONSTANT_ALPHA=32772]="ONE_MINUS_CONSTANT_ALPHA",W[W.SRC_ALPHA_SATURATE=776]="SRC_ALPHA_SATURATE"}(c||(c={}));var A,S=U(0),g=function(){function W(){}return W.SetMatrix=function(q,he,ge,me,_e){var be=null;if(ge.semantic==="MODEL"?be=he.getWorldMatrix():ge.semantic==="PROJECTION"?be=q.getProjectionMatrix():ge.semantic==="VIEW"?be=q.getViewMatrix():ge.semantic==="MODELVIEWINVERSETRANSPOSE"?be=S.Matrix.Transpose(he.getWorldMatrix().multiply(q.getViewMatrix()).invert()):ge.semantic==="MODELVIEW"?be=he.getWorldMatrix().multiply(q.getViewMatrix()):ge.semantic==="MODELVIEWPROJECTION"?be=he.getWorldMatrix().multiply(q.getTransformMatrix()):ge.semantic==="MODELINVERSE"?be=he.getWorldMatrix().invert():ge.semantic==="VIEWINVERSE"?be=q.getViewMatrix().invert():ge.semantic==="PROJECTIONINVERSE"?be=q.getProjectionMatrix().invert():ge.semantic==="MODELVIEWINVERSE"?be=he.getWorldMatrix().multiply(q.getViewMatrix()).invert():ge.semantic==="MODELVIEWPROJECTIONINVERSE"?be=he.getWorldMatrix().multiply(q.getTransformMatrix()).invert():ge.semantic==="MODELINVERSETRANSPOSE"&&(be=S.Matrix.Transpose(he.getWorldMatrix().invert())),be)switch(ge.type){case u.FLOAT_MAT2:_e.setMatrix2x2(me,S.Matrix.GetAsMatrix2x2(be));break;case u.FLOAT_MAT3:_e.setMatrix3x3(me,S.Matrix.GetAsMatrix3x3(be));break;case u.FLOAT_MAT4:_e.setMatrix(me,be)}},W.SetUniform=function(q,he,ge,me){switch(me){case u.FLOAT:return q.setFloat(he,ge),!0;case u.FLOAT_VEC2:return q.setVector2(he,S.Vector2.FromArray(ge)),!0;case u.FLOAT_VEC3:return q.setVector3(he,S.Vector3.FromArray(ge)),!0;case u.FLOAT_VEC4:return q.setVector4(he,S.Vector4.FromArray(ge)),!0;default:return!1}},W.GetWrapMode=function(q){switch(q){case M.CLAMP_TO_EDGE:return S.Texture.CLAMP_ADDRESSMODE;case M.MIRRORED_REPEAT:return S.Texture.MIRROR_ADDRESSMODE;case M.REPEAT:default:return S.Texture.WRAP_ADDRESSMODE}},W.GetByteStrideFromType=function(q){switch(q.type){case"VEC2":return 2;case"VEC3":return 3;case"VEC4":case"MAT2":return 4;case"MAT3":return 9;case"MAT4":return 16;default:return 1}},W.GetTextureFilterMode=function(q){switch(q){case C.LINEAR:case C.LINEAR_MIPMAP_NEAREST:case C.LINEAR_MIPMAP_LINEAR:return S.Texture.TRILINEAR_SAMPLINGMODE;case C.NEAREST:case C.NEAREST_MIPMAP_NEAREST:return S.Texture.NEAREST_SAMPLINGMODE;default:return S.Texture.BILINEAR_SAMPLINGMODE}},W.GetBufferFromBufferView=function(q,he,ge,me,_e){ge=he.byteOffset+ge;var be=q.loadedBufferViews[he.buffer];if(ge+me>be.byteLength)throw new Error("Buffer access is out of range");var Pe=be.buffer;switch(ge+=be.byteOffset,_e){case _.BYTE:return new Int8Array(Pe,ge,me);case _.UNSIGNED_BYTE:return new Uint8Array(Pe,ge,me);case _.SHORT:return new Int16Array(Pe,ge,me);case _.UNSIGNED_SHORT:return new Uint16Array(Pe,ge,me);default:return new Float32Array(Pe,ge,me)}},W.GetBufferFromAccessor=function(q,he){var ge=q.bufferViews[he.bufferView],me=he.count*W.GetByteStrideFromType(he);return W.GetBufferFromBufferView(q,ge,he.byteOffset,me,he.componentType)},W.DecodeBufferToText=function(q){for(var he="",ge=q.byteLength,me=0;me=this._maxPos},W}(),v=["MODEL","VIEW","PROJECTION","MODELVIEW","MODELVIEWPROJECTION","JOINTMATRIX"],E=["world","view","projection","worldView","worldViewProjection","mBones"],D=["translation","rotation","scale"],w=["position","rotationQuaternion","scaling"],N=function(W,q,he){for(var ge in W){var me=W[ge];he[q][ge]=me}},I=function(W){if(W)for(var q=0;q0&&(We=ne(_e,me))&&be.indexOf(We)===-1&&be.push(We),new S.Bone(ye.jointName||"",ge,We,$e).id=me}}else S.Tools.Warn("Joint named "+q.jointNames[Pe]+" does not exist")}var ct=ge.bones;for(ge.bones=[],Pe=0;Pe1?(_e=new S.MultiMaterial("multimat"+ge,W.scene)).subMaterials=be:_e=new S.StandardMaterial("multimat"+ge,W.scene),be.length===1&&(_e=be[0]),me.material||(me.material=_e),new S.Geometry(ge,W.scene,Pe,!1,me),me.computeWorldMatrix(!0),W.scene._blockEntityCollection=!1,me.subMeshes=[];var Zt=0;for(je=0;je0&&W.importMeshesNames.indexOf(q.name||"")===-1)return null;if(q.skin){if(q.meshes){var _e=W.skins[q.skin];(be=ae(W,q,q.meshes,he,q.babylonNode)).skeleton=W.scene.getLastSkeletonByID(q.skin),be.skeleton===null&&(be.skeleton=pe(W,_e,0,_e.babylonSkeleton,q.skin),_e.babylonSkeleton||(_e.babylonSkeleton=be.skeleton)),me=be}}else if(q.meshes){var be;me=be=ae(W,q,q.mesh?[q.mesh]:q.meshes,he,q.babylonNode)}else if(!q.light||q.babylonNode||W.importOnlyMeshes){if(q.camera&&!q.babylonNode&&!W.importOnlyMeshes){var Pe=W.cameras[q.camera];if(Pe){if(W.scene._blockEntityCollection=W.forAssetContainer,Pe.type==="orthographic"){var ye=new S.FreeCamera(q.camera,S.Vector3.Zero(),W.scene,!1);ye.name=q.name||"",ye.mode=S.Camera.ORTHOGRAPHIC_CAMERA,ye.attachControl(),me=ye}else if(Pe.type==="perspective"){var Be=Pe[Pe.type],ke=new S.FreeCamera(q.camera,S.Vector3.Zero(),W.scene,!1);ke.name=q.name||"",ke.attachControl(),Be.aspectRatio||(Be.aspectRatio=W.scene.getEngine().getRenderWidth()/W.scene.getEngine().getRenderHeight()),Be.znear&&Be.zfar&&(ke.maxZ=Be.zfar,ke.minZ=Be.znear),me=ke}W.scene._blockEntityCollection=!1}}}else{var We=W.lights[q.light];if(We){if(We.type==="ambient"){var je=We[We.type],He=new S.HemisphericLight(q.light,S.Vector3.Zero(),W.scene);He.name=q.name||"",je.color&&(He.diffuse=S.Color3.FromArray(je.color)),me=He}else if(We.type==="directional"){var Qe=We[We.type],Ge=new S.DirectionalLight(q.light,S.Vector3.Zero(),W.scene);Ge.name=q.name||"",Qe.color&&(Ge.diffuse=S.Color3.FromArray(Qe.color)),me=Ge}else if(We.type==="point"){var nt=We[We.type],$e=new S.PointLight(q.light,S.Vector3.Zero(),W.scene);$e.name=q.name||"",nt.color&&($e.diffuse=S.Color3.FromArray(nt.color)),me=$e}else if(We.type==="spot"){var ct=We[We.type],st=new S.SpotLight(q.light,S.Vector3.Zero(),S.Vector3.Zero(),0,0,W.scene);st.name=q.name||"",ct.color&&(st.diffuse=S.Color3.FromArray(ct.color)),ct.fallOfAngle&&(st.angle=ct.fallOfAngle),ct.fallOffExponent&&(st.exponent=ct.fallOffExponent),me=st}}}if(!q.jointName){if(q.babylonNode)return q.babylonNode;if(me===null){W.scene._blockEntityCollection=W.forAssetContainer;var mt=new S.Mesh(q.name||"",W.scene);W.scene._blockEntityCollection=!1,q.babylonNode=mt,me=mt}}if(me!==null){if(q.matrix&&me instanceof S.Mesh)(function(Pt,Ot,on){if(Ot.matrix){var Zt=new S.Vector3(0,0,0),tn=new S.Quaternion,De=new S.Vector3(0,0,0);S.Matrix.FromArray(Ot.matrix).decompose(De,tn,Zt),ee(Pt,Zt,tn,De)}else Ot.translation&&Ot.rotation&&Ot.scale&&ee(Pt,S.Vector3.FromArray(Ot.translation),S.Quaternion.FromArray(Ot.rotation),S.Vector3.FromArray(Ot.scale));Pt.computeWorldMatrix(!0)})(me,q);else{var St=q.translation||[0,0,0],wt=q.rotation||[0,0,0,1],It=q.scale||[1,1,1];ee(me,S.Vector3.FromArray(St),S.Quaternion.FromArray(wt),S.Vector3.FromArray(It))}me.updateCache(!0),q.babylonNode=me}return me},$=function(W,q,he,ge){ge===void 0&&(ge=!1);var me=W.nodes[q],_e=null;if(ge=!(W.importOnlyMeshes&&!ge&&W.importMeshesNames)||W.importMeshesNames.indexOf(me.name||"")!==-1||W.importMeshesNames.length===0,!me.jointName&&ge&&(_e=K(W,me,q))!==null&&(_e.id=q,_e.parent=he),me.children)for(var be=0;be=0?h.substring(0,v):h;E=E.toLowerCase();var D=v>=0?h.substring(v+1).trim():"";E==="newmtl"?(g&&this.materials.push(g),C._blockEntityCollection=c,g=new _.StandardMaterial(D,C),C._blockEntityCollection=!1):E==="kd"&&g?(T=D.split(S,3).map(parseFloat),g.diffuseColor=_.Color3.FromArray(T)):E==="ka"&&g?(T=D.split(S,3).map(parseFloat),g.ambientColor=_.Color3.FromArray(T)):E==="ks"&&g?(T=D.split(S,3).map(parseFloat),g.specularColor=_.Color3.FromArray(T)):E==="ke"&&g?(T=D.split(S,3).map(parseFloat),g.emissiveColor=_.Color3.FromArray(T)):E==="ns"&&g?g.specularPower=parseFloat(D):E==="d"&&g?g.alpha=parseFloat(D):E==="map_ka"&&g?g.ambientTexture=M._getTexture(m,D,C):E==="map_kd"&&g?g.diffuseTexture=M._getTexture(m,D,C):E==="map_ks"&&g?g.specularTexture=M._getTexture(m,D,C):E==="map_ns"||(E==="map_bump"&&g?g.bumpTexture=M._getTexture(m,D,C):E==="map_d"&&g&&(g.opacityTexture=M._getTexture(m,D,C)))}}g&&this.materials.push(g)}},M._getTexture=function(C,P,m){if(!P)return null;var c=C;if(C==="file:"){var T=P.lastIndexOf("\\");T===-1&&(T=P.lastIndexOf("/")),c+=T>-1?P.substr(T+1):P}else c+=P;return new _.Texture(c,m,!1,M.INVERT_TEXTURE_Y)},M.INVERT_TEXTURE_Y=!0,M}(),u=function(){function M(C){this.name="obj",this.extensions=".obj",this.obj=/^o/,this.group=/^g/,this.mtllib=/^mtllib /,this.usemtl=/^usemtl /,this.smooth=/^s /,this.vertexPattern=/v(\s+[\d|\.|\+|\-|e|E]+){3,7}/,this.normalPattern=/vn(\s+[\d|\.|\+|\-|e|E]+)( +[\d|\.|\+|\-|e|E]+)( +[\d|\.|\+|\-|e|E]+)/,this.uvPattern=/vt(\s+[\d|\.|\+|\-|e|E]+)( +[\d|\.|\+|\-|e|E]+)/,this.facePattern1=/f\s+(([\d]{1,}[\s]?){3,})+/,this.facePattern2=/f\s+((([\d]{1,}\/[\d]{1,}[\s]?){3,})+)/,this.facePattern3=/f\s+((([\d]{1,}\/[\d]{1,}\/[\d]{1,}[\s]?){3,})+)/,this.facePattern4=/f\s+((([\d]{1,}\/\/[\d]{1,}[\s]?){3,})+)/,this.facePattern5=/f\s+(((-[\d]{1,}\/-[\d]{1,}\/-[\d]{1,}[\s]?){3,})+)/,this._forAssetContainer=!1,this._meshLoadOptions=C||M.currentMeshLoadOptions}return Object.defineProperty(M,"INVERT_TEXTURE_Y",{get:function(){return R.INVERT_TEXTURE_Y},set:function(C){R.INVERT_TEXTURE_Y=C},enumerable:!1,configurable:!0}),Object.defineProperty(M,"currentMeshLoadOptions",{get:function(){return{ComputeNormals:M.COMPUTE_NORMALS,ImportVertexColors:M.IMPORT_VERTEX_COLORS,InvertY:M.INVERT_Y,InvertTextureY:M.INVERT_TEXTURE_Y,UVScaling:M.UV_SCALING,MaterialLoadingFailsSilently:M.MATERIAL_LOADING_FAILS_SILENTLY,OptimizeWithUV:M.OPTIMIZE_WITH_UV,SkipMaterials:M.SKIP_MATERIALS}},enumerable:!1,configurable:!0}),M.prototype._loadMTL=function(C,P,m,c){var T=_.Tools.BaseUrl+P+C;_.Tools.LoadFile(T,m,void 0,void 0,!1,function(A,S){c(T,S)})},M.prototype.createPlugin=function(){return new M(M.currentMeshLoadOptions)},M.prototype.canDirectLoad=function(C){return!1},M.prototype.importMeshAsync=function(C,P,m,c,T,A){return this._parseSolid(C,P,m,c).then(function(S){return{meshes:S,particleSystems:[],skeletons:[],animationGroups:[],transformNodes:[],geometries:[],lights:[]}})},M.prototype.loadAsync=function(C,P,m,c,T){return this.importMeshAsync(null,C,P,m,c).then(function(){})},M.prototype.loadAssetContainerAsync=function(C,P,m,c,T){var A=this;return this._forAssetContainer=!0,this.importMeshAsync(null,C,P,m).then(function(S){var g=new _.AssetContainer(C);return S.meshes.forEach(function(l){return g.meshes.push(l)}),S.meshes.forEach(function(l){var h=l.material;h&&g.materials.indexOf(h)==-1&&(g.materials.push(h),h.getActiveTextures().forEach(function(v){g.textures.indexOf(v)==-1&&g.textures.push(v)}))}),A._forAssetContainer=!1,g}).catch(function(S){throw A._forAssetContainer=!1,S})},M.prototype._parseSolid=function(C,P,m,c){for(var T,A=this,S=[],g=[],l=[],h=[],v=[],E=[],D=[],w=[],N=[],I=[],V=[],X=0,j=!1,ne=[],te=[],de=[],pe=[],ae=[],ee="",K="",$=new R,L=1,G=!0,Q=new _.Color4(.5,.5,.5,1),oe=function(Ge,nt,$e,ct,st,mt,St){var wt;(wt=A._meshLoadOptions.OptimizeWithUV?function(It,Pt){It[Pt[0]]||(It[Pt[0]]={normals:[],idx:[],uv:[]});var Ot=It[Pt[0]].normals.indexOf(Pt[1]);return Ot!=1&&Pt[2]===It[Pt[0]].uv[Ot]?It[Pt[0]].idx[Ot]:-1}(V,[Ge,$e,nt]):function(It,Pt){It[Pt[0]]||(It[Pt[0]]={normals:[],idx:[]});var Ot=It[Pt[0]].normals.indexOf(Pt[1]);return Ot===-1?-1:It[Pt[0]].idx[Ot]}(V,[Ge,$e]))===-1?(E.push(D.length),D.push(ct),w.push(st),I.push(mt),St!==void 0&&N.push(St),V[Ge].normals.push($e),V[Ge].idx.push(X++),A._meshLoadOptions.OptimizeWithUV&&V[Ge].uv.push(nt)):E.push(wt)},re=function(){for(var Ge=0;Ge0&&(T=v[v.length-1],re(),E.reverse(),T.indices=E.slice(),T.positions=ne.slice(),T.normals=de.slice(),T.uvs=pe.slice(),A._meshLoadOptions.ImportVertexColors===!0&&(T.colors=te.slice()),E=[],ne=[],te=[],de=[],pe=[])},ge=m.split(` +`),me=0;me=7?h.push(new _.Color4(parseFloat(_e[4]),parseFloat(_e[5]),parseFloat(_e[6]),_e.length===7||_e[7]===void 0?1:parseFloat(_e[7]))):h.push(Q));else if((_e=this.normalPattern.exec(be))!==null)g.push(new _.Vector3(parseFloat(_e[1]),parseFloat(_e[2]),parseFloat(_e[3])));else if((_e=this.uvPattern.exec(be))!==null)l.push(new _.Vector2(parseFloat(_e[1])*M.UV_SCALING.x,parseFloat(_e[2])*M.UV_SCALING.y));else if((_e=this.facePattern3.exec(be))!==null)Z(_e[1].trim().split(" "),1);else if((_e=this.facePattern4.exec(be))!==null)W(_e[1].trim().split(" "),1);else if((_e=this.facePattern5.exec(be))!==null)q(_e[1].trim().split(" "),1);else if((_e=this.facePattern2.exec(be))!==null)H(_e[1].trim().split(" "),1);else if((_e=this.facePattern1.exec(be))!==null)k(_e[1].trim().split(" "),1);else if(this.group.test(be)||this.obj.test(be)){var Pe={name:be.substring(2).trim(),indices:void 0,positions:void 0,normals:void 0,uvs:void 0,colors:void 0,materialName:""};he(),v.push(Pe),j=!0,G=!0,L=1}else this.usemtl.test(be)?(ee=be.substring(7).trim(),(!G||!j)&&(he(),Pe={name:"mesh_mm"+L.toString(),indices:void 0,positions:void 0,normals:void 0,uvs:void 0,colors:void 0,materialName:ee},L++,v.push(Pe),j=!0),j&&G&&(v[v.length-1].materialName=ee,G=!1)):this.mtllib.test(be)?K=be.substring(7).trim():this.smooth.test(be)||console.log("Unhandled expression at line : "+be)}j&&(T=v[v.length-1],E.reverse(),re(),T.indices=E,T.positions=ne,T.normals=de,T.uvs=pe,this._meshLoadOptions.ImportVertexColors===!0&&(T.colors=te)),j||(E.reverse(),re(),v.push({name:_.Geometry.RandomId(),indices:E,positions:ne,colors:te,normals:de,uvs:pe,materialName:ee}));for(var ye=[],Be=new Array,ke=0;ke-1;)St.push(st),mt=st+1;if(st===-1&&St.length===0)$.materials[ct].dispose();else for(var wt=0;wt127)return!0;return!1},u.prototype._parseBinary=function(M,C){for(var P=new DataView(C),m=P.getUint32(80,!0),c=0,T=new Float32Array(3*m*3),A=new Float32Array(3*m*3),S=new Uint32Array(3*m),g=0,l=0;l-1||(P.GLTF2[c]=M[c])}}).call(this,U(5))},function(y,f,U){U.r(f),function(_){var R=U(10);U.d(f,"MTLFileLoader",function(){return R.MTLFileLoader}),U.d(f,"OBJFileLoader",function(){return R.OBJFileLoader});var u=_!==void 0?_:typeof window<"u"?window:void 0;if(u!==void 0)for(var M in R)u.BABYLON[M]=R[M]}.call(this,U(5))},function(y,f,U){U.r(f),function(_){var R=U(11);U.d(f,"STLFileLoader",function(){return R.STLFileLoader});var u=_!==void 0?_:typeof window<"u"?window:void 0;if(u!==void 0)for(var M in R)u.BABYLON[M]=R[M]}.call(this,U(5))},,,,function(y,f,U){U.r(f),U.d(f,"GLTFLoaderCoordinateSystemMode",function(){return _.c}),U.d(f,"GLTFLoaderAnimationStartMode",function(){return _.b}),U.d(f,"GLTFLoaderState",function(){return _.d}),U.d(f,"GLTFFileLoader",function(){return _.a}),U.d(f,"GLTFValidation",function(){return _.e}),U.d(f,"GLTF1",function(){return R.a}),U.d(f,"GLTF2",function(){return u.a}),U.d(f,"MTLFileLoader",function(){return M.MTLFileLoader}),U.d(f,"OBJFileLoader",function(){return M.OBJFileLoader}),U.d(f,"STLFileLoader",function(){return C.STLFileLoader}),U(2),U(3),U(8),U(9),U(10),U(11);var _=U(12),R=U(13),u=U(14),M=U(15),C=U(16)}])})})(pl);function kv(ft){let Ze,Ie,y,f;return y=new fl({}),{c(){Ze=hr("div"),Ie=hr("div"),Mi(y.$$.fragment),Lo(Ie,"class","h-10 dark:text-white opacity-50"),Lo(Ze,"class","h-full min-h-[16rem] flex justify-center items-center")},m(U,_){bn(U,Ze,_),ol(Ze,Ie),Ii(y,Ie,null),f=!0},p:Do,i(U){f||(Fn(y.$$.fragment,U),f=!0)},o(U){wn(y.$$.fragment,U),f=!1},d(U){U&&yn(Ze),Di(y)}}}function Gv(ft){let Ze;return{c(){Ze=hr("canvas"),Lo(Ze,"class","w-full h-full object-contain")},m(Ie,y){bn(Ie,Ze,y),ft[5](Ze)},p:Do,i:Do,o:Do,d(Ie){Ie&&yn(Ze),ft[5](null)}}}function zv(ft){let Ze,Ie,y,f,U,_;Ze=new Of({props:{show_label:ft[2],Icon:fl,label:ft[1]||"3D Model"}});const R=[Gv,kv],u=[];function M(C,P){return C[0]?0:1}return y=M(ft),f=u[y]=R[y](ft),{c(){Mi(Ze.$$.fragment),Ie=qr(),f.c(),U=ll()},m(C,P){Ii(Ze,C,P),bn(C,Ie,P),u[y].m(C,P),bn(C,U,P),_=!0},p(C,[P]){const m={};P&4&&(m.show_label=C[2]),P&2&&(m.label=C[1]||"3D Model"),Ze.$set(m);let c=y;y=M(C),y===c?u[y].p(C,P):(ul(),wn(u[c],1,1,()=>{u[c]=null}),hl(),f=u[y],f?f.p(C,P):(f=u[y]=R[y](C),f.c()),Fn(f,1),f.m(U.parentNode,U))},i(C){_||(Fn(Ze.$$.fragment,C),Fn(f),_=!0)},o(C){wn(Ze.$$.fragment,C),wn(f),_=!1},d(C){Di(Ze,C),C&&yn(Ie),u[y].d(C),C&&yn(U)}}}function jv(ft,Ze,Ie){let{value:y}=Ze,{clearColor:f}=Ze,{label:U=""}=Ze,{show_label:_}=Ze;pl.exports.OBJFileLoader.IMPORT_VERTEX_COLORS=!0;let R,u,M;Cf(()=>{M=new zn.exports.Engine(R,!0),window.addEventListener("resize",()=>{M?.resize()})}),Rf(()=>{u&&(u.dispose(),M?.stopRenderLoop(),M?.dispose(),M=null,M=new zn.exports.Engine(R,!0),window.addEventListener("resize",()=>{M?.resize()})),C()});function C(){if(u=new zn.exports.Scene(M),u.createDefaultCameraOrLight(),u.clearColor=f?u.clearColor=new zn.exports.Color4(f[0],f[1],f[2],f[3]):new zn.exports.Color4(.2,.2,.2,1),M?.runRenderLoop(()=>{u.render()}),!y)return;let m;if(y.is_file)m=y.data;else{let c=y.data,T=zn.exports.Tools.DecodeBase64(c),A=new Blob([T]);m=URL.createObjectURL(A)}zn.exports.SceneLoader.Append("",m,u,()=>{u.createDefaultCamera(!0,!0,!0)},void 0,void 0,"."+y.name.split(".")[1])}function P(m){dl[m?"unshift":"push"](()=>{R=m,Ie(3,R)})}return ft.$$set=m=>{"value"in m&&Ie(0,y=m.value),"clearColor"in m&&Ie(4,f=m.clearColor),"label"in m&&Ie(1,U=m.label),"show_label"in m&&Ie(2,_=m.show_label)},[y,U,_,R,f,P]}class Hv extends al{constructor(Ze){super(),sl(this,Ze,jv,zv,cl,{value:0,clearColor:4,label:1,show_label:2})}}function Wv(ft){let Ze,Ie,y,f,U;return Ie=new Vv({props:{absolute:!0}}),Ie.$on("clear",ft[9]),{c(){Ze=hr("div"),Mi(Ie.$$.fragment),y=qr(),f=hr("canvas"),Lo(f,"class","w-full h-full object-contain"),Lo(Ze,"class","input-model w-full h-60 flex justify-center items-center bg-gray-200 dark:bg-gray-600 relative")},m(_,R){bn(_,Ze,R),Ii(Ie,Ze,null),ol(Ze,y),ol(Ze,f),ft[11](f),U=!0},p:Do,i(_){U||(Fn(Ie.$$.fragment,_),U=!0)},o(_){wn(Ie.$$.fragment,_),U=!1},d(_){_&&yn(Ze),Di(Ie),ft[11](null)}}}function Xv(ft){let Ze,Ie,y;function f(_){ft[10](_)}let U={filetype:".obj, .gltf, .glb",$$slots:{default:[Yv]},$$scope:{ctx:ft}};return ft[6]!==void 0&&(U.dragging=ft[6]),Ze=new Uv({props:U}),dl.push(()=>Rv(Ze,"dragging",f)),Ze.$on("load",ft[8]),{c(){Mi(Ze.$$.fragment)},m(_,R){Ii(Ze,_,R),y=!0},p(_,R){const u={};R&131086&&(u.$$scope={dirty:R,ctx:_}),!Ie&&R&64&&(Ie=!0,u.dragging=_[6],Ov(()=>Ie=!1)),Ze.$set(u)},i(_){y||(Fn(Ze.$$.fragment,_),y=!0)},o(_){wn(Ze.$$.fragment,_),y=!1},d(_){Di(Ze,_)}}}function Yv(ft){let Ze,Ie,y,f,U,_,R,u,M;return{c(){Ze=Io(ft[1]),Ie=qr(),y=hr("br"),f=Io("- "),U=Io(ft[2]),_=Io(" -"),R=hr("br"),u=qr(),M=Io(ft[3])},m(C,P){bn(C,Ze,P),bn(C,Ie,P),bn(C,y,P),bn(C,f,P),bn(C,U,P),bn(C,_,P),bn(C,R,P),bn(C,u,P),bn(C,M,P)},p(C,P){P&2&&rl(Ze,C[1]),P&4&&rl(U,C[2]),P&8&&rl(M,C[3])},d(C){C&&yn(Ze),C&&yn(Ie),C&&yn(y),C&&yn(f),C&&yn(U),C&&yn(_),C&&yn(R),C&&yn(u),C&&yn(M)}}}function Kv(ft){let Ze,Ie,y,f,U,_;Ze=new Of({props:{show_label:ft[5],Icon:fl,label:ft[4]||"3D Model"}});const R=[Xv,Wv],u=[];function M(C,P){return C[0]===null?0:1}return y=M(ft),f=u[y]=R[y](ft),{c(){Mi(Ze.$$.fragment),Ie=qr(),f.c(),U=ll()},m(C,P){Ii(Ze,C,P),bn(C,Ie,P),u[y].m(C,P),bn(C,U,P),_=!0},p(C,[P]){const m={};P&32&&(m.show_label=C[5]),P&16&&(m.label=C[4]||"3D Model"),Ze.$set(m);let c=y;y=M(C),y===c?u[y].p(C,P):(ul(),wn(u[c],1,1,()=>{u[c]=null}),hl(),f=u[y],f?f.p(C,P):(f=u[y]=R[y](C),f.c()),Fn(f,1),f.m(U.parentNode,U))},i(C){_||(Fn(Ze.$$.fragment,C),Fn(f),_=!0)},o(C){wn(Ze.$$.fragment,C),wn(f),_=!1},d(C){Di(Ze,C),C&&yn(Ie),u[y].d(C),C&&yn(U)}}}function Qv(ft,Ze,Ie){let{value:y}=Ze,{drop_text:f="Drop a file"}=Ze,{or_text:U="or"}=Ze,{upload_text:_="click to upload"}=Ze,{label:R=""}=Ze,{show_label:u}=Ze;Cf(()=>{y!=null&&S()}),Rf(()=>{y!=null&&y.is_file&&S()});async function M({detail:h}){Ie(0,y=h),await Pf(),P("change",y),S()}async function C(){T&&A&&(T.dispose(),A.dispose()),Ie(0,y=null),await Pf(),P("clear")}const P=Cv();let m=!1;pl.exports.OBJFileLoader.IMPORT_VERTEX_COLORS=!0;let c,T,A;function S(){if(T&&!T.isDisposed&&A&&(T.dispose(),A.dispose()),A=new zn.exports.Engine(c,!0),T=new zn.exports.Scene(A),T.createDefaultCameraOrLight(),T.clearColor=new zn.exports.Color4(.2,.2,.2,1),A.runRenderLoop(()=>{T.render()}),window.addEventListener("resize",()=>{A.resize()}),!y)return;let h;if(y.is_file)h=y.data;else{let v=y.data,E=zn.exports.Tools.DecodeBase64(v),D=new Blob([E]);h=URL.createObjectURL(D)}zn.exports.SceneLoader.Append(h,"",T,()=>{T.createDefaultCamera(!0,!0,!0)},void 0,void 0,"."+y.name.split(".")[1])}function g(h){m=h,Ie(6,m)}function l(h){dl[h?"unshift":"push"](()=>{c=h,Ie(7,c)})}return ft.$$set=h=>{"value"in h&&Ie(0,y=h.value),"drop_text"in h&&Ie(1,f=h.drop_text),"or_text"in h&&Ie(2,U=h.or_text),"upload_text"in h&&Ie(3,_=h.upload_text),"label"in h&&Ie(4,R=h.label),"show_label"in h&&Ie(5,u=h.show_label)},ft.$$.update=()=>{ft.$$.dirty&64&&P("drag",m)},[y,f,U,_,R,u,m,c,M,C,g,l]}class qv extends al{constructor(Ze){super(),sl(this,Ze,Qv,Kv,cl,{value:0,drop_text:1,or_text:2,upload_text:3,label:4,show_label:5})}}function Zv(ft){let Ze,Ie;return Ze=new Hv({props:{value:ft[8],clearColor:ft[4],label:ft[6],show_label:ft[7]}}),{c(){Mi(Ze.$$.fragment)},m(y,f){Ii(Ze,y,f),Ie=!0},p(y,f){const U={};f&256&&(U.value=y[8]),f&16&&(U.clearColor=y[4]),f&64&&(U.label=y[6]),f&128&&(U.show_label=y[7]),Ze.$set(U)},i(y){Ie||(Fn(Ze.$$.fragment,y),Ie=!0)},o(y){wn(Ze.$$.fragment,y),Ie=!1},d(y){Di(Ze,y)}}}function Jv(ft){let Ze,Ie;return Ze=new qv({props:{label:ft[6],show_label:ft[7],value:ft[8],drop_text:ft[10]("interface.drop_file"),or_text:ft[10]("or"),upload_text:ft[10]("interface.click_to_upload")}}),Ze.$on("change",ft[13]),Ze.$on("drag",ft[14]),Ze.$on("change",ft[15]),Ze.$on("clear",ft[16]),{c(){Mi(Ze.$$.fragment)},m(y,f){Ii(Ze,y,f),Ie=!0},p(y,f){const U={};f&64&&(U.label=y[6]),f&128&&(U.show_label=y[7]),f&256&&(U.value=y[8]),f&1024&&(U.drop_text=y[10]("interface.drop_file")),f&1024&&(U.or_text=y[10]("or")),f&1024&&(U.upload_text=y[10]("interface.click_to_upload")),Ze.$set(U)},i(y){Ie||(Fn(Ze.$$.fragment,y),Ie=!0)},o(y){wn(Ze.$$.fragment,y),Ie=!1},d(y){Di(Ze,y)}}}function $v(ft){let Ze,Ie,y,f,U,_;const R=[ft[5]];let u={};for(let m=0;m{C[A]=null}),hl()),~y?(f=C[y],f?f.p(m,c):(f=C[y]=M[y](m),f.c()),Fn(f,1),f.m(U.parentNode,U)):f=null)},i(m){_||(Fn(Ze.$$.fragment,m),Fn(f),_=!0)},o(m){wn(Ze.$$.fragment,m),wn(f),_=!1},d(m){Di(Ze,m),m&&yn(Ie),~y&&C[y].d(m),m&&yn(U)}}}function eb(ft){let Ze,Ie;return Ze=new Mv({props:{visible:ft[2],variant:ft[0]===null?"dashed":"solid",color:ft[9]?"green":"grey",padding:!1,elem_id:ft[1],$$slots:{default:[$v]},$$scope:{ctx:ft}}}),{c(){Mi(Ze.$$.fragment)},m(y,f){Ii(Ze,y,f),Ie=!0},p(y,[f]){const U={};f&4&&(U.visible=y[2]),f&1&&(U.variant=y[0]===null?"dashed":"solid"),f&512&&(U.color=y[9]?"green":"grey"),f&2&&(U.elem_id=y[1]),f&133113&&(U.$$scope={dirty:f,ctx:y}),Ze.$set(U)},i(y){Ie||(Fn(Ze.$$.fragment,y),Ie=!0)},o(y){wn(Ze.$$.fragment,y),Ie=!1},d(y){Di(Ze,y)}}}function tb(ft,Ze,Ie){let y;Iv(ft,Dv,v=>Ie(10,y=v));let{elem_id:f=""}=Ze,{visible:U=!0}=Ze,{value:_=null}=Ze,{mode:R}=Ze,{root:u}=Ze,{root_url:M}=Ze,{clearColor:C}=Ze,{loading_status:P}=Ze,{label:m}=Ze,{show_label:c}=Ze,T,A=!1;const S=({detail:v})=>Ie(0,_=v),g=({detail:v})=>Ie(9,A=v);function l(v){xf.call(this,ft,v)}function h(v){xf.call(this,ft,v)}return ft.$$set=v=>{"elem_id"in v&&Ie(1,f=v.elem_id),"visible"in v&&Ie(2,U=v.visible),"value"in v&&Ie(0,_=v.value),"mode"in v&&Ie(3,R=v.mode),"root"in v&&Ie(11,u=v.root),"root_url"in v&&Ie(12,M=v.root_url),"clearColor"in v&&Ie(4,C=v.clearColor),"loading_status"in v&&Ie(5,P=v.loading_status),"label"in v&&Ie(6,m=v.label),"show_label"in v&&Ie(7,c=v.show_label)},ft.$$.update=()=>{ft.$$.dirty&6145&&Ie(8,T=Bv(_,M??u))},[_,f,U,R,C,P,m,c,T,A,y,u,M,S,g,l,h]}class nb extends al{constructor(Ze){super(),sl(this,Ze,tb,eb,cl,{elem_id:1,visible:2,value:0,mode:3,root:11,root_url:12,clearColor:4,loading_status:5,label:6,show_label:7})}}var ub=nb;const hb=["static","dynamic"],db=ft=>({type:"{ name: string; data: string }",description:"file name and base64 data of Model3D object"});export{ub as Component,_b as ExampleComponent,db as document,hb as modes}; +//# sourceMappingURL=index.f20cf91a.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.f20cf91a.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.f20cf91a.js.map new file mode 100644 index 0000000000000000000000000000000000000000..a779d18a9e7d90addbedad13572e8d4303c7f614 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.f20cf91a.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.f20cf91a.js","sources":["../../../../ui/node_modules/.pnpm/babylonjs@4.2.2/node_modules/babylonjs/babylon.js","../../../../ui/node_modules/.pnpm/babylonjs-loaders@4.2.2/node_modules/babylonjs-loaders/babylonjs.loaders.min.js","../../../../ui/packages/model3D/src/Model3D.svelte","../../../../ui/packages/model3D/src/Model3DUpload.svelte","../../../../ui/packages/app/src/components/Model3D/Model3D.svelte","../../../../ui/packages/app/src/components/Model3D/index.ts"],"sourcesContent":["!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(\"babylonjs\",[],t):\"object\"==typeof exports?exports.babylonjs=t():e.BABYLON=t()}(\"undefined\"!=typeof self?self:\"undefined\"!=typeof global?global:this,(function(){return function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,\"a\",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p=\"\",i(i.s=169)}([function(e,t,i){\"use strict\";i.d(t,\"d\",(function(){return c})),i.d(t,\"e\",(function(){return l})),i.d(t,\"f\",(function(){return u})),i.d(t,\"b\",(function(){return h})),i.d(t,\"a\",(function(){return d})),i.d(t,\"c\",(function(){return p}));var n=i(14),r=i(28),o=i(44),a=i(11),s=i(74),c=function(){function e(e,t){void 0===e&&(e=0),void 0===t&&(t=0),this.x=e,this.y=t}return e.prototype.toString=function(){return\"{X: \"+this.x+\" Y: \"+this.y+\"}\"},e.prototype.getClassName=function(){return\"Vector2\"},e.prototype.getHashCode=function(){var e=0|this.x;return e=397*e^(0|this.y)},e.prototype.toArray=function(e,t){return void 0===t&&(t=0),e[t]=this.x,e[t+1]=this.y,this},e.prototype.fromArray=function(t,i){return void 0===i&&(i=0),e.FromArrayToRef(t,i,this),this},e.prototype.asArray=function(){var e=new Array;return this.toArray(e,0),e},e.prototype.copyFrom=function(e){return this.x=e.x,this.y=e.y,this},e.prototype.copyFromFloats=function(e,t){return this.x=e,this.y=t,this},e.prototype.set=function(e,t){return this.copyFromFloats(e,t)},e.prototype.add=function(t){return new e(this.x+t.x,this.y+t.y)},e.prototype.addToRef=function(e,t){return t.x=this.x+e.x,t.y=this.y+e.y,this},e.prototype.addInPlace=function(e){return this.x+=e.x,this.y+=e.y,this},e.prototype.addVector3=function(t){return new e(this.x+t.x,this.y+t.y)},e.prototype.subtract=function(t){return new e(this.x-t.x,this.y-t.y)},e.prototype.subtractToRef=function(e,t){return t.x=this.x-e.x,t.y=this.y-e.y,this},e.prototype.subtractInPlace=function(e){return this.x-=e.x,this.y-=e.y,this},e.prototype.multiplyInPlace=function(e){return this.x*=e.x,this.y*=e.y,this},e.prototype.multiply=function(t){return new e(this.x*t.x,this.y*t.y)},e.prototype.multiplyToRef=function(e,t){return t.x=this.x*e.x,t.y=this.y*e.y,this},e.prototype.multiplyByFloats=function(t,i){return new e(this.x*t,this.y*i)},e.prototype.divide=function(t){return new e(this.x/t.x,this.y/t.y)},e.prototype.divideToRef=function(e,t){return t.x=this.x/e.x,t.y=this.y/e.y,this},e.prototype.divideInPlace=function(e){return this.divideToRef(e,this)},e.prototype.negate=function(){return new e(-this.x,-this.y)},e.prototype.negateInPlace=function(){return this.x*=-1,this.y*=-1,this},e.prototype.negateToRef=function(e){return e.copyFromFloats(-1*this.x,-1*this.y)},e.prototype.scaleInPlace=function(e){return this.x*=e,this.y*=e,this},e.prototype.scale=function(t){var i=new e(0,0);return this.scaleToRef(t,i),i},e.prototype.scaleToRef=function(e,t){return t.x=this.x*e,t.y=this.y*e,this},e.prototype.scaleAndAddToRef=function(e,t){return t.x+=this.x*e,t.y+=this.y*e,this},e.prototype.equals=function(e){return e&&this.x===e.x&&this.y===e.y},e.prototype.equalsWithEpsilon=function(e,t){return void 0===t&&(t=r.a),e&&n.a.WithinEpsilon(this.x,e.x,t)&&n.a.WithinEpsilon(this.y,e.y,t)},e.prototype.floor=function(){return new e(Math.floor(this.x),Math.floor(this.y))},e.prototype.fract=function(){return new e(this.x-Math.floor(this.x),this.y-Math.floor(this.y))},e.prototype.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},e.prototype.lengthSquared=function(){return this.x*this.x+this.y*this.y},e.prototype.normalize=function(){var e=this.length();return 0===e||(this.x/=e,this.y/=e),this},e.prototype.clone=function(){return new e(this.x,this.y)},e.Zero=function(){return new e(0,0)},e.One=function(){return new e(1,1)},e.FromArray=function(t,i){return void 0===i&&(i=0),new e(t[i],t[i+1])},e.FromArrayToRef=function(e,t,i){i.x=e[t],i.y=e[t+1]},e.CatmullRom=function(t,i,n,r,o){var a=o*o,s=o*a;return new e(.5*(2*i.x+(-t.x+n.x)*o+(2*t.x-5*i.x+4*n.x-r.x)*a+(-t.x+3*i.x-3*n.x+r.x)*s),.5*(2*i.y+(-t.y+n.y)*o+(2*t.y-5*i.y+4*n.y-r.y)*a+(-t.y+3*i.y-3*n.y+r.y)*s))},e.Clamp=function(t,i,n){var r=t.x;r=(r=r>n.x?n.x:r)n.y?n.y:o)i.x?t.x:i.x,t.y>i.y?t.y:i.y)},e.Transform=function(t,i){var n=e.Zero();return e.TransformToRef(t,i,n),n},e.TransformToRef=function(e,t,i){var n=t.m,r=e.x*n[0]+e.y*n[4]+n[12],o=e.x*n[1]+e.y*n[5]+n[13];i.x=r,i.y=o},e.PointInTriangle=function(e,t,i,n){var r=.5*(-i.y*n.x+t.y*(-i.x+n.x)+t.x*(i.y-n.y)+i.x*n.y),o=r<0?-1:1,a=(t.y*n.x-t.x*n.y+(n.y-t.y)*e.x+(t.x-n.x)*e.y)*o,s=(t.x*i.y-t.y*i.x+(t.y-i.y)*e.x+(i.x-t.x)*e.y)*o;return a>0&&s>0&&a+s<2*r*o},e.Distance=function(t,i){return Math.sqrt(e.DistanceSquared(t,i))},e.DistanceSquared=function(e,t){var i=e.x-t.x,n=e.y-t.y;return i*i+n*n},e.Center=function(e,t){var i=e.add(t);return i.scaleInPlace(.5),i},e.DistanceOfPointFromSegment=function(t,i,n){var r=e.DistanceSquared(i,n);if(0===r)return e.Distance(t,i);var o=n.subtract(i),a=Math.max(0,Math.min(1,e.Dot(t.subtract(i),o)/r)),s=i.add(o.multiplyByFloats(a,a));return e.Distance(t,s)},e}(),l=function(){function e(e,t,i){void 0===e&&(e=0),void 0===t&&(t=0),void 0===i&&(i=0),this._isDirty=!0,this._x=e,this._y=t,this._z=i}return Object.defineProperty(e.prototype,\"x\",{get:function(){return this._x},set:function(e){this._x=e,this._isDirty=!0},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"y\",{get:function(){return this._y},set:function(e){this._y=e,this._isDirty=!0},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"z\",{get:function(){return this._z},set:function(e){this._z=e,this._isDirty=!0},enumerable:!1,configurable:!0}),e.prototype.toString=function(){return\"{X: \"+this._x+\" Y:\"+this._y+\" Z:\"+this._z+\"}\"},e.prototype.getClassName=function(){return\"Vector3\"},e.prototype.getHashCode=function(){var e=0|this._x;return e=397*(e=397*e^(0|this._y))^(0|this._z)},e.prototype.asArray=function(){var e=[];return this.toArray(e,0),e},e.prototype.toArray=function(e,t){return void 0===t&&(t=0),e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,this},e.prototype.fromArray=function(t,i){return void 0===i&&(i=0),e.FromArrayToRef(t,i,this),this},e.prototype.toQuaternion=function(){return h.RotationYawPitchRoll(this._y,this._x,this._z)},e.prototype.addInPlace=function(e){return this.addInPlaceFromFloats(e._x,e._y,e._z)},e.prototype.addInPlaceFromFloats=function(e,t,i){return this.x+=e,this.y+=t,this.z+=i,this},e.prototype.add=function(t){return new e(this._x+t._x,this._y+t._y,this._z+t._z)},e.prototype.addToRef=function(e,t){return t.copyFromFloats(this._x+e._x,this._y+e._y,this._z+e._z)},e.prototype.subtractInPlace=function(e){return this.x-=e._x,this.y-=e._y,this.z-=e._z,this},e.prototype.subtract=function(t){return new e(this._x-t._x,this._y-t._y,this._z-t._z)},e.prototype.subtractToRef=function(e,t){return this.subtractFromFloatsToRef(e._x,e._y,e._z,t)},e.prototype.subtractFromFloats=function(t,i,n){return new e(this._x-t,this._y-i,this._z-n)},e.prototype.subtractFromFloatsToRef=function(e,t,i,n){return n.copyFromFloats(this._x-e,this._y-t,this._z-i)},e.prototype.negate=function(){return new e(-this._x,-this._y,-this._z)},e.prototype.negateInPlace=function(){return this.x*=-1,this.y*=-1,this.z*=-1,this},e.prototype.negateToRef=function(e){return e.copyFromFloats(-1*this._x,-1*this._y,-1*this._z)},e.prototype.scaleInPlace=function(e){return this.x*=e,this.y*=e,this.z*=e,this},e.prototype.scale=function(t){return new e(this._x*t,this._y*t,this._z*t)},e.prototype.scaleToRef=function(e,t){return t.copyFromFloats(this._x*e,this._y*e,this._z*e)},e.prototype.scaleAndAddToRef=function(e,t){return t.addInPlaceFromFloats(this._x*e,this._y*e,this._z*e)},e.prototype.projectOnPlane=function(t,i){var n=e.Zero();return this.projectOnPlaneToRef(t,i,n),n},e.prototype.projectOnPlaneToRef=function(t,i,n){var r=t.normal,o=t.d,a=f.Vector3[0];this.subtractToRef(i,a),a.normalize();var s=e.Dot(a,r),c=-(e.Dot(i,r)+o)/s,l=a.scaleInPlace(c);i.addToRef(l,n)},e.prototype.equals=function(e){return e&&this._x===e._x&&this._y===e._y&&this._z===e._z},e.prototype.equalsWithEpsilon=function(e,t){return void 0===t&&(t=r.a),e&&n.a.WithinEpsilon(this._x,e._x,t)&&n.a.WithinEpsilon(this._y,e._y,t)&&n.a.WithinEpsilon(this._z,e._z,t)},e.prototype.equalsToFloats=function(e,t,i){return this._x===e&&this._y===t&&this._z===i},e.prototype.multiplyInPlace=function(e){return this.x*=e._x,this.y*=e._y,this.z*=e._z,this},e.prototype.multiply=function(e){return this.multiplyByFloats(e._x,e._y,e._z)},e.prototype.multiplyToRef=function(e,t){return t.copyFromFloats(this._x*e._x,this._y*e._y,this._z*e._z)},e.prototype.multiplyByFloats=function(t,i,n){return new e(this._x*t,this._y*i,this._z*n)},e.prototype.divide=function(t){return new e(this._x/t._x,this._y/t._y,this._z/t._z)},e.prototype.divideToRef=function(e,t){return t.copyFromFloats(this._x/e._x,this._y/e._y,this._z/e._z)},e.prototype.divideInPlace=function(e){return this.divideToRef(e,this)},e.prototype.minimizeInPlace=function(e){return this.minimizeInPlaceFromFloats(e._x,e._y,e._z)},e.prototype.maximizeInPlace=function(e){return this.maximizeInPlaceFromFloats(e._x,e._y,e._z)},e.prototype.minimizeInPlaceFromFloats=function(e,t,i){return ethis._x&&(this.x=e),t>this._y&&(this.y=t),i>this._z&&(this.z=i),this},e.prototype.isNonUniformWithinEpsilon=function(e){var t=Math.abs(this._x),i=Math.abs(this._y);if(!n.a.WithinEpsilon(t,i,e))return!0;var r=Math.abs(this._z);return!n.a.WithinEpsilon(t,r,e)||!n.a.WithinEpsilon(i,r,e)},Object.defineProperty(e.prototype,\"isNonUniform\",{get:function(){var e=Math.abs(this._x);return e!==Math.abs(this._y)||e!==Math.abs(this._z)},enumerable:!1,configurable:!0}),e.prototype.floor=function(){return new e(Math.floor(this._x),Math.floor(this._y),Math.floor(this._z))},e.prototype.fract=function(){return new e(this._x-Math.floor(this._x),this._y-Math.floor(this._y),this._z-Math.floor(this._z))},e.prototype.length=function(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z)},e.prototype.lengthSquared=function(){return this._x*this._x+this._y*this._y+this._z*this._z},e.prototype.normalize=function(){return this.normalizeFromLength(this.length())},e.prototype.reorderInPlace=function(e){var t=this;return\"xyz\"===(e=e.toLowerCase())||(f.Vector3[0].copyFrom(this),[\"x\",\"y\",\"z\"].forEach((function(i,n){t[i]=f.Vector3[0][e[n]]}))),this},e.prototype.rotateByQuaternionToRef=function(t,i){return t.toRotationMatrix(f.Matrix[0]),e.TransformCoordinatesToRef(this,f.Matrix[0],i),i},e.prototype.rotateByQuaternionAroundPointToRef=function(e,t,i){return this.subtractToRef(t,f.Vector3[0]),f.Vector3[0].rotateByQuaternionToRef(e,f.Vector3[0]),t.addToRef(f.Vector3[0],i),i},e.prototype.cross=function(t){return e.Cross(this,t)},e.prototype.normalizeFromLength=function(e){return 0===e||1===e?this:this.scaleInPlace(1/e)},e.prototype.normalizeToNew=function(){var t=new e(0,0,0);return this.normalizeToRef(t),t},e.prototype.normalizeToRef=function(e){var t=this.length();return 0===t||1===t?e.copyFromFloats(this._x,this._y,this._z):this.scaleToRef(1/t,e)},e.prototype.clone=function(){return new e(this._x,this._y,this._z)},e.prototype.copyFrom=function(e){return this.copyFromFloats(e._x,e._y,e._z)},e.prototype.copyFromFloats=function(e,t,i){return this.x=e,this.y=t,this.z=i,this},e.prototype.set=function(e,t,i){return this.copyFromFloats(e,t,i)},e.prototype.setAll=function(e){return this.x=this.y=this.z=e,this},e.GetClipFactor=function(t,i,n,r){var o=e.Dot(t,n)-r;return o/(o-(e.Dot(i,n)-r))},e.GetAngleBetweenVectors=function(t,i,n){var r=t.normalizeToRef(f.Vector3[1]),o=i.normalizeToRef(f.Vector3[2]),a=e.Dot(r,o),s=f.Vector3[3];return e.CrossToRef(r,o,s),e.Dot(s,n)>0?Math.acos(a):-Math.acos(a)},e.FromArray=function(t,i){return void 0===i&&(i=0),new e(t[i],t[i+1],t[i+2])},e.FromFloatArray=function(t,i){return e.FromArray(t,i)},e.FromArrayToRef=function(e,t,i){i.x=e[t],i.y=e[t+1],i.z=e[t+2]},e.FromFloatArrayToRef=function(t,i,n){return e.FromArrayToRef(t,i,n)},e.FromFloatsToRef=function(e,t,i,n){n.copyFromFloats(e,t,i)},e.Zero=function(){return new e(0,0,0)},e.One=function(){return new e(1,1,1)},e.Up=function(){return new e(0,1,0)},Object.defineProperty(e,\"UpReadOnly\",{get:function(){return e._UpReadOnly},enumerable:!1,configurable:!0}),Object.defineProperty(e,\"ZeroReadOnly\",{get:function(){return e._ZeroReadOnly},enumerable:!1,configurable:!0}),e.Down=function(){return new e(0,-1,0)},e.Forward=function(t){return void 0===t&&(t=!1),new e(0,0,t?-1:1)},e.Backward=function(t){return void 0===t&&(t=!1),new e(0,0,t?1:-1)},e.Right=function(){return new e(1,0,0)},e.Left=function(){return new e(-1,0,0)},e.TransformCoordinates=function(t,i){var n=e.Zero();return e.TransformCoordinatesToRef(t,i,n),n},e.TransformCoordinatesToRef=function(t,i,n){e.TransformCoordinatesFromFloatsToRef(t._x,t._y,t._z,i,n)},e.TransformCoordinatesFromFloatsToRef=function(e,t,i,n,r){var o=n.m,a=e*o[0]+t*o[4]+i*o[8]+o[12],s=e*o[1]+t*o[5]+i*o[9]+o[13],c=e*o[2]+t*o[6]+i*o[10]+o[14],l=1/(e*o[3]+t*o[7]+i*o[11]+o[15]);r.x=a*l,r.y=s*l,r.z=c*l},e.TransformNormal=function(t,i){var n=e.Zero();return e.TransformNormalToRef(t,i,n),n},e.TransformNormalToRef=function(e,t,i){this.TransformNormalFromFloatsToRef(e._x,e._y,e._z,t,i)},e.TransformNormalFromFloatsToRef=function(e,t,i,n,r){var o=n.m;r.x=e*o[0]+t*o[4]+i*o[8],r.y=e*o[1]+t*o[5]+i*o[9],r.z=e*o[2]+t*o[6]+i*o[10]},e.CatmullRom=function(t,i,n,r,o){var a=o*o,s=o*a;return new e(.5*(2*i._x+(-t._x+n._x)*o+(2*t._x-5*i._x+4*n._x-r._x)*a+(-t._x+3*i._x-3*n._x+r._x)*s),.5*(2*i._y+(-t._y+n._y)*o+(2*t._y-5*i._y+4*n._y-r._y)*a+(-t._y+3*i._y-3*n._y+r._y)*s),.5*(2*i._z+(-t._z+n._z)*o+(2*t._z-5*i._z+4*n._z-r._z)*a+(-t._z+3*i._z-3*n._z+r._z)*s))},e.Clamp=function(t,i,n){var r=new e;return e.ClampToRef(t,i,n,r),r},e.ClampToRef=function(e,t,i,n){var r=e._x;r=(r=r>i._x?i._x:r)i._y?i._y:o)i._z?i._z:a)this.x&&(this.x=e.x),e.y>this.y&&(this.y=e.y),e.z>this.z&&(this.z=e.z),e.w>this.w&&(this.w=e.w),this},e.prototype.floor=function(){return new e(Math.floor(this.x),Math.floor(this.y),Math.floor(this.z),Math.floor(this.w))},e.prototype.fract=function(){return new e(this.x-Math.floor(this.x),this.y-Math.floor(this.y),this.z-Math.floor(this.z),this.w-Math.floor(this.w))},e.prototype.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},e.prototype.lengthSquared=function(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w},e.prototype.normalize=function(){var e=this.length();return 0===e?this:this.scaleInPlace(1/e)},e.prototype.toVector3=function(){return new l(this.x,this.y,this.z)},e.prototype.clone=function(){return new e(this.x,this.y,this.z,this.w)},e.prototype.copyFrom=function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w,this},e.prototype.copyFromFloats=function(e,t,i,n){return this.x=e,this.y=t,this.z=i,this.w=n,this},e.prototype.set=function(e,t,i,n){return this.copyFromFloats(e,t,i,n)},e.prototype.setAll=function(e){return this.x=this.y=this.z=this.w=e,this},e.FromArray=function(t,i){return i||(i=0),new e(t[i],t[i+1],t[i+2],t[i+3])},e.FromArrayToRef=function(e,t,i){i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3]},e.FromFloatArrayToRef=function(t,i,n){e.FromArrayToRef(t,i,n)},e.FromFloatsToRef=function(e,t,i,n,r){r.x=e,r.y=t,r.z=i,r.w=n},e.Zero=function(){return new e(0,0,0,0)},e.One=function(){return new e(1,1,1,1)},e.Normalize=function(t){var i=e.Zero();return e.NormalizeToRef(t,i),i},e.NormalizeToRef=function(e,t){t.copyFrom(e),t.normalize()},e.Minimize=function(e,t){var i=e.clone();return i.minimizeInPlace(t),i},e.Maximize=function(e,t){var i=e.clone();return i.maximizeInPlace(t),i},e.Distance=function(t,i){return Math.sqrt(e.DistanceSquared(t,i))},e.DistanceSquared=function(e,t){var i=e.x-t.x,n=e.y-t.y,r=e.z-t.z,o=e.w-t.w;return i*i+n*n+r*r+o*o},e.Center=function(e,t){var i=e.add(t);return i.scaleInPlace(.5),i},e.TransformNormal=function(t,i){var n=e.Zero();return e.TransformNormalToRef(t,i,n),n},e.TransformNormalToRef=function(e,t,i){var n=t.m,r=e.x*n[0]+e.y*n[4]+e.z*n[8],o=e.x*n[1]+e.y*n[5]+e.z*n[9],a=e.x*n[2]+e.y*n[6]+e.z*n[10];i.x=r,i.y=o,i.z=a,i.w=e.w},e.TransformNormalFromFloatsToRef=function(e,t,i,n,r,o){var a=r.m;o.x=e*a[0]+t*a[4]+i*a[8],o.y=e*a[1]+t*a[5]+i*a[9],o.z=e*a[2]+t*a[6]+i*a[10],o.w=n},e.FromVector3=function(t,i){return void 0===i&&(i=0),new e(t._x,t._y,t._z,i)},e}(),h=function(){function e(e,t,i,n){void 0===e&&(e=0),void 0===t&&(t=0),void 0===i&&(i=0),void 0===n&&(n=1),this._isDirty=!0,this._x=e,this._y=t,this._z=i,this._w=n}return Object.defineProperty(e.prototype,\"x\",{get:function(){return this._x},set:function(e){this._x=e,this._isDirty=!0},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"y\",{get:function(){return this._y},set:function(e){this._y=e,this._isDirty=!0},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"z\",{get:function(){return this._z},set:function(e){this._z=e,this._isDirty=!0},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"w\",{get:function(){return this._w},set:function(e){this._w=e,this._isDirty=!0},enumerable:!1,configurable:!0}),e.prototype.toString=function(){return\"{X: \"+this._x+\" Y:\"+this._y+\" Z:\"+this._z+\" W:\"+this._w+\"}\"},e.prototype.getClassName=function(){return\"Quaternion\"},e.prototype.getHashCode=function(){var e=0|this._x;return e=397*(e=397*(e=397*e^(0|this._y))^(0|this._z))^(0|this._w)},e.prototype.asArray=function(){return[this._x,this._y,this._z,this._w]},e.prototype.equals=function(e){return e&&this._x===e._x&&this._y===e._y&&this._z===e._z&&this._w===e._w},e.prototype.equalsWithEpsilon=function(e,t){return void 0===t&&(t=r.a),e&&n.a.WithinEpsilon(this._x,e._x,t)&&n.a.WithinEpsilon(this._y,e._y,t)&&n.a.WithinEpsilon(this._z,e._z,t)&&n.a.WithinEpsilon(this._w,e._w,t)},e.prototype.clone=function(){return new e(this._x,this._y,this._z,this._w)},e.prototype.copyFrom=function(e){return this.x=e._x,this.y=e._y,this.z=e._z,this.w=e._w,this},e.prototype.copyFromFloats=function(e,t,i,n){return this.x=e,this.y=t,this.z=i,this.w=n,this},e.prototype.set=function(e,t,i,n){return this.copyFromFloats(e,t,i,n)},e.prototype.add=function(t){return new e(this._x+t._x,this._y+t._y,this._z+t._z,this._w+t._w)},e.prototype.addInPlace=function(e){return this._x+=e._x,this._y+=e._y,this._z+=e._z,this._w+=e._w,this},e.prototype.subtract=function(t){return new e(this._x-t._x,this._y-t._y,this._z-t._z,this._w-t._w)},e.prototype.scale=function(t){return new e(this._x*t,this._y*t,this._z*t,this._w*t)},e.prototype.scaleToRef=function(e,t){return t.x=this._x*e,t.y=this._y*e,t.z=this._z*e,t.w=this._w*e,this},e.prototype.scaleInPlace=function(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this},e.prototype.scaleAndAddToRef=function(e,t){return t.x+=this._x*e,t.y+=this._y*e,t.z+=this._z*e,t.w+=this._w*e,this},e.prototype.multiply=function(t){var i=new e(0,0,0,1);return this.multiplyToRef(t,i),i},e.prototype.multiplyToRef=function(e,t){var i=this._x*e._w+this._y*e._z-this._z*e._y+this._w*e._x,n=-this._x*e._z+this._y*e._w+this._z*e._x+this._w*e._y,r=this._x*e._y-this._y*e._x+this._z*e._w+this._w*e._z,o=-this._x*e._x-this._y*e._y-this._z*e._z+this._w*e._w;return t.copyFromFloats(i,n,r,o),this},e.prototype.multiplyInPlace=function(e){return this.multiplyToRef(e,this),this},e.prototype.conjugateToRef=function(e){return e.copyFromFloats(-this._x,-this._y,-this._z,this._w),this},e.prototype.conjugateInPlace=function(){return this.x*=-1,this.y*=-1,this.z*=-1,this},e.prototype.conjugate=function(){return new e(-this._x,-this._y,-this._z,this._w)},e.prototype.length=function(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)},e.prototype.normalize=function(){var e=this.length();if(0===e)return this;var t=1/e;return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this},e.prototype.toEulerAngles=function(e){void 0===e&&(e=\"YZX\");var t=l.Zero();return this.toEulerAnglesToRef(t),t},e.prototype.toEulerAnglesToRef=function(e){var t=this._z,i=this._x,n=this._y,r=this._w,o=r*r,a=t*t,s=i*i,c=n*n,l=n*t-i*r;return l<-.4999999?(e.y=2*Math.atan2(n,r),e.x=Math.PI/2,e.z=0):l>.4999999?(e.y=2*Math.atan2(n,r),e.x=-Math.PI/2,e.z=0):(e.z=Math.atan2(2*(i*n+t*r),-a-s+c+o),e.x=Math.asin(-2*(t*n-i*r)),e.y=Math.atan2(2*(t*i+n*r),a-s-c+o)),this},e.prototype.toRotationMatrix=function(e){return d.FromQuaternionToRef(this,e),this},e.prototype.fromRotationMatrix=function(t){return e.FromRotationMatrixToRef(t,this),this},e.FromRotationMatrix=function(t){var i=new e;return e.FromRotationMatrixToRef(t,i),i},e.FromRotationMatrixToRef=function(e,t){var i,n=e.m,r=n[0],o=n[4],a=n[8],s=n[1],c=n[5],l=n[9],u=n[2],h=n[6],d=n[10],f=r+c+d;f>0?(i=.5/Math.sqrt(f+1),t.w=.25/i,t.x=(h-l)*i,t.y=(a-u)*i,t.z=(s-o)*i):r>c&&r>d?(i=2*Math.sqrt(1+r-c-d),t.w=(h-l)/i,t.x=.25*i,t.y=(o+s)/i,t.z=(a+u)/i):c>d?(i=2*Math.sqrt(1+c-r-d),t.w=(a-u)/i,t.x=(o+s)/i,t.y=.25*i,t.z=(l+h)/i):(i=2*Math.sqrt(1+d-r-c),t.w=(s-o)/i,t.x=(a+u)/i,t.y=(l+h)/i,t.z=.25*i)},e.Dot=function(e,t){return e._x*t._x+e._y*t._y+e._z*t._z+e._w*t._w},e.AreClose=function(t,i){return e.Dot(t,i)>=0},e.Zero=function(){return new e(0,0,0,0)},e.Inverse=function(t){return new e(-t._x,-t._y,-t._z,t._w)},e.InverseToRef=function(e,t){return t.set(-e._x,-e._y,-e._z,e._w),t},e.Identity=function(){return new e(0,0,0,1)},e.IsIdentity=function(e){return e&&0===e._x&&0===e._y&&0===e._z&&1===e._w},e.RotationAxis=function(t,i){return e.RotationAxisToRef(t,i,new e)},e.RotationAxisToRef=function(e,t,i){var n=Math.sin(t/2);return e.normalize(),i.w=Math.cos(t/2),i.x=e._x*n,i.y=e._y*n,i.z=e._z*n,i},e.FromArray=function(t,i){return i||(i=0),new e(t[i],t[i+1],t[i+2],t[i+3])},e.FromArrayToRef=function(e,t,i){i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3]},e.FromEulerAngles=function(t,i,n){var r=new e;return e.RotationYawPitchRollToRef(i,t,n,r),r},e.FromEulerAnglesToRef=function(t,i,n,r){return e.RotationYawPitchRollToRef(i,t,n,r),r},e.FromEulerVector=function(t){var i=new e;return e.RotationYawPitchRollToRef(t._y,t._x,t._z,i),i},e.FromEulerVectorToRef=function(t,i){return e.RotationYawPitchRollToRef(t._y,t._x,t._z,i),i},e.RotationYawPitchRoll=function(t,i,n){var r=new e;return e.RotationYawPitchRollToRef(t,i,n,r),r},e.RotationYawPitchRollToRef=function(e,t,i,n){var r=.5*i,o=.5*t,a=.5*e,s=Math.sin(r),c=Math.cos(r),l=Math.sin(o),u=Math.cos(o),h=Math.sin(a),d=Math.cos(a);n.x=d*l*c+h*u*s,n.y=h*u*c-d*l*s,n.z=d*u*s-h*l*c,n.w=d*u*c+h*l*s},e.RotationAlphaBetaGamma=function(t,i,n){var r=new e;return e.RotationAlphaBetaGammaToRef(t,i,n,r),r},e.RotationAlphaBetaGammaToRef=function(e,t,i,n){var r=.5*(i+e),o=.5*(i-e),a=.5*t;n.x=Math.cos(o)*Math.sin(a),n.y=Math.sin(o)*Math.sin(a),n.z=Math.sin(r)*Math.cos(a),n.w=Math.cos(r)*Math.cos(a)},e.RotationQuaternionFromAxis=function(t,i,n){var r=new e(0,0,0,0);return e.RotationQuaternionFromAxisToRef(t,i,n,r),r},e.RotationQuaternionFromAxisToRef=function(t,i,n,r){var o=f.Matrix[0];d.FromXYZAxesToRef(t.normalize(),i.normalize(),n.normalize(),o),e.FromRotationMatrixToRef(o,r)},e.Slerp=function(t,i,n){var r=e.Identity();return e.SlerpToRef(t,i,n,r),r},e.SlerpToRef=function(e,t,i,n){var r,o,a=e._x*t._x+e._y*t._y+e._z*t._z+e._w*t._w,s=!1;if(a<0&&(s=!0,a=-a),a>.999999)o=1-i,r=s?-i:i;else{var c=Math.acos(a),l=1/Math.sin(c);o=Math.sin((1-i)*c)*l,r=s?-Math.sin(i*c)*l:Math.sin(i*c)*l}n.x=o*e._x+r*t._x,n.y=o*e._y+r*t._y,n.z=o*e._z+r*t._z,n.w=o*e._w+r*t._w},e.Hermite=function(t,i,n,r,o){var a=o*o,s=o*a,c=2*s-3*a+1,l=-2*s+3*a,u=s-2*a+o,h=s-a;return new e(t._x*c+n._x*l+i._x*u+r._x*h,t._y*c+n._y*l+i._y*u+r._y*h,t._z*c+n._z*l+i._z*u+r._z*h,t._w*c+n._w*l+i._w*u+r._w*h)},e}(),d=function(){function e(){this._isIdentity=!1,this._isIdentityDirty=!0,this._isIdentity3x2=!0,this._isIdentity3x2Dirty=!0,this.updateFlag=-1,s.a.MatrixTrackPrecisionChange&&s.a.MatrixTrackedMatrices.push(this),this._m=new s.a.MatrixCurrentType(16),this._updateIdentityStatus(!1)}return Object.defineProperty(e,\"Use64Bits\",{get:function(){return s.a.MatrixUse64Bits},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"m\",{get:function(){return this._m},enumerable:!1,configurable:!0}),e.prototype._markAsUpdated=function(){this.updateFlag=e._updateFlagSeed++,this._isIdentity=!1,this._isIdentity3x2=!1,this._isIdentityDirty=!0,this._isIdentity3x2Dirty=!0},e.prototype._updateIdentityStatus=function(t,i,n,r){void 0===i&&(i=!1),void 0===n&&(n=!1),void 0===r&&(r=!0),this.updateFlag=e._updateFlagSeed++,this._isIdentity=t,this._isIdentity3x2=t||n,this._isIdentityDirty=!this._isIdentity&&i,this._isIdentity3x2Dirty=!this._isIdentity3x2&&r},e.prototype.isIdentity=function(){if(this._isIdentityDirty){this._isIdentityDirty=!1;var e=this._m;this._isIdentity=1===e[0]&&0===e[1]&&0===e[2]&&0===e[3]&&0===e[4]&&1===e[5]&&0===e[6]&&0===e[7]&&0===e[8]&&0===e[9]&&1===e[10]&&0===e[11]&&0===e[12]&&0===e[13]&&0===e[14]&&1===e[15]}return this._isIdentity},e.prototype.isIdentityAs3x2=function(){return this._isIdentity3x2Dirty&&(this._isIdentity3x2Dirty=!1,1!==this._m[0]||1!==this._m[5]||1!==this._m[15]||0!==this._m[1]||0!==this._m[2]||0!==this._m[3]||0!==this._m[4]||0!==this._m[6]||0!==this._m[7]||0!==this._m[8]||0!==this._m[9]||0!==this._m[10]||0!==this._m[11]||0!==this._m[12]||0!==this._m[13]||0!==this._m[14]?this._isIdentity3x2=!1:this._isIdentity3x2=!0),this._isIdentity3x2},e.prototype.determinant=function(){if(!0===this._isIdentity)return 1;var e=this._m,t=e[0],i=e[1],n=e[2],r=e[3],o=e[4],a=e[5],s=e[6],c=e[7],l=e[8],u=e[9],h=e[10],d=e[11],f=e[12],p=e[13],_=e[14],m=e[15],g=h*m-_*d,v=u*m-p*d,b=u*_-p*h,y=l*m-f*d,T=l*_-h*f,E=l*p-f*u;return t*+(a*g-s*v+c*b)+i*-(o*g-s*y+c*T)+n*+(o*v-a*y+c*E)+r*-(o*b-a*T+s*E)},e.prototype.toArray=function(){return this._m},e.prototype.asArray=function(){return this._m},e.prototype.invert=function(){return this.invertToRef(this),this},e.prototype.reset=function(){return e.FromValuesToRef(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,this),this._updateIdentityStatus(!1),this},e.prototype.add=function(t){var i=new e;return this.addToRef(t,i),i},e.prototype.addToRef=function(e,t){for(var i=this._m,n=t._m,r=e.m,o=0;o<16;o++)n[o]=i[o]+r[o];return t._markAsUpdated(),this},e.prototype.addToSelf=function(e){for(var t=this._m,i=e.m,n=0;n<16;n++)t[n]+=i[n];return this._markAsUpdated(),this},e.prototype.invertToRef=function(t){if(!0===this._isIdentity)return e.IdentityToRef(t),this;var i=this._m,n=i[0],r=i[1],o=i[2],a=i[3],s=i[4],c=i[5],l=i[6],u=i[7],h=i[8],d=i[9],f=i[10],p=i[11],_=i[12],m=i[13],g=i[14],v=i[15],b=f*v-g*p,y=d*v-m*p,T=d*g-m*f,E=h*v-_*p,S=h*g-f*_,A=h*m-_*d,P=+(c*b-l*y+u*T),C=-(s*b-l*E+u*S),R=+(s*y-c*E+u*A),x=-(s*T-c*S+l*A),O=n*P+r*C+o*R+a*x;if(0===O)return t.copyFrom(this),this;var M=1/O,I=l*v-g*u,D=c*v-m*u,N=c*g-m*l,L=s*v-_*u,w=s*g-_*l,F=s*m-_*c,B=l*p-f*u,U=c*p-d*u,V=c*f-d*l,k=s*p-h*u,z=s*f-h*l,G=s*d-h*c,j=-(r*b-o*y+a*T),W=+(n*b-o*E+a*S),H=-(n*y-r*E+a*A),X=+(n*T-r*S+o*A),Y=+(r*I-o*D+a*N),K=-(n*I-o*L+a*w),Q=+(n*D-r*L+a*F),q=-(n*N-r*w+o*F),Z=-(r*B-o*U+a*V),J=+(n*B-o*k+a*z),$=-(n*U-r*k+a*G),ee=+(n*V-r*z+o*G);return e.FromValuesToRef(P*M,j*M,Y*M,Z*M,C*M,W*M,K*M,J*M,R*M,H*M,Q*M,$*M,x*M,X*M,q*M,ee*M,t),this},e.prototype.addAtIndex=function(e,t){return this._m[e]+=t,this._markAsUpdated(),this},e.prototype.multiplyAtIndex=function(e,t){return this._m[e]*=t,this._markAsUpdated(),this},e.prototype.setTranslationFromFloats=function(e,t,i){return this._m[12]=e,this._m[13]=t,this._m[14]=i,this._markAsUpdated(),this},e.prototype.addTranslationFromFloats=function(e,t,i){return this._m[12]+=e,this._m[13]+=t,this._m[14]+=i,this._markAsUpdated(),this},e.prototype.setTranslation=function(e){return this.setTranslationFromFloats(e._x,e._y,e._z)},e.prototype.getTranslation=function(){return new l(this._m[12],this._m[13],this._m[14])},e.prototype.getTranslationToRef=function(e){return e.x=this._m[12],e.y=this._m[13],e.z=this._m[14],this},e.prototype.removeRotationAndScaling=function(){var t=this.m;return e.FromValuesToRef(1,0,0,0,0,1,0,0,0,0,1,0,t[12],t[13],t[14],t[15],this),this._updateIdentityStatus(0===t[12]&&0===t[13]&&0===t[14]&&1===t[15]),this},e.prototype.multiply=function(t){var i=new e;return this.multiplyToRef(t,i),i},e.prototype.copyFrom=function(e){e.copyToArray(this._m);var t=e;return this._updateIdentityStatus(t._isIdentity,t._isIdentityDirty,t._isIdentity3x2,t._isIdentity3x2Dirty),this},e.prototype.copyToArray=function(e,t){void 0===t&&(t=0);var i=this._m;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e[t+9]=i[9],e[t+10]=i[10],e[t+11]=i[11],e[t+12]=i[12],e[t+13]=i[13],e[t+14]=i[14],e[t+15]=i[15],this},e.prototype.multiplyToRef=function(e,t){return this._isIdentity?(t.copyFrom(e),this):e._isIdentity?(t.copyFrom(this),this):(this.multiplyToArray(e,t._m,0),t._markAsUpdated(),this)},e.prototype.multiplyToArray=function(e,t,i){var n=this._m,r=e.m,o=n[0],a=n[1],s=n[2],c=n[3],l=n[4],u=n[5],h=n[6],d=n[7],f=n[8],p=n[9],_=n[10],m=n[11],g=n[12],v=n[13],b=n[14],y=n[15],T=r[0],E=r[1],S=r[2],A=r[3],P=r[4],C=r[5],R=r[6],x=r[7],O=r[8],M=r[9],I=r[10],D=r[11],N=r[12],L=r[13],w=r[14],F=r[15];return t[i]=o*T+a*P+s*O+c*N,t[i+1]=o*E+a*C+s*M+c*L,t[i+2]=o*S+a*R+s*I+c*w,t[i+3]=o*A+a*x+s*D+c*F,t[i+4]=l*T+u*P+h*O+d*N,t[i+5]=l*E+u*C+h*M+d*L,t[i+6]=l*S+u*R+h*I+d*w,t[i+7]=l*A+u*x+h*D+d*F,t[i+8]=f*T+p*P+_*O+m*N,t[i+9]=f*E+p*C+_*M+m*L,t[i+10]=f*S+p*R+_*I+m*w,t[i+11]=f*A+p*x+_*D+m*F,t[i+12]=g*T+v*P+b*O+y*N,t[i+13]=g*E+v*C+b*M+y*L,t[i+14]=g*S+v*R+b*I+y*w,t[i+15]=g*A+v*x+b*D+y*F,this},e.prototype.equals=function(e){var t=e;if(!t)return!1;if((this._isIdentity||t._isIdentity)&&!this._isIdentityDirty&&!t._isIdentityDirty)return this._isIdentity&&t._isIdentity;var i=this.m,n=t.m;return i[0]===n[0]&&i[1]===n[1]&&i[2]===n[2]&&i[3]===n[3]&&i[4]===n[4]&&i[5]===n[5]&&i[6]===n[6]&&i[7]===n[7]&&i[8]===n[8]&&i[9]===n[9]&&i[10]===n[10]&&i[11]===n[11]&&i[12]===n[12]&&i[13]===n[13]&&i[14]===n[14]&&i[15]===n[15]},e.prototype.clone=function(){var t=new e;return t.copyFrom(this),t},e.prototype.getClassName=function(){return\"Matrix\"},e.prototype.getHashCode=function(){for(var e=0|this._m[0],t=1;t<16;t++)e=397*e^(0|this._m[t]);return e},e.prototype.decompose=function(t,i,n){if(this._isIdentity)return n&&n.setAll(0),t&&t.setAll(1),i&&i.copyFromFloats(0,0,0,1),!0;var r=this._m;if(n&&n.copyFromFloats(r[12],r[13],r[14]),(t=t||f.Vector3[0]).x=Math.sqrt(r[0]*r[0]+r[1]*r[1]+r[2]*r[2]),t.y=Math.sqrt(r[4]*r[4]+r[5]*r[5]+r[6]*r[6]),t.z=Math.sqrt(r[8]*r[8]+r[9]*r[9]+r[10]*r[10]),this.determinant()<=0&&(t.y*=-1),0===t._x||0===t._y||0===t._z)return i&&i.copyFromFloats(0,0,0,1),!1;if(i){var o=1/t._x,a=1/t._y,s=1/t._z;e.FromValuesToRef(r[0]*o,r[1]*o,r[2]*o,0,r[4]*a,r[5]*a,r[6]*a,0,r[8]*s,r[9]*s,r[10]*s,0,0,0,0,1,f.Matrix[0]),h.FromRotationMatrixToRef(f.Matrix[0],i)}return!0},e.prototype.getRow=function(e){if(e<0||e>3)return null;var t=4*e;return new u(this._m[t+0],this._m[t+1],this._m[t+2],this._m[t+3])},e.prototype.setRow=function(e,t){return this.setRowFromFloats(e,t.x,t.y,t.z,t.w)},e.prototype.transpose=function(){return e.Transpose(this)},e.prototype.transposeToRef=function(t){return e.TransposeToRef(this,t),this},e.prototype.setRowFromFloats=function(e,t,i,n,r){if(e<0||e>3)return this;var o=4*e;return this._m[o+0]=t,this._m[o+1]=i,this._m[o+2]=n,this._m[o+3]=r,this._markAsUpdated(),this},e.prototype.scale=function(t){var i=new e;return this.scaleToRef(t,i),i},e.prototype.scaleToRef=function(e,t){for(var i=0;i<16;i++)t._m[i]=this._m[i]*e;return t._markAsUpdated(),this},e.prototype.scaleAndAddToRef=function(e,t){for(var i=0;i<16;i++)t._m[i]+=this._m[i]*e;return t._markAsUpdated(),this},e.prototype.toNormalMatrix=function(t){var i=f.Matrix[0];this.invertToRef(i),i.transposeToRef(t);var n=t._m;e.FromValuesToRef(n[0],n[1],n[2],0,n[4],n[5],n[6],0,n[8],n[9],n[10],0,0,0,0,1,t)},e.prototype.getRotationMatrix=function(){var t=new e;return this.getRotationMatrixToRef(t),t},e.prototype.getRotationMatrixToRef=function(t){var i=f.Vector3[0];if(!this.decompose(i))return e.IdentityToRef(t),this;var n=this._m,r=1/i._x,o=1/i._y,a=1/i._z;return e.FromValuesToRef(n[0]*r,n[1]*r,n[2]*r,0,n[4]*o,n[5]*o,n[6]*o,0,n[8]*a,n[9]*a,n[10]*a,0,0,0,0,1,t),this},e.prototype.toggleModelMatrixHandInPlace=function(){var e=this._m;e[2]*=-1,e[6]*=-1,e[8]*=-1,e[9]*=-1,e[14]*=-1,this._markAsUpdated()},e.prototype.toggleProjectionMatrixHandInPlace=function(){var e=this._m;e[8]*=-1,e[9]*=-1,e[10]*=-1,e[11]*=-1,this._markAsUpdated()},e.FromArray=function(t,i){void 0===i&&(i=0);var n=new e;return e.FromArrayToRef(t,i,n),n},e.FromArrayToRef=function(e,t,i){for(var n=0;n<16;n++)i._m[n]=e[n+t];i._markAsUpdated()},e.FromFloat32ArrayToRefScaled=function(e,t,i,n){for(var r=0;r<16;r++)n._m[r]=e[r+t]*i;n._markAsUpdated()},Object.defineProperty(e,\"IdentityReadOnly\",{get:function(){return e._identityReadOnly},enumerable:!1,configurable:!0}),e.FromValuesToRef=function(e,t,i,n,r,o,a,s,c,l,u,h,d,f,p,_,m){var g=m._m;g[0]=e,g[1]=t,g[2]=i,g[3]=n,g[4]=r,g[5]=o,g[6]=a,g[7]=s,g[8]=c,g[9]=l,g[10]=u,g[11]=h,g[12]=d,g[13]=f,g[14]=p,g[15]=_,m._markAsUpdated()},e.FromValues=function(t,i,n,r,o,a,s,c,l,u,h,d,f,p,_,m){var g=new e,v=g._m;return v[0]=t,v[1]=i,v[2]=n,v[3]=r,v[4]=o,v[5]=a,v[6]=s,v[7]=c,v[8]=l,v[9]=u,v[10]=h,v[11]=d,v[12]=f,v[13]=p,v[14]=_,v[15]=m,g._markAsUpdated(),g},e.Compose=function(t,i,n){var r=new e;return e.ComposeToRef(t,i,n,r),r},e.ComposeToRef=function(e,t,i,n){var r=n._m,o=t._x,a=t._y,s=t._z,c=t._w,l=o+o,u=a+a,h=s+s,d=o*l,f=o*u,p=o*h,_=a*u,m=a*h,g=s*h,v=c*l,b=c*u,y=c*h,T=e._x,E=e._y,S=e._z;r[0]=(1-(_+g))*T,r[1]=(f+y)*T,r[2]=(p-b)*T,r[3]=0,r[4]=(f-y)*E,r[5]=(1-(d+g))*E,r[6]=(m+v)*E,r[7]=0,r[8]=(p+b)*S,r[9]=(m-v)*S,r[10]=(1-(d+_))*S,r[11]=0,r[12]=i._x,r[13]=i._y,r[14]=i._z,r[15]=1,n._markAsUpdated()},e.Identity=function(){var t=e.FromValues(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1);return t._updateIdentityStatus(!0),t},e.IdentityToRef=function(t){e.FromValuesToRef(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,t),t._updateIdentityStatus(!0)},e.Zero=function(){var t=e.FromValues(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);return t._updateIdentityStatus(!1),t},e.RotationX=function(t){var i=new e;return e.RotationXToRef(t,i),i},e.Invert=function(t){var i=new e;return t.invertToRef(i),i},e.RotationXToRef=function(t,i){var n=Math.sin(t),r=Math.cos(t);e.FromValuesToRef(1,0,0,0,0,r,n,0,0,-n,r,0,0,0,0,1,i),i._updateIdentityStatus(1===r&&0===n)},e.RotationY=function(t){var i=new e;return e.RotationYToRef(t,i),i},e.RotationYToRef=function(t,i){var n=Math.sin(t),r=Math.cos(t);e.FromValuesToRef(r,0,-n,0,0,1,0,0,n,0,r,0,0,0,0,1,i),i._updateIdentityStatus(1===r&&0===n)},e.RotationZ=function(t){var i=new e;return e.RotationZToRef(t,i),i},e.RotationZToRef=function(t,i){var n=Math.sin(t),r=Math.cos(t);e.FromValuesToRef(r,n,0,0,-n,r,0,0,0,0,1,0,0,0,0,1,i),i._updateIdentityStatus(1===r&&0===n)},e.RotationAxis=function(t,i){var n=new e;return e.RotationAxisToRef(t,i,n),n},e.RotationAxisToRef=function(e,t,i){var n=Math.sin(-t),r=Math.cos(-t),o=1-r;e.normalize();var a=i._m;a[0]=e._x*e._x*o+r,a[1]=e._x*e._y*o-e._z*n,a[2]=e._x*e._z*o+e._y*n,a[3]=0,a[4]=e._y*e._x*o+e._z*n,a[5]=e._y*e._y*o+r,a[6]=e._y*e._z*o-e._x*n,a[7]=0,a[8]=e._z*e._x*o-e._y*n,a[9]=e._z*e._y*o+e._x*n,a[10]=e._z*e._z*o+r,a[11]=0,a[12]=0,a[13]=0,a[14]=0,a[15]=1,i._markAsUpdated()},e.RotationAlignToRef=function(e,t,i){var n=l.Cross(t,e),r=l.Dot(t,e),o=1/(1+r),a=i._m;a[0]=n._x*n._x*o+r,a[1]=n._y*n._x*o-n._z,a[2]=n._z*n._x*o+n._y,a[3]=0,a[4]=n._x*n._y*o+n._z,a[5]=n._y*n._y*o+r,a[6]=n._z*n._y*o-n._x,a[7]=0,a[8]=n._x*n._z*o-n._y,a[9]=n._y*n._z*o+n._x,a[10]=n._z*n._z*o+r,a[11]=0,a[12]=0,a[13]=0,a[14]=0,a[15]=1,i._markAsUpdated()},e.RotationYawPitchRoll=function(t,i,n){var r=new e;return e.RotationYawPitchRollToRef(t,i,n,r),r},e.RotationYawPitchRollToRef=function(e,t,i,n){h.RotationYawPitchRollToRef(e,t,i,f.Quaternion[0]),f.Quaternion[0].toRotationMatrix(n)},e.Scaling=function(t,i,n){var r=new e;return e.ScalingToRef(t,i,n,r),r},e.ScalingToRef=function(t,i,n,r){e.FromValuesToRef(t,0,0,0,0,i,0,0,0,0,n,0,0,0,0,1,r),r._updateIdentityStatus(1===t&&1===i&&1===n)},e.Translation=function(t,i,n){var r=new e;return e.TranslationToRef(t,i,n,r),r},e.TranslationToRef=function(t,i,n,r){e.FromValuesToRef(1,0,0,0,0,1,0,0,0,0,1,0,t,i,n,1,r),r._updateIdentityStatus(0===t&&0===i&&0===n)},e.Lerp=function(t,i,n){var r=new e;return e.LerpToRef(t,i,n,r),r},e.LerpToRef=function(e,t,i,n){for(var r=n._m,o=e.m,a=t.m,s=0;s<16;s++)r[s]=o[s]*(1-i)+a[s]*i;n._markAsUpdated()},e.DecomposeLerp=function(t,i,n){var r=new e;return e.DecomposeLerpToRef(t,i,n,r),r},e.DecomposeLerpToRef=function(t,i,n,r){var o=f.Vector3[0],a=f.Quaternion[0],s=f.Vector3[1];t.decompose(o,a,s);var c=f.Vector3[2],u=f.Quaternion[1],d=f.Vector3[3];i.decompose(c,u,d);var p=f.Vector3[4];l.LerpToRef(o,c,n,p);var _=f.Quaternion[2];h.SlerpToRef(a,u,n,_);var m=f.Vector3[5];l.LerpToRef(s,d,n,m),e.ComposeToRef(p,_,m,r)},e.LookAtLH=function(t,i,n){var r=new e;return e.LookAtLHToRef(t,i,n,r),r},e.LookAtLHToRef=function(t,i,n,r){var o=f.Vector3[0],a=f.Vector3[1],s=f.Vector3[2];i.subtractToRef(t,s),s.normalize(),l.CrossToRef(n,s,o);var c=o.lengthSquared();0===c?o.x=1:o.normalizeFromLength(Math.sqrt(c)),l.CrossToRef(s,o,a),a.normalize();var u=-l.Dot(o,t),h=-l.Dot(a,t),d=-l.Dot(s,t);e.FromValuesToRef(o._x,a._x,s._x,0,o._y,a._y,s._y,0,o._z,a._z,s._z,0,u,h,d,1,r)},e.LookAtRH=function(t,i,n){var r=new e;return e.LookAtRHToRef(t,i,n,r),r},e.LookAtRHToRef=function(t,i,n,r){var o=f.Vector3[0],a=f.Vector3[1],s=f.Vector3[2];t.subtractToRef(i,s),s.normalize(),l.CrossToRef(n,s,o);var c=o.lengthSquared();0===c?o.x=1:o.normalizeFromLength(Math.sqrt(c)),l.CrossToRef(s,o,a),a.normalize();var u=-l.Dot(o,t),h=-l.Dot(a,t),d=-l.Dot(s,t);e.FromValuesToRef(o._x,a._x,s._x,0,o._y,a._y,s._y,0,o._z,a._z,s._z,0,u,h,d,1,r)},e.OrthoLH=function(t,i,n,r){var o=new e;return e.OrthoLHToRef(t,i,n,r,o),o},e.OrthoLHToRef=function(t,i,n,r,o){var a=2/t,s=2/i,c=2/(r-n),l=-(r+n)/(r-n);e.FromValuesToRef(a,0,0,0,0,s,0,0,0,0,c,0,0,0,l,1,o),o._updateIdentityStatus(1===a&&1===s&&1===c&&0===l)},e.OrthoOffCenterLH=function(t,i,n,r,o,a){var s=new e;return e.OrthoOffCenterLHToRef(t,i,n,r,o,a,s),s},e.OrthoOffCenterLHToRef=function(t,i,n,r,o,a,s){var c=2/(i-t),l=2/(r-n),u=2/(a-o),h=-(a+o)/(a-o),d=(t+i)/(t-i),f=(r+n)/(n-r);e.FromValuesToRef(c,0,0,0,0,l,0,0,0,0,u,0,d,f,h,1,s),s._markAsUpdated()},e.OrthoOffCenterRH=function(t,i,n,r,o,a){var s=new e;return e.OrthoOffCenterRHToRef(t,i,n,r,o,a,s),s},e.OrthoOffCenterRHToRef=function(t,i,n,r,o,a,s){e.OrthoOffCenterLHToRef(t,i,n,r,o,a,s),s._m[10]*=-1},e.PerspectiveLH=function(t,i,n,r){var o=new e,a=2*n/t,s=2*n/i,c=(r+n)/(r-n),l=-2*r*n/(r-n);return e.FromValuesToRef(a,0,0,0,0,s,0,0,0,0,c,1,0,0,l,0,o),o._updateIdentityStatus(!1),o},e.PerspectiveFovLH=function(t,i,n,r){var o=new e;return e.PerspectiveFovLHToRef(t,i,n,r,o),o},e.PerspectiveFovLHToRef=function(t,i,n,r,o,a){void 0===a&&(a=!0);var s=n,c=r,l=1/Math.tan(.5*t),u=a?l/i:l,h=a?l:l*i,d=(c+s)/(c-s),f=-2*c*s/(c-s);e.FromValuesToRef(u,0,0,0,0,h,0,0,0,0,d,1,0,0,f,0,o),o._updateIdentityStatus(!1)},e.PerspectiveFovReverseLHToRef=function(t,i,n,r,o,a){void 0===a&&(a=!0);var s=1/Math.tan(.5*t),c=a?s/i:s,l=a?s:s*i;e.FromValuesToRef(c,0,0,0,0,l,0,0,0,0,-n,1,0,0,1,0,o),o._updateIdentityStatus(!1)},e.PerspectiveFovRH=function(t,i,n,r){var o=new e;return e.PerspectiveFovRHToRef(t,i,n,r,o),o},e.PerspectiveFovRHToRef=function(t,i,n,r,o,a){void 0===a&&(a=!0);var s=n,c=r,l=1/Math.tan(.5*t),u=a?l/i:l,h=a?l:l*i,d=-(c+s)/(c-s),f=-2*c*s/(c-s);e.FromValuesToRef(u,0,0,0,0,h,0,0,0,0,d,-1,0,0,f,0,o),o._updateIdentityStatus(!1)},e.PerspectiveFovReverseRHToRef=function(t,i,n,r,o,a){void 0===a&&(a=!0);var s=1/Math.tan(.5*t),c=a?s/i:s,l=a?s:s*i;e.FromValuesToRef(c,0,0,0,0,l,0,0,0,0,-n,-1,0,0,-1,0,o),o._updateIdentityStatus(!1)},e.PerspectiveFovWebVRToRef=function(e,t,i,n,r){void 0===r&&(r=!1);var o=r?-1:1,a=Math.tan(e.upDegrees*Math.PI/180),s=Math.tan(e.downDegrees*Math.PI/180),c=Math.tan(e.leftDegrees*Math.PI/180),l=Math.tan(e.rightDegrees*Math.PI/180),u=2/(c+l),h=2/(a+s),d=n._m;d[0]=u,d[1]=d[2]=d[3]=d[4]=0,d[5]=h,d[6]=d[7]=0,d[8]=(c-l)*u*.5,d[9]=-(a-s)*h*.5,d[10]=-i/(t-i),d[11]=1*o,d[12]=d[13]=d[15]=0,d[14]=-2*i*t/(i-t),n._markAsUpdated()},e.GetFinalMatrix=function(t,i,n,r,o,a){var s=t.width,c=t.height,l=t.x,u=t.y,h=e.FromValues(s/2,0,0,0,0,-c/2,0,0,0,0,a-o,0,l+s/2,c/2+u,o,1),d=f.Matrix[0];return i.multiplyToRef(n,d),d.multiplyToRef(r,d),d.multiply(h)},e.GetAsMatrix2x2=function(e){var t=e.m,i=[t[0],t[1],t[4],t[5]];return s.a.MatrixUse64Bits?i:new Float32Array(i)},e.GetAsMatrix3x3=function(e){var t=e.m,i=[t[0],t[1],t[2],t[4],t[5],t[6],t[8],t[9],t[10]];return s.a.MatrixUse64Bits?i:new Float32Array(i)},e.Transpose=function(t){var i=new e;return e.TransposeToRef(t,i),i},e.TransposeToRef=function(e,t){var i=t._m,n=e.m;i[0]=n[0],i[1]=n[4],i[2]=n[8],i[3]=n[12],i[4]=n[1],i[5]=n[5],i[6]=n[9],i[7]=n[13],i[8]=n[2],i[9]=n[6],i[10]=n[10],i[11]=n[14],i[12]=n[3],i[13]=n[7],i[14]=n[11],i[15]=n[15],t._updateIdentityStatus(e._isIdentity,e._isIdentityDirty)},e.Reflection=function(t){var i=new e;return e.ReflectionToRef(t,i),i},e.ReflectionToRef=function(t,i){t.normalize();var n=t.normal.x,r=t.normal.y,o=t.normal.z,a=-2*n,s=-2*r,c=-2*o;e.FromValuesToRef(a*n+1,s*n,c*n,0,a*r,s*r+1,c*r,0,a*o,s*o,c*o+1,0,a*t.d,s*t.d,c*t.d,1,i)},e.FromXYZAxesToRef=function(t,i,n,r){e.FromValuesToRef(t._x,t._y,t._z,0,i._x,i._y,i._z,0,n._x,n._y,n._z,0,0,0,0,1,r)},e.FromQuaternionToRef=function(e,t){var i=e._x*e._x,n=e._y*e._y,r=e._z*e._z,o=e._x*e._y,a=e._z*e._w,s=e._z*e._x,c=e._y*e._w,l=e._y*e._z,u=e._x*e._w;t._m[0]=1-2*(n+r),t._m[1]=2*(o+a),t._m[2]=2*(s-c),t._m[3]=0,t._m[4]=2*(o-a),t._m[5]=1-2*(r+i),t._m[6]=2*(l+u),t._m[7]=0,t._m[8]=2*(s+c),t._m[9]=2*(l-u),t._m[10]=1-2*(n+i),t._m[11]=0,t._m[12]=0,t._m[13]=0,t._m[14]=0,t._m[15]=1,t._markAsUpdated()},e._updateFlagSeed=0,e._identityReadOnly=e.Identity(),e}(),f=function(){function e(){}return e.Vector3=o.a.BuildArray(6,l.Zero),e.Matrix=o.a.BuildArray(2,d.Identity),e.Quaternion=o.a.BuildArray(3,h.Zero),e}(),p=function(){function e(){}return e.Vector2=o.a.BuildArray(3,c.Zero),e.Vector3=o.a.BuildArray(13,l.Zero),e.Vector4=o.a.BuildArray(3,u.Zero),e.Quaternion=o.a.BuildArray(2,h.Zero),e.Matrix=o.a.BuildArray(8,d.Identity),e}();a.a.RegisteredTypes[\"BABYLON.Vector2\"]=c,a.a.RegisteredTypes[\"BABYLON.Vector3\"]=l,a.a.RegisteredTypes[\"BABYLON.Vector4\"]=u,a.a.RegisteredTypes[\"BABYLON.Matrix\"]=d},function(e,t,i){\"use strict\";i.d(t,\"d\",(function(){return r})),i.d(t,\"a\",(function(){return o})),i.d(t,\"c\",(function(){return a})),i.d(t,\"b\",(function(){return s})),i.d(t,\"e\",(function(){return c})),i.d(t,\"f\",(function(){return l}));\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nvar n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])})(e,t)};function r(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");function i(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}var o=function(){return(o=Object.assign||function(e){for(var t,i=1,n=arguments.length;i=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,i,a):r(t,i))||a);return o>3&&a&&Object.defineProperty(t,i,a),a}function s(e,t,i,n){return new(i||(i=Promise))((function(r,o){function a(e){try{c(n.next(e))}catch(e){o(e)}}function s(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,s)}c((n=n.apply(e,t||[])).next())}))}function c(e,t){var i,n,r,o,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},\"function\"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(i)throw new TypeError(\"Generator is already executing.\");for(;a;)try{if(i=1,n&&(r=2&o[0]?n.return:o[0]?n.throw||((r=n.return)&&r.call(n),0):n.next)&&!(r=r.call(n,o[1])).done)return r;switch(n=0,r&&(o=[2&o[0],r.value]),o[0]){case 0:case 1:r=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,n=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(r=a.trys,(r=r.length>0&&r[r.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!r||o[1]>r[0]&&o[1]=2?\"WEBGL2\":\"WEBGL1\"};this._loadShader(m,\"Vertex\",\"\",(function(e){_._rawVertexSourceCode=e,_._loadShader(g,\"Fragment\",\"Pixel\",(function(i){_._rawFragmentSourceCode=i,s.a.Process(e,E,(function(e){v&&(e=v(\"vertex\",e)),E.isFragment=!0,s.a.Process(i,E,(function(i){v&&(i=v(\"fragment\",i)),_._useFinalCode(e,i,t)}),_._engine)}),_._engine)}))}))}return Object.defineProperty(e.prototype,\"onBindObservable\",{get:function(){return this._onBindObservable||(this._onBindObservable=new n.c),this._onBindObservable},enumerable:!1,configurable:!0}),e.prototype._useFinalCode=function(e,t,i){if(i){var n=i.vertexElement||i.vertex||i.spectorName||i,r=i.fragmentElement||i.fragment||i.spectorName||i;this._vertexSourceCode=\"#define SHADER_NAME vertex:\"+n+\"\\n\"+e,this._fragmentSourceCode=\"#define SHADER_NAME fragment:\"+r+\"\\n\"+t}else this._vertexSourceCode=e,this._fragmentSourceCode=t;this._prepareEffect()},Object.defineProperty(e.prototype,\"key\",{get:function(){return this._key},enumerable:!1,configurable:!0}),e.prototype.isReady=function(){try{return this._isReadyInternal()}catch(e){return!1}},e.prototype._isReadyInternal=function(){return!!this._isReady||!!this._pipelineContext&&this._pipelineContext.isReady},e.prototype.getEngine=function(){return this._engine},e.prototype.getPipelineContext=function(){return this._pipelineContext},e.prototype.getAttributesNames=function(){return this._attributesNames},e.prototype.getAttributeLocation=function(e){return this._attributes[e]},e.prototype.getAttributeLocationByName=function(e){return this._attributeLocationByName[e]},e.prototype.getAttributesCount=function(){return this._attributes.length},e.prototype.getUniformIndex=function(e){return this._uniformsNames.indexOf(e)},e.prototype.getUniform=function(e){return this._uniforms[e]},e.prototype.getSamplers=function(){return this._samplerList},e.prototype.getUniformNames=function(){return this._uniformsNames},e.prototype.getUniformBuffersNames=function(){return this._uniformBuffersNamesList},e.prototype.getIndexParameters=function(){return this._indexParameters},e.prototype.getCompilationError=function(){return this._compilationError},e.prototype.allFallbacksProcessed=function(){return this._allFallbacksProcessed},e.prototype.executeWhenCompiled=function(e){var t=this;this.isReady()?e(this):(this.onCompileObservable.add((function(t){e(t)})),this._pipelineContext&&!this._pipelineContext.isAsync||setTimeout((function(){t._checkIsReady(null)}),16))},e.prototype._checkIsReady=function(e){var t=this;try{if(this._isReadyInternal())return}catch(t){return void this._processCompilationErrors(t,e)}setTimeout((function(){t._checkIsReady(e)}),16)},e.prototype._loadShader=function(t,i,n,r){var a;if(\"undefined\"!=typeof HTMLElement&&t instanceof HTMLElement)return void r(o.a.GetDOMTextContent(t));\"source:\"!==t.substr(0,7)?\"base64:\"!==t.substr(0,7)?e.ShadersStore[t+i+\"Shader\"]?r(e.ShadersStore[t+i+\"Shader\"]):n&&e.ShadersStore[t+n+\"Shader\"]?r(e.ShadersStore[t+n+\"Shader\"]):(a=\".\"===t[0]||\"/\"===t[0]||t.indexOf(\"http\")>-1?t:e.ShadersRepository+t,this._engine._loadFile(a+\".\"+i.toLowerCase()+\".fx\",r)):r(window.atob(t.substr(7))):r(t.substr(7))},Object.defineProperty(e.prototype,\"vertexSourceCode\",{get:function(){return this._vertexSourceCodeOverride&&this._fragmentSourceCodeOverride?this._vertexSourceCodeOverride:this._vertexSourceCode},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"fragmentSourceCode\",{get:function(){return this._vertexSourceCodeOverride&&this._fragmentSourceCodeOverride?this._fragmentSourceCodeOverride:this._fragmentSourceCode},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"rawVertexSourceCode\",{get:function(){return this._rawVertexSourceCode},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"rawFragmentSourceCode\",{get:function(){return this._rawFragmentSourceCode},enumerable:!1,configurable:!0}),e.prototype._rebuildProgram=function(e,t,i,n){var o=this;this._isReady=!1,this._vertexSourceCodeOverride=e,this._fragmentSourceCodeOverride=t,this.onError=function(e,t){n&&n(t)},this.onCompiled=function(){var e=o.getEngine().scenes;if(e)for(var t=0;t=a&&(r=\"Offending line [\"+a+\"] in \"+(i?\"fragment\":\"vertex\")+\" code: \"+s[a-1])}}return[e,r]},e.prototype._processCompilationErrors=function(t,i){var n,r,o,s,c;void 0===i&&(i=null),this._compilationError=t.message;var l=this._attributesNames,u=this._fallbacks;if(a.a.Error(\"Unable to compile effect:\"),a.a.Error(\"Uniforms: \"+this._uniformsNames.map((function(e){return\" \"+e}))),a.a.Error(\"Attributes: \"+l.map((function(e){return\" \"+e}))),a.a.Error(\"Defines:\\r\\n\"+this.defines),e.LogShaderCodeOnCompilationError){var h=null,d=null,f=null;(null===(o=this._pipelineContext)||void 0===o?void 0:o._getVertexShaderCode())&&(f=(n=this._getShaderCodeAndErrorLine(this._pipelineContext._getVertexShaderCode(),this._compilationError,!1))[0],h=n[1],f&&(a.a.Error(\"Vertex code:\"),a.a.Error(f))),(null===(s=this._pipelineContext)||void 0===s?void 0:s._getFragmentShaderCode())&&(f=(r=this._getShaderCodeAndErrorLine(null===(c=this._pipelineContext)||void 0===c?void 0:c._getFragmentShaderCode(),this._compilationError,!0))[0],d=r[1],f&&(a.a.Error(\"Fragment code:\"),a.a.Error(f))),h&&a.a.Error(h),d&&a.a.Error(d)}a.a.Error(\"Error: \"+this._compilationError),i&&(this._pipelineContext=i,this._isReady=!0,this.onError&&this.onError(this,this._compilationError),this.onErrorObservable.notifyObservers(this)),u?(this._pipelineContext=null,u.hasMoreFallbacks?(this._allFallbacksProcessed=!1,a.a.Error(\"Trying next fallback.\"),this.defines=u.reduce(this.defines,this),this._prepareEffect()):(this._allFallbacksProcessed=!0,this.onError&&this.onError(this,this._compilationError),this.onErrorObservable.notifyObservers(this),this.onErrorObservable.clear(),this._fallbacks&&this._fallbacks.unBindMesh())):this._allFallbacksProcessed=!0},Object.defineProperty(e.prototype,\"isSupported\",{get:function(){return\"\"===this._compilationError},enumerable:!1,configurable:!0}),e.prototype._bindTexture=function(e,t){this._engine._bindTexture(this._samplers[e],t)},e.prototype.setTexture=function(e,t){this._engine.setTexture(this._samplers[e],this._uniforms[e],t)},e.prototype.setDepthStencilTexture=function(e,t){this._engine.setDepthStencilTexture(this._samplers[e],this._uniforms[e],t)},e.prototype.setTextureArray=function(e,t){var i=e+\"Ex\";if(-1===this._samplerList.indexOf(i+\"0\")){for(var n=this._samplerList.indexOf(e),r=1;r0},e.prototype.clear=function(){this._observers=new Array,this._onObserverAdded=null},e.prototype.clone=function(){var t=new e;return t._observers=this._observers.slice(0),t},e.prototype.hasSpecificMask=function(e){void 0===e&&(e=-1);for(var t=0,i=this._observers;t0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"hasThinInstances\",{get:function(){var e;return(null!==(e=this._thinInstanceDataStorage.instancesCount)&&void 0!==e?e:0)>0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"morphTargetManager\",{get:function(){return this._internalMeshDataInfo._morphTargetManager},set:function(e){this._internalMeshDataInfo._morphTargetManager!==e&&(this._internalMeshDataInfo._morphTargetManager=e,this._syncGeometryWithMorphTargetManager())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"source\",{get:function(){return this._internalMeshDataInfo._source},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"cloneMeshMap\",{get:function(){return this._internalMeshDataInfo.meshMap},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"isUnIndexed\",{get:function(){return this._unIndexed},set:function(e){this._unIndexed!==e&&(this._unIndexed=e,this._markSubMeshesAsAttributesDirty())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"worldMatrixInstancedBuffer\",{get:function(){return this._instanceDataStorage.instancesData},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"manualUpdateOfWorldMatrixInstancedBuffer\",{get:function(){return this._instanceDataStorage.manualUpdate},set:function(e){this._instanceDataStorage.manualUpdate=e},enumerable:!1,configurable:!0}),t.prototype.instantiateHierarchy=function(e,t,i){void 0===e&&(e=null);var n=!(this.getTotalVertices()>0)||t&&t.doNotInstantiate?this.clone(\"Clone of \"+(this.name||this.id),e||this.parent,!0):this.createInstance(\"instance of \"+(this.name||this.id));n&&(n.parent=e||this.parent,n.position=this.position.clone(),n.scaling=this.scaling.clone(),this.rotationQuaternion?n.rotationQuaternion=this.rotationQuaternion.clone():n.rotation=this.rotation.clone(),i&&i(this,n));for(var r=0,o=this.getChildTransformNodes(!0);r0},enumerable:!1,configurable:!0}),t.prototype.getLODLevels=function(){return this._internalMeshDataInfo._LODLevels},t.prototype._sortLODLevels=function(){this._internalMeshDataInfo._LODLevels.sort((function(e,t){return e.distancet.distance?-1:0}))},t.prototype.addLODLevel=function(e,t){if(t&&t._masterMesh)return E.a.Warn(\"You cannot use a mesh as LOD level twice\"),this;var i=new C.a(e,t);return this._internalMeshDataInfo._LODLevels.push(i),t&&(t._masterMesh=this),this._sortLODLevels(),this},t.prototype.getLODLevelAtDistance=function(e){for(var t=this._internalMeshDataInfo,i=0;ir)return this.onLODLevelSelection&&this.onLODLevelSelection(r,this,this),this;for(var o=0;o0||this.hasThinInstances);this.computeWorldMatrix();var d=this.material||u.defaultMaterial;if(d)if(d._storeEffectOnSubMeshes)for(var f=0,p=this.subMeshes;f0){var i=this.getIndices();if(!i)return null;var n=i.length,r=!1;if(e)r=!0;else for(var o=0,a=this.subMeshes;on){r=!0;break}if(s.verticesStart+s.verticesCount>t){r=!0;break}}if(!r)return this.subMeshes[0]}return this.releaseSubMeshes(),new _.a(0,0,t,0,this.getTotalIndices(),this)},t.prototype.subdivide=function(e){if(!(e<1)){for(var t=this.getTotalIndices(),i=t/e|0,n=0;i%3!=0;)i++;this.releaseSubMeshes();for(var r=0;r=t);r++)_.a.CreateFromIndices(0,n,r===e-1?t-n:i,this),n+=i;this.synchronizeInstances()}},t.prototype.setVerticesData=function(e,t,i,n){if(void 0===i&&(i=!1),this._geometry)this._geometry.setVerticesData(e,t,i,n);else{var r=new d.a;r.set(t,e);var o=this.getScene();new f.a(f.a.RandomId(),o,r,i,this)}return this},t.prototype.removeVerticesData=function(e){this._geometry&&this._geometry.removeVerticesData(e)},t.prototype.markVerticesDataAsUpdatable=function(e,t){void 0===t&&(t=!0);var i=this.getVertexBuffer(e);i&&i.isUpdatable()!==t&&this.setVerticesData(e,this.getVerticesData(e),t)},t.prototype.setVerticesBuffer=function(e){return this._geometry||(this._geometry=f.a.CreateGeometryForMesh(this)),this._geometry.setVerticesBuffer(e),this},t.prototype.updateVerticesData=function(e,t,i,n){return this._geometry?(n?(this.makeGeometryUnique(),this.updateVerticesData(e,t,i,!1)):this._geometry.updateVerticesData(e,t,i),this):this},t.prototype.updateMeshPositions=function(e,t){void 0===t&&(t=!0);var i=this.getVerticesData(h.b.PositionKind);if(!i)return this;if(e(i),this.updateVerticesData(h.b.PositionKind,i,!1,!1),t){var n=this.getIndices(),r=this.getVerticesData(h.b.NormalKind);if(!r)return this;d.a.ComputeNormals(i,n,r),this.updateVerticesData(h.b.NormalKind,r,!1,!1)}return this},t.prototype.makeGeometryUnique=function(){if(!this._geometry)return this;if(1===this._geometry.meshes.length)return this;var e=this._geometry,t=this._geometry.copy(f.a.RandomId());return e.releaseForMesh(this,!0),t.applyToMesh(this),this},t.prototype.setIndices=function(e,t,i){if(void 0===t&&(t=null),void 0===i&&(i=!1),this._geometry)this._geometry.setIndices(e,t,i);else{var n=new d.a;n.indices=e;var r=this.getScene();new f.a(f.a.RandomId(),r,n,i,this)}return this},t.prototype.updateIndices=function(e,t,i){return void 0===i&&(i=!1),this._geometry?(this._geometry.updateIndices(e,t,i),this):this},t.prototype.toLeftHanded=function(){return this._geometry?(this._geometry.toLeftHanded(),this):this},t.prototype._bind=function(e,t,i){if(!this._geometry)return this;var n,r=this.getScene().getEngine();if(this._unIndexed)n=null;else switch(i){case g.a.PointFillMode:n=null;break;case g.a.WireFrameFillMode:n=e._getLinesIndexBuffer(this.getIndices(),r);break;default:case g.a.TriangleFillMode:n=this._geometry.getIndexBuffer()}return this._geometry._bind(t,n),this},t.prototype._draw=function(e,t,i){if(!this._geometry||!this._geometry.getVertexBuffers()||!this._unIndexed&&!this._geometry.getIndexBuffer())return this;this._internalMeshDataInfo._onBeforeDrawObservable&&this._internalMeshDataInfo._onBeforeDrawObservable.notifyObservers(this);var n=this.getScene().getEngine();return this._unIndexed||t==g.a.PointFillMode?n.drawArraysType(t,e.verticesStart,e.verticesCount,i):t==g.a.WireFrameFillMode?n.drawElementsType(t,0,e._linesIndexCount,i):n.drawElementsType(t,e.indexStart,e.indexCount,i),this},t.prototype.registerBeforeRender=function(e){return this.onBeforeRenderObservable.add(e),this},t.prototype.unregisterBeforeRender=function(e){return this.onBeforeRenderObservable.removeCallback(e),this},t.prototype.registerAfterRender=function(e){return this.onAfterRenderObservable.add(e),this},t.prototype.unregisterAfterRender=function(e){return this.onAfterRenderObservable.removeCallback(e),this},t.prototype._getInstancesRenderList=function(e,t){if(void 0===t&&(t=!1),this._instanceDataStorage.isFrozen&&this._instanceDataStorage.previousBatch)return this._instanceDataStorage.previousBatch;var i=this.getScene(),n=i._isInIntermediateRendering(),r=n?this._internalAbstractMeshDataInfo._onlyForInstancesIntermediate:this._internalAbstractMeshDataInfo._onlyForInstances,o=this._instanceDataStorage.batchCache;if(o.mustReturn=!1,o.renderSelf[e]=t||!r&&this.isEnabled()&&this.isVisible,o.visibleInstances[e]=null,this._instanceDataStorage.visibleInstances&&!t){var a=this._instanceDataStorage.visibleInstances,s=i.getRenderId(),c=n?a.intermediateDefaultRenderId:a.defaultRenderId;o.visibleInstances[e]=a[s],!o.visibleInstances[e]&&c&&(o.visibleInstances[e]=a[c])}return o.hardwareInstancedRendering[e]=!t&&this._instanceDataStorage.hardwareInstancedRendering&&null!==o.visibleInstances[e]&&void 0!==o.visibleInstances[e],this._instanceDataStorage.previousBatch=o,o},t.prototype._renderWithInstances=function(e,t,i,n,r){var o=i.visibleInstances[e._id];if(!o)return this;for(var a=this._instanceDataStorage,s=a.instancesBufferSize,c=a.instancesBuffer,l=16*(o.length+1)*4;a.instancesBufferSizeu&&n++,0!==_&&f++,d+=_,u=_}if(c[f]++,f>o&&(o=f),0===d)r++;else{var m=1/d,g=0;for(p=0;p.001&&a++}}var v=this.skeleton.bones.length,b=this.getVerticesData(h.b.MatricesIndicesKind),y=this.getVerticesData(h.b.MatricesIndicesExtraKind),T=0;for(l=0;l=v||E<0)&&T++}return{skinned:!0,valid:0===r&&0===a&&0===T,report:\"Number of Weights = \"+i/4+\"\\nMaximum influences = \"+o+\"\\nMissing Weights = \"+r+\"\\nNot Sorted = \"+n+\"\\nNot Normalized = \"+a+\"\\nWeightCounts = [\"+c+\"]\\nNumber of bones = \"+v+\"\\nBad Bone Indices = \"+T}},t.prototype._checkDelayState=function(){var e=this.getScene();return this._geometry?this._geometry.load(e):this.delayLoadState===y.a.DELAYLOADSTATE_NOTLOADED&&(this.delayLoadState=y.a.DELAYLOADSTATE_LOADING,this._queueLoad(e)),this},t.prototype._queueLoad=function(e){var t=this;e._addPendingData(this);var i=-1!==this.delayLoadingFile.indexOf(\".babylonbinarymeshdata\");return o.b.LoadFile(this.delayLoadingFile,(function(i){i instanceof ArrayBuffer?t._delayLoadingFunction(i,t):t._delayLoadingFunction(JSON.parse(i),t),t.instances.forEach((function(e){e.refreshBoundingInfo(),e._syncSubMeshes()})),t.delayLoadState=y.a.DELAYLOADSTATE_LOADED,e._removePendingData(t)}),(function(){}),e.offlineProvider,i),this},t.prototype.isInFrustum=function(t){return this.delayLoadState!==y.a.DELAYLOADSTATE_LOADING&&(!!e.prototype.isInFrustum.call(this,t)&&(this._checkDelayState(),!0))},t.prototype.setMaterialByID=function(e){var t,i=this.getScene().materials;for(t=i.length-1;t>-1;t--)if(i[t].id===e)return this.material=i[t],this;var n=this.getScene().multiMaterials;for(t=n.length-1;t>-1;t--)if(n[t].id===e)return this.material=n[t],this;return this},t.prototype.getAnimatables=function(){var e=new Array;return this.material&&e.push(this.material),this.skeleton&&e.push(this.skeleton),e},t.prototype.bakeTransformIntoVertices=function(e){if(!this.isVerticesDataPresent(h.b.PositionKind))return this;var t=this.subMeshes.splice(0);this._resetPointsArrayCache();var i,n=this.getVerticesData(h.b.PositionKind),r=new Array;for(i=0;i1)for(var n=0,r=i.meshes.slice(0);n-1&&(r.morphTargetManager=i.getMorphTargetManagerById(e.morphTargetManagerId)),void 0!==e.skeletonId&&null!==e.skeletonId&&(r.skeleton=i.getLastSkeletonByID(e.skeletonId),e.numBoneInfluencers&&(r.numBoneInfluencers=e.numBoneInfluencers)),e.animations){for(var o=0;o4,d=u?this.getVerticesData(h.b.MatricesIndicesExtraKind):null,f=u?this.getVerticesData(h.b.MatricesWeightsExtraKind):null,p=e.getTransformMatrices(this),_=c.e.Zero(),m=new c.a,g=new c.a,v=0,b=0;b0&&(c.a.FromFloat32ArrayToRefScaled(p,Math.floor(16*a[v+l]),y,g),m.addToSelf(g));if(u)for(l=0;l<4;l++)(y=f[v+l])>0&&(c.a.FromFloat32ArrayToRefScaled(p,Math.floor(16*d[v+l]),y,g),m.addToSelf(g));c.e.TransformCoordinatesFromFloatsToRef(i._sourcePositions[b],i._sourcePositions[b+1],i._sourcePositions[b+2],m,_),_.toArray(r,b),t&&(c.e.TransformNormalFromFloatsToRef(i._sourceNormals[b],i._sourceNormals[b+1],i._sourceNormals[b+2],m,_),_.toArray(o,b)),m.reset()}return this.updateVerticesData(h.b.PositionKind,r),t&&this.updateVerticesData(h.b.NormalKind,o),this},t.MinMax=function(e){var t=null,i=null;return e.forEach((function(e){var n=e.getBoundingInfo().boundingBox;t&&i?(t.minimizeInPlace(n.minimumWorld),i.maximizeInPlace(n.maximumWorld)):(t=n.minimumWorld,i=n.maximumWorld)})),t&&i?{min:t,max:i}:{min:c.e.Zero(),max:c.e.Zero()}},t.Center=function(e){var i=e instanceof Array?t.MinMax(e):e;return c.e.Center(i.min,i.max)},t.MergeMeshes=function(e,i,n,r,o,a){var s;if(void 0===i&&(i=!0),!n){var c=0;for(s=0;s=65536)return E.a.Warn(\"Cannot merge meshes because resulting mesh will have more than 65536 vertices. Please use allow32BitsIndices = true to use 32 bits indices\"),null}if(a){var l,u,h=null;o=!1}var f,p=new Array,m=new Array,g=null,b=new Array,y=null;for(s=0;s\"+i+\"
    \";e._AddLogEntry(n)},e._WarnDisabled=function(e){},e._WarnEnabled=function(t){var i=e._FormatMessage(t);console.warn(\"BJS - \"+i);var n=\"
    \"+i+\"

    \";e._AddLogEntry(n)},e._ErrorDisabled=function(e){},e._ErrorEnabled=function(t){e.errorsCount++;var i=e._FormatMessage(t);console.error(\"BJS - \"+i);var n=\"
    \"+i+\"

    \";e._AddLogEntry(n)},Object.defineProperty(e,\"LogCache\",{get:function(){return e._LogCache},enumerable:!1,configurable:!0}),e.ClearLogCache=function(){e._LogCache=\"\",e.errorsCount=0},Object.defineProperty(e,\"LogLevels\",{set:function(t){(t&e.MessageLogLevel)===e.MessageLogLevel?e.Log=e._LogEnabled:e.Log=e._LogDisabled,(t&e.WarningLogLevel)===e.WarningLogLevel?e.Warn=e._WarnEnabled:e.Warn=e._WarnDisabled,(t&e.ErrorLogLevel)===e.ErrorLogLevel?e.Error=e._ErrorEnabled:e.Error=e._ErrorDisabled},enumerable:!1,configurable:!0}),e.NoneLogLevel=0,e.MessageLogLevel=1,e.WarningLogLevel=2,e.ErrorLogLevel=4,e.AllLogLevel=7,e._LogCache=\"\",e.errorsCount=0,e.Log=e._LogEnabled,e.Warn=e._WarnEnabled,e.Error=e._ErrorEnabled,e}()},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return s})),i.d(t,\"b\",(function(){return c})),i.d(t,\"c\",(function(){return l}));var n=i(14),r=i(28),o=i(44),a=i(11),s=function(){function e(e,t,i){void 0===e&&(e=0),void 0===t&&(t=0),void 0===i&&(i=0),this.r=e,this.g=t,this.b=i}return e.prototype.toString=function(){return\"{R: \"+this.r+\" G:\"+this.g+\" B:\"+this.b+\"}\"},e.prototype.getClassName=function(){return\"Color3\"},e.prototype.getHashCode=function(){var e=255*this.r|0;return e=397*(e=397*e^(255*this.g|0))^(255*this.b|0)},e.prototype.toArray=function(e,t){return void 0===t&&(t=0),e[t]=this.r,e[t+1]=this.g,e[t+2]=this.b,this},e.prototype.fromArray=function(t,i){return void 0===i&&(i=0),e.FromArrayToRef(t,i,this),this},e.prototype.toColor4=function(e){return void 0===e&&(e=1),new c(this.r,this.g,this.b,e)},e.prototype.asArray=function(){var e=new Array;return this.toArray(e,0),e},e.prototype.toLuminance=function(){return.3*this.r+.59*this.g+.11*this.b},e.prototype.multiply=function(t){return new e(this.r*t.r,this.g*t.g,this.b*t.b)},e.prototype.multiplyToRef=function(e,t){return t.r=this.r*e.r,t.g=this.g*e.g,t.b=this.b*e.b,this},e.prototype.equals=function(e){return e&&this.r===e.r&&this.g===e.g&&this.b===e.b},e.prototype.equalsFloats=function(e,t,i){return this.r===e&&this.g===t&&this.b===i},e.prototype.scale=function(t){return new e(this.r*t,this.g*t,this.b*t)},e.prototype.scaleToRef=function(e,t){return t.r=this.r*e,t.g=this.g*e,t.b=this.b*e,this},e.prototype.scaleAndAddToRef=function(e,t){return t.r+=this.r*e,t.g+=this.g*e,t.b+=this.b*e,this},e.prototype.clampToRef=function(e,t,i){return void 0===e&&(e=0),void 0===t&&(t=1),i.r=n.a.Clamp(this.r,e,t),i.g=n.a.Clamp(this.g,e,t),i.b=n.a.Clamp(this.b,e,t),this},e.prototype.add=function(t){return new e(this.r+t.r,this.g+t.g,this.b+t.b)},e.prototype.addToRef=function(e,t){return t.r=this.r+e.r,t.g=this.g+e.g,t.b=this.b+e.b,this},e.prototype.subtract=function(t){return new e(this.r-t.r,this.g-t.g,this.b-t.b)},e.prototype.subtractToRef=function(e,t){return t.r=this.r-e.r,t.g=this.g-e.g,t.b=this.b-e.b,this},e.prototype.clone=function(){return new e(this.r,this.g,this.b)},e.prototype.copyFrom=function(e){return this.r=e.r,this.g=e.g,this.b=e.b,this},e.prototype.copyFromFloats=function(e,t,i){return this.r=e,this.g=t,this.b=i,this},e.prototype.set=function(e,t,i){return this.copyFromFloats(e,t,i)},e.prototype.toHexString=function(){var e=255*this.r|0,t=255*this.g|0,i=255*this.b|0;return\"#\"+n.a.ToHex(e)+n.a.ToHex(t)+n.a.ToHex(i)},e.prototype.toLinearSpace=function(){var t=new e;return this.toLinearSpaceToRef(t),t},e.prototype.toHSV=function(){var t=new e;return this.toHSVToRef(t),t},e.prototype.toHSVToRef=function(e){var t=this.r,i=this.g,n=this.b,r=Math.max(t,i,n),o=Math.min(t,i,n),a=0,s=0,c=r,l=r-o;0!==r&&(s=l/r),r!=o&&(r==t?(a=(i-n)/l,i=0&&o<=1?(s=r,c=a):o>=1&&o<=2?(s=a,c=r):o>=2&&o<=3?(c=r,l=a):o>=3&&o<=4?(c=a,l=r):o>=4&&o<=5?(s=a,l=r):o>=5&&o<=6&&(s=r,l=a);var u=i-r;n.set(s+u,c+u,l+u)},e.FromHexString=function(t){if(\"#\"!==t.substring(0,1)||7!==t.length)return new e(0,0,0);var i=parseInt(t.substring(1,3),16),n=parseInt(t.substring(3,5),16),r=parseInt(t.substring(5,7),16);return e.FromInts(i,n,r)},e.FromArray=function(t,i){return void 0===i&&(i=0),new e(t[i],t[i+1],t[i+2])},e.FromArrayToRef=function(e,t,i){void 0===t&&(t=0),i.r=e[t],i.g=e[t+1],i.b=e[t+2]},e.FromInts=function(t,i,n){return new e(t/255,i/255,n/255)},e.Lerp=function(t,i,n){var r=new e(0,0,0);return e.LerpToRef(t,i,n,r),r},e.LerpToRef=function(e,t,i,n){n.r=e.r+(t.r-e.r)*i,n.g=e.g+(t.g-e.g)*i,n.b=e.b+(t.b-e.b)*i},e.Red=function(){return new e(1,0,0)},e.Green=function(){return new e(0,1,0)},e.Blue=function(){return new e(0,0,1)},e.Black=function(){return new e(0,0,0)},Object.defineProperty(e,\"BlackReadOnly\",{get:function(){return e._BlackReadOnly},enumerable:!1,configurable:!0}),e.White=function(){return new e(1,1,1)},e.Purple=function(){return new e(.5,0,.5)},e.Magenta=function(){return new e(1,0,1)},e.Yellow=function(){return new e(1,1,0)},e.Gray=function(){return new e(.5,.5,.5)},e.Teal=function(){return new e(0,1,1)},e.Random=function(){return new e(Math.random(),Math.random(),Math.random())},e._BlackReadOnly=e.Black(),e}(),c=function(){function e(e,t,i,n){void 0===e&&(e=0),void 0===t&&(t=0),void 0===i&&(i=0),void 0===n&&(n=1),this.r=e,this.g=t,this.b=i,this.a=n}return e.prototype.addInPlace=function(e){return this.r+=e.r,this.g+=e.g,this.b+=e.b,this.a+=e.a,this},e.prototype.asArray=function(){var e=new Array;return this.toArray(e,0),e},e.prototype.toArray=function(e,t){return void 0===t&&(t=0),e[t]=this.r,e[t+1]=this.g,e[t+2]=this.b,e[t+3]=this.a,this},e.prototype.fromArray=function(t,i){return void 0===i&&(i=0),e.FromArrayToRef(t,i,this),this},e.prototype.equals=function(e){return e&&this.r===e.r&&this.g===e.g&&this.b===e.b&&this.a===e.a},e.prototype.add=function(t){return new e(this.r+t.r,this.g+t.g,this.b+t.b,this.a+t.a)},e.prototype.subtract=function(t){return new e(this.r-t.r,this.g-t.g,this.b-t.b,this.a-t.a)},e.prototype.subtractToRef=function(e,t){return t.r=this.r-e.r,t.g=this.g-e.g,t.b=this.b-e.b,t.a=this.a-e.a,this},e.prototype.scale=function(t){return new e(this.r*t,this.g*t,this.b*t,this.a*t)},e.prototype.scaleToRef=function(e,t){return t.r=this.r*e,t.g=this.g*e,t.b=this.b*e,t.a=this.a*e,this},e.prototype.scaleAndAddToRef=function(e,t){return t.r+=this.r*e,t.g+=this.g*e,t.b+=this.b*e,t.a+=this.a*e,this},e.prototype.clampToRef=function(e,t,i){return void 0===e&&(e=0),void 0===t&&(t=1),i.r=n.a.Clamp(this.r,e,t),i.g=n.a.Clamp(this.g,e,t),i.b=n.a.Clamp(this.b,e,t),i.a=n.a.Clamp(this.a,e,t),this},e.prototype.multiply=function(t){return new e(this.r*t.r,this.g*t.g,this.b*t.b,this.a*t.a)},e.prototype.multiplyToRef=function(e,t){return t.r=this.r*e.r,t.g=this.g*e.g,t.b=this.b*e.b,t.a=this.a*e.a,t},e.prototype.toString=function(){return\"{R: \"+this.r+\" G:\"+this.g+\" B:\"+this.b+\" A:\"+this.a+\"}\"},e.prototype.getClassName=function(){return\"Color4\"},e.prototype.getHashCode=function(){var e=255*this.r|0;return e=397*(e=397*(e=397*e^(255*this.g|0))^(255*this.b|0))^(255*this.a|0)},e.prototype.clone=function(){return new e(this.r,this.g,this.b,this.a)},e.prototype.copyFrom=function(e){return this.r=e.r,this.g=e.g,this.b=e.b,this.a=e.a,this},e.prototype.copyFromFloats=function(e,t,i,n){return this.r=e,this.g=t,this.b=i,this.a=n,this},e.prototype.set=function(e,t,i,n){return this.copyFromFloats(e,t,i,n)},e.prototype.toHexString=function(e){void 0===e&&(e=!1);var t=255*this.r|0,i=255*this.g|0,r=255*this.b|0;if(e)return\"#\"+n.a.ToHex(t)+n.a.ToHex(i)+n.a.ToHex(r);var o=255*this.a|0;return\"#\"+n.a.ToHex(t)+n.a.ToHex(i)+n.a.ToHex(r)+n.a.ToHex(o)},e.prototype.toLinearSpace=function(){var t=new e;return this.toLinearSpaceToRef(t),t},e.prototype.toLinearSpaceToRef=function(e){return e.r=Math.pow(this.r,r.c),e.g=Math.pow(this.g,r.c),e.b=Math.pow(this.b,r.c),e.a=this.a,this},e.prototype.toGammaSpace=function(){var t=new e;return this.toGammaSpaceToRef(t),t},e.prototype.toGammaSpaceToRef=function(e){return e.r=Math.pow(this.r,r.b),e.g=Math.pow(this.g,r.b),e.b=Math.pow(this.b,r.b),e.a=this.a,this},e.FromHexString=function(t){if(\"#\"!==t.substring(0,1)||9!==t.length)return new e(0,0,0,0);var i=parseInt(t.substring(1,3),16),n=parseInt(t.substring(3,5),16),r=parseInt(t.substring(5,7),16),o=parseInt(t.substring(7,9),16);return e.FromInts(i,n,r,o)},e.Lerp=function(t,i,n){var r=new e(0,0,0,0);return e.LerpToRef(t,i,n,r),r},e.LerpToRef=function(e,t,i,n){n.r=e.r+(t.r-e.r)*i,n.g=e.g+(t.g-e.g)*i,n.b=e.b+(t.b-e.b)*i,n.a=e.a+(t.a-e.a)*i},e.FromColor3=function(t,i){return void 0===i&&(i=1),new e(t.r,t.g,t.b,i)},e.FromArray=function(t,i){return void 0===i&&(i=0),new e(t[i],t[i+1],t[i+2],t[i+3])},e.FromArrayToRef=function(e,t,i){void 0===t&&(t=0),i.r=e[t],i.g=e[t+1],i.b=e[t+2],i.a=e[t+3]},e.FromInts=function(t,i,n,r){return new e(t/255,i/255,n/255,r/255)},e.CheckColors4=function(e,t){if(e.length===3*t){for(var i=[],n=0;n0?e.name:n+e.name,(p.a.StartsWith(e.url,\"data:\")||t.UseSerializedUrlIfAny&&e.url)&&(h=e.url),r=new t(h,i,!o,e.invertY,void 0,a)}return r}),e,i);return s},t.CreateFromBase64String=function(e,i,n,r,o,a,s,l,u){return void 0===a&&(a=t.TRILINEAR_SAMPLINGMODE),void 0===s&&(s=null),void 0===l&&(l=null),void 0===u&&(u=c.a.TEXTUREFORMAT_RGBA),new t(\"data:\"+i,n,r,o,a,s,l,e,!1,u)},t.LoadFromDataString=function(e,i,n,r,o,a,s,l,u,h){return void 0===r&&(r=!1),void 0===o&&(o=!1),void 0===a&&(a=!0),void 0===s&&(s=t.TRILINEAR_SAMPLINGMODE),void 0===l&&(l=null),void 0===u&&(u=null),void 0===h&&(h=c.a.TEXTUREFORMAT_RGBA),\"data:\"!==e.substr(0,5)&&(e=\"data:\"+e),new t(e,n,o,a,s,l,u,i,r,h)},t.SerializeBuffers=!0,t.ForceSerializeBuffers=!1,t._CubeTextureParser=function(e,t,i){throw u.a.WarnImport(\"CubeTexture\")},t._CreateMirror=function(e,t,i,n){throw u.a.WarnImport(\"MirrorTexture\")},t._CreateRenderTargetTexture=function(e,t,i,n){throw u.a.WarnImport(\"RenderTargetTexture\")},t.NEAREST_SAMPLINGMODE=c.a.TEXTURE_NEAREST_SAMPLINGMODE,t.NEAREST_NEAREST_MIPLINEAR=c.a.TEXTURE_NEAREST_NEAREST_MIPLINEAR,t.BILINEAR_SAMPLINGMODE=c.a.TEXTURE_BILINEAR_SAMPLINGMODE,t.LINEAR_LINEAR_MIPNEAREST=c.a.TEXTURE_LINEAR_LINEAR_MIPNEAREST,t.TRILINEAR_SAMPLINGMODE=c.a.TEXTURE_TRILINEAR_SAMPLINGMODE,t.LINEAR_LINEAR_MIPLINEAR=c.a.TEXTURE_LINEAR_LINEAR_MIPLINEAR,t.NEAREST_NEAREST_MIPNEAREST=c.a.TEXTURE_NEAREST_NEAREST_MIPNEAREST,t.NEAREST_LINEAR_MIPNEAREST=c.a.TEXTURE_NEAREST_LINEAR_MIPNEAREST,t.NEAREST_LINEAR_MIPLINEAR=c.a.TEXTURE_NEAREST_LINEAR_MIPLINEAR,t.NEAREST_LINEAR=c.a.TEXTURE_NEAREST_LINEAR,t.NEAREST_NEAREST=c.a.TEXTURE_NEAREST_NEAREST,t.LINEAR_NEAREST_MIPNEAREST=c.a.TEXTURE_LINEAR_NEAREST_MIPNEAREST,t.LINEAR_NEAREST_MIPLINEAR=c.a.TEXTURE_LINEAR_NEAREST_MIPLINEAR,t.LINEAR_LINEAR=c.a.TEXTURE_LINEAR_LINEAR,t.LINEAR_NEAREST=c.a.TEXTURE_LINEAR_NEAREST,t.EXPLICIT_MODE=c.a.TEXTURE_EXPLICIT_MODE,t.SPHERICAL_MODE=c.a.TEXTURE_SPHERICAL_MODE,t.PLANAR_MODE=c.a.TEXTURE_PLANAR_MODE,t.CUBIC_MODE=c.a.TEXTURE_CUBIC_MODE,t.PROJECTION_MODE=c.a.TEXTURE_PROJECTION_MODE,t.SKYBOX_MODE=c.a.TEXTURE_SKYBOX_MODE,t.INVCUBIC_MODE=c.a.TEXTURE_INVCUBIC_MODE,t.EQUIRECTANGULAR_MODE=c.a.TEXTURE_EQUIRECTANGULAR_MODE,t.FIXED_EQUIRECTANGULAR_MODE=c.a.TEXTURE_FIXED_EQUIRECTANGULAR_MODE,t.FIXED_EQUIRECTANGULAR_MIRRORED_MODE=c.a.TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE,t.CLAMP_ADDRESSMODE=c.a.TEXTURE_CLAMP_ADDRESSMODE,t.WRAP_ADDRESSMODE=c.a.TEXTURE_WRAP_ADDRESSMODE,t.MIRROR_ADDRESSMODE=c.a.TEXTURE_MIRROR_ADDRESSMODE,t.UseSerializedUrlIfAny=!1,Object(n.c)([Object(r.c)()],t.prototype,\"url\",void 0),Object(n.c)([Object(r.c)()],t.prototype,\"uOffset\",void 0),Object(n.c)([Object(r.c)()],t.prototype,\"vOffset\",void 0),Object(n.c)([Object(r.c)()],t.prototype,\"uScale\",void 0),Object(n.c)([Object(r.c)()],t.prototype,\"vScale\",void 0),Object(n.c)([Object(r.c)()],t.prototype,\"uAng\",void 0),Object(n.c)([Object(r.c)()],t.prototype,\"vAng\",void 0),Object(n.c)([Object(r.c)()],t.prototype,\"wAng\",void 0),Object(n.c)([Object(r.c)()],t.prototype,\"uRotationCenter\",void 0),Object(n.c)([Object(r.c)()],t.prototype,\"vRotationCenter\",void 0),Object(n.c)([Object(r.c)()],t.prototype,\"wRotationCenter\",void 0),Object(n.c)([Object(r.c)()],t.prototype,\"homogeneousRotationInUVTransform\",void 0),Object(n.c)([Object(r.c)()],t.prototype,\"isBlocking\",null),t}(s.a);l.a.RegisteredTypes[\"BABYLON.Texture\"]=m,r.a._TextureParser=m.Parse},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return n}));var n=function(){function e(){}return e.GetClass=function(e){return this.RegisteredTypes&&this.RegisteredTypes[e]?this.RegisteredTypes[e]:null},e.RegisteredTypes={},e}()},function(e,t,i){\"use strict\";i.d(t,\"b\",(function(){return m})),i.d(t,\"c\",(function(){return g})),i.d(t,\"a\",(function(){return v}));var n=i(6),r=i(38),o=i(8),a=i(41),s=i(57),c=i(21),l=i(49),u=i(22),h=i(56),d=i(145),f=i(104),p=i(122),_=i(120),m=function(){function e(){}return Object.defineProperty(e,\"BaseUrl\",{get:function(){return h.a.BaseUrl},set:function(e){h.a.BaseUrl=e},enumerable:!1,configurable:!0}),Object.defineProperty(e,\"DefaultRetryStrategy\",{get:function(){return h.a.DefaultRetryStrategy},set:function(e){h.a.DefaultRetryStrategy=e},enumerable:!1,configurable:!0}),Object.defineProperty(e,\"CorsBehavior\",{get:function(){return h.a.CorsBehavior},set:function(e){h.a.CorsBehavior=e},enumerable:!1,configurable:!0}),Object.defineProperty(e,\"UseFallbackTexture\",{get:function(){return u.a.UseFallbackTexture},set:function(e){u.a.UseFallbackTexture=e},enumerable:!1,configurable:!0}),Object.defineProperty(e,\"RegisteredExternalClasses\",{get:function(){return p.a.RegisteredExternalClasses},set:function(e){p.a.RegisteredExternalClasses=e},enumerable:!1,configurable:!0}),Object.defineProperty(e,\"fallbackTexture\",{get:function(){return u.a.FallbackTexture},set:function(e){u.a.FallbackTexture=e},enumerable:!1,configurable:!0}),e.FetchToRef=function(e,t,i,n,r,o){var a=4*((Math.abs(e)*i%i|0)+(Math.abs(t)*n%n|0)*i);o.r=r[a]/255,o.g=r[a+1]/255,o.b=r[a+2]/255,o.a=r[a+3]/255},e.Mix=function(e,t,i){return e*(1-i)+t*i},e.Instantiate=function(e){return p.a.Instantiate(e)},e.Slice=function(e,t,i){return e.slice?e.slice(t,i):Array.prototype.slice.call(e,t,i)},e.SliceToArray=function(e,t,i){return Array.isArray(e)?e.slice(t,i):Array.prototype.slice.call(e,t,i)},e.SetImmediate=function(e){f.a.SetImmediate(e)},e.IsExponentOfTwo=function(e){var t=1;do{t*=2}while(t=t)break;if(n(a),o&&o()){e.breakLoop();break}}e.executeNext()}),a)}),r)},e}();u.a.FallbackTexture=\"data:image/jpg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QBmRXhpZgAATU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAAExAAIAAAAQAAAATgAAAAAAAABgAAAAAQAAAGAAAAABcGFpbnQubmV0IDQuMC41AP/bAEMABAIDAwMCBAMDAwQEBAQFCQYFBQUFCwgIBgkNCw0NDQsMDA4QFBEODxMPDAwSGBITFRYXFxcOERkbGRYaFBYXFv/bAEMBBAQEBQUFCgYGChYPDA8WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFv/AABEIAQABAAMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APH6KKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FCiiigD6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++gooooA+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gUKKKKAPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76CiiigD5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BQooooA+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/voKKKKAPl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FCiiigD6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++gooooA+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gUKKKKAPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76CiiigD5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BQooooA+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/voKKKKAPl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FCiiigD6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++gooooA+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gUKKKKAPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76Pl+iiivuj+BT6gooor4U/vo+X6KKK+6P4FPqCiiivhT++j5fooor7o/gU+oKKKK+FP76P//Z\",d.a.Apply()},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return p}));var n=i(1),r=i(6),o=i(38),a=i(22),s=i(21),c=i(26),l=i(2),u=i(146),h=i(55),d=i(88),f=i(8),p=(i(123),i(129),i(124),function(e){function t(i,n,a,s){void 0===s&&(s=!1);var c=e.call(this,i,n,a,s)||this;if(c.enableOfflineSupport=!1,c.disableManifestCheck=!1,c.scenes=new Array,c.onNewSceneAddedObservable=new r.c,c.postProcesses=new Array,c.isPointerLock=!1,c.onResizeObservable=new r.c,c.onCanvasBlurObservable=new r.c,c.onCanvasFocusObservable=new r.c,c.onCanvasPointerOutObservable=new r.c,c.onBeginFrameObservable=new r.c,c.customAnimationFrameRequester=null,c.onEndFrameObservable=new r.c,c.onBeforeShaderCompilationObservable=new r.c,c.onAfterShaderCompilationObservable=new r.c,c._deterministicLockstep=!1,c._lockstepMaxSteps=4,c._timeStep=1/60,c._fps=60,c._deltaTime=0,c._drawCalls=new h.a,c.canvasTabIndex=1,c.disablePerformanceMonitorInBackground=!1,c._performanceMonitor=new u.a,t.Instances.push(c),!i)return c;if(a=c._creationOptions,i.getContext){var l=i;if(c._onCanvasFocus=function(){c.onCanvasFocusObservable.notifyObservers(c)},c._onCanvasBlur=function(){c.onCanvasBlurObservable.notifyObservers(c)},l.addEventListener(\"focus\",c._onCanvasFocus),l.addEventListener(\"blur\",c._onCanvasBlur),c._onBlur=function(){c.disablePerformanceMonitorInBackground&&c._performanceMonitor.disable(),c._windowIsBackground=!0},c._onFocus=function(){c.disablePerformanceMonitorInBackground&&c._performanceMonitor.enable(),c._windowIsBackground=!1},c._onCanvasPointerOut=function(e){c.onCanvasPointerOutObservable.notifyObservers(e)},l.addEventListener(\"pointerout\",c._onCanvasPointerOut),o.a.IsWindowObjectExist()){var d=c.getHostWindow();d.addEventListener(\"blur\",c._onBlur),d.addEventListener(\"focus\",c._onFocus);var f=document;c._onFullscreenChange=function(){void 0!==f.fullscreen?c.isFullscreen=f.fullscreen:void 0!==f.mozFullScreen?c.isFullscreen=f.mozFullScreen:void 0!==f.webkitIsFullScreen?c.isFullscreen=f.webkitIsFullScreen:void 0!==f.msIsFullScreen&&(c.isFullscreen=f.msIsFullScreen),c.isFullscreen&&c._pointerLockRequested&&l&&t._RequestPointerlock(l)},document.addEventListener(\"fullscreenchange\",c._onFullscreenChange,!1),document.addEventListener(\"mozfullscreenchange\",c._onFullscreenChange,!1),document.addEventListener(\"webkitfullscreenchange\",c._onFullscreenChange,!1),document.addEventListener(\"msfullscreenchange\",c._onFullscreenChange,!1),c._onPointerLockChange=function(){c.isPointerLock=f.mozPointerLockElement===l||f.webkitPointerLockElement===l||f.msPointerLockElement===l||f.pointerLockElement===l},document.addEventListener(\"pointerlockchange\",c._onPointerLockChange,!1),document.addEventListener(\"mspointerlockchange\",c._onPointerLockChange,!1),document.addEventListener(\"mozpointerlockchange\",c._onPointerLockChange,!1),document.addEventListener(\"webkitpointerlockchange\",c._onPointerLockChange,!1),!t.audioEngine&&a.audioEngine&&t.AudioEngineFactory&&(t.audioEngine=t.AudioEngineFactory(c.getRenderingCanvas()))}c._connectVREvents(),c.enableOfflineSupport=void 0!==t.OfflineProviderFactory,a.doNotHandleTouchAction||c._disableTouchAction(),c._deterministicLockstep=!!a.deterministicLockstep,c._lockstepMaxSteps=a.lockstepMaxSteps||0,c._timeStep=a.timeStep||1/60}return c._prepareVRComponent(),a.autoEnableWebVR&&c.initWebVR(),c}return Object(n.d)(t,e),Object.defineProperty(t,\"NpmPackage\",{get:function(){return c.a.NpmPackage},enumerable:!1,configurable:!0}),Object.defineProperty(t,\"Version\",{get:function(){return c.a.Version},enumerable:!1,configurable:!0}),Object.defineProperty(t,\"Instances\",{get:function(){return a.a.Instances},enumerable:!1,configurable:!0}),Object.defineProperty(t,\"LastCreatedEngine\",{get:function(){return a.a.LastCreatedEngine},enumerable:!1,configurable:!0}),Object.defineProperty(t,\"LastCreatedScene\",{get:function(){return a.a.LastCreatedScene},enumerable:!1,configurable:!0}),t.MarkAllMaterialsAsDirty=function(e,i){for(var n=0;n0?this.customAnimationFrameRequester?(this.customAnimationFrameRequester.requestID=this._queueNewFrame(this.customAnimationFrameRequester.renderFunction||this._boundRenderFunction,this.customAnimationFrameRequester),this._frameHandler=this.customAnimationFrameRequester.requestID):this.isVRPresenting()?this._requestVRFrame():this._frameHandler=this._queueNewFrame(this._boundRenderFunction,this.getHostWindow()):this._renderingQueueLaunched=!1},t.prototype._renderViews=function(){return!1},t.prototype.switchFullscreen=function(e){this.isFullscreen?this.exitFullscreen():this.enterFullscreen(e)},t.prototype.enterFullscreen=function(e){this.isFullscreen||(this._pointerLockRequested=e,this._renderingCanvas&&t._RequestFullscreen(this._renderingCanvas))},t.prototype.exitFullscreen=function(){this.isFullscreen&&t._ExitFullscreen()},t.prototype.enterPointerlock=function(){this._renderingCanvas&&t._RequestPointerlock(this._renderingCanvas)},t.prototype.exitPointerlock=function(){t._ExitPointerlock()},t.prototype.beginFrame=function(){this._measureFps(),this.onBeginFrameObservable.notifyObservers(this),e.prototype.beginFrame.call(this)},t.prototype.endFrame=function(){e.prototype.endFrame.call(this),this._submitVRFrame(),this.onEndFrameObservable.notifyObservers(this)},t.prototype.resize=function(){this.isVRPresenting()||e.prototype.resize.call(this)},t.prototype.setSize=function(t,i){if(!this._renderingCanvas)return!1;if(!e.prototype.setSize.call(this,t,i))return!1;if(this.scenes){for(var n=0;n1&&r){var a=this.createTransformFeedback();this.bindTransformFeedback(a),this.setTranformFeedbackVaryings(o,r),e.transformFeedback=a}return n.linkProgram(o),this.webGLVersion>1&&r&&this.bindTransformFeedback(null),e.context=n,e.vertexShader=t,e.fragmentShader=i,e.isParallelCompiled||this._finalizePipelineContext(e),o},t.prototype._releaseTexture=function(t){e.prototype._releaseTexture.call(this,t),this.scenes.forEach((function(e){e.postProcesses.forEach((function(e){e._outputTexture==t&&(e._outputTexture=null)})),e.cameras.forEach((function(e){e._postProcesses.forEach((function(e){e&&e._outputTexture==t&&(e._outputTexture=null)}))}))}))},t.prototype._rescaleTexture=function(e,i,n,r,o){var a=this;this._gl.texParameteri(this._gl.TEXTURE_2D,this._gl.TEXTURE_MAG_FILTER,this._gl.LINEAR),this._gl.texParameteri(this._gl.TEXTURE_2D,this._gl.TEXTURE_MIN_FILTER,this._gl.LINEAR),this._gl.texParameteri(this._gl.TEXTURE_2D,this._gl.TEXTURE_WRAP_S,this._gl.CLAMP_TO_EDGE),this._gl.texParameteri(this._gl.TEXTURE_2D,this._gl.TEXTURE_WRAP_T,this._gl.CLAMP_TO_EDGE);var s=this.createRenderTargetTexture({width:i.width,height:i.height},{generateMipMaps:!1,type:l.a.TEXTURETYPE_UNSIGNED_INT,samplingMode:l.a.TEXTURE_BILINEAR_SAMPLINGMODE,generateDepthBuffer:!1,generateStencilBuffer:!1});!this._rescalePostProcess&&t._RescalePostProcessFactory&&(this._rescalePostProcess=t._RescalePostProcessFactory(this)),this._rescalePostProcess.getEffect().executeWhenCompiled((function(){a._rescalePostProcess.onApply=function(t){t._bindTexture(\"textureSampler\",e)};var t=n;t||(t=a.scenes[a.scenes.length-1]),t.postProcessManager.directRender([a._rescalePostProcess],s,!0),a._bindTextureDirectly(a._gl.TEXTURE_2D,i,!0),a._gl.copyTexImage2D(a._gl.TEXTURE_2D,0,r,0,0,i.width,i.height,0),a.unBindFramebuffer(s),a._releaseTexture(s),o&&o()}))},t.prototype.getFps=function(){return this._fps},t.prototype.getDeltaTime=function(){return this._deltaTime},t.prototype._measureFps=function(){this._performanceMonitor.sampleFrame(),this._fps=this._performanceMonitor.averageFPS,this._deltaTime=this._performanceMonitor.instantaneousFrameTime||0},t.prototype._uploadImageToTexture=function(e,t,i,n){void 0===i&&(i=0),void 0===n&&(n=0);var r=this._gl,o=this._getWebGLTextureType(e.type),a=this._getInternalFormat(e.format),s=this._getRGBABufferInternalSizedFormat(e.type,a),c=e.isCube?r.TEXTURE_CUBE_MAP:r.TEXTURE_2D;this._bindTextureDirectly(c,e,!0),this._unpackFlipY(e.invertY);var l=r.TEXTURE_2D;e.isCube&&(l=r.TEXTURE_CUBE_MAP_POSITIVE_X+i),r.texImage2D(l,n,s,a,o,t),this._bindTextureDirectly(c,null,!0)},t.prototype.updateRenderTargetTextureSampleCount=function(e,t){if(this.webGLVersion<2||!e)return 1;if(e.samples===t)return t;var i=this._gl;if(t=Math.min(t,this.getCaps().maxMSAASamples),e._depthStencilBuffer&&(i.deleteRenderbuffer(e._depthStencilBuffer),e._depthStencilBuffer=null),e._MSAAFramebuffer&&(i.deleteFramebuffer(e._MSAAFramebuffer),e._MSAAFramebuffer=null),e._MSAARenderBuffer&&(i.deleteRenderbuffer(e._MSAARenderBuffer),e._MSAARenderBuffer=null),t>1&&i.renderbufferStorageMultisample){var n=i.createFramebuffer();if(!n)throw new Error(\"Unable to create multi sampled framebuffer\");e._MSAAFramebuffer=n,this._bindUnboundFramebuffer(e._MSAAFramebuffer);var r=i.createRenderbuffer();if(!r)throw new Error(\"Unable to create multi sampled framebuffer\");i.bindRenderbuffer(i.RENDERBUFFER,r),i.renderbufferStorageMultisample(i.RENDERBUFFER,t,this._getRGBAMultiSampleBufferFormat(e.type),e.width,e.height),i.framebufferRenderbuffer(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.RENDERBUFFER,r),e._MSAARenderBuffer=r}else this._bindUnboundFramebuffer(e._framebuffer);return e.samples=t,e._depthStencilBuffer=this._setupFramebufferDepthAttachments(e._generateStencilBuffer,e._generateDepthBuffer,e.width,e.height,t),this._bindUnboundFramebuffer(null),t},t.prototype.updateTextureComparisonFunction=function(e,t){if(1!==this.webGLVersion){var i=this._gl;e.isCube?(this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,e,!0),0===t?(i.texParameteri(i.TEXTURE_CUBE_MAP,i.TEXTURE_COMPARE_FUNC,l.a.LEQUAL),i.texParameteri(i.TEXTURE_CUBE_MAP,i.TEXTURE_COMPARE_MODE,i.NONE)):(i.texParameteri(i.TEXTURE_CUBE_MAP,i.TEXTURE_COMPARE_FUNC,t),i.texParameteri(i.TEXTURE_CUBE_MAP,i.TEXTURE_COMPARE_MODE,i.COMPARE_REF_TO_TEXTURE)),this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,null)):(this._bindTextureDirectly(this._gl.TEXTURE_2D,e,!0),0===t?(i.texParameteri(i.TEXTURE_2D,i.TEXTURE_COMPARE_FUNC,l.a.LEQUAL),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_COMPARE_MODE,i.NONE)):(i.texParameteri(i.TEXTURE_2D,i.TEXTURE_COMPARE_FUNC,t),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_COMPARE_MODE,i.COMPARE_REF_TO_TEXTURE)),this._bindTextureDirectly(this._gl.TEXTURE_2D,null)),e._comparisonFunction=t}else f.a.Error(\"WebGL 1 does not support texture comparison.\")},t.prototype.createInstancesBuffer=function(e){var t=this._gl.createBuffer();if(!t)throw new Error(\"Unable to create instance buffer\");var i=new d.a(t);return i.capacity=e,this.bindArrayBuffer(i),this._gl.bufferData(this._gl.ARRAY_BUFFER,e,this._gl.DYNAMIC_DRAW),i},t.prototype.deleteInstancesBuffer=function(e){this._gl.deleteBuffer(e)},t.prototype._clientWaitAsync=function(e,t,i){void 0===t&&(t=0),void 0===i&&(i=10);var n=this._gl;return new Promise((function(r,o){var a=function(){var s=n.clientWaitSync(e,t,0);s!=n.WAIT_FAILED?s!=n.TIMEOUT_EXPIRED?r():setTimeout(a,i):o()};a()}))},t.prototype._readPixelsAsync=function(e,t,i,n,r,o,a){if(this._webGLVersion<2)throw new Error(\"_readPixelsAsync only work on WebGL2+\");var s=this._gl,c=s.createBuffer();s.bindBuffer(s.PIXEL_PACK_BUFFER,c),s.bufferData(s.PIXEL_PACK_BUFFER,a.byteLength,s.STREAM_READ),s.readPixels(e,t,i,n,r,o,0),s.bindBuffer(s.PIXEL_PACK_BUFFER,null);var l=s.fenceSync(s.SYNC_GPU_COMMANDS_COMPLETE,0);return l?(s.flush(),this._clientWaitAsync(l,0,10).then((function(){return s.deleteSync(l),s.bindBuffer(s.PIXEL_PACK_BUFFER,c),s.getBufferSubData(s.PIXEL_PACK_BUFFER,0,a),s.bindBuffer(s.PIXEL_PACK_BUFFER,null),s.deleteBuffer(c),a}))):null},t.prototype.dispose=function(){for(this.hideLoadingUI(),this.onNewSceneAddedObservable.clear();this.postProcesses.length;)this.postProcesses[0].dispose();for(this._rescalePostProcess&&this._rescalePostProcess.dispose();this.scenes.length;)this.scenes[0].dispose();1===t.Instances.length&&t.audioEngine&&t.audioEngine.dispose(),this.disableVR(),o.a.IsWindowObjectExist()&&(window.removeEventListener(\"blur\",this._onBlur),window.removeEventListener(\"focus\",this._onFocus),this._renderingCanvas&&(this._renderingCanvas.removeEventListener(\"focus\",this._onCanvasFocus),this._renderingCanvas.removeEventListener(\"blur\",this._onCanvasBlur),this._renderingCanvas.removeEventListener(\"pointerout\",this._onCanvasPointerOut)),o.a.IsDocumentAvailable()&&(document.removeEventListener(\"fullscreenchange\",this._onFullscreenChange),document.removeEventListener(\"mozfullscreenchange\",this._onFullscreenChange),document.removeEventListener(\"webkitfullscreenchange\",this._onFullscreenChange),document.removeEventListener(\"msfullscreenchange\",this._onFullscreenChange),document.removeEventListener(\"pointerlockchange\",this._onPointerLockChange),document.removeEventListener(\"mspointerlockchange\",this._onPointerLockChange),document.removeEventListener(\"mozpointerlockchange\",this._onPointerLockChange),document.removeEventListener(\"webkitpointerlockchange\",this._onPointerLockChange))),e.prototype.dispose.call(this);var i=t.Instances.indexOf(this);i>=0&&t.Instances.splice(i,1),this.onResizeObservable.clear(),this.onCanvasBlurObservable.clear(),this.onCanvasFocusObservable.clear(),this.onCanvasPointerOutObservable.clear(),this.onBeginFrameObservable.clear(),this.onEndFrameObservable.clear()},t.prototype._disableTouchAction=function(){this._renderingCanvas&&this._renderingCanvas.setAttribute&&(this._renderingCanvas.setAttribute(\"touch-action\",\"none\"),this._renderingCanvas.style.touchAction=\"none\",this._renderingCanvas.style.msTouchAction=\"none\")},t.prototype.displayLoadingUI=function(){if(o.a.IsWindowObjectExist()){var e=this.loadingScreen;e&&e.displayLoadingUI()}},t.prototype.hideLoadingUI=function(){if(o.a.IsWindowObjectExist()){var e=this._loadingScreen;e&&e.hideLoadingUI()}},Object.defineProperty(t.prototype,\"loadingScreen\",{get:function(){return!this._loadingScreen&&this._renderingCanvas&&(this._loadingScreen=t.DefaultLoadingScreenFactory(this._renderingCanvas)),this._loadingScreen},set:function(e){this._loadingScreen=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"loadingUIText\",{set:function(e){this.loadingScreen.loadingUIText=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"loadingUIBackgroundColor\",{set:function(e){this.loadingScreen.loadingUIBackgroundColor=e},enumerable:!1,configurable:!0}),t._RequestPointerlock=function(e){e.requestPointerLock=e.requestPointerLock||e.msRequestPointerLock||e.mozRequestPointerLock||e.webkitRequestPointerLock,e.requestPointerLock&&e.requestPointerLock()},t._ExitPointerlock=function(){var e=document;document.exitPointerLock=document.exitPointerLock||e.msExitPointerLock||e.mozExitPointerLock||e.webkitExitPointerLock,document.exitPointerLock&&document.exitPointerLock()},t._RequestFullscreen=function(e){var t=e.requestFullscreen||e.msRequestFullscreen||e.webkitRequestFullscreen||e.mozRequestFullScreen;t&&t.call(e)},t._ExitFullscreen=function(){var e=document;document.exitFullscreen?document.exitFullscreen():e.mozCancelFullScreen?e.mozCancelFullScreen():e.webkitCancelFullScreen?e.webkitCancelFullScreen():e.msCancelFullScreen&&e.msCancelFullScreen()},t.ALPHA_DISABLE=l.a.ALPHA_DISABLE,t.ALPHA_ADD=l.a.ALPHA_ADD,t.ALPHA_COMBINE=l.a.ALPHA_COMBINE,t.ALPHA_SUBTRACT=l.a.ALPHA_SUBTRACT,t.ALPHA_MULTIPLY=l.a.ALPHA_MULTIPLY,t.ALPHA_MAXIMIZED=l.a.ALPHA_MAXIMIZED,t.ALPHA_ONEONE=l.a.ALPHA_ONEONE,t.ALPHA_PREMULTIPLIED=l.a.ALPHA_PREMULTIPLIED,t.ALPHA_PREMULTIPLIED_PORTERDUFF=l.a.ALPHA_PREMULTIPLIED_PORTERDUFF,t.ALPHA_INTERPOLATE=l.a.ALPHA_INTERPOLATE,t.ALPHA_SCREENMODE=l.a.ALPHA_SCREENMODE,t.DELAYLOADSTATE_NONE=l.a.DELAYLOADSTATE_NONE,t.DELAYLOADSTATE_LOADED=l.a.DELAYLOADSTATE_LOADED,t.DELAYLOADSTATE_LOADING=l.a.DELAYLOADSTATE_LOADING,t.DELAYLOADSTATE_NOTLOADED=l.a.DELAYLOADSTATE_NOTLOADED,t.NEVER=l.a.NEVER,t.ALWAYS=l.a.ALWAYS,t.LESS=l.a.LESS,t.EQUAL=l.a.EQUAL,t.LEQUAL=l.a.LEQUAL,t.GREATER=l.a.GREATER,t.GEQUAL=l.a.GEQUAL,t.NOTEQUAL=l.a.NOTEQUAL,t.KEEP=l.a.KEEP,t.REPLACE=l.a.REPLACE,t.INCR=l.a.INCR,t.DECR=l.a.DECR,t.INVERT=l.a.INVERT,t.INCR_WRAP=l.a.INCR_WRAP,t.DECR_WRAP=l.a.DECR_WRAP,t.TEXTURE_CLAMP_ADDRESSMODE=l.a.TEXTURE_CLAMP_ADDRESSMODE,t.TEXTURE_WRAP_ADDRESSMODE=l.a.TEXTURE_WRAP_ADDRESSMODE,t.TEXTURE_MIRROR_ADDRESSMODE=l.a.TEXTURE_MIRROR_ADDRESSMODE,t.TEXTUREFORMAT_ALPHA=l.a.TEXTUREFORMAT_ALPHA,t.TEXTUREFORMAT_LUMINANCE=l.a.TEXTUREFORMAT_LUMINANCE,t.TEXTUREFORMAT_LUMINANCE_ALPHA=l.a.TEXTUREFORMAT_LUMINANCE_ALPHA,t.TEXTUREFORMAT_RGB=l.a.TEXTUREFORMAT_RGB,t.TEXTUREFORMAT_RGBA=l.a.TEXTUREFORMAT_RGBA,t.TEXTUREFORMAT_RED=l.a.TEXTUREFORMAT_RED,t.TEXTUREFORMAT_R=l.a.TEXTUREFORMAT_R,t.TEXTUREFORMAT_RG=l.a.TEXTUREFORMAT_RG,t.TEXTUREFORMAT_RED_INTEGER=l.a.TEXTUREFORMAT_RED_INTEGER,t.TEXTUREFORMAT_R_INTEGER=l.a.TEXTUREFORMAT_R_INTEGER,t.TEXTUREFORMAT_RG_INTEGER=l.a.TEXTUREFORMAT_RG_INTEGER,t.TEXTUREFORMAT_RGB_INTEGER=l.a.TEXTUREFORMAT_RGB_INTEGER,t.TEXTUREFORMAT_RGBA_INTEGER=l.a.TEXTUREFORMAT_RGBA_INTEGER,t.TEXTURETYPE_UNSIGNED_BYTE=l.a.TEXTURETYPE_UNSIGNED_BYTE,t.TEXTURETYPE_UNSIGNED_INT=l.a.TEXTURETYPE_UNSIGNED_INT,t.TEXTURETYPE_FLOAT=l.a.TEXTURETYPE_FLOAT,t.TEXTURETYPE_HALF_FLOAT=l.a.TEXTURETYPE_HALF_FLOAT,t.TEXTURETYPE_BYTE=l.a.TEXTURETYPE_BYTE,t.TEXTURETYPE_SHORT=l.a.TEXTURETYPE_SHORT,t.TEXTURETYPE_UNSIGNED_SHORT=l.a.TEXTURETYPE_UNSIGNED_SHORT,t.TEXTURETYPE_INT=l.a.TEXTURETYPE_INT,t.TEXTURETYPE_UNSIGNED_INTEGER=l.a.TEXTURETYPE_UNSIGNED_INTEGER,t.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4=l.a.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4,t.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1=l.a.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1,t.TEXTURETYPE_UNSIGNED_SHORT_5_6_5=l.a.TEXTURETYPE_UNSIGNED_SHORT_5_6_5,t.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV=l.a.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV,t.TEXTURETYPE_UNSIGNED_INT_24_8=l.a.TEXTURETYPE_UNSIGNED_INT_24_8,t.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV=l.a.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV,t.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV=l.a.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV,t.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV=l.a.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV,t.TEXTURE_NEAREST_SAMPLINGMODE=l.a.TEXTURE_NEAREST_SAMPLINGMODE,t.TEXTURE_BILINEAR_SAMPLINGMODE=l.a.TEXTURE_BILINEAR_SAMPLINGMODE,t.TEXTURE_TRILINEAR_SAMPLINGMODE=l.a.TEXTURE_TRILINEAR_SAMPLINGMODE,t.TEXTURE_NEAREST_NEAREST_MIPLINEAR=l.a.TEXTURE_NEAREST_NEAREST_MIPLINEAR,t.TEXTURE_LINEAR_LINEAR_MIPNEAREST=l.a.TEXTURE_LINEAR_LINEAR_MIPNEAREST,t.TEXTURE_LINEAR_LINEAR_MIPLINEAR=l.a.TEXTURE_LINEAR_LINEAR_MIPLINEAR,t.TEXTURE_NEAREST_NEAREST_MIPNEAREST=l.a.TEXTURE_NEAREST_NEAREST_MIPNEAREST,t.TEXTURE_NEAREST_LINEAR_MIPNEAREST=l.a.TEXTURE_NEAREST_LINEAR_MIPNEAREST,t.TEXTURE_NEAREST_LINEAR_MIPLINEAR=l.a.TEXTURE_NEAREST_LINEAR_MIPLINEAR,t.TEXTURE_NEAREST_LINEAR=l.a.TEXTURE_NEAREST_LINEAR,t.TEXTURE_NEAREST_NEAREST=l.a.TEXTURE_NEAREST_NEAREST,t.TEXTURE_LINEAR_NEAREST_MIPNEAREST=l.a.TEXTURE_LINEAR_NEAREST_MIPNEAREST,t.TEXTURE_LINEAR_NEAREST_MIPLINEAR=l.a.TEXTURE_LINEAR_NEAREST_MIPLINEAR,t.TEXTURE_LINEAR_LINEAR=l.a.TEXTURE_LINEAR_LINEAR,t.TEXTURE_LINEAR_NEAREST=l.a.TEXTURE_LINEAR_NEAREST,t.TEXTURE_EXPLICIT_MODE=l.a.TEXTURE_EXPLICIT_MODE,t.TEXTURE_SPHERICAL_MODE=l.a.TEXTURE_SPHERICAL_MODE,t.TEXTURE_PLANAR_MODE=l.a.TEXTURE_PLANAR_MODE,t.TEXTURE_CUBIC_MODE=l.a.TEXTURE_CUBIC_MODE,t.TEXTURE_PROJECTION_MODE=l.a.TEXTURE_PROJECTION_MODE,t.TEXTURE_SKYBOX_MODE=l.a.TEXTURE_SKYBOX_MODE,t.TEXTURE_INVCUBIC_MODE=l.a.TEXTURE_INVCUBIC_MODE,t.TEXTURE_EQUIRECTANGULAR_MODE=l.a.TEXTURE_EQUIRECTANGULAR_MODE,t.TEXTURE_FIXED_EQUIRECTANGULAR_MODE=l.a.TEXTURE_FIXED_EQUIRECTANGULAR_MODE,t.TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE=l.a.TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE,t.SCALEMODE_FLOOR=l.a.SCALEMODE_FLOOR,t.SCALEMODE_NEAREST=l.a.SCALEMODE_NEAREST,t.SCALEMODE_CEILING=l.a.SCALEMODE_CEILING,t._RescalePostProcessFactory=null,t}(c.a))},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return n}));var n=function(){function e(){}return e.WithinEpsilon=function(e,t,i){void 0===i&&(i=1401298e-51);var n=e-t;return-i<=n&&n<=i},e.ToHex=function(e){var t=e.toString(16);return e<=15?(\"0\"+t).toUpperCase():t.toUpperCase()},e.Sign=function(e){return 0===(e=+e)||isNaN(e)?e:e>0?1:-1},e.Clamp=function(e,t,i){return void 0===t&&(t=0),void 0===i&&(i=1),Math.min(i,Math.max(t,e))},e.Log2=function(e){return Math.log(e)*Math.LOG2E},e.Repeat=function(e,t){return e-Math.floor(e/t)*t},e.Normalize=function(e,t,i){return(e-t)/(i-t)},e.Denormalize=function(e,t,i){return e*(i-t)+t},e.DeltaAngle=function(t,i){var n=e.Repeat(i-t,360);return n>180&&(n-=360),n},e.PingPong=function(t,i){var n=e.Repeat(t,2*i);return i-Math.abs(n-i)},e.SmoothStep=function(t,i,n){var r=e.Clamp(n);return i*(r=-2*r*r*r+3*r*r)+t*(1-r)},e.MoveTowards=function(t,i,n){return Math.abs(i-t)<=n?i:t+e.Sign(i-t)*n},e.MoveTowardsAngle=function(t,i,n){var r=e.DeltaAngle(t,i),o=0;return-n180&&(r-=360),t+r*e.Clamp(n)},e.InverseLerp=function(t,i,n){return t!=i?e.Clamp((n-t)/(i-t)):0},e.Hermite=function(e,t,i,n,r){var o=r*r,a=r*o;return e*(2*a-3*o+1)+i*(-2*a+3*o)+t*(a-2*o+r)+n*(a-o)},e.RandomRange=function(e,t){return e===t?e:Math.random()*(t-e)+e},e.RangeToPercent=function(e,t,i){return(e-t)/(i-t)},e.PercentToRange=function(e,t,i){return(i-t)*e+t},e.NormalizeRadians=function(t){return t-=e.TwoPi*Math.floor((t+Math.PI)/e.TwoPi)},e.TwoPi=2*Math.PI,e}()},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return h}));var n=i(8),r=i(20),o=i(22),a=i(4),s=i(48),c=i(2),l=i(9),u=i(119),h=function(){function e(){}return e.BindEyePosition=function(e,t,i){if(void 0===i&&(i=\"vEyePosition\"),t._forcedViewPosition)e.setVector3(i,t._forcedViewPosition);else{var n=t.activeCamera.globalPosition;n||(n=t.activeCamera.devicePosition),e.setVector3(i,t._mirroredCameraPosition?t._mirroredCameraPosition:n)}},e.PrepareDefinesForMergedUV=function(e,t,i){t._needUVs=!0,t[i]=!0,e.getTextureMatrix().isIdentityAs3x2()?(t[i+\"DIRECTUV\"]=e.coordinatesIndex+1,0===e.coordinatesIndex?t.MAINUV1=!0:t.MAINUV2=!0):t[i+\"DIRECTUV\"]=0},e.BindTextureMatrix=function(e,t,i){var n=e.getTextureMatrix();t.updateMatrix(i+\"Matrix\",n)},e.GetFogState=function(e,t){return t.fogEnabled&&e.applyFog&&t.fogMode!==r.a.FOGMODE_NONE},e.PrepareDefinesForMisc=function(e,t,i,n,r,o,a){a._areMiscDirty&&(a.LOGARITHMICDEPTH=i,a.POINTSIZE=n,a.FOG=r&&this.GetFogState(e,t),a.NONUNIFORMSCALING=e.nonUniformScaling,a.ALPHATEST=o)},e.PrepareDefinesForFrameBoundValues=function(e,t,i,n,r,o){void 0===r&&(r=null),void 0===o&&(o=!1);var a,s,c,l,u,h,d=!1;a=null==r?void 0!==e.clipPlane&&null!==e.clipPlane:r,s=null==r?void 0!==e.clipPlane2&&null!==e.clipPlane2:r,c=null==r?void 0!==e.clipPlane3&&null!==e.clipPlane3:r,l=null==r?void 0!==e.clipPlane4&&null!==e.clipPlane4:r,u=null==r?void 0!==e.clipPlane5&&null!==e.clipPlane5:r,h=null==r?void 0!==e.clipPlane6&&null!==e.clipPlane6:r,i.CLIPPLANE!==a&&(i.CLIPPLANE=a,d=!0),i.CLIPPLANE2!==s&&(i.CLIPPLANE2=s,d=!0),i.CLIPPLANE3!==c&&(i.CLIPPLANE3=c,d=!0),i.CLIPPLANE4!==l&&(i.CLIPPLANE4=l,d=!0),i.CLIPPLANE5!==u&&(i.CLIPPLANE5=u,d=!0),i.CLIPPLANE6!==h&&(i.CLIPPLANE6=h,d=!0),i.DEPTHPREPASS!==!t.getColorWrite()&&(i.DEPTHPREPASS=!i.DEPTHPREPASS,d=!0),i.INSTANCES!==n&&(i.INSTANCES=n,d=!0),i.THIN_INSTANCES!==o&&(i.THIN_INSTANCES=o,d=!0),d&&i.markAsUnprocessed()},e.PrepareDefinesForBones=function(e,t){if(e.useBones&&e.computeBonesUsingShaders&&e.skeleton){t.NUM_BONE_INFLUENCERS=e.numBoneInfluencers;var i=void 0!==t.BONETEXTURE;if(e.skeleton.isUsingTextureForMatrices&&i)t.BONETEXTURE=!0;else{t.BonesPerMesh=e.skeleton.bones.length+1,t.BONETEXTURE=!i&&void 0;var n=e.getScene().prePassRenderer;if(n&&n.enabled){var r=-1===n.excludedSkinnedMesh.indexOf(e);t.BONES_VELOCITY_ENABLED=r}}}else t.NUM_BONE_INFLUENCERS=0,t.BonesPerMesh=0},e.PrepareDefinesForMorphTargets=function(e,t){var i=e.morphTargetManager;i?(t.MORPHTARGETS_UV=i.supportsUVs&&t.UV1,t.MORPHTARGETS_TANGENT=i.supportsTangents&&t.TANGENT,t.MORPHTARGETS_NORMAL=i.supportsNormals&&t.NORMAL,t.MORPHTARGETS=i.numInfluencers>0,t.NUM_MORPH_INFLUENCERS=i.numInfluencers):(t.MORPHTARGETS_UV=!1,t.MORPHTARGETS_TANGENT=!1,t.MORPHTARGETS_NORMAL=!1,t.MORPHTARGETS=!1,t.NUM_MORPH_INFLUENCERS=0)},e.PrepareDefinesForAttributes=function(e,t,i,n,r,o){if(void 0===r&&(r=!1),void 0===o&&(o=!0),!t._areAttributesDirty&&t._needNormals===t._normals&&t._needUVs===t._uvs)return!1;if(t._normals=t._needNormals,t._uvs=t._needUVs,t.NORMAL=t._needNormals&&e.isVerticesDataPresent(a.b.NormalKind),t._needNormals&&e.isVerticesDataPresent(a.b.TangentKind)&&(t.TANGENT=!0),t._needUVs?(t.UV1=e.isVerticesDataPresent(a.b.UVKind),t.UV2=e.isVerticesDataPresent(a.b.UV2Kind)):(t.UV1=!1,t.UV2=!1),i){var s=e.useVertexColors&&e.isVerticesDataPresent(a.b.ColorKind);t.VERTEXCOLOR=s,t.VERTEXALPHA=e.hasVertexAlpha&&s&&o}return n&&this.PrepareDefinesForBones(e,t),r&&this.PrepareDefinesForMorphTargets(e,t),!0},e.PrepareDefinesForMultiview=function(e,t){if(e.activeCamera){var i=t.MULTIVIEW;t.MULTIVIEW=null!==e.activeCamera.outputRenderTarget&&e.activeCamera.outputRenderTarget.getViewCount()>1,t.MULTIVIEW!=i&&t.markAsUnprocessed()}},e.PrepareDefinesForPrePass=function(e,t,i){var n=t.PREPASS;if(t._arePrePassDirty){var r=[{type:c.a.PREPASS_POSITION_TEXTURE_TYPE,define:\"PREPASS_POSITION\",index:\"PREPASS_POSITION_INDEX\"},{type:c.a.PREPASS_VELOCITY_TEXTURE_TYPE,define:\"PREPASS_VELOCITY\",index:\"PREPASS_VELOCITY_INDEX\"},{type:c.a.PREPASS_REFLECTIVITY_TEXTURE_TYPE,define:\"PREPASS_REFLECTIVITY\",index:\"PREPASS_REFLECTIVITY_INDEX\"},{type:c.a.PREPASS_IRRADIANCE_TEXTURE_TYPE,define:\"PREPASS_IRRADIANCE\",index:\"PREPASS_IRRADIANCE_INDEX\"},{type:c.a.PREPASS_ALBEDO_TEXTURE_TYPE,define:\"PREPASS_ALBEDO\",index:\"PREPASS_ALBEDO_INDEX\"},{type:c.a.PREPASS_DEPTHNORMAL_TEXTURE_TYPE,define:\"PREPASS_DEPTHNORMAL\",index:\"PREPASS_DEPTHNORMAL_INDEX\"}];if(e.prePassRenderer&&e.prePassRenderer.enabled&&i){t.PREPASS=!0,t.SCENE_MRT_COUNT=e.prePassRenderer.mrtCount;for(var o=0;o0&&(a.shadowEnabled=!0,c.prepareDefines(r,n))}}i.lightmapMode!=s.a.LIGHTMAP_DEFAULT?(a.lightmapMode=!0,r[\"LIGHTMAPEXCLUDED\"+n]=!0,r[\"LIGHTMAPNOSPECULAR\"+n]=i.lightmapMode==s.a.LIGHTMAP_SHADOWSONLY):(r[\"LIGHTMAPEXCLUDED\"+n]=!1,r[\"LIGHTMAPNOSPECULAR\"+n]=!1)},e.PrepareDefinesForLights=function(e,t,i,n,r,o){if(void 0===r&&(r=4),void 0===o&&(o=!1),!i._areLightsDirty)return i._needNormals;var a=0,s={needNormals:!1,needRebuild:!1,lightmapMode:!1,shadowEnabled:!1,specularEnabled:!1};if(e.lightsEnabled&&!o)for(var c=0,l=t.lightSources;c0&&(r=n+o,t.addFallback(r,\"LIGHT\"+o)),e.SHADOWS||(e[\"SHADOW\"+o]&&t.addFallback(n,\"SHADOW\"+o),e[\"SHADOWPCF\"+o]&&t.addFallback(n,\"SHADOWPCF\"+o),e[\"SHADOWPCSS\"+o]&&t.addFallback(n,\"SHADOWPCSS\"+o),e[\"SHADOWPOISSON\"+o]&&t.addFallback(n,\"SHADOWPOISSON\"+o),e[\"SHADOWESM\"+o]&&t.addFallback(n,\"SHADOWESM\"+o),e[\"SHADOWCLOSEESM\"+o]&&t.addFallback(n,\"SHADOWCLOSEESM\"+o));return r++},e.PrepareAttributesForMorphTargetsInfluencers=function(e,t,i){this._TmpMorphInfluencers.NUM_MORPH_INFLUENCERS=i,this.PrepareAttributesForMorphTargets(e,t,this._TmpMorphInfluencers)},e.PrepareAttributesForMorphTargets=function(e,t,i){var r=i.NUM_MORPH_INFLUENCERS;if(r>0&&o.a.LastCreatedEngine)for(var s=o.a.LastCreatedEngine.getCaps().maxVertexAttribs,c=t.morphTargetManager,l=c&&c.supportsNormals&&i.NORMAL,u=c&&c.supportsTangents&&i.TANGENT,h=c&&c.supportsUVs&&i.UV1,d=0;ds&&n.a.Error(\"Cannot add more vertex attributes for mesh \"+t.name)},e.PrepareAttributesForBones=function(e,t,i,n){i.NUM_BONE_INFLUENCERS>0&&(n.addCPUSkinningFallback(0,t),e.push(a.b.MatricesIndicesKind),e.push(a.b.MatricesWeightsKind),i.NUM_BONE_INFLUENCERS>4&&(e.push(a.b.MatricesIndicesExtraKind),e.push(a.b.MatricesWeightsExtraKind)))},e.PrepareAttributesForInstances=function(e,t){(t.INSTANCES||t.THIN_INSTANCES)&&this.PushAttributesForInstances(e)},e.PushAttributesForInstances=function(e){e.push(\"world0\"),e.push(\"world1\"),e.push(\"world2\"),e.push(\"world3\")},e.BindLightProperties=function(e,t,i){e.transferToEffect(t,i+\"\")},e.BindLight=function(e,t,i,n,r,o){void 0===o&&(o=!1),e._bindLight(t,i,n,r,o)},e.BindLights=function(e,t,i,n,r,o){void 0===r&&(r=4),void 0===o&&(o=!1);for(var a=Math.min(t.lightSources.length,r),s=0;s-1){var o=r.getTransformMatrixTexture(t);i.setTexture(\"boneSampler\",o),i.setFloat(\"boneTextureWidth\",4*(r.bones.length+1))}else{var a=r.getTransformMatrices(t);a&&(i.setMatrices(\"mBones\",a),n&&t.getScene().prePassRenderer&&t.getScene().prePassRenderer.getIndex(c.a.PREPASS_VELOCITY_TEXTURE_TYPE)&&(n.previousBones[t.uniqueId]&&i.setMatrices(\"mPreviousBones\",n.previousBones[t.uniqueId]),e._CopyBonesTransformationMatrices(a,n.previousBones[t.uniqueId])))}}},e._CopyBonesTransformationMatrices=function(e,t){return t.set(e),t},e.BindMorphTargetParameters=function(e,t){var i=e.morphTargetManager;e&&i&&t.setFloatArray(\"morphTargetInfluences\",i.influences)},e.BindLogDepth=function(e,t,i){e.LOGARITHMICDEPTH&&t.setFloat(\"logarithmicDepthConstant\",2/(Math.log(i.activeCamera.maxZ+1)/Math.LN2))},e.BindClipPlane=function(e,t){u.a.BindClipPlane(e,t)},e._TmpMorphInfluencers={NUM_MORPH_INFLUENCERS:0},e._tempFogColor=l.a.Black(),e}()},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return c}));var n=i(0),r=i(4),o=i(21),a=i(9),s=i(8),c=function(){function e(){}return e.prototype.set=function(e,t){switch(e.length||s.a.Warn(\"Setting vertex data kind '\"+t+\"' with an empty array\"),t){case r.b.PositionKind:this.positions=e;break;case r.b.NormalKind:this.normals=e;break;case r.b.TangentKind:this.tangents=e;break;case r.b.UVKind:this.uvs=e;break;case r.b.UV2Kind:this.uvs2=e;break;case r.b.UV3Kind:this.uvs3=e;break;case r.b.UV4Kind:this.uvs4=e;break;case r.b.UV5Kind:this.uvs5=e;break;case r.b.UV6Kind:this.uvs6=e;break;case r.b.ColorKind:this.colors=e;break;case r.b.MatricesIndicesKind:this.matricesIndices=e;break;case r.b.MatricesWeightsKind:this.matricesWeights=e;break;case r.b.MatricesIndicesExtraKind:this.matricesIndicesExtra=e;break;case r.b.MatricesWeightsExtraKind:this.matricesWeightsExtra=e}},e.prototype.applyToMesh=function(e,t){return this._applyTo(e,t),this},e.prototype.applyToGeometry=function(e,t){return this._applyTo(e,t),this},e.prototype.updateMesh=function(e){return this._update(e),this},e.prototype.updateGeometry=function(e){return this._update(e),this},e.prototype._applyTo=function(e,t){return void 0===t&&(t=!1),this.positions&&e.setVerticesData(r.b.PositionKind,this.positions,t),this.normals&&e.setVerticesData(r.b.NormalKind,this.normals,t),this.tangents&&e.setVerticesData(r.b.TangentKind,this.tangents,t),this.uvs&&e.setVerticesData(r.b.UVKind,this.uvs,t),this.uvs2&&e.setVerticesData(r.b.UV2Kind,this.uvs2,t),this.uvs3&&e.setVerticesData(r.b.UV3Kind,this.uvs3,t),this.uvs4&&e.setVerticesData(r.b.UV4Kind,this.uvs4,t),this.uvs5&&e.setVerticesData(r.b.UV5Kind,this.uvs5,t),this.uvs6&&e.setVerticesData(r.b.UV6Kind,this.uvs6,t),this.colors&&e.setVerticesData(r.b.ColorKind,this.colors,t),this.matricesIndices&&e.setVerticesData(r.b.MatricesIndicesKind,this.matricesIndices,t),this.matricesWeights&&e.setVerticesData(r.b.MatricesWeightsKind,this.matricesWeights,t),this.matricesIndicesExtra&&e.setVerticesData(r.b.MatricesIndicesExtraKind,this.matricesIndicesExtra,t),this.matricesWeightsExtra&&e.setVerticesData(r.b.MatricesWeightsExtraKind,this.matricesWeightsExtra,t),this.indices?e.setIndices(this.indices,null,t):e.setIndices([],null),this},e.prototype._update=function(e,t,i){return this.positions&&e.updateVerticesData(r.b.PositionKind,this.positions,t,i),this.normals&&e.updateVerticesData(r.b.NormalKind,this.normals,t,i),this.tangents&&e.updateVerticesData(r.b.TangentKind,this.tangents,t,i),this.uvs&&e.updateVerticesData(r.b.UVKind,this.uvs,t,i),this.uvs2&&e.updateVerticesData(r.b.UV2Kind,this.uvs2,t,i),this.uvs3&&e.updateVerticesData(r.b.UV3Kind,this.uvs3,t,i),this.uvs4&&e.updateVerticesData(r.b.UV4Kind,this.uvs4,t,i),this.uvs5&&e.updateVerticesData(r.b.UV5Kind,this.uvs5,t,i),this.uvs6&&e.updateVerticesData(r.b.UV6Kind,this.uvs6,t,i),this.colors&&e.updateVerticesData(r.b.ColorKind,this.colors,t,i),this.matricesIndices&&e.updateVerticesData(r.b.MatricesIndicesKind,this.matricesIndices,t,i),this.matricesWeights&&e.updateVerticesData(r.b.MatricesWeightsKind,this.matricesWeights,t,i),this.matricesIndicesExtra&&e.updateVerticesData(r.b.MatricesIndicesExtraKind,this.matricesIndicesExtra,t,i),this.matricesWeightsExtra&&e.updateVerticesData(r.b.MatricesWeightsExtraKind,this.matricesWeightsExtra,t,i),this.indices&&e.setIndices(this.indices,null),this},e.prototype.transform=function(e){var t,i=e.determinant()<0,r=n.e.Zero();if(this.positions){var o=n.e.Zero();for(t=0;tr.bbSize.y?r.bbSize.x:r.bbSize.y;$=$>r.bbSize.z?$:r.bbSize.z,N=r.subDiv.X*M/r.bbSize.x,L=r.subDiv.Y*M/r.bbSize.y,w=r.subDiv.Z*M/r.bbSize.z,F=r.subDiv.max*r.subDiv.max,r.facetPartitioning.length=0}for(o=0;oe.LongPressDelay&&!n._isPointerSwiping()&&(n._startingPointerTime=0,o.processTrigger(S.a.ACTION_OnLongPressTrigger,b.a.CreateNew(t.pickedMesh,i)))}),e.LongPressDelay)}}else for(var a=0,s=r._pointerDownStage;ae.DragMovementThreshold||Math.abs(this._startingPointerPosition.y-this._pointerY)>e.DragMovementThreshold},e.prototype.simulatePointerUp=function(e,t,i){var n=new PointerEvent(\"pointerup\",t),r=new I;i?r.doubleClick=!0:r.singleClick=!0,this._checkPrePointerObservable(e,n,x.a.POINTERUP)||this._processPointerUp(e,n,r)},e.prototype._processPointerUp=function(e,t,i){var n=this._scene;if(e&&e&&e.pickedMesh){if(this._pickedUpMesh=e.pickedMesh,this._pickedDownMesh===this._pickedUpMesh&&(n.onPointerPick&&n.onPointerPick(t,e),i.singleClick&&!i.ignore&&n.onPointerObservable.hasObservers())){var r=x.a.POINTERPICK,o=new x.b(r,t,e);this._setRayOnPointerInfo(o),n.onPointerObservable.notifyObservers(o,r)}var a=e.pickedMesh._getActionManagerForTrigger();if(a&&!i.ignore){a.processTrigger(S.a.ACTION_OnPickUpTrigger,b.a.CreateNew(e.pickedMesh,t)),!i.hasSwiped&&i.singleClick&&a.processTrigger(S.a.ACTION_OnPickTrigger,b.a.CreateNew(e.pickedMesh,t));var s=e.pickedMesh._getActionManagerForTrigger(S.a.ACTION_OnDoublePickTrigger);i.doubleClick&&s&&s.processTrigger(S.a.ACTION_OnDoublePickTrigger,b.a.CreateNew(e.pickedMesh,t))}}else if(!i.ignore)for(var c=0,l=n._pointerUpStage;ce.DoubleClickDelay&&!a._doubleClickOccured||t!==a._previousButtonPressed)&&(a._doubleClickOccured=!1,i.singleClick=!0,i.ignore=!1,n(i,a._currentPickResult))},this._initClickEvent=function(t,i,n,r){var o=new I;a._currentPickResult=null;var s=null,c=t.hasSpecificMask(x.a.POINTERPICK)||i.hasSpecificMask(x.a.POINTERPICK)||t.hasSpecificMask(x.a.POINTERTAP)||i.hasSpecificMask(x.a.POINTERTAP)||t.hasSpecificMask(x.a.POINTERDOUBLETAP)||i.hasSpecificMask(x.a.POINTERDOUBLETAP);!c&&O.a&&(s=a._initActionManager(s,o))&&(c=s.hasPickTriggers);var l=!1;if(c){var u=n.button;if(o.hasSwiped=a._isPointerSwiping(),!o.hasSwiped){var h=!e.ExclusiveDoubleClickMode;h||(h=!t.hasSpecificMask(x.a.POINTERDOUBLETAP)&&!i.hasSpecificMask(x.a.POINTERDOUBLETAP))&&!O.a.HasSpecificTrigger(S.a.ACTION_OnDoublePickTrigger)&&(s=a._initActionManager(s,o))&&(h=!s.hasSpecificTrigger(S.a.ACTION_OnDoublePickTrigger)),h?(Date.now()-a._previousStartingPointerTime>e.DoubleClickDelay||u!==a._previousButtonPressed)&&(o.singleClick=!0,r(o,a._currentPickResult),l=!0):(a._previousDelayedSimpleClickTimeout=a._delayedSimpleClickTimeout,a._delayedSimpleClickTimeout=window.setTimeout(a._delayedSimpleClick.bind(a,u,o,r),e.DoubleClickDelay));var d=t.hasSpecificMask(x.a.POINTERDOUBLETAP)||i.hasSpecificMask(x.a.POINTERDOUBLETAP);!d&&O.a.HasSpecificTrigger(S.a.ACTION_OnDoublePickTrigger)&&(s=a._initActionManager(s,o))&&(d=s.hasSpecificTrigger(S.a.ACTION_OnDoublePickTrigger)),d&&(u===a._previousButtonPressed&&Date.now()-a._previousStartingPointerTime0){for(var e=0,t=this._transientComponents;e0)return!1;for(e=0;e0,r=0,o=this._isReadyForMeshStage;r0)for(var a=0,s=this.activeCameras;a0},enumerable:!1,configurable:!0}),t.prototype.executeWhenReady=function(e){var t=this;this.onReadyObservable.add(e),-1===this._executeWhenReadyTimeoutId&&(this._executeWhenReadyTimeoutId=setTimeout((function(){t._checkIsReady()}),150))},t.prototype.whenReadyAsync=function(){var e=this;return new Promise((function(t){e.executeWhenReady((function(){t()}))}))},t.prototype._checkIsReady=function(){var e=this;return this._registerTransientComponents(),this.isReady()?(this.onReadyObservable.notifyObservers(this),this.onReadyObservable.clear(),void(this._executeWhenReadyTimeoutId=-1)):this._isDisposed?(this.onReadyObservable.clear(),void(this._executeWhenReadyTimeoutId=-1)):void(this._executeWhenReadyTimeoutId=setTimeout((function(){e._checkIsReady()}),150))},Object.defineProperty(t.prototype,\"animatables\",{get:function(){return this._activeAnimatables},enumerable:!1,configurable:!0}),t.prototype.resetLastAnimationTimeFrame=function(){this._animationTimeLast=o.a.Now},t.prototype.getViewMatrix=function(){return this._viewMatrix},t.prototype.getProjectionMatrix=function(){return this._projectionMatrix},t.prototype.getTransformMatrix=function(){return this._transformMatrix},t.prototype.setTransformMatrix=function(e,t,i,n){this._viewUpdateFlag===e.updateFlag&&this._projectionUpdateFlag===t.updateFlag||(this._viewUpdateFlag=e.updateFlag,this._projectionUpdateFlag=t.updateFlag,this._viewMatrix=e,this._projectionMatrix=t,this._viewMatrix.multiplyToRef(this._projectionMatrix,this._transformMatrix),this._frustumPlanes?w.a.GetPlanesToRef(this._transformMatrix,this._frustumPlanes):this._frustumPlanes=w.a.GetPlanes(this._transformMatrix),this._multiviewSceneUbo&&this._multiviewSceneUbo.useUbo?this._updateMultiviewUbo(i,n):this._sceneUbo.useUbo&&(this._sceneUbo.updateMatrix(\"viewProjection\",this._transformMatrix),this._sceneUbo.updateMatrix(\"view\",this._viewMatrix),this._sceneUbo.update()))},t.prototype.getSceneUniformBuffer=function(){return this._multiviewSceneUbo?this._multiviewSceneUbo:this._sceneUbo},t.prototype.getUniqueId=function(){return F.a.UniqueId},t.prototype.addMesh=function(e,t){var i=this;void 0===t&&(t=!1),this._blockEntityCollection||(this.meshes.push(e),e._resyncLightSources(),e.parent||e._addToSceneRootNodes(),this.onNewMeshAddedObservable.notifyObservers(e),t&&e.getChildMeshes().forEach((function(e){i.addMesh(e)})))},t.prototype.removeMesh=function(e,t){var i=this;void 0===t&&(t=!1);var n=this.meshes.indexOf(e);return-1!==n&&(this.meshes[n]=this.meshes[this.meshes.length-1],this.meshes.pop(),e.parent||e._removeFromSceneRootNodes()),this.onMeshRemovedObservable.notifyObservers(e),t&&e.getChildMeshes().forEach((function(e){i.removeMesh(e)})),n},t.prototype.addTransformNode=function(e){this._blockEntityCollection||(e._indexInSceneTransformNodesArray=this.transformNodes.length,this.transformNodes.push(e),e.parent||e._addToSceneRootNodes(),this.onNewTransformNodeAddedObservable.notifyObservers(e))},t.prototype.removeTransformNode=function(e){var t=e._indexInSceneTransformNodesArray;if(-1!==t){if(t!==this.transformNodes.length-1){var i=this.transformNodes[this.transformNodes.length-1];this.transformNodes[t]=i,i._indexInSceneTransformNodesArray=t}e._indexInSceneTransformNodesArray=-1,this.transformNodes.pop(),e.parent||e._removeFromSceneRootNodes()}return this.onTransformNodeRemovedObservable.notifyObservers(e),t},t.prototype.removeSkeleton=function(e){var t=this.skeletons.indexOf(e);return-1!==t&&(this.skeletons.splice(t,1),this.onSkeletonRemovedObservable.notifyObservers(e)),t},t.prototype.removeMorphTargetManager=function(e){var t=this.morphTargetManagers.indexOf(e);return-1!==t&&this.morphTargetManagers.splice(t,1),t},t.prototype.removeLight=function(e){var t=this.lights.indexOf(e);if(-1!==t){for(var i=0,n=this.meshes;i0?this.activeCamera=this.cameras[0]:this.activeCamera=null),this.onCameraRemovedObservable.notifyObservers(e),t},t.prototype.removeParticleSystem=function(e){var t=this.particleSystems.indexOf(e);return-1!==t&&this.particleSystems.splice(t,1),t},t.prototype.removeAnimation=function(e){var t=this.animations.indexOf(e);return-1!==t&&this.animations.splice(t,1),t},t.prototype.stopAnimation=function(e,t,i){},t.prototype.removeAnimationGroup=function(e){var t=this.animationGroups.indexOf(e);return-1!==t&&this.animationGroups.splice(t,1),t},t.prototype.removeMultiMaterial=function(e){var t=this.multiMaterials.indexOf(e);return-1!==t&&this.multiMaterials.splice(t,1),this.onMultiMaterialRemovedObservable.notifyObservers(e),t},t.prototype.removeMaterial=function(e){var t=e._indexInSceneMaterialArray;if(-1!==t&&t=0;t--)if(this.materials[t].id===e)return this.materials[t];return null},t.prototype.getMaterialByName=function(e){for(var t=0;t=0;t--)if(this.meshes[t].id===e)return this.meshes[t];return null},t.prototype.getLastEntryByID=function(e){var t;for(t=this.meshes.length-1;t>=0;t--)if(this.meshes[t].id===e)return this.meshes[t];for(t=this.transformNodes.length-1;t>=0;t--)if(this.transformNodes[t].id===e)return this.transformNodes[t];for(t=this.cameras.length-1;t>=0;t--)if(this.cameras[t].id===e)return this.cameras[t];for(t=this.lights.length-1;t>=0;t--)if(this.lights[t].id===e)return this.lights[t];return null},t.prototype.getNodeByID=function(e){var t=this.getMeshByID(e);if(t)return t;var i=this.getTransformNodeByID(e);if(i)return i;var n=this.getLightByID(e);if(n)return n;var r=this.getCameraByID(e);if(r)return r;var o=this.getBoneByID(e);return o||null},t.prototype.getNodeByName=function(e){var t=this.getMeshByName(e);if(t)return t;var i=this.getTransformNodeByName(e);if(i)return i;var n=this.getLightByName(e);if(n)return n;var r=this.getCameraByName(e);if(r)return r;var o=this.getBoneByName(e);return o||null},t.prototype.getMeshByName=function(e){for(var t=0;t=0;t--)if(this.skeletons[t].id===e)return this.skeletons[t];return null},t.prototype.getSkeletonByUniqueId=function(e){for(var t=0;t0&&0!=(s.layerMask&this.activeCamera.layerMask)&&(this._skipFrustumClipping||s.alwaysSelectAsActiveMesh||s.isInFrustum(this._frustumPlanes)))){this._activeMeshes.push(s),this.activeCamera._activeMeshes.push(s),c!==s&&c._activate(this._renderId,!1);for(var l=0,u=this._preActiveMeshStage;l0)for(var i=this.getActiveSubMeshCandidates(t),n=i.length,r=0;r1)this.activeCamera.outputRenderTarget._bindFrameBuffer();else{var e=this.activeCamera.outputRenderTarget.getInternalTexture();e?this.getEngine().bindFramebuffer(e):P.a.Error(\"Camera contains invalid customDefaultRenderTarget\")}}else this.getEngine().restoreDefaultFramebuffer()},t.prototype._renderForCamera=function(e,t){if(!e||!e._skipRendering){var i=this._engine;if(this._activeCamera=e,!this.activeCamera)throw new Error(\"Active camera not set\");i.setViewport(this.activeCamera.viewport),this.resetCachedMaterial(),this._renderId++,this.getEngine().getCaps().multiview&&e.outputRenderTarget&&e.outputRenderTarget.getViewCount()>1?this.setTransformMatrix(e._rigCameras[0].getViewMatrix(),e._rigCameras[0].getProjectionMatrix(),e._rigCameras[1].getViewMatrix(),e._rigCameras[1].getProjectionMatrix()):this.updateTransformMatrix(),this.onBeforeCameraRenderObservable.notifyObservers(this.activeCamera),this._evaluateActiveMeshes();for(var n=0;n0&&this._renderTargets.concatWithNoDuplicate(e.customRenderTargets),t&&t.customRenderTargets&&t.customRenderTargets.length>0&&this._renderTargets.concatWithNoDuplicate(t.customRenderTargets);for(var a=0,s=this._gatherActiveCameraRenderTargetsStage;a0){r.b.StartPerformanceCounter(\"Render targets\",this._renderTargets.length>0);for(var l=0;l0),this._renderId++}for(var d=0,f=this._cameraDrawRenderTargetStage;d1&&this.getEngine().getCaps().multiview)return this._renderForCamera(e),void this.onAfterRenderCameraObservable.notifyObservers(e);if(e._useMultiviewToSingleView)this._renderMultiviewToSingleView(e);else for(var t=0;t-1&&(n.trigger===S.a.ACTION_OnIntersectionExitTrigger&&n._executeCurrent(b.a.CreateNew(t,void 0,o)),t.actionManager.hasSpecificTrigger(S.a.ACTION_OnIntersectionExitTrigger,(function(e){var t=e instanceof d.a?e:e.mesh;return o===t}))&&n.trigger!==S.a.ACTION_OnIntersectionExitTrigger||t._intersectionsInProgress.splice(s,1))}}}},t.prototype._advancePhysicsEngineStep=function(e){},t.prototype._animate=function(){},t.prototype.animate=function(){if(this._engine.isDeterministicLockStep()){var e=Math.max(t.MinDeltaTime,Math.min(this._engine.getDeltaTime(),t.MaxDeltaTime))+this._timeAccumulator,i=this._engine.getTimeStep(),n=1e3/i/1e3,r=0,o=this._engine.getLockstepMaxSteps(),a=Math.floor(e/i);for(a=Math.min(a,o);e>0&&r0)for(var o=0;o0),this._intermediateRendering=!0;for(var u=0;u0),this._intermediateRendering=!1,this._renderId++}this.activeCamera=l,this._activeCamera&&this._activeCamera.cameraRigMode!==f.a.RIG_MODE_CUSTOM&&!this.prePass&&this._bindFrameBuffer(),this.onAfterRenderTargetsRenderObservable.notifyObservers(this);for(var d=0,p=this._beforeClearStage;d0)for(o=0;o0&&this._engine.clear(null,!1,!0,!0),this._processSubCameras(this.activeCameras[o]);else{if(!this.activeCamera)throw new Error(\"No camera defined\");this._processSubCameras(this.activeCamera)}this._checkIntersections();for(var g=0,v=this._afterRenderStage;g-1&&this._engine.scenes.splice(r,1),this._engine.wipeCaches(!0),this._isDisposed=!0},Object.defineProperty(t.prototype,\"isDisposed\",{get:function(){return this._isDisposed},enumerable:!1,configurable:!0}),t.prototype.clearCachedVertexData=function(){for(var e=0;e-1?(u.a.Error(\"You're trying to reuse a post process not defined as reusable.\"),0):(null==t||t<0?this._postProcesses.push(e):null===this._postProcesses[t]?this._postProcesses[t]=e:this._postProcesses.splice(t,0,e),this._cascadePostProcessesToRigCams(),this._scene.prePassRenderer&&this._scene.prePassRenderer.markAsDirty(),this._postProcesses.indexOf(e))},t.prototype.detachPostProcess=function(e){var t=this._postProcesses.indexOf(e);-1!==t&&(this._postProcesses[t]=null),this._scene.prePassRenderer&&this._scene.prePassRenderer.markAsDirty(),this._cascadePostProcessesToRigCams()},t.prototype.getWorldMatrix=function(){return this._isSynchronizedViewMatrix()||this.getViewMatrix(),this._worldMatrix},t.prototype._getViewMatrix=function(){return c.a.Identity()},t.prototype.getViewMatrix=function(e){return!e&&this._isSynchronizedViewMatrix()||(this.updateCache(),this._computedViewMatrix=this._getViewMatrix(),this._currentRenderId=this.getScene().getRenderId(),this._childUpdateId++,this._refreshFrustumPlanes=!0,this._cameraRigParams&&this._cameraRigParams.vrPreViewMatrix&&this._computedViewMatrix.multiplyToRef(this._cameraRigParams.vrPreViewMatrix,this._computedViewMatrix),this.parent&&this.parent.onViewMatrixChangedObservable&&this.parent.onViewMatrixChangedObservable.notifyObservers(this.parent),this.onViewMatrixChangedObservable.notifyObservers(this),this._computedViewMatrix.invertToRef(this._worldMatrix)),this._computedViewMatrix},t.prototype.freezeProjectionMatrix=function(e){this._doNotComputeProjectionMatrix=!0,void 0!==e&&(this._projectionMatrix=e)},t.prototype.unfreezeProjectionMatrix=function(){this._doNotComputeProjectionMatrix=!1},t.prototype.getProjectionMatrix=function(e){var i,n,r,o,a,s,l,u;if(this._doNotComputeProjectionMatrix||!e&&this._isSynchronizedProjectionMatrix())return this._projectionMatrix;this._cache.mode=this.mode,this._cache.minZ=this.minZ,this._cache.maxZ=this.maxZ,this._refreshFrustumPlanes=!0;var h=this.getEngine(),d=this.getScene();if(this.mode===t.PERSPECTIVE_CAMERA){this._cache.fov=this.fov,this._cache.fovMode=this.fovMode,this._cache.aspectRatio=h.getAspectRatio(this),this.minZ<=0&&(this.minZ=.1);var f=h.useReverseDepthBuffer;(d.useRightHandedSystem?f?c.a.PerspectiveFovReverseRHToRef:c.a.PerspectiveFovRHToRef:f?c.a.PerspectiveFovReverseLHToRef:c.a.PerspectiveFovLHToRef)(this.fov,h.getAspectRatio(this),this.minZ,this.maxZ,this._projectionMatrix,this.fovMode===t.FOVMODE_VERTICAL_FIXED)}else{var p=h.getRenderWidth()/2,_=h.getRenderHeight()/2;d.useRightHandedSystem?c.a.OrthoOffCenterRHToRef(null!==(i=this.orthoLeft)&&void 0!==i?i:-p,null!==(n=this.orthoRight)&&void 0!==n?n:p,null!==(r=this.orthoBottom)&&void 0!==r?r:-_,null!==(o=this.orthoTop)&&void 0!==o?o:_,this.minZ,this.maxZ,this._projectionMatrix):c.a.OrthoOffCenterLHToRef(null!==(a=this.orthoLeft)&&void 0!==a?a:-p,null!==(s=this.orthoRight)&&void 0!==s?s:p,null!==(l=this.orthoBottom)&&void 0!==l?l:-_,null!==(u=this.orthoTop)&&void 0!==u?u:_,this.minZ,this.maxZ,this._projectionMatrix),this._cache.orthoLeft=this.orthoLeft,this._cache.orthoRight=this.orthoRight,this._cache.orthoBottom=this.orthoBottom,this._cache.orthoTop=this.orthoTop,this._cache.renderWidth=h.getRenderWidth(),this._cache.renderHeight=h.getRenderHeight()}return this.onProjectionMatrixChangedObservable.notifyObservers(this),this._projectionMatrix},t.prototype.getTransformationMatrix=function(){return this._computedViewMatrix.multiplyToRef(this._projectionMatrix,this._transformMatrix),this._transformMatrix},t.prototype._updateFrustumPlanes=function(){this._refreshFrustumPlanes&&(this.getTransformationMatrix(),this._frustumPlanes?p.a.GetPlanesToRef(this._transformMatrix,this._frustumPlanes):this._frustumPlanes=p.a.GetPlanes(this._transformMatrix),this._refreshFrustumPlanes=!1)},t.prototype.isInFrustum=function(e,t){if(void 0===t&&(t=!1),this._updateFrustumPlanes(),t&&this.rigCameras.length>0){var i=!1;return this.rigCameras.forEach((function(t){t._updateFrustumPlanes(),i=i||e.isInFrustum(t._frustumPlanes)})),i}return e.isInFrustum(this._frustumPlanes)},t.prototype.isCompletelyInFrustum=function(e){return this._updateFrustumPlanes(),e.isCompletelyInFrustum(this._frustumPlanes)},t.prototype.getForwardRay=function(e,t,i){throw void 0===e&&(e=100),d.a.WarnImport(\"Ray\")},t.prototype.getForwardRayToRef=function(e,t,i,n){throw void 0===t&&(t=100),d.a.WarnImport(\"Ray\")},t.prototype.dispose=function(i,n){for(void 0===n&&(n=!1),this.onViewMatrixChangedObservable.clear(),this.onProjectionMatrixChangedObservable.clear(),this.onAfterCheckInputsObservable.clear(),this.onRestoreStateObservable.clear(),this.inputs&&this.inputs.clear(),this.getScene().stopAnimation(this),this.getScene().removeCamera(this);this._rigCameras.length>0;){var r=this._rigCameras.pop();r&&r.dispose()}if(this._rigPostProcess)this._rigPostProcess.dispose(this),this._rigPostProcess=null,this._postProcesses=[];else if(this.cameraRigMode!==t.RIG_MODE_NONE)this._rigPostProcess=null,this._postProcesses=[];else for(var o=this._postProcesses.length;--o>=0;){var a=this._postProcesses[o];a&&a.dispose(this)}for(o=this.customRenderTargets.length;--o>=0;)this.customRenderTargets[o].dispose();this.customRenderTargets=[],this._activeMeshes.dispose(),e.prototype.dispose.call(this,i,n)},Object.defineProperty(t.prototype,\"isLeftCamera\",{get:function(){return this._isLeftCamera},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"isRightCamera\",{get:function(){return this._isRightCamera},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"leftCamera\",{get:function(){return this._rigCameras.length<1?null:this._rigCameras[0]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"rightCamera\",{get:function(){return this._rigCameras.length<2?null:this._rigCameras[1]},enumerable:!1,configurable:!0}),t.prototype.getLeftTarget=function(){return this._rigCameras.length<1?null:this._rigCameras[0].getTarget()},t.prototype.getRightTarget=function(){return this._rigCameras.length<2?null:this._rigCameras[1].getTarget()},t.prototype.setCameraRigMode=function(e,i){if(this.cameraRigMode!==e){for(;this._rigCameras.length>0;){var n=this._rigCameras.pop();n&&n.dispose()}if(this.cameraRigMode=e,this._cameraRigParams={},this._cameraRigParams.interaxialDistance=i.interaxialDistance||.0637,this._cameraRigParams.stereoHalfAngle=a.b.ToRadians(this._cameraRigParams.interaxialDistance/.0637),this.cameraRigMode!==t.RIG_MODE_NONE){var r=this.createRigCamera(this.name+\"_L\",0);r&&(r._isLeftCamera=!0);var o=this.createRigCamera(this.name+\"_R\",1);o&&(o._isRightCamera=!0),r&&o&&(this._rigCameras.push(r),this._rigCameras.push(o))}switch(this.cameraRigMode){case t.RIG_MODE_STEREOSCOPIC_ANAGLYPH:t._setStereoscopicAnaglyphRigMode(this);break;case t.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:case t.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED:case t.RIG_MODE_STEREOSCOPIC_OVERUNDER:case t.RIG_MODE_STEREOSCOPIC_INTERLACED:t._setStereoscopicRigMode(this);break;case t.RIG_MODE_VR:t._setVRRigMode(this,i);break;case t.RIG_MODE_WEBVR:t._setWebVRRigMode(this,i)}this._cascadePostProcessesToRigCams(),this.update()}},t._setStereoscopicRigMode=function(e){throw\"Import Cameras/RigModes/stereoscopicRigMode before using stereoscopic rig mode\"},t._setStereoscopicAnaglyphRigMode=function(e){throw\"Import Cameras/RigModes/stereoscopicAnaglyphRigMode before using stereoscopic anaglyph rig mode\"},t._setVRRigMode=function(e,t){throw\"Import Cameras/RigModes/vrRigMode before using VR rig mode\"},t._setWebVRRigMode=function(e,t){throw\"Import Cameras/RigModes/WebVRRigMode before using Web VR rig mode\"},t.prototype._getVRProjectionMatrix=function(){return c.a.PerspectiveFovLHToRef(this._cameraRigParams.vrMetrics.aspectRatioFov,this._cameraRigParams.vrMetrics.aspectRatio,this.minZ,this.maxZ,this._cameraRigParams.vrWorkMatrix),this._cameraRigParams.vrWorkMatrix.multiplyToRef(this._cameraRigParams.vrHMatrix,this._projectionMatrix),this._projectionMatrix},t.prototype._updateCameraRotationMatrix=function(){},t.prototype._updateWebVRCameraRotationMatrix=function(){},t.prototype._getWebVRProjectionMatrix=function(){return c.a.Identity()},t.prototype._getWebVRViewMatrix=function(){return c.a.Identity()},t.prototype.setCameraRigParameter=function(e,t){this._cameraRigParams||(this._cameraRigParams={}),this._cameraRigParams[e]=t,\"interaxialDistance\"===e&&(this._cameraRigParams.stereoHalfAngle=a.b.ToRadians(t/.0637))},t.prototype.createRigCamera=function(e,t){return null},t.prototype._updateRigCameras=function(){for(var e=0;e=1)&&(this.needAlphaBlending()||e.visibility<1||e.hasVertexAlpha)},e.prototype.needAlphaTesting=function(){return!!this._forceAlphaTest},e.prototype._shouldTurnAlphaTestOn=function(e){return!this.needAlphaBlendingForMesh(e)&&this.needAlphaTesting()},e.prototype.getAlphaTestTexture=function(){return null},e.prototype.markDirty=function(){for(var e=0,t=this.getScene().meshes;e1&&s.renderbufferStorageMultisample?s.renderbufferStorageMultisample(s.RENDERBUFFER,i,r,e,t):s.renderbufferStorage(s.RENDERBUFFER,n,e,t),s.framebufferRenderbuffer(s.FRAMEBUFFER,a,s.RENDERBUFFER,c),s.bindRenderbuffer(s.RENDERBUFFER,null),c},this._boundUniforms={};var h=null;if(t){if(n=n||{},b.a.SetMatrixPrecision(!!n.useHighPrecisionMatrix),t.getContext){if(h=t,this._renderingCanvas=h,null!=i&&(n.antialias=i),void 0===n.deterministicLockstep&&(n.deterministicLockstep=!1),void 0===n.lockstepMaxSteps&&(n.lockstepMaxSteps=4),void 0===n.timeStep&&(n.timeStep=1/60),void 0===n.preserveDrawingBuffer&&(n.preserveDrawingBuffer=!1),void 0===n.audioEngine&&(n.audioEngine=!0),void 0===n.stencil&&(n.stencil=!0),!1===n.premultipliedAlpha&&(this.premultipliedAlpha=!1),void 0===n.xrCompatible&&(n.xrCompatible=!0),this._doNotHandleContextLost=!!n.doNotHandleContextLost,navigator&&navigator.userAgent){var m=navigator.userAgent;this.hostInformation.isMobile=-1!==m.indexOf(\"Mobile\");for(var g=0,v=e.ExceptionList;g0)if(parseInt(C[C.length-1])>=P)continue}for(var R=0,x=S;R1?this._shaderProcessor=new _.a:this._shaderProcessor=new p,this._badOS=/iPad/i.test(navigator.userAgent)||/iPhone/i.test(navigator.userAgent),this._badDesktopOS=/^((?!chrome|android).)*safari/i.test(navigator.userAgent),this._creationOptions=n,console.log(\"Babylon.js v\"+e.Version+\" - \"+this.description)}}return Object.defineProperty(e,\"NpmPackage\",{get:function(){return\"babylonjs@4.2.2\"},enumerable:!1,configurable:!0}),Object.defineProperty(e,\"Version\",{get:function(){return\"4.2.2\"},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"description\",{get:function(){var e=\"WebGL\"+this.webGLVersion;return this._caps.parallelShaderCompile&&(e+=\" - Parallel shader compilation\"),e},enumerable:!1,configurable:!0}),Object.defineProperty(e,\"ShadersRepository\",{get:function(){return r.a.ShadersRepository},set:function(e){r.a.ShadersRepository=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"supportsUniformBuffers\",{get:function(){return this.webGLVersion>1&&!this.disableUniformBuffers},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"_shouldUseHighPrecisionShader\",{get:function(){return!(!this._caps.highPrecisionShaderSupported||!this._highPrecisionShadersAllowed)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"needPOTTextures\",{get:function(){return this._webGLVersion<2||this.forcePOTTextures},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"doNotHandleContextLost\",{get:function(){return this._doNotHandleContextLost},set:function(e){this._doNotHandleContextLost=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"_supportsHardwareTextureRescaling\",{get:function(){return!1},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"framebufferDimensionsObject\",{set:function(e){this._framebufferDimensionsObject=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"currentViewport\",{get:function(){return this._cachedViewport},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"emptyTexture\",{get:function(){return this._emptyTexture||(this._emptyTexture=this.createRawTexture(new Uint8Array(4),1,1,u.a.TEXTUREFORMAT_RGBA,!1,!1,u.a.TEXTURE_NEAREST_SAMPLINGMODE)),this._emptyTexture},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"emptyTexture3D\",{get:function(){return this._emptyTexture3D||(this._emptyTexture3D=this.createRawTexture3D(new Uint8Array(4),1,1,1,u.a.TEXTUREFORMAT_RGBA,!1,!1,u.a.TEXTURE_NEAREST_SAMPLINGMODE)),this._emptyTexture3D},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"emptyTexture2DArray\",{get:function(){return this._emptyTexture2DArray||(this._emptyTexture2DArray=this.createRawTexture2DArray(new Uint8Array(4),1,1,1,u.a.TEXTUREFORMAT_RGBA,!1,!1,u.a.TEXTURE_NEAREST_SAMPLINGMODE)),this._emptyTexture2DArray},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"emptyCubeTexture\",{get:function(){if(!this._emptyCubeTexture){var e=new Uint8Array(4),t=[e,e,e,e,e,e];this._emptyCubeTexture=this.createRawCubeTexture(t,1,u.a.TEXTUREFORMAT_RGBA,u.a.TEXTURETYPE_UNSIGNED_INT,!1,!1,u.a.TEXTURE_NEAREST_SAMPLINGMODE)}return this._emptyCubeTexture},enumerable:!1,configurable:!0}),e.prototype._rebuildInternalTextures=function(){for(var e=0,t=this._internalTexturesCache.slice();e1?this._gl.getParameter(this._gl.MAX_SAMPLES):1,maxCubemapTextureSize:this._gl.getParameter(this._gl.MAX_CUBE_MAP_TEXTURE_SIZE),maxRenderTextureSize:this._gl.getParameter(this._gl.MAX_RENDERBUFFER_SIZE),maxVertexAttribs:this._gl.getParameter(this._gl.MAX_VERTEX_ATTRIBS),maxVaryingVectors:this._gl.getParameter(this._gl.MAX_VARYING_VECTORS),maxFragmentUniformVectors:this._gl.getParameter(this._gl.MAX_FRAGMENT_UNIFORM_VECTORS),maxVertexUniformVectors:this._gl.getParameter(this._gl.MAX_VERTEX_UNIFORM_VECTORS),parallelShaderCompile:this._gl.getExtension(\"KHR_parallel_shader_compile\"),standardDerivatives:this._webGLVersion>1||null!==this._gl.getExtension(\"OES_standard_derivatives\"),maxAnisotropy:1,astc:this._gl.getExtension(\"WEBGL_compressed_texture_astc\")||this._gl.getExtension(\"WEBKIT_WEBGL_compressed_texture_astc\"),bptc:this._gl.getExtension(\"EXT_texture_compression_bptc\")||this._gl.getExtension(\"WEBKIT_EXT_texture_compression_bptc\"),s3tc:this._gl.getExtension(\"WEBGL_compressed_texture_s3tc\")||this._gl.getExtension(\"WEBKIT_WEBGL_compressed_texture_s3tc\"),pvrtc:this._gl.getExtension(\"WEBGL_compressed_texture_pvrtc\")||this._gl.getExtension(\"WEBKIT_WEBGL_compressed_texture_pvrtc\"),etc1:this._gl.getExtension(\"WEBGL_compressed_texture_etc1\")||this._gl.getExtension(\"WEBKIT_WEBGL_compressed_texture_etc1\"),etc2:this._gl.getExtension(\"WEBGL_compressed_texture_etc\")||this._gl.getExtension(\"WEBKIT_WEBGL_compressed_texture_etc\")||this._gl.getExtension(\"WEBGL_compressed_texture_es3_0\"),textureAnisotropicFilterExtension:this._gl.getExtension(\"EXT_texture_filter_anisotropic\")||this._gl.getExtension(\"WEBKIT_EXT_texture_filter_anisotropic\")||this._gl.getExtension(\"MOZ_EXT_texture_filter_anisotropic\"),uintIndices:this._webGLVersion>1||null!==this._gl.getExtension(\"OES_element_index_uint\"),fragmentDepthSupported:this._webGLVersion>1||null!==this._gl.getExtension(\"EXT_frag_depth\"),highPrecisionShaderSupported:!1,timerQuery:this._gl.getExtension(\"EXT_disjoint_timer_query_webgl2\")||this._gl.getExtension(\"EXT_disjoint_timer_query\"),canUseTimestampForTimerQuery:!1,drawBuffersExtension:!1,maxMSAASamples:1,colorBufferFloat:this._webGLVersion>1&&this._gl.getExtension(\"EXT_color_buffer_float\"),textureFloat:!!(this._webGLVersion>1||this._gl.getExtension(\"OES_texture_float\")),textureHalfFloat:!!(this._webGLVersion>1||this._gl.getExtension(\"OES_texture_half_float\")),textureHalfFloatRender:!1,textureFloatLinearFiltering:!1,textureFloatRender:!1,textureHalfFloatLinearFiltering:!1,vertexArrayObject:!1,instancedArrays:!1,textureLOD:!!(this._webGLVersion>1||this._gl.getExtension(\"EXT_shader_texture_lod\")),blendMinMax:!1,multiview:this._gl.getExtension(\"OVR_multiview2\"),oculusMultiview:this._gl.getExtension(\"OCULUS_multiview\"),depthTextureExtension:!1},this._glVersion=this._gl.getParameter(this._gl.VERSION);var e=this._gl.getExtension(\"WEBGL_debug_renderer_info\");if(null!=e&&(this._glRenderer=this._gl.getParameter(e.UNMASKED_RENDERER_WEBGL),this._glVendor=this._gl.getParameter(e.UNMASKED_VENDOR_WEBGL)),this._glVendor||(this._glVendor=\"Unknown vendor\"),this._glRenderer||(this._glRenderer=\"Unknown renderer\"),36193!==this._gl.HALF_FLOAT_OES&&(this._gl.HALF_FLOAT_OES=36193),34842!==this._gl.RGBA16F&&(this._gl.RGBA16F=34842),34836!==this._gl.RGBA32F&&(this._gl.RGBA32F=34836),35056!==this._gl.DEPTH24_STENCIL8&&(this._gl.DEPTH24_STENCIL8=35056),this._caps.timerQuery&&(1===this._webGLVersion&&(this._gl.getQuery=this._caps.timerQuery.getQueryEXT.bind(this._caps.timerQuery)),this._caps.canUseTimestampForTimerQuery=this._gl.getQuery(this._caps.timerQuery.TIMESTAMP_EXT,this._caps.timerQuery.QUERY_COUNTER_BITS_EXT)>0),this._caps.maxAnisotropy=this._caps.textureAnisotropicFilterExtension?this._gl.getParameter(this._caps.textureAnisotropicFilterExtension.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0,this._caps.textureFloatLinearFiltering=!(!this._caps.textureFloat||!this._gl.getExtension(\"OES_texture_float_linear\")),this._caps.textureFloatRender=!(!this._caps.textureFloat||!this._canRenderToFloatFramebuffer()),this._caps.textureHalfFloatLinearFiltering=!!(this._webGLVersion>1||this._caps.textureHalfFloat&&this._gl.getExtension(\"OES_texture_half_float_linear\")),this._webGLVersion>1&&5131!==this._gl.HALF_FLOAT_OES&&(this._gl.HALF_FLOAT_OES=5131),this._caps.textureHalfFloatRender=this._caps.textureHalfFloat&&this._canRenderToHalfFloatFramebuffer(),this._webGLVersion>1)this._caps.drawBuffersExtension=!0,this._caps.maxMSAASamples=this._gl.getParameter(this._gl.MAX_SAMPLES);else{var t=this._gl.getExtension(\"WEBGL_draw_buffers\");if(null!==t){this._caps.drawBuffersExtension=!0,this._gl.drawBuffers=t.drawBuffersWEBGL.bind(t),this._gl.DRAW_FRAMEBUFFER=this._gl.FRAMEBUFFER;for(var i=0;i<16;i++)this._gl[\"COLOR_ATTACHMENT\"+i+\"_WEBGL\"]=t[\"COLOR_ATTACHMENT\"+i+\"_WEBGL\"]}}if(this._webGLVersion>1)this._caps.depthTextureExtension=!0;else{var n=this._gl.getExtension(\"WEBGL_depth_texture\");null!=n&&(this._caps.depthTextureExtension=!0,this._gl.UNSIGNED_INT_24_8=n.UNSIGNED_INT_24_8_WEBGL)}if(this.disableVertexArrayObjects)this._caps.vertexArrayObject=!1;else if(this._webGLVersion>1)this._caps.vertexArrayObject=!0;else{var r=this._gl.getExtension(\"OES_vertex_array_object\");null!=r&&(this._caps.vertexArrayObject=!0,this._gl.createVertexArray=r.createVertexArrayOES.bind(r),this._gl.bindVertexArray=r.bindVertexArrayOES.bind(r),this._gl.deleteVertexArray=r.deleteVertexArrayOES.bind(r))}if(this._webGLVersion>1)this._caps.instancedArrays=!0;else{var o=this._gl.getExtension(\"ANGLE_instanced_arrays\");null!=o?(this._caps.instancedArrays=!0,this._gl.drawArraysInstanced=o.drawArraysInstancedANGLE.bind(o),this._gl.drawElementsInstanced=o.drawElementsInstancedANGLE.bind(o),this._gl.vertexAttribDivisor=o.vertexAttribDivisorANGLE.bind(o)):this._caps.instancedArrays=!1}if(this._gl.getShaderPrecisionFormat){var a=this._gl.getShaderPrecisionFormat(this._gl.VERTEX_SHADER,this._gl.HIGH_FLOAT),s=this._gl.getShaderPrecisionFormat(this._gl.FRAGMENT_SHADER,this._gl.HIGH_FLOAT);a&&s&&(this._caps.highPrecisionShaderSupported=0!==a.precision&&0!==s.precision)}if(this._webGLVersion>1)this._caps.blendMinMax=!0;else{var c=this._gl.getExtension(\"EXT_blend_minmax\");null!=c&&(this._caps.blendMinMax=!0,this._gl.MAX=c.MAX_EXT,this._gl.MIN=c.MIN_EXT)}this._depthCullingState.depthTest=!0,this._depthCullingState.depthFunc=this._gl.LEQUAL,this._depthCullingState.depthMask=!0,this._maxSimultaneousTextures=this._caps.maxCombinedTexturesImageUnits;for(var l=0;l=0&&this._activeRenderLoops.splice(t,1)}else this._activeRenderLoops=[]},e.prototype._renderLoop=function(){if(!this._contextWasLost){var e=!0;if(!this.renderEvenInBackground&&this._windowIsBackground&&(e=!1),e){this.beginFrame();for(var t=0;t0?this._frameHandler=this._queueNewFrame(this._boundRenderFunction,this.getHostWindow()):this._renderingQueueLaunched=!1},e.prototype.getRenderingCanvas=function(){return this._renderingCanvas},e.prototype.getHostWindow=function(){return f.a.IsWindowObjectExist()?this._renderingCanvas&&this._renderingCanvas.ownerDocument&&this._renderingCanvas.ownerDocument.defaultView?this._renderingCanvas.ownerDocument.defaultView:window:null},e.prototype.getRenderWidth=function(e){return void 0===e&&(e=!1),!e&&this._currentRenderTarget?this._currentRenderTarget.width:this._framebufferDimensionsObject?this._framebufferDimensionsObject.framebufferWidth:this._gl.drawingBufferWidth},e.prototype.getRenderHeight=function(e){return void 0===e&&(e=!1),!e&&this._currentRenderTarget?this._currentRenderTarget.height:this._framebufferDimensionsObject?this._framebufferDimensionsObject.framebufferHeight:this._gl.drawingBufferHeight},e.prototype._queueNewFrame=function(t,i){return e.QueueNewFrame(t,i)},e.prototype.runRenderLoop=function(e){-1===this._activeRenderLoops.indexOf(e)&&(this._activeRenderLoops.push(e),this._renderingQueueLaunched||(this._renderingQueueLaunched=!0,this._boundRenderFunction=this._renderLoop.bind(this),this._frameHandler=this._queueNewFrame(this._boundRenderFunction,this.getHostWindow())))},e.prototype.clear=function(e,t,i,n){void 0===n&&(n=!1),this.applyStates();var r=0;t&&e&&(this._gl.clearColor(e.r,e.g,e.b,void 0!==e.a?e.a:1),r|=this._gl.COLOR_BUFFER_BIT),i&&(this.useReverseDepthBuffer?(this._depthCullingState.depthFunc=this._gl.GREATER,this._gl.clearDepth(0)):this._gl.clearDepth(1),r|=this._gl.DEPTH_BUFFER_BIT),n&&(this._gl.clearStencil(0),r|=this._gl.STENCIL_BUFFER_BIT),this._gl.clear(r)},e.prototype._viewport=function(e,t,i,n){e===this._viewportCached.x&&t===this._viewportCached.y&&i===this._viewportCached.z&&n===this._viewportCached.w||(this._viewportCached.x=e,this._viewportCached.y=t,this._viewportCached.z=i,this._viewportCached.w=n,this._gl.viewport(e,t,i,n))},e.prototype.setViewport=function(e,t,i){var n=t||this.getRenderWidth(),r=i||this.getRenderHeight(),o=e.x||0,a=e.y||0;this._cachedViewport=e,this._viewport(o*n,a*r,n*e.width,r*e.height)},e.prototype.beginFrame=function(){},e.prototype.endFrame=function(){this._badOS&&this.flushFramebuffer()},e.prototype.resize=function(){var e,t;f.a.IsWindowObjectExist()?(e=this._renderingCanvas?this._renderingCanvas.clientWidth||this._renderingCanvas.width:window.innerWidth,t=this._renderingCanvas?this._renderingCanvas.clientHeight||this._renderingCanvas.height:window.innerHeight):(e=this._renderingCanvas?this._renderingCanvas.width:100,t=this._renderingCanvas?this._renderingCanvas.height:100),this.setSize(e/this._hardwareScalingLevel,t/this._hardwareScalingLevel)},e.prototype.setSize=function(e,t){return!!this._renderingCanvas&&(e|=0,t|=0,(this._renderingCanvas.width!==e||this._renderingCanvas.height!==t)&&(this._renderingCanvas.width=e,this._renderingCanvas.height=t,!0))},e.prototype.bindFramebuffer=function(e,t,i,n,r,o,a){void 0===t&&(t=0),void 0===o&&(o=0),void 0===a&&(a=0),this._currentRenderTarget&&this.unBindFramebuffer(this._currentRenderTarget),this._currentRenderTarget=e,this._bindUnboundFramebuffer(e._MSAAFramebuffer?e._MSAAFramebuffer:e._framebuffer);var s=this._gl;e.is2DArray?s.framebufferTextureLayer(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0,e._webGLTexture,o,a):e.isCube&&s.framebufferTexture2D(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0,s.TEXTURE_CUBE_MAP_POSITIVE_X+t,e._webGLTexture,o);var c=e._depthStencilTexture;if(c){var l=c._generateStencilBuffer?s.DEPTH_STENCIL_ATTACHMENT:s.DEPTH_ATTACHMENT;e.is2DArray?s.framebufferTextureLayer(s.FRAMEBUFFER,l,c._webGLTexture,o,a):e.isCube?s.framebufferTexture2D(s.FRAMEBUFFER,l,s.TEXTURE_CUBE_MAP_POSITIVE_X+t,c._webGLTexture,o):s.framebufferTexture2D(s.FRAMEBUFFER,l,s.TEXTURE_2D,c._webGLTexture,o)}this._cachedViewport&&!r?this.setViewport(this._cachedViewport,i,n):(i||(i=e.width,o&&(i/=Math.pow(2,o))),n||(n=e.height,o&&(n/=Math.pow(2,o))),this._viewport(0,0,i,n)),this.wipeCaches()},e.prototype._bindUnboundFramebuffer=function(e){this._currentFramebuffer!==e&&(this._gl.bindFramebuffer(this._gl.FRAMEBUFFER,e),this._currentFramebuffer=e)},e.prototype.unBindFramebuffer=function(e,t,i){void 0===t&&(t=!1),this._currentRenderTarget=null;var n=this._gl;if(e._MSAAFramebuffer){if(e._textureArray)return void this.unBindMultiColorAttachmentFramebuffer(e._textureArray,t,i);n.bindFramebuffer(n.READ_FRAMEBUFFER,e._MSAAFramebuffer),n.bindFramebuffer(n.DRAW_FRAMEBUFFER,e._framebuffer),n.blitFramebuffer(0,0,e.width,e.height,0,0,e.width,e.height,n.COLOR_BUFFER_BIT,n.NEAREST)}!e.generateMipMaps||t||e.isCube||(this._bindTextureDirectly(n.TEXTURE_2D,e,!0),n.generateMipmap(n.TEXTURE_2D),this._bindTextureDirectly(n.TEXTURE_2D,null)),i&&(e._MSAAFramebuffer&&this._bindUnboundFramebuffer(e._framebuffer),i()),this._bindUnboundFramebuffer(null)},e.prototype.flushFramebuffer=function(){this._gl.flush()},e.prototype.restoreDefaultFramebuffer=function(){this._currentRenderTarget?this.unBindFramebuffer(this._currentRenderTarget):this._bindUnboundFramebuffer(null),this._cachedViewport&&this.setViewport(this._cachedViewport),this.wipeCaches()},e.prototype._resetVertexBufferBinding=function(){this.bindArrayBuffer(null),this._cachedVertexBuffers=null},e.prototype.createVertexBuffer=function(e){return this._createVertexBuffer(e,this._gl.STATIC_DRAW)},e.prototype._createVertexBuffer=function(e,t){var i=this._gl.createBuffer();if(!i)throw new Error(\"Unable to create vertex buffer\");var n=new m.a(i);return this.bindArrayBuffer(n),e instanceof Array?this._gl.bufferData(this._gl.ARRAY_BUFFER,new Float32Array(e),this._gl.STATIC_DRAW):this._gl.bufferData(this._gl.ARRAY_BUFFER,e,this._gl.STATIC_DRAW),this._resetVertexBufferBinding(),n.references=1,n},e.prototype.createDynamicVertexBuffer=function(e){return this._createVertexBuffer(e,this._gl.DYNAMIC_DRAW)},e.prototype._resetIndexBufferBinding=function(){this.bindIndexBuffer(null),this._cachedIndexBuffer=null},e.prototype.createIndexBuffer=function(e,t){var i=this._gl.createBuffer(),n=new m.a(i);if(!i)throw new Error(\"Unable to create index buffer\");this.bindIndexBuffer(n);var r=this._normalizeIndexData(e);return this._gl.bufferData(this._gl.ELEMENT_ARRAY_BUFFER,r,t?this._gl.DYNAMIC_DRAW:this._gl.STATIC_DRAW),this._resetIndexBufferBinding(),n.references=1,n.is32Bits=4===r.BYTES_PER_ELEMENT,n},e.prototype._normalizeIndexData=function(e){if(e instanceof Uint16Array)return e;if(this._caps.uintIndices){if(e instanceof Uint32Array)return e;for(var t=0;t=65535)return new Uint32Array(e);return new Uint16Array(e)}return new Uint16Array(e)},e.prototype.bindArrayBuffer=function(e){this._vaoRecordInProgress||this._unbindVertexArrayObject(),this.bindBuffer(e,this._gl.ARRAY_BUFFER)},e.prototype.bindUniformBlock=function(e,t,i){var n=e.program,r=this._gl.getUniformBlockIndex(n,t);this._gl.uniformBlockBinding(n,r,i)},e.prototype.bindIndexBuffer=function(e){this._vaoRecordInProgress||this._unbindVertexArrayObject(),this.bindBuffer(e,this._gl.ELEMENT_ARRAY_BUFFER)},e.prototype.bindBuffer=function(e,t){(this._vaoRecordInProgress||this._currentBoundBuffer[t]!==e)&&(this._gl.bindBuffer(t,e?e.underlyingResource:null),this._currentBoundBuffer[t]=e)},e.prototype.updateArrayBuffer=function(e){this._gl.bufferSubData(this._gl.ARRAY_BUFFER,0,e)},e.prototype._vertexAttribPointer=function(e,t,i,n,r,o,a){var s=this._currentBufferPointers[t];if(s){var c=!1;s.active?(s.buffer!==e&&(s.buffer=e,c=!0),s.size!==i&&(s.size=i,c=!0),s.type!==n&&(s.type=n,c=!0),s.normalized!==r&&(s.normalized=r,c=!0),s.stride!==o&&(s.stride=o,c=!0),s.offset!==a&&(s.offset=a,c=!0)):(c=!0,s.active=!0,s.index=t,s.size=i,s.type=n,s.normalized=r,s.stride=o,s.offset=a,s.buffer=e),(c||this._vaoRecordInProgress)&&(this.bindArrayBuffer(e),this._gl.vertexAttribPointer(t,i,n,r,o,a))}},e.prototype._bindIndexBufferWithCache=function(e){null!=e&&this._cachedIndexBuffer!==e&&(this._cachedIndexBuffer=e,this.bindIndexBuffer(e),this._uintIndicesCurrentlySet=e.is32Bits)},e.prototype._bindVertexBuffersAttributes=function(e,t){var i=t.getAttributesNames();this._vaoRecordInProgress||this._unbindVertexArrayObject(),this.unbindAllAttributes();for(var n=0;n=0){var o=e[i[n]];if(!o)continue;this._gl.enableVertexAttribArray(r),this._vaoRecordInProgress||(this._vertexAttribArraysEnabled[r]=!0);var a=o.getBuffer();a&&(this._vertexAttribPointer(a,r,o.getSize(),o.type,o.normalized,o.byteStride,o.byteOffset),o.getIsInstanced()&&(this._gl.vertexAttribDivisor(r,o.getInstanceDivisor()),this._vaoRecordInProgress||(this._currentInstanceLocations.push(r),this._currentInstanceBuffers.push(a))))}}},e.prototype.recordVertexArrayObject=function(e,t,i){var n=this._gl.createVertexArray();return this._vaoRecordInProgress=!0,this._gl.bindVertexArray(n),this._mustWipeVertexAttributes=!0,this._bindVertexBuffersAttributes(e,i),this.bindIndexBuffer(t),this._vaoRecordInProgress=!1,this._gl.bindVertexArray(null),n},e.prototype.bindVertexArrayObject=function(e,t){this._cachedVertexArrayObject!==e&&(this._cachedVertexArrayObject=e,this._gl.bindVertexArray(e),this._cachedVertexBuffers=null,this._cachedIndexBuffer=null,this._uintIndicesCurrentlySet=null!=t&&t.is32Bits,this._mustWipeVertexAttributes=!0)},e.prototype.bindBuffersDirectly=function(e,t,i,n,r){if(this._cachedVertexBuffers!==e||this._cachedEffectForVertexBuffers!==r){this._cachedVertexBuffers=e,this._cachedEffectForVertexBuffers=r;var o=r.getAttributesCount();this._unbindVertexArrayObject(),this.unbindAllAttributes();for(var a=0,s=0;s=0&&(this._gl.enableVertexAttribArray(c),this._vertexAttribArraysEnabled[c]=!0,this._vertexAttribPointer(e,c,i[s],this._gl.FLOAT,!1,n,a)),a+=4*i[s]}}this._bindIndexBufferWithCache(t)},e.prototype._unbindVertexArrayObject=function(){this._cachedVertexArrayObject&&(this._cachedVertexArrayObject=null,this._gl.bindVertexArray(null))},e.prototype.bindBuffers=function(e,t,i){this._cachedVertexBuffers===e&&this._cachedEffectForVertexBuffers===i||(this._cachedVertexBuffers=e,this._cachedEffectForVertexBuffers=i,this._bindVertexBuffersAttributes(e,i)),this._bindIndexBufferWithCache(t)},e.prototype.unbindInstanceAttributes=function(){for(var e,t=0,i=this._currentInstanceLocations.length;t1?\"#version 300 es\\n#define WEBGL2 \\n\":\"\",s=this._compileShader(t,\"vertex\",n,a),c=this._compileShader(i,\"fragment\",n,a);return this._createShaderProgram(e,s,c,r,o)},e.prototype.createPipelineContext=function(){var e=new g.a;return e.engine=this,this._caps.parallelShaderCompile&&(e.isParallelCompiled=!0),e},e.prototype._createShaderProgram=function(e,t,i,n,r){void 0===r&&(r=null);var o=n.createProgram();if(e.program=o,!o)throw new Error(\"Unable to create program\");return n.attachShader(o,t),n.attachShader(o,i),n.linkProgram(o),e.context=n,e.vertexShader=t,e.fragmentShader=i,e.isParallelCompiled||this._finalizePipelineContext(e),o},e.prototype._finalizePipelineContext=function(e){var t=e.context,i=e.vertexShader,n=e.fragmentShader,r=e.program;if(!t.getProgramParameter(r,t.LINK_STATUS)){var o,a;if(!this._gl.getShaderParameter(i,this._gl.COMPILE_STATUS))if(o=this._gl.getShaderInfoLog(i))throw e.vertexCompilationError=o,new Error(\"VERTEX SHADER \"+o);if(!this._gl.getShaderParameter(n,this._gl.COMPILE_STATUS))if(o=this._gl.getShaderInfoLog(n))throw e.fragmentCompilationError=o,new Error(\"FRAGMENT SHADER \"+o);if(a=t.getProgramInfoLog(r))throw e.programLinkError=a,new Error(a)}if(this.validateShaderPrograms&&(t.validateProgram(r),!t.getProgramParameter(r,t.VALIDATE_STATUS)&&(a=t.getProgramInfoLog(r))))throw e.programValidationError=a,new Error(a);t.deleteShader(i),t.deleteShader(n),e.vertexShader=void 0,e.fragmentShader=void 0,e.onCompiled&&(e.onCompiled(),e.onCompiled=void 0)},e.prototype._preparePipelineContext=function(e,t,i,n,r,o,a){var s=e;s.program=n?this.createRawShaderProgram(s,t,i,void 0,a):this.createShaderProgram(s,t,i,o,void 0,a),s.program.__SPECTOR_rebuildProgram=r},e.prototype._isRenderingStateCompiled=function(e){var t=e;return!!this._gl.getProgramParameter(t.program,this._caps.parallelShaderCompile.COMPLETION_STATUS_KHR)&&(this._finalizePipelineContext(t),!0)},e.prototype._executeWhenRenderingStateIsCompiled=function(e,t){var i=e;if(i.isParallelCompiled){var n=i.onCompiled;i.onCompiled=n?function(){n(),t()}:t}else t()},e.prototype.getUniforms=function(e,t){for(var i=new Array,n=e,r=0;r-1?t.substring(A).toLowerCase():\"\"),C=null;P.indexOf(\"?\")>-1&&(P=P.split(\"?\")[0]);for(var R=0,x=e._TextureLoaders;Rc||e.height>c||!v._supportsHardwareTextureRescaling)return v._prepareWorkingCanvas(),!(!v._workingCanvas||!v._workingContext)&&(v._workingCanvas.width=t,v._workingCanvas.height=i,v._workingContext.drawImage(e,0,0,e.width,e.height,0,0,t,i),r.texImage2D(r.TEXTURE_2D,0,s,s,r.UNSIGNED_BYTE,v._workingCanvas),E.width=t,E.height=i,!1);var l=new h.a(v,h.b.Temp);return v._bindTextureDirectly(r.TEXTURE_2D,l,!0),r.texImage2D(r.TEXTURE_2D,0,s,s,r.UNSIGNED_BYTE,e),v._rescaleTexture(l,E,o,s,(function(){v._releaseTexture(l),v._bindTextureDirectly(r.TEXTURE_2D,E,!0),n()})),!0}),a)};!b||T?l&&(l.decoding||l.close)?N(l):e._FileToolsLoadImage(t,N,I,o?o.offlineProvider:null,m):\"string\"==typeof l||l instanceof ArrayBuffer||ArrayBuffer.isView(l)||l instanceof Blob?e._FileToolsLoadImage(l,N,I,o?o.offlineProvider:null,m):l&&N(l)}return E},e._FileToolsLoadImage=function(e,t,i,n,r){throw o.a.WarnImport(\"FileTools\")},e.prototype._rescaleTexture=function(e,t,i,n,r){},e.prototype.createRawTexture=function(e,t,i,n,r,a,s,c,l){throw void 0===c&&(c=null),void 0===l&&(l=u.a.TEXTURETYPE_UNSIGNED_INT),o.a.WarnImport(\"Engine.RawTexture\")},e.prototype.createRawCubeTexture=function(e,t,i,n,r,a,s,c){throw void 0===c&&(c=null),o.a.WarnImport(\"Engine.RawTexture\")},e.prototype.createRawTexture3D=function(e,t,i,n,r,a,s,c,l,h){throw void 0===l&&(l=null),void 0===h&&(h=u.a.TEXTURETYPE_UNSIGNED_INT),o.a.WarnImport(\"Engine.RawTexture\")},e.prototype.createRawTexture2DArray=function(e,t,i,n,r,a,s,c,l,h){throw void 0===l&&(l=null),void 0===h&&(h=u.a.TEXTURETYPE_UNSIGNED_INT),o.a.WarnImport(\"Engine.RawTexture\")},e.prototype._unpackFlipY=function(e){this._unpackFlipYCached!==e&&(this._gl.pixelStorei(this._gl.UNPACK_FLIP_Y_WEBGL,e?1:0),this.enableUnpackFlipYCached&&(this._unpackFlipYCached=e))},e.prototype._getUnpackAlignement=function(){return this._gl.getParameter(this._gl.UNPACK_ALIGNMENT)},e.prototype._getTextureTarget=function(e){return e.isCube?this._gl.TEXTURE_CUBE_MAP:e.is3D?this._gl.TEXTURE_3D:e.is2DArray||e.isMultiview?this._gl.TEXTURE_2D_ARRAY:this._gl.TEXTURE_2D},e.prototype.updateTextureSamplingMode=function(e,t,i){void 0===i&&(i=!1);var n=this._getTextureTarget(t),r=this._getSamplingParameters(e,t.generateMipMaps||i);this._setTextureParameterInteger(n,this._gl.TEXTURE_MAG_FILTER,r.mag,t),this._setTextureParameterInteger(n,this._gl.TEXTURE_MIN_FILTER,r.min),i&&(t.generateMipMaps=!0,this._gl.generateMipmap(n)),this._bindTextureDirectly(n,null),t.samplingMode=e},e.prototype.updateTextureWrappingMode=function(e,t,i,n){void 0===i&&(i=null),void 0===n&&(n=null);var r=this._getTextureTarget(e);null!==t&&(this._setTextureParameterInteger(r,this._gl.TEXTURE_WRAP_S,this._getTextureWrapMode(t),e),e._cachedWrapU=t),null!==i&&(this._setTextureParameterInteger(r,this._gl.TEXTURE_WRAP_T,this._getTextureWrapMode(i),e),e._cachedWrapV=i),(e.is2DArray||e.is3D)&&null!==n&&(this._setTextureParameterInteger(r,this._gl.TEXTURE_WRAP_R,this._getTextureWrapMode(n),e),e._cachedWrapR=n),this._bindTextureDirectly(r,null)},e.prototype._setupDepthStencilTexture=function(e,t,i,n,r){var o=t.width||t,a=t.height||t,s=t.layers||0;e.baseWidth=o,e.baseHeight=a,e.width=o,e.height=a,e.is2DArray=s>0,e.depth=s,e.isReady=!0,e.samples=1,e.generateMipMaps=!1,e._generateDepthBuffer=!0,e._generateStencilBuffer=i,e.samplingMode=n?u.a.TEXTURE_BILINEAR_SAMPLINGMODE:u.a.TEXTURE_NEAREST_SAMPLINGMODE,e.type=u.a.TEXTURETYPE_UNSIGNED_INT,e._comparisonFunction=r;var c=this._gl,l=this._getTextureTarget(e),h=this._getSamplingParameters(e.samplingMode,!1);c.texParameteri(l,c.TEXTURE_MAG_FILTER,h.mag),c.texParameteri(l,c.TEXTURE_MIN_FILTER,h.min),c.texParameteri(l,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE),c.texParameteri(l,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE),0===r?(c.texParameteri(l,c.TEXTURE_COMPARE_FUNC,u.a.LEQUAL),c.texParameteri(l,c.TEXTURE_COMPARE_MODE,c.NONE)):(c.texParameteri(l,c.TEXTURE_COMPARE_FUNC,r),c.texParameteri(l,c.TEXTURE_COMPARE_MODE,c.COMPARE_REF_TO_TEXTURE))},e.prototype._uploadCompressedDataToTextureDirectly=function(e,t,i,n,r,o,a){void 0===o&&(o=0),void 0===a&&(a=0);var s=this._gl,c=s.TEXTURE_2D;e.isCube&&(c=s.TEXTURE_CUBE_MAP_POSITIVE_X+o),this._gl.compressedTexImage2D(c,a,t,i,n,0,r)},e.prototype._uploadDataToTextureDirectly=function(e,t,i,n,r,o){void 0===i&&(i=0),void 0===n&&(n=0),void 0===o&&(o=!1);var a=this._gl,s=this._getWebGLTextureType(e.type),c=this._getInternalFormat(e.format),l=void 0===r?this._getRGBABufferInternalSizedFormat(e.type,e.format):this._getInternalFormat(r);this._unpackFlipY(e.invertY);var u=a.TEXTURE_2D;e.isCube&&(u=a.TEXTURE_CUBE_MAP_POSITIVE_X+i);var h=Math.round(Math.log(e.width)*Math.LOG2E),d=Math.round(Math.log(e.height)*Math.LOG2E),f=o?e.width:Math.pow(2,Math.max(h-n,0)),p=o?e.height:Math.pow(2,Math.max(d-n,0));a.texImage2D(u,n,l,f,p,0,c,s,t)},e.prototype.updateTextureData=function(e,t,i,n,r,o,a,s){void 0===a&&(a=0),void 0===s&&(s=0);var c=this._gl,l=this._getWebGLTextureType(e.type),u=this._getInternalFormat(e.format);this._unpackFlipY(e.invertY);var h=c.TEXTURE_2D;e.isCube&&(h=c.TEXTURE_CUBE_MAP_POSITIVE_X+a),c.texSubImage2D(h,s,i,n,r,o,u,l,t)},e.prototype._uploadArrayBufferViewToTexture=function(e,t,i,n){void 0===i&&(i=0),void 0===n&&(n=0);var r=this._gl,o=e.isCube?r.TEXTURE_CUBE_MAP:r.TEXTURE_2D;this._bindTextureDirectly(o,e,!0),this._uploadDataToTextureDirectly(e,t,i,n),this._bindTextureDirectly(o,null,!0)},e.prototype._prepareWebGLTextureContinuation=function(e,t,i,n,r){var o=this._gl;if(o){var a=this._getSamplingParameters(r,!i);o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,a.mag),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,a.min),i||n||o.generateMipmap(o.TEXTURE_2D),this._bindTextureDirectly(o.TEXTURE_2D,null),t&&t._removePendingData(e),e.onLoadedObservable.notifyObservers(e),e.onLoadedObservable.clear()}},e.prototype._prepareWebGLTexture=function(t,i,n,r,o,a,s,c,l){var h=this;void 0===l&&(l=u.a.TEXTURE_TRILINEAR_SAMPLINGMODE);var d=this.getCaps().maxTextureSize,f=Math.min(d,this.needPOTTextures?e.GetExponentOfTwo(n,d):n),p=Math.min(d,this.needPOTTextures?e.GetExponentOfTwo(r,d):r),_=this._gl;_&&(t._webGLTexture?(this._bindTextureDirectly(_.TEXTURE_2D,t,!0),this._unpackFlipY(void 0===o||!!o),t.baseWidth=n,t.baseHeight=r,t.width=f,t.height=p,t.isReady=!0,c(f,p,(function(){h._prepareWebGLTextureContinuation(t,i,a,s,l)}))||this._prepareWebGLTextureContinuation(t,i,a,s,l)):i&&i._removePendingData(t))},e.prototype._setupFramebufferDepthAttachments=function(e,t,i,n,r){void 0===r&&(r=1);var o=this._gl;if(e&&t)return this._getDepthStencilBuffer(i,n,r,o.DEPTH_STENCIL,o.DEPTH24_STENCIL8,o.DEPTH_STENCIL_ATTACHMENT);if(t){var a=o.DEPTH_COMPONENT16;return this._webGLVersion>1&&(a=o.DEPTH_COMPONENT32F),this._getDepthStencilBuffer(i,n,r,a,a,o.DEPTH_ATTACHMENT)}return e?this._getDepthStencilBuffer(i,n,r,o.STENCIL_INDEX8,o.STENCIL_INDEX8,o.STENCIL_ATTACHMENT):null},e.prototype._releaseFramebufferObjects=function(e){var t=this._gl;e._framebuffer&&(t.deleteFramebuffer(e._framebuffer),e._framebuffer=null),e._depthStencilBuffer&&(t.deleteRenderbuffer(e._depthStencilBuffer),e._depthStencilBuffer=null),e._MSAAFramebuffer&&(t.deleteFramebuffer(e._MSAAFramebuffer),e._MSAAFramebuffer=null),e._MSAARenderBuffer&&(t.deleteRenderbuffer(e._MSAARenderBuffer),e._MSAARenderBuffer=null)},e.prototype._releaseTexture=function(e){this._releaseFramebufferObjects(e),this._deleteTexture(e._webGLTexture),this.unbindAllTextures();var t=this._internalTexturesCache.indexOf(e);-1!==t&&this._internalTexturesCache.splice(t,1),e._lodTextureHigh&&e._lodTextureHigh.dispose(),e._lodTextureMid&&e._lodTextureMid.dispose(),e._lodTextureLow&&e._lodTextureLow.dispose(),e._irradianceTexture&&e._irradianceTexture.dispose()},e.prototype._deleteTexture=function(e){this._gl.deleteTexture(e)},e.prototype._setProgram=function(e){this._currentProgram!==e&&(this._gl.useProgram(e),this._currentProgram=e)},e.prototype.bindSamplers=function(e){var t=e.getPipelineContext();this._setProgram(t.program);for(var i=e.getSamplers(),n=0;n-1;return i&&o&&(this._activeChannel=t._associatedChannel),this._boundTexturesCache[this._activeChannel]!==t||n?(this._activateCurrentTexture(),t&&t.isMultiview?this._gl.bindTexture(e,t?t._colorTextureArray:null):this._gl.bindTexture(e,t?t._webGLTexture:null),this._boundTexturesCache[this._activeChannel]=t,t&&(t._associatedChannel=this._activeChannel)):i&&(r=!0,this._activateCurrentTexture()),o&&!i&&this._bindSamplerUniformToChannel(t._associatedChannel,this._activeChannel),r},e.prototype._bindTexture=function(e,t){if(void 0!==e){t&&(t._associatedChannel=e),this._activeChannel=e;var i=t?this._getTextureTarget(t):this._gl.TEXTURE_2D;this._bindTextureDirectly(i,t)}},e.prototype.unbindAllTextures=function(){for(var e=0;e1&&(this._bindTextureDirectly(this._gl.TEXTURE_3D,null),this._bindTextureDirectly(this._gl.TEXTURE_2D_ARRAY,null))},e.prototype.setTexture=function(e,t,i){void 0!==e&&(t&&(this._boundUniforms[e]=t),this._setTexture(e,i))},e.prototype._bindSamplerUniformToChannel=function(e,t){var i=this._boundUniforms[e];i&&i._currentState!==t&&(this._gl.uniform1i(i,t),i._currentState=t)},e.prototype._getTextureWrapMode=function(e){switch(e){case u.a.TEXTURE_WRAP_ADDRESSMODE:return this._gl.REPEAT;case u.a.TEXTURE_CLAMP_ADDRESSMODE:return this._gl.CLAMP_TO_EDGE;case u.a.TEXTURE_MIRROR_ADDRESSMODE:return this._gl.MIRRORED_REPEAT}return this._gl.REPEAT},e.prototype._setTexture=function(e,t,i,n){if(void 0===i&&(i=!1),void 0===n&&(n=!1),!t)return null!=this._boundTexturesCache[e]&&(this._activeChannel=e,this._bindTextureDirectly(this._gl.TEXTURE_2D,null),this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,null),this.webGLVersion>1&&(this._bindTextureDirectly(this._gl.TEXTURE_3D,null),this._bindTextureDirectly(this._gl.TEXTURE_2D_ARRAY,null))),!1;if(t.video)this._activeChannel=e,t.update();else if(t.delayLoadState===u.a.DELAYLOADSTATE_NOTLOADED)return t.delayLoad(),!1;var r;r=n?t.depthStencilTexture:t.isReady()?t.getInternalTexture():t.isCube?this.emptyCubeTexture:t.is3D?this.emptyTexture3D:t.is2DArray?this.emptyTexture2DArray:this.emptyTexture,!i&&r&&(r._associatedChannel=e);var o=!0;this._boundTexturesCache[e]===r&&(i||this._bindSamplerUniformToChannel(r._associatedChannel,e),o=!1),this._activeChannel=e;var a=this._getTextureTarget(r);if(o&&this._bindTextureDirectly(a,r,i),r&&!r.isMultiview){if(r.isCube&&r._cachedCoordinatesMode!==t.coordinatesMode){r._cachedCoordinatesMode=t.coordinatesMode;var s=t.coordinatesMode!==u.a.TEXTURE_CUBIC_MODE&&t.coordinatesMode!==u.a.TEXTURE_SKYBOX_MODE?u.a.TEXTURE_WRAP_ADDRESSMODE:u.a.TEXTURE_CLAMP_ADDRESSMODE;t.wrapU=s,t.wrapV=s}r._cachedWrapU!==t.wrapU&&(r._cachedWrapU=t.wrapU,this._setTextureParameterInteger(a,this._gl.TEXTURE_WRAP_S,this._getTextureWrapMode(t.wrapU),r)),r._cachedWrapV!==t.wrapV&&(r._cachedWrapV=t.wrapV,this._setTextureParameterInteger(a,this._gl.TEXTURE_WRAP_T,this._getTextureWrapMode(t.wrapV),r)),r.is3D&&r._cachedWrapR!==t.wrapR&&(r._cachedWrapR=t.wrapR,this._setTextureParameterInteger(a,this._gl.TEXTURE_WRAP_R,this._getTextureWrapMode(t.wrapR),r)),this._setAnisotropicLevel(a,r,t.anisotropicFilteringLevel)}return!0},e.prototype.setTextureArray=function(e,t,i){if(void 0!==e&&t){this._textureUnits&&this._textureUnits.length===i.length||(this._textureUnits=new Int32Array(i.length));for(var n=0;n=this._caps.maxVertexAttribs||!this._vertexAttribArraysEnabled[e]||this.disableAttributeByIndex(e)}},e.prototype.releaseEffects=function(){for(var e in this._compiledEffects){var t=this._compiledEffects[e].getPipelineContext();this._deletePipelineContext(t)}this._compiledEffects={}},e.prototype.dispose=function(){this.stopRenderLoop(),this.onBeforeTextureInitObservable&&this.onBeforeTextureInitObservable.clear(),this._emptyTexture&&(this._releaseTexture(this._emptyTexture),this._emptyTexture=null),this._emptyCubeTexture&&(this._releaseTexture(this._emptyCubeTexture),this._emptyCubeTexture=null),this._dummyFramebuffer&&this._gl.deleteFramebuffer(this._dummyFramebuffer),this.releaseEffects(),this.unbindAllAttributes(),this._boundUniforms=[],f.a.IsWindowObjectExist()&&this._renderingCanvas&&(this._doNotHandleContextLost||(this._renderingCanvas.removeEventListener(\"webglcontextlost\",this._onContextLost),this._renderingCanvas.removeEventListener(\"webglcontextrestored\",this._onContextRestored))),this._workingCanvas=null,this._workingContext=null,this._currentBufferPointers=[],this._renderingCanvas=null,this._currentProgram=null,this._boundRenderFunction=null,r.a.ResetCache();for(var e=0,t=this._activeRequests;e1?this._caps.colorBufferFloat:this._canRenderToFramebuffer(u.a.TEXTURETYPE_FLOAT)},e.prototype._canRenderToHalfFloatFramebuffer=function(){return this._webGLVersion>1?this._caps.colorBufferFloat:this._canRenderToFramebuffer(u.a.TEXTURETYPE_HALF_FLOAT)},e.prototype._canRenderToFramebuffer=function(e){for(var t=this._gl;t.getError()!==t.NO_ERROR;);var i=!0,n=t.createTexture();t.bindTexture(t.TEXTURE_2D,n),t.texImage2D(t.TEXTURE_2D,0,this._getRGBABufferInternalSizedFormat(e),1,1,0,t.RGBA,this._getWebGLTextureType(e),null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST);var r=t.createFramebuffer();t.bindFramebuffer(t.FRAMEBUFFER,r),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,n,0);var o=t.checkFramebufferStatus(t.FRAMEBUFFER);if((i=(i=i&&o===t.FRAMEBUFFER_COMPLETE)&&t.getError()===t.NO_ERROR)&&(t.clear(t.COLOR_BUFFER_BIT),i=i&&t.getError()===t.NO_ERROR),i){t.bindFramebuffer(t.FRAMEBUFFER,null);var a=t.RGBA,s=t.UNSIGNED_BYTE,c=new Uint8Array(4);t.readPixels(0,0,1,1,a,s,c),i=i&&t.getError()===t.NO_ERROR}for(t.deleteTexture(n),t.deleteFramebuffer(r),t.bindFramebuffer(t.FRAMEBUFFER,null);!i&&t.getError()!==t.NO_ERROR;);return i},e.prototype._getWebGLTextureType=function(e){if(1===this._webGLVersion){switch(e){case u.a.TEXTURETYPE_FLOAT:return this._gl.FLOAT;case u.a.TEXTURETYPE_HALF_FLOAT:return this._gl.HALF_FLOAT_OES;case u.a.TEXTURETYPE_UNSIGNED_BYTE:return this._gl.UNSIGNED_BYTE;case u.a.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4:return this._gl.UNSIGNED_SHORT_4_4_4_4;case u.a.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1:return this._gl.UNSIGNED_SHORT_5_5_5_1;case u.a.TEXTURETYPE_UNSIGNED_SHORT_5_6_5:return this._gl.UNSIGNED_SHORT_5_6_5}return this._gl.UNSIGNED_BYTE}switch(e){case u.a.TEXTURETYPE_BYTE:return this._gl.BYTE;case u.a.TEXTURETYPE_UNSIGNED_BYTE:return this._gl.UNSIGNED_BYTE;case u.a.TEXTURETYPE_SHORT:return this._gl.SHORT;case u.a.TEXTURETYPE_UNSIGNED_SHORT:return this._gl.UNSIGNED_SHORT;case u.a.TEXTURETYPE_INT:return this._gl.INT;case u.a.TEXTURETYPE_UNSIGNED_INTEGER:return this._gl.UNSIGNED_INT;case u.a.TEXTURETYPE_FLOAT:return this._gl.FLOAT;case u.a.TEXTURETYPE_HALF_FLOAT:return this._gl.HALF_FLOAT;case u.a.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4:return this._gl.UNSIGNED_SHORT_4_4_4_4;case u.a.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1:return this._gl.UNSIGNED_SHORT_5_5_5_1;case u.a.TEXTURETYPE_UNSIGNED_SHORT_5_6_5:return this._gl.UNSIGNED_SHORT_5_6_5;case u.a.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV:return this._gl.UNSIGNED_INT_2_10_10_10_REV;case u.a.TEXTURETYPE_UNSIGNED_INT_24_8:return this._gl.UNSIGNED_INT_24_8;case u.a.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV:return this._gl.UNSIGNED_INT_10F_11F_11F_REV;case u.a.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV:return this._gl.UNSIGNED_INT_5_9_9_9_REV;case u.a.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV:return this._gl.FLOAT_32_UNSIGNED_INT_24_8_REV}return this._gl.UNSIGNED_BYTE},e.prototype._getInternalFormat=function(e){var t=this._gl.RGBA;switch(e){case u.a.TEXTUREFORMAT_ALPHA:t=this._gl.ALPHA;break;case u.a.TEXTUREFORMAT_LUMINANCE:t=this._gl.LUMINANCE;break;case u.a.TEXTUREFORMAT_LUMINANCE_ALPHA:t=this._gl.LUMINANCE_ALPHA;break;case u.a.TEXTUREFORMAT_RED:t=this._gl.RED;break;case u.a.TEXTUREFORMAT_RG:t=this._gl.RG;break;case u.a.TEXTUREFORMAT_RGB:t=this._gl.RGB;break;case u.a.TEXTUREFORMAT_RGBA:t=this._gl.RGBA}if(this._webGLVersion>1)switch(e){case u.a.TEXTUREFORMAT_RED_INTEGER:t=this._gl.RED_INTEGER;break;case u.a.TEXTUREFORMAT_RG_INTEGER:t=this._gl.RG_INTEGER;break;case u.a.TEXTUREFORMAT_RGB_INTEGER:t=this._gl.RGB_INTEGER;break;case u.a.TEXTUREFORMAT_RGBA_INTEGER:t=this._gl.RGBA_INTEGER}return t},e.prototype._getRGBABufferInternalSizedFormat=function(e,t){if(1===this._webGLVersion){if(void 0!==t)switch(t){case u.a.TEXTUREFORMAT_ALPHA:return this._gl.ALPHA;case u.a.TEXTUREFORMAT_LUMINANCE:return this._gl.LUMINANCE;case u.a.TEXTUREFORMAT_LUMINANCE_ALPHA:return this._gl.LUMINANCE_ALPHA;case u.a.TEXTUREFORMAT_RGB:return this._gl.RGB}return this._gl.RGBA}switch(e){case u.a.TEXTURETYPE_BYTE:switch(t){case u.a.TEXTUREFORMAT_RED:return this._gl.R8_SNORM;case u.a.TEXTUREFORMAT_RG:return this._gl.RG8_SNORM;case u.a.TEXTUREFORMAT_RGB:return this._gl.RGB8_SNORM;case u.a.TEXTUREFORMAT_RED_INTEGER:return this._gl.R8I;case u.a.TEXTUREFORMAT_RG_INTEGER:return this._gl.RG8I;case u.a.TEXTUREFORMAT_RGB_INTEGER:return this._gl.RGB8I;case u.a.TEXTUREFORMAT_RGBA_INTEGER:return this._gl.RGBA8I;default:return this._gl.RGBA8_SNORM}case u.a.TEXTURETYPE_UNSIGNED_BYTE:switch(t){case u.a.TEXTUREFORMAT_RED:return this._gl.R8;case u.a.TEXTUREFORMAT_RG:return this._gl.RG8;case u.a.TEXTUREFORMAT_RGB:return this._gl.RGB8;case u.a.TEXTUREFORMAT_RGBA:return this._gl.RGBA8;case u.a.TEXTUREFORMAT_RED_INTEGER:return this._gl.R8UI;case u.a.TEXTUREFORMAT_RG_INTEGER:return this._gl.RG8UI;case u.a.TEXTUREFORMAT_RGB_INTEGER:return this._gl.RGB8UI;case u.a.TEXTUREFORMAT_RGBA_INTEGER:return this._gl.RGBA8UI;case u.a.TEXTUREFORMAT_ALPHA:return this._gl.ALPHA;case u.a.TEXTUREFORMAT_LUMINANCE:return this._gl.LUMINANCE;case u.a.TEXTUREFORMAT_LUMINANCE_ALPHA:return this._gl.LUMINANCE_ALPHA;default:return this._gl.RGBA8}case u.a.TEXTURETYPE_SHORT:switch(t){case u.a.TEXTUREFORMAT_RED_INTEGER:return this._gl.R16I;case u.a.TEXTUREFORMAT_RG_INTEGER:return this._gl.RG16I;case u.a.TEXTUREFORMAT_RGB_INTEGER:return this._gl.RGB16I;case u.a.TEXTUREFORMAT_RGBA_INTEGER:default:return this._gl.RGBA16I}case u.a.TEXTURETYPE_UNSIGNED_SHORT:switch(t){case u.a.TEXTUREFORMAT_RED_INTEGER:return this._gl.R16UI;case u.a.TEXTUREFORMAT_RG_INTEGER:return this._gl.RG16UI;case u.a.TEXTUREFORMAT_RGB_INTEGER:return this._gl.RGB16UI;case u.a.TEXTUREFORMAT_RGBA_INTEGER:default:return this._gl.RGBA16UI}case u.a.TEXTURETYPE_INT:switch(t){case u.a.TEXTUREFORMAT_RED_INTEGER:return this._gl.R32I;case u.a.TEXTUREFORMAT_RG_INTEGER:return this._gl.RG32I;case u.a.TEXTUREFORMAT_RGB_INTEGER:return this._gl.RGB32I;case u.a.TEXTUREFORMAT_RGBA_INTEGER:default:return this._gl.RGBA32I}case u.a.TEXTURETYPE_UNSIGNED_INTEGER:switch(t){case u.a.TEXTUREFORMAT_RED_INTEGER:return this._gl.R32UI;case u.a.TEXTUREFORMAT_RG_INTEGER:return this._gl.RG32UI;case u.a.TEXTUREFORMAT_RGB_INTEGER:return this._gl.RGB32UI;case u.a.TEXTUREFORMAT_RGBA_INTEGER:default:return this._gl.RGBA32UI}case u.a.TEXTURETYPE_FLOAT:switch(t){case u.a.TEXTUREFORMAT_RED:return this._gl.R32F;case u.a.TEXTUREFORMAT_RG:return this._gl.RG32F;case u.a.TEXTUREFORMAT_RGB:return this._gl.RGB32F;case u.a.TEXTUREFORMAT_RGBA:default:return this._gl.RGBA32F}case u.a.TEXTURETYPE_HALF_FLOAT:switch(t){case u.a.TEXTUREFORMAT_RED:return this._gl.R16F;case u.a.TEXTUREFORMAT_RG:return this._gl.RG16F;case u.a.TEXTUREFORMAT_RGB:return this._gl.RGB16F;case u.a.TEXTUREFORMAT_RGBA:default:return this._gl.RGBA16F}case u.a.TEXTURETYPE_UNSIGNED_SHORT_5_6_5:return this._gl.RGB565;case u.a.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV:return this._gl.R11F_G11F_B10F;case u.a.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV:return this._gl.RGB9_E5;case u.a.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4:return this._gl.RGBA4;case u.a.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1:return this._gl.RGB5_A1;case u.a.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV:switch(t){case u.a.TEXTUREFORMAT_RGBA:return this._gl.RGB10_A2;case u.a.TEXTUREFORMAT_RGBA_INTEGER:return this._gl.RGB10_A2UI;default:return this._gl.RGB10_A2}}return this._gl.RGBA8},e.prototype._getRGBAMultiSampleBufferFormat=function(e){return e===u.a.TEXTURETYPE_FLOAT?this._gl.RGBA32F:e===u.a.TEXTURETYPE_HALF_FLOAT?this._gl.RGBA16F:this._gl.RGBA8},e.prototype._loadFile=function(t,i,n,r,o,a){var s=this,c=e._FileToolsLoadFile(t,i,n,r,o,a);return this._activeRequests.push(c),c.onCompleteObservable.add((function(e){s._activeRequests.splice(s._activeRequests.indexOf(e),1)})),c},e._FileToolsLoadFile=function(e,t,i,n,r,a){throw o.a.WarnImport(\"FileTools\")},e.prototype.readPixels=function(e,t,i,n,r){void 0===r&&(r=!0);var o=r?4:3,a=r?this._gl.RGBA:this._gl.RGB,s=new Uint8Array(n*i*o);return this._gl.readPixels(e,t,i,n,a,this._gl.UNSIGNED_BYTE,s),s},Object.defineProperty(e,\"IsSupported\",{get:function(){return this.isSupported()},enumerable:!1,configurable:!0}),e.isSupported=function(){if(null!==this._HasMajorPerformanceCaveat)return!this._HasMajorPerformanceCaveat;if(null===this._IsSupported)try{var e=v.a.CreateCanvas(1,1),t=e.getContext(\"webgl\")||e.getContext(\"experimental-webgl\");this._IsSupported=null!=t&&!!window.WebGLRenderingContext}catch(e){this._IsSupported=!1}return this._IsSupported},Object.defineProperty(e,\"HasMajorPerformanceCaveat\",{get:function(){if(null===this._HasMajorPerformanceCaveat)try{var e=v.a.CreateCanvas(1,1),t=e.getContext(\"webgl\",{failIfMajorPerformanceCaveat:!0})||e.getContext(\"experimental-webgl\",{failIfMajorPerformanceCaveat:!0});this._HasMajorPerformanceCaveat=!t}catch(e){this._HasMajorPerformanceCaveat=!1}return this._HasMajorPerformanceCaveat},enumerable:!1,configurable:!0}),e.CeilingPOT=function(e){return e--,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},e.FloorPOT=function(e){return e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,(e|=e>>16)-(e>>1)},e.NearestPOT=function(t){var i=e.CeilingPOT(t),n=e.FloorPOT(t);return i-t>t-n?n:i},e.GetExponentOfTwo=function(t,i,n){var r;switch(void 0===n&&(n=u.a.SCALEMODE_NEAREST),n){case u.a.SCALEMODE_FLOOR:r=e.FloorPOT(t);break;case u.a.SCALEMODE_NEAREST:r=e.NearestPOT(t);break;case u.a.SCALEMODE_CEILING:default:r=e.CeilingPOT(t)}return Math.min(r,i)},e.QueueNewFrame=function(e,t){return f.a.IsWindowObjectExist()?(t||(t=window),t.requestPostAnimationFrame?t.requestPostAnimationFrame(e):t.requestAnimationFrame?t.requestAnimationFrame(e):t.msRequestAnimationFrame?t.msRequestAnimationFrame(e):t.webkitRequestAnimationFrame?t.webkitRequestAnimationFrame(e):t.mozRequestAnimationFrame?t.mozRequestAnimationFrame(e):t.oRequestAnimationFrame?t.oRequestAnimationFrame(e):window.setTimeout(e,16)):\"undefined\"!=typeof requestAnimationFrame?requestAnimationFrame(e):setTimeout(e,16)},e.prototype.getHostDocument=function(){return this._renderingCanvas&&this._renderingCanvas.ownerDocument?this._renderingCanvas.ownerDocument:document},e.ExceptionList=[{key:\"Chrome/63.0\",capture:\"63\\\\.0\\\\.3239\\\\.(\\\\d+)\",captureConstraint:108,targets:[\"uniformBuffer\"]},{key:\"Firefox/58\",capture:null,captureConstraint:null,targets:[\"uniformBuffer\"]},{key:\"Firefox/59\",capture:null,captureConstraint:null,targets:[\"uniformBuffer\"]},{key:\"Chrome/72.+?Mobile\",capture:null,captureConstraint:null,targets:[\"vao\"]},{key:\"Chrome/73.+?Mobile\",capture:null,captureConstraint:null,targets:[\"vao\"]},{key:\"Chrome/74.+?Mobile\",capture:null,captureConstraint:null,targets:[\"vao\"]},{key:\"Mac OS.+Chrome/71\",capture:null,captureConstraint:null,targets:[\"vao\"]},{key:\"Mac OS.+Chrome/72\",capture:null,captureConstraint:null,targets:[\"vao\"]}],e._TextureLoaders=[],e.CollisionsEpsilon=.001,e._IsSupported=null,e._HasMajorPerformanceCaveat=null,e}()},function(e,t,i){\"use strict\";i.d(t,\"b\",(function(){return n})),i.d(t,\"a\",(function(){return c}));var n,r=i(6),o=i(102),a=i(2),s=i(21);!function(e){e[e.Unknown=0]=\"Unknown\",e[e.Url=1]=\"Url\",e[e.Temp=2]=\"Temp\",e[e.Raw=3]=\"Raw\",e[e.Dynamic=4]=\"Dynamic\",e[e.RenderTarget=5]=\"RenderTarget\",e[e.MultiRenderTarget=6]=\"MultiRenderTarget\",e[e.Cube=7]=\"Cube\",e[e.CubeRaw=8]=\"CubeRaw\",e[e.CubePrefiltered=9]=\"CubePrefiltered\",e[e.Raw3D=10]=\"Raw3D\",e[e.Raw2DArray=11]=\"Raw2DArray\",e[e.Depth=12]=\"Depth\",e[e.CubeRawRGBD=13]=\"CubeRawRGBD\"}(n||(n={}));var c=function(){function e(e,t,i){void 0===i&&(i=!1),this.isReady=!1,this.isCube=!1,this.is3D=!1,this.is2DArray=!1,this.isMultiview=!1,this.url=\"\",this.samplingMode=-1,this.generateMipMaps=!1,this.samples=0,this.type=-1,this.format=-1,this.onLoadedObservable=new r.c,this.width=0,this.height=0,this.depth=0,this.baseWidth=0,this.baseHeight=0,this.baseDepth=0,this.invertY=!1,this._invertVScale=!1,this._associatedChannel=-1,this._source=n.Unknown,this._buffer=null,this._bufferView=null,this._bufferViewArray=null,this._bufferViewArrayArray=null,this._size=0,this._extension=\"\",this._files=null,this._workingCanvas=null,this._workingContext=null,this._framebuffer=null,this._depthStencilBuffer=null,this._MSAAFramebuffer=null,this._MSAARenderBuffer=null,this._attachments=null,this._textureArray=null,this._cachedCoordinatesMode=null,this._cachedWrapU=null,this._cachedWrapV=null,this._cachedWrapR=null,this._cachedAnisotropicFilteringLevel=null,this._isDisabled=!1,this._compression=null,this._generateStencilBuffer=!1,this._generateDepthBuffer=!1,this._comparisonFunction=0,this._sphericalPolynomial=null,this._lodGenerationScale=0,this._lodGenerationOffset=0,this._colorTextureArray=null,this._depthStencilTextureArray=null,this._lodTextureHigh=null,this._lodTextureMid=null,this._lodTextureLow=null,this._isRGBD=!1,this._linearSpecularLOD=!1,this._irradianceTexture=null,this._webGLTexture=null,this._references=1,this._gammaSpace=null,this._engine=e,this._source=t,i||(this._webGLTexture=e._createTexture())}return e.prototype.getEngine=function(){return this._engine},Object.defineProperty(e.prototype,\"source\",{get:function(){return this._source},enumerable:!1,configurable:!0}),e.prototype.incrementReferences=function(){this._references++},e.prototype.updateSize=function(e,t,i){void 0===i&&(i=1),this.width=e,this.height=t,this.depth=i,this.baseWidth=e,this.baseHeight=t,this.baseDepth=i,this._size=e*t*i},e.prototype._rebuild=function(){var t,i,r=this;switch(this.isReady=!1,this._cachedCoordinatesMode=null,this._cachedWrapU=null,this._cachedWrapV=null,this._cachedAnisotropicFilteringLevel=null,this.source){case n.Temp:return;case n.Url:return void(i=this._engine.createTexture(null!==(t=this._originalUrl)&&void 0!==t?t:this.url,!this.generateMipMaps,this.invertY,null,this.samplingMode,(function(){i._swapAndDie(r),r.isReady=!0}),null,this._buffer,void 0,this.format));case n.Raw:return(i=this._engine.createRawTexture(this._bufferView,this.baseWidth,this.baseHeight,this.format,this.generateMipMaps,this.invertY,this.samplingMode,this._compression))._swapAndDie(this),void(this.isReady=!0);case n.Raw3D:return(i=this._engine.createRawTexture3D(this._bufferView,this.baseWidth,this.baseHeight,this.baseDepth,this.format,this.generateMipMaps,this.invertY,this.samplingMode,this._compression))._swapAndDie(this),void(this.isReady=!0);case n.Raw2DArray:return(i=this._engine.createRawTexture2DArray(this._bufferView,this.baseWidth,this.baseHeight,this.baseDepth,this.format,this.generateMipMaps,this.invertY,this.samplingMode,this._compression))._swapAndDie(this),void(this.isReady=!0);case n.Dynamic:return(i=this._engine.createDynamicTexture(this.baseWidth,this.baseHeight,this.generateMipMaps,this.samplingMode))._swapAndDie(this),void this._engine.updateDynamicTexture(this,this._engine.getRenderingCanvas(),this.invertY,void 0,void 0,!0);case n.RenderTarget:var s=new o.a;if(s.generateDepthBuffer=this._generateDepthBuffer,s.generateMipMaps=this.generateMipMaps,s.generateStencilBuffer=this._generateStencilBuffer,s.samplingMode=this.samplingMode,s.type=this.type,this.isCube)i=this._engine.createRenderTargetCubeTexture(this.width,s);else{var c={width:this.width,height:this.height,layers:this.is2DArray?this.depth:void 0};i=this._engine.createRenderTargetTexture(c,s)}return i._swapAndDie(this),void(this.isReady=!0);case n.Depth:var l={bilinearFiltering:this.samplingMode!==a.a.TEXTURE_BILINEAR_SAMPLINGMODE,comparisonFunction:this._comparisonFunction,generateStencil:this._generateStencilBuffer,isCube:this.isCube},u={width:this.width,height:this.height,layers:this.is2DArray?this.depth:void 0};return(i=this._engine.createDepthStencilTexture(u,l))._swapAndDie(this),void(this.isReady=!0);case n.Cube:return void(i=this._engine.createCubeTexture(this.url,null,this._files,!this.generateMipMaps,(function(){i._swapAndDie(r),r.isReady=!0}),null,this.format,this._extension));case n.CubeRaw:return(i=this._engine.createRawCubeTexture(this._bufferViewArray,this.width,this.format,this.type,this.generateMipMaps,this.invertY,this.samplingMode,this._compression))._swapAndDie(this),void(this.isReady=!0);case n.CubeRawRGBD:return i=this._engine.createRawCubeTexture(null,this.width,this.format,this.type,this.generateMipMaps,this.invertY,this.samplingMode,this._compression),void e._UpdateRGBDAsync(i,this._bufferViewArrayArray,this._sphericalPolynomial,this._lodGenerationScale,this._lodGenerationOffset).then((function(){i._swapAndDie(r),r.isReady=!0}));case n.CubePrefiltered:return void((i=this._engine.createPrefilteredCubeTexture(this.url,null,this._lodGenerationScale,this._lodGenerationOffset,(function(e){e&&e._swapAndDie(r),r.isReady=!0}),null,this.format,this._extension))._sphericalPolynomial=this._sphericalPolynomial)}},e.prototype._swapAndDie=function(e){e._webGLTexture=this._webGLTexture,e._isRGBD=this._isRGBD,this._framebuffer&&(e._framebuffer=this._framebuffer),this._depthStencilBuffer&&(e._depthStencilBuffer=this._depthStencilBuffer),e._depthStencilTexture=this._depthStencilTexture,this._lodTextureHigh&&(e._lodTextureHigh&&e._lodTextureHigh.dispose(),e._lodTextureHigh=this._lodTextureHigh),this._lodTextureMid&&(e._lodTextureMid&&e._lodTextureMid.dispose(),e._lodTextureMid=this._lodTextureMid),this._lodTextureLow&&(e._lodTextureLow&&e._lodTextureLow.dispose(),e._lodTextureLow=this._lodTextureLow),this._irradianceTexture&&(e._irradianceTexture&&e._irradianceTexture.dispose(),e._irradianceTexture=this._irradianceTexture);var t,i=this._engine.getLoadedTexturesCache();-1!==(t=i.indexOf(this))&&i.splice(t,1),-1===(t=i.indexOf(e))&&i.push(e)},e.prototype.dispose=function(){this._webGLTexture&&(this._references--,0===this._references&&(this._engine._releaseTexture(this),this._webGLTexture=null))},e._UpdateRGBDAsync=function(e,t,i,n,r){throw s.a.WarnImport(\"environmentTextureTools\")},e}()},function(e,t,i){\"use strict\";i.d(t,\"b\",(function(){return n})),i.d(t,\"c\",(function(){return r})),i.d(t,\"a\",(function(){return o}));var n=1/2.2,r=2.2,o=.001},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return l}));var n=i(1),r=i(0),o=i(3),a=i(6),s=i(22),c=i(21),l=function(){function e(e,t){void 0===t&&(t=null),this.state=\"\",this.metadata=null,this.reservedDataStore=null,this._doNotSerialize=!1,this._isDisposed=!1,this.animations=new Array,this._ranges={},this.onReady=null,this._isEnabled=!0,this._isParentEnabled=!0,this._isReady=!0,this._currentRenderId=-1,this._parentUpdateId=-1,this._childUpdateId=-1,this._waitingParentId=null,this._cache={},this._parentNode=null,this._children=null,this._worldMatrix=r.a.Identity(),this._worldMatrixDeterminant=0,this._worldMatrixDeterminantIsDirty=!0,this._sceneRootNodesIndex=-1,this._animationPropertiesOverride=null,this._isNode=!0,this.onDisposeObservable=new a.c,this._onDisposeObserver=null,this._behaviors=new Array,this.name=e,this.id=e,this._scene=t||s.a.LastCreatedScene,this.uniqueId=this._scene.getUniqueId(),this._initCache()}return e.AddNodeConstructor=function(e,t){this._NodeConstructors[e]=t},e.Construct=function(e,t,i,n){var r=this._NodeConstructors[e];return r?r(t,i,n):null},Object.defineProperty(e.prototype,\"doNotSerialize\",{get:function(){return!!this._doNotSerialize||!!this._parentNode&&this._parentNode.doNotSerialize},set:function(e){this._doNotSerialize=e},enumerable:!1,configurable:!0}),e.prototype.isDisposed=function(){return this._isDisposed},Object.defineProperty(e.prototype,\"parent\",{get:function(){return this._parentNode},set:function(e){if(this._parentNode!==e){var t=this._parentNode;if(this._parentNode&&void 0!==this._parentNode._children&&null!==this._parentNode._children){var i=this._parentNode._children.indexOf(this);-1!==i&&this._parentNode._children.splice(i,1),e||this._isDisposed||this._addToSceneRootNodes()}this._parentNode=e,this._parentNode&&(void 0!==this._parentNode._children&&null!==this._parentNode._children||(this._parentNode._children=new Array),this._parentNode._children.push(this),t||this._removeFromSceneRootNodes()),this._syncParentEnabledState()}},enumerable:!1,configurable:!0}),e.prototype._addToSceneRootNodes=function(){-1===this._sceneRootNodesIndex&&(this._sceneRootNodesIndex=this._scene.rootNodes.length,this._scene.rootNodes.push(this))},e.prototype._removeFromSceneRootNodes=function(){if(-1!==this._sceneRootNodesIndex){var e=this._scene.rootNodes,t=e.length-1;e[this._sceneRootNodesIndex]=e[t],e[this._sceneRootNodesIndex]._sceneRootNodesIndex=this._sceneRootNodesIndex,this._scene.rootNodes.pop(),this._sceneRootNodesIndex=-1}},Object.defineProperty(e.prototype,\"animationPropertiesOverride\",{get:function(){return this._animationPropertiesOverride?this._animationPropertiesOverride:this._scene.animationPropertiesOverride},set:function(e){this._animationPropertiesOverride=e},enumerable:!1,configurable:!0}),e.prototype.getClassName=function(){return\"Node\"},Object.defineProperty(e.prototype,\"onDispose\",{set:function(e){this._onDisposeObserver&&this.onDisposeObservable.remove(this._onDisposeObserver),this._onDisposeObserver=this.onDisposeObservable.add(e)},enumerable:!1,configurable:!0}),e.prototype.getScene=function(){return this._scene},e.prototype.getEngine=function(){return this._scene.getEngine()},e.prototype.addBehavior=function(e,t){var i=this;return void 0===t&&(t=!1),-1!==this._behaviors.indexOf(e)||(e.init(),this._scene.isLoading&&!t?this._scene.onDataLoadedObservable.addOnce((function(){e.attach(i)})):e.attach(this),this._behaviors.push(e)),this},e.prototype.removeBehavior=function(e){var t=this._behaviors.indexOf(e);return-1===t||(this._behaviors[t].detach(),this._behaviors.splice(t,1)),this},Object.defineProperty(e.prototype,\"behaviors\",{get:function(){return this._behaviors},enumerable:!1,configurable:!0}),e.prototype.getBehaviorByName=function(e){for(var t=0,i=this._behaviors;t\\n#if defined(BUMP) || !defined(NORMAL)\\n#extension GL_OES_standard_derivatives : enable\\n#endif\\n#include[SCENE_MRT_COUNT]\\n#define CUSTOM_FRAGMENT_BEGIN\\n#ifdef LOGARITHMICDEPTH\\n#extension GL_EXT_frag_depth : enable\\n#endif\\n\\n#define RECIPROCAL_PI2 0.15915494\\nuniform vec3 vEyePosition;\\nuniform vec3 vAmbientColor;\\n\\nvarying vec3 vPositionW;\\n#ifdef NORMAL\\nvarying vec3 vNormalW;\\n#endif\\n#ifdef VERTEXCOLOR\\nvarying vec4 vColor;\\n#endif\\n#ifdef MAINUV1\\nvarying vec2 vMainUV1;\\n#endif\\n#ifdef MAINUV2\\nvarying vec2 vMainUV2;\\n#endif\\n\\n#include\\n\\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\\n#include\\n#include\\n\\n#ifdef DIFFUSE\\n#if DIFFUSEDIRECTUV == 1\\n#define vDiffuseUV vMainUV1\\n#elif DIFFUSEDIRECTUV == 2\\n#define vDiffuseUV vMainUV2\\n#else\\nvarying vec2 vDiffuseUV;\\n#endif\\nuniform sampler2D diffuseSampler;\\n#endif\\n#ifdef AMBIENT\\n#if AMBIENTDIRECTUV == 1\\n#define vAmbientUV vMainUV1\\n#elif AMBIENTDIRECTUV == 2\\n#define vAmbientUV vMainUV2\\n#else\\nvarying vec2 vAmbientUV;\\n#endif\\nuniform sampler2D ambientSampler;\\n#endif\\n#ifdef OPACITY\\n#if OPACITYDIRECTUV == 1\\n#define vOpacityUV vMainUV1\\n#elif OPACITYDIRECTUV == 2\\n#define vOpacityUV vMainUV2\\n#else\\nvarying vec2 vOpacityUV;\\n#endif\\nuniform sampler2D opacitySampler;\\n#endif\\n#ifdef EMISSIVE\\n#if EMISSIVEDIRECTUV == 1\\n#define vEmissiveUV vMainUV1\\n#elif EMISSIVEDIRECTUV == 2\\n#define vEmissiveUV vMainUV2\\n#else\\nvarying vec2 vEmissiveUV;\\n#endif\\nuniform sampler2D emissiveSampler;\\n#endif\\n#ifdef LIGHTMAP\\n#if LIGHTMAPDIRECTUV == 1\\n#define vLightmapUV vMainUV1\\n#elif LIGHTMAPDIRECTUV == 2\\n#define vLightmapUV vMainUV2\\n#else\\nvarying vec2 vLightmapUV;\\n#endif\\nuniform sampler2D lightmapSampler;\\n#endif\\n#ifdef REFRACTION\\n#ifdef REFRACTIONMAP_3D\\nuniform samplerCube refractionCubeSampler;\\n#else\\nuniform sampler2D refraction2DSampler;\\n#endif\\n#endif\\n#if defined(SPECULAR) && defined(SPECULARTERM)\\n#if SPECULARDIRECTUV == 1\\n#define vSpecularUV vMainUV1\\n#elif SPECULARDIRECTUV == 2\\n#define vSpecularUV vMainUV2\\n#else\\nvarying vec2 vSpecularUV;\\n#endif\\nuniform sampler2D specularSampler;\\n#endif\\n#ifdef ALPHATEST\\nuniform float alphaCutOff;\\n#endif\\n\\n#include\\n\\n#ifdef REFLECTION\\n#ifdef REFLECTIONMAP_3D\\nuniform samplerCube reflectionCubeSampler;\\n#else\\nuniform sampler2D reflection2DSampler;\\n#endif\\n#ifdef REFLECTIONMAP_SKYBOX\\nvarying vec3 vPositionUVW;\\n#else\\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\\nvarying vec3 vDirectionW;\\n#endif\\n#endif\\n#include\\n#endif\\n#include\\n#include\\n#include\\n#include\\n#include\\n#include\\n#include\\n#define CUSTOM_FRAGMENT_DEFINITIONS\\nvoid main(void) {\\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\\n#include\\nvec3 viewDirectionW=normalize(vEyePosition-vPositionW);\\n\\nvec4 baseColor=vec4(1.,1.,1.,1.);\\nvec3 diffuseColor=vDiffuseColor.rgb;\\n\\nfloat alpha=vDiffuseColor.a;\\n\\n#ifdef NORMAL\\nvec3 normalW=normalize(vNormalW);\\n#else\\nvec3 normalW=normalize(-cross(dFdx(vPositionW),dFdy(vPositionW)));\\n#endif\\n#include\\n#ifdef TWOSIDEDLIGHTING\\nnormalW=gl_FrontFacing ? normalW : -normalW;\\n#endif\\n#ifdef DIFFUSE\\nbaseColor=texture2D(diffuseSampler,vDiffuseUV+uvOffset);\\n#if defined(ALPHATEST) && !defined(ALPHATEST_AFTERALLALPHACOMPUTATIONS)\\nif (baseColor.a\\n#ifdef VERTEXCOLOR\\nbaseColor.rgb*=vColor.rgb;\\n#endif\\n#ifdef DETAIL\\nbaseColor.rgb=baseColor.rgb*2.0*mix(0.5,detailColor.r,vDetailInfos.y);\\n#endif\\n#define CUSTOM_FRAGMENT_UPDATE_DIFFUSE\\n\\nvec3 baseAmbientColor=vec3(1.,1.,1.);\\n#ifdef AMBIENT\\nbaseAmbientColor=texture2D(ambientSampler,vAmbientUV+uvOffset).rgb*vAmbientInfos.y;\\n#endif\\n#define CUSTOM_FRAGMENT_BEFORE_LIGHTS\\n\\n#ifdef SPECULARTERM\\nfloat glossiness=vSpecularColor.a;\\nvec3 specularColor=vSpecularColor.rgb;\\n#ifdef SPECULAR\\nvec4 specularMapColor=texture2D(specularSampler,vSpecularUV+uvOffset);\\nspecularColor=specularMapColor.rgb;\\n#ifdef GLOSSINESS\\nglossiness=glossiness*specularMapColor.a;\\n#endif\\n#endif\\n#else\\nfloat glossiness=0.;\\n#endif\\n\\nvec3 diffuseBase=vec3(0.,0.,0.);\\nlightingInfo info;\\n#ifdef SPECULARTERM\\nvec3 specularBase=vec3(0.,0.,0.);\\n#endif\\nfloat shadow=1.;\\n#ifdef LIGHTMAP\\nvec4 lightmapColor=texture2D(lightmapSampler,vLightmapUV+uvOffset);\\n#ifdef RGBDLIGHTMAP\\nlightmapColor.rgb=fromRGBD(lightmapColor);\\n#endif\\nlightmapColor.rgb*=vLightmapInfos.y;\\n#endif\\n#include[0..maxSimultaneousLights]\\n\\nvec4 refractionColor=vec4(0.,0.,0.,1.);\\n#ifdef REFRACTION\\nvec3 refractionVector=normalize(refract(-viewDirectionW,normalW,vRefractionInfos.y));\\n#ifdef REFRACTIONMAP_3D\\nrefractionVector.y=refractionVector.y*vRefractionInfos.w;\\nif (dot(refractionVector,viewDirectionW)<1.0) {\\nrefractionColor=textureCube(refractionCubeSampler,refractionVector);\\n}\\n#else\\nvec3 vRefractionUVW=vec3(refractionMatrix*(view*vec4(vPositionW+refractionVector*vRefractionInfos.z,1.0)));\\nvec2 refractionCoords=vRefractionUVW.xy/vRefractionUVW.z;\\nrefractionCoords.y=1.0-refractionCoords.y;\\nrefractionColor=texture2D(refraction2DSampler,refractionCoords);\\n#endif\\n#ifdef RGBDREFRACTION\\nrefractionColor.rgb=fromRGBD(refractionColor);\\n#endif\\n#ifdef IS_REFRACTION_LINEAR\\nrefractionColor.rgb=toGammaSpace(refractionColor.rgb);\\n#endif\\nrefractionColor.rgb*=vRefractionInfos.x;\\n#endif\\n\\nvec4 reflectionColor=vec4(0.,0.,0.,1.);\\n#ifdef REFLECTION\\nvec3 vReflectionUVW=computeReflectionCoords(vec4(vPositionW,1.0),normalW);\\n#ifdef REFLECTIONMAP_3D\\n#ifdef ROUGHNESS\\nfloat bias=vReflectionInfos.y;\\n#ifdef SPECULARTERM\\n#ifdef SPECULAR\\n#ifdef GLOSSINESS\\nbias*=(1.0-specularMapColor.a);\\n#endif\\n#endif\\n#endif\\nreflectionColor=textureCube(reflectionCubeSampler,vReflectionUVW,bias);\\n#else\\nreflectionColor=textureCube(reflectionCubeSampler,vReflectionUVW);\\n#endif\\n#else\\nvec2 coords=vReflectionUVW.xy;\\n#ifdef REFLECTIONMAP_PROJECTION\\ncoords/=vReflectionUVW.z;\\n#endif\\ncoords.y=1.0-coords.y;\\nreflectionColor=texture2D(reflection2DSampler,coords);\\n#endif\\n#ifdef RGBDREFLECTION\\nreflectionColor.rgb=fromRGBD(reflectionColor);\\n#endif\\n#ifdef IS_REFLECTION_LINEAR\\nreflectionColor.rgb=toGammaSpace(reflectionColor.rgb);\\n#endif\\nreflectionColor.rgb*=vReflectionInfos.x;\\n#ifdef REFLECTIONFRESNEL\\nfloat reflectionFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,reflectionRightColor.a,reflectionLeftColor.a);\\n#ifdef REFLECTIONFRESNELFROMSPECULAR\\n#ifdef SPECULARTERM\\nreflectionColor.rgb*=specularColor.rgb*(1.0-reflectionFresnelTerm)+reflectionFresnelTerm*reflectionRightColor.rgb;\\n#else\\nreflectionColor.rgb*=reflectionLeftColor.rgb*(1.0-reflectionFresnelTerm)+reflectionFresnelTerm*reflectionRightColor.rgb;\\n#endif\\n#else\\nreflectionColor.rgb*=reflectionLeftColor.rgb*(1.0-reflectionFresnelTerm)+reflectionFresnelTerm*reflectionRightColor.rgb;\\n#endif\\n#endif\\n#endif\\n#ifdef REFRACTIONFRESNEL\\nfloat refractionFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,refractionRightColor.a,refractionLeftColor.a);\\nrefractionColor.rgb*=refractionLeftColor.rgb*(1.0-refractionFresnelTerm)+refractionFresnelTerm*refractionRightColor.rgb;\\n#endif\\n#ifdef OPACITY\\nvec4 opacityMap=texture2D(opacitySampler,vOpacityUV+uvOffset);\\n#ifdef OPACITYRGB\\nopacityMap.rgb=opacityMap.rgb*vec3(0.3,0.59,0.11);\\nalpha*=(opacityMap.x+opacityMap.y+opacityMap.z)* vOpacityInfos.y;\\n#else\\nalpha*=opacityMap.a*vOpacityInfos.y;\\n#endif\\n#endif\\n#ifdef VERTEXALPHA\\nalpha*=vColor.a;\\n#endif\\n#ifdef OPACITYFRESNEL\\nfloat opacityFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,opacityParts.z,opacityParts.w);\\nalpha+=opacityParts.x*(1.0-opacityFresnelTerm)+opacityFresnelTerm*opacityParts.y;\\n#endif\\n#ifdef ALPHATEST\\n#ifdef ALPHATEST_AFTERALLALPHACOMPUTATIONS\\nif (alpha\\n#include\\n\\n\\n#ifdef IMAGEPROCESSINGPOSTPROCESS\\ncolor.rgb=toLinearSpace(color.rgb);\\n#else\\n#ifdef IMAGEPROCESSING\\ncolor.rgb=toLinearSpace(color.rgb);\\ncolor=applyImageProcessing(color);\\n#endif\\n#endif\\ncolor.a*=visibility;\\n#ifdef PREMULTIPLYALPHA\\n\\ncolor.rgb*=color.a;\\n#endif\\n#define CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR\\n#ifdef PREPASS\\ngl_FragData[0]=color;\\n#ifdef PREPASS_POSITION\\ngl_FragData[PREPASS_POSITION_INDEX]=vec4(vPositionW,1.0);\\n#endif\\n#ifdef PREPASS_VELOCITY\\nvec2 a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5;\\nvec2 b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5;\\nvec2 velocity=abs(a-b);\\nvelocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5;\\ngl_FragData[PREPASS_VELOCITY_INDEX]=vec4(velocity,0.0,1.0);\\n#endif\\n#ifdef PREPASS_IRRADIANCE\\ngl_FragData[PREPASS_IRRADIANCE_INDEX]=vec4(0.0,0.0,0.0,1.0);\\n#endif\\n#ifdef PREPASS_DEPTHNORMAL\\ngl_FragData[PREPASS_DEPTHNORMAL_INDEX]=vec4(vViewPos.z,(view*vec4(normalW,0.0)).rgb);\\n#endif\\n#ifdef PREPASS_ALBEDO\\ngl_FragData[PREPASS_ALBEDO_INDEX]=vec4(0.0,0.0,0.0,1.0);\\n#endif\\n#ifdef PREPASS_REFLECTIVITY\\n#if defined(SPECULAR)\\ngl_FragData[PREPASS_REFLECTIVITY_INDEX]=specularMapColor;\\n#else\\ngl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(0.0,0.0,0.0,1.0);\\n#endif\\n#endif\\n#endif\\n#if !defined(PREPASS) || defined(WEBGL2)\\ngl_FragColor=color;\\n#endif\\n}\\n\";b.a.ShadersStore.defaultPixelShader=E;var S=\"\\nuniform mat4 viewProjection;\\nuniform mat4 view;\\n#ifdef DIFFUSE\\nuniform mat4 diffuseMatrix;\\nuniform vec2 vDiffuseInfos;\\n#endif\\n#ifdef AMBIENT\\nuniform mat4 ambientMatrix;\\nuniform vec2 vAmbientInfos;\\n#endif\\n#ifdef OPACITY\\nuniform mat4 opacityMatrix;\\nuniform vec2 vOpacityInfos;\\n#endif\\n#ifdef EMISSIVE\\nuniform vec2 vEmissiveInfos;\\nuniform mat4 emissiveMatrix;\\n#endif\\n#ifdef LIGHTMAP\\nuniform vec2 vLightmapInfos;\\nuniform mat4 lightmapMatrix;\\n#endif\\n#if defined(SPECULAR) && defined(SPECULARTERM)\\nuniform vec2 vSpecularInfos;\\nuniform mat4 specularMatrix;\\n#endif\\n#ifdef BUMP\\nuniform vec3 vBumpInfos;\\nuniform mat4 bumpMatrix;\\n#endif\\n#ifdef REFLECTION\\nuniform mat4 reflectionMatrix;\\n#endif\\n#ifdef POINTSIZE\\nuniform float pointSize;\\n#endif\\n\";b.a.IncludesShadersStore.defaultVertexDeclaration=S;i(78),i(79),i(163),i(164),i(117),i(137),i(93),i(94),i(100),i(80),i(81),i(165),i(156),i(111),i(157),i(138);b.a.IncludesShadersStore.pointCloudVertex=\"#ifdef POINTSIZE\\ngl_PointSize=pointSize;\\n#endif\";i(158);var A=\"#include<__decl__defaultVertex>\\n\\n#define CUSTOM_VERTEX_BEGIN\\nattribute vec3 position;\\n#ifdef NORMAL\\nattribute vec3 normal;\\n#endif\\n#ifdef TANGENT\\nattribute vec4 tangent;\\n#endif\\n#ifdef UV1\\nattribute vec2 uv;\\n#endif\\n#ifdef UV2\\nattribute vec2 uv2;\\n#endif\\n#ifdef VERTEXCOLOR\\nattribute vec4 color;\\n#endif\\n#include\\n#include\\n\\n#include\\n#include\\n#ifdef MAINUV1\\nvarying vec2 vMainUV1;\\n#endif\\n#ifdef MAINUV2\\nvarying vec2 vMainUV2;\\n#endif\\n#if defined(DIFFUSE) && DIFFUSEDIRECTUV == 0\\nvarying vec2 vDiffuseUV;\\n#endif\\n#if defined(DETAIL) && DETAILDIRECTUV == 0\\nvarying vec2 vDetailUV;\\n#endif\\n#if defined(AMBIENT) && AMBIENTDIRECTUV == 0\\nvarying vec2 vAmbientUV;\\n#endif\\n#if defined(OPACITY) && OPACITYDIRECTUV == 0\\nvarying vec2 vOpacityUV;\\n#endif\\n#if defined(EMISSIVE) && EMISSIVEDIRECTUV == 0\\nvarying vec2 vEmissiveUV;\\n#endif\\n#if defined(LIGHTMAP) && LIGHTMAPDIRECTUV == 0\\nvarying vec2 vLightmapUV;\\n#endif\\n#if defined(SPECULAR) && defined(SPECULARTERM) && SPECULARDIRECTUV == 0\\nvarying vec2 vSpecularUV;\\n#endif\\n#if defined(BUMP) && BUMPDIRECTUV == 0\\nvarying vec2 vBumpUV;\\n#endif\\n\\nvarying vec3 vPositionW;\\n#ifdef NORMAL\\nvarying vec3 vNormalW;\\n#endif\\n#ifdef VERTEXCOLOR\\nvarying vec4 vColor;\\n#endif\\n#include\\n#include\\n#include\\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\\n#include\\n#include[0..maxSimultaneousMorphTargets]\\n#ifdef REFLECTIONMAP_SKYBOX\\nvarying vec3 vPositionUVW;\\n#endif\\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\\nvarying vec3 vDirectionW;\\n#endif\\n#include\\n#define CUSTOM_VERTEX_DEFINITIONS\\nvoid main(void) {\\n#define CUSTOM_VERTEX_MAIN_BEGIN\\nvec3 positionUpdated=position;\\n#ifdef NORMAL\\nvec3 normalUpdated=normal;\\n#endif\\n#ifdef TANGENT\\nvec4 tangentUpdated=tangent;\\n#endif\\n#ifdef UV1\\nvec2 uvUpdated=uv;\\n#endif\\n#include[0..maxSimultaneousMorphTargets]\\n#ifdef REFLECTIONMAP_SKYBOX\\nvPositionUVW=positionUpdated;\\n#endif\\n#define CUSTOM_VERTEX_UPDATE_POSITION\\n#define CUSTOM_VERTEX_UPDATE_NORMAL\\n#include\\n#if defined(PREPASS) && defined(PREPASS_VELOCITY) && !defined(BONES_VELOCITY_ENABLED)\\n\\nvCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);\\nvPreviousPosition=previousViewProjection*previousWorld*vec4(positionUpdated,1.0);\\n#endif\\n#include\\nvec4 worldPos=finalWorld*vec4(positionUpdated,1.0);\\n#ifdef NORMAL\\nmat3 normalWorld=mat3(finalWorld);\\n#if defined(INSTANCES) && defined(THIN_INSTANCES)\\nvNormalW=normalUpdated/vec3(dot(normalWorld[0],normalWorld[0]),dot(normalWorld[1],normalWorld[1]),dot(normalWorld[2],normalWorld[2]));\\nvNormalW=normalize(normalWorld*vNormalW);\\n#else\\n#ifdef NONUNIFORMSCALING\\nnormalWorld=transposeMat3(inverseMat3(normalWorld));\\n#endif\\nvNormalW=normalize(normalWorld*normalUpdated);\\n#endif\\n#endif\\n#define CUSTOM_VERTEX_UPDATE_WORLDPOS\\n#ifdef MULTIVIEW\\nif (gl_ViewID_OVR == 0u) {\\ngl_Position=viewProjection*worldPos;\\n} else {\\ngl_Position=viewProjectionR*worldPos;\\n}\\n#else\\ngl_Position=viewProjection*worldPos;\\n#endif\\nvPositionW=vec3(worldPos);\\n#include\\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\\nvDirectionW=normalize(vec3(finalWorld*vec4(positionUpdated,0.0)));\\n#endif\\n\\n#ifndef UV1\\nvec2 uvUpdated=vec2(0.,0.);\\n#endif\\n#ifndef UV2\\nvec2 uv2=vec2(0.,0.);\\n#endif\\n#ifdef MAINUV1\\nvMainUV1=uvUpdated;\\n#endif\\n#ifdef MAINUV2\\nvMainUV2=uv2;\\n#endif\\n#if defined(DIFFUSE) && DIFFUSEDIRECTUV == 0\\nif (vDiffuseInfos.x == 0.)\\n{\\nvDiffuseUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\\n}\\nelse\\n{\\nvDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\\n}\\n#endif\\n#if defined(DETAIL) && DETAILDIRECTUV == 0\\nif (vDetailInfos.x == 0.)\\n{\\nvDetailUV=vec2(detailMatrix*vec4(uvUpdated,1.0,0.0));\\n}\\nelse\\n{\\nvDetailUV=vec2(detailMatrix*vec4(uv2,1.0,0.0));\\n}\\n#endif\\n#if defined(AMBIENT) && AMBIENTDIRECTUV == 0\\nif (vAmbientInfos.x == 0.)\\n{\\nvAmbientUV=vec2(ambientMatrix*vec4(uvUpdated,1.0,0.0));\\n}\\nelse\\n{\\nvAmbientUV=vec2(ambientMatrix*vec4(uv2,1.0,0.0));\\n}\\n#endif\\n#if defined(OPACITY) && OPACITYDIRECTUV == 0\\nif (vOpacityInfos.x == 0.)\\n{\\nvOpacityUV=vec2(opacityMatrix*vec4(uvUpdated,1.0,0.0));\\n}\\nelse\\n{\\nvOpacityUV=vec2(opacityMatrix*vec4(uv2,1.0,0.0));\\n}\\n#endif\\n#if defined(EMISSIVE) && EMISSIVEDIRECTUV == 0\\nif (vEmissiveInfos.x == 0.)\\n{\\nvEmissiveUV=vec2(emissiveMatrix*vec4(uvUpdated,1.0,0.0));\\n}\\nelse\\n{\\nvEmissiveUV=vec2(emissiveMatrix*vec4(uv2,1.0,0.0));\\n}\\n#endif\\n#if defined(LIGHTMAP) && LIGHTMAPDIRECTUV == 0\\nif (vLightmapInfos.x == 0.)\\n{\\nvLightmapUV=vec2(lightmapMatrix*vec4(uvUpdated,1.0,0.0));\\n}\\nelse\\n{\\nvLightmapUV=vec2(lightmapMatrix*vec4(uv2,1.0,0.0));\\n}\\n#endif\\n#if defined(SPECULAR) && defined(SPECULARTERM) && SPECULARDIRECTUV == 0\\nif (vSpecularInfos.x == 0.)\\n{\\nvSpecularUV=vec2(specularMatrix*vec4(uvUpdated,1.0,0.0));\\n}\\nelse\\n{\\nvSpecularUV=vec2(specularMatrix*vec4(uv2,1.0,0.0));\\n}\\n#endif\\n#if defined(BUMP) && BUMPDIRECTUV == 0\\nif (vBumpInfos.x == 0.)\\n{\\nvBumpUV=vec2(bumpMatrix*vec4(uvUpdated,1.0,0.0));\\n}\\nelse\\n{\\nvBumpUV=vec2(bumpMatrix*vec4(uv2,1.0,0.0));\\n}\\n#endif\\n#include\\n#include\\n#include\\n#include[0..maxSimultaneousLights]\\n#ifdef VERTEXCOLOR\\n\\nvColor=color;\\n#endif\\n#include\\n#include\\n#define CUSTOM_VERTEX_MAIN_END\\n}\\n\";b.a.ShadersStore.defaultVertexShader=A;var P=i(2),C=i(67),R=i(92),x={effect:null,subMesh:null},O=function(e){function t(){var t=e.call(this)||this;return t.MAINUV1=!1,t.MAINUV2=!1,t.DIFFUSE=!1,t.DIFFUSEDIRECTUV=0,t.DETAIL=!1,t.DETAILDIRECTUV=0,t.DETAIL_NORMALBLENDMETHOD=0,t.AMBIENT=!1,t.AMBIENTDIRECTUV=0,t.OPACITY=!1,t.OPACITYDIRECTUV=0,t.OPACITYRGB=!1,t.REFLECTION=!1,t.EMISSIVE=!1,t.EMISSIVEDIRECTUV=0,t.SPECULAR=!1,t.SPECULARDIRECTUV=0,t.BUMP=!1,t.BUMPDIRECTUV=0,t.PARALLAX=!1,t.PARALLAXOCCLUSION=!1,t.SPECULAROVERALPHA=!1,t.CLIPPLANE=!1,t.CLIPPLANE2=!1,t.CLIPPLANE3=!1,t.CLIPPLANE4=!1,t.CLIPPLANE5=!1,t.CLIPPLANE6=!1,t.ALPHATEST=!1,t.DEPTHPREPASS=!1,t.ALPHAFROMDIFFUSE=!1,t.POINTSIZE=!1,t.FOG=!1,t.SPECULARTERM=!1,t.DIFFUSEFRESNEL=!1,t.OPACITYFRESNEL=!1,t.REFLECTIONFRESNEL=!1,t.REFRACTIONFRESNEL=!1,t.EMISSIVEFRESNEL=!1,t.FRESNEL=!1,t.NORMAL=!1,t.UV1=!1,t.UV2=!1,t.VERTEXCOLOR=!1,t.VERTEXALPHA=!1,t.NUM_BONE_INFLUENCERS=0,t.BonesPerMesh=0,t.BONETEXTURE=!1,t.BONES_VELOCITY_ENABLED=!1,t.INSTANCES=!1,t.THIN_INSTANCES=!1,t.GLOSSINESS=!1,t.ROUGHNESS=!1,t.EMISSIVEASILLUMINATION=!1,t.LINKEMISSIVEWITHDIFFUSE=!1,t.REFLECTIONFRESNELFROMSPECULAR=!1,t.LIGHTMAP=!1,t.LIGHTMAPDIRECTUV=0,t.OBJECTSPACE_NORMALMAP=!1,t.USELIGHTMAPASSHADOWMAP=!1,t.REFLECTIONMAP_3D=!1,t.REFLECTIONMAP_SPHERICAL=!1,t.REFLECTIONMAP_PLANAR=!1,t.REFLECTIONMAP_CUBIC=!1,t.USE_LOCAL_REFLECTIONMAP_CUBIC=!1,t.REFLECTIONMAP_PROJECTION=!1,t.REFLECTIONMAP_SKYBOX=!1,t.REFLECTIONMAP_EXPLICIT=!1,t.REFLECTIONMAP_EQUIRECTANGULAR=!1,t.REFLECTIONMAP_EQUIRECTANGULAR_FIXED=!1,t.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED=!1,t.INVERTCUBICMAP=!1,t.LOGARITHMICDEPTH=!1,t.REFRACTION=!1,t.REFRACTIONMAP_3D=!1,t.REFLECTIONOVERALPHA=!1,t.TWOSIDEDLIGHTING=!1,t.SHADOWFLOAT=!1,t.MORPHTARGETS=!1,t.MORPHTARGETS_NORMAL=!1,t.MORPHTARGETS_TANGENT=!1,t.MORPHTARGETS_UV=!1,t.NUM_MORPH_INFLUENCERS=0,t.NONUNIFORMSCALING=!1,t.PREMULTIPLYALPHA=!1,t.ALPHATEST_AFTERALLALPHACOMPUTATIONS=!1,t.ALPHABLEND=!0,t.PREPASS=!1,t.PREPASS_IRRADIANCE=!1,t.PREPASS_IRRADIANCE_INDEX=-1,t.PREPASS_ALBEDO=!1,t.PREPASS_ALBEDO_INDEX=-1,t.PREPASS_DEPTHNORMAL=!1,t.PREPASS_DEPTHNORMAL_INDEX=-1,t.PREPASS_POSITION=!1,t.PREPASS_POSITION_INDEX=-1,t.PREPASS_VELOCITY=!1,t.PREPASS_VELOCITY_INDEX=-1,t.PREPASS_REFLECTIVITY=!1,t.PREPASS_REFLECTIVITY_INDEX=-1,t.SCENE_MRT_COUNT=0,t.RGBDLIGHTMAP=!1,t.RGBDREFLECTION=!1,t.RGBDREFRACTION=!1,t.IMAGEPROCESSING=!1,t.VIGNETTE=!1,t.VIGNETTEBLENDMODEMULTIPLY=!1,t.VIGNETTEBLENDMODEOPAQUE=!1,t.TONEMAPPING=!1,t.TONEMAPPING_ACES=!1,t.CONTRAST=!1,t.COLORCURVES=!1,t.COLORGRADING=!1,t.COLORGRADING3D=!1,t.SAMPLER3DGREENDEPTH=!1,t.SAMPLER3DBGRMAP=!1,t.IMAGEPROCESSINGPOSTPROCESS=!1,t.MULTIVIEW=!1,t.IS_REFLECTION_LINEAR=!1,t.IS_REFRACTION_LINEAR=!1,t.EXPOSURE=!1,t.rebuild(),t}return Object(n.d)(t,e),t.prototype.setReflectionMode=function(e){for(var t=0,i=[\"REFLECTIONMAP_CUBIC\",\"REFLECTIONMAP_EXPLICIT\",\"REFLECTIONMAP_PLANAR\",\"REFLECTIONMAP_PROJECTION\",\"REFLECTIONMAP_PROJECTION\",\"REFLECTIONMAP_SKYBOX\",\"REFLECTIONMAP_SPHERICAL\",\"REFLECTIONMAP_EQUIRECTANGULAR\",\"REFLECTIONMAP_EQUIRECTANGULAR_FIXED\",\"REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED\"];t0,o.REFLECTIONOVERALPHA=this._useReflectionOverAlpha,o.INVERTCUBICMAP=this._reflectionTexture.coordinatesMode===m.a.INVCUBIC_MODE,o.REFLECTIONMAP_3D=this._reflectionTexture.isCube,o.RGBDREFLECTION=this._reflectionTexture.isRGBD,this._reflectionTexture.coordinatesMode){case m.a.EXPLICIT_MODE:o.setReflectionMode(\"REFLECTIONMAP_EXPLICIT\");break;case m.a.PLANAR_MODE:o.setReflectionMode(\"REFLECTIONMAP_PLANAR\");break;case m.a.PROJECTION_MODE:o.setReflectionMode(\"REFLECTIONMAP_PROJECTION\");break;case m.a.SKYBOX_MODE:o.setReflectionMode(\"REFLECTIONMAP_SKYBOX\");break;case m.a.SPHERICAL_MODE:o.setReflectionMode(\"REFLECTIONMAP_SPHERICAL\");break;case m.a.EQUIRECTANGULAR_MODE:o.setReflectionMode(\"REFLECTIONMAP_EQUIRECTANGULAR\");break;case m.a.FIXED_EQUIRECTANGULAR_MODE:o.setReflectionMode(\"REFLECTIONMAP_EQUIRECTANGULAR_FIXED\");break;case m.a.FIXED_EQUIRECTANGULAR_MIRRORED_MODE:o.setReflectionMode(\"REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED\");break;case m.a.CUBIC_MODE:case m.a.INVCUBIC_MODE:default:o.setReflectionMode(\"REFLECTIONMAP_CUBIC\")}o.USE_LOCAL_REFLECTIONMAP_CUBIC=!!this._reflectionTexture.boundingBoxSize}else o.REFLECTION=!1;if(this._emissiveTexture&&t.EmissiveTextureEnabled){if(!this._emissiveTexture.isReadyOrNotBlocking())return!1;_.a.PrepareDefinesForMergedUV(this._emissiveTexture,o,\"EMISSIVE\")}else o.EMISSIVE=!1;if(this._lightmapTexture&&t.LightmapTextureEnabled){if(!this._lightmapTexture.isReadyOrNotBlocking())return!1;_.a.PrepareDefinesForMergedUV(this._lightmapTexture,o,\"LIGHTMAP\"),o.USELIGHTMAPASSHADOWMAP=this._useLightmapAsShadowmap,o.RGBDLIGHTMAP=this._lightmapTexture.isRGBD}else o.LIGHTMAP=!1;if(this._specularTexture&&t.SpecularTextureEnabled){if(!this._specularTexture.isReadyOrNotBlocking())return!1;_.a.PrepareDefinesForMergedUV(this._specularTexture,o,\"SPECULAR\"),o.GLOSSINESS=this._useGlossinessFromSpecularMapAlpha}else o.SPECULAR=!1;if(r.getEngine().getCaps().standardDerivatives&&this._bumpTexture&&t.BumpTextureEnabled){if(!this._bumpTexture.isReady())return!1;_.a.PrepareDefinesForMergedUV(this._bumpTexture,o,\"BUMP\"),o.PARALLAX=this._useParallax,o.PARALLAXOCCLUSION=this._useParallaxOcclusion,o.OBJECTSPACE_NORMALMAP=this._useObjectSpaceNormalMap}else o.BUMP=!1;if(this._refractionTexture&&t.RefractionTextureEnabled){if(!this._refractionTexture.isReadyOrNotBlocking())return!1;o._needUVs=!0,o.REFRACTION=!0,o.REFRACTIONMAP_3D=this._refractionTexture.isCube,o.RGBDREFRACTION=this._refractionTexture.isRGBD}else o.REFRACTION=!1;o.TWOSIDEDLIGHTING=!this._backFaceCulling&&this._twoSidedLighting}else o.DIFFUSE=!1,o.AMBIENT=!1,o.OPACITY=!1,o.REFLECTION=!1,o.EMISSIVE=!1,o.LIGHTMAP=!1,o.BUMP=!1,o.REFRACTION=!1;o.ALPHAFROMDIFFUSE=this._shouldUseAlphaFromDiffuseTexture(),o.EMISSIVEASILLUMINATION=this._useEmissiveAsIllumination,o.LINKEMISSIVEWITHDIFFUSE=this._linkEmissiveWithDiffuse,o.SPECULAROVERALPHA=this._useSpecularOverAlpha,o.PREMULTIPLYALPHA=this.alphaMode===P.a.ALPHA_PREMULTIPLIED||this.alphaMode===P.a.ALPHA_PREMULTIPLIED_PORTERDUFF,o.ALPHATEST_AFTERALLALPHACOMPUTATIONS=null!==this.transparencyMode,o.ALPHABLEND=null===this.transparencyMode||this.needAlphaBlendingForMesh(e)}if(!this.detailMap.isReadyForSubMesh(o,r))return!1;if(o._areImageProcessingDirty&&this._imageProcessingConfiguration){if(!this._imageProcessingConfiguration.isReady())return!1;this._imageProcessingConfiguration.prepareDefines(o),o.IS_REFLECTION_LINEAR=null!=this.reflectionTexture&&!this.reflectionTexture.gammaSpace,o.IS_REFRACTION_LINEAR=null!=this.refractionTexture&&!this.refractionTexture.gammaSpace}if(o._areFresnelDirty&&(t.FresnelEnabled?(this._diffuseFresnelParameters||this._opacityFresnelParameters||this._emissiveFresnelParameters||this._refractionFresnelParameters||this._reflectionFresnelParameters)&&(o.DIFFUSEFRESNEL=this._diffuseFresnelParameters&&this._diffuseFresnelParameters.isEnabled,o.OPACITYFRESNEL=this._opacityFresnelParameters&&this._opacityFresnelParameters.isEnabled,o.REFLECTIONFRESNEL=this._reflectionFresnelParameters&&this._reflectionFresnelParameters.isEnabled,o.REFLECTIONFRESNELFROMSPECULAR=this._useReflectionFresnelFromSpecular,o.REFRACTIONFRESNEL=this._refractionFresnelParameters&&this._refractionFresnelParameters.isEnabled,o.EMISSIVEFRESNEL=this._emissiveFresnelParameters&&this._emissiveFresnelParameters.isEnabled,o._needNormals=!0,o.FRESNEL=!0):o.FRESNEL=!1),_.a.PrepareDefinesForMisc(e,r,this._useLogarithmicDepth,this.pointsCloud,this.fogEnabled,this._shouldTurnAlphaTestOn(e)||this._forceAlphaTest,o),_.a.PrepareDefinesForAttributes(e,o,!0,!0,!0),_.a.PrepareDefinesForFrameBoundValues(r,a,o,n,null,i.getRenderingMesh().hasThinInstances),this.detailMap.prepareDefines(o,r),o.isDirty){var s=o._areLightsDisposed;o.markAsProcessed();var c=new C.a;o.REFLECTION&&c.addFallback(0,\"REFLECTION\"),o.SPECULAR&&c.addFallback(0,\"SPECULAR\"),o.BUMP&&c.addFallback(0,\"BUMP\"),o.PARALLAX&&c.addFallback(1,\"PARALLAX\"),o.PARALLAXOCCLUSION&&c.addFallback(0,\"PARALLAXOCCLUSION\"),o.SPECULAROVERALPHA&&c.addFallback(0,\"SPECULAROVERALPHA\"),o.FOG&&c.addFallback(1,\"FOG\"),o.POINTSIZE&&c.addFallback(0,\"POINTSIZE\"),o.LOGARITHMICDEPTH&&c.addFallback(0,\"LOGARITHMICDEPTH\"),_.a.HandleFallbacksForShadows(o,c,this._maxSimultaneousLights),o.SPECULARTERM&&c.addFallback(0,\"SPECULARTERM\"),o.DIFFUSEFRESNEL&&c.addFallback(1,\"DIFFUSEFRESNEL\"),o.OPACITYFRESNEL&&c.addFallback(2,\"OPACITYFRESNEL\"),o.REFLECTIONFRESNEL&&c.addFallback(3,\"REFLECTIONFRESNEL\"),o.EMISSIVEFRESNEL&&c.addFallback(4,\"EMISSIVEFRESNEL\"),o.FRESNEL&&c.addFallback(4,\"FRESNEL\"),o.MULTIVIEW&&c.addFallback(0,\"MULTIVIEW\");var d=[l.b.PositionKind];o.NORMAL&&d.push(l.b.NormalKind),o.UV1&&d.push(l.b.UVKind),o.UV2&&d.push(l.b.UV2Kind),o.VERTEXCOLOR&&d.push(l.b.ColorKind),_.a.PrepareAttributesForBones(d,e,o,c),_.a.PrepareAttributesForInstances(d,o),_.a.PrepareAttributesForMorphTargets(d,e,o);var f=\"default\",p=[\"world\",\"view\",\"viewProjection\",\"vEyePosition\",\"vLightsType\",\"vAmbientColor\",\"vDiffuseColor\",\"vSpecularColor\",\"vEmissiveColor\",\"visibility\",\"vFogInfos\",\"vFogColor\",\"pointSize\",\"vDiffuseInfos\",\"vAmbientInfos\",\"vOpacityInfos\",\"vReflectionInfos\",\"vEmissiveInfos\",\"vSpecularInfos\",\"vBumpInfos\",\"vLightmapInfos\",\"vRefractionInfos\",\"mBones\",\"vClipPlane\",\"vClipPlane2\",\"vClipPlane3\",\"vClipPlane4\",\"vClipPlane5\",\"vClipPlane6\",\"diffuseMatrix\",\"ambientMatrix\",\"opacityMatrix\",\"reflectionMatrix\",\"emissiveMatrix\",\"specularMatrix\",\"bumpMatrix\",\"normalMatrix\",\"lightmapMatrix\",\"refractionMatrix\",\"diffuseLeftColor\",\"diffuseRightColor\",\"opacityParts\",\"reflectionLeftColor\",\"reflectionRightColor\",\"emissiveLeftColor\",\"emissiveRightColor\",\"refractionLeftColor\",\"refractionRightColor\",\"vReflectionPosition\",\"vReflectionSize\",\"logarithmicDepthConstant\",\"vTangentSpaceParams\",\"alphaCutOff\",\"boneTextureWidth\"],g=[\"diffuseSampler\",\"ambientSampler\",\"opacitySampler\",\"reflectionCubeSampler\",\"reflection2DSampler\",\"emissiveSampler\",\"specularSampler\",\"bumpSampler\",\"lightmapSampler\",\"refractionCubeSampler\",\"refraction2DSampler\",\"boneSampler\"],v=[\"Material\",\"Scene\"];R.a.AddUniforms(p),R.a.AddSamplers(g),u.a.AddUniforms(p),u.a.AddSamplers(p),h.a&&(h.a.PrepareUniforms(p,o),h.a.PrepareSamplers(g,o)),_.a.PrepareUniformsAndSamplersList({uniformsNames:p,uniformBuffersNames:v,samplers:g,defines:o,maxSimultaneousLights:this._maxSimultaneousLights});var b={};this.customShaderNameResolve&&(f=this.customShaderNameResolve(f,p,v,g,o,d,b));var y=o.toString(),T=i.effect,E=r.getEngine().createEffect(f,{attributes:d,uniformsNames:p,uniformBuffersNames:v,samplers:g,defines:y,fallbacks:c,onCompiled:this.onCompiled,onError:this.onError,indexParameters:{maxSimultaneousLights:this._maxSimultaneousLights,maxSimultaneousMorphTargets:o.NUM_MORPH_INFLUENCERS},processFinalCode:b.processFinalCode,multiTarget:o.PREPASS},a);if(E)if(this._onEffectCreatedObservable&&(x.effect=E,x.subMesh=i,this._onEffectCreatedObservable.notifyObservers(x)),this.allowShaderHotSwapping&&T&&!E.isReady()){if(E=T,this._rebuildInParallel=!0,o.markAsUnprocessed(),s)return o._areLightsDisposed=!0,!1}else this._rebuildInParallel=!1,r.resetCachedMaterial(),i.setEffect(E,o),this.buildUniformLayout()}return!(!i.effect||!i.effect.isReady())&&(o._renderId=r.getRenderId(),i.effect._wasPreviouslyReady=!0,!0)},t.prototype.buildUniformLayout=function(){var e=this._uniformBuffer;e.addUniform(\"diffuseLeftColor\",4),e.addUniform(\"diffuseRightColor\",4),e.addUniform(\"opacityParts\",4),e.addUniform(\"reflectionLeftColor\",4),e.addUniform(\"reflectionRightColor\",4),e.addUniform(\"refractionLeftColor\",4),e.addUniform(\"refractionRightColor\",4),e.addUniform(\"emissiveLeftColor\",4),e.addUniform(\"emissiveRightColor\",4),e.addUniform(\"vDiffuseInfos\",2),e.addUniform(\"vAmbientInfos\",2),e.addUniform(\"vOpacityInfos\",2),e.addUniform(\"vReflectionInfos\",2),e.addUniform(\"vReflectionPosition\",3),e.addUniform(\"vReflectionSize\",3),e.addUniform(\"vEmissiveInfos\",2),e.addUniform(\"vLightmapInfos\",2),e.addUniform(\"vSpecularInfos\",2),e.addUniform(\"vBumpInfos\",3),e.addUniform(\"diffuseMatrix\",16),e.addUniform(\"ambientMatrix\",16),e.addUniform(\"opacityMatrix\",16),e.addUniform(\"reflectionMatrix\",16),e.addUniform(\"emissiveMatrix\",16),e.addUniform(\"lightmapMatrix\",16),e.addUniform(\"specularMatrix\",16),e.addUniform(\"bumpMatrix\",16),e.addUniform(\"vTangentSpaceParams\",2),e.addUniform(\"pointSize\",1),e.addUniform(\"refractionMatrix\",16),e.addUniform(\"vRefractionInfos\",4),e.addUniform(\"vSpecularColor\",4),e.addUniform(\"vEmissiveColor\",3),e.addUniform(\"visibility\",1),e.addUniform(\"vDiffuseColor\",4),R.a.PrepareUniformBuffer(e),e.create()},t.prototype.unbind=function(){if(this._activeEffect){var t=!1;this._reflectionTexture&&this._reflectionTexture.isRenderTarget&&(this._activeEffect.setTexture(\"reflection2DSampler\",null),t=!0),this._refractionTexture&&this._refractionTexture.isRenderTarget&&(this._activeEffect.setTexture(\"refraction2DSampler\",null),t=!0),t&&this._markAllSubMeshesAsTexturesDirty()}e.prototype.unbind.call(this)},t.prototype.bindForSubMesh=function(e,i,n){var r=this.getScene(),o=n._materialDefines;if(o){var s=n.effect;if(s){this._activeEffect=s,o.INSTANCES&&!o.THIN_INSTANCES||this.bindOnlyWorldMatrix(e),this.prePassConfiguration.bindForSubMesh(this._activeEffect,r,i,e,this.isFrozen),o.OBJECTSPACE_NORMALMAP&&(e.toNormalMatrix(this._normalMatrix),this.bindOnlyNormalMatrix(this._normalMatrix));var l=this._mustRebind(r,s,i.visibility);_.a.BindBonesParameters(i,s);var u=this._uniformBuffer;if(l){if(u.bindToEffect(s,\"Material\"),this.bindViewProjection(s),!u.useUbo||!this.isFrozen||!u.isSync){if(t.FresnelEnabled&&o.FRESNEL&&(this.diffuseFresnelParameters&&this.diffuseFresnelParameters.isEnabled&&(u.updateColor4(\"diffuseLeftColor\",this.diffuseFresnelParameters.leftColor,this.diffuseFresnelParameters.power),u.updateColor4(\"diffuseRightColor\",this.diffuseFresnelParameters.rightColor,this.diffuseFresnelParameters.bias)),this.opacityFresnelParameters&&this.opacityFresnelParameters.isEnabled&&u.updateColor4(\"opacityParts\",new c.a(this.opacityFresnelParameters.leftColor.toLuminance(),this.opacityFresnelParameters.rightColor.toLuminance(),this.opacityFresnelParameters.bias),this.opacityFresnelParameters.power),this.reflectionFresnelParameters&&this.reflectionFresnelParameters.isEnabled&&(u.updateColor4(\"reflectionLeftColor\",this.reflectionFresnelParameters.leftColor,this.reflectionFresnelParameters.power),u.updateColor4(\"reflectionRightColor\",this.reflectionFresnelParameters.rightColor,this.reflectionFresnelParameters.bias)),this.refractionFresnelParameters&&this.refractionFresnelParameters.isEnabled&&(u.updateColor4(\"refractionLeftColor\",this.refractionFresnelParameters.leftColor,this.refractionFresnelParameters.power),u.updateColor4(\"refractionRightColor\",this.refractionFresnelParameters.rightColor,this.refractionFresnelParameters.bias)),this.emissiveFresnelParameters&&this.emissiveFresnelParameters.isEnabled&&(u.updateColor4(\"emissiveLeftColor\",this.emissiveFresnelParameters.leftColor,this.emissiveFresnelParameters.power),u.updateColor4(\"emissiveRightColor\",this.emissiveFresnelParameters.rightColor,this.emissiveFresnelParameters.bias))),r.texturesEnabled){if(this._diffuseTexture&&t.DiffuseTextureEnabled&&(u.updateFloat2(\"vDiffuseInfos\",this._diffuseTexture.coordinatesIndex,this._diffuseTexture.level),_.a.BindTextureMatrix(this._diffuseTexture,u,\"diffuse\")),this._ambientTexture&&t.AmbientTextureEnabled&&(u.updateFloat2(\"vAmbientInfos\",this._ambientTexture.coordinatesIndex,this._ambientTexture.level),_.a.BindTextureMatrix(this._ambientTexture,u,\"ambient\")),this._opacityTexture&&t.OpacityTextureEnabled&&(u.updateFloat2(\"vOpacityInfos\",this._opacityTexture.coordinatesIndex,this._opacityTexture.level),_.a.BindTextureMatrix(this._opacityTexture,u,\"opacity\")),this._hasAlphaChannel()&&s.setFloat(\"alphaCutOff\",this.alphaCutOff),this._reflectionTexture&&t.ReflectionTextureEnabled&&(u.updateFloat2(\"vReflectionInfos\",this._reflectionTexture.level,this.roughness),u.updateMatrix(\"reflectionMatrix\",this._reflectionTexture.getReflectionTextureMatrix()),this._reflectionTexture.boundingBoxSize)){var h=this._reflectionTexture;u.updateVector3(\"vReflectionPosition\",h.boundingBoxPosition),u.updateVector3(\"vReflectionSize\",h.boundingBoxSize)}if(this._emissiveTexture&&t.EmissiveTextureEnabled&&(u.updateFloat2(\"vEmissiveInfos\",this._emissiveTexture.coordinatesIndex,this._emissiveTexture.level),_.a.BindTextureMatrix(this._emissiveTexture,u,\"emissive\")),this._lightmapTexture&&t.LightmapTextureEnabled&&(u.updateFloat2(\"vLightmapInfos\",this._lightmapTexture.coordinatesIndex,this._lightmapTexture.level),_.a.BindTextureMatrix(this._lightmapTexture,u,\"lightmap\")),this._specularTexture&&t.SpecularTextureEnabled&&(u.updateFloat2(\"vSpecularInfos\",this._specularTexture.coordinatesIndex,this._specularTexture.level),_.a.BindTextureMatrix(this._specularTexture,u,\"specular\")),this._bumpTexture&&r.getEngine().getCaps().standardDerivatives&&t.BumpTextureEnabled&&(u.updateFloat3(\"vBumpInfos\",this._bumpTexture.coordinatesIndex,1/this._bumpTexture.level,this.parallaxScaleBias),_.a.BindTextureMatrix(this._bumpTexture,u,\"bump\"),r._mirroredCameraPosition?u.updateFloat2(\"vTangentSpaceParams\",this._invertNormalMapX?1:-1,this._invertNormalMapY?1:-1):u.updateFloat2(\"vTangentSpaceParams\",this._invertNormalMapX?-1:1,this._invertNormalMapY?-1:1)),this._refractionTexture&&t.RefractionTextureEnabled){var d=1;this._refractionTexture.isCube||(u.updateMatrix(\"refractionMatrix\",this._refractionTexture.getReflectionTextureMatrix()),this._refractionTexture.depth&&(d=this._refractionTexture.depth)),u.updateFloat4(\"vRefractionInfos\",this._refractionTexture.level,this.indexOfRefraction,d,this.invertRefractionY?-1:1)}}this.pointsCloud&&u.updateFloat(\"pointSize\",this.pointSize),o.SPECULARTERM&&u.updateColor4(\"vSpecularColor\",this.specularColor,this.specularPower),u.updateColor3(\"vEmissiveColor\",t.EmissiveTextureEnabled?this.emissiveColor:c.a.BlackReadOnly),u.updateColor4(\"vDiffuseColor\",this.diffuseColor,this.alpha)}if(u.updateFloat(\"visibility\",i.visibility),r.texturesEnabled&&(this._diffuseTexture&&t.DiffuseTextureEnabled&&s.setTexture(\"diffuseSampler\",this._diffuseTexture),this._ambientTexture&&t.AmbientTextureEnabled&&s.setTexture(\"ambientSampler\",this._ambientTexture),this._opacityTexture&&t.OpacityTextureEnabled&&s.setTexture(\"opacitySampler\",this._opacityTexture),this._reflectionTexture&&t.ReflectionTextureEnabled&&(this._reflectionTexture.isCube?s.setTexture(\"reflectionCubeSampler\",this._reflectionTexture):s.setTexture(\"reflection2DSampler\",this._reflectionTexture)),this._emissiveTexture&&t.EmissiveTextureEnabled&&s.setTexture(\"emissiveSampler\",this._emissiveTexture),this._lightmapTexture&&t.LightmapTextureEnabled&&s.setTexture(\"lightmapSampler\",this._lightmapTexture),this._specularTexture&&t.SpecularTextureEnabled&&s.setTexture(\"specularSampler\",this._specularTexture),this._bumpTexture&&r.getEngine().getCaps().standardDerivatives&&t.BumpTextureEnabled&&s.setTexture(\"bumpSampler\",this._bumpTexture),this._refractionTexture&&t.RefractionTextureEnabled)){d=1;this._refractionTexture.isCube?s.setTexture(\"refractionCubeSampler\",this._refractionTexture):s.setTexture(\"refraction2DSampler\",this._refractionTexture)}this.detailMap.bindForSubMesh(u,r,this.isFrozen),_.a.BindClipPlane(s,r),r.ambientColor.multiplyToRef(this.ambientColor,this._globalAmbientColor),_.a.BindEyePosition(s,r),s.setColor3(\"vAmbientColor\",this._globalAmbientColor)}!l&&this.isFrozen||(r.lightsEnabled&&!this._disableLighting&&_.a.BindLights(r,i,s,o,this._maxSimultaneousLights,this._rebuildInParallel),(r.fogEnabled&&i.applyFog&&r.fogMode!==a.a.FOGMODE_NONE||this._reflectionTexture||this._refractionTexture)&&this.bindView(s),_.a.BindFogParameters(r,i,s),o.NUM_MORPH_INFLUENCERS&&_.a.BindMorphTargetParameters(i,s),this.useLogarithmicDepth&&_.a.BindLogDepth(o,s,r),this._imageProcessingConfiguration&&!this._imageProcessingConfiguration.applyByPostProcess&&this._imageProcessingConfiguration.bind(this._activeEffect)),u.update(),this._afterBind(i,this._activeEffect)}}},t.prototype.getAnimatables=function(){var e=[];return this._diffuseTexture&&this._diffuseTexture.animations&&this._diffuseTexture.animations.length>0&&e.push(this._diffuseTexture),this._ambientTexture&&this._ambientTexture.animations&&this._ambientTexture.animations.length>0&&e.push(this._ambientTexture),this._opacityTexture&&this._opacityTexture.animations&&this._opacityTexture.animations.length>0&&e.push(this._opacityTexture),this._reflectionTexture&&this._reflectionTexture.animations&&this._reflectionTexture.animations.length>0&&e.push(this._reflectionTexture),this._emissiveTexture&&this._emissiveTexture.animations&&this._emissiveTexture.animations.length>0&&e.push(this._emissiveTexture),this._specularTexture&&this._specularTexture.animations&&this._specularTexture.animations.length>0&&e.push(this._specularTexture),this._bumpTexture&&this._bumpTexture.animations&&this._bumpTexture.animations.length>0&&e.push(this._bumpTexture),this._lightmapTexture&&this._lightmapTexture.animations&&this._lightmapTexture.animations.length>0&&e.push(this._lightmapTexture),this._refractionTexture&&this._refractionTexture.animations&&this._refractionTexture.animations.length>0&&e.push(this._refractionTexture),this.detailMap.getAnimatables(e),e},t.prototype.getActiveTextures=function(){var t=e.prototype.getActiveTextures.call(this);return this._diffuseTexture&&t.push(this._diffuseTexture),this._ambientTexture&&t.push(this._ambientTexture),this._opacityTexture&&t.push(this._opacityTexture),this._reflectionTexture&&t.push(this._reflectionTexture),this._emissiveTexture&&t.push(this._emissiveTexture),this._specularTexture&&t.push(this._specularTexture),this._bumpTexture&&t.push(this._bumpTexture),this._lightmapTexture&&t.push(this._lightmapTexture),this._refractionTexture&&t.push(this._refractionTexture),this.detailMap.getActiveTextures(t),t},t.prototype.hasTexture=function(t){return!!e.prototype.hasTexture.call(this,t)||(this._diffuseTexture===t||(this._ambientTexture===t||(this._opacityTexture===t||(this._reflectionTexture===t||(this._emissiveTexture===t||(this._specularTexture===t||(this._bumpTexture===t||(this._lightmapTexture===t||(this._refractionTexture===t||this.detailMap.hasTexture(t))))))))))},t.prototype.dispose=function(t,i){var n,r,o,a,s,c,l,u,h;i&&(null===(n=this._diffuseTexture)||void 0===n||n.dispose(),null===(r=this._ambientTexture)||void 0===r||r.dispose(),null===(o=this._opacityTexture)||void 0===o||o.dispose(),null===(a=this._reflectionTexture)||void 0===a||a.dispose(),null===(s=this._emissiveTexture)||void 0===s||s.dispose(),null===(c=this._specularTexture)||void 0===c||c.dispose(),null===(l=this._bumpTexture)||void 0===l||l.dispose(),null===(u=this._lightmapTexture)||void 0===u||u.dispose(),null===(h=this._refractionTexture)||void 0===h||h.dispose()),this.detailMap.dispose(i),this._imageProcessingConfiguration&&this._imageProcessingObserver&&this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),e.prototype.dispose.call(this,t,i)},t.prototype.clone=function(e){var i=this,n=r.a.Clone((function(){return new t(e,i.getScene())}),this);return n.name=e,n.id=e,n},t.prototype.serialize=function(){return r.a.Serialize(this)},t.Parse=function(e,i,n){return r.a.Parse((function(){return new t(e.name,i)}),e,i,n)},Object.defineProperty(t,\"DiffuseTextureEnabled\",{get:function(){return v.a.DiffuseTextureEnabled},set:function(e){v.a.DiffuseTextureEnabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(t,\"DetailTextureEnabled\",{get:function(){return v.a.DetailTextureEnabled},set:function(e){v.a.DetailTextureEnabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(t,\"AmbientTextureEnabled\",{get:function(){return v.a.AmbientTextureEnabled},set:function(e){v.a.AmbientTextureEnabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(t,\"OpacityTextureEnabled\",{get:function(){return v.a.OpacityTextureEnabled},set:function(e){v.a.OpacityTextureEnabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(t,\"ReflectionTextureEnabled\",{get:function(){return v.a.ReflectionTextureEnabled},set:function(e){v.a.ReflectionTextureEnabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(t,\"EmissiveTextureEnabled\",{get:function(){return v.a.EmissiveTextureEnabled},set:function(e){v.a.EmissiveTextureEnabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(t,\"SpecularTextureEnabled\",{get:function(){return v.a.SpecularTextureEnabled},set:function(e){v.a.SpecularTextureEnabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(t,\"BumpTextureEnabled\",{get:function(){return v.a.BumpTextureEnabled},set:function(e){v.a.BumpTextureEnabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(t,\"LightmapTextureEnabled\",{get:function(){return v.a.LightmapTextureEnabled},set:function(e){v.a.LightmapTextureEnabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(t,\"RefractionTextureEnabled\",{get:function(){return v.a.RefractionTextureEnabled},set:function(e){v.a.RefractionTextureEnabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(t,\"ColorGradingTextureEnabled\",{get:function(){return v.a.ColorGradingTextureEnabled},set:function(e){v.a.ColorGradingTextureEnabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(t,\"FresnelEnabled\",{get:function(){return v.a.FresnelEnabled},set:function(e){v.a.FresnelEnabled=e},enumerable:!1,configurable:!0}),Object(n.c)([Object(r.m)(\"diffuseTexture\")],t.prototype,\"_diffuseTexture\",void 0),Object(n.c)([Object(r.b)(\"_markAllSubMeshesAsTexturesAndMiscDirty\")],t.prototype,\"diffuseTexture\",void 0),Object(n.c)([Object(r.m)(\"ambientTexture\")],t.prototype,\"_ambientTexture\",void 0),Object(n.c)([Object(r.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"ambientTexture\",void 0),Object(n.c)([Object(r.m)(\"opacityTexture\")],t.prototype,\"_opacityTexture\",void 0),Object(n.c)([Object(r.b)(\"_markAllSubMeshesAsTexturesAndMiscDirty\")],t.prototype,\"opacityTexture\",void 0),Object(n.c)([Object(r.m)(\"reflectionTexture\")],t.prototype,\"_reflectionTexture\",void 0),Object(n.c)([Object(r.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"reflectionTexture\",void 0),Object(n.c)([Object(r.m)(\"emissiveTexture\")],t.prototype,\"_emissiveTexture\",void 0),Object(n.c)([Object(r.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"emissiveTexture\",void 0),Object(n.c)([Object(r.m)(\"specularTexture\")],t.prototype,\"_specularTexture\",void 0),Object(n.c)([Object(r.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"specularTexture\",void 0),Object(n.c)([Object(r.m)(\"bumpTexture\")],t.prototype,\"_bumpTexture\",void 0),Object(n.c)([Object(r.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"bumpTexture\",void 0),Object(n.c)([Object(r.m)(\"lightmapTexture\")],t.prototype,\"_lightmapTexture\",void 0),Object(n.c)([Object(r.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"lightmapTexture\",void 0),Object(n.c)([Object(r.m)(\"refractionTexture\")],t.prototype,\"_refractionTexture\",void 0),Object(n.c)([Object(r.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"refractionTexture\",void 0),Object(n.c)([Object(r.e)(\"ambient\")],t.prototype,\"ambientColor\",void 0),Object(n.c)([Object(r.e)(\"diffuse\")],t.prototype,\"diffuseColor\",void 0),Object(n.c)([Object(r.e)(\"specular\")],t.prototype,\"specularColor\",void 0),Object(n.c)([Object(r.e)(\"emissive\")],t.prototype,\"emissiveColor\",void 0),Object(n.c)([Object(r.c)()],t.prototype,\"specularPower\",void 0),Object(n.c)([Object(r.c)(\"useAlphaFromDiffuseTexture\")],t.prototype,\"_useAlphaFromDiffuseTexture\",void 0),Object(n.c)([Object(r.b)(\"_markAllSubMeshesAsTexturesAndMiscDirty\")],t.prototype,\"useAlphaFromDiffuseTexture\",void 0),Object(n.c)([Object(r.c)(\"useEmissiveAsIllumination\")],t.prototype,\"_useEmissiveAsIllumination\",void 0),Object(n.c)([Object(r.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"useEmissiveAsIllumination\",void 0),Object(n.c)([Object(r.c)(\"linkEmissiveWithDiffuse\")],t.prototype,\"_linkEmissiveWithDiffuse\",void 0),Object(n.c)([Object(r.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"linkEmissiveWithDiffuse\",void 0),Object(n.c)([Object(r.c)(\"useSpecularOverAlpha\")],t.prototype,\"_useSpecularOverAlpha\",void 0),Object(n.c)([Object(r.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"useSpecularOverAlpha\",void 0),Object(n.c)([Object(r.c)(\"useReflectionOverAlpha\")],t.prototype,\"_useReflectionOverAlpha\",void 0),Object(n.c)([Object(r.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"useReflectionOverAlpha\",void 0),Object(n.c)([Object(r.c)(\"disableLighting\")],t.prototype,\"_disableLighting\",void 0),Object(n.c)([Object(r.b)(\"_markAllSubMeshesAsLightsDirty\")],t.prototype,\"disableLighting\",void 0),Object(n.c)([Object(r.c)(\"useObjectSpaceNormalMap\")],t.prototype,\"_useObjectSpaceNormalMap\",void 0),Object(n.c)([Object(r.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"useObjectSpaceNormalMap\",void 0),Object(n.c)([Object(r.c)(\"useParallax\")],t.prototype,\"_useParallax\",void 0),Object(n.c)([Object(r.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"useParallax\",void 0),Object(n.c)([Object(r.c)(\"useParallaxOcclusion\")],t.prototype,\"_useParallaxOcclusion\",void 0),Object(n.c)([Object(r.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"useParallaxOcclusion\",void 0),Object(n.c)([Object(r.c)()],t.prototype,\"parallaxScaleBias\",void 0),Object(n.c)([Object(r.c)(\"roughness\")],t.prototype,\"_roughness\",void 0),Object(n.c)([Object(r.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"roughness\",void 0),Object(n.c)([Object(r.c)()],t.prototype,\"indexOfRefraction\",void 0),Object(n.c)([Object(r.c)()],t.prototype,\"invertRefractionY\",void 0),Object(n.c)([Object(r.c)()],t.prototype,\"alphaCutOff\",void 0),Object(n.c)([Object(r.c)(\"useLightmapAsShadowmap\")],t.prototype,\"_useLightmapAsShadowmap\",void 0),Object(n.c)([Object(r.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"useLightmapAsShadowmap\",void 0),Object(n.c)([Object(r.h)(\"diffuseFresnelParameters\")],t.prototype,\"_diffuseFresnelParameters\",void 0),Object(n.c)([Object(r.b)(\"_markAllSubMeshesAsFresnelDirty\")],t.prototype,\"diffuseFresnelParameters\",void 0),Object(n.c)([Object(r.h)(\"opacityFresnelParameters\")],t.prototype,\"_opacityFresnelParameters\",void 0),Object(n.c)([Object(r.b)(\"_markAllSubMeshesAsFresnelAndMiscDirty\")],t.prototype,\"opacityFresnelParameters\",void 0),Object(n.c)([Object(r.h)(\"reflectionFresnelParameters\")],t.prototype,\"_reflectionFresnelParameters\",void 0),Object(n.c)([Object(r.b)(\"_markAllSubMeshesAsFresnelDirty\")],t.prototype,\"reflectionFresnelParameters\",void 0),Object(n.c)([Object(r.h)(\"refractionFresnelParameters\")],t.prototype,\"_refractionFresnelParameters\",void 0),Object(n.c)([Object(r.b)(\"_markAllSubMeshesAsFresnelDirty\")],t.prototype,\"refractionFresnelParameters\",void 0),Object(n.c)([Object(r.h)(\"emissiveFresnelParameters\")],t.prototype,\"_emissiveFresnelParameters\",void 0),Object(n.c)([Object(r.b)(\"_markAllSubMeshesAsFresnelDirty\")],t.prototype,\"emissiveFresnelParameters\",void 0),Object(n.c)([Object(r.c)(\"useReflectionFresnelFromSpecular\")],t.prototype,\"_useReflectionFresnelFromSpecular\",void 0),Object(n.c)([Object(r.b)(\"_markAllSubMeshesAsFresnelDirty\")],t.prototype,\"useReflectionFresnelFromSpecular\",void 0),Object(n.c)([Object(r.c)(\"useGlossinessFromSpecularMapAlpha\")],t.prototype,\"_useGlossinessFromSpecularMapAlpha\",void 0),Object(n.c)([Object(r.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"useGlossinessFromSpecularMapAlpha\",void 0),Object(n.c)([Object(r.c)(\"maxSimultaneousLights\")],t.prototype,\"_maxSimultaneousLights\",void 0),Object(n.c)([Object(r.b)(\"_markAllSubMeshesAsLightsDirty\")],t.prototype,\"maxSimultaneousLights\",void 0),Object(n.c)([Object(r.c)(\"invertNormalMapX\")],t.prototype,\"_invertNormalMapX\",void 0),Object(n.c)([Object(r.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"invertNormalMapX\",void 0),Object(n.c)([Object(r.c)(\"invertNormalMapY\")],t.prototype,\"_invertNormalMapY\",void 0),Object(n.c)([Object(r.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"invertNormalMapY\",void 0),Object(n.c)([Object(r.c)(\"twoSidedLighting\")],t.prototype,\"_twoSidedLighting\",void 0),Object(n.c)([Object(r.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"twoSidedLighting\",void 0),Object(n.c)([Object(r.c)()],t.prototype,\"useLogarithmicDepth\",null),t}(p.a);g.a.RegisteredTypes[\"BABYLON.StandardMaterial\"]=M,a.a.DefaultMaterialFactory=function(e){return new M(\"default material\",e)}},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return S}));var n=i(1),r=i(12),o=i(6),a=i(0),s=i(13),c=i(4),l=i(16),u=i(46),h=i(54),d=i(43),f=i(2),p=i(147),_=i(21),m=i(101),g=i(9),v=i(28),b=i(23),y=i(11),T=function(){this.facetNb=0,this.partitioningSubdivisions=10,this.partitioningBBoxRatio=1.01,this.facetDataEnabled=!1,this.facetParameters={},this.bbSize=a.e.Zero(),this.subDiv={max:1,X:1,Y:1,Z:1},this.facetDepthSort=!1,this.facetDepthSortEnabled=!1},E=function(){this._hasVertexAlpha=!1,this._useVertexColors=!0,this._numBoneInfluencers=4,this._applyFog=!0,this._receiveShadows=!1,this._facetData=new T,this._visibility=1,this._skeleton=null,this._layerMask=268435455,this._computeBonesUsingShaders=!0,this._isActive=!1,this._onlyForInstances=!1,this._isActiveIntermediate=!1,this._onlyForInstancesIntermediate=!1,this._actAsRegularMesh=!1,this._currentLOD=null,this._currentLODIsUpToDate=!1},S=function(e){function t(i,n){void 0===n&&(n=null);var r=e.call(this,i,n,!1)||this;return r._internalAbstractMeshDataInfo=new E,r.cullingStrategy=t.CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY,r.onCollideObservable=new o.c,r.onCollisionPositionChangeObservable=new o.c,r.onMaterialChangedObservable=new o.c,r.definedFacingForward=!0,r._occlusionQuery=null,r._renderingGroup=null,r.alphaIndex=Number.MAX_VALUE,r.isVisible=!0,r.isPickable=!0,r.showSubMeshesBoundingBox=!1,r.isBlocker=!1,r.enablePointerMoveEvents=!1,r._renderingGroupId=0,r._material=null,r.outlineColor=g.a.Red(),r.outlineWidth=.02,r.overlayColor=g.a.Red(),r.overlayAlpha=.5,r.useOctreeForRenderingSelection=!0,r.useOctreeForPicking=!0,r.useOctreeForCollisions=!0,r.alwaysSelectAsActiveMesh=!1,r.doNotSyncBoundingInfo=!1,r.actionManager=null,r._meshCollisionData=new p.a,r.ellipsoid=new a.e(.5,1,.5),r.ellipsoidOffset=new a.e(0,0,0),r.edgesWidth=1,r.edgesColor=new g.b(1,0,0,1),r._edgesRenderer=null,r._masterMesh=null,r._boundingInfo=null,r._renderId=0,r._intersectionsInProgress=new Array,r._unIndexed=!1,r._lightSources=new Array,r._waitingData={lods:null,actions:null,freezeWorldMatrix:null},r._bonesTransformMatrices=null,r._transformMatrixTexture=null,r.onRebuildObservable=new o.c,r._onCollisionPositionChange=function(e,t,i){void 0===i&&(i=null),t.subtractToRef(r._meshCollisionData._oldPositionForCollisions,r._meshCollisionData._diffPositionForCollisions),r._meshCollisionData._diffPositionForCollisions.length()>s.a.CollisionsEpsilon&&r.position.addInPlace(r._meshCollisionData._diffPositionForCollisions),i&&r.onCollideObservable.notifyObservers(i),r.onCollisionPositionChangeObservable.notifyObservers(r.position)},r.getScene().addMesh(r),r._resyncLightSources(),r}return Object(n.d)(t,e),Object.defineProperty(t,\"BILLBOARDMODE_NONE\",{get:function(){return u.a.BILLBOARDMODE_NONE},enumerable:!1,configurable:!0}),Object.defineProperty(t,\"BILLBOARDMODE_X\",{get:function(){return u.a.BILLBOARDMODE_X},enumerable:!1,configurable:!0}),Object.defineProperty(t,\"BILLBOARDMODE_Y\",{get:function(){return u.a.BILLBOARDMODE_Y},enumerable:!1,configurable:!0}),Object.defineProperty(t,\"BILLBOARDMODE_Z\",{get:function(){return u.a.BILLBOARDMODE_Z},enumerable:!1,configurable:!0}),Object.defineProperty(t,\"BILLBOARDMODE_ALL\",{get:function(){return u.a.BILLBOARDMODE_ALL},enumerable:!1,configurable:!0}),Object.defineProperty(t,\"BILLBOARDMODE_USE_POSITION\",{get:function(){return u.a.BILLBOARDMODE_USE_POSITION},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"facetNb\",{get:function(){return this._internalAbstractMeshDataInfo._facetData.facetNb},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"partitioningSubdivisions\",{get:function(){return this._internalAbstractMeshDataInfo._facetData.partitioningSubdivisions},set:function(e){this._internalAbstractMeshDataInfo._facetData.partitioningSubdivisions=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"partitioningBBoxRatio\",{get:function(){return this._internalAbstractMeshDataInfo._facetData.partitioningBBoxRatio},set:function(e){this._internalAbstractMeshDataInfo._facetData.partitioningBBoxRatio=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"mustDepthSortFacets\",{get:function(){return this._internalAbstractMeshDataInfo._facetData.facetDepthSort},set:function(e){this._internalAbstractMeshDataInfo._facetData.facetDepthSort=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"facetDepthSortFrom\",{get:function(){return this._internalAbstractMeshDataInfo._facetData.facetDepthSortFrom},set:function(e){this._internalAbstractMeshDataInfo._facetData.facetDepthSortFrom=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"isFacetDataEnabled\",{get:function(){return this._internalAbstractMeshDataInfo._facetData.facetDataEnabled},enumerable:!1,configurable:!0}),t.prototype._updateNonUniformScalingState=function(t){return!!e.prototype._updateNonUniformScalingState.call(this,t)&&(this._markSubMeshesAsMiscDirty(),!0)},Object.defineProperty(t.prototype,\"onCollide\",{set:function(e){this._meshCollisionData._onCollideObserver&&this.onCollideObservable.remove(this._meshCollisionData._onCollideObserver),this._meshCollisionData._onCollideObserver=this.onCollideObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"onCollisionPositionChange\",{set:function(e){this._meshCollisionData._onCollisionPositionChangeObserver&&this.onCollisionPositionChangeObservable.remove(this._meshCollisionData._onCollisionPositionChangeObserver),this._meshCollisionData._onCollisionPositionChangeObserver=this.onCollisionPositionChangeObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"visibility\",{get:function(){return this._internalAbstractMeshDataInfo._visibility},set:function(e){this._internalAbstractMeshDataInfo._visibility!==e&&(this._internalAbstractMeshDataInfo._visibility=e,this._markSubMeshesAsMiscDirty())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"renderingGroupId\",{get:function(){return this._renderingGroupId},set:function(e){this._renderingGroupId=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"material\",{get:function(){return this._material},set:function(e){this._material!==e&&(this._material&&this._material.meshMap&&(this._material.meshMap[this.uniqueId]=void 0),this._material=e,e&&e.meshMap&&(e.meshMap[this.uniqueId]=this),this.onMaterialChangedObservable.hasObservers()&&this.onMaterialChangedObservable.notifyObservers(this),this.subMeshes&&this._unBindEffect())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"receiveShadows\",{get:function(){return this._internalAbstractMeshDataInfo._receiveShadows},set:function(e){this._internalAbstractMeshDataInfo._receiveShadows!==e&&(this._internalAbstractMeshDataInfo._receiveShadows=e,this._markSubMeshesAsLightDirty())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"hasVertexAlpha\",{get:function(){return this._internalAbstractMeshDataInfo._hasVertexAlpha},set:function(e){this._internalAbstractMeshDataInfo._hasVertexAlpha!==e&&(this._internalAbstractMeshDataInfo._hasVertexAlpha=e,this._markSubMeshesAsAttributesDirty(),this._markSubMeshesAsMiscDirty())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"useVertexColors\",{get:function(){return this._internalAbstractMeshDataInfo._useVertexColors},set:function(e){this._internalAbstractMeshDataInfo._useVertexColors!==e&&(this._internalAbstractMeshDataInfo._useVertexColors=e,this._markSubMeshesAsAttributesDirty())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"computeBonesUsingShaders\",{get:function(){return this._internalAbstractMeshDataInfo._computeBonesUsingShaders},set:function(e){this._internalAbstractMeshDataInfo._computeBonesUsingShaders!==e&&(this._internalAbstractMeshDataInfo._computeBonesUsingShaders=e,this._markSubMeshesAsAttributesDirty())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"numBoneInfluencers\",{get:function(){return this._internalAbstractMeshDataInfo._numBoneInfluencers},set:function(e){this._internalAbstractMeshDataInfo._numBoneInfluencers!==e&&(this._internalAbstractMeshDataInfo._numBoneInfluencers=e,this._markSubMeshesAsAttributesDirty())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"applyFog\",{get:function(){return this._internalAbstractMeshDataInfo._applyFog},set:function(e){this._internalAbstractMeshDataInfo._applyFog!==e&&(this._internalAbstractMeshDataInfo._applyFog=e,this._markSubMeshesAsMiscDirty())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"layerMask\",{get:function(){return this._internalAbstractMeshDataInfo._layerMask},set:function(e){e!==this._internalAbstractMeshDataInfo._layerMask&&(this._internalAbstractMeshDataInfo._layerMask=e,this._resyncLightSources())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"collisionMask\",{get:function(){return this._meshCollisionData._collisionMask},set:function(e){this._meshCollisionData._collisionMask=isNaN(e)?-1:e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"collisionResponse\",{get:function(){return this._meshCollisionData._collisionResponse},set:function(e){this._meshCollisionData._collisionResponse=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"collisionGroup\",{get:function(){return this._meshCollisionData._collisionGroup},set:function(e){this._meshCollisionData._collisionGroup=isNaN(e)?-1:e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"surroundingMeshes\",{get:function(){return this._meshCollisionData._surroundingMeshes},set:function(e){this._meshCollisionData._surroundingMeshes=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"lightSources\",{get:function(){return this._lightSources},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"_positions\",{get:function(){return null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"skeleton\",{get:function(){return this._internalAbstractMeshDataInfo._skeleton},set:function(e){var t=this._internalAbstractMeshDataInfo._skeleton;t&&t.needInitialSkinMatrix&&t._unregisterMeshWithPoseMatrix(this),e&&e.needInitialSkinMatrix&&e._registerMeshWithPoseMatrix(this),this._internalAbstractMeshDataInfo._skeleton=e,this._internalAbstractMeshDataInfo._skeleton||(this._bonesTransformMatrices=null),this._markSubMeshesAsAttributesDirty()},enumerable:!1,configurable:!0}),t.prototype.getClassName=function(){return\"AbstractMesh\"},t.prototype.toString=function(e){var t=\"Name: \"+this.name+\", isInstance: \"+(\"InstancedMesh\"!==this.getClassName()?\"YES\":\"NO\");t+=\", # of submeshes: \"+(this.subMeshes?this.subMeshes.length:0);var i=this._internalAbstractMeshDataInfo._skeleton;return i&&(t+=\", skeleton: \"+i.name),e&&(t+=\", billboard mode: \"+[\"NONE\",\"X\",\"Y\",null,\"Z\",null,null,\"ALL\"][this.billboardMode],t+=\", freeze wrld mat: \"+(this._isWorldMatrixFrozen||this._waitingData.freezeWorldMatrix?\"YES\":\"NO\")),t},t.prototype._getEffectiveParent=function(){return this._masterMesh&&this.billboardMode!==u.a.BILLBOARDMODE_NONE?this._masterMesh:e.prototype._getEffectiveParent.call(this)},t.prototype._getActionManagerForTrigger=function(e,t){if(void 0===t&&(t=!0),this.actionManager&&(t||this.actionManager.isRecursive)){if(!e)return this.actionManager;if(this.actionManager.hasSpecificTrigger(e))return this.actionManager}return this.parent?this.parent._getActionManagerForTrigger(e,!1):null},t.prototype._rebuild=function(){if(this.onRebuildObservable.notifyObservers(this),this._occlusionQuery&&(this._occlusionQuery=null),this.subMeshes)for(var e=0,t=this.subMeshes;e4,s=o?this.getVerticesData(c.b.MatricesIndicesExtraKind):null,l=o?this.getVerticesData(c.b.MatricesWeightsExtraKind):null;this.skeleton.prepare();for(var u=this.skeleton.getTransformMatrices(this),h=a.c.Vector3[0],d=a.c.Matrix[0],f=a.c.Matrix[1],p=0,_=0;_0&&(a.a.FromFloat32ArrayToRefScaled(u,Math.floor(16*i[p+m]),g,f),d.addToSelf(f));if(o)for(m=0;m<4;m++)(g=l[p+m])>0&&(a.a.FromFloat32ArrayToRefScaled(u,Math.floor(16*s[p+m]),g,f),d.addToSelf(f));a.e.TransformCoordinatesFromFloatsToRef(t[_],t[_+1],t[_+2],d,h),h.toArray(t,_),this._positions&&this._positions[_/3].copyFrom(h)}}}return t},t.prototype._updateBoundingInfo=function(){var e=this._effectiveMesh;return this._boundingInfo?this._boundingInfo.update(e.worldMatrixFromCache):this._boundingInfo=new d.a(this.absolutePosition,this.absolutePosition,e.worldMatrixFromCache),this._updateSubMeshesBoundingInfo(e.worldMatrixFromCache),this},t.prototype._updateSubMeshesBoundingInfo=function(e){if(!this.subMeshes)return this;for(var t=this.subMeshes.length,i=0;i1||!n.IsGlobal)&&n.updateBoundingInfo(e)}return this},t.prototype._afterComputeWorldMatrix=function(){this.doNotSyncBoundingInfo||this._updateBoundingInfo()},Object.defineProperty(t.prototype,\"_effectiveMesh\",{get:function(){return this.skeleton&&this.skeleton.overrideMesh||this},enumerable:!1,configurable:!0}),t.prototype.isInFrustum=function(e){return null!==this._boundingInfo&&this._boundingInfo.isInFrustum(e,this.cullingStrategy)},t.prototype.isCompletelyInFrustum=function(e){return null!==this._boundingInfo&&this._boundingInfo.isCompletelyInFrustum(e)},t.prototype.intersectsMesh=function(e,t,i){if(void 0===t&&(t=!1),!this._boundingInfo||!e._boundingInfo)return!1;if(this._boundingInfo.intersects(e._boundingInfo,t))return!0;if(i)for(var n=0,r=this.getChildMeshes();n1&&!o._checkCollision(e)||this._collideForSubMesh(o,t,e)}return this},t.prototype._checkCollision=function(e){if(!this._boundingInfo||!this._boundingInfo._checkCollision(e))return this;var t=a.c.Matrix[0],i=a.c.Matrix[1];return a.a.ScalingToRef(1/e._radius.x,1/e._radius.y,1/e._radius.z,t),this.worldMatrixFromCache.multiplyToRef(t,i),this._processCollisionsForSubMeshes(e,i),this},t.prototype._generatePointsArray=function(){return!1},t.prototype.intersects=function(e,t,i,n,r,o){var s;void 0===n&&(n=!1),void 0===o&&(o=!1);var c=new h.a,l=\"InstancedLinesMesh\"===this.getClassName()||\"LinesMesh\"===this.getClassName()?this.intersectionThreshold:0,u=this._boundingInfo;if(!this.subMeshes||!u)return c;if(!(o||e.intersectsSphere(u.boundingSphere,l)&&e.intersectsBox(u.boundingBox,l)))return c;if(n)return c.hit=!o,c.pickedMesh=o?null:this,c.distance=o?0:a.e.Distance(e.origin,u.boundingSphere.center),c.subMeshId=0,c;if(!this._generatePointsArray())return c;for(var d=null,p=this._scene.getIntersectingSubMeshCandidates(this,e),_=p.length,m=!1,g=0;g<_;g++){var v=(b=p.data[g]).getMaterial();if(v&&((null===(s=this.getIndices())||void 0===s?void 0:s.length)&&(v.fillMode==f.a.MATERIAL_TriangleStripDrawMode||v.fillMode==f.a.MATERIAL_TriangleFillMode||v.fillMode==f.a.MATERIAL_WireFrameFillMode||v.fillMode==f.a.MATERIAL_PointFillMode))){m=!0;break}}if(!m)return c.hit=!0,c.pickedMesh=this,c.distance=a.e.Distance(e.origin,u.boundingSphere.center),c.subMeshId=-1,c;for(g=0;g<_;g++){var b=p.data[g];if(!(_>1)||b.canIntersects(e)){var y=b.intersects(e,this._positions,this.getIndices(),t,i);if(y&&(t||!d||y.distance65535){o=!0;break}e.depthSortedIndices=o?new Uint32Array(i):new Uint16Array(i)}if(e.facetDepthSortFunction=function(e,t){return t.sqDistance-e.sqDistance},!e.facetDepthSortFrom){var u=this.getScene().activeCamera;e.facetDepthSortFrom=u?u.position:a.e.Zero()}e.depthSortedFacets=[];for(var h=0;hv.a?r.maximum.x-r.minimum.x:v.a,e.bbSize.y=r.maximum.y-r.minimum.y>v.a?r.maximum.y-r.minimum.y:v.a,e.bbSize.z=r.maximum.z-r.minimum.z>v.a?r.maximum.z-r.minimum.z:v.a;var f=e.bbSize.x>e.bbSize.y?e.bbSize.x:e.bbSize.y;if(f=f>e.bbSize.z?f:e.bbSize.z,e.subDiv.max=e.partitioningSubdivisions,e.subDiv.X=Math.floor(e.subDiv.max*e.bbSize.x/f),e.subDiv.Y=Math.floor(e.subDiv.max*e.bbSize.y/f),e.subDiv.Z=Math.floor(e.subDiv.max*e.bbSize.z/f),e.subDiv.X=e.subDiv.X<1?1:e.subDiv.X,e.subDiv.Y=e.subDiv.Y<1?1:e.subDiv.Y,e.subDiv.Z=e.subDiv.Z<1?1:e.subDiv.Z,e.facetParameters.facetNormals=this.getFacetLocalNormals(),e.facetParameters.facetPositions=this.getFacetLocalPositions(),e.facetParameters.facetPartitioning=this.getFacetLocalPartitioning(),e.facetParameters.bInfo=r,e.facetParameters.bbSize=e.bbSize,e.facetParameters.subDiv=e.subDiv,e.facetParameters.ratio=this.partitioningBBoxRatio,e.facetParameters.depthSort=e.facetDepthSort,e.facetDepthSort&&e.facetDepthSortEnabled&&(this.computeWorldMatrix(!0),this._worldMatrix.invertToRef(e.invertedMatrix),a.e.TransformCoordinatesToRef(e.facetDepthSortFrom,e.invertedMatrix,e.facetDepthSortOrigin),e.facetParameters.distanceTo=e.facetDepthSortOrigin),e.facetParameters.depthSortedFacets=e.depthSortedFacets,l.a.ComputeNormals(t,i,n,e.facetParameters),e.facetDepthSort&&e.facetDepthSortEnabled){e.depthSortedFacets.sort(e.facetDepthSortFunction);var p=e.depthSortedIndices.length/3|0;for(h=0;hr.subDiv.max||a<0||a>r.subDiv.max||s<0||s>r.subDiv.max?null:r.facetPartitioning[o+r.subDiv.max*a+r.subDiv.max*r.subDiv.max*s]},t.prototype.getClosestFacetAtCoordinates=function(e,t,i,n,r,o){void 0===r&&(r=!1),void 0===o&&(o=!0);var s=this.getWorldMatrix(),c=a.c.Matrix[5];s.invertToRef(c);var l=a.c.Vector3[8];a.e.TransformCoordinatesFromFloatsToRef(e,t,i,c,l);var u=this.getClosestFacetAtLocalCoordinates(l.x,l.y,l.z,n,r,o);return n&&a.e.TransformCoordinatesFromFloatsToRef(n.x,n.y,n.z,s,n),u},t.prototype.getClosestFacetAtLocalCoordinates=function(e,t,i,n,r,o){void 0===r&&(r=!1),void 0===o&&(o=!0);var a=null,s=0,c=0,l=0,u=0,h=0,d=0,f=0,p=0,_=this.getFacetLocalPositions(),m=this.getFacetLocalNormals(),g=this.getFacetsAtLocalCoordinates(e,t,i);if(!g)return null;for(var v,b,y,T=Number.MAX_VALUE,E=T,S=0;S=0||r&&!o&&u<=0)&&(u=b.x*y.x+b.y*y.y+b.z*y.z,h=-(b.x*e+b.y*t+b.z*i-u)/(b.x*b.x+b.y*b.y+b.z*b.z),(E=(s=(d=e+b.x*h)-e)*s+(c=(f=t+b.y*h)-t)*c+(l=(p=i+b.z*h)-i)*l)100&&(this.soft=!0),this._physicsEngine=this._scene.getPhysicsEngine(),this._physicsEngine?(this.object.rotationQuaternion||(this.object.rotation?this.object.rotationQuaternion=o.b.RotationYawPitchRoll(this.object.rotation.y,this.object.rotation.x,this.object.rotation.z):this.object.rotationQuaternion=new o.b),this._options.mass=void 0===i.mass?0:i.mass,this._options.friction=void 0===i.friction?.2:i.friction,this._options.restitution=void 0===i.restitution?.2:i.restitution,this.soft&&(this._options.mass=this._options.mass>0?this._options.mass:1,this._options.pressure=void 0===i.pressure?200:i.pressure,this._options.stiffness=void 0===i.stiffness?1:i.stiffness,this._options.velocityIterations=void 0===i.velocityIterations?20:i.velocityIterations,this._options.positionIterations=void 0===i.positionIterations?20:i.positionIterations,this._options.fixedPoints=void 0===i.fixedPoints?0:i.fixedPoints,this._options.margin=void 0===i.margin?0:i.margin,this._options.damping=void 0===i.damping?0:i.damping,this._options.path=void 0===i.path?null:i.path,this._options.shape=void 0===i.shape?null:i.shape),this._joints=[],!this.object.parent||this._options.ignoreParent?this._init():this.object.parent.physicsImpostor&&n.a.Warn(\"You must affect impostors to children before affecting impostor to parent.\")):n.a.Error(\"Physics not enabled. Please use scene.enablePhysics(...) before creating impostors.\"))):n.a.Error(\"No object was provided. A physics object is obligatory\")}return Object.defineProperty(e.prototype,\"isDisposed\",{get:function(){return this._isDisposed},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"mass\",{get:function(){return this._physicsEngine?this._physicsEngine.getPhysicsPlugin().getBodyMass(this):0},set:function(e){this.setMass(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"friction\",{get:function(){return this._physicsEngine?this._physicsEngine.getPhysicsPlugin().getBodyFriction(this):0},set:function(e){this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().setBodyFriction(this,e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"restitution\",{get:function(){return this._physicsEngine?this._physicsEngine.getPhysicsPlugin().getBodyRestitution(this):0},set:function(e){this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().setBodyRestitution(this,e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"pressure\",{get:function(){if(!this._physicsEngine)return 0;var e=this._physicsEngine.getPhysicsPlugin();return e.setBodyPressure?e.getBodyPressure(this):0},set:function(e){if(this._physicsEngine){var t=this._physicsEngine.getPhysicsPlugin();t.setBodyPressure&&t.setBodyPressure(this,e)}},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"stiffness\",{get:function(){if(!this._physicsEngine)return 0;var e=this._physicsEngine.getPhysicsPlugin();return e.getBodyStiffness?e.getBodyStiffness(this):0},set:function(e){if(this._physicsEngine){var t=this._physicsEngine.getPhysicsPlugin();t.setBodyStiffness&&t.setBodyStiffness(this,e)}},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"velocityIterations\",{get:function(){if(!this._physicsEngine)return 0;var e=this._physicsEngine.getPhysicsPlugin();return e.getBodyVelocityIterations?e.getBodyVelocityIterations(this):0},set:function(e){if(this._physicsEngine){var t=this._physicsEngine.getPhysicsPlugin();t.setBodyVelocityIterations&&t.setBodyVelocityIterations(this,e)}},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"positionIterations\",{get:function(){if(!this._physicsEngine)return 0;var e=this._physicsEngine.getPhysicsPlugin();return e.getBodyPositionIterations?e.getBodyPositionIterations(this):0},set:function(e){if(this._physicsEngine){var t=this._physicsEngine.getPhysicsPlugin();t.setBodyPositionIterations&&t.setBodyPositionIterations(this,e)}},enumerable:!1,configurable:!0}),e.prototype._init=function(){this._physicsEngine&&(this._physicsEngine.removeImpostor(this),this.physicsBody=null,this._parent=this._parent||this._getPhysicsParent(),this._isDisposed||this.parent&&!this._options.ignoreParent||this._physicsEngine.addImpostor(this))},e.prototype._getPhysicsParent=function(){return this.object.parent instanceof a.a?this.object.parent.physicsImpostor:null},e.prototype.isBodyInitRequired=function(){return this._bodyUpdateRequired||!this._physicsBody&&!this._parent},e.prototype.setScalingUpdated=function(){this.forceUpdate()},e.prototype.forceUpdate=function(){this._init(),this.parent&&!this._options.ignoreParent&&this.parent.forceUpdate()},Object.defineProperty(e.prototype,\"physicsBody\",{get:function(){return this._parent&&!this._options.ignoreParent?this._parent.physicsBody:this._physicsBody},set:function(e){this._physicsBody&&this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().removePhysicsBody(this),this._physicsBody=e,this.resetUpdateFlags()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"parent\",{get:function(){return!this._options.ignoreParent&&this._parent?this._parent:null},set:function(e){this._parent=e},enumerable:!1,configurable:!0}),e.prototype.resetUpdateFlags=function(){this._bodyUpdateRequired=!1},e.prototype.getObjectExtendSize=function(){if(this.object.getBoundingInfo){var t=this.object.rotationQuaternion,i=this.object.scaling.clone();this.object.rotationQuaternion=e.IDENTITY_QUATERNION;var n=this.object.computeWorldMatrix&&this.object.computeWorldMatrix(!0);n&&n.decompose(i,void 0,void 0);var r=this.object.getBoundingInfo().boundingBox.extendSize.scale(2).multiplyInPlace(i);return this.object.rotationQuaternion=t,this.object.computeWorldMatrix&&this.object.computeWorldMatrix(!0),r}return e.DEFAULT_OBJECT_SIZE},e.prototype.getObjectCenter=function(){return this.object.getBoundingInfo?this.object.getBoundingInfo().boundingBox.centerWorld:this.object.position},e.prototype.getParam=function(e){return this._options[e]},e.prototype.setParam=function(e,t){this._options[e]=t,this._bodyUpdateRequired=!0},e.prototype.setMass=function(e){this.getParam(\"mass\")!==e&&this.setParam(\"mass\",e),this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().setBodyMass(this,e)},e.prototype.getLinearVelocity=function(){return this._physicsEngine?this._physicsEngine.getPhysicsPlugin().getLinearVelocity(this):o.e.Zero()},e.prototype.setLinearVelocity=function(e){this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().setLinearVelocity(this,e)},e.prototype.getAngularVelocity=function(){return this._physicsEngine?this._physicsEngine.getPhysicsPlugin().getAngularVelocity(this):o.e.Zero()},e.prototype.setAngularVelocity=function(e){this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().setAngularVelocity(this,e)},e.prototype.executeNativeFunction=function(e){this._physicsEngine&&e(this._physicsEngine.getPhysicsPlugin().world,this.physicsBody)},e.prototype.registerBeforePhysicsStep=function(e){this._onBeforePhysicsStepCallbacks.push(e)},e.prototype.unregisterBeforePhysicsStep=function(e){var t=this._onBeforePhysicsStepCallbacks.indexOf(e);t>-1?this._onBeforePhysicsStepCallbacks.splice(t,1):n.a.Warn(\"Function to remove was not found\")},e.prototype.registerAfterPhysicsStep=function(e){this._onAfterPhysicsStepCallbacks.push(e)},e.prototype.unregisterAfterPhysicsStep=function(e){var t=this._onAfterPhysicsStepCallbacks.indexOf(e);t>-1?this._onAfterPhysicsStepCallbacks.splice(t,1):n.a.Warn(\"Function to remove was not found\")},e.prototype.registerOnPhysicsCollide=function(e,t){var i=e instanceof Array?e:[e];this._onPhysicsCollideCallbacks.push({callback:t,otherImpostors:i})},e.prototype.unregisterOnPhysicsCollide=function(e,t){var i=e instanceof Array?e:[e],r=-1;this._onPhysicsCollideCallbacks.some((function(e,n){if(e.callback===t&&e.otherImpostors.length===i.length){var o=e.otherImpostors.every((function(e){return i.indexOf(e)>-1}));return o&&(r=n),o}return!1}))?this._onPhysicsCollideCallbacks.splice(r,1):n.a.Warn(\"Function to remove was not found\")},e.prototype.getParentsRotation=function(){var e=this.object.parent;for(this._tmpQuat.copyFromFloats(0,0,0,1);e;)e.rotationQuaternion?this._tmpQuat2.copyFrom(e.rotationQuaternion):o.b.RotationYawPitchRollToRef(e.rotation.y,e.rotation.x,e.rotation.z,this._tmpQuat2),this._tmpQuat.multiplyToRef(this._tmpQuat2,this._tmpQuat),e=e.parent;return this._tmpQuat},e.prototype.applyForce=function(e,t){return this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().applyForce(this,e,t),this},e.prototype.applyImpulse=function(e,t){return this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().applyImpulse(this,e,t),this},e.prototype.createJoint=function(e,t,i){var n=new c.e(t,i);return this.addJoint(e,n),this},e.prototype.addJoint=function(e,t){return this._joints.push({otherImpostor:e,joint:t}),this._physicsEngine&&this._physicsEngine.addJoint(this,e,t),this},e.prototype.addAnchor=function(e,t,i,n,r){if(!this._physicsEngine)return this;var o=this._physicsEngine.getPhysicsPlugin();return o.appendAnchor?(this._physicsEngine&&o.appendAnchor(this,e,t,i,n,r),this):this},e.prototype.addHook=function(e,t,i,n){if(!this._physicsEngine)return this;var r=this._physicsEngine.getPhysicsPlugin();return r.appendAnchor?(this._physicsEngine&&r.appendHook(this,e,t,i,n),this):this},e.prototype.sleep=function(){return this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().sleepBody(this),this},e.prototype.wakeUp=function(){return this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().wakeUpBody(this),this},e.prototype.clone=function(t){return t?new e(t,this.type,this._options,this._scene):null},e.prototype.dispose=function(){var e=this;this._physicsEngine&&(this._joints.forEach((function(t){e._physicsEngine&&e._physicsEngine.removeJoint(e,t.otherImpostor,t.joint)})),this._physicsEngine.removeImpostor(this),this.parent&&this.parent.forceUpdate(),this._isDisposed=!0)},e.prototype.setDeltaPosition=function(e){this._deltaPosition.copyFrom(e)},e.prototype.setDeltaRotation=function(e){this._deltaRotation||(this._deltaRotation=new o.b),this._deltaRotation.copyFrom(e),this._deltaRotationConjugated=this._deltaRotation.conjugate()},e.prototype.getBoxSizeToRef=function(e){return this._physicsEngine&&this._physicsEngine.getPhysicsPlugin().getBoxSizeToRef(this,e),this},e.prototype.getRadius=function(){return this._physicsEngine?this._physicsEngine.getPhysicsPlugin().getRadius(this):0},e.prototype.syncBoneWithImpostor=function(t,i,n,r,o){var a=e._tmpVecs[0],s=this.object;if(s.rotationQuaternion)if(o){var c=e._tmpQuat;s.rotationQuaternion.multiplyToRef(o,c),t.setRotationQuaternion(c,l.c.WORLD,i)}else t.setRotationQuaternion(s.rotationQuaternion,l.c.WORLD,i);a.x=0,a.y=0,a.z=0,n&&(a.x=n.x,a.y=n.y,a.z=n.z,t.getDirectionToRef(a,i,a),null==r&&(r=n.length()),a.x*=r,a.y*=r,a.z*=r),t.getParent()?(a.addInPlace(s.getAbsolutePosition()),t.setAbsolutePosition(a,i)):(i.setAbsolutePosition(s.getAbsolutePosition()),i.position.x-=a.x,i.position.y-=a.y,i.position.z-=a.z)},e.prototype.syncImpostorWithBone=function(t,i,n,r,o,a){var s=this.object;if(s.rotationQuaternion)if(o){var c=e._tmpQuat;t.getRotationQuaternionToRef(l.c.WORLD,i,c),c.multiplyToRef(o,s.rotationQuaternion)}else t.getRotationQuaternionToRef(l.c.WORLD,i,s.rotationQuaternion);var u=e._tmpVecs[0],h=e._tmpVecs[1];a||((a=e._tmpVecs[2]).x=0,a.y=1,a.z=0),t.getDirectionToRef(a,i,h),t.getAbsolutePositionToRef(i,u),null==r&&n&&(r=n.length()),null!=r&&(u.x+=h.x*r,u.y+=h.y*r,u.z+=h.z*r),s.setAbsolutePosition(u)},e.DEFAULT_OBJECT_SIZE=new o.e(1,1,1),e.IDENTITY_QUATERNION=o.b.Identity(),e._tmpVecs=r.a.BuildArray(3,o.e.Zero),e._tmpQuat=o.b.Identity(),e.NoImpostor=0,e.SphereImpostor=1,e.BoxImpostor=2,e.PlaneImpostor=3,e.MeshImpostor=4,e.CapsuleImpostor=6,e.CylinderImpostor=7,e.ParticleImpostor=8,e.HeightmapImpostor=9,e.ConvexHullImpostor=10,e.CustomImpostor=100,e.RopeImpostor=101,e.ClothImpostor=102,e.SoftbodyImpostor=103,e}()},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return r})),i.d(t,\"b\",(function(){return o}));var n=i(1),r=function(){function e(t){this.length=0,this.data=new Array(t),this._id=e._GlobalId++}return e.prototype.push=function(e){this.data[this.length++]=e,this.length>this.data.length&&(this.data.length*=2)},e.prototype.forEach=function(e){for(var t=0;tthis.data.length&&(this.data.length=2*(this.length+e.length));for(var t=0;t=this.length?-1:t},e.prototype.contains=function(e){return-1!==this.indexOf(e)},e._GlobalId=0,e}(),o=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._duplicateId=0,t}return Object(n.d)(t,e),t.prototype.push=function(t){e.prototype.push.call(this,t),t.__smartArrayFlags||(t.__smartArrayFlags={}),t.__smartArrayFlags[this._id]=this._duplicateId},t.prototype.pushNoDuplicate=function(e){return(!e.__smartArrayFlags||e.__smartArrayFlags[this._id]!==this._duplicateId)&&(this.push(e),!0)},t.prototype.reset=function(){e.prototype.reset.call(this),this._duplicateId++},t.prototype.concatWithNoDuplicate=function(e){if(0!==e.length){this.length+e.length>this.data.length&&(this.data.length=2*(this.length+e.length));for(var t=0;t>2,o=(3&t)<<4|(i=u>4,a=(15&i)<<2|(n=u>6,s=63&n,isNaN(i)?a=s=64:isNaN(n)&&(s=64),l+=c.charAt(r)+c.charAt(o)+c.charAt(a)+c.charAt(s);return l},e.PadNumber=function(e,t){for(var i=String(e);i.length0)):!i._pointerCaptures[c.pointerId]&&a.distance>s.distance&&(i.mainSceneTrackerPredicate&&i.mainSceneTrackerPredicate(s.pickedMesh)?(i._notifyObservers(t,s,c),t.skipOnPointerObservable=!0):i._lastPointerEvents[c.pointerId]&&(i.onPointerOutObservable.notifyObservers(c.pointerId),delete i._lastPointerEvents[c.pointerId])),t.type===o.a.POINTERUP&&i._pointerCaptures[c.pointerId]&&(i._pointerCaptures[c.pointerId]=!1))}}}})),this._originalPointerObserver&&e.onPrePointerObservable.makeObserverTopPriority(this._originalPointerObserver)),this.utilityLayerScene.autoClear=!1,this._afterRenderObserver=this.originalScene.onAfterCameraRenderObservable.add((function(e){i.shouldRender&&e==i.getRenderCamera()&&i.render()})),this._sceneDisposeObserver=this.originalScene.onDisposeObservable.add((function(){i.dispose()})),this._updateCamera()}return e.prototype.getRenderCamera=function(e){if(this._renderCamera)return this._renderCamera;var t=void 0;return t=this.originalScene.activeCameras&&this.originalScene.activeCameras.length>1?this.originalScene.activeCameras[this.originalScene.activeCameras.length-1]:this.originalScene.activeCamera,e&&t&&t.isRigCamera?t.rigParent:t},e.prototype.setRenderCamera=function(e){this._renderCamera=e},e.prototype._getSharedGizmoLight=function(){return this._sharedGizmoLight||(this._sharedGizmoLight=new s.a(\"shared gizmo light\",new c.e(0,1,0),this.utilityLayerScene),this._sharedGizmoLight.intensity=2,this._sharedGizmoLight.groundColor=l.a.Gray()),this._sharedGizmoLight},Object.defineProperty(e,\"DefaultUtilityLayer\",{get:function(){return null==e._DefaultUtilityLayer&&(e._DefaultUtilityLayer=new e(a.a.LastCreatedScene),e._DefaultUtilityLayer.originalScene.onDisposeObservable.addOnce((function(){e._DefaultUtilityLayer=null}))),e._DefaultUtilityLayer},enumerable:!1,configurable:!0}),Object.defineProperty(e,\"DefaultKeepDepthUtilityLayer\",{get:function(){return null==e._DefaultKeepDepthUtilityLayer&&(e._DefaultKeepDepthUtilityLayer=new e(a.a.LastCreatedScene),e._DefaultKeepDepthUtilityLayer.utilityLayerScene.autoClearDepthAndStencil=!1,e._DefaultKeepDepthUtilityLayer.originalScene.onDisposeObservable.addOnce((function(){e._DefaultKeepDepthUtilityLayer=null}))),e._DefaultKeepDepthUtilityLayer},enumerable:!1,configurable:!0}),e.prototype._notifyObservers=function(e,t,i){e.skipOnPointerObservable||(this.utilityLayerScene.onPointerObservable.notifyObservers(new o.b(e.type,e.event,t),e.type),this._lastPointerEvents[i.pointerId]=!0)},e.prototype.render=function(){if(this._updateCamera(),this.utilityLayerScene.activeCamera){var e=this.utilityLayerScene.activeCamera.getScene(),t=this.utilityLayerScene.activeCamera;t._scene=this.utilityLayerScene,t.leftCamera&&(t.leftCamera._scene=this.utilityLayerScene),t.rightCamera&&(t.rightCamera._scene=this.utilityLayerScene),this.utilityLayerScene.render(!1),t._scene=e,t.leftCamera&&(t.leftCamera._scene=e),t.rightCamera&&(t.rightCamera._scene=e)}},e.prototype.dispose=function(){this.onPointerOutObservable.clear(),this._afterRenderObserver&&this.originalScene.onAfterCameraRenderObservable.remove(this._afterRenderObserver),this._sceneDisposeObserver&&this.originalScene.onDisposeObservable.remove(this._sceneDisposeObserver),this._originalPointerObserver&&this.originalScene.onPrePointerObservable.remove(this._originalPointerObserver),this.utilityLayerScene.dispose()},e.prototype._updateCamera=function(){this.utilityLayerScene.cameraToUseForPointers=this.getRenderCamera(),this.utilityLayerScene.activeCamera=this.getRenderCamera()},e._DefaultUtilityLayer=null,e._DefaultKeepDepthUtilityLayer=null,e}()},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return r}));var n=i(139),r=function(){function e(){}return e.EnableFor=function(t){t._tags=t._tags||{},t.hasTags=function(){return e.HasTags(t)},t.addTags=function(i){return e.AddTagsTo(t,i)},t.removeTags=function(i){return e.RemoveTagsFrom(t,i)},t.matchesTagsQuery=function(i){return e.MatchesQuery(t,i)}},e.DisableFor=function(e){delete e._tags,delete e.hasTags,delete e.addTags,delete e.removeTags,delete e.matchesTagsQuery},e.HasTags=function(e){if(!e._tags)return!1;var t=e._tags;for(var i in t)if(t.hasOwnProperty(i))return!0;return!1},e.GetTags=function(e,t){if(void 0===t&&(t=!0),!e._tags)return null;if(t){var i=[];for(var n in e._tags)e._tags.hasOwnProperty(n)&&!0===e._tags[n]&&i.push(n);return i.join(\" \")}return e._tags},e.AddTagsTo=function(t,i){i&&(\"string\"==typeof i&&i.split(\" \").forEach((function(i,n,r){e._AddTagTo(t,i)})))},e._AddTagTo=function(t,i){\"\"!==(i=i.trim())&&\"true\"!==i&&\"false\"!==i&&(i.match(/[\\s]/)||i.match(/^([!]|([|]|[&]){2})/)||(e.EnableFor(t),t._tags[i]=!0))},e.RemoveTagsFrom=function(t,i){if(e.HasTags(t)){var n=i.split(\" \");for(var r in n)e._RemoveTagFrom(t,n[r])}},e._RemoveTagFrom=function(e,t){delete e._tags[t]},e.MatchesQuery=function(t,i){return void 0===i||(\"\"===i?e.HasTags(t):n.a.Eval(i,(function(i){return e.HasTags(t)&&t._tags[i]})))},e}()},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return n}));var n=function(){function e(){}return e.IsWindowObjectExist=function(){return\"undefined\"!=typeof window},e.IsNavigatorAvailable=function(){return\"undefined\"!=typeof navigator},e.IsDocumentAvailable=function(){return\"undefined\"!=typeof document},e.GetDOMTextContent=function(e){for(var t=\"\",i=e.firstChild;i;)3===i.nodeType&&(t+=i.textContent),i=i.nextSibling;return t},e}()},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return l}));var n=i(44),r=i(0),o=i(54),a=i(114),s=i(20),c=i(24),l=function(){function e(e,t,i){void 0===i&&(i=Number.MAX_VALUE),this.origin=e,this.direction=t,this.length=i}return e.prototype.intersectsBoxMinMax=function(t,i,n){void 0===n&&(n=0);var r,o,a,s,c=e._TmpVector3[0].copyFromFloats(t.x-n,t.y-n,t.z-n),l=e._TmpVector3[1].copyFromFloats(i.x+n,i.y+n,i.z+n),u=0,h=Number.MAX_VALUE;if(Math.abs(this.direction.x)<1e-7){if(this.origin.xl.x)return!1}else if(r=1/this.direction.x,o=(c.x-this.origin.x)*r,(a=(l.x-this.origin.x)*r)===-1/0&&(a=1/0),o>a&&(s=o,o=a,a=s),(u=Math.max(o,u))>(h=Math.min(a,h)))return!1;if(Math.abs(this.direction.y)<1e-7){if(this.origin.yl.y)return!1}else if(r=1/this.direction.y,o=(c.y-this.origin.y)*r,(a=(l.y-this.origin.y)*r)===-1/0&&(a=1/0),o>a&&(s=o,o=a,a=s),(u=Math.max(o,u))>(h=Math.min(a,h)))return!1;if(Math.abs(this.direction.z)<1e-7){if(this.origin.zl.z)return!1}else if(r=1/this.direction.z,o=(c.z-this.origin.z)*r,(a=(l.z-this.origin.z)*r)===-1/0&&(a=1/0),o>a&&(s=o,o=a,a=s),(u=Math.max(o,u))>(h=Math.min(a,h)))return!1;return!0},e.prototype.intersectsBox=function(e,t){return void 0===t&&(t=0),this.intersectsBoxMinMax(e.minimum,e.maximum,t)},e.prototype.intersectsSphere=function(e,t){void 0===t&&(t=0);var i=e.center.x-this.origin.x,n=e.center.y-this.origin.y,r=e.center.z-this.origin.z,o=i*i+n*n+r*r,a=e.radius+t,s=a*a;if(o<=s)return!0;var c=i*this.direction.x+n*this.direction.y+r*this.direction.z;return!(c<0)&&o-c*c<=s},e.prototype.intersectsTriangle=function(t,i,n){var o=e._TmpVector3[0],s=e._TmpVector3[1],c=e._TmpVector3[2],l=e._TmpVector3[3],u=e._TmpVector3[4];i.subtractToRef(t,o),n.subtractToRef(t,s),r.e.CrossToRef(this.direction,s,c);var h=r.e.Dot(o,c);if(0===h)return null;var d=1/h;this.origin.subtractToRef(t,l);var f=r.e.Dot(l,c)*d;if(f<0||f>1)return null;r.e.CrossToRef(l,o,u);var p=r.e.Dot(this.direction,u)*d;if(p<0||f+p>1)return null;var _=r.e.Dot(s,u)*d;return _>this.length?null:new a.a(1-f-p,f,_)},e.prototype.intersectsPlane=function(e){var t,i=r.e.Dot(e.normal,this.direction);if(Math.abs(i)<9.99999997475243e-7)return null;var n=r.e.Dot(e.normal,this.origin);return(t=(-e.d-n)/i)<0?t<-9.99999997475243e-7?null:0:t},e.prototype.intersectsAxis=function(e,t){switch(void 0===t&&(t=0),e){case\"y\":return(i=(this.origin.y-t)/this.direction.y)>0?null:new r.e(this.origin.x+this.direction.x*-i,t,this.origin.z+this.direction.z*-i);case\"x\":return(i=(this.origin.x-t)/this.direction.x)>0?null:new r.e(t,this.origin.y+this.direction.y*-i,this.origin.z+this.direction.z*-i);case\"z\":var i;return(i=(this.origin.z-t)/this.direction.z)>0?null:new r.e(this.origin.x+this.direction.x*-i,this.origin.y+this.direction.y*-i,t);default:return null}},e.prototype.intersectsMesh=function(t,i){var n=r.c.Matrix[0];return t.getWorldMatrix().invertToRef(n),this._tmpRay?e.TransformToRef(this,n,this._tmpRay):this._tmpRay=e.Transform(this,n),t.intersects(this._tmpRay,i)},e.prototype.intersectsMeshes=function(e,t,i){i?i.length=0:i=[];for(var n=0;nt.distance?1:0},e.prototype.intersectionSegment=function(t,i,n){var o=this.origin,a=r.c.Vector3[0],s=r.c.Vector3[1],c=r.c.Vector3[2],l=r.c.Vector3[3];i.subtractToRef(t,a),this.direction.scaleToRef(e.rayl,c),o.addToRef(c,s),t.subtractToRef(o,l);var u,h,d,f,p=r.e.Dot(a,a),_=r.e.Dot(a,c),m=r.e.Dot(c,c),g=r.e.Dot(a,l),v=r.e.Dot(c,l),b=p*m-_*_,y=b,T=b;by&&(h=y,f=v+_,T=m)),f<0?(f=0,-g<0?h=0:-g>p?h=y:(h=-g,y=p)):f>T&&(f=T,-g+_<0?h=0:-g+_>p?h=y:(h=-g+_,y=p)),u=Math.abs(h)0&&d<=this.length&&A.lengthSquared()=e.distance?null:l:null},s.a.prototype._internalPick=function(e,t,i,n,a){if(!o.a)return null;for(var s=null,c=0;c0&&(t.push(s-1),t.push(s)),s++}var d=new o.a;return d.indices=t,d.positions=i,r&&(d.colors=a),d},o.a.CreateDashedLines=function(e){var t,i,r=e.dashSize||3,a=e.gapSize||1,s=e.dashNb||200,c=e.points,l=new Array,u=new Array,h=n.e.Zero(),d=0,f=0,p=0,_=0,m=0;for(m=0;m0)if(\"object\"==typeof u[0])for(var d=0;dl.max||l.min>c.max)},d=function(){function e(e,t,i){this._isLocked=!1,this.boundingBox=new a.a(e,t,i),this.boundingSphere=new s.a(e,t,i)}return e.prototype.reConstruct=function(e,t,i){this.boundingBox.reConstruct(e,t,i),this.boundingSphere.reConstruct(e,t,i)},Object.defineProperty(e.prototype,\"minimum\",{get:function(){return this.boundingBox.minimum},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"maximum\",{get:function(){return this.boundingBox.maximum},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"isLocked\",{get:function(){return this._isLocked},set:function(e){this._isLocked=e},enumerable:!1,configurable:!0}),e.prototype.update=function(e){this._isLocked||(this.boundingBox._update(e),this.boundingSphere._update(e))},e.prototype.centerOn=function(t,i){var n=e.TmpVector3[0].copyFrom(t).subtractInPlace(i),r=e.TmpVector3[1].copyFrom(t).addInPlace(i);return this.boundingBox.reConstruct(n,r,this.boundingBox.getWorldMatrix()),this.boundingSphere.reConstruct(n,r,this.boundingBox.getWorldMatrix()),this},e.prototype.scale=function(e){return this.boundingBox.scale(e),this.boundingSphere.scale(e),this},e.prototype.isInFrustum=function(e,t){return void 0===t&&(t=o.a.MESHES_CULLINGSTRATEGY_STANDARD),!(t!==o.a.MESHES_CULLINGSTRATEGY_OPTIMISTIC_INCLUSION&&t!==o.a.MESHES_CULLINGSTRATEGY_OPTIMISTIC_INCLUSION_THEN_BSPHERE_ONLY||!this.boundingSphere.isCenterInFrustum(e))||!!this.boundingSphere.isInFrustum(e)&&(!(t!==o.a.MESHES_CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY&&t!==o.a.MESHES_CULLINGSTRATEGY_OPTIMISTIC_INCLUSION_THEN_BSPHERE_ONLY)||this.boundingBox.isInFrustum(e))},Object.defineProperty(e.prototype,\"diagonalLength\",{get:function(){var t=this.boundingBox;return t.maximumWorld.subtractToRef(t.minimumWorld,e.TmpVector3[0]).length()},enumerable:!1,configurable:!0}),e.prototype.isCompletelyInFrustum=function(e){return this.boundingBox.isCompletelyInFrustum(e)},e.prototype._checkCollision=function(e){return e._canDoCollision(this.boundingSphere.centerWorld,this.boundingSphere.radiusWorld,this.boundingBox.minimumWorld,this.boundingBox.maximumWorld)},e.prototype.intersectsPoint=function(e){return!!this.boundingSphere.centerWorld&&(!!this.boundingSphere.intersectsPoint(e)&&!!this.boundingBox.intersectsPoint(e))},e.prototype.intersects=function(e,t){if(!s.a.Intersects(this.boundingSphere,e.boundingSphere))return!1;if(!a.a.Intersects(this.boundingBox,e.boundingBox))return!1;if(!t)return!0;var i=this.boundingBox,n=e.boundingBox;return!!h(i.directions[0],i,n)&&(!!h(i.directions[1],i,n)&&(!!h(i.directions[2],i,n)&&(!!h(n.directions[0],i,n)&&(!!h(n.directions[1],i,n)&&(!!h(n.directions[2],i,n)&&(!!h(r.e.Cross(i.directions[0],n.directions[0]),i,n)&&(!!h(r.e.Cross(i.directions[0],n.directions[1]),i,n)&&(!!h(r.e.Cross(i.directions[0],n.directions[2]),i,n)&&(!!h(r.e.Cross(i.directions[1],n.directions[0]),i,n)&&(!!h(r.e.Cross(i.directions[1],n.directions[1]),i,n)&&(!!h(r.e.Cross(i.directions[1],n.directions[2]),i,n)&&(!!h(r.e.Cross(i.directions[2],n.directions[0]),i,n)&&(!!h(r.e.Cross(i.directions[2],n.directions[1]),i,n)&&!!h(r.e.Cross(i.directions[2],n.directions[2]),i,n))))))))))))))},e.TmpVector3=n.a.BuildArray(2,r.e.Zero),e}()},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return n}));var n=function(){function e(){}return e.BuildArray=function(e,t){for(var i=[],n=0;n1)?1:e.arc||1,c=e.slice&&e.slice<=0?1:e.slice||1,l=0===e.sideOrientation?0:e.sideOrientation||o.a.DEFAULTSIDE,u=!!e.dedupTopBottomIndices,h=new n.e(i/2,r/2,a/2),d=2+t,f=2*d,p=[],_=[],m=[],g=[],v=0;v<=d;v++){for(var b=v/d,y=b*Math.PI*c,T=0;T<=f;T++){var E=T/f,S=E*Math.PI*2*s,A=n.a.RotationZ(-y),P=n.a.RotationY(S),C=n.e.TransformCoordinates(n.e.Up(),A),R=n.e.TransformCoordinates(C,P),x=R.multiply(h),O=R.divide(h).normalize();_.push(x.x,x.y,x.z),m.push(O.x,O.y,O.z),g.push(E,b)}if(v>0)for(var M=_.length/3,I=M-2*(f+1);I+f+21&&(p.push(I),p.push(I+1),p.push(I+f+1)),(v0&&-1===this.includedOnlyMeshes.indexOf(e))&&(!(this.excludedMeshes&&this.excludedMeshes.length>0&&-1!==this.excludedMeshes.indexOf(e))&&((0===this.includeOnlyWithLayerMask||0!=(this.includeOnlyWithLayerMask&e.layerMask))&&!(0!==this.excludeWithLayerMask&&this.excludeWithLayerMask&e.layerMask)))},t.CompareLightsPriority=function(e,t){return e.shadowEnabled!==t.shadowEnabled?(t.shadowEnabled?1:0)-(e.shadowEnabled?1:0):t.renderPriority-e.renderPriority},t.prototype.dispose=function(t,i){void 0===i&&(i=!1),this._shadowGenerator&&(this._shadowGenerator.dispose(),this._shadowGenerator=null),this.getScene().stopAnimation(this);for(var n=0,r=this.getScene().meshes;n0&&(e.excludedMeshesIds=[],this.excludedMeshes.forEach((function(t){e.excludedMeshesIds.push(t.id)}))),this.includedOnlyMeshes.length>0&&(e.includedOnlyMeshesIds=[],this.includedOnlyMeshes.forEach((function(t){e.includedOnlyMeshesIds.push(t.id)}))),r.a.AppendSerializedAnimations(this,e),e.ranges=this.serializeAnimationRanges(),e},t.GetConstructorFromName=function(e,t,i){var n=s.a.Construct(\"Light_Type_\"+e,t,i);return n||null},t.Parse=function(e,i){var n=t.GetConstructorFromName(e.type,e.name,i);if(!n)return null;var o=r.a.Parse(n,e,i);if(e.excludedMeshesIds&&(o._excludedMeshesIds=e.excludedMeshesIds),e.includedOnlyMeshesIds&&(o._includedOnlyMeshesIds=e.includedOnlyMeshesIds),e.parentId&&(o._waitingParentId=e.parentId),void 0!==e.falloffType&&(o.falloffType=e.falloffType),void 0!==e.lightmapMode&&(o.lightmapMode=e.lightmapMode),e.animations){for(var a=0;a=0&&this._scene.textures.splice(t,1),this._scene.onTextureRemovedObservable.notifyObservers(this),this._scene=null}this.onDisposeObservable.notifyObservers(this),this.onDisposeObservable.clear(),e.prototype.dispose.call(this)},t.prototype.serialize=function(){if(!this.name)return null;var e=r.a.Serialize(this);return r.a.AppendSerializedAnimations(this,e),e},t.WhenAllReady=function(e,t){var i=e.length;if(0!==i)for(var n=0;n1)?1:e.arc||1,m=0===e.sideOrientation?0:e.sideOrientation||a.a.DEFAULTSIDE,g=e.faceUV||new Array(3),v=e.faceColors,b=2+(1+(1!==_&&f?2:0))*(d?h:1);for(l=0;l1e3&&(this._lastSecAverage=this._lastSecAccumulated/this._lastSecValueCount,this._lastSecTime=e,this._lastSecAccumulated=0,this._lastSecValueCount=0)},e.Enabled=!0,e}()},function(e,t,i){\"use strict\";i.d(t,\"b\",(function(){return f})),i.d(t,\"d\",(function(){return p})),i.d(t,\"c\",(function(){return _})),i.d(t,\"a\",(function(){return m}));var n=i(1),r=i(49),o=i(38),a=i(6),s=i(83),c=i(140),l=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(n.d)(t,e),t._setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},t}(Error),u=i(34),h=i(26),d=i(128),f=function(e){function t(i,n){var o=e.call(this,i)||this;return o.name=\"LoadFileError\",l._setPrototypeOf(o,t.prototype),n instanceof r.a?o.request=n:o.file=n,o}return Object(n.d)(t,e),t}(l),p=function(e){function t(i,n){var r=e.call(this,i)||this;return r.request=n,r.name=\"RequestFileError\",l._setPrototypeOf(r,t.prototype),r}return Object(n.d)(t,e),t}(l),_=function(e){function t(i,n){var r=e.call(this,i)||this;return r.file=n,r.name=\"ReadFileError\",l._setPrototypeOf(r,t.prototype),r}return Object(n.d)(t,e),t}(l),m=function(){function e(){}return e._CleanUrl=function(e){return e=e.replace(/#/gm,\"%23\")},e.SetCorsBehavior=function(t,i){if((!t||0!==t.indexOf(\"data:\"))&&e.CorsBehavior)if(\"string\"==typeof e.CorsBehavior||this.CorsBehavior instanceof String)i.crossOrigin=e.CorsBehavior;else{var n=e.CorsBehavior(t);n&&(i.crossOrigin=n)}},e.LoadImage=function(t,i,n,r,o){var a;void 0===o&&(o=\"\");var c=!1;if(t instanceof ArrayBuffer||ArrayBuffer.isView(t)?\"undefined\"!=typeof Blob?(a=URL.createObjectURL(new Blob([t],{type:o})),c=!0):a=\"data:\"+o+\";base64,\"+u.a.EncodeArrayBufferToBase64(t):t instanceof Blob?(a=URL.createObjectURL(t),c=!0):(a=e._CleanUrl(t),a=e.PreprocessUrl(t)),\"undefined\"==typeof Image)return e.LoadFile(a,(function(e){createImageBitmap(new Blob([e],{type:o})).then((function(e){i(e),c&&URL.revokeObjectURL(a)})).catch((function(e){n&&n(\"Error while trying to load image: \"+t,e)}))}),void 0,r||void 0,!0,(function(e,i){n&&n(\"Error while trying to load image: \"+t,i)})),null;var l=new Image;e.SetCorsBehavior(a,l);var h=function(){l.removeEventListener(\"load\",h),l.removeEventListener(\"error\",d),i(l),c&&l.src&&URL.revokeObjectURL(l.src)},d=function(e){if(l.removeEventListener(\"load\",h),l.removeEventListener(\"error\",d),n){var i=t.toString();n(\"Error while trying to load image: \"+(i.length<32?i:i.slice(0,32)+\"...\"),e)}c&&l.src&&URL.revokeObjectURL(l.src)};l.addEventListener(\"load\",h),l.addEventListener(\"error\",d);var f=function(){l.src=a};if(\"data:\"!==a.substr(0,5)&&r&&r.enableTexturesOffline)r.open((function(){r&&r.loadImage(a,l)}),f);else{if(-1!==a.indexOf(\"file:\")){var p=decodeURIComponent(a.substring(5).toLowerCase());if(s.a.FilesToLoad[p]){try{var _;try{_=URL.createObjectURL(s.a.FilesToLoad[p])}catch(e){_=URL.createObjectURL(s.a.FilesToLoad[p])}l.src=_,c=!0}catch(e){l.src=\"\"}return l}}f()}return l},e.ReadFile=function(e,t,i,n,r){var o=new FileReader,s={onCompleteObservable:new a.c,abort:function(){return o.abort()}};return o.onloadend=function(e){return s.onCompleteObservable.notifyObservers(s)},r&&(o.onerror=function(t){r(new _(\"Unable to read \"+e.name,e))}),o.onload=function(e){t(e.target.result)},i&&(o.onprogress=i),n?o.readAsArrayBuffer(e):o.readAsText(e),s},e.LoadFile=function(t,i,n,r,o,a){if(-1!==t.indexOf(\"file:\")){var c=decodeURIComponent(t.substring(5).toLowerCase());0===c.indexOf(\"./\")&&(c=c.substring(2));var l=s.a.FilesToLoad[c];if(l)return e.ReadFile(l,i,n,o,a?function(e){return a(void 0,new f(e.message,e.file))}:void 0)}return e.RequestFile(t,(function(e,t){i(e,t?t.responseURL:void 0)}),n,r,o,a?function(e){a(e.request,new f(e.message,e.request))}:void 0)},e.RequestFile=function(t,i,n,s,c,l,u){t=e._CleanUrl(t),t=e.PreprocessUrl(t);var h=e.BaseUrl+t,d=!1,f={onCompleteObservable:new a.c,abort:function(){return d=!0}},_=function(){var t=new r.a,a=null;f.abort=function(){d=!0,t.readyState!==(XMLHttpRequest.DONE||4)&&t.abort(),null!==a&&(clearTimeout(a),a=null)};var s=function(_){t.open(\"GET\",h),u&&u(t),c&&(t.responseType=\"arraybuffer\"),n&&t.addEventListener(\"progress\",n);var m=function(){t.removeEventListener(\"loadend\",m),f.onCompleteObservable.notifyObservers(f),f.onCompleteObservable.clear()};t.addEventListener(\"loadend\",m);var g=function(){if(!d&&t.readyState===(XMLHttpRequest.DONE||4)){if(t.removeEventListener(\"readystatechange\",g),t.status>=200&&t.status<300||0===t.status&&(!o.a.IsWindowObjectExist()||e.IsFileURL()))return void i(c?t.response:t.responseText,t);var n=e.DefaultRetryStrategy;if(n){var u=n(h,t,_);if(-1!==u)return t.removeEventListener(\"loadend\",m),t=new r.a,void(a=setTimeout((function(){return s(_+1)}),u))}var f=new p(\"Error status: \"+t.status+\" \"+t.statusText+\" - Unable to load \"+h,t);l&&l(f)}};t.addEventListener(\"readystatechange\",g),t.send()};s(0)};if(s&&s.enableSceneOffline){var m=function(e){e&&e.status>400?l&&l(e):_()};s.open((function(){s&&s.loadFile(e.BaseUrl+t,(function(e){d||i(e),f.onCompleteObservable.notifyObservers(f)}),n?function(e){d||n(e)}:void 0,m,c)}),m)}else _();return f},e.IsFileURL=function(){return\"undefined\"!=typeof location&&\"file:\"===location.protocol},e.DefaultRetryStrategy=c.a.ExponentialBackoff(),e.BaseUrl=\"\",e.CorsBehavior=\"anonymous\",e.PreprocessUrl=function(e){return e},e}();h.a._FileToolsLoadImage=m.LoadImage.bind(m),h.a._FileToolsLoadFile=m.LoadFile.bind(m),d.a._FileToolsLoadFile=m.LoadFile.bind(m)},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return r}));var n=i(38),r=function(){function e(){}return Object.defineProperty(e,\"Now\",{get:function(){return n.a.IsWindowObjectExist()&&window.performance&&window.performance.now?window.performance.now():Date.now()},enumerable:!1,configurable:!0}),e}()},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return n}));var n=function(){function e(e,t,i,n){this.x=e,this.y=t,this.width=i,this.height=n}return e.prototype.toGlobal=function(t,i){return new e(this.x*t,this.y*i,this.width*t,this.height*i)},e.prototype.toGlobalToRef=function(e,t,i){return i.x=this.x*e,i.y=this.y*t,i.width=this.width*e,i.height=this.height*t,this},e.prototype.clone=function(){return new e(this.x,this.y,this.width,this.height)},e}()},function(e,t,i){\"use strict\";var n=\"helperFunctions\",r=\"const float PI=3.1415926535897932384626433832795;\\nconst float HALF_MIN=5.96046448e-08;\\nconst float LinearEncodePowerApprox=2.2;\\nconst float GammaEncodePowerApprox=1.0/LinearEncodePowerApprox;\\nconst vec3 LuminanceEncodeApprox=vec3(0.2126,0.7152,0.0722);\\nconst float Epsilon=0.0000001;\\n#define saturate(x) clamp(x,0.0,1.0)\\n#define absEps(x) abs(x)+Epsilon\\n#define maxEps(x) max(x,Epsilon)\\n#define saturateEps(x) clamp(x,Epsilon,1.0)\\nmat3 transposeMat3(mat3 inMatrix) {\\nvec3 i0=inMatrix[0];\\nvec3 i1=inMatrix[1];\\nvec3 i2=inMatrix[2];\\nmat3 outMatrix=mat3(\\nvec3(i0.x,i1.x,i2.x),\\nvec3(i0.y,i1.y,i2.y),\\nvec3(i0.z,i1.z,i2.z)\\n);\\nreturn outMatrix;\\n}\\n\\nmat3 inverseMat3(mat3 inMatrix) {\\nfloat a00=inMatrix[0][0],a01=inMatrix[0][1],a02=inMatrix[0][2];\\nfloat a10=inMatrix[1][0],a11=inMatrix[1][1],a12=inMatrix[1][2];\\nfloat a20=inMatrix[2][0],a21=inMatrix[2][1],a22=inMatrix[2][2];\\nfloat b01=a22*a11-a12*a21;\\nfloat b11=-a22*a10+a12*a20;\\nfloat b21=a21*a10-a11*a20;\\nfloat det=a00*b01+a01*b11+a02*b21;\\nreturn mat3(b01,(-a22*a01+a02*a21),(a12*a01-a02*a11),\\nb11,(a22*a00-a02*a20),(-a12*a00+a02*a10),\\nb21,(-a21*a00+a01*a20),(a11*a00-a01*a10))/det;\\n}\\nfloat toLinearSpace(float color)\\n{\\nreturn pow(color,LinearEncodePowerApprox);\\n}\\nvec3 toLinearSpace(vec3 color)\\n{\\nreturn pow(color,vec3(LinearEncodePowerApprox));\\n}\\nvec4 toLinearSpace(vec4 color)\\n{\\nreturn vec4(pow(color.rgb,vec3(LinearEncodePowerApprox)),color.a);\\n}\\nvec3 toGammaSpace(vec3 color)\\n{\\nreturn pow(color,vec3(GammaEncodePowerApprox));\\n}\\nvec4 toGammaSpace(vec4 color)\\n{\\nreturn vec4(pow(color.rgb,vec3(GammaEncodePowerApprox)),color.a);\\n}\\nfloat toGammaSpace(float color)\\n{\\nreturn pow(color,GammaEncodePowerApprox);\\n}\\nfloat square(float value)\\n{\\nreturn value*value;\\n}\\nfloat pow5(float value) {\\nfloat sq=value*value;\\nreturn sq*sq*value;\\n}\\nfloat getLuminance(vec3 color)\\n{\\nreturn clamp(dot(color,LuminanceEncodeApprox),0.,1.);\\n}\\n\\nfloat getRand(vec2 seed) {\\nreturn fract(sin(dot(seed.xy ,vec2(12.9898,78.233)))*43758.5453);\\n}\\nfloat dither(vec2 seed,float varianceAmount) {\\nfloat rand=getRand(seed);\\nfloat dither=mix(-varianceAmount/255.0,varianceAmount/255.0,rand);\\nreturn dither;\\n}\\n\\nconst float rgbdMaxRange=255.0;\\nvec4 toRGBD(vec3 color) {\\nfloat maxRGB=maxEps(max(color.r,max(color.g,color.b)));\\nfloat D=max(rgbdMaxRange/maxRGB,1.);\\nD=clamp(floor(D)/255.0,0.,1.);\\n\\nvec3 rgb=color.rgb*D;\\n\\nrgb=toGammaSpace(rgb);\\nreturn vec4(rgb,D);\\n}\\nvec3 fromRGBD(vec4 rgbd) {\\n\\nrgbd.rgb=toLinearSpace(rgbd.rgb);\\n\\nreturn rgbd.rgb/rgbd.a;\\n}\\n\";i(5).a.IncludesShadersStore[n]=r},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return r}));var n=i(0),r=function(){function e(){}return e._RemoveAndStorePivotPoint=function(t){t&&0===e._PivotCached&&(t.getPivotPointToRef(e._OldPivotPoint),e._PivotPostMultiplyPivotMatrix=t._postMultiplyPivotMatrix,e._OldPivotPoint.equalsToFloats(0,0,0)||(t.setPivotMatrix(n.a.IdentityReadOnly),e._OldPivotPoint.subtractToRef(t.getPivotPoint(),e._PivotTranslation),e._PivotTmpVector.copyFromFloats(1,1,1),e._PivotTmpVector.subtractInPlace(t.scaling),e._PivotTmpVector.multiplyInPlace(e._PivotTranslation),t.position.addInPlace(e._PivotTmpVector))),e._PivotCached++},e._RestorePivotPoint=function(t){t&&!e._OldPivotPoint.equalsToFloats(0,0,0)&&1===e._PivotCached&&(t.setPivotPoint(e._OldPivotPoint),t._postMultiplyPivotMatrix=e._PivotPostMultiplyPivotMatrix,e._PivotTmpVector.copyFromFloats(1,1,1),e._PivotTmpVector.subtractInPlace(t.scaling),e._PivotTmpVector.multiplyInPlace(e._PivotTranslation),t.position.subtractInPlace(e._PivotTmpVector)),this._PivotCached--},e._PivotCached=0,e._OldPivotPoint=new n.e,e._PivotTranslation=new n.e,e._PivotTmpVector=new n.e,e._PivotPostMultiplyPivotMatrix=!1,e}()},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return c}));var n=i(4),r=i(114),o=i(43),a=i(2),s=i(101),c=function(){function e(e,t,i,n,r,o,a,s,c){void 0===s&&(s=!0),void 0===c&&(c=!0),this.materialIndex=e,this.verticesStart=t,this.verticesCount=i,this.indexStart=n,this.indexCount=r,this._materialDefines=null,this._materialEffect=null,this._effectOverride=null,this._linesIndexCount=0,this._linesIndexBuffer=null,this._lastColliderWorldVertices=null,this._lastColliderTransformMatrix=null,this._renderId=0,this._alphaIndex=0,this._distanceToCamera=0,this._currentMaterial=null,this._mesh=o,this._renderingMesh=a||o,c&&o.subMeshes.push(this),this._trianglePlanes=[],this._id=o.subMeshes.length-1,s&&(this.refreshBoundingInfo(),o.computeWorldMatrix(!0))}return Object.defineProperty(e.prototype,\"materialDefines\",{get:function(){return this._materialDefines},set:function(e){this._materialDefines=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"effect\",{get:function(){var e;return null!==(e=this._effectOverride)&&void 0!==e?e:this._materialEffect},enumerable:!1,configurable:!0}),e.prototype.setEffect=function(e,t){void 0===t&&(t=null),this._materialEffect!==e?(this._materialDefines=t,this._materialEffect=e):e||(this._materialDefines=null)},e.AddToMesh=function(t,i,n,r,o,a,s,c){return void 0===c&&(c=!0),new e(t,i,n,r,o,a,s,c)},Object.defineProperty(e.prototype,\"IsGlobal\",{get:function(){return 0===this.verticesStart&&this.verticesCount===this._mesh.getTotalVertices()},enumerable:!1,configurable:!0}),e.prototype.getBoundingInfo=function(){return this.IsGlobal?this._mesh.getBoundingInfo():this._boundingInfo},e.prototype.setBoundingInfo=function(e){return this._boundingInfo=e,this},e.prototype.getMesh=function(){return this._mesh},e.prototype.getRenderingMesh=function(){return this._renderingMesh},e.prototype.getReplacementMesh=function(){return this._mesh._internalAbstractMeshDataInfo._actAsRegularMesh?this._mesh:null},e.prototype.getEffectiveMesh=function(){var e=this._mesh._internalAbstractMeshDataInfo._actAsRegularMesh?this._mesh:null;return e||this._renderingMesh},e.prototype.getMaterial=function(){var e=this._renderingMesh.material;if(null==e)return this._mesh.getScene().defaultMaterial;if(this._IsMultiMaterial(e)){var t=e.getSubMaterial(this.materialIndex);return this._currentMaterial!==t&&(this._currentMaterial=t,this._materialDefines=null),t}return e},e.prototype._IsMultiMaterial=function(e){return void 0!==e.getSubMaterial},e.prototype.refreshBoundingInfo=function(e){if(void 0===e&&(e=null),this._lastColliderWorldVertices=null,this.IsGlobal||!this._renderingMesh||!this._renderingMesh.geometry)return this;if(e||(e=this._renderingMesh.getVerticesData(n.b.PositionKind)),!e)return this._boundingInfo=this._mesh.getBoundingInfo(),this;var t,i=this._renderingMesh.getIndices();if(0===this.indexStart&&this.indexCount===i.length){var r=this._renderingMesh.getBoundingInfo();t={minimum:r.minimum.clone(),maximum:r.maximum.clone()}}else t=Object(s.b)(e,i,this.indexStart,this.indexCount,this._renderingMesh.geometry.boundingBias);return this._boundingInfo?this._boundingInfo.reConstruct(t.minimum,t.maximum):this._boundingInfo=new o.a(t.minimum,t.maximum),this},e.prototype._checkCollision=function(e){return this.getBoundingInfo()._checkCollision(e)},e.prototype.updateBoundingInfo=function(e){var t=this.getBoundingInfo();return t||(this.refreshBoundingInfo(),t=this.getBoundingInfo()),t&&t.update(e),this},e.prototype.isInFrustum=function(e){var t=this.getBoundingInfo();return!!t&&t.isInFrustum(e,this._mesh.cullingStrategy)},e.prototype.isCompletelyInFrustum=function(e){var t=this.getBoundingInfo();return!!t&&t.isCompletelyInFrustum(e)},e.prototype.render=function(e){return this._renderingMesh.render(this,e,this._mesh._internalAbstractMeshDataInfo._actAsRegularMesh?this._mesh:void 0),this},e.prototype._getLinesIndexBuffer=function(e,t){if(!this._linesIndexBuffer){for(var i=[],n=this.indexStart;ns&&(s=u)}return new e(t,a,s-a+1,i,n,r,o)},e}()},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return c}));var n=i(1),r=i(8),o=i(10),a=i(2),s=(i(126),i(70)),c=function(e){function t(t,i,n,r,c,l,u){void 0===n&&(n=null),void 0===c&&(c=a.a.TEXTURE_TRILINEAR_SAMPLINGMODE),void 0===l&&(l=a.a.TEXTUREFORMAT_RGBA);var h=e.call(this,null,n,!r,u,c,void 0,void 0,void 0,void 0,l)||this;h.name=t,h.wrapU=o.a.CLAMP_ADDRESSMODE,h.wrapV=o.a.CLAMP_ADDRESSMODE,h._generateMipMaps=r;var d=h._getEngine();if(!d)return h;i.getContext?(h._canvas=i,h._texture=d.createDynamicTexture(i.width,i.height,r,c)):(h._canvas=s.a.CreateCanvas(1,1),i.width||0===i.width?h._texture=d.createDynamicTexture(i.width,i.height,r,c):h._texture=d.createDynamicTexture(i,i,r,c));var f=h.getSize();return h._canvas.width=f.width,h._canvas.height=f.height,h._context=h._canvas.getContext(\"2d\"),h}return Object(n.d)(t,e),t.prototype.getClassName=function(){return\"DynamicTexture\"},Object.defineProperty(t.prototype,\"canRescale\",{get:function(){return!0},enumerable:!1,configurable:!0}),t.prototype._recreate=function(e){this._canvas.width=e.width,this._canvas.height=e.height,this.releaseInternalTexture(),this._texture=this._getEngine().createDynamicTexture(e.width,e.height,this._generateMipMaps,this.samplingMode)},t.prototype.scale=function(e){var t=this.getSize();t.width*=e,t.height*=e,this._recreate(t)},t.prototype.scaleTo=function(e,t){var i=this.getSize();i.width=e,i.height=t,this._recreate(i)},t.prototype.getContext=function(){return this._context},t.prototype.clear=function(){var e=this.getSize();this._context.fillRect(0,0,e.width,e.height)},t.prototype.update=function(e,t){void 0===t&&(t=!1),this._getEngine().updateDynamicTexture(this._texture,this._canvas,void 0===e||e,t,this._format||void 0)},t.prototype.drawText=function(e,t,i,n,r,o,a,s){void 0===s&&(s=!0);var c=this.getSize();if(o&&(this._context.fillStyle=o,this._context.fillRect(0,0,c.width,c.height)),this._context.font=n,null==t){var l=this._context.measureText(e);t=(c.width-l.width)/2}if(null==i){var u=parseInt(n.replace(/\\D/g,\"\"));i=c.height/2+u/3.65}this._context.fillStyle=r||\"\",this._context.fillText(e,t,i),s&&this.update(a)},t.prototype.clone=function(){var e=this.getScene();if(!e)return this;var i=this.getSize(),n=new t(this.name,i,e,this._generateMipMaps);return n.hasAlpha=this.hasAlpha,n.level=this.level,n.wrapU=this.wrapU,n.wrapV=this.wrapV,n},t.prototype.serialize=function(){var t=this.getScene();t&&!t.isReady()&&r.a.Warn(\"The scene must be ready before serializing the dynamic texture\");var i=e.prototype.serialize.call(this);return this._IsCanvasElement(this._canvas)&&(i.base64String=this._canvas.toDataURL()),i.invertY=this._invertY,i.samplingMode=this.samplingMode,i},t.prototype._IsCanvasElement=function(e){return void 0!==e.toDataURL},t.prototype._rebuild=function(){this.update()},t}(o.a)},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return s}));var n=i(0),r=i(9),o=i(7),a=i(16);a.a.CreateBox=function(e){var t,i=[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],o=[0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,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],s=[],c=e.width||e.size||1,l=e.height||e.size||1,u=e.depth||e.size||1,h=e.wrap||!1,d=void 0===e.topBaseAt?1:e.topBaseAt,f=void 0===e.bottomBaseAt?0:e.bottomBaseAt,p=[2,0,3,1][d=(d+4)%4],_=[2,0,1,3][f=(f+4)%4],m=[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];if(h){i=[2,3,0,2,0,1,4,5,6,4,6,7,9,10,11,9,11,8,12,14,15,12,13,14],m=[-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];for(var g=[[1,1,1],[-1,1,1],[-1,1,-1],[1,1,-1]],v=[[-1,-1,1],[1,-1,1],[1,-1,-1],[-1,-1,-1]],b=[17,18,19,16],y=[22,23,20,21];p>0;)g.unshift(g.pop()),b.unshift(b.pop()),p--;for(;_>0;)v.unshift(v.pop()),y.unshift(y.pop()),_--;g=g.flat(),v=v.flat(),m=m.concat(g).concat(v),i.push(b[0],b[2],b[3],b[0],b[1],b[2]),i.push(y[0],y[2],y[3],y[0],y[1],y[2])}var T=[c/2,l/2,u/2];t=m.reduce((function(e,t,i){return e.concat(t*T[i%3])}),[]);for(var E=0===e.sideOrientation?0:e.sideOrientation||a.a.DEFAULTSIDE,S=e.faceUV||new Array(6),A=e.faceColors,P=[],C=0;C<6;C++)void 0===S[C]&&(S[C]=new n.f(0,0,1,1)),A&&void 0===A[C]&&(A[C]=new r.b(1,1,1,1));for(var R=0;R<6;R++)if(s.push(S[R].z,S[R].w),s.push(S[R].x,S[R].w),s.push(S[R].x,S[R].y),s.push(S[R].z,S[R].y),A)for(var x=0;x<4;x++)P.push(A[R].r,A[R].g,A[R].b,A[R].a);a.a._ComputeSides(E,t,i,o,s,e.frontUVs,e.backUVs);var O=new a.a;if(O.indices=i,O.positions=t,O.normals=o,O.uvs=s,A){var M=E===a.a.DOUBLESIDE?P.concat(P):P;O.colors=M}return O},o.a.CreateBox=function(e,t,i,n,r){void 0===i&&(i=null);var o={size:t,sideOrientation:r,updatable:n};return s.CreateBox(e,o,i)};var s=function(){function e(){}return e.CreateBox=function(e,t,i){void 0===i&&(i=null);var n=new o.a(e,i);return t.sideOrientation=o.a._GetDefaultSideOrientation(t.sideOrientation),n._originalBuilderSideOrientation=t.sideOrientation,a.a.CreateBox(t).applyToMesh(n,t.updatable),n},e}()},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return r}));var n=i(0),r=function(){function e(e,t,i,r){this.normal=new n.e(e,t,i),this.d=r}return e.prototype.asArray=function(){return[this.normal.x,this.normal.y,this.normal.z,this.d]},e.prototype.clone=function(){return new e(this.normal.x,this.normal.y,this.normal.z,this.d)},e.prototype.getClassName=function(){return\"Plane\"},e.prototype.getHashCode=function(){var e=this.normal.getHashCode();return e=397*e^(0|this.d)},e.prototype.normalize=function(){var e=Math.sqrt(this.normal.x*this.normal.x+this.normal.y*this.normal.y+this.normal.z*this.normal.z),t=0;return 0!==e&&(t=1/e),this.normal.x*=t,this.normal.y*=t,this.normal.z*=t,this.d*=t,this},e.prototype.transform=function(t){var i=e._TmpMatrix;t.invertToRef(i);var n=i.m,r=this.normal.x,o=this.normal.y,a=this.normal.z,s=this.d;return new e(r*n[0]+o*n[1]+a*n[2]+s*n[3],r*n[4]+o*n[5]+a*n[6]+s*n[7],r*n[8]+o*n[9]+a*n[10]+s*n[11],r*n[12]+o*n[13]+a*n[14]+s*n[15])},e.prototype.dotCoordinate=function(e){return this.normal.x*e.x+this.normal.y*e.y+this.normal.z*e.z+this.d},e.prototype.copyFromPoints=function(e,t,i){var n,r=t.x-e.x,o=t.y-e.y,a=t.z-e.z,s=i.x-e.x,c=i.y-e.y,l=i.z-e.z,u=o*l-a*c,h=a*s-r*l,d=r*c-o*s,f=Math.sqrt(u*u+h*h+d*d);return n=0!==f?1/f:0,this.normal.x=u*n,this.normal.y=h*n,this.normal.z=d*n,this.d=-(this.normal.x*e.x+this.normal.y*e.y+this.normal.z*e.z),this},e.prototype.isFrontFacingTo=function(e,t){return n.e.Dot(this.normal,e)<=t},e.prototype.signedDistanceTo=function(e){return n.e.Dot(e,this.normal)+this.d},e.FromArray=function(t){return new e(t[0],t[1],t[2],t[3])},e.FromPoints=function(t,i,n){var r=new e(0,0,0,0);return r.copyFromPoints(t,i,n),r},e.FromPositionAndNormal=function(t,i){var n=new e(0,0,0,0);return i.normalize(),n.normal=i,n.d=-(i.x*t.x+i.y*t.y+i.z*t.z),n},e.SignedDistanceToPlaneFromPositionAndNormal=function(e,t,i){var r=-(t.x*e.x+t.y*e.y+t.z*e.z);return n.e.Dot(i,t)+r},e._TmpMatrix=n.a.Identity(),e}()},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return u}));var n=i(7),r=i(20),o=i(6),a=i(0),s=i(18),c=i(39),l=i(60),u=(i(84),function(){function e(e){this._useAlternatePickedPointAboveMaxDragAngleDragSpeed=-1.1,this.maxDragAngle=0,this._useAlternatePickedPointAboveMaxDragAngle=!1,this.currentDraggingPointerID=-1,this.dragging=!1,this.dragDeltaRatio=.2,this.updateDragPlane=!0,this._debugMode=!1,this._moving=!1,this.onDragObservable=new o.c,this.onDragStartObservable=new o.c,this.onDragEndObservable=new o.c,this.moveAttached=!0,this.enabled=!0,this.startAndReleaseDragOnPointerEvents=!0,this.detachCameraControls=!0,this.useObjectOrientationForDragging=!0,this.validateDrag=function(e){return!0},this._tmpVector=new a.e(0,0,0),this._alternatePickedPoint=new a.e(0,0,0),this._worldDragAxis=new a.e(0,0,0),this._targetPosition=new a.e(0,0,0),this._attachedToElement=!1,this._startDragRay=new c.a(new a.e,new a.e),this._lastPointerRay={},this._dragDelta=new a.e,this._pointA=new a.e(0,0,0),this._pointC=new a.e(0,0,0),this._localAxis=new a.e(0,0,0),this._lookAt=new a.e(0,0,0),this._options=e||{};var t=0;if(this._options.dragAxis&&t++,this._options.dragPlaneNormal&&t++,t>1)throw\"Multiple drag modes specified in dragBehavior options. Only one expected\"}return Object.defineProperty(e.prototype,\"options\",{get:function(){return this._options},set:function(e){this._options=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"name\",{get:function(){return\"PointerDrag\"},enumerable:!1,configurable:!0}),e.prototype.init=function(){},e.prototype.attach=function(t,i){var o=this;this._scene=t.getScene(),this.attachedNode=t,e._planeScene||(this._debugMode?e._planeScene=this._scene:(e._planeScene=new r.a(this._scene.getEngine(),{virtual:!0}),e._planeScene.detachControl(),this._scene.onDisposeObservable.addOnce((function(){e._planeScene.dispose(),e._planeScene=null})))),this._dragPlane=n.a.CreatePlane(\"pointerDragPlane\",this._debugMode?1:1e4,e._planeScene,!1,n.a.DOUBLESIDE),this.lastDragPosition=new a.e(0,0,0);var u=i||function(e){return o.attachedNode==e||e.isDescendantOf(o.attachedNode)};this._pointerObserver=this._scene.onPointerObservable.add((function(t,i){if(o.enabled)if(t.type==s.a.POINTERDOWN)o.startAndReleaseDragOnPointerEvents&&!o.dragging&&t.pickInfo&&t.pickInfo.hit&&t.pickInfo.pickedMesh&&t.pickInfo.pickedPoint&&t.pickInfo.ray&&u(t.pickInfo.pickedMesh)&&o._startDrag(t.event.pointerId,t.pickInfo.ray,t.pickInfo.pickedPoint);else if(t.type==s.a.POINTERUP)o.startAndReleaseDragOnPointerEvents&&o.currentDraggingPointerID==t.event.pointerId&&o.releaseDrag();else if(t.type==s.a.POINTERMOVE){var n=t.event.pointerId;if(o.currentDraggingPointerID===e._AnyMouseID&&n!==e._AnyMouseID){var r=t.event;(\"mouse\"===r.pointerType||!o._scene.getEngine().hostInformation.isMobile&&r instanceof MouseEvent)&&(o._lastPointerRay[o.currentDraggingPointerID]&&(o._lastPointerRay[n]=o._lastPointerRay[o.currentDraggingPointerID],delete o._lastPointerRay[o.currentDraggingPointerID]),o.currentDraggingPointerID=n)}o._lastPointerRay[n]||(o._lastPointerRay[n]=new c.a(new a.e,new a.e)),t.pickInfo&&t.pickInfo.ray&&(o._lastPointerRay[n].origin.copyFrom(t.pickInfo.ray.origin),o._lastPointerRay[n].direction.copyFrom(t.pickInfo.ray.direction),o.currentDraggingPointerID==n&&o.dragging&&o._moveDrag(t.pickInfo.ray))}})),this._beforeRenderObserver=this._scene.onBeforeRenderObservable.add((function(){o._moving&&o.moveAttached&&(l.a._RemoveAndStorePivotPoint(o.attachedNode),o._targetPosition.subtractToRef(o.attachedNode.absolutePosition,o._tmpVector),o._tmpVector.scaleInPlace(o.dragDeltaRatio),o.attachedNode.getAbsolutePosition().addToRef(o._tmpVector,o._tmpVector),o.validateDrag(o._tmpVector)&&o.attachedNode.setAbsolutePosition(o._tmpVector),l.a._RestorePivotPoint(o.attachedNode))}))},e.prototype.releaseDrag=function(){if(this.dragging&&(this.dragging=!1,this.onDragEndObservable.notifyObservers({dragPlanePoint:this.lastDragPosition,pointerId:this.currentDraggingPointerID})),this.currentDraggingPointerID=-1,this._moving=!1,this.detachCameraControls&&this._attachedToElement&&this._scene.activeCamera&&!this._scene.activeCamera.leftCamera){if(\"ArcRotateCamera\"===this._scene.activeCamera.getClassName()){var e=this._scene.activeCamera;e.attachControl(!e.inputs||e.inputs.noPreventDefault,e._useCtrlForPanning,e._panningMouseButton)}else this._scene.activeCamera.attachControl(!this._scene.activeCamera.inputs||this._scene.activeCamera.inputs.noPreventDefault);this._attachedToElement=!1}},e.prototype.startDrag=function(t,i,n){void 0===t&&(t=e._AnyMouseID),this._startDrag(t,i,n);var r=this._lastPointerRay[t];t===e._AnyMouseID&&(r=this._lastPointerRay[Object.keys(this._lastPointerRay)[0]]),r&&this._moveDrag(r)},e.prototype._startDrag=function(e,t,i){if(this._scene.activeCamera&&!this.dragging&&this.attachedNode){l.a._RemoveAndStorePivotPoint(this.attachedNode),t?(this._startDragRay.direction.copyFrom(t.direction),this._startDragRay.origin.copyFrom(t.origin)):(this._startDragRay.origin.copyFrom(this._scene.activeCamera.position),this.attachedNode.getWorldMatrix().getTranslationToRef(this._tmpVector),this._tmpVector.subtractToRef(this._scene.activeCamera.position,this._startDragRay.direction)),this._updateDragPlanePosition(this._startDragRay,i||this._tmpVector);var n=this._pickWithRayOnDragPlane(this._startDragRay);n&&(this.dragging=!0,this.currentDraggingPointerID=e,this.lastDragPosition.copyFrom(n),this.onDragStartObservable.notifyObservers({dragPlanePoint:n,pointerId:this.currentDraggingPointerID}),this._targetPosition.copyFrom(this.attachedNode.absolutePosition),this.detachCameraControls&&this._scene.activeCamera&&this._scene.activeCamera.inputs&&!this._scene.activeCamera.leftCamera&&(this._scene.activeCamera.inputs.attachedToElement?(this._scene.activeCamera.detachControl(),this._attachedToElement=!0):this._attachedToElement=!1)),l.a._RestorePivotPoint(this.attachedNode)}},e.prototype._moveDrag=function(e){this._moving=!0;var t=this._pickWithRayOnDragPlane(e);if(t){this.updateDragPlane&&this._updateDragPlanePosition(e,t);var i=0;this._options.dragAxis?(this.useObjectOrientationForDragging?a.e.TransformCoordinatesToRef(this._options.dragAxis,this.attachedNode.getWorldMatrix().getRotationMatrix(),this._worldDragAxis):this._worldDragAxis.copyFrom(this._options.dragAxis),t.subtractToRef(this.lastDragPosition,this._tmpVector),i=a.e.Dot(this._tmpVector,this._worldDragAxis),this._worldDragAxis.scaleToRef(i,this._dragDelta)):(i=this._dragDelta.length(),t.subtractToRef(this.lastDragPosition,this._dragDelta)),this._targetPosition.addInPlace(this._dragDelta),this.onDragObservable.notifyObservers({dragDistance:i,delta:this._dragDelta,dragPlanePoint:t,dragPlaneNormal:this._dragPlane.forward,pointerId:this.currentDraggingPointerID}),this.lastDragPosition.copyFrom(t)}},e.prototype._pickWithRayOnDragPlane=function(t){var i=this;if(!t)return null;var n=Math.acos(a.e.Dot(this._dragPlane.forward,t.direction));if(n>Math.PI/2&&(n=Math.PI-n),this.maxDragAngle>0&&n>this.maxDragAngle){if(this._useAlternatePickedPointAboveMaxDragAngle){this._tmpVector.copyFrom(t.direction),this.attachedNode.absolutePosition.subtractToRef(t.origin,this._alternatePickedPoint),this._alternatePickedPoint.normalize(),this._alternatePickedPoint.scaleInPlace(this._useAlternatePickedPointAboveMaxDragAngleDragSpeed*a.e.Dot(this._alternatePickedPoint,this._tmpVector)),this._tmpVector.addInPlace(this._alternatePickedPoint);var r=a.e.Dot(this._dragPlane.forward,this._tmpVector);return this._dragPlane.forward.scaleToRef(-r,this._alternatePickedPoint),this._alternatePickedPoint.addInPlace(this._tmpVector),this._alternatePickedPoint.addInPlace(this.attachedNode.absolutePosition),this._alternatePickedPoint}return null}var o=e._planeScene.pickWithRay(t,(function(e){return e==i._dragPlane}));return o&&o.hit&&o.pickedMesh&&o.pickedPoint?o.pickedPoint:null},e.prototype._updateDragPlanePosition=function(e,t){this._pointA.copyFrom(t),this._options.dragAxis?(this.useObjectOrientationForDragging?a.e.TransformCoordinatesToRef(this._options.dragAxis,this.attachedNode.getWorldMatrix().getRotationMatrix(),this._localAxis):this._localAxis.copyFrom(this._options.dragAxis),e.origin.subtractToRef(this._pointA,this._pointC),this._pointC.normalize(),Math.abs(a.e.Dot(this._localAxis,this._pointC))>.999?Math.abs(a.e.Dot(a.e.UpReadOnly,this._pointC))>.999?this._lookAt.copyFrom(a.e.Right()):this._lookAt.copyFrom(a.e.UpReadOnly):(a.e.CrossToRef(this._localAxis,this._pointC,this._lookAt),a.e.CrossToRef(this._localAxis,this._lookAt,this._lookAt),this._lookAt.normalize()),this._dragPlane.position.copyFrom(this._pointA),this._pointA.addToRef(this._lookAt,this._lookAt),this._dragPlane.lookAt(this._lookAt)):this._options.dragPlaneNormal?(this.useObjectOrientationForDragging?a.e.TransformCoordinatesToRef(this._options.dragPlaneNormal,this.attachedNode.getWorldMatrix().getRotationMatrix(),this._localAxis):this._localAxis.copyFrom(this._options.dragPlaneNormal),this._dragPlane.position.copyFrom(this._pointA),this._pointA.addToRef(this._localAxis,this._lookAt),this._dragPlane.lookAt(this._lookAt)):(this._dragPlane.position.copyFrom(this._pointA),this._dragPlane.lookAt(e.origin)),this._dragPlane.position.copyFrom(this.attachedNode.absolutePosition),this._dragPlane.computeWorldMatrix(!0)},e.prototype.detach=function(){this._pointerObserver&&this._scene.onPointerObservable.remove(this._pointerObserver),this._beforeRenderObserver&&this._scene.onBeforeRenderObservable.remove(this._beforeRenderObserver),this.releaseDrag()},e._AnyMouseID=-2,e}())},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return r})),i.d(t,\"b\",(function(){return o})),i.d(t,\"c\",(function(){return a}));var n=i(1),r=function(){function e(){}return e.KEYDOWN=1,e.KEYUP=2,e}(),o=function(e,t){this.type=e,this.event=t},a=function(e){function t(t,i){var n=e.call(this,t,i)||this;return n.type=t,n.event=i,n.skipOnPointerObservable=!1,n}return Object(n.d)(t,e),t}(o)},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return n}));var n=function(){function e(){this._defines={},this._currentRank=32,this._maxRank=-1,this._mesh=null}return e.prototype.unBindMesh=function(){this._mesh=null},e.prototype.addFallback=function(e,t){this._defines[e]||(ethis._maxRank&&(this._maxRank=e),this._defines[e]=new Array),this._defines[e].push(t)},e.prototype.addCPUSkinningFallback=function(e,t){this._mesh=t,ethis._maxRank&&(this._maxRank=e)},Object.defineProperty(e.prototype,\"hasMoreFallbacks\",{get:function(){return this._currentRank<=this._maxRank},enumerable:!1,configurable:!0}),e.prototype.reduce=function(e,t){if(this._mesh&&this._mesh.computeBonesUsingShaders&&this._mesh.numBoneInfluencers>0){this._mesh.computeBonesUsingShaders=!1,e=e.replace(\"#define NUM_BONE_INFLUENCERS \"+this._mesh.numBoneInfluencers,\"#define NUM_BONE_INFLUENCERS 0\"),t._bonesComputationForcedToCPU=!0;for(var i=this._mesh.getScene(),n=0;n0&&(r.computeBonesUsingShaders=!1)}}else{var s=this._defines[this._currentRank];if(s)for(n=0;n=this.subMaterials.length?this.getScene().defaultMaterial:this.subMaterials[e]},t.prototype.getActiveTextures=function(){var t;return(t=e.prototype.getActiveTextures.call(this)).concat.apply(t,this.subMaterials.map((function(e){return e?e.getActiveTextures():[]})))},t.prototype.hasTexture=function(t){var i;if(e.prototype.hasTexture.call(this,t))return!0;for(var n=0;n=0&&r.multiMaterials.splice(o,1),e.prototype.dispose.call(this,t,i)}},t.ParseMultiMaterial=function(e,i){var n=new t(e.name,i);n.id=e.id,o.a&&o.a.AddTagsTo(n,e.tags);for(var r=0;r0&&(this._indexBuffer=this._engine.createIndexBuffer(this._indices)),this._indexBuffer&&(this._indexBuffer.references=t),e._syncGeometryWithMorphTargetManager(),e.synchronizeInstances()},e.prototype.notifyUpdate=function(e){this.onGeometryUpdated&&this.onGeometryUpdated(this,e);for(var t=0,i=this._meshes;t0){for(var t=0;t0){for(t=0;t0){for(t=0;t0){var u=new Float32Array(t,l.positionsAttrDesc.offset,l.positionsAttrDesc.count);i.setVerticesData(a.b.PositionKind,u,!1)}if(l.normalsAttrDesc&&l.normalsAttrDesc.count>0){var h=new Float32Array(t,l.normalsAttrDesc.offset,l.normalsAttrDesc.count);i.setVerticesData(a.b.NormalKind,h,!1)}if(l.tangetsAttrDesc&&l.tangetsAttrDesc.count>0){var d=new Float32Array(t,l.tangetsAttrDesc.offset,l.tangetsAttrDesc.count);i.setVerticesData(a.b.TangentKind,d,!1)}if(l.uvsAttrDesc&&l.uvsAttrDesc.count>0){var f=new Float32Array(t,l.uvsAttrDesc.offset,l.uvsAttrDesc.count);i.setVerticesData(a.b.UVKind,f,!1)}if(l.uvs2AttrDesc&&l.uvs2AttrDesc.count>0){var p=new Float32Array(t,l.uvs2AttrDesc.offset,l.uvs2AttrDesc.count);i.setVerticesData(a.b.UV2Kind,p,!1)}if(l.uvs3AttrDesc&&l.uvs3AttrDesc.count>0){var _=new Float32Array(t,l.uvs3AttrDesc.offset,l.uvs3AttrDesc.count);i.setVerticesData(a.b.UV3Kind,_,!1)}if(l.uvs4AttrDesc&&l.uvs4AttrDesc.count>0){var m=new Float32Array(t,l.uvs4AttrDesc.offset,l.uvs4AttrDesc.count);i.setVerticesData(a.b.UV4Kind,m,!1)}if(l.uvs5AttrDesc&&l.uvs5AttrDesc.count>0){var g=new Float32Array(t,l.uvs5AttrDesc.offset,l.uvs5AttrDesc.count);i.setVerticesData(a.b.UV5Kind,g,!1)}if(l.uvs6AttrDesc&&l.uvs6AttrDesc.count>0){var v=new Float32Array(t,l.uvs6AttrDesc.offset,l.uvs6AttrDesc.count);i.setVerticesData(a.b.UV6Kind,v,!1)}if(l.colorsAttrDesc&&l.colorsAttrDesc.count>0){var b=new Float32Array(t,l.colorsAttrDesc.offset,l.colorsAttrDesc.count);i.setVerticesData(a.b.ColorKind,b,!1,l.colorsAttrDesc.stride)}if(l.matricesIndicesAttrDesc&&l.matricesIndicesAttrDesc.count>0){for(var y=new Int32Array(t,l.matricesIndicesAttrDesc.offset,l.matricesIndicesAttrDesc.count),T=[],E=0;E>8),T.push((16711680&S)>>16),T.push(S>>24&255)}i.setVerticesData(a.b.MatricesIndicesKind,T,!1)}if(l.matricesIndicesExtraAttrDesc&&l.matricesIndicesExtraAttrDesc.count>0){for(y=new Int32Array(t,l.matricesIndicesExtraAttrDesc.offset,l.matricesIndicesExtraAttrDesc.count),T=[],E=0;E>8),T.push((16711680&S)>>16),T.push(S>>24&255)}i.setVerticesData(a.b.MatricesIndicesExtraKind,T,!1)}if(l.matricesWeightsAttrDesc&&l.matricesWeightsAttrDesc.count>0){var A=new Float32Array(t,l.matricesWeightsAttrDesc.offset,l.matricesWeightsAttrDesc.count);i.setVerticesData(a.b.MatricesWeightsKind,A,!1)}if(l.indicesAttrDesc&&l.indicesAttrDesc.count>0){var P=new Int32Array(t,l.indicesAttrDesc.offset,l.indicesAttrDesc.count);i.setIndices(P,null)}if(l.subMeshesAttrDesc&&l.subMeshesAttrDesc.count>0){var C=new Int32Array(t,l.subMeshesAttrDesc.offset,5*l.subMeshesAttrDesc.count);i.subMeshes=[];for(E=0;E>8),T.push((16711680&D)>>16),T.push(D>>24&255)}i.setVerticesData(a.b.MatricesIndicesKind,T,t.matricesIndices._updatable)}if(t.matricesIndicesExtra)if(t.matricesIndicesExtra._isExpanded)delete t.matricesIndices._isExpanded,i.setVerticesData(a.b.MatricesIndicesExtraKind,t.matricesIndicesExtra,t.matricesIndicesExtra._updatable);else{for(T=[],E=0;E>8),T.push((16711680&D)>>16),T.push(D>>24&255)}i.setVerticesData(a.b.MatricesIndicesExtraKind,T,t.matricesIndicesExtra._updatable)}t.matricesWeights&&(e._CleanMatricesWeights(t,i),i.setVerticesData(a.b.MatricesWeightsKind,t.matricesWeights,t.matricesWeights._updatable)),t.matricesWeightsExtra&&i.setVerticesData(a.b.MatricesWeightsExtraKind,t.matricesWeightsExtra,t.matricesWeights._updatable),i.setIndices(t.indices,null)}if(t.subMeshes){i.subMeshes=[];for(var N=0;N-1){var n=t.getScene().getLastSkeletonByID(e.skeletonId);if(n){i=n.bones.length;for(var r=t.getVerticesData(a.b.MatricesIndicesKind),o=t.getVerticesData(a.b.MatricesIndicesExtraKind),s=e.matricesWeights,l=e.matricesWeightsExtra,u=e.numBoneInfluencer,h=s.length,d=0;du-1)&&(p=u-1),f>.001){var g=1/f;for(_=0;_<4;_++)s[d+_]*=g;if(l)for(_=0;_<4;_++)l[d+_]*=g}else p>=4?(l[d+p-4]=1-f,o[d+p-4]=i):(s[d+p]=1-f,r[d+p]=i)}t.setVerticesData(a.b.MatricesIndicesKind,r),e.matricesWeightsExtra&&t.setVerticesData(a.b.MatricesIndicesExtraKind,o)}}}},e.Parse=function(t,i,r){if(i.getGeometryByID(t.id))return null;var s=new e(t.id,i,void 0,t.updatable);return d.a&&d.a.AddTagsTo(s,t.tags),t.delayLoadingFile?(s.delayLoadState=u.a.DELAYLOADSTATE_NOTLOADED,s.delayLoadingFile=r+t.delayLoadingFile,s._boundingInfo=new l.a(n.e.FromArray(t.boundingBoxMinimum),n.e.FromArray(t.boundingBoxMaximum)),s._delayInfo=[],t.hasUVs&&s._delayInfo.push(a.b.UVKind),t.hasUVs2&&s._delayInfo.push(a.b.UV2Kind),t.hasUVs3&&s._delayInfo.push(a.b.UV3Kind),t.hasUVs4&&s._delayInfo.push(a.b.UV4Kind),t.hasUVs5&&s._delayInfo.push(a.b.UV5Kind),t.hasUVs6&&s._delayInfo.push(a.b.UV6Kind),t.hasColors&&s._delayInfo.push(a.b.ColorKind),t.hasMatricesIndices&&s._delayInfo.push(a.b.MatricesIndicesKind),t.hasMatricesWeights&&s._delayInfo.push(a.b.MatricesWeightsKind),s._delayLoadingFunction=o.a.ImportVertexData):o.a.ImportVertexData(t,s),i.pushGeometry(s,!0),s},e}()},function(e,t,i){\"use strict\";i.d(t,\"e\",(function(){return n})),i.d(t,\"c\",(function(){return s})),i.d(t,\"a\",(function(){return c})),i.d(t,\"b\",(function(){return l})),i.d(t,\"f\",(function(){return u})),i.d(t,\"g\",(function(){return h})),i.d(t,\"d\",(function(){return d}));var n,r=i(14),o=i(0),a=i(28);!function(e){e[e.CW=0]=\"CW\",e[e.CCW=1]=\"CCW\"}(n||(n={}));var s=function(){function e(){}return e.Interpolate=function(e,t,i,n,r){for(var o=1-3*n+3*t,a=3*n-6*t,s=3*t,c=e,l=0;l<5;l++){var u=c*c;c-=(o*(u*c)+a*u+s*c-e)*(1/(3*o*u+2*a*c+s)),c=Math.min(1,Math.max(0,c))}return 3*Math.pow(1-c,2)*c*i+3*(1-c)*Math.pow(c,2)*r+Math.pow(c,3)},e}(),c=function(){function e(e){this._radians=e,this._radians<0&&(this._radians+=2*Math.PI)}return e.prototype.degrees=function(){return 180*this._radians/Math.PI},e.prototype.radians=function(){return this._radians},e.BetweenTwoPoints=function(t,i){var n=i.subtract(t);return new e(Math.atan2(n.y,n.x))},e.FromRadians=function(t){return new e(t)},e.FromDegrees=function(t){return new e(t*Math.PI/180)},e}(),l=function(e,t,i){this.startPoint=e,this.midPoint=t,this.endPoint=i;var r=Math.pow(t.x,2)+Math.pow(t.y,2),a=(Math.pow(e.x,2)+Math.pow(e.y,2)-r)/2,s=(r-Math.pow(i.x,2)-Math.pow(i.y,2))/2,l=(e.x-t.x)*(t.y-i.y)-(t.x-i.x)*(e.y-t.y);this.centerPoint=new o.d((a*(t.y-i.y)-s*(e.y-t.y))/l,((e.x-t.x)*s-(t.x-i.x)*a)/l),this.radius=this.centerPoint.subtract(this.startPoint).length(),this.startAngle=c.BetweenTwoPoints(this.centerPoint,this.startPoint);var u=this.startAngle.degrees(),h=c.BetweenTwoPoints(this.centerPoint,this.midPoint).degrees(),d=c.BetweenTwoPoints(this.centerPoint,this.endPoint).degrees();h-u>180&&(h-=360),h-u<-180&&(h+=360),d-h>180&&(d-=360),d-h<-180&&(d+=360),this.orientation=h-u<0?n.CW:n.CCW,this.angle=c.FromDegrees(this.orientation===n.CW?u-d:d-u)},u=function(){function e(e,t){this._points=new Array,this._length=0,this.closed=!1,this._points.push(new o.d(e,t))}return e.prototype.addLineTo=function(e,t){if(this.closed)return this;var i=new o.d(e,t),n=this._points[this._points.length-1];return this._points.push(i),this._length+=i.subtract(n).length(),this},e.prototype.addArcTo=function(e,t,i,r,a){if(void 0===a&&(a=36),this.closed)return this;var s=this._points[this._points.length-1],c=new o.d(e,t),u=new o.d(i,r),h=new l(s,c,u),d=h.angle.radians()/a;h.orientation===n.CW&&(d*=-1);for(var f=h.startAngle.radians()+d,p=0;p1)return o.d.Zero();for(var t=e*this.length(),i=0,n=0;n=i&&t<=c){var l=s.normalize(),u=t-i;return new o.d(a.x+l.x*u,a.y+l.y*u)}i=c}return o.d.Zero()},e.StartingAt=function(t,i){return new e(t,i)},e}(),h=function(){function e(e,t,i,n){void 0===t&&(t=null),void 0===n&&(n=!1),this.path=e,this._curve=new Array,this._distances=new Array,this._tangents=new Array,this._normals=new Array,this._binormals=new Array,this._pointAtData={id:0,point:o.e.Zero(),previousPointArrayIndex:0,position:0,subPosition:0,interpolateReady:!1,interpolationMatrix:o.a.Identity()};for(var r=0;ri){var n=t;t=i,i=n}var r=this.getCurve(),o=this.getPointAt(t),a=this.getPreviousPointIndexAt(t),s=this.getPointAt(i),c=this.getPreviousPointIndexAt(i)+1,l=[];return 0!==t&&(a++,l.push(o)),l.push.apply(l,r.slice(a,c)),1===i&&1!==t||l.push(s),new e(l,this.getNormalAt(t),this._raw,this._alignTangentsWithPath)},e.prototype.update=function(e,t,i){void 0===t&&(t=null),void 0===i&&(i=!1);for(var n=0;nt+1;)t++,i=this._curve[e].subtract(this._curve[e-t]);return i},e.prototype._normalVector=function(e,t){var i,n,s=e.length();(0===s&&(s=1),null==t)?(n=r.a.WithinEpsilon(Math.abs(e.y)/s,1,a.a)?r.a.WithinEpsilon(Math.abs(e.x)/s,1,a.a)?r.a.WithinEpsilon(Math.abs(e.z)/s,1,a.a)?o.e.Zero():new o.e(0,0,1):new o.e(1,0,0):new o.e(0,-1,0),i=o.e.Cross(e,n)):(i=o.e.Cross(e,t),o.e.CrossToRef(i,e,i));return i.normalize(),i},e.prototype._updatePointAtData=function(e,t){if(void 0===t&&(t=!1),this._pointAtData.id===e)return this._pointAtData.interpolateReady||this._updateInterpolationMatrix(),this._pointAtData;this._pointAtData.id=e;var i=this.getPoints();if(e<=0)return this._setPointAtData(0,0,i[0],0,t);if(e>=1)return this._setPointAtData(1,1,i[i.length-1],i.length-1,t);for(var n,r=i[0],a=0,s=e*this.length(),c=1;cs){var u=(a-s)/l,h=r.subtract(n),d=n.add(h.scaleInPlace(u));return this._setPointAtData(e,1-u,d,c-1,t)}r=n}return this._pointAtData},e.prototype._setPointAtData=function(e,t,i,n,r){return this._pointAtData.point=i,this._pointAtData.position=e,this._pointAtData.subPosition=t,this._pointAtData.previousPointArrayIndex=n,this._pointAtData.interpolateReady=r,r&&this._updateInterpolationMatrix(),this._pointAtData},e.prototype._updateInterpolationMatrix=function(){this._pointAtData.interpolationMatrix=o.a.Identity();var e=this._pointAtData.previousPointArrayIndex;if(e!==this._tangents.length-1){var t=e+1,i=this._tangents[e].clone(),n=this._normals[e].clone(),r=this._binormals[e].clone(),a=this._tangents[t].clone(),s=this._normals[t].clone(),c=this._binormals[t].clone(),l=o.b.RotationQuaternionFromAxis(n,r,i),u=o.b.RotationQuaternionFromAxis(s,c,a);o.b.Slerp(l,u,this._pointAtData.subPosition).toRotationMatrix(this._pointAtData.interpolationMatrix)}},e}(),d=function(){function e(e){this._length=0,this._points=e,this._length=this._computeLength(e)}return e.CreateQuadraticBezier=function(t,i,n,r){r=r>2?r:3;for(var a=new Array,s=function(e,t,i,n){return(1-e)*(1-e)*t+2*e*(1-e)*i+e*e*n},c=0;c<=r;c++)a.push(new o.e(s(c/r,t.x,i.x,n.x),s(c/r,t.y,i.y,n.y),s(c/r,t.z,i.z,n.z)));return new e(a)},e.CreateCubicBezier=function(t,i,n,r,a){a=a>3?a:4;for(var s=new Array,c=function(e,t,i,n,r){return(1-e)*(1-e)*(1-e)*t+3*e*(1-e)*(1-e)*i+3*e*e*(1-e)*n+e*e*e*r},l=0;l<=a;l++)s.push(new o.e(c(l/a,t.x,i.x,n.x,r.x),c(l/a,t.y,i.y,n.y,r.y),c(l/a,t.z,i.z,n.z,r.z)));return new e(s)},e.CreateHermiteSpline=function(t,i,n,r,a){for(var s=new Array,c=1/a,l=0;l<=a;l++)s.push(o.e.Hermite(t,i,n,r,l*c));return new e(s)},e.CreateCatmullRomSpline=function(t,i,n){var r=new Array,a=1/i,s=0;if(n){for(var c=t.length,l=0;l1&&(this._multiview=!0,s.push(\"#define MULTIVIEW\"),-1!==this._options.uniforms.indexOf(\"viewProjection\")&&-1===this._options.uniforms.push(\"viewProjectionR\")&&this._options.uniforms.push(\"viewProjectionR\"));for(var h=0;h4&&(l.push(a.b.MatricesIndicesExtraKind),l.push(a.b.MatricesWeightsExtraKind));var p=e.skeleton;f=e.numBoneInfluencers,s.push(\"#define NUM_BONE_INFLUENCERS \"+f),u.addCPUSkinningFallback(0,e),p.isUsingTextureForMatrices?(s.push(\"#define BONETEXTURE\"),-1===this._options.uniforms.indexOf(\"boneTextureWidth\")&&this._options.uniforms.push(\"boneTextureWidth\"),-1===this._options.samplers.indexOf(\"boneSampler\")&&this._options.samplers.push(\"boneSampler\")):(s.push(\"#define BonesPerMesh \"+(p.bones.length+1)),-1===this._options.uniforms.indexOf(\"mBones\")&&this._options.uniforms.push(\"mBones\"))}else s.push(\"#define NUM_BONE_INFLUENCERS 0\");for(var m in this._textures)if(!this._textures[m].isReady())return!1;e&&this._shouldTurnAlphaTestOn(e)&&s.push(\"#define ALPHATEST\");var g=this._shaderPath,v=this._options.uniforms,b=this._options.uniformBuffers,y=this._options.samplers;this.customShaderNameResolve&&(v=v.slice(),b=b.slice(),y=y.slice(),g=this.customShaderNameResolve(g,v,b,y,s,l));var T=this._effect,E=s.join(\"\\n\");return this._cachedDefines!==E&&(this._cachedDefines=E,this._effect=o.createEffect(g,{attributes:l,uniformsNames:v,uniformBuffersNames:b,samplers:y,defines:E,fallbacks:u,onCompiled:this.onCompiled,onError:this.onError,indexParameters:{maxSimultaneousMorphTargets:f}},o),this._onEffectCreatedObservable&&(_.effect=this._effect,this._onEffectCreatedObservable.notifyObservers(_))),null!==(n=!(null===(i=this._effect)||void 0===i?void 0:i.isReady()))&&void 0!==n&&!n&&(T!==this._effect&&r.resetCachedMaterial(),this._renderId=r.getRenderId(),this._effect._wasPreviouslyReady=!0,!0)},t.prototype.bindOnlyWorldMatrix=function(e,t){var i=this.getScene(),n=null!=t?t:this._effect;n&&(-1!==this._options.uniforms.indexOf(\"world\")&&n.setMatrix(\"world\",e),-1!==this._options.uniforms.indexOf(\"worldView\")&&(e.multiplyToRef(i.getViewMatrix(),this._cachedWorldViewMatrix),n.setMatrix(\"worldView\",this._cachedWorldViewMatrix)),-1!==this._options.uniforms.indexOf(\"worldViewProjection\")&&(e.multiplyToRef(i.getTransformMatrix(),this._cachedWorldViewProjectionMatrix),n.setMatrix(\"worldViewProjection\",this._cachedWorldViewProjectionMatrix)))},t.prototype.bindForSubMesh=function(e,t,i){this.bind(e,t,i._effectOverride)},t.prototype.bind=function(e,t,i){this.bindOnlyWorldMatrix(e,i);var n=null!=i?i:this._effect;if(n&&this.getScene().getCachedMaterial()!==this){var r;for(r in-1!==this._options.uniforms.indexOf(\"view\")&&n.setMatrix(\"view\",this.getScene().getViewMatrix()),-1!==this._options.uniforms.indexOf(\"projection\")&&n.setMatrix(\"projection\",this.getScene().getProjectionMatrix()),-1!==this._options.uniforms.indexOf(\"viewProjection\")&&(n.setMatrix(\"viewProjection\",this.getScene().getTransformMatrix()),this._multiview&&n.setMatrix(\"viewProjectionR\",this.getScene()._transformMatrixR)),this.getScene().activeCamera&&-1!==this._options.uniforms.indexOf(\"cameraPosition\")&&n.setVector3(\"cameraPosition\",this.getScene().activeCamera.globalPosition),c.a.BindBonesParameters(t,n),this._textures)n.setTexture(r,this._textures[r]);for(r in this._textureArrays)n.setTextureArray(r,this._textureArrays[r]);for(r in this._ints)n.setInt(r,this._ints[r]);for(r in this._floats)n.setFloat(r,this._floats[r]);for(r in this._floatsArrays)n.setArray(r,this._floatsArrays[r]);for(r in this._colors3)n.setColor3(r,this._colors3[r]);for(r in this._colors3Arrays)n.setArray3(r,this._colors3Arrays[r]);for(r in this._colors4){var o=this._colors4[r];n.setFloat4(r,o.r,o.g,o.b,o.a)}for(r in this._colors4Arrays)n.setArray4(r,this._colors4Arrays[r]);for(r in this._vectors2)n.setVector2(r,this._vectors2[r]);for(r in this._vectors3)n.setVector3(r,this._vectors3[r]);for(r in this._vectors4)n.setVector4(r,this._vectors4[r]);for(r in this._matrices)n.setMatrix(r,this._matrices[r]);for(r in this._matrixArrays)n.setMatrices(r,this._matrixArrays[r]);for(r in this._matrices3x3)n.setMatrix3x3(r,this._matrices3x3[r]);for(r in this._matrices2x2)n.setMatrix2x2(r,this._matrices2x2[r]);for(r in this._vectors2Arrays)n.setArray2(r,this._vectors2Arrays[r]);for(r in this._vectors3Arrays)n.setArray3(r,this._vectors3Arrays[r]);for(r in this._vectors4Arrays)n.setArray4(r,this._vectors4Arrays[r])}var a=this._effect;this._effect=n,this._afterBind(t),this._effect=a},t.prototype._afterBind=function(t){e.prototype._afterBind.call(this,t),this.getScene()._cachedEffect=this._effect},t.prototype.getActiveTextures=function(){var t=e.prototype.getActiveTextures.call(this);for(var i in this._textures)t.push(this._textures[i]);for(var i in this._textureArrays)for(var n=this._textureArrays[i],r=0;r_.snapDistance){var t=Math.floor(Math.abs(v)/_.snapDistance);v%=_.snapDistance,e.delta.normalizeToRef(b),b.scaleInPlace(_.snapDistance*t),_.attachedNode.getWorldMatrix().addTranslationFromFloats(b.x,b.y,b.z),_.attachedNode.updateCache(),y.snapDistance=_.snapDistance*t,_.onSnapObservable.notifyObservers(y)}_._matrixChanged()}})),_.dragBehavior.onDragStartObservable.add((function(){_._dragging=!0})),_.dragBehavior.onDragEndObservable.add((function(){_._dragging=!1}));var T=a._getSharedGizmoLight();T.includedOnlyMeshes=T.includedOnlyMeshes.concat(_._rootMesh.getChildMeshes(!1));var E={gizmoMeshes:m.getChildMeshes(),colliderMeshes:g.getChildMeshes(),material:_._coloredMaterial,hoverMaterial:_._hoverMaterial,disableMaterial:_._disableMaterial,active:!1};return null===(p=_._parent)||void 0===p||p.addToAxisCache(g,E),_._pointerObserver=a.utilityLayerScene.onPointerObservable.add((function(e){var t;if(!_._customMeshSet&&(_._isHovered=!(-1==E.colliderMeshes.indexOf(null===(t=null==e?void 0:e.pickInfo)||void 0===t?void 0:t.pickedMesh)),!_._parent)){var i=_._isHovered||_._dragging?_._hoverMaterial:_._coloredMaterial;E.gizmoMeshes.forEach((function(e){e.material=i,e.color&&(e.color=i.diffuseColor)}))}})),_}return Object(n.d)(t,e),t._CreateArrow=function(e,t,i,n){void 0===i&&(i=1),void 0===n&&(n=!1);var r=new a.a(\"arrow\",e),o=c.a.CreateCylinder(\"cylinder\",{diameterTop:0,height:.075,diameterBottom:.0375*(1+(i-1)/4),tessellation:96},e),s=c.a.CreateCylinder(\"cylinder\",{diameterTop:.005*i,height:.275,diameterBottom:.005*i,tessellation:96},e);return o.parent=r,o.material=t,o.rotation.x=Math.PI/2,o.position.z+=.3,s.parent=r,s.material=t,s.position.z+=.1375,s.rotation.x=Math.PI/2,n&&(s.visibility=0,o.visibility=0),r},t._CreateArrowInstance=function(e,t){for(var i=new a.a(\"arrow\",e),n=0,r=t.getChildMeshes();n0\\n#ifdef BONETEXTURE\\nuniform sampler2D boneSampler;\\nuniform float boneTextureWidth;\\n#else\\nuniform mat4 mBones[BonesPerMesh];\\n#ifdef BONES_VELOCITY_ENABLED\\nuniform mat4 mPreviousBones[BonesPerMesh];\\n#endif\\n#endif\\nattribute vec4 matricesIndices;\\nattribute vec4 matricesWeights;\\n#if NUM_BONE_INFLUENCERS>4\\nattribute vec4 matricesIndicesExtra;\\nattribute vec4 matricesWeightsExtra;\\n#endif\\n#ifdef BONETEXTURE\\n#define inline\\nmat4 readMatrixFromRawSampler(sampler2D smp,float index)\\n{\\nfloat offset=index*4.0;\\nfloat dx=1.0/boneTextureWidth;\\nvec4 m0=texture2D(smp,vec2(dx*(offset+0.5),0.));\\nvec4 m1=texture2D(smp,vec2(dx*(offset+1.5),0.));\\nvec4 m2=texture2D(smp,vec2(dx*(offset+2.5),0.));\\nvec4 m3=texture2D(smp,vec2(dx*(offset+3.5),0.));\\nreturn mat4(m0,m1,m2,m3);\\n}\\n#endif\\n#endif\";i(5).a.IncludesShadersStore[n]=r},function(e,t,i){\"use strict\";var n=\"instancesDeclaration\",r=\"#ifdef INSTANCES\\nattribute vec4 world0;\\nattribute vec4 world1;\\nattribute vec4 world2;\\nattribute vec4 world3;\\n#ifdef THIN_INSTANCES\\nuniform mat4 world;\\n#endif\\n#else\\nuniform mat4 world;\\n#endif\";i(5).a.IncludesShadersStore[n]=r},function(e,t,i){\"use strict\";var n=\"instancesVertex\",r=\"#ifdef INSTANCES\\nmat4 finalWorld=mat4(world0,world1,world2,world3);\\n#ifdef THIN_INSTANCES\\nfinalWorld=world*finalWorld;\\n#endif\\n#else\\nmat4 finalWorld=world;\\n#endif\";i(5).a.IncludesShadersStore[n]=r},function(e,t,i){\"use strict\";var n=\"#if NUM_BONE_INFLUENCERS>0\\nmat4 influence;\\n#ifdef BONETEXTURE\\ninfluence=readMatrixFromRawSampler(boneSampler,matricesIndices[0])*matricesWeights[0];\\n#if NUM_BONE_INFLUENCERS>1\\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndices[1])*matricesWeights[1];\\n#endif\\n#if NUM_BONE_INFLUENCERS>2\\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndices[2])*matricesWeights[2];\\n#endif\\n#if NUM_BONE_INFLUENCERS>3\\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndices[3])*matricesWeights[3];\\n#endif\\n#if NUM_BONE_INFLUENCERS>4\\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[0])*matricesWeightsExtra[0];\\n#endif\\n#if NUM_BONE_INFLUENCERS>5\\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[1])*matricesWeightsExtra[1];\\n#endif\\n#if NUM_BONE_INFLUENCERS>6\\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[2])*matricesWeightsExtra[2];\\n#endif\\n#if NUM_BONE_INFLUENCERS>7\\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[3])*matricesWeightsExtra[3];\\n#endif\\n#else\\ninfluence=mBones[int(matricesIndices[0])]*matricesWeights[0];\\n#if NUM_BONE_INFLUENCERS>1\\ninfluence+=mBones[int(matricesIndices[1])]*matricesWeights[1];\\n#endif\\n#if NUM_BONE_INFLUENCERS>2\\ninfluence+=mBones[int(matricesIndices[2])]*matricesWeights[2];\\n#endif\\n#if NUM_BONE_INFLUENCERS>3\\ninfluence+=mBones[int(matricesIndices[3])]*matricesWeights[3];\\n#endif\\n#if NUM_BONE_INFLUENCERS>4\\ninfluence+=mBones[int(matricesIndicesExtra[0])]*matricesWeightsExtra[0];\\n#endif\\n#if NUM_BONE_INFLUENCERS>5\\ninfluence+=mBones[int(matricesIndicesExtra[1])]*matricesWeightsExtra[1];\\n#endif\\n#if NUM_BONE_INFLUENCERS>6\\ninfluence+=mBones[int(matricesIndicesExtra[2])]*matricesWeightsExtra[2];\\n#endif\\n#if NUM_BONE_INFLUENCERS>7\\ninfluence+=mBones[int(matricesIndicesExtra[3])]*matricesWeightsExtra[3];\\n#endif\\n#endif\\nfinalWorld=finalWorld*influence;\\n#endif\";i(5).a.IncludesShadersStore.bonesVertex=n},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return c}));var n=i(0),r=i(7),o=i(4),a=i(16),s=i(43);a.a.CreateRibbon=function(e){var t=e.pathArray,i=e.closeArray||!1,n=e.closePath||!1,r=e.invertUV||!1,s=Math.floor(t[0].length/2),c=e.offset||s;c=c>s?s:Math.floor(c);var l,u,h,d,f=0===e.sideOrientation?0:e.sideOrientation||a.a.DEFAULTSIDE,p=e.uvs,_=e.colors,m=[],g=[],v=[],b=[],y=[],T=[],E=[],S=[],A=[],P=[];if(t.length<2){var C=[],R=[];for(h=0;h0&&(M=x[d].subtract(x[d-1]).length()+E[u],y[u].push(M),E[u]=M),d++;n&&(d--,m.push(x[0].x,x[0].y,x[0].z),M=x[d].subtract(x[0]).length()+E[u],y[u].push(M),E[u]=M),A[u]=O+L,P[u]=N,N+=O+L}var w,F,B=null,U=null;for(h=0;h=n.a.ACTION_OnPickTrigger&&i<=n.a.ACTION_OnPickUpTrigger)return!0}return!1},enumerable:!1,configurable:!0}),e.HasSpecificTrigger=function(t){for(var i in e.Triggers){if(e.Triggers.hasOwnProperty(i))if(parseInt(i)===t)return!0}return!1},e.Triggers={},e}()},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return c}));var n=i(1),r=i(25),o=i(3),a=i(19),s=i(15),c=function(){function e(e){this._texture=null,this.diffuseBlendLevel=1,this.roughnessBlendLevel=1,this.bumpLevel=1,this._normalBlendMethod=r.a.MATERIAL_NORMALBLENDMETHOD_WHITEOUT,this._isEnabled=!1,this.isEnabled=!1,this._internalMarkAllSubMeshesAsTexturesDirty=e}return e.prototype._markAllSubMeshesAsTexturesDirty=function(){this._internalMarkAllSubMeshesAsTexturesDirty()},e.prototype.isReadyForSubMesh=function(e,t){var i=t.getEngine();return!(e._areTexturesDirty&&t.texturesEnabled&&i.getCaps().standardDerivatives&&this._texture&&a.a.DetailTextureEnabled&&!this._texture.isReady())},e.prototype.prepareDefines=function(e,t){if(this._isEnabled){e.DETAIL_NORMALBLENDMETHOD=this._normalBlendMethod;var i=t.getEngine();e._areTexturesDirty&&(i.getCaps().standardDerivatives&&this._texture&&a.a.DetailTextureEnabled&&this._isEnabled?(s.a.PrepareDefinesForMergedUV(this._texture,e,\"DETAIL\"),e.DETAIL_NORMALBLENDMETHOD=this._normalBlendMethod):e.DETAIL=!1)}else e.DETAIL=!1},e.prototype.bindForSubMesh=function(e,t,i){this._isEnabled&&(e.useUbo&&i&&e.isSync||this._texture&&a.a.DetailTextureEnabled&&(e.updateFloat4(\"vDetailInfos\",this._texture.coordinatesIndex,this.diffuseBlendLevel,this.bumpLevel,this.roughnessBlendLevel),s.a.BindTextureMatrix(this._texture,e,\"detail\")),t.texturesEnabled&&this._texture&&a.a.DetailTextureEnabled&&e.setTexture(\"detailSampler\",this._texture))},e.prototype.hasTexture=function(e){return this._texture===e},e.prototype.getActiveTextures=function(e){this._texture&&e.push(this._texture)},e.prototype.getAnimatables=function(e){this._texture&&this._texture.animations&&this._texture.animations.length>0&&e.push(this._texture)},e.prototype.dispose=function(e){var t;e&&(null===(t=this._texture)||void 0===t||t.dispose())},e.prototype.getClassName=function(){return\"DetailMap\"},e.AddUniforms=function(e){e.push(\"vDetailInfos\")},e.AddSamplers=function(e){e.push(\"detailSampler\")},e.PrepareUniformBuffer=function(e){e.addUniform(\"vDetailInfos\",4),e.addUniform(\"detailMatrix\",16)},e.prototype.copyTo=function(e){o.a.Clone((function(){return e}),this)},e.prototype.serialize=function(){return o.a.Serialize(this)},e.prototype.parse=function(e,t,i){var n=this;o.a.Parse((function(){return n}),e,t,i)},Object(n.c)([Object(o.m)(\"detailTexture\"),Object(o.b)(\"_markAllSubMeshesAsTexturesDirty\")],e.prototype,\"texture\",void 0),Object(n.c)([Object(o.c)()],e.prototype,\"diffuseBlendLevel\",void 0),Object(n.c)([Object(o.c)()],e.prototype,\"roughnessBlendLevel\",void 0),Object(n.c)([Object(o.c)()],e.prototype,\"bumpLevel\",void 0),Object(n.c)([Object(o.c)(),Object(o.b)(\"_markAllSubMeshesAsTexturesDirty\")],e.prototype,\"normalBlendMethod\",void 0),Object(n.c)([Object(o.c)(),Object(o.b)(\"_markAllSubMeshesAsTexturesDirty\")],e.prototype,\"isEnabled\",void 0),e}()},function(e,t,i){\"use strict\";var n=\"morphTargetsVertexGlobalDeclaration\",r=\"#ifdef MORPHTARGETS\\nuniform float morphTargetInfluences[NUM_MORPH_INFLUENCERS];\\n#endif\";i(5).a.IncludesShadersStore[n]=r},function(e,t,i){\"use strict\";var n=\"morphTargetsVertexDeclaration\",r=\"#ifdef MORPHTARGETS\\nattribute vec3 position{X};\\n#ifdef MORPHTARGETS_NORMAL\\nattribute vec3 normal{X};\\n#endif\\n#ifdef MORPHTARGETS_TANGENT\\nattribute vec3 tangent{X};\\n#endif\\n#ifdef MORPHTARGETS_UV\\nattribute vec2 uv_{X};\\n#endif\\n#endif\";i(5).a.IncludesShadersStore[n]=r},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return a}));var n=i(25),r=i(4),o=i(2),a=function(){function e(e){this._vertexBuffers={},this._scene=e}return e.prototype._prepareBuffers=function(){if(!this._vertexBuffers[r.b.PositionKind]){var e=[];e.push(1,1),e.push(-1,1),e.push(-1,-1),e.push(1,-1),this._vertexBuffers[r.b.PositionKind]=new r.b(this._scene.getEngine(),e,r.b.PositionKind,!1,!1,2),this._buildIndexBuffer()}},e.prototype._buildIndexBuffer=function(){var e=[];e.push(0),e.push(1),e.push(2),e.push(0),e.push(2),e.push(3),this._indexBuffer=this._scene.getEngine().createIndexBuffer(e)},e.prototype._rebuild=function(){var e=this._vertexBuffers[r.b.PositionKind];e&&(e._rebuild(),this._buildIndexBuffer())},e.prototype._prepareFrame=function(e,t){void 0===e&&(e=null),void 0===t&&(t=null);var i=this._scene.activeCamera;return!!i&&(!(!(t=t||i._postProcesses.filter((function(e){return null!=e})))||0===t.length||!this._scene.postProcessesEnabled)&&(t[0].activate(i,e,null!=t),!0))},e.prototype.directRender=function(e,t,i,r,o,a){void 0===t&&(t=null),void 0===i&&(i=!1),void 0===r&&(r=0),void 0===o&&(o=0),void 0===a&&(a=!1);for(var s=this._scene.getEngine(),c=0;c3?0:f,p);var C=o.a.CreateRibbon(e,{pathArray:S,closeArray:h,closePath:d,updatable:m,sideOrientation:g,invertUV:b,frontUVs:y||void 0,backUVs:T||void 0},_);return C._creationDataStorage.pathArray=S,C._creationDataStorage.path3D=E,C._creationDataStorage.cap=f,C},e}()},function(e,t,i){\"use strict\";i.d(t,\"b\",(function(){return h})),i.d(t,\"a\",(function(){return d}));var n=i(1),r=i(9),o=i(4),a=i(7),s=i(151),c=i(25),l=i(73),u=i(15),h=(i(166),i(167),function(e){function t(t,i,n,a,s,c,u){void 0===i&&(i=null),void 0===n&&(n=null),void 0===a&&(a=null);var h=e.call(this,t,i,n,a,s)||this;h.useVertexColor=c,h.useVertexAlpha=u,h.color=new r.a(1,1,1),h.alpha=1,a&&(h.color=a.color.clone(),h.alpha=a.alpha,h.useVertexColor=a.useVertexColor,h.useVertexAlpha=a.useVertexAlpha),h.intersectionThreshold=.1;var d={attributes:[o.b.PositionKind,\"world0\",\"world1\",\"world2\",\"world3\"],uniforms:[\"vClipPlane\",\"vClipPlane2\",\"vClipPlane3\",\"vClipPlane4\",\"vClipPlane5\",\"vClipPlane6\",\"world\",\"viewProjection\"],needAlphaBlending:!0,defines:[]};return!1===u&&(d.needAlphaBlending=!1),c?(d.defines.push(\"#define VERTEXCOLOR\"),d.attributes.push(o.b.ColorKind)):(d.uniforms.push(\"color\"),h.color4=new r.b),h._colorShader=new l.a(\"colorShader\",h.getScene(),\"color\",d),h}return Object(n.d)(t,e),t.prototype._addClipPlaneDefine=function(e){var t=\"#define \"+e;-1===this._colorShader.options.defines.indexOf(t)&&this._colorShader.options.defines.push(t)},t.prototype._removeClipPlaneDefine=function(e){var t=\"#define \"+e,i=this._colorShader.options.defines.indexOf(t);-1!==i&&this._colorShader.options.defines.splice(i,1)},t.prototype.isReady=function(){var t=this.getScene();return t.clipPlane?this._addClipPlaneDefine(\"CLIPPLANE\"):this._removeClipPlaneDefine(\"CLIPPLANE\"),t.clipPlane2?this._addClipPlaneDefine(\"CLIPPLANE2\"):this._removeClipPlaneDefine(\"CLIPPLANE2\"),t.clipPlane3?this._addClipPlaneDefine(\"CLIPPLANE3\"):this._removeClipPlaneDefine(\"CLIPPLANE3\"),t.clipPlane4?this._addClipPlaneDefine(\"CLIPPLANE4\"):this._removeClipPlaneDefine(\"CLIPPLANE4\"),t.clipPlane5?this._addClipPlaneDefine(\"CLIPPLANE5\"):this._removeClipPlaneDefine(\"CLIPPLANE5\"),t.clipPlane6?this._addClipPlaneDefine(\"CLIPPLANE6\"):this._removeClipPlaneDefine(\"CLIPPLANE6\"),!!this._colorShader.isReady(this)&&e.prototype.isReady.call(this)},t.prototype.getClassName=function(){return\"LinesMesh\"},Object.defineProperty(t.prototype,\"material\",{get:function(){return this._colorShader},set:function(e){},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"checkCollisions\",{get:function(){return!1},enumerable:!1,configurable:!0}),t.prototype._bind=function(e,t,i){if(!this._geometry)return this;var n=this._colorShader.getEffect(),r=this.isUnIndexed?null:this._geometry.getIndexBuffer();if(this._geometry._bind(n,r),!this.useVertexColor){var o=this.color,a=o.r,s=o.g,c=o.b;this.color4.set(a,s,c,this.alpha),this._colorShader.setColor4(\"color\",this.color4)}return u.a.BindClipPlane(n,this.getScene()),this},t.prototype._draw=function(e,t,i){if(!this._geometry||!this._geometry.getVertexBuffers()||!this._unIndexed&&!this._geometry.getIndexBuffer())return this;var n=this.getScene().getEngine();return this._unIndexed?n.drawArraysType(c.a.LineListDrawMode,e.verticesStart,e.verticesCount,i):n.drawElementsType(c.a.LineListDrawMode,e.indexStart,e.indexCount,i),this},t.prototype.dispose=function(t){this._colorShader.dispose(!1,!1,!0),e.prototype.dispose.call(this,t)},t.prototype.clone=function(e,i,n){return void 0===i&&(i=null),new t(e,this.getScene(),i,this,n)},t.prototype.createInstance=function(e){return new d(e,this)},t}(a.a)),d=function(e){function t(t,i){var n=e.call(this,t,i)||this;return n.intersectionThreshold=i.intersectionThreshold,n}return Object(n.d)(t,e),t.prototype.getClassName=function(){return\"InstancedLinesMesh\"},t}(s.a)},function(e,t,i){\"use strict\";i.r(t),i.d(t,\"AxesViewer\",(function(){return c})),i.d(t,\"BoneAxesViewer\",(function(){return h})),i.d(t,\"DebugLayerTab\",(function(){return n})),i.d(t,\"DebugLayer\",(function(){return m})),i.d(t,\"PhysicsViewer\",(function(){return A})),i.d(t,\"RayHelper\",(function(){return C})),i.d(t,\"SkeletonViewer\",(function(){return N}));var n,r=i(0),o=i(30),a=i(75),s=i(9),c=function(){function e(t,i,n,c,l,u){if(void 0===i&&(i=1),void 0===n&&(n=2),this._scaleLinesFactor=4,this._instanced=!1,this.scene=null,this.scaleLines=1,this.scaleLines=i,!c){var h=new o.a(\"\",t);h.disableLighting=!0,h.emissiveColor=s.a.Red().scale(.5),c=a.a._CreateArrow(t,h)}if(!l){var d=new o.a(\"\",t);d.disableLighting=!0,d.emissiveColor=s.a.Green().scale(.5),l=a.a._CreateArrow(t,d)}if(!u){var f=new o.a(\"\",t);f.disableLighting=!0,f.emissiveColor=s.a.Blue().scale(.5),u=a.a._CreateArrow(t,f)}this._xAxis=c,this._xAxis.scaling.setAll(this.scaleLines*this._scaleLinesFactor),this._yAxis=l,this._yAxis.scaling.setAll(this.scaleLines*this._scaleLinesFactor),this._zAxis=u,this._zAxis.scaling.setAll(this.scaleLines*this._scaleLinesFactor),null!=n&&(e._SetRenderingGroupId(this._xAxis,n),e._SetRenderingGroupId(this._yAxis,n),e._SetRenderingGroupId(this._zAxis,n)),this.scene=t,this.update(new r.e,r.e.Right(),r.e.Up(),r.e.Forward())}return Object.defineProperty(e.prototype,\"xAxis\",{get:function(){return this._xAxis},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"yAxis\",{get:function(){return this._yAxis},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"zAxis\",{get:function(){return this._zAxis},enumerable:!1,configurable:!0}),e.prototype.update=function(e,t,i,n){this._xAxis.position.copyFrom(e),this._xAxis.setDirection(t),this._xAxis.scaling.setAll(this.scaleLines*this._scaleLinesFactor),this._yAxis.position.copyFrom(e),this._yAxis.setDirection(i),this._yAxis.scaling.setAll(this.scaleLines*this._scaleLinesFactor),this._zAxis.position.copyFrom(e),this._zAxis.setDirection(n),this._zAxis.scaling.setAll(this.scaleLines*this._scaleLinesFactor)},e.prototype.createInstance=function(){var t=a.a._CreateArrowInstance(this.scene,this._xAxis),i=a.a._CreateArrowInstance(this.scene,this._yAxis),n=a.a._CreateArrowInstance(this.scene,this._zAxis),r=new e(this.scene,this.scaleLines,null,t,i,n);return r._instanced=!0,r},e.prototype.dispose=function(){this._xAxis&&this._xAxis.dispose(!1,!this._instanced),this._yAxis&&this._yAxis.dispose(!1,!this._instanced),this._zAxis&&this._zAxis.dispose(!1,!this._instanced),this.scene=null},e._SetRenderingGroupId=function(e,t){e.getChildMeshes().forEach((function(e){e.renderingGroupId=t}))},e}(),l=i(1),u=i(23),h=function(e){function t(t,i,n,o){void 0===o&&(o=1);var a=e.call(this,t,o)||this;return a.pos=r.e.Zero(),a.xaxis=r.e.Zero(),a.yaxis=r.e.Zero(),a.zaxis=r.e.Zero(),a.mesh=n,a.bone=i,a}return Object(l.d)(t,e),t.prototype.update=function(){if(this.mesh&&this.bone){var t=this.bone;t._markAsDirtyAndCompose(),t.getAbsolutePositionToRef(this.mesh,this.pos),t.getDirectionToRef(u.a.X,this.mesh,this.xaxis),t.getDirectionToRef(u.a.Y,this.mesh,this.yaxis),t.getDirectionToRef(u.a.Z,this.mesh,this.zaxis),e.prototype.update.call(this,this.pos,this.xaxis,this.yaxis,this.zaxis)}},t.prototype.dispose=function(){this.mesh&&(this.mesh=null,this.bone=null,e.prototype.dispose.call(this))},t}(c),d=i(12),f=i(6),p=i(20),_=i(13);Object.defineProperty(p.a.prototype,\"debugLayer\",{get:function(){return this._debugLayer||(this._debugLayer=new m(this)),this._debugLayer},enumerable:!0,configurable:!0}),function(e){e[e.Properties=0]=\"Properties\",e[e.Debug=1]=\"Debug\",e[e.Statistics=2]=\"Statistics\",e[e.Tools=3]=\"Tools\",e[e.Settings=4]=\"Settings\"}(n||(n={}));var m=function(){function e(e){var t=this;this.BJSINSPECTOR=this._getGlobalInspector(),this._scene=e,this._scene.onDisposeObservable.add((function(){t._scene._debugLayer&&t._scene._debugLayer.hide()}))}return Object.defineProperty(e.prototype,\"onPropertyChangedObservable\",{get:function(){return this.BJSINSPECTOR&&this.BJSINSPECTOR.Inspector?this.BJSINSPECTOR.Inspector.OnPropertyChangedObservable:(this._onPropertyChangedObservable||(this._onPropertyChangedObservable=new f.c),this._onPropertyChangedObservable)},enumerable:!1,configurable:!0}),e.prototype._createInspector=function(e){if(!this.isVisible()){if(this._onPropertyChangedObservable){for(var t=0,i=this._onPropertyChangedObservable.observers;t-1&&this._debugMeshMeshes.splice(o,1),this._numMeshes--,this._numMeshes>0?(this._meshes[n]=this._meshes[this._numMeshes],this._impostors[n]=this._impostors[this._numMeshes],this._meshes[this._numMeshes]=null,this._impostors[this._numMeshes]=null):(this._meshes[0]=null,this._impostors[0]=null),t=!0;break}t&&0===this._numMeshes&&this._scene.unregisterBeforeRender(this._renderFunction)}},e.prototype._getDebugMaterial=function(e){return this._debugMaterial||(this._debugMaterial=new o.a(\"\",e),this._debugMaterial.wireframe=!0,this._debugMaterial.emissiveColor=s.a.White(),this._debugMaterial.disableLighting=!0),this._debugMaterial},e.prototype._getDebugBoxMesh=function(e){return this._debugBoxMesh||(this._debugBoxMesh=v.a.CreateBox(\"physicsBodyBoxViewMesh\",{size:1},e),this._debugBoxMesh.rotationQuaternion=r.b.Identity(),this._debugBoxMesh.material=this._getDebugMaterial(e),this._debugBoxMesh.setEnabled(!1)),this._debugBoxMesh.createInstance(\"physicsBodyBoxViewInstance\")},e.prototype._getDebugSphereMesh=function(e){return this._debugSphereMesh||(this._debugSphereMesh=b.a.CreateSphere(\"physicsBodySphereViewMesh\",{diameter:1},e),this._debugSphereMesh.rotationQuaternion=r.b.Identity(),this._debugSphereMesh.material=this._getDebugMaterial(e),this._debugSphereMesh.setEnabled(!1)),this._debugSphereMesh.createInstance(\"physicsBodyBoxViewInstance\")},e.prototype._getDebugCylinderMesh=function(e){return this._debugCylinderMesh||(this._debugCylinderMesh=S.a.CreateCylinder(\"physicsBodyCylinderViewMesh\",{diameterTop:1,diameterBottom:1,height:1},e),this._debugCylinderMesh.rotationQuaternion=r.b.Identity(),this._debugCylinderMesh.material=this._getDebugMaterial(e),this._debugCylinderMesh.setEnabled(!1)),this._debugCylinderMesh.createInstance(\"physicsBodyBoxViewInstance\")},e.prototype._getDebugMeshMesh=function(e,t){var i=new g.a(e.name,t,null,e);return i.position=r.e.Zero(),i.setParent(e),i.material=this._getDebugMaterial(t),this._debugMeshMeshes.push(i),i},e.prototype._getDebugMesh=function(e,t){var i=this;if(!this._utilityLayer)return null;if(t&&t.parent&&t.parent.physicsImpostor)return null;var n=null,r=this._utilityLayer.utilityLayerScene;switch(e.type){case T.a.BoxImpostor:n=this._getDebugBoxMesh(r),e.getBoxSizeToRef(n.scaling);break;case T.a.SphereImpostor:n=this._getDebugSphereMesh(r);var o=e.getRadius();n.scaling.x=2*o,n.scaling.y=2*o,n.scaling.z=2*o;break;case T.a.MeshImpostor:t&&(n=this._getDebugMeshMesh(t,r));break;case T.a.NoImpostor:if(t)t.getChildMeshes().filter((function(e){return e.physicsImpostor?1:0})).forEach((function(e){i._getDebugBoxMesh(r).parent=e}));break;case T.a.CylinderImpostor:n=this._getDebugCylinderMesh(r);var a=e.object.getBoundingInfo();n.scaling.x=a.boundingBox.maximum.x-a.boundingBox.minimum.x,n.scaling.y=a.boundingBox.maximum.y-a.boundingBox.minimum.y,n.scaling.z=a.boundingBox.maximum.z-a.boundingBox.minimum.z}return n},e.prototype.dispose=function(){for(var e=this._numMeshes,t=0;te.DISPLAY_SPHERE_AND_SPURS&&(R=e.DISPLAY_LINES),this.displayMode=R,this.update(),this._bindObs()}return e.CreateBoneWeightShader=function(e,t){var i,n,r,o,a,c,l=e.skeleton,u=null!==(i=e.colorBase)&&void 0!==i?i:s.a.Black(),h=null!==(n=e.colorZero)&&void 0!==n?n:s.a.Blue(),d=null!==(r=e.colorQuarter)&&void 0!==r?r:s.a.Green(),f=null!==(o=e.colorHalf)&&void 0!==o?o:s.a.Yellow(),p=null!==(a=e.colorFull)&&void 0!==a?a:s.a.Red(),_=null!==(c=e.targetBoneIndex)&&void 0!==c?c:0;I.a.ShadersStore[\"boneWeights:\"+l.name+\"VertexShader\"]=\"precision highp float;\\n\\n attribute vec3 position;\\n attribute vec2 uv;\\n\\n uniform mat4 view;\\n uniform mat4 projection;\\n uniform mat4 worldViewProjection;\\n\\n #include\\n #if NUM_BONE_INFLUENCERS == 0\\n attribute vec4 matricesIndices;\\n attribute vec4 matricesWeights;\\n #endif\\n\\n #include\\n\\n varying vec3 vColor;\\n\\n uniform vec3 colorBase;\\n uniform vec3 colorZero;\\n uniform vec3 colorQuarter;\\n uniform vec3 colorHalf;\\n uniform vec3 colorFull;\\n\\n uniform float targetBoneIndex;\\n\\n void main() {\\n vec3 positionUpdated = position;\\n\\n #include\\n #include\\n\\n vec4 worldPos = finalWorld * vec4(positionUpdated, 1.0);\\n\\n vec3 color = colorBase;\\n float totalWeight = 0.;\\n if(matricesIndices[0] == targetBoneIndex && matricesWeights[0] > 0.){\\n totalWeight += matricesWeights[0];\\n }\\n if(matricesIndices[1] == targetBoneIndex && matricesWeights[1] > 0.){\\n totalWeight += matricesWeights[1];\\n }\\n if(matricesIndices[2] == targetBoneIndex && matricesWeights[2] > 0.){\\n totalWeight += matricesWeights[2];\\n }\\n if(matricesIndices[3] == targetBoneIndex && matricesWeights[3] > 0.){\\n totalWeight += matricesWeights[3];\\n }\\n\\n color = mix(color, colorZero, smoothstep(0., 0.25, totalWeight));\\n color = mix(color, colorQuarter, smoothstep(0.25, 0.5, totalWeight));\\n color = mix(color, colorHalf, smoothstep(0.5, 0.75, totalWeight));\\n color = mix(color, colorFull, smoothstep(0.75, 1.0, totalWeight));\\n vColor = color;\\n\\n gl_Position = projection * view * worldPos;\\n }\",I.a.ShadersStore[\"boneWeights:\"+l.name+\"FragmentShader\"]=\"\\n precision highp float;\\n varying vec3 vPosition;\\n\\n varying vec3 vColor;\\n\\n void main() {\\n vec4 color = vec4(vColor, 1.0);\\n gl_FragColor = color;\\n }\\n \";var m=new x.a(\"boneWeight:\"+l.name,t,{vertex:\"boneWeights:\"+l.name,fragment:\"boneWeights:\"+l.name},{attributes:[\"position\",\"normal\",\"matricesIndices\",\"matricesWeights\"],uniforms:[\"world\",\"worldView\",\"worldViewProjection\",\"view\",\"projection\",\"viewProjection\",\"colorBase\",\"colorZero\",\"colorQuarter\",\"colorHalf\",\"colorFull\",\"targetBoneIndex\"]});return m.setColor3(\"colorBase\",u),m.setColor3(\"colorZero\",h),m.setColor3(\"colorQuarter\",d),m.setColor3(\"colorHalf\",f),m.setColor3(\"colorFull\",p),m.setFloat(\"targetBoneIndex\",_),m.getClassName=function(){return\"BoneWeightShader\"},m.transparencyMode=R.a.MATERIAL_OPAQUE,m},e.CreateSkeletonMapShader=function(t,i){var n,r=t.skeleton,o=null!==(n=t.colorMap)&&void 0!==n?n:[{color:new s.a(1,.38,.18),location:0},{color:new s.a(.59,.18,1),location:.2},{color:new s.a(.59,1,.18),location:.4},{color:new s.a(1,.87,.17),location:.6},{color:new s.a(1,.17,.42),location:.8},{color:new s.a(.17,.68,1),location:1}],a=r.bones.length+1,c=e._CreateBoneMapColorBuffer(a,o,i),l=new x.a(\"boneWeights:\"+r.name,i,{vertexSource:\"precision highp float;\\n\\n attribute vec3 position;\\n attribute vec2 uv;\\n\\n uniform mat4 view;\\n uniform mat4 projection;\\n uniform mat4 worldViewProjection;\\n uniform float colorMap[\"+4*r.bones.length+\"];\\n\\n #include\\n #if NUM_BONE_INFLUENCERS == 0\\n attribute vec4 matricesIndices;\\n attribute vec4 matricesWeights;\\n #endif\\n #include\\n\\n varying vec3 vColor;\\n\\n void main() {\\n vec3 positionUpdated = position;\\n\\n #include\\n #include\\n\\n vec3 color = vec3(0.);\\n bool first = true;\\n\\n for (int i = 0; i < 4; i++) {\\n int boneIdx = int(matricesIndices[i]);\\n float boneWgt = matricesWeights[i];\\n\\n vec3 c = vec3(colorMap[boneIdx * 4 + 0], colorMap[boneIdx * 4 + 1], colorMap[boneIdx * 4 + 2]);\\n\\n if (boneWgt > 0.) {\\n if (first) {\\n first = false;\\n color = c;\\n } else {\\n color = mix(color, c, boneWgt);\\n }\\n }\\n }\\n\\n vColor = color;\\n\\n vec4 worldPos = finalWorld * vec4(positionUpdated, 1.0);\\n\\n gl_Position = projection * view * worldPos;\\n }\",fragmentSource:\"\\n precision highp float;\\n varying vec3 vColor;\\n\\n void main() {\\n vec4 color = vec4( vColor, 1.0 );\\n gl_FragColor = color;\\n }\\n \"},{attributes:[\"position\",\"normal\",\"matricesIndices\",\"matricesWeights\"],uniforms:[\"world\",\"worldView\",\"worldViewProjection\",\"view\",\"projection\",\"viewProjection\",\"colorMap\"]});return l.setFloats(\"colorMap\",c),l.getClassName=function(){return\"SkeletonMapShader\"},l.transparencyMode=R.a.MATERIAL_OPAQUE,l},e._CreateBoneMapColorBuffer=function(e,t,i){var n=new O.a(\"temp\",{width:e,height:1},i,!1),r=n.getContext(),o=r.createLinearGradient(0,0,e,0);t.forEach((function(e){o.addColorStop(e.location,e.color.toHexString())})),r.fillStyle=o,r.fillRect(0,0,e,1),n.update();for(var a=[],s=r.getImageData(0,0,e,1).data,c=0;ce.DISPLAY_SPHERE_AND_SPURS&&(t=e.DISPLAY_LINES),this.options.displayMode=t},enumerable:!1,configurable:!0}),e.prototype._bindObs=function(){var t=this;switch(this.displayMode){case e.DISPLAY_LINES:this._obs=this.scene.onBeforeRenderObservable.add((function(){t._displayLinesUpdate()}))}},e.prototype.update=function(){switch(this.displayMode){case e.DISPLAY_LINES:this._displayLinesUpdate();break;case e.DISPLAY_SPHERES:this._buildSpheresAndSpurs(!0);break;case e.DISPLAY_SPHERE_AND_SPURS:this._buildSpheresAndSpurs(!1)}this._buildLocalAxes()},Object.defineProperty(e.prototype,\"isEnabled\",{get:function(){return this._isEnabled},set:function(e){this.isEnabled!==e&&(this._isEnabled=e,this.debugMesh&&this.debugMesh.setEnabled(e),e&&!this._obs?this._bindObs():!e&&this._obs&&(this.scene.onBeforeRenderObservable.remove(this._obs),this._obs=null))},enumerable:!1,configurable:!0}),e.prototype._getBonePosition=function(e,t,i,n,o,a){void 0===n&&(n=0),void 0===o&&(o=0),void 0===a&&(a=0);var s=r.c.Matrix[0],c=t.getParent();if(s.copyFrom(t.getLocalMatrix()),0!==n||0!==o||0!==a){var l=r.c.Matrix[1];r.a.IdentityToRef(l),l.setTranslationFromFloats(n,o,a),l.multiplyToRef(s,s)}c&&s.multiplyToRef(c.getAbsoluteTransform(),s),s.multiplyToRef(i,s),e.x=s.m[12],e.y=s.m[13],e.z=s.m[14]},e.prototype._getLinesForBonesWithLength=function(e,t){for(var i=e.length,n=this.mesh._effectiveMesh.position,o=0,a=0;a=0;a--){var s=e[a],c=s.getParent();if(c&&(this._boneIndices.has(s.getIndex())||this.options.useAllBones)){var l=this._debugLines[i];l||(l=[r.e.Zero(),r.e.Zero()],this._debugLines[i]=l),s.getAbsolutePositionToRef(n,l[0]),c.getAbsolutePositionToRef(n,l[1]),l[0].subtractInPlace(o),l[1].subtractInPlace(o),i++}}},e.prototype._revert=function(e){this.options.pauseAnimations&&(this.scene.animationsEnabled=e,this.utilityLayer.utilityLayerScene.animationsEnabled=e)},e.prototype._getAbsoluteBindPoseToRef=function(e,t){null!==e&&-1!==e._index?(this._getAbsoluteBindPoseToRef(e.getParent(),t),e.getBindPose().multiplyToRef(t,t)):t.copyFrom(r.a.Identity())},e.prototype._buildSpheresAndSpurs=function(e){var t,i;void 0===e&&(e=!0),this._debugMesh&&(this._debugMesh.dispose(),this._debugMesh=null,this.ready=!1),this._ready=!1;var n=null===(t=this.utilityLayer)||void 0===t?void 0:t.utilityLayerScene,o=this.skeleton.bones,a=[],s=[],c=this.scene.animationsEnabled;try{this.options.pauseAnimations&&(this.scene.animationsEnabled=!1,n.animationsEnabled=!1),this.options.returnToRest&&this.skeleton.returnToRest(),this.autoUpdateBonesMatrices&&this.skeleton.computeAbsoluteTransforms();for(var l=Number.NEGATIVE_INFINITY,u=this.options.displayOptions||{},h=function(t){var i=o[t];if(-1===i._index||!d._boneIndices.has(i.getIndex())&&!d.options.useAllBones)return\"continue\";var c=new r.a;d._getAbsoluteBindPoseToRef(i,c);var h=new r.e;c.decompose(void 0,void 0,h),i.children.forEach((function(t,o){var a=new r.a;t.getBindPose().multiplyToRef(c,a);var d=new r.e;a.decompose(void 0,void 0,d);var f=r.e.Distance(h,d);if(f>l&&(l=f),!e){for(var p=d.clone().subtract(h.clone()),_=p.length(),m=p.normalize().scale(_),v=u.midStep||.165,b=u.midStepFactor||.215,y=m.scale(v),T=D.a.ExtrudeShapeCustom(\"skeletonViewer\",{shape:[new r.e(1,-1,0),new r.e(1,1,0),new r.e(-1,1,0),new r.e(-1,-1,0),new r.e(1,-1,0)],path:[r.e.Zero(),y,m],scaleFunction:function(e){switch(e){case 0:case 2:return 0;case 1:return _*b}return 0},sideOrientation:g.a.DEFAULTSIDE,updatable:!1},n),E=T.getTotalVertices(),S=[],A=[],P=0;P9?A.push(t.getIndex(),0,0,0):A.push(i.getIndex(),0,0,0);T.position=h.clone(),T.setVerticesData(M.b.MatricesWeightsKind,S,!1),T.setVerticesData(M.b.MatricesIndicesKind,A,!1),T.convertToFlatShadedMesh(),s.push(T)}}));for(var f=u.sphereBaseSize||.2,p=b.a.CreateSphere(\"skeletonViewer\",{segments:6,diameter:f,updatable:!0},n),_=p.getTotalVertices(),m=[],v=[],y=0;y<_;y++)m.push(1,0,0,0),v.push(i.getIndex(),0,0,0);p.setVerticesData(M.b.MatricesWeightsKind,m,!1),p.setVerticesData(M.b.MatricesIndicesKind,v,!1),p.position=h.clone(),a.push([p,i])},d=this,f=0;fu-n)&&(!(c-hh-r)&&!(l-dd-a))},e.prototype.intersectsSphere=function(t){return e.IntersectsSphere(this.minimumWorld,this.maximumWorld,t.centerWorld,t.radiusWorld)},e.prototype.intersectsMinMax=function(e,t){var i=this.minimumWorld,n=this.maximumWorld,r=i.x,o=i.y,a=i.z,s=n.x,c=n.y,l=n.z,u=e.x,h=e.y,d=e.z,f=t.x,p=t.y,_=t.z;return!(sf)&&(!(cp)&&!(l_))},e.Intersects=function(e,t){return e.intersectsMinMax(t.minimumWorld,t.maximumWorld)},e.IntersectsSphere=function(t,i,n,o){var a=e.TmpVector3[0];return r.e.ClampToRef(n,t,i,a),r.e.DistanceSquared(n,a)<=o*o},e.IsCompletelyInFrustum=function(e,t){for(var i=0;i<6;++i)for(var n=t[i],r=0;r<8;++r)if(n.dotCoordinate(e[r])<0)return!1;return!0},e.IsInFrustum=function(e,t){for(var i=0;i<6;++i){for(var n=!0,r=t[i],o=0;o<8;++o)if(r.dotCoordinate(e[o])>=0){n=!1;break}if(n)return!1}return!0},e.TmpVector3=n.a.BuildArray(3,r.e.Zero),e}()},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return r}));var n=i(38),r=function(){function e(){}return e.SetImmediate=function(e){n.a.IsWindowObjectExist()&&window.setImmediate?window.setImmediate(e):setTimeout(e,1)},e}()},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return o}));var n=i(0),r=i(2),o=function(){function e(){this.previousWorldMatrices={},this.previousBones={}}return e.AddUniforms=function(e){e.push(\"previousWorld\",\"previousViewProjection\")},e.AddSamplers=function(e){},e.prototype.bindForSubMesh=function(e,t,i,o,a){t.prePassRenderer&&t.prePassRenderer.enabled&&-1!==t.prePassRenderer.getIndex(r.a.PREPASS_VELOCITY_TEXTURE_TYPE)&&(this.previousWorldMatrices[i.uniqueId]||(this.previousWorldMatrices[i.uniqueId]=n.a.Identity()),this.previousViewProjection||(this.previousViewProjection=t.getTransformMatrix()),e.setMatrix(\"previousWorld\",this.previousWorldMatrices[i.uniqueId]),e.setMatrix(\"previousViewProjection\",this.previousViewProjection),this.previousWorldMatrices[i.uniqueId]=o.clone(),this.previousViewProjection=t.getTransformMatrix().clone())},e}()},function(e,t,i){\"use strict\";var n=\"lightFragmentDeclaration\",r=\"#ifdef LIGHT{X}\\nuniform vec4 vLightData{X};\\nuniform vec4 vLightDiffuse{X};\\n#ifdef SPECULARTERM\\nuniform vec4 vLightSpecular{X};\\n#else\\nvec4 vLightSpecular{X}=vec4(0.);\\n#endif\\n#ifdef SHADOW{X}\\n#ifdef SHADOWCSM{X}\\nuniform mat4 lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}];\\nuniform float viewFrustumZ{X}[SHADOWCSMNUM_CASCADES{X}];\\nuniform float frustumLengths{X}[SHADOWCSMNUM_CASCADES{X}];\\nuniform float cascadeBlendFactor{X};\\nvarying vec4 vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}];\\nvarying float vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}];\\nvarying vec4 vPositionFromCamera{X};\\n#if defined(SHADOWPCSS{X})\\nuniform highp sampler2DArrayShadow shadowSampler{X};\\nuniform highp sampler2DArray depthSampler{X};\\nuniform vec2 lightSizeUVCorrection{X}[SHADOWCSMNUM_CASCADES{X}];\\nuniform float depthCorrection{X}[SHADOWCSMNUM_CASCADES{X}];\\nuniform float penumbraDarkness{X};\\n#elif defined(SHADOWPCF{X})\\nuniform highp sampler2DArrayShadow shadowSampler{X};\\n#else\\nuniform highp sampler2DArray shadowSampler{X};\\n#endif\\n#ifdef SHADOWCSMDEBUG{X}\\nconst vec3 vCascadeColorsMultiplier{X}[8]=vec3[8]\\n(\\nvec3 ( 1.5,0.0,0.0 ),\\nvec3 ( 0.0,1.5,0.0 ),\\nvec3 ( 0.0,0.0,5.5 ),\\nvec3 ( 1.5,0.0,5.5 ),\\nvec3 ( 1.5,1.5,0.0 ),\\nvec3 ( 1.0,1.0,1.0 ),\\nvec3 ( 0.0,1.0,5.5 ),\\nvec3 ( 0.5,3.5,0.75 )\\n);\\nvec3 shadowDebug{X};\\n#endif\\n#ifdef SHADOWCSMUSESHADOWMAXZ{X}\\nint index{X}=-1;\\n#else\\nint index{X}=SHADOWCSMNUM_CASCADES{X}-1;\\n#endif\\nfloat diff{X}=0.;\\n#elif defined(SHADOWCUBE{X})\\nuniform samplerCube shadowSampler{X};\\n#else\\nvarying vec4 vPositionFromLight{X};\\nvarying float vDepthMetric{X};\\n#if defined(SHADOWPCSS{X})\\nuniform highp sampler2DShadow shadowSampler{X};\\nuniform highp sampler2D depthSampler{X};\\n#elif defined(SHADOWPCF{X})\\nuniform highp sampler2DShadow shadowSampler{X};\\n#else\\nuniform sampler2D shadowSampler{X};\\n#endif\\nuniform mat4 lightMatrix{X};\\n#endif\\nuniform vec4 shadowsInfo{X};\\nuniform vec2 depthValues{X};\\n#endif\\n#ifdef SPOTLIGHT{X}\\nuniform vec4 vLightDirection{X};\\nuniform vec4 vLightFalloff{X};\\n#elif defined(POINTLIGHT{X})\\nuniform vec4 vLightFalloff{X};\\n#elif defined(HEMILIGHT{X})\\nuniform vec3 vLightGround{X};\\n#endif\\n#ifdef PROJECTEDLIGHTTEXTURE{X}\\nuniform mat4 textureProjectionMatrix{X};\\nuniform sampler2D projectionLightSampler{X};\\n#endif\\n#endif\";i(5).a.IncludesShadersStore[n]=r},function(e,t,i){\"use strict\";var n=\"lightUboDeclaration\",r=\"#ifdef LIGHT{X}\\nuniform Light{X}\\n{\\nvec4 vLightData;\\nvec4 vLightDiffuse;\\nvec4 vLightSpecular;\\n#ifdef SPOTLIGHT{X}\\nvec4 vLightDirection;\\nvec4 vLightFalloff;\\n#elif defined(POINTLIGHT{X})\\nvec4 vLightFalloff;\\n#elif defined(HEMILIGHT{X})\\nvec3 vLightGround;\\n#endif\\nvec4 shadowsInfo;\\nvec2 depthValues;\\n} light{X};\\n#ifdef PROJECTEDLIGHTTEXTURE{X}\\nuniform mat4 textureProjectionMatrix{X};\\nuniform sampler2D projectionLightSampler{X};\\n#endif\\n#ifdef SHADOW{X}\\n#ifdef SHADOWCSM{X}\\nuniform mat4 lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}];\\nuniform float viewFrustumZ{X}[SHADOWCSMNUM_CASCADES{X}];\\nuniform float frustumLengths{X}[SHADOWCSMNUM_CASCADES{X}];\\nuniform float cascadeBlendFactor{X};\\nvarying vec4 vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}];\\nvarying float vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}];\\nvarying vec4 vPositionFromCamera{X};\\n#if defined(SHADOWPCSS{X})\\nuniform highp sampler2DArrayShadow shadowSampler{X};\\nuniform highp sampler2DArray depthSampler{X};\\nuniform vec2 lightSizeUVCorrection{X}[SHADOWCSMNUM_CASCADES{X}];\\nuniform float depthCorrection{X}[SHADOWCSMNUM_CASCADES{X}];\\nuniform float penumbraDarkness{X};\\n#elif defined(SHADOWPCF{X})\\nuniform highp sampler2DArrayShadow shadowSampler{X};\\n#else\\nuniform highp sampler2DArray shadowSampler{X};\\n#endif\\n#ifdef SHADOWCSMDEBUG{X}\\nconst vec3 vCascadeColorsMultiplier{X}[8]=vec3[8]\\n(\\nvec3 ( 1.5,0.0,0.0 ),\\nvec3 ( 0.0,1.5,0.0 ),\\nvec3 ( 0.0,0.0,5.5 ),\\nvec3 ( 1.5,0.0,5.5 ),\\nvec3 ( 1.5,1.5,0.0 ),\\nvec3 ( 1.0,1.0,1.0 ),\\nvec3 ( 0.0,1.0,5.5 ),\\nvec3 ( 0.5,3.5,0.75 )\\n);\\nvec3 shadowDebug{X};\\n#endif\\n#ifdef SHADOWCSMUSESHADOWMAXZ{X}\\nint index{X}=-1;\\n#else\\nint index{X}=SHADOWCSMNUM_CASCADES{X}-1;\\n#endif\\nfloat diff{X}=0.;\\n#elif defined(SHADOWCUBE{X})\\nuniform samplerCube shadowSampler{X};\\n#else\\nvarying vec4 vPositionFromLight{X};\\nvarying float vDepthMetric{X};\\n#if defined(SHADOWPCSS{X})\\nuniform highp sampler2DShadow shadowSampler{X};\\nuniform highp sampler2D depthSampler{X};\\n#elif defined(SHADOWPCF{X})\\nuniform highp sampler2DShadow shadowSampler{X};\\n#else\\nuniform sampler2D shadowSampler{X};\\n#endif\\nuniform mat4 lightMatrix{X};\\n#endif\\n#endif\\n#endif\";i(5).a.IncludesShadersStore[n]=r},function(e,t,i){\"use strict\";var n=\"imageProcessingDeclaration\",r=\"#ifdef EXPOSURE\\nuniform float exposureLinear;\\n#endif\\n#ifdef CONTRAST\\nuniform float contrast;\\n#endif\\n#ifdef VIGNETTE\\nuniform vec2 vInverseScreenSize;\\nuniform vec4 vignetteSettings1;\\nuniform vec4 vignetteSettings2;\\n#endif\\n#ifdef COLORCURVES\\nuniform vec4 vCameraColorCurveNegative;\\nuniform vec4 vCameraColorCurveNeutral;\\nuniform vec4 vCameraColorCurvePositive;\\n#endif\\n#ifdef COLORGRADING\\n#ifdef COLORGRADING3D\\nuniform highp sampler3D txColorTransform;\\n#else\\nuniform sampler2D txColorTransform;\\n#endif\\nuniform vec4 colorTransformSettings;\\n#endif\";i(5).a.IncludesShadersStore[n]=r},function(e,t,i){\"use strict\";var n=\"imageProcessingFunctions\",r=\"#if defined(COLORGRADING) && !defined(COLORGRADING3D)\\n\\n#define inline\\nvec3 sampleTexture3D(sampler2D colorTransform,vec3 color,vec2 sampler3dSetting)\\n{\\nfloat sliceSize=2.0*sampler3dSetting.x;\\n#ifdef SAMPLER3DGREENDEPTH\\nfloat sliceContinuous=(color.g-sampler3dSetting.x)*sampler3dSetting.y;\\n#else\\nfloat sliceContinuous=(color.b-sampler3dSetting.x)*sampler3dSetting.y;\\n#endif\\nfloat sliceInteger=floor(sliceContinuous);\\n\\n\\nfloat sliceFraction=sliceContinuous-sliceInteger;\\n#ifdef SAMPLER3DGREENDEPTH\\nvec2 sliceUV=color.rb;\\n#else\\nvec2 sliceUV=color.rg;\\n#endif\\nsliceUV.x*=sliceSize;\\nsliceUV.x+=sliceInteger*sliceSize;\\nsliceUV=saturate(sliceUV);\\nvec4 slice0Color=texture2D(colorTransform,sliceUV);\\nsliceUV.x+=sliceSize;\\nsliceUV=saturate(sliceUV);\\nvec4 slice1Color=texture2D(colorTransform,sliceUV);\\nvec3 result=mix(slice0Color.rgb,slice1Color.rgb,sliceFraction);\\n#ifdef SAMPLER3DBGRMAP\\ncolor.rgb=result.rgb;\\n#else\\ncolor.rgb=result.bgr;\\n#endif\\nreturn color;\\n}\\n#endif\\n#ifdef TONEMAPPING_ACES\\n\\n\\n\\n\\n\\nconst mat3 ACESInputMat=mat3(\\nvec3(0.59719,0.07600,0.02840),\\nvec3(0.35458,0.90834,0.13383),\\nvec3(0.04823,0.01566,0.83777)\\n);\\n\\nconst mat3 ACESOutputMat=mat3(\\nvec3( 1.60475,-0.10208,-0.00327),\\nvec3(-0.53108,1.10813,-0.07276),\\nvec3(-0.07367,-0.00605,1.07602)\\n);\\nvec3 RRTAndODTFit(vec3 v)\\n{\\nvec3 a=v*(v+0.0245786)-0.000090537;\\nvec3 b=v*(0.983729*v+0.4329510)+0.238081;\\nreturn a/b;\\n}\\nvec3 ACESFitted(vec3 color)\\n{\\ncolor=ACESInputMat*color;\\n\\ncolor=RRTAndODTFit(color);\\ncolor=ACESOutputMat*color;\\n\\ncolor=saturate(color);\\nreturn color;\\n}\\n#endif\\nvec4 applyImageProcessing(vec4 result) {\\n#ifdef EXPOSURE\\nresult.rgb*=exposureLinear;\\n#endif\\n#ifdef VIGNETTE\\n\\nvec2 viewportXY=gl_FragCoord.xy*vInverseScreenSize;\\nviewportXY=viewportXY*2.0-1.0;\\nvec3 vignetteXY1=vec3(viewportXY*vignetteSettings1.xy+vignetteSettings1.zw,1.0);\\nfloat vignetteTerm=dot(vignetteXY1,vignetteXY1);\\nfloat vignette=pow(vignetteTerm,vignetteSettings2.w);\\n\\nvec3 vignetteColor=vignetteSettings2.rgb;\\n#ifdef VIGNETTEBLENDMODEMULTIPLY\\nvec3 vignetteColorMultiplier=mix(vignetteColor,vec3(1,1,1),vignette);\\nresult.rgb*=vignetteColorMultiplier;\\n#endif\\n#ifdef VIGNETTEBLENDMODEOPAQUE\\nresult.rgb=mix(vignetteColor,result.rgb,vignette);\\n#endif\\n#endif\\n#ifdef TONEMAPPING\\n#ifdef TONEMAPPING_ACES\\nresult.rgb=ACESFitted(result.rgb);\\n#else\\nconst float tonemappingCalibration=1.590579;\\nresult.rgb=1.0-exp2(-tonemappingCalibration*result.rgb);\\n#endif\\n#endif\\n\\nresult.rgb=toGammaSpace(result.rgb);\\nresult.rgb=saturate(result.rgb);\\n#ifdef CONTRAST\\n\\nvec3 resultHighContrast=result.rgb*result.rgb*(3.0-2.0*result.rgb);\\nif (contrast<1.0) {\\n\\nresult.rgb=mix(vec3(0.5,0.5,0.5),result.rgb,contrast);\\n} else {\\n\\nresult.rgb=mix(result.rgb,resultHighContrast,contrast-1.0);\\n}\\n#endif\\n\\n#ifdef COLORGRADING\\nvec3 colorTransformInput=result.rgb*colorTransformSettings.xxx+colorTransformSettings.yyy;\\n#ifdef COLORGRADING3D\\nvec3 colorTransformOutput=texture(txColorTransform,colorTransformInput).rgb;\\n#else\\nvec3 colorTransformOutput=sampleTexture3D(txColorTransform,colorTransformInput,colorTransformSettings.yz).rgb;\\n#endif\\nresult.rgb=mix(result.rgb,colorTransformOutput,colorTransformSettings.www);\\n#endif\\n#ifdef COLORCURVES\\n\\nfloat luma=getLuminance(result.rgb);\\nvec2 curveMix=clamp(vec2(luma*3.0-1.5,luma*-3.0+1.5),vec2(0.0),vec2(1.0));\\nvec4 colorCurve=vCameraColorCurveNeutral+curveMix.x*vCameraColorCurvePositive-curveMix.y*vCameraColorCurveNegative;\\nresult.rgb*=colorCurve.rgb;\\nresult.rgb=mix(vec3(luma),result.rgb,colorCurve.a);\\n#endif\\nreturn result;\\n}\";i(5).a.IncludesShadersStore[n]=r},function(e,t,i){\"use strict\";var n=\"clipPlaneFragment\",r=\"#ifdef CLIPPLANE\\nif (fClipDistance>0.0)\\n{\\ndiscard;\\n}\\n#endif\\n#ifdef CLIPPLANE2\\nif (fClipDistance2>0.0)\\n{\\ndiscard;\\n}\\n#endif\\n#ifdef CLIPPLANE3\\nif (fClipDistance3>0.0)\\n{\\ndiscard;\\n}\\n#endif\\n#ifdef CLIPPLANE4\\nif (fClipDistance4>0.0)\\n{\\ndiscard;\\n}\\n#endif\\n#ifdef CLIPPLANE5\\nif (fClipDistance5>0.0)\\n{\\ndiscard;\\n}\\n#endif\\n#ifdef CLIPPLANE6\\nif (fClipDistance6>0.0)\\n{\\ndiscard;\\n}\\n#endif\";i(5).a.IncludesShadersStore[n]=r},function(e,t,i){\"use strict\";var n=\"clipPlaneVertex\",r=\"#ifdef CLIPPLANE\\nfClipDistance=dot(worldPos,vClipPlane);\\n#endif\\n#ifdef CLIPPLANE2\\nfClipDistance2=dot(worldPos,vClipPlane2);\\n#endif\\n#ifdef CLIPPLANE3\\nfClipDistance3=dot(worldPos,vClipPlane3);\\n#endif\\n#ifdef CLIPPLANE4\\nfClipDistance4=dot(worldPos,vClipPlane4);\\n#endif\\n#ifdef CLIPPLANE5\\nfClipDistance5=dot(worldPos,vClipPlane5);\\n#endif\\n#ifdef CLIPPLANE6\\nfClipDistance6=dot(worldPos,vClipPlane6);\\n#endif\";i(5).a.IncludesShadersStore[n]=r},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return n}));var n=function(){function e(){this._count=0,this._data={}}return e.prototype.copyFrom=function(e){var t=this;this.clear(),e.forEach((function(e,i){return t.add(e,i)}))},e.prototype.get=function(e){var t=this._data[e];if(void 0!==t)return t},e.prototype.getOrAddWithFactory=function(e,t){var i=this.get(e);return void 0!==i||(i=t(e))&&this.add(e,i),i},e.prototype.getOrAdd=function(e,t){var i=this.get(e);return void 0!==i?i:(this.add(e,t),t)},e.prototype.contains=function(e){return void 0!==this._data[e]},e.prototype.add=function(e,t){return void 0===this._data[e]&&(this._data[e]=t,++this._count,!0)},e.prototype.set=function(e,t){return void 0!==this._data[e]&&(this._data[e]=t,!0)},e.prototype.getAndRemove=function(e){var t=this.get(e);return void 0!==t?(delete this._data[e],--this._count,t):null},e.prototype.remove=function(e){return!!this.contains(e)&&(delete this._data[e],--this._count,!0)},e.prototype.clear=function(){this._data={},this._count=0},Object.defineProperty(e.prototype,\"count\",{get:function(){return this._count},enumerable:!1,configurable:!0}),e.prototype.forEach=function(e){for(var t in this._data){e(t,this._data[t])}},e.prototype.first=function(e){for(var t in this._data){var i=e(t,this._data[t]);if(i)return i}return null},e}()},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return o}));var n=i(44),r=i(0),o=function(){function e(e,t,i){this.center=r.e.Zero(),this.centerWorld=r.e.Zero(),this.minimum=r.e.Zero(),this.maximum=r.e.Zero(),this.reConstruct(e,t,i)}return e.prototype.reConstruct=function(e,t,i){this.minimum.copyFrom(e),this.maximum.copyFrom(t);var n=r.e.Distance(e,t);t.addToRef(e,this.center).scaleInPlace(.5),this.radius=.5*n,this._update(i||r.a.IdentityReadOnly)},e.prototype.scale=function(t){var i=this.radius*t,n=e.TmpVector3,r=n[0].setAll(i),o=this.center.subtractToRef(r,n[1]),a=this.center.addToRef(r,n[2]);return this.reConstruct(o,a,this._worldMatrix),this},e.prototype.getWorldMatrix=function(){return this._worldMatrix},e.prototype._update=function(t){if(t.isIdentity())this.centerWorld.copyFrom(this.center),this.radiusWorld=this.radius;else{r.e.TransformCoordinatesToRef(this.center,t,this.centerWorld);var i=e.TmpVector3[0];r.e.TransformNormalFromFloatsToRef(1,1,1,t,i),this.radiusWorld=Math.max(Math.abs(i.x),Math.abs(i.y),Math.abs(i.z))*this.radius}},e.prototype.isInFrustum=function(e){for(var t=this.centerWorld,i=this.radiusWorld,n=0;n<6;n++)if(e[n].dotCoordinate(t)<=-i)return!1;return!0},e.prototype.isCenterInFrustum=function(e){for(var t=this.centerWorld,i=0;i<6;i++)if(e[i].dotCoordinate(t)<0)return!1;return!0},e.prototype.intersectsPoint=function(e){var t=r.e.DistanceSquared(this.centerWorld,e);return!(this.radiusWorld*this.radiusWorld=r&&0===i?t instanceof Array?this._gl.bufferSubData(this._gl.ARRAY_BUFFER,i,new Float32Array(t)):this._gl.bufferSubData(this._gl.ARRAY_BUFFER,i,t):t instanceof Array?this._gl.bufferSubData(this._gl.ARRAY_BUFFER,0,new Float32Array(t).subarray(i,i+n)):(t=t instanceof ArrayBuffer?new Uint8Array(t,i,n):new Uint8Array(t.buffer,t.byteOffset+i,n),this._gl.bufferSubData(this._gl.ARRAY_BUFFER,0,t)),this._resetVertexBufferBinding()}},function(e,t,i){\"use strict\";var n=\"fogFragmentDeclaration\",r=\"#ifdef FOG\\n#define FOGMODE_NONE 0.\\n#define FOGMODE_EXP 1.\\n#define FOGMODE_EXP2 2.\\n#define FOGMODE_LINEAR 3.\\n#define E 2.71828\\nuniform vec4 vFogInfos;\\nuniform vec3 vFogColor;\\nvarying vec3 vFogDistance;\\nfloat CalcFogFactor()\\n{\\nfloat fogCoeff=1.0;\\nfloat fogStart=vFogInfos.y;\\nfloat fogEnd=vFogInfos.z;\\nfloat fogDensity=vFogInfos.w;\\nfloat fogDistance=length(vFogDistance);\\nif (FOGMODE_LINEAR == vFogInfos.x)\\n{\\nfogCoeff=(fogEnd-fogDistance)/(fogEnd-fogStart);\\n}\\nelse if (FOGMODE_EXP == vFogInfos.x)\\n{\\nfogCoeff=1.0/pow(E,fogDistance*fogDensity);\\n}\\nelse if (FOGMODE_EXP2 == vFogInfos.x)\\n{\\nfogCoeff=1.0/pow(E,fogDistance*fogDistance*fogDensity*fogDensity);\\n}\\nreturn clamp(fogCoeff,0.0,1.0);\\n}\\n#endif\";i(5).a.IncludesShadersStore[n]=r},function(e,t,i){\"use strict\";var n=i(26),r=i(27);n.a.prototype.createDynamicTexture=function(e,t,i,o){var a=new r.a(this,r.b.Dynamic);return a.baseWidth=e,a.baseHeight=t,i&&(e=this.needPOTTextures?n.a.GetExponentOfTwo(e,this._caps.maxTextureSize):e,t=this.needPOTTextures?n.a.GetExponentOfTwo(t,this._caps.maxTextureSize):t),a.width=e,a.height=t,a.isReady=!1,a.generateMipMaps=i,a.samplingMode=o,this.updateTextureSamplingMode(o,a),this._internalTexturesCache.push(a),a},n.a.prototype.updateDynamicTexture=function(e,t,i,n,r,o){if(void 0===n&&(n=!1),void 0===o&&(o=!1),e){var a=this._gl,s=a.TEXTURE_2D,c=this._bindTextureDirectly(s,e,!0,o);this._unpackFlipY(void 0===i?e.invertY:i),n&&a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1);var l=this._getWebGLTextureType(e.type),u=this._getInternalFormat(r||e.format),h=this._getRGBABufferInternalSizedFormat(e.type,u);a.texImage2D(s,0,h,u,l,t),e.generateMipMaps&&a.generateMipmap(s),c||this._bindTextureDirectly(s,null),n&&a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,0),e.isReady=!0}}},function(e,t,i){\"use strict\";i.r(t),i.d(t,\"AbstractScene\",(function(){return n.a})),i.d(t,\"AbstractActionManager\",(function(){return r.a})),i.d(t,\"Action\",(function(){return l})),i.d(t,\"ActionEvent\",(function(){return u.a})),i.d(t,\"ActionManager\",(function(){return M})),i.d(t,\"Condition\",(function(){return d})),i.d(t,\"ValueCondition\",(function(){return f})),i.d(t,\"PredicateCondition\",(function(){return p})),i.d(t,\"StateCondition\",(function(){return _})),i.d(t,\"SwitchBooleanAction\",(function(){return v})),i.d(t,\"SetStateAction\",(function(){return b})),i.d(t,\"SetValueAction\",(function(){return y})),i.d(t,\"IncrementValueAction\",(function(){return T})),i.d(t,\"PlayAnimationAction\",(function(){return E})),i.d(t,\"StopAnimationAction\",(function(){return S})),i.d(t,\"DoNothingAction\",(function(){return A})),i.d(t,\"CombineAction\",(function(){return P})),i.d(t,\"ExecuteCodeAction\",(function(){return C})),i.d(t,\"SetParentAction\",(function(){return R})),i.d(t,\"PlaySoundAction\",(function(){return I})),i.d(t,\"StopSoundAction\",(function(){return D})),i.d(t,\"InterpolateValueAction\",(function(){return G})),i.d(t,\"Animatable\",(function(){return ee})),i.d(t,\"_IAnimationState\",(function(){return k})),i.d(t,\"Animation\",(function(){return z})),i.d(t,\"TargetedAnimation\",(function(){return te})),i.d(t,\"AnimationGroup\",(function(){return ie})),i.d(t,\"AnimationPropertiesOverride\",(function(){return ne})),i.d(t,\"EasingFunction\",(function(){return oe})),i.d(t,\"CircleEase\",(function(){return ae})),i.d(t,\"BackEase\",(function(){return se})),i.d(t,\"BounceEase\",(function(){return ce})),i.d(t,\"CubicEase\",(function(){return le})),i.d(t,\"ElasticEase\",(function(){return ue})),i.d(t,\"ExponentialEase\",(function(){return he})),i.d(t,\"PowerEase\",(function(){return de})),i.d(t,\"QuadraticEase\",(function(){return fe})),i.d(t,\"QuarticEase\",(function(){return pe})),i.d(t,\"QuinticEase\",(function(){return _e})),i.d(t,\"SineEase\",(function(){return me})),i.d(t,\"BezierCurveEase\",(function(){return ge})),i.d(t,\"RuntimeAnimation\",(function(){return K})),i.d(t,\"AnimationEvent\",(function(){return ve})),i.d(t,\"AnimationKeyInterpolation\",(function(){return N})),i.d(t,\"AnimationRange\",(function(){return F})),i.d(t,\"KeepAssets\",(function(){return ye})),i.d(t,\"InstantiatedEntries\",(function(){return Te})),i.d(t,\"AssetContainer\",(function(){return Ee})),i.d(t,\"Analyser\",(function(){return Ae})),i.d(t,\"AudioEngine\",(function(){return Pe})),i.d(t,\"AudioSceneComponent\",(function(){return Ie})),i.d(t,\"Sound\",(function(){return xe})),i.d(t,\"SoundTrack\",(function(){return Oe})),i.d(t,\"WeightedSound\",(function(){return De})),i.d(t,\"AutoRotationBehavior\",(function(){return Le})),i.d(t,\"BouncingBehavior\",(function(){return we})),i.d(t,\"FramingBehavior\",(function(){return Fe})),i.d(t,\"AttachToBoxBehavior\",(function(){return Ue})),i.d(t,\"FadeInOutBehavior\",(function(){return Ve})),i.d(t,\"MultiPointerScaleBehavior\",(function(){return ze})),i.d(t,\"PointerDragBehavior\",(function(){return ke.a})),i.d(t,\"SixDofDragBehavior\",(function(){return He})),i.d(t,\"Bone\",(function(){return $})),i.d(t,\"BoneIKController\",(function(){return Xe})),i.d(t,\"BoneLookController\",(function(){return Ye})),i.d(t,\"Skeleton\",(function(){return tt})),i.d(t,\"ArcRotateCameraGamepadInput\",(function(){return st})),i.d(t,\"ArcRotateCameraKeyboardMoveInput\",(function(){return lt})),i.d(t,\"ArcRotateCameraMouseWheelInput\",(function(){return ut})),i.d(t,\"ArcRotateCameraPointersInput\",(function(){return dt})),i.d(t,\"ArcRotateCameraVRDeviceOrientationInput\",(function(){return pt})),i.d(t,\"FlyCameraKeyboardInput\",(function(){return _t})),i.d(t,\"FlyCameraMouseInput\",(function(){return mt})),i.d(t,\"FollowCameraKeyboardMoveInput\",(function(){return gt})),i.d(t,\"FollowCameraMouseWheelInput\",(function(){return vt})),i.d(t,\"FollowCameraPointersInput\",(function(){return bt})),i.d(t,\"FreeCameraDeviceOrientationInput\",(function(){return Rt})),i.d(t,\"FreeCameraGamepadInput\",(function(){return xt})),i.d(t,\"FreeCameraKeyboardMoveInput\",(function(){return yt})),i.d(t,\"FreeCameraMouseInput\",(function(){return Tt})),i.d(t,\"FreeCameraMouseWheelInput\",(function(){return At})),i.d(t,\"FreeCameraTouchInput\",(function(){return Pt})),i.d(t,\"FreeCameraVirtualJoystickInput\",(function(){return Dt})),i.d(t,\"CameraInputTypes\",(function(){return it})),i.d(t,\"CameraInputsManager\",(function(){return nt})),i.d(t,\"Camera\",(function(){return je.a})),i.d(t,\"TargetCamera\",(function(){return Lt})),i.d(t,\"FreeCamera\",(function(){return wt})),i.d(t,\"FreeCameraInputsManager\",(function(){return Ct})),i.d(t,\"TouchCamera\",(function(){return Ft})),i.d(t,\"ArcRotateCamera\",(function(){return Bt})),i.d(t,\"ArcRotateCameraInputsManager\",(function(){return ft})),i.d(t,\"DeviceOrientationCamera\",(function(){return Ut})),i.d(t,\"FlyCamera\",(function(){return kt})),i.d(t,\"FlyCameraInputsManager\",(function(){return Vt})),i.d(t,\"FollowCamera\",(function(){return jt})),i.d(t,\"ArcFollowCamera\",(function(){return Wt})),i.d(t,\"FollowCameraInputsManager\",(function(){return zt})),i.d(t,\"GamepadCamera\",(function(){return ri})),i.d(t,\"AnaglyphArcRotateCamera\",(function(){return mi})),i.d(t,\"AnaglyphFreeCamera\",(function(){return gi})),i.d(t,\"AnaglyphGamepadCamera\",(function(){return vi})),i.d(t,\"AnaglyphUniversalCamera\",(function(){return bi})),i.d(t,\"StereoscopicArcRotateCamera\",(function(){return Ti})),i.d(t,\"StereoscopicFreeCamera\",(function(){return Ei})),i.d(t,\"StereoscopicGamepadCamera\",(function(){return Si})),i.d(t,\"StereoscopicUniversalCamera\",(function(){return Ai})),i.d(t,\"UniversalCamera\",(function(){return ni})),i.d(t,\"VirtualJoysticksCamera\",(function(){return Pi})),i.d(t,\"VRCameraMetrics\",(function(){return Ci})),i.d(t,\"VRDeviceOrientationArcRotateCamera\",(function(){return Bi})),i.d(t,\"VRDeviceOrientationFreeCamera\",(function(){return Ui})),i.d(t,\"VRDeviceOrientationGamepadCamera\",(function(){return Vi})),i.d(t,\"OnAfterEnteringVRObservableEvent\",(function(){return hn})),i.d(t,\"VRExperienceHelper\",(function(){return dn})),i.d(t,\"WebVRFreeCamera\",(function(){return zi})),i.d(t,\"Collider\",(function(){return _n})),i.d(t,\"DefaultCollisionCoordinator\",(function(){return mn})),i.d(t,\"PickingInfo\",(function(){return gn.a})),i.d(t,\"IntersectionInfo\",(function(){return vn.a})),i.d(t,\"_MeshCollisionData\",(function(){return bn.a})),i.d(t,\"BoundingBox\",(function(){return yn.a})),i.d(t,\"BoundingInfo\",(function(){return Tn.a})),i.d(t,\"BoundingSphere\",(function(){return En.a})),i.d(t,\"Octree\",(function(){return An})),i.d(t,\"OctreeBlock\",(function(){return Sn})),i.d(t,\"OctreeSceneComponent\",(function(){return Mn})),i.d(t,\"Ray\",(function(){return Xt.a})),i.d(t,\"AxesViewer\",(function(){return In.AxesViewer})),i.d(t,\"BoneAxesViewer\",(function(){return In.BoneAxesViewer})),i.d(t,\"DebugLayerTab\",(function(){return In.DebugLayerTab})),i.d(t,\"DebugLayer\",(function(){return In.DebugLayer})),i.d(t,\"PhysicsViewer\",(function(){return In.PhysicsViewer})),i.d(t,\"RayHelper\",(function(){return In.RayHelper})),i.d(t,\"SkeletonViewer\",(function(){return In.SkeletonViewer})),i.d(t,\"DeviceInputSystem\",(function(){return Dn})),i.d(t,\"DeviceType\",(function(){return Pn})),i.d(t,\"PointerInput\",(function(){return Cn})),i.d(t,\"DualShockInput\",(function(){return Rn})),i.d(t,\"XboxInput\",(function(){return xn})),i.d(t,\"SwitchInput\",(function(){return On})),i.d(t,\"DeviceSource\",(function(){return Nn})),i.d(t,\"DeviceSourceManager\",(function(){return Ln})),i.d(t,\"Constants\",(function(){return g.a})),i.d(t,\"ThinEngine\",(function(){return qe.a})),i.d(t,\"Engine\",(function(){return Se.a})),i.d(t,\"EngineStore\",(function(){return x.a})),i.d(t,\"NullEngineOptions\",(function(){return wn.b})),i.d(t,\"NullEngine\",(function(){return wn.a})),i.d(t,\"_OcclusionDataStorage\",(function(){return Bn})),i.d(t,\"_forceTransformFeedbackToBundle\",(function(){return Un})),i.d(t,\"EngineView\",(function(){return kn})),i.d(t,\"WebGLPipelineContext\",(function(){return Gn.a})),i.d(t,\"WebGL2ShaderProcessor\",(function(){return jn.a})),i.d(t,\"NativeEngine\",(function(){return cr})),i.d(t,\"ShaderCodeInliner\",(function(){return rr})),i.d(t,\"PerformanceConfigurator\",(function(){return lr.a})),i.d(t,\"KeyboardEventTypes\",(function(){return ct.a})),i.d(t,\"KeyboardInfo\",(function(){return ct.b})),i.d(t,\"KeyboardInfoPre\",(function(){return ct.c})),i.d(t,\"PointerEventTypes\",(function(){return Ne.a})),i.d(t,\"PointerInfoBase\",(function(){return Ne.c})),i.d(t,\"PointerInfoPre\",(function(){return Ne.d})),i.d(t,\"PointerInfo\",(function(){return Ne.b})),i.d(t,\"ClipboardEventTypes\",(function(){return ur})),i.d(t,\"ClipboardInfo\",(function(){return hr})),i.d(t,\"DaydreamController\",(function(){return _r})),i.d(t,\"GearVRController\",(function(){return mr})),i.d(t,\"GenericController\",(function(){return gr})),i.d(t,\"OculusTouchController\",(function(){return vr})),i.d(t,\"PoseEnabledControllerType\",(function(){return Gt})),i.d(t,\"PoseEnabledControllerHelper\",(function(){return Qt})),i.d(t,\"PoseEnabledController\",(function(){return qt})),i.d(t,\"ViveController\",(function(){return br})),i.d(t,\"WebVRController\",(function(){return Gi})),i.d(t,\"WindowsMotionController\",(function(){return Tr})),i.d(t,\"XRWindowsMotionController\",(function(){return Er})),i.d(t,\"StickValues\",(function(){return rt})),i.d(t,\"Gamepad\",(function(){return ot})),i.d(t,\"GenericPad\",(function(){return at})),i.d(t,\"GamepadManager\",(function(){return ti})),i.d(t,\"GamepadSystemSceneComponent\",(function(){return ii})),i.d(t,\"Xbox360Button\",(function(){return Yt})),i.d(t,\"Xbox360Dpad\",(function(){return Kt})),i.d(t,\"Xbox360Pad\",(function(){return $t})),i.d(t,\"DualShockButton\",(function(){return Zt})),i.d(t,\"DualShockDpad\",(function(){return Jt})),i.d(t,\"DualShockPad\",(function(){return ei})),i.d(t,\"AxisDragGizmo\",(function(){return Sr.a})),i.d(t,\"AxisScaleGizmo\",(function(){return Rr})),i.d(t,\"BoundingBoxGizmo\",(function(){return Mr})),i.d(t,\"Gizmo\",(function(){return Pr.a})),i.d(t,\"GizmoManager\",(function(){return Vr})),i.d(t,\"PlaneRotationGizmo\",(function(){return Ir})),i.d(t,\"PositionGizmo\",(function(){return Fr})),i.d(t,\"RotationGizmo\",(function(){return Dr})),i.d(t,\"ScaleGizmo\",(function(){return Ur})),i.d(t,\"LightGizmo\",(function(){return Hr})),i.d(t,\"CameraGizmo\",(function(){return Kr})),i.d(t,\"PlaneDragGizmo\",(function(){return wr})),i.d(t,\"EnvironmentHelper\",(function(){return go})),i.d(t,\"PhotoDome\",(function(){return bo})),i.d(t,\"_forceSceneHelpersToBundle\",(function(){return es})),i.d(t,\"VideoDome\",(function(){return is})),i.d(t,\"EngineInstrumentation\",(function(){return rs})),i.d(t,\"SceneInstrumentation\",(function(){return os})),i.d(t,\"_TimeToken\",(function(){return Fn})),i.d(t,\"EffectLayer\",(function(){return cs})),i.d(t,\"EffectLayerSceneComponent\",(function(){return ls})),i.d(t,\"GlowLayer\",(function(){return ds})),i.d(t,\"HighlightLayer\",(function(){return _s})),i.d(t,\"Layer\",(function(){return bs})),i.d(t,\"LayerSceneComponent\",(function(){return ms})),i.d(t,\"LensFlare\",(function(){return ys})),i.d(t,\"LensFlareSystem\",(function(){return Ss})),i.d(t,\"LensFlareSystemSceneComponent\",(function(){return As})),i.d(t,\"Light\",(function(){return kr.a})),i.d(t,\"ShadowLight\",(function(){return zr})),i.d(t,\"ShadowGenerator\",(function(){return Bs})),i.d(t,\"CascadedShadowGenerator\",(function(){return qs})),i.d(t,\"ShadowGeneratorSceneComponent\",(function(){return Zs})),i.d(t,\"DirectionalLight\",(function(){return Gr})),i.d(t,\"HemisphericLight\",(function(){return ki.a})),i.d(t,\"PointLight\",(function(){return Js})),i.d(t,\"SpotLight\",(function(){return Wr})),i.d(t,\"DefaultLoadingScreen\",(function(){return $s})),i.d(t,\"_BabylonLoaderRegistered\",(function(){return Tc})),i.d(t,\"BabylonFileLoaderConfiguration\",(function(){return Ec})),i.d(t,\"SceneLoaderAnimationGroupLoadingMode\",(function(){return nr})),i.d(t,\"SceneLoader\",(function(){return pr})),i.d(t,\"SceneLoaderFlags\",(function(){return fr.a})),i.d(t,\"BackgroundMaterial\",(function(){return mo})),i.d(t,\"ColorCurves\",(function(){return xc.a})),i.d(t,\"EffectFallbacks\",(function(){return po.a})),i.d(t,\"Effect\",(function(){return ai.a})),i.d(t,\"FresnelParameters\",(function(){return Oc})),i.d(t,\"ImageProcessingConfigurationDefines\",(function(){return ji.b})),i.d(t,\"ImageProcessingConfiguration\",(function(){return ji.a})),i.d(t,\"Material\",(function(){return xo.a})),i.d(t,\"MaterialDefines\",(function(){return oo.a})),i.d(t,\"ThinMaterialHelper\",(function(){return Mc.a})),i.d(t,\"MaterialHelper\",(function(){return ro.a})),i.d(t,\"MultiMaterial\",(function(){return tc.a})),i.d(t,\"PBRMaterialDefines\",(function(){return pa})),i.d(t,\"PBRBaseMaterial\",(function(){return _a})),i.d(t,\"PBRBaseSimpleMaterial\",(function(){return Ic})),i.d(t,\"PBRMaterial\",(function(){return ma})),i.d(t,\"PBRMetallicRoughnessMaterial\",(function(){return Dc})),i.d(t,\"PBRSpecularGlossinessMaterial\",(function(){return Nc})),i.d(t,\"PushMaterial\",(function(){return ao.a})),i.d(t,\"ShaderMaterial\",(function(){return Lc.a})),i.d(t,\"StandardMaterialDefines\",(function(){return Wi.b})),i.d(t,\"StandardMaterial\",(function(){return Wi.a})),i.d(t,\"BaseTexture\",(function(){return Zn.a})),i.d(t,\"ColorGradingTexture\",(function(){return wc})),i.d(t,\"CubeTexture\",(function(){return no})),i.d(t,\"DynamicTexture\",(function(){return Hi.a})),i.d(t,\"EquiRectangularCubeTexture\",(function(){return Fc})),i.d(t,\"HDRFiltering\",(function(){return cc})),i.d(t,\"HDRCubeTexture\",(function(){return lc})),i.d(t,\"HtmlElementTexture\",(function(){return Bc})),i.d(t,\"InternalTextureSource\",(function(){return Qe.b})),i.d(t,\"InternalTexture\",(function(){return Qe.a})),i.d(t,\"_DDSTextureLoader\",(function(){return Sa})),i.d(t,\"_ENVTextureLoader\",(function(){return Aa})),i.d(t,\"_KTXTextureLoader\",(function(){return Oa})),i.d(t,\"_TGATextureLoader\",(function(){return Vc})),i.d(t,\"_BasisTextureLoader\",(function(){return Wc})),i.d(t,\"MirrorTexture\",(function(){return to})),i.d(t,\"MultiRenderTarget\",(function(){return Hc})),i.d(t,\"TexturePacker\",(function(){return Yc})),i.d(t,\"TexturePackerFrame\",(function(){return Xc})),i.d(t,\"CustomProceduralTexture\",(function(){return Zc})),i.d(t,\"NoiseProceduralTexture\",(function(){return $c})),i.d(t,\"ProceduralTexture\",(function(){return qc})),i.d(t,\"ProceduralTextureSceneComponent\",(function(){return Kc})),i.d(t,\"RawCubeTexture\",(function(){return sl})),i.d(t,\"RawTexture\",(function(){return et})),i.d(t,\"RawTexture2DArray\",(function(){return cl})),i.d(t,\"RawTexture3D\",(function(){return ll})),i.d(t,\"RefractionTexture\",(function(){return ul})),i.d(t,\"RenderTargetTexture\",(function(){return Ni})),i.d(t,\"Texture\",(function(){return Ke.a})),i.d(t,\"VideoTexture\",(function(){return ts})),i.d(t,\"UniformBuffer\",(function(){return Mi.a})),i.d(t,\"MaterialFlags\",(function(){return so.a})),i.d(t,\"NodeMaterialBlockTargets\",(function(){return el})),i.d(t,\"NodeMaterialBlockConnectionPointTypes\",(function(){return tl})),i.d(t,\"NodeMaterialBlockConnectionPointMode\",(function(){return il})),i.d(t,\"NodeMaterialSystemValues\",(function(){return nl})),i.d(t,\"NodeMaterialModes\",(function(){return rl})),i.d(t,\"NodeMaterialConnectionPointCompatibilityStates\",(function(){return ol})),i.d(t,\"NodeMaterialConnectionPointDirection\",(function(){return al})),i.d(t,\"NodeMaterialConnectionPoint\",(function(){return hl})),i.d(t,\"NodeMaterialBlock\",(function(){return fl})),i.d(t,\"NodeMaterialDefines\",(function(){return Ql})),i.d(t,\"NodeMaterial\",(function(){return ql})),i.d(t,\"VertexOutputBlock\",(function(){return gl})),i.d(t,\"BonesBlock\",(function(){return Zl})),i.d(t,\"InstancesBlock\",(function(){return Jl})),i.d(t,\"MorphTargetsBlock\",(function(){return $l})),i.d(t,\"LightInformationBlock\",(function(){return eu})),i.d(t,\"FragmentOutputBlock\",(function(){return bl})),i.d(t,\"ImageProcessingBlock\",(function(){return tu})),i.d(t,\"PerturbNormalBlock\",(function(){return iu})),i.d(t,\"DiscardBlock\",(function(){return nu})),i.d(t,\"FrontFacingBlock\",(function(){return ru})),i.d(t,\"DerivativeBlock\",(function(){return ou})),i.d(t,\"FragCoordBlock\",(function(){return au})),i.d(t,\"ScreenSizeBlock\",(function(){return su})),i.d(t,\"FogBlock\",(function(){return cu})),i.d(t,\"LightBlock\",(function(){return lu})),i.d(t,\"TextureBlock\",(function(){return uu})),i.d(t,\"ReflectionTextureBlock\",(function(){return du})),i.d(t,\"CurrentScreenBlock\",(function(){return Al})),i.d(t,\"InputBlock\",(function(){return Sl})),i.d(t,\"AnimatedInputBlockTypes\",(function(){return vl})),i.d(t,\"MultiplyBlock\",(function(){return Dl})),i.d(t,\"AddBlock\",(function(){return fu})),i.d(t,\"ScaleBlock\",(function(){return pu})),i.d(t,\"ClampBlock\",(function(){return _u})),i.d(t,\"CrossBlock\",(function(){return mu})),i.d(t,\"DotBlock\",(function(){return gu})),i.d(t,\"TransformBlock\",(function(){return ml})),i.d(t,\"RemapBlock\",(function(){return Il})),i.d(t,\"NormalizeBlock\",(function(){return vu})),i.d(t,\"TrigonometryBlockOperations\",(function(){return Hl})),i.d(t,\"TrigonometryBlock\",(function(){return Yl})),i.d(t,\"ColorMergerBlock\",(function(){return bu})),i.d(t,\"VectorMergerBlock\",(function(){return Ol})),i.d(t,\"ColorSplitterBlock\",(function(){return Wl})),i.d(t,\"VectorSplitterBlock\",(function(){return yu})),i.d(t,\"LerpBlock\",(function(){return Tu})),i.d(t,\"DivideBlock\",(function(){return Eu})),i.d(t,\"SubtractBlock\",(function(){return Su})),i.d(t,\"StepBlock\",(function(){return Au})),i.d(t,\"OneMinusBlock\",(function(){return Pu})),i.d(t,\"ViewDirectionBlock\",(function(){return Cu})),i.d(t,\"FresnelBlock\",(function(){return Ru})),i.d(t,\"MaxBlock\",(function(){return xu})),i.d(t,\"MinBlock\",(function(){return Ou})),i.d(t,\"DistanceBlock\",(function(){return Mu})),i.d(t,\"LengthBlock\",(function(){return Iu})),i.d(t,\"NegateBlock\",(function(){return Du})),i.d(t,\"PowBlock\",(function(){return Nu})),i.d(t,\"RandomNumberBlock\",(function(){return Lu})),i.d(t,\"ArcTan2Block\",(function(){return wu})),i.d(t,\"SmoothStepBlock\",(function(){return Fu})),i.d(t,\"ReciprocalBlock\",(function(){return Bu})),i.d(t,\"ReplaceColorBlock\",(function(){return Uu})),i.d(t,\"PosterizeBlock\",(function(){return ku})),i.d(t,\"WaveBlockKind\",(function(){return Vu})),i.d(t,\"WaveBlock\",(function(){return zu})),i.d(t,\"GradientBlockColorStep\",(function(){return Gu})),i.d(t,\"GradientBlock\",(function(){return ju})),i.d(t,\"NLerpBlock\",(function(){return Wu})),i.d(t,\"WorleyNoise3DBlock\",(function(){return Hu})),i.d(t,\"SimplexPerlin3DBlock\",(function(){return Xu})),i.d(t,\"NormalBlendBlock\",(function(){return Yu})),i.d(t,\"Rotate2dBlock\",(function(){return Ku})),i.d(t,\"ReflectBlock\",(function(){return Qu})),i.d(t,\"RefractBlock\",(function(){return qu})),i.d(t,\"DesaturateBlock\",(function(){return Zu})),i.d(t,\"PBRMetallicRoughnessBlock\",(function(){return ah})),i.d(t,\"SheenBlock\",(function(){return $u})),i.d(t,\"AnisotropyBlock\",(function(){return eh})),i.d(t,\"ReflectionBlock\",(function(){return th})),i.d(t,\"ClearCoatBlock\",(function(){return ih})),i.d(t,\"RefractionBlock\",(function(){return nh})),i.d(t,\"SubSurfaceBlock\",(function(){return rh})),i.d(t,\"ParticleTextureBlock\",(function(){return Pl})),i.d(t,\"ParticleRampGradientBlock\",(function(){return Cl})),i.d(t,\"ParticleBlendMultiplyBlock\",(function(){return Rl})),i.d(t,\"ModBlock\",(function(){return sh})),i.d(t,\"NodeMaterialOptimizer\",(function(){return ch})),i.d(t,\"PropertyTypeForEdition\",(function(){return xl})),i.d(t,\"editableInPropertyPage\",(function(){return Ml})),i.d(t,\"EffectRenderer\",(function(){return rc})),i.d(t,\"EffectWrapper\",(function(){return oc})),i.d(t,\"ShadowDepthWrapper\",(function(){return hh})),i.d(t,\"Scalar\",(function(){return L.a})),i.d(t,\"extractMinAndMaxIndexed\",(function(){return dh.b})),i.d(t,\"extractMinAndMax\",(function(){return dh.a})),i.d(t,\"Space\",(function(){return J.c})),i.d(t,\"Axis\",(function(){return J.a})),i.d(t,\"Coordinate\",(function(){return J.b})),i.d(t,\"Color3\",(function(){return s.a})),i.d(t,\"Color4\",(function(){return s.b})),i.d(t,\"TmpColors\",(function(){return s.c})),i.d(t,\"ToGammaSpace\",(function(){return Nt.b})),i.d(t,\"ToLinearSpace\",(function(){return Nt.c})),i.d(t,\"Epsilon\",(function(){return Nt.a})),i.d(t,\"Frustum\",(function(){return wi.a})),i.d(t,\"Orientation\",(function(){return re.e})),i.d(t,\"BezierCurve\",(function(){return re.c})),i.d(t,\"Angle\",(function(){return re.a})),i.d(t,\"Arc2\",(function(){return re.b})),i.d(t,\"Path2\",(function(){return re.f})),i.d(t,\"Path3D\",(function(){return re.g})),i.d(t,\"Curve3\",(function(){return re.d})),i.d(t,\"Plane\",(function(){return fn.a})),i.d(t,\"Size\",(function(){return U.a})),i.d(t,\"Vector2\",(function(){return a.d})),i.d(t,\"Vector3\",(function(){return a.e})),i.d(t,\"Vector4\",(function(){return a.f})),i.d(t,\"Quaternion\",(function(){return a.b})),i.d(t,\"Matrix\",(function(){return a.a})),i.d(t,\"TmpVectors\",(function(){return a.c})),i.d(t,\"PositionNormalVertex\",(function(){return Xr})),i.d(t,\"PositionNormalTextureVertex\",(function(){return Yr})),i.d(t,\"Viewport\",(function(){return yi.a})),i.d(t,\"SphericalHarmonics\",(function(){return Qn})),i.d(t,\"SphericalPolynomial\",(function(){return qn})),i.d(t,\"AbstractMesh\",(function(){return Ge.a})),i.d(t,\"Buffer\",(function(){return Qi.a})),i.d(t,\"VertexBuffer\",(function(){return Qi.b})),i.d(t,\"DracoCompression\",(function(){return mh})),i.d(t,\"CSG\",(function(){return Sh})),i.d(t,\"Geometry\",(function(){return ec.a})),i.d(t,\"GroundMesh\",(function(){return qi})),i.d(t,\"TrailMesh\",(function(){return Ah})),i.d(t,\"InstancedMesh\",(function(){return Ph.a})),i.d(t,\"LinesMesh\",(function(){return Ch.b})),i.d(t,\"InstancedLinesMesh\",(function(){return Ch.a})),i.d(t,\"_CreationDataStorage\",(function(){return be.b})),i.d(t,\"_InstancesBatch\",(function(){return be.c})),i.d(t,\"Mesh\",(function(){return be.a})),i.d(t,\"VertexData\",(function(){return Ki.a})),i.d(t,\"MeshBuilder\",(function(){return jh})),i.d(t,\"SimplificationSettings\",(function(){return Wh})),i.d(t,\"SimplificationQueue\",(function(){return Hh})),i.d(t,\"SimplificationType\",(function(){return zh})),i.d(t,\"QuadraticErrorSimplification\",(function(){return qh})),i.d(t,\"SimplicationQueueSceneComponent\",(function(){return Zh})),i.d(t,\"Polygon\",(function(){return Nh})),i.d(t,\"PolygonMeshBuilder\",(function(){return Lh})),i.d(t,\"SubMesh\",(function(){return gh.a})),i.d(t,\"MeshLODLevel\",(function(){return Jh.a})),i.d(t,\"TransformNode\",(function(){return Nr.a})),i.d(t,\"BoxBuilder\",(function(){return Ar.a})),i.d(t,\"TiledBoxBuilder\",(function(){return Oh})),i.d(t,\"DiscBuilder\",(function(){return xh})),i.d(t,\"RibbonBuilder\",(function(){return Rh.a})),i.d(t,\"SphereBuilder\",(function(){return xr.a})),i.d(t,\"HemisphereBuilder\",(function(){return jr})),i.d(t,\"CylinderBuilder\",(function(){return nn.a})),i.d(t,\"TorusBuilder\",(function(){return tn})),i.d(t,\"TorusKnotBuilder\",(function(){return Mh})),i.d(t,\"LinesBuilder\",(function(){return Or.a})),i.d(t,\"PolygonBuilder\",(function(){return wh})),i.d(t,\"ShapeBuilder\",(function(){return vc.a})),i.d(t,\"LatheBuilder\",(function(){return Fh})),i.d(t,\"PlaneBuilder\",(function(){return Lr.a})),i.d(t,\"TiledPlaneBuilder\",(function(){return Bh})),i.d(t,\"GroundBuilder\",(function(){return Ji})),i.d(t,\"TubeBuilder\",(function(){return Uh})),i.d(t,\"PolyhedronBuilder\",(function(){return Br})),i.d(t,\"IcoSphereBuilder\",(function(){return Vh})),i.d(t,\"DecalBuilder\",(function(){return kh})),i.d(t,\"CapsuleBuilder\",(function(){return Gh})),i.d(t,\"DataBuffer\",(function(){return Wn.a})),i.d(t,\"WebGLDataBuffer\",(function(){return $h.a})),i.d(t,\"MorphTarget\",(function(){return uc})),i.d(t,\"MorphTargetManager\",(function(){return hc})),i.d(t,\"RecastJSPlugin\",(function(){return ed})),i.d(t,\"RecastJSCrowd\",(function(){return td})),i.d(t,\"Node\",(function(){return B.a})),i.d(t,\"Database\",(function(){return nd})),i.d(t,\"BaseParticleSystem\",(function(){return jl})),i.d(t,\"BoxParticleEmitter\",(function(){return Nl})),i.d(t,\"ConeParticleEmitter\",(function(){return Ll})),i.d(t,\"CylinderParticleEmitter\",(function(){return wl})),i.d(t,\"CylinderDirectedParticleEmitter\",(function(){return Fl})),i.d(t,\"HemisphericParticleEmitter\",(function(){return Bl})),i.d(t,\"PointParticleEmitter\",(function(){return Ul})),i.d(t,\"SphereParticleEmitter\",(function(){return Vl})),i.d(t,\"SphereDirectedParticleEmitter\",(function(){return kl})),i.d(t,\"CustomParticleEmitter\",(function(){return zl})),i.d(t,\"MeshParticleEmitter\",(function(){return Gl})),i.d(t,\"GPUParticleSystem\",(function(){return vd})),i.d(t,\"Particle\",(function(){return cd})),i.d(t,\"ParticleHelper\",(function(){return yd})),i.d(t,\"ParticleSystem\",(function(){return dd})),i.d(t,\"ParticleSystemSet\",(function(){return bd})),i.d(t,\"SolidParticle\",(function(){return Ed})),i.d(t,\"ModelShape\",(function(){return Sd})),i.d(t,\"DepthSortedParticle\",(function(){return Ad})),i.d(t,\"SolidParticleVertex\",(function(){return Pd})),i.d(t,\"SolidParticleSystem\",(function(){return Cd})),i.d(t,\"CloudPoint\",(function(){return Rd})),i.d(t,\"PointsGroup\",(function(){return xd})),i.d(t,\"PointColor\",(function(){return Td})),i.d(t,\"PointsCloudSystem\",(function(){return Od})),i.d(t,\"SubEmitterType\",(function(){return id})),i.d(t,\"SubEmitter\",(function(){return ld})),i.d(t,\"PhysicsEngine\",(function(){return pc})),i.d(t,\"PhysicsEngineSceneComponent\",(function(){return Dd})),i.d(t,\"PhysicsHelper\",(function(){return Nd})),i.d(t,\"PhysicsRadialExplosionEventOptions\",(function(){return Ud})),i.d(t,\"PhysicsUpdraftEventOptions\",(function(){return Vd})),i.d(t,\"PhysicsVortexEventOptions\",(function(){return kd})),i.d(t,\"PhysicsRadialImpulseFalloff\",(function(){return Md})),i.d(t,\"PhysicsUpdraftMode\",(function(){return Id})),i.d(t,\"PhysicsImpostor\",(function(){return dc.a})),i.d(t,\"PhysicsJoint\",(function(){return fc.e})),i.d(t,\"DistanceJoint\",(function(){return fc.a})),i.d(t,\"MotorEnabledJoint\",(function(){return fc.d})),i.d(t,\"HingeJoint\",(function(){return fc.c})),i.d(t,\"Hinge2Joint\",(function(){return fc.b})),i.d(t,\"CannonJSPlugin\",(function(){return mc})),i.d(t,\"AmmoJSPlugin\",(function(){return bc})),i.d(t,\"OimoJSPlugin\",(function(){return gc})),i.d(t,\"AnaglyphPostProcess\",(function(){return _i})),i.d(t,\"BlackAndWhitePostProcess\",(function(){return Gd})),i.d(t,\"BloomEffect\",(function(){return Kd})),i.d(t,\"BloomMergePostProcess\",(function(){return Yd})),i.d(t,\"BlurPostProcess\",(function(){return eo})),i.d(t,\"ChromaticAberrationPostProcess\",(function(){return qd})),i.d(t,\"CircleOfConfusionPostProcess\",(function(){return Jd})),i.d(t,\"ColorCorrectionPostProcess\",(function(){return ef})),i.d(t,\"ConvolutionPostProcess\",(function(){return nf})),i.d(t,\"DepthOfFieldBlurPostProcess\",(function(){return rf})),i.d(t,\"DepthOfFieldEffectBlurLevel\",(function(){return af})),i.d(t,\"DepthOfFieldEffect\",(function(){return lf})),i.d(t,\"DepthOfFieldMergePostProcessOptions\",(function(){return sf})),i.d(t,\"DepthOfFieldMergePostProcess\",(function(){return cf})),i.d(t,\"DisplayPassPostProcess\",(function(){return hf})),i.d(t,\"ExtractHighlightsPostProcess\",(function(){return Hd})),i.d(t,\"FilterPostProcess\",(function(){return ff})),i.d(t,\"FxaaPostProcess\",(function(){return mf})),i.d(t,\"GrainPostProcess\",(function(){return vf})),i.d(t,\"HighlightsPostProcess\",(function(){return yf})),i.d(t,\"ImageProcessingPostProcess\",(function(){return Yi})),i.d(t,\"MotionBlurPostProcess\",(function(){return Rf})),i.d(t,\"PassPostProcess\",(function(){return di})),i.d(t,\"PassCubePostProcess\",(function(){return fi})),i.d(t,\"PostProcess\",(function(){return li})),i.d(t,\"PostProcessManager\",(function(){return Ii.a})),i.d(t,\"RefractionPostProcess\",(function(){return Of})),i.d(t,\"DefaultRenderingPipeline\",(function(){return wf})),i.d(t,\"LensRenderingPipeline\",(function(){return Uf})),i.d(t,\"SSAO2RenderingPipeline\",(function(){return Gf})),i.d(t,\"SSAORenderingPipeline\",(function(){return Wf})),i.d(t,\"StandardRenderingPipeline\",(function(){return Qf})),i.d(t,\"PostProcessRenderEffect\",(function(){return jd})),i.d(t,\"PostProcessRenderPipeline\",(function(){return Df})),i.d(t,\"PostProcessRenderPipelineManager\",(function(){return Nf})),i.d(t,\"PostProcessRenderPipelineManagerSceneComponent\",(function(){return Lf})),i.d(t,\"SharpenPostProcess\",(function(){return If})),i.d(t,\"StereoscopicInterlacePostProcessI\",(function(){return Zf})),i.d(t,\"StereoscopicInterlacePostProcess\",(function(){return Jf})),i.d(t,\"TonemappingOperator\",(function(){return ep})),i.d(t,\"TonemapPostProcess\",(function(){return tp})),i.d(t,\"VolumetricLightScatteringPostProcess\",(function(){return op})),i.d(t,\"VRDistortionCorrectionPostProcess\",(function(){return xi})),i.d(t,\"VRMultiviewToSingleviewPostProcess\",(function(){return Fi})),i.d(t,\"ScreenSpaceReflectionPostProcess\",(function(){return Yf})),i.d(t,\"ScreenSpaceCurvaturePostProcess\",(function(){return sp})),i.d(t,\"ReflectionProbe\",(function(){return yc})),i.d(t,\"BoundingBoxRenderer\",(function(){return cp})),i.d(t,\"DepthRenderer\",(function(){return ks})),i.d(t,\"DepthRendererSceneComponent\",(function(){return lp})),i.d(t,\"EdgesRenderer\",(function(){return dp})),i.d(t,\"LineEdgesRenderer\",(function(){return fp})),i.d(t,\"GeometryBufferRenderer\",(function(){return Sf})),i.d(t,\"GeometryBufferRendererSceneComponent\",(function(){return Pf})),i.d(t,\"PrePassRenderer\",(function(){return pp})),i.d(t,\"PrePassRendererSceneComponent\",(function(){return _p})),i.d(t,\"SubSurfaceSceneComponent\",(function(){return Tp})),i.d(t,\"OutlineRenderer\",(function(){return Ap})),i.d(t,\"RenderingGroup\",(function(){return Pp.a})),i.d(t,\"RenderingGroupInfo\",(function(){return Di.a})),i.d(t,\"RenderingManager\",(function(){return Di.b})),i.d(t,\"UtilityLayerRenderer\",(function(){return Cr.a})),i.d(t,\"Scene\",(function(){return Q.a})),i.d(t,\"SceneComponentConstants\",(function(){return Me.a})),i.d(t,\"Stage\",(function(){return Me.b})),i.d(t,\"Sprite\",(function(){return Cp})),i.d(t,\"SpriteManager\",(function(){return Ip})),i.d(t,\"SpriteMap\",(function(){return wp})),i.d(t,\"SpritePackedManager\",(function(){return Fp})),i.d(t,\"SpriteSceneComponent\",(function(){return Rp})),i.d(t,\"AlphaState\",(function(){return Bp.a})),i.d(t,\"DepthCullingState\",(function(){return Up.a})),i.d(t,\"StencilState\",(function(){return Vp.a})),i.d(t,\"AndOrNotEvaluator\",(function(){return kp.a})),i.d(t,\"AssetTaskState\",(function(){return Lp})),i.d(t,\"AbstractAssetTask\",(function(){return Gp})),i.d(t,\"AssetsProgressEvent\",(function(){return jp})),i.d(t,\"ContainerAssetTask\",(function(){return Wp})),i.d(t,\"MeshAssetTask\",(function(){return Hp})),i.d(t,\"TextFileAssetTask\",(function(){return Xp})),i.d(t,\"BinaryFileAssetTask\",(function(){return Yp})),i.d(t,\"ImageAssetTask\",(function(){return Kp})),i.d(t,\"TextureAssetTask\",(function(){return Qp})),i.d(t,\"CubeTextureAssetTask\",(function(){return qp})),i.d(t,\"HDRCubeTextureAssetTask\",(function(){return Zp})),i.d(t,\"EquiRectangularCubeTextureAssetTask\",(function(){return Jp})),i.d(t,\"AssetsManager\",(function(){return $p})),i.d(t,\"BasisTranscodeConfiguration\",(function(){return zc})),i.d(t,\"BasisTools\",(function(){return Gc})),i.d(t,\"DDSTools\",(function(){return Ea})),i.d(t,\"expandToProperty\",(function(){return w.b})),i.d(t,\"serialize\",(function(){return w.c})),i.d(t,\"serializeAsTexture\",(function(){return w.m})),i.d(t,\"serializeAsColor3\",(function(){return w.e})),i.d(t,\"serializeAsFresnelParameters\",(function(){return w.h})),i.d(t,\"serializeAsVector2\",(function(){return w.n})),i.d(t,\"serializeAsVector3\",(function(){return w.o})),i.d(t,\"serializeAsMeshReference\",(function(){return w.k})),i.d(t,\"serializeAsColorCurves\",(function(){return w.g})),i.d(t,\"serializeAsColor4\",(function(){return w.f})),i.d(t,\"serializeAsImageProcessingConfiguration\",(function(){return w.i})),i.d(t,\"serializeAsQuaternion\",(function(){return w.l})),i.d(t,\"serializeAsMatrix\",(function(){return w.j})),i.d(t,\"serializeAsCameraReference\",(function(){return w.d})),i.d(t,\"SerializationHelper\",(function(){return w.a})),i.d(t,\"Deferred\",(function(){return e_})),i.d(t,\"EnvironmentTextureTools\",(function(){return ir})),i.d(t,\"MeshExploder\",(function(){return t_})),i.d(t,\"FilesInput\",(function(){return i_})),i.d(t,\"CubeMapToSphericalPolynomialTools\",(function(){return $n})),i.d(t,\"HDRTools\",(function(){return nc})),i.d(t,\"PanoramaToCubeMapTools\",(function(){return ic})),i.d(t,\"KhronosTextureContainer\",(function(){return Pa})),i.d(t,\"EventState\",(function(){return o.a})),i.d(t,\"Observer\",(function(){return o.d})),i.d(t,\"MultiObserver\",(function(){return o.b})),i.d(t,\"Observable\",(function(){return o.c})),i.d(t,\"PerformanceMonitor\",(function(){return n_.a})),i.d(t,\"RollingAverage\",(function(){return n_.b})),i.d(t,\"PromisePolyfill\",(function(){return r_.a})),i.d(t,\"SceneOptimization\",(function(){return o_})),i.d(t,\"TextureOptimization\",(function(){return a_})),i.d(t,\"HardwareScalingOptimization\",(function(){return s_})),i.d(t,\"ShadowsOptimization\",(function(){return c_})),i.d(t,\"PostProcessesOptimization\",(function(){return l_})),i.d(t,\"LensFlaresOptimization\",(function(){return u_})),i.d(t,\"CustomOptimization\",(function(){return h_})),i.d(t,\"ParticlesOptimization\",(function(){return d_})),i.d(t,\"RenderTargetsOptimization\",(function(){return f_})),i.d(t,\"MergeMeshesOptimization\",(function(){return p_})),i.d(t,\"SceneOptimizerOptions\",(function(){return __})),i.d(t,\"SceneOptimizer\",(function(){return m_})),i.d(t,\"SceneSerializer\",(function(){return y_})),i.d(t,\"SmartArray\",(function(){return oi.a})),i.d(t,\"SmartArrayNoDuplicate\",(function(){return oi.b})),i.d(t,\"StringDictionary\",(function(){return Mt.a})),i.d(t,\"Tags\",(function(){return T_.a})),i.d(t,\"TextureTools\",(function(){return E_})),i.d(t,\"TGATools\",(function(){return Uc})),i.d(t,\"Tools\",(function(){return Ce.b})),i.d(t,\"className\",(function(){return Ce.c})),i.d(t,\"AsyncLoop\",(function(){return Ce.a})),i.d(t,\"VideoRecorder\",(function(){return S_})),i.d(t,\"JoystickAxis\",(function(){return Ot})),i.d(t,\"VirtualJoystick\",(function(){return It})),i.d(t,\"WorkerPool\",(function(){return Ca})),i.d(t,\"Logger\",(function(){return m.a})),i.d(t,\"_TypeStore\",(function(){return c.a})),i.d(t,\"FilesInputStore\",(function(){return dr.a})),i.d(t,\"DeepCopier\",(function(){return O.a})),i.d(t,\"PivotTools\",(function(){return We.a})),i.d(t,\"PrecisionDate\",(function(){return q.a})),i.d(t,\"ScreenshotTools\",(function(){return A_})),i.d(t,\"WebRequest\",(function(){return V.a})),i.d(t,\"InspectableType\",(function(){return zp})),i.d(t,\"BRDFTextureTools\",(function(){return To})),i.d(t,\"RGBDTextureTools\",(function(){return yo})),i.d(t,\"ColorGradient\",(function(){return rd})),i.d(t,\"Color3Gradient\",(function(){return od})),i.d(t,\"FactorGradient\",(function(){return ad})),i.d(t,\"GradientHelper\",(function(){return sd})),i.d(t,\"PerfCounter\",(function(){return ns.a})),i.d(t,\"RetryStrategy\",(function(){return C_.a})),i.d(t,\"CanvasGenerator\",(function(){return Zi.a})),i.d(t,\"LoadFileError\",(function(){return Vn.b})),i.d(t,\"RequestFileError\",(function(){return Vn.d})),i.d(t,\"ReadFileError\",(function(){return Vn.c})),i.d(t,\"FileTools\",(function(){return Vn.a})),i.d(t,\"StringTools\",(function(){return io.a})),i.d(t,\"DataReader\",(function(){return R_})),i.d(t,\"MinMaxReducer\",(function(){return Gs})),i.d(t,\"DepthReducer\",(function(){return js})),i.d(t,\"DataStorage\",(function(){return x_})),i.d(t,\"SceneRecorder\",(function(){return O_})),i.d(t,\"KhronosTextureContainer2\",(function(){return Ra})),i.d(t,\"Trajectory\",(function(){return M_})),i.d(t,\"TrajectoryClassifier\",(function(){return L_})),i.d(t,\"TimerState\",(function(){return Ha})),i.d(t,\"setAndStartTimer\",(function(){return Qa})),i.d(t,\"AdvancedTimer\",(function(){return qa})),i.d(t,\"CopyTools\",(function(){return w_.a})),i.d(t,\"WebXRCamera\",(function(){return Ma})),i.d(t,\"WebXREnterExitUIButton\",(function(){return Xa})),i.d(t,\"WebXREnterExitUIOptions\",(function(){return Ya})),i.d(t,\"WebXREnterExitUI\",(function(){return Ka})),i.d(t,\"WebXRExperienceHelper\",(function(){return Na})),i.d(t,\"WebXRInput\",(function(){return Ga})),i.d(t,\"WebXRInputSource\",(function(){return za})),i.d(t,\"WebXRManagedOutputCanvasOptions\",(function(){return rn})),i.d(t,\"WebXRManagedOutputCanvas\",(function(){return on})),i.d(t,\"WebXRState\",(function(){return $i})),i.d(t,\"WebXRTrackingState\",(function(){return en})),i.d(t,\"WebXRSessionManager\",(function(){return an})),i.d(t,\"WebXRDefaultExperienceOptions\",(function(){return Ja})),i.d(t,\"WebXRDefaultExperience\",(function(){return $a})),i.d(t,\"WebXRFeatureName\",(function(){return Ia})),i.d(t,\"WebXRFeaturesManager\",(function(){return Da})),i.d(t,\"WebXRAbstractFeature\",(function(){return ja})),i.d(t,\"WebXRHitTestLegacy\",(function(){return F_})),i.d(t,\"WebXRAnchorSystem\",(function(){return U_})),i.d(t,\"WebXRPlaneDetector\",(function(){return k_})),i.d(t,\"WebXRBackgroundRemover\",(function(){return z_})),i.d(t,\"WebXRMotionControllerTeleportation\",(function(){return Za})),i.d(t,\"WebXRControllerPointerSelection\",(function(){return Wa})),i.d(t,\"IWebXRControllerPhysicsOptions\",(function(){return G_})),i.d(t,\"WebXRControllerPhysics\",(function(){return j_})),i.d(t,\"WebXRHitTest\",(function(){return W_})),i.d(t,\"WebXRFeaturePointSystem\",(function(){return H_})),i.d(t,\"WebXRHand\",(function(){return X_})),i.d(t,\"WebXRHandTracking\",(function(){return Y_})),i.d(t,\"WebXRAbstractMotionController\",(function(){return wa})),i.d(t,\"WebXRControllerComponent\",(function(){return La})),i.d(t,\"WebXRGenericTriggerMotionController\",(function(){return Fa})),i.d(t,\"WebXRMicrosoftMixedRealityController\",(function(){return K_})),i.d(t,\"WebXRMotionControllerManager\",(function(){return Va})),i.d(t,\"WebXROculusTouchMotionController\",(function(){return q_})),i.d(t,\"WebXRHTCViveMotionController\",(function(){return J_})),i.d(t,\"WebXRProfiledMotionController\",(function(){return Ua}));var n=i(35),r=i(91),o=i(6),a=i(0),s=i(9),c=i(11),l=function(){function e(e,t){this.triggerOptions=e,this.onBeforeExecuteObservable=new o.c,e.parameter?(this.trigger=e.trigger,this._triggerParameter=e.parameter):e.trigger?this.trigger=e.trigger:this.trigger=e,this._nextActiveAction=this,this._condition=t}return e.prototype._prepare=function(){},e.prototype.getTriggerParameter=function(){return this._triggerParameter},e.prototype._executeCurrent=function(e){if(this._nextActiveAction._condition){var t=this._nextActiveAction._condition,i=this._actionManager.getScene().getRenderId();if(t._evaluationId===i){if(!t._currentResult)return}else{if(t._evaluationId=i,!t.isValid())return void(t._currentResult=!1);t._currentResult=!0}}this.onBeforeExecuteObservable.notifyObservers(this),this._nextActiveAction.execute(e),this.skipToNextActiveAction()},e.prototype.execute=function(e){},e.prototype.skipToNextActiveAction=function(){this._nextActiveAction._child?(this._nextActiveAction._child._actionManager||(this._nextActiveAction._child._actionManager=this._actionManager),this._nextActiveAction=this._nextActiveAction._child):this._nextActiveAction=this},e.prototype.then=function(e){return this._child=e,e._actionManager=this._actionManager,e._prepare(),e},e.prototype._getProperty=function(e){return this._actionManager._getProperty(e)},e.prototype._getEffectiveTarget=function(e,t){return this._actionManager._getEffectiveTarget(e,t)},e.prototype.serialize=function(e){},e.prototype._serialize=function(e,t){var i={type:1,children:[],name:e.name,properties:e.properties||[]};if(this._child&&this._child.serialize(i),this._condition){var n=this._condition.serialize();return n.children.push(i),t&&t.children.push(n),n}return t&&t.children.push(i),i},e._SerializeValueAsString=function(e){return\"number\"==typeof e?e.toString():\"boolean\"==typeof e?e?\"true\":\"false\":e instanceof a.d?e.x+\", \"+e.y:e instanceof a.e?e.x+\", \"+e.y+\", \"+e.z:e instanceof s.a?e.r+\", \"+e.g+\", \"+e.b:e instanceof s.b?e.r+\", \"+e.g+\", \"+e.b+\", \"+e.a:e},e._GetTargetProperty=function(e){return{name:\"target\",targetType:e._isMesh?\"MeshProperties\":e._isLight?\"LightProperties\":e._isCamera?\"CameraProperties\":\"SceneProperties\",value:e._isScene?\"Scene\":e.name}},e}();c.a.RegisteredTypes[\"BABYLON.Action\"]=l;var u=i(47),h=i(1),d=function(){function e(e){this._actionManager=e}return e.prototype.isValid=function(){return!0},e.prototype._getProperty=function(e){return this._actionManager._getProperty(e)},e.prototype._getEffectiveTarget=function(e,t){return this._actionManager._getEffectiveTarget(e,t)},e.prototype.serialize=function(){},e.prototype._serialize=function(e){return{type:2,children:[],name:e.name,properties:e.properties}},e}(),f=function(e){function t(i,n,r,o,a){void 0===a&&(a=t.IsEqual);var s=e.call(this,i)||this;return s.propertyPath=r,s.value=o,s.operator=a,s._target=n,s._effectiveTarget=s._getEffectiveTarget(n,s.propertyPath),s._property=s._getProperty(s.propertyPath),s}return Object(h.d)(t,e),Object.defineProperty(t,\"IsEqual\",{get:function(){return t._IsEqual},enumerable:!1,configurable:!0}),Object.defineProperty(t,\"IsDifferent\",{get:function(){return t._IsDifferent},enumerable:!1,configurable:!0}),Object.defineProperty(t,\"IsGreater\",{get:function(){return t._IsGreater},enumerable:!1,configurable:!0}),Object.defineProperty(t,\"IsLesser\",{get:function(){return t._IsLesser},enumerable:!1,configurable:!0}),t.prototype.isValid=function(){switch(this.operator){case t.IsGreater:return this._effectiveTarget[this._property]>this.value;case t.IsLesser:return this._effectiveTarget[this._property]-1&&this._scene.actionManagers.splice(e,1)},t.prototype.getScene=function(){return this._scene},t.prototype.hasSpecificTriggers=function(e){for(var t=0;t-1)return!0}return!1},t.prototype.hasSpecificTriggers2=function(e,t){for(var i=0;i=t.OnPickTrigger&&i.trigger<=t.OnPointerOutTrigger)return!0}return!1},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"hasPickTriggers\",{get:function(){for(var e=0;e=t.OnPickTrigger&&i.trigger<=t.OnPickUpTrigger)return!0}return!1},enumerable:!1,configurable:!0}),t.prototype.registerAction=function(e){return e.trigger===t.OnEveryFrameTrigger&&this.getScene().actionManager!==this?(m.a.Warn(\"OnEveryFrameTrigger can only be used with scene.actionManager\"),null):(this.actions.push(e),t.Triggers[e.trigger]?t.Triggers[e.trigger]++:t.Triggers[e.trigger]=1,e._actionManager=this,e._prepare(),e)},t.prototype.unregisterAction=function(e){var i=this.actions.indexOf(e);return-1!==i&&(this.actions.splice(i,1),t.Triggers[e.trigger]-=1,0===t.Triggers[e.trigger]&&delete t.Triggers[e.trigger],e._actionManager=null,!0)},t.prototype.processTrigger=function(e,i){for(var n=0;n0;if(2===e.type?h.push(r):h.push(i),m){for(var g=new Array,v=0;v0){var _=p.properties[0].value,m=null===p.properties[0].targetType?_:n.getMeshByName(_);m._meshId&&(m.mesh=n.getMeshByID(m._meshId)),h={trigger:t[p.name],parameter:m}}else h=t[p.name];for(var g=0;g=0?i:0;var c=0,l=s._keys[0],u=s._keys.length-1,h=s._keys[u],d={referenceValue:l.value,referencePosition:a.c.Vector3[0],referenceQuaternion:a.c.Quaternion[0],referenceScaling:a.c.Vector3[1],keyPosition:a.c.Vector3[2],keyQuaternion:a.c.Quaternion[1],keyScaling:a.c.Vector3[3]},f=!1,p=l.frame,_=h.frame;if(n){var m=s.getRange(n);m&&(p=m.from,_=m.to)}var g=l.frame===p,v=h.frame===_;if(1===s._keys.length){var b=s._getKeyValue(s._keys[0]);d.referenceValue=b.clone?b.clone():b,f=!0}else if(i<=l.frame){b=s._getKeyValue(l.value);d.referenceValue=b.clone?b.clone():b,f=!0}else if(i>=h.frame){b=s._getKeyValue(h.value);d.referenceValue=b.clone?b.clone():b,f=!0}for(var y=0;!f||!g||!v&&y=T.frame&&i<=E.frame){b=void 0;if(i===T.frame)b=s._getKeyValue(T.value);else if(i===E.frame)b=s._getKeyValue(E.value);else{var S={key:y,repeatCount:0,loopMode:this.ANIMATIONLOOPMODE_CONSTANT};b=s._interpolate(i,S)}d.referenceValue=b.clone?b.clone():b,f=!0}if(!g&&p>=T.frame&&p<=E.frame){if(p===T.frame)c=y;else if(p===E.frame)c=y+1;else{S={key:y,repeatCount:0,loopMode:this.ANIMATIONLOOPMODE_CONSTANT};var A={frame:p,value:(b=s._interpolate(p,S)).clone?b.clone():b};s._keys.splice(y+1,0,A),c=y+1}g=!0}if(!v&&_>=T.frame&&_<=E.frame){if(_===T.frame)u=y;else if(_===E.frame)u=y+1;else{S={key:y,repeatCount:0,loopMode:this.ANIMATIONLOOPMODE_CONSTANT},A={frame:_,value:(b=s._interpolate(_,S)).clone?b.clone():b};s._keys.splice(y+1,0,A),u=y+1}v=!0}y++}s.dataType===e.ANIMATIONTYPE_QUATERNION?d.referenceValue.normalize().conjugateInPlace():s.dataType===e.ANIMATIONTYPE_MATRIX&&(d.referenceValue.decompose(d.referenceScaling,d.referenceQuaternion,d.referencePosition),d.referenceQuaternion.normalize().conjugateInPlace());for(y=c;y<=u;y++){A=s._keys[y];if(!y||s.dataType===e.ANIMATIONTYPE_FLOAT||A.value!==l.value)switch(s.dataType){case e.ANIMATIONTYPE_MATRIX:A.value.decompose(d.keyScaling,d.keyQuaternion,d.keyPosition),d.keyPosition.subtractInPlace(d.referencePosition),d.keyScaling.divideInPlace(d.referenceScaling),d.referenceQuaternion.multiplyToRef(d.keyQuaternion,d.keyQuaternion),a.a.ComposeToRef(d.keyScaling,d.keyQuaternion,d.keyPosition,A.value);break;case e.ANIMATIONTYPE_QUATERNION:d.referenceValue.multiplyToRef(A.value,A.value);break;case e.ANIMATIONTYPE_VECTOR2:case e.ANIMATIONTYPE_VECTOR3:case e.ANIMATIONTYPE_COLOR3:case e.ANIMATIONTYPE_COLOR4:A.value.subtractToRef(d.referenceValue,A.value);break;case e.ANIMATIONTYPE_SIZE:A.value.width-=d.referenceValue.width,A.value.height-=d.referenceValue.height;break;default:A.value-=d.referenceValue}}return s},e.TransitionTo=function(e,t,i,n,r,o,a,s){if(void 0===s&&(s=null),a<=0)return i[e]=t,s&&s(),null;var c=r*(a/1e3);o.setKeys([{frame:0,value:i[e].clone?i[e].clone():i[e]},{frame:c,value:t}]),i.animations||(i.animations=[]),i.animations.push(o);var l=n.beginAnimation(i,0,c,!1);return l.onAnimationEnd=s,l},Object.defineProperty(e.prototype,\"runtimeAnimations\",{get:function(){return this._runtimeAnimations},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"hasRunningRuntimeAnimations\",{get:function(){for(var e=0,t=this._runtimeAnimations;e=0;o--)this._keys[o].frame>=n&&this._keys[o].frame<=r&&this._keys.splice(o,1);this._ranges[e]=null}},e.prototype.getRange=function(e){return this._ranges[e]},e.prototype.getKeys=function(){return this._keys},e.prototype.getHighestFrame=function(){for(var e=0,t=0,i=this._keys.length;t0)return i.highLimitValue.clone?i.highLimitValue.clone():i.highLimitValue;var n=this._keys;if(1===n.length)return this._getKeyValue(n[0].value);var r=i.key;if(n[r].frame>=t)for(;r-1>=0&&n[r].frame>=t;)r--;for(var o=r;o=t){i.key=o;var s=n[o],c=this._getKeyValue(s.value);if(s.interpolation===N.STEP)return c;var l=this._getKeyValue(a.value),u=void 0!==s.outTangent&&void 0!==a.inTangent,h=a.frame-s.frame,d=(t-s.frame)/h,f=this.getEasingFunction();switch(null!=f&&(d=f.ease(d)),this.dataType){case e.ANIMATIONTYPE_FLOAT:var p=u?this.floatInterpolateFunctionWithTangents(c,s.outTangent*h,l,a.inTangent*h,d):this.floatInterpolateFunction(c,l,d);switch(i.loopMode){case e.ANIMATIONLOOPMODE_CYCLE:case e.ANIMATIONLOOPMODE_CONSTANT:return p;case e.ANIMATIONLOOPMODE_RELATIVE:return i.offsetValue*i.repeatCount+p}break;case e.ANIMATIONTYPE_QUATERNION:var _=u?this.quaternionInterpolateFunctionWithTangents(c,s.outTangent.scale(h),l,a.inTangent.scale(h),d):this.quaternionInterpolateFunction(c,l,d);switch(i.loopMode){case e.ANIMATIONLOOPMODE_CYCLE:case e.ANIMATIONLOOPMODE_CONSTANT:return _;case e.ANIMATIONLOOPMODE_RELATIVE:return _.addInPlace(i.offsetValue.scale(i.repeatCount))}return _;case e.ANIMATIONTYPE_VECTOR3:var m=u?this.vector3InterpolateFunctionWithTangents(c,s.outTangent.scale(h),l,a.inTangent.scale(h),d):this.vector3InterpolateFunction(c,l,d);switch(i.loopMode){case e.ANIMATIONLOOPMODE_CYCLE:case e.ANIMATIONLOOPMODE_CONSTANT:return m;case e.ANIMATIONLOOPMODE_RELATIVE:return m.add(i.offsetValue.scale(i.repeatCount))}case e.ANIMATIONTYPE_VECTOR2:var g=u?this.vector2InterpolateFunctionWithTangents(c,s.outTangent.scale(h),l,a.inTangent.scale(h),d):this.vector2InterpolateFunction(c,l,d);switch(i.loopMode){case e.ANIMATIONLOOPMODE_CYCLE:case e.ANIMATIONLOOPMODE_CONSTANT:return g;case e.ANIMATIONLOOPMODE_RELATIVE:return g.add(i.offsetValue.scale(i.repeatCount))}case e.ANIMATIONTYPE_SIZE:switch(i.loopMode){case e.ANIMATIONLOOPMODE_CYCLE:case e.ANIMATIONLOOPMODE_CONSTANT:return this.sizeInterpolateFunction(c,l,d);case e.ANIMATIONLOOPMODE_RELATIVE:return this.sizeInterpolateFunction(c,l,d).add(i.offsetValue.scale(i.repeatCount))}case e.ANIMATIONTYPE_COLOR3:switch(i.loopMode){case e.ANIMATIONLOOPMODE_CYCLE:case e.ANIMATIONLOOPMODE_CONSTANT:return this.color3InterpolateFunction(c,l,d);case e.ANIMATIONLOOPMODE_RELATIVE:return this.color3InterpolateFunction(c,l,d).add(i.offsetValue.scale(i.repeatCount))}case e.ANIMATIONTYPE_COLOR4:switch(i.loopMode){case e.ANIMATIONLOOPMODE_CYCLE:case e.ANIMATIONLOOPMODE_CONSTANT:return this.color4InterpolateFunction(c,l,d);case e.ANIMATIONLOOPMODE_RELATIVE:return this.color4InterpolateFunction(c,l,d).add(i.offsetValue.scale(i.repeatCount))}case e.ANIMATIONTYPE_MATRIX:switch(i.loopMode){case e.ANIMATIONLOOPMODE_CYCLE:case e.ANIMATIONLOOPMODE_CONSTANT:if(e.AllowMatricesInterpolation)return this.matrixInterpolateFunction(c,l,d,i.workValue);case e.ANIMATIONLOOPMODE_RELATIVE:return c}}break}}return this._getKeyValue(n[n.length-1].value)},e.prototype.matrixInterpolateFunction=function(t,i,n,r){return e.AllowMatrixDecomposeForInterpolation?r?(a.a.DecomposeLerpToRef(t,i,n,r),r):a.a.DecomposeLerp(t,i,n):r?(a.a.LerpToRef(t,i,n,r),r):a.a.Lerp(t,i,n)},e.prototype.clone=function(){var t=new e(this.name,this.targetPropertyPath.join(\".\"),this.framePerSecond,this.dataType,this.loopMode);if(t.enableBlending=this.enableBlending,t.blendingSpeed=this.blendingSpeed,this._keys&&t.setKeys(this._keys),this._ranges)for(var i in t._ranges={},this._ranges){var n=this._ranges[i];n&&(t._ranges[i]=n.clone())}return t},e.prototype.setKeys=function(e){this._keys=e.slice(0)},e.prototype.serialize=function(){var t={};t.name=this.name,t.property=this.targetProperty,t.framePerSecond=this.framePerSecond,t.dataType=this.dataType,t.loopBehavior=this.loopMode,t.enableBlending=this.enableBlending,t.blendingSpeed=this.blendingSpeed;var i=this.dataType;t.keys=[];for(var n=this.getKeys(),r=0;r=1&&(l=h.values[1]),h.values.length>=2&&(u=h.values[2]);break;case e.ANIMATIONTYPE_QUATERNION:if(i=a.b.FromArray(h.values),h.values.length>=8){var d=a.b.FromArray(h.values.slice(4,8));d.equals(a.b.Zero())||(l=d)}if(h.values.length>=12){var f=a.b.FromArray(h.values.slice(8,12));f.equals(a.b.Zero())||(u=f)}break;case e.ANIMATIONTYPE_MATRIX:i=a.a.FromArray(h.values);break;case e.ANIMATIONTYPE_COLOR3:i=s.a.FromArray(h.values);break;case e.ANIMATIONTYPE_COLOR4:i=s.b.FromArray(h.values);break;case e.ANIMATIONTYPE_VECTOR3:default:i=a.e.FromArray(h.values)}var p={};p.frame=h.frame,p.value=i,null!=l&&(p.inTangent=l),null!=u&&(p.outTangent=u),c.push(p)}if(r.setKeys(c),t.ranges)for(n=0;n0&&h.forEach((function(e){r._events.push(e._clone())})),this._enableBlending=e&&e.animationPropertiesOverride?e.animationPropertiesOverride.enableBlending:this._animation.enableBlending}return Object.defineProperty(e.prototype,\"currentFrame\",{get:function(){return this._currentFrame},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"weight\",{get:function(){return this._weight},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"currentValue\",{get:function(){return this._currentValue},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"targetPath\",{get:function(){return this._targetPath},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"target\",{get:function(){return this._currentActiveTarget},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"isAdditive\",{get:function(){return this._host&&this._host.isAdditive},enumerable:!1,configurable:!0}),e.prototype._preparePath=function(e,t){void 0===t&&(t=0);var i=this._animation.targetPropertyPath;if(i.length>1){for(var n=e[i[0]],r=1;r-1&&this._animation.runtimeAnimations.splice(e,1)},e.prototype.setValue=function(e,t){if(this._targetIsArray)for(var i=0;it[t.length-1].frame&&(e=t[t.length-1].frame);var i=this._events;if(i.length)for(var n=0;nthis._maxFrame)&&(t=this._minFrame),(ithis._maxFrame)&&(i=this._maxFrame);var l,u,h=i-t,d=e*(a.framePerSecond*r)/1e3+this._ratioOffset,f=0;if(this._previousDelay=e,this._previousRatio=d,!n&&i>=t&&d>=h)c=!1,f=a._getKeyValue(this._maxValue);else if(!n&&t>=i&&d<=h)c=!1,f=a._getKeyValue(this._minValue);else if(this._animationState.loopMode!==z.ANIMATIONLOOPMODE_CYCLE){var p=i.toString()+t.toString();if(!this._offsetsCache[p]){this._animationState.repeatCount=0,this._animationState.loopMode=z.ANIMATIONLOOPMODE_CYCLE;var _=a._interpolate(t,this._animationState),m=a._interpolate(i,this._animationState);switch(this._animationState.loopMode=this._getCorrectLoopMode(),a.dataType){case z.ANIMATIONTYPE_FLOAT:this._offsetsCache[p]=m-_;break;case z.ANIMATIONTYPE_QUATERNION:this._offsetsCache[p]=m.subtract(_);break;case z.ANIMATIONTYPE_VECTOR3:this._offsetsCache[p]=m.subtract(_);case z.ANIMATIONTYPE_VECTOR2:this._offsetsCache[p]=m.subtract(_);case z.ANIMATIONTYPE_SIZE:this._offsetsCache[p]=m.subtract(_);case z.ANIMATIONTYPE_COLOR3:this._offsetsCache[p]=m.subtract(_)}this._highLimitsCache[p]=m}f=this._highLimitsCache[p],l=this._offsetsCache[p]}if(void 0===l)switch(a.dataType){case z.ANIMATIONTYPE_FLOAT:l=0;break;case z.ANIMATIONTYPE_QUATERNION:l=j;break;case z.ANIMATIONTYPE_VECTOR3:l=W;break;case z.ANIMATIONTYPE_VECTOR2:l=H;break;case z.ANIMATIONTYPE_SIZE:l=X;break;case z.ANIMATIONTYPE_COLOR3:l=Y}if(this._host&&this._host.syncRoot){var g=this._host.syncRoot;u=t+(i-t)*((g.masterFrame-g.fromFrame)/(g.toFrame-g.fromFrame))}else u=c&&0!==h?t+d%h:i;var v=this._events;if((h>0&&this.currentFrame>u||h<0&&this.currentFrame>0,this._animationState.highLimitValue=f,this._animationState.offsetValue=l;var y=a._interpolate(u,this._animationState);if(this.setValue(y,o),v.length)for(b=0;b0&&u>=v[b].frame&&v[b].frame>=t||h<0&&u<=v[b].frame&&v[b].frame<=t){var T=v[b];T.isDone||(T.onlyOnce&&(v.splice(b,1),b--),T.isDone=!0,T.action(u))}return c||(this._stopped=!0),c},e}(),Q=i(20),q=i(57),Z=i(44),J=i(23),$=function(e){function t(t,i,n,r,o,s,c){void 0===n&&(n=null),void 0===r&&(r=null),void 0===o&&(o=null),void 0===s&&(s=null),void 0===c&&(c=null);var l=e.call(this,t,i.getScene())||this;return l.name=t,l.children=new Array,l.animations=new Array,l._index=null,l._absoluteTransform=new a.a,l._invertedAbsoluteTransform=new a.a,l._scalingDeterminant=1,l._worldTransform=new a.a,l._needToDecompose=!0,l._needToCompose=!1,l._linkedTransformNode=null,l._waitingTransformNodeId=null,l._skeleton=i,l._localMatrix=r?r.clone():a.a.Identity(),l._restPose=o||l._localMatrix.clone(),l._bindPose=l._localMatrix.clone(),l._baseMatrix=s||l._localMatrix.clone(),l._index=c,i.bones.push(l),l.setParent(n,!1),(s||r)&&l._updateDifferenceMatrix(),l}return Object(h.d)(t,e),Object.defineProperty(t.prototype,\"_matrix\",{get:function(){return this._compose(),this._localMatrix},set:function(e){this._localMatrix.copyFrom(e),this._needToDecompose=!0},enumerable:!1,configurable:!0}),t.prototype.getClassName=function(){return\"Bone\"},t.prototype.getSkeleton=function(){return this._skeleton},t.prototype.getParent=function(){return this._parent},t.prototype.getChildren=function(){return this.children},t.prototype.getIndex=function(){return null===this._index?this.getSkeleton().bones.indexOf(this):this._index},t.prototype.setParent=function(e,t){if(void 0===t&&(t=!0),this._parent!==e){if(this._parent){var i=this._parent.children.indexOf(this);-1!==i&&this._parent.children.splice(i,1)}this._parent=e,this._parent&&this._parent.children.push(this),t&&this._updateDifferenceMatrix(),this.markAsDirty()}},t.prototype.getLocalMatrix=function(){return this._compose(),this._localMatrix},t.prototype.getBaseMatrix=function(){return this._baseMatrix},t.prototype.getRestPose=function(){return this._restPose},t.prototype.setRestPose=function(e){this._restPose.copyFrom(e)},t.prototype.getBindPose=function(){return this._bindPose},t.prototype.setBindPose=function(e){this._bindPose.copyFrom(e)},t.prototype.getWorldMatrix=function(){return this._worldTransform},t.prototype.returnToRest=function(){this._skeleton._numBonesWithLinkedTransformNode>0?this.updateMatrix(this._restPose,!1,!1):this.updateMatrix(this._restPose,!1,!0)},t.prototype.getInvertedAbsoluteTransform=function(){return this._invertedAbsoluteTransform},t.prototype.getAbsoluteTransform=function(){return this._absoluteTransform},t.prototype.linkTransformNode=function(e){this._linkedTransformNode&&this._skeleton._numBonesWithLinkedTransformNode--,this._linkedTransformNode=e,this._linkedTransformNode&&this._skeleton._numBonesWithLinkedTransformNode++},t.prototype.getTransformNode=function(){return this._linkedTransformNode},Object.defineProperty(t.prototype,\"position\",{get:function(){return this._decompose(),this._localPosition},set:function(e){this._decompose(),this._localPosition.copyFrom(e),this._markAsDirtyAndCompose()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"rotation\",{get:function(){return this.getRotation()},set:function(e){this.setRotation(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"rotationQuaternion\",{get:function(){return this._decompose(),this._localRotation},set:function(e){this.setRotationQuaternion(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"scaling\",{get:function(){return this.getScale()},set:function(e){this.setScale(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"animationPropertiesOverride\",{get:function(){return this._skeleton.animationPropertiesOverride},enumerable:!1,configurable:!0}),t.prototype._decompose=function(){this._needToDecompose&&(this._needToDecompose=!1,this._localScaling||(this._localScaling=a.e.Zero(),this._localRotation=a.b.Zero(),this._localPosition=a.e.Zero()),this._localMatrix.decompose(this._localScaling,this._localRotation,this._localPosition))},t.prototype._compose=function(){this._needToCompose&&(this._localScaling?(this._needToCompose=!1,a.a.ComposeToRef(this._localScaling,this._localRotation,this._localPosition,this._localMatrix)):this._needToCompose=!1)},t.prototype.updateMatrix=function(e,t,i){void 0===t&&(t=!0),void 0===i&&(i=!0),this._baseMatrix.copyFrom(e),t&&this._updateDifferenceMatrix(),i?(this._needToCompose=!1,this._localMatrix.copyFrom(e),this._markAsDirtyAndDecompose()):this.markAsDirty()},t.prototype._updateDifferenceMatrix=function(e,t){if(void 0===t&&(t=!0),e||(e=this._baseMatrix),this._parent?e.multiplyToRef(this._parent._absoluteTransform,this._absoluteTransform):this._absoluteTransform.copyFrom(e),this._absoluteTransform.invertToRef(this._invertedAbsoluteTransform),t)for(var i=0;i-1&&(this._scene._activeAnimatables.splice(t,1),this._scene._activeAnimatables.push(this))}return this},e.prototype.getAnimations=function(){return this._runtimeAnimations},e.prototype.appendAnimations=function(e,t){for(var i=this,n=0;n-1){for(var n=(o=this._runtimeAnimations).length-1;n>=0;n--){var r=o[n];e&&r.animation.name!=e||(t&&!t(r.target)||(r.dispose(),o.splice(n,1)))}0==o.length&&(this._scene._activeAnimatables.splice(i,1),this._raiseOnAnimationEnd())}}else{if((n=this._scene._activeAnimatables.indexOf(this))>-1){this._scene._activeAnimatables.splice(n,1);var o=this._runtimeAnimations;for(n=0;n0)return;this._animationTimeLast=e}this.deltaTime=this.useConstantAnimationDeltaTime?16:(e-this._animationTimeLast)*this.animationTimeScale,this._animationTimeLast=e;var t=this._activeAnimatables;if(0!==t.length){this._animationTime+=this.deltaTime;for(var i=this._animationTime,n=0;ni&&r>0&&(r*=-1),s&&this.stopAnimation(e,void 0,c),a||(a=new ee(this,e,t,i,n,r,o,void 0,l,u));var h=!c||c(e);if(e.animations&&h&&a.appendAnimations(e,e.animations),e.getAnimatables)for(var d=e.getAnimatables(),f=0;fn&&o>0&&(o*=-1),new ee(this,e,i,n,r,o,a,t,s,c)},Q.a.prototype.beginDirectHierarchyAnimation=function(e,t,i,n,r,o,a,s,c,l){void 0===l&&(l=!1);var u=e.getDescendants(t),h=[];h.push(this.beginDirectAnimation(e,i,n,r,o,a,s,c,l));for(var d=0,f=u;d0)r.copyFrom(n);else if(1===e.animations.length){if(a.b.SlerpToRef(n,i.currentValue,Math.min(1,e.totalWeight),r),0===e.totalAdditiveWeight)return r}else if(e.animations.length>1){var o=1,s=void 0,c=void 0;if(e.totalWeight<1){var l=1-e.totalWeight;c=[],(s=[]).push(n),c.push(l)}else{if(2===e.animations.length&&(a.b.SlerpToRef(e.animations[0].currentValue,e.animations[1].currentValue,e.animations[1].weight/e.totalWeight,t),0===e.totalAdditiveWeight))return t;s=[],c=[],o=e.totalWeight}for(var u=0;u=l&&a.frame<=u&&(n?(c=a.value.clone(),_?(s=c.getTranslation(),c.setTranslation(s.scaleInPlace(m))):g&&r?(s=c.getTranslation(),c.setTranslation(s.multiplyInPlace(r))):c=a.value):c=a.value,v.push({frame:a.frame+i,value:c}));return this.animations[0].createRange(t,l+i,u+i),!0};var te=function(){function e(){}return e.prototype.getClassName=function(){return\"TargetedAnimation\"},e.prototype.serialize=function(){var e={};return e.animation=this.animation.serialize(),e.targetId=this.target.id,e},e}(),ie=function(){function e(e,t){void 0===t&&(t=null),this.name=e,this._targetedAnimations=new Array,this._animatables=new Array,this._from=Number.MAX_VALUE,this._to=-Number.MAX_VALUE,this._speedRatio=1,this._loopAnimation=!1,this._isAdditive=!1,this.onAnimationEndObservable=new o.c,this.onAnimationLoopObservable=new o.c,this.onAnimationGroupLoopObservable=new o.c,this.onAnimationGroupEndObservable=new o.c,this.onAnimationGroupPauseObservable=new o.c,this.onAnimationGroupPlayObservable=new o.c,this._scene=t||x.a.LastCreatedScene,this.uniqueId=this._scene.getUniqueId(),this._scene.addAnimationGroup(this)}return Object.defineProperty(e.prototype,\"from\",{get:function(){return this._from},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"to\",{get:function(){return this._to},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"isStarted\",{get:function(){return this._isStarted},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"isPlaying\",{get:function(){return this._isStarted&&!this._isPaused},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"speedRatio\",{get:function(){return this._speedRatio},set:function(e){if(this._speedRatio!==e){this._speedRatio=e;for(var t=0;tn[0].frame&&(this._from=n[0].frame),this._toe){var a={frame:e,value:r.value,inTangent:r.inTangent,outTangent:r.outTangent,interpolation:r.interpolation};n.splice(0,0,a)}if(o.framen&&this._speedRatio>0&&(this._speedRatio=-t);return this._isStarted=!0,this._isPaused=!1,this.onAnimationGroupPlayObservable.notifyObservers(this),this},e.prototype.pause=function(){if(!this._isStarted)return this;this._isPaused=!0;for(var e=0;e-1&&this._scene.animationGroups.splice(e,1),this.onAnimationEndObservable.clear(),this.onAnimationGroupEndObservable.clear(),this.onAnimationGroupPauseObservable.clear(),this.onAnimationGroupPlayObservable.clear(),this.onAnimationLoopObservable.clear(),this.onAnimationGroupLoopObservable.clear()},e.prototype._checkAnimationGroupEnded=function(e){var t=this._animatables.indexOf(e);t>-1&&this._animatables.splice(t,1),0===this._animatables.length&&(this._isStarted=!1,this.onAnimationGroupEndObservable.notifyObservers(this))},e.prototype.clone=function(t,i){for(var n=new e(t||this.name,this._scene),r=0,o=this._targetedAnimations;r=.5?.5*(1-this.easeInCore(2*(1-t)))+.5:.5*this.easeInCore(2*t)},e.EASINGMODE_EASEIN=0,e.EASINGMODE_EASEOUT=1,e.EASINGMODE_EASEINOUT=2,e}(),ae=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(h.d)(t,e),t.prototype.easeInCore=function(e){return e=Math.max(0,Math.min(1,e)),1-Math.sqrt(1-e*e)},t}(oe),se=function(e){function t(t){void 0===t&&(t=1);var i=e.call(this)||this;return i.amplitude=t,i}return Object(h.d)(t,e),t.prototype.easeInCore=function(e){var t=Math.max(0,this.amplitude);return Math.pow(e,3)-e*t*Math.sin(3.141592653589793*e)},t}(oe),ce=function(e){function t(t,i){void 0===t&&(t=3),void 0===i&&(i=2);var n=e.call(this)||this;return n.bounces=t,n.bounciness=i,n}return Object(h.d)(t,e),t.prototype.easeInCore=function(e){var t=Math.max(0,this.bounces),i=this.bounciness;i<=1&&(i=1.001);var n=Math.pow(i,t),r=1-i,o=(1-n)/r+.5*n,a=e*o,s=Math.log(-a*(1-i)+1)/Math.log(i),c=Math.floor(s),l=c+1,u=(1-Math.pow(i,c))/(r*o),h=.5*(u+(1-Math.pow(i,l))/(r*o)),d=e-h,f=h-u;return-Math.pow(1/i,t-c)/(f*f)*(d-f)*(d+f)},t}(oe),le=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(h.d)(t,e),t.prototype.easeInCore=function(e){return e*e*e},t}(oe),ue=function(e){function t(t,i){void 0===t&&(t=3),void 0===i&&(i=3);var n=e.call(this)||this;return n.oscillations=t,n.springiness=i,n}return Object(h.d)(t,e),t.prototype.easeInCore=function(e){var t=Math.max(0,this.oscillations),i=Math.max(0,this.springiness);return(0==i?e:(Math.exp(i*e)-1)/(Math.exp(i)-1))*Math.sin((6.283185307179586*t+1.5707963267948966)*e)},t}(oe),he=function(e){function t(t){void 0===t&&(t=2);var i=e.call(this)||this;return i.exponent=t,i}return Object(h.d)(t,e),t.prototype.easeInCore=function(e){return this.exponent<=0?e:(Math.exp(this.exponent*e)-1)/(Math.exp(this.exponent)-1)},t}(oe),de=function(e){function t(t){void 0===t&&(t=2);var i=e.call(this)||this;return i.power=t,i}return Object(h.d)(t,e),t.prototype.easeInCore=function(e){var t=Math.max(0,this.power);return Math.pow(e,t)},t}(oe),fe=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(h.d)(t,e),t.prototype.easeInCore=function(e){return e*e},t}(oe),pe=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(h.d)(t,e),t.prototype.easeInCore=function(e){return e*e*e*e},t}(oe),_e=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(h.d)(t,e),t.prototype.easeInCore=function(e){return e*e*e*e*e},t}(oe),me=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(h.d)(t,e),t.prototype.easeInCore=function(e){return 1-Math.sin(1.5707963267948966*(1-e))},t}(oe),ge=function(e){function t(t,i,n,r){void 0===t&&(t=0),void 0===i&&(i=0),void 0===n&&(n=1),void 0===r&&(r=1);var o=e.call(this)||this;return o.x1=t,o.y1=i,o.x2=n,o.y2=r,o}return Object(h.d)(t,e),t.prototype.easeInCore=function(e){return re.c.Interpolate(e,this.x1,this.y1,this.x2,this.y2)},t}(oe),ve=function(){function e(e,t,i){this.frame=e,this.action=t,this.onlyOnce=i,this.isDone=!1}return e.prototype._clone=function(){return new e(this.frame,this.action,this.onlyOnce)},e}(),be=i(7),ye=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(h.d)(t,e),t}(n.a),Te=function(){this.rootNodes=[],this.skeletons=[],this.animationGroups=[]},Ee=function(e){function t(t){var i=e.call(this)||this;return i._wasAddedToScene=!1,i.scene=t,i.sounds=[],i.effectLayers=[],i.layers=[],i.lensFlareSystems=[],i.proceduralTextures=[],i.reflectionProbes=[],t.onDisposeObservable.add((function(){i._wasAddedToScene||i.dispose()})),i}return Object(h.d)(t,e),t.prototype.instantiateModelsToScene=function(e,t){var i=this;void 0===t&&(t=!1);var n={},r={},o=new Te,a=[],s=[],c={doNotInstantiate:!0},l=function(t,i){if(n[t.uniqueId]=i.uniqueId,r[i.uniqueId]=i,e&&(i.name=e(t.name)),i instanceof be.a){var o=i;if(o.morphTargetManager){var a=t.morphTargetManager;o.morphTargetManager=a.clone();for(var s=0;s-1&&t.animations.splice(o,1)}},r=0,o=e.animations;r0&&(_=!0,this._soundLoaded(i));break;case\"String\":p.push(i);case\"Array\":0===p.length&&(p=i);for(var g=0;g0&&(this._htmlAudioElement.currentTime=0)):this._streamingSource.disconnect(),this.isPlaying=!1;else if(Se.a.audioEngine.audioContext&&this._soundSource){var i=e?Se.a.audioEngine.audioContext.currentTime+e:Se.a.audioEngine.audioContext.currentTime;this._soundSource.stop(i),this._soundSource.onended=function(){t.isPlaying=!1},this.isPaused||(this._startOffset=0)}},e.prototype.pause=function(){this.isPlaying&&(this.isPaused=!0,this._streaming?this._htmlAudioElement?this._htmlAudioElement.pause():this._streamingSource.disconnect():Se.a.audioEngine.audioContext&&(this.stop(0),this._startOffset+=Se.a.audioEngine.audioContext.currentTime-this._startTime))},e.prototype.setVolume=function(e,t){Se.a.audioEngine.canUseWebAudio&&this._soundGain&&(t&&Se.a.audioEngine.audioContext?(this._soundGain.gain.cancelScheduledValues(Se.a.audioEngine.audioContext.currentTime),this._soundGain.gain.setValueAtTime(this._soundGain.gain.value,Se.a.audioEngine.audioContext.currentTime),this._soundGain.gain.linearRampToValueAtTime(e,Se.a.audioEngine.audioContext.currentTime+t)):this._soundGain.gain.value=e),this._volume=e},e.prototype.setPlaybackRate=function(e){this._playbackRate=e,this.isPlaying&&(this._streaming&&this._htmlAudioElement?this._htmlAudioElement.playbackRate=this._playbackRate:this._soundSource&&(this._soundSource.playbackRate.value=this._playbackRate))},e.prototype.getVolume=function(){return this._volume},e.prototype.attachToMesh=function(e){var t=this;this._connectedTransformNode&&this._registerFunc&&(this._connectedTransformNode.unregisterAfterWorldMatrixUpdate(this._registerFunc),this._registerFunc=null),this._connectedTransformNode=e,this.spatialSound||(this.spatialSound=!0,this._createSpatialParameters(),this.isPlaying&&this.loop&&(this.stop(),this.play(0,this._offset,this._length))),this._onRegisterAfterWorldMatrixUpdate(this._connectedTransformNode),this._registerFunc=function(e){return t._onRegisterAfterWorldMatrixUpdate(e)},this._connectedTransformNode.registerAfterWorldMatrixUpdate(this._registerFunc)},e.prototype.detachFromMesh=function(){this._connectedTransformNode&&this._registerFunc&&(this._connectedTransformNode.unregisterAfterWorldMatrixUpdate(this._registerFunc),this._registerFunc=null,this._connectedTransformNode=null)},e.prototype._onRegisterAfterWorldMatrixUpdate=function(e){if(this._positionInEmitterSpace)e.worldMatrixFromCache.invertToRef(a.c.Matrix[0]),this.setPosition(a.c.Matrix[0].getTranslation());else if(e.getBoundingInfo){var t=e.getBoundingInfo();this.setPosition(t.boundingSphere.centerWorld)}else this.setPosition(e.absolutePosition);Se.a.audioEngine.canUseWebAudio&&this._isDirectional&&this.isPlaying&&this._updateDirection()},e.prototype.clone=function(){var t=this;if(this._streaming)return null;var i=function(){t._isReadyToPlay?(r._audioBuffer=t.getAudioBuffer(),r._isReadyToPlay=!0,r.autoplay&&r.play(0,t._offset,t._length)):window.setTimeout(i,300)},n={autoplay:this.autoplay,loop:this.loop,volume:this._volume,spatialSound:this.spatialSound,maxDistance:this.maxDistance,useCustomAttenuation:this.useCustomAttenuation,rolloffFactor:this.rolloffFactor,refDistance:this.refDistance,distanceModel:this.distanceModel},r=new e(this.name+\"_cloned\",new ArrayBuffer(0),this._scene,null,n);return this.useCustomAttenuation&&r.setAttenuationFunction(this._customAttenuationFunction),r.setPosition(this._position),r.setPlaybackRate(this._playbackRate),i(),r},e.prototype.getAudioBuffer=function(){return this._audioBuffer},e.prototype.getSoundSource=function(){return this._soundSource},e.prototype.getSoundGain=function(){return this._soundGain},e.prototype.serialize=function(){var e={name:this.name,url:this.name,autoplay:this.autoplay,loop:this.loop,volume:this._volume,spatialSound:this.spatialSound,maxDistance:this.maxDistance,rolloffFactor:this.rolloffFactor,refDistance:this.refDistance,distanceModel:this.distanceModel,playbackRate:this._playbackRate,panningModel:this._panningModel,soundTrackId:this.soundTrackId,metadata:this.metadata};return this.spatialSound&&(this._connectedTransformNode&&(e.connectedMeshId=this._connectedTransformNode.id),e.position=this._position.asArray(),e.refDistance=this.refDistance,e.distanceModel=this.distanceModel,e.isDirectional=this._isDirectional,e.localDirectionToMesh=this._localDirection.asArray(),e.coneInnerAngle=this._coneInnerAngle,e.coneOuterAngle=this._coneOuterAngle,e.coneOuterGain=this._coneOuterGain),e},e.Parse=function(t,i,n,r){var o,s=t.name;o=t.url?n+t.url:n+s;var c,l={autoplay:t.autoplay,loop:t.loop,volume:t.volume,spatialSound:t.spatialSound,maxDistance:t.maxDistance,rolloffFactor:t.rolloffFactor,refDistance:t.refDistance,distanceModel:t.distanceModel,playbackRate:t.playbackRate};if(r){var u=function(){r._isReadyToPlay?(c._audioBuffer=r.getAudioBuffer(),c._isReadyToPlay=!0,c.autoplay&&c.play(0,c._offset,c._length)):window.setTimeout(u,300)};c=new e(s,new ArrayBuffer(0),i,null,l),u()}else c=new e(s,o,i,(function(){i._removePendingData(c)}),l),i._addPendingData(c);if(t.position){var h=a.e.FromArray(t.position);c.setPosition(h)}if(t.isDirectional&&(c.setDirectionalCone(t.coneInnerAngle||360,t.coneOuterAngle||360,t.coneOuterGain||0),t.localDirectionToMesh)){var d=a.e.FromArray(t.localDirectionToMesh);c.setLocalDirectionToMesh(d)}if(t.connectedMeshId){var f=i.getMeshByID(t.connectedMeshId);f&&c.attachToMesh(f)}return t.metadata&&(c.metadata=t.metadata),c},e._SceneComponentInitialization=function(e){throw Re.a.WarnImport(\"AudioSceneComponent\")},e}(),Oe=function(){function e(e,t){void 0===t&&(t={}),this.id=-1,this._isInitialized=!1,this._scene=e,this.soundCollection=new Array,this._options=t,!this._options.mainTrack&&this._scene.soundTracks&&(this._scene.soundTracks.push(this),this.id=this._scene.soundTracks.length-1)}return e.prototype._initializeSoundTrackAudioGraph=function(){Se.a.audioEngine.canUseWebAudio&&Se.a.audioEngine.audioContext&&(this._outputAudioNode=Se.a.audioEngine.audioContext.createGain(),this._outputAudioNode.connect(Se.a.audioEngine.masterGain),this._options&&this._options.volume&&(this._outputAudioNode.gain.value=this._options.volume),this._isInitialized=!0)},e.prototype.dispose=function(){if(Se.a.audioEngine&&Se.a.audioEngine.canUseWebAudio){for(this._connectedAnalyser&&this._connectedAnalyser.stopDebugCanvas();this.soundCollection.length;)this.soundCollection[0].dispose();this._outputAudioNode&&this._outputAudioNode.disconnect(),this._outputAudioNode=null}},e.prototype.addSound=function(e){this._isInitialized||this._initializeSoundTrackAudioGraph(),Se.a.audioEngine.canUseWebAudio&&this._outputAudioNode&&e.connectToSoundTrackAudioNode(this._outputAudioNode),e.soundTrackId&&(-1===e.soundTrackId?this._scene.mainSoundTrack.removeSound(e):this._scene.soundTracks&&this._scene.soundTracks[e.soundTrackId].removeSound(e)),this.soundCollection.push(e),e.soundTrackId=this.id},e.prototype.removeSound=function(e){var t=this.soundCollection.indexOf(e);-1!==t&&this.soundCollection.splice(t,1)},e.prototype.setVolume=function(e){Se.a.audioEngine.canUseWebAudio&&this._outputAudioNode&&(this._outputAudioNode.gain.value=e)},e.prototype.switchPanningModelToHRTF=function(){if(Se.a.audioEngine.canUseWebAudio)for(var e=0;e0?i.activeCameras[0]:i.activeCamera){this._cachedCameraPosition.equals(o.globalPosition)||(this._cachedCameraPosition.copyFrom(o.globalPosition),n.audioContext.listener.setPosition(o.globalPosition.x,o.globalPosition.y,o.globalPosition.z)),o.rigCameras&&o.rigCameras.length>0&&(o=o.rigCameras[0]);var s=a.a.Invert(o.getViewMatrix()),c=a.e.TransformNormal(i.useRightHandedSystem?e._CameraDirectionRH:e._CameraDirectionLH,s);c.normalize(),isNaN(c.x)||isNaN(c.y)||isNaN(c.z)||this._cachedCameraDirection.equals(c)||(this._cachedCameraDirection.copyFrom(c),n.audioContext.listener.setOrientation(c.x,c.y,c.z,0,1,0))}else n.audioContext.listener.setPosition(0,0,0)}var l;for(l=0;l0?1/r:0,c=0;c0},enumerable:!1,configurable:!0}),e.prototype.init=function(){},e.prototype.attach=function(e){var t=this;this._attachedCamera=e;var i=this._attachedCamera.getScene();this._onPrePointerObservableObserver=i.onPrePointerObservable.add((function(e){e.type!==Ne.a.POINTERDOWN?e.type===Ne.a.POINTERUP&&(t._isPointerDown=!1):t._isPointerDown=!0})),this._onAfterCheckInputsObserver=e.onAfterCheckInputsObservable.add((function(){var e=q.a.Now,i=0;null!=t._lastFrameTime&&(i=e-t._lastFrameTime),t._lastFrameTime=e,t._applyUserInteraction();var n=e-t._lastInteractionTime-t._idleRotationWaitTime,r=Math.max(Math.min(n/t._idleRotationSpinupTime,1),0);t._cameraRotationSpeed=t._idleRotationSpeed*r,t._attachedCamera&&(t._attachedCamera.alpha-=t._cameraRotationSpeed*(i/1e3))}))},e.prototype.detach=function(){if(this._attachedCamera){var e=this._attachedCamera.getScene();this._onPrePointerObservableObserver&&e.onPrePointerObservable.remove(this._onPrePointerObservableObserver),this._attachedCamera.onAfterCheckInputsObservable.remove(this._onAfterCheckInputsObserver),this._attachedCamera=null}},e.prototype._userIsZooming=function(){return!!this._attachedCamera&&0!==this._attachedCamera.inertialRadiusOffset},e.prototype._shouldAnimationStopForInteraction=function(){if(!this._attachedCamera)return!1;var e=!1;return this._lastFrameRadius===this._attachedCamera.radius&&0!==this._attachedCamera.inertialRadiusOffset&&(e=!0),this._lastFrameRadius=this._attachedCamera.radius,this._zoomStopsAnimation?e:this._userIsZooming()},e.prototype._applyUserInteraction=function(){this._userIsMoving()&&!this._shouldAnimationStopForInteraction()&&(this._lastInteractionTime=q.a.Now)},e.prototype._userIsMoving=function(){return!!this._attachedCamera&&(0!==this._attachedCamera.inertialAlphaOffset||0!==this._attachedCamera.inertialBetaOffset||0!==this._attachedCamera.inertialRadiusOffset||0!==this._attachedCamera.inertialPanningX||0!==this._attachedCamera.inertialPanningY||this._isPointerDown)},e}(),we=function(){function e(){this.transitionDuration=450,this.lowerRadiusTransitionRange=2,this.upperRadiusTransitionRange=-2,this._autoTransitionRange=!1,this._radiusIsAnimating=!1,this._radiusBounceTransition=null,this._animatables=new Array}return Object.defineProperty(e.prototype,\"name\",{get:function(){return\"Bouncing\"},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"autoTransitionRange\",{get:function(){return this._autoTransitionRange},set:function(e){var t=this;if(this._autoTransitionRange!==e){this._autoTransitionRange=e;var i=this._attachedCamera;i&&(e?this._onMeshTargetChangedObserver=i.onMeshTargetChangedObservable.add((function(e){if(e){e.computeWorldMatrix(!0);var i=e.getBoundingInfo().diagonalLength;t.lowerRadiusTransitionRange=.05*i,t.upperRadiusTransitionRange=.05*i}})):this._onMeshTargetChangedObserver&&i.onMeshTargetChangedObservable.remove(this._onMeshTargetChangedObserver))}},enumerable:!1,configurable:!0}),e.prototype.init=function(){},e.prototype.attach=function(e){var t=this;this._attachedCamera=e,this._onAfterCheckInputsObserver=e.onAfterCheckInputsObservable.add((function(){t._attachedCamera&&(t._isRadiusAtLimit(t._attachedCamera.lowerRadiusLimit)&&t._applyBoundRadiusAnimation(t.lowerRadiusTransitionRange),t._isRadiusAtLimit(t._attachedCamera.upperRadiusLimit)&&t._applyBoundRadiusAnimation(t.upperRadiusTransitionRange))}))},e.prototype.detach=function(){this._attachedCamera&&(this._onAfterCheckInputsObserver&&this._attachedCamera.onAfterCheckInputsObservable.remove(this._onAfterCheckInputsObserver),this._onMeshTargetChangedObserver&&this._attachedCamera.onMeshTargetChangedObservable.remove(this._onMeshTargetChangedObserver),this._attachedCamera=null)},e.prototype._isRadiusAtLimit=function(e){return!!this._attachedCamera&&(this._attachedCamera.radius===e&&!this._radiusIsAnimating)},e.prototype._applyBoundRadiusAnimation=function(t){var i=this;if(this._attachedCamera){this._radiusBounceTransition||(e.EasingFunction.setEasingMode(e.EasingMode),this._radiusBounceTransition=z.CreateAnimation(\"radius\",z.ANIMATIONTYPE_FLOAT,60,e.EasingFunction)),this._cachedWheelPrecision=this._attachedCamera.wheelPrecision,this._attachedCamera.wheelPrecision=1/0,this._attachedCamera.inertialRadiusOffset=0,this.stopAllAnimations(),this._radiusIsAnimating=!0;var n=z.TransitionTo(\"radius\",this._attachedCamera.radius+t,this._attachedCamera,this._attachedCamera.getScene(),60,this._radiusBounceTransition,this.transitionDuration,(function(){return i._clearAnimationLocks()}));n&&this._animatables.push(n)}},e.prototype._clearAnimationLocks=function(){this._radiusIsAnimating=!1,this._attachedCamera&&(this._attachedCamera.wheelPrecision=this._cachedWheelPrecision)},e.prototype.stopAllAnimations=function(){for(this._attachedCamera&&(this._attachedCamera.animations=[]);this._animatables.length;)this._animatables[0].onAnimationEnd=null,this._animatables[0].stop(),this._animatables.shift()},e.EasingFunction=new se(.3),e.EasingMode=oe.EASINGMODE_EASEOUT,e}(),Fe=function(){function e(){this._mode=e.FitFrustumSidesMode,this._radiusScale=1,this._positionScale=.5,this._defaultElevation=.3,this._elevationReturnTime=1500,this._elevationReturnWaitTime=1e3,this._zoomStopsAnimation=!1,this._framingTime=1500,this.autoCorrectCameraLimitsAndSensibility=!0,this._isPointerDown=!1,this._lastInteractionTime=-1/0,this._animatables=new Array,this._betaIsAnimating=!1}return Object.defineProperty(e.prototype,\"name\",{get:function(){return\"Framing\"},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"mode\",{get:function(){return this._mode},set:function(e){this._mode=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"radiusScale\",{get:function(){return this._radiusScale},set:function(e){this._radiusScale=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"positionScale\",{get:function(){return this._positionScale},set:function(e){this._positionScale=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"defaultElevation\",{get:function(){return this._defaultElevation},set:function(e){this._defaultElevation=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"elevationReturnTime\",{get:function(){return this._elevationReturnTime},set:function(e){this._elevationReturnTime=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"elevationReturnWaitTime\",{get:function(){return this._elevationReturnWaitTime},set:function(e){this._elevationReturnWaitTime=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"zoomStopsAnimation\",{get:function(){return this._zoomStopsAnimation},set:function(e){this._zoomStopsAnimation=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"framingTime\",{get:function(){return this._framingTime},set:function(e){this._framingTime=e},enumerable:!1,configurable:!0}),e.prototype.init=function(){},e.prototype.attach=function(t){var i=this;this._attachedCamera=t;var n=this._attachedCamera.getScene();e.EasingFunction.setEasingMode(e.EasingMode),this._onPrePointerObservableObserver=n.onPrePointerObservable.add((function(e){e.type!==Ne.a.POINTERDOWN?e.type===Ne.a.POINTERUP&&(i._isPointerDown=!1):i._isPointerDown=!0})),this._onMeshTargetChangedObserver=t.onMeshTargetChangedObservable.add((function(e){e&&i.zoomOnMesh(e)})),this._onAfterCheckInputsObserver=t.onAfterCheckInputsObservable.add((function(){i._applyUserInteraction(),i._maintainCameraAboveGround()}))},e.prototype.detach=function(){if(this._attachedCamera){var e=this._attachedCamera.getScene();this._onPrePointerObservableObserver&&e.onPrePointerObservable.remove(this._onPrePointerObservableObserver),this._onAfterCheckInputsObserver&&this._attachedCamera.onAfterCheckInputsObservable.remove(this._onAfterCheckInputsObserver),this._onMeshTargetChangedObserver&&this._attachedCamera.onMeshTargetChangedObservable.remove(this._onMeshTargetChangedObserver),this._attachedCamera=null}},e.prototype.zoomOnMesh=function(e,t,i){void 0===t&&(t=!1),void 0===i&&(i=null),e.computeWorldMatrix(!0);var n=e.getBoundingInfo().boundingBox;this.zoomOnBoundingInfo(n.minimumWorld,n.maximumWorld,t,i)},e.prototype.zoomOnMeshHierarchy=function(e,t,i){void 0===t&&(t=!1),void 0===i&&(i=null),e.computeWorldMatrix(!0);var n=e.getHierarchyBoundingVectors(!0);this.zoomOnBoundingInfo(n.min,n.max,t,i)},e.prototype.zoomOnMeshesHierarchy=function(e,t,i){void 0===t&&(t=!1),void 0===i&&(i=null);for(var n=new a.e(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),r=new a.e(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE),o=0;ol.upperRadiusLimit?l.upperRadiusLimit:c),c):0},e.prototype._maintainCameraAboveGround=function(){var t=this;if(!(this._elevationReturnTime<0)){var i=q.a.Now-this._lastInteractionTime,n=.5*Math.PI-this._defaultElevation,r=.5*Math.PI;if(this._attachedCamera&&!this._betaIsAnimating&&this._attachedCamera.beta>r&&i>=this._elevationReturnWaitTime){this._betaIsAnimating=!0,this.stopAllAnimations(),this._betaTransition||(this._betaTransition=z.CreateAnimation(\"beta\",z.ANIMATIONTYPE_FLOAT,60,e.EasingFunction));var o=z.TransitionTo(\"beta\",n,this._attachedCamera,this._attachedCamera.getScene(),60,this._betaTransition,this._elevationReturnTime,(function(){t._clearAnimationLocks(),t.stopAllAnimations()}));o&&this._animatables.push(o)}}},e.prototype._getFrustumSlope=function(){var e=this._attachedCamera;if(!e)return a.d.Zero();var t=e.getScene().getEngine().getAspectRatio(e),i=Math.tan(e.fov/2),n=i*t;return new a.d(n,i)},e.prototype._clearAnimationLocks=function(){this._betaIsAnimating=!1},e.prototype._applyUserInteraction=function(){this.isUserIsMoving&&(this._lastInteractionTime=q.a.Now,this.stopAllAnimations(),this._clearAnimationLocks())},e.prototype.stopAllAnimations=function(){for(this._attachedCamera&&(this._attachedCamera.animations=[]);this._animatables.length;)this._animatables[0]&&(this._animatables[0].onAnimationEnd=null,this._animatables[0].stop()),this._animatables.shift()},Object.defineProperty(e.prototype,\"isUserIsMoving\",{get:function(){return!!this._attachedCamera&&(0!==this._attachedCamera.inertialAlphaOffset||0!==this._attachedCamera.inertialBetaOffset||0!==this._attachedCamera.inertialRadiusOffset||0!==this._attachedCamera.inertialPanningX||0!==this._attachedCamera.inertialPanningY||this._isPointerDown)},enumerable:!1,configurable:!0}),e.EasingFunction=new he,e.EasingMode=oe.EASINGMODE_EASEINOUT,e.IgnoreBoundsSizeMode=0,e.FitFrustumSidesMode=1,e}(),Be=function(e,t,i,n){void 0===t&&(t=new a.e),void 0===i&&(i=0),void 0===n&&(n=!1),this.direction=e,this.rotatedDirection=t,this.diff=i,this.ignore=n},Ue=function(){function e(e){this.ui=e,this.name=\"AttachToBoxBehavior\",this.distanceAwayFromFace=.15,this.distanceAwayFromBottomOfFace=.15,this._faceVectors=[new Be(a.e.Up()),new Be(a.e.Down()),new Be(a.e.Left()),new Be(a.e.Right()),new Be(a.e.Forward()),new Be(a.e.Forward().scaleInPlace(-1))],this._tmpMatrix=new a.a,this._tmpVector=new a.e,this._zeroVector=a.e.Zero(),this._lookAtTmpMatrix=new a.a}return e.prototype.init=function(){},e.prototype._closestFace=function(e){var t=this;return this._faceVectors.forEach((function(i){t._target.rotationQuaternion||(t._target.rotationQuaternion=a.b.RotationYawPitchRoll(t._target.rotation.y,t._target.rotation.x,t._target.rotation.z)),t._target.rotationQuaternion.toRotationMatrix(t._tmpMatrix),a.e.TransformCoordinatesToRef(i.direction,t._tmpMatrix,i.rotatedDirection),i.diff=a.e.GetAngleBetweenVectors(i.rotatedDirection,e,a.e.Cross(i.rotatedDirection,e))})),this._faceVectors.reduce((function(e,t){return e.ignore?t:t.ignore||e.diff1)return e._setAllVisibility(e._ownerNode,1),void(e._hoverValue=e.fadeInTime+e.delay);if(e._ownerNode.visibility<0&&(e._setAllVisibility(e._ownerNode,0),e._hoverValue<0))return void(e._hoverValue=0);setTimeout(e._update,e._millisecondsPerFrame)}}}return Object.defineProperty(e.prototype,\"name\",{get:function(){return\"FadeInOut\"},enumerable:!1,configurable:!0}),e.prototype.init=function(){},e.prototype.attach=function(e){this._ownerNode=e,this._setAllVisibility(this._ownerNode,0)},e.prototype.detach=function(){this._ownerNode=null},e.prototype.fadeIn=function(e){this._hovered=e,this._update()},e.prototype._setAllVisibility=function(e,t){var i=this;e.visibility=t,e.getChildMeshes().forEach((function(e){i._setAllVisibility(e,t)}))},e}(),ke=i(65),ze=function(){function e(){this._startDistance=0,this._initialScale=new a.e(0,0,0),this._targetScale=new a.e(0,0,0),this._sceneRenderObserver=null,this._dragBehaviorA=new ke.a({}),this._dragBehaviorA.moveAttached=!1,this._dragBehaviorB=new ke.a({}),this._dragBehaviorB.moveAttached=!1}return Object.defineProperty(e.prototype,\"name\",{get:function(){return\"MultiPointerScale\"},enumerable:!1,configurable:!0}),e.prototype.init=function(){},e.prototype._getCurrentDistance=function(){return this._dragBehaviorA.lastDragPosition.subtract(this._dragBehaviorB.lastDragPosition).length()},e.prototype.attach=function(e){var t=this;this._ownerNode=e,this._dragBehaviorA.onDragStartObservable.add((function(i){t._dragBehaviorA.dragging&&t._dragBehaviorB.dragging&&(t._dragBehaviorA.currentDraggingPointerID==t._dragBehaviorB.currentDraggingPointerID?t._dragBehaviorA.releaseDrag():(t._initialScale.copyFrom(e.scaling),t._startDistance=t._getCurrentDistance()))})),this._dragBehaviorB.onDragStartObservable.add((function(i){t._dragBehaviorA.dragging&&t._dragBehaviorB.dragging&&(t._dragBehaviorA.currentDraggingPointerID==t._dragBehaviorB.currentDraggingPointerID?t._dragBehaviorB.releaseDrag():(t._initialScale.copyFrom(e.scaling),t._startDistance=t._getCurrentDistance()))})),[this._dragBehaviorA,this._dragBehaviorB].forEach((function(e){e.onDragObservable.add((function(){if(t._dragBehaviorA.dragging&&t._dragBehaviorB.dragging){var e=t._getCurrentDistance()/t._startDistance;t._initialScale.scaleToRef(e,t._targetScale)}}))})),e.addBehavior(this._dragBehaviorA),e.addBehavior(this._dragBehaviorB),this._sceneRenderObserver=e.getScene().onBeforeRenderObservable.add((function(){if(t._dragBehaviorA.dragging&&t._dragBehaviorB.dragging){var i=t._targetScale.subtract(e.scaling).scaleInPlace(.1);i.length()>.01&&e.scaling.addInPlace(i)}}))},e.prototype.detach=function(){var e=this;this._ownerNode.getScene().onBeforeRenderObservable.remove(this._sceneRenderObserver),[this._dragBehaviorA,this._dragBehaviorB].forEach((function(t){t.onDragStartObservable.clear(),t.onDragObservable.clear(),e._ownerNode.removeBehavior(t)}))},e}(),Ge=i(31),je=i(24),We=i(60),He=function(){function e(){this._sceneRenderObserver=null,this._targetPosition=new a.e(0,0,0),this._moving=!1,this._startingOrientation=new a.b,this._attachedToElement=!1,this.zDragFactor=3,this.rotateDraggedObject=!0,this.dragging=!1,this.dragDeltaRatio=.2,this.currentDraggingPointerID=-1,this.detachCameraControls=!0,this.onDragStartObservable=new o.c,this.onDragObservable=new o.c,this.onDragEndObservable=new o.c}return Object.defineProperty(e.prototype,\"name\",{get:function(){return\"SixDofDrag\"},enumerable:!1,configurable:!0}),e.prototype.init=function(){},Object.defineProperty(e.prototype,\"_pointerCamera\",{get:function(){return this._scene.cameraToUseForPointers?this._scene.cameraToUseForPointers:this._scene.activeCamera},enumerable:!1,configurable:!0}),e.prototype.attach=function(t){var i=this;this._ownerNode=t,this._scene=this._ownerNode.getScene(),e._virtualScene||(e._virtualScene=new Q.a(this._scene.getEngine(),{virtual:!0}),e._virtualScene.detachControl(),this._scene.getEngine().scenes.pop());var n=null,r=new a.e(0,0,0);this._virtualOriginMesh=new Ge.a(\"\",e._virtualScene),this._virtualOriginMesh.rotationQuaternion=new a.b,this._virtualDragMesh=new Ge.a(\"\",e._virtualScene),this._virtualDragMesh.rotationQuaternion=new a.b;this._pointerObserver=this._scene.onPointerObservable.add((function(e,t){if(e.type==Ne.a.POINTERDOWN){if(!i.dragging&&e.pickInfo&&e.pickInfo.hit&&e.pickInfo.pickedMesh&&e.pickInfo.ray&&(u=e.pickInfo.pickedMesh,i._ownerNode==u||u.isDescendantOf(i._ownerNode))){i._pointerCamera&&i._pointerCamera.cameraRigMode==je.a.RIG_MODE_NONE&&e.pickInfo.ray.origin.copyFrom(i._pointerCamera.globalPosition),n=i._ownerNode,We.a._RemoveAndStorePivotPoint(n),r.copyFrom(e.pickInfo.ray.origin),i._virtualOriginMesh.position.copyFrom(e.pickInfo.ray.origin),i._virtualOriginMesh.lookAt(e.pickInfo.ray.origin.add(e.pickInfo.ray.direction)),i._virtualOriginMesh.removeChild(i._virtualDragMesh),n.computeWorldMatrix(),i._virtualDragMesh.position.copyFrom(n.absolutePosition),n.rotationQuaternion||(n.rotationQuaternion=a.b.RotationYawPitchRoll(n.rotation.y,n.rotation.x,n.rotation.z));var o=n.parent;n.setParent(null),i._virtualDragMesh.rotationQuaternion.copyFrom(n.rotationQuaternion),n.setParent(o),i._virtualOriginMesh.addChild(i._virtualDragMesh),i._targetPosition.copyFrom(i._virtualDragMesh.absolutePosition),i.dragging=!0,i.currentDraggingPointerID=e.event.pointerId,i.detachCameraControls&&i._pointerCamera&&!i._pointerCamera.leftCamera&&(i._pointerCamera.inputs.attachedToElement?(i._pointerCamera.detachControl(),i._attachedToElement=!0):i._attachedToElement=!1),We.a._RestorePivotPoint(n),i.onDragStartObservable.notifyObservers({})}}else if(e.type==Ne.a.POINTERUP||e.type==Ne.a.POINTERDOUBLETAP)i.currentDraggingPointerID==e.event.pointerId&&(i.dragging=!1,i._moving=!1,i.currentDraggingPointerID=-1,n=null,i._virtualOriginMesh.removeChild(i._virtualDragMesh),i.detachCameraControls&&i._attachedToElement&&i._pointerCamera&&!i._pointerCamera.leftCamera&&(i._pointerCamera.attachControl(!0),i._attachedToElement=!1),i.onDragEndObservable.notifyObservers({}));else if(e.type==Ne.a.POINTERMOVE&&i.currentDraggingPointerID==e.event.pointerId&&i.dragging&&e.pickInfo&&e.pickInfo.ray&&n){var s=i.zDragFactor;i._pointerCamera&&i._pointerCamera.cameraRigMode==je.a.RIG_MODE_NONE&&(e.pickInfo.ray.origin.copyFrom(i._pointerCamera.globalPosition),s=0);var c=e.pickInfo.ray.origin.subtract(r);r.copyFrom(e.pickInfo.ray.origin);var l=-a.e.Dot(c,e.pickInfo.ray.direction);i._virtualOriginMesh.addChild(i._virtualDragMesh),i._virtualDragMesh.position.z-=i._virtualDragMesh.position.z<1?l*i.zDragFactor:l*s*i._virtualDragMesh.position.z,i._virtualDragMesh.position.z<0&&(i._virtualDragMesh.position.z=0),i._virtualOriginMesh.position.copyFrom(e.pickInfo.ray.origin),i._virtualOriginMesh.lookAt(e.pickInfo.ray.origin.add(e.pickInfo.ray.direction)),i._virtualOriginMesh.removeChild(i._virtualDragMesh),i._targetPosition.copyFrom(i._virtualDragMesh.absolutePosition),n.parent&&a.e.TransformCoordinatesToRef(i._targetPosition,a.a.Invert(n.parent.getWorldMatrix()),i._targetPosition),i._moving||i._startingOrientation.copyFrom(i._virtualDragMesh.rotationQuaternion),i._moving=!0}var u}));var o=new a.b;this._sceneRenderObserver=t.getScene().onBeforeRenderObservable.add((function(){if(i.dragging&&i._moving&&n){if(We.a._RemoveAndStorePivotPoint(n),n.position.addInPlace(i._targetPosition.subtract(n.position).scale(i.dragDeltaRatio)),i.rotateDraggedObject){o.copyFrom(i._startingOrientation),o.x=-o.x,o.y=-o.y,o.z=-o.z,i._virtualDragMesh.rotationQuaternion.multiplyToRef(o,o),a.b.RotationYawPitchRollToRef(o.toEulerAngles(\"xyz\").y,0,0,o),o.multiplyToRef(i._startingOrientation,o);var e=n.parent;(!e||e.scaling&&!e.scaling.isNonUniformWithinEpsilon(.001))&&(n.setParent(null),a.b.SlerpToRef(n.rotationQuaternion,o,i.dragDeltaRatio,n.rotationQuaternion),n.setParent(e))}We.a._RestorePivotPoint(n),i.onDragObservable.notifyObservers()}}))},e.prototype.detach=function(){this._scene&&(this.detachCameraControls&&this._attachedToElement&&this._pointerCamera&&!this._pointerCamera.leftCamera&&(this._pointerCamera.attachControl(!0),this._attachedToElement=!1),this._scene.onPointerObservable.remove(this._pointerObserver)),this._ownerNode&&this._ownerNode.getScene().onBeforeRenderObservable.remove(this._sceneRenderObserver),this._virtualOriginMesh&&this._virtualOriginMesh.dispose(),this._virtualDragMesh&&this._virtualDragMesh.dispose(),this.onDragEndObservable.clear(),this.onDragObservable.clear(),this.onDragStartObservable.clear()},e}(),Xe=function(){function e(e,t,i){if(this.targetPosition=a.e.Zero(),this.poleTargetPosition=a.e.Zero(),this.poleTargetLocalOffset=a.e.Zero(),this.poleAngle=0,this.slerpAmount=1,this._bone1Quat=a.b.Identity(),this._bone1Mat=a.a.Identity(),this._bone2Ang=Math.PI,this._maxAngle=Math.PI,this._rightHandedSystem=!1,this._bendAxis=a.e.Right(),this._slerping=!1,this._adjustRoll=0,this._bone2=t,this._bone1=t.getParent(),this._bone1){this.mesh=e;var n=t.getPosition();if(t.getAbsoluteTransform().determinant()>0&&(this._rightHandedSystem=!0,this._bendAxis.x=0,this._bendAxis.y=0,this._bendAxis.z=-1,n.x>n.y&&n.x>n.z&&(this._adjustRoll=.5*Math.PI,this._bendAxis.z=1)),this._bone1.length){var r=this._bone1.getScale(),o=this._bone2.getScale();this._bone1Length=this._bone1.length*r.y*this.mesh.scaling.y,this._bone2Length=this._bone2.length*o.y*this.mesh.scaling.y}else if(this._bone1.children[0]){e.computeWorldMatrix(!0);var s=this._bone2.children[0].getAbsolutePosition(e),c=this._bone2.getAbsolutePosition(e),l=this._bone1.getAbsolutePosition(e);this._bone1Length=a.e.Distance(s,c),this._bone2Length=a.e.Distance(c,l)}this._bone1.getRotationMatrixToRef(J.c.WORLD,e,this._bone1Mat),this.maxAngle=Math.PI,i&&(i.targetMesh&&(this.targetMesh=i.targetMesh,this.targetMesh.computeWorldMatrix(!0)),i.poleTargetMesh?(this.poleTargetMesh=i.poleTargetMesh,this.poleTargetMesh.computeWorldMatrix(!0)):i.poleTargetBone?this.poleTargetBone=i.poleTargetBone:this._bone1.getParent()&&(this.poleTargetBone=this._bone1.getParent()),i.poleTargetLocalOffset&&this.poleTargetLocalOffset.copyFrom(i.poleTargetLocalOffset),i.poleAngle&&(this.poleAngle=i.poleAngle),i.bendAxis&&this._bendAxis.copyFrom(i.bendAxis),i.maxAngle&&(this.maxAngle=i.maxAngle),i.slerpAmount&&(this.slerpAmount=i.slerpAmount))}}return Object.defineProperty(e.prototype,\"maxAngle\",{get:function(){return this._maxAngle},set:function(e){this._setMaxAngle(e)},enumerable:!1,configurable:!0}),e.prototype._setMaxAngle=function(e){e<0&&(e=0),(e>Math.PI||null==e)&&(e=Math.PI),this._maxAngle=e;var t=this._bone1Length,i=this._bone2Length;this._maxReach=Math.sqrt(t*t+i*i-2*t*i*Math.cos(e))},e.prototype.update=function(){var t=this._bone1;if(t){var i=this.targetPosition,n=this.poleTargetPosition,r=e._tmpMats[0],o=e._tmpMats[1];this.targetMesh&&i.copyFrom(this.targetMesh.getAbsolutePosition()),this.poleTargetBone?this.poleTargetBone.getAbsolutePositionFromLocalToRef(this.poleTargetLocalOffset,this.mesh,n):this.poleTargetMesh&&a.e.TransformCoordinatesToRef(this.poleTargetLocalOffset,this.poleTargetMesh.getWorldMatrix(),n);var s=e._tmpVecs[0],c=e._tmpVecs[1],l=e._tmpVecs[2],u=e._tmpVecs[3],h=e._tmpVecs[4],d=e._tmpQuat;t.getAbsolutePositionToRef(this.mesh,s),n.subtractToRef(s,h),0==h.x&&0==h.y&&0==h.z?h.y=1:h.normalize(),i.subtractToRef(s,u),u.normalize(),a.e.CrossToRef(u,h,c),c.normalize(),a.e.CrossToRef(u,c,l),l.normalize(),a.a.FromXYZAxesToRef(l,u,c,r);var f=this._bone1Length,p=this._bone2Length,_=a.e.Distance(s,i);this._maxReach>0&&(_=Math.min(this._maxReach,_));var m=(p*p+_*_-f*f)/(2*p*_),g=(_*_+f*f-p*p)/(2*_*f);m>1&&(m=1),g>1&&(g=1),m<-1&&(m=-1),g<-1&&(g=-1);var v=Math.acos(m),b=Math.acos(g),y=-v-b;if(this._rightHandedSystem)a.a.RotationYawPitchRollToRef(0,0,this._adjustRoll,o),o.multiplyToRef(r,r),a.a.RotationAxisToRef(this._bendAxis,b,o),o.multiplyToRef(r,r);else{var T=e._tmpVecs[5];T.copyFrom(this._bendAxis),T.x*=-1,a.a.RotationAxisToRef(T,-b,o),o.multiplyToRef(r,r)}this.poleAngle&&(a.a.RotationAxisToRef(u,this.poleAngle,o),r.multiplyToRef(o,r)),this._bone1&&(this.slerpAmount<1?(this._slerping||a.b.FromRotationMatrixToRef(this._bone1Mat,this._bone1Quat),a.b.FromRotationMatrixToRef(r,d),a.b.SlerpToRef(this._bone1Quat,d,this.slerpAmount,this._bone1Quat),y=this._bone2Ang*(1-this.slerpAmount)+y*this.slerpAmount,this._bone1.setRotationQuaternion(this._bone1Quat,J.c.WORLD,this.mesh),this._slerping=!0):(this._bone1.setRotationMatrix(r,J.c.WORLD,this.mesh),this._bone1Mat.copyFrom(r),this._slerping=!1)),this._bone2.setAxisAngle(this._bendAxis,y,J.c.LOCAL),this._bone2Ang=y}},e._tmpVecs=[a.e.Zero(),a.e.Zero(),a.e.Zero(),a.e.Zero(),a.e.Zero(),a.e.Zero()],e._tmpQuat=a.b.Identity(),e._tmpMats=[a.a.Identity(),a.a.Identity()],e}(),Ye=function(){function e(e,t,i,n){if(this.upAxis=a.e.Up(),this.upAxisSpace=J.c.LOCAL,this.adjustYaw=0,this.adjustPitch=0,this.adjustRoll=0,this.slerpAmount=1,this._boneQuat=a.b.Identity(),this._slerping=!1,this._firstFrameSkipped=!1,this._fowardAxis=a.e.Forward(),this.mesh=e,this.bone=t,this.target=i,n&&(n.adjustYaw&&(this.adjustYaw=n.adjustYaw),n.adjustPitch&&(this.adjustPitch=n.adjustPitch),n.adjustRoll&&(this.adjustRoll=n.adjustRoll),null!=n.maxYaw?this.maxYaw=n.maxYaw:this.maxYaw=Math.PI,null!=n.minYaw?this.minYaw=n.minYaw:this.minYaw=-Math.PI,null!=n.maxPitch?this.maxPitch=n.maxPitch:this.maxPitch=Math.PI,null!=n.minPitch?this.minPitch=n.minPitch:this.minPitch=-Math.PI,null!=n.slerpAmount&&(this.slerpAmount=n.slerpAmount),null!=n.upAxis&&(this.upAxis=n.upAxis),null!=n.upAxisSpace&&(this.upAxisSpace=n.upAxisSpace),null!=n.yawAxis||null!=n.pitchAxis)){var r=J.a.Y,o=J.a.X;null!=n.yawAxis&&(r=n.yawAxis.clone()).normalize(),null!=n.pitchAxis&&(o=n.pitchAxis.clone()).normalize();var s=a.e.Cross(o,r);this._transformYawPitch=a.a.Identity(),a.a.FromXYZAxesToRef(o,r,s,this._transformYawPitch),this._transformYawPitchInv=this._transformYawPitch.clone(),this._transformYawPitch.invert()}t.getParent()||this.upAxisSpace!=J.c.BONE||(this.upAxisSpace=J.c.LOCAL)}return Object.defineProperty(e.prototype,\"minYaw\",{get:function(){return this._minYaw},set:function(e){this._minYaw=e,this._minYawSin=Math.sin(e),this._minYawCos=Math.cos(e),null!=this._maxYaw&&(this._midYawConstraint=.5*this._getAngleDiff(this._minYaw,this._maxYaw)+this._minYaw,this._yawRange=this._maxYaw-this._minYaw)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"maxYaw\",{get:function(){return this._maxYaw},set:function(e){this._maxYaw=e,this._maxYawSin=Math.sin(e),this._maxYawCos=Math.cos(e),null!=this._minYaw&&(this._midYawConstraint=.5*this._getAngleDiff(this._minYaw,this._maxYaw)+this._minYaw,this._yawRange=this._maxYaw-this._minYaw)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"minPitch\",{get:function(){return this._minPitch},set:function(e){this._minPitch=e,this._minPitchTan=Math.tan(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"maxPitch\",{get:function(){return this._maxPitch},set:function(e){this._maxPitch=e,this._maxPitchTan=Math.tan(e)},enumerable:!1,configurable:!0}),e.prototype.update=function(){if(this.slerpAmount<1&&!this._firstFrameSkipped)this._firstFrameSkipped=!0;else{var t=this.bone,i=e._tmpVecs[0];t.getAbsolutePositionToRef(this.mesh,i);var n=this.target,r=e._tmpMats[0],o=e._tmpMats[1],s=this.mesh,c=t.getParent(),l=e._tmpVecs[1];l.copyFrom(this.upAxis),this.upAxisSpace==J.c.BONE&&c?(this._transformYawPitch&&a.e.TransformCoordinatesToRef(l,this._transformYawPitchInv,l),c.getDirectionToRef(l,this.mesh,l)):this.upAxisSpace==J.c.LOCAL&&(s.getDirectionToRef(l,l),1==s.scaling.x&&1==s.scaling.y&&1==s.scaling.z||l.normalize());var u=!1,h=!1;if(this._maxYaw==Math.PI&&this._minYaw==-Math.PI||(u=!0),this._maxPitch==Math.PI&&this._minPitch==-Math.PI||(h=!0),u||h){var d=e._tmpMats[2],f=e._tmpMats[3];if(this.upAxisSpace==J.c.BONE&&1==l.y&&c)c.getRotationMatrixToRef(J.c.WORLD,this.mesh,d);else if(this.upAxisSpace!=J.c.LOCAL||1!=l.y||c){(_=e._tmpVecs[2]).copyFrom(this._fowardAxis),this._transformYawPitch&&a.e.TransformCoordinatesToRef(_,this._transformYawPitchInv,_),c?c.getDirectionToRef(_,this.mesh,_):s.getDirectionToRef(_,_);var p=a.e.Cross(l,_);p.normalize();var _=a.e.Cross(p,l);a.a.FromXYZAxesToRef(p,l,_,d)}else d.copyFrom(s.getWorldMatrix());d.invertToRef(f);var m=null;if(h){var g=e._tmpVecs[3];n.subtractToRef(i,g),a.e.TransformCoordinatesToRef(g,f,g),m=Math.sqrt(g.x*g.x+g.z*g.z);var v=Math.atan2(g.y,m),b=v;v>this._maxPitch?(g.y=this._maxPitchTan*m,b=this._maxPitch):vthis._maxYaw||yMath.PI?this._isAngleBetween(y,this._maxYaw,this._midYawConstraint)?(g.z=this._maxYawCos*m,g.x=this._maxYawSin*m,T=this._maxYaw):this._isAngleBetween(y,this._midYawConstraint,this._minYaw)&&(g.z=this._minYawCos*m,g.x=this._minYawSin*m,T=this._minYaw):y>this._maxYaw?(g.z=this._maxYawCos*m,g.x=this._maxYawSin*m,T=this._maxYaw):yMath.PI){var E=e._tmpVecs[8];E.copyFrom(J.a.Z),this._transformYawPitch&&a.e.TransformCoordinatesToRef(E,this._transformYawPitchInv,E);var S=e._tmpMats[4];this._boneQuat.toRotationMatrix(S),this.mesh.getWorldMatrix().multiplyToRef(S,S),a.e.TransformCoordinatesToRef(E,S,E),a.e.TransformCoordinatesToRef(E,f,E);var A=Math.atan2(E.x,E.z);if(this._getAngleBetween(A,y)>this._getAngleBetween(A,this._midYawConstraint)){null==m&&(m=Math.sqrt(g.x*g.x+g.z*g.z));var P=this._getAngleBetween(A,this._maxYaw);this._getAngleBetween(A,this._minYaw)Math.PI?i-=2*Math.PI:i<-Math.PI&&(i+=2*Math.PI),i},e.prototype._getAngleBetween=function(e,t){var i=0;return(i=(e=(e%=2*Math.PI)<0?e+2*Math.PI:e)<(t=(t%=2*Math.PI)<0?t+2*Math.PI:t)?t-e:e-t)>Math.PI&&(i=2*Math.PI-i),i},e.prototype._isAngleBetween=function(e,t,i){if(e=(e%=2*Math.PI)<0?e+2*Math.PI:e,(t=(t%=2*Math.PI)<0?t+2*Math.PI:t)<(i=(i%=2*Math.PI)<0?i+2*Math.PI:i)){if(e>t&&ei&&e>v,y=0;y<6;y++){var T=g[v][y];m&&(T=Ze(T,b,b,r)),f.texImage2D(y,v,_,b,b,0,u,l,T)}d._bindTextureDirectly(f.TEXTURE_CUBE_MAP,null)}else d.updateRawCubeTexture(p,o,n,r,h);p.isReady=!0,null==t||t._removePendingData(p),c&&c()}}(e)}),void 0,null==t?void 0:t.offlineProvider,!0,(function(e,i){null==t||t._removePendingData(p),l&&e&&l(e.status+\" \"+e.statusText,i)})),p},qe.a.prototype.createRawTexture2DArray=Je(!1),qe.a.prototype.createRawTexture3D=Je(!0),qe.a.prototype.updateRawTexture2DArray=$e(!1),qe.a.prototype.updateRawTexture3D=$e(!0);var et=function(e){function t(t,i,n,r,o,a,s,c,l){void 0===a&&(a=!0),void 0===s&&(s=!1),void 0===c&&(c=g.a.TEXTURE_TRILINEAR_SAMPLINGMODE),void 0===l&&(l=g.a.TEXTURETYPE_UNSIGNED_INT);var u=e.call(this,null,o,!a,s)||this;return u.format=r,u._engine?(u._texture=u._engine.createRawTexture(t,i,n,r,a,s,c,null,l),u.wrapU=Ke.a.CLAMP_ADDRESSMODE,u.wrapV=Ke.a.CLAMP_ADDRESSMODE,u):u}return Object(h.d)(t,e),t.prototype.update=function(e){this._getEngine().updateRawTexture(this._texture,e,this._texture.format,this._texture.invertY,null,this._texture.type)},t.CreateLuminanceTexture=function(e,i,n,r,o,a,s){return void 0===o&&(o=!0),void 0===a&&(a=!1),void 0===s&&(s=g.a.TEXTURE_TRILINEAR_SAMPLINGMODE),new t(e,i,n,g.a.TEXTUREFORMAT_LUMINANCE,r,o,a,s)},t.CreateLuminanceAlphaTexture=function(e,i,n,r,o,a,s){return void 0===o&&(o=!0),void 0===a&&(a=!1),void 0===s&&(s=g.a.TEXTURE_TRILINEAR_SAMPLINGMODE),new t(e,i,n,g.a.TEXTUREFORMAT_LUMINANCE_ALPHA,r,o,a,s)},t.CreateAlphaTexture=function(e,i,n,r,o,a,s){return void 0===o&&(o=!0),void 0===a&&(a=!1),void 0===s&&(s=g.a.TEXTURE_TRILINEAR_SAMPLINGMODE),new t(e,i,n,g.a.TEXTUREFORMAT_ALPHA,r,o,a,s)},t.CreateRGBTexture=function(e,i,n,r,o,a,s,c){return void 0===o&&(o=!0),void 0===a&&(a=!1),void 0===s&&(s=g.a.TEXTURE_TRILINEAR_SAMPLINGMODE),void 0===c&&(c=g.a.TEXTURETYPE_UNSIGNED_INT),new t(e,i,n,g.a.TEXTUREFORMAT_RGB,r,o,a,s,c)},t.CreateRGBATexture=function(e,i,n,r,o,a,s,c){return void 0===o&&(o=!0),void 0===a&&(a=!1),void 0===s&&(s=g.a.TEXTURE_TRILINEAR_SAMPLINGMODE),void 0===c&&(c=g.a.TEXTURETYPE_UNSIGNED_INT),new t(e,i,n,g.a.TEXTUREFORMAT_RGBA,r,o,a,s,c)},t.CreateRTexture=function(e,i,n,r,o,a,s,c){return void 0===o&&(o=!0),void 0===a&&(a=!1),void 0===s&&(s=Ke.a.TRILINEAR_SAMPLINGMODE),void 0===c&&(c=g.a.TEXTURETYPE_FLOAT),new t(e,i,n,g.a.TEXTUREFORMAT_R,r,o,a,s,c)},t}(Ke.a),tt=function(){function e(e,t,i){this.name=e,this.id=t,this.bones=new Array,this.needInitialSkinMatrix=!1,this.overrideMesh=null,this._isDirty=!0,this._meshesWithPoseMatrix=new Array,this._identity=a.a.Identity(),this._ranges={},this._lastAbsoluteTransformsUpdateId=-1,this._canUseTextureForBones=!1,this._uniqueId=0,this._numBonesWithLinkedTransformNode=0,this._hasWaitingData=null,this._waitingOverrideMeshId=null,this.doNotSerialize=!1,this._useTextureToStoreBoneMatrices=!0,this._animationPropertiesOverride=null,this.onBeforeComputeObservable=new o.c,this.bones=[],this._scene=i||x.a.LastCreatedScene,this._uniqueId=this._scene.getUniqueId(),this._scene.addSkeleton(this),this._isDirty=!0;var n=this._scene.getEngine().getCaps();this._canUseTextureForBones=n.textureFloat&&n.maxVertexTextureImageUnits>0}return Object.defineProperty(e.prototype,\"useTextureToStoreBoneMatrices\",{get:function(){return this._useTextureToStoreBoneMatrices},set:function(e){this._useTextureToStoreBoneMatrices=e,this._markAsDirty()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"animationPropertiesOverride\",{get:function(){return this._animationPropertiesOverride?this._animationPropertiesOverride:this._scene.animationPropertiesOverride},set:function(e){this._animationPropertiesOverride=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"isUsingTextureForMatrices\",{get:function(){return this.useTextureToStoreBoneMatrices&&this._canUseTextureForBones},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"uniqueId\",{get:function(){return this._uniqueId},enumerable:!1,configurable:!0}),e.prototype.getClassName=function(){return\"Skeleton\"},e.prototype.getChildren=function(){return this.bones.filter((function(e){return!e.getParent()}))},e.prototype.getTransformMatrices=function(e){return this.needInitialSkinMatrix&&e._bonesTransformMatrices?e._bonesTransformMatrices:(this._transformMatrices||this.prepare(),this._transformMatrices)},e.prototype.getTransformMatrixTexture=function(e){return this.needInitialSkinMatrix&&e._transformMatrixTexture?e._transformMatrixTexture:this._transformMatrixTexture},e.prototype.getScene=function(){return this._scene},e.prototype.toString=function(e){var t=\"Name: \"+this.name+\", nBones: \"+this.bones.length;if(t+=\", nAnimationRanges: \"+(this._ranges?Object.keys(this._ranges).length:\"none\"),e){t+=\", Ranges: {\";var i=!0;for(var n in this._ranges)i&&(t+=\", \",i=!1),t+=n;t+=\"}\"}return t},e.prototype.getBoneIndexByName=function(e){for(var t=0,i=this.bones.length;t-1&&this._meshesWithPoseMatrix.splice(t,1)},e.prototype._computeTransformMatrices=function(e,t){this.onBeforeComputeObservable.notifyObservers(this);for(var i=0;i0)for(var e=0,t=this.bones;e0&&(a.animation=r.animations[0].serialize()),i.ranges=[],this._ranges){var c=this._ranges[s];if(c){var l={};l.name=s,l.from=c.from,l.to=c.to,i.ranges.push(l)}}}return i},e.Parse=function(t,i){var n,r=new e(t.name,t.id,i);for(t.dimensionsAtRest&&(r.dimensionsAtRest=a.e.FromArray(t.dimensionsAtRest)),r.needInitialSkinMatrix=t.needInitialSkinMatrix,t.overrideMeshId&&(r._hasWaitingData=!0,r._waitingOverrideMeshId=t.overrideMeshId),n=0;n-1&&(c=r.bones[o.parentBoneIndex]);var l=o.rest?a.a.FromArray(o.rest):null,u=new $(o.name,r,c,a.a.FromArray(o.matrix),l,null,s);void 0!==o.id&&null!==o.id&&(u.id=o.id),o.length&&(u.length=o.length),o.metadata&&(u.metadata=o.metadata),o.animation&&u.animations.push(z.Parse(o.animation)),void 0!==o.linkedTransformNodeId&&null!==o.linkedTransformNodeId&&(r._hasWaitingData=!0,u._waitingTransformNodeId=o.linkedTransformNodeId)}if(t.ranges)for(n=0;n0&&(e=this._meshesWithPoseMatrix[0].getPoseMatrix()),e},e.prototype.sortBones=function(){for(var e=new Array,t=new Array(this.bones.length),i=0;i=2&&(this._leftStick={x:this.browserGamepad.axes[this._leftStickAxisX],y:this.browserGamepad.axes[this._leftStickAxisY]}),this.browserGamepad.axes.length>=4&&(this._rightStick={x:this.browserGamepad.axes[this._rightStickAxisX],y:this.browserGamepad.axes[this._rightStickAxisY]})}return Object.defineProperty(e.prototype,\"isConnected\",{get:function(){return this._isConnected},enumerable:!1,configurable:!0}),e.prototype.onleftstickchanged=function(e){this._onleftstickchanged=e},e.prototype.onrightstickchanged=function(e){this._onrightstickchanged=e},Object.defineProperty(e.prototype,\"leftStick\",{get:function(){return this._leftStick},set:function(e){!this._onleftstickchanged||this._leftStick.x===e.x&&this._leftStick.y===e.y||this._onleftstickchanged(e),this._leftStick=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"rightStick\",{get:function(){return this._rightStick},set:function(e){!this._onrightstickchanged||this._rightStick.x===e.x&&this._rightStick.y===e.y||this._onrightstickchanged(e),this._rightStick=e},enumerable:!1,configurable:!0}),e.prototype.update=function(){this._leftStick&&(this.leftStick={x:this.browserGamepad.axes[this._leftStickAxisX],y:this.browserGamepad.axes[this._leftStickAxisY]},this._invertLeftStickY&&(this.leftStick.y*=-1)),this._rightStick&&(this.rightStick={x:this.browserGamepad.axes[this._rightStickAxisX],y:this.browserGamepad.axes[this._rightStickAxisY]})},e.prototype.dispose=function(){},e.GAMEPAD=0,e.GENERIC=1,e.XBOX=2,e.POSE_ENABLED=3,e.DUALSHOCK=4,e}(),at=function(e){function t(t,i,n){var r=e.call(this,t,i,n)||this;return r.onButtonDownObservable=new o.c,r.onButtonUpObservable=new o.c,r.type=ot.GENERIC,r._buttons=new Array(n.buttons.length),r}return Object(h.d)(t,e),t.prototype.onbuttondown=function(e){this._onbuttondown=e},t.prototype.onbuttonup=function(e){this._onbuttonup=e},t.prototype._setButtonValue=function(e,t,i){return e!==t&&(1===e&&(this._onbuttondown&&this._onbuttondown(i),this.onButtonDownObservable.notifyObservers(i)),0===e&&(this._onbuttonup&&this._onbuttonup(i),this.onButtonUpObservable.notifyObservers(i))),e},t.prototype.update=function(){e.prototype.update.call(this);for(var t=0;t.005&&(e.inertialAlphaOffset+=i)}if(0!=t.y){var n=t.y/this.gamepadRotationSensibility*this._yAxisScale;0!=n&&Math.abs(n)>.005&&(e.inertialBetaOffset+=n)}}var r=this.gamepad.leftStick;if(r&&0!=r.y){var o=r.y/this.gamepadMoveSensibility;0!=o&&Math.abs(o)>.005&&(this.camera.inertialRadiusOffset-=o)}}},e.prototype.getClassName=function(){return\"ArcRotateCameraGamepadInput\"},e.prototype.getSimpleName=function(){return\"gamepad\"},Object(h.c)([Object(w.c)()],e.prototype,\"gamepadRotationSensibility\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"gamepadMoveSensibility\",void 0),e}();it.ArcRotateCameraGamepadInput=st;var ct=i(66),lt=function(){function e(){this.keysUp=[38],this.keysDown=[40],this.keysLeft=[37],this.keysRight=[39],this.keysReset=[220],this.panningSensibility=50,this.zoomingSensibility=25,this.useAltToZoom=!0,this.angularSpeed=.01,this._keys=new Array}return e.prototype.attachControl=function(e){var t=this;e=Ce.b.BackCompatCameraNoPreventDefault(arguments),this._onCanvasBlurObserver||(this._scene=this.camera.getScene(),this._engine=this._scene.getEngine(),this._onCanvasBlurObserver=this._engine.onCanvasBlurObservable.add((function(){t._keys=[]})),this._onKeyboardObserver=this._scene.onKeyboardObservable.add((function(i){var n,r=i.event;r.metaKey||(i.type===ct.a.KEYDOWN?(t._ctrlPressed=r.ctrlKey,t._altPressed=r.altKey,(-1!==t.keysUp.indexOf(r.keyCode)||-1!==t.keysDown.indexOf(r.keyCode)||-1!==t.keysLeft.indexOf(r.keyCode)||-1!==t.keysRight.indexOf(r.keyCode)||-1!==t.keysReset.indexOf(r.keyCode))&&(-1===(n=t._keys.indexOf(r.keyCode))&&t._keys.push(r.keyCode),r.preventDefault&&(e||r.preventDefault()))):-1===t.keysUp.indexOf(r.keyCode)&&-1===t.keysDown.indexOf(r.keyCode)&&-1===t.keysLeft.indexOf(r.keyCode)&&-1===t.keysRight.indexOf(r.keyCode)&&-1===t.keysReset.indexOf(r.keyCode)||((n=t._keys.indexOf(r.keyCode))>=0&&t._keys.splice(n,1),r.preventDefault&&(e||r.preventDefault())))})))},e.prototype.detachControl=function(e){this._scene&&(this._onKeyboardObserver&&this._scene.onKeyboardObservable.remove(this._onKeyboardObserver),this._onCanvasBlurObserver&&this._engine.onCanvasBlurObservable.remove(this._onCanvasBlurObserver),this._onKeyboardObserver=null,this._onCanvasBlurObserver=null),this._keys=[]},e.prototype.checkInputs=function(){if(this._onKeyboardObserver)for(var e=this.camera,t=0;t0?i/(1+this.wheelDeltaPercentage):i*(1+this.wheelDeltaPercentage)},e.prototype.attachControl=function(e){var t=this;e=Ce.b.BackCompatCameraNoPreventDefault(arguments),this._wheel=function(i,n){if(i.type===Ne.a.POINTERWHEEL){var r=i.event,o=0,a=r,s=0;if(s=a.wheelDelta?a.wheelDelta:60*-(r.deltaY||r.detail),t.wheelDeltaPercentage){if((o=t.computeDeltaFromMouseWheelLegacyEvent(s,t.camera.radius))>0){for(var c=t.camera.radius,l=t.camera.inertialRadiusOffset+o,u=0;u<20&&Math.abs(l)>.001;u++)c-=l,l*=t.camera.inertia;c=L.a.Clamp(c,0,Number.MAX_VALUE),o=t.computeDeltaFromMouseWheelLegacyEvent(s,c)}}else o=s/(40*t.wheelPrecision);o&&(t.camera.inertialRadiusOffset+=o),r.preventDefault&&(e||r.preventDefault())}},this._observer=this.camera.getScene().onPointerObservable.add(this._wheel,Ne.a.POINTERWHEEL)},e.prototype.detachControl=function(e){this._observer&&(this.camera.getScene().onPointerObservable.remove(this._observer),this._observer=null,this._wheel=null)},e.prototype.getClassName=function(){return\"ArcRotateCameraMouseWheelInput\"},e.prototype.getSimpleName=function(){return\"mousewheel\"},Object(h.c)([Object(w.c)()],e.prototype,\"wheelPrecision\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"wheelDeltaPercentage\",void 0),e}();it.ArcRotateCameraMouseWheelInput=ut;var ht=function(){function e(){this.buttons=[0,1,2]}return e.prototype.attachControl=function(e){var t=this;e=Ce.b.BackCompatCameraNoPreventDefault(arguments);var i=this.camera.getEngine(),n=i.getInputElement(),r=0,o=null;this.pointA=null,this.pointB=null,this._altKey=!1,this._ctrlKey=!1,this._metaKey=!1,this._shiftKey=!1,this._buttonsPressed=0,this._pointerInput=function(a,s){var c=a.event,l=\"touch\"===c.pointerType;if(!i.isInVRExclusivePointerMode&&(a.type===Ne.a.POINTERMOVE||-1!==t.buttons.indexOf(c.button))){var u=c.srcElement||c.target;if(t._altKey=c.altKey,t._ctrlKey=c.ctrlKey,t._metaKey=c.metaKey,t._shiftKey=c.shiftKey,t._buttonsPressed=c.buttons,i.isPointerLock){var h=c.movementX||c.mozMovementX||c.webkitMovementX||c.msMovementX||0,d=c.movementY||c.mozMovementY||c.webkitMovementY||c.msMovementY||0;t.onTouch(null,h,d),t.pointA=null,t.pointB=null}else if(a.type===Ne.a.POINTERDOWN&&u){try{u.setPointerCapture(c.pointerId)}catch(e){}null===t.pointA?t.pointA={x:c.clientX,y:c.clientY,pointerId:c.pointerId,type:c.pointerType}:null===t.pointB&&(t.pointB={x:c.clientX,y:c.clientY,pointerId:c.pointerId,type:c.pointerType}),t.onButtonDown(c),e||(c.preventDefault(),n&&n.focus())}else if(a.type===Ne.a.POINTERDOUBLETAP)t.onDoubleTap(c.pointerType);else if(a.type===Ne.a.POINTERUP&&u){try{u.releasePointerCapture(c.pointerId)}catch(e){}l||(t.pointB=null),i._badOS?t.pointA=t.pointB=null:t.pointB&&t.pointA&&t.pointA.pointerId==c.pointerId?(t.pointA=t.pointB,t.pointB=null):t.pointA&&t.pointB&&t.pointB.pointerId==c.pointerId?t.pointB=null:t.pointA=t.pointB=null,(0!==r||o)&&(t.onMultiTouch(t.pointA,t.pointB,r,0,o,null),r=0,o=null),t.onButtonUp(c),e||c.preventDefault()}else if(a.type===Ne.a.POINTERMOVE)if(e||c.preventDefault(),t.pointA&&null===t.pointB){h=c.clientX-t.pointA.x,d=c.clientY-t.pointA.y;t.onTouch(t.pointA,h,d),t.pointA.x=c.clientX,t.pointA.y=c.clientY}else if(t.pointA&&t.pointB){var f=t.pointA.pointerId===c.pointerId?t.pointA:t.pointB;f.x=c.clientX,f.y=c.clientY;var p=t.pointA.x-t.pointB.x,_=t.pointA.y-t.pointB.y,m=p*p+_*_,g={x:(t.pointA.x+t.pointB.x)/2,y:(t.pointA.y+t.pointB.y)/2,pointerId:c.pointerId,type:a.type};t.onMultiTouch(t.pointA,t.pointB,r,m,o,g),o=g,r=m}}},this._observer=this.camera.getScene().onPointerObservable.add(this._pointerInput,Ne.a.POINTERDOWN|Ne.a.POINTERUP|Ne.a.POINTERMOVE),this._onLostFocus=function(){t.pointA=t.pointB=null,r=0,o=null,t.onLostFocus()},n&&n.addEventListener(\"contextmenu\",this.onContextMenu.bind(this),!1);var a=this.camera.getScene().getEngine().getHostWindow();a&&Ce.b.RegisterTopRootEvents(a,[{name:\"blur\",handler:this._onLostFocus}])},e.prototype.detachControl=function(e){if(this._onLostFocus){var t=this.camera.getScene().getEngine().getHostWindow();t&&Ce.b.UnregisterTopRootEvents(t,[{name:\"blur\",handler:this._onLostFocus}])}if(this._observer){if(this.camera.getScene().onPointerObservable.remove(this._observer),this._observer=null,this.onContextMenu){var i=this.camera.getScene().getEngine().getInputElement();i&&i.removeEventListener(\"contextmenu\",this.onContextMenu)}this._onLostFocus=null}this._altKey=!1,this._ctrlKey=!1,this._metaKey=!1,this._shiftKey=!1,this._buttonsPressed=0},e.prototype.getClassName=function(){return\"BaseCameraPointersInput\"},e.prototype.getSimpleName=function(){return\"pointers\"},e.prototype.onDoubleTap=function(e){},e.prototype.onTouch=function(e,t,i){},e.prototype.onMultiTouch=function(e,t,i,n,r,o){},e.prototype.onContextMenu=function(e){e.preventDefault()},e.prototype.onButtonDown=function(e){},e.prototype.onButtonUp=function(e){},e.prototype.onLostFocus=function(){},Object(h.c)([Object(w.c)()],e.prototype,\"buttons\",void 0),e}(),dt=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.buttons=[0,1,2],t.angularSensibilityX=1e3,t.angularSensibilityY=1e3,t.pinchPrecision=12,t.pinchDeltaPercentage=0,t.useNaturalPinchZoom=!1,t.panningSensibility=1e3,t.multiTouchPanning=!0,t.multiTouchPanAndZoom=!0,t.pinchInwards=!0,t._isPanClick=!1,t._twoFingerActivityCount=0,t._isPinching=!1,t}return Object(h.d)(t,e),t.prototype.getClassName=function(){return\"ArcRotateCameraPointersInput\"},t.prototype.onTouch=function(e,t,i){0!==this.panningSensibility&&(this._ctrlKey&&this.camera._useCtrlForPanning||this._isPanClick)?(this.camera.inertialPanningX+=-t/this.panningSensibility,this.camera.inertialPanningY+=i/this.panningSensibility):(this.camera.inertialAlphaOffset-=t/this.angularSensibilityX,this.camera.inertialBetaOffset-=i/this.angularSensibilityY)},t.prototype.onDoubleTap=function(e){this.camera.useInputToRestoreState&&this.camera.restoreState()},t.prototype.onMultiTouch=function(e,t,i,n,r,o){if(!(0===i&&null===r||0===n&&null===o)){var a=this.pinchInwards?1:-1;if(this.multiTouchPanAndZoom){if(this.useNaturalPinchZoom?this.camera.radius=this.camera.radius*Math.sqrt(i)/Math.sqrt(n):this.pinchDeltaPercentage?this.camera.inertialRadiusOffset+=.001*(n-i)*this.camera.radius*this.pinchDeltaPercentage:this.camera.inertialRadiusOffset+=(n-i)/(this.pinchPrecision*a*(this.angularSensibilityX+this.angularSensibilityY)/2),0!==this.panningSensibility&&r&&o){var s=o.x-r.x,c=o.y-r.y;this.camera.inertialPanningX+=-s/this.panningSensibility,this.camera.inertialPanningY+=c/this.panningSensibility}}else{this._twoFingerActivityCount++;var l=Math.sqrt(i),u=Math.sqrt(n);if(this._isPinching||this._twoFingerActivityCount<20&&Math.abs(u-l)>this.camera.pinchToPanMaxDistance)this.pinchDeltaPercentage?this.camera.inertialRadiusOffset+=.001*(n-i)*this.camera.radius*this.pinchDeltaPercentage:this.camera.inertialRadiusOffset+=(n-i)/(this.pinchPrecision*a*(this.angularSensibilityX+this.angularSensibilityY)/2),this._isPinching=!0;else if(0!==this.panningSensibility&&this.multiTouchPanning&&o&&r){s=o.x-r.x,c=o.y-r.y;this.camera.inertialPanningX+=-s/this.panningSensibility,this.camera.inertialPanningY+=c/this.panningSensibility}}}},t.prototype.onButtonDown=function(e){this._isPanClick=e.button===this.camera._panningMouseButton},t.prototype.onButtonUp=function(e){this._twoFingerActivityCount=0,this._isPinching=!1},t.prototype.onLostFocus=function(){this._isPanClick=!1,this._twoFingerActivityCount=0,this._isPinching=!1},Object(h.c)([Object(w.c)()],t.prototype,\"buttons\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"angularSensibilityX\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"angularSensibilityY\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"pinchPrecision\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"pinchDeltaPercentage\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"useNaturalPinchZoom\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"panningSensibility\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"multiTouchPanning\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"multiTouchPanAndZoom\",void 0),t}(ht);it.ArcRotateCameraPointersInput=dt;var ft=function(e){function t(t){return e.call(this,t)||this}return Object(h.d)(t,e),t.prototype.addMouseWheel=function(){return this.add(new ut),this},t.prototype.addPointers=function(){return this.add(new dt),this},t.prototype.addKeyboard=function(){return this.add(new lt),this},t}(nt);ft.prototype.addVRDeviceOrientation=function(){return this.add(new pt),this};var pt=function(){function e(){this.alphaCorrection=1,this.gammaCorrection=1,this._alpha=0,this._gamma=0,this._dirty=!1,this._deviceOrientationHandler=this._onOrientationEvent.bind(this)}return e.prototype.attachControl=function(e){var t=this;e=Ce.b.BackCompatCameraNoPreventDefault(arguments),this.camera.attachControl(e);var i=this.camera.getScene().getEngine().getHostWindow();i&&(\"undefined\"!=typeof DeviceOrientationEvent&&\"function\"==typeof DeviceOrientationEvent.requestPermission?DeviceOrientationEvent.requestPermission().then((function(e){\"granted\"===e?i.addEventListener(\"deviceorientation\",t._deviceOrientationHandler):Ce.b.Warn(\"Permission not granted.\")})).catch((function(e){Ce.b.Error(e)})):i.addEventListener(\"deviceorientation\",this._deviceOrientationHandler))},e.prototype._onOrientationEvent=function(e){null!==e.alpha&&(this._alpha=(0|+e.alpha)*this.alphaCorrection),null!==e.gamma&&(this._gamma=(0|+e.gamma)*this.gammaCorrection),this._dirty=!0},e.prototype.checkInputs=function(){this._dirty&&(this._dirty=!1,this._gamma<0&&(this._gamma=180+this._gamma),this.camera.alpha=-this._alpha/180*Math.PI%Math.PI*2,this.camera.beta=this._gamma/180*Math.PI)},e.prototype.detachControl=function(e){window.removeEventListener(\"deviceorientation\",this._deviceOrientationHandler)},e.prototype.getClassName=function(){return\"ArcRotateCameraVRDeviceOrientationInput\"},e.prototype.getSimpleName=function(){return\"VRDeviceOrientation\"},e}();it.ArcRotateCameraVRDeviceOrientationInput=pt;var _t=function(){function e(){this.keysForward=[87],this.keysBackward=[83],this.keysUp=[69],this.keysDown=[81],this.keysRight=[68],this.keysLeft=[65],this._keys=new Array}return e.prototype.attachControl=function(e){var t=this;e=Ce.b.BackCompatCameraNoPreventDefault(arguments),this._onCanvasBlurObserver||(this._scene=this.camera.getScene(),this._engine=this._scene.getEngine(),this._onCanvasBlurObserver=this._engine.onCanvasBlurObservable.add((function(){t._keys=[]})),this._onKeyboardObserver=this._scene.onKeyboardObservable.add((function(i){var n,r=i.event;i.type===ct.a.KEYDOWN?-1===t.keysForward.indexOf(r.keyCode)&&-1===t.keysBackward.indexOf(r.keyCode)&&-1===t.keysUp.indexOf(r.keyCode)&&-1===t.keysDown.indexOf(r.keyCode)&&-1===t.keysLeft.indexOf(r.keyCode)&&-1===t.keysRight.indexOf(r.keyCode)||(-1===(n=t._keys.indexOf(r.keyCode))&&t._keys.push(r.keyCode),e||r.preventDefault()):-1===t.keysForward.indexOf(r.keyCode)&&-1===t.keysBackward.indexOf(r.keyCode)&&-1===t.keysUp.indexOf(r.keyCode)&&-1===t.keysDown.indexOf(r.keyCode)&&-1===t.keysLeft.indexOf(r.keyCode)&&-1===t.keysRight.indexOf(r.keyCode)||((n=t._keys.indexOf(r.keyCode))>=0&&t._keys.splice(n,1),e||r.preventDefault())})))},e.prototype.detachControl=function(e){this._scene&&(this._onKeyboardObserver&&this._scene.onKeyboardObservable.remove(this._onKeyboardObserver),this._onCanvasBlurObserver&&this._engine.onCanvasBlurObservable.remove(this._onCanvasBlurObserver),this._onKeyboardObserver=null,this._onCanvasBlurObserver=null),this._keys=[]},e.prototype.getClassName=function(){return\"FlyCameraKeyboardInput\"},e.prototype._onLostFocus=function(e){this._keys=[]},e.prototype.getSimpleName=function(){return\"keyboard\"},e.prototype.checkInputs=function(){if(this._onKeyboardObserver)for(var e=this.camera,t=0;t=0&&t._keys.splice(n,1),r.preventDefault&&(e||r.preventDefault())))})))},e.prototype.detachControl=function(e){this._scene&&(this._onKeyboardObserver&&this._scene.onKeyboardObservable.remove(this._onKeyboardObserver),this._onCanvasBlurObserver&&this._engine.onCanvasBlurObservable.remove(this._onCanvasBlurObserver),this._onKeyboardObserver=null,this._onCanvasBlurObserver=null),this._keys=[]},e.prototype.checkInputs=function(){var e=this;this._onKeyboardObserver&&this._keys.forEach((function(t){-1!==e.keysHeightOffsetIncr.indexOf(t)&&e._modifierHeightOffset()?e.camera.heightOffset+=e.heightSensibility:-1!==e.keysHeightOffsetDecr.indexOf(t)&&e._modifierHeightOffset()?e.camera.heightOffset-=e.heightSensibility:-1!==e.keysRotationOffsetIncr.indexOf(t)&&e._modifierRotationOffset()?(e.camera.rotationOffset+=e.rotationSensibility,e.camera.rotationOffset%=360):-1!==e.keysRotationOffsetDecr.indexOf(t)&&e._modifierRotationOffset()?(e.camera.rotationOffset-=e.rotationSensibility,e.camera.rotationOffset%=360):-1!==e.keysRadiusIncr.indexOf(t)&&e._modifierRadius()?e.camera.radius+=e.radiusSensibility:-1!==e.keysRadiusDecr.indexOf(t)&&e._modifierRadius()&&(e.camera.radius-=e.radiusSensibility)}))},e.prototype.getClassName=function(){return\"FollowCameraKeyboardMoveInput\"},e.prototype.getSimpleName=function(){return\"keyboard\"},e.prototype._modifierHeightOffset=function(){return this.keysHeightOffsetModifierAlt===this._altPressed&&this.keysHeightOffsetModifierCtrl===this._ctrlPressed&&this.keysHeightOffsetModifierShift===this._shiftPressed},e.prototype._modifierRotationOffset=function(){return this.keysRotationOffsetModifierAlt===this._altPressed&&this.keysRotationOffsetModifierCtrl===this._ctrlPressed&&this.keysRotationOffsetModifierShift===this._shiftPressed},e.prototype._modifierRadius=function(){return this.keysRadiusModifierAlt===this._altPressed&&this.keysRadiusModifierCtrl===this._ctrlPressed&&this.keysRadiusModifierShift===this._shiftPressed},Object(h.c)([Object(w.c)()],e.prototype,\"keysHeightOffsetIncr\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"keysHeightOffsetDecr\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"keysHeightOffsetModifierAlt\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"keysHeightOffsetModifierCtrl\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"keysHeightOffsetModifierShift\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"keysRotationOffsetIncr\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"keysRotationOffsetDecr\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"keysRotationOffsetModifierAlt\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"keysRotationOffsetModifierCtrl\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"keysRotationOffsetModifierShift\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"keysRadiusIncr\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"keysRadiusDecr\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"keysRadiusModifierAlt\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"keysRadiusModifierCtrl\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"keysRadiusModifierShift\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"heightSensibility\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"rotationSensibility\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"radiusSensibility\",void 0),e}();it.FollowCameraKeyboardMoveInput=gt;var vt=function(){function e(){this.axisControlRadius=!0,this.axisControlHeight=!1,this.axisControlRotation=!1,this.wheelPrecision=3,this.wheelDeltaPercentage=0}return e.prototype.attachControl=function(e){var t=this;e=Ce.b.BackCompatCameraNoPreventDefault(arguments),this._wheel=function(i,n){if(i.type===Ne.a.POINTERWHEEL){var r=i.event,o=0,a=Math.max(-1,Math.min(1,r.deltaY||r.wheelDelta||-r.detail));t.wheelDeltaPercentage?(console.assert(t.axisControlRadius+t.axisControlHeight+t.axisControlRotation<=1,\"wheelDeltaPercentage only usable when mouse wheel controlls ONE axis. Currently enabled: axisControlRadius: \"+t.axisControlRadius+\", axisControlHeightOffset: \"+t.axisControlHeight+\", axisControlRotationOffset: \"+t.axisControlRotation),t.axisControlRadius?o=.01*a*t.wheelDeltaPercentage*t.camera.radius:t.axisControlHeight?o=.01*a*t.wheelDeltaPercentage*t.camera.heightOffset:t.axisControlRotation&&(o=.01*a*t.wheelDeltaPercentage*t.camera.rotationOffset)):o=a*t.wheelPrecision,o&&(t.axisControlRadius?t.camera.radius+=o:t.axisControlHeight?t.camera.heightOffset-=o:t.axisControlRotation&&(t.camera.rotationOffset-=o)),r.preventDefault&&(e||r.preventDefault())}},this._observer=this.camera.getScene().onPointerObservable.add(this._wheel,Ne.a.POINTERWHEEL)},e.prototype.detachControl=function(e){this._observer&&(this.camera.getScene().onPointerObservable.remove(this._observer),this._observer=null,this._wheel=null)},e.prototype.getClassName=function(){return\"ArcRotateCameraMouseWheelInput\"},e.prototype.getSimpleName=function(){return\"mousewheel\"},Object(h.c)([Object(w.c)()],e.prototype,\"axisControlRadius\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"axisControlHeight\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"axisControlRotation\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"wheelPrecision\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"wheelDeltaPercentage\",void 0),e}();it.FollowCameraMouseWheelInput=vt;var bt=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.angularSensibilityX=1,t.angularSensibilityY=1,t.pinchPrecision=1e4,t.pinchDeltaPercentage=0,t.axisXControlRadius=!1,t.axisXControlHeight=!1,t.axisXControlRotation=!0,t.axisYControlRadius=!1,t.axisYControlHeight=!0,t.axisYControlRotation=!1,t.axisPinchControlRadius=!0,t.axisPinchControlHeight=!1,t.axisPinchControlRotation=!1,t.warningEnable=!0,t._warningCounter=0,t}return Object(h.d)(t,e),t.prototype.getClassName=function(){return\"FollowCameraPointersInput\"},t.prototype.onTouch=function(e,t,i){this._warning(),this.axisXControlRotation?this.camera.rotationOffset+=t/this.angularSensibilityX:this.axisYControlRotation&&(this.camera.rotationOffset+=i/this.angularSensibilityX),this.axisXControlHeight?this.camera.heightOffset+=t/this.angularSensibilityY:this.axisYControlHeight&&(this.camera.heightOffset+=i/this.angularSensibilityY),this.axisXControlRadius?this.camera.radius-=t/this.angularSensibilityY:this.axisYControlRadius&&(this.camera.radius-=i/this.angularSensibilityY)},t.prototype.onMultiTouch=function(e,t,i,n,r,o){if(!(0===i&&null===r||0===n&&null===o)){var a=(n-i)/(this.pinchPrecision*(this.angularSensibilityX+this.angularSensibilityY)/2);this.pinchDeltaPercentage?(a*=.01*this.pinchDeltaPercentage,this.axisPinchControlRotation&&(this.camera.rotationOffset+=a*this.camera.rotationOffset),this.axisPinchControlHeight&&(this.camera.heightOffset+=a*this.camera.heightOffset),this.axisPinchControlRadius&&(this.camera.radius-=a*this.camera.radius)):(this.axisPinchControlRotation&&(this.camera.rotationOffset+=a),this.axisPinchControlHeight&&(this.camera.heightOffset+=a),this.axisPinchControlRadius&&(this.camera.radius-=a))}},t.prototype._warning=function(){if(this.warningEnable&&this._warningCounter++%100==0){var e=\"It probably only makes sense to control ONE camera property with each pointer axis. Set 'warningEnable = false' if you are sure. Currently enabled: \";console.assert(this.axisXControlRotation+this.axisXControlHeight+this.axisXControlRadius<=1,e+\"axisXControlRotation: \"+this.axisXControlRotation+\", axisXControlHeight: \"+this.axisXControlHeight+\", axisXControlRadius: \"+this.axisXControlRadius),console.assert(this.axisYControlRotation+this.axisYControlHeight+this.axisYControlRadius<=1,e+\"axisYControlRotation: \"+this.axisYControlRotation+\", axisYControlHeight: \"+this.axisYControlHeight+\", axisYControlRadius: \"+this.axisYControlRadius),console.assert(this.axisPinchControlRotation+this.axisPinchControlHeight+this.axisPinchControlRadius<=1,e+\"axisPinchControlRotation: \"+this.axisPinchControlRotation+\", axisPinchControlHeight: \"+this.axisPinchControlHeight+\", axisPinchControlRadius: \"+this.axisPinchControlRadius)}},Object(h.c)([Object(w.c)()],t.prototype,\"angularSensibilityX\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"angularSensibilityY\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"pinchPrecision\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"pinchDeltaPercentage\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"axisXControlRadius\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"axisXControlHeight\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"axisXControlRotation\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"axisYControlRadius\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"axisYControlHeight\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"axisYControlRotation\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"axisPinchControlRadius\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"axisPinchControlHeight\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"axisPinchControlRotation\",void 0),t}(ht);it.FollowCameraPointersInput=bt;var yt=function(){function e(){this.keysUp=[38],this.keysUpward=[33],this.keysDown=[40],this.keysDownward=[34],this.keysLeft=[37],this.keysRight=[39],this._keys=new Array}return e.prototype.attachControl=function(e){var t=this;e=Ce.b.BackCompatCameraNoPreventDefault(arguments),this._onCanvasBlurObserver||(this._scene=this.camera.getScene(),this._engine=this._scene.getEngine(),this._onCanvasBlurObserver=this._engine.onCanvasBlurObservable.add((function(){t._keys=[]})),this._onKeyboardObserver=this._scene.onKeyboardObservable.add((function(i){var n,r=i.event;r.metaKey||(i.type===ct.a.KEYDOWN?-1===t.keysUp.indexOf(r.keyCode)&&-1===t.keysDown.indexOf(r.keyCode)&&-1===t.keysLeft.indexOf(r.keyCode)&&-1===t.keysRight.indexOf(r.keyCode)&&-1===t.keysUpward.indexOf(r.keyCode)&&-1===t.keysDownward.indexOf(r.keyCode)||(-1===(n=t._keys.indexOf(r.keyCode))&&t._keys.push(r.keyCode),e||r.preventDefault()):-1===t.keysUp.indexOf(r.keyCode)&&-1===t.keysDown.indexOf(r.keyCode)&&-1===t.keysLeft.indexOf(r.keyCode)&&-1===t.keysRight.indexOf(r.keyCode)&&-1===t.keysUpward.indexOf(r.keyCode)&&-1===t.keysDownward.indexOf(r.keyCode)||((n=t._keys.indexOf(r.keyCode))>=0&&t._keys.splice(n,1),e||r.preventDefault()))})))},e.prototype.detachControl=function(e){this._scene&&(this._onKeyboardObserver&&this._scene.onKeyboardObservable.remove(this._onKeyboardObserver),this._onCanvasBlurObserver&&this._engine.onCanvasBlurObservable.remove(this._onCanvasBlurObserver),this._onKeyboardObserver=null,this._onCanvasBlurObserver=null),this._keys=[]},e.prototype.checkInputs=function(){if(this._onKeyboardObserver)for(var e=this.camera,t=0;t1)e.cameraRotation.x=-this._offsetY/this.touchAngularSensibility;else{var t=e._computeLocalCameraSpeed(),i=new a.e(0,0,t*this._offsetY/this.touchMoveSensibility);a.a.RotationYawPitchRollToRef(e.rotation.y,e.rotation.x,0,e._cameraRotationMatrix),e.cameraDirection.addInPlace(a.e.TransformCoordinates(i,e._cameraRotationMatrix))}}},e.prototype.getClassName=function(){return\"FreeCameraTouchInput\"},e.prototype.getSimpleName=function(){return\"touch\"},Object(h.c)([Object(w.c)()],e.prototype,\"touchAngularSensibility\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"touchMoveSensibility\",void 0),e}();it.FreeCameraTouchInput=Pt;var Ct=function(e){function t(t){var i=e.call(this,t)||this;return i._mouseInput=null,i._mouseWheelInput=null,i}return Object(h.d)(t,e),t.prototype.addKeyboard=function(){return this.add(new yt),this},t.prototype.addMouse=function(e){return void 0===e&&(e=!0),this._mouseInput||(this._mouseInput=new Tt(e),this.add(this._mouseInput)),this},t.prototype.removeMouse=function(){return this._mouseInput&&this.remove(this._mouseInput),this},t.prototype.addMouseWheel=function(){return this._mouseWheelInput||(this._mouseWheelInput=new At,this.add(this._mouseWheelInput)),this},t.prototype.removeMouseWheel=function(){return this._mouseWheelInput&&this.remove(this._mouseWheelInput),this},t.prototype.addTouch=function(){return this.add(new Pt),this},t.prototype.clear=function(){e.prototype.clear.call(this),this._mouseInput=null},t}(nt);Ct.prototype.addDeviceOrientation=function(){return this._deviceOrientationInput||(this._deviceOrientationInput=new Rt,this.add(this._deviceOrientationInput)),this};var Rt=function(){function e(){var e=this;this._screenOrientationAngle=0,this._screenQuaternion=new a.b,this._alpha=0,this._beta=0,this._gamma=0,this._onDeviceOrientationChangedObservable=new o.c,this._orientationChanged=function(){e._screenOrientationAngle=void 0!==window.orientation?+window.orientation:window.screen.orientation&&window.screen.orientation.angle?window.screen.orientation.angle:0,e._screenOrientationAngle=-Ce.b.ToRadians(e._screenOrientationAngle/2),e._screenQuaternion.copyFromFloats(0,Math.sin(e._screenOrientationAngle),0,Math.cos(e._screenOrientationAngle))},this._deviceOrientation=function(t){e._alpha=null!==t.alpha?t.alpha:0,e._beta=null!==t.beta?t.beta:0,e._gamma=null!==t.gamma?t.gamma:0,null!==t.alpha&&e._onDeviceOrientationChangedObservable.notifyObservers()},this._constantTranform=new a.b(-Math.sqrt(.5),0,0,Math.sqrt(.5)),this._orientationChanged()}return e.WaitForOrientationChangeAsync=function(e){return new Promise((function(t,i){var n=!1,r=function(){window.removeEventListener(\"deviceorientation\",r),n=!0,t()};e&&setTimeout((function(){n||(window.removeEventListener(\"deviceorientation\",r),i(\"WaitForOrientationChangeAsync timed out\"))}),e),\"undefined\"!=typeof DeviceOrientationEvent&&\"function\"==typeof DeviceOrientationEvent.requestPermission?DeviceOrientationEvent.requestPermission().then((function(e){\"granted\"==e?window.addEventListener(\"deviceorientation\",r):Ce.b.Warn(\"Permission not granted.\")})).catch((function(e){Ce.b.Error(e)})):window.addEventListener(\"deviceorientation\",r)}))},Object.defineProperty(e.prototype,\"camera\",{get:function(){return this._camera},set:function(e){var t=this;this._camera=e,null==this._camera||this._camera.rotationQuaternion||(this._camera.rotationQuaternion=new a.b),this._camera&&this._camera.onDisposeObservable.add((function(){t._onDeviceOrientationChangedObservable.clear()}))},enumerable:!1,configurable:!0}),e.prototype.attachControl=function(){var e=this,t=this.camera.getScene().getEngine().getHostWindow();if(t){var i=function(){t.addEventListener(\"orientationchange\",e._orientationChanged),t.addEventListener(\"deviceorientation\",e._deviceOrientation),e._orientationChanged()};\"undefined\"!=typeof DeviceOrientationEvent&&\"function\"==typeof DeviceOrientationEvent.requestPermission?DeviceOrientationEvent.requestPermission().then((function(e){\"granted\"===e?i():Ce.b.Warn(\"Permission not granted.\")})).catch((function(e){Ce.b.Error(e)})):i()}},e.prototype.detachControl=function(e){window.removeEventListener(\"orientationchange\",this._orientationChanged),window.removeEventListener(\"deviceorientation\",this._deviceOrientation),this._alpha=0},e.prototype.checkInputs=function(){this._alpha&&(a.b.RotationYawPitchRollToRef(Ce.b.ToRadians(this._alpha),Ce.b.ToRadians(this._beta),-Ce.b.ToRadians(this._gamma),this.camera.rotationQuaternion),this._camera.rotationQuaternion.multiplyInPlace(this._screenQuaternion),this._camera.rotationQuaternion.multiplyInPlace(this._constantTranform),this._camera.rotationQuaternion.z*=-1,this._camera.rotationQuaternion.w*=-1)},e.prototype.getClassName=function(){return\"FreeCameraDeviceOrientationInput\"},e.prototype.getSimpleName=function(){return\"deviceOrientation\"},e}();it.FreeCameraDeviceOrientationInput=Rt;var xt=function(){function e(){this.gamepadAngularSensibility=200,this.gamepadMoveSensibility=40,this._yAxisScale=1,this._cameraTransform=a.a.Identity(),this._deltaTransform=a.e.Zero(),this._vector3=a.e.Zero(),this._vector2=a.d.Zero()}return Object.defineProperty(e.prototype,\"invertYAxis\",{get:function(){return 1!==this._yAxisScale},set:function(e){this._yAxisScale=e?-1:1},enumerable:!1,configurable:!0}),e.prototype.attachControl=function(){var e=this,t=this.camera.getScene().gamepadManager;this._onGamepadConnectedObserver=t.onGamepadConnectedObservable.add((function(t){t.type!==ot.POSE_ENABLED&&(e.gamepad&&t.type!==ot.XBOX||(e.gamepad=t))})),this._onGamepadDisconnectedObserver=t.onGamepadDisconnectedObservable.add((function(t){e.gamepad===t&&(e.gamepad=null)})),this.gamepad=t.getGamepadByType(ot.XBOX),!this.gamepad&&t.gamepads.length&&(this.gamepad=t.gamepads[0])},e.prototype.detachControl=function(e){this.camera.getScene().gamepadManager.onGamepadConnectedObservable.remove(this._onGamepadConnectedObserver),this.camera.getScene().gamepadManager.onGamepadDisconnectedObservable.remove(this._onGamepadDisconnectedObserver),this.gamepad=null},e.prototype.checkInputs=function(){if(this.gamepad&&this.gamepad.leftStick){var e=this.camera,t=this.gamepad.leftStick,i=t.x/this.gamepadMoveSensibility,n=t.y/this.gamepadMoveSensibility;t.x=Math.abs(i)>.005?0+i:0,t.y=Math.abs(n)>.005?0+n:0;var r=this.gamepad.rightStick;if(r){var o=r.x/this.gamepadAngularSensibility,s=r.y/this.gamepadAngularSensibility*this._yAxisScale;r.x=Math.abs(o)>.001?0+o:0,r.y=Math.abs(s)>.001?0+s:0}else r={x:0,y:0};e.rotationQuaternion?e.rotationQuaternion.toRotationMatrix(this._cameraTransform):a.a.RotationYawPitchRollToRef(e.rotation.y,e.rotation.x,0,this._cameraTransform);var c=50*e._computeLocalCameraSpeed();this._vector3.copyFromFloats(t.x*c,0,-t.y*c),a.e.TransformCoordinatesToRef(this._vector3,this._cameraTransform,this._deltaTransform),e.cameraDirection.addInPlace(this._deltaTransform),this._vector2.copyFromFloats(r.y,r.x),e.cameraRotation.addInPlace(this._vector2)}},e.prototype.getClassName=function(){return\"FreeCameraGamepadInput\"},e.prototype.getSimpleName=function(){return\"gamepad\"},Object(h.c)([Object(w.c)()],e.prototype,\"gamepadAngularSensibility\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"gamepadMoveSensibility\",void 0),e}();it.FreeCameraGamepadInput=xt;var Ot,Mt=i(112);!function(e){e[e.X=0]=\"X\",e[e.Y=1]=\"Y\",e[e.Z=2]=\"Z\"}(Ot||(Ot={}));var It=function(){function e(t,i){var n=this,r=Object(h.a)(Object(h.a)({},e._GetDefaultOptions()),i);if(this._leftJoystick=!!t,e._globalJoystickIndex++,this._axisTargetedByLeftAndRight=Ot.X,this._axisTargetedByUpAndDown=Ot.Y,this.reverseLeftRight=!1,this.reverseUpDown=!1,this._touches=new Mt.a,this.deltaPosition=a.e.Zero(),this._joystickSensibility=25,this._inversedSensibility=1/(this._joystickSensibility/1e3),this._onResize=function(t){e.vjCanvasWidth=window.innerWidth,e.vjCanvasHeight=window.innerHeight,e.Canvas&&(e.Canvas.width=e.vjCanvasWidth,e.Canvas.height=e.vjCanvasHeight),e.halfWidth=e.vjCanvasWidth/2},!e.Canvas){window.addEventListener(\"resize\",this._onResize,!1),e.Canvas=document.createElement(\"canvas\"),e.vjCanvasWidth=window.innerWidth,e.vjCanvasHeight=window.innerHeight,e.Canvas.width=window.innerWidth,e.Canvas.height=window.innerHeight,e.Canvas.style.width=\"100%\",e.Canvas.style.height=\"100%\",e.Canvas.style.position=\"absolute\",e.Canvas.style.backgroundColor=\"transparent\",e.Canvas.style.top=\"0px\",e.Canvas.style.left=\"0px\",e.Canvas.style.zIndex=\"5\",e.Canvas.style.msTouchAction=\"none\",e.Canvas.style.touchAction=\"none\",e.Canvas.setAttribute(\"touch-action\",\"none\");var o=e.Canvas.getContext(\"2d\");if(!o)throw new Error(\"Unable to create canvas for virtual joystick\");e.vjCanvasContext=o,e.vjCanvasContext.strokeStyle=\"#ffffff\",e.vjCanvasContext.lineWidth=2,document.body.appendChild(e.Canvas)}e.halfWidth=e.Canvas.width/2,this.pressed=!1,this.limitToContainer=r.limitToContainer,this._joystickColor=r.color,this.containerSize=r.containerSize,this.puckSize=r.puckSize,r.position&&this.setPosition(r.position.x,r.position.y),r.puckImage&&this.setPuckImage(r.puckImage),r.containerImage&&this.setContainerImage(r.containerImage),r.alwaysVisible&&e._alwaysVisibleSticks++,this.alwaysVisible=r.alwaysVisible,this._joystickPointerID=-1,this._joystickPointerPos=new a.d(0,0),this._joystickPreviousPointerPos=new a.d(0,0),this._joystickPointerStartPos=new a.d(0,0),this._deltaJoystickVector=new a.d(0,0),this._onPointerDownHandlerRef=function(e){n._onPointerDown(e)},this._onPointerMoveHandlerRef=function(e){n._onPointerMove(e)},this._onPointerUpHandlerRef=function(e){n._onPointerUp(e)},e.Canvas.addEventListener(\"pointerdown\",this._onPointerDownHandlerRef,!1),e.Canvas.addEventListener(\"pointermove\",this._onPointerMoveHandlerRef,!1),e.Canvas.addEventListener(\"pointerup\",this._onPointerUpHandlerRef,!1),e.Canvas.addEventListener(\"pointerout\",this._onPointerUpHandlerRef,!1),e.Canvas.addEventListener(\"contextmenu\",(function(e){e.preventDefault()}),!1),requestAnimationFrame((function(){n._drawVirtualJoystick()}))}return e._GetDefaultOptions=function(){return{puckSize:40,containerSize:60,color:\"cyan\",puckImage:void 0,containerImage:void 0,position:void 0,alwaysVisible:!1,limitToContainer:!1}},e.prototype.setJoystickSensibility=function(e){this._joystickSensibility=e,this._inversedSensibility=1/(this._joystickSensibility/1e3)},e.prototype._onPointerDown=function(t){t.preventDefault(),(!0===this._leftJoystick?t.clientXe.halfWidth)&&this._joystickPointerID<0?(this._joystickPointerID=t.pointerId,this._joystickPosition?(this._joystickPointerStartPos=this._joystickPosition.clone(),this._joystickPointerPos=this._joystickPosition.clone(),this._joystickPreviousPointerPos=this._joystickPosition.clone(),this._onPointerMove(t)):(this._joystickPointerStartPos.x=t.clientX,this._joystickPointerStartPos.y=t.clientY,this._joystickPointerPos=this._joystickPointerStartPos.clone(),this._joystickPreviousPointerPos=this._joystickPointerStartPos.clone()),this._deltaJoystickVector.x=0,this._deltaJoystickVector.y=0,this.pressed=!0,this._touches.add(t.pointerId.toString(),t)):e._globalJoystickIndex<2&&this._action&&(this._action(),this._touches.add(t.pointerId.toString(),{x:t.clientX,y:t.clientY,prevX:t.clientX,prevY:t.clientY}))},e.prototype._onPointerMove=function(t){if(this._joystickPointerID==t.pointerId){if(this.limitToContainer){var i=new a.d(t.clientX-this._joystickPointerStartPos.x,t.clientY-this._joystickPointerStartPos.y),n=i.length();n>this.containerSize&&i.scaleInPlace(this.containerSize/n),this._joystickPointerPos.x=this._joystickPointerStartPos.x+i.x,this._joystickPointerPos.y=this._joystickPointerStartPos.y+i.y}else this._joystickPointerPos.x=t.clientX,this._joystickPointerPos.y=t.clientY;this._deltaJoystickVector=this._joystickPointerPos.clone(),this._deltaJoystickVector=this._deltaJoystickVector.subtract(this._joystickPointerStartPos),0=0?this.rotation.y=-Math.atan(t.z/t.x)+Math.PI/2:this.rotation.y=-Math.atan(t.z/t.x)-Math.PI/2,this.rotation.z=0,isNaN(this.rotation.x)&&(this.rotation.x=0),isNaN(this.rotation.y)&&(this.rotation.y=0),isNaN(this.rotation.z)&&(this.rotation.z=0),this.rotationQuaternion&&a.b.RotationYawPitchRollToRef(this.rotation.y,this.rotation.x,this.rotation.z,this.rotationQuaternion)},Object.defineProperty(t.prototype,\"target\",{get:function(){return this.getTarget()},set:function(e){this.setTarget(e)},enumerable:!1,configurable:!0}),t.prototype.getTarget=function(){return this._currentTarget},t.prototype._decideIfNeedsToMove=function(){return Math.abs(this.cameraDirection.x)>0||Math.abs(this.cameraDirection.y)>0||Math.abs(this.cameraDirection.z)>0},t.prototype._updatePosition=function(){if(this.parent)return this.parent.getWorldMatrix().invertToRef(a.c.Matrix[0]),a.e.TransformNormalToRef(this.cameraDirection,a.c.Matrix[0],a.c.Vector3[0]),void this.position.addInPlace(a.c.Vector3[0]);this.position.addInPlace(this.cameraDirection)},t.prototype._checkInputs=function(){var t=this.invertRotation?-this.inverseRotationSpeed:1,i=this._decideIfNeedsToMove(),n=Math.abs(this.cameraRotation.x)>0||Math.abs(this.cameraRotation.y)>0;if(i&&this._updatePosition(),n){if(this.rotationQuaternion&&this.rotationQuaternion.toEulerAnglesToRef(this.rotation),this.rotation.x+=this.cameraRotation.x*t,this.rotation.y+=this.cameraRotation.y*t,!this.noRotationConstraint){this.rotation.x>1.570796&&(this.rotation.x=1.570796),this.rotation.x<-1.570796&&(this.rotation.x=-1.570796)}if(this.rotationQuaternion)this.rotation.lengthSquared()&&a.b.RotationYawPitchRollToRef(this.rotation.y,this.rotation.x,this.rotation.z,this.rotationQuaternion)}i&&(Math.abs(this.cameraDirection.x)Se.a.CollisionsEpsilon&&(o.position.addInPlace(o._diffPosition),o.onCollide&&i&&o.onCollide(i))},o.inputs=new Ct(o),o.inputs.addKeyboard().addMouse(),o}return Object(h.d)(t,e),Object.defineProperty(t.prototype,\"angularSensibility\",{get:function(){var e=this.inputs.attached.mouse;return e?e.angularSensibility:0},set:function(e){var t=this.inputs.attached.mouse;t&&(t.angularSensibility=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"keysUp\",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysUp:[]},set:function(e){var t=this.inputs.attached.keyboard;t&&(t.keysUp=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"keysUpward\",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysUpward:[]},set:function(e){var t=this.inputs.attached.keyboard;t&&(t.keysUpward=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"keysDown\",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysDown:[]},set:function(e){var t=this.inputs.attached.keyboard;t&&(t.keysDown=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"keysDownward\",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysDownward:[]},set:function(e){var t=this.inputs.attached.keyboard;t&&(t.keysDownward=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"keysLeft\",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysLeft:[]},set:function(e){var t=this.inputs.attached.keyboard;t&&(t.keysLeft=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"keysRight\",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysRight:[]},set:function(e){var t=this.inputs.attached.keyboard;t&&(t.keysRight=e)},enumerable:!1,configurable:!0}),t.prototype.attachControl=function(e,t){t=Ce.b.BackCompatCameraNoPreventDefault(arguments),this.inputs.attachElement(t)},t.prototype.detachControl=function(e){this.inputs.detachElement(),this.cameraDirection=new a.e(0,0,0),this.cameraRotation=new a.d(0,0)},Object.defineProperty(t.prototype,\"collisionMask\",{get:function(){return this._collisionMask},set:function(e){this._collisionMask=isNaN(e)?-1:e},enumerable:!1,configurable:!0}),t.prototype._collideWithWorld=function(e){(this.parent?a.e.TransformCoordinates(this.position,this.parent.getWorldMatrix()):this.position).subtractFromFloatsToRef(0,this.ellipsoid.y,0,this._oldPosition),this._oldPosition.addInPlace(this.ellipsoidOffset);var t=this.getScene().collisionCoordinator;this._collider||(this._collider=t.createCollider()),this._collider._radius=this.ellipsoid,this._collider.collisionMask=this._collisionMask;var i=e;this.applyGravity&&(i=e.add(this.getScene().gravity)),t.getNewPosition(this._oldPosition,i,this._collider,3,null,this._onCollisionPositionChange,this.uniqueId)},t.prototype._checkInputs=function(){this._localDirection||(this._localDirection=a.e.Zero(),this._transformedDirection=a.e.Zero()),this.inputs.checkInputs(),e.prototype._checkInputs.call(this)},t.prototype._decideIfNeedsToMove=function(){return this._needMoveForGravity||Math.abs(this.cameraDirection.x)>0||Math.abs(this.cameraDirection.y)>0||Math.abs(this.cameraDirection.z)>0},t.prototype._updatePosition=function(){this.checkCollisions&&this.getScene().collisionsEnabled?this._collideWithWorld(this.cameraDirection):e.prototype._updatePosition.call(this)},t.prototype.dispose=function(){this.inputs.clear(),e.prototype.dispose.call(this)},t.prototype.getClassName=function(){return\"FreeCamera\"},Object(h.c)([Object(w.o)()],t.prototype,\"ellipsoid\",void 0),Object(h.c)([Object(w.o)()],t.prototype,\"ellipsoidOffset\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"checkCollisions\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"applyGravity\",void 0),t}(Lt);B.a.AddNodeConstructor(\"TouchCamera\",(function(e,t){return function(){return new Ft(e,a.e.Zero(),t)}}));var Ft=function(e){function t(t,i,n){var r=e.call(this,t,i,n)||this;return r.inputs.addTouch(),r._setupInputs(),r}return Object(h.d)(t,e),Object.defineProperty(t.prototype,\"touchAngularSensibility\",{get:function(){var e=this.inputs.attached.touch;return e?e.touchAngularSensibility:0},set:function(e){var t=this.inputs.attached.touch;t&&(t.touchAngularSensibility=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"touchMoveSensibility\",{get:function(){var e=this.inputs.attached.touch;return e?e.touchMoveSensibility:0},set:function(e){var t=this.inputs.attached.touch;t&&(t.touchMoveSensibility=e)},enumerable:!1,configurable:!0}),t.prototype.getClassName=function(){return\"TouchCamera\"},t.prototype._setupInputs=function(){var e=this.inputs.attached.touch,t=this.inputs.attached.mouse;t?t.touchEnabled=!1:e.allowMouse=!0},t}(wt);B.a.AddNodeConstructor(\"ArcRotateCamera\",(function(e,t){return function(){return new Bt(e,0,0,1,a.e.Zero(),t)}}));var Bt=function(e){function t(t,i,n,r,s,c,l){void 0===l&&(l=!0);var u=e.call(this,t,a.e.Zero(),c,l)||this;return u.inertialAlphaOffset=0,u.inertialBetaOffset=0,u.inertialRadiusOffset=0,u.lowerAlphaLimit=null,u.upperAlphaLimit=null,u.lowerBetaLimit=.01,u.upperBetaLimit=Math.PI-.01,u.lowerRadiusLimit=null,u.upperRadiusLimit=null,u.inertialPanningX=0,u.inertialPanningY=0,u.pinchToPanMaxDistance=20,u.panningDistanceLimit=null,u.panningOriginTarget=a.e.Zero(),u.panningInertia=.9,u.zoomOnFactor=1,u.targetScreenOffset=a.d.Zero(),u.allowUpsideDown=!0,u.useInputToRestoreState=!0,u._viewMatrix=new a.a,u.panningAxis=new a.e(1,1,0),u.onMeshTargetChangedObservable=new o.c,u.checkCollisions=!1,u.collisionRadius=new a.e(.5,.5,.5),u._previousPosition=a.e.Zero(),u._collisionVelocity=a.e.Zero(),u._newPosition=a.e.Zero(),u._computationVector=a.e.Zero(),u._onCollisionPositionChange=function(e,t,i){void 0===i&&(i=null),i?(u.setPosition(t),u.onCollide&&u.onCollide(i)):u._previousPosition.copyFrom(u._position);var n=Math.cos(u.alpha),r=Math.sin(u.alpha),o=Math.cos(u.beta),a=Math.sin(u.beta);0===a&&(a=1e-4);var s=u._getTargetPosition();u._computationVector.copyFromFloats(u.radius*n*a,u.radius*o,u.radius*r*a),s.addToRef(u._computationVector,u._newPosition),u._position.copyFrom(u._newPosition);var c=u.upVector;u.allowUpsideDown&&u.beta<0&&(c=(c=c.clone()).negate()),u._computeViewMatrix(u._position,s,c),u._viewMatrix.addAtIndex(12,u.targetScreenOffset.x),u._viewMatrix.addAtIndex(13,u.targetScreenOffset.y),u._collisionTriggered=!1},u._target=a.e.Zero(),s&&u.setTarget(s),u.alpha=i,u.beta=n,u.radius=r,u.getViewMatrix(),u.inputs=new ft(u),u.inputs.addKeyboard().addMouseWheel().addPointers(),u}return Object(h.d)(t,e),Object.defineProperty(t.prototype,\"target\",{get:function(){return this._target},set:function(e){this.setTarget(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"position\",{get:function(){return this._position},set:function(e){this.setPosition(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"upVector\",{get:function(){return this._upVector},set:function(e){this._upToYMatrix||(this._YToUpMatrix=new a.a,this._upToYMatrix=new a.a,this._upVector=a.e.Zero()),e.normalize(),this._upVector.copyFrom(e),this.setMatUp()},enumerable:!1,configurable:!0}),t.prototype.setMatUp=function(){a.a.RotationAlignToRef(a.e.UpReadOnly,this._upVector,this._YToUpMatrix),a.a.RotationAlignToRef(this._upVector,a.e.UpReadOnly,this._upToYMatrix)},Object.defineProperty(t.prototype,\"angularSensibilityX\",{get:function(){var e=this.inputs.attached.pointers;return e?e.angularSensibilityX:0},set:function(e){var t=this.inputs.attached.pointers;t&&(t.angularSensibilityX=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"angularSensibilityY\",{get:function(){var e=this.inputs.attached.pointers;return e?e.angularSensibilityY:0},set:function(e){var t=this.inputs.attached.pointers;t&&(t.angularSensibilityY=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"pinchPrecision\",{get:function(){var e=this.inputs.attached.pointers;return e?e.pinchPrecision:0},set:function(e){var t=this.inputs.attached.pointers;t&&(t.pinchPrecision=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"pinchDeltaPercentage\",{get:function(){var e=this.inputs.attached.pointers;return e?e.pinchDeltaPercentage:0},set:function(e){var t=this.inputs.attached.pointers;t&&(t.pinchDeltaPercentage=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"useNaturalPinchZoom\",{get:function(){var e=this.inputs.attached.pointers;return!!e&&e.useNaturalPinchZoom},set:function(e){var t=this.inputs.attached.pointers;t&&(t.useNaturalPinchZoom=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"panningSensibility\",{get:function(){var e=this.inputs.attached.pointers;return e?e.panningSensibility:0},set:function(e){var t=this.inputs.attached.pointers;t&&(t.panningSensibility=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"keysUp\",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysUp:[]},set:function(e){var t=this.inputs.attached.keyboard;t&&(t.keysUp=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"keysDown\",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysDown:[]},set:function(e){var t=this.inputs.attached.keyboard;t&&(t.keysDown=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"keysLeft\",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysLeft:[]},set:function(e){var t=this.inputs.attached.keyboard;t&&(t.keysLeft=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"keysRight\",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysRight:[]},set:function(e){var t=this.inputs.attached.keyboard;t&&(t.keysRight=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"wheelPrecision\",{get:function(){var e=this.inputs.attached.mousewheel;return e?e.wheelPrecision:0},set:function(e){var t=this.inputs.attached.mousewheel;t&&(t.wheelPrecision=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"wheelDeltaPercentage\",{get:function(){var e=this.inputs.attached.mousewheel;return e?e.wheelDeltaPercentage:0},set:function(e){var t=this.inputs.attached.mousewheel;t&&(t.wheelDeltaPercentage=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"bouncingBehavior\",{get:function(){return this._bouncingBehavior},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"useBouncingBehavior\",{get:function(){return null!=this._bouncingBehavior},set:function(e){e!==this.useBouncingBehavior&&(e?(this._bouncingBehavior=new we,this.addBehavior(this._bouncingBehavior)):this._bouncingBehavior&&(this.removeBehavior(this._bouncingBehavior),this._bouncingBehavior=null))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"framingBehavior\",{get:function(){return this._framingBehavior},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"useFramingBehavior\",{get:function(){return null!=this._framingBehavior},set:function(e){e!==this.useFramingBehavior&&(e?(this._framingBehavior=new Fe,this.addBehavior(this._framingBehavior)):this._framingBehavior&&(this.removeBehavior(this._framingBehavior),this._framingBehavior=null))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"autoRotationBehavior\",{get:function(){return this._autoRotationBehavior},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"useAutoRotationBehavior\",{get:function(){return null!=this._autoRotationBehavior},set:function(e){e!==this.useAutoRotationBehavior&&(e?(this._autoRotationBehavior=new Le,this.addBehavior(this._autoRotationBehavior)):this._autoRotationBehavior&&(this.removeBehavior(this._autoRotationBehavior),this._autoRotationBehavior=null))},enumerable:!1,configurable:!0}),t.prototype._initCache=function(){e.prototype._initCache.call(this),this._cache._target=new a.e(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),this._cache.alpha=void 0,this._cache.beta=void 0,this._cache.radius=void 0,this._cache.targetScreenOffset=a.d.Zero()},t.prototype._updateCache=function(t){t||e.prototype._updateCache.call(this),this._cache._target.copyFrom(this._getTargetPosition()),this._cache.alpha=this.alpha,this._cache.beta=this.beta,this._cache.radius=this.radius,this._cache.targetScreenOffset.copyFrom(this.targetScreenOffset)},t.prototype._getTargetPosition=function(){if(this._targetHost&&this._targetHost.getAbsolutePosition){var e=this._targetHost.absolutePosition;this._targetBoundingCenter?e.addToRef(this._targetBoundingCenter,this._target):this._target.copyFrom(e)}var t=this._getLockedTargetPosition();return t||this._target},t.prototype.storeState=function(){return this._storedAlpha=this.alpha,this._storedBeta=this.beta,this._storedRadius=this.radius,this._storedTarget=this._getTargetPosition().clone(),this._storedTargetScreenOffset=this.targetScreenOffset.clone(),e.prototype.storeState.call(this)},t.prototype._restoreStateValues=function(){return!!e.prototype._restoreStateValues.call(this)&&(this.setTarget(this._storedTarget.clone()),this.alpha=this._storedAlpha,this.beta=this._storedBeta,this.radius=this._storedRadius,this.targetScreenOffset=this._storedTargetScreenOffset.clone(),this.inertialAlphaOffset=0,this.inertialBetaOffset=0,this.inertialRadiusOffset=0,this.inertialPanningX=0,this.inertialPanningY=0,!0)},t.prototype._isSynchronizedViewMatrix=function(){return!!e.prototype._isSynchronizedViewMatrix.call(this)&&(this._cache._target.equals(this._getTargetPosition())&&this._cache.alpha===this.alpha&&this._cache.beta===this.beta&&this._cache.radius===this.radius&&this._cache.targetScreenOffset.equals(this.targetScreenOffset))},t.prototype.attachControl=function(e,t,i,n){var r=this;void 0===i&&(i=!0),void 0===n&&(n=2),t=Ce.b.BackCompatCameraNoPreventDefault(arguments),this._useCtrlForPanning=i,this._panningMouseButton=n,\"boolean\"==typeof arguments[0]&&(arguments.length>1&&(this._useCtrlForPanning=arguments[1]),arguments.length>2&&(this._panningMouseButton=arguments[2])),this.inputs.attachElement(t),this._reset=function(){r.inertialAlphaOffset=0,r.inertialBetaOffset=0,r.inertialRadiusOffset=0,r.inertialPanningX=0,r.inertialPanningY=0}},t.prototype.detachControl=function(e){this.inputs.detachElement(),this._reset&&this._reset()},t.prototype._checkInputs=function(){if(!this._collisionTriggered){if(this.inputs.checkInputs(),0!==this.inertialAlphaOffset||0!==this.inertialBetaOffset||0!==this.inertialRadiusOffset){var t=this.inertialAlphaOffset;this.beta<=0&&(t*=-1),this.getScene().useRightHandedSystem&&(t*=-1),this.parent&&this.parent._getWorldMatrixDeterminant()<0&&(t*=-1),this.alpha+=t,this.beta+=this.inertialBetaOffset,this.radius-=this.inertialRadiusOffset,this.inertialAlphaOffset*=this.inertia,this.inertialBetaOffset*=this.inertia,this.inertialRadiusOffset*=this.inertia,Math.abs(this.inertialAlphaOffset)Math.PI&&(this.beta=this.beta-2*Math.PI):this.betathis.upperBetaLimit&&(this.beta=this.upperBetaLimit),null!==this.lowerAlphaLimit&&this.alphathis.upperAlphaLimit&&(this.alpha=this.upperAlphaLimit),null!==this.lowerRadiusLimit&&this.radiusthis.upperRadiusLimit&&(this.radius=this.upperRadiusLimit,this.inertialRadiusOffset=0)},t.prototype.rebuildAnglesAndRadius=function(){this._position.subtractToRef(this._getTargetPosition(),this._computationVector),0===this._upVector.x&&1===this._upVector.y&&0===this._upVector.z||a.e.TransformCoordinatesToRef(this._computationVector,this._upToYMatrix,this._computationVector),this.radius=this._computationVector.length(),0===this.radius&&(this.radius=1e-4);var e=this.alpha;0===this._computationVector.x&&0===this._computationVector.z?this.alpha=Math.PI/2:this.alpha=Math.acos(this._computationVector.x/Math.sqrt(Math.pow(this._computationVector.x,2)+Math.pow(this._computationVector.z,2))),this._computationVector.z<0&&(this.alpha=2*Math.PI-this.alpha);var t=Math.round((e-this.alpha)/(2*Math.PI));this.alpha+=2*t*Math.PI,this.beta=Math.acos(this._computationVector.y/this.radius),this._checkLimits()},t.prototype.setPosition=function(e){this._position.equals(e)||(this._position.copyFrom(e),this.rebuildAnglesAndRadius())},t.prototype.setTarget=function(e,t,i){if(void 0===t&&(t=!1),void 0===i&&(i=!1),e.getBoundingInfo)this._targetBoundingCenter=t?e.getBoundingInfo().boundingBox.centerWorld.clone():null,e.computeWorldMatrix(),this._targetHost=e,this._target=this._getTargetPosition(),this.onMeshTargetChangedObservable.notifyObservers(this._targetHost);else{var n=e,r=this._getTargetPosition();if(r&&!i&&r.equals(n))return;this._targetHost=null,this._target=n,this._targetBoundingCenter=null,this.onMeshTargetChangedObservable.notifyObservers(null)}this.rebuildAnglesAndRadius()},t.prototype._getViewMatrix=function(){var e=Math.cos(this.alpha),t=Math.sin(this.alpha),i=Math.cos(this.beta),n=Math.sin(this.beta);0===n&&(n=1e-4),0===this.radius&&(this.radius=1e-4);var r=this._getTargetPosition();if(this._computationVector.copyFromFloats(this.radius*e*n,this.radius*i,this.radius*t*n),0===this._upVector.x&&1===this._upVector.y&&0===this._upVector.z||a.e.TransformCoordinatesToRef(this._computationVector,this._YToUpMatrix,this._computationVector),r.addToRef(this._computationVector,this._newPosition),this.getScene().collisionsEnabled&&this.checkCollisions){var o=this.getScene().collisionCoordinator;this._collider||(this._collider=o.createCollider()),this._collider._radius=this.collisionRadius,this._newPosition.subtractToRef(this._position,this._collisionVelocity),this._collisionTriggered=!0,o.getNewPosition(this._position,this._collisionVelocity,this._collider,3,null,this._onCollisionPositionChange,this.uniqueId)}else{this._position.copyFrom(this._newPosition);var s=this.upVector;this.allowUpsideDown&&n<0&&(s=s.negate()),this._computeViewMatrix(this._position,r,s),this._viewMatrix.addAtIndex(12,this.targetScreenOffset.x),this._viewMatrix.addAtIndex(13,this.targetScreenOffset.y)}return this._currentTarget=r,this._viewMatrix},t.prototype.zoomOn=function(e,t){void 0===t&&(t=!1),e=e||this.getScene().meshes;var i=be.a.MinMax(e),n=a.e.Distance(i.min,i.max);this.radius=n*this.zoomOnFactor,this.focusOn({min:i.min,max:i.max,distance:n},t)},t.prototype.focusOn=function(e,t){var i,n;if(void 0===t&&(t=!1),void 0===e.min){var r=e||this.getScene().meshes;i=be.a.MinMax(r),n=a.e.Distance(i.min,i.max)}else{i=e,n=e.distance}this._target=be.a.Center(i),t||(this.maxZ=2*n)},t.prototype.createRigCamera=function(e,i){var n=0;switch(this.cameraRigMode){case je.a.RIG_MODE_STEREOSCOPIC_ANAGLYPH:case je.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:case je.a.RIG_MODE_STEREOSCOPIC_OVERUNDER:case je.a.RIG_MODE_STEREOSCOPIC_INTERLACED:case je.a.RIG_MODE_VR:n=this._cameraRigParams.stereoHalfAngle*(0===i?1:-1);break;case je.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED:n=this._cameraRigParams.stereoHalfAngle*(0===i?-1:1)}var r=new t(e,this.alpha+n,this.beta,this.radius,this._target,this.getScene());return r._cameraRigParams={},r.isRigCamera=!0,r.rigParent=this,r.upVector=this.upVector,r},t.prototype._updateRigCameras=function(){var t=this._rigCameras[0],i=this._rigCameras[1];switch(t.beta=i.beta=this.beta,this.cameraRigMode){case je.a.RIG_MODE_STEREOSCOPIC_ANAGLYPH:case je.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:case je.a.RIG_MODE_STEREOSCOPIC_OVERUNDER:case je.a.RIG_MODE_STEREOSCOPIC_INTERLACED:case je.a.RIG_MODE_VR:t.alpha=this.alpha-this._cameraRigParams.stereoHalfAngle,i.alpha=this.alpha+this._cameraRigParams.stereoHalfAngle;break;case je.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED:t.alpha=this.alpha+this._cameraRigParams.stereoHalfAngle,i.alpha=this.alpha-this._cameraRigParams.stereoHalfAngle}e.prototype._updateRigCameras.call(this)},t.prototype.dispose=function(){this.inputs.clear(),e.prototype.dispose.call(this)},t.prototype.getClassName=function(){return\"ArcRotateCamera\"},Object(h.c)([Object(w.c)()],t.prototype,\"alpha\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"beta\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"radius\",void 0),Object(h.c)([Object(w.o)(\"target\")],t.prototype,\"_target\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"inertialAlphaOffset\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"inertialBetaOffset\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"inertialRadiusOffset\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"lowerAlphaLimit\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"upperAlphaLimit\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"lowerBetaLimit\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"upperBetaLimit\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"lowerRadiusLimit\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"upperRadiusLimit\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"inertialPanningX\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"inertialPanningY\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"pinchToPanMaxDistance\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"panningDistanceLimit\",void 0),Object(h.c)([Object(w.o)()],t.prototype,\"panningOriginTarget\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"panningInertia\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"zoomOnFactor\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"targetScreenOffset\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"allowUpsideDown\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"useInputToRestoreState\",void 0),t}(Lt);B.a.AddNodeConstructor(\"DeviceOrientationCamera\",(function(e,t){return function(){return new Ut(e,a.e.Zero(),t)}}));var Ut=function(e){function t(t,i,n){var r=e.call(this,t,i,n)||this;return r._tmpDragQuaternion=new a.b,r._disablePointerInputWhenUsingDeviceOrientation=!0,r._dragFactor=0,r._quaternionCache=new a.b,r.inputs.addDeviceOrientation(),r.inputs._deviceOrientationInput&&r.inputs._deviceOrientationInput._onDeviceOrientationChangedObservable.addOnce((function(){r._disablePointerInputWhenUsingDeviceOrientation&&r.inputs._mouseInput&&(r.inputs._mouseInput._allowCameraRotation=!1,r.inputs._mouseInput.onPointerMovedObservable.add((function(e){0!=r._dragFactor&&(r._initialQuaternion||(r._initialQuaternion=new a.b),a.b.FromEulerAnglesToRef(0,e.offsetX*r._dragFactor,0,r._tmpDragQuaternion),r._initialQuaternion.multiplyToRef(r._tmpDragQuaternion,r._initialQuaternion))})))})),r}return Object(h.d)(t,e),Object.defineProperty(t.prototype,\"disablePointerInputWhenUsingDeviceOrientation\",{get:function(){return this._disablePointerInputWhenUsingDeviceOrientation},set:function(e){this._disablePointerInputWhenUsingDeviceOrientation=e},enumerable:!1,configurable:!0}),t.prototype.enableHorizontalDragging=function(e){void 0===e&&(e=1/300),this._dragFactor=e},t.prototype.getClassName=function(){return\"DeviceOrientationCamera\"},t.prototype._checkInputs=function(){e.prototype._checkInputs.call(this),this._quaternionCache.copyFrom(this.rotationQuaternion),this._initialQuaternion&&this._initialQuaternion.multiplyToRef(this.rotationQuaternion,this.rotationQuaternion)},t.prototype.resetToCurrentRotation=function(e){var t=this;void 0===e&&(e=J.a.Y),this.rotationQuaternion&&(this._initialQuaternion||(this._initialQuaternion=new a.b),this._initialQuaternion.copyFrom(this._quaternionCache||this.rotationQuaternion),[\"x\",\"y\",\"z\"].forEach((function(i){e[i]?t._initialQuaternion[i]*=-1:t._initialQuaternion[i]=0})),this._initialQuaternion.normalize(),this._initialQuaternion.multiplyToRef(this.rotationQuaternion,this.rotationQuaternion))},t}(wt),Vt=function(e){function t(t){return e.call(this,t)||this}return Object(h.d)(t,e),t.prototype.addKeyboard=function(){return this.add(new _t),this},t.prototype.addMouse=function(e){return void 0===e&&(e=!0),this.add(new mt(e)),this},t}(nt),kt=function(e){function t(t,i,n,r){void 0===r&&(r=!0);var o=e.call(this,t,i,n,r)||this;return o.ellipsoid=new a.e(1,1,1),o.ellipsoidOffset=new a.e(0,0,0),o.checkCollisions=!1,o.applyGravity=!1,o.cameraDirection=a.e.Zero(),o._trackRoll=0,o.rollCorrect=100,o.bankedTurn=!1,o.bankedTurnLimit=Math.PI/2,o.bankedTurnMultiplier=1,o._needMoveForGravity=!1,o._oldPosition=a.e.Zero(),o._diffPosition=a.e.Zero(),o._newPosition=a.e.Zero(),o._collisionMask=-1,o._onCollisionPositionChange=function(e,t,i){void 0===i&&(i=null);var n;n=t,o._newPosition.copyFrom(n),o._newPosition.subtractToRef(o._oldPosition,o._diffPosition),o._diffPosition.length()>Se.a.CollisionsEpsilon&&(o.position.addInPlace(o._diffPosition),o.onCollide&&i&&o.onCollide(i))},o.inputs=new Vt(o),o.inputs.addKeyboard().addMouse(),o}return Object(h.d)(t,e),Object.defineProperty(t.prototype,\"angularSensibility\",{get:function(){var e=this.inputs.attached.mouse;return e?e.angularSensibility:0},set:function(e){var t=this.inputs.attached.mouse;t&&(t.angularSensibility=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"keysForward\",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysForward:[]},set:function(e){var t=this.inputs.attached.keyboard;t&&(t.keysForward=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"keysBackward\",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysBackward:[]},set:function(e){var t=this.inputs.attached.keyboard;t&&(t.keysBackward=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"keysUp\",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysUp:[]},set:function(e){var t=this.inputs.attached.keyboard;t&&(t.keysUp=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"keysDown\",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysDown:[]},set:function(e){var t=this.inputs.attached.keyboard;t&&(t.keysDown=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"keysLeft\",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysLeft:[]},set:function(e){var t=this.inputs.attached.keyboard;t&&(t.keysLeft=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"keysRight\",{get:function(){var e=this.inputs.attached.keyboard;return e?e.keysRight:[]},set:function(e){var t=this.inputs.attached.keyboard;t&&(t.keysRight=e)},enumerable:!1,configurable:!0}),t.prototype.attachControl=function(e,t){t=Ce.b.BackCompatCameraNoPreventDefault(arguments),this.inputs.attachElement(t)},t.prototype.detachControl=function(){this.inputs.detachElement(),this.cameraDirection=new a.e(0,0,0)},Object.defineProperty(t.prototype,\"collisionMask\",{get:function(){return this._collisionMask},set:function(e){this._collisionMask=isNaN(e)?-1:e},enumerable:!1,configurable:!0}),t.prototype._collideWithWorld=function(e){(this.parent?a.e.TransformCoordinates(this.position,this.parent.getWorldMatrix()):this.position).subtractFromFloatsToRef(0,this.ellipsoid.y,0,this._oldPosition),this._oldPosition.addInPlace(this.ellipsoidOffset);var t=this.getScene().collisionCoordinator;this._collider||(this._collider=t.createCollider()),this._collider._radius=this.ellipsoid,this._collider.collisionMask=this._collisionMask;var i=e;this.applyGravity&&(i=e.add(this.getScene().gravity)),t.getNewPosition(this._oldPosition,i,this._collider,3,null,this._onCollisionPositionChange,this.uniqueId)},t.prototype._checkInputs=function(){this._localDirection||(this._localDirection=a.e.Zero(),this._transformedDirection=a.e.Zero()),this.inputs.checkInputs(),e.prototype._checkInputs.call(this)},t.prototype._decideIfNeedsToMove=function(){return this._needMoveForGravity||Math.abs(this.cameraDirection.x)>0||Math.abs(this.cameraDirection.y)>0||Math.abs(this.cameraDirection.z)>0},t.prototype._updatePosition=function(){this.checkCollisions&&this.getScene().collisionsEnabled?this._collideWithWorld(this.cameraDirection):e.prototype._updatePosition.call(this)},t.prototype.restoreRoll=function(e){var t=this._trackRoll,i=t-this.rotation.z;Math.abs(i)>=.001&&(this.rotation.z+=i/e,Math.abs(t-this.rotation.z)<=.001&&(this.rotation.z=t))},t.prototype.dispose=function(){this.inputs.clear(),e.prototype.dispose.call(this)},t.prototype.getClassName=function(){return\"FlyCamera\"},Object(h.c)([Object(w.o)()],t.prototype,\"ellipsoid\",void 0),Object(h.c)([Object(w.o)()],t.prototype,\"ellipsoidOffset\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"checkCollisions\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"applyGravity\",void 0),t}(Lt),zt=function(e){function t(t){return e.call(this,t)||this}return Object(h.d)(t,e),t.prototype.addKeyboard=function(){return this.add(new gt),this},t.prototype.addMouseWheel=function(){return this.add(new vt),this},t.prototype.addPointers=function(){return this.add(new bt),this},t.prototype.addVRDeviceOrientation=function(){return console.warn(\"DeviceOrientation support not yet implemented for FollowCamera.\"),this},t}(nt);B.a.AddNodeConstructor(\"FollowCamera\",(function(e,t){return function(){return new jt(e,a.e.Zero(),t)}})),B.a.AddNodeConstructor(\"ArcFollowCamera\",(function(e,t){return function(){return new Wt(e,0,0,1,null,t)}}));var Gt,jt=function(e){function t(t,i,n,r){void 0===r&&(r=null);var o=e.call(this,t,i,n)||this;return o.radius=12,o.lowerRadiusLimit=null,o.upperRadiusLimit=null,o.rotationOffset=0,o.lowerRotationOffsetLimit=null,o.upperRotationOffsetLimit=null,o.heightOffset=4,o.lowerHeightOffsetLimit=null,o.upperHeightOffsetLimit=null,o.cameraAcceleration=.05,o.maxCameraSpeed=20,o.lockedTarget=r,o.inputs=new zt(o),o.inputs.addKeyboard().addMouseWheel().addPointers(),o}return Object(h.d)(t,e),t.prototype._follow=function(e){if(e){var t;if(e.rotationQuaternion){var i=new a.a;e.rotationQuaternion.toRotationMatrix(i),t=Math.atan2(i.m[8],i.m[10])}else t=e.rotation.y;var n=Ce.b.ToRadians(this.rotationOffset)+t,r=e.getAbsolutePosition(),o=r.x+Math.sin(n)*this.radius,s=r.z+Math.cos(n)*this.radius,c=o-this.position.x,l=r.y+this.heightOffset-this.position.y,u=s-this.position.z,h=c*this.cameraAcceleration*2,d=l*this.cameraAcceleration,f=u*this.cameraAcceleration*2;(h>this.maxCameraSpeed||h<-this.maxCameraSpeed)&&(h=h<1?-this.maxCameraSpeed:this.maxCameraSpeed),(d>this.maxCameraSpeed||d<-this.maxCameraSpeed)&&(d=d<1?-this.maxCameraSpeed:this.maxCameraSpeed),(f>this.maxCameraSpeed||f<-this.maxCameraSpeed)&&(f=f<1?-this.maxCameraSpeed:this.maxCameraSpeed),this.position=new a.e(this.position.x+h,this.position.y+d,this.position.z+f),this.setTarget(r)}},t.prototype.attachControl=function(e,t){t=Ce.b.BackCompatCameraNoPreventDefault(arguments),this.inputs.attachElement(t),this._reset=function(){}},t.prototype.detachControl=function(e){this.inputs.detachElement(),this._reset&&this._reset()},t.prototype._checkInputs=function(){this.inputs.checkInputs(),this._checkLimits(),e.prototype._checkInputs.call(this),this.lockedTarget&&this._follow(this.lockedTarget)},t.prototype._checkLimits=function(){null!==this.lowerRadiusLimit&&this.radiusthis.upperRadiusLimit&&(this.radius=this.upperRadiusLimit),null!==this.lowerHeightOffsetLimit&&this.heightOffsetthis.upperHeightOffsetLimit&&(this.heightOffset=this.upperHeightOffsetLimit),null!==this.lowerRotationOffsetLimit&&this.rotationOffsetthis.upperRotationOffsetLimit&&(this.rotationOffset=this.upperRotationOffsetLimit)},t.prototype.getClassName=function(){return\"FollowCamera\"},Object(h.c)([Object(w.c)()],t.prototype,\"radius\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"lowerRadiusLimit\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"upperRadiusLimit\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"rotationOffset\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"lowerRotationOffsetLimit\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"upperRotationOffsetLimit\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"heightOffset\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"lowerHeightOffsetLimit\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"upperHeightOffsetLimit\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"cameraAcceleration\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"maxCameraSpeed\",void 0),Object(h.c)([Object(w.k)(\"lockedTargetId\")],t.prototype,\"lockedTarget\",void 0),t}(Lt),Wt=function(e){function t(t,i,n,r,o,s){var c=e.call(this,t,a.e.Zero(),s)||this;return c.alpha=i,c.beta=n,c.radius=r,c._cartesianCoordinates=a.e.Zero(),c._meshTarget=o,c._follow(),c}return Object(h.d)(t,e),t.prototype._follow=function(){if(this._meshTarget){this._cartesianCoordinates.x=this.radius*Math.cos(this.alpha)*Math.cos(this.beta),this._cartesianCoordinates.y=this.radius*Math.sin(this.beta),this._cartesianCoordinates.z=this.radius*Math.sin(this.alpha)*Math.cos(this.beta);var e=this._meshTarget.getAbsolutePosition();this.position=e.add(this._cartesianCoordinates),this.setTarget(e)}},t.prototype._checkInputs=function(){e.prototype._checkInputs.call(this),this._follow()},t.prototype.getClassName=function(){return\"ArcFollowCamera\"},t}(Lt),Ht=i(38),Xt=i(39);!function(e){e[e.VIVE=0]=\"VIVE\",e[e.OCULUS=1]=\"OCULUS\",e[e.WINDOWS=2]=\"WINDOWS\",e[e.GEAR_VR=3]=\"GEAR_VR\",e[e.DAYDREAM=4]=\"DAYDREAM\",e[e.GENERIC=5]=\"GENERIC\"}(Gt||(Gt={}));var Yt,Kt,Qt=function(){function e(){}return e.InitiateController=function(e){for(var t=0,i=this._ControllerFactories;tthis._maxRotationDistFromHeadset){var n=i-(i<0?-this._maxRotationDistFromHeadset:this._maxRotationDistFromHeadset);this._draggedRoomRotation+=n;var r=Math.sin(-n),o=Math.cos(-n);this._calculatedPosition.x=this._calculatedPosition.x*o-this._calculatedPosition.z*r,this._calculatedPosition.z=this._calculatedPosition.x*r+this._calculatedPosition.z*o}}a.e.TransformCoordinatesToRef(this._calculatedPosition,this._deviceToWorld,this.devicePosition),this._deviceToWorld.getRotationMatrixToRef(this._workingMatrix),a.b.FromRotationMatrixToRef(this._workingMatrix,this.deviceRotationQuaternion),this.deviceRotationQuaternion.multiplyInPlace(this._calculatedRotation),this._mesh&&(this._mesh.position.copyFrom(this.devicePosition),this._mesh.rotationQuaternion&&this._mesh.rotationQuaternion.copyFrom(this.deviceRotationQuaternion))}},t.prototype.updateFromDevice=function(e){if(!this.isXR&&e){this.rawPose=e,e.position&&(this._deviceRoomPosition.copyFromFloats(e.position[0],e.position[1],-e.position[2]),this._mesh&&this._mesh.getScene().useRightHandedSystem&&(this._deviceRoomPosition.z*=-1),this._trackPosition&&this._deviceRoomPosition.scaleToRef(this.deviceScaleFactor,this._calculatedPosition),this._calculatedPosition.addInPlace(this.position));var t=this.rawPose;e.orientation&&t.orientation&&4===t.orientation.length&&(this._deviceRoomRotationQuaternion.copyFromFloats(t.orientation[0],t.orientation[1],-t.orientation[2],-t.orientation[3]),this._mesh&&(this._mesh.getScene().useRightHandedSystem?(this._deviceRoomRotationQuaternion.z*=-1,this._deviceRoomRotationQuaternion.w*=-1):this._deviceRoomRotationQuaternion.multiplyToRef(this._leftHandSystemQuaternion,this._deviceRoomRotationQuaternion)),this._deviceRoomRotationQuaternion.multiplyToRef(this.rotationQuaternion,this._calculatedRotation))}},t.prototype.attachToMesh=function(e){if(this._mesh&&(this._mesh.parent=null),this._mesh=e,this._poseControlledCamera&&(this._mesh.parent=this._poseControlledCamera),this._mesh.rotationQuaternion||(this._mesh.rotationQuaternion=new a.b),!this.isXR&&(this._updatePoseAndMesh(),this._pointingPoseNode)){for(var t=[],i=this._pointingPoseNode;i.parent;)t.push(i.parent),i=i.parent;t.reverse().forEach((function(e){e.computeWorldMatrix(!0)}))}this._meshAttachedObservable.notifyObservers(e)},t.prototype.attachToPoseControlledCamera=function(e){this._poseControlledCamera=e,this._mesh&&(this._mesh.parent=this._poseControlledCamera)},t.prototype.dispose=function(){this._mesh&&this._mesh.dispose(),this._mesh=null,e.prototype.dispose.call(this)},Object.defineProperty(t.prototype,\"mesh\",{get:function(){return this._mesh},enumerable:!1,configurable:!0}),t.prototype.getForwardRay=function(e){if(void 0===e&&(e=100),!this.mesh)return new Xt.a(a.e.Zero(),new a.e(0,0,1),e);var t=this._pointingPoseNode?this._pointingPoseNode.getWorldMatrix():this.mesh.getWorldMatrix(),i=t.getTranslation(),n=new a.e(0,0,-1),r=a.e.TransformNormal(n,t),o=a.e.Normalize(r);return new Xt.a(i,o,e)},t.POINTING_POSE=\"POINTING_POSE\",t}(ot);!function(e){e[e.A=0]=\"A\",e[e.B=1]=\"B\",e[e.X=2]=\"X\",e[e.Y=3]=\"Y\",e[e.LB=4]=\"LB\",e[e.RB=5]=\"RB\",e[e.Back=8]=\"Back\",e[e.Start=9]=\"Start\",e[e.LeftStick=10]=\"LeftStick\",e[e.RightStick=11]=\"RightStick\"}(Yt||(Yt={})),function(e){e[e.Up=12]=\"Up\",e[e.Down=13]=\"Down\",e[e.Left=14]=\"Left\",e[e.Right=15]=\"Right\"}(Kt||(Kt={}));var Zt,Jt,$t=function(e){function t(t,i,n,r){void 0===r&&(r=!1);var a=e.call(this,t,i,n,0,1,2,3)||this;return a._leftTrigger=0,a._rightTrigger=0,a.onButtonDownObservable=new o.c,a.onButtonUpObservable=new o.c,a.onPadDownObservable=new o.c,a.onPadUpObservable=new o.c,a._buttonA=0,a._buttonB=0,a._buttonX=0,a._buttonY=0,a._buttonBack=0,a._buttonStart=0,a._buttonLB=0,a._buttonRB=0,a._buttonLeftStick=0,a._buttonRightStick=0,a._dPadUp=0,a._dPadDown=0,a._dPadLeft=0,a._dPadRight=0,a._isXboxOnePad=!1,a.type=ot.XBOX,a._isXboxOnePad=r,a}return Object(h.d)(t,e),t.prototype.onlefttriggerchanged=function(e){this._onlefttriggerchanged=e},t.prototype.onrighttriggerchanged=function(e){this._onrighttriggerchanged=e},Object.defineProperty(t.prototype,\"leftTrigger\",{get:function(){return this._leftTrigger},set:function(e){this._onlefttriggerchanged&&this._leftTrigger!==e&&this._onlefttriggerchanged(e),this._leftTrigger=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"rightTrigger\",{get:function(){return this._rightTrigger},set:function(e){this._onrighttriggerchanged&&this._rightTrigger!==e&&this._onrighttriggerchanged(e),this._rightTrigger=e},enumerable:!1,configurable:!0}),t.prototype.onbuttondown=function(e){this._onbuttondown=e},t.prototype.onbuttonup=function(e){this._onbuttonup=e},t.prototype.ondpaddown=function(e){this._ondpaddown=e},t.prototype.ondpadup=function(e){this._ondpadup=e},t.prototype._setButtonValue=function(e,t,i){return e!==t&&(1===e&&(this._onbuttondown&&this._onbuttondown(i),this.onButtonDownObservable.notifyObservers(i)),0===e&&(this._onbuttonup&&this._onbuttonup(i),this.onButtonUpObservable.notifyObservers(i))),e},t.prototype._setDPadValue=function(e,t,i){return e!==t&&(1===e&&(this._ondpaddown&&this._ondpaddown(i),this.onPadDownObservable.notifyObservers(i)),0===e&&(this._ondpadup&&this._ondpadup(i),this.onPadUpObservable.notifyObservers(i))),e},Object.defineProperty(t.prototype,\"buttonA\",{get:function(){return this._buttonA},set:function(e){this._buttonA=this._setButtonValue(e,this._buttonA,Yt.A)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"buttonB\",{get:function(){return this._buttonB},set:function(e){this._buttonB=this._setButtonValue(e,this._buttonB,Yt.B)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"buttonX\",{get:function(){return this._buttonX},set:function(e){this._buttonX=this._setButtonValue(e,this._buttonX,Yt.X)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"buttonY\",{get:function(){return this._buttonY},set:function(e){this._buttonY=this._setButtonValue(e,this._buttonY,Yt.Y)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"buttonStart\",{get:function(){return this._buttonStart},set:function(e){this._buttonStart=this._setButtonValue(e,this._buttonStart,Yt.Start)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"buttonBack\",{get:function(){return this._buttonBack},set:function(e){this._buttonBack=this._setButtonValue(e,this._buttonBack,Yt.Back)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"buttonLB\",{get:function(){return this._buttonLB},set:function(e){this._buttonLB=this._setButtonValue(e,this._buttonLB,Yt.LB)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"buttonRB\",{get:function(){return this._buttonRB},set:function(e){this._buttonRB=this._setButtonValue(e,this._buttonRB,Yt.RB)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"buttonLeftStick\",{get:function(){return this._buttonLeftStick},set:function(e){this._buttonLeftStick=this._setButtonValue(e,this._buttonLeftStick,Yt.LeftStick)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"buttonRightStick\",{get:function(){return this._buttonRightStick},set:function(e){this._buttonRightStick=this._setButtonValue(e,this._buttonRightStick,Yt.RightStick)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"dPadUp\",{get:function(){return this._dPadUp},set:function(e){this._dPadUp=this._setDPadValue(e,this._dPadUp,Kt.Up)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"dPadDown\",{get:function(){return this._dPadDown},set:function(e){this._dPadDown=this._setDPadValue(e,this._dPadDown,Kt.Down)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"dPadLeft\",{get:function(){return this._dPadLeft},set:function(e){this._dPadLeft=this._setDPadValue(e,this._dPadLeft,Kt.Left)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"dPadRight\",{get:function(){return this._dPadRight},set:function(e){this._dPadRight=this._setDPadValue(e,this._dPadRight,Kt.Right)},enumerable:!1,configurable:!0}),t.prototype.update=function(){e.prototype.update.call(this),this._isXboxOnePad,this.buttonA=this.browserGamepad.buttons[0].value,this.buttonB=this.browserGamepad.buttons[1].value,this.buttonX=this.browserGamepad.buttons[2].value,this.buttonY=this.browserGamepad.buttons[3].value,this.buttonLB=this.browserGamepad.buttons[4].value,this.buttonRB=this.browserGamepad.buttons[5].value,this.leftTrigger=this.browserGamepad.buttons[6].value,this.rightTrigger=this.browserGamepad.buttons[7].value,this.buttonBack=this.browserGamepad.buttons[8].value,this.buttonStart=this.browserGamepad.buttons[9].value,this.buttonLeftStick=this.browserGamepad.buttons[10].value,this.buttonRightStick=this.browserGamepad.buttons[11].value,this.dPadUp=this.browserGamepad.buttons[12].value,this.dPadDown=this.browserGamepad.buttons[13].value,this.dPadLeft=this.browserGamepad.buttons[14].value,this.dPadRight=this.browserGamepad.buttons[15].value},t.prototype.dispose=function(){e.prototype.dispose.call(this),this.onButtonDownObservable.clear(),this.onButtonUpObservable.clear(),this.onPadDownObservable.clear(),this.onPadUpObservable.clear()},t}(ot);!function(e){e[e.Cross=0]=\"Cross\",e[e.Circle=1]=\"Circle\",e[e.Square=2]=\"Square\",e[e.Triangle=3]=\"Triangle\",e[e.L1=4]=\"L1\",e[e.R1=5]=\"R1\",e[e.Share=8]=\"Share\",e[e.Options=9]=\"Options\",e[e.LeftStick=10]=\"LeftStick\",e[e.RightStick=11]=\"RightStick\"}(Zt||(Zt={})),function(e){e[e.Up=12]=\"Up\",e[e.Down=13]=\"Down\",e[e.Left=14]=\"Left\",e[e.Right=15]=\"Right\"}(Jt||(Jt={}));var ei=function(e){function t(t,i,n){var r=e.call(this,t.replace(\"STANDARD GAMEPAD\",\"SONY PLAYSTATION DUALSHOCK\"),i,n,0,1,2,3)||this;return r._leftTrigger=0,r._rightTrigger=0,r.onButtonDownObservable=new o.c,r.onButtonUpObservable=new o.c,r.onPadDownObservable=new o.c,r.onPadUpObservable=new o.c,r._buttonCross=0,r._buttonCircle=0,r._buttonSquare=0,r._buttonTriangle=0,r._buttonShare=0,r._buttonOptions=0,r._buttonL1=0,r._buttonR1=0,r._buttonLeftStick=0,r._buttonRightStick=0,r._dPadUp=0,r._dPadDown=0,r._dPadLeft=0,r._dPadRight=0,r.type=ot.DUALSHOCK,r}return Object(h.d)(t,e),t.prototype.onlefttriggerchanged=function(e){this._onlefttriggerchanged=e},t.prototype.onrighttriggerchanged=function(e){this._onrighttriggerchanged=e},Object.defineProperty(t.prototype,\"leftTrigger\",{get:function(){return this._leftTrigger},set:function(e){this._onlefttriggerchanged&&this._leftTrigger!==e&&this._onlefttriggerchanged(e),this._leftTrigger=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"rightTrigger\",{get:function(){return this._rightTrigger},set:function(e){this._onrighttriggerchanged&&this._rightTrigger!==e&&this._onrighttriggerchanged(e),this._rightTrigger=e},enumerable:!1,configurable:!0}),t.prototype.onbuttondown=function(e){this._onbuttondown=e},t.prototype.onbuttonup=function(e){this._onbuttonup=e},t.prototype.ondpaddown=function(e){this._ondpaddown=e},t.prototype.ondpadup=function(e){this._ondpadup=e},t.prototype._setButtonValue=function(e,t,i){return e!==t&&(1===e&&(this._onbuttondown&&this._onbuttondown(i),this.onButtonDownObservable.notifyObservers(i)),0===e&&(this._onbuttonup&&this._onbuttonup(i),this.onButtonUpObservable.notifyObservers(i))),e},t.prototype._setDPadValue=function(e,t,i){return e!==t&&(1===e&&(this._ondpaddown&&this._ondpaddown(i),this.onPadDownObservable.notifyObservers(i)),0===e&&(this._ondpadup&&this._ondpadup(i),this.onPadUpObservable.notifyObservers(i))),e},Object.defineProperty(t.prototype,\"buttonCross\",{get:function(){return this._buttonCross},set:function(e){this._buttonCross=this._setButtonValue(e,this._buttonCross,Zt.Cross)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"buttonCircle\",{get:function(){return this._buttonCircle},set:function(e){this._buttonCircle=this._setButtonValue(e,this._buttonCircle,Zt.Circle)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"buttonSquare\",{get:function(){return this._buttonSquare},set:function(e){this._buttonSquare=this._setButtonValue(e,this._buttonSquare,Zt.Square)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"buttonTriangle\",{get:function(){return this._buttonTriangle},set:function(e){this._buttonTriangle=this._setButtonValue(e,this._buttonTriangle,Zt.Triangle)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"buttonOptions\",{get:function(){return this._buttonOptions},set:function(e){this._buttonOptions=this._setButtonValue(e,this._buttonOptions,Zt.Options)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"buttonShare\",{get:function(){return this._buttonShare},set:function(e){this._buttonShare=this._setButtonValue(e,this._buttonShare,Zt.Share)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"buttonL1\",{get:function(){return this._buttonL1},set:function(e){this._buttonL1=this._setButtonValue(e,this._buttonL1,Zt.L1)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"buttonR1\",{get:function(){return this._buttonR1},set:function(e){this._buttonR1=this._setButtonValue(e,this._buttonR1,Zt.R1)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"buttonLeftStick\",{get:function(){return this._buttonLeftStick},set:function(e){this._buttonLeftStick=this._setButtonValue(e,this._buttonLeftStick,Zt.LeftStick)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"buttonRightStick\",{get:function(){return this._buttonRightStick},set:function(e){this._buttonRightStick=this._setButtonValue(e,this._buttonRightStick,Zt.RightStick)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"dPadUp\",{get:function(){return this._dPadUp},set:function(e){this._dPadUp=this._setDPadValue(e,this._dPadUp,Jt.Up)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"dPadDown\",{get:function(){return this._dPadDown},set:function(e){this._dPadDown=this._setDPadValue(e,this._dPadDown,Jt.Down)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"dPadLeft\",{get:function(){return this._dPadLeft},set:function(e){this._dPadLeft=this._setDPadValue(e,this._dPadLeft,Jt.Left)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"dPadRight\",{get:function(){return this._dPadRight},set:function(e){this._dPadRight=this._setDPadValue(e,this._dPadRight,Jt.Right)},enumerable:!1,configurable:!0}),t.prototype.update=function(){e.prototype.update.call(this),this.buttonCross=this.browserGamepad.buttons[0].value,this.buttonCircle=this.browserGamepad.buttons[1].value,this.buttonSquare=this.browserGamepad.buttons[2].value,this.buttonTriangle=this.browserGamepad.buttons[3].value,this.buttonL1=this.browserGamepad.buttons[4].value,this.buttonR1=this.browserGamepad.buttons[5].value,this.leftTrigger=this.browserGamepad.buttons[6].value,this.rightTrigger=this.browserGamepad.buttons[7].value,this.buttonShare=this.browserGamepad.buttons[8].value,this.buttonOptions=this.browserGamepad.buttons[9].value,this.buttonLeftStick=this.browserGamepad.buttons[10].value,this.buttonRightStick=this.browserGamepad.buttons[11].value,this.dPadUp=this.browserGamepad.buttons[12].value,this.dPadDown=this.browserGamepad.buttons[13].value,this.dPadLeft=this.browserGamepad.buttons[14].value,this.dPadRight=this.browserGamepad.buttons[15].value},t.prototype.dispose=function(){e.prototype.dispose.call(this),this.onButtonDownObservable.clear(),this.onButtonUpObservable.clear(),this.onPadDownObservable.clear(),this.onPadUpObservable.clear()},t}(ot),ti=function(){function e(e){var t=this;if(this._scene=e,this._babylonGamepads=[],this._oneGamepadConnected=!1,this._isMonitoring=!1,this.onGamepadDisconnectedObservable=new o.c,Ht.a.IsWindowObjectExist()?(this._gamepadEventSupported=\"GamepadEvent\"in window,this._gamepadSupport=navigator.getGamepads||navigator.webkitGetGamepads||navigator.msGetGamepads||navigator.webkitGamepads):this._gamepadEventSupported=!1,this.onGamepadConnectedObservable=new o.c((function(e){for(var i in t._babylonGamepads){var n=t._babylonGamepads[i];n&&n._isConnected&&t.onGamepadConnectedObservable.notifyObserver(e,n)}})),this._onGamepadConnectedEvent=function(e){var i,n=e.gamepad;n.index in t._babylonGamepads&&t._babylonGamepads[n.index].isConnected||(t._babylonGamepads[n.index]?((i=t._babylonGamepads[n.index]).browserGamepad=n,i._isConnected=!0):i=t._addNewGamepad(n),t.onGamepadConnectedObservable.notifyObservers(i),t._startMonitoringGamepads())},this._onGamepadDisconnectedEvent=function(e){var i=e.gamepad;for(var n in t._babylonGamepads)if(t._babylonGamepads[n].index===i.index){var r=t._babylonGamepads[n];r._isConnected=!1,t.onGamepadDisconnectedObservable.notifyObservers(r),r.dispose&&r.dispose();break}},this._gamepadSupport)if(this._updateGamepadObjects(),this._babylonGamepads.length&&this._startMonitoringGamepads(),this._gamepadEventSupported){var i=this._scene?this._scene.getEngine().getHostWindow():window;i&&(i.addEventListener(\"gamepadconnected\",this._onGamepadConnectedEvent,!1),i.addEventListener(\"gamepaddisconnected\",this._onGamepadDisconnectedEvent,!1))}else this._startMonitoringGamepads()}return Object.defineProperty(e.prototype,\"gamepads\",{get:function(){return this._babylonGamepads},enumerable:!1,configurable:!0}),e.prototype.getGamepadByType=function(e){void 0===e&&(e=ot.XBOX);for(var t=0,i=this._babylonGamepads;t1&&(l=a.generateStencil?i.DEPTH24_STENCIL8:i.DEPTH_COMPONENT24),o.is2DArray?i.texImage3D(r,0,l,o.width,o.height,n,0,c,s,null):i.texImage2D(r,0,l,o.width,o.height,0,c,s,null),this._bindTextureDirectly(r,null),o};var li=function(){function e(e,t,i,n,r,s,c,l,u,h,d,f,p,_,m){void 0===c&&(c=g.a.TEXTURE_NEAREST_SAMPLINGMODE),void 0===h&&(h=null),void 0===d&&(d=g.a.TEXTURETYPE_UNSIGNED_INT),void 0===f&&(f=\"postprocess\"),void 0===_&&(_=!1),void 0===m&&(m=g.a.TEXTUREFORMAT_RGBA),this.width=-1,this.height=-1,this.nodeMaterialSource=null,this._outputTexture=null,this.autoClear=!0,this.alphaMode=g.a.ALPHA_DISABLE,this.animations=new Array,this.enablePixelPerfectMode=!1,this.forceFullscreenViewport=!0,this.scaleMode=g.a.SCALEMODE_FLOOR,this.alwaysForcePOT=!1,this._samples=1,this.adaptScaleToCurrentViewport=!1,this._reusable=!1,this._textures=new oi.a(2),this._currentRenderTextureInd=0,this._scaleRatio=new a.d(1,1),this._texelSize=a.d.Zero(),this.onActivateObservable=new o.c,this.onSizeChangedObservable=new o.c,this.onApplyObservable=new o.c,this.onBeforeRenderObservable=new o.c,this.onAfterRenderObservable=new o.c,this.name=e,null!=s?(this._camera=s,this._scene=s.getScene(),s.attachPostProcess(this),this._engine=this._scene.getEngine(),this._scene.postProcesses.push(this),this.uniqueId=this._scene.getUniqueId()):l&&(this._engine=l,this._engine.postProcesses.push(this)),this._options=r,this.renderTargetSamplingMode=c||g.a.TEXTURE_NEAREST_SAMPLINGMODE,this._reusable=u||!1,this._textureType=d,this._textureFormat=m,this._samplers=n||[],this._samplers.push(\"textureSampler\"),this._fragmentUrl=t,this._vertexUrl=f,this._parameters=i||[],this._parameters.push(\"scale\"),this._indexParameters=p,_||this.updateEffect(h)}return Object.defineProperty(e.prototype,\"samples\",{get:function(){return this._samples},set:function(e){var t=this;this._samples=Math.min(e,this._engine.getCaps().maxMSAASamples),this._textures.forEach((function(e){e.samples!==t._samples&&t._engine.updateRenderTargetTextureSampleCount(e,t._samples)}))},enumerable:!1,configurable:!0}),e.prototype.getEffectName=function(){return this._fragmentUrl},Object.defineProperty(e.prototype,\"onActivate\",{set:function(e){this._onActivateObserver&&this.onActivateObservable.remove(this._onActivateObserver),e&&(this._onActivateObserver=this.onActivateObservable.add(e))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"onSizeChanged\",{set:function(e){this._onSizeChangedObserver&&this.onSizeChangedObservable.remove(this._onSizeChangedObserver),this._onSizeChangedObserver=this.onSizeChangedObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"onApply\",{set:function(e){this._onApplyObserver&&this.onApplyObservable.remove(this._onApplyObserver),this._onApplyObserver=this.onApplyObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"onBeforeRender\",{set:function(e){this._onBeforeRenderObserver&&this.onBeforeRenderObservable.remove(this._onBeforeRenderObserver),this._onBeforeRenderObserver=this.onBeforeRenderObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"onAfterRender\",{set:function(e){this._onAfterRenderObserver&&this.onAfterRenderObservable.remove(this._onAfterRenderObserver),this._onAfterRenderObserver=this.onAfterRenderObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"inputTexture\",{get:function(){return this._textures.data[this._currentRenderTextureInd]},set:function(e){this._forcedOutputTexture=e},enumerable:!1,configurable:!0}),e.prototype.restoreDefaultInputTexture=function(){this._forcedOutputTexture=null},e.prototype.getCamera=function(){return this._camera},Object.defineProperty(e.prototype,\"texelSize\",{get:function(){return this._shareOutputWithPostProcess?this._shareOutputWithPostProcess.texelSize:(this._forcedOutputTexture&&this._texelSize.copyFromFloats(1/this._forcedOutputTexture.width,1/this._forcedOutputTexture.height),this._texelSize)},enumerable:!1,configurable:!0}),e.prototype.getClassName=function(){return\"PostProcess\"},e.prototype.getEngine=function(){return this._engine},e.prototype.getEffect=function(){return this._effect},e.prototype.shareOutputWith=function(e){return this._disposeTextures(),this._shareOutputWithPostProcess=e,this},e.prototype.useOwnOutput=function(){0==this._textures.length&&(this._textures=new oi.a(2)),this._shareOutputWithPostProcess=null},e.prototype.updateEffect=function(e,t,i,n,r,o,a,s){void 0===e&&(e=null),void 0===t&&(t=null),void 0===i&&(i=null),this._effect=this._engine.createEffect({vertex:null!=a?a:this._vertexUrl,fragment:null!=s?s:this._fragmentUrl},[\"position\"],t||this._parameters,i||this._samplers,null!==e?e:\"\",void 0,r,o,n||this._indexParameters)},e.prototype.isReusable=function(){return this._reusable},e.prototype.markTextureDirty=function(){this.width=-1},e.prototype.activate=function(e,t,i){var n=this;void 0===t&&(t=null);var r=(e=e||this._camera).getScene(),o=r.getEngine(),a=o.getCaps().maxTextureSize,s=(t?t.width:this._engine.getRenderWidth(!0))*this._options|0,c=(t?t.height:this._engine.getRenderHeight(!0))*this._options|0,l=e.parent;!l||l.leftCamera!=e&&l.rightCamera!=e||(s/=2);var u,h=this._options.width||s,d=this._options.height||c,f=this.renderTargetSamplingMode!==g.a.TEXTURE_NEAREST_LINEAR&&this.renderTargetSamplingMode!==g.a.TEXTURE_NEAREST_NEAREST&&this.renderTargetSamplingMode!==g.a.TEXTURE_LINEAR_LINEAR;if(!this._shareOutputWithPostProcess&&!this._forcedOutputTexture){if(this.adaptScaleToCurrentViewport){var p=o.currentViewport;p&&(h*=p.width,d*=p.height)}if((f||this.alwaysForcePOT)&&(this._options.width||(h=o.needPOTTextures?Se.a.GetExponentOfTwo(h,a,this.scaleMode):h),this._options.height||(d=o.needPOTTextures?Se.a.GetExponentOfTwo(d,a,this.scaleMode):d)),this.width!==h||this.height!==d){if(this._textures.length>0){for(var _=0;_0)for(var e=0;e0){var i=this._camera._getFirstPostProcess();i&&i.markTextureDirty()}this.onActivateObservable.clear(),this.onAfterRenderObservable.clear(),this.onApplyObservable.clear(),this.onBeforeRenderObservable.clear(),this.onSizeChangedObservable.clear()}},e.prototype.serialize=function(){var e=w.a.Serialize(this);return e.customType=\"BABYLON.\"+this.getClassName(),e.cameraId=this.getCamera().id,e.reusable=this._reusable,e.options=this._options,e.textureType=this._textureType,e},e.Parse=function(e,t,i){var n=c.a.GetClass(e.customType);if(!n||!n._Parse)return null;var r=t.getCameraByID(e.cameraId);return r?n._Parse(e,r,t,i):null},Object(h.c)([Object(w.c)()],e.prototype,\"uniqueId\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"name\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"width\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"height\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"renderTargetSamplingMode\",void 0),Object(h.c)([Object(w.f)()],e.prototype,\"clearColor\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"autoClear\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"alphaMode\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"alphaConstants\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"enablePixelPerfectMode\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"forceFullscreenViewport\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"scaleMode\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"alwaysForcePOT\",void 0),Object(h.c)([Object(w.c)(\"samples\")],e.prototype,\"_samples\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"adaptScaleToCurrentViewport\",void 0),e}();c.a.RegisteredTypes[\"BABYLON.PostProcess\"]=li;var ui=\"\\nvarying vec2 vUV;\\nuniform sampler2D textureSampler;\\nvoid main(void)\\n{\\ngl_FragColor=texture2D(textureSampler,vUV);\\n}\";ai.a.ShadersStore.passPixelShader=ui;var hi=\"\\nvarying vec2 vUV;\\nuniform samplerCube textureSampler;\\nvoid main(void)\\n{\\nvec2 uv=vUV*2.0-1.0;\\n#ifdef POSITIVEX\\ngl_FragColor=textureCube(textureSampler,vec3(1.001,uv.y,uv.x));\\n#endif\\n#ifdef NEGATIVEX\\ngl_FragColor=textureCube(textureSampler,vec3(-1.001,uv.y,uv.x));\\n#endif\\n#ifdef POSITIVEY\\ngl_FragColor=textureCube(textureSampler,vec3(uv.y,1.001,uv.x));\\n#endif\\n#ifdef NEGATIVEY\\ngl_FragColor=textureCube(textureSampler,vec3(uv.y,-1.001,uv.x));\\n#endif\\n#ifdef POSITIVEZ\\ngl_FragColor=textureCube(textureSampler,vec3(uv,1.001));\\n#endif\\n#ifdef NEGATIVEZ\\ngl_FragColor=textureCube(textureSampler,vec3(uv,-1.001));\\n#endif\\n}\";ai.a.ShadersStore.passCubePixelShader=hi;var di=function(e){function t(t,i,n,r,o,a,s,c){return void 0===n&&(n=null),void 0===s&&(s=g.a.TEXTURETYPE_UNSIGNED_INT),void 0===c&&(c=!1),e.call(this,t,\"pass\",null,null,i,n,r,o,a,void 0,s,void 0,null,c)||this}return Object(h.d)(t,e),t.prototype.getClassName=function(){return\"PassPostProcess\"},t._Parse=function(e,i,n,r){return w.a.Parse((function(){return new t(e.name,e.options,i,e.renderTargetSamplingMode,n.getEngine(),e.reusable)}),e,n,r)},t}(li);c.a.RegisteredTypes[\"BABYLON.PassPostProcess\"]=di;var fi=function(e){function t(t,i,n,r,o,a,s,c){void 0===n&&(n=null),void 0===s&&(s=g.a.TEXTURETYPE_UNSIGNED_INT),void 0===c&&(c=!1);var l=e.call(this,t,\"passCube\",null,null,i,n,r,o,a,\"#define POSITIVEX\",s,void 0,null,c)||this;return l._face=0,l}return Object(h.d)(t,e),Object.defineProperty(t.prototype,\"face\",{get:function(){return this._face},set:function(e){if(!(e<0||e>5))switch(this._face=e,this._face){case 0:this.updateEffect(\"#define POSITIVEX\");break;case 1:this.updateEffect(\"#define NEGATIVEX\");break;case 2:this.updateEffect(\"#define POSITIVEY\");break;case 3:this.updateEffect(\"#define NEGATIVEY\");break;case 4:this.updateEffect(\"#define POSITIVEZ\");break;case 5:this.updateEffect(\"#define NEGATIVEZ\")}},enumerable:!1,configurable:!0}),t.prototype.getClassName=function(){return\"PassCubePostProcess\"},t._Parse=function(e,i,n,r){return w.a.Parse((function(){return new t(e.name,e.options,i,e.renderTargetSamplingMode,n.getEngine(),e.reusable)}),e,n,r)},t}(li);Se.a._RescalePostProcessFactory=function(e){return new di(\"rescale\",1,null,g.a.TEXTURE_BILINEAR_SAMPLINGMODE,e,!1,g.a.TEXTURETYPE_UNSIGNED_INT)};var pi=\"\\nvarying vec2 vUV;\\nuniform sampler2D textureSampler;\\nuniform sampler2D leftSampler;\\nvoid main(void)\\n{\\nvec4 leftFrag=texture2D(leftSampler,vUV);\\nleftFrag=vec4(1.0,leftFrag.g,leftFrag.b,1.0);\\nvec4 rightFrag=texture2D(textureSampler,vUV);\\nrightFrag=vec4(rightFrag.r,1.0,1.0,1.0);\\ngl_FragColor=vec4(rightFrag.rgb*leftFrag.rgb,1.0);\\n}\";ai.a.ShadersStore.anaglyphPixelShader=pi;var _i=function(e){function t(t,i,n,r,o,a){var s=e.call(this,t,\"anaglyph\",null,[\"leftSampler\"],i,n[1],r,o,a)||this;return s._passedProcess=n[0]._rigPostProcess,s.onApplyObservable.add((function(e){e.setTextureFromPostProcess(\"leftSampler\",s._passedProcess)})),s}return Object(h.d)(t,e),t.prototype.getClassName=function(){return\"AnaglyphPostProcess\"},t}(li);c.a.RegisteredTypes[\"BABYLON.AnaglyphPostProcess\"]=_i,je.a._setStereoscopicAnaglyphRigMode=function(e){e._rigCameras[0]._rigPostProcess=new di(e.name+\"_passthru\",1,e._rigCameras[0]),e._rigCameras[1]._rigPostProcess=new _i(e.name+\"_anaglyph\",1,e._rigCameras)},B.a.AddNodeConstructor(\"AnaglyphArcRotateCamera\",(function(e,t,i){return function(){return new mi(e,0,0,1,a.e.Zero(),i.interaxial_distance,t)}}));var mi=function(e){function t(t,i,n,r,o,a,s){var c=e.call(this,t,i,n,r,o,s)||this;return c.interaxialDistance=a,c.setCameraRigMode(je.a.RIG_MODE_STEREOSCOPIC_ANAGLYPH,{interaxialDistance:a}),c}return Object(h.d)(t,e),t.prototype.getClassName=function(){return\"AnaglyphArcRotateCamera\"},t}(Bt);B.a.AddNodeConstructor(\"AnaglyphFreeCamera\",(function(e,t,i){return function(){return new gi(e,a.e.Zero(),i.interaxial_distance,t)}}));var gi=function(e){function t(t,i,n,r){var o=e.call(this,t,i,r)||this;return o.interaxialDistance=n,o.setCameraRigMode(je.a.RIG_MODE_STEREOSCOPIC_ANAGLYPH,{interaxialDistance:n}),o}return Object(h.d)(t,e),t.prototype.getClassName=function(){return\"AnaglyphFreeCamera\"},t}(wt);B.a.AddNodeConstructor(\"AnaglyphGamepadCamera\",(function(e,t,i){return function(){return new vi(e,a.e.Zero(),i.interaxial_distance,t)}}));var vi=function(e){function t(t,i,n,r){var o=e.call(this,t,i,r)||this;return o.interaxialDistance=n,o.setCameraRigMode(je.a.RIG_MODE_STEREOSCOPIC_ANAGLYPH,{interaxialDistance:n}),o}return Object(h.d)(t,e),t.prototype.getClassName=function(){return\"AnaglyphGamepadCamera\"},t}(ri);B.a.AddNodeConstructor(\"AnaglyphUniversalCamera\",(function(e,t,i){return function(){return new bi(e,a.e.Zero(),i.interaxial_distance,t)}}));var bi=function(e){function t(t,i,n,r){var o=e.call(this,t,i,r)||this;return o.interaxialDistance=n,o.setCameraRigMode(je.a.RIG_MODE_STEREOSCOPIC_ANAGLYPH,{interaxialDistance:n}),o}return Object(h.d)(t,e),t.prototype.getClassName=function(){return\"AnaglyphUniversalCamera\"},t}(ni),yi=i(58);je.a._setStereoscopicRigMode=function(e){var t=e.cameraRigMode===je.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL||e.cameraRigMode===je.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED,i=e.cameraRigMode===je.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED;e._rigCameras[i?1:0].viewport=new yi.a(0,0,t?.5:1,t?1:.5),e._rigCameras[i?0:1].viewport=new yi.a(t?.5:0,t?0:.5,t?.5:1,t?1:.5)},B.a.AddNodeConstructor(\"StereoscopicArcRotateCamera\",(function(e,t,i){return function(){return new Ti(e,0,0,1,a.e.Zero(),i.interaxial_distance,i.isStereoscopicSideBySide,t)}}));var Ti=function(e){function t(t,i,n,r,o,a,s,c){var l=e.call(this,t,i,n,r,o,c)||this;return l.interaxialDistance=a,l.isStereoscopicSideBySide=s,l.setCameraRigMode(s?je.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:je.a.RIG_MODE_STEREOSCOPIC_OVERUNDER,{interaxialDistance:a}),l}return Object(h.d)(t,e),t.prototype.getClassName=function(){return\"StereoscopicArcRotateCamera\"},t}(Bt);B.a.AddNodeConstructor(\"StereoscopicFreeCamera\",(function(e,t,i){return function(){return new Ei(e,a.e.Zero(),i.interaxial_distance,i.isStereoscopicSideBySide,t)}}));var Ei=function(e){function t(t,i,n,r,o){var a=e.call(this,t,i,o)||this;return a.interaxialDistance=n,a.isStereoscopicSideBySide=r,a.setCameraRigMode(r?je.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:je.a.RIG_MODE_STEREOSCOPIC_OVERUNDER,{interaxialDistance:n}),a}return Object(h.d)(t,e),t.prototype.getClassName=function(){return\"StereoscopicFreeCamera\"},t}(wt);B.a.AddNodeConstructor(\"StereoscopicGamepadCamera\",(function(e,t,i){return function(){return new Si(e,a.e.Zero(),i.interaxial_distance,i.isStereoscopicSideBySide,t)}}));var Si=function(e){function t(t,i,n,r,o){var a=e.call(this,t,i,o)||this;return a.interaxialDistance=n,a.isStereoscopicSideBySide=r,a.setCameraRigMode(r?je.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:je.a.RIG_MODE_STEREOSCOPIC_OVERUNDER,{interaxialDistance:n}),a}return Object(h.d)(t,e),t.prototype.getClassName=function(){return\"StereoscopicGamepadCamera\"},t}(ri);B.a.AddNodeConstructor(\"StereoscopicFreeCamera\",(function(e,t,i){return function(){return new Ai(e,a.e.Zero(),i.interaxial_distance,i.isStereoscopicSideBySide,t)}}));var Ai=function(e){function t(t,i,n,r,o){var a=e.call(this,t,i,o)||this;return a.interaxialDistance=n,a.isStereoscopicSideBySide=r,a.setCameraRigMode(r?je.a.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:je.a.RIG_MODE_STEREOSCOPIC_OVERUNDER,{interaxialDistance:n}),a}return Object(h.d)(t,e),t.prototype.getClassName=function(){return\"StereoscopicUniversalCamera\"},t}(ni);B.a.AddNodeConstructor(\"VirtualJoysticksCamera\",(function(e,t){return function(){return new Pi(e,a.e.Zero(),t)}}));var Pi=function(e){function t(t,i,n){var r=e.call(this,t,i,n)||this;return r.inputs.addVirtualJoystick(),r}return Object(h.d)(t,e),t.prototype.getClassName=function(){return\"VirtualJoysticksCamera\"},t}(wt),Ci=function(){function e(){this.compensateDistortion=!0,this.multiviewEnabled=!1}return Object.defineProperty(e.prototype,\"aspectRatio\",{get:function(){return this.hResolution/(2*this.vResolution)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"aspectRatioFov\",{get:function(){return 2*Math.atan(this.postProcessScaleFactor*this.vScreenSize/(2*this.eyeToScreenDistance))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"leftHMatrix\",{get:function(){var e=4*(this.hScreenSize/4-this.lensSeparationDistance/2)/this.hScreenSize;return a.a.Translation(e,0,0)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"rightHMatrix\",{get:function(){var e=4*(this.hScreenSize/4-this.lensSeparationDistance/2)/this.hScreenSize;return a.a.Translation(-e,0,0)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"leftPreViewMatrix\",{get:function(){return a.a.Translation(.5*this.interpupillaryDistance,0,0)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"rightPreViewMatrix\",{get:function(){return a.a.Translation(-.5*this.interpupillaryDistance,0,0)},enumerable:!1,configurable:!0}),e.GetDefault=function(){var t=new e;return t.hResolution=1280,t.vResolution=800,t.hScreenSize=.149759993,t.vScreenSize=.0935999975,t.vScreenCenter=.0467999987,t.eyeToScreenDistance=.0410000011,t.lensSeparationDistance=.063500002,t.interpupillaryDistance=.064000003,t.distortionK=[1,.219999999,.239999995,0],t.chromaAbCorrection=[.995999992,-.00400000019,1.01400006,0],t.postProcessScaleFactor=1.714605507808412,t.lensCenterOffset=.151976421,t},e}(),Ri=\"\\nvarying vec2 vUV;\\nuniform sampler2D textureSampler;\\nuniform vec2 LensCenter;\\nuniform vec2 Scale;\\nuniform vec2 ScaleIn;\\nuniform vec4 HmdWarpParam;\\nvec2 HmdWarp(vec2 in01) {\\nvec2 theta=(in01-LensCenter)*ScaleIn;\\nfloat rSq=theta.x*theta.x+theta.y*theta.y;\\nvec2 rvector=theta*(HmdWarpParam.x+HmdWarpParam.y*rSq+HmdWarpParam.z*rSq*rSq+HmdWarpParam.w*rSq*rSq*rSq);\\nreturn LensCenter+Scale*rvector;\\n}\\nvoid main(void)\\n{\\nvec2 tc=HmdWarp(vUV);\\nif (tc.x <0.0 || tc.x>1.0 || tc.y<0.0 || tc.y>1.0)\\ngl_FragColor=vec4(0.0,0.0,0.0,0.0);\\nelse{\\ngl_FragColor=texture2D(textureSampler,tc);\\n}\\n}\";ai.a.ShadersStore.vrDistortionCorrectionPixelShader=Ri;var xi=function(e){function t(t,i,n,r){var o=e.call(this,t,\"vrDistortionCorrection\",[\"LensCenter\",\"Scale\",\"ScaleIn\",\"HmdWarpParam\"],null,r.postProcessScaleFactor,i,Ke.a.BILINEAR_SAMPLINGMODE)||this;return o._isRightEye=n,o._distortionFactors=r.distortionK,o._postProcessScaleFactor=r.postProcessScaleFactor,o._lensCenterOffset=r.lensCenterOffset,o.adaptScaleToCurrentViewport=!0,o.onSizeChangedObservable.add((function(){o._scaleIn=new a.d(2,2/o.aspectRatio),o._scaleFactor=new a.d(1/o._postProcessScaleFactor*.5,1/o._postProcessScaleFactor*.5*o.aspectRatio),o._lensCenter=new a.d(o._isRightEye?.5-.5*o._lensCenterOffset:.5+.5*o._lensCenterOffset,.5)})),o.onApplyObservable.add((function(e){e.setFloat2(\"LensCenter\",o._lensCenter.x,o._lensCenter.y),e.setFloat2(\"Scale\",o._scaleFactor.x,o._scaleFactor.y),e.setFloat2(\"ScaleIn\",o._scaleIn.x,o._scaleIn.y),e.setFloat4(\"HmdWarpParam\",o._distortionFactors[0],o._distortionFactors[1],o._distortionFactors[2],o._distortionFactors[3])})),o}return Object(h.d)(t,e),t.prototype.getClassName=function(){return\"VRDistortionCorrectionPostProcess\"},t}(li),Oi=\"precision mediump sampler2DArray;\\nvarying vec2 vUV;\\nuniform sampler2DArray multiviewSampler;\\nuniform int imageIndex;\\nvoid main(void)\\n{\\ngl_FragColor=texture(multiviewSampler,vec3(vUV,imageIndex));\\n}\";ai.a.ShadersStore.vrMultiviewToSingleviewPixelShader=Oi;var Mi=i(85),Ii=i(95),Di=i(96);qe.a.prototype.createRenderTargetCubeTexture=function(e,t){var i=Object(h.a)({generateMipMaps:!0,generateDepthBuffer:!0,generateStencilBuffer:!1,type:g.a.TEXTURETYPE_UNSIGNED_INT,samplingMode:g.a.TEXTURE_TRILINEAR_SAMPLINGMODE,format:g.a.TEXTUREFORMAT_RGBA},t);i.generateStencilBuffer=i.generateDepthBuffer&&i.generateStencilBuffer,(i.type!==g.a.TEXTURETYPE_FLOAT||this._caps.textureFloatLinearFiltering)&&(i.type!==g.a.TEXTURETYPE_HALF_FLOAT||this._caps.textureHalfFloatLinearFiltering)||(i.samplingMode=g.a.TEXTURE_NEAREST_SAMPLINGMODE);var n=this._gl,r=new Qe.a(this,Qe.b.RenderTarget);this._bindTextureDirectly(n.TEXTURE_CUBE_MAP,r,!0);var o=this._getSamplingParameters(i.samplingMode,i.generateMipMaps);i.type!==g.a.TEXTURETYPE_FLOAT||this._caps.textureFloat||(i.type=g.a.TEXTURETYPE_UNSIGNED_INT,m.a.Warn(\"Float textures are not supported. Cube render target forced to TEXTURETYPE_UNESIGNED_BYTE type\")),n.texParameteri(n.TEXTURE_CUBE_MAP,n.TEXTURE_MAG_FILTER,o.mag),n.texParameteri(n.TEXTURE_CUBE_MAP,n.TEXTURE_MIN_FILTER,o.min),n.texParameteri(n.TEXTURE_CUBE_MAP,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(n.TEXTURE_CUBE_MAP,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE);for(var a=0;a<6;a++)n.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+a,0,this._getRGBABufferInternalSizedFormat(i.type,i.format),e,e,0,this._getInternalFormat(i.format),this._getWebGLTextureType(i.type),null);var s=n.createFramebuffer();return this._bindUnboundFramebuffer(s),r._depthStencilBuffer=this._setupFramebufferDepthAttachments(i.generateStencilBuffer,i.generateDepthBuffer,e,e),i.generateMipMaps&&n.generateMipmap(n.TEXTURE_CUBE_MAP),this._bindTextureDirectly(n.TEXTURE_CUBE_MAP,null),this._bindUnboundFramebuffer(null),r._framebuffer=s,r.width=e,r.height=e,r.isReady=!0,r.isCube=!0,r.samples=1,r.generateMipMaps=i.generateMipMaps,r.samplingMode=i.samplingMode,r.type=i.type,r.format=i.format,r._generateDepthBuffer=i.generateDepthBuffer,r._generateStencilBuffer=i.generateStencilBuffer,this._internalTexturesCache.push(r),r};var Ni=function(e){function t(t,i,n,r,s,c,l,u,h,d,f,p,_){void 0===s&&(s=!0),void 0===c&&(c=g.a.TEXTURETYPE_UNSIGNED_INT),void 0===l&&(l=!1),void 0===u&&(u=Ke.a.TRILINEAR_SAMPLINGMODE),void 0===h&&(h=!0),void 0===d&&(d=!1),void 0===f&&(f=!1),void 0===p&&(p=g.a.TEXTUREFORMAT_RGBA),void 0===_&&(_=!1);var m=e.call(this,null,n,!r)||this;return m.renderParticles=!0,m.renderSprites=!1,m.ignoreCameraViewport=!1,m.onBeforeBindObservable=new o.c,m.onAfterUnbindObservable=new o.c,m.onBeforeRenderObservable=new o.c,m.onAfterRenderObservable=new o.c,m.onClearObservable=new o.c,m.onResizeObservable=new o.c,m._currentRefreshId=-1,m._refreshRate=1,m._samples=1,m.boundingBoxPosition=a.e.Zero(),(n=m.getScene())?(m._coordinatesMode=Ke.a.PROJECTION_MODE,m.renderList=new Array,m.name=t,m.isRenderTarget=!0,m._initialSizeParameter=i,m._processSizeParameter(i),m._resizeObserver=m.getScene().getEngine().onResizeObservable.add((function(){})),m._generateMipMaps=!!r,m._doNotChangeAspectRatio=s,m._renderingManager=new Di.b(n),m._renderingManager._useSceneAutoClearSetup=!0,f||(m._renderTargetOptions={generateMipMaps:r,type:c,format:p,samplingMode:u,generateDepthBuffer:h,generateStencilBuffer:d},u===Ke.a.NEAREST_SAMPLINGMODE&&(m.wrapU=Ke.a.CLAMP_ADDRESSMODE,m.wrapV=Ke.a.CLAMP_ADDRESSMODE),_||(l?(m._texture=n.getEngine().createRenderTargetCubeTexture(m.getRenderSize(),m._renderTargetOptions),m.coordinatesMode=Ke.a.INVCUBIC_MODE,m._textureMatrix=a.a.Identity()):m._texture=n.getEngine().createRenderTargetTexture(m._size,m._renderTargetOptions))),m):m}return Object(h.d)(t,e),Object.defineProperty(t.prototype,\"renderList\",{get:function(){return this._renderList},set:function(e){this._renderList=e,this._renderList&&this._hookArray(this._renderList)},enumerable:!1,configurable:!0}),t.prototype._hookArray=function(e){var t=this,i=e.push;e.push=function(){for(var n=[],r=0;r0&&(this._postProcesses[0].autoClear=!1))}},t.prototype._shouldRender=function(){return-1===this._currentRefreshId||this.refreshRate===this._currentRefreshId?(this._currentRefreshId=1,!0):(this._currentRefreshId++,!1)},t.prototype.getRenderSize=function(){return this.getRenderWidth()},t.prototype.getRenderWidth=function(){return this._size.width?this._size.width:this._size},t.prototype.getRenderHeight=function(){return this._size.width?this._size.height:this._size},t.prototype.getRenderLayers=function(){var e=this._size.layers;return e||0},Object.defineProperty(t.prototype,\"canRescale\",{get:function(){return!0},enumerable:!1,configurable:!0}),t.prototype.scale=function(e){var t=Math.max(1,this.getRenderSize()*e);this.resize(t)},t.prototype.getReflectionTextureMatrix=function(){return this.isCube?this._textureMatrix:e.prototype.getReflectionTextureMatrix.call(this)},t.prototype.resize=function(e){var t=this.isCube;this.releaseInternalTexture();var i=this.getScene();i&&(this._processSizeParameter(e),this._texture=t?i.getEngine().createRenderTargetCubeTexture(this.getRenderSize(),this._renderTargetOptions):i.getEngine().createRenderTargetTexture(this._size,this._renderTargetOptions),this.onResizeObservable.hasObservers()&&this.onResizeObservable.notifyObservers(this))},t.prototype.render=function(e,t){if(void 0===e&&(e=!1),void 0===t&&(t=!1),s=this.getScene()){var i,n=s.getEngine();if(void 0!==this.useCameraPostProcesses&&(e=this.useCameraPostProcesses),this._waitingRenderList){this.renderList=[];for(var r=0;r1||this.activeCamera&&this.activeCamera!==s.activeCamera)&&s.setTransformMatrix(s.activeCamera.getViewMatrix(),s.activeCamera.getProjectionMatrix(!0)),n.setViewport(s.activeCamera.viewport)),s.resetCachedMaterial()}},t.prototype._bestReflectionRenderTargetDimension=function(e,t){var i=e*t,n=Se.a.NearestPOT(i+16384/(128+i));return Math.min(Se.a.FloorPOT(e),n)},t.prototype._prepareRenderingManager=function(e,t,i,n){var r=this.getScene();if(r){this._renderingManager.reset();for(var o=r.getRenderId(),a=0;a=0&&this._renderingManager.dispatchParticles(f))}}},t.prototype._bindFrameBuffer=function(e,t){void 0===e&&(e=0),void 0===t&&(t=0);var i=this.getScene();if(i){var n=i.getEngine();this._texture&&n.bindFramebuffer(this._texture,this.isCube?e:void 0,void 0,void 0,this.ignoreCameraViewport,0,t)}},t.prototype.unbindFrameBuffer=function(e,t){var i=this;this._texture&&e.unBindFramebuffer(this._texture,this.isCube,(function(){i.onAfterRenderObservable.notifyObservers(t)}))},t.prototype.renderToTarget=function(e,t,i,n,r){void 0===n&&(n=0),void 0===r&&(r=null);var o=this.getScene();if(o){var a=o.getEngine();if(this._texture){this._postProcessManager?this._postProcessManager._prepareFrame(this._texture,this._postProcesses):t&&o.postProcessManager._prepareFrame(this._texture)||this._bindFrameBuffer(e,n),this.is2DArray?this.onBeforeRenderObservable.notifyObservers(n):this.onBeforeRenderObservable.notifyObservers(e);var s=null,c=this.renderList?this.renderList:o.getActiveMeshes().data,l=this.renderList?this.renderList.length:o.getActiveMeshes().length;this.getCustomRenderList&&(s=this.getCustomRenderList(this.is2DArray?n:e,c,l)),s?this._prepareRenderingManager(s,s.length,r,!1):(this._defaultRenderListPrepared||(this._prepareRenderingManager(c,l,r,!this.renderList),this._defaultRenderListPrepared=!0),s=c),this.onClearObservable.hasObservers()?this.onClearObservable.notifyObservers(a):a.clear(this.clearColor||o.clearColor,!0,!0,!0),this._doNotChangeAspectRatio||o.updateTransformMatrix(!0);for(var u=0,h=o._beforeRenderTargetDrawStage;u=0&&t.customRenderTargets.splice(i,1);for(var n=0,r=t.cameras;n=0&&o.customRenderTargets.splice(i,1)}this.depthStencilTexture&&this.getScene().getEngine()._releaseTexture(this.depthStencilTexture),e.prototype.dispose.call(this)}},t.prototype._rebuild=function(){this.refreshRate===t.REFRESHRATE_RENDER_ONCE&&(this.refreshRate=t.REFRESHRATE_RENDER_ONCE),this._postProcessManager&&this._postProcessManager._rebuild()},t.prototype.freeRenderingGroups=function(){this._renderingManager&&this._renderingManager.freeRenderingGroups()},t.prototype.getViewCount=function(){return 1},t.REFRESHRATE_RENDER_ONCE=0,t.REFRESHRATE_RENDER_ONEVERYFRAME=1,t.REFRESHRATE_RENDER_ONEVERYTWOFRAMES=2,t}(Ke.a);Ke.a._CreateRenderTargetTexture=function(e,t,i,n){return new Ni(e,t,i,n)};var Li=function(e){function t(t,i){void 0===i&&(i=512);var n=e.call(this,\"multiview rtt\",i,t,!1,!0,Qe.b.Unknown,!1,void 0,!1,!1,!0,void 0,!0)||this,r=t.getEngine().createMultiviewRenderTargetTexture(n.getRenderWidth(),n.getRenderHeight());return r.isMultiview=!0,r.format=g.a.TEXTUREFORMAT_RGBA,n._texture=r,n.samples=n._getEngine().getCaps().maxSamples||n.samples,n}return Object(h.d)(t,e),t.prototype._bindFrameBuffer=function(e){void 0===e&&(e=0),this._texture&&this.getScene().getEngine().bindMultiviewFramebuffer(this._texture)},t.prototype.getViewCount=function(){return 2},t}(Ni),wi=i(90);Se.a.prototype.createMultiviewRenderTargetTexture=function(e,t){var i=this._gl;if(!this.getCaps().multiview)throw\"Multiview is not supported\";var n=new Qe.a(this,Qe.b.Unknown,!0);return n.width=e,n.height=t,n._framebuffer=i.createFramebuffer(),n._colorTextureArray=i.createTexture(),i.bindTexture(i.TEXTURE_2D_ARRAY,n._colorTextureArray),i.texStorage3D(i.TEXTURE_2D_ARRAY,1,i.RGBA8,e,t,2),n._depthStencilTextureArray=i.createTexture(),i.bindTexture(i.TEXTURE_2D_ARRAY,n._depthStencilTextureArray),i.texStorage3D(i.TEXTURE_2D_ARRAY,1,i.DEPTH32F_STENCIL8,e,t,2),n.isReady=!0,n},Se.a.prototype.bindMultiviewFramebuffer=function(e){var t=this._gl,i=this.getCaps().oculusMultiview||this.getCaps().multiview;if(this.bindFramebuffer(e,void 0,void 0,void 0,!0),t.bindFramebuffer(t.DRAW_FRAMEBUFFER,e._framebuffer),!e._colorTextureArray||!e._depthStencilTextureArray)throw\"Invalid multiview frame buffer\";this.getCaps().oculusMultiview?(i.framebufferTextureMultisampleMultiviewOVR(t.DRAW_FRAMEBUFFER,t.COLOR_ATTACHMENT0,e._colorTextureArray,0,e.samples,0,2),i.framebufferTextureMultisampleMultiviewOVR(t.DRAW_FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,e._depthStencilTextureArray,0,e.samples,0,2)):(i.framebufferTextureMultiviewOVR(t.DRAW_FRAMEBUFFER,t.COLOR_ATTACHMENT0,e._colorTextureArray,0,0,2),i.framebufferTextureMultiviewOVR(t.DRAW_FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,e._depthStencilTextureArray,0,0,2))},je.a.prototype._useMultiviewToSingleView=!1,je.a.prototype._multiviewTexture=null,je.a.prototype._resizeOrCreateMultiviewTexture=function(e,t){this._multiviewTexture?this._multiviewTexture.getRenderWidth()==e&&this._multiviewTexture.getRenderHeight()==t||(this._multiviewTexture.dispose(),this._multiviewTexture=new Li(this.getScene(),{width:e,height:t})):this._multiviewTexture=new Li(this.getScene(),{width:e,height:t})},Q.a.prototype._transformMatrixR=a.a.Zero(),Q.a.prototype._multiviewSceneUbo=null,Q.a.prototype._createMultiviewUbo=function(){this._multiviewSceneUbo=new Mi.a(this.getEngine(),void 0,!0),this._multiviewSceneUbo.addUniform(\"viewProjection\",16),this._multiviewSceneUbo.addUniform(\"viewProjectionR\",16),this._multiviewSceneUbo.addUniform(\"view\",16)},Q.a.prototype._updateMultiviewUbo=function(e,t){e&&t&&e.multiplyToRef(t,this._transformMatrixR),e&&t&&(e.multiplyToRef(t,a.c.Matrix[0]),wi.a.GetRightPlaneToRef(a.c.Matrix[0],this._frustumPlanes[3])),this._multiviewSceneUbo&&(this._multiviewSceneUbo.updateMatrix(\"viewProjection\",this.getTransformMatrix()),this._multiviewSceneUbo.updateMatrix(\"viewProjectionR\",this._transformMatrixR),this._multiviewSceneUbo.updateMatrix(\"view\",this._viewMatrix),this._multiviewSceneUbo.update())},Q.a.prototype._renderMultiviewToSingleView=function(e){e._resizeOrCreateMultiviewTexture(e._rigPostProcess&&e._rigPostProcess&&e._rigPostProcess.width>0?e._rigPostProcess.width:this.getEngine().getRenderWidth(!0),e._rigPostProcess&&e._rigPostProcess&&e._rigPostProcess.height>0?e._rigPostProcess.height:this.getEngine().getRenderHeight(!0)),this._multiviewSceneUbo||this._createMultiviewUbo(),e.outputRenderTarget=e._multiviewTexture,this._renderForCamera(e),e.outputRenderTarget=null;for(var t=0;t=2&&e.onControllersAttachedObservable.notifyObservers(e.controllers)}}}))},t}(wt),Gi=function(e){function t(t){var i=e.call(this,t)||this;return i.onTriggerStateChangedObservable=new o.c,i.onMainButtonStateChangedObservable=new o.c,i.onSecondaryButtonStateChangedObservable=new o.c,i.onPadStateChangedObservable=new o.c,i.onPadValuesChangedObservable=new o.c,i.pad={x:0,y:0},i._changes={pressChanged:!1,touchChanged:!1,valueChanged:!1,changed:!1},i._buttons=new Array(t.buttons.length),i.hand=t.hand,i}return Object(h.d)(t,e),t.prototype.onButtonStateChange=function(e){this._onButtonStateChange=e},Object.defineProperty(t.prototype,\"defaultModel\",{get:function(){return this._defaultModel},enumerable:!1,configurable:!0}),t.prototype.update=function(){e.prototype.update.call(this);for(var t=0;t\\n#include\\n#include\\nvoid main(void)\\n{\\nvec4 result=texture2D(textureSampler,vUV);\\n#ifdef IMAGEPROCESSING\\n#ifndef FROMLINEARSPACE\\n\\nresult.rgb=toLinearSpace(result.rgb);\\n#endif\\nresult=applyImageProcessing(result);\\n#else\\n\\n#ifdef FROMLINEARSPACE\\nresult=applyImageProcessing(result);\\n#endif\\n#endif\\ngl_FragColor=result;\\n}\");ai.a.ShadersStore.imageProcessingPixelShader=Xi;var Yi=function(e){function t(t,i,n,r,o,a,s,c){void 0===n&&(n=null),void 0===s&&(s=g.a.TEXTURETYPE_UNSIGNED_INT);var l=e.call(this,t,\"imageProcessing\",[],[],i,n,r,o,a,null,s,\"postprocess\",null,!0)||this;return l._fromLinearSpace=!0,l._defines={IMAGEPROCESSING:!1,VIGNETTE:!1,VIGNETTEBLENDMODEMULTIPLY:!1,VIGNETTEBLENDMODEOPAQUE:!1,TONEMAPPING:!1,TONEMAPPING_ACES:!1,CONTRAST:!1,COLORCURVES:!1,COLORGRADING:!1,COLORGRADING3D:!1,FROMLINEARSPACE:!1,SAMPLER3DGREENDEPTH:!1,SAMPLER3DBGRMAP:!1,IMAGEPROCESSINGPOSTPROCESS:!1,EXPOSURE:!1},c?(c.applyByPostProcess=!0,l._attachImageProcessingConfiguration(c,!0),l.fromLinearSpace=!1):(l._attachImageProcessingConfiguration(null,!0),l.imageProcessingConfiguration.applyByPostProcess=!0),l.onApply=function(e){l.imageProcessingConfiguration.bind(e,l.aspectRatio)},l}return Object(h.d)(t,e),Object.defineProperty(t.prototype,\"imageProcessingConfiguration\",{get:function(){return this._imageProcessingConfiguration},set:function(e){e.applyByPostProcess=!0,this._attachImageProcessingConfiguration(e)},enumerable:!1,configurable:!0}),t.prototype._attachImageProcessingConfiguration=function(e,t){var i=this;if(void 0===t&&(t=!1),e!==this._imageProcessingConfiguration){if(this._imageProcessingConfiguration&&this._imageProcessingObserver&&this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),e)this._imageProcessingConfiguration=e;else{var n=null,r=this.getEngine(),o=this.getCamera();if(o)n=o.getScene();else if(r&&r.scenes){var a=r.scenes;n=a[a.length-1]}else n=x.a.LastCreatedScene;this._imageProcessingConfiguration=n?n.imageProcessingConfiguration:new ji.a}this._imageProcessingConfiguration&&(this._imageProcessingObserver=this._imageProcessingConfiguration.onUpdateParameters.add((function(){i._updateParameters()}))),t||this._updateParameters()}},Object.defineProperty(t.prototype,\"isSupported\",{get:function(){var e=this.getEffect();return!e||e.isSupported},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"colorCurves\",{get:function(){return this.imageProcessingConfiguration.colorCurves},set:function(e){this.imageProcessingConfiguration.colorCurves=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"colorCurvesEnabled\",{get:function(){return this.imageProcessingConfiguration.colorCurvesEnabled},set:function(e){this.imageProcessingConfiguration.colorCurvesEnabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"colorGradingTexture\",{get:function(){return this.imageProcessingConfiguration.colorGradingTexture},set:function(e){this.imageProcessingConfiguration.colorGradingTexture=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"colorGradingEnabled\",{get:function(){return this.imageProcessingConfiguration.colorGradingEnabled},set:function(e){this.imageProcessingConfiguration.colorGradingEnabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"exposure\",{get:function(){return this.imageProcessingConfiguration.exposure},set:function(e){this.imageProcessingConfiguration.exposure=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"toneMappingEnabled\",{get:function(){return this._imageProcessingConfiguration.toneMappingEnabled},set:function(e){this._imageProcessingConfiguration.toneMappingEnabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"toneMappingType\",{get:function(){return this._imageProcessingConfiguration.toneMappingType},set:function(e){this._imageProcessingConfiguration.toneMappingType=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"contrast\",{get:function(){return this.imageProcessingConfiguration.contrast},set:function(e){this.imageProcessingConfiguration.contrast=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"vignetteStretch\",{get:function(){return this.imageProcessingConfiguration.vignetteStretch},set:function(e){this.imageProcessingConfiguration.vignetteStretch=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"vignetteCentreX\",{get:function(){return this.imageProcessingConfiguration.vignetteCentreX},set:function(e){this.imageProcessingConfiguration.vignetteCentreX=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"vignetteCentreY\",{get:function(){return this.imageProcessingConfiguration.vignetteCentreY},set:function(e){this.imageProcessingConfiguration.vignetteCentreY=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"vignetteWeight\",{get:function(){return this.imageProcessingConfiguration.vignetteWeight},set:function(e){this.imageProcessingConfiguration.vignetteWeight=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"vignetteColor\",{get:function(){return this.imageProcessingConfiguration.vignetteColor},set:function(e){this.imageProcessingConfiguration.vignetteColor=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"vignetteCameraFov\",{get:function(){return this.imageProcessingConfiguration.vignetteCameraFov},set:function(e){this.imageProcessingConfiguration.vignetteCameraFov=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"vignetteBlendMode\",{get:function(){return this.imageProcessingConfiguration.vignetteBlendMode},set:function(e){this.imageProcessingConfiguration.vignetteBlendMode=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"vignetteEnabled\",{get:function(){return this.imageProcessingConfiguration.vignetteEnabled},set:function(e){this.imageProcessingConfiguration.vignetteEnabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"fromLinearSpace\",{get:function(){return this._fromLinearSpace},set:function(e){this._fromLinearSpace!==e&&(this._fromLinearSpace=e,this._updateParameters())},enumerable:!1,configurable:!0}),t.prototype.getClassName=function(){return\"ImageProcessingPostProcess\"},t.prototype._updateParameters=function(){this._defines.FROMLINEARSPACE=this._fromLinearSpace,this.imageProcessingConfiguration.prepareDefines(this._defines,!0);var e=\"\";for(var t in this._defines)this._defines[t]&&(e+=\"#define \"+t+\";\\r\\n\");var i=[\"textureSampler\"],n=[\"scale\"];ji.a&&(ji.a.PrepareSamplers(i,this._defines),ji.a.PrepareUniforms(n,this._defines)),this.updateEffect(e,n,i)},t.prototype.dispose=function(t){e.prototype.dispose.call(this,t),this._imageProcessingConfiguration&&this._imageProcessingObserver&&this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),this._imageProcessingConfiguration&&(this.imageProcessingConfiguration.applyByPostProcess=!1)},Object(h.c)([Object(w.c)()],t.prototype,\"_fromLinearSpace\",void 0),t}(li),Ki=i(16),Qi=i(4);be.a._GroundMeshParser=function(e,t){return qi.Parse(e,t)};var qi=function(e){function t(t,i){var n=e.call(this,t,i)||this;return n.generateOctree=!1,n}return Object(h.d)(t,e),t.prototype.getClassName=function(){return\"GroundMesh\"},Object.defineProperty(t.prototype,\"subdivisions\",{get:function(){return Math.min(this._subdivisionsX,this._subdivisionsY)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"subdivisionsX\",{get:function(){return this._subdivisionsX},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"subdivisionsY\",{get:function(){return this._subdivisionsY},enumerable:!1,configurable:!0}),t.prototype.optimize=function(e,t){void 0===t&&(t=32),this._subdivisionsX=e,this._subdivisionsY=e,this.subdivide(e);this.createOrUpdateSubmeshesOctree&&this.createOrUpdateSubmeshesOctree(t)},t.prototype.getHeightAtCoordinates=function(e,t){var i=this.getWorldMatrix(),n=a.c.Matrix[5];i.invertToRef(n);var r=a.c.Vector3[8];if(a.e.TransformCoordinatesFromFloatsToRef(e,0,t,n,r),e=r.x,t=r.z,ethis._maxX||tthis._maxZ)return this.position.y;this._heightQuads&&0!=this._heightQuads.length||(this._initHeightQuads(),this._computeHeightQuads());var o=this._getFacetAt(e,t),s=-(o.x*e+o.z*t+o.w)/o.y;return a.e.TransformCoordinatesFromFloatsToRef(0,s,0,i,r),r.y},t.prototype.getNormalAtCoordinates=function(e,t){var i=new a.e(0,1,0);return this.getNormalAtCoordinatesToRef(e,t,i),i},t.prototype.getNormalAtCoordinatesToRef=function(e,t,i){var n=this.getWorldMatrix(),r=a.c.Matrix[5];n.invertToRef(r);var o=a.c.Vector3[8];if(a.e.TransformCoordinatesFromFloatsToRef(e,0,t,r,o),e=o.x,t=o.z,ethis._maxX||tthis._maxZ)return this;this._heightQuads&&0!=this._heightQuads.length||(this._initHeightQuads(),this._computeHeightQuads());var s=this._getFacetAt(e,t);return a.e.TransformNormalFromFloatsToRef(s.x,s.y,s.z,n,i),this},t.prototype.updateCoordinateHeights=function(){return this._heightQuads&&0!=this._heightQuads.length||this._initHeightQuads(),this._computeHeightQuads(),this},t.prototype._getFacetAt=function(e,t){var i=Math.floor((e+this._maxX)*this._subdivisionsX/this._width),n=Math.floor(-(t+this._maxZ)*this._subdivisionsY/this._height+this._subdivisionsY),r=this._heightQuads[n*this._subdivisionsX+i];return te.maxHeight){h=!0;var d=e.maxHeight;e.maxHeight=e.minHeight,e.minHeight=d}for(t=0;t<=e.subdivisions;t++)for(i=0;i<=e.subdivisions;i++){var f=new a.e(i*e.width/e.subdivisions-e.width/2,0,(e.subdivisions-t)*e.height/e.subdivisions-e.height/2),p=4*(((f.x+e.width/2)/e.width*(e.bufferWidth-1)|0)+((1-(f.z+e.height/2)/e.height)*(e.bufferHeight-1)|0)*e.bufferWidth),_=e.buffer[p]/255,m=e.buffer[p+1]/255,g=e.buffer[p+2]/255,v=e.buffer[p+3]/255;h&&(_=1-_,m=1-m,g=1-g);var b=_*l.r+m*l.g+g*l.b;f.y=v>=u?e.minHeight+(e.maxHeight-e.minHeight)*b:e.minHeight-Nt.a,r.push(f.x,f.y,f.z),o.push(0,0,0),c.push(i/e.subdivisions,1-t/e.subdivisions)}for(t=0;t=e.minHeight,P=r[3*T+1]>=e.minHeight,C=r[3*E+1]>=e.minHeight;A&&P&&C&&(n.push(y),n.push(T),n.push(E)),r[3*S+1]>=e.minHeight&&A&&C&&(n.push(S),n.push(y),n.push(E))}Ki.a.ComputeNormals(r,n,o);var R=new Ki.a;return R.indices=n,R.positions=r,R.normals=o,R.uvs=c,R},be.a.CreateGround=function(e,t,i,n,r,o){var a={width:t,height:i,subdivisions:n,updatable:o};return Ji.CreateGround(e,a,r)},be.a.CreateTiledGround=function(e,t,i,n,r,o,a,s,c){var l={xmin:t,zmin:i,xmax:n,zmax:r,subdivisions:o,precision:a,updatable:c};return Ji.CreateTiledGround(e,l,s)},be.a.CreateGroundFromHeightMap=function(e,t,i,n,r,o,a,s,c,l,u){var h={width:i,height:n,subdivisions:r,minHeight:o,maxHeight:a,updatable:c,onReady:l,alphaFilter:u};return Ji.CreateGroundFromHeightMap(e,t,h,s)};var Ji=function(){function e(){}return e.CreateGround=function(e,t,i){var n=new qi(e,i);return n._setReady(!1),n._subdivisionsX=t.subdivisionsX||t.subdivisions||1,n._subdivisionsY=t.subdivisionsY||t.subdivisions||1,n._width=t.width||1,n._height=t.height||1,n._maxX=n._width/2,n._maxZ=n._height/2,n._minX=-n._maxX,n._minZ=-n._maxZ,Ki.a.CreateGround(t).applyToMesh(n,t.updatable),n._setReady(!0),n},e.CreateTiledGround=function(e,t,i){void 0===i&&(i=null);var n=new be.a(e,i);return Ki.a.CreateTiledGround(t).applyToMesh(n,t.updatable),n},e.CreateGroundFromHeightMap=function(e,t,i,n){void 0===n&&(n=null);var r=i.width||10,o=i.height||10,a=i.subdivisions||1,c=i.minHeight||0,l=i.maxHeight||1,u=i.colorFilter||new s.a(.3,.59,.11),h=i.alphaFilter||0,d=i.updatable,f=i.onReady;n=n||x.a.LastCreatedScene;var p=new qi(e,n);p._subdivisionsX=a,p._subdivisionsY=a,p._width=r,p._height=o,p._maxX=p._width/2,p._maxZ=p._height/2,p._minX=-p._maxX,p._minZ=-p._maxZ,p._setReady(!1);return Ce.b.LoadImage(t,(function(e){var t=e.width,i=e.height,s=Zi.a.CreateCanvas(t,i).getContext(\"2d\");if(!s)throw new Error(\"Unable to get 2d context for CreateGroundFromHeightMap\");if(!n.isDisposed){s.drawImage(e,0,0);var _=s.getImageData(0,0,t,i).data;Ki.a.CreateGroundFromHeightMap({width:r,height:o,subdivisions:a,minHeight:c,maxHeight:l,colorFilter:u,buffer:_,bufferWidth:t,bufferHeight:i,alphaFilter:h}).applyToMesh(p,d),f&&f(p),p._setReady(!0)}}),(function(){}),n.offlineProvider),p},e}();Ki.a.CreateTorus=function(e){for(var t=[],i=[],n=[],r=[],o=e.diameter||1,s=e.thickness||.5,c=e.tessellation||16,l=0===e.sideOrientation?0:e.sideOrientation||Ki.a.DEFAULTSIDE,u=c+1,h=0;h<=c;h++)for(var d=h/c,f=h*Math.PI*2/c-Math.PI/2,p=a.a.Translation(o/2,0,0).multiply(a.a.RotationY(f)),_=0;_<=c;_++){var m=1-_/c,g=_*Math.PI*2/c+Math.PI,v=Math.cos(g),b=Math.sin(g),y=new a.e(v,b,0),T=y.scale(s/2),E=new a.d(d,m);T=a.e.TransformCoordinates(T,p),y=a.e.TransformNormal(y,p),i.push(T.x,T.y,T.z),n.push(y.x,y.y,y.z),r.push(E.x,E.y);var S=(h+1)%u,A=(_+1)%u;t.push(h*u+_),t.push(h*u+A),t.push(S*u+_),t.push(h*u+A),t.push(S*u+A),t.push(S*u+_)}Ki.a._ComputeSides(l,i,t,n,r,e.frontUVs,e.backUVs);var P=new Ki.a;return P.indices=t,P.positions=i,P.normals=n,P.uvs=r,P},be.a.CreateTorus=function(e,t,i,n,r,o,a){var s={diameter:t,thickness:i,tessellation:n,sideOrientation:a,updatable:o};return tn.CreateTorus(e,s,r)};var $i,en,tn=function(){function e(){}return e.CreateTorus=function(e,t,i){var n=new be.a(e,i);return t.sideOrientation=be.a._GetDefaultSideOrientation(t.sideOrientation),n._originalBuilderSideOrientation=t.sideOrientation,Ki.a.CreateTorus(t).applyToMesh(n,t.updatable),n},e}(),nn=i(53),rn=function(){function e(){}return e.GetDefaults=function(t){var i=new e;return i.canvasOptions={antialias:!0,depth:!0,stencil:!t||t.isStencilEnable,alpha:!0,multiview:!1,framebufferScaleFactor:1},i.newCanvasCssStyle=\"position:absolute; bottom:0px;right:0px;z-index:10;width:90%;height:100%;background-color: #000000;\",i},e}(),on=function(){function e(e,t){var i=this;if(void 0===t&&(t=rn.GetDefaults()),this._options=t,this._canvas=null,this.xrLayer=null,this.onXRLayerInitObservable=new o.c,this._engine=e.scene.getEngine(),t.canvasElement)this._setManagedOutputCanvas(t.canvasElement);else{var n=document.createElement(\"canvas\");n.style.cssText=this._options.newCanvasCssStyle||\"position:absolute; bottom:0px;right:0px;\",this._setManagedOutputCanvas(n)}e.onXRSessionInit.add((function(){i._addCanvas()})),e.onXRSessionEnded.add((function(){i._removeCanvas()}))}return e.prototype.dispose=function(){this._removeCanvas(),this._setManagedOutputCanvas(null)},e.prototype.initializeXRLayerAsync=function(e){var t=this,i=function(){var i=new XRWebGLLayer(e,t.canvasContext,t._options.canvasOptions);return t.onXRLayerInitObservable.notifyObservers(i),i};return this.canvasContext.makeXRCompatible?this.canvasContext.makeXRCompatible().then((function(){return t.xrLayer=i(),t.xrLayer})):(this.xrLayer=i(),Promise.resolve(this.xrLayer))},e.prototype._addCanvas=function(){var e=this;this._canvas&&this._canvas!==this._engine.getRenderingCanvas()&&document.body.appendChild(this._canvas),this.xrLayer?this._setCanvasSize(!0):this.onXRLayerInitObservable.addOnce((function(t){e._setCanvasSize(!0,t)}))},e.prototype._removeCanvas=function(){this._canvas&&document.body.contains(this._canvas)&&this._canvas!==this._engine.getRenderingCanvas()&&document.body.removeChild(this._canvas),this._setCanvasSize(!1)},e.prototype._setCanvasSize=function(e,t){void 0===e&&(e=!0),void 0===t&&(t=this.xrLayer),this._canvas&&(e?t&&(this._canvas!==this._engine.getRenderingCanvas()?(this._canvas.style.width=t.framebufferWidth+\"px\",this._canvas.style.height=t.framebufferHeight+\"px\"):this._engine.setSize(t.framebufferWidth,t.framebufferHeight)):this._originalCanvasSize&&(this._canvas!==this._engine.getRenderingCanvas()?(this._canvas.style.width=this._originalCanvasSize.width+\"px\",this._canvas.style.height=this._originalCanvasSize.height+\"px\"):this._engine.setSize(this._originalCanvasSize.width,this._originalCanvasSize.height)))},e.prototype._setManagedOutputCanvas=function(e){this._removeCanvas(),e?(this._originalCanvasSize={width:e.offsetWidth,height:e.offsetHeight},this._canvas=e,this.canvasContext=this._canvas.getContext(\"webgl2\"),this.canvasContext||(this.canvasContext=this._canvas.getContext(\"webgl\"))):(this._canvas=null,this.canvasContext=null)},e}(),an=function(){function e(e){this.scene=e,this._sessionEnded=!1,this.baseLayer=null,this.currentTimestamp=-1,this.defaultHeightCompensation=1.7,this.onXRFrameObservable=new o.c,this.onXRReferenceSpaceChanged=new o.c,this.onXRSessionEnded=new o.c,this.onXRSessionInit=new o.c}return Object.defineProperty(e.prototype,\"referenceSpace\",{get:function(){return this._referenceSpace},set:function(e){this._referenceSpace=e,this.onXRReferenceSpaceChanged.notifyObservers(this._referenceSpace)},enumerable:!1,configurable:!0}),e.prototype.dispose=function(){this._sessionEnded||this.exitXRAsync(),this.onXRFrameObservable.clear(),this.onXRSessionEnded.clear(),this.onXRReferenceSpaceChanged.clear(),this.onXRSessionInit.clear()},e.prototype.exitXRAsync=function(){return this.session&&!this._sessionEnded?(this._sessionEnded=!0,this.session.end().catch((function(e){m.a.Warn(\"Could not end XR session.\")}))):Promise.resolve()},e.prototype.getRenderTargetTextureForEye=function(e){return this._rttProvider.getRenderTargetForEye(e)},e.prototype.getWebXRRenderTarget=function(e){var t=this.scene.getEngine();return this._xrNavigator.xr.native?this._xrNavigator.xr.getWebXRRenderTarget(t):((e=e||rn.GetDefaults(t)).canvasElement=t.getRenderingCanvas()||void 0,new on(this,e))},e.prototype.initializeAsync=function(){return this._xrNavigator=navigator,this._xrNavigator.xr?Promise.resolve():Promise.reject(\"WebXR not available\")},e.prototype.initializeSessionAsync=function(e,t){var i=this;return void 0===e&&(e=\"immersive-vr\"),void 0===t&&(t={}),this._xrNavigator.xr.requestSession(e,t).then((function(e){return i.session=e,i.onXRSessionInit.notifyObservers(e),i._sessionEnded=!1,i.session.addEventListener(\"end\",(function(){var e=i.scene.getEngine();i._sessionEnded=!0,i._rttProvider=null,e.framebufferDimensionsObject=null,e.restoreDefaultFramebuffer(),e.customAnimationFrameRequester=null,i.onXRSessionEnded.notifyObservers(null),e._renderLoop()}),{once:!0}),i.session}))},e.prototype.isSessionSupportedAsync=function(t){return e.IsSessionSupportedAsync(t)},e.prototype.resetReferenceSpace=function(){this.referenceSpace=this.baseReferenceSpace},e.prototype.runXRRenderLoop=function(){var e=this,t=this.scene.getEngine();if(t.customAnimationFrameRequester={requestAnimationFrame:this.session.requestAnimationFrame.bind(this.session),renderFunction:function(i,n){e._sessionEnded||(e.currentFrame=n,e.currentTimestamp=i,n&&(t.framebufferDimensionsObject=e.baseLayer,e.onXRFrameObservable.notifyObservers(n),t._renderLoop(),t.framebufferDimensionsObject=null))}},this._xrNavigator.xr.native)this._rttProvider=this._xrNavigator.xr.getNativeRenderTargetProvider(this.session,this._createRenderTargetTexture.bind(this));else{var i=this._createRenderTargetTexture(this.baseLayer.framebufferWidth,this.baseLayer.framebufferHeight,this.baseLayer.framebuffer);this._rttProvider={getRenderTargetForEye:function(){return i}},t.framebufferDimensionsObject=this.baseLayer}\"undefined\"!=typeof window&&window.cancelAnimationFrame&&window.cancelAnimationFrame(t._frameHandler),t._renderLoop()},e.prototype.setReferenceSpaceTypeAsync=function(e){var t=this;return void 0===e&&(e=\"local-floor\"),this.session.requestReferenceSpace(e).then((function(e){return e}),(function(e){return m.a.Error(\"XR.requestReferenceSpace failed for the following reason: \"),m.a.Error(e),m.a.Log('Defaulting to universally-supported \"viewer\" reference space type.'),t.session.requestReferenceSpace(\"viewer\").then((function(e){var i=new XRRigidTransform({x:0,y:-t.defaultHeightCompensation,z:0});return e.getOffsetReferenceSpace(i)}),(function(e){throw m.a.Error(e),'XR initialization failed: required \"viewer\" reference space type not supported.'}))})).then((function(e){return t.session.requestReferenceSpace(\"viewer\").then((function(i){return t.viewerReferenceSpace=i,e}))})).then((function(e){return t.referenceSpace=t.baseReferenceSpace=e,t.referenceSpace}))},e.prototype.updateRenderStateAsync=function(e){return e.baseLayer&&(this.baseLayer=e.baseLayer),this.session.updateRenderState(e)},e.IsSessionSupportedAsync=function(e){if(!navigator.xr)return Promise.resolve(!1);var t=navigator.xr.isSessionSupported||navigator.xr.supportsSession;return t?t.call(navigator.xr,e).then((function(e){var t=void 0===e||e;return Promise.resolve(t)})).catch((function(e){return m.a.Warn(e),Promise.resolve(!1)})):Promise.resolve(!1)},e.prototype._createRenderTargetTexture=function(e,t,i){void 0===i&&(i=null);var n=new Qe.a(this.scene.getEngine(),Qe.b.Unknown,!0);n.width=e,n.height=t,n._framebuffer=i;var r=new Ni(\"XR renderTargetTexture\",{width:e,height:t},this.scene,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,!0);return r._texture=n,r},e}();!function(e){e[e.ENTERING_XR=0]=\"ENTERING_XR\",e[e.EXITING_XR=1]=\"EXITING_XR\",e[e.IN_XR=2]=\"IN_XR\",e[e.NOT_IN_XR=3]=\"NOT_IN_XR\"}($i||($i={})),function(e){e[e.NOT_TRACKING=0]=\"NOT_TRACKING\",e[e.TRACKING_LOST=1]=\"TRACKING_LOST\",e[e.TRACKING=2]=\"TRACKING\"}(en||(en={}));var sn,cn=function(){function e(t,i){if(void 0===i&&(i=null),this.scene=t,this._pointerDownOnMeshAsked=!1,this._isActionableMesh=!1,this._teleportationRequestInitiated=!1,this._teleportationBackRequestInitiated=!1,this._rotationRightAsked=!1,this._rotationLeftAsked=!1,this._dpadPressed=!0,this._activePointer=!1,this._id=e._idCounter++,i)this._gazeTracker=i.clone(\"gazeTracker\");else{this._gazeTracker=be.a.CreateTorus(\"gazeTracker\",.0035,.0025,20,t,!1),this._gazeTracker.bakeCurrentTransformIntoVertices(),this._gazeTracker.isPickable=!1,this._gazeTracker.isVisible=!1;var n=new Wi.a(\"targetMat\",t);n.specularColor=s.a.Black(),n.emissiveColor=new s.a(.7,.7,.7),n.backFaceCulling=!1,this._gazeTracker.material=n}}return e.prototype._getForwardRay=function(e){return new Xt.a(a.e.Zero(),new a.e(0,0,e))},e.prototype._selectionPointerDown=function(){this._pointerDownOnMeshAsked=!0,this._currentHit&&this.scene.simulatePointerDown(this._currentHit,{pointerId:this._id})},e.prototype._selectionPointerUp=function(){this._currentHit&&this.scene.simulatePointerUp(this._currentHit,{pointerId:this._id}),this._pointerDownOnMeshAsked=!1},e.prototype._activatePointer=function(){this._activePointer=!0},e.prototype._deactivatePointer=function(){this._activePointer=!1},e.prototype._updatePointerDistance=function(e){void 0===e&&(e=100)},e.prototype.dispose=function(){this._interactionsEnabled=!1,this._teleportationEnabled=!1,this._gazeTracker&&this._gazeTracker.dispose()},e._idCounter=0,e}(),ln=function(e){function t(t,i,n){var r=e.call(this,i,n)||this;r.webVRController=t,r._laserPointer=be.a.CreateCylinder(\"laserPointer\",1,.004,2e-4,20,1,i,!1);var o=new Wi.a(\"laserPointerMat\",i);if(o.emissiveColor=new s.a(.7,.7,.7),o.alpha=.6,r._laserPointer.material=o,r._laserPointer.rotation.x=Math.PI/2,r._laserPointer.position.z=-.5,r._laserPointer.isVisible=!1,r._laserPointer.isPickable=!1,!t.mesh){var a=new be.a(\"preloadControllerMesh\",i),c=new be.a(qt.POINTING_POSE,i);c.rotation.x=-.7,a.addChild(c),t.attachToMesh(a)}return r._setLaserPointerParent(t.mesh),r._meshAttachedObserver=t._meshAttachedObservable.add((function(e){r._setLaserPointerParent(e)})),r}return Object(h.d)(t,e),t.prototype._getForwardRay=function(e){return this.webVRController.getForwardRay(e)},t.prototype._activatePointer=function(){e.prototype._activatePointer.call(this),this._laserPointer.isVisible=!0},t.prototype._deactivatePointer=function(){e.prototype._deactivatePointer.call(this),this._laserPointer.isVisible=!1},t.prototype._setLaserPointerColor=function(e){this._laserPointer.material.emissiveColor=e},t.prototype._setLaserPointerLightingDisabled=function(e){this._laserPointer.material.disableLighting=e},t.prototype._setLaserPointerParent=function(e){var t=function(e){e.isPickable=!1,e.getChildMeshes().forEach((function(e){t(e)}))};t(e);var i=e.getChildren(void 0,!1),n=e;this.webVRController._pointingPoseNode=null;for(var r=0;r=0){n=i[r],this.webVRController._pointingPoseNode=n;break}this._laserPointer.parent=n},t.prototype._updatePointerDistance=function(e){void 0===e&&(e=100),this._laserPointer.scaling.y=e,this._laserPointer.position.z=-e/2},t.prototype.dispose=function(){e.prototype.dispose.call(this),this._laserPointer.dispose(),this._meshAttachedObserver&&this.webVRController._meshAttachedObservable.remove(this._meshAttachedObserver)},t}(cn),un=function(e){function t(t,i){var n=e.call(this,i)||this;return n.getCamera=t,n}return Object(h.d)(t,e),t.prototype._getForwardRay=function(e){var t=this.getCamera();return t?t.getForwardRay(e):new Xt.a(a.e.Zero(),a.e.Forward())},t}(cn),hn=function(){},dn=function(){function e(t,i){var n=this;if(void 0===i&&(i={}),this.webVROptions=i,this._webVRsupported=!1,this._webVRready=!1,this._webVRrequesting=!1,this._webVRpresenting=!1,this._fullscreenVRpresenting=!1,this.enableGazeEvenWhenNoPointerLock=!1,this.exitVROnDoubleTap=!0,this.onEnteringVRObservable=new o.c,this.onAfterEnteringVRObservable=new o.c,this.onExitingVRObservable=new o.c,this.onControllerMeshLoadedObservable=new o.c,this._useCustomVRButton=!1,this._teleportationRequested=!1,this._teleportActive=!1,this._floorMeshesCollection=[],this._teleportationMode=e.TELEPORTATIONMODE_CONSTANTTIME,this._teleportationTime=122,this._teleportationSpeed=20,this._rotationAllowed=!0,this._teleportBackwardsVector=new a.e(0,-1,-1),this._isDefaultTeleportationTarget=!0,this._teleportationFillColor=\"#444444\",this._teleportationBorderColor=\"#FFFFFF\",this._rotationAngle=0,this._haloCenter=new a.e(0,0,0),this._padSensibilityUp=.65,this._padSensibilityDown=.35,this._leftController=null,this._rightController=null,this._gazeColor=new s.a(.7,.7,.7),this._laserColor=new s.a(.7,.7,.7),this._pickedLaserColor=new s.a(.2,.2,1),this._pickedGazeColor=new s.a(0,0,1),this.onNewMeshSelected=new o.c,this.onMeshSelectedWithController=new o.c,this.onNewMeshPicked=new o.c,this.onBeforeCameraTeleport=new o.c,this.onAfterCameraTeleport=new o.c,this.onSelectedMeshUnselected=new o.c,this.teleportationEnabled=!0,this._teleportationInitialized=!1,this._interactionsEnabled=!1,this._interactionsRequested=!1,this._displayGaze=!0,this._displayLaserPointer=!0,this.updateGazeTrackerScale=!0,this.updateGazeTrackerColor=!0,this.updateControllerLaserColor=!0,this.requestPointerLockOnFullScreen=!0,this.xrTestDone=!1,this._onResize=function(){n.moveButtonToBottomRight(),n._fullscreenVRpresenting&&n._webVRready&&n.exitVR()},this._onFullscreenChange=function(){var e=document;void 0!==e.fullscreen?n._fullscreenVRpresenting=document.fullscreen:void 0!==e.mozFullScreen?n._fullscreenVRpresenting=e.mozFullScreen:void 0!==e.webkitIsFullScreen?n._fullscreenVRpresenting=e.webkitIsFullScreen:void 0!==e.msIsFullScreen?n._fullscreenVRpresenting=e.msIsFullScreen:void 0!==document.msFullscreenElement&&(n._fullscreenVRpresenting=document.msFullscreenElement),!n._fullscreenVRpresenting&&n._inputElement&&(n.exitVR(),!n._useCustomVRButton&&n._btnVR&&(n._btnVR.style.top=n._inputElement.offsetTop+n._inputElement.offsetHeight-70+\"px\",n._btnVR.style.left=n._inputElement.offsetLeft+n._inputElement.offsetWidth-100+\"px\",n.updateButtonVisibility()))},this._cachedAngularSensibility={angularSensibilityX:null,angularSensibilityY:null,angularSensibility:null},this.beforeRender=function(){n._leftController&&n._leftController._activePointer&&n._castRayAndSelectObject(n._leftController),n._rightController&&n._rightController._activePointer&&n._castRayAndSelectObject(n._rightController),n._noControllerIsActive&&(n._scene.getEngine().isPointerLock||n.enableGazeEvenWhenNoPointerLock)?n._castRayAndSelectObject(n._cameraGazer):n._cameraGazer._gazeTracker.isVisible=!1},this._onNewGamepadConnected=function(e){if(e.type!==ot.POSE_ENABLED)e.leftStick&&e.onleftstickchanged((function(e){n._teleportationInitialized&&n.teleportationEnabled&&(!n._leftController&&!n._rightController||n._leftController&&!n._leftController._activePointer&&n._rightController&&!n._rightController._activePointer)&&(n._checkTeleportWithRay(e,n._cameraGazer),n._checkTeleportBackwards(e,n._cameraGazer))})),e.rightStick&&e.onrightstickchanged((function(e){n._teleportationInitialized&&n._checkRotate(e,n._cameraGazer)})),e.type===ot.XBOX&&(e.onbuttondown((function(e){n._interactionsEnabled&&e===Yt.A&&n._cameraGazer._selectionPointerDown()})),e.onbuttonup((function(e){n._interactionsEnabled&&e===Yt.A&&n._cameraGazer._selectionPointerUp()})));else{var t=e,i=new ln(t,n._scene,n._cameraGazer._gazeTracker);\"right\"===t.hand||n._leftController&&n._leftController.webVRController!=t?n._rightController=i:n._leftController=i,n._tryEnableInteractionOnController(i)}},this._tryEnableInteractionOnController=function(e){n._interactionsRequested&&!e._interactionsEnabled&&n._enableInteractionOnController(e),n._teleportationRequested&&!e._teleportationEnabled&&n._enableTeleportationOnController(e)},this._onNewGamepadDisconnected=function(e){e instanceof Gi&&(\"left\"===e.hand&&null!=n._leftController&&(n._leftController.dispose(),n._leftController=null),\"right\"===e.hand&&null!=n._rightController&&(n._rightController.dispose(),n._rightController=null))},this._workingVector=a.e.Zero(),this._workingQuaternion=a.b.Identity(),this._workingMatrix=a.a.Identity(),this._scene=t,this._inputElement=t.getEngine().getInputElement(),\"getVRDisplays\"in navigator||(i.useXR=!0),void 0===i.createFallbackVRDeviceOrientationFreeCamera&&(i.createFallbackVRDeviceOrientationFreeCamera=!0),void 0===i.createDeviceOrientationCamera&&(i.createDeviceOrientationCamera=!0),void 0===i.laserToggle&&(i.laserToggle=!0),void 0===i.defaultHeight&&(i.defaultHeight=1.7),i.useCustomVRButton&&(this._useCustomVRButton=!0,i.customVRButton&&(this._btnVR=i.customVRButton)),i.rayLength&&(this._rayLength=i.rayLength),this._defaultHeight=i.defaultHeight,i.positionScale&&(this._rayLength*=i.positionScale,this._defaultHeight*=i.positionScale),this._hasEnteredVR=!1,this._scene.activeCamera?this._position=this._scene.activeCamera.position.clone():this._position=new a.e(0,this._defaultHeight,0),i.createDeviceOrientationCamera||!this._scene.activeCamera){if(this._deviceOrientationCamera=new Ut(\"deviceOrientationVRHelper\",this._position.clone(),t),this._scene.activeCamera&&(this._deviceOrientationCamera.minZ=this._scene.activeCamera.minZ,this._deviceOrientationCamera.maxZ=this._scene.activeCamera.maxZ,this._scene.activeCamera instanceof Lt&&this._scene.activeCamera.rotation)){var r=this._scene.activeCamera;r.rotationQuaternion?this._deviceOrientationCamera.rotationQuaternion.copyFrom(r.rotationQuaternion):this._deviceOrientationCamera.rotationQuaternion.copyFrom(a.b.RotationYawPitchRoll(r.rotation.y,r.rotation.x,r.rotation.z)),this._deviceOrientationCamera.rotation=r.rotation.clone()}this._scene.activeCamera=this._deviceOrientationCamera,this._inputElement&&this._scene.activeCamera.attachControl()}else this._existingCamera=this._scene.activeCamera;this.webVROptions.useXR&&navigator.xr?an.IsSessionSupportedAsync(\"immersive-vr\").then((function(e){e?(m.a.Log(\"Using WebXR. It is recommended to use the WebXRDefaultExperience directly\"),t.createDefaultXRExperienceAsync({floorMeshes:i.floorMeshes||[]}).then((function(e){n.xr=e,n.xrTestDone=!0,n._cameraGazer=new un((function(){return n.xr.baseExperience.camera}),t),n.xr.baseExperience.onStateChangedObservable.add((function(e){switch(e){case $i.ENTERING_XR:n.onEnteringVRObservable.notifyObservers(n),n._interactionsEnabled||n.xr.pointerSelection.detach(),n.xr.pointerSelection.displayLaserPointer=n._displayLaserPointer;break;case $i.EXITING_XR:n.onExitingVRObservable.notifyObservers(n),n._scene.getEngine().resize();break;case $i.IN_XR:n._hasEnteredVR=!0;break;case $i.NOT_IN_XR:n._hasEnteredVR=!1}}))}))):n.completeVRInit(t,i)})):this.completeVRInit(t,i)}return Object.defineProperty(e.prototype,\"onEnteringVR\",{get:function(){return this.onEnteringVRObservable},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"onExitingVR\",{get:function(){return this.onExitingVRObservable},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"onControllerMeshLoaded\",{get:function(){return this.onControllerMeshLoadedObservable},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"teleportationTarget\",{get:function(){return this._teleportationTarget},set:function(e){e&&(e.name=\"teleportationTarget\",this._isDefaultTeleportationTarget=!1,this._teleportationTarget=e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"gazeTrackerMesh\",{get:function(){return this._cameraGazer._gazeTracker},set:function(e){e&&(this._cameraGazer._gazeTracker&&this._cameraGazer._gazeTracker.dispose(),this._leftController&&this._leftController._gazeTracker&&this._leftController._gazeTracker.dispose(),this._rightController&&this._rightController._gazeTracker&&this._rightController._gazeTracker.dispose(),this._cameraGazer._gazeTracker=e,this._cameraGazer._gazeTracker.bakeCurrentTransformIntoVertices(),this._cameraGazer._gazeTracker.isPickable=!1,this._cameraGazer._gazeTracker.isVisible=!1,this._cameraGazer._gazeTracker.name=\"gazeTracker\",this._leftController&&(this._leftController._gazeTracker=this._cameraGazer._gazeTracker.clone(\"gazeTracker\")),this._rightController&&(this._rightController._gazeTracker=this._cameraGazer._gazeTracker.clone(\"gazeTracker\")))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"leftControllerGazeTrackerMesh\",{get:function(){return this._leftController?this._leftController._gazeTracker:null},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"rightControllerGazeTrackerMesh\",{get:function(){return this._rightController?this._rightController._gazeTracker:null},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"displayGaze\",{get:function(){return this._displayGaze},set:function(e){this._displayGaze=e,e||(this._cameraGazer._gazeTracker.isVisible=!1,this._leftController&&(this._leftController._gazeTracker.isVisible=!1),this._rightController&&(this._rightController._gazeTracker.isVisible=!1))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"displayLaserPointer\",{get:function(){return this._displayLaserPointer},set:function(e){this._displayLaserPointer=e,e?(this._rightController&&this._rightController._activatePointer(),this._leftController&&this._leftController._activatePointer()):(this._rightController&&(this._rightController._deactivatePointer(),this._rightController._gazeTracker.isVisible=!1),this._leftController&&(this._leftController._deactivatePointer(),this._leftController._gazeTracker.isVisible=!1))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"deviceOrientationCamera\",{get:function(){return this._deviceOrientationCamera},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"currentVRCamera\",{get:function(){return this._webVRready?this._webVRCamera:this._scene.activeCamera},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"webVRCamera\",{get:function(){return this._webVRCamera},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"vrDeviceOrientationCamera\",{get:function(){return this._vrDeviceOrientationCamera},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"vrButton\",{get:function(){return this._btnVR},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"_teleportationRequestInitiated\",{get:function(){return this._cameraGazer._teleportationRequestInitiated||null!==this._leftController&&this._leftController._teleportationRequestInitiated||null!==this._rightController&&this._rightController._teleportationRequestInitiated},enumerable:!1,configurable:!0}),e.prototype.completeVRInit=function(e,t){var i=this;if(this.xrTestDone=!0,t.createFallbackVRDeviceOrientationFreeCamera&&(t.useMultiview&&(t.vrDeviceOrientationCameraMetrics||(t.vrDeviceOrientationCameraMetrics=Ci.GetDefault()),t.vrDeviceOrientationCameraMetrics.multiviewEnabled=!0),this._vrDeviceOrientationCamera=new Ui(\"VRDeviceOrientationVRHelper\",this._position,this._scene,!0,t.vrDeviceOrientationCameraMetrics),this._vrDeviceOrientationCamera.angularSensibility=Number.MAX_VALUE),this._webVRCamera=new zi(\"WebVRHelper\",this._position,this._scene,t),this._webVRCamera.useStandingMatrix(),this._cameraGazer=new un((function(){return i.currentVRCamera}),e),!this._useCustomVRButton){this._btnVR=document.createElement(\"BUTTON\"),this._btnVR.className=\"babylonVRicon\",this._btnVR.id=\"babylonVRiconbtn\",this._btnVR.title=\"Click to switch to VR\";var n=\".babylonVRicon { position: absolute; right: 20px; height: 50px; width: 80px; background-color: rgba(51,51,51,0.7); background-image: url(\"+(window.SVGSVGElement?\"data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%222048%22%20height%3D%221152%22%20viewBox%3D%220%200%202048%201152%22%20version%3D%221.1%22%3E%3Cpath%20transform%3D%22rotate%28180%201024%2C576.0000000000001%29%22%20d%3D%22m1109%2C896q17%2C0%2030%2C-12t13%2C-30t-12.5%2C-30.5t-30.5%2C-12.5l-170%2C0q-18%2C0%20-30.5%2C12.5t-12.5%2C30.5t13%2C30t30%2C12l170%2C0zm-85%2C256q59%2C0%20132.5%2C-1.5t154.5%2C-5.5t164.5%2C-11.5t163%2C-20t150%2C-30t124.5%2C-41.5q23%2C-11%2042%2C-24t38%2C-30q27%2C-25%2041%2C-61.5t14%2C-72.5l0%2C-257q0%2C-123%20-47%2C-232t-128%2C-190t-190%2C-128t-232%2C-47l-81%2C0q-37%2C0%20-68.5%2C14t-60.5%2C34.5t-55.5%2C45t-53%2C45t-53%2C34.5t-55.5%2C14t-55.5%2C-14t-53%2C-34.5t-53%2C-45t-55.5%2C-45t-60.5%2C-34.5t-68.5%2C-14l-81%2C0q-123%2C0%20-232%2C47t-190%2C128t-128%2C190t-47%2C232l0%2C257q0%2C68%2038%2C115t97%2C73q54%2C24%20124.5%2C41.5t150%2C30t163%2C20t164.5%2C11.5t154.5%2C5.5t132.5%2C1.5zm939%2C-298q0%2C39%20-24.5%2C67t-58.5%2C42q-54%2C23%20-122%2C39.5t-143.5%2C28t-155.5%2C19t-157%2C11t-148.5%2C5t-129.5%2C1.5q-59%2C0%20-130%2C-1.5t-148%2C-5t-157%2C-11t-155.5%2C-19t-143.5%2C-28t-122%2C-39.5q-34%2C-14%20-58.5%2C-42t-24.5%2C-67l0%2C-257q0%2C-106%2040.5%2C-199t110%2C-162.5t162.5%2C-109.5t199%2C-40l81%2C0q27%2C0%2052%2C14t50%2C34.5t51%2C44.5t55.5%2C44.5t63.5%2C34.5t74%2C14t74%2C-14t63.5%2C-34.5t55.5%2C-44.5t51%2C-44.5t50%2C-34.5t52%2C-14l14%2C0q37%2C0%2070%2C0.5t64.5%2C4.5t63.5%2C12t68%2C23q71%2C30%20128.5%2C78.5t98.5%2C110t63.5%2C133.5t22.5%2C149l0%2C257z%22%20fill%3D%22white%22%20/%3E%3C/svg%3E%0A\":\"https://cdn.babylonjs.com/Assets/vrButton.png\")+\"); background-size: 80%; background-repeat:no-repeat; background-position: center; border: none; outline: none; transition: transform 0.125s ease-out } .babylonVRicon:hover { transform: scale(1.05) } .babylonVRicon:active {background-color: rgba(51,51,51,1) } .babylonVRicon:focus {background-color: rgba(51,51,51,1) }\";n+=\".babylonVRicon.vrdisplaypresenting { display: none; }\";var r=document.createElement(\"style\");r.appendChild(document.createTextNode(n)),document.getElementsByTagName(\"head\")[0].appendChild(r),this.moveButtonToBottomRight()}this._btnVR&&this._btnVR.addEventListener(\"click\",(function(){i.isInVRMode?i._scene.getEngine().disableVR():i.enterVR()}));var o=this._scene.getEngine().getHostWindow();o&&(o.addEventListener(\"resize\",this._onResize),document.addEventListener(\"fullscreenchange\",this._onFullscreenChange,!1),document.addEventListener(\"mozfullscreenchange\",this._onFullscreenChange,!1),document.addEventListener(\"webkitfullscreenchange\",this._onFullscreenChange,!1),document.addEventListener(\"msfullscreenchange\",this._onFullscreenChange,!1),document.onmsfullscreenchange=this._onFullscreenChange,t.createFallbackVRDeviceOrientationFreeCamera?this.displayVRButton():this._scene.getEngine().onVRDisplayChangedObservable.add((function(e){e.vrDisplay&&i.displayVRButton()})),this._onKeyDown=function(e){27===e.keyCode&&i.isInVRMode&&i.exitVR()},document.addEventListener(\"keydown\",this._onKeyDown),this._scene.onPrePointerObservable.add((function(){i._hasEnteredVR&&i.exitVROnDoubleTap&&(i.exitVR(),i._fullscreenVRpresenting&&i._scene.getEngine().exitFullscreen())}),Ne.a.POINTERDOUBLETAP,!1),this._onVRDisplayChanged=function(e){return i.onVRDisplayChanged(e)},this._onVrDisplayPresentChange=function(){return i.onVrDisplayPresentChange()},this._onVRRequestPresentStart=function(){i._webVRrequesting=!0,i.updateButtonVisibility()},this._onVRRequestPresentComplete=function(){i._webVRrequesting=!1,i.updateButtonVisibility()},e.getEngine().onVRDisplayChangedObservable.add(this._onVRDisplayChanged),e.getEngine().onVRRequestPresentStart.add(this._onVRRequestPresentStart),e.getEngine().onVRRequestPresentComplete.add(this._onVRRequestPresentComplete),o.addEventListener(\"vrdisplaypresentchange\",this._onVrDisplayPresentChange),e.onDisposeObservable.add((function(){i.dispose()})),this._webVRCamera.onControllerMeshLoadedObservable.add((function(e){return i._onDefaultMeshLoaded(e)})),this._scene.gamepadManager.onGamepadConnectedObservable.add(this._onNewGamepadConnected),this._scene.gamepadManager.onGamepadDisconnectedObservable.add(this._onNewGamepadDisconnected),this.updateButtonVisibility(),this._circleEase=new ae,this._circleEase.setEasingMode(oe.EASINGMODE_EASEINOUT),this._teleportationEasing=this._circleEase,e.onPointerObservable.add((function(t){i._interactionsEnabled&&e.activeCamera===i.vrDeviceOrientationCamera&&\"mouse\"===t.event.pointerType&&(t.type===Ne.a.POINTERDOWN?i._cameraGazer._selectionPointerDown():t.type===Ne.a.POINTERUP&&i._cameraGazer._selectionPointerUp())})),this.webVROptions.floorMeshes&&this.enableTeleportation({floorMeshes:this.webVROptions.floorMeshes}))},e.prototype._onDefaultMeshLoaded=function(e){this._leftController&&this._leftController.webVRController==e&&e.mesh&&this._leftController._setLaserPointerParent(e.mesh),this._rightController&&this._rightController.webVRController==e&&e.mesh&&this._rightController._setLaserPointerParent(e.mesh);try{this.onControllerMeshLoadedObservable.notifyObservers(e)}catch(e){m.a.Warn(\"Error in your custom logic onControllerMeshLoaded: \"+e)}},Object.defineProperty(e.prototype,\"isInVRMode\",{get:function(){return this.xr&&this.webVROptions.useXR&&this.xr.baseExperience.state===$i.IN_XR||this._webVRpresenting||this._fullscreenVRpresenting},enumerable:!1,configurable:!0}),e.prototype.onVrDisplayPresentChange=function(){var e=this._scene.getEngine().getVRDevice();if(e){var t=this._webVRpresenting;this._webVRpresenting=e.isPresenting,t&&!this._webVRpresenting&&this.exitVR()}else m.a.Warn(\"Detected VRDisplayPresentChange on an unknown VRDisplay. Did you can enterVR on the vrExperienceHelper?\");this.updateButtonVisibility()},e.prototype.onVRDisplayChanged=function(e){this._webVRsupported=e.vrSupported,this._webVRready=!!e.vrDisplay,this._webVRpresenting=e.vrDisplay&&e.vrDisplay.isPresenting,this.updateButtonVisibility()},e.prototype.moveButtonToBottomRight=function(){if(this._inputElement&&!this._useCustomVRButton&&this._btnVR){var e=this._inputElement.getBoundingClientRect();this._btnVR.style.top=e.top+e.height-70+\"px\",this._btnVR.style.left=e.left+e.width-100+\"px\"}},e.prototype.displayVRButton=function(){this._useCustomVRButton||this._btnVRDisplayed||!this._btnVR||(document.body.appendChild(this._btnVR),this._btnVRDisplayed=!0)},e.prototype.updateButtonVisibility=function(){this._btnVR&&!this._useCustomVRButton&&(this._btnVR.className=\"babylonVRicon\",this.isInVRMode?this._btnVR.className+=\" vrdisplaypresenting\":(this._webVRready&&(this._btnVR.className+=\" vrdisplayready\"),this._webVRsupported&&(this._btnVR.className+=\" vrdisplaysupported\"),this._webVRrequesting&&(this._btnVR.className+=\" vrdisplayrequesting\")))},e.prototype.enterVR=function(){var e=this;if(this.xr)this.xr.baseExperience.enterXRAsync(\"immersive-vr\",\"local-floor\",this.xr.renderTarget);else{if(this.onEnteringVRObservable)try{this.onEnteringVRObservable.notifyObservers(this)}catch(e){m.a.Warn(\"Error in your custom logic onEnteringVR: \"+e)}if(this._scene.activeCamera){if(this._position=this._scene.activeCamera.position.clone(),this.vrDeviceOrientationCamera&&(this.vrDeviceOrientationCamera.rotation=a.b.FromRotationMatrix(this._scene.activeCamera.getWorldMatrix().getRotationMatrix()).toEulerAngles(),this.vrDeviceOrientationCamera.angularSensibility=2e3),this.webVRCamera){var t=this.webVRCamera.deviceRotationQuaternion.toEulerAngles().y,i=a.b.FromRotationMatrix(this._scene.activeCamera.getWorldMatrix().getRotationMatrix()).toEulerAngles().y-t,n=this.webVRCamera.rotationQuaternion.toEulerAngles().y;this.webVRCamera.rotationQuaternion=a.b.FromEulerAngles(0,n+i,0)}this._existingCamera=this._scene.activeCamera,this._existingCamera.angularSensibilityX&&(this._cachedAngularSensibility.angularSensibilityX=this._existingCamera.angularSensibilityX,this._existingCamera.angularSensibilityX=Number.MAX_VALUE),this._existingCamera.angularSensibilityY&&(this._cachedAngularSensibility.angularSensibilityY=this._existingCamera.angularSensibilityY,this._existingCamera.angularSensibilityY=Number.MAX_VALUE),this._existingCamera.angularSensibility&&(this._cachedAngularSensibility.angularSensibility=this._existingCamera.angularSensibility,this._existingCamera.angularSensibility=Number.MAX_VALUE)}this._webVRrequesting||(this._webVRready?this._webVRpresenting||(this._scene.getEngine().onVRRequestPresentComplete.addOnce((function(t){e.onAfterEnteringVRObservable.notifyObservers({success:t})})),this._webVRCamera.position=this._position,this._scene.activeCamera=this._webVRCamera):this._vrDeviceOrientationCamera&&(this._vrDeviceOrientationCamera.position=this._position,this._scene.activeCamera&&(this._vrDeviceOrientationCamera.minZ=this._scene.activeCamera.minZ),this._scene.activeCamera=this._vrDeviceOrientationCamera,this._scene.getEngine().enterFullscreen(this.requestPointerLockOnFullScreen),this.updateButtonVisibility(),this._vrDeviceOrientationCamera.onViewMatrixChangedObservable.addOnce((function(){e.onAfterEnteringVRObservable.notifyObservers({success:!0})}))),this._scene.activeCamera&&this._inputElement&&this._scene.activeCamera.attachControl(),this._interactionsEnabled&&this._scene.registerBeforeRender(this.beforeRender),this._displayLaserPointer&&[this._leftController,this._rightController].forEach((function(e){e&&e._activatePointer()})),this._hasEnteredVR=!0)}},e.prototype.exitVR=function(){if(this.xr)this.xr.baseExperience.exitXRAsync();else if(this._hasEnteredVR){if(this.onExitingVRObservable)try{this.onExitingVRObservable.notifyObservers(this)}catch(e){m.a.Warn(\"Error in your custom logic onExitingVR: \"+e)}this._webVRpresenting&&this._scene.getEngine().disableVR(),this._scene.activeCamera&&(this._position=this._scene.activeCamera.position.clone()),this.vrDeviceOrientationCamera&&(this.vrDeviceOrientationCamera.angularSensibility=Number.MAX_VALUE),this._deviceOrientationCamera?(this._deviceOrientationCamera.position=this._position,this._scene.activeCamera=this._deviceOrientationCamera,this._cachedAngularSensibility.angularSensibilityX&&(this._deviceOrientationCamera.angularSensibilityX=this._cachedAngularSensibility.angularSensibilityX,this._cachedAngularSensibility.angularSensibilityX=null),this._cachedAngularSensibility.angularSensibilityY&&(this._deviceOrientationCamera.angularSensibilityY=this._cachedAngularSensibility.angularSensibilityY,this._cachedAngularSensibility.angularSensibilityY=null),this._cachedAngularSensibility.angularSensibility&&(this._deviceOrientationCamera.angularSensibility=this._cachedAngularSensibility.angularSensibility,this._cachedAngularSensibility.angularSensibility=null)):this._existingCamera&&(this._existingCamera.position=this._position,this._scene.activeCamera=this._existingCamera,this._inputElement&&this._scene.activeCamera.attachControl(),this._cachedAngularSensibility.angularSensibilityX&&(this._existingCamera.angularSensibilityX=this._cachedAngularSensibility.angularSensibilityX,this._cachedAngularSensibility.angularSensibilityX=null),this._cachedAngularSensibility.angularSensibilityY&&(this._existingCamera.angularSensibilityY=this._cachedAngularSensibility.angularSensibilityY,this._cachedAngularSensibility.angularSensibilityY=null),this._cachedAngularSensibility.angularSensibility&&(this._existingCamera.angularSensibility=this._cachedAngularSensibility.angularSensibility,this._cachedAngularSensibility.angularSensibility=null)),this.updateButtonVisibility(),this._interactionsEnabled&&(this._scene.unregisterBeforeRender(this.beforeRender),this._cameraGazer._gazeTracker.isVisible=!1,this._leftController&&(this._leftController._gazeTracker.isVisible=!1),this._rightController&&(this._rightController._gazeTracker.isVisible=!1)),this._scene.getEngine().resize(),[this._leftController,this._rightController].forEach((function(e){e&&e._deactivatePointer()})),this._hasEnteredVR=!1;var e=this._scene.getEngine();e._onVrDisplayPresentChange&&e._onVrDisplayPresentChange()}},Object.defineProperty(e.prototype,\"position\",{get:function(){return this._position},set:function(e){this._position=e,this._scene.activeCamera&&(this._scene.activeCamera.position=e)},enumerable:!1,configurable:!0}),e.prototype.enableInteractions=function(){var e=this;if(!this._interactionsEnabled){if(this._interactionsRequested=!0,this.xr)return void(this.xr.baseExperience.state===$i.IN_XR&&this.xr.pointerSelection.attach());this._leftController&&this._enableInteractionOnController(this._leftController),this._rightController&&this._enableInteractionOnController(this._rightController),this.raySelectionPredicate=function(t){return t.isVisible&&(t.isPickable||t.name===e._floorMeshName)},this.meshSelectionPredicate=function(){return!0},this._raySelectionPredicate=function(t){return!!(e._isTeleportationFloor(t)||-1===t.name.indexOf(\"gazeTracker\")&&-1===t.name.indexOf(\"teleportationTarget\")&&-1===t.name.indexOf(\"torusTeleportation\"))&&e.raySelectionPredicate(t)},this._interactionsEnabled=!0}},Object.defineProperty(e.prototype,\"_noControllerIsActive\",{get:function(){return!(this._leftController&&this._leftController._activePointer||this._rightController&&this._rightController._activePointer)},enumerable:!1,configurable:!0}),e.prototype._isTeleportationFloor=function(e){for(var t=0;t-1||this._floorMeshesCollection.push(e))},e.prototype.removeFloorMesh=function(e){if(this._floorMeshesCollection){var t=this._floorMeshesCollection.indexOf(e);-1!==t&&this._floorMeshesCollection.splice(t,1)}},e.prototype.enableTeleportation=function(e){var t=this;if(void 0===e&&(e={}),!this._teleportationInitialized){if(this._teleportationRequested=!0,this.enableInteractions(),this.webVROptions.useXR&&(e.floorMeshes||e.floorMeshName)){var i=e.floorMeshes||[];if(!i.length){var n=this._scene.getMeshByName(e.floorMeshName);n&&i.push(n)}if(this.xr)return i.forEach((function(e){t.xr.teleportation.addFloorMesh(e)})),void(this.xr.teleportation.attached||this.xr.teleportation.attach());if(!this.xrTestDone){var r=function(){t.xrTestDone&&(t._scene.unregisterBeforeRender(r),t.xr?t.xr.teleportation.attached||t.xr.teleportation.attach():t.enableTeleportation(e))};return void this._scene.registerBeforeRender(r)}}e.floorMeshName&&(this._floorMeshName=e.floorMeshName),e.floorMeshes&&(this._floorMeshesCollection=e.floorMeshes),e.teleportationMode&&(this._teleportationMode=e.teleportationMode),e.teleportationTime&&e.teleportationTime>0&&(this._teleportationTime=e.teleportationTime),e.teleportationSpeed&&e.teleportationSpeed>0&&(this._teleportationSpeed=e.teleportationSpeed),void 0!==e.easingFunction&&(this._teleportationEasing=e.easingFunction),null!=this._leftController&&this._enableTeleportationOnController(this._leftController),null!=this._rightController&&this._enableTeleportationOnController(this._rightController);var o=new ji.a;o.vignetteColor=new s.b(0,0,0,0),o.vignetteEnabled=!0,this._postProcessMove=new Yi(\"postProcessMove\",1,this._webVRCamera,void 0,void 0,void 0,void 0,o),this._webVRCamera.detachPostProcess(this._postProcessMove),this._teleportationInitialized=!0,this._isDefaultTeleportationTarget&&(this._createTeleportationCircles(),this._teleportationTarget.scaling.scaleInPlace(this._webVRCamera.deviceScaleFactor))}},e.prototype._enableInteractionOnController=function(e){var t=this;e.webVRController.mesh&&(e._interactionsEnabled=!0,this.isInVRMode&&this._displayLaserPointer&&e._activatePointer(),this.webVROptions.laserToggle&&e.webVRController.onMainButtonStateChangedObservable.add((function(i){t._displayLaserPointer&&1===i.value&&(e._activePointer?e._deactivatePointer():e._activatePointer(),t.displayGaze&&(e._gazeTracker.isVisible=e._activePointer))})),e.webVRController.onTriggerStateChangedObservable.add((function(i){var n=e;t._noControllerIsActive&&(n=t._cameraGazer),n._pointerDownOnMeshAsked?i.valuet._padSensibilityUp&&n._selectionPointerDown()})))},e.prototype._checkTeleportWithRay=function(e,t){this._teleportationRequestInitiated&&!t._teleportationRequestInitiated||(t._teleportationRequestInitiated?Math.sqrt(e.y*e.y+e.x*e.x)-this._padSensibilityDown&&(t._rotationLeftAsked=!1):e.x<-this._padSensibilityUp&&t._dpadPressed&&(t._rotationLeftAsked=!0,this._rotationAllowed&&this._rotateCamera(!1)),t._rotationRightAsked?e.xthis._padSensibilityUp&&t._dpadPressed&&(t._rotationRightAsked=!0,this._rotationAllowed&&this._rotateCamera(!0)))},e.prototype._checkTeleportBackwards=function(e,t){if(!t._teleportationRequestInitiated)if(e.y>this._padSensibilityUp&&t._dpadPressed){if(!t._teleportationBackRequestInitiated){if(!this.currentVRCamera)return;var i=a.b.FromRotationMatrix(this.currentVRCamera.getWorldMatrix().getRotationMatrix()),n=this.currentVRCamera.position;this.currentVRCamera.devicePosition&&this.currentVRCamera.deviceRotationQuaternion&&(i=this.currentVRCamera.deviceRotationQuaternion,n=this.currentVRCamera.devicePosition),i.toEulerAnglesToRef(this._workingVector),this._workingVector.z=0,this._workingVector.x=0,a.b.RotationYawPitchRollToRef(this._workingVector.y,this._workingVector.x,this._workingVector.z,this._workingQuaternion),this._workingQuaternion.toRotationMatrix(this._workingMatrix),a.e.TransformCoordinatesToRef(this._teleportBackwardsVector,this._workingMatrix,this._workingVector);var r=new Xt.a(n,this._workingVector),o=this._scene.pickWithRay(r,this._raySelectionPredicate);o&&o.pickedPoint&&o.pickedMesh&&this._isTeleportationFloor(o.pickedMesh)&&o.distance<5&&this.teleportCamera(o.pickedPoint),t._teleportationBackRequestInitiated=!0}}else t._teleportationBackRequestInitiated=!1},e.prototype._enableTeleportationOnController=function(e){var t=this;e.webVRController.mesh&&(e._interactionsEnabled||this._enableInteractionOnController(e),e._interactionsEnabled=!0,e._teleportationEnabled=!0,e.webVRController.controllerType===Gt.VIVE&&(e._dpadPressed=!1,e.webVRController.onPadStateChangedObservable.add((function(t){e._dpadPressed=t.pressed,e._dpadPressed||(e._rotationLeftAsked=!1,e._rotationRightAsked=!1,e._teleportationBackRequestInitiated=!1)}))),e.webVRController.onPadValuesChangedObservable.add((function(i){t.teleportationEnabled&&(t._checkTeleportBackwards(i,e),t._checkTeleportWithRay(i,e)),t._checkRotate(i,e)})))},e.prototype._createTeleportationCircles=function(){this._teleportationTarget=be.a.CreateGround(\"teleportationTarget\",2,2,2,this._scene),this._teleportationTarget.isPickable=!1;var e=new Hi.a(\"DynamicTexture\",512,this._scene,!0);e.hasAlpha=!0;var t=e.getContext();t.beginPath(),t.arc(256,256,200,0,2*Math.PI,!1),t.fillStyle=this._teleportationFillColor,t.fill(),t.lineWidth=10,t.strokeStyle=this._teleportationBorderColor,t.stroke(),t.closePath(),e.update();var i=new Wi.a(\"TextPlaneMaterial\",this._scene);i.diffuseTexture=e,this._teleportationTarget.material=i;var n=be.a.CreateTorus(\"torusTeleportation\",.75,.1,25,this._scene,!1);n.isPickable=!1,n.parent=this._teleportationTarget;var r=new z(\"animationInnerCircle\",\"position.y\",30,z.ANIMATIONTYPE_FLOAT,z.ANIMATIONLOOPMODE_CYCLE),o=[];o.push({frame:0,value:0}),o.push({frame:30,value:.4}),o.push({frame:60,value:0}),r.setKeys(o);var a=new me;a.setEasingMode(oe.EASINGMODE_EASEINOUT),r.setEasingFunction(a),n.animations=[],n.animations.push(r),this._scene.beginAnimation(n,0,60,!0),this._hideTeleportationTarget()},e.prototype._displayTeleportationTarget=function(){this._teleportActive=!0,this._teleportationInitialized&&(this._teleportationTarget.isVisible=!0,this._isDefaultTeleportationTarget&&(this._teleportationTarget.getChildren()[0].isVisible=!0))},e.prototype._hideTeleportationTarget=function(){this._teleportActive=!1,this._teleportationInitialized&&(this._teleportationTarget.isVisible=!1,this._isDefaultTeleportationTarget&&(this._teleportationTarget.getChildren()[0].isVisible=!1))},e.prototype._rotateCamera=function(e){var t=this;if(this.currentVRCamera instanceof wt){e?this._rotationAngle++:this._rotationAngle--,this.currentVRCamera.animations=[];var i=a.b.FromRotationMatrix(a.a.RotationY(Math.PI/4*this._rotationAngle)),n=new z(\"animationRotation\",\"rotationQuaternion\",90,z.ANIMATIONTYPE_QUATERNION,z.ANIMATIONLOOPMODE_CONSTANT),r=[];r.push({frame:0,value:this.currentVRCamera.rotationQuaternion}),r.push({frame:6,value:i}),n.setKeys(r),n.setEasingFunction(this._circleEase),this.currentVRCamera.animations.push(n),this._postProcessMove.animations=[];var o=new z(\"animationPP\",\"vignetteWeight\",90,z.ANIMATIONTYPE_FLOAT,z.ANIMATIONLOOPMODE_CONSTANT),s=[];s.push({frame:0,value:0}),s.push({frame:3,value:4}),s.push({frame:6,value:0}),o.setKeys(s),o.setEasingFunction(this._circleEase),this._postProcessMove.animations.push(o);var c=new z(\"animationPP2\",\"vignetteStretch\",90,z.ANIMATIONTYPE_FLOAT,z.ANIMATIONLOOPMODE_CONSTANT),l=[];l.push({frame:0,value:0}),l.push({frame:3,value:10}),l.push({frame:6,value:0}),c.setKeys(l),c.setEasingFunction(this._circleEase),this._postProcessMove.animations.push(c),this._postProcessMove.imageProcessingConfiguration.vignetteWeight=0,this._postProcessMove.imageProcessingConfiguration.vignetteStretch=0,this._postProcessMove.samples=4,this._webVRCamera.attachPostProcess(this._postProcessMove),this._scene.beginAnimation(this._postProcessMove,0,6,!1,1,(function(){t._webVRCamera.detachPostProcess(t._postProcessMove)})),this._scene.beginAnimation(this.currentVRCamera,0,6,!1,1)}},e.prototype._moveTeleportationSelectorTo=function(e,t,i){if(e.pickedPoint){t._teleportationRequestInitiated&&(this._displayTeleportationTarget(),this._haloCenter.copyFrom(e.pickedPoint),this._teleportationTarget.position.copyFrom(e.pickedPoint));var n=this._convertNormalToDirectionOfRay(e.getNormal(!0,!1),i);if(n){var r=a.e.Cross(J.a.Y,n),o=a.e.Cross(n,r);a.e.RotationFromAxisToRef(o,n,r,this._teleportationTarget.rotation)}this._teleportationTarget.position.y+=.1}},e.prototype.teleportCamera=function(t){var i=this;if(this.currentVRCamera instanceof wt){this.webVRCamera.leftCamera?(this._workingVector.copyFrom(this.webVRCamera.leftCamera.globalPosition),this._workingVector.subtractInPlace(this.webVRCamera.position),t.subtractToRef(this._workingVector,this._workingVector)):this._workingVector.copyFrom(t),this.isInVRMode?this._workingVector.y+=this.webVRCamera.deviceDistanceToRoomGround()*this._webVRCamera.deviceScaleFactor:this._workingVector.y+=this._defaultHeight,this.onBeforeCameraTeleport.notifyObservers(this._workingVector);var n,r;if(this._teleportationMode==e.TELEPORTATIONMODE_CONSTANTSPEED){r=90;var o=a.e.Distance(this.currentVRCamera.position,this._workingVector);n=this._teleportationSpeed/o}else r=Math.round(90*this._teleportationTime/1e3),n=1;this.currentVRCamera.animations=[];var s=new z(\"animationCameraTeleportation\",\"position\",90,z.ANIMATIONTYPE_VECTOR3,z.ANIMATIONLOOPMODE_CONSTANT),c=[{frame:0,value:this.currentVRCamera.position},{frame:r,value:this._workingVector}];s.setKeys(c),s.setEasingFunction(this._teleportationEasing),this.currentVRCamera.animations.push(s),this._postProcessMove.animations=[];var l=Math.round(r/2),u=new z(\"animationPP\",\"vignetteWeight\",90,z.ANIMATIONTYPE_FLOAT,z.ANIMATIONLOOPMODE_CONSTANT),h=[];h.push({frame:0,value:0}),h.push({frame:l,value:8}),h.push({frame:r,value:0}),u.setKeys(h),this._postProcessMove.animations.push(u);var d=new z(\"animationPP2\",\"vignetteStretch\",90,z.ANIMATIONTYPE_FLOAT,z.ANIMATIONLOOPMODE_CONSTANT),f=[];f.push({frame:0,value:0}),f.push({frame:l,value:10}),f.push({frame:r,value:0}),d.setKeys(f),this._postProcessMove.animations.push(d),this._postProcessMove.imageProcessingConfiguration.vignetteWeight=0,this._postProcessMove.imageProcessingConfiguration.vignetteStretch=0,this._webVRCamera.attachPostProcess(this._postProcessMove),this._scene.beginAnimation(this._postProcessMove,0,r,!1,n,(function(){i._webVRCamera.detachPostProcess(i._postProcessMove)})),this._scene.beginAnimation(this.currentVRCamera,0,r,!1,n,(function(){i.onAfterCameraTeleport.notifyObservers(i._workingVector)})),this._hideTeleportationTarget()}},e.prototype._convertNormalToDirectionOfRay=function(e,t){e&&(Math.acos(a.e.Dot(e,t.direction))s){var c=s;s=a,a=c}return a>0&&a0&&s=0))},e.prototype._canDoCollision=function(e,t,i,n){var r=a.e.Distance(this._basePointWorld,e),o=Math.max(this._radius.x,this._radius.y,this._radius.z);return!(r>this._velocityWorldLength+o+t)&&!!function(e,t,i,n){return!(e.x>i.x+n)&&(!(i.x-n>t.x)&&(!(e.y>i.y+n)&&(!(i.y-n>t.y)&&(!(e.z>i.z+n)&&!(i.z-n>t.z)))))}(i,n,this._basePointWorld,this._velocityWorldLength+o)},e.prototype._testTriangle=function(e,t,i,n,r,o,s){var c,l=!1;t||(t=[]),t[e]||(t[e]=new fn.a(0,0,0,0),t[e].copyFromPoints(i,n,r));var u=t[e];if(o||u.isFrontFacingTo(this._normalizedVelocity,0)){var h=u.signedDistanceTo(this._basePoint),d=a.e.Dot(u.normal,this._velocity);if(0==d){if(Math.abs(h)>=1)return;l=!0,c=0}else{var f=(1-h)/d;if((c=(-1-h)/d)>f){var p=f;f=c,c=p}if(c>1||f<0)return;c<0&&(c=0),c>1&&(c=1)}this._collisionPoint.copyFromFloats(0,0,0);var _=!1,m=1;if(l||(this._basePoint.subtractToRef(u.normal,this._planeIntersectionPoint),this._velocity.scaleToRef(c,this._tempVector),this._planeIntersectionPoint.addInPlace(this._tempVector),this._checkPointInTriangle(this._planeIntersectionPoint,i,n,r,u.normal)&&(_=!0,m=c,this._collisionPoint.copyFrom(this._planeIntersectionPoint))),!_){var g=this._velocity.lengthSquared(),v=g;this._basePoint.subtractToRef(i,this._tempVector);var b=2*a.e.Dot(this._velocity,this._tempVector),y=this._tempVector.lengthSquared()-1,T=pn(v,b,y,m);T.found&&(m=T.root,_=!0,this._collisionPoint.copyFrom(i)),this._basePoint.subtractToRef(n,this._tempVector),b=2*a.e.Dot(this._velocity,this._tempVector),y=this._tempVector.lengthSquared()-1,(T=pn(v,b,y,m)).found&&(m=T.root,_=!0,this._collisionPoint.copyFrom(n)),this._basePoint.subtractToRef(r,this._tempVector),b=2*a.e.Dot(this._velocity,this._tempVector),y=this._tempVector.lengthSquared()-1,(T=pn(v,b,y,m)).found&&(m=T.root,_=!0,this._collisionPoint.copyFrom(r)),n.subtractToRef(i,this._edge),i.subtractToRef(this._basePoint,this._baseToVertex);var E=this._edge.lengthSquared(),S=a.e.Dot(this._edge,this._velocity),A=a.e.Dot(this._edge,this._baseToVertex);if(v=E*-g+S*S,b=E*(2*a.e.Dot(this._velocity,this._baseToVertex))-2*S*A,y=E*(1-this._baseToVertex.lengthSquared())+A*A,(T=pn(v,b,y,m)).found){var P=(S*T.root-A)/E;P>=0&&P<=1&&(m=T.root,_=!0,this._edge.scaleInPlace(P),i.addToRef(this._edge,this._collisionPoint))}r.subtractToRef(n,this._edge),n.subtractToRef(this._basePoint,this._baseToVertex),E=this._edge.lengthSquared(),S=a.e.Dot(this._edge,this._velocity),A=a.e.Dot(this._edge,this._baseToVertex),v=E*-g+S*S,b=E*(2*a.e.Dot(this._velocity,this._baseToVertex))-2*S*A,y=E*(1-this._baseToVertex.lengthSquared())+A*A,(T=pn(v,b,y,m)).found&&(P=(S*T.root-A)/E)>=0&&P<=1&&(m=T.root,_=!0,this._edge.scaleInPlace(P),n.addToRef(this._edge,this._collisionPoint)),i.subtractToRef(r,this._edge),r.subtractToRef(this._basePoint,this._baseToVertex),E=this._edge.lengthSquared(),S=a.e.Dot(this._edge,this._velocity),A=a.e.Dot(this._edge,this._baseToVertex),v=E*-g+S*S,b=E*(2*a.e.Dot(this._velocity,this._baseToVertex))-2*S*A,y=E*(1-this._baseToVertex.lengthSquared())+A*A,(T=pn(v,b,y,m)).found&&(P=(S*T.root-A)/E)>=0&&P<=1&&(m=T.root,_=!0,this._edge.scaleInPlace(P),r.addToRef(this._edge,this._collisionPoint))}if(_){var C=m*this._velocity.length();(!this.collisionFound||C=n)r.copyFrom(e);else{var s=o?o.collisionMask:i.collisionMask;i._initialize(e,t,a);for(var c=o&&o.surroundingMeshes||this._scene.meshes,l=0;lthis.capacity&&this._depth-1&&this.entries.splice(i,1)}},e.prototype.addEntries=function(e){for(var t=0;t=n.buttons.length?r[i]=n.axes[i-n.buttons.length].valueOf():r[i]=n.buttons[i].value}},e.prototype._getGamepadDeviceType=function(e){return-1!==e.indexOf(\"054c\")?Pn.DualShock:-1!==e.indexOf(\"Xbox One\")||-1!==e.search(\"Xbox 360\")||-1!==e.search(\"xinput\")?Pn.Xbox:-1!==e.indexOf(\"057e\")?Pn.Switch:Pn.Generic},e._MAX_KEYCODES=255,e._MAX_POINTER_INPUTS=7,e}(),Nn=function(){function e(e,t,i){void 0===i&&(i=0),this.deviceType=t,this.deviceSlot=i,this.onInputChangedObservable=new o.c,this._deviceInputSystem=e}return e.prototype.getInput=function(e){return this._deviceInputSystem.pollInput(this.deviceType,this.deviceSlot,e)},e}(),Ln=function(){function e(e){var t=this;this.onDeviceConnectedObservable=new o.c((function(e){t.getDevices().forEach((function(i){t.onDeviceConnectedObservable.notifyObserver(e,i)}))})),this.onDeviceDisconnectedObservable=new o.c;var i=Object.keys(Pn).length/2;this._devices=new Array(i),this._firstDevice=new Array(i),this._deviceInputSystem=Dn.Create(e),this._deviceInputSystem.onDeviceConnected=function(e,i){t._addDevice(e,i),t.onDeviceConnectedObservable.notifyObservers(t.getDeviceSource(e,i))},this._deviceInputSystem.onDeviceDisconnected=function(e,i){var n=t.getDeviceSource(e,i);t._removeDevice(e,i),t.onDeviceDisconnectedObservable.notifyObservers(n)},this._deviceInputSystem.onInputChanged||(this._deviceInputSystem.onInputChanged=function(e,i,n,r,o){var a;null===(a=t.getDeviceSource(e,i))||void 0===a||a.onInputChangedObservable.notifyObservers({inputIndex:n,previousState:r,currentState:o})})}return e.prototype.getDeviceSource=function(e,t){if(void 0===t){if(void 0===this._firstDevice[e])return null;t=this._firstDevice[e]}return this._devices[e]&&void 0!==this._devices[e][t]?this._devices[e][t]:null},e.prototype.getDeviceSources=function(e){return this._devices[e].filter((function(e){return!!e}))},e.prototype.getDevices=function(){var e=new Array;return this._devices.forEach((function(t){e.push.apply(e,t)})),e},e.prototype.dispose=function(){this.onDeviceConnectedObservable.clear(),this.onDeviceDisconnectedObservable.clear(),this._deviceInputSystem.dispose()},e.prototype._addDevice=function(e,t){this._devices[e]||(this._devices[e]=new Array),this._devices[e][t]||(this._devices[e][t]=new Nn(this._deviceInputSystem,e,t),this._updateFirstDevices(e))},e.prototype._removeDevice=function(e,t){delete this._devices[e][t],this._updateFirstDevices(e)},e.prototype._updateFirstDevices=function(e){switch(e){case Pn.Keyboard:case Pn.Mouse:this._firstDevice[e]=0;break;case Pn.Touch:case Pn.DualShock:case Pn.Xbox:case Pn.Switch:case Pn.Generic:var t=this._devices[e];delete this._firstDevice[e];for(var i=0;ie.occlusionRetryCount))return!1;e.isOcclusionQueryInProgress=!1,e.occlusionInternalRetryCounter=0,e.isOccluded=e.occlusionType!==Ge.a.OCCLUSION_TYPE_OPTIMISTIC&&e.isOccluded}var n=this.getScene();if(n.getBoundingBoxRenderer){var r=n.getBoundingBoxRenderer();this._occlusionQuery||(this._occlusionQuery=t.createQuery()),t.beginOcclusionQuery(e.occlusionQueryAlgorithmType,this._occlusionQuery),r.renderOcclusionBoundingBox(this),t.endOcclusionQuery(e.occlusionQueryAlgorithmType),this._occlusionDataStorage.isOcclusionQueryInProgress=!0}return e.isOccluded};var Un=!0;Se.a.prototype.createTransformFeedback=function(){return this._gl.createTransformFeedback()},Se.a.prototype.deleteTransformFeedback=function(e){this._gl.deleteTransformFeedback(e)},Se.a.prototype.bindTransformFeedback=function(e){this._gl.bindTransformFeedback(this._gl.TRANSFORM_FEEDBACK,e)},Se.a.prototype.beginTransformFeedback=function(e){void 0===e&&(e=!0),this._gl.beginTransformFeedback(e?this._gl.POINTS:this._gl.TRIANGLES)},Se.a.prototype.endTransformFeedback=function(){this._gl.endTransformFeedback()},Se.a.prototype.setTranformFeedbackVaryings=function(e,t){this._gl.transformFeedbackVaryings(e,t,this._gl.INTERLEAVED_ATTRIBS)},Se.a.prototype.bindTransformFeedbackBuffer=function(e){this._gl.bindBufferBase(this._gl.TRANSFORM_FEEDBACK_BUFFER,0,e?e.underlyingResource:null)};i(126);qe.a.prototype.updateVideoTexture=function(e,t,i){if(e&&!e._isDisabled){var n=this._bindTextureDirectly(this._gl.TEXTURE_2D,e,!0);this._unpackFlipY(!i);try{if(void 0===this._videoTextureSupported&&(this._gl.getError(),this._gl.texImage2D(this._gl.TEXTURE_2D,0,this._gl.RGBA,this._gl.RGBA,this._gl.UNSIGNED_BYTE,t),0!==this._gl.getError()?this._videoTextureSupported=!1:this._videoTextureSupported=!0),this._videoTextureSupported)this._gl.texImage2D(this._gl.TEXTURE_2D,0,this._gl.RGBA,this._gl.RGBA,this._gl.UNSIGNED_BYTE,t);else{if(!e._workingCanvas){e._workingCanvas=Zi.a.CreateCanvas(e.width,e.height);var r=e._workingCanvas.getContext(\"2d\");if(!r)throw new Error(\"Unable to get 2d context\");e._workingContext=r,e._workingCanvas.width=e.width,e._workingCanvas.height=e.height}e._workingContext.clearRect(0,0,e.width,e.height),e._workingContext.drawImage(t,0,0,t.videoWidth,t.videoHeight,0,0,e.width,e.height),this._gl.texImage2D(this._gl.TEXTURE_2D,0,this._gl.RGBA,this._gl.RGBA,this._gl.UNSIGNED_BYTE,e._workingCanvas)}e.generateMipMaps&&this._gl.generateMipmap(this._gl.TEXTURE_2D),n||this._bindTextureDirectly(this._gl.TEXTURE_2D,null),e.isReady=!0}catch(t){e._isDisabled=!0}}},qe.a.prototype.restoreSingleAttachment=function(){var e=this._gl;this.bindAttachments([e.BACK])},qe.a.prototype.buildTextureLayout=function(e){for(var t=this._gl,i=[],n=0;n1?\"COLOR_ATTACHMENT\"+a:\"COLOR_ATTACHMENT\"+a+\"_WEBGL\"],n.readBuffer(r[a]),n.drawBuffers(r),n.blitFramebuffer(0,0,s.width,s.height,0,0,s.width,s.height,n.COLOR_BUFFER_BIT,n.NEAREST)}for(a=0;a1?\"COLOR_ATTACHMENT\"+a:\"COLOR_ATTACHMENT\"+a+\"_WEBGL\"];n.drawBuffers(r)}for(a=0;a1?\"COLOR_ATTACHMENT\"+y:\"COLOR_ATTACHMENT\"+y+\"_WEBGL\"];_.push(A),v.push(P),h.activeTexture(h[\"TEXTURE\"+y]),h.bindTexture(h.TEXTURE_2D,A._webGLTexture),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_MAG_FILTER,S.mag),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_MIN_FILTER,S.min),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_WRAP_S,h.CLAMP_TO_EDGE),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_WRAP_T,h.CLAMP_TO_EDGE),h.texImage2D(h.TEXTURE_2D,0,this._getRGBABufferInternalSizedFormat(E),f,p,0,h.RGBA,this._getWebGLTextureType(E),null),h.framebufferTexture2D(h.DRAW_FRAMEBUFFER,P,h.TEXTURE_2D,A._webGLTexture,0),i&&this._gl.generateMipmap(this._gl.TEXTURE_2D),this._bindTextureDirectly(h.TEXTURE_2D,null),A._framebuffer=d,A._depthStencilBuffer=b,A.baseWidth=f,A.baseHeight=p,A.width=f,A.height=p,A.isReady=!0,A.samples=1,A.generateMipMaps=i,A.samplingMode=T,A.type=E,A._generateDepthBuffer=n,A._generateStencilBuffer=r,A._attachments=v,A._textureArray=_,this._internalTexturesCache.push(A)}if(o&&this._caps.depthTextureExtension){var C=new Qe.a(this,Qe.b.MultiRenderTarget);h.activeTexture(h.TEXTURE0),h.bindTexture(h.TEXTURE_2D,C._webGLTexture),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_MAG_FILTER,h.NEAREST),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_MIN_FILTER,h.NEAREST),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_WRAP_S,h.CLAMP_TO_EDGE),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_WRAP_T,h.CLAMP_TO_EDGE),h.texImage2D(h.TEXTURE_2D,0,this.webGLVersion<2?h.DEPTH_COMPONENT:h.DEPTH_COMPONENT16,f,p,0,h.DEPTH_COMPONENT,h.UNSIGNED_SHORT,null),h.framebufferTexture2D(h.FRAMEBUFFER,h.DEPTH_ATTACHMENT,h.TEXTURE_2D,C._webGLTexture,0),C._framebuffer=d,C.baseWidth=f,C.baseHeight=p,C.width=f,C.height=p,C.isReady=!0,C.samples=1,C.generateMipMaps=i,C.samplingMode=h.NEAREST,C._generateDepthBuffer=n,C._generateStencilBuffer=r,_.push(C),this._internalTexturesCache.push(C)}return h.drawBuffers(v),this._bindUnboundFramebuffer(null),this.resetTextureCache(),_},qe.a.prototype.updateMultipleRenderTargetTextureSampleCount=function(e,t){if(this.webGLVersion<2||!e)return 1;if(e[0].samples===t)return t;var i=e[0]._attachments.length;if(0===i)return 1;var n=this._gl;t=Math.min(t,this.getCaps().maxMSAASamples),e[0]._depthStencilBuffer&&(n.deleteRenderbuffer(e[0]._depthStencilBuffer),e[0]._depthStencilBuffer=null),e[0]._MSAAFramebuffer&&(n.deleteFramebuffer(e[0]._MSAAFramebuffer),e[0]._MSAAFramebuffer=null);for(var r=0;r1&&n.renderbufferStorageMultisample){var o=n.createFramebuffer();if(!o)throw new Error(\"Unable to create multi sampled framebuffer\");this._bindUnboundFramebuffer(o);var a=this._setupFramebufferDepthAttachments(e[0]._generateStencilBuffer,e[0]._generateDepthBuffer,e[0].width,e[0].height,t),s=[];for(r=0;r1?\"COLOR_ATTACHMENT\"+r:\"COLOR_ATTACHMENT\"+r+\"_WEBGL\"],u=n.createRenderbuffer();if(!u)throw new Error(\"Unable to create multi sampled framebuffer\");n.bindRenderbuffer(n.RENDERBUFFER,u),n.renderbufferStorageMultisample(n.RENDERBUFFER,t,this._getRGBAMultiSampleBufferFormat(c.type),c.width,c.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,l,n.RENDERBUFFER,u),c._MSAAFramebuffer=o,c._MSAARenderBuffer=u,c.samples=t,c._depthStencilBuffer=a,n.bindRenderbuffer(n.RENDERBUFFER,null),s.push(l)}n.drawBuffers(s)}else this._bindUnboundFramebuffer(e[0]._framebuffer);return this._bindUnboundFramebuffer(null),t};var Vn=i(56);qe.a.prototype._createDepthStencilCubeTexture=function(e,t){var i=new Qe.a(this,Qe.b.Unknown);if(i.isCube=!0,1===this.webGLVersion)return m.a.Error(\"Depth cube texture is not supported by WebGL 1.\"),i;var n=Object(h.a)({bilinearFiltering:!1,comparisonFunction:0,generateStencil:!1},t),r=this._gl;this._bindTextureDirectly(r.TEXTURE_CUBE_MAP,i,!0),this._setupDepthStencilTexture(i,e,n.generateStencil,n.bilinearFiltering,n.comparisonFunction);for(var o=0;o<6;o++)n.generateStencil?r.texImage2D(r.TEXTURE_CUBE_MAP_POSITIVE_X+o,0,r.DEPTH24_STENCIL8,e,e,0,r.DEPTH_STENCIL,r.UNSIGNED_INT_24_8,null):r.texImage2D(r.TEXTURE_CUBE_MAP_POSITIVE_X+o,0,r.DEPTH_COMPONENT24,e,e,0,r.DEPTH_COMPONENT,r.UNSIGNED_INT,null);return this._bindTextureDirectly(r.TEXTURE_CUBE_MAP,null),i},qe.a.prototype._partialLoadFile=function(e,t,i,n,r){void 0===r&&(r=null);this._loadFile(e,(function(e){i[t]=e,i._internalCount++,6===i._internalCount&&n(i)}),void 0,void 0,!0,(function(e,t){r&&e&&r(e.status+\" \"+e.statusText,t)}))},qe.a.prototype._cascadeLoadFiles=function(e,t,i,n){void 0===n&&(n=null);var r=[];r._internalCount=0;for(var o=0;o<6;o++)this._partialLoadFile(i[o],o,r,t,n)},qe.a.prototype._cascadeLoadImgs=function(e,t,i,n,r){void 0===n&&(n=null);var o=[];o._internalCount=0;for(var a=0;a<6;a++)this._partialLoadImg(i[a],a,o,e,t,n,r)},qe.a.prototype._partialLoadImg=function(e,t,i,n,r,o,a){var s;void 0===o&&(o=null);s=Vn.a.LoadImage(e,(function(){s&&(i[t]=s,i._internalCount++,n&&n._removePendingData(s)),6===i._internalCount&&r(i)}),(function(e,t){n&&n._removePendingData(s),o&&o(e,t)}),n?n.offlineProvider:null,a),n&&s&&n._addPendingData(s)},qe.a.prototype._setCubeMapTextureParams=function(e,t){var i=this._gl;i.texParameteri(i.TEXTURE_CUBE_MAP,i.TEXTURE_MAG_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_CUBE_MAP,i.TEXTURE_MIN_FILTER,t?i.LINEAR_MIPMAP_LINEAR:i.LINEAR),i.texParameteri(i.TEXTURE_CUBE_MAP,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_CUBE_MAP,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),e.samplingMode=t?g.a.TEXTURE_TRILINEAR_SAMPLINGMODE:g.a.TEXTURE_LINEAR_LINEAR,this._bindTextureDirectly(i.TEXTURE_CUBE_MAP,null)},qe.a.prototype.createCubeTexture=function(e,t,i,n,r,o,a,s,c,l,u,h,d){var f=this;void 0===r&&(r=null),void 0===o&&(o=null),void 0===s&&(s=null),void 0===c&&(c=!1),void 0===l&&(l=0),void 0===u&&(u=0),void 0===h&&(h=null);var p=this._gl,_=h||new Qe.a(this,Qe.b.Cube);_.isCube=!0,_.url=e,_.generateMipMaps=!n,_._lodGenerationScale=l,_._lodGenerationOffset=u,this._doNotHandleContextLost||(_._extension=s,_._files=i);var g=e;this._transformTextureUrl&&!h&&(e=this._transformTextureUrl(e));for(var v=e.lastIndexOf(\".\"),b=s||(v>-1?e.substring(v).toLowerCase():\"\"),y=null,T=0,E=qe.a._TextureLoaders;T-1?e.substring(i,e.length):\"\";return(t>-1?e.substring(0,t):e)+this._textureFormatInUse+n}Object.defineProperty(Se.a.prototype,\"texturesSupported\",{get:function(){var e=new Array;return this._caps.astc&&e.push(\"-astc.ktx\"),this._caps.s3tc&&e.push(\"-dxt.ktx\"),this._caps.pvrtc&&e.push(\"-pvrtc.ktx\"),this._caps.etc2&&e.push(\"-etc2.ktx\"),this._caps.etc1&&e.push(\"-etc1.ktx\"),e},enumerable:!0,configurable:!0}),Object.defineProperty(Se.a.prototype,\"textureFormatInUse\",{get:function(){return this._textureFormatInUse||null},enumerable:!0,configurable:!0}),Se.a.prototype.setCompressedTextureExclusions=function(e){this._excludedCompressedTextures=e},Se.a.prototype.setTextureFormatToUse=function(e){for(var t=this.texturesSupported,i=0,n=t.length;i\\nvoid main(void)\\n{\\ngl_FragColor=toRGBD(texture2D(textureSampler,vUV).rgb);\\n}\";ai.a.ShadersStore.rgbdEncodePixelShader=er;var tr=\"\\nvarying vec2 vUV;\\nuniform sampler2D textureSampler;\\n#include\\nvoid main(void)\\n{\\ngl_FragColor=vec4(fromRGBD(texture2D(textureSampler,vUV)),1.0);\\n}\";ai.a.ShadersStore.rgbdDecodePixelShader=tr;var ir=function(){function e(){}return e.GetEnvInfo=function(t){for(var i=new DataView(t.buffer,t.byteOffset,t.byteLength),n=0,r=0;r=0&&p.push(m.substring(g+1))}\"void\"!==a&&p.push(\"return\"),this._functionDescr.push({name:s,type:a,parameters:p,body:d,callIndex:0}),t=h+1;var v=i>0?this._sourceCode.substring(0,i):\"\",b=h+1=0&&this._replaceFunctionCallsByCode(););return this.debug&&console.log(\"numMaxIterations is \"+e+\" after inlining process\"),e>=0},e.prototype._extractBetweenMarkers=function(e,t,i,n){for(var r=n,o=0,a=\"\";r0?this._sourceCode.substring(0,l):\"\",y=h+1=0&&e.charAt(t)!==i;)t--;return t},e.prototype._escapeRegExp=function(e){return e.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\")},e.prototype._replaceNames=function(e,t,i){for(var n=0;n=0){var s=t[r[o]];if(s){var c=s.getBuffer();c&&this._native.recordVertexBuffer(e,c.nativeVertexBuffer,a,s.byteOffset,s.byteStride,s.getSize(),this._getNativeAttribType(s.type),s.normalized)}}}},t.prototype.bindBuffers=function(e,t,i){this._boundBuffersVertexArray&&this._native.deleteVertexArray(this._boundBuffersVertexArray),this._boundBuffersVertexArray=this._native.createVertexArray(),this._recordVertexArrayObject(this._boundBuffersVertexArray,e,t,i),this._native.bindVertexArray(this._boundBuffersVertexArray)},t.prototype.recordVertexArrayObject=function(e,t,i){var n=this._native.createVertexArray();return this._recordVertexArrayObject(n,e,t,i),n},t.prototype.bindVertexArrayObject=function(e){this._native.bindVertexArray(e)},t.prototype.releaseVertexArrayObject=function(e){this._native.deleteVertexArray(e)},t.prototype.getAttributes=function(e,t){var i=e;return this._native.getAttributes(i.nativeProgram,t)},t.prototype.drawElementsType=function(e,t,i,n){this._drawCalls.addCount(1,!1),this._native.drawIndexed(e,t,i)},t.prototype.drawArraysType=function(e,t,i,n){this._drawCalls.addCount(1,!1),this._native.draw(e,t,i)},t.prototype.createPipelineContext=function(){return new or},t.prototype._preparePipelineContext=function(e,t,i,n,r,o,a){var s=e;s.nativeProgram=n?this.createRawShaderProgram(e,t,i,void 0,a):this.createShaderProgram(e,t,i,o,void 0,a)},t.prototype._isRenderingStateCompiled=function(e){return!0},t.prototype._executeWhenRenderingStateIsCompiled=function(e,t){t()},t.prototype.createRawShaderProgram=function(e,t,i,n,r){throw void 0===r&&(r=null),new Error(\"Not Supported\")},t.prototype.createShaderProgram=function(e,t,i,n,r,o){void 0===o&&(o=null),this.onBeforeShaderCompilationObservable.notifyObservers(this);var a=new rr(t);a.processCode(),t=a.code;var s=new rr(i);s.processCode(),i=s.code,t=qe.a._ConcatenateShader(t,n),i=qe.a._ConcatenateShader(i,n);var c=this._native.createProgram(t,i);return this.onAfterShaderCompilationObservable.notifyObservers(this),c},t.prototype._setProgram=function(e){this._currentProgram!==e&&(this._native.setProgram(e),this._currentProgram=e)},t.prototype._releaseEffect=function(e){},t.prototype._deletePipelineContext=function(e){},t.prototype.getUniforms=function(e,t){var i=e;return this._native.getUniforms(i.nativeProgram,t)},t.prototype.bindUniformBlock=function(e,t,i){throw new Error(\"Not Implemented\")},t.prototype.bindSamplers=function(e){var t=e.getPipelineContext();this._setProgram(t.nativeProgram);for(var i=e.getSamplers(),n=0;n-1?e.substring(y).toLowerCase():\"\"),E=null,S=0,A=Se.a._TextureLoaders;S-1?e.substring(p).toLowerCase():\"\"))){if(i&&6===i.length)throw new Error(\"Multi-file loading not allowed on env files.\");this._loadFile(e,(function(e){return function(e){var t=ir.GetEnvInfo(e);if(f.width=t.width,f.height=t.width,ir.UploadEnvSpherical(f,t),1!==t.version)throw new Error('Unsupported babylon environment map version \"'+t.version+'\"');var i=t.specular;if(!i)throw new Error(\"Nothing else parsed so far\");f._lodGenerationScale=i.lodGenerationScale;var n=ir.CreateImageDataArrayBufferViews(e,t);f.format=g.a.TEXTUREFORMAT_RGBA,f.type=g.a.TEXTURETYPE_UNSIGNED_INT,f.generateMipMaps=!0,f.getEngine().updateTextureSamplingMode(Ke.a.TRILINEAR_SAMPLINGMODE,f),f._isRGBD=!0,f.invertY=!0,d._native.loadCubeTextureWithMips(f._webGLTexture,n,(function(){f.isReady=!0,r&&r()}),(function(){throw new Error(\"Could not load a native cube texture.\")}))}(new Uint8Array(e))}),void 0,void 0,!0,(function(e,t){o&&e&&o(e.status+\" \"+e.statusText,t)}))}else{if(!i||6!==i.length)throw new Error(\"Cannot load cubemap because 6 files were not defined\");var _=[i[0],i[3],i[1],i[4],i[2],i[5]];Promise.all(_.map((function(e){return Ce.b.LoadFileAsync(e).then((function(e){return new Uint8Array(e)}))}))).then((function(e){return new Promise((function(t,i){d._native.loadCubeTexture(f._webGLTexture,e,!n,t,i)}))})).then((function(){f.isReady=!0,r&&r()}),(function(e){o&&o(\"Failed to load cubemap: \"+e.message,e)}))}return this._internalTexturesCache.push(f),f},t.prototype.createRenderTargetTexture=function(e,t){var i=new ci.a;void 0!==t&&\"object\"==typeof t?(i.generateMipMaps=t.generateMipMaps,i.generateDepthBuffer=void 0===t.generateDepthBuffer||t.generateDepthBuffer,i.generateStencilBuffer=i.generateDepthBuffer&&t.generateStencilBuffer,i.type=void 0===t.type?g.a.TEXTURETYPE_UNSIGNED_INT:t.type,i.samplingMode=void 0===t.samplingMode?g.a.TEXTURE_TRILINEAR_SAMPLINGMODE:t.samplingMode,i.format=void 0===t.format?g.a.TEXTUREFORMAT_RGBA:t.format):(i.generateMipMaps=t,i.generateDepthBuffer=!0,i.generateStencilBuffer=!1,i.type=g.a.TEXTURETYPE_UNSIGNED_INT,i.samplingMode=g.a.TEXTURE_TRILINEAR_SAMPLINGMODE,i.format=g.a.TEXTUREFORMAT_RGBA),(i.type!==g.a.TEXTURETYPE_FLOAT||this._caps.textureFloatLinearFiltering)&&(i.type!==g.a.TEXTURETYPE_HALF_FLOAT||this._caps.textureHalfFloatLinearFiltering)||(i.samplingMode=g.a.TEXTURE_NEAREST_SAMPLINGMODE);var n=new sr(this,Qe.b.RenderTarget),r=e.width||e,o=e.height||e;i.type!==g.a.TEXTURETYPE_FLOAT||this._caps.textureFloat||(i.type=g.a.TEXTURETYPE_UNSIGNED_INT,m.a.Warn(\"Float textures are not supported. Render target forced to TEXTURETYPE_UNSIGNED_BYTE type\"));var a=this._native.createFramebuffer(n._webGLTexture,r,o,this._getNativeTextureFormat(i.format,i.type),i.samplingMode,!!i.generateStencilBuffer,i.generateDepthBuffer,!!i.generateMipMaps);return n._framebuffer=a,n.baseWidth=r,n.baseHeight=o,n.width=r,n.height=o,n.isReady=!0,n.samples=1,n.generateMipMaps=!!i.generateMipMaps,n.samplingMode=i.samplingMode,n.type=i.type,n.format=i.format,n._generateDepthBuffer=i.generateDepthBuffer,n._generateStencilBuffer=!!i.generateStencilBuffer,this._internalTexturesCache.push(n),n},t.prototype.updateTextureSamplingMode=function(e,t){if(t._webGLTexture){var i=this._getNativeSamplingMode(e);this._native.setTextureSampling(t._webGLTexture,i)}t.samplingMode=e},t.prototype.bindFramebuffer=function(e,t,i,n,r){if(t)throw new Error(\"Cuboid frame buffers are not yet supported in NativeEngine.\");if(i||n)throw new Error(\"Required width/height for frame buffers not yet supported in NativeEngine.\");e._depthStencilTexture?this._bindUnboundFramebuffer(e._depthStencilTexture._framebuffer):this._bindUnboundFramebuffer(e._framebuffer)},t.prototype.unBindFramebuffer=function(e,t,i){void 0===t&&(t=!1),t&&m.a.Warn(\"Disabling mipmap generation not yet supported in NativeEngine. Ignoring.\"),i&&i(),this._bindUnboundFramebuffer(null)},t.prototype.createDynamicVertexBuffer=function(e){return this.createVertexBuffer(e,!0)},t.prototype.updateDynamicIndexBuffer=function(e,t,i){void 0===i&&(i=0);var n=e,r=this._normalizeIndexData(t);n.is32Bits=4===r.BYTES_PER_ELEMENT,this._native.updateDynamicIndexBuffer(n.nativeIndexBuffer,r,i)},t.prototype.updateDynamicVertexBuffer=function(e,t,i,n){var r=e,o=ArrayBuffer.isView(t)?t:new Float32Array(t);this._native.updateDynamicVertexBuffer(r.nativeVertexBuffer,o,null!=i?i:0,null!=n?n:o.byteLength)},t.prototype._setTexture=function(e,t,i,n){void 0===i&&(i=!1),void 0===n&&(n=!1);var r,o=this._boundUniforms[e];if(!o)return!1;if(!t)return null!=this._boundTexturesCache[e]&&(this._activeChannel=e,this._native.setTexture(o,null)),!1;if(t.video)this._activeChannel=e,t.update();else if(t.delayLoadState===g.a.DELAYLOADSTATE_NOTLOADED)return t.delayLoad(),!1;return r=n?t.depthStencilTexture:t.isReady()?t.getInternalTexture():t.isCube?this.emptyCubeTexture:t.is3D?this.emptyTexture3D:t.is2DArray?this.emptyTexture2DArray:this.emptyTexture,this._activeChannel=e,!(!r||!r._webGLTexture)&&(this._native.setTextureWrapMode(r._webGLTexture,this._getAddressMode(t.wrapU),this._getAddressMode(t.wrapV),this._getAddressMode(t.wrapR)),this._updateAnisotropicLevel(t),this._native.setTexture(o,r._webGLTexture),!0)},t.prototype._updateAnisotropicLevel=function(e){var t=e.getInternalTexture(),i=e.anisotropicFilteringLevel;t&&t._webGLTexture&&t._cachedAnisotropicFilteringLevel!==i&&(this._native.setTextureAnisotropicLevel(t._webGLTexture,i),t._cachedAnisotropicFilteringLevel=i)},t.prototype._getAddressMode=function(e){switch(e){case g.a.TEXTURE_WRAP_ADDRESSMODE:return this._native.ADDRESS_MODE_WRAP;case g.a.TEXTURE_CLAMP_ADDRESSMODE:return this._native.ADDRESS_MODE_CLAMP;case g.a.TEXTURE_MIRROR_ADDRESSMODE:return this._native.ADDRESS_MODE_MIRROR;default:throw new Error(\"Unexpected wrap mode: \"+e+\".\")}},t.prototype._bindTexture=function(e,t){var i=this._boundUniforms[e];i&&this._native.setTexture(i,t._webGLTexture)},t.prototype._deleteBuffer=function(e){e.nativeIndexBuffer&&(this._native.deleteIndexBuffer(e.nativeIndexBuffer),delete e.nativeIndexBuffer),e.nativeVertexBuffer&&(this._native.deleteVertexBuffer(e.nativeVertexBuffer),delete e.nativeVertexBuffer)},t.prototype.releaseEffects=function(){},t.prototype._uploadCompressedDataToTextureDirectly=function(e,t,i,n,r,o,a){throw void 0===o&&(o=0),void 0===a&&(a=0),new Error(\"_uploadCompressedDataToTextureDirectly not implemented.\")},t.prototype._uploadDataToTextureDirectly=function(e,t,i,n){throw void 0===i&&(i=0),void 0===n&&(n=0),new Error(\"_uploadDataToTextureDirectly not implemented.\")},t.prototype._uploadArrayBufferViewToTexture=function(e,t,i,n){throw void 0===i&&(i=0),void 0===n&&(n=0),new Error(\"_uploadArrayBufferViewToTexture not implemented.\")},t.prototype._uploadImageToTexture=function(e,t,i,n){throw void 0===i&&(i=0),void 0===n&&(n=0),new Error(\"_uploadArrayBufferViewToTexture not implemented.\")},t.prototype._getNativeSamplingMode=function(e){switch(e){case g.a.TEXTURE_NEAREST_NEAREST:return this._native.TEXTURE_NEAREST_NEAREST;case g.a.TEXTURE_LINEAR_LINEAR:return this._native.TEXTURE_LINEAR_LINEAR;case g.a.TEXTURE_LINEAR_LINEAR_MIPLINEAR:return this._native.TEXTURE_LINEAR_LINEAR_MIPLINEAR;case g.a.TEXTURE_NEAREST_NEAREST_MIPNEAREST:return this._native.TEXTURE_NEAREST_NEAREST_MIPNEAREST;case g.a.TEXTURE_NEAREST_LINEAR_MIPNEAREST:return this._native.TEXTURE_NEAREST_LINEAR_MIPNEAREST;case g.a.TEXTURE_NEAREST_LINEAR_MIPLINEAR:return this._native.TEXTURE_NEAREST_LINEAR_MIPLINEAR;case g.a.TEXTURE_NEAREST_LINEAR:return this._native.TEXTURE_NEAREST_LINEAR;case g.a.TEXTURE_NEAREST_NEAREST_MIPLINEAR:return this._native.TEXTURE_NEAREST_NEAREST_MIPLINEAR;case g.a.TEXTURE_LINEAR_NEAREST_MIPNEAREST:return this._native.TEXTURE_LINEAR_NEAREST_MIPNEAREST;case g.a.TEXTURE_LINEAR_NEAREST_MIPLINEAR:return this._native.TEXTURE_LINEAR_NEAREST_MIPLINEAR;case g.a.TEXTURE_LINEAR_LINEAR_MIPNEAREST:return this._native.TEXTURE_LINEAR_LINEAR_MIPNEAREST;case g.a.TEXTURE_LINEAR_NEAREST:return this._native.TEXTURE_LINEAR_NEAREST;default:throw new Error(\"Unsupported sampling mode: \"+e+\".\")}},t.prototype._getNativeTextureFormat=function(e,t){if(e==g.a.TEXTUREFORMAT_RGBA&&t==g.a.TEXTURETYPE_UNSIGNED_INT)return this._native.TEXTURE_FORMAT_RGBA8;if(e==g.a.TEXTUREFORMAT_RGBA&&t==g.a.TEXTURETYPE_FLOAT)return this._native.TEXTURE_FORMAT_RGBA32F;throw new Error(\"Unsupported texture format or type: format \"+e+\", type \"+t+\".\")},t.prototype._getNativeAlphaMode=function(e){switch(e){case g.a.ALPHA_DISABLE:return this._native.ALPHA_DISABLE;case g.a.ALPHA_ADD:return this._native.ALPHA_ADD;case g.a.ALPHA_COMBINE:return this._native.ALPHA_COMBINE;case g.a.ALPHA_SUBTRACT:return this._native.ALPHA_SUBTRACT;case g.a.ALPHA_MULTIPLY:return this._native.ALPHA_MULTIPLY;case g.a.ALPHA_MAXIMIZED:return this._native.ALPHA_MAXIMIZED;case g.a.ALPHA_ONEONE:return this._native.ALPHA_ONEONE;case g.a.ALPHA_PREMULTIPLIED:return this._native.ALPHA_PREMULTIPLIED;case g.a.ALPHA_PREMULTIPLIED_PORTERDUFF:return this._native.ALPHA_PREMULTIPLIED_PORTERDUFF;case g.a.ALPHA_INTERPOLATE:return this._native.ALPHA_INTERPOLATE;case g.a.ALPHA_SCREENMODE:return this._native.ALPHA_SCREENMODE;default:throw new Error(\"Unsupported alpha mode: \"+e+\".\")}},t.prototype._getNativeAttribType=function(e){switch(e){case Qi.b.UNSIGNED_BYTE:return this._native.ATTRIB_TYPE_UINT8;case Qi.b.SHORT:return this._native.ATTRIB_TYPE_INT16;case Qi.b.FLOAT:return this._native.ATTRIB_TYPE_FLOAT;default:throw new Error(\"Unsupported attribute type: \"+e+\".\")}},t}(Se.a),lr=i(74),ur=function(){function e(){}return e.COPY=1,e.CUT=2,e.PASTE=3,e}(),hr=function(){function e(e,t){this.type=e,this.event=t}return e.GetTypeFromCharacter=function(e){switch(e){case 67:return ur.COPY;case 86:return ur.PASTE;case 88:return ur.CUT;default:return-1}},e}(),dr=i(83),fr=i(69);!function(e){e[e.Clean=0]=\"Clean\",e[e.Stop=1]=\"Stop\",e[e.Sync=2]=\"Sync\",e[e.NoSync=3]=\"NoSync\"}(nr||(nr={}));var pr=function(){function e(){}return Object.defineProperty(e,\"ForceFullSceneLoadingForIncremental\",{get:function(){return fr.a.ForceFullSceneLoadingForIncremental},set:function(e){fr.a.ForceFullSceneLoadingForIncremental=e},enumerable:!1,configurable:!0}),Object.defineProperty(e,\"ShowLoadingScreen\",{get:function(){return fr.a.ShowLoadingScreen},set:function(e){fr.a.ShowLoadingScreen=e},enumerable:!1,configurable:!0}),Object.defineProperty(e,\"loggingLevel\",{get:function(){return fr.a.loggingLevel},set:function(e){fr.a.loggingLevel=e},enumerable:!1,configurable:!0}),Object.defineProperty(e,\"CleanBoneMatrixWeights\",{get:function(){return fr.a.CleanBoneMatrixWeights},set:function(e){fr.a.CleanBoneMatrixWeights=e},enumerable:!1,configurable:!0}),e.GetDefaultPlugin=function(){return e._registeredPlugins[\".babylon\"]},e._GetPluginForExtension=function(t){var i=e._registeredPlugins[t];return i||(m.a.Warn(\"Unable to find a plugin to load \"+t+\" files. Trying to use .babylon default plugin. To load from a specific filetype (eg. gltf) see: https://doc.babylonjs.com/how_to/load_from_any_file_type\"),e.GetDefaultPlugin())},e._GetPluginForDirectLoad=function(t){for(var i in e._registeredPlugins){var n=e._registeredPlugins[i].plugin;if(n.canDirectLoad&&n.canDirectLoad(t))return e._registeredPlugins[i]}return e.GetDefaultPlugin()},e._GetPluginForFilename=function(t){var i=t.indexOf(\"?\");-1!==i&&(t=t.substring(0,i));var n=t.lastIndexOf(\".\"),r=t.substring(n,t.length).toLowerCase();return e._GetPluginForExtension(r)},e._GetDirectLoad=function(e){return\"data:\"===e.substr(0,5)?e.substr(5):null},e._LoadData=function(t,i,n,r,o,a,s){var c,l=e._GetDirectLoad(t.name),u=s?e._GetPluginForExtension(s):l?e._GetPluginForDirectLoad(t.name):e._GetPluginForFilename(t.name);if(!(c=void 0!==u.plugin.createPlugin?u.plugin.createPlugin():u.plugin))throw\"The loader plugin corresponding to the file type you are trying to load has not been found. If using es6, please import the plugin you wish to use before.\";if(e.OnPluginActivatedObservable.notifyObservers(c),l){if(c.directLoad){var h=c.directLoad(i,l);h.then?h.then((function(e){n(c,e)})).catch((function(e){o(\"Error in directLoad of _loadData: \"+e,e)})):n(c,h)}else n(c,l);return c}var d=u.isBinary,f=function(e,t){i.isDisposed?o(\"Scene has been disposed\"):n(c,e,t)},p=null,_=!1,m=c.onDisposeObservable;m&&m.add((function(){_=!0,p&&(p.abort(),p=null),a()}));var g=function(){if(!_){var e=function(e,t){f(e,t?t.responseURL:void 0)},n=function(e){o(e.message,e)};p=c.requestFile?c.requestFile(i,t.url,e,r,d,n):i._requestFile(t.url,e,r,!0,d,n)}},v=t.file||dr.a.FilesToLoad[t.name.toLowerCase()];if(-1===t.rootUrl.indexOf(\"file:\")||-1!==t.rootUrl.indexOf(\"file:\")&&!v){var b=i.getEngine(),y=b.enableOfflineSupport;if(y){for(var T=!1,E=0,S=i.disableOfflineSupportExceptionRules;Em.snapDistance?(r=Math.floor(Math.abs(C)/m.snapDistance),C<0&&(r*=-1),C%=m.snapDistance,R.scaleToRef(m.snapDistance*r,R),n=!0):R.scaleInPlace(0)),a.a.ScalingToRef(1+R.x,1+R.y,1+R.z,m._tmpMatrix2),m._tmpMatrix2.multiplyToRef(m.attachedNode.getWorldMatrix(),m._tmpMatrix),m._tmpMatrix.decompose(m._tmpVector);Math.abs(m._tmpVector.x)<1e5&&Math.abs(m._tmpVector.y)<1e5&&Math.abs(m._tmpVector.z)<1e5&&m.attachedNode.getWorldMatrix().copyFrom(m._tmpMatrix),n&&(x.snapDistance=m.snapDistance*r,m.onSnapObservable.notifyObservers(x)),m._matrixChanged()}})),m.dragBehavior.onDragStartObservable.add((function(){m._dragging=!0})),m.dragBehavior.onDragObservable.add((function(e){return A(e.dragDistance)})),m.dragBehavior.onDragEndObservable.add(P),null===(h=null===(u=null===(l=null==r?void 0:r.uniformScaleGizmo)||void 0===l?void 0:l.dragBehavior)||void 0===u?void 0:u.onDragObservable)||void 0===h||h.add((function(e){return A(e.delta.y)})),null===(p=null===(f=null===(d=null==r?void 0:r.uniformScaleGizmo)||void 0===d?void 0:d.dragBehavior)||void 0===f?void 0:f.onDragEndObservable)||void 0===p||p.add(P);var O={gizmoMeshes:[v,b],colliderMeshes:[y.arrowMesh,y.arrowTail],material:m._coloredMaterial,hoverMaterial:m._hoverMaterial,disableMaterial:m._disableMaterial,active:!1};null===(_=m._parent)||void 0===_||_.addToAxisCache(m._gizmoMesh,O),m._pointerObserver=n.utilityLayerScene.onPointerObservable.add((function(e){var t;if(!m._customMeshSet&&(m._isHovered=!(-1==O.colliderMeshes.indexOf(null===(t=null==e?void 0:e.pickInfo)||void 0===t?void 0:t.pickedMesh)),!m._parent)){var i=m._isHovered||m._dragging?m._hoverMaterial:m._coloredMaterial;O.gizmoMeshes.forEach((function(e){e.material=i,e.color&&(e.color=i.diffuseColor)}))}}));var M=n._getSharedGizmoLight();return M.includedOnlyMeshes=M.includedOnlyMeshes.concat(m._rootMesh.getChildMeshes()),m}return Object(h.d)(t,e),t.prototype._createGizmoMesh=function(e,t,i){void 0===i&&(i=!1);var n=Ar.a.CreateBox(\"yPosMesh\",{size:.4*(1+(t-1)/4)},this.gizmoLayer.utilityLayerScene),r=nn.a.CreateCylinder(\"cylinder\",{diameterTop:.005*t,height:.275,diameterBottom:.005*t,tessellation:96},this.gizmoLayer.utilityLayerScene);return n.scaling.scaleInPlace(.1),n.material=this._coloredMaterial,n.rotation.x=Math.PI/2,n.position.z+=.3,r.material=this._coloredMaterial,r.position.z+=.1375,r.rotation.x=Math.PI/2,i&&(n.visibility=0,r.visibility=0),e.addChild(n),e.addChild(r),{arrowMesh:n,arrowTail:r}},t.prototype._attachedNodeChanged=function(e){this.dragBehavior&&(this.dragBehavior.enabled=!!e)},Object.defineProperty(t.prototype,\"isEnabled\",{get:function(){return this._isEnabled},set:function(e){this._isEnabled=e,e?this._parent&&(this.attachedMesh=this._parent.attachedMesh,this.attachedNode=this._parent.attachedNode):(this.attachedMesh=null,this.attachedNode=null)},enumerable:!1,configurable:!0}),t.prototype.dispose=function(){this.onSnapObservable.clear(),this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver),this.dragBehavior.detach(),this._gizmoMesh&&this._gizmoMesh.dispose(),[this._coloredMaterial,this._hoverMaterial,this._disableMaterial].forEach((function(e){e&&e.dispose()})),e.prototype.dispose.call(this)},t.prototype.setCustomMesh=function(t,i){var n=this;void 0===i&&(i=!1),e.prototype.setCustomMesh.call(this,t),i&&(this._rootMesh.getChildMeshes().forEach((function(e){e.material=n._coloredMaterial,e.color&&(e.color=n._coloredMaterial.diffuseColor)})),this._customMeshSet=!1)},t}(Pr.a),xr=i(45),Or=i(40),Mr=function(e){function t(t,i){void 0===t&&(t=s.a.Gray()),void 0===i&&(i=Cr.a.DefaultKeepDepthUtilityLayer);var n=e.call(this,i)||this;n._boundingDimensions=new a.e(1,1,1),n._renderObserver=null,n._pointerObserver=null,n._scaleDragSpeed=.2,n._tmpQuaternion=new a.b,n._tmpVector=new a.e(0,0,0),n._tmpRotationMatrix=new a.a,n.ignoreChildren=!1,n.includeChildPredicate=null,n.rotationSphereSize=.1,n.scaleBoxSize=.1,n.fixedDragMeshScreenSize=!1,n.fixedDragMeshBoundsSize=!1,n.fixedDragMeshScreenSizeDistanceFactor=10,n.onDragStartObservable=new o.c,n.onScaleBoxDragObservable=new o.c,n.onScaleBoxDragEndObservable=new o.c,n.onRotationSphereDragObservable=new o.c,n.onRotationSphereDragEndObservable=new o.c,n.scalePivot=null,n._existingMeshScale=new a.e,n._dragMesh=null,n.pointerDragBehavior=new ke.a,n.updateScale=!1,n._anchorMesh=new Ge.a(\"anchor\",i.utilityLayerScene),n.coloredMaterial=new Wi.a(\"\",i.utilityLayerScene),n.coloredMaterial.disableLighting=!0,n.hoverColoredMaterial=new Wi.a(\"\",i.utilityLayerScene),n.hoverColoredMaterial.disableLighting=!0,n._lineBoundingBox=new Ge.a(\"\",i.utilityLayerScene),n._lineBoundingBox.rotationQuaternion=new a.b;var r=[];r.push(Or.a.CreateLines(\"lines\",{points:[new a.e(0,0,0),new a.e(n._boundingDimensions.x,0,0)]},i.utilityLayerScene)),r.push(Or.a.CreateLines(\"lines\",{points:[new a.e(0,0,0),new a.e(0,n._boundingDimensions.y,0)]},i.utilityLayerScene)),r.push(Or.a.CreateLines(\"lines\",{points:[new a.e(0,0,0),new a.e(0,0,n._boundingDimensions.z)]},i.utilityLayerScene)),r.push(Or.a.CreateLines(\"lines\",{points:[new a.e(n._boundingDimensions.x,0,0),new a.e(n._boundingDimensions.x,n._boundingDimensions.y,0)]},i.utilityLayerScene)),r.push(Or.a.CreateLines(\"lines\",{points:[new a.e(n._boundingDimensions.x,0,0),new a.e(n._boundingDimensions.x,0,n._boundingDimensions.z)]},i.utilityLayerScene)),r.push(Or.a.CreateLines(\"lines\",{points:[new a.e(0,n._boundingDimensions.y,0),new a.e(n._boundingDimensions.x,n._boundingDimensions.y,0)]},i.utilityLayerScene)),r.push(Or.a.CreateLines(\"lines\",{points:[new a.e(0,n._boundingDimensions.y,0),new a.e(0,n._boundingDimensions.y,n._boundingDimensions.z)]},i.utilityLayerScene)),r.push(Or.a.CreateLines(\"lines\",{points:[new a.e(0,0,n._boundingDimensions.z),new a.e(n._boundingDimensions.x,0,n._boundingDimensions.z)]},i.utilityLayerScene)),r.push(Or.a.CreateLines(\"lines\",{points:[new a.e(0,0,n._boundingDimensions.z),new a.e(0,n._boundingDimensions.y,n._boundingDimensions.z)]},i.utilityLayerScene)),r.push(Or.a.CreateLines(\"lines\",{points:[new a.e(n._boundingDimensions.x,n._boundingDimensions.y,n._boundingDimensions.z),new a.e(0,n._boundingDimensions.y,n._boundingDimensions.z)]},i.utilityLayerScene)),r.push(Or.a.CreateLines(\"lines\",{points:[new a.e(n._boundingDimensions.x,n._boundingDimensions.y,n._boundingDimensions.z),new a.e(n._boundingDimensions.x,0,n._boundingDimensions.z)]},i.utilityLayerScene)),r.push(Or.a.CreateLines(\"lines\",{points:[new a.e(n._boundingDimensions.x,n._boundingDimensions.y,n._boundingDimensions.z),new a.e(n._boundingDimensions.x,n._boundingDimensions.y,0)]},i.utilityLayerScene)),r.forEach((function(e){e.color=t,e.position.addInPlace(new a.e(-n._boundingDimensions.x/2,-n._boundingDimensions.y/2,-n._boundingDimensions.z/2)),e.isPickable=!1,n._lineBoundingBox.addChild(e)})),n._rootMesh.addChild(n._lineBoundingBox),n.setColor(t),n._rotateSpheresParent=new Ge.a(\"\",i.utilityLayerScene),n._rotateSpheresParent.rotationQuaternion=new a.b;for(var c=function(e){var t=xr.a.CreateSphere(\"\",{diameter:1},i.utilityLayerScene);t.rotationQuaternion=new a.b,t.material=l.coloredMaterial,(f=new ke.a({})).moveAttached=!1,f.updateDragPlane=!1,t.addBehavior(f);var r=new a.e(1,0,0),o=0;f.onDragStartObservable.add((function(){r.copyFrom(t.forward),o=0})),f.onDragObservable.add((function(t){if(n.onRotationSphereDragObservable.notifyObservers({}),n.attachedMesh){var i=n.attachedMesh.parent;if(i&&i.scaling&&i.scaling.isNonUniformWithinEpsilon(.001))return void m.a.Warn(\"BoundingBoxGizmo controls are not supported on child meshes with non-uniform parent scaling\");We.a._RemoveAndStorePivotPoint(n.attachedMesh);var s=r,c=t.dragPlaneNormal.scale(a.e.Dot(t.dragPlaneNormal,s)),l=s.subtract(c).normalizeToNew(),u=a.e.Dot(l,t.delta)<0?Math.abs(t.delta.length()):-Math.abs(t.delta.length());u=u/n._boundingDimensions.length()*n._anchorMesh.scaling.length(),n.attachedMesh.rotationQuaternion||(n.attachedMesh.rotationQuaternion=a.b.RotationYawPitchRoll(n.attachedMesh.rotation.y,n.attachedMesh.rotation.x,n.attachedMesh.rotation.z)),n._anchorMesh.rotationQuaternion||(n._anchorMesh.rotationQuaternion=a.b.RotationYawPitchRoll(n._anchorMesh.rotation.y,n._anchorMesh.rotation.x,n._anchorMesh.rotation.z)),o+=u,Math.abs(o)<=2*Math.PI&&(e>=8?a.b.RotationYawPitchRollToRef(0,0,u,n._tmpQuaternion):e>=4?a.b.RotationYawPitchRollToRef(u,0,0,n._tmpQuaternion):a.b.RotationYawPitchRollToRef(0,u,0,n._tmpQuaternion),n._anchorMesh.addChild(n.attachedMesh),n._anchorMesh.rotationQuaternion.multiplyToRef(n._tmpQuaternion,n._anchorMesh.rotationQuaternion),n._anchorMesh.removeChild(n.attachedMesh),n.attachedMesh.setParent(i)),n.updateBoundingBox(),We.a._RestorePivotPoint(n.attachedMesh)}n._updateDummy()})),f.onDragStartObservable.add((function(){n.onDragStartObservable.notifyObservers({}),n._selectNode(t)})),f.onDragEndObservable.add((function(){n.onRotationSphereDragEndObservable.notifyObservers({}),n._selectNode(null),n._updateDummy()})),l._rotateSpheresParent.addChild(t)},l=this,u=0;u<12;u++)c(u);n._rootMesh.addChild(n._rotateSpheresParent),n._scaleBoxesParent=new Ge.a(\"\",i.utilityLayerScene),n._scaleBoxesParent.rotationQuaternion=new a.b;for(var h=0;h<3;h++)for(var d=0;d<3;d++)for(var f,p=function(){var e=(1===h?1:0)+(1===d?1:0)+(1===g?1:0);if(1===e||3===e)return\"continue\";var t=Ar.a.CreateBox(\"\",{size:1},i.utilityLayerScene);t.material=_.coloredMaterial,t.metadata=2===e;var r=new a.e(h-1,d-1,g-1).normalize();(f=new ke.a({dragAxis:r})).updateDragPlane=!1,f.moveAttached=!1,t.addBehavior(f),f.onDragObservable.add((function(i){if(n.onScaleBoxDragObservable.notifyObservers({}),n.attachedMesh){var o=n.attachedMesh.parent;if(o&&o.scaling&&o.scaling.isNonUniformWithinEpsilon(.001))return void m.a.Warn(\"BoundingBoxGizmo controls are not supported on child meshes with non-uniform parent scaling\");We.a._RemoveAndStorePivotPoint(n.attachedMesh);var s=i.dragDistance/n._boundingDimensions.length()*n._anchorMesh.scaling.length(),c=new a.e(s,s,s);2===e&&(c.x*=Math.abs(r.x),c.y*=Math.abs(r.y),c.z*=Math.abs(r.z)),c.scaleInPlace(n._scaleDragSpeed),n.updateBoundingBox(),n.scalePivot?(n.attachedMesh.getWorldMatrix().getRotationMatrixToRef(n._tmpRotationMatrix),n._boundingDimensions.scaleToRef(.5,n._tmpVector),a.e.TransformCoordinatesToRef(n._tmpVector,n._tmpRotationMatrix,n._tmpVector),n._anchorMesh.position.subtractInPlace(n._tmpVector),n._boundingDimensions.multiplyToRef(n.scalePivot,n._tmpVector),a.e.TransformCoordinatesToRef(n._tmpVector,n._tmpRotationMatrix,n._tmpVector),n._anchorMesh.position.addInPlace(n._tmpVector)):(t.absolutePosition.subtractToRef(n._anchorMesh.position,n._tmpVector),n._anchorMesh.position.subtractInPlace(n._tmpVector)),n._anchorMesh.addChild(n.attachedMesh),n._anchorMesh.scaling.addInPlace(c),(n._anchorMesh.scaling.x<0||n._anchorMesh.scaling.y<0||n._anchorMesh.scaling.z<0)&&n._anchorMesh.scaling.subtractInPlace(c),n._anchorMesh.removeChild(n.attachedMesh),n.attachedMesh.setParent(o),We.a._RestorePivotPoint(n.attachedMesh)}n._updateDummy()})),f.onDragStartObservable.add((function(){n.onDragStartObservable.notifyObservers({}),n._selectNode(t)})),f.onDragEndObservable.add((function(){n.onScaleBoxDragEndObservable.notifyObservers({}),n._selectNode(null),n._updateDummy()})),_._scaleBoxesParent.addChild(t)},_=this,g=0;g<3;g++)p();n._rootMesh.addChild(n._scaleBoxesParent);var v=new Array;return n._pointerObserver=i.utilityLayerScene.onPointerObservable.add((function(e){v[e.event.pointerId]?e.pickInfo&&e.pickInfo.pickedMesh!=v[e.event.pointerId]&&(v[e.event.pointerId].material=n.coloredMaterial,delete v[e.event.pointerId]):n._rotateSpheresParent.getChildMeshes().concat(n._scaleBoxesParent.getChildMeshes()).forEach((function(t){e.pickInfo&&e.pickInfo.pickedMesh==t&&(v[e.event.pointerId]=t,t.material=n.hoverColoredMaterial)}))})),n._renderObserver=n.gizmoLayer.originalScene.onBeforeRenderObservable.add((function(){n.attachedMesh&&!n._existingMeshScale.equals(n.attachedMesh.scaling)?n.updateBoundingBox():(n.fixedDragMeshScreenSize||n.fixedDragMeshBoundsSize)&&(n._updateRotationSpheres(),n._updateScaleBoxes()),n._dragMesh&&n.attachedMesh&&n.pointerDragBehavior.dragging&&(n._lineBoundingBox.position.rotateByQuaternionToRef(n._rootMesh.rotationQuaternion,n._tmpVector),n.attachedMesh.setAbsolutePosition(n._dragMesh.position.add(n._tmpVector.scale(-1))))})),n.updateBoundingBox(),n}return Object(h.d)(t,e),t.prototype.setColor=function(e){this.coloredMaterial.emissiveColor=e,this.hoverColoredMaterial.emissiveColor=e.clone().add(new s.a(.3,.3,.3)),this._lineBoundingBox.getChildren().forEach((function(t){t.color&&(t.color=e)}))},t.prototype._attachedNodeChanged=function(e){var t=this;if(e){We.a._RemoveAndStorePivotPoint(e);var i=e.parent;this._anchorMesh.addChild(e),this._anchorMesh.removeChild(e),e.setParent(i),We.a._RestorePivotPoint(e),this.updateBoundingBox(),e.getChildMeshes(!1).forEach((function(e){e.markAsDirty(\"scaling\")})),this.gizmoLayer.utilityLayerScene.onAfterRenderObservable.addOnce((function(){t._updateDummy()}))}},t.prototype._selectNode=function(e){this._rotateSpheresParent.getChildMeshes().concat(this._scaleBoxesParent.getChildMeshes()).forEach((function(t){t.isVisible=!e||t==e}))},t.prototype.updateBoundingBox=function(){if(this.attachedMesh){We.a._RemoveAndStorePivotPoint(this.attachedMesh);var e=this.attachedMesh.parent;this.attachedMesh.setParent(null);var t=null;this.attachedMesh.skeleton&&(t=this.attachedMesh.skeleton.overrideMesh,this.attachedMesh.skeleton.overrideMesh=null),this._update(),this.attachedMesh.rotationQuaternion||(this.attachedMesh.rotationQuaternion=a.b.RotationYawPitchRoll(this.attachedMesh.rotation.y,this.attachedMesh.rotation.x,this.attachedMesh.rotation.z)),this._anchorMesh.rotationQuaternion||(this._anchorMesh.rotationQuaternion=a.b.RotationYawPitchRoll(this._anchorMesh.rotation.y,this._anchorMesh.rotation.x,this._anchorMesh.rotation.z)),this._anchorMesh.rotationQuaternion.copyFrom(this.attachedMesh.rotationQuaternion),this._tmpQuaternion.copyFrom(this.attachedMesh.rotationQuaternion),this._tmpVector.copyFrom(this.attachedMesh.position),this.attachedMesh.rotationQuaternion.set(0,0,0,1),this.attachedMesh.position.set(0,0,0);var i=this.attachedMesh.getHierarchyBoundingVectors(!this.ignoreChildren,this.includeChildPredicate);i.max.subtractToRef(i.min,this._boundingDimensions),this._lineBoundingBox.scaling.copyFrom(this._boundingDimensions),this._lineBoundingBox.position.set((i.max.x+i.min.x)/2,(i.max.y+i.min.y)/2,(i.max.z+i.min.z)/2),this._rotateSpheresParent.position.copyFrom(this._lineBoundingBox.position),this._scaleBoxesParent.position.copyFrom(this._lineBoundingBox.position),this._lineBoundingBox.computeWorldMatrix(),this._anchorMesh.position.copyFrom(this._lineBoundingBox.absolutePosition),this.attachedMesh.rotationQuaternion.copyFrom(this._tmpQuaternion),this.attachedMesh.position.copyFrom(this._tmpVector),this.attachedMesh.setParent(e),this.attachedMesh.skeleton&&(this.attachedMesh.skeleton.overrideMesh=t)}this._updateRotationSpheres(),this._updateScaleBoxes(),this.attachedMesh&&(this._existingMeshScale.copyFrom(this.attachedMesh.scaling),We.a._RestorePivotPoint(this.attachedMesh))},t.prototype._updateRotationSpheres=function(){for(var e=this._rotateSpheresParent.getChildMeshes(),t=0;t<3;t++)for(var i=0;i<2;i++)for(var n=0;n<2;n++){var r=4*t+2*i+n;if(0==t&&(e[r].position.set(this._boundingDimensions.x/2,this._boundingDimensions.y*i,this._boundingDimensions.z*n),e[r].position.addInPlace(new a.e(-this._boundingDimensions.x/2,-this._boundingDimensions.y/2,-this._boundingDimensions.z/2)),e[r].lookAt(a.e.Cross(e[r].position.normalizeToNew(),a.e.Right()).normalizeToNew().add(e[r].position))),1==t&&(e[r].position.set(this._boundingDimensions.x*i,this._boundingDimensions.y/2,this._boundingDimensions.z*n),e[r].position.addInPlace(new a.e(-this._boundingDimensions.x/2,-this._boundingDimensions.y/2,-this._boundingDimensions.z/2)),e[r].lookAt(a.e.Cross(e[r].position.normalizeToNew(),a.e.Up()).normalizeToNew().add(e[r].position))),2==t&&(e[r].position.set(this._boundingDimensions.x*i,this._boundingDimensions.y*n,this._boundingDimensions.z/2),e[r].position.addInPlace(new a.e(-this._boundingDimensions.x/2,-this._boundingDimensions.y/2,-this._boundingDimensions.z/2)),e[r].lookAt(a.e.Cross(e[r].position.normalizeToNew(),a.e.Forward()).normalizeToNew().add(e[r].position))),this.fixedDragMeshScreenSize&&this.gizmoLayer.utilityLayerScene.activeCamera){e[r].absolutePosition.subtractToRef(this.gizmoLayer.utilityLayerScene.activeCamera.position,this._tmpVector);var o=this.rotationSphereSize*this._tmpVector.length()/this.fixedDragMeshScreenSizeDistanceFactor;e[r].scaling.set(o,o,o)}else this.fixedDragMeshBoundsSize?e[r].scaling.set(this.rotationSphereSize*this._boundingDimensions.x,this.rotationSphereSize*this._boundingDimensions.y,this.rotationSphereSize*this._boundingDimensions.z):e[r].scaling.set(this.rotationSphereSize,this.rotationSphereSize,this.rotationSphereSize)}},t.prototype._updateScaleBoxes=function(){for(var e=this._scaleBoxesParent.getChildMeshes(),t=0,i=0;i<3;i++)for(var n=0;n<3;n++)for(var r=0;r<3;r++){var o=(1===i?1:0)+(1===n?1:0)+(1===r?1:0);if(1!==o&&3!==o){if(e[t])if(e[t].position.set(this._boundingDimensions.x*(i/2),this._boundingDimensions.y*(n/2),this._boundingDimensions.z*(r/2)),e[t].position.addInPlace(new a.e(-this._boundingDimensions.x/2,-this._boundingDimensions.y/2,-this._boundingDimensions.z/2)),this.fixedDragMeshScreenSize&&this.gizmoLayer.utilityLayerScene.activeCamera){e[t].absolutePosition.subtractToRef(this.gizmoLayer.utilityLayerScene.activeCamera.position,this._tmpVector);var s=this.scaleBoxSize*this._tmpVector.length()/this.fixedDragMeshScreenSizeDistanceFactor;e[t].scaling.set(s,s,s)}else this.fixedDragMeshBoundsSize?e[t].scaling.set(this.scaleBoxSize*this._boundingDimensions.x,this.scaleBoxSize*this._boundingDimensions.y,this.scaleBoxSize*this._boundingDimensions.z):e[t].scaling.set(this.scaleBoxSize,this.scaleBoxSize,this.scaleBoxSize);t++}}},t.prototype.setEnabledRotationAxis=function(e){this._rotateSpheresParent.getChildMeshes().forEach((function(t,i){i<4?t.setEnabled(-1!=e.indexOf(\"x\")):i<8?t.setEnabled(-1!=e.indexOf(\"y\")):t.setEnabled(-1!=e.indexOf(\"z\"))}))},t.prototype.setEnabledScaling=function(e,t){void 0===t&&(t=!1),this._scaleBoxesParent.getChildMeshes().forEach((function(i,n){var r=e;t&&!0===i.metadata&&(r=!1),i.setEnabled(r)}))},t.prototype._updateDummy=function(){this._dragMesh&&(this._dragMesh.position.copyFrom(this._lineBoundingBox.getAbsolutePosition()),this._dragMesh.scaling.copyFrom(this._lineBoundingBox.scaling),this._dragMesh.rotationQuaternion.copyFrom(this._rootMesh.rotationQuaternion))},t.prototype.enableDragBehavior=function(){this._dragMesh=be.a.CreateBox(\"dummy\",1,this.gizmoLayer.utilityLayerScene),this._dragMesh.visibility=0,this._dragMesh.rotationQuaternion=new a.b,this.pointerDragBehavior.useObjectOrientationForDragging=!1,this._dragMesh.addBehavior(this.pointerDragBehavior)},t.prototype.dispose=function(){this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver),this.gizmoLayer.originalScene.onBeforeRenderObservable.remove(this._renderObserver),this._lineBoundingBox.dispose(),this._rotateSpheresParent.dispose(),this._scaleBoxesParent.dispose(),this._dragMesh&&this._dragMesh.dispose(),e.prototype.dispose.call(this)},t.MakeNotPickableAndWrapInBoundingBox=function(e){var t=function(e){e.isPickable=!1,e.getChildMeshes().forEach((function(e){t(e)}))};t(e),e.rotationQuaternion||(e.rotationQuaternion=a.b.RotationYawPitchRoll(e.rotation.y,e.rotation.x,e.rotation.z));var i=e.position.clone(),n=e.rotationQuaternion.clone();e.rotationQuaternion.set(0,0,0,1),e.position.set(0,0,0);var r=Ar.a.CreateBox(\"box\",{size:1},e.getScene()),o=e.getHierarchyBoundingVectors();return o.max.subtractToRef(o.min,r.scaling),0===r.scaling.y&&(r.scaling.y=Nt.a),0===r.scaling.x&&(r.scaling.x=Nt.a),0===r.scaling.z&&(r.scaling.z=Nt.a),r.position.set((o.max.x+o.min.x)/2,(o.max.y+o.min.y)/2,(o.max.z+o.min.z)/2),e.addChild(r),e.rotationQuaternion.copyFrom(n),e.position.copyFrom(i),e.removeChild(r),r.addChild(e),r.visibility=0,r},t.prototype.setCustomMesh=function(e){m.a.Error(\"Custom meshes are not supported on this gizmo\")},t}(Pr.a),Ir=function(e){function t(t,i,n,r,c,l,u){var h;void 0===i&&(i=s.a.Gray()),void 0===n&&(n=Cr.a.DefaultUtilityLayer),void 0===r&&(r=32),void 0===c&&(c=null),void 0===l&&(l=!1),void 0===u&&(u=1);var d=e.call(this,n)||this;d._pointerObserver=null,d.snapDistance=0,d.onSnapObservable=new o.c,d._isEnabled=!0,d._parent=null,d._dragging=!1,d._parent=c,d._coloredMaterial=new Wi.a(\"\",n.utilityLayerScene),d._coloredMaterial.diffuseColor=i,d._coloredMaterial.specularColor=i.subtract(new s.a(.1,.1,.1)),d._hoverMaterial=new Wi.a(\"\",n.utilityLayerScene),d._hoverMaterial.diffuseColor=s.a.Yellow(),d._disableMaterial=new Wi.a(\"\",n.utilityLayerScene),d._disableMaterial.diffuseColor=s.a.Gray(),d._disableMaterial.alpha=.4,d._gizmoMesh=new be.a(\"\",n.utilityLayerScene);var f=d._createGizmoMesh(d._gizmoMesh,u,r),p=f.rotationMesh,_=f.collider,m=[];d._rotationCircle=d.setupRotationCircle(m,d._gizmoMesh),d._gizmoMesh.lookAt(d._rootMesh.position.add(t)),d._rootMesh.addChild(d._gizmoMesh),d._gizmoMesh.scaling.scaleInPlace(1/3),d.dragBehavior=new ke.a({dragPlaneNormal:t}),d.dragBehavior.moveAttached=!1,d.dragBehavior.maxDragAngle=9*Math.PI/20,d.dragBehavior._useAlternatePickedPointAboveMaxDragAngle=!0,d._rootMesh.addBehavior(d.dragBehavior);var g=0,v=new a.e,b=new a.e,y=new a.a,T=new a.e,E=new a.e;d.dragBehavior.onDragStartObservable.add((function(e){if(d.attachedNode){v.copyFrom(e.dragPlanePoint);var t=new a.e(0,0,1),i=d._rotationCircle.getDirection(t);i.normalize(),d._gizmoMesh.removeChild(d._rotationCircle),v.copyFrom(e.dragPlanePoint),b=e.dragPlanePoint;var n=d._rotationCircle.getAbsolutePosition().clone(),r=d._rotationCircle.getAbsolutePosition().clone().addInPlace(i),o=e.dragPlanePoint,s=a.e.GetAngleBetweenVectors(r.subtract(n),o.subtract(n),d._rotationCircle.up);d._rotationCircle.addRotation(0,s,0),d._dragging=!0}})),d.dragBehavior.onDragEndObservable.add((function(){g=0,d.updateRotationCircle(d._rotationCircle,m,g,b),d._gizmoMesh.addChild(d._rotationCircle),d._dragging=!1}));var S={snapDistance:0},A=0,P=new a.a,C=new a.b;d.dragBehavior.onDragObservable.add((function(e){if(d.attachedNode){var i=new a.e(1,1,1),r=new a.b(0,0,0,1),o=new a.e(0,0,0);d.attachedNode.getWorldMatrix().decompose(i,r,o);var s=e.dragPlanePoint.subtract(o).normalize(),c=v.subtract(o).normalize(),l=a.e.Cross(s,c),u=a.e.Dot(s,c),h=Math.atan2(l.length(),u);T.copyFrom(t),E.copyFrom(t),d.updateGizmoRotationToMatchAttachedMesh&&(r.toRotationMatrix(y),E=a.e.TransformCoordinates(T,y));var f=!1;if(n.utilityLayerScene.activeCamera){var p=n.utilityLayerScene.activeCamera.position.subtract(o);a.e.Dot(p,E)>0&&(T.scaleInPlace(-1),E.scaleInPlace(-1),f=!0)}a.e.Dot(E,l)>0&&(h=-h);var _=!1;if(0!=d.snapDistance)if(A+=h,Math.abs(A)>d.snapDistance){var R=Math.floor(Math.abs(A)/d.snapDistance);A<0&&(R*=-1),A%=d.snapDistance,h=d.snapDistance*R,_=!0}else h=0;g+=f?-h:h,d.updateRotationCircle(d._rotationCircle,m,g,b);var x=Math.sin(h/2);if(C.set(T.x*x,T.y*x,T.z*x,Math.cos(h/2)),P.determinant()>0){var O=new a.e;C.toEulerAnglesToRef(O),a.b.RotationYawPitchRollToRef(O.y,-O.x,-O.z,C)}d.updateGizmoRotationToMatchAttachedMesh?r.multiplyToRef(C,r):C.multiplyToRef(r,r),d.attachedNode.getWorldMatrix().copyFrom(a.a.Compose(i,r,o)),v.copyFrom(e.dragPlanePoint),_&&(S.snapDistance=h,d.onSnapObservable.notifyObservers(S)),d._matrixChanged()}}));var R=n._getSharedGizmoLight();R.includedOnlyMeshes=R.includedOnlyMeshes.concat(d._rootMesh.getChildMeshes(!1));var x={colliderMeshes:[_],gizmoMeshes:[p],material:d._coloredMaterial,hoverMaterial:d._hoverMaterial,disableMaterial:d._disableMaterial,active:!1};return null===(h=d._parent)||void 0===h||h.addToAxisCache(d._gizmoMesh,x),d._pointerObserver=n.utilityLayerScene.onPointerObservable.add((function(e){var t;if(!d._customMeshSet&&(d._isHovered=!(-1==x.colliderMeshes.indexOf(null===(t=null==e?void 0:e.pickInfo)||void 0===t?void 0:t.pickedMesh)),!d._parent)){var i=d._isHovered||d._dragging?d._hoverMaterial:d._coloredMaterial;x.gizmoMeshes.forEach((function(e){e.material=i,e.color&&(e.color=i.diffuseColor)}))}})),d}return Object(h.d)(t,e),t.prototype._createGizmoMesh=function(e,t,i){var n=be.a.CreateTorus(\"ignore\",.6,.03*t,i,this.gizmoLayer.utilityLayerScene);n.visibility=0;var r=be.a.CreateTorus(\"\",.6,.005*t,i,this.gizmoLayer.utilityLayerScene);return r.material=this._coloredMaterial,r.rotation.x=Math.PI/2,n.rotation.x=Math.PI/2,e.addChild(r),e.addChild(n),{rotationMesh:r,collider:n}},t.prototype._attachedNodeChanged=function(e){this.dragBehavior&&(this.dragBehavior.enabled=!!e)},t.prototype.setupRotationCircle=function(e,i){for(var n=t._CircleConstants.pi2/t._CircleConstants.tessellation,r=-Math.PI/2;r0?c:-1*c,u=i>0?o:-1*o;a[s].set(t._CircleConstants.radius*Math.sin(l)*Math.cos(u),0,t._CircleConstants.radius*Math.cos(l)*Math.cos(u))}else a[s].set(0,0,0);s++}r++}},t.prototype.updateRotationCircle=function(e,t,i,n){this.updateRotationPath(t,i),be.a.CreateRibbon(\"rotationCircle\",t,!1,!1,0,this.gizmoLayer.utilityLayerScene,void 0,void 0,e.geometry?e:void 0)},Object.defineProperty(t.prototype,\"isEnabled\",{get:function(){return this._isEnabled},set:function(e){this._isEnabled=e,e?this._parent&&(this.attachedMesh=this._parent.attachedMesh):this.attachedMesh=null},enumerable:!1,configurable:!0}),t.prototype.dispose=function(){this.onSnapObservable.clear(),this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver),this.dragBehavior.detach(),this._gizmoMesh&&this._gizmoMesh.dispose(),this._rotationCircle&&this._rotationCircle.dispose(),[this._coloredMaterial,this._hoverMaterial,this._disableMaterial].forEach((function(e){e&&e.dispose()})),e.prototype.dispose.call(this)},t._CircleConstants={radius:.3,pi2:2*Math.PI,tessellation:70,rotationCircleRange:4},t}(Pr.a),Dr=function(e){function t(t,i,n,r,c){void 0===t&&(t=Cr.a.DefaultUtilityLayer),void 0===i&&(i=32),void 0===n&&(n=!1),void 0===r&&(r=1);var l=e.call(this,t)||this;return l.onDragStartObservable=new o.c,l.onDragEndObservable=new o.c,l._observables=[],l._gizmoAxisCache=new Map,l.xGizmo=new Ir(new a.e(1,0,0),s.a.Red().scale(.5),t,i,l,n,r),l.yGizmo=new Ir(new a.e(0,1,0),s.a.Green().scale(.5),t,i,l,n,r),l.zGizmo=new Ir(new a.e(0,0,1),s.a.Blue().scale(.5),t,i,l,n,r),[l.xGizmo,l.yGizmo,l.zGizmo].forEach((function(e){e.dragBehavior.onDragStartObservable.add((function(){l.onDragStartObservable.notifyObservers({})})),e.dragBehavior.onDragEndObservable.add((function(){l.onDragEndObservable.notifyObservers({})}))})),l.attachedMesh=null,l.attachedNode=null,c?c.addToAxisCache(l._gizmoAxisCache):Pr.a.GizmoAxisPointerObserver(t,l._gizmoAxisCache),l}return Object(h.d)(t,e),Object.defineProperty(t.prototype,\"attachedMesh\",{get:function(){return this._meshAttached},set:function(e){this._meshAttached=e,this._nodeAttached=e,this._checkBillboardTransform(),[this.xGizmo,this.yGizmo,this.zGizmo].forEach((function(t){t.isEnabled?t.attachedMesh=e:t.attachedMesh=null}))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"attachedNode\",{get:function(){return this._nodeAttached},set:function(e){this._meshAttached=null,this._nodeAttached=e,this._checkBillboardTransform(),[this.xGizmo,this.yGizmo,this.zGizmo].forEach((function(t){t.isEnabled?t.attachedNode=e:t.attachedNode=null}))},enumerable:!1,configurable:!0}),t.prototype._checkBillboardTransform=function(){this._nodeAttached&&this._nodeAttached.billboardMode&&console.log(\"Rotation Gizmo will not work with transforms in billboard mode.\")},Object.defineProperty(t.prototype,\"isHovered\",{get:function(){var e=!1;return[this.xGizmo,this.yGizmo,this.zGizmo].forEach((function(t){e=e||t.isHovered})),e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"updateGizmoRotationToMatchAttachedMesh\",{get:function(){return this.xGizmo.updateGizmoRotationToMatchAttachedMesh},set:function(e){this.xGizmo&&(this.xGizmo.updateGizmoRotationToMatchAttachedMesh=e,this.yGizmo.updateGizmoRotationToMatchAttachedMesh=e,this.zGizmo.updateGizmoRotationToMatchAttachedMesh=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"snapDistance\",{get:function(){return this.xGizmo.snapDistance},set:function(e){this.xGizmo&&(this.xGizmo.snapDistance=e,this.yGizmo.snapDistance=e,this.zGizmo.snapDistance=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"scaleRatio\",{get:function(){return this.xGizmo.scaleRatio},set:function(e){this.xGizmo&&(this.xGizmo.scaleRatio=e,this.yGizmo.scaleRatio=e,this.zGizmo.scaleRatio=e)},enumerable:!1,configurable:!0}),t.prototype.addToAxisCache=function(e,t){this._gizmoAxisCache.set(e,t)},t.prototype.dispose=function(){var e=this;this.xGizmo.dispose(),this.yGizmo.dispose(),this.zGizmo.dispose(),this.onDragStartObservable.clear(),this.onDragEndObservable.clear(),this._observables.forEach((function(t){e.gizmoLayer.utilityLayerScene.onPointerObservable.remove(t)}))},t.prototype.setCustomMesh=function(e){m.a.Error(\"Custom meshes are not supported on this gizmo, please set the custom meshes on the gizmos contained within this one (gizmo.xGizmo, gizmo.yGizmo, gizmo.zGizmo)\")},t}(Pr.a),Nr=i(46),Lr=i(84),wr=function(e){function t(i,n,r,c){var l;void 0===n&&(n=s.a.Gray()),void 0===r&&(r=Cr.a.DefaultUtilityLayer),void 0===c&&(c=null);var u=e.call(this,r)||this;u._pointerObserver=null,u.snapDistance=0,u.onSnapObservable=new o.c,u._isEnabled=!1,u._parent=null,u._dragging=!1,u._parent=c,u._coloredMaterial=new Wi.a(\"\",r.utilityLayerScene),u._coloredMaterial.diffuseColor=n,u._coloredMaterial.specularColor=n.subtract(new s.a(.1,.1,.1)),u._hoverMaterial=new Wi.a(\"\",r.utilityLayerScene),u._hoverMaterial.diffuseColor=s.a.Yellow(),u._disableMaterial=new Wi.a(\"\",r.utilityLayerScene),u._disableMaterial.diffuseColor=s.a.Gray(),u._disableMaterial.alpha=.4,u._gizmoMesh=t._CreatePlane(r.utilityLayerScene,u._coloredMaterial),u._gizmoMesh.lookAt(u._rootMesh.position.add(i)),u._gizmoMesh.scaling.scaleInPlace(1/3),u._gizmoMesh.parent=u._rootMesh;var h=0,d=new a.e,f={snapDistance:0};u.dragBehavior=new ke.a({dragPlaneNormal:i}),u.dragBehavior.moveAttached=!1,u._rootMesh.addBehavior(u.dragBehavior),u.dragBehavior.onDragObservable.add((function(e){if(u.attachedNode){if(0==u.snapDistance)u.attachedNode.getWorldMatrix().addTranslationFromFloats(e.delta.x,e.delta.y,e.delta.z);else if(h+=e.dragDistance,Math.abs(h)>u.snapDistance){var t=Math.floor(Math.abs(h)/u.snapDistance);h%=u.snapDistance,e.delta.normalizeToRef(d),d.scaleInPlace(u.snapDistance*t),u.attachedNode.getWorldMatrix().addTranslationFromFloats(d.x,d.y,d.z),f.snapDistance=u.snapDistance*t,u.onSnapObservable.notifyObservers(f)}u._matrixChanged()}})),u.dragBehavior.onDragStartObservable.add((function(){u._dragging=!0})),u.dragBehavior.onDragEndObservable.add((function(){u._dragging=!1}));var p=r._getSharedGizmoLight();p.includedOnlyMeshes=p.includedOnlyMeshes.concat(u._rootMesh.getChildMeshes(!1));var _={gizmoMeshes:u._gizmoMesh.getChildMeshes(),colliderMeshes:u._gizmoMesh.getChildMeshes(),material:u._coloredMaterial,hoverMaterial:u._hoverMaterial,disableMaterial:u._disableMaterial,active:!1};return null===(l=u._parent)||void 0===l||l.addToAxisCache(u._gizmoMesh,_),u._pointerObserver=r.utilityLayerScene.onPointerObservable.add((function(e){var t;if(!u._customMeshSet&&(u._isHovered=!(-1==_.colliderMeshes.indexOf(null===(t=null==e?void 0:e.pickInfo)||void 0===t?void 0:t.pickedMesh)),!u._parent)){var i=u._isHovered||u._dragging?u._hoverMaterial:u._coloredMaterial;_.gizmoMeshes.forEach((function(e){e.material=i}))}})),u}return Object(h.d)(t,e),t._CreatePlane=function(e,t){var i=new Nr.a(\"plane\",e),n=Lr.a.CreatePlane(\"dragPlane\",{width:.1375,height:.1375,sideOrientation:2},e);return n.material=t,n.parent=i,i},t.prototype._attachedNodeChanged=function(e){this.dragBehavior&&(this.dragBehavior.enabled=!!e)},Object.defineProperty(t.prototype,\"isEnabled\",{get:function(){return this._isEnabled},set:function(e){this._isEnabled=e,e?this._parent&&(this.attachedNode=this._parent.attachedNode):this.attachedNode=null},enumerable:!1,configurable:!0}),t.prototype.dispose=function(){this.onSnapObservable.clear(),this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver),this.dragBehavior.detach(),e.prototype.dispose.call(this),this._gizmoMesh&&this._gizmoMesh.dispose(),[this._coloredMaterial,this._hoverMaterial,this._disableMaterial].forEach((function(e){e&&e.dispose()}))},t}(Pr.a),Fr=function(e){function t(t,i,n){void 0===t&&(t=Cr.a.DefaultUtilityLayer),void 0===i&&(i=1);var r=e.call(this,t)||this;return r._meshAttached=null,r._nodeAttached=null,r._observables=[],r._gizmoAxisCache=new Map,r.onDragStartObservable=new o.c,r.onDragEndObservable=new o.c,r._planarGizmoEnabled=!1,r.xGizmo=new Sr.a(new a.e(1,0,0),s.a.Red().scale(.5),t,r,i),r.yGizmo=new Sr.a(new a.e(0,1,0),s.a.Green().scale(.5),t,r,i),r.zGizmo=new Sr.a(new a.e(0,0,1),s.a.Blue().scale(.5),t,r,i),r.xPlaneGizmo=new wr(new a.e(1,0,0),s.a.Red().scale(.5),r.gizmoLayer,r),r.yPlaneGizmo=new wr(new a.e(0,1,0),s.a.Green().scale(.5),r.gizmoLayer,r),r.zPlaneGizmo=new wr(new a.e(0,0,1),s.a.Blue().scale(.5),r.gizmoLayer,r),[r.xGizmo,r.yGizmo,r.zGizmo,r.xPlaneGizmo,r.yPlaneGizmo,r.zPlaneGizmo].forEach((function(e){e.dragBehavior.onDragStartObservable.add((function(){r.onDragStartObservable.notifyObservers({})})),e.dragBehavior.onDragEndObservable.add((function(){r.onDragEndObservable.notifyObservers({})}))})),r.attachedMesh=null,n?n.addToAxisCache(r._gizmoAxisCache):Pr.a.GizmoAxisPointerObserver(t,r._gizmoAxisCache),r}return Object(h.d)(t,e),Object.defineProperty(t.prototype,\"attachedMesh\",{get:function(){return this._meshAttached},set:function(e){this._meshAttached=e,this._nodeAttached=e,[this.xGizmo,this.yGizmo,this.zGizmo,this.xPlaneGizmo,this.yPlaneGizmo,this.zPlaneGizmo].forEach((function(t){t.isEnabled?t.attachedMesh=e:t.attachedMesh=null}))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"attachedNode\",{get:function(){return this._nodeAttached},set:function(e){this._meshAttached=null,this._nodeAttached=null,[this.xGizmo,this.yGizmo,this.zGizmo,this.xPlaneGizmo,this.yPlaneGizmo,this.zPlaneGizmo].forEach((function(t){t.isEnabled?t.attachedNode=e:t.attachedNode=null}))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"isHovered\",{get:function(){var e=!1;return[this.xGizmo,this.yGizmo,this.zGizmo,this.xPlaneGizmo,this.yPlaneGizmo,this.zPlaneGizmo].forEach((function(t){e=e||t.isHovered})),e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"planarGizmoEnabled\",{get:function(){return this._planarGizmoEnabled},set:function(e){var t=this;this._planarGizmoEnabled=e,[this.xPlaneGizmo,this.yPlaneGizmo,this.zPlaneGizmo].forEach((function(i){i&&(i.isEnabled=e,e&&(i.attachedMesh?i.attachedMesh=t.attachedMesh:i.attachedNode=t.attachedNode))}),this)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"updateGizmoRotationToMatchAttachedMesh\",{get:function(){return this._updateGizmoRotationToMatchAttachedMesh},set:function(e){this._updateGizmoRotationToMatchAttachedMesh=e,[this.xGizmo,this.yGizmo,this.zGizmo,this.xPlaneGizmo,this.yPlaneGizmo,this.zPlaneGizmo].forEach((function(t){t&&(t.updateGizmoRotationToMatchAttachedMesh=e)}))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"snapDistance\",{get:function(){return this._snapDistance},set:function(e){this._snapDistance=e,[this.xGizmo,this.yGizmo,this.zGizmo,this.xPlaneGizmo,this.yPlaneGizmo,this.zPlaneGizmo].forEach((function(t){t&&(t.snapDistance=e)}))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"scaleRatio\",{get:function(){return this._scaleRatio},set:function(e){this._scaleRatio=e,[this.xGizmo,this.yGizmo,this.zGizmo,this.xPlaneGizmo,this.yPlaneGizmo,this.zPlaneGizmo].forEach((function(t){t&&(t.scaleRatio=e)}))},enumerable:!1,configurable:!0}),t.prototype.addToAxisCache=function(e,t){this._gizmoAxisCache.set(e,t)},t.prototype.dispose=function(){var e=this;[this.xGizmo,this.yGizmo,this.zGizmo,this.xPlaneGizmo,this.yPlaneGizmo,this.zPlaneGizmo].forEach((function(e){e&&e.dispose()})),this._observables.forEach((function(t){e.gizmoLayer.utilityLayerScene.onPointerObservable.remove(t)})),this.onDragStartObservable.clear(),this.onDragEndObservable.clear()},t.prototype.setCustomMesh=function(e){m.a.Error(\"Custom meshes are not supported on this gizmo, please set the custom meshes on the gizmos contained within this one (gizmo.xGizmo, gizmo.yGizmo, gizmo.zGizmo,gizmo.xPlaneGizmo, gizmo.yPlaneGizmo, gizmo.zPlaneGizmo)\")},t}(Pr.a);Ki.a.CreatePolyhedron=function(e){var t=[];t[0]={vertex:[[0,0,1.732051],[1.632993,0,-.5773503],[-.8164966,1.414214,-.5773503],[-.8164966,-1.414214,-.5773503]],face:[[0,1,2],[0,2,3],[0,3,1],[1,3,2]]},t[1]={vertex:[[0,0,1.414214],[1.414214,0,0],[0,1.414214,0],[-1.414214,0,0],[0,-1.414214,0],[0,0,-1.414214]],face:[[0,1,2],[0,2,3],[0,3,4],[0,4,1],[1,4,5],[1,5,2],[2,5,3],[3,5,4]]},t[2]={vertex:[[0,0,1.070466],[.7136442,0,.7978784],[-.3568221,.618034,.7978784],[-.3568221,-.618034,.7978784],[.7978784,.618034,.3568221],[.7978784,-.618034,.3568221],[-.9341724,.381966,.3568221],[.1362939,1,.3568221],[.1362939,-1,.3568221],[-.9341724,-.381966,.3568221],[.9341724,.381966,-.3568221],[.9341724,-.381966,-.3568221],[-.7978784,.618034,-.3568221],[-.1362939,1,-.3568221],[-.1362939,-1,-.3568221],[-.7978784,-.618034,-.3568221],[.3568221,.618034,-.7978784],[.3568221,-.618034,-.7978784],[-.7136442,0,-.7978784],[0,0,-1.070466]],face:[[0,1,4,7,2],[0,2,6,9,3],[0,3,8,5,1],[1,5,11,10,4],[2,7,13,12,6],[3,9,15,14,8],[4,10,16,13,7],[5,8,14,17,11],[6,12,18,15,9],[10,11,17,19,16],[12,13,16,19,18],[14,15,18,19,17]]},t[3]={vertex:[[0,0,1.175571],[1.051462,0,.5257311],[.3249197,1,.5257311],[-.8506508,.618034,.5257311],[-.8506508,-.618034,.5257311],[.3249197,-1,.5257311],[.8506508,.618034,-.5257311],[.8506508,-.618034,-.5257311],[-.3249197,1,-.5257311],[-1.051462,0,-.5257311],[-.3249197,-1,-.5257311],[0,0,-1.175571]],face:[[0,1,2],[0,2,3],[0,3,4],[0,4,5],[0,5,1],[1,5,7],[1,7,6],[1,6,2],[2,6,8],[2,8,3],[3,8,9],[3,9,4],[4,9,10],[4,10,5],[5,10,7],[6,7,11],[6,11,8],[7,10,11],[8,11,9],[9,11,10]]},t[4]={vertex:[[0,0,1.070722],[.7148135,0,.7971752],[-.104682,.7071068,.7971752],[-.6841528,.2071068,.7971752],[-.104682,-.7071068,.7971752],[.6101315,.7071068,.5236279],[1.04156,.2071068,.1367736],[.6101315,-.7071068,.5236279],[-.3574067,1,.1367736],[-.7888348,-.5,.5236279],[-.9368776,.5,.1367736],[-.3574067,-1,.1367736],[.3574067,1,-.1367736],[.9368776,-.5,-.1367736],[.7888348,.5,-.5236279],[.3574067,-1,-.1367736],[-.6101315,.7071068,-.5236279],[-1.04156,-.2071068,-.1367736],[-.6101315,-.7071068,-.5236279],[.104682,.7071068,-.7971752],[.6841528,-.2071068,-.7971752],[.104682,-.7071068,-.7971752],[-.7148135,0,-.7971752],[0,0,-1.070722]],face:[[0,2,3],[1,6,5],[4,9,11],[7,15,13],[8,16,10],[12,14,19],[17,22,18],[20,21,23],[0,1,5,2],[0,3,9,4],[0,4,7,1],[1,7,13,6],[2,5,12,8],[2,8,10,3],[3,10,17,9],[4,11,15,7],[5,6,14,12],[6,13,20,14],[8,12,19,16],[9,17,18,11],[10,16,22,17],[11,18,21,15],[13,15,21,20],[14,20,23,19],[16,19,23,22],[18,22,23,21]]},t[5]={vertex:[[0,0,1.322876],[1.309307,0,.1889822],[-.9819805,.8660254,.1889822],[.1636634,-1.299038,.1889822],[.3273268,.8660254,-.9449112],[-.8183171,-.4330127,-.9449112]],face:[[0,3,1],[2,4,5],[0,1,4,2],[0,2,5,3],[1,3,5,4]]},t[6]={vertex:[[0,0,1.159953],[1.013464,0,.5642542],[-.3501431,.9510565,.5642542],[-.7715208,-.6571639,.5642542],[.6633206,.9510565,-.03144481],[.8682979,-.6571639,-.3996071],[-1.121664,.2938926,-.03144481],[-.2348831,-1.063314,-.3996071],[.5181548,.2938926,-.9953061],[-.5850262,-.112257,-.9953061]],face:[[0,1,4,2],[0,2,6,3],[1,5,8,4],[3,6,9,7],[5,7,9,8],[0,3,7,5,1],[2,4,8,9,6]]},t[7]={vertex:[[0,0,1.118034],[.8944272,0,.6708204],[-.2236068,.8660254,.6708204],[-.7826238,-.4330127,.6708204],[.6708204,.8660254,.2236068],[1.006231,-.4330127,-.2236068],[-1.006231,.4330127,.2236068],[-.6708204,-.8660254,-.2236068],[.7826238,.4330127,-.6708204],[.2236068,-.8660254,-.6708204],[-.8944272,0,-.6708204],[0,0,-1.118034]],face:[[0,1,4,2],[0,2,6,3],[1,5,8,4],[3,6,10,7],[5,9,11,8],[7,10,11,9],[0,3,7,9,5,1],[2,4,8,11,10,6]]},t[8]={vertex:[[-.729665,.670121,.319155],[-.655235,-.29213,-.754096],[-.093922,-.607123,.537818],[.702196,.595691,.485187],[.776626,-.36656,-.588064]],face:[[1,4,2],[0,1,2],[3,0,2],[4,3,2],[4,1,0,3]]},t[9]={vertex:[[-.868849,-.100041,.61257],[-.329458,.976099,.28078],[-.26629,-.013796,-.477654],[-.13392,-1.034115,.229829],[.738834,.707117,-.307018],[.859683,-.535264,-.338508]],face:[[3,0,2],[5,3,2],[4,5,2],[1,4,2],[0,1,2],[0,3,5,4,1]]},t[10]={vertex:[[-.610389,.243975,.531213],[-.187812,-.48795,-.664016],[-.187812,.9759,-.664016],[.187812,-.9759,.664016],[.798201,.243975,.132803]],face:[[1,3,0],[3,4,0],[3,1,4],[0,2,1],[0,4,2],[2,4,1]]},t[11]={vertex:[[-1.028778,.392027,-.048786],[-.640503,-.646161,.621837],[-.125162,-.395663,-.540059],[.004683,.888447,-.651988],[.125161,.395663,.540059],[.632925,-.791376,.433102],[1.031672,.157063,-.354165]],face:[[3,2,0],[2,1,0],[2,5,1],[0,4,3],[0,1,4],[4,1,5],[2,3,6],[3,4,6],[5,2,6],[4,5,6]]},t[12]={vertex:[[-.669867,.334933,-.529576],[-.669867,.334933,.529577],[-.4043,1.212901,0],[-.334933,-.669867,-.529576],[-.334933,-.669867,.529577],[.334933,.669867,-.529576],[.334933,.669867,.529577],[.4043,-1.212901,0],[.669867,-.334933,-.529576],[.669867,-.334933,.529577]],face:[[8,9,7],[6,5,2],[3,8,7],[5,0,2],[4,3,7],[0,1,2],[9,4,7],[1,6,2],[9,8,5,6],[8,3,0,5],[3,4,1,0],[4,9,6,1]]},t[13]={vertex:[[-.931836,.219976,-.264632],[-.636706,.318353,.692816],[-.613483,-.735083,-.264632],[-.326545,.979634,0],[-.318353,-.636706,.692816],[-.159176,.477529,-.856368],[.159176,-.477529,-.856368],[.318353,.636706,.692816],[.326545,-.979634,0],[.613482,.735082,-.264632],[.636706,-.318353,.692816],[.931835,-.219977,-.264632]],face:[[11,10,8],[7,9,3],[6,11,8],[9,5,3],[2,6,8],[5,0,3],[4,2,8],[0,1,3],[10,4,8],[1,7,3],[10,11,9,7],[11,6,5,9],[6,2,0,5],[2,4,1,0],[4,10,7,1]]},t[14]={vertex:[[-.93465,.300459,-.271185],[-.838689,-.260219,-.516017],[-.711319,.717591,.128359],[-.710334,-.156922,.080946],[-.599799,.556003,-.725148],[-.503838,-.004675,-.969981],[-.487004,.26021,.48049],[-.460089,-.750282,-.512622],[-.376468,.973135,-.325605],[-.331735,-.646985,.084342],[-.254001,.831847,.530001],[-.125239,-.494738,-.966586],[.029622,.027949,.730817],[.056536,-.982543,-.262295],[.08085,1.087391,.076037],[.125583,-.532729,.485984],[.262625,.599586,.780328],[.391387,-.726999,-.716259],[.513854,-.868287,.139347],[.597475,.85513,.326364],[.641224,.109523,.783723],[.737185,-.451155,.538891],[.848705,-.612742,-.314616],[.976075,.365067,.32976],[1.072036,-.19561,.084927]],face:[[15,18,21],[12,20,16],[6,10,2],[3,0,1],[9,7,13],[2,8,4,0],[0,4,5,1],[1,5,11,7],[7,11,17,13],[13,17,22,18],[18,22,24,21],[21,24,23,20],[20,23,19,16],[16,19,14,10],[10,14,8,2],[15,9,13,18],[12,15,21,20],[6,12,16,10],[3,6,2,0],[9,3,1,7],[9,15,12,6,3],[22,17,11,5,4,8,14,19,23,24]]};var i,n,r,o,c,l,u=e.type&&(e.type<0||e.type>=t.length)?0:e.type||0,h=e.size,d=e.sizeX||h||1,f=e.sizeY||h||1,p=e.sizeZ||h||1,_=e.custom||t[u],m=_.face.length,g=e.faceUV||new Array(m),v=e.faceColors,b=void 0===e.flat||e.flat,y=0===e.sideOrientation?0:e.sideOrientation||Ki.a.DEFAULTSIDE,T=new Array,E=new Array,S=new Array,A=new Array,P=new Array,C=0,R=0,x=new Array,O=0,M=0;if(b)for(M=0;M0&&e.forEach((function(e,i){t._gizmoAxisCache.set(i,e)}))},e.prototype.dispose=function(){var e=this;for(var t in this._pointerObservers.forEach((function(t){e.scene.onPointerObservable.remove(t)})),this.gizmos){var i=this.gizmos[t];i&&i.dispose()}this._defaultKeepDepthUtilityLayer.dispose(),this._defaultUtilityLayer.dispose(),this.boundingBoxDragBehavior.detach(),this.onAttachedToMeshObservable.clear()},e}(),kr=i(48),zr=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._needProjectionMatrixCompute=!0,t}return Object(h.d)(t,e),t.prototype._setPosition=function(e){this._position=e},Object.defineProperty(t.prototype,\"position\",{get:function(){return this._position},set:function(e){this._setPosition(e)},enumerable:!1,configurable:!0}),t.prototype._setDirection=function(e){this._direction=e},Object.defineProperty(t.prototype,\"direction\",{get:function(){return this._direction},set:function(e){this._setDirection(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"shadowMinZ\",{get:function(){return this._shadowMinZ},set:function(e){this._shadowMinZ=e,this.forceProjectionMatrixCompute()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"shadowMaxZ\",{get:function(){return this._shadowMaxZ},set:function(e){this._shadowMaxZ=e,this.forceProjectionMatrixCompute()},enumerable:!1,configurable:!0}),t.prototype.computeTransformedInformation=function(){return!(!this.parent||!this.parent.getWorldMatrix)&&(this.transformedPosition||(this.transformedPosition=a.e.Zero()),a.e.TransformCoordinatesToRef(this.position,this.parent.getWorldMatrix(),this.transformedPosition),this.direction&&(this.transformedDirection||(this.transformedDirection=a.e.Zero()),a.e.TransformNormalToRef(this.direction,this.parent.getWorldMatrix(),this.transformedDirection)),!0)},t.prototype.getDepthScale=function(){return 50},t.prototype.getShadowDirection=function(e){return this.transformedDirection?this.transformedDirection:this.direction},t.prototype.getAbsolutePosition=function(){return this.transformedPosition?this.transformedPosition:this.position},t.prototype.setDirectionToTarget=function(e){return this.direction=a.e.Normalize(e.subtract(this.position)),this.direction},t.prototype.getRotation=function(){this.direction.normalize();var e=a.e.Cross(this.direction,J.a.Y),t=a.e.Cross(e,this.direction);return a.e.RotationFromAxis(e,t,this.direction)},t.prototype.needCube=function(){return!1},t.prototype.needProjectionMatrixCompute=function(){return this._needProjectionMatrixCompute},t.prototype.forceProjectionMatrixCompute=function(){this._needProjectionMatrixCompute=!0},t.prototype._initCache=function(){e.prototype._initCache.call(this),this._cache.position=a.e.Zero()},t.prototype._isSynchronized=function(){return!!this._cache.position.equals(this.position)},t.prototype.computeWorldMatrix=function(e){return!e&&this.isSynchronized()?(this._currentRenderId=this.getScene().getRenderId(),this._worldMatrix):(this._updateCache(),this._cache.position.copyFrom(this.position),this._worldMatrix||(this._worldMatrix=a.a.Identity()),a.a.TranslationToRef(this.position.x,this.position.y,this.position.z,this._worldMatrix),this.parent&&this.parent.getWorldMatrix&&(this._worldMatrix.multiplyToRef(this.parent.getWorldMatrix(),this._worldMatrix),this._markSyncedWithParent()),this._worldMatrixDeterminantIsDirty=!0,this._worldMatrix)},t.prototype.getDepthMinZ=function(e){return void 0!==this.shadowMinZ?this.shadowMinZ:e.minZ},t.prototype.getDepthMaxZ=function(e){return void 0!==this.shadowMaxZ?this.shadowMaxZ:e.maxZ},t.prototype.setShadowProjectionMatrix=function(e,t,i){return this.customProjectionMatrixBuilder?this.customProjectionMatrixBuilder(t,i,e):this._setDefaultShadowProjectionMatrix(e,t,i),this},Object(h.c)([Object(w.o)()],t.prototype,\"position\",null),Object(h.c)([Object(w.o)()],t.prototype,\"direction\",null),Object(h.c)([Object(w.c)()],t.prototype,\"shadowMinZ\",null),Object(h.c)([Object(w.c)()],t.prototype,\"shadowMaxZ\",null),t}(kr.a);B.a.AddNodeConstructor(\"Light_Type_1\",(function(e,t){return function(){return new Gr(e,a.e.Zero(),t)}}));var Gr=function(e){function t(t,i,n){var r=e.call(this,t,n)||this;return r._shadowFrustumSize=0,r._shadowOrthoScale=.1,r.autoUpdateExtends=!0,r.autoCalcShadowZBounds=!1,r._orthoLeft=Number.MAX_VALUE,r._orthoRight=Number.MIN_VALUE,r._orthoTop=Number.MIN_VALUE,r._orthoBottom=Number.MAX_VALUE,r.position=i.scale(-1),r.direction=i,r}return Object(h.d)(t,e),Object.defineProperty(t.prototype,\"shadowFrustumSize\",{get:function(){return this._shadowFrustumSize},set:function(e){this._shadowFrustumSize=e,this.forceProjectionMatrixCompute()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"shadowOrthoScale\",{get:function(){return this._shadowOrthoScale},set:function(e){this._shadowOrthoScale=e,this.forceProjectionMatrixCompute()},enumerable:!1,configurable:!0}),t.prototype.getClassName=function(){return\"DirectionalLight\"},t.prototype.getTypeID=function(){return kr.a.LIGHTTYPEID_DIRECTIONALLIGHT},t.prototype._setDefaultShadowProjectionMatrix=function(e,t,i){this.shadowFrustumSize>0?this._setDefaultFixedFrustumShadowProjectionMatrix(e):this._setDefaultAutoExtendShadowProjectionMatrix(e,t,i)},t.prototype._setDefaultFixedFrustumShadowProjectionMatrix=function(e){var t=this.getScene().activeCamera;t&&a.a.OrthoLHToRef(this.shadowFrustumSize,this.shadowFrustumSize,void 0!==this.shadowMinZ?this.shadowMinZ:t.minZ,void 0!==this.shadowMaxZ?this.shadowMaxZ:t.maxZ,e)},t.prototype._setDefaultAutoExtendShadowProjectionMatrix=function(e,t,i){var n=this.getScene().activeCamera;if(n){if(this.autoUpdateExtends||this._orthoLeft===Number.MAX_VALUE){var r=a.e.Zero();this._orthoLeft=Number.MAX_VALUE,this._orthoRight=Number.MIN_VALUE,this._orthoTop=Number.MIN_VALUE,this._orthoBottom=Number.MAX_VALUE;for(var o=Number.MAX_VALUE,s=Number.MIN_VALUE,c=0;cthis._orthoRight&&(this._orthoRight=r.x),r.y>this._orthoTop&&(this._orthoTop=r.y),this.autoCalcShadowZBounds&&(r.zs&&(s=r.z))}this.autoCalcShadowZBounds&&(this._shadowMinZ=o,this._shadowMaxZ=s)}var d=this._orthoRight-this._orthoLeft,f=this._orthoTop-this._orthoBottom;a.a.OrthoOffCenterLHToRef(this._orthoLeft-d*this.shadowOrthoScale,this._orthoRight+d*this.shadowOrthoScale,this._orthoBottom-f*this.shadowOrthoScale,this._orthoTop+f*this.shadowOrthoScale,void 0!==this.shadowMinZ?this.shadowMinZ:n.minZ,void 0!==this.shadowMaxZ?this.shadowMaxZ:n.maxZ,e)}},t.prototype._buildUniformLayout=function(){this._uniformBuffer.addUniform(\"vLightData\",4),this._uniformBuffer.addUniform(\"vLightDiffuse\",4),this._uniformBuffer.addUniform(\"vLightSpecular\",4),this._uniformBuffer.addUniform(\"shadowsInfo\",3),this._uniformBuffer.addUniform(\"depthValues\",2),this._uniformBuffer.create()},t.prototype.transferToEffect=function(e,t){return this.computeTransformedInformation()?(this._uniformBuffer.updateFloat4(\"vLightData\",this.transformedDirection.x,this.transformedDirection.y,this.transformedDirection.z,1,t),this):(this._uniformBuffer.updateFloat4(\"vLightData\",this.direction.x,this.direction.y,this.direction.z,1,t),this)},t.prototype.transferToNodeMaterialEffect=function(e,t){return this.computeTransformedInformation()?(e.setFloat3(t,this.transformedDirection.x,this.transformedDirection.y,this.transformedDirection.z),this):(e.setFloat3(t,this.direction.x,this.direction.y,this.direction.z),this)},t.prototype.getDepthMinZ=function(e){return 1},t.prototype.getDepthMaxZ=function(e){return 1},t.prototype.prepareLightSpecificDefines=function(e,t){e[\"DIRLIGHT\"+t]=!0},Object(h.c)([Object(w.c)()],t.prototype,\"shadowFrustumSize\",null),Object(h.c)([Object(w.c)()],t.prototype,\"shadowOrthoScale\",null),Object(h.c)([Object(w.c)()],t.prototype,\"autoUpdateExtends\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"autoCalcShadowZBounds\",void 0),t}(zr);be.a.CreateHemisphere=function(e,t,i,n){var r={segments:t,diameter:i};return jr.CreateHemisphere(e,r,n)};var jr=function(){function e(){}return e.CreateHemisphere=function(e,t,i){t.diameter||(t.diameter=1),t.segments||(t.segments=16);var n=xr.a.CreateSphere(\"\",{slice:.5,diameter:t.diameter,segments:t.segments},i),r=be.a.CreateDisc(\"\",t.diameter/2,3*t.segments+(4-t.segments),i);r.rotation.x=-Math.PI/2,r.parent=n;var o=be.a.MergeMeshes([r,n],!0);return o.name=e,o},e}();B.a.AddNodeConstructor(\"Light_Type_2\",(function(e,t){return function(){return new Wr(e,a.e.Zero(),a.e.Zero(),0,0,t)}}));var Wr=function(e){function t(t,i,n,r,o,s){var c=e.call(this,t,s)||this;return c._innerAngle=0,c._projectionTextureMatrix=a.a.Zero(),c._projectionTextureLightNear=1e-6,c._projectionTextureLightFar=1e3,c._projectionTextureUpDirection=a.e.Up(),c._projectionTextureViewLightDirty=!0,c._projectionTextureProjectionLightDirty=!0,c._projectionTextureDirty=!0,c._projectionTextureViewTargetVector=a.e.Zero(),c._projectionTextureViewLightMatrix=a.a.Zero(),c._projectionTextureProjectionLightMatrix=a.a.Zero(),c._projectionTextureScalingMatrix=a.a.FromValues(.5,0,0,0,0,.5,0,0,0,0,.5,0,.5,.5,.5,1),c.position=i,c.direction=n,c.angle=r,c.exponent=o,c}return Object(h.d)(t,e),Object.defineProperty(t.prototype,\"angle\",{get:function(){return this._angle},set:function(e){this._angle=e,this._cosHalfAngle=Math.cos(.5*e),this._projectionTextureProjectionLightDirty=!0,this.forceProjectionMatrixCompute(),this._computeAngleValues()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"innerAngle\",{get:function(){return this._innerAngle},set:function(e){this._innerAngle=e,this._computeAngleValues()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"shadowAngleScale\",{get:function(){return this._shadowAngleScale},set:function(e){this._shadowAngleScale=e,this.forceProjectionMatrixCompute()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"projectionTextureMatrix\",{get:function(){return this._projectionTextureMatrix},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"projectionTextureLightNear\",{get:function(){return this._projectionTextureLightNear},set:function(e){this._projectionTextureLightNear=e,this._projectionTextureProjectionLightDirty=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"projectionTextureLightFar\",{get:function(){return this._projectionTextureLightFar},set:function(e){this._projectionTextureLightFar=e,this._projectionTextureProjectionLightDirty=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"projectionTextureUpDirection\",{get:function(){return this._projectionTextureUpDirection},set:function(e){this._projectionTextureUpDirection=e,this._projectionTextureProjectionLightDirty=!0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"projectionTexture\",{get:function(){return this._projectionTexture},set:function(e){var i=this;this._projectionTexture!==e&&(this._projectionTexture=e,this._projectionTextureDirty=!0,this._projectionTexture&&!this._projectionTexture.isReady()&&(t._IsProceduralTexture(this._projectionTexture)?this._projectionTexture.getEffect().executeWhenCompiled((function(){i._markMeshesAsLightDirty()})):t._IsTexture(this._projectionTexture)&&this._projectionTexture.onLoadObservable.addOnce((function(){i._markMeshesAsLightDirty()}))))},enumerable:!1,configurable:!0}),t._IsProceduralTexture=function(e){return void 0!==e.onGeneratedObservable},t._IsTexture=function(e){return void 0!==e.onLoadObservable},t.prototype.getClassName=function(){return\"SpotLight\"},t.prototype.getTypeID=function(){return kr.a.LIGHTTYPEID_SPOTLIGHT},t.prototype._setDirection=function(t){e.prototype._setDirection.call(this,t),this._projectionTextureViewLightDirty=!0},t.prototype._setPosition=function(t){e.prototype._setPosition.call(this,t),this._projectionTextureViewLightDirty=!0},t.prototype._setDefaultShadowProjectionMatrix=function(e,t,i){var n=this.getScene().activeCamera;if(n){this._shadowAngleScale=this._shadowAngleScale||1;var r=this._shadowAngleScale*this._angle;a.a.PerspectiveFovLHToRef(r,1,this.getDepthMinZ(n),this.getDepthMaxZ(n),e)}},t.prototype._computeProjectionTextureViewLightMatrix=function(){this._projectionTextureViewLightDirty=!1,this._projectionTextureDirty=!0,this.position.addToRef(this.direction,this._projectionTextureViewTargetVector),a.a.LookAtLHToRef(this.position,this._projectionTextureViewTargetVector,this._projectionTextureUpDirection,this._projectionTextureViewLightMatrix)},t.prototype._computeProjectionTextureProjectionLightMatrix=function(){this._projectionTextureProjectionLightDirty=!1,this._projectionTextureDirty=!0;var e=this.projectionTextureLightFar,t=this.projectionTextureLightNear,i=e/(e-t),n=-i*t,r=1/Math.tan(this._angle/2);a.a.FromValuesToRef(r/1,0,0,0,0,r,0,0,0,0,i,1,0,0,n,0,this._projectionTextureProjectionLightMatrix)},t.prototype._computeProjectionTextureMatrix=function(){if(this._projectionTextureDirty=!1,this._projectionTextureViewLightMatrix.multiplyToRef(this._projectionTextureProjectionLightMatrix,this._projectionTextureMatrix),this._projectionTexture instanceof Ke.a){var e=this._projectionTexture.uScale/2,t=this._projectionTexture.vScale/2;a.a.FromValuesToRef(e,0,0,0,0,t,0,0,0,0,.5,0,.5,.5,.5,1,this._projectionTextureScalingMatrix)}this._projectionTextureMatrix.multiplyToRef(this._projectionTextureScalingMatrix,this._projectionTextureMatrix)},t.prototype._buildUniformLayout=function(){this._uniformBuffer.addUniform(\"vLightData\",4),this._uniformBuffer.addUniform(\"vLightDiffuse\",4),this._uniformBuffer.addUniform(\"vLightSpecular\",4),this._uniformBuffer.addUniform(\"vLightDirection\",3),this._uniformBuffer.addUniform(\"vLightFalloff\",4),this._uniformBuffer.addUniform(\"shadowsInfo\",3),this._uniformBuffer.addUniform(\"depthValues\",2),this._uniformBuffer.create()},t.prototype._computeAngleValues=function(){this._lightAngleScale=1/Math.max(.001,Math.cos(.5*this._innerAngle)-this._cosHalfAngle),this._lightAngleOffset=-this._cosHalfAngle*this._lightAngleScale},t.prototype.transferTexturesToEffect=function(e,t){return this.projectionTexture&&this.projectionTexture.isReady()&&(this._projectionTextureViewLightDirty&&this._computeProjectionTextureViewLightMatrix(),this._projectionTextureProjectionLightDirty&&this._computeProjectionTextureProjectionLightMatrix(),this._projectionTextureDirty&&this._computeProjectionTextureMatrix(),e.setMatrix(\"textureProjectionMatrix\"+t,this._projectionTextureMatrix),e.setTexture(\"projectionLightSampler\"+t,this.projectionTexture)),this},t.prototype.transferToEffect=function(e,t){var i;return this.computeTransformedInformation()?(this._uniformBuffer.updateFloat4(\"vLightData\",this.transformedPosition.x,this.transformedPosition.y,this.transformedPosition.z,this.exponent,t),i=a.e.Normalize(this.transformedDirection)):(this._uniformBuffer.updateFloat4(\"vLightData\",this.position.x,this.position.y,this.position.z,this.exponent,t),i=a.e.Normalize(this.direction)),this._uniformBuffer.updateFloat4(\"vLightDirection\",i.x,i.y,i.z,this._cosHalfAngle,t),this._uniformBuffer.updateFloat4(\"vLightFalloff\",this.range,this._inverseSquaredRange,this._lightAngleScale,this._lightAngleOffset,t),this},t.prototype.transferToNodeMaterialEffect=function(e,t){var i;return i=this.computeTransformedInformation()?a.e.Normalize(this.transformedDirection):a.e.Normalize(this.direction),this.getScene().useRightHandedSystem?e.setFloat3(t,-i.x,-i.y,-i.z):e.setFloat3(t,i.x,i.y,i.z),this},t.prototype.dispose=function(){e.prototype.dispose.call(this),this._projectionTexture&&this._projectionTexture.dispose()},t.prototype.prepareLightSpecificDefines=function(e,t){e[\"SPOTLIGHT\"+t]=!0,e[\"PROJECTEDLIGHTTEXTURE\"+t]=!(!this.projectionTexture||!this.projectionTexture.isReady())},Object(h.c)([Object(w.c)()],t.prototype,\"angle\",null),Object(h.c)([Object(w.c)()],t.prototype,\"innerAngle\",null),Object(h.c)([Object(w.c)()],t.prototype,\"shadowAngleScale\",null),Object(h.c)([Object(w.c)()],t.prototype,\"exponent\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"projectionTextureLightNear\",null),Object(h.c)([Object(w.c)()],t.prototype,\"projectionTextureLightFar\",null),Object(h.c)([Object(w.c)()],t.prototype,\"projectionTextureUpDirection\",null),Object(h.c)([Object(w.m)(\"projectedLightTexture\")],t.prototype,\"_projectionTexture\",void 0),t}(zr),Hr=function(e){function t(t){void 0===t&&(t=Cr.a.DefaultUtilityLayer);var i=e.call(this,t)||this;return i._cachedPosition=new a.e,i._cachedForward=new a.e(0,0,1),i._pointerObserver=null,i.onClickedObservable=new o.c,i._light=null,i.attachedMesh=new Ge.a(\"\",i.gizmoLayer.utilityLayerScene),i._attachedMeshParent=new Nr.a(\"parent\",i.gizmoLayer.utilityLayerScene),i.attachedMesh.parent=i._attachedMeshParent,i._material=new Wi.a(\"light\",i.gizmoLayer.utilityLayerScene),i._material.diffuseColor=new s.a(.5,.5,.5),i._material.specularColor=new s.a(.1,.1,.1),i._pointerObserver=t.utilityLayerScene.onPointerObservable.add((function(e){i._light&&(i._isHovered=!(!e.pickInfo||-1==i._rootMesh.getChildMeshes().indexOf(e.pickInfo.pickedMesh)),i._isHovered&&0===e.event.button&&i.onClickedObservable.notifyObservers(i._light))}),Ne.a.POINTERDOWN),i}return Object(h.d)(t,e),Object.defineProperty(t.prototype,\"light\",{get:function(){return this._light},set:function(e){var i=this;if(this._light=e,e){this._lightMesh&&this._lightMesh.dispose(),e instanceof ki.a?this._lightMesh=t._CreateHemisphericLightMesh(this.gizmoLayer.utilityLayerScene):this._lightMesh=e instanceof Gr?t._CreateDirectionalLightMesh(this.gizmoLayer.utilityLayerScene):e instanceof Wr?t._CreateSpotLightMesh(this.gizmoLayer.utilityLayerScene):t._CreatePointLightMesh(this.gizmoLayer.utilityLayerScene),this._lightMesh.getChildMeshes(!1).forEach((function(e){e.material=i._material})),this._lightMesh.parent=this._rootMesh;var n=this.gizmoLayer._getSharedGizmoLight();n.includedOnlyMeshes=n.includedOnlyMeshes.concat(this._lightMesh.getChildMeshes(!1)),this._lightMesh.rotationQuaternion=new a.b,this.attachedMesh.reservedDataStore||(this.attachedMesh.reservedDataStore={}),this.attachedMesh.reservedDataStore.lightGizmo=this,e.parent&&this._attachedMeshParent.freezeWorldMatrix(e.parent.getWorldMatrix()),e.position&&(this.attachedMesh.position.copyFrom(e.position),this.attachedMesh.computeWorldMatrix(!0),this._cachedPosition.copyFrom(this.attachedMesh.position)),e.direction&&(this.attachedMesh.setDirection(e.direction),this.attachedMesh.computeWorldMatrix(!0),this._cachedForward.copyFrom(this.attachedMesh.forward)),this._update()}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"material\",{get:function(){return this._material},enumerable:!1,configurable:!0}),t.prototype._update=function(){e.prototype._update.call(this),this._light&&(this._light.parent&&this._attachedMeshParent.freezeWorldMatrix(this._light.parent.getWorldMatrix()),this._light.position&&(this.attachedMesh.position.equals(this._cachedPosition)?(this.attachedMesh.position.copyFrom(this._light.position),this.attachedMesh.computeWorldMatrix(!0),this._cachedPosition.copyFrom(this.attachedMesh.position)):(this._light.position.copyFrom(this.attachedMesh.position),this._cachedPosition.copyFrom(this.attachedMesh.position))),this._light.direction&&(a.e.DistanceSquared(this.attachedMesh.forward,this._cachedForward)>1e-4?(this._light.direction.copyFrom(this.attachedMesh.forward),this._cachedForward.copyFrom(this.attachedMesh.forward)):a.e.DistanceSquared(this.attachedMesh.forward,this._light.direction)>1e-4&&(this.attachedMesh.setDirection(this._light.direction),this.attachedMesh.computeWorldMatrix(!0),this._cachedForward.copyFrom(this.attachedMesh.forward))))},t.prototype.dispose=function(){this.onClickedObservable.clear(),this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver),this._material.dispose(),e.prototype.dispose.call(this),this._attachedMeshParent.dispose()},t._CreateHemisphericLightMesh=function(e){var i=new be.a(\"hemisphereLight\",e),n=jr.CreateHemisphere(i.name,{segments:10,diameter:1},e);n.position.z=-.15,n.rotation.x=Math.PI/2,n.parent=i;var r=this._CreateLightLines(3,e);return r.parent=i,r.position.z,i.scaling.scaleInPlace(t._Scale),i.rotation.x=Math.PI/2,i},t._CreatePointLightMesh=function(e){var i=new be.a(\"pointLight\",e),n=xr.a.CreateSphere(i.name,{segments:10,diameter:1},e);return n.rotation.x=Math.PI/2,n.parent=i,this._CreateLightLines(5,e).parent=i,i.scaling.scaleInPlace(t._Scale),i.rotation.x=Math.PI/2,i},t._CreateSpotLightMesh=function(e){var i=new be.a(\"spotLight\",e);xr.a.CreateSphere(i.name,{segments:10,diameter:1},e).parent=i;var n=jr.CreateHemisphere(i.name,{segments:10,diameter:2},e);return n.parent=i,n.rotation.x=-Math.PI/2,this._CreateLightLines(2,e).parent=i,i.scaling.scaleInPlace(t._Scale),i.rotation.x=Math.PI/2,i},t._CreateDirectionalLightMesh=function(e){var i=new be.a(\"directionalLight\",e),n=new be.a(i.name,e);n.parent=i,xr.a.CreateSphere(i.name,{diameter:1.2,segments:10},e).parent=n;var r=be.a.CreateCylinder(i.name,6,.3,.3,6,1,e);r.parent=n,(o=r.clone(i.name)).scaling.y=.5,o.position.x+=1.25,(a=r.clone(i.name)).scaling.y=.5,a.position.x+=-1.25;var o,a,s=be.a.CreateCylinder(i.name,1,0,.6,6,1,e);return s.position.y+=3,s.parent=n,(o=s.clone(i.name)).position.y=1.5,o.position.x+=1.25,(a=s.clone(i.name)).position.y=1.5,a.position.x+=-1.25,n.scaling.scaleInPlace(t._Scale),n.rotation.z=Math.PI/2,n.rotation.y=Math.PI/2,i},t._Scale=.007,t._CreateLightLines=function(e,t){var i=new be.a(\"root\",t);i.rotation.x=Math.PI/2;var n=new be.a(\"linePivot\",t);n.parent=i;var r=be.a.CreateCylinder(\"line\",2,.2,.3,6,1,t);if(r.position.y=r.scaling.y/2+1.2,r.parent=n,e<2)return n;for(var o=0;o<4;o++){(a=n.clone(\"lineParentClone\")).rotation.z=Math.PI/4,a.rotation.y=Math.PI/2+Math.PI/2*o,a.getChildMeshes()[0].scaling.y=.5,a.getChildMeshes()[0].scaling.x=a.getChildMeshes()[0].scaling.z=.8,a.getChildMeshes()[0].position.y=a.getChildMeshes()[0].scaling.y/2+1.2}if(e<3)return i;for(o=0;o<4;o++){(a=n.clone(\"linePivotClone\")).rotation.z=Math.PI/2,a.rotation.y=Math.PI/2*o}if(e<4)return i;for(o=0;o<4;o++){var a;(a=n.clone(\"linePivotClone\")).rotation.z=Math.PI+Math.PI/4,a.rotation.y=Math.PI/2+Math.PI/2*o,a.getChildMeshes()[0].scaling.y=.5,a.getChildMeshes()[0].scaling.x=a.getChildMeshes()[0].scaling.z=.8,a.getChildMeshes()[0].position.y=a.getChildMeshes()[0].scaling.y/2+1.2}return e<5||((a=n.clone(\"linePivotClone\")).rotation.z=Math.PI),i},t}(Pr.a),Xr=function(){function e(e,t){void 0===e&&(e=a.e.Zero()),void 0===t&&(t=a.e.Up()),this.position=e,this.normal=t}return e.prototype.clone=function(){return new e(this.position.clone(),this.normal.clone())},e}(),Yr=function(){function e(e,t,i){void 0===e&&(e=a.e.Zero()),void 0===t&&(t=a.e.Up()),void 0===i&&(i=a.d.Zero()),this.position=e,this.normal=t,this.uv=i}return e.prototype.clone=function(){return new e(this.position.clone(),this.normal.clone(),this.uv.clone())},e}(),Kr=function(e){function t(t){void 0===t&&(t=Cr.a.DefaultUtilityLayer);var i=e.call(this,t)||this;return i._pointerObserver=null,i.onClickedObservable=new o.c,i._camera=null,i._invProjection=new a.a,i._material=new Wi.a(\"cameraGizmoMaterial\",i.gizmoLayer.utilityLayerScene),i._material.diffuseColor=new s.a(.5,.5,.5),i._material.specularColor=new s.a(.1,.1,.1),i._pointerObserver=t.utilityLayerScene.onPointerObservable.add((function(e){i._camera&&(i._isHovered=!(!e.pickInfo||-1==i._rootMesh.getChildMeshes().indexOf(e.pickInfo.pickedMesh)),i._isHovered&&0===e.event.button&&i.onClickedObservable.notifyObservers(i._camera))}),Ne.a.POINTERDOWN),i}return Object(h.d)(t,e),Object.defineProperty(t.prototype,\"displayFrustum\",{get:function(){return this._cameraLinesMesh.isEnabled()},set:function(e){this._cameraLinesMesh.setEnabled(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"camera\",{get:function(){return this._camera},set:function(e){var i=this;if(this._camera=e,this.attachedNode=e,e){this._cameraMesh&&this._cameraMesh.dispose(),this._cameraLinesMesh&&this._cameraLinesMesh.dispose(),this._cameraMesh=t._CreateCameraMesh(this.gizmoLayer.utilityLayerScene),this._cameraLinesMesh=t._CreateCameraFrustum(this.gizmoLayer.utilityLayerScene),this._cameraMesh.getChildMeshes(!1).forEach((function(e){e.material=i._material})),this._cameraMesh.parent=this._rootMesh,this._cameraLinesMesh.parent=this._rootMesh,this.gizmoLayer.utilityLayerScene.activeCamera&&this.gizmoLayer.utilityLayerScene.activeCamera.maxZ<1.5*e.maxZ&&(this.gizmoLayer.utilityLayerScene.activeCamera.maxZ=1.5*e.maxZ),this.attachedNode.reservedDataStore||(this.attachedNode.reservedDataStore={}),this.attachedNode.reservedDataStore.cameraGizmo=this;var n=this.gizmoLayer._getSharedGizmoLight();n.includedOnlyMeshes=n.includedOnlyMeshes.concat(this._cameraMesh.getChildMeshes(!1)),this._update()}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"material\",{get:function(){return this._material},enumerable:!1,configurable:!0}),t.prototype._update=function(){e.prototype._update.call(this),this._camera&&(this._camera.getProjectionMatrix().invertToRef(this._invProjection),this._cameraLinesMesh.setPivotMatrix(this._invProjection,!1),this._cameraLinesMesh.scaling.x=1/this._rootMesh.scaling.x,this._cameraLinesMesh.scaling.y=1/this._rootMesh.scaling.y,this._cameraLinesMesh.scaling.z=1/this._rootMesh.scaling.z,this._cameraMesh.parent=null,this._cameraMesh.rotation.y=.5*Math.PI*(this._camera.getScene().useRightHandedSystem?1:-1),this._cameraMesh.parent=this._rootMesh)},t.prototype.dispose=function(){this.onClickedObservable.clear(),this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver),this._cameraMesh&&this._cameraMesh.dispose(),this._cameraLinesMesh&&this._cameraLinesMesh.dispose(),this._material.dispose(),e.prototype.dispose.call(this)},t._CreateCameraMesh=function(e){var i=new be.a(\"rootCameraGizmo\",e),n=new be.a(i.name,e);n.parent=i,Ar.a.CreateBox(i.name,{width:1,height:.8,depth:.5},e).parent=n;var r=nn.a.CreateCylinder(i.name,{height:.5,diameterTop:.8,diameterBottom:.8},e);r.parent=n,r.position.y=.3,r.position.x=-.6,r.rotation.x=.5*Math.PI;var o=nn.a.CreateCylinder(i.name,{height:.5,diameterTop:.6,diameterBottom:.6},e);o.parent=n,o.position.y=.5,o.position.x=.4,o.rotation.x=.5*Math.PI;var a=nn.a.CreateCylinder(i.name,{height:.5,diameterTop:.5,diameterBottom:.5},e);return a.parent=n,a.position.y=0,a.position.x=.6,a.rotation.z=.5*Math.PI,i.scaling.scaleInPlace(t._Scale),n.position.x=-.9,i},t._CreateCameraFrustum=function(e){var t=new be.a(\"rootCameraGizmo\",e),i=new be.a(t.name,e);i.parent=t;for(var n=0;n<4;n+=2)for(var r=0;r<4;r+=2){var o;(o=Or.a.CreateLines(\"lines\",{points:[new a.e(-1+r,-1+n,-1),new a.e(-1+r,-1+n,1)]},e)).parent=i,o.alwaysSelectAsActiveMesh=!0,o.isPickable=!1,(o=Or.a.CreateLines(\"lines\",{points:[new a.e(-1,-1+r,-1+n),new a.e(1,-1+r,-1+n)]},e)).parent=i,o.alwaysSelectAsActiveMesh=!0,o.isPickable=!1,(o=Or.a.CreateLines(\"lines\",{points:[new a.e(-1+r,-1,-1+n),new a.e(-1+r,1,-1+n)]},e)).parent=i,o.alwaysSelectAsActiveMesh=!0,o.isPickable=!1}return t},t._Scale=.05,t}(Pr.a);ai.a.IncludesShadersStore.kernelBlurVaryingDeclaration=\"varying vec2 sampleCoord{X};\";var Qr=\"vec4 pack(float depth)\\n{\\nconst vec4 bit_shift=vec4(255.0*255.0*255.0,255.0*255.0,255.0,1.0);\\nconst vec4 bit_mask=vec4(0.0,1.0/255.0,1.0/255.0,1.0/255.0);\\nvec4 res=fract(depth*bit_shift);\\nres-=res.xxyz*bit_mask;\\nreturn res;\\n}\\nfloat unpack(vec4 color)\\n{\\nconst vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);\\nreturn dot(color,bit_shift);\\n}\";ai.a.IncludesShadersStore.packingFunctions=Qr;var qr=\"#ifdef DOF\\nfactor=sampleCoC(sampleCoord{X});\\ncomputedWeight=KERNEL_WEIGHT{X}*factor;\\nsumOfWeights+=computedWeight;\\n#else\\ncomputedWeight=KERNEL_WEIGHT{X};\\n#endif\\n#ifdef PACKEDFLOAT\\nblend+=unpack(texture2D(textureSampler,sampleCoord{X}))*computedWeight;\\n#else\\nblend+=texture2D(textureSampler,sampleCoord{X})*computedWeight;\\n#endif\";ai.a.IncludesShadersStore.kernelBlurFragment=qr;var Zr=\"#ifdef DOF\\nfactor=sampleCoC(sampleCenter+delta*KERNEL_DEP_OFFSET{X});\\ncomputedWeight=KERNEL_DEP_WEIGHT{X}*factor;\\nsumOfWeights+=computedWeight;\\n#else\\ncomputedWeight=KERNEL_DEP_WEIGHT{X};\\n#endif\\n#ifdef PACKEDFLOAT\\nblend+=unpack(texture2D(textureSampler,sampleCenter+delta*KERNEL_DEP_OFFSET{X}))*computedWeight;\\n#else\\nblend+=texture2D(textureSampler,sampleCenter+delta*KERNEL_DEP_OFFSET{X})*computedWeight;\\n#endif\";ai.a.IncludesShadersStore.kernelBlurFragment2=Zr;var Jr=\"\\nuniform sampler2D textureSampler;\\nuniform vec2 delta;\\n\\nvarying vec2 sampleCenter;\\n#ifdef DOF\\nuniform sampler2D circleOfConfusionSampler;\\nuniform vec2 cameraMinMaxZ;\\nfloat sampleDistance(const in vec2 offset) {\\nfloat depth=texture2D(circleOfConfusionSampler,offset).g;\\nreturn cameraMinMaxZ.x+(cameraMinMaxZ.y-cameraMinMaxZ.x)*depth;\\n}\\nfloat sampleCoC(const in vec2 offset) {\\nfloat coc=texture2D(circleOfConfusionSampler,offset).r;\\nreturn coc;\\n}\\n#endif\\n#include[0..varyingCount]\\n#ifdef PACKEDFLOAT\\n#include\\n#endif\\nvoid main(void)\\n{\\nfloat computedWeight=0.0;\\n#ifdef PACKEDFLOAT\\nfloat blend=0.;\\n#else\\nvec4 blend=vec4(0.);\\n#endif\\n#ifdef DOF\\nfloat sumOfWeights=CENTER_WEIGHT;\\nfloat factor=0.0;\\n\\n#ifdef PACKEDFLOAT\\nblend+=unpack(texture2D(textureSampler,sampleCenter))*CENTER_WEIGHT;\\n#else\\nblend+=texture2D(textureSampler,sampleCenter)*CENTER_WEIGHT;\\n#endif\\n#endif\\n#include[0..varyingCount]\\n#include[0..depCount]\\n#ifdef PACKEDFLOAT\\ngl_FragColor=pack(blend);\\n#else\\ngl_FragColor=blend;\\n#endif\\n#ifdef DOF\\ngl_FragColor/=sumOfWeights;\\n#endif\\n}\";ai.a.ShadersStore.kernelBlurPixelShader=Jr;ai.a.IncludesShadersStore.kernelBlurVertex=\"sampleCoord{X}=sampleCenter+delta*KERNEL_OFFSET{X};\";var $r=\"\\nattribute vec2 position;\\n\\nuniform vec2 delta;\\n\\nvarying vec2 sampleCenter;\\n#include[0..varyingCount]\\nconst vec2 madd=vec2(0.5,0.5);\\nvoid main(void) {\\nsampleCenter=(position*madd+madd);\\n#include[0..varyingCount]\\ngl_Position=vec4(position,0.0,1.0);\\n}\";ai.a.ShadersStore.kernelBlurVertexShader=$r;var eo=function(e){function t(t,i,n,r,o,a,s,c,l,u,h){void 0===a&&(a=Ke.a.BILINEAR_SAMPLINGMODE),void 0===l&&(l=g.a.TEXTURETYPE_UNSIGNED_INT),void 0===u&&(u=\"\"),void 0===h&&(h=!1);var d=e.call(this,t,\"kernelBlur\",[\"delta\",\"direction\",\"cameraMinMaxZ\"],[\"circleOfConfusionSampler\"],r,o,a,s,c,null,l,\"kernelBlur\",{varyingCount:0,depCount:0},!0)||this;return d.blockCompilation=h,d._packedFloat=!1,d._staticDefines=\"\",d._staticDefines=u,d.direction=i,d.onApplyObservable.add((function(e){d._outputTexture?e.setFloat2(\"delta\",1/d._outputTexture.width*d.direction.x,1/d._outputTexture.height*d.direction.y):e.setFloat2(\"delta\",1/d.width*d.direction.x,1/d.height*d.direction.y)})),d.kernel=n,d}return Object(h.d)(t,e),Object.defineProperty(t.prototype,\"kernel\",{get:function(){return this._idealKernel},set:function(e){this._idealKernel!==e&&(e=Math.max(e,1),this._idealKernel=e,this._kernel=this._nearestBestKernel(e),this.blockCompilation||this._updateParameters())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"packedFloat\",{get:function(){return this._packedFloat},set:function(e){this._packedFloat!==e&&(this._packedFloat=e,this.blockCompilation||this._updateParameters())},enumerable:!1,configurable:!0}),t.prototype.getClassName=function(){return\"BlurPostProcess\"},t.prototype.updateEffect=function(e,t,i,n,r,o){void 0===e&&(e=null),void 0===t&&(t=null),void 0===i&&(i=null),this._updateParameters(r,o)},t.prototype._updateParameters=function(t,i){for(var n=this._kernel,r=(n-1)/2,o=[],a=[],s=0,c=0;c0)return Math.max(r,3)}return Math.max(t,3)},t.prototype._gaussianWeight=function(e){var t=-e*e/(1/3*2*(1/3));return 1/(Math.sqrt(2*Math.PI)*(1/3))*Math.exp(t)},t.prototype._glslFloat=function(e,t){return void 0===t&&(t=8),e.toFixed(t).replace(/0+$/,\"\")},t._Parse=function(e,i,n,r){return w.a.Parse((function(){return new t(e.name,e.direction,e.kernel,e.options,i,e.renderTargetSamplingMode,n.getEngine(),e.reusable,e.textureType,void 0,!1)}),e,n,r)},Object(h.c)([Object(w.c)(\"kernel\")],t.prototype,\"_kernel\",void 0),Object(h.c)([Object(w.c)(\"packedFloat\")],t.prototype,\"_packedFloat\",void 0),Object(h.c)([Object(w.n)()],t.prototype,\"direction\",void 0),t}(li);c.a.RegisteredTypes[\"BABYLON.BlurPostProcess\"]=eo;var to=function(e){function t(t,i,n,r,o,s,c){void 0===o&&(o=g.a.TEXTURETYPE_UNSIGNED_INT),void 0===s&&(s=Ke.a.BILINEAR_SAMPLINGMODE),void 0===c&&(c=!0);var l=e.call(this,t,i,n,r,!0,o,!1,s,c)||this;return l.scene=n,l.mirrorPlane=new fn.a(0,1,0,1),l._transformMatrix=a.a.Zero(),l._mirrorMatrix=a.a.Zero(),l._adaptiveBlurKernel=0,l._blurKernelX=0,l._blurKernelY=0,l._blurRatio=1,l.ignoreCameraViewport=!0,l._updateGammaSpace(),l._imageProcessingConfigChangeObserver=n.imageProcessingConfiguration.onUpdateParameters.add((function(){l._updateGammaSpace})),l.onBeforeRenderObservable.add((function(){a.a.ReflectionToRef(l.mirrorPlane,l._mirrorMatrix),l._savedViewMatrix=n.getViewMatrix(),l._mirrorMatrix.multiplyToRef(l._savedViewMatrix,l._transformMatrix),n.setTransformMatrix(l._transformMatrix,n.getProjectionMatrix()),n.clipPlane=l.mirrorPlane,n.getEngine().cullBackFaces=!1,n._mirroredCameraPosition=a.e.TransformCoordinates(n.activeCamera.globalPosition,l._mirrorMatrix)})),l.onAfterRenderObservable.add((function(){n.setTransformMatrix(l._savedViewMatrix,n.getProjectionMatrix()),n.getEngine().cullBackFaces=!0,n._mirroredCameraPosition=null,n.clipPlane=null})),l}return Object(h.d)(t,e),Object.defineProperty(t.prototype,\"blurRatio\",{get:function(){return this._blurRatio},set:function(e){this._blurRatio!==e&&(this._blurRatio=e,this._preparePostProcesses())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"adaptiveBlurKernel\",{set:function(e){this._adaptiveBlurKernel=e,this._autoComputeBlurKernel()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"blurKernel\",{set:function(e){this.blurKernelX=e,this.blurKernelY=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"blurKernelX\",{get:function(){return this._blurKernelX},set:function(e){this._blurKernelX!==e&&(this._blurKernelX=e,this._preparePostProcesses())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"blurKernelY\",{get:function(){return this._blurKernelY},set:function(e){this._blurKernelY!==e&&(this._blurKernelY=e,this._preparePostProcesses())},enumerable:!1,configurable:!0}),t.prototype._autoComputeBlurKernel=function(){var e=this.getScene().getEngine(),t=this.getRenderWidth()/e.getRenderWidth(),i=this.getRenderHeight()/e.getRenderHeight();this.blurKernelX=this._adaptiveBlurKernel*t,this.blurKernelY=this._adaptiveBlurKernel*i},t.prototype._onRatioRescale=function(){this._sizeRatio&&(this.resize(this._initialSizeParameter),this._adaptiveBlurKernel||this._preparePostProcesses()),this._adaptiveBlurKernel&&this._autoComputeBlurKernel()},t.prototype._updateGammaSpace=function(){this.gammaSpace=!this.scene.imageProcessingConfiguration.isEnabled||!this.scene.imageProcessingConfiguration.applyByPostProcess},t.prototype._preparePostProcesses=function(){if(this.clearPostProcesses(!0),this._blurKernelX&&this._blurKernelY){var e=this.getScene().getEngine(),t=e.getCaps().textureFloatRender?g.a.TEXTURETYPE_FLOAT:g.a.TEXTURETYPE_HALF_FLOAT;this._blurX=new eo(\"horizontal blur\",new a.d(1,0),this._blurKernelX,this._blurRatio,null,Ke.a.BILINEAR_SAMPLINGMODE,e,!1,t),this._blurX.autoClear=!1,1===this._blurRatio&&this.samples<2&&this._texture?this._blurX.inputTexture=this._texture:this._blurX.alwaysForcePOT=!0,this._blurY=new eo(\"vertical blur\",new a.d(0,1),this._blurKernelY,this._blurRatio,null,Ke.a.BILINEAR_SAMPLINGMODE,e,!1,t),this._blurY.autoClear=!1,this._blurY.alwaysForcePOT=1!==this._blurRatio,this.addPostProcess(this._blurX),this.addPostProcess(this._blurY)}else this._blurY&&(this.removePostProcess(this._blurY),this._blurY.dispose(),this._blurY=null),this._blurX&&(this.removePostProcess(this._blurX),this._blurX.dispose(),this._blurX=null)},t.prototype.clone=function(){var e=this.getScene();if(!e)return this;var i=this.getSize(),n=new t(this.name,i.width,e,this._renderTargetOptions.generateMipMaps,this._renderTargetOptions.type,this._renderTargetOptions.samplingMode,this._renderTargetOptions.generateDepthBuffer);return n.hasAlpha=this.hasAlpha,n.level=this.level,n.mirrorPlane=this.mirrorPlane.clone(),this.renderList&&(n.renderList=this.renderList.slice(0)),n},t.prototype.serialize=function(){if(!this.name)return null;var t=e.prototype.serialize.call(this);return t.mirrorPlane=this.mirrorPlane.asArray(),t},t.prototype.dispose=function(){e.prototype.dispose.call(this),this.scene.imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingConfigChangeObserver)},t}(Ni);Ke.a._CreateMirror=function(e,t,i,n){return new to(e,t,i,n)};var io=i(34),no=function(e){function t(t,i,n,r,s,c,l,u,h,d,f,p,_,m){var v;void 0===n&&(n=null),void 0===r&&(r=!1),void 0===s&&(s=null),void 0===c&&(c=null),void 0===l&&(l=null),void 0===u&&(u=g.a.TEXTUREFORMAT_RGBA),void 0===h&&(h=!1),void 0===d&&(d=null),void 0===f&&(f=!1),void 0===p&&(p=.8),void 0===_&&(_=0);var b=e.call(this,i)||this;if(b.onLoadObservable=new o.c,b.boundingBoxPosition=a.e.Zero(),b._rotationY=0,b._files=null,b._forcedExtension=null,b._extensions=null,b.name=t,b.url=t,b._noMipmap=r,b.hasAlpha=!1,b._format=u,b.isCube=!0,b._textureMatrix=a.a.Identity(),b._createPolynomials=f,b.coordinatesMode=Ke.a.CUBIC_MODE,b._extensions=n,b._files=s,b._forcedExtension=d,b._loaderOptions=m,!t&&!s)return b;var y=t.lastIndexOf(\".\"),T=d||(y>-1?t.substring(y).toLowerCase():\"\"),E=\".dds\"===T,S=\".env\"===T;if(S?(b.gammaSpace=!1,b._prefiltered=!1,b.anisotropicFilteringLevel=1):(b._prefiltered=h,h&&(b.gammaSpace=!1,b.anisotropicFilteringLevel=1)),b._texture=b._getFromCache(t,r),!s&&(S||E||n||(n=[\"_px.jpg\",\"_py.jpg\",\"_pz.jpg\",\"_nx.jpg\",\"_ny.jpg\",\"_nz.jpg\"]),s=[],n))for(var A=0;A\\n#define RECIPROCAL_PI2 0.15915494\\n\\nuniform vec3 vEyePosition;\\n\\nvarying vec3 vPositionW;\\n#ifdef MAINUV1\\nvarying vec2 vMainUV1;\\n#endif\\n#ifdef MAINUV2\\nvarying vec2 vMainUV2;\\n#endif\\n#ifdef NORMAL\\nvarying vec3 vNormalW;\\n#endif\\n#ifdef DIFFUSE\\n#if DIFFUSEDIRECTUV == 1\\n#define vDiffuseUV vMainUV1\\n#elif DIFFUSEDIRECTUV == 2\\n#define vDiffuseUV vMainUV2\\n#else\\nvarying vec2 vDiffuseUV;\\n#endif\\nuniform sampler2D diffuseSampler;\\n#endif\\n\\n#ifdef REFLECTION\\n#ifdef REFLECTIONMAP_3D\\n#define sampleReflection(s,c) textureCube(s,c)\\nuniform samplerCube reflectionSampler;\\n#ifdef TEXTURELODSUPPORT\\n#define sampleReflectionLod(s,c,l) textureCubeLodEXT(s,c,l)\\n#else\\nuniform samplerCube reflectionSamplerLow;\\nuniform samplerCube reflectionSamplerHigh;\\n#endif\\n#else\\n#define sampleReflection(s,c) texture2D(s,c)\\nuniform sampler2D reflectionSampler;\\n#ifdef TEXTURELODSUPPORT\\n#define sampleReflectionLod(s,c,l) texture2DLodEXT(s,c,l)\\n#else\\nuniform samplerCube reflectionSamplerLow;\\nuniform samplerCube reflectionSamplerHigh;\\n#endif\\n#endif\\n#ifdef REFLECTIONMAP_SKYBOX\\nvarying vec3 vPositionUVW;\\n#else\\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\\nvarying vec3 vDirectionW;\\n#endif\\n#endif\\n#include\\n#endif\\n\\n#ifndef FROMLINEARSPACE\\n#define FROMLINEARSPACE;\\n#endif\\n\\n#ifndef SHADOWONLY\\n#define SHADOWONLY;\\n#endif\\n#include\\n\\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\\n#include\\n#include\\n#include\\n#include\\n#include\\n\\n#include\\n#ifdef REFLECTIONFRESNEL\\n#define FRESNEL_MAXIMUM_ON_ROUGH 0.25\\nvec3 fresnelSchlickEnvironmentGGX(float VdotN,vec3 reflectance0,vec3 reflectance90,float smoothness)\\n{\\n\\nfloat weight=mix(FRESNEL_MAXIMUM_ON_ROUGH,1.0,smoothness);\\nreturn reflectance0+weight*(reflectance90-reflectance0)*pow5(saturate(1.0-VdotN));\\n}\\n#endif\\nvoid main(void) {\\n#include\\nvec3 viewDirectionW=normalize(vEyePosition-vPositionW);\\n\\n#ifdef NORMAL\\nvec3 normalW=normalize(vNormalW);\\n#else\\nvec3 normalW=vec3(0.0,1.0,0.0);\\n#endif\\n\\nfloat shadow=1.;\\nfloat globalShadow=0.;\\nfloat shadowLightCount=0.;\\n#include[0..maxSimultaneousLights]\\n#ifdef SHADOWINUSE\\nglobalShadow/=shadowLightCount;\\n#else\\nglobalShadow=1.0;\\n#endif\\n#ifndef BACKMAT_SHADOWONLY\\n\\nvec4 reflectionColor=vec4(1.,1.,1.,1.);\\n#ifdef REFLECTION\\nvec3 reflectionVector=computeReflectionCoords(vec4(vPositionW,1.0),normalW);\\n#ifdef REFLECTIONMAP_OPPOSITEZ\\nreflectionVector.z*=-1.0;\\n#endif\\n\\n#ifdef REFLECTIONMAP_3D\\nvec3 reflectionCoords=reflectionVector;\\n#else\\nvec2 reflectionCoords=reflectionVector.xy;\\n#ifdef REFLECTIONMAP_PROJECTION\\nreflectionCoords/=reflectionVector.z;\\n#endif\\nreflectionCoords.y=1.0-reflectionCoords.y;\\n#endif\\n#ifdef REFLECTIONBLUR\\nfloat reflectionLOD=vReflectionInfos.y;\\n#ifdef TEXTURELODSUPPORT\\n\\nreflectionLOD=reflectionLOD*log2(vReflectionMicrosurfaceInfos.x)*vReflectionMicrosurfaceInfos.y+vReflectionMicrosurfaceInfos.z;\\nreflectionColor=sampleReflectionLod(reflectionSampler,reflectionCoords,reflectionLOD);\\n#else\\nfloat lodReflectionNormalized=saturate(reflectionLOD);\\nfloat lodReflectionNormalizedDoubled=lodReflectionNormalized*2.0;\\nvec4 reflectionSpecularMid=sampleReflection(reflectionSampler,reflectionCoords);\\nif(lodReflectionNormalizedDoubled<1.0){\\nreflectionColor=mix(\\nsampleReflection(reflectionSamplerHigh,reflectionCoords),\\nreflectionSpecularMid,\\nlodReflectionNormalizedDoubled\\n);\\n} else {\\nreflectionColor=mix(\\nreflectionSpecularMid,\\nsampleReflection(reflectionSamplerLow,reflectionCoords),\\nlodReflectionNormalizedDoubled-1.0\\n);\\n}\\n#endif\\n#else\\nvec4 reflectionSample=sampleReflection(reflectionSampler,reflectionCoords);\\nreflectionColor=reflectionSample;\\n#endif\\n#ifdef RGBDREFLECTION\\nreflectionColor.rgb=fromRGBD(reflectionColor);\\n#endif\\n#ifdef GAMMAREFLECTION\\nreflectionColor.rgb=toLinearSpace(reflectionColor.rgb);\\n#endif\\n#ifdef REFLECTIONBGR\\nreflectionColor.rgb=reflectionColor.bgr;\\n#endif\\n\\nreflectionColor.rgb*=vReflectionInfos.x;\\n#endif\\n\\nvec3 diffuseColor=vec3(1.,1.,1.);\\nfloat finalAlpha=alpha;\\n#ifdef DIFFUSE\\nvec4 diffuseMap=texture2D(diffuseSampler,vDiffuseUV);\\n#ifdef GAMMADIFFUSE\\ndiffuseMap.rgb=toLinearSpace(diffuseMap.rgb);\\n#endif\\n\\ndiffuseMap.rgb*=vDiffuseInfos.y;\\n#ifdef DIFFUSEHASALPHA\\nfinalAlpha*=diffuseMap.a;\\n#endif\\ndiffuseColor=diffuseMap.rgb;\\n#endif\\n\\n#ifdef REFLECTIONFRESNEL\\nvec3 colorBase=diffuseColor;\\n#else\\nvec3 colorBase=reflectionColor.rgb*diffuseColor;\\n#endif\\ncolorBase=max(colorBase,0.0);\\n\\n#ifdef USERGBCOLOR\\nvec3 finalColor=colorBase;\\n#else\\n#ifdef USEHIGHLIGHTANDSHADOWCOLORS\\nvec3 mainColor=mix(vPrimaryColorShadow.rgb,vPrimaryColor.rgb,colorBase);\\n#else\\nvec3 mainColor=vPrimaryColor.rgb;\\n#endif\\nvec3 finalColor=colorBase*mainColor;\\n#endif\\n\\n#ifdef REFLECTIONFRESNEL\\nvec3 reflectionAmount=vReflectionControl.xxx;\\nvec3 reflectionReflectance0=vReflectionControl.yyy;\\nvec3 reflectionReflectance90=vReflectionControl.zzz;\\nfloat VdotN=dot(normalize(vEyePosition),normalW);\\nvec3 planarReflectionFresnel=fresnelSchlickEnvironmentGGX(saturate(VdotN),reflectionReflectance0,reflectionReflectance90,1.0);\\nreflectionAmount*=planarReflectionFresnel;\\n#ifdef REFLECTIONFALLOFF\\nfloat reflectionDistanceFalloff=1.0-saturate(length(vPositionW.xyz-vBackgroundCenter)*vReflectionControl.w);\\nreflectionDistanceFalloff*=reflectionDistanceFalloff;\\nreflectionAmount*=reflectionDistanceFalloff;\\n#endif\\nfinalColor=mix(finalColor,reflectionColor.rgb,saturate(reflectionAmount));\\n#endif\\n#ifdef OPACITYFRESNEL\\nfloat viewAngleToFloor=dot(normalW,normalize(vEyePosition-vBackgroundCenter));\\n\\nconst float startAngle=0.1;\\nfloat fadeFactor=saturate(viewAngleToFloor/startAngle);\\nfinalAlpha*=fadeFactor*fadeFactor;\\n#endif\\n\\n#ifdef SHADOWINUSE\\nfinalColor=mix(finalColor*shadowLevel,finalColor,globalShadow);\\n#endif\\n\\nvec4 color=vec4(finalColor,finalAlpha);\\n#else\\nvec4 color=vec4(vPrimaryColor.rgb,(1.0-clamp(globalShadow,0.,1.))*alpha);\\n#endif\\n#include\\n#ifdef IMAGEPROCESSINGPOSTPROCESS\\n\\n\\ncolor.rgb=clamp(color.rgb,0.,30.0);\\n#else\\n\\ncolor=applyImageProcessing(color);\\n#endif\\n#ifdef PREMULTIPLYALPHA\\n\\ncolor.rgb*=color.a;\\n#endif\\n#ifdef NOISE\\ncolor.rgb+=dither(vPositionW.xy,0.5);\\ncolor=max(color,0.0);\\n#endif\\ngl_FragColor=color;\\n}\\n\";ai.a.ShadersStore.backgroundPixelShader=uo;var ho=\"uniform mat4 view;\\nuniform mat4 viewProjection;\\nuniform float shadowLevel;\\n#ifdef DIFFUSE\\nuniform mat4 diffuseMatrix;\\nuniform vec2 vDiffuseInfos;\\n#endif\\n#ifdef REFLECTION\\nuniform vec2 vReflectionInfos;\\nuniform mat4 reflectionMatrix;\\nuniform vec3 vReflectionMicrosurfaceInfos;\\nuniform float fFovMultiplier;\\n#endif\\n#ifdef POINTSIZE\\nuniform float pointSize;\\n#endif\";ai.a.IncludesShadersStore.backgroundVertexDeclaration=ho;i(78),i(79),i(117),i(137),i(80),i(81),i(111),i(157),i(138);var fo=\"precision highp float;\\n#include<__decl__backgroundVertex>\\n#include\\n\\nattribute vec3 position;\\n#ifdef NORMAL\\nattribute vec3 normal;\\n#endif\\n#include\\n\\n#include\\n\\nvarying vec3 vPositionW;\\n#ifdef NORMAL\\nvarying vec3 vNormalW;\\n#endif\\n#ifdef UV1\\nattribute vec2 uv;\\n#endif\\n#ifdef UV2\\nattribute vec2 uv2;\\n#endif\\n#ifdef MAINUV1\\nvarying vec2 vMainUV1;\\n#endif\\n#ifdef MAINUV2\\nvarying vec2 vMainUV2;\\n#endif\\n#if defined(DIFFUSE) && DIFFUSEDIRECTUV == 0\\nvarying vec2 vDiffuseUV;\\n#endif\\n#include\\n#include\\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\\n#ifdef REFLECTIONMAP_SKYBOX\\nvarying vec3 vPositionUVW;\\n#endif\\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\\nvarying vec3 vDirectionW;\\n#endif\\nvoid main(void) {\\n#ifdef REFLECTIONMAP_SKYBOX\\nvPositionUVW=position;\\n#endif\\n#include\\n#include\\n#ifdef MULTIVIEW\\nif (gl_ViewID_OVR == 0u) {\\ngl_Position=viewProjection*finalWorld*vec4(position,1.0);\\n} else {\\ngl_Position=viewProjectionR*finalWorld*vec4(position,1.0);\\n}\\n#else\\ngl_Position=viewProjection*finalWorld*vec4(position,1.0);\\n#endif\\nvec4 worldPos=finalWorld*vec4(position,1.0);\\nvPositionW=vec3(worldPos);\\n#ifdef NORMAL\\nmat3 normalWorld=mat3(finalWorld);\\n#ifdef NONUNIFORMSCALING\\nnormalWorld=transposeMat3(inverseMat3(normalWorld));\\n#endif\\nvNormalW=normalize(normalWorld*normal);\\n#endif\\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\\nvDirectionW=normalize(vec3(finalWorld*vec4(position,0.0)));\\n#ifdef EQUIRECTANGULAR_RELFECTION_FOV\\nmat3 screenToWorld=inverseMat3(mat3(finalWorld*viewProjection));\\nvec3 segment=mix(vDirectionW,screenToWorld*vec3(0.0,0.0,1.0),abs(fFovMultiplier-1.0));\\nif (fFovMultiplier<=1.0) {\\nvDirectionW=normalize(segment);\\n} else {\\nvDirectionW=normalize(vDirectionW+(vDirectionW-segment));\\n}\\n#endif\\n#endif\\n#ifndef UV1\\nvec2 uv=vec2(0.,0.);\\n#endif\\n#ifndef UV2\\nvec2 uv2=vec2(0.,0.);\\n#endif\\n#ifdef MAINUV1\\nvMainUV1=uv;\\n#endif\\n#ifdef MAINUV2\\nvMainUV2=uv2;\\n#endif\\n#if defined(DIFFUSE) && DIFFUSEDIRECTUV == 0\\nif (vDiffuseInfos.x == 0.)\\n{\\nvDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));\\n}\\nelse\\n{\\nvDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\\n}\\n#endif\\n\\n#include\\n\\n#include\\n\\n#include[0..maxSimultaneousLights]\\n\\n#ifdef VERTEXCOLOR\\nvColor=color;\\n#endif\\n\\n#ifdef POINTSIZE\\ngl_PointSize=pointSize;\\n#endif\\n}\\n\";ai.a.ShadersStore.backgroundVertexShader=fo;var po=i(67),_o=function(e){function t(){var t=e.call(this)||this;return t.DIFFUSE=!1,t.DIFFUSEDIRECTUV=0,t.GAMMADIFFUSE=!1,t.DIFFUSEHASALPHA=!1,t.OPACITYFRESNEL=!1,t.REFLECTIONBLUR=!1,t.REFLECTIONFRESNEL=!1,t.REFLECTIONFALLOFF=!1,t.TEXTURELODSUPPORT=!1,t.PREMULTIPLYALPHA=!1,t.USERGBCOLOR=!1,t.USEHIGHLIGHTANDSHADOWCOLORS=!1,t.BACKMAT_SHADOWONLY=!1,t.NOISE=!1,t.REFLECTIONBGR=!1,t.IMAGEPROCESSING=!1,t.VIGNETTE=!1,t.VIGNETTEBLENDMODEMULTIPLY=!1,t.VIGNETTEBLENDMODEOPAQUE=!1,t.TONEMAPPING=!1,t.TONEMAPPING_ACES=!1,t.CONTRAST=!1,t.COLORCURVES=!1,t.COLORGRADING=!1,t.COLORGRADING3D=!1,t.SAMPLER3DGREENDEPTH=!1,t.SAMPLER3DBGRMAP=!1,t.IMAGEPROCESSINGPOSTPROCESS=!1,t.EXPOSURE=!1,t.MULTIVIEW=!1,t.REFLECTION=!1,t.REFLECTIONMAP_3D=!1,t.REFLECTIONMAP_SPHERICAL=!1,t.REFLECTIONMAP_PLANAR=!1,t.REFLECTIONMAP_CUBIC=!1,t.REFLECTIONMAP_PROJECTION=!1,t.REFLECTIONMAP_SKYBOX=!1,t.REFLECTIONMAP_EXPLICIT=!1,t.REFLECTIONMAP_EQUIRECTANGULAR=!1,t.REFLECTIONMAP_EQUIRECTANGULAR_FIXED=!1,t.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED=!1,t.INVERTCUBICMAP=!1,t.REFLECTIONMAP_OPPOSITEZ=!1,t.LODINREFLECTIONALPHA=!1,t.GAMMAREFLECTION=!1,t.RGBDREFLECTION=!1,t.EQUIRECTANGULAR_RELFECTION_FOV=!1,t.MAINUV1=!1,t.MAINUV2=!1,t.UV1=!1,t.UV2=!1,t.CLIPPLANE=!1,t.CLIPPLANE2=!1,t.CLIPPLANE3=!1,t.CLIPPLANE4=!1,t.CLIPPLANE5=!1,t.CLIPPLANE6=!1,t.POINTSIZE=!1,t.FOG=!1,t.NORMAL=!1,t.NUM_BONE_INFLUENCERS=0,t.BonesPerMesh=0,t.INSTANCES=!1,t.SHADOWFLOAT=!1,t.rebuild(),t}return Object(h.d)(t,e),t}(oo.a),mo=function(e){function t(t,i){var n=e.call(this,t,i)||this;return n.primaryColor=s.a.White(),n._primaryColorShadowLevel=0,n._primaryColorHighlightLevel=0,n.reflectionTexture=null,n.reflectionBlur=0,n.diffuseTexture=null,n._shadowLights=null,n.shadowLights=null,n.shadowLevel=0,n.sceneCenter=a.e.Zero(),n.opacityFresnel=!0,n.reflectionFresnel=!1,n.reflectionFalloffDistance=0,n.reflectionAmount=1,n.reflectionReflectance0=.05,n.reflectionReflectance90=.5,n.useRGBColor=!0,n.enableNoise=!1,n._fovMultiplier=1,n.useEquirectangularFOV=!1,n._maxSimultaneousLights=4,n.maxSimultaneousLights=4,n._shadowOnly=!1,n.shadowOnly=!1,n._imageProcessingObserver=null,n.switchToBGR=!1,n._renderTargets=new oi.a(16),n._reflectionControls=a.f.Zero(),n._white=s.a.White(),n._primaryShadowColor=s.a.Black(),n._primaryHighlightColor=s.a.Black(),n._attachImageProcessingConfiguration(null),n.getRenderTargetTextures=function(){return n._renderTargets.reset(),n._diffuseTexture&&n._diffuseTexture.isRenderTarget&&n._renderTargets.push(n._diffuseTexture),n._reflectionTexture&&n._reflectionTexture.isRenderTarget&&n._renderTargets.push(n._reflectionTexture),n._renderTargets},n}return Object(h.d)(t,e),Object.defineProperty(t.prototype,\"_perceptualColor\",{get:function(){return this.__perceptualColor},set:function(e){this.__perceptualColor=e,this._computePrimaryColorFromPerceptualColor(),this._markAllSubMeshesAsLightsDirty()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"primaryColorShadowLevel\",{get:function(){return this._primaryColorShadowLevel},set:function(e){this._primaryColorShadowLevel=e,this._computePrimaryColors(),this._markAllSubMeshesAsLightsDirty()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"primaryColorHighlightLevel\",{get:function(){return this._primaryColorHighlightLevel},set:function(e){this._primaryColorHighlightLevel=e,this._computePrimaryColors(),this._markAllSubMeshesAsLightsDirty()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"reflectionStandardFresnelWeight\",{set:function(e){var i=e;i<.5?(i*=2,this.reflectionReflectance0=t.StandardReflectance0*i,this.reflectionReflectance90=t.StandardReflectance90*i):(i=2*i-1,this.reflectionReflectance0=t.StandardReflectance0+(1-t.StandardReflectance0)*i,this.reflectionReflectance90=t.StandardReflectance90+(1-t.StandardReflectance90)*i)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"fovMultiplier\",{get:function(){return this._fovMultiplier},set:function(e){isNaN(e)&&(e=1),this._fovMultiplier=Math.max(0,Math.min(2,e))},enumerable:!1,configurable:!0}),t.prototype._attachImageProcessingConfiguration=function(e){var t=this;e!==this._imageProcessingConfiguration&&(this._imageProcessingConfiguration&&this._imageProcessingObserver&&this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),this._imageProcessingConfiguration=e||this.getScene().imageProcessingConfiguration,this._imageProcessingConfiguration&&(this._imageProcessingObserver=this._imageProcessingConfiguration.onUpdateParameters.add((function(){t._computePrimaryColorFromPerceptualColor(),t._markAllSubMeshesAsImageProcessingDirty()}))))},Object.defineProperty(t.prototype,\"imageProcessingConfiguration\",{get:function(){return this._imageProcessingConfiguration},set:function(e){this._attachImageProcessingConfiguration(e),this._markAllSubMeshesAsTexturesDirty()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"cameraColorCurvesEnabled\",{get:function(){return this.imageProcessingConfiguration.colorCurvesEnabled},set:function(e){this.imageProcessingConfiguration.colorCurvesEnabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"cameraColorGradingEnabled\",{get:function(){return this.imageProcessingConfiguration.colorGradingEnabled},set:function(e){this.imageProcessingConfiguration.colorGradingEnabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"cameraToneMappingEnabled\",{get:function(){return this._imageProcessingConfiguration.toneMappingEnabled},set:function(e){this._imageProcessingConfiguration.toneMappingEnabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"cameraExposure\",{get:function(){return this._imageProcessingConfiguration.exposure},set:function(e){this._imageProcessingConfiguration.exposure=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"cameraContrast\",{get:function(){return this._imageProcessingConfiguration.contrast},set:function(e){this._imageProcessingConfiguration.contrast=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"cameraColorGradingTexture\",{get:function(){return this._imageProcessingConfiguration.colorGradingTexture},set:function(e){this.imageProcessingConfiguration.colorGradingTexture=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"cameraColorCurves\",{get:function(){return this.imageProcessingConfiguration.colorCurves},set:function(e){this.imageProcessingConfiguration.colorCurves=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"hasRenderTargetTextures\",{get:function(){return!(!this._diffuseTexture||!this._diffuseTexture.isRenderTarget)||!(!this._reflectionTexture||!this._reflectionTexture.isRenderTarget)},enumerable:!1,configurable:!0}),t.prototype.needAlphaTesting=function(){return!0},t.prototype.needAlphaBlending=function(){return this.alpha<1||null!=this._diffuseTexture&&this._diffuseTexture.hasAlpha||this._shadowOnly},t.prototype.isReadyForSubMesh=function(e,t,i){var n=this;if(void 0===i&&(i=!1),t.effect&&this.isFrozen&&t.effect._wasPreviouslyReady)return!0;t._materialDefines||(t._materialDefines=new _o);var r=this.getScene(),o=t._materialDefines;if(this._isReadyForSubMesh(t))return!0;var a=r.getEngine();if(ro.a.PrepareDefinesForLights(r,e,o,!1,this._maxSimultaneousLights),o._needNormals=!0,ro.a.PrepareDefinesForMultiview(r,o),o._areTexturesDirty){if(o._needUVs=!1,r.texturesEnabled){if(r.getEngine().getCaps().textureLOD&&(o.TEXTURELODSUPPORT=!0),this._diffuseTexture&&so.a.DiffuseTextureEnabled){if(!this._diffuseTexture.isReadyOrNotBlocking())return!1;ro.a.PrepareDefinesForMergedUV(this._diffuseTexture,o,\"DIFFUSE\"),o.DIFFUSEHASALPHA=this._diffuseTexture.hasAlpha,o.GAMMADIFFUSE=this._diffuseTexture.gammaSpace,o.OPACITYFRESNEL=this._opacityFresnel}else o.DIFFUSE=!1,o.DIFFUSEHASALPHA=!1,o.GAMMADIFFUSE=!1,o.OPACITYFRESNEL=!1;var s=this._reflectionTexture;if(s&&so.a.ReflectionTextureEnabled){if(!s.isReadyOrNotBlocking())return!1;switch(o.REFLECTION=!0,o.GAMMAREFLECTION=s.gammaSpace,o.RGBDREFLECTION=s.isRGBD,o.REFLECTIONBLUR=this._reflectionBlur>0,o.REFLECTIONMAP_OPPOSITEZ=this.getScene().useRightHandedSystem?!s.invertZ:s.invertZ,o.LODINREFLECTIONALPHA=s.lodLevelInAlpha,o.EQUIRECTANGULAR_RELFECTION_FOV=this.useEquirectangularFOV,o.REFLECTIONBGR=this.switchToBGR,s.coordinatesMode===Ke.a.INVCUBIC_MODE&&(o.INVERTCUBICMAP=!0),o.REFLECTIONMAP_3D=s.isCube,s.coordinatesMode){case Ke.a.EXPLICIT_MODE:o.REFLECTIONMAP_EXPLICIT=!0;break;case Ke.a.PLANAR_MODE:o.REFLECTIONMAP_PLANAR=!0;break;case Ke.a.PROJECTION_MODE:o.REFLECTIONMAP_PROJECTION=!0;break;case Ke.a.SKYBOX_MODE:o.REFLECTIONMAP_SKYBOX=!0;break;case Ke.a.SPHERICAL_MODE:o.REFLECTIONMAP_SPHERICAL=!0;break;case Ke.a.EQUIRECTANGULAR_MODE:o.REFLECTIONMAP_EQUIRECTANGULAR=!0;break;case Ke.a.FIXED_EQUIRECTANGULAR_MODE:o.REFLECTIONMAP_EQUIRECTANGULAR_FIXED=!0;break;case Ke.a.FIXED_EQUIRECTANGULAR_MIRRORED_MODE:o.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED=!0;break;case Ke.a.CUBIC_MODE:case Ke.a.INVCUBIC_MODE:default:o.REFLECTIONMAP_CUBIC=!0}this.reflectionFresnel?(o.REFLECTIONFRESNEL=!0,o.REFLECTIONFALLOFF=this.reflectionFalloffDistance>0,this._reflectionControls.x=this.reflectionAmount,this._reflectionControls.y=this.reflectionReflectance0,this._reflectionControls.z=this.reflectionReflectance90,this._reflectionControls.w=1/this.reflectionFalloffDistance):(o.REFLECTIONFRESNEL=!1,o.REFLECTIONFALLOFF=!1)}else o.REFLECTION=!1,o.REFLECTIONFRESNEL=!1,o.REFLECTIONFALLOFF=!1,o.REFLECTIONBLUR=!1,o.REFLECTIONMAP_3D=!1,o.REFLECTIONMAP_SPHERICAL=!1,o.REFLECTIONMAP_PLANAR=!1,o.REFLECTIONMAP_CUBIC=!1,o.REFLECTIONMAP_PROJECTION=!1,o.REFLECTIONMAP_SKYBOX=!1,o.REFLECTIONMAP_EXPLICIT=!1,o.REFLECTIONMAP_EQUIRECTANGULAR=!1,o.REFLECTIONMAP_EQUIRECTANGULAR_FIXED=!1,o.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED=!1,o.INVERTCUBICMAP=!1,o.REFLECTIONMAP_OPPOSITEZ=!1,o.LODINREFLECTIONALPHA=!1,o.GAMMAREFLECTION=!1,o.RGBDREFLECTION=!1}o.PREMULTIPLYALPHA=this.alphaMode===g.a.ALPHA_PREMULTIPLIED||this.alphaMode===g.a.ALPHA_PREMULTIPLIED_PORTERDUFF,o.USERGBCOLOR=this._useRGBColor,o.NOISE=this._enableNoise}if(o._areLightsDirty&&(o.USEHIGHLIGHTANDSHADOWCOLORS=!this._useRGBColor&&(0!==this._primaryColorShadowLevel||0!==this._primaryColorHighlightLevel),o.BACKMAT_SHADOWONLY=this._shadowOnly),o._areImageProcessingDirty&&this._imageProcessingConfiguration){if(!this._imageProcessingConfiguration.isReady())return!1;this._imageProcessingConfiguration.prepareDefines(o)}if(ro.a.PrepareDefinesForMisc(e,r,!1,this.pointsCloud,this.fogEnabled,this._shouldTurnAlphaTestOn(e),o),ro.a.PrepareDefinesForFrameBoundValues(r,a,o,i,null,t.getRenderingMesh().hasThinInstances),ro.a.PrepareDefinesForAttributes(e,o,!1,!0,!1)&&e&&(r.getEngine().getCaps().standardDerivatives||e.isVerticesDataPresent(Qi.b.NormalKind)||(e.createNormals(!0),m.a.Warn(\"BackgroundMaterial: Normals have been created for the mesh: \"+e.name))),o.isDirty){o.markAsProcessed(),r.resetCachedMaterial();var c=new po.a;o.FOG&&c.addFallback(0,\"FOG\"),o.POINTSIZE&&c.addFallback(1,\"POINTSIZE\"),o.MULTIVIEW&&c.addFallback(0,\"MULTIVIEW\"),ro.a.HandleFallbacksForShadows(o,c,this._maxSimultaneousLights);var l=[Qi.b.PositionKind];o.NORMAL&&l.push(Qi.b.NormalKind),o.UV1&&l.push(Qi.b.UVKind),o.UV2&&l.push(Qi.b.UV2Kind),ro.a.PrepareAttributesForBones(l,e,o,c),ro.a.PrepareAttributesForInstances(l,o);var u=[\"world\",\"view\",\"viewProjection\",\"vEyePosition\",\"vLightsType\",\"vFogInfos\",\"vFogColor\",\"pointSize\",\"vClipPlane\",\"vClipPlane2\",\"vClipPlane3\",\"vClipPlane4\",\"vClipPlane5\",\"vClipPlane6\",\"mBones\",\"vPrimaryColor\",\"vPrimaryColorShadow\",\"vReflectionInfos\",\"reflectionMatrix\",\"vReflectionMicrosurfaceInfos\",\"fFovMultiplier\",\"shadowLevel\",\"alpha\",\"vBackgroundCenter\",\"vReflectionControl\",\"vDiffuseInfos\",\"diffuseMatrix\"],h=[\"diffuseSampler\",\"reflectionSampler\",\"reflectionSamplerLow\",\"reflectionSamplerHigh\"],d=[\"Material\",\"Scene\"];ji.a&&(ji.a.PrepareUniforms(u,o),ji.a.PrepareSamplers(h,o)),ro.a.PrepareUniformsAndSamplersList({uniformsNames:u,uniformBuffersNames:d,samplers:h,defines:o,maxSimultaneousLights:this._maxSimultaneousLights});var f=o.toString();t.setEffect(r.getEngine().createEffect(\"background\",{attributes:l,uniformsNames:u,uniformBuffersNames:d,samplers:h,defines:f,fallbacks:c,onCompiled:function(e){n.onCompiled&&n.onCompiled(e),n.bindSceneUniformBuffer(e,r.getSceneUniformBuffer())},onError:this.onError,indexParameters:{maxSimultaneousLights:this._maxSimultaneousLights}},a),o),this.buildUniformLayout()}return!(!t.effect||!t.effect.isReady())&&(o._renderId=r.getRenderId(),t.effect._wasPreviouslyReady=!0,!0)},t.prototype._computePrimaryColorFromPerceptualColor=function(){this.__perceptualColor&&(this._primaryColor.copyFrom(this.__perceptualColor),this._primaryColor.toLinearSpaceToRef(this._primaryColor),this._imageProcessingConfiguration&&this._primaryColor.scaleToRef(1/this._imageProcessingConfiguration.exposure,this._primaryColor),this._computePrimaryColors())},t.prototype._computePrimaryColors=function(){0===this._primaryColorShadowLevel&&0===this._primaryColorHighlightLevel||(this._primaryColor.scaleToRef(this._primaryColorShadowLevel,this._primaryShadowColor),this._primaryColor.subtractToRef(this._primaryShadowColor,this._primaryShadowColor),this._white.subtractToRef(this._primaryColor,this._primaryHighlightColor),this._primaryHighlightColor.scaleToRef(this._primaryColorHighlightLevel,this._primaryHighlightColor),this._primaryColor.addToRef(this._primaryHighlightColor,this._primaryHighlightColor))},t.prototype.buildUniformLayout=function(){this._uniformBuffer.addUniform(\"vPrimaryColor\",4),this._uniformBuffer.addUniform(\"vPrimaryColorShadow\",4),this._uniformBuffer.addUniform(\"vDiffuseInfos\",2),this._uniformBuffer.addUniform(\"vReflectionInfos\",2),this._uniformBuffer.addUniform(\"diffuseMatrix\",16),this._uniformBuffer.addUniform(\"reflectionMatrix\",16),this._uniformBuffer.addUniform(\"vReflectionMicrosurfaceInfos\",3),this._uniformBuffer.addUniform(\"fFovMultiplier\",1),this._uniformBuffer.addUniform(\"pointSize\",1),this._uniformBuffer.addUniform(\"shadowLevel\",1),this._uniformBuffer.addUniform(\"alpha\",1),this._uniformBuffer.addUniform(\"vBackgroundCenter\",3),this._uniformBuffer.addUniform(\"vReflectionControl\",4),this._uniformBuffer.create()},t.prototype.unbind=function(){this._diffuseTexture&&this._diffuseTexture.isRenderTarget&&this._uniformBuffer.setTexture(\"diffuseSampler\",null),this._reflectionTexture&&this._reflectionTexture.isRenderTarget&&this._uniformBuffer.setTexture(\"reflectionSampler\",null),e.prototype.unbind.call(this)},t.prototype.bindOnlyWorldMatrix=function(e){this._activeEffect.setMatrix(\"world\",e)},t.prototype.bindForSubMesh=function(e,t,i){var n=this.getScene(),r=i._materialDefines;if(r){var o=i.effect;if(o){this._activeEffect=o,this.bindOnlyWorldMatrix(e),ro.a.BindBonesParameters(t,this._activeEffect);var a=this._mustRebind(n,o,t.visibility);if(a){this._uniformBuffer.bindToEffect(o,\"Material\"),this.bindViewProjection(o);var s=this._reflectionTexture;this._uniformBuffer.useUbo&&this.isFrozen&&this._uniformBuffer.isSync||(n.texturesEnabled&&(this._diffuseTexture&&so.a.DiffuseTextureEnabled&&(this._uniformBuffer.updateFloat2(\"vDiffuseInfos\",this._diffuseTexture.coordinatesIndex,this._diffuseTexture.level),ro.a.BindTextureMatrix(this._diffuseTexture,this._uniformBuffer,\"diffuse\")),s&&so.a.ReflectionTextureEnabled&&(this._uniformBuffer.updateMatrix(\"reflectionMatrix\",s.getReflectionTextureMatrix()),this._uniformBuffer.updateFloat2(\"vReflectionInfos\",s.level,this._reflectionBlur),this._uniformBuffer.updateFloat3(\"vReflectionMicrosurfaceInfos\",s.getSize().width,s.lodGenerationScale,s.lodGenerationOffset))),this.shadowLevel>0&&this._uniformBuffer.updateFloat(\"shadowLevel\",this.shadowLevel),this._uniformBuffer.updateFloat(\"alpha\",this.alpha),this.pointsCloud&&this._uniformBuffer.updateFloat(\"pointSize\",this.pointSize),r.USEHIGHLIGHTANDSHADOWCOLORS?(this._uniformBuffer.updateColor4(\"vPrimaryColor\",this._primaryHighlightColor,1),this._uniformBuffer.updateColor4(\"vPrimaryColorShadow\",this._primaryShadowColor,1)):this._uniformBuffer.updateColor4(\"vPrimaryColor\",this._primaryColor,1)),this._uniformBuffer.updateFloat(\"fFovMultiplier\",this._fovMultiplier),n.texturesEnabled&&(this._diffuseTexture&&so.a.DiffuseTextureEnabled&&this._uniformBuffer.setTexture(\"diffuseSampler\",this._diffuseTexture),s&&so.a.ReflectionTextureEnabled&&(r.REFLECTIONBLUR&&r.TEXTURELODSUPPORT?this._uniformBuffer.setTexture(\"reflectionSampler\",s):r.REFLECTIONBLUR?(this._uniformBuffer.setTexture(\"reflectionSampler\",s._lodTextureMid||s),this._uniformBuffer.setTexture(\"reflectionSamplerLow\",s._lodTextureLow||s),this._uniformBuffer.setTexture(\"reflectionSamplerHigh\",s._lodTextureHigh||s)):this._uniformBuffer.setTexture(\"reflectionSampler\",s),r.REFLECTIONFRESNEL&&(this._uniformBuffer.updateFloat3(\"vBackgroundCenter\",this.sceneCenter.x,this.sceneCenter.y,this.sceneCenter.z),this._uniformBuffer.updateFloat4(\"vReflectionControl\",this._reflectionControls.x,this._reflectionControls.y,this._reflectionControls.z,this._reflectionControls.w)))),ro.a.BindClipPlane(this._activeEffect,n),ro.a.BindEyePosition(o,n)}!a&&this.isFrozen||(n.lightsEnabled&&ro.a.BindLights(n,t,this._activeEffect,r,this._maxSimultaneousLights,!1),this.bindView(o),ro.a.BindFogParameters(n,t,this._activeEffect,!0),this._imageProcessingConfiguration&&this._imageProcessingConfiguration.bind(this._activeEffect)),this._uniformBuffer.update(),this._afterBind(t,this._activeEffect)}}},t.prototype.hasTexture=function(t){return!!e.prototype.hasTexture.call(this,t)||(this._reflectionTexture===t||this._diffuseTexture===t)},t.prototype.dispose=function(t,i){void 0===t&&(t=!1),void 0===i&&(i=!1),i&&(this.diffuseTexture&&this.diffuseTexture.dispose(),this.reflectionTexture&&this.reflectionTexture.dispose()),this._renderTargets.dispose(),this._imageProcessingConfiguration&&this._imageProcessingObserver&&this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),e.prototype.dispose.call(this,t)},t.prototype.clone=function(e){var i=this;return w.a.Clone((function(){return new t(e,i.getScene())}),this)},t.prototype.serialize=function(){var e=w.a.Serialize(this);return e.customType=\"BABYLON.BackgroundMaterial\",e},t.prototype.getClassName=function(){return\"BackgroundMaterial\"},t.Parse=function(e,i,n){return w.a.Parse((function(){return new t(e.name,i)}),e,i,n)},t.StandardReflectance0=.05,t.StandardReflectance90=.5,Object(h.c)([Object(w.e)()],t.prototype,\"_primaryColor\",void 0),Object(h.c)([Object(w.b)(\"_markAllSubMeshesAsLightsDirty\")],t.prototype,\"primaryColor\",void 0),Object(h.c)([Object(w.e)()],t.prototype,\"__perceptualColor\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"_primaryColorShadowLevel\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"_primaryColorHighlightLevel\",void 0),Object(h.c)([Object(w.b)(\"_markAllSubMeshesAsLightsDirty\")],t.prototype,\"primaryColorHighlightLevel\",null),Object(h.c)([Object(w.m)()],t.prototype,\"_reflectionTexture\",void 0),Object(h.c)([Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"reflectionTexture\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"_reflectionBlur\",void 0),Object(h.c)([Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"reflectionBlur\",void 0),Object(h.c)([Object(w.m)()],t.prototype,\"_diffuseTexture\",void 0),Object(h.c)([Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"diffuseTexture\",void 0),Object(h.c)([Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"shadowLights\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"_shadowLevel\",void 0),Object(h.c)([Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"shadowLevel\",void 0),Object(h.c)([Object(w.o)()],t.prototype,\"_sceneCenter\",void 0),Object(h.c)([Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"sceneCenter\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"_opacityFresnel\",void 0),Object(h.c)([Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"opacityFresnel\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"_reflectionFresnel\",void 0),Object(h.c)([Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"reflectionFresnel\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"_reflectionFalloffDistance\",void 0),Object(h.c)([Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"reflectionFalloffDistance\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"_reflectionAmount\",void 0),Object(h.c)([Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"reflectionAmount\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"_reflectionReflectance0\",void 0),Object(h.c)([Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"reflectionReflectance0\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"_reflectionReflectance90\",void 0),Object(h.c)([Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"reflectionReflectance90\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"_useRGBColor\",void 0),Object(h.c)([Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"useRGBColor\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"_enableNoise\",void 0),Object(h.c)([Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"enableNoise\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"_maxSimultaneousLights\",void 0),Object(h.c)([Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"maxSimultaneousLights\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"_shadowOnly\",void 0),Object(h.c)([Object(w.b)(\"_markAllSubMeshesAsLightsDirty\")],t.prototype,\"shadowOnly\",void 0),Object(h.c)([Object(w.i)()],t.prototype,\"_imageProcessingConfiguration\",void 0),t}(ao.a);c.a.RegisteredTypes[\"BABYLON.BackgroundMaterial\"]=mo;var go=function(){function e(t,i){var n=this;this._errorHandler=function(e,t){n.onErrorObservable.notifyObservers({message:e,exception:t})},this._options=Object(h.a)(Object(h.a)({},e._getDefaultOptions()),t),this._scene=i,this.onErrorObservable=new o.c,this._setupBackground(),this._setupImageProcessing()}return e._getDefaultOptions=function(){return{createGround:!0,groundSize:15,groundTexture:this._groundTextureCDNUrl,groundColor:new s.a(.2,.2,.3).toLinearSpace().scale(3),groundOpacity:.9,enableGroundShadow:!0,groundShadowLevel:.5,enableGroundMirror:!1,groundMirrorSizeRatio:.3,groundMirrorBlurKernel:64,groundMirrorAmount:1,groundMirrorFresnelWeight:1,groundMirrorFallOffDistance:0,groundMirrorTextureType:g.a.TEXTURETYPE_UNSIGNED_INT,groundYBias:1e-5,createSkybox:!0,skyboxSize:20,skyboxTexture:this._skyboxTextureCDNUrl,skyboxColor:new s.a(.2,.2,.3).toLinearSpace().scale(3),backgroundYRotation:0,sizeAuto:!0,rootPosition:a.e.Zero(),setupImageProcessing:!0,environmentTexture:this._environmentTextureCDNUrl,cameraExposure:.8,cameraContrast:1.2,toneMappingEnabled:!0}},Object.defineProperty(e.prototype,\"rootMesh\",{get:function(){return this._rootMesh},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"skybox\",{get:function(){return this._skybox},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"skyboxTexture\",{get:function(){return this._skyboxTexture},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"skyboxMaterial\",{get:function(){return this._skyboxMaterial},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"ground\",{get:function(){return this._ground},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"groundTexture\",{get:function(){return this._groundTexture},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"groundMirror\",{get:function(){return this._groundMirror},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"groundMirrorRenderList\",{get:function(){return this._groundMirror?this._groundMirror.renderList:null},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"groundMaterial\",{get:function(){return this._groundMaterial},enumerable:!1,configurable:!0}),e.prototype.updateOptions=function(e){var t=Object(h.a)(Object(h.a)({},this._options),e);this._ground&&!t.createGround&&(this._ground.dispose(),this._ground=null),this._groundMaterial&&!t.createGround&&(this._groundMaterial.dispose(),this._groundMaterial=null),this._groundTexture&&this._options.groundTexture!=t.groundTexture&&(this._groundTexture.dispose(),this._groundTexture=null),this._skybox&&!t.createSkybox&&(this._skybox.dispose(),this._skybox=null),this._skyboxMaterial&&!t.createSkybox&&(this._skyboxMaterial.dispose(),this._skyboxMaterial=null),this._skyboxTexture&&this._options.skyboxTexture!=t.skyboxTexture&&(this._skyboxTexture.dispose(),this._skyboxTexture=null),this._groundMirror&&!t.enableGroundMirror&&(this._groundMirror.dispose(),this._groundMirror=null),this._scene.environmentTexture&&this._options.environmentTexture!=t.environmentTexture&&this._scene.environmentTexture.dispose(),this._options=t,this._setupBackground(),this._setupImageProcessing()},e.prototype.setMainColor=function(e){this.groundMaterial&&(this.groundMaterial.primaryColor=e),this.skyboxMaterial&&(this.skyboxMaterial.primaryColor=e),this.groundMirror&&(this.groundMirror.clearColor=new s.b(e.r,e.g,e.b,1))},e.prototype._setupImageProcessing=function(){this._options.setupImageProcessing&&(this._scene.imageProcessingConfiguration.contrast=this._options.cameraContrast,this._scene.imageProcessingConfiguration.exposure=this._options.cameraExposure,this._scene.imageProcessingConfiguration.toneMappingEnabled=this._options.toneMappingEnabled,this._setupEnvironmentTexture())},e.prototype._setupEnvironmentTexture=function(){if(!this._scene.environmentTexture)if(this._options.environmentTexture instanceof Zn.a)this._scene.environmentTexture=this._options.environmentTexture;else{var e=no.CreateFromPrefilteredData(this._options.environmentTexture,this._scene);this._scene.environmentTexture=e}},e.prototype._setupBackground=function(){this._rootMesh||(this._rootMesh=new be.a(\"BackgroundHelper\",this._scene)),this._rootMesh.rotation.y=this._options.backgroundYRotation;var e=this._getSceneSize();this._options.createGround&&(this._setupGround(e),this._setupGroundMaterial(),this._setupGroundDiffuseTexture(),this._options.enableGroundMirror&&this._setupGroundMirrorTexture(e),this._setupMirrorInGroundMaterial()),this._options.createSkybox&&(this._setupSkybox(e),this._setupSkyboxMaterial(),this._setupSkyboxReflectionTexture()),this._rootMesh.position.x=e.rootPosition.x,this._rootMesh.position.z=e.rootPosition.z,this._rootMesh.position.y=e.rootPosition.y},e.prototype._getSceneSize=function(){var e=this,t=this._options.groundSize,i=this._options.skyboxSize,n=this._options.rootPosition;if(!this._scene.meshes||1===this._scene.meshes.length)return{groundSize:t,skyboxSize:i,rootPosition:n};var r=this._scene.getWorldExtends((function(t){return t!==e._ground&&t!==e._rootMesh&&t!==e._skybox})),o=r.max.subtract(r.min);if(this._options.sizeAuto){this._scene.activeCamera instanceof Bt&&this._scene.activeCamera.upperRadiusLimit&&(i=t=2*this._scene.activeCamera.upperRadiusLimit);var a=o.length();a>t&&(i=t=2*a),t*=1.1,i*=1.5,(n=r.min.add(o.scale(.5))).y=r.min.y-this._options.groundYBias}return{groundSize:t,skyboxSize:i,rootPosition:n}},e.prototype._setupGround=function(e){var t=this;this._ground&&!this._ground.isDisposed()||(this._ground=be.a.CreatePlane(\"BackgroundPlane\",e.groundSize,this._scene),this._ground.rotation.x=Math.PI/2,this._ground.parent=this._rootMesh,this._ground.onDisposeObservable.add((function(){t._ground=null}))),this._ground.receiveShadows=this._options.enableGroundShadow},e.prototype._setupGroundMaterial=function(){this._groundMaterial||(this._groundMaterial=new mo(\"BackgroundPlaneMaterial\",this._scene)),this._groundMaterial.alpha=this._options.groundOpacity,this._groundMaterial.alphaMode=g.a.ALPHA_PREMULTIPLIED_PORTERDUFF,this._groundMaterial.shadowLevel=this._options.groundShadowLevel,this._groundMaterial.primaryColor=this._options.groundColor,this._groundMaterial.useRGBColor=!1,this._groundMaterial.enableNoise=!0,this._ground&&(this._ground.material=this._groundMaterial)},e.prototype._setupGroundDiffuseTexture=function(){this._groundMaterial&&(this._groundTexture||(this._options.groundTexture instanceof Zn.a?this._groundMaterial.diffuseTexture=this._options.groundTexture:(this._groundTexture=new Ke.a(this._options.groundTexture,this._scene,void 0,void 0,void 0,void 0,this._errorHandler),this._groundTexture.gammaSpace=!1,this._groundTexture.hasAlpha=!0,this._groundMaterial.diffuseTexture=this._groundTexture)))},e.prototype._setupGroundMirrorTexture=function(e){var t=Ke.a.CLAMP_ADDRESSMODE;if(!this._groundMirror&&(this._groundMirror=new to(\"BackgroundPlaneMirrorTexture\",{ratio:this._options.groundMirrorSizeRatio},this._scene,!1,this._options.groundMirrorTextureType,Ke.a.BILINEAR_SAMPLINGMODE,!0),this._groundMirror.mirrorPlane=new fn.a(0,-1,0,e.rootPosition.y),this._groundMirror.anisotropicFilteringLevel=1,this._groundMirror.wrapU=t,this._groundMirror.wrapV=t,this._groundMirror.gammaSpace=!1,this._groundMirror.renderList))for(var i=0;i0&&e.push(this._texture),this._textureRoughness&&this._textureRoughness.animations&&this._textureRoughness.animations.length>0&&e.push(this._textureRoughness),this._bumpTexture&&this._bumpTexture.animations&&this._bumpTexture.animations.length>0&&e.push(this._bumpTexture),this._tintTexture&&this._tintTexture.animations&&this._tintTexture.animations.length>0&&e.push(this._tintTexture)},e.prototype.dispose=function(e){var t,i,n,r;e&&(null===(t=this._texture)||void 0===t||t.dispose(),null===(i=this._textureRoughness)||void 0===i||i.dispose(),null===(n=this._bumpTexture)||void 0===n||n.dispose(),null===(r=this._tintTexture)||void 0===r||r.dispose())},e.prototype.getClassName=function(){return\"PBRClearCoatConfiguration\"},e.AddFallbacks=function(e,t,i){return e.CLEARCOAT_BUMP&&t.addFallback(i++,\"CLEARCOAT_BUMP\"),e.CLEARCOAT_TINT&&t.addFallback(i++,\"CLEARCOAT_TINT\"),e.CLEARCOAT&&t.addFallback(i++,\"CLEARCOAT\"),i},e.AddUniforms=function(e){e.push(\"vClearCoatTangentSpaceParams\",\"vClearCoatParams\",\"vClearCoatRefractionParams\",\"vClearCoatTintParams\",\"clearCoatColorAtDistance\",\"clearCoatMatrix\",\"clearCoatRoughnessMatrix\",\"clearCoatBumpMatrix\",\"clearCoatTintMatrix\",\"vClearCoatInfos\",\"vClearCoatBumpInfos\",\"vClearCoatTintInfos\")},e.AddSamplers=function(e){e.push(\"clearCoatSampler\",\"clearCoatRoughnessSampler\",\"clearCoatBumpSampler\",\"clearCoatTintSampler\")},e.PrepareUniformBuffer=function(e){e.addUniform(\"vClearCoatParams\",2),e.addUniform(\"vClearCoatRefractionParams\",4),e.addUniform(\"vClearCoatInfos\",4),e.addUniform(\"clearCoatMatrix\",16),e.addUniform(\"clearCoatRoughnessMatrix\",16),e.addUniform(\"vClearCoatBumpInfos\",2),e.addUniform(\"vClearCoatTangentSpaceParams\",2),e.addUniform(\"clearCoatBumpMatrix\",16),e.addUniform(\"vClearCoatTintParams\",4),e.addUniform(\"clearCoatColorAtDistance\",1),e.addUniform(\"vClearCoatTintInfos\",2),e.addUniform(\"clearCoatTintMatrix\",16)},e.prototype.copyTo=function(e){w.a.Clone((function(){return e}),this)},e.prototype.serialize=function(){return w.a.Serialize(this)},e.prototype.parse=function(e,t,i){var n=this;w.a.Parse((function(){return n}),e,t,i)},e._DefaultIndexOfRefraction=1.5,Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],e.prototype,\"isEnabled\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"intensity\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"roughness\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],e.prototype,\"indexOfRefraction\",void 0),Object(h.c)([Object(w.m)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],e.prototype,\"texture\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],e.prototype,\"useRoughnessFromMainTexture\",void 0),Object(h.c)([Object(w.m)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],e.prototype,\"textureRoughness\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],e.prototype,\"remapF0OnInterfaceChange\",void 0),Object(h.c)([Object(w.m)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],e.prototype,\"bumpTexture\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],e.prototype,\"isTintEnabled\",void 0),Object(h.c)([Object(w.e)()],e.prototype,\"tintColor\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"tintColorAtDistance\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"tintThickness\",void 0),Object(h.c)([Object(w.m)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],e.prototype,\"tintTexture\",void 0),e}(),So=function(){function e(e){this._isEnabled=!1,this.isEnabled=!1,this.intensity=1,this.direction=new a.d(1,0),this._texture=null,this.texture=null,this._internalMarkAllSubMeshesAsTexturesDirty=e}return e.prototype._markAllSubMeshesAsTexturesDirty=function(){this._internalMarkAllSubMeshesAsTexturesDirty()},e.prototype.isReadyForSubMesh=function(e,t){return!(e._areTexturesDirty&&t.texturesEnabled&&this._texture&&so.a.AnisotropicTextureEnabled&&!this._texture.isReadyOrNotBlocking())},e.prototype.prepareDefines=function(e,t,i){this._isEnabled?(e.ANISOTROPIC=this._isEnabled,this._isEnabled&&!t.isVerticesDataPresent(Qi.b.TangentKind)&&(e._needUVs=!0,e.MAINUV1=!0),e._areTexturesDirty&&i.texturesEnabled&&(this._texture&&so.a.AnisotropicTextureEnabled?ro.a.PrepareDefinesForMergedUV(this._texture,e,\"ANISOTROPIC_TEXTURE\"):e.ANISOTROPIC_TEXTURE=!1)):(e.ANISOTROPIC=!1,e.ANISOTROPIC_TEXTURE=!1)},e.prototype.bindForSubMesh=function(e,t,i){e.useUbo&&i&&e.isSync||(this._texture&&so.a.AnisotropicTextureEnabled&&(e.updateFloat2(\"vAnisotropyInfos\",this._texture.coordinatesIndex,this._texture.level),ro.a.BindTextureMatrix(this._texture,e,\"anisotropy\")),e.updateFloat3(\"vAnisotropy\",this.direction.x,this.direction.y,this.intensity)),t.texturesEnabled&&this._texture&&so.a.AnisotropicTextureEnabled&&e.setTexture(\"anisotropySampler\",this._texture)},e.prototype.hasTexture=function(e){return this._texture===e},e.prototype.getActiveTextures=function(e){this._texture&&e.push(this._texture)},e.prototype.getAnimatables=function(e){this._texture&&this._texture.animations&&this._texture.animations.length>0&&e.push(this._texture)},e.prototype.dispose=function(e){e&&this._texture&&this._texture.dispose()},e.prototype.getClassName=function(){return\"PBRAnisotropicConfiguration\"},e.AddFallbacks=function(e,t,i){return e.ANISOTROPIC&&t.addFallback(i++,\"ANISOTROPIC\"),i},e.AddUniforms=function(e){e.push(\"vAnisotropy\",\"vAnisotropyInfos\",\"anisotropyMatrix\")},e.PrepareUniformBuffer=function(e){e.addUniform(\"vAnisotropy\",3),e.addUniform(\"vAnisotropyInfos\",2),e.addUniform(\"anisotropyMatrix\",16)},e.AddSamplers=function(e){e.push(\"anisotropySampler\")},e.prototype.copyTo=function(e){w.a.Clone((function(){return e}),this)},e.prototype.serialize=function(){return w.a.Serialize(this)},e.prototype.parse=function(e,t,i){var n=this;w.a.Parse((function(){return n}),e,t,i)},Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],e.prototype,\"isEnabled\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"intensity\",void 0),Object(h.c)([Object(w.n)()],e.prototype,\"direction\",void 0),Object(h.c)([Object(w.m)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],e.prototype,\"texture\",void 0),e}(),Ao=function(){function e(t){this._useEnergyConservation=e.DEFAULT_USE_ENERGY_CONSERVATION,this.useEnergyConservation=e.DEFAULT_USE_ENERGY_CONSERVATION,this._useSmithVisibilityHeightCorrelated=e.DEFAULT_USE_SMITH_VISIBILITY_HEIGHT_CORRELATED,this.useSmithVisibilityHeightCorrelated=e.DEFAULT_USE_SMITH_VISIBILITY_HEIGHT_CORRELATED,this._useSphericalHarmonics=e.DEFAULT_USE_SPHERICAL_HARMONICS,this.useSphericalHarmonics=e.DEFAULT_USE_SPHERICAL_HARMONICS,this._useSpecularGlossinessInputEnergyConservation=e.DEFAULT_USE_SPECULAR_GLOSSINESS_INPUT_ENERGY_CONSERVATION,this.useSpecularGlossinessInputEnergyConservation=e.DEFAULT_USE_SPECULAR_GLOSSINESS_INPUT_ENERGY_CONSERVATION,this._internalMarkAllSubMeshesAsMiscDirty=t}return e.prototype._markAllSubMeshesAsMiscDirty=function(){this._internalMarkAllSubMeshesAsMiscDirty()},e.prototype.prepareDefines=function(e){e.BRDF_V_HEIGHT_CORRELATED=this._useSmithVisibilityHeightCorrelated,e.MS_BRDF_ENERGY_CONSERVATION=this._useEnergyConservation&&this._useSmithVisibilityHeightCorrelated,e.SPHERICAL_HARMONICS=this._useSphericalHarmonics,e.SPECULAR_GLOSSINESS_ENERGY_CONSERVATION=this._useSpecularGlossinessInputEnergyConservation},e.prototype.getClassName=function(){return\"PBRBRDFConfiguration\"},e.prototype.copyTo=function(e){w.a.Clone((function(){return e}),this)},e.prototype.serialize=function(){return w.a.Serialize(this)},e.prototype.parse=function(e,t,i){var n=this;w.a.Parse((function(){return n}),e,t,i)},e.DEFAULT_USE_ENERGY_CONSERVATION=!0,e.DEFAULT_USE_SMITH_VISIBILITY_HEIGHT_CORRELATED=!0,e.DEFAULT_USE_SPHERICAL_HARMONICS=!0,e.DEFAULT_USE_SPECULAR_GLOSSINESS_INPUT_ENERGY_CONSERVATION=!0,Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsMiscDirty\")],e.prototype,\"useEnergyConservation\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsMiscDirty\")],e.prototype,\"useSmithVisibilityHeightCorrelated\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsMiscDirty\")],e.prototype,\"useSphericalHarmonics\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsMiscDirty\")],e.prototype,\"useSpecularGlossinessInputEnergyConservation\",void 0),e}(),Po=function(){function e(e){this._isEnabled=!1,this.isEnabled=!1,this._linkSheenWithAlbedo=!1,this.linkSheenWithAlbedo=!1,this.intensity=1,this.color=s.a.White(),this._texture=null,this.texture=null,this._useRoughnessFromMainTexture=!0,this.useRoughnessFromMainTexture=!0,this._roughness=null,this.roughness=null,this._textureRoughness=null,this.textureRoughness=null,this._albedoScaling=!1,this.albedoScaling=!1,this._internalMarkAllSubMeshesAsTexturesDirty=e}return e.prototype._markAllSubMeshesAsTexturesDirty=function(){this._internalMarkAllSubMeshesAsTexturesDirty()},e.prototype.isReadyForSubMesh=function(e,t){if(e._areTexturesDirty&&t.texturesEnabled){if(this._texture&&so.a.SheenTextureEnabled&&!this._texture.isReadyOrNotBlocking())return!1;if(this._textureRoughness&&so.a.SheenTextureEnabled&&!this._textureRoughness.isReadyOrNotBlocking())return!1}return!0},e.prototype.prepareDefines=function(e,t){var i;this._isEnabled?(e.SHEEN=this._isEnabled,e.SHEEN_LINKWITHALBEDO=this._linkSheenWithAlbedo,e.SHEEN_ROUGHNESS=null!==this._roughness,e.SHEEN_ALBEDOSCALING=this._albedoScaling,e.SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE=this._useRoughnessFromMainTexture,e.SHEEN_TEXTURE_ROUGHNESS_IDENTICAL=null!==this._texture&&this._texture._texture===(null===(i=this._textureRoughness)||void 0===i?void 0:i._texture)&&this._texture.checkTransformsAreIdentical(this._textureRoughness),e._areTexturesDirty&&t.texturesEnabled&&(this._texture&&so.a.SheenTextureEnabled?ro.a.PrepareDefinesForMergedUV(this._texture,e,\"SHEEN_TEXTURE\"):e.SHEEN_TEXTURE=!1,this._textureRoughness&&so.a.SheenTextureEnabled?ro.a.PrepareDefinesForMergedUV(this._textureRoughness,e,\"SHEEN_TEXTURE_ROUGHNESS\"):e.SHEEN_TEXTURE_ROUGHNESS=!1)):(e.SHEEN=!1,e.SHEEN_TEXTURE=!1,e.SHEEN_TEXTURE_ROUGHNESS=!1,e.SHEEN_LINKWITHALBEDO=!1,e.SHEEN_ROUGHNESS=!1,e.SHEEN_ALBEDOSCALING=!1,e.SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE=!1,e.SHEEN_TEXTURE_ROUGHNESS_IDENTICAL=!1)},e.prototype.bindForSubMesh=function(e,t,i,n){var r,o,a,s,c,l,u,h,d=n._materialDefines,f=d.SHEEN_TEXTURE_ROUGHNESS_IDENTICAL;e.useUbo&&i&&e.isSync||(f&&so.a.SheenTextureEnabled?(e.updateFloat4(\"vSheenInfos\",this._texture.coordinatesIndex,this._texture.level,-1,-1),ro.a.BindTextureMatrix(this._texture,e,\"sheen\")):(this._texture||this._textureRoughness)&&so.a.SheenTextureEnabled&&(e.updateFloat4(\"vSheenInfos\",null!==(o=null===(r=this._texture)||void 0===r?void 0:r.coordinatesIndex)&&void 0!==o?o:0,null!==(s=null===(a=this._texture)||void 0===a?void 0:a.level)&&void 0!==s?s:0,null!==(l=null===(c=this._textureRoughness)||void 0===c?void 0:c.coordinatesIndex)&&void 0!==l?l:0,null!==(h=null===(u=this._textureRoughness)||void 0===u?void 0:u.level)&&void 0!==h?h:0),this._texture&&ro.a.BindTextureMatrix(this._texture,e,\"sheen\"),!this._textureRoughness||f||d.SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE||ro.a.BindTextureMatrix(this._textureRoughness,e,\"sheenRoughness\")),e.updateFloat4(\"vSheenColor\",this.color.r,this.color.g,this.color.b,this.intensity),null!==this._roughness&&e.updateFloat(\"vSheenRoughness\",this._roughness)),t.texturesEnabled&&(this._texture&&so.a.SheenTextureEnabled&&e.setTexture(\"sheenSampler\",this._texture),this._textureRoughness&&!f&&!d.SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE&&so.a.SheenTextureEnabled&&e.setTexture(\"sheenRoughnessSampler\",this._textureRoughness))},e.prototype.hasTexture=function(e){return this._texture===e||this._textureRoughness===e},e.prototype.getActiveTextures=function(e){this._texture&&e.push(this._texture),this._textureRoughness&&e.push(this._textureRoughness)},e.prototype.getAnimatables=function(e){this._texture&&this._texture.animations&&this._texture.animations.length>0&&e.push(this._texture),this._textureRoughness&&this._textureRoughness.animations&&this._textureRoughness.animations.length>0&&e.push(this._textureRoughness)},e.prototype.dispose=function(e){var t,i;e&&(null===(t=this._texture)||void 0===t||t.dispose(),null===(i=this._textureRoughness)||void 0===i||i.dispose())},e.prototype.getClassName=function(){return\"PBRSheenConfiguration\"},e.AddFallbacks=function(e,t,i){return e.SHEEN&&t.addFallback(i++,\"SHEEN\"),i},e.AddUniforms=function(e){e.push(\"vSheenColor\",\"vSheenRoughness\",\"vSheenInfos\",\"sheenMatrix\",\"sheenRoughnessMatrix\")},e.PrepareUniformBuffer=function(e){e.addUniform(\"vSheenColor\",4),e.addUniform(\"vSheenRoughness\",1),e.addUniform(\"vSheenInfos\",4),e.addUniform(\"sheenMatrix\",16),e.addUniform(\"sheenRoughnessMatrix\",16)},e.AddSamplers=function(e){e.push(\"sheenSampler\"),e.push(\"sheenRoughnessSampler\")},e.prototype.copyTo=function(e){w.a.Clone((function(){return e}),this)},e.prototype.serialize=function(){return w.a.Serialize(this)},e.prototype.parse=function(e,t,i){var n=this;w.a.Parse((function(){return n}),e,t,i)},Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],e.prototype,\"isEnabled\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],e.prototype,\"linkSheenWithAlbedo\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"intensity\",void 0),Object(h.c)([Object(w.e)()],e.prototype,\"color\",void 0),Object(h.c)([Object(w.m)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],e.prototype,\"texture\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],e.prototype,\"useRoughnessFromMainTexture\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],e.prototype,\"roughness\",void 0),Object(h.c)([Object(w.m)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],e.prototype,\"textureRoughness\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],e.prototype,\"albedoScaling\",void 0),e}(),Co=function(){function e(e,t,i){this._isRefractionEnabled=!1,this.isRefractionEnabled=!1,this._isTranslucencyEnabled=!1,this.isTranslucencyEnabled=!1,this._isScatteringEnabled=!1,this.isScatteringEnabled=!1,this._scatteringDiffusionProfileIndex=0,this.refractionIntensity=1,this.translucencyIntensity=1,this.useAlbedoToTintRefraction=!1,this._thicknessTexture=null,this.thicknessTexture=null,this._refractionTexture=null,this.refractionTexture=null,this._indexOfRefraction=1.5,this.indexOfRefraction=1.5,this._volumeIndexOfRefraction=-1,this._invertRefractionY=!1,this.invertRefractionY=!1,this._linkRefractionWithTransparency=!1,this.linkRefractionWithTransparency=!1,this.minimumThickness=0,this.maximumThickness=1,this.tintColor=s.a.White(),this.tintColorAtDistance=1,this.diffusionDistance=s.a.White(),this._useMaskFromThicknessTexture=!1,this.useMaskFromThicknessTexture=!1,this._useMaskFromThicknessTextureGltf=!1,this.useMaskFromThicknessTextureGltf=!1,this._internalMarkAllSubMeshesAsTexturesDirty=e,this._internalMarkScenePrePassDirty=t,this._scene=i}return Object.defineProperty(e.prototype,\"scatteringDiffusionProfile\",{get:function(){return this._scene.subSurfaceConfiguration?this._scene.subSurfaceConfiguration.ssDiffusionProfileColors[this._scatteringDiffusionProfileIndex]:null},set:function(e){this._scene.enableSubSurfaceForPrePass()&&e&&(this._scatteringDiffusionProfileIndex=this._scene.subSurfaceConfiguration.addDiffusionProfile(e))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"volumeIndexOfRefraction\",{get:function(){return this._volumeIndexOfRefraction>=1?this._volumeIndexOfRefraction:this._indexOfRefraction},set:function(e){this._volumeIndexOfRefraction=e>=1?e:-1},enumerable:!1,configurable:!0}),e.prototype._markAllSubMeshesAsTexturesDirty=function(){this._internalMarkAllSubMeshesAsTexturesDirty()},e.prototype._markScenePrePassDirty=function(){this._internalMarkAllSubMeshesAsTexturesDirty(),this._internalMarkScenePrePassDirty()},e.prototype.isReadyForSubMesh=function(e,t){if(e._areTexturesDirty&&t.texturesEnabled){if(this._thicknessTexture&&so.a.ThicknessTextureEnabled&&!this._thicknessTexture.isReadyOrNotBlocking())return!1;var i=this._getRefractionTexture(t);if(i&&so.a.RefractionTextureEnabled&&!i.isReadyOrNotBlocking())return!1}return!0},e.prototype.prepareDefines=function(e,t){if(e._areTexturesDirty&&(e.SUBSURFACE=!1,e.SS_TRANSLUCENCY=this._isTranslucencyEnabled,e.SS_SCATTERING=this._isScatteringEnabled,e.SS_THICKNESSANDMASK_TEXTURE=!1,e.SS_MASK_FROM_THICKNESS_TEXTURE=!1,e.SS_MASK_FROM_THICKNESS_TEXTURE_GLTF=!1,e.SS_REFRACTION=!1,e.SS_REFRACTIONMAP_3D=!1,e.SS_GAMMAREFRACTION=!1,e.SS_RGBDREFRACTION=!1,e.SS_LINEARSPECULARREFRACTION=!1,e.SS_REFRACTIONMAP_OPPOSITEZ=!1,e.SS_LODINREFRACTIONALPHA=!1,e.SS_LINKREFRACTIONTOTRANSPARENCY=!1,e.SS_ALBEDOFORREFRACTIONTINT=!1,(this._isRefractionEnabled||this._isTranslucencyEnabled||this._isScatteringEnabled)&&(e.SUBSURFACE=!0,e._areTexturesDirty&&t.texturesEnabled&&this._thicknessTexture&&so.a.ThicknessTextureEnabled&&ro.a.PrepareDefinesForMergedUV(this._thicknessTexture,e,\"SS_THICKNESSANDMASK_TEXTURE\"),e.SS_MASK_FROM_THICKNESS_TEXTURE=this._useMaskFromThicknessTexture,e.SS_MASK_FROM_THICKNESS_TEXTURE_GLTF=this._useMaskFromThicknessTextureGltf),this._isRefractionEnabled&&t.texturesEnabled)){var i=this._getRefractionTexture(t);i&&so.a.RefractionTextureEnabled&&(e.SS_REFRACTION=!0,e.SS_REFRACTIONMAP_3D=i.isCube,e.SS_GAMMAREFRACTION=i.gammaSpace,e.SS_RGBDREFRACTION=i.isRGBD,e.SS_LINEARSPECULARREFRACTION=i.linearSpecularLOD,e.SS_REFRACTIONMAP_OPPOSITEZ=i.invertZ,e.SS_LODINREFRACTIONALPHA=i.lodLevelInAlpha,e.SS_LINKREFRACTIONTOTRANSPARENCY=this._linkRefractionWithTransparency,e.SS_ALBEDOFORREFRACTIONTINT=this.useAlbedoToTintRefraction)}},e.prototype.bindForSubMesh=function(e,t,i,n,r,o){var a=this._getRefractionTexture(t);if(!e.useUbo||!n||!e.isSync){if(this._thicknessTexture&&so.a.ThicknessTextureEnabled&&(e.updateFloat2(\"vThicknessInfos\",this._thicknessTexture.coordinatesIndex,this._thicknessTexture.level),ro.a.BindTextureMatrix(this._thicknessTexture,e,\"thickness\")),e.updateFloat2(\"vThicknessParam\",this.minimumThickness,this.maximumThickness-this.minimumThickness),a&&so.a.RefractionTextureEnabled){e.updateMatrix(\"refractionMatrix\",a.getReflectionTextureMatrix());var s=1;a.isCube||a.depth&&(s=a.depth);var c=a.getSize().width,l=this.volumeIndexOfRefraction;e.updateFloat4(\"vRefractionInfos\",a.level,1/l,s,this._invertRefractionY?-1:1),e.updateFloat3(\"vRefractionMicrosurfaceInfos\",c,a.lodGenerationScale,a.lodGenerationOffset),o&&e.updateFloat2(\"vRefractionFilteringInfo\",c,L.a.Log2(c))}this.isScatteringEnabled&&e.updateFloat(\"scatteringDiffusionProfile\",this._scatteringDiffusionProfileIndex),e.updateColor3(\"vDiffusionDistance\",this.diffusionDistance),e.updateFloat4(\"vTintColor\",this.tintColor.r,this.tintColor.g,this.tintColor.b,this.tintColorAtDistance),e.updateFloat3(\"vSubSurfaceIntensity\",this.refractionIntensity,this.translucencyIntensity,0)}t.texturesEnabled&&(this._thicknessTexture&&so.a.ThicknessTextureEnabled&&e.setTexture(\"thicknessSampler\",this._thicknessTexture),a&&so.a.RefractionTextureEnabled&&(r?e.setTexture(\"refractionSampler\",a):(e.setTexture(\"refractionSampler\",a._lodTextureMid||a),e.setTexture(\"refractionSamplerLow\",a._lodTextureLow||a),e.setTexture(\"refractionSamplerHigh\",a._lodTextureHigh||a))))},e.prototype.unbind=function(e){return!(!this._refractionTexture||!this._refractionTexture.isRenderTarget)&&(e.setTexture(\"refractionSampler\",null),!0)},e.prototype._getRefractionTexture=function(e){return this._refractionTexture?this._refractionTexture:this._isRefractionEnabled?e.environmentTexture:null},Object.defineProperty(e.prototype,\"disableAlphaBlending\",{get:function(){return this.isRefractionEnabled&&this._linkRefractionWithTransparency},enumerable:!1,configurable:!0}),e.prototype.fillRenderTargetTextures=function(e){so.a.RefractionTextureEnabled&&this._refractionTexture&&this._refractionTexture.isRenderTarget&&e.push(this._refractionTexture)},e.prototype.hasTexture=function(e){return this._thicknessTexture===e||this._refractionTexture===e},e.prototype.hasRenderTargetTextures=function(){return!!(so.a.RefractionTextureEnabled&&this._refractionTexture&&this._refractionTexture.isRenderTarget)},e.prototype.getActiveTextures=function(e){this._thicknessTexture&&e.push(this._thicknessTexture),this._refractionTexture&&e.push(this._refractionTexture)},e.prototype.getAnimatables=function(e){this._thicknessTexture&&this._thicknessTexture.animations&&this._thicknessTexture.animations.length>0&&e.push(this._thicknessTexture),this._refractionTexture&&this._refractionTexture.animations&&this._refractionTexture.animations.length>0&&e.push(this._refractionTexture)},e.prototype.dispose=function(e){e&&(this._thicknessTexture&&this._thicknessTexture.dispose(),this._refractionTexture&&this._refractionTexture.dispose())},e.prototype.getClassName=function(){return\"PBRSubSurfaceConfiguration\"},e.AddFallbacks=function(e,t,i){return e.SS_SCATTERING&&t.addFallback(i++,\"SS_SCATTERING\"),e.SS_TRANSLUCENCY&&t.addFallback(i++,\"SS_TRANSLUCENCY\"),i},e.AddUniforms=function(e){e.push(\"vDiffusionDistance\",\"vTintColor\",\"vSubSurfaceIntensity\",\"vRefractionMicrosurfaceInfos\",\"vRefractionFilteringInfo\",\"vRefractionInfos\",\"vThicknessInfos\",\"vThicknessParam\",\"refractionMatrix\",\"thicknessMatrix\",\"scatteringDiffusionProfile\")},e.AddSamplers=function(e){e.push(\"thicknessSampler\",\"refractionSampler\",\"refractionSamplerLow\",\"refractionSamplerHigh\")},e.PrepareUniformBuffer=function(e){e.addUniform(\"vRefractionMicrosurfaceInfos\",3),e.addUniform(\"vRefractionFilteringInfo\",2),e.addUniform(\"vRefractionInfos\",4),e.addUniform(\"refractionMatrix\",16),e.addUniform(\"vThicknessInfos\",2),e.addUniform(\"thicknessMatrix\",16),e.addUniform(\"vThicknessParam\",2),e.addUniform(\"vDiffusionDistance\",3),e.addUniform(\"vTintColor\",4),e.addUniform(\"vSubSurfaceIntensity\",3),e.addUniform(\"scatteringDiffusionProfile\",1)},e.prototype.copyTo=function(e){w.a.Clone((function(){return e}),this)},e.prototype.serialize=function(){return w.a.Serialize(this)},e.prototype.parse=function(e,t,i){var n=this;w.a.Parse((function(){return n}),e,t,i)},Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],e.prototype,\"isRefractionEnabled\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],e.prototype,\"isTranslucencyEnabled\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markScenePrePassDirty\")],e.prototype,\"isScatteringEnabled\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"_scatteringDiffusionProfileIndex\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"refractionIntensity\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"translucencyIntensity\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"useAlbedoToTintRefraction\",void 0),Object(h.c)([Object(w.m)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],e.prototype,\"thicknessTexture\",void 0),Object(h.c)([Object(w.m)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],e.prototype,\"refractionTexture\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],e.prototype,\"indexOfRefraction\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"_volumeIndexOfRefraction\",void 0),Object(h.c)([Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],e.prototype,\"volumeIndexOfRefraction\",null),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],e.prototype,\"invertRefractionY\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],e.prototype,\"linkRefractionWithTransparency\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"minimumThickness\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"maximumThickness\",void 0),Object(h.c)([Object(w.e)()],e.prototype,\"tintColor\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"tintColorAtDistance\",void 0),Object(h.c)([Object(w.e)()],e.prototype,\"diffusionDistance\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],e.prototype,\"useMaskFromThicknessTexture\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],e.prototype,\"useMaskFromThicknessTextureGltf\",void 0),e}(),Ro=i(105),xo=i(25),Oo=(i(160),\"uniform vec3 vReflectionColor;\\nuniform vec4 vAlbedoColor;\\n\\nuniform vec4 vLightingIntensity;\\nuniform vec4 vReflectivityColor;\\nuniform vec4 vMetallicReflectanceFactors;\\nuniform vec3 vEmissiveColor;\\nuniform float visibility;\\n\\n#ifdef ALBEDO\\nuniform vec2 vAlbedoInfos;\\n#endif\\n#ifdef AMBIENT\\nuniform vec4 vAmbientInfos;\\n#endif\\n#ifdef BUMP\\nuniform vec3 vBumpInfos;\\nuniform vec2 vTangentSpaceParams;\\n#endif\\n#ifdef OPACITY\\nuniform vec2 vOpacityInfos;\\n#endif\\n#ifdef EMISSIVE\\nuniform vec2 vEmissiveInfos;\\n#endif\\n#ifdef LIGHTMAP\\nuniform vec2 vLightmapInfos;\\n#endif\\n#ifdef REFLECTIVITY\\nuniform vec3 vReflectivityInfos;\\n#endif\\n#ifdef MICROSURFACEMAP\\nuniform vec2 vMicroSurfaceSamplerInfos;\\n#endif\\n\\n#if defined(REFLECTIONMAP_SPHERICAL) || defined(REFLECTIONMAP_PROJECTION) || defined(SS_REFRACTION)\\nuniform mat4 view;\\n#endif\\n\\n#ifdef REFLECTION\\nuniform vec2 vReflectionInfos;\\n#ifdef REALTIME_FILTERING\\nuniform vec2 vReflectionFilteringInfo;\\n#endif\\nuniform mat4 reflectionMatrix;\\nuniform vec3 vReflectionMicrosurfaceInfos;\\n#if defined(USE_LOCAL_REFLECTIONMAP_CUBIC) && defined(REFLECTIONMAP_CUBIC)\\nuniform vec3 vReflectionPosition;\\nuniform vec3 vReflectionSize;\\n#endif\\n#endif\\n\\n#ifdef CLEARCOAT\\nuniform vec2 vClearCoatParams;\\nuniform vec4 vClearCoatRefractionParams;\\n#if defined(CLEARCOAT_TEXTURE) || defined(CLEARCOAT_TEXTURE_ROUGHNESS)\\nuniform vec4 vClearCoatInfos;\\n#endif\\n#ifdef CLEARCOAT_TEXTURE\\nuniform mat4 clearCoatMatrix;\\n#endif\\n#ifdef CLEARCOAT_TEXTURE_ROUGHNESS\\nuniform mat4 clearCoatRoughnessMatrix;\\n#endif\\n#ifdef CLEARCOAT_BUMP\\nuniform vec2 vClearCoatBumpInfos;\\nuniform vec2 vClearCoatTangentSpaceParams;\\nuniform mat4 clearCoatBumpMatrix;\\n#endif\\n#ifdef CLEARCOAT_TINT\\nuniform vec4 vClearCoatTintParams;\\nuniform float clearCoatColorAtDistance;\\n#ifdef CLEARCOAT_TINT_TEXTURE\\nuniform vec2 vClearCoatTintInfos;\\nuniform mat4 clearCoatTintMatrix;\\n#endif\\n#endif\\n#endif\\n\\n#ifdef ANISOTROPIC\\nuniform vec3 vAnisotropy;\\n#ifdef ANISOTROPIC_TEXTURE\\nuniform vec2 vAnisotropyInfos;\\nuniform mat4 anisotropyMatrix;\\n#endif\\n#endif\\n\\n#ifdef SHEEN\\nuniform vec4 vSheenColor;\\n#ifdef SHEEN_ROUGHNESS\\nuniform float vSheenRoughness;\\n#endif\\n#if defined(SHEEN_TEXTURE) || defined(SHEEN_TEXTURE_ROUGHNESS)\\nuniform vec4 vSheenInfos;\\n#endif\\n#ifdef SHEEN_TEXTURE\\nuniform mat4 sheenMatrix;\\n#endif\\n#ifdef SHEEN_TEXTURE_ROUGHNESS\\nuniform mat4 sheenRoughnessMatrix;\\n#endif\\n#endif\\n\\n#ifdef SUBSURFACE\\n#ifdef SS_REFRACTION\\nuniform vec3 vRefractionMicrosurfaceInfos;\\nuniform vec4 vRefractionInfos;\\nuniform mat4 refractionMatrix;\\n#ifdef REALTIME_FILTERING\\nuniform vec2 vRefractionFilteringInfo;\\n#endif\\n#endif\\n#ifdef SS_THICKNESSANDMASK_TEXTURE\\nuniform vec2 vThicknessInfos;\\nuniform mat4 thicknessMatrix;\\n#endif\\nuniform vec2 vThicknessParam;\\nuniform vec3 vDiffusionDistance;\\nuniform vec4 vTintColor;\\nuniform vec3 vSubSurfaceIntensity;\\n#endif\\n#ifdef PREPASS\\n#ifdef PREPASS_IRRADIANCE\\nuniform float scatteringDiffusionProfile;\\n#endif\\n#endif\");ai.a.IncludesShadersStore.pbrFragmentDeclaration=Oo;var Mo=\"layout(std140,column_major) uniform;\\nuniform Material\\n{\\nuniform vec2 vAlbedoInfos;\\nuniform vec4 vAmbientInfos;\\nuniform vec2 vOpacityInfos;\\nuniform vec2 vEmissiveInfos;\\nuniform vec2 vLightmapInfos;\\nuniform vec3 vReflectivityInfos;\\nuniform vec2 vMicroSurfaceSamplerInfos;\\nuniform vec2 vReflectionInfos;\\nuniform vec2 vReflectionFilteringInfo;\\nuniform vec3 vReflectionPosition;\\nuniform vec3 vReflectionSize;\\nuniform vec3 vBumpInfos;\\nuniform mat4 albedoMatrix;\\nuniform mat4 ambientMatrix;\\nuniform mat4 opacityMatrix;\\nuniform mat4 emissiveMatrix;\\nuniform mat4 lightmapMatrix;\\nuniform mat4 reflectivityMatrix;\\nuniform mat4 microSurfaceSamplerMatrix;\\nuniform mat4 bumpMatrix;\\nuniform vec2 vTangentSpaceParams;\\nuniform mat4 reflectionMatrix;\\nuniform vec3 vReflectionColor;\\nuniform vec4 vAlbedoColor;\\nuniform vec4 vLightingIntensity;\\nuniform vec3 vReflectionMicrosurfaceInfos;\\nuniform float pointSize;\\nuniform vec4 vReflectivityColor;\\nuniform vec3 vEmissiveColor;\\nuniform float visibility;\\nuniform vec4 vMetallicReflectanceFactors;\\nuniform vec2 vMetallicReflectanceInfos;\\nuniform mat4 metallicReflectanceMatrix;\\nuniform vec2 vClearCoatParams;\\nuniform vec4 vClearCoatRefractionParams;\\nuniform vec4 vClearCoatInfos;\\nuniform mat4 clearCoatMatrix;\\nuniform mat4 clearCoatRoughnessMatrix;\\nuniform vec2 vClearCoatBumpInfos;\\nuniform vec2 vClearCoatTangentSpaceParams;\\nuniform mat4 clearCoatBumpMatrix;\\nuniform vec4 vClearCoatTintParams;\\nuniform float clearCoatColorAtDistance;\\nuniform vec2 vClearCoatTintInfos;\\nuniform mat4 clearCoatTintMatrix;\\nuniform vec3 vAnisotropy;\\nuniform vec2 vAnisotropyInfos;\\nuniform mat4 anisotropyMatrix;\\nuniform vec4 vSheenColor;\\nuniform float vSheenRoughness;\\nuniform vec4 vSheenInfos;\\nuniform mat4 sheenMatrix;\\nuniform mat4 sheenRoughnessMatrix;\\nuniform vec3 vRefractionMicrosurfaceInfos;\\nuniform vec2 vRefractionFilteringInfo;\\nuniform vec4 vRefractionInfos;\\nuniform mat4 refractionMatrix;\\nuniform vec2 vThicknessInfos;\\nuniform mat4 thicknessMatrix;\\nuniform vec2 vThicknessParam;\\nuniform vec3 vDiffusionDistance;\\nuniform vec4 vTintColor;\\nuniform vec3 vSubSurfaceIntensity;\\nuniform float scatteringDiffusionProfile;\\nuniform vec4 vDetailInfos;\\nuniform mat4 detailMatrix;\\n};\\nuniform Scene {\\nmat4 viewProjection;\\n#ifdef MULTIVIEW\\nmat4 viewProjectionR;\\n#endif\\nmat4 view;\\n};\";ai.a.IncludesShadersStore.pbrUboDeclaration=Mo;var Io=\"uniform vec4 vEyePosition;\\nuniform vec3 vAmbientColor;\\nuniform vec4 vCameraInfos;\\n\\nvarying vec3 vPositionW;\\n#if DEBUGMODE>0\\nuniform vec2 vDebugMode;\\nvarying vec4 vClipSpacePosition;\\n#endif\\n#ifdef MAINUV1\\nvarying vec2 vMainUV1;\\n#endif\\n#ifdef MAINUV2\\nvarying vec2 vMainUV2;\\n#endif\\n#ifdef NORMAL\\nvarying vec3 vNormalW;\\n#if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)\\nvarying vec3 vEnvironmentIrradiance;\\n#endif\\n#endif\\n#ifdef VERTEXCOLOR\\nvarying vec4 vColor;\\n#endif\";ai.a.IncludesShadersStore.pbrFragmentExtraDeclaration=Io;var Do=\"#ifdef ALBEDO\\n#if ALBEDODIRECTUV == 1\\n#define vAlbedoUV vMainUV1\\n#elif ALBEDODIRECTUV == 2\\n#define vAlbedoUV vMainUV2\\n#else\\nvarying vec2 vAlbedoUV;\\n#endif\\nuniform sampler2D albedoSampler;\\n#endif\\n#ifdef AMBIENT\\n#if AMBIENTDIRECTUV == 1\\n#define vAmbientUV vMainUV1\\n#elif AMBIENTDIRECTUV == 2\\n#define vAmbientUV vMainUV2\\n#else\\nvarying vec2 vAmbientUV;\\n#endif\\nuniform sampler2D ambientSampler;\\n#endif\\n#ifdef OPACITY\\n#if OPACITYDIRECTUV == 1\\n#define vOpacityUV vMainUV1\\n#elif OPACITYDIRECTUV == 2\\n#define vOpacityUV vMainUV2\\n#else\\nvarying vec2 vOpacityUV;\\n#endif\\nuniform sampler2D opacitySampler;\\n#endif\\n#ifdef EMISSIVE\\n#if EMISSIVEDIRECTUV == 1\\n#define vEmissiveUV vMainUV1\\n#elif EMISSIVEDIRECTUV == 2\\n#define vEmissiveUV vMainUV2\\n#else\\nvarying vec2 vEmissiveUV;\\n#endif\\nuniform sampler2D emissiveSampler;\\n#endif\\n#ifdef LIGHTMAP\\n#if LIGHTMAPDIRECTUV == 1\\n#define vLightmapUV vMainUV1\\n#elif LIGHTMAPDIRECTUV == 2\\n#define vLightmapUV vMainUV2\\n#else\\nvarying vec2 vLightmapUV;\\n#endif\\nuniform sampler2D lightmapSampler;\\n#endif\\n#ifdef REFLECTIVITY\\n#if REFLECTIVITYDIRECTUV == 1\\n#define vReflectivityUV vMainUV1\\n#elif REFLECTIVITYDIRECTUV == 2\\n#define vReflectivityUV vMainUV2\\n#else\\nvarying vec2 vReflectivityUV;\\n#endif\\nuniform sampler2D reflectivitySampler;\\n#endif\\n#ifdef MICROSURFACEMAP\\n#if MICROSURFACEMAPDIRECTUV == 1\\n#define vMicroSurfaceSamplerUV vMainUV1\\n#elif MICROSURFACEMAPDIRECTUV == 2\\n#define vMicroSurfaceSamplerUV vMainUV2\\n#else\\nvarying vec2 vMicroSurfaceSamplerUV;\\n#endif\\nuniform sampler2D microSurfaceSampler;\\n#endif\\n#ifdef METALLIC_REFLECTANCE\\n#if METALLIC_REFLECTANCEDIRECTUV == 1\\n#define vMetallicReflectanceUV vMainUV1\\n#elif METALLIC_REFLECTANCEDIRECTUV == 2\\n#define vMetallicReflectanceUV vMainUV2\\n#else\\nvarying vec2 vMetallicReflectanceUV;\\n#endif\\nuniform sampler2D metallicReflectanceSampler;\\n#endif\\n#ifdef CLEARCOAT\\n#if defined(CLEARCOAT_TEXTURE)\\n#if CLEARCOAT_TEXTUREDIRECTUV == 1\\n#define vClearCoatUV vMainUV1\\n#elif CLEARCOAT_TEXTUREDIRECTUV == 2\\n#define vClearCoatUV vMainUV2\\n#else\\nvarying vec2 vClearCoatUV;\\n#endif\\n#endif\\n#if defined(CLEARCOAT_TEXTURE_ROUGHNESS)\\n#if CLEARCOAT_TEXTURE_ROUGHNESSDIRECTUV == 1\\n#define vClearCoatRoughnessUV vMainUV1\\n#elif CLEARCOAT_TEXTURE_ROUGHNESSDIRECTUV == 2\\n#define vClearCoatRoughnessUV vMainUV2\\n#else\\nvarying vec2 vClearCoatRoughnessUV;\\n#endif\\n#endif\\n#ifdef CLEARCOAT_TEXTURE\\nuniform sampler2D clearCoatSampler;\\n#endif\\n#if defined(CLEARCOAT_TEXTURE_ROUGHNESS) && !defined(CLEARCOAT_TEXTURE_ROUGHNESS_IDENTICAL)\\nuniform sampler2D clearCoatRoughnessSampler;\\n#endif\\n#ifdef CLEARCOAT_BUMP\\n#if CLEARCOAT_BUMPDIRECTUV == 1\\n#define vClearCoatBumpUV vMainUV1\\n#elif CLEARCOAT_BUMPDIRECTUV == 2\\n#define vClearCoatBumpUV vMainUV2\\n#else\\nvarying vec2 vClearCoatBumpUV;\\n#endif\\nuniform sampler2D clearCoatBumpSampler;\\n#endif\\n#ifdef CLEARCOAT_TINT_TEXTURE\\n#if CLEARCOAT_TINT_TEXTUREDIRECTUV == 1\\n#define vClearCoatTintUV vMainUV1\\n#elif CLEARCOAT_TINT_TEXTUREDIRECTUV == 2\\n#define vClearCoatTintUV vMainUV2\\n#else\\nvarying vec2 vClearCoatTintUV;\\n#endif\\nuniform sampler2D clearCoatTintSampler;\\n#endif\\n#endif\\n#ifdef SHEEN\\n#ifdef SHEEN_TEXTURE\\n#if SHEEN_TEXTUREDIRECTUV == 1\\n#define vSheenUV vMainUV1\\n#elif SHEEN_TEXTUREDIRECTUV == 2\\n#define vSheenUV vMainUV2\\n#else\\nvarying vec2 vSheenUV;\\n#endif\\n#endif\\n#ifdef SHEEN_TEXTURE_ROUGHNESS\\n#if SHEEN_TEXTURE_ROUGHNESSDIRECTUV == 1\\n#define vSheenRoughnessUV vMainUV1\\n#elif SHEEN_TEXTURE_ROUGHNESSDIRECTUV == 2\\n#define vSheenRoughnessUV vMainUV2\\n#else\\nvarying vec2 vSheenRoughnessUV;\\n#endif\\n#endif\\n#ifdef SHEEN_TEXTURE\\nuniform sampler2D sheenSampler;\\n#endif\\n#if defined(SHEEN_ROUGHNESS) && defined(SHEEN_TEXTURE_ROUGHNESS) && !defined(SHEEN_TEXTURE_ROUGHNESS_IDENTICAL)\\nuniform sampler2D sheenRoughnessSampler;\\n#endif\\n#endif\\n#ifdef ANISOTROPIC\\n#ifdef ANISOTROPIC_TEXTURE\\n#if ANISOTROPIC_TEXTUREDIRECTUV == 1\\n#define vAnisotropyUV vMainUV1\\n#elif ANISOTROPIC_TEXTUREDIRECTUV == 2\\n#define vAnisotropyUV vMainUV2\\n#else\\nvarying vec2 vAnisotropyUV;\\n#endif\\nuniform sampler2D anisotropySampler;\\n#endif\\n#endif\\n\\n#ifdef REFLECTION\\n#ifdef REFLECTIONMAP_3D\\n#define sampleReflection(s,c) textureCube(s,c)\\nuniform samplerCube reflectionSampler;\\n#ifdef LODBASEDMICROSFURACE\\n#define sampleReflectionLod(s,c,l) textureCubeLodEXT(s,c,l)\\n#else\\nuniform samplerCube reflectionSamplerLow;\\nuniform samplerCube reflectionSamplerHigh;\\n#endif\\n#ifdef USEIRRADIANCEMAP\\nuniform samplerCube irradianceSampler;\\n#endif\\n#else\\n#define sampleReflection(s,c) texture2D(s,c)\\nuniform sampler2D reflectionSampler;\\n#ifdef LODBASEDMICROSFURACE\\n#define sampleReflectionLod(s,c,l) texture2DLodEXT(s,c,l)\\n#else\\nuniform sampler2D reflectionSamplerLow;\\nuniform sampler2D reflectionSamplerHigh;\\n#endif\\n#ifdef USEIRRADIANCEMAP\\nuniform sampler2D irradianceSampler;\\n#endif\\n#endif\\n#ifdef REFLECTIONMAP_SKYBOX\\nvarying vec3 vPositionUVW;\\n#else\\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\\nvarying vec3 vDirectionW;\\n#endif\\n#endif\\n#endif\\n#ifdef ENVIRONMENTBRDF\\nuniform sampler2D environmentBrdfSampler;\\n#endif\\n\\n#ifdef SUBSURFACE\\n#ifdef SS_REFRACTION\\n#ifdef SS_REFRACTIONMAP_3D\\n#define sampleRefraction(s,c) textureCube(s,c)\\nuniform samplerCube refractionSampler;\\n#ifdef LODBASEDMICROSFURACE\\n#define sampleRefractionLod(s,c,l) textureCubeLodEXT(s,c,l)\\n#else\\nuniform samplerCube refractionSamplerLow;\\nuniform samplerCube refractionSamplerHigh;\\n#endif\\n#else\\n#define sampleRefraction(s,c) texture2D(s,c)\\nuniform sampler2D refractionSampler;\\n#ifdef LODBASEDMICROSFURACE\\n#define sampleRefractionLod(s,c,l) texture2DLodEXT(s,c,l)\\n#else\\nuniform sampler2D refractionSamplerLow;\\nuniform sampler2D refractionSamplerHigh;\\n#endif\\n#endif\\n#endif\\n#ifdef SS_THICKNESSANDMASK_TEXTURE\\n#if SS_THICKNESSANDMASK_TEXTUREDIRECTUV == 1\\n#define vThicknessUV vMainUV1\\n#elif SS_THICKNESSANDMASK_TEXTUREDIRECTUV == 2\\n#define vThicknessUV vMainUV2\\n#else\\nvarying vec2 vThicknessUV;\\n#endif\\nuniform sampler2D thicknessSampler;\\n#endif\\n#endif\";ai.a.IncludesShadersStore.pbrFragmentSamplersDeclaration=Do;i(116);ai.a.IncludesShadersStore.subSurfaceScatteringFunctions=\"bool testLightingForSSS(float diffusionProfile)\\n{\\nreturn diffusionProfile<1.;\\n}\";var No=\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nvec3 hemisphereCosSample(vec2 u) {\\n\\nfloat phi=2.*PI*u.x;\\nfloat cosTheta2=1.-u.y;\\nfloat cosTheta=sqrt(cosTheta2);\\nfloat sinTheta=sqrt(1.-cosTheta2);\\nreturn vec3(sinTheta*cos(phi),sinTheta*sin(phi),cosTheta);\\n}\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nvec3 hemisphereImportanceSampleDggx(vec2 u,float a) {\\n\\nfloat phi=2.*PI*u.x;\\n\\nfloat cosTheta2=(1.-u.y)/(1.+(a+1.)*((a-1.)*u.y));\\nfloat cosTheta=sqrt(cosTheta2);\\nfloat sinTheta=sqrt(1.-cosTheta2);\\nreturn vec3(sinTheta*cos(phi),sinTheta*sin(phi),cosTheta);\\n}\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nvec3 hemisphereImportanceSampleDCharlie(vec2 u,float a) {\\n\\nfloat phi=2.*PI*u.x;\\nfloat sinTheta=pow(u.y,a/(2.*a+1.));\\nfloat cosTheta=sqrt(1.-sinTheta*sinTheta);\\nreturn vec3(sinTheta*cos(phi),sinTheta*sin(phi),cosTheta);\\n}\";ai.a.IncludesShadersStore.importanceSampling=No;var Lo=\"\\n#define RECIPROCAL_PI2 0.15915494\\n#define RECIPROCAL_PI 0.31830988618\\n\\n#define MINIMUMVARIANCE 0.0005\\nfloat convertRoughnessToAverageSlope(float roughness)\\n{\\n\\nreturn square(roughness)+MINIMUMVARIANCE;\\n}\\nfloat fresnelGrazingReflectance(float reflectance0) {\\n\\n\\nfloat reflectance90=saturate(reflectance0*25.0);\\nreturn reflectance90;\\n}\\nvec2 getAARoughnessFactors(vec3 normalVector) {\\n#ifdef SPECULARAA\\nvec3 nDfdx=dFdx(normalVector.xyz);\\nvec3 nDfdy=dFdy(normalVector.xyz);\\nfloat slopeSquare=max(dot(nDfdx,nDfdx),dot(nDfdy,nDfdy));\\n\\nfloat geometricRoughnessFactor=pow(saturate(slopeSquare),0.333);\\n\\nfloat geometricAlphaGFactor=sqrt(slopeSquare);\\n\\ngeometricAlphaGFactor*=0.75;\\nreturn vec2(geometricRoughnessFactor,geometricAlphaGFactor);\\n#else\\nreturn vec2(0.);\\n#endif\\n}\\n#ifdef ANISOTROPIC\\n\\n\\nvec2 getAnisotropicRoughness(float alphaG,float anisotropy) {\\nfloat alphaT=max(alphaG*(1.0+anisotropy),MINIMUMVARIANCE);\\nfloat alphaB=max(alphaG*(1.0-anisotropy),MINIMUMVARIANCE);\\nreturn vec2(alphaT,alphaB);\\n}\\n\\n\\nvec3 getAnisotropicBentNormals(const vec3 T,const vec3 B,const vec3 N,const vec3 V,float anisotropy) {\\nvec3 anisotropicFrameDirection=anisotropy>=0.0 ? B : T;\\nvec3 anisotropicFrameTangent=cross(normalize(anisotropicFrameDirection),V);\\nvec3 anisotropicFrameNormal=cross(anisotropicFrameTangent,anisotropicFrameDirection);\\nvec3 anisotropicNormal=normalize(mix(N,anisotropicFrameNormal,abs(anisotropy)));\\nreturn anisotropicNormal;\\n\\n}\\n#endif\\n#if defined(CLEARCOAT) || defined(SS_REFRACTION)\\n\\n\\n\\nvec3 cocaLambert(vec3 alpha,float distance) {\\nreturn exp(-alpha*distance);\\n}\\n\\nvec3 cocaLambert(float NdotVRefract,float NdotLRefract,vec3 alpha,float thickness) {\\nreturn cocaLambert(alpha,(thickness*((NdotLRefract+NdotVRefract)/(NdotLRefract*NdotVRefract))));\\n}\\n\\nvec3 computeColorAtDistanceInMedia(vec3 color,float distance) {\\nreturn -log(color)/distance;\\n}\\nvec3 computeClearCoatAbsorption(float NdotVRefract,float NdotLRefract,vec3 clearCoatColor,float clearCoatThickness,float clearCoatIntensity) {\\nvec3 clearCoatAbsorption=mix(vec3(1.0),\\ncocaLambert(NdotVRefract,NdotLRefract,clearCoatColor,clearCoatThickness),\\nclearCoatIntensity);\\nreturn clearCoatAbsorption;\\n}\\n#endif\\n\\n\\n\\n\\n#ifdef MICROSURFACEAUTOMATIC\\nfloat computeDefaultMicroSurface(float microSurface,vec3 reflectivityColor)\\n{\\nconst float kReflectivityNoAlphaWorkflow_SmoothnessMax=0.95;\\nfloat reflectivityLuminance=getLuminance(reflectivityColor);\\nfloat reflectivityLuma=sqrt(reflectivityLuminance);\\nmicroSurface=reflectivityLuma*kReflectivityNoAlphaWorkflow_SmoothnessMax;\\nreturn microSurface;\\n}\\n#endif\";ai.a.IncludesShadersStore.pbrHelperFunctions=Lo;var wo=\"#ifdef USESPHERICALFROMREFLECTIONMAP\\n#ifdef SPHERICAL_HARMONICS\\nuniform vec3 vSphericalL00;\\nuniform vec3 vSphericalL1_1;\\nuniform vec3 vSphericalL10;\\nuniform vec3 vSphericalL11;\\nuniform vec3 vSphericalL2_2;\\nuniform vec3 vSphericalL2_1;\\nuniform vec3 vSphericalL20;\\nuniform vec3 vSphericalL21;\\nuniform vec3 vSphericalL22;\\n\\n\\n\\n\\n\\n\\n\\nvec3 computeEnvironmentIrradiance(vec3 normal) {\\nreturn vSphericalL00\\n+vSphericalL1_1*(normal.y)\\n+vSphericalL10*(normal.z)\\n+vSphericalL11*(normal.x)\\n+vSphericalL2_2*(normal.y*normal.x)\\n+vSphericalL2_1*(normal.y*normal.z)\\n+vSphericalL20*((3.0*normal.z*normal.z)-1.0)\\n+vSphericalL21*(normal.z*normal.x)\\n+vSphericalL22*(normal.x*normal.x-(normal.y*normal.y));\\n}\\n#else\\nuniform vec3 vSphericalX;\\nuniform vec3 vSphericalY;\\nuniform vec3 vSphericalZ;\\nuniform vec3 vSphericalXX_ZZ;\\nuniform vec3 vSphericalYY_ZZ;\\nuniform vec3 vSphericalZZ;\\nuniform vec3 vSphericalXY;\\nuniform vec3 vSphericalYZ;\\nuniform vec3 vSphericalZX;\\n\\nvec3 computeEnvironmentIrradiance(vec3 normal) {\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nfloat Nx=normal.x;\\nfloat Ny=normal.y;\\nfloat Nz=normal.z;\\nvec3 C1=vSphericalZZ.rgb;\\nvec3 Cx=vSphericalX.rgb;\\nvec3 Cy=vSphericalY.rgb;\\nvec3 Cz=vSphericalZ.rgb;\\nvec3 Cxx_zz=vSphericalXX_ZZ.rgb;\\nvec3 Cyy_zz=vSphericalYY_ZZ.rgb;\\nvec3 Cxy=vSphericalXY.rgb;\\nvec3 Cyz=vSphericalYZ.rgb;\\nvec3 Czx=vSphericalZX.rgb;\\nvec3 a1=Cyy_zz*Ny+Cy;\\nvec3 a2=Cyz*Nz+a1;\\nvec3 b1=Czx*Nz+Cx;\\nvec3 b2=Cxy*Ny+b1;\\nvec3 b3=Cxx_zz*Nx+b2;\\nvec3 t1=Cz*Nz+C1;\\nvec3 t2=a2*Ny+t1;\\nvec3 t3=b3*Nx+t2;\\nreturn t3;\\n}\\n#endif\\n#endif\";ai.a.IncludesShadersStore.harmonicsFunctions=wo;var Fo=\"\\nstruct preLightingInfo\\n{\\n\\nvec3 lightOffset;\\nfloat lightDistanceSquared;\\nfloat lightDistance;\\n\\nfloat attenuation;\\n\\nvec3 L;\\nvec3 H;\\nfloat NdotV;\\nfloat NdotLUnclamped;\\nfloat NdotL;\\nfloat VdotH;\\nfloat roughness;\\n};\\npreLightingInfo computePointAndSpotPreLightingInfo(vec4 lightData,vec3 V,vec3 N) {\\npreLightingInfo result;\\n\\nresult.lightOffset=lightData.xyz-vPositionW;\\nresult.lightDistanceSquared=dot(result.lightOffset,result.lightOffset);\\n\\nresult.lightDistance=sqrt(result.lightDistanceSquared);\\n\\nresult.L=normalize(result.lightOffset);\\nresult.H=normalize(V+result.L);\\nresult.VdotH=saturate(dot(V,result.H));\\nresult.NdotLUnclamped=dot(N,result.L);\\nresult.NdotL=saturateEps(result.NdotLUnclamped);\\nreturn result;\\n}\\npreLightingInfo computeDirectionalPreLightingInfo(vec4 lightData,vec3 V,vec3 N) {\\npreLightingInfo result;\\n\\nresult.lightDistance=length(-lightData.xyz);\\n\\nresult.L=normalize(-lightData.xyz);\\nresult.H=normalize(V+result.L);\\nresult.VdotH=saturate(dot(V,result.H));\\nresult.NdotLUnclamped=dot(N,result.L);\\nresult.NdotL=saturateEps(result.NdotLUnclamped);\\nreturn result;\\n}\\npreLightingInfo computeHemisphericPreLightingInfo(vec4 lightData,vec3 V,vec3 N) {\\npreLightingInfo result;\\n\\n\\nresult.NdotL=dot(N,lightData.xyz)*0.5+0.5;\\nresult.NdotL=saturateEps(result.NdotL);\\nresult.NdotLUnclamped=result.NdotL;\\n#ifdef SPECULARTERM\\nresult.L=normalize(lightData.xyz);\\nresult.H=normalize(V+result.L);\\nresult.VdotH=saturate(dot(V,result.H));\\n#endif\\nreturn result;\\n}\";ai.a.IncludesShadersStore.pbrDirectLightingSetupFunctions=Fo;var Bo=\"float computeDistanceLightFalloff_Standard(vec3 lightOffset,float range)\\n{\\nreturn max(0.,1.0-length(lightOffset)/range);\\n}\\nfloat computeDistanceLightFalloff_Physical(float lightDistanceSquared)\\n{\\nreturn 1.0/maxEps(lightDistanceSquared);\\n}\\nfloat computeDistanceLightFalloff_GLTF(float lightDistanceSquared,float inverseSquaredRange)\\n{\\nfloat lightDistanceFalloff=1.0/maxEps(lightDistanceSquared);\\nfloat factor=lightDistanceSquared*inverseSquaredRange;\\nfloat attenuation=saturate(1.0-factor*factor);\\nattenuation*=attenuation;\\n\\nlightDistanceFalloff*=attenuation;\\nreturn lightDistanceFalloff;\\n}\\nfloat computeDistanceLightFalloff(vec3 lightOffset,float lightDistanceSquared,float range,float inverseSquaredRange)\\n{\\n#ifdef USEPHYSICALLIGHTFALLOFF\\nreturn computeDistanceLightFalloff_Physical(lightDistanceSquared);\\n#elif defined(USEGLTFLIGHTFALLOFF)\\nreturn computeDistanceLightFalloff_GLTF(lightDistanceSquared,inverseSquaredRange);\\n#else\\nreturn computeDistanceLightFalloff_Standard(lightOffset,range);\\n#endif\\n}\\nfloat computeDirectionalLightFalloff_Standard(vec3 lightDirection,vec3 directionToLightCenterW,float cosHalfAngle,float exponent)\\n{\\nfloat falloff=0.0;\\nfloat cosAngle=maxEps(dot(-lightDirection,directionToLightCenterW));\\nif (cosAngle>=cosHalfAngle)\\n{\\nfalloff=max(0.,pow(cosAngle,exponent));\\n}\\nreturn falloff;\\n}\\nfloat computeDirectionalLightFalloff_Physical(vec3 lightDirection,vec3 directionToLightCenterW,float cosHalfAngle)\\n{\\nconst float kMinusLog2ConeAngleIntensityRatio=6.64385618977;\\n\\n\\n\\n\\n\\nfloat concentrationKappa=kMinusLog2ConeAngleIntensityRatio/(1.0-cosHalfAngle);\\n\\n\\nvec4 lightDirectionSpreadSG=vec4(-lightDirection*concentrationKappa,-concentrationKappa);\\nfloat falloff=exp2(dot(vec4(directionToLightCenterW,1.0),lightDirectionSpreadSG));\\nreturn falloff;\\n}\\nfloat computeDirectionalLightFalloff_GLTF(vec3 lightDirection,vec3 directionToLightCenterW,float lightAngleScale,float lightAngleOffset)\\n{\\n\\n\\n\\nfloat cd=dot(-lightDirection,directionToLightCenterW);\\nfloat falloff=saturate(cd*lightAngleScale+lightAngleOffset);\\n\\nfalloff*=falloff;\\nreturn falloff;\\n}\\nfloat computeDirectionalLightFalloff(vec3 lightDirection,vec3 directionToLightCenterW,float cosHalfAngle,float exponent,float lightAngleScale,float lightAngleOffset)\\n{\\n#ifdef USEPHYSICALLIGHTFALLOFF\\nreturn computeDirectionalLightFalloff_Physical(lightDirection,directionToLightCenterW,cosHalfAngle);\\n#elif defined(USEGLTFLIGHTFALLOFF)\\nreturn computeDirectionalLightFalloff_GLTF(lightDirection,directionToLightCenterW,lightAngleScale,lightAngleOffset);\\n#else\\nreturn computeDirectionalLightFalloff_Standard(lightDirection,directionToLightCenterW,cosHalfAngle,exponent);\\n#endif\\n}\";ai.a.IncludesShadersStore.pbrDirectLightingFalloffFunctions=Bo;var Uo=\"\\n#define FRESNEL_MAXIMUM_ON_ROUGH 0.25\\n\\n\\n\\n\\n#ifdef MS_BRDF_ENERGY_CONSERVATION\\n\\n\\nvec3 getEnergyConservationFactor(const vec3 specularEnvironmentR0,const vec3 environmentBrdf) {\\nreturn 1.0+specularEnvironmentR0*(1.0/environmentBrdf.y-1.0);\\n}\\n#endif\\n#ifdef ENVIRONMENTBRDF\\nvec3 getBRDFLookup(float NdotV,float perceptualRoughness) {\\n\\nvec2 UV=vec2(NdotV,perceptualRoughness);\\n\\nvec4 brdfLookup=texture2D(environmentBrdfSampler,UV);\\n#ifdef ENVIRONMENTBRDF_RGBD\\nbrdfLookup.rgb=fromRGBD(brdfLookup.rgba);\\n#endif\\nreturn brdfLookup.rgb;\\n}\\nvec3 getReflectanceFromBRDFLookup(const vec3 specularEnvironmentR0,const vec3 specularEnvironmentR90,const vec3 environmentBrdf) {\\n#ifdef BRDF_V_HEIGHT_CORRELATED\\nvec3 reflectance=(specularEnvironmentR90-specularEnvironmentR0)*environmentBrdf.x+specularEnvironmentR0*environmentBrdf.y;\\n\\n#else\\nvec3 reflectance=specularEnvironmentR0*environmentBrdf.x+specularEnvironmentR90*environmentBrdf.y;\\n#endif\\nreturn reflectance;\\n}\\nvec3 getReflectanceFromBRDFLookup(const vec3 specularEnvironmentR0,const vec3 environmentBrdf) {\\n#ifdef BRDF_V_HEIGHT_CORRELATED\\nvec3 reflectance=mix(environmentBrdf.xxx,environmentBrdf.yyy,specularEnvironmentR0);\\n#else\\nvec3 reflectance=specularEnvironmentR0*environmentBrdf.x+environmentBrdf.y;\\n#endif\\nreturn reflectance;\\n}\\n#endif\\n\\n#if !defined(ENVIRONMENTBRDF) || defined(REFLECTIONMAP_SKYBOX) || defined(ALPHAFRESNEL)\\nvec3 getReflectanceFromAnalyticalBRDFLookup_Jones(float VdotN,vec3 reflectance0,vec3 reflectance90,float smoothness)\\n{\\n\\nfloat weight=mix(FRESNEL_MAXIMUM_ON_ROUGH,1.0,smoothness);\\nreturn reflectance0+weight*(reflectance90-reflectance0)*pow5(saturate(1.0-VdotN));\\n}\\n#endif\\n#if defined(SHEEN) && defined(ENVIRONMENTBRDF)\\n\\nvec3 getSheenReflectanceFromBRDFLookup(const vec3 reflectance0,const vec3 environmentBrdf) {\\nvec3 sheenEnvironmentReflectance=reflectance0*environmentBrdf.b;\\nreturn sheenEnvironmentReflectance;\\n}\\n#endif\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nvec3 fresnelSchlickGGX(float VdotH,vec3 reflectance0,vec3 reflectance90)\\n{\\nreturn reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);\\n}\\nfloat fresnelSchlickGGX(float VdotH,float reflectance0,float reflectance90)\\n{\\nreturn reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);\\n}\\n#ifdef CLEARCOAT\\n\\n\\n\\n\\n\\nvec3 getR0RemappedForClearCoat(vec3 f0) {\\n#ifdef CLEARCOAT_DEFAULTIOR\\n#ifdef MOBILE\\nreturn saturate(f0*(f0*0.526868+0.529324)-0.0482256);\\n#else\\nreturn saturate(f0*(f0*(0.941892-0.263008*f0)+0.346479)-0.0285998);\\n#endif\\n#else\\nvec3 s=sqrt(f0);\\nvec3 t=(vClearCoatRefractionParams.z+vClearCoatRefractionParams.w*s)/(vClearCoatRefractionParams.w+vClearCoatRefractionParams.z*s);\\nreturn t*t;\\n#endif\\n}\\n#endif\\n\\n\\n\\n\\n\\n\\nfloat normalDistributionFunction_TrowbridgeReitzGGX(float NdotH,float alphaG)\\n{\\n\\n\\n\\nfloat a2=square(alphaG);\\nfloat d=NdotH*NdotH*(a2-1.0)+1.0;\\nreturn a2/(PI*d*d);\\n}\\n#ifdef SHEEN\\n\\n\\nfloat normalDistributionFunction_CharlieSheen(float NdotH,float alphaG)\\n{\\nfloat invR=1./alphaG;\\nfloat cos2h=NdotH*NdotH;\\nfloat sin2h=1.-cos2h;\\nreturn (2.+invR)*pow(sin2h,invR*.5)/(2.*PI);\\n}\\n#endif\\n#ifdef ANISOTROPIC\\n\\n\\nfloat normalDistributionFunction_BurleyGGX_Anisotropic(float NdotH,float TdotH,float BdotH,const vec2 alphaTB) {\\nfloat a2=alphaTB.x*alphaTB.y;\\nvec3 v=vec3(alphaTB.y*TdotH,alphaTB.x*BdotH,a2*NdotH);\\nfloat v2=dot(v,v);\\nfloat w2=a2/v2;\\nreturn a2*w2*w2*RECIPROCAL_PI;\\n}\\n#endif\\n\\n\\n\\n\\n#ifdef BRDF_V_HEIGHT_CORRELATED\\n\\n\\n\\nfloat smithVisibility_GGXCorrelated(float NdotL,float NdotV,float alphaG) {\\n#ifdef MOBILE\\n\\nfloat GGXV=NdotL*(NdotV*(1.0-alphaG)+alphaG);\\nfloat GGXL=NdotV*(NdotL*(1.0-alphaG)+alphaG);\\nreturn 0.5/(GGXV+GGXL);\\n#else\\nfloat a2=alphaG*alphaG;\\nfloat GGXV=NdotL*sqrt(NdotV*(NdotV-a2*NdotV)+a2);\\nfloat GGXL=NdotV*sqrt(NdotL*(NdotL-a2*NdotL)+a2);\\nreturn 0.5/(GGXV+GGXL);\\n#endif\\n}\\n#else\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nfloat smithVisibilityG1_TrowbridgeReitzGGXFast(float dot,float alphaG)\\n{\\n#ifdef MOBILE\\n\\nreturn 1.0/(dot+alphaG+(1.0-alphaG)*dot ));\\n#else\\nfloat alphaSquared=alphaG*alphaG;\\nreturn 1.0/(dot+sqrt(alphaSquared+(1.0-alphaSquared)*dot*dot));\\n#endif\\n}\\nfloat smithVisibility_TrowbridgeReitzGGXFast(float NdotL,float NdotV,float alphaG)\\n{\\nfloat visibility=smithVisibilityG1_TrowbridgeReitzGGXFast(NdotL,alphaG)*smithVisibilityG1_TrowbridgeReitzGGXFast(NdotV,alphaG);\\n\\nreturn visibility;\\n}\\n#endif\\n#ifdef ANISOTROPIC\\n\\n\\nfloat smithVisibility_GGXCorrelated_Anisotropic(float NdotL,float NdotV,float TdotV,float BdotV,float TdotL,float BdotL,const vec2 alphaTB) {\\nfloat lambdaV=NdotL*length(vec3(alphaTB.x*TdotV,alphaTB.y*BdotV,NdotV));\\nfloat lambdaL=NdotV*length(vec3(alphaTB.x*TdotL,alphaTB.y*BdotL,NdotL));\\nfloat v=0.5/(lambdaV+lambdaL);\\nreturn v;\\n}\\n#endif\\n#ifdef CLEARCOAT\\nfloat visibility_Kelemen(float VdotH) {\\n\\n\\n\\nreturn 0.25/(VdotH*VdotH);\\n}\\n#endif\\n#ifdef SHEEN\\n\\n\\n\\nfloat visibility_Ashikhmin(float NdotL,float NdotV)\\n{\\nreturn 1./(4.*(NdotL+NdotV-NdotL*NdotV));\\n}\\n\\n#endif\\n\\n\\n\\n\\n\\n\\n\\nfloat diffuseBRDF_Burley(float NdotL,float NdotV,float VdotH,float roughness) {\\n\\n\\nfloat diffuseFresnelNV=pow5(saturateEps(1.0-NdotL));\\nfloat diffuseFresnelNL=pow5(saturateEps(1.0-NdotV));\\nfloat diffuseFresnel90=0.5+2.0*VdotH*VdotH*roughness;\\nfloat fresnel =\\n(1.0+(diffuseFresnel90-1.0)*diffuseFresnelNL) *\\n(1.0+(diffuseFresnel90-1.0)*diffuseFresnelNV);\\nreturn fresnel/PI;\\n}\\n#ifdef SS_TRANSLUCENCY\\n\\n\\nvec3 transmittanceBRDF_Burley(const vec3 tintColor,const vec3 diffusionDistance,float thickness) {\\nvec3 S=1./maxEps(diffusionDistance);\\nvec3 temp=exp((-0.333333333*thickness)*S);\\nreturn tintColor.rgb*0.25*(temp*temp*temp+3.0*temp);\\n}\\n\\n\\nfloat computeWrappedDiffuseNdotL(float NdotL,float w) {\\nfloat t=1.0+w;\\nfloat invt2=1.0/square(t);\\nreturn saturate((NdotL+w)*invt2);\\n}\\n#endif\\n\";ai.a.IncludesShadersStore.pbrBRDFFunctions=Uo;var Vo=\"#ifdef NUM_SAMPLES\\n#if NUM_SAMPLES>0\\n#ifdef WEBGL2\\n\\n\\nfloat radicalInverse_VdC(uint bits)\\n{\\nbits=(bits << 16u) | (bits >> 16u);\\nbits=((bits & 0x55555555u) << 1u) | ((bits & 0xAAAAAAAAu) >> 1u);\\nbits=((bits & 0x33333333u) << 2u) | ((bits & 0xCCCCCCCCu) >> 2u);\\nbits=((bits & 0x0F0F0F0Fu) << 4u) | ((bits & 0xF0F0F0F0u) >> 4u);\\nbits=((bits & 0x00FF00FFu) << 8u) | ((bits & 0xFF00FF00u) >> 8u);\\nreturn float(bits)*2.3283064365386963e-10;\\n}\\nvec2 hammersley(uint i,uint N)\\n{\\nreturn vec2(float(i)/float(N),radicalInverse_VdC(i));\\n}\\n#else\\nfloat vanDerCorpus(int n,int base)\\n{\\nfloat invBase=1.0/float(base);\\nfloat denom=1.0;\\nfloat result=0.0;\\nfor(int i=0; i<32; ++i)\\n{\\nif(n>0)\\n{\\ndenom=mod(float(n),2.0);\\nresult+=denom*invBase;\\ninvBase=invBase/2.0;\\nn=int(float(n)/2.0);\\n}\\n}\\nreturn result;\\n}\\nvec2 hammersley(int i,int N)\\n{\\nreturn vec2(float(i)/float(N),vanDerCorpus(i,2));\\n}\\n#endif\\nfloat log4(float x) {\\nreturn log2(x)/2.;\\n}\\nconst float NUM_SAMPLES_FLOAT=float(NUM_SAMPLES);\\nconst float NUM_SAMPLES_FLOAT_INVERSED=1./NUM_SAMPLES_FLOAT;\\nconst float K=4.;\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n#define inline\\nvec3 irradiance(samplerCube inputTexture,vec3 inputN,vec2 filteringInfo)\\n{\\nvec3 n=normalize(inputN);\\nvec3 result=vec3(0.0);\\nvec3 tangent=abs(n.z)<0.999 ? vec3(0.,0.,1.) : vec3(1.,0.,0.);\\ntangent=normalize(cross(tangent,n));\\nvec3 bitangent=cross(n,tangent);\\nmat3 tbn=mat3(tangent,bitangent,n);\\nfloat maxLevel=filteringInfo.y;\\nfloat dim0=filteringInfo.x;\\nfloat omegaP=(4.*PI)/(6.*dim0*dim0);\\n#ifdef WEBGL2\\nfor(uint i=0u; i0.) {\\nfloat pdf_inversed=PI/NoL;\\nfloat omegaS=NUM_SAMPLES_FLOAT_INVERSED*pdf_inversed;\\nfloat l=log4(omegaS)-log4(omegaP)+log4(K);\\nfloat mipLevel=clamp(l,0.0,maxLevel);\\nvec3 c=textureCubeLodEXT(inputTexture,tbn*Ls,mipLevel).rgb;\\n#ifdef GAMMA_INPUT\\nc=toLinearSpace(c);\\n#endif\\nresult+=c;\\n}\\n}\\nresult=result*NUM_SAMPLES_FLOAT_INVERSED;\\nreturn result;\\n}\\n#define inline\\nvec3 radiance(float alphaG,samplerCube inputTexture,vec3 inputN,vec2 filteringInfo)\\n{\\nvec3 n=normalize(inputN);\\nif (alphaG == 0.) {\\nvec3 c=textureCube(inputTexture,n).rgb;\\n#ifdef GAMMA_INPUT\\nc=toLinearSpace(c);\\n#endif\\nreturn c;\\n}\\nvec3 result=vec3(0.);\\nvec3 tangent=abs(n.z)<0.999 ? vec3(0.,0.,1.) : vec3(1.,0.,0.);\\ntangent=normalize(cross(tangent,n));\\nvec3 bitangent=cross(n,tangent);\\nmat3 tbn=mat3(tangent,bitangent,n);\\nfloat maxLevel=filteringInfo.y;\\nfloat dim0=filteringInfo.x;\\nfloat omegaP=(4.*PI)/(6.*dim0*dim0);\\nfloat weight=0.;\\n#ifdef WEBGL2\\nfor(uint i=0u; i0.) {\\nfloat pdf_inversed=4./normalDistributionFunction_TrowbridgeReitzGGX(NoH,alphaG);\\nfloat omegaS=NUM_SAMPLES_FLOAT_INVERSED*pdf_inversed;\\nfloat l=log4(omegaS)-log4(omegaP)+log4(K);\\nfloat mipLevel=clamp(float(l),0.0,maxLevel);\\nweight+=NoL;\\nvec3 c=textureCubeLodEXT(inputTexture,tbn*L,mipLevel).rgb;\\n#ifdef GAMMA_INPUT\\nc=toLinearSpace(c);\\n#endif\\nresult+=c*NoL;\\n}\\n}\\nresult=result/weight;\\nreturn result;\\n}\\n#endif\\n#endif\";ai.a.IncludesShadersStore.hdrFilteringFunctions=Vo;var ko=\"#define CLEARCOATREFLECTANCE90 1.0\\n\\nstruct lightingInfo\\n{\\nvec3 diffuse;\\n#ifdef SPECULARTERM\\nvec3 specular;\\n#endif\\n#ifdef CLEARCOAT\\n\\n\\nvec4 clearCoat;\\n#endif\\n#ifdef SHEEN\\nvec3 sheen;\\n#endif\\n};\\n\\nfloat adjustRoughnessFromLightProperties(float roughness,float lightRadius,float lightDistance) {\\n#if defined(USEPHYSICALLIGHTFALLOFF) || defined(USEGLTFLIGHTFALLOFF)\\n\\nfloat lightRoughness=lightRadius/lightDistance;\\n\\nfloat totalRoughness=saturate(lightRoughness+roughness);\\nreturn totalRoughness;\\n#else\\nreturn roughness;\\n#endif\\n}\\nvec3 computeHemisphericDiffuseLighting(preLightingInfo info,vec3 lightColor,vec3 groundColor) {\\nreturn mix(groundColor,lightColor,info.NdotL);\\n}\\nvec3 computeDiffuseLighting(preLightingInfo info,vec3 lightColor) {\\nfloat diffuseTerm=diffuseBRDF_Burley(info.NdotL,info.NdotV,info.VdotH,info.roughness);\\nreturn diffuseTerm*info.attenuation*info.NdotL*lightColor;\\n}\\n#define inline\\nvec3 computeProjectionTextureDiffuseLighting(sampler2D projectionLightSampler,mat4 textureProjectionMatrix){\\nvec4 strq=textureProjectionMatrix*vec4(vPositionW,1.0);\\nstrq/=strq.w;\\nvec3 textureColor=texture2D(projectionLightSampler,strq.xy).rgb;\\nreturn toLinearSpace(textureColor);\\n}\\n#ifdef SS_TRANSLUCENCY\\nvec3 computeDiffuseAndTransmittedLighting(preLightingInfo info,vec3 lightColor,vec3 transmittance) {\\nfloat NdotL=absEps(info.NdotLUnclamped);\\n\\nfloat wrapNdotL=computeWrappedDiffuseNdotL(NdotL,0.02);\\n\\nfloat trAdapt=step(0.,info.NdotLUnclamped);\\nvec3 transmittanceNdotL=mix(transmittance*wrapNdotL,vec3(wrapNdotL),trAdapt);\\nfloat diffuseTerm=diffuseBRDF_Burley(NdotL,info.NdotV,info.VdotH,info.roughness);\\nreturn diffuseTerm*transmittanceNdotL*info.attenuation*lightColor;\\n}\\n#endif\\n#ifdef SPECULARTERM\\nvec3 computeSpecularLighting(preLightingInfo info,vec3 N,vec3 reflectance0,vec3 reflectance90,float geometricRoughnessFactor,vec3 lightColor) {\\nfloat NdotH=saturateEps(dot(N,info.H));\\nfloat roughness=max(info.roughness,geometricRoughnessFactor);\\nfloat alphaG=convertRoughnessToAverageSlope(roughness);\\nvec3 fresnel=fresnelSchlickGGX(info.VdotH,reflectance0,reflectance90);\\nfloat distribution=normalDistributionFunction_TrowbridgeReitzGGX(NdotH,alphaG);\\n#ifdef BRDF_V_HEIGHT_CORRELATED\\nfloat smithVisibility=smithVisibility_GGXCorrelated(info.NdotL,info.NdotV,alphaG);\\n#else\\nfloat smithVisibility=smithVisibility_TrowbridgeReitzGGXFast(info.NdotL,info.NdotV,alphaG);\\n#endif\\nvec3 specTerm=fresnel*distribution*smithVisibility;\\nreturn specTerm*info.attenuation*info.NdotL*lightColor;\\n}\\n#endif\\n#ifdef ANISOTROPIC\\nvec3 computeAnisotropicSpecularLighting(preLightingInfo info,vec3 V,vec3 N,vec3 T,vec3 B,float anisotropy,vec3 reflectance0,vec3 reflectance90,float geometricRoughnessFactor,vec3 lightColor) {\\nfloat NdotH=saturateEps(dot(N,info.H));\\nfloat TdotH=dot(T,info.H);\\nfloat BdotH=dot(B,info.H);\\nfloat TdotV=dot(T,V);\\nfloat BdotV=dot(B,V);\\nfloat TdotL=dot(T,info.L);\\nfloat BdotL=dot(B,info.L);\\nfloat alphaG=convertRoughnessToAverageSlope(info.roughness);\\nvec2 alphaTB=getAnisotropicRoughness(alphaG,anisotropy);\\nalphaTB=max(alphaTB,square(geometricRoughnessFactor));\\nvec3 fresnel=fresnelSchlickGGX(info.VdotH,reflectance0,reflectance90);\\nfloat distribution=normalDistributionFunction_BurleyGGX_Anisotropic(NdotH,TdotH,BdotH,alphaTB);\\nfloat smithVisibility=smithVisibility_GGXCorrelated_Anisotropic(info.NdotL,info.NdotV,TdotV,BdotV,TdotL,BdotL,alphaTB);\\nvec3 specTerm=fresnel*distribution*smithVisibility;\\nreturn specTerm*info.attenuation*info.NdotL*lightColor;\\n}\\n#endif\\n#ifdef CLEARCOAT\\nvec4 computeClearCoatLighting(preLightingInfo info,vec3 Ncc,float geometricRoughnessFactor,float clearCoatIntensity,vec3 lightColor) {\\nfloat NccdotL=saturateEps(dot(Ncc,info.L));\\nfloat NccdotH=saturateEps(dot(Ncc,info.H));\\nfloat clearCoatRoughness=max(info.roughness,geometricRoughnessFactor);\\nfloat alphaG=convertRoughnessToAverageSlope(clearCoatRoughness);\\nfloat fresnel=fresnelSchlickGGX(info.VdotH,vClearCoatRefractionParams.x,CLEARCOATREFLECTANCE90);\\nfresnel*=clearCoatIntensity;\\nfloat distribution=normalDistributionFunction_TrowbridgeReitzGGX(NccdotH,alphaG);\\nfloat kelemenVisibility=visibility_Kelemen(info.VdotH);\\nfloat clearCoatTerm=fresnel*distribution*kelemenVisibility;\\nreturn vec4(\\nclearCoatTerm*info.attenuation*NccdotL*lightColor,\\n1.0-fresnel\\n);\\n}\\nvec3 computeClearCoatLightingAbsorption(float NdotVRefract,vec3 L,vec3 Ncc,vec3 clearCoatColor,float clearCoatThickness,float clearCoatIntensity) {\\nvec3 LRefract=-refract(L,Ncc,vClearCoatRefractionParams.y);\\nfloat NdotLRefract=saturateEps(dot(Ncc,LRefract));\\nvec3 absorption=computeClearCoatAbsorption(NdotVRefract,NdotLRefract,clearCoatColor,clearCoatThickness,clearCoatIntensity);\\nreturn absorption;\\n}\\n#endif\\n#ifdef SHEEN\\nvec3 computeSheenLighting(preLightingInfo info,vec3 N,vec3 reflectance0,vec3 reflectance90,float geometricRoughnessFactor,vec3 lightColor) {\\nfloat NdotH=saturateEps(dot(N,info.H));\\nfloat roughness=max(info.roughness,geometricRoughnessFactor);\\nfloat alphaG=convertRoughnessToAverageSlope(roughness);\\n\\n\\nfloat fresnel=1.;\\nfloat distribution=normalDistributionFunction_CharlieSheen(NdotH,alphaG);\\n\\nfloat visibility=visibility_Ashikhmin(info.NdotL,info.NdotV);\\n\\nfloat sheenTerm=fresnel*distribution*visibility;\\nreturn sheenTerm*info.attenuation*info.NdotL*lightColor;\\n}\\n#endif\\n\";ai.a.IncludesShadersStore.pbrDirectLightingFunctions=ko;var zo=\"#if defined(REFLECTION) || defined(SS_REFRACTION)\\nfloat getLodFromAlphaG(float cubeMapDimensionPixels,float microsurfaceAverageSlope) {\\nfloat microsurfaceAverageSlopeTexels=cubeMapDimensionPixels*microsurfaceAverageSlope;\\nfloat lod=log2(microsurfaceAverageSlopeTexels);\\nreturn lod;\\n}\\nfloat getLinearLodFromRoughness(float cubeMapDimensionPixels,float roughness) {\\nfloat lod=log2(cubeMapDimensionPixels)*roughness;\\nreturn lod;\\n}\\n#endif\\n#if defined(ENVIRONMENTBRDF) && defined(RADIANCEOCCLUSION)\\nfloat environmentRadianceOcclusion(float ambientOcclusion,float NdotVUnclamped) {\\n\\n\\nfloat temp=NdotVUnclamped+ambientOcclusion;\\nreturn saturate(square(temp)-1.0+ambientOcclusion);\\n}\\n#endif\\n#if defined(ENVIRONMENTBRDF) && defined(HORIZONOCCLUSION)\\nfloat environmentHorizonOcclusion(vec3 view,vec3 normal,vec3 geometricNormal) {\\n\\nvec3 reflection=reflect(view,normal);\\nfloat temp=saturate(1.0+1.1*dot(reflection,geometricNormal));\\nreturn square(temp);\\n}\\n#endif\\n\\n\\n\\n\\n#if defined(LODINREFLECTIONALPHA) || defined(SS_LODINREFRACTIONALPHA)\\n\\n\\n#define UNPACK_LOD(x) (1.0-x)*255.0\\nfloat getLodFromAlphaG(float cubeMapDimensionPixels,float alphaG,float NdotV) {\\nfloat microsurfaceAverageSlope=alphaG;\\n\\n\\n\\n\\n\\n\\nmicrosurfaceAverageSlope*=sqrt(abs(NdotV));\\nreturn getLodFromAlphaG(cubeMapDimensionPixels,microsurfaceAverageSlope);\\n}\\n#endif\";ai.a.IncludesShadersStore.pbrIBLFunctions=zo;i(132),i(133);var Go=\"struct albedoOpacityOutParams\\n{\\nvec3 surfaceAlbedo;\\nfloat alpha;\\n};\\n#define pbr_inline\\nvoid albedoOpacityBlock(\\nconst in vec4 vAlbedoColor,\\n#ifdef ALBEDO\\nconst in vec4 albedoTexture,\\nconst in vec2 albedoInfos,\\n#endif\\n#ifdef OPACITY\\nconst in vec4 opacityMap,\\nconst in vec2 vOpacityInfos,\\n#endif\\n#ifdef DETAIL\\nconst in vec4 detailColor,\\nconst in vec4 vDetailInfos,\\n#endif\\nout albedoOpacityOutParams outParams\\n)\\n{\\n\\nvec3 surfaceAlbedo=vAlbedoColor.rgb;\\nfloat alpha=vAlbedoColor.a;\\n#ifdef ALBEDO\\n#if defined(ALPHAFROMALBEDO) || defined(ALPHATEST)\\nalpha*=albedoTexture.a;\\n#endif\\n#ifdef GAMMAALBEDO\\nsurfaceAlbedo*=toLinearSpace(albedoTexture.rgb);\\n#else\\nsurfaceAlbedo*=albedoTexture.rgb;\\n#endif\\nsurfaceAlbedo*=albedoInfos.y;\\n#endif\\n#ifdef VERTEXCOLOR\\nsurfaceAlbedo*=vColor.rgb;\\n#endif\\n#ifdef DETAIL\\nfloat detailAlbedo=2.0*mix(0.5,detailColor.r,vDetailInfos.y);\\nsurfaceAlbedo.rgb=surfaceAlbedo.rgb*detailAlbedo*detailAlbedo;\\n#endif\\n#define CUSTOM_FRAGMENT_UPDATE_ALBEDO\\n\\n#ifdef OPACITY\\n#ifdef OPACITYRGB\\nalpha=getLuminance(opacityMap.rgb);\\n#else\\nalpha*=opacityMap.a;\\n#endif\\nalpha*=vOpacityInfos.y;\\n#endif\\n#ifdef VERTEXALPHA\\nalpha*=vColor.a;\\n#endif\\n#if !defined(SS_LINKREFRACTIONTOTRANSPARENCY) && !defined(ALPHAFRESNEL)\\n#ifdef ALPHATEST\\nif (alpha0\\nvec4 surfaceMetallicColorMap;\\nvec4 surfaceReflectivityColorMap;\\nvec2 metallicRoughness;\\nvec3 metallicF0;\\n#endif\\n};\\n#define pbr_inline\\nvoid reflectivityBlock(\\nconst in vec4 vReflectivityColor,\\n#ifdef METALLICWORKFLOW\\nconst in vec3 surfaceAlbedo,\\nconst in vec4 metallicReflectanceFactors,\\n#endif\\n#ifdef REFLECTIVITY\\nconst in vec3 reflectivityInfos,\\nconst in vec4 surfaceMetallicOrReflectivityColorMap,\\n#endif\\n#if defined(METALLICWORKFLOW) && defined(REFLECTIVITY) && defined(AOSTOREINMETALMAPRED)\\nconst in vec3 ambientOcclusionColorIn,\\n#endif\\n#ifdef MICROSURFACEMAP\\nconst in vec4 microSurfaceTexel,\\n#endif\\n#ifdef DETAIL\\nconst in vec4 detailColor,\\nconst in vec4 vDetailInfos,\\n#endif\\nout reflectivityOutParams outParams\\n)\\n{\\nfloat microSurface=vReflectivityColor.a;\\nvec3 surfaceReflectivityColor=vReflectivityColor.rgb;\\n#ifdef METALLICWORKFLOW\\nvec2 metallicRoughness=surfaceReflectivityColor.rg;\\n#ifdef REFLECTIVITY\\n#if DEBUGMODE>0\\noutParams.surfaceMetallicColorMap=surfaceMetallicOrReflectivityColorMap;\\n#endif\\n#ifdef AOSTOREINMETALMAPRED\\nvec3 aoStoreInMetalMap=vec3(surfaceMetallicOrReflectivityColorMap.r,surfaceMetallicOrReflectivityColorMap.r,surfaceMetallicOrReflectivityColorMap.r);\\noutParams.ambientOcclusionColor=mix(ambientOcclusionColorIn,aoStoreInMetalMap,reflectivityInfos.z);\\n#endif\\n#ifdef METALLNESSSTOREINMETALMAPBLUE\\nmetallicRoughness.r*=surfaceMetallicOrReflectivityColorMap.b;\\n#else\\nmetallicRoughness.r*=surfaceMetallicOrReflectivityColorMap.r;\\n#endif\\n#ifdef ROUGHNESSSTOREINMETALMAPALPHA\\nmetallicRoughness.g*=surfaceMetallicOrReflectivityColorMap.a;\\n#else\\n#ifdef ROUGHNESSSTOREINMETALMAPGREEN\\nmetallicRoughness.g*=surfaceMetallicOrReflectivityColorMap.g;\\n#endif\\n#endif\\n#endif\\n#ifdef DETAIL\\nfloat detailRoughness=mix(0.5,detailColor.b,vDetailInfos.w);\\nfloat loLerp=mix(0.,metallicRoughness.g,detailRoughness*2.);\\nfloat hiLerp=mix(metallicRoughness.g,1.,(detailRoughness-0.5)*2.);\\nmetallicRoughness.g=mix(loLerp,hiLerp,step(detailRoughness,0.5));\\n#endif\\n#ifdef MICROSURFACEMAP\\nmetallicRoughness.g*=microSurfaceTexel.r;\\n#endif\\n#if DEBUGMODE>0\\noutParams.metallicRoughness=metallicRoughness;\\n#endif\\n#define CUSTOM_FRAGMENT_UPDATE_METALLICROUGHNESS\\n\\nmicroSurface=1.0-metallicRoughness.g;\\n\\nvec3 baseColor=surfaceAlbedo;\\n#ifdef FROSTBITE_REFLECTANCE\\n\\n\\n\\n\\n\\n\\noutParams.surfaceAlbedo=baseColor.rgb*(1.0-metallicRoughness.r);\\n\\nsurfaceReflectivityColor=mix(0.16*reflectance*reflectance,baseColor,metallicRoughness.r);\\n#else\\nvec3 metallicF0=metallicReflectanceFactors.rgb;\\n#if DEBUGMODE>0\\noutParams.metallicF0=metallicF0;\\n#endif\\n\\noutParams.surfaceAlbedo=mix(baseColor.rgb*(1.0-metallicF0),vec3(0.,0.,0.),metallicRoughness.r);\\n\\nsurfaceReflectivityColor=mix(metallicF0,baseColor,metallicRoughness.r);\\n#endif\\n#else\\n#ifdef REFLECTIVITY\\nsurfaceReflectivityColor*=surfaceMetallicOrReflectivityColorMap.rgb;\\n#if DEBUGMODE>0\\noutParams.surfaceReflectivityColorMap=surfaceMetallicOrReflectivityColorMap;\\n#endif\\n#ifdef MICROSURFACEFROMREFLECTIVITYMAP\\nmicroSurface*=surfaceMetallicOrReflectivityColorMap.a;\\nmicroSurface*=reflectivityInfos.z;\\n#else\\n#ifdef MICROSURFACEAUTOMATIC\\nmicroSurface*=computeDefaultMicroSurface(microSurface,surfaceReflectivityColor);\\n#endif\\n#ifdef MICROSURFACEMAP\\nmicroSurface*=microSurfaceTexel.r;\\n#endif\\n#define CUSTOM_FRAGMENT_UPDATE_MICROSURFACE\\n#endif\\n#endif\\n#endif\\n\\nmicroSurface=saturate(microSurface);\\n\\nfloat roughness=1.-microSurface;\\noutParams.microSurface=microSurface;\\noutParams.roughness=roughness;\\noutParams.surfaceReflectivityColor=surfaceReflectivityColor;\\n}\\n\";ai.a.IncludesShadersStore.pbrBlockReflectivity=jo;var Wo=\"struct ambientOcclusionOutParams\\n{\\nvec3 ambientOcclusionColor;\\n#if DEBUGMODE>0\\nvec3 ambientOcclusionColorMap;\\n#endif\\n};\\n#define pbr_inline\\nvoid ambientOcclusionBlock(\\n#ifdef AMBIENT\\nconst in vec3 ambientOcclusionColorMap_,\\nconst in vec4 vAmbientInfos,\\n#endif\\nout ambientOcclusionOutParams outParams\\n)\\n{\\nvec3 ambientOcclusionColor=vec3(1.,1.,1.);\\n#ifdef AMBIENT\\nvec3 ambientOcclusionColorMap=ambientOcclusionColorMap_*vAmbientInfos.y;\\n#ifdef AMBIENTINGRAYSCALE\\nambientOcclusionColorMap=vec3(ambientOcclusionColorMap.r,ambientOcclusionColorMap.r,ambientOcclusionColorMap.r);\\n#endif\\nambientOcclusionColor=mix(ambientOcclusionColor,ambientOcclusionColorMap,vAmbientInfos.z);\\n#if DEBUGMODE>0\\noutParams.ambientOcclusionColorMap=ambientOcclusionColorMap;\\n#endif\\n#endif\\noutParams.ambientOcclusionColor=ambientOcclusionColor;\\n}\\n\";ai.a.IncludesShadersStore.pbrBlockAmbientOcclusion=Wo;var Ho=\"#ifdef ALPHAFRESNEL\\n#if defined(ALPHATEST) || defined(ALPHABLEND)\\nstruct alphaFresnelOutParams\\n{\\nfloat alpha;\\n};\\n#define pbr_inline\\nvoid alphaFresnelBlock(\\nconst in vec3 normalW,\\nconst in vec3 viewDirectionW,\\nconst in float alpha,\\nconst in float microSurface,\\nout alphaFresnelOutParams outParams\\n)\\n{\\n\\n\\n\\nfloat opacityPerceptual=alpha;\\n#ifdef LINEARALPHAFRESNEL\\nfloat opacity0=opacityPerceptual;\\n#else\\nfloat opacity0=opacityPerceptual*opacityPerceptual;\\n#endif\\nfloat opacity90=fresnelGrazingReflectance(opacity0);\\nvec3 normalForward=faceforward(normalW,-viewDirectionW,normalW);\\n\\noutParams.alpha=getReflectanceFromAnalyticalBRDFLookup_Jones(saturate(dot(viewDirectionW,normalForward)),vec3(opacity0),vec3(opacity90),sqrt(microSurface)).x;\\n#ifdef ALPHATEST\\nif (outParams.alpha0\\nvec3 anisotropyMapData;\\n#endif\\n};\\n#define pbr_inline\\nvoid anisotropicBlock(\\nconst in vec3 vAnisotropy,\\n#ifdef ANISOTROPIC_TEXTURE\\nconst in vec3 anisotropyMapData,\\n#endif\\nconst in mat3 TBN,\\nconst in vec3 normalW,\\nconst in vec3 viewDirectionW,\\nout anisotropicOutParams outParams\\n)\\n{\\nfloat anisotropy=vAnisotropy.b;\\nvec3 anisotropyDirection=vec3(vAnisotropy.xy,0.);\\n#ifdef ANISOTROPIC_TEXTURE\\nanisotropy*=anisotropyMapData.b;\\nanisotropyDirection.rg*=anisotropyMapData.rg*2.0-1.0;\\n#if DEBUGMODE>0\\noutParams.anisotropyMapData=anisotropyMapData;\\n#endif\\n#endif\\nmat3 anisoTBN=mat3(normalize(TBN[0]),normalize(TBN[1]),normalize(TBN[2]));\\nvec3 anisotropicTangent=normalize(anisoTBN*anisotropyDirection);\\nvec3 anisotropicBitangent=normalize(cross(anisoTBN[2],anisotropicTangent));\\noutParams.anisotropy=anisotropy;\\noutParams.anisotropicTangent=anisotropicTangent;\\noutParams.anisotropicBitangent=anisotropicBitangent;\\noutParams.anisotropicNormal=getAnisotropicBentNormals(anisotropicTangent,anisotropicBitangent,normalW,viewDirectionW,anisotropy);\\n}\\n#endif\\n\";ai.a.IncludesShadersStore.pbrBlockAnisotropic=Xo;var Yo=\"#ifdef REFLECTION\\nstruct reflectionOutParams\\n{\\nvec4 environmentRadiance;\\nvec3 environmentIrradiance;\\n#ifdef REFLECTIONMAP_3D\\nvec3 reflectionCoords;\\n#else\\nvec2 reflectionCoords;\\n#endif\\n#ifdef SS_TRANSLUCENCY\\n#ifdef USESPHERICALFROMREFLECTIONMAP\\n#if !defined(NORMAL) || !defined(USESPHERICALINVERTEX)\\nvec3 irradianceVector;\\n#endif\\n#endif\\n#endif\\n};\\n#define pbr_inline\\nvoid createReflectionCoords(\\nconst in vec3 vPositionW,\\nconst in vec3 normalW,\\n#ifdef ANISOTROPIC\\nconst in anisotropicOutParams anisotropicOut,\\n#endif\\n#ifdef REFLECTIONMAP_3D\\nout vec3 reflectionCoords\\n#else\\nout vec2 reflectionCoords\\n#endif\\n)\\n{\\n#ifdef ANISOTROPIC\\nvec3 reflectionVector=computeReflectionCoords(vec4(vPositionW,1.0),anisotropicOut.anisotropicNormal);\\n#else\\nvec3 reflectionVector=computeReflectionCoords(vec4(vPositionW,1.0),normalW);\\n#endif\\n#ifdef REFLECTIONMAP_OPPOSITEZ\\nreflectionVector.z*=-1.0;\\n#endif\\n\\n#ifdef REFLECTIONMAP_3D\\nreflectionCoords=reflectionVector;\\n#else\\nreflectionCoords=reflectionVector.xy;\\n#ifdef REFLECTIONMAP_PROJECTION\\nreflectionCoords/=reflectionVector.z;\\n#endif\\nreflectionCoords.y=1.0-reflectionCoords.y;\\n#endif\\n}\\n#define pbr_inline\\n#define inline\\nvoid sampleReflectionTexture(\\nconst in float alphaG,\\nconst in vec3 vReflectionMicrosurfaceInfos,\\nconst in vec2 vReflectionInfos,\\nconst in vec3 vReflectionColor,\\n#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)\\nconst in float NdotVUnclamped,\\n#endif\\n#ifdef LINEARSPECULARREFLECTION\\nconst in float roughness,\\n#endif\\n#ifdef REFLECTIONMAP_3D\\nconst in samplerCube reflectionSampler,\\nconst vec3 reflectionCoords,\\n#else\\nconst in sampler2D reflectionSampler,\\nconst vec2 reflectionCoords,\\n#endif\\n#ifndef LODBASEDMICROSFURACE\\n#ifdef REFLECTIONMAP_3D\\nconst in samplerCube reflectionSamplerLow,\\nconst in samplerCube reflectionSamplerHigh,\\n#else\\nconst in sampler2D reflectionSamplerLow,\\nconst in sampler2D reflectionSamplerHigh,\\n#endif\\n#endif\\n#ifdef REALTIME_FILTERING\\nconst in vec2 vReflectionFilteringInfo,\\n#endif\\nout vec4 environmentRadiance\\n)\\n{\\n\\n#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)\\nfloat reflectionLOD=getLodFromAlphaG(vReflectionMicrosurfaceInfos.x,alphaG,NdotVUnclamped);\\n#elif defined(LINEARSPECULARREFLECTION)\\nfloat reflectionLOD=getLinearLodFromRoughness(vReflectionMicrosurfaceInfos.x,roughness);\\n#else\\nfloat reflectionLOD=getLodFromAlphaG(vReflectionMicrosurfaceInfos.x,alphaG);\\n#endif\\n#ifdef LODBASEDMICROSFURACE\\n\\nreflectionLOD=reflectionLOD*vReflectionMicrosurfaceInfos.y+vReflectionMicrosurfaceInfos.z;\\n#ifdef LODINREFLECTIONALPHA\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nfloat automaticReflectionLOD=UNPACK_LOD(sampleReflection(reflectionSampler,reflectionCoords).a);\\nfloat requestedReflectionLOD=max(automaticReflectionLOD,reflectionLOD);\\n#else\\nfloat requestedReflectionLOD=reflectionLOD;\\n#endif\\n#ifdef REALTIME_FILTERING\\nenvironmentRadiance=vec4(radiance(alphaG,reflectionSampler,reflectionCoords,vReflectionFilteringInfo),1.0);\\n#else\\nenvironmentRadiance=sampleReflectionLod(reflectionSampler,reflectionCoords,reflectionLOD);\\n#endif\\n#else\\nfloat lodReflectionNormalized=saturate(reflectionLOD/log2(vReflectionMicrosurfaceInfos.x));\\nfloat lodReflectionNormalizedDoubled=lodReflectionNormalized*2.0;\\nvec4 environmentMid=sampleReflection(reflectionSampler,reflectionCoords);\\nif (lodReflectionNormalizedDoubled<1.0){\\nenvironmentRadiance=mix(\\nsampleReflection(reflectionSamplerHigh,reflectionCoords),\\nenvironmentMid,\\nlodReflectionNormalizedDoubled\\n);\\n} else {\\nenvironmentRadiance=mix(\\nenvironmentMid,\\nsampleReflection(reflectionSamplerLow,reflectionCoords),\\nlodReflectionNormalizedDoubled-1.0\\n);\\n}\\n#endif\\n#ifdef RGBDREFLECTION\\nenvironmentRadiance.rgb=fromRGBD(environmentRadiance);\\n#endif\\n#ifdef GAMMAREFLECTION\\nenvironmentRadiance.rgb=toLinearSpace(environmentRadiance.rgb);\\n#endif\\n\\nenvironmentRadiance.rgb*=vReflectionInfos.x;\\nenvironmentRadiance.rgb*=vReflectionColor.rgb;\\n}\\n#define pbr_inline\\n#define inline\\nvoid reflectionBlock(\\nconst in vec3 vPositionW,\\nconst in vec3 normalW,\\nconst in float alphaG,\\nconst in vec3 vReflectionMicrosurfaceInfos,\\nconst in vec2 vReflectionInfos,\\nconst in vec3 vReflectionColor,\\n#ifdef ANISOTROPIC\\nconst in anisotropicOutParams anisotropicOut,\\n#endif\\n#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)\\nconst in float NdotVUnclamped,\\n#endif\\n#ifdef LINEARSPECULARREFLECTION\\nconst in float roughness,\\n#endif\\n#ifdef REFLECTIONMAP_3D\\nconst in samplerCube reflectionSampler,\\n#else\\nconst in sampler2D reflectionSampler,\\n#endif\\n#if defined(NORMAL) && defined(USESPHERICALINVERTEX)\\nconst in vec3 vEnvironmentIrradiance,\\n#endif\\n#ifdef USESPHERICALFROMREFLECTIONMAP\\n#if !defined(NORMAL) || !defined(USESPHERICALINVERTEX)\\nconst in mat4 reflectionMatrix,\\n#endif\\n#endif\\n#ifdef USEIRRADIANCEMAP\\n#ifdef REFLECTIONMAP_3D\\nconst in samplerCube irradianceSampler,\\n#else\\nconst in sampler2D irradianceSampler,\\n#endif\\n#endif\\n#ifndef LODBASEDMICROSFURACE\\n#ifdef REFLECTIONMAP_3D\\nconst in samplerCube reflectionSamplerLow,\\nconst in samplerCube reflectionSamplerHigh,\\n#else\\nconst in sampler2D reflectionSamplerLow,\\nconst in sampler2D reflectionSamplerHigh,\\n#endif\\n#endif\\n#ifdef REALTIME_FILTERING\\nconst in vec2 vReflectionFilteringInfo,\\n#endif\\nout reflectionOutParams outParams\\n)\\n{\\n\\nvec4 environmentRadiance=vec4(0.,0.,0.,0.);\\n#ifdef REFLECTIONMAP_3D\\nvec3 reflectionCoords=vec3(0.);\\n#else\\nvec2 reflectionCoords=vec2(0.);\\n#endif\\ncreateReflectionCoords(\\nvPositionW,\\nnormalW,\\n#ifdef ANISOTROPIC\\nanisotropicOut,\\n#endif\\nreflectionCoords\\n);\\nsampleReflectionTexture(\\nalphaG,\\nvReflectionMicrosurfaceInfos,\\nvReflectionInfos,\\nvReflectionColor,\\n#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)\\nNdotVUnclamped,\\n#endif\\n#ifdef LINEARSPECULARREFLECTION\\nroughness,\\n#endif\\n#ifdef REFLECTIONMAP_3D\\nreflectionSampler,\\nreflectionCoords,\\n#else\\nreflectionSampler,\\nreflectionCoords,\\n#endif\\n#ifndef LODBASEDMICROSFURACE\\nreflectionSamplerLow,\\nreflectionSamplerHigh,\\n#endif\\n#ifdef REALTIME_FILTERING\\nvReflectionFilteringInfo,\\n#endif\\nenvironmentRadiance\\n);\\n\\nvec3 environmentIrradiance=vec3(0.,0.,0.);\\n#ifdef USESPHERICALFROMREFLECTIONMAP\\n#if defined(NORMAL) && defined(USESPHERICALINVERTEX)\\nenvironmentIrradiance=vEnvironmentIrradiance;\\n#else\\n#ifdef ANISOTROPIC\\nvec3 irradianceVector=vec3(reflectionMatrix*vec4(anisotropicOut.anisotropicNormal,0)).xyz;\\n#else\\nvec3 irradianceVector=vec3(reflectionMatrix*vec4(normalW,0)).xyz;\\n#endif\\n#ifdef REFLECTIONMAP_OPPOSITEZ\\nirradianceVector.z*=-1.0;\\n#endif\\n#ifdef INVERTCUBICMAP\\nirradianceVector.y*=-1.0;\\n#endif\\n#if defined(REALTIME_FILTERING)\\nenvironmentIrradiance=irradiance(reflectionSampler,irradianceVector,vReflectionFilteringInfo);\\n#else\\nenvironmentIrradiance=computeEnvironmentIrradiance(irradianceVector);\\n#endif\\n#ifdef SS_TRANSLUCENCY\\noutParams.irradianceVector=irradianceVector;\\n#endif\\n#endif\\n#elif defined(USEIRRADIANCEMAP)\\nvec4 environmentIrradiance4=sampleReflection(irradianceSampler,reflectionCoords);\\nenvironmentIrradiance=environmentIrradiance4.rgb;\\n#ifdef RGBDREFLECTION\\nenvironmentIrradiance.rgb=fromRGBD(environmentIrradiance4);\\n#endif\\n#ifdef GAMMAREFLECTION\\nenvironmentIrradiance.rgb=toLinearSpace(environmentIrradiance.rgb);\\n#endif\\n#endif\\nenvironmentIrradiance*=vReflectionColor.rgb;\\noutParams.environmentRadiance=environmentRadiance;\\noutParams.environmentIrradiance=environmentIrradiance;\\noutParams.reflectionCoords=reflectionCoords;\\n}\\n#endif\\n\";ai.a.IncludesShadersStore.pbrBlockReflection=Yo;var Ko=\"#ifdef SHEEN\\nstruct sheenOutParams\\n{\\nfloat sheenIntensity;\\nvec3 sheenColor;\\nfloat sheenRoughness;\\n#ifdef SHEEN_LINKWITHALBEDO\\nvec3 surfaceAlbedo;\\n#endif\\n#if defined(ENVIRONMENTBRDF) && defined(SHEEN_ALBEDOSCALING)\\nfloat sheenAlbedoScaling;\\n#endif\\n#if defined(REFLECTION) && defined(ENVIRONMENTBRDF)\\nvec3 finalSheenRadianceScaled;\\n#endif\\n#if DEBUGMODE>0\\nvec4 sheenMapData;\\nvec3 sheenEnvironmentReflectance;\\n#endif\\n};\\n#define pbr_inline\\n#define inline\\nvoid sheenBlock(\\nconst in vec4 vSheenColor,\\n#ifdef SHEEN_ROUGHNESS\\nconst in float vSheenRoughness,\\n#if defined(SHEEN_TEXTURE_ROUGHNESS) && !defined(SHEEN_TEXTURE_ROUGHNESS_IDENTICAL) && !defined(SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE)\\nconst in vec4 sheenMapRoughnessData,\\n#endif\\n#endif\\nconst in float roughness,\\n#ifdef SHEEN_TEXTURE\\nconst in vec4 sheenMapData,\\n#endif\\nconst in float reflectance,\\n#ifdef SHEEN_LINKWITHALBEDO\\nconst in vec3 baseColor,\\nconst in vec3 surfaceAlbedo,\\n#endif\\n#ifdef ENVIRONMENTBRDF\\nconst in float NdotV,\\nconst in vec3 environmentBrdf,\\n#endif\\n#if defined(REFLECTION) && defined(ENVIRONMENTBRDF)\\nconst in vec2 AARoughnessFactors,\\nconst in vec3 vReflectionMicrosurfaceInfos,\\nconst in vec2 vReflectionInfos,\\nconst in vec3 vReflectionColor,\\nconst in vec4 vLightingIntensity,\\n#ifdef REFLECTIONMAP_3D\\nconst in samplerCube reflectionSampler,\\nconst in vec3 reflectionCoords,\\n#else\\nconst in sampler2D reflectionSampler,\\nconst in vec2 reflectionCoords,\\n#endif\\nconst in float NdotVUnclamped,\\n#ifndef LODBASEDMICROSFURACE\\n#ifdef REFLECTIONMAP_3D\\nconst in samplerCube reflectionSamplerLow,\\nconst in samplerCube reflectionSamplerHigh,\\n#else\\nconst in sampler2D reflectionSamplerLow,\\nconst in sampler2D reflectionSamplerHigh,\\n#endif\\n#endif\\n#ifdef REALTIME_FILTERING\\nconst in vec2 vReflectionFilteringInfo,\\n#endif\\n#if !defined(REFLECTIONMAP_SKYBOX) && defined(RADIANCEOCCLUSION)\\nconst in float seo,\\n#endif\\n#if !defined(REFLECTIONMAP_SKYBOX) && defined(HORIZONOCCLUSION) && defined(BUMP) && defined(REFLECTIONMAP_3D)\\nconst in float eho,\\n#endif\\n#endif\\nout sheenOutParams outParams\\n)\\n{\\nfloat sheenIntensity=vSheenColor.a;\\n#ifdef SHEEN_TEXTURE\\n#if DEBUGMODE>0\\noutParams.sheenMapData=sheenMapData;\\n#endif\\n#endif\\n#ifdef SHEEN_LINKWITHALBEDO\\nfloat sheenFactor=pow5(1.0-sheenIntensity);\\nvec3 sheenColor=baseColor.rgb*(1.0-sheenFactor);\\nfloat sheenRoughness=sheenIntensity;\\noutParams.surfaceAlbedo=surfaceAlbedo*sheenFactor;\\n#ifdef SHEEN_TEXTURE\\nsheenIntensity*=sheenMapData.a;\\n#endif\\n#else\\nvec3 sheenColor=vSheenColor.rgb;\\n#ifdef SHEEN_TEXTURE\\nsheenColor.rgb*=sheenMapData.rgb;\\n#endif\\n#ifdef SHEEN_ROUGHNESS\\nfloat sheenRoughness=vSheenRoughness;\\n#ifdef SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE\\n#if defined(SHEEN_TEXTURE)\\nsheenRoughness*=sheenMapData.a;\\n#endif\\n#elif defined(SHEEN_TEXTURE_ROUGHNESS)\\n#ifdef SHEEN_TEXTURE_ROUGHNESS_IDENTICAL\\nsheenRoughness*=sheenMapData.a;\\n#else\\nsheenRoughness*=sheenMapRoughnessData.a;\\n#endif\\n#endif\\n#else\\nfloat sheenRoughness=roughness;\\n#ifdef SHEEN_TEXTURE\\nsheenIntensity*=sheenMapData.a;\\n#endif\\n#endif\\n\\n#if !defined(SHEEN_ALBEDOSCALING)\\nsheenIntensity*=(1.-reflectance);\\n#endif\\n\\nsheenColor*=sheenIntensity;\\n#endif\\n\\n#ifdef ENVIRONMENTBRDF\\n\\n#ifdef SHEEN_ROUGHNESS\\nvec3 environmentSheenBrdf=getBRDFLookup(NdotV,sheenRoughness);\\n#else\\nvec3 environmentSheenBrdf=environmentBrdf;\\n#endif\\n\\n#endif\\n#if defined(REFLECTION) && defined(ENVIRONMENTBRDF)\\nfloat sheenAlphaG=convertRoughnessToAverageSlope(sheenRoughness);\\n#ifdef SPECULARAA\\n\\nsheenAlphaG+=AARoughnessFactors.y;\\n#endif\\nvec4 environmentSheenRadiance=vec4(0.,0.,0.,0.);\\nsampleReflectionTexture(\\nsheenAlphaG,\\nvReflectionMicrosurfaceInfos,\\nvReflectionInfos,\\nvReflectionColor,\\n#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)\\nNdotVUnclamped,\\n#endif\\n#ifdef LINEARSPECULARREFLECTION\\nsheenRoughness,\\n#endif\\nreflectionSampler,\\nreflectionCoords,\\n#ifndef LODBASEDMICROSFURACE\\nreflectionSamplerLow,\\nreflectionSamplerHigh,\\n#endif\\n#ifdef REALTIME_FILTERING\\nvReflectionFilteringInfo,\\n#endif\\nenvironmentSheenRadiance\\n);\\nvec3 sheenEnvironmentReflectance=getSheenReflectanceFromBRDFLookup(sheenColor,environmentSheenBrdf);\\n#if !defined(REFLECTIONMAP_SKYBOX) && defined(RADIANCEOCCLUSION)\\nsheenEnvironmentReflectance*=seo;\\n#endif\\n#if !defined(REFLECTIONMAP_SKYBOX) && defined(HORIZONOCCLUSION) && defined(BUMP) && defined(REFLECTIONMAP_3D)\\nsheenEnvironmentReflectance*=eho;\\n#endif\\n#if DEBUGMODE>0\\noutParams.sheenEnvironmentReflectance=sheenEnvironmentReflectance;\\n#endif\\noutParams.finalSheenRadianceScaled=\\nenvironmentSheenRadiance.rgb *\\nsheenEnvironmentReflectance *\\nvLightingIntensity.z;\\n\\n\\n\\n\\n\\n#endif\\n#if defined(ENVIRONMENTBRDF) && defined(SHEEN_ALBEDOSCALING)\\n\\n\\n\\noutParams.sheenAlbedoScaling=1.0-sheenIntensity*max(max(sheenColor.r,sheenColor.g),sheenColor.b)*environmentSheenBrdf.b;\\n#endif\\n\\noutParams.sheenIntensity=sheenIntensity;\\noutParams.sheenColor=sheenColor;\\noutParams.sheenRoughness=sheenRoughness;\\n}\\n#endif\\n\";ai.a.IncludesShadersStore.pbrBlockSheen=Ko;var Qo=\"struct clearcoatOutParams\\n{\\nvec3 specularEnvironmentR0;\\nfloat conservationFactor;\\nvec3 clearCoatNormalW;\\nvec2 clearCoatAARoughnessFactors;\\nfloat clearCoatIntensity;\\nfloat clearCoatRoughness;\\n#ifdef REFLECTION\\nvec3 finalClearCoatRadianceScaled;\\n#endif\\n#ifdef CLEARCOAT_TINT\\nvec3 absorption;\\nfloat clearCoatNdotVRefract;\\nvec3 clearCoatColor;\\nfloat clearCoatThickness;\\n#endif\\n#if defined(ENVIRONMENTBRDF) && defined(MS_BRDF_ENERGY_CONSERVATION)\\nvec3 energyConservationFactorClearCoat;\\n#endif\\n#if DEBUGMODE>0\\nmat3 TBNClearCoat;\\nvec2 clearCoatMapData;\\nvec4 clearCoatTintMapData;\\nvec4 environmentClearCoatRadiance;\\nfloat clearCoatNdotV;\\nvec3 clearCoatEnvironmentReflectance;\\n#endif\\n};\\n#ifdef CLEARCOAT\\n#define pbr_inline\\n#define inline\\nvoid clearcoatBlock(\\nconst in vec3 vPositionW,\\nconst in vec3 geometricNormalW,\\nconst in vec3 viewDirectionW,\\nconst in vec2 vClearCoatParams,\\n#if defined(CLEARCOAT_TEXTURE_ROUGHNESS) && !defined(CLEARCOAT_TEXTURE_ROUGHNESS_IDENTICAL) && !defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE)\\nconst in vec4 clearCoatMapRoughnessData,\\n#endif\\nconst in vec3 specularEnvironmentR0,\\n#ifdef CLEARCOAT_TEXTURE\\nconst in vec2 clearCoatMapData,\\n#endif\\n#ifdef CLEARCOAT_TINT\\nconst in vec4 vClearCoatTintParams,\\nconst in float clearCoatColorAtDistance,\\nconst in vec4 vClearCoatRefractionParams,\\n#ifdef CLEARCOAT_TINT_TEXTURE\\nconst in vec4 clearCoatTintMapData,\\n#endif\\n#endif\\n#ifdef CLEARCOAT_BUMP\\nconst in vec2 vClearCoatBumpInfos,\\nconst in vec4 clearCoatBumpMapData,\\nconst in vec2 vClearCoatBumpUV,\\n#if defined(TANGENT) && defined(NORMAL)\\nconst in mat3 vTBN,\\n#else\\nconst in vec2 vClearCoatTangentSpaceParams,\\n#endif\\n#ifdef OBJECTSPACE_NORMALMAP\\nconst in mat4 normalMatrix,\\n#endif\\n#endif\\n#if defined(FORCENORMALFORWARD) && defined(NORMAL)\\nconst in vec3 faceNormal,\\n#endif\\n#ifdef REFLECTION\\nconst in vec3 vReflectionMicrosurfaceInfos,\\nconst in vec2 vReflectionInfos,\\nconst in vec3 vReflectionColor,\\nconst in vec4 vLightingIntensity,\\n#ifdef REFLECTIONMAP_3D\\nconst in samplerCube reflectionSampler,\\n#else\\nconst in sampler2D reflectionSampler,\\n#endif\\n#ifndef LODBASEDMICROSFURACE\\n#ifdef REFLECTIONMAP_3D\\nconst in samplerCube reflectionSamplerLow,\\nconst in samplerCube reflectionSamplerHigh,\\n#else\\nconst in sampler2D reflectionSamplerLow,\\nconst in sampler2D reflectionSamplerHigh,\\n#endif\\n#endif\\n#ifdef REALTIME_FILTERING\\nconst in vec2 vReflectionFilteringInfo,\\n#endif\\n#endif\\n#if defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)\\n#ifdef RADIANCEOCCLUSION\\nconst in float ambientMonochrome,\\n#endif\\n#endif\\nout clearcoatOutParams outParams\\n)\\n{\\n\\nfloat clearCoatIntensity=vClearCoatParams.x;\\nfloat clearCoatRoughness=vClearCoatParams.y;\\n#ifdef CLEARCOAT_TEXTURE\\nclearCoatIntensity*=clearCoatMapData.x;\\n#ifdef CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE\\nclearCoatRoughness*=clearCoatMapData.y;\\n#endif\\n#if DEBUGMODE>0\\noutParams.clearCoatMapData=clearCoatMapData;\\n#endif\\n#endif\\n#if defined(CLEARCOAT_TEXTURE_ROUGHNESS) && !defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE)\\n#ifdef CLEARCOAT_TEXTURE_ROUGHNESS_IDENTICAL\\nclearCoatRoughness*=clearCoatMapData.y;\\n#else\\nclearCoatRoughness*=clearCoatMapRoughnessData.y;\\n#endif\\n#endif\\noutParams.clearCoatIntensity=clearCoatIntensity;\\noutParams.clearCoatRoughness=clearCoatRoughness;\\n#ifdef CLEARCOAT_TINT\\nvec3 clearCoatColor=vClearCoatTintParams.rgb;\\nfloat clearCoatThickness=vClearCoatTintParams.a;\\n#ifdef CLEARCOAT_TINT_TEXTURE\\nclearCoatColor*=clearCoatTintMapData.rgb;\\nclearCoatThickness*=clearCoatTintMapData.a;\\n#if DEBUGMODE>0\\noutParams.clearCoatTintMapData=clearCoatTintMapData;\\n#endif\\n#endif\\noutParams.clearCoatColor=computeColorAtDistanceInMedia(clearCoatColor,clearCoatColorAtDistance);\\noutParams.clearCoatThickness=clearCoatThickness;\\n#endif\\n\\n\\n\\n\\n#ifdef CLEARCOAT_REMAP_F0\\nvec3 specularEnvironmentR0Updated=getR0RemappedForClearCoat(specularEnvironmentR0);\\n#else\\nvec3 specularEnvironmentR0Updated=specularEnvironmentR0;\\n#endif\\noutParams.specularEnvironmentR0=mix(specularEnvironmentR0,specularEnvironmentR0Updated,clearCoatIntensity);\\n\\nvec3 clearCoatNormalW=geometricNormalW;\\n#ifdef CLEARCOAT_BUMP\\n#ifdef NORMALXYSCALE\\nfloat clearCoatNormalScale=1.0;\\n#else\\nfloat clearCoatNormalScale=vClearCoatBumpInfos.y;\\n#endif\\n#if defined(TANGENT) && defined(NORMAL)\\nmat3 TBNClearCoat=vTBN;\\n#else\\nmat3 TBNClearCoat=cotangent_frame(clearCoatNormalW*clearCoatNormalScale,vPositionW,vClearCoatBumpUV,vClearCoatTangentSpaceParams);\\n#endif\\n#if DEBUGMODE>0\\noutParams.TBNClearCoat=TBNClearCoat;\\n#endif\\n#ifdef OBJECTSPACE_NORMALMAP\\nclearCoatNormalW=normalize(clearCoatBumpMapData.xyz*2.0-1.0);\\nclearCoatNormalW=normalize(mat3(normalMatrix)*clearCoatNormalW);\\n#else\\nclearCoatNormalW=perturbNormal(TBNClearCoat,clearCoatBumpMapData.xyz,vClearCoatBumpInfos.y);\\n#endif\\n#endif\\n#if defined(FORCENORMALFORWARD) && defined(NORMAL)\\nclearCoatNormalW*=sign(dot(clearCoatNormalW,faceNormal));\\n#endif\\n#if defined(TWOSIDEDLIGHTING) && defined(NORMAL)\\nclearCoatNormalW=gl_FrontFacing ? clearCoatNormalW : -clearCoatNormalW;\\n#endif\\noutParams.clearCoatNormalW=clearCoatNormalW;\\n\\noutParams.clearCoatAARoughnessFactors=getAARoughnessFactors(clearCoatNormalW.xyz);\\n\\nfloat clearCoatNdotVUnclamped=dot(clearCoatNormalW,viewDirectionW);\\n\\nfloat clearCoatNdotV=absEps(clearCoatNdotVUnclamped);\\n#if DEBUGMODE>0\\noutParams.clearCoatNdotV=clearCoatNdotV;\\n#endif\\n#ifdef CLEARCOAT_TINT\\n\\nvec3 clearCoatVRefract=-refract(vPositionW,clearCoatNormalW,vClearCoatRefractionParams.y);\\n\\noutParams.clearCoatNdotVRefract=absEps(dot(clearCoatNormalW,clearCoatVRefract));\\n#endif\\n#if defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)\\n\\nvec3 environmentClearCoatBrdf=getBRDFLookup(clearCoatNdotV,clearCoatRoughness);\\n#endif\\n\\n#if defined(REFLECTION)\\nfloat clearCoatAlphaG=convertRoughnessToAverageSlope(clearCoatRoughness);\\n#ifdef SPECULARAA\\n\\nclearCoatAlphaG+=outParams.clearCoatAARoughnessFactors.y;\\n#endif\\nvec4 environmentClearCoatRadiance=vec4(0.,0.,0.,0.);\\nvec3 clearCoatReflectionVector=computeReflectionCoords(vec4(vPositionW,1.0),clearCoatNormalW);\\n#ifdef REFLECTIONMAP_OPPOSITEZ\\nclearCoatReflectionVector.z*=-1.0;\\n#endif\\n\\n#ifdef REFLECTIONMAP_3D\\nvec3 clearCoatReflectionCoords=clearCoatReflectionVector;\\n#else\\nvec2 clearCoatReflectionCoords=clearCoatReflectionVector.xy;\\n#ifdef REFLECTIONMAP_PROJECTION\\nclearCoatReflectionCoords/=clearCoatReflectionVector.z;\\n#endif\\nclearCoatReflectionCoords.y=1.0-clearCoatReflectionCoords.y;\\n#endif\\nsampleReflectionTexture(\\nclearCoatAlphaG,\\nvReflectionMicrosurfaceInfos,\\nvReflectionInfos,\\nvReflectionColor,\\n#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)\\nclearCoatNdotVUnclamped,\\n#endif\\n#ifdef LINEARSPECULARREFLECTION\\nclearCoatRoughness,\\n#endif\\nreflectionSampler,\\nclearCoatReflectionCoords,\\n#ifndef LODBASEDMICROSFURACE\\nreflectionSamplerLow,\\nreflectionSamplerHigh,\\n#endif\\n#ifdef REALTIME_FILTERING\\nvReflectionFilteringInfo,\\n#endif\\nenvironmentClearCoatRadiance\\n);\\n#if DEBUGMODE>0\\noutParams.environmentClearCoatRadiance=environmentClearCoatRadiance;\\n#endif\\n\\n#if defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)\\nvec3 clearCoatEnvironmentReflectance=getReflectanceFromBRDFLookup(vec3(vClearCoatRefractionParams.x),environmentClearCoatBrdf);\\n#ifdef RADIANCEOCCLUSION\\nfloat clearCoatSeo=environmentRadianceOcclusion(ambientMonochrome,clearCoatNdotVUnclamped);\\nclearCoatEnvironmentReflectance*=clearCoatSeo;\\n#endif\\n#ifdef HORIZONOCCLUSION\\n#ifdef BUMP\\n#ifdef REFLECTIONMAP_3D\\nfloat clearCoatEho=environmentHorizonOcclusion(-viewDirectionW,clearCoatNormalW,geometricNormalW);\\nclearCoatEnvironmentReflectance*=clearCoatEho;\\n#endif\\n#endif\\n#endif\\n#else\\n\\nvec3 clearCoatEnvironmentReflectance=getReflectanceFromAnalyticalBRDFLookup_Jones(clearCoatNdotV,vec3(1.),vec3(1.),sqrt(1.-clearCoatRoughness));\\n#endif\\nclearCoatEnvironmentReflectance*=clearCoatIntensity;\\n#if DEBUGMODE>0\\noutParams.clearCoatEnvironmentReflectance=clearCoatEnvironmentReflectance;\\n#endif\\noutParams.finalClearCoatRadianceScaled=\\nenvironmentClearCoatRadiance.rgb *\\nclearCoatEnvironmentReflectance *\\nvLightingIntensity.z;\\n#endif\\n#if defined(CLEARCOAT_TINT)\\n\\noutParams.absorption=computeClearCoatAbsorption(outParams.clearCoatNdotVRefract,outParams.clearCoatNdotVRefract,outParams.clearCoatColor,clearCoatThickness,clearCoatIntensity);\\n#endif\\n\\nfloat fresnelIBLClearCoat=fresnelSchlickGGX(clearCoatNdotV,vClearCoatRefractionParams.x,CLEARCOATREFLECTANCE90);\\nfresnelIBLClearCoat*=clearCoatIntensity;\\noutParams.conservationFactor=(1.-fresnelIBLClearCoat);\\n#if defined(ENVIRONMENTBRDF) && defined(MS_BRDF_ENERGY_CONSERVATION)\\noutParams.energyConservationFactorClearCoat=getEnergyConservationFactor(outParams.specularEnvironmentR0,environmentClearCoatBrdf);\\n#endif\\n}\\n#endif\\n\";ai.a.IncludesShadersStore.pbrBlockClearcoat=Qo;var qo=\"struct subSurfaceOutParams\\n{\\nvec3 specularEnvironmentReflectance;\\n#ifdef SS_REFRACTION\\nvec3 finalRefraction;\\nvec3 surfaceAlbedo;\\n#ifdef SS_LINKREFRACTIONTOTRANSPARENCY\\nfloat alpha;\\n#endif\\n#ifdef REFLECTION\\nfloat refractionFactorForIrradiance;\\n#endif\\n#endif\\n#ifdef SS_TRANSLUCENCY\\nvec3 transmittance;\\nfloat translucencyIntensity;\\n#ifdef REFLECTION\\nvec3 refractionIrradiance;\\n#endif\\n#endif\\n#if DEBUGMODE>0\\nvec4 thicknessMap;\\nvec4 environmentRefraction;\\nvec3 refractionTransmittance;\\n#endif\\n};\\n#ifdef SUBSURFACE\\n#define pbr_inline\\n#define inline\\nvoid subSurfaceBlock(\\nconst in vec3 vSubSurfaceIntensity,\\nconst in vec2 vThicknessParam,\\nconst in vec4 vTintColor,\\nconst in vec3 normalW,\\nconst in vec3 specularEnvironmentReflectance,\\n#ifdef SS_THICKNESSANDMASK_TEXTURE\\nconst in vec4 thicknessMap,\\n#endif\\n#ifdef REFLECTION\\n#ifdef SS_TRANSLUCENCY\\nconst in mat4 reflectionMatrix,\\n#ifdef USESPHERICALFROMREFLECTIONMAP\\n#if !defined(NORMAL) || !defined(USESPHERICALINVERTEX)\\nconst in vec3 irradianceVector_,\\n#endif\\n#if defined(REALTIME_FILTERING)\\nconst in samplerCube reflectionSampler,\\nconst in vec2 vReflectionFilteringInfo,\\n#endif\\n#endif\\n#ifdef USEIRRADIANCEMAP\\n#ifdef REFLECTIONMAP_3D\\nconst in samplerCube irradianceSampler,\\n#else\\nconst in sampler2D irradianceSampler,\\n#endif\\n#endif\\n#endif\\n#endif\\n#ifdef SS_REFRACTION\\nconst in vec3 vPositionW,\\nconst in vec3 viewDirectionW,\\nconst in mat4 view,\\nconst in vec3 surfaceAlbedo,\\nconst in vec4 vRefractionInfos,\\nconst in mat4 refractionMatrix,\\nconst in vec3 vRefractionMicrosurfaceInfos,\\nconst in vec4 vLightingIntensity,\\n#ifdef SS_LINKREFRACTIONTOTRANSPARENCY\\nconst in float alpha,\\n#endif\\n#ifdef SS_LODINREFRACTIONALPHA\\nconst in float NdotVUnclamped,\\n#endif\\n#ifdef SS_LINEARSPECULARREFRACTION\\nconst in float roughness,\\n#else\\nconst in float alphaG,\\n#endif\\n#ifdef SS_REFRACTIONMAP_3D\\nconst in samplerCube refractionSampler,\\n#ifndef LODBASEDMICROSFURACE\\nconst in samplerCube refractionSamplerLow,\\nconst in samplerCube refractionSamplerHigh,\\n#endif\\n#else\\nconst in sampler2D refractionSampler,\\n#ifndef LODBASEDMICROSFURACE\\nconst in sampler2D refractionSamplerLow,\\nconst in sampler2D refractionSamplerHigh,\\n#endif\\n#endif\\n#ifdef ANISOTROPIC\\nconst in anisotropicOutParams anisotropicOut,\\n#endif\\n#ifdef REALTIME_FILTERING\\nconst in vec2 vRefractionFilteringInfo,\\n#endif\\n#endif\\n#ifdef SS_TRANSLUCENCY\\nconst in vec3 vDiffusionDistance,\\n#endif\\nout subSurfaceOutParams outParams\\n)\\n{\\noutParams.specularEnvironmentReflectance=specularEnvironmentReflectance;\\n\\n\\n\\n#ifdef SS_REFRACTION\\nfloat refractionIntensity=vSubSurfaceIntensity.x;\\n#ifdef SS_LINKREFRACTIONTOTRANSPARENCY\\nrefractionIntensity*=(1.0-alpha);\\n\\noutParams.alpha=1.0;\\n#endif\\n#endif\\n#ifdef SS_TRANSLUCENCY\\nfloat translucencyIntensity=vSubSurfaceIntensity.y;\\n#endif\\n#ifdef SS_THICKNESSANDMASK_TEXTURE\\nfloat thickness=thicknessMap.r*vThicknessParam.y+vThicknessParam.x;\\n#if DEBUGMODE>0\\noutParams.thicknessMap=thicknessMap;\\n#endif\\n#ifdef SS_MASK_FROM_THICKNESS_TEXTURE\\n#ifdef SS_REFRACTION\\nrefractionIntensity*=thicknessMap.g;\\n#endif\\n#ifdef SS_TRANSLUCENCY\\ntranslucencyIntensity*=thicknessMap.b;\\n#endif\\n#elif defined(SS_MASK_FROM_THICKNESS_TEXTURE_GLTF)\\n#ifdef SS_REFRACTION\\nrefractionIntensity*=thicknessMap.r;\\n#elif defined(SS_TRANSLUCENCY)\\ntranslucencyIntensity*=thicknessMap.r;\\n#endif\\nthickness=thicknessMap.g*vThicknessParam.y+vThicknessParam.x;\\n#endif\\n#else\\nfloat thickness=vThicknessParam.y;\\n#endif\\n\\n\\n\\n#ifdef SS_TRANSLUCENCY\\nthickness=maxEps(thickness);\\nvec3 transmittance=transmittanceBRDF_Burley(vTintColor.rgb,vDiffusionDistance,thickness);\\ntransmittance*=translucencyIntensity;\\noutParams.transmittance=transmittance;\\noutParams.translucencyIntensity=translucencyIntensity;\\n#endif\\n\\n\\n\\n#ifdef SS_REFRACTION\\nvec4 environmentRefraction=vec4(0.,0.,0.,0.);\\n#ifdef ANISOTROPIC\\nvec3 refractionVector=refract(-viewDirectionW,anisotropicOut.anisotropicNormal,vRefractionInfos.y);\\n#else\\nvec3 refractionVector=refract(-viewDirectionW,normalW,vRefractionInfos.y);\\n#endif\\n#ifdef SS_REFRACTIONMAP_OPPOSITEZ\\nrefractionVector.z*=-1.0;\\n#endif\\n\\n#ifdef SS_REFRACTIONMAP_3D\\nrefractionVector.y=refractionVector.y*vRefractionInfos.w;\\nvec3 refractionCoords=refractionVector;\\nrefractionCoords=vec3(refractionMatrix*vec4(refractionCoords,0));\\n#else\\nvec3 vRefractionUVW=vec3(refractionMatrix*(view*vec4(vPositionW+refractionVector*vRefractionInfos.z,1.0)));\\nvec2 refractionCoords=vRefractionUVW.xy/vRefractionUVW.z;\\nrefractionCoords.y=1.0-refractionCoords.y;\\n#endif\\n#ifdef SS_LODINREFRACTIONALPHA\\nfloat refractionLOD=getLodFromAlphaG(vRefractionMicrosurfaceInfos.x,alphaG,NdotVUnclamped);\\n#elif defined(SS_LINEARSPECULARREFRACTION)\\nfloat refractionLOD=getLinearLodFromRoughness(vRefractionMicrosurfaceInfos.x,roughness);\\n#else\\nfloat refractionLOD=getLodFromAlphaG(vRefractionMicrosurfaceInfos.x,alphaG);\\n#endif\\n#ifdef LODBASEDMICROSFURACE\\n\\nrefractionLOD=refractionLOD*vRefractionMicrosurfaceInfos.y+vRefractionMicrosurfaceInfos.z;\\n#ifdef SS_LODINREFRACTIONALPHA\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nfloat automaticRefractionLOD=UNPACK_LOD(sampleRefraction(refractionSampler,refractionCoords).a);\\nfloat requestedRefractionLOD=max(automaticRefractionLOD,refractionLOD);\\n#else\\nfloat requestedRefractionLOD=refractionLOD;\\n#endif\\n#ifdef REALTIME_FILTERING\\nenvironmentRefraction=vec4(radiance(alphaG,refractionSampler,refractionCoords,vRefractionFilteringInfo),1.0);\\n#else\\nenvironmentRefraction=sampleRefractionLod(refractionSampler,refractionCoords,requestedRefractionLOD);\\n#endif\\n#else\\nfloat lodRefractionNormalized=saturate(refractionLOD/log2(vRefractionMicrosurfaceInfos.x));\\nfloat lodRefractionNormalizedDoubled=lodRefractionNormalized*2.0;\\nvec4 environmentRefractionMid=sampleRefraction(refractionSampler,refractionCoords);\\nif (lodRefractionNormalizedDoubled<1.0){\\nenvironmentRefraction=mix(\\nsampleRefraction(refractionSamplerHigh,refractionCoords),\\nenvironmentRefractionMid,\\nlodRefractionNormalizedDoubled\\n);\\n} else {\\nenvironmentRefraction=mix(\\nenvironmentRefractionMid,\\nsampleRefraction(refractionSamplerLow,refractionCoords),\\nlodRefractionNormalizedDoubled-1.0\\n);\\n}\\n#endif\\n#ifdef SS_RGBDREFRACTION\\nenvironmentRefraction.rgb=fromRGBD(environmentRefraction);\\n#endif\\n#ifdef SS_GAMMAREFRACTION\\nenvironmentRefraction.rgb=toLinearSpace(environmentRefraction.rgb);\\n#endif\\n\\nenvironmentRefraction.rgb*=vRefractionInfos.x;\\n#endif\\n\\n\\n\\n#ifdef SS_REFRACTION\\nvec3 refractionTransmittance=vec3(refractionIntensity);\\n#ifdef SS_THICKNESSANDMASK_TEXTURE\\nvec3 volumeAlbedo=computeColorAtDistanceInMedia(vTintColor.rgb,vTintColor.w);\\n\\n\\n\\n\\n\\nrefractionTransmittance*=cocaLambert(volumeAlbedo,thickness);\\n#elif defined(SS_LINKREFRACTIONTOTRANSPARENCY)\\n\\nfloat maxChannel=max(max(surfaceAlbedo.r,surfaceAlbedo.g),surfaceAlbedo.b);\\nvec3 volumeAlbedo=saturate(maxChannel*surfaceAlbedo);\\n\\nenvironmentRefraction.rgb*=volumeAlbedo;\\n#else\\n\\nvec3 volumeAlbedo=computeColorAtDistanceInMedia(vTintColor.rgb,vTintColor.w);\\nrefractionTransmittance*=cocaLambert(volumeAlbedo,vThicknessParam.y);\\n#endif\\n#ifdef SS_ALBEDOFORREFRACTIONTINT\\n\\nenvironmentRefraction.rgb*=surfaceAlbedo.rgb;\\n#endif\\n\\noutParams.surfaceAlbedo=surfaceAlbedo*(1.-refractionIntensity);\\n#ifdef REFLECTION\\n\\noutParams.refractionFactorForIrradiance=(1.-refractionIntensity);\\n\\n#endif\\n\\nvec3 bounceSpecularEnvironmentReflectance=(2.0*specularEnvironmentReflectance)/(1.0+specularEnvironmentReflectance);\\noutParams.specularEnvironmentReflectance=mix(bounceSpecularEnvironmentReflectance,specularEnvironmentReflectance,refractionIntensity);\\n\\nrefractionTransmittance*=1.0-outParams.specularEnvironmentReflectance;\\n#if DEBUGMODE>0\\noutParams.refractionTransmittance=refractionTransmittance;\\n#endif\\noutParams.finalRefraction=environmentRefraction.rgb*refractionTransmittance*vLightingIntensity.z;\\n#if DEBUGMODE>0\\noutParams.environmentRefraction=environmentRefraction;\\n#endif\\n#endif\\n\\n\\n\\n#if defined(REFLECTION) && defined(SS_TRANSLUCENCY)\\n#if defined(NORMAL) && defined(USESPHERICALINVERTEX) || !defined(USESPHERICALFROMREFLECTIONMAP)\\nvec3 irradianceVector=vec3(reflectionMatrix*vec4(normalW,0)).xyz;\\n#ifdef REFLECTIONMAP_OPPOSITEZ\\nirradianceVector.z*=-1.0;\\n#endif\\n#ifdef INVERTCUBICMAP\\nirradianceVector.y*=-1.0;\\n#endif\\n#else\\nvec3 irradianceVector=irradianceVector_;\\n#endif\\n#if defined(USESPHERICALFROMREFLECTIONMAP)\\n#if defined(REALTIME_FILTERING)\\nvec3 refractionIrradiance=irradiance(reflectionSampler,-irradianceVector,vReflectionFilteringInfo);\\n#else\\nvec3 refractionIrradiance=computeEnvironmentIrradiance(-irradianceVector);\\n#endif\\n#elif defined(USEIRRADIANCEMAP)\\n#ifdef REFLECTIONMAP_3D\\nvec3 irradianceCoords=irradianceVector;\\n#else\\nvec2 irradianceCoords=irradianceVector.xy;\\n#ifdef REFLECTIONMAP_PROJECTION\\nirradianceCoords/=irradianceVector.z;\\n#endif\\nirradianceCoords.y=1.0-irradianceCoords.y;\\n#endif\\nvec4 refractionIrradiance=sampleReflection(irradianceSampler,-irradianceCoords);\\n#ifdef RGBDREFLECTION\\nrefractionIrradiance.rgb=fromRGBD(refractionIrradiance);\\n#endif\\n#ifdef GAMMAREFLECTION\\nrefractionIrradiance.rgb=toLinearSpace(refractionIrradiance.rgb);\\n#endif\\n#else\\nvec4 refractionIrradiance=vec4(0.);\\n#endif\\nrefractionIrradiance.rgb*=transmittance;\\noutParams.refractionIrradiance=refractionIrradiance.rgb;\\n#endif\\n}\\n#endif\\n\";ai.a.IncludesShadersStore.pbrBlockSubSurface=qo;var Zo=\"vec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);\\n#ifdef NORMAL\\nvec3 normalW=normalize(vNormalW);\\n#else\\nvec3 normalW=normalize(cross(dFdx(vPositionW),dFdy(vPositionW)))*vEyePosition.w;\\n#endif\\nvec3 geometricNormalW=normalW;\\n#if defined(TWOSIDEDLIGHTING) && defined(NORMAL)\\ngeometricNormalW=gl_FrontFacing ? geometricNormalW : -geometricNormalW;\\n#endif\\n\";ai.a.IncludesShadersStore.pbrBlockNormalGeometric=Zo;i(134);var Jo=\"#if defined(FORCENORMALFORWARD) && defined(NORMAL)\\nvec3 faceNormal=normalize(cross(dFdx(vPositionW),dFdy(vPositionW)))*vEyePosition.w;\\n#if defined(TWOSIDEDLIGHTING)\\nfaceNormal=gl_FrontFacing ? faceNormal : -faceNormal;\\n#endif\\nnormalW*=sign(dot(normalW,faceNormal));\\n#endif\\n#if defined(TWOSIDEDLIGHTING) && defined(NORMAL)\\nnormalW=gl_FrontFacing ? normalW : -normalW;\\n#endif\\n\";ai.a.IncludesShadersStore.pbrBlockNormalFinal=Jo;i(162);var $o=\"#ifdef LIGHTMAP\\nvec4 lightmapColor=texture2D(lightmapSampler,vLightmapUV+uvOffset);\\n#ifdef RGBDLIGHTMAP\\nlightmapColor.rgb=fromRGBD(lightmapColor);\\n#endif\\n#ifdef GAMMALIGHTMAP\\nlightmapColor.rgb=toLinearSpace(lightmapColor.rgb);\\n#endif\\nlightmapColor.rgb*=vLightmapInfos.y;\\n#endif\\n\";ai.a.IncludesShadersStore.pbrBlockLightmapInit=$o;var ea=\"float NdotVUnclamped=dot(normalW,viewDirectionW);\\n\\nfloat NdotV=absEps(NdotVUnclamped);\\nfloat alphaG=convertRoughnessToAverageSlope(roughness);\\nvec2 AARoughnessFactors=getAARoughnessFactors(normalW.xyz);\\n#ifdef SPECULARAA\\n\\nalphaG+=AARoughnessFactors.y;\\n#endif\\n#if defined(ENVIRONMENTBRDF)\\n\\nvec3 environmentBrdf=getBRDFLookup(NdotV,roughness);\\n#endif\\n#if defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)\\n#ifdef RADIANCEOCCLUSION\\n#ifdef AMBIENTINGRAYSCALE\\nfloat ambientMonochrome=aoOut.ambientOcclusionColor.r;\\n#else\\nfloat ambientMonochrome=getLuminance(aoOut.ambientOcclusionColor);\\n#endif\\nfloat seo=environmentRadianceOcclusion(ambientMonochrome,NdotVUnclamped);\\n#endif\\n#ifdef HORIZONOCCLUSION\\n#ifdef BUMP\\n#ifdef REFLECTIONMAP_3D\\nfloat eho=environmentHorizonOcclusion(-viewDirectionW,normalW,geometricNormalW);\\n#endif\\n#endif\\n#endif\\n#endif\\n\";ai.a.IncludesShadersStore.pbrBlockGeometryInfo=ea;var ta=\"float reflectance=max(max(reflectivityOut.surfaceReflectivityColor.r,reflectivityOut.surfaceReflectivityColor.g),reflectivityOut.surfaceReflectivityColor.b);\\nvec3 specularEnvironmentR0=reflectivityOut.surfaceReflectivityColor.rgb;\\n#ifdef METALLICWORKFLOW\\nvec3 specularEnvironmentR90=vec3(metallicReflectanceFactors.a);\\n#else\\nvec3 specularEnvironmentR90=vec3(1.0,1.0,1.0);\\n#endif\\n\\n#ifdef ALPHAFRESNEL\\nfloat reflectance90=fresnelGrazingReflectance(reflectance);\\nspecularEnvironmentR90=specularEnvironmentR90*reflectance90;\\n#endif\\n\";ai.a.IncludesShadersStore.pbrBlockReflectance0=ta;var ia=\"#if defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)\\nvec3 specularEnvironmentReflectance=getReflectanceFromBRDFLookup(clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,environmentBrdf);\\n#ifdef RADIANCEOCCLUSION\\nspecularEnvironmentReflectance*=seo;\\n#endif\\n#ifdef HORIZONOCCLUSION\\n#ifdef BUMP\\n#ifdef REFLECTIONMAP_3D\\nspecularEnvironmentReflectance*=eho;\\n#endif\\n#endif\\n#endif\\n#else\\n\\nvec3 specularEnvironmentReflectance=getReflectanceFromAnalyticalBRDFLookup_Jones(NdotV,clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,sqrt(microSurface));\\n#endif\\n#ifdef CLEARCOAT\\nspecularEnvironmentReflectance*=clearcoatOut.conservationFactor;\\n#if defined(CLEARCOAT_TINT)\\nspecularEnvironmentReflectance*=clearcoatOut.absorption;\\n#endif\\n#endif\\n\";ai.a.IncludesShadersStore.pbrBlockReflectance=ia;var na=\"vec3 diffuseBase=vec3(0.,0.,0.);\\n#ifdef SPECULARTERM\\nvec3 specularBase=vec3(0.,0.,0.);\\n#endif\\n#ifdef CLEARCOAT\\nvec3 clearCoatBase=vec3(0.,0.,0.);\\n#endif\\n#ifdef SHEEN\\nvec3 sheenBase=vec3(0.,0.,0.);\\n#endif\\n\\npreLightingInfo preInfo;\\nlightingInfo info;\\nfloat shadow=1.;\\n#if defined(CLEARCOAT) && defined(CLEARCOAT_TINT)\\nvec3 absorption=vec3(0.);\\n#endif\\n\";ai.a.IncludesShadersStore.pbrBlockDirectLighting=na;var ra=\"\\n\\n\\n\\n#if defined(ENVIRONMENTBRDF)\\n#ifdef MS_BRDF_ENERGY_CONSERVATION\\nvec3 energyConservationFactor=getEnergyConservationFactor(clearcoatOut.specularEnvironmentR0,environmentBrdf);\\n#endif\\n#endif\\n#ifndef METALLICWORKFLOW\\n#ifdef SPECULAR_GLOSSINESS_ENERGY_CONSERVATION\\nsurfaceAlbedo.rgb=(1.-reflectance)*surfaceAlbedo.rgb;\\n#endif\\n#endif\\n#if defined(SHEEN) && defined(SHEEN_ALBEDOSCALING) && defined(ENVIRONMENTBRDF)\\nsurfaceAlbedo.rgb=sheenOut.sheenAlbedoScaling*surfaceAlbedo.rgb;\\n#endif\\n\\n#ifdef REFLECTION\\nvec3 finalIrradiance=reflectionOut.environmentIrradiance;\\n#if defined(CLEARCOAT)\\nfinalIrradiance*=clearcoatOut.conservationFactor;\\n#if defined(CLEARCOAT_TINT)\\nfinalIrradiance*=clearcoatOut.absorption;\\n#endif\\n#endif\\n#if defined(SS_REFRACTION)\\nfinalIrradiance*=subSurfaceOut.refractionFactorForIrradiance;\\n#endif\\n#if defined(SS_TRANSLUCENCY)\\nfinalIrradiance*=(1.0-subSurfaceOut.translucencyIntensity);\\nfinalIrradiance+=subSurfaceOut.refractionIrradiance;\\n#endif\\nfinalIrradiance*=surfaceAlbedo.rgb;\\nfinalIrradiance*=vLightingIntensity.z;\\nfinalIrradiance*=aoOut.ambientOcclusionColor;\\n#endif\\n\\n#ifdef SPECULARTERM\\nvec3 finalSpecular=specularBase;\\nfinalSpecular=max(finalSpecular,0.0);\\nvec3 finalSpecularScaled=finalSpecular*vLightingIntensity.x*vLightingIntensity.w;\\n#if defined(ENVIRONMENTBRDF) && defined(MS_BRDF_ENERGY_CONSERVATION)\\nfinalSpecularScaled*=energyConservationFactor;\\n#endif\\n#if defined(SHEEN) && defined(ENVIRONMENTBRDF) && defined(SHEEN_ALBEDOSCALING)\\nfinalSpecularScaled*=sheenOut.sheenAlbedoScaling;\\n#endif\\n#endif\\n\\n#ifdef REFLECTION\\nvec3 finalRadiance=reflectionOut.environmentRadiance.rgb;\\nfinalRadiance*=subSurfaceOut.specularEnvironmentReflectance;\\nvec3 finalRadianceScaled=finalRadiance*vLightingIntensity.z;\\n#if defined(ENVIRONMENTBRDF) && defined(MS_BRDF_ENERGY_CONSERVATION)\\nfinalRadianceScaled*=energyConservationFactor;\\n#endif\\n#if defined(SHEEN) && defined(ENVIRONMENTBRDF) && defined(SHEEN_ALBEDOSCALING)\\nfinalRadianceScaled*=sheenOut.sheenAlbedoScaling;\\n#endif\\n#endif\\n\\n#ifdef SHEEN\\nvec3 finalSheen=sheenBase*sheenOut.sheenColor;\\nfinalSheen=max(finalSheen,0.0);\\nvec3 finalSheenScaled=finalSheen*vLightingIntensity.x*vLightingIntensity.w;\\n#if defined(CLEARCOAT) && defined(REFLECTION) && defined(ENVIRONMENTBRDF)\\nsheenOut.finalSheenRadianceScaled*=clearcoatOut.conservationFactor;\\n#if defined(CLEARCOAT_TINT)\\nsheenOut.finalSheenRadianceScaled*=clearcoatOut.absorption;\\n#endif\\n#endif\\n#endif\\n\\n#ifdef CLEARCOAT\\nvec3 finalClearCoat=clearCoatBase;\\nfinalClearCoat=max(finalClearCoat,0.0);\\nvec3 finalClearCoatScaled=finalClearCoat*vLightingIntensity.x*vLightingIntensity.w;\\n#if defined(ENVIRONMENTBRDF) && defined(MS_BRDF_ENERGY_CONSERVATION)\\nfinalClearCoatScaled*=clearcoatOut.energyConservationFactorClearCoat;\\n#endif\\n#ifdef SS_REFRACTION\\nsubSurfaceOut.finalRefraction*=clearcoatOut.conservationFactor;\\n#ifdef CLEARCOAT_TINT\\nsubSurfaceOut.finalRefraction*=clearcoatOut.absorption;\\n#endif\\n#endif\\n#endif\\n\\n#ifdef ALPHABLEND\\nfloat luminanceOverAlpha=0.0;\\n#if defined(REFLECTION) && defined(RADIANCEOVERALPHA)\\nluminanceOverAlpha+=getLuminance(finalRadianceScaled);\\n#if defined(CLEARCOAT)\\nluminanceOverAlpha+=getLuminance(clearcoatOut.finalClearCoatRadianceScaled);\\n#endif\\n#endif\\n#if defined(SPECULARTERM) && defined(SPECULAROVERALPHA)\\nluminanceOverAlpha+=getLuminance(finalSpecularScaled);\\n#endif\\n#if defined(CLEARCOAT) && defined(CLEARCOATOVERALPHA)\\nluminanceOverAlpha+=getLuminance(finalClearCoatScaled);\\n#endif\\n#if defined(RADIANCEOVERALPHA) || defined(SPECULAROVERALPHA) || defined(CLEARCOATOVERALPHA)\\nalpha=saturate(alpha+luminanceOverAlpha*luminanceOverAlpha);\\n#endif\\n#endif\\n\";ai.a.IncludesShadersStore.pbrBlockFinalLitComponents=ra;var oa=\"\\nvec3 finalDiffuse=diffuseBase;\\nfinalDiffuse*=surfaceAlbedo.rgb;\\nfinalDiffuse=max(finalDiffuse,0.0);\\nfinalDiffuse*=vLightingIntensity.x;\\n\\nvec3 finalAmbient=vAmbientColor;\\nfinalAmbient*=surfaceAlbedo.rgb;\\n\\nvec3 finalEmissive=vEmissiveColor;\\n#ifdef EMISSIVE\\nvec3 emissiveColorTex=texture2D(emissiveSampler,vEmissiveUV+uvOffset).rgb;\\nfinalEmissive*=toLinearSpace(emissiveColorTex.rgb);\\nfinalEmissive*=vEmissiveInfos.y;\\n#endif\\nfinalEmissive*=vLightingIntensity.y;\\n\\n#ifdef AMBIENT\\nvec3 ambientOcclusionForDirectDiffuse=mix(vec3(1.),aoOut.ambientOcclusionColor,vAmbientInfos.w);\\n#else\\nvec3 ambientOcclusionForDirectDiffuse=aoOut.ambientOcclusionColor;\\n#endif\\nfinalAmbient*=aoOut.ambientOcclusionColor;\\nfinalDiffuse*=ambientOcclusionForDirectDiffuse;\\n\";ai.a.IncludesShadersStore.pbrBlockFinalUnlitComponents=oa;var aa=\"vec4 finalColor=vec4(\\nfinalAmbient +\\nfinalDiffuse +\\n#ifndef UNLIT\\n#ifdef REFLECTION\\nfinalIrradiance +\\n#endif\\n#ifdef SPECULARTERM\\nfinalSpecularScaled +\\n#endif\\n#ifdef SHEEN\\nfinalSheenScaled +\\n#endif\\n#ifdef CLEARCOAT\\nfinalClearCoatScaled +\\n#endif\\n#ifdef REFLECTION\\nfinalRadianceScaled +\\n#if defined(SHEEN) && defined(ENVIRONMENTBRDF)\\nsheenOut.finalSheenRadianceScaled +\\n#endif\\n#ifdef CLEARCOAT\\nclearcoatOut.finalClearCoatRadianceScaled +\\n#endif\\n#endif\\n#ifdef SS_REFRACTION\\nsubSurfaceOut.finalRefraction +\\n#endif\\n#endif\\nfinalEmissive,\\nalpha);\\n\\n#ifdef LIGHTMAP\\n#ifndef LIGHTMAPEXCLUDED\\n#ifdef USELIGHTMAPASSHADOWMAP\\nfinalColor.rgb*=lightmapColor.rgb;\\n#else\\nfinalColor.rgb+=lightmapColor.rgb;\\n#endif\\n#endif\\n#endif\\n#define CUSTOM_FRAGMENT_BEFORE_FOG\\n\\nfinalColor=max(finalColor,0.0);\\n\";ai.a.IncludesShadersStore.pbrBlockFinalColorComposition=aa;i(155);var sa=\"#ifdef IMAGEPROCESSINGPOSTPROCESS\\n\\n\\nfinalColor.rgb=clamp(finalColor.rgb,0.,30.0);\\n#else\\n\\nfinalColor=applyImageProcessing(finalColor);\\n#endif\\nfinalColor.a*=visibility;\\n#ifdef PREMULTIPLYALPHA\\n\\nfinalColor.rgb*=finalColor.a;\\n#endif\\n\";ai.a.IncludesShadersStore.pbrBlockImageProcessing=sa;var ca=\"#if DEBUGMODE>0\\nif (vClipSpacePosition.x/vClipSpacePosition.w>=vDebugMode.x) {\\n\\n#if DEBUGMODE == 1\\ngl_FragColor.rgb=vPositionW.rgb;\\n#define DEBUGMODE_NORMALIZE\\n#elif DEBUGMODE == 2 && defined(NORMAL)\\ngl_FragColor.rgb=vNormalW.rgb;\\n#define DEBUGMODE_NORMALIZE\\n#elif DEBUGMODE == 3 && defined(BUMP) || DEBUGMODE == 3 && defined(PARALLAX) || DEBUGMODE == 3 && defined(ANISOTROPIC)\\n\\ngl_FragColor.rgb=TBN[0];\\n#define DEBUGMODE_NORMALIZE\\n#elif DEBUGMODE == 4 && defined(BUMP) || DEBUGMODE == 4 && defined(PARALLAX) || DEBUGMODE == 4 && defined(ANISOTROPIC)\\n\\ngl_FragColor.rgb=TBN[1];\\n#define DEBUGMODE_NORMALIZE\\n#elif DEBUGMODE == 5\\n\\ngl_FragColor.rgb=normalW;\\n#define DEBUGMODE_NORMALIZE\\n#elif DEBUGMODE == 6 && defined(MAINUV1)\\ngl_FragColor.rgb=vec3(vMainUV1,0.0);\\n#elif DEBUGMODE == 7 && defined(MAINUV2)\\ngl_FragColor.rgb=vec3(vMainUV2,0.0);\\n#elif DEBUGMODE == 8 && defined(CLEARCOAT) && defined(CLEARCOAT_BUMP)\\n\\ngl_FragColor.rgb=clearcoatOut.TBNClearCoat[0];\\n#define DEBUGMODE_NORMALIZE\\n#elif DEBUGMODE == 9 && defined(CLEARCOAT) && defined(CLEARCOAT_BUMP)\\n\\ngl_FragColor.rgb=clearcoatOut.TBNClearCoat[1];\\n#define DEBUGMODE_NORMALIZE\\n#elif DEBUGMODE == 10 && defined(CLEARCOAT)\\n\\ngl_FragColor.rgb=clearcoatOut.clearCoatNormalW;\\n#define DEBUGMODE_NORMALIZE\\n#elif DEBUGMODE == 11 && defined(ANISOTROPIC)\\ngl_FragColor.rgb=anisotropicOut.anisotropicNormal;\\n#define DEBUGMODE_NORMALIZE\\n#elif DEBUGMODE == 12 && defined(ANISOTROPIC)\\ngl_FragColor.rgb=anisotropicOut.anisotropicTangent;\\n#define DEBUGMODE_NORMALIZE\\n#elif DEBUGMODE == 13 && defined(ANISOTROPIC)\\ngl_FragColor.rgb=anisotropicOut.anisotropicBitangent;\\n#define DEBUGMODE_NORMALIZE\\n\\n#elif DEBUGMODE == 20 && defined(ALBEDO)\\ngl_FragColor.rgb=albedoTexture.rgb;\\n#elif DEBUGMODE == 21 && defined(AMBIENT)\\ngl_FragColor.rgb=aoOut.ambientOcclusionColorMap.rgb;\\n#elif DEBUGMODE == 22 && defined(OPACITY)\\ngl_FragColor.rgb=opacityMap.rgb;\\n#elif DEBUGMODE == 23 && defined(EMISSIVE)\\ngl_FragColor.rgb=emissiveColorTex.rgb;\\n#define DEBUGMODE_GAMMA\\n#elif DEBUGMODE == 24 && defined(LIGHTMAP)\\ngl_FragColor.rgb=lightmapColor.rgb;\\n#define DEBUGMODE_GAMMA\\n#elif DEBUGMODE == 25 && defined(REFLECTIVITY) && defined(METALLICWORKFLOW)\\ngl_FragColor.rgb=reflectivityOut.surfaceMetallicColorMap.rgb;\\n#elif DEBUGMODE == 26 && defined(REFLECTIVITY) && !defined(METALLICWORKFLOW)\\ngl_FragColor.rgb=reflectivityOut.surfaceReflectivityColorMap.rgb;\\n#define DEBUGMODE_GAMMA\\n#elif DEBUGMODE == 27 && defined(CLEARCOAT) && defined(CLEARCOAT_TEXTURE)\\ngl_FragColor.rgb=vec3(clearcoatOut.clearCoatMapData.rg,0.0);\\n#elif DEBUGMODE == 28 && defined(CLEARCOAT) && defined(CLEARCOAT_TINT) && defined(CLEARCOAT_TINT_TEXTURE)\\ngl_FragColor.rgb=clearcoatOut.clearCoatTintMapData.rgb;\\n#elif DEBUGMODE == 29 && defined(SHEEN) && defined(SHEEN_TEXTURE)\\ngl_FragColor.rgb=sheenOut.sheenMapData.rgb;\\n#elif DEBUGMODE == 30 && defined(ANISOTROPIC) && defined(ANISOTROPIC_TEXTURE)\\ngl_FragColor.rgb=anisotropicOut.anisotropyMapData.rgb;\\n#elif DEBUGMODE == 31 && defined(SUBSURFACE) && defined(SS_THICKNESSANDMASK_TEXTURE)\\ngl_FragColor.rgb=subSurfaceOut.thicknessMap.rgb;\\n\\n#elif DEBUGMODE == 40 && defined(SS_REFRACTION)\\n\\ngl_FragColor.rgb=subSurfaceOut.environmentRefraction.rgb;\\n#define DEBUGMODE_GAMMA\\n#elif DEBUGMODE == 41 && defined(REFLECTION)\\ngl_FragColor.rgb=reflectionOut.environmentRadiance.rgb;\\n#define DEBUGMODE_GAMMA\\n#elif DEBUGMODE == 42 && defined(CLEARCOAT) && defined(REFLECTION)\\ngl_FragColor.rgb=clearcoatOut.environmentClearCoatRadiance.rgb;\\n#define DEBUGMODE_GAMMA\\n\\n#elif DEBUGMODE == 50\\ngl_FragColor.rgb=diffuseBase.rgb;\\n#define DEBUGMODE_GAMMA\\n#elif DEBUGMODE == 51 && defined(SPECULARTERM)\\ngl_FragColor.rgb=specularBase.rgb;\\n#define DEBUGMODE_GAMMA\\n#elif DEBUGMODE == 52 && defined(CLEARCOAT)\\ngl_FragColor.rgb=clearCoatBase.rgb;\\n#define DEBUGMODE_GAMMA\\n#elif DEBUGMODE == 53 && defined(SHEEN)\\ngl_FragColor.rgb=sheenBase.rgb;\\n#define DEBUGMODE_GAMMA\\n#elif DEBUGMODE == 54 && defined(REFLECTION)\\ngl_FragColor.rgb=reflectionOut.environmentIrradiance.rgb;\\n#define DEBUGMODE_GAMMA\\n\\n#elif DEBUGMODE == 60\\ngl_FragColor.rgb=surfaceAlbedo.rgb;\\n#define DEBUGMODE_GAMMA\\n#elif DEBUGMODE == 61\\ngl_FragColor.rgb=clearcoatOut.specularEnvironmentR0;\\n#define DEBUGMODE_GAMMA\\n#elif DEBUGMODE == 62 && defined(METALLICWORKFLOW)\\ngl_FragColor.rgb=vec3(reflectivityOut.metallicRoughness.r);\\n#elif DEBUGMODE == 71 && defined(METALLICWORKFLOW)\\ngl_FragColor.rgb=reflectivityOut.metallicF0;\\n#elif DEBUGMODE == 63\\ngl_FragColor.rgb=vec3(roughness);\\n#elif DEBUGMODE == 64\\ngl_FragColor.rgb=vec3(alphaG);\\n#elif DEBUGMODE == 65\\ngl_FragColor.rgb=vec3(NdotV);\\n#elif DEBUGMODE == 66 && defined(CLEARCOAT) && defined(CLEARCOAT_TINT)\\ngl_FragColor.rgb=clearcoatOut.clearCoatColor.rgb;\\n#define DEBUGMODE_GAMMA\\n#elif DEBUGMODE == 67 && defined(CLEARCOAT)\\ngl_FragColor.rgb=vec3(clearcoatOut.clearCoatRoughness);\\n#elif DEBUGMODE == 68 && defined(CLEARCOAT)\\ngl_FragColor.rgb=vec3(clearcoatOut.clearCoatNdotV);\\n#elif DEBUGMODE == 69 && defined(SUBSURFACE) && defined(SS_TRANSLUCENCY)\\ngl_FragColor.rgb=subSurfaceOut.transmittance;\\n#elif DEBUGMODE == 70 && defined(SUBSURFACE) && defined(SS_REFRACTION)\\ngl_FragColor.rgb=subSurfaceOut.refractionTransmittance;\\n\\n#elif DEBUGMODE == 80 && defined(RADIANCEOCCLUSION)\\ngl_FragColor.rgb=vec3(seo);\\n#elif DEBUGMODE == 81 && defined(HORIZONOCCLUSION)\\ngl_FragColor.rgb=vec3(eho);\\n#elif DEBUGMODE == 82 && defined(MS_BRDF_ENERGY_CONSERVATION)\\ngl_FragColor.rgb=vec3(energyConservationFactor);\\n#elif DEBUGMODE == 83 && defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)\\ngl_FragColor.rgb=specularEnvironmentReflectance;\\n#define DEBUGMODE_GAMMA\\n#elif DEBUGMODE == 84 && defined(CLEARCOAT) && defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)\\ngl_FragColor.rgb=clearcoatOut.clearCoatEnvironmentReflectance;\\n#define DEBUGMODE_GAMMA\\n#elif DEBUGMODE == 85 && defined(SHEEN) && defined(REFLECTION)\\ngl_FragColor.rgb=sheenOut.sheenEnvironmentReflectance;\\n#define DEBUGMODE_GAMMA\\n#elif DEBUGMODE == 86 && defined(ALPHABLEND)\\ngl_FragColor.rgb=vec3(luminanceOverAlpha);\\n#elif DEBUGMODE == 87\\ngl_FragColor.rgb=vec3(alpha);\\n#endif\\ngl_FragColor.rgb*=vDebugMode.y;\\n#ifdef DEBUGMODE_NORMALIZE\\ngl_FragColor.rgb=normalize(gl_FragColor.rgb)*0.5+0.5;\\n#endif\\n#ifdef DEBUGMODE_GAMMA\\ngl_FragColor.rgb=toGammaSpace(gl_FragColor.rgb);\\n#endif\\ngl_FragColor.a=1.0;\\n#ifdef PREPASS\\ngl_FragData[0]=toLinearSpace(gl_FragColor);\\ngl_FragData[1]=vec4(0.,0.,0.,0.);\\n#endif\\nreturn;\\n}\\n#endif\";ai.a.IncludesShadersStore.pbrDebug=ca;var la=\"#if defined(BUMP) || !defined(NORMAL) || defined(FORCENORMALFORWARD) || defined(SPECULARAA) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC)\\n#extension GL_OES_standard_derivatives : enable\\n#endif\\n#ifdef LODBASEDMICROSFURACE\\n#extension GL_EXT_shader_texture_lod : enable\\n#endif\\n#define CUSTOM_FRAGMENT_BEGIN\\n#ifdef LOGARITHMICDEPTH\\n#extension GL_EXT_frag_depth : enable\\n#endif\\n#include[SCENE_MRT_COUNT]\\nprecision highp float;\\n\\n#ifndef FROMLINEARSPACE\\n#define FROMLINEARSPACE\\n#endif\\n\\n#include<__decl__pbrFragment>\\n#include\\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\\n#include\\n#include\\n#include\\n#include\\n#include\\n\\n#include\\n#include\\n#include\\n#include\\n#include\\n#include\\n#include\\n#include\\n#include\\n#include\\n#include\\n#include\\n#include\\n#include\\n#include\\n#ifdef REFLECTION\\n#include\\n#endif\\n#define CUSTOM_FRAGMENT_DEFINITIONS\\n#include\\n#include\\n#include\\n#include\\n#include\\n#include\\n#include\\n#include\\n#include\\n\\nvoid main(void) {\\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\\n#include\\n\\n#include\\n#include\\n#include\\n\\nalbedoOpacityOutParams albedoOpacityOut;\\n#ifdef ALBEDO\\nvec4 albedoTexture=texture2D(albedoSampler,vAlbedoUV+uvOffset);\\n#endif\\n#ifdef OPACITY\\nvec4 opacityMap=texture2D(opacitySampler,vOpacityUV+uvOffset);\\n#endif\\nalbedoOpacityBlock(\\nvAlbedoColor,\\n#ifdef ALBEDO\\nalbedoTexture,\\nvAlbedoInfos,\\n#endif\\n#ifdef OPACITY\\nopacityMap,\\nvOpacityInfos,\\n#endif\\n#ifdef DETAIL\\ndetailColor,\\nvDetailInfos,\\n#endif\\nalbedoOpacityOut\\n);\\nvec3 surfaceAlbedo=albedoOpacityOut.surfaceAlbedo;\\nfloat alpha=albedoOpacityOut.alpha;\\n#define CUSTOM_FRAGMENT_UPDATE_ALPHA\\n#include\\n#define CUSTOM_FRAGMENT_BEFORE_LIGHTS\\n\\nambientOcclusionOutParams aoOut;\\n#ifdef AMBIENT\\nvec3 ambientOcclusionColorMap=texture2D(ambientSampler,vAmbientUV+uvOffset).rgb;\\n#endif\\nambientOcclusionBlock(\\n#ifdef AMBIENT\\nambientOcclusionColorMap,\\nvAmbientInfos,\\n#endif\\naoOut\\n);\\n#include\\n#ifdef UNLIT\\nvec3 diffuseBase=vec3(1.,1.,1.);\\n#else\\n\\nvec3 baseColor=surfaceAlbedo;\\nreflectivityOutParams reflectivityOut;\\n#if defined(REFLECTIVITY)\\nvec4 surfaceMetallicOrReflectivityColorMap=texture2D(reflectivitySampler,vReflectivityUV+uvOffset);\\nvec4 baseReflectivity=surfaceMetallicOrReflectivityColorMap;\\n#ifndef METALLICWORKFLOW\\nsurfaceMetallicOrReflectivityColorMap=toLinearSpace(surfaceMetallicOrReflectivityColorMap);\\nsurfaceMetallicOrReflectivityColorMap.rgb*=vReflectivityInfos.y;\\n#endif\\n#endif\\n#if defined(MICROSURFACEMAP)\\nvec4 microSurfaceTexel=texture2D(microSurfaceSampler,vMicroSurfaceSamplerUV+uvOffset)*vMicroSurfaceSamplerInfos.y;\\n#endif\\n#ifdef METALLICWORKFLOW\\nvec4 metallicReflectanceFactors=vMetallicReflectanceFactors;\\n#ifdef METALLIC_REFLECTANCE\\nvec4 metallicReflectanceFactorsMap=texture2D(metallicReflectanceSampler,vMetallicReflectanceUV+uvOffset);\\nmetallicReflectanceFactorsMap=toLinearSpace(metallicReflectanceFactorsMap);\\nmetallicReflectanceFactors*=metallicReflectanceFactorsMap;\\n#endif\\n#endif\\nreflectivityBlock(\\nvReflectivityColor,\\n#ifdef METALLICWORKFLOW\\nsurfaceAlbedo,\\nmetallicReflectanceFactors,\\n#endif\\n#ifdef REFLECTIVITY\\nvReflectivityInfos,\\nsurfaceMetallicOrReflectivityColorMap,\\n#endif\\n#if defined(METALLICWORKFLOW) && defined(REFLECTIVITY) && defined(AOSTOREINMETALMAPRED)\\naoOut.ambientOcclusionColor,\\n#endif\\n#ifdef MICROSURFACEMAP\\nmicroSurfaceTexel,\\n#endif\\n#ifdef DETAIL\\ndetailColor,\\nvDetailInfos,\\n#endif\\nreflectivityOut\\n);\\nfloat microSurface=reflectivityOut.microSurface;\\nfloat roughness=reflectivityOut.roughness;\\n#ifdef METALLICWORKFLOW\\nsurfaceAlbedo=reflectivityOut.surfaceAlbedo;\\n#endif\\n#if defined(METALLICWORKFLOW) && defined(REFLECTIVITY) && defined(AOSTOREINMETALMAPRED)\\naoOut.ambientOcclusionColor=reflectivityOut.ambientOcclusionColor;\\n#endif\\n\\n#ifdef ALPHAFRESNEL\\n#if defined(ALPHATEST) || defined(ALPHABLEND)\\nalphaFresnelOutParams alphaFresnelOut;\\nalphaFresnelBlock(\\nnormalW,\\nviewDirectionW,\\nalpha,\\nmicroSurface,\\nalphaFresnelOut\\n);\\nalpha=alphaFresnelOut.alpha;\\n#endif\\n#endif\\n\\n#include\\n\\n#ifdef ANISOTROPIC\\nanisotropicOutParams anisotropicOut;\\n#ifdef ANISOTROPIC_TEXTURE\\nvec3 anisotropyMapData=texture2D(anisotropySampler,vAnisotropyUV+uvOffset).rgb*vAnisotropyInfos.y;\\n#endif\\nanisotropicBlock(\\nvAnisotropy,\\n#ifdef ANISOTROPIC_TEXTURE\\nanisotropyMapData,\\n#endif\\nTBN,\\nnormalW,\\nviewDirectionW,\\nanisotropicOut\\n);\\n#endif\\n\\n#ifdef REFLECTION\\nreflectionOutParams reflectionOut;\\nreflectionBlock(\\nvPositionW,\\nnormalW,\\nalphaG,\\nvReflectionMicrosurfaceInfos,\\nvReflectionInfos,\\nvReflectionColor,\\n#ifdef ANISOTROPIC\\nanisotropicOut,\\n#endif\\n#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)\\nNdotVUnclamped,\\n#endif\\n#ifdef LINEARSPECULARREFLECTION\\nroughness,\\n#endif\\nreflectionSampler,\\n#if defined(NORMAL) && defined(USESPHERICALINVERTEX)\\nvEnvironmentIrradiance,\\n#endif\\n#ifdef USESPHERICALFROMREFLECTIONMAP\\n#if !defined(NORMAL) || !defined(USESPHERICALINVERTEX)\\nreflectionMatrix,\\n#endif\\n#endif\\n#ifdef USEIRRADIANCEMAP\\nirradianceSampler,\\n#endif\\n#ifndef LODBASEDMICROSFURACE\\nreflectionSamplerLow,\\nreflectionSamplerHigh,\\n#endif\\n#ifdef REALTIME_FILTERING\\nvReflectionFilteringInfo,\\n#endif\\nreflectionOut\\n);\\n#endif\\n\\n#include\\n\\n#ifdef SHEEN\\nsheenOutParams sheenOut;\\n#ifdef SHEEN_TEXTURE\\nvec4 sheenMapData=toLinearSpace(texture2D(sheenSampler,vSheenUV+uvOffset))*vSheenInfos.y;\\n#endif\\n#if defined(SHEEN_ROUGHNESS) && defined(SHEEN_TEXTURE_ROUGHNESS) && !defined(SHEEN_TEXTURE_ROUGHNESS_IDENTICAL) && !defined(SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE)\\nvec4 sheenMapRoughnessData=texture2D(sheenRoughnessSampler,vSheenRoughnessUV+uvOffset)*vSheenInfos.w;\\n#endif\\nsheenBlock(\\nvSheenColor,\\n#ifdef SHEEN_ROUGHNESS\\nvSheenRoughness,\\n#if defined(SHEEN_TEXTURE_ROUGHNESS) && !defined(SHEEN_TEXTURE_ROUGHNESS_IDENTICAL) && !defined(SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE)\\nsheenMapRoughnessData,\\n#endif\\n#endif\\nroughness,\\n#ifdef SHEEN_TEXTURE\\nsheenMapData,\\n#endif\\nreflectance,\\n#ifdef SHEEN_LINKWITHALBEDO\\nbaseColor,\\nsurfaceAlbedo,\\n#endif\\n#ifdef ENVIRONMENTBRDF\\nNdotV,\\nenvironmentBrdf,\\n#endif\\n#if defined(REFLECTION) && defined(ENVIRONMENTBRDF)\\nAARoughnessFactors,\\nvReflectionMicrosurfaceInfos,\\nvReflectionInfos,\\nvReflectionColor,\\nvLightingIntensity,\\nreflectionSampler,\\nreflectionOut.reflectionCoords,\\nNdotVUnclamped,\\n#ifndef LODBASEDMICROSFURACE\\nreflectionSamplerLow,\\nreflectionSamplerHigh,\\n#endif\\n#ifdef REALTIME_FILTERING\\nvReflectionFilteringInfo,\\n#endif\\n#if !defined(REFLECTIONMAP_SKYBOX) && defined(RADIANCEOCCLUSION)\\nseo,\\n#endif\\n#if !defined(REFLECTIONMAP_SKYBOX) && defined(HORIZONOCCLUSION) && defined(BUMP) && defined(REFLECTIONMAP_3D)\\neho,\\n#endif\\n#endif\\nsheenOut\\n);\\n#ifdef SHEEN_LINKWITHALBEDO\\nsurfaceAlbedo=sheenOut.surfaceAlbedo;\\n#endif\\n#endif\\n\\nclearcoatOutParams clearcoatOut;\\n#ifdef CLEARCOAT\\n#ifdef CLEARCOAT_TEXTURE\\nvec2 clearCoatMapData=texture2D(clearCoatSampler,vClearCoatUV+uvOffset).rg*vClearCoatInfos.y;\\n#endif\\n#if defined(CLEARCOAT_TEXTURE_ROUGHNESS) && !defined(CLEARCOAT_TEXTURE_ROUGHNESS_IDENTICAL) && !defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE)\\nvec4 clearCoatMapRoughnessData=texture2D(clearCoatRoughnessSampler,vClearCoatRoughnessUV+uvOffset)*vClearCoatInfos.w;\\n#endif\\n#if defined(CLEARCOAT_TINT) && defined(CLEARCOAT_TINT_TEXTURE)\\nvec4 clearCoatTintMapData=toLinearSpace(texture2D(clearCoatTintSampler,vClearCoatTintUV+uvOffset));\\n#endif\\n#ifdef CLEARCOAT_BUMP\\nvec4 clearCoatBumpMapData=texture2D(clearCoatBumpSampler,vClearCoatBumpUV+uvOffset);\\n#endif\\nclearcoatBlock(\\nvPositionW,\\ngeometricNormalW,\\nviewDirectionW,\\nvClearCoatParams,\\n#if defined(CLEARCOAT_TEXTURE_ROUGHNESS) && !defined(CLEARCOAT_TEXTURE_ROUGHNESS_IDENTICAL) && !defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE)\\nclearCoatMapRoughnessData,\\n#endif\\nspecularEnvironmentR0,\\n#ifdef CLEARCOAT_TEXTURE\\nclearCoatMapData,\\n#endif\\n#ifdef CLEARCOAT_TINT\\nvClearCoatTintParams,\\nclearCoatColorAtDistance,\\nvClearCoatRefractionParams,\\n#ifdef CLEARCOAT_TINT_TEXTURE\\nclearCoatTintMapData,\\n#endif\\n#endif\\n#ifdef CLEARCOAT_BUMP\\nvClearCoatBumpInfos,\\nclearCoatBumpMapData,\\nvClearCoatBumpUV,\\n#if defined(TANGENT) && defined(NORMAL)\\nvTBN,\\n#else\\nvClearCoatTangentSpaceParams,\\n#endif\\n#ifdef OBJECTSPACE_NORMALMAP\\nnormalMatrix,\\n#endif\\n#endif\\n#if defined(FORCENORMALFORWARD) && defined(NORMAL)\\nfaceNormal,\\n#endif\\n#ifdef REFLECTION\\nvReflectionMicrosurfaceInfos,\\nvReflectionInfos,\\nvReflectionColor,\\nvLightingIntensity,\\nreflectionSampler,\\n#ifndef LODBASEDMICROSFURACE\\nreflectionSamplerLow,\\nreflectionSamplerHigh,\\n#endif\\n#ifdef REALTIME_FILTERING\\nvReflectionFilteringInfo,\\n#endif\\n#endif\\n#if defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)\\n#ifdef RADIANCEOCCLUSION\\nambientMonochrome,\\n#endif\\n#endif\\nclearcoatOut\\n);\\n#else\\nclearcoatOut.specularEnvironmentR0=specularEnvironmentR0;\\n#endif\\n\\n#include\\n\\nsubSurfaceOutParams subSurfaceOut;\\n#ifdef SUBSURFACE\\n#ifdef SS_THICKNESSANDMASK_TEXTURE\\nvec4 thicknessMap=texture2D(thicknessSampler,vThicknessUV+uvOffset);\\n#endif\\nsubSurfaceBlock(\\nvSubSurfaceIntensity,\\nvThicknessParam,\\nvTintColor,\\nnormalW,\\nspecularEnvironmentReflectance,\\n#ifdef SS_THICKNESSANDMASK_TEXTURE\\nthicknessMap,\\n#endif\\n#ifdef REFLECTION\\n#ifdef SS_TRANSLUCENCY\\nreflectionMatrix,\\n#ifdef USESPHERICALFROMREFLECTIONMAP\\n#if !defined(NORMAL) || !defined(USESPHERICALINVERTEX)\\nreflectionOut.irradianceVector,\\n#endif\\n#if defined(REALTIME_FILTERING)\\nreflectionSampler,\\nvReflectionFilteringInfo,\\n#endif\\n#endif\\n#ifdef USEIRRADIANCEMAP\\nirradianceSampler,\\n#endif\\n#endif\\n#endif\\n#ifdef SS_REFRACTION\\nvPositionW,\\nviewDirectionW,\\nview,\\nsurfaceAlbedo,\\nvRefractionInfos,\\nrefractionMatrix,\\nvRefractionMicrosurfaceInfos,\\nvLightingIntensity,\\n#ifdef SS_LINKREFRACTIONTOTRANSPARENCY\\nalpha,\\n#endif\\n#ifdef SS_LODINREFRACTIONALPHA\\nNdotVUnclamped,\\n#endif\\n#ifdef SS_LINEARSPECULARREFRACTION\\nroughness,\\n#else\\nalphaG,\\n#endif\\nrefractionSampler,\\n#ifndef LODBASEDMICROSFURACE\\nrefractionSamplerLow,\\nrefractionSamplerHigh,\\n#endif\\n#ifdef ANISOTROPIC\\nanisotropicOut,\\n#endif\\n#ifdef REALTIME_FILTERING\\nvRefractionFilteringInfo,\\n#endif\\n#endif\\n#ifdef SS_TRANSLUCENCY\\nvDiffusionDistance,\\n#endif\\nsubSurfaceOut\\n);\\n#ifdef SS_REFRACTION\\nsurfaceAlbedo=subSurfaceOut.surfaceAlbedo;\\n#ifdef SS_LINKREFRACTIONTOTRANSPARENCY\\nalpha=subSurfaceOut.alpha;\\n#endif\\n#endif\\n#else\\nsubSurfaceOut.specularEnvironmentReflectance=specularEnvironmentReflectance;\\n#endif\\n\\n#include\\n#include[0..maxSimultaneousLights]\\n\\n#include\\n#endif\\n#include\\n#include\\n#include\\n#include(color,finalColor)\\n#include\\n#define CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR\\n#ifdef PREPASS\\n#ifdef PREPASS_POSITION\\ngl_FragData[PREPASS_POSITION_INDEX]=vec4(vPositionW,1.0);\\n#endif\\n#ifdef PREPASS_VELOCITY\\nvec2 a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5;\\nvec2 b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5;\\nvec2 velocity=abs(a-b);\\nvelocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5;\\ngl_FragData[PREPASS_VELOCITY_INDEX]=vec4(velocity,0.0,1.0);\\n#endif\\n#ifdef PREPASS_IRRADIANCE\\nvec3 irradiance=finalDiffuse;\\n#ifndef UNLIT\\n#ifdef REFLECTION\\nirradiance+=finalIrradiance;\\n#endif\\n#endif\\nvec3 sqAlbedo=sqrt(surfaceAlbedo);\\n#ifdef SS_SCATTERING\\ngl_FragData[0]=vec4(finalColor.rgb-irradiance,finalColor.a);\\nirradiance/=sqAlbedo;\\n#else\\ngl_FragData[0]=finalColor;\\nfloat scatteringDiffusionProfile=255.;\\n#endif\\ngl_FragData[PREPASS_IRRADIANCE_INDEX]=vec4(irradiance,scatteringDiffusionProfile/255.);\\n#else\\ngl_FragData[0]=vec4(finalColor.rgb,finalColor.a);\\n#endif\\n#ifdef PREPASS_DEPTHNORMAL\\ngl_FragData[PREPASS_DEPTHNORMAL_INDEX]=vec4(vViewPos.z,(view*vec4(normalW,0.0)).rgb);\\n#endif\\n#ifdef PREPASS_ALBEDO\\ngl_FragData[PREPASS_ALBEDO_INDEX]=vec4(sqAlbedo,1.0);\\n#endif\\n#ifdef PREPASS_REFLECTIVITY\\n#if defined(REFLECTIVITY)\\ngl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(baseReflectivity.rgb,1.0);\\n#else\\ngl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(0.0,0.0,0.0,1.0);\\n#endif\\n#endif\\n#endif\\n#if !defined(PREPASS) || defined(WEBGL2)\\ngl_FragColor=finalColor;\\n#endif\\n#include\\n}\\n\";ai.a.ShadersStore.pbrPixelShader=la;var ua=\"uniform mat4 view;\\nuniform mat4 viewProjection;\\n#ifdef ALBEDO\\nuniform mat4 albedoMatrix;\\nuniform vec2 vAlbedoInfos;\\n#endif\\n#ifdef AMBIENT\\nuniform mat4 ambientMatrix;\\nuniform vec4 vAmbientInfos;\\n#endif\\n#ifdef OPACITY\\nuniform mat4 opacityMatrix;\\nuniform vec2 vOpacityInfos;\\n#endif\\n#ifdef EMISSIVE\\nuniform vec2 vEmissiveInfos;\\nuniform mat4 emissiveMatrix;\\n#endif\\n#ifdef LIGHTMAP\\nuniform vec2 vLightmapInfos;\\nuniform mat4 lightmapMatrix;\\n#endif\\n#ifdef REFLECTIVITY\\nuniform vec3 vReflectivityInfos;\\nuniform mat4 reflectivityMatrix;\\n#endif\\n#ifdef METALLIC_REFLECTANCE\\nuniform vec2 vMetallicReflectanceInfos;\\nuniform mat4 metallicReflectanceMatrix;\\n#endif\\n#ifdef MICROSURFACEMAP\\nuniform vec2 vMicroSurfaceSamplerInfos;\\nuniform mat4 microSurfaceSamplerMatrix;\\n#endif\\n#ifdef BUMP\\nuniform vec3 vBumpInfos;\\nuniform mat4 bumpMatrix;\\n#endif\\n#ifdef POINTSIZE\\nuniform float pointSize;\\n#endif\\n\\n#ifdef REFLECTION\\nuniform vec2 vReflectionInfos;\\nuniform mat4 reflectionMatrix;\\n#endif\\n\\n#ifdef CLEARCOAT\\n#if defined(CLEARCOAT_TEXTURE) || defined(CLEARCOAT_TEXTURE_ROUGHNESS)\\nuniform vec4 vClearCoatInfos;\\n#endif\\n#ifdef CLEARCOAT_TEXTURE\\nuniform mat4 clearCoatMatrix;\\n#endif\\n#ifdef CLEARCOAT_TEXTURE_ROUGHNESS\\nuniform mat4 clearCoatRoughnessMatrix;\\n#endif\\n#ifdef CLEARCOAT_BUMP\\nuniform vec2 vClearCoatBumpInfos;\\nuniform mat4 clearCoatBumpMatrix;\\n#endif\\n#ifdef CLEARCOAT_TINT_TEXTURE\\nuniform vec2 vClearCoatTintInfos;\\nuniform mat4 clearCoatTintMatrix;\\n#endif\\n#endif\\n\\n#ifdef ANISOTROPIC\\n#ifdef ANISOTROPIC_TEXTURE\\nuniform vec2 vAnisotropyInfos;\\nuniform mat4 anisotropyMatrix;\\n#endif\\n#endif\\n\\n#ifdef SHEEN\\n#if defined(SHEEN_TEXTURE) || defined(SHEEN_TEXTURE_ROUGHNESS)\\nuniform vec4 vSheenInfos;\\n#endif\\n#ifdef SHEEN_TEXTURE\\nuniform mat4 sheenMatrix;\\n#endif\\n#ifdef SHEEN_TEXTURE_ROUGHNESS\\nuniform mat4 sheenRoughnessMatrix;\\n#endif\\n#endif\\n\\n#ifdef SUBSURFACE\\n#ifdef SS_REFRACTION\\nuniform vec4 vRefractionInfos;\\nuniform mat4 refractionMatrix;\\n#endif\\n#ifdef SS_THICKNESSANDMASK_TEXTURE\\nuniform vec2 vThicknessInfos;\\nuniform mat4 thicknessMatrix;\\n#endif\\n#endif\\n\";ai.a.IncludesShadersStore.pbrVertexDeclaration=ua;i(163),i(164),i(93),i(94),i(100),i(165),i(156),i(158);var ha=\"precision highp float;\\n#include<__decl__pbrVertex>\\n#define CUSTOM_VERTEX_BEGIN\\n\\nattribute vec3 position;\\n#ifdef NORMAL\\nattribute vec3 normal;\\n#endif\\n#ifdef TANGENT\\nattribute vec4 tangent;\\n#endif\\n#ifdef UV1\\nattribute vec2 uv;\\n#endif\\n#ifdef UV2\\nattribute vec2 uv2;\\n#endif\\n#ifdef MAINUV1\\nvarying vec2 vMainUV1;\\n#endif\\n#ifdef MAINUV2\\nvarying vec2 vMainUV2;\\n#endif\\n#ifdef VERTEXCOLOR\\nattribute vec4 color;\\n#endif\\n#include\\n#include\\n\\n#include\\n#include\\n#if defined(ALBEDO) && ALBEDODIRECTUV == 0\\nvarying vec2 vAlbedoUV;\\n#endif\\n#if defined(DETAIL) && DETAILDIRECTUV == 0\\nvarying vec2 vDetailUV;\\n#endif\\n#if defined(AMBIENT) && AMBIENTDIRECTUV == 0\\nvarying vec2 vAmbientUV;\\n#endif\\n#if defined(OPACITY) && OPACITYDIRECTUV == 0\\nvarying vec2 vOpacityUV;\\n#endif\\n#if defined(EMISSIVE) && EMISSIVEDIRECTUV == 0\\nvarying vec2 vEmissiveUV;\\n#endif\\n#if defined(LIGHTMAP) && LIGHTMAPDIRECTUV == 0\\nvarying vec2 vLightmapUV;\\n#endif\\n#if defined(REFLECTIVITY) && REFLECTIVITYDIRECTUV == 0\\nvarying vec2 vReflectivityUV;\\n#endif\\n#if defined(MICROSURFACEMAP) && MICROSURFACEMAPDIRECTUV == 0\\nvarying vec2 vMicroSurfaceSamplerUV;\\n#endif\\n#if defined(METALLIC_REFLECTANCE) && METALLIC_REFLECTANCEDIRECTUV == 0\\nvarying vec2 vMetallicReflectanceUV;\\n#endif\\n#if defined(BUMP) && BUMPDIRECTUV == 0\\nvarying vec2 vBumpUV;\\n#endif\\n#ifdef CLEARCOAT\\n#if defined(CLEARCOAT_TEXTURE) && CLEARCOAT_TEXTUREDIRECTUV == 0\\nvarying vec2 vClearCoatUV;\\n#endif\\n#if defined(CLEARCOAT_TEXTURE_ROUGHNESS) && CLEARCOAT_TEXTURE_ROUGHNESSDIRECTUV == 0\\nvarying vec2 vClearCoatRoughnessUV;\\n#endif\\n#if defined(CLEARCOAT_BUMP) && CLEARCOAT_BUMPDIRECTUV == 0\\nvarying vec2 vClearCoatBumpUV;\\n#endif\\n#if defined(CLEARCOAT_TINT_TEXTURE) && CLEARCOAT_TINT_TEXTUREDIRECTUV == 0\\nvarying vec2 vClearCoatTintUV;\\n#endif\\n#endif\\n#ifdef SHEEN\\n#if defined(SHEEN_TEXTURE) && SHEEN_TEXTUREDIRECTUV == 0\\nvarying vec2 vSheenUV;\\n#endif\\n#if defined(SHEEN_TEXTURE_ROUGHNESS) && SHEEN_TEXTURE_ROUGHNESSDIRECTUV == 0\\nvarying vec2 vSheenRoughnessUV;\\n#endif\\n#endif\\n#ifdef ANISOTROPIC\\n#if defined(ANISOTROPIC_TEXTURE) && ANISOTROPIC_TEXTUREDIRECTUV == 0\\nvarying vec2 vAnisotropyUV;\\n#endif\\n#endif\\n#ifdef SUBSURFACE\\n#if defined(SS_THICKNESSANDMASK_TEXTURE) && SS_THICKNESSANDMASK_TEXTUREDIRECTUV == 0\\nvarying vec2 vThicknessUV;\\n#endif\\n#endif\\n\\nvarying vec3 vPositionW;\\n#if DEBUGMODE>0\\nvarying vec4 vClipSpacePosition;\\n#endif\\n#ifdef NORMAL\\nvarying vec3 vNormalW;\\n#if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)\\nvarying vec3 vEnvironmentIrradiance;\\n#include\\n#endif\\n#endif\\n#ifdef VERTEXCOLOR\\nvarying vec4 vColor;\\n#endif\\n#include\\n#include\\n#include\\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\\n#include\\n#include[0..maxSimultaneousMorphTargets]\\n#ifdef REFLECTIONMAP_SKYBOX\\nvarying vec3 vPositionUVW;\\n#endif\\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\\nvarying vec3 vDirectionW;\\n#endif\\n#include\\n#define CUSTOM_VERTEX_DEFINITIONS\\nvoid main(void) {\\n#define CUSTOM_VERTEX_MAIN_BEGIN\\nvec3 positionUpdated=position;\\n#ifdef NORMAL\\nvec3 normalUpdated=normal;\\n#endif\\n#ifdef TANGENT\\nvec4 tangentUpdated=tangent;\\n#endif\\n#ifdef UV1\\nvec2 uvUpdated=uv;\\n#endif\\n#include[0..maxSimultaneousMorphTargets]\\n#ifdef REFLECTIONMAP_SKYBOX\\nvPositionUVW=positionUpdated;\\n#endif\\n#define CUSTOM_VERTEX_UPDATE_POSITION\\n#define CUSTOM_VERTEX_UPDATE_NORMAL\\n#include\\n#if defined(PREPASS) && defined(PREPASS_VELOCITY) && !defined(BONES_VELOCITY_ENABLED)\\n\\nvCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);\\nvPreviousPosition=previousViewProjection*previousWorld*vec4(positionUpdated,1.0);\\n#endif\\n#include\\nvec4 worldPos=finalWorld*vec4(positionUpdated,1.0);\\nvPositionW=vec3(worldPos);\\n#include\\n#ifdef NORMAL\\nmat3 normalWorld=mat3(finalWorld);\\n#if defined(INSTANCES) && defined(THIN_INSTANCES)\\nvNormalW=normalUpdated/vec3(dot(normalWorld[0],normalWorld[0]),dot(normalWorld[1],normalWorld[1]),dot(normalWorld[2],normalWorld[2]));\\nvNormalW=normalize(normalWorld*vNormalW);\\n#else\\n#ifdef NONUNIFORMSCALING\\nnormalWorld=transposeMat3(inverseMat3(normalWorld));\\n#endif\\nvNormalW=normalize(normalWorld*normalUpdated);\\n#endif\\n#if defined(USESPHERICALFROMREFLECTIONMAP) && defined(USESPHERICALINVERTEX)\\nvec3 reflectionVector=vec3(reflectionMatrix*vec4(vNormalW,0)).xyz;\\n#ifdef REFLECTIONMAP_OPPOSITEZ\\nreflectionVector.z*=-1.0;\\n#endif\\nvEnvironmentIrradiance=computeEnvironmentIrradiance(reflectionVector);\\n#endif\\n#endif\\n#define CUSTOM_VERTEX_UPDATE_WORLDPOS\\n#ifdef MULTIVIEW\\nif (gl_ViewID_OVR == 0u) {\\ngl_Position=viewProjection*worldPos;\\n} else {\\ngl_Position=viewProjectionR*worldPos;\\n}\\n#else\\ngl_Position=viewProjection*worldPos;\\n#endif\\n#if DEBUGMODE>0\\nvClipSpacePosition=gl_Position;\\n#endif\\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\\nvDirectionW=normalize(vec3(finalWorld*vec4(positionUpdated,0.0)));\\n#endif\\n\\n#ifndef UV1\\nvec2 uvUpdated=vec2(0.,0.);\\n#endif\\n#ifndef UV2\\nvec2 uv2=vec2(0.,0.);\\n#endif\\n#ifdef MAINUV1\\nvMainUV1=uvUpdated;\\n#endif\\n#ifdef MAINUV2\\nvMainUV2=uv2;\\n#endif\\n#if defined(ALBEDO) && ALBEDODIRECTUV == 0\\nif (vAlbedoInfos.x == 0.)\\n{\\nvAlbedoUV=vec2(albedoMatrix*vec4(uvUpdated,1.0,0.0));\\n}\\nelse\\n{\\nvAlbedoUV=vec2(albedoMatrix*vec4(uv2,1.0,0.0));\\n}\\n#endif\\n#if defined(DETAIL) && DETAILDIRECTUV == 0\\nif (vDetailInfos.x == 0.)\\n{\\nvDetailUV=vec2(detailMatrix*vec4(uvUpdated,1.0,0.0));\\n}\\nelse\\n{\\nvDetailUV=vec2(detailMatrix*vec4(uv2,1.0,0.0));\\n}\\n#endif\\n#if defined(AMBIENT) && AMBIENTDIRECTUV == 0\\nif (vAmbientInfos.x == 0.)\\n{\\nvAmbientUV=vec2(ambientMatrix*vec4(uvUpdated,1.0,0.0));\\n}\\nelse\\n{\\nvAmbientUV=vec2(ambientMatrix*vec4(uv2,1.0,0.0));\\n}\\n#endif\\n#if defined(OPACITY) && OPACITYDIRECTUV == 0\\nif (vOpacityInfos.x == 0.)\\n{\\nvOpacityUV=vec2(opacityMatrix*vec4(uvUpdated,1.0,0.0));\\n}\\nelse\\n{\\nvOpacityUV=vec2(opacityMatrix*vec4(uv2,1.0,0.0));\\n}\\n#endif\\n#if defined(EMISSIVE) && EMISSIVEDIRECTUV == 0\\nif (vEmissiveInfos.x == 0.)\\n{\\nvEmissiveUV=vec2(emissiveMatrix*vec4(uvUpdated,1.0,0.0));\\n}\\nelse\\n{\\nvEmissiveUV=vec2(emissiveMatrix*vec4(uv2,1.0,0.0));\\n}\\n#endif\\n#if defined(LIGHTMAP) && LIGHTMAPDIRECTUV == 0\\nif (vLightmapInfos.x == 0.)\\n{\\nvLightmapUV=vec2(lightmapMatrix*vec4(uvUpdated,1.0,0.0));\\n}\\nelse\\n{\\nvLightmapUV=vec2(lightmapMatrix*vec4(uv2,1.0,0.0));\\n}\\n#endif\\n#if defined(REFLECTIVITY) && REFLECTIVITYDIRECTUV == 0\\nif (vReflectivityInfos.x == 0.)\\n{\\nvReflectivityUV=vec2(reflectivityMatrix*vec4(uvUpdated,1.0,0.0));\\n}\\nelse\\n{\\nvReflectivityUV=vec2(reflectivityMatrix*vec4(uv2,1.0,0.0));\\n}\\n#endif\\n#if defined(MICROSURFACEMAP) && MICROSURFACEMAPDIRECTUV == 0\\nif (vMicroSurfaceSamplerInfos.x == 0.)\\n{\\nvMicroSurfaceSamplerUV=vec2(microSurfaceSamplerMatrix*vec4(uvUpdated,1.0,0.0));\\n}\\nelse\\n{\\nvMicroSurfaceSamplerUV=vec2(microSurfaceSamplerMatrix*vec4(uv2,1.0,0.0));\\n}\\n#endif\\n#if defined(METALLIC_REFLECTANCE) && METALLIC_REFLECTANCEDIRECTUV == 0\\nif (vMetallicReflectanceInfos.x == 0.)\\n{\\nvMetallicReflectanceUV=vec2(metallicReflectanceMatrix*vec4(uvUpdated,1.0,0.0));\\n}\\nelse\\n{\\nvMetallicReflectanceUV=vec2(metallicReflectanceMatrix*vec4(uv2,1.0,0.0));\\n}\\n#endif\\n#if defined(BUMP) && BUMPDIRECTUV == 0\\nif (vBumpInfos.x == 0.)\\n{\\nvBumpUV=vec2(bumpMatrix*vec4(uvUpdated,1.0,0.0));\\n}\\nelse\\n{\\nvBumpUV=vec2(bumpMatrix*vec4(uv2,1.0,0.0));\\n}\\n#endif\\n#ifdef CLEARCOAT\\n#if defined(CLEARCOAT_TEXTURE) && CLEARCOAT_TEXTUREDIRECTUV == 0\\nif (vClearCoatInfos.x == 0.)\\n{\\nvClearCoatUV=vec2(clearCoatMatrix*vec4(uvUpdated,1.0,0.0));\\n}\\nelse\\n{\\nvClearCoatUV=vec2(clearCoatMatrix*vec4(uv2,1.0,0.0));\\n}\\n#endif\\n#if defined(CLEARCOAT_TEXTURE_ROUGHNESS) && CLEARCOAT_TEXTURE_ROUGHNESSDIRECTUV == 0\\nif (vClearCoatInfos.z == 0.)\\n{\\nvClearCoatRoughnessUV=vec2(clearCoatRoughnessMatrix*vec4(uvUpdated,1.0,0.0));\\n}\\nelse\\n{\\nvClearCoatRoughnessUV=vec2(clearCoatRoughnessMatrix*vec4(uv2,1.0,0.0));\\n}\\n#endif\\n#if defined(CLEARCOAT_BUMP) && CLEARCOAT_BUMPDIRECTUV == 0\\nif (vClearCoatBumpInfos.x == 0.)\\n{\\nvClearCoatBumpUV=vec2(clearCoatBumpMatrix*vec4(uvUpdated,1.0,0.0));\\n}\\nelse\\n{\\nvClearCoatBumpUV=vec2(clearCoatBumpMatrix*vec4(uv2,1.0,0.0));\\n}\\n#endif\\n#if defined(CLEARCOAT_TINT_TEXTURE) && CLEARCOAT_TINT_TEXTUREDIRECTUV == 0\\nif (vClearCoatTintInfos.x == 0.)\\n{\\nvClearCoatTintUV=vec2(clearCoatTintMatrix*vec4(uvUpdated,1.0,0.0));\\n}\\nelse\\n{\\nvClearCoatTintUV=vec2(clearCoatTintMatrix*vec4(uv2,1.0,0.0));\\n}\\n#endif\\n#endif\\n#ifdef SHEEN\\n#if defined(SHEEN_TEXTURE) && SHEEN_TEXTUREDIRECTUV == 0\\nif (vSheenInfos.x == 0.)\\n{\\nvSheenUV=vec2(sheenMatrix*vec4(uvUpdated,1.0,0.0));\\n}\\nelse\\n{\\nvSheenUV=vec2(sheenMatrix*vec4(uv2,1.0,0.0));\\n}\\n#endif\\n#if defined(SHEEN_TEXTURE_ROUGHNESS) && SHEEN_TEXTURE_ROUGHNESSDIRECTUV == 0\\nif (vSheenInfos.z == 0.)\\n{\\nvSheenRoughnessUV=vec2(sheenRoughnessMatrix*vec4(uvUpdated,1.0,0.0));\\n}\\nelse\\n{\\nvSheenRoughnessUV=vec2(sheenRoughnessMatrix*vec4(uv2,1.0,0.0));\\n}\\n#endif\\n#endif\\n#ifdef ANISOTROPIC\\n#if defined(ANISOTROPIC_TEXTURE) && ANISOTROPIC_TEXTUREDIRECTUV == 0\\nif (vAnisotropyInfos.x == 0.)\\n{\\nvAnisotropyUV=vec2(anisotropyMatrix*vec4(uvUpdated,1.0,0.0));\\n}\\nelse\\n{\\nvAnisotropyUV=vec2(anisotropyMatrix*vec4(uv2,1.0,0.0));\\n}\\n#endif\\n#endif\\n#ifdef SUBSURFACE\\n#if defined(SS_THICKNESSANDMASK_TEXTURE) && SS_THICKNESSANDMASK_TEXTUREDIRECTUV == 0\\nif (vThicknessInfos.x == 0.)\\n{\\nvThicknessUV=vec2(thicknessMatrix*vec4(uvUpdated,1.0,0.0));\\n}\\nelse\\n{\\nvThicknessUV=vec2(thicknessMatrix*vec4(uv2,1.0,0.0));\\n}\\n#endif\\n#endif\\n\\n#include\\n\\n#include\\n\\n#include\\n\\n#include[0..maxSimultaneousLights]\\n\\n#ifdef VERTEXCOLOR\\nvColor=color;\\n#endif\\n\\n#ifdef POINTSIZE\\ngl_PointSize=pointSize;\\n#endif\\n\\n#include\\n#define CUSTOM_VERTEX_MAIN_END\\n}\";ai.a.ShadersStore.pbrVertexShader=ha;var da=i(92),fa={effect:null,subMesh:null},pa=function(e){function t(){var t=e.call(this)||this;return t.PBR=!0,t.NUM_SAMPLES=\"0\",t.REALTIME_FILTERING=!1,t.MAINUV1=!1,t.MAINUV2=!1,t.UV1=!1,t.UV2=!1,t.ALBEDO=!1,t.GAMMAALBEDO=!1,t.ALBEDODIRECTUV=0,t.VERTEXCOLOR=!1,t.DETAIL=!1,t.DETAILDIRECTUV=0,t.DETAIL_NORMALBLENDMETHOD=0,t.AMBIENT=!1,t.AMBIENTDIRECTUV=0,t.AMBIENTINGRAYSCALE=!1,t.OPACITY=!1,t.VERTEXALPHA=!1,t.OPACITYDIRECTUV=0,t.OPACITYRGB=!1,t.ALPHATEST=!1,t.DEPTHPREPASS=!1,t.ALPHABLEND=!1,t.ALPHAFROMALBEDO=!1,t.ALPHATESTVALUE=\"0.5\",t.SPECULAROVERALPHA=!1,t.RADIANCEOVERALPHA=!1,t.ALPHAFRESNEL=!1,t.LINEARALPHAFRESNEL=!1,t.PREMULTIPLYALPHA=!1,t.EMISSIVE=!1,t.EMISSIVEDIRECTUV=0,t.REFLECTIVITY=!1,t.REFLECTIVITYDIRECTUV=0,t.SPECULARTERM=!1,t.MICROSURFACEFROMREFLECTIVITYMAP=!1,t.MICROSURFACEAUTOMATIC=!1,t.LODBASEDMICROSFURACE=!1,t.MICROSURFACEMAP=!1,t.MICROSURFACEMAPDIRECTUV=0,t.METALLICWORKFLOW=!1,t.ROUGHNESSSTOREINMETALMAPALPHA=!1,t.ROUGHNESSSTOREINMETALMAPGREEN=!1,t.METALLNESSSTOREINMETALMAPBLUE=!1,t.AOSTOREINMETALMAPRED=!1,t.METALLIC_REFLECTANCE=!1,t.METALLIC_REFLECTANCEDIRECTUV=0,t.ENVIRONMENTBRDF=!1,t.ENVIRONMENTBRDF_RGBD=!1,t.NORMAL=!1,t.TANGENT=!1,t.BUMP=!1,t.BUMPDIRECTUV=0,t.OBJECTSPACE_NORMALMAP=!1,t.PARALLAX=!1,t.PARALLAXOCCLUSION=!1,t.NORMALXYSCALE=!0,t.LIGHTMAP=!1,t.LIGHTMAPDIRECTUV=0,t.USELIGHTMAPASSHADOWMAP=!1,t.GAMMALIGHTMAP=!1,t.RGBDLIGHTMAP=!1,t.REFLECTION=!1,t.REFLECTIONMAP_3D=!1,t.REFLECTIONMAP_SPHERICAL=!1,t.REFLECTIONMAP_PLANAR=!1,t.REFLECTIONMAP_CUBIC=!1,t.USE_LOCAL_REFLECTIONMAP_CUBIC=!1,t.REFLECTIONMAP_PROJECTION=!1,t.REFLECTIONMAP_SKYBOX=!1,t.REFLECTIONMAP_EXPLICIT=!1,t.REFLECTIONMAP_EQUIRECTANGULAR=!1,t.REFLECTIONMAP_EQUIRECTANGULAR_FIXED=!1,t.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED=!1,t.INVERTCUBICMAP=!1,t.USESPHERICALFROMREFLECTIONMAP=!1,t.USEIRRADIANCEMAP=!1,t.SPHERICAL_HARMONICS=!1,t.USESPHERICALINVERTEX=!1,t.REFLECTIONMAP_OPPOSITEZ=!1,t.LODINREFLECTIONALPHA=!1,t.GAMMAREFLECTION=!1,t.RGBDREFLECTION=!1,t.LINEARSPECULARREFLECTION=!1,t.RADIANCEOCCLUSION=!1,t.HORIZONOCCLUSION=!1,t.INSTANCES=!1,t.THIN_INSTANCES=!1,t.PREPASS=!1,t.PREPASS_IRRADIANCE=!1,t.PREPASS_IRRADIANCE_INDEX=-1,t.PREPASS_ALBEDO=!1,t.PREPASS_ALBEDO_INDEX=-1,t.PREPASS_DEPTHNORMAL=!1,t.PREPASS_DEPTHNORMAL_INDEX=-1,t.PREPASS_POSITION=!1,t.PREPASS_POSITION_INDEX=-1,t.PREPASS_VELOCITY=!1,t.PREPASS_VELOCITY_INDEX=-1,t.PREPASS_REFLECTIVITY=!1,t.PREPASS_REFLECTIVITY_INDEX=-1,t.SCENE_MRT_COUNT=0,t.NUM_BONE_INFLUENCERS=0,t.BonesPerMesh=0,t.BONETEXTURE=!1,t.BONES_VELOCITY_ENABLED=!1,t.NONUNIFORMSCALING=!1,t.MORPHTARGETS=!1,t.MORPHTARGETS_NORMAL=!1,t.MORPHTARGETS_TANGENT=!1,t.MORPHTARGETS_UV=!1,t.NUM_MORPH_INFLUENCERS=0,t.IMAGEPROCESSING=!1,t.VIGNETTE=!1,t.VIGNETTEBLENDMODEMULTIPLY=!1,t.VIGNETTEBLENDMODEOPAQUE=!1,t.TONEMAPPING=!1,t.TONEMAPPING_ACES=!1,t.CONTRAST=!1,t.COLORCURVES=!1,t.COLORGRADING=!1,t.COLORGRADING3D=!1,t.SAMPLER3DGREENDEPTH=!1,t.SAMPLER3DBGRMAP=!1,t.IMAGEPROCESSINGPOSTPROCESS=!1,t.EXPOSURE=!1,t.MULTIVIEW=!1,t.USEPHYSICALLIGHTFALLOFF=!1,t.USEGLTFLIGHTFALLOFF=!1,t.TWOSIDEDLIGHTING=!1,t.SHADOWFLOAT=!1,t.CLIPPLANE=!1,t.CLIPPLANE2=!1,t.CLIPPLANE3=!1,t.CLIPPLANE4=!1,t.CLIPPLANE5=!1,t.CLIPPLANE6=!1,t.POINTSIZE=!1,t.FOG=!1,t.LOGARITHMICDEPTH=!1,t.FORCENORMALFORWARD=!1,t.SPECULARAA=!1,t.CLEARCOAT=!1,t.CLEARCOAT_DEFAULTIOR=!1,t.CLEARCOAT_TEXTURE=!1,t.CLEARCOAT_TEXTURE_ROUGHNESS=!1,t.CLEARCOAT_TEXTUREDIRECTUV=0,t.CLEARCOAT_TEXTURE_ROUGHNESSDIRECTUV=0,t.CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE=!1,t.CLEARCOAT_TEXTURE_ROUGHNESS_IDENTICAL=!1,t.CLEARCOAT_BUMP=!1,t.CLEARCOAT_BUMPDIRECTUV=0,t.CLEARCOAT_REMAP_F0=!0,t.CLEARCOAT_TINT=!1,t.CLEARCOAT_TINT_TEXTURE=!1,t.CLEARCOAT_TINT_TEXTUREDIRECTUV=0,t.ANISOTROPIC=!1,t.ANISOTROPIC_TEXTURE=!1,t.ANISOTROPIC_TEXTUREDIRECTUV=0,t.BRDF_V_HEIGHT_CORRELATED=!1,t.MS_BRDF_ENERGY_CONSERVATION=!1,t.SPECULAR_GLOSSINESS_ENERGY_CONSERVATION=!1,t.SHEEN=!1,t.SHEEN_TEXTURE=!1,t.SHEEN_TEXTURE_ROUGHNESS=!1,t.SHEEN_TEXTUREDIRECTUV=0,t.SHEEN_TEXTURE_ROUGHNESSDIRECTUV=0,t.SHEEN_LINKWITHALBEDO=!1,t.SHEEN_ROUGHNESS=!1,t.SHEEN_ALBEDOSCALING=!1,t.SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE=!1,t.SHEEN_TEXTURE_ROUGHNESS_IDENTICAL=!1,t.SUBSURFACE=!1,t.SS_REFRACTION=!1,t.SS_TRANSLUCENCY=!1,t.SS_SCATTERING=!1,t.SS_THICKNESSANDMASK_TEXTURE=!1,t.SS_THICKNESSANDMASK_TEXTUREDIRECTUV=0,t.SS_REFRACTIONMAP_3D=!1,t.SS_REFRACTIONMAP_OPPOSITEZ=!1,t.SS_LODINREFRACTIONALPHA=!1,t.SS_GAMMAREFRACTION=!1,t.SS_RGBDREFRACTION=!1,t.SS_LINEARSPECULARREFRACTION=!1,t.SS_LINKREFRACTIONTOTRANSPARENCY=!1,t.SS_ALBEDOFORREFRACTIONTINT=!1,t.SS_MASK_FROM_THICKNESS_TEXTURE=!1,t.SS_MASK_FROM_THICKNESS_TEXTURE_GLTF=!1,t.UNLIT=!1,t.DEBUGMODE=0,t.rebuild(),t}return Object(h.d)(t,e),t.prototype.reset=function(){e.prototype.reset.call(this),this.ALPHATESTVALUE=\"0.5\",this.PBR=!0},t}(oo.a),_a=function(e){function t(i,n){var r=e.call(this,i,n)||this;return r._directIntensity=1,r._emissiveIntensity=1,r._environmentIntensity=1,r._specularIntensity=1,r._lightingInfos=new a.f(r._directIntensity,r._emissiveIntensity,r._environmentIntensity,r._specularIntensity),r._disableBumpMap=!1,r._albedoTexture=null,r._ambientTexture=null,r._ambientTextureStrength=1,r._ambientTextureImpactOnAnalyticalLights=t.DEFAULT_AO_ON_ANALYTICAL_LIGHTS,r._opacityTexture=null,r._reflectionTexture=null,r._emissiveTexture=null,r._reflectivityTexture=null,r._metallicTexture=null,r._metallic=null,r._roughness=null,r._metallicF0Factor=1,r._metallicReflectanceColor=s.a.White(),r._metallicReflectanceTexture=null,r._microSurfaceTexture=null,r._bumpTexture=null,r._lightmapTexture=null,r._ambientColor=new s.a(0,0,0),r._albedoColor=new s.a(1,1,1),r._reflectivityColor=new s.a(1,1,1),r._reflectionColor=new s.a(1,1,1),r._emissiveColor=new s.a(0,0,0),r._microSurface=.9,r._useLightmapAsShadowmap=!1,r._useHorizonOcclusion=!0,r._useRadianceOcclusion=!0,r._useAlphaFromAlbedoTexture=!1,r._useSpecularOverAlpha=!0,r._useMicroSurfaceFromReflectivityMapAlpha=!1,r._useRoughnessFromMetallicTextureAlpha=!0,r._useRoughnessFromMetallicTextureGreen=!1,r._useMetallnessFromMetallicTextureBlue=!1,r._useAmbientOcclusionFromMetallicTextureRed=!1,r._useAmbientInGrayScale=!1,r._useAutoMicroSurfaceFromReflectivityMap=!1,r._lightFalloff=t.LIGHTFALLOFF_PHYSICAL,r._useRadianceOverAlpha=!0,r._useObjectSpaceNormalMap=!1,r._useParallax=!1,r._useParallaxOcclusion=!1,r._parallaxScaleBias=.05,r._disableLighting=!1,r._maxSimultaneousLights=4,r._invertNormalMapX=!1,r._invertNormalMapY=!1,r._twoSidedLighting=!1,r._alphaCutOff=.4,r._forceAlphaTest=!1,r._useAlphaFresnel=!1,r._useLinearAlphaFresnel=!1,r._environmentBRDFTexture=null,r._forceIrradianceInFragment=!1,r._realTimeFiltering=!1,r._realTimeFilteringQuality=g.a.TEXTURE_FILTERING_QUALITY_LOW,r._forceNormalForward=!1,r._enableSpecularAntiAliasing=!1,r._imageProcessingObserver=null,r._renderTargets=new oi.a(16),r._globalAmbientColor=new s.a(0,0,0),r._useLogarithmicDepth=!1,r._unlit=!1,r._debugMode=0,r.debugMode=0,r.debugLimit=-1,r.debugFactor=1,r.clearCoat=new Eo(r._markAllSubMeshesAsTexturesDirty.bind(r)),r.anisotropy=new So(r._markAllSubMeshesAsTexturesDirty.bind(r)),r.brdf=new Ao(r._markAllSubMeshesAsMiscDirty.bind(r)),r.sheen=new Po(r._markAllSubMeshesAsTexturesDirty.bind(r)),r.detailMap=new da.a(r._markAllSubMeshesAsTexturesDirty.bind(r)),r._rebuildInParallel=!1,r._attachImageProcessingConfiguration(null),r.getRenderTargetTextures=function(){return r._renderTargets.reset(),so.a.ReflectionTextureEnabled&&r._reflectionTexture&&r._reflectionTexture.isRenderTarget&&r._renderTargets.push(r._reflectionTexture),r.subSurface.fillRenderTargetTextures(r._renderTargets),r._renderTargets},r._environmentBRDFTexture=To.GetEnvironmentBRDFTexture(n),r.subSurface=new Co(r._markAllSubMeshesAsTexturesDirty.bind(r),r._markScenePrePassDirty.bind(r),n),r.prePassConfiguration=new Ro.a,r}return Object(h.d)(t,e),Object.defineProperty(t.prototype,\"realTimeFiltering\",{get:function(){return this._realTimeFiltering},set:function(e){this._realTimeFiltering=e,this.markAsDirty(g.a.MATERIAL_TextureDirtyFlag)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"realTimeFilteringQuality\",{get:function(){return this._realTimeFilteringQuality},set:function(e){this._realTimeFilteringQuality=e,this.markAsDirty(g.a.MATERIAL_TextureDirtyFlag)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"canRenderToMRT\",{get:function(){return!0},enumerable:!1,configurable:!0}),t.prototype._attachImageProcessingConfiguration=function(e){var t=this;e!==this._imageProcessingConfiguration&&(this._imageProcessingConfiguration&&this._imageProcessingObserver&&this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),this._imageProcessingConfiguration=e||this.getScene().imageProcessingConfiguration,this._imageProcessingConfiguration&&(this._imageProcessingObserver=this._imageProcessingConfiguration.onUpdateParameters.add((function(){t._markAllSubMeshesAsImageProcessingDirty()}))))},Object.defineProperty(t.prototype,\"hasRenderTargetTextures\",{get:function(){return!!(so.a.ReflectionTextureEnabled&&this._reflectionTexture&&this._reflectionTexture.isRenderTarget)||this.subSurface.hasRenderTargetTextures()},enumerable:!1,configurable:!0}),t.prototype.getClassName=function(){return\"PBRBaseMaterial\"},Object.defineProperty(t.prototype,\"useLogarithmicDepth\",{get:function(){return this._useLogarithmicDepth},set:function(e){this._useLogarithmicDepth=e&&this.getScene().getEngine().getCaps().fragmentDepthSupported},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"_disableAlphaBlending\",{get:function(){return this.subSurface.disableAlphaBlending||this._transparencyMode===t.PBRMATERIAL_OPAQUE||this._transparencyMode===t.PBRMATERIAL_ALPHATEST},enumerable:!1,configurable:!0}),t.prototype.needAlphaBlending=function(){return!this._disableAlphaBlending&&(this.alpha<1||null!=this._opacityTexture||this._shouldUseAlphaFromAlbedoTexture())},t.prototype.needAlphaTesting=function(){return!!this._forceAlphaTest||!this.subSurface.disableAlphaBlending&&(this._hasAlphaChannel()&&(null==this._transparencyMode||this._transparencyMode===t.PBRMATERIAL_ALPHATEST))},t.prototype._shouldUseAlphaFromAlbedoTexture=function(){return null!=this._albedoTexture&&this._albedoTexture.hasAlpha&&this._useAlphaFromAlbedoTexture&&this._transparencyMode!==t.PBRMATERIAL_OPAQUE},t.prototype._hasAlphaChannel=function(){return null!=this._albedoTexture&&this._albedoTexture.hasAlpha||null!=this._opacityTexture},t.prototype.getAlphaTestTexture=function(){return this._albedoTexture},t.prototype.isReadyForSubMesh=function(e,t,i){if(t.effect&&this.isFrozen&&t.effect._wasPreviouslyReady)return!0;t._materialDefines||(t._materialDefines=new pa);var n=t._materialDefines;if(this._isReadyForSubMesh(t))return!0;var r=this.getScene(),o=r.getEngine();if(n._areTexturesDirty&&r.texturesEnabled){if(this._albedoTexture&&so.a.DiffuseTextureEnabled&&!this._albedoTexture.isReadyOrNotBlocking())return!1;if(this._ambientTexture&&so.a.AmbientTextureEnabled&&!this._ambientTexture.isReadyOrNotBlocking())return!1;if(this._opacityTexture&&so.a.OpacityTextureEnabled&&!this._opacityTexture.isReadyOrNotBlocking())return!1;var a=this._getReflectionTexture();if(a&&so.a.ReflectionTextureEnabled){if(!a.isReadyOrNotBlocking())return!1;if(a.irradianceTexture&&!a.irradianceTexture.isReadyOrNotBlocking())return!1}if(this._lightmapTexture&&so.a.LightmapTextureEnabled&&!this._lightmapTexture.isReadyOrNotBlocking())return!1;if(this._emissiveTexture&&so.a.EmissiveTextureEnabled&&!this._emissiveTexture.isReadyOrNotBlocking())return!1;if(so.a.SpecularTextureEnabled){if(this._metallicTexture){if(!this._metallicTexture.isReadyOrNotBlocking())return!1}else if(this._reflectivityTexture&&!this._reflectivityTexture.isReadyOrNotBlocking())return!1;if(this._metallicReflectanceTexture&&!this._metallicReflectanceTexture.isReadyOrNotBlocking())return!1;if(this._microSurfaceTexture&&!this._microSurfaceTexture.isReadyOrNotBlocking())return!1}if(o.getCaps().standardDerivatives&&this._bumpTexture&&so.a.BumpTextureEnabled&&!this._disableBumpMap&&!this._bumpTexture.isReady())return!1;if(this._environmentBRDFTexture&&so.a.ReflectionTextureEnabled&&!this._environmentBRDFTexture.isReady())return!1}if(!(this.subSurface.isReadyForSubMesh(n,r)&&this.clearCoat.isReadyForSubMesh(n,r,o,this._disableBumpMap)&&this.sheen.isReadyForSubMesh(n,r)&&this.anisotropy.isReadyForSubMesh(n,r)&&this.detailMap.isReadyForSubMesh(n,r)))return!1;if(n._areImageProcessingDirty&&this._imageProcessingConfiguration&&!this._imageProcessingConfiguration.isReady())return!1;o.getCaps().standardDerivatives||e.isVerticesDataPresent(Qi.b.NormalKind)||(e.createNormals(!0),m.a.Warn(\"PBRMaterial: Normals have been created for the mesh: \"+e.name));var s=t.effect,c=n._areLightsDisposed,l=this._prepareEffect(e,n,this.onCompiled,this.onError,i,null,t.getRenderingMesh().hasThinInstances);if(l)if(this._onEffectCreatedObservable&&(fa.effect=l,fa.subMesh=t,this._onEffectCreatedObservable.notifyObservers(fa)),this.allowShaderHotSwapping&&s&&!l.isReady()){if(l=s,this._rebuildInParallel=!0,n.markAsUnprocessed(),c)return n._areLightsDisposed=!0,!1}else this._rebuildInParallel=!1,r.resetCachedMaterial(),t.setEffect(l,n),this.buildUniformLayout();return!(!t.effect||!t.effect.isReady())&&(n._renderId=r.getRenderId(),t.effect._wasPreviouslyReady=!0,!0)},t.prototype.isMetallicWorkflow=function(){return!(null==this._metallic&&null==this._roughness&&!this._metallicTexture)},t.prototype._prepareEffect=function(e,t,i,n,r,o,a){if(void 0===i&&(i=null),void 0===n&&(n=null),void 0===r&&(r=null),void 0===o&&(o=null),this._prepareDefines(e,t,r,o,a),!t.isDirty)return null;t.markAsProcessed();var s=this.getScene().getEngine(),c=new po.a,l=0;t.USESPHERICALINVERTEX&&c.addFallback(l++,\"USESPHERICALINVERTEX\"),t.FOG&&c.addFallback(l,\"FOG\"),t.SPECULARAA&&c.addFallback(l,\"SPECULARAA\"),t.POINTSIZE&&c.addFallback(l,\"POINTSIZE\"),t.LOGARITHMICDEPTH&&c.addFallback(l,\"LOGARITHMICDEPTH\"),t.PARALLAX&&c.addFallback(l,\"PARALLAX\"),t.PARALLAXOCCLUSION&&c.addFallback(l++,\"PARALLAXOCCLUSION\"),l=So.AddFallbacks(t,c,l),l=So.AddFallbacks(t,c,l),l=Co.AddFallbacks(t,c,l),l=Po.AddFallbacks(t,c,l),t.ENVIRONMENTBRDF&&c.addFallback(l++,\"ENVIRONMENTBRDF\"),t.TANGENT&&c.addFallback(l++,\"TANGENT\"),t.BUMP&&c.addFallback(l++,\"BUMP\"),l=ro.a.HandleFallbacksForShadows(t,c,this._maxSimultaneousLights,l++),t.SPECULARTERM&&c.addFallback(l++,\"SPECULARTERM\"),t.USESPHERICALFROMREFLECTIONMAP&&c.addFallback(l++,\"USESPHERICALFROMREFLECTIONMAP\"),t.USEIRRADIANCEMAP&&c.addFallback(l++,\"USEIRRADIANCEMAP\"),t.LIGHTMAP&&c.addFallback(l++,\"LIGHTMAP\"),t.NORMAL&&c.addFallback(l++,\"NORMAL\"),t.AMBIENT&&c.addFallback(l++,\"AMBIENT\"),t.EMISSIVE&&c.addFallback(l++,\"EMISSIVE\"),t.VERTEXCOLOR&&c.addFallback(l++,\"VERTEXCOLOR\"),t.MORPHTARGETS&&c.addFallback(l++,\"MORPHTARGETS\"),t.MULTIVIEW&&c.addFallback(0,\"MULTIVIEW\");var u=[Qi.b.PositionKind];t.NORMAL&&u.push(Qi.b.NormalKind),t.TANGENT&&u.push(Qi.b.TangentKind),t.UV1&&u.push(Qi.b.UVKind),t.UV2&&u.push(Qi.b.UV2Kind),t.VERTEXCOLOR&&u.push(Qi.b.ColorKind),ro.a.PrepareAttributesForBones(u,e,t,c),ro.a.PrepareAttributesForInstances(u,t),ro.a.PrepareAttributesForMorphTargets(u,e,t);var h=\"pbr\",d=[\"world\",\"view\",\"viewProjection\",\"vEyePosition\",\"vLightsType\",\"vAmbientColor\",\"vAlbedoColor\",\"vReflectivityColor\",\"vMetallicReflectanceFactors\",\"vEmissiveColor\",\"visibility\",\"vReflectionColor\",\"vFogInfos\",\"vFogColor\",\"pointSize\",\"vAlbedoInfos\",\"vAmbientInfos\",\"vOpacityInfos\",\"vReflectionInfos\",\"vReflectionPosition\",\"vReflectionSize\",\"vEmissiveInfos\",\"vReflectivityInfos\",\"vReflectionFilteringInfo\",\"vMetallicReflectanceInfos\",\"vMicroSurfaceSamplerInfos\",\"vBumpInfos\",\"vLightmapInfos\",\"mBones\",\"vClipPlane\",\"vClipPlane2\",\"vClipPlane3\",\"vClipPlane4\",\"vClipPlane5\",\"vClipPlane6\",\"albedoMatrix\",\"ambientMatrix\",\"opacityMatrix\",\"reflectionMatrix\",\"emissiveMatrix\",\"reflectivityMatrix\",\"normalMatrix\",\"microSurfaceSamplerMatrix\",\"bumpMatrix\",\"lightmapMatrix\",\"metallicReflectanceMatrix\",\"vLightingIntensity\",\"logarithmicDepthConstant\",\"vSphericalX\",\"vSphericalY\",\"vSphericalZ\",\"vSphericalXX_ZZ\",\"vSphericalYY_ZZ\",\"vSphericalZZ\",\"vSphericalXY\",\"vSphericalYZ\",\"vSphericalZX\",\"vSphericalL00\",\"vSphericalL1_1\",\"vSphericalL10\",\"vSphericalL11\",\"vSphericalL2_2\",\"vSphericalL2_1\",\"vSphericalL20\",\"vSphericalL21\",\"vSphericalL22\",\"vReflectionMicrosurfaceInfos\",\"vTangentSpaceParams\",\"boneTextureWidth\",\"vDebugMode\"],f=[\"albedoSampler\",\"reflectivitySampler\",\"ambientSampler\",\"emissiveSampler\",\"bumpSampler\",\"lightmapSampler\",\"opacitySampler\",\"reflectionSampler\",\"reflectionSamplerLow\",\"reflectionSamplerHigh\",\"irradianceSampler\",\"microSurfaceSampler\",\"environmentBrdfSampler\",\"boneSampler\",\"metallicReflectanceSampler\"],p=[\"Material\",\"Scene\"];da.a.AddUniforms(d),da.a.AddSamplers(f),Co.AddUniforms(d),Co.AddSamplers(f),Eo.AddUniforms(d),Eo.AddSamplers(f),So.AddUniforms(d),So.AddSamplers(f),Po.AddUniforms(d),Po.AddSamplers(f),Ro.a.AddUniforms(d),Ro.a.AddSamplers(d),ji.a&&(ji.a.PrepareUniforms(d,t),ji.a.PrepareSamplers(f,t)),ro.a.PrepareUniformsAndSamplersList({uniformsNames:d,uniformBuffersNames:p,samplers:f,defines:t,maxSimultaneousLights:this._maxSimultaneousLights});var _={};this.customShaderNameResolve&&(h=this.customShaderNameResolve(h,d,p,f,t,u,_));var m=t.toString();return s.createEffect(h,{attributes:u,uniformsNames:d,uniformBuffersNames:p,samplers:f,defines:m,fallbacks:c,onCompiled:i,onError:n,indexParameters:{maxSimultaneousLights:this._maxSimultaneousLights,maxSimultaneousMorphTargets:t.NUM_MORPH_INFLUENCERS},processFinalCode:_.processFinalCode,multiTarget:t.PREPASS},s)},t.prototype._prepareDefines=function(e,i,n,r,o){void 0===n&&(n=null),void 0===r&&(r=null),void 0===o&&(o=!1);var a=this.getScene(),s=a.getEngine();if(ro.a.PrepareDefinesForLights(a,e,i,!0,this._maxSimultaneousLights,this._disableLighting),i._needNormals=!0,ro.a.PrepareDefinesForMultiview(a,i),ro.a.PrepareDefinesForPrePass(a,i,this.canRenderToMRT),i.METALLICWORKFLOW=this.isMetallicWorkflow(),i._areTexturesDirty){if(i._needUVs=!1,a.texturesEnabled){a.getEngine().getCaps().textureLOD&&(i.LODBASEDMICROSFURACE=!0),this._albedoTexture&&so.a.DiffuseTextureEnabled?(ro.a.PrepareDefinesForMergedUV(this._albedoTexture,i,\"ALBEDO\"),i.GAMMAALBEDO=this._albedoTexture.gammaSpace):i.ALBEDO=!1,this._ambientTexture&&so.a.AmbientTextureEnabled?(ro.a.PrepareDefinesForMergedUV(this._ambientTexture,i,\"AMBIENT\"),i.AMBIENTINGRAYSCALE=this._useAmbientInGrayScale):i.AMBIENT=!1,this._opacityTexture&&so.a.OpacityTextureEnabled?(ro.a.PrepareDefinesForMergedUV(this._opacityTexture,i,\"OPACITY\"),i.OPACITYRGB=this._opacityTexture.getAlphaFromRGB):i.OPACITY=!1;var c=this._getReflectionTexture();if(c&&so.a.ReflectionTextureEnabled){switch(i.REFLECTION=!0,i.GAMMAREFLECTION=c.gammaSpace,i.RGBDREFLECTION=c.isRGBD,i.REFLECTIONMAP_OPPOSITEZ=this.getScene().useRightHandedSystem?!c.invertZ:c.invertZ,i.LODINREFLECTIONALPHA=c.lodLevelInAlpha,i.LINEARSPECULARREFLECTION=c.linearSpecularLOD,this.realTimeFiltering&&this.realTimeFilteringQuality>0?(i.NUM_SAMPLES=\"\"+this.realTimeFilteringQuality,s.webGLVersion>1&&(i.NUM_SAMPLES=i.NUM_SAMPLES+\"u\"),i.REALTIME_FILTERING=!0):i.REALTIME_FILTERING=!1,c.coordinatesMode===Ke.a.INVCUBIC_MODE&&(i.INVERTCUBICMAP=!0),i.REFLECTIONMAP_3D=c.isCube,i.REFLECTIONMAP_CUBIC=!1,i.REFLECTIONMAP_EXPLICIT=!1,i.REFLECTIONMAP_PLANAR=!1,i.REFLECTIONMAP_PROJECTION=!1,i.REFLECTIONMAP_SKYBOX=!1,i.REFLECTIONMAP_SPHERICAL=!1,i.REFLECTIONMAP_EQUIRECTANGULAR=!1,i.REFLECTIONMAP_EQUIRECTANGULAR_FIXED=!1,i.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED=!1,c.coordinatesMode){case Ke.a.EXPLICIT_MODE:i.REFLECTIONMAP_EXPLICIT=!0;break;case Ke.a.PLANAR_MODE:i.REFLECTIONMAP_PLANAR=!0;break;case Ke.a.PROJECTION_MODE:i.REFLECTIONMAP_PROJECTION=!0;break;case Ke.a.SKYBOX_MODE:i.REFLECTIONMAP_SKYBOX=!0;break;case Ke.a.SPHERICAL_MODE:i.REFLECTIONMAP_SPHERICAL=!0;break;case Ke.a.EQUIRECTANGULAR_MODE:i.REFLECTIONMAP_EQUIRECTANGULAR=!0;break;case Ke.a.FIXED_EQUIRECTANGULAR_MODE:i.REFLECTIONMAP_EQUIRECTANGULAR_FIXED=!0;break;case Ke.a.FIXED_EQUIRECTANGULAR_MIRRORED_MODE:i.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED=!0;break;case Ke.a.CUBIC_MODE:case Ke.a.INVCUBIC_MODE:default:i.REFLECTIONMAP_CUBIC=!0,i.USE_LOCAL_REFLECTIONMAP_CUBIC=!!c.boundingBoxSize}c.coordinatesMode!==Ke.a.SKYBOX_MODE&&(c.irradianceTexture?(i.USEIRRADIANCEMAP=!0,i.USESPHERICALFROMREFLECTIONMAP=!1):c.isCube&&(i.USESPHERICALFROMREFLECTIONMAP=!0,i.USEIRRADIANCEMAP=!1,this._forceIrradianceInFragment||this.realTimeFiltering||a.getEngine().getCaps().maxVaryingVectors<=8?i.USESPHERICALINVERTEX=!1:i.USESPHERICALINVERTEX=!0))}else i.REFLECTION=!1,i.REFLECTIONMAP_3D=!1,i.REFLECTIONMAP_SPHERICAL=!1,i.REFLECTIONMAP_PLANAR=!1,i.REFLECTIONMAP_CUBIC=!1,i.USE_LOCAL_REFLECTIONMAP_CUBIC=!1,i.REFLECTIONMAP_PROJECTION=!1,i.REFLECTIONMAP_SKYBOX=!1,i.REFLECTIONMAP_EXPLICIT=!1,i.REFLECTIONMAP_EQUIRECTANGULAR=!1,i.REFLECTIONMAP_EQUIRECTANGULAR_FIXED=!1,i.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED=!1,i.INVERTCUBICMAP=!1,i.USESPHERICALFROMREFLECTIONMAP=!1,i.USEIRRADIANCEMAP=!1,i.USESPHERICALINVERTEX=!1,i.REFLECTIONMAP_OPPOSITEZ=!1,i.LODINREFLECTIONALPHA=!1,i.GAMMAREFLECTION=!1,i.RGBDREFLECTION=!1,i.LINEARSPECULARREFLECTION=!1;this._lightmapTexture&&so.a.LightmapTextureEnabled?(ro.a.PrepareDefinesForMergedUV(this._lightmapTexture,i,\"LIGHTMAP\"),i.USELIGHTMAPASSHADOWMAP=this._useLightmapAsShadowmap,i.GAMMALIGHTMAP=this._lightmapTexture.gammaSpace,i.RGBDLIGHTMAP=this._lightmapTexture.isRGBD):i.LIGHTMAP=!1,this._emissiveTexture&&so.a.EmissiveTextureEnabled?ro.a.PrepareDefinesForMergedUV(this._emissiveTexture,i,\"EMISSIVE\"):i.EMISSIVE=!1,so.a.SpecularTextureEnabled?(this._metallicTexture?(ro.a.PrepareDefinesForMergedUV(this._metallicTexture,i,\"REFLECTIVITY\"),i.ROUGHNESSSTOREINMETALMAPALPHA=this._useRoughnessFromMetallicTextureAlpha,i.ROUGHNESSSTOREINMETALMAPGREEN=!this._useRoughnessFromMetallicTextureAlpha&&this._useRoughnessFromMetallicTextureGreen,i.METALLNESSSTOREINMETALMAPBLUE=this._useMetallnessFromMetallicTextureBlue,i.AOSTOREINMETALMAPRED=this._useAmbientOcclusionFromMetallicTextureRed):this._reflectivityTexture?(ro.a.PrepareDefinesForMergedUV(this._reflectivityTexture,i,\"REFLECTIVITY\"),i.MICROSURFACEFROMREFLECTIVITYMAP=this._useMicroSurfaceFromReflectivityMapAlpha,i.MICROSURFACEAUTOMATIC=this._useAutoMicroSurfaceFromReflectivityMap):i.REFLECTIVITY=!1,this._metallicReflectanceTexture?ro.a.PrepareDefinesForMergedUV(this._metallicReflectanceTexture,i,\"METALLIC_REFLECTANCE\"):i.METALLIC_REFLECTANCE=!1,this._microSurfaceTexture?ro.a.PrepareDefinesForMergedUV(this._microSurfaceTexture,i,\"MICROSURFACEMAP\"):i.MICROSURFACEMAP=!1):(i.REFLECTIVITY=!1,i.MICROSURFACEMAP=!1),a.getEngine().getCaps().standardDerivatives&&this._bumpTexture&&so.a.BumpTextureEnabled&&!this._disableBumpMap?(ro.a.PrepareDefinesForMergedUV(this._bumpTexture,i,\"BUMP\"),this._useParallax&&this._albedoTexture&&so.a.DiffuseTextureEnabled?(i.PARALLAX=!0,i.PARALLAXOCCLUSION=!!this._useParallaxOcclusion):i.PARALLAX=!1,i.OBJECTSPACE_NORMALMAP=this._useObjectSpaceNormalMap):i.BUMP=!1,this._environmentBRDFTexture&&so.a.ReflectionTextureEnabled?(i.ENVIRONMENTBRDF=!0,i.ENVIRONMENTBRDF_RGBD=this._environmentBRDFTexture.isRGBD):(i.ENVIRONMENTBRDF=!1,i.ENVIRONMENTBRDF_RGBD=!1),this._shouldUseAlphaFromAlbedoTexture()?i.ALPHAFROMALBEDO=!0:i.ALPHAFROMALBEDO=!1}i.SPECULAROVERALPHA=this._useSpecularOverAlpha,this._lightFalloff===t.LIGHTFALLOFF_STANDARD?(i.USEPHYSICALLIGHTFALLOFF=!1,i.USEGLTFLIGHTFALLOFF=!1):this._lightFalloff===t.LIGHTFALLOFF_GLTF?(i.USEPHYSICALLIGHTFALLOFF=!1,i.USEGLTFLIGHTFALLOFF=!0):(i.USEPHYSICALLIGHTFALLOFF=!0,i.USEGLTFLIGHTFALLOFF=!1),i.RADIANCEOVERALPHA=this._useRadianceOverAlpha,!this.backFaceCulling&&this._twoSidedLighting?i.TWOSIDEDLIGHTING=!0:i.TWOSIDEDLIGHTING=!1,i.SPECULARAA=a.getEngine().getCaps().standardDerivatives&&this._enableSpecularAntiAliasing}(i._areTexturesDirty||i._areMiscDirty)&&(i.ALPHATESTVALUE=this._alphaCutOff+(this._alphaCutOff%1==0?\".\":\"\"),i.PREMULTIPLYALPHA=this.alphaMode===g.a.ALPHA_PREMULTIPLIED||this.alphaMode===g.a.ALPHA_PREMULTIPLIED_PORTERDUFF,i.ALPHABLEND=this.needAlphaBlendingForMesh(e),i.ALPHAFRESNEL=this._useAlphaFresnel||this._useLinearAlphaFresnel,i.LINEARALPHAFRESNEL=this._useLinearAlphaFresnel),i._areImageProcessingDirty&&this._imageProcessingConfiguration&&this._imageProcessingConfiguration.prepareDefines(i),i.FORCENORMALFORWARD=this._forceNormalForward,i.RADIANCEOCCLUSION=this._useRadianceOcclusion,i.HORIZONOCCLUSION=this._useHorizonOcclusion,i._areMiscDirty&&(ro.a.PrepareDefinesForMisc(e,a,this._useLogarithmicDepth,this.pointsCloud,this.fogEnabled,this._shouldTurnAlphaTestOn(e)||this._forceAlphaTest,i),i.UNLIT=this._unlit||(this.pointsCloud||this.wireframe)&&!e.isVerticesDataPresent(Qi.b.NormalKind),i.DEBUGMODE=this._debugMode),this.detailMap.prepareDefines(i,a),this.subSurface.prepareDefines(i,a),this.clearCoat.prepareDefines(i,a),this.anisotropy.prepareDefines(i,e,a),this.brdf.prepareDefines(i),this.sheen.prepareDefines(i,a),ro.a.PrepareDefinesForFrameBoundValues(a,s,i,!!n,r,o),ro.a.PrepareDefinesForAttributes(e,i,!0,!0,!0,this._transparencyMode!==t.PBRMATERIAL_OPAQUE)},t.prototype.forceCompilation=function(e,t,i){var n=this,r=Object(h.a)({clipPlane:!1,useInstances:!1},i),o=new pa,a=this._prepareEffect(e,o,void 0,void 0,r.useInstances,r.clipPlane,e.hasThinInstances);this._onEffectCreatedObservable&&(fa.effect=a,fa.subMesh=null,this._onEffectCreatedObservable.notifyObservers(fa)),a.isReady()?t&&t(this):a.onCompileObservable.add((function(){t&&t(n)}))},t.prototype.buildUniformLayout=function(){var e=this._uniformBuffer;e.addUniform(\"vAlbedoInfos\",2),e.addUniform(\"vAmbientInfos\",4),e.addUniform(\"vOpacityInfos\",2),e.addUniform(\"vEmissiveInfos\",2),e.addUniform(\"vLightmapInfos\",2),e.addUniform(\"vReflectivityInfos\",3),e.addUniform(\"vMicroSurfaceSamplerInfos\",2),e.addUniform(\"vReflectionInfos\",2),e.addUniform(\"vReflectionFilteringInfo\",2),e.addUniform(\"vReflectionPosition\",3),e.addUniform(\"vReflectionSize\",3),e.addUniform(\"vBumpInfos\",3),e.addUniform(\"albedoMatrix\",16),e.addUniform(\"ambientMatrix\",16),e.addUniform(\"opacityMatrix\",16),e.addUniform(\"emissiveMatrix\",16),e.addUniform(\"lightmapMatrix\",16),e.addUniform(\"reflectivityMatrix\",16),e.addUniform(\"microSurfaceSamplerMatrix\",16),e.addUniform(\"bumpMatrix\",16),e.addUniform(\"vTangentSpaceParams\",2),e.addUniform(\"reflectionMatrix\",16),e.addUniform(\"vReflectionColor\",3),e.addUniform(\"vAlbedoColor\",4),e.addUniform(\"vLightingIntensity\",4),e.addUniform(\"vReflectionMicrosurfaceInfos\",3),e.addUniform(\"pointSize\",1),e.addUniform(\"vReflectivityColor\",4),e.addUniform(\"vEmissiveColor\",3),e.addUniform(\"visibility\",1),e.addUniform(\"vMetallicReflectanceFactors\",4),e.addUniform(\"vMetallicReflectanceInfos\",2),e.addUniform(\"metallicReflectanceMatrix\",16),Eo.PrepareUniformBuffer(e),So.PrepareUniformBuffer(e),Po.PrepareUniformBuffer(e),Co.PrepareUniformBuffer(e),da.a.PrepareUniformBuffer(e),e.create()},t.prototype.unbind=function(){if(this._activeEffect){var t=!1;this._reflectionTexture&&this._reflectionTexture.isRenderTarget&&(this._activeEffect.setTexture(\"reflection2DSampler\",null),t=!0),this.subSurface.unbind(this._activeEffect)&&(t=!0),t&&this._markAllSubMeshesAsTexturesDirty()}e.prototype.unbind.call(this)},t.prototype.bindForSubMesh=function(e,t,i){var n=this.getScene(),r=i._materialDefines;if(r){var o=i.effect;if(o){this._activeEffect=o,r.INSTANCES&&!r.THIN_INSTANCES||this.bindOnlyWorldMatrix(e),this.prePassConfiguration.bindForSubMesh(this._activeEffect,n,t,e,this.isFrozen),r.OBJECTSPACE_NORMALMAP&&(e.toNormalMatrix(this._normalMatrix),this.bindOnlyNormalMatrix(this._normalMatrix));var a=this._mustRebind(n,o,t.visibility);ro.a.BindBonesParameters(t,this._activeEffect,this.prePassConfiguration);var c=null,l=this._uniformBuffer;if(a){var u=n.getEngine();if(l.bindToEffect(o,\"Material\"),this.bindViewProjection(o),c=this._getReflectionTexture(),!l.useUbo||!this.isFrozen||!l.isSync){if(n.texturesEnabled){if(this._albedoTexture&&so.a.DiffuseTextureEnabled&&(l.updateFloat2(\"vAlbedoInfos\",this._albedoTexture.coordinatesIndex,this._albedoTexture.level),ro.a.BindTextureMatrix(this._albedoTexture,l,\"albedo\")),this._ambientTexture&&so.a.AmbientTextureEnabled&&(l.updateFloat4(\"vAmbientInfos\",this._ambientTexture.coordinatesIndex,this._ambientTexture.level,this._ambientTextureStrength,this._ambientTextureImpactOnAnalyticalLights),ro.a.BindTextureMatrix(this._ambientTexture,l,\"ambient\")),this._opacityTexture&&so.a.OpacityTextureEnabled&&(l.updateFloat2(\"vOpacityInfos\",this._opacityTexture.coordinatesIndex,this._opacityTexture.level),ro.a.BindTextureMatrix(this._opacityTexture,l,\"opacity\")),c&&so.a.ReflectionTextureEnabled){if(l.updateMatrix(\"reflectionMatrix\",c.getReflectionTextureMatrix()),l.updateFloat2(\"vReflectionInfos\",c.level,0),c.boundingBoxSize){var h=c;l.updateVector3(\"vReflectionPosition\",h.boundingBoxPosition),l.updateVector3(\"vReflectionSize\",h.boundingBoxSize)}if(this.realTimeFiltering){var d=c.getSize().width;l.updateFloat2(\"vReflectionFilteringInfo\",d,L.a.Log2(d))}if(!r.USEIRRADIANCEMAP){var f=c.sphericalPolynomial;if(r.USESPHERICALFROMREFLECTIONMAP&&f)if(r.SPHERICAL_HARMONICS){var p=f.preScaledHarmonics;this._activeEffect.setVector3(\"vSphericalL00\",p.l00),this._activeEffect.setVector3(\"vSphericalL1_1\",p.l1_1),this._activeEffect.setVector3(\"vSphericalL10\",p.l10),this._activeEffect.setVector3(\"vSphericalL11\",p.l11),this._activeEffect.setVector3(\"vSphericalL2_2\",p.l2_2),this._activeEffect.setVector3(\"vSphericalL2_1\",p.l2_1),this._activeEffect.setVector3(\"vSphericalL20\",p.l20),this._activeEffect.setVector3(\"vSphericalL21\",p.l21),this._activeEffect.setVector3(\"vSphericalL22\",p.l22)}else this._activeEffect.setFloat3(\"vSphericalX\",f.x.x,f.x.y,f.x.z),this._activeEffect.setFloat3(\"vSphericalY\",f.y.x,f.y.y,f.y.z),this._activeEffect.setFloat3(\"vSphericalZ\",f.z.x,f.z.y,f.z.z),this._activeEffect.setFloat3(\"vSphericalXX_ZZ\",f.xx.x-f.zz.x,f.xx.y-f.zz.y,f.xx.z-f.zz.z),this._activeEffect.setFloat3(\"vSphericalYY_ZZ\",f.yy.x-f.zz.x,f.yy.y-f.zz.y,f.yy.z-f.zz.z),this._activeEffect.setFloat3(\"vSphericalZZ\",f.zz.x,f.zz.y,f.zz.z),this._activeEffect.setFloat3(\"vSphericalXY\",f.xy.x,f.xy.y,f.xy.z),this._activeEffect.setFloat3(\"vSphericalYZ\",f.yz.x,f.yz.y,f.yz.z),this._activeEffect.setFloat3(\"vSphericalZX\",f.zx.x,f.zx.y,f.zx.z)}l.updateFloat3(\"vReflectionMicrosurfaceInfos\",c.getSize().width,c.lodGenerationScale,c.lodGenerationOffset)}this._emissiveTexture&&so.a.EmissiveTextureEnabled&&(l.updateFloat2(\"vEmissiveInfos\",this._emissiveTexture.coordinatesIndex,this._emissiveTexture.level),ro.a.BindTextureMatrix(this._emissiveTexture,l,\"emissive\")),this._lightmapTexture&&so.a.LightmapTextureEnabled&&(l.updateFloat2(\"vLightmapInfos\",this._lightmapTexture.coordinatesIndex,this._lightmapTexture.level),ro.a.BindTextureMatrix(this._lightmapTexture,l,\"lightmap\")),so.a.SpecularTextureEnabled&&(this._metallicTexture?(l.updateFloat3(\"vReflectivityInfos\",this._metallicTexture.coordinatesIndex,this._metallicTexture.level,this._ambientTextureStrength),ro.a.BindTextureMatrix(this._metallicTexture,l,\"reflectivity\")):this._reflectivityTexture&&(l.updateFloat3(\"vReflectivityInfos\",this._reflectivityTexture.coordinatesIndex,this._reflectivityTexture.level,1),ro.a.BindTextureMatrix(this._reflectivityTexture,l,\"reflectivity\")),this._metallicReflectanceTexture&&(l.updateFloat2(\"vMetallicReflectanceInfos\",this._metallicReflectanceTexture.coordinatesIndex,this._metallicReflectanceTexture.level),ro.a.BindTextureMatrix(this._metallicReflectanceTexture,l,\"metallicReflectance\")),this._microSurfaceTexture&&(l.updateFloat2(\"vMicroSurfaceSamplerInfos\",this._microSurfaceTexture.coordinatesIndex,this._microSurfaceTexture.level),ro.a.BindTextureMatrix(this._microSurfaceTexture,l,\"microSurfaceSampler\"))),this._bumpTexture&&u.getCaps().standardDerivatives&&so.a.BumpTextureEnabled&&!this._disableBumpMap&&(l.updateFloat3(\"vBumpInfos\",this._bumpTexture.coordinatesIndex,this._bumpTexture.level,this._parallaxScaleBias),ro.a.BindTextureMatrix(this._bumpTexture,l,\"bump\"),n._mirroredCameraPosition?l.updateFloat2(\"vTangentSpaceParams\",this._invertNormalMapX?1:-1,this._invertNormalMapY?1:-1):l.updateFloat2(\"vTangentSpaceParams\",this._invertNormalMapX?-1:1,this._invertNormalMapY?-1:1))}if(this.pointsCloud&&l.updateFloat(\"pointSize\",this.pointSize),r.METALLICWORKFLOW){s.c.Color3[0].r=void 0===this._metallic||null===this._metallic?1:this._metallic,s.c.Color3[0].g=void 0===this._roughness||null===this._roughness?1:this._roughness,l.updateColor4(\"vReflectivityColor\",s.c.Color3[0],1);var _=this.subSurface.indexOfRefraction,m=Math.pow((_-1)/(_+1),2);this._metallicReflectanceColor.scaleToRef(m*this._metallicF0Factor,s.c.Color3[0]);var g=this._metallicF0Factor;l.updateColor4(\"vMetallicReflectanceFactors\",s.c.Color3[0],g)}else l.updateColor4(\"vReflectivityColor\",this._reflectivityColor,this._microSurface);l.updateColor3(\"vEmissiveColor\",so.a.EmissiveTextureEnabled?this._emissiveColor:s.a.BlackReadOnly),l.updateColor3(\"vReflectionColor\",this._reflectionColor),!r.SS_REFRACTION&&this.subSurface.linkRefractionWithTransparency?l.updateColor4(\"vAlbedoColor\",this._albedoColor,1):l.updateColor4(\"vAlbedoColor\",this._albedoColor,this.alpha),this._lightingInfos.x=this._directIntensity,this._lightingInfos.y=this._emissiveIntensity,this._lightingInfos.z=this._environmentIntensity*n.environmentIntensity,this._lightingInfos.w=this._specularIntensity,l.updateVector4(\"vLightingIntensity\",this._lightingInfos)}l.updateFloat(\"visibility\",t.visibility),n.texturesEnabled&&(this._albedoTexture&&so.a.DiffuseTextureEnabled&&l.setTexture(\"albedoSampler\",this._albedoTexture),this._ambientTexture&&so.a.AmbientTextureEnabled&&l.setTexture(\"ambientSampler\",this._ambientTexture),this._opacityTexture&&so.a.OpacityTextureEnabled&&l.setTexture(\"opacitySampler\",this._opacityTexture),c&&so.a.ReflectionTextureEnabled&&(r.LODBASEDMICROSFURACE?l.setTexture(\"reflectionSampler\",c):(l.setTexture(\"reflectionSampler\",c._lodTextureMid||c),l.setTexture(\"reflectionSamplerLow\",c._lodTextureLow||c),l.setTexture(\"reflectionSamplerHigh\",c._lodTextureHigh||c)),r.USEIRRADIANCEMAP&&l.setTexture(\"irradianceSampler\",c.irradianceTexture)),r.ENVIRONMENTBRDF&&l.setTexture(\"environmentBrdfSampler\",this._environmentBRDFTexture),this._emissiveTexture&&so.a.EmissiveTextureEnabled&&l.setTexture(\"emissiveSampler\",this._emissiveTexture),this._lightmapTexture&&so.a.LightmapTextureEnabled&&l.setTexture(\"lightmapSampler\",this._lightmapTexture),so.a.SpecularTextureEnabled&&(this._metallicTexture?l.setTexture(\"reflectivitySampler\",this._metallicTexture):this._reflectivityTexture&&l.setTexture(\"reflectivitySampler\",this._reflectivityTexture),this._metallicReflectanceTexture&&l.setTexture(\"metallicReflectanceSampler\",this._metallicReflectanceTexture),this._microSurfaceTexture&&l.setTexture(\"microSurfaceSampler\",this._microSurfaceTexture)),this._bumpTexture&&u.getCaps().standardDerivatives&&so.a.BumpTextureEnabled&&!this._disableBumpMap&&l.setTexture(\"bumpSampler\",this._bumpTexture)),this.detailMap.bindForSubMesh(l,n,this.isFrozen),this.subSurface.bindForSubMesh(l,n,u,this.isFrozen,r.LODBASEDMICROSFURACE,this.realTimeFiltering),this.clearCoat.bindForSubMesh(l,n,u,this._disableBumpMap,this.isFrozen,this._invertNormalMapX,this._invertNormalMapY,i),this.anisotropy.bindForSubMesh(l,n,this.isFrozen),this.sheen.bindForSubMesh(l,n,this.isFrozen,i),ro.a.BindClipPlane(this._activeEffect,n),n.ambientColor.multiplyToRef(this._ambientColor,this._globalAmbientColor);var v=n._forcedViewPosition?n._forcedViewPosition:n._mirroredCameraPosition?n._mirroredCameraPosition:n.activeCamera.globalPosition,b=n.useRightHandedSystem===(null!=n._mirroredCameraPosition);o.setFloat4(\"vEyePosition\",v.x,v.y,v.z,b?-1:1),o.setColor3(\"vAmbientColor\",this._globalAmbientColor),o.setFloat2(\"vDebugMode\",this.debugLimit,this.debugFactor)}!a&&this.isFrozen||(n.lightsEnabled&&!this._disableLighting&&ro.a.BindLights(n,t,this._activeEffect,r,this._maxSimultaneousLights,this._rebuildInParallel),(n.fogEnabled&&t.applyFog&&n.fogMode!==Q.a.FOGMODE_NONE||c)&&this.bindView(o),ro.a.BindFogParameters(n,t,this._activeEffect,!0),r.NUM_MORPH_INFLUENCERS&&ro.a.BindMorphTargetParameters(t,this._activeEffect),this._imageProcessingConfiguration.bind(this._activeEffect),ro.a.BindLogDepth(r,this._activeEffect,n)),l.update(),this._afterBind(t,this._activeEffect)}}},t.prototype.getAnimatables=function(){var e=[];return this._albedoTexture&&this._albedoTexture.animations&&this._albedoTexture.animations.length>0&&e.push(this._albedoTexture),this._ambientTexture&&this._ambientTexture.animations&&this._ambientTexture.animations.length>0&&e.push(this._ambientTexture),this._opacityTexture&&this._opacityTexture.animations&&this._opacityTexture.animations.length>0&&e.push(this._opacityTexture),this._reflectionTexture&&this._reflectionTexture.animations&&this._reflectionTexture.animations.length>0&&e.push(this._reflectionTexture),this._emissiveTexture&&this._emissiveTexture.animations&&this._emissiveTexture.animations.length>0&&e.push(this._emissiveTexture),this._metallicTexture&&this._metallicTexture.animations&&this._metallicTexture.animations.length>0?e.push(this._metallicTexture):this._reflectivityTexture&&this._reflectivityTexture.animations&&this._reflectivityTexture.animations.length>0&&e.push(this._reflectivityTexture),this._bumpTexture&&this._bumpTexture.animations&&this._bumpTexture.animations.length>0&&e.push(this._bumpTexture),this._lightmapTexture&&this._lightmapTexture.animations&&this._lightmapTexture.animations.length>0&&e.push(this._lightmapTexture),this.detailMap.getAnimatables(e),this.subSurface.getAnimatables(e),this.clearCoat.getAnimatables(e),this.sheen.getAnimatables(e),this.anisotropy.getAnimatables(e),e},t.prototype._getReflectionTexture=function(){return this._reflectionTexture?this._reflectionTexture:this.getScene().environmentTexture},t.prototype.getActiveTextures=function(){var t=e.prototype.getActiveTextures.call(this);return this._albedoTexture&&t.push(this._albedoTexture),this._ambientTexture&&t.push(this._ambientTexture),this._opacityTexture&&t.push(this._opacityTexture),this._reflectionTexture&&t.push(this._reflectionTexture),this._emissiveTexture&&t.push(this._emissiveTexture),this._reflectivityTexture&&t.push(this._reflectivityTexture),this._metallicTexture&&t.push(this._metallicTexture),this._metallicReflectanceTexture&&t.push(this._metallicReflectanceTexture),this._microSurfaceTexture&&t.push(this._microSurfaceTexture),this._bumpTexture&&t.push(this._bumpTexture),this._lightmapTexture&&t.push(this._lightmapTexture),this.detailMap.getActiveTextures(t),this.subSurface.getActiveTextures(t),this.clearCoat.getActiveTextures(t),this.sheen.getActiveTextures(t),this.anisotropy.getActiveTextures(t),t},t.prototype.hasTexture=function(t){return!!e.prototype.hasTexture.call(this,t)||(this._albedoTexture===t||(this._ambientTexture===t||(this._opacityTexture===t||(this._reflectionTexture===t||(this._reflectivityTexture===t||(this._metallicTexture===t||(this._metallicReflectanceTexture===t||(this._microSurfaceTexture===t||(this._bumpTexture===t||(this._lightmapTexture===t||(this.detailMap.hasTexture(t)||this.subSurface.hasTexture(t)||this.clearCoat.hasTexture(t)||this.sheen.hasTexture(t)||this.anisotropy.hasTexture(t))))))))))))},t.prototype.setPrePassRenderer=function(e){if(this.subSurface.isScatteringEnabled){var t=this.getScene().enableSubSurfaceForPrePass();return t&&(t.enabled=!0),!0}return!1},t.prototype.dispose=function(t,i){var n,r,o,a,s,c,l,u,h,d,f;i&&(this._environmentBRDFTexture&&this.getScene().environmentBRDFTexture!==this._environmentBRDFTexture&&this._environmentBRDFTexture.dispose(),null===(n=this._albedoTexture)||void 0===n||n.dispose(),null===(r=this._ambientTexture)||void 0===r||r.dispose(),null===(o=this._opacityTexture)||void 0===o||o.dispose(),null===(a=this._reflectionTexture)||void 0===a||a.dispose(),null===(s=this._emissiveTexture)||void 0===s||s.dispose(),null===(c=this._metallicTexture)||void 0===c||c.dispose(),null===(l=this._reflectivityTexture)||void 0===l||l.dispose(),null===(u=this._bumpTexture)||void 0===u||u.dispose(),null===(h=this._lightmapTexture)||void 0===h||h.dispose(),null===(d=this._metallicReflectanceTexture)||void 0===d||d.dispose(),null===(f=this._microSurfaceTexture)||void 0===f||f.dispose()),this.detailMap.dispose(i),this.subSurface.dispose(i),this.clearCoat.dispose(i),this.sheen.dispose(i),this.anisotropy.dispose(i),this._renderTargets.dispose(),this._imageProcessingConfiguration&&this._imageProcessingObserver&&this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),e.prototype.dispose.call(this,t,i)},t.PBRMATERIAL_OPAQUE=xo.a.MATERIAL_OPAQUE,t.PBRMATERIAL_ALPHATEST=xo.a.MATERIAL_ALPHATEST,t.PBRMATERIAL_ALPHABLEND=xo.a.MATERIAL_ALPHABLEND,t.PBRMATERIAL_ALPHATESTANDBLEND=xo.a.MATERIAL_ALPHATESTANDBLEND,t.DEFAULT_AO_ON_ANALYTICAL_LIGHTS=0,t.LIGHTFALLOFF_PHYSICAL=0,t.LIGHTFALLOFF_GLTF=1,t.LIGHTFALLOFF_STANDARD=2,Object(h.c)([Object(w.i)()],t.prototype,\"_imageProcessingConfiguration\",void 0),Object(h.c)([Object(w.b)(\"_markAllSubMeshesAsMiscDirty\")],t.prototype,\"debugMode\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"useLogarithmicDepth\",null),t}(ao.a),ma=function(e){function t(i,n){var r=e.call(this,i,n)||this;return r.directIntensity=1,r.emissiveIntensity=1,r.environmentIntensity=1,r.specularIntensity=1,r.disableBumpMap=!1,r.ambientTextureStrength=1,r.ambientTextureImpactOnAnalyticalLights=t.DEFAULT_AO_ON_ANALYTICAL_LIGHTS,r.metallicF0Factor=1,r.metallicReflectanceColor=s.a.White(),r.ambientColor=new s.a(0,0,0),r.albedoColor=new s.a(1,1,1),r.reflectivityColor=new s.a(1,1,1),r.reflectionColor=new s.a(1,1,1),r.emissiveColor=new s.a(0,0,0),r.microSurface=1,r.useLightmapAsShadowmap=!1,r.useAlphaFromAlbedoTexture=!1,r.forceAlphaTest=!1,r.alphaCutOff=.4,r.useSpecularOverAlpha=!0,r.useMicroSurfaceFromReflectivityMapAlpha=!1,r.useRoughnessFromMetallicTextureAlpha=!0,r.useRoughnessFromMetallicTextureGreen=!1,r.useMetallnessFromMetallicTextureBlue=!1,r.useAmbientOcclusionFromMetallicTextureRed=!1,r.useAmbientInGrayScale=!1,r.useAutoMicroSurfaceFromReflectivityMap=!1,r.useRadianceOverAlpha=!0,r.useObjectSpaceNormalMap=!1,r.useParallax=!1,r.useParallaxOcclusion=!1,r.parallaxScaleBias=.05,r.disableLighting=!1,r.forceIrradianceInFragment=!1,r.maxSimultaneousLights=4,r.invertNormalMapX=!1,r.invertNormalMapY=!1,r.twoSidedLighting=!1,r.useAlphaFresnel=!1,r.useLinearAlphaFresnel=!1,r.environmentBRDFTexture=null,r.forceNormalForward=!1,r.enableSpecularAntiAliasing=!1,r.useHorizonOcclusion=!0,r.useRadianceOcclusion=!0,r.unlit=!1,r._environmentBRDFTexture=To.GetEnvironmentBRDFTexture(n),r}return Object(h.d)(t,e),Object.defineProperty(t.prototype,\"refractionTexture\",{get:function(){return this.subSurface.refractionTexture},set:function(e){this.subSurface.refractionTexture=e,e?this.subSurface.isRefractionEnabled=!0:this.subSurface.linkRefractionWithTransparency||(this.subSurface.isRefractionEnabled=!1)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"indexOfRefraction\",{get:function(){return this.subSurface.indexOfRefraction},set:function(e){this.subSurface.indexOfRefraction=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"invertRefractionY\",{get:function(){return this.subSurface.invertRefractionY},set:function(e){this.subSurface.invertRefractionY=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"linkRefractionWithTransparency\",{get:function(){return this.subSurface.linkRefractionWithTransparency},set:function(e){this.subSurface.linkRefractionWithTransparency=e,e&&(this.subSurface.isRefractionEnabled=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"usePhysicalLightFalloff\",{get:function(){return this._lightFalloff===_a.LIGHTFALLOFF_PHYSICAL},set:function(e){e!==this.usePhysicalLightFalloff&&(this._markAllSubMeshesAsTexturesDirty(),this._lightFalloff=e?_a.LIGHTFALLOFF_PHYSICAL:_a.LIGHTFALLOFF_STANDARD)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"useGLTFLightFalloff\",{get:function(){return this._lightFalloff===_a.LIGHTFALLOFF_GLTF},set:function(e){e!==this.useGLTFLightFalloff&&(this._markAllSubMeshesAsTexturesDirty(),this._lightFalloff=e?_a.LIGHTFALLOFF_GLTF:_a.LIGHTFALLOFF_STANDARD)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"imageProcessingConfiguration\",{get:function(){return this._imageProcessingConfiguration},set:function(e){this._attachImageProcessingConfiguration(e),this._markAllSubMeshesAsTexturesDirty()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"cameraColorCurvesEnabled\",{get:function(){return this.imageProcessingConfiguration.colorCurvesEnabled},set:function(e){this.imageProcessingConfiguration.colorCurvesEnabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"cameraColorGradingEnabled\",{get:function(){return this.imageProcessingConfiguration.colorGradingEnabled},set:function(e){this.imageProcessingConfiguration.colorGradingEnabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"cameraToneMappingEnabled\",{get:function(){return this._imageProcessingConfiguration.toneMappingEnabled},set:function(e){this._imageProcessingConfiguration.toneMappingEnabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"cameraExposure\",{get:function(){return this._imageProcessingConfiguration.exposure},set:function(e){this._imageProcessingConfiguration.exposure=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"cameraContrast\",{get:function(){return this._imageProcessingConfiguration.contrast},set:function(e){this._imageProcessingConfiguration.contrast=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"cameraColorGradingTexture\",{get:function(){return this._imageProcessingConfiguration.colorGradingTexture},set:function(e){this._imageProcessingConfiguration.colorGradingTexture=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"cameraColorCurves\",{get:function(){return this._imageProcessingConfiguration.colorCurves},set:function(e){this._imageProcessingConfiguration.colorCurves=e},enumerable:!1,configurable:!0}),t.prototype.getClassName=function(){return\"PBRMaterial\"},t.prototype.clone=function(e){var i=this,n=w.a.Clone((function(){return new t(e,i.getScene())}),this);return n.id=e,n.name=e,this.clearCoat.copyTo(n.clearCoat),this.anisotropy.copyTo(n.anisotropy),this.brdf.copyTo(n.brdf),this.sheen.copyTo(n.sheen),this.subSurface.copyTo(n.subSurface),n},t.prototype.serialize=function(){var e=w.a.Serialize(this);return e.customType=\"BABYLON.PBRMaterial\",e.clearCoat=this.clearCoat.serialize(),e.anisotropy=this.anisotropy.serialize(),e.brdf=this.brdf.serialize(),e.sheen=this.sheen.serialize(),e.subSurface=this.subSurface.serialize(),e},t.Parse=function(e,i,n){var r=w.a.Parse((function(){return new t(e.name,i)}),e,i,n);return e.clearCoat&&r.clearCoat.parse(e.clearCoat,i,n),e.anisotropy&&r.anisotropy.parse(e.anisotropy,i,n),e.brdf&&r.brdf.parse(e.brdf,i,n),e.sheen&&r.sheen.parse(e.sheen,i,n),e.subSurface&&r.subSurface.parse(e.subSurface,i,n),r},t.PBRMATERIAL_OPAQUE=_a.PBRMATERIAL_OPAQUE,t.PBRMATERIAL_ALPHATEST=_a.PBRMATERIAL_ALPHATEST,t.PBRMATERIAL_ALPHABLEND=_a.PBRMATERIAL_ALPHABLEND,t.PBRMATERIAL_ALPHATESTANDBLEND=_a.PBRMATERIAL_ALPHATESTANDBLEND,t.DEFAULT_AO_ON_ANALYTICAL_LIGHTS=_a.DEFAULT_AO_ON_ANALYTICAL_LIGHTS,Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"directIntensity\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"emissiveIntensity\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"environmentIntensity\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"specularIntensity\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"disableBumpMap\",void 0),Object(h.c)([Object(w.m)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"albedoTexture\",void 0),Object(h.c)([Object(w.m)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"ambientTexture\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"ambientTextureStrength\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"ambientTextureImpactOnAnalyticalLights\",void 0),Object(h.c)([Object(w.m)(),Object(w.b)(\"_markAllSubMeshesAsTexturesAndMiscDirty\")],t.prototype,\"opacityTexture\",void 0),Object(h.c)([Object(w.m)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"reflectionTexture\",void 0),Object(h.c)([Object(w.m)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"emissiveTexture\",void 0),Object(h.c)([Object(w.m)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"reflectivityTexture\",void 0),Object(h.c)([Object(w.m)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"metallicTexture\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"metallic\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"roughness\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"metallicF0Factor\",void 0),Object(h.c)([Object(w.e)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"metallicReflectanceColor\",void 0),Object(h.c)([Object(w.m)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"metallicReflectanceTexture\",void 0),Object(h.c)([Object(w.m)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"microSurfaceTexture\",void 0),Object(h.c)([Object(w.m)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"bumpTexture\",void 0),Object(h.c)([Object(w.m)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\",null)],t.prototype,\"lightmapTexture\",void 0),Object(h.c)([Object(w.e)(\"ambient\"),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"ambientColor\",void 0),Object(h.c)([Object(w.e)(\"albedo\"),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"albedoColor\",void 0),Object(h.c)([Object(w.e)(\"reflectivity\"),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"reflectivityColor\",void 0),Object(h.c)([Object(w.e)(\"reflection\"),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"reflectionColor\",void 0),Object(h.c)([Object(w.e)(\"emissive\"),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"emissiveColor\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"microSurface\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"useLightmapAsShadowmap\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesAndMiscDirty\")],t.prototype,\"useAlphaFromAlbedoTexture\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesAndMiscDirty\")],t.prototype,\"forceAlphaTest\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesAndMiscDirty\")],t.prototype,\"alphaCutOff\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"useSpecularOverAlpha\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"useMicroSurfaceFromReflectivityMapAlpha\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"useRoughnessFromMetallicTextureAlpha\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"useRoughnessFromMetallicTextureGreen\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"useMetallnessFromMetallicTextureBlue\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"useAmbientOcclusionFromMetallicTextureRed\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"useAmbientInGrayScale\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"useAutoMicroSurfaceFromReflectivityMap\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"usePhysicalLightFalloff\",null),Object(h.c)([Object(w.c)()],t.prototype,\"useGLTFLightFalloff\",null),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"useRadianceOverAlpha\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"useObjectSpaceNormalMap\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"useParallax\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"useParallaxOcclusion\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"parallaxScaleBias\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsLightsDirty\")],t.prototype,\"disableLighting\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"forceIrradianceInFragment\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsLightsDirty\")],t.prototype,\"maxSimultaneousLights\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"invertNormalMapX\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"invertNormalMapY\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"twoSidedLighting\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"useAlphaFresnel\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"useLinearAlphaFresnel\",void 0),Object(h.c)([Object(w.m)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"environmentBRDFTexture\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"forceNormalForward\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"enableSpecularAntiAliasing\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"useHorizonOcclusion\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsTexturesDirty\")],t.prototype,\"useRadianceOcclusion\",void 0),Object(h.c)([Object(w.c)(),Object(w.b)(\"_markAllSubMeshesAsMiscDirty\")],t.prototype,\"unlit\",void 0),t}(_a);c.a.RegisteredTypes[\"BABYLON.PBRMaterial\"]=ma;function ga(e){return e.charCodeAt(0)+(e.charCodeAt(1)<<8)+(e.charCodeAt(2)<<16)+(e.charCodeAt(3)<<24)}var va=ga(\"DXT1\"),ba=ga(\"DXT3\"),ya=ga(\"DXT5\"),Ta=ga(\"DX10\"),Ea=function(){function e(){}return e.GetDDSInfo=function(e){var t=new Int32Array(e.buffer,e.byteOffset,31),i=new Int32Array(e.buffer,e.byteOffset,35),n=1;131072&t[2]&&(n=Math.max(1,t[7]));var r=t[21],o=r===Ta?i[32]:0,a=g.a.TEXTURETYPE_UNSIGNED_INT;switch(r){case 113:a=g.a.TEXTURETYPE_HALF_FLOAT;break;case 116:a=g.a.TEXTURETYPE_FLOAT;break;case Ta:if(10===o){a=g.a.TEXTURETYPE_HALF_FLOAT;break}if(2===o){a=g.a.TEXTURETYPE_FLOAT;break}}return{width:t[4],height:t[3],mipmapCount:n,isFourCC:4==(4&t[20]),isRGB:64==(64&t[20]),isLuminance:131072==(131072&t[20]),isCube:512==(512&t[28]),isCompressed:r===va||r===ba||r===ya,dxgiFormat:o,textureType:a}},e._ToHalfFloat=function(t){e._FloatView||(e._FloatView=new Float32Array(1),e._Int32View=new Int32Array(e._FloatView.buffer)),e._FloatView[0]=t;var i=e._Int32View[0],n=i>>16&32768,r=i>>12&2047,o=i>>23&255;return o<103?n:o>142?(n|=31744,n|=(255==o?0:1)&&8388607&i):o<113?n|=((r|=2048)>>114-o)+(r>>113-o&1):(n|=o-112<<10|r>>1,n+=1&r)},e._FromHalfFloat=function(e){var t=(32768&e)>>15,i=(31744&e)>>10,n=1023&e;return 0===i?(t?-1:1)*Math.pow(2,-14)*(n/Math.pow(2,10)):31==i?n?NaN:1/0*(t?-1:1):(t?-1:1)*Math.pow(2,i-15)*(1+n/Math.pow(2,10))},e._GetHalfFloatAsFloatRGBAArrayBuffer=function(t,i,n,r,o,a){for(var s=new Float32Array(r),c=new Uint16Array(o,n),l=0,u=0;u>8)},e._GetRGBArrayBuffer=function(e,t,i,n,r,o,a,s){for(var c=new Uint8Array(n),l=new Uint8Array(r,i),u=0,h=0;h>8&255,P>>16&255,P>>24&255)))}var x=e._ExtractLongWordOrder(y[23]),O=e._ExtractLongWordOrder(y[24]),M=e._ExtractLongWordOrder(y[25]),I=e._ExtractLongWordOrder(y[26]);C&&(E=t._getRGBABufferInternalSizedFormat(r.textureType)),_=1,131072&y[2]&&!1!==o&&(_=Math.max(1,y[7]));for(var D=c||0;D0?r.sphericalPolynomial=$n.ConvertCubeMapToSphericalPolynomial({size:y[4],right:l[0],left:l[1],up:l[2],down:l[3],front:l[4],back:l[5],format:g.a.TEXTUREFORMAT_RGBA,type:g.a.TEXTURETYPE_FLOAT,gammaSpace:!1}):r.sphericalPolynomial=void 0}else m.a.Error(\"Compressed textures are not supported on this platform.\");else m.a.Error(\"Unsupported format, must contain a FourCC, RGB or LUMINANCE code\");else m.a.Error(\"Invalid magic number in DDS header\")},e.StoreLODInAlphaChannel=!1,e}();qe.a.prototype.createPrefilteredCubeTexture=function(e,t,i,n,r,o,a,s,c){var l=this;void 0===r&&(r=null),void 0===o&&(o=null),void 0===s&&(s=null),void 0===c&&(c=!0);return this.createCubeTexture(e,t,null,!1,(function(e){if(e){var o=e.texture;if(c?e.info.sphericalPolynomial&&(o._sphericalPolynomial=e.info.sphericalPolynomial):o._sphericalPolynomial=new qn,o._source=Qe.b.CubePrefiltered,l.getCaps().textureLOD)r&&r(o);else{var a=l._gl,s=e.width;if(s){for(var u=[],h=0;h<3;h++){var d=1-h/2,f=n,p=L.a.Log2(s)*i+n,_=f+(p-f)*d,v=Math.round(Math.min(Math.max(_,0),p)),b=new Qe.a(l,Qe.b.Temp);if(b.type=o.type,b.format=o.format,b.width=Math.pow(2,Math.max(L.a.Log2(s)-v,0)),b.height=b.width,b.isCube=!0,l._bindTextureDirectly(a.TEXTURE_CUBE_MAP,b,!0),b.samplingMode=g.a.TEXTURE_LINEAR_LINEAR,a.texParameteri(a.TEXTURE_CUBE_MAP,a.TEXTURE_MAG_FILTER,a.LINEAR),a.texParameteri(a.TEXTURE_CUBE_MAP,a.TEXTURE_MIN_FILTER,a.LINEAR),a.texParameteri(a.TEXTURE_CUBE_MAP,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_CUBE_MAP,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE),e.isDDS){var y=e.info,T=e.data;l._unpackFlipY(y.isCompressed),Ea.UploadDDSLevels(l,b,T,y,!0,6,v)}else m.a.Warn(\"DDS is the only prefiltered cube map supported so far.\");l._bindTextureDirectly(a.TEXTURE_CUBE_MAP,null);var E=new Zn.a(t);E.isCube=!0,E._texture=b,b.isReady=!0,u.push(E)}o._lodTextureHigh=u[2],o._lodTextureMid=u[1],o._lodTextureLow=u[0],r&&r(o)}}}else r&&r(null)}),o,a,s,c,i,n)};var Sa=function(){function e(){this.supportCascades=!0}return e.prototype.canLoad=function(e){return io.a.EndsWith(e,\".dds\")},e.prototype.loadCubeData=function(e,t,i,n,r){var o,a=t.getEngine(),s=!1;if(Array.isArray(e))for(var c=0;c1)&&t.generateMipMaps,a._unpackFlipY(o.isCompressed),Ea.UploadDDSLevels(a,t,l,o,s,6,-1,c),o.isFourCC||1!==o.mipmapCount||a.generateMipMapsForCubemap(t)}else{var u=e;o=Ea.GetDDSInfo(u),t.width=o.width,t.height=o.height,i&&(o.sphericalPolynomial=new qn),s=(o.isRGB||o.isLuminance||o.mipmapCount>1)&&t.generateMipMaps,a._unpackFlipY(o.isCompressed),Ea.UploadDDSLevels(a,t,u,o,s,6),o.isFourCC||1!==o.mipmapCount||a.generateMipMapsForCubemap(t,!1)}a._setCubeMapTextureParams(t,s),t.isReady=!0,t.onLoadedObservable.notifyObservers(t),t.onLoadedObservable.clear(),n&&n({isDDS:!0,width:t.width,info:o,data:e,texture:t})},e.prototype.loadData=function(e,t,i){var n=Ea.GetDDSInfo(e),r=(n.isRGB||n.isLuminance||n.mipmapCount>1)&&t.generateMipMaps&&n.width>>n.mipmapCount-1==1;i(n.width,n.height,r,n.isFourCC,(function(){Ea.UploadDDSLevels(t.getEngine(),t,e,n,r,1)}))},e}();Se.a._TextureLoaders.push(new Sa);var Aa=function(){function e(){this.supportCascades=!1}return e.prototype.canLoad=function(e){return io.a.EndsWith(e,\".env\")},e.prototype.loadCubeData=function(e,t,i,n,r){if(!Array.isArray(e)){var o=ir.GetEnvInfo(e);o?(t.width=o.width,t.height=o.width,ir.UploadEnvSpherical(t,o),ir.UploadEnvLevelsAsync(t,e,o).then((function(){t.isReady=!0,t.onLoadedObservable.notifyObservers(t),t.onLoadedObservable.clear(),n&&n()}))):r&&r(\"Can not parse the environment file\",null)}},e.prototype.loadData=function(e,t,i){throw\".env not supported in 2d.\"},e}();Se.a._TextureLoaders.push(new Aa);var Pa=function(){function e(t,i,n,r){if(this.data=t,this.isInvalid=!1,!e.IsValid(t))return this.isInvalid=!0,void m.a.Error(\"texture missing KTX identifier\");var o=Uint32Array.BYTES_PER_ELEMENT,a=new DataView(this.data.buffer,this.data.byteOffset+12,13*o),s=67305985===a.getUint32(0,!0);this.glType=a.getUint32(1*o,s),this.glTypeSize=a.getUint32(2*o,s),this.glFormat=a.getUint32(3*o,s),this.glInternalFormat=a.getUint32(4*o,s),this.glBaseInternalFormat=a.getUint32(5*o,s),this.pixelWidth=a.getUint32(6*o,s),this.pixelHeight=a.getUint32(7*o,s),this.pixelDepth=a.getUint32(8*o,s),this.numberOfArrayElements=a.getUint32(9*o,s),this.numberOfFaces=a.getUint32(10*o,s),this.numberOfMipmapLevels=a.getUint32(11*o,s),this.bytesOfKeyValueData=a.getUint32(12*o,s),0===this.glType?(this.numberOfMipmapLevels=Math.max(1,this.numberOfMipmapLevels),0!==this.pixelHeight&&0===this.pixelDepth?0===this.numberOfArrayElements?this.numberOfFaces===i?this.loadType=e.COMPRESSED_2D:m.a.Error(\"number of faces expected\"+i+\", but found \"+this.numberOfFaces):m.a.Error(\"texture arrays not currently supported\"):m.a.Error(\"only 2D textures currently supported\")):m.a.Error(\"only compressed formats currently supported\")}return e.prototype.uploadLevels=function(t,i){switch(this.loadType){case e.COMPRESSED_2D:this._upload2DCompressedLevels(t,i);break;case e.TEX_2D:case e.COMPRESSED_3D:case e.TEX_3D:}},e.prototype._upload2DCompressedLevels=function(t,i){for(var n=e.HEADER_LEN+this.bytesOfKeyValueData,r=this.pixelWidth,o=this.pixelHeight,a=i?this.numberOfMipmapLevels:1,s=0;s=12){var t=new Uint8Array(e.buffer,e.byteOffset,12);if(171===t[0]&&75===t[1]&&84===t[2]&&88===t[3]&&32===t[4]&&49===t[5]&&49===t[6]&&187===t[7]&&13===t[8]&&10===t[9]&&26===t[10]&&10===t[11])return!0}return!1},e.HEADER_LEN=64,e.COMPRESSED_2D=0,e.COMPRESSED_3D=1,e.TEX_2D=2,e.TEX_3D=3,e}(),Ca=function(){function e(e){this._pendingActions=new Array,this._workerInfos=e.map((function(e){return{worker:e,active:!1}}))}return e.prototype.dispose=function(){for(var e=0,t=this._workerInfos;e1,t.isReady=!0,this._engine._bindTextureDirectly(this._engine._gl.TEXTURE_2D,null)},e.IsValid=function(e){if(e.byteLength>=12){var t=new Uint8Array(e.buffer,e.byteOffset,12);if(171===t[0]&&75===t[1]&&84===t[2]&&88===t[3]&&32===t[4]&&50===t[5]&&48===t[6]&&187===t[7]&&13===t[8]&&10===t[9]&&26===t[10]&&10===t[11])return!0}return!1},e.URLConfig={jsDecoderModule:\"https://preview.babylonjs.com/babylon.ktx2Decoder.js\",wasmUASTCToASTC:null,wasmUASTCToBC7:null,wasmUASTCToRGBA_UNORM:null,wasmUASTCToRGBA_SRGB:null,jsMSCTranscoder:null,wasmMSCTranscoder:null},e.DefaultNumWorkers=e.GetDefaultNumWorkers(),e}();function xa(){var e;onmessage=function(t){switch(t.data.action){case\"init\":var i=t.data.urls;importScripts(i.jsDecoderModule),null!==i.wasmUASTCToASTC&&(KTX2DECODER.LiteTranscoder_UASTC_ASTC.WasmModuleURL=i.wasmUASTCToASTC),null!==i.wasmUASTCToBC7&&(KTX2DECODER.LiteTranscoder_UASTC_BC7.WasmModuleURL=i.wasmUASTCToBC7),null!==i.wasmUASTCToRGBA_UNORM&&(KTX2DECODER.LiteTranscoder_UASTC_RGBA_UNORM.WasmModuleURL=i.wasmUASTCToRGBA_UNORM),null!==i.wasmUASTCToRGBA_SRGB&&(KTX2DECODER.LiteTranscoder_UASTC_RGBA_SRGB.WasmModuleURL=i.wasmUASTCToRGBA_SRGB),null!==i.jsMSCTranscoder&&(KTX2DECODER.MSCTranscoder.JSModuleURL=i.jsMSCTranscoder),null!==i.wasmMSCTranscoder&&(KTX2DECODER.MSCTranscoder.WasmModuleURL=i.wasmMSCTranscoder),e=new KTX2DECODER.KTX2Decoder,postMessage({action:\"init\"});break;case\"decode\":e.decode(t.data.data,t.data.caps,t.data.options).then((function(e){for(var t=[],i=0;i1&&t.generateMipMaps;o._unpackFlipY(!0),a.uploadLevels(t,t.generateMipMaps),t.width=a.pixelWidth,t.height=a.pixelHeight,o._setCubeMapTextureParams(t,s),t.isReady=!0,t.onLoadedObservable.notifyObservers(t),t.onLoadedObservable.clear(),n&&n()}},e.prototype.loadData=function(e,t,i,n){if(Pa.IsValid(e)){t._invertVScale=!t.invertY;var r=new Pa(e,1);i(r.pixelWidth,r.pixelHeight,t.generateMipMaps,!0,(function(){r.uploadLevels(t,t.generateMipMaps)}),r.isInvalid)}else if(Ra.IsValid(e)){new Ra(t.getEngine()).uploadAsync(e,t,n).then((function(){i(t.width,t.height,t.generateMipMaps,!0,(function(){}),!1)}),(function(e){m.a.Warn(\"Failed to load KTX2 texture data: \"+e.message),i(0,0,!1,!1,(function(){}),!0)}))}else m.a.Error(\"texture missing KTX identifier\"),i(0,0,!1,!1,(function(){}),!0)},e}();Se.a._TextureLoaders.unshift(new Oa);var Ma=function(e){function t(t,i,n){var r=e.call(this,t,a.e.Zero(),i)||this;return r._xrSessionManager=n,r._firstFrame=!1,r._referenceQuaternion=a.b.Identity(),r._referencedPosition=new a.e,r._xrInvPositionCache=new a.e,r._xrInvQuaternionCache=a.b.Identity(),r._trackingState=en.NOT_TRACKING,r.onBeforeCameraTeleport=new o.c,r.onAfterCameraTeleport=new o.c,r.onTrackingStateChanged=new o.c,r.compensateOnFirstFrame=!0,r._rotate180=new a.b(0,1,0,0),r.minZ=.1,r.rotationQuaternion=new a.b,r.cameraRigMode=je.a.RIG_MODE_CUSTOM,r.updateUpVectorFromRotation=!0,r._updateNumberOfRigCameras(1),r.freezeProjectionMatrix(),r._xrSessionManager.onXRSessionInit.add((function(){r._referencedPosition.copyFromFloats(0,0,0),r._referenceQuaternion.copyFromFloats(0,0,0,1),r._firstFrame=r.compensateOnFirstFrame})),r._xrSessionManager.onXRFrameObservable.add((function(e){r._firstFrame&&r._updateFromXRSession(),r._updateReferenceSpace(),r._updateFromXRSession()}),void 0,!0),r}return Object(h.d)(t,e),Object.defineProperty(t.prototype,\"trackingState\",{get:function(){return this._trackingState},enumerable:!1,configurable:!0}),t.prototype._setTrackingState=function(e){this._trackingState!==e&&(this._trackingState=e,this.onTrackingStateChanged.notifyObservers(e))},Object.defineProperty(t.prototype,\"realWorldHeight\",{get:function(){var e=this._xrSessionManager.currentFrame&&this._xrSessionManager.currentFrame.getViewerPose(this._xrSessionManager.baseReferenceSpace);return e&&e.transform?e.transform.position.y:0},enumerable:!1,configurable:!0}),t.prototype._updateForDualEyeDebugging=function(){this._updateNumberOfRigCameras(2),this.rigCameras[0].viewport=new yi.a(0,0,.5,1),this.rigCameras[0].outputRenderTarget=null,this.rigCameras[1].viewport=new yi.a(.5,0,.5,1),this.rigCameras[1].outputRenderTarget=null},t.prototype.setTransformationFromNonVRCamera=function(e,t){(void 0===e&&(e=this.getScene().activeCamera),void 0===t&&(t=!0),e&&e!==this)&&(e.computeWorldMatrix().decompose(void 0,this.rotationQuaternion,this.position),this.position.y=0,a.b.FromEulerAnglesToRef(0,this.rotationQuaternion.toEulerAngles().y,0,this.rotationQuaternion),this._firstFrame=!0,t&&this._xrSessionManager.resetReferenceSpace())},t.prototype.getClassName=function(){return\"WebXRCamera\"},t.prototype._updateFromXRSession=function(){var e=this,t=this._xrSessionManager.currentFrame&&this._xrSessionManager.currentFrame.getViewerPose(this._xrSessionManager.referenceSpace);if(t){var i=t.emulatedPosition?en.TRACKING_LOST:en.TRACKING;if(this._setTrackingState(i),t.transform){var n=t.transform.position;this._referencedPosition.set(n.x,n.y,n.z);var r=t.transform.orientation;this._referenceQuaternion.set(r.x,r.y,r.z,r.w),this._scene.useRightHandedSystem||(this._referencedPosition.z*=-1,this._referenceQuaternion.z*=-1,this._referenceQuaternion.w*=-1),this._firstFrame?(this._firstFrame=!1,this.position.y+=this._referencedPosition.y,this._referenceQuaternion.copyFromFloats(0,0,0,1)):(this.rotationQuaternion.copyFrom(this._referenceQuaternion),this.position.copyFrom(this._referencedPosition))}this.rigCameras.length!==t.views.length&&this._updateNumberOfRigCameras(t.views.length),t.views.forEach((function(t,i){var n=e.rigCameras[i];n.isLeftCamera||n.isRightCamera||(\"right\"===t.eye?n._isRightCamera=!0:\"left\"===t.eye&&(n._isLeftCamera=!0));var r=t.transform.position,o=t.transform.orientation;if(n.position.set(r.x,r.y,r.z),n.rotationQuaternion.set(o.x,o.y,o.z,o.w),e._scene.useRightHandedSystem?n.rotationQuaternion.multiplyInPlace(e._rotate180):(n.position.z*=-1,n.rotationQuaternion.z*=-1,n.rotationQuaternion.w*=-1),a.a.FromFloat32ArrayToRefScaled(t.projectionMatrix,0,1,n._projectionMatrix),e._scene.useRightHandedSystem||n._projectionMatrix.toggleProjectionMatrixHandInPlace(),0===i&&e._projectionMatrix.copyFrom(n._projectionMatrix),e._xrSessionManager.session.renderState.baseLayer){var s=e._xrSessionManager.session.renderState.baseLayer.getViewport(t),c=e._xrSessionManager.session.renderState.baseLayer.framebufferWidth,l=e._xrSessionManager.session.renderState.baseLayer.framebufferHeight;n.viewport.width=s.width/c,n.viewport.height=s.height/l,n.viewport.x=s.x/c,n.viewport.y=s.y/l}n.outputRenderTarget=e._xrSessionManager.getRenderTargetTextureForEye(t.eye)}))}else this._setTrackingState(en.NOT_TRACKING)},t.prototype._updateNumberOfRigCameras=function(e){for(void 0===e&&(e=1);this.rigCameras.lengthe;){var i=this.rigCameras.pop();i&&i.dispose()}},t.prototype._updateReferenceSpace=function(){this.position.equals(this._referencedPosition)&&this.rotationQuaternion.equals(this._referenceQuaternion)||(this.position.subtractToRef(this._referencedPosition,this._referencedPosition),this._referenceQuaternion.conjugateInPlace(),this._referenceQuaternion.multiplyToRef(this.rotationQuaternion,this._referenceQuaternion),this._updateReferenceSpaceOffset(this._referencedPosition,this._referenceQuaternion.normalize()))},t.prototype._updateReferenceSpaceOffset=function(e,t,i){if(void 0===i&&(i=!1),this._xrSessionManager.referenceSpace&&this._xrSessionManager.currentFrame){this._xrInvPositionCache.copyFrom(e),t?this._xrInvQuaternionCache.copyFrom(t):this._xrInvQuaternionCache.copyFromFloats(0,0,0,1),this._scene.useRightHandedSystem||(this._xrInvPositionCache.z*=-1,this._xrInvQuaternionCache.z*=-1,this._xrInvQuaternionCache.w*=-1),this._xrInvPositionCache.negateInPlace(),this._xrInvQuaternionCache.conjugateInPlace(),this._xrInvPositionCache.rotateByQuaternionToRef(this._xrInvQuaternionCache,this._xrInvPositionCache),i&&(this._xrInvPositionCache.y=0);var n=new XRRigidTransform({x:this._xrInvPositionCache.x,y:this._xrInvPositionCache.y,z:this._xrInvPositionCache.z},{x:this._xrInvQuaternionCache.x,y:this._xrInvQuaternionCache.y,z:this._xrInvQuaternionCache.z,w:this._xrInvQuaternionCache.w}),r=this._xrSessionManager.referenceSpace.getOffsetReferenceSpace(n),o=this._xrSessionManager.currentFrame&&this._xrSessionManager.currentFrame.getViewerPose(r);if(o){var s=new a.e(o.transform.position.x,o.transform.position.y,o.transform.position.z);this._scene.useRightHandedSystem||(s.z*=-1),this.position.subtractToRef(s,s),this._scene.useRightHandedSystem||(s.z*=-1),s.negateInPlace();var c=new XRRigidTransform({x:s.x,y:s.y,z:s.z});this._xrSessionManager.referenceSpace=r.getOffsetReferenceSpace(c)}}},t}(wt),Ia=function(){function e(){}return e.ANCHOR_SYSTEM=\"xr-anchor-system\",e.BACKGROUND_REMOVER=\"xr-background-remover\",e.HIT_TEST=\"xr-hit-test\",e.PHYSICS_CONTROLLERS=\"xr-physics-controller\",e.PLANE_DETECTION=\"xr-plane-detection\",e.POINTER_SELECTION=\"xr-controller-pointer-selection\",e.TELEPORTATION=\"xr-controller-teleportation\",e.FEATURE_POINTS=\"xr-feature-points\",e.HAND_TRACKING=\"xr-hand-tracking\",e}(),Da=function(){function e(e){var t=this;this._xrSessionManager=e,this._features={},this._xrSessionManager.onXRSessionInit.add((function(){t.getEnabledFeatures().forEach((function(e){var i=t._features[e];!i.enabled||i.featureImplementation.attached||i.featureImplementation.disableAutoAttach||t.attachFeature(e)}))})),this._xrSessionManager.onXRSessionEnded.add((function(){t.getEnabledFeatures().forEach((function(e){var i=t._features[e];i.enabled&&i.featureImplementation.attached&&t.detachFeature(e)}))}))}return e.AddWebXRFeature=function(e,t,i,n){void 0===i&&(i=1),void 0===n&&(n=!1),this._AvailableFeatures[e]=this._AvailableFeatures[e]||{latest:i},i>this._AvailableFeatures[e].latest&&(this._AvailableFeatures[e].latest=i),n&&(this._AvailableFeatures[e].stable=i),this._AvailableFeatures[e][i]=t},e.ConstructFeature=function(e,t,i,n){void 0===t&&(t=1);var r=this._AvailableFeatures[e][t];if(!r)throw new Error(\"feature not found\");return r(i,n)},e.GetAvailableFeatures=function(){return Object.keys(this._AvailableFeatures)},e.GetAvailableVersions=function(e){return Object.keys(this._AvailableFeatures[e])},e.GetLatestVersionOfFeature=function(e){return this._AvailableFeatures[e]&&this._AvailableFeatures[e].latest||-1},e.GetStableVersionOfFeature=function(e){return this._AvailableFeatures[e]&&this._AvailableFeatures[e].stable||-1},e.prototype.attachFeature=function(e){var t=this._features[e];t&&t.enabled&&!t.featureImplementation.attached&&t.featureImplementation.attach()},e.prototype.detachFeature=function(e){var t=this._features[e];t&&t.featureImplementation.attached&&t.featureImplementation.detach()},e.prototype.disableFeature=function(e){var t=\"string\"==typeof e?e:e.Name,i=this._features[t];return!(!i||!i.enabled)&&(i.enabled=!1,this.detachFeature(t),i.featureImplementation.dispose(),!0)},e.prototype.dispose=function(){var e=this;this.getEnabledFeatures().forEach((function(t){e.disableFeature(t),e._features[t].featureImplementation.dispose()}))},e.prototype.enableFeature=function(t,i,n,r,o){var a=this;void 0===i&&(i=\"latest\"),void 0===n&&(n={}),void 0===r&&(r=!0),void 0===o&&(o=!0);var s=\"string\"==typeof t?t:t.Name,c=0;if(\"string\"==typeof i){if(!i)throw new Error(\"Error in provided version - \"+s+\" (\"+i+\")\");if(-1===(c=\"stable\"===i?e.GetStableVersionOfFeature(s):\"latest\"===i?e.GetLatestVersionOfFeature(s):+i)||isNaN(c))throw new Error(\"feature not found - \"+s+\" (\"+i+\")\")}else c=i;var l=this._features[s],u=e.ConstructFeature(s,c,this._xrSessionManager,n);if(!u)throw new Error(\"feature not found - \"+s);l&&this.disableFeature(s);var h=u();if(h.dependsOn&&!h.dependsOn.every((function(e){return!!a._features[e]})))throw new Error(\"Dependant features missing. Make sure the following features are enabled - \"+h.dependsOn.join(\", \"));if(h.isCompatible())return this._features[s]={featureImplementation:h,enabled:!0,version:c,required:o},r?this._xrSessionManager.session&&!this._features[s].featureImplementation.attached&&this.attachFeature(s):this._features[s].featureImplementation.disableAutoAttach=!0,this._features[s].featureImplementation;if(o)throw new Error(\"required feature not compatible\");return Ce.b.Warn(\"Feature \"+s+\" not compatible with the current environment/browser and was not enabled.\"),h},e.prototype.getEnabledFeature=function(e){return this._features[e]&&this._features[e].featureImplementation},e.prototype.getEnabledFeatures=function(){return Object.keys(this._features)},e.prototype.extendXRSessionInitObject=function(e){var t=this;return this.getEnabledFeatures().forEach((function(i){var n=t._features[i],r=n.featureImplementation.xrNativeFeatureName;r&&(n.required?(e.requiredFeatures=e.requiredFeatures||[],-1===e.requiredFeatures.indexOf(r)&&e.requiredFeatures.push(r)):(e.optionalFeatures=e.optionalFeatures||[],-1===e.optionalFeatures.indexOf(r)&&e.optionalFeatures.push(r)))})),e},e._AvailableFeatures={},e}(),Na=function(){function e(e){var t=this;this.scene=e,this._nonVRCamera=null,this._originalSceneAutoClear=!0,this._supported=!1,this.onInitialXRPoseSetObservable=new o.c,this.onStateChangedObservable=new o.c,this.state=$i.NOT_IN_XR,this.sessionManager=new an(e),this.camera=new Ma(\"\",e,this.sessionManager),this.featuresManager=new Da(this.sessionManager),e.onDisposeObservable.add((function(){t.exitXRAsync()}))}return e.CreateAsync=function(t){var i=new e(t);return i.sessionManager.initializeAsync().then((function(){return i._supported=!0,i})).catch((function(e){throw i._setState($i.NOT_IN_XR),i.dispose(),e}))},e.prototype.dispose=function(){this.camera.dispose(),this.onStateChangedObservable.clear(),this.onInitialXRPoseSetObservable.clear(),this.sessionManager.dispose(),this._nonVRCamera&&(this.scene.activeCamera=this._nonVRCamera)},e.prototype.enterXRAsync=function(e,t,i,n){var r=this;if(void 0===i&&(i=this.sessionManager.getWebXRRenderTarget()),void 0===n&&(n={}),!this._supported)throw\"WebXR not supported in this browser or environment\";return this._setState($i.ENTERING_XR),\"viewer\"!==t&&\"local\"!==t&&(n.optionalFeatures=n.optionalFeatures||[],n.optionalFeatures.push(t)),this.featuresManager.extendXRSessionInitObject(n),\"immersive-ar\"===e&&\"unbounded\"!==t&&m.a.Warn(\"We recommend using 'unbounded' reference space type when using 'immersive-ar' session mode\"),this.sessionManager.initializeSessionAsync(e,n).then((function(){return r.sessionManager.setReferenceSpaceTypeAsync(t)})).then((function(){return i.initializeXRLayerAsync(r.sessionManager.session)})).then((function(){return r.sessionManager.updateRenderStateAsync({depthFar:r.camera.maxZ,depthNear:r.camera.minZ,baseLayer:i.xrLayer})})).then((function(){return r.sessionManager.runXRRenderLoop(),r._originalSceneAutoClear=r.scene.autoClear,r._nonVRCamera=r.scene.activeCamera,r.scene.activeCamera=r.camera,\"immersive-ar\"!==e?r._nonXRToXRCamera():(r.scene.autoClear=!1,r.camera.compensateOnFirstFrame=!1),r.sessionManager.onXRSessionEnded.addOnce((function(){r.camera.rigCameras.forEach((function(e){e.outputRenderTarget=null})),r.scene.autoClear=r._originalSceneAutoClear,r.scene.activeCamera=r._nonVRCamera,\"immersive-ar\"!==e&&r.camera.compensateOnFirstFrame&&(r._nonVRCamera.setPosition?r._nonVRCamera.setPosition(r.camera.position):r._nonVRCamera.position.copyFrom(r.camera.position)),r._setState($i.NOT_IN_XR)})),r.sessionManager.onXRFrameObservable.addOnce((function(){r._setState($i.IN_XR)})),r.sessionManager})).catch((function(e){throw console.log(e),console.log(e.message),r._setState($i.NOT_IN_XR),e}))},e.prototype.exitXRAsync=function(){return this.state!==$i.IN_XR?Promise.resolve():(this._setState($i.EXITING_XR),this.sessionManager.exitXRAsync())},e.prototype._nonXRToXRCamera=function(){this.camera.setTransformationFromNonVRCamera(this._nonVRCamera),this.onInitialXRPoseSetObservable.notifyObservers(this.camera)},e.prototype._setState=function(e){this.state!==e&&(this.state=e,this.onStateChangedObservable.notifyObservers(this.state))},e}(),La=function(){function e(e,t,i,n){void 0===i&&(i=-1),void 0===n&&(n=[]),this.id=e,this.type=t,this._buttonIndex=i,this._axesIndices=n,this._axes={x:0,y:0},this._changes={},this._currentValue=0,this._hasChanges=!1,this._pressed=!1,this._touched=!1,this.onAxisValueChangedObservable=new o.c,this.onButtonStateChangedObservable=new o.c}return Object.defineProperty(e.prototype,\"axes\",{get:function(){return this._axes},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"changes\",{get:function(){return this._changes},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"hasChanges\",{get:function(){return this._hasChanges},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"pressed\",{get:function(){return this._pressed},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"touched\",{get:function(){return this._touched},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"value\",{get:function(){return this._currentValue},enumerable:!1,configurable:!0}),e.prototype.dispose=function(){this.onAxisValueChangedObservable.clear(),this.onButtonStateChangedObservable.clear()},e.prototype.isAxes=function(){return 0!==this._axesIndices.length},e.prototype.isButton=function(){return-1!==this._buttonIndex},e.prototype.update=function(e){var t=!1,i=!1;if(this._hasChanges=!1,this._changes={},this.isButton()){var n=e.buttons[this._buttonIndex];if(!n)return;this._currentValue!==n.value&&(this.changes.value={current:n.value,previous:this._currentValue},t=!0,this._currentValue=n.value),this._touched!==n.touched&&(this.changes.touched={current:n.touched,previous:this._touched},t=!0,this._touched=n.touched),this._pressed!==n.pressed&&(this.changes.pressed={current:n.pressed,previous:this._pressed},t=!0,this._pressed=n.pressed)}this.isAxes()&&(this._axes.x!==e.axes[this._axesIndices[0]]&&(this.changes.axes={current:{x:e.axes[this._axesIndices[0]],y:this._axes.y},previous:{x:this._axes.x,y:this._axes.y}},this._axes.x=e.axes[this._axesIndices[0]],i=!0),this._axes.y!==e.axes[this._axesIndices[1]]&&(this.changes.axes?this.changes.axes.current.y=e.axes[this._axesIndices[1]]:this.changes.axes={current:{x:this._axes.x,y:e.axes[this._axesIndices[1]]},previous:{x:this._axes.x,y:this._axes.y}},this._axes.y=e.axes[this._axesIndices[1]],i=!0)),t&&(this._hasChanges=!0,this.onButtonStateChangedObservable.notifyObservers(this)),i&&(this._hasChanges=!0,this.onAxisValueChangedObservable.notifyObservers(this._axes))},e.BUTTON_TYPE=\"button\",e.SQUEEZE_TYPE=\"squeeze\",e.THUMBSTICK_TYPE=\"thumbstick\",e.TOUCHPAD_TYPE=\"touchpad\",e.TRIGGER_TYPE=\"trigger\",e}(),wa=function(){function e(e,t,i,n,r){var a=this;void 0===r&&(r=!1),this.scene=e,this.layout=t,this.gamepadObject=i,this.handedness=n,this._initComponent=function(e){if(e){var t=a.layout.components[e],i=t.type,n=t.gamepadIndices.button,r=[];void 0!==t.gamepadIndices.xAxis&&void 0!==t.gamepadIndices.yAxis&&r.push(t.gamepadIndices.xAxis,t.gamepadIndices.yAxis),a.components[e]=new La(e,i,n,r)}},this._modelReady=!1,this.components={},this.disableAnimation=!1,this.onModelLoadedObservable=new o.c,t.components&&Object.keys(t.components).forEach(this._initComponent)}return e.prototype.dispose=function(){var e=this;this.getComponentIds().forEach((function(t){return e.getComponent(t).dispose()})),this.rootMesh&&this.rootMesh.dispose()},e.prototype.getAllComponentsOfType=function(e){var t=this;return this.getComponentIds().map((function(e){return t.components[e]})).filter((function(t){return t.type===e}))},e.prototype.getComponent=function(e){return this.components[e]},e.prototype.getComponentIds=function(){return Object.keys(this.components)},e.prototype.getComponentOfType=function(e){return this.getAllComponentsOfType(e)[0]||null},e.prototype.getMainComponent=function(){return this.getComponent(this.layout.selectComponentId)},e.prototype.loadModel=function(){return Object(h.b)(this,void 0,void 0,(function(){var e,t,i=this;return Object(h.e)(this,(function(n){return e=!this._getModelLoadingConstraints(),t=this._getGenericFilenameAndPath(),e?m.a.Warn(\"Falling back to generic models\"):t=this._getFilenameAndPath(),[2,new Promise((function(n,r){pr.ImportMesh(\"\",t.path,t.filename,i.scene,(function(t){e?i._getGenericParentMesh(t):i._setRootMesh(t),i._processLoadedModel(t),i._modelReady=!0,i.onModelLoadedObservable.notifyObservers(i),n(!0)}),null,(function(e,n){m.a.Log(n),m.a.Warn(\"Failed to retrieve controller model of type \"+i.profileId+\" from the remote server: \"+t.path+t.filename),r(n)}))}))]}))}))},e.prototype.updateFromXRFrame=function(e){var t=this;this.getComponentIds().forEach((function(e){return t.getComponent(e).update(t.gamepadObject)})),this.updateModel(e)},Object.defineProperty(e.prototype,\"handness\",{get:function(){return this.handedness},enumerable:!1,configurable:!0}),e.prototype.pulse=function(e,t,i){return void 0===i&&(i=0),this.gamepadObject.hapticActuators&&this.gamepadObject.hapticActuators[i]?this.gamepadObject.hapticActuators[i].pulse(e,t):Promise.resolve(!1)},e.prototype._getChildByName=function(e,t){return e.getChildren((function(e){return e.name===t}),!1)[0]},e.prototype._getImmediateChildByName=function(e,t){return e.getChildren((function(e){return e.name==t}),!0)[0]},e.prototype._lerpTransform=function(e,t,i){if(e.minMesh&&e.maxMesh&&e.valueMesh&&e.minMesh.rotationQuaternion&&e.maxMesh.rotationQuaternion&&e.valueMesh.rotationQuaternion){var n=i?.5*t+.5:t;a.b.SlerpToRef(e.minMesh.rotationQuaternion,e.maxMesh.rotationQuaternion,n,e.valueMesh.rotationQuaternion),a.e.LerpToRef(e.minMesh.position,e.maxMesh.position,n,e.valueMesh.position)}},e.prototype.updateModel=function(e){this._modelReady&&this._updateModel(e)},e.prototype._getGenericFilenameAndPath=function(){return{filename:\"generic.babylon\",path:\"https://controllers.babylonjs.com/generic/\"}},e.prototype._getGenericParentMesh=function(e){var t=this;this.rootMesh=new be.a(this.profileId+\" \"+this.handedness,this.scene),e.forEach((function(e){e.parent||(e.isPickable=!1,e.setParent(t.rootMesh))})),this.rootMesh.rotationQuaternion=a.b.FromEulerAngles(0,Math.PI,0)},e}(),Fa=function(e){function t(i,n,r){var o=e.call(this,i,Ba[r],n,r)||this;return o.profileId=t.ProfileId,o}return Object(h.d)(t,e),t.prototype._getFilenameAndPath=function(){return{filename:\"generic.babylon\",path:\"https://controllers.babylonjs.com/generic/\"}},t.prototype._getModelLoadingConstraints=function(){return!0},t.prototype._processLoadedModel=function(e){},t.prototype._setRootMesh=function(e){var t=this;this.rootMesh=new be.a(this.profileId+\" \"+this.handedness,this.scene),e.forEach((function(e){e.isPickable=!1,e.parent||e.setParent(t.rootMesh)})),this.rootMesh.rotationQuaternion=a.b.FromEulerAngles(0,Math.PI,0)},t.prototype._updateModel=function(){},t.ProfileId=\"generic-trigger\",t}(wa),Ba={left:{selectComponentId:\"xr-standard-trigger\",components:{\"xr-standard-trigger\":{type:\"trigger\",gamepadIndices:{button:0},rootNodeName:\"xr_standard_trigger\",visualResponses:{}}},gamepadMapping:\"xr-standard\",rootNodeName:\"generic-trigger-left\",assetPath:\"left.glb\"},right:{selectComponentId:\"xr-standard-trigger\",components:{\"xr-standard-trigger\":{type:\"trigger\",gamepadIndices:{button:0},rootNodeName:\"xr_standard_trigger\",visualResponses:{}}},gamepadMapping:\"xr-standard\",rootNodeName:\"generic-trigger-right\",assetPath:\"right.glb\"},none:{selectComponentId:\"xr-standard-trigger\",components:{\"xr-standard-trigger\":{type:\"trigger\",gamepadIndices:{button:0},rootNodeName:\"xr_standard_trigger\",visualResponses:{}}},gamepadMapping:\"xr-standard\",rootNodeName:\"generic-trigger-none\",assetPath:\"none.glb\"}},Ua=function(e){function t(t,i,n,r){var o=e.call(this,t,n.layouts[i.handedness||\"none\"],i.gamepad,i.handedness)||this;return o._repositoryUrl=r,o._buttonMeshMapping={},o._touchDots={},o.profileId=n.profileId,o}return Object(h.d)(t,e),t.prototype.dispose=function(){var t=this;e.prototype.dispose.call(this),Object.keys(this._touchDots).forEach((function(e){t._touchDots[e].dispose()}))},t.prototype._getFilenameAndPath=function(){return{filename:this.layout.assetPath,path:this._repositoryUrl+\"/profiles/\"+this.profileId+\"/\"}},t.prototype._getModelLoadingConstraints=function(){var e=pr.IsPluginForExtensionAvailable(\".glb\");return e||m.a.Warn(\"glTF / glb loaded was not registered, using generic controller instead\"),e},t.prototype._processLoadedModel=function(e){var t=this;this.getComponentIds().forEach((function(e){var i=t.layout.components[e];t._buttonMeshMapping[e]={mainMesh:t._getChildByName(t.rootMesh,i.rootNodeName),states:{}},Object.keys(i.visualResponses).forEach((function(n){var r=i.visualResponses[n];if(\"transform\"===r.valueNodeProperty)t._buttonMeshMapping[e].states[n]={valueMesh:t._getChildByName(t.rootMesh,r.valueNodeName),minMesh:t._getChildByName(t.rootMesh,r.minNodeName),maxMesh:t._getChildByName(t.rootMesh,r.maxNodeName)};else{var o=i.type===La.TOUCHPAD_TYPE&&i.touchPointNodeName?i.touchPointNodeName:r.valueNodeName;if(t._buttonMeshMapping[e].states[n]={valueMesh:t._getChildByName(t.rootMesh,o)},i.type===La.TOUCHPAD_TYPE&&!t._touchDots[n]){var a=xr.a.CreateSphere(n+\"dot\",{diameter:.0015,segments:8},t.scene);a.material=new Wi.a(n+\"mat\",t.scene),a.material.diffuseColor=s.a.Red(),a.parent=t._buttonMeshMapping[e].states[n].valueMesh||null,a.isVisible=!1,t._touchDots[n]=a}}}))}))},t.prototype._setRootMesh=function(e){var t;this.rootMesh=new be.a(this.profileId+\"-\"+this.handedness,this.scene),this.rootMesh.isPickable=!1;for(var i=0;in/10&&(a.isVisible=!0),(s+=t._scene.getEngine().getDeltaTime())>=n)t._scene.simulatePointerDown(i.pick,{pointerId:i.id}),c=!0,t._options.disablePointerUpOnTouchOut&&t._scene.simulatePointerUp(i.pick,{pointerId:i.id}),a.isVisible=!1;else{var e=1-s/n;a.scaling.set(e,e,e)}else c=!1,s=0;t._scene.simulatePointerMove(i.pick,{pointerId:i.id}),o=i.pick}})),void 0!==this._options.renderingGroupId&&(a.renderingGroupId=this._options.renderingGroupId),e&&e.onDisposeObservable.addOnce((function(){i.pick&&!t._options.disablePointerUpOnTouchOut&&c&&t._scene.simulatePointerUp(i.pick,{pointerId:i.id}),a.dispose()}))},t.prototype._attachScreenRayMode=function(e){var t=this,i=this._controllers[e.uniqueId],n=!1;i.onFrameObserver=this._xrSessionManager.onXRFrameObservable.add((function(){!i.pick||t._options.disablePointerUpOnTouchOut&&n||(n?t._scene.simulatePointerMove(i.pick,{pointerId:i.id}):(t._scene.simulatePointerDown(i.pick,{pointerId:i.id}),n=!0,t._options.disablePointerUpOnTouchOut&&t._scene.simulatePointerUp(i.pick,{pointerId:i.id})))})),e.onDisposeObservable.addOnce((function(){i.pick&&n&&!t._options.disablePointerUpOnTouchOut&&t._scene.simulatePointerUp(i.pick,{pointerId:i.id})}))},t.prototype._attachTrackedPointerRayMode=function(e){var t=this,i=this._controllers[e.uniqueId];if(this._options.forceGazeMode)return this._attachGazeMode(e);if(i.onFrameObserver=this._xrSessionManager.onXRFrameObservable.add((function(){i.laserPointer.material.disableLighting=t.disablePointerLighting,i.selectionMesh.material.disableLighting=t.disableSelectionMeshLighting,i.pick&&t._scene.simulatePointerMove(i.pick,{pointerId:i.id})})),e.inputSource.gamepad){var n=function(n){t._options.overrideButtonId&&(i.selectionComponent=n.getComponent(t._options.overrideButtonId)),i.selectionComponent||(i.selectionComponent=n.getMainComponent()),i.onButtonChangedObserver=i.selectionComponent.onButtonStateChangedObservable.add((function(n){if(n.changes.pressed){var r=n.changes.pressed.current;i.pick?(t._options.enablePointerSelectionOnAllControllers||e.uniqueId===t._attachedController)&&(r?(t._scene.simulatePointerDown(i.pick,{pointerId:i.id}),i.selectionMesh.material.emissiveColor=t.selectionMeshPickedColor,i.laserPointer.material.emissiveColor=t.laserPointerPickedColor):(t._scene.simulatePointerUp(i.pick,{pointerId:i.id}),i.selectionMesh.material.emissiveColor=t.selectionMeshDefaultColor,i.laserPointer.material.emissiveColor=t.laserPointerDefaultColor)):!r||t._options.enablePointerSelectionOnAllControllers||t._options.disableSwitchOnClick||(t._attachedController=e.uniqueId)}}))};e.motionController?n(e.motionController):e.onMotionControllerInitObservable.add(n)}else{var r=function(e){i.xrController&&e.inputSource===i.xrController.inputSource&&i.pick&&(t._scene.simulatePointerDown(i.pick,{pointerId:i.id}),i.selectionMesh.material.emissiveColor=t.selectionMeshPickedColor,i.laserPointer.material.emissiveColor=t.laserPointerPickedColor)},o=function(e){i.xrController&&e.inputSource===i.xrController.inputSource&&i.pick&&(t._scene.simulatePointerUp(i.pick,{pointerId:i.id}),i.selectionMesh.material.emissiveColor=t.selectionMeshDefaultColor,i.laserPointer.material.emissiveColor=t.laserPointerDefaultColor)};i.eventListeners={selectend:o,selectstart:r},this._xrSessionManager.session.addEventListener(\"selectstart\",r),this._xrSessionManager.session.addEventListener(\"selectend\",o)}},t.prototype._convertNormalToDirectionOfRay=function(e,t){e&&(Math.acos(a.e.Dot(e,t.direction))n},t.prototype._updatePointerDistance=function(e,t){void 0===t&&(t=100),e.scaling.y=t,this._scene.useRightHandedSystem&&(t*=-1),e.position.z=t/2+.05},Object.defineProperty(t.prototype,\"lasterPointerDefaultColor\",{get:function(){return this.laserPointerDefaultColor},enumerable:!1,configurable:!0}),t._idCounter=200,t.Name=Ia.POINTER_SELECTION,t.Version=1,t}(ja);Da.AddWebXRFeature(Wa.Name,(function(e,t){return function(){return new Wa(e,t)}}),Wa.Version,!0);var Ha,Xa=function(){function e(e,t,i){this.element=e,this.sessionMode=t,this.referenceSpaceType=i}return e.prototype.update=function(e){},e}(),Ya=function(){},Ka=function(){function e(e,t){var i=this;if(this.scene=e,this.options=t,this._activeButton=null,this._buttons=[],this.activeButtonChangedObservable=new o.c,this.overlay=document.createElement(\"div\"),this.overlay.classList.add(\"xr-button-overlay\"),this.overlay.style.cssText=\"z-index:11;position: absolute; right: 20px;bottom: 50px;\",\"undefined\"!=typeof window&&window.location&&\"http:\"===window.location.protocol&&Ce.b.Warn(\"WebXR can only be served over HTTPS\"),t.customButtons)this._buttons=t.customButtons;else{var n=t.sessionMode||\"immersive-vr\",r=t.referenceSpaceType||\"local-floor\",a=\".babylonVRicon { color: #868686; border-color: #868686; border-style: solid; margin-left: 10px; height: 50px; width: 80px; background-color: rgba(51,51,51,0.7); background-image: url(\"+(\"undefined\"==typeof SVGSVGElement?\"https://cdn.babylonjs.com/Assets/vrButton.png\":\"data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%222048%22%20height%3D%221152%22%20viewBox%3D%220%200%202048%201152%22%20version%3D%221.1%22%3E%3Cpath%20transform%3D%22rotate%28180%201024%2C576.0000000000001%29%22%20d%3D%22m1109%2C896q17%2C0%2030%2C-12t13%2C-30t-12.5%2C-30.5t-30.5%2C-12.5l-170%2C0q-18%2C0%20-30.5%2C12.5t-12.5%2C30.5t13%2C30t30%2C12l170%2C0zm-85%2C256q59%2C0%20132.5%2C-1.5t154.5%2C-5.5t164.5%2C-11.5t163%2C-20t150%2C-30t124.5%2C-41.5q23%2C-11%2042%2C-24t38%2C-30q27%2C-25%2041%2C-61.5t14%2C-72.5l0%2C-257q0%2C-123%20-47%2C-232t-128%2C-190t-190%2C-128t-232%2C-47l-81%2C0q-37%2C0%20-68.5%2C14t-60.5%2C34.5t-55.5%2C45t-53%2C45t-53%2C34.5t-55.5%2C14t-55.5%2C-14t-53%2C-34.5t-53%2C-45t-55.5%2C-45t-60.5%2C-34.5t-68.5%2C-14l-81%2C0q-123%2C0%20-232%2C47t-190%2C128t-128%2C190t-47%2C232l0%2C257q0%2C68%2038%2C115t97%2C73q54%2C24%20124.5%2C41.5t150%2C30t163%2C20t164.5%2C11.5t154.5%2C5.5t132.5%2C1.5zm939%2C-298q0%2C39%20-24.5%2C67t-58.5%2C42q-54%2C23%20-122%2C39.5t-143.5%2C28t-155.5%2C19t-157%2C11t-148.5%2C5t-129.5%2C1.5q-59%2C0%20-130%2C-1.5t-148%2C-5t-157%2C-11t-155.5%2C-19t-143.5%2C-28t-122%2C-39.5q-34%2C-14%20-58.5%2C-42t-24.5%2C-67l0%2C-257q0%2C-106%2040.5%2C-199t110%2C-162.5t162.5%2C-109.5t199%2C-40l81%2C0q27%2C0%2052%2C14t50%2C34.5t51%2C44.5t55.5%2C44.5t63.5%2C34.5t74%2C14t74%2C-14t63.5%2C-34.5t55.5%2C-44.5t51%2C-44.5t50%2C-34.5t52%2C-14l14%2C0q37%2C0%2070%2C0.5t64.5%2C4.5t63.5%2C12t68%2C23q71%2C30%20128.5%2C78.5t98.5%2C110t63.5%2C133.5t22.5%2C149l0%2C257z%22%20fill%3D%22white%22%20/%3E%3C/svg%3E%0A\")+\"); background-size: 80%; background-repeat:no-repeat; background-position: center; border: none; outline: none; transition: transform 0.125s ease-out } .babylonVRicon:hover { transform: scale(1.05) } .babylonVRicon:active {background-color: rgba(51,51,51,1) } .babylonVRicon:focus {background-color: rgba(51,51,51,1) }\";a+='.babylonVRicon.vrdisplaypresenting { background-image: none;} .vrdisplaypresenting::after { content: \"EXIT\"} .xr-error::after { content: \"ERROR\"}';var s=document.createElement(\"style\");s.appendChild(document.createTextNode(a)),document.getElementsByTagName(\"head\")[0].appendChild(s);var c=document.createElement(\"button\");c.className=\"babylonVRicon\",c.title=n+\" - \"+r,this._buttons.push(new Xa(c,n,r)),this._buttons[this._buttons.length-1].update=function(e){this.element.style.display=null===e||e===this?\"\":\"none\",c.className=\"babylonVRicon\"+(e===this?\" vrdisplaypresenting\":\"\")},this._updateButtons(null)}var l=e.getEngine().getInputElement();l&&l.parentNode&&(l.parentNode.appendChild(this.overlay),e.onDisposeObservable.addOnce((function(){i.dispose()})))}return e.CreateAsync=function(t,i,n){var r=this,o=new e(t,n),a=o._buttons.map((function(e){return i.sessionManager.isSessionSupportedAsync(e.sessionMode)}));return i.onStateChangedObservable.add((function(e){e==$i.NOT_IN_XR&&o._updateButtons(null)})),Promise.all(a).then((function(e){return e.forEach((function(e,t){e?(o.overlay.appendChild(o._buttons[t].element),o._buttons[t].element.onclick=function(){return Object(h.b)(r,void 0,void 0,(function(){var e,r,a;return Object(h.e)(this,(function(s){switch(s.label){case 0:return i.state!=$i.IN_XR?[3,2]:[4,i.exitXRAsync()];case 1:return s.sent(),o._updateButtons(null),[3,6];case 2:if(i.state!=$i.NOT_IN_XR)return[3,6];if(!n.renderTarget)return[3,6];s.label=3;case 3:return s.trys.push([3,5,,6]),[4,i.enterXRAsync(o._buttons[t].sessionMode,o._buttons[t].referenceSpaceType,n.renderTarget,{optionalFeatures:n.optionalFeatures,requiredFeatures:n.requiredFeatures})];case 4:return s.sent(),o._updateButtons(o._buttons[t]),[3,6];case 5:return e=s.sent(),o._updateButtons(null),r=o._buttons[t].element,a=r.title,r.title=\"Error entering XR session : \"+a,r.classList.add(\"xr-error\"),n.onError&&n.onError(e),[3,6];case 6:return[2]}}))}))}):Ce.b.Warn('Session mode \"'+o._buttons[t].sessionMode+'\" not supported in browser')})),o}))},e.prototype.dispose=function(){var e=this.scene.getEngine().getInputElement();e&&e.parentNode&&e.parentNode.contains(this.overlay)&&e.parentNode.removeChild(this.overlay),this.activeButtonChangedObservable.clear()},e.prototype._updateButtons=function(e){var t=this;this._activeButton=e,this._buttons.forEach((function(e){e.update(t._activeButton)})),this.activeButtonChangedObservable.notifyObservers(this._activeButton)},e}();function Qa(e){var t,i=0,n=Date.now();e.observableParameters=null!==(t=e.observableParameters)&&void 0!==t?t:{};var r=e.contextObservable.add((function(t){var o=Date.now(),a={startTime:n,currentTime:o,deltaTime:i=o-n,completeRate:i/e.timeout,payload:t};e.onTick&&e.onTick(a),e.breakCondition&&e.breakCondition()&&(e.contextObservable.remove(r),e.onAborted&&e.onAborted(a)),i>=e.timeout&&(e.contextObservable.remove(r),e.onEnded&&e.onEnded(a))}),e.observableParameters.mask,e.observableParameters.insertFirst,e.observableParameters.scope);return r}!function(e){e[e.INIT=0]=\"INIT\",e[e.STARTED=1]=\"STARTED\",e[e.ENDED=2]=\"ENDED\"}(Ha||(Ha={}));var qa=function(){function e(e){var t,i,n=this;this.onEachCountObservable=new o.c,this.onTimerAbortedObservable=new o.c,this.onTimerEndedObservable=new o.c,this.onStateChangedObservable=new o.c,this._observer=null,this._breakOnNextTick=!1,this._tick=function(e){var t=Date.now();n._timer=t-n._startTime;var i={startTime:n._startTime,currentTime:t,deltaTime:n._timer,completeRate:n._timer/n._timeToEnd,payload:e},r=n._breakOnNextTick||n._breakCondition(i);r||n._timer>=n._timeToEnd?n._stop(i,r):n.onEachCountObservable.notifyObservers(i)},this._setState(Ha.INIT),this._contextObservable=e.contextObservable,this._observableParameters=null!==(t=e.observableParameters)&&void 0!==t?t:{},this._breakCondition=null!==(i=e.breakCondition)&&void 0!==i?i:function(){return!1},e.onEnded&&this.onTimerEndedObservable.add(e.onEnded),e.onTick&&this.onEachCountObservable.add(e.onTick),e.onAborted&&this.onTimerAbortedObservable.add(e.onAborted)}return Object.defineProperty(e.prototype,\"breakCondition\",{set:function(e){this._breakCondition=e},enumerable:!1,configurable:!0}),e.prototype.clearObservables=function(){this.onEachCountObservable.clear(),this.onTimerAbortedObservable.clear(),this.onTimerEndedObservable.clear(),this.onStateChangedObservable.clear()},e.prototype.start=function(e){if(void 0===e&&(e=this._timeToEnd),this._state===Ha.STARTED)throw new Error(\"Timer already started. Please stop it before starting again\");this._timeToEnd=e,this._startTime=Date.now(),this._timer=0,this._observer=this._contextObservable.add(this._tick,this._observableParameters.mask,this._observableParameters.insertFirst,this._observableParameters.scope),this._setState(Ha.STARTED)},e.prototype.stop=function(){this._state===Ha.STARTED&&(this._breakOnNextTick=!0)},e.prototype.dispose=function(){this._observer&&this._contextObservable.remove(this._observer),this.clearObservables()},e.prototype._setState=function(e){this._state=e,this.onStateChangedObservable.notifyObservers(this._state)},e.prototype._stop=function(e,t){void 0===t&&(t=!1),this._contextObservable.remove(this._observer),this._setState(Ha.ENDED),t?this.onTimerAbortedObservable.notifyObservers(e):this.onTimerEndedObservable.notifyObservers(e)},e}(),Za=function(e){function t(t,i){var n=e.call(this,t)||this;return n._options=i,n._controllers={},n._snappedToPoint=!1,n._tmpRay=new Xt.a(new a.e,new a.e),n._tmpVector=new a.e,n._tmpQuaternion=new a.b,n.backwardsMovementEnabled=!0,n.backwardsTeleportationDistance=.7,n.parabolicCheckRadius=5,n.parabolicRayEnabled=!0,n.straightRayEnabled=!0,n.rotationAngle=Math.PI/8,n._rotationEnabled=!0,n._attachController=function(e){if(!(n._controllers[e.uniqueId]||n._options.forceHandedness&&e.inputSource.handedness!==n._options.forceHandedness)){n._controllers[e.uniqueId]={xrController:e,teleportationState:{forward:!1,backwards:!1,rotating:!1,currentRotation:0,baseRotation:0}};var t=n._controllers[e.uniqueId];if(\"tracked-pointer\"===t.xrController.inputSource.targetRayMode&&t.xrController.inputSource.gamepad){var i=function(){if(e.motionController){var i=e.motionController.getComponentOfType(La.THUMBSTICK_TYPE)||e.motionController.getComponentOfType(La.TOUCHPAD_TYPE);if(!i||n._options.useMainComponentOnly){var r=e.motionController.getMainComponent();if(!r)return;t.teleportationComponent=r,t.onButtonChangedObserver=r.onButtonStateChangedObservable.add((function(){r.changes.pressed&&(r.changes.pressed.current?(t.teleportationState.forward=!0,n._currentTeleportationControllerId=t.xrController.uniqueId,t.teleportationState.baseRotation=n._options.xrInput.xrCamera.rotationQuaternion.toEulerAngles().y,t.teleportationState.currentRotation=0,Qa({timeout:n._options.timeToTeleport||3e3,contextObservable:n._xrSessionManager.onXRFrameObservable,breakCondition:function(){return!r.pressed},onEnded:function(){n._currentTeleportationControllerId===t.xrController.uniqueId&&t.teleportationState.forward&&n._teleportForward(e.uniqueId)}})):(t.teleportationState.forward=!1,n._currentTeleportationControllerId=\"\"))}))}else t.teleportationComponent=i,t.onAxisChangedObserver=i.onAxisValueChangedObservable.add((function(i){if(i.y<=.7&&t.teleportationState.backwards&&(t.teleportationState.backwards=!1),i.y>.7&&!t.teleportationState.forward&&n.backwardsMovementEnabled&&!n.snapPointsOnly&&!t.teleportationState.backwards){t.teleportationState.backwards=!0,n._tmpQuaternion.copyFrom(n._options.xrInput.xrCamera.rotationQuaternion),n._tmpQuaternion.toEulerAnglesToRef(n._tmpVector),n._tmpVector.x=0,n._tmpVector.z=0,a.b.FromEulerVectorToRef(n._tmpVector,n._tmpQuaternion),n._tmpVector.set(0,0,n.backwardsTeleportationDistance*(n._xrSessionManager.scene.useRightHandedSystem?1:-1)),n._tmpVector.rotateByQuaternionToRef(n._tmpQuaternion,n._tmpVector),n._tmpVector.addInPlace(n._options.xrInput.xrCamera.position),n._tmpRay.origin.copyFrom(n._tmpVector),n._tmpRay.length=n._options.xrInput.xrCamera.realWorldHeight+.1,n._tmpRay.direction.set(0,-1,0);var r=n._xrSessionManager.scene.pickWithRay(n._tmpRay,(function(e){return-1!==n._floorMeshes.indexOf(e)}));r&&r.pickedPoint&&(n._options.xrInput.xrCamera.position.x=r.pickedPoint.x,n._options.xrInput.xrCamera.position.z=r.pickedPoint.z)}if(i.y<-.7&&!n._currentTeleportationControllerId&&!t.teleportationState.rotating&&(t.teleportationState.forward=!0,n._currentTeleportationControllerId=t.xrController.uniqueId,t.teleportationState.baseRotation=n._options.xrInput.xrCamera.rotationQuaternion.toEulerAngles().y),i.x){if(t.teleportationState.forward)n._currentTeleportationControllerId===t.xrController.uniqueId&&(n.rotationEnabled?setTimeout((function(){t.teleportationState.currentRotation=Math.atan2(i.x,i.y*(n._xrSessionManager.scene.useRightHandedSystem?1:-1))})):t.teleportationState.currentRotation=0);else if(!t.teleportationState.rotating&&Math.abs(i.x)>.7){t.teleportationState.rotating=!0;var o=n.rotationAngle*(i.x>0?1:-1)*(n._xrSessionManager.scene.useRightHandedSystem?-1:1);n._options.xrInput.xrCamera.rotationQuaternion.multiplyInPlace(a.b.FromEulerAngles(0,o,0))}}else t.teleportationState.rotating=!1;0===i.x&&0===i.y&&t.teleportationState.forward&&n._teleportForward(e.uniqueId)}))}};e.motionController?i():e.onMotionControllerInitObservable.addOnce((function(){i()}))}else n._xrSessionManager.scene.onPointerObservable.add((function(i){i.type===Ne.a.POINTERDOWN?(t.teleportationState.forward=!0,n._currentTeleportationControllerId=t.xrController.uniqueId,t.teleportationState.baseRotation=n._options.xrInput.xrCamera.rotationQuaternion.toEulerAngles().y,t.teleportationState.currentRotation=0,Qa({timeout:n._options.timeToTeleport||3e3,contextObservable:n._xrSessionManager.onXRFrameObservable,onEnded:function(){n._currentTeleportationControllerId===t.xrController.uniqueId&&t.teleportationState.forward&&n._teleportForward(e.uniqueId)}})):i.type===Ne.a.POINTERUP&&(t.teleportationState.forward=!1,n._currentTeleportationControllerId=\"\")}))}},n._options.teleportationTargetMesh||n._createDefaultTargetMesh(),n._floorMeshes=n._options.floorMeshes||[],n._snapToPositions=n._options.snapPositions||[],n._setTargetMeshVisibility(!1),n}return Object(h.d)(t,e),Object.defineProperty(t.prototype,\"rotationEnabled\",{get:function(){return this._rotationEnabled},set:function(e){if(this._rotationEnabled=e,this._options.teleportationTargetMesh){var t=this._options.teleportationTargetMesh.getChildMeshes(!1,(function(e){return\"rotationCone\"===e.name}));t[0]&&t[0].setEnabled(e)}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"teleportationTargetMesh\",{get:function(){return this._options.teleportationTargetMesh||null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"snapPointsOnly\",{get:function(){return!!this._options.snapPointsOnly},set:function(e){this._options.snapPointsOnly=e},enumerable:!1,configurable:!0}),t.prototype.addFloorMesh=function(e){this._floorMeshes.push(e)},t.prototype.addSnapPoint=function(e){this._snapToPositions.push(e)},t.prototype.attach=function(){var t=this;return!!e.prototype.attach.call(this)&&(this._currentTeleportationControllerId=\"\",this._options.xrInput.controllers.forEach(this._attachController),this._addNewAttachObserver(this._options.xrInput.onControllerAddedObservable,this._attachController),this._addNewAttachObserver(this._options.xrInput.onControllerRemovedObservable,(function(e){t._detachController(e.uniqueId)})),!0)},t.prototype.detach=function(){var t=this;return!!e.prototype.detach.call(this)&&(Object.keys(this._controllers).forEach((function(e){t._detachController(e)})),this._setTargetMeshVisibility(!1),this._currentTeleportationControllerId=\"\",this._controllers={},!0)},t.prototype.dispose=function(){e.prototype.dispose.call(this),this._options.teleportationTargetMesh&&this._options.teleportationTargetMesh.dispose(!1,!0)},t.prototype.removeFloorMesh=function(e){var t=this._floorMeshes.indexOf(e);-1!==t&&this._floorMeshes.splice(t,1)},t.prototype.removeFloorMeshByName=function(e){var t=this._xrSessionManager.scene.getMeshByName(e);t&&this.removeFloorMesh(t)},t.prototype.removeSnapPoint=function(e){var t=this._snapToPositions.indexOf(e);if(-1===t)for(var i=0;i=c.video.HAVE_CURRENT_DATA;return!s.poster||s.autoPlay&&l?l&&c._createInternalTexture():(c._texture=c._getEngine().createTexture(s.poster,!1,!c.invertY,n),c._displayingPosterTexture=!0),c}return Object(h.d)(t,e),Object.defineProperty(t.prototype,\"onUserActionRequestedObservable\",{get:function(){return this._onUserActionRequestedObservable||(this._onUserActionRequestedObservable=new o.c),this._onUserActionRequestedObservable},enumerable:!1,configurable:!0}),t.prototype._getName=function(e){return e instanceof HTMLVideoElement?e.currentSrc:\"object\"==typeof e?e.toString():e},t.prototype._getVideo=function(e){if(e instanceof HTMLVideoElement)return Ce.b.SetCorsBehavior(e.currentSrc,e),e;var t=document.createElement(\"video\");return\"string\"==typeof e?(Ce.b.SetCorsBehavior(e,t),t.src=e):(Ce.b.SetCorsBehavior(e[0],t),e.forEach((function(e){var i=document.createElement(\"source\");i.src=e,t.appendChild(i)}))),t},t.prototype._rebuild=function(){this.update()},t.prototype.update=function(){this.autoUpdateTexture&&this.updateTexture(!0)},t.prototype.updateTexture=function(e){e&&(this.video.paused&&this._stillImageCaptured||(this._stillImageCaptured=!0,this._updateInternalTexture()))},t.prototype.updateURL=function(e){this.video.src=e,this._currentSrc=e},t.prototype.clone=function(){return new t(this.name,this._currentSrc,this.getScene(),this._generateMipMaps,this.invertY,this.samplingMode,this._settings)},t.prototype.dispose=function(){e.prototype.dispose.call(this),this._currentSrc=null,this._onUserActionRequestedObservable&&(this._onUserActionRequestedObservable.clear(),this._onUserActionRequestedObservable=null),this.video.removeEventListener(this._createInternalTextureOnEvent,this._createInternalTexture),this.video.removeEventListener(\"paused\",this._updateInternalTexture),this.video.removeEventListener(\"seeked\",this._updateInternalTexture),this.video.removeEventListener(\"emptied\",this.reset),this.video.pause()},t.CreateFromStreamAsync=function(e,i){var n=document.createElement(\"video\");return e.getEngine()._badOS&&(document.body.appendChild(n),n.style.transform=\"scale(0.0001, 0.0001)\",n.style.opacity=\"0\",n.style.position=\"fixed\",n.style.bottom=\"0px\",n.style.right=\"0px\"),n.setAttribute(\"autoplay\",\"\"),n.setAttribute(\"muted\",\"true\"),n.setAttribute(\"playsinline\",\"\"),n.muted=!0,void 0!==n.mozSrcObject?n.mozSrcObject=i:\"object\"==typeof n.srcObject?n.srcObject=i:(window.URL=window.URL||window.webkitURL||window.mozURL||window.msURL,n.src=window.URL&&window.URL.createObjectURL(i)),new Promise((function(i){var r=function(){i(new t(\"video\",n,e,!0,!0)),n.removeEventListener(\"playing\",r)};n.addEventListener(\"playing\",r),n.play()}))},t.CreateFromWebCamAsync=function(e,t,i){var n,r=this;return void 0===i&&(i=!1),t&&t.deviceId&&(n={exact:t.deviceId}),navigator.mediaDevices?navigator.mediaDevices.getUserMedia({video:t,audio:i}).then((function(t){return r.CreateFromStreamAsync(e,t)})):(navigator.getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia,navigator.getUserMedia&&navigator.getUserMedia({video:{deviceId:n,width:{min:t&&t.minWidth||256,max:t&&t.maxWidth||640},height:{min:t&&t.minHeight||256,max:t&&t.maxHeight||480}},audio:i},(function(t){return r.CreateFromStreamAsync(e,t)}),(function(e){m.a.Error(e.name)})),Promise.reject(\"No support for userMedia on this device\"))},t.CreateFromWebCam=function(e,t,i,n){void 0===n&&(n=!1),this.CreateFromWebCamAsync(e,i,n).then((function(e){t&&t(e)})).catch((function(e){m.a.Error(e.name)}))},t}(Ke.a),is=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(h.d)(t,e),Object.defineProperty(t.prototype,\"videoTexture\",{get:function(){return this._texture},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"videoMode\",{get:function(){return this.textureMode},set:function(e){this.textureMode=e},enumerable:!1,configurable:!0}),t.prototype._initTexture=function(e,t,i){var n=this,r={loop:i.loop,autoPlay:i.autoPlay,autoUpdateTexture:!0,poster:i.poster},o=new ts((this.name||\"videoDome\")+\"_texture\",e,t,i.generateMipMaps,this._useDirectMapping,Ke.a.TRILINEAR_SAMPLINGMODE,r);return i.clickToPlay&&(t.onPointerUp=function(){n._texture.video.play()}),o},t.MODE_MONOSCOPIC=vo.MODE_MONOSCOPIC,t.MODE_TOPBOTTOM=vo.MODE_TOPBOTTOM,t.MODE_SIDEBYSIDE=vo.MODE_SIDEBYSIDE,t}(vo),ns=i(55),rs=function(){function e(e){this.engine=e,this._captureGPUFrameTime=!1,this._gpuFrameTime=new ns.a,this._captureShaderCompilationTime=!1,this._shaderCompilationTime=new ns.a,this._onBeginFrameObserver=null,this._onEndFrameObserver=null,this._onBeforeShaderCompilationObserver=null,this._onAfterShaderCompilationObserver=null}return Object.defineProperty(e.prototype,\"gpuFrameTimeCounter\",{get:function(){return this._gpuFrameTime},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"captureGPUFrameTime\",{get:function(){return this._captureGPUFrameTime},set:function(e){var t=this;e!==this._captureGPUFrameTime&&(this._captureGPUFrameTime=e,e?(this._onBeginFrameObserver=this.engine.onBeginFrameObservable.add((function(){t._gpuFrameTimeToken||(t._gpuFrameTimeToken=t.engine.startTimeQuery())})),this._onEndFrameObserver=this.engine.onEndFrameObservable.add((function(){if(t._gpuFrameTimeToken){var e=t.engine.endTimeQuery(t._gpuFrameTimeToken);e>-1&&(t._gpuFrameTimeToken=null,t._gpuFrameTime.fetchNewFrame(),t._gpuFrameTime.addCount(e,!0))}}))):(this.engine.onBeginFrameObservable.remove(this._onBeginFrameObserver),this._onBeginFrameObserver=null,this.engine.onEndFrameObservable.remove(this._onEndFrameObserver),this._onEndFrameObserver=null))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"shaderCompilationTimeCounter\",{get:function(){return this._shaderCompilationTime},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"captureShaderCompilationTime\",{get:function(){return this._captureShaderCompilationTime},set:function(e){var t=this;e!==this._captureShaderCompilationTime&&(this._captureShaderCompilationTime=e,e?(this._onBeforeShaderCompilationObserver=this.engine.onBeforeShaderCompilationObservable.add((function(){t._shaderCompilationTime.fetchNewFrame(),t._shaderCompilationTime.beginMonitoring()})),this._onAfterShaderCompilationObserver=this.engine.onAfterShaderCompilationObservable.add((function(){t._shaderCompilationTime.endMonitoring()}))):(this.engine.onBeforeShaderCompilationObservable.remove(this._onBeforeShaderCompilationObserver),this._onBeforeShaderCompilationObserver=null,this.engine.onAfterShaderCompilationObservable.remove(this._onAfterShaderCompilationObserver),this._onAfterShaderCompilationObserver=null))},enumerable:!1,configurable:!0}),e.prototype.dispose=function(){this.engine.onBeginFrameObservable.remove(this._onBeginFrameObserver),this._onBeginFrameObserver=null,this.engine.onEndFrameObservable.remove(this._onEndFrameObserver),this._onEndFrameObserver=null,this.engine.onBeforeShaderCompilationObservable.remove(this._onBeforeShaderCompilationObserver),this._onBeforeShaderCompilationObserver=null,this.engine.onAfterShaderCompilationObservable.remove(this._onAfterShaderCompilationObserver),this._onAfterShaderCompilationObserver=null,this.engine=null},e}(),os=function(){function e(e){var t=this;this.scene=e,this._captureActiveMeshesEvaluationTime=!1,this._activeMeshesEvaluationTime=new ns.a,this._captureRenderTargetsRenderTime=!1,this._renderTargetsRenderTime=new ns.a,this._captureFrameTime=!1,this._frameTime=new ns.a,this._captureRenderTime=!1,this._renderTime=new ns.a,this._captureInterFrameTime=!1,this._interFrameTime=new ns.a,this._captureParticlesRenderTime=!1,this._particlesRenderTime=new ns.a,this._captureSpritesRenderTime=!1,this._spritesRenderTime=new ns.a,this._capturePhysicsTime=!1,this._physicsTime=new ns.a,this._captureAnimationsTime=!1,this._animationsTime=new ns.a,this._captureCameraRenderTime=!1,this._cameraRenderTime=new ns.a,this._onBeforeActiveMeshesEvaluationObserver=null,this._onAfterActiveMeshesEvaluationObserver=null,this._onBeforeRenderTargetsRenderObserver=null,this._onAfterRenderTargetsRenderObserver=null,this._onAfterRenderObserver=null,this._onBeforeDrawPhaseObserver=null,this._onAfterDrawPhaseObserver=null,this._onBeforeAnimationsObserver=null,this._onBeforeParticlesRenderingObserver=null,this._onAfterParticlesRenderingObserver=null,this._onBeforeSpritesRenderingObserver=null,this._onAfterSpritesRenderingObserver=null,this._onBeforePhysicsObserver=null,this._onAfterPhysicsObserver=null,this._onAfterAnimationsObserver=null,this._onBeforeCameraRenderObserver=null,this._onAfterCameraRenderObserver=null,this._onBeforeAnimationsObserver=e.onBeforeAnimationsObservable.add((function(){t._captureActiveMeshesEvaluationTime&&t._activeMeshesEvaluationTime.fetchNewFrame(),t._captureRenderTargetsRenderTime&&t._renderTargetsRenderTime.fetchNewFrame(),t._captureFrameTime&&(Ce.b.StartPerformanceCounter(\"Scene rendering\"),t._frameTime.beginMonitoring()),t._captureInterFrameTime&&t._interFrameTime.endMonitoring(),t._captureParticlesRenderTime&&t._particlesRenderTime.fetchNewFrame(),t._captureSpritesRenderTime&&t._spritesRenderTime.fetchNewFrame(),t._captureAnimationsTime&&t._animationsTime.beginMonitoring(),t.scene.getEngine()._drawCalls.fetchNewFrame()})),this._onAfterRenderObserver=e.onAfterRenderObservable.add((function(){t._captureFrameTime&&(Ce.b.EndPerformanceCounter(\"Scene rendering\"),t._frameTime.endMonitoring()),t._captureRenderTime&&t._renderTime.endMonitoring(!1),t._captureInterFrameTime&&t._interFrameTime.beginMonitoring()}))}return Object.defineProperty(e.prototype,\"activeMeshesEvaluationTimeCounter\",{get:function(){return this._activeMeshesEvaluationTime},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"captureActiveMeshesEvaluationTime\",{get:function(){return this._captureActiveMeshesEvaluationTime},set:function(e){var t=this;e!==this._captureActiveMeshesEvaluationTime&&(this._captureActiveMeshesEvaluationTime=e,e?(this._onBeforeActiveMeshesEvaluationObserver=this.scene.onBeforeActiveMeshesEvaluationObservable.add((function(){Ce.b.StartPerformanceCounter(\"Active meshes evaluation\"),t._activeMeshesEvaluationTime.beginMonitoring()})),this._onAfterActiveMeshesEvaluationObserver=this.scene.onAfterActiveMeshesEvaluationObservable.add((function(){Ce.b.EndPerformanceCounter(\"Active meshes evaluation\"),t._activeMeshesEvaluationTime.endMonitoring()}))):(this.scene.onBeforeActiveMeshesEvaluationObservable.remove(this._onBeforeActiveMeshesEvaluationObserver),this._onBeforeActiveMeshesEvaluationObserver=null,this.scene.onAfterActiveMeshesEvaluationObservable.remove(this._onAfterActiveMeshesEvaluationObserver),this._onAfterActiveMeshesEvaluationObserver=null))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"renderTargetsRenderTimeCounter\",{get:function(){return this._renderTargetsRenderTime},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"captureRenderTargetsRenderTime\",{get:function(){return this._captureRenderTargetsRenderTime},set:function(e){var t=this;e!==this._captureRenderTargetsRenderTime&&(this._captureRenderTargetsRenderTime=e,e?(this._onBeforeRenderTargetsRenderObserver=this.scene.onBeforeRenderTargetsRenderObservable.add((function(){Ce.b.StartPerformanceCounter(\"Render targets rendering\"),t._renderTargetsRenderTime.beginMonitoring()})),this._onAfterRenderTargetsRenderObserver=this.scene.onAfterRenderTargetsRenderObservable.add((function(){Ce.b.EndPerformanceCounter(\"Render targets rendering\"),t._renderTargetsRenderTime.endMonitoring(!1)}))):(this.scene.onBeforeRenderTargetsRenderObservable.remove(this._onBeforeRenderTargetsRenderObserver),this._onBeforeRenderTargetsRenderObserver=null,this.scene.onAfterRenderTargetsRenderObservable.remove(this._onAfterRenderTargetsRenderObserver),this._onAfterRenderTargetsRenderObserver=null))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"particlesRenderTimeCounter\",{get:function(){return this._particlesRenderTime},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"captureParticlesRenderTime\",{get:function(){return this._captureParticlesRenderTime},set:function(e){var t=this;e!==this._captureParticlesRenderTime&&(this._captureParticlesRenderTime=e,e?(this._onBeforeParticlesRenderingObserver=this.scene.onBeforeParticlesRenderingObservable.add((function(){Ce.b.StartPerformanceCounter(\"Particles\"),t._particlesRenderTime.beginMonitoring()})),this._onAfterParticlesRenderingObserver=this.scene.onAfterParticlesRenderingObservable.add((function(){Ce.b.EndPerformanceCounter(\"Particles\"),t._particlesRenderTime.endMonitoring(!1)}))):(this.scene.onBeforeParticlesRenderingObservable.remove(this._onBeforeParticlesRenderingObserver),this._onBeforeParticlesRenderingObserver=null,this.scene.onAfterParticlesRenderingObservable.remove(this._onAfterParticlesRenderingObserver),this._onAfterParticlesRenderingObserver=null))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"spritesRenderTimeCounter\",{get:function(){return this._spritesRenderTime},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"captureSpritesRenderTime\",{get:function(){return this._captureSpritesRenderTime},set:function(e){var t=this;e!==this._captureSpritesRenderTime&&(this._captureSpritesRenderTime=e,this.scene.spriteManagers&&(e?(this._onBeforeSpritesRenderingObserver=this.scene.onBeforeSpritesRenderingObservable.add((function(){Ce.b.StartPerformanceCounter(\"Sprites\"),t._spritesRenderTime.beginMonitoring()})),this._onAfterSpritesRenderingObserver=this.scene.onAfterSpritesRenderingObservable.add((function(){Ce.b.EndPerformanceCounter(\"Sprites\"),t._spritesRenderTime.endMonitoring(!1)}))):(this.scene.onBeforeSpritesRenderingObservable.remove(this._onBeforeSpritesRenderingObserver),this._onBeforeSpritesRenderingObserver=null,this.scene.onAfterSpritesRenderingObservable.remove(this._onAfterSpritesRenderingObserver),this._onAfterSpritesRenderingObserver=null)))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"physicsTimeCounter\",{get:function(){return this._physicsTime},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"capturePhysicsTime\",{get:function(){return this._capturePhysicsTime},set:function(e){var t=this;e!==this._capturePhysicsTime&&this.scene.onBeforePhysicsObservable&&(this._capturePhysicsTime=e,e?(this._onBeforePhysicsObserver=this.scene.onBeforePhysicsObservable.add((function(){Ce.b.StartPerformanceCounter(\"Physics\"),t._physicsTime.beginMonitoring()})),this._onAfterPhysicsObserver=this.scene.onAfterPhysicsObservable.add((function(){Ce.b.EndPerformanceCounter(\"Physics\"),t._physicsTime.endMonitoring()}))):(this.scene.onBeforePhysicsObservable.remove(this._onBeforePhysicsObserver),this._onBeforePhysicsObserver=null,this.scene.onAfterPhysicsObservable.remove(this._onAfterPhysicsObserver),this._onAfterPhysicsObserver=null))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"animationsTimeCounter\",{get:function(){return this._animationsTime},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"captureAnimationsTime\",{get:function(){return this._captureAnimationsTime},set:function(e){var t=this;e!==this._captureAnimationsTime&&(this._captureAnimationsTime=e,e?this._onAfterAnimationsObserver=this.scene.onAfterAnimationsObservable.add((function(){t._animationsTime.endMonitoring()})):(this.scene.onAfterAnimationsObservable.remove(this._onAfterAnimationsObserver),this._onAfterAnimationsObserver=null))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"frameTimeCounter\",{get:function(){return this._frameTime},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"captureFrameTime\",{get:function(){return this._captureFrameTime},set:function(e){this._captureFrameTime=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"interFrameTimeCounter\",{get:function(){return this._interFrameTime},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"captureInterFrameTime\",{get:function(){return this._captureInterFrameTime},set:function(e){this._captureInterFrameTime=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"renderTimeCounter\",{get:function(){return this._renderTime},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"captureRenderTime\",{get:function(){return this._captureRenderTime},set:function(e){var t=this;e!==this._captureRenderTime&&(this._captureRenderTime=e,e?(this._onBeforeDrawPhaseObserver=this.scene.onBeforeDrawPhaseObservable.add((function(){t._renderTime.beginMonitoring(),Ce.b.StartPerformanceCounter(\"Main render\")})),this._onAfterDrawPhaseObserver=this.scene.onAfterDrawPhaseObservable.add((function(){t._renderTime.endMonitoring(!1),Ce.b.EndPerformanceCounter(\"Main render\")}))):(this.scene.onBeforeDrawPhaseObservable.remove(this._onBeforeDrawPhaseObserver),this._onBeforeDrawPhaseObserver=null,this.scene.onAfterDrawPhaseObservable.remove(this._onAfterDrawPhaseObserver),this._onAfterDrawPhaseObserver=null))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"cameraRenderTimeCounter\",{get:function(){return this._cameraRenderTime},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"captureCameraRenderTime\",{get:function(){return this._captureCameraRenderTime},set:function(e){var t=this;e!==this._captureCameraRenderTime&&(this._captureCameraRenderTime=e,e?(this._onBeforeCameraRenderObserver=this.scene.onBeforeCameraRenderObservable.add((function(e){t._cameraRenderTime.beginMonitoring(),Ce.b.StartPerformanceCounter(\"Rendering camera \"+e.name)})),this._onAfterCameraRenderObserver=this.scene.onAfterCameraRenderObservable.add((function(e){t._cameraRenderTime.endMonitoring(!1),Ce.b.EndPerformanceCounter(\"Rendering camera \"+e.name)}))):(this.scene.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver),this._onBeforeCameraRenderObserver=null,this.scene.onAfterCameraRenderObservable.remove(this._onAfterCameraRenderObserver),this._onAfterCameraRenderObserver=null))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"drawCallsCounter\",{get:function(){return this.scene.getEngine()._drawCalls},enumerable:!1,configurable:!0}),e.prototype.dispose=function(){this.scene.onAfterRenderObservable.remove(this._onAfterRenderObserver),this._onAfterRenderObserver=null,this.scene.onBeforeActiveMeshesEvaluationObservable.remove(this._onBeforeActiveMeshesEvaluationObserver),this._onBeforeActiveMeshesEvaluationObserver=null,this.scene.onAfterActiveMeshesEvaluationObservable.remove(this._onAfterActiveMeshesEvaluationObserver),this._onAfterActiveMeshesEvaluationObserver=null,this.scene.onBeforeRenderTargetsRenderObservable.remove(this._onBeforeRenderTargetsRenderObserver),this._onBeforeRenderTargetsRenderObserver=null,this.scene.onAfterRenderTargetsRenderObservable.remove(this._onAfterRenderTargetsRenderObserver),this._onAfterRenderTargetsRenderObserver=null,this.scene.onBeforeAnimationsObservable.remove(this._onBeforeAnimationsObserver),this._onBeforeAnimationsObserver=null,this.scene.onBeforeParticlesRenderingObservable.remove(this._onBeforeParticlesRenderingObserver),this._onBeforeParticlesRenderingObserver=null,this.scene.onAfterParticlesRenderingObservable.remove(this._onAfterParticlesRenderingObserver),this._onAfterParticlesRenderingObserver=null,this._onBeforeSpritesRenderingObserver&&(this.scene.onBeforeSpritesRenderingObservable.remove(this._onBeforeSpritesRenderingObserver),this._onBeforeSpritesRenderingObserver=null),this._onAfterSpritesRenderingObserver&&(this.scene.onAfterSpritesRenderingObservable.remove(this._onAfterSpritesRenderingObserver),this._onAfterSpritesRenderingObserver=null),this.scene.onBeforeDrawPhaseObservable.remove(this._onBeforeDrawPhaseObserver),this._onBeforeDrawPhaseObserver=null,this.scene.onAfterDrawPhaseObservable.remove(this._onAfterDrawPhaseObserver),this._onAfterDrawPhaseObserver=null,this._onBeforePhysicsObserver&&(this.scene.onBeforePhysicsObservable.remove(this._onBeforePhysicsObserver),this._onBeforePhysicsObserver=null),this._onAfterPhysicsObserver&&(this.scene.onAfterPhysicsObservable.remove(this._onAfterPhysicsObserver),this._onAfterPhysicsObserver=null),this.scene.onAfterAnimationsObservable.remove(this._onAfterAnimationsObserver),this._onAfterAnimationsObserver=null,this.scene.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver),this._onBeforeCameraRenderObserver=null,this.scene.onAfterCameraRenderObservable.remove(this._onAfterCameraRenderObserver),this._onAfterCameraRenderObserver=null,this.scene=null},e}(),as=\"#ifdef DIFFUSE\\nvarying vec2 vUVDiffuse;\\nuniform sampler2D diffuseSampler;\\n#endif\\n#ifdef OPACITY\\nvarying vec2 vUVOpacity;\\nuniform sampler2D opacitySampler;\\nuniform float opacityIntensity;\\n#endif\\n#ifdef EMISSIVE\\nvarying vec2 vUVEmissive;\\nuniform sampler2D emissiveSampler;\\n#endif\\n#ifdef VERTEXALPHA\\nvarying vec4 vColor;\\n#endif\\nuniform vec4 glowColor;\\nvoid main(void)\\n{\\nvec4 finalColor=glowColor;\\n\\n#ifdef DIFFUSE\\nvec4 albedoTexture=texture2D(diffuseSampler,vUVDiffuse);\\n#ifdef GLOW\\n\\nfinalColor.a*=albedoTexture.a;\\n#endif\\n#ifdef HIGHLIGHT\\n\\nfinalColor.a=albedoTexture.a;\\n#endif\\n#endif\\n#ifdef OPACITY\\nvec4 opacityMap=texture2D(opacitySampler,vUVOpacity);\\n#ifdef OPACITYRGB\\nfinalColor.a*=getLuminance(opacityMap.rgb);\\n#else\\nfinalColor.a*=opacityMap.a;\\n#endif\\nfinalColor.a*=opacityIntensity;\\n#endif\\n#ifdef VERTEXALPHA\\nfinalColor.a*=vColor.a;\\n#endif\\n#ifdef ALPHATEST\\nif (finalColor.a\\n#include\\n#include[0..maxSimultaneousMorphTargets]\\n\\n#include\\nuniform mat4 viewProjection;\\nvarying vec4 vPosition;\\n#ifdef UV1\\nattribute vec2 uv;\\n#endif\\n#ifdef UV2\\nattribute vec2 uv2;\\n#endif\\n#ifdef DIFFUSE\\nvarying vec2 vUVDiffuse;\\nuniform mat4 diffuseMatrix;\\n#endif\\n#ifdef OPACITY\\nvarying vec2 vUVOpacity;\\nuniform mat4 opacityMatrix;\\n#endif\\n#ifdef EMISSIVE\\nvarying vec2 vUVEmissive;\\nuniform mat4 emissiveMatrix;\\n#endif\\n#ifdef VERTEXALPHA\\nattribute vec4 color;\\nvarying vec4 vColor;\\n#endif\\nvoid main(void)\\n{\\nvec3 positionUpdated=position;\\n#ifdef UV1\\nvec2 uvUpdated=uv;\\n#endif\\n#include[0..maxSimultaneousMorphTargets]\\n#include\\n#include\\n#ifdef CUBEMAP\\nvPosition=finalWorld*vec4(positionUpdated,1.0);\\ngl_Position=viewProjection*finalWorld*vec4(position,1.0);\\n#else\\nvPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);\\ngl_Position=vPosition;\\n#endif\\n#ifdef DIFFUSE\\n#ifdef DIFFUSEUV1\\nvUVDiffuse=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\\n#endif\\n#ifdef DIFFUSEUV2\\nvUVDiffuse=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\\n#endif\\n#endif\\n#ifdef OPACITY\\n#ifdef OPACITYUV1\\nvUVOpacity=vec2(opacityMatrix*vec4(uvUpdated,1.0,0.0));\\n#endif\\n#ifdef OPACITYUV2\\nvUVOpacity=vec2(opacityMatrix*vec4(uv2,1.0,0.0));\\n#endif\\n#endif\\n#ifdef EMISSIVE\\n#ifdef EMISSIVEUV1\\nvUVEmissive=vec2(emissiveMatrix*vec4(uvUpdated,1.0,0.0));\\n#endif\\n#ifdef EMISSIVEUV2\\nvUVEmissive=vec2(emissiveMatrix*vec4(uv2,1.0,0.0));\\n#endif\\n#endif\\n#ifdef VERTEXALPHA\\nvColor=color;\\n#endif\\n}\";ai.a.ShadersStore.glowMapGenerationVertexShader=ss;var cs=function(){function e(t,i){this._vertexBuffers={},this._maxSize=0,this._mainTextureDesiredSize={width:0,height:0},this._shouldRender=!0,this._postProcesses=[],this._textures=[],this._emissiveTextureAndColor={texture:null,color:new s.b},this.neutralColor=new s.b,this.isEnabled=!0,this.disableBoundingBoxesFromEffectLayer=!1,this.onDisposeObservable=new o.c,this.onBeforeRenderMainTextureObservable=new o.c,this.onBeforeComposeObservable=new o.c,this.onBeforeRenderMeshToEffect=new o.c,this.onAfterRenderMeshToEffect=new o.c,this.onAfterComposeObservable=new o.c,this.onSizeChangedObservable=new o.c,this.name=t,this._scene=i||x.a.LastCreatedScene,e._SceneComponentInitialization(this._scene),this._engine=this._scene.getEngine(),this._maxSize=this._engine.getCaps().maxTextureSize,this._scene.effectLayers.push(this),this._generateIndexBuffer(),this._generateVertexBuffer()}return Object.defineProperty(e.prototype,\"camera\",{get:function(){return this._effectLayerOptions.camera},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"renderingGroupId\",{get:function(){return this._effectLayerOptions.renderingGroupId},set:function(e){this._effectLayerOptions.renderingGroupId=e},enumerable:!1,configurable:!0}),e.prototype._init=function(e){this._effectLayerOptions=Object(h.a)({mainTextureRatio:.5,alphaBlendingMode:g.a.ALPHA_COMBINE,camera:null,renderingGroupId:-1},e),this._setMainTextureSize(),this._createMainTexture(),this._createTextureAndPostProcesses(),this._mergeEffect=this._createMergeEffect()},e.prototype._generateIndexBuffer=function(){var e=[];e.push(0),e.push(1),e.push(2),e.push(0),e.push(2),e.push(3),this._indexBuffer=this._engine.createIndexBuffer(e)},e.prototype._generateVertexBuffer=function(){var e=[];e.push(1,1),e.push(-1,1),e.push(-1,-1),e.push(1,-1);var t=new Qi.b(this._engine,e,Qi.b.PositionKind,!1,!1,2);this._vertexBuffers[Qi.b.PositionKind]=t},e.prototype._setMainTextureSize=function(){this._effectLayerOptions.mainTextureFixedSize?(this._mainTextureDesiredSize.width=this._effectLayerOptions.mainTextureFixedSize,this._mainTextureDesiredSize.height=this._effectLayerOptions.mainTextureFixedSize):(this._mainTextureDesiredSize.width=this._engine.getRenderWidth()*this._effectLayerOptions.mainTextureRatio,this._mainTextureDesiredSize.height=this._engine.getRenderHeight()*this._effectLayerOptions.mainTextureRatio,this._mainTextureDesiredSize.width=this._engine.needPOTTextures?Se.a.GetExponentOfTwo(this._mainTextureDesiredSize.width,this._maxSize):this._mainTextureDesiredSize.width,this._mainTextureDesiredSize.height=this._engine.needPOTTextures?Se.a.GetExponentOfTwo(this._mainTextureDesiredSize.height,this._maxSize):this._mainTextureDesiredSize.height),this._mainTextureDesiredSize.width=Math.floor(this._mainTextureDesiredSize.width),this._mainTextureDesiredSize.height=Math.floor(this._mainTextureDesiredSize.height)},e.prototype._createMainTexture=function(){var e=this;this._mainTexture=new Ni(\"HighlightLayerMainRTT\",{width:this._mainTextureDesiredSize.width,height:this._mainTextureDesiredSize.height},this._scene,!1,!0,g.a.TEXTURETYPE_UNSIGNED_INT),this._mainTexture.activeCamera=this._effectLayerOptions.camera,this._mainTexture.wrapU=Ke.a.CLAMP_ADDRESSMODE,this._mainTexture.wrapV=Ke.a.CLAMP_ADDRESSMODE,this._mainTexture.anisotropicFilteringLevel=1,this._mainTexture.updateSamplingMode(Ke.a.BILINEAR_SAMPLINGMODE),this._mainTexture.renderParticles=!1,this._mainTexture.renderList=null,this._mainTexture.ignoreCameraViewport=!0,this._mainTexture.customRenderFunction=function(t,i,n,r){var o;e.onBeforeRenderMainTextureObservable.notifyObservers(e);var a=e._scene.getEngine();if(r.length){for(a.setColorWrite(!1),o=0;o4&&(o.push(Qi.b.MatricesIndicesExtraKind),o.push(Qi.b.MatricesWeightsExtraKind)),r.push(\"#define NUM_BONE_INFLUENCERS \"+a.numBoneInfluencers);var p=a.skeleton;p&&p.isUsingTextureForMatrices?r.push(\"#define BONETEXTURE\"):r.push(\"#define BonesPerMesh \"+(p?p.bones.length+1:0)),a.numBoneInfluencers>0&&f.addCPUSkinningFallback(0,a)}else r.push(\"#define NUM_BONE_INFLUENCERS 0\");var _=a.morphTargetManager,m=0;_&&_.numInfluencers>0&&(r.push(\"#define MORPHTARGETS\"),m=_.numInfluencers,r.push(\"#define NUM_MORPH_INFLUENCERS \"+m),ro.a.PrepareAttributesForMorphTargetsInfluencers(o,a,m)),t&&(r.push(\"#define INSTANCES\"),ro.a.PushAttributesForInstances(o),e.getRenderingMesh().hasThinInstances&&r.push(\"#define THIN_INSTANCES\")),this._addCustomEffectDefines(r);var g=r.join(\"\\n\");return this._cachedDefines!==g&&(this._cachedDefines=g,this._effectLayerMapGenerationEffect=this._scene.getEngine().createEffect(\"glowMapGeneration\",o,[\"world\",\"mBones\",\"viewProjection\",\"glowColor\",\"morphTargetInfluences\",\"boneTextureWidth\",\"diffuseMatrix\",\"emissiveMatrix\",\"opacityMatrix\",\"opacityIntensity\"],[\"diffuseSampler\",\"emissiveSampler\",\"opacitySampler\",\"boneSampler\"],g,f,void 0,void 0,{maxSimultaneousMorphTargets:m})),this._effectLayerMapGenerationEffect.isReady()},e.prototype.render=function(){var e=this._mergeEffect;if(e.isReady()){for(var t=0;t-1&&this._scene.effectLayers.splice(t,1),this.onDisposeObservable.notifyObservers(this),this.onDisposeObservable.clear(),this.onBeforeRenderMainTextureObservable.clear(),this.onBeforeComposeObservable.clear(),this.onBeforeRenderMeshToEffect.clear(),this.onAfterRenderMeshToEffect.clear(),this.onAfterComposeObservable.clear(),this.onSizeChangedObservable.clear()},e.prototype.getClassName=function(){return\"EffectLayer\"},e.Parse=function(e,t,i){return Ce.b.Instantiate(e.customType).Parse(e,t,i)},e._SceneComponentInitialization=function(e){throw Re.a.WarnImport(\"EffectLayerSceneComponent\")},Object(h.c)([Object(w.c)()],e.prototype,\"name\",void 0),Object(h.c)([Object(w.f)()],e.prototype,\"neutralColor\",void 0),Object(h.c)([Object(w.c)()],e.prototype,\"isEnabled\",void 0),Object(h.c)([Object(w.d)()],e.prototype,\"camera\",null),Object(h.c)([Object(w.c)()],e.prototype,\"renderingGroupId\",null),Object(h.c)([Object(w.c)()],e.prototype,\"disableBoundingBoxesFromEffectLayer\",void 0),e}();n.a.AddParser(Me.a.NAME_EFFECTLAYER,(function(e,t,i,n){if(e.effectLayers){i.effectLayers||(i.effectLayers=new Array);for(var r=0;r0){this._previousStencilState=this._engine.getStencilBuffer();for(var n=0,r=i;n-1)){this._renderEffects=!0,this._needStencil=this._needStencil||o.needStencil();var a=o._mainTexture;a._shouldRender()&&(this.scene.incrementRenderId(),a.render(!1,!1),t=!0)}}this.scene.incrementRenderId()}return t},e.prototype._setStencil=function(){this._needStencil&&this._engine.setStencilBuffer(!0)},e.prototype._setStencilBack=function(){this._needStencil&&this._engine.setStencilBuffer(this._previousStencilState)},e.prototype._draw=function(e){if(this._renderEffects){this._engine.setDepthBuffer(!1);for(var t=this.scene.effectLayers,i=0;i-1},t.prototype.referenceMeshToUseItsOwnMaterial=function(e){this._meshesUsingTheirOwnMaterials.push(e.uniqueId)},t.prototype.unReferenceMeshFromUsingItsOwnMaterial=function(e){for(var t=this._meshesUsingTheirOwnMaterials.indexOf(e.uniqueId);t>=0;)this._meshesUsingTheirOwnMaterials.splice(t,1),t=this._meshesUsingTheirOwnMaterials.indexOf(e.uniqueId)},t.prototype._disposeMesh=function(e){this.removeIncludedOnlyMesh(e),this.removeExcludedMesh(e)},t.prototype.getClassName=function(){return\"GlowLayer\"},t.prototype.serialize=function(){var e,t=w.a.Serialize(this);if(t.customType=\"BABYLON.GlowLayer\",t.includedMeshes=[],this._includedOnlyMeshes.length)for(e=0;e0&&e.isBackground===t&&e.renderTargetTextures.indexOf(n)>-1&&0!=(e.layerMask&i)},e.prototype._drawRenderTargetBackground=function(e){var t=this;this._draw((function(i){return t._drawRenderTargetPredicate(i,!0,t.scene.activeCamera.layerMask,e)}))},e.prototype._drawRenderTargetForeground=function(e){var t=this;this._draw((function(i){return t._drawRenderTargetPredicate(i,!1,t.scene.activeCamera.layerMask,e)}))},e.prototype.addFromContainer=function(e){var t=this;e.layers&&e.layers.forEach((function(e){t.scene.layers.push(e)}))},e.prototype.removeFromContainer=function(e,t){var i=this;void 0===t&&(t=!1),e.layers&&e.layers.forEach((function(e){var n=i.scene.layers.indexOf(e);-1!==n&&i.scene.layers.splice(n,1),t&&e.dispose()}))},e}(),gs=\"\\nvarying vec2 vUV;\\nuniform sampler2D textureSampler;\\n\\nuniform vec4 color;\\n\\n#include\\nvoid main(void) {\\nvec4 baseColor=texture2D(textureSampler,vUV);\\n#ifdef LINEAR\\nbaseColor.rgb=toGammaSpace(baseColor.rgb);\\n#endif\\n#ifdef ALPHATEST\\nif (baseColor.a<0.4)\\ndiscard;\\n#endif\\ngl_FragColor=baseColor*color;\\n}\";ai.a.ShadersStore.layerPixelShader=gs;var vs=\"\\nattribute vec2 position;\\n\\nuniform vec2 scale;\\nuniform vec2 offset;\\nuniform mat4 textureMatrix;\\n\\nvarying vec2 vUV;\\nconst vec2 madd=vec2(0.5,0.5);\\nvoid main(void) {\\nvec2 shiftedPosition=position*scale+offset;\\nvUV=vec2(textureMatrix*vec4(shiftedPosition*madd+madd,1.0,0.0));\\ngl_Position=vec4(shiftedPosition,0.0,1.0);\\n}\";ai.a.ShadersStore.layerVertexShader=vs;var bs=function(){function e(e,t,i,n,r){this.name=e,this.scale=new a.d(1,1),this.offset=new a.d(0,0),this.alphaBlendingMode=g.a.ALPHA_COMBINE,this.layerMask=268435455,this.renderTargetTextures=[],this.renderOnlyInRenderTargetTextures=!1,this._vertexBuffers={},this.onDisposeObservable=new o.c,this.onBeforeRenderObservable=new o.c,this.onAfterRenderObservable=new o.c,this.texture=t?new Ke.a(t,i,!0):null,this.isBackground=void 0===n||n,this.color=void 0===r?new s.b(1,1,1,1):r,this._scene=i||x.a.LastCreatedScene;var c=this._scene._getComponent(Me.a.NAME_LAYER);c||(c=new ms(this._scene),this._scene._addComponent(c)),this._scene.layers.push(this);var l=this._scene.getEngine(),u=[];u.push(1,1),u.push(-1,1),u.push(-1,-1),u.push(1,-1);var h=new Qi.b(l,u,Qi.b.PositionKind,!1,!1,2);this._vertexBuffers[Qi.b.PositionKind]=h,this._createIndexBuffer()}return Object.defineProperty(e.prototype,\"onDispose\",{set:function(e){this._onDisposeObserver&&this.onDisposeObservable.remove(this._onDisposeObserver),this._onDisposeObserver=this.onDisposeObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"onBeforeRender\",{set:function(e){this._onBeforeRenderObserver&&this.onBeforeRenderObservable.remove(this._onBeforeRenderObserver),this._onBeforeRenderObserver=this.onBeforeRenderObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"onAfterRender\",{set:function(e){this._onAfterRenderObserver&&this.onAfterRenderObservable.remove(this._onAfterRenderObserver),this._onAfterRenderObserver=this.onAfterRenderObservable.add(e)},enumerable:!1,configurable:!0}),e.prototype._createIndexBuffer=function(){var e=this._scene.getEngine(),t=[];t.push(0),t.push(1),t.push(2),t.push(0),t.push(2),t.push(3),this._indexBuffer=e.createIndexBuffer(t)},e.prototype._rebuild=function(){var e=this._vertexBuffers[Qi.b.PositionKind];e&&e._rebuild(),this._createIndexBuffer()},e.prototype.render=function(){var e=this._scene.getEngine(),t=\"\";this.alphaTest&&(t=\"#define ALPHATEST\"),this.texture&&!this.texture.gammaSpace&&(t+=\"\\r\\n#define LINEAR\"),this._previousDefines!==t&&(this._previousDefines=t,this._effect=e.createEffect(\"layer\",[Qi.b.PositionKind],[\"textureMatrix\",\"color\",\"scale\",\"offset\"],[\"textureSampler\"],t));var i=this._effect;if(i&&i.isReady()&&this.texture&&this.texture.isReady()){e=this._scene.getEngine();this.onBeforeRenderObservable.notifyObservers(this),e.enableEffect(i),e.setState(!1),i.setTexture(\"textureSampler\",this.texture),i.setMatrix(\"textureMatrix\",this.texture.getTextureMatrix()),i.setFloat4(\"color\",this.color.r,this.color.g,this.color.b,this.color.a),i.setVector2(\"offset\",this.offset),i.setVector2(\"scale\",this.scale),e.bindBuffers(this._vertexBuffers,this._indexBuffer,i),this.alphaTest?e.drawElementsType(xo.a.TriangleFillMode,0,6):(e.setAlphaMode(this.alphaBlendingMode),e.drawElementsType(xo.a.TriangleFillMode,0,6),e.setAlphaMode(g.a.ALPHA_DISABLE)),this.onAfterRenderObservable.notifyObservers(this)}},e.prototype.dispose=function(){var e=this._vertexBuffers[Qi.b.PositionKind];e&&(e.dispose(),this._vertexBuffers[Qi.b.PositionKind]=null),this._indexBuffer&&(this._scene.getEngine()._releaseBuffer(this._indexBuffer),this._indexBuffer=null),this.texture&&(this.texture.dispose(),this.texture=null),this.renderTargetTextures=[];var t=this._scene.layers.indexOf(this);this._scene.layers.splice(t,1),this.onDisposeObservable.notifyObservers(this),this.onDisposeObservable.clear(),this.onAfterRenderObservable.clear(),this.onBeforeRenderObservable.clear()},e}(),ys=function(){function e(e,t,i,n,r){this.size=e,this.position=t,this.alphaMode=g.a.ALPHA_ONEONE,this.color=i||new s.a(1,1,1),this.texture=n?new Ke.a(n,r.getScene(),!0):null,this._system=r,r.lensFlares.push(this)}return e.AddFlare=function(t,i,n,r,o){return new e(t,i,n,r,o)},e.prototype.dispose=function(){this.texture&&this.texture.dispose();var e=this._system.lensFlares.indexOf(this);this._system.lensFlares.splice(e,1)},e}(),Ts=\"\\nvarying vec2 vUV;\\nuniform sampler2D textureSampler;\\n\\nuniform vec4 color;\\nvoid main(void) {\\nvec4 baseColor=texture2D(textureSampler,vUV);\\ngl_FragColor=baseColor*color;\\n}\";ai.a.ShadersStore.lensFlarePixelShader=Ts;var Es=\"\\nattribute vec2 position;\\n\\nuniform mat4 viewportMatrix;\\n\\nvarying vec2 vUV;\\nconst vec2 madd=vec2(0.5,0.5);\\nvoid main(void) {\\nvUV=position*madd+madd;\\ngl_Position=viewportMatrix*vec4(position,0.0,1.0);\\n}\";ai.a.ShadersStore.lensFlareVertexShader=Es;var Ss=function(){function e(t,i,n){this.name=t,this.lensFlares=new Array,this.borderLimit=300,this.viewportBorder=0,this.layerMask=268435455,this._vertexBuffers={},this._isEnabled=!0,this._scene=n||x.a.LastCreatedScene,e._SceneComponentInitialization(this._scene),this._emitter=i,this.id=t,n.lensFlareSystems.push(this),this.meshesSelectionPredicate=function(e){return n.activeCamera&&e.material&&e.isVisible&&e.isEnabled()&&e.isBlocker&&0!=(e.layerMask&n.activeCamera.layerMask)};var r=n.getEngine(),o=[];o.push(1,1),o.push(-1,1),o.push(-1,-1),o.push(1,-1),this._vertexBuffers[Qi.b.PositionKind]=new Qi.b(r,o,Qi.b.PositionKind,!1,!1,2);var a=[];a.push(0),a.push(1),a.push(2),a.push(0),a.push(2),a.push(3),this._indexBuffer=r.createIndexBuffer(a),this._effect=r.createEffect(\"lensFlare\",[Qi.b.PositionKind],[\"color\",\"viewportMatrix\"],[\"textureSampler\"],\"\")}return Object.defineProperty(e.prototype,\"isEnabled\",{get:function(){return this._isEnabled},set:function(e){this._isEnabled=e},enumerable:!1,configurable:!0}),e.prototype.getScene=function(){return this._scene},e.prototype.getEmitter=function(){return this._emitter},e.prototype.setEmitter=function(e){this._emitter=e},e.prototype.getEmitterPosition=function(){return this._emitter.getAbsolutePosition?this._emitter.getAbsolutePosition():this._emitter.position},e.prototype.computeEffectivePosition=function(e){var t=this.getEmitterPosition();return t=a.e.Project(t,a.a.Identity(),this._scene.getTransformMatrix(),e),this._positionX=t.x,this._positionY=t.y,t=a.e.TransformCoordinates(this.getEmitterPosition(),this._scene.getViewMatrix()),this.viewportBorder>0&&(e.x-=this.viewportBorder,e.y-=this.viewportBorder,e.width+=2*this.viewportBorder,e.height+=2*this.viewportBorder,t.x+=this.viewportBorder,t.y+=this.viewportBorder,this._positionX+=this.viewportBorder,this._positionY+=this.viewportBorder),t.z>0&&(this._positionX>e.x&&this._positionXe.y&&(this._positionY,e.y,e.height),!0)},e.prototype._isVisible=function(){if(!this._isEnabled||!this._scene.activeCamera)return!1;var e=this.getEmitterPosition().subtract(this._scene.activeCamera.globalPosition),t=e.length();e.normalize();var i=new Xt.a(this._scene.activeCamera.globalPosition,e),n=this._scene.pickWithRay(i,this.meshesSelectionPredicate,!0);return!n||!n.hit||n.distance>t},e.prototype.render=function(){if(!this._effect.isReady()||!this._scene.activeCamera)return!1;var e,t,i=this._scene.getEngine(),n=this._scene.activeCamera.viewport.toGlobal(i.getRenderWidth(!0),i.getRenderHeight(!0));if(!this.computeEffectivePosition(n))return!1;if(!this._isVisible())return!1;var r=(e=this._positionXn.x+n.width-this.borderLimit?this._positionX-n.x-n.width+this.borderLimit:0)>(t=this._positionYn.y+n.height-this.borderLimit?this._positionY-n.y-n.height+this.borderLimit:0)?e:t;(r-=this.viewportBorder)>this.borderLimit&&(r=this.borderLimit);var o=1-L.a.Clamp(r/this.borderLimit,0,1);if(o<0)return!1;o>1&&(o=1),this.viewportBorder>0&&(n.x+=this.viewportBorder,n.y+=this.viewportBorder,n.width-=2*this.viewportBorder,n.height-=2*this.viewportBorder,this._positionX-=this.viewportBorder,this._positionY-=this.viewportBorder);var s=n.x+n.width/2,c=n.y+n.height/2,l=s-this._positionX,u=c-this._positionY;i.enableEffect(this._effect),i.setState(!1),i.setDepthBuffer(!1),i.bindBuffers(this._vertexBuffers,this._indexBuffer,this._effect);for(var h=0;h0);for(var i=0,n=t;i0)}},e}();Ss._SceneComponentInitialization=function(e){var t=e._getComponent(Me.a.NAME_LENSFLARESYSTEM);t||(t=new As(e),e._addComponent(t))};var Ps=\"\\n\\n\\n\\n\\nfloat bayerDither2(vec2 _P) {\\nreturn mod(2.0*_P.y+_P.x+1.0,4.0);\\n}\\n\\n\\nfloat bayerDither4(vec2 _P) {\\nvec2 P1=mod(_P,2.0);\\nvec2 P2=floor(0.5*mod(_P,4.0));\\nreturn 4.0*bayerDither2(P1)+bayerDither2(P2);\\n}\\n\\nfloat bayerDither8(vec2 _P) {\\nvec2 P1=mod(_P,2.0);\\nvec2 P2=floor(0.5*mod(_P,4.0));\\nvec2 P4=floor(0.25*mod(_P,8.0));\\nreturn 4.0*(4.0*bayerDither2(P1)+bayerDither2(P2))+bayerDither2(P4);\\n}\\n\";ai.a.IncludesShadersStore.bayerDitherFunctions=Ps;var Cs=\"#if SM_FLOAT == 0\\n#include\\n#endif\\n#if SM_SOFTTRANSPARENTSHADOW == 1\\n#include\\nuniform float softTransparentShadowSM;\\n#endif\\nvarying float vDepthMetricSM;\\n#if SM_USEDISTANCE == 1\\nuniform vec3 lightDataSM;\\nvarying vec3 vPositionWSM;\\n#endif\\nuniform vec3 biasAndScaleSM;\\nuniform vec2 depthValuesSM;\\n#if defined(SM_DEPTHCLAMP) && SM_DEPTHCLAMP == 1\\nvarying float zSM;\\n#endif\\n\";ai.a.IncludesShadersStore.shadowMapFragmentDeclaration=Cs;var Rs=\" float depthSM=vDepthMetricSM;\\n#if defined(SM_DEPTHCLAMP) && SM_DEPTHCLAMP == 1\\n#if SM_USEDISTANCE == 1\\ndepthSM=clamp(((length(vPositionWSM-lightDataSM)+depthValuesSM.x)/(depthValuesSM.y))+biasAndScaleSM.x,0.0,1.0);\\n#else\\ndepthSM=clamp(((zSM+depthValuesSM.x)/(depthValuesSM.y))+biasAndScaleSM.x,0.0,1.0);\\n#endif\\ngl_FragDepth=depthSM;\\n#elif SM_USEDISTANCE == 1\\ndepthSM=(length(vPositionWSM-lightDataSM)+depthValuesSM.x)/(depthValuesSM.y)+biasAndScaleSM.x;\\n#endif\\n#if SM_ESM == 1\\ndepthSM=clamp(exp(-min(87.,biasAndScaleSM.z*depthSM)),0.,1.);\\n#endif\\n#if SM_FLOAT == 1\\ngl_FragColor=vec4(depthSM,1.0,1.0,1.0);\\n#else\\ngl_FragColor=pack(depthSM);\\n#endif\\nreturn;\";ai.a.IncludesShadersStore.shadowMapFragment=Rs;var xs=\"#include\\n#ifdef ALPHATEST\\nvarying vec2 vUV;\\nuniform sampler2D diffuseSampler;\\n#endif\\n#include\\nvoid main(void)\\n{\\n#include\\n#ifdef ALPHATEST\\nfloat alphaFromAlphaTexture=texture2D(diffuseSampler,vUV).a;\\nif (alphaFromAlphaTexture<0.4)\\ndiscard;\\n#endif\\n#if SM_SOFTTRANSPARENTSHADOW == 1\\n#ifdef ALPHATEST\\nif ((bayerDither8(floor(mod(gl_FragCoord.xy,8.0))))/64.0>=softTransparentShadowSM*alphaFromAlphaTexture) discard;\\n#else\\nif ((bayerDither8(floor(mod(gl_FragCoord.xy,8.0))))/64.0>=softTransparentShadowSM) discard;\\n#endif\\n#endif\\n#include\\n}\";ai.a.ShadersStore.shadowMapPixelShader=xs;var Os=\"#if SM_NORMALBIAS == 1\\nuniform vec3 lightDataSM;\\n#endif\\nuniform vec3 biasAndScaleSM;\\nuniform vec2 depthValuesSM;\\nvarying float vDepthMetricSM;\\n#if SM_USEDISTANCE == 1\\nvarying vec3 vPositionWSM;\\n#endif\\n#if defined(SM_DEPTHCLAMP) && SM_DEPTHCLAMP == 1\\nvarying float zSM;\\n#endif\\n\";ai.a.IncludesShadersStore.shadowMapVertexDeclaration=Os;var Ms=\"\\n#if SM_NORMALBIAS == 1\\n#if SM_DIRECTIONINLIGHTDATA == 1\\nvec3 worldLightDirSM=normalize(-lightDataSM.xyz);\\n#else\\nvec3 directionToLightSM=lightDataSM.xyz-worldPos.xyz;\\nvec3 worldLightDirSM=normalize(directionToLightSM);\\n#endif\\nfloat ndlSM=dot(vNormalW,worldLightDirSM);\\nfloat sinNLSM=sqrt(1.0-ndlSM*ndlSM);\\nfloat normalBiasSM=biasAndScaleSM.y*sinNLSM;\\nworldPos.xyz-=vNormalW*normalBiasSM;\\n#endif\\n\";ai.a.IncludesShadersStore.shadowMapVertexNormalBias=Ms;var Is=\"#if SM_USEDISTANCE == 1\\nvPositionWSM=worldPos.xyz;\\n#endif\\n#if SM_DEPTHTEXTURE == 1\\n\\ngl_Position.z+=biasAndScaleSM.x*gl_Position.w;\\n#endif\\n#if defined(SM_DEPTHCLAMP) && SM_DEPTHCLAMP == 1\\nzSM=gl_Position.z;\\ngl_Position.z=0.0;\\n#elif SM_USEDISTANCE == 0\\n\\nvDepthMetricSM=((gl_Position.z+depthValuesSM.x)/(depthValuesSM.y))+biasAndScaleSM.x;\\n#endif\\n\";ai.a.IncludesShadersStore.shadowMapVertexMetric=Is;var Ds=\"\\nattribute vec3 position;\\n#ifdef NORMAL\\nattribute vec3 normal;\\n#endif\\n#include\\n#include\\n#include[0..maxSimultaneousMorphTargets]\\n\\n#include\\n#include\\nuniform mat4 viewProjection;\\n#ifdef ALPHATEST\\nvarying vec2 vUV;\\nuniform mat4 diffuseMatrix;\\n#ifdef UV1\\nattribute vec2 uv;\\n#endif\\n#ifdef UV2\\nattribute vec2 uv2;\\n#endif\\n#endif\\n#include\\n#include\\nvoid main(void)\\n{\\nvec3 positionUpdated=position;\\n#ifdef UV1\\nvec2 uvUpdated=uv;\\n#endif\\n#ifdef NORMAL\\nvec3 normalUpdated=normal;\\n#endif\\n#include[0..maxSimultaneousMorphTargets]\\n#include\\n#include\\nvec4 worldPos=finalWorld*vec4(positionUpdated,1.0);\\n#ifdef NORMAL\\nmat3 normWorldSM=mat3(finalWorld);\\n#if defined(INSTANCES) && defined(THIN_INSTANCES)\\nvec3 vNormalW=normalUpdated/vec3(dot(normWorldSM[0],normWorldSM[0]),dot(normWorldSM[1],normWorldSM[1]),dot(normWorldSM[2],normWorldSM[2]));\\nvNormalW=normalize(normWorldSM*vNormalW);\\n#else\\n#ifdef NONUNIFORMSCALING\\nnormWorldSM=transposeMat3(inverseMat3(normWorldSM));\\n#endif\\nvec3 vNormalW=normalize(normWorldSM*normalUpdated);\\n#endif\\n#endif\\n#include\\n\\ngl_Position=viewProjection*worldPos;\\n#include\\n#ifdef ALPHATEST\\n#ifdef UV1\\nvUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\\n#endif\\n#ifdef UV2\\nvUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\\n#endif\\n#endif\\n#include\\n}\";ai.a.ShadersStore.shadowMapVertexShader=Ds;var Ns=\"\\nvarying vec2 vUV;\\nuniform sampler2D textureSampler;\\n\\nuniform vec2 screenSize;\\nvoid main(void)\\n{\\nvec4 colorDepth=vec4(0.0);\\nfor (int x=-OFFSET; x<=OFFSET; x++)\\nfor (int y=-OFFSET; y<=OFFSET; y++)\\ncolorDepth+=texture2D(textureSampler,vUV+vec2(x,y)/screenSize);\\ngl_FragColor=(colorDepth/float((OFFSET*2+1)*(OFFSET*2+1)));\\n}\";ai.a.ShadersStore.depthBoxBlurPixelShader=Ns;var Ls=\"#if SM_SOFTTRANSPARENTSHADOW == 1\\nif ((bayerDither8(floor(mod(gl_FragCoord.xy,8.0))))/64.0>=softTransparentShadowSM*alpha) discard;\\n#endif\\n\";ai.a.IncludesShadersStore.shadowMapFragmentSoftTransparentShadow=Ls;var ws=new a.a,Fs=new a.a,Bs=function(){function e(t,i,n){this.onBeforeShadowMapRenderObservable=new o.c,this.onAfterShadowMapRenderObservable=new o.c,this.onBeforeShadowMapRenderMeshObservable=new o.c,this.onAfterShadowMapRenderMeshObservable=new o.c,this._bias=5e-5,this._normalBias=0,this._blurBoxOffset=1,this._blurScale=2,this._blurKernel=1,this._useKernelBlur=!1,this._filter=e.FILTER_NONE,this._filteringQuality=e.QUALITY_HIGH,this._contactHardeningLightSizeUVRatio=.1,this._darkness=0,this._transparencyShadow=!1,this.enableSoftTransparentShadow=!1,this.frustumEdgeFalloff=0,this.forceBackFacesOnly=!1,this._lightDirection=a.e.Zero(),this._viewMatrix=a.a.Zero(),this._projectionMatrix=a.a.Zero(),this._transformMatrix=a.a.Zero(),this._cachedPosition=new a.e(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),this._cachedDirection=new a.e(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),this._currentFaceIndex=0,this._currentFaceIndexCache=0,this._defaultTextureMatrix=a.a.Identity(),this._mapSize=t,this._light=i,this._scene=i.getScene(),i._shadowGenerator=this,this.id=i.id,e._SceneComponentInitialization(this._scene);var r=this._scene.getEngine().getCaps();n?r.textureFloatRender&&r.textureFloatLinearFiltering?this._textureType=g.a.TEXTURETYPE_FLOAT:r.textureHalfFloatRender&&r.textureHalfFloatLinearFiltering?this._textureType=g.a.TEXTURETYPE_HALF_FLOAT:this._textureType=g.a.TEXTURETYPE_UNSIGNED_INT:r.textureHalfFloatRender&&r.textureHalfFloatLinearFiltering?this._textureType=g.a.TEXTURETYPE_HALF_FLOAT:r.textureFloatRender&&r.textureFloatLinearFiltering?this._textureType=g.a.TEXTURETYPE_FLOAT:this._textureType=g.a.TEXTURETYPE_UNSIGNED_INT,this._initializeGenerator(),this._applyFilterValues()}return Object.defineProperty(e.prototype,\"bias\",{get:function(){return this._bias},set:function(e){this._bias=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"normalBias\",{get:function(){return this._normalBias},set:function(e){this._normalBias=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"blurBoxOffset\",{get:function(){return this._blurBoxOffset},set:function(e){this._blurBoxOffset!==e&&(this._blurBoxOffset=e,this._disposeBlurPostProcesses())},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"blurScale\",{get:function(){return this._blurScale},set:function(e){this._blurScale!==e&&(this._blurScale=e,this._disposeBlurPostProcesses())},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"blurKernel\",{get:function(){return this._blurKernel},set:function(e){this._blurKernel!==e&&(this._blurKernel=e,this._disposeBlurPostProcesses())},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"useKernelBlur\",{get:function(){return this._useKernelBlur},set:function(e){this._useKernelBlur!==e&&(this._useKernelBlur=e,this._disposeBlurPostProcesses())},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"depthScale\",{get:function(){return void 0!==this._depthScale?this._depthScale:this._light.getDepthScale()},set:function(e){this._depthScale=e},enumerable:!1,configurable:!0}),e.prototype._validateFilter=function(e){return e},Object.defineProperty(e.prototype,\"filter\",{get:function(){return this._filter},set:function(t){if(t=this._validateFilter(t),this._light.needCube()){if(t===e.FILTER_BLUREXPONENTIALSHADOWMAP)return void(this.useExponentialShadowMap=!0);if(t===e.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP)return void(this.useCloseExponentialShadowMap=!0);if(t===e.FILTER_PCF||t===e.FILTER_PCSS)return void(this.usePoissonSampling=!0)}t!==e.FILTER_PCF&&t!==e.FILTER_PCSS||1!==this._scene.getEngine().webGLVersion?this._filter!==t&&(this._filter=t,this._disposeBlurPostProcesses(),this._applyFilterValues(),this._light._markMeshesAsLightDirty()):this.usePoissonSampling=!0},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"usePoissonSampling\",{get:function(){return this.filter===e.FILTER_POISSONSAMPLING},set:function(t){var i=this._validateFilter(e.FILTER_POISSONSAMPLING);(t||this.filter===e.FILTER_POISSONSAMPLING)&&(this.filter=t?i:e.FILTER_NONE)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"useExponentialShadowMap\",{get:function(){return this.filter===e.FILTER_EXPONENTIALSHADOWMAP},set:function(t){var i=this._validateFilter(e.FILTER_EXPONENTIALSHADOWMAP);(t||this.filter===e.FILTER_EXPONENTIALSHADOWMAP)&&(this.filter=t?i:e.FILTER_NONE)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"useBlurExponentialShadowMap\",{get:function(){return this.filter===e.FILTER_BLUREXPONENTIALSHADOWMAP},set:function(t){var i=this._validateFilter(e.FILTER_BLUREXPONENTIALSHADOWMAP);(t||this.filter===e.FILTER_BLUREXPONENTIALSHADOWMAP)&&(this.filter=t?i:e.FILTER_NONE)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"useCloseExponentialShadowMap\",{get:function(){return this.filter===e.FILTER_CLOSEEXPONENTIALSHADOWMAP},set:function(t){var i=this._validateFilter(e.FILTER_CLOSEEXPONENTIALSHADOWMAP);(t||this.filter===e.FILTER_CLOSEEXPONENTIALSHADOWMAP)&&(this.filter=t?i:e.FILTER_NONE)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"useBlurCloseExponentialShadowMap\",{get:function(){return this.filter===e.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP},set:function(t){var i=this._validateFilter(e.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP);(t||this.filter===e.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP)&&(this.filter=t?i:e.FILTER_NONE)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"usePercentageCloserFiltering\",{get:function(){return this.filter===e.FILTER_PCF},set:function(t){var i=this._validateFilter(e.FILTER_PCF);(t||this.filter===e.FILTER_PCF)&&(this.filter=t?i:e.FILTER_NONE)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"filteringQuality\",{get:function(){return this._filteringQuality},set:function(e){this._filteringQuality!==e&&(this._filteringQuality=e,this._disposeBlurPostProcesses(),this._applyFilterValues(),this._light._markMeshesAsLightDirty())},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"useContactHardeningShadow\",{get:function(){return this.filter===e.FILTER_PCSS},set:function(t){var i=this._validateFilter(e.FILTER_PCSS);(t||this.filter===e.FILTER_PCSS)&&(this.filter=t?i:e.FILTER_NONE)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"contactHardeningLightSizeUVRatio\",{get:function(){return this._contactHardeningLightSizeUVRatio},set:function(e){this._contactHardeningLightSizeUVRatio=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"darkness\",{get:function(){return this._darkness},set:function(e){this.setDarkness(e)},enumerable:!1,configurable:!0}),e.prototype.getDarkness=function(){return this._darkness},e.prototype.setDarkness=function(e){return this._darkness=e>=1?1:e<=0?0:e,this},Object.defineProperty(e.prototype,\"transparencyShadow\",{get:function(){return this._transparencyShadow},set:function(e){this.setTransparencyShadow(e)},enumerable:!1,configurable:!0}),e.prototype.setTransparencyShadow=function(e){return this._transparencyShadow=e,this},e.prototype.getShadowMap=function(){return this._shadowMap},e.prototype.getShadowMapForRendering=function(){return this._shadowMap2?this._shadowMap2:this._shadowMap},e.prototype.getClassName=function(){return e.CLASSNAME},e.prototype.addShadowCaster=function(e,t){var i;return void 0===t&&(t=!0),this._shadowMap?(this._shadowMap.renderList||(this._shadowMap.renderList=[]),this._shadowMap.renderList.push(e),t&&(i=this._shadowMap.renderList).push.apply(i,e.getChildMeshes()),this):this},e.prototype.removeShadowCaster=function(e,t){if(void 0===t&&(t=!0),!this._shadowMap||!this._shadowMap.renderList)return this;var i=this._shadowMap.renderList.indexOf(e);if(-1!==i&&this._shadowMap.renderList.splice(i,1),t)for(var n=0,r=e.getChildren();n1?(this._shadowMap=new Ni(this._light.name+\"_shadowMap\",this._mapSize,this._scene,!1,!0,this._textureType,this._light.needCube(),void 0,!1,!1),this._shadowMap.createDepthStencilTexture(g.a.LESS,!0)):this._shadowMap=new Ni(this._light.name+\"_shadowMap\",this._mapSize,this._scene,!1,!0,this._textureType,this._light.needCube())},e.prototype._initializeShadowMap=function(){var t=this;if(this._createTargetRenderTexture(),null!==this._shadowMap){this._shadowMap.wrapU=Ke.a.CLAMP_ADDRESSMODE,this._shadowMap.wrapV=Ke.a.CLAMP_ADDRESSMODE,this._shadowMap.anisotropicFilteringLevel=1,this._shadowMap.updateSamplingMode(Ke.a.BILINEAR_SAMPLINGMODE),this._shadowMap.renderParticles=!1,this._shadowMap.ignoreCameraViewport=!0,this._storedUniqueId&&(this._shadowMap.uniqueId=this._storedUniqueId),this._shadowMap.customRenderFunction=this._renderForShadowMap.bind(this),this._shadowMap.customIsReadyFunction=function(e,t){return!0};var i=this._scene.getEngine();this._shadowMap.onBeforeRenderObservable.add((function(n){if(t._currentFaceIndex=n,t._filter===e.FILTER_PCF&&i.setColorWrite(!1),t._scene.getSceneUniformBuffer().useUbo){var r=t._scene.getSceneUniformBuffer();r.updateMatrix(\"viewProjection\",t.getTransformMatrix()),r.updateMatrix(\"view\",t._viewMatrix),r.update()}})),this._shadowMap.onAfterUnbindObservable.add((function(){if(t._scene.getSceneUniformBuffer().useUbo){var n=t._scene.getSceneUniformBuffer();n.updateMatrix(\"viewProjection\",t._scene.getTransformMatrix()),n.updateMatrix(\"view\",t._scene.getViewMatrix()),n.update()}if(t._filter===e.FILTER_PCF&&i.setColorWrite(!0),t.useBlurExponentialShadowMap||t.useBlurCloseExponentialShadowMap){var r=t.getShadowMapForRendering();if(r){var o=r.getInternalTexture();t._scene.postProcessManager.directRender(t._blurPostProcesses,o,!0),i.unBindFramebuffer(o,!0)}}}));var n=new s.b(0,0,0,0),r=new s.b(1,1,1,1);this._shadowMap.onClearObservable.add((function(i){t._filter===e.FILTER_PCF?i.clear(r,!1,!0,!1):t.useExponentialShadowMap||t.useBlurExponentialShadowMap?i.clear(n,!0,!0,!1):i.clear(r,!0,!0,!1)})),this._shadowMap.onResizeObservable.add((function(e){t._storedUniqueId=t._shadowMap.uniqueId,t._mapSize=e.getRenderSize(),t._light._markMeshesAsLightDirty(),t.recreateShadowMap()}));for(var o=Di.b.MIN_RENDERINGGROUPS;o=a.length)return void(e&&e(i));setTimeout(d,16)}};d()}else e&&e(this)}else e&&e(this)}else e&&e(this)},e.prototype.forceCompilationAsync=function(e){var t=this;return new Promise((function(i){t.forceCompilation((function(){i()}),e)}))},e.prototype._isReadyCustomDefines=function(e,t,i){},e.prototype._prepareShadowDefines=function(e,t,i,n){i.push(\"#define SM_FLOAT \"+(this._textureType!==g.a.TEXTURETYPE_UNSIGNED_INT?\"1\":\"0\")),i.push(\"#define SM_ESM \"+(this.useExponentialShadowMap||this.useBlurExponentialShadowMap?\"1\":\"0\")),i.push(\"#define SM_DEPTHTEXTURE \"+(this.usePercentageCloserFiltering||this.useContactHardeningShadow?\"1\":\"0\"));var r=e.getMesh();return i.push(\"#define SM_NORMALBIAS \"+(this.normalBias&&r.isVerticesDataPresent(Qi.b.NormalKind)?\"1\":\"0\")),i.push(\"#define SM_DIRECTIONINLIGHTDATA \"+(this.getLight().getTypeID()===kr.a.LIGHTTYPEID_DIRECTIONALLIGHT?\"1\":\"0\")),i.push(\"#define SM_USEDISTANCE \"+(this._light.needCube()?\"1\":\"0\")),i.push(\"#define SM_SOFTTRANSPARENTSHADOW \"+(this.enableSoftTransparentShadow&&n?\"1\":\"0\")),this._isReadyCustomDefines(i,e,t),i},e.prototype.isReady=function(e,t,i){var n=e.getMaterial(),r=null==n?void 0:n.shadowDepthWrapper,o=[];if(this._prepareShadowDefines(e,t,o,i),r){if(!r.isReadyForSubMesh(e,o,this,t))return!1}else{var a=[Qi.b.PositionKind],s=e.getMesh();if(this.normalBias&&s.isVerticesDataPresent(Qi.b.NormalKind)&&(a.push(Qi.b.NormalKind),o.push(\"#define NORMAL\"),s.nonUniformScaling&&o.push(\"#define NONUNIFORMSCALING\")),n&&n.needAlphaTesting()){var c=n.getAlphaTestTexture();if(c){if(!c.isReady())return!1;o.push(\"#define ALPHATEST\"),s.isVerticesDataPresent(Qi.b.UVKind)&&(a.push(Qi.b.UVKind),o.push(\"#define UV1\")),s.isVerticesDataPresent(Qi.b.UV2Kind)&&1===c.coordinatesIndex&&(a.push(Qi.b.UV2Kind),o.push(\"#define UV2\"))}}var l=new po.a;if(s.useBones&&s.computeBonesUsingShaders&&s.skeleton){a.push(Qi.b.MatricesIndicesKind),a.push(Qi.b.MatricesWeightsKind),s.numBoneInfluencers>4&&(a.push(Qi.b.MatricesIndicesExtraKind),a.push(Qi.b.MatricesWeightsExtraKind));var u=s.skeleton;o.push(\"#define NUM_BONE_INFLUENCERS \"+s.numBoneInfluencers),s.numBoneInfluencers>0&&l.addCPUSkinningFallback(0,s),u.isUsingTextureForMatrices?o.push(\"#define BONETEXTURE\"):o.push(\"#define BonesPerMesh \"+(u.bones.length+1))}else o.push(\"#define NUM_BONE_INFLUENCERS 0\");var h=s.morphTargetManager,d=0;h&&h.numInfluencers>0&&(o.push(\"#define MORPHTARGETS\"),d=h.numInfluencers,o.push(\"#define NUM_MORPH_INFLUENCERS \"+d),ro.a.PrepareAttributesForMorphTargetsInfluencers(a,s,d));var f=this._scene;if(f.clipPlane&&o.push(\"#define CLIPPLANE\"),f.clipPlane2&&o.push(\"#define CLIPPLANE2\"),f.clipPlane3&&o.push(\"#define CLIPPLANE3\"),f.clipPlane4&&o.push(\"#define CLIPPLANE4\"),f.clipPlane5&&o.push(\"#define CLIPPLANE5\"),f.clipPlane6&&o.push(\"#define CLIPPLANE6\"),t&&(o.push(\"#define INSTANCES\"),ro.a.PushAttributesForInstances(a),e.getRenderingMesh().hasThinInstances&&o.push(\"#define THIN_INSTANCES\")),this.customShaderOptions&&this.customShaderOptions.defines)for(var p=0,_=this.customShaderOptions.defines;p<_.length;p++){var m=_[p];-1===o.indexOf(m)&&o.push(m)}var g=o.join(\"\\n\");if(this._cachedDefines!==g){this._cachedDefines=g;var v=\"shadowMap\",b=[\"world\",\"mBones\",\"viewProjection\",\"diffuseMatrix\",\"lightDataSM\",\"depthValuesSM\",\"biasAndScaleSM\",\"morphTargetInfluences\",\"boneTextureWidth\",\"vClipPlane\",\"vClipPlane2\",\"vClipPlane3\",\"vClipPlane4\",\"vClipPlane5\",\"vClipPlane6\",\"softTransparentShadowSM\"],y=[\"diffuseSampler\",\"boneSampler\"];if(this.customShaderOptions){if(v=this.customShaderOptions.shaderName,this.customShaderOptions.attributes)for(var T=0,E=this.customShaderOptions.attributes;T\\n#endif\\nvoid main(void)\\n{\\n#ifdef ALPHATEST\\nif (texture2D(diffuseSampler,vUV).a<0.4)\\ndiscard;\\n#endif\\n#ifdef NONLINEARDEPTH\\n#ifdef PACKED\\ngl_FragColor=pack(gl_FragCoord.z);\\n#else\\ngl_FragColor=vec4(gl_FragCoord.z,0.0,0.0,0.0);\\n#endif\\n#else\\n#ifdef PACKED\\ngl_FragColor=pack(vDepthMetric);\\n#else\\ngl_FragColor=vec4(vDepthMetric,0.0,0.0,1.0);\\n#endif\\n#endif\\n}\";ai.a.ShadersStore.depthPixelShader=Us;var Vs=\"\\nattribute vec3 position;\\n#include\\n#include\\n#include[0..maxSimultaneousMorphTargets]\\n\\n#include\\nuniform mat4 viewProjection;\\nuniform vec2 depthValues;\\n#if defined(ALPHATEST) || defined(NEED_UV)\\nvarying vec2 vUV;\\nuniform mat4 diffuseMatrix;\\n#ifdef UV1\\nattribute vec2 uv;\\n#endif\\n#ifdef UV2\\nattribute vec2 uv2;\\n#endif\\n#endif\\nvarying float vDepthMetric;\\nvoid main(void)\\n{\\nvec3 positionUpdated=position;\\n#ifdef UV1\\nvec2 uvUpdated=uv;\\n#endif\\n#include[0..maxSimultaneousMorphTargets]\\n#include\\n#include\\ngl_Position=viewProjection*finalWorld*vec4(positionUpdated,1.0);\\nvDepthMetric=((gl_Position.z+depthValues.x)/(depthValues.y));\\n#if defined(ALPHATEST) || defined(BASIC_RENDER)\\n#ifdef UV1\\nvUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\\n#endif\\n#ifdef UV2\\nvUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\\n#endif\\n#endif\\n}\\n\";ai.a.ShadersStore.depthVertexShader=Vs;var ks=function(){function e(t,i,n,r){var o=this;void 0===i&&(i=g.a.TEXTURETYPE_FLOAT),void 0===n&&(n=null),void 0===r&&(r=!1),this.enabled=!0,this.useOnlyInActiveCamera=!1,this._scene=t,this._storeNonLinearDepth=r,this.isPacked=i===g.a.TEXTURETYPE_UNSIGNED_BYTE,this.isPacked?this._clearColor=new s.b(1,1,1,1):this._clearColor=new s.b(1,0,0,1),e._SceneComponentInitialization(this._scene),this._camera=n;var a=t.getEngine(),c=this.isPacked||1===a.webGLVersion?g.a.TEXTUREFORMAT_RGBA:g.a.TEXTUREFORMAT_R;this._depthMap=new Ni(\"depthMap\",{width:a.getRenderWidth(),height:a.getRenderHeight()},this._scene,!1,!0,i,!1,void 0,void 0,void 0,void 0,c),this._depthMap.wrapU=Ke.a.CLAMP_ADDRESSMODE,this._depthMap.wrapV=Ke.a.CLAMP_ADDRESSMODE,this._depthMap.refreshRate=1,this._depthMap.renderParticles=!1,this._depthMap.renderList=null,this._depthMap.activeCamera=this._camera,this._depthMap.ignoreCameraViewport=!0,this._depthMap.useCameraPostProcesses=!1,this._depthMap.onClearObservable.add((function(e){e.clear(o._clearColor,!0,!0,!0)}));var l=function(e){var t=e.getRenderingMesh(),i=e.getEffectiveMesh(),n=o._scene,r=n.getEngine(),a=e.getMaterial();if(i._internalAbstractMeshDataInfo._isActiveIntermediate=!1,a&&0!==e.verticesCount&&e._renderId!==n.getRenderId()){r.setState(a.backFaceCulling,0,!1,n.useRightHandedSystem);var s=t._getInstancesRenderList(e._id,!!e.getReplacementMesh());if(!s.mustReturn){var c=r.getCaps().instancedArrays&&(null!==s.visibleInstances[e._id]&&void 0!==s.visibleInstances[e._id]||t.hasThinInstances),l=o._camera||n.activeCamera;if(o.isReady(e,c)&&l){if(e._renderId=n.getRenderId(),r.enableEffect(o._effect),t._bind(e,o._effect,a.fillMode),o._effect.setMatrix(\"viewProjection\",n.getTransformMatrix()),o._effect.setFloat2(\"depthValues\",l.minZ,l.minZ+l.maxZ),a&&a.needAlphaTesting()){var u=a.getAlphaTestTexture();u&&(o._effect.setTexture(\"diffuseSampler\",u),o._effect.setMatrix(\"diffuseMatrix\",u.getTextureMatrix()))}t.useBones&&t.computeBonesUsingShaders&&t.skeleton&&o._effect.setMatrices(\"mBones\",t.skeleton.getTransformMatrices(t)),ro.a.BindMorphTargetParameters(t,o._effect),t._processRendering(i,e,o._effect,a.fillMode,s,c,(function(e,t){return o._effect.setMatrix(\"world\",t)}))}}}};this._depthMap.customRenderFunction=function(e,t,i,n){var r;if(n.length){for(a.setColorWrite(!1),r=0;r4&&(r.push(Qi.b.MatricesIndicesExtraKind),r.push(Qi.b.MatricesWeightsExtraKind)),n.push(\"#define NUM_BONE_INFLUENCERS \"+o.numBoneInfluencers),n.push(\"#define BonesPerMesh \"+(o.skeleton?o.skeleton.bones.length+1:0))):n.push(\"#define NUM_BONE_INFLUENCERS 0\");var a=o.morphTargetManager,s=0;a&&a.numInfluencers>0&&(s=a.numInfluencers,n.push(\"#define MORPHTARGETS\"),n.push(\"#define NUM_MORPH_INFLUENCERS \"+s),ro.a.PrepareAttributesForMorphTargetsInfluencers(r,o,s)),t&&(n.push(\"#define INSTANCES\"),ro.a.PushAttributesForInstances(r),e.getRenderingMesh().hasThinInstances&&n.push(\"#define THIN_INSTANCES\")),this._storeNonLinearDepth&&n.push(\"#define NONLINEARDEPTH\"),this.isPacked&&n.push(\"#define PACKED\");var c=n.join(\"\\n\");return this._cachedDefines!==c&&(this._cachedDefines=c,this._effect=this._scene.getEngine().createEffect(\"depth\",r,[\"world\",\"mBones\",\"viewProjection\",\"diffuseMatrix\",\"depthValues\",\"morphTargetInfluences\"],[\"diffuseSampler\"],c,void 0,void 0,void 0,{maxSimultaneousMorphTargets:s})),this._effect.isReady()},e.prototype.getDepthMap=function(){return this._depthMap},e.prototype.dispose=function(){this._depthMap.dispose()},e._SceneComponentInitialization=function(e){throw Re.a.WarnImport(\"DepthRendererSceneComponent\")},e}(),zs=\"attribute vec2 vUV;\\nuniform sampler2D textureSampler;\\n#if defined(INITIAL)\\nuniform sampler2D sourceTexture;\\nuniform vec2 texSize;\\nvoid main(void)\\n{\\nivec2 coord=ivec2(vUV*(texSize-1.0));\\nfloat f1=texelFetch(sourceTexture,coord,0).r;\\nfloat f2=texelFetch(sourceTexture,coord+ivec2(1,0),0).r;\\nfloat f3=texelFetch(sourceTexture,coord+ivec2(1,1),0).r;\\nfloat f4=texelFetch(sourceTexture,coord+ivec2(0,1),0).r;\\nfloat minz=min(min(min(f1,f2),f3),f4);\\n#ifdef DEPTH_REDUX\\nfloat maxz=max(max(max(sign(1.0-f1)*f1,sign(1.0-f2)*f2),sign(1.0-f3)*f3),sign(1.0-f4)*f4);\\n#else\\nfloat maxz=max(max(max(f1,f2),f3),f4);\\n#endif\\nglFragColor=vec4(minz,maxz,0.,0.);\\n}\\n#elif defined(MAIN)\\nuniform vec2 texSize;\\nvoid main(void)\\n{\\nivec2 coord=ivec2(vUV*(texSize-1.0));\\nvec2 f1=texelFetch(textureSampler,coord,0).rg;\\nvec2 f2=texelFetch(textureSampler,coord+ivec2(1,0),0).rg;\\nvec2 f3=texelFetch(textureSampler,coord+ivec2(1,1),0).rg;\\nvec2 f4=texelFetch(textureSampler,coord+ivec2(0,1),0).rg;\\nfloat minz=min(min(min(f1.x,f2.x),f3.x),f4.x);\\nfloat maxz=max(max(max(f1.y,f2.y),f3.y),f4.y);\\nglFragColor=vec4(minz,maxz,0.,0.);\\n}\\n#elif defined(ONEBEFORELAST)\\nuniform ivec2 texSize;\\nvoid main(void)\\n{\\nivec2 coord=ivec2(vUV*vec2(texSize-1));\\nvec2 f1=texelFetch(textureSampler,coord % texSize,0).rg;\\nvec2 f2=texelFetch(textureSampler,(coord+ivec2(1,0)) % texSize,0).rg;\\nvec2 f3=texelFetch(textureSampler,(coord+ivec2(1,1)) % texSize,0).rg;\\nvec2 f4=texelFetch(textureSampler,(coord+ivec2(0,1)) % texSize,0).rg;\\nfloat minz=min(f1.x,f2.x);\\nfloat maxz=max(f1.y,f2.y);\\nglFragColor=vec4(minz,maxz,0.,0.);\\n}\\n#elif defined(LAST)\\nvoid main(void)\\n{\\ndiscard;\\nglFragColor=vec4(0.);\\n}\\n#endif\\n\";ai.a.ShadersStore.minmaxReduxPixelShader=zs;var Gs=function(){function e(e){this.onAfterReductionPerformed=new o.c,this._forceFullscreenViewport=!0,this._activated=!1,this._camera=e,this._postProcessManager=new Ii.a(e.getScene())}return Object.defineProperty(e.prototype,\"sourceTexture\",{get:function(){return this._sourceTexture},enumerable:!1,configurable:!0}),e.prototype.setSourceTexture=function(e,t,i,n){var r=this;if(void 0===i&&(i=g.a.TEXTURETYPE_HALF_FLOAT),void 0===n&&(n=!0),e!==this._sourceTexture){this.dispose(!1),this._sourceTexture=e,this._reductionSteps=[],this._forceFullscreenViewport=n;var o=this._camera.getScene(),a=new li(\"Initial reduction phase\",\"minmaxRedux\",[\"texSize\"],[\"sourceTexture\"],1,null,g.a.TEXTURE_NEAREST_NEAREST,o.getEngine(),!1,\"#define INITIAL\"+(t?\"\\n#define DEPTH_REDUX\":\"\"),i,void 0,void 0,void 0,g.a.TEXTUREFORMAT_RG);a.autoClear=!1,a.forceFullscreenViewport=n;var s=this._sourceTexture.getRenderWidth(),c=this._sourceTexture.getRenderHeight();a.onApply=function(e,t){return function(i){i.setTexture(\"sourceTexture\",r._sourceTexture),i.setFloatArray2(\"texSize\",new Float32Array([e,t]))}}(s,c),this._reductionSteps.push(a);for(var l=1;s>1||c>1;){s=Math.max(Math.round(s/2),1),c=Math.max(Math.round(c/2),1);var u=new li(\"Reduction phase \"+l,\"minmaxRedux\",[\"texSize\"],null,{width:s,height:c},null,g.a.TEXTURE_NEAREST_NEAREST,o.getEngine(),!1,\"#define \"+(1==s&&1==c?\"LAST\":1==s||1==c?\"ONEBEFORELAST\":\"MAIN\"),i,void 0,void 0,void 0,g.a.TEXTUREFORMAT_RG);if(u.autoClear=!1,u.forceFullscreenViewport=n,u.onApply=function(e,t){return function(i){1==e||1==t?i.setIntArray2(\"texSize\",new Int32Array([e,t])):i.setFloatArray2(\"texSize\",new Float32Array([e,t]))}}(s,c),this._reductionSteps.push(u),l++,1==s&&1==c){u.onAfterRenderObservable.add(function(e,t,i){var n=new Float32Array(4*e*t),a={min:0,max:0};return function(){o.getEngine()._readTexturePixels(i.inputTexture,e,t,-1,0,n),a.min=n[0],a.max=n[1],r.onAfterReductionPerformed.notifyObservers(a)}}(s,c,u))}}}},Object.defineProperty(e.prototype,\"refreshRate\",{get:function(){return this._sourceTexture?this._sourceTexture.refreshRate:-1},set:function(e){this._sourceTexture&&(this._sourceTexture.refreshRate=e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"activated\",{get:function(){return this._activated},enumerable:!1,configurable:!0}),e.prototype.activate=function(){var e=this;!this._onAfterUnbindObserver&&this._sourceTexture&&(this._onAfterUnbindObserver=this._sourceTexture.onAfterUnbindObservable.add((function(){e._reductionSteps[0].activate(e._camera),e._postProcessManager.directRender(e._reductionSteps,e._reductionSteps[0].inputTexture,e._forceFullscreenViewport),e._camera.getScene().getEngine().unBindFramebuffer(e._reductionSteps[0].inputTexture,!1)})),this._activated=!0)},e.prototype.deactivate=function(){this._onAfterUnbindObserver&&this._sourceTexture&&(this._sourceTexture.onAfterUnbindObservable.remove(this._onAfterUnbindObserver),this._onAfterUnbindObserver=null,this._activated=!1)},e.prototype.dispose=function(e){if(void 0===e&&(e=!0),e&&this.onAfterReductionPerformed.clear(),this.deactivate(),this._reductionSteps){for(var t=0;tt&&(e=0,t=1),e<0&&(e=0),t>1&&(t=1),this._minDistance=e,this._maxDistance=t,this._breaksAreDirty=!0)},Object.defineProperty(t.prototype,\"minDistance\",{get:function(){return this._minDistance},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"maxDistance\",{get:function(){return this._maxDistance},enumerable:!1,configurable:!0}),t.prototype.getClassName=function(){return t.CLASSNAME},t.prototype.getCascadeMinExtents=function(e){return e>=0&&e=0&&ethis._scene.activeCamera.maxZ||(this._shadowMaxZ=e,this._light._markMeshesAsLightDirty(),this._breaksAreDirty=!0):this._shadowMaxZ=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"debug\",{get:function(){return this._debug},set:function(e){this._debug=e,this._light._markMeshesAsLightDirty()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"depthClamp\",{get:function(){return this._depthClamp},set:function(e){this._depthClamp=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"cascadeBlendPercentage\",{get:function(){return this._cascadeBlendPercentage},set:function(e){this._cascadeBlendPercentage=e,this._light._markMeshesAsLightDirty()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"lambda\",{get:function(){return this._lambda},set:function(e){var t=Math.min(Math.max(e,0),1);this._lambda!=t&&(this._lambda=t,this._breaksAreDirty=!0)},enumerable:!1,configurable:!0}),t.prototype.getCascadeViewMatrix=function(e){return e>=0&&e=0&&e=0&&e=n&&(i=0,n=1),i==t._minDistance&&n==t._maxDistance||t.setMinMaxDistance(i,n)})),this._depthReducer.setDepthRenderer(this._depthRenderer)),this._depthReducer.activate()}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"autoCalcDepthBoundsRefreshRate\",{get:function(){var e,t,i;return null!==(i=null===(t=null===(e=this._depthReducer)||void 0===e?void 0:e.depthRenderer)||void 0===t?void 0:t.getDepthMap().refreshRate)&&void 0!==i?i:-1},set:function(e){var t;(null===(t=this._depthReducer)||void 0===t?void 0:t.depthRenderer)&&(this._depthReducer.depthRenderer.getDepthMap().refreshRate=e)},enumerable:!1,configurable:!0}),t.prototype.splitFrustum=function(){this._breaksAreDirty=!0},t.prototype._splitFrustum=function(){var e=this._scene.activeCamera;if(e){for(var t=e.minZ,i=e.maxZ,n=i-t,r=this._minDistance,o=t+r*n,a=t+(this._shadowMaxZ=t?Math.min((this._shadowMaxZ-t)/(i-t),this._maxDistance):this._maxDistance)*n,s=a-o,c=a/o,l=0;lMath.PI;)r-=2*Math.PI;var a=r/Math.PI,s=o/Math.PI;a=.5*a+.5;var c=Math.round(a*i);c<0?c=0:c>=i&&(c=i-1);var l=Math.round(s*n);l<0?l=0:l>=n&&(l=n-1);var u=n-l-1;return{r:t[u*i*3+3*c+0],g:t[u*i*3+3*c+1],b:t[u*i*3+3*c+2]}},e.FACE_LEFT=[new a.e(-1,-1,-1),new a.e(1,-1,-1),new a.e(-1,1,-1),new a.e(1,1,-1)],e.FACE_RIGHT=[new a.e(1,-1,1),new a.e(-1,-1,1),new a.e(1,1,1),new a.e(-1,1,1)],e.FACE_FRONT=[new a.e(1,-1,-1),new a.e(1,-1,1),new a.e(1,1,-1),new a.e(1,1,1)],e.FACE_BACK=[new a.e(-1,-1,1),new a.e(-1,-1,-1),new a.e(-1,1,1),new a.e(-1,1,-1)],e.FACE_DOWN=[new a.e(1,1,-1),new a.e(1,1,1),new a.e(-1,1,-1),new a.e(-1,1,1)],e.FACE_UP=[new a.e(-1,-1,-1),new a.e(-1,-1,1),new a.e(1,-1,-1),new a.e(1,-1,1)],e}(),nc=function(){function e(){}return e.Ldexp=function(e,t){return t>1023?e*Math.pow(2,1023)*Math.pow(2,t-1023):t<-1074?e*Math.pow(2,-1074)*Math.pow(2,t+1074):e*Math.pow(2,t)},e.Rgbe2float=function(e,t,i,n,r,o){r>0?(r=this.Ldexp(1,r-136),e[o+0]=t*r,e[o+1]=i*r,e[o+2]=n*r):(e[o+0]=0,e[o+1]=0,e[o+2]=0)},e.readStringLine=function(e,t){for(var i=\"\",n=\"\",r=t;r32767)throw\"HDR Bad header format, unsupported size\";return{height:t,width:i,dataPosition:a+=n.length+1}},e.GetCubeMapTextureData=function(e,t){var i=new Uint8Array(e),n=this.RGBE_ReadHeader(i),r=this.RGBE_ReadPixels(i,n);return ic.ConvertPanoramaToCubemap(r,n.width,n.height,t)},e.RGBE_ReadPixels=function(e,t){return this.RGBE_ReadPixels_RLE(e,t)},e.RGBE_ReadPixels_RLE=function(e,t){for(var i,n,r,o,a,s=t.height,c=t.width,l=t.dataPosition,u=0,h=0,d=0,f=new ArrayBuffer(4*c),p=new Uint8Array(f),_=new ArrayBuffer(t.width*t.height*4*3),m=new Float32Array(_);s>0;){if(i=e[l++],n=e[l++],r=e[l++],o=e[l++],2!=i||2!=n||128&r||t.width<8||t.width>32767)return this.RGBE_ReadPixels_NOT_RLE(e,t);if((r<<8|o)!=c)throw\"HDR Bad header format, wrong scan line width\";for(u=0,d=0;d<4;d++)for(h=(d+1)*c;u128){if(0==(a=i-128)||a>h-u)throw\"HDR Bad Format, bad scanline data (run)\";for(;a-- >0;)p[u++]=n}else{if(0==(a=i)||a>h-u)throw\"HDR Bad Format, bad scanline data (non-run)\";if(p[u++]=n,--a>0)for(var g=0;g0;){for(a=0;a\\n#include\\n#include\\n#include\\nuniform float alphaG;\\nuniform samplerCube inputTexture;\\nuniform vec2 vFilteringInfo;\\nuniform float hdrScale;\\nvarying vec3 direction;\\nvoid main() {\\nvec3 color=radiance(alphaG,inputTexture,direction,vFilteringInfo);\\ngl_FragColor=vec4(color*hdrScale,1.0);\\n}\";ai.a.ShadersStore.hdrFilteringPixelShader=sc;var cc=function(){function e(e,t){void 0===t&&(t={}),this._lodGenerationOffset=0,this._lodGenerationScale=.8,this.quality=g.a.TEXTURE_FILTERING_QUALITY_OFFLINE,this.hdrScale=1,this._engine=e,this.hdrScale=t.hdrScale||this.hdrScale,this.quality=t.hdrScale||this.quality}return e.prototype._createRenderTarget=function(e){var t=g.a.TEXTURETYPE_UNSIGNED_BYTE;this._engine.getCaps().textureHalfFloatRender?t=g.a.TEXTURETYPE_HALF_FLOAT:this._engine.getCaps().textureFloatRender&&(t=g.a.TEXTURETYPE_FLOAT);var i=this._engine.createRenderTargetCubeTexture(e,{format:g.a.TEXTUREFORMAT_RGBA,type:t,generateMipMaps:!1,generateDepthBuffer:!1,generateStencilBuffer:!1,samplingMode:g.a.TEXTURE_NEAREST_SAMPLINGMODE});return this._engine.updateTextureWrappingMode(i,g.a.TEXTURE_CLAMP_ADDRESSMODE,g.a.TEXTURE_CLAMP_ADDRESSMODE,g.a.TEXTURE_CLAMP_ADDRESSMODE),this._engine.updateTextureSamplingMode(g.a.TEXTURE_TRILINEAR_SAMPLINGMODE,i,!0),i},e.prototype._prefilterInternal=function(e){var t=e.getSize().width,i=Math.round(L.a.Log2(t))+1,n=this._effectWrapper.effect,r=this._createRenderTarget(t);this._effectRenderer.setViewport();var o=e.getInternalTexture();o&&this._engine.updateTextureSamplingMode(g.a.TEXTURE_TRILINEAR_SAMPLINGMODE,o,!0),this._effectRenderer.applyEffectWrapper(this._effectWrapper);var s=[[new a.e(0,0,-1),new a.e(0,-1,0),new a.e(1,0,0)],[new a.e(0,0,1),new a.e(0,-1,0),new a.e(-1,0,0)],[new a.e(1,0,0),new a.e(0,0,1),new a.e(0,1,0)],[new a.e(1,0,0),new a.e(0,0,-1),new a.e(0,-1,0)],[new a.e(1,0,0),new a.e(0,-1,0),new a.e(0,0,1)],[new a.e(-1,0,0),new a.e(0,-1,0),new a.e(0,0,-1)]];n.setFloat(\"hdrScale\",this.hdrScale),n.setFloat2(\"vFilteringInfo\",e.getSize().width,i),n.setTexture(\"inputTexture\",e);for(var c=0;c<6;c++){n.setVector3(\"up\",s[c][0]),n.setVector3(\"right\",s[c][1]),n.setVector3(\"front\",s[c][2]);for(var l=0;l=2&&this._prefilterOnLoad){var n=this._onLoad,r=new cc(i);this._onLoad=function(){r.prefilter(e,n)}}this._texture=i.createRawCubeTextureFromUrl(this.url,this.getScene(),this._size,g.a.TEXTUREFORMAT_RGB,i.getCaps().textureFloat?g.a.TEXTURETYPE_FLOAT:g.a.TEXTURETYPE_UNSIGNED_INT,this._noMipmap,(function(n){e.lodGenerationOffset=0,e.lodGenerationScale=.8;var r=nc.GetCubeMapTextureData(n,e._size);if(e._generateHarmonics){var o=$n.ConvertCubeMapToSphericalPolynomial(r);e.sphericalPolynomial=o}for(var a=[],s=null,c=0;c<6;c++){if(!i.getCaps().textureFloat){var l=new ArrayBuffer(e._size*e._size*3);s=new Uint8Array(l)}var u=r[t._facesMapping[c]];if(e.gammaSpace||s)for(var h=0;h255){var m=255/_;d*=m,f*=m,p*=m}s[3*h+0]=d,s[3*h+1]=f,s[3*h+2]=p}s?a.push(s):a.push(u)}return a}),null,this._onLoad,this._onError)},t.prototype.clone=function(){var e=new t(this.url,this.getScene()||this._getEngine(),this._size,this._noMipmap,this._generateHarmonics,this.gammaSpace);return e.level=this.level,e.wrapU=this.wrapU,e.wrapV=this.wrapV,e.coordinatesIndex=this.coordinatesIndex,e.coordinatesMode=this.coordinatesMode,e},t.prototype.delayLoad=function(){this.delayLoadState===g.a.DELAYLOADSTATE_NOTLOADED&&(this.delayLoadState=g.a.DELAYLOADSTATE_LOADED,this._texture=this._getFromCache(this.url,this._noMipmap),this._texture||this.loadTexture())},t.prototype.getReflectionTextureMatrix=function(){return this._textureMatrix},t.prototype.setReflectionTextureMatrix=function(e){var t,i=this;this._textureMatrix=e,e.updateFlag!==this._textureMatrix.updateFlag&&e.isIdentity()!==this._textureMatrix.isIdentity()&&(null===(t=this.getScene())||void 0===t||t.markAllMaterialsAsDirty(g.a.MATERIAL_TextureDirtyFlag,(function(e){return-1!==e.getActiveTextures().indexOf(i)})))},t.Parse=function(e,i,n){var r=null;return e.name&&!e.isRenderTarget&&((r=new t(n+e.name,i,e.size,e.noMipmap,e.generateHarmonics,e.useInGammaSpace)).name=e.name,r.hasAlpha=e.hasAlpha,r.level=e.level,r.coordinatesMode=e.coordinatesMode,r.isBlocking=e.isBlocking),r&&(e.boundingBoxPosition&&(r.boundingBoxPosition=a.e.FromArray(e.boundingBoxPosition)),e.boundingBoxSize&&(r.boundingBoxSize=a.e.FromArray(e.boundingBoxSize)),e.rotationY&&(r.rotationY=e.rotationY)),r},t.prototype.serialize=function(){if(!this.name)return null;var e={};return e.name=this.name,e.hasAlpha=this.hasAlpha,e.isCube=!0,e.level=this.level,e.size=this._size,e.coordinatesMode=this.coordinatesMode,e.useInGammaSpace=this.gammaSpace,e.generateHarmonics=this._generateHarmonics,e.customType=\"BABYLON.HDRCubeTexture\",e.noMipmap=this._noMipmap,e.isBlocking=this._isBlocking,e.rotationY=this._rotationY,e},t._facesMapping=[\"right\",\"left\",\"up\",\"down\",\"front\",\"back\"],t}(Zn.a);c.a.RegisteredTypes[\"BABYLON.HDRCubeTexture\"]=lc;var uc=function(){function e(e,t,i){void 0===t&&(t=0),void 0===i&&(i=null),this.name=e,this.animations=new Array,this._positions=null,this._normals=null,this._tangents=null,this._uvs=null,this._uniqueId=0,this.onInfluenceChanged=new o.c,this._onDataLayoutChanged=new o.c,this._animationPropertiesOverride=null,this._scene=i||x.a.LastCreatedScene,this.influence=t,this._scene&&(this._uniqueId=this._scene.getUniqueId())}return Object.defineProperty(e.prototype,\"influence\",{get:function(){return this._influence},set:function(e){if(this._influence!==e){var t=this._influence;this._influence=e,this.onInfluenceChanged.hasObservers()&&this.onInfluenceChanged.notifyObservers(0===t||0===e)}},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"animationPropertiesOverride\",{get:function(){return!this._animationPropertiesOverride&&this._scene?this._scene.animationPropertiesOverride:this._animationPropertiesOverride},set:function(e){this._animationPropertiesOverride=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"uniqueId\",{get:function(){return this._uniqueId},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"hasPositions\",{get:function(){return!!this._positions},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"hasNormals\",{get:function(){return!!this._normals},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"hasTangents\",{get:function(){return!!this._tangents},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"hasUVs\",{get:function(){return!!this._uvs},enumerable:!1,configurable:!0}),e.prototype.setPositions=function(e){var t=this.hasPositions;this._positions=e,t!==this.hasPositions&&this._onDataLayoutChanged.notifyObservers(void 0)},e.prototype.getPositions=function(){return this._positions},e.prototype.setNormals=function(e){var t=this.hasNormals;this._normals=e,t!==this.hasNormals&&this._onDataLayoutChanged.notifyObservers(void 0)},e.prototype.getNormals=function(){return this._normals},e.prototype.setTangents=function(e){var t=this.hasTangents;this._tangents=e,t!==this.hasTangents&&this._onDataLayoutChanged.notifyObservers(void 0)},e.prototype.getTangents=function(){return this._tangents},e.prototype.setUVs=function(e){var t=this.hasUVs;this._uvs=e,t!==this.hasUVs&&this._onDataLayoutChanged.notifyObservers(void 0)},e.prototype.getUVs=function(){return this._uvs},e.prototype.clone=function(){var t=this,i=w.a.Clone((function(){return new e(t.name,t.influence,t._scene)}),this);return i._positions=this._positions,i._normals=this._normals,i._tangents=this._tangents,i._uvs=this._uvs,i},e.prototype.serialize=function(){var e={};return e.name=this.name,e.influence=this.influence,e.positions=Array.prototype.slice.call(this.getPositions()),null!=this.id&&(e.id=this.id),this.hasNormals&&(e.normals=Array.prototype.slice.call(this.getNormals())),this.hasTangents&&(e.tangents=Array.prototype.slice.call(this.getTangents())),this.hasUVs&&(e.uvs=Array.prototype.slice.call(this.getUVs())),w.a.AppendSerializedAnimations(this,e),e},e.prototype.getClassName=function(){return\"MorphTarget\"},e.Parse=function(t){var i=new e(t.name,t.influence);if(i.setPositions(t.positions),null!=t.id&&(i.id=t.id),t.normals&&i.setNormals(t.normals),t.tangents&&i.setTangents(t.tangents),t.uvs&&i.setUVs(t.uvs),t.animations)for(var n=0;n=0&&(this._targets.splice(t,1),e.onInfluenceChanged.remove(this._targetInfluenceChangedObservers.splice(t,1)[0]),e._onDataLayoutChanged.remove(this._targetDataLayoutChangedObservers.splice(t,1)[0]),this._syncActiveTargets(!0))},e.prototype.clone=function(){for(var t=new e(this._scene),i=0,n=this._targets;i-1&&(this._impostors.splice(t,1).length&&this.getPhysicsPlugin().removePhysicsBody(e))},e.prototype.addJoint=function(e,t,i){var n={mainImpostor:e,connectedImpostor:t,joint:i};i.physicsPlugin=this._physicsPlugin,this._joints.push(n),this._physicsPlugin.generateJoint(n)},e.prototype.removeJoint=function(e,t,i){var n=this._joints.filter((function(n){return n.connectedImpostor===t&&n.joint===i&&n.mainImpostor===e}));n.length&&this._physicsPlugin.removeJoint(n[0])},e.prototype._step=function(e){var t=this;this._impostors.forEach((function(e){e.isBodyInitRequired()&&t._physicsPlugin.generatePhysicsBody(e)})),e>.1?e=.1:e<=0&&(e=1/60),this._physicsPlugin.executeStep(e,this._impostors)},e.prototype.getPhysicsPlugin=function(){return this._physicsPlugin},e.prototype.getImpostors=function(){return this._impostors},e.prototype.getImpostorForPhysicsObject=function(e){for(var t=0;t0&&(this._physicsBodysToRemoveAfterStep.forEach((function(t){e.world.remove(t)})),this._physicsBodysToRemoveAfterStep=[])},e.prototype.applyImpulse=function(e,t,i){var n=new this.BJSCANNON.Vec3(i.x,i.y,i.z),r=new this.BJSCANNON.Vec3(t.x,t.y,t.z);e.physicsBody.applyImpulse(r,n)},e.prototype.applyForce=function(e,t,i){var n=new this.BJSCANNON.Vec3(i.x,i.y,i.z),r=new this.BJSCANNON.Vec3(t.x,t.y,t.z);e.physicsBody.applyForce(r,n)},e.prototype.generatePhysicsBody=function(e){if(this._removeMarkedPhysicsBodiesFromWorld(),e.parent)e.physicsBody&&(this.removePhysicsBody(e),e.forceUpdate());else{if(e.isBodyInitRequired()){var t=this._createShape(e),i=e.physicsBody;i&&this.removePhysicsBody(e);var n=this._addMaterial(\"mat-\"+e.uniqueId,e.getParam(\"friction\"),e.getParam(\"restitution\")),r={mass:e.getParam(\"mass\"),material:n},o=e.getParam(\"nativeOptions\");for(var a in o)o.hasOwnProperty(a)&&(r[a]=o[a]);e.physicsBody=new this.BJSCANNON.Body(r),e.physicsBody.addEventListener(\"collide\",e.onCollide),this.world.addEventListener(\"preStep\",e.beforeStep),this.world.addEventListener(\"postStep\",e.afterStep),e.physicsBody.addShape(t),this.world.add(e.physicsBody),i&&[\"force\",\"torque\",\"velocity\",\"angularVelocity\"].forEach((function(t){var n=i[t];e.physicsBody[t].set(n.x,n.y,n.z)})),this._processChildMeshes(e)}this._updatePhysicsBodyTransformation(e)}},e.prototype._processChildMeshes=function(e){var t=this,i=e.object.getChildMeshes?e.object.getChildMeshes(!0):[],n=e.object.rotationQuaternion;if(i.length){var r=function(i){if(n&&i.rotationQuaternion){var o=i.getPhysicsImpostor();if(o)if(o.parent!==e){var a=i.getAbsolutePosition().subtract(i.parent.getAbsolutePosition()),s=i.rotationQuaternion;o.physicsBody&&(t.removePhysicsBody(o),o.physicsBody=null),o.parent=e,o.resetUpdateFlags(),e.physicsBody.addShape(t._createShape(o),new t.BJSCANNON.Vec3(a.x,a.y,a.z),new t.BJSCANNON.Quaternion(s.x,s.y,s.z,s.w)),e.physicsBody.mass+=o.getParam(\"mass\")}n.multiplyInPlace(i.rotationQuaternion),i.getChildMeshes(!0).filter((function(e){return!!e.physicsImpostor})).forEach(r)}};i.filter((function(e){return!!e.physicsImpostor})).forEach(r)}},e.prototype.removePhysicsBody=function(e){e.physicsBody.removeEventListener(\"collide\",e.onCollide),this.world.removeEventListener(\"preStep\",e.beforeStep),this.world.removeEventListener(\"postStep\",e.afterStep),-1===this._physicsBodysToRemoveAfterStep.indexOf(e.physicsBody)&&this._physicsBodysToRemoveAfterStep.push(e.physicsBody)},e.prototype.generateJoint=function(e){var t=e.mainImpostor.physicsBody,i=e.connectedImpostor.physicsBody;if(t&&i){var n,r=e.joint.jointData,o={pivotA:r.mainPivot?(new this.BJSCANNON.Vec3).set(r.mainPivot.x,r.mainPivot.y,r.mainPivot.z):null,pivotB:r.connectedPivot?(new this.BJSCANNON.Vec3).set(r.connectedPivot.x,r.connectedPivot.y,r.connectedPivot.z):null,axisA:r.mainAxis?(new this.BJSCANNON.Vec3).set(r.mainAxis.x,r.mainAxis.y,r.mainAxis.z):null,axisB:r.connectedAxis?(new this.BJSCANNON.Vec3).set(r.connectedAxis.x,r.connectedAxis.y,r.connectedAxis.z):null,maxForce:r.nativeParams.maxForce,collideConnected:!!r.collision};switch(e.joint.type){case fc.e.HingeJoint:case fc.e.Hinge2Joint:n=new this.BJSCANNON.HingeConstraint(t,i,o);break;case fc.e.DistanceJoint:n=new this.BJSCANNON.DistanceConstraint(t,i,r.maxDistance||2);break;case fc.e.SpringJoint:var a=r;n=new this.BJSCANNON.Spring(t,i,{restLength:a.length,stiffness:a.stiffness,damping:a.damping,localAnchorA:o.pivotA,localAnchorB:o.pivotB});break;case fc.e.LockJoint:n=new this.BJSCANNON.LockConstraint(t,i,o);break;case fc.e.PointToPointJoint:case fc.e.BallAndSocketJoint:default:n=new this.BJSCANNON.PointToPointConstraint(t,o.pivotA,i,o.pivotB,o.maxForce)}n.collideConnected=!!r.collision,e.joint.physicsJoint=n,e.joint.type!==fc.e.SpringJoint?this.world.addConstraint(n):(e.joint.jointData.forceApplicationCallback=e.joint.jointData.forceApplicationCallback||function(){n.applyForce()},e.mainImpostor.registerAfterPhysicsStep(e.joint.jointData.forceApplicationCallback))}},e.prototype.removeJoint=function(e){e.joint.type!==fc.e.SpringJoint?this.world.removeConstraint(e.joint.physicsJoint):e.mainImpostor.unregisterAfterPhysicsStep(e.joint.jointData.forceApplicationCallback)},e.prototype._addMaterial=function(e,t,i){var n,r;for(n=0;n1e3*i));s++);this.time+=n;for(var c=this.time%i/i,l=e,u=this.bodies,h=0;h!==u.length;h++){var d=u[h];d.type!==t.Body.STATIC&&d.sleepState!==t.Body.SLEEPING?(d.position.vsub(d.previousPosition,l),l.scale(c,l),d.position.vadd(l,d.interpolatedPosition)):(d.interpolatedPosition.set(d.position.x,d.position.y,d.position.z),d.interpolatedQuaternion.set(d.quaternion.x,d.quaternion.y,d.quaternion.z,d.quaternion.w))}}}},e.prototype.raycast=function(e,t){return this._cannonRaycastResult.reset(),this.world.raycastClosest(e,t,{},this._cannonRaycastResult),this._raycastResult.reset(e,t),this._cannonRaycastResult.hasHit&&(this._raycastResult.setHitData({x:this._cannonRaycastResult.hitNormalWorld.x,y:this._cannonRaycastResult.hitNormalWorld.y,z:this._cannonRaycastResult.hitNormalWorld.z},{x:this._cannonRaycastResult.hitPointWorld.x,y:this._cannonRaycastResult.hitPointWorld.y,z:this._cannonRaycastResult.hitPointWorld.z}),this._raycastResult.setHitDistance(this._cannonRaycastResult.distance)),this._raycastResult},e}();pc.DefaultPluginFactory=function(){return new mc};var gc=function(){function e(e,t,i){void 0===e&&(e=!0),void 0===i&&(i=OIMO),this._useDeltaForWorldStep=e,this.name=\"OimoJSPlugin\",this._fixedTimeStep=1/60,this._tmpImpostorsArray=[],this._tmpPositionVector=a.e.Zero(),this.BJSOIMO=i,this.world=new this.BJSOIMO.World({iterations:t}),this.world.clear(),this._raycastResult=new _c}return e.prototype.setGravity=function(e){this.world.gravity.set(e.x,e.y,e.z)},e.prototype.setTimeStep=function(e){this.world.timeStep=e},e.prototype.getTimeStep=function(){return this.world.timeStep},e.prototype.executeStep=function(e,t){var i=this;t.forEach((function(e){e.beforeStep()})),this.world.timeStep=this._useDeltaForWorldStep?e:this._fixedTimeStep,this.world.step(),t.forEach((function(e){e.afterStep(),i._tmpImpostorsArray[e.uniqueId]=e}));for(var n=this.world.contacts;null!==n;)if(!n.touching||n.body1.sleeping||n.body2.sleeping){var r=this._tmpImpostorsArray[+n.body1.name],o=this._tmpImpostorsArray[+n.body2.name];r&&o?(r.onCollide({body:o.physicsBody,point:null}),o.onCollide({body:r.physicsBody,point:null}),n=n.next):n=n.next}else n=n.next},e.prototype.applyImpulse=function(e,t,i){var n=e.physicsBody.mass;e.physicsBody.applyImpulse(i.scale(this.world.invScale),t.scale(this.world.invScale*n))},e.prototype.applyForce=function(e,t,i){m.a.Warn(\"Oimo doesn't support applying force. Using impule instead.\"),this.applyImpulse(e,t,i)},e.prototype.generatePhysicsBody=function(e){var t=this;if(e.parent)e.physicsBody&&(this.removePhysicsBody(e),e.forceUpdate());else{if(e.isBodyInitRequired()){var i={name:e.uniqueId,config:[e.getParam(\"mass\")||.001,e.getParam(\"friction\"),e.getParam(\"restitution\")],size:[],type:[],pos:[],posShape:[],rot:[],rotShape:[],move:0!==e.getParam(\"mass\"),density:e.getParam(\"mass\"),friction:e.getParam(\"friction\"),restitution:e.getParam(\"restitution\"),world:this.world},n=[e];(s=e.object).getChildMeshes&&s.getChildMeshes().forEach((function(e){e.physicsImpostor&&n.push(e.physicsImpostor)}));var r=function(e){return Math.max(e,pc.Epsilon)},o=new a.b;n.forEach((function(n){if(n.object.rotationQuaternion){var a=n.object.rotationQuaternion;o.copyFrom(a),n.object.rotationQuaternion.set(0,0,0,1),n.object.computeWorldMatrix(!0);var s=o.toEulerAngles(),c=n.getObjectExtendSize();if(n===e){var l=e.getObjectCenter();e.object.getAbsolutePivotPoint().subtractToRef(l,t._tmpPositionVector),t._tmpPositionVector.divideInPlace(e.object.scaling),i.pos.push(l.x),i.pos.push(l.y),i.pos.push(l.z),i.posShape.push(0,0,0),i.rotShape.push(0,0,0)}else{var u=n.object.position.clone();i.posShape.push(u.x),i.posShape.push(u.y),i.posShape.push(u.z),i.rotShape.push(57.29577951308232*s.x,57.29577951308232*s.y,57.29577951308232*s.z)}switch(n.object.rotationQuaternion.copyFrom(o),n.type){case dc.a.ParticleImpostor:m.a.Warn(\"No Particle support in OIMO.js. using SphereImpostor instead\");case dc.a.SphereImpostor:var h=c.x,d=c.y,f=c.z,p=Math.max(r(h),r(d),r(f))/2;i.type.push(\"sphere\"),i.size.push(p),i.size.push(p),i.size.push(p);break;case dc.a.CylinderImpostor:var _=r(c.x)/2,g=r(c.y);i.type.push(\"cylinder\"),i.size.push(_),i.size.push(g),i.size.push(g);break;case dc.a.PlaneImpostor:case dc.a.BoxImpostor:default:_=r(c.x),g=r(c.y);var v=r(c.z);i.type.push(\"box\"),i.size.push(_),i.size.push(g),i.size.push(v)}n.object.rotationQuaternion=a}})),e.physicsBody=this.world.add(i),e.physicsBody.resetQuaternion(o),e.physicsBody.updatePosition(0)}else this._tmpPositionVector.copyFromFloats(0,0,0);var s;e.setDeltaPosition(this._tmpPositionVector)}},e.prototype.removePhysicsBody=function(e){this.world.removeRigidBody(e.physicsBody)},e.prototype.generateJoint=function(e){var t=e.mainImpostor.physicsBody,i=e.connectedImpostor.physicsBody;if(t&&i){var n,r=e.joint.jointData,o=r.nativeParams||{},a={body1:t,body2:i,axe1:o.axe1||(r.mainAxis?r.mainAxis.asArray():null),axe2:o.axe2||(r.connectedAxis?r.connectedAxis.asArray():null),pos1:o.pos1||(r.mainPivot?r.mainPivot.asArray():null),pos2:o.pos2||(r.connectedPivot?r.connectedPivot.asArray():null),min:o.min,max:o.max,collision:o.collision||r.collision,spring:o.spring,world:this.world};switch(e.joint.type){case fc.e.BallAndSocketJoint:n=\"jointBall\";break;case fc.e.SpringJoint:m.a.Warn(\"OIMO.js doesn't support Spring Constraint. Simulating using DistanceJoint instead\");var s=r;a.min=s.length||a.min,a.max=Math.max(a.min,a.max);case fc.e.DistanceJoint:n=\"jointDistance\",a.max=r.maxDistance;break;case fc.e.PrismaticJoint:n=\"jointPrisme\";break;case fc.e.SliderJoint:n=\"jointSlide\";break;case fc.e.WheelJoint:n=\"jointWheel\";break;case fc.e.HingeJoint:default:n=\"jointHinge\"}a.type=n,e.joint.physicsJoint=this.world.add(a)}},e.prototype.removeJoint=function(e){try{this.world.removeJoint(e.joint.physicsJoint)}catch(e){m.a.Warn(e)}},e.prototype.isSupported=function(){return void 0!==this.BJSOIMO},e.prototype.setTransformationFromPhysicsBody=function(e){if(!e.physicsBody.sleeping){if(e.physicsBody.shapes.next){for(var t=e.physicsBody.shapes;t.next;)t=t.next;e.object.position.set(t.position.x,t.position.y,t.position.z)}else{var i=e.physicsBody.getPosition();e.object.position.set(i.x,i.y,i.z)}if(e.object.rotationQuaternion){var n=e.physicsBody.getQuaternion();e.object.rotationQuaternion.set(n.x,n.y,n.z,n.w)}}},e.prototype.setPhysicsBodyTransformation=function(e,t,i){var n=e.physicsBody;e.physicsBody.shapes.next||(n.position.set(t.x,t.y,t.z),n.orientation.set(i.x,i.y,i.z,i.w),n.syncShapes(),n.awake())},e.prototype.setLinearVelocity=function(e,t){e.physicsBody.linearVelocity.set(t.x,t.y,t.z)},e.prototype.setAngularVelocity=function(e,t){e.physicsBody.angularVelocity.set(t.x,t.y,t.z)},e.prototype.getLinearVelocity=function(e){var t=e.physicsBody.linearVelocity;return t?new a.e(t.x,t.y,t.z):null},e.prototype.getAngularVelocity=function(e){var t=e.physicsBody.angularVelocity;return t?new a.e(t.x,t.y,t.z):null},e.prototype.setBodyMass=function(e,t){var i=0===t;e.physicsBody.shapes.density=i?1:t,e.physicsBody.setupMass(i?2:1)},e.prototype.getBodyMass=function(e){return e.physicsBody.shapes.density},e.prototype.getBodyFriction=function(e){return e.physicsBody.shapes.friction},e.prototype.setBodyFriction=function(e,t){e.physicsBody.shapes.friction=t},e.prototype.getBodyRestitution=function(e){return e.physicsBody.shapes.restitution},e.prototype.setBodyRestitution=function(e,t){e.physicsBody.shapes.restitution=t},e.prototype.sleepBody=function(e){e.physicsBody.sleep()},e.prototype.wakeUpBody=function(e){e.physicsBody.awake()},e.prototype.updateDistanceJoint=function(e,t,i){e.physicsJoint.limitMotor.upperLimit=t,void 0!==i&&(e.physicsJoint.limitMotor.lowerLimit=i)},e.prototype.setMotor=function(e,t,i,n){void 0!==i?m.a.Warn(\"OimoJS plugin currently has unexpected behavior when using setMotor with force parameter\"):i=1e6,t*=-1;var r=n?e.physicsJoint.rotationalLimitMotor2:e.physicsJoint.rotationalLimitMotor1||e.physicsJoint.rotationalLimitMotor||e.physicsJoint.limitMotor;r&&r.setMotor(t,i)},e.prototype.setLimit=function(e,t,i,n){var r=n?e.physicsJoint.rotationalLimitMotor2:e.physicsJoint.rotationalLimitMotor1||e.physicsJoint.rotationalLimitMotor||e.physicsJoint.limitMotor;r&&r.setLimit(t,void 0===i?-t:i)},e.prototype.syncMeshWithImpostor=function(e,t){var i=t.physicsBody;e.position.x=i.position.x,e.position.y=i.position.y,e.position.z=i.position.z,e.rotationQuaternion&&(e.rotationQuaternion.x=i.orientation.x,e.rotationQuaternion.y=i.orientation.y,e.rotationQuaternion.z=i.orientation.z,e.rotationQuaternion.w=i.orientation.s)},e.prototype.getRadius=function(e){return e.physicsBody.shapes.radius},e.prototype.getBoxSizeToRef=function(e,t){var i=e.physicsBody.shapes;t.x=2*i.halfWidth,t.y=2*i.halfHeight,t.z=2*i.halfDepth},e.prototype.dispose=function(){this.world.clear()},e.prototype.raycast=function(e,t){return m.a.Warn(\"raycast is not currently supported by the Oimo physics plugin\"),this._raycastResult.reset(e,t),this._raycastResult},e}(),vc=i(97),bc=function(){function e(e,t,i){var n=this;void 0===e&&(e=!0),void 0===t&&(t=Ammo),void 0===i&&(i=null),this._useDeltaForWorldStep=e,this.bjsAMMO={},this.name=\"AmmoJSPlugin\",this._timeStep=1/60,this._fixedTimeStep=1/60,this._maxSteps=5,this._tmpQuaternion=new a.b,this._tmpContactCallbackResult=!1,this._tmpContactPoint=new a.e,this._tmpMatrix=new a.a,\"function\"==typeof t?t(this.bjsAMMO):this.bjsAMMO=t,this.isSupported()?(this._collisionConfiguration=new this.bjsAMMO.btSoftBodyRigidBodyCollisionConfiguration,this._dispatcher=new this.bjsAMMO.btCollisionDispatcher(this._collisionConfiguration),this._overlappingPairCache=i||new this.bjsAMMO.btDbvtBroadphase,this._solver=new this.bjsAMMO.btSequentialImpulseConstraintSolver,this._softBodySolver=new this.bjsAMMO.btDefaultSoftBodySolver,this.world=new this.bjsAMMO.btSoftRigidDynamicsWorld(this._dispatcher,this._overlappingPairCache,this._solver,this._collisionConfiguration,this._softBodySolver),this._tmpAmmoConcreteContactResultCallback=new this.bjsAMMO.ConcreteContactResultCallback,this._tmpAmmoConcreteContactResultCallback.addSingleResult=function(e,t,i,r){var o=(e=n.bjsAMMO.wrapPointer(e,Ammo.btManifoldPoint)).getPositionWorldOnA();n._tmpContactPoint.x=o.x(),n._tmpContactPoint.y=o.y(),n._tmpContactPoint.z=o.z(),n._tmpContactCallbackResult=!0},this._raycastResult=new _c,this._tmpAmmoTransform=new this.bjsAMMO.btTransform,this._tmpAmmoTransform.setIdentity(),this._tmpAmmoQuaternion=new this.bjsAMMO.btQuaternion(0,0,0,1),this._tmpAmmoVectorA=new this.bjsAMMO.btVector3(0,0,0),this._tmpAmmoVectorB=new this.bjsAMMO.btVector3(0,0,0),this._tmpAmmoVectorC=new this.bjsAMMO.btVector3(0,0,0),this._tmpAmmoVectorD=new this.bjsAMMO.btVector3(0,0,0)):m.a.Error(\"AmmoJS is not available. Please make sure you included the js file.\")}return e.prototype.setGravity=function(e){this._tmpAmmoVectorA.setValue(e.x,e.y,e.z),this.world.setGravity(this._tmpAmmoVectorA),this.world.getWorldInfo().set_m_gravity(this._tmpAmmoVectorA)},e.prototype.setTimeStep=function(e){this._timeStep=e},e.prototype.setFixedTimeStep=function(e){this._fixedTimeStep=e},e.prototype.setMaxSteps=function(e){this._maxSteps=e},e.prototype.getTimeStep=function(){return this._timeStep},e.prototype._isImpostorInContact=function(e){return this._tmpContactCallbackResult=!1,this.world.contactTest(e.physicsBody,this._tmpAmmoConcreteContactResultCallback),this._tmpContactCallbackResult},e.prototype._isImpostorPairInContact=function(e,t){return this._tmpContactCallbackResult=!1,this.world.contactPairTest(e.physicsBody,t.physicsBody,this._tmpAmmoConcreteContactResultCallback),this._tmpContactCallbackResult},e.prototype._stepSimulation=function(e,t,i){if(void 0===e&&(e=1/60),void 0===t&&(t=10),void 0===i&&(i=1/60),0==t)this.world.stepSimulation(e,0);else for(;t>0&&e>0;)e-i0&&this._isImpostorInContact(s))for(var c=0,l=s._onPhysicsCollideCallbacks;c3?3:s;var c=(new this.bjsAMMO.btSoftBodyHelpers).CreateRope(this.world.getWorldInfo(),this._tmpAmmoVectorA,this._tmpAmmoVectorB,i-1,s);return c.get_m_cfg().set_collisions(17),c},e.prototype._createCustom=function(e){var t=null;return this.onCreateCustomShape&&(t=this.onCreateCustomShape(e)),null==t&&(t=new this.bjsAMMO.btCompoundShape),t},e.prototype._addHullVerts=function(e,t,i){var n=this,r=0;if(i&&i.getIndices&&i.getWorldMatrix&&i.getChildMeshes){var o=i.getIndices();o||(o=[]);var s=i.getVerticesData(Qi.b.PositionKind);s||(s=[]),i.computeWorldMatrix(!1);for(var c=o.length/3,l=0;l0){if(e.type!=dc.a.NoImpostor){var l=this._createShape(e,!0);l&&(this._tmpAmmoTransform.getOrigin().setValue(0,0,0),this._tmpAmmoQuaternion.setValue(0,0,0,1),this._tmpAmmoTransform.setRotation(this._tmpAmmoQuaternion),n.addChildShape(this._tmpAmmoTransform,l))}return n}this.bjsAMMO.destroy(n),n=null}switch(e.type){case dc.a.SphereImpostor:if(L.a.WithinEpsilon(o.x,o.y,1e-4)&&L.a.WithinEpsilon(o.x,o.z,1e-4))n=new this.bjsAMMO.btSphereShape(o.x/2);else{var u=[new this.bjsAMMO.btVector3(0,0,0)];(n=new this.bjsAMMO.btMultiSphereShape(u,[1],1)).setLocalScaling(new this.bjsAMMO.btVector3(o.x/2,o.y/2,o.z/2))}break;case dc.a.CapsuleImpostor:n=new this.bjsAMMO.btCapsuleShape(o.x/2,o.y/2);break;case dc.a.CylinderImpostor:this._tmpAmmoVectorA.setValue(o.x/2,o.y/2,o.z/2),n=new this.bjsAMMO.btCylinderShape(this._tmpAmmoVectorA);break;case dc.a.PlaneImpostor:case dc.a.BoxImpostor:this._tmpAmmoVectorA.setValue(o.x/2,o.y/2,o.z/2),n=new this.bjsAMMO.btBoxShape(this._tmpAmmoVectorA);break;case dc.a.MeshImpostor:if(0==e.getParam(\"mass\")){var h=new this.bjsAMMO.btTriangleMesh;e._pluginData.toDispose.push(h);var d=this._addMeshVerts(h,r,r);n=0==d?new this.bjsAMMO.btCompoundShape:new this.bjsAMMO.btBvhTriangleMeshShape(h);break}case dc.a.ConvexHullImpostor:var f=new this.bjsAMMO.btConvexHullShape;0==(d=this._addHullVerts(f,r,r))?(e._pluginData.toDispose.push(f),n=new this.bjsAMMO.btCompoundShape):n=f;break;case dc.a.NoImpostor:n=new this.bjsAMMO.btSphereShape(o.x/2);break;case dc.a.CustomImpostor:n=this._createCustom(e);break;case dc.a.SoftbodyImpostor:n=this._createSoftbody(e);break;case dc.a.ClothImpostor:n=this._createCloth(e);break;case dc.a.RopeImpostor:n=this._createRope(e);break;default:m.a.Warn(\"The impostor type is not currently supported by the ammo plugin.\")}return n},e.prototype.setTransformationFromPhysicsBody=function(e){e.physicsBody.getMotionState().getWorldTransform(this._tmpAmmoTransform),e.object.position.set(this._tmpAmmoTransform.getOrigin().x(),this._tmpAmmoTransform.getOrigin().y(),this._tmpAmmoTransform.getOrigin().z()),e.object.rotationQuaternion?e.object.rotationQuaternion.set(this._tmpAmmoTransform.getRotation().x(),this._tmpAmmoTransform.getRotation().y(),this._tmpAmmoTransform.getRotation().z(),this._tmpAmmoTransform.getRotation().w()):e.object.rotation&&(this._tmpQuaternion.set(this._tmpAmmoTransform.getRotation().x(),this._tmpAmmoTransform.getRotation().y(),this._tmpAmmoTransform.getRotation().z(),this._tmpAmmoTransform.getRotation().w()),this._tmpQuaternion.toEulerAnglesToRef(e.object.rotation))},e.prototype.setPhysicsBodyTransformation=function(e,t,i){var n=e.physicsBody.getWorldTransform();if(Math.abs(n.getOrigin().x()-t.x)>Nt.a||Math.abs(n.getOrigin().y()-t.y)>Nt.a||Math.abs(n.getOrigin().z()-t.z)>Nt.a||Math.abs(n.getRotation().x()-i.x)>Nt.a||Math.abs(n.getRotation().y()-i.y)>Nt.a||Math.abs(n.getRotation().z()-i.z)>Nt.a||Math.abs(n.getRotation().w()-i.w)>Nt.a)if(this._tmpAmmoVectorA.setValue(t.x,t.y,t.z),n.setOrigin(this._tmpAmmoVectorA),this._tmpAmmoQuaternion.setValue(i.x,i.y,i.z,i.w),n.setRotation(this._tmpAmmoQuaternion),e.physicsBody.setWorldTransform(n),0==e.mass){var r=e.physicsBody.getMotionState();r&&r.setWorldTransform(n)}else e.physicsBody.activate()},e.prototype.isSupported=function(){return void 0!==this.bjsAMMO},e.prototype.setLinearVelocity=function(e,t){this._tmpAmmoVectorA.setValue(t.x,t.y,t.z),e.soft?e.physicsBody.linearVelocity(this._tmpAmmoVectorA):e.physicsBody.setLinearVelocity(this._tmpAmmoVectorA)},e.prototype.setAngularVelocity=function(e,t){this._tmpAmmoVectorA.setValue(t.x,t.y,t.z),e.soft?e.physicsBody.angularVelocity(this._tmpAmmoVectorA):e.physicsBody.setAngularVelocity(this._tmpAmmoVectorA)},e.prototype.getLinearVelocity=function(e){if(e.soft)var t=e.physicsBody.linearVelocity();else t=e.physicsBody.getLinearVelocity();if(!t)return null;var i=new a.e(t.x(),t.y(),t.z());return this.bjsAMMO.destroy(t),i},e.prototype.getAngularVelocity=function(e){if(e.soft)var t=e.physicsBody.angularVelocity();else t=e.physicsBody.getAngularVelocity();if(!t)return null;var i=new a.e(t.x(),t.y(),t.z());return this.bjsAMMO.destroy(t),i},e.prototype.setBodyMass=function(e,t){e.soft?e.physicsBody.setTotalMass(t,!1):e.physicsBody.setMassProps(t),e._pluginData.mass=t},e.prototype.getBodyMass=function(e){return e._pluginData.mass||0},e.prototype.getBodyFriction=function(e){return e._pluginData.friction||0},e.prototype.setBodyFriction=function(e,t){e.soft?e.physicsBody.get_m_cfg().set_kDF(t):e.physicsBody.setFriction(t),e._pluginData.friction=t},e.prototype.getBodyRestitution=function(e){return e._pluginData.restitution||0},e.prototype.setBodyRestitution=function(e,t){e.physicsBody.setRestitution(t),e._pluginData.restitution=t},e.prototype.getBodyPressure=function(e){return e.soft?e._pluginData.pressure||0:(m.a.Warn(\"Pressure is not a property of a rigid body\"),0)},e.prototype.setBodyPressure=function(e,t){e.soft?e.type===dc.a.SoftbodyImpostor?(e.physicsBody.get_m_cfg().set_kPR(t),e._pluginData.pressure=t):(e.physicsBody.get_m_cfg().set_kPR(0),e._pluginData.pressure=0):m.a.Warn(\"Pressure can only be applied to a softbody\")},e.prototype.getBodyStiffness=function(e){return e.soft?e._pluginData.stiffness||0:(m.a.Warn(\"Stiffness is not a property of a rigid body\"),0)},e.prototype.setBodyStiffness=function(e,t){e.soft?(t=(t=t<0?0:t)>1?1:t,e.physicsBody.get_m_materials().at(0).set_m_kLST(t),e._pluginData.stiffness=t):m.a.Warn(\"Stiffness cannot be applied to a rigid body\")},e.prototype.getBodyVelocityIterations=function(e){return e.soft?e._pluginData.velocityIterations||0:(m.a.Warn(\"Velocity iterations is not a property of a rigid body\"),0)},e.prototype.setBodyVelocityIterations=function(e,t){e.soft?(t=t<0?0:t,e.physicsBody.get_m_cfg().set_viterations(t),e._pluginData.velocityIterations=t):m.a.Warn(\"Velocity iterations cannot be applied to a rigid body\")},e.prototype.getBodyPositionIterations=function(e){return e.soft?e._pluginData.positionIterations||0:(m.a.Warn(\"Position iterations is not a property of a rigid body\"),0)},e.prototype.setBodyPositionIterations=function(e,t){e.soft?(t=t<0?0:t,e.physicsBody.get_m_cfg().set_piterations(t),e._pluginData.positionIterations=t):m.a.Warn(\"Position iterations cannot be applied to a rigid body\")},e.prototype.appendAnchor=function(e,t,i,n,r,o){void 0===r&&(r=1),void 0===o&&(o=!1);var a=e.segments,s=Math.round((a-1)*i)+a*(a-1-Math.round((a-1)*n));e.physicsBody.appendAnchor(s,t.physicsBody,o,r)},e.prototype.appendHook=function(e,t,i,n,r){void 0===n&&(n=1),void 0===r&&(r=!1);var o=Math.round(e.segments*i);e.physicsBody.appendAnchor(o,t.physicsBody,r,n)},e.prototype.sleepBody=function(e){m.a.Warn(\"sleepBody is not currently supported by the Ammo physics plugin\")},e.prototype.wakeUpBody=function(e){e.physicsBody.activate()},e.prototype.updateDistanceJoint=function(e,t,i){m.a.Warn(\"updateDistanceJoint is not currently supported by the Ammo physics plugin\")},e.prototype.setMotor=function(e,t,i,n){e.physicsJoint.enableAngularMotor(!0,t,i)},e.prototype.setLimit=function(e,t,i){m.a.Warn(\"setLimit is not currently supported by the Ammo physics plugin\")},e.prototype.syncMeshWithImpostor=function(e,t){t.physicsBody.getMotionState().getWorldTransform(this._tmpAmmoTransform),e.position.x=this._tmpAmmoTransform.getOrigin().x(),e.position.y=this._tmpAmmoTransform.getOrigin().y(),e.position.z=this._tmpAmmoTransform.getOrigin().z(),e.rotationQuaternion&&(e.rotationQuaternion.x=this._tmpAmmoTransform.getRotation().x(),e.rotationQuaternion.y=this._tmpAmmoTransform.getRotation().y(),e.rotationQuaternion.z=this._tmpAmmoTransform.getRotation().z(),e.rotationQuaternion.w=this._tmpAmmoTransform.getRotation().w())},e.prototype.getRadius=function(e){return e.getObjectExtendSize().x/2},e.prototype.getBoxSizeToRef=function(e,t){var i=e.getObjectExtendSize();t.x=i.x,t.y=i.y,t.z=i.z},e.prototype.dispose=function(){this.bjsAMMO.destroy(this.world),this.bjsAMMO.destroy(this._solver),this.bjsAMMO.destroy(this._overlappingPairCache),this.bjsAMMO.destroy(this._dispatcher),this.bjsAMMO.destroy(this._collisionConfiguration),this.bjsAMMO.destroy(this._tmpAmmoVectorA),this.bjsAMMO.destroy(this._tmpAmmoVectorB),this.bjsAMMO.destroy(this._tmpAmmoVectorC),this.bjsAMMO.destroy(this._tmpAmmoTransform),this.bjsAMMO.destroy(this._tmpAmmoQuaternion),this.bjsAMMO.destroy(this._tmpAmmoConcreteContactResultCallback),this.world=null},e.prototype.raycast=function(e,t){this._tmpAmmoVectorRCA=new this.bjsAMMO.btVector3(e.x,e.y,e.z),this._tmpAmmoVectorRCB=new this.bjsAMMO.btVector3(t.x,t.y,t.z);var i=new this.bjsAMMO.ClosestRayResultCallback(this._tmpAmmoVectorRCA,this._tmpAmmoVectorRCB);return this.world.rayTest(this._tmpAmmoVectorRCA,this._tmpAmmoVectorRCB,i),this._raycastResult.reset(e,t),i.hasHit()&&(this._raycastResult.setHitData({x:i.get_m_hitNormalWorld().x(),y:i.get_m_hitNormalWorld().y(),z:i.get_m_hitNormalWorld().z()},{x:i.get_m_hitPointWorld().x(),y:i.get_m_hitPointWorld().y(),z:i.get_m_hitPointWorld().z()}),this._raycastResult.calculateHitDistance()),this.bjsAMMO.destroy(i),this.bjsAMMO.destroy(this._tmpAmmoVectorRCA),this.bjsAMMO.destroy(this._tmpAmmoVectorRCB),this._raycastResult},e.DISABLE_COLLISION_FLAG=4,e.KINEMATIC_FLAG=2,e.DISABLE_DEACTIVATION_FLAG=4,e}();n.a.prototype.removeReflectionProbe=function(e){if(!this.reflectionProbes)return-1;var t=this.reflectionProbes.indexOf(e);return-1!==t&&this.reflectionProbes.splice(t,1),t},n.a.prototype.addReflectionProbe=function(e){this.reflectionProbes||(this.reflectionProbes=[]),this.reflectionProbes.push(e)};var yc=function(){function e(e,t,i,n,r){var o=this;void 0===n&&(n=!0),void 0===r&&(r=!1),this.name=e,this._viewMatrix=a.a.Identity(),this._target=a.e.Zero(),this._add=a.e.Zero(),this._invertYAxis=!1,this.position=a.e.Zero(),this._scene=i,this._scene.reflectionProbes||(this._scene.reflectionProbes=new Array),this._scene.reflectionProbes.push(this);var s=g.a.TEXTURETYPE_UNSIGNED_BYTE;if(r){var c=this._scene.getEngine().getCaps();c.textureHalfFloatRender?s=g.a.TEXTURETYPE_HALF_FLOAT:c.textureFloatRender&&(s=g.a.TEXTURETYPE_FLOAT)}this._renderTargetTexture=new Ni(e,t,i,n,!0,s,!0),this._renderTargetTexture.onBeforeRenderObservable.add((function(e){switch(e){case 0:o._add.copyFromFloats(1,0,0);break;case 1:o._add.copyFromFloats(-1,0,0);break;case 2:o._add.copyFromFloats(0,o._invertYAxis?1:-1,0);break;case 3:o._add.copyFromFloats(0,o._invertYAxis?-1:1,0);break;case 4:o._add.copyFromFloats(0,0,1);break;case 5:o._add.copyFromFloats(0,0,-1)}o._attachedMesh&&o.position.copyFrom(o._attachedMesh.getAbsolutePosition()),o.position.addToRef(o._add,o._target),a.a.LookAtLHToRef(o.position,o._target,a.e.Up(),o._viewMatrix),i.activeCamera&&(o._projectionMatrix=a.a.PerspectiveFovLH(Math.PI/2,1,i.activeCamera.minZ,i.activeCamera.maxZ),i.setTransformMatrix(o._viewMatrix,o._projectionMatrix)),i._forcedViewPosition=o.position})),this._renderTargetTexture.onAfterUnbindObservable.add((function(){i._forcedViewPosition=null,i.updateTransformMatrix(!0)}))}return Object.defineProperty(e.prototype,\"samples\",{get:function(){return this._renderTargetTexture.samples},set:function(e){this._renderTargetTexture.samples=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"refreshRate\",{get:function(){return this._renderTargetTexture.refreshRate},set:function(e){this._renderTargetTexture.refreshRate=e},enumerable:!1,configurable:!0}),e.prototype.getScene=function(){return this._scene},Object.defineProperty(e.prototype,\"cubeTexture\",{get:function(){return this._renderTargetTexture},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"renderList\",{get:function(){return this._renderTargetTexture.renderList},enumerable:!1,configurable:!0}),e.prototype.attachToMesh=function(e){this._attachedMesh=e},e.prototype.setRenderingAutoClearDepthStencil=function(e,t){this._renderTargetTexture.setRenderingAutoClearDepthStencil(e,t)},e.prototype.dispose=function(){var e=this._scene.reflectionProbes.indexOf(this);-1!==e&&this._scene.reflectionProbes.splice(e,1),this._renderTargetTexture&&(this._renderTargetTexture.dispose(),this._renderTargetTexture=null)},e.prototype.toString=function(e){var t=\"Name: \"+this.name;return e&&(t+=\", position: \"+this.position.toString(),this._attachedMesh&&(t+=\", attached mesh: \"+this._attachedMesh.name)),t},e.prototype.getClassName=function(){return\"ReflectionProbe\"},e.prototype.serialize=function(){var e=w.a.Serialize(this,this._renderTargetTexture.serialize());return e.isReflectionProbe=!0,e},e.Parse=function(t,i,n){var r=null;if(i.reflectionProbes)for(var o=0;o0){var n=t._waitingData.lods.ids,r=i.isEnabled(!1);if(t._waitingData.lods.distances){var o=t._waitingData.lods.distances;if(o.length>=n.length){var a=o.length>n.length?o[o.length-1]:0;i.setEnabled(!1);for(var s=0;s0&&i.addLODLevel(a,null),!0===r&&i.setEnabled(!0)}else Ce.b.Warn(\"Invalid level of detail distances for \"+t.name)}}t._waitingData.lods=null}},Rc=function(e,t,i,r,o){void 0===o&&(o=!1);var a=new Ee(e),s=\"importScene has failed JSON parse\";try{var l=JSON.parse(t);s=\"\";var u,h,d=pr.loggingLevel===pr.DETAILED_LOGGING;if(void 0!==l.environmentTexture&&null!==l.environmentTexture){var f=void 0===l.isPBR||l.isPBR;if(l.environmentTextureType&&\"BABYLON.HDRCubeTexture\"===l.environmentTextureType){var p=l.environmentTextureSize?l.environmentTextureSize:128,_=new lc((l.environmentTexture.match(/https?:\\/\\//g)?\"\":i)+l.environmentTexture,e,p,!0,!f);l.environmentTextureRotationY&&(_.rotationY=l.environmentTextureRotationY),e.environmentTexture=_}else if(io.a.EndsWith(l.environmentTexture,\".env\")){var g=new no((l.environmentTexture.match(/https?:\\/\\//g)?\"\":i)+l.environmentTexture,e);l.environmentTextureRotationY&&(g.rotationY=l.environmentTextureRotationY),e.environmentTexture=g}else{var v=no.CreateFromPrefilteredData((l.environmentTexture.match(/https?:\\/\\//g)?\"\":i)+l.environmentTexture,e);l.environmentTextureRotationY&&(v.rotationY=l.environmentTextureRotationY),e.environmentTexture=v}if(!0===l.createDefaultSkybox){var b=void 0!==e.activeCamera&&null!==e.activeCamera?(e.activeCamera.maxZ-e.activeCamera.minZ)/2:1e3,y=l.skyboxBlurLevel||0;e.createDefaultSkybox(e.environmentTexture,f,b,y)}a.environmentTexture=e.environmentTexture}if(void 0!==l.environmentIntensity&&null!==l.environmentIntensity&&(e.environmentIntensity=l.environmentIntensity),void 0!==l.lights&&null!==l.lights)for(u=0,h=l.lights.length;u0){for(var ae=0;ae0){for(var ce=0;ce-1&&void 0!==u.skeletons&&null!==u.skeletons)if(!1===g.indexOf(b.skeletonId)>-1)for(var M=0,I=u.skeletons.length;M1,this.wrapU=g.a.TEXTURE_CLAMP_ADDRESSMODE,this.wrapV=g.a.TEXTURE_CLAMP_ADDRESSMODE,this.wrapR=g.a.TEXTURE_CLAMP_ADDRESSMODE,this.anisotropicFilteringLevel=1;var r=function(r){if(\"string\"==typeof r){for(var o,a=null,s=null,c=r.split(\"\\n\"),l=0,u=0,h=0,d=0,f=0,p=0;p0&&(p+1)%4==0)a[p]=255;else{var T=s[p];a[p]=T/f*255}e.is3D?(e.updateSize(l,l,l),n.updateRawTexture3D(e,a,g.a.TEXTUREFORMAT_RGBA,!1)):(e.updateSize(l*l,l),n.updateRawTexture(e,a,g.a.TEXTUREFORMAT_RGBA,!1)),e.isReady=!0,i._triggerOnLoad()}},o=this.getScene();return o?o._loadFile(this.url,r):n._loadFile(this.url,r),this._texture},t.prototype.loadTexture=function(){this.url&&this.url.toLocaleLowerCase().indexOf(\".3dl\")==this.url.length-4&&this.load3dlTexture()},t.prototype.clone=function(){var e=new t(this.url,this.getScene()||this._getEngine());return e.level=this.level,e},t.prototype.delayLoad=function(){this.delayLoadState===g.a.DELAYLOADSTATE_NOTLOADED&&(this.delayLoadState=g.a.DELAYLOADSTATE_LOADED,this._texture=this._getFromCache(this.url,!0),this._texture||this.loadTexture())},t.Parse=function(e,i){var n=null;return e.name&&!e.isRenderTarget&&((n=new t(e.name,i)).name=e.name,n.level=e.level),n},t.prototype.serialize=function(){if(!this.name)return null;var e={};return e.name=this.name,e.level=this.level,e.customType=\"BABYLON.ColorGradingTexture\",e},t._noneEmptyLineRegex=/\\S+/,t}(Zn.a);c.a.RegisteredTypes[\"BABYLON.ColorGradingTexture\"]=wc;var Fc=function(e){function t(t,i,n,r,o,a,s){void 0===r&&(r=!1),void 0===o&&(o=!0),void 0===a&&(a=null),void 0===s&&(s=null);var c=e.call(this,i)||this;if(c._onLoad=null,c._onError=null,!t)throw new Error(\"Image url is not set\");return c._coordinatesMode=Ke.a.CUBIC_MODE,c.name=t,c.url=t,c._size=n,c._noMipmap=r,c.gammaSpace=o,c._onLoad=a,c._onError=s,c.hasAlpha=!1,c.isCube=!0,c._texture=c._getFromCache(t,c._noMipmap),c._texture?a&&(c._texture.isReady?Ce.b.SetImmediate((function(){return a()})):c._texture.onLoadedObservable.add(a)):i.useDelayedTextureLoading?c.delayLoadState=g.a.DELAYLOADSTATE_NOTLOADED:c.loadImage(c.loadTexture.bind(c),c._onError),c}return Object(h.d)(t,e),t.prototype.loadImage=function(e,t){var i=this,n=document.createElement(\"canvas\"),r=new Image;r.addEventListener(\"load\",(function(){i._width=r.width,i._height=r.height,n.width=i._width,n.height=i._height;var t=n.getContext(\"2d\");t.drawImage(r,0,0);var o=t.getImageData(0,0,r.width,r.height);i._buffer=o.data.buffer,n.remove(),e()})),r.addEventListener(\"error\",(function(e){t&&t(i.getClassName()+\" could not be loaded\",e)})),r.src=this.url},t.prototype.loadTexture=function(){var e=this,i=this.getScene();i&&(this._texture=i.getEngine().createRawCubeTextureFromUrl(this.url,i,this._size,g.a.TEXTUREFORMAT_RGB,i.getEngine().getCaps().textureFloat?g.a.TEXTURETYPE_FLOAT:g.a.TEXTURETYPE_UNSIGNED_INTEGER,this._noMipmap,(function(){for(var i=e.getFloat32ArrayFromArrayBuffer(e._buffer),n=ic.ConvertPanoramaToCubemap(i,e._width,e._height,e._size),r=[],o=0;o<6;o++){var a=n[t._FacesMapping[o]];r.push(a)}return r}),null,this._onLoad,this._onError))},t.prototype.getFloat32ArrayFromArrayBuffer=function(e){for(var t=new DataView(e),i=new Float32Array(3*e.byteLength/4),n=0,r=0;ri.length)m.a.Error(\"Unable to load TGA file - Not enough data\");else{n+=r.id_length;var o,a=!1,s=!1,c=!1;switch(r.image_type){case e._TYPE_RLE_INDEXED:a=!0;case e._TYPE_INDEXED:s=!0;break;case e._TYPE_RLE_RGB:a=!0;case e._TYPE_RGB:break;case e._TYPE_RLE_GREY:a=!0;case e._TYPE_GREY:c=!0}var l,u,h,d,f,p,_,g=r.pixel_size>>3,v=r.width*r.height*g;if(s&&(l=i.subarray(n,n+=r.colormap_length*(r.colormap_size>>3))),a){var b,y,T;o=new Uint8Array(v);for(var E=0,S=new Uint8Array(g);n>e._ORIGIN_SHIFT){default:case e._ORIGIN_UL:u=0,d=1,_=r.width,h=0,f=1,p=r.height;break;case e._ORIGIN_BL:u=0,d=1,_=r.width,h=r.height-1,f=-1,p=-1;break;case e._ORIGIN_UR:u=r.width-1,d=-1,_=-1,h=0,f=1,p=r.height;break;case e._ORIGIN_BR:u=r.width-1,d=-1,_=-1,h=r.height-1,f=-1,p=-1}var A=e[\"_getImageData\"+(c?\"Grey\":\"\")+r.pixel_size+\"bits\"](r,l,o,h,f,p,u,d,_);t.getEngine()._uploadDataToTextureDirectly(t,A)}}},e._getImageData8bits=function(e,t,i,n,r,o,a,s,c){var l,u,h,d=i,f=t,p=e.width,_=e.height,m=0,g=new Uint8Array(p*_*4);for(h=n;h!==o;h+=r)for(u=a;u!==c;u+=s,m++)l=d[m],g[4*(u+p*h)+3]=255,g[4*(u+p*h)+2]=f[3*l+0],g[4*(u+p*h)+1]=f[3*l+1],g[4*(u+p*h)+0]=f[3*l+2];return g},e._getImageData16bits=function(e,t,i,n,r,o,a,s,c){var l,u,h,d=i,f=e.width,p=e.height,_=0,m=new Uint8Array(f*p*4);for(h=n;h!==o;h+=r)for(u=a;u!==c;u+=s,_+=2){var g=255*((31744&(l=d[_+0]+(d[_+1]<<8)))>>10)/31|0,v=255*((992&l)>>5)/31|0,b=255*(31&l)/31|0;m[4*(u+f*h)+0]=g,m[4*(u+f*h)+1]=v,m[4*(u+f*h)+2]=b,m[4*(u+f*h)+3]=32768&l?0:255}return m},e._getImageData24bits=function(e,t,i,n,r,o,a,s,c){var l,u,h=i,d=e.width,f=e.height,p=0,_=new Uint8Array(d*f*4);for(u=n;u!==o;u+=r)for(l=a;l!==c;l+=s,p+=3)_[4*(l+d*u)+3]=255,_[4*(l+d*u)+2]=h[p+0],_[4*(l+d*u)+1]=h[p+1],_[4*(l+d*u)+0]=h[p+2];return _},e._getImageData32bits=function(e,t,i,n,r,o,a,s,c){var l,u,h=i,d=e.width,f=e.height,p=0,_=new Uint8Array(d*f*4);for(u=n;u!==o;u+=r)for(l=a;l!==c;l+=s,p+=4)_[4*(l+d*u)+2]=h[p+0],_[4*(l+d*u)+1]=h[p+1],_[4*(l+d*u)+0]=h[p+2],_[4*(l+d*u)+3]=h[p+3];return _},e._getImageDataGrey8bits=function(e,t,i,n,r,o,a,s,c){var l,u,h,d=i,f=e.width,p=e.height,_=0,m=new Uint8Array(f*p*4);for(h=n;h!==o;h+=r)for(u=a;u!==c;u+=s,_++)l=d[_],m[4*(u+f*h)+0]=l,m[4*(u+f*h)+1]=l,m[4*(u+f*h)+2]=l,m[4*(u+f*h)+3]=255;return m},e._getImageDataGrey16bits=function(e,t,i,n,r,o,a,s,c){var l,u,h=i,d=e.width,f=e.height,p=0,_=new Uint8Array(d*f*4);for(u=n;u!==o;u+=r)for(l=a;l!==c;l+=s,p+=2)_[4*(l+d*u)+0]=h[p+0],_[4*(l+d*u)+1]=h[p+0],_[4*(l+d*u)+2]=h[p+0],_[4*(l+d*u)+3]=h[p+1];return _},e._TYPE_INDEXED=1,e._TYPE_RGB=2,e._TYPE_GREY=3,e._TYPE_RLE_INDEXED=9,e._TYPE_RLE_RGB=10,e._TYPE_RLE_GREY=11,e._ORIGIN_MASK=48,e._ORIGIN_SHIFT=4,e._ORIGIN_BL=0,e._ORIGIN_BR=1,e._ORIGIN_UL=2,e._ORIGIN_UR=3,e}(),Vc=function(){function e(){this.supportCascades=!1}return e.prototype.canLoad=function(e){return io.a.EndsWith(e,\".tga\")},e.prototype.loadCubeData=function(e,t,i,n,r){throw\".env not supported in Cube.\"},e.prototype.loadData=function(e,t,i){var n=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),r=Uc.GetTGAHeader(n);i(r.width,r.height,t.generateMipMaps,!1,(function(){Uc.UploadContent(t,n)}))},e}();Se.a._TextureLoaders.push(new Vc);var kc,zc=function(){};!function(e){e[e.cTFETC1=0]=\"cTFETC1\",e[e.cTFBC1=1]=\"cTFBC1\",e[e.cTFBC4=2]=\"cTFBC4\",e[e.cTFPVRTC1_4_OPAQUE_ONLY=3]=\"cTFPVRTC1_4_OPAQUE_ONLY\",e[e.cTFBC7_M6_OPAQUE_ONLY=4]=\"cTFBC7_M6_OPAQUE_ONLY\",e[e.cTFETC2=5]=\"cTFETC2\",e[e.cTFBC3=6]=\"cTFBC3\",e[e.cTFBC5=7]=\"cTFBC5\"}(kc||(kc={}));var Gc=function(){function e(){}return e.GetInternalFormatFromBasisFormat=function(e){if(e===kc.cTFETC1)return 36196;if(e===kc.cTFBC1)return 33776;if(e===kc.cTFBC3)return 33779;throw\"The chosen Basis transcoder format is not currently supported\"},e._CreateWorkerAsync=function(){var t=this;return this._WorkerPromise||(this._WorkerPromise=new Promise((function(i){t._Worker?i(t._Worker):Ce.b.LoadFileAsync(e.WasmModuleURL).then((function(n){var r=URL.createObjectURL(new Blob([\"(\"+jc+\")()\"],{type:\"application/javascript\"}));t._Worker=new Worker(r);var o=function(e){\"init\"===e.data.action&&(t._Worker.removeEventListener(\"message\",o),i(t._Worker))};t._Worker.addEventListener(\"message\",o),t._Worker.postMessage({action:\"init\",url:e.JSModuleURL,wasmBinary:n})}))}))),this._WorkerPromise},e.TranscodeAsync=function(e,t){var i=this,n=e instanceof ArrayBuffer?new Uint8Array(e):e;return new Promise((function(e,r){i._CreateWorkerAsync().then((function(){var o=i._actionId++,a=function(t){\"transcode\"===t.data.action&&t.data.id===o&&(i._Worker.removeEventListener(\"message\",a),t.data.success?e(t.data):r(\"Transcode is not supported on this device\"))};i._Worker.addEventListener(\"message\",a);var s=new Uint8Array(n.byteLength);s.set(new Uint8Array(n.buffer,n.byteOffset,n.byteLength)),i._Worker.postMessage({action:\"transcode\",id:o,imageData:s,config:t,ignoreSupportedFormats:i._IgnoreSupportedFormats},[s.buffer])}))}))},e.LoadTextureFromTranscodeResult=function(t,i){for(var n,r=t.getEngine(),o=function(){if(n=i.fileInfo.images[a].levels[0],t._invertVScale=t.invertY,-1===i.format)if(t.type=g.a.TEXTURETYPE_UNSIGNED_SHORT_5_6_5,t.format=g.a.TEXTUREFORMAT_RGB,r.webGLVersion<2&&(L.a.Log2(n.width)%1!=0||L.a.Log2(n.height)%1!=0)){var o=new Qe.a(r,Qe.b.Temp);t._invertVScale=t.invertY,o.type=g.a.TEXTURETYPE_UNSIGNED_SHORT_5_6_5,o.format=g.a.TEXTUREFORMAT_RGB,o.width=n.width+3&-4,o.height=n.height+3&-4,r._bindTextureDirectly(r._gl.TEXTURE_2D,o,!0),r._uploadDataToTextureDirectly(o,n.transcodedPixels,a,0,g.a.TEXTUREFORMAT_RGB,!0),r._rescaleTexture(o,t,r.scenes[0],r._getInternalFormat(g.a.TEXTUREFORMAT_RGB),(function(){r._releaseTexture(o),r._bindTextureDirectly(r._gl.TEXTURE_2D,t,!0)}))}else t._invertVScale=!t.invertY,t.width=n.width+3&-4,t.height=n.height+3&-4,r._uploadDataToTextureDirectly(t,n.transcodedPixels,a,0,g.a.TEXTUREFORMAT_RGB,!0);else t.width=n.width,t.height=n.height,i.fileInfo.images[a].levels.forEach((function(n,o){r._uploadCompressedDataToTextureDirectly(t,e.GetInternalFormatFromBasisFormat(i.format),n.width,n.height,n.transcodedPixels,a,o)})),r.webGLVersion<2&&(L.a.Log2(t.width)%1!=0||L.a.Log2(t.height)%1!=0)&&(Ce.b.Warn(\"Loaded .basis texture width and height are not a power of two. Texture wrapping will be set to Texture.CLAMP_ADDRESSMODE as other modes are not supported with non power of two dimensions in webGL 1.\"),t._cachedWrapU=Ke.a.CLAMP_ADDRESSMODE,t._cachedWrapV=Ke.a.CLAMP_ADDRESSMODE)},a=0;a>2&3],o[f++]=r[d>>4&3],o[f++]=r[d>>6&3]}}return o}(a,0,e.getImageWidth(t,i)+3&-4,e.getImageHeight(t,i)+3&-4));return a}onmessage=function(a){if(\"init\"===a.data.action)r||(Module={wasmBinary:a.data.wasmBinary},importScripts(a.data.url),r=new Promise((function(e){Module.onRuntimeInitialized=function(){Module.initializeBasis(),e()}}))),r.then((function(){postMessage({action:\"init\"})}));else if(\"transcode\"===a.data.action){var s=a.data.config,c=a.data.imageData,l=new Module.BasisFile(c),u=function(e){for(var t=e.getHasAlpha(),i=e.getNumImages(),n=[],r=0;r1&&t.generateMipMaps;Gc.LoadTextureFromTranscodeResult(t,e),t.getEngine()._setCubeMapTextureParams(t,i),t.isReady=!0,t.onLoadedObservable.notifyObservers(t),t.onLoadedObservable.clear(),n&&n()})).catch((function(e){Ce.b.Warn(\"Failed to transcode Basis file, transcoding may not be supported on this device\"),t.isReady=!0}))}},e.prototype.loadData=function(e,t,i){var n=t.getEngine().getCaps(),r={supportedCompressionFormats:{etc1:!!n.etc1,s3tc:!!n.s3tc,pvrtc:!!n.pvrtc,etc2:!!n.etc2}};Gc.TranscodeAsync(e,r).then((function(e){var n=e.fileInfo.images[0].levels[0],r=e.fileInfo.images[0].levels.length>1&&t.generateMipMaps;i(n.width,n.height,r,-1!==e.format,(function(){Gc.LoadTextureFromTranscodeResult(t,e)}))})).catch((function(e){Ce.b.Warn(\"Failed to transcode Basis file, transcoding may not be supported on this device\"),i(0,0,!1,!1,(function(){}))}))},e}();Se.a._TextureLoaders.push(new Wc);var Hc=function(e){function t(t,i,n,r,o){var a=this,s=!(!o||!o.generateMipMaps)&&o.generateMipMaps,c=!(!o||!o.generateDepthTexture)&&o.generateDepthTexture,l=!o||void 0===o.doNotChangeAspectRatio||o.doNotChangeAspectRatio;if((a=e.call(this,t,i,r,s,l)||this).isSupported){var u=[],h=[];a._initTypes(n,u,h,o);var d=!o||void 0===o.generateDepthBuffer||o.generateDepthBuffer,f=!(!o||void 0===o.generateStencilBuffer)&&o.generateStencilBuffer;return a._size=i,a._multiRenderTargetOptions={samplingModes:h,generateMipMaps:s,generateDepthBuffer:d,generateStencilBuffer:f,generateDepthTexture:c,types:u,textureCount:n},a._count=n,a._createInternalTextures(),a._createTextures(),a}a.dispose()}return Object(h.d)(t,e),Object.defineProperty(t.prototype,\"isSupported\",{get:function(){return this._getEngine().webGLVersion>1||this._getEngine().getCaps().drawBuffersExtension},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"textures\",{get:function(){return this._textures},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"count\",{get:function(){return this._count},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"depthTexture\",{get:function(){return this._textures[this._textures.length-1]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"wrapU\",{set:function(e){if(this._textures)for(var t=0;t=0;e--)void 0!==this._internalTextures[e]&&(this._internalTextures[e].dispose(),this._internalTextures.splice(e,1))},t}(Ni),Xc=function(e,t,i){this.id=e,this.scale=t,this.offset=i},Yc=function(){function e(t,i,n,r){var o,a,c,l,u,h,d,f,p,_,m,g,v;return this.name=t,this.meshes=i,this.scene=r,this.options=n,this.options.map=null!==(o=this.options.map)&&void 0!==o?o:[\"ambientTexture\",\"bumpTexture\",\"diffuseTexture\",\"emissiveTexture\",\"lightmapTexture\",\"opacityTexture\",\"reflectionTexture\",\"refractionTexture\",\"specularTexture\"],this.options.uvsIn=null!==(a=this.options.uvsIn)&&void 0!==a?a:Qi.b.UVKind,this.options.uvsOut=null!==(c=this.options.uvsOut)&&void 0!==c?c:Qi.b.UVKind,this.options.layout=null!==(l=this.options.layout)&&void 0!==l?l:e.LAYOUT_STRIP,this.options.layout===e.LAYOUT_COLNUM&&(this.options.colnum=null!==(u=this.options.colnum)&&void 0!==u?u:8),this.options.updateInputMeshes=null===(h=this.options.updateInputMeshes)||void 0===h||h,this.options.disposeSources=null===(d=this.options.disposeSources)||void 0===d||d,this._expecting=0,this.options.fillBlanks=null===(f=this.options.fillBlanks)||void 0===f||f,!0===this.options.fillBlanks&&(this.options.customFillColor=null!==(p=this.options.customFillColor)&&void 0!==p?p:\"black\"),this.options.frameSize=null!==(_=this.options.frameSize)&&void 0!==_?_:256,this.options.paddingRatio=null!==(m=this.options.paddingRatio)&&void 0!==m?m:.0115,this._paddingValue=Math.ceil(this.options.frameSize*this.options.paddingRatio),this._paddingValue%2!=0&&this._paddingValue++,this.options.paddingMode=null!==(g=this.options.paddingMode)&&void 0!==g?g:e.SUBUV_WRAP,this.options.paddingMode===e.SUBUV_COLOR&&(this.options.paddingColor=null!==(v=this.options.paddingColor)&&void 0!==v?v:new s.b(0,0,0,1)),this.sets={},this.frames=[],this}return e.prototype._createFrames=function(e){for(var t=this,i=this._calculateSize(),n=new a.d(1,1).divide(i),r=0,o=this._expecting,c=this.meshes.length,l=Object.keys(this.sets),u=0;u0);for(var e=0;e0)}},e}(),Qc=\"\\nattribute vec2 position;\\n\\nvarying vec2 vPosition;\\nvarying vec2 vUV;\\nconst vec2 madd=vec2(0.5,0.5);\\nvoid main(void) {\\nvPosition=position;\\nvUV=position*madd+madd;\\ngl_Position=vec4(position,0.0,1.0);\\n}\";ai.a.ShadersStore.proceduralVertexShader=Qc;var qc=function(e){function t(t,i,n,r,a,s,c,l){void 0===a&&(a=null),void 0===s&&(s=!0),void 0===c&&(c=!1),void 0===l&&(l=g.a.TEXTURETYPE_UNSIGNED_INT);var u=e.call(this,null,r,!s)||this;u.isEnabled=!0,u.autoClear=!0,u.onGeneratedObservable=new o.c,u.onBeforeGenerationObservable=new o.c,u.nodeMaterialSource=null,u._textures={},u._currentRefreshId=-1,u._frameId=-1,u._refreshRate=1,u._vertexBuffers={},u._uniforms=new Array,u._samplers=new Array,u._floats={},u._ints={},u._floatsArrays={},u._colors3={},u._colors4={},u._vectors2={},u._vectors3={},u._matrices={},u._fallbackTextureUsed=!1,u._cachedDefines=\"\",u._contentUpdateId=-1;var h=(r=u.getScene()||x.a.LastCreatedScene)._getComponent(Me.a.NAME_PROCEDURALTEXTURE);h||(h=new Kc(r),r._addComponent(h)),r.proceduralTextures.push(u),u._fullEngine=r.getEngine(),u.name=t,u.isRenderTarget=!0,u._size=i,u._generateMipMaps=s,u.setFragment(n),u._fallbackTexture=a,c?(u._texture=u._fullEngine.createRenderTargetCubeTexture(i,{generateMipMaps:s,generateDepthBuffer:!1,generateStencilBuffer:!1,type:l}),u.setFloat(\"face\",0)):u._texture=u._fullEngine.createRenderTargetTexture(i,{generateMipMaps:s,generateDepthBuffer:!1,generateStencilBuffer:!1,type:l});var d=[];return d.push(1,1),d.push(-1,1),d.push(-1,-1),d.push(1,-1),u._vertexBuffers[Qi.b.PositionKind]=new Qi.b(u._fullEngine,d,Qi.b.PositionKind,!1,!1,2),u._createIndexBuffer(),u}return Object(h.d)(t,e),t.prototype.getEffect=function(){return this._effect},t.prototype.getContent=function(){return this._contentData&&this._frameId===this._contentUpdateId||(this._contentData=this.readPixels(0,0,this._contentData),this._contentUpdateId=this._frameId),this._contentData},t.prototype._createIndexBuffer=function(){var e=this._fullEngine,t=[];t.push(0),t.push(1),t.push(2),t.push(0),t.push(2),t.push(3),this._indexBuffer=e.createIndexBuffer(t)},t.prototype._rebuild=function(){var e=this._vertexBuffers[Qi.b.PositionKind];e&&e._rebuild(),this._createIndexBuffer(),this.refreshRate===Ni.REFRESHRATE_RENDER_ONCE&&(this.refreshRate=Ni.REFRESHRATE_RENDER_ONCE)},t.prototype.reset=function(){void 0!==this._effect&&this._effect.dispose()},t.prototype._getDefines=function(){return\"\"},t.prototype.isReady=function(){var e,t=this,i=this._fullEngine;if(this.nodeMaterialSource)return this._effect.isReady();if(!this._fragment)return!1;if(this._fallbackTextureUsed)return!0;var n=this._getDefines();return!(!this._effect||n!==this._cachedDefines||!this._effect.isReady())||(e=void 0!==this._fragment.fragmentElement?{vertex:\"procedural\",fragmentElement:this._fragment.fragmentElement}:{vertex:\"procedural\",fragment:this._fragment},this._cachedDefines=n,this._effect=i.createEffect(e,[Qi.b.PositionKind],this._uniforms,this._samplers,n,void 0,void 0,(function(){t.releaseInternalTexture(),t._fallbackTexture&&(t._texture=t._fallbackTexture._texture,t._texture&&t._texture.incrementReferences()),t._fallbackTextureUsed=!0})),this._effect.isReady())},t.prototype.resetRefreshCounter=function(){this._currentRefreshId=-1},t.prototype.setFragment=function(e){this._fragment=e},Object.defineProperty(t.prototype,\"refreshRate\",{get:function(){return this._refreshRate},set:function(e){this._refreshRate=e,this.resetRefreshCounter()},enumerable:!1,configurable:!0}),t.prototype._shouldRender=function(){return this.isEnabled&&this.isReady()&&this._texture?!this._fallbackTextureUsed&&(-1===this._currentRefreshId||this.refreshRate===this._currentRefreshId?(this._currentRefreshId=1,this._frameId++,!0):(this._currentRefreshId++,!1)):(this._texture&&(this._texture.isReady=!1),!1)},t.prototype.getRenderSize=function(){return this._size},t.prototype.resize=function(e,t){this._fallbackTextureUsed||(this.releaseInternalTexture(),this._texture=this._fullEngine.createRenderTargetTexture(e,t),this._size=e,this._generateMipMaps=t)},t.prototype._checkUniform=function(e){-1===this._uniforms.indexOf(e)&&this._uniforms.push(e)},t.prototype.setTexture=function(e,t){return-1===this._samplers.indexOf(e)&&this._samplers.push(e),this._textures[e]=t,this},t.prototype.setFloat=function(e,t){return this._checkUniform(e),this._floats[e]=t,this},t.prototype.setInt=function(e,t){return this._checkUniform(e),this._ints[e]=t,this},t.prototype.setFloats=function(e,t){return this._checkUniform(e),this._floatsArrays[e]=t,this},t.prototype.setColor3=function(e,t){return this._checkUniform(e),this._colors3[e]=t,this},t.prototype.setColor4=function(e,t){return this._checkUniform(e),this._colors4[e]=t,this},t.prototype.setVector2=function(e,t){return this._checkUniform(e),this._vectors2[e]=t,this},t.prototype.setVector3=function(e,t){return this._checkUniform(e),this._vectors3[e]=t,this},t.prototype.setMatrix=function(e,t){return this._checkUniform(e),this._matrices[e]=t,this},t.prototype.render=function(e){var t=this.getScene();if(t){var i=this._fullEngine;if(i.enableEffect(this._effect),this.onBeforeGenerationObservable.notifyObservers(this),i.setState(!1),!this.nodeMaterialSource){for(var n in this._textures)this._effect.setTexture(n,this._textures[n]);for(n in this._ints)this._effect.setInt(n,this._ints[n]);for(n in this._floats)this._effect.setFloat(n,this._floats[n]);for(n in this._floatsArrays)this._effect.setArray(n,this._floatsArrays[n]);for(n in this._colors3)this._effect.setColor3(n,this._colors3[n]);for(n in this._colors4){var r=this._colors4[n];this._effect.setFloat4(n,r.r,r.g,r.b,r.a)}for(n in this._vectors2)this._effect.setVector2(n,this._vectors2[n]);for(n in this._vectors3)this._effect.setVector3(n,this._vectors3[n]);for(n in this._matrices)this._effect.setMatrix(n,this._matrices[n])}if(this._texture){if(this.isCube)for(var o=0;o<6;o++)i.bindFramebuffer(this._texture,o,void 0,void 0,!0),i.bindBuffers(this._vertexBuffers,this._indexBuffer,this._effect),this._effect.setFloat(\"face\",o),this.autoClear&&i.clear(t.clearColor,!0,!1,!1),i.drawElementsType(xo.a.TriangleFillMode,0,6),5===o&&i.generateMipMapsForCubemap(this._texture);else i.bindFramebuffer(this._texture,0,void 0,void 0,!0),i.bindBuffers(this._vertexBuffers,this._indexBuffer,this._effect),this.autoClear&&i.clear(t.clearColor,!0,!1,!1),i.drawElementsType(xo.a.TriangleFillMode,0,6);i.unBindFramebuffer(this._texture,this.isCube),this.onGenerated&&this.onGenerated(),this.onGeneratedObservable.notifyObservers(this)}}},t.prototype.clone=function(){var e=this.getSize(),i=new t(this.name,e.width,this._fragment,this.getScene(),this._fallbackTexture,this._generateMipMaps);return i.hasAlpha=this.hasAlpha,i.level=this.level,i.coordinatesMode=this.coordinatesMode,i},t.prototype.dispose=function(){var t=this.getScene();if(t){var i=t.proceduralTextures.indexOf(this);i>=0&&t.proceduralTextures.splice(i,1);var n=this._vertexBuffers[Qi.b.PositionKind];n&&(n.dispose(),this._vertexBuffers[Qi.b.PositionKind]=null),this._indexBuffer&&this._fullEngine._releaseBuffer(this._indexBuffer)&&(this._indexBuffer=null),this.onGeneratedObservable.clear(),this.onBeforeGenerationObservable.clear(),e.prototype.dispose.call(this)}},Object(h.c)([Object(w.c)()],t.prototype,\"isEnabled\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"autoClear\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"_generateMipMaps\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"_size\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"refreshRate\",null),t}(Ke.a);c.a.RegisteredTypes[\"BABYLON.ProceduralTexture\"]=qc;var Zc=function(e){function t(t,i,n,r,o,a){var s=e.call(this,t,n,null,r,o,a)||this;return s._animate=!0,s._time=0,s._texturePath=i,s._loadJson(i),s.refreshRate=1,s}return Object(h.d)(t,e),t.prototype._loadJson=function(e){var t=this,i=function(){try{t.setFragment(t._texturePath)}catch(e){m.a.Error(\"No json or ShaderStore or DOM element found for CustomProceduralTexture\")}},n=e+\"/config.json\",r=new V.a;r.open(\"GET\",n),r.addEventListener(\"load\",(function(){if(200===r.status||r.responseText&&r.responseText.length>0)try{t._config=JSON.parse(r.response),t.updateShaderUniforms(),t.updateTextures(),t.setFragment(t._texturePath+\"/custom\"),t._animate=t._config.animate,t.refreshRate=t._config.refreshrate}catch(e){i()}else i()}),!1),r.addEventListener(\"error\",(function(){i()}),!1);try{r.send()}catch(e){m.a.Error(\"CustomProceduralTexture: Error on XHR send request.\")}},t.prototype.isReady=function(){if(!e.prototype.isReady.call(this))return!1;for(var t in this._textures){if(!this._textures[t].isReady())return!1}return!0},t.prototype.render=function(t){var i=this.getScene();this._animate&&i&&(this._time+=.03*i.getAnimationRatio(),this.updateShaderUniforms()),e.prototype.render.call(this,t)},t.prototype.updateTextures=function(){for(var e=0;e0},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"isConnectedInVertexShader\",{get:function(){if(this.target===el.Vertex)return!0;if(!this.hasEndpoints)return!1;for(var e=0,t=this._endpoints;e=0)&&(t.isExposedOnFrame=!0,t.exposedPortPosition=this.exposedPortPosition),t},e.prototype.dispose=function(){this.onConnectionObservable.clear()},e}(),dl=i(152),fl=function(){function e(e,t,i,n){void 0===t&&(t=el.Vertex),void 0===i&&(i=!1),void 0===n&&(n=!1),this._isFinalMerger=!1,this._isInput=!1,this._name=\"\",this._isUnique=!1,this.inputsAreExclusive=!1,this._codeVariableName=\"\",this._inputs=new Array,this._outputs=new Array,this.comments=\"\",this.visibleInInspector=!1,this._target=t,this._isFinalMerger=i,this._isInput=n,this._name=e,this.uniqueId=dl.a.UniqueId}return Object.defineProperty(e.prototype,\"name\",{get:function(){return this._name},set:function(e){this.validateBlockName(e)&&(this._name=e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"isUnique\",{get:function(){return this._isUnique},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"isFinalMerger\",{get:function(){return this._isFinalMerger},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"isInput\",{get:function(){return this._isInput},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"buildId\",{get:function(){return this._buildId},set:function(e){this._buildId=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"target\",{get:function(){return this._target},set:function(e){0==(this._target&e)&&(this._target=e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"inputs\",{get:function(){return this._inputs},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"outputs\",{get:function(){return this._outputs},enumerable:!1,configurable:!0}),e.prototype.getInputByName=function(e){var t=this._inputs.filter((function(t){return t.name===e}));return t.length?t[0]:null},e.prototype.getOutputByName=function(e){var t=this._outputs.filter((function(t){return t.name===e}));return t.length?t[0]:null},e.prototype.initialize=function(e){},e.prototype.bind=function(e,t,i,n){},e.prototype._declareOutput=function(e,t){return t._getGLType(e.type)+\" \"+e.associatedVariableName},e.prototype._writeVariable=function(e){return e.connectedPoint?\"\"+e.associatedVariableName:\"0.\"},e.prototype._writeFloat=function(e){var t=e.toString();return-1===t.indexOf(\".\")&&(t+=\".0\"),\"\"+t},e.prototype.getClassName=function(){return\"NodeMaterialBlock\"},e.prototype.registerInput=function(e,t,i,n,r){return void 0===i&&(i=!1),(r=null!=r?r:new hl(e,this,al.Input)).type=t,r.isOptional=i,n&&(r.target=n),this._inputs.push(r),this},e.prototype.registerOutput=function(e,t,i,n){return(n=null!=n?n:new hl(e,this,al.Output)).type=t,i&&(n.target=i),this._outputs.push(n),this},e.prototype.getFirstAvailableInput=function(e){void 0===e&&(e=null);for(var t=0,i=this._inputs;t=this._outputs.length?null:this._outputs[t+1]},e.prototype.connectTo=function(e,t){if(0!==this._outputs.length){for(var i=t&&t.output?this.getOutputByName(t.output):this.getFirstAvailableOutput(e),n=!0;n;){var r=t&&t.input?e.getInputByName(t.input):e.getFirstAvailableInput(i);if(i&&r&&i.canConnectTo(r))i.connectTo(r),n=!1;else{if(!i)throw\"Unable to find a compatible match\";i=this.getSiblingOutput(i)}}return this}},e.prototype._buildBlock=function(e){},e.prototype.updateUniformsAndSamples=function(e,t,i,n){},e.prototype.provideFallbacks=function(e,t){},e.prototype.initializeDefines=function(e,t,i,n){void 0===n&&(n=!1)},e.prototype.prepareDefines=function(e,t,i,n,r){void 0===n&&(n=!1)},e.prototype.autoConfigure=function(e){},e.prototype.replaceRepeatableContent=function(e,t,i,n){},e.prototype.isReady=function(e,t,i,n){return void 0===n&&(n=!1),!0},e.prototype._linkConnectionTypes=function(e,t,i){void 0===i&&(i=!1),i?this._inputs[t]._acceptedConnectionPointType=this._inputs[e]:this._inputs[e]._linkedConnectionSource=this._inputs[t],this._inputs[t]._linkedConnectionSource=this._inputs[e]},e.prototype._processBuild=function(e,t,i,n){e.build(t,n);var r=null!=t._vertexState,o=e._buildTarget===el.Vertex&&e.target!==el.VertexAndFragment;if(r&&(0==(e.target&e._buildTarget)||0==(e.target&i.target)||this.target!==el.VertexAndFragment&&o)&&(!e.isInput&&t.target!==e._buildTarget||e.isInput&&e.isAttribute&&!e._noContextSwitch)){var a=i.connectedPoint;t._vertexState._emitVaryingFromString(\"v_\"+a.associatedVariableName,t._getGLType(a.type))&&(t._vertexState.compilationString+=\"v_\"+a.associatedVariableName+\" = \"+a.associatedVariableName+\";\\r\\n\"),i.associatedVariableName=\"v_\"+a.associatedVariableName,i._enforceAssociatedVariableName=!0}},e.prototype.validateBlockName=function(e){for(var t=0,i=[\"position\",\"normal\",\"tangent\",\"particle_positionw\",\"uv\",\"uv2\",\"position2d\",\"particle_uv\",\"matricesIndices\",\"matricesWeights\",\"world0\",\"world1\",\"world2\",\"world3\",\"particle_color\",\"particle_texturemask\"];t[0..\"+i.repeatKey+\"]\\r\\n\";var n=ai.a.IncludesShadersStore[e]+\"\\r\\n\";if(this.sharedData.emitComments&&(n=t+\"\\r\\n\"+n),!i)return n;if(i.replaceStrings)for(var r=0;r[0..\"+i.repeatKey+\"]\\r\\n\":this.functions[r]=\"#include<\"+e+\">\\r\\n\",void(this.sharedData.emitComments&&(this.functions[r]=t+\"\\r\\n\"+this.functions[r]));if(this.functions[r]=ai.a.IncludesShadersStore[e],this.sharedData.emitComments&&(this.functions[r]=t+\"\\r\\n\"+this.functions[r]),i.removeIfDef&&(this.functions[r]=this.functions[r].replace(/^\\s*?#ifdef.+$/gm,\"\"),this.functions[r]=this.functions[r].replace(/^\\s*?#endif.*$/gm,\"\"),this.functions[r]=this.functions[r].replace(/^\\s*?#else.*$/gm,\"\"),this.functions[r]=this.functions[r].replace(/^\\s*?#elif.*$/gm,\"\")),i.removeAttributes&&(this.functions[r]=this.functions[r].replace(/^\\s*?attribute.+$/gm,\"\")),i.removeUniforms&&(this.functions[r]=this.functions[r].replace(/^\\s*?uniform.+$/gm,\"\")),i.removeVaryings&&(this.functions[r]=this.functions[r].replace(/^\\s*?varying.+$/gm,\"\")),i.replaceStrings)for(var o=0;o0||this._emitRateGradients&&this._emitRateGradients.length>0||this._lifeTimeGradients&&this._lifeTimeGradients.length>0},e.prototype.getDragGradients=function(){return this._dragGradients},e.prototype.getLimitVelocityGradients=function(){return this._limitVelocityGradients},e.prototype.getColorGradients=function(){return this._colorGradients},e.prototype.getSizeGradients=function(){return this._sizeGradients},e.prototype.getColorRemapGradients=function(){return this._colorRemapGradients},e.prototype.getAlphaRemapGradients=function(){return this._alphaRemapGradients},e.prototype.getLifeTimeGradients=function(){return this._lifeTimeGradients},e.prototype.getAngularSpeedGradients=function(){return this._angularSpeedGradients},e.prototype.getVelocityGradients=function(){return this._velocityGradients},e.prototype.getStartSizeGradients=function(){return this._startSizeGradients},e.prototype.getEmitRateGradients=function(){return this._emitRateGradients},Object.defineProperty(e.prototype,\"direction1\",{get:function(){return this.particleEmitterType.direction1?this.particleEmitterType.direction1:a.e.Zero()},set:function(e){this.particleEmitterType.direction1&&(this.particleEmitterType.direction1=e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"direction2\",{get:function(){return this.particleEmitterType.direction2?this.particleEmitterType.direction2:a.e.Zero()},set:function(e){this.particleEmitterType.direction2&&(this.particleEmitterType.direction2=e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"minEmitBox\",{get:function(){return this.particleEmitterType.minEmitBox?this.particleEmitterType.minEmitBox:a.e.Zero()},set:function(e){this.particleEmitterType.minEmitBox&&(this.particleEmitterType.minEmitBox=e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"maxEmitBox\",{get:function(){return this.particleEmitterType.maxEmitBox?this.particleEmitterType.maxEmitBox:a.e.Zero()},set:function(e){this.particleEmitterType.maxEmitBox&&(this.particleEmitterType.maxEmitBox=e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"isBillboardBased\",{get:function(){return this._isBillboardBased},set:function(e){this._isBillboardBased!==e&&(this._isBillboardBased=e,this._reset())},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"imageProcessingConfiguration\",{get:function(){return this._imageProcessingConfiguration},set:function(e){this._attachImageProcessingConfiguration(e)},enumerable:!1,configurable:!0}),e.prototype._attachImageProcessingConfiguration=function(e){e!==this._imageProcessingConfiguration&&(!e&&this._scene?this._imageProcessingConfiguration=this._scene.imageProcessingConfiguration:this._imageProcessingConfiguration=e)},e.prototype._reset=function(){},e.prototype._removeGradientAndTexture=function(e,t,i){if(!t)return this;for(var n=0,r=0,o=t;r-1))return this._optimizers.push(e),this},t.prototype.unregisterOptimizer=function(e){var t=this._optimizers.indexOf(e);if(-1!==t)return this._optimizers.splice(t,1),this},t.prototype.addOutputNode=function(e){if(null===e.target)throw\"This node is not meant to be an output node. You may want to explicitly set its target value.\";return 0!=(e.target&el.Vertex)&&this._addVertexOutputNode(e),0!=(e.target&el.Fragment)&&this._addFragmentOutputNode(e),this},t.prototype.removeOutputNode=function(e){return null===e.target||(0!=(e.target&el.Vertex)&&this._removeVertexOutputNode(e),0!=(e.target&el.Fragment)&&this._removeFragmentOutputNode(e)),this},t.prototype._addVertexOutputNode=function(e){if(-1===this._vertexOutputNodes.indexOf(e))return e.target=el.Vertex,this._vertexOutputNodes.push(e),this},t.prototype._removeVertexOutputNode=function(e){var t=this._vertexOutputNodes.indexOf(e);if(-1!==t)return this._vertexOutputNodes.splice(t,1),this},t.prototype._addFragmentOutputNode=function(e){if(-1===this._fragmentOutputNodes.indexOf(e))return e.target=el.Fragment,this._fragmentOutputNodes.push(e),this},t.prototype._removeFragmentOutputNode=function(e){var t=this._fragmentOutputNodes.indexOf(e);if(-1!==t)return this._fragmentOutputNodes.splice(t,1),this},t.prototype.needAlphaBlending=function(){return!this.ignoreAlpha&&(this.alpha<1||this._sharedData&&this._sharedData.hints.needAlphaBlending)},t.prototype.needAlphaTesting=function(){return this._sharedData&&this._sharedData.hints.needAlphaTesting},t.prototype._initializeBlock=function(e,t,i){if(e.initialize(t),e.autoConfigure(this),e._preparationId=this._buildId,-1===this.attachedBlocks.indexOf(e)){if(e.isUnique)for(var n=e.getClassName(),r=0,o=this.attachedBlocks;r-1&&this.attachedBlocks.splice(t,1),e.isFinalMerger&&this.removeOutputNode(e)},t.prototype.build=function(e){void 0===e&&(e=!1),this._buildWasSuccessful=!1;var i=this.getScene().getEngine(),n=this._mode===rl.Particle;if(0===this._vertexOutputNodes.length&&!n)throw\"You must define at least one vertexOutputNode\";if(0===this._fragmentOutputNodes.length)throw\"You must define at least one fragmentOutputNode\";this._vertexCompilationState=new pl,this._vertexCompilationState.supportUniformBuffers=i.supportsUniformBuffers,this._vertexCompilationState.target=el.Vertex,this._fragmentCompilationState=new pl,this._fragmentCompilationState.supportUniformBuffers=i.supportsUniformBuffers,this._fragmentCompilationState.target=el.Fragment,this._sharedData=new _l,this._vertexCompilationState.sharedData=this._sharedData,this._fragmentCompilationState.sharedData=this._sharedData,this._sharedData.buildId=this._buildId,this._sharedData.emitComments=this._options.emitComments,this._sharedData.verbose=e,this._sharedData.scene=this.getScene(),this._sharedData.allowEmptyVertexProgram=n;for(var r=[],o=[],a=0,s=this._vertexOutputNodes;a0\\r\\n\",t.compilationString+=this._declareOutput(r,t)+\" = \"+o.associatedVariableName+\" * \"+n+\";\\r\\n\",t.compilationString+=\"#else\\r\\n\",t.compilationString+=this._declareOutput(r,t)+\" = \"+o.associatedVariableName+\";\\r\\n\",t.compilationString+=\"#endif\\r\\n\",this},t}(fl);c.a.RegisteredTypes[\"BABYLON.BonesBlock\"]=Zl;var Jl=function(e){function t(t){var i=e.call(this,t,el.Vertex)||this;return i.registerInput(\"world0\",tl.Vector4),i.registerInput(\"world1\",tl.Vector4),i.registerInput(\"world2\",tl.Vector4),i.registerInput(\"world3\",tl.Vector4),i.registerInput(\"world\",tl.Matrix,!0),i.registerOutput(\"output\",tl.Matrix),i.registerOutput(\"instanceID\",tl.Float),i}return Object(h.d)(t,e),t.prototype.getClassName=function(){return\"InstancesBlock\"},Object.defineProperty(t.prototype,\"world0\",{get:function(){return this._inputs[0]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"world1\",{get:function(){return this._inputs[1]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"world2\",{get:function(){return this._inputs[2]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"world3\",{get:function(){return this._inputs[3]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"world\",{get:function(){return this._inputs[4]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"output\",{get:function(){return this._outputs[0]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"instanceID\",{get:function(){return this._outputs[1]},enumerable:!1,configurable:!0}),t.prototype.autoConfigure=function(e){if(!this.world0.connectedPoint){var t=e.getInputBlockByPredicate((function(e){return e.isAttribute&&\"world0\"===e.name}));t||(t=new Sl(\"world0\")).setAsAttribute(\"world0\"),t.output.connectTo(this.world0)}if(!this.world1.connectedPoint){var i=e.getInputBlockByPredicate((function(e){return e.isAttribute&&\"world1\"===e.name}));i||(i=new Sl(\"world1\")).setAsAttribute(\"world1\"),i.output.connectTo(this.world1)}if(!this.world2.connectedPoint){var n=e.getInputBlockByPredicate((function(e){return e.isAttribute&&\"world2\"===e.name}));n||(n=new Sl(\"world2\")).setAsAttribute(\"world2\"),n.output.connectTo(this.world2)}if(!this.world3.connectedPoint){var r=e.getInputBlockByPredicate((function(e){return e.isAttribute&&\"world3\"===e.name}));r||(r=new Sl(\"world3\")).setAsAttribute(\"world3\"),r.output.connectTo(this.world3)}if(!this.world.connectedPoint){var o=e.getInputBlockByPredicate((function(e){return e.isAttribute&&\"world\"===e.name}));o||(o=new Sl(\"world\")).setAsSystemValue(nl.World),o.output.connectTo(this.world)}this.world.define=\"!INSTANCES || THIN_INSTANCES\"},t.prototype.prepareDefines=function(e,t,i,n,r){void 0===n&&(n=!1);var o=!1;i.INSTANCES!==n&&(i.setValue(\"INSTANCES\",n),o=!0),r&&i.THIN_INSTANCES!==!!(null==r?void 0:r.getRenderingMesh().hasThinInstances)&&(i.setValue(\"THIN_INSTANCES\",!!(null==r?void 0:r.getRenderingMesh().hasThinInstances)),o=!0),o&&i.markAsUnprocessed()},t.prototype._buildBlock=function(t){e.prototype._buildBlock.call(this,t),t.sharedData.blocksWithDefines.push(this);var i=this._outputs[0],n=this._outputs[1],r=this.world0,o=this.world1,a=this.world2,s=this.world3;return t.compilationString+=\"#ifdef INSTANCES\\r\\n\",t.compilationString+=this._declareOutput(i,t)+\" = mat4(\"+r.associatedVariableName+\", \"+o.associatedVariableName+\", \"+a.associatedVariableName+\", \"+s.associatedVariableName+\");\\r\\n\",t.compilationString+=\"#ifdef THIN_INSTANCES\\r\\n\",t.compilationString+=i.associatedVariableName+\" = \"+this.world.associatedVariableName+\" * \"+i.associatedVariableName+\";\\r\\n\",t.compilationString+=\"#endif\\r\\n\",t.compilationString+=this._declareOutput(n,t)+\" = float(gl_InstanceID);\\r\\n\",t.compilationString+=\"#else\\r\\n\",t.compilationString+=this._declareOutput(i,t)+\" = \"+this.world.associatedVariableName+\";\\r\\n\",t.compilationString+=this._declareOutput(n,t)+\" = 0.0;\\r\\n\",t.compilationString+=\"#endif\\r\\n\",this},t}(fl);c.a.RegisteredTypes[\"BABYLON.InstancesBlock\"]=Jl;var $l=function(e){function t(t){var i=e.call(this,t,el.Vertex)||this;return i.registerInput(\"position\",tl.Vector3),i.registerInput(\"normal\",tl.Vector3),i.registerInput(\"tangent\",tl.Vector3),i.registerInput(\"uv\",tl.Vector2),i.registerOutput(\"positionOutput\",tl.Vector3),i.registerOutput(\"normalOutput\",tl.Vector3),i.registerOutput(\"tangentOutput\",tl.Vector3),i.registerOutput(\"uvOutput\",tl.Vector2),i}return Object(h.d)(t,e),t.prototype.getClassName=function(){return\"MorphTargetsBlock\"},Object.defineProperty(t.prototype,\"position\",{get:function(){return this._inputs[0]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"normal\",{get:function(){return this._inputs[1]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"tangent\",{get:function(){return this._inputs[2]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"uv\",{get:function(){return this._inputs[3]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"positionOutput\",{get:function(){return this._outputs[0]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"normalOutput\",{get:function(){return this._outputs[1]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"tangentOutput\",{get:function(){return this._outputs[2]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"uvOutput\",{get:function(){return this._outputs[3]},enumerable:!1,configurable:!0}),t.prototype.initialize=function(e){e._excludeVariableName(\"morphTargetInfluences\")},t.prototype.autoConfigure=function(e){if(!this.position.isConnected){var t=e.getInputBlockByPredicate((function(e){return e.isAttribute&&\"position\"===e.name}));t||(t=new Sl(\"position\")).setAsAttribute(),t.output.connectTo(this.position)}if(!this.normal.isConnected){var i=e.getInputBlockByPredicate((function(e){return e.isAttribute&&\"normal\"===e.name}));i||(i=new Sl(\"normal\")).setAsAttribute(\"normal\"),i.output.connectTo(this.normal)}if(!this.tangent.isConnected){var n=e.getInputBlockByPredicate((function(e){return e.isAttribute&&\"tangent\"===e.name}));n||(n=new Sl(\"tangent\")).setAsAttribute(\"tangent\"),n.output.connectTo(this.tangent)}if(!this.uv.isConnected){var r=e.getInputBlockByPredicate((function(e){return e.isAttribute&&\"uv\"===e.name}));r||(r=new Sl(\"uv\")).setAsAttribute(\"uv\"),r.output.connectTo(this.uv)}},t.prototype.prepareDefines=function(e,t,i){i._areAttributesDirty&&ro.a.PrepareDefinesForMorphTargets(e,i)},t.prototype.bind=function(e,t,i){i&&i.morphTargetManager&&i.morphTargetManager.numInfluencers>0&&ro.a.BindMorphTargetParameters(i,e)},t.prototype.replaceRepeatableContent=function(e,t,i,n){for(var r=this.position,o=this.normal,a=this.tangent,s=this.uv,c=this.positionOutput,l=this.normalOutput,u=this.tangentOutput,h=this.uvOutput,d=e,f=n.NUM_MORPH_INFLUENCERS,p=i.morphTargetManager,_=p&&p.supportsNormals&&n.NORMAL,m=p&&p.supportsTangents&&n.TANGENT,g=p&&p.supportsUVs&&n.UV1,v=\"\",b=0;b0)for(b=0;b=0;ro.a.PrepareUniformsAndSamplersForLight(r,e.uniforms,e.samplers,i[\"PROJECTEDLIGHTTEXTURE\"+r],n,o)}},t.prototype.bind=function(e,t,i){if(i){var n=i.getScene();this.light?ro.a.BindLight(this.light,this._lightId,n,e,!0):ro.a.BindLights(n,i,e,!0,t.maxSimultaneousLights)}},t.prototype._injectVertexCode=function(e){var t=this.worldPosition,i=\"//\"+this.name;this.light?(this._lightId=(void 0!==e.counters.lightCounter?e.counters.lightCounter:-1)+1,e.counters.lightCounter=this._lightId,e._emitFunctionFromInclude(e.supportUniformBuffers?\"lightUboDeclaration\":\"lightFragmentDeclaration\",i,{replaceStrings:[{search:/{X}/g,replace:this._lightId.toString()}]},this._lightId.toString())):(e._emitFunctionFromInclude(e.supportUniformBuffers?\"lightUboDeclaration\":\"lightFragmentDeclaration\",i,{repeatKey:\"maxSimultaneousLights\"}),this._lightId=0,e.sharedData.dynamicUniformBlocks.push(this));var n=\"v_\"+t.associatedVariableName;e._emitVaryingFromString(n,\"vec4\")&&(e.compilationString+=n+\" = \"+t.associatedVariableName+\";\\r\\n\"),this.light?e.compilationString+=e._emitCodeFromInclude(\"shadowsVertex\",i,{replaceStrings:[{search:/{X}/g,replace:this._lightId.toString()},{search:/worldPos/g,replace:t.associatedVariableName}]}):(e.compilationString+=\"vec4 worldPos = \"+t.associatedVariableName+\";\\r\\n\",this.view.isConnected&&(e.compilationString+=\"mat4 view = \"+this.view.associatedVariableName+\";\\r\\n\"),e.compilationString+=e._emitCodeFromInclude(\"shadowsVertex\",i,{repeatKey:\"maxSimultaneousLights\"}))},t.prototype._buildBlock=function(t){if(e.prototype._buildBlock.call(this,t),t.target===el.Fragment){t.sharedData.bindableBlocks.push(this),t.sharedData.blocksWithDefines.push(this);var i=\"//\"+this.name,n=this.worldPosition;t._emitFunctionFromInclude(\"helperFunctions\",i),t._emitFunctionFromInclude(\"lightsFragmentFunctions\",i,{replaceStrings:[{search:/vPositionW/g,replace:\"v_\"+n.associatedVariableName+\".xyz\"}]}),t._emitFunctionFromInclude(\"shadowsFragmentFunctions\",i,{replaceStrings:[{search:/vPositionW/g,replace:\"v_\"+n.associatedVariableName+\".xyz\"}]}),this.light?t._emitFunctionFromInclude(t.supportUniformBuffers?\"lightUboDeclaration\":\"lightFragmentDeclaration\",i,{replaceStrings:[{search:/{X}/g,replace:this._lightId.toString()}]},this._lightId.toString()):t._emitFunctionFromInclude(t.supportUniformBuffers?\"lightUboDeclaration\":\"lightFragmentDeclaration\",i,{repeatKey:\"maxSimultaneousLights\"}),0===this._lightId&&(t._registerTempVariable(\"viewDirectionW\")&&(t.compilationString+=\"vec3 viewDirectionW = normalize(\"+this.cameraPosition.associatedVariableName+\" - v_\"+n.associatedVariableName+\".xyz);\\r\\n\"),t.compilationString+=\"lightingInfo info;\\r\\n\",t.compilationString+=\"float shadow = 1.;\\r\\n\",t.compilationString+=\"float glossiness = \"+(this.glossiness.isConnected?this.glossiness.associatedVariableName:\"1.0\")+\" * \"+(this.glossPower.isConnected?this.glossPower.associatedVariableName:\"1024.0\")+\";\\r\\n\",t.compilationString+=\"vec3 diffuseBase = vec3(0., 0., 0.);\\r\\n\",t.compilationString+=\"vec3 specularBase = vec3(0., 0., 0.);\\r\\n\",t.compilationString+=\"vec3 normalW = \"+this.worldNormal.associatedVariableName+\".xyz;\\r\\n\"),this.light?t.compilationString+=t._emitCodeFromInclude(\"lightFragment\",i,{replaceStrings:[{search:/{X}/g,replace:this._lightId.toString()}]}):t.compilationString+=t._emitCodeFromInclude(\"lightFragment\",i,{repeatKey:\"maxSimultaneousLights\"});var r=this.diffuseOutput,o=this.specularOutput;return t.compilationString+=this._declareOutput(r,t)+\" = diffuseBase\"+(this.diffuseColor.isConnected?\" * \"+this.diffuseColor.associatedVariableName:\"\")+\";\\r\\n\",o.hasEndpoints&&(t.compilationString+=this._declareOutput(o,t)+\" = specularBase\"+(this.specularColor.isConnected?\" * \"+this.specularColor.associatedVariableName:\"\")+\";\\r\\n\"),this.shadow.hasEndpoints&&(t.compilationString+=this._declareOutput(this.shadow,t)+\" = shadow;\\r\\n\"),this}this._injectVertexCode(t)},t.prototype.serialize=function(){var t=e.prototype.serialize.call(this);return this.light&&(t.lightId=this.light.id),t},t.prototype._deserialize=function(t,i,n){e.prototype._deserialize.call(this,t,i,n),t.lightId&&(this.light=i.getLightByID(t.lightId))},t}(fl);c.a.RegisteredTypes[\"BABYLON.LightBlock\"]=lu;var uu=function(e){function t(t,i){void 0===i&&(i=!1);var n=e.call(this,t,i?el.Fragment:el.VertexAndFragment)||this;return n.convertToGammaSpace=!1,n.convertToLinearSpace=!1,n._fragmentOnly=i,n.registerInput(\"uv\",tl.Vector2,!1,el.VertexAndFragment),n.registerOutput(\"rgba\",tl.Color4,el.Neutral),n.registerOutput(\"rgb\",tl.Color3,el.Neutral),n.registerOutput(\"r\",tl.Float,el.Neutral),n.registerOutput(\"g\",tl.Float,el.Neutral),n.registerOutput(\"b\",tl.Float,el.Neutral),n.registerOutput(\"a\",tl.Float,el.Neutral),n._inputs[0].acceptedConnectionPointTypes.push(tl.Vector3),n._inputs[0].acceptedConnectionPointTypes.push(tl.Vector4),n._inputs[0]._prioritizeVertex=!i,n}return Object(h.d)(t,e),t.prototype.getClassName=function(){return\"TextureBlock\"},Object.defineProperty(t.prototype,\"uv\",{get:function(){return this._inputs[0]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"rgba\",{get:function(){return this._outputs[0]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"rgb\",{get:function(){return this._outputs[1]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"r\",{get:function(){return this._outputs[2]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"g\",{get:function(){return this._outputs[3]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"b\",{get:function(){return this._outputs[4]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"a\",{get:function(){return this._outputs[5]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"target\",{get:function(){if(this._fragmentOnly)return el.Fragment;if(!this.uv.isConnected)return el.VertexAndFragment;if(this.uv.sourceBlock.isInput)return el.VertexAndFragment;for(var e=this.uv.connectedPoint;e;){if(e.target===el.Fragment)return el.Fragment;if(e.target===el.Vertex)return el.VertexAndFragment;if(e.target===el.Neutral||e.target===el.VertexAndFragment){var t=e.ownerBlock;e=null;for(var i=0,n=t.inputs;i1?i.setValue(\"NUM_SAMPLES\",this.realTimeFilteringQuality+\"u\",!0):i.setValue(\"NUM_SAMPLES\",\"\"+this.realTimeFilteringQuality,!0),i.setValue(\"BRDF_V_HEIGHT_CORRELATED\",!0),i.setValue(\"MS_BRDF_ENERGY_CONSERVATION\",this.useEnergyConservation,!0),i.setValue(\"RADIANCEOCCLUSION\",this.useRadianceOcclusion,!0),i.setValue(\"HORIZONOCCLUSION\",this.useHorizonOcclusion,!0),i.setValue(\"UNLIT\",this.unlit,!0),i.setValue(\"FORCENORMALFORWARD\",this.forceNormalForward,!0),this._environmentBRDFTexture&&so.a.ReflectionTextureEnabled?(i.setValue(\"ENVIRONMENTBRDF\",!0),i.setValue(\"ENVIRONMENTBRDF_RGBD\",this._environmentBRDFTexture.isRGBD,!0)):(i.setValue(\"ENVIRONMENTBRDF\",!1),i.setValue(\"ENVIRONMENTBRDF_RGBD\",!1)),i._areLightsDirty){var r=e.getScene();if(this.light){var o={needNormals:!1,needRebuild:!1,lightmapMode:!1,shadowEnabled:!1,specularEnabled:!1};ro.a.PrepareDefinesForLight(r,e,this.light,this._lightId,i,!0,o),o.needRebuild&&i.rebuild()}else ro.a.PrepareDefinesForLights(r,e,i,!0,t.maxSimultaneousLights),i._needNormals=!0,ro.a.PrepareDefinesForMultiview(r,i)}},t.prototype.updateUniformsAndSamples=function(e,t,i,n){for(var r=0;r=0;ro.a.PrepareUniformsAndSamplersForLight(r,e.uniforms,e.samplers,i[\"PROJECTEDLIGHTTEXTURE\"+r],n,o)}},t.prototype.bind=function(e,t,i){var n,r;if(i){var o=i.getScene();this.light?ro.a.BindLight(this.light,this._lightId,o,e,!0):ro.a.BindLights(o,i,e,!0,t.maxSimultaneousLights),e.setTexture(this._environmentBrdfSamplerName,this._environmentBRDFTexture),e.setFloat2(\"vDebugMode\",this.debugLimit,this.debugFactor);var a=this._scene.ambientColor;a&&e.setColor3(\"ambientFromScene\",a);var c=o.useRightHandedSystem===(null!=o._mirroredCameraPosition);e.setFloat(this._invertNormalName,c?-1:1),e.setFloat4(\"vLightingIntensity\",this.directIntensity,1,this.environmentIntensity*this._scene.environmentIntensity,this.specularIntensity);var l=null!==(r=null===(n=this.indexOfRefraction.connectInputBlock)||void 0===n?void 0:n.value)&&void 0!==r?r:1.5,u=Math.pow((l-1)/(l+1),2);this._metallicReflectanceColor.scaleToRef(u*this._metallicF0Factor,s.c.Color3[0]);var h=this._metallicF0Factor;e.setColor4(this._vMetallicReflectanceFactorsName,s.c.Color3[0],h)}},t.prototype._injectVertexCode=function(e){var t,i,n=this.worldPosition,r=\"//\"+this.name;this.light?(this._lightId=(void 0!==e.counters.lightCounter?e.counters.lightCounter:-1)+1,e.counters.lightCounter=this._lightId,e._emitFunctionFromInclude(e.supportUniformBuffers?\"lightUboDeclaration\":\"lightFragmentDeclaration\",r,{replaceStrings:[{search:/{X}/g,replace:this._lightId.toString()}]},this._lightId.toString())):(e._emitFunctionFromInclude(e.supportUniformBuffers?\"lightUboDeclaration\":\"lightFragmentDeclaration\",r,{repeatKey:\"maxSimultaneousLights\"}),this._lightId=0,e.sharedData.dynamicUniformBlocks.push(this));var o=\"v_\"+n.associatedVariableName;e._emitVaryingFromString(o,\"vec4\")&&(e.compilationString+=o+\" = \"+n.associatedVariableName+\";\\r\\n\");var a=this.reflection.isConnected?null===(t=this.reflection.connectedPoint)||void 0===t?void 0:t.ownerBlock:null;a&&(a.viewConnectionPoint=this.view),e.compilationString+=null!==(i=null==a?void 0:a.handleVertexSide(e))&&void 0!==i?i:\"\",e._emitUniformFromString(\"vDebugMode\",\"vec2\",\"defined(IGNORE) || DEBUGMODE > 0\"),e._emitUniformFromString(\"ambientFromScene\",\"vec3\"),e._emitVaryingFromString(\"vClipSpacePosition\",\"vec4\",\"defined(IGNORE) || DEBUGMODE > 0\")&&(e._injectAtEnd+=\"#if DEBUGMODE > 0\\r\\n\",e._injectAtEnd+=\"vClipSpacePosition = gl_Position;\\r\\n\",e._injectAtEnd+=\"#endif\\r\\n\"),this.light?e.compilationString+=e._emitCodeFromInclude(\"shadowsVertex\",r,{replaceStrings:[{search:/{X}/g,replace:this._lightId.toString()},{search:/worldPos/g,replace:n.associatedVariableName}]}):(e.compilationString+=\"vec4 worldPos = \"+n.associatedVariableName+\";\\r\\n\",this.view.isConnected&&(e.compilationString+=\"mat4 view = \"+this.view.associatedVariableName+\";\\r\\n\"),e.compilationString+=e._emitCodeFromInclude(\"shadowsVertex\",r,{repeatKey:\"maxSimultaneousLights\"}))},t.prototype._getAlbedoOpacityCode=function(){var e=\"albedoOpacityOutParams albedoOpacityOut;\\r\\n\";return e+=\"albedoOpacityBlock(\\n vec4(\"+(this.baseColor.isConnected?this.baseColor.associatedVariableName:\"vec3(1.)\")+\", 1.),\\n #ifdef ALBEDO\\n vec4(1.),\\n vec2(1., 1.),\\n #endif\\n #ifdef OPACITY\\n vec4(\"+(this.opacity.isConnected?this.opacity.associatedVariableName:\"1.\")+\"),\\n vec2(1., 1.),\\n #endif\\n albedoOpacityOut\\n );\\n\\n vec3 surfaceAlbedo = albedoOpacityOut.surfaceAlbedo;\\n float alpha = albedoOpacityOut.alpha;\\r\\n\"},t.prototype._getAmbientOcclusionCode=function(){var e=\"ambientOcclusionOutParams aoOut;\\r\\n\";return e+=\"ambientOcclusionBlock(\\n #ifdef AMBIENT\\n vec3(\"+(this.ambientOcc.isConnected?this.ambientOcc.associatedVariableName:\"1.\")+\"),\\n vec4(0., 1.0, 1.0, 0.),\\n #endif\\n aoOut\\n );\\r\\n\"},t.prototype._getReflectivityCode=function(e){var t=\"reflectivityOutParams reflectivityOut;\\r\\n\";return this._vMetallicReflectanceFactorsName=e._getFreeVariableName(\"vMetallicReflectanceFactors\"),e._emitUniformFromString(this._vMetallicReflectanceFactorsName,\"vec4\"),t+=\"vec3 baseColor = surfaceAlbedo;\\n\\n reflectivityBlock(\\n vec4(\"+this.metallic.associatedVariableName+\", \"+this.roughness.associatedVariableName+\", 0., 0.),\\n #ifdef METALLICWORKFLOW\\n surfaceAlbedo,\\n \"+this._vMetallicReflectanceFactorsName+\",\\n #endif\\n #ifdef REFLECTIVITY\\n vec3(0., 0., 1.),\\n vec4(1.),\\n #endif\\n #if defined(METALLICWORKFLOW) && defined(REFLECTIVITY) && defined(AOSTOREINMETALMAPRED)\\n aoOut.ambientOcclusionColor,\\n #endif\\n #ifdef MICROSURFACEMAP\\n microSurfaceTexel, <== not handled!\\n #endif\\n reflectivityOut\\n );\\n\\n float microSurface = reflectivityOut.microSurface;\\n float roughness = reflectivityOut.roughness;\\n\\n #ifdef METALLICWORKFLOW\\n surfaceAlbedo = reflectivityOut.surfaceAlbedo;\\n #endif\\n #if defined(METALLICWORKFLOW) && defined(REFLECTIVITY) && defined(AOSTOREINMETALMAPRED)\\n aoOut.ambientOcclusionColor = reflectivityOut.ambientOcclusionColor;\\n #endif\\r\\n\"},t.prototype._buildBlock=function(t){var i,n,r,o,a,s,c,l,u,h,d,f,p,_,m,g,v,b,y,T,E,S,A,P,C,R,x,O,M,I,D,N,L,w,F,B,U,V,k;e.prototype._buildBlock.call(this,t),this._scene=t.sharedData.scene,this._environmentBRDFTexture||(this._environmentBRDFTexture=To.GetEnvironmentBRDFTexture(this._scene));var z=this.reflection.isConnected?null===(i=this.reflection.connectedPoint)||void 0===i?void 0:i.ownerBlock:null;if(z&&(z.worldPositionConnectionPoint=this.worldPosition,z.cameraPositionConnectionPoint=this.cameraPosition,z.worldNormalConnectionPoint=this.worldNormal),t.target!==el.Fragment)return this._injectVertexCode(t),this;t.sharedData.bindableBlocks.push(this),t.sharedData.blocksWithDefines.push(this);var G=\"//\"+this.name,j=\"v_\"+this.worldPosition.associatedVariableName,W=this.perturbedNormal;this._environmentBrdfSamplerName=t._getFreeVariableName(\"environmentBrdfSampler\"),t._emit2DSampler(this._environmentBrdfSamplerName),t.sharedData.hints.needAlphaBlending=t.sharedData.hints.needAlphaBlending||this.useAlphaBlending,t.sharedData.hints.needAlphaTesting=t.sharedData.hints.needAlphaTesting||this.useAlphaTest,t._emitExtension(\"lod\",\"#extension GL_EXT_shader_texture_lod : enable\",\"defined(LODBASEDMICROSFURACE)\"),t._emitExtension(\"derivatives\",\"#extension GL_OES_standard_derivatives : enable\"),this.light?t._emitFunctionFromInclude(t.supportUniformBuffers?\"lightUboDeclaration\":\"lightFragmentDeclaration\",G,{replaceStrings:[{search:/{X}/g,replace:this._lightId.toString()}]},this._lightId.toString()):t._emitFunctionFromInclude(t.supportUniformBuffers?\"lightUboDeclaration\":\"lightFragmentDeclaration\",G,{repeatKey:\"maxSimultaneousLights\"}),t._emitFunctionFromInclude(\"helperFunctions\",G),t._emitFunctionFromInclude(\"importanceSampling\",G),t._emitFunctionFromInclude(\"pbrHelperFunctions\",G),t._emitFunctionFromInclude(\"imageProcessingFunctions\",G),t._emitFunctionFromInclude(\"shadowsFragmentFunctions\",G,{replaceStrings:[{search:/vPositionW/g,replace:j+\".xyz\"}]}),t._emitFunctionFromInclude(\"pbrDirectLightingSetupFunctions\",G,{replaceStrings:[{search:/vPositionW/g,replace:j+\".xyz\"}]}),t._emitFunctionFromInclude(\"pbrDirectLightingFalloffFunctions\",G),t._emitFunctionFromInclude(\"pbrBRDFFunctions\",G,{replaceStrings:[{search:/REFLECTIONMAP_SKYBOX/g,replace:null!==(n=null==z?void 0:z._defineSkyboxName)&&void 0!==n?n:\"REFLECTIONMAP_SKYBOX\"}]}),t._emitFunctionFromInclude(\"hdrFilteringFunctions\",G),t._emitFunctionFromInclude(\"pbrDirectLightingFunctions\",G,{replaceStrings:[{search:/vPositionW/g,replace:j+\".xyz\"}]}),t._emitFunctionFromInclude(\"pbrIBLFunctions\",G),t._emitFunctionFromInclude(\"pbrBlockAlbedoOpacity\",G),t._emitFunctionFromInclude(\"pbrBlockReflectivity\",G),t._emitFunctionFromInclude(\"pbrBlockAmbientOcclusion\",G),t._emitFunctionFromInclude(\"pbrBlockAlphaFresnel\",G),t._emitFunctionFromInclude(\"pbrBlockAnisotropic\",G),t._emitUniformFromString(\"vLightingIntensity\",\"vec4\"),this._vNormalWName=t._getFreeVariableName(\"vNormalW\"),t.compilationString+=\"vec4 \"+this._vNormalWName+\" = normalize(\"+this.worldNormal.associatedVariableName+\");\\r\\n\",t._registerTempVariable(\"viewDirectionW\")&&(t.compilationString+=\"vec3 viewDirectionW = normalize(\"+this.cameraPosition.associatedVariableName+\" - \"+j+\".xyz);\\r\\n\"),t.compilationString+=\"vec3 geometricNormalW = \"+this._vNormalWName+\".xyz;\\r\\n\",t.compilationString+=\"vec3 normalW = \"+(W.isConnected?\"normalize(\"+W.associatedVariableName+\".xyz)\":\"geometricNormalW\")+\";\\r\\n\",this._invertNormalName=t._getFreeVariableName(\"invertNormal\"),t._emitUniformFromString(this._invertNormalName,\"float\"),t.compilationString+=t._emitCodeFromInclude(\"pbrBlockNormalFinal\",G,{replaceStrings:[{search:/vPositionW/g,replace:j+\".xyz\"},{search:/vEyePosition.w/g,replace:this._invertNormalName}]}),t.compilationString+=this._getAlbedoOpacityCode(),t.compilationString+=t._emitCodeFromInclude(\"depthPrePass\",G),t.compilationString+=this._getAmbientOcclusionCode(),t.compilationString+=t._emitCodeFromInclude(\"pbrBlockLightmapInit\",G),t.compilationString+=\"#ifdef UNLIT\\n vec3 diffuseBase = vec3(1., 1., 1.);\\n #else\\r\\n\",t.compilationString+=this._getReflectivityCode(t),t.compilationString+=t._emitCodeFromInclude(\"pbrBlockGeometryInfo\",G,{replaceStrings:[{search:/REFLECTIONMAP_SKYBOX/g,replace:null!==(r=null==z?void 0:z._defineSkyboxName)&&void 0!==r?r:\"REFLECTIONMAP_SKYBOX\"},{search:/REFLECTIONMAP_3D/g,replace:null!==(o=null==z?void 0:z._define3DName)&&void 0!==o?o:\"REFLECTIONMAP_3D\"}]});var H=this.anisotropy.isConnected?null===(a=this.anisotropy.connectedPoint)||void 0===a?void 0:a.ownerBlock:null;H&&(H.worldPositionConnectionPoint=this.worldPosition,H.worldNormalConnectionPoint=this.worldNormal,t.compilationString+=H.getCode(t,!this.perturbedNormal.isConnected)),z&&z.hasTexture&&(t.compilationString+=z.getCode(t,H?\"anisotropicOut.anisotropicNormal\":\"normalW\")),t._emitFunctionFromInclude(\"pbrBlockReflection\",G,{replaceStrings:[{search:/computeReflectionCoords/g,replace:\"computeReflectionCoordsPBR\"},{search:/REFLECTIONMAP_3D/g,replace:null!==(s=null==z?void 0:z._define3DName)&&void 0!==s?s:\"REFLECTIONMAP_3D\"},{search:/REFLECTIONMAP_OPPOSITEZ/g,replace:null!==(c=null==z?void 0:z._defineOppositeZ)&&void 0!==c?c:\"REFLECTIONMAP_OPPOSITEZ\"},{search:/REFLECTIONMAP_PROJECTION/g,replace:null!==(l=null==z?void 0:z._defineProjectionName)&&void 0!==l?l:\"REFLECTIONMAP_PROJECTION\"},{search:/REFLECTIONMAP_SKYBOX/g,replace:null!==(u=null==z?void 0:z._defineSkyboxName)&&void 0!==u?u:\"REFLECTIONMAP_SKYBOX\"},{search:/LODINREFLECTIONALPHA/g,replace:null!==(h=null==z?void 0:z._defineLODReflectionAlpha)&&void 0!==h?h:\"LODINREFLECTIONALPHA\"},{search:/LINEARSPECULARREFLECTION/g,replace:null!==(d=null==z?void 0:z._defineLinearSpecularReflection)&&void 0!==d?d:\"LINEARSPECULARREFLECTION\"},{search:/vReflectionFilteringInfo/g,replace:null!==(f=null==z?void 0:z._vReflectionFilteringInfoName)&&void 0!==f?f:\"vReflectionFilteringInfo\"}]}),t.compilationString+=t._emitCodeFromInclude(\"pbrBlockReflectance0\",G,{replaceStrings:[{search:/metallicReflectanceFactors/g,replace:this._vMetallicReflectanceFactorsName}]});var X=this.sheen.isConnected?null===(p=this.sheen.connectedPoint)||void 0===p?void 0:p.ownerBlock:null;X&&(t.compilationString+=X.getCode(z)),t._emitFunctionFromInclude(\"pbrBlockSheen\",G,{replaceStrings:[{search:/REFLECTIONMAP_3D/g,replace:null!==(_=null==z?void 0:z._define3DName)&&void 0!==_?_:\"REFLECTIONMAP_3D\"},{search:/REFLECTIONMAP_SKYBOX/g,replace:null!==(m=null==z?void 0:z._defineSkyboxName)&&void 0!==m?m:\"REFLECTIONMAP_SKYBOX\"},{search:/LODINREFLECTIONALPHA/g,replace:null!==(g=null==z?void 0:z._defineLODReflectionAlpha)&&void 0!==g?g:\"LODINREFLECTIONALPHA\"},{search:/LINEARSPECULARREFLECTION/g,replace:null!==(v=null==z?void 0:z._defineLinearSpecularReflection)&&void 0!==v?v:\"LINEARSPECULARREFLECTION\"}]});var Y=this.clearcoat.isConnected?null===(b=this.clearcoat.connectedPoint)||void 0===b?void 0:b.ownerBlock:null,K=!this.perturbedNormal.isConnected&&!this.anisotropy.isConnected,Q=this.perturbedNormal.isConnected&&(null===(y=this.perturbedNormal.connectedPoint)||void 0===y?void 0:y.ownerBlock).worldTangent.isConnected,q=this.anisotropy.isConnected&&(null===(T=this.anisotropy.connectedPoint)||void 0===T?void 0:T.ownerBlock).worldTangent.isConnected,Z=Q||!this.perturbedNormal.isConnected&&q;t.compilationString+=ih.GetCode(t,Y,z,j,K,Z,this.worldNormal.associatedVariableName),K&&(Z=null!==(E=null==Y?void 0:Y.worldTangent.isConnected)&&void 0!==E&&E),t._emitFunctionFromInclude(\"pbrBlockClearcoat\",G,{replaceStrings:[{search:/computeReflectionCoords/g,replace:\"computeReflectionCoordsPBR\"},{search:/REFLECTIONMAP_3D/g,replace:null!==(S=null==z?void 0:z._define3DName)&&void 0!==S?S:\"REFLECTIONMAP_3D\"},{search:/REFLECTIONMAP_OPPOSITEZ/g,replace:null!==(A=null==z?void 0:z._defineOppositeZ)&&void 0!==A?A:\"REFLECTIONMAP_OPPOSITEZ\"},{search:/REFLECTIONMAP_PROJECTION/g,replace:null!==(P=null==z?void 0:z._defineProjectionName)&&void 0!==P?P:\"REFLECTIONMAP_PROJECTION\"},{search:/REFLECTIONMAP_SKYBOX/g,replace:null!==(C=null==z?void 0:z._defineSkyboxName)&&void 0!==C?C:\"REFLECTIONMAP_SKYBOX\"},{search:/LODINREFLECTIONALPHA/g,replace:null!==(R=null==z?void 0:z._defineLODReflectionAlpha)&&void 0!==R?R:\"LODINREFLECTIONALPHA\"},{search:/LINEARSPECULARREFLECTION/g,replace:null!==(x=null==z?void 0:z._defineLinearSpecularReflection)&&void 0!==x?x:\"LINEARSPECULARREFLECTION\"},{search:/defined\\(TANGENT\\)/g,replace:Z?\"defined(TANGENT)\":\"defined(IGNORE)\"}]}),t.compilationString+=t._emitCodeFromInclude(\"pbrBlockReflectance\",G,{replaceStrings:[{search:/REFLECTIONMAP_SKYBOX/g,replace:null!==(O=null==z?void 0:z._defineSkyboxName)&&void 0!==O?O:\"REFLECTIONMAP_SKYBOX\"},{search:/REFLECTIONMAP_3D/g,replace:null!==(M=null==z?void 0:z._define3DName)&&void 0!==M?M:\"REFLECTIONMAP_3D\"}]});var J=this.subsurface.isConnected?null===(I=this.subsurface.connectedPoint)||void 0===I?void 0:I.ownerBlock:null,$=this.subsurface.isConnected?null===(N=(null===(D=this.subsurface.connectedPoint)||void 0===D?void 0:D.ownerBlock).refraction.connectedPoint)||void 0===N?void 0:N.ownerBlock:null;$&&($.viewConnectionPoint=this.view,$.indexOfRefractionConnectionPoint=this.indexOfRefraction),t.compilationString+=rh.GetCode(t,J,z,j),t._emitFunctionFromInclude(\"pbrBlockSubSurface\",G,{replaceStrings:[{search:/REFLECTIONMAP_3D/g,replace:null!==(L=null==z?void 0:z._define3DName)&&void 0!==L?L:\"REFLECTIONMAP_3D\"},{search:/REFLECTIONMAP_OPPOSITEZ/g,replace:null!==(w=null==z?void 0:z._defineOppositeZ)&&void 0!==w?w:\"REFLECTIONMAP_OPPOSITEZ\"},{search:/REFLECTIONMAP_PROJECTION/g,replace:null!==(F=null==z?void 0:z._defineProjectionName)&&void 0!==F?F:\"REFLECTIONMAP_PROJECTION\"},{search:/SS_REFRACTIONMAP_3D/g,replace:null!==(B=null==$?void 0:$._define3DName)&&void 0!==B?B:\"SS_REFRACTIONMAP_3D\"},{search:/SS_LODINREFRACTIONALPHA/g,replace:null!==(U=null==$?void 0:$._defineLODRefractionAlpha)&&void 0!==U?U:\"SS_LODINREFRACTIONALPHA\"},{search:/SS_LINEARSPECULARREFRACTION/g,replace:null!==(V=null==$?void 0:$._defineLinearSpecularRefraction)&&void 0!==V?V:\"SS_LINEARSPECULARREFRACTION\"},{search:/SS_REFRACTIONMAP_OPPOSITEZ/g,replace:null!==(k=null==$?void 0:$._defineOppositeZ)&&void 0!==k?k:\"SS_REFRACTIONMAP_OPPOSITEZ\"}]}),t.compilationString+=t._emitCodeFromInclude(\"pbrBlockDirectLighting\",G),this.light?t.compilationString+=t._emitCodeFromInclude(\"lightFragment\",G,{replaceStrings:[{search:/{X}/g,replace:this._lightId.toString()}]}):t.compilationString+=t._emitCodeFromInclude(\"lightFragment\",G,{repeatKey:\"maxSimultaneousLights\"}),t.compilationString+=t._emitCodeFromInclude(\"pbrBlockFinalLitComponents\",G),t.compilationString+=\"#endif\\r\\n\";var ee=this.ambientColor.isConnected?this.ambientColor.associatedVariableName:\"vec3(0., 0., 0.)\",te=_a.DEFAULT_AO_ON_ANALYTICAL_LIGHTS.toString();-1===te.indexOf(\".\")&&(te+=\".\"),t.compilationString+=t._emitCodeFromInclude(\"pbrBlockFinalUnlitComponents\",G,{replaceStrings:[{search:/vec3 finalEmissive[\\s\\S]*?finalEmissive\\*=vLightingIntensity\\.y;/g,replace:\"\"},{search:/vAmbientColor/g,replace:ee+\" * ambientFromScene\"},{search:/vAmbientInfos\\.w/g,replace:te}]}),t.compilationString+=t._emitCodeFromInclude(\"pbrBlockFinalColorComposition\",G,{replaceStrings:[{search:/finalEmissive/g,replace:\"vec3(0.)\"}]}),t.compilationString+=t._emitCodeFromInclude(\"pbrBlockImageProcessing\",G,{replaceStrings:[{search:/visibility/g,replace:\"1.\"}]}),t.compilationString+=t._emitCodeFromInclude(\"pbrDebug\",G,{replaceStrings:[{search:/vNormalW/g,replace:this._vNormalWName},{search:/vPositionW/g,replace:j},{search:/albedoTexture\\.rgb;/g,replace:\"vec3(1.);\\r\\ngl_FragColor.rgb = toGammaSpace(gl_FragColor.rgb);\\r\\n\"}]});for(var ie=0,ne=this._outputs;ie(\"+this._options.remappedVariables.join(\",\")+\")\":ai.a.IncludesShadersStore.shadowMapVertexNormalBias,u=this._options&&this._options.remappedVariables?\"#include(\"+this._options.remappedVariables.join(\",\")+\")\":ai.a.IncludesShadersStore.shadowMapVertexMetric,h=this._options&&this._options.remappedVariables?\"#include(\"+this._options.remappedVariables.join(\",\")+\")\":ai.a.IncludesShadersStore.shadowMapFragmentSoftTransparentShadow,d=ai.a.IncludesShadersStore.shadowMapFragment;s=(s=-1!==(s=(s=s.replace(/void\\s+?main/g,ai.a.IncludesShadersStore.shadowMapVertexDeclaration+\"\\r\\nvoid main\")).replace(/#define SHADOWDEPTH_NORMALBIAS|#define CUSTOM_VERTEX_UPDATE_WORLDPOS/g,l)).indexOf(\"#define SHADOWDEPTH_METRIC\")?s.replace(/#define SHADOWDEPTH_METRIC/g,u):s.replace(/}\\s*$/g,u+\"\\r\\n}\")).replace(/#define SHADER_NAME.*?\\n|out vec4 glFragColor;\\n/g,\"\");var f=c.indexOf(\"#define SHADOWDEPTH_SOFTTRANSPARENTSHADOW\")>=0||c.indexOf(\"#define CUSTOM_FRAGMENT_BEFORE_FOG\")>=0,p=-1!==c.indexOf(\"#define SHADOWDEPTH_FRAGMENT\"),_=\"\";f?c=c.replace(/#define SHADOWDEPTH_SOFTTRANSPARENTSHADOW|#define CUSTOM_FRAGMENT_BEFORE_FOG/g,h):_=h+\"\\r\\n\",c=c.replace(/void\\s+?main/g,ai.a.IncludesShadersStore.shadowMapFragmentDeclaration+\"\\r\\nvoid main\"),p?c=c.replace(/#define SHADOWDEPTH_FRAGMENT/g,d):_+=d+\"\\r\\n\",_&&(c=c.replace(/}\\s*$/g,_+\"}\")),c=c.replace(/#define SHADER_NAME.*?\\n|out vec4 glFragColor;\\n/g,\"\");var m=r.getUniformNames().slice();return m.push(\"biasAndScaleSM\",\"depthValuesSM\",\"lightDataSM\",\"softTransparentShadowSM\"),o.depthEffect=this._scene.getEngine().createEffect({vertexSource:s,fragmentSource:c,vertexToken:o.token,fragmentToken:o.token},{attributes:r.getAttributesNames(),uniformsNames:m,uniformBuffersNames:r.getUniformBuffersNames(),samplers:r.getSamplers(),defines:a+\"\\n\"+r.defines.replace(\"#define SHADOWS\",\"\").replace(/#define SHADOW\\d/g,\"\"),indexParameters:r.getIndexParameters()},this._scene.getEngine()),o.depthEffect},e}(),dh=i(101);function fh(e,t,i,n,r){var o=new e.DecoderBuffer;o.Init(t,t.byteLength);var a,s,c=new e.Decoder;try{var l=c.GetEncodedGeometryType(o);switch(l){case e.TRIANGULAR_MESH:a=new e.Mesh,s=c.DecodeBufferToMesh(o,a);break;case e.POINT_CLOUD:a=new e.PointCloud,s=c.DecodeBufferToPointCloud(o,a);break;default:throw new Error(\"Invalid geometry type \"+l)}if(!s.ok()||!a.ptr)throw new Error(s.error_msg());if(l===e.TRIANGULAR_MESH){var u=3*a.num_faces(),h=4*u,d=e._malloc(h);try{c.GetTrianglesUInt32Array(a,h,d);var f=new Uint32Array(u);f.set(new Uint32Array(e.HEAPF32.buffer,d,u)),n(f)}finally{e._free(d)}}var p=function(t,i){var n=i.num_components(),o=a.num_points(),s=o*n,l=s*Float32Array.BYTES_PER_ELEMENT,u=e._malloc(l);try{c.GetAttributeDataArrayForAllPoints(a,i,e.DT_FLOAT32,l,u);var h=new Float32Array(e.HEAPF32.buffer,u,s);if(\"color\"===t&&3===n){for(var d=new Float32Array(4*o),f=0,p=0;fe.EPSILON?1:0;l|=h,u.push(h)}switch(l){case 0:(a.e.Dot(this.normal,t.plane.normal)>0?i:n).push(t);break;case 1:r.push(t);break;case 2:o.push(t);break;case 3:var d,f=[],p=[];for(s=0;s=3&&(d=new Th(f,t.shared)).plane&&r.push(d),p.length>=3&&(d=new Th(p,t.shared)).plane&&o.push(d)}},e.EPSILON=1e-5,e}(),Th=function(){function e(e,t){this.vertices=e,this.shared=t,this.plane=yh.FromPoints(e[0].pos,e[1].pos,e[2].pos)}return e.prototype.clone=function(){return new e(this.vertices.map((function(e){return e.clone()})),this.shared)},e.prototype.flip=function(){this.vertices.reverse().map((function(e){e.flip()})),this.plane.flip()},e}(),Eh=function(){function e(e){this.plane=null,this.front=null,this.back=null,this.polygons=new Array,e&&this.build(e)}return e.prototype.clone=function(){var t=new e;return t.plane=this.plane&&this.plane.clone(),t.front=this.front&&this.front.clone(),t.back=this.back&&this.back.clone(),t.polygons=this.polygons.map((function(e){return e.clone()})),t},e.prototype.invert=function(){for(var e=0;e1)?1:e.arc||1,c=0===e.sideOrientation?0:e.sideOrientation||Ki.a.DEFAULTSIDE;t.push(0,0,0),r.push(.5,.5);for(var l=2*Math.PI*s,u=1===s?l/a:l/(a-1),h=0,d=0;dt.x&&(t.x=i.x),i.yt.y&&(t.y=i.y)})),{min:e,max:t,width:t.x-e.x,height:t.y-e.y}},e}(),Nh=function(){function e(){}return e.Rectangle=function(e,t,i,n){return[new a.d(e,t),new a.d(i,t),new a.d(i,n),new a.d(e,n)]},e.Circle=function(e,t,i,n){void 0===t&&(t=0),void 0===i&&(i=0),void 0===n&&(n=32);for(var r=new Array,o=0,s=2*Math.PI/n,c=0;c0){var u=r.length/3;this._points.elements.forEach((function(t){n.push(0,-1,0),r.push(t.x,-e,t.y),o.push(1-(t.x-a.min.x)/a.width,1-(t.y-a.min.y)/a.height)}));var h=s.length;for(l=0;lo.elements.length-1?o.elements[0]:o.elements[h+1],e.push(f.x,0,f.y),e.push(f.x,-s,f.y),e.push(d.x,0,d.y),e.push(d.x,-s,d.y);var p=new a.e(f.x,0,f.y),_=new a.e(d.x,0,d.y).subtract(p),m=new a.e(0,1,0),g=a.e.Cross(_,m);g=g.normalize(),i.push(u/r.width,0),i.push(u/r.width,1),u+=_.length(),i.push(u/r.width,0),i.push(u/r.width,1),c?(t.push(g.x,g.y,g.z),t.push(g.x,g.y,g.z),t.push(g.x,g.y,g.z),t.push(g.x,g.y,g.z),n.push(l),n.push(l+2),n.push(l+1),n.push(l+1),n.push(l+2),n.push(l+3)):(t.push(-g.x,-g.y,-g.z),t.push(-g.x,-g.y,-g.z),t.push(-g.x,-g.y,-g.z),t.push(-g.x,-g.y,-g.z),n.push(l),n.push(l+1),n.push(l+2),n.push(l+1),n.push(l+3),n.push(l+2)),l+=4}},e}();Ki.a.CreatePolygon=function(e,t,i,n,r,o,c){for(var l=i||new Array(3),u=n,h=[],d=c||!1,f=0;f<3;f++)void 0===l[f]&&(l[f]=new a.f(0,0,1,1)),u&&void 0===u[f]&&(u[f]=new s.b(1,1,1,1));var p=e.getVerticesData(Qi.b.PositionKind),_=e.getVerticesData(Qi.b.NormalKind),m=e.getVerticesData(Qi.b.UVKind),g=e.getIndices(),v=p.length/9,b=0,y=0,T=0,E=0,S=[0];if(d)for(var A=v;A1?1:t.arc:1,o=void 0===t.closed||t.closed,s=t.shape,c=t.radius||1,l=t.tessellation||64,u=t.clip||0,h=t.updatable,d=be.a._GetDefaultSideOrientation(t.sideOrientation),f=t.cap||be.a.NO_CAP,p=2*Math.PI,_=new Array,m=t.invertUV||!1,g=0,v=0,b=p/l*r,y=new Array;for(g=0;g<=l-u;g++){y=[];for(f!=be.a.CAP_START&&f!=be.a.CAP_ALL||(y.push(new a.e(0,s[0].y,0)),y.push(new a.e(Math.cos(g*b)*s[0].x*c,s[0].y,Math.sin(g*b)*s[0].x*c))),v=0;v0||h>0){m=-d,g=-f;v=d,b=f;switch(r){case be.a.CENTER:m-=c/=2,v+=c;break;case be.a.LEFT:v+=c,p=-c/2;break;case be.a.RIGHT:m-=c,p=c/2}switch(o){case be.a.CENTER:g-=h/=2,b+=h;break;case be.a.BOTTOM:b+=h,_=-h/2;break;case be.a.TOP:g-=h,_=h/2}}var y=[],T=[],E=[];E[0]=[0,0,1,0,1,1,0,1],E[1]=[0,0,1,0,1,1,0,1],t!==be.a.ROTATE_TILE&&t!==be.a.ROTATE_ROW||(E[1]=[1,1,0,1,0,0,1,0]),t!==be.a.FLIP_TILE&&t!==be.a.FLIP_ROW||(E[1]=[1,0,0,0,0,1,1,1]),t!==be.a.FLIP_N_ROTATE_TILE&&t!==be.a.FLIP_N_ROTATE_ROW||(E[1]=[0,1,1,1,1,0,0,0]);for(var S=[],A=[],P=[],C=0,R=0;R0||h>0){var O,M,I,D,N=h>0&&(o===be.a.CENTER||o===be.a.TOP),L=h>0&&(o===be.a.CENTER||o===be.a.BOTTOM),w=c>0&&(r===be.a.CENTER||r===be.a.RIGHT),F=c>0&&(r===be.a.CENTER||r===be.a.LEFT),B=[];if(N&&w&&(y.push(m+p,g+_,0),y.push(-d+p,g+_,0),y.push(-d+p,g+h+_,0),y.push(m+p,g+h+_,0),P.push(C,C+1,C+3,C+1,C+2,C+3),C+=4,B=[O=1-c/i,M=1-h/n,I=1,M,I,D=1,O,D],t===be.a.ROTATE_ROW&&(B=[1-O,1-M,1-I,1-M,1-I,1-D,1-O,1-D]),t===be.a.FLIP_ROW&&(B=[1-O,M,1-I,M,1-I,D,1-O,D]),t===be.a.FLIP_N_ROTATE_ROW&&(B=[O,1-M,I,1-M,I,1-D,O,1-D]),S=S.concat(B),A.push(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),T.push(0,0,-1,0,0,-1,0,0,-1,0,0,-1)),N&&F&&(y.push(d+p,g+_,0),y.push(v+p,g+_,0),y.push(v+p,g+h+_,0),y.push(d+p,g+h+_,0),P.push(C,C+1,C+3,C+1,C+2,C+3),C+=4,B=[O=0,M=1-h/n,I=c/i,M,I,D=1,O,D],(t===be.a.ROTATE_ROW||t===be.a.ROTATE_TILE&&s%2==0)&&(B=[1-O,1-M,1-I,1-M,1-I,1-D,1-O,1-D]),(t===be.a.FLIP_ROW||t===be.a.FLIP_TILE&&s%2==0)&&(B=[1-O,M,1-I,M,1-I,D,1-O,D]),(t===be.a.FLIP_N_ROTATE_ROW||t===be.a.FLIP_N_ROTATE_TILE&&s%2==0)&&(B=[O,1-M,I,1-M,I,1-D,O,1-D]),S=S.concat(B),A.push(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),T.push(0,0,-1,0,0,-1,0,0,-1,0,0,-1)),L&&w&&(y.push(m+p,f+_,0),y.push(-d+p,f+_,0),y.push(-d+p,b+_,0),y.push(m+p,b+_,0),P.push(C,C+1,C+3,C+1,C+2,C+3),C+=4,B=[O=1-c/i,M=0,I=1,M,I,D=h/n,O,D],(t===be.a.ROTATE_ROW&&u%2==1||t===be.a.ROTATE_TILE&&u%1==0)&&(B=[1-O,1-M,1-I,1-M,1-I,1-D,1-O,1-D]),(t===be.a.FLIP_ROW&&u%2==1||t===be.a.FLIP_TILE&&u%2==0)&&(B=[1-O,M,1-I,M,1-I,D,1-O,D]),(t===be.a.FLIP_N_ROTATE_ROW&&u%2==1||t===be.a.FLIP_N_ROTATE_TILE&&u%2==0)&&(B=[O,1-M,I,1-M,I,1-D,O,1-D]),S=S.concat(B),A.push(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),T.push(0,0,-1,0,0,-1,0,0,-1,0,0,-1)),L&&F&&(y.push(d+p,f+_,0),y.push(v+p,f+_,0),y.push(v+p,b+_,0),y.push(d+p,b+_,0),P.push(C,C+1,C+3,C+1,C+2,C+3),C+=4,B=[O=0,M=0,I=c/i,M,I,D=h/n,O,D],(t===be.a.ROTATE_ROW&&u%2==1||t===be.a.ROTATE_TILE&&(u+s)%2==1)&&(B=[1-O,1-M,1-I,1-M,1-I,1-D,1-O,1-D]),(t===be.a.FLIP_ROW&&u%2==1||t===be.a.FLIP_TILE&&(u+s)%2==1)&&(B=[1-O,M,1-I,M,1-I,D,1-O,D]),(t===be.a.FLIP_N_ROTATE_ROW&&u%2==1||t===be.a.FLIP_N_ROTATE_TILE&&(u+s)%2==1)&&(B=[O,1-M,I,1-M,I,1-D,O,1-D]),S=S.concat(B),A.push(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),T.push(0,0,-1,0,0,-1,0,0,-1,0,0,-1)),N){var U=[];O=0,M=1-h/n,I=1,D=1,U[0]=[O,M,I,M,I,D,O,D],U[1]=[O,M,I,M,I,D,O,D],t!==be.a.ROTATE_TILE&&t!==be.a.ROTATE_ROW||(U[1]=[1-O,1-M,1-I,1-M,1-I,1-D,1-O,1-D]),t!==be.a.FLIP_TILE&&t!==be.a.FLIP_ROW||(U[1]=[1-O,M,1-I,M,1-I,D,1-O,D]),t!==be.a.FLIP_N_ROTATE_TILE&&t!==be.a.FLIP_N_ROTATE_ROW||(U[1]=[O,1-M,I,1-M,I,1-D,O,1-D]);for(x=0;x1)?1:t.arc||1;var f,p,_=function(e,t,i,n,r,o,s,c){for(var l,u,h,d,f=t.getTangents(),p=t.getNormals(),_=t.getDistances(),m=2*Math.PI/r*c,g=o||function(){return n},v=a.c.Matrix[0],b=s===be.a.NO_CAP||s===be.a.CAP_END?0:2,y=0;y3?0:l,t.arc);var v=Rh.a.CreateRibbon(e,{pathArray:p,closePath:!0,closeArray:!1,updatable:h,sideOrientation:d,invertUV:u,frontUVs:t.frontUVs,backUVs:t.backUVs},i);return v._creationDataStorage.pathArray=p,v._creationDataStorage.path3D=f,v._creationDataStorage.tessellation=s,v._creationDataStorage.cap=l,v._creationDataStorage.arc=t.arc,v._creationDataStorage.radius=o,v},e}();Ki.a.CreateIcoSphere=function(e){var t,i=e.sideOrientation||Ki.a.DEFAULTSIDE,n=e.radius||1,r=void 0===e.flat||e.flat,o=e.subdivisions||4,s=e.radiusX||n,c=e.radiusY||n,l=e.radiusZ||n,u=(1+Math.sqrt(5))/2,h=[-1,u,-0,1,u,0,-1,-u,0,1,-u,0,0,-1,-u,0,1,-u,0,-1,u,0,1,u,u,0,1,u,0,-1,-u,0,1,-u,0,-1],d=[0,11,5,0,5,1,0,1,7,0,7,10,12,22,23,1,5,20,5,11,4,23,22,13,22,18,6,7,1,8,14,21,4,14,4,2,16,13,6,15,6,19,3,8,9,4,21,5,13,17,23,6,13,22,19,6,18,9,8,1],f=[0,1,2,3,4,5,6,7,8,9,10,11,0,2,3,3,3,4,7,8,9,9,10,11],p=[5,1,3,1,6,4,0,0,5,3,4,2,2,2,4,0,2,0,1,1,6,0,6,2,0,4,3,3,4,4,3,1,4,2,4,4,0,2,1,1,2,2,3,3,1,3,2,4],_=[0,0,0,0,1,0,0,1,1,0,0,0,1,1,0,0,1,1,1,0],m=new Array,g=new Array,v=new Array,b=new Array,y=0,T=new Array(3),E=new Array(3);for(t=0;t<3;t++)T[t]=a.e.Zero(),E[t]=a.d.Zero();for(var S=0;S<20;S++){for(t=0;t<3;t++){var A=d[3*S+t];T[t].copyFromFloats(h[3*f[A]],h[3*f[A]+1],h[3*f[A]+2]),T[t].normalize().scaleInPlace(n),E[t].copyFromFloats(p[2*A]*(138/1024)+60/1024+_[S]*(-40/1024),p[2*A+1]*(239/1024)+26/1024+_[S]*(20/1024))}for(var P=function(e,t,i,n){var u,h=a.e.Lerp(T[0],T[2],t/o),d=a.e.Lerp(T[1],T[2],t/o),f=o===t?T[2]:a.e.Lerp(h,d,e/(o-t));if(f.normalize(),r){var p=a.e.Lerp(T[0],T[2],n/o),_=a.e.Lerp(T[1],T[2],n/o);u=a.e.Lerp(p,_,i/(o-n))}else u=new a.e(f.x,f.y,f.z);u.x/=s,u.y/=c,u.z/=l,u.normalize();var S=a.d.Lerp(E[0],E[2],t/o),A=a.d.Lerp(E[1],E[2],t/o),P=o===t?E[2]:a.d.Lerp(S,A,e/(o-t));g.push(f.x*s,f.y*c,f.z*l),v.push(u.x,u.y,u.z),b.push(P.x,P.y),m.push(y),y++},C=0;C0)?1:0)+((c=a.e.Dot(e[o+1].position,t)-i>0)?1:0)+((u=a.e.Dot(e[o+2].position,t)-i>0)?1:0)){case 0:r.push(e[o]),r.push(e[o+1]),r.push(e[o+2]);break;case 1:if(s&&(h=e[o+1],d=e[o+2],f=n(e[o],h),p=n(e[o],d)),c){h=e[o],d=e[o+2],f=n(e[o+1],h),p=n(e[o+1],d),r.push(f),r.push(d.clone()),r.push(h.clone()),r.push(d.clone()),r.push(f.clone()),r.push(p);break}u&&(h=e[o],d=e[o+1],f=n(e[o+2],h),p=n(e[o+2],d)),h&&d&&f&&p&&(r.push(h.clone()),r.push(d.clone()),r.push(f),r.push(p),r.push(f.clone()),r.push(d.clone()));break;case 2:s||(d=n(h=e[o].clone(),e[o+1]),f=n(h,e[o+2]),r.push(h),r.push(d),r.push(f)),c||(d=n(h=e[o+1].clone(),e[o+2]),f=n(h,e[o]),r.push(h),r.push(d),r.push(f)),u||(d=n(h=e[o+2].clone(),e[o]),f=n(h,e[o+1]),r.push(h),r.push(d),r.push(f))}}return r},A=0;Ac||i.deleted||i.isDirty))for(var r=0;r<3;++r)if(i.error[r]>0,(function(e){if(r){var t=e+s.verticesStart,o=a.e.FromArray(r,3*t),l=function(e){if(i)for(var t=0;t0&&this._reconstructedMesh.setVerticesData(Qi.b.NormalKind,a),s.length>0&&this._reconstructedMesh.setVerticesData(Qi.b.UVKind,s),c.length>0&&this._reconstructedMesh.setVerticesData(Qi.b.ColorKind,c);var b=this._mesh.subMeshes[e];e>0&&(this._reconstructedMesh.subMeshes=[],m.forEach((function(e){gh.a.AddToMesh(e.materialIndex,e.verticesStart,e.verticesCount,e.indexStart,e.indexCount,e.getMesh())})),gh.a.AddToMesh(b.materialIndex,_,d,p,3*r.length,this._reconstructedMesh))},e.prototype.initDecimatedMesh=function(){this._reconstructedMesh=new be.a(this._mesh.name+\"Decimated\",this._mesh.getScene()),this._reconstructedMesh.material=this._mesh.material,this._reconstructedMesh.parent=this._mesh.parent,this._reconstructedMesh.isVisible=!1,this._reconstructedMesh.renderingGroupId=this._mesh.renderingGroupId},e.prototype.isFlipped=function(e,t,i,n,r){for(var o=0;o.999)return!0;var f=a.e.Cross(h,d).normalize();if(n[o]=!1,a.e.Dot(f,s.normal)<.2)return!0}else n[o]=!0,r.push(s)}}return!1},e.prototype.updateTriangles=function(e,t,i,n){for(var r=n,o=0;o=this._thinInstanceDataStorage.instancesCount)return!1;var n=this._thinInstanceDataStorage.matrixData;return t.copyToArray(n,16*e),this._thinInstanceDataStorage.worldMatrices&&(this._thinInstanceDataStorage.worldMatrices[e]=t),i&&(this.thinInstanceBufferUpdated(\"matrix\"),this.doNotSyncBoundingInfo||this.thinInstanceRefreshBoundingInfo(!1)),!0},be.a.prototype.thinInstanceSetAttributeAt=function(e,t,i,n){return void 0===n&&(n=!0),!(!this._userThinInstanceBuffersStorage||!this._userThinInstanceBuffersStorage.data[e]||t>=this._thinInstanceDataStorage.instancesCount)&&(this._thinInstanceUpdateBufferSize(e,0),this._userThinInstanceBuffersStorage.data[e].set(i,t*this._userThinInstanceBuffersStorage.strides[e]),n&&this.thinInstanceBufferUpdated(e),!0)},Object.defineProperty(be.a.prototype,\"thinInstanceCount\",{get:function(){return this._thinInstanceDataStorage.instancesCount},set:function(e){var t,i;e<=(null!==(i=null===(t=this._thinInstanceDataStorage.matrixData)||void 0===t?void 0:t.length)&&void 0!==i?i:0)/16&&(this._thinInstanceDataStorage.instancesCount=e)},enumerable:!0,configurable:!0}),be.a.prototype.thinInstanceSetBuffer=function(e,t,i,n){var r,o;if(void 0===i&&(i=0),void 0===n&&(n=!1),i=i||16,\"matrix\"===e)if(null===(r=this._thinInstanceDataStorage.matrixBuffer)||void 0===r||r.dispose(),this._thinInstanceDataStorage.matrixBuffer=null,this._thinInstanceDataStorage.matrixBufferSize=t?t.length:32*i,this._thinInstanceDataStorage.matrixData=t,this._thinInstanceDataStorage.worldMatrices=null,null!==t){this._thinInstanceDataStorage.instancesCount=t.length/i;var a=new Qi.a(this.getEngine(),t,!n,i,!1,!0);this._thinInstanceDataStorage.matrixBuffer=a,this.setVerticesBuffer(a.createVertexBuffer(\"world0\",0,4)),this.setVerticesBuffer(a.createVertexBuffer(\"world1\",4,4)),this.setVerticesBuffer(a.createVertexBuffer(\"world2\",8,4)),this.setVerticesBuffer(a.createVertexBuffer(\"world3\",12,4)),this.doNotSyncBoundingInfo||this.thinInstanceRefreshBoundingInfo(!1)}else this._thinInstanceDataStorage.instancesCount=0,this.doNotSyncBoundingInfo||this.refreshBoundingInfo(!0);else null===t?(null===(o=this._userThinInstanceBuffersStorage)||void 0===o?void 0:o.data[e])&&(this.removeVerticesData(e),delete this._userThinInstanceBuffersStorage.data[e],delete this._userThinInstanceBuffersStorage.strides[e],delete this._userThinInstanceBuffersStorage.sizes[e],delete this._userThinInstanceBuffersStorage.vertexBuffers[e]):(this._thinInstanceInitializeUserStorage(),this._userThinInstanceBuffersStorage.data[e]=t,this._userThinInstanceBuffersStorage.strides[e]=i,this._userThinInstanceBuffersStorage.sizes[e]=t.length,this._userThinInstanceBuffersStorage.vertexBuffers[e]=new Qi.b(this.getEngine(),t,e,!n,!1,i,!0),this.setVerticesBuffer(this._userThinInstanceBuffersStorage.vertexBuffers[e]))},be.a.prototype.thinInstanceBufferUpdated=function(e){var t;\"matrix\"===e?this._thinInstanceDataStorage.matrixBuffer&&this._thinInstanceDataStorage.matrixBuffer.updateDirectly(this._thinInstanceDataStorage.matrixData,0,this._thinInstanceDataStorage.instancesCount):(null===(t=this._userThinInstanceBuffersStorage)||void 0===t?void 0:t.vertexBuffers[e])&&this._userThinInstanceBuffersStorage.vertexBuffers[e].updateDirectly(this._userThinInstanceBuffersStorage.data[e],0)},be.a.prototype.thinInstancePartialBufferUpdate=function(e,t,i){var n;\"matrix\"===e?this._thinInstanceDataStorage.matrixBuffer&&this._thinInstanceDataStorage.matrixBuffer.updateDirectly(t,i):(null===(n=this._userThinInstanceBuffersStorage)||void 0===n?void 0:n.vertexBuffers[e])&&this._userThinInstanceBuffersStorage.vertexBuffers[e].updateDirectly(t,i)},be.a.prototype.thinInstanceGetWorldMatrices=function(){if(!this._thinInstanceDataStorage.matrixData||!this._thinInstanceDataStorage.matrixBuffer)return[];var e=this._thinInstanceDataStorage.matrixData;if(!this._thinInstanceDataStorage.worldMatrices){this._thinInstanceDataStorage.worldMatrices=new Array;for(var t=0;t-1&&(this.agents.splice(t,1),this.transforms.splice(t,1))},e.prototype.getAgents=function(){return this.agents},e.prototype.update=function(e){var t=this.bjsRECASTPlugin.getTimeStep(),i=this.bjsRECASTPlugin.getMaximumSubStepCount();if(t<=Nt.a)this.recastCrowd.update(e);else{var n=e/t;i&&n>i&&(n=i),n<1&&(n=1);for(var r=0;r=400&&o?o(l):i()}),!1),l.addEventListener(\"error\",(function(){m.a.Error(\"error on XHR request.\"),i()}),!1),l.send()}else m.a.Error(\"Error: IndexedDB not supported by your browser or Babylon.js database is not open.\"),i()},e._ValidateXHRData=function(e,t){void 0===t&&(t=7);try{if(1&t){if(e.responseText&&e.responseText.length>0)return!0;if(1===t)return!1}if(2&t){var i=Uc.GetTGAHeader(e.response);if(i.width&&i.height&&i.width>0&&i.height>0)return!0;if(2===t)return!1}if(4&t){var n=new Uint8Array(e.response,0,3);return 68===n[0]&&68===n[1]&&83===n[2]}}catch(e){}return!1},e.IsUASupportingBlobStorage=!0,e.IDBStorageEnabled=!1,e._ParseURL=function(e){document.createElement(\"a\").href=e;var t=e.substring(0,e.lastIndexOf(\"#\")),i=e.substring(t.lastIndexOf(\"/\")+1,e.length);return e.substring(0,e.indexOf(i,0))},e._ReturnFullUrlLocation=function(t){return-1===t.indexOf(\"http:/\")&&-1===t.indexOf(\"https:/\")&&\"undefined\"!=typeof window?e._ParseURL(window.location.href)+t:t},e}(),rd=function(){function e(e,t,i){this.gradient=e,this.color1=t,this.color2=i}return e.prototype.getColorToRef=function(e){this.color2?s.b.LerpToRef(this.color1,this.color2,Math.random(),e):e.copyFrom(this.color1)},e}(),od=function(e,t){this.gradient=e,this.color=t},ad=function(){function e(e,t,i){this.gradient=e,this.factor1=t,this.factor2=i}return e.prototype.getFactor=function(){return void 0===this.factor2||this.factor2===this.factor1?this.factor1:this.factor1+(this.factor2-this.factor1)*Math.random()},e}(),sd=function(){function e(){}return e.GetCurrentGradient=function(e,t,i){if(t[0].gradient>e)i(t[0],t[0],1);else{for(var n=0;n=r.gradient&&e<=o.gradient)return void i(r,o,(e-r.gradient)/(o.gradient-r.gradient))}var a=t.length-1;i(t[a],t[a],1)}},e}(),cd=function(){function e(t){this.particleSystem=t,this.position=a.e.Zero(),this.direction=a.e.Zero(),this.color=new s.b(0,0,0,0),this.colorStep=new s.b(0,0,0,0),this.lifeTime=1,this.age=0,this.size=0,this.scale=new a.d(1,1),this.angle=0,this.angularSpeed=0,this.cellIndex=0,this._attachedSubEmitters=null,this._currentColor1=new s.b(0,0,0,0),this._currentColor2=new s.b(0,0,0,0),this._currentSize1=0,this._currentSize2=0,this._currentAngularSpeed1=0,this._currentAngularSpeed2=0,this._currentVelocity1=0,this._currentVelocity2=0,this._currentLimitVelocity1=0,this._currentLimitVelocity2=0,this._currentDrag1=0,this._currentDrag2=0,this.id=e._Count++,this.particleSystem.isAnimationSheetEnabled&&this.updateCellInfoFromSystem()}return e.prototype.updateCellInfoFromSystem=function(){this.cellIndex=this.particleSystem.startSpriteCellID},e.prototype.updateCellIndex=function(){var e=this.age,t=this.particleSystem.spriteCellChangeSpeed;this.particleSystem.spriteRandomStartCell&&(void 0===this._randomCellOffset&&(this._randomCellOffset=Math.random()*this.lifeTime),0===t?(t=1,e=this._randomCellOffset):e+=this._randomCellOffset);var i=this._initialEndSpriteCellID-this._initialStartSpriteCellID,n=L.a.Clamp(e*t%this.lifeTime/this.lifeTime);this.cellIndex=this._initialStartSpriteCellID+n*i|0},e.prototype._inheritParticleInfoToSubEmitter=function(e){if(e.particleSystem.emitter.position){var t=e.particleSystem.emitter;if(t.position.copyFrom(this.position),e.inheritDirection){var i=a.c.Vector3[0];this.direction.normalizeToRef(i),t.setDirection(i,0,Math.PI/2)}}else{e.particleSystem.emitter.copyFrom(this.position)}this.direction.scaleToRef(e.inheritedVelocityAmount/2,a.c.Vector3[0]),e.particleSystem._inheritedVelocityOffset.copyFrom(a.c.Vector3[0])},e.prototype._inheritParticleInfoToSubEmitters=function(){var e=this;this._attachedSubEmitters&&this._attachedSubEmitters.length>0&&this._attachedSubEmitters.forEach((function(t){e._inheritParticleInfoToSubEmitter(t)}))},e.prototype._reset=function(){this.age=0,this.id=e._Count++,this._currentColorGradient=null,this._currentSizeGradient=null,this._currentAngularSpeedGradient=null,this._currentVelocityGradient=null,this._currentLimitVelocityGradient=null,this._currentDragGradient=null,this.cellIndex=this.particleSystem.startSpriteCellID,this._randomCellOffset=void 0},e.prototype.copyTo=function(e){e.position.copyFrom(this.position),this._initialDirection?e._initialDirection?e._initialDirection.copyFrom(this._initialDirection):e._initialDirection=this._initialDirection.clone():e._initialDirection=null,e.direction.copyFrom(this.direction),this._localPosition&&(e._localPosition?e._localPosition.copyFrom(this._localPosition):e._localPosition=this._localPosition.clone()),e.color.copyFrom(this.color),e.colorStep.copyFrom(this.colorStep),e.lifeTime=this.lifeTime,e.age=this.age,e._randomCellOffset=this._randomCellOffset,e.size=this.size,e.scale.copyFrom(this.scale),e.angle=this.angle,e.angularSpeed=this.angularSpeed,e.particleSystem=this.particleSystem,e.cellIndex=this.cellIndex,e.id=this.id,e._attachedSubEmitters=this._attachedSubEmitters,this._currentColorGradient&&(e._currentColorGradient=this._currentColorGradient,e._currentColor1.copyFrom(this._currentColor1),e._currentColor2.copyFrom(this._currentColor2)),this._currentSizeGradient&&(e._currentSizeGradient=this._currentSizeGradient,e._currentSize1=this._currentSize1,e._currentSize2=this._currentSize2),this._currentAngularSpeedGradient&&(e._currentAngularSpeedGradient=this._currentAngularSpeedGradient,e._currentAngularSpeed1=this._currentAngularSpeed1,e._currentAngularSpeed2=this._currentAngularSpeed2),this._currentVelocityGradient&&(e._currentVelocityGradient=this._currentVelocityGradient,e._currentVelocity1=this._currentVelocity1,e._currentVelocity2=this._currentVelocity2),this._currentLimitVelocityGradient&&(e._currentLimitVelocityGradient=this._currentLimitVelocityGradient,e._currentLimitVelocity1=this._currentLimitVelocity1,e._currentLimitVelocity2=this._currentLimitVelocity2),this._currentDragGradient&&(e._currentDragGradient=this._currentDragGradient,e._currentDrag1=this._currentDrag1,e._currentDrag2=this._currentDrag2),this.particleSystem.isAnimationSheetEnabled&&(e._initialStartSpriteCellID=this._initialStartSpriteCellID,e._initialEndSpriteCellID=this._initialEndSpriteCellID),this.particleSystem.useRampGradients&&(e.remapData&&this.remapData?e.remapData.copyFrom(this.remapData):e.remapData=new a.f(0,0,0,0)),this._randomNoiseCoordinates1&&(e._randomNoiseCoordinates1?(e._randomNoiseCoordinates1.copyFrom(this._randomNoiseCoordinates1),e._randomNoiseCoordinates2.copyFrom(this._randomNoiseCoordinates2)):(e._randomNoiseCoordinates1=this._randomNoiseCoordinates1.clone(),e._randomNoiseCoordinates2=this._randomNoiseCoordinates2.clone()))},e._Count=0,e}();!function(e){e[e.ATTACHED=0]=\"ATTACHED\",e[e.END=1]=\"END\"}(id||(id={}));var ld=function(){function e(e){if(this.particleSystem=e,this.type=id.END,this.inheritDirection=!1,this.inheritedVelocityAmount=0,!e.emitter||!e.emitter.dispose){var t=c.a.GetClass(\"BABYLON.AbstractMesh\");e.emitter=new t(\"SubemitterSystemEmitter\",e.getScene())}e.onDisposeObservable.add((function(){e.emitter&&e.emitter.dispose&&e.emitter.dispose()}))}return e.prototype.clone=function(){var t=this.particleSystem.emitter;if(t){if(t instanceof a.e)t=t.clone();else if(-1!==t.getClassName().indexOf(\"Mesh\")){(t=new(c.a.GetClass(\"BABYLON.Mesh\"))(\"\",t.getScene())).isVisible=!1}}else t=new a.e;var i=new e(this.particleSystem.clone(\"\",t));return i.particleSystem.name+=\"Clone\",i.type=this.type,i.inheritDirection=this.inheritDirection,i.inheritedVelocityAmount=this.inheritedVelocityAmount,i.particleSystem._disposeEmitterOnDispose=!0,i.particleSystem.disposeOnStop=!0,i},e.prototype.serialize=function(){var e={};return e.type=this.type,e.inheritDirection=this.inheritDirection,e.inheritedVelocityAmount=this.inheritedVelocityAmount,e.particleSystem=this.particleSystem.serialize(),e},e._ParseParticleSystem=function(e,t,i){throw Re.a.WarnImport(\"ParseParticle\")},e.Parse=function(t,i,n){var r=t.particleSystem,o=new e(e._ParseParticleSystem(r,i,n));return o.type=t.type,o.inheritDirection=t.inheritDirection,o.inheritedVelocityAmount=t.inheritedVelocityAmount,o.particleSystem._isSubEmitter=!0,o},e.prototype.dispose=function(){this.particleSystem.dispose()},e}(),ud=\"\\nvarying vec2 vUV;\\nvarying vec4 vColor;\\nuniform vec4 textureMask;\\nuniform sampler2D diffuseSampler;\\n#include\\n#include\\n#include\\n#include\\n#ifdef RAMPGRADIENT\\nvarying vec4 remapRanges;\\nuniform sampler2D rampSampler;\\n#endif\\nvoid main(void) {\\n#include\\nvec4 textureColor=texture2D(diffuseSampler,vUV);\\nvec4 baseColor=(textureColor*textureMask+(vec4(1.,1.,1.,1.)-textureMask))*vColor;\\n#ifdef RAMPGRADIENT\\nfloat alpha=baseColor.a;\\nfloat remappedColorIndex=clamp((alpha-remapRanges.x)/remapRanges.y,0.0,1.0);\\nvec4 rampColor=texture2D(rampSampler,vec2(1.0-remappedColorIndex,0.));\\nbaseColor.rgb*=rampColor.rgb;\\n\\nfloat finalAlpha=baseColor.a;\\nbaseColor.a=clamp((alpha*rampColor.a-remapRanges.z)/remapRanges.w,0.0,1.0);\\n#endif\\n#ifdef BLENDMULTIPLYMODE\\nfloat sourceAlpha=vColor.a*textureColor.a;\\nbaseColor.rgb=baseColor.rgb*sourceAlpha+vec3(1.0)*(1.0-sourceAlpha);\\n#endif\\n\\n\\n#ifdef IMAGEPROCESSINGPOSTPROCESS\\nbaseColor.rgb=toLinearSpace(baseColor.rgb);\\n#else\\n#ifdef IMAGEPROCESSING\\nbaseColor.rgb=toLinearSpace(baseColor.rgb);\\nbaseColor=applyImageProcessing(baseColor);\\n#endif\\n#endif\\ngl_FragColor=baseColor;\\n}\";ai.a.ShadersStore.particlesPixelShader=ud;var hd=\"\\nattribute vec3 position;\\nattribute vec4 color;\\nattribute float angle;\\nattribute vec2 size;\\n#ifdef ANIMATESHEET\\nattribute float cellIndex;\\n#endif\\n#ifndef BILLBOARD\\nattribute vec3 direction;\\n#endif\\n#ifdef BILLBOARDSTRETCHED\\nattribute vec3 direction;\\n#endif\\n#ifdef RAMPGRADIENT\\nattribute vec4 remapData;\\n#endif\\nattribute vec2 offset;\\n\\nuniform mat4 view;\\nuniform mat4 projection;\\nuniform vec2 translationPivot;\\n#ifdef ANIMATESHEET\\nuniform vec3 particlesInfos;\\n#endif\\n\\nvarying vec2 vUV;\\nvarying vec4 vColor;\\nvarying vec3 vPositionW;\\n#ifdef RAMPGRADIENT\\nvarying vec4 remapRanges;\\n#endif\\n#if defined(BILLBOARD) && !defined(BILLBOARDY) && !defined(BILLBOARDSTRETCHED)\\nuniform mat4 invView;\\n#endif\\n#include\\n#ifdef BILLBOARD\\nuniform vec3 eyePosition;\\n#endif\\nvec3 rotate(vec3 yaxis,vec3 rotatedCorner) {\\nvec3 xaxis=normalize(cross(vec3(0.,1.0,0.),yaxis));\\nvec3 zaxis=normalize(cross(yaxis,xaxis));\\nvec3 row0=vec3(xaxis.x,xaxis.y,xaxis.z);\\nvec3 row1=vec3(yaxis.x,yaxis.y,yaxis.z);\\nvec3 row2=vec3(zaxis.x,zaxis.y,zaxis.z);\\nmat3 rotMatrix=mat3(row0,row1,row2);\\nvec3 alignedCorner=rotMatrix*rotatedCorner;\\nreturn position+alignedCorner;\\n}\\n#ifdef BILLBOARDSTRETCHED\\nvec3 rotateAlign(vec3 toCamera,vec3 rotatedCorner) {\\nvec3 normalizedToCamera=normalize(toCamera);\\nvec3 normalizedCrossDirToCamera=normalize(cross(normalize(direction),normalizedToCamera));\\nvec3 crossProduct=normalize(cross(normalizedToCamera,normalizedCrossDirToCamera));\\nvec3 row0=vec3(normalizedCrossDirToCamera.x,normalizedCrossDirToCamera.y,normalizedCrossDirToCamera.z);\\nvec3 row1=vec3(crossProduct.x,crossProduct.y,crossProduct.z);\\nvec3 row2=vec3(normalizedToCamera.x,normalizedToCamera.y,normalizedToCamera.z);\\nmat3 rotMatrix=mat3(row0,row1,row2);\\nvec3 alignedCorner=rotMatrix*rotatedCorner;\\nreturn position+alignedCorner;\\n}\\n#endif\\nvoid main(void) {\\nvec2 cornerPos;\\ncornerPos=(vec2(offset.x-0.5,offset.y-0.5)-translationPivot)*size+translationPivot;\\n#ifdef BILLBOARD\\n\\nvec3 rotatedCorner;\\n#ifdef BILLBOARDY\\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\\nrotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\\nrotatedCorner.y=0.;\\nvec3 yaxis=position-eyePosition;\\nyaxis.y=0.;\\nvPositionW=rotate(normalize(yaxis),rotatedCorner);\\nvec3 viewPos=(view*vec4(vPositionW,1.0)).xyz;\\n#elif defined(BILLBOARDSTRETCHED)\\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\\nrotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\\nrotatedCorner.z=0.;\\nvec3 toCamera=position-eyePosition;\\nvPositionW=rotateAlign(toCamera,rotatedCorner);\\nvec3 viewPos=(view*vec4(vPositionW,1.0)).xyz;\\n#else\\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\\nrotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\\nrotatedCorner.z=0.;\\nvec3 viewPos=(view*vec4(position,1.0)).xyz+rotatedCorner;\\nvPositionW=(invView*vec4(viewPos,1)).xyz;\\n#endif\\n#ifdef RAMPGRADIENT\\nremapRanges=remapData;\\n#endif\\n\\ngl_Position=projection*vec4(viewPos,1.0);\\n#else\\n\\nvec3 rotatedCorner;\\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\\nrotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\\nrotatedCorner.y=0.;\\nvec3 yaxis=normalize(direction);\\nvPositionW=rotate(yaxis,rotatedCorner);\\ngl_Position=projection*view*vec4(vPositionW,1.0);\\n#endif\\nvColor=color;\\n#ifdef ANIMATESHEET\\nfloat rowOffset=floor(cellIndex*particlesInfos.z);\\nfloat columnOffset=cellIndex-rowOffset/particlesInfos.z;\\nvec2 uvScale=particlesInfos.xy;\\nvec2 uvOffset=vec2(offset.x ,1.0-offset.y);\\nvUV=(uvOffset+vec2(columnOffset,rowOffset))*uvScale;\\n#else\\nvUV=offset;\\n#endif\\n\\n#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6)\\nvec4 worldPos=vec4(vPositionW,1.0);\\n#endif\\n#include\\n}\";ai.a.ShadersStore.particlesVertexShader=hd;var dd=function(e){function t(t,i,n,r,c,l){void 0===r&&(r=null),void 0===c&&(c=!1),void 0===l&&(l=.01);var u=e.call(this,t)||this;return u._inheritedVelocityOffset=new a.e,u.onDisposeObservable=new o.c,u.onStoppedObservable=new o.c,u._particles=new Array,u._stockParticles=new Array,u._newPartsExcess=0,u._vertexBuffers={},u._scaledColorStep=new s.b(0,0,0,0),u._colorDiff=new s.b(0,0,0,0),u._scaledDirection=a.e.Zero(),u._scaledGravity=a.e.Zero(),u._currentRenderId=-1,u._useInstancing=!1,u._started=!1,u._stopped=!1,u._actualFrame=0,u._currentEmitRate1=0,u._currentEmitRate2=0,u._currentStartSize1=0,u._currentStartSize2=0,u._rawTextureWidth=256,u._useRampGradients=!1,u._disposeEmitterOnDispose=!1,u.isLocal=!1,u._onBeforeDrawParticlesObservable=null,u.recycleParticle=function(e){var t=u._particles.pop();t!==e&&t.copyTo(e),u._stockParticles.push(t)},u._createParticle=function(){var e;if(0!==u._stockParticles.length?(e=u._stockParticles.pop())._reset():e=new cd(u),u._subEmitters&&u._subEmitters.length>0){var t=u._subEmitters[Math.floor(Math.random()*u._subEmitters.length)];e._attachedSubEmitters=[],t.forEach((function(t){if(t.type===id.ATTACHED){var i=t.clone();e._attachedSubEmitters.push(i),i.particleSystem.start()}}))}return e},u._emitFromParticle=function(e){if(u._subEmitters&&0!==u._subEmitters.length){var t=Math.floor(Math.random()*u._subEmitters.length);u._subEmitters[t].forEach((function(t){if(t.type===id.END){var i=t.clone();e._inheritParticleInfoToSubEmitter(i),i.particleSystem._rootParticleSystem=u,u.activeSubSystems.push(i.particleSystem),i.particleSystem.start()}}))}},u._capacity=i,u._epsilon=l,u._isAnimationSheetEnabled=c,n&&\"Scene\"!==n.getClassName()?(u._engine=n,u.defaultProjectionMatrix=a.a.PerspectiveFovLH(.8,1,.1,100)):(u._scene=n||x.a.LastCreatedScene,u._engine=u._scene.getEngine(),u.uniqueId=u._scene.getUniqueId(),u._scene.particleSystems.push(u)),u._engine.getCaps().vertexArrayObject&&(u._vertexArrayObject=null),u._attachImageProcessingConfiguration(null),u._customEffect={0:r},u._useInstancing=u._engine.getCaps().instancedArrays,u._createIndexBuffer(),u._createVertexBuffers(),u.particleEmitterType=new Nl,u.updateFunction=function(e){var t=null,i=null;u.noiseTexture&&(t=u.noiseTexture.getSize(),i=u.noiseTexture.getContent());for(var n,r=function(){n=e[o];var r=u._scaledUpdateSpeed,c=n.age;if(n.age+=r,n.age>n.lifeTime){var l=n.age-c;r=(n.lifeTime-c)*r/l,n.age=n.lifeTime}var h=n.age/n.lifeTime;u._colorGradients&&u._colorGradients.length>0?sd.GetCurrentGradient(h,u._colorGradients,(function(e,t,i){e!==n._currentColorGradient&&(n._currentColor1.copyFrom(n._currentColor2),t.getColorToRef(n._currentColor2),n._currentColorGradient=e),s.b.LerpToRef(n._currentColor1,n._currentColor2,i,n.color)})):(n.colorStep.scaleToRef(r,u._scaledColorStep),n.color.addInPlace(u._scaledColorStep),n.color.a<0&&(n.color.a=0)),u._angularSpeedGradients&&u._angularSpeedGradients.length>0&&sd.GetCurrentGradient(h,u._angularSpeedGradients,(function(e,t,i){e!==n._currentAngularSpeedGradient&&(n._currentAngularSpeed1=n._currentAngularSpeed2,n._currentAngularSpeed2=t.getFactor(),n._currentAngularSpeedGradient=e),n.angularSpeed=L.a.Lerp(n._currentAngularSpeed1,n._currentAngularSpeed2,i)})),n.angle+=n.angularSpeed*r;var d=r;if(u._velocityGradients&&u._velocityGradients.length>0&&sd.GetCurrentGradient(h,u._velocityGradients,(function(e,t,i){e!==n._currentVelocityGradient&&(n._currentVelocity1=n._currentVelocity2,n._currentVelocity2=t.getFactor(),n._currentVelocityGradient=e),d*=L.a.Lerp(n._currentVelocity1,n._currentVelocity2,i)})),n.direction.scaleToRef(d,u._scaledDirection),u._limitVelocityGradients&&u._limitVelocityGradients.length>0&&sd.GetCurrentGradient(h,u._limitVelocityGradients,(function(e,t,i){e!==n._currentLimitVelocityGradient&&(n._currentLimitVelocity1=n._currentLimitVelocity2,n._currentLimitVelocity2=t.getFactor(),n._currentLimitVelocityGradient=e);var r=L.a.Lerp(n._currentLimitVelocity1,n._currentLimitVelocity2,i);n.direction.length()>r&&n.direction.scaleInPlace(u.limitVelocityDamping)})),u._dragGradients&&u._dragGradients.length>0&&sd.GetCurrentGradient(h,u._dragGradients,(function(e,t,i){e!==n._currentDragGradient&&(n._currentDrag1=n._currentDrag2,n._currentDrag2=t.getFactor(),n._currentDragGradient=e);var r=L.a.Lerp(n._currentDrag1,n._currentDrag2,i);u._scaledDirection.scaleInPlace(1-r)})),u.isLocal&&n._localPosition?(n._localPosition.addInPlace(u._scaledDirection),a.e.TransformCoordinatesToRef(n._localPosition,u._emitterWorldMatrix,n.position)):n.position.addInPlace(u._scaledDirection),i&&t&&n._randomNoiseCoordinates1){var f=u._fetchR(n._randomNoiseCoordinates1.x,n._randomNoiseCoordinates1.y,t.width,t.height,i),p=u._fetchR(n._randomNoiseCoordinates1.z,n._randomNoiseCoordinates2.x,t.width,t.height,i),_=u._fetchR(n._randomNoiseCoordinates2.y,n._randomNoiseCoordinates2.z,t.width,t.height,i),m=a.c.Vector3[0],g=a.c.Vector3[1];m.copyFromFloats((2*f-1)*u.noiseStrength.x,(2*p-1)*u.noiseStrength.y,(2*_-1)*u.noiseStrength.z),m.scaleToRef(r,g),n.direction.addInPlace(g)}if(u.gravity.scaleToRef(r,u._scaledGravity),n.direction.addInPlace(u._scaledGravity),u._sizeGradients&&u._sizeGradients.length>0&&sd.GetCurrentGradient(h,u._sizeGradients,(function(e,t,i){e!==n._currentSizeGradient&&(n._currentSize1=n._currentSize2,n._currentSize2=t.getFactor(),n._currentSizeGradient=e),n.size=L.a.Lerp(n._currentSize1,n._currentSize2,i)})),u._useRampGradients&&(u._colorRemapGradients&&u._colorRemapGradients.length>0&&sd.GetCurrentGradient(h,u._colorRemapGradients,(function(e,t,i){var r=L.a.Lerp(e.factor1,t.factor1,i),o=L.a.Lerp(e.factor2,t.factor2,i);n.remapData.x=r,n.remapData.y=o-r})),u._alphaRemapGradients&&u._alphaRemapGradients.length>0&&sd.GetCurrentGradient(h,u._alphaRemapGradients,(function(e,t,i){var r=L.a.Lerp(e.factor1,t.factor1,i),o=L.a.Lerp(e.factor2,t.factor2,i);n.remapData.z=r,n.remapData.w=o-r}))),u._isAnimationSheetEnabled&&n.updateCellIndex(),n._inheritParticleInfoToSubEmitters(),n.age>=n.lifeTime)return u._emitFromParticle(n),n._attachedSubEmitters&&(n._attachedSubEmitters.forEach((function(e){e.particleSystem.disposeOnStop=!0,e.particleSystem.stop()})),n._attachedSubEmitters=null),u.recycleParticle(n),o--,\"continue\"},o=0;ot.gradient?1:0}))},t.prototype._removeFactorGradient=function(e,t){if(e)for(var i=0,n=0,r=e;nt.gradient?1:0})),this._rampGradientsTexture&&(this._rampGradientsTexture.dispose(),this._rampGradientsTexture=null),this._createRampGradientTexture())},t.prototype.addRampGradient=function(e,t){this._rampGradients||(this._rampGradients=[]);var i=new od(e,t);return this._rampGradients.push(i),this._syncRampGradientTexture(),this},t.prototype.removeRampGradient=function(e){return this._removeGradientAndTexture(e,this._rampGradients,this._rampGradientsTexture),this._rampGradientsTexture=null,this._rampGradients&&this._rampGradients.length>0&&this._createRampGradientTexture(),this},t.prototype.addColorGradient=function(e,t,i){this._colorGradients||(this._colorGradients=[]);var n=new rd(e,t,i);return this._colorGradients.push(n),this._colorGradients.sort((function(e,t){return e.gradientt.gradient?1:0})),this},t.prototype.removeColorGradient=function(e){if(!this._colorGradients)return this;for(var t=0,i=0,n=this._colorGradients;i0&&(this._currentEmitRateGradient=this._emitRateGradients[0],this._currentEmitRate1=this._currentEmitRateGradient.getFactor(),this._currentEmitRate2=this._currentEmitRate1),this._emitRateGradients.length>1&&(this._currentEmitRate2=this._emitRateGradients[1].getFactor())),this._startSizeGradients&&(this._startSizeGradients.length>0&&(this._currentStartSizeGradient=this._startSizeGradients[0],this._currentStartSize1=this._currentStartSizeGradient.getFactor(),this._currentStartSize2=this._currentStartSize1),this._startSizeGradients.length>1&&(this._currentStartSize2=this._startSizeGradients[1].getFactor())),this.preWarmCycles){-1!==(null===(t=this.emitter)||void 0===t?void 0:t.getClassName().indexOf(\"Mesh\"))&&this.emitter.computeWorldMatrix(!0);var n=this.noiseTexture;if(n&&n.onGeneratedObservable)n.onGeneratedObservable.addOnce((function(){setTimeout((function(){for(var e=0;e0&&this._scene&&this._scene.beginAnimation(this,this.beginAnimationFrom,this.beginAnimationTo,this.beginAnimationLoop)}},t.prototype.stop=function(e){void 0===e&&(e=!0),this._stopped||(this.onStoppedObservable.notifyObservers(this),this._stopped=!0,e&&this._stopSubEmitters())},t.prototype.reset=function(){this._stockParticles=[],this._particles=[]},t.prototype._appendParticleVertex=function(e,i,n,r){var o=e*this._vertexBufferSize;if(this._vertexData[o++]=i.position.x+this.worldOffset.x,this._vertexData[o++]=i.position.y+this.worldOffset.y,this._vertexData[o++]=i.position.z+this.worldOffset.z,this._vertexData[o++]=i.color.r,this._vertexData[o++]=i.color.g,this._vertexData[o++]=i.color.b,this._vertexData[o++]=i.color.a,this._vertexData[o++]=i.angle,this._vertexData[o++]=i.scale.x*i.size,this._vertexData[o++]=i.scale.y*i.size,this._isAnimationSheetEnabled&&(this._vertexData[o++]=i.cellIndex),this._isBillboardBased)this.billboardMode===t.BILLBOARDMODE_STRETCHED&&(this._vertexData[o++]=i.direction.x,this._vertexData[o++]=i.direction.y,this._vertexData[o++]=i.direction.z);else if(i._initialDirection){var s=i._initialDirection;this.isLocal&&(a.e.TransformNormalToRef(s,this._emitterWorldMatrix,a.c.Vector3[0]),s=a.c.Vector3[0]),0===s.x&&0===s.z&&(s.x=.001),this._vertexData[o++]=s.x,this._vertexData[o++]=s.y,this._vertexData[o++]=s.z}else{var c=i.direction;this.isLocal&&(a.e.TransformNormalToRef(c,this._emitterWorldMatrix,a.c.Vector3[0]),c=a.c.Vector3[0]),0===c.x&&0===c.z&&(c.x=.001),this._vertexData[o++]=c.x,this._vertexData[o++]=c.y,this._vertexData[o++]=c.z}this._useRampGradients&&i.remapData&&(this._vertexData[o++]=i.remapData.x,this._vertexData[o++]=i.remapData.y,this._vertexData[o++]=i.remapData.z,this._vertexData[o++]=i.remapData.w),this._useInstancing||(this._isAnimationSheetEnabled&&(0===n?n=this._epsilon:1===n&&(n=1-this._epsilon),0===r?r=this._epsilon:1===r&&(r=1-this._epsilon)),this._vertexData[o++]=n,this._vertexData[o++]=r)},t.prototype._stopSubEmitters=function(){this.activeSubSystems&&(this.activeSubSystems.forEach((function(e){e.stop(!0)})),this.activeSubSystems=new Array)},t.prototype._removeFromRoot=function(){if(this._rootParticleSystem){var e=this._rootParticleSystem.activeSubSystems.indexOf(this);-1!==e&&this._rootParticleSystem.activeSubSystems.splice(e,1),this._rootParticleSystem=null}},t.prototype._update=function(e){var t,i=this;if(this._alive=this._particles.length>0,this.emitter.position){var n=this.emitter;this._emitterWorldMatrix=n.getWorldMatrix()}else{var r=this.emitter;this._emitterWorldMatrix=a.a.Translation(r.x,r.y,r.z)}this.updateFunction(this._particles);for(var o,c=function(){if(l._particles.length===l._capacity)return\"break\";if(t=l._createParticle(),l._particles.push(t),l.targetStopDuration&&l._lifeTimeGradients&&l._lifeTimeGradients.length>0){var e=L.a.Clamp(l._actualFrame/l.targetStopDuration);sd.GetCurrentGradient(e,l._lifeTimeGradients,(function(i,n){var r=i,o=n,a=r.getFactor(),s=o.getFactor(),c=(e-r.gradient)/(o.gradient-r.gradient);t.lifeTime=L.a.Lerp(a,s,c)}))}else t.lifeTime=L.a.RandomRange(l.minLifeTime,l.maxLifeTime);var n=L.a.RandomRange(l.minEmitPower,l.maxEmitPower);if(l.startPositionFunction?l.startPositionFunction(l._emitterWorldMatrix,t.position,t,l.isLocal):l.particleEmitterType.startPositionFunction(l._emitterWorldMatrix,t.position,t,l.isLocal),l.isLocal&&(t._localPosition?t._localPosition.copyFrom(t.position):t._localPosition=t.position.clone(),a.e.TransformCoordinatesToRef(t._localPosition,l._emitterWorldMatrix,t.position)),l.startDirectionFunction?l.startDirectionFunction(l._emitterWorldMatrix,t.direction,t,l.isLocal):l.particleEmitterType.startDirectionFunction(l._emitterWorldMatrix,t.direction,t,l.isLocal),0===n?t._initialDirection?t._initialDirection.copyFrom(t.direction):t._initialDirection=t.direction.clone():t._initialDirection=null,t.direction.scaleInPlace(n),l._sizeGradients&&0!==l._sizeGradients.length?(t._currentSizeGradient=l._sizeGradients[0],t._currentSize1=t._currentSizeGradient.getFactor(),t.size=t._currentSize1,l._sizeGradients.length>1?t._currentSize2=l._sizeGradients[1].getFactor():t._currentSize2=t._currentSize1):t.size=L.a.RandomRange(l.minSize,l.maxSize),t.scale.copyFromFloats(L.a.RandomRange(l.minScaleX,l.maxScaleX),L.a.RandomRange(l.minScaleY,l.maxScaleY)),l._startSizeGradients&&l._startSizeGradients[0]&&l.targetStopDuration){var r=l._actualFrame/l.targetStopDuration;sd.GetCurrentGradient(r,l._startSizeGradients,(function(e,n,r){e!==i._currentStartSizeGradient&&(i._currentStartSize1=i._currentStartSize2,i._currentStartSize2=n.getFactor(),i._currentStartSizeGradient=e);var o=L.a.Lerp(i._currentStartSize1,i._currentStartSize2,r);t.scale.scaleInPlace(o)}))}l._angularSpeedGradients&&0!==l._angularSpeedGradients.length?(t._currentAngularSpeedGradient=l._angularSpeedGradients[0],t.angularSpeed=t._currentAngularSpeedGradient.getFactor(),t._currentAngularSpeed1=t.angularSpeed,l._angularSpeedGradients.length>1?t._currentAngularSpeed2=l._angularSpeedGradients[1].getFactor():t._currentAngularSpeed2=t._currentAngularSpeed1):t.angularSpeed=L.a.RandomRange(l.minAngularSpeed,l.maxAngularSpeed),t.angle=L.a.RandomRange(l.minInitialRotation,l.maxInitialRotation),l._velocityGradients&&l._velocityGradients.length>0&&(t._currentVelocityGradient=l._velocityGradients[0],t._currentVelocity1=t._currentVelocityGradient.getFactor(),l._velocityGradients.length>1?t._currentVelocity2=l._velocityGradients[1].getFactor():t._currentVelocity2=t._currentVelocity1),l._limitVelocityGradients&&l._limitVelocityGradients.length>0&&(t._currentLimitVelocityGradient=l._limitVelocityGradients[0],t._currentLimitVelocity1=t._currentLimitVelocityGradient.getFactor(),l._limitVelocityGradients.length>1?t._currentLimitVelocity2=l._limitVelocityGradients[1].getFactor():t._currentLimitVelocity2=t._currentLimitVelocity1),l._dragGradients&&l._dragGradients.length>0&&(t._currentDragGradient=l._dragGradients[0],t._currentDrag1=t._currentDragGradient.getFactor(),l._dragGradients.length>1?t._currentDrag2=l._dragGradients[1].getFactor():t._currentDrag2=t._currentDrag1),l._colorGradients&&0!==l._colorGradients.length?(t._currentColorGradient=l._colorGradients[0],t._currentColorGradient.getColorToRef(t.color),t._currentColor1.copyFrom(t.color),l._colorGradients.length>1?l._colorGradients[1].getColorToRef(t._currentColor2):t._currentColor2.copyFrom(t.color)):(o=L.a.RandomRange(0,1),s.b.LerpToRef(l.color1,l.color2,o,t.color),l.colorDead.subtractToRef(t.color,l._colorDiff),l._colorDiff.scaleToRef(1/t.lifeTime,t.colorStep)),l._isAnimationSheetEnabled&&(t._initialStartSpriteCellID=l.startSpriteCellID,t._initialEndSpriteCellID=l.endSpriteCellID),t.direction.addInPlace(l._inheritedVelocityOffset),l._useRampGradients&&(t.remapData=new a.f(0,1,0,1)),l.noiseTexture&&(t._randomNoiseCoordinates1?(t._randomNoiseCoordinates1.copyFromFloats(Math.random(),Math.random(),Math.random()),t._randomNoiseCoordinates2.copyFromFloats(Math.random(),Math.random(),Math.random())):(t._randomNoiseCoordinates1=new a.e(Math.random(),Math.random(),Math.random()),t._randomNoiseCoordinates2=new a.e(Math.random(),Math.random(),Math.random()))),t._inheritParticleInfoToSubEmitters()},l=this,u=0;u-1)n=this.manualEmitCount,this._newPartsExcess=0,this.manualEmitCount=0;else{var r=this.emitRate;if(this._emitRateGradients&&this._emitRateGradients.length>0&&this.targetStopDuration){var o=this._actualFrame/this.targetStopDuration;sd.GetCurrentGradient(o,this._emitRateGradients,(function(e,t,n){e!==i._currentEmitRateGradient&&(i._currentEmitRate1=i._currentEmitRate2,i._currentEmitRate2=t.getFactor(),i._currentEmitRateGradient=e),r=L.a.Lerp(i._currentEmitRate1,i._currentEmitRate2,n)}))}n=r*this._scaledUpdateSpeed>>0,this._newPartsExcess+=r*this._scaledUpdateSpeed-n}if(this._newPartsExcess>1&&(n+=this._newPartsExcess>>0,this._newPartsExcess-=this._newPartsExcess>>0),this._alive=!1,this._stopped?n=0:(this._actualFrame+=this._scaledUpdateSpeed,this.targetStopDuration&&this._actualFrame>=this.targetStopDuration&&this.stop()),this._update(n),this._stopped&&(this._alive||(this._started=!1,this.onAnimationEnd&&this.onAnimationEnd(),this.disposeOnStop&&this._scene&&this._scene._toBeDisposed.push(this))),!e){for(var a=0,s=0;s=0&&(s.invertToRef(a.c.Matrix[0]),r.setMatrix(\"invView\",a.c.Matrix[0])),void 0!==this._vertexArrayObject?(this._vertexArrayObject||(this._vertexArrayObject=this._engine.recordVertexArrayObject(this._vertexBuffers,this._indexBuffer,r)),this._engine.bindVertexArrayObject(this._vertexArrayObject,this._indexBuffer)):o.bindBuffers(this._vertexBuffers,this._indexBuffer,r),this._imageProcessingConfiguration&&!this._imageProcessingConfiguration.applyByPostProcess&&this._imageProcessingConfiguration.bind(r),e){case t.BLENDMODE_ADD:o.setAlphaMode(g.a.ALPHA_ADD);break;case t.BLENDMODE_ONEONE:o.setAlphaMode(g.a.ALPHA_ONEONE);break;case t.BLENDMODE_STANDARD:o.setAlphaMode(g.a.ALPHA_COMBINE);break;case t.BLENDMODE_MULTIPLY:o.setAlphaMode(g.a.ALPHA_MULTIPLY)}return this._onBeforeDrawParticlesObservable&&this._onBeforeDrawParticlesObservable.notifyObservers(r),this._useInstancing?o.drawArraysType(g.a.MATERIAL_TriangleFanDrawMode,0,4,this._particles.length):o.drawElementsType(g.a.MATERIAL_TriangleFillMode,0,6*this._particles.length),this._particles.length},t.prototype.render=function(){if(!this.isReady()||!this._particles.length)return 0;var e=this._engine;e.setState&&(e.setState(!1),this.forceDepthWrite&&e.setDepthWrite(!0));var i=0;return i=this.blendMode===t.BLENDMODE_MULTIPLYADD?this._render(t.BLENDMODE_MULTIPLY)+this._render(t.BLENDMODE_ADD):this._render(this.blendMode),this._engine.unbindInstanceAttributes(),this._engine.setAlphaMode(g.a.ALPHA_DISABLE),i},t.prototype.dispose=function(e){if(void 0===e&&(e=!0),this._vertexBuffer&&(this._vertexBuffer.dispose(),this._vertexBuffer=null),this._spriteBuffer&&(this._spriteBuffer.dispose(),this._spriteBuffer=null),this._indexBuffer&&(this._engine._releaseBuffer(this._indexBuffer),this._indexBuffer=null),this._vertexArrayObject&&(this._engine.releaseVertexArrayObject(this._vertexArrayObject),this._vertexArrayObject=null),e&&this.particleTexture&&(this.particleTexture.dispose(),this.particleTexture=null),e&&this.noiseTexture&&(this.noiseTexture.dispose(),this.noiseTexture=null),this._rampGradientsTexture&&(this._rampGradientsTexture.dispose(),this._rampGradientsTexture=null),this._removeFromRoot(),this._subEmitters&&this._subEmitters.length){for(var t=0;t-1&&this._scene.particleSystems.splice(t,1),this._scene._activeParticleSystems.dispose());this.onDisposeObservable.notifyObservers(this),this.onDisposeObservable.clear(),this.onStoppedObservable.clear(),this.reset()},t.prototype.clone=function(e,i){var n=Object(h.a)({},this._customEffect),r=null,o=this._engine;if(o.createEffectForParticles&&null!=this.customShader){var a=(r=this.customShader).shaderOptions.defines.length>0?r.shaderOptions.defines.join(\"\\n\"):\"\";n[0]=o.createEffectForParticles(r.shaderPath.fragmentElement,r.shaderOptions.uniforms,r.shaderOptions.samplers,a)}var s=this.serialize(),c=t.Parse(s,this._scene||this._engine,\"\");return c.name=e,c.customShader=r,c._customEffect=n,void 0===i&&(i=this.emitter),this.noiseTexture&&(c.noiseTexture=this.noiseTexture.clone()),c.emitter=i,this.preventAutoStart||c.start(),c},t.prototype.serialize=function(e){void 0===e&&(e=!1);var i={};if(t._Serialize(i,this,e),i.textureMask=this.textureMask.asArray(),i.customShader=this.customShader,i.preventAutoStart=this.preventAutoStart,this.subEmitters){i.subEmitters=[],this._subEmitters||this._prepareSubEmitterInternalArray();for(var n=0,r=this._subEmitters;n0?l.shaderOptions.defines.join(\"\\n\"):\"\";c=o.createEffectForParticles(l.shaderPath.fragmentElement,l.shaderOptions.uniforms,l.shaderOptions.samplers,u)}var h=new t(a,e.capacity,i,c,e.isAnimationSheetEnabled);if(h.customShader=l,e.id&&(h.id=e.id),e.subEmitters){h.subEmitters=[];for(var d=0,f=e.subEmitters;d=life && stopFactor != 0.) {\\nvec3 newPosition;\\nvec3 newDirection;\\n\\nvec4 randoms=getRandomVec4(seed.x);\\n\\noutLife=lifeTime.x+(lifeTime.y-lifeTime.x)*randoms.r;\\noutAge=newAge-life;\\n\\noutSeed=seed;\\n\\n#ifdef SIZEGRADIENTS\\noutSize.x=texture(sizeGradientSampler,vec2(0,0)).r;\\n#else\\noutSize.x=sizeRange.x+(sizeRange.y-sizeRange.x)*randoms.g;\\n#endif\\noutSize.y=scaleRange.x+(scaleRange.y-scaleRange.x)*randoms.b;\\noutSize.z=scaleRange.z+(scaleRange.w-scaleRange.z)*randoms.a;\\n#ifndef COLORGRADIENTS\\n\\noutColor=color1+(color2-color1)*randoms.b;\\n#endif\\n\\n#ifndef ANGULARSPEEDGRADIENTS\\noutAngle.y=angleRange.x+(angleRange.y-angleRange.x)*randoms.a;\\noutAngle.x=angleRange.z+(angleRange.w-angleRange.z)*randoms.r;\\n#else\\noutAngle=angleRange.z+(angleRange.w-angleRange.z)*randoms.r;\\n#endif\\n\\n#ifdef POINTEMITTER\\nvec3 randoms2=getRandomVec3(seed.y);\\nvec3 randoms3=getRandomVec3(seed.z);\\nnewPosition=vec3(0,0,0);\\nnewDirection=direction1+(direction2-direction1)*randoms3;\\n#elif defined(BOXEMITTER)\\nvec3 randoms2=getRandomVec3(seed.y);\\nvec3 randoms3=getRandomVec3(seed.z);\\nnewPosition=minEmitBox+(maxEmitBox-minEmitBox)*randoms2;\\nnewDirection=direction1+(direction2-direction1)*randoms3;\\n#elif defined(HEMISPHERICEMITTER)\\nvec3 randoms2=getRandomVec3(seed.y);\\nvec3 randoms3=getRandomVec3(seed.z);\\n\\nfloat phi=2.0*PI*randoms2.x;\\nfloat theta=acos(2.0*randoms2.y-1.0);\\nfloat randX=cos(phi)*sin(theta);\\nfloat randY=cos(theta);\\nfloat randZ=sin(phi)*sin(theta);\\nnewPosition=(radius-(radius*radiusRange*randoms2.z))*vec3(randX,abs(randY),randZ);\\nnewDirection=newPosition+directionRandomizer*randoms3;\\n#elif defined(SPHEREEMITTER)\\nvec3 randoms2=getRandomVec3(seed.y);\\nvec3 randoms3=getRandomVec3(seed.z);\\n\\nfloat phi=2.0*PI*randoms2.x;\\nfloat theta=acos(2.0*randoms2.y-1.0);\\nfloat randX=cos(phi)*sin(theta);\\nfloat randY=cos(theta);\\nfloat randZ=sin(phi)*sin(theta);\\nnewPosition=(radius-(radius*radiusRange*randoms2.z))*vec3(randX,randY,randZ);\\n#ifdef DIRECTEDSPHEREEMITTER\\nnewDirection=direction1+(direction2-direction1)*randoms3;\\n#else\\n\\nnewDirection=newPosition+directionRandomizer*randoms3;\\n#endif\\n#elif defined(CYLINDEREMITTER)\\nvec3 randoms2=getRandomVec3(seed.y);\\nvec3 randoms3=getRandomVec3(seed.z);\\n\\nfloat yPos=(randoms2.x-0.5)*height;\\nfloat angle=randoms2.y*PI*2.;\\nfloat inverseRadiusRangeSquared=((1.-radiusRange)*(1.-radiusRange));\\nfloat positionRadius=radius*sqrt(inverseRadiusRangeSquared+(randoms2.z*(1.-inverseRadiusRangeSquared)));\\nfloat xPos=positionRadius*cos(angle);\\nfloat zPos=positionRadius*sin(angle);\\nnewPosition=vec3(xPos,yPos,zPos);\\n#ifdef DIRECTEDCYLINDEREMITTER\\nnewDirection=direction1+(direction2-direction1)*randoms3;\\n#else\\n\\nangle=angle+((randoms3.x-0.5)*PI);\\nnewDirection=vec3(cos(angle),randoms3.y-0.5,sin(angle));\\nnewDirection=normalize(newDirection);\\n#endif\\n#elif defined(CONEEMITTER)\\nvec3 randoms2=getRandomVec3(seed.y);\\nfloat s=2.0*PI*randoms2.x;\\n#ifdef CONEEMITTERSPAWNPOINT\\nfloat h=0.0001;\\n#else\\nfloat h=randoms2.y*height.y;\\n\\nh=1.-h*h;\\n#endif\\nfloat lRadius=radius.x-radius.x*randoms2.z*radius.y;\\nlRadius=lRadius*h;\\nfloat randX=lRadius*sin(s);\\nfloat randZ=lRadius*cos(s);\\nfloat randY=h*height.x;\\nnewPosition=vec3(randX,randY,randZ);\\n\\nif (abs(cos(coneAngle)) == 1.0) {\\nnewDirection=vec3(0.,1.0,0.);\\n} else {\\nvec3 randoms3=getRandomVec3(seed.z);\\nnewDirection=normalize(newPosition+directionRandomizer*randoms3);\\n}\\n#elif defined(CUSTOMEMITTER)\\nnewPosition=initialPosition;\\noutInitialPosition=initialPosition;\\n#else\\n\\nnewPosition=vec3(0.,0.,0.);\\n\\nnewDirection=2.0*(getRandomVec3(seed.w)-vec3(0.5,0.5,0.5));\\n#endif\\nfloat power=emitPower.x+(emitPower.y-emitPower.x)*randoms.a;\\n#ifdef LOCAL\\noutPosition=newPosition;\\n#else\\noutPosition=(emitterWM*vec4(newPosition,1.)).xyz;\\n#endif\\n#ifdef CUSTOMEMITTER\\noutDirection=direction;\\n#ifndef BILLBOARD\\noutInitialDirection=direction;\\n#endif\\n#else\\n#ifdef LOCAL\\nvec3 initial=newDirection;\\n#else\\nvec3 initial=(emitterWM*vec4(newDirection,0.)).xyz;\\n#endif\\noutDirection=initial*power;\\n#ifndef BILLBOARD\\noutInitialDirection=initial;\\n#endif\\n#endif\\n#ifdef ANIMATESHEET\\noutCellIndex=cellInfos.x;\\n#ifdef ANIMATESHEETRANDOMSTART\\noutCellStartOffset=randoms.a*outLife;\\n#endif\\n#endif\\n#ifdef NOISE\\noutNoiseCoordinates1=noiseCoordinates1;\\noutNoiseCoordinates2=noiseCoordinates2;\\n#endif\\n} else {\\nfloat directionScale=timeDelta;\\noutAge=newAge;\\nfloat ageGradient=newAge/life;\\n#ifdef VELOCITYGRADIENTS\\ndirectionScale*=texture(velocityGradientSampler,vec2(ageGradient,0)).r;\\n#endif\\n#ifdef DRAGGRADIENTS\\ndirectionScale*=1.0-texture(dragGradientSampler,vec2(ageGradient,0)).r;\\n#endif\\n#if defined(CUSTOMEMITTER)\\noutPosition=position+(direction-position)*ageGradient;\\noutInitialPosition=initialPosition;\\n#else\\noutPosition=position+direction*directionScale;\\n#endif\\noutLife=life;\\noutSeed=seed;\\n#ifndef COLORGRADIENTS\\noutColor=color;\\n#endif\\n#ifdef SIZEGRADIENTS\\noutSize.x=texture(sizeGradientSampler,vec2(ageGradient,0)).r;\\noutSize.yz=size.yz;\\n#else\\noutSize=size;\\n#endif\\n#ifndef BILLBOARD\\noutInitialDirection=initialDirection;\\n#endif\\n#ifdef CUSTOMEMITTER\\noutDirection=direction;\\n#else\\nvec3 updatedDirection=direction+gravity*timeDelta;\\n#ifdef LIMITVELOCITYGRADIENTS\\nfloat limitVelocity=texture(limitVelocityGradientSampler,vec2(ageGradient,0)).r;\\nfloat currentVelocity=length(updatedDirection);\\nif (currentVelocity>limitVelocity) {\\nupdatedDirection=updatedDirection*limitVelocityDamping;\\n}\\n#endif\\noutDirection=updatedDirection;\\n#ifdef NOISE\\nfloat fetchedR=texture(noiseSampler,vec2(noiseCoordinates1.x,noiseCoordinates1.y)*vec2(0.5)+vec2(0.5)).r;\\nfloat fetchedG=texture(noiseSampler,vec2(noiseCoordinates1.z,noiseCoordinates2.x)*vec2(0.5)+vec2(0.5)).r;\\nfloat fetchedB=texture(noiseSampler,vec2(noiseCoordinates2.y,noiseCoordinates2.z)*vec2(0.5)+vec2(0.5)).r;\\nvec3 force=vec3(2.*fetchedR-1.,2.*fetchedG-1.,2.*fetchedB-1.)*noiseStrength;\\noutDirection=outDirection+force*timeDelta;\\noutNoiseCoordinates1=noiseCoordinates1;\\noutNoiseCoordinates2=noiseCoordinates2;\\n#endif\\n#endif\\n#ifdef ANGULARSPEEDGRADIENTS\\nfloat angularSpeed=texture(angularSpeedGradientSampler,vec2(ageGradient,0)).r;\\noutAngle=angle+angularSpeed*timeDelta;\\n#else\\noutAngle=vec2(angle.x+angle.y*timeDelta,angle.y);\\n#endif\\n#ifdef ANIMATESHEET\\nfloat offsetAge=outAge;\\nfloat dist=cellInfos.y-cellInfos.x;\\n#ifdef ANIMATESHEETRANDOMSTART\\noutCellStartOffset=cellStartOffset;\\noffsetAge+=cellStartOffset;\\n#else\\nfloat cellStartOffset=0.;\\n#endif\\nfloat ratio=clamp(mod(cellStartOffset+cellInfos.z*offsetAge,life)/life,0.,1.0);\\noutCellIndex=float(int(cellInfos.x+ratio*dist));\\n#endif\\n}\\n}\";ai.a.ShadersStore.gpuUpdateParticlesVertexShader=fd;var pd=\"#ifdef CLIPPLANE\\nin float fClipDistance;\\n#endif\\n#ifdef CLIPPLANE2\\nin float fClipDistance2;\\n#endif\\n#ifdef CLIPPLANE3\\nin float fClipDistance3;\\n#endif\\n#ifdef CLIPPLANE4\\nin float fClipDistance4;\\n#endif\\n#ifdef CLIPPLANE5\\nin float fClipDistance5;\\n#endif\\n#ifdef CLIPPLANE6\\nin float fClipDistance6;\\n#endif\";ai.a.IncludesShadersStore.clipPlaneFragmentDeclaration2=pd;var _d=\"#version 300 es\\nuniform sampler2D diffuseSampler;\\nin vec2 vUV;\\nin vec4 vColor;\\nout vec4 outFragColor;\\n#include\\n#include\\n#include\\n#include\\nvoid main() {\\n#include\\nvec4 textureColor=texture(diffuseSampler,vUV);\\noutFragColor=textureColor*vColor;\\n#ifdef BLENDMULTIPLYMODE\\nfloat alpha=vColor.a*textureColor.a;\\noutFragColor.rgb=outFragColor.rgb*alpha+vec3(1.0)*(1.0-alpha);\\n#endif\\n\\n\\n#ifdef IMAGEPROCESSINGPOSTPROCESS\\noutFragColor.rgb=toLinearSpace(outFragColor.rgb);\\n#else\\n#ifdef IMAGEPROCESSING\\noutFragColor.rgb=toLinearSpace(outFragColor.rgb);\\noutFragColor=applyImageProcessing(outFragColor);\\n#endif\\n#endif\\n}\\n\";ai.a.ShadersStore.gpuRenderParticlesPixelShader=_d;var md=\"#ifdef CLIPPLANE\\nuniform vec4 vClipPlane;\\nout float fClipDistance;\\n#endif\\n#ifdef CLIPPLANE2\\nuniform vec4 vClipPlane2;\\nout float fClipDistance2;\\n#endif\\n#ifdef CLIPPLANE3\\nuniform vec4 vClipPlane3;\\nout float fClipDistance3;\\n#endif\\n#ifdef CLIPPLANE4\\nuniform vec4 vClipPlane4;\\nout float fClipDistance4;\\n#endif\\n#ifdef CLIPPLANE5\\nuniform vec4 vClipPlane5;\\nout float fClipDistance5;\\n#endif\\n#ifdef CLIPPLANE6\\nuniform vec4 vClipPlane6;\\nout float fClipDistance6;\\n#endif\";ai.a.IncludesShadersStore.clipPlaneVertexDeclaration2=md;var gd=\"#version 300 es\\nuniform mat4 view;\\nuniform mat4 projection;\\nuniform vec2 translationPivot;\\nuniform vec3 worldOffset;\\n#ifdef LOCAL\\nuniform mat4 emitterWM;\\n#endif\\n\\nin vec3 position;\\nin float age;\\nin float life;\\nin vec3 size;\\n#ifndef BILLBOARD\\nin vec3 initialDirection;\\n#endif\\n#ifdef BILLBOARDSTRETCHED\\nin vec3 direction;\\n#endif\\nin float angle;\\n#ifdef ANIMATESHEET\\nin float cellIndex;\\n#endif\\nin vec2 offset;\\nin vec2 uv;\\nout vec2 vUV;\\nout vec4 vColor;\\nout vec3 vPositionW;\\n#if defined(BILLBOARD) && !defined(BILLBOARDY) && !defined(BILLBOARDSTRETCHED)\\nuniform mat4 invView;\\n#endif\\n#include\\n#ifdef COLORGRADIENTS\\nuniform sampler2D colorGradientSampler;\\n#else\\nuniform vec4 colorDead;\\nin vec4 color;\\n#endif\\n#ifdef ANIMATESHEET\\nuniform vec3 sheetInfos;\\n#endif\\n#ifdef BILLBOARD\\nuniform vec3 eyePosition;\\n#endif\\nvec3 rotate(vec3 yaxis,vec3 rotatedCorner) {\\nvec3 xaxis=normalize(cross(vec3(0.,1.0,0.),yaxis));\\nvec3 zaxis=normalize(cross(yaxis,xaxis));\\nvec3 row0=vec3(xaxis.x,xaxis.y,xaxis.z);\\nvec3 row1=vec3(yaxis.x,yaxis.y,yaxis.z);\\nvec3 row2=vec3(zaxis.x,zaxis.y,zaxis.z);\\nmat3 rotMatrix=mat3(row0,row1,row2);\\nvec3 alignedCorner=rotMatrix*rotatedCorner;\\n#ifdef LOCAL\\nreturn ((emitterWM*vec4(position,1.0)).xyz+worldOffset)+alignedCorner;\\n#else\\nreturn (position+worldOffset)+alignedCorner;\\n#endif\\n}\\n#ifdef BILLBOARDSTRETCHED\\nvec3 rotateAlign(vec3 toCamera,vec3 rotatedCorner) {\\nvec3 normalizedToCamera=normalize(toCamera);\\nvec3 normalizedCrossDirToCamera=normalize(cross(normalize(direction),normalizedToCamera));\\nvec3 crossProduct=normalize(cross(normalizedToCamera,normalizedCrossDirToCamera));\\nvec3 row0=vec3(normalizedCrossDirToCamera.x,normalizedCrossDirToCamera.y,normalizedCrossDirToCamera.z);\\nvec3 row1=vec3(crossProduct.x,crossProduct.y,crossProduct.z);\\nvec3 row2=vec3(normalizedToCamera.x,normalizedToCamera.y,normalizedToCamera.z);\\nmat3 rotMatrix=mat3(row0,row1,row2);\\nvec3 alignedCorner=rotMatrix*rotatedCorner;\\n#ifdef LOCAL\\nreturn ((emitterWM*vec4(position,1.0)).xyz+worldOffset)+alignedCorner;\\n#else\\nreturn (position+worldOffset)+alignedCorner;\\n#endif\\n}\\n#endif\\nvoid main() {\\n#ifdef ANIMATESHEET\\nfloat rowOffset=floor(cellIndex/sheetInfos.z);\\nfloat columnOffset=cellIndex-rowOffset*sheetInfos.z;\\nvec2 uvScale=sheetInfos.xy;\\nvec2 uvOffset=vec2(uv.x ,1.0-uv.y);\\nvUV=(uvOffset+vec2(columnOffset,rowOffset))*uvScale;\\n#else\\nvUV=uv;\\n#endif\\nfloat ratio=age/life;\\n#ifdef COLORGRADIENTS\\nvColor=texture(colorGradientSampler,vec2(ratio,0));\\n#else\\nvColor=color*vec4(1.0-ratio)+colorDead*vec4(ratio);\\n#endif\\nvec2 cornerPos=(offset-translationPivot)*size.yz*size.x+translationPivot;\\n#ifdef BILLBOARD\\nvec4 rotatedCorner;\\nrotatedCorner.w=0.;\\n#ifdef BILLBOARDY\\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\\nrotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\\nrotatedCorner.y=0.;\\nvec3 yaxis=(position+worldOffset)-eyePosition;\\nyaxis.y=0.;\\nvPositionW=rotate(normalize(yaxis),rotatedCorner.xyz);\\nvec4 viewPosition=(view*vec4(vPositionW,1.0));\\n#elif defined(BILLBOARDSTRETCHED)\\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\\nrotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\\nrotatedCorner.z=0.;\\nvec3 toCamera=(position+worldOffset)-eyePosition;\\nvPositionW=rotateAlign(toCamera,rotatedCorner.xyz);\\nvec4 viewPosition=(view*vec4(vPositionW,1.0));\\n#else\\n\\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\\nrotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\\nrotatedCorner.z=0.;\\n\\n#ifdef LOCAL\\nvec4 viewPosition=view*vec4(((emitterWM*vec4(position,1.0)).xyz+worldOffset),1.0)+rotatedCorner;\\n#else\\nvec4 viewPosition=view*vec4((position+worldOffset),1.0)+rotatedCorner;\\n#endif\\nvPositionW=(invView*viewPosition).xyz;\\n#endif\\n#else\\n\\nvec3 rotatedCorner;\\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\\nrotatedCorner.y=0.;\\nrotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\\nvec3 yaxis=normalize(initialDirection);\\nvPositionW=rotate(yaxis,rotatedCorner);\\n\\nvec4 viewPosition=view*vec4(vPositionW,1.0);\\n#endif\\ngl_Position=projection*viewPosition;\\n\\n#if defined(CLIPPLANE) || defined(CLIPPLANE2) || defined(CLIPPLANE3) || defined(CLIPPLANE4) || defined(CLIPPLANE5) || defined(CLIPPLANE6)\\nvec4 worldPos=vec4(vPositionW,1.0);\\n#endif\\n#include\\n}\";ai.a.ShadersStore.gpuRenderParticlesVertexShader=gd;var vd=function(e){function t(t,i,n,r,s){void 0===r&&(r=!1),void 0===s&&(s=null);var c=e.call(this,t)||this;c.layerMask=268435455,c._accumulatedCount=0,c._targetIndex=0,c._currentRenderId=-1,c._started=!1,c._stopped=!1,c._timeDelta=0,c._actualFrame=0,c._rawTextureWidth=256,c.onDisposeObservable=new o.c,c.onStoppedObservable=new o.c,c.forceDepthWrite=!1,c._preWarmDone=!1,c.isLocal=!1,c._onBeforeDrawParticlesObservable=null,n&&\"Scene\"!==n.getClassName()?(c._engine=n,c.defaultProjectionMatrix=a.a.PerspectiveFovLH(.8,1,.1,100)):(c._scene=n||x.a.LastCreatedScene,c._engine=c._scene.getEngine(),c.uniqueId=c._scene.getUniqueId(),c._scene.particleSystems.push(c)),c._customEffect={0:s},c._attachImageProcessingConfiguration(null),i.randomTextureSize||delete i.randomTextureSize;var l=Object(h.a)({capacity:5e4,randomTextureSize:c._engine.getCaps().maxTextureSize},i),u=i;isFinite(u)&&(l.capacity=u),c._capacity=l.capacity,c._activeCount=l.capacity,c._currentActiveCount=0,c._isAnimationSheetEnabled=r,c._updateEffectOptions={attributes:[\"position\",\"initialPosition\",\"age\",\"life\",\"seed\",\"size\",\"color\",\"direction\",\"initialDirection\",\"angle\",\"cellIndex\",\"cellStartOffset\",\"noiseCoordinates1\",\"noiseCoordinates2\"],uniformsNames:[\"currentCount\",\"timeDelta\",\"emitterWM\",\"lifeTime\",\"color1\",\"color2\",\"sizeRange\",\"scaleRange\",\"gravity\",\"emitPower\",\"direction1\",\"direction2\",\"minEmitBox\",\"maxEmitBox\",\"radius\",\"directionRandomizer\",\"height\",\"coneAngle\",\"stopFactor\",\"angleRange\",\"radiusRange\",\"cellInfos\",\"noiseStrength\",\"limitVelocityDamping\"],uniformBuffersNames:[],samplers:[\"randomSampler\",\"randomSampler2\",\"sizeGradientSampler\",\"angularSpeedGradientSampler\",\"velocityGradientSampler\",\"limitVelocityGradientSampler\",\"noiseSampler\",\"dragGradientSampler\"],defines:\"\",fallbacks:null,onCompiled:null,onError:null,indexParameters:null,maxSimultaneousLights:0,transformFeedbackVaryings:[]},c.particleEmitterType=new Nl;for(var d=Math.min(c._engine.getCaps().maxTextureSize,l.randomTextureSize),f=[],p=0;p1},enumerable:!1,configurable:!0}),t.prototype.getCapacity=function(){return this._capacity},Object.defineProperty(t.prototype,\"activeParticleCount\",{get:function(){return this._activeCount},set:function(e){this._activeCount=Math.min(e,this._capacity)},enumerable:!1,configurable:!0}),t.prototype.isReady=function(){return this._updateEffect?!!(this.emitter&&this._updateEffect.isReady()&&(!this._imageProcessingConfiguration||this._imageProcessingConfiguration.isReady())&&this._getEffect().isReady()&&this.particleTexture&&this.particleTexture.isReady()):(this._recreateUpdateEffect(),this._recreateRenderEffect(),!1)},t.prototype.isStarted=function(){return this._started},t.prototype.isStopped=function(){return this._stopped},t.prototype.isStopping=function(){return!1},t.prototype.getActiveCount=function(){return this._currentActiveCount},t.prototype.start=function(e){var t=this;if(void 0===e&&(e=this.startDelay),!this.targetStopDuration&&this._hasTargetStopDurationDependantGradient())throw\"Particle system started with a targetStopDuration dependant gradient (eg. startSizeGradients) but no targetStopDuration set\";e?setTimeout((function(){t.start(0)}),e):(this._started=!0,this._stopped=!1,this._preWarmDone=!1,this.beginAnimationOnStart&&this.animations&&this.animations.length>0&&this._scene&&this._scene.beginAnimation(this,this.beginAnimationFrom,this.beginAnimationTo,this.beginAnimationLoop))},t.prototype.stop=function(){this._stopped||(this._stopped=!0)},t.prototype.reset=function(){this._releaseBuffers(),this._releaseVAOs(),this._currentActiveCount=0,this._targetIndex=0},t.prototype.getClassName=function(){return\"GPUParticleSystem\"},t.prototype.getCustomEffect=function(e){var t;return void 0===e&&(e=0),null!==(t=this._customEffect[e])&&void 0!==t?t:this._customEffect[0]},t.prototype.setCustomEffect=function(e,t){void 0===t&&(t=0),this._customEffect[t]=e},Object.defineProperty(t.prototype,\"onBeforeDrawParticlesObservable\",{get:function(){return this._onBeforeDrawParticlesObservable||(this._onBeforeDrawParticlesObservable=new o.c),this._onBeforeDrawParticlesObservable},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"vertexShaderName\",{get:function(){return\"gpuRenderParticles\"},enumerable:!1,configurable:!0}),t.prototype._removeGradientAndTexture=function(t,i,n){return e.prototype._removeGradientAndTexture.call(this,t,i,n),this._releaseBuffers(),this},t.prototype.addColorGradient=function(e,t,i){this._colorGradients||(this._colorGradients=[]);var n=new rd(e,t);return this._colorGradients.push(n),this._refreshColorGradient(!0),this._releaseBuffers(),this},t.prototype._refreshColorGradient=function(e){void 0===e&&(e=!1),this._colorGradients&&(e&&this._colorGradients.sort((function(e,t){return e.gradientt.gradient?1:0})),this._colorGradientsTexture&&(this._colorGradientsTexture.dispose(),this._colorGradientsTexture=null))},t.prototype.forceRefreshGradients=function(){this._refreshColorGradient(),this._refreshFactorGradient(this._sizeGradients,\"_sizeGradientsTexture\"),this._refreshFactorGradient(this._angularSpeedGradients,\"_angularSpeedGradientsTexture\"),this._refreshFactorGradient(this._velocityGradients,\"_velocityGradientsTexture\"),this._refreshFactorGradient(this._limitVelocityGradients,\"_limitVelocityGradientsTexture\"),this._refreshFactorGradient(this._dragGradients,\"_dragGradientsTexture\"),this.reset()},t.prototype.removeColorGradient=function(e){return this._removeGradientAndTexture(e,this._colorGradients,this._colorGradientsTexture),this._colorGradientsTexture=null,this},t.prototype._addFactorGradient=function(e,t,i){var n=new ad(t,i);e.push(n),this._releaseBuffers()},t.prototype.addSizeGradient=function(e,t){return this._sizeGradients||(this._sizeGradients=[]),this._addFactorGradient(this._sizeGradients,e,t),this._refreshFactorGradient(this._sizeGradients,\"_sizeGradientsTexture\",!0),this._releaseBuffers(),this},t.prototype.removeSizeGradient=function(e){return this._removeGradientAndTexture(e,this._sizeGradients,this._sizeGradientsTexture),this._sizeGradientsTexture=null,this},t.prototype._refreshFactorGradient=function(e,t,i){if(void 0===i&&(i=!1),e){i&&e.sort((function(e,t){return e.gradientt.gradient?1:0}));this[t]&&(this[t].dispose(),this[t]=null)}},t.prototype.addAngularSpeedGradient=function(e,t){return this._angularSpeedGradients||(this._angularSpeedGradients=[]),this._addFactorGradient(this._angularSpeedGradients,e,t),this._refreshFactorGradient(this._angularSpeedGradients,\"_angularSpeedGradientsTexture\",!0),this._releaseBuffers(),this},t.prototype.removeAngularSpeedGradient=function(e){return this._removeGradientAndTexture(e,this._angularSpeedGradients,this._angularSpeedGradientsTexture),this._angularSpeedGradientsTexture=null,this},t.prototype.addVelocityGradient=function(e,t){return this._velocityGradients||(this._velocityGradients=[]),this._addFactorGradient(this._velocityGradients,e,t),this._refreshFactorGradient(this._velocityGradients,\"_velocityGradientsTexture\",!0),this._releaseBuffers(),this},t.prototype.removeVelocityGradient=function(e){return this._removeGradientAndTexture(e,this._velocityGradients,this._velocityGradientsTexture),this._velocityGradientsTexture=null,this},t.prototype.addLimitVelocityGradient=function(e,t){return this._limitVelocityGradients||(this._limitVelocityGradients=[]),this._addFactorGradient(this._limitVelocityGradients,e,t),this._refreshFactorGradient(this._limitVelocityGradients,\"_limitVelocityGradientsTexture\",!0),this._releaseBuffers(),this},t.prototype.removeLimitVelocityGradient=function(e){return this._removeGradientAndTexture(e,this._limitVelocityGradients,this._limitVelocityGradientsTexture),this._limitVelocityGradientsTexture=null,this},t.prototype.addDragGradient=function(e,t){return this._dragGradients||(this._dragGradients=[]),this._addFactorGradient(this._dragGradients,e,t),this._refreshFactorGradient(this._dragGradients,\"_dragGradientsTexture\",!0),this._releaseBuffers(),this},t.prototype.removeDragGradient=function(e){return this._removeGradientAndTexture(e,this._dragGradients,this._dragGradientsTexture),this._dragGradientsTexture=null,this},t.prototype.addEmitRateGradient=function(e,t,i){return this},t.prototype.removeEmitRateGradient=function(e){return this},t.prototype.addStartSizeGradient=function(e,t,i){return this},t.prototype.removeStartSizeGradient=function(e){return this},t.prototype.addColorRemapGradient=function(e,t,i){return this},t.prototype.removeColorRemapGradient=function(){return this},t.prototype.addAlphaRemapGradient=function(e,t,i){return this},t.prototype.removeAlphaRemapGradient=function(){return this},t.prototype.addRampGradient=function(e,t){return this},t.prototype.removeRampGradient=function(){return this},t.prototype.getRampGradients=function(){return null},Object.defineProperty(t.prototype,\"useRampGradients\",{get:function(){return!1},set:function(e){},enumerable:!1,configurable:!0}),t.prototype.addLifeTimeGradient=function(e,t,i){return this},t.prototype.removeLifeTimeGradient=function(e){return this},t.prototype._reset=function(){this._releaseBuffers()},t.prototype._createUpdateVAO=function(e){var t={};t.position=e.createVertexBuffer(\"position\",0,3);var i=3;this.particleEmitterType instanceof zl&&(t.initialPosition=e.createVertexBuffer(\"initialPosition\",i,3),i+=3),t.age=e.createVertexBuffer(\"age\",i,1),i+=1,t.life=e.createVertexBuffer(\"life\",i,1),i+=1,t.seed=e.createVertexBuffer(\"seed\",i,4),i+=4,t.size=e.createVertexBuffer(\"size\",i,3),i+=3,this._colorGradientsTexture||(t.color=e.createVertexBuffer(\"color\",i,4),i+=4),t.direction=e.createVertexBuffer(\"direction\",i,3),i+=3,this._isBillboardBased||(t.initialDirection=e.createVertexBuffer(\"initialDirection\",i,3),i+=3),this._angularSpeedGradientsTexture?(t.angle=e.createVertexBuffer(\"angle\",i,1),i+=1):(t.angle=e.createVertexBuffer(\"angle\",i,2),i+=2),this._isAnimationSheetEnabled&&(t.cellIndex=e.createVertexBuffer(\"cellIndex\",i,1),i+=1,this.spriteRandomStartCell&&(t.cellStartOffset=e.createVertexBuffer(\"cellStartOffset\",i,1),i+=1)),this.noiseTexture&&(t.noiseCoordinates1=e.createVertexBuffer(\"noiseCoordinates1\",i,3),i+=3,t.noiseCoordinates2=e.createVertexBuffer(\"noiseCoordinates2\",i,3),i+=3);var n=this._engine.recordVertexArrayObject(t,null,this._updateEffect);return this._engine.bindArrayBuffer(null),n},t.prototype._createRenderVAO=function(e,t){var i={};i.position=e.createVertexBuffer(\"position\",0,3,this._attributesStrideSize,!0);var n=3;this.particleEmitterType instanceof zl&&(n+=3),i.age=e.createVertexBuffer(\"age\",n,1,this._attributesStrideSize,!0),n+=1,i.life=e.createVertexBuffer(\"life\",n,1,this._attributesStrideSize,!0),n+=5,i.size=e.createVertexBuffer(\"size\",n,3,this._attributesStrideSize,!0),n+=3,this._colorGradientsTexture||(i.color=e.createVertexBuffer(\"color\",n,4,this._attributesStrideSize,!0),n+=4),this.billboardMode===dd.BILLBOARDMODE_STRETCHED&&(i.direction=e.createVertexBuffer(\"direction\",n,3,this._attributesStrideSize,!0)),n+=3,this._isBillboardBased||(i.initialDirection=e.createVertexBuffer(\"initialDirection\",n,3,this._attributesStrideSize,!0),n+=3),i.angle=e.createVertexBuffer(\"angle\",n,1,this._attributesStrideSize,!0),this._angularSpeedGradientsTexture?n++:n+=2,this._isAnimationSheetEnabled&&(i.cellIndex=e.createVertexBuffer(\"cellIndex\",n,1,this._attributesStrideSize,!0),n+=1,this.spriteRandomStartCell&&(i.cellStartOffset=e.createVertexBuffer(\"cellStartOffset\",n,1,this._attributesStrideSize,!0),n+=1)),this.noiseTexture&&(i.noiseCoordinates1=e.createVertexBuffer(\"noiseCoordinates1\",n,3,this._attributesStrideSize,!0),n+=3,i.noiseCoordinates2=e.createVertexBuffer(\"noiseCoordinates2\",n,3,this._attributesStrideSize,!0),n+=3),i.offset=t.createVertexBuffer(\"offset\",0,2),i.uv=t.createVertexBuffer(\"uv\",2,2);var r=this._engine.recordVertexArrayObject(i,null,this._getEffect());return this._engine.bindArrayBuffer(null),r},t.prototype._initialize=function(e){if(void 0===e&&(e=!1),!this._buffer0||e){var t=this._engine,i=new Array;this._attributesStrideSize=21,this._targetIndex=0,this.particleEmitterType instanceof zl&&(this._attributesStrideSize+=3),this.isBillboardBased||(this._attributesStrideSize+=3),this._colorGradientsTexture&&(this._attributesStrideSize-=4),this._angularSpeedGradientsTexture&&(this._attributesStrideSize-=1),this._isAnimationSheetEnabled&&(this._attributesStrideSize+=1,this.spriteRandomStartCell&&(this._attributesStrideSize+=1)),this.noiseTexture&&(this._attributesStrideSize+=6);for(var n=this.particleEmitterType instanceof zl,r=a.c.Vector3[0],o=0;o=this.targetStopDuration&&this.stop()},t.prototype._createFactorGradientTexture=function(e,t){var i=this[t];if(e&&e.length&&!i){for(var n=new Float32Array(this._rawTextureWidth),r=0;r1){var r=0|this._accumulatedCount;this._accumulatedCount-=r,this._currentActiveCount=Math.min(this._activeCount,this._currentActiveCount+r)}if(!this._currentActiveCount)return 0;this._engine.enableEffect(this._updateEffect);var o,s=this._engine;if(!s.setState)throw new Error(\"GPU particles cannot work with a full Engine. ThinEngine is not supported\");if(this._updateEffect.setFloat(\"currentCount\",this._currentActiveCount),this._updateEffect.setFloat(\"timeDelta\",this._timeDelta),this._updateEffect.setFloat(\"stopFactor\",this._stopped?0:1),this._updateEffect.setTexture(\"randomSampler\",this._randomTexture),this._updateEffect.setTexture(\"randomSampler2\",this._randomTexture2),this._updateEffect.setFloat2(\"lifeTime\",this.minLifeTime,this.maxLifeTime),this._updateEffect.setFloat2(\"emitPower\",this.minEmitPower,this.maxEmitPower),this._colorGradientsTexture||(this._updateEffect.setDirectColor4(\"color1\",this.color1),this._updateEffect.setDirectColor4(\"color2\",this.color2)),this._updateEffect.setFloat2(\"sizeRange\",this.minSize,this.maxSize),this._updateEffect.setFloat4(\"scaleRange\",this.minScaleX,this.maxScaleX,this.minScaleY,this.maxScaleY),this._updateEffect.setFloat4(\"angleRange\",this.minAngularSpeed,this.maxAngularSpeed,this.minInitialRotation,this.maxInitialRotation),this._updateEffect.setVector3(\"gravity\",this.gravity),this._sizeGradientsTexture&&this._updateEffect.setTexture(\"sizeGradientSampler\",this._sizeGradientsTexture),this._angularSpeedGradientsTexture&&this._updateEffect.setTexture(\"angularSpeedGradientSampler\",this._angularSpeedGradientsTexture),this._velocityGradientsTexture&&this._updateEffect.setTexture(\"velocityGradientSampler\",this._velocityGradientsTexture),this._limitVelocityGradientsTexture&&(this._updateEffect.setTexture(\"limitVelocityGradientSampler\",this._limitVelocityGradientsTexture),this._updateEffect.setFloat(\"limitVelocityDamping\",this.limitVelocityDamping)),this._dragGradientsTexture&&this._updateEffect.setTexture(\"dragGradientSampler\",this._dragGradientsTexture),this.particleEmitterType&&this.particleEmitterType.applyToShader(this._updateEffect),this._isAnimationSheetEnabled&&this._updateEffect.setFloat3(\"cellInfos\",this.startSpriteCellID,this.endSpriteCellID,this.spriteCellChangeSpeed),this.noiseTexture&&(this._updateEffect.setTexture(\"noiseSampler\",this.noiseTexture),this._updateEffect.setVector3(\"noiseStrength\",this.noiseStrength)),this.emitter.position){o=this.emitter.getWorldMatrix()}else{var c=this.emitter;o=a.a.Translation(c.x,c.y,c.z)}if(this.isLocal||this._updateEffect.setMatrix(\"emitterWM\",o),this._engine.bindVertexArrayObject(this._updateVAO[this._targetIndex],null),s.bindTransformFeedbackBuffer(this._targetBuffer.getBuffer()),s.setRasterizerState(!1),s.beginTransformFeedback(!0),s.drawArraysType(g.a.MATERIAL_PointListDrawMode,0,this._currentActiveCount),s.endTransformFeedback(),s.setRasterizerState(!0),s.bindTransformFeedbackBuffer(null),!e){var l=this._getEffect();this._engine.enableEffect(l);var u=(null===(t=this._scene)||void 0===t?void 0:t.getViewMatrix())||a.a.IdentityReadOnly;if(l.setMatrix(\"view\",u),l.setMatrix(\"projection\",null!==(i=this.defaultProjectionMatrix)&&void 0!==i?i:this._scene.getProjectionMatrix()),l.setTexture(\"diffuseSampler\",this.particleTexture),l.setVector2(\"translationPivot\",this.translationPivot),l.setVector3(\"worldOffset\",this.worldOffset),this.isLocal&&l.setMatrix(\"emitterWM\",o),this._colorGradientsTexture?l.setTexture(\"colorGradientSampler\",this._colorGradientsTexture):l.setDirectColor4(\"colorDead\",this.colorDead),this._isAnimationSheetEnabled&&this.particleTexture){var h=this.particleTexture.getBaseSize();l.setFloat3(\"sheetInfos\",this.spriteCellWidth/h.width,this.spriteCellHeight/h.height,h.width/this.spriteCellWidth)}if(this._isBillboardBased&&this._scene){var d=this._scene.activeCamera;l.setVector3(\"eyePosition\",d.globalPosition)}var f=l.defines;if(this._scene&&(this._scene.clipPlane||this._scene.clipPlane2||this._scene.clipPlane3||this._scene.clipPlane4||this._scene.clipPlane5||this._scene.clipPlane6)&&ro.a.BindClipPlane(l,this._scene),f.indexOf(\"#define BILLBOARDMODE_ALL\")>=0){var p=u.clone();p.invert(),l.setMatrix(\"invView\",p)}switch(this._imageProcessingConfiguration&&!this._imageProcessingConfiguration.applyByPostProcess&&this._imageProcessingConfiguration.bind(l),this.blendMode){case dd.BLENDMODE_ADD:this._engine.setAlphaMode(g.a.ALPHA_ADD);break;case dd.BLENDMODE_ONEONE:this._engine.setAlphaMode(g.a.ALPHA_ONEONE);break;case dd.BLENDMODE_STANDARD:this._engine.setAlphaMode(g.a.ALPHA_COMBINE);break;case dd.BLENDMODE_MULTIPLY:this._engine.setAlphaMode(g.a.ALPHA_MULTIPLY)}this.forceDepthWrite&&s.setDepthWrite(!0),this._engine.bindVertexArrayObject(this._renderVAO[this._targetIndex],null),this._onBeforeDrawParticlesObservable&&this._onBeforeDrawParticlesObservable.notifyObservers(l),this._engine.drawArraysType(g.a.MATERIAL_TriangleFanDrawMode,0,4,this._currentActiveCount),this._engine.setAlphaMode(g.a.ALPHA_DISABLE)}this._targetIndex++,2===this._targetIndex&&(this._targetIndex=0);var _=this._sourceBuffer;return this._sourceBuffer=this._targetBuffer,this._targetBuffer=_,this._currentActiveCount},t.prototype.rebuild=function(){this._initialize(!0)},t.prototype._releaseBuffers=function(){this._buffer0&&(this._buffer0.dispose(),this._buffer0=null),this._buffer1&&(this._buffer1.dispose(),this._buffer1=null),this._spriteBuffer&&(this._spriteBuffer.dispose(),this._spriteBuffer=null)},t.prototype._releaseVAOs=function(){if(this._updateVAO){for(var e=0;e-1&&this._scene.particleSystems.splice(t,1)}this._releaseBuffers(),this._releaseVAOs(),this._colorGradientsTexture&&(this._colorGradientsTexture.dispose(),this._colorGradientsTexture=null),this._sizeGradientsTexture&&(this._sizeGradientsTexture.dispose(),this._sizeGradientsTexture=null),this._angularSpeedGradientsTexture&&(this._angularSpeedGradientsTexture.dispose(),this._angularSpeedGradientsTexture=null),this._velocityGradientsTexture&&(this._velocityGradientsTexture.dispose(),this._velocityGradientsTexture=null),this._limitVelocityGradientsTexture&&(this._limitVelocityGradientsTexture.dispose(),this._limitVelocityGradientsTexture=null),this._dragGradientsTexture&&(this._dragGradientsTexture.dispose(),this._dragGradientsTexture=null),this._randomTexture&&(this._randomTexture.dispose(),this._randomTexture=null),this._randomTexture2&&(this._randomTexture2.dispose(),this._randomTexture2=null),e&&this.particleTexture&&(this.particleTexture.dispose(),this.particleTexture=null),e&&this.noiseTexture&&(this.noiseTexture.dispose(),this.noiseTexture=null),this.onStoppedObservable.clear(),this.onDisposeObservable.notifyObservers(this),this.onDisposeObservable.clear()},t.prototype.clone=function(e,i){var n=this.serialize(),r=t.Parse(n,this._scene||this._engine,\"\"),o=Object(h.a)({},this._customEffect);return r.name=e,r._customEffect=o,void 0===i&&(i=this.emitter),r.emitter=i,r.noiseTexture=this.noiseTexture,r},t.prototype.serialize=function(e){void 0===e&&(e=!1);var t={};return dd._Serialize(t,this,e),t.activeParticleCount=this.activeParticleCount,t.randomTextureSize=this._randomTextureSize,t},t.Parse=function(e,i,n,r){void 0===r&&(r=!1);var o=new t(e.name,{capacity:e.capacity,randomTextureSize:e.randomTextureSize},i);return e.activeParticleCount&&(o.activeParticleCount=e.activeParticleCount),dd._Parse(e,o,i,n),e.preventAutoStart&&(o.preventAutoStart=e.preventAutoStart),r||o.preventAutoStart||o.start(),o},t}(jl),bd=function(){function e(){this.systems=new Array}return Object.defineProperty(e.prototype,\"emitterNode\",{get:function(){return this._emitterNode},enumerable:!1,configurable:!0}),e.prototype.setEmitterAsSphere=function(e,t,i){this._emitterNode&&this._emitterNode.dispose(),this._emitterCreationOptions={kind:\"Sphere\",options:e,renderingGroupId:t};var n=xr.a.CreateSphere(\"emitterSphere\",{diameter:e.diameter,segments:e.segments},i);n.renderingGroupId=t;var r=new Wi.a(\"emitterSphereMaterial\",i);r.emissiveColor=e.color,n.material=r;for(var o=0,a=this.systems;o0&&i.set(this._uvs32,Qi.b.UVKind),this._colors32.length>0&&i.set(this._colors32,Qi.b.ColorKind),i.applyToMesh(this.mesh,this._updatable),this.mesh.isPickable=this._pickable,this._pickable)for(var n=0,r=0;rf?f:n,i=Math.round(f/n),r=0):i=i>f?f:i;for(var p=[],_=[],m=[],g=[],v=[],b=a.e.Zero(),y=i;df-(i=y+Math.floor((1+r)*Math.random()))&&(i=f-d),p.length=0,_.length=0,m.length=0,g.length=0,v.length=0;for(var T=0,E=3*d;E<3*(d+i);E++){m.push(T);var S=s[E],A=3*S;if(p.push(o[A],o[A+1],o[A+2]),_.push(u[A],u[A+1],u[A+2]),c){var P=2*S;g.push(c[P],c[P+1])}if(l){var C=4*S;v.push(l[C],l[C+1],l[C+2],l[C+3])}T++}var R,x=this.nbParticles,O=this._posToShape(p),M=this._uvsToShapeUV(g),I=Ce.b.Slice(m),D=Ce.b.Slice(v),N=Ce.b.Slice(_);for(b.copyFromFloats(0,0,0),R=0;R65535&&(this._needs32Bits=!0)}if(this._depthSort||this._multimaterialEnabled){var U=null!==T.materialIndex?T.materialIndex:0;this.depthSortedParticles.push(new Ad(f,t,r.length,U))}return T},e.prototype._posToShape=function(e){for(var t=[],i=0;i=this.nbParticles||!this._updatable)return[];var n=this.particles,r=this.nbParticles;if(t=this.nbParticles?this.nbParticles-1:t,this._computeBoundingBox&&(0!=e||t!=this.nbParticles-1)){var L=this.mesh._boundingInfo;L&&(v.copyFrom(L.minimum),b.copyFrom(L.maximum))}var w=(x=this.particles[e]._pos)/3|0;M=4*w,D=2*w;for(var F=e;F<=t;F++){var B=this.particles[F];this.updateParticle(B);var U=B._model._shape,V=B._model._shapeUV,k=B._rotationMatrix,z=B.position,G=B.rotation,j=B.scaling,W=B._globalPosition;if(this._depthSort&&this._depthSortParticles){var H=this.depthSortedParticles[F];H.idx=B.idx,H.ind=B._ind,H.indicesLength=B._model._indicesLength,H.sqDistance=a.e.DistanceSquared(B.position,y)}if(!B.alive||B._stillInvisible&&!B.isVisible)x+=3*(N=U.length),M+=4*N,D+=2*N;else{if(B.isVisible){B._stillInvisible=!1;var X=p[12];if(B.pivot.multiplyToRef(j,X),this.billboard&&(G.x=0,G.y=0),(this._computeParticleRotation||this.billboard)&&B.getRotationMatrix(n),null!==B.parentId){var Y=this.getParticleById(B.parentId);if(Y){var K=Y._rotationMatrix,Q=Y._globalPosition,q=z.x*K[1]+z.y*K[4]+z.z*K[7],Z=z.x*K[0]+z.y*K[3]+z.z*K[6],$=z.x*K[2]+z.y*K[5]+z.z*K[8];if(W.x=Q.x+Z,W.y=Q.y+q,W.z=Q.z+$,this._computeParticleRotation||this.billboard){var ee=n.m;k[0]=ee[0]*K[0]+ee[1]*K[3]+ee[2]*K[6],k[1]=ee[0]*K[1]+ee[1]*K[4]+ee[2]*K[7],k[2]=ee[0]*K[2]+ee[1]*K[5]+ee[2]*K[8],k[3]=ee[4]*K[0]+ee[5]*K[3]+ee[6]*K[6],k[4]=ee[4]*K[1]+ee[5]*K[4]+ee[6]*K[7],k[5]=ee[4]*K[2]+ee[5]*K[5]+ee[6]*K[8],k[6]=ee[8]*K[0]+ee[9]*K[3]+ee[10]*K[6],k[7]=ee[8]*K[1]+ee[9]*K[4]+ee[10]*K[7],k[8]=ee[8]*K[2]+ee[9]*K[5]+ee[10]*K[8]}}else B.parentId=null}else if(W.x=z.x,W.y=z.y,W.z=z.z,this._computeParticleRotation||this.billboard){ee=n.m;k[0]=ee[0],k[1]=ee[1],k[2]=ee[2],k[3]=ee[4],k[4]=ee[5],k[5]=ee[6],k[6]=ee[8],k[7]=ee[9],k[8]=ee[10]}var te=p[11];for(B.translateFromPivot?te.setAll(0):te.copyFrom(X),N=0;N0)for(var t=0;t0&&e.set(this._uvs32,Qi.b.UVKind);var t=0;this._colors32.length>0&&(t=1,e.set(this._colors32,Qi.b.ColorKind));var i=new be.a(this.name,this._scene);e.applyToMesh(i,this._updatable),this.mesh=i,this._positions=null,this._uvs=null,this._colors=null,this._updatable||(this.particles.length=0);var n=new Wi.a(\"point cloud material\",this._scene);return n.emissiveColor=new s.a(t,t,t),n.disableLighting=!0,n.pointsCloud=!0,n.pointSize=this._size,i.material=n,new Promise((function(e){return e(i)}))},e.prototype._addParticle=function(e,t,i,n){var r=new Rd(e,t,i,n,this);return this.particles.push(r),r},e.prototype._randomUnitVector=function(e){e.position=new a.e(Math.random(),Math.random(),Math.random()),e.color=new s.b(1,1,1,1)},e.prototype._getColorIndicesForCoord=function(e,t,i,n){var r=e._groupImageData,o=i*(4*n)+4*t,a=[o,o+1,o+2,o+3],c=a[1],l=a[2],u=a[3],h=r[a[0]],d=r[c],f=r[l],p=r[u];return new s.b(h/255,d/255,f/255,p)},e.prototype._setPointsColorOrUV=function(e,t,i,n,r,o,c){i&&e.updateFacetData();var l=2*e.getBoundingInfo().boundingSphere.radius,u=e.getVerticesData(Qi.b.PositionKind),h=e.getIndices(),d=e.getVerticesData(Qi.b.UVKind),f=e.getVerticesData(Qi.b.ColorKind),p=a.e.Zero();e.computeWorldMatrix();var _=e.getWorldMatrix();if(!_.isIdentity())for(var m=0;m1&&(Ie=1),(De=Ne.b+Oe)<0&&(De=0),De>1&&(De=1),s.a.HSVtoRGBToRef(Me,Ie,De,Be),me.set(Be.r,Be.g,Be.b,1)):me=ce.set(Math.random(),Math.random(),Math.random(),1),we.color=new s.b(me.x,me.y,me.z,me.w),this._colors.push(me.x,me.y,me.z,me.w))}},e.prototype._colorFromTexture=function(e,t,i){var n=this;if(null===e.material)return m.a.Warn(e.name+\"has no material.\"),t._groupImageData=null,void this._setPointsColorOrUV(e,t,i,!0,!1);var r=e.material.getActiveTextures();if(0===r.length)return m.a.Warn(e.name+\"has no useable texture.\"),t._groupImageData=null,void this._setPointsColorOrUV(e,t,i,!0,!1);var o=e.clone();o.setEnabled(!1),this._promises.push(new Promise((function(e){Zn.a.WhenAllReady(r,(function(){var a=t._textureNb;return a<0&&(a=0),a>r.length-1&&(a=r.length-1),t._groupImageData=r[a].readPixels(),t._groupImgWidth=r[a].getSize().width,t._groupImgHeight=r[a].getSize().height,n._setPointsColorOrUV(o,t,i,!0,!0),o.dispose(),e()}))})))},e.prototype._calculateDensity=function(e,t,i){for(var n,r,o,s,c,l,u,h,d,f,p,_,m,g,v,b,y,T=new Array,E=a.e.Zero(),S=a.e.Zero(),A=a.e.Zero(),P=a.e.Zero(),C=a.e.Zero(),R=a.e.Zero(),x=new Array,O=0,M=i.length/3,I=0;I0&&(T=T.map((function(e){return e+L})));for(I=0;I3)&&(o=Td.Random);var a=e.getVerticesData(Qi.b.PositionKind),c=e.getIndices();this._groups.push(this._groupCounter);var l=new xd(this._groupCounter,null);switch(l._groupDensity=this._calculateDensity(t,a,c),o===Td.Color?l._textureNb=n||0:n=n||new s.b(1,1,1,1),o){case Td.Color:this._colorFromTexture(e,l,!1);break;case Td.UV:this._setPointsColorOrUV(e,l,!1,!1,!1);break;case Td.Random:this._setPointsColorOrUV(e,l,!1);break;case Td.Stated:this._setPointsColorOrUV(e,l,!1,void 0,void 0,n,r)}return this.nbParticles+=t,this._groupCounter++,this._groupCounter-1},e.prototype.addVolumePoints=function(e,t,i,n,r){var o=i||Td.Random;(isNaN(o)||o<0||o>3)&&(o=Td.Random);var a=e.getVerticesData(Qi.b.PositionKind),c=e.getIndices();this._groups.push(this._groupCounter);var l=new xd(this._groupCounter,null);switch(l._groupDensity=this._calculateDensity(t,a,c),o===Td.Color?l._textureNb=n||0:n=n||new s.b(1,1,1,1),o){case Td.Color:this._colorFromTexture(e,l,!0);break;case Td.UV:this._setPointsColorOrUV(e,l,!0,!1,!1);break;case Td.Random:this._setPointsColorOrUV(e,l,!0);break;case Td.Stated:this._setPointsColorOrUV(e,l,!0,void 0,void 0,n,r)}return this.nbParticles+=t,this._groupCounter++,this._groupCounter-1},e.prototype.setParticles=function(e,t,i){if(void 0===e&&(e=0),void 0===t&&(t=this.nbParticles-1),void 0===i&&(i=!0),!this._updatable||!this._isReady)return this;this.beforeUpdateParticles(e,t,i);var n=a.c.Matrix[0],r=this.mesh,o=this._colors32,s=this._positions32,c=this._uvs32,l=a.c.Vector3,u=l[5].copyFromFloats(1,0,0),h=l[6].copyFromFloats(0,1,0),d=l[7].copyFromFloats(0,0,1),f=l[8].setAll(Number.MAX_VALUE),p=l[9].setAll(-Number.MAX_VALUE);a.a.IdentityToRef(n);var _=0;if(this.mesh.isFacetDataEnabled&&(this._computeBoundingBox=!0),t=t>=this.nbParticles?this.nbParticles-1:t,this._computeBoundingBox&&(0!=e||t!=this.nbParticles-1)){var m=this.mesh._boundingInfo;m&&(f.copyFrom(m.minimum),p.copyFrom(m.maximum))}_=0;for(var g=0,v=0,b=0,y=e;y<=t;y++){var T=this.particles[y];g=3*(_=T.idx),v=4*_,b=2*_,this.updateParticle(T);var E=T._rotationMatrix,S=T.position,A=T._globalPosition;if(this._computeParticleRotation&&T.getRotationMatrix(n),null!==T.parentId){var P=this.particles[T.parentId],C=P._rotationMatrix,R=P._globalPosition,x=S.x*C[1]+S.y*C[4]+S.z*C[7],O=S.x*C[0]+S.y*C[3]+S.z*C[6],M=S.x*C[2]+S.y*C[5]+S.z*C[8];if(A.x=R.x+O,A.y=R.y+x,A.z=R.z+M,this._computeParticleRotation){var I=n.m;E[0]=I[0]*C[0]+I[1]*C[3]+I[2]*C[6],E[1]=I[0]*C[1]+I[1]*C[4]+I[2]*C[7],E[2]=I[0]*C[2]+I[1]*C[5]+I[2]*C[8],E[3]=I[4]*C[0]+I[5]*C[3]+I[6]*C[6],E[4]=I[4]*C[1]+I[5]*C[4]+I[6]*C[7],E[5]=I[4]*C[2]+I[5]*C[5]+I[6]*C[8],E[6]=I[8]*C[0]+I[9]*C[3]+I[10]*C[6],E[7]=I[8]*C[1]+I[9]*C[4]+I[10]*C[7],E[8]=I[8]*C[2]+I[9]*C[5]+I[10]*C[8]}}else if(A.x=0,A.y=0,A.z=0,this._computeParticleRotation){I=n.m;E[0]=I[0],E[1]=I[1],E[2]=I[2],E[3]=I[4],E[4]=I[5],E[5]=I[6],E[6]=I[8],E[7]=I[9],E[8]=I[10]}var D=l[11];T.translateFromPivot?D.setAll(0):D.copyFrom(T.pivot);var N=l[0];N.copyFrom(T.position);var L=N.x-T.pivot.x,w=N.y-T.pivot.y,F=N.z-T.pivot.z,B=L*E[0]+w*E[3]+F*E[6],U=L*E[1]+w*E[4]+F*E[7],V=L*E[2]+w*E[5]+F*E[8];B+=D.x,U+=D.y,V+=D.z;var k=s[g]=A.x+u.x*B+h.x*U+d.x*V,z=s[g+1]=A.y+u.y*B+h.y*U+d.y*V,G=s[g+2]=A.z+u.z*B+h.z*U+d.z*V;if(this._computeBoundingBox&&(f.minimizeInPlaceFromFloats(k,z,G),p.maximizeInPlaceFromFloats(k,z,G)),this._computeParticleColor&&T.color){var j=T.color,W=this._colors32;W[v]=j.r,W[v+1]=j.g,W[v+2]=j.b,W[v+3]=j.a}if(this._computeParticleTexture&&T.uv){var H=T.uv,X=this._uvs32;X[b]=H.x,X[b+1]=H.y}}return i&&(this._computeParticleColor&&r.updateVerticesData(Qi.b.ColorKind,o,!1,!1),this._computeParticleTexture&&r.updateVerticesData(Qi.b.UVKind,c,!1,!1),r.updateVerticesData(Qi.b.PositionKind,s,!1,!1)),this._computeBoundingBox&&(r._boundingInfo?r._boundingInfo.reConstruct(f,p,r._worldMatrix):r._boundingInfo=new Tn.a(f,p,r._worldMatrix)),this.afterUpdateParticles(e,t,i),this},e.prototype.dispose=function(){this.mesh.dispose(),this.vars=null,this._positions=null,this._indices=null,this._normals=null,this._uvs=null,this._colors=null,this._indices32=null,this._positions32=null,this._uvs32=null,this._colors32=null},e.prototype.refreshVisibleSize=function(){return this._isVisibilityBoxLocked||this.mesh.refreshBoundingInfo(),this},e.prototype.setVisibilityBox=function(e){var t=e/2;this.mesh._boundingInfo=new Tn.a(new a.e(-t,-t,-t),new a.e(t,t,t))},Object.defineProperty(e.prototype,\"isAlwaysVisible\",{get:function(){return this._alwaysVisible},set:function(e){this._alwaysVisible=e,this.mesh.alwaysSelectAsActiveMesh=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"computeParticleRotation\",{set:function(e){this._computeParticleRotation=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"computeParticleColor\",{get:function(){return this._computeParticleColor},set:function(e){this._computeParticleColor=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"computeParticleTexture\",{get:function(){return this._computeParticleTexture},set:function(e){this._computeParticleTexture=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"computeBoundingBox\",{get:function(){return this._computeBoundingBox},set:function(e){this._computeBoundingBox=e},enumerable:!1,configurable:!0}),e.prototype.initParticles=function(){},e.prototype.recycleParticle=function(e){return e},e.prototype.updateParticle=function(e){return e},e.prototype.beforeUpdateParticles=function(e,t,i){},e.prototype.afterUpdateParticles=function(e,t,i){},e}();Q.a.prototype.getPhysicsEngine=function(){return this._physicsEngine},Q.a.prototype.enablePhysics=function(e,t){if(void 0===e&&(e=null),this._physicsEngine)return!0;var i=this._getComponent(Me.a.NAME_PHYSICSENGINE);i||(i=new Dd(this),this._addComponent(i));try{return this._physicsEngine=new pc(e,t),this._physicsTimeAccumulator=0,!0}catch(e){return m.a.Error(e.message),!1}},Q.a.prototype.disablePhysicsEngine=function(){this._physicsEngine&&(this._physicsEngine.dispose(),this._physicsEngine=null)},Q.a.prototype.isPhysicsEnabled=function(){return void 0!==this._physicsEngine},Q.a.prototype.deleteCompoundImpostor=function(e){var t=e.parts[0].mesh;t.physicsImpostor&&(t.physicsImpostor.dispose(),t.physicsImpostor=null)},Q.a.prototype._advancePhysicsEngineStep=function(e){if(this._physicsEngine){var t=this._physicsEngine.getSubTimeStep();if(t>0)for(this._physicsTimeAccumulator+=e;this._physicsTimeAccumulator>t;)this.onBeforePhysicsObservable.notifyObservers(this),this._physicsEngine._step(t/1e3),this.onAfterPhysicsObservable.notifyObservers(this),this._physicsTimeAccumulator-=t;else this.onBeforePhysicsObservable.notifyObservers(this),this._physicsEngine._step(e/1e3),this.onAfterPhysicsObservable.notifyObservers(this)}},Object.defineProperty(Ge.a.prototype,\"physicsImpostor\",{get:function(){return this._physicsImpostor},set:function(e){var t=this;this._physicsImpostor!==e&&(this._disposePhysicsObserver&&this.onDisposeObservable.remove(this._disposePhysicsObserver),this._physicsImpostor=e,e&&(this._disposePhysicsObserver=this.onDisposeObservable.add((function(){t.physicsImpostor&&(t.physicsImpostor.dispose(),t.physicsImpostor=null)}))))},enumerable:!0,configurable:!0}),Ge.a.prototype.getPhysicsImpostor=function(){return this.physicsImpostor},Ge.a.prototype.applyImpulse=function(e,t){return this.physicsImpostor?(this.physicsImpostor.applyImpulse(e,t),this):this},Ge.a.prototype.setPhysicsLinkWith=function(e,t,i,n){return this.physicsImpostor&&e.physicsImpostor?(this.physicsImpostor.createJoint(e.physicsImpostor,fc.e.HingeJoint,{mainPivot:t,connectedPivot:i,nativeParams:n}),this):this};var Md,Id,Dd=function(){function e(e){var t=this;this.name=Me.a.NAME_PHYSICSENGINE,this.scene=e,this.scene.onBeforePhysicsObservable=new o.c,this.scene.onAfterPhysicsObservable=new o.c,this.scene.getDeterministicFrameTime=function(){return t.scene._physicsEngine?1e3*t.scene._physicsEngine.getTimeStep():1e3/60}}return e.prototype.register=function(){},e.prototype.rebuild=function(){},e.prototype.dispose=function(){this.scene.onBeforePhysicsObservable.clear(),this.scene.onAfterPhysicsObservable.clear(),this.scene._physicsEngine&&this.scene.disablePhysicsEngine()},e}(),Nd=function(){function e(e){this._scene=e,this._physicsEngine=this._scene.getPhysicsEngine(),this._physicsEngine||m.a.Warn(\"Physics engine not enabled. Please enable the physics before you can use the methods.\")}return e.prototype.applyRadialExplosionImpulse=function(e,t,i,n){if(!this._physicsEngine)return m.a.Warn(\"Physics engine not enabled. Please enable the physics before you call this method.\"),null;var r=this._physicsEngine.getImpostors();if(0===r.length)return null;\"number\"==typeof t&&((t=new Ud).radius=t,t.strength=i||t.strength,t.falloff=n||t.falloff);var o=new Ld(this._scene,t),a=Array();return r.forEach((function(t){var i=o.getImpostorHitData(t,e);i&&(t.applyImpulse(i.force,i.contactPoint),a.push({impostor:t,hitData:i}))})),o.triggerAffectedImpostorsCallback(a),o.dispose(!1),o},e.prototype.applyRadialExplosionForce=function(e,t,i,n){if(!this._physicsEngine)return m.a.Warn(\"Physics engine not enabled. Please enable the physics before you call the PhysicsHelper.\"),null;var r=this._physicsEngine.getImpostors();if(0===r.length)return null;\"number\"==typeof t&&((t=new Ud).radius=t,t.strength=i||t.strength,t.falloff=n||t.falloff);var o=new Ld(this._scene,t),a=Array();return r.forEach((function(t){var i=o.getImpostorHitData(t,e);i&&(t.applyForce(i.force,i.contactPoint),a.push({impostor:t,hitData:i}))})),o.triggerAffectedImpostorsCallback(a),o.dispose(!1),o},e.prototype.gravitationalField=function(e,t,i,n){if(!this._physicsEngine)return m.a.Warn(\"Physics engine not enabled. Please enable the physics before you call the PhysicsHelper.\"),null;if(0===this._physicsEngine.getImpostors().length)return null;\"number\"==typeof t&&((t=new Ud).radius=t,t.strength=i||t.strength,t.falloff=n||t.falloff);var r=new wd(this,this._scene,e,t);return r.dispose(!1),r},e.prototype.updraft=function(e,t,i,n,r){if(!this._physicsEngine)return m.a.Warn(\"Physics engine not enabled. Please enable the physics before you call the PhysicsHelper.\"),null;if(0===this._physicsEngine.getImpostors().length)return null;\"number\"==typeof t&&((t=new Vd).radius=t,t.strength=i||t.strength,t.height=n||t.height,t.updraftMode=r||t.updraftMode);var o=new Fd(this._scene,e,t);return o.dispose(!1),o},e.prototype.vortex=function(e,t,i,n){if(!this._physicsEngine)return m.a.Warn(\"Physics engine not enabled. Please enable the physics before you call the PhysicsHelper.\"),null;if(0===this._physicsEngine.getImpostors().length)return null;\"number\"==typeof t&&((t=new kd).radius=t,t.strength=i||t.strength,t.height=n||t.height);var r=new Bd(this._scene,e,t);return r.dispose(!1),r},e}(),Ld=function(){function e(e,t){this._scene=e,this._options=t,this._dataFetched=!1,this._options=Object(h.a)(Object(h.a)({},new Ud),this._options)}return e.prototype.getData=function(){return this._dataFetched=!0,{sphere:this._sphere}},e.prototype.getImpostorHitData=function(e,t){if(0===e.mass)return null;if(!this._intersectsWithSphere(e,t,this._options.radius))return null;if(\"Mesh\"!==e.object.getClassName()&&\"InstancedMesh\"!==e.object.getClassName())return null;var i=e.getObjectCenter().subtract(t),n=new Xt.a(t,i,this._options.radius).intersectsMesh(e.object).pickedPoint;if(!n)return null;var r=a.e.Distance(t,n);if(r>this._options.radius)return null;var o=this._options.falloff===Md.Constant?this._options.strength:this._options.strength*(1-r/this._options.radius);return{force:i.multiplyByFloats(o,o,o),contactPoint:n,distanceFromOrigin:r}},e.prototype.triggerAffectedImpostorsCallback=function(e){this._options.affectedImpostorsCallback&&this._options.affectedImpostorsCallback(e)},e.prototype.dispose=function(e){var t=this;void 0===e&&(e=!0),e?this._sphere.dispose():setTimeout((function(){t._dataFetched||t._sphere.dispose()}),0)},e.prototype._prepareSphere=function(){this._sphere||(this._sphere=xr.a.CreateSphere(\"radialExplosionEventSphere\",this._options.sphere,this._scene),this._sphere.isVisible=!1)},e.prototype._intersectsWithSphere=function(e,t,i){var n=e.object;return this._prepareSphere(),this._sphere.position=t,this._sphere.scaling=new a.e(2*i,2*i,2*i),this._sphere._updateBoundingInfo(),this._sphere.computeWorldMatrix(!0),this._sphere.intersectsMesh(n,!0)},e}(),wd=function(){function e(e,t,i,n){this._physicsHelper=e,this._scene=t,this._origin=i,this._options=n,this._dataFetched=!1,this._options=Object(h.a)(Object(h.a)({},new Ud),this._options),this._tickCallback=this._tick.bind(this),this._options.strength=-1*this._options.strength}return e.prototype.getData=function(){return this._dataFetched=!0,{sphere:this._sphere}},e.prototype.enable=function(){this._tickCallback.call(this),this._scene.registerBeforeRender(this._tickCallback)},e.prototype.disable=function(){this._scene.unregisterBeforeRender(this._tickCallback)},e.prototype.dispose=function(e){var t=this;void 0===e&&(e=!0),e?this._sphere.dispose():setTimeout((function(){t._dataFetched||t._sphere.dispose()}),0)},e.prototype._tick=function(){if(this._sphere)this._physicsHelper.applyRadialExplosionForce(this._origin,this._options);else{var e=this._physicsHelper.applyRadialExplosionForce(this._origin,this._options);e&&(this._sphere=e.getData().sphere.clone(\"radialExplosionEventSphereClone\"))}},e}(),Fd=function(){function e(e,t,i){this._scene=e,this._origin=t,this._options=i,this._originTop=a.e.Zero(),this._originDirection=a.e.Zero(),this._cylinderPosition=a.e.Zero(),this._dataFetched=!1,this._physicsEngine=this._scene.getPhysicsEngine(),this._options=Object(h.a)(Object(h.a)({},new Vd),this._options),this._origin.addToRef(new a.e(0,this._options.height/2,0),this._cylinderPosition),this._origin.addToRef(new a.e(0,this._options.height,0),this._originTop),this._options.updraftMode===Id.Perpendicular&&(this._originDirection=this._origin.subtract(this._originTop).normalize()),this._tickCallback=this._tick.bind(this),this._prepareCylinder()}return e.prototype.getData=function(){return this._dataFetched=!0,{cylinder:this._cylinder}},e.prototype.enable=function(){this._tickCallback.call(this),this._scene.registerBeforeRender(this._tickCallback)},e.prototype.disable=function(){this._scene.unregisterBeforeRender(this._tickCallback)},e.prototype.dispose=function(e){var t=this;void 0===e&&(e=!0),this._cylinder&&(e?this._cylinder.dispose():setTimeout((function(){t._dataFetched||t._cylinder.dispose()}),0))},e.prototype.getImpostorHitData=function(e){if(0===e.mass)return null;if(!this._intersectsWithCylinder(e))return null;var t=e.getObjectCenter();if(this._options.updraftMode===Id.Perpendicular)var i=this._originDirection;else i=t.subtract(this._originTop);var n=a.e.Distance(this._origin,t),r=-1*this._options.strength;return{force:i.multiplyByFloats(r,r,r),contactPoint:t,distanceFromOrigin:n}},e.prototype._tick=function(){var e=this;this._physicsEngine.getImpostors().forEach((function(t){var i=e.getImpostorHitData(t);i&&t.applyForce(i.force,i.contactPoint)}))},e.prototype._prepareCylinder=function(){this._cylinder||(this._cylinder=nn.a.CreateCylinder(\"updraftEventCylinder\",{height:this._options.height,diameter:2*this._options.radius},this._scene),this._cylinder.isVisible=!1)},e.prototype._intersectsWithCylinder=function(e){var t=e.object;return this._cylinder.position=this._cylinderPosition,this._cylinder.intersectsMesh(t,!0)},e}(),Bd=function(){function e(e,t,i){this._scene=e,this._origin=t,this._options=i,this._originTop=a.e.Zero(),this._cylinderPosition=a.e.Zero(),this._dataFetched=!1,this._physicsEngine=this._scene.getPhysicsEngine(),this._options=Object(h.a)(Object(h.a)({},new kd),this._options),this._origin.addToRef(new a.e(0,this._options.height/2,0),this._cylinderPosition),this._origin.addToRef(new a.e(0,this._options.height,0),this._originTop),this._tickCallback=this._tick.bind(this),this._prepareCylinder()}return e.prototype.getData=function(){return this._dataFetched=!0,{cylinder:this._cylinder}},e.prototype.enable=function(){this._tickCallback.call(this),this._scene.registerBeforeRender(this._tickCallback)},e.prototype.disable=function(){this._scene.unregisterBeforeRender(this._tickCallback)},e.prototype.dispose=function(e){var t=this;void 0===e&&(e=!0),e?this._cylinder.dispose():setTimeout((function(){t._dataFetched||t._cylinder.dispose()}),0)},e.prototype.getImpostorHitData=function(e){if(0===e.mass)return null;if(!this._intersectsWithCylinder(e))return null;if(\"Mesh\"!==e.object.getClassName()&&\"InstancedMesh\"!==e.object.getClassName())return null;var t=e.getObjectCenter(),i=new a.e(this._origin.x,t.y,this._origin.z),n=t.subtract(i),r=new Xt.a(i,n,this._options.radius).intersectsMesh(e.object),o=r.pickedPoint;if(!o)return null;var s=r.distance/this._options.radius,c=o.normalize();if(s>this._options.centripetalForceThreshold&&(c=c.negate()),s>this._options.centripetalForceThreshold)var l=c.x*this._options.centripetalForceMultiplier,u=c.y*this._options.updraftForceMultiplier,h=c.z*this._options.centripetalForceMultiplier;else{var d=a.e.Cross(i,t).normalize();l=(d.x+c.x)*this._options.centrifugalForceMultiplier,u=this._originTop.y*this._options.updraftForceMultiplier,h=(d.z+c.z)*this._options.centrifugalForceMultiplier}var f=new a.e(l,u,h);return{force:f=f.multiplyByFloats(this._options.strength,this._options.strength,this._options.strength),contactPoint:t,distanceFromOrigin:s}},e.prototype._tick=function(){var e=this;this._physicsEngine.getImpostors().forEach((function(t){var i=e.getImpostorHitData(t);i&&t.applyForce(i.force,i.contactPoint)}))},e.prototype._prepareCylinder=function(){this._cylinder||(this._cylinder=nn.a.CreateCylinder(\"vortexEventCylinder\",{height:this._options.height,diameter:2*this._options.radius},this._scene),this._cylinder.isVisible=!1)},e.prototype._intersectsWithCylinder=function(e){var t=e.object;return this._cylinder.position=this._cylinderPosition,this._cylinder.intersectsMesh(t,!0)},e}(),Ud=function(){this.radius=5,this.strength=10,this.falloff=Md.Constant,this.sphere={segments:32,diameter:1}},Vd=function(){this.radius=5,this.strength=10,this.height=10,this.updraftMode=Id.Center},kd=function(){this.radius=5,this.strength=10,this.height=10,this.centripetalForceThreshold=.7,this.centripetalForceMultiplier=5,this.centrifugalForceMultiplier=.5,this.updraftForceMultiplier=.02};!function(e){e[e.Constant=0]=\"Constant\",e[e.Linear=1]=\"Linear\"}(Md||(Md={})),function(e){e[e.Center=0]=\"Center\",e[e.Perpendicular=1]=\"Perpendicular\"}(Id||(Id={}));var zd=\"\\nvarying vec2 vUV;\\nuniform sampler2D textureSampler;\\nuniform float degree;\\nvoid main(void)\\n{\\nvec3 color=texture2D(textureSampler,vUV).rgb;\\nfloat luminance=dot(color,vec3(0.3,0.59,0.11));\\nvec3 blackAndWhite=vec3(luminance,luminance,luminance);\\ngl_FragColor=vec4(color-((color-blackAndWhite)*degree),1.0);\\n}\";ai.a.ShadersStore.blackAndWhitePixelShader=zd;var Gd=function(e){function t(t,i,n,r,o,a){var s=e.call(this,t,\"blackAndWhite\",[\"degree\"],null,i,n,r,o,a)||this;return s.degree=1,s.onApplyObservable.add((function(e){e.setFloat(\"degree\",s.degree)})),s}return Object(h.d)(t,e),t.prototype.getClassName=function(){return\"BlackAndWhitePostProcess\"},t._Parse=function(e,i,n,r){return w.a.Parse((function(){return new t(e.name,e.options,i,e.renderTargetSamplingMode,n.getEngine(),e.reusable)}),e,n,r)},Object(h.c)([Object(w.c)()],t.prototype,\"degree\",void 0),t}(li);c.a.RegisteredTypes[\"BABYLON.BlackAndWhitePostProcess\"]=Gd;var jd=function(){function e(e,t,i,n){this._name=t,this._singleInstance=n||!0,this._getPostProcesses=i,this._cameras={},this._indicesForCamera={},this._postProcesses={}}return Object.defineProperty(e.prototype,\"isSupported\",{get:function(){for(var e in this._postProcesses)if(this._postProcesses.hasOwnProperty(e))for(var t=this._postProcesses[e],i=0;i\\n\\nvarying vec2 vUV;\\nuniform sampler2D textureSampler;\\nuniform float threshold;\\nuniform float exposure;\\nvoid main(void)\\n{\\ngl_FragColor=texture2D(textureSampler,vUV);\\nfloat luma=getLuminance(gl_FragColor.rgb*exposure);\\ngl_FragColor.rgb=step(threshold,luma)*gl_FragColor.rgb;\\n}\";ai.a.ShadersStore.extractHighlightsPixelShader=Wd;var Hd=function(e){function t(t,i,n,r,o,a,s,c){void 0===s&&(s=g.a.TEXTURETYPE_UNSIGNED_INT),void 0===c&&(c=!1);var l=e.call(this,t,\"extractHighlights\",[\"threshold\",\"exposure\"],null,i,n,r,o,a,null,s,void 0,null,c)||this;return l.threshold=.9,l._exposure=1,l._inputPostProcess=null,l.onApplyObservable.add((function(e){l._inputPostProcess&&e.setTextureFromPostProcess(\"textureSampler\",l._inputPostProcess),e.setFloat(\"threshold\",Math.pow(l.threshold,Nt.b)),e.setFloat(\"exposure\",l._exposure)})),l}return Object(h.d)(t,e),t.prototype.getClassName=function(){return\"ExtractHighlightsPostProcess\"},Object(h.c)([Object(w.c)()],t.prototype,\"threshold\",void 0),t}(li);c.a.RegisteredTypes[\"BABYLON.ExtractHighlightsPostProcess\"]=Hd;var Xd=\"uniform sampler2D textureSampler;\\nuniform sampler2D bloomBlur;\\nvarying vec2 vUV;\\nuniform float bloomWeight;\\nvoid main(void)\\n{\\ngl_FragColor=texture2D(textureSampler,vUV);\\nvec3 blurred=texture2D(bloomBlur,vUV).rgb;\\ngl_FragColor.rgb=gl_FragColor.rgb+(blurred.rgb*bloomWeight);\\n}\\n\";ai.a.ShadersStore.bloomMergePixelShader=Xd;var Yd=function(e){function t(t,i,n,r,o,a,s,c,l,u,h){void 0===u&&(u=g.a.TEXTURETYPE_UNSIGNED_INT),void 0===h&&(h=!1);var d=e.call(this,t,\"bloomMerge\",[\"bloomWeight\"],[\"circleOfConfusionSampler\",\"blurStep0\",\"blurStep1\",\"blurStep2\",\"bloomBlur\"],o,a,s,c,l,null,u,void 0,null,!0)||this;return d.weight=1,d.weight=r,d.onApplyObservable.add((function(e){e.setTextureFromPostProcess(\"textureSampler\",i),e.setTextureFromPostProcessOutput(\"bloomBlur\",n),e.setFloat(\"bloomWeight\",d.weight)})),h||d.updateEffect(),d}return Object(h.d)(t,e),t.prototype.getClassName=function(){return\"BloomMergePostProcess\"},Object(h.c)([Object(w.c)()],t.prototype,\"weight\",void 0),t}(li);c.a.RegisteredTypes[\"BABYLON.BloomMergePostProcess\"]=Yd;var Kd=function(e){function t(t,i,n,r,o,s){void 0===o&&(o=0),void 0===s&&(s=!1);var c=e.call(this,t.getEngine(),\"bloom\",(function(){return c._effects}),!0)||this;return c.bloomScale=i,c._effects=[],c._downscale=new Hd(\"highlights\",1,null,Ke.a.BILINEAR_SAMPLINGMODE,t.getEngine(),!1,o,s),c._blurX=new eo(\"horizontal blur\",new a.d(1,0),10,i,null,Ke.a.BILINEAR_SAMPLINGMODE,t.getEngine(),!1,o,void 0,s),c._blurX.alwaysForcePOT=!0,c._blurX.autoClear=!1,c._blurY=new eo(\"vertical blur\",new a.d(0,1),10,i,null,Ke.a.BILINEAR_SAMPLINGMODE,t.getEngine(),!1,o,void 0,s),c._blurY.alwaysForcePOT=!0,c._blurY.autoClear=!1,c.kernel=r,c._effects=[c._downscale,c._blurX,c._blurY],c._merge=new Yd(\"bloomMerge\",c._downscale,c._blurY,n,i,null,Ke.a.BILINEAR_SAMPLINGMODE,t.getEngine(),!1,o,s),c._merge.autoClear=!1,c._effects.push(c._merge),c}return Object(h.d)(t,e),Object.defineProperty(t.prototype,\"threshold\",{get:function(){return this._downscale.threshold},set:function(e){this._downscale.threshold=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"weight\",{get:function(){return this._merge.weight},set:function(e){this._merge.weight=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"kernel\",{get:function(){return this._blurX.kernel/this.bloomScale},set:function(e){this._blurX.kernel=e*this.bloomScale,this._blurY.kernel=e*this.bloomScale},enumerable:!1,configurable:!0}),t.prototype.disposeEffects=function(e){for(var t=0;t0\\nuniform sampler2D blurStep1;\\n#endif\\n#if BLUR_LEVEL>1\\nuniform sampler2D blurStep2;\\n#endif\\nvoid main(void)\\n{\\nfloat coc=texture2D(circleOfConfusionSampler,vUV).r;\\n#if BLUR_LEVEL == 0\\nvec4 original=texture2D(textureSampler,vUV);\\nvec4 blurred0=texture2D(blurStep0,vUV);\\ngl_FragColor=mix(original,blurred0,coc);\\n#endif\\n#if BLUR_LEVEL == 1\\nif(coc<0.5){\\nvec4 original=texture2D(textureSampler,vUV);\\nvec4 blurred1=texture2D(blurStep1,vUV);\\ngl_FragColor=mix(original,blurred1,coc/0.5);\\n}else{\\nvec4 blurred0=texture2D(blurStep0,vUV);\\nvec4 blurred1=texture2D(blurStep1,vUV);\\ngl_FragColor=mix(blurred1,blurred0,(coc-0.5)/0.5);\\n}\\n#endif\\n#if BLUR_LEVEL == 2\\nif(coc<0.33){\\nvec4 original=texture2D(textureSampler,vUV);\\nvec4 blurred2=texture2D(blurStep2,vUV);\\ngl_FragColor=mix(original,blurred2,coc/0.33);\\n}else if(coc<0.66){\\nvec4 blurred1=texture2D(blurStep1,vUV);\\nvec4 blurred2=texture2D(blurStep2,vUV);\\ngl_FragColor=mix(blurred2,blurred1,(coc-0.33)/0.33);\\n}else{\\nvec4 blurred0=texture2D(blurStep0,vUV);\\nvec4 blurred1=texture2D(blurStep1,vUV);\\ngl_FragColor=mix(blurred1,blurred0,(coc-0.66)/0.34);\\n}\\n#endif\\n}\\n\";ai.a.ShadersStore.depthOfFieldMergePixelShader=of;var af,sf=function(){},cf=function(e){function t(t,i,n,r,o,a,s,c,l,u,h){void 0===u&&(u=g.a.TEXTURETYPE_UNSIGNED_INT),void 0===h&&(h=!1);var d=e.call(this,t,\"depthOfFieldMerge\",[],[\"circleOfConfusionSampler\",\"blurStep0\",\"blurStep1\",\"blurStep2\"],o,a,s,c,l,null,u,void 0,null,!0)||this;return d.blurSteps=r,d.onApplyObservable.add((function(e){e.setTextureFromPostProcess(\"textureSampler\",i),e.setTextureFromPostProcessOutput(\"circleOfConfusionSampler\",n),r.forEach((function(t,i){e.setTextureFromPostProcessOutput(\"blurStep\"+(r.length-i-1),t)}))})),h||d.updateEffect(),d}return Object(h.d)(t,e),t.prototype.getClassName=function(){return\"DepthOfFieldMergePostProcess\"},t.prototype.updateEffect=function(t,i,n,r,o,a){void 0===t&&(t=null),void 0===i&&(i=null),void 0===n&&(n=null),t||(t=\"\",t+=\"#define BLUR_LEVEL \"+(this.blurSteps.length-1)+\"\\n\"),e.prototype.updateEffect.call(this,t,i,n,r,o,a)},t}(li);!function(e){e[e.Low=0]=\"Low\",e[e.Medium=1]=\"Medium\",e[e.High=2]=\"High\"}(af||(af={}));var lf=function(e){function t(t,i,n,r,o){void 0===n&&(n=af.Low),void 0===r&&(r=0),void 0===o&&(o=!1);var s=e.call(this,t.getEngine(),\"depth of field\",(function(){return s._effects}),!0)||this;s._effects=[],s._circleOfConfusion=new Jd(\"circleOfConfusion\",i,1,null,Ke.a.BILINEAR_SAMPLINGMODE,t.getEngine(),!1,r,o),s._depthOfFieldBlurY=[],s._depthOfFieldBlurX=[];var c=1,l=15;switch(n){case af.High:c=3,l=51;break;case af.Medium:c=2,l=31;break;default:l=15,c=1}for(var u=l/Math.pow(2,c-1),h=1,d=0;d=edgeVert;\\nfloat subpixA=subpixNSWE*2.0+subpixNWSWNESE;\\nif (!horzSpan)\\n{\\nlumaN=lumaW;\\n}\\nif (!horzSpan)\\n{\\nlumaS=lumaE;\\n}\\nif (horzSpan)\\n{\\nlengthSign=texelSize.y;\\n}\\nfloat subpixB=(subpixA*(1.0/12.0))-lumaM;\\nfloat gradientN=lumaN-lumaM;\\nfloat gradientS=lumaS-lumaM;\\nfloat lumaNN=lumaN+lumaM;\\nfloat lumaSS=lumaS+lumaM;\\nbool pairN=abs(gradientN)>=abs(gradientS);\\nfloat gradient=max(abs(gradientN),abs(gradientS));\\nif (pairN)\\n{\\nlengthSign=-lengthSign;\\n}\\nfloat subpixC=clamp(abs(subpixB)*subpixRcpRange,0.0,1.0);\\nvec2 posB;\\nposB.x=posM.x;\\nposB.y=posM.y;\\nvec2 offNP;\\noffNP.x=(!horzSpan) ? 0.0 : texelSize.x;\\noffNP.y=(horzSpan) ? 0.0 : texelSize.y;\\nif (!horzSpan)\\n{\\nposB.x+=lengthSign*0.5;\\n}\\nif (horzSpan)\\n{\\nposB.y+=lengthSign*0.5;\\n}\\nvec2 posN;\\nposN.x=posB.x-offNP.x*1.5;\\nposN.y=posB.y-offNP.y*1.5;\\nvec2 posP;\\nposP.x=posB.x+offNP.x*1.5;\\nposP.y=posB.y+offNP.y*1.5;\\nfloat subpixD=((-2.0)*subpixC)+3.0;\\nfloat lumaEndN=FxaaLuma(texture2D(textureSampler,posN,0.0));\\nfloat subpixE=subpixC*subpixC;\\nfloat lumaEndP=FxaaLuma(texture2D(textureSampler,posP,0.0));\\nif (!pairN)\\n{\\nlumaNN=lumaSS;\\n}\\nfloat gradientScaled=gradient*1.0/4.0;\\nfloat lumaMM=lumaM-lumaNN*0.5;\\nfloat subpixF=subpixD*subpixE;\\nbool lumaMLTZero=lumaMM<0.0;\\nlumaEndN-=lumaNN*0.5;\\nlumaEndP-=lumaNN*0.5;\\nbool doneN=abs(lumaEndN)>=gradientScaled;\\nbool doneP=abs(lumaEndP)>=gradientScaled;\\nif (!doneN)\\n{\\nposN.x-=offNP.x*3.0;\\n}\\nif (!doneN)\\n{\\nposN.y-=offNP.y*3.0;\\n}\\nbool doneNP=(!doneN) || (!doneP);\\nif (!doneP)\\n{\\nposP.x+=offNP.x*3.0;\\n}\\nif (!doneP)\\n{\\nposP.y+=offNP.y*3.0;\\n}\\nif (doneNP)\\n{\\nif (!doneN) lumaEndN=FxaaLuma(texture2D(textureSampler,posN.xy,0.0));\\nif (!doneP) lumaEndP=FxaaLuma(texture2D(textureSampler,posP.xy,0.0));\\nif (!doneN) lumaEndN=lumaEndN-lumaNN*0.5;\\nif (!doneP) lumaEndP=lumaEndP-lumaNN*0.5;\\ndoneN=abs(lumaEndN)>=gradientScaled;\\ndoneP=abs(lumaEndP)>=gradientScaled;\\nif (!doneN) posN.x-=offNP.x*12.0;\\nif (!doneN) posN.y-=offNP.y*12.0;\\ndoneNP=(!doneN) || (!doneP);\\nif (!doneP) posP.x+=offNP.x*12.0;\\nif (!doneP) posP.y+=offNP.y*12.0;\\n}\\nfloat dstN=posM.x-posN.x;\\nfloat dstP=posP.x-posM.x;\\nif (!horzSpan)\\n{\\ndstN=posM.y-posN.y;\\n}\\nif (!horzSpan)\\n{\\ndstP=posP.y-posM.y;\\n}\\nbool goodSpanN=(lumaEndN<0.0) != lumaMLTZero;\\nfloat spanLength=(dstP+dstN);\\nbool goodSpanP=(lumaEndP<0.0) != lumaMLTZero;\\nfloat spanLengthRcp=1.0/spanLength;\\nbool directionN=dstN-1?\"#define MALI 1\\n\":null},t._Parse=function(e,i,n,r){return w.a.Parse((function(){return new t(e.name,e.options,i,e.renderTargetSamplingMode,n.getEngine(),e.reusable)}),e,n,r)},t}(li);c.a.RegisteredTypes[\"BABYLON.FxaaPostProcess\"]=mf;var gf=\"#include\\n\\nuniform sampler2D textureSampler;\\n\\nuniform float intensity;\\nuniform float animatedSeed;\\n\\nvarying vec2 vUV;\\nvoid main(void)\\n{\\ngl_FragColor=texture2D(textureSampler,vUV);\\nvec2 seed=vUV*(animatedSeed);\\nfloat grain=dither(seed,intensity);\\n\\nfloat lum=getLuminance(gl_FragColor.rgb);\\nfloat grainAmount=(cos(-PI+(lum*PI*2.))+1.)/2.;\\ngl_FragColor.rgb+=grain*grainAmount;\\ngl_FragColor.rgb=max(gl_FragColor.rgb,0.0);\\n}\";ai.a.ShadersStore.grainPixelShader=gf;var vf=function(e){function t(t,i,n,r,o,a,s,c){void 0===s&&(s=g.a.TEXTURETYPE_UNSIGNED_INT),void 0===c&&(c=!1);var l=e.call(this,t,\"grain\",[\"intensity\",\"animatedSeed\"],[],i,n,r,o,a,null,s,void 0,null,c)||this;return l.intensity=30,l.animated=!1,l.onApplyObservable.add((function(e){e.setFloat(\"intensity\",l.intensity),e.setFloat(\"animatedSeed\",l.animated?Math.random()+1:1)})),l}return Object(h.d)(t,e),t.prototype.getClassName=function(){return\"GrainPostProcess\"},t._Parse=function(e,i,n,r){return w.a.Parse((function(){return new t(e.name,e.options,i,e.renderTargetSamplingMode,n.getEngine(),e.reusable)}),e,n,r)},Object(h.c)([Object(w.c)()],t.prototype,\"intensity\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"animated\",void 0),t}(li);c.a.RegisteredTypes[\"BABYLON.GrainPostProcess\"]=vf;var bf=\"\\nvarying vec2 vUV;\\nuniform sampler2D textureSampler;\\nconst vec3 RGBLuminanceCoefficients=vec3(0.2126,0.7152,0.0722);\\nvoid main(void)\\n{\\nvec4 tex=texture2D(textureSampler,vUV);\\nvec3 c=tex.rgb;\\nfloat luma=dot(c.rgb,RGBLuminanceCoefficients);\\n\\n\\ngl_FragColor=vec4(pow(c,vec3(25.0-luma*15.0)),tex.a);\\n}\";ai.a.ShadersStore.highlightsPixelShader=bf;var yf=function(e){function t(t,i,n,r,o,a,s){return void 0===s&&(s=g.a.TEXTURETYPE_UNSIGNED_INT),e.call(this,t,\"highlights\",null,null,i,n,r,o,a,null,s)||this}return Object(h.d)(t,e),t.prototype.getClassName=function(){return\"HighlightsPostProcess\"},t}(li);ai.a.IncludesShadersStore.mrtFragmentDeclaration=\"#if __VERSION__>=200\\nlayout(location=0) out vec4 glFragData[{X}];\\n#endif\\n\";var Tf=\"#extension GL_EXT_draw_buffers : require\\n#if defined(BUMP) || !defined(NORMAL)\\n#extension GL_OES_standard_derivatives : enable\\n#endif\\nprecision highp float;\\nprecision highp int;\\n#ifdef BUMP\\nvarying mat4 vWorldView;\\nvarying vec3 vNormalW;\\n#else\\nvarying vec3 vNormalV;\\n#endif\\nvarying vec4 vViewPos;\\n#if defined(POSITION) || defined(BUMP)\\nvarying vec3 vPositionW;\\n#endif\\n#ifdef VELOCITY\\nvarying vec4 vCurrentPosition;\\nvarying vec4 vPreviousPosition;\\n#endif\\n#ifdef NEED_UV\\nvarying vec2 vUV;\\n#endif\\n#ifdef BUMP\\nuniform vec3 vBumpInfos;\\nuniform vec2 vTangentSpaceParams;\\n#endif\\n#ifdef REFLECTIVITY\\nvarying vec2 vReflectivityUV;\\nuniform sampler2D reflectivitySampler;\\n#endif\\n#ifdef ALPHATEST\\nuniform sampler2D diffuseSampler;\\n#endif\\n#include[RENDER_TARGET_COUNT]\\n#include\\n#include\\nvoid main() {\\n#ifdef ALPHATEST\\nif (texture2D(diffuseSampler,vUV).a<0.4)\\ndiscard;\\n#endif\\nvec3 normalOutput;\\n#ifdef BUMP\\nvec3 normalW=normalize(vNormalW);\\n#include\\nnormalOutput=normalize(vec3(vWorldView*vec4(normalW,0.0)));\\n#else\\nnormalOutput=normalize(vNormalV);\\n#endif\\n#ifdef PREPASS\\n#ifdef PREPASS_DEPTHNORMAL\\ngl_FragData[DEPTHNORMAL_INDEX]=vec4(vViewPos.z/vViewPos.w,normalOutput);\\n#endif\\n#else\\ngl_FragData[0]=vec4(vViewPos.z/vViewPos.w,0.0,0.0,1.0);\\ngl_FragData[1]=vec4(normalOutput,1.0);\\n#endif\\n#ifdef POSITION\\ngl_FragData[POSITION_INDEX]=vec4(vPositionW,1.0);\\n#endif\\n#ifdef VELOCITY\\nvec2 a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5;\\nvec2 b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5;\\nvec2 velocity=abs(a-b);\\nvelocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5;\\ngl_FragData[VELOCITY_INDEX]=vec4(velocity,0.0,1.0);\\n#endif\\n#ifdef REFLECTIVITY\\n#ifdef HAS_SPECULAR\\n\\nvec4 reflectivity=texture2D(reflectivitySampler,vReflectivityUV);\\n#elif HAS_REFLECTIVITY\\n\\nvec4 reflectivity=vec4(texture2D(reflectivitySampler,vReflectivityUV).rgb,1.0);\\n#else\\nvec4 reflectivity=vec4(0.0,0.0,0.0,1.0);\\n#endif\\ngl_FragData[REFLECTIVITY_INDEX]=reflectivity;\\n#endif\\n}\";ai.a.ShadersStore.geometryPixelShader=Tf;var Ef=\"precision highp float;\\nprecision highp int;\\n#include\\n#include\\n#include[0..maxSimultaneousMorphTargets]\\n#include\\nattribute vec3 position;\\nattribute vec3 normal;\\n#ifdef NEED_UV\\nvarying vec2 vUV;\\n#ifdef ALPHATEST\\nuniform mat4 diffuseMatrix;\\n#endif\\n#ifdef BUMP\\nuniform mat4 bumpMatrix;\\nvarying vec2 vBumpUV;\\n#endif\\n#ifdef REFLECTIVITY\\nuniform mat4 reflectivityMatrix;\\nvarying vec2 vReflectivityUV;\\n#endif\\n#ifdef UV1\\nattribute vec2 uv;\\n#endif\\n#ifdef UV2\\nattribute vec2 uv2;\\n#endif\\n#endif\\n\\nuniform mat4 viewProjection;\\nuniform mat4 view;\\n#ifdef BUMP\\nvarying mat4 vWorldView;\\n#endif\\n#ifdef BUMP\\nvarying vec3 vNormalW;\\n#else\\nvarying vec3 vNormalV;\\n#endif\\nvarying vec4 vViewPos;\\n#if defined(POSITION) || defined(BUMP)\\nvarying vec3 vPositionW;\\n#endif\\n#ifdef VELOCITY\\nuniform mat4 previousWorld;\\nuniform mat4 previousViewProjection;\\n#ifdef BONES_VELOCITY_ENABLED\\n#if NUM_BONE_INFLUENCERS>0\\nuniform mat4 mPreviousBones[BonesPerMesh];\\n#endif\\n#endif\\nvarying vec4 vCurrentPosition;\\nvarying vec4 vPreviousPosition;\\n#endif\\nvoid main(void)\\n{\\nvec3 positionUpdated=position;\\nvec3 normalUpdated=normal;\\n#ifdef UV1\\nvec2 uvUpdated=uv;\\n#endif\\n#include[0..maxSimultaneousMorphTargets]\\n#include\\n#if defined(VELOCITY) && !defined(BONES_VELOCITY_ENABLED)\\n\\nvCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);\\nvPreviousPosition=previousViewProjection*previousWorld*vec4(positionUpdated,1.0);\\n#endif\\n#include\\nvec4 pos=vec4(finalWorld*vec4(positionUpdated,1.0));\\n#ifdef BUMP\\nvWorldView=view*finalWorld;\\nvNormalW=normalUpdated;\\n#else\\nvNormalV=normalize(vec3((view*finalWorld)*vec4(normalUpdated,0.0)));\\n#endif\\nvViewPos=view*pos;\\n#if defined(VELOCITY) && defined(BONES_VELOCITY_ENABLED)\\nvCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);\\n#if NUM_BONE_INFLUENCERS>0\\nmat4 previousInfluence;\\npreviousInfluence=mPreviousBones[int(matricesIndices[0])]*matricesWeights[0];\\n#if NUM_BONE_INFLUENCERS>1\\npreviousInfluence+=mPreviousBones[int(matricesIndices[1])]*matricesWeights[1];\\n#endif\\n#if NUM_BONE_INFLUENCERS>2\\npreviousInfluence+=mPreviousBones[int(matricesIndices[2])]*matricesWeights[2];\\n#endif\\n#if NUM_BONE_INFLUENCERS>3\\npreviousInfluence+=mPreviousBones[int(matricesIndices[3])]*matricesWeights[3];\\n#endif\\n#if NUM_BONE_INFLUENCERS>4\\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[0])]*matricesWeightsExtra[0];\\n#endif\\n#if NUM_BONE_INFLUENCERS>5\\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[1])]*matricesWeightsExtra[1];\\n#endif\\n#if NUM_BONE_INFLUENCERS>6\\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[2])]*matricesWeightsExtra[2];\\n#endif\\n#if NUM_BONE_INFLUENCERS>7\\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[3])]*matricesWeightsExtra[3];\\n#endif\\nvPreviousPosition=previousViewProjection*previousWorld*previousInfluence*vec4(positionUpdated,1.0);\\n#else\\nvPreviousPosition=previousViewProjection*previousWorld*vec4(positionUpdated,1.0);\\n#endif\\n#endif\\n#if defined(POSITION) || defined(BUMP)\\nvPositionW=pos.xyz/pos.w;\\n#endif\\ngl_Position=viewProjection*finalWorld*vec4(positionUpdated,1.0);\\n#ifdef NEED_UV\\n#ifdef UV1\\n#ifdef ALPHATEST\\nvUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\\n#else\\nvUV=uv;\\n#endif\\n#ifdef BUMP\\nvBumpUV=vec2(bumpMatrix*vec4(uvUpdated,1.0,0.0));\\n#endif\\n#ifdef REFLECTIVITY\\nvReflectivityUV=vec2(reflectivityMatrix*vec4(uvUpdated,1.0,0.0));\\n#endif\\n#endif\\n#ifdef UV2\\n#ifdef ALPHATEST\\nvUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\\n#else\\nvUV=uv2;\\n#endif\\n#ifdef BUMP\\nvBumpUV=vec2(bumpMatrix*vec4(uv2,1.0,0.0));\\n#endif\\n#ifdef REFLECTIVITY\\nvReflectivityUV=vec2(reflectivityMatrix*vec4(uv2,1.0,0.0));\\n#endif\\n#endif\\n#endif\\n#include\\n}\\n\";ai.a.ShadersStore.geometryVertexShader=Ef;var Sf=function(){function e(t,i){void 0===i&&(i=1),this._previousTransformationMatrices={},this._previousBonesTransformationMatrices={},this.excludedSkinnedMeshesFromVelocity=[],this.renderTransparentMeshes=!0,this._resizeObserver=null,this._enablePosition=!1,this._enableVelocity=!1,this._enableReflectivity=!1,this._positionIndex=-1,this._velocityIndex=-1,this._reflectivityIndex=-1,this._depthNormalIndex=-1,this._linkedWithPrePass=!1,this._scene=t,this._ratio=i,e._SceneComponentInitialization(this._scene),this._createRenderTargets()}return e.prototype._linkPrePassRenderer=function(e){this._linkedWithPrePass=!0,this._prePassRenderer=e,this._multiRenderTarget&&(this._multiRenderTarget.onClearObservable.clear(),this._multiRenderTarget.onClearObservable.add((function(e){})))},e.prototype._unlinkPrePassRenderer=function(){this._linkedWithPrePass=!1,this._createRenderTargets()},e.prototype._resetLayout=function(){this._enablePosition=!1,this._enableReflectivity=!1,this._enableVelocity=!1,this._attachments=[]},e.prototype._forceTextureType=function(t,i){t===e.POSITION_TEXTURE_TYPE?(this._positionIndex=i,this._enablePosition=!0):t===e.VELOCITY_TEXTURE_TYPE?(this._velocityIndex=i,this._enableVelocity=!0):t===e.REFLECTIVITY_TEXTURE_TYPE?(this._reflectivityIndex=i,this._enableReflectivity=!0):t===e.DEPTHNORMAL_TEXTURE_TYPE&&(this._depthNormalIndex=i)},e.prototype._setAttachments=function(e){this._attachments=e},e.prototype._linkInternalTexture=function(e){this._multiRenderTarget._texture=e},Object.defineProperty(e.prototype,\"renderList\",{get:function(){return this._multiRenderTarget.renderList},set:function(e){this._multiRenderTarget.renderList=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"isSupported\",{get:function(){return this._multiRenderTarget.isSupported},enumerable:!1,configurable:!0}),e.prototype.getTextureIndex=function(t){switch(t){case e.POSITION_TEXTURE_TYPE:return this._positionIndex;case e.VELOCITY_TEXTURE_TYPE:return this._velocityIndex;case e.REFLECTIVITY_TEXTURE_TYPE:return this._reflectivityIndex;default:return-1}},Object.defineProperty(e.prototype,\"enablePosition\",{get:function(){return this._enablePosition},set:function(e){this._enablePosition=e,this._linkedWithPrePass||(this.dispose(),this._createRenderTargets())},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"enableVelocity\",{get:function(){return this._enableVelocity},set:function(e){this._enableVelocity=e,e||(this._previousTransformationMatrices={}),this._linkedWithPrePass||(this.dispose(),this._createRenderTargets())},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"enableReflectivity\",{get:function(){return this._enableReflectivity},set:function(e){this._enableReflectivity=e,this._linkedWithPrePass||(this.dispose(),this._createRenderTargets())},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"scene\",{get:function(){return this._scene},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"ratio\",{get:function(){return this._ratio},enumerable:!1,configurable:!0}),e.prototype.isReady=function(e,t){var i=e.getMaterial();if(i&&i.disableDepthWrite)return!1;var n=[],r=[Qi.b.PositionKind,Qi.b.NormalKind],o=e.getMesh();if(i){var a=!1;i.needAlphaTesting()&&(n.push(\"#define ALPHATEST\"),a=!0),i.bumpTexture&&Wi.a.BumpTextureEnabled&&(n.push(\"#define BUMP\"),n.push(\"#define BUMPDIRECTUV 0\"),a=!0),this._enableReflectivity&&(i instanceof Wi.a&&i.specularTexture?(n.push(\"#define HAS_SPECULAR\"),a=!0):i instanceof ma&&i.reflectivityTexture&&(n.push(\"#define HAS_REFLECTIVITY\"),a=!0)),a&&(n.push(\"#define NEED_UV\"),o.isVerticesDataPresent(Qi.b.UVKind)&&(r.push(Qi.b.UVKind),n.push(\"#define UV1\")),o.isVerticesDataPresent(Qi.b.UV2Kind)&&(r.push(Qi.b.UV2Kind),n.push(\"#define UV2\")))}this._linkedWithPrePass&&(n.push(\"#define PREPASS\"),-1!==this._depthNormalIndex&&(n.push(\"#define DEPTHNORMAL_INDEX \"+this._depthNormalIndex),n.push(\"#define PREPASS_DEPTHNORMAL\"))),this._enablePosition&&(n.push(\"#define POSITION\"),n.push(\"#define POSITION_INDEX \"+this._positionIndex)),this._enableVelocity&&(n.push(\"#define VELOCITY\"),n.push(\"#define VELOCITY_INDEX \"+this._velocityIndex),-1===this.excludedSkinnedMeshesFromVelocity.indexOf(o)&&n.push(\"#define BONES_VELOCITY_ENABLED\")),this._enableReflectivity&&(n.push(\"#define REFLECTIVITY\"),n.push(\"#define REFLECTIVITY_INDEX \"+this._reflectivityIndex)),o.useBones&&o.computeBonesUsingShaders?(r.push(Qi.b.MatricesIndicesKind),r.push(Qi.b.MatricesWeightsKind),o.numBoneInfluencers>4&&(r.push(Qi.b.MatricesIndicesExtraKind),r.push(Qi.b.MatricesWeightsExtraKind)),n.push(\"#define NUM_BONE_INFLUENCERS \"+o.numBoneInfluencers),n.push(\"#define BonesPerMesh \"+(o.skeleton?o.skeleton.bones.length+1:0))):n.push(\"#define NUM_BONE_INFLUENCERS 0\");var s=o.morphTargetManager,c=0;s&&s.numInfluencers>0&&(c=s.numInfluencers,n.push(\"#define MORPHTARGETS\"),n.push(\"#define NUM_MORPH_INFLUENCERS \"+c),ro.a.PrepareAttributesForMorphTargetsInfluencers(r,o,c)),t&&(n.push(\"#define INSTANCES\"),ro.a.PushAttributesForInstances(r),e.getRenderingMesh().hasThinInstances&&n.push(\"#define THIN_INSTANCES\")),this._linkedWithPrePass?n.push(\"#define RENDER_TARGET_COUNT \"+this._attachments.length):n.push(\"#define RENDER_TARGET_COUNT \"+this._multiRenderTarget.textures.length);var l=n.join(\"\\n\");return this._cachedDefines!==l&&(this._cachedDefines=l,this._effect=this._scene.getEngine().createEffect(\"geometry\",r,[\"world\",\"mBones\",\"viewProjection\",\"diffuseMatrix\",\"view\",\"previousWorld\",\"previousViewProjection\",\"mPreviousBones\",\"morphTargetInfluences\",\"bumpMatrix\",\"reflectivityMatrix\",\"vTangentSpaceParams\",\"vBumpInfos\"],[\"diffuseSampler\",\"bumpSampler\",\"reflectivitySampler\"],l,void 0,void 0,void 0,{buffersCount:this._multiRenderTarget.textures.length-1,maxSimultaneousMorphTargets:c})),this._effect.isReady()},e.prototype.getGBuffer=function(){return this._multiRenderTarget},Object.defineProperty(e.prototype,\"samples\",{get:function(){return this._multiRenderTarget.samples},set:function(e){this._multiRenderTarget.samples=e},enumerable:!1,configurable:!0}),e.prototype.dispose=function(){this._resizeObserver&&(this._scene.getEngine().onResizeObservable.remove(this._resizeObserver),this._resizeObserver=null);this.getGBuffer().dispose()},e.prototype._assignRenderTargetIndices=function(){var e=2;return this._enablePosition&&(this._positionIndex=e,e++),this._enableVelocity&&(this._velocityIndex=e,e++),this._enableReflectivity&&(this._reflectivityIndex=e,e++),e},e.prototype._createRenderTargets=function(){var e=this,t=this._scene.getEngine(),i=this._assignRenderTargetIndices();if(this._multiRenderTarget=new Hc(\"gBuffer\",{width:t.getRenderWidth()*this._ratio,height:t.getRenderHeight()*this._ratio},i,this._scene,{generateMipMaps:!1,generateDepthTexture:!0,defaultType:g.a.TEXTURETYPE_FLOAT}),this.isSupported){this._multiRenderTarget.wrapU=Ke.a.CLAMP_ADDRESSMODE,this._multiRenderTarget.wrapV=Ke.a.CLAMP_ADDRESSMODE,this._multiRenderTarget.refreshRate=1,this._multiRenderTarget.renderParticles=!1,this._multiRenderTarget.renderList=null,this._multiRenderTarget.onClearObservable.add((function(e){e.clear(new s.b(0,0,0,1),!0,!0,!0)})),this._resizeObserver=t.onResizeObservable.add((function(){e._multiRenderTarget&&e._multiRenderTarget.resize({width:t.getRenderWidth()*e._ratio,height:t.getRenderHeight()*e._ratio})}));var n=function(t){var i=t.getRenderingMesh(),n=t.getEffectiveMesh(),r=e._scene,o=r.getEngine(),s=t.getMaterial();if(s){if(n._internalAbstractMeshDataInfo._isActiveIntermediate=!1,e._enableVelocity&&!e._previousTransformationMatrices[n.uniqueId]&&(e._previousTransformationMatrices[n.uniqueId]={world:a.a.Identity(),viewProjection:r.getTransformMatrix()},i.skeleton)){var c=i.skeleton.getTransformMatrices(i);e._previousBonesTransformationMatrices[i.uniqueId]=e._copyBonesTransformationMatrices(c,new Float32Array(c.length))}var l=i._getInstancesRenderList(t._id,!!t.getReplacementMesh());if(!l.mustReturn){var u=o.getCaps().instancedArrays&&(null!==l.visibleInstances[t._id]||i.hasThinInstances),h=n.getWorldMatrix();if(e.isReady(t,u)){if(o.enableEffect(e._effect),i._bind(t,e._effect,s.fillMode),e._effect.setMatrix(\"viewProjection\",r.getTransformMatrix()),e._effect.setMatrix(\"view\",r.getViewMatrix()),s){var d,f=n._instanceDataStorage;if(f.isFrozen||!s.backFaceCulling&&null===s.overrideMaterialSideOrientation)d=f.sideOrientation;else{var p=n._getWorldMatrixDeterminant();null==(d=s.overrideMaterialSideOrientation)&&(d=s.sideOrientation),p<0&&(d=d===xo.a.ClockWiseSideOrientation?xo.a.CounterClockWiseSideOrientation:xo.a.ClockWiseSideOrientation)}if(s._preBind(e._effect,d),s.needAlphaTesting()){var _=s.getAlphaTestTexture();_&&(e._effect.setTexture(\"diffuseSampler\",_),e._effect.setMatrix(\"diffuseMatrix\",_.getTextureMatrix()))}s.bumpTexture&&r.getEngine().getCaps().standardDerivatives&&Wi.a.BumpTextureEnabled&&(e._effect.setFloat3(\"vBumpInfos\",s.bumpTexture.coordinatesIndex,1/s.bumpTexture.level,s.parallaxScaleBias),e._effect.setMatrix(\"bumpMatrix\",s.bumpTexture.getTextureMatrix()),e._effect.setTexture(\"bumpSampler\",s.bumpTexture),e._effect.setFloat2(\"vTangentSpaceParams\",s.invertNormalMapX?-1:1,s.invertNormalMapY?-1:1)),e._enableReflectivity&&(s instanceof Wi.a&&s.specularTexture?(e._effect.setMatrix(\"reflectivityMatrix\",s.specularTexture.getTextureMatrix()),e._effect.setTexture(\"reflectivitySampler\",s.specularTexture)):s instanceof ma&&s.reflectivityTexture&&(e._effect.setMatrix(\"reflectivityMatrix\",s.reflectivityTexture.getTextureMatrix()),e._effect.setTexture(\"reflectivitySampler\",s.reflectivityTexture)))}i.useBones&&i.computeBonesUsingShaders&&i.skeleton&&(e._effect.setMatrices(\"mBones\",i.skeleton.getTransformMatrices(i)),e._enableVelocity&&e._effect.setMatrices(\"mPreviousBones\",e._previousBonesTransformationMatrices[i.uniqueId])),ro.a.BindMorphTargetParameters(i,e._effect),e._enableVelocity&&(e._effect.setMatrix(\"previousWorld\",e._previousTransformationMatrices[n.uniqueId].world),e._effect.setMatrix(\"previousViewProjection\",e._previousTransformationMatrices[n.uniqueId].viewProjection)),i._processRendering(n,t,e._effect,s.fillMode,l,u,(function(t,i){return e._effect.setMatrix(\"world\",i)}))}e._enableVelocity&&(e._previousTransformationMatrices[n.uniqueId].world=h.clone(),e._previousTransformationMatrices[n.uniqueId].viewProjection=e._scene.getTransformMatrix().clone(),i.skeleton&&e._copyBonesTransformationMatrices(i.skeleton.getTransformMatrices(i),e._previousBonesTransformationMatrices[n.uniqueId]))}}};this._multiRenderTarget.customRenderFunction=function(i,r,o,a){var s;if(e._linkedWithPrePass){if(!e._prePassRenderer.enabled)return;e._scene.getEngine().bindAttachments(e._attachments)}if(a.length){for(t.setColorWrite(!1),s=0;s=samplesCount)\\nbreak;\\nvec2 offset=vUV+velocity*(hlim+float(i));\\nresult+=texture2D(textureSampler,offset);\\n}\\ngl_FragColor=result/float(samplesCount);\\ngl_FragColor.a=1.0;\\n#else\\nvec2 texelSize=1.0/screenSize;\\nfloat depth=texture2D(depthSampler,vUV).r;\\nvec4 cpos=vec4(vUV*2.0-1.0,depth,1.0);\\ncpos=cpos*inverseViewProjection;\\nvec4 ppos=cpos*prevViewProjection;\\nppos.xyz/=ppos.w;\\nppos.xy=ppos.xy*0.5+0.5;\\nvec2 velocity=(ppos.xy-vUV)*motionScale*motionStrength;\\nfloat speed=length(velocity/texelSize);\\nint nSamples=int(clamp(speed,1.0,SAMPLES));\\nvec4 result=texture2D(textureSampler,vUV);\\nfor (int i=1; i=nSamples)\\nbreak;\\nvec2 offset1=vUV+velocity*(float(i)/float(nSamples-1)-0.5);\\nresult+=texture2D(textureSampler,offset1);\\n}\\ngl_FragColor=result/float(nSamples);\\n#endif\\n#else\\ngl_FragColor=texture2D(textureSampler,vUV);\\n#endif\\n}\\n\";ai.a.ShadersStore.motionBlurPixelShader=Cf;var Rf=function(e){function t(t,i,n,r,o,a,s,c,l,u){void 0===c&&(c=g.a.TEXTURETYPE_UNSIGNED_INT),void 0===l&&(l=!1),void 0===u&&(u=!0);var h=e.call(this,t,\"motionBlur\",[\"motionStrength\",\"motionScale\",\"screenSize\",\"inverseViewProjection\",\"prevViewProjection\"],[\"velocitySampler\"],n,r,o,a,s,\"#define GEOMETRY_SUPPORTED\\n#define SAMPLES 64.0\\n#define OBJECT_BASED\",c,void 0,null,l)||this;return h.motionStrength=1,h._motionBlurSamples=32,h._isObjectBased=!0,h._forceGeometryBuffer=!1,h._geometryBufferRenderer=null,h._prePassRenderer=null,h._invViewProjection=null,h._previousViewProjection=null,h._forceGeometryBuffer=u,h._forceGeometryBuffer?(h._geometryBufferRenderer=i.enableGeometryBufferRenderer(),h._geometryBufferRenderer&&(h._geometryBufferRenderer.enableVelocity=!0)):(h._prePassRenderer=i.enablePrePassRenderer(),h._prePassRenderer&&(h._prePassRenderer.markAsDirty(),h._prePassEffectConfiguration=new Af)),h._applyMode(),h}return Object(h.d)(t,e),Object.defineProperty(t.prototype,\"motionBlurSamples\",{get:function(){return this._motionBlurSamples},set:function(e){this._motionBlurSamples=e,this._updateEffect()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"isObjectBased\",{get:function(){return this._isObjectBased},set:function(e){this._isObjectBased!==e&&(this._isObjectBased=e,this._applyMode())},enumerable:!1,configurable:!0}),t.prototype.getClassName=function(){return\"MotionBlurPostProcess\"},t.prototype.excludeSkinnedMesh=function(e){if(e.skeleton){var t=void 0;if(this._geometryBufferRenderer)t=this._geometryBufferRenderer.excludedSkinnedMeshesFromVelocity;else{if(!this._prePassRenderer)return;t=this._prePassRenderer.excludedSkinnedMesh}t.push(e)}},t.prototype.removeExcludedSkinnedMesh=function(e){if(e.skeleton){var t=void 0;if(this._geometryBufferRenderer)t=this._geometryBufferRenderer.excludedSkinnedMeshesFromVelocity;else{if(!this._prePassRenderer)return;t=this._prePassRenderer.excludedSkinnedMesh}var i=t.indexOf(e);-1!==i&&t.splice(i,1)}},t.prototype.dispose=function(t){this._geometryBufferRenderer&&(this._geometryBufferRenderer._previousTransformationMatrices={},this._geometryBufferRenderer._previousBonesTransformationMatrices={},this._geometryBufferRenderer.excludedSkinnedMeshesFromVelocity=[]),e.prototype.dispose.call(this,t)},t.prototype._applyMode=function(){var e=this;if(!this._geometryBufferRenderer&&!this._prePassRenderer)return m.a.Warn(\"Multiple Render Target support needed to compute object based motion blur\"),this.updateEffect();this._updateEffect(),this._invViewProjection=null,this._previousViewProjection=null,this.isObjectBased?(this._prePassRenderer&&this._prePassEffectConfiguration&&(this._prePassEffectConfiguration.texturesRequired[0]=g.a.PREPASS_VELOCITY_TEXTURE_TYPE),this.onApply=function(t){return e._onApplyObjectBased(t)}):(this._invViewProjection=a.a.Identity(),this._previousViewProjection=a.a.Identity(),this._prePassRenderer&&this._prePassEffectConfiguration&&(this._prePassEffectConfiguration.texturesRequired[0]=g.a.PREPASS_DEPTHNORMAL_TEXTURE_TYPE),this.onApply=function(t){return e._onApplyScreenBased(t)})},t.prototype._onApplyObjectBased=function(e){if(e.setVector2(\"screenSize\",new a.d(this.width,this.height)),e.setFloat(\"motionScale\",this._scene.getAnimationRatio()),e.setFloat(\"motionStrength\",this.motionStrength),this._geometryBufferRenderer){var t=this._geometryBufferRenderer.getTextureIndex(Sf.VELOCITY_TEXTURE_TYPE);e.setTexture(\"velocitySampler\",this._geometryBufferRenderer.getGBuffer().textures[t])}else if(this._prePassRenderer){t=this._prePassRenderer.getIndex(g.a.PREPASS_VELOCITY_TEXTURE_TYPE);e.setTexture(\"velocitySampler\",this._prePassRenderer.prePassRT.textures[t])}},t.prototype._onApplyScreenBased=function(e){var t=this._scene.getProjectionMatrix().multiply(this._scene.getViewMatrix());if(t.invertToRef(this._invViewProjection),e.setMatrix(\"inverseViewProjection\",this._invViewProjection),e.setMatrix(\"prevViewProjection\",this._previousViewProjection),this._previousViewProjection=t,e.setVector2(\"screenSize\",new a.d(this.width,this.height)),e.setFloat(\"motionScale\",this._scene.getAnimationRatio()),e.setFloat(\"motionStrength\",this.motionStrength),this._geometryBufferRenderer){var i=this._geometryBufferRenderer.getTextureIndex(Sf.DEPTHNORMAL_TEXTURE_TYPE);e.setTexture(\"depthSampler\",this._geometryBufferRenderer.getGBuffer().textures[i])}else if(this._prePassRenderer){i=this._prePassRenderer.getIndex(g.a.PREPASS_DEPTHNORMAL_TEXTURE_TYPE);e.setTexture(\"depthSampler\",this._prePassRenderer.prePassRT.textures[i])}},t.prototype._updateEffect=function(){if(this._geometryBufferRenderer||this._prePassRenderer){var e=[\"#define GEOMETRY_SUPPORTED\",\"#define SAMPLES \"+this._motionBlurSamples.toFixed(1),this._isObjectBased?\"#define OBJECT_BASED\":\"#define SCREEN_BASED\"];this.updateEffect(e.join(\"\\n\"))}},t._Parse=function(e,i,n,r){return w.a.Parse((function(){return new t(e.name,n,e.options,i,e.renderTargetSamplingMode,n.getEngine(),e.reusable,e.textureType,!1)}),e,n,r)},Object(h.c)([Object(w.c)()],t.prototype,\"motionStrength\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"motionBlurSamples\",null),Object(h.c)([Object(w.c)()],t.prototype,\"isObjectBased\",null),t}(li);c.a.RegisteredTypes[\"BABYLON.MotionBlurPostProcess\"]=Rf;var xf=\"\\nvarying vec2 vUV;\\nuniform sampler2D textureSampler;\\nuniform sampler2D refractionSampler;\\n\\nuniform vec3 baseColor;\\nuniform float depth;\\nuniform float colorLevel;\\nvoid main() {\\nfloat ref=1.0-texture2D(refractionSampler,vUV).r;\\nvec2 uv=vUV-vec2(0.5);\\nvec2 offset=uv*depth*ref;\\nvec3 sourceColor=texture2D(textureSampler,vUV-offset).rgb;\\ngl_FragColor=vec4(sourceColor+sourceColor*ref*colorLevel,1.0);\\n}\";ai.a.ShadersStore.refractionPixelShader=xf;var Of=function(e){function t(t,i,n,r,o,a,s,c,l,u){var h=e.call(this,t,\"refraction\",[\"baseColor\",\"depth\",\"colorLevel\"],[\"refractionSampler\"],a,s,c,l,u)||this;return h._ownRefractionTexture=!0,h.color=n,h.depth=r,h.colorLevel=o,h.refractionTextureUrl=i,h.onActivateObservable.add((function(e){h._refTexture=h._refTexture||new Ke.a(i,e.getScene())})),h.onApplyObservable.add((function(e){e.setColor3(\"baseColor\",h.color),e.setFloat(\"depth\",h.depth),e.setFloat(\"colorLevel\",h.colorLevel),e.setTexture(\"refractionSampler\",h._refTexture)})),h}return Object(h.d)(t,e),Object.defineProperty(t.prototype,\"refractionTexture\",{get:function(){return this._refTexture},set:function(e){this._refTexture&&this._ownRefractionTexture&&this._refTexture.dispose(),this._refTexture=e,this._ownRefractionTexture=!1},enumerable:!1,configurable:!0}),t.prototype.getClassName=function(){return\"RefractionPostProcess\"},t.prototype.dispose=function(t){this._refTexture&&this._ownRefractionTexture&&(this._refTexture.dispose(),this._refTexture=null),e.prototype.dispose.call(this,t)},t._Parse=function(e,i,n,r){return w.a.Parse((function(){return new t(e.name,e.refractionTextureUrl,e.color,e.depth,e.colorLevel,e.options,i,e.renderTargetSamplingMode,n.getEngine(),e.reusable)}),e,n,r)},Object(h.c)([Object(w.c)()],t.prototype,\"color\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"depth\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"colorLevel\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"refractionTextureUrl\",void 0),t}(li);c.a.RegisteredTypes[\"BABYLON.RefractionPostProcess\"]=Of;var Mf=\"\\nvarying vec2 vUV;\\nuniform sampler2D textureSampler;\\nuniform vec2 screenSize;\\nuniform vec2 sharpnessAmounts;\\nvoid main(void)\\n{\\nvec2 onePixel=vec2(1.0,1.0)/screenSize;\\nvec4 color=texture2D(textureSampler,vUV);\\nvec4 edgeDetection=texture2D(textureSampler,vUV+onePixel*vec2(0,-1)) +\\ntexture2D(textureSampler,vUV+onePixel*vec2(-1,0)) +\\ntexture2D(textureSampler,vUV+onePixel*vec2(1,0)) +\\ntexture2D(textureSampler,vUV+onePixel*vec2(0,1)) -\\ncolor*4.0;\\ngl_FragColor=max(vec4(color.rgb*sharpnessAmounts.y,color.a)-(sharpnessAmounts.x*vec4(edgeDetection.rgb,0)),0.);\\n}\";ai.a.ShadersStore.sharpenPixelShader=Mf;var If=function(e){function t(t,i,n,r,o,a,s,c){void 0===s&&(s=g.a.TEXTURETYPE_UNSIGNED_INT),void 0===c&&(c=!1);var l=e.call(this,t,\"sharpen\",[\"sharpnessAmounts\",\"screenSize\"],null,i,n,r,o,a,null,s,void 0,null,c)||this;return l.colorAmount=1,l.edgeAmount=.3,l.onApply=function(e){e.setFloat2(\"screenSize\",l.width,l.height),e.setFloat2(\"sharpnessAmounts\",l.edgeAmount,l.colorAmount)},l}return Object(h.d)(t,e),t.prototype.getClassName=function(){return\"SharpenPostProcess\"},t._Parse=function(e,i,n,r){return w.a.Parse((function(){return new t(e.name,e.options,i,e.renderTargetSamplingMode,n.getEngine(),e.textureType,e.reusable)}),e,n,r)},Object(h.c)([Object(w.c)()],t.prototype,\"colorAmount\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"edgeAmount\",void 0),t}(li);c.a.RegisteredTypes[\"BABYLON.SharpenPostProcess\"]=If;var Df=function(){function e(e,t){this.engine=e,this._name=t,this._renderEffects={},this._renderEffectsForIsolatedPass=new Array,this._cameras=[]}return Object.defineProperty(e.prototype,\"name\",{get:function(){return this._name},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"cameras\",{get:function(){return this._cameras},enumerable:!1,configurable:!0}),e.prototype.getClassName=function(){return\"PostProcessRenderPipeline\"},Object.defineProperty(e.prototype,\"isSupported\",{get:function(){for(var e in this._renderEffects)if(this._renderEffects.hasOwnProperty(e)&&!this._renderEffects[e].isSupported)return!1;return!0},enumerable:!1,configurable:!0}),e.prototype.addEffect=function(e){this._renderEffects[e._name]=e},e.prototype._rebuild=function(){},e.prototype._enableEffect=function(e,t){var i=this._renderEffects[e];i&&i._enable(Ce.b.MakeArray(t||this._cameras))},e.prototype._disableEffect=function(e,t){var i=this._renderEffects[e];i&&i._disable(Ce.b.MakeArray(t||this._cameras))},e.prototype._attachCameras=function(e,t){var i=Ce.b.MakeArray(e||this._cameras);if(i){var n,r=[];for(n=0;n0){var i=this._renderEffects[t[0]].getPostProcesses();i&&(i[0].samples=e)}return!0},e.prototype.setPrePassRenderer=function(e){return!1},e.prototype.dispose=function(){},Object(h.c)([Object(w.c)()],e.prototype,\"_name\",void 0),e}(),Nf=function(){function e(){this._renderPipelines={}}return Object.defineProperty(e.prototype,\"supportedPipelines\",{get:function(){var e=[];for(var t in this._renderPipelines)if(this._renderPipelines.hasOwnProperty(t)){var i=this._renderPipelines[t];i.isSupported&&e.push(i)}return e},enumerable:!1,configurable:!0}),e.prototype.addPipeline=function(e){this._renderPipelines[e._name]=e},e.prototype.attachCamerasToRenderPipeline=function(e,t,i){void 0===i&&(i=!1);var n=this._renderPipelines[e];n&&n._attachCameras(t,i)},e.prototype.detachCamerasFromRenderPipeline=function(e,t){var i=this._renderPipelines[e];i&&i._detachCameras(t)},e.prototype.enableEffectInPipeline=function(e,t,i){var n=this._renderPipelines[e];n&&n._enableEffect(t,i)},e.prototype.disableEffectInPipeline=function(e,t,i){var n=this._renderPipelines[e];n&&n._disableEffect(t,i)},e.prototype.update=function(){for(var e in this._renderPipelines)if(this._renderPipelines.hasOwnProperty(e)){var t=this._renderPipelines[e];t.isSupported?t._update():(t.dispose(),delete this._renderPipelines[e])}},e.prototype._rebuild=function(){for(var e in this._renderPipelines){if(this._renderPipelines.hasOwnProperty(e))this._renderPipelines[e]._rebuild()}},e.prototype.dispose=function(){for(var e in this._renderPipelines){if(this._renderPipelines.hasOwnProperty(e))this._renderPipelines[e].dispose()}},e}();Object.defineProperty(Q.a.prototype,\"postProcessRenderPipelineManager\",{get:function(){if(!this._postProcessRenderPipelineManager){var e=this._getComponent(Me.a.NAME_POSTPROCESSRENDERPIPELINEMANAGER);e||(e=new Lf(this),this._addComponent(e)),this._postProcessRenderPipelineManager=new Nf}return this._postProcessRenderPipelineManager},enumerable:!0,configurable:!0});var Lf=function(){function e(e){this.name=Me.a.NAME_POSTPROCESSRENDERPIPELINEMANAGER,this.scene=e}return e.prototype.register=function(){this.scene._gatherRenderTargetsStage.registerStep(Me.a.STEP_GATHERRENDERTARGETS_POSTPROCESSRENDERPIPELINEMANAGER,this,this._gatherRenderTargets)},e.prototype.rebuild=function(){this.scene._postProcessRenderPipelineManager&&this.scene._postProcessRenderPipelineManager._rebuild()},e.prototype.dispose=function(){this.scene._postProcessRenderPipelineManager&&this.scene._postProcessRenderPipelineManager.dispose()},e.prototype._gatherRenderTargets=function(){this.scene._postProcessRenderPipelineManager&&this.scene._postProcessRenderPipelineManager.update()},e}(),wf=function(e){function t(t,i,n,r,a){void 0===t&&(t=\"\"),void 0===i&&(i=!0),void 0===n&&(n=x.a.LastCreatedScene),void 0===a&&(a=!0);var s=e.call(this,n.getEngine(),t)||this;s._camerasToBeAttached=[],s.SharpenPostProcessId=\"SharpenPostProcessEffect\",s.ImageProcessingPostProcessId=\"ImageProcessingPostProcessEffect\",s.FxaaPostProcessId=\"FxaaPostProcessEffect\",s.ChromaticAberrationPostProcessId=\"ChromaticAberrationPostProcessEffect\",s.GrainPostProcessId=\"GrainPostProcessEffect\",s._glowLayer=null,s.animations=[],s._imageProcessingConfigurationObserver=null,s._sharpenEnabled=!1,s._bloomEnabled=!1,s._depthOfFieldEnabled=!1,s._depthOfFieldBlurLevel=af.Low,s._fxaaEnabled=!1,s._imageProcessingEnabled=!0,s._bloomScale=.5,s._chromaticAberrationEnabled=!1,s._grainEnabled=!1,s._buildAllowed=!0,s.onBuildObservable=new o.c,s._resizeObserver=null,s._hardwareScaleLevel=1,s._bloomKernel=64,s._bloomWeight=.15,s._bloomThreshold=.9,s._samples=1,s._hasCleared=!1,s._prevPostProcess=null,s._prevPrevPostProcess=null,s._depthOfFieldSceneObserver=null,s._cameras=r||n.cameras,s._cameras=s._cameras.slice(),s._camerasToBeAttached=s._cameras.slice(),s._buildAllowed=a,s._scene=n;var c=s._scene.getEngine().getCaps();s._hdr=i&&(c.textureHalfFloatRender||c.textureFloatRender),s._hdr?c.textureHalfFloatRender?s._defaultPipelineTextureType=g.a.TEXTURETYPE_HALF_FLOAT:c.textureFloatRender&&(s._defaultPipelineTextureType=g.a.TEXTURETYPE_FLOAT):s._defaultPipelineTextureType=g.a.TEXTURETYPE_UNSIGNED_INT,n.postProcessRenderPipelineManager.addPipeline(s);var l=s._scene.getEngine();return s.sharpen=new If(\"sharpen\",1,null,Ke.a.BILINEAR_SAMPLINGMODE,l,!1,s._defaultPipelineTextureType,!0),s._sharpenEffect=new jd(l,s.SharpenPostProcessId,(function(){return s.sharpen}),!0),s.depthOfField=new lf(s._scene,null,s._depthOfFieldBlurLevel,s._defaultPipelineTextureType,!0),s.bloom=new Kd(s._scene,s._bloomScale,s._bloomWeight,s.bloomKernel,s._defaultPipelineTextureType,!0),s.chromaticAberration=new qd(\"ChromaticAberration\",l.getRenderWidth(),l.getRenderHeight(),1,null,Ke.a.BILINEAR_SAMPLINGMODE,l,!1,s._defaultPipelineTextureType,!0),s._chromaticAberrationEffect=new jd(l,s.ChromaticAberrationPostProcessId,(function(){return s.chromaticAberration}),!0),s.grain=new vf(\"Grain\",1,null,Ke.a.BILINEAR_SAMPLINGMODE,l,!1,s._defaultPipelineTextureType,!0),s._grainEffect=new jd(l,s.GrainPostProcessId,(function(){return s.grain}),!0),s._resizeObserver=l.onResizeObservable.add((function(){s._hardwareScaleLevel=l.getHardwareScalingLevel(),s.bloomKernel=s.bloomKernel})),s._imageProcessingConfigurationObserver=s._scene.imageProcessingConfiguration.onUpdateParameters.add((function(){s.bloom._downscale._exposure=s._scene.imageProcessingConfiguration.exposure,s.imageProcessingEnabled!==s._scene.imageProcessingConfiguration.isEnabled&&(s._imageProcessingEnabled=s._scene.imageProcessingConfiguration.isEnabled,s._buildPipeline())})),s._buildPipeline(),s}return Object(h.d)(t,e),Object.defineProperty(t.prototype,\"scene\",{get:function(){return this._scene},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"sharpenEnabled\",{get:function(){return this._sharpenEnabled},set:function(e){this._sharpenEnabled!==e&&(this._sharpenEnabled=e,this._buildPipeline())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"bloomKernel\",{get:function(){return this._bloomKernel},set:function(e){this._bloomKernel=e,this.bloom.kernel=e/this._hardwareScaleLevel},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"bloomWeight\",{get:function(){return this._bloomWeight},set:function(e){this._bloomWeight!==e&&(this.bloom.weight=e,this._bloomWeight=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"bloomThreshold\",{get:function(){return this._bloomThreshold},set:function(e){this._bloomThreshold!==e&&(this.bloom.threshold=e,this._bloomThreshold=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"bloomScale\",{get:function(){return this._bloomScale},set:function(e){this._bloomScale!==e&&(this._bloomScale=e,this._rebuildBloom(),this._buildPipeline())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"bloomEnabled\",{get:function(){return this._bloomEnabled},set:function(e){this._bloomEnabled!==e&&(this._bloomEnabled=e,this._buildPipeline())},enumerable:!1,configurable:!0}),t.prototype._rebuildBloom=function(){var e=this.bloom;this.bloom=new Kd(this._scene,this.bloomScale,this._bloomWeight,this.bloomKernel,this._defaultPipelineTextureType,!1),this.bloom.threshold=e.threshold;for(var t=0;t1){for(var i=0,n=this._cameras;i-1&&(e.depthOfField.depthTexture=t.enableDepthRenderer(t.activeCamera).getDepthMap())}))}else{this._scene.onAfterRenderTargetsRenderObservable.remove(this._depthOfFieldSceneObserver);var o=this._scene.enableDepthRenderer(this._cameras[0]);this.depthOfField.depthTexture=o.getDepthMap()}this.depthOfField._isReady()||this.depthOfField._updateEffects(),this.addEffect(this.depthOfField),this._setAutoClearAndTextureSharing(this.depthOfField._effects[0],!0)}else this._scene.onAfterRenderTargetsRenderObservable.remove(this._depthOfFieldSceneObserver);this.bloomEnabled&&(this.bloom._isReady()||this.bloom._updateEffects(),this.addEffect(this.bloom),this._setAutoClearAndTextureSharing(this.bloom._effects[0],!0)),this._imageProcessingEnabled&&(this.imageProcessing=new Yi(\"imageProcessing\",1,null,Ke.a.BILINEAR_SAMPLINGMODE,t,!1,this._defaultPipelineTextureType),this._hdr?(this.addEffect(new jd(t,this.ImageProcessingPostProcessId,(function(){return e.imageProcessing}),!0)),this._setAutoClearAndTextureSharing(this.imageProcessing)):this._scene.imageProcessingConfiguration.applyByPostProcess=!1,this.cameras&&0!==this.cameras.length||(this._scene.imageProcessingConfiguration.applyByPostProcess=!1),this.imageProcessing.getEffect()||this.imageProcessing._updateParameters()),this.sharpenEnabled&&(this.sharpen.isReady()||this.sharpen.updateEffect(),this.addEffect(this._sharpenEffect),this._setAutoClearAndTextureSharing(this.sharpen)),this.grainEnabled&&(this.grain.isReady()||this.grain.updateEffect(),this.addEffect(this._grainEffect),this._setAutoClearAndTextureSharing(this.grain)),this.chromaticAberrationEnabled&&(this.chromaticAberration.isReady()||this.chromaticAberration.updateEffect(),this.addEffect(this._chromaticAberrationEffect),this._setAutoClearAndTextureSharing(this.chromaticAberration)),this.fxaaEnabled&&(this.fxaa=new mf(\"fxaa\",1,null,Ke.a.BILINEAR_SAMPLINGMODE,t,!1,this._defaultPipelineTextureType),this.addEffect(new jd(t,this.FxaaPostProcessId,(function(){return e.fxaa}),!0)),this._setAutoClearAndTextureSharing(this.fxaa,!0)),null!==this._cameras&&this._scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(this._name,this._cameras),this._scene.activeCameras&&this._scene.activeCameras.length>1&&(this._scene.autoClear=!0),!this._enableMSAAOnFirstPostProcess(this.samples)&&this.samples>1&&m.a.Warn(\"MSAA failed to enable, MSAA is only supported in browsers that support webGL >= 2.0\"),this.onBuildObservable.notifyObservers(this)}},t.prototype._disposePostProcesses=function(e){void 0===e&&(e=!1);for(var t=0;t1.0) { lum_threshold=0.94+0.01*threshold; }\\nelse { lum_threshold=0.5+0.44*threshold; }\\nluminance=clamp((luminance-lum_threshold)*(1.0/(1.0-lum_threshold)),0.0,1.0);\\nhighlight*=luminance*gain;\\nhighlight.a=1.0;\\nreturn highlight;\\n}\\nvoid main(void)\\n{\\nvec4 original=texture2D(textureSampler,vUV);\\n\\nif (gain == -1.0) {\\ngl_FragColor=vec4(0.0,0.0,0.0,1.0);\\nreturn;\\n}\\nfloat w=2.0/screen_width;\\nfloat h=2.0/screen_height;\\nfloat weight=1.0;\\n\\nvec4 blurred=vec4(0.0,0.0,0.0,0.0);\\n#ifdef PENTAGON\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.84*w,0.43*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.48*w,-1.29*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.61*w,1.51*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.55*w,-0.74*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.71*w,-0.52*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.94*w,1.59*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.40*w,-1.87*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.62*w,1.16*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.09*w,0.25*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.46*w,-1.71*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.08*w,2.42*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.85*w,-1.89*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.89*w,0.16*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.29*w,1.88*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.40*w,-2.81*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.54*w,2.26*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.60*w,-0.61*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.31*w,-1.30*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.83*w,2.53*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.12*w,-2.48*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.60*w,1.11*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.82*w,0.99*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.50*w,-2.81*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.85*w,3.33*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.94*w,-1.92*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.27*w,-0.53*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.95*w,2.48*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.23*w,-3.04*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.17*w,2.05*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.97*w,-0.04*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.25*w,-2.00*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.31*w,3.08*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.94*w,-2.59*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.37*w,0.64*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-3.13*w,1.93*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.03*w,-3.65*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.60*w,3.17*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-3.14*w,-1.19*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.00*w,-1.19*h)));\\n#else\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.85*w,0.36*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.52*w,-1.14*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.46*w,1.42*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.46*w,-0.83*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.79*w,-0.42*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.11*w,1.62*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.29*w,-2.07*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.69*w,1.39*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.28*w,0.12*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.65*w,-1.69*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.08*w,2.44*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.63*w,-1.90*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.55*w,0.31*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.13*w,1.52*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.56*w,-2.61*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.38*w,2.34*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.64*w,-0.81*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.53*w,-1.21*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.06*w,2.63*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.00*w,-2.69*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.59*w,1.32*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.82*w,0.78*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.57*w,-2.50*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.54*w,2.93*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.39*w,-1.81*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.01*w,-0.28*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.04*w,2.25*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.02*w,-3.05*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.09*w,2.25*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-3.07*w,-0.25*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.44*w,-1.90*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.52*w,3.05*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.68*w,-2.61*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.01*w,0.79*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.76*w,1.46*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.05*w,-2.94*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.21*w,2.88*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.84*w,-1.30*h)));\\nblurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.98*w,-0.96*h)));\\n#endif\\nblurred/=39.0;\\ngl_FragColor=blurred;\\n\\n}\";ai.a.ShadersStore.lensHighlightsPixelShader=Ff;var Bf=\"\\n\\n\\n\\n\\nuniform sampler2D textureSampler;\\nuniform sampler2D highlightsSampler;\\nuniform sampler2D depthSampler;\\nuniform sampler2D grainSampler;\\n\\nuniform float grain_amount;\\nuniform bool blur_noise;\\nuniform float screen_width;\\nuniform float screen_height;\\nuniform float distortion;\\nuniform bool dof_enabled;\\n\\nuniform float screen_distance;\\nuniform float aperture;\\nuniform float darken;\\nuniform float edge_blur;\\nuniform bool highlights;\\n\\nuniform float near;\\nuniform float far;\\n\\nvarying vec2 vUV;\\n\\n#define PI 3.14159265\\n#define TWOPI 6.28318530\\n#define inverse_focal_length 0.1\\n\\nvec2 centered_screen_pos;\\nvec2 distorted_coords;\\nfloat radius2;\\nfloat radius;\\n\\nvec2 rand(vec2 co)\\n{\\nfloat noise1=(fract(sin(dot(co,vec2(12.9898,78.233)))*43758.5453));\\nfloat noise2=(fract(sin(dot(co,vec2(12.9898,78.233)*2.0))*43758.5453));\\nreturn clamp(vec2(noise1,noise2),0.0,1.0);\\n}\\n\\nvec2 getDistortedCoords(vec2 coords) {\\nif (distortion == 0.0) { return coords; }\\nvec2 direction=1.0*normalize(centered_screen_pos);\\nvec2 dist_coords=vec2(0.5,0.5);\\ndist_coords.x=0.5+direction.x*radius2*1.0;\\ndist_coords.y=0.5+direction.y*radius2*1.0;\\nfloat dist_amount=clamp(distortion*0.23,0.0,1.0);\\ndist_coords=mix(coords,dist_coords,dist_amount);\\nreturn dist_coords;\\n}\\n\\nfloat sampleScreen(inout vec4 color,const in vec2 offset,const in float weight) {\\n\\nvec2 coords=distorted_coords;\\nfloat angle=rand(coords*100.0).x*TWOPI;\\ncoords+=vec2(offset.x*cos(angle)-offset.y*sin(angle),offset.x*sin(angle)+offset.y*cos(angle));\\ncolor+=texture2D(textureSampler,coords)*weight;\\nreturn weight;\\n}\\n\\nfloat getBlurLevel(float size) {\\nreturn min(3.0,ceil(size/1.0));\\n}\\n\\nvec4 getBlurColor(float size) {\\nvec4 col=texture2D(textureSampler,distorted_coords);\\nif (size == 0.0) { return col; }\\n\\n\\nfloat blur_level=getBlurLevel(size);\\nfloat w=(size/screen_width);\\nfloat h=(size/screen_height);\\nfloat total_weight=1.0;\\nvec2 sample_coords;\\ntotal_weight+=sampleScreen(col,vec2(-0.50*w,0.24*h),0.93);\\ntotal_weight+=sampleScreen(col,vec2(0.30*w,-0.75*h),0.90);\\ntotal_weight+=sampleScreen(col,vec2(0.36*w,0.96*h),0.87);\\ntotal_weight+=sampleScreen(col,vec2(-1.08*w,-0.55*h),0.85);\\ntotal_weight+=sampleScreen(col,vec2(1.33*w,-0.37*h),0.83);\\ntotal_weight+=sampleScreen(col,vec2(-0.82*w,1.31*h),0.80);\\ntotal_weight+=sampleScreen(col,vec2(-0.31*w,-1.67*h),0.78);\\ntotal_weight+=sampleScreen(col,vec2(1.47*w,1.11*h),0.76);\\ntotal_weight+=sampleScreen(col,vec2(-1.97*w,0.19*h),0.74);\\ntotal_weight+=sampleScreen(col,vec2(1.42*w,-1.57*h),0.72);\\nif (blur_level>1.0) {\\ntotal_weight+=sampleScreen(col,vec2(0.01*w,2.25*h),0.70);\\ntotal_weight+=sampleScreen(col,vec2(-1.62*w,-1.74*h),0.67);\\ntotal_weight+=sampleScreen(col,vec2(2.49*w,0.20*h),0.65);\\ntotal_weight+=sampleScreen(col,vec2(-2.07*w,1.61*h),0.63);\\ntotal_weight+=sampleScreen(col,vec2(0.46*w,-2.70*h),0.61);\\ntotal_weight+=sampleScreen(col,vec2(1.55*w,2.40*h),0.59);\\ntotal_weight+=sampleScreen(col,vec2(-2.88*w,-0.75*h),0.56);\\ntotal_weight+=sampleScreen(col,vec2(2.73*w,-1.44*h),0.54);\\ntotal_weight+=sampleScreen(col,vec2(-1.08*w,3.02*h),0.52);\\ntotal_weight+=sampleScreen(col,vec2(-1.28*w,-3.05*h),0.49);\\n}\\nif (blur_level>2.0) {\\ntotal_weight+=sampleScreen(col,vec2(3.11*w,1.43*h),0.46);\\ntotal_weight+=sampleScreen(col,vec2(-3.36*w,1.08*h),0.44);\\ntotal_weight+=sampleScreen(col,vec2(1.80*w,-3.16*h),0.41);\\ntotal_weight+=sampleScreen(col,vec2(0.83*w,3.65*h),0.38);\\ntotal_weight+=sampleScreen(col,vec2(-3.16*w,-2.19*h),0.34);\\ntotal_weight+=sampleScreen(col,vec2(3.92*w,-0.53*h),0.31);\\ntotal_weight+=sampleScreen(col,vec2(-2.59*w,3.12*h),0.26);\\ntotal_weight+=sampleScreen(col,vec2(-0.20*w,-4.15*h),0.22);\\ntotal_weight+=sampleScreen(col,vec2(3.02*w,3.00*h),0.15);\\n}\\ncol/=total_weight;\\n\\nif (darken>0.0) {\\ncol.rgb*=clamp(0.3,1.0,1.05-size*0.5*darken);\\n}\\n\\n\\n\\n\\nreturn col;\\n}\\nvoid main(void)\\n{\\n\\ncentered_screen_pos=vec2(vUV.x-0.5,vUV.y-0.5);\\nradius2=centered_screen_pos.x*centered_screen_pos.x+centered_screen_pos.y*centered_screen_pos.y;\\nradius=sqrt(radius2);\\ndistorted_coords=getDistortedCoords(vUV);\\nvec2 texels_coords=vec2(vUV.x*screen_width,vUV.y*screen_height);\\nfloat depth=texture2D(depthSampler,distorted_coords).r;\\nfloat distance=near+(far-near)*depth;\\nvec4 color=texture2D(textureSampler,vUV);\\n\\n\\nfloat coc=abs(aperture*(screen_distance*(inverse_focal_length-1.0/distance)-1.0));\\n\\nif (dof_enabled == false || coc<0.07) { coc=0.0; }\\n\\nfloat edge_blur_amount=0.0;\\nif (edge_blur>0.0) {\\nedge_blur_amount=clamp((radius*2.0-1.0+0.15*edge_blur)*1.5,0.0,1.0)*1.3;\\n}\\n\\nfloat blur_amount=max(edge_blur_amount,coc);\\n\\nif (blur_amount == 0.0) {\\ngl_FragColor=texture2D(textureSampler,distorted_coords);\\n}\\nelse {\\n\\ngl_FragColor=getBlurColor(blur_amount*1.7);\\n\\nif (highlights) {\\ngl_FragColor.rgb+=clamp(coc,0.0,1.0)*texture2D(highlightsSampler,distorted_coords).rgb;\\n}\\nif (blur_noise) {\\n\\nvec2 noise=rand(distorted_coords)*0.01*blur_amount;\\nvec2 blurred_coord=vec2(distorted_coords.x+noise.x,distorted_coords.y+noise.y);\\ngl_FragColor=0.04*texture2D(textureSampler,blurred_coord)+0.96*gl_FragColor;\\n}\\n}\\n\\nif (grain_amount>0.0) {\\nvec4 grain_color=texture2D(grainSampler,texels_coords*0.003);\\ngl_FragColor.rgb+=(-0.5+grain_color.rgb)*0.30*grain_amount;\\n}\\n}\\n\";ai.a.ShadersStore.depthOfFieldPixelShader=Bf;var Uf=function(e){function t(t,i,n,r,o){void 0===r&&(r=1);var a=e.call(this,n.getEngine(),t)||this;return a.LensChromaticAberrationEffect=\"LensChromaticAberrationEffect\",a.HighlightsEnhancingEffect=\"HighlightsEnhancingEffect\",a.LensDepthOfFieldEffect=\"LensDepthOfFieldEffect\",a._pentagonBokehIsEnabled=!1,a._scene=n,a._depthTexture=n.enableDepthRenderer().getDepthMap(),i.grain_texture?a._grainTexture=i.grain_texture:a._createGrainTexture(),a._edgeBlur=i.edge_blur?i.edge_blur:0,a._grainAmount=i.grain_amount?i.grain_amount:0,a._chromaticAberration=i.chromatic_aberration?i.chromatic_aberration:0,a._distortion=i.distortion?i.distortion:0,a._highlightsGain=void 0!==i.dof_gain?i.dof_gain:-1,a._highlightsThreshold=i.dof_threshold?i.dof_threshold:1,a._dofDistance=void 0!==i.dof_focus_distance?i.dof_focus_distance:-1,a._dofAperture=i.dof_aperture?i.dof_aperture:1,a._dofDarken=i.dof_darken?i.dof_darken:0,a._dofPentagon=void 0===i.dof_pentagon||i.dof_pentagon,a._blurNoise=void 0===i.blur_noise||i.blur_noise,a._createChromaticAberrationPostProcess(r),a._createHighlightsPostProcess(r),a._createDepthOfFieldPostProcess(r/4),a.addEffect(new jd(n.getEngine(),a.LensChromaticAberrationEffect,(function(){return a._chromaticAberrationPostProcess}),!0)),a.addEffect(new jd(n.getEngine(),a.HighlightsEnhancingEffect,(function(){return a._highlightsPostProcess}),!0)),a.addEffect(new jd(n.getEngine(),a.LensDepthOfFieldEffect,(function(){return a._depthOfFieldPostProcess}),!0)),-1===a._highlightsGain&&a._disableEffect(a.HighlightsEnhancingEffect,null),n.postProcessRenderPipelineManager.addPipeline(a),o&&n.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(t,o),a}return Object(h.d)(t,e),t.prototype.getClassName=function(){return\"LensRenderingPipeline\"},Object.defineProperty(t.prototype,\"scene\",{get:function(){return this._scene},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"edgeBlur\",{get:function(){return this._edgeBlur},set:function(e){this.setEdgeBlur(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"grainAmount\",{get:function(){return this._grainAmount},set:function(e){this.setGrainAmount(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"chromaticAberration\",{get:function(){return this._chromaticAberration},set:function(e){this.setChromaticAberration(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"dofAperture\",{get:function(){return this._dofAperture},set:function(e){this.setAperture(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"edgeDistortion\",{get:function(){return this._distortion},set:function(e){this.setEdgeDistortion(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"dofDistortion\",{get:function(){return this._dofDistance},set:function(e){this.setFocusDistance(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"darkenOutOfFocus\",{get:function(){return this._dofDarken},set:function(e){this.setDarkenOutOfFocus(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"blurNoise\",{get:function(){return this._blurNoise},set:function(e){this._blurNoise=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"pentagonBokeh\",{get:function(){return this._pentagonBokehIsEnabled},set:function(e){e?this.enablePentagonBokeh():this.disablePentagonBokeh()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"highlightsGain\",{get:function(){return this._highlightsGain},set:function(e){this.setHighlightsGain(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"highlightsThreshold\",{get:function(){return this._highlightsThreshold},set:function(e){this.setHighlightsThreshold(e)},enumerable:!1,configurable:!0}),t.prototype.setEdgeBlur=function(e){this._edgeBlur=e},t.prototype.disableEdgeBlur=function(){this._edgeBlur=0},t.prototype.setGrainAmount=function(e){this._grainAmount=e},t.prototype.disableGrain=function(){this._grainAmount=0},t.prototype.setChromaticAberration=function(e){this._chromaticAberration=e},t.prototype.disableChromaticAberration=function(){this._chromaticAberration=0},t.prototype.setEdgeDistortion=function(e){this._distortion=e},t.prototype.disableEdgeDistortion=function(){this._distortion=0},t.prototype.setFocusDistance=function(e){this._dofDistance=e},t.prototype.disableDepthOfField=function(){this._dofDistance=-1},t.prototype.setAperture=function(e){this._dofAperture=e},t.prototype.setDarkenOutOfFocus=function(e){this._dofDarken=e},t.prototype.enablePentagonBokeh=function(){this._highlightsPostProcess.updateEffect(\"#define PENTAGON\\n\"),this._pentagonBokehIsEnabled=!0},t.prototype.disablePentagonBokeh=function(){this._pentagonBokehIsEnabled=!1,this._highlightsPostProcess.updateEffect()},t.prototype.enableNoiseBlur=function(){this._blurNoise=!0},t.prototype.disableNoiseBlur=function(){this._blurNoise=!1},t.prototype.setHighlightsGain=function(e){this._highlightsGain=e},t.prototype.setHighlightsThreshold=function(e){-1===this._highlightsGain&&(this._highlightsGain=1),this._highlightsThreshold=e},t.prototype.disableHighlights=function(){this._highlightsGain=-1},t.prototype.dispose=function(e){void 0===e&&(e=!1),this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name,this._scene.cameras),this._chromaticAberrationPostProcess=null,this._highlightsPostProcess=null,this._depthOfFieldPostProcess=null,this._grainTexture.dispose(),e&&this._scene.disableDepthRenderer()},t.prototype._createChromaticAberrationPostProcess=function(e){var t=this;this._chromaticAberrationPostProcess=new li(\"LensChromaticAberration\",\"chromaticAberration\",[\"chromatic_aberration\",\"screen_width\",\"screen_height\",\"direction\",\"radialIntensity\",\"centerPosition\"],[],e,null,Ke.a.TRILINEAR_SAMPLINGMODE,this._scene.getEngine(),!1),this._chromaticAberrationPostProcess.onApply=function(e){e.setFloat(\"chromatic_aberration\",t._chromaticAberration),e.setFloat(\"screen_width\",t._scene.getEngine().getRenderWidth()),e.setFloat(\"screen_height\",t._scene.getEngine().getRenderHeight()),e.setFloat(\"radialIntensity\",1),e.setFloat2(\"direction\",17,17),e.setFloat2(\"centerPosition\",.5,.5)}},t.prototype._createHighlightsPostProcess=function(e){var t=this;this._highlightsPostProcess=new li(\"LensHighlights\",\"lensHighlights\",[\"gain\",\"threshold\",\"screen_width\",\"screen_height\"],[],e,null,Ke.a.TRILINEAR_SAMPLINGMODE,this._scene.getEngine(),!1,this._dofPentagon?\"#define PENTAGON\\n\":\"\"),this._highlightsPostProcess.onApply=function(e){e.setFloat(\"gain\",t._highlightsGain),e.setFloat(\"threshold\",t._highlightsThreshold),e.setTextureFromPostProcess(\"textureSampler\",t._chromaticAberrationPostProcess),e.setFloat(\"screen_width\",t._scene.getEngine().getRenderWidth()),e.setFloat(\"screen_height\",t._scene.getEngine().getRenderHeight())}},t.prototype._createDepthOfFieldPostProcess=function(e){var t=this;this._depthOfFieldPostProcess=new li(\"LensDepthOfField\",\"depthOfField\",[\"grain_amount\",\"blur_noise\",\"screen_width\",\"screen_height\",\"distortion\",\"dof_enabled\",\"screen_distance\",\"aperture\",\"darken\",\"edge_blur\",\"highlights\",\"near\",\"far\"],[\"depthSampler\",\"grainSampler\",\"highlightsSampler\"],e,null,Ke.a.TRILINEAR_SAMPLINGMODE,this._scene.getEngine(),!1),this._depthOfFieldPostProcess.onApply=function(e){e.setTexture(\"depthSampler\",t._depthTexture),e.setTexture(\"grainSampler\",t._grainTexture),e.setTextureFromPostProcess(\"textureSampler\",t._highlightsPostProcess),e.setTextureFromPostProcess(\"highlightsSampler\",t._depthOfFieldPostProcess),e.setFloat(\"grain_amount\",t._grainAmount),e.setBool(\"blur_noise\",t._blurNoise),e.setFloat(\"screen_width\",t._scene.getEngine().getRenderWidth()),e.setFloat(\"screen_height\",t._scene.getEngine().getRenderHeight()),e.setFloat(\"distortion\",t._distortion),e.setBool(\"dof_enabled\",-1!==t._dofDistance),e.setFloat(\"screen_distance\",1/(.1-1/t._dofDistance)),e.setFloat(\"aperture\",t._dofAperture),e.setFloat(\"darken\",t._dofDarken),e.setFloat(\"edge_blur\",t._edgeBlur),e.setBool(\"highlights\",-1!==t._highlightsGain),t._scene.activeCamera&&(e.setFloat(\"near\",t._scene.activeCamera.minZ),e.setFloat(\"far\",t._scene.activeCamera.maxZ))}},t.prototype._createGrainTexture=function(){this._grainTexture=new Hi.a(\"LensNoiseTexture\",512,this._scene,!1,Ke.a.BILINEAR_SAMPLINGMODE),this._grainTexture.wrapU=Ke.a.WRAP_ADDRESSMODE,this._grainTexture.wrapV=Ke.a.WRAP_ADDRESSMODE;for(var e,t,i,n=this._grainTexture.getContext(),r=0;r<512;r++)for(var o=0;o<512;o++)e=Math.floor(255*(t=.42,i=.58,Math.random()*(i-t)+t)),n.fillStyle=\"rgb(\"+e+\", \"+e+\", \"+e+\")\",n.fillRect(r,o,1,1);this._grainTexture.update(!1)},t}(Df),Vf=function(){this.enabled=!1,this.name=\"ssao2\",this.texturesRequired=[g.a.PREPASS_DEPTHNORMAL_TEXTURE_TYPE]},kf=\"\\nprecision highp float;\\nuniform sampler2D textureSampler;\\nuniform float near;\\nuniform float far;\\nuniform float radius;\\nfloat scales[16]=float[16](\\n0.1,\\n0.11406250000000001,\\n0.131640625,\\n0.15625,\\n0.187890625,\\n0.2265625,\\n0.272265625,\\n0.325,\\n0.384765625,\\n0.4515625,\\n0.525390625,\\n0.60625,\\n0.694140625,\\n0.7890625,\\n0.891015625,\\n1.0\\n);\\nvarying vec2 vUV;\\nfloat perspectiveDepthToViewZ( const in float invClipZ,const in float near,const in float far ) {\\nreturn ( near*far )/( ( far-near )*invClipZ-far );\\n}\\nfloat viewZToPerspectiveDepth( const in float viewZ,const in float near,const in float far ) {\\nreturn ( near*far/viewZ+far)/( far-near );\\n}\\nfloat viewZToOrthographicDepth( const in float viewZ,const in float near,const in float far ) {\\nreturn ( viewZ+near )/( near-far );\\n}\\n#ifdef SSAO\\nuniform sampler2D randomSampler;\\n#ifndef GEOMETRYBUFFER\\nuniform sampler2D depthNormalSampler;\\n#else\\nuniform sampler2D depthSampler;\\nuniform sampler2D normalSampler;\\n#endif\\nuniform float randTextureTiles;\\nuniform float samplesFactor;\\nuniform vec3 sampleSphere[SAMPLES];\\nuniform float totalStrength;\\nuniform float base;\\nuniform float xViewport;\\nuniform float yViewport;\\nuniform float maxZ;\\nuniform float minZAspect;\\nuniform vec2 texelSize;\\nuniform mat4 projection;\\nvoid main()\\n{\\nvec3 random=texture2D(randomSampler,vUV*randTextureTiles).rgb;\\n#ifndef GEOMETRYBUFFER\\nfloat depth=texture2D(depthNormalSampler,vUV).r;\\n#else\\nfloat depth=texture2D(depthSampler,vUV).r;\\n#endif\\nfloat depthSign=depth/abs(depth);\\ndepth=depth*depthSign;\\n#ifndef GEOMETRYBUFFER\\nvec3 normal=texture2D(depthNormalSampler,vUV).gba;\\n#else\\nvec3 normal=texture2D(normalSampler,vUV).rgb;\\n#endif\\nfloat occlusion=0.0;\\nfloat correctedRadius=min(radius,minZAspect*depth/near);\\nvec3 vViewRay=vec3((vUV.x*2.0-1.0)*xViewport,(vUV.y*2.0-1.0)*yViewport,depthSign);\\nvec3 origin=vViewRay*depth;\\nvec3 rvec=random*2.0-1.0;\\nrvec.z=0.0;\\n\\nfloat dotProduct=dot(rvec,normal);\\nrvec=1.0-abs(dotProduct)>1e-2 ? rvec : vec3(-rvec.y,0.0,rvec.x);\\nvec3 tangent=normalize(rvec-normal*dot(rvec,normal));\\nvec3 bitangent=cross(normal,tangent);\\nmat3 tbn=mat3(tangent,bitangent,normal);\\nfloat difference;\\nfor (int i=0; i1.0 || offset.y>1.0) {\\ncontinue;\\n}\\n\\n#ifndef GEOMETRYBUFFER\\nfloat sampleDepth=abs(texture2D(depthNormalSampler,offset.xy).r);\\n#else\\nfloat sampleDepth=abs(texture2D(depthSampler,offset.xy).r);\\n#endif\\n\\ndifference=depthSign*samplePosition.z-sampleDepth;\\nfloat rangeCheck=1.0-smoothstep(correctedRadius*0.5,correctedRadius,difference);\\nocclusion+=(difference>=0.0 ? 1.0 : 0.0)*rangeCheck;\\n}\\nocclusion=occlusion*(1.0-smoothstep(maxZ*0.75,maxZ,depth));\\nfloat ao=1.0-totalStrength*occlusion*samplesFactor;\\nfloat result=clamp(ao+base,0.0,1.0);\\ngl_FragColor=vec4(vec3(result),1.0);\\n}\\n#endif\\n#ifdef BILATERAL_BLUR\\nuniform sampler2D depthNormalSampler;\\nuniform float outSize;\\nuniform float samplerOffsets[SAMPLES];\\nvec4 blur9(sampler2D image,vec2 uv,float resolution,vec2 direction) {\\nvec4 color=vec4(0.0);\\nvec2 off1=vec2(1.3846153846)*direction;\\nvec2 off2=vec2(3.2307692308)*direction;\\ncolor+=texture2D(image,uv)*0.2270270270;\\ncolor+=texture2D(image,uv+(off1/resolution))*0.3162162162;\\ncolor+=texture2D(image,uv-(off1/resolution))*0.3162162162;\\ncolor+=texture2D(image,uv+(off2/resolution))*0.0702702703;\\ncolor+=texture2D(image,uv-(off2/resolution))*0.0702702703;\\nreturn color;\\n}\\nvec4 blur13(sampler2D image,vec2 uv,float resolution,vec2 direction) {\\nvec4 color=vec4(0.0);\\nvec2 off1=vec2(1.411764705882353)*direction;\\nvec2 off2=vec2(3.2941176470588234)*direction;\\nvec2 off3=vec2(5.176470588235294)*direction;\\ncolor+=texture2D(image,uv)*0.1964825501511404;\\ncolor+=texture2D(image,uv+(off1/resolution))*0.2969069646728344;\\ncolor+=texture2D(image,uv-(off1/resolution))*0.2969069646728344;\\ncolor+=texture2D(image,uv+(off2/resolution))*0.09447039785044732;\\ncolor+=texture2D(image,uv-(off2/resolution))*0.09447039785044732;\\ncolor+=texture2D(image,uv+(off3/resolution))*0.010381362401148057;\\ncolor+=texture2D(image,uv-(off3/resolution))*0.010381362401148057;\\nreturn color;\\n}\\nvec4 blur13Bilateral(sampler2D image,vec2 uv,float resolution,vec2 direction) {\\nvec4 color=vec4(0.0);\\nvec2 off1=vec2(1.411764705882353)*direction;\\nvec2 off2=vec2(3.2941176470588234)*direction;\\nvec2 off3=vec2(5.176470588235294)*direction;\\nfloat compareDepth=abs(texture2D(depthNormalSampler,uv).r);\\nfloat sampleDepth;\\nfloat weight;\\nfloat weightSum=30.0;\\ncolor+=texture2D(image,uv)*30.0;\\nsampleDepth=abs(texture2D(depthNormalSampler,uv+(off1/resolution)).r);\\nweight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);\\nweightSum+=weight;\\ncolor+=texture2D(image,uv+(off1/resolution))*weight;\\nsampleDepth=abs(texture2D(depthNormalSampler,uv-(off1/resolution)).r);\\nweight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);\\nweightSum+=weight;\\ncolor+=texture2D(image,uv-(off1/resolution))*weight;\\nsampleDepth=abs(texture2D(depthNormalSampler,uv+(off2/resolution)).r);\\nweight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);\\nweightSum+=weight;\\ncolor+=texture2D(image,uv+(off2/resolution))*weight;\\nsampleDepth=abs(texture2D(depthNormalSampler,uv-(off2/resolution)).r);\\nweight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);\\nweightSum+=weight;\\ncolor+=texture2D(image,uv-(off2/resolution))*weight;\\nsampleDepth=abs(texture2D(depthNormalSampler,uv+(off3/resolution)).r);\\nweight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);\\nweightSum+=weight;\\ncolor+=texture2D(image,uv+(off3/resolution))*weight;\\nsampleDepth=abs(texture2D(depthNormalSampler,uv-(off3/resolution)).r);\\nweight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);\\nweightSum+=weight;\\ncolor+=texture2D(image,uv-(off3/resolution))*weight;\\nreturn color/weightSum;\\n}\\nvoid main()\\n{\\n#if EXPENSIVE\\nfloat compareDepth=abs(texture2D(depthNormalSampler,vUV).r);\\nfloat texelsize=1.0/outSize;\\nfloat result=0.0;\\nfloat weightSum=0.0;\\nfor (int i=0; i=2},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"scene\",{get:function(){return this._scene},enumerable:!1,configurable:!0}),t.prototype.getClassName=function(){return\"SSAO2RenderingPipeline\"},t.prototype.dispose=function(t){void 0===t&&(t=!1);for(var i=0;i0?i._ssaoCombinePostProcess.width:i._originalColorPostProcess.width),e.setFloat(\"near\",i._scene.activeCamera.minZ),e.setFloat(\"far\",i._scene.activeCamera.maxZ),e.setFloat(\"radius\",i.radius),i._forceGeometryBuffer?e.setTexture(\"depthNormalSampler\",i._scene.enableGeometryBufferRenderer().getGBuffer().textures[0]):e.setTexture(\"depthNormalSampler\",i._prePassRenderer.prePassRT.textures[i._prePassRenderer.getIndex(g.a.PREPASS_DEPTHNORMAL_TEXTURE_TYPE)]),e.setArray(\"samplerOffsets\",i._samplerOffsets))},this._blurVPostProcess=new li(\"BlurV\",\"ssao2\",[\"outSize\",\"samplerOffsets\",\"near\",\"far\",\"radius\"],[\"depthNormalSampler\"],t,null,Ke.a.TRILINEAR_SAMPLINGMODE,this._scene.getEngine(),!1,\"#define BILATERAL_BLUR\\n#define BILATERAL_BLUR_V\\n#define SAMPLES 16\\n#define EXPENSIVE \"+(n?\"1\":\"0\")+\"\\n\"),this._blurVPostProcess.onApply=function(e){i._scene.activeCamera&&(e.setFloat(\"outSize\",i._ssaoCombinePostProcess.height>0?i._ssaoCombinePostProcess.height:i._originalColorPostProcess.height),e.setFloat(\"near\",i._scene.activeCamera.minZ),e.setFloat(\"far\",i._scene.activeCamera.maxZ),e.setFloat(\"radius\",i.radius),i._forceGeometryBuffer?e.setTexture(\"depthNormalSampler\",i._scene.enableGeometryBufferRenderer().getGBuffer().textures[0]):e.setTexture(\"depthNormalSampler\",i._prePassRenderer.prePassRT.textures[i._prePassRenderer.getIndex(g.a.PREPASS_DEPTHNORMAL_TEXTURE_TYPE)]),e.setArray(\"samplerOffsets\",i._samplerOffsets))},this._blurHPostProcess.samples=this.textureSamples,this._blurVPostProcess.samples=this.textureSamples},t.prototype._rebuild=function(){e.prototype._rebuild.call(this)},t.prototype._radicalInverse_VdC=function(e){return this._bits[0]=e,this._bits[0]=(this._bits[0]<<16|this._bits[0]>>16)>>>0,this._bits[0]=(1431655765&this._bits[0])<<1|(2863311530&this._bits[0])>>>1>>>0,this._bits[0]=(858993459&this._bits[0])<<2|(3435973836&this._bits[0])>>>2>>>0,this._bits[0]=(252645135&this._bits[0])<<4|(4042322160&this._bits[0])>>>4>>>0,this._bits[0]=(16711935&this._bits[0])<<8|(4278255360&this._bits[0])>>>8>>>0,2.3283064365386963e-10*this._bits[0]},t.prototype._hammersley=function(e,t){return[e/t,this._radicalInverse_VdC(e)]},t.prototype._hemisphereSample_uniform=function(e,t){var i=2*t*Math.PI,n=1-(.85*e+.15),r=Math.sqrt(1-n*n);return new a.e(Math.cos(i)*r,Math.sin(i)*r,n)},t.prototype._generateHemisphere=function(){for(var e,t=this.samples,i=[],n=0;n0.0)\\nhitCoord-=dir;\\nelse\\nhitCoord+=dir;\\ninfo.color+=texture2D(textureSampler,projectedCoord.xy).rgb;\\n}\\nprojectedCoord=projection*vec4(hitCoord,1.0);\\nprojectedCoord.xy/=projectedCoord.w;\\nprojectedCoord.xy=0.5*projectedCoord.xy+vec2(0.5);\\n\\ninfo.coords=vec4(projectedCoord.xy,sampledDepth,1.0);\\ninfo.color+=texture2D(textureSampler,projectedCoord.xy).rgb;\\ninfo.color/=float(SMOOTH_STEPS+1);\\nreturn info;\\n}\\n\\nReflectionInfo getReflectionInfo(vec3 dir,vec3 hitCoord)\\n{\\nReflectionInfo info;\\nvec4 projectedCoord;\\nfloat sampledDepth;\\ndir*=step;\\nfor(int i=0; i>0)),e.push(\"#define SMOOTH_STEPS \"+(this._smoothSteps>>0)),this.updateEffect(e.join(\"\\n\"))},t._Parse=function(e,i,n,r){return w.a.Parse((function(){return new t(e.name,n,e.options,i,e.renderTargetSamplingMode,n.getEngine(),e.textureType,e.reusable)}),e,n,r)},Object(h.c)([Object(w.c)()],t.prototype,\"threshold\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"strength\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"reflectionSpecularFalloffExponent\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"step\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"roughnessFactor\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"enableSmoothReflections\",null),Object(h.c)([Object(w.c)()],t.prototype,\"reflectionSamples\",null),Object(h.c)([Object(w.c)()],t.prototype,\"smoothSteps\",null),t}(li);c.a.RegisteredTypes[\"BABYLON.ScreenSpaceReflectionPostProcess\"]=Yf;var Kf=\"uniform sampler2D textureSampler;\\nvarying vec2 vUV;\\n#if defined(PASS_POST_PROCESS)\\nvoid main(void)\\n{\\nvec4 color=texture2D(textureSampler,vUV);\\ngl_FragColor=color;\\n}\\n#endif\\n#if defined(DOWN_SAMPLE_X4)\\nuniform vec2 dsOffsets[16];\\nvoid main(void)\\n{\\nvec4 average=vec4(0.0,0.0,0.0,0.0);\\naverage=texture2D(textureSampler,vUV+dsOffsets[0]);\\naverage+=texture2D(textureSampler,vUV+dsOffsets[1]);\\naverage+=texture2D(textureSampler,vUV+dsOffsets[2]);\\naverage+=texture2D(textureSampler,vUV+dsOffsets[3]);\\naverage+=texture2D(textureSampler,vUV+dsOffsets[4]);\\naverage+=texture2D(textureSampler,vUV+dsOffsets[5]);\\naverage+=texture2D(textureSampler,vUV+dsOffsets[6]);\\naverage+=texture2D(textureSampler,vUV+dsOffsets[7]);\\naverage+=texture2D(textureSampler,vUV+dsOffsets[8]);\\naverage+=texture2D(textureSampler,vUV+dsOffsets[9]);\\naverage+=texture2D(textureSampler,vUV+dsOffsets[10]);\\naverage+=texture2D(textureSampler,vUV+dsOffsets[11]);\\naverage+=texture2D(textureSampler,vUV+dsOffsets[12]);\\naverage+=texture2D(textureSampler,vUV+dsOffsets[13]);\\naverage+=texture2D(textureSampler,vUV+dsOffsets[14]);\\naverage+=texture2D(textureSampler,vUV+dsOffsets[15]);\\naverage/=16.0;\\ngl_FragColor=average;\\n}\\n#endif\\n#if defined(BRIGHT_PASS)\\nuniform vec2 dsOffsets[4];\\nuniform float brightThreshold;\\nvoid main(void)\\n{\\nvec4 average=vec4(0.0,0.0,0.0,0.0);\\naverage=texture2D(textureSampler,vUV+vec2(dsOffsets[0].x,dsOffsets[0].y));\\naverage+=texture2D(textureSampler,vUV+vec2(dsOffsets[1].x,dsOffsets[1].y));\\naverage+=texture2D(textureSampler,vUV+vec2(dsOffsets[2].x,dsOffsets[2].y));\\naverage+=texture2D(textureSampler,vUV+vec2(dsOffsets[3].x,dsOffsets[3].y));\\naverage*=0.25;\\nfloat luminance=length(average.rgb);\\nif (luminanceshadowPixelDepth)\\naccumFog+=sunColor*computeScattering(dot(rayDirection,sunDirection));\\ncurrentPosition+=stepL;\\n}\\naccumFog/=NB_STEPS;\\nvec3 color=accumFog*scatteringPower;\\ngl_FragColor=vec4(color*exp(color) ,1.0);\\n}\\n#endif\\n#if defined(VLSMERGE)\\nuniform sampler2D originalSampler;\\nvoid main(void)\\n{\\ngl_FragColor=texture2D(originalSampler,vUV)+texture2D(textureSampler,vUV);\\n}\\n#endif\\n#if defined(LUMINANCE)\\nuniform vec2 lumOffsets[4];\\nvoid main()\\n{\\nfloat average=0.0;\\nvec4 color=vec4(0.0);\\nfloat maximum=-1e20;\\nvec3 weight=vec3(0.299,0.587,0.114);\\nfor (int i=0; i<4; i++)\\n{\\ncolor=texture2D(textureSampler,vUV+ lumOffsets[i]);\\n\\nfloat GreyValue=dot(color.rgb,vec3(0.33,0.33,0.33));\\n\\n#ifdef WEIGHTED_AVERAGE\\nfloat GreyValue=dot(color.rgb,weight);\\n#endif\\n#ifdef BRIGHTNESS\\nfloat GreyValue=max(color.r,max(color.g,color.b));\\n#endif\\n#ifdef HSL_COMPONENT\\nfloat GreyValue=0.5*(max(color.r,max(color.g,color.b))+min(color.r,min(color.g,color.b)));\\n#endif\\n#ifdef MAGNITUDE\\nfloat GreyValue=length(color.rgb);\\n#endif\\nmaximum=max(maximum,GreyValue);\\naverage+=(0.25*log(1e-5+GreyValue));\\n}\\naverage=exp(average);\\ngl_FragColor=vec4(average,maximum,0.0,1.0);\\n}\\n#endif\\n#if defined(LUMINANCE_DOWN_SAMPLE)\\nuniform vec2 dsOffsets[9];\\nuniform float halfDestPixelSize;\\n#ifdef FINAL_DOWN_SAMPLER\\n#include\\n#endif\\nvoid main()\\n{\\nvec4 color=vec4(0.0);\\nfloat average=0.0;\\nfor (int i=0; i<9; i++)\\n{\\ncolor=texture2D(textureSampler,vUV+vec2(halfDestPixelSize,halfDestPixelSize)+dsOffsets[i]);\\naverage+=color.r;\\n}\\naverage/=9.0;\\n#ifdef FINAL_DOWN_SAMPLER\\ngl_FragColor=pack(average);\\n#else\\ngl_FragColor=vec4(average,average,0.0,1.0);\\n#endif\\n}\\n#endif\\n#if defined(HDR)\\nuniform sampler2D textureAdderSampler;\\nuniform float averageLuminance;\\nvoid main()\\n{\\nvec4 color=texture2D(textureAdderSampler,vUV);\\n#ifndef AUTO_EXPOSURE\\nvec4 adjustedColor=color/averageLuminance;\\ncolor=adjustedColor;\\ncolor.a=1.0;\\n#endif\\ngl_FragColor=color;\\n}\\n#endif\\n#if defined(LENS_FLARE)\\n#define GHOSTS 3\\nuniform sampler2D lensColorSampler;\\nuniform float strength;\\nuniform float ghostDispersal;\\nuniform float haloWidth;\\nuniform vec2 resolution;\\nuniform float distortionStrength;\\nfloat hash(vec2 p)\\n{\\nfloat h=dot(p,vec2(127.1,311.7));\\nreturn -1.0+2.0*fract(sin(h)*43758.5453123);\\n}\\nfloat noise(in vec2 p)\\n{\\nvec2 i=floor(p);\\nvec2 f=fract(p);\\nvec2 u=f*f*(3.0-2.0*f);\\nreturn mix(mix(hash(i+vec2(0.0,0.0)),\\nhash(i+vec2(1.0,0.0)),u.x),\\nmix(hash(i+vec2(0.0,1.0)),\\nhash(i+vec2(1.0,1.0)),u.x),u.y);\\n}\\nfloat fbm(vec2 p)\\n{\\nfloat f=0.0;\\nf+=0.5000*noise(p); p*=2.02;\\nf+=0.2500*noise(p); p*=2.03;\\nf+=0.1250*noise(p); p*=2.01;\\nf+=0.0625*noise(p); p*=2.04;\\nf/=0.9375;\\nreturn f;\\n}\\nvec3 pattern(vec2 uv)\\n{\\nvec2 p=-1.0+2.0*uv;\\nfloat p2=dot(p,p);\\nfloat f=fbm(vec2(15.0*p2))/2.0;\\nfloat r=0.2+0.6*sin(12.5*length(uv-vec2(0.5)));\\nfloat g=0.2+0.6*sin(20.5*length(uv-vec2(0.5)));\\nfloat b=0.2+0.6*sin(17.2*length(uv-vec2(0.5)));\\nreturn (1.0-f)*vec3(r,g,b);\\n}\\nfloat luminance(vec3 color)\\n{\\nreturn dot(color.rgb,vec3(0.2126,0.7152,0.0722));\\n}\\nvec4 textureDistorted(sampler2D tex,vec2 texcoord,vec2 direction,vec3 distortion)\\n{\\nreturn vec4(\\ntexture2D(tex,texcoord+direction*distortion.r).r,\\ntexture2D(tex,texcoord+direction*distortion.g).g,\\ntexture2D(tex,texcoord+direction*distortion.b).b,\\n1.0\\n);\\n}\\nvoid main(void)\\n{\\nvec2 uv=-vUV+vec2(1.0);\\nvec2 ghostDir=(vec2(0.5)-uv)*ghostDispersal;\\nvec2 texelSize=1.0/resolution;\\nvec3 distortion=vec3(-texelSize.x*distortionStrength,0.0,texelSize.x*distortionStrength);\\nvec4 result=vec4(0.0);\\nfloat ghostIndice=1.0;\\nfor (int i=0; i=nSamples)\\nbreak;\\nvec2 offset1=vUV+velocity*(float(i)/float(nSamples-1)-0.5);\\nresult+=texture2D(textureSampler,offset1);\\n}\\ngl_FragColor=result/float(nSamples);\\n}\\n#endif\\n\";ai.a.ShadersStore.standardPixelShader=Kf;var Qf=function(e){function t(t,i,n,r,o){void 0===r&&(r=null);var a=e.call(this,i.getEngine(),t)||this;return a.downSampleX4PostProcess=null,a.brightPassPostProcess=null,a.blurHPostProcesses=[],a.blurVPostProcesses=[],a.textureAdderPostProcess=null,a.volumetricLightPostProcess=null,a.volumetricLightSmoothXPostProcess=null,a.volumetricLightSmoothYPostProcess=null,a.volumetricLightMergePostProces=null,a.volumetricLightFinalPostProcess=null,a.luminancePostProcess=null,a.luminanceDownSamplePostProcesses=[],a.hdrPostProcess=null,a.textureAdderFinalPostProcess=null,a.lensFlareFinalPostProcess=null,a.hdrFinalPostProcess=null,a.lensFlarePostProcess=null,a.lensFlareComposePostProcess=null,a.motionBlurPostProcess=null,a.depthOfFieldPostProcess=null,a.fxaaPostProcess=null,a.screenSpaceReflectionPostProcess=null,a.brightThreshold=1,a.blurWidth=512,a.horizontalBlur=!1,a.lensTexture=null,a.volumetricLightCoefficient=.2,a.volumetricLightPower=4,a.volumetricLightBlurScale=64,a.sourceLight=null,a.hdrMinimumLuminance=1,a.hdrDecreaseRate=.5,a.hdrIncreaseRate=.5,a.lensColorTexture=null,a.lensFlareStrength=20,a.lensFlareGhostDispersal=1.4,a.lensFlareHaloWidth=.7,a.lensFlareDistortionStrength=16,a.lensFlareBlurWidth=512,a.lensStarTexture=null,a.lensFlareDirtTexture=null,a.depthOfFieldDistance=10,a.depthOfFieldBlurWidth=64,a.animations=[],a._currentDepthOfFieldSource=null,a._fixedExposure=1,a._currentExposure=1,a._hdrAutoExposure=!1,a._hdrCurrentLuminance=1,a._motionStrength=1,a._isObjectBasedMotionBlur=!1,a._camerasToBeAttached=[],a._bloomEnabled=!1,a._depthOfFieldEnabled=!1,a._vlsEnabled=!1,a._lensFlareEnabled=!1,a._hdrEnabled=!1,a._motionBlurEnabled=!1,a._fxaaEnabled=!1,a._screenSpaceReflectionsEnabled=!1,a._motionBlurSamples=64,a._volumetricLightStepsCount=50,a._samples=1,a._cameras=o||i.cameras,a._cameras=a._cameras.slice(),a._camerasToBeAttached=a._cameras.slice(),a._scene=i,a._basePostProcess=r,a._ratio=n,a._floatTextureType=i.getEngine().getCaps().textureFloatRender?g.a.TEXTURETYPE_FLOAT:g.a.TEXTURETYPE_HALF_FLOAT,i.postProcessRenderPipelineManager.addPipeline(a),a._buildPipeline(),a}return Object(h.d)(t,e),Object.defineProperty(t.prototype,\"exposure\",{get:function(){return this._fixedExposure},set:function(e){this._fixedExposure=e,this._currentExposure=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"hdrAutoExposure\",{get:function(){return this._hdrAutoExposure},set:function(e){if(this._hdrAutoExposure=e,this.hdrPostProcess){var t=[\"#define HDR\"];e&&t.push(\"#define AUTO_EXPOSURE\"),this.hdrPostProcess.updateEffect(t.join(\"\\n\"))}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"motionStrength\",{get:function(){return this._motionStrength},set:function(e){this._motionStrength=e,this._isObjectBasedMotionBlur&&this.motionBlurPostProcess&&(this.motionBlurPostProcess.motionStrength=e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"objectBasedMotionBlur\",{get:function(){return this._isObjectBasedMotionBlur},set:function(e){var t=this._isObjectBasedMotionBlur!==e;this._isObjectBasedMotionBlur=e,t&&this._buildPipeline()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"BloomEnabled\",{get:function(){return this._bloomEnabled},set:function(e){this._bloomEnabled!==e&&(this._bloomEnabled=e,this._buildPipeline())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"DepthOfFieldEnabled\",{get:function(){return this._depthOfFieldEnabled},set:function(e){this._depthOfFieldEnabled!==e&&(this._depthOfFieldEnabled=e,this._buildPipeline())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"LensFlareEnabled\",{get:function(){return this._lensFlareEnabled},set:function(e){this._lensFlareEnabled!==e&&(this._lensFlareEnabled=e,this._buildPipeline())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"HDREnabled\",{get:function(){return this._hdrEnabled},set:function(e){this._hdrEnabled!==e&&(this._hdrEnabled=e,this._buildPipeline())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"VLSEnabled\",{get:function(){return this._vlsEnabled},set:function(e){if(this._vlsEnabled!==e){if(e)if(!this._scene.enableGeometryBufferRenderer())return void m.a.Warn(\"Geometry renderer is not supported, cannot create volumetric lights in Standard Rendering Pipeline\");this._vlsEnabled=e,this._buildPipeline()}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"MotionBlurEnabled\",{get:function(){return this._motionBlurEnabled},set:function(e){this._motionBlurEnabled!==e&&(this._motionBlurEnabled=e,this._buildPipeline())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"fxaaEnabled\",{get:function(){return this._fxaaEnabled},set:function(e){this._fxaaEnabled!==e&&(this._fxaaEnabled=e,this._buildPipeline())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"screenSpaceReflectionsEnabled\",{get:function(){return this._screenSpaceReflectionsEnabled},set:function(e){this._screenSpaceReflectionsEnabled!==e&&(this._screenSpaceReflectionsEnabled=e,this._buildPipeline())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"volumetricLightStepsCount\",{get:function(){return this._volumetricLightStepsCount},set:function(e){this.volumetricLightPostProcess&&this.volumetricLightPostProcess.updateEffect(\"#define VLS\\n#define NB_STEPS \"+e.toFixed(1)),this._volumetricLightStepsCount=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"motionBlurSamples\",{get:function(){return this._motionBlurSamples},set:function(e){this.motionBlurPostProcess&&(this._isObjectBasedMotionBlur?this.motionBlurPostProcess.motionBlurSamples=e:this.motionBlurPostProcess.updateEffect(\"#define MOTION_BLUR\\n#define MAX_MOTION_SAMPLES \"+e.toFixed(1))),this._motionBlurSamples=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"samples\",{get:function(){return this._samples},set:function(e){this._samples!==e&&(this._samples=e,this._buildPipeline())},enumerable:!1,configurable:!0}),t.prototype._buildPipeline=function(){var e=this,t=this._ratio,i=this._scene;this._disposePostProcesses(),null!==this._cameras&&(this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name,this._cameras),this._cameras=this._camerasToBeAttached.slice()),this._reset(),this._screenSpaceReflectionsEnabled&&(this.screenSpaceReflectionPostProcess=new Yf(\"HDRPass\",i,t,null,Ke.a.BILINEAR_SAMPLINGMODE,i.getEngine(),!1,this._floatTextureType),this.screenSpaceReflectionPostProcess.onApplyObservable.add((function(){e._currentDepthOfFieldSource=e.screenSpaceReflectionPostProcess})),this.addEffect(new jd(i.getEngine(),\"HDRScreenSpaceReflections\",(function(){return e.screenSpaceReflectionPostProcess}),!0))),this._basePostProcess?this.originalPostProcess=this._basePostProcess:this.originalPostProcess=new li(\"HDRPass\",\"standard\",[],[],t,null,Ke.a.BILINEAR_SAMPLINGMODE,i.getEngine(),!1,\"#define PASS_POST_PROCESS\",this._floatTextureType),this.originalPostProcess.autoClear=!this.screenSpaceReflectionPostProcess,this.originalPostProcess.onApplyObservable.add((function(){e._currentDepthOfFieldSource=e.originalPostProcess})),this.addEffect(new jd(i.getEngine(),\"HDRPassPostProcess\",(function(){return e.originalPostProcess}),!0)),this._bloomEnabled&&(this._createDownSampleX4PostProcess(i,t/4),this._createBrightPassPostProcess(i,t/4),this._createBlurPostProcesses(i,t/4,1),this._createTextureAdderPostProcess(i,t),this.textureAdderFinalPostProcess=new li(\"HDRDepthOfFieldSource\",\"standard\",[],[],t,null,Ke.a.BILINEAR_SAMPLINGMODE,i.getEngine(),!1,\"#define PASS_POST_PROCESS\",g.a.TEXTURETYPE_UNSIGNED_INT),this.addEffect(new jd(i.getEngine(),\"HDRBaseDepthOfFieldSource\",(function(){return e.textureAdderFinalPostProcess}),!0))),this._vlsEnabled&&(this._createVolumetricLightPostProcess(i,t),this.volumetricLightFinalPostProcess=new li(\"HDRVLSFinal\",\"standard\",[],[],t,null,Ke.a.BILINEAR_SAMPLINGMODE,i.getEngine(),!1,\"#define PASS_POST_PROCESS\",g.a.TEXTURETYPE_UNSIGNED_INT),this.addEffect(new jd(i.getEngine(),\"HDRVLSFinal\",(function(){return e.volumetricLightFinalPostProcess}),!0))),this._lensFlareEnabled&&(this._createLensFlarePostProcess(i,t),this.lensFlareFinalPostProcess=new li(\"HDRPostLensFlareDepthOfFieldSource\",\"standard\",[],[],t,null,Ke.a.BILINEAR_SAMPLINGMODE,i.getEngine(),!1,\"#define PASS_POST_PROCESS\",g.a.TEXTURETYPE_UNSIGNED_INT),this.addEffect(new jd(i.getEngine(),\"HDRPostLensFlareDepthOfFieldSource\",(function(){return e.lensFlareFinalPostProcess}),!0))),this._hdrEnabled&&(this._createLuminancePostProcesses(i,this._floatTextureType),this._createHdrPostProcess(i,t),this.hdrFinalPostProcess=new li(\"HDRPostHDReDepthOfFieldSource\",\"standard\",[],[],t,null,Ke.a.BILINEAR_SAMPLINGMODE,i.getEngine(),!1,\"#define PASS_POST_PROCESS\",g.a.TEXTURETYPE_UNSIGNED_INT),this.addEffect(new jd(i.getEngine(),\"HDRPostHDReDepthOfFieldSource\",(function(){return e.hdrFinalPostProcess}),!0))),this._depthOfFieldEnabled&&(this._createBlurPostProcesses(i,t/2,3,\"depthOfFieldBlurWidth\"),this._createDepthOfFieldPostProcess(i,t)),this._motionBlurEnabled&&this._createMotionBlurPostProcess(i,t),this._fxaaEnabled&&(this.fxaaPostProcess=new mf(\"fxaa\",1,null,Ke.a.BILINEAR_SAMPLINGMODE,i.getEngine(),!1,g.a.TEXTURETYPE_UNSIGNED_INT),this.addEffect(new jd(i.getEngine(),\"HDRFxaa\",(function(){return e.fxaaPostProcess}),!0))),null!==this._cameras&&this._scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(this._name,this._cameras),!this._enableMSAAOnFirstPostProcess(this._samples)&&this._samples>1&&m.a.Warn(\"MSAA failed to enable, MSAA is only supported in browsers that support webGL >= 2.0\")},t.prototype._createDownSampleX4PostProcess=function(e,t){var i=this,n=new Array(32);this.downSampleX4PostProcess=new li(\"HDRDownSampleX4\",\"standard\",[\"dsOffsets\"],[],t,null,Ke.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,\"#define DOWN_SAMPLE_X4\",this._floatTextureType),this.downSampleX4PostProcess.onApply=function(e){for(var t=0,r=i.downSampleX4PostProcess.width,o=i.downSampleX4PostProcess.height,a=-2;a<2;a++)for(var s=-2;s<2;s++)n[t]=(a+.5)*(1/r),n[t+1]=(s+.5)*(1/o),t+=2;e.setArray2(\"dsOffsets\",n)},this.addEffect(new jd(e.getEngine(),\"HDRDownSampleX4\",(function(){return i.downSampleX4PostProcess}),!0))},t.prototype._createBrightPassPostProcess=function(e,t){var i=this,n=new Array(8);this.brightPassPostProcess=new li(\"HDRBrightPass\",\"standard\",[\"dsOffsets\",\"brightThreshold\"],[],t,null,Ke.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,\"#define BRIGHT_PASS\",this._floatTextureType),this.brightPassPostProcess.onApply=function(e){var t=1/i.brightPassPostProcess.width,r=1/i.brightPassPostProcess.height;n[0]=-.5*t,n[1]=.5*r,n[2]=.5*t,n[3]=.5*r,n[4]=-.5*t,n[5]=-.5*r,n[6]=.5*t,n[7]=-.5*r,e.setArray2(\"dsOffsets\",n),e.setFloat(\"brightThreshold\",i.brightThreshold)},this.addEffect(new jd(e.getEngine(),\"HDRBrightPass\",(function(){return i.brightPassPostProcess}),!0))},t.prototype._createBlurPostProcesses=function(e,t,i,n){var r=this;void 0===n&&(n=\"blurWidth\");var o=e.getEngine(),s=new eo(\"HDRBlurH_\"+i,new a.d(1,0),this[n],t,null,Ke.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,this._floatTextureType),c=new eo(\"HDRBlurV_\"+i,new a.d(0,1),this[n],t,null,Ke.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,this._floatTextureType);s.onActivateObservable.add((function(){var e=s.width/o.getRenderWidth();s.kernel=r[n]*e})),c.onActivateObservable.add((function(){var e=c.height/o.getRenderHeight();c.kernel=r.horizontalBlur?64*e:r[n]*e})),this.addEffect(new jd(e.getEngine(),\"HDRBlurH\"+i,(function(){return s}),!0)),this.addEffect(new jd(e.getEngine(),\"HDRBlurV\"+i,(function(){return c}),!0)),this.blurHPostProcesses.push(s),this.blurVPostProcesses.push(c)},t.prototype._createTextureAdderPostProcess=function(e,t){var i=this;this.textureAdderPostProcess=new li(\"HDRTextureAdder\",\"standard\",[\"exposure\"],[\"otherSampler\",\"lensSampler\"],t,null,Ke.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,\"#define TEXTURE_ADDER\",this._floatTextureType),this.textureAdderPostProcess.onApply=function(e){e.setTextureFromPostProcess(\"otherSampler\",i._vlsEnabled?i._currentDepthOfFieldSource:i.originalPostProcess),e.setTexture(\"lensSampler\",i.lensTexture),e.setFloat(\"exposure\",i._currentExposure),i._currentDepthOfFieldSource=i.textureAdderFinalPostProcess},this.addEffect(new jd(e.getEngine(),\"HDRTextureAdder\",(function(){return i.textureAdderPostProcess}),!0))},t.prototype._createVolumetricLightPostProcess=function(e,t){var i=this,n=e.enableGeometryBufferRenderer();n.enablePosition=!0;var r=n.getGBuffer();this.volumetricLightPostProcess=new li(\"HDRVLS\",\"standard\",[\"shadowViewProjection\",\"cameraPosition\",\"sunDirection\",\"sunColor\",\"scatteringCoefficient\",\"scatteringPower\",\"depthValues\"],[\"shadowMapSampler\",\"positionSampler\"],t/8,null,Ke.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,\"#define VLS\\n#define NB_STEPS \"+this._volumetricLightStepsCount.toFixed(1));var o=a.d.Zero();this.volumetricLightPostProcess.onApply=function(e){if(i.sourceLight&&i.sourceLight.getShadowGenerator()&&i._scene.activeCamera){var t=i.sourceLight.getShadowGenerator();e.setTexture(\"shadowMapSampler\",t.getShadowMap()),e.setTexture(\"positionSampler\",r.textures[2]),e.setColor3(\"sunColor\",i.sourceLight.diffuse),e.setVector3(\"sunDirection\",i.sourceLight.getShadowDirection()),e.setVector3(\"cameraPosition\",i._scene.activeCamera.globalPosition),e.setMatrix(\"shadowViewProjection\",t.getTransformMatrix()),e.setFloat(\"scatteringCoefficient\",i.volumetricLightCoefficient),e.setFloat(\"scatteringPower\",i.volumetricLightPower),o.x=i.sourceLight.getDepthMinZ(i._scene.activeCamera),o.y=i.sourceLight.getDepthMaxZ(i._scene.activeCamera),e.setVector2(\"depthValues\",o)}},this.addEffect(new jd(e.getEngine(),\"HDRVLS\",(function(){return i.volumetricLightPostProcess}),!0)),this._createBlurPostProcesses(e,t/4,0,\"volumetricLightBlurScale\"),this.volumetricLightMergePostProces=new li(\"HDRVLSMerge\",\"standard\",[],[\"originalSampler\"],t,null,Ke.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,\"#define VLSMERGE\"),this.volumetricLightMergePostProces.onApply=function(e){e.setTextureFromPostProcess(\"originalSampler\",i._bloomEnabled?i.textureAdderFinalPostProcess:i.originalPostProcess),i._currentDepthOfFieldSource=i.volumetricLightFinalPostProcess},this.addEffect(new jd(e.getEngine(),\"HDRVLSMerge\",(function(){return i.volumetricLightMergePostProces}),!0))},t.prototype._createLuminancePostProcesses=function(e,i){var n=this,r=Math.pow(3,t.LuminanceSteps);this.luminancePostProcess=new li(\"HDRLuminance\",\"standard\",[\"lumOffsets\"],[],{width:r,height:r},null,Ke.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,\"#define LUMINANCE\",i);var o=[];this.luminancePostProcess.onApply=function(e){var t=1/n.luminancePostProcess.width,i=1/n.luminancePostProcess.height;o[0]=-.5*t,o[1]=.5*i,o[2]=.5*t,o[3]=.5*i,o[4]=-.5*t,o[5]=-.5*i,o[6]=.5*t,o[7]=-.5*i,e.setArray2(\"lumOffsets\",o)},this.addEffect(new jd(e.getEngine(),\"HDRLuminance\",(function(){return n.luminancePostProcess}),!0));for(var s=t.LuminanceSteps-1;s>=0;s--){r=Math.pow(3,s);var c=\"#define LUMINANCE_DOWN_SAMPLE\\n\";0===s&&(c+=\"#define FINAL_DOWN_SAMPLER\");var l=new li(\"HDRLuminanceDownSample\"+s,\"standard\",[\"dsOffsets\",\"halfDestPixelSize\"],[],{width:r,height:r},null,Ke.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,c,i);this.luminanceDownSamplePostProcesses.push(l)}var u=this.luminancePostProcess;this.luminanceDownSamplePostProcesses.forEach((function(t,i){var r=new Array(18);t.onApply=function(e){if(u){for(var o=0,a=-1;a<2;a++)for(var s=-1;s<2;s++)r[o]=a/u.width,r[o+1]=s/u.height,o+=2;e.setArray2(\"dsOffsets\",r),e.setFloat(\"halfDestPixelSize\",.5/u.width),u=i===n.luminanceDownSamplePostProcesses.length-1?n.luminancePostProcess:t}},i===n.luminanceDownSamplePostProcesses.length-1&&(t.onAfterRender=function(){var t=e.getEngine().readPixels(0,0,1,1),i=new a.f(1/16581375,1/65025,1/255,1);n._hdrCurrentLuminance=(t[0]*i.x+t[1]*i.y+t[2]*i.z+t[3]*i.w)/100}),n.addEffect(new jd(e.getEngine(),\"HDRLuminanceDownSample\"+i,(function(){return t}),!0))}))},t.prototype._createHdrPostProcess=function(e,t){var i=this,n=[\"#define HDR\"];this._hdrAutoExposure&&n.push(\"#define AUTO_EXPOSURE\"),this.hdrPostProcess=new li(\"HDR\",\"standard\",[\"averageLuminance\"],[\"textureAdderSampler\"],t,null,Ke.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,n.join(\"\\n\"),g.a.TEXTURETYPE_UNSIGNED_INT);var r=1,o=0,a=0;this.hdrPostProcess.onApply=function(t){if(t.setTextureFromPostProcess(\"textureAdderSampler\",i._currentDepthOfFieldSource),o+=e.getEngine().getDeltaTime(),r<0)r=i._hdrCurrentLuminance;else{var n=(a-o)/1e3;i._hdrCurrentLuminancer-i.hdrIncreaseRate*n?r-=i.hdrIncreaseRate*n:r=i._hdrCurrentLuminance}i.hdrAutoExposure?i._currentExposure=i._fixedExposure/r:(r=L.a.Clamp(r,i.hdrMinimumLuminance,1e20),t.setFloat(\"averageLuminance\",r)),a=o,i._currentDepthOfFieldSource=i.hdrFinalPostProcess},this.addEffect(new jd(e.getEngine(),\"HDR\",(function(){return i.hdrPostProcess}),!0))},t.prototype._createLensFlarePostProcess=function(e,t){var i=this;this.lensFlarePostProcess=new li(\"HDRLensFlare\",\"standard\",[\"strength\",\"ghostDispersal\",\"haloWidth\",\"resolution\",\"distortionStrength\"],[\"lensColorSampler\"],t/2,null,Ke.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,\"#define LENS_FLARE\",g.a.TEXTURETYPE_UNSIGNED_INT),this.addEffect(new jd(e.getEngine(),\"HDRLensFlare\",(function(){return i.lensFlarePostProcess}),!0)),this._createBlurPostProcesses(e,t/4,2,\"lensFlareBlurWidth\"),this.lensFlareComposePostProcess=new li(\"HDRLensFlareCompose\",\"standard\",[\"lensStarMatrix\"],[\"otherSampler\",\"lensDirtSampler\",\"lensStarSampler\"],t,null,Ke.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,\"#define LENS_FLARE_COMPOSE\",g.a.TEXTURETYPE_UNSIGNED_INT),this.addEffect(new jd(e.getEngine(),\"HDRLensFlareCompose\",(function(){return i.lensFlareComposePostProcess}),!0));var n=new a.d(0,0);this.lensFlarePostProcess.onApply=function(e){e.setTextureFromPostProcess(\"textureSampler\",i._bloomEnabled?i.blurHPostProcesses[0]:i.originalPostProcess),e.setTexture(\"lensColorSampler\",i.lensColorTexture),e.setFloat(\"strength\",i.lensFlareStrength),e.setFloat(\"ghostDispersal\",i.lensFlareGhostDispersal),e.setFloat(\"haloWidth\",i.lensFlareHaloWidth),n.x=i.lensFlarePostProcess.width,n.y=i.lensFlarePostProcess.height,e.setVector2(\"resolution\",n),e.setFloat(\"distortionStrength\",i.lensFlareDistortionStrength)};var r=a.a.FromValues(2,0,-1,0,0,2,-1,0,0,0,1,0,0,0,0,1),o=a.a.FromValues(.5,0,.5,0,0,.5,.5,0,0,0,1,0,0,0,0,1);this.lensFlareComposePostProcess.onApply=function(e){if(i._scene.activeCamera){e.setTextureFromPostProcess(\"otherSampler\",i.lensFlarePostProcess),e.setTexture(\"lensDirtSampler\",i.lensFlareDirtTexture),e.setTexture(\"lensStarSampler\",i.lensStarTexture);var t=i._scene.activeCamera.getViewMatrix().getRow(0),n=i._scene.activeCamera.getViewMatrix().getRow(2),s=a.e.Dot(t.toVector3(),new a.e(1,0,0))+a.e.Dot(n.toVector3(),new a.e(0,0,1));s*=4;var c=a.a.FromValues(.5*Math.cos(s),-Math.sin(s),0,0,Math.sin(s),.5*Math.cos(s),0,0,0,0,1,0,0,0,0,1),l=o.multiply(c).multiply(r);e.setMatrix(\"lensStarMatrix\",l),i._currentDepthOfFieldSource=i.lensFlareFinalPostProcess}}},t.prototype._createDepthOfFieldPostProcess=function(e,t){var i=this;this.depthOfFieldPostProcess=new li(\"HDRDepthOfField\",\"standard\",[\"distance\"],[\"otherSampler\",\"depthSampler\"],t,null,Ke.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,\"#define DEPTH_OF_FIELD\",g.a.TEXTURETYPE_UNSIGNED_INT),this.depthOfFieldPostProcess.onApply=function(e){e.setTextureFromPostProcess(\"otherSampler\",i._currentDepthOfFieldSource),e.setTexture(\"depthSampler\",i._getDepthTexture()),e.setFloat(\"distance\",i.depthOfFieldDistance)},this.addEffect(new jd(e.getEngine(),\"HDRDepthOfField\",(function(){return i.depthOfFieldPostProcess}),!0))},t.prototype._createMotionBlurPostProcess=function(e,t){var i=this;if(this._isObjectBasedMotionBlur){var n=new Rf(\"HDRMotionBlur\",e,t,null,Ke.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,g.a.TEXTURETYPE_UNSIGNED_INT);n.motionStrength=this.motionStrength,n.motionBlurSamples=this.motionBlurSamples,this.motionBlurPostProcess=n}else{this.motionBlurPostProcess=new li(\"HDRMotionBlur\",\"standard\",[\"inverseViewProjection\",\"prevViewProjection\",\"screenSize\",\"motionScale\",\"motionStrength\"],[\"depthSampler\"],t,null,Ke.a.BILINEAR_SAMPLINGMODE,e.getEngine(),!1,\"#define MOTION_BLUR\\n#define MAX_MOTION_SAMPLES \"+this.motionBlurSamples.toFixed(1),g.a.TEXTURETYPE_UNSIGNED_INT);var r=0,o=a.a.Identity(),s=a.a.Identity(),c=a.a.Identity(),l=a.d.Zero();this.motionBlurPostProcess.onApply=function(t){(c=e.getProjectionMatrix().multiply(e.getViewMatrix())).invertToRef(s),t.setMatrix(\"inverseViewProjection\",s),t.setMatrix(\"prevViewProjection\",o),o=c,l.x=i.motionBlurPostProcess.width,l.y=i.motionBlurPostProcess.height,t.setVector2(\"screenSize\",l),r=e.getEngine().getFps()/60,t.setFloat(\"motionScale\",r),t.setFloat(\"motionStrength\",i.motionStrength),t.setTexture(\"depthSampler\",i._getDepthTexture())}}this.addEffect(new jd(e.getEngine(),\"HDRMotionBlur\",(function(){return i.motionBlurPostProcess}),!0))},t.prototype._getDepthTexture=function(){return this._scene.getEngine().getCaps().drawBuffersExtension?this._scene.enableGeometryBufferRenderer().getGBuffer().textures[0]:this._scene.enableDepthRenderer().getDepthMap()},t.prototype._disposePostProcesses=function(){for(var e=0;e0.5;\\nuseCamA=!useCamB;\\ntexCoord1=vec2(useCamB ? (vUV.x-0.5)*2.0 : vUV.x*2.0,vUV.y);\\ntexCoord2=vec2(texCoord1.x+stepSize.x,vUV.y);\\n#else\\n#ifdef IS_STEREOSCOPIC_INTERLACED\\nfloat rowNum=floor(vUV.y/stepSize.y);\\nuseCamA=mod(rowNum,2.0) == 1.0;\\nuseCamB=mod(rowNum,2.0) == 0.0;\\ntexCoord1=vec2(vUV.x,vUV.y);\\ntexCoord2=vec2(vUV.x,vUV.y);\\n#else\\nuseCamB=vUV.y>0.5;\\nuseCamA=!useCamB;\\ntexCoord1=vec2(vUV.x,useCamB ? (vUV.y-0.5)*2.0 : vUV.y*2.0);\\ntexCoord2=vec2(vUV.x,texCoord1.y+stepSize.y);\\n#endif\\n#endif\\n\\nif (useCamB){\\nfrag1=texture2D(textureSampler,texCoord1).rgb;\\nfrag2=texture2D(textureSampler,texCoord2).rgb;\\n}else if (useCamA){\\nfrag1=texture2D(camASampler ,texCoord1).rgb;\\nfrag2=texture2D(camASampler ,texCoord2).rgb;\\n}else {\\ndiscard;\\n}\\ngl_FragColor=vec4((frag1+frag2)/TWO,1.0);\\n}\\n\";ai.a.ShadersStore.stereoscopicInterlacePixelShader=qf;var Zf=function(e){function t(t,i,n,r,o,s,c){var l=e.call(this,t,\"stereoscopicInterlace\",[\"stepSize\"],[\"camASampler\"],1,i[1],o,s,c,r?\"#define IS_STEREOSCOPIC_INTERLACED 1\":n?\"#define IS_STEREOSCOPIC_HORIZ 1\":void 0)||this;return l._passedProcess=i[0]._rigPostProcess,l._stepSize=new a.d(1/l.width,1/l.height),l.onSizeChangedObservable.add((function(){l._stepSize=new a.d(1/l.width,1/l.height)})),l.onApplyObservable.add((function(e){e.setTextureFromPostProcess(\"camASampler\",l._passedProcess),e.setFloat2(\"stepSize\",l._stepSize.x,l._stepSize.y)})),l}return Object(h.d)(t,e),t.prototype.getClassName=function(){return\"StereoscopicInterlacePostProcessI\"},t}(li),Jf=function(e){function t(t,i,n,r,o,s){var c=e.call(this,t,\"stereoscopicInterlace\",[\"stepSize\"],[\"camASampler\"],1,i[1],r,o,s,n?\"#define IS_STEREOSCOPIC_HORIZ 1\":void 0)||this;return c._passedProcess=i[0]._rigPostProcess,c._stepSize=new a.d(1/c.width,1/c.height),c.onSizeChangedObservable.add((function(){c._stepSize=new a.d(1/c.width,1/c.height)})),c.onApplyObservable.add((function(e){e.setTextureFromPostProcess(\"camASampler\",c._passedProcess),e.setFloat2(\"stepSize\",c._stepSize.x,c._stepSize.y)})),c}return Object(h.d)(t,e),t.prototype.getClassName=function(){return\"StereoscopicInterlacePostProcess\"},t}(li),$f=\"\\nvarying vec2 vUV;\\nuniform sampler2D textureSampler;\\n\\nuniform float _ExposureAdjustment;\\n#if defined(HABLE_TONEMAPPING)\\nconst float A=0.15;\\nconst float B=0.50;\\nconst float C=0.10;\\nconst float D=0.20;\\nconst float E=0.02;\\nconst float F=0.30;\\nconst float W=11.2;\\n#endif\\nfloat Luminance(vec3 c)\\n{\\nreturn dot(c,vec3(0.22,0.707,0.071));\\n}\\nvoid main(void)\\n{\\nvec3 colour=texture2D(textureSampler,vUV).rgb;\\n#if defined(REINHARD_TONEMAPPING)\\nfloat lum=Luminance(colour.rgb);\\nfloat lumTm=lum*_ExposureAdjustment;\\nfloat scale=lumTm/(1.0+lumTm);\\ncolour*=scale/lum;\\n#elif defined(HABLE_TONEMAPPING)\\ncolour*=_ExposureAdjustment;\\nconst float ExposureBias=2.0;\\nvec3 x=ExposureBias*colour;\\nvec3 curr=((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F;\\nx=vec3(W,W,W);\\nvec3 whiteScale=1.0/(((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F);\\ncolour=curr*whiteScale;\\n#elif defined(OPTIMIZED_HEJIDAWSON_TONEMAPPING)\\ncolour*=_ExposureAdjustment;\\nvec3 X=max(vec3(0.0,0.0,0.0),colour-0.004);\\nvec3 retColor=(X*(6.2*X+0.5))/(X*(6.2*X+1.7)+0.06);\\ncolour=retColor*retColor;\\n#elif defined(PHOTOGRAPHIC_TONEMAPPING)\\ncolour=vec3(1.0,1.0,1.0)-exp2(-_ExposureAdjustment*colour);\\n#endif\\ngl_FragColor=vec4(colour.rgb,1.0);\\n}\";ai.a.ShadersStore.tonemapPixelShader=$f;var ep;!function(e){e[e.Hable=0]=\"Hable\",e[e.Reinhard=1]=\"Reinhard\",e[e.HejiDawson=2]=\"HejiDawson\",e[e.Photographic=3]=\"Photographic\"}(ep||(ep={}));var tp=function(e){function t(t,i,n,r,o,a,s){void 0===o&&(o=g.a.TEXTURE_BILINEAR_SAMPLINGMODE),void 0===s&&(s=g.a.TEXTURETYPE_UNSIGNED_INT);var c=e.call(this,t,\"tonemap\",[\"_ExposureAdjustment\"],null,1,r,o,a,!0,null,s)||this;c._operator=i,c.exposureAdjustment=n;var l=\"#define \";return c._operator===ep.Hable?l+=\"HABLE_TONEMAPPING\":c._operator===ep.Reinhard?l+=\"REINHARD_TONEMAPPING\":c._operator===ep.HejiDawson?l+=\"OPTIMIZED_HEJIDAWSON_TONEMAPPING\":c._operator===ep.Photographic&&(l+=\"PHOTOGRAPHIC_TONEMAPPING\"),c.updateEffect(l),c.onApply=function(e){e.setFloat(\"_ExposureAdjustment\",c.exposureAdjustment)},c}return Object(h.d)(t,e),t.prototype.getClassName=function(){return\"TonemapPostProcess\"},t}(li),ip=\"uniform sampler2D textureSampler;\\nuniform sampler2D lightScatteringSampler;\\nuniform float decay;\\nuniform float exposure;\\nuniform float weight;\\nuniform float density;\\nuniform vec2 meshPositionOnScreen;\\nvarying vec2 vUV;\\nvoid main(void) {\\nvec2 tc=vUV;\\nvec2 deltaTexCoord=(tc-meshPositionOnScreen.xy);\\ndeltaTexCoord*=1.0/float(NUM_SAMPLES)*density;\\nfloat illuminationDecay=1.0;\\nvec4 color=texture2D(lightScatteringSampler,tc)*0.4;\\nfor(int i=0; i\\n#include\\n#include[0..maxSimultaneousMorphTargets]\\n\\n#include\\nuniform mat4 viewProjection;\\nuniform vec2 depthValues;\\n#if defined(ALPHATEST) || defined(NEED_UV)\\nvarying vec2 vUV;\\nuniform mat4 diffuseMatrix;\\n#ifdef UV1\\nattribute vec2 uv;\\n#endif\\n#ifdef UV2\\nattribute vec2 uv2;\\n#endif\\n#endif\\nvoid main(void)\\n{\\nvec3 positionUpdated=position;\\n#if (defined(ALPHATEST) || defined(NEED_UV)) && defined(UV1)\\nvec2 uvUpdated=uv;\\n#endif\\n#include[0..maxSimultaneousMorphTargets]\\n#include\\n#include\\ngl_Position=viewProjection*finalWorld*vec4(positionUpdated,1.0);\\n#if defined(ALPHATEST) || defined(BASIC_RENDER)\\n#ifdef UV1\\nvUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\\n#endif\\n#ifdef UV2\\nvUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\\n#endif\\n#endif\\n}\\n\";ai.a.ShadersStore.volumetricLightScatteringPassVertexShader=np;var rp=\"#if defined(ALPHATEST) || defined(NEED_UV)\\nvarying vec2 vUV;\\n#endif\\n#if defined(ALPHATEST)\\nuniform sampler2D diffuseSampler;\\n#endif\\nvoid main(void)\\n{\\n#if defined(ALPHATEST)\\nvec4 diffuseColor=texture2D(diffuseSampler,vUV);\\nif (diffuseColor.a<0.4)\\ndiscard;\\n#endif\\ngl_FragColor=vec4(0.0,0.0,0.0,1.0);\\n}\\n\";ai.a.ShadersStore.volumetricLightScatteringPassPixelShader=rp;var op=function(e){function t(i,n,r,o,s,c,l,u,h){void 0===s&&(s=100),void 0===c&&(c=Ke.a.BILINEAR_SAMPLINGMODE);var d=e.call(this,i,\"volumetricLightScattering\",[\"decay\",\"exposure\",\"weight\",\"meshPositionOnScreen\",\"density\"],[\"lightScatteringSampler\"],n.postProcessRatio||n,r,c,l,u,\"#define NUM_SAMPLES \"+s)||this;return d._screenCoordinates=a.d.Zero(),d.customMeshPosition=a.e.Zero(),d.useCustomMeshPosition=!1,d.invert=!0,d.excludedMeshes=new Array,d.exposure=.3,d.decay=.96815,d.weight=.58767,d.density=.926,l=(h=null===r?h:r.getScene()).getEngine(),d._viewPort=new yi.a(0,0,1,1).toGlobal(l.getRenderWidth(),l.getRenderHeight()),d.mesh=null!==o?o:t.CreateDefaultMesh(\"VolumetricLightScatteringMesh\",h),d._createPass(h,n.passRatio||n),d.onActivate=function(e){d.isSupported||d.dispose(e),d.onActivate=null},d.onApplyObservable.add((function(e){d._updateMeshScreenCoordinates(h),e.setTexture(\"lightScatteringSampler\",d._volumetricLightScatteringRTT),e.setFloat(\"exposure\",d.exposure),e.setFloat(\"decay\",d.decay),e.setFloat(\"weight\",d.weight),e.setFloat(\"density\",d.density),e.setVector2(\"meshPositionOnScreen\",d._screenCoordinates)})),d}return Object(h.d)(t,e),Object.defineProperty(t.prototype,\"useDiffuseColor\",{get:function(){return m.a.Warn(\"VolumetricLightScatteringPostProcess.useDiffuseColor is no longer used, use the mesh material directly instead\"),!1},set:function(e){m.a.Warn(\"VolumetricLightScatteringPostProcess.useDiffuseColor is no longer used, use the mesh material directly instead\")},enumerable:!1,configurable:!0}),t.prototype.getClassName=function(){return\"VolumetricLightScatteringPostProcess\"},t.prototype._isReady=function(e,t){var i=e.getMesh();if(i===this.mesh&&i.material)return i.material.isReady(i);var n=[],r=[Qi.b.PositionKind],o=e.getMaterial();o&&(o.needAlphaTesting()&&n.push(\"#define ALPHATEST\"),i.isVerticesDataPresent(Qi.b.UVKind)&&(r.push(Qi.b.UVKind),n.push(\"#define UV1\")),i.isVerticesDataPresent(Qi.b.UV2Kind)&&(r.push(Qi.b.UV2Kind),n.push(\"#define UV2\"))),i.useBones&&i.computeBonesUsingShaders?(r.push(Qi.b.MatricesIndicesKind),r.push(Qi.b.MatricesWeightsKind),n.push(\"#define NUM_BONE_INFLUENCERS \"+i.numBoneInfluencers),n.push(\"#define BonesPerMesh \"+(i.skeleton?i.skeleton.bones.length+1:0))):n.push(\"#define NUM_BONE_INFLUENCERS 0\"),t&&(n.push(\"#define INSTANCES\"),ro.a.PushAttributesForInstances(r),e.getRenderingMesh().hasThinInstances&&n.push(\"#define THIN_INSTANCES\"));var a=n.join(\"\\n\");return this._cachedDefines!==a&&(this._cachedDefines=a,this._volumetricLightScatteringPass=i.getScene().getEngine().createEffect(\"volumetricLightScatteringPass\",r,[\"world\",\"mBones\",\"viewProjection\",\"diffuseMatrix\"],[\"diffuseSampler\"],a,void 0,void 0,void 0,{maxSimultaneousMorphTargets:i.numBoneInfluencers})),this._volumetricLightScatteringPass.isReady()},t.prototype.setCustomMeshPosition=function(e){this.customMeshPosition=e},t.prototype.getCustomMeshPosition=function(){return this.customMeshPosition},t.prototype.dispose=function(t){var i=t.getScene().customRenderTargets.indexOf(this._volumetricLightScatteringRTT);-1!==i&&t.getScene().customRenderTargets.splice(i,1),this._volumetricLightScatteringRTT.dispose(),e.prototype.dispose.call(this,t)},t.prototype.getPass=function(){return this._volumetricLightScatteringRTT},t.prototype._meshExcluded=function(e){return this.excludedMeshes.length>0&&-1!==this.excludedMeshes.indexOf(e)},t.prototype._createPass=function(e,t){var i=this,n=e.getEngine();this._volumetricLightScatteringRTT=new Ni(\"volumetricLightScatteringMap\",{width:n.getRenderWidth()*t,height:n.getRenderHeight()*t},e,!1,!0,g.a.TEXTURETYPE_UNSIGNED_INT),this._volumetricLightScatteringRTT.wrapU=Ke.a.CLAMP_ADDRESSMODE,this._volumetricLightScatteringRTT.wrapV=Ke.a.CLAMP_ADDRESSMODE,this._volumetricLightScatteringRTT.renderList=null,this._volumetricLightScatteringRTT.renderParticles=!1,this._volumetricLightScatteringRTT.ignoreCameraViewport=!0;var r=this.getCamera();r?r.customRenderTargets.push(this._volumetricLightScatteringRTT):e.customRenderTargets.push(this._volumetricLightScatteringRTT);var o,a=function(e){var t=e.getRenderingMesh(),n=e.getEffectiveMesh();if(!i._meshExcluded(t)){n._internalAbstractMeshDataInfo._isActiveIntermediate=!1;var r=e.getMaterial();if(r){var o=t.getScene(),a=o.getEngine();a.setState(r.backFaceCulling);var s=t._getInstancesRenderList(e._id,!!e.getReplacementMesh());if(!s.mustReturn){var c=a.getCaps().instancedArrays&&(null!==s.visibleInstances[e._id]||t.hasThinInstances);if(i._isReady(e,c)){var l=i._volumetricLightScatteringPass;if(t===i.mesh&&(l=e.effect?e.effect:r.getEffect()),a.enableEffect(l),t._bind(e,l,r.fillMode),t===i.mesh)r.bind(n.getWorldMatrix(),t);else{if(i._volumetricLightScatteringPass.setMatrix(\"viewProjection\",o.getTransformMatrix()),r&&r.needAlphaTesting()){var u=r.getAlphaTestTexture();i._volumetricLightScatteringPass.setTexture(\"diffuseSampler\",u),u&&i._volumetricLightScatteringPass.setMatrix(\"diffuseMatrix\",u.getTextureMatrix())}t.useBones&&t.computeBonesUsingShaders&&t.skeleton&&i._volumetricLightScatteringPass.setMatrices(\"mBones\",t.skeleton.getTransformMatrices(t))}t._processRendering(n,e,i._volumetricLightScatteringPass,xo.a.TriangleFillMode,s,c,(function(e,t){return l.setMatrix(\"world\",t)}))}}}}},c=new s.b(0,0,0,1);this._volumetricLightScatteringRTT.onBeforeRenderObservable.add((function(){o=e.clearColor,e.clearColor=c})),this._volumetricLightScatteringRTT.onAfterRenderObservable.add((function(){e.clearColor=o})),this._volumetricLightScatteringRTT.customRenderFunction=function(t,i,n,r){var o,s=e.getEngine();if(r.length){for(s.setColorWrite(!1),o=0;ot._alphaIndex?1:e._alphaIndext._distanceToCamera?-1:0})),s.setAlphaMode(g.a.ALPHA_COMBINE),o=0;o1||e.getCaps().drawBuffersExtension)},enumerable:!1,configurable:!0}),t._Parse=function(e,i,n,r){return w.a.Parse((function(){return new t(e.name,n,e.options,i,e.renderTargetSamplingMode,n.getEngine(),e.textureType,e.reusable)}),e,n,r)},Object(h.c)([Object(w.c)()],t.prototype,\"ridge\",void 0),Object(h.c)([Object(w.c)()],t.prototype,\"valley\",void 0),t}(li);c.a.RegisteredTypes[\"BABYLON.ScreenSpaceCurvaturePostProcess\"]=sp;i(166),i(167);Object.defineProperty(Q.a.prototype,\"forceShowBoundingBoxes\",{get:function(){return this._forceShowBoundingBoxes||!1},set:function(e){this._forceShowBoundingBoxes=e,e&&this.getBoundingBoxRenderer()},enumerable:!0,configurable:!0}),Q.a.prototype.getBoundingBoxRenderer=function(){return this._boundingBoxRenderer||(this._boundingBoxRenderer=new cp(this)),this._boundingBoxRenderer},Object.defineProperty(Ge.a.prototype,\"showBoundingBox\",{get:function(){return this._showBoundingBox||!1},set:function(e){this._showBoundingBox=e,e&&this.getScene().getBoundingBoxRenderer()},enumerable:!0,configurable:!0});var cp=function(){function e(e){this.name=Me.a.NAME_BOUNDINGBOXRENDERER,this.frontColor=new s.a(1,1,1),this.backColor=new s.a(.1,.1,.1),this.showBackLines=!0,this.onBeforeBoxRenderingObservable=new o.c,this.onAfterBoxRenderingObservable=new o.c,this.onResourcesReadyObservable=new o.c,this.enabled=!0,this.renderList=new oi.a(32),this._vertexBuffers={},this._fillIndexBuffer=null,this._fillIndexData=null,this.scene=e,e._addComponent(this)}return e.prototype.register=function(){this.scene._beforeEvaluateActiveMeshStage.registerStep(Me.a.STEP_BEFOREEVALUATEACTIVEMESH_BOUNDINGBOXRENDERER,this,this.reset),this.scene._preActiveMeshStage.registerStep(Me.a.STEP_PREACTIVEMESH_BOUNDINGBOXRENDERER,this,this._preActiveMesh),this.scene._evaluateSubMeshStage.registerStep(Me.a.STEP_EVALUATESUBMESH_BOUNDINGBOXRENDERER,this,this._evaluateSubMesh),this.scene._afterRenderingGroupDrawStage.registerStep(Me.a.STEP_AFTERRENDERINGGROUPDRAW_BOUNDINGBOXRENDERER,this,this.render)},e.prototype._evaluateSubMesh=function(e,t){if(e.showSubMeshesBoundingBox){var i=t.getBoundingInfo();null!=i&&(i.boundingBox._tag=e.renderingGroupId,this.renderList.push(i.boundingBox))}},e.prototype._preActiveMesh=function(e){if(e.showBoundingBox||this.scene.forceShowBoundingBoxes){var t=e.getBoundingInfo();t.boundingBox._tag=e.renderingGroupId,this.renderList.push(t.boundingBox)}},e.prototype._prepareResources=function(){if(!this._colorShader){this._colorShader=new Lc.a(\"colorShader\",this.scene,\"color\",{attributes:[Qi.b.PositionKind],uniforms:[\"world\",\"viewProjection\",\"color\"]}),this._colorShader.reservedDataStore={hidden:!0};var e=this.scene.getEngine(),t=Ki.a.CreateBox({size:1});this._vertexBuffers[Qi.b.PositionKind]=new Qi.b(e,t.positions,Qi.b.PositionKind,!1),this._createIndexBuffer(),this._fillIndexData=t.indices,this.onResourcesReadyObservable.notifyObservers(this)}},e.prototype._createIndexBuffer=function(){var e=this.scene.getEngine();this._indexBuffer=e.createIndexBuffer([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,7,1,6,2,5,3,4])},e.prototype.rebuild=function(){var e=this._vertexBuffers[Qi.b.PositionKind];e&&e._rebuild(),this._createIndexBuffer()},e.prototype.reset=function(){this.renderList.reset()},e.prototype.render=function(e){if(0!==this.renderList.length&&this.enabled&&(this._prepareResources(),this._colorShader.isReady())){var t=this.scene.getEngine();t.setDepthWrite(!1),this._colorShader._preBind();for(var i=0;i\\n\\nattribute vec3 position;\\nattribute vec4 normal;\\n\\nuniform mat4 viewProjection;\\nuniform float width;\\nuniform float aspectRatio;\\nvoid main(void) {\\n#include\\nmat4 worldViewProjection=viewProjection*finalWorld;\\nvec4 viewPosition=worldViewProjection*vec4(position,1.0);\\nvec4 viewPositionNext=worldViewProjection*vec4(normal.xyz,1.0);\\nvec2 currentScreen=viewPosition.xy/viewPosition.w;\\nvec2 nextScreen=viewPositionNext.xy/viewPositionNext.w;\\ncurrentScreen.x*=aspectRatio;\\nnextScreen.x*=aspectRatio;\\nvec2 dir=normalize(nextScreen-currentScreen);\\nvec2 normalDir=vec2(-dir.y,dir.x);\\nnormalDir*=width/2.0;\\nnormalDir.x/=aspectRatio;\\nvec4 offset=vec4(normalDir*normal.w,0.0,0.0);\\ngl_Position=viewPosition+offset;\\n}\";ai.a.ShadersStore.lineVertexShader=up;Ge.a.prototype.disableEdgesRendering=function(){return this._edgesRenderer&&(this._edgesRenderer.dispose(),this._edgesRenderer=null),this},Ge.a.prototype.enableEdgesRendering=function(e,t,i){return void 0===e&&(e=.95),void 0===t&&(t=!1),this.disableEdgesRendering(),this._edgesRenderer=new dp(this,e,t,!0,i),this},Object.defineProperty(Ge.a.prototype,\"edgesRenderer\",{get:function(){return this._edgesRenderer},enumerable:!0,configurable:!0}),Ch.b.prototype.enableEdgesRendering=function(e,t){return void 0===e&&(e=.95),void 0===t&&(t=!1),this.disableEdgesRendering(),this._edgesRenderer=new fp(this,e,t),this},Ch.a.prototype.enableEdgesRendering=function(e,t){return void 0===e&&(e=.95),void 0===t&&(t=!1),Ch.b.prototype.enableEdgesRendering.apply(this,arguments),this};var hp=function(){this.edges=new Array,this.edgesConnectedCount=0},dp=function(){function e(e,t,i,n,r){var o,a=this;void 0===t&&(t=.95),void 0===i&&(i=!1),void 0===n&&(n=!0),this.edgesWidthScalerForOrthographic=1e3,this.edgesWidthScalerForPerspective=50,this._linesPositions=new Array,this._linesNormals=new Array,this._linesIndices=new Array,this._buffers={},this._buffersForInstances={},this._checkVerticesInsteadOfIndices=!1,this.isEnabled=!0,this.customInstances=new oi.a(32),this._source=e,this._checkVerticesInsteadOfIndices=i,this._options=null!=r?r:null,this._epsilon=t,this._prepareRessources(),n&&(null===(o=null==r?void 0:r.useAlternateEdgeFinder)||void 0===o||o?this._generateEdgesLinesAlternate():this._generateEdgesLines()),this._meshRebuildObserver=this._source.onRebuildObservable.add((function(){a._rebuild()})),this._meshDisposeObserver=this._source.onDisposeObservable.add((function(){a.dispose()}))}return Object.defineProperty(e.prototype,\"linesPositions\",{get:function(){return this._linesPositions},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"linesNormals\",{get:function(){return this._linesNormals},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"linesIndices\",{get:function(){return this._linesIndices},enumerable:!1,configurable:!0}),e.GetShader=function(e){if(!e._edgeRenderLineShader){var t=new Lc.a(\"lineShader\",e,\"line\",{attributes:[\"position\",\"normal\"],uniforms:[\"world\",\"viewProjection\",\"color\",\"width\",\"aspectRatio\"]});t.disableDepthWrite=!0,t.backFaceCulling=!1,e._edgeRenderLineShader=t}return e._edgeRenderLineShader},e.prototype._prepareRessources=function(){this._lineShader||(this._lineShader=e.GetShader(this._source.getScene()))},e.prototype._rebuild=function(){var e=this._buffers[Qi.b.PositionKind];e&&e._rebuild(),(e=this._buffers[Qi.b.NormalKind])&&e._rebuild();var t=this._source.getScene().getEngine();this._ib=t.createIndexBuffer(this._linesIndices)},e.prototype.dispose=function(){this._source.onRebuildObservable.remove(this._meshRebuildObserver),this._source.onDisposeObservable.remove(this._meshDisposeObserver);var e=this._buffers[Qi.b.PositionKind];e&&(e.dispose(),this._buffers[Qi.b.PositionKind]=null),(e=this._buffers[Qi.b.NormalKind])&&(e.dispose(),this._buffers[Qi.b.NormalKind]=null),this._ib&&this._source.getScene().getEngine()._releaseBuffer(this._ib),this._lineShader.dispose()},e.prototype._processEdgeForAdjacencies=function(e,t,i,n,r){return e===i&&t===n||e===n&&t===i?0:e===n&&t===r||e===r&&t===n?1:e===r&&t===i||e===i&&t===r?2:-1},e.prototype._processEdgeForAdjacenciesWithVertices=function(e,t,i,n,r){var o=1e-10;return e.equalsWithEpsilon(i,o)&&t.equalsWithEpsilon(n,o)||e.equalsWithEpsilon(n,o)&&t.equalsWithEpsilon(i,o)?0:e.equalsWithEpsilon(n,o)&&t.equalsWithEpsilon(r,o)||e.equalsWithEpsilon(r,o)&&t.equalsWithEpsilon(n,o)?1:e.equalsWithEpsilon(r,o)&&t.equalsWithEpsilon(i,o)||e.equalsWithEpsilon(i,o)&&t.equalsWithEpsilon(r,o)?2:-1},e.prototype._checkEdge=function(e,t,i,n,r){var o;void 0===t?o=!0:o=a.e.Dot(i[e],i[t])=0&&t.push(i);for(var n=0;n=e[0].length&&e[1].length>=e[2].length?o=1:e[2].length>=e[0].length&&e[2].length>=e[1].length&&(o=2);for(var a=0;a<3;++a)a===o?e[a].sort((function(e,t){return e[1]t[1]?1:0})):e[a].sort((function(e,t){return e[1]>t[1]?-1:e[1]=o+1;--u)r(e[u%3],c,u!==o+2?n[i[t+(u+1)%3]]:-1);var h=c.length;i.push(n[i[t+o]],s[0],c[0]),i.push(n[i[t+(o+1)%3]],c[h-1],s[l-1]);for(var d=l<=h,f=d?l:h,p=d?h:l,_=d?l-1:h-1,m=d?0:1,g=l+h-2,v=0,b=0,y=d?s:c,T=d?c:s,E=0;g-- >0;){m?i.push(y[v],T[b]):i.push(T[b],y[v]);var S=void 0;(E+=f)>=p&&v<_?(S=y[++v],E-=p):S=T[++b],i.push(S)}i[t+0]=i[i.length-3],i[t+1]=i[i.length-2],i[t+2]=i[i.length-1],i.length=i.length-3},e.prototype._generateEdgesLinesAlternate=function(){var e,t,i,n,r,o,s,c,l,u=this._source.getVerticesData(Qi.b.PositionKind),h=this._source.getIndices();if(h&&u){Array.isArray(h)||(h=Ce.b.SliceToArray(h));var d=null===(t=null===(e=this._options)||void 0===e?void 0:e.useFastVertexMerger)||void 0===t||t,f=d?Math.round(-Math.log(null!==(n=null===(i=this._options)||void 0===i?void 0:i.epsilonVertexMerge)&&void 0!==n?n:1e-6)/Math.log(10)):null!==(o=null===(r=this._options)||void 0===r?void 0:r.epsilonVertexMerge)&&void 0!==o?o:1e-6,p=[],_=[];if(d)for(var m={},g=0;gN){var $=D;D=N,N=$}if(te=Z[ee=D+\"_\"+N]){if(!te.done)a.e.Dot(J,te.normal)0||this._source.hasThinInstances)},e.prototype.render=function(){var e=this._source.getScene();if(this.isReady()&&e.activeCamera){var t=e.getEngine();this._lineShader._preBind(),1!==this._source.edgesColor.a?t.setAlphaMode(g.a.ALPHA_COMBINE):t.setAlphaMode(g.a.ALPHA_DISABLE);var i=this._source.hasInstances&&this.customInstances.length>0,n=i||this._source.hasThinInstances,r=0;if(n)if(this._buffersForInstances.world0=this._source.getVertexBuffer(\"world0\"),this._buffersForInstances.world1=this._source.getVertexBuffer(\"world1\"),this._buffersForInstances.world2=this._source.getVertexBuffer(\"world2\"),this._buffersForInstances.world3=this._source.getVertexBuffer(\"world3\"),i){var o=this._source._instanceDataStorage;if(r=this.customInstances.length,!o.isFrozen){for(var a=0,s=0;s0&&(t.push(!0),i.push(!1));this._multiRenderAttachments=this._engine.buildTextureLayout(e),this._clearAttachments=this._engine.buildTextureLayout(t),this._defaultAttachments=this._engine.buildTextureLayout(i)},e.prototype._createCompositionEffect=function(){this.prePassRT=new Hc(\"sceneprePassRT\",{width:this._engine.getRenderWidth(),height:this._engine.getRenderHeight()},this.mrtCount,this._scene,{generateMipMaps:!1,generateDepthTexture:!0,defaultType:g.a.TEXTURETYPE_UNSIGNED_INT,types:this._mrtFormats}),this.prePassRT.samples=1,this._initializeAttachments(),this._useGeometryBufferFallback&&!this._geometryBuffer&&(this.useGeometryBufferFallback=!0),this.imageProcessingPostProcess=new Yi(\"sceneCompositionPass\",1,null,void 0,this._engine),this.imageProcessingPostProcess.autoClear=!1},Object.defineProperty(e.prototype,\"isSupported\",{get:function(){return this._engine.webGLVersion>1||this._scene.getEngine().getCaps().drawBuffersExtension},enumerable:!1,configurable:!0}),e.prototype.bindAttachmentsForEffect=function(e,t){if(this.enabled)if(e._multiTarget)this._engine.bindAttachments(this._multiRenderAttachments);else if(this._engine.bindAttachments(this._defaultAttachments),this._geometryBuffer){var i=t.getMaterial();i&&-1===this.excludedMaterials.indexOf(i)&&this._geometryBuffer.renderList.push(t.getRenderingMesh())}},e.prototype.restoreAttachments=function(){this.enabled&&this._defaultAttachments&&this._engine.bindAttachments(this._defaultAttachments)},e.prototype._beforeCameraDraw=function(){this._isDirty&&this._update(),this._geometryBuffer&&(this._geometryBuffer.renderList.length=0),this._bindFrameBuffer()},e.prototype._afterCameraDraw=function(){if(this._enabled){var e=this._scene.activeCamera&&this._scene.activeCamera._getFirstPostProcess();e&&this._postProcesses.length&&this._scene.postProcessManager._prepareFrame(),this._scene.postProcessManager.directRender(this._postProcesses,e?e.inputTexture:null)}},e.prototype._checkRTSize=function(){var e=this._engine.getRenderWidth(!0),t=this._engine.getRenderHeight(!0),i=this.prePassRT.getRenderWidth(),n=this.prePassRT.getRenderHeight();i===e&&n===t||(this.prePassRT.resize({width:e,height:t}),this._updateGeometryBufferLayout(),this._bindPostProcessChain())},e.prototype._bindFrameBuffer=function(){if(this._enabled){this._checkRTSize();var e=this.prePassRT.getInternalTexture();e&&this._engine.bindFramebuffer(e)}},e.prototype.clear=function(){this._enabled&&(this._bindFrameBuffer(),this._engine.clear(this._scene.clearColor,this._scene.autoClear||this._scene.forceWireframe||this._scene.forcePointsCloud,this._scene.autoClearDepthAndStencil,this._scene.autoClearDepthAndStencil),this._engine.bindAttachments(this._clearAttachments),this._engine.clear(this._clearColor,!0,!1,!1),this._engine.bindAttachments(this._defaultAttachments))},e.prototype._setState=function(e){this._enabled=e,this._scene.prePass=e,this.imageProcessingPostProcess&&(this.imageProcessingPostProcess.imageProcessingConfiguration.applyByPostProcess=e)},e.prototype._updateGeometryBufferLayout=function(){if(this._geometryBuffer){this._geometryBuffer._resetLayout();for(var e=[],t=0;t\\n#include\\n#include\\n#include\\nvarying vec2 vUV;\\nuniform vec2 texelSize;\\nuniform sampler2D textureSampler;\\nuniform sampler2D irradianceSampler;\\nuniform sampler2D depthSampler;\\nuniform sampler2D albedoSampler;\\nuniform vec2 viewportSize;\\nuniform float metersPerUnit;\\nconst float LOG2_E=1.4426950408889634;\\nconst float SSS_PIXELS_PER_SAMPLE=4.;\\nconst int _SssSampleBudget=40;\\n#define rcp(x) 1./x\\n#define Sq(x) x*x\\n#define SSS_BILATERAL_FILTER true\\n\\n\\nvec3 EvalBurleyDiffusionProfile(float r,vec3 S)\\n{\\nvec3 exp_13=exp2(((LOG2_E*(-1.0/3.0))*r)*S);\\nvec3 expSum=exp_13*(1.+exp_13*exp_13);\\nreturn (S*rcp(8.*PI))*expSum;\\n}\\n\\n\\n\\n\\n\\n\\nvec2 SampleBurleyDiffusionProfile(float u,float rcpS)\\n{\\nu=1.-u;\\nfloat g=1.+(4.*u)*(2.*u+sqrt(1.+(4.*u)*u));\\nfloat n=exp2(log2(g)*(-1.0/3.0));\\nfloat p=(g*n)*n;\\nfloat c=1.+p+n;\\nfloat d=(3./LOG2_E*2.)+(3./LOG2_E)*log2(u);\\nfloat x=(3./LOG2_E)*log2(c)-d;\\n\\n\\n\\n\\n\\n\\nfloat rcpExp=((c*c)*c)*rcp((4.*u)*((c*c)+(4.*u)*(4.*u)));\\nfloat r=x*rcpS;\\nfloat rcpPdf=(8.*PI*rcpS)*rcpExp;\\nreturn vec2(r,rcpPdf);\\n}\\n\\n\\nvec3 ComputeBilateralWeight(float xy2,float z,float mmPerUnit,vec3 S,float rcpPdf)\\n{\\n#ifndef SSS_BILATERAL_FILTER\\nz=0.;\\n#endif\\n\\n\\n\\nfloat r=sqrt(xy2+(z*mmPerUnit)*(z*mmPerUnit));\\nfloat area=rcpPdf;\\n#if SSS_CLAMP_ARTIFACT\\nreturn clamp(EvalBurleyDiffusionProfile(r,S)*area,0.0,1.0);\\n#else\\nreturn EvalBurleyDiffusionProfile(r,S)*area;\\n#endif\\n}\\nvoid EvaluateSample(int i,int n,vec3 S,float d,vec3 centerPosVS,float mmPerUnit,float pixelsPerMm,\\nfloat phase,inout vec3 totalIrradiance,inout vec3 totalWeight)\\n{\\n\\nfloat scale=rcp(float(n));\\nfloat offset=rcp(float(n))*0.5;\\n\\nfloat sinPhase,cosPhase;\\nsinPhase=sin(phase);\\ncosPhase=cos(phase);\\nvec2 bdp=SampleBurleyDiffusionProfile(float(i)*scale+offset,d);\\nfloat r=bdp.x;\\nfloat rcpPdf=bdp.y;\\nfloat phi=SampleDiskGolden(i,n).y;\\nfloat sinPhi,cosPhi;\\nsinPhi=sin(phi);\\ncosPhi=cos(phi);\\nfloat sinPsi=cosPhase*sinPhi+sinPhase*cosPhi;\\nfloat cosPsi=cosPhase*cosPhi-sinPhase*sinPhi;\\nvec2 vec=r*vec2(cosPsi,sinPsi);\\n\\nvec2 position;\\nfloat xy2;\\nposition=vUV+round((pixelsPerMm*r)*vec2(cosPsi,sinPsi))*texelSize;\\nxy2=r*r;\\nvec4 textureSample=texture2D(irradianceSampler,position);\\nfloat viewZ=texture2D(depthSampler,position).r;\\nvec3 irradiance=textureSample.rgb;\\nif (testLightingForSSS(textureSample.a))\\n{\\n\\nfloat relZ=viewZ-centerPosVS.z;\\nvec3 weight=ComputeBilateralWeight(xy2,relZ,mmPerUnit,S,rcpPdf);\\ntotalIrradiance+=weight*irradiance;\\ntotalWeight+=weight;\\n}\\nelse\\n{\\n\\n\\n\\n\\n\\n\\n}\\n}\\nvoid main(void)\\n{\\nvec4 irradianceAndDiffusionProfile=texture2D(irradianceSampler,vUV);\\nvec3 centerIrradiance=irradianceAndDiffusionProfile.rgb;\\nint diffusionProfileIndex=int(round(irradianceAndDiffusionProfile.a*255.));\\nfloat centerDepth=0.;\\nvec4 inputColor=texture2D(textureSampler,vUV);\\nbool passedStencilTest=testLightingForSSS(irradianceAndDiffusionProfile.a);\\nif (passedStencilTest)\\n{\\ncenterDepth=texture2D(depthSampler,vUV).r;\\n}\\nif (!passedStencilTest) {\\ngl_FragColor=inputColor;\\nreturn;\\n}\\nfloat distScale=1.;\\nvec3 S=diffusionS[diffusionProfileIndex];\\nfloat d=diffusionD[diffusionProfileIndex];\\nfloat filterRadius=filterRadii[diffusionProfileIndex];\\n\\nvec2 centerPosNDC=vUV;\\nvec2 cornerPosNDC=vUV+0.5*texelSize;\\nvec3 centerPosVS=vec3(centerPosNDC*viewportSize,1.0)*centerDepth;\\nvec3 cornerPosVS=vec3(cornerPosNDC*viewportSize,1.0)*centerDepth;\\n\\nfloat mmPerUnit=1000.*(metersPerUnit*rcp(distScale));\\nfloat unitsPerMm=rcp(mmPerUnit);\\n\\n\\nfloat unitsPerPixel=2.*abs(cornerPosVS.x-centerPosVS.x);\\nfloat pixelsPerMm=rcp(unitsPerPixel)*unitsPerMm;\\n\\nfloat filterArea=PI*Sq(filterRadius*pixelsPerMm);\\nint sampleCount=int(filterArea*rcp(SSS_PIXELS_PER_SAMPLE));\\nint sampleBudget=_SssSampleBudget;\\nint texturingMode=0;\\nvec3 albedo=texture2D(albedoSampler,vUV).rgb;\\nif (distScale == 0. || sampleCount<1)\\n{\\n#ifdef DEBUG_SSS_SAMPLES\\nvec3 green=vec3(0.,1.,0.);\\ngl_FragColor=vec4(green,1.0);\\nreturn;\\n#endif\\ngl_FragColor=vec4(inputColor.rgb+albedo*centerIrradiance,1.0);\\nreturn;\\n}\\n#ifdef DEBUG_SSS_SAMPLES\\nvec3 red=vec3(1.,0.,0.);\\nvec3 blue=vec3(0.,0.,1.);\\ngl_FragColor=vec4(mix(blue,red,clamp(float(sampleCount)/float(sampleBudget),0.0,1.0)),1.0);\\nreturn;\\n#endif\\n\\nfloat phase=0.;\\nint n=min(sampleCount,sampleBudget);\\n\\nvec3 centerWeight=vec3(0.);\\nvec3 totalIrradiance=vec3(0.);\\nvec3 totalWeight=vec3(0.);\\nfor (int i=0; i=5)return m.a.Error(\"You already reached the maximum number of diffusion profiles.\"),0;for(var t=0;t\\nvoid main(void) {\\n#ifdef ALPHATEST\\nif (texture2D(diffuseSampler,vUV).a<0.4)\\ndiscard;\\n#endif\\n#include\\ngl_FragColor=color;\\n}\";ai.a.ShadersStore.outlinePixelShader=Ep;var Sp=\"\\nattribute vec3 position;\\nattribute vec3 normal;\\n#include\\n#include\\n#include[0..maxSimultaneousMorphTargets]\\n\\nuniform float offset;\\n#include\\nuniform mat4 viewProjection;\\n#ifdef ALPHATEST\\nvarying vec2 vUV;\\nuniform mat4 diffuseMatrix;\\n#ifdef UV1\\nattribute vec2 uv;\\n#endif\\n#ifdef UV2\\nattribute vec2 uv2;\\n#endif\\n#endif\\n#include\\nvoid main(void)\\n{\\nvec3 positionUpdated=position;\\nvec3 normalUpdated=normal;\\n#ifdef UV1\\nvec2 uvUpdated=uv;\\n#endif\\n#include[0..maxSimultaneousMorphTargets]\\nvec3 offsetPosition=positionUpdated+(normalUpdated*offset);\\n#include\\n#include\\ngl_Position=viewProjection*finalWorld*vec4(offsetPosition,1.0);\\n#ifdef ALPHATEST\\n#ifdef UV1\\nvUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\\n#endif\\n#ifdef UV2\\nvUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\\n#endif\\n#endif\\n#include\\n}\\n\";ai.a.ShadersStore.outlineVertexShader=Sp;Q.a.prototype.getOutlineRenderer=function(){return this._outlineRenderer||(this._outlineRenderer=new Ap(this)),this._outlineRenderer},Object.defineProperty(be.a.prototype,\"renderOutline\",{get:function(){return this._renderOutline},set:function(e){e&&this.getScene().getOutlineRenderer(),this._renderOutline=e},enumerable:!0,configurable:!0}),Object.defineProperty(be.a.prototype,\"renderOverlay\",{get:function(){return this._renderOverlay},set:function(e){e&&this.getScene().getOutlineRenderer(),this._renderOverlay=e},enumerable:!0,configurable:!0});var Ap=function(){function e(e){this.name=Me.a.NAME_OUTLINERENDERER,this.zOffset=1,this.scene=e,this._engine=e.getEngine(),this.scene._addComponent(this)}return e.prototype.register=function(){this.scene._beforeRenderingMeshStage.registerStep(Me.a.STEP_BEFORERENDERINGMESH_OUTLINE,this,this._beforeRenderingMesh),this.scene._afterRenderingMeshStage.registerStep(Me.a.STEP_AFTERRENDERINGMESH_OUTLINE,this,this._afterRenderingMesh)},e.prototype.rebuild=function(){},e.prototype.dispose=function(){},e.prototype.render=function(e,t,i){var n=this;void 0===i&&(i=!1);var r=this.scene,o=r.getEngine(),a=o.getCaps().instancedArrays&&(null!==t.visibleInstances[e._id]&&void 0!==t.visibleInstances[e._id]||e.getRenderingMesh().hasThinInstances);if(this.isReady(e,a)){var s=e.getMesh(),c=s._internalAbstractMeshDataInfo._actAsRegularMesh?s:null,l=e.getRenderingMesh(),u=c||l,h=e.getMaterial();if(h&&r.activeCamera){if(o.enableEffect(this._effect),h.useLogarithmicDepth&&this._effect.setFloat(\"logarithmicDepthConstant\",2/(Math.log(r.activeCamera.maxZ+1)/Math.LN2)),this._effect.setFloat(\"offset\",i?0:l.outlineWidth),this._effect.setColor4(\"color\",i?l.overlayColor:l.outlineColor,i?l.overlayAlpha:h.alpha),this._effect.setMatrix(\"viewProjection\",r.getTransformMatrix()),this._effect.setMatrix(\"world\",u.getWorldMatrix()),l.useBones&&l.computeBonesUsingShaders&&l.skeleton&&this._effect.setMatrices(\"mBones\",l.skeleton.getTransformMatrices(l)),ro.a.BindMorphTargetParameters(l,this._effect),l._bind(e,this._effect,h.fillMode),h&&h.needAlphaTesting()){var d=h.getAlphaTestTexture();d&&(this._effect.setTexture(\"diffuseSampler\",d),this._effect.setMatrix(\"diffuseMatrix\",d.getTextureMatrix()))}o.setZOffset(-this.zOffset),l._processRendering(u,e,this._effect,h.fillMode,t,a,(function(e,t){n._effect.setMatrix(\"world\",t)})),o.setZOffset(0)}}},e.prototype.isReady=function(e,t){var i=[],n=[Qi.b.PositionKind,Qi.b.NormalKind],r=e.getMesh(),o=e.getMaterial();o&&(o.needAlphaTesting()&&(i.push(\"#define ALPHATEST\"),r.isVerticesDataPresent(Qi.b.UVKind)&&(n.push(Qi.b.UVKind),i.push(\"#define UV1\")),r.isVerticesDataPresent(Qi.b.UV2Kind)&&(n.push(Qi.b.UV2Kind),i.push(\"#define UV2\"))),o.useLogarithmicDepth&&i.push(\"#define LOGARITHMICDEPTH\")),r.useBones&&r.computeBonesUsingShaders?(n.push(Qi.b.MatricesIndicesKind),n.push(Qi.b.MatricesWeightsKind),r.numBoneInfluencers>4&&(n.push(Qi.b.MatricesIndicesExtraKind),n.push(Qi.b.MatricesWeightsExtraKind)),i.push(\"#define NUM_BONE_INFLUENCERS \"+r.numBoneInfluencers),i.push(\"#define BonesPerMesh \"+(r.skeleton?r.skeleton.bones.length+1:0))):i.push(\"#define NUM_BONE_INFLUENCERS 0\");var a=r.morphTargetManager,s=0;a&&a.numInfluencers>0&&(s=a.numInfluencers,i.push(\"#define MORPHTARGETS\"),i.push(\"#define NUM_MORPH_INFLUENCERS \"+s),ro.a.PrepareAttributesForMorphTargetsInfluencers(n,r,s)),t&&(i.push(\"#define INSTANCES\"),ro.a.PushAttributesForInstances(n),e.getRenderingMesh().hasThinInstances&&i.push(\"#define THIN_INSTANCES\"));var c=i.join(\"\\n\");return this._cachedDefines!==c&&(this._cachedDefines=c,this._effect=this.scene.getEngine().createEffect(\"outline\",n,[\"world\",\"mBones\",\"viewProjection\",\"diffuseMatrix\",\"offset\",\"color\",\"logarithmicDepthConstant\",\"morphTargetInfluences\"],[\"diffuseSampler\"],c,void 0,void 0,void 0,{maxSimultaneousMorphTargets:s})),this._effect.isReady()},e.prototype._beforeRenderingMesh=function(t,i,n){if(this._savedDepthWrite=this._engine.getDepthWrite(),t.renderOutline){var r=i.getMaterial();r&&r.needAlphaBlendingForMesh(t)&&(this._engine.cacheStencilState(),this._engine.setDepthWrite(!1),this._engine.setColorWrite(!1),this._engine.setStencilBuffer(!0),this._engine.setStencilOperationPass(g.a.REPLACE),this._engine.setStencilFunction(g.a.ALWAYS),this._engine.setStencilMask(e._StencilReference),this._engine.setStencilFunctionReference(e._StencilReference),this.render(i,n,!0),this._engine.setColorWrite(!0),this._engine.setStencilFunction(g.a.NOTEQUAL)),this._engine.setDepthWrite(!1),this.render(i,n),this._engine.setDepthWrite(this._savedDepthWrite),r&&r.needAlphaBlendingForMesh(t)&&this._engine.restoreStencilState()}},e.prototype._afterRenderingMesh=function(e,t,i){if(e.renderOverlay){var n=this._engine.getAlphaMode(),r=this._engine.alphaState.alphaBlend;this._engine.setAlphaMode(g.a.ALPHA_COMBINE),this.render(t,i,!0),this._engine.setAlphaMode(n),this._engine.setDepthWrite(this._savedDepthWrite),this._engine.alphaState.alphaBlend=r}e.renderOutline&&this._savedDepthWrite&&(this._engine.setDepthWrite(!0),this._engine.setColorWrite(!1),this.render(t,i),this._engine.setColorWrite(!0))},e._StencilReference=4,e}(),Pp=i(148),Cp=function(e){function t(t,i){var n=e.call(this)||this;return n.name=t,n.animations=new Array,n.isPickable=!1,n.useAlphaForPicking=!1,n.onDisposeObservable=new o.c,n._onAnimationEnd=null,n._endAnimation=function(){n._onAnimationEnd&&n._onAnimationEnd(),n.disposeWhenFinishedAnimating&&n.dispose()},n.color=new s.b(1,1,1,1),n.position=a.e.Zero(),n._manager=i,n._manager.sprites.push(n),n.uniqueId=n._manager.scene.getUniqueId(),n}return Object(h.d)(t,e),Object.defineProperty(t.prototype,\"size\",{get:function(){return this.width},set:function(e){this.width=e,this.height=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"manager\",{get:function(){return this._manager},enumerable:!1,configurable:!0}),t.prototype.getClassName=function(){return\"Sprite\"},Object.defineProperty(t.prototype,\"fromIndex\",{get:function(){return this._fromIndex},set:function(e){this.playAnimation(e,this._toIndex,this._loopAnimation,this._delay,this._onAnimationEnd)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"toIndex\",{get:function(){return this._toIndex},set:function(e){this.playAnimation(this._fromIndex,e,this._loopAnimation,this._delay,this._onAnimationEnd)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"loopAnimation\",{get:function(){return this._loopAnimation},set:function(e){this.playAnimation(this._fromIndex,this._toIndex,e,this._delay,this._onAnimationEnd)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"delay\",{get:function(){return Math.max(this._delay,1)},set:function(e){this.playAnimation(this._fromIndex,this._toIndex,this._loopAnimation,e,this._onAnimationEnd)},enumerable:!1,configurable:!0}),t.prototype.playAnimation=function(t,i,n,r,o){void 0===o&&(o=null),this._onAnimationEnd=o,e.prototype.playAnimation.call(this,t,i,n,r,this._endAnimation)},t.prototype.dispose=function(){for(var e=0;ethis._delay&&(this._time=this._time%this._delay,this.cellIndex+=this._direction,(this._direction>0&&this.cellIndex>this._toIndex||this._direction<0&&this.cellIndex0?this._fromIndex:this._toIndex:(this.cellIndex=this._toIndex,this._animationStarted=!1,this._onBaseAnimationEnd&&this._onBaseAnimationEnd()))))},e}());Q.a.prototype._internalPickSprites=function(e,t,i,n){if(!gn.a)return null;var r=null;if(!n){if(!this.activeCamera)return null;n=this.activeCamera}if(this.spriteManagers.length>0)for(var o=0;o=r.distance))&&(r=s,i))break}}return r||new gn.a},Q.a.prototype._internalMultiPickSprites=function(e,t,i){if(!gn.a)return null;var n=new Array;if(!i){if(!this.activeCamera)return null;i=this.activeCamera}if(this.spriteManagers.length>0)for(var r=0;r0&&(i=r.pickSprite(e,t,this._spritePredicate,!1,r.cameraToUseForPointers||void 0))&&i.hit&&i.pickedSprite&&i.pickedSprite.actionManager){switch(r._pickedDownSprite=i.pickedSprite,n.button){case 0:i.pickedSprite.actionManager.processTrigger(g.a.ACTION_OnLeftPickTrigger,u.a.CreateNewFromSprite(i.pickedSprite,r,n));break;case 1:i.pickedSprite.actionManager.processTrigger(g.a.ACTION_OnCenterPickTrigger,u.a.CreateNewFromSprite(i.pickedSprite,r,n));break;case 2:i.pickedSprite.actionManager.processTrigger(g.a.ACTION_OnRightPickTrigger,u.a.CreateNewFromSprite(i.pickedSprite,r,n))}i.pickedSprite.actionManager&&i.pickedSprite.actionManager.processTrigger(g.a.ACTION_OnPickDownTrigger,u.a.CreateNewFromSprite(i.pickedSprite,r,n))}return i},e.prototype._pointerUp=function(e,t,i,n){var r=this.scene;if(r.spriteManagers.length>0){var o=r.pickSprite(e,t,this._spritePredicate,!1,r.cameraToUseForPointers||void 0);o&&(o.hit&&o.pickedSprite&&o.pickedSprite.actionManager&&(o.pickedSprite.actionManager.processTrigger(g.a.ACTION_OnPickUpTrigger,u.a.CreateNewFromSprite(o.pickedSprite,r,n)),o.pickedSprite.actionManager&&(this.scene._inputManager._isPointerSwiping()||o.pickedSprite.actionManager.processTrigger(g.a.ACTION_OnPickTrigger,u.a.CreateNewFromSprite(o.pickedSprite,r,n)))),r._pickedDownSprite&&r._pickedDownSprite.actionManager&&r._pickedDownSprite!==o.pickedSprite&&r._pickedDownSprite.actionManager.processTrigger(g.a.ACTION_OnPickOutTrigger,u.a.CreateNewFromSprite(r._pickedDownSprite,r,n)))}return i},e}();ai.a.IncludesShadersStore.imageProcessingCompatibility=\"#ifdef IMAGEPROCESSINGPOSTPROCESS\\ngl_FragColor.rgb=pow(gl_FragColor.rgb,vec3(2.2));\\n#endif\";var xp=\"uniform bool alphaTest;\\nvarying vec4 vColor;\\n\\nvarying vec2 vUV;\\nuniform sampler2D diffuseSampler;\\n\\n#include\\nvoid main(void) {\\nvec4 color=texture2D(diffuseSampler,vUV);\\nif (alphaTest)\\n{\\nif (color.a<0.95)\\ndiscard;\\n}\\ncolor*=vColor;\\n#include\\ngl_FragColor=color;\\n#include\\n}\";ai.a.ShadersStore.spritesPixelShader=xp;var Op=\"\\nattribute vec4 position;\\nattribute vec2 options;\\nattribute vec2 offsets;\\nattribute vec2 inverts;\\nattribute vec4 cellInfo;\\nattribute vec4 color;\\n\\nuniform mat4 view;\\nuniform mat4 projection;\\n\\nvarying vec2 vUV;\\nvarying vec4 vColor;\\n#include\\nvoid main(void) {\\nvec3 viewPos=(view*vec4(position.xyz,1.0)).xyz;\\nvec2 cornerPos;\\nfloat angle=position.w;\\nvec2 size=vec2(options.x,options.y);\\nvec2 offset=offsets.xy;\\ncornerPos=vec2(offset.x-0.5,offset.y-0.5)*size;\\n\\nvec3 rotatedCorner;\\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\\nrotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\\nrotatedCorner.z=0.;\\n\\nviewPos+=rotatedCorner;\\ngl_Position=projection*vec4(viewPos,1.0);\\n\\nvColor=color;\\n\\nvec2 uvOffset=vec2(abs(offset.x-inverts.x),abs(1.0-offset.y-inverts.y));\\nvec2 uvPlace=cellInfo.xy;\\nvec2 uvSize=cellInfo.zw;\\nvUV.x=uvPlace.x+uvSize.x*uvOffset.x;\\nvUV.y=uvPlace.y+uvSize.y*uvOffset.y;\\n\\n#ifdef FOG\\nvFogDistance=viewPos;\\n#endif\\n}\";ai.a.ShadersStore.spritesVertexShader=Op;var Mp=function(){function e(e,t,i,n){if(void 0===i&&(i=.01),void 0===n&&(n=null),this.blendMode=g.a.ALPHA_COMBINE,this.autoResetAlpha=!0,this.disableDepthWrite=!1,this.fogEnabled=!0,this._useVAO=!1,this._useInstancing=!1,this._vertexBuffers={},this._capacity=t,this._epsilon=i,this._engine=e,this._useInstancing=e.getCaps().instancedArrays,this._useVAO=e.getCaps().vertexArrayObject&&!e.disableVertexArrayObjects,this._scene=n,!this._useInstancing){for(var r=[],o=0,a=0;a>0;t._xOffset=(t.cellIndex-l*c)*this.cellWidth/r.width,t._yOffset=l*this.cellHeight/r.height,t._xSize=this.cellWidth,t._ySize=this.cellHeight}this._vertexData[s]=t.position.x,this._vertexData[s+1]=t.position.y,this._vertexData[s+2]=t.position.z,this._vertexData[s+3]=t.angle,this._vertexData[s+4]=t.width,this._vertexData[s+5]=t.height,this._useInstancing?s-=2:(this._vertexData[s+6]=i,this._vertexData[s+7]=n),this._vertexData[s+8]=o?t.invertU?0:1:t.invertU?1:0,this._vertexData[s+9]=t.invertV?1:0,this._vertexData[s+10]=t._xOffset,this._vertexData[s+11]=t._yOffset,this._vertexData[s+12]=t._xSize/r.width,this._vertexData[s+13]=t._ySize/r.height,this._vertexData[s+14]=t.color.r,this._vertexData[s+15]=t.color.g,this._vertexData[s+16]=t.color.b,this._vertexData[s+17]=t.color.a},e.prototype.dispose=function(){this._buffer&&(this._buffer.dispose(),this._buffer=null),this._spriteBuffer&&(this._spriteBuffer.dispose(),this._spriteBuffer=null),this._indexBuffer&&(this._engine._releaseBuffer(this._indexBuffer),this._indexBuffer=null),this._vertexArrayObject&&(this._engine.releaseVertexArrayObject(this._vertexArrayObject),this._vertexArrayObject=null),this.texture&&(this.texture.dispose(),this.texture=null)},e}(),Ip=function(){function e(e,t,i,n,r,a,s,c,l){var u=this;void 0===a&&(a=.01),void 0===s&&(s=Ke.a.TRILINEAR_SAMPLINGMODE),void 0===c&&(c=!1),void 0===l&&(l=null),this.name=e,this.sprites=new Array,this.renderingGroupId=0,this.layerMask=268435455,this.isPickable=!1,this.onDisposeObservable=new o.c,this.disableDepthWrite=!1,this._packedAndReady=!1,this._customUpdate=function(e,t){e.cellRef||(e.cellIndex=0);var i=e.cellIndex;\"number\"==typeof i&&isFinite(i)&&Math.floor(i)===i&&(e.cellRef=u._spriteMap[e.cellIndex]),e._xOffset=u._cellData[e.cellRef].frame.x/t.width,e._yOffset=u._cellData[e.cellRef].frame.y/t.height,e._xSize=u._cellData[e.cellRef].frame.w,e._ySize=u._cellData[e.cellRef].frame.h},r||(r=Se.a.LastCreatedScene),r._getComponent(Me.a.NAME_SPRITE)||r._addComponent(new Rp(r)),this._fromPacked=c,this._scene=r;var h=this._scene.getEngine();if(this._spriteRenderer=new Mp(h,i,a,r),n.width&&n.height)this.cellWidth=n.width,this.cellHeight=n.height;else{if(void 0===n)return void(this._spriteRenderer=null);this.cellWidth=n,this.cellHeight=n}this._scene.spriteManagers.push(this),this.uniqueId=this.scene.getUniqueId(),t&&(this.texture=new Ke.a(t,r,!0,!1,s)),this._fromPacked&&this._makePacked(t,l)}return Object.defineProperty(e.prototype,\"onDispose\",{set:function(e){this._onDisposeObserver&&this.onDisposeObservable.remove(this._onDisposeObserver),this._onDisposeObserver=this.onDisposeObservable.add(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"children\",{get:function(){return this.sprites},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"scene\",{get:function(){return this._scene},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"capacity\",{get:function(){return this._spriteRenderer.capacity},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"texture\",{get:function(){return this._spriteRenderer.texture},set:function(e){e.wrapU=Ke.a.CLAMP_ADDRESSMODE,e.wrapV=Ke.a.CLAMP_ADDRESSMODE,this._spriteRenderer.texture=e,this._textureContent=null},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"cellWidth\",{get:function(){return this._spriteRenderer.cellWidth},set:function(e){this._spriteRenderer.cellWidth=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"cellHeight\",{get:function(){return this._spriteRenderer.cellHeight},set:function(e){this._spriteRenderer.cellHeight=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"fogEnabled\",{get:function(){return this._spriteRenderer.fogEnabled},set:function(e){this._spriteRenderer.fogEnabled=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"blendMode\",{get:function(){return this._spriteRenderer.blendMode},set:function(e){this._spriteRenderer.blendMode=e},enumerable:!1,configurable:!0}),e.prototype.getClassName=function(){return\"SpriteManager\"},e.prototype._makePacked=function(e,t){var i=this;if(null!==t)try{var n=void 0;if((n=\"string\"==typeof t?JSON.parse(t):t).frames.length){for(var r={},o=0;o0);var u=e.substring(0,l-1)+\".json\",h=new XMLHttpRequest;h.open(\"GET\",u,!0),h.onerror=function(){m.a.Error(\"JSON ERROR: Unable to load JSON file.\"),i._fromPacked=!1,i._packedAndReady=!1},h.onload=function(){try{var e=JSON.parse(h.response),t=Reflect.ownKeys(e.frames);i._spriteMap=t,i._packedAndReady=!0,i._cellData=e.frames}catch(e){throw i._fromPacked=!1,i._packedAndReady=!1,new Error(\"Invalid JSON format. Please check documentation for format specifications.\")}},h.send()}},e.prototype._checkTextureAlpha=function(e,t,i,n,r){if(!e.useAlphaForPicking||!this.texture)return!0;var o=this.texture.getSize();this._textureContent||(this._textureContent=new Uint8Array(o.width*o.height*4),this.texture.readPixels(0,0,this._textureContent));var s=a.c.Vector3[0];s.copyFrom(t.direction),s.normalize(),s.scaleInPlace(i),s.addInPlace(t.origin);var c=(s.x-n.x)/(r.x-n.x)-.5,l=1-(s.y-n.y)/(r.y-n.y)-.5,u=e.angle,h=c*Math.cos(u)-l*Math.sin(u)+.5,d=c*Math.sin(u)+l*Math.cos(u)+.5,f=e._xOffset*o.width+h*e._xSize|0,p=e._yOffset*o.height+d*e._ySize|0;return this._textureContent[4*(f+p*o.width)+3]>.5},e.prototype.intersects=function(e,t,i,n){for(var r=Math.min(this.capacity,this.sprites.length),o=a.e.Zero(),s=a.e.Zero(),c=Number.MAX_VALUE,l=null,u=a.c.Vector3[0],h=a.c.Vector3[1],d=t.getViewMatrix(),f=0;f_){if(!this._checkTextureAlpha(p,e,_,o,s))continue;if(c=_,l=p,n)break}}}}if(l){var m=new gn.a;d.invertToRef(a.c.Matrix[0]),m.hit=!0,m.pickedSprite=l,m.distance=c;var g=a.c.Vector3[2];return g.copyFrom(e.direction),g.normalize(),g.scaleInPlace(c),e.origin.addToRef(g,u),m.pickedPoint=a.e.TransformCoordinates(u,a.c.Matrix[0]),m}return null},e.prototype.multiIntersects=function(e,t,i){for(var n,r=Math.min(this.capacity,this.sprites.length),o=a.e.Zero(),s=a.e.Zero(),c=[],l=a.c.Vector3[0].copyFromFloats(0,0,0),u=a.c.Vector3[1].copyFromFloats(0,0,0),h=t.getViewMatrix(),d=0;d0.) {\\nmt=mod(time*animationData.z,1.0);\\nfor(float f=0.; fmt){\\nframeID=animationData.x;\\nbreak;\\n}\\nanimationData=texture2D(animationMap,vec2((frameID+0.5)/spriteCount,aFrameSteps*f),0.);\\n}\\n}\\n\\nmat4 frameData=getFrameData(frameID+0.5);\\nvec2 frameSize=(frameData[0].wz)/spriteMapSize;\\nvec2 offset=frameData[0].xy*sheetUnits;\\nvec2 ratio=frameData[2].xy/frameData[0].wz;\\n\\nif (frameData[2].z == 1.){\\ntileUV.xy=tileUV.yx;\\n}\\nif (i == 0){\\ncolor=texture2D(spriteSheet,tileUV*frameSize+offset);\\n} else {\\nvec4 nc=texture2D(spriteSheet,tileUV*frameSize+offset);\\nfloat alpha=min(color.a+nc.a,1.0);\\nvec3 mixed=mix(color.xyz,nc.xyz,nc.a);\\ncolor=vec4(mixed,alpha);\\n}\\n}\\ncolor.xyz*=colorMul;\\ngl_FragColor=color;\\n}\";ai.a.ShadersStore.spriteMapPixelShader=Dp;var Np=\"precision highp float;\\n\\nattribute vec3 position;\\nattribute vec3 normal;\\nattribute vec2 uv;\\n\\nvarying vec3 vPosition;\\nvarying vec2 vUV;\\nvarying vec2 tUV;\\nvarying vec2 stageUnits;\\nvarying vec2 levelUnits;\\nvarying vec2 tileID;\\n\\nuniform float time;\\nuniform mat4 worldViewProjection;\\nuniform vec2 outputSize;\\nuniform vec2 stageSize;\\nuniform vec2 spriteMapSize;\\nuniform float stageScale;\\nvoid main() {\\nvec4 p=vec4( position,1. );\\nvPosition=p.xyz;\\nvUV=uv;\\ntUV=uv*stageSize;\\ngl_Position=worldViewProjection*p;\\n}\";ai.a.ShadersStore.spriteMapVertexShader=Np;var Lp,wp=function(){function e(e,t,i,n,r){var o=this;this.name=e,this.sprites=[],this.atlasJSON=t,this.sprites=this.atlasJSON.frames,this.spriteSheet=i,this.options=n,n.stageSize=n.stageSize||new a.d(1,1),n.outputSize=n.outputSize||n.stageSize,n.outputPosition=n.outputPosition||a.e.Zero(),n.outputRotation=n.outputRotation||a.e.Zero(),n.layerCount=n.layerCount||1,n.maxAnimationFrames=n.maxAnimationFrames||0,n.baseTile=n.baseTile||0,n.flipU=n.flipU||!1,n.colorMultiply=n.colorMultiply||new a.e(1,1,1),this._scene=r,this._frameMap=this._createFrameBuffer(),this._tileMaps=new Array;for(var s=0;s0&&(e+=\"\\n\\r\"),e+=this._tileMaps[t]._texture._bufferView.toString();var i=document.createElement(\"a\");i.href=\"data:octet/stream;charset=utf-8,\"+encodeURI(e),i.target=\"_blank\",i.download=this.name+\".tilemaps\",i.click(),i.remove()},e.prototype.loadTileMaps=function(e){var t=this,i=new XMLHttpRequest;i.open(\"GET\",e);var n=this.options.layerCount||0;i.onload=function(){for(var e=i.response.split(\"\\n\\r\"),r=0;r-1&&this._tasks.splice(t,1)},e.prototype._decreaseWaitingTasksCount=function(e){this._waitingTasksCount--;try{this.onProgress&&this.onProgress(this._waitingTasksCount,this._totalTasksCount,e),this.onProgressObservable.notifyObservers(new jp(this._waitingTasksCount,this._totalTasksCount,e))}catch(e){m.a.Error(\"Error running progress callbacks.\"),console.log(e)}if(0===this._waitingTasksCount){try{var t=this._tasks.slice();this.onFinish&&this.onFinish(t);for(var i=0,n=t;i-1&&this._tasks.splice(r,1)}}this.onTasksDoneObservable.notifyObservers(this._tasks)}catch(e){m.a.Error(\"Error running tasks-done callbacks.\"),console.log(e)}this._isLoading=!1,this.autoHideLoadingUI&&this._scene.getEngine().hideLoadingUI()}},e.prototype._runTask=function(e){var t=this,i=function(i,n){e._setErrorObject(i,n),t.onTaskError&&t.onTaskError(e),t.onTaskErrorObservable.notifyObservers(e),t._decreaseWaitingTasksCount(e)};e.run(this._scene,(function(){try{t.onTaskSuccess&&t.onTaskSuccess(e),t.onTaskSuccessObservable.notifyObservers(e),t._decreaseWaitingTasksCount(e)}catch(e){i(\"Error executing task success callbacks\",e)}}),i)},e.prototype.reset=function(){return this._isLoading=!1,this._tasks=new Array,this},e.prototype.load=function(){if(this._isLoading)return this;if(this._isLoading=!0,this._waitingTasksCount=this._tasks.length,this._totalTasksCount=this._tasks.length,0===this._waitingTasksCount)return this._isLoading=!1,this.onFinish&&this.onFinish(this._tasks),this.onTasksDoneObservable.notifyObservers(this._tasks),this;this.useDefaultLoadingScreen&&this._scene.getEngine().displayLoadingUI();for(var e=0;e=0&&this._meshes.splice(i,1),this._centerPosition=this._centerMesh.getAbsolutePosition().clone();for(var n=0;n0&&this._textureLoadingCallback(e)}this._currentScene.render()}},e.prototype.drag=function(e){e.stopPropagation(),e.preventDefault()},e.prototype.drop=function(e){e.stopPropagation(),e.preventDefault(),this.loadFiles(e)},e.prototype._traverseFolder=function(e,t,i,n){var r=this,o=e.createReader(),a=e.fullPath.replace(/^\\//,\"\").replace(/(.+?)\\/?$/,\"$1/\");o.readEntries((function(e){i.count+=e.length;for(var o=0,s=e;o0)){for(var i=new Array,n=[],r=e.dataTransfer?e.dataTransfer.items:null,o=0;o0&&m.a.ClearLogCache(),this._engine.stopRenderLoop()),pr.ShowLoadingScreen=!1,this._engine.displayLoadingUI(),pr.LoadAsync(\"file:\",this._sceneFileToLoad,this._engine,(function(t){e._progressCallback&&e._progressCallback(t)})).then((function(t){e._currentScene&&e._currentScene.dispose(),e._currentScene=t,e._sceneLoadedCallback&&e._sceneLoadedCallback(e._sceneFileToLoad,e._currentScene),e._currentScene.executeWhenReady((function(){e._engine.hideLoadingUI(),e._engine.runRenderLoop((function(){e.renderFunction()}))}))})).catch((function(t){e._engine.hideLoadingUI(),e._errorCallback&&e._errorCallback(e._sceneFileToLoad,e._currentScene,t.message)}))):m.a.Error(\"Please provide a valid .babylon file.\")},e}(),n_=i(146),r_=i(145),o_=function(){function e(e){void 0===e&&(e=0),this.priority=e}return e.prototype.getDescription=function(){return\"\"},e.prototype.apply=function(e,t){return!0},e}(),a_=function(e){function t(t,i,n){void 0===t&&(t=0),void 0===i&&(i=1024),void 0===n&&(n=.5);var r=e.call(this,t)||this;return r.priority=t,r.maximumSize=i,r.step=n,r}return Object(h.d)(t,e),t.prototype.getDescription=function(){return\"Reducing render target texture size to \"+this.maximumSize},t.prototype.apply=function(e,t){for(var i=!0,n=0;nthis.maximumSize&&(r.scale(this.step),i=!1)}}return i},t}(o_),s_=function(e){function t(t,i,n){void 0===t&&(t=0),void 0===i&&(i=2),void 0===n&&(n=.25);var r=e.call(this,t)||this;return r.priority=t,r.maximumScale=i,r.step=n,r._currentScale=-1,r._directionOffset=1,r}return Object(h.d)(t,e),t.prototype.getDescription=function(){return\"Setting hardware scaling level to \"+this._currentScale},t.prototype.apply=function(e,t){return-1===this._currentScale&&(this._currentScale=e.getEngine().getHardwareScalingLevel(),this._currentScale>this.maximumScale&&(this._directionOffset=-1)),this._currentScale+=this._directionOffset*this.step,e.getEngine().setHardwareScalingLevel(this._currentScale),1===this._directionOffset?this._currentScale>=this.maximumScale:this._currentScale<=this.maximumScale},t}(o_),c_=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(h.d)(t,e),t.prototype.getDescription=function(){return\"Turning shadows on/off\"},t.prototype.apply=function(e,t){return e.shadowsEnabled=t.isInImprovementMode,!0},t}(o_),l_=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(h.d)(t,e),t.prototype.getDescription=function(){return\"Turning post-processes on/off\"},t.prototype.apply=function(e,t){return e.postProcessesEnabled=t.isInImprovementMode,!0},t}(o_),u_=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(h.d)(t,e),t.prototype.getDescription=function(){return\"Turning lens flares on/off\"},t.prototype.apply=function(e,t){return e.lensFlaresEnabled=t.isInImprovementMode,!0},t}(o_),h_=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(h.d)(t,e),t.prototype.getDescription=function(){return this.onGetDescription?this.onGetDescription():\"Running user defined callback\"},t.prototype.apply=function(e,t){return!this.onApply||this.onApply(e,t)},t}(o_),d_=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(h.d)(t,e),t.prototype.getDescription=function(){return\"Turning particles on/off\"},t.prototype.apply=function(e,t){return e.particlesEnabled=t.isInImprovementMode,!0},t}(o_),f_=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(h.d)(t,e),t.prototype.getDescription=function(){return\"Turning render targets off\"},t.prototype.apply=function(e,t){return e.renderTargetsEnabled=t.isInImprovementMode,!0},t}(o_),p_=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._canBeMerged=function(e){if(!(e instanceof be.a))return!1;var t=e;return!t.isDisposed()&&(!(!t.isVisible||!t.isEnabled())&&(!(t.instances.length>0)&&(!t.skeleton&&!t.hasLODLevels)))},t}return Object(h.d)(t,e),Object.defineProperty(t,\"UpdateSelectionTree\",{get:function(){return t._UpdateSelectionTree},set:function(e){t._UpdateSelectionTree=e},enumerable:!1,configurable:!0}),t.prototype.getDescription=function(){return\"Merging similar meshes together\"},t.prototype.apply=function(e,i,n){for(var r=e.meshes.slice(0),o=r.length,a=0;a=this._targetFrameRate)return this._isRunning=!1,void this.onSuccessObservable.notifyObservers(this);for(var n=!0,r=!0,o=0;o0){o.animationGroups=[];for(var h=0;h0)for(o.reflectionProbes=[],i=0;i0&&setTimeout((function(){i.stopRecording()}),1e3*t),this._fileName=e,this._recordedChunks=[],this._resolve=null,this._reject=null,this._canvas.isRecording=!0,this._mediaRecorder.start(this._options.recordChunckSize),new Promise((function(e,t){i._resolve=e,i._reject=t}))},e.prototype.dispose=function(){this._canvas=null,this._mediaRecorder=null,this._recordedChunks=[],this._fileName=null,this._resolve=null,this._reject=null},e.prototype._handleDataAvailable=function(e){e.data.size>0&&this._recordedChunks.push(e.data)},e.prototype._handleError=function(e){if(this.stopRecording(),!this._reject)throw new e.error;this._reject(e.error)},e.prototype._handleStop=function(){this.stopRecording();var e=new Blob(this._recordedChunks);this._resolve&&this._resolve(e),window.URL.createObjectURL(e),this._fileName&&Ce.b.Download(e,this._fileName)},e._defaultOptions={mimeType:\"video/webm\",fps:25,recordChunckSize:3e3},e}(),A_=function(){function e(){}return e.CreateScreenshot=function(t,i,n,r,o){void 0===o&&(o=\"image/png\");var a=e._getScreenshotSize(t,i,n),s=a.height,c=a.width;if(s&&c){Ce.b._ScreenshotCanvas||(Ce.b._ScreenshotCanvas=document.createElement(\"canvas\")),Ce.b._ScreenshotCanvas.width=c,Ce.b._ScreenshotCanvas.height=s;var l=Ce.b._ScreenshotCanvas.getContext(\"2d\"),u=t.getRenderWidth()/t.getRenderHeight(),h=c,d=h/u;d>s&&(h=(d=s)*u);var f=Math.max(0,c-h)/2,p=Math.max(0,s-d)/2,_=t.getRenderingCanvas();l&&_&&l.drawImage(_,f,p,h,d),Ce.b.EncodeScreenshotCanvasData(r,o)}else m.a.Error(\"Invalid 'size' parameter !\")},e.CreateScreenshotAsync=function(t,i,n,r){return void 0===r&&(r=\"image/png\"),new Promise((function(o,a){e.CreateScreenshot(t,i,n,(function(e){void 0!==e?o(e):a(new Error(\"Data is undefined\"))}),r)}))},e.CreateScreenshotUsingRenderTarget=function(t,i,n,r,o,a,s,c,l,u){void 0===o&&(o=\"image/png\"),void 0===a&&(a=1),void 0===s&&(s=!1),void 0===l&&(l=!1),void 0===u&&(u=!1);var h=e._getScreenshotSize(t,i,n),d=h.height,f=h.width,p={width:f,height:d};if(d&&f){var _=t.getRenderingCanvas();if(_){var v={width:_.width,height:_.height};t.setSize(f,d);var b=i.getScene(),y=null,T=b.activeCameras;(b.activeCamera!==i||b.activeCameras&&b.activeCameras.length)&&(y=b.activeCamera,b.activeCamera=i),b.render();var E=new Ni(\"screenShot\",p,b,!1,!1,g.a.TEXTURETYPE_UNSIGNED_INT,!1,Ke.a.NEAREST_SAMPLINGMODE,void 0,u);E.renderList=null,E.samples=a,E.renderSprites=l,E.onAfterRenderObservable.add((function(){Ce.b.DumpFramebuffer(f,d,t,r,o,c)}));var S=function(){b.incrementRenderId(),b.resetCachedMaterial(),E.render(!0),E.dispose(),y&&(b.activeCamera=y),b.activeCameras=T,t.setSize(v.width,v.height),i.getProjectionMatrix(!0)};if(s){var A=new mf(\"antialiasing\",1,b.activeCamera);E.addPostProcess(A),A.getEffect().isReady()?S():A.getEffect().onCompiled=function(){S()}}else S()}else m.a.Error(\"No rendering canvas found !\")}else m.a.Error(\"Invalid 'size' parameter !\")},e.CreateScreenshotUsingRenderTargetAsync=function(t,i,n,r,o,a,s,c){return void 0===r&&(r=\"image/png\"),void 0===o&&(o=1),void 0===a&&(a=!1),void 0===c&&(c=!1),new Promise((function(l,u){e.CreateScreenshotUsingRenderTarget(t,i,n,(function(e){void 0!==e?l(e):u(new Error(\"Data is undefined\"))}),r,o,a,s,c)}))},e._getScreenshotSize=function(e,t,i){var n=0,r=0;if(\"object\"==typeof i){var o=i.precision?Math.abs(i.precision):1;i.width&&i.height?(n=i.height*o,r=i.width*o):i.width&&!i.height?(r=i.width*o,n=Math.round(r/e.getAspectRatio(t))):i.height&&!i.width?(n=i.height*o,r=Math.round(n*e.getAspectRatio(t))):(r=Math.round(e.getRenderWidth()*o),n=Math.round(r/e.getAspectRatio(t)))}else isNaN(i)||(n=i,r=i);return r&&(r=Math.floor(r)),n&&(n=Math.floor(n)),{height:0|n,width:0|r}},e}();Ce.b.CreateScreenshot=A_.CreateScreenshot,Ce.b.CreateScreenshotAsync=A_.CreateScreenshotAsync,Ce.b.CreateScreenshotUsingRenderTarget=A_.CreateScreenshotUsingRenderTarget,Ce.b.CreateScreenshotUsingRenderTargetAsync=A_.CreateScreenshotUsingRenderTargetAsync,function(e){e[e.Checkbox=0]=\"Checkbox\",e[e.Slider=1]=\"Slider\",e[e.Vector3=2]=\"Vector3\",e[e.Quaternion=3]=\"Quaternion\",e[e.Color3=4]=\"Color3\",e[e.String=5]=\"String\"}(zp||(zp={}));var P_,C_=i(140),R_=function(){function e(e){this.byteOffset=0,this.buffer=e}return e.prototype.loadAsync=function(e){var t=this;return this.buffer.readAsync(this.byteOffset,e).then((function(e){t._dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),t._dataByteOffset=0}))},e.prototype.readUint32=function(){var e=this._dataView.getUint32(this._dataByteOffset,!0);return this._dataByteOffset+=4,this.byteOffset+=4,e},e.prototype.readUint8Array=function(e){var t=new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+this._dataByteOffset,e);return this._dataByteOffset+=e,this.byteOffset+=e,t},e.prototype.readString=function(e){return io.a.Decode(this.readUint8Array(e))},e.prototype.skipBytes=function(e){this._dataByteOffset+=e,this.byteOffset+=e},e}(),x_=function(){function e(){}return e._GetStorage=function(){try{return localStorage.setItem(\"test\",\"\"),localStorage.removeItem(\"test\"),localStorage}catch(t){var e={};return{getItem:function(t){var i=e[t];return void 0===i?null:i},setItem:function(t,i){e[t]=i}}}},e.ReadString=function(e,t){var i=this._Storage.getItem(e);return null!==i?i:t},e.WriteString=function(e,t){this._Storage.setItem(e,t)},e.ReadBoolean=function(e,t){var i=this._Storage.getItem(e);return null!==i?\"true\"===i:t},e.WriteBoolean=function(e,t){this._Storage.setItem(e,t?\"true\":\"false\")},e.ReadNumber=function(e,t){var i=this._Storage.getItem(e);return null!==i?parseFloat(i):t},e.WriteNumber=function(e,t){this._Storage.setItem(e,t.toString())},e._Storage=e._GetStorage(),e}(),O_=function(){function e(){this._trackedScene=null}return e.prototype.track=function(e){this._trackedScene=e,this._savedJSON=y_.Serialize(e)},e.prototype.getDelta=function(){if(!this._trackedScene)return null;var e=y_.Serialize(this._trackedScene),t={};for(var i in e)this._compareCollections(i,this._savedJSON[i],e[i],t);return t},e.prototype._compareArray=function(e,t,i,n){if(0===t.length&&0===i.length)return!0;if(t.length&&!isNaN(t[0])||i.length&&!isNaN(i[0])){if(t.length!==i.length)return!1;if(0===t.length)return!0;for(var r=0;re.MAX_SEQUENCE_LENGTH)throw new Error(\"Sequences longer than \"+e.MAX_SEQUENCE_LENGTH+\" not supported.\");this._alphabet=i,this._characters=t.map((function(e){return n._alphabet.getCharacterIdx(e)}))}return e.prototype.serialize=function(){return JSON.stringify(this._characters)},e.Deserialize=function(t,i){var n=new e([],i);return n._characters=JSON.parse(t),n},e.prototype.distance=function(t){return e._distance(this,t)},e._distance=function(t,i){var n=t._alphabet;if(n!==i._alphabet)throw new Error(\"Cannot Levenshtein compare Sequences built from different alphabets.\");var r=t._characters,o=i._characters,a=r.length,s=o.length,c=e._costMatrix;c[0][0]=0;for(var l=0;l.98)&&(a.e.CrossToRef(e._forwardDir,e._inverseFromVec,e._upDir),e._upDir.normalize(),a.a.LookAtLHToRef(t,i,e._upDir,e._lookMatrix),n.subtractToRef(i,e._fromToVec),e._fromToVec.normalize(),a.e.TransformNormalToRef(e._fromToVec,e._lookMatrix,r),!0)},e._tokenizeSegment=function(t,i){e._bestMatch=0,e._score=a.e.Dot(t,i[0]),e._bestScore=e._score;for(var n=1;ne._bestScore&&(e._bestMatch=n,e._bestScore=e._score);return e._bestMatch},e._forwardDir=new a.e,e._inverseFromVec=new a.e,e._upDir=new a.e,e._fromToVec=new a.e,e._lookMatrix=new a.a,e}(),I_=function(){function e(e){this.chars=new Array(e)}return e.Generate=function(t,i,n,r,o){void 0===t&&(t=64),void 0===i&&(i=256),void 0===n&&(n=.1),void 0===r&&(r=.001),void 0===o&&(o=[]);for(var s,c,l=new e(t),u=0;u1e-6&&f.scaleAndAddToRef(1/(f.lengthSquared()*c),d)})),d.scaleInPlace(s),l.chars[e].addInPlace(d),l.chars[e].normalize()};for(u=o.length;u4;o=Math.floor(o/2))r.push(t.resampleAtTargetResolution(o).tokenize(i.chars));return r},e.prototype.distance=function(e){for(var t=0,i=0;i0&&(this._averageDistance=Math.max(this._averageDistance/this._descriptors.length,e.MIN_AVERAGE_DISTANCE))},e.MIN_AVERAGE_DISTANCE=1,e}(),L_=function(){function e(){this._maximumAllowableMatchCost=4,this._nameToDescribedTrajectory=new Map}return e.prototype.serialize=function(){var e={};return e.maximumAllowableMatchCost=this._maximumAllowableMatchCost,e.vector3Alphabet=this._vector3Alphabet.serialize(),e.levenshteinAlphabet=this._levenshteinAlphabet.serialize(),e.nameToDescribedTrajectory=[],this._nameToDescribedTrajectory.forEach((function(t,i){e.nameToDescribedTrajectory.push(i),e.nameToDescribedTrajectory.push(t.serialize())})),JSON.stringify(e)},e.Deserialize=function(t){var i=JSON.parse(t),n=new e;n._maximumAllowableMatchCost=i.maximumAllowableMatchCost,n._vector3Alphabet=I_.Deserialize(i.vector3Alphabet),n._levenshteinAlphabet=P_.Alphabet.Deserialize(i.levenshteinAlphabet);for(var r=0;r0&&this.onFeaturePointsAddedObservable.notifyObservers(r),n.length>0&&this.onFeaturePointsUpdatedObservable.notifyObservers(n)}}},t.prototype._init=function(){this._xrSessionManager.session.trySetFeaturePointCloudEnabled&&this._xrSessionManager.session.trySetFeaturePointCloudEnabled(!0)&&(this._enabled=!0)},t.Name=Ia.FEATURE_POINTS,t.Version=1,t}(ja);Da.AddWebXRFeature(H_.Name,(function(e){return function(){return new H_(e)}}),H_.Version);var X_=function(){function e(e,t,i,n,r){this.xrController=e,this.trackedMeshes=t,this._handMesh=i,this._rigMapping=n,this._defaultHandMesh=!1,this._transformNodeMapping=[],this.handPartsDefinition=this.generateHandPartsDefinition(e.inputSource.hand),this._scene=t[0].getScene(),this._handMesh&&this._rigMapping?this._defaultHandMesh=!1:r||this._generateDefaultHandMesh(),this.xrController.motionController&&(this.xrController.motionController.rootMesh?this.xrController.motionController.rootMesh.setEnabled(!1):this.xrController.motionController.onModelLoadedObservable.add((function(e){e.rootMesh&&e.rootMesh.setEnabled(!1)}))),this.xrController.onMotionControllerInitObservable.add((function(e){e.onModelLoadedObservable.add((function(e){e.rootMesh&&e.rootMesh.setEnabled(!1)})),e.rootMesh&&e.rootMesh.setEnabled(!1)}))}return e.prototype.generateHandPartsDefinition=function(e){var t;return(t={}).wrist=[e.WRIST],t.thumb=[e.THUMB_METACARPAL,e.THUMB_PHALANX_PROXIMAL,e.THUMB_PHALANX_DISTAL,e.THUMB_PHALANX_TIP],t.index=[e.INDEX_METACARPAL,e.INDEX_PHALANX_PROXIMAL,e.INDEX_PHALANX_INTERMEDIATE,e.INDEX_PHALANX_DISTAL,e.INDEX_PHALANX_TIP],t.middle=[e.MIDDLE_METACARPAL,e.MIDDLE_PHALANX_PROXIMAL,e.MIDDLE_PHALANX_INTERMEDIATE,e.MIDDLE_PHALANX_DISTAL,e.MIDDLE_PHALANX_TIP],t.ring=[e.RING_METACARPAL,e.RING_PHALANX_PROXIMAL,e.RING_PHALANX_INTERMEDIATE,e.RING_PHALANX_DISTAL,e.RING_PHALANX_TIP],t.little=[e.LITTLE_METACARPAL,e.LITTLE_PHALANX_PROXIMAL,e.LITTLE_PHALANX_INTERMEDIATE,e.LITTLE_PHALANX_DISTAL,e.LITTLE_PHALANX_TIP],t},e.prototype.updateFromXRFrame=function(e,t,i){var n=this;void 0===i&&(i=2);var r=this.xrController.inputSource.hand;r&&this.trackedMeshes.forEach((function(o,a){var s=r[a];if(s){var c=e.getJointPose(s,t);if(!c||!c.transform)return;var l=c.transform.position,u=c.transform.orientation;o.position.set(l.x,l.y,l.z),o.rotationQuaternion.set(u.x,u.y,u.z,u.w);var h=(c.radius||.008)*i;o.scaling.set(h,h,h),n._handMesh&&n._rigMapping&&n._rigMapping[a]&&(n._transformNodeMapping[a]=n._transformNodeMapping[a]||n._scene.getTransformNodeByName(n._rigMapping[a]),n._transformNodeMapping[a]&&(n._transformNodeMapping[a].position.copyFrom(o.position),n._transformNodeMapping[a].rotationQuaternion.copyFrom(o.rotationQuaternion),o.isVisible=!1)),o.getScene().useRightHandedSystem||(o.position.z*=-1,o.rotationQuaternion.z*=-1,o.rotationQuaternion.w*=-1)}}))},e.prototype.getHandPartMeshes=function(e){var t=this;return this.handPartsDefinition[e].map((function(e){return t.trackedMeshes[e]}))},e.prototype.dispose=function(){this.trackedMeshes.forEach((function(e){return e.dispose()})),this._defaultHandMesh&&this._handMesh&&this._handMesh.dispose()},e.prototype._generateDefaultHandMesh=function(){return Object(h.b)(this,void 0,void 0,(function(){var e,t,i,n,r,o,a,c;return Object(h.e)(this,(function(l){switch(l.label){case 0:return l.trys.push([0,3,,4]),e=\"right\"===this.xrController.inputSource.handedness?\"right\":\"left\",t=(\"right\"===e?\"r\":\"l\")+\"_hand_\"+(this._scene.useRightHandedSystem?\"r\":\"l\")+\"hs.glb\",[4,pr.ImportMeshAsync(\"\",\"https://assets.babylonjs.com/meshes/HandMeshes/\",t,this._scene)];case 1:return i=l.sent(),n={base:s.a.FromInts(116,63,203),fresnel:s.a.FromInts(149,102,229),fingerColor:s.a.FromInts(177,130,255),tipFresnel:s.a.FromInts(220,200,255)},[4,(r=new ql(\"leftHandShader\",this._scene,{emitComments:!1})).loadAsync(\"https://patrickryanms.github.io/BabylonJStextures/Demos/xrHandMesh/handsShader.json\")];case 2:if(l.sent(),r.build(!1),r.needDepthPrePass=!0,r.transparencyMode=xo.a.MATERIAL_ALPHABLEND,r.alphaMode=Se.a.ALPHA_COMBINE,(o={base:r.getBlockByName(\"baseColor\"),fresnel:r.getBlockByName(\"fresnelColor\"),fingerColor:r.getBlockByName(\"fingerColor\"),tipFresnel:r.getBlockByName(\"tipFresnelColor\")}).base.value=n.base,o.fresnel.value=n.fresnel,o.fingerColor.value=n.fingerColor,o.tipFresnel.value=n.tipFresnel,i.meshes[1].material=r,this._defaultHandMesh=!0,this._handMesh=i.meshes[0],this._rigMapping=[\"wrist_\",\"thumb_metacarpal_\",\"thumb_proxPhalanx_\",\"thumb_distPhalanx_\",\"thumb_tip_\",\"index_metacarpal_\",\"index_proxPhalanx_\",\"index_intPhalanx_\",\"index_distPhalanx_\",\"index_tip_\",\"middle_metacarpal_\",\"middle_proxPhalanx_\",\"middle_intPhalanx_\",\"middle_distPhalanx_\",\"middle_tip_\",\"ring_metacarpal_\",\"ring_proxPhalanx_\",\"ring_intPhalanx_\",\"ring_distPhalanx_\",\"ring_tip_\",\"little_metacarpal_\",\"little_proxPhalanx_\",\"little_intPhalanx_\",\"little_distPhalanx_\",\"little_tip_\"].map((function(t){return t+(\"right\"===e?\"R\":\"L\")})),!(a=this._scene.getTransformNodeByName(this._rigMapping[0])))throw new Error(\"could not find the wrist node\");return a.parent&&a.parent.rotate(J.a.Y,Math.PI),[3,4];case 3:return c=l.sent(),Ce.b.Error(\"error loading hand mesh\"),console.log(c),[3,4];case 4:return[2]}}))}))},e}(),Y_=function(e){function t(i,n){var r=e.call(this,i)||this;return r.options=n,r.onHandAddedObservable=new o.c,r.onHandRemovedObservable=new o.c,r._hands={},r._attachHand=function(e){var i,n,o,s,c,l,u,d,f,p;if(e.inputSource.hand&&!r._hands[e.uniqueId]){var _=e.inputSource.hand,m=[],g=(null===(i=r.options.jointMeshes)||void 0===i?void 0:i.sourceMesh)||xr.a.CreateSphere(\"jointParent\",{diameter:1});g.isVisible=!!(null===(n=r.options.jointMeshes)||void 0===n?void 0:n.keepOriginalVisible);for(var v=0;v<_.length;++v){var b=g.createInstance(e.uniqueId+\"-handJoint-\"+v);if(null===(o=r.options.jointMeshes)||void 0===o?void 0:o.onHandJointMeshGenerated){var y=r.options.jointMeshes.onHandJointMeshGenerated(b,v,e.uniqueId);y&&y!==b&&(b.dispose(),b=y)}if(b.isPickable=!1,null===(s=r.options.jointMeshes)||void 0===s?void 0:s.enablePhysics){var T=r.options.jointMeshes.physicsProps||{},E=void 0!==T.impostorType?T.impostorType:dc.a.SphereImpostor;b.physicsImpostor=new dc.a(b,E,Object(h.a)({mass:0},T))}b.rotationQuaternion=new a.b,(null===(c=r.options.jointMeshes)||void 0===c?void 0:c.invisible)&&(b.isVisible=!1),m.push(b)}var S=\"right\"===e.inputSource.handedness?\"right\":\"left\",A=(null===(l=r.options.jointMeshes)||void 0===l?void 0:l.handMeshes)&&(null===(u=r.options.jointMeshes)||void 0===u?void 0:u.handMeshes[S]),P=(null===(d=r.options.jointMeshes)||void 0===d?void 0:d.rigMapping)&&(null===(f=r.options.jointMeshes)||void 0===f?void 0:f.rigMapping[S]),C=new X_(e,m,A,P,null===(p=r.options.jointMeshes)||void 0===p?void 0:p.disableDefaultHandMesh);r._hands[e.uniqueId]={handObject:C,id:t._idCounter++},r.onHandAddedObservable.notifyObservers(C)}},r.xrNativeFeatureName=\"hand-tracking\",r}return Object(h.d)(t,e),t.prototype.isCompatible=function(){return\"undefined\"!=typeof XRHand},t.prototype.attach=function(){var t=this;return!!e.prototype.attach.call(this)&&(this.options.xrInput.controllers.forEach(this._attachHand),this._addNewAttachObserver(this.options.xrInput.onControllerAddedObservable,this._attachHand),this._addNewAttachObserver(this.options.xrInput.onControllerRemovedObservable,(function(e){t._detachHand(e.uniqueId)})),!0)},t.prototype.detach=function(){var t=this;return!!e.prototype.detach.call(this)&&(Object.keys(this._hands).forEach((function(e){t._detachHand(e)})),!0)},t.prototype.dispose=function(){e.prototype.dispose.call(this),this.onHandAddedObservable.clear()},t.prototype.getHandByControllerId=function(e){var t;return(null===(t=this._hands[e])||void 0===t?void 0:t.handObject)||null},t.prototype.getHandByHandedness=function(e){var t=this,i=Object.keys(this._hands).map((function(e){return t._hands[e].handObject.xrController.inputSource.handedness})).indexOf(e);return-1!==i?this._hands[i].handObject:null},t.prototype._onXRFrame=function(e){var t=this;Object.keys(this._hands).forEach((function(i){var n;t._hands[i].handObject.updateFromXRFrame(e,t._xrSessionManager.referenceSpace,null===(n=t.options.jointMeshes)||void 0===n?void 0:n.scaleFactor)}))},t.prototype._detachHand=function(e){this._hands[e]&&(this.onHandRemovedObservable.notifyObservers(this._hands[e].handObject),this._hands[e].handObject.dispose())},t._idCounter=0,t.Name=Ia.HAND_TRACKING,t.Version=1,t}(ja);Da.AddWebXRFeature(Y_.Name,(function(e,t){return function(){return new Y_(e,t)}}),Y_.Version,!1);var K_=function(e){function t(t,i,n){var r=e.call(this,t,Q_[\"left-right\"],i,n)||this;return r._mapping={defaultButton:{valueNodeName:\"VALUE\",unpressedNodeName:\"UNPRESSED\",pressedNodeName:\"PRESSED\"},defaultAxis:{valueNodeName:\"VALUE\",minNodeName:\"MIN\",maxNodeName:\"MAX\"},buttons:{\"xr-standard-trigger\":{rootNodeName:\"SELECT\",componentProperty:\"button\",states:[\"default\",\"touched\",\"pressed\"]},\"xr-standard-squeeze\":{rootNodeName:\"GRASP\",componentProperty:\"state\",states:[\"pressed\"]},\"xr-standard-touchpad\":{rootNodeName:\"TOUCHPAD_PRESS\",labelAnchorNodeName:\"squeeze-label\",touchPointNodeName:\"TOUCH\"},\"xr-standard-thumbstick\":{rootNodeName:\"THUMBSTICK_PRESS\",componentProperty:\"state\",states:[\"pressed\"]}},axes:{\"xr-standard-touchpad\":{\"x-axis\":{rootNodeName:\"TOUCHPAD_TOUCH_X\"},\"y-axis\":{rootNodeName:\"TOUCHPAD_TOUCH_Y\"}},\"xr-standard-thumbstick\":{\"x-axis\":{rootNodeName:\"THUMBSTICK_X\"},\"y-axis\":{rootNodeName:\"THUMBSTICK_Y\"}}}},r.profileId=\"microsoft-mixed-reality\",r}return Object(h.d)(t,e),t.prototype._getFilenameAndPath=function(){return{filename:\"left\"===this.handedness?t.MODEL_LEFT_FILENAME:t.MODEL_RIGHT_FILENAME,path:t.MODEL_BASE_URL+\"default/\"}},t.prototype._getModelLoadingConstraints=function(){var e=pr.IsPluginForExtensionAvailable(\".glb\");return e||m.a.Warn(\"glTF / glb loaded was not registered, using generic controller instead\"),e},t.prototype._processLoadedModel=function(e){var t=this;this.rootMesh&&(this.getComponentIds().forEach((function(e,i){if(!t.disableAnimation&&e&&t.rootMesh){var n=t._mapping.buttons[e],r=n.rootNodeName;if(!r)return void m.a.Log(\"Skipping unknown button at index: \"+i+\" with mapped name: \"+e);var o=t._getChildByName(t.rootMesh,r);if(!o)return void m.a.Warn(\"Missing button mesh with name: \"+r);if(n.valueMesh=t._getImmediateChildByName(o,t._mapping.defaultButton.valueNodeName),n.pressedMesh=t._getImmediateChildByName(o,t._mapping.defaultButton.pressedNodeName),n.unpressedMesh=t._getImmediateChildByName(o,t._mapping.defaultButton.unpressedNodeName),n.valueMesh&&n.pressedMesh&&n.unpressedMesh){var a=t.getComponent(e);a&&a.onButtonStateChangedObservable.add((function(e){t._lerpTransform(n,e.value)}),void 0,!0)}else m.a.Warn(\"Missing button submesh under mesh with name: \"+r)}})),this.getComponentIds().forEach((function(e,i){var n=t.getComponent(e);n.isAxes()&&[\"x-axis\",\"y-axis\"].forEach((function(i){if(t.rootMesh){var r=t._mapping.axes[e][i],o=t._getChildByName(t.rootMesh,r.rootNodeName);o?(r.valueMesh=t._getImmediateChildByName(o,t._mapping.defaultAxis.valueNodeName),r.minMesh=t._getImmediateChildByName(o,t._mapping.defaultAxis.minNodeName),r.maxMesh=t._getImmediateChildByName(o,t._mapping.defaultAxis.maxNodeName),r.valueMesh&&r.minMesh&&r.maxMesh?n&&n.onAxisValueChangedObservable.add((function(e){var n=\"x-axis\"===i?e.x:e.y;t._lerpTransform(r,n,!0)}),void 0,!0):m.a.Warn(\"Missing axis submesh under mesh with name: \"+r.rootNodeName)):m.a.Warn(\"Missing axis mesh with name: \"+r.rootNodeName)}}))})))},t.prototype._setRootMesh=function(e){var t;this.rootMesh=new be.a(this.profileId+\" \"+this.handedness,this.scene),this.rootMesh.isPickable=!1;for(var i=0;i1){for(r();-1!==n&&e._OperatorPriority[a()]>=e._OperatorPriority[h];)i.push(s());o(h),c++}else l+=u;c++}for(r();-1!==n;)\"(\"===a()?s():i.push(s());return i},e._OperatorPriority={\")\":0,\"(\":1,\"||\":2,\"&&\":3},e._Stack=[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"],e}(),u=function(e){function t(t,i){void 0===i&&(i=!1);var n=e.call(this)||this;return n.define=t,n.not=i,n}return Object(a.d)(t,e),t.prototype.isTrue=function(e){var t=void 0!==e[this.define];return this.not&&(t=!t),t},t}(l),h=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(a.d)(t,e),t.prototype.isTrue=function(e){return this.leftOperand.isTrue(e)||this.rightOperand.isTrue(e)},t}(l),d=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Object(a.d)(t,e),t.prototype.isTrue=function(e){return this.leftOperand.isTrue(e)&&this.rightOperand.isTrue(e)},t}(l),f=function(e){function t(t,i,n){var r=e.call(this)||this;return r.define=t,r.operand=i,r.testValue=n,r}return Object(a.d)(t,e),t.prototype.isTrue=function(e){var t=e[this.define];void 0===t&&(t=this.define);var i=!1,n=parseInt(t),r=parseInt(this.testValue);switch(this.operand){case\">\":i=n>r;break;case\"<\":i=n=\":i=n>=r;break;case\"==\":i=n===r}return i},t}(l),p=i(21),_=/defined\\s*?\\((.+?)\\)/g,m=/defined\\s*?\\[(.+?)\\]/g,g=function(){function e(){}return e.Process=function(e,t,i,n){var r=this;this._ProcessIncludes(e,t,(function(e){var o=r._ProcessShaderConversion(e,t,n);i(o)}))},e._ProcessPrecision=function(e,t){var i=t.shouldUseHighPrecisionShader;return-1===e.indexOf(\"precision highp float\")?e=i?\"precision highp float;\\n\"+e:\"precision mediump float;\\n\"+e:i||(e=e.replace(\"precision highp float\",\"precision mediump float\")),e},e._ExtractOperation=function(e){var t=/defined\\((.+)\\)/.exec(e);if(t&&t.length)return new u(t[1].trim(),\"!\"===e[0]);for(var i=\"\",n=0,r=0,o=[\"==\",\">=\",\"<=\",\"<\",\">\"];r-1));r++);if(-1===n)return new u(e);var a=e.substring(0,n).trim(),s=e.substring(n+i.length).trim();return new f(a,i,s)},e._BuildSubExpression=function(e){e=e.replace(_,\"defined[$1]\");for(var t=[],i=0,n=l.infixToPostfix(e);i=2){var o=t[t.length-1],a=t[t.length-2];t.length-=2;var s=\"&&\"==r?new d:new h;\"string\"==typeof o&&(o=o.replace(m,\"defined($1)\")),\"string\"==typeof a&&(a=a.replace(m,\"defined($1)\")),s.leftOperand=\"string\"==typeof a?this._ExtractOperation(a):a,s.rightOperand=\"string\"==typeof o?this._ExtractOperation(o):o,t.push(s)}}var c=t[t.length-1];return\"string\"==typeof c&&(c=c.replace(m,\"defined($1)\")),\"string\"==typeof c?this._ExtractOperation(c):c},e._BuildExpression=function(e,t){var i=new c,n=e.substring(0,t),r=e.substring(t);return r=r.substring(0,(r.indexOf(\"//\")+1||r.length+1)-1).trim(),i.testExpression=\"#ifdef\"===n?new u(r):\"#ifndef\"===n?new u(r,!0):this._BuildSubExpression(r),i},e._MoveCursorWithinIf=function(e,t,i){for(var n=e.currentLine;this._MoveCursor(e,i);){var o=(n=e.currentLine).substring(0,5).toLowerCase();if(\"#else\"===o){var a=new r;return t.children.push(a),void this._MoveCursor(e,a)}if(\"#elif\"===o){var s=this._BuildExpression(n,5);t.children.push(s),i=s}}},e._MoveCursor=function(e,t){for(;e.canRead;){e.lineIndex++;var i=e.currentLine,n=/(#ifdef)|(#else)|(#elif)|(#endif)|(#ifndef)|(#if)/.exec(i);if(n&&n.length){switch(n[0]){case\"#ifdef\":var o=new s;t.children.push(o);var a=this._BuildExpression(i,6);o.children.push(a),this._MoveCursorWithinIf(e,o,a);break;case\"#else\":case\"#elif\":return!0;case\"#endif\":return!1;case\"#ifndef\":o=new s;t.children.push(o);a=this._BuildExpression(i,7);o.children.push(a),this._MoveCursorWithinIf(e,o,a);break;case\"#if\":o=new s,a=this._BuildExpression(i,3);t.children.push(o),o.children.push(a),this._MoveCursorWithinIf(e,o,a)}}else{var c=new r;if(c.line=i,t.children.push(c),\"#\"===i[0]&&\"d\"===i[1]){var l=i.replace(\";\",\"\").split(\" \");c.additionalDefineKey=l[1],3===l.length&&(c.additionalDefineValue=l[2])}}}return!1},e._EvaluatePreProcessors=function(e,t,i){var n=new r,a=new o;return a.lineIndex=-1,a.lines=e.split(\"\\n\"),this._MoveCursor(a,n),n.process(t,i)},e._PreparePreProcessors=function(e){for(var t={},i=0,n=e.defines;i1?r[1]:\"\"}return t.GL_ES=\"true\",t.__VERSION__=e.version,t[e.platformName]=\"true\",t},e._ProcessShaderConversion=function(e,t,i){var n=this._ProcessPrecision(e,t);if(!t.processor)return n;if(-1!==n.indexOf(\"#version 3\"))return n.replace(\"#version 300 es\",\"\");var r=t.defines,o=this._PreparePreProcessors(t);return t.processor.preProcessor&&(n=t.processor.preProcessor(n,r,t.isFragment)),n=this._EvaluatePreProcessors(n,o,t),t.processor.postProcessor&&(n=t.processor.postProcessor(n,r,t.isFragment,i)),n},e._ProcessIncludes=function(t,i,n){for(var r=this,o=/#include<(.+)>(\\((.*)\\))*(\\[(.*)\\])*/g,a=o.exec(t),s=new String(t),c=!1;null!=a;){var l=a[1];if(-1!==l.indexOf(\"__decl__\")&&(l=l.replace(/__decl__/,\"\"),i.supportsUniformBuffers&&(l=(l=l.replace(/Vertex/,\"Ubo\")).replace(/Fragment/,\"Ubo\")),l+=\"Declaration\"),!i.includesShadersStore[l]){var u=i.shadersRepository+\"ShadersInclude/\"+l+\".fx\";return void e._FileToolsLoadFile(u,(function(e){i.includesShadersStore[l]=e,r._ProcessIncludes(s,i,n)}))}var h=i.includesShadersStore[l];if(a[2])for(var d=a[3].split(\",\"),f=0;f=0,a=o.exec(t)}c?this._ProcessIncludes(s.toString(),i,n):n(s)},e._FileToolsLoadFile=function(e,t,i,n,r,o){throw p.a.WarnImport(\"FileTools\")},e}()},function(e,t,i){\"use strict\";i(26).a.prototype._readTexturePixels=function(e,t,i,n,r,o){void 0===n&&(n=-1),void 0===r&&(r=0),void 0===o&&(o=null);var a=this._gl;if(!a)throw new Error(\"Engine does not have gl rendering context.\");if(!this._dummyFramebuffer){var s=a.createFramebuffer();if(!s)throw new Error(\"Unable to create dummy framebuffer\");this._dummyFramebuffer=s}a.bindFramebuffer(a.FRAMEBUFFER,this._dummyFramebuffer),n>-1?a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_CUBE_MAP_POSITIVE_X+n,e._webGLTexture,r):a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_2D,e._webGLTexture,r);var c=void 0!==e.type?this._getWebGLTextureType(e.type):a.UNSIGNED_BYTE;switch(c){case a.UNSIGNED_BYTE:o||(o=new Uint8Array(4*t*i)),c=a.UNSIGNED_BYTE;break;default:o||(o=new Float32Array(4*t*i)),c=a.FLOAT}return a.readPixels(0,0,t,i,a.RGBA,c,o),a.bindFramebuffer(a.FRAMEBUFFER,this._currentFramebuffer),o}},function(e,t,i){\"use strict\";var n=\"shadowsFragmentFunctions\",r=\"#ifdef SHADOWS\\n#ifndef SHADOWFLOAT\\n\\nfloat unpack(vec4 color)\\n{\\nconst vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);\\nreturn dot(color,bit_shift);\\n}\\n#endif\\nfloat computeFallOff(float value,vec2 clipSpace,float frustumEdgeFalloff)\\n{\\nfloat mask=smoothstep(1.0-frustumEdgeFalloff,1.00000012,clamp(dot(clipSpace,clipSpace),0.,1.));\\nreturn mix(value,1.0,mask);\\n}\\n#define inline\\nfloat computeShadowCube(vec3 lightPosition,samplerCube shadowSampler,float darkness,vec2 depthValues)\\n{\\nvec3 directionToLight=vPositionW-lightPosition;\\nfloat depth=length(directionToLight);\\ndepth=(depth+depthValues.x)/(depthValues.y);\\ndepth=clamp(depth,0.,1.0);\\ndirectionToLight=normalize(directionToLight);\\ndirectionToLight.y=-directionToLight.y;\\n#ifndef SHADOWFLOAT\\nfloat shadow=unpack(textureCube(shadowSampler,directionToLight));\\n#else\\nfloat shadow=textureCube(shadowSampler,directionToLight).x;\\n#endif\\nreturn depth>shadow ? darkness : 1.0;\\n}\\n#define inline\\nfloat computeShadowWithPoissonSamplingCube(vec3 lightPosition,samplerCube shadowSampler,float mapSize,float darkness,vec2 depthValues)\\n{\\nvec3 directionToLight=vPositionW-lightPosition;\\nfloat depth=length(directionToLight);\\ndepth=(depth+depthValues.x)/(depthValues.y);\\ndepth=clamp(depth,0.,1.0);\\ndirectionToLight=normalize(directionToLight);\\ndirectionToLight.y=-directionToLight.y;\\nfloat visibility=1.;\\nvec3 poissonDisk[4];\\npoissonDisk[0]=vec3(-1.0,1.0,-1.0);\\npoissonDisk[1]=vec3(1.0,-1.0,-1.0);\\npoissonDisk[2]=vec3(-1.0,-1.0,-1.0);\\npoissonDisk[3]=vec3(1.0,-1.0,1.0);\\n\\n#ifndef SHADOWFLOAT\\nif (unpack(textureCube(shadowSampler,directionToLight+poissonDisk[0]*mapSize))shadow ? computeFallOff(darkness,clipSpace.xy,frustumEdgeFalloff) : 1.;\\n}\\n#endif\\n#define inline\\nfloat computeShadow(vec4 vPositionFromLight,float depthMetric,sampler2D shadowSampler,float darkness,float frustumEdgeFalloff)\\n{\\nvec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\\nvec2 uv=0.5*clipSpace.xy+vec2(0.5);\\nif (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)\\n{\\nreturn 1.0;\\n}\\nelse\\n{\\nfloat shadowPixelDepth=clamp(depthMetric,0.,1.0);\\n#ifndef SHADOWFLOAT\\nfloat shadow=unpack(texture2D(shadowSampler,uv));\\n#else\\nfloat shadow=texture2D(shadowSampler,uv).x;\\n#endif\\nreturn shadowPixelDepth>shadow ? computeFallOff(darkness,clipSpace.xy,frustumEdgeFalloff) : 1.;\\n}\\n}\\n#define inline\\nfloat computeShadowWithPoissonSampling(vec4 vPositionFromLight,float depthMetric,sampler2D shadowSampler,float mapSize,float darkness,float frustumEdgeFalloff)\\n{\\nvec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\\nvec2 uv=0.5*clipSpace.xy+vec2(0.5);\\nif (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)\\n{\\nreturn 1.0;\\n}\\nelse\\n{\\nfloat shadowPixelDepth=clamp(depthMetric,0.,1.0);\\nfloat visibility=1.;\\nvec2 poissonDisk[4];\\npoissonDisk[0]=vec2(-0.94201624,-0.39906216);\\npoissonDisk[1]=vec2(0.94558609,-0.76890725);\\npoissonDisk[2]=vec2(-0.094184101,-0.92938870);\\npoissonDisk[3]=vec2(0.34495938,0.29387760);\\n\\n#ifndef SHADOWFLOAT\\nif (unpack(texture2D(shadowSampler,uv+poissonDisk[0]*mapSize))1.0 || uv.y<0. || uv.y>1.0)\\n{\\nreturn 1.0;\\n}\\nelse\\n{\\nfloat shadowPixelDepth=clamp(depthMetric,0.,1.0);\\n#ifndef SHADOWFLOAT\\nfloat shadowMapSample=unpack(texture2D(shadowSampler,uv));\\n#else\\nfloat shadowMapSample=texture2D(shadowSampler,uv).x;\\n#endif\\nfloat esm=1.0-clamp(exp(min(87.,depthScale*shadowPixelDepth))*shadowMapSample,0.,1.-darkness);\\nreturn computeFallOff(esm,clipSpace.xy,frustumEdgeFalloff);\\n}\\n}\\n#define inline\\nfloat computeShadowWithCloseESM(vec4 vPositionFromLight,float depthMetric,sampler2D shadowSampler,float darkness,float depthScale,float frustumEdgeFalloff)\\n{\\nvec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\\nvec2 uv=0.5*clipSpace.xy+vec2(0.5);\\nif (uv.x<0. || uv.x>1.0 || uv.y<0. || uv.y>1.0)\\n{\\nreturn 1.0;\\n}\\nelse\\n{\\nfloat shadowPixelDepth=clamp(depthMetric,0.,1.0);\\n#ifndef SHADOWFLOAT\\nfloat shadowMapSample=unpack(texture2D(shadowSampler,uv));\\n#else\\nfloat shadowMapSample=texture2D(shadowSampler,uv).x;\\n#endif\\nfloat esm=clamp(exp(min(87.,-depthScale*(shadowPixelDepth-shadowMapSample))),darkness,1.);\\nreturn computeFallOff(esm,clipSpace.xy,frustumEdgeFalloff);\\n}\\n}\\n#ifdef WEBGL2\\n#define GREATEST_LESS_THAN_ONE 0.99999994\\n\\n#define inline\\nfloat computeShadowWithCSMPCF1(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArrayShadow shadowSampler,float darkness,float frustumEdgeFalloff)\\n{\\nvec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\\nvec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\\nuvDepth.z=clamp(uvDepth.z,0.,GREATEST_LESS_THAN_ONE);\\nvec4 uvDepthLayer=vec4(uvDepth.x,uvDepth.y,layer,uvDepth.z);\\nfloat shadow=texture(shadowSampler,uvDepthLayer);\\nshadow=mix(darkness,1.,shadow);\\nreturn computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);\\n}\\n\\n\\n\\n#define inline\\nfloat computeShadowWithCSMPCF3(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArrayShadow shadowSampler,vec2 shadowMapSizeAndInverse,float darkness,float frustumEdgeFalloff)\\n{\\nvec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\\nvec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\\nuvDepth.z=clamp(uvDepth.z,0.,GREATEST_LESS_THAN_ONE);\\nvec2 uv=uvDepth.xy*shadowMapSizeAndInverse.x;\\nuv+=0.5;\\nvec2 st=fract(uv);\\nvec2 base_uv=floor(uv)-0.5;\\nbase_uv*=shadowMapSizeAndInverse.y;\\n\\n\\n\\n\\nvec2 uvw0=3.-2.*st;\\nvec2 uvw1=1.+2.*st;\\nvec2 u=vec2((2.-st.x)/uvw0.x-1.,st.x/uvw1.x+1.)*shadowMapSizeAndInverse.y;\\nvec2 v=vec2((2.-st.y)/uvw0.y-1.,st.y/uvw1.y+1.)*shadowMapSizeAndInverse.y;\\nfloat shadow=0.;\\nshadow+=uvw0.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[0]),layer,uvDepth.z));\\nshadow+=uvw1.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[0]),layer,uvDepth.z));\\nshadow+=uvw0.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[1]),layer,uvDepth.z));\\nshadow+=uvw1.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[1]),layer,uvDepth.z));\\nshadow=shadow/16.;\\nshadow=mix(darkness,1.,shadow);\\nreturn computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);\\n}\\n\\n\\n\\n#define inline\\nfloat computeShadowWithCSMPCF5(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArrayShadow shadowSampler,vec2 shadowMapSizeAndInverse,float darkness,float frustumEdgeFalloff)\\n{\\nvec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\\nvec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\\nuvDepth.z=clamp(uvDepth.z,0.,GREATEST_LESS_THAN_ONE);\\nvec2 uv=uvDepth.xy*shadowMapSizeAndInverse.x;\\nuv+=0.5;\\nvec2 st=fract(uv);\\nvec2 base_uv=floor(uv)-0.5;\\nbase_uv*=shadowMapSizeAndInverse.y;\\n\\n\\nvec2 uvw0=4.-3.*st;\\nvec2 uvw1=vec2(7.);\\nvec2 uvw2=1.+3.*st;\\nvec3 u=vec3((3.-2.*st.x)/uvw0.x-2.,(3.+st.x)/uvw1.x,st.x/uvw2.x+2.)*shadowMapSizeAndInverse.y;\\nvec3 v=vec3((3.-2.*st.y)/uvw0.y-2.,(3.+st.y)/uvw1.y,st.y/uvw2.y+2.)*shadowMapSizeAndInverse.y;\\nfloat shadow=0.;\\nshadow+=uvw0.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[0]),layer,uvDepth.z));\\nshadow+=uvw1.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[0]),layer,uvDepth.z));\\nshadow+=uvw2.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[2],v[0]),layer,uvDepth.z));\\nshadow+=uvw0.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[1]),layer,uvDepth.z));\\nshadow+=uvw1.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[1]),layer,uvDepth.z));\\nshadow+=uvw2.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[2],v[1]),layer,uvDepth.z));\\nshadow+=uvw0.x*uvw2.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[2]),layer,uvDepth.z));\\nshadow+=uvw1.x*uvw2.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[2]),layer,uvDepth.z));\\nshadow+=uvw2.x*uvw2.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[2],v[2]),layer,uvDepth.z));\\nshadow=shadow/144.;\\nshadow=mix(darkness,1.,shadow);\\nreturn computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);\\n}\\n\\n#define inline\\nfloat computeShadowWithPCF1(vec4 vPositionFromLight,float depthMetric,highp sampler2DShadow shadowSampler,float darkness,float frustumEdgeFalloff)\\n{\\nif (depthMetric>1.0 || depthMetric<0.0) {\\nreturn 1.0;\\n}\\nelse\\n{\\nvec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\\nvec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\\nfloat shadow=texture2D(shadowSampler,uvDepth);\\nshadow=mix(darkness,1.,shadow);\\nreturn computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);\\n}\\n}\\n\\n\\n\\n#define inline\\nfloat computeShadowWithPCF3(vec4 vPositionFromLight,float depthMetric,highp sampler2DShadow shadowSampler,vec2 shadowMapSizeAndInverse,float darkness,float frustumEdgeFalloff)\\n{\\nif (depthMetric>1.0 || depthMetric<0.0) {\\nreturn 1.0;\\n}\\nelse\\n{\\nvec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\\nvec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\\nvec2 uv=uvDepth.xy*shadowMapSizeAndInverse.x;\\nuv+=0.5;\\nvec2 st=fract(uv);\\nvec2 base_uv=floor(uv)-0.5;\\nbase_uv*=shadowMapSizeAndInverse.y;\\n\\n\\n\\n\\nvec2 uvw0=3.-2.*st;\\nvec2 uvw1=1.+2.*st;\\nvec2 u=vec2((2.-st.x)/uvw0.x-1.,st.x/uvw1.x+1.)*shadowMapSizeAndInverse.y;\\nvec2 v=vec2((2.-st.y)/uvw0.y-1.,st.y/uvw1.y+1.)*shadowMapSizeAndInverse.y;\\nfloat shadow=0.;\\nshadow+=uvw0.x*uvw0.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[0]),uvDepth.z));\\nshadow+=uvw1.x*uvw0.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[0]),uvDepth.z));\\nshadow+=uvw0.x*uvw1.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[1]),uvDepth.z));\\nshadow+=uvw1.x*uvw1.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[1]),uvDepth.z));\\nshadow=shadow/16.;\\nshadow=mix(darkness,1.,shadow);\\nreturn computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);\\n}\\n}\\n\\n\\n\\n#define inline\\nfloat computeShadowWithPCF5(vec4 vPositionFromLight,float depthMetric,highp sampler2DShadow shadowSampler,vec2 shadowMapSizeAndInverse,float darkness,float frustumEdgeFalloff)\\n{\\nif (depthMetric>1.0 || depthMetric<0.0) {\\nreturn 1.0;\\n}\\nelse\\n{\\nvec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\\nvec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\\nvec2 uv=uvDepth.xy*shadowMapSizeAndInverse.x;\\nuv+=0.5;\\nvec2 st=fract(uv);\\nvec2 base_uv=floor(uv)-0.5;\\nbase_uv*=shadowMapSizeAndInverse.y;\\n\\n\\nvec2 uvw0=4.-3.*st;\\nvec2 uvw1=vec2(7.);\\nvec2 uvw2=1.+3.*st;\\nvec3 u=vec3((3.-2.*st.x)/uvw0.x-2.,(3.+st.x)/uvw1.x,st.x/uvw2.x+2.)*shadowMapSizeAndInverse.y;\\nvec3 v=vec3((3.-2.*st.y)/uvw0.y-2.,(3.+st.y)/uvw1.y,st.y/uvw2.y+2.)*shadowMapSizeAndInverse.y;\\nfloat shadow=0.;\\nshadow+=uvw0.x*uvw0.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[0]),uvDepth.z));\\nshadow+=uvw1.x*uvw0.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[0]),uvDepth.z));\\nshadow+=uvw2.x*uvw0.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[2],v[0]),uvDepth.z));\\nshadow+=uvw0.x*uvw1.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[1]),uvDepth.z));\\nshadow+=uvw1.x*uvw1.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[1]),uvDepth.z));\\nshadow+=uvw2.x*uvw1.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[2],v[1]),uvDepth.z));\\nshadow+=uvw0.x*uvw2.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[2]),uvDepth.z));\\nshadow+=uvw1.x*uvw2.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[2]),uvDepth.z));\\nshadow+=uvw2.x*uvw2.y*texture2D(shadowSampler,vec3(base_uv.xy+vec2(u[2],v[2]),uvDepth.z));\\nshadow=shadow/144.;\\nshadow=mix(darkness,1.,shadow);\\nreturn computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);\\n}\\n}\\nconst vec3 PoissonSamplers32[64]=vec3[64](\\nvec3(0.06407013,0.05409927,0.),\\nvec3(0.7366577,0.5789394,0.),\\nvec3(-0.6270542,-0.5320278,0.),\\nvec3(-0.4096107,0.8411095,0.),\\nvec3(0.6849564,-0.4990818,0.),\\nvec3(-0.874181,-0.04579735,0.),\\nvec3(0.9989998,0.0009880066,0.),\\nvec3(-0.004920578,-0.9151649,0.),\\nvec3(0.1805763,0.9747483,0.),\\nvec3(-0.2138451,0.2635818,0.),\\nvec3(0.109845,0.3884785,0.),\\nvec3(0.06876755,-0.3581074,0.),\\nvec3(0.374073,-0.7661266,0.),\\nvec3(0.3079132,-0.1216763,0.),\\nvec3(-0.3794335,-0.8271583,0.),\\nvec3(-0.203878,-0.07715034,0.),\\nvec3(0.5912697,0.1469799,0.),\\nvec3(-0.88069,0.3031784,0.),\\nvec3(0.5040108,0.8283722,0.),\\nvec3(-0.5844124,0.5494877,0.),\\nvec3(0.6017799,-0.1726654,0.),\\nvec3(-0.5554981,0.1559997,0.),\\nvec3(-0.3016369,-0.3900928,0.),\\nvec3(-0.5550632,-0.1723762,0.),\\nvec3(0.925029,0.2995041,0.),\\nvec3(-0.2473137,0.5538505,0.),\\nvec3(0.9183037,-0.2862392,0.),\\nvec3(0.2469421,0.6718712,0.),\\nvec3(0.3916397,-0.4328209,0.),\\nvec3(-0.03576927,-0.6220032,0.),\\nvec3(-0.04661255,0.7995201,0.),\\nvec3(0.4402924,0.3640312,0.),\\nvec3(0.,0.,0.),\\nvec3(0.,0.,0.),\\nvec3(0.,0.,0.),\\nvec3(0.,0.,0.),\\nvec3(0.,0.,0.),\\nvec3(0.,0.,0.),\\nvec3(0.,0.,0.),\\nvec3(0.,0.,0.),\\nvec3(0.,0.,0.),\\nvec3(0.,0.,0.),\\nvec3(0.,0.,0.),\\nvec3(0.,0.,0.),\\nvec3(0.,0.,0.),\\nvec3(0.,0.,0.),\\nvec3(0.,0.,0.),\\nvec3(0.,0.,0.),\\nvec3(0.,0.,0.),\\nvec3(0.,0.,0.),\\nvec3(0.,0.,0.),\\nvec3(0.,0.,0.),\\nvec3(0.,0.,0.),\\nvec3(0.,0.,0.),\\nvec3(0.,0.,0.),\\nvec3(0.,0.,0.),\\nvec3(0.,0.,0.),\\nvec3(0.,0.,0.),\\nvec3(0.,0.,0.),\\nvec3(0.,0.,0.),\\nvec3(0.,0.,0.),\\nvec3(0.,0.,0.),\\nvec3(0.,0.,0.),\\nvec3(0.,0.,0.)\\n);\\nconst vec3 PoissonSamplers64[64]=vec3[64](\\nvec3(-0.613392,0.617481,0.),\\nvec3(0.170019,-0.040254,0.),\\nvec3(-0.299417,0.791925,0.),\\nvec3(0.645680,0.493210,0.),\\nvec3(-0.651784,0.717887,0.),\\nvec3(0.421003,0.027070,0.),\\nvec3(-0.817194,-0.271096,0.),\\nvec3(-0.705374,-0.668203,0.),\\nvec3(0.977050,-0.108615,0.),\\nvec3(0.063326,0.142369,0.),\\nvec3(0.203528,0.214331,0.),\\nvec3(-0.667531,0.326090,0.),\\nvec3(-0.098422,-0.295755,0.),\\nvec3(-0.885922,0.215369,0.),\\nvec3(0.566637,0.605213,0.),\\nvec3(0.039766,-0.396100,0.),\\nvec3(0.751946,0.453352,0.),\\nvec3(0.078707,-0.715323,0.),\\nvec3(-0.075838,-0.529344,0.),\\nvec3(0.724479,-0.580798,0.),\\nvec3(0.222999,-0.215125,0.),\\nvec3(-0.467574,-0.405438,0.),\\nvec3(-0.248268,-0.814753,0.),\\nvec3(0.354411,-0.887570,0.),\\nvec3(0.175817,0.382366,0.),\\nvec3(0.487472,-0.063082,0.),\\nvec3(-0.084078,0.898312,0.),\\nvec3(0.488876,-0.783441,0.),\\nvec3(0.470016,0.217933,0.),\\nvec3(-0.696890,-0.549791,0.),\\nvec3(-0.149693,0.605762,0.),\\nvec3(0.034211,0.979980,0.),\\nvec3(0.503098,-0.308878,0.),\\nvec3(-0.016205,-0.872921,0.),\\nvec3(0.385784,-0.393902,0.),\\nvec3(-0.146886,-0.859249,0.),\\nvec3(0.643361,0.164098,0.),\\nvec3(0.634388,-0.049471,0.),\\nvec3(-0.688894,0.007843,0.),\\nvec3(0.464034,-0.188818,0.),\\nvec3(-0.440840,0.137486,0.),\\nvec3(0.364483,0.511704,0.),\\nvec3(0.034028,0.325968,0.),\\nvec3(0.099094,-0.308023,0.),\\nvec3(0.693960,-0.366253,0.),\\nvec3(0.678884,-0.204688,0.),\\nvec3(0.001801,0.780328,0.),\\nvec3(0.145177,-0.898984,0.),\\nvec3(0.062655,-0.611866,0.),\\nvec3(0.315226,-0.604297,0.),\\nvec3(-0.780145,0.486251,0.),\\nvec3(-0.371868,0.882138,0.),\\nvec3(0.200476,0.494430,0.),\\nvec3(-0.494552,-0.711051,0.),\\nvec3(0.612476,0.705252,0.),\\nvec3(-0.578845,-0.768792,0.),\\nvec3(-0.772454,-0.090976,0.),\\nvec3(0.504440,0.372295,0.),\\nvec3(0.155736,0.065157,0.),\\nvec3(0.391522,0.849605,0.),\\nvec3(-0.620106,-0.328104,0.),\\nvec3(0.789239,-0.419965,0.),\\nvec3(-0.545396,0.538133,0.),\\nvec3(-0.178564,-0.596057,0.)\\n);\\n\\n\\n\\n\\n\\n#define inline\\nfloat computeShadowWithCSMPCSS(float layer,vec4 vPositionFromLight,float depthMetric,highp sampler2DArray depthSampler,highp sampler2DArrayShadow shadowSampler,float shadowMapSizeInverse,float lightSizeUV,float darkness,float frustumEdgeFalloff,int searchTapCount,int pcfTapCount,vec3[64] poissonSamplers,vec2 lightSizeUVCorrection,float depthCorrection,float penumbraDarkness)\\n{\\nvec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\\nvec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\\nuvDepth.z=clamp(uvDepth.z,0.,GREATEST_LESS_THAN_ONE);\\nvec4 uvDepthLayer=vec4(uvDepth.x,uvDepth.y,layer,uvDepth.z);\\nfloat blockerDepth=0.0;\\nfloat sumBlockerDepth=0.0;\\nfloat numBlocker=0.0;\\nfor (int i=0; i1.0 || depthMetric<0.0) {\\nreturn 1.0;\\n}\\nelse\\n{\\nvec3 clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\\nvec3 uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\\nfloat blockerDepth=0.0;\\nfloat sumBlockerDepth=0.0;\\nfloat numBlocker=0.0;\\nfor (int i=0; icurrRayHeight)\\n{\\nfloat delta1=currSampledHeight-currRayHeight;\\nfloat delta2=(currRayHeight+stepSize)-lastSampledHeight;\\nfloat ratio=delta1/(delta1+delta2);\\nvCurrOffset=(ratio)* vLastOffset+(1.0-ratio)*vCurrOffset;\\n\\nbreak;\\n}\\nelse\\n{\\ncurrRayHeight-=stepSize;\\nvLastOffset=vCurrOffset;\\nvCurrOffset+=stepSize*vMaxOffset;\\nlastSampledHeight=currSampledHeight;\\n}\\n}\\nreturn vCurrOffset;\\n}\\nvec2 parallaxOffset(vec3 viewDir,float heightScale)\\n{\\n\\nfloat height=texture2D(bumpSampler,vBumpUV).w;\\nvec2 texCoordOffset=heightScale*viewDir.xy*height;\\nreturn -texCoordOffset;\\n}\\n#endif\";i(5).a.IncludesShadersStore[n]=r},function(e,t,i){\"use strict\";var n=\"vec2 uvOffset=vec2(0.0,0.0);\\n#if defined(BUMP) || defined(PARALLAX) || defined(DETAIL)\\n#ifdef NORMALXYSCALE\\nfloat normalScale=1.0;\\n#elif defined(BUMP)\\nfloat normalScale=vBumpInfos.y;\\n#else\\nfloat normalScale=1.0;\\n#endif\\n#if defined(TANGENT) && defined(NORMAL)\\nmat3 TBN=vTBN;\\n#elif defined(BUMP)\\nmat3 TBN=cotangent_frame(normalW*normalScale,vPositionW,vBumpUV);\\n#else\\nmat3 TBN=cotangent_frame(normalW*normalScale,vPositionW,vDetailUV,vec2(1.,1.));\\n#endif\\n#elif defined(ANISOTROPIC)\\n#if defined(TANGENT) && defined(NORMAL)\\nmat3 TBN=vTBN;\\n#else\\nmat3 TBN=cotangent_frame(normalW,vPositionW,vMainUV1,vec2(1.,1.));\\n#endif\\n#endif\\n#ifdef PARALLAX\\nmat3 invTBN=transposeMat3(TBN);\\n#ifdef PARALLAXOCCLUSION\\nuvOffset=parallaxOcclusion(invTBN*-viewDirectionW,invTBN*normalW,vBumpUV,vBumpInfos.z);\\n#else\\nuvOffset=parallaxOffset(invTBN*viewDirectionW,vBumpInfos.z);\\n#endif\\n#endif\\n#ifdef DETAIL\\nvec4 detailColor=texture2D(detailSampler,vDetailUV+uvOffset);\\nvec2 detailNormalRG=detailColor.wy*2.0-1.0;\\nfloat detailNormalB=sqrt(1.-saturate(dot(detailNormalRG,detailNormalRG)));\\nvec3 detailNormal=vec3(detailNormalRG,detailNormalB);\\n#endif\\n#ifdef BUMP\\n#ifdef OBJECTSPACE_NORMALMAP\\nnormalW=normalize(texture2D(bumpSampler,vBumpUV).xyz*2.0-1.0);\\nnormalW=normalize(mat3(normalMatrix)*normalW);\\n#elif !defined(DETAIL)\\nnormalW=perturbNormal(TBN,vBumpUV+uvOffset);\\n#else\\nvec3 bumpNormal=texture2D(bumpSampler,vBumpUV+uvOffset).xyz*2.0-1.0;\\n\\n#if DETAIL_NORMALBLENDMETHOD == 0\\ndetailNormal.xy*=vDetailInfos.z;\\nvec3 blendedNormal=normalize(vec3(bumpNormal.xy+detailNormal.xy,bumpNormal.z*detailNormal.z));\\n#elif DETAIL_NORMALBLENDMETHOD == 1\\ndetailNormal.xy*=vDetailInfos.z;\\nbumpNormal+=vec3(0.0,0.0,1.0);\\ndetailNormal*=vec3(-1.0,-1.0,1.0);\\nvec3 blendedNormal=bumpNormal*dot(bumpNormal,detailNormal)/bumpNormal.z-detailNormal;\\n#endif\\nnormalW=perturbNormalBase(TBN,blendedNormal,vBumpInfos.y);\\n#endif\\n#elif defined(DETAIL)\\ndetailNormal.xy*=vDetailInfos.z;\\nnormalW=perturbNormalBase(TBN,detailNormal,vDetailInfos.z);\\n#endif\";i(5).a.IncludesShadersStore.bumpFragment=n},function(e,t,i){\"use strict\";var n=\"lightFragment\",r=\"#ifdef LIGHT{X}\\n#if defined(SHADOWONLY) || defined(LIGHTMAP) && defined(LIGHTMAPEXCLUDED{X}) && defined(LIGHTMAPNOSPECULAR{X})\\n\\n#else\\n#ifdef PBR\\n\\n#ifdef SPOTLIGHT{X}\\npreInfo=computePointAndSpotPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);\\n#elif defined(POINTLIGHT{X})\\npreInfo=computePointAndSpotPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);\\n#elif defined(HEMILIGHT{X})\\npreInfo=computeHemisphericPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);\\n#elif defined(DIRLIGHT{X})\\npreInfo=computeDirectionalPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);\\n#endif\\npreInfo.NdotV=NdotV;\\n\\n#ifdef SPOTLIGHT{X}\\n#ifdef LIGHT_FALLOFF_GLTF{X}\\npreInfo.attenuation=computeDistanceLightFalloff_GLTF(preInfo.lightDistanceSquared,light{X}.vLightFalloff.y);\\npreInfo.attenuation*=computeDirectionalLightFalloff_GLTF(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightFalloff.z,light{X}.vLightFalloff.w);\\n#elif defined(LIGHT_FALLOFF_PHYSICAL{X})\\npreInfo.attenuation=computeDistanceLightFalloff_Physical(preInfo.lightDistanceSquared);\\npreInfo.attenuation*=computeDirectionalLightFalloff_Physical(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w);\\n#elif defined(LIGHT_FALLOFF_STANDARD{X})\\npreInfo.attenuation=computeDistanceLightFalloff_Standard(preInfo.lightOffset,light{X}.vLightFalloff.x);\\npreInfo.attenuation*=computeDirectionalLightFalloff_Standard(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w,light{X}.vLightData.w);\\n#else\\npreInfo.attenuation=computeDistanceLightFalloff(preInfo.lightOffset,preInfo.lightDistanceSquared,light{X}.vLightFalloff.x,light{X}.vLightFalloff.y);\\npreInfo.attenuation*=computeDirectionalLightFalloff(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w,light{X}.vLightData.w,light{X}.vLightFalloff.z,light{X}.vLightFalloff.w);\\n#endif\\n#elif defined(POINTLIGHT{X})\\n#ifdef LIGHT_FALLOFF_GLTF{X}\\npreInfo.attenuation=computeDistanceLightFalloff_GLTF(preInfo.lightDistanceSquared,light{X}.vLightFalloff.y);\\n#elif defined(LIGHT_FALLOFF_PHYSICAL{X})\\npreInfo.attenuation=computeDistanceLightFalloff_Physical(preInfo.lightDistanceSquared);\\n#elif defined(LIGHT_FALLOFF_STANDARD{X})\\npreInfo.attenuation=computeDistanceLightFalloff_Standard(preInfo.lightOffset,light{X}.vLightFalloff.x);\\n#else\\npreInfo.attenuation=computeDistanceLightFalloff(preInfo.lightOffset,preInfo.lightDistanceSquared,light{X}.vLightFalloff.x,light{X}.vLightFalloff.y);\\n#endif\\n#else\\npreInfo.attenuation=1.0;\\n#endif\\n\\n\\n#ifdef HEMILIGHT{X}\\npreInfo.roughness=roughness;\\n#else\\npreInfo.roughness=adjustRoughnessFromLightProperties(roughness,light{X}.vLightSpecular.a,preInfo.lightDistance);\\n#endif\\n\\n#ifdef HEMILIGHT{X}\\ninfo.diffuse=computeHemisphericDiffuseLighting(preInfo,light{X}.vLightDiffuse.rgb,light{X}.vLightGround);\\n#elif defined(SS_TRANSLUCENCY)\\ninfo.diffuse=computeDiffuseAndTransmittedLighting(preInfo,light{X}.vLightDiffuse.rgb,subSurfaceOut.transmittance);\\n#else\\ninfo.diffuse=computeDiffuseLighting(preInfo,light{X}.vLightDiffuse.rgb);\\n#endif\\n\\n#ifdef SPECULARTERM\\n#ifdef ANISOTROPIC\\ninfo.specular=computeAnisotropicSpecularLighting(preInfo,viewDirectionW,normalW,anisotropicOut.anisotropicTangent,anisotropicOut.anisotropicBitangent,anisotropicOut.anisotropy,clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,AARoughnessFactors.x,light{X}.vLightDiffuse.rgb);\\n#else\\ninfo.specular=computeSpecularLighting(preInfo,normalW,clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,AARoughnessFactors.x,light{X}.vLightDiffuse.rgb);\\n#endif\\n#endif\\n\\n#ifdef SHEEN\\n#ifdef SHEEN_LINKWITHALBEDO\\n\\npreInfo.roughness=sheenOut.sheenIntensity;\\n#else\\n#ifdef HEMILIGHT{X}\\npreInfo.roughness=sheenOut.sheenRoughness;\\n#else\\npreInfo.roughness=adjustRoughnessFromLightProperties(sheenOut.sheenRoughness,light{X}.vLightSpecular.a,preInfo.lightDistance);\\n#endif\\n#endif\\ninfo.sheen=computeSheenLighting(preInfo,normalW,sheenOut.sheenColor,specularEnvironmentR90,AARoughnessFactors.x,light{X}.vLightDiffuse.rgb);\\n#endif\\n\\n#ifdef CLEARCOAT\\n\\n#ifdef HEMILIGHT{X}\\npreInfo.roughness=clearcoatOut.clearCoatRoughness;\\n#else\\npreInfo.roughness=adjustRoughnessFromLightProperties(clearcoatOut.clearCoatRoughness,light{X}.vLightSpecular.a,preInfo.lightDistance);\\n#endif\\ninfo.clearCoat=computeClearCoatLighting(preInfo,clearcoatOut.clearCoatNormalW,clearcoatOut.clearCoatAARoughnessFactors.x,clearcoatOut.clearCoatIntensity,light{X}.vLightDiffuse.rgb);\\n#ifdef CLEARCOAT_TINT\\n\\nabsorption=computeClearCoatLightingAbsorption(clearcoatOut.clearCoatNdotVRefract,preInfo.L,clearcoatOut.clearCoatNormalW,clearcoatOut.clearCoatColor,clearcoatOut.clearCoatThickness,clearcoatOut.clearCoatIntensity);\\ninfo.diffuse*=absorption;\\n#ifdef SPECULARTERM\\ninfo.specular*=absorption;\\n#endif\\n#endif\\n\\ninfo.diffuse*=info.clearCoat.w;\\n#ifdef SPECULARTERM\\ninfo.specular*=info.clearCoat.w;\\n#endif\\n#ifdef SHEEN\\ninfo.sheen*=info.clearCoat.w;\\n#endif\\n#endif\\n#else\\n#ifdef SPOTLIGHT{X}\\ninfo=computeSpotLighting(viewDirectionW,normalW,light{X}.vLightData,light{X}.vLightDirection,light{X}.vLightDiffuse.rgb,light{X}.vLightSpecular.rgb,light{X}.vLightDiffuse.a,glossiness);\\n#elif defined(HEMILIGHT{X})\\ninfo=computeHemisphericLighting(viewDirectionW,normalW,light{X}.vLightData,light{X}.vLightDiffuse.rgb,light{X}.vLightSpecular.rgb,light{X}.vLightGround,glossiness);\\n#elif defined(POINTLIGHT{X}) || defined(DIRLIGHT{X})\\ninfo=computeLighting(viewDirectionW,normalW,light{X}.vLightData,light{X}.vLightDiffuse.rgb,light{X}.vLightSpecular.rgb,light{X}.vLightDiffuse.a,glossiness);\\n#endif\\n#endif\\n#ifdef PROJECTEDLIGHTTEXTURE{X}\\ninfo.diffuse*=computeProjectionTextureDiffuseLighting(projectionLightSampler{X},textureProjectionMatrix{X});\\n#endif\\n#endif\\n#ifdef SHADOW{X}\\n#ifdef SHADOWCSM{X}\\nfor (int i=0; i=0.) {\\nindex{X}=i;\\nbreak;\\n}\\n}\\n#ifdef SHADOWCSMUSESHADOWMAXZ{X}\\nif (index{X}>=0)\\n#endif\\n{\\n#if defined(SHADOWPCF{X})\\n#if defined(SHADOWLOWQUALITY{X})\\nshadow=computeShadowWithCSMPCF1(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\\n#elif defined(SHADOWMEDIUMQUALITY{X})\\nshadow=computeShadowWithCSMPCF3(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowSampler{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\\n#else\\nshadow=computeShadowWithCSMPCF5(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowSampler{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\\n#endif\\n#elif defined(SHADOWPCSS{X})\\n#if defined(SHADOWLOWQUALITY{X})\\nshadow=computeShadowWithCSMPCSS16(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});\\n#elif defined(SHADOWMEDIUMQUALITY{X})\\nshadow=computeShadowWithCSMPCSS32(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});\\n#else\\nshadow=computeShadowWithCSMPCSS64(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});\\n#endif\\n#else\\nshadow=computeShadowCSM(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\\n#endif\\n#ifdef SHADOWCSMDEBUG{X}\\nshadowDebug{X}=vec3(shadow)*vCascadeColorsMultiplier{X}[index{X}];\\n#endif\\n#ifndef SHADOWCSMNOBLEND{X}\\nfloat frustumLength=frustumLengths{X}[index{X}];\\nfloat diffRatio=clamp(diff{X}/frustumLength,0.,1.)*cascadeBlendFactor{X};\\nif (index{X}<(SHADOWCSMNUM_CASCADES{X}-1) && diffRatio<1.)\\n{\\nindex{X}+=1;\\nfloat nextShadow=0.;\\n#if defined(SHADOWPCF{X})\\n#if defined(SHADOWLOWQUALITY{X})\\nnextShadow=computeShadowWithCSMPCF1(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\\n#elif defined(SHADOWMEDIUMQUALITY{X})\\nnextShadow=computeShadowWithCSMPCF3(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowSampler{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\\n#else\\nnextShadow=computeShadowWithCSMPCF5(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowSampler{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\\n#endif\\n#elif defined(SHADOWPCSS{X})\\n#if defined(SHADOWLOWQUALITY{X})\\nnextShadow=computeShadowWithCSMPCSS16(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});\\n#elif defined(SHADOWMEDIUMQUALITY{X})\\nnextShadow=computeShadowWithCSMPCSS32(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});\\n#else\\nnextShadow=computeShadowWithCSMPCSS64(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});\\n#endif\\n#else\\nnextShadow=computeShadowCSM(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\\n#endif\\nshadow=mix(nextShadow,shadow,diffRatio);\\n#ifdef SHADOWCSMDEBUG{X}\\nshadowDebug{X}=mix(vec3(nextShadow)*vCascadeColorsMultiplier{X}[index{X}],shadowDebug{X},diffRatio);\\n#endif\\n}\\n#endif\\n}\\n#elif defined(SHADOWCLOSEESM{X})\\n#if defined(SHADOWCUBE{X})\\nshadow=computeShadowWithCloseESMCube(light{X}.vLightData.xyz,shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.depthValues);\\n#else\\nshadow=computeShadowWithCloseESM(vPositionFromLight{X},vDepthMetric{X},shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.shadowsInfo.w);\\n#endif\\n#elif defined(SHADOWESM{X})\\n#if defined(SHADOWCUBE{X})\\nshadow=computeShadowWithESMCube(light{X}.vLightData.xyz,shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.depthValues);\\n#else\\nshadow=computeShadowWithESM(vPositionFromLight{X},vDepthMetric{X},shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.shadowsInfo.w);\\n#endif\\n#elif defined(SHADOWPOISSON{X})\\n#if defined(SHADOWCUBE{X})\\nshadow=computeShadowWithPoissonSamplingCube(light{X}.vLightData.xyz,shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.x,light{X}.depthValues);\\n#else\\nshadow=computeShadowWithPoissonSampling(vPositionFromLight{X},vDepthMetric{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\\n#endif\\n#elif defined(SHADOWPCF{X})\\n#if defined(SHADOWLOWQUALITY{X})\\nshadow=computeShadowWithPCF1(vPositionFromLight{X},vDepthMetric{X},shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\\n#elif defined(SHADOWMEDIUMQUALITY{X})\\nshadow=computeShadowWithPCF3(vPositionFromLight{X},vDepthMetric{X},shadowSampler{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\\n#else\\nshadow=computeShadowWithPCF5(vPositionFromLight{X},vDepthMetric{X},shadowSampler{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\\n#endif\\n#elif defined(SHADOWPCSS{X})\\n#if defined(SHADOWLOWQUALITY{X})\\nshadow=computeShadowWithPCSS16(vPositionFromLight{X},vDepthMetric{X},depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\\n#elif defined(SHADOWMEDIUMQUALITY{X})\\nshadow=computeShadowWithPCSS32(vPositionFromLight{X},vDepthMetric{X},depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\\n#else\\nshadow=computeShadowWithPCSS64(vPositionFromLight{X},vDepthMetric{X},depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\\n#endif\\n#else\\n#if defined(SHADOWCUBE{X})\\nshadow=computeShadowCube(light{X}.vLightData.xyz,shadowSampler{X},light{X}.shadowsInfo.x,light{X}.depthValues);\\n#else\\nshadow=computeShadow(vPositionFromLight{X},vDepthMetric{X},shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\\n#endif\\n#endif\\n#ifdef SHADOWONLY\\n#ifndef SHADOWINUSE\\n#define SHADOWINUSE\\n#endif\\nglobalShadow+=shadow;\\nshadowLightCount+=1.0;\\n#endif\\n#else\\nshadow=1.;\\n#endif\\n#ifndef SHADOWONLY\\n#ifdef CUSTOMUSERLIGHTING\\ndiffuseBase+=computeCustomDiffuseLighting(info,diffuseBase,shadow);\\n#ifdef SPECULARTERM\\nspecularBase+=computeCustomSpecularLighting(info,specularBase,shadow);\\n#endif\\n#elif defined(LIGHTMAP) && defined(LIGHTMAPEXCLUDED{X})\\ndiffuseBase+=lightmapColor.rgb*shadow;\\n#ifdef SPECULARTERM\\n#ifndef LIGHTMAPNOSPECULAR{X}\\nspecularBase+=info.specular*shadow*lightmapColor.rgb;\\n#endif\\n#endif\\n#ifdef CLEARCOAT\\n#ifndef LIGHTMAPNOSPECULAR{X}\\nclearCoatBase+=info.clearCoat.rgb*shadow*lightmapColor.rgb;\\n#endif\\n#endif\\n#ifdef SHEEN\\n#ifndef LIGHTMAPNOSPECULAR{X}\\nsheenBase+=info.sheen.rgb*shadow;\\n#endif\\n#endif\\n#else\\n#ifdef SHADOWCSMDEBUG{X}\\ndiffuseBase+=info.diffuse*shadowDebug{X};\\n#else\\ndiffuseBase+=info.diffuse*shadow;\\n#endif\\n#ifdef SPECULARTERM\\nspecularBase+=info.specular*shadow;\\n#endif\\n#ifdef CLEARCOAT\\nclearCoatBase+=info.clearCoat.rgb*shadow;\\n#endif\\n#ifdef SHEEN\\nsheenBase+=info.sheen.rgb*shadow;\\n#endif\\n#endif\\n#endif\\n#endif\";i(5).a.IncludesShadersStore[n]=r},function(e,t,i){\"use strict\";var n=\"#ifdef FOG\\nfloat fog=CalcFogFactor();\\ncolor.rgb=fog*color.rgb+(1.0-fog)*vFogColor;\\n#endif\";i(5).a.IncludesShadersStore.fogFragment=n},function(e,t,i){\"use strict\";var n=\"fogVertexDeclaration\",r=\"#ifdef FOG\\nvarying vec3 vFogDistance;\\n#endif\";i(5).a.IncludesShadersStore[n]=r},function(e,t,i){\"use strict\";var n=\"shadowsVertex\",r=\"#ifdef SHADOWS\\n#if defined(SHADOWCSM{X})\\nvPositionFromCamera{X}=view*worldPos;\\nfor (int i=0; i1)for(var c=0;c=e||-1!==i.indexOf(\"file:\")?-1:Math.pow(2,r)*t}},e}()},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return n}));var n=function(){function e(){this._isDepthTestDirty=!1,this._isDepthMaskDirty=!1,this._isDepthFuncDirty=!1,this._isCullFaceDirty=!1,this._isCullDirty=!1,this._isZOffsetDirty=!1,this._isFrontFaceDirty=!1,this.reset()}return Object.defineProperty(e.prototype,\"isDirty\",{get:function(){return this._isDepthFuncDirty||this._isDepthTestDirty||this._isDepthMaskDirty||this._isCullFaceDirty||this._isCullDirty||this._isZOffsetDirty||this._isFrontFaceDirty},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"zOffset\",{get:function(){return this._zOffset},set:function(e){this._zOffset!==e&&(this._zOffset=e,this._isZOffsetDirty=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"cullFace\",{get:function(){return this._cullFace},set:function(e){this._cullFace!==e&&(this._cullFace=e,this._isCullFaceDirty=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"cull\",{get:function(){return this._cull},set:function(e){this._cull!==e&&(this._cull=e,this._isCullDirty=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"depthFunc\",{get:function(){return this._depthFunc},set:function(e){this._depthFunc!==e&&(this._depthFunc=e,this._isDepthFuncDirty=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"depthMask\",{get:function(){return this._depthMask},set:function(e){this._depthMask!==e&&(this._depthMask=e,this._isDepthMaskDirty=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"depthTest\",{get:function(){return this._depthTest},set:function(e){this._depthTest!==e&&(this._depthTest=e,this._isDepthTestDirty=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"frontFace\",{get:function(){return this._frontFace},set:function(e){this._frontFace!==e&&(this._frontFace=e,this._isFrontFaceDirty=!0)},enumerable:!1,configurable:!0}),e.prototype.reset=function(){this._depthMask=!0,this._depthTest=!0,this._depthFunc=null,this._cullFace=null,this._cull=null,this._zOffset=0,this._frontFace=null,this._isDepthTestDirty=!0,this._isDepthMaskDirty=!0,this._isDepthFuncDirty=!1,this._isCullFaceDirty=!1,this._isCullDirty=!1,this._isZOffsetDirty=!1,this._isFrontFaceDirty=!1},e.prototype.apply=function(e){this.isDirty&&(this._isCullDirty&&(this.cull?e.enable(e.CULL_FACE):e.disable(e.CULL_FACE),this._isCullDirty=!1),this._isCullFaceDirty&&(e.cullFace(this.cullFace),this._isCullFaceDirty=!1),this._isDepthMaskDirty&&(e.depthMask(this.depthMask),this._isDepthMaskDirty=!1),this._isDepthTestDirty&&(this.depthTest?e.enable(e.DEPTH_TEST):e.disable(e.DEPTH_TEST),this._isDepthTestDirty=!1),this._isDepthFuncDirty&&(e.depthFunc(this.depthFunc),this._isDepthFuncDirty=!1),this._isZOffsetDirty&&(this.zOffset?(e.enable(e.POLYGON_OFFSET_FILL),e.polygonOffset(this.zOffset,0)):e.disable(e.POLYGON_OFFSET_FILL),this._isZOffsetDirty=!1),this._isFrontFaceDirty&&(e.frontFace(this.frontFace),this._isFrontFaceDirty=!1))},e}()},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return r}));var n=i(2),r=function(){function e(){this._isStencilTestDirty=!1,this._isStencilMaskDirty=!1,this._isStencilFuncDirty=!1,this._isStencilOpDirty=!1,this.reset()}return Object.defineProperty(e.prototype,\"isDirty\",{get:function(){return this._isStencilTestDirty||this._isStencilMaskDirty||this._isStencilFuncDirty||this._isStencilOpDirty},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"stencilFunc\",{get:function(){return this._stencilFunc},set:function(e){this._stencilFunc!==e&&(this._stencilFunc=e,this._isStencilFuncDirty=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"stencilFuncRef\",{get:function(){return this._stencilFuncRef},set:function(e){this._stencilFuncRef!==e&&(this._stencilFuncRef=e,this._isStencilFuncDirty=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"stencilFuncMask\",{get:function(){return this._stencilFuncMask},set:function(e){this._stencilFuncMask!==e&&(this._stencilFuncMask=e,this._isStencilFuncDirty=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"stencilOpStencilFail\",{get:function(){return this._stencilOpStencilFail},set:function(e){this._stencilOpStencilFail!==e&&(this._stencilOpStencilFail=e,this._isStencilOpDirty=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"stencilOpDepthFail\",{get:function(){return this._stencilOpDepthFail},set:function(e){this._stencilOpDepthFail!==e&&(this._stencilOpDepthFail=e,this._isStencilOpDirty=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"stencilOpStencilDepthPass\",{get:function(){return this._stencilOpStencilDepthPass},set:function(e){this._stencilOpStencilDepthPass!==e&&(this._stencilOpStencilDepthPass=e,this._isStencilOpDirty=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"stencilMask\",{get:function(){return this._stencilMask},set:function(e){this._stencilMask!==e&&(this._stencilMask=e,this._isStencilMaskDirty=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"stencilTest\",{get:function(){return this._stencilTest},set:function(e){this._stencilTest!==e&&(this._stencilTest=e,this._isStencilTestDirty=!0)},enumerable:!1,configurable:!0}),e.prototype.reset=function(){this._stencilTest=!1,this._stencilMask=255,this._stencilFunc=e.ALWAYS,this._stencilFuncRef=1,this._stencilFuncMask=255,this._stencilOpStencilFail=e.KEEP,this._stencilOpDepthFail=e.KEEP,this._stencilOpStencilDepthPass=e.REPLACE,this._isStencilTestDirty=!0,this._isStencilMaskDirty=!0,this._isStencilFuncDirty=!0,this._isStencilOpDirty=!0},e.prototype.apply=function(e){this.isDirty&&(this._isStencilTestDirty&&(this.stencilTest?e.enable(e.STENCIL_TEST):e.disable(e.STENCIL_TEST),this._isStencilTestDirty=!1),this._isStencilMaskDirty&&(e.stencilMask(this.stencilMask),this._isStencilMaskDirty=!1),this._isStencilFuncDirty&&(e.stencilFunc(this.stencilFunc,this.stencilFuncRef,this.stencilFuncMask),this._isStencilFuncDirty=!1),this._isStencilOpDirty&&(e.stencilOp(this.stencilOpStencilFail,this.stencilOpDepthFail,this.stencilOpStencilDepthPass),this._isStencilOpDirty=!1))},e.ALWAYS=n.a.ALWAYS,e.KEEP=n.a.KEEP,e.REPLACE=n.a.REPLACE,e}()},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return n}));var n=function(){function e(){this._isAlphaBlendDirty=!1,this._isBlendFunctionParametersDirty=!1,this._isBlendEquationParametersDirty=!1,this._isBlendConstantsDirty=!1,this._alphaBlend=!1,this._blendFunctionParameters=new Array(4),this._blendEquationParameters=new Array(2),this._blendConstants=new Array(4),this.reset()}return Object.defineProperty(e.prototype,\"isDirty\",{get:function(){return this._isAlphaBlendDirty||this._isBlendFunctionParametersDirty},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"alphaBlend\",{get:function(){return this._alphaBlend},set:function(e){this._alphaBlend!==e&&(this._alphaBlend=e,this._isAlphaBlendDirty=!0)},enumerable:!1,configurable:!0}),e.prototype.setAlphaBlendConstants=function(e,t,i,n){this._blendConstants[0]===e&&this._blendConstants[1]===t&&this._blendConstants[2]===i&&this._blendConstants[3]===n||(this._blendConstants[0]=e,this._blendConstants[1]=t,this._blendConstants[2]=i,this._blendConstants[3]=n,this._isBlendConstantsDirty=!0)},e.prototype.setAlphaBlendFunctionParameters=function(e,t,i,n){this._blendFunctionParameters[0]===e&&this._blendFunctionParameters[1]===t&&this._blendFunctionParameters[2]===i&&this._blendFunctionParameters[3]===n||(this._blendFunctionParameters[0]=e,this._blendFunctionParameters[1]=t,this._blendFunctionParameters[2]=i,this._blendFunctionParameters[3]=n,this._isBlendFunctionParametersDirty=!0)},e.prototype.setAlphaEquationParameters=function(e,t){this._blendEquationParameters[0]===e&&this._blendEquationParameters[1]===t||(this._blendEquationParameters[0]=e,this._blendEquationParameters[1]=t,this._isBlendEquationParametersDirty=!0)},e.prototype.reset=function(){this._alphaBlend=!1,this._blendFunctionParameters[0]=null,this._blendFunctionParameters[1]=null,this._blendFunctionParameters[2]=null,this._blendFunctionParameters[3]=null,this._blendEquationParameters[0]=null,this._blendEquationParameters[1]=null,this._blendConstants[0]=null,this._blendConstants[1]=null,this._blendConstants[2]=null,this._blendConstants[3]=null,this._isAlphaBlendDirty=!0,this._isBlendFunctionParametersDirty=!1,this._isBlendEquationParametersDirty=!1,this._isBlendConstantsDirty=!1},e.prototype.apply=function(e){this.isDirty&&(this._isAlphaBlendDirty&&(this._alphaBlend?e.enable(e.BLEND):e.disable(e.BLEND),this._isAlphaBlendDirty=!1),this._isBlendFunctionParametersDirty&&(e.blendFuncSeparate(this._blendFunctionParameters[0],this._blendFunctionParameters[1],this._blendFunctionParameters[2],this._blendFunctionParameters[3]),this._isBlendFunctionParametersDirty=!1),this._isBlendEquationParametersDirty&&(e.blendEquationSeparate(this._blendEquationParameters[0],this._blendEquationParameters[1]),this._isBlendEquationParametersDirty=!1),this._isBlendConstantsDirty&&(e.blendColor(this._blendConstants[0],this._blendConstants[1],this._blendConstants[2],this._blendConstants[3]),this._isBlendConstantsDirty=!1))},e}()},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return n}));var n=function(){function e(){this.vertexCompilationError=null,this.fragmentCompilationError=null,this.programLinkError=null,this.programValidationError=null}return Object.defineProperty(e.prototype,\"isAsync\",{get:function(){return this.isParallelCompiled},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"isReady\",{get:function(){return!!this.program&&(!this.isParallelCompiled||this.engine._isRenderingStateCompiled(this))},enumerable:!1,configurable:!0}),e.prototype._handlesSpectorRebuildCallback=function(e){e&&this.program&&e(this.program)},e.prototype._getVertexShaderCode=function(){return this.vertexShader?this.engine._getShaderSource(this.vertexShader):null},e.prototype._getFragmentShaderCode=function(){return this.fragmentShader?this.engine._getShaderSource(this.fragmentShader):null},e}()},function(e,t,i){\"use strict\";var n;i.d(t,\"a\",(function(){return a})),function(e){e[e.Pending=0]=\"Pending\",e[e.Fulfilled=1]=\"Fulfilled\",e[e.Rejected=2]=\"Rejected\"}(n||(n={}));var r=function(){this.count=0,this.target=0,this.results=[]},o=function(){function e(e){var t=this;if(this._state=n.Pending,this._children=new Array,this._rejectWasConsumed=!1,e)try{e((function(e){t._resolve(e)}),(function(e){t._reject(e)}))}catch(e){this._reject(e)}}return Object.defineProperty(e.prototype,\"_result\",{get:function(){return this._resultValue},set:function(e){this._resultValue=e,this._parent&&void 0===this._parent._result&&(this._parent._result=e)},enumerable:!1,configurable:!0}),e.prototype.catch=function(e){return this.then(void 0,e)},e.prototype.then=function(t,i){var r=this,o=new e;return o._onFulfilled=t,o._onRejected=i,this._children.push(o),o._parent=this,this._state!==n.Pending&&setTimeout((function(){if(r._state===n.Fulfilled||r._rejectWasConsumed){var e=o._resolve(r._result);if(null!=e)if(void 0!==e._state){var t=e;o._children.push(t),t._parent=o,o=t}else o._result=e}else o._reject(r._reason)})),o},e.prototype._moveChildren=function(e){var t,i=this;if((t=this._children).push.apply(t,e.splice(0,e.length)),this._children.forEach((function(e){e._parent=i})),this._state===n.Fulfilled)for(var r=0,o=this._children;r=this._sampleCount||e>=this._samples.length)return 0;var t=this._wrapPosition(this._pos-1);return this._samples[this._wrapPosition(t-e)]},e.prototype.isSaturated=function(){return this._sampleCount>=this._samples.length},e.prototype.reset=function(){this.average=0,this.variance=0,this._sampleCount=0,this._pos=0,this._m2=0},e.prototype._wrapPosition=function(e){var t=this._samples.length;return(e%t+t)%t},e}()},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return r}));var n=i(0),r=function(){this._checkCollisions=!1,this._collisionMask=-1,this._collisionGroup=-1,this._surroundingMeshes=null,this._collider=null,this._oldPositionForCollisions=new n.e(0,0,0),this._diffPositionForCollisions=new n.e(0,0,0),this._collisionResponse=!0}},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return a}));var n=i(33),r=i(0),o=i(2),a=function(){function e(e,t,i,r,o){void 0===i&&(i=null),void 0===r&&(r=null),void 0===o&&(o=null),this.index=e,this._opaqueSubMeshes=new n.a(256),this._transparentSubMeshes=new n.a(256),this._alphaTestSubMeshes=new n.a(256),this._depthOnlySubMeshes=new n.a(256),this._particleSystems=new n.a(256),this._spriteManagers=new n.a(256),this._edgesRenderers=new n.b(16),this._scene=t,this.opaqueSortCompareFn=i,this.alphaTestSortCompareFn=r,this.transparentSortCompareFn=o}return Object.defineProperty(e.prototype,\"opaqueSortCompareFn\",{set:function(t){this._opaqueSortCompareFn=t,this._renderOpaque=t?this.renderOpaqueSorted:e.renderUnsorted},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"alphaTestSortCompareFn\",{set:function(t){this._alphaTestSortCompareFn=t,this._renderAlphaTest=t?this.renderAlphaTestSorted:e.renderUnsorted},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,\"transparentSortCompareFn\",{set:function(t){this._transparentSortCompareFn=t||e.defaultTransparentSortCompare,this._renderTransparent=this.renderTransparentSorted},enumerable:!1,configurable:!0}),e.prototype.render=function(e,t,i,n){if(e)e(this._opaqueSubMeshes,this._alphaTestSubMeshes,this._transparentSubMeshes,this._depthOnlySubMeshes);else{var r=this._scene.getEngine();0!==this._depthOnlySubMeshes.length&&(r.setColorWrite(!1),this._renderAlphaTest(this._depthOnlySubMeshes),r.setColorWrite(!0)),0!==this._opaqueSubMeshes.length&&this._renderOpaque(this._opaqueSubMeshes),0!==this._alphaTestSubMeshes.length&&this._renderAlphaTest(this._alphaTestSubMeshes);var a=r.getStencilBuffer();if(r.setStencilBuffer(!1),t&&this._renderSprites(),i&&this._renderParticles(n),this.onBeforeTransparentRendering&&this.onBeforeTransparentRendering(),0!==this._transparentSubMeshes.length&&(r.setStencilBuffer(a),this._renderTransparent(this._transparentSubMeshes),r.setAlphaMode(o.a.ALPHA_DISABLE)),r.setStencilBuffer(!1),this._edgesRenderers.length){for(var s=0;si._alphaIndex?1:t._alphaIndext._distanceToCamera?-1:0},e.frontToBackSortCompare=function(e,t){return e._distanceToCamerat._distanceToCamera?1:0},e.prototype.prepare=function(){this._opaqueSubMeshes.reset(),this._transparentSubMeshes.reset(),this._alphaTestSubMeshes.reset(),this._depthOnlySubMeshes.reset(),this._particleSystems.reset(),this._spriteManagers.reset(),this._edgesRenderers.reset()},e.prototype.dispose=function(){this._opaqueSubMeshes.dispose(),this._transparentSubMeshes.dispose(),this._alphaTestSubMeshes.dispose(),this._depthOnlySubMeshes.dispose(),this._particleSystems.dispose(),this._spriteManagers.dispose(),this._edgesRenderers.dispose()},e.prototype.dispatch=function(e,t,i){void 0===t&&(t=e.getMesh()),void 0===i&&(i=e.getMaterial()),null!=i&&(i.needAlphaBlendingForMesh(t)?this._transparentSubMeshes.push(e):i.needAlphaTesting()?(i.needDepthPrePass&&this._depthOnlySubMeshes.push(e),this._alphaTestSubMeshes.push(e)):(i.needDepthPrePass&&this._depthOnlySubMeshes.push(e),this._opaqueSubMeshes.push(e)),t._renderingGroup=this,t._edgesRenderer&&t._edgesRenderer.isEnabled&&this._edgesRenderers.pushNoDuplicate(t._edgesRenderer))},e.prototype.dispatchSprites=function(e){this._spriteManagers.push(e)},e.prototype.dispatchParticles=function(e){this._particleSystems.push(e)},e.prototype._renderParticles=function(e){if(0!==this._particleSystems.length){var t=this._scene.activeCamera;this._scene.onBeforeParticlesRenderingObservable.notifyObservers(this._scene);for(var i=0;i=0;){var u=r[c];u<0?u=0:u>1&&(u=1),l[c]=255*u}r=l}var h=document.createElement(\"canvas\");h.width=a,h.height=s;var d=h.getContext(\"2d\");if(!d)return null;var f=d.createImageData(a,s);if(f.data.set(r),d.putImageData(f,0,0),n.invertY){var p=document.createElement(\"canvas\");p.width=a,p.height=s;var _=p.getContext(\"2d\");return _?(_.translate(0,s),_.scale(1,-1),_.drawImage(h,0,0),p.toDataURL(\"image/png\")):null}return h.toDataURL(\"image/png\")},e}()},function(e,t,i){\"use strict\";i.d(t,\"a\",(function(){return f}));var n=i(1),r=i(0),o=i(8),a=i(31),s=i(7),c=i(41),l=i(46),u=i(4),h=i(43),d=i(12);s.a._instancedMeshFactory=function(e,t){var i=new f(e,t);if(t.instancedBuffers)for(var n in i.instancedBuffers={},t.instancedBuffers)i.instancedBuffers[n]=t.instancedBuffers[n];return i};var f=function(e){function t(t,i){var n=e.call(this,t,i.getScene())||this;n._indexInSourceMeshInstanceArray=-1,i.addInstance(n),n._sourceMesh=i,n._unIndexed=i._unIndexed,n.position.copyFrom(i.position),n.rotation.copyFrom(i.rotation),n.scaling.copyFrom(i.scaling),i.rotationQuaternion&&(n.rotationQuaternion=i.rotationQuaternion.clone()),n.animations=d.b.Slice(i.animations);for(var r=0,o=i.getAnimationRanges();r0!=this._getWorldMatrixDeterminant()>0)return this._internalAbstractMeshDataInfo._actAsRegularMesh=!0,!0;if(this._internalAbstractMeshDataInfo._actAsRegularMesh=!1,this._currentLOD._registerInstanceForRenderId(this,e),t){if(!this._currentLOD._internalAbstractMeshDataInfo._isActiveIntermediate)return this._currentLOD._internalAbstractMeshDataInfo._onlyForInstancesIntermediate=!0,!0}else if(!this._currentLOD._internalAbstractMeshDataInfo._isActive)return this._currentLOD._internalAbstractMeshDataInfo._onlyForInstances=!0,!0}return!1},t.prototype._postActivate=function(){this._sourceMesh.edgesShareWithInstances&&this._sourceMesh._edgesRenderer&&this._sourceMesh._edgesRenderer.isEnabled&&this._sourceMesh._renderingGroup?(this._sourceMesh._renderingGroup._edgesRenderers.pushNoDuplicate(this._sourceMesh._edgesRenderer),this._sourceMesh._edgesRenderer.customInstances.push(this.getWorldMatrix())):this._edgesRenderer&&this._edgesRenderer.isEnabled&&this._sourceMesh._renderingGroup&&this._sourceMesh._renderingGroup._edgesRenderers.push(this._edgesRenderer)},t.prototype.getWorldMatrix=function(){if(this._currentLOD&&this._currentLOD.billboardMode!==l.a.BILLBOARDMODE_NONE&&this._currentLOD._masterMesh!==this){var t=this._currentLOD._masterMesh;return this._currentLOD._masterMesh=this,r.c.Vector3[7].copyFrom(this._currentLOD.position),this._currentLOD.position.set(0,0,0),r.c.Matrix[0].copyFrom(this._currentLOD.computeWorldMatrix(!0)),this._currentLOD.position.copyFrom(r.c.Vector3[7]),this._currentLOD._masterMesh=t,r.c.Matrix[0]}return e.prototype.getWorldMatrix.call(this)},Object.defineProperty(t.prototype,\"isAnInstance\",{get:function(){return!0},enumerable:!1,configurable:!0}),t.prototype.getLOD=function(e){if(!e)return this;var t=this.getBoundingInfo();return this._currentLOD=this.sourceMesh.getLOD(e,t.boundingSphere),this._currentLOD===this.sourceMesh?this.sourceMesh:this._currentLOD},t.prototype._preActivateForIntermediateRendering=function(e){return this.sourceMesh._preActivateForIntermediateRendering(e)},t.prototype._syncSubMeshes=function(){if(this.releaseSubMeshes(),this._sourceMesh.subMeshes)for(var e=0;e=lightDirection.w)\\n{\\ncosAngle=max(0.,pow(cosAngle,lightData.w));\\nattenuation*=cosAngle;\\n\\nfloat ndl=max(0.,dot(vNormal,lightVectorW));\\n#ifdef NDOTL\\nresult.ndl=ndl;\\n#endif\\nresult.diffuse=ndl*diffuseColor*attenuation;\\n#ifdef SPECULARTERM\\n\\nvec3 angleW=normalize(viewDirectionW+lightVectorW);\\nfloat specComp=max(0.,dot(vNormal,angleW));\\nspecComp=pow(specComp,max(1.,glossiness));\\nresult.specular=specComp*specularColor*attenuation;\\n#endif\\nreturn result;\\n}\\nresult.diffuse=vec3(0.);\\n#ifdef SPECULARTERM\\nresult.specular=vec3(0.);\\n#endif\\n#ifdef NDOTL\\nresult.ndl=0.;\\n#endif\\nreturn result;\\n}\\nlightingInfo computeHemisphericLighting(vec3 viewDirectionW,vec3 vNormal,vec4 lightData,vec3 diffuseColor,vec3 specularColor,vec3 groundColor,float glossiness) {\\nlightingInfo result;\\n\\nfloat ndl=dot(vNormal,lightData.xyz)*0.5+0.5;\\n#ifdef NDOTL\\nresult.ndl=ndl;\\n#endif\\nresult.diffuse=mix(groundColor,diffuseColor,ndl);\\n#ifdef SPECULARTERM\\n\\nvec3 angleW=normalize(viewDirectionW+lightData.xyz);\\nfloat specComp=max(0.,dot(vNormal,angleW));\\nspecComp=pow(specComp,max(1.,glossiness));\\nresult.specular=specComp*specularColor;\\n#endif\\nreturn result;\\n}\\n#define inline\\nvec3 computeProjectionTextureDiffuseLighting(sampler2D projectionLightSampler,mat4 textureProjectionMatrix){\\nvec4 strq=textureProjectionMatrix*vec4(vPositionW,1.0);\\nstrq/=strq.w;\\nvec3 textureColor=texture2D(projectionLightSampler,strq.xy).rgb;\\nreturn textureColor;\\n}\";i(5).a.IncludesShadersStore[n]=r},function(e,t,i){\"use strict\";var n=\"logDepthFragment\",r=\"#ifdef LOGARITHMICDEPTH\\ngl_FragDepthEXT=log2(vFragmentDepth)*logarithmicDepthConstant*0.5;\\n#endif\";i(5).a.IncludesShadersStore[n]=r},function(e,t,i){\"use strict\";var n=\"#if defined(BUMP) || defined(PARALLAX) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC)\\n#if defined(TANGENT) && defined(NORMAL)\\nvec3 tbnNormal=normalize(normalUpdated);\\nvec3 tbnTangent=normalize(tangentUpdated.xyz);\\nvec3 tbnBitangent=cross(tbnNormal,tbnTangent)*tangentUpdated.w;\\nvTBN=mat3(finalWorld)*mat3(tbnTangent,tbnBitangent,tbnNormal);\\n#endif\\n#endif\";i(5).a.IncludesShadersStore.bumpVertex=n},function(e,t,i){\"use strict\";var n=\"#ifdef FOG\\nvFogDistance=(view*worldPos).xyz;\\n#endif\";i(5).a.IncludesShadersStore.fogVertex=n},function(e,t,i){\"use strict\";var n=\"logDepthVertex\",r=\"#ifdef LOGARITHMICDEPTH\\nvFragmentDepth=1.0+gl_Position.w;\\ngl_Position.z=log2(max(0.000001,vFragmentDepth))*logarithmicDepthConstant;\\n#endif\";i(5).a.IncludesShadersStore[n]=r},function(e,t){var i;i=function(){return this}();try{i=i||new Function(\"return this\")()}catch(e){\"object\"==typeof window&&(i=window)}e.exports=i},function(e,t,i){\"use strict\";var n=\"prePassDeclaration\",r=\"#ifdef PREPASS\\n#extension GL_EXT_draw_buffers : require\\n#ifdef WEBGL2\\nlayout(location=0) out highp vec4 glFragData[{X}];\\nhighp vec4 gl_FragColor;\\n#endif\\n#ifdef PREPASS_DEPTHNORMAL\\nvarying highp vec3 vViewPos;\\n#endif\\n#ifdef PREPASS_VELOCITY\\nvarying highp vec4 vCurrentPosition;\\nvarying highp vec4 vPreviousPosition;\\n#endif\\n#endif\\n\";i(5).a.IncludesShadersStore[n]=r},function(e,t,i){\"use strict\";var n=\"fresnelFunction\",r=\"#ifdef FRESNEL\\nfloat computeFresnelTerm(vec3 viewDirection,vec3 worldNormal,float bias,float power)\\n{\\nfloat fresnelTerm=pow(bias+abs(dot(viewDirection,worldNormal)),power);\\nreturn clamp(fresnelTerm,0.,1.);\\n}\\n#endif\";i(5).a.IncludesShadersStore[n]=r},function(e,t,i){\"use strict\";var n=\"#ifdef DEPTHPREPASS\\ngl_FragColor=vec4(0.,0.,0.,1.0);\\nreturn;\\n#endif\";i(5).a.IncludesShadersStore.depthPrePass=n},function(e,t,i){\"use strict\";var n=\"prePassVertexDeclaration\",r=\"#ifdef PREPASS\\n#ifdef PREPASS_DEPTHNORMAL\\nvarying vec3 vViewPos;\\n#endif\\n#ifdef PREPASS_VELOCITY\\nuniform mat4 previousWorld;\\nuniform mat4 previousViewProjection;\\nvarying vec4 vCurrentPosition;\\nvarying vec4 vPreviousPosition;\\n#endif\\n#endif\";i(5).a.IncludesShadersStore[n]=r},function(e,t,i){\"use strict\";var n=\"bumpVertexDeclaration\",r=\"#if defined(BUMP) || defined(PARALLAX) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC)\\n#if defined(TANGENT) && defined(NORMAL)\\nvarying mat3 vTBN;\\n#endif\\n#endif\\n\";i(5).a.IncludesShadersStore[n]=r},function(e,t,i){\"use strict\";var n=\"prePassVertex\",r=\"#ifdef PREPASS_DEPTHNORMAL\\nvViewPos=(view*worldPos).rgb;\\n#endif\\n#if defined(PREPASS_VELOCITY) && defined(BONES_VELOCITY_ENABLED)\\nvCurrentPosition=viewProjection*worldPos;\\n#if NUM_BONE_INFLUENCERS>0\\nmat4 previousInfluence;\\npreviousInfluence=mPreviousBones[int(matricesIndices[0])]*matricesWeights[0];\\n#if NUM_BONE_INFLUENCERS>1\\npreviousInfluence+=mPreviousBones[int(matricesIndices[1])]*matricesWeights[1];\\n#endif\\n#if NUM_BONE_INFLUENCERS>2\\npreviousInfluence+=mPreviousBones[int(matricesIndices[2])]*matricesWeights[2];\\n#endif\\n#if NUM_BONE_INFLUENCERS>3\\npreviousInfluence+=mPreviousBones[int(matricesIndices[3])]*matricesWeights[3];\\n#endif\\n#if NUM_BONE_INFLUENCERS>4\\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[0])]*matricesWeightsExtra[0];\\n#endif\\n#if NUM_BONE_INFLUENCERS>5\\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[1])]*matricesWeightsExtra[1];\\n#endif\\n#if NUM_BONE_INFLUENCERS>6\\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[2])]*matricesWeightsExtra[2];\\n#endif\\n#if NUM_BONE_INFLUENCERS>7\\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[3])]*matricesWeightsExtra[3];\\n#endif\\nvPreviousPosition=previousViewProjection*previousWorld*previousInfluence*vec4(positionUpdated,1.0);\\n#else\\nvPreviousPosition=previousViewProjection*previousWorld*vec4(positionUpdated,1.0);\\n#endif\\n#endif\";i(5).a.IncludesShadersStore[n]=r},function(e,t,i){\"use strict\";var n=i(5),r=(i(115),i(110),\"colorPixelShader\"),o=\"#ifdef VERTEXCOLOR\\nvarying vec4 vColor;\\n#else\\nuniform vec4 color;\\n#endif\\n#include\\nvoid main(void) {\\n#include\\n#ifdef VERTEXCOLOR\\ngl_FragColor=vColor;\\n#else\\ngl_FragColor=color;\\n#endif\\n}\";n.a.ShadersStore[r]=o},function(e,t,i){\"use strict\";var n=i(5),r=(i(78),i(117),i(79),i(80),i(81),i(111),\"colorVertexShader\"),o=\"\\nattribute vec3 position;\\n#ifdef VERTEXCOLOR\\nattribute vec4 color;\\n#endif\\n#include\\n#include\\n\\n#include\\nuniform mat4 viewProjection;\\n#ifdef MULTIVIEW\\nuniform mat4 viewProjectionR;\\n#endif\\n\\n#ifdef VERTEXCOLOR\\nvarying vec4 vColor;\\n#endif\\nvoid main(void) {\\n#include\\n#include\\nvec4 worldPos=finalWorld*vec4(position,1.0);\\n#ifdef MULTIVIEW\\nif (gl_ViewID_OVR == 0u) {\\ngl_Position=viewProjection*worldPos;\\n} else {\\ngl_Position=viewProjectionR*worldPos;\\n}\\n#else\\ngl_Position=viewProjection*worldPos;\\n#endif\\n#include\\n#ifdef VERTEXCOLOR\\n\\nvColor=color;\\n#endif\\n}\";n.a.ShadersStore[r]=o},function(e,t,i){\"use strict\";(function(e){i.d(t,\"b\",(function(){return h})),i.d(t,\"a\",(function(){return d}));var n=i(1),r=i(8),o=i(13),a=i(102),s=i(27),c=i(2),l=i(89),u=i(74),h=function(){this.renderWidth=512,this.renderHeight=256,this.textureSize=512,this.deterministicLockstep=!1,this.lockstepMaxSteps=4},d=function(t){function i(i){void 0===i&&(i=new h);var n=t.call(this,null)||this;o.a.Instances.push(n),void 0===i.deterministicLockstep&&(i.deterministicLockstep=!1),void 0===i.lockstepMaxSteps&&(i.lockstepMaxSteps=4),n._options=i,u.a.SetMatrixPrecision(!!i.useHighPrecisionMatrix),n._caps={maxTexturesImageUnits:16,maxVertexTextureImageUnits:16,maxCombinedTexturesImageUnits:32,maxTextureSize:512,maxCubemapTextureSize:512,maxRenderTextureSize:512,maxVertexAttribs:16,maxVaryingVectors:16,maxFragmentUniformVectors:16,maxVertexUniformVectors:16,standardDerivatives:!1,astc:null,pvrtc:null,etc1:null,etc2:null,bptc:null,maxAnisotropy:0,uintIndices:!1,fragmentDepthSupported:!1,highPrecisionShaderSupported:!0,colorBufferFloat:!1,textureFloat:!1,textureFloatLinearFiltering:!1,textureFloatRender:!1,textureHalfFloat:!1,textureHalfFloatLinearFiltering:!1,textureHalfFloatRender:!1,textureLOD:!1,drawBuffersExtension:!1,depthTextureExtension:!1,vertexArrayObject:!1,instancedArrays:!1,canUseTimestampForTimerQuery:!1,maxMSAASamples:1,blendMinMax:!1},r.a.Log(\"Babylon.js v\"+o.a.Version+\" - Null engine\");var a=\"undefined\"!=typeof self?self:void 0!==e?e:window;return\"undefined\"==typeof URL&&(a.URL={createObjectURL:function(){},revokeObjectURL:function(){}}),\"undefined\"==typeof Blob&&(a.Blob=function(){}),n}return Object(n.d)(i,t),i.prototype.isDeterministicLockStep=function(){return this._options.deterministicLockstep},i.prototype.getLockstepMaxSteps=function(){return this._options.lockstepMaxSteps},i.prototype.getHardwareScalingLevel=function(){return 1},i.prototype.createVertexBuffer=function(e){var t=new l.a;return t.references=1,t},i.prototype.createIndexBuffer=function(e){var t=new l.a;return t.references=1,t},i.prototype.clear=function(e,t,i,n){void 0===n&&(n=!1)},i.prototype.getRenderWidth=function(e){return void 0===e&&(e=!1),!e&&this._currentRenderTarget?this._currentRenderTarget.width:this._options.renderWidth},i.prototype.getRenderHeight=function(e){return void 0===e&&(e=!1),!e&&this._currentRenderTarget?this._currentRenderTarget.height:this._options.renderHeight},i.prototype.setViewport=function(e,t,i){this._cachedViewport=e},i.prototype.createShaderProgram=function(e,t,i,n,r){return{__SPECTOR_rebuildProgram:null}},i.prototype.getUniforms=function(e,t){return[]},i.prototype.getAttributes=function(e,t){return[]},i.prototype.bindSamplers=function(e){this._currentEffect=null},i.prototype.enableEffect=function(e){this._currentEffect=e,e.onBind&&e.onBind(e),e._onBindObservable&&e._onBindObservable.notifyObservers(e)},i.prototype.setState=function(e,t,i,n){void 0===t&&(t=0),void 0===n&&(n=!1)},i.prototype.setIntArray=function(e,t){return!0},i.prototype.setIntArray2=function(e,t){return!0},i.prototype.setIntArray3=function(e,t){return!0},i.prototype.setIntArray4=function(e,t){return!0},i.prototype.setFloatArray=function(e,t){return!0},i.prototype.setFloatArray2=function(e,t){return!0},i.prototype.setFloatArray3=function(e,t){return!0},i.prototype.setFloatArray4=function(e,t){return!0},i.prototype.setArray=function(e,t){return!0},i.prototype.setArray2=function(e,t){return!0},i.prototype.setArray3=function(e,t){return!0},i.prototype.setArray4=function(e,t){return!0},i.prototype.setMatrices=function(e,t){return!0},i.prototype.setMatrix3x3=function(e,t){return!0},i.prototype.setMatrix2x2=function(e,t){return!0},i.prototype.setFloat=function(e,t){return!0},i.prototype.setFloat2=function(e,t,i){return!0},i.prototype.setFloat3=function(e,t,i,n){return!0},i.prototype.setBool=function(e,t){return!0},i.prototype.setFloat4=function(e,t,i,n,r){return!0},i.prototype.setAlphaMode=function(e,t){void 0===t&&(t=!1),this._alphaMode!==e&&(this.alphaState.alphaBlend=e!==c.a.ALPHA_DISABLE,t||this.setDepthWrite(e===c.a.ALPHA_DISABLE),this._alphaMode=e)},i.prototype.bindBuffers=function(e,t,i){},i.prototype.wipeCaches=function(e){this.preventCacheWipeBetweenFrames||(this.resetTextureCache(),this._currentEffect=null,e&&(this._currentProgram=null,this.stencilState.reset(),this.depthCullingState.reset(),this.alphaState.reset()),this._cachedVertexBuffers=null,this._cachedIndexBuffer=null,this._cachedEffectForVertexBuffers=null)},i.prototype.draw=function(e,t,i,n){},i.prototype.drawElementsType=function(e,t,i,n){},i.prototype.drawArraysType=function(e,t,i,n){},i.prototype._createTexture=function(){return{}},i.prototype._releaseTexture=function(e){},i.prototype.createTexture=function(e,t,i,n,r,o,a,l,u,h,d,f){void 0===r&&(r=c.a.TEXTURE_TRILINEAR_SAMPLINGMODE),void 0===o&&(o=null),void 0===a&&(a=null),void 0===l&&(l=null),void 0===u&&(u=null),void 0===h&&(h=null),void 0===d&&(d=null);var p=new s.a(this,s.b.Url),_=String(e);return p.url=_,p.generateMipMaps=!t,p.samplingMode=r,p.invertY=i,p.baseWidth=this._options.textureSize,p.baseHeight=this._options.textureSize,p.width=this._options.textureSize,p.height=this._options.textureSize,h&&(p.format=h),p.isReady=!0,o&&o(),this._internalTexturesCache.push(p),p},i.prototype.createRenderTargetTexture=function(e,t){var i=new a.a;void 0!==t&&\"object\"==typeof t?(i.generateMipMaps=t.generateMipMaps,i.generateDepthBuffer=void 0===t.generateDepthBuffer||t.generateDepthBuffer,i.generateStencilBuffer=i.generateDepthBuffer&&t.generateStencilBuffer,i.type=void 0===t.type?c.a.TEXTURETYPE_UNSIGNED_INT:t.type,i.samplingMode=void 0===t.samplingMode?c.a.TEXTURE_TRILINEAR_SAMPLINGMODE:t.samplingMode):(i.generateMipMaps=t,i.generateDepthBuffer=!0,i.generateStencilBuffer=!1,i.type=c.a.TEXTURETYPE_UNSIGNED_INT,i.samplingMode=c.a.TEXTURE_TRILINEAR_SAMPLINGMODE);var n=new s.a(this,s.b.RenderTarget),r=e.width||e,o=e.height||e;return n._depthStencilBuffer={},n._framebuffer={},n.baseWidth=r,n.baseHeight=o,n.width=r,n.height=o,n.isReady=!0,n.samples=1,n.generateMipMaps=!!i.generateMipMaps,n.samplingMode=i.samplingMode,n.type=i.type,n._generateDepthBuffer=i.generateDepthBuffer,n._generateStencilBuffer=!!i.generateStencilBuffer,this._internalTexturesCache.push(n),n},i.prototype.updateTextureSamplingMode=function(e,t){t.samplingMode=e},i.prototype.bindFramebuffer=function(e,t,i,n,r){this._currentRenderTarget&&this.unBindFramebuffer(this._currentRenderTarget),this._currentRenderTarget=e,this._currentFramebuffer=e._MSAAFramebuffer?e._MSAAFramebuffer:e._framebuffer,this._cachedViewport&&!r&&this.setViewport(this._cachedViewport,i,n)},i.prototype.unBindFramebuffer=function(e,t,i){void 0===t&&(t=!1),this._currentRenderTarget=null,i&&(e._MSAAFramebuffer&&(this._currentFramebuffer=e._framebuffer),i()),this._currentFramebuffer=null},i.prototype.createDynamicVertexBuffer=function(e){var t=new l.a;return t.references=1,t.capacity=1,t},i.prototype.updateDynamicTexture=function(e,t,i,n,r){void 0===n&&(n=!1)},i.prototype.areAllEffectsReady=function(){return!0},i.prototype.getError=function(){return 0},i.prototype._getUnpackAlignement=function(){return 1},i.prototype._unpackFlipY=function(e){},i.prototype.updateDynamicIndexBuffer=function(e,t,i){void 0===i&&(i=0)},i.prototype.updateDynamicVertexBuffer=function(e,t,i,n){},i.prototype._bindTextureDirectly=function(e,t){return this._boundTexturesCache[this._activeChannel]!==t&&(this._boundTexturesCache[this._activeChannel]=t,!0)},i.prototype._bindTexture=function(e,t){e<0||this._bindTextureDirectly(0,t)},i.prototype._deleteBuffer=function(e){},i.prototype.releaseEffects=function(){},i.prototype.displayLoadingUI=function(){},i.prototype.hideLoadingUI=function(){},i.prototype._uploadCompressedDataToTextureDirectly=function(e,t,i,n,r,o,a){void 0===o&&(o=0),void 0===a&&(a=0)},i.prototype._uploadDataToTextureDirectly=function(e,t,i,n){void 0===i&&(i=0),void 0===n&&(n=0)},i.prototype._uploadArrayBufferViewToTexture=function(e,t,i,n){void 0===i&&(i=0),void 0===n&&(n=0)},i.prototype._uploadImageToTexture=function(e,t,i,n){void 0===i&&(i=0),void 0===n&&(n=0)},i}(o.a)}).call(this,i(159))},function(e,t,i){\"use strict\";i.r(t),function(e){i.d(t,\"Debug\",(function(){return l}));var n=i(127),r=i(99);i.d(t,\"AbstractScene\",(function(){return n.AbstractScene})),i.d(t,\"AbstractActionManager\",(function(){return n.AbstractActionManager})),i.d(t,\"Action\",(function(){return n.Action})),i.d(t,\"ActionEvent\",(function(){return n.ActionEvent})),i.d(t,\"ActionManager\",(function(){return n.ActionManager})),i.d(t,\"Condition\",(function(){return n.Condition})),i.d(t,\"ValueCondition\",(function(){return n.ValueCondition})),i.d(t,\"PredicateCondition\",(function(){return n.PredicateCondition})),i.d(t,\"StateCondition\",(function(){return n.StateCondition})),i.d(t,\"SwitchBooleanAction\",(function(){return n.SwitchBooleanAction})),i.d(t,\"SetStateAction\",(function(){return n.SetStateAction})),i.d(t,\"SetValueAction\",(function(){return n.SetValueAction})),i.d(t,\"IncrementValueAction\",(function(){return n.IncrementValueAction})),i.d(t,\"PlayAnimationAction\",(function(){return n.PlayAnimationAction})),i.d(t,\"StopAnimationAction\",(function(){return n.StopAnimationAction})),i.d(t,\"DoNothingAction\",(function(){return n.DoNothingAction})),i.d(t,\"CombineAction\",(function(){return n.CombineAction})),i.d(t,\"ExecuteCodeAction\",(function(){return n.ExecuteCodeAction})),i.d(t,\"SetParentAction\",(function(){return n.SetParentAction})),i.d(t,\"PlaySoundAction\",(function(){return n.PlaySoundAction})),i.d(t,\"StopSoundAction\",(function(){return n.StopSoundAction})),i.d(t,\"InterpolateValueAction\",(function(){return n.InterpolateValueAction})),i.d(t,\"Animatable\",(function(){return n.Animatable})),i.d(t,\"_IAnimationState\",(function(){return n._IAnimationState})),i.d(t,\"Animation\",(function(){return n.Animation})),i.d(t,\"TargetedAnimation\",(function(){return n.TargetedAnimation})),i.d(t,\"AnimationGroup\",(function(){return n.AnimationGroup})),i.d(t,\"AnimationPropertiesOverride\",(function(){return n.AnimationPropertiesOverride})),i.d(t,\"EasingFunction\",(function(){return n.EasingFunction})),i.d(t,\"CircleEase\",(function(){return n.CircleEase})),i.d(t,\"BackEase\",(function(){return n.BackEase})),i.d(t,\"BounceEase\",(function(){return n.BounceEase})),i.d(t,\"CubicEase\",(function(){return n.CubicEase})),i.d(t,\"ElasticEase\",(function(){return n.ElasticEase})),i.d(t,\"ExponentialEase\",(function(){return n.ExponentialEase})),i.d(t,\"PowerEase\",(function(){return n.PowerEase})),i.d(t,\"QuadraticEase\",(function(){return n.QuadraticEase})),i.d(t,\"QuarticEase\",(function(){return n.QuarticEase})),i.d(t,\"QuinticEase\",(function(){return n.QuinticEase})),i.d(t,\"SineEase\",(function(){return n.SineEase})),i.d(t,\"BezierCurveEase\",(function(){return n.BezierCurveEase})),i.d(t,\"RuntimeAnimation\",(function(){return n.RuntimeAnimation})),i.d(t,\"AnimationEvent\",(function(){return n.AnimationEvent})),i.d(t,\"AnimationKeyInterpolation\",(function(){return n.AnimationKeyInterpolation})),i.d(t,\"AnimationRange\",(function(){return n.AnimationRange})),i.d(t,\"KeepAssets\",(function(){return n.KeepAssets})),i.d(t,\"InstantiatedEntries\",(function(){return n.InstantiatedEntries})),i.d(t,\"AssetContainer\",(function(){return n.AssetContainer})),i.d(t,\"Analyser\",(function(){return n.Analyser})),i.d(t,\"AudioEngine\",(function(){return n.AudioEngine})),i.d(t,\"AudioSceneComponent\",(function(){return n.AudioSceneComponent})),i.d(t,\"Sound\",(function(){return n.Sound})),i.d(t,\"SoundTrack\",(function(){return n.SoundTrack})),i.d(t,\"WeightedSound\",(function(){return n.WeightedSound})),i.d(t,\"AutoRotationBehavior\",(function(){return n.AutoRotationBehavior})),i.d(t,\"BouncingBehavior\",(function(){return n.BouncingBehavior})),i.d(t,\"FramingBehavior\",(function(){return n.FramingBehavior})),i.d(t,\"AttachToBoxBehavior\",(function(){return n.AttachToBoxBehavior})),i.d(t,\"FadeInOutBehavior\",(function(){return n.FadeInOutBehavior})),i.d(t,\"MultiPointerScaleBehavior\",(function(){return n.MultiPointerScaleBehavior})),i.d(t,\"PointerDragBehavior\",(function(){return n.PointerDragBehavior})),i.d(t,\"SixDofDragBehavior\",(function(){return n.SixDofDragBehavior})),i.d(t,\"Bone\",(function(){return n.Bone})),i.d(t,\"BoneIKController\",(function(){return n.BoneIKController})),i.d(t,\"BoneLookController\",(function(){return n.BoneLookController})),i.d(t,\"Skeleton\",(function(){return n.Skeleton})),i.d(t,\"ArcRotateCameraGamepadInput\",(function(){return n.ArcRotateCameraGamepadInput})),i.d(t,\"ArcRotateCameraKeyboardMoveInput\",(function(){return n.ArcRotateCameraKeyboardMoveInput})),i.d(t,\"ArcRotateCameraMouseWheelInput\",(function(){return n.ArcRotateCameraMouseWheelInput})),i.d(t,\"ArcRotateCameraPointersInput\",(function(){return n.ArcRotateCameraPointersInput})),i.d(t,\"ArcRotateCameraVRDeviceOrientationInput\",(function(){return n.ArcRotateCameraVRDeviceOrientationInput})),i.d(t,\"FlyCameraKeyboardInput\",(function(){return n.FlyCameraKeyboardInput})),i.d(t,\"FlyCameraMouseInput\",(function(){return n.FlyCameraMouseInput})),i.d(t,\"FollowCameraKeyboardMoveInput\",(function(){return n.FollowCameraKeyboardMoveInput})),i.d(t,\"FollowCameraMouseWheelInput\",(function(){return n.FollowCameraMouseWheelInput})),i.d(t,\"FollowCameraPointersInput\",(function(){return n.FollowCameraPointersInput})),i.d(t,\"FreeCameraDeviceOrientationInput\",(function(){return n.FreeCameraDeviceOrientationInput})),i.d(t,\"FreeCameraGamepadInput\",(function(){return n.FreeCameraGamepadInput})),i.d(t,\"FreeCameraKeyboardMoveInput\",(function(){return n.FreeCameraKeyboardMoveInput})),i.d(t,\"FreeCameraMouseInput\",(function(){return n.FreeCameraMouseInput})),i.d(t,\"FreeCameraMouseWheelInput\",(function(){return n.FreeCameraMouseWheelInput})),i.d(t,\"FreeCameraTouchInput\",(function(){return n.FreeCameraTouchInput})),i.d(t,\"FreeCameraVirtualJoystickInput\",(function(){return n.FreeCameraVirtualJoystickInput})),i.d(t,\"CameraInputTypes\",(function(){return n.CameraInputTypes})),i.d(t,\"CameraInputsManager\",(function(){return n.CameraInputsManager})),i.d(t,\"Camera\",(function(){return n.Camera})),i.d(t,\"TargetCamera\",(function(){return n.TargetCamera})),i.d(t,\"FreeCamera\",(function(){return n.FreeCamera})),i.d(t,\"FreeCameraInputsManager\",(function(){return n.FreeCameraInputsManager})),i.d(t,\"TouchCamera\",(function(){return n.TouchCamera})),i.d(t,\"ArcRotateCamera\",(function(){return n.ArcRotateCamera})),i.d(t,\"ArcRotateCameraInputsManager\",(function(){return n.ArcRotateCameraInputsManager})),i.d(t,\"DeviceOrientationCamera\",(function(){return n.DeviceOrientationCamera})),i.d(t,\"FlyCamera\",(function(){return n.FlyCamera})),i.d(t,\"FlyCameraInputsManager\",(function(){return n.FlyCameraInputsManager})),i.d(t,\"FollowCamera\",(function(){return n.FollowCamera})),i.d(t,\"ArcFollowCamera\",(function(){return n.ArcFollowCamera})),i.d(t,\"FollowCameraInputsManager\",(function(){return n.FollowCameraInputsManager})),i.d(t,\"GamepadCamera\",(function(){return n.GamepadCamera})),i.d(t,\"AnaglyphArcRotateCamera\",(function(){return n.AnaglyphArcRotateCamera})),i.d(t,\"AnaglyphFreeCamera\",(function(){return n.AnaglyphFreeCamera})),i.d(t,\"AnaglyphGamepadCamera\",(function(){return n.AnaglyphGamepadCamera})),i.d(t,\"AnaglyphUniversalCamera\",(function(){return n.AnaglyphUniversalCamera})),i.d(t,\"StereoscopicArcRotateCamera\",(function(){return n.StereoscopicArcRotateCamera})),i.d(t,\"StereoscopicFreeCamera\",(function(){return n.StereoscopicFreeCamera})),i.d(t,\"StereoscopicGamepadCamera\",(function(){return n.StereoscopicGamepadCamera})),i.d(t,\"StereoscopicUniversalCamera\",(function(){return n.StereoscopicUniversalCamera})),i.d(t,\"UniversalCamera\",(function(){return n.UniversalCamera})),i.d(t,\"VirtualJoysticksCamera\",(function(){return n.VirtualJoysticksCamera})),i.d(t,\"VRCameraMetrics\",(function(){return n.VRCameraMetrics})),i.d(t,\"VRDeviceOrientationArcRotateCamera\",(function(){return n.VRDeviceOrientationArcRotateCamera})),i.d(t,\"VRDeviceOrientationFreeCamera\",(function(){return n.VRDeviceOrientationFreeCamera})),i.d(t,\"VRDeviceOrientationGamepadCamera\",(function(){return n.VRDeviceOrientationGamepadCamera})),i.d(t,\"OnAfterEnteringVRObservableEvent\",(function(){return n.OnAfterEnteringVRObservableEvent})),i.d(t,\"VRExperienceHelper\",(function(){return n.VRExperienceHelper})),i.d(t,\"WebVRFreeCamera\",(function(){return n.WebVRFreeCamera})),i.d(t,\"Collider\",(function(){return n.Collider})),i.d(t,\"DefaultCollisionCoordinator\",(function(){return n.DefaultCollisionCoordinator})),i.d(t,\"PickingInfo\",(function(){return n.PickingInfo})),i.d(t,\"IntersectionInfo\",(function(){return n.IntersectionInfo})),i.d(t,\"_MeshCollisionData\",(function(){return n._MeshCollisionData})),i.d(t,\"BoundingBox\",(function(){return n.BoundingBox})),i.d(t,\"BoundingInfo\",(function(){return n.BoundingInfo})),i.d(t,\"BoundingSphere\",(function(){return n.BoundingSphere})),i.d(t,\"Octree\",(function(){return n.Octree})),i.d(t,\"OctreeBlock\",(function(){return n.OctreeBlock})),i.d(t,\"OctreeSceneComponent\",(function(){return n.OctreeSceneComponent})),i.d(t,\"Ray\",(function(){return n.Ray})),i.d(t,\"AxesViewer\",(function(){return n.AxesViewer})),i.d(t,\"BoneAxesViewer\",(function(){return n.BoneAxesViewer})),i.d(t,\"DebugLayerTab\",(function(){return n.DebugLayerTab})),i.d(t,\"DebugLayer\",(function(){return n.DebugLayer})),i.d(t,\"PhysicsViewer\",(function(){return n.PhysicsViewer})),i.d(t,\"RayHelper\",(function(){return n.RayHelper})),i.d(t,\"SkeletonViewer\",(function(){return n.SkeletonViewer})),i.d(t,\"DeviceInputSystem\",(function(){return n.DeviceInputSystem})),i.d(t,\"DeviceType\",(function(){return n.DeviceType})),i.d(t,\"PointerInput\",(function(){return n.PointerInput})),i.d(t,\"DualShockInput\",(function(){return n.DualShockInput})),i.d(t,\"XboxInput\",(function(){return n.XboxInput})),i.d(t,\"SwitchInput\",(function(){return n.SwitchInput})),i.d(t,\"DeviceSource\",(function(){return n.DeviceSource})),i.d(t,\"DeviceSourceManager\",(function(){return n.DeviceSourceManager})),i.d(t,\"Constants\",(function(){return n.Constants})),i.d(t,\"ThinEngine\",(function(){return n.ThinEngine})),i.d(t,\"Engine\",(function(){return n.Engine})),i.d(t,\"EngineStore\",(function(){return n.EngineStore})),i.d(t,\"NullEngineOptions\",(function(){return n.NullEngineOptions})),i.d(t,\"NullEngine\",(function(){return n.NullEngine})),i.d(t,\"_OcclusionDataStorage\",(function(){return n._OcclusionDataStorage})),i.d(t,\"_forceTransformFeedbackToBundle\",(function(){return n._forceTransformFeedbackToBundle})),i.d(t,\"EngineView\",(function(){return n.EngineView})),i.d(t,\"WebGLPipelineContext\",(function(){return n.WebGLPipelineContext})),i.d(t,\"WebGL2ShaderProcessor\",(function(){return n.WebGL2ShaderProcessor})),i.d(t,\"NativeEngine\",(function(){return n.NativeEngine})),i.d(t,\"ShaderCodeInliner\",(function(){return n.ShaderCodeInliner})),i.d(t,\"PerformanceConfigurator\",(function(){return n.PerformanceConfigurator})),i.d(t,\"KeyboardEventTypes\",(function(){return n.KeyboardEventTypes})),i.d(t,\"KeyboardInfo\",(function(){return n.KeyboardInfo})),i.d(t,\"KeyboardInfoPre\",(function(){return n.KeyboardInfoPre})),i.d(t,\"PointerEventTypes\",(function(){return n.PointerEventTypes})),i.d(t,\"PointerInfoBase\",(function(){return n.PointerInfoBase})),i.d(t,\"PointerInfoPre\",(function(){return n.PointerInfoPre})),i.d(t,\"PointerInfo\",(function(){return n.PointerInfo})),i.d(t,\"ClipboardEventTypes\",(function(){return n.ClipboardEventTypes})),i.d(t,\"ClipboardInfo\",(function(){return n.ClipboardInfo})),i.d(t,\"DaydreamController\",(function(){return n.DaydreamController})),i.d(t,\"GearVRController\",(function(){return n.GearVRController})),i.d(t,\"GenericController\",(function(){return n.GenericController})),i.d(t,\"OculusTouchController\",(function(){return n.OculusTouchController})),i.d(t,\"PoseEnabledControllerType\",(function(){return n.PoseEnabledControllerType})),i.d(t,\"PoseEnabledControllerHelper\",(function(){return n.PoseEnabledControllerHelper})),i.d(t,\"PoseEnabledController\",(function(){return n.PoseEnabledController})),i.d(t,\"ViveController\",(function(){return n.ViveController})),i.d(t,\"WebVRController\",(function(){return n.WebVRController})),i.d(t,\"WindowsMotionController\",(function(){return n.WindowsMotionController})),i.d(t,\"XRWindowsMotionController\",(function(){return n.XRWindowsMotionController})),i.d(t,\"StickValues\",(function(){return n.StickValues})),i.d(t,\"Gamepad\",(function(){return n.Gamepad})),i.d(t,\"GenericPad\",(function(){return n.GenericPad})),i.d(t,\"GamepadManager\",(function(){return n.GamepadManager})),i.d(t,\"GamepadSystemSceneComponent\",(function(){return n.GamepadSystemSceneComponent})),i.d(t,\"Xbox360Button\",(function(){return n.Xbox360Button})),i.d(t,\"Xbox360Dpad\",(function(){return n.Xbox360Dpad})),i.d(t,\"Xbox360Pad\",(function(){return n.Xbox360Pad})),i.d(t,\"DualShockButton\",(function(){return n.DualShockButton})),i.d(t,\"DualShockDpad\",(function(){return n.DualShockDpad})),i.d(t,\"DualShockPad\",(function(){return n.DualShockPad})),i.d(t,\"AxisDragGizmo\",(function(){return n.AxisDragGizmo})),i.d(t,\"AxisScaleGizmo\",(function(){return n.AxisScaleGizmo})),i.d(t,\"BoundingBoxGizmo\",(function(){return n.BoundingBoxGizmo})),i.d(t,\"Gizmo\",(function(){return n.Gizmo})),i.d(t,\"GizmoManager\",(function(){return n.GizmoManager})),i.d(t,\"PlaneRotationGizmo\",(function(){return n.PlaneRotationGizmo})),i.d(t,\"PositionGizmo\",(function(){return n.PositionGizmo})),i.d(t,\"RotationGizmo\",(function(){return n.RotationGizmo})),i.d(t,\"ScaleGizmo\",(function(){return n.ScaleGizmo})),i.d(t,\"LightGizmo\",(function(){return n.LightGizmo})),i.d(t,\"CameraGizmo\",(function(){return n.CameraGizmo})),i.d(t,\"PlaneDragGizmo\",(function(){return n.PlaneDragGizmo})),i.d(t,\"EnvironmentHelper\",(function(){return n.EnvironmentHelper})),i.d(t,\"PhotoDome\",(function(){return n.PhotoDome})),i.d(t,\"_forceSceneHelpersToBundle\",(function(){return n._forceSceneHelpersToBundle})),i.d(t,\"VideoDome\",(function(){return n.VideoDome})),i.d(t,\"EngineInstrumentation\",(function(){return n.EngineInstrumentation})),i.d(t,\"SceneInstrumentation\",(function(){return n.SceneInstrumentation})),i.d(t,\"_TimeToken\",(function(){return n._TimeToken})),i.d(t,\"EffectLayer\",(function(){return n.EffectLayer})),i.d(t,\"EffectLayerSceneComponent\",(function(){return n.EffectLayerSceneComponent})),i.d(t,\"GlowLayer\",(function(){return n.GlowLayer})),i.d(t,\"HighlightLayer\",(function(){return n.HighlightLayer})),i.d(t,\"Layer\",(function(){return n.Layer})),i.d(t,\"LayerSceneComponent\",(function(){return n.LayerSceneComponent})),i.d(t,\"LensFlare\",(function(){return n.LensFlare})),i.d(t,\"LensFlareSystem\",(function(){return n.LensFlareSystem})),i.d(t,\"LensFlareSystemSceneComponent\",(function(){return n.LensFlareSystemSceneComponent})),i.d(t,\"Light\",(function(){return n.Light})),i.d(t,\"ShadowLight\",(function(){return n.ShadowLight})),i.d(t,\"ShadowGenerator\",(function(){return n.ShadowGenerator})),i.d(t,\"CascadedShadowGenerator\",(function(){return n.CascadedShadowGenerator})),i.d(t,\"ShadowGeneratorSceneComponent\",(function(){return n.ShadowGeneratorSceneComponent})),i.d(t,\"DirectionalLight\",(function(){return n.DirectionalLight})),i.d(t,\"HemisphericLight\",(function(){return n.HemisphericLight})),i.d(t,\"PointLight\",(function(){return n.PointLight})),i.d(t,\"SpotLight\",(function(){return n.SpotLight})),i.d(t,\"DefaultLoadingScreen\",(function(){return n.DefaultLoadingScreen})),i.d(t,\"_BabylonLoaderRegistered\",(function(){return n._BabylonLoaderRegistered})),i.d(t,\"BabylonFileLoaderConfiguration\",(function(){return n.BabylonFileLoaderConfiguration})),i.d(t,\"SceneLoaderAnimationGroupLoadingMode\",(function(){return n.SceneLoaderAnimationGroupLoadingMode})),i.d(t,\"SceneLoader\",(function(){return n.SceneLoader})),i.d(t,\"SceneLoaderFlags\",(function(){return n.SceneLoaderFlags})),i.d(t,\"BackgroundMaterial\",(function(){return n.BackgroundMaterial})),i.d(t,\"ColorCurves\",(function(){return n.ColorCurves})),i.d(t,\"EffectFallbacks\",(function(){return n.EffectFallbacks})),i.d(t,\"Effect\",(function(){return n.Effect})),i.d(t,\"FresnelParameters\",(function(){return n.FresnelParameters})),i.d(t,\"ImageProcessingConfigurationDefines\",(function(){return n.ImageProcessingConfigurationDefines})),i.d(t,\"ImageProcessingConfiguration\",(function(){return n.ImageProcessingConfiguration})),i.d(t,\"Material\",(function(){return n.Material})),i.d(t,\"MaterialDefines\",(function(){return n.MaterialDefines})),i.d(t,\"ThinMaterialHelper\",(function(){return n.ThinMaterialHelper})),i.d(t,\"MaterialHelper\",(function(){return n.MaterialHelper})),i.d(t,\"MultiMaterial\",(function(){return n.MultiMaterial})),i.d(t,\"PBRMaterialDefines\",(function(){return n.PBRMaterialDefines})),i.d(t,\"PBRBaseMaterial\",(function(){return n.PBRBaseMaterial})),i.d(t,\"PBRBaseSimpleMaterial\",(function(){return n.PBRBaseSimpleMaterial})),i.d(t,\"PBRMaterial\",(function(){return n.PBRMaterial})),i.d(t,\"PBRMetallicRoughnessMaterial\",(function(){return n.PBRMetallicRoughnessMaterial})),i.d(t,\"PBRSpecularGlossinessMaterial\",(function(){return n.PBRSpecularGlossinessMaterial})),i.d(t,\"PushMaterial\",(function(){return n.PushMaterial})),i.d(t,\"ShaderMaterial\",(function(){return n.ShaderMaterial})),i.d(t,\"StandardMaterialDefines\",(function(){return n.StandardMaterialDefines})),i.d(t,\"StandardMaterial\",(function(){return n.StandardMaterial})),i.d(t,\"BaseTexture\",(function(){return n.BaseTexture})),i.d(t,\"ColorGradingTexture\",(function(){return n.ColorGradingTexture})),i.d(t,\"CubeTexture\",(function(){return n.CubeTexture})),i.d(t,\"DynamicTexture\",(function(){return n.DynamicTexture})),i.d(t,\"EquiRectangularCubeTexture\",(function(){return n.EquiRectangularCubeTexture})),i.d(t,\"HDRFiltering\",(function(){return n.HDRFiltering})),i.d(t,\"HDRCubeTexture\",(function(){return n.HDRCubeTexture})),i.d(t,\"HtmlElementTexture\",(function(){return n.HtmlElementTexture})),i.d(t,\"InternalTextureSource\",(function(){return n.InternalTextureSource})),i.d(t,\"InternalTexture\",(function(){return n.InternalTexture})),i.d(t,\"_DDSTextureLoader\",(function(){return n._DDSTextureLoader})),i.d(t,\"_ENVTextureLoader\",(function(){return n._ENVTextureLoader})),i.d(t,\"_KTXTextureLoader\",(function(){return n._KTXTextureLoader})),i.d(t,\"_TGATextureLoader\",(function(){return n._TGATextureLoader})),i.d(t,\"_BasisTextureLoader\",(function(){return n._BasisTextureLoader})),i.d(t,\"MirrorTexture\",(function(){return n.MirrorTexture})),i.d(t,\"MultiRenderTarget\",(function(){return n.MultiRenderTarget})),i.d(t,\"TexturePacker\",(function(){return n.TexturePacker})),i.d(t,\"TexturePackerFrame\",(function(){return n.TexturePackerFrame})),i.d(t,\"CustomProceduralTexture\",(function(){return n.CustomProceduralTexture})),i.d(t,\"NoiseProceduralTexture\",(function(){return n.NoiseProceduralTexture})),i.d(t,\"ProceduralTexture\",(function(){return n.ProceduralTexture})),i.d(t,\"ProceduralTextureSceneComponent\",(function(){return n.ProceduralTextureSceneComponent})),i.d(t,\"RawCubeTexture\",(function(){return n.RawCubeTexture})),i.d(t,\"RawTexture\",(function(){return n.RawTexture})),i.d(t,\"RawTexture2DArray\",(function(){return n.RawTexture2DArray})),i.d(t,\"RawTexture3D\",(function(){return n.RawTexture3D})),i.d(t,\"RefractionTexture\",(function(){return n.RefractionTexture})),i.d(t,\"RenderTargetTexture\",(function(){return n.RenderTargetTexture})),i.d(t,\"Texture\",(function(){return n.Texture})),i.d(t,\"VideoTexture\",(function(){return n.VideoTexture})),i.d(t,\"UniformBuffer\",(function(){return n.UniformBuffer})),i.d(t,\"MaterialFlags\",(function(){return n.MaterialFlags})),i.d(t,\"NodeMaterialBlockTargets\",(function(){return n.NodeMaterialBlockTargets})),i.d(t,\"NodeMaterialBlockConnectionPointTypes\",(function(){return n.NodeMaterialBlockConnectionPointTypes})),i.d(t,\"NodeMaterialBlockConnectionPointMode\",(function(){return n.NodeMaterialBlockConnectionPointMode})),i.d(t,\"NodeMaterialSystemValues\",(function(){return n.NodeMaterialSystemValues})),i.d(t,\"NodeMaterialModes\",(function(){return n.NodeMaterialModes})),i.d(t,\"NodeMaterialConnectionPointCompatibilityStates\",(function(){return n.NodeMaterialConnectionPointCompatibilityStates})),i.d(t,\"NodeMaterialConnectionPointDirection\",(function(){return n.NodeMaterialConnectionPointDirection})),i.d(t,\"NodeMaterialConnectionPoint\",(function(){return n.NodeMaterialConnectionPoint})),i.d(t,\"NodeMaterialBlock\",(function(){return n.NodeMaterialBlock})),i.d(t,\"NodeMaterialDefines\",(function(){return n.NodeMaterialDefines})),i.d(t,\"NodeMaterial\",(function(){return n.NodeMaterial})),i.d(t,\"VertexOutputBlock\",(function(){return n.VertexOutputBlock})),i.d(t,\"BonesBlock\",(function(){return n.BonesBlock})),i.d(t,\"InstancesBlock\",(function(){return n.InstancesBlock})),i.d(t,\"MorphTargetsBlock\",(function(){return n.MorphTargetsBlock})),i.d(t,\"LightInformationBlock\",(function(){return n.LightInformationBlock})),i.d(t,\"FragmentOutputBlock\",(function(){return n.FragmentOutputBlock})),i.d(t,\"ImageProcessingBlock\",(function(){return n.ImageProcessingBlock})),i.d(t,\"PerturbNormalBlock\",(function(){return n.PerturbNormalBlock})),i.d(t,\"DiscardBlock\",(function(){return n.DiscardBlock})),i.d(t,\"FrontFacingBlock\",(function(){return n.FrontFacingBlock})),i.d(t,\"DerivativeBlock\",(function(){return n.DerivativeBlock})),i.d(t,\"FragCoordBlock\",(function(){return n.FragCoordBlock})),i.d(t,\"ScreenSizeBlock\",(function(){return n.ScreenSizeBlock})),i.d(t,\"FogBlock\",(function(){return n.FogBlock})),i.d(t,\"LightBlock\",(function(){return n.LightBlock})),i.d(t,\"TextureBlock\",(function(){return n.TextureBlock})),i.d(t,\"ReflectionTextureBlock\",(function(){return n.ReflectionTextureBlock})),i.d(t,\"CurrentScreenBlock\",(function(){return n.CurrentScreenBlock})),i.d(t,\"InputBlock\",(function(){return n.InputBlock})),i.d(t,\"AnimatedInputBlockTypes\",(function(){return n.AnimatedInputBlockTypes})),i.d(t,\"MultiplyBlock\",(function(){return n.MultiplyBlock})),i.d(t,\"AddBlock\",(function(){return n.AddBlock})),i.d(t,\"ScaleBlock\",(function(){return n.ScaleBlock})),i.d(t,\"ClampBlock\",(function(){return n.ClampBlock})),i.d(t,\"CrossBlock\",(function(){return n.CrossBlock})),i.d(t,\"DotBlock\",(function(){return n.DotBlock})),i.d(t,\"TransformBlock\",(function(){return n.TransformBlock})),i.d(t,\"RemapBlock\",(function(){return n.RemapBlock})),i.d(t,\"NormalizeBlock\",(function(){return n.NormalizeBlock})),i.d(t,\"TrigonometryBlockOperations\",(function(){return n.TrigonometryBlockOperations})),i.d(t,\"TrigonometryBlock\",(function(){return n.TrigonometryBlock})),i.d(t,\"ColorMergerBlock\",(function(){return n.ColorMergerBlock})),i.d(t,\"VectorMergerBlock\",(function(){return n.VectorMergerBlock})),i.d(t,\"ColorSplitterBlock\",(function(){return n.ColorSplitterBlock})),i.d(t,\"VectorSplitterBlock\",(function(){return n.VectorSplitterBlock})),i.d(t,\"LerpBlock\",(function(){return n.LerpBlock})),i.d(t,\"DivideBlock\",(function(){return n.DivideBlock})),i.d(t,\"SubtractBlock\",(function(){return n.SubtractBlock})),i.d(t,\"StepBlock\",(function(){return n.StepBlock})),i.d(t,\"OneMinusBlock\",(function(){return n.OneMinusBlock})),i.d(t,\"ViewDirectionBlock\",(function(){return n.ViewDirectionBlock})),i.d(t,\"FresnelBlock\",(function(){return n.FresnelBlock})),i.d(t,\"MaxBlock\",(function(){return n.MaxBlock})),i.d(t,\"MinBlock\",(function(){return n.MinBlock})),i.d(t,\"DistanceBlock\",(function(){return n.DistanceBlock})),i.d(t,\"LengthBlock\",(function(){return n.LengthBlock})),i.d(t,\"NegateBlock\",(function(){return n.NegateBlock})),i.d(t,\"PowBlock\",(function(){return n.PowBlock})),i.d(t,\"RandomNumberBlock\",(function(){return n.RandomNumberBlock})),i.d(t,\"ArcTan2Block\",(function(){return n.ArcTan2Block})),i.d(t,\"SmoothStepBlock\",(function(){return n.SmoothStepBlock})),i.d(t,\"ReciprocalBlock\",(function(){return n.ReciprocalBlock})),i.d(t,\"ReplaceColorBlock\",(function(){return n.ReplaceColorBlock})),i.d(t,\"PosterizeBlock\",(function(){return n.PosterizeBlock})),i.d(t,\"WaveBlockKind\",(function(){return n.WaveBlockKind})),i.d(t,\"WaveBlock\",(function(){return n.WaveBlock})),i.d(t,\"GradientBlockColorStep\",(function(){return n.GradientBlockColorStep})),i.d(t,\"GradientBlock\",(function(){return n.GradientBlock})),i.d(t,\"NLerpBlock\",(function(){return n.NLerpBlock})),i.d(t,\"WorleyNoise3DBlock\",(function(){return n.WorleyNoise3DBlock})),i.d(t,\"SimplexPerlin3DBlock\",(function(){return n.SimplexPerlin3DBlock})),i.d(t,\"NormalBlendBlock\",(function(){return n.NormalBlendBlock})),i.d(t,\"Rotate2dBlock\",(function(){return n.Rotate2dBlock})),i.d(t,\"ReflectBlock\",(function(){return n.ReflectBlock})),i.d(t,\"RefractBlock\",(function(){return n.RefractBlock})),i.d(t,\"DesaturateBlock\",(function(){return n.DesaturateBlock})),i.d(t,\"PBRMetallicRoughnessBlock\",(function(){return n.PBRMetallicRoughnessBlock})),i.d(t,\"SheenBlock\",(function(){return n.SheenBlock})),i.d(t,\"AnisotropyBlock\",(function(){return n.AnisotropyBlock})),i.d(t,\"ReflectionBlock\",(function(){return n.ReflectionBlock})),i.d(t,\"ClearCoatBlock\",(function(){return n.ClearCoatBlock})),i.d(t,\"RefractionBlock\",(function(){return n.RefractionBlock})),i.d(t,\"SubSurfaceBlock\",(function(){return n.SubSurfaceBlock})),i.d(t,\"ParticleTextureBlock\",(function(){return n.ParticleTextureBlock})),i.d(t,\"ParticleRampGradientBlock\",(function(){return n.ParticleRampGradientBlock})),i.d(t,\"ParticleBlendMultiplyBlock\",(function(){return n.ParticleBlendMultiplyBlock})),i.d(t,\"ModBlock\",(function(){return n.ModBlock})),i.d(t,\"NodeMaterialOptimizer\",(function(){return n.NodeMaterialOptimizer})),i.d(t,\"PropertyTypeForEdition\",(function(){return n.PropertyTypeForEdition})),i.d(t,\"editableInPropertyPage\",(function(){return n.editableInPropertyPage})),i.d(t,\"EffectRenderer\",(function(){return n.EffectRenderer})),i.d(t,\"EffectWrapper\",(function(){return n.EffectWrapper})),i.d(t,\"ShadowDepthWrapper\",(function(){return n.ShadowDepthWrapper})),i.d(t,\"Scalar\",(function(){return n.Scalar})),i.d(t,\"extractMinAndMaxIndexed\",(function(){return n.extractMinAndMaxIndexed})),i.d(t,\"extractMinAndMax\",(function(){return n.extractMinAndMax})),i.d(t,\"Space\",(function(){return n.Space})),i.d(t,\"Axis\",(function(){return n.Axis})),i.d(t,\"Coordinate\",(function(){return n.Coordinate})),i.d(t,\"Color3\",(function(){return n.Color3})),i.d(t,\"Color4\",(function(){return n.Color4})),i.d(t,\"TmpColors\",(function(){return n.TmpColors})),i.d(t,\"ToGammaSpace\",(function(){return n.ToGammaSpace})),i.d(t,\"ToLinearSpace\",(function(){return n.ToLinearSpace})),i.d(t,\"Epsilon\",(function(){return n.Epsilon})),i.d(t,\"Frustum\",(function(){return n.Frustum})),i.d(t,\"Orientation\",(function(){return n.Orientation})),i.d(t,\"BezierCurve\",(function(){return n.BezierCurve})),i.d(t,\"Angle\",(function(){return n.Angle})),i.d(t,\"Arc2\",(function(){return n.Arc2})),i.d(t,\"Path2\",(function(){return n.Path2})),i.d(t,\"Path3D\",(function(){return n.Path3D})),i.d(t,\"Curve3\",(function(){return n.Curve3})),i.d(t,\"Plane\",(function(){return n.Plane})),i.d(t,\"Size\",(function(){return n.Size})),i.d(t,\"Vector2\",(function(){return n.Vector2})),i.d(t,\"Vector3\",(function(){return n.Vector3})),i.d(t,\"Vector4\",(function(){return n.Vector4})),i.d(t,\"Quaternion\",(function(){return n.Quaternion})),i.d(t,\"Matrix\",(function(){return n.Matrix})),i.d(t,\"TmpVectors\",(function(){return n.TmpVectors})),i.d(t,\"PositionNormalVertex\",(function(){return n.PositionNormalVertex})),i.d(t,\"PositionNormalTextureVertex\",(function(){return n.PositionNormalTextureVertex})),i.d(t,\"Viewport\",(function(){return n.Viewport})),i.d(t,\"SphericalHarmonics\",(function(){return n.SphericalHarmonics})),i.d(t,\"SphericalPolynomial\",(function(){return n.SphericalPolynomial})),i.d(t,\"AbstractMesh\",(function(){return n.AbstractMesh})),i.d(t,\"Buffer\",(function(){return n.Buffer})),i.d(t,\"VertexBuffer\",(function(){return n.VertexBuffer})),i.d(t,\"DracoCompression\",(function(){return n.DracoCompression})),i.d(t,\"CSG\",(function(){return n.CSG})),i.d(t,\"Geometry\",(function(){return n.Geometry})),i.d(t,\"GroundMesh\",(function(){return n.GroundMesh})),i.d(t,\"TrailMesh\",(function(){return n.TrailMesh})),i.d(t,\"InstancedMesh\",(function(){return n.InstancedMesh})),i.d(t,\"LinesMesh\",(function(){return n.LinesMesh})),i.d(t,\"InstancedLinesMesh\",(function(){return n.InstancedLinesMesh})),i.d(t,\"_CreationDataStorage\",(function(){return n._CreationDataStorage})),i.d(t,\"_InstancesBatch\",(function(){return n._InstancesBatch})),i.d(t,\"Mesh\",(function(){return n.Mesh})),i.d(t,\"VertexData\",(function(){return n.VertexData})),i.d(t,\"MeshBuilder\",(function(){return n.MeshBuilder})),i.d(t,\"SimplificationSettings\",(function(){return n.SimplificationSettings})),i.d(t,\"SimplificationQueue\",(function(){return n.SimplificationQueue})),i.d(t,\"SimplificationType\",(function(){return n.SimplificationType})),i.d(t,\"QuadraticErrorSimplification\",(function(){return n.QuadraticErrorSimplification})),i.d(t,\"SimplicationQueueSceneComponent\",(function(){return n.SimplicationQueueSceneComponent})),i.d(t,\"Polygon\",(function(){return n.Polygon})),i.d(t,\"PolygonMeshBuilder\",(function(){return n.PolygonMeshBuilder})),i.d(t,\"SubMesh\",(function(){return n.SubMesh})),i.d(t,\"MeshLODLevel\",(function(){return n.MeshLODLevel})),i.d(t,\"TransformNode\",(function(){return n.TransformNode})),i.d(t,\"BoxBuilder\",(function(){return n.BoxBuilder})),i.d(t,\"TiledBoxBuilder\",(function(){return n.TiledBoxBuilder})),i.d(t,\"DiscBuilder\",(function(){return n.DiscBuilder})),i.d(t,\"RibbonBuilder\",(function(){return n.RibbonBuilder})),i.d(t,\"SphereBuilder\",(function(){return n.SphereBuilder})),i.d(t,\"HemisphereBuilder\",(function(){return n.HemisphereBuilder})),i.d(t,\"CylinderBuilder\",(function(){return n.CylinderBuilder})),i.d(t,\"TorusBuilder\",(function(){return n.TorusBuilder})),i.d(t,\"TorusKnotBuilder\",(function(){return n.TorusKnotBuilder})),i.d(t,\"LinesBuilder\",(function(){return n.LinesBuilder})),i.d(t,\"PolygonBuilder\",(function(){return n.PolygonBuilder})),i.d(t,\"ShapeBuilder\",(function(){return n.ShapeBuilder})),i.d(t,\"LatheBuilder\",(function(){return n.LatheBuilder})),i.d(t,\"PlaneBuilder\",(function(){return n.PlaneBuilder})),i.d(t,\"TiledPlaneBuilder\",(function(){return n.TiledPlaneBuilder})),i.d(t,\"GroundBuilder\",(function(){return n.GroundBuilder})),i.d(t,\"TubeBuilder\",(function(){return n.TubeBuilder})),i.d(t,\"PolyhedronBuilder\",(function(){return n.PolyhedronBuilder})),i.d(t,\"IcoSphereBuilder\",(function(){return n.IcoSphereBuilder})),i.d(t,\"DecalBuilder\",(function(){return n.DecalBuilder})),i.d(t,\"CapsuleBuilder\",(function(){return n.CapsuleBuilder})),i.d(t,\"DataBuffer\",(function(){return n.DataBuffer})),i.d(t,\"WebGLDataBuffer\",(function(){return n.WebGLDataBuffer})),i.d(t,\"MorphTarget\",(function(){return n.MorphTarget})),i.d(t,\"MorphTargetManager\",(function(){return n.MorphTargetManager})),i.d(t,\"RecastJSPlugin\",(function(){return n.RecastJSPlugin})),i.d(t,\"RecastJSCrowd\",(function(){return n.RecastJSCrowd})),i.d(t,\"Node\",(function(){return n.Node})),i.d(t,\"Database\",(function(){return n.Database})),i.d(t,\"BaseParticleSystem\",(function(){return n.BaseParticleSystem})),i.d(t,\"BoxParticleEmitter\",(function(){return n.BoxParticleEmitter})),i.d(t,\"ConeParticleEmitter\",(function(){return n.ConeParticleEmitter})),i.d(t,\"CylinderParticleEmitter\",(function(){return n.CylinderParticleEmitter})),i.d(t,\"CylinderDirectedParticleEmitter\",(function(){return n.CylinderDirectedParticleEmitter})),i.d(t,\"HemisphericParticleEmitter\",(function(){return n.HemisphericParticleEmitter})),i.d(t,\"PointParticleEmitter\",(function(){return n.PointParticleEmitter})),i.d(t,\"SphereParticleEmitter\",(function(){return n.SphereParticleEmitter})),i.d(t,\"SphereDirectedParticleEmitter\",(function(){return n.SphereDirectedParticleEmitter})),i.d(t,\"CustomParticleEmitter\",(function(){return n.CustomParticleEmitter})),i.d(t,\"MeshParticleEmitter\",(function(){return n.MeshParticleEmitter})),i.d(t,\"GPUParticleSystem\",(function(){return n.GPUParticleSystem})),i.d(t,\"Particle\",(function(){return n.Particle})),i.d(t,\"ParticleHelper\",(function(){return n.ParticleHelper})),i.d(t,\"ParticleSystem\",(function(){return n.ParticleSystem})),i.d(t,\"ParticleSystemSet\",(function(){return n.ParticleSystemSet})),i.d(t,\"SolidParticle\",(function(){return n.SolidParticle})),i.d(t,\"ModelShape\",(function(){return n.ModelShape})),i.d(t,\"DepthSortedParticle\",(function(){return n.DepthSortedParticle})),i.d(t,\"SolidParticleVertex\",(function(){return n.SolidParticleVertex})),i.d(t,\"SolidParticleSystem\",(function(){return n.SolidParticleSystem})),i.d(t,\"CloudPoint\",(function(){return n.CloudPoint})),i.d(t,\"PointsGroup\",(function(){return n.PointsGroup})),i.d(t,\"PointColor\",(function(){return n.PointColor})),i.d(t,\"PointsCloudSystem\",(function(){return n.PointsCloudSystem})),i.d(t,\"SubEmitterType\",(function(){return n.SubEmitterType})),i.d(t,\"SubEmitter\",(function(){return n.SubEmitter})),i.d(t,\"PhysicsEngine\",(function(){return n.PhysicsEngine})),i.d(t,\"PhysicsEngineSceneComponent\",(function(){return n.PhysicsEngineSceneComponent})),i.d(t,\"PhysicsHelper\",(function(){return n.PhysicsHelper})),i.d(t,\"PhysicsRadialExplosionEventOptions\",(function(){return n.PhysicsRadialExplosionEventOptions})),i.d(t,\"PhysicsUpdraftEventOptions\",(function(){return n.PhysicsUpdraftEventOptions})),i.d(t,\"PhysicsVortexEventOptions\",(function(){return n.PhysicsVortexEventOptions})),i.d(t,\"PhysicsRadialImpulseFalloff\",(function(){return n.PhysicsRadialImpulseFalloff})),i.d(t,\"PhysicsUpdraftMode\",(function(){return n.PhysicsUpdraftMode})),i.d(t,\"PhysicsImpostor\",(function(){return n.PhysicsImpostor})),i.d(t,\"PhysicsJoint\",(function(){return n.PhysicsJoint})),i.d(t,\"DistanceJoint\",(function(){return n.DistanceJoint})),i.d(t,\"MotorEnabledJoint\",(function(){return n.MotorEnabledJoint})),i.d(t,\"HingeJoint\",(function(){return n.HingeJoint})),i.d(t,\"Hinge2Joint\",(function(){return n.Hinge2Joint})),i.d(t,\"CannonJSPlugin\",(function(){return n.CannonJSPlugin})),i.d(t,\"AmmoJSPlugin\",(function(){return n.AmmoJSPlugin})),i.d(t,\"OimoJSPlugin\",(function(){return n.OimoJSPlugin})),i.d(t,\"AnaglyphPostProcess\",(function(){return n.AnaglyphPostProcess})),i.d(t,\"BlackAndWhitePostProcess\",(function(){return n.BlackAndWhitePostProcess})),i.d(t,\"BloomEffect\",(function(){return n.BloomEffect})),i.d(t,\"BloomMergePostProcess\",(function(){return n.BloomMergePostProcess})),i.d(t,\"BlurPostProcess\",(function(){return n.BlurPostProcess})),i.d(t,\"ChromaticAberrationPostProcess\",(function(){return n.ChromaticAberrationPostProcess})),i.d(t,\"CircleOfConfusionPostProcess\",(function(){return n.CircleOfConfusionPostProcess})),i.d(t,\"ColorCorrectionPostProcess\",(function(){return n.ColorCorrectionPostProcess})),i.d(t,\"ConvolutionPostProcess\",(function(){return n.ConvolutionPostProcess})),i.d(t,\"DepthOfFieldBlurPostProcess\",(function(){return n.DepthOfFieldBlurPostProcess})),i.d(t,\"DepthOfFieldEffectBlurLevel\",(function(){return n.DepthOfFieldEffectBlurLevel})),i.d(t,\"DepthOfFieldEffect\",(function(){return n.DepthOfFieldEffect})),i.d(t,\"DepthOfFieldMergePostProcessOptions\",(function(){return n.DepthOfFieldMergePostProcessOptions})),i.d(t,\"DepthOfFieldMergePostProcess\",(function(){return n.DepthOfFieldMergePostProcess})),i.d(t,\"DisplayPassPostProcess\",(function(){return n.DisplayPassPostProcess})),i.d(t,\"ExtractHighlightsPostProcess\",(function(){return n.ExtractHighlightsPostProcess})),i.d(t,\"FilterPostProcess\",(function(){return n.FilterPostProcess})),i.d(t,\"FxaaPostProcess\",(function(){return n.FxaaPostProcess})),i.d(t,\"GrainPostProcess\",(function(){return n.GrainPostProcess})),i.d(t,\"HighlightsPostProcess\",(function(){return n.HighlightsPostProcess})),i.d(t,\"ImageProcessingPostProcess\",(function(){return n.ImageProcessingPostProcess})),i.d(t,\"MotionBlurPostProcess\",(function(){return n.MotionBlurPostProcess})),i.d(t,\"PassPostProcess\",(function(){return n.PassPostProcess})),i.d(t,\"PassCubePostProcess\",(function(){return n.PassCubePostProcess})),i.d(t,\"PostProcess\",(function(){return n.PostProcess})),i.d(t,\"PostProcessManager\",(function(){return n.PostProcessManager})),i.d(t,\"RefractionPostProcess\",(function(){return n.RefractionPostProcess})),i.d(t,\"DefaultRenderingPipeline\",(function(){return n.DefaultRenderingPipeline})),i.d(t,\"LensRenderingPipeline\",(function(){return n.LensRenderingPipeline})),i.d(t,\"SSAO2RenderingPipeline\",(function(){return n.SSAO2RenderingPipeline})),i.d(t,\"SSAORenderingPipeline\",(function(){return n.SSAORenderingPipeline})),i.d(t,\"StandardRenderingPipeline\",(function(){return n.StandardRenderingPipeline})),i.d(t,\"PostProcessRenderEffect\",(function(){return n.PostProcessRenderEffect})),i.d(t,\"PostProcessRenderPipeline\",(function(){return n.PostProcessRenderPipeline})),i.d(t,\"PostProcessRenderPipelineManager\",(function(){return n.PostProcessRenderPipelineManager})),i.d(t,\"PostProcessRenderPipelineManagerSceneComponent\",(function(){return n.PostProcessRenderPipelineManagerSceneComponent})),i.d(t,\"SharpenPostProcess\",(function(){return n.SharpenPostProcess})),i.d(t,\"StereoscopicInterlacePostProcessI\",(function(){return n.StereoscopicInterlacePostProcessI})),i.d(t,\"StereoscopicInterlacePostProcess\",(function(){return n.StereoscopicInterlacePostProcess})),i.d(t,\"TonemappingOperator\",(function(){return n.TonemappingOperator})),i.d(t,\"TonemapPostProcess\",(function(){return n.TonemapPostProcess})),i.d(t,\"VolumetricLightScatteringPostProcess\",(function(){return n.VolumetricLightScatteringPostProcess})),i.d(t,\"VRDistortionCorrectionPostProcess\",(function(){return n.VRDistortionCorrectionPostProcess})),i.d(t,\"VRMultiviewToSingleviewPostProcess\",(function(){return n.VRMultiviewToSingleviewPostProcess})),i.d(t,\"ScreenSpaceReflectionPostProcess\",(function(){return n.ScreenSpaceReflectionPostProcess})),i.d(t,\"ScreenSpaceCurvaturePostProcess\",(function(){return n.ScreenSpaceCurvaturePostProcess})),i.d(t,\"ReflectionProbe\",(function(){return n.ReflectionProbe})),i.d(t,\"BoundingBoxRenderer\",(function(){return n.BoundingBoxRenderer})),i.d(t,\"DepthRenderer\",(function(){return n.DepthRenderer})),i.d(t,\"DepthRendererSceneComponent\",(function(){return n.DepthRendererSceneComponent})),i.d(t,\"EdgesRenderer\",(function(){return n.EdgesRenderer})),i.d(t,\"LineEdgesRenderer\",(function(){return n.LineEdgesRenderer})),i.d(t,\"GeometryBufferRenderer\",(function(){return n.GeometryBufferRenderer})),i.d(t,\"GeometryBufferRendererSceneComponent\",(function(){return n.GeometryBufferRendererSceneComponent})),i.d(t,\"PrePassRenderer\",(function(){return n.PrePassRenderer})),i.d(t,\"PrePassRendererSceneComponent\",(function(){return n.PrePassRendererSceneComponent})),i.d(t,\"SubSurfaceSceneComponent\",(function(){return n.SubSurfaceSceneComponent})),i.d(t,\"OutlineRenderer\",(function(){return n.OutlineRenderer})),i.d(t,\"RenderingGroup\",(function(){return n.RenderingGroup})),i.d(t,\"RenderingGroupInfo\",(function(){return n.RenderingGroupInfo})),i.d(t,\"RenderingManager\",(function(){return n.RenderingManager})),i.d(t,\"UtilityLayerRenderer\",(function(){return n.UtilityLayerRenderer})),i.d(t,\"Scene\",(function(){return n.Scene})),i.d(t,\"SceneComponentConstants\",(function(){return n.SceneComponentConstants})),i.d(t,\"Stage\",(function(){return n.Stage})),i.d(t,\"Sprite\",(function(){return n.Sprite})),i.d(t,\"SpriteManager\",(function(){return n.SpriteManager})),i.d(t,\"SpriteMap\",(function(){return n.SpriteMap})),i.d(t,\"SpritePackedManager\",(function(){return n.SpritePackedManager})),i.d(t,\"SpriteSceneComponent\",(function(){return n.SpriteSceneComponent})),i.d(t,\"AlphaState\",(function(){return n.AlphaState})),i.d(t,\"DepthCullingState\",(function(){return n.DepthCullingState})),i.d(t,\"StencilState\",(function(){return n.StencilState})),i.d(t,\"AndOrNotEvaluator\",(function(){return n.AndOrNotEvaluator})),i.d(t,\"AssetTaskState\",(function(){return n.AssetTaskState})),i.d(t,\"AbstractAssetTask\",(function(){return n.AbstractAssetTask})),i.d(t,\"AssetsProgressEvent\",(function(){return n.AssetsProgressEvent})),i.d(t,\"ContainerAssetTask\",(function(){return n.ContainerAssetTask})),i.d(t,\"MeshAssetTask\",(function(){return n.MeshAssetTask})),i.d(t,\"TextFileAssetTask\",(function(){return n.TextFileAssetTask})),i.d(t,\"BinaryFileAssetTask\",(function(){return n.BinaryFileAssetTask})),i.d(t,\"ImageAssetTask\",(function(){return n.ImageAssetTask})),i.d(t,\"TextureAssetTask\",(function(){return n.TextureAssetTask})),i.d(t,\"CubeTextureAssetTask\",(function(){return n.CubeTextureAssetTask})),i.d(t,\"HDRCubeTextureAssetTask\",(function(){return n.HDRCubeTextureAssetTask})),i.d(t,\"EquiRectangularCubeTextureAssetTask\",(function(){return n.EquiRectangularCubeTextureAssetTask})),i.d(t,\"AssetsManager\",(function(){return n.AssetsManager})),i.d(t,\"BasisTranscodeConfiguration\",(function(){return n.BasisTranscodeConfiguration})),i.d(t,\"BasisTools\",(function(){return n.BasisTools})),i.d(t,\"DDSTools\",(function(){return n.DDSTools})),i.d(t,\"expandToProperty\",(function(){return n.expandToProperty})),i.d(t,\"serialize\",(function(){return n.serialize})),i.d(t,\"serializeAsTexture\",(function(){return n.serializeAsTexture})),i.d(t,\"serializeAsColor3\",(function(){return n.serializeAsColor3})),i.d(t,\"serializeAsFresnelParameters\",(function(){return n.serializeAsFresnelParameters})),i.d(t,\"serializeAsVector2\",(function(){return n.serializeAsVector2})),i.d(t,\"serializeAsVector3\",(function(){return n.serializeAsVector3})),i.d(t,\"serializeAsMeshReference\",(function(){return n.serializeAsMeshReference})),i.d(t,\"serializeAsColorCurves\",(function(){return n.serializeAsColorCurves})),i.d(t,\"serializeAsColor4\",(function(){return n.serializeAsColor4})),i.d(t,\"serializeAsImageProcessingConfiguration\",(function(){return n.serializeAsImageProcessingConfiguration})),i.d(t,\"serializeAsQuaternion\",(function(){return n.serializeAsQuaternion})),i.d(t,\"serializeAsMatrix\",(function(){return n.serializeAsMatrix})),i.d(t,\"serializeAsCameraReference\",(function(){return n.serializeAsCameraReference})),i.d(t,\"SerializationHelper\",(function(){return n.SerializationHelper})),i.d(t,\"Deferred\",(function(){return n.Deferred})),i.d(t,\"EnvironmentTextureTools\",(function(){return n.EnvironmentTextureTools})),i.d(t,\"MeshExploder\",(function(){return n.MeshExploder})),i.d(t,\"FilesInput\",(function(){return n.FilesInput})),i.d(t,\"CubeMapToSphericalPolynomialTools\",(function(){return n.CubeMapToSphericalPolynomialTools})),i.d(t,\"HDRTools\",(function(){return n.HDRTools})),i.d(t,\"PanoramaToCubeMapTools\",(function(){return n.PanoramaToCubeMapTools})),i.d(t,\"KhronosTextureContainer\",(function(){return n.KhronosTextureContainer})),i.d(t,\"EventState\",(function(){return n.EventState})),i.d(t,\"Observer\",(function(){return n.Observer})),i.d(t,\"MultiObserver\",(function(){return n.MultiObserver})),i.d(t,\"Observable\",(function(){return n.Observable})),i.d(t,\"PerformanceMonitor\",(function(){return n.PerformanceMonitor})),i.d(t,\"RollingAverage\",(function(){return n.RollingAverage})),i.d(t,\"PromisePolyfill\",(function(){return n.PromisePolyfill})),i.d(t,\"SceneOptimization\",(function(){return n.SceneOptimization})),i.d(t,\"TextureOptimization\",(function(){return n.TextureOptimization})),i.d(t,\"HardwareScalingOptimization\",(function(){return n.HardwareScalingOptimization})),i.d(t,\"ShadowsOptimization\",(function(){return n.ShadowsOptimization})),i.d(t,\"PostProcessesOptimization\",(function(){return n.PostProcessesOptimization})),i.d(t,\"LensFlaresOptimization\",(function(){return n.LensFlaresOptimization})),i.d(t,\"CustomOptimization\",(function(){return n.CustomOptimization})),i.d(t,\"ParticlesOptimization\",(function(){return n.ParticlesOptimization})),i.d(t,\"RenderTargetsOptimization\",(function(){return n.RenderTargetsOptimization})),i.d(t,\"MergeMeshesOptimization\",(function(){return n.MergeMeshesOptimization})),i.d(t,\"SceneOptimizerOptions\",(function(){return n.SceneOptimizerOptions})),i.d(t,\"SceneOptimizer\",(function(){return n.SceneOptimizer})),i.d(t,\"SceneSerializer\",(function(){return n.SceneSerializer})),i.d(t,\"SmartArray\",(function(){return n.SmartArray})),i.d(t,\"SmartArrayNoDuplicate\",(function(){return n.SmartArrayNoDuplicate})),i.d(t,\"StringDictionary\",(function(){return n.StringDictionary})),i.d(t,\"Tags\",(function(){return n.Tags})),i.d(t,\"TextureTools\",(function(){return n.TextureTools})),i.d(t,\"TGATools\",(function(){return n.TGATools})),i.d(t,\"Tools\",(function(){return n.Tools})),i.d(t,\"className\",(function(){return n.className})),i.d(t,\"AsyncLoop\",(function(){return n.AsyncLoop})),i.d(t,\"VideoRecorder\",(function(){return n.VideoRecorder})),i.d(t,\"JoystickAxis\",(function(){return n.JoystickAxis})),i.d(t,\"VirtualJoystick\",(function(){return n.VirtualJoystick})),i.d(t,\"WorkerPool\",(function(){return n.WorkerPool})),i.d(t,\"Logger\",(function(){return n.Logger})),i.d(t,\"_TypeStore\",(function(){return n._TypeStore})),i.d(t,\"FilesInputStore\",(function(){return n.FilesInputStore})),i.d(t,\"DeepCopier\",(function(){return n.DeepCopier})),i.d(t,\"PivotTools\",(function(){return n.PivotTools})),i.d(t,\"PrecisionDate\",(function(){return n.PrecisionDate})),i.d(t,\"ScreenshotTools\",(function(){return n.ScreenshotTools})),i.d(t,\"WebRequest\",(function(){return n.WebRequest})),i.d(t,\"InspectableType\",(function(){return n.InspectableType})),i.d(t,\"BRDFTextureTools\",(function(){return n.BRDFTextureTools})),i.d(t,\"RGBDTextureTools\",(function(){return n.RGBDTextureTools})),i.d(t,\"ColorGradient\",(function(){return n.ColorGradient})),i.d(t,\"Color3Gradient\",(function(){return n.Color3Gradient})),i.d(t,\"FactorGradient\",(function(){return n.FactorGradient})),i.d(t,\"GradientHelper\",(function(){return n.GradientHelper})),i.d(t,\"PerfCounter\",(function(){return n.PerfCounter})),i.d(t,\"RetryStrategy\",(function(){return n.RetryStrategy})),i.d(t,\"CanvasGenerator\",(function(){return n.CanvasGenerator})),i.d(t,\"LoadFileError\",(function(){return n.LoadFileError})),i.d(t,\"RequestFileError\",(function(){return n.RequestFileError})),i.d(t,\"ReadFileError\",(function(){return n.ReadFileError})),i.d(t,\"FileTools\",(function(){return n.FileTools})),i.d(t,\"StringTools\",(function(){return n.StringTools})),i.d(t,\"DataReader\",(function(){return n.DataReader})),i.d(t,\"MinMaxReducer\",(function(){return n.MinMaxReducer})),i.d(t,\"DepthReducer\",(function(){return n.DepthReducer})),i.d(t,\"DataStorage\",(function(){return n.DataStorage})),i.d(t,\"SceneRecorder\",(function(){return n.SceneRecorder})),i.d(t,\"KhronosTextureContainer2\",(function(){return n.KhronosTextureContainer2})),i.d(t,\"Trajectory\",(function(){return n.Trajectory})),i.d(t,\"TrajectoryClassifier\",(function(){return n.TrajectoryClassifier})),i.d(t,\"TimerState\",(function(){return n.TimerState})),i.d(t,\"setAndStartTimer\",(function(){return n.setAndStartTimer})),i.d(t,\"AdvancedTimer\",(function(){return n.AdvancedTimer})),i.d(t,\"CopyTools\",(function(){return n.CopyTools})),i.d(t,\"WebXRCamera\",(function(){return n.WebXRCamera})),i.d(t,\"WebXREnterExitUIButton\",(function(){return n.WebXREnterExitUIButton})),i.d(t,\"WebXREnterExitUIOptions\",(function(){return n.WebXREnterExitUIOptions})),i.d(t,\"WebXREnterExitUI\",(function(){return n.WebXREnterExitUI})),i.d(t,\"WebXRExperienceHelper\",(function(){return n.WebXRExperienceHelper})),i.d(t,\"WebXRInput\",(function(){return n.WebXRInput})),i.d(t,\"WebXRInputSource\",(function(){return n.WebXRInputSource})),i.d(t,\"WebXRManagedOutputCanvasOptions\",(function(){return n.WebXRManagedOutputCanvasOptions})),i.d(t,\"WebXRManagedOutputCanvas\",(function(){return n.WebXRManagedOutputCanvas})),i.d(t,\"WebXRState\",(function(){return n.WebXRState})),i.d(t,\"WebXRTrackingState\",(function(){return n.WebXRTrackingState})),i.d(t,\"WebXRSessionManager\",(function(){return n.WebXRSessionManager})),i.d(t,\"WebXRDefaultExperienceOptions\",(function(){return n.WebXRDefaultExperienceOptions})),i.d(t,\"WebXRDefaultExperience\",(function(){return n.WebXRDefaultExperience})),i.d(t,\"WebXRFeatureName\",(function(){return n.WebXRFeatureName})),i.d(t,\"WebXRFeaturesManager\",(function(){return n.WebXRFeaturesManager})),i.d(t,\"WebXRAbstractFeature\",(function(){return n.WebXRAbstractFeature})),i.d(t,\"WebXRHitTestLegacy\",(function(){return n.WebXRHitTestLegacy})),i.d(t,\"WebXRAnchorSystem\",(function(){return n.WebXRAnchorSystem})),i.d(t,\"WebXRPlaneDetector\",(function(){return n.WebXRPlaneDetector})),i.d(t,\"WebXRBackgroundRemover\",(function(){return n.WebXRBackgroundRemover})),i.d(t,\"WebXRMotionControllerTeleportation\",(function(){return n.WebXRMotionControllerTeleportation})),i.d(t,\"WebXRControllerPointerSelection\",(function(){return n.WebXRControllerPointerSelection})),i.d(t,\"IWebXRControllerPhysicsOptions\",(function(){return n.IWebXRControllerPhysicsOptions})),i.d(t,\"WebXRControllerPhysics\",(function(){return n.WebXRControllerPhysics})),i.d(t,\"WebXRHitTest\",(function(){return n.WebXRHitTest})),i.d(t,\"WebXRFeaturePointSystem\",(function(){return n.WebXRFeaturePointSystem})),i.d(t,\"WebXRHand\",(function(){return n.WebXRHand})),i.d(t,\"WebXRHandTracking\",(function(){return n.WebXRHandTracking})),i.d(t,\"WebXRAbstractMotionController\",(function(){return n.WebXRAbstractMotionController})),i.d(t,\"WebXRControllerComponent\",(function(){return n.WebXRControllerComponent})),i.d(t,\"WebXRGenericTriggerMotionController\",(function(){return n.WebXRGenericTriggerMotionController})),i.d(t,\"WebXRMicrosoftMixedRealityController\",(function(){return n.WebXRMicrosoftMixedRealityController})),i.d(t,\"WebXRMotionControllerManager\",(function(){return n.WebXRMotionControllerManager})),i.d(t,\"WebXROculusTouchMotionController\",(function(){return n.WebXROculusTouchMotionController})),i.d(t,\"WebXRHTCViveMotionController\",(function(){return n.WebXRHTCViveMotionController})),i.d(t,\"WebXRProfiledMotionController\",(function(){return n.WebXRProfiledMotionController}));var o=void 0!==e?e:\"undefined\"!=typeof window?window:void 0;if(void 0!==o){o.BABYLON=a,o.BABYLON=o.BABYLON||{};var a=o.BABYLON;a.Debug=a.Debug||{};var s=[];for(var c in r)a.Debug[c]=r[c],s.push(c);for(var c in n)a[c]=n[c]}var l={AxesViewer:r.AxesViewer,BoneAxesViewer:r.BoneAxesViewer,PhysicsViewer:r.PhysicsViewer,SkeletonViewer:r.SkeletonViewer}}.call(this,i(159))}])}));","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t(require(\"babylonjs\")):\"function\"==typeof define&&define.amd?define(\"babylonjs-loaders\",[\"babylonjs\"],t):\"object\"==typeof exports?exports[\"babylonjs-loaders\"]=t(require(\"babylonjs\")):e.LOADERS=t(e.BABYLON)}(\"undefined\"!=typeof self?self:\"undefined\"!=typeof global?global:this,(function(e){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=20)}([function(t,n){t.exports=e},function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return a})),n.d(t,\"b\",(function(){return i}));var r=n(0),o=n(2),a=function(){function e(){}return e.Get=function(e,t,n){if(!t||null==n||!t[n])throw new Error(e+\": Failed to find index (\"+n+\")\");return t[n]},e.Assign=function(e){if(e)for(var t=0;t \"+o.GLTFLoaderState[o.GLTFLoaderState.READY],s=o.GLTFLoaderState[o.GLTFLoaderState.LOADING]+\" => \"+o.GLTFLoaderState[o.GLTFLoaderState.COMPLETE];n._parent._startPerformanceCounter(i),n._parent._startPerformanceCounter(s),n._setState(o.GLTFLoaderState.LOADING),n._extensionsOnLoading();var l=new Array,u=n._babylonScene.blockMaterialDirtyMechanism;if(n._babylonScene.blockMaterialDirtyMechanism=!0,e)l.push(n.loadSceneAsync(\"/nodes\",{nodes:e,index:-1}));else if(null!=n._gltf.scene||n._gltf.scenes&&n._gltf.scenes[0]){var c=a.Get(\"/scene\",n._gltf.scenes,n._gltf.scene||0);l.push(n.loadSceneAsync(\"/scenes/\"+c.index,c))}if(n.parent.loadAllMaterials&&n._gltf.materials)for(var d=0;de.bin.byteLength)&&r.Logger.Warn(\"Binary buffer length (\"+n.byteLength+\") from JSON does not match chunk length (\"+e.bin.byteLength+\")\"),this._bin=e.bin}else r.Logger.Warn(\"Unexpected BIN chunk\")}},e.prototype._setupData=function(){if(a.Assign(this._gltf.accessors),a.Assign(this._gltf.animations),a.Assign(this._gltf.buffers),a.Assign(this._gltf.bufferViews),a.Assign(this._gltf.cameras),a.Assign(this._gltf.images),a.Assign(this._gltf.materials),a.Assign(this._gltf.meshes),a.Assign(this._gltf.nodes),a.Assign(this._gltf.samplers),a.Assign(this._gltf.scenes),a.Assign(this._gltf.skins),a.Assign(this._gltf.textures),this._gltf.nodes){for(var e={},t=0,n=this._gltf.nodes;t=2)throw new Error(t+\"/texCoord: Invalid value (\"+n.texCoord+\")\");var s=a.Get(t+\"/index\",this._gltf.textures,n.index);s._textureInfo=n;var l=this._loadTextureAsync(\"/textures/\"+n.index,s,(function(a){a.coordinatesIndex=n.texCoord||0,e.AddPointerMetadata(a,t),o._parent.onTextureLoadedObservable.notifyObservers(a),r(a)}));return this.logClose(),l},e.prototype._loadTextureAsync=function(t,n,r){void 0===r&&(r=function(){});var o=this._extensionsLoadTextureAsync(t,n,r);if(o)return o;this.logOpen(t+\" \"+(n.name||\"\"));var i=null==n.sampler?e.DefaultSampler:a.Get(t+\"/sampler\",this._gltf.samplers,n.sampler),s=a.Get(t+\"/source\",this._gltf.images,n.source),l=this._createTextureAsync(t,i,s,r);return this.logClose(),l},e.prototype._createTextureAsync=function(e,t,n,o,a){var i=this;void 0===o&&(o=function(){});var s=this._loadSampler(\"/samplers/\"+t.index,t),l=new Array,u=new r.Deferred;this._babylonScene._blockEntityCollection=this._forAssetContainer;var c=new r.Texture(null,this._babylonScene,s.noMipMaps,!1,s.samplingMode,(function(){i._disposed||u.resolve()}),(function(t,n){i._disposed||u.reject(new Error(e+\": \"+(n&&n.message?n.message:t||\"Failed to load texture\")))}),void 0,void 0,void 0,n.mimeType,a);return this._babylonScene._blockEntityCollection=!1,l.push(u.promise),l.push(this.loadImageAsync(\"/images/\"+n.index,n).then((function(e){var t=n.uri||i._fileName+\"#image\"+n.index,r=\"data:\"+i._uniqueRootUrl+t;c.updateURL(r,e)}))),c.wrapU=s.wrapU,c.wrapV=s.wrapV,o(c),Promise.all(l).then((function(){return c}))},e.prototype._loadSampler=function(t,n){return n._data||(n._data={noMipMaps:9728===n.minFilter||9729===n.minFilter,samplingMode:e._GetTextureSamplingMode(t,n),wrapU:e._GetTextureWrapMode(t+\"/wrapS\",n.wrapS),wrapV:e._GetTextureWrapMode(t+\"/wrapT\",n.wrapT)}),n._data},e.prototype.loadImageAsync=function(e,t){if(!t._data){if(this.logOpen(e+\" \"+(t.name||\"\")),t.uri)t._data=this.loadUriAsync(e+\"/uri\",t,t.uri);else{var n=a.Get(e+\"/bufferView\",this._gltf.bufferViews,t.bufferView);t._data=this.loadBufferViewAsync(\"/bufferViews/\"+n.index,n)}this.logClose()}return t._data},e.prototype.loadUriAsync=function(t,n,o){var a=this,i=this._extensionsLoadUriAsync(t,n,o);if(i)return i;if(!e._ValidateUri(o))throw new Error(t+\": '\"+o+\"' is invalid\");if(r.Tools.IsBase64(o)){var s=new Uint8Array(r.Tools.DecodeBase64(o));return this.log(\"Decoded \"+o.substr(0,64)+\"... (\"+s.length+\" bytes)\"),Promise.resolve(s)}return this.log(\"Loading \"+o),this._parent.preprocessUrlAsync(this._rootUrl+o).then((function(e){return new Promise((function(n,i){a._parent._loadFile(e,a._babylonScene,(function(e){a._disposed||(a.log(\"Loaded \"+o+\" (\"+e.byteLength+\" bytes)\"),n(new Uint8Array(e)))}),!0,(function(e){i(new r.LoadFileError(t+\": Failed to load '\"+o+\"'\"+(e?\": \"+e.status+\" \"+e.statusText:\"\"),e))}))}))}))},e.AddPointerMetadata=function(e,t){var n=e.metadata=e.metadata||{},r=n.gltf=n.gltf||{};(r.pointers=r.pointers||[]).push(t)},e._GetTextureWrapMode=function(e,t){switch(t=null==t?10497:t){case 33071:return r.Texture.CLAMP_ADDRESSMODE;case 33648:return r.Texture.MIRROR_ADDRESSMODE;case 10497:return r.Texture.WRAP_ADDRESSMODE;default:return r.Logger.Warn(e+\": Invalid value (\"+t+\")\"),r.Texture.WRAP_ADDRESSMODE}},e._GetTextureSamplingMode=function(e,t){var n=null==t.magFilter?9729:t.magFilter,o=null==t.minFilter?9987:t.minFilter;if(9729===n)switch(o){case 9728:return r.Texture.LINEAR_NEAREST;case 9729:return r.Texture.LINEAR_LINEAR;case 9984:return r.Texture.LINEAR_NEAREST_MIPNEAREST;case 9985:return r.Texture.LINEAR_LINEAR_MIPNEAREST;case 9986:return r.Texture.LINEAR_NEAREST_MIPLINEAR;case 9987:return r.Texture.LINEAR_LINEAR_MIPLINEAR;default:return r.Logger.Warn(e+\"/minFilter: Invalid value (\"+o+\")\"),r.Texture.LINEAR_LINEAR_MIPLINEAR}else switch(9728!==n&&r.Logger.Warn(e+\"/magFilter: Invalid value (\"+n+\")\"),o){case 9728:return r.Texture.NEAREST_NEAREST;case 9729:return r.Texture.NEAREST_LINEAR;case 9984:return r.Texture.NEAREST_NEAREST_MIPNEAREST;case 9985:return r.Texture.NEAREST_LINEAR_MIPNEAREST;case 9986:return r.Texture.NEAREST_NEAREST_MIPLINEAR;case 9987:return r.Texture.NEAREST_LINEAR_MIPLINEAR;default:return r.Logger.Warn(e+\"/minFilter: Invalid value (\"+o+\")\"),r.Texture.NEAREST_NEAREST_MIPNEAREST}},e._GetTypedArrayConstructor=function(e,t){switch(t){case 5120:return Int8Array;case 5121:return Uint8Array;case 5122:return Int16Array;case 5123:return Uint16Array;case 5125:return Uint32Array;case 5126:return Float32Array;default:throw new Error(e+\": Invalid component type \"+t)}},e._GetTypedArray=function(t,n,r,o,a){var i=r.buffer;o=r.byteOffset+(o||0);var s=e._GetTypedArrayConstructor(t+\"/componentType\",n);try{return new s(i,o,a)}catch(e){throw new Error(t+\": \"+e)}},e._GetNumComponents=function(e,t){switch(t){case\"SCALAR\":return 1;case\"VEC2\":return 2;case\"VEC3\":return 3;case\"VEC4\":case\"MAT2\":return 4;case\"MAT3\":return 9;case\"MAT4\":return 16}throw new Error(e+\": Invalid type (\"+t+\")\")},e._ValidateUri=function(e){return r.Tools.IsBase64(e)||-1===e.indexOf(\"..\")},e._GetDrawMode=function(e,t){switch(null==t&&(t=4),t){case 0:return r.Material.PointListDrawMode;case 1:return r.Material.LineListDrawMode;case 2:return r.Material.LineLoopDrawMode;case 3:return r.Material.LineStripDrawMode;case 4:return r.Material.TriangleFillMode;case 5:return r.Material.TriangleStripDrawMode;case 6:return r.Material.TriangleFanDrawMode}throw new Error(e+\": Invalid mesh primitive mode (\"+t+\")\")},e.prototype._compileMaterialsAsync=function(){var e=this;this._parent._startPerformanceCounter(\"Compile materials\");var t=new Array;if(this._gltf.materials)for(var n=0,r=this._gltf.materials;n-1&&s.materials.splice(t,1),(t=l.indexOf(e))>-1&&l.splice(t,1)}))}));var u=[];a.onTextureLoadedObservable.add((function(e){u.push(e),e.onDisposeObservable.addOnce((function(){var t=s.textures.indexOf(e);t>-1&&s.textures.splice(t,1),(t=u.indexOf(e))>-1&&u.splice(t,1)}))}));var c=[];return a.onCameraLoadedObservable.add((function(e){c.push(e)})),a._loader.importMeshAsync(null,e,!0,t,n,r,o).then((function(e){return Array.prototype.push.apply(s.geometries,e.geometries),Array.prototype.push.apply(s.meshes,e.meshes),Array.prototype.push.apply(s.particleSystems,e.particleSystems),Array.prototype.push.apply(s.skeletons,e.skeletons),Array.prototype.push.apply(s.animationGroups,e.animationGroups),Array.prototype.push.apply(s.materials,l),Array.prototype.push.apply(s.textures,u),Array.prototype.push.apply(s.lights,e.lights),Array.prototype.push.apply(s.transformNodes,e.transformNodes),Array.prototype.push.apply(s.cameras,c),s}))}))},e.prototype.canDirectLoad=function(t){return-1!==t.indexOf(\"asset\")&&-1!==t.indexOf(\"version\")||i.StringTools.StartsWith(t,\"data:base64,\"+e.magicBase64Encoded)||i.StringTools.StartsWith(t,\"data:application/octet-stream;base64,\"+e.magicBase64Encoded)||i.StringTools.StartsWith(t,\"data:model/gltf-binary;base64,\"+e.magicBase64Encoded)},e.prototype.directLoad=function(t,n){if(i.StringTools.StartsWith(n,\"base64,\"+e.magicBase64Encoded)||i.StringTools.StartsWith(n,\"application/octet-stream;base64,\"+e.magicBase64Encoded)||i.StringTools.StartsWith(n,\"model/gltf-binary;base64,\"+e.magicBase64Encoded)){var r=i.Tools.DecodeBase64(n);return this._validate(t,r),this._unpackBinaryAsync(new i.DataReader({readAsync:function(e,t){return Promise.resolve(new Uint8Array(r,e,t))},byteLength:r.byteLength}))}return this._validate(t,n),Promise.resolve({json:this._parseJson(n)})},e.prototype.createPlugin=function(){return new e},Object.defineProperty(e.prototype,\"loaderState\",{get:function(){return this._loader?this._loader.state:null},enumerable:!1,configurable:!0}),e.prototype.whenCompleteAsync=function(){var e=this;return new Promise((function(t,n){e.onCompleteObservable.addOnce((function(){t()})),e.onErrorObservable.addOnce((function(e){n(e)}))}))},e.prototype._loadFile=function(e,t,n,r,o){var a=this,i=t._loadFile(e,n,(function(e){a._onProgress(e,i)}),void 0,r,o);return i.onCompleteObservable.add((function(e){a._requests.splice(a._requests.indexOf(e),1)})),this._requests.push(i),i},e.prototype._requestFile=function(e,t,n,r,o,a){var i=this,s=t._requestFile(e,n,(function(e){i._onProgress(e,s)}),void 0,r,o,a);return s.onCompleteObservable.add((function(e){i._requests.splice(i._requests.indexOf(e),1)})),this._requests.push(s),s},e.prototype._onProgress=function(e,t){if(this._progressCallback){t._lengthComputable=e.lengthComputable,t._loaded=e.loaded,t._total=e.total;for(var n=!0,r=0,o=0,a=0,i=this._requests;a0)throw new Error(\"Incompatible minimum version: \"+n.minVersion)}var a={1:e._CreateGLTF1Loader,2:e._CreateGLTF2Loader}[r.major];if(!a)throw new Error(\"Unsupported version: \"+n.version);return a(this)},e.prototype._parseJson=function(e){this._startPerformanceCounter(\"Parse JSON\"),this._log(\"JSON length: \"+e.length);var t=JSON.parse(e);return this._endPerformanceCounter(\"Parse JSON\"),t},e.prototype._unpackBinaryAsync=function(e){var t=this;return this._startPerformanceCounter(\"Unpack Binary\"),e.loadAsync(20).then((function(){var n=e.readUint32();if(1179937895!==n)throw new Error(\"Unexpected magic: \"+n);var r=e.readUint32();t.loggingEnabled&&t._log(\"Binary version: \"+r);var o,a=e.readUint32();if(0!==e.buffer.byteLength&&a!==e.buffer.byteLength)throw new Error(\"Length in header does not match actual data length: \"+a+\" != \"+e.buffer.byteLength);switch(r){case 1:o=t._unpackBinaryV1Async(e,a);break;case 2:o=t._unpackBinaryV2Async(e,a);break;default:throw new Error(\"Unsupported version: \"+r)}return t._endPerformanceCounter(\"Unpack Binary\"),o}))},e.prototype._unpackBinaryV1Async=function(e,t){var n=e.readUint32(),r=e.readUint32();if(0!==r)throw new Error(\"Unexpected content format: \"+r);var o=t-e.byteOffset,a={json:this._parseJson(e.readString(n)),bin:null};if(0!==o){var i=e.byteOffset;a.bin={readAsync:function(t,n){return e.buffer.readAsync(i+t,n)},byteLength:o}}return Promise.resolve(a)},e.prototype._unpackBinaryV2Async=function(e,t){var n=this,r=1313821514,o=5130562,a=e.readUint32();if(e.readUint32()!==r)throw new Error(\"First chunk format is not JSON\");return e.byteOffset+a===t?e.loadAsync(a).then((function(){return{json:n._parseJson(e.readString(a)),bin:null}})):e.loadAsync(a+8).then((function(){var i={json:n._parseJson(e.readString(a)),bin:null},s=function(){var n=e.readUint32();switch(e.readUint32()){case r:throw new Error(\"Unexpected JSON chunk\");case o:var a=e.byteOffset;i.bin={readAsync:function(t,n){return e.buffer.readAsync(a+t,n)},byteLength:n},e.skipBytes(n);break;default:e.skipBytes(n)}return e.byteOffset!==t?e.loadAsync(8).then(s):Promise.resolve(i)};return s()}))},e._parseVersion=function(e){if(\"1.0\"===e||\"1.0.1\"===e)return{major:1,minor:0};var t=(e+\"\").match(/^(\\d+)\\.(\\d+)/);return t?{major:parseInt(t[1]),minor:parseInt(t[2])}:null},e._compareVersion=function(e,t){return e.major>t.major?1:e.majort.minor?1:e.minor=0&&l.renderTargetTextures.splice(a,1)}if(this._opaqueRenderTarget&&(t=this._scene.customRenderTargets.indexOf(this._opaqueRenderTarget),this._opaqueRenderTarget.dispose()),this._opaqueRenderTarget=new r.RenderTargetTexture(\"opaqueSceneTexture\",this._options.renderSize,this._scene,!0),this._opaqueRenderTarget.renderList=this._opaqueMeshesCache,this._opaqueRenderTarget.gammaSpace=!0,this._opaqueRenderTarget.lodGenerationScale=1,this._opaqueRenderTarget.lodGenerationOffset=-4,t>=0?this._scene.customRenderTargets.splice(t,0,this._opaqueRenderTarget):(t=this._scene.customRenderTargets.length,this._scene.customRenderTargets.push(this._opaqueRenderTarget)),this._scene.layers&&this._opaqueRenderTarget)for(var i=0,s=this._scene.layers;i=0;i--)if(a.push(o.a.Get(e+\"/ids/\"+r[i],n,r[i])),a.length===this.maxLODsToLoad)return a;return a.push(t),a},e.prototype._disposeTransformNode=function(e){var t=this,n=new Array,r=e.material;r&&n.push(r);for(var o=0,a=e.getChildMeshes();o0){var n=e.metadata=e.metadata||{};(n.gltf=n.gltf||{}).extras=t.extras}},e.prototype.dispose=function(){this._loader=null},e.prototype.loadNodeAsync=function(e,t,n){var r=this;return this._loader.loadNodeAsync(e,t,(function(e){r._assignExtras(e,t),n(e)}))},e.prototype.loadCameraAsync=function(e,t,n){var r=this;return this._loader.loadCameraAsync(e,t,(function(e){r._assignExtras(e,t),n(e)}))},e.prototype.createMaterial=function(e,t,n){var r=this._loader.createMaterial(e,t,n);return this._assignExtras(r,t),r},e}();o.b.RegisterExtension(\"ExtrasAsMetadata\",(function(e){return new w(e)}))},function(e,t,n){\"use strict\";n.r(t),n.d(t,\"GLTFBinaryExtension\",(function(){return k})),n.d(t,\"GLTFLoaderBase\",(function(){return D})),n.d(t,\"GLTFLoader\",(function(){return G})),n.d(t,\"GLTFLoaderExtension\",(function(){return U})),n.d(t,\"EComponentType\",(function(){return r})),n.d(t,\"EShaderType\",(function(){return o})),n.d(t,\"EParameterType\",(function(){return a})),n.d(t,\"ETextureWrapMode\",(function(){return i})),n.d(t,\"ETextureFilterType\",(function(){return s})),n.d(t,\"ETextureFormat\",(function(){return l})),n.d(t,\"ECullingType\",(function(){return u})),n.d(t,\"EBlendingFunction\",(function(){return c})),n.d(t,\"GLTFUtils\",(function(){return p})),n.d(t,\"GLTFMaterialsCommonExtension\",(function(){return H}));var r,o,a,i,s,l,u,c,d=n(4);!function(e){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.FLOAT=5126]=\"FLOAT\"}(r||(r={})),function(e){e[e.FRAGMENT=35632]=\"FRAGMENT\",e[e.VERTEX=35633]=\"VERTEX\"}(o||(o={})),function(e){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.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\"}(a||(a={})),function(e){e[e.CLAMP_TO_EDGE=33071]=\"CLAMP_TO_EDGE\",e[e.MIRRORED_REPEAT=33648]=\"MIRRORED_REPEAT\",e[e.REPEAT=10497]=\"REPEAT\"}(i||(i={})),function(e){e[e.NEAREST=9728]=\"NEAREST\",e[e.LINEAR=9728]=\"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\"}(s||(s={})),function(e){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\"}(l||(l={})),function(e){e[e.FRONT=1028]=\"FRONT\",e[e.BACK=1029]=\"BACK\",e[e.FRONT_AND_BACK=1032]=\"FRONT_AND_BACK\"}(u||(u={})),function(e){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.DST_COLOR=774]=\"DST_COLOR\",e[e.ONE_MINUS_DST_COLOR=775]=\"ONE_MINUS_DST_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.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.SRC_ALPHA_SATURATE=776]=\"SRC_ALPHA_SATURATE\"}(c||(c={}));var f,h=n(0),p=function(){function e(){}return e.SetMatrix=function(e,t,n,r,o){var i=null;if(\"MODEL\"===n.semantic?i=t.getWorldMatrix():\"PROJECTION\"===n.semantic?i=e.getProjectionMatrix():\"VIEW\"===n.semantic?i=e.getViewMatrix():\"MODELVIEWINVERSETRANSPOSE\"===n.semantic?i=h.Matrix.Transpose(t.getWorldMatrix().multiply(e.getViewMatrix()).invert()):\"MODELVIEW\"===n.semantic?i=t.getWorldMatrix().multiply(e.getViewMatrix()):\"MODELVIEWPROJECTION\"===n.semantic?i=t.getWorldMatrix().multiply(e.getTransformMatrix()):\"MODELINVERSE\"===n.semantic?i=t.getWorldMatrix().invert():\"VIEWINVERSE\"===n.semantic?i=e.getViewMatrix().invert():\"PROJECTIONINVERSE\"===n.semantic?i=e.getProjectionMatrix().invert():\"MODELVIEWINVERSE\"===n.semantic?i=t.getWorldMatrix().multiply(e.getViewMatrix()).invert():\"MODELVIEWPROJECTIONINVERSE\"===n.semantic?i=t.getWorldMatrix().multiply(e.getTransformMatrix()).invert():\"MODELINVERSETRANSPOSE\"===n.semantic&&(i=h.Matrix.Transpose(t.getWorldMatrix().invert())),i)switch(n.type){case a.FLOAT_MAT2:o.setMatrix2x2(r,h.Matrix.GetAsMatrix2x2(i));break;case a.FLOAT_MAT3:o.setMatrix3x3(r,h.Matrix.GetAsMatrix3x3(i));break;case a.FLOAT_MAT4:o.setMatrix(r,i)}},e.SetUniform=function(e,t,n,r){switch(r){case a.FLOAT:return e.setFloat(t,n),!0;case a.FLOAT_VEC2:return e.setVector2(t,h.Vector2.FromArray(n)),!0;case a.FLOAT_VEC3:return e.setVector3(t,h.Vector3.FromArray(n)),!0;case a.FLOAT_VEC4:return e.setVector4(t,h.Vector4.FromArray(n)),!0;default:return!1}},e.GetWrapMode=function(e){switch(e){case i.CLAMP_TO_EDGE:return h.Texture.CLAMP_ADDRESSMODE;case i.MIRRORED_REPEAT:return h.Texture.MIRROR_ADDRESSMODE;case i.REPEAT:default:return h.Texture.WRAP_ADDRESSMODE}},e.GetByteStrideFromType=function(e){switch(e.type){case\"VEC2\":return 2;case\"VEC3\":return 3;case\"VEC4\":case\"MAT2\":return 4;case\"MAT3\":return 9;case\"MAT4\":return 16;default:return 1}},e.GetTextureFilterMode=function(e){switch(e){case s.LINEAR:case s.LINEAR_MIPMAP_NEAREST:case s.LINEAR_MIPMAP_LINEAR:return h.Texture.TRILINEAR_SAMPLINGMODE;case s.NEAREST:case s.NEAREST_MIPMAP_NEAREST:return h.Texture.NEAREST_SAMPLINGMODE;default:return h.Texture.BILINEAR_SAMPLINGMODE}},e.GetBufferFromBufferView=function(e,t,n,o,a){n=t.byteOffset+n;var i=e.loadedBufferViews[t.buffer];if(n+o>i.byteLength)throw new Error(\"Buffer access is out of range\");var s=i.buffer;switch(n+=i.byteOffset,a){case r.BYTE:return new Int8Array(s,n,o);case r.UNSIGNED_BYTE:return new Uint8Array(s,n,o);case r.SHORT:return new Int16Array(s,n,o);case r.UNSIGNED_SHORT:return new Uint16Array(s,n,o);default:return new Float32Array(s,n,o)}},e.GetBufferFromAccessor=function(t,n){var r=t.bufferViews[n.bufferView],o=n.count*e.GetByteStrideFromType(n);return e.GetBufferFromBufferView(t,r,n.byteOffset,o,n.componentType)},e.DecodeBufferToText=function(e){for(var t=\"\",n=e.byteLength,r=0;r=this._maxPos},e}(),y=[\"MODEL\",\"VIEW\",\"PROJECTION\",\"MODELVIEW\",\"MODELVIEWPROJECTION\",\"JOINTMATRIX\"],b=[\"world\",\"view\",\"projection\",\"worldView\",\"worldViewProjection\",\"mBones\"],v=[\"translation\",\"rotation\",\"scale\"],g=[\"position\",\"rotationQuaternion\",\"scaling\"],A=function(e,t,n){for(var r in e){var o=e[r];n[t][r]=o}},T=function(e){if(e)for(var t=0;t0&&(d=O(a,o))&&-1===i.indexOf(d)&&i.push(d),new h.Bone(l.jointName||\"\",r,d,b).id=o}}else h.Tools.Warn(\"Joint named \"+t.jointNames[s]+\" does not exist\")}}var v=r.bones;r.bones=[];for(s=0;s1?(a=new h.MultiMaterial(\"multimat\"+r,e.scene)).subMaterials=i:a=new h.StandardMaterial(\"multimat\"+r,e.scene),1===i.length&&(a=i[0]),o.material||(o.material=a),new h.Geometry(r,e.scene,s,!1,o),o.computeWorldMatrix(!0),e.scene._blockEntityCollection=!1,o.subMeshes=[];var C=0;for(f=0;f0&&-1===e.importMeshesNames.indexOf(t.name||\"\"))return null;if(t.skin){if(t.meshes){var a=e.skins[t.skin];(i=R(e,t,t.meshes,n,t.babylonNode)).skeleton=e.scene.getLastSkeletonByID(t.skin),null===i.skeleton&&(i.skeleton=w(e,a,0,a.babylonSkeleton,t.skin),a.babylonSkeleton||(a.babylonSkeleton=i.skeleton)),o=i}}else if(t.meshes){var i;o=i=R(e,t,t.mesh?[t.mesh]:t.meshes,n,t.babylonNode)}else if(!t.light||t.babylonNode||e.importOnlyMeshes){if(t.camera&&!t.babylonNode&&!e.importOnlyMeshes){var s=e.cameras[t.camera];if(s){if(e.scene._blockEntityCollection=e.forAssetContainer,\"orthographic\"===s.type){var l=new h.FreeCamera(t.camera,h.Vector3.Zero(),e.scene,!1);l.name=t.name||\"\",l.mode=h.Camera.ORTHOGRAPHIC_CAMERA,l.attachControl(),o=l}else if(\"perspective\"===s.type){var u=s[s.type],c=new h.FreeCamera(t.camera,h.Vector3.Zero(),e.scene,!1);c.name=t.name||\"\",c.attachControl(),u.aspectRatio||(u.aspectRatio=e.scene.getEngine().getRenderWidth()/e.scene.getEngine().getRenderHeight()),u.znear&&u.zfar&&(c.maxZ=u.zfar,c.minZ=u.znear),o=c}e.scene._blockEntityCollection=!1}}}else{var d=e.lights[t.light];if(d)if(\"ambient\"===d.type){var f=d[d.type],p=new h.HemisphericLight(t.light,h.Vector3.Zero(),e.scene);p.name=t.name||\"\",f.color&&(p.diffuse=h.Color3.FromArray(f.color)),o=p}else if(\"directional\"===d.type){var _=d[d.type],m=new h.DirectionalLight(t.light,h.Vector3.Zero(),e.scene);m.name=t.name||\"\",_.color&&(m.diffuse=h.Color3.FromArray(_.color)),o=m}else if(\"point\"===d.type){var y=d[d.type],b=new h.PointLight(t.light,h.Vector3.Zero(),e.scene);b.name=t.name||\"\",y.color&&(b.diffuse=h.Color3.FromArray(y.color)),o=b}else if(\"spot\"===d.type){var v=d[d.type],g=new h.SpotLight(t.light,h.Vector3.Zero(),h.Vector3.Zero(),0,0,e.scene);g.name=t.name||\"\",v.color&&(g.diffuse=h.Color3.FromArray(v.color)),v.fallOfAngle&&(g.angle=v.fallOfAngle),v.fallOffExponent&&(g.exponent=v.fallOffExponent),o=g}}if(!t.jointName){if(t.babylonNode)return t.babylonNode;if(null===o){e.scene._blockEntityCollection=e.forAssetContainer;var A=new h.Mesh(t.name||\"\",e.scene);e.scene._blockEntityCollection=!1,t.babylonNode=A,o=A}}if(null!==o){if(t.matrix&&o instanceof h.Mesh)!function(e,t,n){if(t.matrix){var r=new h.Vector3(0,0,0),o=new h.Quaternion,a=new h.Vector3(0,0,0);h.Matrix.FromArray(t.matrix).decompose(a,o,r),C(e,r,o,a)}else t.translation&&t.rotation&&t.scale&&C(e,h.Vector3.FromArray(t.translation),h.Quaternion.FromArray(t.rotation),h.Vector3.FromArray(t.scale));e.computeWorldMatrix(!0)}(o,t);else{var T=t.translation||[0,0,0],x=t.rotation||[0,0,0,1],E=t.scale||[1,1,1];C(o,h.Vector3.FromArray(T),h.Quaternion.FromArray(x),h.Vector3.FromArray(E))}o.updateCache(!0),t.babylonNode=o}return o},P=function(e,t,n,r){void 0===r&&(r=!1);var o=e.nodes[t],a=null;if(r=!(e.importOnlyMeshes&&!r&&e.importMeshesNames)||(-1!==e.importMeshesNames.indexOf(o.name||\"\")||0===e.importMeshesNames.length),!o.jointName&&r&&null!==(a=N(e,o,t))&&(a.id=t,a.parent=n),o.children)for(var i=0;i=0?d.substring(0,f):d;h=h.toLowerCase();var p=f>=0?d.substring(f+1).trim():\"\";\"newmtl\"===h?(u&&this.materials.push(u),t._blockEntityCollection=a,u=new r.StandardMaterial(p,t),t._blockEntityCollection=!1):\"kd\"===h&&u?(i=p.split(l,3).map(parseFloat),u.diffuseColor=r.Color3.FromArray(i)):\"ka\"===h&&u?(i=p.split(l,3).map(parseFloat),u.ambientColor=r.Color3.FromArray(i)):\"ks\"===h&&u?(i=p.split(l,3).map(parseFloat),u.specularColor=r.Color3.FromArray(i)):\"ke\"===h&&u?(i=p.split(l,3).map(parseFloat),u.emissiveColor=r.Color3.FromArray(i)):\"ns\"===h&&u?u.specularPower=parseFloat(p):\"d\"===h&&u?u.alpha=parseFloat(p):\"map_ka\"===h&&u?u.ambientTexture=e._getTexture(o,p,t):\"map_kd\"===h&&u?u.diffuseTexture=e._getTexture(o,p,t):\"map_ks\"===h&&u?u.specularTexture=e._getTexture(o,p,t):\"map_ns\"===h||(\"map_bump\"===h&&u?u.bumpTexture=e._getTexture(o,p,t):\"map_d\"===h&&u&&(u.opacityTexture=e._getTexture(o,p,t)))}}u&&this.materials.push(u)}},e._getTexture=function(t,n,o){if(!n)return null;var a=t;if(\"file:\"===t){var i=n.lastIndexOf(\"\\\\\");-1===i&&(i=n.lastIndexOf(\"/\")),a+=i>-1?n.substr(i+1):n}else a+=n;return new r.Texture(a,o,!1,e.INVERT_TEXTURE_Y)},e.INVERT_TEXTURE_Y=!0,e}(),a=function(){function e(t){this.name=\"obj\",this.extensions=\".obj\",this.obj=/^o/,this.group=/^g/,this.mtllib=/^mtllib /,this.usemtl=/^usemtl /,this.smooth=/^s /,this.vertexPattern=/v(\\s+[\\d|\\.|\\+|\\-|e|E]+){3,7}/,this.normalPattern=/vn(\\s+[\\d|\\.|\\+|\\-|e|E]+)( +[\\d|\\.|\\+|\\-|e|E]+)( +[\\d|\\.|\\+|\\-|e|E]+)/,this.uvPattern=/vt(\\s+[\\d|\\.|\\+|\\-|e|E]+)( +[\\d|\\.|\\+|\\-|e|E]+)/,this.facePattern1=/f\\s+(([\\d]{1,}[\\s]?){3,})+/,this.facePattern2=/f\\s+((([\\d]{1,}\\/[\\d]{1,}[\\s]?){3,})+)/,this.facePattern3=/f\\s+((([\\d]{1,}\\/[\\d]{1,}\\/[\\d]{1,}[\\s]?){3,})+)/,this.facePattern4=/f\\s+((([\\d]{1,}\\/\\/[\\d]{1,}[\\s]?){3,})+)/,this.facePattern5=/f\\s+(((-[\\d]{1,}\\/-[\\d]{1,}\\/-[\\d]{1,}[\\s]?){3,})+)/,this._forAssetContainer=!1,this._meshLoadOptions=t||e.currentMeshLoadOptions}return Object.defineProperty(e,\"INVERT_TEXTURE_Y\",{get:function(){return o.INVERT_TEXTURE_Y},set:function(e){o.INVERT_TEXTURE_Y=e},enumerable:!1,configurable:!0}),Object.defineProperty(e,\"currentMeshLoadOptions\",{get:function(){return{ComputeNormals:e.COMPUTE_NORMALS,ImportVertexColors:e.IMPORT_VERTEX_COLORS,InvertY:e.INVERT_Y,InvertTextureY:e.INVERT_TEXTURE_Y,UVScaling:e.UV_SCALING,MaterialLoadingFailsSilently:e.MATERIAL_LOADING_FAILS_SILENTLY,OptimizeWithUV:e.OPTIMIZE_WITH_UV,SkipMaterials:e.SKIP_MATERIALS}},enumerable:!1,configurable:!0}),e.prototype._loadMTL=function(e,t,n,o){var a=r.Tools.BaseUrl+t+e;r.Tools.LoadFile(a,n,void 0,void 0,!1,(function(e,t){o(a,t)}))},e.prototype.createPlugin=function(){return new e(e.currentMeshLoadOptions)},e.prototype.canDirectLoad=function(e){return!1},e.prototype.importMeshAsync=function(e,t,n,r,o,a){return this._parseSolid(e,t,n,r).then((function(e){return{meshes:e,particleSystems:[],skeletons:[],animationGroups:[],transformNodes:[],geometries:[],lights:[]}}))},e.prototype.loadAsync=function(e,t,n,r,o){return this.importMeshAsync(null,e,t,n,r).then((function(){}))},e.prototype.loadAssetContainerAsync=function(e,t,n,o,a){var i=this;return this._forAssetContainer=!0,this.importMeshAsync(null,e,t,n).then((function(t){var n=new r.AssetContainer(e);return t.meshes.forEach((function(e){return n.meshes.push(e)})),t.meshes.forEach((function(e){var t=e.material;t&&(-1==n.materials.indexOf(t)&&(n.materials.push(t),t.getActiveTextures().forEach((function(e){-1==n.textures.indexOf(e)&&n.textures.push(e)}))))})),i._forAssetContainer=!1,n})).catch((function(e){throw i._forAssetContainer=!1,e}))},e.prototype._parseSolid=function(t,n,a,i){for(var s,l=this,u=[],c=[],d=[],f=[],h=[],p=[],_=[],m=[],y=[],b=[],v=[],g=0,A=!1,T=[],x=[],E=[],L=[],O=[],M=\"\",S=\"\",w=new o,R=1,C=!0,N=new r.Color4(.5,.5,.5,1),P=function(e,t,n,r,o,a,i){var s;-1===(s=l._meshLoadOptions.OptimizeWithUV?function(e,t){e[t[0]]||(e[t[0]]={normals:[],idx:[],uv:[]});var n=e[t[0]].normals.indexOf(t[1]);return 1!=n&&t[2]===e[t[0]].uv[n]?e[t[0]].idx[n]:-1}(v,[e,n,t]):function(e,t){e[t[0]]||(e[t[0]]={normals:[],idx:[]});var n=e[t[0]].normals.indexOf(t[1]);return-1===n?-1:e[t[0]].idx[n]}(v,[e,n]))?(p.push(_.length),_.push(r),m.push(o),b.push(a),void 0!==i&&y.push(i),v[e].normals.push(n),v[e].idx.push(g++),l._meshLoadOptions.OptimizeWithUV&&v[e].uv.push(t)):p.push(s)},I=function(){for(var e=0;e<_.length;e++)T.push(_[e].x,_[e].y,_[e].z),E.push(b[e].x,b[e].y,b[e].z),L.push(m[e].x,m[e].y),!0===l._meshLoadOptions.ImportVertexColors&&x.push(y[e].r,y[e].g,y[e].b,y[e].a);_=[],b=[],m=[],y=[],v=[],g=0},F=function(e,t){for(var n=t;n0&&(s=h[h.length-1],I(),p.reverse(),s.indices=p.slice(),s.positions=T.slice(),s.normals=E.slice(),s.uvs=L.slice(),!0===l._meshLoadOptions.ImportVertexColors&&(s.colors=x.slice()),p=[],T=[],x=[],E=[],L=[])},H=a.split(\"\\n\"),K=0;K=7?f.push(new r.Color4(parseFloat(j[4]),parseFloat(j[5]),parseFloat(j[6]),7===j.length||void 0===j[7]?1:parseFloat(j[7]))):f.push(N));else if(null!==(j=this.normalPattern.exec(W)))c.push(new r.Vector3(parseFloat(j[1]),parseFloat(j[2]),parseFloat(j[3])));else if(null!==(j=this.uvPattern.exec(W)))d.push(new r.Vector2(parseFloat(j[1])*e.UV_SCALING.x,parseFloat(j[2])*e.UV_SCALING.y));else if(null!==(j=this.facePattern3.exec(W)))D(j[1].trim().split(\" \"),1);else if(null!==(j=this.facePattern4.exec(W)))G(j[1].trim().split(\" \"),1);else if(null!==(j=this.facePattern5.exec(W)))U(j[1].trim().split(\" \"),1);else if(null!==(j=this.facePattern2.exec(W)))V(j[1].trim().split(\" \"),1);else if(null!==(j=this.facePattern1.exec(W)))B(j[1].trim().split(\" \"),1);else if(this.group.test(W)||this.obj.test(W)){var q={name:W.substring(2).trim(),indices:void 0,positions:void 0,normals:void 0,uvs:void 0,colors:void 0,materialName:\"\"};k(),h.push(q),A=!0,C=!0,R=1}else if(this.usemtl.test(W)){if(M=W.substring(7).trim(),!C||!A){k();q={name:\"mesh_mm\"+R.toString(),indices:void 0,positions:void 0,normals:void 0,uvs:void 0,colors:void 0,materialName:M};R++,h.push(q),A=!0}A&&C&&(h[h.length-1].materialName=M,C=!1)}else this.mtllib.test(W)?S=W.substring(7).trim():this.smooth.test(W)||console.log(\"Unhandled expression at line : \"+W)}A&&(s=h[h.length-1],p.reverse(),I(),s.indices=p,s.positions=T,s.normals=E,s.uvs=L,!0===this._meshLoadOptions.ImportVertexColors&&(s.colors=x)),A||(p.reverse(),I(),h.push({name:r.Geometry.RandomId(),indices:p,positions:T,colors:x,normals:E,uvs:L,materialName:M}));for(var Y=[],X=new Array,J=0;J-1;)c.push(s),u=s+1;if(-1===s&&0===c.length)w.materials[a].dispose();else for(var d=0;d127)return!0;return!1},e.prototype._parseBinary=function(e,t){for(var n=new DataView(t),o=n.getUint32(80,!0),a=0,i=new Float32Array(3*o*3),s=new Float32Array(3*o*3),l=new Uint32Array(3*o),u=0,c=0;c-1||(s.GLTF2[u]=a[u])}}).call(this,n(5))},function(e,t,n){\"use strict\";n.r(t),function(e){var r=n(10);n.d(t,\"MTLFileLoader\",(function(){return r.MTLFileLoader})),n.d(t,\"OBJFileLoader\",(function(){return r.OBJFileLoader}));var o=void 0!==e?e:\"undefined\"!=typeof window?window:void 0;if(void 0!==o)for(var a in r)o.BABYLON[a]=r[a]}.call(this,n(5))},function(e,t,n){\"use strict\";n.r(t),function(e){var r=n(11);n.d(t,\"STLFileLoader\",(function(){return r.STLFileLoader}));var o=void 0!==e?e:\"undefined\"!=typeof window?window:void 0;if(void 0!==o)for(var a in r)o.BABYLON[a]=r[a]}.call(this,n(5))},,,,function(e,t,n){\"use strict\";n.r(t),n.d(t,\"GLTFLoaderCoordinateSystemMode\",(function(){return r.c})),n.d(t,\"GLTFLoaderAnimationStartMode\",(function(){return r.b})),n.d(t,\"GLTFLoaderState\",(function(){return r.d})),n.d(t,\"GLTFFileLoader\",(function(){return r.a})),n.d(t,\"GLTFValidation\",(function(){return r.e})),n.d(t,\"GLTF1\",(function(){return o.a})),n.d(t,\"GLTF2\",(function(){return a.a})),n.d(t,\"MTLFileLoader\",(function(){return i.MTLFileLoader})),n.d(t,\"OBJFileLoader\",(function(){return i.OBJFileLoader})),n.d(t,\"STLFileLoader\",(function(){return s.STLFileLoader}));n(2),n(3),n(8),n(9),n(10),n(11);var r=n(12),o=n(13),a=n(14),i=n(15),s=n(16)}])}));","\n\n\n\n{#if value}\n\t\n{:else}\n\t
    \n\t\t
    \n\t
    \n{/if}\n","\n\n\n\n{#if value === null}\n\t\n\t\t{drop_text}\n\t\t
    - {or_text} -
    \n\t\t{upload_text}\n\t
    \n{:else}\n\t\n\t\t\n\t\t\n\t\n{/if}\n","\n\n\n\t\n\n\t{#if mode === \"dynamic\"}\n\t\t (value = detail)}\n\t\t\ton:drag={({ detail }) => (dragging = detail)}\n\t\t\ton:change\n\t\t\ton:clear\n\t\t\tdrop_text={$_(\"interface.drop_file\")}\n\t\t\tor_text={$_(\"or\")}\n\t\t\tupload_text={$_(\"interface.click_to_upload\")}\n\t\t/>\n\t{:else if _value}\n\t\t\n\t{/if}\n\n","export { default as Component } from \"./Model3D.svelte\";\nexport { default as ExampleComponent } from \"../Dataset/ExampleComponents/Model3D.svelte\";\nexport const modes = [\"static\", \"dynamic\"];\n\nexport const document = (config: Record) => ({\n\ttype: \"{ name: string; data: string }\",\n\tdescription: \"file name and base64 data of Model3D object\"\n});\n"],"names":["global","this","require$$0","BABYLON_LOADERS.OBJFileLoader","BABYLON.Engine","BABYLON.Scene","BABYLON.Color4","BABYLON.Tools","BABYLON.SceneLoader","document"],"mappings":"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,IAAI,GAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,GAAE,EAAE,GAAG,GAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAE,EAAE,GAAG,GAAE,EAAE,IAAI,GAAE,EAAE,IAAI,GAAE,EAAE,IAAI,GAAE,EAAE,IAAI,GAAE,EAAE,IAAI,GAAE,EAAE,IAAI,MAAO,GAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,EAAE,EAAE,GAAG,EAAE,GAAE,EAAE,EAAE,EAAE,GAAE,EAAE,GAAE,EAAE,EAAE,GAAG,EAAE,GAAE,EAAE,EAAE,EAAE,GAAE,EAAE,GAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,EAAE,GAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAE,EAAE,GAAE,GAAE,EAAE,EAAE,GAAG,EAAE,GAAE,EAAE,EAAE,GAAE,GAAE,GAAE,GAAE,EAAE,EAAE,GAAG,EAAE,GAAE,EAAE,EAAE,GAAE,GAAE,GAAE,GAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAE,GAAE,GAAE,GAAE,EAAE,EAAE,GAAG,GAAE,EAAE,GAAE,EAAE,GAAE,EAAE,GAAE,GAAE,EAAE,EAAE,GAAG,GAAE,GAAE,GAAE,EAAE,GAAE,GAAE,GAAE,GAAE,EAAE,EAAE,IAAI,GAAE,GAAE,GAAE,EAAE,GAAE,GAAE,GAAE,GAAE,EAAE,EAAE,IAAI,GAAE,EAAE,GAAE,EAAE,GAAE,GAAE,GAAE,GAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,EAAE,EAAE,IAAI,EAAE,GAAE,EAAE,EAAE,EAAE,GAAE,EAAE,GAAE,EAAE,EAAE,IAAI,EAAE,GAAE,EAAE,EAAE,EAAE,GAAE,EAAE,GAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,EAAE,GAAE,IAAI,EAAE,EAAE,UAAU,OAAO,SAAS,EAAE,CAAC,GAAI,GAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,GAAI,MAAK,aAAa,EAAE,cAAc,CAAC,KAAK,kBAAkB,CAAC,EAAE,iBAAiB,MAAO,MAAK,aAAa,EAAE,YAAY,GAAI,GAAE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAO,GAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,UAAU,MAAM,UAAU,CAAC,GAAI,GAAE,GAAI,GAAE,MAAO,GAAE,SAAS,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,aAAa,UAAU,CAAC,MAAM,QAAQ,EAAE,EAAE,UAAU,YAAY,UAAU,CAAC,OAAQ,GAAE,EAAE,KAAK,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAG,GAAE,KAAK,GAAG,IAAI,MAAO,EAAC,EAAE,EAAE,UAAU,UAAU,SAAS,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,YAAY,MAAO,IAAG,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,GAAI,GAAE,KAAK,GAAG,GAAG,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAG,GAAE,GAAG,EAAE,QAAQ,IAAI,EAAE,KAAK,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,eAAe,GAAI,GAAE,GAAG,IAAI,AAAI,EAAE,KAAN,GAAU,AAAI,EAAE,KAAN,GAAU,AAAI,EAAE,KAAN,EAAS,MAAO,IAAG,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,GAAI,GAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,wBAAwB,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,UAAU,OAAO,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,MAAO,MAAK,GAAI,GAAE,EAAE,EAAE,MAAO,IAAI,GAAE,KAAK,GAAG,EAAE,GAAG,KAAK,GAAG,EAAE,GAAG,KAAK,GAAG,EAAE,GAAG,KAAK,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,OAAO,SAAS,EAAE,EAAE,CAAC,MAAO,MAAK,iBAAiB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,UAAU,UAAU,CAAC,MAAO,GAAE,UAAU,IAAI,CAAC,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,CAAC,MAAO,GAAE,eAAe,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,iBAAiB,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,MAAO,MAAK,GAAI,GAAE,EAAE,EAAE,MAAO,MAAK,GAAG,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,GAAG,EAAE,KAAK,iBAAiB,IAAI,EAAE,EAAE,UAAU,MAAM,SAAS,EAAE,CAAC,GAAI,GAAE,GAAI,GAAE,MAAO,MAAK,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,WAAW,SAAS,EAAE,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,KAAK,GAAG,GAAG,EAAE,MAAO,GAAE,iBAAiB,IAAI,EAAE,EAAE,UAAU,iBAAiB,SAAS,EAAE,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,KAAK,GAAG,GAAG,EAAE,MAAO,GAAE,iBAAiB,IAAI,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,CAAC,GAAI,GAAE,EAAE,OAAO,GAAG,KAAK,YAAY,CAAC,EAAE,EAAE,eAAe,CAAC,EAAE,GAAI,GAAE,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,kBAAkB,UAAU,CAAC,GAAI,GAAE,GAAI,GAAE,MAAO,MAAK,uBAAuB,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,uBAAuB,SAAS,EAAE,CAAC,GAAI,GAAE,EAAE,QAAQ,GAAG,GAAG,CAAC,KAAK,UAAU,CAAC,EAAE,MAAO,GAAE,cAAc,CAAC,EAAE,KAAK,GAAI,GAAE,KAAK,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,MAAO,GAAE,gBAAgB,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,6BAA6B,UAAU,CAAC,GAAI,GAAE,KAAK,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,KAAK,gBAAgB,EAAE,EAAE,UAAU,kCAAkC,UAAU,CAAC,GAAI,GAAE,KAAK,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,KAAK,gBAAgB,EAAE,EAAE,UAAU,SAAS,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,GAAG,GAAI,GAAE,GAAI,GAAE,MAAO,GAAE,eAAe,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,eAAe,SAAS,EAAE,EAAE,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,gBAAgB,EAAE,EAAE,4BAA4B,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,gBAAgB,EAAE,OAAO,eAAe,EAAE,mBAAmB,CAAC,IAAI,UAAU,CAAC,MAAO,GAAE,iBAAiB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,gBAAgB,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,CAAC,GAAI,GAAE,GAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,GAAE,EAAE,IAAI,GAAE,EAAE,IAAI,GAAE,EAAE,IAAI,GAAE,EAAE,IAAI,GAAE,GAAE,gBAAgB,EAAE,EAAE,WAAW,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,GAAE,GAAE,GAAE,GAAE,CAAC,GAAI,IAAE,GAAI,GAAE,EAAE,GAAE,GAAG,MAAO,GAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,GAAE,EAAE,IAAI,GAAE,EAAE,IAAI,GAAE,EAAE,IAAI,GAAE,EAAE,IAAI,GAAE,GAAE,iBAAiB,EAAC,EAAE,EAAE,QAAQ,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,GAAI,GAAE,MAAO,GAAE,aAAa,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,aAAa,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,EAAE,EAAE,GAAE,EAAE,EAAE,GAAE,EAAE,EAAE,GAAE,EAAE,GAAE,GAAE,EAAE,EAAE,GAAE,EAAE,GAAE,EAAE,EAAE,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,EAAE,EAAE,GAAG,GAAE,EAAE,GAAG,GAAE,EAAE,GAAG,EAAE,GAAI,GAAG,IAAE,IAAI,EAAE,EAAE,GAAI,IAAE,GAAG,EAAE,EAAE,GAAI,IAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAI,IAAE,GAAG,GAAE,EAAE,GAAI,GAAG,IAAE,IAAI,GAAE,EAAE,GAAI,IAAE,GAAG,GAAE,EAAE,GAAG,EAAE,EAAE,GAAI,IAAE,GAAG,GAAE,EAAE,GAAI,IAAE,GAAG,GAAE,EAAE,IAAK,GAAG,IAAE,KAAI,GAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,gBAAgB,EAAE,EAAE,SAAS,UAAU,CAAC,GAAI,GAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAO,GAAE,sBAAsB,EAAE,EAAE,CAAC,EAAE,EAAE,cAAc,SAAS,EAAE,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,sBAAsB,EAAE,CAAC,EAAE,EAAE,KAAK,UAAU,CAAC,GAAI,GAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAO,GAAE,sBAAsB,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,SAAS,EAAE,CAAC,GAAI,GAAE,GAAI,GAAE,MAAO,GAAE,eAAe,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,SAAS,EAAE,CAAC,GAAI,GAAE,GAAI,GAAE,MAAO,GAAE,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,eAAe,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,IAAI,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,sBAAsB,AAAI,IAAJ,GAAO,AAAI,IAAJ,CAAK,CAAC,EAAE,EAAE,UAAU,SAAS,EAAE,CAAC,GAAI,GAAE,GAAI,GAAE,MAAO,GAAE,eAAe,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,eAAe,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,IAAI,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE,gBAAgB,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,sBAAsB,AAAI,IAAJ,GAAO,AAAI,IAAJ,CAAK,CAAC,EAAE,EAAE,UAAU,SAAS,EAAE,CAAC,GAAI,GAAE,GAAI,GAAE,MAAO,GAAE,eAAe,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,eAAe,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,IAAI,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,sBAAsB,AAAI,IAAJ,GAAO,AAAI,IAAJ,CAAK,CAAC,EAAE,EAAE,aAAa,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,GAAI,GAAE,MAAO,GAAE,kBAAkB,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,kBAAkB,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,IAAI,CAAC,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,YAAY,GAAI,GAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,gBAAgB,EAAE,EAAE,mBAAmB,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAG,GAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,gBAAgB,EAAE,EAAE,qBAAqB,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,GAAI,GAAE,MAAO,GAAE,0BAA0B,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,0BAA0B,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,0BAA0B,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,GAAG,iBAAiB,CAAC,CAAC,EAAE,EAAE,QAAQ,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,GAAI,GAAE,MAAO,GAAE,aAAa,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,aAAa,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,sBAAsB,AAAI,IAAJ,GAAO,AAAI,IAAJ,GAAO,AAAI,IAAJ,CAAK,CAAC,EAAE,EAAE,YAAY,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,GAAI,GAAE,MAAO,GAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,iBAAiB,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,sBAAsB,AAAI,IAAJ,GAAO,AAAI,IAAJ,GAAO,AAAI,IAAJ,CAAK,CAAC,EAAE,EAAE,KAAK,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,GAAI,GAAE,MAAO,GAAE,UAAU,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,OAAQ,GAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAI,GAAE,GAAG,EAAE,GAAG,EAAE,EAAE,gBAAgB,EAAE,EAAE,cAAc,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,GAAI,GAAE,MAAO,GAAE,mBAAmB,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,mBAAmB,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,QAAQ,GAAG,EAAE,EAAE,WAAW,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,GAAI,GAAE,EAAE,QAAQ,GAAG,EAAE,EAAE,WAAW,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,GAAI,GAAE,EAAE,QAAQ,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,EAAE,GAAI,IAAE,EAAE,WAAW,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,EAAC,EAAE,GAAI,IAAE,EAAE,QAAQ,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,aAAa,EAAE,GAAE,GAAE,CAAC,CAAC,EAAE,EAAE,SAAS,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,GAAI,GAAE,MAAO,GAAE,cAAc,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,QAAQ,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,cAAc,EAAE,CAAC,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,GAAI,GAAE,EAAE,gBAAgB,AAAI,IAAJ,EAAM,EAAE,EAAE,EAAE,EAAE,oBAAoB,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE,YAAY,GAAI,GAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,gBAAgB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,GAAI,GAAE,MAAO,GAAE,cAAc,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,QAAQ,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,cAAc,EAAE,CAAC,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,GAAI,GAAE,EAAE,gBAAgB,AAAI,IAAJ,EAAM,EAAE,EAAE,EAAE,EAAE,oBAAoB,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE,YAAY,GAAI,GAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,gBAAgB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,GAAI,GAAE,MAAO,GAAE,aAAa,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,aAAa,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAG,GAAE,GAAG,EAAE,CAAE,GAAE,GAAI,GAAE,GAAG,EAAE,gBAAgB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,sBAAsB,AAAI,IAAJ,GAAO,AAAI,IAAJ,GAAO,AAAI,IAAJ,GAAO,AAAI,IAAJ,CAAK,CAAC,EAAE,EAAE,iBAAiB,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,GAAI,GAAE,MAAO,GAAE,sBAAsB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,sBAAsB,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,EAAG,GAAE,GAAG,EAAE,EAAG,GAAE,GAAG,EAAE,EAAG,GAAE,GAAG,EAAE,CAAE,GAAE,GAAI,GAAE,GAAG,GAAG,GAAE,GAAI,GAAE,GAAG,GAAG,GAAE,GAAI,GAAE,GAAG,EAAE,gBAAgB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,GAAE,EAAE,EAAE,CAAC,EAAE,EAAE,gBAAgB,EAAE,EAAE,iBAAiB,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,GAAI,GAAE,MAAO,GAAE,sBAAsB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,sBAAsB,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,sBAAsB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,cAAc,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,GAAI,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAG,GAAE,GAAI,GAAE,GAAG,EAAE,GAAG,EAAE,EAAG,GAAE,GAAG,MAAO,GAAE,gBAAgB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,sBAAsB,EAAE,EAAE,CAAC,EAAE,EAAE,iBAAiB,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,GAAI,GAAE,MAAO,GAAE,sBAAsB,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,sBAAsB,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,GAAI,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,IAAI,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAE,GAAI,GAAE,GAAG,GAAE,GAAG,EAAE,EAAG,GAAE,GAAG,EAAE,gBAAgB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,EAAE,EAAE,EAAE,GAAE,EAAE,CAAC,EAAE,EAAE,sBAAsB,EAAE,CAAC,EAAE,EAAE,6BAA6B,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,GAAI,GAAE,EAAE,KAAK,IAAI,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,sBAAsB,EAAE,CAAC,EAAE,EAAE,iBAAiB,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,GAAI,GAAE,MAAO,GAAE,sBAAsB,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,sBAAsB,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,GAAI,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,IAAI,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,CAAE,GAAE,GAAI,GAAE,GAAG,GAAE,GAAG,EAAE,EAAG,GAAE,GAAG,EAAE,gBAAgB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,GAAG,EAAE,EAAE,GAAE,EAAE,CAAC,EAAE,EAAE,sBAAsB,EAAE,CAAC,EAAE,EAAE,6BAA6B,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,GAAI,GAAE,EAAE,KAAK,IAAI,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,sBAAsB,EAAE,CAAC,EAAE,EAAE,yBAAyB,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,GAAI,GAAE,EAAE,GAAG,EAAE,EAAE,KAAK,IAAI,EAAE,UAAU,KAAK,GAAG,GAAG,EAAE,EAAE,KAAK,IAAI,EAAE,YAAY,KAAK,GAAG,GAAG,EAAE,EAAE,KAAK,IAAI,EAAE,YAAY,KAAK,GAAG,GAAG,EAAE,EAAE,KAAK,IAAI,EAAE,aAAa,KAAK,GAAG,GAAG,EAAE,EAAE,EAAG,GAAE,GAAG,GAAE,EAAG,GAAE,GAAG,GAAE,EAAE,GAAG,GAAE,GAAG,EAAE,GAAE,GAAG,GAAE,GAAG,GAAE,GAAG,GAAE,GAAG,EAAE,GAAE,GAAG,GAAE,GAAE,GAAG,GAAE,GAAG,EAAE,GAAE,GAAI,GAAE,GAAG,EAAE,GAAG,GAAE,GAAG,CAAE,GAAE,GAAG,GAAE,GAAG,GAAE,IAAI,CAAC,EAAG,GAAE,GAAG,GAAE,IAAI,EAAE,EAAE,GAAE,IAAI,GAAE,IAAI,GAAE,IAAI,EAAE,GAAE,IAAI,GAAG,EAAE,EAAG,GAAE,GAAG,EAAE,gBAAgB,EAAE,EAAE,eAAe,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAE,EAAE,OAAO,GAAG,MAAO,GAAE,cAAc,EAAE,EAAC,EAAE,GAAE,cAAc,EAAE,EAAC,EAAE,GAAE,SAAS,CAAC,CAAC,EAAE,EAAE,eAAe,SAAS,EAAE,CAAC,GAAI,GAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,MAAO,GAAE,EAAE,gBAAgB,EAAE,GAAI,cAAa,CAAC,CAAC,EAAE,EAAE,eAAe,SAAS,EAAE,CAAC,GAAI,GAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAO,GAAE,EAAE,gBAAgB,EAAE,GAAI,cAAa,CAAC,CAAC,EAAE,EAAE,UAAU,SAAS,EAAE,CAAC,GAAI,GAAE,GAAI,GAAE,MAAO,GAAE,eAAe,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,eAAe,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,sBAAsB,EAAE,YAAY,EAAE,gBAAgB,CAAC,EAAE,EAAE,WAAW,SAAS,EAAE,CAAC,GAAI,GAAE,GAAI,GAAE,MAAO,GAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,gBAAgB,SAAS,EAAE,EAAE,CAAC,EAAE,YAAY,GAAI,GAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,iBAAiB,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,gBAAgB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,oBAAoB,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAG,GAAE,GAAG,EAAE,GAAG,GAAG,EAAG,GAAE,GAAG,EAAE,GAAG,GAAG,EAAG,GAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAG,GAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAG,GAAE,GAAG,EAAE,GAAG,GAAG,EAAG,GAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAG,GAAE,GAAG,EAAE,GAAG,GAAG,EAAG,GAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAG,GAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,gBAAgB,EAAE,EAAE,gBAAgB,EAAE,EAAE,kBAAkB,EAAE,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,YAAY,EAAE,MAAO,GAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,YAAY,EAAE,MAAO,GAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,WAAW,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,gBAAgB,mBAAmB,EAAE,EAAE,EAAE,gBAAgB,mBAAmB,EAAE,EAAE,EAAE,gBAAgB,mBAAmB,EAAE,EAAE,EAAE,gBAAgB,kBAAkB,CAAC,EAAE,SAAS,GAAE,EAAE,EAAE,CAAc,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAC3uhD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gFAcA,GAAI,GAAE,SAAS,EAAE,EAAE,CAAC,MAAO,GAAE,OAAO,gBAAgB,CAAC,UAAU,EAAE,WAAY,QAAO,SAAS,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,GAAG,SAAS,EAAE,EAAE,CAAC,OAAQ,KAAK,GAAE,OAAO,UAAU,eAAe,KAAK,EAAE,CAAC,GAAI,GAAE,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,GAAG,AAAY,MAAO,IAAnB,YAAsB,AAAO,IAAP,KAAS,KAAM,IAAI,WAAU,uBAAuB,OAAO,CAAC,EAAE,+BAA+B,EAAE,YAAY,CAAC,KAAK,YAAY,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,AAAO,IAAP,KAAS,OAAO,OAAO,CAAC,EAAG,GAAE,UAAU,EAAE,UAAU,GAAI,GAAE,CAAC,GAAI,GAAE,UAAU,CAAC,MAAO,GAAE,OAAO,QAAQ,SAAS,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,EAAE,UAAU,OAAO,EAAE,EAAE,IAAI,OAAQ,KAAK,GAAE,UAAU,GAAG,OAAO,UAAU,eAAe,KAAK,EAAE,CAAC,GAAI,GAAE,GAAG,EAAE,IAAI,MAAO,EAAC,GAAG,MAAM,KAAK,SAAS,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,UAAU,OAAO,EAAE,EAAE,EAAE,EAAE,AAAO,IAAP,KAAS,EAAE,OAAO,yBAAyB,EAAE,CAAC,EAAE,EAAE,GAAG,AAAU,MAAO,UAAjB,UAA0B,AAAY,MAAO,SAAQ,UAA3B,WAAoC,EAAE,QAAQ,SAAS,EAAE,EAAE,EAAE,CAAC,MAAO,QAAQ,GAAE,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,AAAC,GAAE,EAAE,KAAM,GAAG,GAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,GAAG,MAAO,GAAE,GAAG,GAAG,OAAO,eAAe,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,MAAO,IAAI,IAAI,GAAE,UAAW,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,EAAN,CAAS,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,EAAN,CAAS,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,GAAI,GAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAG,GAAE,EAAE,MAAM,YAAa,GAAE,EAAE,GAAI,GAAG,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,IAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAG,GAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,EAAG,CAAC,WAAW,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,UAAU,CAAC,GAAG,EAAE,EAAE,GAAG,KAAM,GAAE,GAAG,MAAO,GAAE,EAAE,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,MAAO,GAAE,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,AAAY,MAAO,SAAnB,YAA4B,GAAE,OAAO,UAAU,UAAU,CAAC,MAAO,KAAI,GAAG,EAAE,WAAW,EAAE,CAAC,MAAO,UAAS,EAAE,CAAC,MAAO,UAAS,EAAE,CAAC,GAAG,EAAE,KAAM,IAAI,WAAU,iCAAiC,EAAE,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE,EAAE,GAAI,GAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAS,IAAE,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,OAAO,CAAE,GAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,KAAK,MAAO,GAAE,OAAO,EAAE,EAAE,GAAI,GAAE,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,QAAS,OAAO,GAAE,EAAE,EAAE,UAAW,GAAE,MAAO,GAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,KAAK,EAAE,MAAO,GAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,aAAc,GAAE,EAAE,EAAE,IAAI,MAAM,EAAE,KAAK,MAAM,iBAAiB,GAAK,EAAE,EAAE,KAAM,KAAE,EAAE,OAAO,GAAG,EAAE,EAAE,OAAO,KAAK,AAAI,EAAE,KAAN,GAAU,AAAI,EAAE,KAAN,GAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,AAAI,EAAE,KAAN,GAAW,EAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,AAAI,EAAE,KAAN,GAAU,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,MAAM,EAAE,KAAK,MAAM,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAN,CAAS,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAC,CAAQ,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,KAAM,GAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAe,YAAY,CAAC,OAAQ,GAAE,EAAE,EAAE,EAAE,EAAE,UAAU,OAAO,EAAE,EAAE,IAAI,GAAG,UAAU,GAAG,OAAO,GAAI,GAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,OAAQ,GAAE,UAAU,GAAG,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,GAAG,EAAE,GAAG,MAAO,EAAC,CAAc,EAAE,SAAS,GAAE,EAAE,EAAE,CAAc,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,GAAI,GAAE,UAAU,CAAC,YAAY,EAAE,MAAO,GAAE,cAAc,EAAE,EAAE,UAAU,EAAE,EAAE,cAAc,EAAE,EAAE,eAAe,EAAE,EAAE,eAAe,EAAE,EAAE,gBAAgB,EAAE,EAAE,aAAa,EAAE,EAAE,oBAAoB,EAAE,EAAE,+BAA+B,EAAE,EAAE,kBAAkB,EAAE,EAAE,iBAAiB,GAAG,EAAE,oBAAoB,GAAG,EAAE,mBAAmB,GAAG,EAAE,sBAAsB,GAAG,EAAE,8BAA8B,GAAG,EAAE,qBAAqB,GAAG,EAAE,gBAAgB,GAAG,EAAE,mBAAmB,EAAE,EAAE,yBAAyB,EAAE,EAAE,gCAAgC,EAAE,EAAE,mBAAmB,EAAE,EAAE,mBAAmB,EAAE,EAAE,sBAAsB,EAAE,EAAE,oBAAoB,EAAE,EAAE,sBAAsB,EAAE,EAAE,uBAAuB,EAAE,EAAE,yBAAyB,EAAE,EAAE,MAAM,IAAI,EAAE,OAAO,IAAI,EAAE,KAAK,IAAI,EAAE,MAAM,IAAI,EAAE,OAAO,IAAI,EAAE,QAAQ,IAAI,EAAE,OAAO,IAAI,EAAE,SAAS,IAAI,EAAE,KAAK,KAAK,EAAE,QAAQ,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,OAAO,KAAK,EAAE,UAAU,MAAM,EAAE,UAAU,MAAM,EAAE,0BAA0B,EAAE,EAAE,yBAAyB,EAAE,EAAE,2BAA2B,EAAE,EAAE,oBAAoB,EAAE,EAAE,wBAAwB,EAAE,EAAE,8BAA8B,EAAE,EAAE,kBAAkB,EAAE,EAAE,mBAAmB,EAAE,EAAE,kBAAkB,EAAE,EAAE,gBAAgB,EAAE,EAAE,iBAAiB,EAAE,EAAE,0BAA0B,EAAE,EAAE,wBAAwB,EAAE,EAAE,yBAAyB,EAAE,EAAE,0BAA0B,GAAG,EAAE,2BAA2B,GAAG,EAAE,0BAA0B,EAAE,EAAE,yBAAyB,EAAE,EAAE,kBAAkB,EAAE,EAAE,uBAAuB,EAAE,EAAE,iBAAiB,EAAE,EAAE,kBAAkB,EAAE,EAAE,2BAA2B,EAAE,EAAE,gBAAgB,EAAE,EAAE,6BAA6B,EAAE,EAAE,mCAAmC,EAAE,EAAE,mCAAmC,EAAE,EAAE,iCAAiC,GAAG,EAAE,wCAAwC,GAAG,EAAE,8BAA8B,GAAG,EAAE,yCAAyC,GAAG,EAAE,qCAAqC,GAAG,EAAE,2CAA2C,GAAG,EAAE,6BAA6B,EAAE,EAAE,wBAAwB,EAAE,EAAE,8BAA8B,EAAE,EAAE,sBAAsB,EAAE,EAAE,+BAA+B,EAAE,EAAE,gCAAgC,EAAE,EAAE,mCAAmC,EAAE,EAAE,kCAAkC,EAAE,EAAE,iCAAiC,EAAE,EAAE,uBAAuB,EAAE,EAAE,kCAAkC,EAAE,EAAE,kCAAkC,EAAE,EAAE,iCAAiC,GAAG,EAAE,iCAAiC,GAAG,EAAE,uBAAuB,GAAG,EAAE,sBAAsB,EAAE,EAAE,uBAAuB,EAAE,EAAE,oBAAoB,EAAE,EAAE,mBAAmB,EAAE,EAAE,wBAAwB,EAAE,EAAE,oBAAoB,EAAE,EAAE,sBAAsB,EAAE,EAAE,6BAA6B,EAAE,EAAE,mCAAmC,EAAE,EAAE,4CAA4C,EAAE,EAAE,kCAAkC,KAAK,EAAE,+BAA+B,GAAG,EAAE,iCAAiC,GAAG,EAAE,8BAA8B,EAAE,EAAE,gBAAgB,EAAE,EAAE,kBAAkB,EAAE,EAAE,kBAAkB,EAAE,EAAE,0BAA0B,EAAE,EAAE,wBAAwB,EAAE,EAAE,0BAA0B,EAAE,EAAE,6BAA6B,EAAE,EAAE,uBAAuB,GAAG,EAAE,0BAA0B,GAAG,EAAE,sBAAsB,GAAG,EAAE,0BAA0B,EAAE,EAAE,2BAA2B,EAAE,EAAE,uBAAuB,EAAE,EAAE,2BAA2B,EAAE,EAAE,0BAA0B,EAAE,EAAE,0BAA0B,EAAE,EAAE,2BAA2B,EAAE,EAAE,+BAA+B,EAAE,EAAE,6BAA6B,EAAE,EAAE,kCAAkC,EAAE,EAAE,yCAAyC,EAAE,EAAE,sBAAsB,EAAE,EAAE,qBAAqB,EAAE,EAAE,yBAAyB,EAAE,EAAE,0BAA0B,EAAE,EAAE,2BAA2B,EAAE,EAAE,yBAAyB,EAAE,EAAE,2BAA2B,EAAE,EAAE,uBAAuB,EAAE,EAAE,wBAAwB,GAAG,EAAE,0BAA0B,EAAE,EAAE,4BAA4B,EAAE,EAAE,2BAA2B,GAAG,EAAE,2BAA2B,GAAG,EAAE,kCAAkC,GAAG,EAAE,iCAAiC,GAAG,EAAE,wBAAwB,GAAG,EAAE,sBAAsB,GAAG,EAAE,0BAA0B,EAAE,EAAE,4BAA4B,EAAE,EAAE,kCAAkC,EAAE,EAAE,gCAAgC,EAAE,EAAE,2CAA2C,EAAE,EAAE,4CAA4C,EAAE,EAAE,8DAA8D,EAAE,EAAE,uBAAuB,EAAE,EAAE,4BAA4B,EAAE,EAAE,4BAA4B,EAAE,EAAE,6BAA6B,EAAE,EAAE,gCAAgC,EAAE,EAAE,8BAA8B,EAAE,EAAE,8BAA8B,EAAE,EAAE,kCAAkC,EAAE,EAAE,2BAA2B,EAAE,EAAE,iCAAiC,EAAE,EAAE,4BAA4B,EAAE,CAAC,GAAG,EAAE,SAAS,GAAE,EAAE,EAAE,CAAc,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,GAAI,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,GAAE,GAAE,GAAE,CAAC,GAAI,IAAE,KAAI,EAAE,GAAG,EAAE,EAAE,UAAU,GAAE,GAAE,IAAI,EAAE,GAAI,IAAE,EAAE,EAAC,EAAE,OAAQ,MAAK,IAAE,CAAC,GAAI,GAAE,GAAE,IAAG,EAAE,GAAE,IAAG,EAAE,EAAE,KAAK,GAAG,AAAM,GAAN,MAAS,AAAa,KAAb,WAAe,OAAO,OAAQ,OAAO,OAAO,IAAG,GAAE,IAAG,EAAE,UAAW,GAAE,GAAE,IAAG,IAAG,EAAE,eAAe,EAAE,EAAE,QAAQ,UAAW,OAAO,OAAO,OAAO,OAAO,OAAO,QAAQ,IAAG,GAAE,IAAG,GAAE,EAAE,EAAE,QAAQ,CAAC,MAAO,GAAC,EAAE,WAAW,GAAE,CAAC,GAAI,IAAE,GAAE,eAAe,GAAG,EAAE,IAAG,MAAO,GAAE,IAAG,EAAE,IAAG,GAAG,OAAQ,IAAE,EAAE,IAAG,GAAE,GAAE,GAAE,GAAE,IAAG,CAAC,GAAI,IAAE,EAAE,IAAG,OAAQ,KAAK,IAAE,GAAE,GAAG,GAAE,GAAG,GAAI,GAAE,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAE,GAAE,OAAO,eAAe,EAAC,GAAG,aAAa,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,iBAAiB,GAAE,MAAM,GAAE,CAAC,OAAO,GAAG,GAAG,EAAE,MAAM,GAAE,EAAE,eAAe,GAAE,CAAC,CAAC,MAAO,GAAC,CAAC,WAAW,GAAE,GAAE,CAAC,MAAO,UAAS,GAAE,GAAE,CAAC,GAAI,IAAE,SAAS,GAAE,CAAC,GAAI,GAAE,GAAE,eAAe,MAAO,GAAE,IAAK,GAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAC,EAAE,GAAE,KAAK,IAAE,IAAG,CAAC,KAAK,GAAE,WAAW,EAAC,EAAE,CAAC,CAAC,WAAW,GAAE,GAAE,CAAC,MAAO,AAAS,MAAT,QAAa,IAAE,MAAM,SAAS,GAAE,GAAE,CAAC,MAAO,AAAS,MAAT,QAAa,IAAE,MAAM,SAAS,GAAE,GAAE,CAAC,GAAI,GAAE,IAAG,IAAI,GAAE,OAAO,eAAe,GAAE,GAAE,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,EAAE,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,KAAK,GAAI,MAAK,GAAG,EAAE,GAAE,IAAG,MAAM,IAAI,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,GAAE,EAAC,CAAC,CAAC,WAAW,GAAE,CAAC,MAAO,GAAE,EAAE,EAAC,CAAC,CAAC,WAAW,GAAE,CAAC,MAAO,GAAE,EAAE,EAAC,CAAC,CAAC,WAAW,GAAE,CAAC,MAAO,GAAE,EAAE,EAAC,CAAC,CAAC,WAAW,GAAE,CAAC,MAAO,GAAE,EAAE,EAAC,CAAC,CAAC,WAAW,GAAE,CAAC,MAAO,GAAE,EAAE,EAAC,CAAC,CAAC,WAAW,GAAE,CAAC,MAAO,GAAE,EAAE,EAAC,CAAC,CAAC,WAAW,GAAE,CAAC,MAAO,GAAE,EAAE,EAAC,CAAC,CAAC,WAAW,GAAE,CAAC,MAAO,GAAE,EAAE,EAAC,CAAC,CAAC,WAAW,GAAE,CAAC,MAAO,GAAE,EAAE,EAAC,CAAC,CAAC,WAAW,GAAE,CAAC,MAAO,GAAE,EAAE,EAAC,CAAC,CAAC,WAAW,GAAE,CAAC,MAAO,GAAE,GAAG,EAAC,CAAC,CAAC,WAAW,GAAE,CAAC,MAAO,GAAE,GAAG,EAAC,CAAC,CAAC,WAAW,GAAE,CAAC,MAAO,GAAE,GAAG,EAAC,CAAC,CAAC,GAAI,GAAE,UAAU,CAAC,aAAY,EAAE,MAAO,IAAE,2BAA2B,SAAS,GAAE,GAAE,CAAC,GAAG,GAAE,WAAW,CAAC,GAAE,WAAW,GAAG,OAAQ,IAAE,EAAE,GAAE,GAAE,WAAW,OAAO,KAAI,CAAC,GAAI,IAAE,GAAE,WAAW,IAAG,GAAE,WAAW,KAAK,GAAE,WAAW,CAAC,CAAC,CAAC,EAAE,GAAE,UAAU,SAAS,GAAE,GAAE,CAAC,IAAI,IAAE,IAAI,EAAE,GAAI,IAAE,KAAK,EAAE,EAAE,QAAQ,EAAC,GAAG,GAAI,IAAE,EAAE,EAAC,EAAE,OAAQ,MAAK,IAAE,CAAC,GAAI,IAAE,GAAE,IAAG,EAAE,GAAE,YAAY,GAAE,EAAE,GAAE,KAAK,EAAE,GAAE,IAAG,GAAG,AAAM,GAAN,MAAS,AAAa,KAAb,WAAe,OAAO,OAAQ,GAAE,GAAE,GAAG,EAAE,UAAW,GAAE,GAAE,GAAG,EAAE,YAAY,UAAW,GAAE,GAAE,GAAG,EAAE,UAAU,UAAW,GAAE,GAAE,GAAG,EAAE,YAAY,UAAW,OAAO,GAAE,GAAE,GAAG,EAAE,UAAU,UAAW,GAAE,GAAE,GAAG,EAAE,GAAG,UAAW,GAAE,GAAE,GAAG,EAAE,YAAY,UAAW,GAAE,GAAE,GAAG,EAAE,UAAU,UAAW,GAAE,GAAE,GAAG,EAAE,YAAY,UAAW,IAAG,GAAE,GAAG,EAAE,UAAU,UAAW,IAAG,GAAE,GAAG,EAAE,OAAQ,IAAG,GAAE,GAAG,EAAE,UAAU,CAAC,MAAO,GAAC,EAAE,GAAE,MAAM,SAAS,GAAE,GAAE,GAAE,GAAE,CAAC,AAAS,KAAT,QAAa,IAAE,MAAM,GAAI,IAAE,KAAI,IAAI,IAAE,IAAI,EAAE,GAAG,EAAE,EAAE,UAAU,GAAE,GAAE,IAAI,EAAE,GAAI,GAAE,EAAE,EAAC,EAAE,OAAQ,KAAK,GAAE,CAAC,GAAI,GAAE,EAAE,GAAG,EAAE,GAAE,EAAE,YAAY,GAAG,EAAE,EAAE,KAAK,GAAG,AAAM,GAAN,MAAS,AAAa,IAAb,WAAe,CAAC,GAAI,IAAE,GAAE,OAAO,OAAQ,GAAE,GAAE,GAAG,EAAE,UAAW,GAAE,IAAI,IAAE,GAAG,GAAE,eAAe,EAAE,GAAE,EAAC,GAAG,UAAW,GAAE,GAAE,GAAG,EAAE,EAAE,UAAU,CAAC,EAAE,UAAW,GAAE,GAAE,GAAG,GAAE,yBAAyB,CAAC,EAAE,UAAW,GAAE,GAAE,GAAG,EAAE,EAAE,UAAU,CAAC,EAAE,UAAW,GAAE,GAAE,GAAG,EAAE,EAAE,UAAU,CAAC,EAAE,UAAW,GAAE,IAAI,IAAE,GAAG,GAAE,gBAAgB,CAAC,GAAG,UAAW,GAAE,GAAE,GAAG,GAAE,mBAAmB,CAAC,EAAE,UAAW,GAAE,GAAE,GAAG,EAAE,EAAE,UAAU,CAAC,EAAE,UAAW,GAAE,GAAE,GAAG,GAAE,oCAAoC,CAAC,EAAE,UAAW,IAAG,GAAE,GAAG,EAAE,EAAE,UAAU,CAAC,EAAE,UAAW,IAAG,IAAI,IAAE,GAAG,GAAE,cAAc,CAAC,OAAQ,IAAG,GAAE,GAAG,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,MAAO,GAAC,EAAE,GAAE,MAAM,SAAS,GAAE,GAAE,CAAC,MAAO,GAAE,GAAE,GAAE,EAAE,CAAC,EAAE,GAAE,YAAY,SAAS,GAAE,GAAE,CAAC,MAAO,GAAE,GAAE,GAAE,EAAE,CAAC,EAAE,GAAE,oCAAoC,SAAS,GAAE,CAAC,KAAM,GAAE,EAAE,WAAW,8BAA8B,CAAC,EAAE,GAAE,yBAAyB,SAAS,GAAE,CAAC,KAAM,GAAE,EAAE,WAAW,mBAAmB,CAAC,EAAE,GAAE,mBAAmB,SAAS,GAAE,CAAC,KAAM,GAAE,EAAE,WAAW,aAAa,CAAC,EAAE,GAAE,eAAe,SAAS,GAAE,GAAE,GAAE,CAAC,KAAM,GAAE,EAAE,WAAW,SAAS,CAAC,EAAE,EAAC,GAAG,EAAE,SAAS,GAAE,EAAE,EAAE,CAAc,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,GAAI,GAAE,UAAU,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,GAAG,AAAS,IAAT,QAAa,GAAE,IAAI,AAAS,IAAT,QAAa,GAAE,IAAI,AAAS,IAAT,QAAa,GAAE,IAAI,KAAK,gBAAgB,GAAG,EAAE,SAAS,KAAK,QAAQ,EAAE,WAAW,YAAY,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,GAAG,EAAE,KAAK,MAAM,EAAE,KAAK,WAAW,EAAE,EAAE,EAAE,aAAa,kBAAkB,GAAG,KAAK,QAAQ,CAAC,MAAO,GAAE,UAAU,mBAAmB,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,GAAI,GAAE,EAAE,EAAE,EAAE,aAAa,kBAAkB,EAAE,EAAE,EAAE,EAAE,EAAE,aAAa,kBAAkB,KAAK,WAAW,MAAO,IAAI,GAAE,KAAK,QAAQ,KAAK,EAAE,KAAK,WAAW,GAAG,EAAE,AAAS,IAAT,OAAW,KAAK,WAAW,EAAE,EAAE,EAAE,OAAO,OAAO,GAAG,KAAK,UAAU,CAAC,CAAC,EAAE,EAAE,UAAU,YAAY,UAAU,CAAC,MAAO,MAAK,UAAU,EAAE,EAAE,UAAU,QAAQ,UAAU,CAAC,MAAO,MAAK,KAAK,EAAE,EAAE,UAAU,UAAU,UAAU,CAAC,MAAO,MAAK,OAAO,EAAE,EAAE,UAAU,cAAc,UAAU,CAAC,MAAO,MAAK,WAAW,aAAa,iBAAiB,EAAE,EAAE,UAAU,OAAO,SAAS,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,MAAM,CAAC,GAAG,KAAK,SAAU,GAAE,GAAG,KAAK,QAAS,MAAK,QAAQ,KAAK,YAAa,MAAK,QAAQ,0BAA0B,KAAK,QAAQ,CAAC,EAAE,KAAK,MAAM,GAAG,KAAK,WAAY,MAAK,QAAQ,KAAK,QAAQ,0BAA0B,CAAC,EAAE,KAAK,MAAM,GAAG,KAAK,QAAQ,KAAK,QAAQ,mBAAmB,CAAC,EAAE,EAAE,EAAE,UAAU,SAAS,UAAU,CAAC,KAAK,QAAQ,KAAK,KAAK,OAAO,KAAK,KAAK,CAAC,EAAE,EAAE,UAAU,OAAO,SAAS,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,KAAK,SAAS,KAAK,YAAa,MAAK,QAAQ,0BAA0B,KAAK,QAAQ,EAAE,EAAE,EAAE,EAAE,aAAa,kBAAkB,EAAE,EAAE,KAAK,WAAW,MAAM,EAAE,KAAK,MAAM,KAAK,EAAE,EAAE,UAAU,oBAAoB,UAAU,CAAC,KAAK,SAAU,MAAK,gBAAgB,KAAK,QAAQ,aAAa,KAAK,gBAAgB,GAAG,EAAE,EAAE,UAAU,QAAQ,UAAU,CAAC,KAAK,SAAS,KAAK,QAAQ,eAAe,KAAK,OAAO,GAAI,MAAK,QAAQ,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,AAAS,IAAT,QAAa,GAAE,IAAI,AAAS,IAAT,QAAa,GAAE,IAAI,AAAS,IAAT,QAAa,GAAE,GAAG,AAAS,IAAT,QAAa,GAAE,IAAI,YAAa,GAAG,MAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,GAAG,KAAK,QAAQ,uBAAwB,MAAK,QAAQ,GAAI,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,YAAY,IAAI,KAAK,MAAM,EAAE,AAAM,GAAN,KAAQ,CAAC,GAAI,GAAE,KAAK,UAAU,KAAK,KAAK,EAAE,MAAM,YAAa,WAAU,KAAK,KAAK,EAAE,KAAK,YAAa,YAAW,KAAK,KAAK,EAAE,cAAc,YAAa,YAAW,KAAK,KAAK,EAAE,MAAM,YAAa,aAAY,KAAK,KAAK,EAAE,eAAe,YAAa,YAAW,KAAK,KAAK,EAAE,IAAI,YAAa,cAAc,MAAK,KAAK,EAAE,aAAa,KAAM,MAAK,KAAK,EAAE,GAAI,GAAE,EAAE,kBAAkB,KAAK,IAAI,EAAE,EAAG,MAAK,MAAM,GAAI,GAAE,EAAE,EAAE,EAAE,aAAa,CAAC,GAAG,KAAK,WAAW,GAAG,KAAK,QAAQ,YAAY,KAAK,MAAM,EAAE,KAAK,WAAW,GAAG,GAAI,MAAK,MAAM,GAAG,GAAG,EAAE,aAAa,CAAC,EAAE,KAAK,WAAW,EAAE,EAAE,EAAE,KAAK,QAAQ,YAAY,KAAK,MAAM,EAAE,KAAK,WAAY,IAAG,GAAG,GAAG,KAAK,WAAW,EAAE,KAAK,WAAW,AAAS,IAAT,QAAY,EAAE,KAAK,iBAAiB,EAAE,EAAE,CAAC,CAAC,MAAO,QAAO,eAAe,EAAE,UAAU,kBAAkB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,gBAAgB,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,iBAAiB,EAAE,KAAK,WAAW,AAAG,GAAH,CAAI,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,SAAS,UAAU,CAAC,KAAK,SAAS,KAAK,QAAQ,UAAU,EAAE,EAAE,UAAU,QAAQ,UAAU,CAAC,MAAO,MAAK,KAAK,EAAE,EAAE,UAAU,YAAY,UAAU,CAAC,MAAO,MAAK,QAAQ,aAAa,EAAE,EAAE,UAAU,QAAQ,UAAU,CAAC,MAAO,MAAK,QAAQ,SAAS,EAAE,EAAE,UAAU,UAAU,UAAU,CAAC,MAAO,MAAK,QAAQ,WAAW,EAAE,EAAE,UAAU,cAAc,UAAU,CAAC,MAAO,MAAK,WAAW,EAAE,kBAAkB,KAAK,IAAI,CAAC,EAAE,EAAE,UAAU,UAAU,UAAU,CAAC,MAAO,MAAK,WAAW,EAAE,kBAAkB,KAAK,IAAI,CAAC,EAAE,EAAE,UAAU,QAAQ,UAAU,CAAC,MAAO,MAAK,KAAK,EAAE,EAAE,UAAU,eAAe,UAAU,CAAC,MAAO,MAAK,UAAU,EAAE,EAAE,UAAU,mBAAmB,UAAU,CAAC,MAAO,MAAK,gBAAgB,EAAE,EAAE,UAAU,OAAO,SAAS,EAAE,CAAC,KAAK,QAAQ,OAAO,CAAC,CAAC,EAAE,EAAE,UAAU,OAAO,SAAS,EAAE,CAAC,KAAK,QAAQ,OAAO,CAAC,CAAC,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,KAAK,QAAQ,eAAe,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,UAAU,QAAQ,UAAU,CAAC,KAAK,aAAa,KAAK,QAAQ,SAAS,EAAE,EAAE,UAAU,QAAQ,SAAS,EAAE,EAAE,CAAC,EAAE,QAAQ,KAAK,QAAQ,UAAU,KAAK,WAAW,KAAK,WAAW,KAAK,MAAM,KAAK,KAAK,EAAE,KAAK,WAAW,CAAC,CAAC,EAAE,EAAE,aAAa,SAAS,EAAE,CAAC,OAAO,OAAQ,GAAE,WAAY,GAAE,YAAa,GAAE,YAAa,GAAE,YAAa,GAAE,YAAa,GAAE,QAAQ,MAAO,OAAO,GAAE,eAAgB,GAAE,aAAa,MAAO,OAAO,GAAE,cAAe,GAAE,wBAAyB,GAAE,6BAA8B,GAAE,wBAAyB,GAAE,6BAA8B,GAAE,YAAY,MAAO,WAAU,KAAM,IAAI,OAAM,iBAAiB,EAAE,GAAG,EAAE,EAAE,EAAE,kBAAkB,SAAS,EAAE,CAAC,OAAO,OAAQ,GAAE,SAAU,GAAE,cAAc,MAAO,OAAO,GAAE,UAAW,GAAE,eAAe,MAAO,OAAO,GAAE,QAAS,GAAE,iBAAkB,GAAE,MAAM,MAAO,WAAU,KAAM,IAAI,OAAM,iBAAiB,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,YAAa,OAAM,OAAQ,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,GAAI,GAAE,YAAa,aAAY,GAAI,UAAS,CAAC,EAAE,GAAI,UAAS,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,EAAE,kBAAkB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,GAAI,GAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAK,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,eAAe,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,OAAO,OAAQ,GAAE,KAAK,GAAI,GAAE,EAAE,QAAQ,CAAC,EAAE,MAAO,IAAI,GAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAO,GAAE,cAAc,SAAE,EAAE,SAAS,CAAC,EAAS,GAAI,IAAG,KAAK,MAAO,GAAE,MAAM,SAAE,EAAE,SAAS,EAAE,EAAE,EAAS,GAAI,GAAE,KAAK,IAAI,EAAE,MAAM,EAAE,GAAG,MAAO,GAAE,eAAe,SAAE,EAAE,UAAU,EAAE,EAAE,EAAS,GAAI,IAAG,OAAO,MAAO,GAAE,IAAI,MAAO,GAAE,SAAS,EAAE,EAAE,MAAO,GAAE,aAAa,MAAO,GAAE,UAAU,EAAE,EAAE,MAAO,GAAE,MAAM,MAAO,GAAE,WAAW,EAAE,EAAE,UAAU,KAAM,IAAI,OAAM,0BAA0B,CAAC,EAAE,EAAE,EAAE,KAAK,KAAK,EAAE,cAAc,KAAK,EAAE,MAAM,KAAK,EAAE,eAAe,KAAK,EAAE,IAAI,KAAK,EAAE,aAAa,KAAK,EAAE,MAAM,KAAK,EAAE,aAAa,WAAW,EAAE,WAAW,SAAS,EAAE,YAAY,UAAU,EAAE,OAAO,KAAK,EAAE,QAAQ,MAAM,EAAE,QAAQ,MAAM,EAAE,QAAQ,MAAM,EAAE,QAAQ,MAAM,EAAE,QAAQ,MAAM,EAAE,UAAU,QAAQ,EAAE,oBAAoB,kBAAkB,EAAE,oBAAoB,kBAAkB,EAAE,yBAAyB,uBAAuB,EAAE,yBAAyB,uBAAuB,CAAC,GAAG,EAAE,SAAS,GAAE,EAAE,EAAE,CAAc,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,GAAI,GAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,UAAU,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,KAAK,AAAS,IAAT,QAAa,GAAE,MAAM,AAAS,IAAT,QAAa,GAAE,MAAM,AAAS,IAAT,QAAa,GAAE,MAAM,AAAS,IAAT,QAAa,GAAE,MAAM,AAAS,IAAT,QAAa,GAAE,MAAM,KAAK,KAAK,KAAK,KAAK,QAAQ,GAAG,KAAK,WAAW,KAAK,KAAK,QAAQ,KAAK,KAAK,OAAO,KAAK,KAAK,SAAS,EAAE,KAAK,oBAAoB,GAAI,GAAE,EAAE,KAAK,kBAAkB,GAAI,GAAE,EAAE,KAAK,kBAAkB,KAAK,KAAK,oBAAoB,GAAG,KAAK,6BAA6B,GAAG,KAAK,aAAa,GAAG,KAAK,qBAAqB,GAAG,KAAK,UAAU,GAAG,KAAK,SAAS,GAAG,KAAK,kBAAkB,GAAG,KAAK,uBAAuB,GAAG,KAAK,UAAU,GAAG,KAAK,KAAK,GAAG,KAAK,WAAW,KAAK,KAAK,kBAAkB,GAAG,KAAK,oBAAoB,GAAG,KAAK,0BAA0B,GAAG,KAAK,4BAA4B,GAAG,KAAK,2BAA2B,KAAK,KAAK,qBAAqB,GAAG,KAAK,uBAAuB,GAAG,KAAK,iBAAiB,KAAK,KAAK,YAAY,GAAG,KAAK,KAAK,EAAE,GAAI,GAAE,EAAE,EAAE,KAAK,GAAG,EAAE,WAAW,CAAC,GAAI,GAAE,EAAE,GAAG,KAAK,QAAQ,EAAE,KAAK,iBAAiB,EAAE,WAAW,KAAK,eAAe,EAAE,cAAc,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,SAAS,QAAQ,KAAK,QAAQ,EAAE,QAAQ,KAAK,QAAQ,EAAE,QAAQ,KAAK,WAAW,EAAE,WAAW,KAAK,WAAW,EAAE,UAAU,KAAK,iBAAiB,EAAE,gBAAgB,KAAK,2BAA2B,EAAE,2BAA2B,KAAK,KAAK,aAAa,CAAC,CAAC,EAAE,YAAY,EAAE,oBAAoB,CAAC,KAAK,yBAAyB,EAAE,oBAAoB,QAAQ,OAAQ,GAAE,EAAE,EAAE,EAAE,oBAAoB,OAAO,IAAI,KAAK,qBAAqB,EAAE,oBAAoB,IAAI,CAAC,CAAC,EAAE,AAAQ,GAAE,EAAE,oBAAZ,MAA+B,AAAS,IAAT,OAAW,EAAE,IAAI,KAAM,MAAK,QAAQ,EAAE,KAAK,QAAc,GAAE,GAAK,KAAK,eAAe,EAAE,OAAO,CAAC,EAAE,KAAK,aAAa,EAAE,EAAE,QAAQ,GAAG,KAAK,iBAAiB,EAAE,KAAK,yBAAyB,GAAG,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,KAAK,iBAAiB,EAAE,KAAK,WAAW,EAAE,KAAK,yBAAyB,GAAG,KAAK,SAAS,EAAE,gBAAgB,GAAI,IAAE,EAAE,EAAE,sBAAsB,KAAK,QAAQ,kBAAkB,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,cAAe,GAAE,GAAE,GAAE,eAAe,EAAE,aAAa,EAAE,OAAQ,GAAE,EAAE,eAAe,EAAE,EAAE,QAAQ,EAAE,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAiB,GAAE,GAAE,GAAE,eAAe,EAAE,eAAe,EAAE,OAAQ,GAAE,EAAE,iBAAiB,EAAE,EAAE,UAAU,EAAE,GAAI,IAAE,CAAC,QAAQ,KAAK,QAAQ,MAAM;AAAA,CAAI,EAAE,gBAAgB,KAAK,iBAAiB,WAAW,GAAG,6BAA6B,KAAK,QAAQ,8BAA8B,UAAU,KAAK,QAAQ,iBAAiB,uBAAuB,KAAK,QAAQ,uBAAuB,kBAAkB,EAAE,kBAAkB,qBAAqB,EAAE,qBAAqB,QAAS,KAAI,KAAK,QAAQ,cAAc,WAAW,aAAa,KAAK,QAAQ,cAAc,EAAE,SAAS,QAAQ,EAAE,KAAK,YAAY,EAAE,SAAS,GAAI,SAAS,GAAE,CAAC,EAAE,qBAAqB,GAAE,EAAE,YAAY,EAAE,WAAW,QAAS,SAAS,GAAE,CAAC,EAAE,uBAAuB,GAAE,EAAE,EAAE,QAAQ,GAAE,GAAG,SAAS,GAAE,CAAC,GAAI,IAAE,EAAE,SAAS,EAAC,GAAG,GAAE,WAAW,GAAG,EAAE,EAAE,QAAQ,GAAE,GAAG,SAAS,GAAE,CAAC,GAAI,IAAE,EAAE,WAAW,EAAC,GAAG,EAAE,cAAc,GAAE,GAAE,CAAC,CAAC,EAAG,EAAE,OAAO,CAAC,EAAG,EAAE,OAAO,CAAC,EAAG,EAAG,CAAC,MAAO,QAAO,eAAe,EAAE,UAAU,mBAAmB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,mBAAoB,MAAK,kBAAkB,GAAI,GAAE,GAAG,KAAK,iBAAiB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,GAAI,GAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,kBAAkB,8BAA8B,EAAE;AAAA,EAAK,EAAE,KAAK,oBAAoB,gCAAgC,EAAE;AAAA,EAAK,CAAC,KAAM,MAAK,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,OAAO,eAAe,EAAE,UAAU,MAAM,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,IAAI,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,QAAQ,UAAU,CAAC,GAAG,CAAC,MAAO,MAAK,kBAAkB,MAAC,CAAS,MAAM,EAAE,CAAC,EAAE,EAAE,UAAU,iBAAiB,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,KAAK,kBAAkB,KAAK,iBAAiB,OAAO,EAAE,EAAE,UAAU,UAAU,UAAU,CAAC,MAAO,MAAK,OAAO,EAAE,EAAE,UAAU,mBAAmB,UAAU,CAAC,MAAO,MAAK,gBAAgB,EAAE,EAAE,UAAU,mBAAmB,UAAU,CAAC,MAAO,MAAK,gBAAgB,EAAE,EAAE,UAAU,qBAAqB,SAAS,EAAE,CAAC,MAAO,MAAK,YAAY,EAAE,EAAE,EAAE,UAAU,2BAA2B,SAAS,EAAE,CAAC,MAAO,MAAK,yBAAyB,EAAE,EAAE,EAAE,UAAU,mBAAmB,UAAU,CAAC,MAAO,MAAK,YAAY,MAAM,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,CAAC,MAAO,MAAK,eAAe,QAAQ,CAAC,CAAC,EAAE,EAAE,UAAU,WAAW,SAAS,EAAE,CAAC,MAAO,MAAK,UAAU,EAAE,EAAE,EAAE,UAAU,YAAY,UAAU,CAAC,MAAO,MAAK,YAAY,EAAE,EAAE,UAAU,gBAAgB,UAAU,CAAC,MAAO,MAAK,cAAc,EAAE,EAAE,UAAU,uBAAuB,UAAU,CAAC,MAAO,MAAK,wBAAwB,EAAE,EAAE,UAAU,mBAAmB,UAAU,CAAC,MAAO,MAAK,gBAAgB,EAAE,EAAE,UAAU,oBAAoB,UAAU,CAAC,MAAO,MAAK,iBAAiB,EAAE,EAAE,UAAU,sBAAsB,UAAU,CAAC,MAAO,MAAK,sBAAsB,EAAE,EAAE,UAAU,oBAAoB,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,KAAK,UAAU,EAAE,IAAI,EAAG,MAAK,oBAAoB,IAAK,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,GAAI,KAAK,kBAAkB,CAAC,KAAK,iBAAiB,SAAS,WAAY,UAAU,CAAC,EAAE,cAAc,IAAI,CAAC,EAAG,EAAE,EAAE,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,GAAG,CAAC,GAAG,KAAK,mBAAmB,MAAM,OAAO,EAAN,CAAS,MAAO,KAAK,MAAK,0BAA0B,EAAE,CAAC,CAAC,CAAC,WAAY,UAAU,CAAC,EAAE,cAAc,CAAC,CAAC,EAAG,EAAE,CAAC,EAAE,EAAE,UAAU,YAAY,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,GAAG,AAAa,MAAO,aAApB,KAAiC,YAAa,aAAY,MAAO,KAAK,GAAE,EAAE,EAAE,kBAAkB,CAAC,CAAC,EAAE,AAAY,EAAE,OAAO,EAAE,CAAC,IAAxB,UAA0B,AAAY,EAAE,OAAO,EAAE,CAAC,IAAxB,UAA0B,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,EAAE,aAAa,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,EAAE,aAAa,EAAE,EAAE,SAAS,EAAG,GAAE,AAAM,EAAE,KAAR,KAAY,AAAM,EAAE,KAAR,KAAY,EAAE,QAAQ,MAAM,EAAE,GAAG,EAAE,EAAE,kBAAkB,EAAE,KAAK,QAAQ,UAAU,EAAE,IAAI,EAAE,cAAc,MAAM,CAAC,GAAG,EAAE,OAAO,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,mBAAmB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,2BAA2B,KAAK,4BAA4B,KAAK,0BAA0B,KAAK,iBAAiB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,qBAAqB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,2BAA2B,KAAK,4BAA4B,KAAK,4BAA4B,KAAK,mBAAmB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,sBAAsB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,oBAAoB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,wBAAwB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,sBAAsB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,KAAK,SAAS,GAAG,KAAK,0BAA0B,EAAE,KAAK,4BAA4B,EAAE,KAAK,QAAQ,SAAS,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,WAAW,UAAU,CAAC,GAAI,GAAE,EAAE,YAAY,OAAO,GAAG,EAAE,OAAQ,GAAE,EAAE,EAAE,EAAE,OAAO,IAAI,EAAE,GAAG,wBAAwB,EAAE,EAAE,qBAAqB,EAAE,EAAE,iBAAiB,+BAA+B,CAAC,CAAC,EAAE,KAAK,WAAW,KAAK,KAAK,gBAAgB,EAAE,EAAE,UAAU,eAAe,UAAU,CAAC,GAAI,GAAE,KAAK,EAAE,KAAK,iBAAiB,EAAE,KAAK,QAAQ,KAAK,YAAY,GAAG,GAAI,GAAE,KAAK,iBAAiB,GAAG,CAAC,GAAI,GAAE,KAAK,QAAQ,KAAK,iBAAiB,EAAE,wBAAwB,GAAI,GAAE,KAAK,gBAAgB,KAAK,IAAI,EAAE,KAAK,2BAA2B,KAAK,4BAA4B,EAAE,wBAAwB,KAAK,iBAAiB,KAAK,0BAA0B,KAAK,4BAA4B,GAAG,EAAE,KAAK,KAAK,0BAA0B,EAAE,EAAE,wBAAwB,KAAK,iBAAiB,KAAK,kBAAkB,KAAK,oBAAoB,GAAG,EAAE,EAAE,KAAK,0BAA0B,EAAE,EAAE,qCAAqC,KAAK,iBAAkB,UAAU,CAAC,GAAG,EAAE,uBAAuB,OAAQ,KAAK,GAAE,qBAAqB,EAAE,iBAAiB,EAAE,EAAE,qBAAqB,EAAE,EAAE,GAAI,GAAE,GAAG,EAAE,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,QAAS,SAAS,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,eAAe,IAAI,CAAC,GAAI,EAAE,YAAY,EAAE,cAAc,EAAE,iBAAiB,CAAC,EAAE,EAAE,OAAQ,GAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,GAAI,GAAE,EAAE,GAAG,EAAE,yBAAyB,GAAG,EAAE,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,aAAa,OAAO,IAAK,AAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAApC,MAAwC,GAAE,aAAa,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,QAAS,SAAS,EAAE,EAAE,CAAC,EAAE,UAAU,GAAG,CAAC,GAAI,EAAE,aAAa,CAAC,EAAE,EAAE,kBAAkB,GAAG,EAAE,SAAS,GAAG,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,EAAE,oBAAoB,gBAAgB,CAAC,EAAE,EAAE,oBAAoB,QAAQ,EAAE,YAAY,EAAE,WAAW,aAAa,GAAG,EAAE,YAAY,uBAAuB,CAAC,CAAC,GAAI,KAAK,iBAAiB,SAAS,KAAK,cAAc,CAAC,CAAC,OAAO,EAAN,CAAS,KAAK,0BAA0B,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,2BAA2B,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,mCAAmC,iCAAiC,EAAE,KAAK,GAAG,GAAG,EAAE,CAAC,GAAI,GAAE,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,AAAI,EAAE,SAAN,EAAa,CAAC,GAAI,GAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM;AAAA,EAAK,EAAE,EAAE,EAAE,QAAQ,GAAI,GAAE,mBAAmB,EAAE,QAAS,GAAE,WAAW,UAAU,UAAU,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,0BAA0B,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,EAAE,EAAE,EAAE,AAAS,IAAT,QAAa,GAAE,MAAM,KAAK,kBAAkB,EAAE,QAAQ,GAAI,GAAE,KAAK,iBAAiB,EAAE,KAAK,WAAW,GAAG,EAAE,EAAE,MAAM,2BAA2B,EAAE,EAAE,EAAE,MAAM,aAAa,KAAK,eAAe,IAAK,SAAS,EAAE,CAAC,MAAM,IAAI,CAAC,EAAG,EAAE,EAAE,EAAE,MAAM,eAAe,EAAE,IAAK,SAAS,EAAE,CAAC,MAAM,IAAI,CAAC,EAAG,EAAE,EAAE,EAAE,MAAM;AAAA,EAAe,KAAK,OAAO,EAAE,EAAE,gCAAgC,CAAC,GAAI,GAAE,KAAK,EAAE,KAAK,EAAE,KAAK,AAAC,EAAQ,GAAE,KAAK,oBAAf,MAAkC,AAAS,IAAT,SAAkB,EAAE,wBAA0B,GAAG,GAAE,KAAK,2BAA2B,KAAK,iBAAiB,uBAAuB,KAAK,kBAAkB,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAI,GAAE,EAAE,MAAM,cAAc,EAAE,EAAE,EAAE,MAAM,CAAC,IAAK,EAAQ,GAAE,KAAK,oBAAf,MAAkC,AAAS,IAAT,SAAkB,EAAE,0BAA4B,GAAG,GAAE,KAAK,2BAA2B,AAAQ,GAAE,KAAK,oBAAf,MAAkC,AAAS,IAAT,OAAW,OAAO,EAAE,yBAAyB,KAAK,kBAAkB,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAI,GAAE,EAAE,MAAM,gBAAgB,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,EAAE,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,UAAU,KAAK,iBAAiB,EAAE,GAAI,MAAK,iBAAiB,EAAE,KAAK,SAAS,GAAG,KAAK,SAAS,KAAK,QAAQ,KAAK,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,gBAAgB,IAAI,GAAG,EAAG,MAAK,iBAAiB,KAAK,EAAE,iBAAkB,MAAK,uBAAuB,GAAG,EAAE,EAAE,MAAM,uBAAuB,EAAE,KAAK,QAAQ,EAAE,OAAO,KAAK,QAAQ,IAAI,EAAE,KAAK,kBAAmB,MAAK,uBAAuB,GAAG,KAAK,SAAS,KAAK,QAAQ,KAAK,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,gBAAgB,IAAI,EAAE,KAAK,kBAAkB,QAAQ,KAAK,YAAY,KAAK,WAAW,eAAe,KAAK,uBAAuB,EAAE,EAAE,OAAO,eAAe,EAAE,UAAU,cAAc,CAAC,IAAI,UAAU,CAAC,MAAM,AAAK,MAAK,oBAAV,EAA2B,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,aAAa,SAAS,EAAE,EAAE,CAAC,KAAK,QAAQ,aAAa,KAAK,UAAU,GAAG,CAAC,CAAC,EAAE,EAAE,UAAU,WAAW,SAAS,EAAE,EAAE,CAAC,KAAK,QAAQ,WAAW,KAAK,UAAU,GAAG,KAAK,UAAU,GAAG,CAAC,CAAC,EAAE,EAAE,UAAU,uBAAuB,SAAS,EAAE,EAAE,CAAC,KAAK,QAAQ,uBAAuB,KAAK,UAAU,GAAG,KAAK,UAAU,GAAG,CAAC,CAAC,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,KAAK,GAAG,AAAK,KAAK,aAAa,QAAQ,EAAE,GAAG,IAApC,GAAsC,CAAC,OAAQ,GAAE,KAAK,aAAa,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,GAAI,GAAE,EAAG,GAAE,GAAG,WAAW,KAAK,aAAa,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,OAAQ,GAAE,EAAE,EAAE,EAAE,EAAE,KAAK,aAAa,EAAE,EAAE,OAAO,IAAI,CAAC,GAAI,GAAE,EAAE,GAAG,KAAK,UAAU,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,gBAAgB,KAAK,UAAU,GAAG,KAAK,UAAU,GAAG,CAAC,CAAC,EAAE,EAAE,UAAU,0BAA0B,SAAS,EAAE,EAAE,CAAC,KAAK,QAAQ,0BAA0B,KAAK,UAAU,GAAG,CAAC,CAAC,EAAE,EAAE,UAAU,gCAAgC,SAAS,EAAE,EAAE,CAAC,KAAK,QAAQ,gCAAgC,KAAK,UAAU,GAAG,CAAC,CAAC,EAAE,EAAE,UAAU,aAAa,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,YAAY,GAAG,EAAE,EAAE,WAAW,MAAO,CAAS,IAAT,QAAY,IAAI,IAAK,MAAK,YAAY,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,aAAa,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,YAAY,GAAG,GAAG,CAAC,GAAG,AAAI,EAAE,SAAN,EAAa,MAAO,GAAE,CAAC,EAAE,CAAC,EAAE,KAAK,YAAY,GAAG,EAAE,GAAG,GAAI,GAAE,GAAG,MAAO,GAAE,KAAK,GAAI,GAAE,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,GAAI,GAAE,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,aAAa,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,YAAY,GAAG,GAAG,CAAC,GAAG,AAAI,EAAE,SAAN,EAAa,MAAO,GAAE,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,YAAY,GAAG,EAAE,GAAG,GAAI,GAAE,GAAG,MAAO,GAAE,KAAK,GAAI,GAAE,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,GAAI,GAAE,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,GAAI,GAAE,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,aAAa,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,YAAY,GAAG,GAAG,CAAC,GAAG,AAAI,EAAE,SAAN,EAAa,MAAO,GAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,YAAY,GAAG,EAAE,GAAG,GAAI,GAAE,GAAG,MAAO,GAAE,KAAK,GAAI,GAAE,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,GAAI,GAAE,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,GAAI,GAAE,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,GAAI,GAAE,GAAG,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,kBAAkB,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,qBAAqB,GAAG,AAAS,IAAT,QAAY,EAAE,WAAW,KAAK,GAAI,GAAE,WAAW,GAAG,EAAE,KAAK,QAAQ,sBAAsB,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,iBAAiB,SAAS,EAAE,EAAE,CAAC,KAAK,QAAQ,iBAAiB,KAAK,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,OAAO,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,YAAY,GAAG,MAAO,AAAS,KAAT,QAAY,IAAI,GAAG,KAAK,QAAQ,OAAO,KAAK,UAAU,GAAG,CAAC,GAAI,MAAK,YAAY,GAAG,GAAG,IAAI,EAAE,EAAE,UAAU,YAAY,SAAS,EAAE,EAAE,CAAC,MAAO,MAAK,YAAY,GAAG,KAAK,KAAK,QAAQ,YAAY,KAAK,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,aAAa,SAAS,EAAE,EAAE,CAAC,MAAO,MAAK,YAAY,GAAG,KAAK,KAAK,QAAQ,aAAa,KAAK,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,aAAa,SAAS,EAAE,EAAE,CAAC,MAAO,MAAK,YAAY,GAAG,KAAK,KAAK,QAAQ,aAAa,KAAK,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,aAAa,SAAS,EAAE,EAAE,CAAC,MAAO,MAAK,YAAY,GAAG,KAAK,KAAK,QAAQ,aAAa,KAAK,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,EAAE,CAAC,MAAO,MAAK,YAAY,GAAG,KAAK,KAAK,QAAQ,SAAS,KAAK,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,EAAE,CAAC,MAAO,MAAK,YAAY,GAAG,KAAK,KAAK,QAAQ,UAAU,KAAK,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,EAAE,CAAC,MAAO,MAAK,YAAY,GAAG,KAAK,KAAK,QAAQ,UAAU,KAAK,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,EAAE,CAAC,MAAO,MAAK,YAAY,GAAG,KAAK,KAAK,QAAQ,UAAU,KAAK,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,SAAS,SAAS,EAAE,EAAE,CAAC,MAAO,MAAK,YAAY,GAAG,KAAK,KAAK,QAAQ,SAAS,KAAK,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,UAAU,SAAS,EAAE,EAAE,CAAC,MAAO,MAAK,YAAY,GAAG,KAAK,KAAK,QAAQ,UAAU,KAAK,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,UAAU,SAAS,EAAE,EAAE,CAAC,MAAO,MAAK,YAAY,GAAG,KAAK,KAAK,QAAQ,UAAU,KAAK,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,UAAU,SAAS,EAAE,EAAE,CAAC,MAAO,MAAK,YAAY,GAAG,KAAK,KAAK,QAAQ,UAAU,KAAK,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,YAAY,SAAS,EAAE,EAAE,CAAC,MAAO,GAAG,MAAK,YAAY,GAAG,KAAK,KAAK,QAAQ,YAAY,KAAK,UAAU,GAAG,CAAC,EAAE,MAAM,IAAI,EAAE,EAAE,UAAU,UAAU,SAAS,EAAE,EAAE,CAAC,MAAO,MAAK,aAAa,EAAE,CAAC,GAAI,MAAK,QAAQ,YAAY,KAAK,UAAU,GAAG,EAAE,SAAS,GAAI,MAAK,YAAY,GAAG,OAAO,IAAI,EAAE,EAAE,UAAU,aAAa,SAAS,EAAE,EAAE,CAAC,MAAO,MAAK,YAAY,GAAG,KAAK,KAAK,QAAQ,aAAa,KAAK,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,aAAa,SAAS,EAAE,EAAE,CAAC,MAAO,MAAK,YAAY,GAAG,KAAK,KAAK,QAAQ,aAAa,KAAK,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,SAAS,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,YAAY,GAAG,MAAO,AAAS,KAAT,QAAY,IAAI,GAAG,KAAK,QAAQ,SAAS,KAAK,UAAU,GAAG,CAAC,GAAI,MAAK,YAAY,GAAG,GAAG,IAAI,EAAE,EAAE,UAAU,QAAQ,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,YAAY,GAAG,MAAO,AAAS,KAAT,QAAY,IAAI,GAAG,KAAK,QAAQ,OAAO,KAAK,UAAU,GAAG,EAAE,EAAE,CAAC,GAAI,MAAK,YAAY,GAAG,GAAG,IAAI,EAAE,EAAE,UAAU,WAAW,SAAS,EAAE,EAAE,CAAC,MAAO,MAAK,aAAa,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,MAAK,QAAQ,UAAU,KAAK,UAAU,GAAG,EAAE,EAAE,EAAE,CAAC,GAAI,MAAK,YAAY,GAAG,OAAO,IAAI,EAAE,EAAE,UAAU,UAAU,SAAS,EAAE,EAAE,EAAE,CAAC,MAAO,MAAK,aAAa,EAAE,EAAE,CAAC,GAAI,MAAK,QAAQ,UAAU,KAAK,UAAU,GAAG,EAAE,CAAC,GAAI,MAAK,YAAY,GAAG,OAAO,IAAI,EAAE,EAAE,UAAU,WAAW,SAAS,EAAE,EAAE,CAAC,MAAO,MAAK,aAAa,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,MAAK,QAAQ,UAAU,KAAK,UAAU,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,MAAK,YAAY,GAAG,OAAO,IAAI,EAAE,EAAE,UAAU,UAAU,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,MAAO,MAAK,aAAa,EAAE,EAAE,EAAE,CAAC,GAAI,MAAK,QAAQ,UAAU,KAAK,UAAU,GAAG,EAAE,EAAE,CAAC,GAAI,MAAK,YAAY,GAAG,OAAO,IAAI,EAAE,EAAE,UAAU,WAAW,SAAS,EAAE,EAAE,CAAC,MAAO,MAAK,aAAa,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,MAAK,QAAQ,UAAU,KAAK,UAAU,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,MAAK,YAAY,GAAG,OAAO,IAAI,EAAE,EAAE,UAAU,UAAU,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,MAAO,MAAK,aAAa,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,MAAK,QAAQ,UAAU,KAAK,UAAU,GAAG,EAAE,EAAE,EAAE,CAAC,GAAI,MAAK,YAAY,GAAG,OAAO,IAAI,EAAE,EAAE,UAAU,UAAU,SAAS,EAAE,EAAE,CAAC,MAAO,MAAK,aAAa,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,MAAK,QAAQ,UAAU,KAAK,UAAU,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,MAAK,YAAY,GAAG,OAAO,IAAI,EAAE,EAAE,UAAU,UAAU,SAAS,EAAE,EAAE,EAAE,CAAC,MAAO,MAAK,aAAa,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,MAAK,QAAQ,UAAU,KAAK,UAAU,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,MAAK,YAAY,GAAG,OAAO,IAAI,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,EAAE,CAAC,MAAO,MAAK,aAAa,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,MAAK,QAAQ,UAAU,KAAK,UAAU,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,MAAK,YAAY,GAAG,OAAO,IAAI,EAAE,EAAE,UAAU,QAAQ,UAAU,CAAC,KAAK,QAAQ,eAAe,IAAI,CAAC,EAAE,EAAE,eAAe,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,aAAa,EAAE,eAAe,GAAG,GAAI,GAAE,aAAa,EAAE,gBAAgB,EAAE,EAAE,EAAE,WAAW,UAAU,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,kBAAkB,eAAe,EAAE,gCAAgC,GAAG,EAAE,cAAc,EAAE,EAAE,WAAW,GAAG,EAAE,aAAa,GAAG,EAAE,qBAAqB,GAAG,CAAC,GAAG,EAAE,SAAS,GAAE,EAAE,EAAE,CAAc,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,GAAI,GAAE,UAAU,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,KAAK,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,MAAO,GAAE,UAAU,UAAU,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,MAAO,AAAS,KAAT,QAAa,GAAE,IAAI,KAAK,KAAK,EAAE,KAAK,kBAAkB,EAAE,KAAK,OAAO,EAAE,KAAK,cAAc,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,MAAM,KAAK,SAAS,EAAE,KAAK,KAAK,EAAE,KAAK,MAAM,EAAE,KAAK,oBAAoB,GAAG,KAAK,qBAAqB,EAAE,EAAE,EAAE,UAAU,CAAC,YAAY,EAAE,MAAO,GAAE,UAAU,QAAQ,UAAU,CAAC,GAAG,KAAK,YAAY,KAAK,aAAa,OAAQ,GAAE,EAAE,EAAE,KAAK,WAAW,OAAO,IAAI,KAAK,aAAa,GAAG,OAAO,KAAK,WAAW,EAAE,EAAE,KAAK,WAAW,KAAK,KAAK,aAAa,IAAI,EAAE,EAAE,MAAM,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,AAAS,IAAT,QAAa,GAAE,MAAM,GAAI,GAAE,GAAI,GAAE,EAAE,WAAW,GAAI,OAAM,EAAE,aAAa,EAAE,OAAQ,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,GAAI,GAAE,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,WAAW,KAAK,CAAC,CAAC,CAAC,MAAO,EAAC,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,WAAW,GAAI,OAAM,KAAK,YAAY,GAAI,GAAE,CAAC,EAAE,GAAI,MAAK,iBAAiB,EAAE,CAAC,MAAO,QAAO,eAAe,EAAE,UAAU,YAAY,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,UAAU,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,IAAI,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,AAAS,IAAT,QAAa,GAAE,IAAI,AAAS,IAAT,QAAa,GAAE,IAAI,AAAS,IAAT,QAAa,GAAE,MAAM,AAAS,IAAT,QAAa,GAAE,IAAI,CAAC,EAAE,MAAO,MAAK,GAAI,GAAE,GAAI,GAAE,EAAE,EAAE,CAAC,EAAE,MAAO,GAAE,qBAAqB,EAAE,EAAE,KAAK,WAAW,QAAQ,CAAC,EAAE,KAAK,WAAW,KAAK,CAAC,EAAE,KAAK,kBAAkB,KAAK,iBAAiB,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,QAAQ,SAAS,EAAE,CAAC,MAAO,MAAK,IAAI,EAAE,OAAO,OAAO,OAAO,EAAE,CAAC,EAAE,EAAE,UAAU,OAAO,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,GAAI,AAAK,KAAK,WAAW,QAAQ,CAAC,IAA9B,IAAkC,MAAK,iBAAiB,CAAC,EAAE,GAAI,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,WAAW,OAAO,IAAI,CAAC,GAAI,GAAE,KAAK,WAAW,GAAG,GAAG,CAAC,EAAE,qBAAsB,EAAE,WAAW,GAAI,EAAC,GAAG,IAAI,EAAE,OAAQ,MAAO,MAAK,iBAAiB,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,UAAU,iBAAiB,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,EAAE,qBAAqB,GAAG,EAAE,oBAAoB,GAAG,WAAY,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAG,CAAC,CAAC,EAAE,EAAE,UAAU,QAAQ,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,GAAI,GAAE,KAAK,WAAW,QAAQ,CAAC,EAAE,MAAM,AAAK,KAAL,IAAS,MAAK,WAAW,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,wBAAwB,SAAS,EAAE,CAAC,KAAK,QAAQ,CAAC,EAAE,KAAK,WAAW,QAAQ,CAAC,CAAC,EAAE,EAAE,UAAU,2BAA2B,SAAS,EAAE,CAAC,KAAK,QAAQ,CAAC,EAAE,KAAK,WAAW,KAAK,CAAC,CAAC,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,AAAS,IAAT,QAAa,GAAE,IAAI,CAAC,KAAK,WAAW,OAAO,MAAM,GAAG,GAAI,GAAE,KAAK,YAAY,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,EAAE,kBAAkB,GAAG,EAAE,gBAAgB,EAAE,EAAE,SAAS,EAAE,OAAQ,GAAE,EAAE,EAAE,KAAK,WAAW,EAAE,EAAE,OAAO,IAAI,CAAC,GAAI,GAAE,EAAE,GAAG,GAAG,CAAC,EAAE,qBAAsB,GAAE,KAAK,GAAI,GAAE,MAAM,EAAE,gBAAgB,EAAE,SAAS,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,sBAAsB,KAAK,iBAAiB,CAAC,GAAG,EAAE,mBAAmB,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,UAAU,2BAA2B,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,AAAS,IAAT,QAAa,GAAE,IAAI,GAAI,GAAE,QAAQ,QAAQ,CAAC,EAAE,GAAG,CAAC,KAAK,WAAW,OAAO,MAAO,GAAE,GAAI,GAAE,KAAK,YAAY,MAAO,GAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,EAAE,kBAAkB,GAAG,EAAE,SAAS,EAAE,KAAK,WAAW,QAAS,SAAS,EAAE,CAAC,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,KAAK,GAAI,GAAE,EAAE,MAAM,EAAE,KAAM,SAAS,EAAE,CAAC,MAAO,GAAE,gBAAgB,EAAE,EAAE,SAAS,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,GAAI,EAAE,KAAM,SAAS,EAAE,CAAC,MAAO,GAAE,gBAAgB,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,GAAI,EAAE,sBAAsB,EAAE,iBAAiB,CAAC,EAAE,GAAI,EAAE,KAAM,UAAU,CAAC,MAAO,EAAC,EAAG,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,GAAI,GAAE,KAAK,YAAY,EAAE,KAAK,EAAE,EAAE,kBAAkB,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,aAAa,UAAU,CAAC,MAAO,MAAK,WAAW,OAAO,CAAC,EAAE,EAAE,UAAU,MAAM,UAAU,CAAC,KAAK,WAAW,GAAI,OAAM,KAAK,iBAAiB,IAAI,EAAE,EAAE,UAAU,MAAM,UAAU,CAAC,GAAI,GAAE,GAAI,GAAE,MAAO,GAAE,WAAW,KAAK,WAAW,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,OAAQ,GAAE,EAAE,EAAE,KAAK,WAAW,EAAE,EAAE,OAAO,IAAI,CAAC,GAAI,GAAE,EAAE,GAAG,GAAG,EAAE,KAAK,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,EAAE,SAAS,GAAE,EAAE,EAAE,CAAc,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,GAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,GAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,GAAI,GAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAE,EAAE,EAAE,EAAE,GAAE,UAAU,GAAG,GAAE,UAAU,CAAC,KAAK,iBAAiB,GAAG,KAAK,WAAW,GAAI,IAAE,KAAK,oBAAoB,IAAI,EAAE,GAAE,UAAU,CAAC,KAAK,WAAW,GAAG,KAAK,iBAAiB,GAAI,OAAM,KAAK,WAAW,GAAI,OAAM,KAAK,2BAA2B,GAAI,MAAK,EAAE,GAAE,UAAU,CAAC,KAAK,eAAe,EAAE,KAAK,aAAa,KAAK,KAAK,iBAAiB,IAAI,KAAK,gBAAgB,GAAG,KAAK,cAAc,IAAI,EAAE,GAAE,UAAU,CAAC,KAAK,kBAAkB,GAAG,KAAK,QAAQ,KAAK,KAAK,QAAQ,KAAK,KAAK,eAAe,GAAG,KAAK,WAAW,GAAI,OAAM,KAAK,oBAAoB,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,WAAW,EAAE,EAAE,GAAE,GAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,MAAM,AAAS,KAAT,QAAa,IAAE,MAAM,AAAS,KAAT,QAAa,IAAE,MAAM,AAAS,IAAT,QAAa,GAAE,IAAI,GAAI,GAAE,EAAE,KAAK,KAAK,EAAE,CAAC,GAAG,KAAK,GAAG,EAAE,sBAAsB,GAAI,IAAE,EAAE,eAAe,EAAE,EAAE,oBAAoB,EAAE,UAAU,GAAI,OAAM,EAAE,qBAAqB,KAAK,EAAE,UAAU,KAAK,EAAE,qBAAqB,GAAI,IAAE,EAAE,yBAAyB,GAAI,IAAE,EAAE,mBAAmB,KAAK,EAAE,2BAA2B,GAAG,EAAE,gCAAgC,EAAE,YAAY,EAAE,gCAAgC,KAAK,EAAE,EAAE,WAAW,GAAE,CAAC,GAAG,GAAE,WAAW,GAAE,UAAU,YAAY,CAAC,EAAE,EAAE,EAAE,SAAS,GAAE,EAAE,CAAC,OAAO,WAAW,WAAW,YAAY,SAAS,WAAW,SAAS,WAAW,qBAAqB,eAAe,SAAS,6BAA6B,eAAe,WAAW,YAAY,mBAAmB,UAAU,qBAAqB,eAAe,WAAW,eAAe,WAAW,gBAAgB,UAAU,KAAK,QAAQ,mBAAmB,kBAAkB,6BAA6B,sBAAsB,oBAAoB,YAAY,uBAAuB,mBAAmB,cAAc,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,sBAAsB,QAAQ,GAAE,EAAE,kBAAmB,IAAE,sBAAsB,SAAU,IAAE,sBAAsB,QAAQ,IAAI,GAAE,sBAAsB,QAAQ,EAAE,UAAU,GAAG,EAAE,gCAAgC,GAAE,gCAAgC,EAAE,qBAAqB,GAAE,qBAAqB,GAAE,QAAQ,CAAC,GAAI,GAAE,GAAE,QAAQ,OAAQ,KAAK,GAAE,EAAE,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,qBAAqB,EAAE,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,GAAI,GAAE,GAAG,GAAE,UAAU,GAAE,SAAS,MAAM,EAAE,SAAS,GAAE,SAAS,QAAQ,EAAE,SAAS,GAAE,SAAS,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAC,GAAG,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,GAAE,EAAE,CAAC,EAAE,EAAE,WAAW,GAAE,WAAW,EAAE,EAAE,OAAO,GAAE,OAAO,EAAE,eAAe,GAAE,gBAAgB,EAAE,EAAE,GAAG,EAAE,IAAI,GAAE,GAAG,EAAE,SAAS,GAAE,SAAS,CAAC,EAAE,OAAQ,GAAE,GAAE,eAAe,EAAE,EAAE,GAAE,EAAE,GAAE,EAAE,OAAO,KAAI,CAAC,GAAI,IAAE,EAAE,IAAG,GAAE,OAAO,GAAE,MAAM,EAAE,IAAI,GAAE,KAAK,CAAC,CAAC,CAAC,GAAG,GAAE,oBAAqB,GAAE,mBAAmB,GAAE,oBAAoB,EAAE,iBAAiB,CAAC,GAAI,IAAE,EAAE,mBAAmB,GAAG,GAAG,GAAE,CAAC,GAAI,IAAE,GAAE,4BAA4B,EAAC,EAAE,IAAI,GAAE,gBAAgB,GAAE,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,gBAAgB,OAAO,IAAI,CAAC,GAAI,IAAE,EAAE,gBAAgB,GAAG,GAAE,UAAU,IAAG,GAAE,MAAM,GAAE,KAAK,CAAC,CAAC,CAAC,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,CAAC,CAAC,MAAO,AAAO,MAAP,MAAW,GAAE,OAAO,IAAG,EAAE,qBAAqB,2BAA2B,EAAE,YAAY,UAAU,gBAAgB,CAAC,CAAC,MAAO,QAAO,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,2BAA2B,SAAS,EAAE,CAAC,MAAO,IAAG,EAAE,SAAS,EAAE,OAAO,eAAe,EAAE,UAAU,2BAA2B,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,8BAA8B,yBAAyB,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,8BAA8B,4BAA4B,GAAI,IAAG,KAAK,sBAAsB,kBAAmB,MAAK,gBAAgB,EAAE,EAAE,aAAa,KAAK,sBAAsB,iBAAiB,QAAQ,EAAE,EAAE,KAAK,sBAAsB,gBAAgB,KAAK,gBAAgB,EAAE,EAAE,WAAW,KAAK,sBAAsB,eAAe,QAAQ,EAAE,GAAG,KAAK,8BAA8B,0BAA0B,EAAE,KAAK,kCAAkC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,2BAA2B,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,sBAAsB,2BAA4B,MAAK,sBAAsB,0BAA0B,GAAI,GAAE,GAAG,KAAK,sBAAsB,yBAAyB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,yBAAyB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,sBAAsB,yBAA0B,MAAK,sBAAsB,wBAAwB,GAAI,GAAE,GAAG,KAAK,sBAAsB,uBAAuB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,0BAA0B,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,sBAAsB,0BAA2B,MAAK,sBAAsB,yBAAyB,GAAI,GAAE,GAAG,KAAK,sBAAsB,wBAAwB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,yBAAyB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,sBAAsB,yBAA0B,MAAK,sBAAsB,wBAAwB,GAAI,GAAE,GAAG,KAAK,sBAAsB,uBAAuB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,eAAe,CAAC,IAAI,SAAS,EAAE,CAAC,KAAK,uBAAuB,KAAK,uBAAuB,OAAO,KAAK,qBAAqB,EAAE,KAAK,sBAAsB,KAAK,uBAAuB,IAAI,CAAC,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,eAAe,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,UAAU,OAAO,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,mBAAmB,CAAC,IAAI,UAAU,CAAC,GAAI,GAAE,MAAO,CAAQ,GAAE,KAAK,yBAAyB,kBAAxC,MAAyD,AAAS,IAAT,OAAW,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,qBAAqB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,sBAAsB,mBAAmB,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,sBAAsB,sBAAsB,GAAI,MAAK,sBAAsB,oBAAoB,EAAE,KAAK,sCAAsC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,SAAS,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,sBAAsB,OAAO,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,eAAe,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,sBAAsB,OAAO,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,cAAc,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,UAAU,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,aAAa,GAAI,MAAK,WAAW,EAAE,KAAK,kCAAkC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,6BAA6B,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,qBAAqB,aAAa,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,2CAA2C,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,qBAAqB,YAAY,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,qBAAqB,aAAa,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,qBAAqB,SAAS,EAAE,EAAE,GAAE,CAAC,AAAS,IAAT,QAAa,GAAE,MAAM,GAAI,IAAE,CAAE,MAAK,mBAAmB,IAAI,GAAG,EAAE,iBAAiB,KAAK,MAAM,YAAa,MAAK,MAAM,KAAK,IAAI,GAAG,KAAK,OAAO,EAAE,EAAE,KAAK,eAAe,eAAgB,MAAK,MAAM,KAAK,GAAG,EAAE,IAAI,IAAE,OAAO,GAAG,KAAK,OAAO,GAAE,SAAS,KAAK,SAAS,QAAQ,GAAE,QAAQ,KAAK,QAAQ,QAAQ,KAAK,mBAAmB,GAAE,mBAAmB,KAAK,mBAAmB,QAAQ,GAAE,SAAS,KAAK,SAAS,QAAQ,IAAG,GAAE,KAAK,EAAC,GAAG,OAAQ,GAAE,EAAE,EAAE,KAAK,uBAAuB,EAAE,EAAE,EAAE,EAAE,OAAO,IAAK,EAAE,GAAG,qBAAqB,GAAE,EAAE,EAAC,EAAE,MAAO,GAAC,EAAE,EAAE,UAAU,aAAa,UAAU,CAAC,MAAM,MAAM,EAAE,OAAO,eAAe,EAAE,UAAU,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,SAAS,SAAS,EAAE,CAAC,GAAI,GAAE,EAAE,UAAU,SAAS,KAAK,KAAK,CAAC,EAAE,GAAG,GAAG,iBAAiB,KAAK,mBAAmB,GAAG,aAAc,MAAK,iBAAiB,KAAK,iBAAiB,KAAK,OAAO,KAAK,OAAO,KAAK,QAAQ,KAAK,WAAW,OAAQ,IAAE,EAAE,GAAE,KAAK,WAAW,OAAO,KAAI,GAAG,mBAAmB,KAAK,WAAW,IAAG,SAAS,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,UAAU,CAAC,GAAI,IAAE,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAE,EAAE,YAAY,EAAE,GAAG,IAAI,IAAG,mBAAoB,GAAE,OAAO,IAAI,GAAE,OAAO,MAAM,MAAM,KAAM,IAAG,0BAA0B,MAAO,EAAC,EAAE,EAAE,UAAU,cAAc,UAAU,CAAC,EAAE,UAAU,cAAc,KAAK,IAAI,EAAE,OAAQ,GAAE,EAAE,EAAE,KAAK,UAAU,EAAE,EAAE,OAAO,IAAK,EAAE,GAAG,eAAgB,EAAE,OAAO,eAAe,EAAE,UAAU,eAAe,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,sBAAsB,WAAW,OAAO,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,aAAa,UAAU,CAAC,MAAO,MAAK,sBAAsB,UAAU,EAAE,EAAE,UAAU,eAAe,UAAU,CAAC,KAAK,sBAAsB,WAAW,KAAM,SAAS,EAAE,EAAE,CAAC,MAAO,GAAE,SAAS,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,SAAS,GAAG,CAAC,EAAG,EAAE,EAAE,UAAU,YAAY,SAAS,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,YAAY,MAAO,GAAE,EAAE,KAAK,0CAA0C,EAAE,KAAK,GAAI,IAAE,GAAI,GAAE,EAAE,EAAE,CAAC,EAAE,MAAO,MAAK,sBAAsB,WAAW,KAAK,EAAC,EAAE,GAAI,GAAE,YAAY,MAAM,KAAK,iBAAiB,IAAI,EAAE,EAAE,UAAU,sBAAsB,SAAS,EAAE,CAAC,OAAQ,GAAE,KAAK,sBAAsB,GAAE,EAAE,GAAE,EAAE,WAAW,OAAO,KAAI,CAAC,GAAI,IAAE,EAAE,WAAW,IAAG,GAAG,GAAE,WAAW,EAAE,MAAO,IAAE,IAAI,CAAC,MAAO,KAAI,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,CAAC,OAAQ,GAAE,KAAK,sBAAsB,GAAE,EAAE,GAAE,EAAE,WAAW,OAAO,KAAI,EAAE,WAAW,IAAG,OAAO,GAAI,GAAE,WAAW,OAAO,GAAE,CAAC,EAAE,GAAI,GAAE,YAAY,OAAO,MAAO,MAAK,iBAAiB,IAAI,EAAE,EAAE,UAAU,OAAO,SAAS,EAAE,EAAE,CAAC,GAAI,IAAE,GAAE,KAAK,sBAAsB,GAAG,CAAC,GAAE,YAAY,AAAI,GAAE,WAAW,SAAjB,EAAwB,MAAO,MAAK,EAAE,GAAE,EAAE,GAAE,KAAK,kBAAkB,eAAe,GAAI,GAAE,GAAE,YAAY,SAAS,EAAE,cAAc,EAAE,SAAS,GAAG,GAAE,WAAW,GAAE,WAAW,OAAO,GAAG,SAAS,EAAE,MAAO,MAAK,qBAAqB,KAAK,oBAAoB,EAAE,KAAK,IAAI,EAAE,KAAK,OAAQ,GAAE,EAAE,EAAE,GAAE,WAAW,OAAO,IAAI,CAAC,GAAI,GAAE,GAAE,WAAW,GAAG,GAAG,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,iBAAiB,EAAE,EAAE,yBAAyB,MAAO,GAAE,KAAK,mBAAmB,KAAK,GAAG,EAAE,KAAK,iBAAiB,EAAE,EAAE,uBAAuB,MAAO,MAAK,EAAE,KAAK,eAAe,EAAE,KAAK,6BAA6B,KAAK,oBAAoB,CAAC,CAAC,MAAO,MAAK,qBAAqB,KAAK,oBAAoB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,MAAO,MAAK,qBAAqB,KAAK,oBAAoB,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,OAAO,eAAe,EAAE,UAAU,WAAW,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,SAAS,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,iBAAiB,UAAU,CAAC,MAAO,AAAO,MAAK,YAAZ,MAAuB,AAAS,KAAK,YAAd,OAAwB,EAAE,KAAK,UAAU,kBAAkB,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,EAAE,GAAE,CAAC,MAAO,MAAK,UAAU,KAAK,UAAU,gBAAgB,EAAE,EAAE,EAAC,EAAE,IAAI,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,CAAC,MAAO,MAAK,UAAU,KAAK,UAAU,gBAAgB,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,sBAAsB,SAAS,EAAE,CAAC,MAAO,MAAK,UAAU,KAAK,UAAU,sBAAsB,CAAC,EAAE,CAAC,CAAC,KAAK,YAAY,AAAK,KAAK,WAAW,QAAQ,CAAC,IAA9B,EAA+B,EAAE,EAAE,UAAU,wBAAwB,SAAS,EAAE,CAAC,MAAO,MAAK,UAAU,KAAK,UAAU,wBAAwB,CAAC,EAAE,CAAC,CAAC,KAAK,YAAY,AAAK,KAAK,WAAW,QAAQ,CAAC,IAA9B,EAA+B,EAAE,EAAE,UAAU,qBAAqB,UAAU,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,GAAI,GAAE,GAAI,OAAM,MAAO,MAAK,YAAY,KAAK,WAAW,QAAS,SAAS,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,GAAI,CAAC,CAAC,MAAO,MAAK,UAAU,sBAAsB,EAAE,EAAE,UAAU,gBAAgB,UAAU,CAAC,MAAO,MAAK,UAAU,KAAK,UAAU,kBAAkB,CAAC,EAAE,EAAE,UAAU,WAAW,SAAS,EAAE,EAAE,CAAC,MAAO,MAAK,UAAU,KAAK,UAAU,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,eAAe,EAAE,UAAU,YAAY,CAAC,IAAI,UAAU,CAAC,MAAO,AAAO,MAAK,cAAZ,MAAyB,AAAS,KAAK,cAAd,MAAyB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,QAAQ,SAAS,EAAE,EAAE,CAAC,GAAI,IAAE,GAAE,EAAE,EAAE,EAAE,EAAqG,GAAhG,AAAS,IAAT,QAAa,GAAE,IAAI,AAAS,IAAT,QAAa,GAAE,IAAI,KAAK,iBAAiB,EAAE,EAAE,wBAAmC,CAAC,EAAE,UAAU,QAAQ,KAAK,KAAK,CAAC,EAAE,MAAM,GAA0D,GAApD,CAAC,KAAK,WAAW,AAAI,KAAK,UAAU,SAAnB,GAAsC,CAAC,EAAE,MAAM,GAAG,GAAI,GAAE,KAAK,YAAY,EAAE,KAAK,WAAW,GAAE,GAAG,EAAE,UAAU,iBAAkB,MAAK,UAAU,OAAO,GAAG,KAAK,kBAAkB,KAAK,qBAAqB,GAAI,IAAE,KAAK,UAAU,EAAE,gBAAgB,GAAG,IAAE,GAAG,GAAE,wBAAwB,OAAQ,IAAE,EAAE,GAAE,KAAK,UAAU,GAAE,GAAE,OAAO,KAAI,CAAC,GAAI,IAAG,IAAE,GAAE,KAAI,cAAc,GAAG,IAAE,GAAG,GAAE,yBAAyB,GAAG,CAAC,GAAE,kBAAkB,KAAK,GAAE,EAAC,EAAE,MAAM,WAAW,CAAC,GAAE,QAAQ,KAAK,EAAC,EAAE,MAAM,GAAE,SAAS,CAAC,GAAE,QAAQ,KAAK,EAAC,EAAE,MAAM,GAAG,OAAQ,IAAE,EAAE,GAAE,KAAK,aAAa,GAAE,GAAE,OAAO,KAAI,CAAC,GAAI,IAAE,GAAE,IAAG,qBAAqB,GAAG,IAAI,EAAE,GAAQ,IAAE,GAAE,kBAAZ,MAA6B,AAAS,KAAT,SAAkB,GAAE,aAAc,CAAQ,IAAE,GAAE,kBAAZ,MAA6B,AAAS,KAAT,OAAW,OAAO,GAAE,aAAa,AAAM,CAAQ,GAAE,AAAQ,GAAE,GAAE,kBAAZ,MAA6B,AAAS,IAAT,OAAW,OAAO,EAAE,cAA3D,MAAwE,AAAS,IAAT,OAAW,OAAO,EAAE,QAAQ,IAAI,KAA9G,IAAkH,OAAQ,IAAE,EAAE,GAAE,KAAK,UAAU,GAAE,GAAE,OAAO,KAAI,CAAC,GAAI,IAAE,GAAE,IAAG,GAAG,CAAC,GAAE,QAAQ,GAAE,GAAE,AAAQ,GAAE,AAAQ,GAAE,GAAE,iBAAZ,MAA4B,AAAS,IAAT,OAAW,OAAO,EAAE,yBAAyB,IAAI,KAAvF,MAA2F,AAAS,IAAT,QAAY,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAQ,IAAE,EAAE,GAAE,KAAK,sBAAsB,WAAW,GAAE,GAAE,OAAO,KAAI,CAAC,GAAI,IAAE,GAAE,IAAG,GAAG,GAAE,MAAM,CAAC,GAAE,KAAK,QAAQ,EAAC,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,OAAO,eAAe,EAAE,UAAU,mBAAmB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,sBAAsB,iBAAiB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,cAAc,UAAU,CAAC,MAAO,MAAK,sBAAsB,kBAAkB,GAAG,IAAI,EAAE,EAAE,UAAU,gBAAgB,UAAU,CAAC,MAAO,MAAK,sBAAsB,kBAAkB,GAAG,IAAI,EAAE,OAAO,eAAe,EAAE,UAAU,yBAAyB,CAAC,IAAI,SAAS,EAAE,CAAC,KAAK,qBAAqB,uBAAuB,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,aAAa,UAAU,CAAC,GAAI,GAAE,KAAK,sBAAsB,EAAE,KAAK,WAAW,cAAc,MAAO,GAAE,iBAAiB,GAAI,GAAE,eAAe,EAAE,KAAK,qBAAqB,iBAAiB,MAAM,IAAI,EAAE,EAAE,UAAU,qCAAqC,SAAS,EAAE,CAAC,MAAO,MAAK,qBAAqB,kBAAmB,MAAK,qBAAqB,iBAAiB,4BAA4B,GAAG,IAAI,EAAE,EAAE,UAAU,6BAA6B,SAAS,EAAE,EAAE,CAAC,MAAO,MAAK,qBAAqB,kBAAmB,MAAK,qBAAqB,iBAAiB,CAAC,gBAAgB,EAAE,oBAAoB,KAAK,SAAS,GAAG,KAAK,qBAAqB,iBAAiB,IAAK,CAAS,KAAK,qBAAqB,mBAAnC,QAAqD,KAAK,qBAAqB,UAAW,MAAK,qBAAqB,iBAAiB,KAAK,qBAAqB,kBAAkB,MAAM,KAAK,qBAAqB,iBAAiB,EAAE,KAAK,qBAAqB,iBAAiB,GAAG,GAAI,QAAO,KAAK,qBAAqB,iBAAiB,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,yBAAyB,UAAU,CAAC,EAAE,UAAU,yBAAyB,KAAK,IAAI,EAAE,KAAK,kBAAmB,MAAK,uBAAuB,KAAK,gCAAgC,EAAE,EAAE,EAAE,EAAE,UAAU,cAAc,UAAU,CAAC,KAAK,yBAAyB,KAAK,eAAe,KAAK,cAAc,WAAW,KAAK,iBAAkB,MAAK,gBAAgB,gBAAgB,gBAAgB,KAAK,aAAa,EAAE,KAAK,cAAc,gBAAgB,KAAK,KAAK,gBAAgB,EAAE,EAAE,EAAE,UAAU,oBAAoB,SAAS,EAAE,CAAC,GAAG,AAAS,IAAT,QAAa,GAAE,IAAI,KAAK,eAAe,KAAK,cAAc,SAAS,MAAO,MAAK,GAAI,GAAE,KAAK,SAAS,KAAK,SAAS,aAAa,KAAK,MAAO,MAAK,qBAAqB,KAAK,iBAAiB,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,qBAAqB,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,mBAAmB,GAAG,CAAC,GAAG,CAAC,KAAK,aAAa,MAAO,MAAK,GAAG,KAAK,WAAW,KAAK,UAAU,OAAO,EAAE,CAAC,GAAI,IAAE,KAAK,aAAa,GAAG,CAAC,GAAE,MAAO,MAAK,GAAI,IAAE,GAAE,OAAO,EAAE,GAAG,GAAG,EAAE,EAAE,OAAQ,QAAQ,GAAE,EAAE,EAAE,KAAK,UAAU,EAAE,EAAE,OAAO,IAAI,CAAC,GAAI,GAAE,EAAE,GAAG,GAAG,EAAE,WAAW,EAAE,WAAW,GAAE,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,MAAO,MAAK,UAAU,EAAE,CAAC,MAAO,MAAK,mBAAmB,GAAI,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,kBAAkB,IAAI,CAAC,EAAE,EAAE,UAAU,UAAU,SAAS,EAAE,CAAC,GAAG,CAAE,GAAE,GAAG,CAAC,OAAQ,GAAE,KAAK,kBAAkB,GAAE,EAAE,EAAE,EAAE,GAAE,EAAE,GAAE,GAAG,GAAG,KAAI,KAAK,mBAAmB,OAAQ,GAAE,EAAE,EAAE,GAAG,CAAE,KAAG,GAAG,IAAI,EAAE,EAAE,kBAAkB,EAAE,GAAE,IAAI,EAAE,EAAE,EAAE,GAAE,GAAE,IAAI,EAAE,IAAG,GAAE,KAAK,sBAAsB,CAAC,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,EAAE,GAAE,GAAE,CAAC,GAAG,AAAS,KAAT,QAAa,IAAE,IAAI,KAAK,UAAU,KAAK,UAAU,gBAAgB,EAAE,EAAE,GAAE,EAAC,MAAM,CAAC,GAAI,GAAE,GAAI,GAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAI,GAAE,KAAK,WAAW,GAAI,GAAE,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,GAAE,IAAI,CAAC,CAAC,MAAO,KAAI,EAAE,EAAE,UAAU,mBAAmB,SAAS,EAAE,CAAC,KAAK,WAAW,KAAK,UAAU,mBAAmB,CAAC,CAAC,EAAE,EAAE,UAAU,4BAA4B,SAAS,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,GAAI,IAAE,KAAK,gBAAgB,CAAC,EAAE,IAAG,GAAE,gBAAgB,GAAG,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,kBAAkB,SAAS,EAAE,CAAC,MAAO,MAAK,WAAY,MAAK,UAAU,EAAE,EAAE,sBAAsB,IAAI,GAAG,KAAK,UAAU,kBAAkB,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,mBAAmB,SAAS,EAAE,EAAE,GAAE,GAAE,CAAC,MAAO,MAAK,UAAW,IAAG,MAAK,qBAAqB,KAAK,mBAAmB,EAAE,EAAE,GAAE,EAAE,GAAG,KAAK,UAAU,mBAAmB,EAAE,EAAE,EAAC,EAAE,MAAM,IAAI,EAAE,EAAE,UAAU,oBAAoB,SAAS,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,GAAI,IAAE,KAAK,gBAAgB,EAAE,EAAE,YAAY,EAAE,GAAG,CAAC,GAAE,MAAO,MAAK,GAAG,EAAE,EAAC,EAAE,KAAK,mBAAmB,EAAE,EAAE,aAAa,GAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAI,IAAE,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,MAAO,MAAK,EAAE,EAAE,eAAe,GAAE,GAAE,CAAC,EAAE,KAAK,mBAAmB,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,MAAO,KAAI,EAAE,EAAE,UAAU,mBAAmB,UAAU,CAAC,GAAG,CAAC,KAAK,UAAU,MAAO,MAAK,GAAG,AAAI,KAAK,UAAU,OAAO,SAA1B,EAAiC,MAAO,MAAK,GAAI,GAAE,KAAK,UAAU,EAAE,KAAK,UAAU,KAAK,EAAE,EAAE,UAAU,EAAE,MAAO,GAAE,eAAe,KAAK,EAAE,EAAE,EAAE,YAAY,IAAI,EAAE,IAAI,EAAE,EAAE,UAAU,WAAW,SAAS,EAAE,EAAE,GAAE,CAAC,GAAG,AAAS,IAAT,QAAa,GAAE,MAAM,AAAS,KAAT,QAAa,IAAE,IAAI,KAAK,UAAU,KAAK,UAAU,WAAW,EAAE,EAAE,EAAC,MAAM,CAAC,GAAI,IAAE,GAAI,GAAE,EAAE,GAAE,QAAQ,EAAE,GAAI,GAAE,KAAK,WAAW,GAAI,GAAE,EAAE,EAAE,EAAE,WAAW,EAAE,GAAE,GAAE,IAAI,CAAC,CAAC,MAAO,KAAI,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,EAAE,GAAE,CAAC,MAAO,AAAS,MAAT,QAAa,IAAE,IAAI,KAAK,UAAW,MAAK,UAAU,cAAc,EAAE,EAAE,EAAC,EAAE,MAAM,IAAI,EAAE,EAAE,UAAU,aAAa,UAAU,CAAC,MAAO,MAAK,UAAW,MAAK,UAAU,eAAe,MAAM,IAAI,EAAE,EAAE,UAAU,MAAM,SAAS,EAAE,EAAE,GAAE,CAAC,GAAG,CAAC,KAAK,UAAU,MAAO,MAAK,GAAI,IAAE,EAAE,KAAK,WAAW,YAAY,GAAG,KAAK,WAAW,GAAE,SAAU,QAAO,QAAQ,GAAE,EAAE,cAAc,GAAE,KAAK,UAAW,GAAE,EAAE,kBAAkB,GAAE,EAAE,qBAAqB,KAAK,aAAa,CAAC,EAAE,kBAAmB,GAAE,EAAE,iBAAiB,GAAE,KAAK,UAAU,iBAAiB,MAAO,MAAK,UAAU,MAAM,EAAE,EAAC,EAAE,IAAI,EAAE,EAAE,UAAU,MAAM,SAAS,EAAE,EAAE,GAAE,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,KAAK,UAAU,oBAAoB,CAAC,KAAK,YAAY,CAAC,KAAK,UAAU,iBAAiB,MAAO,MAAK,KAAK,sBAAsB,yBAAyB,KAAK,sBAAsB,wBAAwB,gBAAgB,IAAI,EAAE,GAAI,IAAE,KAAK,WAAW,YAAY,MAAO,MAAK,YAAY,GAAG,EAAE,EAAE,cAAc,GAAE,eAAe,EAAE,EAAE,cAAc,EAAE,cAAc,EAAC,EAAE,GAAG,EAAE,EAAE,kBAAkB,GAAE,iBAAiB,EAAE,EAAE,EAAE,iBAAiB,EAAC,EAAE,GAAE,iBAAiB,EAAE,EAAE,WAAW,EAAE,WAAW,EAAC,EAAE,IAAI,EAAE,EAAE,UAAU,qBAAqB,SAAS,EAAE,CAAC,MAAO,MAAK,yBAAyB,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,uBAAuB,SAAS,EAAE,CAAC,MAAO,MAAK,yBAAyB,eAAe,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,oBAAoB,SAAS,EAAE,CAAC,MAAO,MAAK,wBAAwB,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,sBAAsB,SAAS,EAAE,CAAC,MAAO,MAAK,wBAAwB,eAAe,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,wBAAwB,SAAS,EAAE,EAAE,CAAC,GAAG,AAAS,IAAT,QAAa,GAAE,IAAI,KAAK,qBAAqB,UAAU,KAAK,qBAAqB,cAAc,MAAO,MAAK,qBAAqB,cAAc,GAAI,IAAE,KAAK,WAAW,GAAE,GAAE,6BAA6B,EAAE,GAAE,KAAK,8BAA8B,8BAA8B,KAAK,8BAA8B,kBAAkB,EAAE,KAAK,qBAAqB,WAAW,GAAG,EAAE,WAAW,GAAG,EAAE,WAAW,GAAG,GAAG,CAAC,GAAG,KAAK,aAAa,KAAK,UAAU,EAAE,iBAAiB,GAAG,KAAK,KAAK,qBAAqB,kBAAkB,CAAC,EAAE,CAAC,GAAI,GAAE,KAAK,qBAAqB,iBAAiB,EAAE,GAAE,cAAc,EAAE,GAAE,EAAE,4BAA4B,EAAE,gBAAgB,EAAE,iBAAiB,GAAG,EAAE,GAAG,CAAC,EAAE,iBAAiB,IAAI,GAAI,GAAE,iBAAiB,GAAG,EAAE,GAAG,CAAC,MAAO,GAAE,2BAA2B,GAAG,CAAC,GAAG,KAAK,qBAAqB,4BAA4B,AAAO,EAAE,iBAAiB,KAA1B,MAA8B,AAAS,EAAE,iBAAiB,KAA5B,OAA+B,KAAK,qBAAqB,cAAc,EAAE,CAAC,EAAE,EAAE,UAAU,qBAAqB,SAAS,EAAE,EAAE,GAAE,GAAE,EAAE,CAAC,GAAI,GAAE,GAAE,iBAAiB,EAAE,KAAK,GAAG,CAAC,EAAE,MAAO,MAAK,OAAQ,GAAE,KAAK,qBAAqB,EAAE,EAAE,oBAAoB,EAAE,EAAE,gBAAgB,EAAE,GAAI,GAAE,OAAO,GAAG,EAAE,EAAE,oBAAoB,GAAG,EAAE,qBAAqB,EAAE,EAAE,eAAe,GAAG,EAAE,qBAAsB,GAAE,cAAc,GAAI,cAAa,EAAE,oBAAoB,CAAC,GAAG,GAAI,IAAE,EAAE,GAAE,EAAE,GAAE,GAAE,WAAW,EAAE,KAAK,GAAE,CAAC,GAAG,IAAI,EAAE,oBAAoB,GAAG,KAAK,qBAAqB,cAAc,EAAE,UAAU,CAAC,GAAE,GAAG,IAAE,EAAE,GAAG,EAAE,WAAW,CAAC,GAAI,IAAE,KAAK,eAAe,iBAAiB,GAAG,IAAI,IAAE,YAAY,EAAE,cAAc,EAAC,EAAE,IAAG,GAAG,MAAK,EAAE,OAAQ,IAAE,EAAE,GAAE,EAAE,OAAO,KAAK,EAAE,IAAG,iBAAiB,YAAY,EAAE,cAAc,EAAC,EAAE,IAAG,GAAG,IAAI,CAAC,MAAO,IAAG,IAAG,EAAE,UAAU,EAAE,GAAI,GAAE,EAAE,EAAE,EAAE,cAAc,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,mBAAmB,SAAS,EAAE,CAAC,CAAC,EAAE,KAAK,kBAAkB,EAAE,mBAAmB,SAAS,EAAE,CAAC,CAAC,EAAE,KAAK,kBAAkB,EAAE,mBAAmB,SAAS,EAAE,CAAC,CAAC,EAAE,KAAK,kBAAkB,EAAE,mBAAmB,SAAS,GAAG,CAAC,CAAC,GAAG,KAAK,qBAAqB,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,EAAC,EAAE,KAAK,yBAAyB,EAAE,EAAC,EAAE,KAAK,WAAW,eAAe,SAAS,EAAE,WAAW,GAAE,EAAE,EAAE,KAAK,MAAM,EAAE,GAAE,CAAC,EAAE,KAAK,MAAM,EAAE,EAAE,EAAC,EAAE,EAAE,2BAA2B,IAAI,EAAE,EAAE,UAAU,yBAAyB,SAAS,EAAE,EAAE,GAAE,GAAE,CAAC,GAAI,GAAE,EAAE,EAAE,AAAQ,GAAE,AAAQ,GAAE,KAAK,4BAAf,MAA0C,AAAS,IAAT,OAAW,OAAO,EAAE,kBAAxE,MAAyF,AAAS,IAAT,OAAW,EAAE,EAAE,KAAK,WAAW,eAAe,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,MAAM,EAAE,GAAE,CAAC,EAAE,KAAK,MAAM,EAAE,EAAE,CAAC,EAAE,GAAE,0BAA0B,EAAE,EAAE,UAAU,yBAAyB,SAAS,EAAE,EAAE,GAAG,EAAE,UAAU,kBAAkB,SAAS,EAAE,EAAE,GAAE,GAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,WAAW,EAAE,EAAE,YAAY,GAAG,GAAG,EAAE,mBAAmB,iBAAiB,MAAO,MAAK,yBAAyB,EAAE,GAAE,GAAE,CAAC,EAAE,KAAK,GAAG,EAAE,KAAK,qBAAqB,EAAE,GAAE,EAAE,GAAE,CAAC,MAAM,CAAC,GAAI,IAAE,EAAE,EAAE,WAAW,EAAE,MAAO,IAAG,EAAE,GAAG,EAAE,eAAe,iBAAiB,CAAC,EAAE,KAAI,KAAK,MAAM,EAAE,GAAE,KAAK,qBAAqB,sBAAsB,GAAG,GAAI,IAAE,EAAE,iBAAiB,EAAE,KAAK,GAAG,GAAE,CAAC,GAAI,IAAE,GAAE,OAAO,IAAG,GAAE,OAAQ,IAAE,EAAE,GAAE,GAAE,KAAI,CAAC,GAAI,IAAE,GAAE,IAAG,iBAAiB,GAAG,EAAE,GAAG,GAAE,CAAC,EAAE,KAAK,MAAM,EAAE,EAAC,CAAC,CAAC,CAAC,EAAE,eAAe,SAAS,EAAE,WAAW,GAAE,EAAE,CAAC,CAAC,MAAO,KAAI,EAAE,EAAE,UAAU,SAAS,UAAU,CAAC,KAAK,qBAAqB,iBAAkB,MAAK,qBAAqB,gBAAgB,UAAU,KAAK,qBAAqB,gBAAgB,MAAM,EAAE,UAAU,SAAS,KAAK,IAAI,CAAC,EAAE,EAAE,UAAU,QAAQ,UAAU,CAAC,GAAG,KAAK,UAAU,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,UAAU,OAAO,IAAI,KAAK,wBAAwB,CAAC,EAAE,KAAK,mBAAmB,KAAK,KAAK,qBAAqB,SAAS,EAAE,CAAC,EAAE,EAAE,UAAU,UAAU,UAAU,CAAC,KAAK,qBAAqB,SAAS,GAAG,KAAK,qBAAqB,cAAc,IAAI,EAAE,EAAE,UAAU,OAAO,SAAS,EAAE,EAAE,GAAE,CAAC,GAAI,IAAE,KAAK,WAAW,GAAG,KAAK,8BAA8B,sBAAsB,KAAK,8BAA8B,sBAAsB,GAAG,KAAK,8BAA8B,UAAU,GAAG,KAAK,uBAAuB,MAAO,MAAK,GAAI,GAAE,KAAK,wBAAwB,EAAE,IAAI,CAAC,CAAC,EAAC,EAAE,GAAG,EAAE,WAAW,MAAO,MAAK,GAAG,CAAC,KAAK,WAAW,CAAC,KAAK,UAAU,oBAAoB,CAAC,KAAK,YAAY,CAAC,KAAK,UAAU,iBAAiB,MAAO,MAAK,KAAK,sBAAsB,2BAA2B,KAAK,sBAAsB,0BAA0B,gBAAgB,IAAI,EAAE,GAAI,GAAE,EAAE,GAAE,YAAY,EAAE,EAAE,2BAA2B,EAAE,MAAM,EAAE,mBAAmB,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,EAAE,cAAc,GAAG,CAAC,EAAE,MAAO,MAAK,GAAG,CAAC,EAAE,UAAU,CAAC,KAAK,oBAAoB,KAAK,qBAAqB,EAAE,CAAC,GAAG,EAAE,yBAAyB,GAAG,CAAC,EAAE,kBAAkB,KAAK,EAAE,CAAC,EAAE,MAAO,cAAa,CAAC,EAAE,QAAQ,KAAK,CAAC,EAAE,MAAO,MAAK,KAAK,mBAAmB,CAAC,CAAC,GAAG,EAAE,aAAa,KAAK,mBAAmB,SAAS,EAAE,EAAE,KAAK,mBAAmB,wBAAwB,EAAE,OAAO,KAAK,mBAAmB,YAAY,OAAQ,IAAE,EAAE,GAAE,GAAE,0BAA0B,GAAE,GAAE,OAAO,KAAK,GAAE,IAAG,OAAO,KAAK,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,MAAO,MAAK,GAAI,IAAE,GAAE,IAAG,KAAK,eAAe,GAAG,EAAE,UAAU,CAAC,KAAK,mBAAmB,iBAAiB,AAAO,KAAK,kCAAZ,KAA4C,GAAE,EAAE,oBAAoB,CAAC,GAAI,IAAE,GAAE,6BAA6B,AAAO,IAAE,KAAK,kCAAd,MAAiD,IAAE,KAAK,mBAAmB,iBAAiB,GAAE,GAAI,IAAE,KAAI,EAAE,EAAE,yBAAyB,EAAE,EAAE,gCAAgC,EAAE,EAAE,0BAA0B,EAAE,gBAAgB,EAAC,CAAC,GAAI,IAAE,KAAK,mBAAmB,SAAS,EAAE,EAAC,EAAE,KAAK,mBAAmB,iBAAiB,EAAE,cAAc,EAAE,EAAE,GAAI,IAAE,GAAE,iBAAiB,EAAE,EAAE,cAAc,GAAE,eAAe,EAAE,EAAE,kBAAkB,KAAK,mBAAmB,SAAS,KAAK,sBAAsB,yBAAyB,KAAK,sBAAsB,wBAAwB,gBAAgB,IAAI,EAAE,GAAG,KAAK,MAAM,EAAE,EAAE,EAAC,EAAE,GAAI,IAAE,GAAE,iBAAiB,KAAK,mBAAmB,wBAAwB,KAAK,mBAAmB,eAAe,GAAE,KAAK,CAAC,EAAE,KAAK,mBAAmB,KAAK,GAAE,IAAI,EAAE,CAAC,KAAK,mBAAmB,iBAAiB,KAAK,mBAAmB,qBAAsB,GAAE,SAAS,GAAG,KAAK,mBAAmB,QAAQ,GAAG,CAAC,EAAC,EAAE,KAAK,kBAAkB,KAAK,EAAE,EAAE,GAAE,EAAE,EAAE,KAAK,cAAc,KAAK,kBAAkB,EAAE,EAAE,SAAS,GAAG,KAAK,mBAAmB,QAAQ,GAAG,EAAC,GAAG,KAAK,kBAAkB,KAAK,EAAE,EAAE,GAAE,EAAE,EAAE,KAAK,cAAc,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,SAAS,OAAQ,IAAE,EAAE,GAAE,GAAE,yBAAyB,GAAE,GAAE,OAAO,KAAK,GAAE,IAAG,OAAO,KAAK,EAAE,EAAE,CAAC,EAAE,MAAO,MAAK,sBAAsB,0BAA0B,KAAK,sBAAsB,yBAAyB,gBAAgB,IAAI,EAAE,IAAI,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,EAAE,GAAE,CAAC,GAAG,IAAG,GAAE,oBAAoB,CAAC,CAAC,EAAE,EAAE,UAAU,mBAAmB,UAAU,CAAC,KAAK,sBAAsB,EAAE,EAAE,mBAAmB,GAAI,MAAK,sBAAsB,EAAE,EAAE,wBAAwB,EAAE,KAAK,+BAA+B,KAAK,2BAA2B,EAAE,EAAE,UAAU,yBAAyB,UAAU,CAAC,OAAQ,GAAE,KAAK,gBAAgB,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,OAAO,GAAE,EAAE,GAAE,EAAE,IAAG,EAAE,CAAC,GAAI,IAAE,EAAE,IAAG,EAAE,GAAE,GAAG,EAAE,GAAE,GAAG,EAAE,GAAE,GAAG,GAAG,AAAI,KAAJ,EAAM,EAAE,IAAG,MAAM,CAAC,GAAI,GAAE,EAAE,GAAE,EAAE,KAAI,EAAE,EAAE,GAAE,IAAI,EAAE,EAAE,GAAE,IAAI,EAAE,EAAE,GAAE,IAAI,CAAC,CAAC,CAAC,KAAK,gBAAgB,EAAE,EAAE,oBAAoB,CAAC,CAAC,EAAE,EAAE,UAAU,6BAA6B,UAAU,CAAC,OAAQ,GAAE,KAAK,gBAAgB,EAAE,EAAE,wBAAwB,EAAE,EAAE,KAAK,gBAAgB,EAAE,EAAE,mBAAmB,EAAE,GAAE,EAAE,OAAO,GAAE,EAAE,GAAE,GAAE,IAAG,EAAE,CAAC,GAAI,GAAE,EAAE,IAAG,EAAE,GAAE,GAAG,EAAE,GAAE,GAAG,EAAE,GAAE,GAAG,GAAG,AAAK,IAAG,EAAE,IAAG,EAAE,GAAE,GAAG,EAAE,GAAE,GAAG,EAAE,GAAE,MAA/B,EAAmC,EAAE,IAAG,MAAM,CAAC,GAAI,GAAE,EAAE,EAAE,EAAE,KAAI,EAAE,EAAE,GAAE,IAAI,EAAE,EAAE,GAAE,IAAI,EAAE,EAAE,GAAE,IAAI,EAAE,EAAE,KAAI,EAAE,EAAE,GAAE,IAAI,EAAE,EAAE,GAAE,IAAI,EAAE,EAAE,GAAE,IAAI,CAAC,CAAC,CAAC,KAAK,gBAAgB,EAAE,EAAE,oBAAoB,CAAC,EAAE,KAAK,gBAAgB,EAAE,EAAE,oBAAoB,CAAC,CAAC,EAAE,EAAE,UAAU,iBAAiB,UAAU,CAAC,GAAI,GAAE,KAAK,gBAAgB,EAAE,EAAE,wBAAwB,EAAE,EAAE,KAAK,gBAAgB,EAAE,EAAE,mBAAmB,EAAE,GAAG,AAAO,IAAP,MAAU,AAAM,KAAK,UAAX,KAAoB,MAAM,CAAC,QAAQ,GAAG,MAAM,GAAG,OAAO,aAAa,EAAE,OAAQ,IAAE,EAAE,OAAO,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,AAAO,IAAP,KAAS,EAAE,EAAE,EAAE,GAAI,OAAM,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,GAAE,GAAG,EAAE,CAAC,OAAQ,IAAE,EAAE,GAAG,GAAE,GAAE,GAAE,AAAI,KAAJ,EAAM,EAAE,EAAE,GAAE,EAAE,GAAE,EAAE,KAAI,CAAC,GAAI,IAAE,GAAE,EAAE,EAAE,EAAE,IAAG,EAAE,EAAE,GAAE,GAAG,GAAE,IAAG,KAAI,AAAI,KAAJ,GAAO,KAAI,IAAG,GAAE,GAAE,EAAC,CAAC,GAAG,EAAE,MAAK,GAAE,GAAI,GAAE,IAAG,AAAI,KAAJ,EAAM,QAAQ,CAAC,GAAI,IAAE,EAAE,GAAE,GAAE,EAAE,IAAI,GAAE,EAAE,GAAE,EAAE,KAAI,IAAG,GAAE,EAAE,KAAK,IAAI,EAAE,EAAE,IAAG,EAAE,EAAE,IAAG,EAAC,EAAE,KAAK,IAAI,EAAE,EAAE,GAAE,GAAG,EAAE,EAAE,GAAE,GAAG,EAAC,EAAE,GAAE,MAAM,GAAG,CAAC,CAAC,GAAI,IAAE,KAAK,SAAS,MAAM,OAAO,GAAE,KAAK,gBAAgB,EAAE,EAAE,mBAAmB,EAAE,GAAE,KAAK,gBAAgB,EAAE,EAAE,wBAAwB,EAAE,GAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAE,GAAG,EAAE,IAAI,GAAE,EAAE,GAAE,EAAE,KAAI,CAAC,GAAI,IAAE,GAAE,EAAE,GAAE,EAAE,IAAG,GAAE,EAAE,GAAE,GAAG,AAAC,KAAG,IAAG,GAAE,IAAI,IAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,AAAI,IAAJ,GAAO,AAAI,IAAJ,GAAO,AAAI,KAAJ,EAAM,OAAO,uBAAuB,GAAE,EAAE;AAAA,uBAA0B,EAAE;AAAA,oBAAuB,EAAE;AAAA,eAAkB,GAAE;AAAA,mBAAsB,EAAE;AAAA,kBAAqB,EAAE;AAAA,oBAAwB,GAAE;AAAA,qBAAwB,EAAC,CAAC,EAAE,EAAE,UAAU,iBAAiB,UAAU,CAAC,GAAI,GAAE,KAAK,WAAW,MAAO,MAAK,UAAU,KAAK,UAAU,KAAK,CAAC,EAAE,KAAK,iBAAiB,EAAE,EAAE,0BAA2B,MAAK,eAAe,EAAE,EAAE,uBAAuB,KAAK,WAAW,CAAC,GAAG,IAAI,EAAE,EAAE,UAAU,WAAW,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,EAAE,gBAAgB,IAAI,EAAE,GAAI,IAAE,AAAK,KAAK,iBAAiB,QAAQ,wBAAwB,IAA3D,GAA6D,MAAO,GAAE,EAAE,SAAS,KAAK,iBAAkB,SAAS,GAAE,CAAC,aAAa,aAAY,EAAE,sBAAsB,GAAE,CAAC,EAAE,EAAE,sBAAsB,KAAK,MAAM,EAAC,EAAE,CAAC,EAAE,EAAE,UAAU,QAAS,SAAS,EAAE,CAAC,EAAE,sBAAsB,EAAE,gBAAgB,GAAI,EAAE,eAAe,EAAE,EAAE,sBAAsB,EAAE,mBAAmB,CAAC,CAAC,EAAI,UAAU,GAAI,EAAE,gBAAgB,EAAC,EAAE,IAAI,EAAE,EAAE,UAAU,YAAY,SAAS,EAAE,CAAC,MAAO,MAAK,iBAAiB,EAAE,EAAE,wBAAyB,CAAC,CAAC,EAAE,UAAU,YAAY,KAAK,KAAK,CAAC,GAAI,MAAK,mBAAmB,GAAI,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,CAAC,GAAI,GAAE,GAAE,KAAK,WAAW,UAAU,IAAI,EAAE,GAAE,OAAO,EAAE,EAAE,GAAG,IAAI,GAAG,GAAE,GAAG,KAAK,EAAE,MAAO,MAAK,SAAS,GAAE,GAAG,KAAK,GAAI,IAAE,KAAK,WAAW,eAAe,IAAI,EAAE,GAAE,OAAO,EAAE,EAAE,GAAG,IAAI,GAAG,GAAE,GAAG,KAAK,EAAE,MAAO,MAAK,SAAS,GAAE,GAAG,KAAK,MAAO,KAAI,EAAE,EAAE,UAAU,eAAe,UAAU,CAAC,GAAI,GAAE,GAAI,OAAM,MAAO,MAAK,UAAU,EAAE,KAAK,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAE,KAAK,KAAK,QAAQ,EAAE,CAAC,EAAE,EAAE,UAAU,0BAA0B,SAAS,EAAE,CAAC,GAAG,CAAC,KAAK,sBAAsB,EAAE,EAAE,YAAY,EAAE,MAAO,MAAK,GAAI,GAAE,KAAK,UAAU,OAAO,CAAC,EAAE,KAAK,yBAAyB,GAAI,IAAE,GAAE,KAAK,gBAAgB,EAAE,EAAE,YAAY,EAAE,EAAE,GAAI,OAAM,IAAI,GAAE,EAAE,GAAE,GAAE,OAAO,IAAG,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,UAAU,GAAE,EAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAC,EAAE,GAAG,KAAK,gBAAgB,EAAE,EAAE,aAAa,EAAE,KAAK,gBAAgB,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,sBAAsB,EAAE,EAAE,UAAU,EAAE,CAAC,IAAI,GAAE,KAAK,gBAAgB,EAAE,EAAE,UAAU,EAAE,EAAE,GAAG,GAAE,EAAE,GAAE,GAAE,OAAO,IAAG,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,UAAU,GAAE,EAAC,EAAE,CAAC,EAAE,YAAY,QAAQ,EAAE,EAAC,EAAE,KAAK,gBAAgB,EAAE,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,MAAO,GAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,KAAK,YAAY,KAAK,mBAAmB,KAAK,UAAU,EAAE,IAAI,EAAE,EAAE,UAAU,iCAAiC,SAAS,EAAE,CAAC,MAAO,AAAS,KAAT,QAAa,GAAE,IAAI,KAAK,0BAA0B,KAAK,mBAAmB,EAAE,CAAC,EAAE,KAAK,iBAAiB,CAAC,EAAE,IAAI,EAAE,OAAO,eAAe,EAAE,UAAU,aAAa,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,UAAU,KAAK,UAAU,WAAW,IAAI,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,uBAAuB,UAAU,CAAC,MAAO,MAAK,WAAW,KAAK,UAAU,yBAAyB,IAAI,EAAE,EAAE,UAAU,qBAAqB,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,WAAW,KAAK,UAAU,sBAAsB,EAAE,EAAE,UAAU,MAAM,SAAS,EAAE,EAAE,GAAE,GAAE,CAAC,MAAO,AAAS,KAAT,QAAa,GAAE,IAAI,AAAS,IAAT,QAAa,GAAE,MAAM,AAAS,KAAT,QAAa,IAAE,IAAI,GAAI,GAAE,EAAE,KAAK,WAAW,EAAE,KAAK,GAAE,EAAC,CAAC,EAAE,EAAE,UAAU,QAAQ,SAAS,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,KAAK,mBAAmB,KAAK,KAAK,WAAW,KAAK,UAAU,eAAe,KAAK,EAAE,EAAE,GAAI,IAAE,KAAK,sBAAsB,GAAG,GAAE,yBAAyB,GAAE,wBAAwB,QAAQ,GAAE,yBAAyB,GAAE,wBAAwB,QAAQ,GAAE,2BAA2B,GAAE,0BAA0B,QAAQ,GAAE,0BAA0B,GAAE,yBAAyB,QAAQ,KAAK,OAAO,iBAAiB,CAAC,GAAG,GAAE,QAAQ,OAAQ,MAAK,IAAE,QAAS,AAAC,GAAE,GAAE,QAAQ,MAAM,GAAE,sBAAsB,QAAQ,KAAK,GAAE,QAAQ,IAAG,QAAQ,GAAE,SAAS,GAAE,QAAQ,sBAAsB,SAAU,IAAE,QAAQ,sBAAsB,QAAQ,KAAK,UAAU,OAAO,KAAM,QAAQ,GAAE,EAAE,EAAE,KAAK,WAAW,OAAO,EAAE,EAAE,OAAO,IAAI,CAAC,GAAI,GAAE,AAAC,GAAE,EAAE,IAAI,uBAAuB,EAAE,sBAAsB,SAAS,EAAE,sBAAsB,UAAU,MAAO,GAAE,sBAAsB,QAAQ,KAAK,CAAC,GAAE,QAAQ,KAAK,KAAK,+BAA+B,KAAK,mCAAmC,EAAE,UAAU,QAAQ,KAAK,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,6BAA6B,UAAU,GAAG,EAAE,UAAU,iCAAiC,UAAU,GAAG,EAAE,UAAU,qBAAqB,SAAS,EAAE,EAAE,GAAE,GAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,AAAS,IAAT,QAAa,GAAE,IAAI,GAAI,GAAE,KAAK,WAAW,MAAO,GAAE,EAAE,UAAU,EAAG,SAAS,EAAE,CAAC,GAAI,IAAE,EAAE,MAAM,GAAE,EAAE,OAAO,GAAE,GAAE,EAAE,aAAa,GAAE,EAAC,EAAE,WAAW,IAAI,EAAE,GAAE,UAAU,EAAE,EAAE,CAAC,EAAE,GAAI,IAAE,GAAE,aAAa,EAAE,EAAE,GAAE,EAAC,EAAE,KAAK,EAAE,+BAA+B,GAAE,GAAE,GAAE,EAAE,GAAE,EAAE,EAAE,CAAC,EAAE,IAAG,GAAE,CAAC,CAAC,EAAI,UAAU,GAAI,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,UAAU,+BAA+B,SAAS,EAAE,EAAE,GAAE,GAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,AAAS,IAAT,QAAa,GAAE,IAAI,CAAC,KAAK,sBAAsB,EAAE,EAAE,YAAY,GAAG,CAAC,KAAK,sBAAsB,EAAE,EAAE,UAAU,GAAG,CAAC,KAAK,sBAAsB,EAAE,EAAE,MAAM,EAAE,MAAO,GAAE,EAAE,KAAK,kGAAkG,EAAE,KAAK,GAAI,GAAE,KAAK,gBAAgB,EAAE,EAAE,aAAa,GAAG,EAAE,EAAE,EAAE,KAAK,gBAAgB,EAAE,EAAE,UAAU,EAAE,GAAE,KAAK,gBAAgB,EAAE,EAAE,MAAM,EAAE,GAAE,EAAE,EAAE,OAAO,GAAE,EAAE,EAAE,OAAO,GAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,GAAI,GAAE,EAAE,EAAE,CAAC,EAAE,OAAQ,IAAE,EAAE,GAAE,EAAE,OAAO,IAAG,EAAE,CAAC,EAAE,EAAE,eAAe,EAAE,GAAE,EAAC,EAAE,EAAE,EAAE,eAAe,EAAE,GAAE,EAAC,EAAE,EAAE,EAAE,eAAe,GAAE,GAAE,EAAE,EAAE,EAAC,EAAE,GAAI,IAAE,EAAI,OAAK,IAAI,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAG,GAAE,GAAG,EAAE,GAAI,MAAK,IAAI,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAG,IAAE,GAAG,GAAE,GAAG,GAAG,GAAE,GAAI,GAAE,IAAG,KAAK,IAAK,GAAE,GAAE,GAAG,KAAK,IAAK,GAAE,GAAE,GAAG,KAAK,GAAE,YAAY,GAAE,aAAa,GAAG,GAAE,IAAG,EAAC,EAAG,IAAE,GAAE,IAAI,EAAC,GAAG,QAAQ,EAAE,EAAC,CAAC,CAAC,MAAO,GAAE,EAAE,eAAe,EAAE,KAAK,aAAa,CAAC,EAAE,EAAG,MAAK,gBAAgB,EAAE,EAAE,aAAa,CAAC,EAAE,KAAK,gBAAgB,EAAE,EAAE,WAAW,CAAC,GAAI,MAAK,mBAAmB,EAAE,EAAE,aAAa,CAAC,EAAE,KAAK,mBAAmB,EAAE,EAAE,WAAW,CAAC,GAAG,IAAI,EAAE,EAAE,UAAU,wBAAwB,UAAU,CAAC,GAAI,GAAE,EAAE,GAAE,KAAK,uBAAuB,GAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,GAAE,OAAO,IAAI,CAAC,EAAE,GAAE,GAAG,GAAI,GAAE,KAAK,gBAAgB,CAAC,EAAE,IAAI,EAAE,EAAE,WAAY,IAAE,GAAG,EAAE,EAAE,GAAG,GAAE,GAAG,UAAU,EAAE,GAAG,IAAK,GAAE,EAAE,cAAc,GAAE,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,GAAI,GAAE,EAAE,KAAK,UAAU,MAAM,CAAC,EAAE,GAAE,KAAK,aAAa,GAAE,KAAK,kBAAkB,IAAI,EAAE,EAAE,EAAE,GAAE,IAAI,CAAC,GAAI,IAAE,GAAE,GAAG,IAAI,EAAE,EAAE,EAAE,GAAE,OAAO,IAAI,OAAQ,IAAE,GAAE,EAAE,GAAE,IAAI,gBAAgB,GAAE,EAAE,GAAE,GAAE,KAAI,EAAE,GAAG,KAAK,EAAE,GAAG,GAAE,GAAE,GAAE,CAAC,CAAC,GAAI,IAAE,GAAG,GAAE,EAAE,EAAE,EAAE,cAAc,IAAI,EAAE,EAAE,EAAE,GAAE,GAAG,EAAE,CAAC,GAAE,GAAG,EAAE,GAAE,EAAE,GAAG,EAAE,EAAE,GAAE,EAAE,GAAG,EAAE,EAAE,OAAQ,IAAE,EAAE,EAAE,UAAU,GAAE,EAAE,CAAC,EAAE,GAAE,EAAE,EAAE,UAAU,GAAE,EAAG,GAAE,EAAE,EAAE,GAAE,EAAE,EAAE,UAAU,GAAE,EAAG,GAAE,EAAE,EAAE,GAAE,GAAE,SAAS,EAAC,EAAE,GAAE,GAAE,SAAS,EAAC,EAAE,GAAE,EAAE,EAAE,UAAU,EAAE,EAAE,MAAM,GAAE,EAAC,CAAC,EAAE,GAAE,EAAE,GAAE,EAAE,KAAI,GAAE,KAAK,GAAE,CAAC,EAAE,GAAE,KAAK,GAAE,CAAC,EAAE,GAAE,KAAK,GAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,EAAC,EAAE,KAAK,gBAAgB,EAAE,EAAE,WAAW,GAAE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAE,OAAO,IAAI,EAAE,GAAE,GAAG,KAAK,gBAAgB,EAAE,EAAE,GAAG,GAAE,GAAG,aAAa,EAAE,KAAK,mBAAmB,OAAQ,IAAE,EAAE,GAAE,EAAE,OAAO,KAAI,CAAC,GAAI,IAAE,EAAE,IAAG,EAAE,EAAE,UAAU,GAAE,cAAc,GAAE,WAAW,GAAE,WAAW,GAAE,WAAW,GAAE,WAAW,IAAI,CAAC,CAAC,MAAO,MAAK,uBAAuB,IAAI,EAAE,EAAE,UAAU,uBAAuB,UAAU,CAAC,GAAI,GAAE,EAAE,GAAE,KAAK,uBAAuB,GAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,GAAE,OAAO,IAAI,CAAC,EAAE,GAAE,GAAG,GAAI,GAAE,KAAK,gBAAgB,CAAC,EAAE,GAAE,GAAG,EAAE,EAAE,GAAG,GAAE,GAAG,UAAU,EAAE,GAAG,EAAE,CAAC,GAAI,GAAE,EAAE,KAAK,UAAU,MAAM,CAAC,EAAE,EAAE,KAAK,aAAa,GAAE,KAAK,kBAAkB,IAAI,EAAE,EAAE,EAAE,GAAE,IAAI,CAAC,GAAI,IAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,GAAE,OAAO,IAAI,OAAQ,IAAE,GAAE,EAAE,GAAE,IAAI,gBAAgB,GAAE,EAAE,GAAE,GAAE,KAAI,EAAE,GAAG,KAAK,EAAE,GAAG,GAAE,GAAE,GAAE,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,GAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,KAAK,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,GAAE,OAAO,IAAI,EAAE,GAAE,GAAG,KAAK,gBAAgB,EAAE,EAAE,GAAG,GAAE,GAAG,aAAa,EAAE,KAAK,mBAAmB,OAAQ,IAAE,EAAE,GAAE,EAAE,OAAO,KAAI,CAAC,GAAI,IAAE,EAAE,IAAG,EAAE,EAAE,UAAU,GAAE,cAAc,GAAE,WAAW,GAAE,WAAW,GAAE,WAAW,GAAE,WAAW,IAAI,CAAC,CAAC,MAAO,MAAK,WAAW,GAAG,KAAK,uBAAuB,IAAI,EAAE,EAAE,UAAU,UAAU,SAAS,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,GAAI,GAAE,GAAE,GAAE,EAAE,EAAE,gBAAgB,IAAI,EAAE,GAAG,GAAG,KAAK,sBAAsB,EAAE,EAAE,UAAU,GAAG,GAAE,QAAQ,IAAI,EAAE,EAAE,EAAE,GAAE,QAAQ,OAAO,IAAI,GAAE,QAAQ,IAAI,GAAG,GAAG,GAAE,QAAQ,IAAI,EAAE,EAAE,EAAE,GAAE,QAAQ,OAAO,GAAG,EAAE,GAAE,GAAE,QAAQ,EAAE,GAAG,GAAE,QAAQ,EAAE,GAAG,GAAE,QAAQ,EAAE,GAAG,GAAE,QAAQ,EAAE,GAAG,GAAE,MAAO,IAAE,YAAY,KAAK,KAAK,wBAAwB,EAAE,EAAE,YAAY,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,iBAAiB,SAAS,EAAE,CAAC,GAAI,GAAE,EAAE,EAAE,gBAAgB,IAAI,EAAE,GAAE,EAAE,IAAI,GAAE,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,EAAE,QAAQ,GAAG,IAAG,GAAG,GAAG,GAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAI,OAAM,GAAE,EAAE,GAAE,EAAE,EAAE,KAAI,EAAE,IAAG,GAAI,OAAM,GAAI,IAAE,GAAE,GAAI,GAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAE,GAAI,GAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAE,GAAI,GAAE,EAAE,EAAE,CAAC,EAAE,GAAE,GAAI,OAAM,GAAE,GAAI,OAAM,GAAE,GAAI,OAAM,GAAE,EAAE,OAAO,GAAE,GAAE,OAAO,IAAI,GAAE,EAAE,GAAE,GAAE,OAAO,IAAG,EAAE,CAAC,GAAE,GAAG,GAAE,IAAG,GAAE,GAAG,GAAE,GAAE,GAAG,GAAE,GAAG,GAAE,GAAE,GAAG,OAAQ,IAAE,EAAE,GAAE,EAAE,KAAI,GAAG,EAAE,GAAE,IAAG,EAAE,GAAG,IAAE,GAAG,GAAG,AAAS,GAAE,KAAX,QAAe,AAAS,GAAE,KAAX,OAAe,IAAE,GAAG,GAAI,OAAM,GAAE,GAAG,GAAI,QAAQ,CAAS,GAAE,KAAX,QAAgB,IAAE,GAAG,GAAI,QAAO,AAAS,GAAE,KAAX,QAAgB,IAAE,GAAG,GAAI,SAAQ,AAAS,GAAE,GAAG,KAAd,QAAkB,AAAS,GAAE,GAAG,KAAd,OAAiB,CAAC,GAAE,GAAG,GAAG,GAAG,GAAE,EAAG,GAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAE,EAAG,GAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,GAAE,EAAG,GAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,GAAE,EAAG,GAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAE,EAAG,GAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,GAAE,EAAG,GAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,GAAE,EAAG,IAAE,EAAE,GAAG,GAAE,EAAE,IAAI,EAAE,GAAE,EAAG,IAAE,EAAE,EAAE,GAAG,GAAE,EAAE,EAAE,IAAI,EAAE,GAAE,GAAG,GAAG,KAAK,CAAC,EAAE,OAAQ,IAAE,EAAE,GAAE,EAAE,KAAI,GAAE,GAAG,GAAG,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,IAAG,EAAE,EAAE,GAAG,GAAE,GAAE,EAAE,EAAE,MAAK,EAAE,EAAE,GAAG,GAAE,GAAE,EAAE,EAAE,IAAG,EAAE,EAAE,EAAE,GAAG,GAAE,GAAE,EAAE,EAAE,MAAK,EAAE,EAAE,EAAE,GAAG,GAAE,GAAE,EAAE,EAAE,IAAG,EAAE,EAAE,EAAE,GAAG,GAAE,GAAE,EAAE,EAAE,MAAK,EAAE,EAAE,EAAE,GAAG,GAAE,GAAE,EAAE,GAAE,MAAK,GAAE,EAAE,GAAG,GAAE,GAAE,EAAE,GAAE,MAAK,GAAE,EAAE,EAAE,GAAG,GAAE,GAAE,EAAE,GAAE,GAAG,GAAG,KAAK,CAAC,EAAE,GAAE,GAAG,GAAG,GAAI,OAAM,GAAE,GAAE,GAAG,GAAG,OAAO,OAAQ,IAAE,EAAE,GAAE,GAAE,KAAI,GAAE,GAAG,GAAG,IAAG,GAAE,GAAG,GAAG,GAAE,EAAE,GAAE,CAAoE,IAAnE,EAAE,GAAG,GAAG,GAAE,IAAG,EAAE,GAAG,GAAG,GAAE,GAAE,KAAI,GAAE,GAAE,IAAI,GAAG,EAAE,GAAG,GAAG,GAAE,GAAE,KAAI,GAAE,GAAE,IAAI,GAAO,GAAE,EAAE,GAAE,EAAE,KAA+V,IAA1V,EAAE,IAAG,GAAG,GAAE,GAAE,KAAI,GAAE,GAAE,IAAI,IAAG,EAAE,IAAG,IAAG,GAAE,GAAE,KAAI,GAAE,GAAE,IAAI,IAAG,GAAE,EAAG,GAAE,EAAE,EAAE,IAAG,KAAI,EAAE,EAAE,EAAE,IAAG,KAAK,GAAE,GAAE,EAAG,GAAE,EAAE,EAAE,IAAG,IAAG,GAAG,EAAE,EAAE,EAAE,IAAG,GAAG,IAAI,GAAE,GAAE,EAAG,GAAE,EAAE,EAAE,IAAG,IAAG,GAAG,EAAE,EAAE,EAAE,IAAG,GAAG,IAAI,GAAE,GAAE,EAAG,GAAE,EAAE,EAAE,IAAG,KAAI,EAAE,EAAE,EAAE,IAAG,KAAK,GAAE,GAAE,EAAG,GAAE,EAAE,EAAE,IAAG,IAAG,GAAG,EAAE,EAAE,EAAE,IAAG,GAAG,IAAI,GAAE,GAAE,EAAG,GAAE,EAAE,EAAE,IAAG,IAAG,GAAG,EAAE,EAAE,EAAE,IAAG,GAAG,IAAI,GAAE,GAAE,EAAG,IAAE,EAAE,EAAE,IAAG,KAAI,GAAE,EAAE,EAAE,IAAG,KAAK,GAAE,GAAE,EAAG,IAAE,EAAE,EAAE,IAAG,IAAG,GAAG,GAAE,EAAE,EAAE,IAAG,GAAG,IAAI,GAAM,GAAE,EAAE,GAAE,GAAE,KAAI,EAAE,IAAG,IAAG,EAAE,OAAO,EAAE,EAAE,IAAG,EAAE,EAAE,EAAE,IAAG,IAAI,GAAE,GAAE,EAAE,EAAE,MAAK,EAAE,EAAE,EAAE,IAAG,IAAI,GAAE,GAAE,EAAE,EAAE,IAAG,EAAE,EAAE,EAAE,IAAG,GAAG,GAAG,GAAE,GAAE,EAAE,EAAE,MAAK,EAAE,EAAE,EAAE,IAAG,GAAG,GAAG,GAAE,GAAE,EAAE,EAAE,IAAG,EAAE,EAAE,EAAE,IAAG,GAAG,GAAG,GAAE,GAAE,EAAE,EAAE,MAAK,EAAE,EAAE,EAAE,IAAG,GAAG,GAAG,GAAE,GAAE,EAAE,GAAE,MAAK,GAAE,EAAE,EAAE,IAAG,IAAI,GAAE,GAAE,EAAE,GAAE,MAAK,GAAE,EAAE,EAAE,IAAG,GAAG,GAAG,GAAE,GAAE,EAAyD,IAAvD,EAAE,GAAG,GAAE,GAAE,GAAE,IAAI,GAAE,GAAE,IAAI,GAAE,KAAK,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAM,GAAE,EAAE,GAAE,EAAE,KAAI,CAAC,IAAI,GAAE,EAAE,GAAE,GAAE,KAAI,GAAE,KAAK,EAAE,IAAG,IAAG,EAAE,GAAE,GAAG,IAAG,EAAE,GAAE,GAAG,GAAE,EAAE,EAAE,GAAE,KAAK,EAAE,IAAG,IAAG,EAAE,GAAE,GAAG,GAAE,GAAG,EAAE,IAAG,GAAE,EAAE,EAAE,GAAE,KAAK,EAAE,IAAG,IAAG,EAAE,GAAE,GAAG,IAAG,EAAE,GAAE,GAAG,GAAE,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAE,EAAE,YAAY,KAAK,KAAK,wBAAwB,EAAE,EAAE,YAAY,CAAC,CAAC,KAAM,GAAE,EAAE,KAAK,kCAAkC,CAAC,EAAE,EAAE,UAAU,oBAAoB,UAAU,CAAC,GAAI,GAAE,EAAE,EAAE,gBAAgB,IAAI,EAAE,EAAE,EAAE,IAAI,GAAE,EAAE,QAAQ,GAAE,EAAE,UAAU,EAAE,EAAE,OAAO,GAAG,AAAS,KAAT,QAAY,AAAS,KAAT,QAAY,AAAO,KAAP,MAAU,AAAO,KAAP,KAAS,EAAE,EAAE,KAAK,mCAAmC,MAAM,CAAC,OAAQ,GAAE,EAAE,EAAE,GAAI,OAAM,EAAE,GAAI,OAAM,EAAE,GAAI,OAAM,GAAE,GAAI,OAAM,GAAE,GAAI,OAAM,GAAE,EAAE,GAAE,GAAG,GAAE,EAAE,GAAE,GAAE,OAAO,IAAG,EAAE,CAAC,EAAE,CAAC,GAAE,IAAG,GAAE,GAAE,GAAG,GAAE,GAAE,EAAE,EAAE,GAAE,GAAI,OAAM,OAAQ,IAAE,EAAE,GAAE,EAAE,KAAI,CAAC,GAAE,IAAG,GAAG,OAAQ,IAAE,EAAE,GAAE,EAAE,KAAI,KAAK,IAAI,GAAE,EAAE,EAAE,IAAG,GAAE,EAAE,MAAO,IAAE,EAAE,EAAE,IAAG,IAAG,GAAG,GAAE,KAAI,GAAE,EAAE,EAAE,IAAG,IAAG,GAAG,CAAC,GAAG,GAAE,IAAI,GAAE,IAAI,GAAE,IAAI,GAAE,IAAI,GAAE,IAAI,GAAE,GAAG,IAAI,GAAE,EAAE,GAAE,EAAE,KAAI,CAAC,GAAG,AAAU,GAAE,GAAE,GAAE,QAAhB,OAAqB,CAAiB,IAAhB,GAAE,GAAE,KAAI,GAAE,EAAE,KAAQ,GAAE,EAAE,GAAE,EAAE,KAAI,EAAE,KAAK,GAAE,EAAE,EAAE,IAAG,GAAE,EAAE,GAAG,AAAM,GAAN,KAAQ,IAAI,GAAE,EAAE,GAAE,EAAE,KAAI,GAAE,KAAK,EAAE,EAAE,EAAE,IAAG,GAAE,EAAE,GAAG,AAAM,GAAN,KAAQ,IAAI,GAAE,EAAE,GAAE,EAAE,KAAI,EAAE,KAAK,EAAE,EAAE,EAAE,IAAG,GAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAI,IAAE,GAAI,OAAM,EAAE,EAAE,eAAe,EAAE,EAAE,EAAC,EAAE,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,EAAE,QAAQ,GAAE,AAAM,GAAN,MAAU,GAAE,IAAI,GAAG,AAAM,GAAN,MAAU,GAAE,OAAO,IAAG,EAAE,YAAY,KAAK,KAAK,wBAAwB,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,sBAAsB,SAAS,EAAE,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,eAAe,CAAC,EAAE,EAAE,uBAAuB,SAAS,EAAE,EAAE,GAAE,CAAC,KAAM,GAAE,EAAE,WAAW,iBAAiB,CAAC,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,SAAS,GAAG,GAAG,EAAE,OAAO,OAAO,EAAE,OAAQ,IAAE,EAAE,GAAE,EAAE,OAAO,MAAM,CAAC,EAAE,GAAE,GAAE,OAAO,KAAI,CAAC,GAAI,GAAE,GAAE,IAAG,IAAI,MAAM,EAAE,oBAAoB,CAAC,MAAO,GAAE,sBAAsB,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,qBAAqB,UAAU,CAAC,KAAK,WAAW,AAAI,KAAK,UAAU,OAAO,SAA1B,GAAkC,KAAK,UAAU,QAAQ,KAAK,qBAAqB,OAAQ,GAAE,EAAE,EAAE,KAAK,UAAU,OAAO,IAAK,KAAK,UAAU,GAAG,iBAAiB,MAAO,KAAI,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,GAAE,KAAK,aAAa,GAAE,KAAK,gBAAgB,EAAE,EAAE,YAAY,EAAE,GAAG,CAAC,IAAG,CAAC,GAAE,MAAO,MAAK,OAAQ,GAAE,GAAI,OAAM,EAAE,EAAE,EAAE,GAAE,OAAO,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,UAAU,GAAE,CAAC,CAAC,EAAE,GAAI,GAAE,GAAI,OAAM,MAAO,GAAE,EAAE,iBAAiB,EAAE,OAAO,GAAI,SAAS,EAAE,CAAC,OAAQ,GAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,GAAG,GAAE,EAAE,GAAE,EAAE,EAAE,GAAE,CAAC,GAAI,IAAE,EAAE,IAAG,GAAG,EAAE,OAAO,EAAC,EAAE,CAAC,EAAE,GAAG,GAAE,KAAK,CAAC,CAAC,EAAI,UAAU,CAAC,OAAQ,GAAE,EAAE,EAAE,GAAE,OAAO,EAAE,EAAE,GAAE,GAAG,EAAE,GAAE,KAAK,GAAE,GAAG,GAAI,GAAE,EAAE,UAAU,MAAM,CAAC,EAAE,EAAE,WAAW,EAAC,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,GAAI,IAAI,EAAE,EAAE,UAAU,UAAU,SAAS,EAAE,CAAC,EAAE,KAAK,KAAK,KAAK,EAAE,GAAG,KAAK,GAAG,EAAE,SAAS,KAAK,SAAS,EAAE,KAAK,KAAK,eAAe,EAAE,GAAG,EAAE,EAAE,QAAQ,IAAI,GAAI,GAAE,KAAK,EAAE,EAAE,QAAQ,IAAI,GAAG,EAAE,SAAS,KAAK,SAAS,UAAU,KAAK,mBAAmB,EAAE,mBAAmB,KAAK,mBAAmB,UAAU,KAAK,UAAW,GAAE,SAAS,KAAK,SAAS,WAAW,EAAE,QAAQ,KAAK,QAAQ,UAAU,KAAK,yBAAyB,EAAE,YAAY,KAAK,iBAAiB,UAAU,EAAE,YAAY,KAAK,iBAAiB,UAAU,EAAE,UAAU,KAAK,UAAU,EAAE,EAAE,EAAE,UAAU,KAAK,UAAU,EAAE,iBAAiB,KAAK,iBAAiB,EAAE,SAAS,KAAK,WAAW,EAAE,eAAe,KAAK,eAAe,EAAE,cAAc,KAAK,cAAc,EAAE,WAAW,KAAK,WAAW,EAAE,gBAAgB,KAAK,gBAAgB,EAAE,UAAU,KAAK,UAAU,EAAE,gCAAgC,KAAK,gCAAgC,KAAK,QAAS,GAAE,SAAS,KAAK,OAAO,IAAI,EAAE,YAAY,KAAK,YAAY,GAAI,GAAE,KAAK,UAAU,GAAG,EAAE,CAAC,GAAI,IAAE,EAAE,GAAG,EAAE,WAAW,GAAE,EAAE,UAAU,GAAG,OAAQ,IAAE,EAAE,GAAE,KAAK,UAAU,OAAO,KAAI,CAAC,GAAI,GAAE,KAAK,UAAU,IAAG,EAAE,UAAU,KAAK,CAAC,cAAc,EAAE,cAAc,cAAc,EAAE,cAAc,cAAc,EAAE,cAAc,WAAW,EAAE,WAAW,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,AAAC,KAAK,SAAS,KAAK,SAAS,gBAAiB,GAAE,WAAW,KAAK,SAAS,IAAI,KAAK,SAAS,KAAK,KAAK,oBAAqB,GAAE,qBAAqB,KAAK,mBAAmB,UAAU,KAAK,UAAW,GAAE,WAAW,KAAK,SAAS,GAAG,EAAE,mBAAmB,KAAK,oBAAoB,KAAK,WAAW,cAAc,EAAE,EAAE,kBAAkB,GAAM,GAAE,KAAK,uBAAwB,GAAE,YAAY,EAAE,SAAS,MAAM,EAAE,EAAE,gBAAgB,EAAE,SAAS,UAAU,EAAE,EAAE,mBAAmB,EAAE,SAAS,MAAM,EAAE,EAAE,gBAAgB,EAAE,MAAO,KAAK,UAAW,GAAE,SAAS,KAAK,UAAU,EAAE,UAAU,GAAG,OAAQ,GAAE,EAAE,EAAE,KAAK,UAAU,OAAO,IAAI,CAAC,GAAI,GAAE,KAAK,UAAU,GAAG,GAAG,CAAC,EAAE,eAAe,CAAC,GAAI,GAAE,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,EAAE,GAAG,UAAU,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,UAAU,WAAW,EAAE,WAAW,gBAAgB,EAAE,gBAAgB,SAAS,EAAE,SAAS,UAAU,QAAQ,EAAE,QAAQ,SAAS,EAAE,AAAG,EAAE,QAAS,GAAE,SAAS,EAAE,OAAO,IAAI,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,UAAU,EAAE,UAAW,GAAE,SAAS,EAAE,SAAS,WAAW,KAAK,WAAW,cAAc,EAAE,EAAE,kBAAkB,GAAG,GAAE,EAAE,uBAAwB,GAAE,YAAY,EAAE,SAAS,MAAM,EAAE,EAAE,gBAAgB,EAAE,SAAS,UAAU,EAAE,EAAE,mBAAmB,EAAE,SAAS,MAAM,EAAE,EAAE,gBAAgB,EAAE,MAAM,EAAE,UAAW,GAAE,SAAS,EAAE,UAAU,EAAE,UAAU,KAAK,CAAC,EAAE,EAAE,EAAE,2BAA2B,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,0BAA0B,CAAC,CAAC,GAAG,KAAK,yBAAyB,gBAAgB,KAAK,yBAAyB,YAAa,GAAE,cAAc,CAAC,eAAe,KAAK,yBAAyB,eAAe,WAAW,EAAE,EAAE,aAAa,KAAK,yBAAyB,UAAU,EAAE,iBAAiB,KAAK,yBAAyB,gBAAgB,EAAE,KAAK,iCAAiC,CAAC,GAAI,GAAE,CAAC,KAAK,GAAG,MAAM,GAAG,QAAQ,EAAE,EAAE,OAAQ,MAAK,MAAK,gCAAgC,KAAK,EAAE,KAAK,IAAG,EAAE,EAAE,aAAa,KAAK,gCAAgC,KAAK,GAAE,EAAE,EAAE,MAAM,IAAG,KAAK,gCAAgC,MAAM,IAAG,EAAE,QAAQ,IAAG,KAAK,gCAAgC,QAAQ,IAAG,EAAE,cAAc,iBAAiB,CAAC,CAAC,EAAE,EAAE,2BAA2B,KAAK,CAAC,EAAE,EAAE,OAAO,KAAK,2BAA2B,EAAE,UAAU,KAAK,UAAU,EAAE,WAAW,KAAK,WAAW,EAAE,eAAe,KAAK,eAAe,EAAE,aAAa,KAAK,aAAa,EAAE,aAAa,KAAK,aAAa,UAAU,EAAE,cAAc,KAAK,cAAc,EAAE,SAAS,KAAK,SAAS,KAAK,eAAgB,GAAE,QAAQ,KAAK,cAAc,UAAU,KAAK,IAAI,EAAE,EAAE,EAAE,UAAU,oCAAoC,UAAU,CAAC,GAAG,KAAK,SAAS,CAAC,KAAK,kCAAkC,GAAI,GAAE,KAAK,sBAAsB,oBAAoB,GAAG,GAAG,EAAE,YAAY,CAAC,GAAG,EAAE,cAAc,KAAK,mBAAmB,MAAO,GAAE,EAAE,MAAM,kGAAkG,EAAE,IAAK,MAAK,mBAAmB,MAAM,OAAQ,GAAE,EAAE,EAAE,EAAE,eAAe,IAAI,CAAC,GAAI,IAAE,EAAE,gBAAgB,CAAC,EAAE,GAAE,GAAE,eAAe,GAAG,CAAC,GAAE,MAAO,KAAK,GAAE,EAAE,MAAM,mDAAmD,EAAE,KAAK,SAAS,gBAAgB,EAAE,EAAE,aAAa,EAAE,GAAE,GAAG,CAAC,EAAE,GAAI,GAAE,GAAE,aAAa,GAAG,KAAK,SAAS,gBAAgB,EAAE,EAAE,WAAW,EAAE,EAAE,GAAG,CAAC,EAAE,GAAI,GAAE,GAAE,cAAc,GAAG,KAAK,SAAS,gBAAgB,EAAE,EAAE,YAAY,EAAE,EAAE,GAAG,CAAC,EAAE,GAAI,GAAE,GAAE,SAAS,GAAG,KAAK,SAAS,gBAAgB,EAAE,EAAE,OAAO,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,KAAM,KAAI,EAAE,EAAE,KAAK,SAAS,sBAAsB,EAAE,EAAE,aAAa,CAAC,GAAG,KAAK,SAAS,mBAAmB,EAAE,EAAE,aAAa,CAAC,EAAE,KAAK,SAAS,sBAAsB,EAAE,EAAE,WAAW,CAAC,GAAG,KAAK,SAAS,mBAAmB,EAAE,EAAE,WAAW,CAAC,EAAE,KAAK,SAAS,sBAAsB,EAAE,EAAE,YAAY,CAAC,GAAG,KAAK,SAAS,mBAAmB,EAAE,EAAE,YAAY,CAAC,EAAE,KAAK,SAAS,sBAAsB,EAAE,EAAE,OAAO,CAAC,GAAG,KAAK,SAAS,mBAAmB,EAAE,EAAE,OAAO,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,SAAS,EAAE,EAAE,GAAE,CAAC,GAAI,IAAE,GAAI,IAAE,EAAE,MAAM,AAAe,EAAE,OAAjB,aAAsB,EAAE,kBAAkB,EAAE,CAAC,EAAE,GAAI,GAAE,EAAE,KAAK,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,GAAE,EAAE,IAAI,EAAE,GAAE,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,AAAS,EAAE,WAAX,QAAsB,IAAE,SAAS,EAAE,UAAU,EAAE,mBAAmB,GAAE,mBAAmB,EAAE,EAAE,UAAU,EAAE,kBAAkB,EAAE,EAAE,UAAW,IAAE,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,GAAG,GAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,YAAY,GAAE,sBAAsB,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,EAAE,aAAa,GAAE,eAAe,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,GAAE,WAAW,EAAE,SAAS,EAAE,GAAE,UAAU,EAAE,UAAU,GAAE,iBAAiB,EAAE,iBAAiB,GAAE,gBAAgB,EAAE,gBAAgB,GAAE,yBAAyB,EAAE,yBAAyB,AAAS,EAAE,WAAX,QAAsB,IAAE,SAAS,EAAE,UAAU,AAAS,EAAE,WAAX,QAAsB,IAAE,WAAW,EAAE,UAAU,AAAS,EAAE,aAAX,QAAwB,IAAE,WAAW,EAAE,YAAY,GAAE,eAAe,EAAE,eAAe,GAAE,cAAc,EAAE,cAAc,AAAS,EAAE,aAAX,QAAwB,IAAE,WAAW,EAAE,YAAY,GAAE,gBAAgB,EAAE,gBAAgB,GAAE,gCAAgC,EAAE,gCAAgC,AAAS,EAAE,YAAX,QAAuB,IAAE,UAAU,EAAE,WAAW,GAAE,2BAA2B,EAAE,eAAe,EAAE,mBAAoB,IAAE,aAAa,kBAAkB,EAAE,mBAAmB,EAAE,UAAW,IAAE,iBAAiB,EAAE,UAAU,AAAS,EAAE,UAAX,QAAqB,IAAE,aAAa,QAAQ,EAAE,SAAS,AAAS,EAAE,eAAX,QAA0B,IAAE,aAAa,EAAE,cAAc,AAAS,EAAE,eAAX,QAA0B,IAAE,aAAa,EAAE,EAAE,UAAU,EAAE,YAAY,GAAG,AAAS,EAAE,gBAAX,QAA2B,IAAE,cAAc,EAAE,eAAe,GAAE,YAAY,CAAC,CAAC,EAAE,YAAY,GAAE,eAAe,EAAE,eAAe,EAAE,iBAAkB,IAAE,eAAe,EAAE,EAAE,yBAAyB,GAAE,iBAAiB,GAAE,EAAE,iBAAiB,GAAE,cAAc,GAAI,GAAE,EAAE,EAAE,EAAE,UAAU,EAAE,kBAAkB,EAAE,EAAE,EAAE,UAAU,EAAE,kBAAkB,CAAC,EAAE,EAAE,aAAc,IAAE,YAAY,EAAE,aAAa,GAAE,WAAW,GAAG,EAAE,QAAQ,GAAE,WAAW,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,SAAS,GAAE,WAAW,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,GAAE,WAAW,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,GAAE,WAAW,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,GAAE,WAAW,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,GAAE,WAAW,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,WAAW,GAAE,WAAW,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,oBAAoB,GAAE,WAAW,KAAK,EAAE,EAAE,mBAAmB,EAAE,EAAE,oBAAoB,GAAE,WAAW,KAAK,EAAE,EAAE,mBAAmB,EAAE,GAAE,sBAAsB,EAAE,EAAE,gBAAgB,EAAE,EAAE,qCAAqC,GAAE,oBAAoB,EAAE,EAAE,gBAAgB,EAAE,EAAC,EAAE,EAAE,WAAW,GAAE,gBAAgB,EAAE,UAAU,EAAE,GAAE,SAAS,KAAK,EAAE,qBAAqB,IAAK,IAAE,mBAAmB,EAAE,0BAA0B,EAAE,oBAAoB,GAAG,AAAS,EAAE,aAAX,QAAuB,AAAO,EAAE,aAAT,MAAsB,IAAE,SAAS,EAAE,oBAAoB,EAAE,UAAU,EAAE,EAAE,oBAAqB,IAAE,mBAAmB,EAAE,qBAAqB,EAAE,WAAW,CAAC,OAAQ,GAAE,EAAE,EAAE,EAAE,WAAW,OAAO,IAAI,CAAC,GAAI,GAAE,EAAE,WAAW,GAAG,AAAC,GAAE,EAAE,EAAE,SAAS,mBAAmB,IAAI,GAAE,WAAW,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,qBAAqB,GAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,aAAa,EAAE,eAAe,GAAE,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,EAAE,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,GAAE,UAAU,KAAK,IAAI,SAAS,EAAE,SAAS,CAAC,EAAE,GAAE,UAAU,UAAU,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,GAAE,CAAC,EAAE,EAAE,YAAa,IAAE,aAAa,KAAK,CAAC,IAAI,EAAE,WAAW,UAAU,EAAE,aAAa,EAAE,aAAa,KAAK,UAAU,EAAE,aAAa,EAAE,aAAa,IAAI,GAAG,EAAE,UAAU,OAAQ,GAAE,EAAE,EAAE,EAAE,UAAU,OAAO,IAAI,CAAC,GAAI,GAAE,EAAE,UAAU,GAAG,EAAE,GAAE,eAAe,EAAE,IAAI,EAAE,GAAG,EAAE,IAAK,GAAE,GAAG,EAAE,IAAI,EAAE,GAAI,GAAE,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,GAAG,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,AAAS,EAAE,WAAX,QAAsB,GAAE,SAAS,EAAE,UAAU,EAAE,UAAW,GAAE,iBAAiB,EAAE,UAAU,AAAS,EAAE,YAAX,QAAsB,AAAO,EAAE,YAAT,MAAoB,EAAE,WAAW,EAAE,SAAS,EAAE,AAAS,EAAE,YAAX,QAAsB,AAAO,EAAE,YAAT,MAAqB,GAAE,UAAU,EAAE,WAAW,AAAS,EAAE,aAAX,QAAuB,AAAO,EAAE,aAAT,MAAsB,GAAE,WAAW,EAAE,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,EAAE,UAAU,EAAE,kBAAkB,EAAE,EAAE,UAAW,GAAE,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,GAAG,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,AAAM,EAAE,iBAAR,MAAyB,AAAM,EAAE,iBAAR,MAA0B,GAAE,gBAAgB,EAAE,iBAAiB,AAAM,EAAE,UAAR,MAAkB,AAAM,EAAE,UAAR,MAAmB,GAAE,WAAW,EAAE,UAAU,AAAM,EAAE,iBAAR,MAAyB,AAAM,EAAE,iBAAR,MAA0B,GAAE,gBAAgB,EAAE,iBAAiB,AAAM,EAAE,0BAAR,MAAkC,AAAM,EAAE,0BAAR,MAAmC,GAAE,yBAAyB,EAAE,0BAA0B,AAAM,EAAE,YAAR,MAAoB,AAAM,EAAE,0BAAR,MAAmC,GAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,EAAE,CAAC,EAAE,EAAE,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,WAAW,OAAO,IAAI,CAAC,GAAI,GAAE,EAAE,EAAE,WAAW,GAAI,GAAE,EAAE,EAAE,SAAS,mBAAmB,IAAI,EAAE,WAAW,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,qBAAqB,EAAE,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,cAAc,CAAC,GAAI,IAAE,EAAE,cAAc,GAAG,GAAE,WAAY,IAAE,sBAAsB,SAAS,GAAI,cAAa,GAAE,UAAU,EAAE,GAAG,EAAE,EAAE,GAAE,yBAAyB,iBAAiB,GAAE,iBAAiB,GAAE,yBAAyB,eAAe,GAAE,gBAAgB,GAAE,yBAAyB,iBAAiB,GAAE,iBAAiB,EAAE,cAAc,iBAAiB,CAAC,GAAI,IAAE,EAAE,cAAc,iBAAiB,OAAQ,MAAK,IAAE,KAAK,GAAE,sBAAsB,GAAE,GAAI,cAAa,GAAE,KAAK,GAAE,EAAE,GAAE,QAAQ,IAAG,EAAE,EAAE,GAAE,gCAAgC,MAAM,IAAG,GAAE,MAAM,GAAE,CAAC,CAAC,MAAO,GAAC,EAAE,EAAE,aAAa,SAAS,EAAE,EAAE,GAAE,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,aAAa,CAAC,EAAE,EAAE,WAAW,SAAS,EAAE,EAAE,GAAE,GAAE,EAAE,EAAE,CAAC,KAA2B,GAAE,EAAE,WAAW,aAAa,CAAC,EAAE,EAAE,UAAU,SAAS,EAAE,EAAE,GAAE,GAAE,EAAE,CAAC,KAA2B,GAAE,EAAE,WAAW,aAAa,CAAC,EAAE,EAAE,aAAa,SAAS,EAAE,EAAE,GAAE,GAAE,EAAE,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,aAAa,CAAC,EAAE,EAAE,iBAAiB,SAAS,EAAE,EAAE,GAAE,GAAE,CAAC,KAAM,GAAE,EAAE,WAAW,aAAa,CAAC,EAAE,EAAE,eAAe,SAAS,EAAE,EAAE,GAAE,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,aAAa,CAAC,EAAE,EAAE,YAAY,SAAS,EAAE,EAAE,GAAE,GAAE,EAAE,EAAE,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,aAAa,CAAC,EAAE,EAAE,gBAAgB,SAAS,EAAE,EAAE,GAAE,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,aAAa,CAAC,EAAE,EAAE,YAAY,SAAS,EAAE,EAAE,GAAE,GAAE,EAAE,CAAC,KAAmE,GAAE,EAAE,WAAW,aAAa,CAAC,EAAE,EAAE,kBAAkB,SAAS,EAAE,EAAE,GAAE,GAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAA2B,GAAE,EAAE,WAAW,aAAa,CAAC,EAAE,EAAE,cAAc,SAAS,EAAE,EAAE,GAAE,GAAE,EAAE,EAAE,EAAE,CAAC,KAAM,AAAS,KAAT,QAAa,GAAE,QAAQ,EAAE,EAAE,WAAW,aAAa,CAAC,EAAE,EAAE,eAAe,SAAS,EAAE,EAAE,GAAE,GAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAM,AAAS,KAAT,QAAa,GAAE,QAAQ,EAAE,EAAE,WAAW,aAAa,CAAC,EAAE,EAAE,aAAa,SAAS,EAAE,EAAE,GAAE,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAA2B,GAAE,EAAE,WAAW,aAAa,CAAC,EAAE,EAAE,mBAAmB,SAAS,EAAE,EAAE,GAAE,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,GAAE,CAAC,KAAM,GAAE,EAAE,WAAW,aAAa,CAAC,EAAE,EAAE,YAAY,SAAS,EAAE,EAAE,GAAE,GAAE,EAAE,EAAE,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,aAAa,CAAC,EAAE,EAAE,YAAY,SAAS,EAAE,EAAE,GAAE,GAAE,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,aAAa,CAAC,EAAE,EAAE,aAAa,SAAS,EAAE,EAAE,GAAE,GAAE,EAAE,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,aAAa,CAAC,EAAE,EAAE,kBAAkB,SAAS,EAAE,EAAE,GAAE,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,aAAa,CAAC,EAAE,EAAE,0BAA0B,SAAS,EAAE,EAAE,GAAE,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,CAAC,KAAM,GAAE,EAAE,WAAW,aAAa,CAAC,EAAE,EAAE,WAAW,SAAS,EAAE,EAAE,GAAE,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,aAAa,CAAC,EAAE,EAAE,iBAAiB,SAAS,EAAE,EAAE,GAAE,CAAC,KAAM,GAAE,EAAE,WAAW,aAAa,CAAC,EAAE,EAAE,gBAAgB,SAAS,EAAE,EAAE,GAAE,CAAC,KAAM,GAAE,EAAE,WAAW,aAAa,CAAC,EAAE,EAAE,YAAY,SAAS,EAAE,EAAE,GAAE,GAAE,EAAE,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,aAAa,CAAC,EAAE,EAAE,cAAc,SAAS,EAAE,EAAE,GAAE,CAAC,KAAM,GAAE,EAAE,WAAW,aAAa,CAAC,EAAE,EAAE,UAAU,2BAA2B,UAAU,CAAC,GAAI,GAAE,KAAK,sBAAsB,GAAG,CAAC,EAAE,iBAAiB,CAAC,GAAI,GAAE,KAAK,gBAAgB,EAAE,EAAE,YAAY,EAAE,GAAG,CAAC,EAAE,MAAO,GAAE,iBAAiB,EAAE,iBAAiB,GAAI,cAAa,CAAC,EAAE,KAAK,wBAAwB,EAAE,EAAE,YAAY,GAAG,KAAK,gBAAgB,EAAE,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,MAAO,GAAE,gBAAgB,EAAE,EAAE,UAAU,yBAAyB,UAAU,CAAC,GAAI,GAAE,KAAK,sBAAsB,GAAG,CAAC,EAAE,eAAe,CAAC,GAAI,GAAE,KAAK,gBAAgB,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,MAAO,GAAE,eAAe,EAAE,eAAe,GAAI,cAAa,CAAC,EAAE,KAAK,wBAAwB,EAAE,EAAE,UAAU,GAAG,KAAK,gBAAgB,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,MAAO,GAAE,cAAc,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,CAAC,GAAG,CAAC,KAAK,SAAS,MAAO,MAAK,GAAG,KAAK,SAAS,0BAA0B,KAAK,WAAW,aAAa,MAAO,MAAK,GAAG,KAAK,SAAS,yBAAyB,KAAK,WAAW,aAAa,CAAC,KAAK,sBAAsB,EAAE,EAAE,YAAY,EAAE,MAAO,MAAK,GAAG,CAAC,KAAK,sBAAsB,EAAE,EAAE,mBAAmB,EAAE,MAAO,MAAK,GAAG,CAAC,KAAK,sBAAsB,EAAE,EAAE,mBAAmB,EAAE,MAAO,MAAK,GAAI,GAAE,KAAK,sBAAsB,EAAE,EAAE,UAAU,EAAE,GAAE,KAAK,sBAAsB,GAAG,CAAC,GAAE,iBAAiB,CAAC,GAAI,IAAE,KAAK,UAAU,QAAQ,KAAK,6BAA6B,KAAK,UAAU,EAAC,CAAC,GAAG,CAAC,GAAE,gBAAgB,KAAK,2BAA2B,GAAI,GAAE,KAAK,gBAAgB,EAAE,EAAE,YAAY,EAAE,GAAG,CAAC,EAAE,MAAO,MAAK,YAAa,eAAe,GAAE,GAAI,cAAa,CAAC,GAAG,GAAI,GAAE,KAAK,gBAAgB,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,MAAO,MAAK,YAAa,eAAe,GAAE,GAAI,cAAa,CAAC,EAAE,CAAC,GAAI,GAAE,KAAK,gBAAgB,EAAE,EAAE,mBAAmB,EAAE,EAAE,KAAK,gBAAgB,EAAE,EAAE,mBAAmB,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,MAAO,MAAK,OAAQ,GAAE,EAAE,KAAK,mBAAmB,EAAE,GAAE,EAAE,KAAK,gBAAgB,EAAE,EAAE,wBAAwB,EAAE,KAAK,GAAE,EAAE,KAAK,gBAAgB,EAAE,EAAE,wBAAwB,EAAE,KAAK,GAAE,EAAE,qBAAqB,IAAI,EAAE,GAAE,EAAE,EAAE,OAAO,GAAE,GAAI,GAAE,EAAE,GAAE,GAAI,GAAE,EAAE,GAAE,EAAE,GAAE,EAAE,GAAE,EAAE,OAAO,IAAG,EAAE,IAAG,EAAE,CAAC,GAAI,IAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,AAAC,IAAE,EAAE,GAAE,IAAI,GAAI,GAAE,EAAE,4BAA4B,GAAE,KAAK,MAAM,GAAG,EAAE,GAAE,EAAE,EAAE,GAAE,EAAC,EAAE,GAAE,UAAU,EAAC,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,AAAC,IAAE,GAAE,GAAE,IAAI,GAAI,GAAE,EAAE,4BAA4B,GAAE,KAAK,MAAM,GAAG,GAAE,GAAE,EAAE,EAAE,GAAE,EAAC,EAAE,GAAE,UAAU,EAAC,GAAG,EAAE,EAAE,oCAAoC,GAAE,iBAAiB,IAAG,GAAE,iBAAiB,GAAE,GAAG,GAAE,iBAAiB,GAAE,GAAG,GAAE,EAAC,EAAE,GAAE,QAAQ,EAAE,EAAC,EAAE,GAAI,GAAE,EAAE,+BAA+B,GAAE,eAAe,IAAG,GAAE,eAAe,GAAE,GAAG,GAAE,eAAe,GAAE,GAAG,GAAE,EAAC,EAAE,GAAE,QAAQ,EAAE,EAAC,GAAG,GAAE,OAAO,CAAC,MAAO,MAAK,mBAAmB,EAAE,EAAE,aAAa,CAAC,EAAE,GAAG,KAAK,mBAAmB,EAAE,EAAE,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,GAAE,KAAK,MAAO,GAAE,QAAS,SAAS,GAAE,CAAC,GAAI,GAAE,GAAE,kBAAkB,YAAY,GAAG,GAAG,GAAE,gBAAgB,EAAE,YAAY,EAAE,GAAE,gBAAgB,EAAE,YAAY,GAAI,GAAE,EAAE,aAAa,GAAE,EAAE,aAAa,GAAI,GAAG,GAAE,CAAC,IAAI,EAAE,IAAI,EAAC,EAAE,CAAC,IAAI,EAAE,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,SAAS,EAAE,CAAC,GAAI,GAAE,YAAa,OAAM,EAAE,OAAO,CAAC,EAAE,EAAE,MAAO,GAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,YAAY,SAAS,EAAE,EAAE,GAAE,GAAE,EAAE,EAAE,CAAC,GAAI,GAAE,GAAG,AAAS,IAAT,QAAa,GAAE,IAAI,CAAC,GAAE,CAAC,GAAI,GAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,GAAG,EAAE,IAAK,IAAG,EAAE,GAAG,qBAAqB,MAAM,MAAO,GAAE,EAAE,KAAK,4IAA4I,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,GAAI,GAAE,EAAE,GAAE,KAAK,EAAE,EAAE,CAAC,GAAI,IAAE,GAAE,GAAI,OAAM,GAAE,GAAI,OAAM,GAAE,KAAK,GAAE,GAAI,OAAM,GAAE,KAAK,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,GAAG,EAAE,GAAG,CAAC,GAAI,IAAE,EAAE,GAAG,GAAG,GAAE,aAAa,MAAO,GAAE,EAAE,KAAK,+BAA+B,EAAE,KAAK,GAAI,IAAE,GAAE,mBAAmB,EAAE,EAAE,GAAI,IAAE,EAAE,EAAE,gBAAgB,GAAE,GAAG,EAAE,GAAG,UAAU,EAAC,EAAE,GAAE,GAAE,MAAM,GAAE,EAAC,EAAG,IAAE,GAAE,GAAE,IAAG,GAAG,GAAE,KAAK,GAAE,iBAAiB,EAAE,EAAE,GAAG,GAAE,SAAS,CAAC,GAAI,IAAE,GAAE,SAAS,GAAG,aAAa,GAAE,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,GAAE,aAAa,OAAO,IAAI,GAAE,QAAQ,GAAE,aAAa,EAAE,EAAE,GAAG,GAAE,KAAK,GAAE,aAAa,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAE,UAAU,OAAO,IAAI,GAAE,KAAK,GAAE,QAAQ,GAAE,aAAa,GAAE,UAAU,GAAG,cAAc,CAAC,EAAE,GAAE,KAAK,GAAE,UAAU,GAAG,UAAU,CAAC,KAAM,KAAI,GAAE,QAAQ,EAAC,EAAE,GAAG,GAAE,KAAK,EAAC,EAAE,EAAE,EAAE,EAAE,GAAE,UAAU,OAAO,IAAI,GAAE,KAAK,GAAE,QAAQ,EAAC,CAAC,EAAE,GAAE,KAAK,GAAE,UAAU,GAAG,UAAU,CAAC,KAAM,KAAI,EAAE,EAAE,EAAE,GAAE,UAAU,OAAO,IAAI,GAAE,KAAK,CAAC,EAAE,GAAE,KAAK,GAAE,UAAU,GAAG,UAAU,CAAC,CAAC,GAAG,GAAE,GAAE,IAAI,IAAE,GAAI,GAAE,GAAE,KAAK,UAAU,GAAE,UAAU,GAAG,GAAE,YAAY,EAAC,EAAE,GAAE,gBAAgB,GAAE,gBAAgB,GAAE,gCAAgC,GAAE,gCAAgC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,EAAE,IAAI,EAAE,GAAG,UAAU,GAAG,GAAG,EAAE,CAAC,GAAE,mBAAmB,EAAE,EAAE,OAAQ,IAAE,EAAE,EAAE,GAAE,QAAQ,EAAE,EAAE,kBAAkB,EAAE,GAAE,GAAE,GAAG,EAAC,EAAE,IAAG,GAAE,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,IAAK,IAAE,GAAI,GAAE,EAAE,GAAE,KAAK,UAAU,GAAE,UAAU,GAAG,aAAa,GAAE,EAAE,EAAE,EAAE,GAAE,UAAU,OAAO,IAAI,GAAE,UAAU,GAAG,cAAc,GAAE,GAAG,GAAE,SAAS,EAAC,KAAM,IAAE,SAAS,GAAE,SAAS,MAAO,GAAC,EAAE,EAAE,UAAU,YAAY,SAAS,EAAE,CAAC,EAAE,gCAAgC,KAAK,UAAU,OAAO,KAAK,UAAU,KAAK,CAAC,CAAC,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,CAAC,GAAI,GAAE,EAAE,gCAAgC,GAAG,AAAI,GAAJ,GAAM,CAAC,GAAG,IAAI,KAAK,UAAU,OAAO,EAAE,CAAC,GAAI,IAAE,KAAK,UAAU,KAAK,UAAU,OAAO,GAAG,KAAK,UAAU,GAAG,GAAE,GAAE,gCAAgC,CAAC,CAAC,EAAE,gCAAgC,GAAG,KAAK,UAAU,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,EAAE,mBAAmB,EAAE,EAAE,kBAAkB,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,kBAAkB,SAAS,EAAE,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,gBAAgB,gBAAgB,CAAC,EAAE,SAAS,GAAE,EAAE,EAAE,CAAc,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,GAAI,GAAE,UAAU,CAAC,YAAY,EAAE,MAAO,GAAE,aAAa,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAC,EAAE,EAAE,eAAe,SAAS,EAAE,CAAC,GAAI,GAAE,SAAS,EAAE,CAAC,MAAO,GAAE,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAI,MAAK,MAAM,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,EAAE,aAAa,SAAS,EAAE,GAAG,EAAE,YAAY,SAAS,EAAE,CAAC,GAAI,GAAE,EAAE,eAAe,CAAC,EAAE,QAAQ,IAAI,SAAS,CAAC,EAAE,GAAI,GAAE,4BAA4B,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,EAAE,EAAE,cAAc,SAAS,EAAE,GAAG,EAAE,aAAa,SAAS,EAAE,CAAC,GAAI,GAAE,EAAE,eAAe,CAAC,EAAE,QAAQ,KAAK,SAAS,CAAC,EAAE,GAAI,GAAE,6BAA6B,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,EAAE,EAAE,eAAe,SAAS,EAAE,GAAG,EAAE,cAAc,SAAS,EAAE,CAAC,EAAE,cAAc,GAAI,GAAE,EAAE,eAAe,CAAC,EAAE,QAAQ,MAAM,SAAS,CAAC,EAAE,GAAI,GAAE,0BAA0B,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,EAAE,OAAO,eAAe,EAAE,WAAW,CAAC,IAAI,UAAU,CAAC,MAAO,GAAE,SAAS,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,cAAc,UAAU,CAAC,EAAE,UAAU,GAAG,EAAE,YAAY,CAAC,EAAE,OAAO,eAAe,EAAE,YAAY,CAAC,IAAI,SAAS,EAAE,CAAC,AAAC,GAAE,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAc,GAAE,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,cAAe,GAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,EAAE,gBAAgB,EAAE,EAAE,gBAAgB,EAAE,EAAE,cAAc,EAAE,EAAE,YAAY,EAAE,EAAE,UAAU,GAAG,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,CAAC,GAAG,EAAE,SAAS,GAAE,EAAE,EAAE,CAAc,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,GAAI,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,GAAG,AAAS,IAAT,QAAa,GAAE,GAAG,AAAS,IAAT,QAAa,GAAE,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAO,GAAE,UAAU,SAAS,UAAU,CAAC,MAAM,OAAO,KAAK,EAAE,MAAM,KAAK,EAAE,MAAM,KAAK,EAAE,GAAG,EAAE,EAAE,UAAU,aAAa,UAAU,CAAC,MAAM,QAAQ,EAAE,EAAE,UAAU,YAAY,UAAU,CAAC,GAAI,GAAE,IAAI,KAAK,EAAE,EAAE,MAAO,GAAE,IAAK,GAAE,IAAI,EAAG,KAAI,KAAK,EAAE,IAAK,KAAI,KAAK,EAAE,EAAE,EAAE,EAAE,UAAU,QAAQ,SAAS,EAAE,EAAE,CAAC,MAAO,AAAS,KAAT,QAAa,GAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,UAAU,UAAU,SAAS,EAAE,EAAE,CAAC,MAAO,AAAS,KAAT,QAAa,GAAE,GAAG,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,UAAU,SAAS,SAAS,EAAE,CAAC,MAAO,AAAS,KAAT,QAAa,GAAE,GAAG,GAAI,GAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,QAAQ,UAAU,CAAC,GAAI,GAAE,GAAI,OAAM,MAAO,MAAK,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,YAAY,UAAU,CAAC,MAAM,IAAG,KAAK,EAAE,IAAI,KAAK,EAAE,IAAI,KAAK,CAAC,EAAE,EAAE,UAAU,SAAS,SAAS,EAAE,CAAC,MAAO,IAAI,GAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,EAAE,CAAC,MAAO,GAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,OAAO,SAAS,EAAE,CAAC,MAAO,IAAG,KAAK,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,aAAa,SAAS,EAAE,EAAE,EAAE,CAAC,MAAO,MAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,CAAC,EAAE,EAAE,UAAU,MAAM,SAAS,EAAE,CAAC,MAAO,IAAI,GAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,WAAW,SAAS,EAAE,EAAE,CAAC,MAAO,GAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,iBAAiB,SAAS,EAAE,EAAE,CAAC,MAAO,GAAE,GAAG,KAAK,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,WAAW,SAAS,EAAE,EAAE,EAAE,CAAC,MAAO,AAAS,KAAT,QAAa,GAAE,GAAG,AAAS,IAAT,QAAa,GAAE,GAAG,EAAE,EAAE,EAAE,EAAE,MAAM,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,IAAI,SAAS,EAAE,CAAC,MAAO,IAAI,GAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,SAAS,SAAS,EAAE,EAAE,CAAC,MAAO,GAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,SAAS,SAAS,EAAE,CAAC,MAAO,IAAI,GAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,EAAE,CAAC,MAAO,GAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,MAAM,UAAU,CAAC,MAAO,IAAI,GAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,UAAU,SAAS,SAAS,EAAE,CAAC,MAAO,MAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,EAAE,EAAE,CAAC,MAAO,MAAK,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,IAAI,SAAS,EAAE,EAAE,EAAE,CAAC,MAAO,MAAK,eAAe,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,YAAY,UAAU,CAAC,GAAI,GAAE,IAAI,KAAK,EAAE,EAAE,EAAE,IAAI,KAAK,EAAE,EAAE,EAAE,IAAI,KAAK,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,UAAU,cAAc,UAAU,CAAC,GAAI,GAAE,GAAI,GAAE,MAAO,MAAK,mBAAmB,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,MAAM,UAAU,CAAC,GAAI,GAAE,GAAI,GAAE,MAAO,MAAK,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,WAAW,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,AAAI,IAAJ,GAAQ,GAAE,EAAE,GAAG,GAAG,GAAI,IAAG,EAAG,GAAG,GAAE,GAAG,EAAE,EAAE,GAAI,IAAG,IAAI,GAAG,EAAE,EAAG,GAAE,GAAG,EAAE,EAAE,GAAG,GAAI,GAAG,GAAE,GAAG,EAAE,GAAG,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,mBAAmB,SAAS,EAAE,CAAC,MAAO,GAAE,EAAE,KAAK,IAAI,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,aAAa,UAAU,CAAC,GAAI,GAAE,GAAI,GAAE,MAAO,MAAK,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,kBAAkB,SAAS,EAAE,CAAC,MAAO,GAAE,EAAE,KAAK,IAAI,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,cAAc,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAG,GAAE,KAAK,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAG,GAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAG,GAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAG,GAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAG,GAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAG,GAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAI,GAAE,EAAE,EAAE,GAAG,GAAI,GAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,cAAc,SAAS,EAAE,CAAC,GAAG,AAAM,EAAE,UAAU,EAAE,CAAC,IAArB,KAAwB,AAAI,EAAE,SAAN,EAAa,MAAO,IAAI,GAAE,EAAE,EAAE,CAAC,EAAE,GAAI,GAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,MAAO,GAAE,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,SAAS,EAAE,EAAE,CAAC,MAAO,AAAS,KAAT,QAAa,GAAE,GAAG,GAAI,GAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,eAAe,SAAS,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,SAAS,EAAE,EAAE,EAAE,CAAC,MAAO,IAAI,GAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,GAAI,GAAE,EAAE,EAAE,CAAC,EAAE,MAAO,GAAE,UAAU,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAG,GAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAG,GAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAG,GAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,UAAU,CAAC,MAAO,IAAI,GAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,UAAU,CAAC,MAAO,IAAI,GAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,UAAU,CAAC,MAAO,IAAI,GAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,UAAU,CAAC,MAAO,IAAI,GAAE,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,eAAe,EAAE,gBAAgB,CAAC,IAAI,UAAU,CAAC,MAAO,GAAE,cAAc,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,UAAU,CAAC,MAAO,IAAI,GAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,MAAO,IAAI,GAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,UAAU,CAAC,MAAO,IAAI,GAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,MAAO,IAAI,GAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,UAAU,CAAC,MAAO,IAAI,GAAE,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,UAAU,CAAC,MAAO,IAAI,GAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,MAAO,IAAI,GAAE,KAAK,SAAS,KAAK,SAAS,KAAK,QAAQ,CAAC,EAAE,EAAE,eAAe,EAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,GAAG,AAAS,IAAT,QAAa,GAAE,GAAG,AAAS,IAAT,QAAa,GAAE,GAAG,AAAS,IAAT,QAAa,GAAE,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAO,GAAE,UAAU,WAAW,SAAS,EAAE,CAAC,MAAO,MAAK,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,QAAQ,UAAU,CAAC,GAAI,GAAE,GAAI,OAAM,MAAO,MAAK,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,QAAQ,SAAS,EAAE,EAAE,CAAC,MAAO,AAAS,KAAT,QAAa,GAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,UAAU,UAAU,SAAS,EAAE,EAAE,CAAC,MAAO,AAAS,KAAT,QAAa,GAAE,GAAG,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,UAAU,OAAO,SAAS,EAAE,CAAC,MAAO,IAAG,KAAK,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,IAAI,SAAS,EAAE,CAAC,MAAO,IAAI,GAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,SAAS,SAAS,EAAE,CAAC,MAAO,IAAI,GAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,EAAE,CAAC,MAAO,GAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,MAAM,SAAS,EAAE,CAAC,MAAO,IAAI,GAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,WAAW,SAAS,EAAE,EAAE,CAAC,MAAO,GAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,iBAAiB,SAAS,EAAE,EAAE,CAAC,MAAO,GAAE,GAAG,KAAK,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,WAAW,SAAS,EAAE,EAAE,EAAE,CAAC,MAAO,AAAS,KAAT,QAAa,GAAE,GAAG,AAAS,IAAT,QAAa,GAAE,GAAG,EAAE,EAAE,EAAE,EAAE,MAAM,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,SAAS,SAAS,EAAE,CAAC,MAAO,IAAI,GAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,EAAE,CAAC,MAAO,GAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,SAAS,UAAU,CAAC,MAAM,OAAO,KAAK,EAAE,MAAM,KAAK,EAAE,MAAM,KAAK,EAAE,MAAM,KAAK,EAAE,GAAG,EAAE,EAAE,UAAU,aAAa,UAAU,CAAC,MAAM,QAAQ,EAAE,EAAE,UAAU,YAAY,UAAU,CAAC,GAAI,GAAE,IAAI,KAAK,EAAE,EAAE,MAAO,GAAE,IAAK,GAAE,IAAK,GAAE,IAAI,EAAG,KAAI,KAAK,EAAE,IAAK,KAAI,KAAK,EAAE,IAAK,KAAI,KAAK,EAAE,EAAE,EAAE,EAAE,UAAU,MAAM,UAAU,CAAC,MAAO,IAAI,GAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,UAAU,SAAS,SAAS,EAAE,CAAC,MAAO,MAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,MAAO,MAAK,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,IAAI,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,MAAO,MAAK,eAAe,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,YAAY,SAAS,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,GAAI,GAAE,IAAI,KAAK,EAAE,EAAE,EAAE,IAAI,KAAK,EAAE,EAAE,EAAE,IAAI,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,GAAI,GAAE,IAAI,KAAK,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,UAAU,cAAc,UAAU,CAAC,GAAI,GAAE,GAAI,GAAE,MAAO,MAAK,mBAAmB,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,mBAAmB,SAAS,EAAE,CAAC,MAAO,GAAE,EAAE,KAAK,IAAI,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,UAAU,aAAa,UAAU,CAAC,GAAI,GAAE,GAAI,GAAE,MAAO,MAAK,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,kBAAkB,SAAS,EAAE,CAAC,MAAO,GAAE,EAAE,KAAK,IAAI,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,cAAc,SAAS,EAAE,CAAC,GAAG,AAAM,EAAE,UAAU,EAAE,CAAC,IAArB,KAAwB,AAAI,EAAE,SAAN,EAAa,MAAO,IAAI,GAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAI,GAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,MAAO,GAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,GAAI,GAAE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAO,GAAE,UAAU,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAG,GAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAG,GAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAG,GAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAG,GAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,WAAW,SAAS,EAAE,EAAE,CAAC,MAAO,AAAS,KAAT,QAAa,GAAE,GAAG,GAAI,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,SAAS,EAAE,EAAE,CAAC,MAAO,AAAS,KAAT,QAAa,GAAE,GAAG,GAAI,GAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,eAAe,SAAS,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,MAAO,IAAI,GAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,aAAa,SAAS,EAAE,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,OAAQ,GAAE,GAAG,EAAE,EAAE,EAAE,EAAE,OAAO,GAAG,EAAE,CAAC,GAAI,GAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC,MAAO,EAAC,CAAC,MAAO,EAAC,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,YAAY,EAAE,MAAO,GAAE,OAAO,EAAE,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,WAAW,EAAG,UAAU,CAAC,MAAO,IAAI,GAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GAAI,CAAC,IAAI,EAAE,EAAE,gBAAgB,kBAAkB,EAAE,EAAE,EAAE,gBAAgB,kBAAkB,CAAC,EAAE,SAAS,GAAE,EAAE,EAAE,CAAc,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,GAAI,GAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,GAAE,GAAE,GAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,AAAS,IAAT,QAAa,GAAE,IAAI,AAAS,IAAT,QAAa,GAAE,EAAE,wBAAwB,AAAS,IAAT,QAAa,GAAE,MAAM,AAAS,IAAT,QAAa,GAAE,MAAM,AAAS,IAAT,QAAa,GAAE,MAAM,AAAS,KAAT,QAAa,IAAE,IAAI,GAAI,IAAE,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,GAAE,IAAI,KAAK,GAAE,QAAQ,EAAE,GAAE,QAAQ,EAAE,GAAE,OAAO,EAAE,GAAE,OAAO,EAAE,GAAE,KAAK,EAAE,GAAE,KAAK,EAAE,GAAE,KAAK,EAAE,GAAE,gBAAgB,GAAG,GAAE,gBAAgB,GAAG,GAAE,gBAAgB,GAAG,GAAE,iCAAiC,GAAG,GAAE,4BAA4B,KAAK,GAAE,UAAU,GAAG,GAAE,SAAS,GAAG,GAAE,qBAAqB,KAAK,GAAE,qBAAqB,KAAK,GAAE,sBAAsB,KAAK,GAAE,IAAI,KAAK,GAAE,IAAI,KAAK,GAAE,IAAI,KAAK,GAAE,eAAe,GAAG,GAAE,eAAe,GAAG,GAAE,cAAc,EAAE,GAAE,cAAc,EAAE,GAAE,YAAY,GAAG,GAAE,YAAY,GAAG,GAAE,YAAY,GAAG,GAAE,0BAA0B,GAAG,GAAE,uBAAuB,GAAG,GAAE,uBAAuB,GAAG,GAAE,uBAAuB,GAAG,GAAE,wCAAwC,GAAG,GAAE,uBAAuB,GAAG,GAAE,qBAAqB,EAAE,sBAAsB,GAAE,QAAQ,KAAK,GAAE,cAAc,GAAG,GAAE,QAAQ,KAAK,GAAE,eAAe,KAAK,GAAE,gBAAgB,KAAK,GAAE,iBAAiB,GAAI,GAAE,EAAE,GAAE,YAAY,GAAG,GAAE,KAAK,GAAG,GAAG,GAAE,IAAI,EAAE,GAAE,UAAU,EAAE,GAAE,SAAS,EAAE,GAAE,qBAAqB,EAAE,GAAE,QAAQ,EAAE,GAAE,cAAc,GAAE,GAAE,UAAU,GAAE,GAAE,eAAe,GAAE,IAAI,IAAE,QAAQ,IAAG,GAAI,IAAE,GAAE,WAAW,EAAE,GAAE,aAAa,GAAG,CAAC,EAAE,MAAO,IAAE,EAAE,8BAA8B,gBAAgB,EAAC,EAAE,GAAI,GAAE,UAAU,CAAC,GAAE,UAAW,IAAE,SAAS,eAAgB,IAAE,QAAQ,GAAG,GAAE,SAAS,GAAG,AAAO,GAAE,SAAS,eAAlB,MAAiC,IAAE,MAAM,GAAE,SAAS,aAAa,GAAE,SAAS,aAAa,MAAM,AAAO,GAAE,SAAS,eAAlB,MAAiC,IAAE,MAAM,GAAE,SAAS,aAAa,GAAE,SAAS,aAAa,MAAM,AAAO,GAAE,SAAS,eAAlB,MAAiC,IAAE,MAAM,GAAE,SAAS,aAAa,GAAE,SAAS,aAAa,OAAO,GAAE,iBAAiB,gBAAgB,GAAE,iBAAiB,gBAAgB,EAAC,EAAE,GAAG,IAAI,CAAC,GAAE,YAAY,IAAG,GAAE,qBAAqB,EAAE,MAAO,IAAE,IAAK,IAAE,SAAS,GAAE,cAAc,GAAE,IAAI,EAAE,EAAE,CAAC,EAAE,GAAE,SAAS,GAAE,SAAS,QAAQ,EAAE,EAAE,aAAc,UAAU,CAAC,MAAO,IAAG,GAAI,GAAE,SAAS,mBAAmB,IAAI,CAAC,EAAE,IAAG,GAAE,yBAA0B,IAAE,eAAe,EAAE,EAAE,yBAAyB,GAAE,eAAe,EAAE,GAAE,gBAAgB,GAAI,IAAE,SAAS,EAAE,cAAc,GAAE,IAAI,EAAE,EAAE,GAAE,EAAE,EAAE,EAAE,GAAE,QAAQ,OAAO,GAAE,QAAQ,KAAK,GAAE,EAAC,EAAE,IAAI,IAAE,QAAQ,OAAO,IAAI,IAAE,eAAe,EAAE,GAAE,gBAAgB,EAAE,GAAE,CAAC,MAAO,QAAO,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,WAAW,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,SAAS,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,WAAW,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,SAAS,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,aAAa,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,WAAW,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,YAAY,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,eAAe,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,SAAS,KAAK,SAAS,aAAa,KAAK,oBAAoB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,UAAU,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,QAAQ,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,UAAU,SAAS,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,MAAM,KAAK,KAAM,MAAK,yBAAyB,KAAK,WAAW,wBAAwB,EAAE,EAAE,yBAAyB,GAAG,KAAK,MAAM,CAAC,EAAE,EAAE,WAAW,KAAK,KAAK,OAAO,GAAI,MAAK,KAAK,GAAG,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,KAAK,eAAe,EAAE,EAAE,yBAAyB,GAAI,MAAK,eAAe,GAAG,KAAK,WAAW,EAAE,EAAE,UAAU,UAAU,UAAU,CAAC,GAAG,KAAK,iBAAiB,EAAE,EAAE,yBAAyB,CAAC,GAAI,GAAE,KAAK,WAAW,GAAI,MAAK,eAAe,EAAE,EAAE,sBAAsB,KAAK,SAAS,KAAK,cAAc,KAAK,IAAI,KAAK,UAAU,KAAK,aAAa,KAAK,QAAQ,EAAE,KAAK,SAAS,KAAK,gBAAiB,MAAK,SAAS,QAAQ,EAAE,EAAE,aAAa,KAAK,cAAc,EAAE,KAAK,SAAS,mBAAmB,IAAI,KAAK,cAAc,GAAI,MAAK,SAAS,EAAE,YAAY,cAAc,KAAK,IAAI,KAAK,UAAU,KAAK,SAAS,EAAE,KAAK,aAAa,KAAK,eAAe,KAAK,gBAAgB,KAAK,QAAQ,KAAK,KAAK,QAAQ,KAAK,KAAK,UAAU,KAAK,cAAc,EAAE,KAAK,eAAgB,MAAK,QAAQ,OAAO,KAAK,eAAe,KAAK,KAAK,gBAAgB,KAAK,CAAC,EAAE,EAAE,UAAU,gCAAgC,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,cAAc,GAAG,KAAK,cAAc,GAAG,KAAK,gBAAgB,KAAK,cAAc,GAAG,KAAK,gBAAgB,KAAK,cAAc,GAAG,KAAK,gBAAgB,EAAE,EAAE,oCAAoC,EAAE,EAAE,EAAE,KAAK,qBAAqB,CAAC,EAAE,EAAE,GAAG,KAAK,gBAAgB,KAAK,cAAc,KAAK,eAAe,EAAE,GAAG,KAAK,gBAAgB,KAAK,cAAc,KAAK,eAAe,EAAE,GAAG,KAAK,eAAe,EAAE,EAAE,UAAU,4BAA4B,SAAS,EAAE,CAAC,MAAO,AAAO,KAAP,MAAU,KAAK,UAAU,EAAE,SAAS,KAAK,UAAU,EAAE,SAAS,KAAK,SAAS,EAAE,QAAQ,KAAK,SAAS,EAAE,QAAQ,KAAK,OAAO,EAAE,MAAM,KAAK,OAAO,EAAE,MAAM,KAAK,OAAO,EAAE,IAAI,EAAE,EAAE,UAAU,iBAAiB,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,GAAG,AAAS,IAAT,QAAa,GAAE,GAAG,KAAK,UAAU,KAAK,gBAAgB,KAAK,UAAU,KAAK,gBAAgB,KAAK,OAAO,IAAI,KAAK,eAAe,KAAK,SAAS,KAAK,eAAe,KAAK,OAAO,KAAK,aAAa,KAAK,OAAO,KAAK,aAAa,KAAK,OAAO,KAAK,aAAa,KAAK,kBAAkB,KAAK,wBAAwB,KAAK,kBAAkB,KAAK,wBAAwB,KAAK,kBAAkB,KAAK,wBAAwB,KAAK,mCAAmC,KAAK,wCAAwC,MAAO,MAAK,qBAAqB,KAAK,eAAe,KAAK,QAAQ,KAAK,eAAe,KAAK,QAAQ,KAAK,cAAc,KAAK,OAAO,EAAE,KAAK,cAAc,KAAK,OAAO,KAAK,YAAY,KAAK,KAAK,KAAK,YAAY,KAAK,KAAK,KAAK,YAAY,KAAK,KAAK,KAAK,uBAAuB,KAAK,gBAAgB,KAAK,uBAAuB,KAAK,gBAAgB,KAAK,uBAAuB,KAAK,gBAAgB,KAAK,wCAAwC,KAAK,iCAAiC,KAAK,sBAAsB,KAAK,sBAAuB,MAAK,qBAAqB,EAAE,EAAE,OAAO,KAAK,qBAAqB,GAAI,GAAE,EAAE,KAAK,IAAI,EAAE,EAAE,OAAO,KAAK,IAAI,EAAE,EAAE,OAAO,KAAK,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,0BAA0B,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,oBAAoB,EAAE,KAAK,iCAAkC,GAAE,EAAE,iBAAiB,CAAC,KAAK,uBAAuB,CAAC,KAAK,uBAAuB,CAAC,KAAK,uBAAuB,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,iBAAiB,KAAK,uBAAuB,KAAK,uBAAuB,KAAK,uBAAuB,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,aAAa,KAAK,cAAc,KAAK,cAAc,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,iBAAiB,KAAK,eAAe,KAAK,eAAe,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,OAAO,GAAG,cAAc,KAAK,qBAAqB,KAAK,oBAAoB,EAAE,KAAK,qBAAqB,cAAc,EAAE,EAAE,OAAO,GAAG,KAAK,oBAAoB,EAAE,KAAK,qBAAqB,cAAc,EAAE,EAAE,OAAO,GAAG,KAAK,oBAAoB,EAAE,KAAK,qBAAqB,cAAc,EAAE,EAAE,OAAO,GAAG,KAAK,oBAAoB,EAAE,KAAK,qBAAqB,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,IAAI,KAAK,qBAAqB,EAAE,IAAI,KAAK,qBAAqB,EAAE,IAAI,CAAC,GAAI,MAAK,gCAAgC,EAAE,EAAE,EAAE,KAAK,GAAG,EAAE,KAAK,gCAAgC,EAAE,EAAE,EAAE,KAAK,GAAG,EAAE,KAAK,gCAAgC,EAAE,EAAE,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,gBAAgB,KAAK,GAAG,EAAE,KAAK,IAAI,gBAAgB,KAAK,GAAG,EAAE,EAAE,EAAE,gBAAgB,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,EAAE,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,EAAE,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,oBAAoB,GAAG,GAAI,GAAE,KAAK,WAAW,MAAO,GAAG,GAAE,wBAAwB,EAAE,EAAE,0BAA2B,SAAS,EAAE,CAAC,MAAO,GAAE,WAAW,CAAC,CAAC,GAAI,KAAK,sBAAsB,KAAK,oBAAoB,EAAE,EAAE,UAAU,2BAA2B,UAAU,CAAC,GAAI,GAAE,KAAK,EAAE,KAAK,WAAW,GAAG,CAAC,EAAE,MAAO,MAAK,qBAAqB,GAAG,KAAK,UAAU,KAAK,gBAAgB,KAAK,UAAU,KAAK,gBAAgB,KAAK,SAAS,KAAK,eAAe,KAAK,SAAS,KAAK,eAAe,KAAK,kBAAkB,KAAK,uBAAuB,CAAC,GAAG,KAAK,kBAAkB,EAAE,gBAAgB,MAAO,MAAK,qBAAqB,GAAG,KAAK,4BAA4B,EAAE,sBAAsB,WAAW,MAAO,MAAK,oBAAoB,CAAC,OAAO,KAAK,sBAAuB,MAAK,qBAAqB,EAAE,EAAE,QAAQ,KAAK,uBAAwB,MAAK,sBAAsB,EAAE,EAAE,QAAQ,KAAK,eAAe,KAAK,QAAQ,KAAK,eAAe,KAAK,QAAQ,KAAK,cAAc,KAAK,OAAO,KAAK,cAAc,KAAK,OAAO,KAAK,uBAAuB,KAAK,gBAAgB,KAAK,qBAAsB,GAAE,YAAY,EAAE,EAAE,cAAc,KAAK,oBAAoB,EAAE,KAAK,qBAAqB,GAAG,KAAK,OAAO,KAAK,qBAAqB,GAAG,KAAK,OAAO,KAAK,qBAAqB,IAAI,KAAK,QAAQ,KAAK,qBAAqB,IAAI,KAAK,QAAQ,UAAW,GAAE,gBAAgB,EAAE,EAAE,gBAAgB,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,KAAK,qBAAqB,EAAE,GAAI,GAAE,EAAE,sBAAsB,KAAK,0BAA0B,EAAE,WAAW,EAAE,cAAc,KAAK,sBAAsB,KAAK,oBAAoB,EAAE,cAAc,EAAE,EAAE,cAAc,KAAK,oBAAoB,EAAE,MAAO,GAAE,wBAAwB,EAAE,EAAE,0BAA2B,SAAS,EAAE,CAAC,MAAM,AAAK,GAAE,oBAAoB,QAAQ,CAAC,IAApC,EAAqC,GAAI,KAAK,oBAAoB,EAAE,EAAE,UAAU,MAAM,UAAU,CAAC,GAAI,GAAE,KAAK,MAAO,GAAE,EAAE,MAAO,UAAU,CAAC,MAAO,IAAI,GAAE,EAAE,SAAS,EAAE,SAAS,IAAI,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,OAAO,OAAO,EAAE,SAAS,EAAE,SAAS,QAAQ,MAAM,CAAC,EAAG,IAAI,CAAC,EAAE,EAAE,UAAU,UAAU,UAAU,CAAC,GAAI,GAAE,KAAK,KAAK,EAAE,kBAAkB,EAAE,EAAE,WAAW,KAAK,KAAK,OAAO,GAAI,MAAK,KAAK,IAAI,EAAE,EAAE,WAAW,KAAK,KAAK,OAAO,GAAG,KAAK,MAAM,KAAK,MAAO,MAAK,IAAI,IAAI,GAAI,GAAE,EAAE,UAAU,UAAU,KAAK,IAAI,EAAE,MAAO,GAAI,IAAE,kBAAkB,EAAE,wBAAyB,CAAU,MAAO,MAAK,SAAtB,UAA+B,AAAU,KAAK,QAAQ,OAAO,EAAE,CAAC,IAAjC,QAAoC,GAAE,aAAa,KAAK,QAAQ,EAAE,KAAK,EAAE,KAAK,QAAQ,QAAQ,EAAE,GAAG,KAAK,KAAK,EAAE,EAAE,WAAW,KAAK,IAAI,OAAO,GAAG,KAAK,kBAAmB,YAAW,EAAE,aAAa,yBAAyB,EAAE,EAAE,0BAA0B,KAAK,OAAO,EAAE,EAAE,uBAAwB,GAAE,aAAa,EAAE,EAAE,gCAAgC,IAAI,IAAI,EAAE,QAAQ,KAAK,SAAS,EAAE,aAAa,KAAK,aAAa,KAAK,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,UAAU,aAAa,UAAU,CAAC,MAAM,SAAS,EAAE,EAAE,UAAU,QAAQ,UAAU,CAAC,EAAE,UAAU,QAAQ,KAAK,IAAI,EAAE,KAAK,iBAAiB,QAAQ,KAAK,eAAe,KAAK,KAAK,gBAAgB,IAAI,EAAE,EAAE,MAAM,SAAS,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,GAAI,GAAE,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAO,GAAE,cAAc,EAAE,oBAAoB,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,mBAAmB,EAAE,YAAY,EAAE,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,eAAe,MAAO,GAAE,mBAAmB,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,EAAE,eAAe,MAAO,MAAK,GAAI,GAAE,UAAU,CAAC,GAAG,GAAG,EAAE,UAAW,GAAE,SAAS,aAAa,KAAK,EAAE,SAAS,aAAa,KAAK,EAAE,SAAS,aAAa,MAAM,EAAE,aAAa,CAAC,GAAI,GAAE,EAAE,aAAa,GAAG,EAAE,eAAe,GAAG,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,WAAW,OAAQ,GAAE,EAAE,EAAE,EAAE,WAAW,OAAO,IAAI,CAAC,GAAI,IAAE,EAAE,WAAW,GAAG,GAAE,EAAE,EAAE,SAAS,mBAAmB,EAAE,IAAG,EAAE,WAAW,KAAK,GAAE,MAAM,EAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,MAAO,UAAU,CAAC,GAAI,GAAE,EAAE,GAAG,GAAG,EAAE,UAAW,GAAE,IAAI,EAAE,YAAY,CAAC,GAAI,IAAE,EAAE,cAAc,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,EAAE,MAAO,IAAE,mBAAmB,EAAE,WAAW,GAAE,YAAY,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAC,CAAC,GAAG,EAAE,eAAe,CAAC,GAAI,IAAE,KAAK,GAAG,EAAE,QAAQ,GAAG,EAAE,iBAAiB,OAAQ,IAAE,EAAE,GAAE,EAAE,iBAAiB,OAAO,KAAI,CAAC,GAAI,IAAE,EAAE,iBAAiB,IAAG,GAAG,GAAE,OAAO,EAAE,KAAK,MAAO,IAAE,WAAW,MAAM,AAAC,IAAE,EAAE,2BAA2B,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,GAAG,mBAAmB,EAAE,WAAW,MAAO,KAAI,EAAC,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,uBAAuB,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,QAAQ,OAAO,CAAC,MAAM,CAAC,GAAI,IAAE,OAAO,GAAE,EAAE,MAAM,EAAE,KAAK,QAAQ,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,KAAM,GAAE,EAAE,WAAW,EAAE,IAAI,OAAO,GAAG,EAAE,uBAAuB,EAAE,MAAO,IAAE,EAAE,KAAK,EAAE,GAAI,GAAE,GAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,OAAO,CAAC,CAAC,CAAC,MAAO,EAAC,EAAG,EAAE,CAAC,EAAE,MAAO,EAAC,EAAE,EAAE,uBAAuB,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,CAAC,MAAO,AAAS,KAAT,QAAa,GAAE,EAAE,wBAAwB,AAAS,IAAT,QAAa,GAAE,MAAM,AAAS,IAAT,QAAa,GAAE,MAAM,AAAS,KAAT,QAAa,IAAE,EAAE,EAAE,oBAAoB,GAAI,GAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAC,CAAC,EAAE,EAAE,mBAAmB,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,GAAE,CAAC,MAAO,AAAS,KAAT,QAAa,GAAE,IAAI,AAAS,IAAT,QAAa,GAAE,IAAI,AAAS,IAAT,QAAa,GAAE,IAAI,AAAS,IAAT,QAAa,GAAE,EAAE,wBAAwB,AAAS,IAAT,QAAa,GAAE,MAAM,AAAS,KAAT,QAAa,IAAE,MAAM,AAAS,KAAT,QAAa,IAAE,EAAE,EAAE,oBAAoB,AAAU,EAAE,OAAO,EAAE,CAAC,IAAtB,SAA0B,GAAE,QAAQ,GAAG,GAAI,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,EAAE,EAAE,EAAC,CAAC,EAAE,EAAE,iBAAiB,GAAG,EAAE,sBAAsB,GAAG,EAAE,mBAAmB,SAAS,EAAE,EAAE,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,aAAa,CAAC,EAAE,EAAE,cAAc,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,eAAe,CAAC,EAAE,EAAE,2BAA2B,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,qBAAqB,CAAC,EAAE,EAAE,qBAAqB,EAAE,EAAE,6BAA6B,EAAE,0BAA0B,EAAE,EAAE,kCAAkC,EAAE,sBAAsB,EAAE,EAAE,8BAA8B,EAAE,yBAAyB,EAAE,EAAE,iCAAiC,EAAE,uBAAuB,EAAE,EAAE,+BAA+B,EAAE,wBAAwB,EAAE,EAAE,gCAAgC,EAAE,2BAA2B,EAAE,EAAE,mCAAmC,EAAE,0BAA0B,EAAE,EAAE,kCAAkC,EAAE,yBAAyB,EAAE,EAAE,iCAAiC,EAAE,eAAe,EAAE,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,EAAE,kCAAkC,EAAE,yBAAyB,EAAE,EAAE,iCAAiC,EAAE,cAAc,EAAE,EAAE,sBAAsB,EAAE,eAAe,EAAE,EAAE,uBAAuB,EAAE,cAAc,EAAE,EAAE,sBAAsB,EAAE,eAAe,EAAE,EAAE,uBAAuB,EAAE,YAAY,EAAE,EAAE,oBAAoB,EAAE,WAAW,EAAE,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,EAAE,wBAAwB,EAAE,YAAY,EAAE,EAAE,oBAAoB,EAAE,cAAc,EAAE,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,EAAE,mCAAmC,EAAE,oCAAoC,EAAE,EAAE,4CAA4C,EAAE,kBAAkB,EAAE,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,EAAE,2BAA2B,EAAE,sBAAsB,GAAG,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,MAAM,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,UAAU,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,UAAU,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,SAAS,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,SAAS,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,kBAAkB,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,kBAAkB,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,kBAAkB,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,mCAAmC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,aAAa,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,gBAAgB,mBAAmB,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,GAAE,EAAE,EAAE,CAAc,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,GAAI,GAAE,UAAU,CAAC,YAAY,EAAE,MAAO,GAAE,SAAS,SAAS,EAAE,CAAC,MAAO,MAAK,iBAAiB,KAAK,gBAAgB,GAAG,KAAK,gBAAgB,GAAG,IAAI,EAAE,EAAE,gBAAgB,GAAG,CAAC,GAAG,EAAE,SAAS,GAAE,EAAE,EAAE,CAAc,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,GAAI,GAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,UAAU,CAAC,YAAY,EAAE,MAAO,QAAO,eAAe,EAAE,UAAU,CAAC,IAAI,UAAU,CAAC,MAAO,GAAE,EAAE,OAAO,EAAE,IAAI,SAAS,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,uBAAuB,CAAC,IAAI,UAAU,CAAC,MAAO,GAAE,EAAE,oBAAoB,EAAE,IAAI,SAAS,EAAE,CAAC,EAAE,EAAE,qBAAqB,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,eAAe,CAAC,IAAI,UAAU,CAAC,MAAO,GAAE,EAAE,YAAY,EAAE,IAAI,SAAS,EAAE,CAAC,EAAE,EAAE,aAAa,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,qBAAqB,CAAC,IAAI,UAAU,CAAC,MAAO,GAAE,EAAE,kBAAkB,EAAE,IAAI,SAAS,EAAE,CAAC,EAAE,EAAE,mBAAmB,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,4BAA4B,CAAC,IAAI,UAAU,CAAC,MAAO,GAAE,EAAE,yBAAyB,EAAE,IAAI,SAAS,EAAE,CAAC,EAAE,EAAE,0BAA0B,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,kBAAkB,CAAC,IAAI,UAAU,CAAC,MAAO,GAAE,EAAE,eAAe,EAAE,IAAI,SAAS,EAAE,CAAC,EAAE,EAAE,gBAAgB,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,WAAW,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,EAAI,OAAK,IAAI,CAAC,EAAE,EAAE,EAAE,GAAI,MAAK,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,SAAS,EAAE,EAAE,EAAE,CAAC,MAAO,GAAG,GAAE,GAAG,EAAE,CAAC,EAAE,EAAE,YAAY,SAAS,EAAE,CAAC,MAAO,GAAE,EAAE,YAAY,CAAC,CAAC,EAAE,EAAE,MAAM,SAAS,EAAE,EAAE,EAAE,CAAC,MAAO,GAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,UAAU,MAAM,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,aAAa,SAAS,EAAE,EAAE,EAAE,CAAC,MAAO,OAAM,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,UAAU,MAAM,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,aAAa,SAAS,EAAE,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,EAAE,EAAE,gBAAgB,SAAS,EAAE,CAAC,GAAI,GAAE,EAAE,EAAG,IAAG,QAAQ,EAAE,GAAG,MAAO,KAAI,CAAC,EAAE,EAAE,WAAW,SAAS,EAAE,CAAC,MAAO,MAAK,OAAO,KAAK,OAAO,CAAC,EAAE,EAAE,eAAe,GAAG,CAAC,EAAE,EAAE,YAAY,SAAS,EAAE,CAAC,GAAI,GAAE,EAAE,YAAY,GAAG,EAAE,MAAO,GAAE,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,cAAc,SAAS,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,GAAI,GAAE,EAAE,YAAY,GAAG,EAAE,MAAO,GAAE,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,SAAS,EAAE,CAAC,MAAO,KAAI,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,SAAS,EAAE,CAAC,MAAO,GAAE,KAAK,GAAG,GAAG,EAAE,EAAE,UAAU,SAAS,EAAE,EAAE,CAAC,MAAM,AAAK,KAAL,IAAQ,AAAS,IAAT,QAAY,AAAM,GAAN,KAAQ,MAAM,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,iBAAiB,SAAS,EAAE,CAAC,GAAI,GAAE,UAAU,MAAO,GAAE,EAAE,uBAAuB,CAAC,OAAO,cAAc,EAAE,EAAE,wBAAwB,CAAC,UAAU,gBAAiB,GAAE,SAAS,CAAC,EAAE,eAAe,EAAE,QAAQ,UAAU,cAAe,WAAW,GAAE,SAAS,CAAC,EAAE,EAAE,gBAAgB,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,SAAS,EAAE,CAAC,MAAO,GAAE,EAAE,QAAQ,MAAM,KAAK,CAAC,EAAE,OAAO,eAAe,EAAE,gBAAgB,CAAC,IAAI,UAAU,CAAC,MAAO,GAAE,EAAE,aAAa,EAAE,IAAI,SAAS,EAAE,CAAC,EAAE,EAAE,cAAc,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,MAAO,GAAE,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,MAAO,GAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,cAAc,SAAS,EAAE,EAAE,CAAC,MAAO,AAAS,KAAT,QAAa,GAAE,IAAI,GAAI,SAAS,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,SAAS,EAAG,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,EAAG,OAAO,OAAO,EAAG,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAG,EAAG,EAAE,EAAE,WAAW,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,sBAAsB,CAAC,GAAI,GAAE,SAAS,qBAAqB,MAAM,EAAE,GAAG,EAAE,SAAS,cAAc,QAAQ,EAAE,EAAE,aAAa,OAAO,iBAAiB,EAAE,EAAE,aAAa,MAAM,CAAC,EAAE,GAAI,GAAE,GAAG,GAAG,EAAE,OAAO,UAAU,CAAC,GAAG,GAAG,EAAE,EAAE,QAAQ,SAAS,EAAE,CAAC,GAAG,EAAE,0BAA0B,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,gBAAgB,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,MAAO,IAAI,SAAS,SAAS,EAAE,EAAE,CAAC,EAAE,WAAW,EAAG,UAAU,CAAC,GAAG,EAAI,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAG,EAAG,EAAE,EAAE,kBAAkB,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,GAAI,YAAW,EAAE,CAAC,qBAAqB,GAAI,GAAE,EAAE,MAAM,UAAU,CAAC,MAAO,GAAE,OAAO,CAAC,EAAE,MAAO,GAAE,UAAU,SAAS,EAAE,CAAC,EAAE,qBAAqB,gBAAgB,CAAC,CAAC,EAAE,EAAE,OAAO,SAAS,EAAE,CAAC,EAAE,EAAE,OAAO,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,MAAO,GAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,SAAS,EAAE,CAAC,GAAI,GAAE,GAAI,MAAK,CAAC,CAAC,CAAC,EAAE,MAAO,QAAO,KAAK,OAAO,WAAW,gBAAgB,CAAC,CAAC,EAAE,EAAE,OAAO,SAAS,EAAE,EAAE,CAAC,MAAO,AAAS,KAAT,QAAa,GAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,EAAE,EAAE,SAAS,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,SAAS,EAAE,CAAC,OAAQ,KAAK,GAAE,GAAG,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,EAAE,sBAAsB,SAAS,EAAE,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,GAAI,GAAE,EAAE,GAAG,EAAE,iBAAiB,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,GAAG,CAAC,OAAO,QAAQ,OAAO,OAAO,iBAAiB,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,MAAC,EAAU,CAAC,EAAE,EAAE,wBAAwB,SAAS,EAAE,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,GAAI,GAAE,EAAE,GAAG,EAAE,oBAAoB,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,oBAAoB,EAAE,KAAK,EAAE,OAAO,CAAC,MAAC,EAAU,CAAC,EAAE,EAAE,gBAAgB,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,aAAa,OAAQ,GAAE,EAAE,EAAE,GAAE,EAAE,EAAE,GAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,EAAE,GAAE,EAAE,GAAE,GAAE,KAAI,OAAQ,IAAE,EAAE,GAAE,EAAE,KAAI,CAAC,GAAI,IAAE,GAAE,GAAE,EAAE,GAAE,GAAG,GAAE,GAAE,GAAG,EAAE,EAAE,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,CAAC,CAAC,EAAE,mBAAoB,GAAE,kBAAkB,SAAS,cAAc,QAAQ,GAAG,EAAE,kBAAkB,MAAM,EAAE,EAAE,kBAAkB,OAAO,EAAE,GAAI,GAAE,EAAE,kBAAkB,WAAW,IAAI,EAAE,GAAG,EAAE,CAAC,GAAI,GAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,EAAC,EAAE,EAAE,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE,2BAA2B,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,SAAS,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,aAAa,EAAE,QAAS,GAAE,OAAO,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,WAAY,UAAU,CAAC,OAAQ,IAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,EAAE,EAAE,GAAE,GAAE,OAAO,GAAE,GAAI,YAAW,EAAC,EAAE,GAAE,EAAE,GAAE,GAAE,KAAI,GAAE,IAAG,GAAE,WAAW,EAAC,EAAE,EAAE,GAAI,MAAK,CAAC,EAAC,CAAC,CAAC,CAAC,EAAG,GAAG,EAAE,OAAQ,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,CAAC,EAAE,EAAE,2BAA2B,SAAS,EAAE,EAAE,EAAE,CAAC,AAAC,AAAS,IAAT,QAAa,GAAE,aAAa,EAAG,EAAE,EAAE,kBAAkB,UAAU,CAAC,CAAC,EAAE,KAAK,OAAO,EAAE,kBAAmB,SAAS,EAAE,CAAC,GAAG,YAAa,UAAS,cAAc,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAI,GAAE,GAAI,MAAK,EAAG,GAAE,cAAc,IAAK,GAAE,WAAW,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,IAAI,EAAE,WAAW,IAAK,KAAI,EAAE,cAAc,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,GAAI,GAAE,IAAI,gBAAgB,CAAC,EAAE,GAAE,OAAO,KAAK,EAAE,EAAE,GAAG,CAAC,GAAE,OAAO,GAAI,IAAE,GAAE,SAAS,cAAc,KAAK,EAAE,GAAE,OAAO,UAAU,CAAC,IAAI,gBAAgB,CAAC,CAAC,EAAE,GAAE,IAAI,EAAE,GAAE,SAAS,KAAK,YAAY,EAAC,CAAC,CAAC,EAAG,CAAC,CAAC,EAAE,EAAE,SAAS,SAAS,EAAE,EAAE,CAAC,GAAG,WAAW,UAAU,WAAW,UAAU,WAAW,EAAE,CAAC,MAAM,CAAC,GAAI,GAAE,OAAO,IAAI,gBAAgB,CAAC,EAAE,EAAE,SAAS,cAAc,GAAG,EAAE,SAAS,KAAK,YAAY,CAAC,EAAE,EAAE,MAAM,QAAQ,OAAO,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,iBAAiB,QAAS,UAAU,CAAC,EAAE,eAAe,EAAE,cAAc,YAAY,CAAC,CAAC,GAAI,EAAE,QAAQ,OAAO,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,iCAAiC,SAAS,EAAE,CAAC,MAAM,AAAW,OAAO,GAAE,IAApB,UAAuB,EAAE,GAAG,AAAW,MAAO,GAAE,IAApB,WAAwB,EAAE,EAAE,EAAE,EAAE,iBAAiB,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAkC,GAAE,EAAE,WAAW,iBAAiB,CAAC,EAAE,EAAE,sBAAsB,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,KAAkC,GAAE,EAAE,WAAW,iBAAiB,CAAC,EAAE,EAAE,kCAAkC,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,CAAC,KAAuE,GAAE,EAAE,WAAW,iBAAiB,CAAC,EAAE,EAAE,uCAAuC,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAuE,GAAE,EAAE,WAAW,iBAAiB,CAAC,EAAE,EAAE,SAAS,UAAU,CAAC,MAAO,GAAE,EAAE,UAAU,EAAE,EAAE,SAAS,SAAS,EAAE,CAAC,MAAM,CAAE,GAAE,OAAO,IAAI,AAAU,EAAE,OAAO,EAAE,CAAC,IAAtB,OAAuB,EAAE,EAAE,aAAa,SAAS,EAAE,CAAC,OAAQ,GAAE,KAAK,EAAE,MAAM,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,GAAI,YAAW,GAAI,aAAY,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,MAAO,GAAE,MAAM,EAAE,EAAE,eAAe,SAAS,EAAE,CAAC,GAAI,GAAE,SAAS,cAAc,GAAG,EAAE,MAAO,GAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,eAAe,EAAE,cAAc,CAAC,IAAI,UAAU,CAAC,MAAO,GAAE,EAAE,WAAW,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,IAAI,SAAS,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,KAAK,SAAS,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,MAAM,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,eAAe,EAAE,WAAW,CAAC,IAAI,UAAU,CAAC,MAAO,GAAE,EAAE,QAAQ,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,cAAc,UAAU,CAAC,EAAE,EAAE,eAAe,EAAE,OAAO,eAAe,EAAE,YAAY,CAAC,IAAI,SAAS,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,sBAAsB,CAAC,IAAI,SAAS,EAAE,CAAC,MAAO,GAAE,EAAE,+BAA+B,EAAE,4BAA6B,GAAE,wBAAwB,EAAE,eAAe,IAAK,GAAE,sBAAsB,EAAE,eAAgB,GAAE,EAAE,8BAA8B,EAAE,2BAA4B,GAAE,wBAAwB,EAAE,yBAAyB,IAAK,GAAE,sBAAsB,EAAE,yBAA0B,GAAE,wBAAwB,EAAE,iCAAiC,IAAK,GAAE,sBAAsB,EAAE,gCAAgC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,iCAAiC,SAAS,EAAE,EAAE,GAAG,EAAE,+BAA+B,SAAS,EAAE,EAAE,GAAG,EAAE,eAAe,SAAS,EAAE,EAAE,CAAC,GAAG,AAAS,IAAT,QAAa,GAAE,IAAI,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,sBAAsB,OAAO,EAAE,aAAa,OAAO,WAAW,CAAC,GAAG,EAAE,aAAa,MAAM,EAAE,aAAa,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,aAAa,SAAS,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,GAAG,EAAE,aAAa,MAAO,GAAE,aAAa,KAAK,EAAE,MAAM,EAAE,EAAE,aAAa,QAAQ,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,yBAAyB,SAAS,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,GAAI,GAAE,eAAe,EAAE,CAAC,EAAE,QAAQ,MAAM,QAAQ,KAAK,CAAC,EAAE,EAAE,EAAE,uBAAuB,SAAS,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,GAAI,GAAE,aAAa,EAAE,CAAC,EAAE,QAAQ,QAAQ,CAAC,EAAE,EAAE,OAAO,eAAe,EAAE,MAAM,CAAC,IAAI,UAAU,CAAC,MAAO,GAAE,EAAE,GAAG,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,aAAa,SAAS,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,GAAI,GAAE,KAAK,MAAG,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,eAAuB,aAAa,SAAO,GAAG,GAAE,EAAE,OAAO,eAAe,CAAC,GAAG,YAAY,kBAAiB,GAAI,GAAE,MAAO,KAAU,CAAC,EAAE,EAAE,MAAM,SAAS,EAAE,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,GAAI,GAAE,EAAE,GAAG,GAAG,EAAE,CAAC,EAAE,MAAO,EAAC,CAAC,MAAO,KAAI,EAAE,EAAE,iBAAiB,SAAS,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,GAAI,GAAE,KAAK,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,mBAAmB,CAAC,GAAG,YAAa,QAAO,CAAC,GAAI,GAAE,EAAE,EAAE,OAAO,eAAe,CAAC,EAAE,EAAE,EAAE,YAAY,iBAAiB,EAAE,EAAE,YAAY,iBAAiB,CAAC,GAAI,GAAE,MAAO,GAAE,CAAC,MAAO,GAAG,CAAM,GAAN,KAAQ,EAAE,IAAI,IAAI,EAAE,IAAI,EAAE,EAAE,WAAW,SAAS,EAAE,CAAC,MAAO,IAAI,SAAS,SAAS,EAAE,CAAC,WAAY,UAAU,CAAC,GAAG,EAAG,CAAC,CAAC,EAAG,EAAE,EAAE,SAAS,UAAU,CAAC,MAAM,iCAAiC,KAAK,UAAU,SAAS,CAAC,EAAE,EAAE,wBAAwB,GAAG,EAAE,qBAAqB,EAAE,EAAE,qBAAqB,EAAE,eAAe,GAAI,cAAa,CAAC,EAAE,EAAE,kBAAkB,EAAE,EAAE,kBAAkB,EAAE,aAAa,EAAE,EAAE,aAAa,EAAE,gBAAgB,EAAE,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,EAAE,gBAAgB,EAAE,cAAc,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,EAAE,YAAY,EAAE,oBAAoB,EAAE,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,EAAE,4BAA4B,EAAE,EAAE,2BAA2B,EAAE,EAAE,wBAAwB,EAAE,iCAAiC,EAAE,sBAAsB,EAAE,+BAA+B,CAAC,IAAI,WAAW,EAAE,EAAE,CAAC,MAAO,UAAS,EAAE,CAAC,EAAE,iBAAiB,EAAE,EAAE,kBAAwB,GAAI,IAAI,CAAC,CAAC,GAAI,GAAE,UAAU,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,GAAG,KAAK,WAAW,EAAE,KAAK,MAAM,EAAE,EAAE,KAAK,MAAM,GAAG,KAAK,IAAI,EAAE,KAAK,iBAAiB,CAAC,CAAC,MAAO,GAAE,UAAU,YAAY,UAAU,CAAC,KAAK,OAAQ,MAAK,MAAM,EAAE,KAAK,WAAY,GAAE,KAAK,MAAM,KAAK,IAAI,IAAI,GAAG,KAAK,YAAY,EAAE,EAAE,UAAU,UAAU,UAAU,CAAC,KAAK,MAAM,GAAG,KAAK,kBAAkB,EAAE,EAAE,IAAI,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,GAAG,GAAI,GAAE,GAAI,GAAE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAO,GAAE,cAAc,CAAC,EAAE,EAAE,iBAAiB,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,MAAO,AAAS,KAAT,QAAa,GAAE,GAAG,EAAE,IAAI,KAAK,KAAK,EAAE,CAAC,EAAG,SAAS,EAAE,CAAC,GAAG,IAAI,EAAE,YAAY,WAAY,UAAU,CAAC,OAAQ,IAAE,EAAE,GAAE,EAAE,EAAE,GAAE,CAAC,GAAI,IAAE,EAAE,MAAM,EAAE,GAAE,GAAG,IAAG,EAAE,MAAM,GAAG,EAAE,EAAC,EAAE,GAAG,IAAI,CAAC,EAAE,YAAY,KAAK,CAAC,CAAC,EAAE,aAAa,EAAG,CAAC,CAAC,EAAG,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,gBAAgB,iuHAAiuH,EAAE,EAAE,OAAO,EAAE,SAAS,GAAE,EAAE,EAAE,CAAc,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,GAAI,GAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAG,GAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,GAAI,GAAE,EAAE,KAAK,KAAK,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,EAAE,qBAAqB,GAAG,EAAE,qBAAqB,GAAG,EAAE,OAAO,GAAI,OAAM,EAAE,0BAA0B,GAAI,GAAE,EAAE,EAAE,cAAc,GAAI,OAAM,EAAE,cAAc,GAAG,EAAE,mBAAmB,GAAI,GAAE,EAAE,EAAE,uBAAuB,GAAI,GAAE,EAAE,EAAE,wBAAwB,GAAI,GAAE,EAAE,EAAE,6BAA6B,GAAI,GAAE,EAAE,EAAE,uBAAuB,GAAI,GAAE,EAAE,EAAE,8BAA8B,KAAK,EAAE,qBAAqB,GAAI,GAAE,EAAE,EAAE,oCAAoC,GAAI,GAAE,EAAE,EAAE,mCAAmC,GAAI,GAAE,EAAE,EAAE,uBAAuB,GAAG,EAAE,kBAAkB,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,WAAW,EAAE,EAAE,WAAW,GAAI,GAAE,EAAE,EAAE,eAAe,EAAE,EAAE,sCAAsC,GAAG,EAAE,oBAAoB,GAAI,GAAE,EAAE,EAAE,UAAU,KAAK,CAAC,EAAE,CAAC,EAAE,MAAO,GAAE,GAAG,EAAE,EAAE,iBAAiB,EAAE,WAAW,CAAC,GAAI,GAAE,EAAE,GAAG,EAAE,eAAe,UAAU,CAAC,EAAE,wBAAwB,gBAAgB,CAAC,CAAC,EAAE,EAAE,cAAc,UAAU,CAAC,EAAE,uBAAuB,gBAAgB,CAAC,CAAC,EAAE,EAAE,iBAAiB,QAAQ,EAAE,cAAc,EAAE,EAAE,iBAAiB,OAAO,EAAE,aAAa,EAAE,EAAE,QAAQ,UAAU,CAAC,EAAE,uCAAuC,EAAE,oBAAoB,UAAU,EAAE,oBAAoB,EAAE,EAAE,EAAE,SAAS,UAAU,CAAC,EAAE,uCAAuC,EAAE,oBAAoB,SAAS,EAAE,oBAAoB,EAAE,EAAE,EAAE,oBAAoB,SAAS,EAAE,CAAC,EAAE,6BAA6B,gBAAgB,CAAC,CAAC,EAAE,EAAE,iBAAiB,aAAa,EAAE,mBAAmB,EAAE,EAAE,EAAE,sBAAsB,CAAC,GAAI,GAAE,EAAE,gBAAgB,EAAE,iBAAiB,OAAO,EAAE,OAAO,EAAE,EAAE,iBAAiB,QAAQ,EAAE,QAAQ,EAAE,GAAI,GAAE,SAAS,EAAE,oBAAoB,UAAU,CAAC,AAAS,EAAE,aAAX,OAAsB,EAAE,aAAa,EAAE,WAAW,AAAS,EAAE,gBAAX,OAAyB,EAAE,aAAa,EAAE,cAAc,AAAS,EAAE,qBAAX,OAA8B,EAAE,aAAa,EAAE,mBAAmB,AAAS,EAAE,iBAAX,QAA4B,GAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,uBAAuB,GAAG,EAAE,oBAAoB,CAAC,CAAC,EAAE,SAAS,iBAAiB,mBAAmB,EAAE,oBAAoB,EAAE,EAAE,SAAS,iBAAiB,sBAAsB,EAAE,oBAAoB,EAAE,EAAE,SAAS,iBAAiB,yBAAyB,EAAE,oBAAoB,EAAE,EAAE,SAAS,iBAAiB,qBAAqB,EAAE,oBAAoB,EAAE,EAAE,EAAE,qBAAqB,UAAU,CAAC,EAAE,cAAc,EAAE,wBAAwB,GAAG,EAAE,2BAA2B,GAAG,EAAE,uBAAuB,GAAG,EAAE,qBAAqB,CAAC,EAAE,SAAS,iBAAiB,oBAAoB,EAAE,qBAAqB,EAAE,EAAE,SAAS,iBAAiB,sBAAsB,EAAE,qBAAqB,EAAE,EAAE,SAAS,iBAAiB,uBAAuB,EAAE,qBAAqB,EAAE,EAAE,SAAS,iBAAiB,0BAA0B,EAAE,qBAAqB,EAAE,EAAE,CAAC,EAAE,aAAa,EAAE,aAAa,EAAE,oBAAqB,GAAE,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,CAAC,EAAE,mBAAmB,EAAE,qBAAqB,AAAS,EAAE,yBAAX,OAAkC,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,uBAAuB,CAAC,CAAC,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC,MAAO,GAAE,sBAAsB,EAAE,iBAAiB,EAAE,YAAY,CAAC,CAAC,MAAO,QAAO,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,aAAa,CAAC,IAAI,UAAU,CAAC,MAAO,GAAE,EAAE,UAAU,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,CAAC,IAAI,UAAU,CAAC,MAAO,GAAE,EAAE,OAAO,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,YAAY,CAAC,IAAI,UAAU,CAAC,MAAO,GAAE,EAAE,SAAS,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,oBAAoB,CAAC,IAAI,UAAU,CAAC,MAAO,GAAE,EAAE,iBAAiB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,mBAAmB,CAAC,IAAI,UAAU,CAAC,MAAO,GAAE,EAAE,gBAAgB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,wBAAwB,SAAS,EAAE,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,EAAE,UAAU,OAAO,IAAI,OAAQ,GAAE,EAAE,UAAU,GAAG,EAAE,EAAE,EAAE,EAAE,OAAO,OAAO,IAAI,EAAE,OAAO,GAAG,wBAAwB,EAAE,CAAC,CAAC,EAAE,EAAE,4BAA4B,SAAS,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,eAAe,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,oCAAoC,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,0BAA0B,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,qBAAqB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,mBAAmB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,gBAAgB,UAAU,CAAC,MAAO,MAAK,gBAAgB,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,GAAI,GAAE,EAAE,SAAS,MAAO,MAAK,eAAe,CAAC,EAAE,EAAE,MAAO,MAAK,gBAAgB,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,UAAU,qBAAqB,UAAU,CAAC,MAAO,MAAK,eAAe,EAAE,EAAE,KAAK,gBAAgB,EAAE,CAAC,EAAE,EAAE,UAAU,6BAA6B,UAAU,CAAC,MAAO,MAAK,iBAAiB,KAAK,iBAAiB,wBAAwB,IAAI,EAAE,EAAE,UAAU,0BAA0B,UAAU,CAAC,MAAO,MAAK,iBAAiB,KAAK,kBAAkB,wBAAwB,IAAI,EAAE,EAAE,UAAU,wBAAwB,UAAU,CAAC,MAAO,MAAK,sBAAsB,EAAE,EAAE,UAAU,oBAAoB,UAAU,CAAC,MAAO,MAAK,iBAAiB,EAAE,EAAE,UAAU,YAAY,UAAU,CAAC,MAAO,KAAI,KAAK,SAAS,EAAE,EAAE,UAAU,0BAA0B,SAAS,EAAE,EAAE,CAAC,GAAG,AAAS,IAAT,QAAa,GAAE,IAAI,EAAE,gBAAgB,CAAC,GAAI,GAAE,KAAK,IAAI,KAAK,qBAAqB,EAAE,iBAAiB,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE,gBAAgB,EAAE,GAAG,KAAK,qBAAqB,EAAE,iBAAiB,IAAI,CAAC,CAAC,EAAE,EAAE,UAAU,SAAS,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,GAAG,AAAS,IAAT,QAAa,GAAE,IAAK,MAAK,mBAAmB,OAAO,GAAG,IAAK,MAAK,mBAAmB,KAAK,GAAG,GAAI,GAAE,KAAK,cAAc,KAAK,IAAI,KAAK,KAAK,IAAI,MAAM,AAAC,MAAK,mBAAmB,WAAW,GAAG,IAAK,MAAK,mBAAmB,SAAS,GAAG,KAAK,WAAW,CAAC,EAAE,GAAI,GAAE,EAAE,KAAK,IAAI,GAAG,KAAK,IAAI,IAAI,AAAC,MAAK,mBAAmB,YAAY,GAAG,IAAK,MAAK,mBAAmB,UAAU,EAAE,EAAE,EAAE,UAAU,WAAW,SAAS,EAAE,CAAC,KAAK,mBAAmB,QAAQ,CAAC,EAAE,EAAE,UAAU,WAAW,UAAU,CAAC,MAAO,MAAK,mBAAmB,OAAO,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,CAAC,KAAK,mBAAmB,UAAU,CAAC,EAAE,EAAE,UAAU,cAAc,UAAU,CAAC,MAAO,MAAK,mBAAmB,SAAS,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,CAAC,KAAK,mBAAmB,UAAU,CAAC,EAAE,EAAE,UAAU,iBAAiB,UAAU,CAAC,MAAO,MAAK,cAAc,WAAW,EAAE,EAAE,UAAU,iBAAiB,SAAS,EAAE,CAAC,KAAK,cAAc,YAAY,CAAC,EAAE,EAAE,UAAU,eAAe,UAAU,CAAC,MAAO,MAAK,cAAc,WAAW,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,CAAC,KAAK,cAAc,YAAY,CAAC,EAAE,EAAE,UAAU,mBAAmB,UAAU,CAAC,MAAO,MAAK,cAAc,WAAW,EAAE,EAAE,UAAU,4BAA4B,UAAU,CAAC,MAAO,MAAK,cAAc,cAAc,EAAE,EAAE,UAAU,uBAAuB,UAAU,CAAC,MAAO,MAAK,cAAc,eAAe,EAAE,EAAE,UAAU,mBAAmB,SAAS,EAAE,CAAC,KAAK,cAAc,YAAY,CAAC,EAAE,EAAE,UAAU,4BAA4B,SAAS,EAAE,CAAC,KAAK,cAAc,eAAe,CAAC,EAAE,EAAE,UAAU,uBAAuB,SAAS,EAAE,CAAC,KAAK,cAAc,gBAAgB,CAAC,EAAE,EAAE,UAAU,wBAAwB,UAAU,CAAC,MAAO,MAAK,cAAc,oBAAoB,EAAE,EAAE,UAAU,6BAA6B,UAAU,CAAC,MAAO,MAAK,cAAc,kBAAkB,EAAE,EAAE,UAAU,wBAAwB,UAAU,CAAC,MAAO,MAAK,cAAc,yBAAyB,EAAE,EAAE,UAAU,wBAAwB,SAAS,EAAE,CAAC,KAAK,cAAc,qBAAqB,CAAC,EAAE,EAAE,UAAU,6BAA6B,SAAS,EAAE,CAAC,KAAK,cAAc,mBAAmB,CAAC,EAAE,EAAE,UAAU,wBAAwB,SAAS,EAAE,CAAC,KAAK,cAAc,0BAA0B,CAAC,EAAE,EAAE,UAAU,kBAAkB,SAAS,EAAE,CAAC,EAAE,KAAK,IAAI,OAAO,KAAK,IAAI,MAAM,EAAE,KAAK,IAAI,QAAQ,KAAK,IAAI,MAAM,CAAC,EAAE,EAAE,UAAU,mBAAmB,SAAS,EAAE,CAAC,EAAE,KAAK,IAAI,QAAQ,KAAK,IAAI,kBAAkB,EAAE,KAAK,IAAI,OAAO,KAAK,IAAI,kBAAkB,CAAC,EAAE,EAAE,UAAU,iBAAiB,UAAU,CAAC,MAAO,MAAK,mBAAmB,SAAS,EAAE,EAAE,UAAU,iBAAiB,SAAS,EAAE,CAAC,KAAK,mBAAmB,UAAU,CAAC,EAAE,EAAE,UAAU,0BAA0B,UAAU,CAAC,KAAK,mBAAmB,UAAU,KAAK,IAAI,OAAO,EAAE,EAAE,UAAU,iCAAiC,UAAU,CAAC,KAAK,mBAAmB,UAAU,KAAK,IAAI,MAAM,EAAE,EAAE,UAAU,uBAAuB,UAAU,CAAC,KAAK,mBAAmB,UAAU,KAAK,IAAI,IAAI,EAAE,EAAE,UAAU,8BAA8B,UAAU,CAAC,KAAK,mBAAmB,UAAU,KAAK,IAAI,MAAM,EAAE,EAAE,UAAU,kBAAkB,UAAU,CAAC,KAAK,qBAAqB,KAAK,mBAAmB,KAAK,uBAAuB,KAAK,qBAAqB,KAAK,mBAAmB,KAAK,iBAAiB,KAAK,4BAA4B,KAAK,0BAA0B,KAAK,4BAA4B,KAAK,0BAA0B,KAAK,iCAAiC,KAAK,+BAA+B,KAAK,wBAAwB,KAAK,6BAA6B,EAAE,EAAE,UAAU,oBAAoB,UAAU,CAAC,KAAK,mBAAmB,KAAK,sBAAsB,EAAE,KAAK,eAAe,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,KAAK,oBAAoB,EAAE,KAAK,wBAAwB,KAAK,2BAA2B,EAAE,KAAK,wBAAwB,KAAK,2BAA2B,EAAE,KAAK,6BAA6B,KAAK,gCAAgC,EAAE,KAAK,4BAA4B,KAAK,uBAAuB,CAAC,EAAE,EAAE,UAAU,kBAAkB,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,gBAAgB,MAAO,MAAK,gBAAgB,KAAK,KAAK,UAAU,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,aAAa,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,cAAc,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,MAAM,EAAE,GAAG,GAAG,EAAE,EAAE,KAAK,gBAAgB,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,eAAe,UAAU,CAAC,GAAI,GAAE,KAAK,IAAI,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,EAAE,UAAU,gBAAgB,UAAU,CAAC,KAAK,WAAW,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,UAAU,UAAU,CAAC,KAAM,GAAE,EAAE,WAAW,aAAa,CAAC,EAAE,EAAE,UAAU,oBAAoB,UAAU,GAAG,EAAE,UAAU,iBAAiB,SAAS,EAAE,EAAE,GAAG,EAAE,UAAU,eAAe,UAAU,GAAG,EAAE,UAAU,UAAU,UAAU,GAAG,EAAE,UAAU,eAAe,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,UAAU,gBAAgB,UAAU,GAAG,EAAE,UAAU,eAAe,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,MAAO,IAAI,SAAS,SAAS,EAAE,EAAE,CAAC,EAAE,UAAU,EAAG,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,EAAG,OAAO,EAAE,EAAG,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAG,EAAG,EAAE,EAAE,UAAU,sBAAsB,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,IAAI,mBAAmB,CAAC,EAAE,MAAO,GAAE,KAAK,IAAI,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,wBAAwB,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,IAAI,mBAAmB,CAAC,EAAE,MAAO,GAAE,KAAK,IAAI,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,uBAAuB,SAAS,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,IAAI,MAAK,eAAe,GAAG,GAAG,GAAG,EAAE,oBAAoB,KAAK,YAAY,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,0BAA0B,SAAS,EAAE,EAAE,CAAC,KAAK,aAAa,EAAE,EAAE,EAAE,UAAU,KAAK,EAAE,0BAA0B,IAAI,CAAC,EAAE,EAAE,UAAU,gCAAgC,SAAS,EAAE,EAAE,CAAC,KAAK,aAAa,EAAE,EAAE,EAAE,eAAe,IAAI,CAAC,EAAE,EAAE,UAAU,gBAAgB,UAAU,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,OAAO,EAAE,EAAE,OAAO,IAAI,CAAC,GAAI,GAAE,EAAE,GAAG,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,kBAAkB,CAAC,EAAE,UAAU,gBAAgB,KAAK,IAAI,CAAC,EAAE,EAAE,UAAU,aAAa,UAAU,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,mBAAmB,OAAO,IAAK,GAAG,KAAK,mBAAmB,KAAM,EAAE,EAAE,UAAU,YAAY,UAAU,CAAC,GAAG,CAAC,KAAK,gBAAgB,CAAC,GAAI,GAAE,GAAG,CAAC,KAAK,wBAAwB,KAAK,qBAAsB,GAAE,IAAI,GAAI,MAAK,aAAa,KAAK,gBAAgB,KAAK,eAAe,KAAK,WAAW,CAAC,KAAK,mBAAmB,OAAO,EAAE,KAAK,8BAA+B,MAAK,8BAA8B,UAAU,KAAK,eAAe,KAAK,8BAA8B,gBAAgB,KAAK,qBAAqB,KAAK,6BAA6B,EAAE,KAAK,cAAc,KAAK,8BAA8B,WAAW,KAAK,iBAAiB,KAAK,kBAAkB,KAAK,cAAc,KAAK,eAAe,KAAK,qBAAqB,KAAK,eAAe,EAAE,KAAK,wBAAwB,EAAE,EAAE,EAAE,UAAU,aAAa,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,UAAU,iBAAiB,SAAS,EAAE,CAAC,KAAK,aAAa,KAAK,iBAAiB,KAAK,gBAAgB,CAAC,CAAC,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,CAAC,KAAK,cAAe,MAAK,sBAAsB,EAAE,KAAK,kBAAkB,EAAE,mBAAmB,KAAK,gBAAgB,EAAE,EAAE,EAAE,UAAU,eAAe,UAAU,CAAC,KAAK,cAAc,EAAE,iBAAiB,EAAE,EAAE,UAAU,iBAAiB,UAAU,CAAC,KAAK,kBAAkB,EAAE,oBAAoB,KAAK,gBAAgB,CAAC,EAAE,EAAE,UAAU,gBAAgB,UAAU,CAAC,EAAE,kBAAkB,EAAE,EAAE,UAAU,WAAW,UAAU,CAAC,KAAK,cAAc,KAAK,uBAAuB,gBAAgB,IAAI,EAAE,EAAE,UAAU,WAAW,KAAK,IAAI,CAAC,EAAE,EAAE,UAAU,SAAS,UAAU,CAAC,EAAE,UAAU,SAAS,KAAK,IAAI,EAAE,KAAK,iBAAiB,KAAK,qBAAqB,gBAAgB,IAAI,CAAC,EAAE,EAAE,UAAU,OAAO,UAAU,CAAC,KAAK,kBAAkB,EAAE,UAAU,OAAO,KAAK,IAAI,CAAC,EAAE,EAAE,UAAU,QAAQ,SAAS,EAAE,EAAE,CAAoC,GAAhC,CAAC,KAAK,kBAA6B,CAAC,EAAE,UAAU,QAAQ,KAAK,KAAK,EAAE,CAAC,EAAE,MAAM,GAAG,GAAG,KAAK,OAAO,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,OAAO,OAAO,IAAI,OAAQ,GAAE,KAAK,OAAO,GAAG,EAAE,EAAE,EAAE,EAAE,QAAQ,OAAO,IAAK,EAAE,QAAQ,GAAG,iBAAiB,EAAE,KAAK,mBAAmB,gBAAgB,KAAK,mBAAmB,gBAAgB,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,UAAU,uBAAuB,SAAS,EAAE,CAAC,GAAI,GAAE,EAAE,GAAG,EAAE,SAAS,EAAE,mBAAoB,MAAK,wBAAwB,EAAE,iBAAiB,EAAE,EAAE,kBAAkB,MAAM,EAAE,UAAU,uBAAuB,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,UAAU,oBAAoB,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,MAAM,EAAE,GAAG,KAAK,IAAI,KAAK,oCAAoC,gBAAgB,IAAI,EAAE,GAAI,GAAE,EAAE,UAAU,oBAAoB,KAAK,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAO,MAAK,mCAAmC,gBAAgB,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,qBAAqB,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,MAAM,GAAI,GAAE,EAAE,gBAAgB,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAM,IAAI,OAAM,0BAA0B,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,KAAK,aAAa,GAAG,EAAE,CAAC,GAAI,GAAE,KAAK,0BAA0B,KAAK,sBAAsB,CAAC,EAAE,KAAK,4BAA4B,EAAE,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC,MAAO,GAAE,YAAY,CAAC,EAAE,KAAK,aAAa,GAAG,GAAG,KAAK,sBAAsB,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,aAAa,EAAE,EAAE,eAAe,EAAE,EAAE,oBAAoB,KAAK,yBAAyB,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,CAAC,EAAE,UAAU,gBAAgB,KAAK,KAAK,CAAC,EAAE,KAAK,OAAO,QAAS,SAAS,EAAE,CAAC,EAAE,cAAc,QAAS,SAAS,EAAE,CAAC,EAAE,gBAAgB,GAAI,GAAE,eAAe,KAAK,GAAI,EAAE,QAAQ,QAAS,SAAS,EAAE,CAAC,EAAE,eAAe,QAAS,SAAS,EAAE,CAAC,GAAG,EAAE,gBAAgB,GAAI,GAAE,eAAe,KAAK,EAAG,EAAG,EAAG,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,KAAK,IAAI,cAAc,KAAK,IAAI,WAAW,KAAK,IAAI,mBAAmB,KAAK,IAAI,MAAM,EAAE,KAAK,IAAI,cAAc,KAAK,IAAI,WAAW,KAAK,IAAI,mBAAmB,KAAK,IAAI,MAAM,EAAE,KAAK,IAAI,cAAc,KAAK,IAAI,WAAW,KAAK,IAAI,eAAe,KAAK,IAAI,aAAa,EAAE,KAAK,IAAI,cAAc,KAAK,IAAI,WAAW,KAAK,IAAI,eAAe,KAAK,IAAI,aAAa,EAAE,GAAI,GAAE,KAAK,0BAA0B,CAAC,MAAM,EAAE,MAAM,OAAO,EAAE,MAAM,EAAE,CAAC,gBAAgB,GAAG,KAAK,EAAE,EAAE,yBAAyB,aAAa,EAAE,EAAE,8BAA8B,oBAAoB,GAAG,sBAAsB,EAAE,CAAC,EAAE,CAAC,KAAK,qBAAqB,EAAE,4BAA6B,MAAK,oBAAoB,EAAE,2BAA2B,IAAI,GAAG,KAAK,oBAAoB,YAAY,oBAAqB,UAAU,CAAC,EAAE,oBAAoB,QAAQ,SAAS,EAAE,CAAC,EAAE,aAAa,iBAAiB,CAAC,CAAC,EAAE,GAAI,GAAE,EAAE,GAAI,GAAE,EAAE,OAAO,EAAE,OAAO,OAAO,IAAI,EAAE,mBAAmB,aAAa,CAAC,EAAE,mBAAmB,EAAE,EAAE,EAAE,EAAE,EAAE,qBAAqB,EAAE,IAAI,WAAW,EAAE,EAAE,EAAE,EAAE,IAAI,eAAe,EAAE,IAAI,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,kBAAkB,CAAC,EAAE,EAAE,gBAAgB,CAAC,EAAE,GAAG,GAAG,EAAG,EAAE,EAAE,UAAU,OAAO,UAAU,CAAC,MAAO,MAAK,IAAI,EAAE,EAAE,UAAU,aAAa,UAAU,CAAC,MAAO,MAAK,UAAU,EAAE,EAAE,UAAU,YAAY,UAAU,CAAC,KAAK,oBAAoB,cAAc,KAAK,KAAK,KAAK,oBAAoB,WAAW,KAAK,WAAW,KAAK,oBAAoB,wBAAwB,CAAC,EAAE,EAAE,UAAU,sBAAsB,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,GAAG,AAAS,IAAT,QAAa,GAAE,GAAG,GAAI,GAAE,KAAK,IAAI,EAAE,KAAK,qBAAqB,EAAE,IAAI,EAAE,EAAE,KAAK,mBAAmB,EAAE,MAAM,EAAE,EAAE,KAAK,kCAAkC,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,KAAK,qBAAqB,EAAE,EAAE,EAAE,EAAE,KAAK,aAAa,EAAE,OAAO,EAAE,GAAI,GAAE,EAAE,WAAW,EAAE,QAAS,GAAE,EAAE,4BAA4B,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,qBAAqB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,UAAU,qCAAqC,SAAS,EAAE,EAAE,CAAC,GAAG,KAAK,aAAa,GAAG,CAAC,EAAE,MAAO,GAAE,GAAG,EAAE,UAAU,EAAE,MAAO,GAAE,GAAI,GAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,KAAK,UAAU,cAAc,EAAE,EAAE,qBAAsB,GAAE,mBAAmB,EAAE,mBAAmB,EAAE,EAAE,oBAAoB,MAAM,EAAE,kBAAmB,GAAE,kBAAkB,EAAE,gBAAgB,EAAE,EAAE,iBAAiB,MAAM,EAAE,mBAAoB,GAAE,mBAAmB,EAAE,iBAAiB,EAAE,EAAE,kBAAkB,MAAM,EAAE,GAAG,EAAE,+BAA+B,CAAC,GAAI,GAAE,EAAE,oBAAoB,GAAG,CAAC,EAAE,KAAM,IAAI,OAAM,4CAA4C,EAAE,EAAE,iBAAiB,EAAE,KAAK,wBAAwB,EAAE,gBAAgB,EAAE,GAAI,GAAE,EAAE,qBAAqB,GAAG,CAAC,EAAE,KAAM,IAAI,OAAM,4CAA4C,EAAE,EAAE,iBAAiB,EAAE,aAAa,CAAC,EAAE,EAAE,+BAA+B,EAAE,aAAa,EAAE,KAAK,gCAAgC,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,wBAAwB,EAAE,YAAY,EAAE,kBAAkB,EAAE,aAAa,CAAC,EAAE,EAAE,kBAAkB,CAAC,KAAM,MAAK,wBAAwB,EAAE,YAAY,EAAE,MAAO,GAAE,QAAQ,EAAE,EAAE,oBAAoB,KAAK,kCAAkC,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,wBAAwB,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,gCAAgC,SAAS,EAAE,EAAE,CAAC,GAAG,AAAI,KAAK,eAAT,EAAsB,CAAC,GAAI,GAAE,KAAK,IAAI,EAAE,OAAQ,MAAK,qBAAqB,KAAK,IAAI,iBAAiB,EAAE,EAAE,EAAE,AAAI,IAAJ,EAAO,GAAE,cAAc,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,IAAI,GAAI,GAAE,cAAc,EAAE,iBAAiB,EAAE,qBAAqB,CAAC,EAAE,EAAE,cAAc,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,sBAAsB,GAAG,KAAK,qBAAqB,KAAK,IAAI,iBAAiB,IAAI,GAAI,MAAK,qBAAqB,KAAK,IAAI,WAAW,EAAE,EAAE,EAAE,AAAI,IAAJ,EAAO,GAAE,cAAc,EAAE,WAAW,EAAE,qBAAqB,EAAE,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,qBAAqB,EAAE,IAAI,GAAI,GAAE,cAAc,EAAE,WAAW,EAAE,qBAAqB,CAAC,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,qBAAqB,EAAE,sBAAsB,GAAG,KAAK,qBAAqB,KAAK,IAAI,WAAW,IAAI,GAAG,EAAE,oBAAoB,CAAC,KAAM,GAAE,EAAE,MAAM,8CAA8C,CAAC,EAAE,EAAE,UAAU,sBAAsB,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,IAAI,eAAe,GAAG,CAAC,EAAE,KAAM,IAAI,OAAM,kCAAkC,EAAE,GAAI,GAAE,GAAI,GAAE,EAAE,CAAC,EAAE,MAAO,GAAE,SAAS,EAAE,KAAK,gBAAgB,CAAC,EAAE,KAAK,IAAI,WAAW,KAAK,IAAI,aAAa,EAAE,KAAK,IAAI,YAAY,EAAE,CAAC,EAAE,EAAE,UAAU,sBAAsB,SAAS,EAAE,CAAC,KAAK,IAAI,aAAa,CAAC,CAAC,EAAE,EAAE,UAAU,iBAAiB,SAAS,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,GAAG,AAAS,IAAT,QAAa,GAAE,IAAI,GAAI,GAAE,KAAK,IAAI,MAAO,IAAI,SAAS,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,UAAU,CAAC,GAAI,GAAE,EAAE,eAAe,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,YAAY,GAAG,EAAE,gBAAgB,IAAI,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAG,EAAE,EAAE,UAAU,iBAAiB,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,cAAc,EAAE,KAAM,IAAI,OAAM,uCAAuC,EAAE,GAAI,GAAE,KAAK,IAAI,EAAE,EAAE,eAAe,EAAE,WAAW,EAAE,kBAAkB,CAAC,EAAE,EAAE,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,kBAAkB,IAAI,EAAE,GAAI,GAAE,EAAE,UAAU,EAAE,2BAA2B,CAAC,EAAE,MAAO,GAAG,GAAE,QAAQ,KAAK,iBAAiB,EAAE,EAAE,EAAE,EAAE,KAAM,UAAU,CAAC,MAAO,GAAE,WAAW,CAAC,EAAE,EAAE,WAAW,EAAE,kBAAkB,CAAC,EAAE,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,kBAAkB,IAAI,EAAE,EAAE,aAAa,CAAC,EAAE,CAAC,IAAK,IAAI,EAAE,EAAE,UAAU,QAAQ,UAAU,CAAC,IAAI,KAAK,gBAAgB,KAAK,0BAA0B,QAAQ,KAAK,cAAc,QAAQ,KAAK,cAAc,GAAG,UAAU,IAAI,KAAK,qBAAqB,KAAK,oBAAoB,UAAU,KAAK,OAAO,QAAQ,KAAK,OAAO,GAAG,UAAU,AAAI,EAAE,UAAU,SAAhB,GAAwB,EAAE,aAAa,EAAE,YAAY,UAAU,KAAK,YAAY,EAAE,EAAE,uBAAwB,QAAO,oBAAoB,OAAO,KAAK,OAAO,EAAE,OAAO,oBAAoB,QAAQ,KAAK,QAAQ,EAAE,KAAK,kBAAmB,MAAK,iBAAiB,oBAAoB,QAAQ,KAAK,cAAc,EAAE,KAAK,iBAAiB,oBAAoB,OAAO,KAAK,aAAa,EAAE,KAAK,iBAAiB,oBAAoB,aAAa,KAAK,mBAAmB,GAAG,EAAE,EAAE,uBAAwB,UAAS,oBAAoB,mBAAmB,KAAK,mBAAmB,EAAE,SAAS,oBAAoB,sBAAsB,KAAK,mBAAmB,EAAE,SAAS,oBAAoB,yBAAyB,KAAK,mBAAmB,EAAE,SAAS,oBAAoB,qBAAqB,KAAK,mBAAmB,EAAE,SAAS,oBAAoB,oBAAoB,KAAK,oBAAoB,EAAE,SAAS,oBAAoB,sBAAsB,KAAK,oBAAoB,EAAE,SAAS,oBAAoB,uBAAuB,KAAK,oBAAoB,EAAE,SAAS,oBAAoB,0BAA0B,KAAK,oBAAoB,IAAI,EAAE,UAAU,QAAQ,KAAK,IAAI,EAAE,GAAI,GAAE,EAAE,UAAU,QAAQ,IAAI,EAAE,GAAG,GAAG,EAAE,UAAU,OAAO,EAAE,CAAC,EAAE,KAAK,mBAAmB,QAAQ,KAAK,uBAAuB,QAAQ,KAAK,wBAAwB,QAAQ,KAAK,6BAA6B,QAAQ,KAAK,uBAAuB,QAAQ,KAAK,qBAAqB,OAAO,EAAE,EAAE,UAAU,oBAAoB,UAAU,CAAC,KAAK,kBAAkB,KAAK,iBAAiB,cAAe,MAAK,iBAAiB,aAAa,eAAe,MAAM,EAAE,KAAK,iBAAiB,MAAM,YAAY,OAAO,KAAK,iBAAiB,MAAM,cAAc,OAAO,EAAE,EAAE,UAAU,iBAAiB,UAAU,CAAC,GAAG,EAAE,EAAE,sBAAsB,CAAC,GAAI,GAAE,KAAK,cAAc,GAAG,EAAE,kBAAkB,CAAC,EAAE,EAAE,UAAU,cAAc,UAAU,CAAC,GAAG,EAAE,EAAE,sBAAsB,CAAC,GAAI,GAAE,KAAK,eAAe,GAAG,EAAE,eAAe,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,gBAAgB,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,gBAAgB,KAAK,kBAAmB,MAAK,eAAe,EAAE,4BAA4B,KAAK,gBAAgB,GAAG,KAAK,cAAc,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,eAAe,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,gBAAgB,CAAC,IAAI,SAAS,EAAE,CAAC,KAAK,cAAc,cAAc,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,2BAA2B,CAAC,IAAI,SAAS,EAAE,CAAC,KAAK,cAAc,yBAAyB,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,oBAAoB,SAAS,EAAE,CAAC,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,EAAE,iBAAiB,UAAU,CAAC,GAAI,GAAE,SAAS,SAAS,gBAAgB,SAAS,iBAAiB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,sBAAsB,SAAS,iBAAiB,SAAS,iBAAiB,EAAE,EAAE,mBAAmB,SAAS,EAAE,CAAC,GAAI,GAAE,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,qBAAqB,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,gBAAgB,UAAU,CAAC,GAAI,GAAE,SAAS,SAAS,eAAe,SAAS,iBAAiB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,EAAE,cAAc,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,cAAc,EAAE,eAAe,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,EAAE,eAAe,EAAE,gBAAgB,EAAE,EAAE,gBAAgB,EAAE,aAAa,EAAE,EAAE,aAAa,EAAE,oBAAoB,EAAE,EAAE,oBAAoB,EAAE,+BAA+B,EAAE,EAAE,+BAA+B,EAAE,kBAAkB,EAAE,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,EAAE,yBAAyB,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,0BAA0B,EAAE,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,EAAE,wBAAwB,EAAE,8BAA8B,EAAE,EAAE,8BAA8B,EAAE,kBAAkB,EAAE,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,EAAE,6BAA6B,EAAE,mCAAmC,EAAE,EAAE,mCAAmC,EAAE,mCAAmC,EAAE,EAAE,mCAAmC,EAAE,iCAAiC,EAAE,EAAE,iCAAiC,EAAE,wCAAwC,EAAE,EAAE,wCAAwC,EAAE,8BAA8B,EAAE,EAAE,8BAA8B,EAAE,yCAAyC,EAAE,EAAE,yCAAyC,EAAE,qCAAqC,EAAE,EAAE,qCAAqC,EAAE,2CAA2C,EAAE,EAAE,2CAA2C,EAAE,6BAA6B,EAAE,EAAE,6BAA6B,EAAE,8BAA8B,EAAE,EAAE,8BAA8B,EAAE,+BAA+B,EAAE,EAAE,+BAA+B,EAAE,kCAAkC,EAAE,EAAE,kCAAkC,EAAE,iCAAiC,EAAE,EAAE,iCAAiC,EAAE,gCAAgC,EAAE,EAAE,gCAAgC,EAAE,mCAAmC,EAAE,EAAE,mCAAmC,EAAE,kCAAkC,EAAE,EAAE,kCAAkC,EAAE,iCAAiC,EAAE,EAAE,iCAAiC,EAAE,uBAAuB,EAAE,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,EAAE,wBAAwB,EAAE,kCAAkC,EAAE,EAAE,kCAAkC,EAAE,iCAAiC,EAAE,EAAE,iCAAiC,EAAE,sBAAsB,EAAE,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,EAAE,6BAA6B,EAAE,mCAAmC,EAAE,EAAE,mCAAmC,EAAE,4CAA4C,EAAE,EAAE,4CAA4C,EAAE,gBAAgB,EAAE,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,EAAE,kBAAkB,EAAE,2BAA2B,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,SAAS,GAAE,EAAE,EAAE,CAAc,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,GAAI,GAAE,UAAU,CAAC,YAAY,EAAE,MAAO,GAAE,cAAc,SAAS,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,aAAa,GAAI,GAAE,EAAE,EAAE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,MAAM,SAAS,EAAE,CAAC,GAAI,GAAE,EAAE,SAAS,EAAE,EAAE,MAAO,IAAG,GAAI,KAAI,GAAG,cAAc,EAAE,aAAa,EAAE,EAAE,KAAK,SAAS,EAAE,CAAC,MAAO,AAAK,GAAE,CAAC,IAAR,GAAY,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,SAAS,EAAE,EAAE,EAAE,CAAC,MAAO,AAAS,KAAT,QAAa,GAAE,GAAG,AAAS,IAAT,QAAa,GAAE,GAAG,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,SAAS,EAAE,CAAC,MAAO,MAAK,IAAI,CAAC,EAAE,KAAK,KAAK,EAAE,EAAE,OAAO,SAAS,EAAE,EAAE,CAAC,MAAO,GAAE,KAAK,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,SAAS,EAAE,EAAE,EAAE,CAAC,MAAO,GAAE,GAAI,GAAE,EAAE,EAAE,EAAE,YAAY,SAAS,EAAE,EAAE,EAAE,CAAC,MAAO,GAAG,GAAE,GAAG,CAAC,EAAE,EAAE,WAAW,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,MAAO,GAAE,KAAM,IAAG,KAAK,CAAC,EAAE,EAAE,SAAS,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,MAAO,GAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,WAAW,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,MAAM,CAAC,EAAE,MAAO,GAAG,GAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAG,GAAE,EAAE,EAAE,EAAE,YAAY,SAAS,EAAE,EAAE,EAAE,CAAC,MAAO,MAAK,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,iBAAiB,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAG,GAAE,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,SAAS,EAAE,EAAE,EAAE,CAAC,MAAO,GAAG,GAAE,GAAG,CAAC,EAAE,EAAE,UAAU,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,MAAO,GAAE,KAAM,IAAG,KAAK,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,YAAY,SAAS,EAAE,EAAE,EAAE,CAAC,MAAO,IAAG,EAAE,EAAE,MAAO,GAAE,GAAI,GAAE,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAO,GAAG,GAAE,EAAE,EAAE,EAAE,GAAG,EAAG,IAAG,EAAE,EAAE,GAAG,EAAG,GAAE,EAAE,EAAE,GAAG,EAAG,GAAE,EAAE,EAAE,EAAE,YAAY,SAAS,EAAE,EAAE,CAAC,MAAO,KAAI,EAAE,EAAE,KAAK,SAAU,GAAE,GAAG,CAAC,EAAE,EAAE,eAAe,SAAS,EAAE,EAAE,EAAE,CAAC,MAAO,GAAE,GAAI,GAAE,EAAE,EAAE,EAAE,eAAe,SAAS,EAAE,EAAE,EAAE,CAAC,MAAO,GAAE,GAAG,EAAE,CAAC,EAAE,EAAE,iBAAiB,SAAS,EAAE,CAAC,MAAO,IAAG,EAAE,MAAM,KAAK,MAAO,GAAE,KAAK,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,GAAG,EAAE,SAAS,GAAE,EAAE,EAAE,CAAc,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,GAAI,GAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,UAAU,CAAC,YAAY,EAAE,MAAO,GAAE,gBAAgB,SAAS,EAAE,EAAE,EAAE,CAAC,GAAG,AAAS,IAAT,QAAa,GAAE,gBAAgB,EAAE,oBAAoB,EAAE,WAAW,EAAE,EAAE,mBAAmB,MAAM,CAAC,GAAI,GAAE,EAAE,aAAa,eAAe,GAAI,GAAE,EAAE,aAAa,gBAAgB,EAAE,WAAW,EAAE,EAAE,wBAAwB,EAAE,wBAAwB,CAAC,CAAC,CAAC,EAAE,EAAE,0BAA0B,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,mBAAmB,kBAAmB,GAAE,EAAE,YAAY,EAAE,iBAAiB,EAAE,AAAI,EAAE,mBAAN,EAAuB,EAAE,QAAQ,GAAG,EAAE,QAAQ,IAAI,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE,kBAAkB,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,mBAAmB,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,YAAY,SAAS,EAAE,EAAE,CAAC,MAAO,GAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,YAAY,EAAE,EAAE,sBAAsB,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,eAAgB,GAAE,iBAAiB,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC,EAAE,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,UAAU,EAAE,EAAE,EAAE,kCAAkC,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,MAAM,AAAS,IAAT,QAAa,GAAE,IAAI,GAAI,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAQ,GAAE,CAAS,EAAE,YAAX,QAAsB,AAAO,EAAE,YAAT,MAAqB,EAAQ,GAAE,CAAS,EAAE,aAAX,QAAuB,AAAO,EAAE,aAAT,MAAsB,EAAQ,GAAE,CAAS,EAAE,aAAX,QAAuB,AAAO,EAAE,aAAT,MAAsB,EAAQ,GAAE,CAAS,EAAE,aAAX,QAAuB,AAAO,EAAE,aAAT,MAAsB,EAAQ,GAAE,CAAS,EAAE,aAAX,QAAuB,AAAO,EAAE,aAAT,MAAsB,EAAQ,GAAE,CAAS,EAAE,aAAX,QAAuB,AAAO,EAAE,aAAT,MAAsB,EAAE,YAAY,GAAI,GAAE,UAAU,EAAE,EAAE,IAAI,EAAE,aAAa,GAAI,GAAE,WAAW,EAAE,EAAE,IAAI,EAAE,aAAa,GAAI,GAAE,WAAW,EAAE,EAAE,IAAI,EAAE,aAAa,GAAI,GAAE,WAAW,EAAE,EAAE,IAAI,EAAE,aAAa,GAAI,GAAE,WAAW,EAAE,EAAE,IAAI,EAAE,aAAa,GAAI,GAAE,WAAW,EAAE,EAAE,IAAI,EAAE,eAAe,CAAC,EAAE,iBAAkB,GAAE,aAAa,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,GAAI,GAAE,UAAU,EAAE,EAAE,IAAI,EAAE,iBAAiB,GAAI,GAAE,eAAe,EAAE,EAAE,IAAI,GAAG,EAAE,mBAAmB,EAAE,EAAE,uBAAuB,SAAS,EAAE,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,0BAA0B,EAAE,SAAS,CAAC,EAAE,qBAAqB,EAAE,mBAAmB,GAAI,GAAE,AAAS,EAAE,cAAX,OAAuB,GAAG,EAAE,SAAS,2BAA2B,EAAE,EAAE,YAAY,OAAO,CAAC,EAAE,aAAa,EAAE,SAAS,MAAM,OAAO,EAAE,EAAE,YAAY,CAAC,GAAG,OAAO,GAAI,GAAE,EAAE,WAAW,gBAAgB,GAAG,GAAG,EAAE,QAAQ,CAAC,GAAI,GAAE,AAAK,EAAE,oBAAoB,QAAQ,CAAC,IAApC,GAAsC,EAAE,uBAAuB,CAAC,CAAC,CAAC,KAAM,GAAE,qBAAqB,EAAE,EAAE,aAAa,CAAC,EAAE,EAAE,8BAA8B,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,mBAAmB,EAAG,GAAE,gBAAgB,EAAE,aAAa,EAAE,IAAI,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,sBAAsB,EAAE,gBAAiB,GAAE,gBAAgB,GAAG,EAAE,qBAAqB,GAAG,EAAE,oBAAoB,GAAG,EAAE,aAAa,GAAG,EAAE,sBAAsB,EAAE,EAAE,EAAE,4BAA4B,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,AAAS,IAAT,QAAa,GAAE,IAAI,AAAS,IAAT,QAAa,GAAE,IAAI,CAAC,EAAE,qBAAqB,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,MAAM,GAAG,GAAG,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,EAAE,UAAU,EAAE,EAAE,cAAc,EAAE,sBAAsB,EAAE,EAAE,WAAW,GAAI,GAAE,QAAQ,IAAI,EAAE,SAAU,GAAE,IAAI,EAAE,sBAAsB,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAAE,OAAO,GAAI,GAAE,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC,GAAI,GAAE,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,EAAE,YAAY,EAAE,gBAAgB,GAAG,CAAC,CAAC,MAAO,IAAG,KAAK,uBAAuB,EAAE,CAAC,EAAE,GAAG,KAAK,8BAA8B,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,2BAA2B,SAAS,EAAE,EAAE,CAAC,GAAG,EAAE,aAAa,CAAC,GAAI,GAAE,EAAE,UAAU,EAAE,UAAU,AAAO,EAAE,aAAa,qBAAtB,MAA0C,EAAE,aAAa,mBAAmB,eAAe,EAAE,EAAE,WAAW,GAAG,EAAE,mBAAmB,CAAC,EAAE,EAAE,yBAAyB,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,QAAQ,GAAG,EAAE,iBAAiB,CAAC,GAAI,GAAE,CAAC,CAAC,KAAK,EAAE,EAAE,8BAA8B,OAAO,mBAAmB,MAAM,wBAAwB,EAAE,CAAC,KAAK,EAAE,EAAE,8BAA8B,OAAO,mBAAmB,MAAM,wBAAwB,EAAE,CAAC,KAAK,EAAE,EAAE,kCAAkC,OAAO,uBAAuB,MAAM,4BAA4B,EAAE,CAAC,KAAK,EAAE,EAAE,gCAAgC,OAAO,qBAAqB,MAAM,0BAA0B,EAAE,CAAC,KAAK,EAAE,EAAE,4BAA4B,OAAO,iBAAiB,MAAM,sBAAsB,EAAE,CAAC,KAAK,EAAE,EAAE,iCAAiC,OAAO,sBAAsB,MAAM,2BAA2B,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,gBAAgB,SAAS,EAAE,CAAC,EAAE,QAAQ,GAAG,EAAE,gBAAgB,EAAE,gBAAgB,SAAS,OAAQ,GAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,GAAI,GAAE,EAAE,gBAAgB,SAAS,EAAE,GAAG,IAAI,EAAE,AAAK,IAAL,GAAQ,GAAE,EAAE,GAAG,QAAQ,GAAG,EAAE,EAAE,GAAG,OAAO,GAAG,EAAE,EAAE,GAAG,QAAQ,EAAE,CAAC,KAAmB,KAAb,EAAE,QAAQ,GAAO,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,EAAE,EAAE,GAAG,QAAQ,GAAG,EAAE,SAAS,GAAI,GAAE,oBAAoB,EAAE,6BAA6B,CAAC,EAAE,EAAE,uBAAuB,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,YAAY,GAAG,AAAS,EAAE,QAAQ,KAAnB,QAAwB,GAAE,YAAY,IAAI,EAAE,QAAQ,GAAG,GAAG,EAAE,YAAY,GAAG,GAAG,EAAE,YAAY,GAAG,GAAG,EAAE,aAAa,GAAG,GAAG,EAAE,WAAW,GAAG,GAAG,EAAE,4BAA4B,EAAE,CAAC,EAAE,EAAE,yBAAyB,GAAG,GAAG,EAAE,qBAAqB,GAAG,GAAG,EAAE,yBAAyB,GAAG,GAAG,EAAE,iBAAkB,GAAE,EAAE,aAAa,EAAE,qBAAqB,GAAG,GAAG,UAAW,GAAE,EAAE,iBAAiB,EAAE,yBAAyB,GAAG,GAAG,UAAW,GAAE,EAAE,iBAAiB,EAAE,yBAAyB,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,SAAS,aAAa,EAAE,EAAE,CAAC,GAAI,GAAE,gBAAgB,IAAI,EAAE,SAAS,GAAG,GAAG,EAAE,YAAY,GAAG,GAAG,EAAE,iBAAiB,GAAG,GAAG,EAAE,wBAAwB,GAAG,GAAG,EAAE,yBAAyB,GAAG,GAAG,EAAE,mBAAmB,GAAG,GAAG,EAAE,wBAAwB,GAAG,GAAG,EAAE,YAAY,GAAG,GAAG,EAAE,aAAa,GAAG,GAAG,EAAE,gBAAgB,GAAG,GAAG,EAAE,YAAY,GAAG,GAAG,EAAE,iBAAiB,GAAG,GAAG,EAAE,aAAa,GAAG,GAAG,EAAE,mBAAmB,GAAG,GAAG,EAAE,sBAAsB,GAAG,GAAG,GAAG,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,cAAc,CAAC,GAAI,GAAE,EAAE,qBAAqB,GAAG,EAAE,CAAC,GAAI,GAAE,EAAE,eAAe,GAAG,EAAE,YAAY,EAAE,WAAW,OAAO,GAAI,GAAE,cAAc,GAAG,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,EAAE,iBAAkB,GAAE,aAAa,GAAG,EAAE,mBAAmB,GAAG,GAAG,EAAE,qBAAqB,GAAG,EAAE,cAAc,EAAE,EAAE,sBAAuB,GAAE,mBAAmB,GAAG,GAAG,EAAE,qBAAqB,GAAG,GAAG,EAAE,EAAE,wBAAwB,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,AAAS,IAAT,QAAa,GAAE,GAAG,AAAS,IAAT,QAAa,GAAE,IAAI,CAAC,EAAE,gBAAgB,MAAO,GAAE,aAAa,GAAI,GAAE,EAAE,EAAE,CAAC,YAAY,GAAG,YAAY,GAAG,aAAa,GAAG,cAAc,GAAG,gBAAgB,EAAE,EAAE,GAAG,EAAE,eAAe,CAAC,EAAE,OAAQ,GAAE,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,OAAO,IAAI,CAAC,GAAI,GAAE,EAAE,GAAG,GAAG,KAAK,uBAAuB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,cAAc,OAAQ,GAAE,EAAE,EAAE,EAAE,IAAI,AAAS,EAAE,QAAQ,KAAnB,QAAwB,GAAE,QAAQ,GAAG,GAAG,EAAE,YAAY,GAAG,GAAG,EAAE,aAAa,GAAG,GAAG,EAAE,WAAW,GAAG,GAAG,EAAE,YAAY,GAAG,GAAG,EAAE,SAAS,GAAG,GAAG,EAAE,YAAY,GAAG,GAAG,EAAE,iBAAiB,GAAG,GAAG,EAAE,wBAAwB,GAAG,GAAG,EAAE,yBAAyB,GAAG,GAAG,EAAE,mBAAmB,GAAG,GAAG,EAAE,wBAAwB,GAAG,GAAG,EAAE,YAAY,GAAG,GAAG,EAAE,aAAa,GAAG,GAAG,EAAE,gBAAgB,GAAG,GAAG,EAAE,YAAY,GAAG,GAAG,EAAE,iBAAiB,GAAG,GAAG,EAAE,aAAa,GAAG,GAAG,EAAE,mBAAmB,GAAG,GAAG,EAAE,sBAAsB,GAAG,IAAI,GAAI,GAAE,EAAE,YAAY,UAAU,MAAO,AAAS,GAAE,cAAX,QAAyB,GAAE,YAAY,IAAI,EAAE,YAAY,EAAE,eAAgB,GAAE,oBAAoB,EAAE,6BAA6B,EAAE,wBAAwB,EAAE,iCAAiC,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,mCAAmC,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,MAAM,AAAS,IAAT,QAAa,GAAE,IAAI,GAAG,EAAE,KAAK,QAAQ,CAAC,EAAE,GAAI,GAAE,KAAK,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC,EAAE,EAAE,KAAK,gBAAgB,CAAC,EAAE,EAAE,KAAK,eAAe,CAAC,EAAE,EAAE,KAAK,eAAe,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,EAAE,GAAI,GAAE,KAAK,yBAAyB,CAAC,EAAE,EAAE,KAAK,0BAA0B,CAAC,GAAG,EAAE,EAAE,+BAA+B,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,AAAS,IAAT,QAAa,GAAE,GAAG,GAAI,GAAE,KAAK,GAAG,EAAE,cAAc,CAAC,GAAI,GAAE,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,oBAAoB,EAAE,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,uBAAuB,CAAC,KAAM,GAAE,EAAE,GAAI,GAAE,IAAI,OAAQ,GAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,GAAG,IAAI,KAAK,mCAAmC,EAAE,EAAE,EAAE,EAAE,wBAAwB,GAAG,CAAC,EAAE,EAAE,uBAAuB,EAAE,KAAK,uBAAuB,CAAC,EAAE,EAAE,0BAA0B,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,GAAG,AAAS,IAAT,QAAa,GAAE,GAAG,OAAQ,GAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,GAAG,IAAI,EAAE,GAAI,GAAE,EAAE,EAAE,EAAE,YAAY,EAAE,QAAQ,CAAC,GAAG,EAAE,SAAU,GAAE,SAAS,IAAI,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,EAAE,YAAY,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,EAAE,aAAa,IAAI,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,EAAE,gBAAgB,IAAI,EAAE,YAAY,EAAE,gBAAgB,CAAC,EAAE,EAAE,YAAY,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,EAAE,iBAAiB,IAAI,EAAE,YAAY,EAAE,iBAAiB,CAAC,GAAG,MAAO,IAAG,EAAE,EAAE,4CAA4C,SAAS,EAAE,EAAE,EAAE,CAAC,KAAK,qBAAqB,sBAAsB,EAAE,KAAK,iCAAiC,EAAE,EAAE,KAAK,oBAAoB,CAAC,EAAE,EAAE,iCAAiC,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,sBAAsB,GAAG,EAAE,GAAG,EAAE,EAAE,kBAAkB,OAAQ,GAAE,EAAE,EAAE,kBAAkB,UAAU,iBAAiB,EAAE,EAAE,mBAAmB,EAAE,GAAG,EAAE,iBAAiB,EAAE,OAAO,EAAE,GAAG,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,aAAa,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,WAAW,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,YAAY,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,MAAM,8CAA8C,EAAE,IAAI,CAAC,EAAE,EAAE,0BAA0B,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,qBAAqB,GAAI,GAAE,uBAAuB,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,mBAAmB,EAAE,EAAE,KAAK,EAAE,EAAE,mBAAmB,EAAE,EAAE,qBAAqB,GAAI,GAAE,KAAK,EAAE,EAAE,wBAAwB,EAAE,EAAE,KAAK,EAAE,EAAE,wBAAwB,GAAG,EAAE,EAAE,8BAA8B,SAAS,EAAE,EAAE,CAAC,AAAC,GAAE,WAAW,EAAE,iBAAiB,KAAK,2BAA2B,CAAC,CAAC,EAAE,EAAE,2BAA2B,SAAS,EAAE,CAAC,EAAE,KAAK,QAAQ,EAAE,EAAE,KAAK,QAAQ,EAAE,EAAE,KAAK,QAAQ,EAAE,EAAE,KAAK,QAAQ,CAAC,EAAE,EAAE,oBAAoB,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,WAAW,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,GAAG,AAAS,IAAT,QAAa,GAAE,IAAI,OAAQ,GAAE,KAAK,IAAI,EAAE,aAAa,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,GAAI,GAAE,EAAE,aAAa,GAAG,KAAK,UAAU,EAAE,EAAE,EAAE,EAAE,AAAW,MAAO,IAAlB,UAAoB,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,kBAAkB,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,cAAe,GAAE,UAAU,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,EAAG,GAAE,SAAS,mBAAmB,KAAK,aAAa,EAAE,EAAE,UAAU,YAAY,KAAK,aAAa,GAAG,EAAE,UAAU,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,oBAAoB,SAAS,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,GAAI,GAAE,0BAA0B,EAAE,8BAA+B,GAAE,yBAAyB,IAAI,EAAE,UAAU,EAAE,0BAA0B,EAAE,UAAU,CAAC,GAAI,GAAE,EAAE,SAAS,GAAG,EAAE,2BAA2B,EAAE,gBAAgB,kBAAkB,EAAE,GAAG,CAAC,GAAI,GAAE,EAAE,0BAA0B,CAAC,EAAE,EAAE,WAAW,cAAc,CAAC,EAAE,EAAE,SAAS,mBAAmB,EAAG,GAAE,MAAM,OAAO,EAAE,CAAC,KAAK,CAAC,GAAI,GAAE,EAAE,qBAAqB,CAAC,EAAE,GAAI,GAAE,YAAY,SAAS,CAAC,EAAE,GAAG,EAAE,WAAW,iBAAiB,EAAE,WAAW,gBAAgB,SAAS,EAAE,EAAE,6BAA6B,GAAI,GAAE,cAAc,EAAE,WAAW,EAAE,YAAY,iBAAiB,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,iCAAiC,EAAE,EAAE,cAAc,EAAE,SAAS,GAAG,CAAC,CAAC,EAAE,EAAE,iCAAiC,SAAS,EAAE,EAAE,CAAC,MAAO,GAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,0BAA0B,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,mBAAmB,GAAG,GAAG,EAAE,cAAc,wBAAwB,EAAE,UAAU,CAAC,EAAE,EAAE,aAAa,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,kBAAkB,EAAE,SAAS,2BAA2B,EAAG,MAAK,IAAI,EAAE,aAAa,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE,cAAc,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,qBAAqB,CAAC,sBAAsB,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,SAAS,GAAE,EAAE,EAAE,CAAc,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,GAAI,GAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,YAAY,EAAE,MAAO,GAAE,UAAU,IAAI,SAAS,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,KAAK,6BAA6B,EAAE,uBAAuB,EAAE,OAAQ,GAAE,EAAE,aAAa,KAAK,UAAU,EAAE,UAAW,GAAE,EAAE,WAAW,KAAK,QAAQ,EAAE,UAAW,GAAE,EAAE,YAAY,KAAK,SAAS,EAAE,UAAW,GAAE,EAAE,OAAO,KAAK,IAAI,EAAE,UAAW,GAAE,EAAE,QAAQ,KAAK,KAAK,EAAE,UAAW,GAAE,EAAE,QAAQ,KAAK,KAAK,EAAE,UAAW,GAAE,EAAE,QAAQ,KAAK,KAAK,EAAE,UAAW,GAAE,EAAE,QAAQ,KAAK,KAAK,EAAE,UAAW,GAAE,EAAE,QAAQ,KAAK,KAAK,EAAE,UAAW,GAAE,EAAE,UAAU,KAAK,OAAO,EAAE,UAAW,GAAE,EAAE,oBAAoB,KAAK,gBAAgB,EAAE,UAAW,GAAE,EAAE,oBAAoB,KAAK,gBAAgB,EAAE,UAAW,GAAE,EAAE,yBAAyB,KAAK,qBAAqB,EAAE,UAAW,GAAE,EAAE,yBAAyB,KAAK,qBAAqB,EAAE,EAAE,EAAE,UAAU,YAAY,SAAS,EAAE,EAAE,CAAC,MAAO,MAAK,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,EAAE,CAAC,MAAO,MAAK,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,WAAW,SAAS,EAAE,CAAC,MAAO,MAAK,QAAQ,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,CAAC,MAAO,MAAK,QAAQ,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,SAAS,SAAS,EAAE,EAAE,CAAC,MAAO,AAAS,KAAT,QAAa,GAAE,IAAI,KAAK,WAAW,EAAE,gBAAgB,EAAE,EAAE,aAAa,KAAK,UAAU,CAAC,EAAE,KAAK,SAAS,EAAE,gBAAgB,EAAE,EAAE,WAAW,KAAK,QAAQ,CAAC,EAAE,KAAK,UAAU,EAAE,gBAAgB,EAAE,EAAE,YAAY,KAAK,SAAS,CAAC,EAAE,KAAK,KAAK,EAAE,gBAAgB,EAAE,EAAE,OAAO,KAAK,IAAI,CAAC,EAAE,KAAK,MAAM,EAAE,gBAAgB,EAAE,EAAE,QAAQ,KAAK,KAAK,CAAC,EAAE,KAAK,MAAM,EAAE,gBAAgB,EAAE,EAAE,QAAQ,KAAK,KAAK,CAAC,EAAE,KAAK,MAAM,EAAE,gBAAgB,EAAE,EAAE,QAAQ,KAAK,KAAK,CAAC,EAAE,KAAK,MAAM,EAAE,gBAAgB,EAAE,EAAE,QAAQ,KAAK,KAAK,CAAC,EAAE,KAAK,MAAM,EAAE,gBAAgB,EAAE,EAAE,QAAQ,KAAK,KAAK,CAAC,EAAE,KAAK,QAAQ,EAAE,gBAAgB,EAAE,EAAE,UAAU,KAAK,OAAO,CAAC,EAAE,KAAK,iBAAiB,EAAE,gBAAgB,EAAE,EAAE,oBAAoB,KAAK,gBAAgB,CAAC,EAAE,KAAK,iBAAiB,EAAE,gBAAgB,EAAE,EAAE,oBAAoB,KAAK,gBAAgB,CAAC,EAAE,KAAK,sBAAsB,EAAE,gBAAgB,EAAE,EAAE,yBAAyB,KAAK,qBAAqB,CAAC,EAAE,KAAK,sBAAsB,EAAE,gBAAgB,EAAE,EAAE,yBAAyB,KAAK,qBAAqB,CAAC,EAAE,KAAK,QAAQ,EAAE,WAAW,KAAK,QAAQ,KAAK,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,UAAU,QAAQ,SAAS,EAAE,EAAE,EAAE,CAAC,MAAO,MAAK,WAAW,EAAE,mBAAmB,EAAE,EAAE,aAAa,KAAK,UAAU,EAAE,CAAC,EAAE,KAAK,SAAS,EAAE,mBAAmB,EAAE,EAAE,WAAW,KAAK,QAAQ,EAAE,CAAC,EAAE,KAAK,UAAU,EAAE,mBAAmB,EAAE,EAAE,YAAY,KAAK,SAAS,EAAE,CAAC,EAAE,KAAK,KAAK,EAAE,mBAAmB,EAAE,EAAE,OAAO,KAAK,IAAI,EAAE,CAAC,EAAE,KAAK,MAAM,EAAE,mBAAmB,EAAE,EAAE,QAAQ,KAAK,KAAK,EAAE,CAAC,EAAE,KAAK,MAAM,EAAE,mBAAmB,EAAE,EAAE,QAAQ,KAAK,KAAK,EAAE,CAAC,EAAE,KAAK,MAAM,EAAE,mBAAmB,EAAE,EAAE,QAAQ,KAAK,KAAK,EAAE,CAAC,EAAE,KAAK,MAAM,EAAE,mBAAmB,EAAE,EAAE,QAAQ,KAAK,KAAK,EAAE,CAAC,EAAE,KAAK,MAAM,EAAE,mBAAmB,EAAE,EAAE,QAAQ,KAAK,KAAK,EAAE,CAAC,EAAE,KAAK,QAAQ,EAAE,mBAAmB,EAAE,EAAE,UAAU,KAAK,OAAO,EAAE,CAAC,EAAE,KAAK,iBAAiB,EAAE,mBAAmB,EAAE,EAAE,oBAAoB,KAAK,gBAAgB,EAAE,CAAC,EAAE,KAAK,iBAAiB,EAAE,mBAAmB,EAAE,EAAE,oBAAoB,KAAK,gBAAgB,EAAE,CAAC,EAAE,KAAK,sBAAsB,EAAE,mBAAmB,EAAE,EAAE,yBAAyB,KAAK,qBAAqB,EAAE,CAAC,EAAE,KAAK,sBAAsB,EAAE,mBAAmB,EAAE,EAAE,yBAAyB,KAAK,qBAAqB,EAAE,CAAC,EAAE,KAAK,SAAS,EAAE,WAAW,KAAK,QAAQ,IAAI,EAAE,IAAI,EAAE,EAAE,UAAU,UAAU,SAAS,EAAE,CAAC,GAAI,GAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE,OAAO,GAAG,KAAK,UAAU,CAAC,GAAI,GAAE,EAAE,EAAE,OAAO,IAAI,EAAE,EAAE,EAAE,KAAK,UAAU,OAAO,GAAG,EAAE,EAAE,EAAE,eAAe,KAAK,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,0BAA0B,EAAE,EAAE,CAAC,EAAE,KAAK,UAAU,GAAG,EAAE,EAAE,KAAK,UAAU,EAAE,GAAG,EAAE,EAAE,KAAK,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAI,GAAE,EAAE,EAAE,OAAO,IAAI,EAAE,EAAE,EAAE,KAAK,QAAQ,OAAO,GAAG,EAAE,EAAE,EAAE,eAAe,KAAK,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,GAAG,EAAE,EAAE,KAAK,QAAQ,EAAE,GAAG,EAAE,EAAE,KAAK,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,GAAI,GAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,IAAI,EAAE,EAAE,EAAE,KAAK,SAAS,OAAO,GAAG,EAAE,EAAE,EAAE,eAAe,KAAK,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,CAAC,EAAE,KAAK,SAAS,GAAG,EAAE,EAAE,KAAK,SAAS,EAAE,GAAG,EAAE,EAAE,KAAK,SAAS,EAAE,GAAG,EAAE,EAAE,KAAK,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,KAAK,QAAQ,IAAI,EAAE,EAAE,EAAE,KAAK,QAAQ,OAAO,GAAG,EAAE,CAAC,GAAI,GAAE,KAAK,QAAQ,EAAE,GAAG,KAAK,QAAQ,EAAE,GAAG,KAAK,QAAQ,EAAE,GAAG,KAAK,QAAQ,EAAE,GAAG,CAAC,CAAC,MAAO,KAAI,EAAE,EAAE,UAAU,MAAM,SAAS,EAAE,EAAE,CAAC,GAAG,AAAS,IAAT,QAAa,GAAE,IAAI,KAAK,YAAY,EAAE,YAAY,CAAC,KAAK,SAAS,CAAC,EAAE,SAAS,CAAC,KAAK,UAAU,CAAC,EAAE,UAAU,CAAC,KAAK,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,QAAQ,CAAC,EAAE,QAAQ,CAAC,KAAK,iBAAiB,CAAC,EAAE,iBAAiB,CAAC,KAAK,iBAAiB,CAAC,EAAE,iBAAiB,CAAC,KAAK,sBAAsB,CAAC,EAAE,sBAAsB,CAAC,KAAK,sBAAsB,CAAC,EAAE,qBAAqB,KAAM,IAAI,OAAM,sEAAsE,EAAE,GAAG,EAAE,QAAQ,CAAC,KAAK,SAAU,MAAK,QAAQ,IAAI,GAAI,GAAE,KAAK,UAAU,KAAK,UAAU,OAAO,EAAE,EAAE,GAAG,AAAS,KAAK,QAAQ,oBAAtB,OAAwC,CAAC,GAAI,GAAE,KAAK,QAAQ,OAAO,EAAE,QAAQ,OAAO,EAAE,GAAG,KAAK,kBAAmB,aAAY,GAAI,aAAY,CAAC,EAAE,GAAI,aAAY,CAAC,EAAE,EAAE,IAAI,KAAK,OAAO,EAAE,OAAQ,GAAE,KAAK,QAAQ,OAAO,EAAE,EAAE,EAAE,EAAE,QAAQ,OAAO,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,GAAG,EAAE,KAAK,QAAQ,CAAC,KAAM,KAAI,EAAE,EAAE,EAAE,EAAE,QAAQ,OAAO,IAAI,KAAK,QAAQ,KAAK,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,MAAO,MAAK,UAAU,KAAK,cAAc,KAAK,UAAU,EAAE,SAAS,EAAE,KAAK,QAAQ,KAAK,cAAc,KAAK,QAAQ,EAAE,OAAO,EAAE,KAAK,SAAS,KAAK,cAAc,KAAK,SAAS,EAAE,QAAQ,EAAE,KAAK,IAAI,KAAK,cAAc,KAAK,IAAI,EAAE,GAAG,EAAE,KAAK,KAAK,KAAK,cAAc,KAAK,KAAK,EAAE,IAAI,EAAE,KAAK,KAAK,KAAK,cAAc,KAAK,KAAK,EAAE,IAAI,EAAE,KAAK,KAAK,KAAK,cAAc,KAAK,KAAK,EAAE,IAAI,EAAE,KAAK,KAAK,KAAK,cAAc,KAAK,KAAK,EAAE,IAAI,EAAE,KAAK,KAAK,KAAK,cAAc,KAAK,KAAK,EAAE,IAAI,EAAE,KAAK,OAAO,KAAK,cAAc,KAAK,OAAO,EAAE,MAAM,EAAE,KAAK,gBAAgB,KAAK,cAAc,KAAK,gBAAgB,EAAE,eAAe,EAAE,KAAK,gBAAgB,KAAK,cAAc,KAAK,gBAAgB,EAAE,eAAe,EAAE,KAAK,qBAAqB,KAAK,cAAc,KAAK,qBAAqB,EAAE,oBAAoB,EAAE,KAAK,qBAAqB,KAAK,cAAc,KAAK,qBAAqB,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,MAAO,GAAE,GAAG,CAAC,EAAE,MAAO,GAAE,GAAI,GAAE,EAAE,OAAO,EAAE,OAAO,EAAE,YAAa,cAAa,EAAE,YAAa,cAAa,GAAG,EAAE,CAAC,GAAI,GAAE,GAAI,cAAa,CAAC,EAAE,MAAO,GAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAI,GAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,MAAO,EAAC,CAAC,MAAO,GAAE,OAAO,CAAC,CAAC,EAAE,EAAE,UAAU,UAAU,UAAU,CAAC,GAAG,CAAC,KAAK,UAAU,KAAM,IAAI,OAAM,wBAAwB,EAAE,GAAI,GAAE,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,EAAE,aAAa,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,EAAE,KAAM,IAAI,OAAM,OAAO,EAAE,uCAAuC,CAAC,EAAE,MAAO,GAAE,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,aAAa,KAAK,SAAS,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,KAAM,IAAI,OAAM,OAAO,EAAE,oBAAoB,EAAE,yCAAyC,EAAE,GAAG,CAAC,EAAE,KAAK,SAAS,EAAE,EAAE,EAAE,WAAW,KAAK,OAAO,EAAE,KAAK,UAAU,EAAE,EAAE,EAAE,YAAY,KAAK,QAAQ,EAAE,KAAK,KAAK,EAAE,EAAE,EAAE,OAAO,KAAK,GAAG,EAAE,KAAK,MAAM,EAAE,EAAE,EAAE,QAAQ,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,EAAE,EAAE,QAAQ,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,EAAE,EAAE,QAAQ,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,EAAE,EAAE,QAAQ,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,EAAE,EAAE,QAAQ,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,EAAE,EAAE,UAAU,KAAK,MAAM,EAAE,KAAK,iBAAiB,EAAE,EAAE,EAAE,oBAAoB,KAAK,eAAe,EAAE,KAAK,iBAAiB,EAAE,EAAE,EAAE,oBAAoB,KAAK,eAAe,EAAE,KAAK,sBAAsB,EAAE,EAAE,EAAE,yBAAyB,KAAK,oBAAoB,EAAE,KAAK,sBAAsB,EAAE,EAAE,EAAE,yBAAyB,KAAK,oBAAoB,CAAC,EAAE,EAAE,UAAU,UAAU,UAAU,CAAC,GAAI,GAAE,KAAK,YAAY,MAAO,MAAK,WAAY,GAAE,UAAU,KAAK,WAAW,KAAK,SAAU,GAAE,QAAQ,KAAK,SAAS,KAAK,UAAW,GAAE,SAAS,KAAK,UAAU,KAAK,KAAM,GAAE,IAAI,KAAK,KAAK,KAAK,MAAO,GAAE,KAAK,KAAK,MAAM,KAAK,MAAO,GAAE,KAAK,KAAK,MAAM,KAAK,MAAO,GAAE,KAAK,KAAK,MAAM,KAAK,MAAO,GAAE,KAAK,KAAK,MAAM,KAAK,MAAO,GAAE,KAAK,KAAK,MAAM,KAAK,QAAS,GAAE,OAAO,KAAK,QAAQ,KAAK,iBAAkB,GAAE,gBAAgB,KAAK,gBAAgB,EAAE,gBAAgB,YAAY,IAAI,KAAK,iBAAkB,GAAE,gBAAgB,KAAK,iBAAiB,KAAK,sBAAuB,GAAE,qBAAqB,KAAK,qBAAqB,EAAE,qBAAqB,YAAY,IAAI,KAAK,sBAAuB,GAAE,qBAAqB,KAAK,sBAAsB,EAAE,QAAQ,KAAK,QAAQ,CAAC,EAAE,EAAE,gBAAgB,SAAS,EAAE,EAAE,EAAE,CAAC,MAAO,GAAE,aAAa,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,oBAAoB,SAAS,EAAE,EAAE,EAAE,CAAC,MAAO,GAAE,aAAa,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,aAAa,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,GAAI,GAAE,MAAO,GAAE,sBAAsB,EAAE,EAAE,YAAY,GAAI,GAAE,UAAU,EAAE,gBAAgB,EAAE,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,sBAAsB,EAAE,EAAE,UAAU,GAAI,GAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,sBAAsB,EAAE,EAAE,WAAW,GAAI,GAAE,SAAS,EAAE,gBAAgB,EAAE,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,sBAAsB,EAAE,EAAE,MAAM,GAAI,GAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,sBAAsB,EAAE,EAAE,OAAO,GAAI,GAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,sBAAsB,EAAE,EAAE,OAAO,GAAI,GAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,sBAAsB,EAAE,EAAE,OAAO,GAAI,GAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,sBAAsB,EAAE,EAAE,OAAO,GAAI,GAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,sBAAsB,EAAE,EAAE,OAAO,GAAI,GAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,sBAAsB,EAAE,EAAE,SAAS,GAAI,GAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,sBAAsB,EAAE,EAAE,mBAAmB,GAAI,GAAE,gBAAgB,EAAE,gBAAgB,EAAE,EAAE,oBAAoB,EAAE,CAAC,GAAG,EAAE,sBAAsB,EAAE,EAAE,mBAAmB,GAAI,GAAE,gBAAgB,EAAE,gBAAgB,EAAE,EAAE,oBAAoB,EAAE,CAAC,GAAG,EAAE,sBAAsB,EAAE,EAAE,wBAAwB,GAAI,GAAE,qBAAqB,EAAE,gBAAgB,EAAE,EAAE,yBAAyB,EAAE,CAAC,GAAG,EAAE,sBAAsB,EAAE,EAAE,wBAAwB,GAAI,GAAE,qBAAqB,EAAE,gBAAgB,EAAE,EAAE,yBAAyB,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,aAAa,SAAS,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,eAAe,CAAC,EAAE,EAAE,UAAU,SAAS,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,YAAY,CAAC,EAAE,EAAE,eAAe,SAAS,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,iBAAiB,CAAC,EAAE,EAAE,iBAAiB,SAAS,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,mBAAmB,CAAC,EAAE,EAAE,aAAa,SAAS,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,eAAe,CAAC,EAAE,EAAE,eAAe,SAAS,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,iBAAiB,CAAC,EAAE,EAAE,YAAY,SAAS,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,cAAc,CAAC,EAAE,EAAE,iBAAiB,SAAS,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,cAAc,CAAC,EAAE,EAAE,kBAAkB,SAAS,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,cAAc,CAAC,EAAE,EAAE,aAAa,SAAS,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,eAAe,CAAC,EAAE,EAAE,kBAAkB,SAAS,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,eAAe,CAAC,EAAE,EAAE,0BAA0B,SAAS,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,eAAe,CAAC,EAAE,EAAE,YAAY,SAAS,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,cAAc,CAAC,EAAE,EAAE,WAAW,SAAS,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,aAAa,CAAC,EAAE,EAAE,cAAc,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,gBAAgB,CAAC,EAAE,EAAE,gBAAgB,SAAS,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,kBAAkB,CAAC,EAAE,EAAE,iBAAiB,SAAS,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,mBAAmB,CAAC,EAAE,EAAE,cAAc,SAAS,EAAE,CAAC,KAAM,AAAS,KAAT,QAAa,GAAE,CAAC,YAAY,EAAE,EAAE,KAAK,aAAa,EAAE,aAAa,GAAG,OAAO,EAAE,OAAO,IAAI,gBAAgB,CAAC,GAAG,EAAE,EAAE,WAAW,gBAAgB,CAAC,EAAE,EAAE,gBAAgB,SAAS,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,kBAAkB,CAAC,EAAE,EAAE,eAAe,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,EAAE,GAAE,EAAE,GAAE,EAAE,GAAE,EAAE,GAAE,EAAE,GAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAE,EAAE,GAAE,EAAE,EAAE,KAAK,GAAG,GAAI,GAAE,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,EAAE,kBAAkB,GAAE,AAAK,EAAE,uBAAP,GAA4B,GAAG,EAAE,GAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,WAAW,GAAG,CAAC,AAAS,IAAT,QAAa,GAAE,EAAE,EAAE,QAAQ,GAAI,GAAE,EAAE,iBAAiB,CAAC,GAAI,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,OAAO,CAAC,GAAI,IAAE,EAAE,GAAE,EAAE,GAAE,EAAE,GAAE,EAAE,GAAE,EAAE,GAAE,EAAE,GAAE,EAAE,GAAE,EAAE,GAAE,EAAE,GAAE,EAAE,GAAE,EAAE,GAAE,EAAE,GAAE,EAAE,GAAE,EAAE,GAAE,EAAE,GAAE,EAAE,GAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,GAAE,GAAE,EAAE,OAAO,EAAE,GAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,GAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,GAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,GAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE,kBAAkB,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,EAAE,GAAG,EAAE,GAAI,IAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAG,GAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAE,EAAE,EAAE,GAAG,IAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAE,GAAE,EAAE,GAAG,IAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAE,EAAE,EAAE,EAAE,GAAG,EAAE,IAAG,EAAE,EAAE,GAAG,EAAE,IAAG,EAAE,EAAE,IAAG,EAAE,IAAG,EAAE,EAAE,IAAG,EAAE,IAAG,EAAE,EAAE,IAAG,EAAE,IAAG,EAAE,GAAG,GAAG,GAAE,EAAE,GAAG,EAAE,KAAI,EAAE,GAAG,EAAE,GAAG,GAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAE,EAAE,EAAE,GAAG,GAAG,EAAE,AAAK,GAAE,KAAK,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAA5B,EAA+B,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAI,GAAE,aAAa,GAAG,EAAE,EAAE,EAAE,aAAa,GAAG,EAAE,EAAE,EAAE,aAAa,GAAG,EAAE,GAAG,GAAG,GAAI,GAAE,eAAe,GAAG,EAAG,GAAE,GAAG,EAAE,IAAG,EAAE,KAAI,EAAE,EAAE,eAAe,GAAG,EAAG,GAAE,GAAG,EAAE,IAAG,EAAE,KAAI,EAAE,EAAE,eAAe,GAAG,EAAG,GAAE,IAAG,EAAE,IAAG,EAAE,IAAI,GAAG,GAAG,GAAI,IAAE,KAAK,MAAO,GAAE,eAAe,GAAG,EAAE,EAAE,MAAM,QAAQ,EAAE,IAAG,CAAC,EAAE,GAAE,KAAK,MAAO,GAAE,eAAe,GAAG,EAAE,EAAE,MAAM,QAAQ,EAAE,IAAG,CAAC,EAAE,GAAE,KAAK,MAAO,GAAE,eAAe,GAAG,EAAE,EAAE,MAAM,QAAQ,EAAE,IAAG,CAAC,EAAE,GAAE,KAAK,MAAO,GAAE,GAAG,EAAE,MAAM,QAAQ,EAAE,IAAG,CAAC,EAAE,GAAE,KAAK,MAAO,GAAE,GAAG,EAAE,MAAM,QAAQ,EAAE,IAAG,CAAC,EAAE,GAAE,KAAK,MAAO,GAAE,IAAG,EAAE,MAAM,QAAQ,EAAE,IAAG,CAAC,EAAE,GAAE,KAAK,MAAO,GAAE,IAAG,EAAE,MAAM,QAAQ,EAAE,IAAG,CAAC,EAAE,GAAE,KAAK,MAAO,GAAE,IAAG,EAAE,MAAM,QAAQ,EAAE,IAAG,CAAC,EAAE,GAAE,KAAK,MAAO,GAAE,IAAG,EAAE,MAAM,QAAQ,EAAE,IAAG,CAAC,EAAE,GAAE,KAAK,MAAO,GAAE,IAAG,EAAE,MAAM,QAAQ,EAAE,IAAG,CAAC,EAAE,GAAE,KAAK,MAAO,GAAE,IAAG,EAAE,MAAM,QAAQ,EAAE,IAAG,CAAC,EAAE,GAAE,KAAK,MAAO,GAAE,GAAG,EAAE,MAAM,QAAQ,EAAE,IAAG,CAAC,EAAE,GAAE,GAAE,EAAE,OAAO,IAAI,GAAE,EAAE,GAAE,GAAE,GAAE,EAAE,OAAO,IAAI,GAAE,EAAE,GAAE,GAAE,GAAE,EAAE,OAAO,IAAI,GAAE,EAAE,GAAE,GAAE,GAAE,EAAE,OAAO,IAAI,GAAE,EAAE,GAAE,EAAE,kBAAkB,IAAG,EAAE,kBAAkB,IAAG,EAAE,kBAAkB,IAAG,GAAI,OAAM,EAAE,kBAAkB,IAAG,EAAE,kBAAkB,IAAG,EAAE,kBAAkB,IAAG,GAAI,OAAM,EAAE,kBAAkB,IAAG,EAAE,kBAAkB,IAAG,EAAE,kBAAkB,IAAG,GAAI,OAAM,EAAE,kBAAkB,IAAG,EAAE,kBAAkB,IAAG,EAAE,kBAAkB,IAAG,GAAI,OAAM,EAAE,kBAAkB,IAAG,KAAK,CAAC,EAAE,IAAG,IAAG,EAAE,kBAAkB,IAAG,KAAK,CAAC,EAAE,IAAG,IAAG,IAAG,IAAG,EAAE,kBAAkB,IAAG,KAAK,CAAC,EAAE,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,EAAE,kBAAkB,IAAG,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,eAAe,CAAC,GAAI,IAAG,EAAE,GAAG,GAAG,IAAI,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,gBAAgB,EAAE,eAAe,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,KAAI,EAAE,EAAE,KAAI,EAAE,EAAE,KAAI,EAAE,EAAE,KAAI,EAAE,EAAE,KAAI,EAAE,EAAE,KAAI,EAAE,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,AAAK,GAAE,KAAK,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAA5B,EAA+B,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,cAAc,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,OAAO,EAAE,GAAG,EAAE,iBAAkB,GAAE,UAAU,UAAW,GAAE,SAAS,GAAI,GAAE,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,UAAW,GAAE,WAAW,OAAQ,GAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,GAAI,GAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,GAAI,GAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,GAAI,GAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAG,GAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAG,GAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAG,GAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAG,GAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,iBAAiB,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,GAAI,GAAE,EAAE,EAAE,UAAU,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,GAAI,GAAE,EAAE,QAAQ,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,GAAI,GAAE,EAAE,SAAS,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,GAAI,GAAE,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,GAAI,GAAE,EAAE,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,GAAI,GAAE,EAAE,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,GAAI,GAAE,EAAE,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,GAAI,GAAE,EAAE,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,GAAI,GAAE,EAAE,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,GAAI,GAAE,EAAE,OAAO,GAAG,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,GAAI,GAAE,EAAE,gBAAgB,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,mBAAmB,EAAE,GAAI,GAAE,EAAE,gBAAgB,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,mBAAmB,EAAE,GAAI,GAAE,EAAE,QAAQ,GAAI,GAAE,QAAQ,GAAG,EAAE,mBAAmB,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,SAAS,GAAE,EAAE,EAAE,CAAc,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,GAAI,GAAE,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,YAAY,EAAE,MAAO,GAAE,iBAAiB,cAAc,EAAE,WAAW,QAAQ,EAAE,qBAAqB,kBAAkB,EAAE,yBAAyB,sBAAsB,EAAE,oBAAoB,iBAAiB,EAAE,aAAa,UAAU,EAAE,yBAAyB,sBAAsB,EAAE,4BAA4B,yBAAyB,EAAE,qBAAqB,kBAAkB,EAAE,mBAAmB,gBAAgB,EAAE,sCAAsC,mCAAmC,EAAE,YAAY,SAAS,EAAE,gBAAgB,aAAa,EAAE,qBAAqB,UAAU,EAAE,uBAAuB,oBAAoB,EAAE,qBAAqB,kBAAkB,EAAE,YAAY,SAAS,EAAE,mBAAmB,gBAAgB,EAAE,WAAW,QAAQ,EAAE,gCAAgC,EAAE,EAAE,kDAAkD,EAAE,EAAE,yCAAyC,EAAE,EAAE,uCAAuC,EAAE,EAAE,wCAAwC,EAAE,EAAE,kCAAkC,EAAE,EAAE,4BAA4B,EAAE,EAAE,8BAA8B,EAAE,EAAE,kCAAkC,EAAE,EAAE,iCAAiC,EAAE,EAAE,iCAAiC,EAAE,EAAE,gCAAgC,EAAE,EAAE,gCAAgC,EAAE,EAAE,8CAA8C,EAAE,EAAE,iDAAiD,EAAE,EAAE,4CAA4C,EAAE,EAAE,gCAAgC,EAAE,EAAE,mCAAmC,EAAE,EAAE,iCAAiC,EAAE,EAAE,iCAAiC,EAAE,EAAE,qCAAqC,EAAE,EAAE,sCAAsC,EAAE,EAAE,2BAA2B,EAAE,EAAE,6BAA6B,EAAE,EAAE,uBAAuB,EAAE,EAAE,uCAAuC,EAAE,EAAE,gDAAgD,EAAE,EAAE,yCAAyC,EAAE,EAAE,0DAA0D,EAAE,EAAE,mDAAmD,EAAE,EAAE,8BAA8B,EAAE,EAAE,wBAAwB,EAAE,EAAE,wBAAwB,EAAE,EAAE,sBAAsB,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,WAAW,EAAE,CAAC,MAAO,GAAE,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,MAAO,QAAO,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,MAAO,QAAO,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,UAAU,aAAa,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,IAAI,OAAO,UAAU,EAAE,KAAK,QAAe,IAAE,KAAK,GAAG,OAAlB,IAAK,CAAyB,KAAK,OAAO,EAAE,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,MAAM,UAAU,CAAC,KAAK,OAAO,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,SAAS,GAAE,EAAE,EAAE,CAAc,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,GAAI,GAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,YAAY,EAAE,MAAO,GAAE,YAAY,EAAE,EAAE,UAAU,EAAE,EAAE,YAAY,EAAE,EAAE,aAAa,EAAE,EAAE,YAAY,GAAG,EAAE,WAAW,GAAG,EAAE,iBAAiB,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,KAAK,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,KAAK,KAAK,EAAE,CAAC,GAAG,KAAK,MAAO,GAAE,IAAI,KAAK,EAAE,wBAAwB,GAAG,EAAE,cAAc,GAAI,GAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,MAAO,QAAO,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,KAAK,KAAK,EAAE,CAAC,GAAG,KAAK,MAAO,GAAE,SAAS,EAAE,CAAC,CAAC,MAAO,QAAO,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,GAAE,EAAE,EAAE,CAAc,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,GAAI,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,YAAY,EAAE,MAAO,QAAO,eAAe,EAAE,wBAAwB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,sBAAsB,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,yBAAyB,GAAI,MAAK,uBAAuB,EAAE,EAAE,EAAE,wBAAwB,EAAE,EAAE,yBAAyB,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,uBAAuB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,qBAAqB,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,wBAAwB,GAAI,MAAK,sBAAsB,EAAE,EAAE,EAAE,wBAAwB,EAAE,EAAE,yBAAyB,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,wBAAwB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,sBAAsB,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,yBAAyB,GAAI,MAAK,uBAAuB,EAAE,EAAE,EAAE,wBAAwB,EAAE,EAAE,yBAAyB,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,wBAAwB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,sBAAsB,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,yBAAyB,GAAI,MAAK,uBAAuB,EAAE,EAAE,EAAE,wBAAwB,EAAE,EAAE,yBAAyB,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,2BAA2B,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,yBAAyB,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,4BAA4B,GAAI,MAAK,0BAA0B,EAAE,EAAE,EAAE,wBAAwB,EAAE,EAAE,yBAAyB,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,yBAAyB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,uBAAuB,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,0BAA0B,GAAI,MAAK,wBAAwB,EAAE,EAAE,EAAE,wBAAwB,EAAE,EAAE,yBAAyB,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,yBAAyB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,uBAAuB,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,0BAA0B,GAAI,MAAK,wBAAwB,EAAE,EAAE,EAAE,wBAAwB,EAAE,EAAE,yBAAyB,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,qBAAqB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,mBAAmB,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,sBAAsB,GAAI,MAAK,oBAAoB,EAAE,EAAE,EAAE,wBAAwB,EAAE,EAAE,yBAAyB,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,yBAAyB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,uBAAuB,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,0BAA0B,GAAI,MAAK,wBAAwB,EAAE,EAAE,EAAE,wBAAwB,EAAE,EAAE,yBAAyB,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,2BAA2B,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,yBAAyB,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,4BAA4B,GAAI,MAAK,0BAA0B,EAAE,EAAE,EAAE,wBAAwB,EAAE,EAAE,yBAAyB,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,6BAA6B,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,2BAA2B,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,8BAA8B,GAAI,MAAK,4BAA4B,EAAE,EAAE,EAAE,wBAAwB,EAAE,EAAE,yBAAyB,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,iBAAiB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,eAAe,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,kBAAkB,GAAI,MAAK,gBAAgB,EAAE,EAAE,EAAE,wBAAwB,EAAE,EAAE,yBAAyB,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,0BAA0B,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,wBAAwB,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,2BAA2B,GAAI,MAAK,yBAAyB,EAAE,EAAE,EAAE,wBAAwB,EAAE,EAAE,yBAAyB,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,8BAA8B,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,4BAA4B,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,+BAA+B,GAAI,MAAK,6BAA6B,EAAE,EAAE,EAAE,wBAAwB,EAAE,EAAE,yBAAyB,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,8BAA8B,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,4BAA4B,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,+BAA+B,GAAI,MAAK,6BAA6B,EAAE,EAAE,EAAE,wBAAwB,EAAE,EAAE,yBAAyB,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,sBAAsB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,oBAAoB,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,uBAAuB,GAAI,MAAK,qBAAqB,EAAE,EAAE,EAAE,wBAAwB,EAAE,EAAE,yBAAyB,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,4BAA4B,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,0BAA0B,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,6BAA6B,GAAI,MAAK,2BAA2B,EAAE,EAAE,EAAE,wBAAwB,EAAE,EAAE,yBAAyB,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,0BAA0B,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,wBAAwB,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,2BAA2B,GAAI,MAAK,yBAAyB,EAAE,EAAE,EAAE,wBAAwB,EAAE,EAAE,yBAAyB,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,uBAAuB,GAAG,EAAE,sBAAsB,GAAG,EAAE,uBAAuB,GAAG,EAAE,uBAAuB,GAAG,EAAE,0BAA0B,GAAG,EAAE,wBAAwB,GAAG,EAAE,wBAAwB,GAAG,EAAE,oBAAoB,GAAG,EAAE,wBAAwB,GAAG,EAAE,0BAA0B,GAAG,EAAE,4BAA4B,GAAG,EAAE,gBAAgB,GAAG,EAAE,yBAAyB,GAAG,EAAE,6BAA6B,GAAG,EAAE,6BAA6B,GAAG,EAAE,qBAAqB,GAAG,EAAE,2BAA2B,GAAG,EAAE,yBAAyB,GAAG,CAAC,GAAG,EAAE,SAAS,GAAE,EAAE,EAAE,CAAc,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,GAAC,GAAI,GAAI,GAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,EAAE,EAAE,EAAE,GAAE,EAAE,EAAE,EAAE,GAAE,EAAE,EAAE,EAAE,GAAE,EAAE,EAAE,EAAE,GAAE,UAAU,CAAC,aAAY,CAAC,KAAK,aAAa,GAAG,KAAK,aAAa,GAAG,KAAK,WAAW,GAAG,KAAK,QAAQ,EAAE,CAAC,MAAO,QAAO,eAAe,GAAE,UAAU,cAAc,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,YAAY,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,aAAa,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,GAAE,UAAU,cAAc,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,YAAY,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,aAAa,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,GAAE,UAAU,YAAY,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,UAAU,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,WAAW,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,GAAE,UAAU,SAAS,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,OAAO,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,QAAQ,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAC,IAAI,GAAE,UAAU,CAAC,YAAW,EAAE,CAAC,KAAK,iBAAiB,GAAG,KAAK,gBAAgB,GAAG,KAAK,iBAAiB,GAAG,KAAK,mBAAmB,KAAK,KAAK,oBAAoB,KAAK,KAAK,sBAAsB,EAAE,KAAK,oBAAoB,GAAG,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,yBAAyB,GAAI,GAAE,EAAE,EAAE,CAAC,EAAE,KAAK,iCAAiC,GAAI,GAAE,EAAE,EAAE,CAAC,EAAE,KAAK,qBAAqB,EAAE,KAAK,6BAA6B,EAAE,KAAK,iBAAiB,GAAG,KAAK,oBAAoB,GAAG,KAAK,oBAAoB,GAAG,KAAK,OAAO,CAAC,CAAC,MAAO,QAAO,eAAe,GAAE,UAAU,mBAAmB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,gBAAgB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,GAAE,UAAU,+BAA+B,SAAS,EAAE,CAAC,MAAO,MAAK,oBAAoB,EAAE,EAAE,OAAO,eAAe,GAAE,UAAU,sBAAsB,CAAC,IAAI,UAAU,CAAC,MAAO,IAAI,GAAE,EAAE,KAAK,sBAAsB,KAAK,qBAAqB,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,GAAE,UAAU,WAAW,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,SAAS,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,UAAU,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,GAAE,UAAU,WAAW,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,SAAS,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,UAAU,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,GAAE,UAAU,uBAAuB,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,OAAO,YAAY,4BAA4B,GAAI,MAAK,UAAU,EAAE,QAAQ,EAAE,KAAK,KAAK,UAAU,EAAE,QAAQ,EAAE,IAAI,KAAK,sBAAsB,KAAK,UAAU,KAAK,sBAAsB,KAAK,UAAU,EAAE,GAAE,UAAU,oBAAoB,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,OAAO,EAAE,EAAE,YAAY,EAAE,EAAE,kBAAkB,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,oBAAqB,GAAE,MAAM,OAAO,EAAE,eAAe,GAAI,GAAE,CAAC,CAAE,IAAG,EAAE,KAAK,EAAE,YAAY,EAAG,GAAE,mBAAmB,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,kBAAkB,KAAK,iBAAiB,eAAe,KAAK,iBAAiB,cAAc,oBAAqB,GAAE,oBAAqB,MAAK,iBAAiB,cAAc,YAAY,EAAE,MAAM,OAAO,KAAK,iBAAiB,cAAc,YAAY,EAAE,MAAM,OAAO,EAAE,eAAe,EAAE,mBAAmB,KAAK,EAAE,SAAS,EAAE,OAAQ,IAAE,EAAE,GAAE,EAAE,kBAAkB,GAAE,GAAE,OAAO,KAAK,EAAE,GAAE,IAAG,OAAO,KAAK,sBAAsB,KAAK,sBAAsB,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAI,IAAE,EAAE,OAAO,KAAK,gBAAgB,GAAE,EAAE,aAAa,GAAE,EAAE,YAAY,GAAG,EAAE,eAAe,EAAE,cAAc,EAAE,EAAE,EAAC,EAAE,EAAE,oBAAoB,eAAe,CAAC,GAAI,IAAE,GAAI,IAAE,EAAE,GAAE,EAAE,CAAC,EAAE,KAAK,qBAAqB,EAAC,EAAE,EAAE,oBAAoB,gBAAgB,GAAE,EAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAE,UAAU,qBAAqB,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,OAAO,EAAE,UAAU,CAAC,EAAE,SAAS,qBAAsB,GAAE,SAAS,KAAM,GAAE,SAAS,IAAI,EAAE,iBAAiB,EAAE,MAAM,QAAQ,EAAE,MAAM,QAAQ,EAAE,EAAE,WAAW,EAAE,YAAY,GAAG,EAAE,GAAE,UAAU,2BAA2B,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,OAAO,EAAE,GAAI,IAAE,EAAE,EAAE,EAAE,KAAK,sBAAsB,KAAK,qBAAqB,EAAE,MAAO,IAAI,GAAE,IAAI,EAAE,KAAK,EAAE,uBAAuB,gBAAgB,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,uBAAuB,EAAE,GAAE,UAAU,oBAAoB,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,GAAI,cAAa,cAAc,CAAC,EAAE,KAAK,2BAA2B,EAAE,EAAE,GAAE,EAAE,WAAW,GAAG,KAAK,oBAAoB,EAAE,CAAC,CAAC,EAAE,GAAE,UAAU,oBAAoB,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,GAAI,cAAa,cAAc,CAAC,EAAE,KAAK,2BAA2B,EAAE,EAAE,GAAE,EAAE,WAAW,GAAG,KAAK,oBAAoB,EAAE,CAAC,CAAC,EAAE,GAAE,UAAU,oBAAoB,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,EAAE,KAAK,OAAO,GAAG,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,gBAAgB,EAAE,WAAW,GAAI,GAAE,EAAE,WAAW,8BAA8B,GAAG,EAAE,CAAC,GAAG,EAAE,gBAAgB,OAAO,EAAE,eAAe,EAAE,EAAE,yBAAyB,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,EAAE,EAAE,YAAa,GAAE,EAAE,eAAe,EAAE,EAAE,yBAAyB,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,EAAE,UAAW,GAAE,EAAE,eAAe,EAAE,EAAE,2BAA2B,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,EAAE,UAAW,GAAE,EAAE,eAAe,EAAE,EAAE,0BAA0B,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,EAAE,EAAE,mBAAmB,EAAE,EAAE,yBAAyB,GAAG,OAAO,WAAY,UAAU,CAAC,GAAI,IAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,sBAAuB,SAAS,GAAE,CAAC,MAAO,IAAE,YAAY,GAAE,WAAW,GAAE,WAAW,GAAE,eAAe,GAAE,cAAc,mBAAmB,EAAE,EAAE,yBAAyB,GAAG,IAAG,EAAE,eAAe,EAAG,GAAG,EAAE,sBAAsB,EAAE,IAAG,GAAE,KAAK,GAAE,YAAY,GAAG,AAAI,EAAE,wBAAN,GAA6B,KAAK,MAAM,EAAE,qBAAqB,GAAE,gBAAgB,CAAC,EAAE,qBAAsB,GAAE,qBAAqB,EAAE,EAAE,eAAe,EAAE,EAAE,0BAA0B,EAAE,EAAE,UAAU,GAAE,WAAW,CAAC,CAAC,EAAE,EAAG,GAAE,cAAc,CAAC,CAAC,KAAM,QAAQ,GAAE,EAAE,GAAE,EAAE,kBAAkB,EAAE,GAAE,OAAO,IAAK,EAAE,GAAE,GAAG,OAAO,KAAK,sBAAsB,KAAK,sBAAsB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAI,IAAE,GAAE,EAAE,YAAY,GAAG,EAAE,eAAe,EAAE,cAAc,EAAE,EAAE,EAAC,EAAE,EAAE,oBAAoB,eAAe,CAAC,GAAI,IAAE,GAAI,IAAE,EAAE,GAAE,EAAE,CAAC,EAAE,KAAK,qBAAqB,EAAC,EAAE,EAAE,oBAAoB,gBAAgB,GAAE,EAAC,CAAC,CAAC,CAAC,EAAE,GAAE,UAAU,kBAAkB,UAAU,CAAC,MAAO,MAAK,IAAI,KAAK,yBAAyB,EAAE,KAAK,SAAS,EAAE,GAAE,uBAAuB,KAAK,IAAI,KAAK,yBAAyB,EAAE,KAAK,SAAS,EAAE,GAAE,qBAAqB,EAAE,GAAE,UAAU,kBAAkB,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,GAAI,cAAa,YAAY,CAAC,EAAE,EAAE,GAAI,IAAE,EAAE,EAAE,YAAY,GAAG,EAAE,YAAY,GAAG,KAAK,2BAA2B,EAAE,EAAE,GAAE,EAAE,SAAS,GAAG,KAAK,kBAAkB,EAAE,EAAE,CAAC,CAAC,EAAE,GAAE,UAAU,kBAAkB,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,OAAO,GAAG,GAAG,GAAG,EAAE,WAAW,CAAC,GAAG,KAAK,cAAc,EAAE,WAAW,KAAK,kBAAkB,KAAK,eAAgB,GAAE,eAAe,EAAE,cAAc,EAAE,CAAC,EAAE,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,oBAAoB,gBAAgB,CAAC,GAAI,GAAE,GAAE,EAAE,YAAY,EAAE,GAAI,IAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,qBAAqB,CAAC,EAAE,EAAE,oBAAoB,gBAAgB,EAAE,CAAC,CAAC,CAAC,GAAI,IAAE,EAAE,WAAW,8BAA8B,GAAG,IAAG,CAAC,EAAE,OAAO,CAAC,GAAE,eAAe,EAAE,EAAE,uBAAuB,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,aAAa,GAAE,eAAe,EAAE,EAAE,qBAAqB,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,EAAE,GAAI,IAAE,EAAE,WAAW,4BAA4B,EAAE,EAAE,0BAA0B,EAAE,EAAE,aAAa,IAAG,GAAE,eAAe,EAAE,EAAE,2BAA2B,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,OAAO,OAAQ,IAAE,EAAE,GAAE,EAAE,gBAAgB,GAAE,GAAE,OAAO,KAAK,EAAE,GAAE,IAAG,OAAO,KAAK,sBAAsB,KAAK,sBAAsB,EAAE,CAAC,EAAE,GAAG,KAAK,iBAAiB,KAAK,kBAAkB,KAAK,cAAc,CAAC,GAAI,IAAE,KAAK,gBAAgB,4BAA4B,EAAE,EAAE,uBAAuB,EAAE,IAAG,GAAE,eAAe,EAAE,EAAE,wBAAwB,EAAE,EAAE,UAAU,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAI,IAAE,EAAE,AAAG,EAAE,oBAAoB,gBAAmB,EAAC,EAAE,QAAQ,CAAC,EAAE,WAAY,GAAE,aAAa,EAAE,oBAAoB,gBAAgB,GAAE,EAAE,UAAU,EAAE,GAAE,GAAE,EAAE,WAAW,EAAE,aAAa,EAAE,oBAAoB,gBAAgB,GAAE,EAAE,gBAAgB,GAAI,IAAE,GAAE,EAAE,kBAAkB,KAAI,GAAE,GAAI,IAAE,EAAE,GAAE,EAAE,CAAC,EAAE,KAAK,qBAAqB,CAAC,EAAE,EAAE,oBAAoB,gBAAgB,EAAE,EAAC,GAAM,EAAE,QAAQ,IAAE,GAAE,EAAE,UAAU,EAAE,GAAI,IAAE,EAAE,GAAE,EAAE,CAAC,EAAE,KAAK,qBAAqB,CAAC,EAAE,EAAE,oBAAoB,gBAAgB,EAAE,EAAC,IAAG,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,EAAC,CAAC,EAAE,GAAE,UAAU,kBAAkB,SAAS,EAAE,CAAC,MAAO,AAAS,KAAT,QAAa,GAAE,GAAG,KAAK,iBAAiB,EAAE,EAAE,GAAE,UAAU,cAAc,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,AAAS,IAAT,QAAa,GAAE,IAAI,AAAS,IAAT,QAAa,GAAE,IAAI,AAAS,IAAT,QAAa,GAAE,IAAI,AAAS,IAAT,QAAa,GAAE,MAAM,GAAI,GAAE,KAAK,OAAO,GAAG,GAAI,GAAE,EAAE,YAAY,mBAAmB,EAAE,CAAC,KAAK,kBAAkB,KAAK,gBAAgB,KAAK,mBAAmB,EAAE,GAAI,IAAE,EAAE,YAAY,KAAK,mBAAmB,SAAS,GAAE,GAAE,CAAC,GAAG,CAAC,EAAE,iBAAiB,CAAC,GAAI,IAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,qBAAqB,GAAG,EAAE,sBAAsB,EAAE,EAAE,mBAAmB,GAAE,IAAI,IAAE,GAAE,KAAK,GAAE,WAAW,GAAE,WAAW,8BAA8B,MAAM,EAAE,iBAAiB,EAAE,CAAC,MAAO,GAAC,EAAE,KAAK,oBAAoB,SAAS,GAAE,GAAE,GAAE,CAAC,AAAC,MAAK,MAAM,EAAE,6BAA6B,GAAE,kBAAkB,CAAC,EAAE,qBAAqB,KAAI,EAAE,yBAA0B,GAAE,oBAAoB,GAAG,GAAE,YAAY,GAAG,GAAE,OAAO,GAAG,GAAE,GAAE,EAAE,kBAAkB,EAAE,EAAE,KAAK,gBAAgB,SAAS,GAAE,GAAE,GAAE,GAAE,CAAC,GAAI,IAAE,GAAI,IAAE,EAAE,mBAAmB,KAAK,GAAI,IAAE,KAAK,GAAE,GAAE,gBAAgB,GAAE,EAAE,WAAW,GAAG,GAAE,gBAAgB,GAAE,EAAE,WAAW,GAAG,GAAE,gBAAgB,GAAE,EAAE,UAAU,GAAG,GAAE,gBAAgB,GAAE,EAAE,UAAU,GAAG,GAAE,gBAAgB,GAAE,EAAE,gBAAgB,GAAG,GAAE,gBAAgB,GAAE,EAAE,gBAAgB,EAAE,CAAC,IAAG,GAAE,GAAI,IAAE,EAAE,mBAAmB,GAAE,EAAC,IAAK,IAAE,GAAE,iBAAiB,GAAI,IAAE,GAAG,GAAG,GAAE,CAAC,GAAI,IAAE,GAAE,OAAO,GAAG,GAAE,UAAU,EAAE,oBAAoB,CAAC,GAAE,UAAU,CAAC,GAAI,IAAE,CAAC,GAAE,yBAAyB,IAAI,IAAE,CAAC,GAAE,gBAAgB,GAAE,EAAE,gBAAgB,GAAG,CAAC,GAAE,gBAAgB,GAAE,EAAE,gBAAgB,IAAI,CAAC,GAAE,EAAE,mBAAmB,EAAE,EAAE,0BAA0B,GAAI,IAAE,EAAE,mBAAmB,GAAE,EAAC,IAAK,IAAE,CAAC,GAAE,mBAAmB,EAAE,EAAE,0BAA0B,GAAG,GAAG,MAAK,MAAM,EAAE,6BAA6B,GAAE,kBAAkB,KAAI,EAAE,yBAA0B,IAAE,YAAY,GAAG,GAAE,GAAE,EAAE,kBAAkB,EAAE,GAAE,IAAK,GAAE,mCAAmC,EAAE,2BAA2B,EAAE,2BAA2B,OAAO,WAAW,EAAE,oBAAoB,KAAK,EAAE,GAAE,GAAE,EAAC,EAAE,GAAE,gBAAgB,GAAG,GAAI,IAAE,GAAE,gBAAgB,GAAE,EAAE,gBAAgB,GAAG,GAAE,gBAAgB,GAAE,EAAE,gBAAgB,EAAE,CAAC,IAAG,GAAE,EAAE,mBAAmB,EAAE,EAAE,0BAA0B,GAAI,IAAE,EAAE,mBAAmB,GAAE,EAAC,IAAK,IAAE,GAAE,mBAAmB,EAAE,EAAE,0BAA0B,GAAG,IAAI,MAAI,EAAE,wBAAwB,KAAK,MAAM,EAAE,6BAA6B,GAAE,kBAAkB,CAAC,EAAE,oBAAqB,IAAE,WAAW,EAAE,oBAAqB,GAAE,oBAAoB,GAAG,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,iCAAiC,EAAE,EAAE,yBAAyB,EAAE,EAAE,iCAAiC,EAAE,EAAE,yBAAyB,EAAE,EAAE,uBAAuB,GAAE,GAAE,yBAA0B,GAAE,oCAAoC,aAAa,EAAE,kCAAkC,EAAE,EAAE,mCAAmC,EAAE,2BAA2B,GAAE,GAAE,EAAE,mBAAmB,GAAG,GAAE,GAAE,EAAE,kBAAkB,GAAI,GAAE,6BAA6B,EAAE,EAAE,oBAAoB,GAAG,GAAE,YAAY,GAAG,GAAE,OAAO,GAAG,GAAE,0BAA0B,EAAE,oCAAoC,aAAa,EAAE,kCAAkC,EAAE,EAAE,mCAAmC,EAAE,2BAA2B,GAAE,GAAE,EAAE,kBAAkB,GAAG,GAAE,IAAK,GAAE,oBAAoB,GAAG,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,iCAAiC,EAAE,EAAE,yBAAyB,EAAE,EAAE,iCAAiC,EAAE,EAAE,yBAAyB,EAAE,EAAE,uBAAuB,IAAG,CAAC,CAAC,IAAG,GAAE,GAAE,EAAE,kBAAkB,CAAC,EAAE,KAAK,eAAe,SAAS,GAAE,CAAC,GAAG,AAAS,GAAE,YAAX,QAAuB,IAAE,UAAU,GAAG,EAAE,uBAAuB,EAAC,EAAE,CAAC,EAAE,2BAA2B,KAAK,GAAE,GAAE,OAAO,EAAE,gBAAgB,GAAE,EAAE,aAAa,GAAE,EAAE,WAAW,GAAI,GAAE,wBAAwB,EAAE,cAAc,CAAC,EAAE,sBAAuB,GAAE,qBAAqB,SAAS,GAAE,CAAC,MAAO,IAAE,YAAY,GAAE,WAAW,GAAE,WAAW,GAAE,aAAc,IAAE,yBAAyB,EAAE,kCAAkC,AAAM,GAAE,+BAAR,OAAyC,EAAC,EAAE,wBAAwB,AAAI,GAAE,uBAAuB,UAAU,GAAE,YAAzC,EAAoD,GAAG,GAAI,IAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,qBAAqB,GAAG,EAAE,sBAAsB,EAAE,EAAE,oBAAoB,GAAE,EAAC,CAAC,CAAC,EAAE,KAAK,eAAe,SAAS,GAAE,CAAC,GAAG,EAAE,wBAAwB,EAAE,gBAAgB,KAAK,EAAE,iBAAiB,GAAG,AAAS,GAAE,YAAX,QAAuB,IAAE,UAAU,GAAG,EAAE,uBAAuB,EAAC,EAAE,EAAE,6BAA6B,GAAI,IAAE,iBAAiB,EAAE,SAAS,EAAE,yBAAyB,EAAE,EAAE,UAAU,EAAE,yBAAyB,EAAE,EAAE,UAAU,EAAE,qBAAqB,KAAK,MAAM,CAAC,EAAE,2BAA2B,KAAK,GAAE,GAAE,EAAE,WAAW,GAAI,GAAE,wBAAwB,EAAE,cAAc,CAAC,EAAE,iBAAiB,GAAE,WAAW,GAAG,EAAE,sBAAuB,GAAE,qBAAqB,SAAS,GAAE,CAAC,MAAO,IAAE,YAAY,GAAE,WAAW,GAAE,WAAW,GAAE,aAAc,EAAC,EAAE,wBAAwB,AAAI,GAAE,uBAAuB,UAAU,GAAE,YAAzC,EAAoD,GAAG,EAAE,gBAAgB,KAAK,GAAI,IAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,qBAAqB,GAAG,EAAE,sBAAsB,EAAE,EAAE,oBAAoB,GAAE,EAAC,CAAC,CAAC,EAAE,KAAK,aAAa,SAAS,GAAE,CAAC,AAAI,EAAE,wBAAN,GAA8B,GAAE,wBAAwB,EAAE,cAAc,KAAK,EAAE,iBAAiB,GAAG,AAAS,GAAE,YAAX,QAAuB,IAAE,UAAU,GAAG,EAAE,uBAAuB,EAAC,EAAE,EAAE,2BAA2B,GAAI,IAAE,iBAAiB,EAAE,SAAS,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,oBAAoB,GAAG,SAAS,GAAE,GAAE,CAAC,AAAG,EAAE,uBAAuB,gBAAgB,CAAC,GAAE,QAAW,EAAC,GAAE,WAAc,IAAE,aAAa,EAAE,uBAAuB,gBAAgB,GAAE,EAAE,UAAU,GAAG,EAAE,2BAA2B,KAAK,GAAE,GAAE,EAAE,UAAU,GAAY,GAAE,aAAa,EAAE,uBAAuB,gBAAgB,GAAE,EAAE,gBAAgB,GAAG,EAAE,2BAA2B,KAAK,GAAE,GAAE,EAAE,gBAAgB,IAAY,EAAE,2BAA2B,KAAK,GAAE,GAAE,EAAE,SAAS,IAAS,EAAE,iBAAiB,GAAE,YAAa,GAAE,iBAAiB,GAAE,WAAW,GAAI,GAAE,wBAAwB,EAAE,eAAgB,GAAE,oBAAqB,GAAE,mBAAmB,SAAS,GAAE,CAAC,MAAO,IAAE,YAAY,GAAE,WAAW,GAAE,WAAW,GAAE,aAAc,EAAC,EAAE,wBAAwB,AAAI,GAAE,uBAAuB,UAAU,GAAE,YAAzC,EAAoD,GAAG,CAAC,EAAE,kBAAmB,IAAE,GAAG,GAAE,EAAE,aAAa,EAAE,oBAAoB,iBAAiB,EAAE,mBAAmB,KAAK,EAAC,EAAE,IAAI,IAAE,EAAE,oBAAoB,EAAE,kBAAkB,GAAE,GAAE,EAAC,EAAE,EAAE,oBAAoB,EAAE,oBAAoB,GAAI,EAAE,KAAK,WAAW,SAAS,GAAE,CAAC,GAAI,IAAE,GAAE,EAAE,QAAQ,GAAG,EAAE,wBAAwB,eAAe,CAAC,GAAI,IAAE,GAAI,IAAE,EAAE,GAAE,EAAC,EAAE,GAAG,EAAE,wBAAwB,gBAAgB,GAAE,EAAC,EAAE,GAAE,wBAAwB,MAAM,CAAC,AAAG,EAAE,qBAAqB,gBAAgB,IAAE,GAAI,IAAE,EAAE,GAAE,EAAC,EAAE,EAAE,qBAAqB,gBAAgB,GAAE,EAAC,GAAE,EAAE,eAAe,EAAE,cAAc,eAAe,EAAE,EAAE,wBAAwB,EAAE,EAAE,mBAAmB,EAAE,EAAC,CAAC,CAAC,EAAE,KAAK,SAAS,SAAS,GAAE,CAAC,GAAI,IAAE,GAAE,EAAE,MAAM,GAAG,EAAE,wBAAwB,eAAe,CAAC,GAAI,IAAE,GAAI,IAAE,EAAE,GAAE,EAAC,EAAE,GAAG,EAAE,wBAAwB,gBAAgB,GAAE,EAAC,EAAE,GAAE,wBAAwB,MAAM,CAAC,AAAG,EAAE,qBAAqB,gBAAgB,IAAE,GAAI,IAAE,EAAE,GAAE,EAAC,EAAE,EAAE,qBAAqB,gBAAgB,GAAE,EAAC,GAAE,EAAE,eAAe,EAAE,cAAc,eAAe,EAAE,EAAE,sBAAsB,EAAE,EAAE,mBAAmB,EAAE,EAAC,CAAC,CAAC,EAAE,GAAI,IAAE,UAAU,CAAC,GAAG,CAAC,EAAE,qBAAsB,GAAE,iBAAiB,UAAU,EAAE,WAAW,EAAE,EAAE,EAAE,iBAAiB,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,oBAAoB,GAAG,EAAE,KAAK,uBAAuB,GAAE,wBAAwB,IAAK,UAAS,gBAAgB,GAAG,KAAI,KAAI,KAAK,sBAAsB,GAAE,uBAAuB,IAAK,UAAU,CAAC,GAAI,GAAE,oBAAoB,UAAU,EAAE,UAAU,EAAE,EAAE,oBAAoB,QAAQ,EAAE,QAAQ,EAAE,EAAE,oBAAoB,GAAG,GAAI,KAAI,GAAI,IAAE,EAAE,EAAE,iBAAiB,EAAC,EAAE,GAAG,GAAI,GAAE,iBAAiB,GAAE,OAAO,KAAK,eAAe,EAAE,EAAE,KAAK,gBAAgB,WAAY,UAAS,cAAc,KAAK,EAAE,QAAQ,AAAS,SAAS,eAAlB,OAA+B,aAAa,iBAAiB,EAAE,iBAAiB,KAAK,gBAAgB,KAAK,eAAe,EAAE,GAAG,GAAG,EAAE,iBAAiB,GAAE,OAAO,KAAK,eAAe,EAAE,EAAE,EAAE,CAAC,GAAI,IAAE,EAAE,YAAY,gBAAgB,IAAG,GAAE,iBAAiB,GAAE,KAAK,KAAK,aAAa,EAAE,CAAC,CAAC,KAAK,iBAAiB,EAAE,CAAC,EAAE,GAAE,UAAU,cAAc,UAAU,CAAC,GAAI,GAAE,KAAK,OAAO,YAAY,EAAE,EAAE,EAAE,iBAAiB,CAAC,EAAE,KAAK,oBAAoB,KAAK,kBAAmB,MAAK,mBAAmB,oBAAoB,EAAE,OAAO,KAAK,cAAc,EAAE,KAAK,mBAAmB,oBAAoB,KAAK,gBAAgB,KAAK,cAAc,EAAE,KAAK,mBAAmB,oBAAoB,EAAE,OAAO,KAAK,cAAc,EAAE,OAAO,oBAAoB,EAAE,KAAK,KAAK,YAAY,EAAE,KAAK,uBAAuB,EAAE,uBAAuB,OAAO,KAAK,qBAAqB,EAAE,KAAK,wBAAwB,EAAE,wBAAwB,OAAO,KAAK,sBAAsB,EAAE,KAAK,mBAAmB,oBAAoB,UAAU,KAAK,UAAU,EAAE,KAAK,mBAAmB,oBAAoB,QAAQ,KAAK,QAAQ,EAAE,KAAK,OAAO,oBAAqB,MAAK,mBAAmB,MAAM,OAAO,KAAK,OAAO,eAAe,KAAK,iBAAiB,GAAG,EAAE,GAAE,UAAU,mBAAmB,SAAS,EAAE,EAAE,CAAC,GAAG,AAAS,IAAT,QAAa,GAAE,GAAG,EAAE,GAAI,GAAE,GAAG,KAAK,oBAAoB,KAAK,EAAE,CAAC,GAAI,GAAE,EAAE,KAAK,oBAAoB,GAAG,GAAI,GAAE,EAAE,4BAA4B,EAAE,EAAE,0BAA0B,IAAI,EAAE,eAAe,EAAE,EAAE,2BAA2B,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,oBAAoB,GAAG,EAAE,KAAK,iBAAiB,EAAG,GAAE,KAAK,oBAAoB,KAAM,GAAE,EAAE,4BAA4B,EAAE,EAAE,2BAA2B,IAAI,EAAE,eAAe,EAAE,EAAE,4BAA4B,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAE,UAAU,mBAAmB,UAAU,CAAC,MAAO,MAAK,gBAAgB,EAAE,GAAE,sBAAsB,GAAG,GAAE,eAAe,IAAI,GAAE,iBAAiB,IAAI,GAAE,yBAAyB,GAAG,EAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,SAAS,GAAE,CAAC,WAAW,EAAE,EAAE,CAAC,GAAI,GAAE,GAAE,KAAK,IAAI,GAAG,KAAK,EAAE,cAAc,GAAI,IAAE,CAAC,EAAE,EAAE,uBAAuB,KAAK,EAAE,SAAS,GAAG,EAAE,uBAAuB,GAAG,EAAE,UAAU,GAAG,EAAE,yBAAyB,GAAG,EAAE,WAAW,GAAI,GAAE,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,aAAa,GAAI,GAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,sBAAsB,EAAE,EAAE,gBAAgB,GAAG,EAAE,qBAAqB,GAAG,EAAE,kBAAkB,GAAG,EAAE,kBAAkB,GAAG,EAAE,6BAA6B,KAAK,EAAE,8BAA8B,GAAG,EAAE,iCAAiC,GAAG,EAAE,YAAY,UAAU,EAAE,cAAc,GAAG,EAAE,mBAAmB,GAAG,EAAE,4BAA4B,GAAG,EAAE,0BAA0B,GAAG,EAAE,SAAS,KAAK,EAAE,kBAAkB,KAAK,EAAE,oCAAoC,GAAI,OAAM,EAAE,oBAAoB,GAAI,GAAE,EAAE,EAAE,mBAAmB,KAAK,EAAE,yBAAyB,GAAI,GAAE,EAAE,EAAE,wBAAwB,KAAK,EAAE,wBAAwB,GAAI,GAAE,EAAE,EAAE,8BAA8B,GAAI,GAAE,EAAE,EAAE,uBAAuB,KAAK,EAAE,6BAA6B,GAAI,GAAE,EAAE,EAAE,4BAA4B,GAAI,GAAE,EAAE,EAAE,4BAA4B,GAAI,GAAE,EAAE,EAAE,2BAA2B,GAAI,GAAE,EAAE,EAAE,kBAAkB,GAAI,GAAE,EAAE,EAAE,+BAA+B,GAAI,GAAE,EAAE,EAAE,8BAA8B,KAAK,EAAE,8BAA8B,GAAI,GAAE,EAAE,EAAE,6BAA6B,KAAK,EAAE,yCAAyC,GAAI,GAAE,EAAE,EAAE,wCAAwC,GAAI,GAAE,EAAE,EAAE,qCAAqC,GAAI,GAAE,EAAE,EAAE,oCAAoC,GAAI,GAAE,EAAE,EAAE,uBAAuB,GAAI,GAAE,EAAE,EAAE,2BAA2B,GAAI,GAAE,EAAE,EAAE,0BAA0B,GAAI,GAAE,EAAE,EAAE,0BAA0B,GAAI,GAAE,EAAE,EAAE,yBAAyB,GAAI,GAAE,EAAE,EAAE,6BAA6B,GAAI,GAAE,EAAE,EAAE,4BAA4B,GAAI,GAAE,EAAE,EAAE,kCAAkC,GAAI,GAAE,EAAE,EAAE,iCAAiC,GAAI,GAAE,EAAE,EAAE,yBAAyB,GAAI,GAAE,EAAE,EAAE,wBAAwB,GAAI,GAAE,EAAE,EAAE,6BAA6B,GAAI,GAAE,EAAE,EAAE,4BAA4B,GAAI,GAAE,EAAE,EAAE,6BAA6B,GAAI,GAAE,EAAE,EAAE,kCAAkC,GAAI,GAAE,EAAE,EAAE,4BAA4B,GAAI,GAAE,EAAE,EAAE,iCAAiC,GAAI,GAAE,EAAE,EAAE,4BAA4B,GAAI,GAAE,EAAE,EAAE,2BAA2B,GAAI,GAAE,EAAE,EAAE,sCAAsC,GAAI,GAAE,EAAE,EAAE,qCAAqC,GAAI,GAAE,EAAE,EAAE,uBAAuB,GAAI,GAAE,EAAE,EAAE,sBAAsB,GAAI,GAAE,EAAE,EAAE,sBAAsB,GAAI,GAAE,EAAE,EAAE,iCAAiC,GAAI,GAAE,EAAE,EAAE,gCAAgC,GAAI,GAAE,EAAE,EAAE,yBAAyB,GAAI,GAAE,EAAE,EAAE,kCAAkC,GAAI,GAAE,EAAE,EAAE,oCAAoC,GAAI,GAAE,EAAE,GAAG,EAAE,EAAE,uBAAuB,GAAI,GAAE,EAAE,EAAE,oBAAoB,GAAI,GAAE,EAAE,EAAE,wBAAwB,GAAI,GAAE,EAAE,EAAE,qBAAqB,GAAI,GAAE,EAAE,EAAE,sBAAsB,GAAG,EAAE,iBAAiB,EAAE,EAAE,eAAe,EAAE,EAAE,qBAAqB,EAAE,EAAE,YAAY,GAAG,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,GAAI,GAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,WAAW,GAAG,EAAE,SAAS,EAAE,EAAE,OAAO,IAAI,EAAE,QAAQ,GAAG,EAAE,gBAAgB,GAAG,EAAE,eAAe,GAAG,EAAE,cAAc,GAAI,OAAM,EAAE,iBAAiB,GAAG,EAAE,eAAe,GAAG,EAAE,iBAAiB,GAAG,EAAE,eAAe,GAAG,EAAE,kBAAkB,GAAG,EAAE,kBAAkB,GAAG,EAAE,kBAAkB,GAAG,EAAE,QAAQ,GAAI,GAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,qBAAqB,GAAG,EAAE,qBAAqB,GAAG,EAAE,sBAAsB,GAAG,EAAE,oBAAoB,GAAI,OAAM,EAAE,oBAAoB,GAAI,OAAM,EAAE,cAAc,GAAG,EAAE,wBAAwB,GAAI,GAAE,EAAE,GAAG,EAAE,EAAE,0BAA0B,GAAG,EAAE,eAAe,GAAI,GAAE,EAAE,EAAE,eAAe,GAAI,GAAE,EAAE,EAAE,iBAAiB,GAAI,GAAE,EAAE,EAAE,aAAa,GAAI,GAAE,EAAE,EAAE,eAAe,EAAE,EAAE,mBAAmB,EAAE,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,EAAE,2BAA2B,GAAG,EAAE,uBAAuB,GAAG,EAAE,gBAAgB,GAAG,EAAE,sBAAsB,GAAG,EAAE,cAAc,GAAI,OAAM,GAAG,EAAE,EAAE,gBAAgB,GAAI,OAAM,EAAE,aAAa,GAAI,OAAM,EAAE,YAAY,GAAG,EAAE,mCAAmC,GAAG,EAAE,cAAc,GAAI,GAAE,EAAE,GAAG,EAAE,EAAE,oBAAoB,GAAI,GAAE,EAAE,GAAG,EAAE,EAAE,eAAe,GAAI,GAAE,EAAE,GAAG,EAAE,EAAE,uBAAuB,GAAI,GAAE,EAAE,GAAG,EAAE,EAAE,iBAAiB,GAAI,GAAE,EAAE,EAAE,EAAE,EAAE,uBAAuB,GAAI,GAAE,EAAE,EAAE,EAAE,EAAE,mBAAmB,GAAI,OAAM,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,oBAAoB,GAAG,EAAE,YAAY,GAAG,EAAE,wBAAwB,GAAG,EAAE,qBAAqB,GAAG,EAAE,yBAAyB,EAAE,EAAE,SAAS,EAAE,kBAAkB,EAAE,EAAE,SAAS,EAAE,0BAA0B,EAAE,EAAE,SAAS,EAAE,sCAAsC,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,EAAE,SAAS,EAAE,+BAA+B,EAAE,EAAE,SAAS,EAAE,sBAAsB,EAAE,EAAE,SAAS,EAAE,oBAAoB,EAAE,EAAE,SAAS,EAAE,6BAA6B,EAAE,EAAE,SAAS,EAAE,uBAAuB,EAAE,EAAE,SAAS,EAAE,6BAA6B,EAAE,EAAE,SAAS,EAAE,+BAA+B,EAAE,EAAE,SAAS,EAAE,0BAA0B,EAAE,EAAE,SAAS,EAAE,yBAAyB,EAAE,EAAE,SAAS,EAAE,8BAA8B,EAAE,EAAE,SAAS,EAAE,sBAAsB,EAAE,EAAE,SAAS,EAAE,4BAA4B,EAAE,EAAE,SAAS,EAAE,kBAAkB,EAAE,EAAE,SAAS,EAAE,kBAAkB,EAAE,EAAE,SAAS,EAAE,kBAAkB,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,EAAE,SAAS,EAAE,qBAAqB,KAAK,EAAE,uBAAuB,CAAC,KAAK,GAAG,OAAO,CAAC,EAAE,EAAE,0BAA0B,CAAC,KAAK,GAAG,OAAO,CAAC,EAAE,EAAE,2CAA2C,GAAG,EAAE,oBAAoB,GAAG,EAAE,oCAAoC,GAAG,EAAE,4BAA4B,GAAG,EAAE,0BAA0B,UAAU,CAAC,MAAO,GAAE,QAAQ,aAAa,EAAE,EAAE,6BAA6B,GAAG,GAAI,GAAE,OAAO,EAAE,CAAC,EAAE,CAAC,wBAAwB,GAAG,mBAAmB,GAAG,iBAAiB,GAAG,QAAQ,EAAE,EAAE,CAAC,EAAE,MAAO,GAAE,QAAQ,GAAG,EAAE,EAAE,kBAAkB,EAAE,SAAU,GAAE,EAAE,kBAAkB,EAAE,EAAE,QAAQ,OAAO,KAAK,CAAC,GAAG,EAAE,KAAK,KAAK,EAAE,kBAAkB,GAAI,GAAE,EAAE,CAAC,EAAE,EAAE,GAAI,GAAE,mBAAmB,GAAI,GAAE,EAAE,CAAC,GAAG,EAAE,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,aAAa,EAAE,GAAI,GAAE,8BAA8B,GAAI,GAAE,GAAG,EAAE,+BAA+B,EAAE,yBAA0B,GAAE,qBAAqB,IAAI,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,iBAAiB,GAAG,EAAE,SAAS,EAAE,QAAQ,0BAA0B,gBAAgB,CAAC,EAAE,CAAC,CAAC,MAAO,QAAO,EAAE,CAAC,EAAE,EAAE,EAAC,EAAE,EAAE,uBAAuB,SAAS,EAAE,CAAC,KAAM,IAAE,EAAE,WAAW,kBAAkB,CAAC,EAAE,EAAE,4BAA4B,UAAU,CAAC,KAAM,IAAE,EAAE,WAAW,6BAA6B,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,qBAAqB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,mBAAmB,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,sBAAsB,GAAI,MAAK,oBAAoB,EAAE,KAAK,wBAAwB,EAAE,EAAE,yBAAyB,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,uBAAuB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,qBAAqB,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,wBAAwB,GAAI,MAAK,sBAAsB,EAAE,KAAK,wBAAwB,EAAE,EAAE,yBAAyB,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,+BAA+B,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,6BAA6B,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,iBAAiB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,eAAe,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,kBAAkB,GAAI,MAAK,gBAAgB,EAAE,KAAK,wBAAwB,EAAE,EAAE,sBAAsB,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,sBAAsB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,oBAAoB,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,uBAAuB,GAAI,MAAK,qBAAqB,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,mBAAmB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,iBAAiB,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,oBAAoB,GAAI,MAAK,kBAAkB,EAAE,KAAK,wBAAwB,EAAE,EAAE,sBAAsB,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,8BAA8B,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,4BAA4B,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,6BAA6B,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,YAAY,CAAC,IAAI,SAAS,EAAE,CAAC,KAAK,oBAAoB,KAAK,oBAAoB,OAAO,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,KAAK,oBAAoB,IAAI,CAAC,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,eAAe,CAAC,IAAI,SAAS,EAAE,CAAC,KAAK,yBAAyB,KAAK,yBAAyB,OAAO,KAAK,uBAAuB,EAAE,GAAI,MAAK,wBAAwB,KAAK,yBAAyB,IAAI,CAAC,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,cAAc,CAAC,IAAI,SAAS,EAAE,CAAC,KAAK,wBAAwB,KAAK,wBAAwB,OAAO,KAAK,sBAAsB,EAAE,GAAI,MAAK,uBAAuB,KAAK,wBAAwB,IAAI,CAAC,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,qBAAqB,CAAC,IAAI,SAAS,EAAE,CAAC,KAAK,+BAA+B,KAAK,+BAA+B,OAAO,KAAK,6BAA6B,EAAE,KAAK,8BAA8B,KAAK,+BAA+B,IAAI,CAAC,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,oBAAoB,CAAC,IAAI,SAAS,EAAE,CAAC,KAAK,8BAA8B,KAAK,8BAA8B,OAAO,KAAK,4BAA4B,EAAE,KAAK,6BAA6B,KAAK,8BAA8B,IAAI,CAAC,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,sBAAsB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,cAAc,mBAAmB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,wBAAwB,CAAC,IAAI,UAAU,CAAC,MAAO,IAAE,qBAAqB,EAAE,IAAI,SAAS,EAAE,CAAC,GAAE,sBAAsB,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,iBAAiB,CAAC,IAAI,UAAU,CAAC,MAAO,IAAE,cAAc,EAAE,IAAI,SAAS,EAAE,CAAC,GAAE,eAAe,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,mBAAmB,CAAC,IAAI,UAAU,CAAC,MAAO,IAAE,gBAAgB,EAAE,IAAI,SAAS,EAAE,CAAC,GAAE,iBAAiB,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,2BAA2B,CAAC,IAAI,UAAU,CAAC,MAAO,IAAE,wBAAwB,EAAE,IAAI,SAAS,EAAE,CAAC,GAAE,yBAAyB,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,uBAAuB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,qBAAqB,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,wBAAwB,GAAI,MAAK,sBAAsB,EAAE,KAAK,wBAAwB,EAAE,EAAE,sBAAsB,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,UAAU,SAAS,EAAE,CAAC,KAAK,eAAe,CAAC,EAAE,EAAE,UAAU,UAAU,UAAU,CAAC,MAAO,MAAK,cAAc,EAAE,EAAE,UAAU,gBAAgB,UAAU,CAAC,MAAO,MAAK,oBAAoB,EAAE,OAAO,eAAe,EAAE,UAAU,aAAa,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,WAAW,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,cAAc,GAAI,MAAK,YAAY,EAAE,KAAK,wBAAwB,EAAE,EAAE,sBAAsB,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,UAAU,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,QAAQ,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,WAAW,GAAI,MAAK,SAAS,EAAE,KAAK,wBAAwB,EAAE,EAAE,sBAAsB,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,iBAAiB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,eAAe,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,kBAAkB,GAAI,MAAK,gBAAgB,EAAE,KAAK,wBAAwB,EAAE,EAAE,uBAAuB,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,gBAAgB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,cAAc,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,iBAAiB,GAAI,MAAK,eAAe,EAAE,KAAK,wBAAwB,EAAE,EAAE,uBAAuB,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,eAAe,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,aAAa,EAAE,IAAI,SAAS,EAAE,CAAC,IAAI,KAAK,eAAgB,MAAK,cAAc,EAAE,KAAK,sBAAsB,gBAAgB,IAAI,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,kBAAkB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,kBAAmB,MAAK,iBAAiB,EAAE,uBAAuB,IAAI,GAAG,KAAK,gBAAgB,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,iBAAiB,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,kBAAkB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,gBAAgB,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,mBAAmB,GAAI,MAAK,iBAAiB,EAAE,KAAK,wBAAwB,EAAE,EAAE,yBAAyB,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,mBAAmB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,iBAAiB,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,oBAAoB,GAAI,MAAK,kBAAkB,EAAE,KAAK,wBAAwB,EAAE,EAAE,4BAA4B,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,uBAAuB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,uBAAwB,MAAK,sBAAsB,EAAE,8BAA8B,KAAK,sBAAsB,KAAK,IAAI,GAAG,KAAK,qBAAqB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,gBAAgB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,cAAc,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,6BAA6B,UAAU,CAAC,GAAG,KAAK,qBAAqB,OAAO,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,qBAAqB,EAAE,EAAE,OAAO,IAAK,EAAE,GAAG,WAAW,KAAK,qBAAqB,EAAE,CAAC,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,CAAC,KAAK,YAAY,KAAK,CAAC,EAAE,KAAK,qBAAqB,KAAK,CAAC,EAAE,GAAI,GAAE,EAAE,EAAE,kBAAkB,EAAE,WAAW,KAAK,wBAAwB,KAAK,CAAC,CAAC,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,YAAY,EAAE,EAAE,OAAO,IAAI,CAAC,GAAI,GAAE,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,MAAO,EAAC,CAAC,MAAO,KAAI,EAAE,EAAE,UAAU,aAAa,UAAU,CAAC,MAAM,OAAO,EAAE,EAAE,UAAU,0BAA0B,UAAU,CAAC,MAAO,MAAK,uBAAuB,KAAK,KAAK,OAAO,KAAK,uBAAuB,OAAO,KAAK,OAAO,OAAO,KAAK,sBAAsB,EAAE,EAAE,UAAU,6BAA6B,SAAS,EAAE,CAAC,MAAO,MAAK,0BAA0B,KAAK,EAAE,UAAU,KAAK,0BAA0B,OAAO,EAAE,UAAU,OAAO,KAAK,yBAAyB,EAAE,EAAE,UAAU,6BAA6B,UAAU,CAAC,KAAK,wBAAwB,KAAK,0BAA0B,KAAK,IAAI,EAAE,KAAK,2BAA2B,KAAK,6BAA6B,KAAK,IAAI,EAAE,KAAK,iCAAiC,KAAK,6BAA6B,KAAK,IAAI,EAAE,KAAK,8BAA8B,KAAK,6BAA6B,KAAK,IAAI,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,mBAAmB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,cAAc,gBAAgB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,WAAW,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,cAAc,QAAQ,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,cAAc,SAAS,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,WAAW,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,cAAc,QAAQ,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,cAAc,SAAS,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,kBAAkB,UAAU,CAAC,MAAO,MAAK,eAAe,EAAE,EAAE,UAAU,gBAAgB,UAAU,CAAC,MAAO,MAAK,aAAa,EAAE,EAAE,UAAU,oBAAoB,UAAU,CAAC,MAAO,MAAK,iBAAiB,EAAE,EAAE,UAAU,wBAAwB,SAAS,EAAE,EAAE,EAAE,CAAC,MAAO,AAAS,KAAT,QAAa,GAAE,GAAG,KAAK,gBAAgB,GAAG,KAAK,kBAAkB,GAAG,KAAK,oBAAoB,CAAC,EAAE,EAAE,UAAU,UAAU,UAAU,CAAC,MAAO,MAAK,OAAO,EAAE,EAAE,UAAU,iBAAiB,UAAU,CAAC,MAAO,MAAK,eAAe,OAAO,EAAE,OAAO,eAAe,EAAE,UAAU,2BAA2B,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,cAAc,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,iBAAiB,UAAU,CAAC,MAAO,MAAK,eAAe,OAAO,EAAE,OAAO,eAAe,EAAE,UAAU,gCAAgC,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,cAAc,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,mBAAmB,UAAU,CAAC,MAAO,MAAK,iBAAiB,OAAO,EAAE,OAAO,eAAe,EAAE,UAAU,6BAA6B,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,gBAAgB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,eAAe,UAAU,CAAC,MAAO,MAAK,aAAa,OAAO,EAAE,OAAO,eAAe,EAAE,UAAU,yBAAyB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,YAAY,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,gBAAgB,UAAU,CAAC,MAAO,MAAK,aAAa,EAAE,EAAE,UAAU,kBAAkB,UAAU,CAAC,MAAO,AAAS,MAAK,kBAAd,OAA8B,KAAK,gBAAgB,CAAC,EAAE,EAAE,UAAU,YAAY,UAAU,CAAC,MAAO,MAAK,SAAS,EAAE,EAAE,UAAU,WAAW,UAAU,CAAC,MAAO,MAAK,QAAQ,EAAE,EAAE,UAAU,kBAAkB,UAAU,CAAC,KAAK,WAAW,EAAE,EAAE,UAAU,WAAW,UAAU,CAAC,KAAK,UAAU,GAAI,GAAE,EAAE,KAAK,QAAQ,OAAO,EAAE,EAAE,KAAK,UAAU,WAAW,iBAAiB,EAAE,EAAE,KAAK,UAAU,WAAW,OAAO,EAAE,CAAC,EAAE,EAAE,UAAU,oBAAoB,SAAS,EAAE,EAAE,CAAC,MAAO,MAAK,cAAc,oBAAoB,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,oBAAoB,SAAS,EAAE,EAAE,CAAC,MAAO,MAAK,cAAc,oBAAoB,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,kBAAkB,SAAS,EAAE,EAAE,EAAE,CAAC,MAAO,MAAK,cAAc,kBAAkB,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,kBAAkB,SAAS,EAAE,CAAC,MAAO,AAAS,KAAT,QAAa,GAAE,GAAG,KAAK,cAAc,kBAAkB,CAAC,CAAC,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,AAAS,IAAT,QAAa,GAAE,IAAI,AAAS,IAAT,QAAa,GAAE,IAAI,KAAK,cAAc,cAAc,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,cAAc,UAAU,CAAC,KAAK,cAAc,eAAe,EAAE,EAAE,UAAU,QAAQ,UAAU,CAAC,GAAG,KAAK,YAAY,MAAM,GAAG,GAAI,GAAE,EAAE,KAAK,YAAgD,GAAjC,CAAC,EAAE,sBAAiC,KAAK,aAAa,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE,EAAE,KAAK,OAAO,OAAO,IAAI,CAAC,GAAI,GAAE,KAAK,OAAO,GAAG,GAAG,EAAE,aAAc,EAAE,WAAW,AAAI,EAAE,UAAU,SAAhB,EAAwB,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,MAAM,GAAG,OAAQ,GAAE,EAAE,kBAAkB,AAAkB,EAAE,iBAApB,iBAAoC,AAAuB,EAAE,iBAAzB,sBAAyC,EAAE,UAAU,iBAAiB,EAAE,UAAU,OAAO,EAAE,EAAE,EAAE,GAAE,KAAK,qBAAqB,EAAE,GAAE,OAAO,IAAK,GAAG,CAAC,GAAE,GAAG,OAAO,EAAE,CAAC,EAAE,MAAM,EAAG,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,WAAW,OAAO,IAAK,GAAG,KAAK,WAAW,GAAG,iBAAiB,EAAE,EAAE,uBAAuB,MAAM,GAAG,GAAG,KAAK,eAAe,KAAK,cAAc,OAAO,GAAE,OAAQ,IAAE,EAAE,GAAE,KAAK,cAAc,GAAE,GAAE,OAAO,KAAK,GAAG,CAAC,GAAE,IAAG,QAAQ,EAAE,EAAE,MAAM,WAAW,KAAK,cAAc,CAAC,KAAK,aAAa,QAAQ,EAAE,EAAE,MAAM,GAAG,OAAQ,IAAE,EAAE,GAAE,KAAK,gBAAgB,GAAE,GAAE,OAAO,KAAK,GAAG,CAAC,GAAE,IAAG,UAAU,MAAM,GAAG,MAAM,EAAE,EAAE,EAAE,UAAU,oBAAoB,UAAU,CAAC,KAAK,gBAAgB,KAAK,KAAK,cAAc,KAAK,KAAK,kBAAkB,IAAI,EAAE,EAAE,UAAU,qBAAqB,SAAS,EAAE,CAAC,KAAK,yBAAyB,IAAI,CAAC,CAAC,EAAE,EAAE,UAAU,uBAAuB,SAAS,EAAE,CAAC,KAAK,yBAAyB,eAAe,CAAC,CAAC,EAAE,EAAE,UAAU,oBAAoB,SAAS,EAAE,CAAC,KAAK,wBAAwB,IAAI,CAAC,CAAC,EAAE,EAAE,UAAU,sBAAsB,SAAS,EAAE,CAAC,KAAK,wBAAwB,eAAe,CAAC,CAAC,EAAE,EAAE,UAAU,yBAAyB,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,EAAE,UAAU,CAAC,IAAI,WAAY,UAAU,CAAC,EAAE,uBAAuB,CAAC,CAAC,EAAG,EAAE,KAAK,qBAAqB,CAAC,CAAC,EAAE,EAAE,UAAU,wBAAwB,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,AAAS,IAAT,OAAW,WAAY,UAAU,CAAC,EAAE,yBAAyB,CAAC,CAAC,EAAG,CAAC,EAAE,KAAK,yBAAyB,CAAC,CAAC,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,CAAC,KAAK,aAAa,KAAK,CAAC,CAAC,EAAE,EAAE,UAAU,mBAAmB,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,UAAU,EAAE,KAAK,aAAa,QAAQ,CAAC,EAAE,AAAK,IAAL,IAAQ,KAAK,aAAa,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,WAAW,KAAK,uBAAuB,gBAAgB,IAAI,CAAC,EAAE,EAAE,UAAU,qBAAqB,UAAU,CAAC,MAAO,MAAK,aAAa,MAAM,EAAE,OAAO,eAAe,EAAE,UAAU,YAAY,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,aAAa,OAAO,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,iBAAiB,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,KAAK,kBAAkB,IAAI,CAAC,EAAE,AAAK,KAAK,6BAAV,IAAuC,MAAK,2BAA2B,WAAY,UAAU,CAAC,EAAE,eAAe,EAAG,GAAG,EAAE,EAAE,EAAE,UAAU,eAAe,UAAU,CAAC,GAAI,GAAE,KAAK,MAAO,IAAI,SAAS,SAAS,EAAE,CAAC,EAAE,iBAAkB,UAAU,CAAC,GAAG,EAAG,EAAG,EAAE,EAAE,UAAU,cAAc,UAAU,CAAC,GAAI,GAAE,KAAK,MAAO,MAAK,+BAA+B,KAAK,UAAW,MAAK,kBAAkB,gBAAgB,IAAI,EAAE,KAAK,kBAAkB,QAAQ,IAAK,MAAK,2BAA2B,KAAK,KAAK,YAAa,MAAK,kBAAkB,QAAQ,IAAK,MAAK,2BAA2B,KAAK,IAAK,MAAK,2BAA2B,WAAY,UAAU,CAAC,EAAE,eAAe,EAAG,GAAG,EAAE,EAAE,OAAO,eAAe,EAAE,UAAU,cAAc,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,kBAAkB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,4BAA4B,UAAU,CAAC,KAAK,mBAAmB,EAAE,EAAE,GAAG,EAAE,EAAE,UAAU,cAAc,UAAU,CAAC,MAAO,MAAK,WAAW,EAAE,EAAE,UAAU,oBAAoB,UAAU,CAAC,MAAO,MAAK,iBAAiB,EAAE,EAAE,UAAU,mBAAmB,UAAU,CAAC,MAAO,MAAK,gBAAgB,EAAE,EAAE,UAAU,mBAAmB,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,kBAAkB,EAAE,YAAY,KAAK,wBAAwB,EAAE,YAAa,MAAK,gBAAgB,EAAE,WAAW,KAAK,sBAAsB,EAAE,WAAW,KAAK,YAAY,EAAE,KAAK,kBAAkB,EAAE,KAAK,YAAY,cAAc,KAAK,kBAAkB,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,EAAE,eAAe,KAAK,iBAAiB,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,EAAE,UAAU,KAAK,gBAAgB,EAAE,KAAK,oBAAoB,KAAK,mBAAmB,OAAO,KAAK,oBAAoB,EAAE,CAAC,EAAE,KAAK,UAAU,QAAS,MAAK,UAAU,aAAa,iBAAiB,KAAK,gBAAgB,EAAE,KAAK,UAAU,aAAa,OAAO,KAAK,WAAW,EAAE,KAAK,UAAU,UAAU,EAAE,EAAE,UAAU,sBAAsB,UAAU,CAAC,MAAO,MAAK,mBAAmB,KAAK,mBAAmB,KAAK,SAAS,EAAE,EAAE,UAAU,YAAY,UAAU,CAAC,MAAO,GAAE,EAAE,QAAQ,EAAE,EAAE,UAAU,QAAQ,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,AAAS,IAAT,QAAa,GAAE,IAAI,KAAK,wBAAyB,MAAK,OAAO,KAAK,CAAC,EAAE,EAAE,sBAAsB,EAAE,QAAQ,EAAE,uBAAuB,KAAK,yBAAyB,gBAAgB,CAAC,EAAE,GAAG,EAAE,iBAAiB,QAAS,SAAS,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAI,EAAE,EAAE,UAAU,WAAW,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,AAAS,IAAT,QAAa,GAAE,IAAI,GAAI,GAAE,KAAK,OAAO,QAAQ,CAAC,EAAE,MAAM,AAAK,KAAL,IAAS,MAAK,OAAO,GAAG,KAAK,OAAO,KAAK,OAAO,OAAO,GAAG,KAAK,OAAO,MAAM,EAAE,QAAQ,EAAE,6BAA6B,KAAK,wBAAwB,gBAAgB,CAAC,EAAE,GAAG,EAAE,iBAAiB,QAAS,SAAS,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,GAAI,CAAC,EAAE,EAAE,UAAU,iBAAiB,SAAS,EAAE,CAAC,KAAK,wBAAyB,GAAE,iCAAiC,KAAK,eAAe,OAAO,KAAK,eAAe,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,uBAAuB,KAAK,kCAAkC,gBAAgB,CAAC,EAAE,EAAE,EAAE,UAAU,oBAAoB,SAAS,EAAE,CAAC,GAAI,GAAE,EAAE,iCAAiC,GAAG,AAAK,IAAL,GAAO,CAAC,GAAG,IAAI,KAAK,eAAe,OAAO,EAAE,CAAC,GAAI,GAAE,KAAK,eAAe,KAAK,eAAe,OAAO,GAAG,KAAK,eAAe,GAAG,EAAE,EAAE,iCAAiC,CAAC,CAAC,EAAE,iCAAiC,GAAG,KAAK,eAAe,MAAM,EAAE,QAAQ,EAAE,2BAA2B,CAAC,MAAO,MAAK,iCAAiC,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,UAAU,QAAQ,CAAC,EAAE,MAAM,AAAK,KAAL,IAAS,MAAK,UAAU,OAAO,EAAE,CAAC,EAAE,KAAK,4BAA4B,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,yBAAyB,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,oBAAoB,QAAQ,CAAC,EAAE,MAAM,AAAK,KAAL,IAAQ,KAAK,oBAAoB,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,YAAY,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,OAAO,QAAQ,CAAC,EAAE,GAAG,AAAK,IAAL,GAAO,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,OAAO,EAAE,EAAE,OAAO,IAAK,EAAE,GAAG,mBAAmB,EAAE,EAAE,EAAE,KAAK,OAAO,OAAO,EAAE,CAAC,EAAE,KAAK,uBAAuB,EAAE,QAAQ,EAAE,2BAA2B,CAAC,MAAO,MAAK,yBAAyB,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,aAAa,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,QAAQ,QAAQ,CAAC,EAAE,GAAG,AAAK,IAAL,IAAS,MAAK,QAAQ,OAAO,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,6BAA6B,KAAK,cAAc,CAAC,GAAI,GAAE,KAAK,cAAc,QAAQ,CAAC,EAAE,AAAK,IAAL,IAAQ,KAAK,cAAc,OAAO,EAAE,CAAC,CAAC,CAAC,MAAO,MAAK,eAAe,GAAI,MAAK,QAAQ,OAAO,EAAE,KAAK,aAAa,KAAK,QAAQ,GAAG,KAAK,aAAa,MAAM,KAAK,0BAA0B,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,qBAAqB,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,gBAAgB,QAAQ,CAAC,EAAE,MAAM,AAAK,KAAL,IAAQ,KAAK,gBAAgB,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,WAAW,QAAQ,CAAC,EAAE,MAAM,AAAK,KAAL,IAAQ,KAAK,WAAW,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,qBAAqB,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,gBAAgB,QAAQ,CAAC,EAAE,MAAM,AAAK,KAAL,IAAQ,KAAK,gBAAgB,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,oBAAoB,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,eAAe,QAAQ,CAAC,EAAE,MAAM,AAAK,KAAL,IAAQ,KAAK,eAAe,OAAO,EAAE,CAAC,EAAE,KAAK,iCAAiC,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,CAAC,GAAI,GAAE,EAAE,2BAA2B,GAAG,AAAK,IAAL,IAAQ,EAAE,KAAK,UAAU,OAAO,CAAC,GAAG,IAAI,KAAK,UAAU,OAAO,EAAE,CAAC,GAAI,GAAE,KAAK,UAAU,KAAK,UAAU,OAAO,GAAG,KAAK,UAAU,GAAG,EAAE,EAAE,2BAA2B,CAAC,CAAC,EAAE,2BAA2B,GAAG,KAAK,UAAU,KAAK,CAAC,MAAO,MAAK,4BAA4B,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,oBAAoB,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,eAAe,QAAQ,CAAC,EAAE,MAAM,AAAK,KAAL,IAAQ,KAAK,eAAe,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,SAAS,QAAQ,CAAC,EAAE,MAAM,AAAK,KAAL,IAAQ,KAAK,SAAS,OAAO,EAAE,CAAC,EAAE,KAAK,2BAA2B,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,SAAS,SAAS,EAAE,CAAC,GAAG,CAAC,KAAK,uBAAuB,CAAC,KAAK,OAAO,KAAK,CAAC,EAAE,KAAK,uBAAuB,EAAE,QAAQ,EAAE,uBAAuB,OAAQ,GAAE,EAAE,EAAE,KAAK,OAAO,EAAE,EAAE,OAAO,IAAI,CAAC,GAAI,GAAE,EAAE,GAAG,AAAK,EAAE,aAAa,QAAQ,CAAC,IAA7B,IAAiC,GAAE,aAAa,KAAK,CAAC,EAAE,EAAE,sBAAsB,CAAC,KAAK,0BAA0B,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,qBAAqB,UAAU,CAAC,KAAK,qBAAqB,KAAK,OAAO,KAAK,EAAE,EAAE,qBAAqB,CAAC,EAAE,EAAE,UAAU,UAAU,SAAS,EAAE,CAAC,KAAK,wBAAyB,MAAK,QAAQ,KAAK,CAAC,EAAE,KAAK,2BAA2B,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,uBAAuB,EAAE,EAAE,UAAU,YAAY,SAAS,EAAE,CAAC,KAAK,wBAAyB,MAAK,UAAU,KAAK,CAAC,EAAE,KAAK,6BAA6B,gBAAgB,CAAC,EAAE,EAAE,EAAE,UAAU,kBAAkB,SAAS,EAAE,CAAC,KAAK,wBAAwB,KAAK,gBAAgB,KAAK,CAAC,CAAC,EAAE,EAAE,UAAU,aAAa,SAAS,EAAE,CAAC,KAAK,wBAAwB,KAAK,WAAW,KAAK,CAAC,CAAC,EAAE,EAAE,UAAU,kBAAkB,SAAS,EAAE,CAAC,KAAK,wBAAwB,KAAK,gBAAgB,KAAK,CAAC,CAAC,EAAE,EAAE,UAAU,iBAAiB,SAAS,EAAE,CAAC,KAAK,wBAAyB,MAAK,eAAe,KAAK,CAAC,EAAE,KAAK,kCAAkC,gBAAgB,CAAC,EAAE,EAAE,EAAE,UAAU,YAAY,SAAS,EAAE,CAAC,KAAK,wBAAyB,GAAE,2BAA2B,KAAK,UAAU,OAAO,KAAK,UAAU,KAAK,CAAC,EAAE,KAAK,6BAA6B,gBAAgB,CAAC,EAAE,EAAE,EAAE,UAAU,sBAAsB,SAAS,EAAE,CAAC,KAAK,wBAAwB,KAAK,oBAAoB,KAAK,CAAC,CAAC,EAAE,EAAE,UAAU,YAAY,SAAS,EAAE,CAAC,KAAK,wBAAyB,MAAK,sBAAuB,MAAK,qBAAqB,EAAE,UAAU,KAAK,WAAW,QAAQ,KAAK,WAAW,KAAK,CAAC,EAAE,EAAE,EAAE,UAAU,iBAAiB,SAAS,EAAE,CAAC,KAAK,eAAe,KAAK,CAAC,CAAC,EAAE,EAAE,UAAU,WAAW,SAAS,EAAE,CAAC,KAAK,wBAAyB,MAAK,SAAS,KAAK,CAAC,EAAE,KAAK,4BAA4B,gBAAgB,CAAC,EAAE,EAAE,EAAE,UAAU,mBAAmB,SAAS,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,KAAK,QAAQ,mBAAoB,MAAK,cAAc,KAAK,aAAa,gBAAgB,KAAK,aAAa,EAAE,GAAG,EAAE,gBAAgB,EAAE,EAAE,UAAU,oBAAoB,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,cAAc,CAAC,EAAE,MAAO,GAAG,MAAK,aAAa,EAAE,GAAG,IAAI,EAAE,EAAE,UAAU,sBAAsB,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,gBAAgB,CAAC,EAAE,MAAO,GAAG,MAAK,aAAa,EAAE,GAAG,IAAI,EAAE,EAAE,UAAU,wBAAwB,SAAS,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,gBAAgB,OAAO,IAAI,GAAG,KAAK,gBAAgB,GAAG,OAAO,EAAE,MAAO,MAAK,gBAAgB,GAAG,MAAO,KAAI,EAAE,EAAE,UAAU,sBAAsB,SAAS,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,UAAU,OAAO,IAAI,GAAG,KAAK,UAAU,GAAG,WAAW,EAAE,MAAO,MAAK,UAAU,GAAG,MAAO,KAAI,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,UAAU,OAAO,IAAI,GAAG,KAAK,UAAU,GAAG,KAAK,EAAE,MAAO,MAAK,UAAU,GAAG,MAAO,KAAI,EAAE,EAAE,UAAU,oBAAoB,SAAS,EAAE,CAAC,OAAQ,GAAE,KAAK,UAAU,OAAO,EAAE,GAAG,EAAE,IAAI,GAAG,KAAK,UAAU,GAAG,KAAK,EAAE,MAAO,MAAK,UAAU,GAAG,MAAO,KAAI,EAAE,EAAE,UAAU,kBAAkB,SAAS,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,UAAU,OAAO,IAAI,GAAG,KAAK,UAAU,GAAG,OAAO,EAAE,MAAO,MAAK,UAAU,GAAG,MAAO,KAAI,EAAE,EAAE,UAAU,qBAAqB,SAAS,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,SAAS,OAAO,IAAI,GAAG,KAAK,SAAS,GAAG,WAAW,EAAE,MAAO,MAAK,SAAS,GAAG,MAAO,KAAI,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,QAAQ,OAAO,IAAI,GAAG,KAAK,QAAQ,GAAG,KAAK,EAAE,MAAO,MAAK,QAAQ,GAAG,MAAO,KAAI,EAAE,EAAE,UAAU,oBAAoB,SAAS,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,QAAQ,OAAO,IAAI,GAAG,KAAK,QAAQ,GAAG,WAAW,EAAE,MAAO,MAAK,QAAQ,GAAG,MAAO,KAAI,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,QAAQ,OAAO,IAAI,GAAG,KAAK,QAAQ,GAAG,OAAO,EAAE,MAAO,MAAK,QAAQ,GAAG,MAAO,KAAI,EAAE,EAAE,UAAU,YAAY,SAAS,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,UAAU,OAAO,IAAI,OAAQ,GAAE,KAAK,UAAU,GAAG,EAAE,EAAE,EAAE,EAAE,MAAM,OAAO,IAAI,GAAG,EAAE,MAAM,GAAG,KAAK,EAAE,MAAO,GAAE,MAAM,GAAG,MAAO,KAAI,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,UAAU,OAAO,IAAI,OAAQ,GAAE,KAAK,UAAU,GAAG,EAAE,EAAE,EAAE,EAAE,MAAM,OAAO,IAAI,GAAG,EAAE,MAAM,GAAG,OAAO,EAAE,MAAO,GAAE,MAAM,GAAG,MAAO,KAAI,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,OAAO,OAAO,IAAI,GAAG,KAAK,OAAO,GAAG,OAAO,EAAE,MAAO,MAAK,OAAO,GAAG,MAAO,KAAI,EAAE,EAAE,UAAU,aAAa,SAAS,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,OAAO,OAAO,IAAI,GAAG,KAAK,OAAO,GAAG,KAAK,EAAE,MAAO,MAAK,OAAO,GAAG,MAAO,KAAI,EAAE,EAAE,UAAU,mBAAmB,SAAS,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,OAAO,OAAO,IAAI,GAAG,KAAK,OAAO,GAAG,WAAW,EAAE,MAAO,MAAK,OAAO,GAAG,MAAO,KAAI,EAAE,EAAE,UAAU,sBAAsB,SAAS,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,gBAAgB,OAAO,IAAI,GAAG,KAAK,gBAAgB,GAAG,KAAK,EAAE,MAAO,MAAK,gBAAgB,GAAG,MAAO,KAAI,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,WAAW,OAAO,IAAI,GAAG,KAAK,WAAW,GAAG,KAAK,EAAE,MAAO,MAAK,WAAW,GAAG,MAAO,KAAI,EAAE,EAAE,UAAU,uBAAuB,SAAS,EAAE,CAAC,GAAG,KAAK,qBAAqB,CAAC,GAAI,GAAE,KAAK,qBAAqB,GAAG,GAAG,AAAS,IAAT,OAAW,MAAO,MAAK,WAAW,EAAE,KAAM,QAAQ,GAAE,EAAE,EAAE,KAAK,WAAW,OAAO,IAAI,GAAG,KAAK,WAAW,GAAG,WAAW,EAAE,MAAO,MAAK,WAAW,GAAG,MAAO,KAAI,EAAE,EAAE,UAAU,aAAa,SAAS,EAAE,EAAE,CAAC,MAAM,CAAE,EAAC,GAAG,KAAK,uBAAuB,EAAE,QAAQ,IAAK,MAAK,YAAY,CAAC,EAAE,KAAK,6BAA6B,gBAAgB,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,CAAC,GAAI,GAAE,GAAG,KAAK,sBAAsB,GAAG,AAAU,GAAE,KAAK,qBAAqB,EAAE,aAAxC,OAAmD,MAAM,WAAY,GAAE,KAAK,WAAW,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,KAAK,WAAW,OAAO,EAAE,CAAC,GAAI,GAAE,KAAK,WAAW,KAAK,WAAW,OAAO,GAAG,GAAI,MAAK,WAAW,GAAG,EAAE,KAAK,sBAAuB,MAAK,qBAAqB,EAAE,UAAU,EAAE,KAAK,qBAAqB,EAAE,UAAU,QAAQ,CAAC,MAAO,MAAK,WAAW,MAAM,KAAK,4BAA4B,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,cAAc,UAAU,CAAC,MAAO,MAAK,UAAU,EAAE,EAAE,UAAU,YAAY,SAAS,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,OAAO,OAAO,IAAI,GAAG,KAAK,OAAO,GAAG,KAAK,EAAE,MAAO,MAAK,OAAO,GAAG,MAAO,KAAI,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,CAAC,MAAO,MAAK,OAAO,OAAQ,SAAS,EAAE,CAAC,MAAO,GAAE,KAAK,CAAC,EAAG,EAAE,EAAE,UAAU,qBAAqB,SAAS,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,eAAe,OAAO,IAAI,GAAG,KAAK,eAAe,GAAG,KAAK,EAAE,MAAO,MAAK,eAAe,GAAG,MAAO,KAAI,EAAE,EAAE,UAAU,2BAA2B,SAAS,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,eAAe,OAAO,IAAI,GAAG,KAAK,eAAe,GAAG,WAAW,EAAE,MAAO,MAAK,eAAe,GAAG,MAAO,KAAI,EAAE,EAAE,UAAU,sBAAsB,SAAS,EAAE,CAAC,MAAO,MAAK,eAAe,OAAQ,SAAS,EAAE,CAAC,MAAO,GAAE,KAAK,CAAC,EAAG,EAAE,EAAE,UAAU,kBAAkB,SAAS,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,OAAO,OAAO,IAAI,GAAG,KAAK,OAAO,GAAG,WAAW,EAAE,MAAO,MAAK,OAAO,GAAG,MAAO,KAAI,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,CAAC,OAAQ,GAAE,KAAK,OAAO,OAAO,EAAE,GAAG,EAAE,IAAI,GAAG,KAAK,OAAO,GAAG,KAAK,EAAE,MAAO,MAAK,OAAO,GAAG,MAAO,KAAI,EAAE,EAAE,UAAU,iBAAiB,SAAS,EAAE,CAAC,GAAI,GAAE,IAAI,EAAE,KAAK,OAAO,OAAO,EAAE,GAAG,EAAE,IAAI,GAAG,KAAK,OAAO,GAAG,KAAK,EAAE,MAAO,MAAK,OAAO,GAAG,IAAI,EAAE,KAAK,eAAe,OAAO,EAAE,GAAG,EAAE,IAAI,GAAG,KAAK,eAAe,GAAG,KAAK,EAAE,MAAO,MAAK,eAAe,GAAG,IAAI,EAAE,KAAK,QAAQ,OAAO,EAAE,GAAG,EAAE,IAAI,GAAG,KAAK,QAAQ,GAAG,KAAK,EAAE,MAAO,MAAK,QAAQ,GAAG,IAAI,EAAE,KAAK,OAAO,OAAO,EAAE,GAAG,EAAE,IAAI,GAAG,KAAK,OAAO,GAAG,KAAK,EAAE,MAAO,MAAK,OAAO,GAAG,MAAO,KAAI,EAAE,EAAE,UAAU,YAAY,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,YAAY,CAAC,EAAE,GAAG,EAAE,MAAO,GAAE,GAAI,GAAE,KAAK,qBAAqB,CAAC,EAAE,GAAG,EAAE,MAAO,GAAE,GAAI,GAAE,KAAK,aAAa,CAAC,EAAE,GAAG,EAAE,MAAO,GAAE,GAAI,GAAE,KAAK,cAAc,CAAC,EAAE,GAAG,EAAE,MAAO,GAAE,GAAI,IAAE,KAAK,YAAY,CAAC,EAAE,MAAO,KAAG,IAAI,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,cAAc,CAAC,EAAE,GAAG,EAAE,MAAO,GAAE,GAAI,GAAE,KAAK,uBAAuB,CAAC,EAAE,GAAG,EAAE,MAAO,GAAE,GAAI,GAAE,KAAK,eAAe,CAAC,EAAE,GAAG,EAAE,MAAO,GAAE,GAAI,GAAE,KAAK,gBAAgB,CAAC,EAAE,GAAG,EAAE,MAAO,GAAE,GAAI,IAAE,KAAK,cAAc,CAAC,EAAE,MAAO,KAAG,IAAI,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,OAAO,OAAO,IAAI,GAAG,KAAK,OAAO,GAAG,OAAO,EAAE,MAAO,MAAK,OAAO,GAAG,MAAO,KAAI,EAAE,EAAE,UAAU,uBAAuB,SAAS,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,eAAe,OAAO,IAAI,GAAG,KAAK,eAAe,GAAG,OAAO,EAAE,MAAO,MAAK,eAAe,GAAG,MAAO,KAAI,EAAE,EAAE,UAAU,oBAAoB,SAAS,EAAE,CAAC,OAAQ,GAAE,KAAK,UAAU,OAAO,EAAE,GAAG,EAAE,IAAI,GAAG,KAAK,UAAU,GAAG,KAAK,EAAE,MAAO,MAAK,UAAU,GAAG,MAAO,KAAI,EAAE,EAAE,UAAU,sBAAsB,SAAS,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,UAAU,OAAO,IAAI,GAAG,KAAK,UAAU,GAAG,WAAW,EAAE,MAAO,MAAK,UAAU,GAAG,MAAO,KAAI,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,UAAU,OAAO,IAAI,GAAG,KAAK,UAAU,GAAG,KAAK,EAAE,MAAO,MAAK,UAAU,GAAG,MAAO,KAAI,EAAE,EAAE,UAAU,kBAAkB,SAAS,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,UAAU,OAAO,IAAI,GAAG,KAAK,UAAU,GAAG,OAAO,EAAE,MAAO,MAAK,UAAU,GAAG,MAAO,KAAI,EAAE,EAAE,UAAU,0BAA0B,SAAS,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,oBAAoB,OAAO,IAAI,GAAG,KAAK,oBAAoB,GAAG,WAAW,EAAE,MAAO,MAAK,oBAAoB,GAAG,MAAO,KAAI,EAAE,EAAE,UAAU,mBAAmB,SAAS,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,oBAAoB,OAAO,EAAE,EAAE,OAAQ,GAAE,KAAK,oBAAoB,GAAG,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAO,EAAC,CAAC,MAAO,KAAI,EAAE,EAAE,UAAU,qBAAqB,SAAS,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,oBAAoB,OAAO,EAAE,EAAE,OAAQ,GAAE,KAAK,oBAAoB,GAAG,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAO,EAAC,CAAC,MAAO,KAAI,EAAE,EAAE,UAAU,qBAAqB,SAAS,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,cAAc,OAAO,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,cAAc,GAAG,GAAG,EAAE,OAAO,EAAE,MAAO,EAAC,CAAC,MAAO,KAAI,EAAE,EAAE,UAAU,aAAa,SAAS,EAAE,CAAC,MAAM,AAAK,MAAK,cAAc,QAAQ,CAAC,IAAjC,EAAkC,EAAE,OAAO,eAAe,EAAE,UAAU,MAAM,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,MAAO,MAAK,KAAK,EAAE,EAAE,YAAY,KAAK,IAAI,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,EAAE,CAAC,MAAO,MAAK,eAAgB,MAAK,cAAc,GAAI,GAAE,GAAG,KAAK,cAAc,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,CAAC,MAAO,MAAK,cAAc,KAAK,cAAc,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,gCAAgC,SAAS,EAAE,EAAE,CAAC,MAAO,MAAK,eAAgB,MAAK,cAAc,GAAI,GAAE,GAAG,KAAK,cAAc,oBAAoB,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,mBAAmB,SAAS,EAAE,CAAC,MAAO,MAAK,cAAc,OAAO,CAAC,CAAC,EAAE,EAAE,UAAU,iBAAiB,SAAS,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,cAAc,EAAE,cAAc,KAAK,oCAAoC,KAAK,sBAAsB,EAAE,0BAA0B,AAAI,EAAE,UAAU,SAAhB,GAAwB,EAAE,YAAY,KAAK,cAAc,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,sBAAsB,EAAE,EAAE,OAAO,IAAK,EAAE,GAAG,OAAO,EAAE,CAAC,EAAE,GAAI,IAAE,EAAE,cAAc,AAAM,IAAN,MAAU,IAAE,yBAAyB,AAAM,GAAE,yBAAR,MAAiC,AAAK,KAAK,oBAAoB,QAAQ,EAAC,IAAvC,IAA2C,MAAK,oBAAoB,KAAK,EAAC,EAAE,KAAK,eAAe,sBAAsB,GAAE,yBAAyB,GAAG,KAAK,kBAAkB,SAAS,EAAE,EAAE,EAAC,EAAE,CAAC,EAAE,EAAE,UAAU,uBAAuB,UAAU,CAAC,KAAK,oBAAoB,SAAS,EAAE,OAAO,eAAe,EAAE,UAAU,0CAA0C,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,0CAA0C,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,6CAA6C,GAAI,IAAI,MAAK,mBAAmB,KAAK,uBAAuB,KAAK,2CAA2C,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,iBAAiB,UAAU,CAAC,GAAG,CAAC,KAAK,yCAA0C,MAAK,cAAc,UAAU,KAAK,cAAc,KAAK,aAAa,eAAe,KAAK,aAAa,cAAc,UAAU,KAAK,eAAe,OAAQ,GAAE,EAAE,EAAE,KAAK,cAAc,OAAO,IAAI,CAAC,GAAI,GAAE,KAAK,cAAc,GAAG,GAAG,EAAE,eAAe,EAAE,cAAc,SAAS,CAAC,EAAE,EAAE,UAAU,oBAAoB,UAAU,CAAC,GAAG,CAAC,KAAK,yCAA0C,MAAK,mBAAmB,KAAK,kBAAkB,sBAAsB,KAAK,UAAU,OAAQ,GAAE,EAAE,EAAE,KAAK,SAAS,OAAO,IAAI,CAAC,GAAI,GAAE,KAAK,SAAS,GAAG,GAAG,EAAE,YAAY,EAAE,qBAAqB,CAAC,EAAE,EAAE,UAAU,2BAA2B,UAAU,CAAC,MAAO,MAAK,sBAAsB,EAAE,EAAE,UAAU,mBAAmB,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,MAAO,AAAS,KAAT,QAAa,GAAE,IAAI,KAAK,iBAAkB,UAAU,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,aAAa,gBAAgB,EAAE,aAAa,qBAAqB,EAAE,EAAE,wBAAwB,EAAE,oBAAoB,GAAG,EAAE,oCAAoC,EAAE,OAAQ,GAAE,EAAE,EAAE,EAAE,cAAc,OAAO,IAAI,EAAE,cAAc,KAAK,GAAG,UAAU,GAAG,GAAG,KAAM,IAAG,EAAE,wBAAwB,CAAC,GAAI,IAAI,EAAE,EAAE,UAAU,qBAAqB,UAAU,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,OAAO,OAAO,IAAI,CAAC,GAAI,GAAE,KAAK,OAAO,GAAG,EAAE,+BAAgC,GAAE,8BAA8B,UAAU,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,cAAc,OAAO,IAAI,KAAK,cAAc,KAAK,GAAG,YAAY,MAAO,MAAK,oBAAoB,GAAG,IAAI,EAAE,EAAE,UAAU,sBAAsB,UAAU,CAAC,GAAG,KAAK,qBAAqB,KAAK,cAAc,OAAO,CAAC,GAAG,CAAC,KAAK,oCAAoC,OAAQ,GAAE,KAAK,cAAc,OAAO,EAAE,EAAE,EAAE,EAAE,IAAK,AAAC,IAAE,KAAK,cAAc,KAAK,IAAI,qBAAqB,GAAG,KAAK,uBAAuB,CAAC,GAAI,GAAE,KAAK,uBAAuB,OAAO,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,KAAK,uBAAuB,KAAK,GAAG,SAAS,CAAC,SAAS,KAAK,aAAa,CAAC,KAAK,yCAAyC,gBAAgB,IAAI,EAAE,KAAK,aAAa,cAAc,QAAQ,KAAK,cAAc,QAAQ,KAAK,kBAAkB,QAAQ,KAAK,oBAAoB,QAAQ,KAAK,uBAAuB,QAAQ,KAAK,iBAAiB,QAAQ,KAAK,uBAAuB,QAAQ,OAAQ,GAAE,EAAE,EAAE,KAAK,+BAA+B,EAAE,EAAE,OAAO,IAAK,EAAE,GAAG,SAAS,GAAI,IAAE,KAAK,0BAA0B,GAAE,GAAE,OAAO,IAAI,EAAE,EAAE,EAAE,GAAE,IAAI,CAAC,GAAI,IAAE,GAAI,IAAE,GAAE,KAAK,IAAI,8BAA8B,sBAAsB,GAAG,CAAC,GAAE,WAAY,MAAK,eAAe,SAAS,GAAE,mBAAmB,EAAE,EAAE,GAAE,WAAW,GAAE,aAAa,AAAI,GAAE,QAAQ,kBAAd,GAA+B,CAAC,GAAE,qBAAqB,GAAE,eAAe,GAAE,cAAc,qBAAqB,EAAE,EAAE,kCAAkC,EAAE,EAAE,gCAAgC,GAAG,KAAK,wBAAwB,gBAAgB,EAAC,EAAE,GAAI,IAAE,KAAK,kBAAkB,KAAK,kBAAkB,GAAE,KAAK,YAAY,EAAE,GAAE,OAAO,KAAK,YAAY,EAAE,GAAG,GAAE,8BAA8B,YAAY,GAAE,GAAE,8BAA8B,sBAAsB,GAAG,AAAM,IAAN,MAAU,MAAI,IAAG,GAAE,gBAAgB,EAAE,EAAE,oBAAoB,GAAE,qBAAqB,GAAE,eAAe,GAAE,WAAW,GAAE,WAAW,GAAG,AAAI,IAAE,UAAU,KAAK,aAAa,YAAlC,GAA+C,MAAK,sBAAsB,GAAE,0BAA0B,GAAE,YAAY,KAAK,cAAc,IAAI,CAAC,KAAK,cAAc,KAAK,EAAC,EAAE,KAAK,aAAa,cAAc,KAAK,EAAC,EAAE,KAAI,IAAG,GAAE,UAAU,KAAK,UAAU,EAAE,EAAE,OAAQ,IAAE,EAAE,GAAE,KAAK,oBAAoB,GAAE,GAAE,OAAO,KAAK,GAAE,IAAG,OAAO,EAAC,EAAE,GAAE,UAAU,KAAK,UAAU,EAAE,GAAI,IAAE,aAAa,GAAE,8BAA8B,mBAAoB,IAAE,IAAG,GAAE,8BAA8B,kBAAkB,GAAG,GAAE,8BAA8B,UAAU,GAAG,KAAK,YAAY,GAAE,EAAC,GAAG,GAAE,eAAe,CAAC,CAAC,CAAC,GAAG,KAAK,wCAAwC,gBAAgB,IAAI,EAAE,KAAK,iBAAiB,CAAC,KAAK,qCAAqC,gBAAgB,IAAI,EAAE,OAAQ,IAAE,EAAE,GAAE,KAAK,gBAAgB,OAAO,KAAI,CAAC,GAAI,IAAE,KAAK,gBAAgB,IAAG,GAAG,GAAE,aAAa,GAAE,QAAQ,CAAC,GAAI,IAAE,GAAE,QAAQ,GAAE,UAAU,CAAC,GAAE,aAAc,MAAK,uBAAuB,KAAK,EAAC,EAAE,GAAE,UAAU,KAAK,kBAAkB,kBAAkB,EAAC,EAAE,CAAC,CAAC,KAAK,oCAAoC,gBAAgB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,YAAY,SAAS,EAAE,EAAE,CAAC,GAAG,KAAK,mBAAmB,AAAO,EAAE,WAAT,MAAmB,AAAS,EAAE,WAAX,QAAsB,MAAK,iBAAiB,gBAAgB,EAAE,QAAQ,GAAG,EAAE,SAAS,UAAU,EAAE,0BAA0B,KAAK,uBAAuB,gBAAgB,CAAC,GAAG,AAAM,GAAN,MAAS,AAAS,EAAE,YAAX,QAAsB,AAAO,EAAE,YAAT,MAAoB,EAAE,UAAU,OAAO,EAAE,OAAQ,GAAE,KAAK,2BAA2B,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,GAAI,IAAE,EAAE,KAAK,GAAG,KAAK,iBAAiB,GAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,sBAAsB,SAAS,EAAE,CAAC,KAAK,cAAc,KAAK,mBAAmB,KAAK,aAAa,gBAAgB,KAAK,aAAa,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,iBAAiB,UAAU,CAAC,GAAG,KAAK,cAAc,KAAK,aAAa,kBAAkB,KAAK,aAAa,kBAAkB,2BAA2B,KAAK,cAAc,KAAK,aAAa,mBAAoB,GAAG,KAAK,YAAY,UAAU,WAAW,KAAK,aAAa,oBAAoB,KAAK,aAAa,mBAAmB,eAAe,EAAE,KAAK,aAAa,mBAAmB,uBAAuB,CAAC,GAAI,GAAE,KAAK,aAAa,mBAAmB,qBAAqB,EAAE,KAAK,YAAY,gBAAgB,CAAC,EAAE,EAAE,EAAE,MAAM,mDAAmD,CAAC,KAAO,MAAK,YAAY,2BAA2B,EAAE,EAAE,UAAU,iBAAiB,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,GAAI,GAAE,KAAK,QAAQ,GAAG,KAAK,cAAc,EAAE,CAAC,KAAK,aAAa,KAAM,IAAI,OAAM,uBAAuB,EAAE,EAAE,YAAY,KAAK,aAAa,QAAQ,EAAE,KAAK,sBAAsB,KAAK,YAAY,KAAK,YAAY,UAAU,WAAW,EAAE,oBAAoB,EAAE,mBAAmB,eAAe,EAAE,KAAK,mBAAmB,EAAE,YAAY,GAAG,gBAAgB,EAAE,YAAY,GAAG,sBAAsB,EAAE,YAAY,GAAG,gBAAgB,EAAE,YAAY,GAAG,qBAAqB,EAAE,KAAK,wBAAwB,KAAK,+BAA+B,gBAAgB,KAAK,YAAY,EAAE,KAAK,wBAAwB,OAAQ,GAAE,EAAE,EAAE,KAAK,uBAAuB,OAAO,IAAI,CAAC,GAAI,GAAE,KAAK,uBAAuB,KAAK,GAAG,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC,KAAK,sCAAsC,gBAAgB,IAAI,EAAE,EAAE,qBAAqB,EAAE,oBAAoB,OAAO,GAAG,KAAK,eAAe,sBAAsB,EAAE,mBAAmB,EAAE,GAAG,EAAE,qBAAqB,EAAE,oBAAoB,OAAO,GAAG,KAAK,eAAe,sBAAsB,EAAE,mBAAmB,EAAE,OAAQ,IAAE,EAAE,GAAE,KAAK,sCAAsC,GAAE,GAAE,OAAO,KAAK,GAAE,IAAG,OAAO,KAAK,cAAc,EAAE,GAAI,IAAE,GAAG,GAAG,KAAK,qBAAqB,CAAC,GAAG,KAAK,uBAAuB,GAAG,KAAK,eAAe,OAAO,EAAE,CAAC,EAAE,EAAE,wBAAwB,iBAAiB,KAAK,eAAe,OAAO,CAAC,EAAE,OAAQ,IAAE,EAAE,GAAE,KAAK,eAAe,OAAO,KAAI,CAAC,GAAI,IAAE,KAAK,eAAe,KAAK,IAAG,GAAG,GAAE,gBAAgB,CAAC,KAAK,YAAY,GAAI,IAAE,GAAE,cAAc,GAAE,eAAe,KAAK,aAAa,GAAE,OAAO,GAAE,KAAK,qBAAqB,EAAE,GAAE,EAAE,CAAC,CAAC,EAAE,EAAE,sBAAsB,iBAAiB,KAAK,eAAe,OAAO,CAAC,EAAE,KAAK,WAAW,CAAC,OAAQ,IAAE,EAAE,GAAE,KAAK,6BAA6B,GAAE,GAAE,OAAO,KAAK,GAAE,GAAE,IAAG,OAAO,KAAK,YAAY,GAAG,GAAE,KAAK,uBAAuB,GAAG,KAAK,cAAc,KAAK,aAAa,oBAAqB,IAAE,GAAG,CAAC,IAAG,CAAC,KAAK,SAAS,KAAK,mBAAmB,KAAK,qCAAqC,gBAAgB,IAAI,EAAE,CAAC,KAAK,oBAAoB,EAAE,mBAAmB,KAAK,SAAS,KAAK,mBAAmB,gBAAgB,OAAQ,IAAE,EAAE,GAAE,KAAK,uBAAuB,GAAE,GAAE,OAAO,KAAK,GAAE,IAAG,OAAO,KAAK,YAAY,EAAE,KAAK,4BAA4B,gBAAgB,IAAI,EAAE,KAAK,kBAAkB,OAAO,KAAK,KAAK,GAAG,EAAE,EAAE,KAAK,2BAA2B,gBAAgB,IAAI,EAAE,OAAQ,IAAE,EAAE,GAAE,KAAK,sBAAsB,GAAE,GAAE,OAAO,KAAK,GAAE,IAAG,OAAO,KAAK,YAAY,EAAE,GAAG,KAAK,oBAAoB,CAAC,EAAE,kBAAkB,CAAC,GAAI,IAAE,EAAE,mBAAmB,EAAE,mBAAmB,qBAAqB,OAAO,KAAK,mBAAmB,eAAe,EAAE,eAAe,EAAC,CAAC,CAAC,KAAK,eAAe,QAAQ,KAAK,8BAA8B,gBAAgB,KAAK,YAAY,CAAC,CAAC,EAAE,EAAE,UAAU,mBAAmB,SAAS,EAAE,CAAC,GAAG,EAAE,gBAAgB,EAAE,EAAE,eAAe,EAAE,oBAAoB,EAAE,mBAAmB,eAAe,GAAG,KAAK,YAAY,UAAU,UAAU,MAAO,MAAK,iBAAiB,CAAC,EAAE,IAAK,MAAK,8BAA8B,gBAAgB,CAAC,EAAE,GAAG,EAAE,0BAA0B,KAAK,6BAA6B,CAAC,MAAO,QAAQ,GAAE,EAAE,EAAE,EAAE,YAAY,OAAO,IAAI,KAAK,iBAAiB,EAAE,YAAY,GAAG,CAAC,EAAE,KAAK,cAAc,EAAE,KAAK,mBAAmB,KAAK,cAAc,gBAAgB,KAAK,cAAc,qBAAqB,EAAE,KAAK,8BAA8B,gBAAgB,CAAC,CAAC,EAAE,EAAE,UAAU,oBAAoB,UAAU,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,wBAAwB,OAAO,IAAI,CAAC,GAAI,GAAE,KAAK,wBAAwB,KAAK,GAAG,GAAG,EAAE,cAAc,OAAQ,GAAE,EAAE,EAAE,eAAe,EAAE,EAAE,cAAc,QAAQ,OAAO,IAAI,CAAC,GAAI,GAAE,EAAE,cAAc,QAAQ,GAAG,GAAG,EAAE,UAAU,EAAE,EAAE,mCAAmC,EAAE,UAAU,EAAE,EAAE,iCAAiC,CAAC,GAAI,GAAE,EAAE,sBAAsB,GAAE,YAAa,GAAE,EAAE,EAAE,EAAE,KAAK,GAAE,GAAE,eAAe,EAAE,EAAE,sBAAsB,EAAE,GAAE,EAAE,yBAAyB,QAAQ,EAAC,EAAE,IAAG,AAAK,KAAL,GAAO,EAAE,UAAU,EAAE,EAAE,kCAAmC,GAAE,gBAAgB,EAAE,EAAE,UAAU,EAAE,OAAO,EAAC,CAAC,EAAE,EAAE,yBAAyB,KAAK,EAAC,GAAG,EAAE,UAAU,EAAE,EAAE,kCAAkC,EAAE,yBAAyB,KAAK,EAAC,EAAE,CAAC,IAAG,GAAE,IAAK,GAAE,UAAU,EAAE,EAAE,kCAAkC,EAAE,gBAAgB,EAAE,EAAE,UAAU,EAAE,OAAO,EAAC,CAAC,EAAE,EAAE,cAAc,mBAAmB,EAAE,EAAE,iCAAkC,SAAS,GAAE,CAAC,GAAI,IAAE,aAAa,GAAE,EAAE,GAAE,GAAE,KAAK,MAAO,MAAI,EAAC,IAAK,EAAE,UAAU,EAAE,EAAE,kCAAkC,EAAE,yBAAyB,OAAO,GAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,0BAA0B,SAAS,EAAE,GAAG,EAAE,UAAU,SAAS,UAAU,GAAG,EAAE,UAAU,QAAQ,UAAU,CAAC,GAAG,KAAK,QAAQ,0BAA0B,CAAC,GAAI,GAAE,KAAK,IAAI,EAAE,aAAa,KAAK,IAAI,KAAK,QAAQ,eAAe,EAAE,YAAY,CAAC,EAAE,KAAK,iBAAiB,EAAE,KAAK,QAAQ,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,QAAQ,sBAAsB,GAAE,KAAK,MAAM,EAAE,CAAC,EAAE,IAAI,GAAE,KAAK,IAAI,GAAE,CAAC,EAAE,EAAE,GAAG,EAAE,IAAG,KAAK,uBAAuB,gBAAgB,IAAI,EAAE,KAAK,gBAAgB,EAAE,EAAE,KAAK,WAAW,KAAK,4BAA4B,gBAAgB,IAAI,EAAE,KAAK,gBAAgB,KAAK,0BAA0B,CAAC,EAAE,KAAK,sBAAsB,gBAAgB,IAAI,EAAE,KAAK,iBAAiB,IAAI,GAAG,EAAE,KAAK,iBAAiB,EAAE,EAAE,EAAE,CAAC,KAAM,GAAE,KAAK,8BAA8B,GAAG,KAAK,IAAI,EAAE,aAAa,KAAK,IAAI,KAAK,QAAQ,eAAe,EAAE,YAAY,CAAC,EAAE,KAAK,gBAAgB,IAAI,EAAE,KAAK,WAAW,KAAK,4BAA4B,gBAAgB,IAAI,EAAE,KAAK,gBAAgB,KAAK,0BAA0B,CAAC,CAAE,EAAE,EAAE,UAAU,OAAO,SAAS,EAAE,EAAE,CAAC,GAAG,AAAS,IAAT,QAAa,GAAE,IAAI,AAAS,IAAT,QAAa,GAAE,IAAI,CAAC,KAAK,WAAW,CAAC,KAAK,kBAAkB,gBAAgB,AAAK,KAAK,6BAAV,IAAsC,KAAK,gBAAgB,KAAK,WAAW,KAAK,+BAA+B,KAAK,iBAAiB,gBAAgB,KAAK,eAAe,gBAAgB,KAAK,eAAe,gBAAgB,KAAK,aAAa,gBAAgB,KAAK,wBAAwB,QAAQ,KAAK,sBAAsB,KAAK,6BAA6B,gBAAgB,IAAI,EAAE,KAAK,eAAe,KAAK,cAAc,eAAe,EAAE,EAAE,0BAA0B,EAAE,GAAG,KAAK,UAAU,OAAQ,GAAE,EAAE,EAAE,KAAK,yBAAyB,EAAE,EAAE,OAAO,IAAK,EAAE,GAAG,SAAS,GAAG,GAAE,GAAG,KAAK,eAAe,KAAK,cAAc,OAAO,EAAE,OAAQ,GAAE,EAAE,EAAE,KAAK,cAAc,OAAO,IAAI,CAAC,GAAI,IAAE,KAAK,cAAc,GAAG,GAAG,GAAE,SAAS,GAAE,gBAAgB,EAAE,EAAE,cAAc,OAAQ,IAAE,EAAE,GAAE,GAAE,YAAY,OAAO,KAAI,GAAE,YAAY,IAAG,QAAQ,SAAS,KAAK,cAAe,MAAK,aAAa,SAAS,KAAK,aAAa,gBAAgB,EAAE,EAAE,eAAe,IAAI,GAAE,EAAE,GAAE,KAAK,aAAa,YAAY,OAAO,KAAI,KAAK,aAAa,YAAY,IAAG,SAAS,KAAK,yBAAyB,gBAAgB,IAAI,EAAE,KAAK,sCAAsC,gBAAgB,IAAI,EAAE,GAAI,IAAE,KAAK,YAAY,GAAE,KAAK,aAAa,GAAG,KAAK,qBAAqB,CAAC,EAAE,EAAE,wBAAwB,wBAAwB,KAAK,oBAAoB,OAAO,CAAC,EAAE,KAAK,uBAAuB,GAAG,OAAQ,IAAE,EAAE,GAAE,KAAK,oBAAoB,OAAO,KAAI,CAAC,GAAI,IAAE,KAAK,oBAAoB,IAAG,GAAG,GAAE,gBAAgB,CAAC,GAAG,KAAK,YAAY,KAAK,aAAa,GAAE,cAAc,KAAK,aAAa,CAAC,KAAK,aAAa,KAAM,IAAI,OAAM,uBAAuB,EAAE,GAAE,YAAY,KAAK,aAAa,QAAQ,EAAE,KAAK,wBAAwB,GAAE,OAAO,KAAI,KAAK,aAAa,KAAK,qBAAqB,CAAC,CAAC,CAAC,EAAE,EAAE,sBAAsB,wBAAwB,KAAK,oBAAoB,OAAO,CAAC,EAAE,KAAK,uBAAuB,GAAG,KAAK,WAAW,CAAC,KAAK,aAAa,GAAE,KAAK,eAAe,KAAK,cAAc,gBAAgB,EAAE,EAAE,iBAAiB,CAAC,KAAK,SAAS,KAAK,mBAAmB,KAAK,qCAAqC,gBAAgB,IAAI,EAAE,OAAQ,IAAE,EAAE,GAAE,KAAK,kBAAkB,GAAE,GAAE,OAAO,KAAK,GAAE,IAAG,SAAS,CAAC,KAAK,0BAA0B,CAAC,KAAK,WAAW,KAAK,SAAS,KAAK,QAAQ,MAAM,KAAK,WAAW,KAAK,WAAW,KAAK,gBAAgB,KAAK,iBAAiB,KAAK,yBAAyB,KAAK,wBAAwB,EAAE,OAAQ,IAAE,EAAE,GAAE,KAAK,0BAA0B,GAAE,GAAE,OAAO,KAAK,GAAE,IAAG,OAAO,KAAK,cAAc,EAAE,GAAG,KAAK,eAAe,KAAK,cAAc,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,cAAc,OAAO,IAAI,EAAE,GAAG,KAAK,QAAQ,MAAM,KAAK,GAAG,GAAG,EAAE,EAAE,KAAK,mBAAmB,KAAK,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,aAAa,KAAM,IAAI,OAAM,mBAAmB,EAAE,KAAK,mBAAmB,KAAK,YAAY,CAAC,CAAC,KAAK,sBAAsB,OAAQ,IAAE,EAAE,GAAE,KAAK,kBAAkB,GAAE,GAAE,OAAO,KAAK,GAAE,IAAG,SAAS,GAAG,KAAK,aAAa,KAAK,cAAc,KAAK,wBAAwB,gBAAgB,IAAI,EAAE,KAAK,cAAc,OAAO,CAAC,IAAI,GAAE,EAAE,GAAE,KAAK,cAAc,OAAO,KAAI,CAAC,GAAI,IAAE,KAAK,cAAc,IAAG,IAAG,GAAE,SAAS,CAAC,KAAK,cAAc,EAAE,CAAC,KAAK,uBAAwB,MAAK,sBAAsB,IAAI,KAAK,aAAa,SAAS,EAAE,EAAE,EAAE,KAAK,eAAe,SAAS,EAAE,EAAE,EAAE,KAAK,iBAAiB,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,gBAAgB,UAAU,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,UAAU,OAAO,IAAI,KAAK,UAAU,GAAG,QAAQ,EAAE,EAAE,UAAU,kBAAkB,UAAU,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,UAAU,OAAO,IAAI,KAAK,UAAU,GAAG,UAAU,EAAE,EAAE,UAAU,QAAQ,UAAU,CAAC,KAAK,aAAa,KAAK,KAAK,YAAY,KAAK,EAAE,EAAE,oBAAoB,MAAO,GAAE,EAAE,kBAAkB,MAAM,KAAK,UAAU,GAAG,KAAK,oBAAoB,GAAG,KAAK,qBAAqB,GAAG,KAAK,qBAAqB,QAAQ,KAAK,+BAA+B,QAAQ,KAAK,sBAAsB,QAAQ,KAAK,oBAAoB,QAAQ,KAAK,6BAA6B,QAAQ,KAAK,uBAAuB,QAAQ,KAAK,6BAA6B,QAAQ,KAAK,+BAA+B,QAAQ,KAAK,0BAA0B,QAAQ,KAAK,yBAAyB,QAAQ,KAAK,8BAA8B,QAAQ,KAAK,sBAAsB,QAAQ,KAAK,4BAA4B,QAAQ,KAAK,kBAAkB,QAAQ,KAAK,yBAAyB,QAAQ,KAAK,kBAAkB,QAAQ,KAAK,0BAA0B,QAAQ,KAAK,sCAAsC,QAAQ,KAAK,kBAAkB,QAAQ,KAAK,kBAAkB,QAAQ,KAAK,gBAAgB,QAAQ,OAAQ,GAAE,EAAE,EAAE,KAAK,YAAY,EAAE,EAAE,OAAO,IAAK,EAAE,GAAG,UAAU,KAAK,oBAAoB,GAAI,OAAM,KAAK,mBAAmB,KAAK,oBAAoB,KAAK,sBAAsB,KAAK,cAAe,MAAK,aAAa,cAAc,UAAU,KAAK,aAAa,MAAM,KAAK,cAAc,UAAU,KAAK,kBAAkB,UAAU,KAAK,oBAAoB,UAAU,KAAK,uBAAuB,UAAU,KAAK,iBAAiB,UAAU,KAAK,uBAAuB,UAAU,KAAK,eAAe,UAAU,KAAK,oCAAoC,UAAU,KAAK,wBAAwB,UAAU,KAAK,cAAc,GAAG,OAAQ,GAAE,EAAE,EAAE,KAAK,gBAAgB,EAAE,EAAE,OAAO,IAAK,EAAE,GAAG,QAAQ,GAAI,GAAE,GAAG,KAAK,oBAAoB,gBAAgB,IAAI,EAAE,KAAK,oBAAoB,QAAQ,KAAK,yBAAyB,QAAQ,KAAK,wBAAwB,QAAQ,KAAK,sCAAsC,QAAQ,KAAK,qCAAqC,QAAQ,KAAK,sBAAsB,QAAQ,KAAK,uBAAuB,QAAQ,KAAK,yCAAyC,QAAQ,KAAK,wCAAwC,QAAQ,KAAK,qCAAqC,QAAQ,KAAK,oCAAoC,QAAQ,KAAK,4BAA4B,QAAQ,KAAK,2BAA2B,QAAQ,KAAK,6BAA6B,QAAQ,KAAK,4BAA4B,QAAQ,KAAK,uBAAuB,QAAQ,KAAK,iCAAiC,QAAQ,KAAK,gCAAgC,QAAQ,KAAK,yBAAyB,QAAQ,KAAK,+BAA+B,QAAQ,KAAK,8BAA8B,QAAQ,KAAK,kBAAkB,QAAQ,KAAK,2BAA2B,QAAQ,KAAK,0BAA0B,QAAQ,KAAK,0BAA0B,QAAQ,KAAK,yBAAyB,QAAQ,KAAK,6BAA6B,QAAQ,KAAK,4BAA4B,QAAQ,KAAK,kCAAkC,QAAQ,KAAK,iCAAiC,QAAQ,KAAK,yBAAyB,QAAQ,KAAK,wBAAwB,QAAQ,KAAK,6BAA6B,QAAQ,KAAK,4BAA4B,QAAQ,KAAK,6BAA6B,QAAQ,KAAK,kCAAkC,QAAQ,KAAK,4BAA4B,QAAQ,KAAK,iCAAiC,QAAQ,KAAK,4BAA4B,QAAQ,KAAK,2BAA2B,QAAQ,KAAK,uBAAuB,QAAQ,KAAK,oBAAoB,QAAQ,KAAK,wBAAwB,QAAQ,KAAK,qBAAqB,QAAQ,KAAK,sBAAsB,QAAQ,KAAK,gBAAgB,KAAK,QAAQ,kBAAkB,IAAI,EAAE,EAAE,EAAE,KAAK,QAAQ,OAAO,IAAI,KAAK,QAAQ,GAAG,gBAAgB,KAAK,KAAK,gBAAgB,QAAQ,KAAK,gBAAgB,GAAG,UAAU,KAAK,KAAK,OAAO,QAAQ,KAAK,OAAO,GAAG,UAAU,KAAK,KAAK,OAAO,QAAQ,KAAK,OAAO,GAAG,QAAQ,EAAE,EAAE,KAAK,KAAK,eAAe,QAAQ,KAAK,eAAe,GAAG,QAAQ,EAAE,EAAE,KAAK,KAAK,QAAQ,QAAQ,KAAK,QAAQ,GAAG,UAAU,IAAI,KAAK,kBAAkB,KAAK,iBAAiB,UAAU,KAAK,eAAe,QAAQ,KAAK,eAAe,GAAG,UAAU,KAAK,KAAK,UAAU,QAAQ,KAAK,UAAU,GAAG,UAAU,KAAK,KAAK,gBAAgB,QAAQ,KAAK,gBAAgB,GAAG,UAAU,KAAK,KAAK,cAAc,QAAQ,KAAK,cAAc,GAAG,UAAU,KAAK,KAAK,SAAS,QAAQ,KAAK,SAAS,GAAG,UAAU,KAAK,UAAU,UAAU,KAAK,oBAAoB,KAAK,mBAAmB,UAAU,KAAK,mBAAmB,UAAW,GAAE,KAAK,QAAQ,OAAO,QAAQ,IAAI,GAAG,IAAI,KAAK,QAAQ,OAAO,OAAO,EAAE,CAAC,EAAE,KAAK,QAAQ,WAAW,EAAE,EAAE,KAAK,YAAY,EAAE,EAAE,OAAO,eAAe,EAAE,UAAU,aAAa,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,WAAW,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,sBAAsB,UAAU,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,OAAO,OAAO,IAAI,CAAC,GAAI,GAAE,KAAK,OAAO,GAAG,SAAS,GAAG,EAAE,OAAQ,KAAK,GAAE,SAAS,GAAG,EAAE,eAAe,EAAE,eAAe,eAAe,CAAC,GAAI,GAAE,eAAe,GAAG,QAAQ,MAAM,KAAK,CAAC,EAAE,EAAE,UAAU,yBAAyB,UAAU,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,SAAS,EAAE,EAAE,OAAO,IAAI,CAAC,GAAI,GAAE,EAAE,GAAG,EAAE,SAAU,GAAE,QAAQ,KAAK,CAAC,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,CAAC,GAAI,GAAE,GAAI,GAAE,EAAE,OAAO,UAAU,OAAO,UAAU,OAAO,SAAS,EAAE,EAAE,GAAI,GAAE,EAAE,CAAC,OAAO,UAAU,CAAC,OAAO,UAAU,CAAC,OAAO,SAAS,EAAE,MAAO,GAAE,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,KAAK,OAAO,OAAO,CAAC,EAAE,QAAS,SAAS,EAAE,CAAC,GAAG,EAAE,mBAAmB,EAAE,EAAE,EAAE,WAAW,AAAI,EAAE,UAAU,SAAhB,GAAwB,CAAC,EAAE,iBAAiB,CAAC,GAAI,GAAE,EAAE,kBAAkB,GAAE,EAAE,YAAY,aAAa,GAAE,EAAE,YAAY,aAAa,EAAE,EAAE,aAAa,GAAE,EAAE,CAAC,EAAE,EAAE,EAAE,aAAa,GAAE,EAAE,CAAC,CAAC,CAAC,GAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,UAAU,iBAAiB,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAyB,IAAE,EAAE,WAAW,KAAK,CAAC,EAAE,EAAE,UAAU,sBAAsB,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,CAAC,KAAyB,IAAE,EAAE,WAAW,KAAK,CAAC,EAAE,EAAE,UAAU,8BAA8B,SAAS,EAAE,EAAE,EAAE,CAAC,KAAM,IAAE,EAAE,WAAW,KAAK,CAAC,EAAE,EAAE,UAAU,mCAAmC,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,KAAM,IAAE,EAAE,WAAW,KAAK,CAAC,EAAE,EAAE,UAAU,KAAK,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,CAAC,GAAI,IAAE,GAAI,GAAE,EAAE,MAAO,IAAE,oBAAoB,GAAG,EAAC,EAAE,EAAE,UAAU,qBAAqB,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,IAAE,GAAI,GAAE,EAAE,MAAO,IAAE,oBAAoB,GAAG,EAAC,EAAE,EAAE,UAAU,YAAY,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,KAAM,IAAE,EAAE,WAAW,KAAK,CAAC,EAAE,EAAE,UAAU,UAAU,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAM,IAAE,EAAE,WAAW,KAAK,CAAC,EAAE,EAAE,UAAU,iBAAiB,SAAS,EAAE,EAAE,EAAE,CAAC,KAAM,IAAE,EAAE,WAAW,KAAK,CAAC,EAAE,EAAE,UAAU,mBAAmB,SAAS,EAAE,EAAE,CAAC,KAAK,cAAc,mBAAmB,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,mBAAmB,UAAU,CAAC,MAAO,MAAK,cAAc,oBAAoB,EAAE,EAAE,UAAU,mBAAmB,UAAU,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,WAAW,EAAE,EAAE,OAAO,IAAK,EAAE,GAAG,WAAW,OAAQ,GAAE,EAAE,EAAE,KAAK,OAAO,EAAE,EAAE,OAAO,IAAK,EAAE,GAAG,WAAW,KAAK,oBAAoB,KAAK,mBAAmB,WAAW,OAAQ,GAAE,EAAE,GAAE,KAAK,YAAY,EAAE,GAAE,OAAO,IAAK,GAAE,GAAG,UAAU,OAAQ,IAAE,EAAE,GAAE,KAAK,gBAAgB,GAAE,GAAE,OAAO,KAAK,GAAE,IAAG,SAAU,EAAE,EAAE,UAAU,iBAAiB,UAAU,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,SAAS,EAAE,EAAE,OAAO,IAAK,EAAE,GAAG,WAAW,KAAK,wBAAwB,EAAE,EAAE,yBAAyB,CAAC,EAAE,EAAE,UAAU,WAAW,SAAS,EAAE,EAAE,EAAE,CAAC,GAAG,AAAS,IAAT,OAAW,MAAO,GAAE,GAAI,GAAE,GAAG,OAAQ,KAAK,GAAE,GAAG,SAAS,GAAE,GAAG,EAAE,CAAC,GAAI,IAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,aAAa,GAAE,CAAC,GAAI,GAAE,KAAK,EAAC,EAAE,EAAE,EAAC,EAAE,CAAC,MAAO,EAAC,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,EAAE,CAAC,MAAO,MAAK,WAAW,KAAK,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,iBAAiB,SAAS,EAAE,EAAE,CAAC,MAAO,MAAK,WAAW,KAAK,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,EAAE,CAAC,MAAO,MAAK,WAAW,KAAK,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,kBAAkB,SAAS,EAAE,EAAE,CAAC,MAAO,MAAK,WAAW,KAAK,UAAU,EAAE,CAAC,EAAE,OAAO,KAAK,WAAW,KAAK,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,wBAAwB,SAAS,EAAE,EAAE,CAAC,MAAO,MAAK,WAAW,KAAK,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,kBAAkB,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,MAAM,AAAS,IAAT,QAAa,GAAE,MAAM,AAAS,IAAT,QAAa,GAAE,MAAM,KAAK,kBAAkB,kBAAkB,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,kCAAkC,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,AAAS,IAAT,QAAa,GAAE,IAAI,KAAK,kBAAkB,kCAAkC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,8BAA8B,SAAS,EAAE,CAAC,MAAO,MAAK,kBAAkB,8BAA8B,CAAC,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,8BAA8B,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,4BAA4B,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,+BAA+B,GAAI,MAAK,6BAA6B,EAAE,GAAG,KAAK,wBAAwB,EAAE,EAAE,qBAAqB,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,wBAAwB,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,6BAA6B,OAAQ,GAAE,EAAE,EAAE,KAAK,UAAU,EAAE,EAAE,OAAO,IAAI,CAAC,GAAI,GAAE,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,UAAU,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,CAAC,GAAI,IAAE,KAAK,GAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,KAAK,gBAAgB,OAAO,EAAE,EAAC,EAAE,MAAO,MAAK,gBAAgB,KAAK,EAAC,EAAE,GAAE,qBAAqB,IAAK,SAAS,GAAE,CAAC,GAAE,gBAAgB,OAAO,GAAE,gBAAgB,QAAQ,EAAC,EAAE,CAAC,CAAC,GAAI,EAAC,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,MAAO,IAAI,SAAS,SAAS,GAAE,GAAE,CAAC,EAAE,UAAU,EAAG,SAAS,GAAE,CAAC,GAAE,EAAC,CAAC,EAAG,EAAE,EAAE,EAAG,SAAS,GAAE,GAAE,CAAC,GAAE,EAAC,CAAC,EAAG,EAAG,EAAE,EAAE,UAAU,aAAa,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,GAAE,CAAC,GAAI,IAAE,KAAK,GAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,KAAK,gBAAgB,OAAO,EAAE,GAAE,EAAC,EAAE,MAAO,MAAK,gBAAgB,KAAK,EAAC,EAAE,GAAE,qBAAqB,IAAK,SAAS,GAAE,CAAC,GAAE,gBAAgB,OAAO,GAAE,gBAAgB,QAAQ,EAAC,EAAE,CAAC,CAAC,GAAI,EAAC,EAAE,EAAE,UAAU,kBAAkB,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,IAAE,KAAK,MAAO,IAAI,SAAS,SAAS,GAAE,GAAE,CAAC,GAAE,aAAa,EAAG,SAAS,GAAE,CAAC,GAAE,EAAC,CAAC,EAAG,EAAE,EAAE,EAAG,SAAS,GAAE,CAAC,GAAE,EAAC,CAAC,EAAG,CAAC,CAAC,EAAG,EAAE,EAAE,UAAU,UAAU,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,IAAE,KAAK,GAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAO,MAAK,gBAAgB,KAAK,EAAC,EAAE,GAAE,qBAAqB,IAAK,SAAS,GAAE,CAAC,GAAE,gBAAgB,OAAO,GAAE,gBAAgB,QAAQ,EAAC,EAAE,CAAC,CAAC,GAAI,EAAC,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,MAAO,IAAI,SAAS,SAAS,EAAE,GAAE,CAAC,EAAE,UAAU,EAAG,SAAS,GAAE,CAAC,EAAE,EAAC,CAAC,EAAG,EAAE,EAAG,SAAS,GAAE,CAAC,GAAE,EAAC,CAAC,EAAG,EAAG,EAAE,EAAE,aAAa,EAAE,EAAE,YAAY,EAAE,EAAE,aAAa,EAAE,EAAE,eAAe,EAAE,EAAE,aAAa,EAAE,EAAE,aAAa,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,GAAE,EAAE,EAAE,CAAc,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,GAAI,GAAE,UAAU,CAAC,YAAY,EAAE,MAAO,GAAE,WAAW,SAAS,EAAE,CAAC,MAAO,GAAE,kFAAkF,EAAE,CAAC,GAAG,EAAE,SAAS,GAAE,EAAE,EAAE,CAAc,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,GAAI,GAAE,UAAU,CAAC,YAAY,EAAE,MAAO,QAAO,eAAe,EAAE,oBAAoB,CAAC,IAAI,UAAU,CAAC,MAAO,AAAI,MAAK,UAAU,SAAnB,EAA0B,KAAK,KAAK,UAAU,KAAK,UAAU,OAAO,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,mBAAmB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,iBAAiB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,GAAI,OAAM,EAAE,kBAAkB,KAAK,EAAE,mBAAmB,GAAG,EAAE,gBAAgB,GAAG,CAAC,GAAG,EAAE,SAAS,GAAE,EAAE,EAAE,CAAc,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,GAAI,GAAE,EAAE,EAAE,CAAC,EAAE,AAAC,UAAS,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,EAAE,EAAE,MAAM,GAAG,QAAQ,EAAE,EAAE,KAAK,GAAG,MAAM,GAAE,GAAI,GAAE,GAAG,EAAE,GAAI,GAAE,EAAE,UAAU,CAAC,YAAY,EAAE,MAAO,GAAE,EAAE,GAAI,GAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAI,GAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAI,GAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,AAAC,UAAS,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,GAAE,GAAI,GAAE,GAAG,CAAC,EAAE,SAAS,GAAE,EAAE,EAAE,CAAc,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,GAAI,GAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,GAAI,GAAE,EAAE,KAAK,KAAK,EAAE,CAAC,GAAG,KAAK,MAAO,GAAE,UAAU,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,UAAU,KAAK,EAAE,WAAW,KAAK,EAAE,YAAY,KAAK,EAAE,SAAS,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE,QAAQ,GAAG,EAAE,KAAK,EAAE,mBAAmB,EAAE,eAAe,GAAG,EAAE,SAAS,GAAI,GAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,UAAU,EAAE,QAAQ,EAAE,uBAAuB,EAAE,cAAc,EAAE,cAAc,EAAE,oBAAoB,GAAI,OAAM,EAAE,mBAAmB,KAAK,EAAE,8BAA8B,GAAI,GAAE,EAAE,EAAE,oCAAoC,GAAI,GAAE,EAAE,EAAE,6BAA6B,GAAI,GAAE,EAAE,EAAE,yBAAyB,GAAI,GAAE,EAAE,EAAE,YAAY,GAAG,EAAE,YAAY,GAAI,OAAM,EAAE,iBAAiB,EAAE,EAAE,WAAW,EAAE,eAAe,GAAG,EAAE,kBAAkB,GAAI,GAAE,EAAE,EAAE,eAAe,GAAI,OAAM,EAAE,cAAc,GAAI,GAAE,EAAE,GAAG,EAAE,EAAE,gBAAgB,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE,EAAE,WAAW,EAAE,8BAA8B,GAAG,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,sBAAsB,GAAG,EAAE,UAAU,GAAG,EAAE,cAAc,GAAG,EAAE,eAAe,GAAG,EAAE,WAAW,UAAU,CAAC,EAAE,GAAG,CAAC,EAAE,WAAW,cAAe,GAAE,WAAW,aAAa,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,MAAO,QAAO,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,WAAW,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,SAAS,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,UAAU,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,WAAW,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,SAAS,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,UAAU,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,WAAW,UAAU,CAAC,MAAO,MAAK,aAAa,GAAG,KAAK,WAAW,KAAK,IAAI,IAAI,EAAE,EAAE,UAAU,oBAAoB,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,cAAe,MAAK,IAAI,KAAK,WAAW,GAAG,EAAE,EAAE,UAAU,aAAa,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,uBAAwB,MAAK,yBAAyB,gBAAgB,IAAI,EAAE,GAAG,EAAE,EAAE,UAAU,aAAa,UAAU,CAAC,MAAM,QAAQ,EAAE,EAAE,UAAU,SAAS,SAAS,EAAE,CAAC,GAAI,GAAE,SAAS,KAAK,KAAK,GAAG,GAAG,WAAW,KAAK,eAAe,KAAK,WAAW,OAAQ,GAAE,EAAE,EAAE,KAAK,WAAW,OAAO,IAAI,GAAG,mBAAmB,KAAK,WAAW,GAAG,SAAS,CAAC,EAAE,MAAO,EAAC,EAAE,OAAO,eAAe,EAAE,UAAU,iBAAiB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,eAAe,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,gBAAgB,UAAU,CAAC,MAAO,MAAK,aAAa,EAAE,EAAE,UAAU,aAAa,SAAS,EAAE,CAAC,MAAM,AAAK,MAAK,cAAc,QAAQ,CAAC,IAAjC,EAAkC,EAAE,EAAE,UAAU,QAAQ,SAAS,EAAE,CAAC,GAAG,AAAS,IAAT,QAAa,GAAE,IAAI,EAAE,OAAQ,GAAE,EAAE,EAAE,KAAK,eAAe,EAAE,EAAE,OAAO,IAAI,CAAC,GAAI,GAAE,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,UAAU,MAAM,EAAE,CAAC,MAAO,GAAE,UAAU,QAAQ,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,UAAU,WAAW,UAAU,CAAC,EAAE,UAAU,WAAW,KAAK,IAAI,EAAE,KAAK,OAAO,SAAS,GAAI,GAAE,EAAE,OAAO,UAAU,OAAO,UAAU,OAAO,SAAS,EAAE,KAAK,OAAO,SAAS,GAAI,GAAE,EAAE,OAAO,UAAU,OAAO,UAAU,OAAO,SAAS,EAAE,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,OAAO,QAAQ,OAAO,KAAK,OAAO,YAAY,OAAO,KAAK,OAAO,UAAU,OAAO,KAAK,OAAO,WAAW,OAAO,KAAK,OAAO,YAAY,OAAO,KAAK,OAAO,SAAS,OAAO,KAAK,OAAO,YAAY,OAAO,KAAK,OAAO,aAAa,MAAM,EAAE,EAAE,UAAU,aAAa,SAAS,EAAE,CAAC,GAAG,EAAE,UAAU,aAAa,KAAK,IAAI,EAAE,KAAK,OAAO,SAAS,SAAS,KAAK,QAAQ,EAAE,KAAK,OAAO,SAAS,SAAS,KAAK,QAAQ,CAAC,EAAE,EAAE,UAAU,gBAAgB,UAAU,CAAC,MAAO,MAAK,6BAA6B,KAAK,iCAAiC,EAAE,EAAE,UAAU,0BAA0B,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,gBAAgB,KAAK,IAAI,GAAI,KAAK,OAAO,SAAS,OAAO,KAAK,QAAQ,GAAG,KAAK,OAAO,SAAS,OAAO,KAAK,QAAQ,GAAG,KAAK,0BAA2B,EAAE,EAAE,UAAU,gCAAgC,UAAU,CAAC,GAAI,GAAE,KAAK,OAAO,OAAO,KAAK,MAAM,KAAK,OAAO,OAAO,KAAK,MAAM,KAAK,OAAO,OAAO,KAAK,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,GAAI,GAAE,KAAK,YAAY,MAAO,GAAE,KAAK,OAAO,EAAE,mBAAmB,KAAK,OAAO,MAAM,KAAK,KAAK,KAAK,OAAO,UAAU,KAAK,SAAS,KAAK,OAAO,cAAc,EAAE,eAAe,IAAI,EAAE,KAAK,OAAO,YAAY,KAAK,WAAW,KAAK,OAAO,aAAa,KAAK,YAAY,KAAK,OAAO,cAAc,KAAK,aAAa,KAAK,OAAO,WAAW,KAAK,UAAU,KAAK,OAAO,cAAc,EAAE,kBAAkB,KAAK,OAAO,eAAe,EAAE,iBAAiB,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,EAAE,GAAG,EAAE,UAAU,cAAc,SAAS,EAAE,GAAG,EAAE,UAAU,OAAO,UAAU,CAAC,KAAK,eAAe,KAAK,gBAAgB,EAAE,eAAe,KAAK,mBAAmB,EAAE,EAAE,UAAU,aAAa,UAAU,CAAC,KAAK,6BAA6B,gBAAgB,IAAI,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,aAAa,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,WAAW,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,iBAAiB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,eAAe,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,qBAAqB,UAAU,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,eAAe,OAAO,IAAI,GAAG,AAAO,KAAK,eAAe,KAA3B,KAA8B,MAAO,MAAK,eAAe,GAAG,MAAO,KAAI,EAAE,EAAE,UAAU,+BAA+B,UAAU,CAAC,GAAI,GAAE,KAAK,uBAAuB,GAAG,EAAE,mBAAmB,OAAQ,GAAE,EAAE,EAAE,KAAK,YAAY,OAAO,EAAE,EAAE,IAAI,CAAC,GAAI,GAAE,KAAK,YAAY,GAAG,EAAE,EAAE,gBAAgB,AAAG,EAAE,CAAS,EAAE,kBAAX,QAA6B,GAAE,eAAe,AAAI,KAAK,eAAe,SAAxB,GAAgC,EAAE,eAAe,KAAK,eAAe,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,oBAAwB,EAAE,eAAe,KAAK,eAAe,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,kBAAkB,SAAS,EAAE,EAAE,CAAC,MAAO,AAAS,KAAT,QAAa,GAAE,MAAM,CAAC,EAAE,cAAc,KAAK,eAAe,QAAQ,CAAC,EAAE,GAAI,GAAE,EAAE,MAAM,gEAAgE,EAAE,GAAI,CAAM,GAAN,MAAS,EAAE,EAAE,KAAK,eAAe,KAAK,CAAC,EAAE,AAAO,KAAK,eAAe,KAA3B,KAA8B,KAAK,eAAe,GAAG,EAAE,KAAK,eAAe,OAAO,EAAE,EAAE,CAAC,EAAE,KAAK,iCAAiC,KAAK,OAAO,iBAAiB,KAAK,OAAO,gBAAgB,cAAc,KAAK,eAAe,QAAQ,CAAC,EAAE,EAAE,EAAE,UAAU,kBAAkB,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,eAAe,QAAQ,CAAC,EAAE,AAAK,IAAL,IAAS,MAAK,eAAe,GAAG,MAAM,KAAK,OAAO,iBAAiB,KAAK,OAAO,gBAAgB,cAAc,KAAK,gCAAgC,EAAE,EAAE,UAAU,eAAe,UAAU,CAAC,MAAO,MAAK,6BAA6B,KAAK,gBAAgB,KAAK,YAAY,EAAE,EAAE,UAAU,eAAe,UAAU,CAAC,MAAO,GAAE,EAAE,UAAU,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,6BAA8B,MAAK,cAAc,KAAK,oBAAoB,KAAK,iBAAiB,KAAK,iBAAiB,KAAK,WAAW,cAAc,KAAK,iBAAiB,KAAK,sBAAsB,GAAG,KAAK,kBAAkB,KAAK,iBAAiB,iBAAiB,KAAK,oBAAoB,cAAc,KAAK,iBAAiB,gBAAgB,KAAK,mBAAmB,EAAE,KAAK,QAAQ,KAAK,OAAO,+BAA+B,KAAK,OAAO,8BAA8B,gBAAgB,KAAK,MAAM,EAAE,KAAK,8BAA8B,gBAAgB,IAAI,EAAE,KAAK,oBAAoB,YAAY,KAAK,YAAY,GAAG,KAAK,mBAAmB,EAAE,EAAE,UAAU,uBAAuB,SAAS,EAAE,CAAC,KAAK,8BAA8B,GAAG,AAAS,IAAT,QAAa,MAAK,kBAAkB,EAAE,EAAE,EAAE,UAAU,yBAAyB,UAAU,CAAC,KAAK,8BAA8B,EAAE,EAAE,EAAE,UAAU,oBAAoB,SAAS,EAAE,CAAC,GAAI,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,KAAK,+BAA+B,CAAC,GAAG,KAAK,kCAAkC,MAAO,MAAK,kBAAkB,KAAK,OAAO,KAAK,KAAK,KAAK,KAAK,OAAO,KAAK,KAAK,KAAK,KAAK,OAAO,KAAK,KAAK,KAAK,KAAK,sBAAsB,GAAG,GAAI,IAAE,KAAK,YAAY,GAAE,KAAK,WAAW,GAAG,KAAK,OAAO,EAAE,mBAAmB,CAAC,KAAK,OAAO,IAAI,KAAK,IAAI,KAAK,OAAO,QAAQ,KAAK,QAAQ,KAAK,OAAO,YAAY,GAAE,eAAe,IAAI,EAAE,KAAK,MAAM,GAAI,MAAK,KAAK,IAAI,GAAI,IAAE,GAAE,sBAAsB,AAAC,IAAE,qBAAqB,GAAE,EAAE,EAAE,6BAA6B,EAAE,EAAE,sBAAsB,GAAE,EAAE,EAAE,6BAA6B,EAAE,EAAE,uBAAuB,KAAK,IAAI,GAAE,eAAe,IAAI,EAAE,KAAK,KAAK,KAAK,KAAK,KAAK,kBAAkB,KAAK,UAAU,EAAE,sBAAsB,CAAC,KAAK,CAAC,GAAI,IAAE,GAAE,iBAAiB,EAAE,GAAE,GAAE,kBAAkB,EAAE,GAAE,qBAAqB,EAAE,EAAE,sBAAsB,AAAQ,GAAE,KAAK,aAAf,MAA2B,AAAS,IAAT,OAAW,EAAE,CAAC,GAAE,AAAQ,GAAE,KAAK,cAAf,MAA4B,AAAS,IAAT,OAAW,EAAE,GAAE,AAAQ,GAAE,KAAK,eAAf,MAA6B,AAAS,IAAT,OAAW,EAAE,CAAC,GAAE,AAAQ,GAAE,KAAK,YAAf,MAA0B,AAAS,IAAT,OAAW,EAAE,GAAE,KAAK,KAAK,KAAK,KAAK,KAAK,iBAAiB,EAAE,EAAE,EAAE,sBAAsB,AAAQ,GAAE,KAAK,aAAf,MAA2B,AAAS,IAAT,OAAW,EAAE,CAAC,GAAE,AAAQ,GAAE,KAAK,cAAf,MAA4B,AAAS,IAAT,OAAW,EAAE,GAAE,AAAQ,GAAE,KAAK,eAAf,MAA6B,AAAS,IAAT,OAAW,EAAE,CAAC,GAAE,AAAQ,GAAE,KAAK,YAAf,MAA0B,AAAS,IAAT,OAAW,EAAE,GAAE,KAAK,KAAK,KAAK,KAAK,KAAK,iBAAiB,EAAE,KAAK,OAAO,UAAU,KAAK,UAAU,KAAK,OAAO,WAAW,KAAK,WAAW,KAAK,OAAO,YAAY,KAAK,YAAY,KAAK,OAAO,SAAS,KAAK,SAAS,KAAK,OAAO,YAAY,GAAE,iBAAiB,KAAK,OAAO,aAAa,GAAE,iBAAiB,CAAC,MAAO,MAAK,oCAAoC,gBAAgB,IAAI,EAAE,KAAK,iBAAiB,EAAE,EAAE,UAAU,wBAAwB,UAAU,CAAC,MAAO,MAAK,oBAAoB,cAAc,KAAK,kBAAkB,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,EAAE,UAAU,qBAAqB,UAAU,CAAC,KAAK,uBAAwB,MAAK,0BAA0B,KAAK,eAAe,EAAE,EAAE,eAAe,KAAK,iBAAiB,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,EAAE,UAAU,KAAK,gBAAgB,EAAE,KAAK,sBAAsB,GAAG,EAAE,EAAE,UAAU,YAAY,SAAS,EAAE,EAAE,CAAC,GAAG,AAAS,IAAT,QAAa,GAAE,IAAI,KAAK,uBAAuB,GAAG,KAAK,WAAW,OAAO,EAAE,CAAC,GAAI,GAAE,GAAG,MAAO,MAAK,WAAW,QAAS,SAAS,EAAE,CAAC,EAAE,uBAAuB,EAAE,GAAG,EAAE,YAAY,EAAE,cAAc,CAAC,GAAI,CAAC,CAAC,MAAO,GAAE,YAAY,KAAK,cAAc,CAAC,EAAE,EAAE,UAAU,sBAAsB,SAAS,EAAE,CAAC,MAAO,MAAK,uBAAuB,EAAE,sBAAsB,KAAK,cAAc,CAAC,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,EAAE,EAAE,CAAC,KAA0B,GAAE,EAAE,WAAW,KAAK,CAAC,EAAE,EAAE,UAAU,mBAAmB,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,KAA0B,GAAE,EAAE,WAAW,KAAK,CAAC,EAAE,EAAE,UAAU,QAAQ,SAAS,EAAE,EAAE,CAAC,IAAI,AAAS,IAAT,QAAa,GAAE,IAAI,KAAK,8BAA8B,QAAQ,KAAK,oCAAoC,QAAQ,KAAK,6BAA6B,QAAQ,KAAK,yBAAyB,QAAQ,KAAK,QAAQ,KAAK,OAAO,QAAQ,KAAK,WAAW,cAAc,IAAI,EAAE,KAAK,WAAW,aAAa,IAAI,EAAE,KAAK,YAAY,OAAO,GAAG,CAAC,GAAI,GAAE,KAAK,YAAY,MAAM,GAAG,EAAE,SAAS,CAAC,GAAG,KAAK,gBAAgB,KAAK,gBAAgB,QAAQ,IAAI,EAAE,KAAK,gBAAgB,KAAK,KAAK,eAAe,WAAW,KAAK,gBAAgB,EAAE,cAAc,KAAK,gBAAgB,KAAK,KAAK,eAAe,OAAQ,QAAQ,GAAE,KAAK,eAAe,OAAO,EAAE,GAAG,GAAG,CAAC,GAAI,GAAE,KAAK,eAAe,GAAG,GAAG,EAAE,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,oBAAoB,OAAO,EAAE,GAAG,GAAG,KAAK,oBAAoB,GAAG,UAAU,KAAK,oBAAoB,GAAG,KAAK,cAAc,UAAU,EAAE,UAAU,QAAQ,KAAK,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,eAAe,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,aAAa,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,gBAAgB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,cAAc,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,aAAa,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,YAAY,OAAO,EAAE,KAAK,KAAK,YAAY,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,cAAc,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,YAAY,OAAO,EAAE,KAAK,KAAK,YAAY,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,cAAc,UAAU,CAAC,MAAO,MAAK,YAAY,OAAO,EAAE,KAAK,KAAK,YAAY,GAAG,WAAW,EAAE,EAAE,UAAU,eAAe,UAAU,CAAC,MAAO,MAAK,YAAY,OAAO,EAAE,KAAK,KAAK,YAAY,GAAG,WAAW,EAAE,EAAE,UAAU,iBAAiB,SAAS,EAAE,EAAE,CAAC,GAAG,KAAK,gBAAgB,EAAE,CAAC,KAAK,KAAK,YAAY,OAAO,GAAG,CAAC,GAAI,GAAE,KAAK,YAAY,MAAM,GAAG,EAAE,SAAS,CAAC,GAAG,KAAK,cAAc,EAAE,KAAK,iBAAiB,GAAG,KAAK,iBAAiB,mBAAmB,EAAE,oBAAoB,MAAM,KAAK,iBAAiB,gBAAgB,EAAE,EAAE,UAAU,KAAK,iBAAiB,mBAAmB,KAAK,EAAE,KAAK,gBAAgB,EAAE,cAAc,CAAC,GAAI,GAAE,KAAK,gBAAgB,KAAK,KAAK,KAAK,CAAC,EAAE,GAAI,GAAE,cAAc,IAAI,GAAI,GAAE,KAAK,gBAAgB,KAAK,KAAK,KAAK,CAAC,EAAE,GAAI,GAAE,eAAe,IAAI,GAAG,GAAI,MAAK,YAAY,KAAK,CAAC,EAAE,KAAK,YAAY,KAAK,CAAC,EAAE,CAAC,OAAO,KAAK,mBAAoB,GAAE,+BAA+B,EAAE,gCAAgC,IAAI,EAAE,UAAW,GAAE,8CAA+C,GAAE,+CAAgD,GAAE,oCAAqC,GAAE,iCAAiC,EAAE,wBAAwB,IAAI,EAAE,UAAW,GAAE,YAAY,EAAE,cAAc,KAAK,CAAC,EAAE,UAAW,GAAE,eAAe,EAAE,iBAAiB,KAAK,CAAC,EAAE,KAAK,iCAAiC,KAAK,QAAQ,CAAC,EAAE,EAAE,wBAAwB,SAAS,EAAE,CAAC,KAAK,gFAAgF,EAAE,EAAE,gCAAgC,SAAS,EAAE,CAAC,KAAK,iGAAiG,EAAE,EAAE,cAAc,SAAS,EAAE,EAAE,CAAC,KAAK,4DAA4D,EAAE,EAAE,iBAAiB,SAAS,EAAE,EAAE,CAAC,KAAK,mEAAmE,EAAE,EAAE,UAAU,uBAAuB,UAAU,CAAC,MAAO,GAAE,EAAE,sBAAsB,KAAK,iBAAiB,UAAU,eAAe,KAAK,iBAAiB,UAAU,YAAY,KAAK,KAAK,KAAK,KAAK,KAAK,iBAAiB,YAAY,EAAE,KAAK,iBAAiB,aAAa,cAAc,KAAK,iBAAiB,UAAU,KAAK,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,EAAE,UAAU,4BAA4B,UAAU,GAAG,EAAE,UAAU,iCAAiC,UAAU,GAAG,EAAE,UAAU,0BAA0B,UAAU,CAAC,MAAO,GAAE,EAAE,UAAU,EAAE,EAAE,UAAU,oBAAoB,UAAU,CAAC,MAAO,GAAE,EAAE,UAAU,EAAE,EAAE,UAAU,sBAAsB,SAAS,EAAE,EAAE,CAAC,KAAK,kBAAmB,MAAK,iBAAiB,IAAI,KAAK,iBAAiB,GAAG,EAAE,AAAuB,IAAvB,sBAA2B,MAAK,iBAAiB,gBAAgB,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,EAAE,CAAC,MAAO,KAAI,EAAE,EAAE,UAAU,kBAAkB,UAAU,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,YAAY,OAAO,IAAI,KAAK,YAAY,GAAG,KAAK,KAAK,KAAK,KAAK,YAAY,GAAG,KAAK,KAAK,KAAK,KAAK,YAAY,GAAG,IAAI,KAAK,IAAI,KAAK,YAAY,GAAG,SAAS,SAAS,KAAK,QAAQ,EAAE,KAAK,gBAAgB,EAAE,gCAAiC,MAAK,YAAY,GAAG,SAAS,KAAK,YAAY,GAAG,SAAS,KAAK,SAAS,EAAE,EAAE,UAAU,aAAa,UAAU,GAAG,EAAE,UAAU,UAAU,UAAU,CAAC,GAAI,GAAE,EAAE,EAAE,UAAU,IAAI,EAAE,MAAO,GAAE,KAAK,KAAK,eAAe,KAAK,QAAS,GAAE,SAAS,KAAK,OAAO,IAAI,KAAK,QAAQ,KAAK,OAAO,UAAU,CAAC,EAAE,EAAE,EAAE,2BAA2B,KAAK,CAAC,EAAE,EAAE,OAAO,KAAK,2BAA2B,CAAC,EAAE,EAAE,UAAU,MAAM,SAAS,EAAE,CAAC,MAAO,GAAE,EAAE,MAAM,EAAE,uBAAuB,KAAK,eAAe,EAAE,KAAK,WAAW,KAAK,mBAAmB,KAAK,wBAAwB,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,aAAa,SAAS,EAAE,CAAC,GAAI,GAAE,EAAE,EAAE,OAAO,MAAO,MAAK,kBAAkB,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,mBAAmB,CAAC,IAAI,UAAU,CAAC,GAAI,GAAE,EAAE,EAAE,OAAO,MAAO,MAAK,iBAAiB,UAAU,OAAO,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,kBAAkB,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,qBAAqB,EAAE,KAAK,iBAAiB,CAAC,CAAC,EAAE,EAAE,uBAAuB,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,GAAG,AAAS,IAAT,QAAa,GAAE,IAAI,GAAI,GAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,oBAAoB,EAAE,yBAAyB,CAAC,CAAC,EAAE,MAAO,IAAG,UAAU,CAAC,MAAO,GAAE,2BAA2B,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,mBAAmB,UAAU,CAAC,MAAO,MAAK,gBAAgB,EAAE,EAAE,MAAM,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,KAAK,EAAE,EAAE,uBAAuB,EAAE,EAAE,KAAK,EAAE,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,UAAW,GAAE,iBAAiB,EAAE,UAAU,EAAE,QAAS,GAAE,OAAO,MAAM,CAAC,EAAE,EAAE,gBAAgB,EAAE,UAAW,GAAE,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,GAAG,EAAE,aAAc,GAAE,SAAS,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,GAAI,GAAE,EAAE,oBAAoB,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,GAAG,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,OAAQ,GAAE,EAAE,EAAE,EAAE,WAAW,OAAO,IAAI,CAAC,GAAI,GAAE,EAAE,WAAW,GAAG,EAAE,EAAE,EAAE,SAAS,mBAAmB,EAAE,GAAG,EAAE,WAAW,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC,CAAC,MAAO,GAAE,aAAa,EAAE,eAAe,EAAE,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,2BAA2B,SAAS,EAAE,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,iBAAiB,CAAC,EAAE,EAAE,mBAAmB,EAAE,EAAE,oBAAoB,EAAE,EAAE,uBAAuB,EAAE,EAAE,yBAAyB,EAAE,EAAE,cAAc,EAAE,EAAE,+BAA+B,GAAG,EAAE,0CAA0C,GAAG,EAAE,2CAA2C,GAAG,EAAE,gCAAgC,GAAG,EAAE,iCAAiC,GAAG,EAAE,YAAY,GAAG,EAAE,eAAe,GAAG,EAAE,gBAAgB,GAAG,EAAE,yCAAyC,GAAG,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE,UAAU,YAAY,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE,UAAU,YAAY,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,YAAY,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,aAAa,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,cAAc,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,WAAW,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,MAAM,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,UAAU,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,YAAY,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,UAAU,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,gBAAgB,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,qBAAqB,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,2BAA2B,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,GAAE,EAAE,EAAE,CAAc,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,GAAI,GAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,KAAK,mBAAmB,KAAK,KAAK,uBAAuB,GAAG,KAAK,SAAS,KAAK,KAAK,kBAAkB,KAAK,KAAK,sBAAsB,GAAG,KAAK,mBAAmB,GAAG,KAAK,MAAM,GAAG,KAAK,OAAO,EAAE,KAAK,iBAAiB,GAAG,KAAK,WAAW,KAAK,KAAK,QAAQ,KAAK,KAAK,wBAAwB,KAAK,KAAK,eAAe,GAAG,KAAK,wBAAwB,GAAG,KAAK,WAAW,KAAK,KAAK,oBAAoB,GAAI,GAAE,EAAE,KAAK,mBAAmB,KAAK,KAAK,oBAAoB,KAAK,KAAK,gBAAgB,KAAK,KAAK,WAAW,EAAE,EAAE,cAAc,KAAK,kBAAkB,GAAG,KAAK,kBAAkB,GAAG,KAAK,kBAAkB,GAAG,KAAK,gBAAgB,GAAG,KAAK,cAAc,EAAE,KAAK,oBAAoB,GAAG,KAAK,YAAY,GAAG,KAAK,UAAU,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,KAAK,KAAK,QAAQ,GAAG,KAAK,UAAU,EAAE,iBAAiB,KAAK,uBAAuB,GAAG,KAAK,uBAAuB,GAAG,KAAK,0BAA0B,EAAE,KAAK,2BAA2B,GAAG,KAAK,QAAQ,KAAK,KAAK,gBAAgB,GAAG,KAAK,kBAAkB,KAAK,KAAK,KAAK,EAAE,GAAI,GAAE,EAAE,IAAI,KAAK,OAAO,GAAG,EAAE,EAAE,iBAAiB,KAAK,GAAG,GAAG,EAAE,EAAE,WAAW,KAAK,OAAO,gBAAgB,KAAK,EAAE,GAAG,KAAK,GAAG,EAAE,IAAI,IAAI,KAAK,SAAS,KAAK,OAAO,cAAc,KAAK,OAAO,qBAAqB,KAAK,gBAAgB,EAAE,yBAAyB,KAAK,gBAAgB,EAAE,gCAAgC,KAAK,eAAe,GAAI,GAAE,EAAE,KAAK,OAAO,WAAW,EAAE,KAAK,QAAQ,KAAK,WAAW,YAAY,uBAAuB,GAAG,KAAK,OAAO,YAAY,IAAI,EAAE,KAAK,OAAO,oBAAqB,MAAK,QAAQ,GAAG,CAAC,MAAO,QAAO,eAAe,EAAE,UAAU,iBAAiB,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,QAAQ,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,SAAS,GAAI,MAAK,OAAO,EAAE,KAAK,YAAY,EAAE,aAAa,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,kBAAkB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,gBAAgB,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,mBAAmB,GAAI,MAAK,iBAAiB,EAAE,KAAK,YAAY,EAAE,gBAAgB,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,0BAA0B,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,YAAY,CAAC,IAAI,SAAS,EAAE,CAAC,KAAK,oBAAoB,KAAK,oBAAoB,OAAO,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,KAAK,oBAAoB,IAAI,CAAC,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,mBAAmB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,mBAAoB,MAAK,kBAAkB,GAAI,GAAE,GAAG,KAAK,iBAAiB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,SAAS,CAAC,IAAI,SAAS,EAAE,CAAC,KAAK,iBAAiB,KAAK,iBAAiB,OAAO,KAAK,eAAe,EAAE,KAAK,gBAAgB,KAAK,iBAAiB,IAAI,CAAC,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,qBAAqB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,qBAAsB,MAAK,oBAAoB,GAAI,GAAE,GAAG,KAAK,mBAAmB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,4BAA4B,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,4BAA6B,MAAK,2BAA2B,GAAI,GAAE,GAAG,KAAK,0BAA0B,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,YAAY,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,UAAU,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,aAAa,GAAI,MAAK,WAAW,EAAE,KAAK,YAAY,EAAE,gBAAgB,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,mBAAmB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,iBAAiB,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,oBAAoB,GAAI,MAAK,kBAAkB,EAAE,KAAK,mBAAoB,MAAK,sBAAsB,IAAI,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,aAAa,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,WAAW,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,cAAc,GAAI,MAAK,YAAY,EAAE,KAAK,YAAY,EAAE,aAAa,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,YAAY,CAAC,IAAI,UAAU,CAAC,OAAO,KAAK,eAAgB,GAAE,sBAAuB,GAAE,qBAAsB,GAAE,qBAAsB,GAAE,kBAAkB,MAAM,GAAG,MAAO,MAAK,OAAO,cAAc,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,SAAS,EAAE,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,cAAc,CAAC,IAAI,UAAU,CAAC,OAAO,KAAK,eAAgB,GAAE,kBAAmB,GAAE,kBAAkB,MAAM,GAAG,MAAO,MAAK,OAAO,gBAAgB,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,SAAS,EAAE,EAAE,cAAc,EAAE,gBAAgB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,WAAW,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,SAAS,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,YAAY,GAAI,MAAK,UAAU,EAAE,KAAK,YAAY,EAAE,aAAa,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,SAAS,SAAS,EAAE,CAAC,MAAM,SAAS,KAAK,IAAI,EAAE,EAAE,UAAU,aAAa,UAAU,CAAC,MAAM,UAAU,EAAE,OAAO,eAAe,EAAE,UAAU,WAAW,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,kBAAkB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,OAAO,UAAU,CAAC,KAAK,YAAY,KAAK,mBAAmB,EAAE,EAAE,EAAE,UAAU,SAAS,UAAU,CAAC,KAAK,YAAY,KAAK,mBAAmB,EAAE,EAAE,EAAE,UAAU,QAAQ,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,UAAU,kBAAkB,SAAS,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,UAAU,UAAU,UAAU,CAAC,MAAO,MAAK,OAAO,EAAE,EAAE,UAAU,SAAS,UAAU,CAAC,MAAO,MAAK,MAAM,EAAE,OAAO,eAAe,EAAE,UAAU,mBAAmB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,iBAAiB,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,oBAAoB,GAAI,MAAK,kBAAkB,EAAE,KAAK,gBAAgB,IAAI,EAAE,2BAA2B,KAAK,0CAA0C,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,wBAAwB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,oBAAoB,EAAE,iBAAiB,KAAK,oBAAoB,EAAE,kBAAkB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,kBAAkB,UAAU,CAAC,MAAM,CAAC,KAAK,uBAAuB,KAAK,MAAM,CAAC,EAAE,EAAE,UAAU,yBAAyB,SAAS,EAAE,CAAC,MAAM,CAAE,MAAK,uBAAuB,EAAE,YAAY,IAAK,MAAK,qBAAqB,EAAE,WAAW,GAAG,EAAE,eAAe,EAAE,EAAE,UAAU,iBAAiB,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,eAAe,EAAE,EAAE,UAAU,uBAAuB,SAAS,EAAE,CAAC,MAAM,CAAC,KAAK,yBAAyB,CAAC,GAAG,KAAK,kBAAkB,EAAE,EAAE,UAAU,oBAAoB,UAAU,CAAC,MAAO,KAAI,EAAE,EAAE,UAAU,UAAU,UAAU,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,WAAW,OAAO,EAAE,EAAE,OAAO,IAAI,CAAC,GAAI,GAAE,EAAE,GAAG,GAAG,EAAE,UAAU,OAAQ,GAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,IAAI,CAAC,GAAI,GAAE,EAAE,GAAG,EAAE,gBAAgB,MAAO,EAAE,QAAS,GAAE,OAAO,oBAAoB,GAAI,CAAC,CAAC,EAAE,EAAE,UAAU,SAAS,SAAS,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,MAAM,GAAI,GAAE,KAAK,OAAO,YAAY,EAAG,AAAM,IAAE,KAAK,mBAAqB,EAAE,yBAAyB,MAAO,GAAE,aAAa,GAAG,KAAK,OAAO,EAAE,EAAE,SAAS,KAAK,gBAAgB,KAAK,QAAQ,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,KAAK,SAAS,EAAE,EAAE,GAAG,EAAE,UAAU,eAAe,SAAS,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,oBAAoB,SAAS,EAAE,GAAG,EAAE,UAAU,uBAAuB,SAAS,EAAE,EAAE,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,EAAE,UAAU,SAAS,SAAS,EAAE,CAAC,KAAK,QAAQ,KAAK,uBAAuB,EAAE,KAAK,WAAW,uBAAuB,EAAE,EAAE,UAAU,OAAO,KAAK,WAAW,eAAe,CAAC,EAAE,EAAE,UAAU,mBAAmB,SAAS,EAAE,CAAC,KAAK,QAAQ,KAAK,uBAAuB,EAAE,KAAK,WAAW,uBAAuB,EAAE,EAAE,UAAU,iBAAiB,KAAK,WAAW,oBAAoB,CAAC,EAAE,EAAE,UAAU,WAAW,SAAS,EAAE,CAAC,GAAG,KAAK,OAAO,gBAAgB,KAAK,KAAK,OAAO,kBAAkB,EAAE,EAAE,WAAW,EAAE,KAAK,mBAAmB,GAAG,KAAK,kBAAkB,gBAAgB,CAAC,EAAE,KAAK,kBAAkB,CAAC,GAAI,GAAE,KAAK,OAAO,YAAY,KAAK,uBAAuB,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC,CAAC,AAAG,KAAK,mBAAmB,GAAE,KAAK,OAAO,YAAY,KAAK,uBAAuB,EAAE,gBAAgB,EAAE,cAAc,EAAE,GAAK,AAAI,KAAK,gBAAT,GAAwB,GAAE,KAAK,OAAO,YAAY,KAAK,0BAA0B,EAAE,oBAAoB,EAAE,EAAE,iBAAiB,KAAK,aAAa,EAAE,EAAE,EAAE,UAAU,OAAO,UAAU,CAAC,AAAC,KAAK,qBAAqB,KAAK,oBAAoB,gBAAgB,IAAI,EAAE,AAAI,KAAK,gBAAT,GAAyB,KAAK,OAAO,YAAY,iBAAiB,KAAK,yBAAyB,EAAE,KAAK,mBAAmB,KAAK,OAAO,YAAY,cAAc,KAAK,sBAAsB,EAAE,KAAK,mBAAmB,KAAK,OAAO,YAAY,cAAc,KAAK,sBAAsB,CAAC,EAAE,EAAE,UAAU,kBAAkB,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,UAAU,WAAW,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,UAAU,MAAM,SAAS,EAAE,CAAC,MAAO,KAAI,EAAE,EAAE,UAAU,gBAAgB,UAAU,CAAC,GAAI,GAAE,KAAK,GAAG,KAAK,QAAQ,CAAC,GAAI,GAAE,GAAI,OAAM,OAAQ,KAAK,MAAK,QAAQ,CAAC,GAAI,GAAE,KAAK,QAAQ,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,MAAO,EAAC,CAAC,MAAO,MAAK,OAAO,OAAO,OAAQ,SAAS,EAAE,CAAC,MAAO,GAAE,WAAW,CAAC,EAAG,EAAE,EAAE,UAAU,iBAAiB,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,UAAU,GAAG,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,WAAW,EAAE,KAAK,uBAAuB,KAAK,uBAAuB,GAAG,GAAI,GAAE,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,YAAY,CAAC,GAAI,GAAE,EAAE,UAAU,GAAG,EAAE,WAAY,GAAE,UAAU,GAAI,GAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,wBAAwB,CAAC,GAAI,GAAE,GAAG,EAAE,KAAK,GAAG,EAAE,UAAU,CAAC,GAAI,IAAE,GAAI,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,GAAE,kBAAmB,IAAE,iBAAiB,UAAU,IAAI,EAAE,kBAAkB,EAAE,GAAE,EAAE,YAAY,GAAI,IAAE,QAAQ,GAAE,OAAO,uBAAuB,GAAE,OAAO,wBAAwB,EAAE,GAAE,OAAO,sBAAuB,GAAE,GAAG,WAAW,EAAE,EAAE,GAAG,CAAC,GAAI,GAAE,uBAAuB,EAAE,GAAG,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAM,GAAE,UAAW,GAAE,uBAAuB,EAAE,GAAG,EAAE,CAAC,GAAG,WAAW,EAAE,EAAE,EAAE,EAAE,WAAY,GAAE,UAAU,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,sBAAsB,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,MAAO,IAAI,SAAS,SAAS,EAAE,EAAE,CAAC,EAAE,iBAAiB,EAAG,UAAU,CAAC,GAAG,EAAG,EAAG,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,EAAG,EAAG,EAAE,EAAE,UAAU,YAAY,SAAS,EAAE,CAAC,KAAK,WAAW,6BAA8B,GAAE,oBAAoB,OAAO,EAAE,EAAE,EAAE,kBAAkB,EAAE,oBAAoB,KAAK,EAAE,qBAAqB,EAAE,EAAE,EAAE,gBAAgB,EAAE,oBAAoB,KAAK,EAAE,oBAAoB,EAAE,EAAE,EAAE,kBAAkB,EAAE,oBAAoB,KAAK,EAAE,qBAAqB,EAAE,EAAE,EAAE,qBAAqB,EAAE,oBAAoB,KAAK,EAAE,uBAAuB,EAAE,EAAE,EAAE,eAAe,EAAE,oBAAoB,KAAK,EAAE,kBAAkB,EAAE,EAAE,EAAE,kBAAkB,EAAE,oBAAoB,KAAK,EAAE,qBAAqB,EAAE,EAAE,oBAAoB,QAAQ,KAAK,yBAAyB,EAAE,kBAAkB,EAAE,KAAK,WAAW,sBAAsB,EAAE,EAAE,UAAU,yBAAyB,SAAS,EAAE,CAAC,GAAG,CAAC,KAAK,WAAW,4BAA4B,OAAQ,GAAE,EAAE,EAAE,KAAK,WAAW,OAAO,EAAE,EAAE,OAAO,IAAI,CAAC,GAAI,GAAE,EAAE,GAAG,GAAG,EAAE,UAAU,OAAQ,GAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,IAAI,CAAC,GAAI,GAAE,EAAE,GAAG,EAAE,gBAAgB,MAAO,EAAE,kBAAkB,EAAE,EAAE,gBAAgB,CAAE,CAAC,CAAC,EAAE,EAAE,UAAU,uBAAuB,UAAU,CAAC,GAAG,CAAC,KAAK,WAAW,4BAA4B,CAAC,GAAI,GAAE,KAAK,WAAW,wBAAwB,GAAG,EAAE,aAAa,CAAC,EAAE,EAAE,UAAU,4BAA4B,UAAU,CAAC,KAAK,yBAAyB,EAAE,iBAAiB,CAAC,EAAE,EAAE,UAAU,wCAAwC,UAAU,CAAC,KAAK,yBAAyB,EAAE,6BAA6B,CAAC,EAAE,EAAE,UAAU,iCAAiC,UAAU,CAAC,KAAK,yBAAyB,EAAE,qBAAqB,CAAC,EAAE,EAAE,UAAU,gCAAgC,UAAU,CAAC,KAAK,yBAAyB,EAAE,qBAAqB,CAAC,EAAE,EAAE,UAAU,uCAAuC,UAAU,CAAC,KAAK,yBAAyB,EAAE,4BAA4B,CAAC,EAAE,EAAE,UAAU,+BAA+B,UAAU,CAAC,KAAK,yBAAyB,EAAE,oBAAoB,CAAC,EAAE,EAAE,UAAU,mCAAmC,UAAU,CAAC,KAAK,yBAAyB,EAAE,uBAAuB,CAAC,EAAE,EAAE,UAAU,6BAA6B,UAAU,CAAC,KAAK,yBAAyB,EAAE,kBAAkB,CAAC,EAAE,EAAE,UAAU,gCAAgC,UAAU,CAAC,KAAK,yBAAyB,EAAE,kBAAkB,CAAC,EAAE,EAAE,UAAU,wCAAwC,UAAU,CAAC,KAAK,yBAAyB,EAAE,4BAA4B,CAAC,EAAE,EAAE,UAAU,mBAAmB,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,UAAU,QAAQ,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,WAAW,GAAG,EAAE,cAAc,IAAI,EAAE,EAAE,yBAAyB,EAAE,eAAe,IAAI,EAAE,AAAK,IAAL,GAAO,GAAG,KAAK,QAAQ,OAAQ,KAAK,MAAK,QAAS,AAAC,GAAE,KAAK,QAAQ,KAAM,GAAE,SAAS,KAAK,KAAK,yBAAyB,EAAE,CAAC,OAAQ,QAAQ,GAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,IAAI,CAAC,GAAI,GAAE,AAAC,GAAE,EAAE,IAAI,WAAW,MAAM,EAAE,YAAa,GAAE,SAAS,KAAK,KAAK,yBAAyB,EAAE,CAAC,EAAE,CAAC,KAAK,eAAe,UAAU,GAAG,KAAK,SAAU,MAAK,yBAAyB,KAAK,QAAQ,UAAU,KAAK,QAAQ,MAAM,KAAK,oBAAoB,gBAAgB,IAAI,EAAE,KAAK,oBAAoB,QAAQ,KAAK,mBAAmB,KAAK,kBAAkB,QAAQ,KAAK,qBAAqB,KAAK,oBAAoB,QAAQ,KAAK,4BAA4B,KAAK,2BAA2B,OAAO,EAAE,EAAE,UAAU,yBAAyB,SAAS,EAAE,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,GAAI,GAAE,EAAE,SAAS,GAAG,KAAK,wBAAwB,OAAQ,GAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,IAAI,CAAC,GAAI,GAAE,EAAE,GAAG,EAAE,0BAA0B,EAAE,eAAe,EAAE,GAAG,EAAE,iBAAiB,EAAE,gBAAgB,SAAS,KAAM,GAAE,0BAA0B,KAAK,OAAO,CAAC,CAAC,EAAE,EAAE,UAAU,UAAU,UAAU,CAAC,MAAO,GAAE,EAAE,UAAU,IAAI,CAAC,EAAE,EAAE,MAAM,SAAS,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,YAAY,GAAG,AAAwB,EAAE,aAA1B,uBAAsC,EAAE,kBAAmB,GAAE,WAAW,4BAA4B,CAAC,QAAQ,mBAAmB,MAAO,GAAE,EAAE,MAAM,kHAAkH,EAAE,SAAU,GAAE,WAAW,2BAA2B,MAAO,GAAE,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,iBAAiB,EAAE,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,EAAE,2BAA2B,EAAE,cAAc,EAAE,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,EAAE,+BAA+B,EAAE,oBAAoB,EAAE,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,EAAE,kCAAkC,EAAE,gCAAgC,EAAE,EAAE,yCAAyC,EAAE,iBAAiB,EAAE,EAAE,0BAA0B,EAAE,eAAe,EAAE,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,EAAE,6BAA6B,EAAE,cAAc,EAAE,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,EAAE,0BAA0B,EAAE,aAAa,EAAE,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,EAAE,mBAAmB,EAAE,EAAE,oBAAoB,EAAE,EAAE,2BAA2B,EAAE,EAAE,oCAAoC,EAAE,EAAE,+BAA+B,EAAE,EAAE,kBAAkB,SAAS,EAAE,CAAC,MAAO,GAAE,gBAAgB,EAAE,EAAE,8BAA8B,SAAS,EAAE,CAAC,MAAO,GAAE,4BAA4B,EAAE,EAAE,sBAAsB,SAAS,EAAE,CAAC,MAAO,GAAE,qBAAqB,EAAE,EAAE,sBAAsB,SAAS,EAAE,CAAC,MAAO,GAAE,oBAAoB,EAAE,EAAE,mBAAmB,SAAS,EAAE,CAAC,MAAO,GAAE,iBAAiB,EAAE,EAAE,sBAAsB,SAAS,EAAE,CAAC,MAAO,GAAE,oBAAoB,EAAE,EAAE,qBAAqB,SAAS,EAAE,CAAC,MAAO,GAAE,kBAAkB,EAAE,EAAE,wBAAwB,SAAS,EAAE,CAAC,MAAO,GAAE,uBAAuB,EAAE,EAAE,6BAA6B,SAAS,EAAE,CAAC,EAAE,sBAAsB,CAAC,EAAE,EAAE,mBAAmB,CAAC,CAAC,EAAE,EAAE,6BAA6B,SAAS,EAAE,CAAC,EAAE,sBAAsB,CAAC,EAAE,EAAE,mBAAmB,CAAC,CAAC,EAAE,EAAE,oBAAoB,GAAG,EAAE,mBAAmB,SAAS,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,EAAE,oBAAoB,EAAE,EAAE,OAAO,IAAK,GAAG,EAAE,IAAI,CAAC,CAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,KAAK,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,WAAW,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,wBAAwB,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,qBAAqB,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,QAAQ,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,UAAU,SAAS,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,iBAAiB,CAAC,EAAE,EAAE,UAAU,mBAAmB,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,kBAAkB,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,WAAW,CAAC,EAAE,EAAE,UAAU,aAAa,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,oBAAoB,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,oBAAoB,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,oBAAoB,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,kBAAkB,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,gBAAgB,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,sBAAsB,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,EAAE,UAAU,cAAc,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,YAAY,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,UAAU,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,cAAc,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,WAAW,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,mBAAmB,IAAI,EAAE,CAAC,GAAG,EAAE,SAAS,GAAE,EAAE,EAAE,CAAc,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,GAAI,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,CAAC,YAAY,EAAE,MAAO,GAAE,UAAU,cAAc,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,MAAI,GAAE,UAAU,sBAAsB,GAAE,EAAE,QAAQ,qDAAqD,EAAE,GAAS,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,GAAG,EAAE,UAAU,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,IAAE,KAAK,AAAS,IAAT,QAAa,GAAE,IAAI,KAAK,iBAAiB,GAAG,KAAK,aAAa,GAAG,KAAK,cAAc,GAAG,KAAK,uBAAuB,GAAG,KAAK,8BAA8B,GAAG,KAAK,uBAAuB,GAAG,KAAK,sBAAsB,GAAG,KAAK,sBAAsB,GAAG,KAAK,gBAAgB,GAAI,OAAM,KAAK,cAAc,EAAE,KAAK,oBAAoB,GAAG,KAAK,6BAA6B,GAAG,KAAK,OAAO,GAAG,KAAK,cAAc,GAAG,KAAK,wBAAwB,GAAG,KAAK,mBAAmB,GAAI,OAAM,KAAK,wBAAwB,GAAI,GAAE,EAAE,KAAK,4BAA4B,GAAI,GAAE,EAAE,KAAK,gBAAgB,GAAG,KAAK,wBAAwB,GAAG,KAAK,0BAA0B,GAAG,KAAK,YAAY,GAAG,KAAK,mBAAmB,GAAG,KAAK,mBAAmB,GAAI,GAAE,EAAE,KAAK,cAAc,GAAI,GAAE,EAAE,KAAK,YAAY,GAAI,GAAE,EAAE,KAAK,WAAW,EAAE,EAAE,UAAU,KAAK,eAAe,EAAE,EAAE,cAAc,KAAK,uBAAuB,GAAI,OAAM,KAAK,eAAe,EAAE,KAAK,uBAAuB,GAAG,KAAK,oBAAoB,GAAG,KAAK,iBAAiB,GAAG,KAAK,2BAA2B,GAAG,KAAK,yBAAyB,GAAG,KAAK,oBAAoB,GAAI,OAAM,KAAK,oBAAoB,KAAK,KAAK,kBAAkB,KAAK,KAAK,uBAAuB,GAAI,OAAM,KAAK,0BAA0B,GAAI,OAAM,KAAK,wBAAwB,GAAI,OAAM,KAAK,qBAAqB,GAAG,KAAK,0BAA0B,GAAG,KAAK,sBAAsB,GAAI,OAAM,KAAK,yBAAyB,EAAE,KAAK,gBAAgB,GAAI,OAAM,KAAK,qBAAqB,KAAK,KAAK,gBAAgB,CAAC,SAAS,EAAE,EAAE,KAAK,mBAAmB,GAAG,KAAK,8BAA8B,GAAI,GAAE,EAAE,KAAK,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,mBAAmB,KAAK,KAAK,wBAAwB,GAAG,KAAK,uBAAuB,SAAS,EAAE,EAAE,GAAE,GAAE,GAAE,GAAE,CAAC,GAAI,IAAE,GAAE,IAAI,GAAE,GAAE,qBAAqB,MAAO,IAAE,iBAAiB,GAAE,aAAa,EAAC,EAAE,GAAE,GAAG,GAAE,+BAA+B,GAAE,+BAA+B,GAAE,aAAa,GAAE,GAAE,EAAE,CAAC,EAAE,GAAE,oBAAoB,GAAE,aAAa,GAAE,EAAE,CAAC,EAAE,GAAE,wBAAwB,GAAE,YAAY,GAAE,GAAE,aAAa,EAAC,EAAE,GAAE,iBAAiB,GAAE,aAAa,IAAI,EAAE,EAAC,EAAE,KAAK,eAAe,GAAG,GAAI,IAAE,KAAK,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,mBAAmB,CAAC,CAAC,EAAE,sBAAsB,EAAE,EAAE,WAAW,CAAC,GAAG,GAAE,EAAE,KAAK,iBAAiB,GAAE,AAAM,GAAN,MAAU,GAAE,UAAU,GAAG,AAAS,EAAE,wBAAX,QAAmC,GAAE,sBAAsB,IAAI,AAAS,EAAE,mBAAX,QAA8B,GAAE,iBAAiB,GAAG,AAAS,EAAE,WAAX,QAAsB,GAAE,SAAS,EAAE,IAAI,AAAS,EAAE,wBAAX,QAAmC,GAAE,sBAAsB,IAAI,AAAS,EAAE,cAAX,QAAyB,GAAE,YAAY,IAAI,AAAS,EAAE,UAAX,QAAqB,GAAE,QAAQ,IAAI,AAAK,EAAE,qBAAP,IAA4B,MAAK,mBAAmB,IAAI,AAAS,EAAE,eAAX,QAA0B,GAAE,aAAa,IAAI,KAAK,wBAAwB,CAAC,CAAC,EAAE,uBAAuB,WAAW,UAAU,UAAU,CAAC,GAAI,IAAE,UAAU,UAAU,KAAK,gBAAgB,SAAS,AAAK,GAAE,QAAQ,QAAQ,IAAvB,GAAyB,OAAQ,IAAE,EAAE,GAAE,EAAE,cAAc,GAAE,GAAE,OAAO,KAAI,CAAC,GAAI,IAAE,GAAE,IAAG,EAAE,GAAE,IAAI,EAAE,GAAE,QAAQ,GAAG,GAAI,QAAO,CAAC,EAAE,KAAK,EAAC,EAAE,CAAC,GAAG,GAAE,SAAS,GAAE,kBAAkB,CAAC,GAAI,GAAE,GAAE,QAAQ,EAAE,GAAE,kBAAkB,EAAE,GAAI,QAAO,CAAC,EAAE,KAAK,EAAC,EAAE,GAAG,GAAG,EAAE,OAAO,GAAK,SAAS,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,OAAQ,IAAE,EAAE,GAAE,EAAE,GAAE,GAAE,OAAO,KAAK,OAAO,GAAE,SAAQ,gBAAgB,KAAK,sBAAsB,GAAG,UAAU,MAAM,KAAK,0BAA0B,GAAI,CAAC,CAAC,CAAC,GAAG,KAAK,yBAA0B,MAAK,eAAe,SAAS,EAAE,CAAC,EAAE,iBAAiB,GAAE,gBAAgB,GAAG,EAAE,EAAE,KAAK,qBAAqB,EAAE,GAAE,wBAAwB,gBAAgB,EAAC,CAAC,EAAE,KAAK,mBAAmB,UAAU,CAAC,WAAY,UAAU,CAAC,GAAE,iBAAiB,GAAE,kBAAkB,GAAE,2BAA2B,GAAE,kBAAkB,GAAE,WAAW,EAAE,EAAE,EAAE,EAAE,KAAK,sCAAsC,EAAE,GAAE,4BAA4B,gBAAgB,EAAC,EAAE,GAAE,gBAAgB,EAAE,EAAG,CAAC,CAAC,EAAE,GAAE,iBAAiB,mBAAmB,KAAK,eAAe,EAAE,EAAE,GAAE,iBAAiB,uBAAuB,KAAK,mBAAmB,EAAE,EAAE,EAAE,gBAAgB,oBAAoB,CAAC,EAAE,qBAAqB,GAAG,CAAC,KAAK,IAAI,GAAE,WAAW,SAAS,CAAC,GAAG,GAAE,WAAW,sBAAsB,CAAC,EAAE,KAAK,KAAM,MAAK,cAAc,EAAE,KAAK,IAAI,aAAc,MAAK,cAAc,GAAG,MAAC,EAAU,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAE,KAAM,IAAI,OAAM,2CAA2C,EAAE,GAAG,CAAC,KAAK,IAAI,GAAE,WAAW,QAAQ,CAAC,GAAG,GAAE,WAAW,qBAAqB,CAAC,CAAC,MAAC,CAAS,KAAM,IAAI,OAAM,qBAAqB,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,KAAM,IAAI,OAAM,qBAAqB,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,KAAK,iBAAiB,KAAK,IAAI,OAAO,KAAK,IAAI,gCAAiC,MAAK,cAAc,GAAG,GAAI,GAAE,KAAK,IAAI,uBAAuB,GAAI,GAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,IAAI,YAAY,KAAK,IAAI,mCAAmC,KAAK,IAAI,IAAI,EAAE,AAAS,EAAE,yBAAX,QAAoC,MAAK,6BAA6B,EAAE,wBAAwB,GAAI,GAAE,EAAE,EAAE,uBAAuB,OAAO,kBAAkB,EAAE,EAAE,EAAE,kBAAkB,EAAE,KAAK,sBAAsB,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,SAAS,KAAK,iBAAiB,CAAC,CAAC,EAAE,QAAQ,KAAK,iBAAiB,OAAQ,GAAE,EAAE,EAAE,KAAK,MAAM,iBAAiB,IAAI,KAAK,uBAAuB,GAAG,GAAI,GAAE,KAAK,aAAa,EAAE,KAAK,iBAAiB,GAAI,GAAE,EAAE,KAAK,iBAAiB,GAAI,GAAE,KAAK,OAAO,QAAQ,KAAK,UAAU,SAAS,GAAG,UAAU,KAAK,UAAU,SAAS,EAAE,KAAK,cAAc,iCAAiC,KAAK,UAAU,SAAS,EAAE,KAAK,iBAAiB,EAAE,QAAQ,IAAI,eAAe,EAAE,QAAQ,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAO,QAAO,eAAe,EAAE,aAAa,CAAC,IAAI,UAAU,CAAC,MAAM,iBAAiB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,OAAO,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,cAAc,CAAC,IAAI,UAAU,CAAC,GAAI,GAAE,QAAQ,KAAK,aAAa,MAAO,MAAK,MAAM,uBAAwB,IAAG,kCAAkC,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,oBAAoB,CAAC,IAAI,UAAU,CAAC,MAAO,GAAE,EAAE,iBAAiB,EAAE,IAAI,SAAS,EAAE,CAAC,EAAE,EAAE,kBAAkB,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,yBAAyB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,aAAa,GAAG,CAAC,KAAK,qBAAqB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,gCAAgC,CAAC,IAAI,UAAU,CAAC,MAAM,CAAE,EAAC,KAAK,MAAM,8BAA8B,CAAC,KAAK,6BAA6B,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,kBAAkB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,cAAc,GAAG,KAAK,gBAAgB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,yBAAyB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,uBAAuB,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,wBAAwB,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,oCAAoC,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,8BAA8B,CAAC,IAAI,SAAS,EAAE,CAAC,KAAK,6BAA6B,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,kBAAkB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,eAAe,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,eAAe,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,eAAgB,MAAK,cAAc,KAAK,iBAAiB,GAAI,YAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,mBAAmB,GAAG,GAAG,EAAE,EAAE,4BAA4B,GAAG,KAAK,aAAa,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,iBAAiB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,iBAAkB,MAAK,gBAAgB,KAAK,mBAAmB,GAAI,YAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,mBAAmB,GAAG,GAAG,EAAE,EAAE,4BAA4B,GAAG,KAAK,eAAe,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,sBAAsB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,sBAAuB,MAAK,qBAAqB,KAAK,wBAAwB,GAAI,YAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,mBAAmB,GAAG,GAAG,EAAE,EAAE,4BAA4B,GAAG,KAAK,oBAAoB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,mBAAmB,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,kBAAkB,CAAC,GAAI,GAAE,GAAI,YAAW,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,kBAAkB,KAAK,qBAAqB,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE,yBAAyB,GAAG,GAAG,EAAE,EAAE,4BAA4B,CAAC,CAAC,MAAO,MAAK,iBAAiB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,yBAAyB,UAAU,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,uBAAuB,QAAQ,EAAE,EAAE,OAAO,IAAK,EAAE,GAAG,UAAW,EAAE,EAAE,UAAU,gBAAgB,UAAU,CAAC,OAAQ,KAAK,MAAK,iBAAkB,KAAK,iBAAiB,GAAG,iBAAiB,EAAE,EAAE,YAAY,EAAE,EAAE,UAAU,mBAAmB,UAAU,CAAC,OAAQ,KAAK,MAAK,iBAAkB,GAAG,CAAC,KAAK,iBAAiB,GAAG,UAAU,MAAM,GAAG,MAAM,EAAE,EAAE,EAAE,UAAU,gBAAgB,UAAU,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,gBAAgB,EAAE,EAAE,OAAO,IAAK,EAAE,GAAG,UAAW,EAAE,EAAE,UAAU,eAAe,UAAU,CAAC,KAAK,MAAM,CAAC,sBAAsB,KAAK,IAAI,aAAa,KAAK,IAAI,uBAAuB,EAAE,8BAA8B,KAAK,IAAI,aAAa,KAAK,IAAI,gCAAgC,EAAE,2BAA2B,KAAK,IAAI,aAAa,KAAK,IAAI,8BAA8B,EAAE,eAAe,KAAK,IAAI,aAAa,KAAK,IAAI,gBAAgB,EAAE,WAAW,KAAK,cAAc,EAAE,KAAK,IAAI,aAAa,KAAK,IAAI,WAAW,EAAE,EAAE,sBAAsB,KAAK,IAAI,aAAa,KAAK,IAAI,yBAAyB,EAAE,qBAAqB,KAAK,IAAI,aAAa,KAAK,IAAI,qBAAqB,EAAE,iBAAiB,KAAK,IAAI,aAAa,KAAK,IAAI,kBAAkB,EAAE,kBAAkB,KAAK,IAAI,aAAa,KAAK,IAAI,mBAAmB,EAAE,0BAA0B,KAAK,IAAI,aAAa,KAAK,IAAI,4BAA4B,EAAE,wBAAwB,KAAK,IAAI,aAAa,KAAK,IAAI,0BAA0B,EAAE,sBAAsB,KAAK,IAAI,aAAa,6BAA6B,EAAE,oBAAoB,KAAK,cAAc,GAAG,AAAO,KAAK,IAAI,aAAa,0BAA0B,IAAvD,KAAyD,cAAc,EAAE,KAAK,KAAK,IAAI,aAAa,+BAA+B,GAAG,KAAK,IAAI,aAAa,sCAAsC,EAAE,KAAK,KAAK,IAAI,aAAa,8BAA8B,GAAG,KAAK,IAAI,aAAa,qCAAqC,EAAE,KAAK,KAAK,IAAI,aAAa,+BAA+B,GAAG,KAAK,IAAI,aAAa,sCAAsC,EAAE,MAAM,KAAK,IAAI,aAAa,gCAAgC,GAAG,KAAK,IAAI,aAAa,uCAAuC,EAAE,KAAK,KAAK,IAAI,aAAa,+BAA+B,GAAG,KAAK,IAAI,aAAa,sCAAsC,EAAE,KAAK,KAAK,IAAI,aAAa,8BAA8B,GAAG,KAAK,IAAI,aAAa,qCAAqC,GAAG,KAAK,IAAI,aAAa,gCAAgC,EAAE,kCAAkC,KAAK,IAAI,aAAa,gCAAgC,GAAG,KAAK,IAAI,aAAa,uCAAuC,GAAG,KAAK,IAAI,aAAa,oCAAoC,EAAE,YAAY,KAAK,cAAc,GAAG,AAAO,KAAK,IAAI,aAAa,wBAAwB,IAArD,KAAuD,uBAAuB,KAAK,cAAc,GAAG,AAAO,KAAK,IAAI,aAAa,gBAAgB,IAA7C,KAA+C,6BAA6B,GAAG,WAAW,KAAK,IAAI,aAAa,iCAAiC,GAAG,KAAK,IAAI,aAAa,0BAA0B,EAAE,6BAA6B,GAAG,qBAAqB,GAAG,eAAe,EAAE,iBAAiB,KAAK,cAAc,GAAG,KAAK,IAAI,aAAa,wBAAwB,EAAE,aAAa,CAAC,CAAE,MAAK,cAAc,GAAG,KAAK,IAAI,aAAa,mBAAmB,GAAG,iBAAiB,CAAC,CAAE,MAAK,cAAc,GAAG,KAAK,IAAI,aAAa,wBAAwB,GAAG,uBAAuB,GAAG,4BAA4B,GAAG,mBAAmB,GAAG,gCAAgC,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,WAAW,CAAC,CAAE,MAAK,cAAc,GAAG,KAAK,IAAI,aAAa,wBAAwB,GAAG,YAAY,GAAG,UAAU,KAAK,IAAI,aAAa,gBAAgB,EAAE,gBAAgB,KAAK,IAAI,aAAa,kBAAkB,EAAE,sBAAsB,EAAE,EAAE,KAAK,WAAW,KAAK,IAAI,aAAa,KAAK,IAAI,OAAO,EAAE,GAAI,GAAE,KAAK,IAAI,aAAa,2BAA2B,EAAE,GAAG,AAAM,GAAN,MAAU,MAAK,YAAY,KAAK,IAAI,aAAa,EAAE,uBAAuB,EAAE,KAAK,UAAU,KAAK,IAAI,aAAa,EAAE,qBAAqB,GAAG,KAAK,WAAY,MAAK,UAAU,kBAAkB,KAAK,aAAc,MAAK,YAAY,oBAAoB,AAAQ,KAAK,IAAI,iBAAjB,OAAkC,MAAK,IAAI,eAAe,OAAO,AAAQ,KAAK,IAAI,UAAjB,OAA2B,MAAK,IAAI,QAAQ,OAAO,AAAQ,KAAK,IAAI,UAAjB,OAA2B,MAAK,IAAI,QAAQ,OAAO,AAAQ,KAAK,IAAI,mBAAjB,OAAoC,MAAK,IAAI,iBAAiB,OAAO,KAAK,MAAM,YAAa,CAAI,KAAK,gBAAT,GAAyB,MAAK,IAAI,SAAS,KAAK,MAAM,WAAW,YAAY,KAAK,KAAK,MAAM,UAAU,GAAG,KAAK,MAAM,6BAA6B,KAAK,IAAI,SAAS,KAAK,MAAM,WAAW,cAAc,KAAK,MAAM,WAAW,sBAAsB,EAAE,GAAG,KAAK,MAAM,cAAc,KAAK,MAAM,kCAAkC,KAAK,IAAI,aAAa,KAAK,MAAM,kCAAkC,8BAA8B,EAAE,EAAE,KAAK,MAAM,4BAA4B,CAAE,EAAC,KAAK,MAAM,cAAc,CAAC,KAAK,IAAI,aAAa,0BAA0B,GAAG,KAAK,MAAM,mBAAmB,CAAE,EAAC,KAAK,MAAM,cAAc,CAAC,KAAK,gCAAgC,KAAK,MAAM,gCAAgC,CAAC,CAAE,MAAK,cAAc,GAAG,KAAK,MAAM,kBAAkB,KAAK,IAAI,aAAa,+BAA+B,GAAG,KAAK,cAAc,GAAG,AAAO,KAAK,IAAI,iBAAhB,MAAiC,MAAK,IAAI,eAAe,MAAM,KAAK,MAAM,uBAAuB,KAAK,MAAM,kBAAkB,KAAK,mCAAmC,KAAK,cAAc,EAAE,KAAK,MAAM,qBAAqB,GAAG,KAAK,MAAM,eAAe,KAAK,IAAI,aAAa,KAAK,IAAI,WAAW,MAAM,CAAC,GAAI,GAAE,KAAK,IAAI,aAAa,oBAAoB,EAAE,GAAG,AAAO,IAAP,KAAS,CAAC,KAAK,MAAM,qBAAqB,GAAG,KAAK,IAAI,YAAY,EAAE,iBAAiB,KAAK,CAAC,EAAE,KAAK,IAAI,iBAAiB,KAAK,IAAI,YAAY,OAAQ,GAAE,EAAE,EAAE,GAAG,IAAI,KAAK,IAAI,mBAAmB,EAAE,UAAU,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC,GAAG,KAAK,cAAc,EAAE,KAAK,MAAM,sBAAsB,OAAO,CAAC,GAAI,GAAE,KAAK,IAAI,aAAa,qBAAqB,EAAE,AAAM,GAAN,MAAU,MAAK,MAAM,sBAAsB,GAAG,KAAK,IAAI,kBAAkB,EAAE,wBAAwB,CAAC,GAAG,KAAK,0BAA0B,KAAK,MAAM,kBAAkB,WAAW,KAAK,cAAc,EAAE,KAAK,MAAM,kBAAkB,OAAO,CAAC,GAAI,IAAE,KAAK,IAAI,aAAa,yBAAyB,EAAE,AAAM,IAAN,MAAU,MAAK,MAAM,kBAAkB,GAAG,KAAK,IAAI,kBAAkB,GAAE,qBAAqB,KAAK,EAAC,EAAE,KAAK,IAAI,gBAAgB,GAAE,mBAAmB,KAAK,EAAC,EAAE,KAAK,IAAI,kBAAkB,GAAE,qBAAqB,KAAK,EAAC,EAAE,CAAC,GAAG,KAAK,cAAc,EAAE,KAAK,MAAM,gBAAgB,OAAO,CAAC,GAAI,IAAE,KAAK,IAAI,aAAa,wBAAwB,EAAE,AAAM,IAAN,KAAS,MAAK,MAAM,gBAAgB,GAAG,KAAK,IAAI,oBAAoB,GAAE,yBAAyB,KAAK,EAAC,EAAE,KAAK,IAAI,sBAAsB,GAAE,2BAA2B,KAAK,EAAC,EAAE,KAAK,IAAI,oBAAoB,GAAE,yBAAyB,KAAK,EAAC,GAAG,KAAK,MAAM,gBAAgB,EAAE,CAAC,GAAG,KAAK,IAAI,yBAAyB,CAAC,GAAI,IAAE,KAAK,IAAI,yBAAyB,KAAK,IAAI,cAAc,KAAK,IAAI,UAAU,EAAE,GAAE,KAAK,IAAI,yBAAyB,KAAK,IAAI,gBAAgB,KAAK,IAAI,UAAU,EAAE,IAAG,IAAI,MAAK,MAAM,6BAA6B,AAAI,GAAE,YAAN,GAAiB,AAAI,GAAE,YAAN,EAAgB,CAAC,GAAG,KAAK,cAAc,EAAE,KAAK,MAAM,YAAY,OAAO,CAAC,GAAI,IAAE,KAAK,IAAI,aAAa,kBAAkB,EAAE,AAAM,IAAN,MAAU,MAAK,MAAM,YAAY,GAAG,KAAK,IAAI,IAAI,GAAE,QAAQ,KAAK,IAAI,IAAI,GAAE,QAAQ,CAAC,KAAK,mBAAmB,UAAU,GAAG,KAAK,mBAAmB,UAAU,KAAK,IAAI,OAAO,KAAK,mBAAmB,UAAU,GAAG,KAAK,yBAAyB,KAAK,MAAM,8BAA8B,OAAQ,IAAE,EAAE,GAAE,KAAK,yBAAyB,KAAI,KAAK,sBAAsB,KAAK,EAAC,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,eAAe,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,aAAa,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,aAAa,UAAU,CAAC,MAAM,YAAY,EAAE,OAAO,eAAe,EAAE,UAAU,kBAAkB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,gBAAgB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,sBAAsB,UAAU,CAAC,GAAG,CAAC,KAAK,eAAe,CAAC,KAAK,eAAe,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,GAAI,GAAE,KAAK,eAAe,WAAW,IAAI,EAAE,GAAI,MAAK,gBAAgB,EAAE,CAAC,EAAE,EAAE,UAAU,kBAAkB,UAAU,CAAC,OAAQ,KAAK,MAAK,oBAAoB,KAAK,oBAAoB,eAAe,CAAC,GAAI,MAAK,oBAAoB,GAAG,MAAM,KAAK,uBAAuB,EAAE,EAAE,EAAE,UAAU,UAAU,UAAU,CAAC,MAAM,CAAC,OAAO,KAAK,UAAU,SAAS,KAAK,YAAY,QAAQ,KAAK,UAAU,CAAC,EAAE,EAAE,UAAU,wBAAwB,SAAS,EAAE,CAAC,KAAK,sBAAsB,EAAE,KAAK,QAAQ,EAAE,EAAE,UAAU,wBAAwB,UAAU,CAAC,MAAO,MAAK,qBAAqB,EAAE,EAAE,UAAU,uBAAuB,UAAU,CAAC,MAAO,MAAK,sBAAsB,EAAE,EAAE,UAAU,QAAQ,UAAU,CAAC,MAAO,MAAK,KAAK,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,GAAI,GAAE,KAAK,mBAAmB,QAAQ,CAAC,EAAE,GAAG,GAAG,KAAK,mBAAmB,OAAO,EAAE,CAAC,CAAC,KAAM,MAAK,mBAAmB,EAAE,EAAE,EAAE,UAAU,YAAY,UAAU,CAAC,GAAG,CAAC,KAAK,gBAAgB,CAAC,GAAI,GAAE,GAAG,GAAG,CAAC,KAAK,wBAAwB,KAAK,qBAAsB,GAAE,IAAI,EAAE,CAAC,KAAK,aAAa,OAAQ,GAAE,EAAE,EAAE,KAAK,mBAAmB,OAAO,IAAK,GAAG,KAAK,mBAAmB,MAAM,KAAK,UAAU,CAAC,CAAC,KAAK,mBAAmB,OAAO,EAAE,KAAK,cAAc,KAAK,eAAe,KAAK,qBAAqB,KAAK,eAAe,EAAE,KAAK,wBAAwB,EAAE,EAAE,EAAE,UAAU,mBAAmB,UAAU,CAAC,MAAO,MAAK,gBAAgB,EAAE,EAAE,UAAU,cAAc,UAAU,CAAC,MAAO,GAAE,EAAE,sBAAsB,KAAK,kBAAkB,KAAK,iBAAiB,eAAe,KAAK,iBAAiB,cAAc,YAAY,KAAK,iBAAiB,cAAc,YAAY,OAAO,IAAI,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,CAAC,MAAO,AAAS,KAAT,QAAa,GAAE,IAAI,CAAC,GAAG,KAAK,qBAAqB,KAAK,qBAAqB,MAAM,KAAK,6BAA6B,KAAK,6BAA6B,iBAAiB,KAAK,IAAI,kBAAkB,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,CAAC,MAAO,AAAS,KAAT,QAAa,GAAE,IAAI,CAAC,GAAG,KAAK,qBAAqB,KAAK,qBAAqB,OAAO,KAAK,6BAA6B,KAAK,6BAA6B,kBAAkB,KAAK,IAAI,mBAAmB,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,EAAE,CAAC,MAAO,GAAE,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,CAAC,AAAK,KAAK,mBAAmB,QAAQ,CAAC,IAAtC,IAA0C,MAAK,mBAAmB,KAAK,CAAC,EAAE,KAAK,yBAA0B,MAAK,wBAAwB,GAAG,KAAK,qBAAqB,KAAK,YAAY,KAAK,IAAI,EAAE,KAAK,cAAc,KAAK,eAAe,KAAK,qBAAqB,KAAK,eAAe,GAAG,EAAE,EAAE,UAAU,MAAM,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,KAAK,cAAc,GAAI,IAAE,EAAE,GAAG,GAAI,MAAK,IAAI,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,AAAS,EAAE,IAAX,OAAa,EAAE,EAAE,CAAC,EAAE,IAAG,KAAK,IAAI,kBAAkB,GAAI,MAAK,sBAAuB,MAAK,mBAAmB,UAAU,KAAK,IAAI,QAAQ,KAAK,IAAI,WAAW,CAAC,GAAG,KAAK,IAAI,WAAW,CAAC,EAAE,IAAG,KAAK,IAAI,kBAAkB,GAAI,MAAK,IAAI,aAAa,CAAC,EAAE,IAAG,KAAK,IAAI,oBAAoB,KAAK,IAAI,MAAM,EAAC,CAAC,EAAE,EAAE,UAAU,UAAU,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,gBAAgB,GAAG,IAAI,KAAK,gBAAgB,GAAG,IAAI,KAAK,gBAAgB,GAAG,IAAI,KAAK,gBAAgB,GAAI,MAAK,gBAAgB,EAAE,EAAE,KAAK,gBAAgB,EAAE,EAAE,KAAK,gBAAgB,EAAE,EAAE,KAAK,gBAAgB,EAAE,EAAE,KAAK,IAAI,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,YAAY,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,GAAG,KAAK,iBAAiB,GAAE,GAAG,KAAK,kBAAkB,GAAE,EAAE,GAAG,EAAE,GAAE,EAAE,GAAG,EAAE,KAAK,gBAAgB,EAAE,KAAK,UAAU,GAAE,EAAE,GAAE,GAAE,EAAE,EAAE,MAAM,GAAE,EAAE,MAAM,CAAC,EAAE,EAAE,UAAU,WAAW,UAAU,GAAG,EAAE,UAAU,SAAS,UAAU,CAAC,KAAK,QAAQ,KAAK,kBAAkB,EAAE,EAAE,UAAU,OAAO,UAAU,CAAC,GAAI,GAAE,EAAE,EAAE,EAAE,sBAAuB,GAAE,KAAK,iBAAiB,KAAK,iBAAiB,aAAa,KAAK,iBAAiB,MAAM,OAAO,WAAW,EAAE,KAAK,iBAAiB,KAAK,iBAAiB,cAAc,KAAK,iBAAiB,OAAO,OAAO,aAAc,GAAE,KAAK,iBAAiB,KAAK,iBAAiB,MAAM,IAAI,EAAE,KAAK,iBAAiB,KAAK,iBAAiB,OAAO,KAAK,KAAK,QAAQ,EAAE,KAAK,sBAAsB,EAAE,KAAK,qBAAqB,CAAC,EAAE,EAAE,UAAU,QAAQ,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,kBAAmB,IAAG,EAAE,GAAG,EAAG,MAAK,iBAAiB,QAAQ,GAAG,KAAK,iBAAiB,SAAS,IAAK,MAAK,iBAAiB,MAAM,EAAE,KAAK,iBAAiB,OAAO,EAAE,IAAI,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,EAAE,EAAE,EAAE,GAAE,GAAE,GAAE,CAAC,AAAS,IAAT,QAAa,GAAE,GAAG,AAAS,KAAT,QAAa,IAAE,GAAG,AAAS,KAAT,QAAa,IAAE,GAAG,KAAK,sBAAsB,KAAK,kBAAkB,KAAK,oBAAoB,EAAE,KAAK,qBAAqB,EAAE,KAAK,wBAAwB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,EAAE,GAAI,IAAE,KAAK,IAAI,EAAE,UAAU,GAAE,wBAAwB,GAAE,YAAY,GAAE,kBAAkB,EAAE,cAAc,GAAE,EAAC,EAAE,EAAE,QAAQ,GAAE,qBAAqB,GAAE,YAAY,GAAE,kBAAkB,GAAE,4BAA4B,EAAE,EAAE,cAAc,EAAC,EAAE,GAAI,IAAE,EAAE,qBAAqB,GAAG,GAAE,CAAC,GAAI,IAAE,GAAE,uBAAuB,GAAE,yBAAyB,GAAE,iBAAiB,EAAE,UAAU,GAAE,wBAAwB,GAAE,YAAY,GAAE,GAAE,cAAc,GAAE,EAAC,EAAE,EAAE,OAAO,GAAE,qBAAqB,GAAE,YAAY,GAAE,GAAE,4BAA4B,EAAE,GAAE,cAAc,EAAC,EAAE,GAAE,qBAAqB,GAAE,YAAY,GAAE,GAAE,WAAW,GAAE,cAAc,EAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC,GAAE,KAAK,YAAY,KAAK,gBAAgB,EAAE,CAAC,EAAG,IAAI,GAAE,EAAE,MAAM,IAAI,IAAG,KAAK,IAAI,EAAE,EAAC,IAAI,GAAI,GAAE,EAAE,OAAO,IAAI,IAAG,KAAK,IAAI,EAAE,EAAC,IAAI,KAAK,UAAU,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,YAAY,EAAE,EAAE,UAAU,wBAAwB,SAAS,EAAE,CAAC,KAAK,sBAAsB,GAAI,MAAK,IAAI,gBAAgB,KAAK,IAAI,YAAY,CAAC,EAAE,KAAK,oBAAoB,EAAE,EAAE,EAAE,UAAU,kBAAkB,SAAS,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,KAAK,qBAAqB,KAAK,GAAI,GAAE,KAAK,IAAI,GAAG,EAAE,iBAAiB,CAAC,GAAG,EAAE,cAAc,MAAO,KAAK,MAAK,sCAAsC,EAAE,cAAc,EAAE,CAAC,EAAE,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,iBAAiB,GAAG,EAAE,QAAS,MAAK,qBAAqB,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE,UAAU,EAAE,KAAK,qBAAqB,EAAE,WAAW,IAAI,GAAG,GAAI,GAAE,kBAAkB,KAAK,wBAAwB,EAAE,YAAY,EAAE,KAAK,KAAK,wBAAwB,IAAI,CAAC,EAAE,EAAE,UAAU,iBAAiB,UAAU,CAAC,KAAK,IAAI,OAAO,EAAE,EAAE,UAAU,0BAA0B,UAAU,CAAC,KAAK,qBAAqB,KAAK,kBAAkB,KAAK,oBAAoB,EAAE,KAAK,wBAAwB,IAAI,EAAE,KAAK,iBAAiB,KAAK,YAAY,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,EAAE,UAAU,0BAA0B,UAAU,CAAC,KAAK,gBAAgB,IAAI,EAAE,KAAK,qBAAqB,IAAI,EAAE,EAAE,UAAU,mBAAmB,SAAS,EAAE,CAAC,MAAO,MAAK,oBAAoB,EAAE,KAAK,IAAI,WAAW,CAAC,EAAE,EAAE,UAAU,oBAAoB,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,IAAI,eAAe,GAAG,CAAC,EAAE,KAAM,IAAI,OAAM,gCAAgC,EAAE,GAAI,GAAE,GAAI,GAAE,EAAE,CAAC,EAAE,MAAO,MAAK,gBAAgB,CAAC,EAAE,YAAa,OAAM,KAAK,IAAI,WAAW,KAAK,IAAI,aAAa,GAAI,cAAa,CAAC,EAAE,KAAK,IAAI,WAAW,EAAE,KAAK,IAAI,WAAW,KAAK,IAAI,aAAa,EAAE,KAAK,IAAI,WAAW,EAAE,KAAK,4BAA4B,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,UAAU,0BAA0B,SAAS,EAAE,CAAC,MAAO,MAAK,oBAAoB,EAAE,KAAK,IAAI,YAAY,CAAC,EAAE,EAAE,UAAU,yBAAyB,UAAU,CAAC,KAAK,gBAAgB,IAAI,EAAE,KAAK,mBAAmB,IAAI,EAAE,EAAE,UAAU,kBAAkB,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,IAAI,eAAe,EAAE,GAAI,GAAE,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,KAAM,IAAI,OAAM,+BAA+B,EAAE,KAAK,gBAAgB,CAAC,EAAE,GAAI,IAAE,KAAK,oBAAoB,CAAC,EAAE,MAAO,MAAK,IAAI,WAAW,KAAK,IAAI,qBAAqB,GAAE,EAAE,KAAK,IAAI,aAAa,KAAK,IAAI,WAAW,EAAE,KAAK,2BAA2B,EAAE,WAAW,EAAE,EAAE,SAAS,AAAI,GAAE,oBAAN,EAAwB,CAAC,EAAE,EAAE,UAAU,oBAAoB,SAAS,EAAE,CAAC,GAAG,YAAa,aAAY,MAAO,GAAE,GAAG,KAAK,MAAM,YAAY,CAAC,GAAG,YAAa,aAAY,MAAO,GAAE,OAAQ,GAAE,EAAE,EAAE,EAAE,OAAO,IAAI,GAAG,EAAE,IAAI,MAAM,MAAO,IAAI,aAAY,CAAC,EAAE,MAAO,IAAI,aAAY,CAAC,CAAC,CAAC,MAAO,IAAI,aAAY,CAAC,CAAC,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,CAAC,KAAK,sBAAsB,KAAK,2BAA2B,KAAK,WAAW,EAAE,KAAK,IAAI,YAAY,CAAC,EAAE,EAAE,UAAU,iBAAiB,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,QAAQ,GAAE,KAAK,IAAI,qBAAqB,EAAE,CAAC,EAAE,KAAK,IAAI,oBAAoB,EAAE,GAAE,CAAC,CAAC,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,CAAC,KAAK,sBAAsB,KAAK,2BAA2B,KAAK,WAAW,EAAE,KAAK,IAAI,oBAAoB,CAAC,EAAE,EAAE,UAAU,WAAW,SAAS,EAAE,EAAE,CAAC,AAAC,MAAK,sBAAsB,KAAK,oBAAoB,KAAK,IAAK,MAAK,IAAI,WAAW,EAAE,EAAE,EAAE,mBAAmB,IAAI,EAAE,KAAK,oBAAoB,GAAG,EAAE,EAAE,EAAE,UAAU,kBAAkB,SAAS,EAAE,CAAC,KAAK,IAAI,cAAc,KAAK,IAAI,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,qBAAqB,SAAS,EAAE,EAAE,EAAE,EAAE,GAAE,GAAE,GAAE,CAAC,GAAI,IAAE,KAAK,uBAAuB,GAAG,GAAG,GAAE,CAAC,GAAI,IAAE,GAAG,GAAE,OAAQ,IAAE,SAAS,GAAI,IAAE,OAAO,EAAE,GAAE,IAAI,GAAE,OAAO,GAAI,IAAE,KAAK,EAAE,GAAE,IAAI,GAAE,OAAO,GAAI,IAAE,KAAK,EAAE,GAAE,IAAI,GAAE,aAAa,IAAI,IAAE,WAAW,GAAE,GAAE,IAAI,GAAE,SAAS,IAAI,IAAE,OAAO,GAAE,GAAE,IAAI,GAAE,SAAS,IAAI,IAAE,OAAO,GAAE,GAAE,KAAM,IAAE,GAAG,GAAE,OAAO,GAAG,GAAE,MAAM,EAAE,GAAE,KAAK,EAAE,GAAE,KAAK,EAAE,GAAE,WAAW,GAAE,GAAE,OAAO,GAAE,GAAE,OAAO,GAAE,GAAE,OAAO,GAAI,KAAG,KAAK,uBAAwB,MAAK,gBAAgB,CAAC,EAAE,KAAK,IAAI,oBAAoB,EAAE,EAAE,EAAE,GAAE,GAAE,EAAC,EAAE,CAAC,EAAE,EAAE,UAAU,0BAA0B,SAAS,EAAE,CAAC,AAAM,GAAN,MAAS,KAAK,qBAAqB,GAAI,MAAK,mBAAmB,EAAE,KAAK,gBAAgB,CAAC,EAAE,KAAK,yBAAyB,EAAE,SAAS,EAAE,EAAE,UAAU,6BAA6B,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,qBAAqB,KAAK,sBAAsB,KAAK,2BAA2B,KAAK,sBAAsB,OAAQ,GAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,GAAI,IAAE,EAAE,qBAAqB,CAAC,EAAE,GAAG,IAAG,EAAE,CAAC,GAAI,IAAE,EAAE,EAAE,IAAI,GAAG,CAAC,GAAE,SAAS,KAAK,IAAI,wBAAwB,EAAC,EAAE,KAAK,sBAAuB,MAAK,2BAA2B,IAAG,IAAI,GAAI,IAAE,GAAE,YAAY,IAAI,MAAK,qBAAqB,GAAE,GAAE,GAAE,UAAU,GAAE,KAAK,GAAE,WAAW,GAAE,WAAW,GAAE,UAAU,EAAE,GAAE,kBAAmB,MAAK,IAAI,oBAAoB,GAAE,GAAE,oBAAoB,EAAE,KAAK,sBAAuB,MAAK,0BAA0B,KAAK,EAAC,EAAE,KAAK,wBAAwB,KAAK,EAAC,IAAI,CAAC,CAAC,EAAE,EAAE,UAAU,wBAAwB,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,IAAI,oBAAoB,MAAO,MAAK,qBAAqB,GAAG,KAAK,IAAI,gBAAgB,CAAC,EAAE,KAAK,0BAA0B,GAAG,KAAK,6BAA6B,EAAE,CAAC,EAAE,KAAK,gBAAgB,CAAC,EAAE,KAAK,qBAAqB,GAAG,KAAK,IAAI,gBAAgB,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,sBAAsB,SAAS,EAAE,EAAE,CAAC,KAAK,2BAA2B,GAAI,MAAK,yBAAyB,EAAE,KAAK,IAAI,gBAAgB,CAAC,EAAE,KAAK,qBAAqB,KAAK,KAAK,mBAAmB,KAAK,KAAK,yBAAyB,AAAM,GAAN,MAAS,EAAE,SAAS,KAAK,0BAA0B,GAAG,EAAE,EAAE,UAAU,oBAAoB,SAAS,EAAE,EAAE,EAAE,EAAE,GAAE,CAAC,GAAG,KAAK,uBAAuB,GAAG,KAAK,gCAAgC,GAAE,CAAC,KAAK,qBAAqB,EAAE,KAAK,8BAA8B,GAAE,GAAI,IAAE,GAAE,qBAAqB,KAAK,2BAA2B,KAAK,sBAAsB,OAAQ,IAAE,EAAE,GAAE,EAAE,GAAE,GAAE,KAAI,GAAG,GAAE,EAAE,OAAO,CAAC,GAAI,IAAE,GAAE,qBAAqB,EAAC,EAAE,IAAG,GAAI,MAAK,IAAI,wBAAwB,EAAC,EAAE,KAAK,2BAA2B,IAAG,GAAG,KAAK,qBAAqB,EAAE,GAAE,EAAE,IAAG,KAAK,IAAI,MAAM,GAAG,EAAE,EAAC,GAAG,IAAG,EAAE,EAAE,GAAE,CAAC,CAAC,KAAK,0BAA0B,CAAC,CAAC,EAAE,EAAE,UAAU,yBAAyB,UAAU,CAAC,KAAK,0BAA2B,MAAK,yBAAyB,KAAK,KAAK,IAAI,gBAAgB,IAAI,EAAE,EAAE,EAAE,UAAU,YAAY,SAAS,EAAE,EAAE,EAAE,CAAC,KAAK,uBAAuB,GAAG,KAAK,gCAAgC,GAAI,MAAK,qBAAqB,EAAE,KAAK,8BAA8B,EAAE,KAAK,6BAA6B,EAAE,CAAC,GAAG,KAAK,0BAA0B,CAAC,CAAC,EAAE,EAAE,UAAU,yBAAyB,UAAU,CAAC,OAAQ,GAAE,EAAE,EAAE,EAAE,KAAK,0BAA0B,OAAO,EAAE,EAAE,IAAI,CAAC,GAAI,GAAE,KAAK,wBAAwB,GAAG,GAAG,GAAG,EAAE,YAAa,GAAE,EAAE,KAAK,gBAAgB,CAAC,GAAG,GAAI,IAAE,KAAK,0BAA0B,GAAG,KAAK,IAAI,oBAAoB,GAAE,CAAC,CAAC,CAAC,KAAK,wBAAwB,OAAO,EAAE,KAAK,0BAA0B,OAAO,CAAC,EAAE,EAAE,UAAU,yBAAyB,SAAS,EAAE,CAAC,KAAK,IAAI,kBAAkB,CAAC,CAAC,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,CAAC,MAAO,GAAE,aAAa,AAAI,EAAE,aAAN,GAAmB,MAAK,cAAc,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,CAAC,KAAK,IAAI,aAAa,EAAE,kBAAkB,CAAC,EAAE,EAAE,UAAU,6BAA6B,SAAS,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,gBAAgB,CAAC,EAAE,GAAG,KAAK,IAAI,cAAc,KAAK,IAAI,aAAa,EAAE,CAAC,EAAE,AAAS,EAAE,GAAG,QAAd,OAAoB,KAAK,oBAAoB,EAAE,EAAE,EAAE,MAAO,QAAQ,GAAE,EAAE,EAAE,EAAE,IAAI,CAAC,GAAI,IAAE,EAAE,GAAG,KAAK,2BAA2B,KAAK,MAAK,IAAI,wBAAwB,EAAC,EAAE,KAAK,2BAA2B,IAAG,IAAI,KAAK,qBAAqB,EAAE,GAAE,EAAE,KAAK,IAAI,MAAM,GAAG,GAAG,GAAG,CAAC,EAAE,KAAK,IAAI,oBAAoB,GAAE,CAAC,EAAE,KAAK,0BAA0B,KAAK,EAAC,EAAE,KAAK,wBAAwB,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,oBAAoB,SAAS,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,KAAK,gBAAgB,CAAC,EAAE,GAAI,GAAE,EAAE,GAAG,EAAE,OAAQ,IAAE,EAAE,GAAE,EAAE,OAAO,KAAK,GAAG,EAAG,IAAE,EAAE,KAAI,cAAc,IAAI,GAAE,EAAE,GAAE,EAAE,OAAO,KAAI,CAAC,GAAI,IAAE,AAAU,IAAE,EAAE,KAAI,QAAlB,QAA0B,IAAE,MAAM,KAAK,eAAe,2BAA2B,GAAE,aAAa,GAAG,GAAE,MAAM,GAAI,MAAK,2BAA2B,GAAE,QAAS,MAAK,IAAI,wBAAwB,GAAE,KAAK,EAAE,KAAK,2BAA2B,GAAE,OAAO,IAAI,KAAK,qBAAqB,EAAE,GAAE,MAAM,GAAE,cAAc,GAAE,eAAe,KAAK,IAAI,MAAM,GAAE,YAAY,GAAG,EAAE,GAAE,MAAM,EAAE,KAAK,IAAI,oBAAoB,GAAE,MAAM,AAAS,GAAE,UAAX,OAAmB,EAAE,GAAE,OAAO,EAAE,KAAK,0BAA0B,KAAK,GAAE,KAAK,EAAE,KAAK,wBAAwB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,+BAA+B,SAAS,EAAE,CAAC,GAAG,KAAK,eAAe,CAAC,GAAI,GAAE,KAAK,eAAe,2BAA2B,CAAC,EAAE,KAAK,yBAAyB,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,yBAAyB,SAAS,EAAE,CAAC,OAAQ,GAAE,EAAE,GAAG,AAAM,GAAE,KAAK,0BAA0B,QAAQ,CAAC,KAAhD,IAAoD,KAAK,0BAA0B,OAAO,EAAE,CAAC,EAAE,KAAK,wBAAwB,OAAO,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,0BAA0B,QAAQ,CAAC,EAAE,GAAI,MAAK,IAAI,oBAAoB,EAAE,CAAC,EAAE,KAAK,wBAAwB,CAAC,EAAE,EAAE,EAAE,UAAU,wBAAwB,SAAS,EAAE,CAAC,KAAK,IAAI,yBAAyB,CAAC,EAAE,KAAK,2BAA2B,GAAG,GAAG,KAAK,uBAAuB,GAAG,OAAO,EAAE,EAAE,EAAE,UAAU,KAAK,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,iBAAiB,EAAE,EAAE,EAAE,0BAA0B,EAAE,EAAE,2BAA2B,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,EAAE,EAAE,CAAC,KAAK,eAAe,EAAE,EAAE,uBAAuB,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,eAAe,EAAE,EAAE,EAAE,0BAA0B,EAAE,EAAE,2BAA2B,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,iBAAiB,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,cAAc,KAAK,kBAAkB,GAAI,IAAE,KAAK,UAAU,CAAC,EAAE,GAAE,KAAK,yBAAyB,KAAK,IAAI,aAAa,KAAK,IAAI,eAAe,GAAE,KAAK,yBAAyB,EAAE,EAAE,EAAE,KAAK,IAAI,sBAAsB,GAAE,EAAE,GAAE,EAAE,GAAE,CAAC,EAAE,KAAK,IAAI,aAAa,GAAE,EAAE,GAAE,EAAE,EAAC,CAAC,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,cAAc,KAAK,kBAAkB,GAAI,IAAE,KAAK,UAAU,CAAC,EAAE,EAAE,KAAK,IAAI,oBAAoB,GAAE,EAAE,EAAE,CAAC,EAAE,KAAK,IAAI,WAAW,GAAE,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,UAAU,SAAS,EAAE,CAAC,OAAO,OAAQ,GAAE,EAAE,0BAA0B,MAAO,MAAK,IAAI,cAAe,GAAE,EAAE,uBAAuB,MAAO,MAAK,IAAI,WAAY,GAAE,EAAE,2BAA2B,MAAO,MAAK,IAAI,UAAW,GAAE,EAAE,2BAA2B,MAAO,MAAK,IAAI,WAAY,GAAE,EAAE,0BAA0B,MAAO,MAAK,IAAI,UAAW,GAAE,EAAE,0BAA0B,MAAO,MAAK,IAAI,cAAe,GAAE,EAAE,2BAA2B,MAAO,MAAK,IAAI,eAAgB,GAAE,EAAE,+BAA+B,MAAO,MAAK,IAAI,mBAAoB,GAAE,EAAE,6BAA6B,MAAO,MAAK,IAAI,qBAAqB,MAAO,MAAK,IAAI,UAAU,EAAE,EAAE,UAAU,gBAAgB,UAAU,GAAG,EAAE,UAAU,eAAe,SAAS,EAAE,CAAC,KAAK,iBAAiB,EAAE,OAAQ,OAAO,MAAK,iBAAiB,EAAE,MAAM,KAAK,uBAAuB,EAAE,oBAAoB,EAAE,EAAE,EAAE,UAAU,uBAAuB,SAAS,EAAE,CAAC,GAAI,GAAE,EAAE,GAAG,EAAE,SAAU,GAAE,QAAQ,yBAAyB,KAAK,KAAK,IAAI,cAAc,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,aAAa,SAAS,EAAE,EAAE,EAAE,EAAE,GAAE,GAAE,GAAE,GAAE,GAAE,CAAC,GAAI,IAAG,GAAE,eAAe,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,GAAG,IAAK,GAAE,iBAAiB,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,GAAG,IAAK,KAAG,EAAE,SAAS,GAAG,KAAK,iBAAiB,IAAG,CAAC,GAAI,GAAE,KAAK,iBAAiB,IAAG,MAAO,KAAG,EAAE,WAAW,GAAE,CAAC,EAAE,CAAC,CAAC,GAAI,GAAE,GAAI,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,GAAE,GAAE,GAAE,GAAE,EAAC,EAAE,MAAO,GAAE,KAAK,GAAE,KAAK,iBAAiB,IAAG,EAAE,CAAC,EAAE,EAAE,mBAAmB,SAAS,EAAE,EAAE,EAAE,CAAC,MAAO,AAAS,KAAT,QAAa,GAAE,IAAI,EAAG,GAAE,EAAE;AAAA,EAAK,IAAI,CAAC,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,MAAO,MAAK,kBAAkB,EAAE,mBAAmB,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,kBAAkB,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,IAAI,EAAE,EAAE,aAAa,AAAW,IAAX,SAAa,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,CAAC,EAAE,KAAM,IAAI,OAAM,gDAAgD,EAAE,MAAO,GAAE,aAAa,EAAE,CAAC,EAAE,EAAE,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,iBAAiB,SAAS,EAAE,CAAC,MAAO,MAAK,IAAI,gBAAgB,CAAC,CAAC,EAAE,EAAE,UAAU,uBAAuB,SAAS,EAAE,EAAE,EAAE,EAAE,GAAE,CAAC,AAAS,KAAT,QAAa,IAAE,MAAM,EAAE,GAAG,KAAK,IAAI,GAAI,IAAE,KAAK,kBAAkB,EAAE,QAAQ,EAAE,GAAE,KAAK,kBAAkB,EAAE,UAAU,EAAE,MAAO,MAAK,qBAAqB,EAAE,GAAE,GAAE,EAAE,EAAC,CAAC,EAAE,EAAE,UAAU,oBAAoB,SAAS,EAAE,EAAE,EAAE,EAAE,GAAE,GAAE,CAAC,AAAS,KAAT,QAAa,IAAE,MAAM,GAAE,IAAG,KAAK,IAAI,GAAI,IAAE,KAAK,cAAc,EAAE;AAAA;AAAA,EAAqC,GAAG,GAAE,KAAK,eAAe,EAAE,SAAS,EAAE,EAAC,EAAE,GAAE,KAAK,eAAe,EAAE,WAAW,EAAE,EAAC,EAAE,MAAO,MAAK,qBAAqB,EAAE,GAAE,GAAE,GAAE,EAAC,CAAC,EAAE,EAAE,UAAU,sBAAsB,UAAU,CAAC,GAAI,GAAE,GAAI,GAAE,EAAE,MAAO,GAAE,OAAO,KAAK,KAAK,MAAM,uBAAwB,GAAE,mBAAmB,IAAI,CAAC,EAAE,EAAE,UAAU,qBAAqB,SAAS,EAAE,EAAE,EAAE,EAAE,GAAE,CAAsB,GAAI,IAAE,EAAE,gBAAgB,GAAG,EAAE,QAAQ,GAAE,CAAC,GAAE,KAAM,IAAI,OAAM,0BAA0B,EAAE,MAAO,GAAE,aAAa,GAAE,CAAC,EAAE,EAAE,aAAa,GAAE,CAAC,EAAE,EAAE,YAAY,EAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,aAAa,EAAE,EAAE,eAAe,EAAE,EAAE,oBAAoB,KAAK,yBAAyB,CAAC,EAAE,EAAC,EAAE,EAAE,UAAU,yBAAyB,SAAS,EAAE,CAAC,GAAI,GAAE,EAAE,QAAQ,EAAE,EAAE,aAAa,EAAE,EAAE,eAAe,GAAE,EAAE,QAAQ,GAAG,CAAC,EAAE,oBAAoB,GAAE,EAAE,WAAW,EAAE,CAAC,GAAI,IAAE,GAAE,GAAG,CAAC,KAAK,IAAI,mBAAmB,EAAE,KAAK,IAAI,cAAc,GAAK,IAAE,KAAK,IAAI,iBAAiB,CAAC,GAAE,KAAM,GAAE,uBAAuB,GAAE,GAAI,OAAM,iBAAiB,EAAC,EAAE,GAAG,CAAC,KAAK,IAAI,mBAAmB,EAAE,KAAK,IAAI,cAAc,GAAK,IAAE,KAAK,IAAI,iBAAiB,CAAC,GAAE,KAAM,GAAE,yBAAyB,GAAE,GAAI,OAAM,mBAAmB,EAAC,EAAE,GAAG,GAAE,EAAE,kBAAkB,EAAC,EAAE,KAAM,GAAE,iBAAiB,GAAE,GAAI,OAAM,EAAC,CAAC,CAAC,GAAG,KAAK,wBAAyB,GAAE,gBAAgB,EAAC,EAAE,CAAC,EAAE,oBAAoB,GAAE,EAAE,eAAe,GAAI,IAAE,EAAE,kBAAkB,EAAC,IAAI,KAAM,GAAE,uBAAuB,GAAE,GAAI,OAAM,EAAC,EAAE,EAAE,aAAa,CAAC,EAAE,EAAE,aAAa,CAAC,EAAE,EAAE,aAAa,OAAO,EAAE,eAAe,OAAO,EAAE,YAAa,GAAE,aAAa,EAAE,WAAW,OAAO,EAAE,EAAE,UAAU,wBAAwB,SAAS,EAAE,EAAE,EAAE,EAAE,GAAE,GAAE,GAAE,CAAC,GAAI,IAAE,EAAE,GAAE,QAAQ,EAAE,KAAK,uBAAuB,GAAE,EAAE,EAAE,OAAO,EAAC,EAAE,KAAK,oBAAoB,GAAE,EAAE,EAAE,GAAE,OAAO,EAAC,EAAE,GAAE,QAAQ,yBAAyB,EAAC,EAAE,EAAE,UAAU,0BAA0B,SAAS,EAAE,CAAC,GAAI,GAAE,EAAE,MAAM,CAAC,CAAC,KAAK,IAAI,oBAAoB,EAAE,QAAQ,KAAK,MAAM,sBAAsB,qBAAqB,GAAI,MAAK,yBAAyB,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,qCAAqC,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,GAAG,EAAE,mBAAmB,CAAC,GAAI,GAAE,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,CAAC,IAAI,GAAG,EAAE,CAAC,KAAM,IAAG,EAAE,EAAE,UAAU,YAAY,SAAS,EAAE,EAAE,CAAC,OAAQ,GAAE,GAAI,OAAM,EAAE,EAAE,GAAE,EAAE,GAAE,EAAE,OAAO,KAAI,EAAE,KAAK,KAAK,IAAI,mBAAmB,EAAE,QAAQ,EAAE,GAAE,CAAC,EAAE,MAAO,EAAC,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,EAAE,CAAC,OAAQ,GAAE,GAAG,EAAE,EAAE,GAAE,EAAE,GAAE,EAAE,OAAO,KAAI,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,kBAAkB,EAAE,QAAQ,EAAE,GAAE,CAAC,CAAC,MAAC,CAAS,EAAE,KAAK,EAAE,CAAC,CAAC,MAAO,EAAC,EAAE,EAAE,UAAU,aAAa,SAAS,EAAE,CAAC,GAAG,IAAI,KAAK,gBAAiB,MAAK,aAAa,CAAC,EAAE,KAAK,eAAe,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,mBAAmB,EAAE,kBAAkB,gBAAgB,CAAC,EAAE,EAAE,EAAE,UAAU,OAAO,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,GAAI,MAAK,IAAI,UAAU,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,YAAY,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,GAAI,MAAK,IAAI,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,aAAa,SAAS,EAAE,EAAE,CAAC,MAAM,CAAE,EAAC,GAAG,EAAE,OAAO,GAAG,IAAK,MAAK,IAAI,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,aAAa,SAAS,EAAE,EAAE,CAAC,MAAM,CAAE,EAAC,GAAG,EAAE,OAAO,GAAG,IAAK,MAAK,IAAI,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,aAAa,SAAS,EAAE,EAAE,CAAC,MAAM,CAAE,EAAC,GAAG,EAAE,OAAO,GAAG,IAAK,MAAK,IAAI,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,SAAS,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,GAAI,MAAK,IAAI,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,UAAU,SAAS,EAAE,EAAE,CAAC,MAAM,CAAE,EAAC,GAAG,EAAE,OAAO,GAAG,IAAK,MAAK,IAAI,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,UAAU,SAAS,EAAE,EAAE,CAAC,MAAM,CAAE,EAAC,GAAG,EAAE,OAAO,GAAG,IAAK,MAAK,IAAI,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,UAAU,SAAS,EAAE,EAAE,CAAC,MAAM,CAAE,EAAC,GAAG,EAAE,OAAO,GAAG,IAAK,MAAK,IAAI,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,YAAY,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,GAAI,MAAK,IAAI,iBAAiB,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,aAAa,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,GAAI,MAAK,IAAI,iBAAiB,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,aAAa,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,GAAI,MAAK,IAAI,iBAAiB,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,SAAS,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,GAAI,MAAK,IAAI,UAAU,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,UAAU,SAAS,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,GAAI,MAAK,IAAI,UAAU,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,UAAU,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,GAAI,MAAK,IAAI,UAAU,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,UAAU,SAAS,EAAE,EAAE,EAAE,EAAE,GAAE,CAAC,MAAM,CAAC,CAAC,GAAI,MAAK,IAAI,UAAU,EAAE,EAAE,EAAE,EAAE,EAAC,EAAE,GAAG,EAAE,EAAE,UAAU,YAAY,UAAU,CAAC,GAAG,KAAK,mBAAmB,MAAM,KAAK,GAAG,EAAE,KAAK,cAAc,MAAM,KAAK,GAAG,EAAE,KAAK,YAAY,MAAM,KAAK,GAAG,EAAE,KAAK,mBAAmB,CAAC,KAAK,mBAAmB,GAAG,GAAI,GAAE,KAAK,YAAY,KAAK,IAAI,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,CAAC,IAAI,KAAK,aAAc,MAAK,mBAAmB,GAAG,KAAK,YAAY,EAAE,EAAE,EAAE,UAAU,cAAc,UAAU,CAAC,MAAO,MAAK,WAAW,EAAE,OAAO,eAAe,EAAE,UAAU,oBAAoB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,kBAAkB,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,aAAa,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,WAAW,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,eAAe,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,aAAa,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,2BAA2B,UAAU,CAAC,KAAK,uBAAuB,EAAE,EAAE,EAAE,UAAU,WAAW,SAAS,EAAE,CAAC,KAAK,+BAA+B,CAAC,GAAI,MAAK,eAAe,KAAK,KAAK,gBAAgB,EAAE,EAAE,KAAK,gBAAgB,EAAE,EAAE,KAAK,gBAAgB,EAAE,EAAE,KAAK,gBAAgB,EAAE,EAAE,KAAK,2BAA2B,GAAI,MAAK,gBAAgB,KAAK,KAAK,oBAAoB,KAAK,cAAc,QAAQ,KAAK,mBAAmB,QAAQ,KAAK,mBAAmB,UAAU,KAAK,IAAI,OAAO,KAAK,YAAY,QAAQ,KAAK,WAAW,EAAE,EAAE,UAAU,KAAK,eAAe,EAAE,EAAE,cAAc,KAAK,YAAY,GAAG,KAAK,mBAAmB,GAAG,KAAK,mBAAmB,KAAK,KAAK,IAAI,YAAY,KAAK,IAAI,mCAAmC,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,YAAY,KAAK,IAAI,+BAA+B,CAAC,EAAE,KAAK,0BAA0B,GAAG,KAAK,uBAAuB,KAAK,4BAA4B,KAAK,mBAAmB,KAAK,KAAK,8BAA8B,KAAK,KAAK,gBAAgB,IAAI,EAAE,EAAE,EAAE,UAAU,uBAAuB,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,IAAI,EAAE,EAAE,QAAQ,GAAE,EAAE,QAAQ,OAAO,OAAQ,GAAE,EAAE,iCAAiC,EAAE,EAAE,OAAO,GAAE,EAAE,EAAE,sBAAsB,EAAE,OAAO,UAAW,GAAE,EAAE,gCAAgC,EAAE,EAAE,OAAO,GAAE,EAAE,EAAE,qBAAqB,EAAE,OAAO,UAAW,GAAE,EAAE,kCAAkC,EAAE,EAAE,QAAQ,GAAE,EAAE,EAAE,sBAAsB,EAAE,QAAQ,UAAW,GAAE,EAAE,mCAAmC,EAAE,EAAE,QAAQ,GAAE,EAAE,EAAE,uBAAuB,EAAE,QAAQ,UAAW,GAAE,EAAE,kCAAkC,EAAE,EAAE,QAAQ,GAAE,EAAE,EAAE,sBAAsB,EAAE,OAAO,UAAW,GAAE,EAAE,iCAAiC,EAAE,EAAE,QAAQ,GAAE,EAAE,EAAE,qBAAqB,EAAE,OAAO,UAAW,GAAE,EAAE,uBAAuB,EAAE,EAAE,QAAQ,GAAE,EAAE,OAAO,UAAW,GAAE,EAAE,wBAAwB,EAAE,EAAE,QAAQ,GAAE,EAAE,QAAQ,UAAW,GAAE,EAAE,kCAAkC,EAAE,EAAE,OAAO,GAAE,EAAE,EAAE,uBAAuB,EAAE,QAAQ,UAAW,GAAE,EAAE,iCAAiC,EAAE,EAAE,OAAO,GAAE,EAAE,EAAE,sBAAsB,EAAE,QAAQ,UAAW,GAAE,EAAE,sBAAsB,EAAE,EAAE,OAAO,GAAE,EAAE,OAAO,UAAW,GAAE,EAAE,uBAAuB,EAAE,EAAE,OAAO,GAAE,EAAE,QAAQ,MAAM,CAAC,IAAI,GAAE,IAAI,CAAC,CAAC,EAAE,EAAE,UAAU,eAAe,UAAU,CAAC,GAAI,GAAE,KAAK,IAAI,gBAAgB,GAAG,CAAC,EAAE,KAAM,IAAI,OAAM,0BAA0B,EAAE,MAAO,EAAC,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,EAAE,EAAE,EAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,AAAS,KAAT,QAAa,IAAE,EAAE,EAAE,gCAAgC,AAAS,KAAT,QAAa,IAAE,MAAM,AAAS,KAAT,QAAa,IAAE,MAAM,AAAS,KAAT,QAAa,IAAE,MAAM,AAAS,KAAT,QAAa,IAAE,MAAM,AAAS,KAAT,QAAa,IAAE,MAAM,AAAS,IAAT,QAAa,GAAE,MAAM,GAAI,GAAE,AAAW,GAAE,GAAG,IAAI,OAAO,EAAE,CAAC,IAA9B,QAAgC,GAAE,AAAU,EAAE,OAAO,EAAE,CAAC,IAAtB,QAAwB,GAAE,GAAG,AAAK,EAAE,QAAQ,UAAU,IAAzB,GAA2B,EAAE,IAAG,GAAI,GAAE,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,KAAK,sBAAsB,IAAG,IAAG,IAAI,GAAE,KAAK,qBAAqB,CAAC,GAAG,IAAI,GAAI,GAAE,aAAa,GAAG,GAAI,GAAE,EAAE,YAAY,GAAG,EAAE,EAAE,GAAI,GAAE,GAAG,EAAE,UAAU,CAAC,EAAE,cAAc,IAAI,EAAE,KAAK,EAAE,QAAQ,GAAG,EAAE,IAAK,GAAE,EAAE,MAAM,GAAG,EAAE,IAAI,OAAQ,GAAE,EAAE,GAAE,EAAE,gBAAgB,EAAE,GAAE,OAAO,IAAI,CAAC,GAAI,IAAE,GAAE,GAAG,GAAG,GAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,GAAE,KAAK,CAAC,CAAC,GAAG,EAAE,gBAAgB,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,gBAAgB,CAAC,EAAE,EAAE,aAAa,GAAE,EAAE,QAAQ,EAAE,KAAK,yBAA0B,GAAE,QAAQ,IAAG,GAAI,IAAE,KAAK,IAAG,CAAC,IAAI,IAAE,EAAE,mBAAmB,IAAI,EAAC,GAAG,IAAG,KAAK,uBAAuB,KAAK,CAAC,EAAE,GAAI,IAAE,SAAS,GAAE,GAAE,CAAC,GAAG,EAAE,mBAAmB,CAAC,EAAE,IAAI,EAAG,KAAG,EAAE,mBAAmB,OAAO,EAAC,EAAE,EAAE,EAAE,oBAAoB,EAAE,cAAc,EAAE,EAAE,gBAAgB,EAAE,EAAE,QAAQ,EAAE,GAAE,KAAK,GAAE,GAAE,CAAC,EAAE,IAAG,GAAG,KAAG,iBAAkB,GAAE,EAAE,mBAAmB,+BAA+B,IAAI,EAAC,GAAI,GAAE,EAAE,KAAK,kBAAkB,EAAE,qBAAqB,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAE,GAAE,GAAE,GAAE,EAAE,GAAE,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,GAAI,IAAE,SAAS,GAAE,CAAC,EAAE,SAAS,GAAE,EAAG,SAAS,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,CAAC,GAAE,GAAE,mCAAmC,EAAE,EAAE,qBAAqB,EAAE,EAAE,GAAE,GAAE,EAAE,QAAQ,CAAC,GAAE,GAAG,UAAU,CAAC,MAAO,MAAI,EAAE,EAAG,EAAC,CAAC,EAAG,CAAC,CAAC,EAAE,GAAE,aAAa,aAAY,GAAE,GAAI,YAAW,EAAC,CAAC,EAAE,YAAY,OAAO,EAAC,EAAE,GAAE,EAAC,EAAE,IAAG,GAAE,mEAAmE,IAAI,EAAE,KAAK,UAAU,EAAG,SAAS,GAAE,CAAC,MAAO,IAAE,GAAI,YAAW,EAAC,CAAC,CAAC,EAAG,OAAO,EAAE,EAAE,gBAAgB,OAAO,GAAI,SAAS,GAAE,GAAE,CAAC,GAAE,kBAAmB,KAAG,GAAE,YAAY,GAAE,CAAC,EAAG,KAAK,CAAC,GAAI,IAAE,SAAS,GAAE,CAAC,IAAG,CAAC,EAAE,yBAA0B,GAAE,QAAQ,IAAG,EAAE,qBAAqB,EAAE,EAAE,GAAE,MAAM,GAAE,OAAO,EAAE,QAAQ,EAAE,GAAI,SAAS,GAAE,GAAE,GAAE,CAAC,GAAI,IAAE,EAAE,IAAI,GAAE,GAAE,QAAQ,IAAG,GAAE,SAAS,GAAE,GAAE,GAAE,EAAE,mBAAmB,EAAC,EAAE,AAAS,IAAT,OAAW,GAAE,IAAI,GAAE,KAAK,GAAG,GAAE,MAAO,IAAE,WAAW,GAAE,WAAW,EAAE,GAAE,GAAE,GAAE,cAAc,EAAC,EAAE,GAAG,GAAI,IAAE,EAAE,MAAM,eAAe,GAAG,GAAE,MAAM,IAAG,GAAE,OAAO,IAAG,CAAC,EAAE,kCAAkC,MAAO,GAAE,wBAAwB,CAAE,EAAC,EAAE,gBAAgB,CAAC,EAAE,kBAAmB,GAAE,eAAe,MAAM,GAAE,EAAE,eAAe,OAAO,GAAE,EAAE,gBAAgB,UAAU,GAAE,EAAE,EAAE,GAAE,MAAM,GAAE,OAAO,EAAE,EAAE,GAAE,EAAC,EAAE,GAAE,WAAW,GAAE,WAAW,EAAE,GAAE,GAAE,GAAE,cAAc,EAAE,cAAc,EAAE,EAAE,MAAM,GAAE,EAAE,OAAO,GAAE,IAAI,GAAI,IAAE,GAAI,GAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAO,GAAE,qBAAqB,GAAE,WAAW,GAAE,EAAE,EAAE,GAAE,WAAW,GAAE,WAAW,EAAE,GAAE,GAAE,GAAE,cAAc,EAAC,EAAE,EAAE,gBAAgB,GAAE,EAAE,EAAE,GAAG,UAAU,CAAC,EAAE,gBAAgB,EAAC,EAAE,EAAE,qBAAqB,GAAE,WAAW,EAAE,EAAE,EAAE,IAAG,GAAI,EAAE,EAAG,EAAC,CAAC,EAAE,CAAC,GAAG,GAAE,IAAI,IAAE,UAAU,GAAE,OAAO,GAAE,EAAC,EAAE,EAAE,oBAAoB,EAAE,GAAE,GAAE,EAAE,EAAE,gBAAgB,KAAK,CAAC,EAAE,AAAU,MAAO,KAAjB,UAAoB,aAAa,cAAa,YAAY,OAAO,EAAC,GAAG,aAAa,MAAK,EAAE,oBAAoB,GAAE,GAAE,GAAE,EAAE,EAAE,gBAAgB,KAAK,CAAC,EAAE,IAAG,GAAE,EAAC,CAAC,CAAC,MAAO,EAAC,EAAE,EAAE,oBAAoB,SAAS,EAAE,EAAE,EAAE,EAAE,GAAE,CAAC,KAAM,GAAE,EAAE,WAAW,WAAW,CAAC,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,EAAE,EAAE,EAAE,GAAE,GAAG,EAAE,UAAU,iBAAiB,SAAS,EAAE,EAAE,EAAE,EAAE,GAAE,GAAE,GAAE,GAAE,GAAE,CAAC,KAA2B,AAAS,MAAT,QAAa,IAAE,EAAE,EAAE,0BAA0B,EAAE,EAAE,WAAW,mBAAmB,CAAC,EAAE,EAAE,UAAU,qBAAqB,SAAS,EAAE,EAAE,EAAE,EAAE,GAAE,GAAE,GAAE,GAAE,CAAC,KAA2B,GAAE,EAAE,WAAW,mBAAmB,CAAC,EAAE,EAAE,UAAU,mBAAmB,SAAS,EAAE,EAAE,EAAE,EAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,CAAC,KAA2B,AAAS,MAAT,QAAa,IAAE,EAAE,EAAE,0BAA0B,EAAE,EAAE,WAAW,mBAAmB,CAAC,EAAE,EAAE,UAAU,wBAAwB,SAAS,EAAE,EAAE,EAAE,EAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,CAAC,KAA2B,AAAS,MAAT,QAAa,IAAE,EAAE,EAAE,0BAA0B,EAAE,EAAE,WAAW,mBAAmB,CAAC,EAAE,EAAE,UAAU,aAAa,SAAS,EAAE,CAAC,KAAK,qBAAqB,GAAI,MAAK,IAAI,YAAY,KAAK,IAAI,oBAAoB,EAAE,EAAE,CAAC,EAAE,KAAK,yBAA0B,MAAK,mBAAmB,GAAG,EAAE,EAAE,UAAU,qBAAqB,UAAU,CAAC,MAAO,MAAK,IAAI,aAAa,KAAK,IAAI,gBAAgB,CAAC,EAAE,EAAE,UAAU,kBAAkB,SAAS,EAAE,CAAC,MAAO,GAAE,OAAO,KAAK,IAAI,iBAAiB,EAAE,KAAK,KAAK,IAAI,WAAW,EAAE,WAAW,EAAE,YAAY,KAAK,IAAI,iBAAiB,KAAK,IAAI,UAAU,EAAE,EAAE,UAAU,0BAA0B,SAAS,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,GAAI,GAAE,KAAK,kBAAkB,CAAC,EAAE,GAAE,KAAK,uBAAuB,EAAE,EAAE,iBAAiB,CAAC,EAAE,KAAK,4BAA4B,EAAE,KAAK,IAAI,mBAAmB,GAAE,IAAI,CAAC,EAAE,KAAK,4BAA4B,EAAE,KAAK,IAAI,mBAAmB,GAAE,GAAG,EAAE,GAAI,GAAE,gBAAgB,GAAG,KAAK,IAAI,eAAe,CAAC,GAAG,KAAK,qBAAqB,EAAE,IAAI,EAAE,EAAE,aAAa,CAAC,EAAE,EAAE,UAAU,0BAA0B,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,MAAM,AAAS,IAAT,QAAa,GAAE,MAAM,GAAI,IAAE,KAAK,kBAAkB,CAAC,EAAE,AAAO,IAAP,MAAW,MAAK,4BAA4B,GAAE,KAAK,IAAI,eAAe,KAAK,oBAAoB,CAAC,EAAE,CAAC,EAAE,EAAE,aAAa,GAAG,AAAO,IAAP,MAAW,MAAK,4BAA4B,GAAE,KAAK,IAAI,eAAe,KAAK,oBAAoB,CAAC,EAAE,CAAC,EAAE,EAAE,aAAa,GAAI,GAAE,WAAW,EAAE,OAAO,AAAO,IAAP,MAAW,MAAK,4BAA4B,GAAE,KAAK,IAAI,eAAe,KAAK,oBAAoB,CAAC,EAAE,CAAC,EAAE,EAAE,aAAa,GAAG,KAAK,qBAAqB,GAAE,IAAI,CAAC,EAAE,EAAE,UAAU,0BAA0B,SAAS,EAAE,EAAE,EAAE,EAAE,GAAE,CAAC,GAAI,IAAE,EAAE,OAAO,EAAE,GAAE,EAAE,QAAQ,EAAE,GAAE,EAAE,QAAQ,EAAE,EAAE,UAAU,GAAE,EAAE,WAAW,GAAE,EAAE,MAAM,GAAE,EAAE,OAAO,GAAE,EAAE,UAAU,GAAE,EAAE,EAAE,MAAM,GAAE,EAAE,QAAQ,GAAG,EAAE,QAAQ,EAAE,EAAE,gBAAgB,GAAG,EAAE,qBAAqB,GAAG,EAAE,uBAAuB,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,8BAA8B,EAAE,EAAE,6BAA6B,EAAE,KAAK,EAAE,EAAE,yBAAyB,EAAE,oBAAoB,GAAE,GAAI,IAAE,KAAK,IAAI,GAAE,KAAK,kBAAkB,CAAC,EAAE,EAAE,KAAK,uBAAuB,EAAE,aAAa,EAAE,EAAE,GAAE,cAAc,GAAE,GAAE,mBAAmB,EAAE,GAAG,EAAE,GAAE,cAAc,GAAE,GAAE,mBAAmB,EAAE,GAAG,EAAE,GAAE,cAAc,GAAE,GAAE,eAAe,GAAE,aAAa,EAAE,GAAE,cAAc,GAAE,GAAE,eAAe,GAAE,aAAa,EAAE,AAAI,KAAJ,EAAO,IAAE,cAAc,GAAE,GAAE,qBAAqB,EAAE,EAAE,MAAM,EAAE,GAAE,cAAc,GAAE,GAAE,qBAAqB,GAAE,IAAI,GAAI,IAAE,cAAc,GAAE,GAAE,qBAAqB,EAAC,EAAE,GAAE,cAAc,GAAE,GAAE,qBAAqB,GAAE,sBAAsB,EAAE,EAAE,EAAE,UAAU,uCAAuC,SAAS,EAAE,EAAE,EAAE,EAAE,GAAE,GAAE,GAAE,CAAC,AAAS,KAAT,QAAa,IAAE,GAAG,AAAS,KAAT,QAAa,IAAE,GAAG,GAAI,IAAE,KAAK,IAAI,GAAE,GAAE,WAAW,EAAE,QAAS,IAAE,GAAE,4BAA4B,IAAG,KAAK,IAAI,qBAAqB,GAAE,GAAE,EAAE,EAAE,EAAE,EAAE,EAAC,CAAC,EAAE,EAAE,UAAU,6BAA6B,SAAS,EAAE,EAAE,EAAE,EAAE,GAAE,GAAE,CAAC,AAAS,IAAT,QAAa,GAAE,GAAG,AAAS,IAAT,QAAa,GAAE,GAAG,AAAS,KAAT,QAAa,IAAE,IAAI,GAAI,IAAE,KAAK,IAAI,GAAE,KAAK,qBAAqB,EAAE,IAAI,EAAE,GAAE,KAAK,mBAAmB,EAAE,MAAM,EAAE,GAAE,AAAS,KAAT,OAAW,KAAK,kCAAkC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,mBAAmB,EAAC,EAAE,KAAK,aAAa,EAAE,OAAO,EAAE,GAAI,GAAE,GAAE,WAAW,EAAE,QAAS,GAAE,GAAE,4BAA4B,GAAG,GAAI,GAAE,KAAK,MAAM,KAAK,IAAI,EAAE,KAAK,EAAE,KAAK,KAAK,EAAE,EAAE,KAAK,MAAM,KAAK,IAAI,EAAE,MAAM,EAAE,KAAK,KAAK,EAAE,EAAE,GAAE,EAAE,MAAM,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,GAAE,EAAE,OAAO,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAE,WAAW,EAAE,EAAE,GAAE,EAAE,EAAE,EAAE,GAAE,GAAE,CAAC,CAAC,EAAE,EAAE,UAAU,kBAAkB,SAAS,EAAE,EAAE,EAAE,EAAE,GAAE,GAAE,GAAE,GAAE,CAAC,AAAS,KAAT,QAAa,IAAE,GAAG,AAAS,KAAT,QAAa,IAAE,GAAG,GAAI,IAAE,KAAK,IAAI,GAAE,KAAK,qBAAqB,EAAE,IAAI,EAAE,EAAE,KAAK,mBAAmB,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,OAAO,EAAE,GAAI,GAAE,GAAE,WAAW,EAAE,QAAS,GAAE,GAAE,4BAA4B,IAAG,GAAE,cAAc,EAAE,GAAE,EAAE,EAAE,GAAE,GAAE,EAAE,GAAE,CAAC,CAAC,EAAE,EAAE,UAAU,gCAAgC,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,GAAG,AAAS,IAAT,QAAa,GAAE,GAAG,GAAI,IAAE,KAAK,IAAI,GAAE,EAAE,OAAO,GAAE,iBAAiB,GAAE,WAAW,KAAK,qBAAqB,GAAE,EAAE,EAAE,EAAE,KAAK,6BAA6B,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,qBAAqB,GAAE,KAAK,EAAE,CAAC,EAAE,EAAE,UAAU,iCAAiC,SAAS,EAAE,EAAE,EAAE,EAAE,GAAE,CAAC,GAAI,IAAE,KAAK,IAAI,GAAG,GAAE,CAAC,GAAI,IAAE,KAAK,uBAAuB,GAAE,CAAC,CAAC,EAAE,GAAE,cAAc,GAAE,WAAW,GAAE,mBAAmB,GAAE,GAAG,EAAE,GAAE,cAAc,GAAE,WAAW,GAAE,mBAAmB,GAAE,GAAG,EAAE,GAAG,GAAG,GAAE,eAAe,GAAE,UAAU,EAAE,KAAK,qBAAqB,GAAE,WAAW,IAAI,EAAE,GAAG,EAAE,mBAAmB,CAAC,EAAE,EAAE,mBAAmB,gBAAgB,CAAC,EAAE,EAAE,mBAAmB,OAAO,CAAC,EAAE,EAAE,UAAU,qBAAqB,SAAS,EAAE,EAAE,EAAE,EAAE,GAAE,GAAE,GAAE,GAAE,GAAE,CAAC,GAAI,IAAE,KAAK,AAAS,KAAT,QAAa,IAAE,EAAE,EAAE,gCAAgC,GAAI,GAAE,KAAK,UAAU,eAAe,EAAE,KAAK,IAAI,EAAE,KAAK,gBAAgB,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE,KAAK,gBAAgB,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,GAAI,GAAE,cAAe,MAAK,qBAAqB,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,aAAa,AAAS,KAAT,QAAY,CAAC,CAAC,EAAC,EAAE,EAAE,UAAU,EAAE,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,QAAQ,GAAG,GAAE,EAAE,EAAG,UAAU,CAAC,GAAE,iCAAiC,EAAE,EAAE,GAAE,GAAE,EAAC,CAAC,IAAK,KAAK,iCAAiC,EAAE,EAAE,GAAE,GAAE,EAAC,GAAG,GAAG,EAAE,mBAAmB,CAAC,EAAE,EAAE,EAAE,UAAU,kCAAkC,SAAS,EAAE,EAAE,EAAE,EAAE,GAAE,CAAC,AAAS,KAAT,QAAa,IAAE,GAAG,GAAI,IAAE,KAAK,IAAI,GAAG,GAAG,EAAE,MAAO,MAAK,uBAAuB,EAAE,EAAE,GAAE,GAAE,cAAc,GAAE,iBAAiB,GAAE,wBAAwB,EAAE,GAAG,EAAE,CAAC,GAAI,IAAE,GAAE,kBAAkB,MAAO,MAAK,cAAc,GAAI,IAAE,GAAE,oBAAoB,KAAK,uBAAuB,EAAE,EAAE,GAAE,GAAE,GAAE,GAAE,gBAAgB,CAAC,CAAC,MAAO,GAAE,KAAK,uBAAuB,EAAE,EAAE,GAAE,GAAE,eAAe,GAAE,eAAe,GAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,UAAU,2BAA2B,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,IAAI,EAAE,cAAe,GAAE,kBAAkB,EAAE,YAAY,EAAE,EAAE,aAAa,MAAM,EAAE,qBAAsB,GAAE,mBAAmB,EAAE,mBAAmB,EAAE,EAAE,oBAAoB,MAAM,EAAE,kBAAmB,GAAE,kBAAkB,EAAE,gBAAgB,EAAE,EAAE,iBAAiB,MAAM,EAAE,mBAAoB,GAAE,mBAAmB,EAAE,iBAAiB,EAAE,EAAE,kBAAkB,KAAK,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,CAAC,KAAK,2BAA2B,CAAC,EAAE,KAAK,eAAe,EAAE,aAAa,EAAE,KAAK,oBAAoB,GAAI,GAAE,KAAK,uBAAuB,QAAQ,CAAC,EAAE,AAAK,IAAL,IAAQ,KAAK,uBAAuB,OAAO,EAAE,CAAC,EAAE,EAAE,iBAAiB,EAAE,gBAAgB,UAAU,EAAE,gBAAgB,EAAE,eAAe,UAAU,EAAE,gBAAgB,EAAE,eAAe,UAAU,EAAE,oBAAoB,EAAE,mBAAmB,SAAS,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,CAAC,KAAK,IAAI,cAAc,CAAC,CAAC,EAAE,EAAE,UAAU,YAAY,SAAS,EAAE,CAAC,KAAK,kBAAkB,GAAI,MAAK,IAAI,WAAW,CAAC,EAAE,KAAK,gBAAgB,EAAE,EAAE,EAAE,UAAU,aAAa,SAAS,EAAE,CAAC,GAAI,GAAE,EAAE,qBAAqB,KAAK,YAAY,EAAE,OAAO,EAAE,OAAQ,GAAE,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,GAAI,IAAE,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,MAAK,eAAe,GAAG,GAAE,CAAC,KAAK,eAAe,IAAI,EAAE,EAAE,UAAU,wBAAwB,UAAU,CAAC,KAAK,yBAAyB,KAAK,gBAAiB,MAAK,IAAI,cAAc,KAAK,IAAI,SAAS,KAAK,cAAc,EAAE,KAAK,uBAAuB,KAAK,eAAe,EAAE,EAAE,UAAU,qBAAqB,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,AAAS,IAAT,QAAa,GAAE,IAAI,GAAI,IAAE,GAAG,GAAE,GAAG,EAAE,mBAAmB,GAAG,MAAO,IAAG,IAAI,MAAK,eAAe,EAAE,oBAAoB,KAAK,oBAAoB,KAAK,kBAAkB,GAAG,EAAG,MAAK,0BAA0B,GAAG,EAAE,YAAY,KAAK,IAAI,YAAY,EAAE,EAAE,EAAE,mBAAmB,IAAI,EAAE,KAAK,IAAI,YAAY,EAAE,EAAE,EAAE,cAAc,IAAI,EAAE,KAAK,oBAAoB,KAAK,gBAAgB,EAAE,GAAI,GAAE,mBAAmB,KAAK,iBAAiB,GAAI,IAAE,GAAG,KAAK,2BAA2B,IAAG,CAAC,GAAG,KAAK,6BAA6B,EAAE,mBAAmB,KAAK,cAAc,EAAE,EAAC,EAAE,EAAE,UAAU,aAAa,SAAS,EAAE,EAAE,CAAC,GAAG,AAAS,IAAT,OAAW,CAAC,GAAI,GAAE,mBAAmB,GAAG,KAAK,eAAe,EAAE,GAAI,GAAE,EAAE,KAAK,kBAAkB,CAAC,EAAE,KAAK,IAAI,WAAW,KAAK,qBAAqB,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,kBAAkB,UAAU,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,yBAAyB,IAAI,KAAK,eAAe,EAAE,KAAK,qBAAqB,KAAK,IAAI,WAAW,IAAI,EAAE,KAAK,qBAAqB,KAAK,IAAI,iBAAiB,IAAI,EAAE,KAAK,aAAa,GAAI,MAAK,qBAAqB,KAAK,IAAI,WAAW,IAAI,EAAE,KAAK,qBAAqB,KAAK,IAAI,iBAAiB,IAAI,EAAE,EAAE,EAAE,UAAU,WAAW,SAAS,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,IAAI,MAAK,eAAe,GAAG,GAAG,KAAK,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,6BAA6B,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,eAAe,GAAG,GAAG,EAAE,gBAAgB,GAAI,MAAK,IAAI,UAAU,EAAE,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,UAAU,oBAAoB,SAAS,EAAE,CAAC,OAAO,OAAQ,GAAE,EAAE,yBAAyB,MAAO,MAAK,IAAI,WAAY,GAAE,EAAE,0BAA0B,MAAO,MAAK,IAAI,kBAAmB,GAAE,EAAE,2BAA2B,MAAO,MAAK,IAAI,gBAAgB,MAAO,MAAK,IAAI,MAAM,EAAE,EAAE,UAAU,YAAY,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,AAAS,IAAT,QAAa,GAAE,IAAI,AAAS,IAAT,QAAa,GAAE,IAAI,CAAC,EAAE,MAAO,AAAM,MAAK,oBAAoB,IAA/B,MAAoC,MAAK,eAAe,EAAE,KAAK,qBAAqB,KAAK,IAAI,WAAW,IAAI,EAAE,KAAK,qBAAqB,KAAK,IAAI,iBAAiB,IAAI,EAAE,KAAK,aAAa,GAAI,MAAK,qBAAqB,KAAK,IAAI,WAAW,IAAI,EAAE,KAAK,qBAAqB,KAAK,IAAI,iBAAiB,IAAI,IAAI,GAAG,GAAG,EAAE,MAAM,KAAK,eAAe,EAAE,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,EAAE,yBAAyB,MAAO,GAAE,YAAY,GAAG,GAAI,IAAE,GAAE,EAAE,EAAE,oBAAoB,EAAE,UAAU,EAAE,qBAAqB,EAAE,OAAO,KAAK,iBAAiB,EAAE,KAAK,KAAK,eAAe,EAAE,UAAU,KAAK,oBAAoB,KAAK,aAAa,CAAC,GAAG,IAAI,IAAE,mBAAmB,GAAG,GAAI,IAAE,GAAG,KAAK,oBAAoB,KAAK,IAAI,IAAG,KAAK,6BAA6B,GAAE,mBAAmB,CAAC,EAAE,GAAE,IAAI,KAAK,eAAe,EAAE,GAAI,IAAE,KAAK,kBAAkB,EAAC,EAAE,GAAG,IAAG,KAAK,qBAAqB,GAAE,GAAE,CAAC,EAAE,IAAG,CAAC,GAAE,YAAY,CAAC,GAAG,GAAE,QAAQ,GAAE,yBAAyB,EAAE,gBAAgB,CAAC,GAAE,uBAAuB,EAAE,gBAAgB,GAAI,IAAE,EAAE,kBAAkB,EAAE,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,EAAE,oBAAoB,EAAE,EAAE,yBAAyB,EAAE,EAAE,0BAA0B,EAAE,MAAM,GAAE,EAAE,MAAM,EAAC,CAAC,GAAE,eAAe,EAAE,OAAQ,IAAE,aAAa,EAAE,MAAM,KAAK,4BAA4B,GAAE,KAAK,IAAI,eAAe,KAAK,oBAAoB,EAAE,KAAK,EAAE,EAAC,GAAG,GAAE,eAAe,EAAE,OAAQ,IAAE,aAAa,EAAE,MAAM,KAAK,4BAA4B,GAAE,KAAK,IAAI,eAAe,KAAK,oBAAoB,EAAE,KAAK,EAAE,EAAC,GAAG,GAAE,MAAM,GAAE,eAAe,EAAE,OAAQ,IAAE,aAAa,EAAE,MAAM,KAAK,4BAA4B,GAAE,KAAK,IAAI,eAAe,KAAK,oBAAoB,EAAE,KAAK,EAAE,EAAC,GAAG,KAAK,qBAAqB,GAAE,GAAE,EAAE,yBAAyB,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,EAAE,EAAE,CAAC,GAAG,AAAS,IAAT,QAAY,EAAE,CAAC,KAAK,eAAe,KAAK,cAAc,SAAS,EAAE,QAAS,MAAK,cAAc,GAAI,YAAW,EAAE,MAAM,GAAG,OAAQ,GAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,GAAI,IAAE,EAAE,GAAG,qBAAqB,GAAG,MAAK,cAAc,GAAG,EAAE,EAAE,GAAE,mBAAmB,EAAE,GAAG,KAAK,cAAc,GAAG,EAAE,CAAC,KAAK,IAAI,WAAW,EAAE,KAAK,aAAa,EAAE,OAAQ,IAAE,EAAE,GAAE,EAAE,OAAO,KAAI,KAAK,YAAY,KAAK,cAAc,IAAG,EAAE,IAAG,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,qBAAqB,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,MAAM,kCAAkC,EAAE,eAAe,EAAE,EAAE,kCAAkC,EAAE,eAAe,EAAE,EAAE,iCAAiC,EAAE,eAAe,EAAE,EAAE,uBAAwB,GAAE,GAAG,GAAG,EAAE,mCAAmC,GAAI,MAAK,0BAA0B,EAAE,EAAE,2BAA2B,KAAK,IAAI,EAAE,KAAK,MAAM,aAAa,EAAE,CAAC,EAAE,EAAE,iCAAiC,EAAE,EAAE,EAAE,UAAU,0BAA0B,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,qBAAqB,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,IAAI,cAAc,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,4BAA4B,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,qBAAqB,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,IAAI,cAAc,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,oBAAoB,UAAU,CAAC,GAAG,KAAK,0BAA0B,CAAC,KAAK,0BAA0B,GAAG,OAAQ,GAAE,EAAE,EAAE,KAAK,MAAM,iBAAiB,IAAI,KAAK,wBAAwB,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,OAAQ,GAAE,KAAK,2BAA2B,OAAO,EAAE,EAAE,IAAI,GAAG,KAAK,MAAM,kBAAkB,CAAC,KAAK,2BAA2B,IAAI,KAAK,wBAAwB,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,eAAe,UAAU,CAAC,OAAQ,KAAK,MAAK,iBAAiB,CAAC,GAAI,GAAE,KAAK,iBAAiB,GAAG,qBAAqB,KAAK,uBAAuB,CAAC,CAAC,CAAC,KAAK,iBAAiB,EAAE,EAAE,EAAE,UAAU,QAAQ,UAAU,CAAC,KAAK,iBAAiB,KAAK,+BAA+B,KAAK,8BAA8B,QAAQ,KAAK,eAAgB,MAAK,gBAAgB,KAAK,aAAa,EAAE,KAAK,cAAc,MAAM,KAAK,mBAAoB,MAAK,gBAAgB,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,MAAM,KAAK,mBAAmB,KAAK,IAAI,kBAAkB,KAAK,iBAAiB,EAAE,KAAK,iBAAiB,KAAK,sBAAsB,KAAK,eAAe,GAAG,EAAE,EAAE,uBAAuB,KAAK,kBAAmB,MAAK,yBAA0B,MAAK,iBAAiB,oBAAoB,mBAAmB,KAAK,cAAc,EAAE,KAAK,iBAAiB,oBAAoB,uBAAuB,KAAK,kBAAkB,IAAI,KAAK,eAAe,KAAK,KAAK,gBAAgB,KAAK,KAAK,uBAAuB,GAAG,KAAK,iBAAiB,KAAK,KAAK,gBAAgB,KAAK,KAAK,qBAAqB,KAAK,EAAE,EAAE,aAAa,OAAQ,GAAE,EAAE,EAAE,KAAK,gBAAgB,EAAE,EAAE,OAAO,IAAK,EAAE,GAAG,OAAQ,EAAE,EAAE,UAAU,uBAAuB,SAAS,EAAE,CAAC,KAAK,kBAAkB,KAAK,iBAAiB,iBAAiB,mBAAmB,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,2BAA2B,SAAS,EAAE,CAAC,KAAK,kBAAkB,KAAK,iBAAiB,iBAAiB,uBAAuB,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,SAAS,UAAU,CAAC,MAAO,MAAK,IAAI,UAAU,EAAE,EAAE,UAAU,6BAA6B,UAAU,CAAC,MAAO,MAAK,cAAc,EAAE,KAAK,MAAM,iBAAiB,KAAK,wBAAwB,EAAE,EAAE,iBAAiB,CAAC,EAAE,EAAE,UAAU,iCAAiC,UAAU,CAAC,MAAO,MAAK,cAAc,EAAE,KAAK,MAAM,iBAAiB,KAAK,wBAAwB,EAAE,EAAE,sBAAsB,CAAC,EAAE,EAAE,UAAU,wBAAwB,SAAS,EAAE,CAAC,OAAQ,GAAE,KAAK,IAAI,EAAE,aAAa,EAAE,UAAU,CAAC,GAAI,GAAE,GAAG,EAAE,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,kCAAkC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,KAAK,qBAAqB,CAAC,EAAE,IAAI,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,mBAAmB,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,mBAAmB,EAAE,OAAO,EAAE,GAAI,IAAE,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,YAAY,EAAC,EAAE,EAAE,qBAAqB,EAAE,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAC,EAAE,GAAI,IAAE,EAAE,uBAAuB,EAAE,WAAW,EAAE,GAAI,GAAG,GAAE,GAAG,KAAI,EAAE,uBAAuB,EAAE,aAAa,EAAE,WAAY,GAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,EAAE,gBAAgB,EAAE,YAAY,IAAI,EAAE,GAAI,IAAE,EAAE,KAAK,GAAE,EAAE,cAAc,GAAE,GAAI,YAAW,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,GAAE,GAAE,EAAC,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,EAAE,kBAAkB,EAAC,EAAE,EAAE,gBAAgB,EAAE,YAAY,IAAI,EAAE,CAAC,GAAG,EAAE,aAAa,EAAE,UAAU,CAAC,MAAO,EAAC,EAAE,EAAE,UAAU,qBAAqB,SAAS,EAAE,CAAC,GAAG,AAAI,KAAK,gBAAT,EAAuB,CAAC,OAAO,OAAQ,GAAE,EAAE,kBAAkB,MAAO,MAAK,IAAI,UAAW,GAAE,EAAE,uBAAuB,MAAO,MAAK,IAAI,mBAAoB,GAAE,EAAE,0BAA0B,MAAO,MAAK,IAAI,kBAAmB,GAAE,EAAE,mCAAmC,MAAO,MAAK,IAAI,2BAA4B,GAAE,EAAE,mCAAmC,MAAO,MAAK,IAAI,2BAA4B,GAAE,EAAE,iCAAiC,MAAO,MAAK,IAAI,qBAAqB,MAAO,MAAK,IAAI,aAAa,CAAC,OAAO,OAAQ,GAAE,EAAE,iBAAiB,MAAO,MAAK,IAAI,SAAU,GAAE,EAAE,0BAA0B,MAAO,MAAK,IAAI,kBAAmB,GAAE,EAAE,kBAAkB,MAAO,MAAK,IAAI,UAAW,GAAE,EAAE,2BAA2B,MAAO,MAAK,IAAI,mBAAoB,GAAE,EAAE,gBAAgB,MAAO,MAAK,IAAI,QAAS,GAAE,EAAE,6BAA6B,MAAO,MAAK,IAAI,iBAAkB,GAAE,EAAE,kBAAkB,MAAO,MAAK,IAAI,UAAW,GAAE,EAAE,uBAAuB,MAAO,MAAK,IAAI,eAAgB,GAAE,EAAE,mCAAmC,MAAO,MAAK,IAAI,2BAA4B,GAAE,EAAE,mCAAmC,MAAO,MAAK,IAAI,2BAA4B,GAAE,EAAE,iCAAiC,MAAO,MAAK,IAAI,yBAA0B,GAAE,EAAE,wCAAwC,MAAO,MAAK,IAAI,gCAAiC,GAAE,EAAE,8BAA8B,MAAO,MAAK,IAAI,sBAAuB,GAAE,EAAE,yCAAyC,MAAO,MAAK,IAAI,iCAAkC,GAAE,EAAE,qCAAqC,MAAO,MAAK,IAAI,6BAA8B,GAAE,EAAE,2CAA2C,MAAO,MAAK,IAAI,+BAA+B,MAAO,MAAK,IAAI,aAAa,EAAE,EAAE,UAAU,mBAAmB,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,IAAI,KAAK,OAAO,OAAQ,GAAE,EAAE,oBAAoB,EAAE,KAAK,IAAI,MAAM,UAAW,GAAE,EAAE,wBAAwB,EAAE,KAAK,IAAI,UAAU,UAAW,GAAE,EAAE,8BAA8B,EAAE,KAAK,IAAI,gBAAgB,UAAW,GAAE,EAAE,kBAAkB,EAAE,KAAK,IAAI,IAAI,UAAW,GAAE,EAAE,iBAAiB,EAAE,KAAK,IAAI,GAAG,UAAW,GAAE,EAAE,kBAAkB,EAAE,KAAK,IAAI,IAAI,UAAW,GAAE,EAAE,mBAAmB,EAAE,KAAK,IAAI,KAAK,GAAG,KAAK,cAAc,EAAE,OAAO,OAAQ,GAAE,EAAE,0BAA0B,EAAE,KAAK,IAAI,YAAY,UAAW,GAAE,EAAE,yBAAyB,EAAE,KAAK,IAAI,WAAW,UAAW,GAAE,EAAE,0BAA0B,EAAE,KAAK,IAAI,YAAY,UAAW,GAAE,EAAE,2BAA2B,EAAE,KAAK,IAAI,aAAa,MAAO,EAAC,EAAE,EAAE,UAAU,kCAAkC,SAAS,EAAE,EAAE,CAAC,GAAG,AAAI,KAAK,gBAAT,EAAuB,CAAC,GAAG,AAAS,IAAT,OAAW,OAAO,OAAQ,GAAE,EAAE,oBAAoB,MAAO,MAAK,IAAI,UAAW,GAAE,EAAE,wBAAwB,MAAO,MAAK,IAAI,cAAe,GAAE,EAAE,8BAA8B,MAAO,MAAK,IAAI,oBAAqB,GAAE,EAAE,kBAAkB,MAAO,MAAK,IAAI,IAAI,MAAO,MAAK,IAAI,IAAI,CAAC,OAAO,OAAQ,GAAE,EAAE,iBAAiB,OAAO,OAAQ,GAAE,EAAE,kBAAkB,MAAO,MAAK,IAAI,aAAc,GAAE,EAAE,iBAAiB,MAAO,MAAK,IAAI,cAAe,GAAE,EAAE,kBAAkB,MAAO,MAAK,IAAI,eAAgB,GAAE,EAAE,0BAA0B,MAAO,MAAK,IAAI,QAAS,GAAE,EAAE,yBAAyB,MAAO,MAAK,IAAI,SAAU,GAAE,EAAE,0BAA0B,MAAO,MAAK,IAAI,UAAW,GAAE,EAAE,2BAA2B,MAAO,MAAK,IAAI,eAAe,MAAO,MAAK,IAAI,gBAAiB,GAAE,EAAE,0BAA0B,OAAO,OAAQ,GAAE,EAAE,kBAAkB,MAAO,MAAK,IAAI,OAAQ,GAAE,EAAE,iBAAiB,MAAO,MAAK,IAAI,QAAS,GAAE,EAAE,kBAAkB,MAAO,MAAK,IAAI,SAAU,GAAE,EAAE,mBAAmB,MAAO,MAAK,IAAI,UAAW,GAAE,EAAE,0BAA0B,MAAO,MAAK,IAAI,SAAU,GAAE,EAAE,yBAAyB,MAAO,MAAK,IAAI,UAAW,GAAE,EAAE,0BAA0B,MAAO,MAAK,IAAI,WAAY,GAAE,EAAE,2BAA2B,MAAO,MAAK,IAAI,YAAa,GAAE,EAAE,oBAAoB,MAAO,MAAK,IAAI,UAAW,GAAE,EAAE,wBAAwB,MAAO,MAAK,IAAI,cAAe,GAAE,EAAE,8BAA8B,MAAO,MAAK,IAAI,wBAAwB,MAAO,MAAK,IAAI,UAAW,GAAE,EAAE,kBAAkB,OAAO,OAAQ,GAAE,EAAE,0BAA0B,MAAO,MAAK,IAAI,SAAU,GAAE,EAAE,yBAAyB,MAAO,MAAK,IAAI,UAAW,GAAE,EAAE,0BAA0B,MAAO,MAAK,IAAI,WAAY,GAAE,EAAE,mCAAmC,MAAO,MAAK,IAAI,YAAa,GAAE,EAAE,2BAA2B,OAAO,OAAQ,GAAE,EAAE,0BAA0B,MAAO,MAAK,IAAI,UAAW,GAAE,EAAE,yBAAyB,MAAO,MAAK,IAAI,WAAY,GAAE,EAAE,0BAA0B,MAAO,MAAK,IAAI,YAAa,GAAE,EAAE,mCAAmC,MAAO,MAAK,IAAI,aAAc,GAAE,EAAE,gBAAgB,OAAO,OAAQ,GAAE,EAAE,0BAA0B,MAAO,MAAK,IAAI,SAAU,GAAE,EAAE,yBAAyB,MAAO,MAAK,IAAI,UAAW,GAAE,EAAE,0BAA0B,MAAO,MAAK,IAAI,WAAY,GAAE,EAAE,mCAAmC,MAAO,MAAK,IAAI,YAAa,GAAE,EAAE,6BAA6B,OAAO,OAAQ,GAAE,EAAE,0BAA0B,MAAO,MAAK,IAAI,UAAW,GAAE,EAAE,yBAAyB,MAAO,MAAK,IAAI,WAAY,GAAE,EAAE,0BAA0B,MAAO,MAAK,IAAI,YAAa,GAAE,EAAE,mCAAmC,MAAO,MAAK,IAAI,aAAc,GAAE,EAAE,kBAAkB,OAAO,OAAQ,GAAE,EAAE,kBAAkB,MAAO,MAAK,IAAI,SAAU,GAAE,EAAE,iBAAiB,MAAO,MAAK,IAAI,UAAW,GAAE,EAAE,kBAAkB,MAAO,MAAK,IAAI,WAAY,GAAE,EAAE,2BAA2B,MAAO,MAAK,IAAI,YAAa,GAAE,EAAE,uBAAuB,OAAO,OAAQ,GAAE,EAAE,kBAAkB,MAAO,MAAK,IAAI,SAAU,GAAE,EAAE,iBAAiB,MAAO,MAAK,IAAI,UAAW,GAAE,EAAE,kBAAkB,MAAO,MAAK,IAAI,WAAY,GAAE,EAAE,2BAA2B,MAAO,MAAK,IAAI,YAAa,GAAE,EAAE,iCAAiC,MAAO,MAAK,IAAI,WAAY,GAAE,EAAE,yCAAyC,MAAO,MAAK,IAAI,mBAAoB,GAAE,EAAE,qCAAqC,MAAO,MAAK,IAAI,YAAa,GAAE,EAAE,mCAAmC,MAAO,MAAK,IAAI,UAAW,GAAE,EAAE,mCAAmC,MAAO,MAAK,IAAI,YAAa,GAAE,EAAE,wCAAwC,OAAO,OAAQ,GAAE,EAAE,mBAAmB,MAAO,MAAK,IAAI,aAAc,GAAE,EAAE,2BAA2B,MAAO,MAAK,IAAI,mBAAmB,MAAO,MAAK,IAAI,UAAU,MAAO,MAAK,IAAI,KAAK,EAAE,EAAE,UAAU,gCAAgC,SAAS,EAAE,CAAC,MAAO,KAAI,EAAE,EAAE,kBAAkB,KAAK,IAAI,QAAQ,IAAI,EAAE,EAAE,uBAAuB,KAAK,IAAI,QAAQ,KAAK,IAAI,KAAK,EAAE,EAAE,UAAU,UAAU,SAAS,EAAE,EAAE,EAAE,EAAE,GAAE,GAAE,CAAC,GAAI,IAAE,KAAK,GAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,EAAE,GAAE,EAAC,EAAE,MAAO,MAAK,gBAAgB,KAAK,EAAC,EAAE,GAAE,qBAAqB,IAAK,SAAS,GAAE,CAAC,GAAE,gBAAgB,OAAO,GAAE,gBAAgB,QAAQ,EAAC,EAAE,CAAC,CAAC,GAAI,EAAC,EAAE,EAAE,mBAAmB,SAAS,EAAE,EAAE,EAAE,EAAE,GAAE,GAAE,CAAC,KAAM,GAAE,EAAE,WAAW,WAAW,CAAC,EAAE,EAAE,UAAU,WAAW,SAAS,EAAE,EAAE,EAAE,EAAE,GAAE,CAAC,AAAS,KAAT,QAAa,IAAE,IAAI,GAAI,IAAE,GAAE,EAAE,EAAE,GAAE,GAAE,KAAK,IAAI,KAAK,KAAK,IAAI,IAAI,GAAE,GAAI,YAAW,EAAE,EAAE,EAAC,EAAE,MAAO,MAAK,IAAI,WAAW,EAAE,EAAE,EAAE,EAAE,GAAE,KAAK,IAAI,cAAc,EAAC,EAAE,EAAC,EAAE,OAAO,eAAe,EAAE,cAAc,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,aAAa,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,YAAY,UAAU,CAAC,GAAG,AAAO,KAAK,6BAAZ,KAAuC,MAAM,CAAC,KAAK,2BAA2B,GAAG,AAAO,KAAK,eAAZ,KAAyB,GAAG,CAAC,GAAI,GAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,OAAO,GAAG,EAAE,WAAW,oBAAoB,EAAE,KAAK,aAAa,AAAM,GAAN,MAAS,CAAC,CAAC,OAAO,qBAAqB,MAAC,CAAS,KAAK,aAAa,EAAE,CAAC,MAAO,MAAK,YAAY,EAAE,OAAO,eAAe,EAAE,4BAA4B,CAAC,IAAI,UAAU,CAAC,GAAG,AAAO,KAAK,6BAAZ,KAAuC,GAAG,CAAC,GAAI,GAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,QAAQ,CAAC,6BAA6B,EAAE,CAAC,GAAG,EAAE,WAAW,qBAAqB,CAAC,6BAA6B,EAAE,CAAC,EAAE,KAAK,2BAA2B,CAAC,CAAC,MAAC,CAAS,KAAK,2BAA2B,EAAE,CAAC,MAAO,MAAK,0BAA0B,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,WAAW,SAAS,EAAE,CAAC,MAAO,KAAI,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,SAAS,SAAS,EAAE,CAAC,MAAO,IAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAG,IAAG,GAAG,IAAK,IAAG,EAAE,EAAE,EAAE,WAAW,SAAS,EAAE,CAAC,GAAI,GAAE,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,MAAO,GAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,iBAAiB,SAAS,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,OAAO,AAAS,IAAT,QAAa,GAAE,EAAE,EAAE,mBAAmB,OAAQ,GAAE,EAAE,gBAAgB,EAAE,EAAE,SAAS,CAAC,EAAE,UAAW,GAAE,EAAE,kBAAkB,EAAE,EAAE,WAAW,CAAC,EAAE,UAAW,GAAE,EAAE,0BAA0B,EAAE,EAAE,WAAW,CAAC,EAAE,MAAO,MAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,cAAc,SAAS,EAAE,EAAE,CAAC,MAAO,GAAE,EAAE,sBAAuB,IAAI,GAAE,QAAQ,EAAE,0BAA0B,EAAE,0BAA0B,CAAC,EAAE,EAAE,sBAAsB,EAAE,sBAAsB,CAAC,EAAE,EAAE,wBAAwB,EAAE,wBAAwB,CAAC,EAAE,EAAE,4BAA4B,EAAE,4BAA4B,CAAC,EAAE,EAAE,yBAAyB,EAAE,yBAAyB,CAAC,EAAE,EAAE,uBAAuB,EAAE,uBAAuB,CAAC,EAAE,OAAO,WAAW,EAAE,EAAE,GAAG,AAAa,MAAO,uBAApB,IAA0C,sBAAsB,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,gBAAgB,UAAU,CAAC,MAAO,MAAK,kBAAkB,KAAK,iBAAiB,cAAc,KAAK,iBAAiB,cAAc,QAAQ,EAAE,EAAE,cAAc,CAAC,CAAC,IAAI,cAAc,QAAQ,yBAAyB,kBAAkB,IAAI,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,aAAa,QAAQ,KAAK,kBAAkB,KAAK,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,aAAa,QAAQ,KAAK,kBAAkB,KAAK,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,qBAAqB,QAAQ,KAAK,kBAAkB,KAAK,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,qBAAqB,QAAQ,KAAK,kBAAkB,KAAK,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,qBAAqB,QAAQ,KAAK,kBAAkB,KAAK,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,oBAAoB,QAAQ,KAAK,kBAAkB,KAAK,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,oBAAoB,QAAQ,KAAK,kBAAkB,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,gBAAgB,GAAG,EAAE,kBAAkB,KAAK,EAAE,aAAa,KAAK,EAAE,2BAA2B,KAAK,CAAC,GAAG,EAAE,SAAS,GAAE,EAAE,EAAE,CAAc,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,GAAI,GAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,AAAC,UAAS,EAAE,CAAC,EAAE,EAAE,QAAQ,GAAG,UAAU,EAAE,EAAE,IAAI,GAAG,MAAM,EAAE,EAAE,KAAK,GAAG,OAAO,EAAE,EAAE,IAAI,GAAG,MAAM,EAAE,EAAE,QAAQ,GAAG,UAAU,EAAE,EAAE,aAAa,GAAG,eAAe,EAAE,EAAE,kBAAkB,GAAG,oBAAoB,EAAE,EAAE,KAAK,GAAG,OAAO,EAAE,EAAE,QAAQ,GAAG,UAAU,EAAE,EAAE,gBAAgB,GAAG,kBAAkB,EAAE,EAAE,MAAM,IAAI,QAAQ,EAAE,EAAE,WAAW,IAAI,aAAa,EAAE,EAAE,MAAM,IAAI,QAAQ,EAAE,EAAE,YAAY,IAAI,aAAa,GAAE,GAAI,GAAE,GAAG,EAAE,GAAI,GAAE,UAAU,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,KAAK,QAAQ,GAAG,KAAK,OAAO,GAAG,KAAK,KAAK,GAAG,KAAK,UAAU,GAAG,KAAK,YAAY,GAAG,KAAK,IAAI,GAAG,KAAK,aAAa,GAAG,KAAK,gBAAgB,GAAG,KAAK,QAAQ,EAAE,KAAK,KAAK,GAAG,KAAK,OAAO,GAAG,KAAK,mBAAmB,GAAI,GAAE,EAAE,KAAK,MAAM,EAAE,KAAK,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,KAAK,QAAQ,GAAG,KAAK,cAAc,GAAG,KAAK,mBAAmB,GAAG,KAAK,QAAQ,EAAE,QAAQ,KAAK,QAAQ,KAAK,KAAK,YAAY,KAAK,KAAK,iBAAiB,KAAK,KAAK,sBAAsB,KAAK,KAAK,MAAM,EAAE,KAAK,WAAW,GAAG,KAAK,OAAO,KAAK,KAAK,eAAe,KAAK,KAAK,gBAAgB,KAAK,KAAK,aAAa,KAAK,KAAK,oBAAoB,KAAK,KAAK,iBAAiB,KAAK,KAAK,kBAAkB,KAAK,KAAK,aAAa,KAAK,KAAK,cAAc,KAAK,KAAK,uBAAuB,KAAK,KAAK,aAAa,KAAK,KAAK,aAAa,KAAK,KAAK,aAAa,KAAK,KAAK,iCAAiC,KAAK,KAAK,YAAY,GAAG,KAAK,aAAa,KAAK,KAAK,uBAAuB,GAAG,KAAK,qBAAqB,GAAG,KAAK,oBAAoB,EAAE,KAAK,qBAAqB,KAAK,KAAK,oBAAoB,EAAE,KAAK,qBAAqB,EAAE,KAAK,mBAAmB,KAAK,KAAK,0BAA0B,KAAK,KAAK,gBAAgB,KAAK,KAAK,eAAe,KAAK,KAAK,eAAe,KAAK,KAAK,QAAQ,GAAG,KAAK,mBAAmB,GAAG,KAAK,mBAAmB,KAAK,KAAK,cAAc,KAAK,KAAK,YAAY,EAAE,KAAK,YAAY,KAAK,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,GAAI,MAAK,cAAc,EAAE,iBAAiB,CAAC,MAAO,GAAE,UAAU,UAAU,UAAU,CAAC,MAAO,MAAK,OAAO,EAAE,OAAO,eAAe,EAAE,UAAU,SAAS,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,OAAO,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,oBAAoB,UAAU,CAAC,KAAK,aAAa,EAAE,EAAE,UAAU,WAAW,SAAS,EAAE,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,GAAG,KAAK,MAAM,EAAE,KAAK,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,KAAK,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,SAAS,UAAU,CAAC,GAAI,GAAE,EAAE,EAAE,KAAK,OAAO,KAAK,QAAQ,GAAG,KAAK,uBAAuB,KAAK,KAAK,aAAa,KAAK,KAAK,aAAa,KAAK,KAAK,iCAAiC,KAAK,KAAK,YAAa,GAAE,KAAK,WAAY,GAAE,IAAI,MAAO,KAAK,GAAE,KAAK,QAAQ,cAAc,AAAQ,GAAE,KAAK,gBAAf,MAA8B,AAAS,IAAT,OAAW,EAAE,KAAK,IAAI,CAAC,KAAK,gBAAgB,KAAK,QAAQ,KAAK,KAAK,aAAc,UAAU,CAAC,EAAE,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAG,KAAK,KAAK,QAAQ,OAAO,KAAK,MAAM,OAAQ,GAAE,IAAI,MAAO,GAAE,KAAK,QAAQ,iBAAiB,KAAK,YAAY,KAAK,UAAU,KAAK,WAAW,KAAK,OAAO,KAAK,gBAAgB,KAAK,QAAQ,KAAK,aAAa,KAAK,YAAY,GAAG,YAAY,IAAI,EAAE,IAAK,MAAK,QAAQ,QAAS,GAAE,MAAM,MAAO,GAAE,KAAK,QAAQ,mBAAmB,KAAK,YAAY,KAAK,UAAU,KAAK,WAAW,KAAK,UAAU,KAAK,OAAO,KAAK,gBAAgB,KAAK,QAAQ,KAAK,aAAa,KAAK,YAAY,GAAG,YAAY,IAAI,EAAE,IAAK,MAAK,QAAQ,QAAS,GAAE,WAAW,MAAO,GAAE,KAAK,QAAQ,wBAAwB,KAAK,YAAY,KAAK,UAAU,KAAK,WAAW,KAAK,UAAU,KAAK,OAAO,KAAK,gBAAgB,KAAK,QAAQ,KAAK,aAAa,KAAK,YAAY,GAAG,YAAY,IAAI,EAAE,IAAK,MAAK,QAAQ,QAAS,GAAE,QAAQ,MAAO,GAAE,KAAK,QAAQ,qBAAqB,KAAK,UAAU,KAAK,WAAW,KAAK,gBAAgB,KAAK,YAAY,GAAG,YAAY,IAAI,EAAE,IAAK,MAAK,QAAQ,qBAAqB,KAAK,KAAK,QAAQ,qBAAqB,KAAK,QAAQ,OAAO,OAAO,EAAE,MAAO,GAAE,aAAa,GAAI,GAAE,GAAI,GAAE,EAAE,GAAG,EAAE,oBAAoB,KAAK,qBAAqB,EAAE,gBAAgB,KAAK,gBAAgB,EAAE,sBAAsB,KAAK,uBAAuB,EAAE,aAAa,KAAK,aAAa,EAAE,KAAK,KAAK,KAAK,KAAK,OAAO,EAAE,KAAK,QAAQ,8BAA8B,KAAK,MAAM,CAAC,MAAM,CAAC,GAAI,GAAE,CAAC,MAAM,KAAK,MAAM,OAAO,KAAK,OAAO,OAAO,KAAK,UAAU,KAAK,MAAM,MAAM,EAAE,EAAE,KAAK,QAAQ,0BAA0B,EAAE,CAAC,CAAC,CAAC,MAAO,GAAE,YAAY,IAAI,EAAE,IAAK,MAAK,QAAQ,QAAS,GAAE,MAAM,GAAI,GAAE,CAAC,kBAAkB,KAAK,eAAe,EAAE,EAAE,8BAA8B,mBAAmB,KAAK,oBAAoB,gBAAgB,KAAK,uBAAuB,OAAO,KAAK,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,MAAM,OAAO,KAAK,OAAO,OAAO,KAAK,UAAU,KAAK,MAAM,MAAM,EAAE,MAAO,GAAE,KAAK,QAAQ,0BAA0B,EAAE,CAAC,GAAG,YAAY,IAAI,EAAE,IAAK,MAAK,QAAQ,QAAS,GAAE,KAAK,MAAO,KAAK,GAAE,KAAK,QAAQ,kBAAkB,KAAK,IAAI,KAAK,KAAK,OAAO,CAAC,KAAK,gBAAiB,UAAU,CAAC,EAAE,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAG,KAAK,KAAK,OAAO,KAAK,UAAU,OAAQ,GAAE,QAAQ,MAAO,GAAE,KAAK,QAAQ,qBAAqB,KAAK,iBAAiB,KAAK,MAAM,KAAK,OAAO,KAAK,KAAK,KAAK,gBAAgB,KAAK,QAAQ,KAAK,aAAa,KAAK,YAAY,GAAG,YAAY,IAAI,EAAE,IAAK,MAAK,QAAQ,QAAS,GAAE,YAAY,MAAO,GAAE,KAAK,QAAQ,qBAAqB,KAAK,KAAK,MAAM,KAAK,OAAO,KAAK,KAAK,KAAK,gBAAgB,KAAK,QAAQ,KAAK,aAAa,KAAK,YAAY,EAAE,IAAK,GAAE,iBAAiB,EAAE,KAAK,sBAAsB,KAAK,qBAAqB,KAAK,oBAAoB,KAAK,oBAAoB,EAAE,KAAM,UAAU,CAAC,EAAE,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAS,GAAE,gBAAgB,MAAO,KAAM,IAAE,KAAK,QAAQ,6BAA6B,KAAK,IAAI,KAAK,KAAK,oBAAoB,KAAK,qBAAsB,SAAS,EAAE,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAG,KAAK,KAAK,OAAO,KAAK,UAAU,GAAG,qBAAqB,KAAK,sBAAsB,EAAE,EAAE,UAAU,YAAY,SAAS,EAAE,CAAC,EAAE,cAAc,KAAK,cAAc,EAAE,QAAQ,KAAK,QAAQ,KAAK,cAAe,GAAE,aAAa,KAAK,cAAc,KAAK,qBAAsB,GAAE,oBAAoB,KAAK,qBAAqB,EAAE,qBAAqB,KAAK,qBAAqB,KAAK,iBAAkB,GAAE,iBAAiB,EAAE,gBAAgB,UAAU,EAAE,gBAAgB,KAAK,iBAAiB,KAAK,gBAAiB,GAAE,gBAAgB,EAAE,eAAe,UAAU,EAAE,eAAe,KAAK,gBAAgB,KAAK,gBAAiB,GAAE,gBAAgB,EAAE,eAAe,UAAU,EAAE,eAAe,KAAK,gBAAgB,KAAK,oBAAqB,GAAE,oBAAoB,EAAE,mBAAmB,UAAU,EAAE,mBAAmB,KAAK,oBAAoB,GAAI,GAAE,EAAE,KAAK,QAAQ,yBAAyB,AAAM,GAAE,EAAE,QAAQ,IAAI,KAAtB,IAA0B,EAAE,OAAO,EAAE,CAAC,EAAE,AAAM,GAAE,EAAE,QAAQ,CAAC,KAAnB,IAAuB,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,UAAU,QAAQ,UAAU,CAAC,KAAK,eAAgB,MAAK,cAAc,AAAI,KAAK,cAAT,GAAuB,MAAK,QAAQ,gBAAgB,IAAI,EAAE,KAAK,cAAc,MAAM,EAAE,EAAE,iBAAiB,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,yBAAyB,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,GAAE,EAAE,EAAE,CAAc,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,GAAI,GAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,GAAE,EAAE,EAAE,CAAc,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,EAAC,GAAI,GAAI,GAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,MAAM,KAAK,MAAM,GAAG,KAAK,SAAS,KAAK,KAAK,kBAAkB,KAAK,KAAK,gBAAgB,GAAG,KAAK,YAAY,GAAG,KAAK,WAAW,GAAI,OAAM,KAAK,QAAQ,GAAG,KAAK,QAAQ,KAAK,KAAK,WAAW,GAAG,KAAK,iBAAiB,GAAG,KAAK,SAAS,GAAG,KAAK,iBAAiB,GAAG,KAAK,gBAAgB,GAAG,KAAK,eAAe,GAAG,KAAK,iBAAiB,KAAK,KAAK,OAAO,GAAG,KAAK,YAAY,KAAK,KAAK,UAAU,KAAK,KAAK,aAAa,EAAE,EAAE,WAAW,KAAK,wBAAwB,EAAE,KAAK,+BAA+B,GAAG,KAAK,qBAAqB,GAAG,KAAK,6BAA6B,KAAK,KAAK,QAAQ,GAAG,KAAK,oBAAoB,GAAI,GAAE,EAAE,KAAK,mBAAmB,KAAK,KAAK,WAAW,GAAI,OAAM,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,OAAO,GAAG,EAAE,EAAE,iBAAiB,KAAK,SAAS,KAAK,OAAO,cAAc,KAAK,YAAY,CAAC,MAAO,GAAE,mBAAmB,SAAS,EAAE,EAAE,CAAC,KAAK,kBAAkB,GAAG,CAAC,EAAE,EAAE,UAAU,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,kBAAkB,GAAG,MAAO,GAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,eAAe,EAAE,UAAU,iBAAiB,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,iBAAiB,CAAC,CAAC,KAAK,aAAa,KAAK,YAAY,cAAc,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,gBAAgB,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,WAAW,UAAU,CAAC,MAAO,MAAK,WAAW,EAAE,OAAO,eAAe,EAAE,UAAU,SAAS,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,WAAW,EAAE,IAAI,SAAS,EAAE,CAAC,GAAG,KAAK,cAAc,EAAE,CAAC,GAAI,GAAE,KAAK,YAAY,GAAG,KAAK,aAAa,AAAS,KAAK,YAAY,YAA1B,QAAqC,AAAO,KAAK,YAAY,YAAxB,KAAkC,CAAC,GAAI,GAAE,KAAK,YAAY,UAAU,QAAQ,IAAI,EAAE,AAAK,IAAL,IAAQ,KAAK,YAAY,UAAU,OAAO,EAAE,CAAC,EAAE,GAAG,KAAK,aAAa,KAAK,sBAAsB,CAAC,KAAK,YAAY,EAAE,KAAK,aAAc,CAAS,KAAK,YAAY,YAA1B,QAAqC,AAAO,KAAK,YAAY,YAAxB,MAAoC,MAAK,YAAY,UAAU,GAAI,QAAO,KAAK,YAAY,UAAU,KAAK,IAAI,EAAE,GAAG,KAAK,6BAA6B,KAAK,yBAAyB,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,qBAAqB,UAAU,CAAC,AAAK,KAAK,uBAAV,IAAiC,MAAK,qBAAqB,KAAK,OAAO,UAAU,OAAO,KAAK,OAAO,UAAU,KAAK,IAAI,EAAE,EAAE,EAAE,UAAU,0BAA0B,UAAU,CAAC,GAAG,AAAK,KAAK,uBAAV,GAA+B,CAAC,GAAI,GAAE,KAAK,OAAO,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,sBAAsB,EAAE,GAAG,EAAE,KAAK,sBAAsB,qBAAqB,KAAK,qBAAqB,KAAK,OAAO,UAAU,MAAM,KAAK,qBAAqB,EAAE,CAAC,EAAE,OAAO,eAAe,EAAE,UAAU,8BAA8B,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,6BAA6B,KAAK,6BAA6B,KAAK,OAAO,2BAA2B,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,6BAA6B,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,aAAa,UAAU,CAAC,MAAM,MAAM,EAAE,OAAO,eAAe,EAAE,UAAU,YAAY,CAAC,IAAI,SAAS,EAAE,CAAC,KAAK,oBAAoB,KAAK,oBAAoB,OAAO,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,KAAK,oBAAoB,IAAI,CAAC,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,SAAS,UAAU,CAAC,MAAO,MAAK,MAAM,EAAE,EAAE,UAAU,UAAU,UAAU,CAAC,MAAO,MAAK,OAAO,WAAW,EAAE,EAAE,UAAU,YAAY,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,MAAO,AAAS,KAAT,QAAa,GAAE,IAAI,AAAK,KAAK,WAAW,QAAQ,CAAC,IAA9B,IAAkC,GAAE,OAAO,KAAK,OAAO,WAAW,CAAC,EAAE,KAAK,OAAO,uBAAuB,QAAS,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC,GAAI,EAAE,OAAO,IAAI,EAAE,KAAK,WAAW,KAAK,CAAC,GAAG,IAAI,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,CAAC,GAAI,GAAE,KAAK,WAAW,QAAQ,CAAC,EAAE,MAAM,AAAK,KAAL,IAAS,MAAK,WAAW,GAAG,SAAS,KAAK,WAAW,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,eAAe,EAAE,UAAU,YAAY,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,UAAU,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,kBAAkB,SAAS,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,WAAW,EAAE,EAAE,OAAO,IAAI,CAAC,GAAI,GAAE,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,MAAO,EAAC,CAAC,MAAO,KAAI,EAAE,EAAE,UAAU,eAAe,UAAU,CAAC,MAAO,MAAK,mBAAmB,KAAK,OAAO,eAAe,KAAK,qBAAqB,KAAK,YAAY,EAAE,EAAE,UAAU,2BAA2B,UAAU,CAAC,MAAO,MAAK,gCAAiC,MAAK,+BAA+B,GAAG,KAAK,wBAAwB,KAAK,aAAa,eAAe,KAAK,uBAAuB,EAAE,OAAO,eAAe,EAAE,UAAU,uBAAuB,CAAC,IAAI,UAAU,CAAC,MAAO,MAAK,YAAY,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,UAAU,WAAW,UAAU,CAAC,KAAK,OAAO,GAAG,KAAK,OAAO,OAAO,MAAM,EAAE,EAAE,UAAU,YAAY,SAAS,EAAE,CAAC,CAAC,GAAG,KAAK,kBAAmB,MAAK,OAAO,OAAO,KAAK,OAAO,KAAK,eAAe,EAAE,EAAE,UAAU,4BAA4B,SAAS,EAAE,EAAE,CAAC,MAA0B,MAAK,OAAO,KAAK,OAAO,4BAA4B,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,aAAa,SAAS,EAAE,GAAG,EAAE,UAAU,gBAAgB,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,UAAU,sBAAsB,UAAU,CAAC,KAAK,aAAc,MAAK,gBAAgB,KAAK,YAAY,eAAe,EAAE,EAAE,UAAU,yBAAyB,UAAU,CAAC,MAAM,CAAC,KAAK,aAAa,KAAK,kBAAkB,KAAK,YAAY,gBAAgB,KAAK,YAAY,gBAAgB,EAAE,EAAE,UAAU,eAAe,UAAU,CAAC,MAAO,MAAK,OAAO,QAAQ,KAAK,YAAa,MAAK,OAAO,OAAO,KAAK,YAAY,IAAI,CAAE,MAAK,aAAa,CAAC,KAAK,6BAA6B,KAAK,iBAAiB,EAAE,EAAE,UAAU,QAAQ,SAAS,EAAE,CAAC,MAA0B,MAAK,QAAQ,EAAE,EAAE,UAAU,UAAU,SAAS,EAAE,CAAC,MAAO,AAAS,KAAT,QAAa,GAAE,IAAI,AAAK,IAAL,GAAO,KAAK,WAAW,CAAC,CAAC,KAAK,YAAY,KAAK,gBAAgB,EAAE,EAAE,UAAU,wBAAwB,UAAU,CAAC,KAAK,iBAAiB,CAAC,KAAK,aAAa,KAAK,YAAY,YAAY,KAAK,WAAW,KAAK,UAAU,QAAS,SAAS,EAAE,CAAC,EAAE,yBAAyB,EAAG,EAAE,EAAE,UAAU,WAAW,SAAS,EAAE,CAAC,KAAK,WAAW,EAAE,KAAK,yBAAyB,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,QAAS,MAAK,SAAS,GAAG,KAAK,OAAO,eAAe,CAAC,EAAE,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,EAAE,EAAE,CAAC,GAAG,AAAS,IAAT,QAAa,GAAE,IAAI,KAAK,UAAU,OAAQ,GAAE,EAAE,EAAE,KAAK,UAAU,OAAO,IAAI,CAAC,GAAI,GAAE,KAAK,UAAU,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,GAAI,OAAM,MAAO,MAAK,gBAAgB,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,GAAG,MAAO,MAAK,gBAAgB,EAAE,EAAG,SAAS,EAAE,CAAC,MAAO,EAAC,GAAG,EAAE,CAAC,IAAI,AAAS,EAAE,kBAAX,MAA0B,GAAI,CAAC,EAAE,EAAE,UAAU,YAAY,SAAS,EAAE,EAAE,CAAC,MAAO,AAAS,KAAT,QAAa,GAAE,IAAI,KAAK,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,UAAU,SAAS,EAAE,CAAC,IAAI,KAAK,UAAW,GAAG,MAAK,SAAS,KAAK,QAAQ,IAAI,EAAE,KAAK,SAAS,IAAI,KAAK,SAAS,GAAG,EAAE,EAAE,UAAU,mBAAmB,SAAS,EAAE,CAAC,OAAQ,GAAE,EAAE,EAAE,KAAK,WAAW,OAAO,IAAI,CAAC,GAAI,GAAE,KAAK,WAAW,GAAG,GAAG,EAAE,OAAO,EAAE,MAAO,EAAC,CAAC,MAAO,KAAI,EAAE,EAAE,UAAU,qBAAqB,SAAS,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,QAAQ,GAAG,CAAC,KAAK,QAAQ,GAAG,EAAE,uBAAuB,EAAE,EAAE,CAAC,EAAE,OAAQ,GAAE,EAAE,EAAE,KAAK,WAAW,OAAO,EAAE,EAAE,IAAI,KAAK,WAAW,IAAI,KAAK,WAAW,GAAG,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,qBAAqB,SAAS,EAAE,EAAE,CAAC,AAAS,IAAT,QAAa,GAAE,IAAI,OAAQ,GAAE,EAAE,EAAE,KAAK,WAAW,OAAO,EAAE,EAAE,IAAI,KAAK,WAAW,IAAI,KAAK,WAAW,GAAG,YAAY,EAAE,CAAC,EAAE,KAAK,QAAQ,GAAG,IAAI,EAAE,EAAE,UAAU,kBAAkB,SAAS,EAAE,CAAC,MAAO,MAAK,QAAQ,IAAI,IAAI,EAAE,EAAE,UAAU,mBAAmB,UAAU,CAAC,GAAI,GAAE,EAAE,GAAG,IAAI,IAAK,MAAK,QAAQ,EAAE,KAAK,KAAK,QAAQ,EAAE,EAAE,MAAO,EAAC,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,KAAK,kBAAkB,CAAC,EAAE,MAAO,GAAE,KAAK,OAAO,eAAe,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,yBAAyB,UAAU,CAAC,GAAI,GAAE,GAAG,OAAQ,KAAK,MAAK,QAAQ,CAAC,GAAI,GAAE,KAAK,QAAQ,GAAG,GAAG,EAAE,CAAC,GAAI,GAAE,GAAG,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAO,EAAC,EAAE,EAAE,UAAU,mBAAmB,SAAS,EAAE,CAAC,MAAO,MAAK,cAAe,MAAK,aAAa,EAAE,EAAE,YAAY,KAAK,YAAY,EAAE,EAAE,UAAU,QAAQ,SAAS,EAAE,EAAE,CAAC,GAAG,AAAS,IAAT,QAAa,GAAE,IAAI,KAAK,YAAY,GAAG,CAAC,EAAE,OAAQ,GAAE,EAAE,EAAE,KAAK,eAAe,EAAE,EAAE,EAAE,EAAE,OAAO,IAAK,EAAE,GAAG,QAAQ,EAAE,CAAC,EAAE,KAAK,OAAO,KAAK,OAAO,KAAK,KAAK,4BAA4B,KAAK,oBAAoB,gBAAgB,IAAI,EAAE,KAAK,oBAAoB,QAAQ,OAAQ,GAAE,EAAE,EAAE,KAAK,WAAW,EAAE,EAAE,OAAO,IAAK,EAAE,GAAG,SAAS,KAAK,WAAW,EAAE,EAAE,EAAE,qBAAqB,SAAS,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,OAAQ,GAAE,EAAE,EAAE,EAAE,OAAO,OAAO,IAAI,CAAC,GAAI,GAAE,EAAE,OAAO,GAAG,EAAE,qBAAqB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,4BAA4B,SAAS,EAAE,EAAE,CAAC,GAAI,GAAE,EAA0G,GAAxG,AAAS,IAAT,QAAa,GAAE,IAAI,AAAS,IAAT,QAAa,GAAE,MAAM,KAAK,WAAW,oBAAoB,KAAK,mBAAmB,EAAE,EAAK,KAAK,iBAAiB,KAAK,UAAU,CAAC,GAAI,GAAE,KAAK,kBAAkB,EAAE,EAAE,YAAY,aAAa,QAAQ,EAAE,EAAE,YAAY,aAAa,OAAO,KAAM,GAAE,GAAI,GAAE,EAAE,OAAO,UAAU,OAAO,UAAU,OAAO,SAAS,EAAE,EAAE,GAAI,GAAE,EAAE,CAAC,OAAO,UAAU,CAAC,OAAO,UAAU,CAAC,OAAO,SAAS,EAAE,GAAG,EAAE,OAAQ,GAAE,EAAE,EAAE,KAAK,eAAe,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,GAAI,GAAE,EAAE,GAAG,GAAG,EAAE,mBAAmB,EAAE,EAAG,EAAC,GAAG,EAAE,CAAC,IAAI,EAAE,iBAAiB,AAAI,EAAE,qBAAN,EAAyB,CAAC,GAAI,GAAE,EAAE,kBAAkB,YAAY,EAAE,EAAE,aAAa,EAAE,EAAE,aAAa,EAAE,EAAE,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,uBAAuB,SAAS,EAAE,EAAE,EAAE,CAAC,KAAM,GAAE,EAAE,WAAW,gBAAgB,CAAC,EAAE,EAAE,kBAAkB,GAAG,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,OAAO,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,KAAK,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,WAAW,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,QAAQ,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,WAAW,MAAM,EAAE,CAAC,GAAG,EAAE,SAAS,GAAE,EAAE,EAAE,CAAc,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,GAAC,GAAI,EAAE,EAAE,EAAE,IAAK,UAAU,CAAC,MAAO,GAAC,GAAI,GAAI,GAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAA4wD,EAAE,EAAE,qBAAqB,2BAA2B,EAAE,GAAI,GAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAi/B,EAAE,EAAE,qBAAqB,sBAAsB,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAI,GAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAk0W,EAAE,EAAE,aAAa,mBAAmB,EAAE,GAAI,GAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A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SAAS,EAAE,CAAC,SAAS,SAAS,SAAS,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,UAAU,QAAQ,QAAQ,EAAE,CAAC,UAAU,SAAS,QAAQ,EAAE,CAAC,SAAS,GAAG,QAAQ,EAAE,CAAC,SAAS,QAAQ,SAAS,EAAE,CAAC,SAAS,SAAS,SAAS,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC,UAAU,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,SAAS,SAAS,QAAQ,EAAE,CAAC,UAAU,SAAS,QAAQ,EAAE,CAAC,SAAS,UAAU,QAAQ,EAAE,CAAC,SAAS,SAAS,QAAQ,EAAE,CAAC,QAAQ,SAAS,QAAQ,EAAE,CAAC,SAAS,UAAU,QAAQ,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,UAAU,IAAI,QAAQ,EAAE,CAAC,UAAU,GAAG,QAAQ,EAAE,CAAC,UAAU,GAAG,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC,UAAU,SAAS,SAAS,EAAE,CAAC,SAAS,UAAU,SAAS,EAAE,CAAC,UAAU,UAAU,SAAS,EAAE,CAAC,QAAQ,SAAS,SAAS,EAAE,CAAC,SAAS,UAAU,SAAS,EAAE,CAAC,QAAQ,UAAU,SAAS,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,UAAU,SAAS,QAAQ,EAAE,CAAC,SAAS,UAAU,QAAQ,EAAE,CAAC,SAAS,SAAS,SAAS,EAAE,CAAC,UAAU,UAAU,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,UAAU,SAAS,QAAQ,EAAE,CAAC,UAAU,UAAU,QAAQ,EAAE,CAAC,SAAS,SAAS,UAAU,EAAE,CAAC,SAAS,UAAU,SAAS,EAAE,CAAC,UAAU,SAAS,UAAU,EAAE,CAAC,UAAU,UAAU,SAAS,EAAE,CAAC,SAAS,SAAS,SAAS,EAAE,CAAC,UAAU,SAAS,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,UAAU,SAAS,QAAQ,EAAE,CAAC,UAAU,UAAU,QAAQ,EAAE,CAAC,SAAS,SAAS,QAAQ,EAAE,CAAC,SAAS,UAAU,SAAS,EAAE,CAAC,UAAU,SAAS,QAAQ,EAAE,CAAC,UAAU,UAAU,SAAS,EAAE,CAAC,SAAS,SAAS,SAAS,EAAE,CAAC,SAAS,UAAU,SAAS,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,SAAS,QAAQ,OAAO,EAAE,CAAC,SAAS,QAAQ,QAAQ,EAAE,CAAC,SAAS,SAAS,OAAO,EAAE,CAAC,QAAQ,QAAQ,OAAO,EAAE,CAAC,QAAQ,QAAQ,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,CAAC,SAAS,QAAQ,MAAM,EAAE,CAAC,QAAQ,SAAS,QAAQ,EAAE,CAAC,QAAQ,UAAU,OAAO,EAAE,CAAC,QAAQ,QAAQ,QAAQ,EAAE,CAAC,QAAQ,SAAS,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,QAAQ,OAAO,EAAE,CAAC,SAAS,QAAQ,QAAQ,EAAE,CAAC,SAAS,MAAM,QAAQ,EAAE,CAAC,QAAQ,OAAO,OAAO,EAAE,CAAC,QAAQ,QAAQ,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,UAAU,QAAQ,QAAQ,EAAE,CAAC,SAAS,SAAS,OAAO,EAAE,CAAC,SAAS,SAAS,QAAQ,EAAE,CAAC,QAAQ,QAAQ,QAAQ,EAAE,CAAC,QAAQ,QAAQ,OAAO,EAAE,CAAC,QAAQ,SAAS,OAAO,EAAE,CAAC,SAAS,QAAQ,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,QAAQ,QAAQ,EAAE,CAAC,SAAS,QAAQ,OAAO,EAAE,CAAC,OAAO,SAAS,CAAC,EAAE,CAAC,SAAS,SAAS,QAAQ,EAAE,CAAC,SAAS,SAAS,OAAO,EAAE,CAAC,QAAQ,QAAQ,QAAQ,EAAE,CAAC,QAAQ,QAAQ,OAAO,EAAE,CAAC,MAAM,UAAU,CAAC,EAAE,CAAC,QAAQ,SAAS,QAAQ,EAAE,CAAC,QAAQ,SAAS,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,QAAQ,QAAQ,EAAE,CAAC,SAAS,QAAQ,OAAO,EAAE,CAAC,SAAS,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,CAAC,EAAE,CAAC,SAAS,SAAS,OAAO,EAAE,CAAC,SAAS,QAAQ,QAAQ,EAAE,CAAC,QAAQ,SAAS,QAAQ,EAAE,CAAC,QAAQ,QAAQ,OAAO,EAAE,CAAC,QAAQ,SAAS,CAAC,EAAE,CAAC,QAAQ,QAAQ,QAAQ,EAAE,CAAC,QAAQ,SAAS,OAAO,EAAE,CAAC,QAAQ,SAAS,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,QAAQ,QAAQ,EAAE,CAAC,SAAS,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,OAAO,EAAE,CAAC,SAAS,SAAS,OAAO,EAAE,CAAC,SAAS,QAAQ,QAAQ,EAAE,CAAC,SAAS,SAAS,QAAQ,EAAE,CAAC,SAAS,OAAO,MAAM,EAAE,CAAC,SAAS,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,QAAQ,EAAE,CAAC,SAAS,SAAS,OAAO,EAAE,CAAC,SAAS,QAAQ,OAAO,EAAE,CAAC,SAAS,SAAS,QAAQ,EAAE,CAAC,QAAQ,QAAQ,OAAO,EAAE,CAAC,QAAQ,SAAS,QAAQ,EAAE,CAAC,OAAO,SAAS,OAAO,EAAE,CAAC,QAAQ,SAAS,OAAO,EAAE,CAAC,QAAQ,QAAQ,OAAO,EAAE,CAAC,QAAQ,SAAS,QAAQ,EAAE,CAAC,QAAQ,SAAS,OAAO,EAAE,CAAC,QAAQ,OAAO,OAAO,EAAE,CAAC,QAAQ,QAAQ,OAAO,EAAE,CAAC,QAAQ,SAAS,OAAO,EAAE,CAAC,QAAQ,SAAS,QAAQ,EAAE,CAAC,QAAQ,QAAQ,MAAM,EAAE,CAAC,SAAS,QAAQ,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAsgN,GAAG,EAAE,aAAa,sBAAsB,GAAG,GAAI,IAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAA67B,GAAG,EAAE,qBAAqB,mBAAmB,GAAG,GAAI,IAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAA6kF,GAAG,EAAE,qBAAqB,mBAAmB,GAAG,GAAI,IAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAAshD,GAAG,EAAE,qBAAqB,mBAAmB,GAAG,GAAI,IAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAA4+C,GAAG,EAAE,qBAAqB,gCAAgC,GAAG,GAAI,IAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAA4pF,GAAG,EAAE,qBAAqB,kCAAkC,GAAG,GAAI,IAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAytL,GAAG,EAAE,qBAAqB,iBAAiB,GAAG,GAAI,IAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAAumH,GAAG,EAAE,qBAAqB,sBAAsB,GAAG,GAAI,IAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAuwK,GAAG,EAAE,qBAAqB,2BAA2B,GAAG,GAAI,IAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAAo1C,GAAG,EAAE,qBAAqB,gBAAgB,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAI,IAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAA66C,GAAG,EAAE,qBAAqB,sBAAsB,GAAG,GAAI,IAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAs0H,GAAG,EAAE,qBAAqB,qBAAqB,GAAG,GAAI,IAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAm1B,GAAG,EAAE,qBAAqB,yBAAyB,GAAG,GAAI,IAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAg5B,GAAG,EAAE,qBAAqB,qBAAqB,GAAG,GAAI,IAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAA+tC,GAAG,EAAE,qBAAqB,oBAAoB,GAAG,GAAI,IAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAu5O,GAAG,EAAE,qBAAqB,mBAAmB,GAAG,GAAI,IAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAs7J,GAAG,EAAE,qBAAqB,cAAc,GAAG,GAAI,IAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAA0qR,GAAG,EAAE,qBAAqB,kBAAkB,GAAG,GAAI,IAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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A;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAA44M,GAAG,EAAE,qBAAqB,SAAS,GAAG,GAAI,IAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAA68Z,GAAG,EAAE,aAAa,eAAe,GAAG,GAAI,IAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAA+kE,GAAG,EAAE,qBAAqB,qBAAqB,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAI,IAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAA0+T,GAAG,EAAE,aAAa,gBAAgB,GAAG,GAAI,IAAG,EAAE,EAAE,EA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A;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA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AAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAA+7xB,EAAE,CAAC,EAAE,EAAE,qBAAqB,GAAG,CAAC,EAAE,SAAS,GAAE,EAAE,EAAE,CAAc,GAAI,GAAE,qBAAqB,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAA2+I,EAAE,CAAC,EAAE,EAAE,qBAAqB,GAAG,CAAC,EAAE,SAAS,GAAE,EAAE,EAAE,CAAc,GAAI,GAAE,4BAA4B,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAonC,EAAE,CAAC,EAAE,EAAE,qBAAqB,GAAG,CAAC,EAAE,SAAS,GAAE,EAAE,EAAE,CAAc,GAAI,GAAE,wBAAwB,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAAsoE,EAAE,CAAC,EAAE,EAAE,qBAAqB,GAAG,CAAC,EAAE,SAAS,GAAE,EAAE,EAAE,CAAc,GAAI,GAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAAugE,EAAE,CAAC,EAAE,EAAE,qBAAqB,aAAa,CAAC,EAAE,SAAS,GAAE,EAAE,EAAE,CAAc,GAAI,GAAE,gBAAgB,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA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"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.f5688297.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.f5688297.js new file mode 100644 index 0000000000000000000000000000000000000000..d5619effbcec25615944cc50a163a73b64e573fc --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.f5688297.js @@ -0,0 +1,2 @@ +import{S as T,i as H,s as L,e as S,b as c,Y as C,d as f,f as d,x as M,n as g,F as j,I as q,P as B,c as h,m as b,j as v,k,o as w,R as D,T as E,a as F,U as I,V as K,K as P}from"./index.cb50929e.js";function R(n){let e;return{c(){e=S("div"),c(e,"id",n[0]),c(e,"class","output-markdown gr-prose"),C(e,"max-width","100%"),f(e,"min-h-[6rem]",n[3]),f(e,"hidden",!n[1])},m(a,t){d(a,e,t),e.innerHTML=n[2],n[5](e)},p(a,[t]){t&4&&(e.innerHTML=a[2]),t&1&&c(e,"id",a[0]),t&8&&f(e,"min-h-[6rem]",a[3]),t&2&&f(e,"hidden",!a[1])},i:M,o:M,d(a){a&&g(e),n[5](null)}}}function U(n,e,a){let{elem_id:t=""}=e,{visible:l=!0}=e,{value:u}=e,{min_height:o=!1}=e;const m=j();let i;function r(s){q[s?"unshift":"push"](()=>{i=s,a(4,i)})}return n.$$set=s=>{"elem_id"in s&&a(0,t=s.elem_id),"visible"in s&&a(1,l=s.visible),"value"in s&&a(2,u=s.value),"min_height"in s&&a(3,o=s.min_height)},n.$$.update=()=>{n.$$.dirty&4&&m("change")},[t,l,u,o,i,r]}class V extends T{constructor(e){super(),H(this,e,U,R,L,{elem_id:0,visible:1,value:2,min_height:3})}}function Y(n){let e,a,t,l,u;const o=[n[3],{variant:"center"}];let m={};for(let i=0;i{"label"in s&&a(4,t=s.label),"elem_id"in s&&a(0,l=s.elem_id),"visible"in s&&a(1,u=s.visible),"value"in s&&a(2,o=s.value),"loading_status"in s&&a(3,m=s.loading_status)},n.$$.update=()=>{n.$$.dirty&16&&i("change")},[l,u,o,m,t,r]}class A extends T{constructor(e){super(),H(this,e,z,p,L,{label:4,elem_id:0,visible:1,value:2,loading_status:3})}}var J=A;const N=["static"],O=n=>({type:"string",description:"HTML rendering of markdown"});export{J as Component,O as document,N as modes}; +//# sourceMappingURL=index.f5688297.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.f5688297.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.f5688297.js.map new file mode 100644 index 0000000000000000000000000000000000000000..5b6a950d4c0f4d5b35d1261c138c847b9ed06fb1 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.f5688297.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.f5688297.js","sources":["../../../../ui/packages/markdown/src/Markdown.svelte","../../../../ui/packages/app/src/components/Markdown/Markdown.svelte","../../../../ui/packages/app/src/components/Markdown/index.ts"],"sourcesContent":["\n\n\n\t{@html value}\n\n","\n\n\n\t\n\t\n\t\t\n\t\n\n","export { default as Component } from \"./Markdown.svelte\";\nexport const modes = [\"static\"];\n\nexport const document = (config: Record) => ({\n\ttype: \"string\",\n\tdescription: \"HTML rendering of markdown\"\n});\n"],"names":[],"mappings":"uPAiBK,yFACgB,oBAEL,cAJhB,qBAQQ,yCAAA,oBAPH,8BACgB,yBAEL,+DAhBJ,UAAkB,OAClB,UAAmB,OACnB,YACA,aAAa,WAElB,GAAW,OAEb,4CAWO,kMATD,EAAS,QAAQ,2JCMR,+HAML,MAAkB,KAAe,SAAW,2KAHvC,MAAgB,SAAW,SAAS,4BAFvD,qDADmB,wDAML,MAAkB,KAAe,SAAW,4GAHvC,MAAgB,SAAW,SAAS,4NAJpB,4SAXxB,YACA,UAAkB,OAClB,UAAmB,OACnB,QAAgB,OAChB,yBAEL,GAAW,6PAEP,EAAS,QAAQ,+ICdf,GAAQ,CAAC,QAAQ,EAEjB,EAAW,AAAC,KACxB,KAAM,SACN,YAAa,4BACd"} \ No newline at end of file diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.f58c340d.js b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.f58c340d.js new file mode 100644 index 0000000000000000000000000000000000000000..6659e79aee23d143fbec6728ecab30a978a1805e --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.f58c340d.js @@ -0,0 +1,2 @@ +import{S as Z,i as A,s as D,w as R,b as d,f as v,g as b,x as H,n as h,B as z,e as g,a as j,t as N,Y as S,h as E,C as K,d as C,P as O,c as L,m as M,j as k,k as p,o as B,F as Q,R as W,T as X,U as x,V as $,D as T,E as Y}from"./index.cb50929e.js";import{B as ee}from"./BlockLabel.4b1193ac.js";function le(a){let e,n;return{c(){e=R("svg"),n=R("path"),d(n,"fill","currentColor"),d(n,"d","M4 2H2v26a2 2 0 0 0 2 2h26v-2H4v-3h22v-8H4v-4h14V5H4Zm20 17v4H4v-4ZM16 7v4H4V7Z"),d(e,"xmlns","http://www.w3.org/2000/svg"),d(e,"xmlns:xlink","http://www.w3.org/1999/xlink"),d(e,"aria-hidden","true"),d(e,"role","img"),d(e,"class","iconify iconify--carbon"),d(e,"width","100%"),d(e,"height","100%"),d(e,"preserveAspectRatio","xMidYMid meet"),d(e,"viewBox","0 0 32 32")},m(l,t){v(l,e,t),b(e,n)},p:H,i:H,o:H,d(l){l&&h(e)}}}class G extends Z{constructor(e){super(),A(this,e,null,le,D,{})}}function q(a,e,n){const l=a.slice();return l[3]=e[n],l}function F(a){let e,n=a[0].confidences,l=[];for(let t=0;t{"value"in i&&n(0,l=i.value),"show_label"in i&&n(1,t=i.show_label),"color"in i&&n(2,o=i.color)},[l,t,o]}class oe extends Z{constructor(e){super(),A(this,e,ne,te,D,{value:0,show_label:1,color:2})}}function U(a){let e,n;return e=new ee({props:{Icon:G,label:a[4],disable:typeof a[5].container=="boolean"&&!a[5].container}}),{c(){L(e.$$.fragment)},m(l,t){M(e,l,t),n=!0},p(l,t){const o={};t&16&&(o.label=l[4]),t&32&&(o.disable=typeof l[5].container=="boolean"&&!l[5].container),e.$set(o)},i(l){n||(k(e.$$.fragment,l),n=!0)},o(l){p(e.$$.fragment,l),n=!1},d(l){B(e,l)}}}function ie(a){let e,n,l,t;return l=new G({}),{c(){e=g("div"),n=g("div"),L(l.$$.fragment),d(n,"class","h-5 dark:text-white opacity-50"),d(e,"class","h-full min-h-[6rem] flex justify-center items-center")},m(o,i){v(o,e,i),b(e,n),M(l,n,null),t=!0},p:H,i(o){t||(k(l.$$.fragment,o),t=!0)},o(o){p(l.$$.fragment,o),t=!1},d(o){o&&h(e),B(l)}}}function ae(a){let e,n;return e=new oe({props:{value:a[3],show_label:a[7],color:a[2]}}),{c(){L(e.$$.fragment)},m(l,t){M(e,l,t),n=!0},p(l,t){const o={};t&8&&(o.value=l[3]),t&128&&(o.show_label=l[7]),t&4&&(o.color=l[2]),e.$set(o)},i(l){n||(k(e.$$.fragment,l),n=!0)},o(l){p(e.$$.fragment,l),n=!1},d(l){B(e,l)}}}function se(a){let e,n,l,t,o,i,s;const c=[a[6]];let w={};for(let r=0;r{u=null}),Y());let V=t;t=y(r),t===V?f[t].p(r,m):(T(),p(f[V],1,1,()=>{f[V]=null}),Y(),o=f[t],o?o.p(r,m):(o=f[t]=_[t](r),o.c()),k(o,1),o.m(i.parentNode,i))},i(r){s||(k(e.$$.fragment,r),k(u),k(o),s=!0)},o(r){p(e.$$.fragment,r),p(u),p(o),s=!1},d(r){B(e,r),r&&h(n),u&&u.d(r),r&&h(l),f[t].d(r),r&&h(i)}}}function fe(a){let e,n;return e=new O({props:{test_id:"label",visible:a[1],elem_id:a[0],disable:typeof a[5].container=="boolean"&&!a[5].container,$$slots:{default:[se]},$$scope:{ctx:a}}}),{c(){L(e.$$.fragment)},m(l,t){M(e,l,t),n=!0},p(l,[t]){const o={};t&2&&(o.visible=l[1]),t&1&&(o.elem_id=l[0]),t&32&&(o.disable=typeof l[5].container=="boolean"&&!l[5].container),t&764&&(o.$$scope={dirty:t,ctx:l}),e.$set(o)},i(l){n||(k(e.$$.fragment,l),n=!0)},o(l){p(e.$$.fragment,l),n=!1},d(l){B(e,l)}}}function re(a,e,n){let{elem_id:l=""}=e,{visible:t=!0}=e,{color:o=void 0}=e,{value:i}=e,{label:s="Label"}=e,{style:c={}}=e,{loading_status:w}=e,{show_label:u}=e;const _=Q();return a.$$set=f=>{"elem_id"in f&&n(0,l=f.elem_id),"visible"in f&&n(1,t=f.visible),"color"in f&&n(2,o=f.color),"value"in f&&n(3,i=f.value),"label"in f&&n(4,s=f.label),"style"in f&&n(5,c=f.style),"loading_status"in f&&n(6,w=f.loading_status),"show_label"in f&&n(7,u=f.show_label)},a.$$.update=()=>{a.$$.dirty&8&&_("change")},[l,t,o,i,s,c,w,u]}class ce extends Z{constructor(e){super(),A(this,e,re,fe,D,{elem_id:0,visible:1,color:2,value:3,label:4,style:5,loading_status:6,show_label:7})}}var _e=ce;const be=["static"],me=a=>({type:"{ label: string; confidences?: Array<{ label: string; confidence: number }>",description:"output label and optional set of confidences per label"});export{_e as Component,me as document,be as modes}; +//# sourceMappingURL=index.f58c340d.js.map diff --git a/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.f58c340d.js.map b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.f58c340d.js.map new file mode 100644 index 0000000000000000000000000000000000000000..80dc69ab27a9d590995f6fbc28f50597d2ac9885 --- /dev/null +++ b/gtm/lib/python3.12/site-packages/gradio/templates/cdn/assets/index.f58c340d.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.f58c340d.js","sources":["../../../../ui/packages/icons/src/LineChart.svelte","../../../../ui/packages/label/src/Label.svelte","../../../../ui/packages/app/src/components/Label/Label.svelte","../../../../ui/packages/app/src/components/Label/index.ts"],"sourcesContent":["\n","\n\n
    \n\t\n\t\t{value.label}\n\t
    \n\t{#if typeof value === \"object\" && value.confidences}\n\t\t{#each value.confidences as confidence_set}\n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t
    {confidence_set.label}
    \n\t\t\t\t\t\t{#if value.confidences}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{Math.round(confidence_set.confidence * 100)}%\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t{/if}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t{/each}\n\t{/if}\n\n","\n\n\n\t\n\t{#if show_label}\n\t\t\n\t{/if}\n\t{#if typeof value === \"object\" && value !== undefined && value !== null}\n\t\t